# v2 git bundle
57ec9432169c2306b72c89172151f6ea93b65cb7 refs/heads/bundle
57ec9432169c2306b72c89172151f6ea93b65cb7 HEAD

PACK     LQxtree d0ecb9226a51eccd784c953b393ff0cfb0aca416
parent 4675568f46148af36af5466a250e61c9f1d1a0d7
parent ba0965bcb2aa7bb746cd784621e3d1e1fccf8e21
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766391400 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766391400 +0800

!4337 merge text into master

更改起始版本

Created-by: Zhang-Dong-hui
Commit-by: Zhang-Dong-hui
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审
- [x] 兼容

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony/docs/pull/120700
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4337{ؐkxOtree 0049d705764e221dcdf127e2c5bbb81604ba13b9
parent 3937982f73b3dae7ce7d25d87430bc4aa3f5bca1
parent 94658945985c1126c1089e275ad6c040e5826de1
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1767069881 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1767069881 +0800

!4446 merge feature/hdr-live-photo-for-3rd-party into master

hdr live photo

Created-by: javey-lu
Commit-by: javey-lu
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/multimedia_camera_framework/issues/3748


### 原因（目的、解决的问题等）
新加PreConfig枚举类型，以支持三方预览高显和HDR Live Photo

### 描述（做了什么，变更了什么）
新加PreConfig枚举类型，以支持三方预览高显和HDR Live Photo

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [x] 头文件library声明与SDK so库名称一致

![image.png](https://raw.gitcode.com/user-images/assets/4379443/36123b2e-ae3d-4078-afcb-4c9fff56f4f5/image.png 'image.png')

![image.png](https://raw.gitcode.com/user-images/assets/4379443/a2f9dbcd-77f1-407d-868e-1a62d3e0f561/image.png 'image.png')


### 兼容性影响评估，如有影响请写明（Y/N）
N

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4446U^xtree f095d9e513e84833ca7def16cc2076053d257898
parent bc858e4f09652a774f37fdb02f55be3847b3b95e
parent 4256484841e113469cc3796002da224a344b312b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758617614 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758617614 +0800

merge master into master

add:TextArea控件支持配置滚动条颜色capi接口

Created-by: wangxiuxiu
Commit-by: wangxiuxiu96
Merged-by: openharmony_ci
Description: ### 相关的Issue
[#3048](https://gitcode.com/openharmony/interface_sdk_c/issues/3048)

### 原因（目的、解决的问题等）
TextArea控件支持配置滚动条颜色capi接口

### 描述（做了什么，变更了什么）
TextArea控件支持配置滚动条颜色capi接口

### 自检结果（结果截图添加到下面）
![输入图片说明](https://foruda.gitee.com/images/1757297087151280014/f9ba0605_8799666.png "屏幕截图")
- [X] 在IDE编辑可联想，可编译通过，是否已验证通过
- [ ] 实现代码是否已经合入
- [ ] 导出接口是否已添加到kit管理文件中

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [X] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/105241
- [X] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3948mޘpx tree 5859b2a1ab15e5ea5dd65f598ac397761dea4440
parent 76712ed377de413a25b551333abfc965a04d447d
parent fc5b4a65b09a48926abf6545bde495a25bf074c2
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761280233 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761280233 +0800

!4072 merge master into master

算法库对称算法api新增错误码，不修改旧的实现

Created-by: lanming
Commit-by: lanming
Merged-by: openharmony_ci
Description: ### 相关的Issue

[#3147](https://gitcode.com/openharmony/interface_sdk_c/issues/3147) 

### 原因（目的、解决的问题等）
算法库对称算法api需要新增支持对称算法chacha20和aes-wrap，由于401错误码不能使用，因此如果参数检查失败，则返回17620003错误码。接口描述中增加17620003错误码。

### 描述（做了什么，变更了什么）
算法库对称算法api需要新增支持对称算法chacha20和aes-wrap，由于401错误码不能使用，因此如果参数检查失败，则返回17620003错误码。接口描述中增加17620003错误码。
仅变更接口注释。

### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档


See merge request: openharmony/interface_sdk_c!4072döDmx,tree 8cc28e814f2d31a88453fd5ba0017664008119d5
parent fdc4db2a9d98d400fc552e5448620ca45304bc63
parent f06eb66a0d3450f6c800eaadc198a080014e07cf
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760071589 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760071589 +0800

merge master into master

add lockcursor interface

Created-by: weixin_46211877
Commit-by: weixin_46211877
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3131

### 原因（目的、解决的问题等）
新增NDK接口：
OH_WindowManager_LockCursor
OH_WindowManager_UnlockCursor

### 描述（做了什么，变更了什么）
新增窗口级别鼠标光标状态锁定、解锁接口

### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/525faf8a-e3ad-49c7-8cc5-16c9def3475b/image.png 'image.png')
- [Y] 是否通过注释规则扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/4b8fdf83-dbea-4068-9576-9ca7edbd1bdf/image.png 'image.png')
- [Y] 是否更新json文件
- [N] 现代码是否已经合入
- [Y] 目标是否已经添加到build仓ndk依赖目标里
- [Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [Y] 是，有新增L0用例，且完成自检
- [] 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y] 是，已刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2582
- [] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4053$<rx"tree cdb3590e092924b880cab8dd681c889804f952cc
parent 262566c64fc97676a91fe0ef1ffc319ed440ffce
parent de7589a468c7f709f2951c64232abd4d55725216
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761298378 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761298378 +0800

!4132 merge master into master

修改动态元数据风格key值的注释说明

Created-by: Hennes
Commit-by: Hennes
Merged-by: openharmony_ci
Description: ### 相关的Issue
[修改动态元数据风格key值的注释说明](https://gitcode.com/openharmony/interface_sdk_c/issues/3193)

### 原因（目的、解决的问题等）
注释中@link和@see的链接接口一致，与中文头文件保持一致，去除重复链接

### 描述（做了什么，变更了什么）
修改动态元数据风格key值的注释说明

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/ced8e06d-f5b7-452e-adcb-53032c0824d3/image.png 'image.png')
- [x] 是否通过注释规则扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/6fe3968b-b203-48c9-830b-6b8a175de5fe/image.png 'image.png')
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
- [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2657
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4132vjx[tree 1bc570b58846b2dd14abd34783eaa121ee897283
parent 392977fef745aed225005bf1dd9da47faf90c109
parent ad8ef7743aaf769bb36d0dd62632bb6f3aad0bae
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758118940 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758118940 +0800

merge master into master

新增GameControllerKit

Created-by: weixin_42784160
Commit-by: jinsitao
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/xts_tools/issues/655

### 原因（目的、解决的问题等）
新增GameControllerKit

### 描述（做了什么，变更了什么）
新增GameControllerKit

### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/cd54018b-f685-429a-86a7-01fbd96581ef/image.png 'image.png')
- [Y] 是否通过注释规则扫描
- [Y] 是否更新json文件
![image.png](https://raw.gitcode.com/user-images/assets/4379443/53751512-5ea6-4f2d-8563-c0ba74320395/image.png 'image.png')
- [Y] 实现代码是否已经合入
![image.png](https://raw.gitcode.com/user-images/assets/4379443/b204895f-37eb-43ab-a7ef-4f811e6834d6/image.png 'image.png')
- [Y] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [Y] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y] 是，已刷新API参考文档
https://gitcode.com/openharmony/docs/pull/98992
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3962Jmhx~tree 687b0486466f86c77580feb68b3a14b8b3c65392
parent a35e1c53f8e860c0c30160f4e8e79d32d90c23cc
parent 5593f5c0d268673ec6201d3a70ab3051af41cf9c
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765267308 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765267308 +0800

!4279 merge addCustDragBkColor into master

普通文本组件支持自定义拖拽时的背板颜色

Created-by: wangxiuxiu
Commit-by: wangxiuxiu
Merged-by: openharmony_ci
Description: ### 相关的Issue
#3293

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

![screenshot-20251203-164047.png](https://raw.gitcode.com/user-images/assets/4379443/09da9421-ac79-4911-bc03-c34f0536cee1/screenshot-20251203-164047.png 'screenshot-20251203-164047.png')

![screenshot-20251205-110601.png](https://raw.gitcode.com/user-images/assets/4379443/83a205ac-0e86-4884-807f-4174dd00be86/screenshot-20251205-110601.png 'screenshot-20251205-110601.png')

See merge request: openharmony/interface_sdk_c!4279d2xLtree a1bb0085d14324d400ad42611d472e3bbdc7adbf
parent a3373d353b8bc2108f334fdfefc5901b772b7bf9
parent 0d35a9417d5c383a245bcdd0c279197f6872cf1d
author openharmony_ci <120357966@qq.com> 1705129756 +0000
committer Gitee <noreply@gitee.com> 1705129756 +0000

!214 hid ddk增加delete按键
Merge pull request !214 from lixinsheng2/masterSRh˗xwtree f9c007543bee3097e0faa5a596d79204359f0fc6
parent d9c955f59e48518fae6d1846d36095ca0844d05b
parent 04ed7cb6e6056e51d3c46b88252632b07f483c30
author openharmony_ci <120357966@qq.com> 1704185613 +0000
committer Gitee <noreply@gitee.com> 1704185613 +0000

!187 CAPI解析工具解析宏定义代码优化和check语法指令bug修改
Merge pull request !187 from zhangwu/masterrNtxKtree 42349f4181f3915960b4abe618ab4c3758e3bcc7
parent 23a865536bf90efe2ae82641d2cddfd0be7d3276
parent 7384b189a8cb790b5d2ac190903af2fe966c5751
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1781758829 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1781758829 +0800

!5377 merge refs/merge-requests/5377/head into master

TEE Kit修改#include尖括号为双引号

Created-by: jiezixumihp
Commit-by: jiezixumihp
Merged-by: openharmony_ci
Description: # 相关的Issue
[#4176](https://gitcode.com/openharmony/interface_sdk_c/issues/4176)

# 原因（目的、解决的问题等）
teekit 当前多个头文件错误地使用了全局包含语法 `#include <tee_defines.h>`，这会导致依赖路径解析规范问题。需要将其修改为相对路径包含语法 `#include "tee_defines.h"`。

# 描述（做了什么，变更了什么）
1. 遍历并修改了 teekit 仓中所有包含 `tee_defines.h` 的头文件。
2. 将 `#include <tee_defines.h>` 统一替换为 `#include "tee_defines.h"`。

# 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件 --不涉及
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [x] 头文件library声明与SDK so库名称一致
# 兼容性影响评估，如有影响请写明  (N)
兼容性修改，间接include的头文件改为直接include， `#include <tee_defines.h>`修改为 `#include "tee_defines.h"`也不会有兼容影响

# L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否 -- 不涉及

# API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档


See merge request: openharmony/interface_sdk_c!5377WTx2tree e96db3b386da22c659f7a1c32af2f1a1a41796d9
parent 5ba5e2c3a3e0a102c399cd685fa9b04279d334d5
author jiezixumihp <hupeng76@huawei.com> 1781691310 +0800
committer jiezixumihp <hupeng76@huawei.com> 1781691310 +0800

TEE Kit修改#include尖括号为双引号

Signed-off-by: jiezixumihp <hupeng76@huawei.com>k=xtree c672e628ea26aacde4b76620d7831d89fdde2100
parent 5ba5e2c3a3e0a102c399cd685fa9b04279d334d5
author wendan <wendan4@huawei.com> 1781686072 +0800
committer wendan <wendan4@huawei.com> 1781686072 +0800

修改net_websocket_type支持c编译


Signed-off-by: wendan <wendan4@huawei.com>_xtree 0d1e66162bff8b4b4513371a5d48a3acbbdb0535
parent 45231918399ed830b9c239c56db41720b24031a6
author zzm_gitcode <harbin_zzm@163.com> 1781581502 +0800
committer zzm_gitcode <harbin_zzm@163.com> 1781680629 +0800

fix review

Signed-off-by: zzm_gitcode <harbin_zzm@163.com>
RxN0EwNb;Bt{N,;Jn| ]X _|A?TwO7T$LT]tqVs&MNz3`HIDT))8V\j!J`~\ټX VSk9]R+bƁ:ڇH/~}EuݎJs)3ΧċNphփ	l)E5>x|Ck.mÔtjO+K'	M@Gvi_/otya{n'7cgQop˘x1N1E{UdPD:)I,z PMĽ8A@r {ғ~9QƓrRBllf,{2*E$R

PYhu;͜l\bCCn1NmϘ/i\qiР,_';1׊As68=!cyS0-'e|ƎϏw{xؿ6_iW1מ߶1_d?&ixJAyi$rgfwn11e;ɂى.U"M4_@l|1nq✦&P&w(FȬƙۚKhEP $R
E`meuߦV7iko<ivEgk~::+ tFua
ݼVߟi~Y}=hGW|^tB7m/ڙcé&>3ۈJS^,@+cV D",'^ >Քx=N0@w;j8B܁TϵD #b  !qH{z$'GDʝ6RJjB4 z]s'SVA;b3ƽVKusc* u.4B[rG)cbծ$"ބb)QJ0Fδ9d0B*\z/<ݟq|~uBX/߳3n3xMJAuH1zf Ieu+գ|z/ODPYHTXȖ0jB-2­hLt::>BNIgtr&vaW]d摦yHKƍki;C9i)0&q><ί_OЍV)ƪ-,u*+vtxtree 5b94c515b0380a6f1a3f0c93ee193db1cc8a109c
parent 16f6fcbb9801487ed44f4ae7d8d226d867ad18dd
author m00939602 <mengzhe5@huawei.com> 1781595909 +0800
committer m00939602 <mengzhe5@huawei.com> 1781595909 +0800

普通录像支持LOG视频


Signed-off-by: m00939602 <mengzhe5@huawei.com>&]x;JA@9ET@daP]l02",	"hIF#Gf!#2q-CyuS5%=ĤkMȢƉpB_Cb]73Z2	t_3WmL|,umfT  ^EYp0Dt䢵"@7a՚#r?N_byq|[xAJC1@9ERd&#R*<A4'Ԃ{Očױ=]辻ǃ"\cfːY(zg=:	SS86ii)G[(lr*E"G18Ri0\n~euva=&Dp!z"uך\Ohr8}|_os'C)5cw;`:xHtree 9d01c8b9dd2b637a8200c68b218c6b156e3c1bce
parent cc3080021a3510a0b6a39be8a6c3994ff6604ea7
author wei-yuantian <weiyuantian1@huawei.com> 1781576034 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781576034 +0800

update: 更新文件 native_audiostreambuilder.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>4$oxN0Fw?wtoWQ:u	: IRUQA303"!m_ >;	N%22 fq^$YbFaI;R\^O*>!:^l|Wm}wwcWo9/2cAKg`Hm3x)!srxvmq]U:>惐E_1W94UAR2<,2d~dHѨr^p\K[j%C~	~x=JA@9ogE;x7+X.6N1ER
i,rdo@}/wDJDVIC`AyB&deQ+aQF,K^GCAcpɒ1Ç<m;>IC_OU3ح4pKVh/rY>~m;>&Q?^~jYxJ@Fy%2s'EDqK;3nRl!Au';q~p;g$QK*H`+*)XlS;HcÜ؆7!8q^Wtȣz-A(yRbZ0gyؾ6vYwވ<󐜦 sQgF&' `{zkxCtree 1288e4621f8d5aa237353e09d395c9f184ebd5bc
parent 35a9676338b037df47820202199c9d466807eecc
author wei-yuantian <weiyuantian1@huawei.com> 1781507946 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781507946 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>l2xFtree 1288e4621f8d5aa237353e09d395c9f184ebd5bc
parent 6d1b16bd42d28f21d8c65d57743c300faae7dfe6
author wei-yuantian <weiyuantian1@huawei.com> 1781507838 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781507838 +0800

update: 更新文件 native_audiostream_base.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>vnxN0 w?&!D7S$C:L
Ra:tP1۠< lwOk!ͩ!PltA	VDHC,L)r`#T8%WqɭՔ"d'	X^~T݅3'eft01Bbf#Hi]hɠ):|??r'N6 .koMˊ?_`XοOwG{Wp=&{&5]:m}TsBxCtree 945cdf044ea36b04e170cadf07b11697dc95e778
parent 26c2fa0fcea6a27b5983af5ce92bd42f425b19b8
author wei-yuantian <weiyuantian1@huawei.com> 1781317889 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781317889 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>kmԟxN0w?N(b!3cn,6 .]x/.lHΙhN8JS5Q 1'V@zHYJZU(<ﺌS.⮝5- UP.OS@Xό=]rHi_VͦZlt|+ðbd_G0woŖ&x#SbPVN:+`t  kxPN@+A!G{EQ4(^I["m$/'p)l3ZΰsB{_x/7L(C,D5#=\7Pe %hJ-qdJ`H9qci&~A؎wabb;L*2%נ Hb0"y	p!><r6Y>Oӿ"t||~z .xxI.mgǁތ-vtDV1?~u&ZG/20,hڦ\V)9Tk W9}!1ڀxN0E{{4~+㙍M" Aw-ؙu@@6P[NB0We	quf)'K(^lI:O5,&Tx;v_Ӽ7smy&	@,2:ޥ܏DIP_Vn&2ߣ|dtn'}hD$X*¶9Qđ	F}9m
xPN0^@(8UUBgƊġMx vAx>AEHlwt*/WHAs!5DǑ0V8e#iaMGtB		RZiwV	ZB	&mu!Uq t٦=ƑKpkmf12u:oЌ;<]!qݠR}/BNǷ׏:_8cwt<<}j;?54D);O0~<=6rwWtqV%Քf	e.BQ5TKspc@>kx90 {b{: F{()4ҴYl#)Klq(6qNhb;{1=>Ȕ=-RgXi_ tY)ez6Y1Bש^QJ(@wVa:q9ouӚz]{x?K1|4V&֖E^.p%lgujq5K>Aja~0G"ޔzS:/CsW8$9t)=H]@Ht.B-T(ZS\#aT&L!L@J,L%
-Kib*@Yfz2vV5Y}!]Y;:QW^o]{~^uc7Sk%Tb?nvxAJ1}NTI""H*ndI#3<ײa0ufN[zokzǨPC
Κ49mDbq3*Æ8x@QT{7xace=ea4YߏKx:T#:+@ T+_u~}~B<M̩+btۿ=4ݵ/{fxAn ＂{@E f5qׇrOnT%QoE舒kKl!E! xhCLk4kDV|bS|nqJ2ܶizvb?$X,F;ܘvϽ?%@$Ek_iعy3\$>'i)MGkOg2xJ0ٚo8!7MgII^׻prB4XrsMe,}@䭰ڂ54+LQejҗ<Dxiv/cC(P+)/}?n.yuH~>N>#kCvUuy`4pLVusBj&nnaKB辜}XҀ=DO&:1cxJAyi$2ݝim,O2;,]@ZIf!u@Dۈ<[Nq8!zxLJeL(XHG!68McZ38:A=K!+)nYYcqht[|քȄ-KL3IT	|J$!hEhΈ:|*ݦe?/nTz?29aݭox|3!'w^]Y5lmㄒa~|x/tree c32335c2638e1a9327e631b26d2bbd55fae83148
parent 9dc8e9646581332c9c8eb3e68ed5b11cebfe1db9
author fenglinbailu <liubin249@huawei.com> 1781183280 +0800
committer fenglinbailu <liubin249@huawei.com> 1781183280 +0800

	
布局类capi大头文件拆分

Signed-off-by: fenglinbailu <liubin249@huawei.com>;Vhx?N0ݧ޳S7$N`'M4A(H윀# C{:pX᧯L̒6rXD0hdȬqH0%KdIgiAyq.8]?\8>qطmuvWj-/sv$D(_Innp|9qmn1*=-+Vm6\\aKLF!9X:;nK!!ytkuxx1n0@w;
wbcWN2`Ԉ 7`G S;Vb|oxze ⨃FR.`-%!5*cpbJYhe'	wc1`US$>o`τMvӗB4}<|o6Qr|}gwx%tree 63ca5cfa0161afc0a13076a1c64541d07d28e9d1
parent 6d16be342bc00087f41d1103e10bd2b18fc3ad97
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1781178563 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1781178563 +0800

opt common format

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>]Tx;KAܙ	"-bwQ+⣰QPAZ3B|T'eq=SuVFpRz0\Ȁ5eHiWT'9c"'p3AĐ%]tiyk1?1>fӾRhI pt?cJ?~2عܿm=_}d`wxV/3!`#/WgG,eCTi#U!dxysyD`l/kECQV~1]ul\"E5:*HN	:cYB6oa:(x3kޠW0MbxCtree 43f07021c362e6defb708f9254c892048ba79824
parent 0c638b6849d038f7f002e941c8a300f5415e3a79
author wei-yuantian <weiyuantian1@huawei.com> 1781168275 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781168275 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>\kx=k0@w
E}])I`(#S,HbJ}t/"qL" ]SSlÐ,E&EPo<C1k!p)Ӳ),)$+t	_or~֣Ac՞s)/]?~;i?N|e*ۥ^xtree 0b4586fd57e143efdd605f78026a6d184ae32088
parent 2c1d373252fb840dcb9be5c900949744714ced3f
author CheryHome <zhangqirui4@huawei.com> 1781082930 +0800
committer CheryHome <zhangqirui4@huawei.com> 1781082930 +0800

update

Signed-off-by: CheryHome <zhangqirui4@huawei.com>SU-x)tree 8090a29f86aae15c854503ad64737da1896981f6
parent 31a30d9ed09734caee015bafc1b243f0c7d355b3
author CheryHome <zhangqirui4@huawei.com> 1781082185 +0800
committer CheryHome <zhangqirui4@huawei.com> 1781082185 +0800

update，与架构平台一致

Signed-off-by: CheryHome <zhangqirui4@huawei.com>;fxM
0F9ER$("gfDb\x{@pz2 	yg@3XBKL3}dMJףu0tb6	cL({kƠ֦/k-o밗z<ƺ]!6@4"0{\sVꞗ"i<;RHxCtree 04d8bd9fecebf275f6c849809be51134de5aecba
parent d70516ab42f83e66eff1c9013ad360af7ea20cc2
author wei-yuantian <weiyuantian1@huawei.com> 1781076213 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781076213 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>~infx=tree f49f91c046ea64413965fbfca55e0e5df14a0ce9
parent eb61f9f75b726c5563910c18215631e13e38166c
author wei-yuantian <weiyuantian1@huawei.com> 1781075955 +0800
committer wei-yuantian <weiyuantian1@huawei.com> 1781075955 +0800

update: 更新文件 ohaudio.ndk.json


Signed-off-by: wei-yuantian <weiyuantian1@huawei.com>	7ix1N1ާp8GAI	fc"h%"Q\jlCAD%YdMmrZA1f$-D G^X4ZOa^#-~lݳ6 RwVA?6.G$5}77^SwbxMN0@}N=*r: 'H3mIQHp{HlYLJLQn3sJa1*27YO#VT%@OmAԆXV$'(X3ʾ7O UV}:=z_PB	. Qo#Pcvp˟/Z>xQ
0DsKe&M*"l66P)-@2~C0Ia@ЎY"FK'z 뭧q6YdR(KgLP:o|zH @[cCIya!ny*Rާ+Zxj0 
KJVC? rb2Ƚ=aE"g-L<pY
F}.m@RO.fds.`)OG
}$>.kכjkmo\k-~\Vo55˻6!#vclR6ERunk)s`x1J1>H/+yI$W+B$o^vf' [T9bK[etfcl 2pU,^cIIYb]6%@-҆Rg*oXR~XTw/WJalm88<i];eb=}Oۗ'3&K][xA0E=Ei1L;30D,]%/̺m	@`O`s]6ShEb QO\yuPSٕĐ,yC@nuXVܿG\܇_<2ݴhRH.:}2uii9)YD_~ڣ>1YǞx=N1{UE2Bk?'.W"m$	r\ni>͔GR%  S`uM~p ,
1J+Hф*$h0(q/Ӝaomw|~e)mW`	9)3wfL^o87[qϧ{|ǩP#?~JQKj_ҞxνjA~brX	>8{bwf,Nk1iCjJd-[S8㤎#EѠBQ*e	k
EG:jW W E@FqɅ2GUIe񯒚uᯏ>)Kuo\8ʣ_a_
Q6.t=s}]{Ɩպ<k"[}|nVcx;n0{}`c r`yYX$*n.3< :JY "ҘE^!Rrl~yܵ7P멐msr'[E<Om߂x7Գ61Q6oawګRz_M4aͫRusjw{^7x1N0w;*8mwv"G.D	@%Lz2}zrGą**Tm0ZPLQz"JM^F4t5G	EAd V+W(-wn;~[f~>Vu)W4`Z Eʙ1:k=|ۏݸ}Y?Vof<>lv.Ҽ0kcC_Mo xJ1F<EzIr'`㖲$7;)vf2, `s8D1vVi@2t=3ʘ SNҲN4T.J'A[BjFI"ǹo;-\3q{Vݶ3`˺-kAjl/;z8[@sncWqPJ_a2B
j\ޑ mRµ޳ fɒx[J1EHRN%{pGӠwp_ÝYl.`MfB1Q^I}}j\18C%J@qS阗moUR_\o&eejKDO&.sɗ8<M:+.kzZ;?72a[x;0{=
MB;p]gRĉ"[ۓQbFMDcGИ${K`F:Bg}@&hCO:N8E<MD^~Y%9.M`MLS)o:P-J=1,)5_~>!Zx;n0{}`E	w	BAPu{L|ά-P,:2	h<
DNB$2Ad69L3-FlhAԎ}߿ӓgnUO>  uҵԗW{W.KO[x;0{=
Z;!8.#II(Hy2@&?Fͤ-hv0+/M@hit>!G6EwC4,UL[ƲV^9&V@tέHyZxi+)u_~z%>49[ϐxA
0 yER٘4ME?dFBQ<ʬ-dX 3D)@bF=4Χ`M{Kb\ĉe=rPGze2}n_Wm y  ι5W7-4ת=OtRo\XxAJ1E9E2J%<A%niu#Z4X)W,s|Q!(|ʦ˴	Bj)$ҝOX/  P:DzJ6E[
Fy]7{ryY=_|㹮7.'Ιozs{uNcevZ{?Omh0xKj1Dsya-&i3Q48}f:љ!%GPLB5HEi{\HH['S8yi0FF3]L$JQCgG&+I 3+>]B{u.mj3tЭOC~=[jZzYJ}qqRG{ĵcfxMj0F:K_*!=H3Uķo].MbRf&6D N2yM,g[hLb@l:Dchslԏ׸;=׾\@Ǆi0!]__X:_ýtXd >m>i:O7axAn  bQ"vQU}Kmc4ҌU<R'
!cd}ԔPAzuU1i'd]1Wg*	]r>Yc)K6H*Ƶry4>H;>'CtZ=Ɛ|"=@[m+J}"k=IU`xKj1:Ʀ5RKj}Y(>.ː+άI\&h8	iBr30AE}йB񑡆<cR<etUm[{Zo9}Ck\[z|*mh"x;9 @2U_載pzڪ|[1?S?3/^#xM
0F9ERiȟxO0I&5M)K"=xYf}f ]>fj&YL4ؤq:؄uAa*AKgE-^g8hy}7cϋD~<}^J|(ĭ#܅'G[x;0{=
Z'!	nGۓQΓFoZ%X4HG˚R+﨏!ԧ+-M*>pȖ@ tVّ]f4ͥ靱l/+(c_~	V+<zϭѿd-Y>[$-O0wa;T%>j$]*x;N1E{=
z3B6@=qxtAb Q V@,g  
Ɣ逢 ĄѡFC ^. +?xB %zr\Tc@Zf"%b<JtY|{|Q6eUh4xgRZ~v]ZK#
#m׷iȧLۇcgCγpsllxλJA~bzew."; a3+X."`B<N6ɾERkj8JiAH z t@d`EKuZ\[L(m6"5x,
=yIӦY5	$~>-PcFBS]piȜ4J`Z)?mgΛ_ˆ[/mY}w]|Ov5?l/㒱rRGSv 5nЙxtree efaf094a2cc7f3728b15890507f7b74ad1b80871
parent 5c5c9216109146f0d5c718ed4861223de321bf6f
author oh_hw_llm <liu.limin@huawei.com> 1780497098 +0800
committer oh_hw_llm <liu.limin@huawei.com> 1780497098 +0800

lite ndk打桩调试

Signed-off-by: oh_hw_llm <liu.limin@huawei.com>o\xtree 59d895386859a6d8984c5f25b4fb1bd17a2f16ab
parent e8a8c80338ac99c9d4b8db20c53f24078cb3967c
author oh_hw_llm <liu.limin@huawei.com> 1780495584 +0800
committer oh_hw_llm <liu.limin@huawei.com> 1780495584 +0800

支持生成lite ndk

Signed-off-by: oh_hw_llm <liu.limin@huawei.com>	\qx?N0Fw;
rl'Q` uc=򟟉ƅc &AN-  u{-x\鵭AW΍ԵÙ"Р3*&hUrBn=Y&^"encm\6*=?iI{H6vǸp(HBдv!g[Og3>7fNnJhΓ> ۗ篷p݃+Y9rqxLtree aeae11f722cdaa90813e48624715cf52553c82e0
parent 4c55ba37f8c22f4859b171ac61734e4a6643f0f5
author ZWL1111 <zhaowenli4@h-partners.com> 1780456549 +0800
committer ZWL1111 <zhaowenli4@h-partners.com> 1780456549 +0800

update: 更新文件 libnative_media_codecbase.ndk.json
修改

Signed-off-by: ZWL1111 <zhaowenli4@h-partners.com>Gn>xtree 96a9a8e36d6c1dd1ca27b36856b1b455aba6108d
parent b10c1bdc3faf554e00c9b7d93a610ab56b0da734
author ZWL1111 <zhaowenli4@h-partners.com> 1780450888 +0800
committer ZWL1111 <zhaowenli4@h-partners.com> 1780450888 +0800

添加json

Signed-off-by: ZWL1111 <zhaowenli4@h-partners.com>_Wx0@{O};c#;&w$tt@
E7ƅ{K=B iJ(ko=IKI@Ɏ6q:QdCkkCYDiHUd羦6;EeC'=ar[݅w͆Ҁ)0 lMLq}w;cRu!d8^{caxPj0+=PȒ%B)FU&\YЯ
m>akA$6;>漣rd`2&Ac =JYZHi3%3= ^YgmP+:Z8| Ѭ:9Ll2{/S_Bk4%(Z[Lr3~)25NnoMT0֓%s+=D:1#LNdqڨkN !eոs)g.-ڵm_[Nߦۑfxtree e4795bc8a7b817701bbd104df187d4e8ab09a2aa
parent c00cfb6729b109e6710c32487d07c6bec5ff561f
author ZWL1111 <zhaowenli4@h-partners.com> 1780386741 +0800
committer ZWL1111 <zhaowenli4@h-partners.com> 1780386741 +0800

修改

Signed-off-by: ZWL1111 <zhaowenli4@h-partners.com>Ux)tree 5bd5e46f4a8a9b634c6cda09bc3b88c148ae5a48
parent f001f570eda4c13e3abcdcdf1278994dd58dd825
author kuruminight <xunaijie@huawei.com> 1780384254 +0800
committer kuruminight <xunaijie@huawei.com> 1780384254 +0800

update: 更新文件 net_ssl_c.h


Signed-off-by: kuruminight <xunaijie@huawei.com>dx*tree 71ab1a3651319a0f113926e5e2d9465e0ce163b5
parent 0f60353ac22ca9083bd4d3f8f29d8ab9e10a4c3a
author ZWL1111 <zhaowenli4@h-partners.com> 1780383022 +0800
committer ZWL1111 <zhaowenli4@h-partners.com> 1780383022 +0800

OH_AVCapabilityFeature新增

Signed-off-by: ZWL1111 <zhaowenli4@h-partners.com>j]gxtree 73aafe8af97d9059ff63c24fcccdfcecca12d936
parent 05d0a43348694aeb95f3669f5066eb94d8c1d94d
author heqianmo <heqianmo@huawei.com> 1780373752 +0800
committer heqianmo <heqianmo@huawei.com> 1780373752 +0800

net trafficfilter

Signed-off-by: heqianmo <heqianmo@huawei.com>7Wx9N1 s9n#<`Xbǃ,g#bDVTs0bV4X@pQ.
Ih2Sbƒ.R	>Rr2wVsn}m|eٖGo<nϹ_ߤFRփ()%௓os}hqϖW}\^/?`xKJAE絊Kէ_UD4`8URtK! ܄\HtpZ"R.B ƒ9z, 
 dOɉT)3Y@ҽAKg~͚|=y3V糥_Q9c%?z(]G*%_.n7r<z~l/_m}]36*ӚҠyOcxA
0E9ERI2i:	fIĸ<Ãh;JиqD`'L$zP5VPRD Q  Mֈ7*z6ݩlwp݆ԋq.ƨsrJZdjJO?/QxMN0F>hf3B؞qc&UpTq{`ۧ}zcS$-XJ%&-	AKu^Bʾ5=o"i&؈I1ftŁTk1y/ ׾;{~h"}`zc8uM}Rc>eQ9˟1NS:x6tree d88974b287118bd2e17ff1b7bcf2438ca06bc847
parent b277bdeb7adc70f6dbc511542803248f28b1a48c
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780322416 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780322416 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>%hzx6tree 73513ff9714ec979487d852cc93a2db1bd5aa959
parent 5fb0f3f24f9ce881319722514b9030fb747237f2
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780321876 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780321876 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>zgx6tree bc090e31753cd3996cf25975f753e708925257e1
parent f288de76afe48ae21b22a486849bf31a26def448
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780321236 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780321236 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>	gx6tree 6a13967995e3cee762ede400fae42efef605661d
parent 5d8d2d9fa1517a03d59e1f5b3c07c25a5ca64f94
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780315942 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318911 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>*hx<tree cfb14e97e20f7d3d73467286561a9fa0f9d31081
parent 12dcd5b7543a1d0da7b3004aef8b158dcc73a735
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780307169 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318910 +0800

update: 更新文件 hiappevent_param.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>7jx<tree d4f4e5af1821da24b1146189fa2e90bcf090a9f8
parent 75ceafa3a4aa7537e7bf265df67b315437c80ad0
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780307137 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318910 +0800

update: 更新文件 hiappevent_event.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>kVx:tree 0f2e511f12c7cc6cfcf759e6f5bddd6d880716e3
parent 4ab12ecdfd9e3744e1b8f2ea4bff8198ddefef2d
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780307097 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318909 +0800

update: 更新文件 hiappevent_cfg.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>lx6tree cb4f9712ba65be931c2a0b501e49ce46f85f9bf8
parent cc820569412b43a3fd6ad1a82345b6be0352dc70
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780275885 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318909 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>hx6tree 05054b599278ff94d0020833133ecbe889eaabb5
parent a4231991b1714f599231aeee48ec2c3ed457edfb
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780275698 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318908 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>lh<x6tree 1a7f2c59a6c098cc3ffa529159cdc73173f0e6ce
parent 4ba9156824d3a3fd3711a930b5ba14e2d08d0042
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780275303 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318908 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>h?x6tree 0ac1cb925efaba0066702eac1dd4b67aa59dbea6
parent 458bd75833d0bb728e504ef1e22e85f8a56449d8
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780146106 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318907 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>i	x6tree b6d5c953d8197a5972a5f25ba409e3ad41a6cddc
parent 4490b6e62c7441e5e732efdbcb04b130de4db284
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780144082 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318907 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>9hؖx6tree e8d758776d8e0339c757711d91a93c0109142ab4
parent 11c4b0daefebdb05225fbc5261742e3067587f20
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780142351 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318906 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>BgVx6tree 5db61959711232c374ee70c5d84af482dbf45db5
parent cc18267b030f04b17fee2d3e992ea371094b3024
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780140610 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318906 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>gx6tree 8b697d58c6426b66cbe854a1adcce81d061544e1
parent 396a588f8da0dfbd24d626f42e36d536f9c2bbc7
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780139641 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318905 +0800

update: 更新文件 hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>'h˜x<tree ea546a19ce9562deecb78613a3e219673ab917d7
parent 077e3da85c46af8d11dc70042dcd223371a6b0ad
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780139005 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318905 +0800

update: 更新文件 hiappevent_param.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>njxdtree 051f0efea106a15ffffb39882d374a48daa17bb1
parent 536fd0bc20ac342f78a5e67c847bfd8b0903f519
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780138702 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318904 +0800

delete: 删除文件 zh-cn/hiviewdfx/hiappevent/include/hiappevent/hiappevent.h


Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>Mzx2tree ac64c18906744996873162378adff5914e1d7ce2
parent a7956869e374d16256ea552cd908e351eed891be
author zhou_xq <zhouxiaoqin4@h-partners.com> 1780121168 +0800
committer zhou_xq <zhouxiaoqin4@h-partners.com> 1780318903 +0800

hiappevent api一致性修改

Signed-off-by: zhou_xq <zhouxiaoqin4@h-partners.com>
^"gBxKjA }H<:3:NеAJ@?!["nh$,9%Lj
DT!Tg^R.jߣBHO#	]&UϰӦ3 G^uͲZO;lo\XR8=z;rql7z֌IMqФ4?_Z`7xtree 83f34650da4f5212f0676a52aa45323c5094e059
parent 92c85bd10eade0e913c4a0fc87001f8366686e80
author m00939602 <mengzhe5@huawei.com> 1780312295 +0800
committer m00939602 <mengzhe5@huawei.com> 1780312295 +0800

普通录像支持LOG视频

Signed-off-by: m00939602 <mengzhe5@huawei.com>
[*xtree 7a89dbc9b79d5380a04665cf3e04fa9d6d6f9404
parent 1ccecf8ab45682c5fc2107ad39152e5391222917
author m00939602 <mengzhe5@huawei.com> 1780307440 +0800
committer m00939602 <mengzhe5@huawei.com> 1780307440 +0800

普通录像支持LOG视频

Signed-off-by: m00939602 <mengzhe5@huawei.com>[xtree 402f62584ceb49edaf1aa36a03c19268ca14c9ed
parent 193772e4fc5b4962fc7f51d13b86d2c803c064ff
author m00939602 <mengzhe5@huawei.com> 1780306708 +0800
committer m00939602 <mengzhe5@huawei.com> 1780306708 +0800

普通录像支持LOG视频

Signed-off-by: m00939602 <mengzhe5@huawei.com>Sp\x1n0EwB{Ⴒ%*wR&k*О>2{oU."G罂":$Ӳ~r}@SY!xJhX8AD@Am-*mk^}s^ۤ^_S|X7!' 9%&LCmRgߛ,]QbxJA@%2wwbe'0&+,b/$blmDl6>'71r	W! MbV	 6N&N3:dG,B5jdl0E JVy\7
mͷ -bkVҀ`_vRHHZߊ\nt.燏Uv/V7qX̾u/;1Fex<tree 75c908d058e9e8ea14156949cda5447d9285f64f
parent 8cd5c298818aafaf1d6ab19963d793c34e7c42b3
author Luobniz21 <luoyicong@h-partners.com> 1780296403 +0800
committer Luobniz21 <luoyicong@h-partners.com> 1780296403 +0800

update: 更新文件 application_context.h


Signed-off-by: Luobniz21 <luoyicong@h-partners.com>PciDxKn  }1(rz{5Rl\UUwY7"	ZjmDKXؔ]Јm]jCR~ʊuNȑ\Ȗ{/Ik_vexF);#O ۮwA4>gmƽ%0j-ĭ|m<bxKj! }m?}!d {L+MҷO9ljQPPɨ'60[#	xp  G46:mCQJzc&$1Bϵn|y-m=TR;с(*%~A&?ﴧ^(uvN*[&1l~B|e|̗x^Y?ldxA
0E9ERIt2	fIۅԸ<|xo"JYG&*qO]Tz&M,hSN.#T@"Aѫ/mӝҪ>{2^e{S_h\}0h}]٪uRuVE-SxK
1D9E2Iz	zL&;W^,1@ J9(m*h#Qb3xP:d@2hhL)ǰȞ<]^ck][^i_"ە @"ĭr<QÒxOK1s$/[D,
^l2ٍ%YIj*ކ7y)AQK\#5hy]ȺUiDoE譬{H!Z+e݋2SYmlf8qp]pØs^ݎ3~[߀hRʢ+GURT?f54Ә.;oMGvv	aE6=t9;'`0ntG(O~'p ]3sC ]_ߝx=tree 3eb583479f94d6e29a37c1da80ed065f0cc464e1
parent b480edd228c8afa151b65c99280cbcd8e19632c1
author dlh11234 <dailihuan@h-partners.com> 1780127757 +0800
committer dlh11234 <dailihuan@h-partners.com> 1780127757 +0800

update: 更新文件 native_node.h
修改注释

Signed-off-by: dlh11234 <dailihuan@h-partners.com>kNxotree 516b1f7e701d8a8184c32c9f93e00feb8e427fc5
parent b84c148c8c80db9d57186473a311e216af18fc4e
author yangcan18 <yangcan18@huawei.com> 1779617481 +0800
committer dlh11234 <dailihuan@h-partners.com> 1780126530 +0800

scrollBar 新增设置高度和可交互的接口

Signed-off-by: yangcan18 <yangcan18@huawei.com>
Change-Id: Ic4561f7891ed256e32e67dacaa8d0f2f8a79dd74
~xAj1E>!Ehb;dMd96MfCiOPr{Eb@yH0#&R*1oZt$ 1eUp1rR$H	Ckb?cmumҏ7{BH!1@0{m}у{.TΚ9y;N;[x;JQ@}B;x{)2"$PtqPR8pHVёF@E.hJk*V>(b;j#јqbǞH!8($ RU\f[7rG3.RU
P .L\_&/mϟ߻ǯAi=k(-sx_xV=o0_qE]":u
qJ@RM__v{w CIkdR 伨KVU%m(.uZUdsh[YHmJqUBa%JB1We]UCoϖn5݇~тA!4o%!Y;ɡhK~ƦiЂmc,wȲ3(wV_/e6 Q}z3;{!(s3ӡý6(R.B<va pfp8_b'$NO,v=}D3.8Ũ<4|cK6cFpg*Dhɀ.ӝ67Wg6]YӢcy3ZFza;/lJ#44tnҹIwZzo{@iK>mvC_1'x1n  {^A9Z&!#"ythƬc%.d	%hع.VNAPpB$)BA2D֦T'~ggoܮ^>	 8_DuK靟/ƿ_,ʹy?O3J}Mu[a8xAN @(1;xʌ%ʧ=]6^ά[!hL8XJeF(1#uއ612: 
JZגn~eMWokh#Bu[_P?OEZ_Qu] Uꭾ\&2寧?n?`x1N0ާpƎg֋ 3SIE]"<kQ T]S
3'ٹ6lH+j	2Dcm*ok]EuNol^D4Gp`zcXGyޘIꔾx  bix	@[%//"bVټM"d#q=hxs(x>&D\9u`FkrPU!:JP-@1qaC[x 	2XUR%s?5mK|UԺ&e4V\(Q(LLMkצDIx{ئ#UYBVcrcxJ1<Ezܛ"Zډ#AB[b{8q;{ϱv.G6(VVTɊj%&PAT
R f9kL'"O[sADjw@.vr6J(72HB )oQVW76kX4ezflڜ]zonx=n1F{}g!;p=-bC$H-`KJt{Wf=@gaF9qhRM!$Lq;T		BC`MkaAǺNQZ.mLZx8~Q)|Qvb];^Xu©sny=q8gmx/tree aa7760535c455fb0b3d44efed86cba68deb9edf7
parent 77be3904d343879fd2445d923569a408e1d3b046
author Helinshan <chenchunming10@h-partners.com> 1780021731 +0800
committer Helinshan <chenchunming10@h-partners.com> 1780021731 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>_i_xtree c5486496ebffd041d024be5498137ec6bddeb709
parent 1d8e51c254a1e67071f24548514aec5df8c6904e
author ZWL1111 <zhaowenli4@h-partners.com> 1780021121 +0800
committer ZWL1111 <zhaowenli4@h-partners.com> 1780021121 +0800

新增键值

Signed-off-by: ZWL1111 <zhaowenli4@h-partners.com>ZYrx&tree f9d8bc9aefec2c4bd664a810c07284c00931d708
parent 758b8bad6144f70fa64d86b35485bae02a48c447
author zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1780019322 +0800
committer zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1780019322 +0800

update

Signed-off-by: zhang-wanpeng5 <zhangwanpeng5@huawei.com>Vu]xA
0E9ERiL""l*5"z	Az=uZ}# "\EcĚ6(-neIh8Z
kQ|$ιFykpt;ն-\N<~7 1Ӿ˙czNw!v>q(x2\AxjAFy郲wg`e'	ՅnXFB@t!`ec'yh[Zs\=Gb=a::2*6ҕ&x>Y -JE"w5kNȂyڦng<zI; l!oPd:tE ^s'~_a>~Nr>}
XT:A|]<$Z\x0 {O=۱b&D#KdTԈtHĥ7l	le+h ("PG*(LT#1FZIȷIGƁ@ /+#w\i8|v5s47\ :]/Z {?`lJMɹ	o?0[xNN0@׏5Bg/ё!>Fy*lI)k d	l)bt2azr)9{p-Ή5q"9~^.b8p*BlBG88j?G&>e}Omo.mˣ!Ĉ8T7@ CW5w",TyM:,ڊZx[ڲ^u8U8qϗc֤hx0 {OvF8D#KdTԈtJf & R8rn)уKlgP{!b$Hd2,4R1{+^]5q#ZCr f{K^C]8VcJU{[#>0[BxHtree 8fd5688e60fb133ee759c4933b3ad698bbd3af8c
parent 79a79e39cd0eb4ee9e3e9068e9afbd0193a04513
author cjjbf12000 <chengjiajun7@h-partners.com> 1779885621 +0800
committer cjjbf12000 <chengjiajun7@h-partners.com> 1779885621 +0800

update: 更新文件 metadata_object_ext.h


Signed-off-by: cjjbf12000 <chengjiajun7@h-partners.com>7kĖxM @=`oj
c'aORj*M&nk>CqLd籐>f߳&6A &}Z>DLfR"EĽ&iSQ F<y>v*o3M*' c2%xLCܭtsK|Zx1N0ݧصB'MUխt` EظLS-``FI鈸!%(!XFB#!PN	wz%E1&&HCZL]/Kv^E7r3K|KkH'+g`?uK8*-;|˝ymۡПv]iCqԦ4
?7hrx;N1 {=
َP8߮_vQb+})cd iiS* 2HMl}*06xHS.Mc:pbJ#wd6Ikn,/s=̩aNOy~#1xJbck?uRxXקw~UWÓ8XxAN0E9(iA8i$&Jܞ,`
$b1EtI)^mAo	BQA `
sl}Xy>+k
~Პ|Ř#%kͰڻ'@Y~E`KjF8Wc뵩L[)S~! a=x/tree 3729f2ae32a039f6f1b76a4e257df87bdbd91a2c
parent ed450abea524b51f99e90467cddf84ff2ebfed03
author Helinshan <chenchunming10@h-partners.com> 1779866778 +0800
committer Helinshan <chenchunming10@h-partners.com> 1779866778 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>aoxJAr	"z,3=N"ND} U]]" 4R"&Eј}Ҩsk0t\2!!$39xQj
/~GQNʋd`D0uxcY剷ͧ]+3-6[:Z#FLS(	چZnH_[M+˜N9u   LSŌ;a7c+m/<x=J1>H/# DDx|SLct+mRdӸ@ۧ=܇N
tڂPm	!fl%Xƭp@ap*'Z82J=>]N:OL֤f.Z~1_a&p	Aڵ9X鯁<LkV^x4^?f>yw^Bgm@e\~ xxA E
1;xCB0oo`%?y?otfid5zTN[&
%d)йt9(Jʀ%N!!	l' kl֪<6OrS_$:7 j/@ b_e!neL-)O?Pߛx;
1E"$|E=DbDt͈p*k*"uh4:Xr^
[ si% 0tNDPq2Nm(^(g̻.Snҵ8eg3f#ݏz߷!q1v%_F\8xBtree 7fd6a6cc40f7644cdcb010505ff113783a72c025
parent f36da20284c899d661cc34bb7dea114d4f0b80e1
author cjjbf12000 <chengjiajun7@h-partners.com> 1779785557 +0800
committer cjjbf12000 <chengjiajun7@h-partners.com> 1779785557 +0800

update: 更新文件 camera.ndk.json


Signed-off-by: cjjbf12000 <chengjiajun7@h-partners.com>dh_x1!{NAo c'D 9<1C*kc7y̫
#@r0A3ÂtYg
J{)=LbȃA [!pP0Nu̅^GϘv]~QǮjrCޯ(jt⌴u?Պylm;Y| [x/tree 7ba5aa387dad96e8b0c84124e092b0b8cc30b884
parent 23566a7c3e0b41c6dc357cf9b7106b0900b49951
author Helinshan <chenchunming10@h-partners.com> 1779781545 +0800
committer Helinshan <chenchunming10@h-partners.com> 1779781545 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>l_x=1@"$Y-OLЙe"Z	^d-+/\#*# 
b&S mP)$	= T9t6@6KTp,
y?Gu_	'{E3`ߓϧuwl6SqwcnxAtree 915357b5e57d110d457a5bc4994f7abf3c6ce5d9
parent bf1b16ae461351a4edb2fcf72c865d6364cf0bf8
author cjjbf12000 <chengjiajun7@h-partners.com> 1779778035 +0800
committer cjjbf12000 <chengjiajun7@h-partners.com> 1779778035 +0800

update: 更新文件 photo_output.h


Signed-off-by: cjjbf12000 <chengjiajun7@h-partners.com>ix/tree b0fca7c054120e959791e428ecad10db574b6a22
parent b06326a29c4df8b588b36442c7cf8afd96fe0cb1
author Helinshan <chenchunming10@h-partners.com> 1779777901 +0800
committer Helinshan <chenchunming10@h-partners.com> 1779777901 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>`Yx=
0@"T%'":	 ?_lR#Et-tr/D\g X
"7$ђҤD'ɁJҴTGNy&w,`{䃲<3X4-P(H>XS꺦r%\U#`q9m<\cr^Oޫcx/tree ab3c5e78f95b0f82902a724d071dbbf6c513d4d9
parent b3c9d51332e333ec89406ac0735d974ed80316d8
author Helinshan <chenchunming10@h-partners.com> 1779776626 +0800
committer Helinshan <chenchunming10@h-partners.com> 1779776626 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>6_xJ1@|EzY-,DKffXvfݠŀXh?nX-;8pRHC%=J,Gcp"ITVY1iȣ(y
'vYݙmja/|F)bS_
@aS۟fuzOc~~2q>	9äq.w8&?Nlx[
0 sKe7mL""$>Dj
z{{߁"ZXG#du(xgOHbRϸJi:h2Sȴ[c$UTWM˒2 Vd}>vp @1&4Tߚ*Ry,]͹K_1[xRtree 2980bef5278f223221d2ce1abe332ac1fd33fd0b
parent 98a2c3415d123d01baf1dcdeb91a9fb6edf3ba1d
author weixin_43212802 <liuwenhao36@h-partners.com> 1779765609 +0800
committer weixin_43212802 <liuwenhao36@h-partners.com> 1779765609 +0800

update: 更新文件 libhidebug.ndk.json


Signed-off-by: weixin_43212802 <liuwenhao36@h-partners.com>D!nLxTKOVWSEI$	j+$jd9u\#ǙU#dH0e-@egrEՍe_8:6!EMƒK&U)K)qQH1.,(6ĢRĤfԔ$dJMq11%H$[6Z^go
gX̡.DT+NtBT4*ipө4ItcqF]v\l8Cör7F;|~jzl7QSnUNݕ F@~8D.4kY7Q(QG}^e[+;|3-z/
牢!p>oQb`{Uy4fk`FcO>o
V׎ê 4U#y5@AWL399jn{(~DyDH )䌭DΘ	f_N=-?{/2<˕QV|m=[b)K(8k4XO"4I,<.lOP`wV9o\yQo|y56jCBOQŢiՑ"UâٱCzxq6q6K֫n8: gd'k=9েf+	_M>WÁ(6;^u5vÂV3Gyw}ޡlsUH% LJ_/AkԻs;70݆18;Y,I
`ڥAz0-
+ B9}n6|1޿cAR-]gJ8 }ouGr2x/tree 81db47376de1484db38443222e6b17540cc3c638
parent 56213d0c89072d41f22a2c7866a13b30dc17facb
author Helinshan <chenchunming10@h-partners.com> 1779696189 +0800
committer Helinshan <chenchunming10@h-partners.com> 1779696189 +0800

"Helinshan fix"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>&I_xn!{b,wXQd	Xl;"Df471fOӔUDkg44h"AAKiR0Zg)LQL1ZwZsA_\c]^AoT$b[;Y_TPJ@#
r+	E0OoBe崫9}7 cZexFtree 459e3a3372241a41395b7567aef12b42725adc87
parent 56213d0c89072d41f22a2c7866a13b30dc17facb
author zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1779689120 +0800
committer zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1779689120 +0800

AVPlayer支持音频自定义后处理

Signed-off-by: zhang-wanpeng5 <zhangwanpeng5@huawei.com>X`r3+xn@~Qhl.DULc	lMTU**AiPpq,R%Hxz|Y
pu9:hB BsTXq0^0ILa,"XQ$
ψ0G=DC
 ȧqV8e{,rڍGno?ElYx8Ari!fVdYvmg$)+>8%-Pez9"ѧGIYd4lRF#P"BѮ 2"=,ca j1_֏6 !6֛-~oYpUechð%^7VIsD:n-8_yUB %Ye[zY 瞜889c9kmLP$v46UlTE%?.MNPm/^?6&ntF7Ä<l]6fIIs/||7I3]-Fjd;i)RdWx;N0E{=
76B=h̐H89TԈSљ(b-"	e\ uP}`ŀ>eKD!X,sk{VjI?NWo^4 ڬL2F]/Ο',tlq&X25|=}ayx1N0 {=
&c#vSIEFS7˞8O@9A|`\Xȁ9%E XI(d!I!<VUܿa6\K?z{,`\t\VzLS}V<zQ8VwᡪMAcOxKn  }䊯r{5RlUQvY7D H% цd;jo%i"l3&*Ca< D 2;rX<\eopmur\x'Ex!i;_`}ڦi;ҽIX.?+P|q7bՓx1n E{NA9b1Ea`0HY㰸=}\}'=љ%P!Z#;kU&dE;uކ9-ϪE8u.83!p&	:ں,=׺Rwϗu:{c~M! 8R⤷: :|Ki}.jZj-ĵ~nVo)~ axAn  ＂{ja* nCshY#B-!l0AgcDj!2OIHA&&qlT<Ze5=I	Go ^JzA5|6ǽ4ZW8UdXOn?axKj0:AR!!02ǫY{EF'\|Sg 9*{F]@Y Fg<5mĂFcKNZԢ|oNgolԯ]>|QQ)qK/N]̭i~,?5#WިLyZ)nԧ`xK
0EYERI󏈸P^^_l@ӁގˁsqhFEK;z">hKH*e lJs.iDm͐BLhz !2XT*O0<A<u[T{,Fzc5	/=FXJ6RXqFJ.:ؕ:x} Ec7x=N0{=
_ z~&8xNVԈn4hF%z`&[B4zNy3,-9Eұ!"Gb(	fDKaInIJα[ݤush}dr`1nu:>OZZ_qWDJ2?nN	bGxAN!4``M,ʵqRIU̲ECXT$RDƤ"+4xRE4Lƒ= Q#K"֊tέY- 7n՛;#ۋG.(TPJ\ϓs}hqFr Bk]oW*aEx;N0 {=
Z ZX)Ft)F3z)Z8YI`AXl!-9FtCACͦlDL(s gϱnܼ~uK?v{ц(I?P1ϳ*|8GM+םz{S7dax9n0 {Ka ˈ%*4UدAYJhEO#;Aq
.eo]4V#1"OQ9RH-f?}Mf^KYzye{]woFZWJZzD}ε͸y?^⬌Bi9<qS Ncfx2tree 1e01d0785a5164cf70fb60da99beb53063ea165b
parent c81ca5f4c0e46e2a56b9d083674566578d106deb
author weixin_43370416 <jiexiwen@huawei.com> 1779502249 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779502249 +0800

update: 更新文件 BUILD.gn


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>a"xJ0<Ev9I4mDGqiqm)9ĭPAuݽ{/o_)̣F[cMJq[K6tc:314υ v;TK}I`붧.ӹ4UMQkR^ZJEXy_`b_~fKcz{62eW\A7i}ldx-tree 207b9ba56f553faccf3fd1c3d841bf7963a3d502
parent b386210e038ef99137c83135713ae9f4f1328e97
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1779432595 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1779432595 +0800

修改错误字段


Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>h	fϛxKtree 233d26871ee9b71fffcb60840ea3067a4fc2243e
parent c73c6a3040e9e07b0193d600366cc7ff1355c30f
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1779420301 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1779420301 +0800

fix Rect interface
CO-authored-by: OpenCode+GLM5


Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>Jjx2tree 6eda32827c1c7739ee61ca0e772764ed134492dc
parent eda8381e2089158131976b7da2b96be0c485e6f1
author weixin_43370416 <jiexiwen@huawei.com> 1779416966 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779416966 +0800

update: 更新文件 BUILD.gn


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>W`,xRˊAW\Gucq@ƀB7IWө|,ąو ~k2auP pY{soAg8,NLg0X"e*JxV4eYB4,bZk`+E+*oE׏7ˍآ+1c<rFJI@W{4NS6O}2u[)pݤvn+%h\޺j[!]TPa`?D%juCtSf@}d~ztMSr Pe5ƭ@%6vmmCTcԽ ѝ=ƥu}nˋO|ԉ~!cFj0Z 8c"_2>X!PnkD,պR&i2i$9Wܝx=tree 05beee3a3b625ccaff2a8ee17e6ac139ef58d2d3
parent 124221f81735600750c8bff50b927c1c917e2566
author weixin_43370416 <jiexiwen@huawei.com> 1779412399 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779412399 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>Qfx9tree 8e145eb8e8319f58edf2352f9098b6fa7dfbb128
parent f1ea39c4981a7ee62a6bca4ba2d42c9b66787474
author weixin_43370416 <jiexiwen@huawei.com> 1779368742 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779368742 +0800

update: 更新文件 ndk_targets.gni


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>ehe|x=tree 3efe6be08be0252b0c184062b8d0b61393dceb29
parent 4f510d2abdd4bd19c637dd395a696627d58d3672
author weixin_43370416 <jiexiwen@huawei.com> 1779367655 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779367655 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>fx=tree 1ca49f94d62e8f9b01f55c5f0157c7bb95fb2f37
parent e9ed57635a46ae3c53f0baca72614e657fd17bc6
author weixin_43370416 <jiexiwen@huawei.com> 1779367119 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779367119 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>*gNx8tree bb4fe98123e73c1145115909ab328f6fc0b8d07c
parent cc68a184e2bd4ccce310b61894976d94b83603a0
author weixin_43370416 <jiexiwen@huawei.com> 1779365605 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779365605 +0800

update: 更新文件 net_ethernet.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>qd!xJ1<EzYInr3lgeovKF,W,DmCTpIϸSx`h%m07Hn7ՑCJpNΆ=FibǼNlB zJc_3,ףԧ1JAOfTw9BkP׾?0Zn43!j"ݞ ex=K1٥rt)%6-g-E(ۡ~z~Ox~s9 b4
P89㡆4 f:˨
2UDLBRiHR"A4I ю;Bl.^w8DDh	' G-iі4{Һ/"@mCfm0/N[uۖVj7/*_Yy7)__÷r|]ֆz˓E1W#{>+/_<i-Z/jʟσOpx=tree 979ecf58280229646410a4c37eacfe03929dbdd8
parent 7aa329c9b9c6af38ed6efb495b7ab4d6e9dc285f
author weixin_43370416 <jiexiwen@huawei.com> 1779332443 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779332443 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>HGgx8tree 84379c09f733d5a11c3bdf479e27b727f694151c
parent 375716ccf9a0f098cabf2d57bb11e1b6a11e616f
author weixin_43370416 <jiexiwen@huawei.com> 1779332404 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779332404 +0800

update: 更新文件 net_ethernet.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>:dKx6tree f3085c54664f242dbee1e3f3651e1c6c6eddfe87
parent 4f07fd62fac22f879bd84b31cb832dd59ba9260f
author wandererhh <jiahaowei1@huawei.com> 1779330964 +0800
committer wandererhh <jiahaowei1@huawei.com> 1779330964 +0800

update: 更新文件 metadata_object_ext.h


Signed-off-by: wandererhh <jiahaowei1@huawei.com>&hcHxrtree e72c912899ea28796fa73aa4fe7f81105b16195f
parent 579bf232c1ccfaf7247abf65564864d033ed0b3d
parent 9488b685a0ab2c5767ff9a468a100ab2307274fa
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1779330800 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1779330800 +0800

!5179 merge master into master

API注释参考一致性修改

Created-by: wwdz123456
Commit-by: sj
Merged-by: openharmony_ci
Description: 关联的Issue: https://gitcode.com/openharmony/interface_sdk_c/issues/4021

### 修改内容
ipc_cparcel.h 文件中 Uint 系列接口的注释格式与同一文件中其他接口的注释格式保持一致：
- 添加 @syscap SystemCapability.Communication.IPC.Core 标注
- 将 <b>OHIPCParcel</b> 改为 **OHIPCParcel**
- Read 接口参数描述改为 "Pointer to the buffer for holding the read data"
- 返回值描述改为多行缩进格式

### 涉及接口
- OH_IPCParcel_WriteUint8
- OH_IPCParcel_ReadUint8
- OH_IPCParcel_WriteUint16
- OH_IPCParcel_ReadUint16
- OH_IPCParcel_WriteUint32
- OH_IPCParcel_ReadUint32
- OH_IPCParcel_WriteUint64
- OH_IPCParcel_ReadUint64

See merge request: openharmony/interface_sdk_c!5179)x1N0ݧ^8F1!u{$HiP
u혁lL=M	t<0k5%B\*OBEQ=f1@d)#8TM?蟏2~o_CKOuy뾻}@gmiQsڜT\,8sƽ^k]{Eqs1(g^xMN0Fs
﫠ǓBH]u	3iS#A/q b}zO-&=%P1	SQ&=!).ZQ'̽Hi 8%<"C|jy1gB`řd͡[ex㵱"X+f"qjMǻxUK7c^.u+NZs=7w\xJ@Le>@H&'vM$NEw*U+FZKu!ظaW0.\9Q	    (800MC;дy	D

`0m[*58!jqIG}XuEtV)e*d}^č%LqmsF*C3rǟC=8ov4gWQ=?Nmx^qkaqE2qS5:8`ݒκ_BT󻝬{[8-?}m""W#*qV~ \xFtree be6ee9a39b3dd3508a9aec5f10a7628bf235fe29
parent 2c1c0fd912e46822162b895cbadd5e5c0e90b768
author zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1779263723 +0800
committer zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1779263723 +0800

AVPlayer支持音频自定义后处理

Signed-off-by: zhang-wanpeng5 <zhangwanpeng5@huawei.com>L1s̔xAj0 zދFBȻR,HɱǒLR"lRQɑ9->ACv#},&:-&Sf:L Gz2yG5}ڛ
w:AZ.9i܍_g_Zx0E{O=رb&)2AhX2))(9ѭIR-Z }:A{/bgW(WFYHP{'
)JA:/2wT|<4_}$krYiqEh:_6?a8f͔Row_x6tree 961a94fce121800714609d22bde0fe03b3fd4072
parent 99918ce25a5488c8ddfce39ec3da4e12eb1751aa
author rchdlee <liyidong1@huawei.com> 1779179810 +0800
committer rchdlee <liyidong1@huawei.com> 1779179810 +0800

update: 更新文件 native_avcapability.h
格式对齐

Signed-off-by: rchdlee <liyidong1@huawei.com>kxMJ@sK$̯z _I$AWƅ (Hx`.c@p<s2)pbR c'46.ǆ2'a28PNDǊhW>j,ɡZP&$_ں9'BDH>e
{(}xxnx_ƛ>nܾ<w}XmǾE謊{Uk#<_LX	]~0yx=N0w;
KFQ8 vq:(q,lH+4}/BSiaK("e 1)-Enu>P)8pR˔IU"GT9c סnZ-YWf~Q'1'xlYا@\pz$c$ҕ$_0ݿa0>>a}zơo?˓U\5g)V)Kr>D	;vΘ!xn@F#u3!,X=3%bG#讑iH# R[MBAR1x<*I7amA>kp|LMnv	mX.$fa
-c,\>3Tȷ<@:FC1GY?Д,Ymq]arj
Ҕw6^z*Nfi+zg:.GvuKqQWj2N`o%QMr";x>];Ϳ[M4i<e~^39׎#%	žܝLc'N5Vx>ȍ5l,%^Urvwb|(vpҀ\ $X"5os6  xx4tree db14823f5a34d16b43bb27dfe28cc62d075eb7b2
parent edb1e051811e0bc5159ec5d0fd408ce57ad6a533
author buzhi_ <wangzhen350@huawei.com> 1779177604 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779177604 +0800

update: 更新文件 background_process_manager.h


Signed-off-by: buzhi_ <wangzhen350@huawei.com>fwx$tree e09d79179c8e4e8e2ea2d5d6c89aa94dcd259f32
parent 1e3d1f20ff0fac9d1372a10d53406ad5d8dedb80
author ZA2333 <zhuan2@h-partners.com> 1779176013 +0800
committer ZA2333 <zhuan2@h-partners.com> 1779176013 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: ZA2333 <zhuan2@h-partners.com>E]x
tree e5c34430b70d262f10e5f4ac8e211ddd7a94795f
parent 8b8ae21ca61d7e3ba3e9fca1a858186c055aab20
author ZA2333 <zhuan2@h-partners.com> 1779174398 +0800
committer ZA2333 <zhuan2@h-partners.com> 1779174398 +0800

since修改

Signed-off-by: ZA2333 <zhuan2@h-partners.com>b:R1x=N0@w;*|F?7EP7UN0T P8n[ЁOzz3텃;+x&2C\ˆfRP
@L0a x&$,bM^մv:q1+|UE>XjrNy@CO0FtR44?v~ط߼v};o~}hwx%UlvvdTrxtree e906471cbbe2ad82cd242887c0282c839d48c9a4
parent 59d997a6a720f7ee3a9d18c31f39cb7f2f69c159
author buzhi_ <wangzhen350@huawei.com> 1779158301 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779158301 +0800

api注释一致性修改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>^x1n! {^AEC^:aY}\Ľ]UI2@ĊEsrL(g.6l)Pg5 *TM83E83|k}mT|+ߤ~.g!:`Ɛ7EŮ-_1?2uթޏM?gYxAJ1E9EҒ 2j֞ IUa:vۍDw^q<-ݯO#lBƓGPɀE;Dͨ#T40l1T$	Bf偝sv1G-<m(C:u;.S_K4yRbq49jhzNvu{ɯ󛤒>?^/Bv۞*9W:穸i\mh%7GXFG
g( XgجU	%ulxtree 0d823c5a6839c1b2b6c8666cc81c39de441b12dc
parent 4ca5a9e983208cf4414eb355662371c1d007134c
author buzhi_ <wangzhen350@huawei.com> 1779113760 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779113760 +0800

注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>7\ܘxtree d79aa5dda444aeefa516c006cbb8ed27eab6a0db
parent 008cc94f574f12075511a3ed6cc697ce7bcaafa8
author buzhi_ <wangzhen350@huawei.com> 1779113736 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779113736 +0800

注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>_|xtree 5cadcb94aca4cbeeabbaf7495a5bd890543cfefb
parent 027040e127fb2b4570fddde01f852491348d4d5e
author buzhi_ <wangzhen350@huawei.com> 1779113016 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779113016 +0800

注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>\_xtree d64e9089d275340bb5930c5d72867da81febd44d
parent b98112a02a32bdf5107c49cdb1026bb7eecf878b
author buzhi_ <wangzhen350@huawei.com> 1779112112 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779112112 +0800

注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>]Ƙxtree 16c6dc7aa1eb0d64a1ec2dfa8b3da479c0ace7b9
parent b220b97a6aff4c4542000e9690a6be4db3a2c180
author buzhi_ <wangzhen350@huawei.com> 1779112086 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779112086 +0800

注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>d^қxtree 556691852503631415532d03be40579b87dbc3d9
parent ca2ffab007c5eeed76b49c8e8d2f8e0271470262
author buzhi_ <wangzhen350@huawei.com> 1779108922 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779108922 +0800

api注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>[^xtree ca9b434dbbe3ed604d215d8dc4d8ae5ae1df7e45
parent dfa7ca64a860e05a4f4bad02a18870d7fb39c84b
author buzhi_ <wangzhen350@huawei.com> 1779108834 +0800
committer buzhi_ <wangzhen350@huawei.com> 1779108834 +0800

api注释一致性整改


Signed-off-by: buzhi_ <wangzhen350@huawei.com>K`x6tree 60159d02c8cd9fe6408c19fe4873988e8ae687a9
parent 04d4e2b64955d13bdfcf2e4271e383a34aa6ad8f
author sj <shaojian14@h-partners.com> 1779105114 +0800
committer sj <shaojian14@h-partners.com> 1779105114 +0800

删除Uint接口的@syscap标注

Co-Authored-By: Agent
Signed-off-by: sj <shaojian14@h-partners.com>
^@hx;tree a067e8e4a323cf9cc4c18574f23e5d1e3b5226c6
parent ececcacf35f2bc24616723077aa1b411f5a3df9f
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1779088576 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1779088576 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>i8xj1{=ViIgI+L
w.{UN"KR||S7pB)F{ ^,0̞E&s(6:Dd88Ky҃KZn{~ѷW^3F>AjoRw<^R!? rU9Kꖜ~zYcxj1E{}TĭYYI\ek	c7K^s-0*(ibedLFZ!
yOZcI1s6Q%ް
šM&/441-^-ڱ݋ye,)c~)G~\!orE3q朻pzKX<cjxJAFyeenKQlL'?EvV6aE>`ylH-|Nnw)ZzI%K)$	#-f+2-r8GȮrٴxMwyOJtdb|	oSL҆
8>"4u35DK%/rU^B{WyW~?l7ϻϏi]>ͫEP41i.JP<HL,(>ᑍQ13քN7
xxKj0D:EMK>=!!ݲ)s(x0XɁ̈́lS J'Cъ=ˊat)	MʒAu ZZ|w%׏3lpm5(|YjsPzDZ
?J*OO0gؠdԽTDxOHuڐSyyX~b1x=tree 74e0d9db3f437b2e9304f840749ccdb5f9a41874
parent 3890ee1f5db1fb7590b43dfdfb044fd2254cdd0c
author weixin_43370416 <jiexiwen@huawei.com> 1779075828 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779075828 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>9gJxMJ19E2%$i3&e]Wޕ=Sk<{WFt0eRNsE1QR)[,ў>leG9f0
P&BH@	iy RS̦5H["UJ'tz;<LOe>faB&5?-qWz	mm И
7F9gΘxJ0yrҦ9"2< iL;0ƅKa@/{w@܈t->{kyr!g+	hDUAPib+[(;YQlPTTKRIlCχZBN,DoaׄJ&"]v1;xvy:|67v}dl0d{|:OQ7	:7jxMJ19E2$DDZ=x/Lp_ZW
pF<O-ܢ tVXޠt Z 2#aHTֺA@_Jz]WZZaT1|V(cYjbG	=B)M=)`8=R,0iH6%IVOۇ׋6e],?7-!g8:q>Eq z_w7?alx=tree 725ba9471c0ce7e99a0f6943ba3477d04cd4b7e1
parent 1064aaa408b20457064c547d757dd2806522b087
author weixin_43370416 <jiexiwen@huawei.com> 1779070849 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779070849 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>gex=J1@"|_2f<A%qv':drA#gF`xJ#*9:)*LXyj#UƒOw]l`5{0ʃD^kԖB%r 2(v޵xclN)o.8cQT`34ctm4|/0opC9ğ暱殍aSZ[Ve+xJ0}"{gҤ"("q666UWo(.{/|e!^!jN8'EvVY>`\NvV	8JHz4@0J9kL4y@7rɴ~*k':RN5 JiLzk`"-3<7z'=VY~KJx=tree 81980d62438ea6a8a1621add8ef3c328b66541be
parent 151d8aee6494496e19b3e37e1843788b597b0b2a
author weixin_43370416 <jiexiwen@huawei.com> 1779011443 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779011443 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>pex8tree c147bb00e8065e5f29cfd42e603618a6c67cf61c
parent 95cb6d7b56ac6a2dccc3bb2da0dfbd907dd28142
author weixin_43370416 <jiexiwen@huawei.com> 1779011423 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779011423 +0800

update: 更新文件 net_ethernet.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>Ykeyx2tree bb7e4d6d9a44ff026a06fe867ddc0513b502cc25
parent adc115cc15f0d0f0f0a8273eeea62bcfde20c97e
author weixin_43370416 <jiexiwen@huawei.com> 1779011393 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1779011393 +0800

update: 更新文件 BUILD.gn


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>!bx;tree 5052e26b31bb360812ae85b2ac1706864bee3d5e
parent 51527042d249ebdae8047d16332a9336f310dc97
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778922218 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778922218 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>/gix;tree b371b4582dc980f65b8e2d6482a4737d5392b617
parent d27f4134b81b50651cfdb7e5a9a179ecc70b9380
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778922213 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778922213 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>$dgx=tree c01954259a5561fe6e0523a523ea18572f89ecf1
parent fe12e6d7bdddae0e13366635c38c1582dec58505
author weixin_43370416 <jiexiwen@huawei.com> 1778914276 +0800
committer weixin_43370416 <jiexiwen@huawei.com> 1778914276 +0800

update: 更新文件 net_ethernet_type.h


Signed-off-by: weixin_43370416 <jiexiwen@huawei.com>fR#xˎ0EڣѝFӰ@ F5#?IfWT	m:u}U"鮬u8S;s.kJݴ
%$VG滦tJWth]RRڢUe.Jq /o|1c1li;y:UeYX2.sz@yO70#W-|;۫d'-4jЫu{o0BmG`&fN'h\PHi)FEˏkdeK"
$(V
Xr!>Qv=66xu-oO)/i\'2LolxKJD1 9E2uE;x ɧۉ0y#ÌAVAQkelYx6Ft葺]沉RDQS \z®f4n2c~C=12Ϸr]ެ#1' 栗;`Վy41c|MMT^ve~KWTxM
0F9ERI&"<Aҙi-5Y-k}<xnDe%!>XV23k!8cMbUc$EH>D2!!&fh'":.|mmZg:8"uQ!ȃJާZ_9:+(	AN^ܓi	+[p.XxJ1DeI'݋i~Aܙe̢OuQUcWD\̜ZbsAȳ]a8ЗX)))DX~z^{>nWl]J> #~cLQݍyUeZUr,,'{r*J$6'5yg~ 4)vU	Px!0 @e}E᠝NGǱa5UHNڑ{}h;TQ`IA"J{&*[u9<&CTdn[lSՇޝFZ
ΖØPbW-O	Zx%ͽ@@a)i;?-CD%BQ,HHTO_m
u iPQjWp3#Vyg-9}65]@hsZUKAv!b?+vn==ChJ5!mva-ڐxN0y
QMۤB	mԦ{{!%a"R6VR
\-R`eӴ`{ͤ\iԒ+9\V3L)KЏlOf9WmQ48DJ\B;_ffG3׀LOf-4/pt[>FX}QqWnIk||9bBޢ!3?).e@8w43v?&|dSMqyض> G]$xDtree b4615401374713869bb80466870a301c7cb62adb
parent 6820c712421f12a3a017a39eb9bbf4738cf4cd78
parent abd550a49b73a968ba89c2f24e0c033926772c62
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778838221 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778838221 +0800

!5064 merge encoder into master

add audio codec setting key

Created-by: suruoyan
Commit-by: SuRuoyan
Merged-by: openharmony_ci
Description: add audio codec setting key
https://gitcode.com/openharmony/interface_sdk_c/issues/3925

See merge request: openharmony/interface_sdk_c!5064S֛x;tree b371b4582dc980f65b8e2d6482a4737d5392b617
parent 83b3d8338aead00189c613a7609d431766e2025f
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778834078 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778834078 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>}_g
/xj0zmC^	a= Kc[4f߾cPB/bFP;<]yu]J՗ݱ5c+TDGp4.,cӜj-󃖵6lRbnZh^r<ܖe1tőQCS1o\wD_x>Xׂ)ZGJg!	~YAE=ZBMKDY	3Eam@EfEzޡ_ЭE};Rq@	a#uBSqS!#V"yOˌaW	 SF^
|%"a{mz{:5`laFXrnXu\lm-x3l[s/n;*g]&tk&-|#̧oh7uxAJ1 yEe%3"d{vDfd~VT@${Fe$Ri&\TGm됱,3EaB3SIsQShɋDWFml|uOn/Lfx{mowWsSWT	ܭ]ں1Q\YƝxtree 95d869c4dffdda13e4bc004d9182b037e4e3151c
parent 990bc02b62305298939bf64f4ca8516a91854721
author Oujinyang <oujinyang@h-partners.com> 1778833117 +0800
committer Oujinyang <oujinyang@h-partners.com> 1778833117 +0800

蓝黄同步

Signed-off-by: Oujinyang <oujinyang@h-partners.com>=^]x;tree b706f5fee7a4cfc1a0efdcdc8f921c8a7599f537
parent fd7b6a0597a2732531cb6cbfec4ca17682295c37
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778833106 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778833106 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>"jiqx;tree 6464de382c246ca6c090ff4b6c5a66d9d312fd00
parent 4f1229ba3dadb1f7ad13677dd5334d9e8bc32c43
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778832156 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778832156 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>=jhǛx;tree 7bf63b2ecf1343b750ec6794fb68e7d351230725
parent d3edf4b3d807c357e829d32a5d18a772324c83e5
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778832094 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778832094 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>zgx;tree 47151a3c01b2485c36ba3ace432442d03c94c01d
parent ae8dc32e0e8d7041bdc437fe86e2568232615d86
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778830742 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778830742 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com><-gƝx1N0D{=
|{V+Qm	MQ֑X9詸dKJD3L1ymaXk.{A4%h9,\D2rN6ZPAk"_PN˻_0v[k+o{J(yj#֧<!t*s/?sN7 	#Rf#bC2  i{x=N1ާpw!;pwiѮ)p."ZqRPPBţ$x0`45䁕%ؓFq3&C JkN&P6)Bg{D|ii%XU>}w[yO(U#*;@ qcikh4Ex(r:~^߮B<]塛ruh4xRmk0_q/M/	c,`hiIԖ$g˿i֮)B7.8D(ż2̔P\`ZcYZe*JA84rO\fb)
:!1Qu11:axw|n#
kE,OU{0sD{+F8{>V*Q?06\2ʂr۞&N@3=xmjТCa:]݄(1lqh8P/aB8(QĺNm:Qդi4"%M2ϠGg_n"\K	o=S>8}Y	q;%=)/v><-r1	Q=uS^tF>;ocD}9`P;|Ҙ{JE*"$xQK0~_qt4tC)l*.ehS7{2|P%\#w%eP8M6#i^Ȅ$l[rPTsM:S)Ta4U$YBs6-Kt%\~~m.es%8czO"3cgkۜ+[:X<àwNCǺ[Vm'`_7M[C'X/@!/@}*f)o}sCu]InfJ<xkr:3#ȕAg_YtmŸe	9Q6lf1Q<@	³x!tree 6b0dadb7bd23deb96ad91f3e28aa9fd27bfc6e17
parent 26923eef87af7f4e7f0c187e1f45339394ceb708
author zhushuanghong <zhushuanghong5@huawei.com> 1778815669 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778815669 +0800

1

Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>p^x!tree 9889e4d9389d5e8e46a8c81d879b450f3467664e
parent 214ac472b6b310b0c8327b8074de61aaf8f819ac
author zhushuanghong <zhushuanghong5@huawei.com> 1778814378 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778814378 +0800

1

Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>{\Αx!tree c74d8ba1665ce80b00278aabd4bc73177185d592
parent b11207b6f4da5d5a0de86e3980c22c67062d2663
author zhushuanghong <zhushuanghong5@huawei.com> 1778811057 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778811057 +0800

1

Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>\xj0y
=vbVc!زܘ6vqσm`!OB@-K,BiIPj@ql8)Esj4F@`oy;5paA5JQR:&&=HvN|5QY&6n-7wM]bʁ+66]݆>sו,ҴF=NocUrq!|oTPB/wZsTߧJ&z)49v CxKtree bcbc0bc0c585a0dd6839f053ec24dc4ba4952cf8
parent d1cb7f7a6e17e91719506fba9e8146b366ceb8db
author zhushuanghong <zhushuanghong5@huawei.com> 1778808824 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778808824 +0800

update: 更新文件 transient_task_type.h


Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>rxKtree ecc4cac99db3465e8e431f20becbbdda41d0e1fb
parent f1a723d74e497fa8de23e6917b5a53d214697912
author zhushuanghong <zhushuanghong5@huawei.com> 1778808775 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778808775 +0800

update: 更新文件 transient_task_type.h


Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>rxtree 94dcb8dde42fb6c5e672cbd46bcb99613193fb9d
parent 92b6f31a1ccb9ef82be43a63333d6b1027068577
author chinese-deer <yezhenghao@h-partners.com> 1778805447 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1778805447 +0800

2

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>[xPAj0K#ٔ4@i YZ9Jc)rH~_%Vaagv`&Dh(gQRm	SRWTڐ"ȒRtJ\!\if4j&x]]!dctcS c/]i7]{f*:cs9BIƈz&ƞn夭k!aX/Ϝl^Cn/Ñf!nʻh:4эMl6갟,|6F=[3r-,VYSa{xoL%_o  xN0EYhNBQ@{4v8=nAlXw̊F4Q^\zZ\s伬)d{dJH(!Fx]Ŭ.y)XFΦq-.a;zDTT
r!*EYe,	̴:Aw>O$XR`lQRڻfhc]Ŗ<c7i qO|D'=Y@V,S$w'6N=Xn{g!ՏuR+f,M[,%܌sX^IlmZN뤉翾}z(xQKo0Wlv
nv5H]Ylur	aEJ%Vi^TSvPY%*VXeƥAx%Ik)Uk-WM˴^.$gbç4/Uz1DD,)nʢN>sF{iNʸkn͏v#>QM@Y@O]z`tdx1]V퉺U}ol=x`-xCD-go4l"x<&EjP8Io8Vm o"?xZ̼͜
4GzcгDZ˗a}]fl2bYƮ\ԜΉ*<Nn7Q'N먣o:<v0xtree fd96f0cfa1d31a0affbea3017ef28d560399ec04
parent f62cdb81ce1808809b04c750ba94dc78781a66d7
author chinese-deer <yezhenghao@h-partners.com> 1778756503 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1778756503 +0800

1

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>[5xJ1ye$?=d<'褻wvgd̢y:TQU%B 5O&g6t-
80\u8Tdh831fCZvտ,w}x~pF!sfok/0^6iW-2Ft=RK(R1@9`n<b~ uoxtree 26579cb149da91aad8a7f58fe17c708a5ace84d4
parent 0f714c11cf2c346441d2c68fd97c375ebf13dd51
author Oujinyang <oujinyang@h-partners.com> 1778750022 +0800
committer Oujinyang <oujinyang@h-partners.com> 1778750022 +0800

api

Signed-off-by: Oujinyang <oujinyang@h-partners.com>0jX xtree 3d2cde1a71c45fe3c95795a5158f42c694f2fd43
parent ef1fca849d9f7775b3136bc1bb220eb21b38898d
author Oujinyang <oujinyang@h-partners.com> 1778749261 +0800
committer Oujinyang <oujinyang@h-partners.com> 1778749261 +0800

api

Signed-off-by: Oujinyang <oujinyang@h-partners.com>!nWxtree 785dc896b5b6708449e5af50cb7e0700fad9d7af
parent 35bce0d0a3e91fea0bf05dc6ffce50b423858efd
author Oujinyang <oujinyang@h-partners.com> 1778749163 +0800
committer Oujinyang <oujinyang@h-partners.com> 1778749163 +0800

api

Signed-off-by: Oujinyang <oujinyang@h-partners.com>Y
0x-10 J,+[bǍ=q C_@IwtN뾹]@Pց0JmK!'lz}}(RV[hoYFAhc_
,+HD)1U0
@x-0i<t<T6;.(*"!qpmucVGY{A=_dGWoXɴJ*%(=#L^qCF34]jOl|ra.Fx=N1{=g{QCNൟwnq2QHTt9@ΓF7<":D͵@:6H5+b܈}FtL
`je̡'na.Uз	鼘~6GM%a.S|'/i1<wt=|]??{B1TCUdxXtree 19297b3da2ec9a8d2347adcde1d8fbbdc7828ae2
parent 346f5b4f13651ee135737ca59524a272c9344c99
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778744360 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778744360 +0800

delete: 删除文件 zh-cn/DataProtectionKit/libdlppermission.ndk.json


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>sGxGtree 08afe30f6d08752c2812a85701576b6b7e5ac7a5
parent 5447dc014ac960dada4c1c18c1fe292af087c7f9
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778744349 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778744349 +0800

delete: 删除文件 zh-cn/DataProtectionKit/BUILD.gn


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>kBxmk0WǍa&~a2RVZ9IVZKƒ7'XwңG$Ya)/K(e Q;1sc,gy:+R,l4'tpaCR-vW	<imL	,˳$JCGV92Kj^a=HJO_@u%کj8Bז+eh_a$-I$:	Gahm8d}{Zqvij=Ix9Ԃvn8%ގGkGR/ 1f~Ѿ>
Vt5eG]boEP*;u_/(U(5PͧZ۶6Ov̙f*Ppc&?k@޺C<Cqȃm	Jw	׫`^IFsM)sxtree d0d9a7aca75f88946eaa45727fdae023f4aed15b
parent fe58007d41ba3f95fea4e06052fb616082df0a6f
author Oujinyang <oujinyang@h-partners.com> 1778744068 +0800
committer Oujinyang <oujinyang@h-partners.com> 1778744068 +0800

蓝黄同步

Signed-off-by: Oujinyang <oujinyang@h-partners.com>6_
Nx-̱@@Q)S/ٮh8;(dpfsE҉[դu\Kd뻭Fl'$H@ft|$Ơ}J;MDACqNΪկ?.xAtree 624d5eae13aeaa25c1dd979cf52894d7ab15b68b
parent 0794896265e2ac4bd118f6d09c7bbf6a95d378b5
author weixin_42784160 <jinsitao.jin@huawei.com> 1778740323 +0800
committer weixin_42784160 <jinsitao.jin@huawei.com> 1778740323 +0800

API参考与一致性规范整改

Signed-off-by: weixin_42784160 <jinsitao.jin@huawei.com>MmxA
0}NT&Iwifzz+nu|."u̞r Cr]$r%D 5.2WHkţd}M%xcYsQA86WgYnT.mM`0Vo ^Z? ~5O\uR4pSrnk[x/tree f50f7988c85be4e6052e25492f56b4bc976cf5f8
parent 23302f9fd95bc76cea9d7bd360d921e0f1ad22d5
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778729315 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778729315 +0800

update: 更新文件 BUILD.gn


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>c%x;tree 32938496a3093fdf4e439327df05a5ba19766c4b
parent 871910c811d118d41f52ac5119037b45fed62a99
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778729292 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778729292 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>g:xPN1+rG[q6BzF|8Z4cinT8 6f7E9@),C7^y=fwQae &ҔFk%^R7\q?_pzˎIj'c쨕|PRWg&#".	˶,kH,SV*k/y	ZPsqey8<@`GlvqqD* sXp[t܃o'\Ox8tree ee8c1140c18fde8ec0dc8ee340b3a8c2350fdc58
parent 79eea035c34e57efd6b65078721b89df512c0aec
author zhushuanghong <zhushuanghong5@huawei.com> 1778724393 +0800
committer zhushuanghong <zhushuanghong5@huawei.com> 1778724393 +0800

API注释一致性整改

Signed-off-by: zhushuanghong <zhushuanghong5@huawei.com>Ԡmx1N1@ާpy<gJ@gL.ZArPp hǮj[H%()6!jfQؼ(ʅG@.c4HТ6s~o}Fs	v~@	#Pw3?{8|Vc^Uezo_dO
_x5˫@ ЙDmn?wkDd?'&FR"R3aٷ31L)2,UydY:Ԫ>-d{ϒ 5PH)kvs}fõBCD

8b*/xAJ1E9ERT "'t*{h3/Bpy)MĀ@>#'Qrh1ѵ¤-4^fAI"WVEFcvz^8oWKl]J2fjɘݍyU봵6]r\\O 5@s%^ˮRtfeP 
qvxPj0+|/)^JYiْ7nRBm
=ayUpɪ9Ԓإ܄()c0zNz)(uBTOql~nXx>t|qv/S#d 38_"\Wi}ߧ4oؤENZN@Z@rRyP h,sxx;tree 18acb04ce23004d91834e7b872fff76d4c7408ee
parent 8b14e74c7cb19620dd117fc6f2219a7b80865a48
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778661378 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778661378 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>h*x;tree dd1889f8f89e0df14ebe2b1b2b23e83a54286d76
parent d84a7aeecf4d5a018fea83bbca9c676567b86c26
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778661194 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778661194 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>Dix=tree 75b239a4fa2b8d95b35729ffa2e4f6bf4100cb5f
parent 546881010909fc6f57b07c57ee504439ebb2f194
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660295 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660295 +0800

new: 新建文件 libdlppermission.ndk.json


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>Tix8tree 85383f62c99d9b993bf93e46b1c75aabc28e1e1c
parent b383e9151be3fc330fd427ec730ada181f4d26ce
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660272 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660272 +0800

new: 新建文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>M+gx,tree ac43ea825613b0e504593e03a9c6df56117676a5
parent b3089a114acf4d901685744e54a6b06bbcceacb3
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660226 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778660226 +0800

new: 新建文件 BUILD.gn


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>Eapx1N0E{=Zdg^!V~2'.AllA܀l$nA
 z/#4UЎ:FE&:T yq#"c@Z-+0j͒"x#p*0mGyKWs&̏)w7.i]KmSݥR___>}>}O|8~ބؤ.sX1MfLxAj0E:싋d%;Q,H2P_Ua"̄ԻSbqGg";[on`,\4cDw<y2۲S;/}S9-~vvYsښ7$e!!r[5滞Wa+e%];x1N1ާpf4xEQCF+G(]:. g)>h1pAOuVAC(
C@Б&fUʀ=A4{uV0iA.}CMS	Fuf- l S Z.㴻}+BiԪJs8}v^^?y,OՔ?^q YߘxAj0 zރZVR%Vu,HͱLU3z"FV0<I	10w#yk΂H	I&P6f9\dy^{.soe[>a!0"]jkް桬0'DnPQUeئiӟ~[xMJ1F9ERI3غr'x$]nd%f,>x TjGW2-!B	UU!JM\2|/$T:BKÞ&
cSep9j`uJ:w{
x;|>r\fI	?tUPa_lx;tree a20e951d8ba91ac9e214b1bdf0134add9f30ef7c
parent cbb81a29737f9266a8acbcc0faa0d698573dab59
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778640702 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778640702 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>7{ix;tree 6f99ed5fdd7316067f5e3a77a045704600024c03
parent 07a92364c10d5527efd3a7d09b1cac58dfeed3b0
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778640636 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778640636 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>h8xj0 =liB?VU-HcRtG"kd1D8Dɫ6 ÇEBAW&N&hMq&OBy^{VNOy[`B@?8iZv{E𞇼B9&!ӣ*YVa+eH%]x;tree 05b4659279c53c350ecc4b81b464272088f9dd5c
parent 437d2fd8e5c13c2a723734ccea8e22d6235b1b29
author gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778596098 +0800
committer gcw_RYdx6Zzw <zhongjie35@huawei.com> 1778596098 +0800

update: 更新文件 dlp_permission_api.h


Signed-off-by: gcw_RYdx6Zzw <zhongjie35@huawei.com>VgxJ1E|EzI^IFN2;BAQ{-ܰŦlVpHA0Ur낐Jx+βxVAv.R)*ǅAh!]%U*bWz`7oV-(:壦Ⱦp!ZA{0Frhc*i4Izn67wW:=McN4uz$䬝w>8kqȓ$xCtree 765511705333ad43dd2bca38dc30d76ce18dde42
parent 6178f4fcce5a06b5f35e6f9a386093ea6f06cc6f
parent 13f550a7bebc051f87a4f21c0dab33719d2f0c5b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778594545 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778594545 +0800

!5109 merge feat-ren into master

feat: ndk构建添加public sdk裁剪systemapi能力

Created-by: weixin_51530161
Commit-by: 咚隆东
Merged-by: openharmony_ci
Description: feat: ndk构建添加public sdk裁剪systemapi能力

See merge request: openharmony/interface_sdk_c!5109Ղx tree 2b5dfbc2df6fd100d672d052a8aaf43b78b471fc
parent 115309740b10f4239a259d15adb88f677aeea173
author chinese-deer <yezhenghao@h-partners.com> 1778591822 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1778591822 +0800

fix

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>@[דx3tree b044748af46fb2f05dd0b3060467d1a8d73e502b
parent 959726b07ee5f5e85a26f69db0e6edc18b9c0282
author slayyyy <tuduohui@huawei.com> 1778591474 +0800
committer slayyyy <tuduohui@huawei.com> 1778591474 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: slayyyy <tuduohui@huawei.com>hWx%tree cb6d685e4c189a5544d0b554af0d5f7989112b77
parent 66e976b03c2a758c8afeeeff30f1f5685aaad426
author slayyyy <tuduohui@huawei.com> 1778591408 +0800
committer slayyyy <tuduohui@huawei.com> 1778591408 +0800

update: 更新文件 native_huks_param.h


Signed-off-by: slayyyy <tuduohui@huawei.com>Ubܔx$tree 1124c27d439b9b70b48e10417cea5d7381f291ec
parent ad653228252e4be0747ab349a4bb32df81859354
author slayyyy <tuduohui@huawei.com> 1778590454 +0800
committer slayyyy <tuduohui@huawei.com> 1778590454 +0800

update: 更新文件 native_huks_type.h


Signed-off-by: slayyyy <tuduohui@huawei.com>xaHx#tree 2164167c4056b00b8f3e35f4f66493780260a61a
parent 2def571243563ab1c339664ceb2cb5f7f30665d6
author slayyyy <tuduohui@huawei.com> 1778589144 +0800
committer slayyyy <tuduohui@huawei.com> 1778589144 +0800

update: 更新文件 native_huks_api.h


Signed-off-by: slayyyy <tuduohui@huawei.com>`jx3tree f5e5be3b78ae65ddaaac59828644b72f86d2f258
parent 04f16923b88e2235a4b6d2ab4f042bf626c67745
author slayyyy <tuduohui@huawei.com> 1778589072 +0800
committer slayyyy <tuduohui@huawei.com> 1778589072 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: slayyyy <tuduohui@huawei.com>Qhdx4tree 472c840223d0298fa9d7045f4a4c090a764bd3a8
parent 0902f354776bc5b06f1aeae02efb012074828722
author slayyyy <tuduohui@huawei.com> 1778589016 +0800
committer slayyyy <tuduohui@huawei.com> 1778589016 +0800

update: 更新文件 native_huks_external_crypto_type.h


Signed-off-by: slayyyy <tuduohui@huawei.com>LgЕx%tree 2b74637fe4f068f7d849c208bc72cd9080b7546c
parent cd40a1e4f3bbe518e660a8363c9fa60aa7148af8
author slayyyy <tuduohui@huawei.com> 1778588943 +0800
committer slayyyy <tuduohui@huawei.com> 1778588943 +0800

update: 更新文件 native_huks_param.h


Signed-off-by: slayyyy <tuduohui@huawei.com>)bx$tree dcfe079ddba432d740dcf1604fe5a1b3cf5f84a1
parent df2b5e578d67c26423a569f91d4051db7f5fb446
author slayyyy <tuduohui@huawei.com> 1778588848 +0800
committer slayyyy <tuduohui@huawei.com> 1778588848 +0800

update: 更新文件 native_huks_type.h


Signed-off-by: slayyyy <tuduohui@huawei.com>Vc!x3tree 12b6690afe302989b8277d83e5785a3b0c5c87dd
parent 599fcf1a7a0bb39e861c101bb2ed95aa171b10a2
author slayyyy <tuduohui@huawei.com> 1778588757 +0800
committer slayyyy <tuduohui@huawei.com> 1778588757 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: slayyyy <tuduohui@huawei.com>hx4tree b6c6c92567955836d1d406b66567ca4838f7442c
parent 680ae1d7afafd2049f07e2328be035a8e1b52e25
author slayyyy <tuduohui@huawei.com> 1778588647 +0800
committer slayyyy <tuduohui@huawei.com> 1778588647 +0800

update: 更新文件 native_huks_external_crypto_type.h


Signed-off-by: slayyyy <tuduohui@huawei.com>hgx%tree 4919ce80206d4bac4bc8d25515457c97290d143f
parent 0052df8f72ffeac8eff73793337f0bc89817b04e
author slayyyy <tuduohui@huawei.com> 1778588396 +0800
committer slayyyy <tuduohui@huawei.com> 1778588396 +0800

update: 更新文件 native_huks_param.h


Signed-off-by: slayyyy <tuduohui@huawei.com>b_x$tree 8ed6b57858c68f4e17dbd2292ae396b507cc8771
parent 5bb5f39221bb51b893dd3ce8045d8e9432c6f8ec
author slayyyy <tuduohui@huawei.com> 1778588308 +0800
committer slayyyy <tuduohui@huawei.com> 1778588308 +0800

update: 更新文件 native_huks_type.h


Signed-off-by: slayyyy <tuduohui@huawei.com>bpx*tree e923153f4c8a478bf7ada59313c2dd3603b33227
parent 82d8fcf956a1f8db159a92ad3233b3bb481342d1
author HighLowWorld <liguozhu3@huawei.com> 1778567046 +0800
committer slayyyy <tuduohui@huawei.com> 1778587780 +0800

HUKS APi参考一致性修改-NDK

Signed-off-by: HighLowWorld <liguozhu3@huawei.com>
dsx&tree 79cb90946b2400e85577ae3187699c06144ed13b
parent 393ed4431d7db9f7e034ad107f2b4b4b2cf39e34
author HighLowWorld <liguozhu3@huawei.com> 1778511250 +0800
committer slayyyy <tuduohui@huawei.com> 1778587780 +0800

huks api参考一致性修改

Signed-off-by: HighLowWorld <liguozhu3@huawei.com>
cϝxA0 }EӲ
'<xd&"ɩBv
bJBd]!m-B
5ZrJrK3#Dk9#'u#]ѥU뻼c#uL-_Q]_ILAT𾏗|FM(j ?L/@_5xZtree 86ff49d271af4c1dfa23cbc70ac85c74fce6993d
parent e75bdd94bf42431a81c972c2de87eb8890903f9c
author wangyantian <wangyantian@huawei.com> 1778495299 +0800
committer wangyantian <wangyantian@huawei.com> 1778569114 +0800

fix link reference format in battery info

- Add full enum type prefix to link references
- Improve documentation consistency

Co-Authored-By: Agent
Signed-off-by: wangyantian <wangyantian@huawei.com>
D֍0xAtree 84ab4c6615bddaedd525489418682fb22d3d15c0
parent dff4a7cf666d7465440e69143e866f3311a19b33
author weixin_42784160 <jinsitao.jin@huawei.com> 1778565676 +0800
committer weixin_42784160 <jinsitao.jin@huawei.com> 1778565676 +0800

API参考与注释一致性回刷

Signed-off-by: weixin_42784160 <jinsitao.jin@huawei.com>lxAtree b9abc02a03be260e0781b01cb6f9e2ac917182c8
parent 6ea1bd36b8ab526ad4a47df0c242d5c67d449103
author weixin_42784160 <jinsitao.jin@huawei.com> 1778565538 +0800
committer weixin_42784160 <jinsitao.jin@huawei.com> 1778565538 +0800

API参考与注释一致性回刷

Signed-off-by: weixin_42784160 <jinsitao.jin@huawei.com>Ԥmqx0 {Oَ;0O Af *zF:D# ړt#d$U	Q)ÚK*jq,9DA[JfΒw@Fm
`y"a }N{<ũQWum冺4|U9QA)m-ޏx{5\Xo7a2<G| oY]Ҙx0 S׬5:*t$(q
>@hRH32hn#9:92r,4>g`B&BGzI6LUq*m?hn؍e;*ݗɹQ3mKl_^|{ގJNr7M?s[xj0z
CRz!Pm(}R5sf*[krG.g,%eąD:12yH`/Vȁ2+=sn.C*ƀwhtk4z<5#$>96oǾ{JZqcxKtree 84cd6a4c0aa0b959a4f25b1366d83b603cf99dae
parent 437d2fd8e5c13c2a723734ccea8e22d6235b1b29
author wangmengOnlineCode <wangmeng259@huawei.com> 1778555269 +0800
committer wangmengOnlineCode <wangmeng259@huawei.com> 1778555269 +0800

update: 更新文件 ndk_targets.gni


Signed-off-by: wangmengOnlineCode <wangmeng259@huawei.com>inx?tree 57e4322308267157aed987be5e8fe8d02c40061a
parent 437d2fd8e5c13c2a723734ccea8e22d6235b1b29
author hhd227 <huanghaodong9@h-partners.com> 1778552814 +0800
committer hhd227 <huanghaodong9@h-partners.com> 1778552814 +0800

update: 更新文件 net_connection_type.h


Signed-off-by: hhd227 <huanghaodong9@h-partners.com>`hxi1 BwA)\>O6`WK
Hi&qv	&ׁ-̒ Ы:νՆ4YS[z$M&&R@3%ƀF)HC,چyiXC=5qݳ[rxJ*5" Jn)%t[}]BƷʹKqJ[xA
0E9ERI2$	
J=	Qa n%C``5zLJך'2I&IE\r
J  4dj4Q.OÞlj~Jj<*LMb]J-^r\Ynpڪq{ZxαN!ឧ7ke'a!qYr}ziLlOKD[0 %66[TtIzN)m3s>̖HG=/Uގw}TG1ǳ6a֠  m	QĬO7Q]x9KYO77LexNJA+;{Whi'23;cFȮn"b j`>(_dRXZ9:9"p^A)U%H²v
" B[ŮMĥ)i(%8I$B-,(Vcfmo}ͅHZ'WɴLscΎ@ȥ  YL5NNׇMZ>ϫeY|}xa<^6!!{WjxN0~SBč3ZۛRjWKUGwٝ4A%5b+t/k-d"nzQi*#N"}%ZQm0FVOɆ	ўLnʦiW;rβzp),M㈉@̹}^f*`>c\~w)>
I/tQ<at]iO9'252͐`{7,doxៅOwxPn0+^LIUUC[jmKF__8J;,˪Vv46D]JlP6ŕAK*'ВZ!D%5mjԵPTPvK4g>9t7G<[0>Jʶ[YFGxD26	8'044(NgW49a~^tCu061;_]"A.r}3-A_Cr;'izwi6kd>?v*w=Y:^`x ߙwSzN6Qj($ ]G#_OwS2"m2= :EfLNX<ppu7*bkL}_mJ=}my~LKc1&q絾'!04c[?!_6XxJ@y%2sg	dY	XZ[Xط0X>|S'f-yDq`%(XpJԦLl+bɆ[fm?Cw`yWfYOw4n/<SXm_+/wzz<ϧ"M6c)M_靸qnWrlNɪ0iK\Ȇ4{.T<BE|sutx?J1>H/+󒼈vZ'xɼ m^`C?,u,Ne2yrLR8$b&MҐ 08K*/hn8kn<_f=_3=p݅! BO?8{n|\oq}~V6c)N|q@bBxM1wȞE*0Dv+&!ą@	h% }^%  jO(	&g
)I.N<TYp:5XK!x͚Ј8~d8~etk:;ORj<yp3njtZ߾_>ɟϖWB\mnXJw_c1x1N1E{Z43kGxlo8Q/{љ0{1,\x>6]Ss$g%G䀶!Nk xۥ`껓lƇ*p^ik 埸>]>ϗ׏&,DyS%K)Czaax tree 6311f35082bb3724a26ba0d3ecc692ff45d5b3dc
parent af93ddba57708f5de6d3a443c8b7e16caeb42b28
author chinese-deer <yezhenghao@h-partners.com> 1778399788 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1778399788 +0800

add

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>\x.tree 5d550cb05f8e12bb404b2e5bf5541112cbd790bc
parent 42108ea4ae1b1e5d81f8e36d7a953f49f1e4feb2
author chinese-deer <yezhenghao@h-partners.com> 1778393578 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1778393578 +0800

notificationiInfo

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>a"xAo@+\Nb
[%.z׍ĶlcJMTB 5JZD6d6^4oӤ]n8S&1u,U9rFΈp)+SX)dcTx!)_(-r0GG=~7جk
"NܰۖM:Rۦ%B,b#Ot?ږ9ZỸ8߇^&;iX&aXš+$עulu4O!;-ލ7p>o
1y)7_"j߭`Feֻb/GUkZw5\[%WDyȳJ4~	d7j_13^w=;Zi;Zy[voxA@E}KNR"wTw$Or6ZA8990؉hLMi
bʭPfA!pYjs'M9c[@Rb6ՋUN2d]XMꠗ_Vdڊtܷ"Ҥ@MnVxz|/Ru#U҆`xK
0 9ER?xOb
Jv`鍈"@em%h@Z0FkИ(+6(ˠ=&LΣE1ǌ![En,̍ƺ7~~Z+KB"vzl)ݦ{%N?\/m:UTxAj0E:E,;#(6veO"Y'^&JVϓ&:Y	'ɺ0-Qja>i!,2Wet5V=%#SRvt.4yU8طʃLK31wf[ѾYݯϗU;ŘRR	\&xm@[ޑ[@C*؟o1^KPAErNN4J@\Gєo7YI2qF}4`PNΪ]daAd9DLJ:2^,o*qFf&=#!ROzܗlu޿o?O>sez 4)]xm0@*/~bNǟ	RIH0A7@\:޺0q}{zeR\  d !-б`VDN:n"`eu^k&b*	L;~l+s:@ZZeiڍ[19}6t;ߎ?|nփj̹~-.ZRx	0@"w䫈-Tj
:G=8(A>x"Ҳvޅh4J4	| U*+@)sX(,GR#%A17}3tc8quSLh8}߭xi.	Mksl=_ܯmmP1}F[ޕx=jBAFY23WD`~	=y΃XHFTV)EsW:f41 !z*kQٱ6b;n HdcdAB͐SBbn;7ҧ/pxl""p Φ}8Ϋx^N9B<MNUsΉ?(dx	@ [%{{FD(0%ׁ&DkA;!!Q@T3i`S%*m@PGSNwґKP%tLCꓜ-[6-ivY:7j#mrl~>z~?B6c.iÏ4\{xptree 5519864f004da2737887b9f6b52d1d3afedd674a
parent 7a14c4dce942f781f84ea45c6544529fbf1e7346
author Helinshan <chenchunming10@h-partners.com> 1778320526 +0800
committer Helinshan <chenchunming10@h-partners.com> 1778320526 +0800

"更新\multimedia\av_codec\codec_base\libnative_media_codecbase.ndk.json文件"

Signed-off-by: Helinshan <chenchunming10@h-partners.com>}x1N0E{=
=㌍;pxLVbuݒP Qr'`zD﫪uyH8k⚧آ1Q<Un
`bm0$E4+"h	(Z/%2(V6Z&edeAWMVǾճ=m
KϺe9YOCl\r\þwm^?_>ޟ?Z78c~ fxAj0 zAJHUhм^B}A@?J3LT$FO<OErCF*dqЮXA$N%JH5+;6q,m?Xim|UJn&#`h;gt.Egt8Oןt|]N<_:m>*2ra8xqtree 45291c7c4c6adc9e38243a185c08bd35cf053f52
parent 13928d7e95c298deabc08bfe7e8b10720288a8cd
author chuanqistudy <xule37@h-partners.com> 1778308400 +0800
committer chuanqistudy <xule37@h-partners.com> 1778308400 +0800

dms修改

Signed-off-by: chuanstudy <xule37@h-partners.com>


Revert commit: dms修改
This revert commit: 8a8e920a39cca98b3ab7b7cc5e213cd97eefe808
y#xztree 338d50940ce5c44edbcccb458cc6ab4bee83368e
parent 8a8e920a39cca98b3ab7b7cc5e213cd97eefe808
author chuanqistudy <xule37@h-partners.com> 1778308388 +0800
committer chuanqistudy <xule37@h-partners.com> 1778308388 +0800

修改display意见

Signed-off-by: chuanstudy <xule37@h-partners.com>


Revert commit: 修改display意见
This revert commit: ce4e95e67b1cb5b21626eb1f0987a0810369c0b4
D6x?N0ݧ/* p$ClVea)FL)M98 ]~2R
P04 Czu{ܒCHPz2azJQ*7Db穉==F:mz/[jydW.v\=f#Sڵ)dKgu͉oS׋}ovո9o >Yu}wxi@@[ރj?3
3*H+HfK>xMA0<x39D@6lw\6
;!aN.KBB=gHVŭź}IjU5Qcd~PO:Z٪Lz^8}V)<]0#fWx;0 {*CV+'7 A#r%z@GOec,G@#h,8KOI¬Qq];v.1}L[T%!ILL4azJøHK*DZZ ēnR=[oJۄq8n:Ϲ-^xtree 45291c7c4c6adc9e38243a185c08bd35cf053f52
parent 31ee6fc22af3365019e001b602065481f5a99b61
author chuanstudy <xule37@h-partners.com> 1778233402 +0800
committer chuanstudy <xule37@h-partners.com> 1778233402 +0800

文本一致性

Signed-off-by: chuanstudy <xule37@h-partners.com>
\3xn0E
kzT]E̮cmC E
$_N Ǚ;wBBz5ۖ YuXI}fPw	>=@ݗF5&ÿߦ~یJBܡESu*QU,G'}b~sqrHƻ&&rx@!ofׯqy$#"cHcA~V
z$PY6"OKȍ#c"mY2Jߎ?D"3ӋòU04CaV%WG譥Bذ4Kia5(K8ѿtT6[E\%S<p%;X/qtCYCN>,nsv|cA?_tΗ5~N}cHm[y&$xK! 0Ls<M3ǅp[Iw"]ZTr`MB-U5^%qŝ&K SMLP):l)@N˺޻8NTGjLAEċ>Q}kL"rXBeR=n7_!]x&tree 800afb80355d66f2747651ae5c8f3a2627e84359
parent 3a82c17e29b04eeb8cc8cd8656f0c3e23dd0419f
author zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1778153673 +0800
committer zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1778153673 +0800

update

Signed-off-by: zhang-wanpeng5 <zhangwanpeng5@huawei.com>o]zxtree 6021c74d3c1ed371353d3f6972099a38d321bcdb
parent 89369c121d60c403dd5cf031e8f12dd346b6bc2f
author wxc397 <wangxiaocai@huawei.com> 1777186394 +0800
committer wxc397 <wangxiaocai@huawei.com> 1778147157 +0800

一致性需求-capi

Signed-off-by: wxc397 <wangxiaocai@huawei.com>
,Zxj0E
(	t(%q!$k#ƱJbWiWvS(tup4!R˥U B 
 hW݄Cb\vgFyJo58)qԏ=2Vrx/c+ʍh9c1)qɄeivU޵[Suq춙"TƁ.Ol1ࢧaB0`]7U7aI7V
#cPBBxRy-:F 3x1N1 {=
Zk*@k;A~+ FSflf44"dUIN'fZrDAZRqܑ,+hy|/ cB(Yss9=߁ ݞ -־Wv0lv(+C\O8x?tree 137ae19963859ea78e7676052668f92c415b9a1e
parent c09bc0f23ed72863334fb4870af21f617c129ab0
author zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1778139854 +0800
committer zhang-wanpeng5 <zhangwanpeng5@huawei.com> 1778139854 +0800

Support audio pcm bypass output

Signed-off-by: zhang-wanpeng5 <zhangwanpeng5@huawei.com>fWxctree 8c61392cd9f659295ed1a33e500bd32274430c80
parent 72fbc543c33f3864a6eb8786a801058540c85083
author CheerfulRicky <yuegang7@h-partners.com> 1778135718 +0800
committer CheerfulRicky <yuegang7@h-partners.com> 1778135718 +0800

fix different issue

Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I0fce053382ac28db7ed2158cbeb43cfed5a01c5f
sn@~xtree d3a71efcc3f3611c813e6a0859f2d6e181e720ca
parent ed5659b26640875722fda4cd82d2f88202542132
parent c49e669a8ef95db6f9eabc873023d4ac8ab9a9cb
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778128583 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1778128583 +0800

!5066 merge master into master

边界值问题

Created-by: yandebing
Commit-by: yandebing
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3927

### 原因（目的、解决的问题等）
OH_LowPowerAudioSink_SetPlaybackSpeed实际speed取值范围 [0.125, 4]
OH_LowPowerVideoSink_SetPlaybackSpeed实际speed取值范围[0.25, 4]
经与SE邓云讨论需要框架添加校验，自行把speed校验在[0.25, 4]
跟SE邓云沟通评估过：lpp没有接入应用使用，无非兼容性风险，同意修改。

### 描述（做了什么，变更了什么）
OH_LowPowerAudioSink_SetPlaybackSpeed实际speed取值范围 [0.125, 4]
OH_LowPowerVideoSink_SetPlaybackSpeed实际speed取值范围[0.25, 4]
经与SE邓云讨论需要框架添加校验，自行把speed校验在[0.25, 4]
跟SE邓云沟通评估过：lpp没有接入应用使用，无非兼容性风险，同意修改。

### 自检结果（结果截图添加到下面）
- [Y ] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [Y ] 是否更新json文件
- [Y ] 实现代码是否已经合入
- [Y ] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [Y ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审
不涉及
### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/142554


See merge request: openharmony/interface_sdk_c!5066O ux;j1E{B}1ރWFrڽqa]ddMd2e =N4hT\+uR*04ܲ2COX*e`t1zp-eJDte'}a_c5Kvq֔[P >0Y׊i}?^8_?mԌ97kgx;N@EY(hf<!6@
<bG#%
h=Pc]@)tۆY8egs@cHh5G-%H,᪕Hyར$xL@TWmQ7*ߴ"S,qCC e{
?v^-\F'W1/L_a}~|xtWúoc4|wByqRgلg;|gx=JA>E2z`1zgp=0729Ť*63K(}(HKI
\v@)$Ť!<sm2#F-Bb(e ]Ψ"$M"/mf:=,'F^WCwvRZCJ^)PJ#'Zܷۗu?NUnn>߿>،MtxX>nM+'bOxc.Y]RvL&zx&tree 0bd183c3e0fd84487665b1bce855dc0d1ebdfdc5
parent 91a921d0ed00b1830e5e4859f22532ebd57e0659
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1778077375 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1778077375 +0800

修改注释

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>+bx&tree 5553a11dd5a556940bfb35fb49c9bc1deec6e0f5
parent 3ca5014f21075b0a9b8cfcb66168c1cd43353c17
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1778070757 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1778070757 +0800

修改接口

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>nbxKjAE絊形~DWPWFz dG&E$N8pKKAIC%!D)!	)x%8r-%J &<XlT`+U't2>-:z唣14cwKz9oy/uu:wf<S5)|1sdxMj0N}q5_(U	F-A}*h0RĀ≕&bbdqp9j&v9Yyrk%v<2;p^xs.XJs}_W`[EVccevLSH1g;wWk!z63Pd3iF2֋&qx+ND1aUԓKBq:bziq'P<v殃1h!RS),EAYY2srNv
MFIp/\f"rAJCͨcF/qWv?*r%*,E0FNuWz?X`R[km}:_s}>=6B˶b&?_nxNN0Wb耔8GP׉ic'1jy3ƑIehBP{:W1ֵTt=BQ˕QbdQO!cW9
91(FrSF!BUz[gdu1_=LbmBN#Tú+dpRM/%pC95!ŝ[	.ny8˾  {0f}mz8!9Lݩ~_RݝxJ1DѼDdvɽɢGʭ`uщ8&[Ad=(< 1x>S<;tdDpIe2D/R$8ڂyZT3ԥr:ÕCj3~4)?{`+-7,yԿJe˪+:v;1VpreMo-aQxMJ1}NT:TRtt\mPpǃрY c6E/	S\he#FC+c@4XHqd&YTgEF{-7wcmBV~)BC_@@@mGiF/rJnok]/]mx<tree 70098b5be4565e1269e51af7f6d2eba8b5c23d1a
parent 0ee257c7c1688fd3e698ba86bc72751d9a3dde9e
author qianyang-yi <qianyangyi@h-partners.com> 1777534020 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777534020 +0800

update: 更新文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>jќx<tree 5dd8356cb71a25163e9ebe09a5d243a906286a70
parent 7aab8a3fd887f040d2adf1b1df6a76f19cea53f2
author qianyang-yi <qianyangyi@h-partners.com> 1777534000 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777534000 +0800

update: 更新文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>{pjxM
09EI?ĕKO_lm%MR<@77L-D\c`Nˬ 整R.JBC卌`TШP&DDO&ٔ}ցŹcS-ؒ7}mźV*1+dkw~ gqܿ퉱g%Ɯ.]\fx<tree 8a1caf99fb274701b88b3261cddf2c097cd208e8
parent 11a3acf07fac1ad9c19637cc4ed5ac721699a88f
author qianyang-yi <qianyangyi@h-partners.com> 1777532507 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777532507 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>jx<tree 0761ac0c60cdc5281f808178e2d1705145138d20
parent dc3b0d21fb50393b68730f15fe59d72eeadd149a
author qianyang-yi <qianyangyi@h-partners.com> 1777531409 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777531409 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>;i|x<tree 14bdd40f7d058d406a5c59601ebb6625ab5c8e90
parent 571a815c3467d8fc0b878aac8d74401bf9f85e8f
author qianyang-yi <qianyangyi@h-partners.com> 1777530714 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777530714 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>
j/x=J1"dI2 8VnX`abivwYv T%kWB.vT+ fK)AZp#ƂDh^[.sN!b܆Ԥ`:FI_@kCK)%=jwHMn[ӜR5<ӧxjV7#B']3WsE[4ZƎ22i-vx<tree 3d7e216a03ce2cf8174b72c9a4283fbe785b5d4e
parent 6701c17557723820cbf5c81c81b20dd48a12c4dc
author qianyang-yi <qianyangyi@h-partners.com> 1777530011 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777530011 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>iϜx<tree a591fee5053012d5cda6def590bb07c35bdd2a94
parent 3fdbd8c83ce192fccaeaa572f5fcf142b160ea29
author qianyang-yi <qianyangyi@h-partners.com> 1777529329 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777529329 +0800

update: 更新文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>;kx<tree 03c16db089f81e2a044281eb4034551453fab0c9
parent 0f7802d777a64f7aae83e0dcfacbb87685242919
author qianyang-yi <qianyangyi@h-partners.com> 1777529314 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777529314 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>]9ix?tree 902f29f73a18cd7a5f1180c08a721c01bd16476b
parent 4968dfcee7057805fbe921e984b87f171de7bad7
author qianyang-yi <qianyangyi@h-partners.com> 1777527265 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777527265 +0800

update: 更新文件 syscap_ndk-cn.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>k"x?tree 9f9ac1e8f8041cf834a574f22a8571cbc2532c7c
parent 66eb8355bd2311a31888d4025c9800131f8a17e1
author qianyang-yi <qianyangyi@h-partners.com> 1777527251 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777527251 +0800

update: 更新文件 deviceinfo-cn.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>\j,xKtree 0be47a289040abfb3f33af00be63b540d0edac19
parent 717962b593a81adb3b7fbb67dc79cba7363d6d86
author fengyulong <fengyulong3@h-partners.com> 1777518709 +0800
committer fengyulong <fengyulong3@h-partners.com> 1777518709 +0800

update: 更新文件 native_audio_suite_engine.h


Signed-off-by: fengyulong <fengyulong3@h-partners.com>NqHxEtree 872981ad1feb6804b76d38a95fd6f3ef13076d33
parent 339d838142f53aac41363054b755f3c4d488863a
author fengyulong <fengyulong3@h-partners.com> 1777516689 +0800
committer fengyulong <fengyulong3@h-partners.com> 1777516689 +0800

update: 更新文件 ohaudiosuite.ndk.json


Signed-off-by: fengyulong <fengyulong3@h-partners.com>mxKtree a35fdf9df768b878b1626fc5d71bf113ba3f6f96
parent 54fa9987c52f70097ca13c56bb52dac66c19f699
author fengyulong <fengyulong3@h-partners.com> 1777516590 +0800
committer fengyulong <fengyulong3@h-partners.com> 1777516590 +0800

update: 更新文件 native_audio_suite_engine.h


Signed-off-by: fengyulong <fengyulong3@h-partners.com>Bpx=0F{=
cZ힁L`8HP}O_z#ڳ|Plh10')R5:qFK@4qRFph!OG*" p$SYۭEl~.wxRb;}pVBmsNrpRcL$%/2i*eʜx<tree a591fee5053012d5cda6def590bb07c35bdd2a94
parent 98b8cdc849f51483513fefd4f75612f4134a3d76
author qianyang-yi <qianyangyi@h-partners.com> 1777514939 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514939 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>a{jox<tree 02f4b8fd78f0f16eefbe784fe30d12afd1c4fa8e
parent c98ea517be750af0ea2eabd5dc1b45be84f7e965
author qianyang-yi <qianyangyi@h-partners.com> 1777514927 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514927 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>B0lJx<tree 2b28e9c83bb99298394723a7049ce47035eb795a
parent 930290a9fa3ac9476fa622d3e0f3883dd00f9514
author qianyang-yi <qianyangyi@h-partners.com> 1777514309 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514309 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>ix9tree 15248f35f16a9673f56a4311f11a6c4785b76a74
parent 037bf4ac02f580406e7b60add5da62b1da2eef16
author qianyang-yi <qianyangyi@h-partners.com> 1777514290 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514290 +0800

new: 新建文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>7hx<tree 165cbd243ff558f4bb1783379aca115ae5dfb554
parent 52f392891442aca1f3c8e1e252fdd67896197369
author qianyang-yi <qianyangyi@h-partners.com> 1777514255 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514255 +0800

update: 更新文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>5ix9tree b2f632610f32928b828e2d83a2e4b16bc79a8f25
parent c6a7c023cbdf8b00db600cf6f774ea5f3be2d0b3
author qianyang-yi <qianyangyi@h-partners.com> 1777514217 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514217 +0800

new: 新建文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>0ix<tree fc4de68d77d3f45a60ac4ee1cb440e30211cfa6b
parent 9b78abb301dac58ac1f851263d2ea47480e55537
author qianyang-yi <qianyangyi@h-partners.com> 1777514148 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514148 +0800

update: 更新文件 syscap_ndk.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>jx<tree bac84c27f53861edbd554e7be8e9272c3105b666
parent 5a6c0bbfc0f9e33fa56ece22e6afb8a25909a548
author qianyang-yi <qianyangyi@h-partners.com> 1777514125 +0800
committer qianyang-yi <qianyangyi@h-partners.com> 1777514125 +0800

update: 更新文件 deviceinfo.h


Signed-off-by: qianyang-yi <qianyangyi@h-partners.com>jxJ1<Ev$K҈nO'swCsHUDtC7AEvPqЛ|_hZ_'kZnf,pW̑1tua)h6W!%2i'0IuѫbU ÿt\O}׎(Zc2F~I	_ 'gݬ?*O_*?n7׏⹟/e{?rTa`/v'?yx?K1@|RI.~":	~\+GɊ8*ҭvPߦv+(zDZ)lW
%A{&8/!%E-1&ӎ`*= wBNP'n獋uźwA3qnO1Fj-,;jSQ~~ή/2O2߼~7~sq~<ŊX7xfx%Ż@@	9rsݒٲ#zp9<\5,Ǟ9Vv\ЊՐd@JW67{Q#ZLE>ӋJdMP8r+Uy>!Xx%ű@ @r)<lY^M6Ek3$EL"<rjol08k6=chzqLޢSAlbĹ\I7#xJ0<Ev9%M. I)-SoЂ"͢C<D3כ|ot4+9$Lt(1S"VFq3&	Ux-5QjbØ.6VI<!	H"ܗ<e%8{5bSq	&Y7$騨*;:/Oj,4]krrpOqy?lƇ&-`..L+BEL:?ǟx=JA~N1=#!hi'x;ɆdWֱ[XAM1Crb/~<CpO62!D`5J6\L0 FeyJIa\2!g_Eѕ G'zY7exQ\n<zJ1Fj`XuoϏp}fߖ|aS)O߄cզTͮlxJ1F<EzvOdnvAQ{-}ܰ#ǁsrHF.%dL(у2M52!p=JxDG'IE7IIaKі."EBq<\nZk! ]rrvZ>?v~ڛp[^5lu<}rf-6Uc=mux;N1E{}4߳#e~)SLEP z$n0`*jHBģƦ(Bl1hDi2	+I*ɎX(W]hk#k;iI3|T9Qsp?4ZTNq:x Z,'[ar=-cOc)5S5aRP`xMK@E+f/-󙙈Vͼ7Mh8MAڍwypH}"QItMDRF)D| #u':"ER)btˠ鏍-`pu?ݮNzpOS<Q3Kե	/ə_3(~\@_j{N+`|U|S4жRXV5p֧4_X{˸}x=n1ާp-?(w	LX)xac

\"ЦeH<+)4ud5#[jBA1PBo"d@nڡV) M9Fm*~o]UN>^ixIj oj5A5Jqw=6A|wǏp}{!^LꙫN	ofsx*tree 06e29e070ccbfe4858b2d84d30d987178b37f69e
parent 8b62d4f4f33cb59dc13bdc51bfbe0e5a78df581b
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1777366293 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1777366293 +0800

更新API说明


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>bxJAFy%2;3;g?	e5I/"6ZF,Lvo6}/5TR:<f"eyV"3I2Q9,wjl(̽n	iV5k,j9vEr:jx㾯G4Z),{0F)Z(oty.}r W|WgHi8U!y	x1n1E{}۳coE!g̮"+D]A\
Αr$_W(E؆Hn=u(`Ш8J&DɳiFr<$Cj[Uj7e.Xf2U7ŝ4l_Y  nZ!}_?}0z<)oby?Sjf,x;N0ޫp5B*k:`d2E`Hl 	 AY9ŧ.Dܻ"u1j6'
	xgC&!ԀJDjeʚ"p7S'*yx_eGUG*q^ra)t [0Txs4nO ҉#{8^R5\esr!k56mxAAb4=Z"`DmYtx,tree d283b9ac20bafc34f34965c45d57ba66f1afabaa
parent e8badc2ab2f029eda6219913a8657f5798e14a51
author liuchunyu20 <liuchunyu20@huawei.com> 1777273881 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357009 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
_x,tree 62cde3020c98dc2772c706a7571baab789a74e91
parent 9093a2fd1c92f2b8384911f9808386c822dd5509
author liuchunyu20 <liuchunyu20@huawei.com> 1777258200 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357008 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
S^ x,tree bab7e26242b1911d7d7b27527470dc33641d670d
parent 64884718b87b7be3fe109e15300755354da6590b
author liuchunyu20 <liuchunyu20@huawei.com> 1777082488 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357008 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
]x,tree 7494371fd976c41324f06494443a92ebc14535af
parent dd1913a218ba511d05135b3e5305ef0f5246606e
author liuchunyu20 <liuchunyu20@huawei.com> 1777022159 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357007 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
t]yx,tree 92c6641b54b0e3e0fcd5f80404ad3fabdc59ad19
parent f9860dfef7c4b39c193579f13a79fd7795f67c6b
author liuchunyu20 <liuchunyu20@huawei.com> 1776944610 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357007 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
_x,tree 57e9f18245e62f7c1f1455e49700133eb3f7b1c8
parent a076ff19b0824116018d06cb3530a9ca02949ba7
author liuchunyu20 <liuchunyu20@huawei.com> 1776943599 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357006 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
Z]x,tree 68a522aa34fbb953e076d9472ec2d9ffa31c2d23
parent 8b62d4f4f33cb59dc13bdc51bfbe0e5a78df581b
author liuchunyu20 <liuchunyu20@huawei.com> 1776938625 +0800
committer liuchunyu20 <liuchunyu20@huawei.com> 1777357005 +0800

optimize ddk capi comments

Signed-off-by: liuchunyu20 <liuchunyu20@huawei.com>
N`/x>tree e645ce04dae064245ad488fe1c0d450c795ac6a9
parent 45be50e5aa1fd673f541879df526c9f7e38752fa
author lishang21 <lishang21@h-partners.com> 1777339921 +0800
committer lishang21 <lishang21@h-partners.com> 1777339921 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>1hΘx=j0F{B}pidiHuN iFۛ w9#O:hR26FBRX8{䀒cX:YUG ghs
pW̦5pȘU4m{^ʫ4v4v/2؇vޖtM޷΂7@ jOú?_YTK&nQ?%$!35>zA@},htx;n  {NAmYEQ>Z)E>{(6X,V6@N1i("@dDJx1Hm:A){r6dd?$yGa@A`zRyK+-t\Z(Hak<mi}(#וּNB]SkBha?;2JiA+lmTK<S)_yʷ~@iʄ~ 'a{Lx8tree e552b41f4ef29a46e4f4e8d309e93f69ced86301
parent 33ed1cf4e701f8295b26773024f4ab1f8b2aa65b
author m0_59343938 <xuqingyang4@huawei.com> 1777298251 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1777298251 +0800

update: 更新文件 capture_session.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>Ѧcx:tree 3f7e9b9e38365bbf59a9bc9ba3d496bbe8a36816
parent d1ac6805a014ebfd1085bbd1e58716d6c3fc7d3c
author m0_59343938 <xuqingyang4@huawei.com> 1777295608 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1777295608 +0800

update: 更新文件 capture_session.h
33

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>dx=N0w;
@] |!N-G`
LL8O7@lHJdc-eFP
$H$dF#5	:h봑7=o2L_ƴn7+zi:YW"cu]Fy|?]4]<	N)S°)Ö[0Toox1N1ާp]P 3l5r$C*RzDMCmH1X Qja֡%$]ƚH[Ac,<Vy=!X$P\6טˡXn[5XG.>z=5F_`zAt}.;^ϻr+0,G&4yקj֘xj0y
=ZqQydYn{n{c='}r`4{1Fo[R
BDO!6U9M (Fp/z;JR.؈Jy˦:% V4xeIu*|NOSɧ3<q-V D׶sнrb&xii(NP	|k?KiKxiZm_L /%sz94 zipx+]ƚVqqM,1x;tree 6d452e3078cb102f3fbe5066af530fb01c64afff
parent 980e9792df757101ca9fba597675a7656d85247c
author m0_59343938 <xuqingyang4@huawei.com> 1777276075 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1777276075 +0800

update: 更新文件 capture_session.h
222

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>Xcēx#tree de41d7b3f166d2435519de2b14cf812768ad8bae
parent e229d3cfa3466eac73c5aeb9bf3c4ff634df3758
author 2301_76695984 <zengxi14@h-partners.com> 1777271293 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1777271293 +0800

提交4_2

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>WZx!tree ac593f0647be5b309b3715f60478e20d1431fa2e
parent c39e80deefe8ab90113fd61bb0fbe2153c84921f
author 2301_76695984 <zengxi14@h-partners.com> 1777271217 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1777271217 +0800

提交4

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>UxJ0}"{I[#(	>HzA]8 ^ѽa|A\;S:9bMi+ 1l'Ä4&2)p""LUЈq<L]Y3ීjRDToYmg̚x"x|3x0|ίM2<_Wp~nc*F|sQxJAyeefvw~1"wv$]Yf	V>Oc8m{9wBH4.	geƂ7kЀ9r-ցfMMVelaYJ,y!00iZ:z\U=2?t0hǔ+=NpPL&ۋaꗋe^>7|xڹd$_xt|pu!W帎J}b=YxA
0E9ER(".{44J.]}ǫ@Zm+g2#ћ}B/RNH,vOm]j]h `ZV<ǲf_%d)!oeˀpͮE骑: NVKJ=ơHl攚}=M} ]yxAn0 
QYRMb8Ujphl"4aqЬّ퀝^Z~y\Ԁu-{((jfNWɷyR{WIgN_sS}%Si眱HhDtI4 Ǩ85^z\:R`bx)tree e1e67cdaa075a557f3604f4c206567cf43a74a05
parent 7a3ce03009f7474dbd7454617e2962dca402bc72
author yao_qiaoming1 <yaoming14@h-partners.com> 1777260150 +0800
committer yao_qiaoming1 <yaoming14@h-partners.com> 1777260150 +0800

提交接口

Signed-off-by: yao_qiaoming1 <yaoming14@h-partners.com>bsa-x:tree 11bb7804462267f9d9391e7e3d0aeb5234abb7ee
parent af27ec29d26da9f29d63038aa130467a21a96cd3
author m0_59343938 <xuqingyang4@huawei.com> 1777259777 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1777259777 +0800

update: 更新文件 camera.h
增加xmage

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>eܔx=n1{}Q =bd\ U@l1HfF>Mw>D Op,EPBE0+-z*lfc&@pC5pC,M೮KOPJ/S'n&cx}3SAeLkk8w8ǯ`	YU))5~;%hx>tree bd09dcd1d511a9a3b6dc36d67609ac574a5d6514
parent 8362bf21069c8e92e28dcd7378bfc90404d45747
author lishang21 <lishang21@h-partners.com> 1777167298 +0800
committer lishang21 <lishang21@h-partners.com> 1777167298 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>mh.x>tree 85f6c3fce5a9b7ec5f2c3c2d687a339ce30956d1
parent 6c0b46ac3b1e6bd54ebfdb9e1aca7398db788f3d
author lishang21 <lishang21@h-partners.com> 1777166525 +0800
committer lishang21 <lishang21@h-partners.com> 1777166525 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>B<jx>tree 9a142153f1080d5ce4215542fe54b2117534947a
parent aa204db52fda52ece4c59aa478dc93c451affca2
author lishang21 <lishang21@h-partners.com> 1777166292 +0800
committer lishang21 <lishang21@h-partners.com> 1777166292 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>Ohgx>tree 8135e3517cdcf0520c7da399a4927f4c286e31e6
parent 9deb044b7cbd4e24ca0a1a9e4ec5e7623e5992ec
author lishang21 <lishang21@h-partners.com> 1777166053 +0800
committer lishang21 <lishang21@h-partners.com> 1777166053 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>\hϞx>tree ace1e2a9734cc6565da5483ddf9b63fc306e7102
parent 8177ab16ad1cbede4a4c8edb41ca3ef06821f962
author lishang21 <lishang21@h-partners.com> 1777165783 +0800
committer lishang21 <lishang21@h-partners.com> 1777165783 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>hitxν @ᝧ`75\J18EXjZ:vr6q=×f-`2%】xµIa	(rb<h第אVE9ֵ`g*\luԵt;*/"w<(4!; }|TNݜsߧ_cx,tree a41af66d01d88036c2d1c21c7d754d709c9538f8
parent b4ab70c0e7d54f1b05abdac9c360d21aa5b0bb6a
author fwg5587 <fanweiguo@h-partners.com> 1777105077 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1777105077 +0800

update: 更新文件 oh_window.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>6b-xKjB1@YEEDJx<"	.HDwv8p,s *sR6@l3 IVliI":bDm(̹ a%e'h }6Hj_T;sy
h|  ~즶H:=tzKx9K_3Wxj0D
A>YR(%s!VK,@(=,v	qb^y47ށGQIN{.b2B4(-XFh.b)KAidT\K8HCc2Lz4\sE5I0t6- *JJP
<!v&	5p3Ʃ%ɓ)C>Z4݅Xx\h#%.fy!)seWA}JltY0uR>=AݩZS\xDtree ee9b0de68e7e0cb613013eab4c15756d4ca7b6a9
parent dcbc9fd0fcdbb7b32ff4a022ff4a0b41194ed152
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1777083311 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1777083311 +0800

update: 更新文件 libavplayer.ndk.json


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>'lǙx9tree 565c17624e7567d11c421ed21202539054982a2d
parent 9bfea40b40a356aa89621de4376705d53f5ececf
author 2301_76695984 <zengxi14@h-partners.com> 1777028382 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1777028382 +0800

去黑边需求json文件补充

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>&iefxAj0нN1 ɲF
!=xfTka;9!=}d?|x0r":DyJ#	GC*6`}JqNt*^ rPIsD+(3Emvx?sb9zmCDZۥot^n+~Z@1_{U9m?H5ax5tree b347aa8bbf763fb272d774f9907517ed9d893d86
parent d5746106fac5040a5fb2dc41676eae168add1384
author zzc19990127 <zhangzecong@huawei.com> 1777020359 +0800
committer zzc19990127 <zhangzecong@huawei.com> 1777020359 +0800

[richEditor]支持滚动至可见区

Signed-off-by: zzc19990127 <zhangzecong@huawei.com>gxBtree 4650d74b8996691965e490ea44c4a7c80e1e98ae
parent 5654367eb190b1b85f82ea59a7ac03e5fd609d5b
author chinese-deer <yezhenghao@h-partners.com> 1777018345 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1777018345 +0800

update: 更新文件 camera.ndk.json


Signed-off-by: chinese-deer <yezhenghao@h-partners.com>/kwxKj1D:aBK_rncM5>
 ^UjtMkt9T"%/L*c"kuiCbMJp1Zp&8F"1q5E9nGϓھ5tcʟ̶Ѥ?q&ư+x ޷1u>7WĬ*qv[vmQ뒟~_ax3tree b56d560ab391518aefbe8b5c3df9b8345f66c70c
parent cc60ebcc8438ae2ef23169ef914c13ae3689d2f7
author chinese-deer <yezhenghao@h-partners.com> 1776994239 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1776994239 +0800

exposureState exposure

Signed-off-by: chinese-deer <yezhenghao@h-partners.com>Idkx=J1"ED|eg`6ٌV{;#[ys}_xxxZ%dR$P Cט `wP4zk(+-]IRi3X0W~q&jH/@jVn+Ti_r.gu?F'ןZ;cvs]|Q]Pvmq÷BT6G%'֤AXw zx?tree 64ce20f5dc500de3c6134c649714fa8b04070e10
parent 86b60070d958aa2de641a48fdc99f9b51f84ec98
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776951163 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776951163 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>hx1N0D{=
vlFwbuج+.@AECG!nD;OfʌȽ <):^*	UvϘoc!	Pa'hZW{̿yp7mʃj,y6k.8R(~tJ80)9Xƾ_呱4dD~1pRx:tree 5c628d792f1910bbebc15539a9fdb885539caf3f
parent fa9a23ddfa6779924b186e798dbbbda5dc8387e3
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776948714 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776948714 +0800

update: 更新文件 avplayer.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>#hLx;n1E{=d=(
MDA"=3MU
RRDYM`DTGWJK.4Q72 $oV	$ڪh@
k+`M&H!.(ARcҎ<-3M\?<~ȥk%`׺ͥu<r<K/:o:LUOTq4dyxKj1D:E4d|;|4[CVE<xUwP(cFunL܉h}vY*xԓs9vdEZ*tD쇠QuxMe:J)oAϼ7p>~>lִu.?qC^Z4A~	c{EҼFcגxj1 {}zcu&t+[#;v5000hvsN>REAlb\ɈO-;uvH5c'0X
bɓO5&c@:K*ҏCYn hAPƐلTk#1ϯf.G[f2Zy;>R9UʘxM
0F9ERI'"Lf&mFx[[<2KE0By>aC&x%X6dsD6$QSbuFt8&ް@ocZyq{Ƀ'v(2A+slBP9.?~`xPtree 8b4c5fd2cf8730197d6a51c7a36b84ed056f6515
parent 2e51e90cb20354877bb86860f9dee4f616fc92dc
author chenxinjie253 <chenxinjie11@h-partners.com> 1776924788 +0800
committer chenxinjie253 <chenxinjie11@h-partners.com> 1776924788 +0800

update: 更新文件 oh_display_capture.h


Signed-off-by: chenxinjie253 <chenxinjie11@h-partners.com>ox'tree c3e24381907d910f58c1c86bd46b90e39136a2f9
parent 6e2d08e54c7bb8c8f7fa579fcb64e1f05adf0e0c
author chenxinjie253 <chenxinjie11@h-partners.com> 1776924588 +0800
committer chenxinjie253 <chenxinjie11@h-partners.com> 1776924588 +0800

d

Signed-off-by: chenxinjie253 <chenxinjie11@h-partners.com>*\x:tree 4ea197ad364e3de0d9cf696685d4bd61f8dd4f07
parent 69b3ee6ba1a0961773f45199dad06e94e89eb5ee
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776848737 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776848737 +0800

update: 更新文件 avplayer.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>h&x?tree ddc569e5468fc0bf6256b78f9a766fa79a4b6fc2
parent 268fc00efcc303641c32076b4c43756327f433f0
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776848681 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776848681 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>/ix0E{OI|>#؁	lR`LACG4HYA*jD=t&<UbW̕i*,&Ne4ȑdbAа
ɇO6bDyFjkk4 rP)1c3c|n/!v>QStEV?}t_2xj1{=pF3!RJ+1w.r<}eJf`fco"2BVQ! `ś. sarc iOf&^C)?}vj_t>u~sһcUR|^΋ammyBS=SCtFH`e`Ġ	q$b~Woux/tree ec0b3a2e35e235268dcddc5de8c7b042d983053e
parent 0bdf8f42ab234836402868e2b00ae3ca6647855b
author heqianmo <heqianmo@huawei.com> 1776842112 +0800
committer heqianmo <heqianmo@huawei.com> 1776842112 +0800

update: 更新文件 libnet_connection.ndk.json


Signed-off-by: heqianmo <heqianmo@huawei.com>e?xtree 594c151c4e6b623b0f32c99b2bbfd561a0b38552
parent c7e855537c003f640ae9835b37b5ea79734e67c0
author heqianmo <heqianmo@huawei.com> 1776841879 +0800
committer heqianmo <heqianmo@huawei.com> 1776841879 +0800

DNS拦截器C API

Signed-off-by: heqianmo <heqianmo@huawei.com>@Wxtree 5537db4e24d997506606ebee052a8386f78afbc9
parent 6d3e508db4ab34b2c483cdf9f6964817c8112562
author m0_59343938 <xuqingyang4@huawei.com> 1776839763 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776839763 +0800

1111111

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>V4Qxtree 6139e2129030ebebf804eb61cf931d91235926d6
parent 89b5962774cdbeca5f64354a8e79a55a2e873a62
author m0_59343938 <xuqingyang4@huawei.com> 1776830029 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776830029 +0800

11

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>Pwxtree 0ae7acf14a6e0661ce394542fe9171b89a17d5c4
parent d653c368eab18528c7670635442c12004af3ac91
author m0_59343938 <xuqingyang4@huawei.com> 1776829937 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776829937 +0800

1

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>ZPDxtree c235ec1271323f1e750f7d22a5700d8625d0ace1
parent c968411ed4c9795b89bc4f8870507f8c02b6187a
author m0_59343938 <xuqingyang4@huawei.com> 1776829036 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776829036 +0800

11

Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>c)PAx8tree 4e965e149f3c6edb250f251c4e4f963a69e189ed
parent 2f3ada6e40e5be3471ab96b05c7b43d271b2668b
author m0_59343938 <xuqingyang4@huawei.com> 1776828912 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776828912 +0800

update: 更新文件 capture_session.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com> cx8tree 25b4710937c63b2b4c62e683e3f87dde53d2761f
parent 4903a78b8f58d7e2f96a7a0ab5872c1eaf2d483a
author m0_59343938 <xuqingyang4@huawei.com> 1776827845 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776827845 +0800

update: 更新文件 capture_session.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>Wcgx=JD1"̐"6
nnn=p7D`kKp3lX8|mb26H%::!ub&[1pqc5 xh8Ǌo:xÒwx<RA)1ۡ5R%7py3Tb/oO_B\y1Hw?n뼒9
1YK!hlSq#xK1 9EC/D<9N^h:zl(љe*@@Ԝf-F?ktqucE Vqhtarfqn]K=)v+p3^*笟F/?1ߡxNwI5ko׵*O4~FhR\x:tree fe014dc77fd299426a5a9bba6e3facfb68d5e86d
parent 1c9d83f4d8812acde0ce56a40f73f553d19b96c8
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776774633 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776774633 +0800

update: 更新文件 avplayer.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>hx:tree 0884d3716536bdd582513c9e0275d15330d9cf61
parent 74087dc579bea269bc75682a75506b99926831be
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776771828 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776771828 +0800

update: 更新文件 avplayer.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>eҟx?tree 86d1e7d97ffb264229f9e4c4b5c42d6d0c2d9d14
parent f5d882c1d1de97d1cf8c8887ec7a1deb4a2d996d
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776771780 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776771780 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>sZjqxK
0EYERI$/mMMDwoW xp֕0"JIJbлcAgXT,
(;l쒅Ve\nGSq/\ZkQ(~N\+E떗#nIӯfMxtree 507171cb9646af7892fc797dc8674c174872104d
parent c3a90ba90638f4b8fc4f339921e9953bd511a575
author m0_59343938 <xuqingyang4@huawei.com> 1776764123 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1776764123 +0800

xiugai


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>tR(x0E{O=!L?$(rgаf	bRR"Q]SqoIH44y2)Q	'd{I<%JUP^ȣ	,L-
ðOUsc=o\W=nŅjmsg dwuJG>u11+N_Tax0 {O9yoB?Ab栧b0=NW'fQ^	[,يmCT8q	l'Cdm4]Yz'-޹z#\x|[4/i<nuY^`P+g=+¹Et]><Yx0{O%vl#؁	E9gаf	bRR">N{"^ 	PޑU&ЈTY0V3]&&k{j#WVhJ]%ٔ k  Tpusm1|
ˢk6εJA_#ib?&t_cPT&;~}>axMJ19E2ߪxOPI*ӽ7^B\{o31Rpx-&
rj1EXBn%ÉR{^d꺁wBqVP2L00a\fދxA6q6D-rͺCE?<my:kX}~̻;mG$cԺ
qy;_ϟ/J=IfnmO7}joxK
09ER;xO'vVJԍT<]\|ä
PP"7Rq)u.e6Q-ΝA0*:ZI*<!U]O%z6Nq[pzfC*΄3Ff)xNq덐]].̝V>#s~b #x>tree 245a4aa33bbff0ec900359a90d823d5b21eeb13c
parent 40abb36b3192b2979bcb0c36ee43a8e5c6cf8f29
parent 85aa17fb8c0e201620442154b799dc8a9ad070e9
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1776739460 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1776739460 +0800

!4919 merge master into master

导出内存快照

Created-by: leiguangyu
Commit-by: leiguangyu
Merged-by: openharmony_ci
Description: https://gitcode.com/openharmony/ability_ability_runtime/issues/14938
导出内存快照

See merge request: openharmony/interface_sdk_c!4919:VͷxNj0+=PHdR=jEb9e}hefgvd"EGk e1B 2ºAZ{	i^s/yzeȓ5J8饳ΣVSCk`+ӒOSZ9ճvi4	kqR[^yyS9B7Gb>CǦ{Z'Jc˖Xup> Unak=XRD,y8a0SSuߗ|ĵl~uKM߳މxJ0Fy2M\Dw>Af:i66EOoע0g,zW'=(Td
50pT~@5x&'ƹ6{ߖHE<M
"(|;rNTG[k7htM_MlrcgY6Iߏ*ĥth<uϷ<ϭi΍;lⲄ<swNuxg[Gt='<x?tree 76f0e1904acf8a6557f53ea2172b68dd3641acc0
parent d618ce8e61d1237474388bbdb624bfef2dba4ba8
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776685197 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776685197 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>ix!tree de41d7b3f166d2435519de2b14cf812768ad8bae
parent 6b8ba2c55cc74d3fcf672da8a0c82a29a28bb30f
author 2301_76695984 <zengxi14@h-partners.com> 1776684671 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1776684671 +0800

提交3

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>?Vx'tree 454c4144b12c5400e0e51b2937c2722e5234cead
parent 40abb36b3192b2979bcb0c36ee43a8e5c6cf8f29
author chenxinjie253 <chenxinjie11@h-partners.com> 1776683274 +0800
committer chenxinjie253 <chenxinjie11@h-partners.com> 1776683274 +0800

d

Signed-off-by: chenxinjie253 <chenxinjie11@h-partners.com>qU[Ɩx 	tree 6dc213cfa2e680b833d2b372a3e6b725833c8a78
parent 17a9272a6b6f19726994d749252f09c43b4dcdef
author Askr_w <972048870@qq.com> 1776677769 +0800
committer Askr_w <972048870@qq.com> 1776677769 +0800

update

Signed-off-by: Askr_w <972048870@qq.com>]E_xMJ1F9E2C"2\xJҝI6A;,iZ90yOrHĠp%h-OL6d"H}m|j5Q/jy{S#>vysZ
Jz)`!^R-CU}Xs|Z~pI@Zmx1N0w;
Ϯwω@@
nAI_elUh <{cbBĹHrV^#z"YGE4Q
ܕ~|넹;6lj6 ւ:R?;rB)"U2jϹur˟x?tree 86d1e7d97ffb264229f9e4c4b5c42d6d0c2d9d14
parent 665f5c5e0bd0ed05312f12139ef3bd1259dfdec7
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776674154 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776674154 +0800

update: 更新文件 avplayer_base.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>ix:tree f429ac9a2c799b935ac810fccb1c345f84710444
parent d97a9ff030d2be8bee371e0e6629e2b32698dcf1
author gcw_4z3jiPvB <huweinan1@h-partners.com> 1776674104 +0800
committer gcw_4z3jiPvB <huweinan1@h-partners.com> 1776674104 +0800

update: 更新文件 avplayer.h


Signed-off-by: gcw_4z3jiPvB <huweinan1@h-partners.com>sgx!tree 21a38f54b395b57052d962e3435a2f776c77a2fe
parent 3e89874abe3970dad9481d45e129e0944880776c
author 2301_76695984 <zengxi14@h-partners.com> 1776666311 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1776666311 +0800

提交3

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>YTx=N@~O=2(	"qhǞul%CLQq"!W<ߛzf9G[ARbUx
ڢfցXcdѐz ri2u"y7zvv*Gfm'M6)rX1Zᾔ7`İ.۔>߿N/߷Ǔ"ru!dO|d1xOJ09ERI:XN_%maY8y=GǰRp{^c䤫 +L(m(L^U:Ҟq\HP1N8%@Jhm-);/s?|;":ǛX0֔B [n9k?ߏ_ϧƚ"O^w#v?t

³¬qb҆2Kt ,:g@cKPV{/`3xЖxJAE%dvQH7;3eBHk#UJ{S&_/?\8%jm 2'rF;
%1$CXsYC6H+ԻA6Aa/rմu럇79\q5^TyZ6s֚V ~9f"{t}+W݇<A!kNx;j1@{B}}bܚ4](ݹH27K>xWGw	u5mB	d<
&Ab$uQĎC C-@)@⏺F}:u][ӐE/<ƶN7OCb!X&ڵ\ܼMt޾Ϋ~TjzɳY<>yZx6tree f6034ee03c520f3093de39737eb6da42de70c19c
parent da3109f55dd4457a3bce448babfe32d22ba1fa9a
author zhangdd_ewan <zhangdongdong50@huawei.com> 1776494402 +0800
committer zhangdd_ewan <zhangdongdong50@huawei.com> 1776494402 +0800

新增icu4c ndk接口

Signed-off-by: zhangdd_ewan <zhangdongdong50@huawei.com>
1hCxʱ0 ;2#HlKmHC!V8"Y¥cc4	HZ1<
TG9rNޭi&vljI&!x1N1ާp-3^ۃP8=NVc
+p\(9[ j=ŧתe="(J3QzꑪLM,)[ZB ;(y-3綛>o4дwﺅkMǍ!w!F+QK
;/__Ia;IR:~1e`xMJ@F}K?Ճj֞:p		27p!^O͓6\K|P\C*P$ì#Q `d۔9gl쪥䘌eލ[he-t/9K1g|V4F}?<c}|_u|Vzwz!Ͷl!1n3gbcb]@AFnnҌ6KkqxKN0D>EQ?!8 mbӓ vҫщ FN"8!m
#
ou,(*ن ;'w|$qyϗ_%c;:?Ӂmh
7-ybBؚq3c_Pi}$s=*b)TSKiZ`ߑ-ocxN0Ewwv"-@jklHm;31΄~Oo1"^st@Sz路-EV 3+AN!H&W1&x&Nf6V3܄_5B2Ul;mQ:]>% l\m\gj~VTӋj,ʲlz}c#uه#G5bhx?K@KJrCP{)Iu.nS[G7L-,; (FHĠӄRWRR'LJe(VJ)fIR* 1Jqo+E).]4%t%~T4AŠjg#L8O"SN^!z"C^}z֝\ZWsA}[}?<~m6ۏ+\dG,+|8p|Zx:fj{xIn E>^D0E@`Pب0Q_?lrH7:Kusk6GǍܙ	H2l07vj) ܂TYK"DQ_$GC1X-@<J'rY(=]+r^'2%~(Q^Y?[={eA2|Q߈um,tlqgUۍ6N<+=mx=JA@9!2ΟX	9~dLVY.J`IE<xRGģ+JaD(5JQ$<Dr؍h8
IYH@Q,%)'c(-}ێ_7ط|սjgchVIW}Zޞw~~u_~ɋO&tN8lc?mbxMj0EVyHyPJ Kw_`dZA:e\vGDoE҆jo} .CX`\3b荗*uZ7=?֟~]zt|V_(s)oJ}"|PqUx!tree 4d8d4ff57c188ea582bbcf8d34612d83181bf885
parent 286dd255994d56e93e8aac2c200ca92327f3f8b8
author 2301_76695984 <zengxi14@h-partners.com> 1776388991 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1776388991 +0800

提交6

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>xUܑx!tree ddbd39769613d3e31856436f729b66b3d9837c51
parent 58bcb5dbd3c874e785cd8305d4695ba4c29ab4e0
author 2301_76695984 <zengxi14@h-partners.com> 1776388925 +0800
committer 2301_76695984 <zengxi14@h-partners.com> 1776388925 +0800

提交5

Signed-off-by: 2301_76695984 <zengxi14@h-partners.com>/Ux0Dw=P^'9AR-PHځ:ȉ367:q2!Z7ɂQdVVI/ Ȯ8S\FJ@>HC:FWBN.A0~%QJǏxmo8'.wvj}~e
fʹ	7Yؙxitree 32f446e15da274c3e06fec25680966a08ad66d76
parent 1773b8877a44ab18c7d44da67025708fbb9b4049
author guoxu1111 <guoxu34@h-partners.com> 1776343902 +0800
committer guoxu1111 <guoxu34@h-partners.com> 1776343902 +0800

update: 更新文件 oh_key_code.h
adaptor Smart Control gesture keycode
Co-Authored-By: Agent

Signed-off-by: guoxu1111 <guoxu34@h-partners.com>lvx;j@EYAaL{#⑐'!27ӸnbeDUr9puE	\	,XP2kks$CT,8C2:s>VD{#B]io}6m(H%9Jw]=yp6^Ӂ׮-Ms?#?g>dxAJ19ELI&fR&LfJ&R]*ҍ\FpA,koa mb03%-U((s% 1Ss!Yh!1YF3^℔4!rjs*$絤.b\}^WmE,|sn\R.O,7lcVR|DJBPJg.F/0do?_[`|S!K0j߯fq{=l6k})\C\:k3u5U#zxMJ@@sY*2?tH |$vRNWBA]"ht!= [<xg+ͥ	Bk*1$$d&h+(V
LPP(,i!8eUcjӤMLR1>/N`ꨌtnzY5bӘK|@$!# ^7צE:Piw5m?onvXGC}1{|mn:v&<烿_WÔx=N0w;J*܁DωAp@l,Xi+zyGzrBw5Z#ӥ@zeSͥA*a9$"Gf+q[k&[ EDmHnh Ƈk*c8=^Al+Fuɼ_hdeIJ]d|!gjJ`b>I}ٿ=nqǓ-pp˄6+z{={,Lɇx<tree cdc7be1c702dcbb5edf36e77a52a27437b0b2d22
parent c1637c93a037d1d29ad2bd5376b788fcd7b93925
author guagua_wen <tanyongwen1@huawei.com> 1776341227 +0800
committer guagua_wen <tanyongwen1@huawei.com> 1776341227 +0800

update: 更新文件 oh_commonevent_support.h


Signed-off-by: guagua_wen <tanyongwen1@huawei.com>kZx;JA@>E25^D=AMw΀;#h"Kpc}oP| KD`9)6;҄(%uA#vPPKc%$OlΔM<1{ F<èwϻ{}t7ԧv+>c0uQ{Ϭo>>ﯗ(kٽ*u֭z. R5׋^iKeYeCX>ʐidt%: 2#mFxMJ09ET6z&'4Π;AQ
:f'd@t0'z 0YJyδdV	\1F9,ȱ,:U|*7RY*k؊d"j1b\`BySX23p<=vW7Ly:`xcN\/0tSۗEhߺΫPfW|]oo֟#[/^j!t*&iMFx,tree f85a68b852a2106641706c6606141b51e2e9ba5f
parent c7d829f8d9bac6478d3f91d7ee5164d9aae1731c
author yang-yinghua <yangyinghua1@huawei.com> 1776332617 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1776332617 +0800

注释一致性修改

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>fxGtree 433f256c6dbd139bc04926a34f194d3d3dc5fadb
parent c7d829f8d9bac6478d3f91d7ee5164d9aae1731c
author guoxu1111 <guoxu34@h-partners.com> 1776332317 +0800
committer guoxu1111 <guoxu34@h-partners.com> 1776332317 +0800

adaptor Smart Control gesture keycode
Co-Authored-By: Agent


Signed-off-by: guoxu1111 <guoxu34@h-partners.com>fxAJ09ERI^&JҗT{Qp qڍ m^ANZ :Rl$\z-N(&s3\T9B8*A%(f/0Sk#M㵍ˠ9%Oa7N
u-%n8g]|z3]o!|ɮC|t`,c9/Z}xAJ19E2eL3";x!ɟ&fJ&/ -.pʍoQzsVRtr%82AHɭ⨛朡E)TSϑltt!QfN#pÔFATJ6CG[E?-S;9\-"Spqa}CY]KmBЫ2!}J_d݂NOoе+n֟>=<,5@8l7?[ŀXvx;n1 {=rgxa(I;	jPS2"neH3h)@E֨H;XC+?\d"gTZB=Z6ɹ0؆e.<-[8<Q*F	4 f])w_al8nNB<wSߓ
֗ixJ@)^ZS>@am%EoT	Th/M+_}a(13u&34$+,b6	>$V-K$dC)n"يM:eHA0RՃٵJD7X(LK]ղVk2ֈB$ eF_`fF[~|z2o4Hn/i#z% 0][Ig9(qk(zAn/wfٝhv{<⳧襕'qě3qMq7z$7* VKL/!xOkA |NDQ=ٙ-JEImm4ФVРF=+89xUxxx/RBBcS(B|L4&x\$Ex+%;X\r]qev΢T ˓AԵsf2tH=.ҭMhS9.א0٭8ccTxߗb$"ՏjX-AutX\~N2v
 >,ԯU>snէ{݃-*/_?ik>WTE{U0K{:[IV/o.`G騝΍S_'r1)'U38{ۜ4} ŽDVnljxKj1D:1`| hd3=,mUP^o"Ŝ3d٥"e6	&kB	"`M1~t*~pZkj}˻6,` jkwFjMRy{TcVɻZn|~ɩ'WRx1n1E{}D45oE܁-Q qDGAPr PR}W<2hbVHnFbo=2jc=xHF-y\@hbJ-a*.E&H
`-`#.J+ū8ݐۑ~Mn?aUfJx A7p^owRj޷YdHi|g{f?xKN1>EQPNO#89?m̠·gӓTmUc,y.Tc_b VKcI0fv1l/"}t#[z;.+G_a>{8k}N|YaxlT[vA)z&mO
+vcsּ[J_m*[8xm0 {NpIoAvOSRahI.3d>1ҥ8\EtN[a+Q\1!z6 	%!ujG1l,rȉ@1IOs>[uf9P釩3|KÞe|JE7w1΢^A Pv;*u^z"r^Ǐ͝w<eۜxKj0EZR,@<lDcJ!{[J` mF()`!А%vjDJ
)C~|lC23
^3zem|:_wA{*a}s0INcȎVzOF˶895#p F{ݛbR<?`=xAj0E:eFGU)%wH٢dהB|>כF)p$B]Qc0MjmD?4FuVB"3%׭;U<;ߥ92#xo X/wi:ks9YOp*m,Lι?J.sMR%[CxGQ _xAj0E:E4); fdlDcJ!_<Ze:즨4zMP;SdBoKUU$Da $9@G[*w*O*z>/9N[jġ7{˭q!׸T{뙯tGY+\(8d"Vs{B\\8vkJ]x(^fG^vx=N0@w;* *sP'vҁ
@ܦ܂p XߓʐEH#4y>'Ʉ@AHe=)5,(Puڈ(dm4d"p,M7Un$9pU׿Z6#nS{Zw.U/-%b
þyu86txnvj|}z]M/Ǉt`]"dsːx1j1E{B,#1&)r4ZȄrgH;ĕH\,-eJ{^D;X"dT#=r/)k. 5XKP%IJFe삷$RM뗆St9ov$w.!,-	X 5Mܾ֫|=^>?a~>o_J=u0bMix1N0@w;*mUNBtVs 0q*[Ȉ^d@md6Vl1w}r6t	E4vkcklBC>ʂw!ݐ1dM.S͍TʀJ^?vӗB/z5<}Ou:<^>w})Y0*hx1n0@w;v;F*#ROdAQU&6$fN,th^EpvdDO/̒2*MHME
9kXa1@yҺ3 ̄S^t4릋uQNoYO[>Keљ#(Ŀ])1[̇u?o/aq=!^:r5BG_uiwx1N1E{=
!r 4+^*:5tDT5R.DW'fQDCO3Vf'.URgsz
 Rd#(V:lڍ|lyE]׸wߦq907+%;NէMBO Ħ՘**.ix1N0@w;*Ώ
UedC߱d"WUUb0 "E;2"W%ưr'p<' gqSEVq͍PXDVCPȑbҍ|8ݘۉMn_6㰒`Lڒ兲JRf~{9<?߇y|z>bLiw?>hߐx1N1E{=Jdz5BJ:cn/Z9BPDHeU)){e$
ѣj*l2FcDР48ʨZ0R.ଯiRD4LI' EXnkrC7]
㰼9`jK޼kZ Ģo3<×?~?)i)xn0w?wDe;vBtVO$N9)RC;@-ȈNwwwCXimp<R`r{z	:B-K/BIaYk`ЧgXu[=cRڨO,9]7)y7_p{maMƏkxKj1:*-ug#A$7|EQo"DʤseiA#7W#Ty)cYS&URኞZZYhK>ֆҺD}%Izm{q渟4ܞfb!
yc_K_0],=v;|ZxJ1<E*Y$Gs)6Y,nւX[L'
/oᔖ|p>NsBYFj%҈B,Mv35`+* ܌c! 0<Ϭ'vƺIlGI34=֊s0FF:ms,ytC||i7rXݬfѯ^6uD?I!L/Zx'x+tree a7494087272eea0f455a2e0c568a13c5914693b5
parent e0eae7a5f7bdd63a8a5b2f41a5686c31eaf773d9
author jiezixumihp <hupeng76@huawei.com> 1776167201 +0800
committer jiezixumihp <hupeng76@huawei.com> 1776167201 +0800

update: 更新文件 tee_ext_api.h


Signed-off-by: jiezixumihp <hupeng76@huawei.com>c!xJ@ye%DDpͲ!s&E%N
lDCiw80"rRڧ[IZ#IZyUl_.#HK/cZ$" b]ڐfaCvm#?mn{sa1Ib1FZ~(b?.^>+M.UpY)\LD8~=ϯogv|)JumѯUp	anxλJ1>O^Vej朜a.t}YF,,mr9ll+$]$@G&bl&4!q2آ\Schto.<o]/۹|Cw!u]{Z].5zayXߎOEmV
g7J|`1xν0@SGslB?wEb0bz!{@A>A MEM)U*.AƣtcT"PJפ.Lt}r;ntGL5BK$`ڥR/f.FǡKC=ch?bxN0y8hOB8^MB<=.$0;f,"#EBDQi]$!/2`:FAHGDx䂨8]%"[g-&K9tšUZLpz$˺y|{'kᾥmw̥?"Ya`3m`NpP(<U.ya=*8Tciy9sYU r.y_[&_UClOOx tree 66c25ce58939cf94e66b6fdf34126af2c4dcd610
parent 4e41bfb79537969164dc39e89fd3306cb2b33dcf
author Leal <lealtan@163.com> 1776135400 +0800
committer Leal <lealtan@163.com> 1776135400 +0800

codecheck问题修改

Signed-off-by: Leal <lealtan@163.com>0OZx;n1E{="gƟ(B,.+x~~f,g4!XD"ELQvʔ:贍H	Q(g
 zݚFQZ0R\{e4FJ)8H[0">F9#,]Qߘw[Q~~=^ZD8!ؕst._}?rhs^>i?hxOtree 64e17801be8f13d897fb59a425161058b31e5df3
parent 1fe22af785e1272a36d17443e5542ca361a1d9ab
author huangxiaoxiao <huangxiaoxiao8@huawei.com> 1776131211 +0800
committer huangxiaoxiao <huangxiaoxiao8@huawei.com> 1776131211 +0800

UIPickerComponent support set height and count

Signed-off-by: huangxiaoxiao <huangxiaoxiao8@huawei.com>
umd\xɱ0 1EF,KZH!GRA.dl,ᨾs:e"fDT^pGVa-i$6+GuP+ YWXD !xAj0E>vYjeRJ/3hdb+
P躋x]D(༆(>I>mqĦl+U	Qt
rʎ8f*xl0{d1$71C`#Ɇwts|mz,TQo4e}WhtA׺k*tONф'Uk}?-KBe&ˑ.}n˗x1jA@9ٙY2R-ܕu`g"X$k^!I6xxx	Ab c3NKI3X&TQlh$@2(6y,t^y PVu5-h޺Pz1h kL\颌1$u~Oؽ|v|*?)aKxJ1 J3y;Ll+]oEAA."BK
dK:gaRQe G%e&geZ<_g/?=zOaAkm:+uH1MuG^ZՏ&aJ.멕rJt@ZxN0w?wNB0!	lPJ[C
vix`Xstop4FL9(.s0)ZYs)*\<\CAI$1JˀQM.}մ͡vZ%ݡif'8I3)> 9!(^g_eEukv?.ga3,ǻǇm^||aOMꩃ2iMS/B]xKN0D>w@CvFqV`dJ2J!8=A-WUma 'Bh!1d$qOMF't.**S[ze1#MIF'|Ğ&2Fĭ"u\71pxQ*DAy; bOò`ϼ\X%N4׽ "n.ќkiJ$>LB8rL?nOEoxM@}P[x9Aj%FbqNo/<|m;WbMIĠF\10xN9@M!-1$9lx_//ᇧhbYZǡ5B[
c~/@LxYtree 9813264a9c675c4bb89ab40175bb438f10ba8b8b
parent d43c02c03552fbfc30d538a790d8eaf843516c6a
author jimsu7 <suzhe8@huawei.com> 1776080418 +0800
committer jimsu7 <suzhe8@huawei.com> 1776080418 +0800

delete: 删除文件 zh-cn/graphic/graphic_2d/native_color_space_manager/native_color_space_manager.h


Signed-off-by: jimsu7 <suzhe8@huawei.com>tx%tree 1ac4d3f01e50559b3b74eed7ae2d76c9c54a0082
parent 31b503e1ea84c6ade3cf09732e417be4731f4b29
author jimsu7 <suzhe8@huawei.com> 1776079968 +0800
committer jimsu7 <suzhe8@huawei.com> 1776079968 +0800

update: 更新文件 native_color_space_manager.h


Signed-off-by: jimsu7 <suzhe8@huawei.com>nd`ٔxK E笂cqQAih{1>	C$"Ш1L[q%-A uFH

[7y'Ԗat)1r\c2WCKiˏKV]:xA  ＂v)h`]
1z=z4giUD1@E$	& ڰJnz rGk1BGI@½ͥ׌yK*f}ۼCc,U[GQ.ED2eᮤz$_xtree 96c4d366092bc07b27ecf7ca6ff37a64604c54f0
parent 3926ce3cdeffb52687cca761c3d97a60d59b8428
author jimsu7 <suzhe8@huawei.com> 1776062165 +0800
committer jimsu7 <suzhe8@huawei.com> 1776071921 +0800

色域API多段注释合并

Signed-off-by: jimsu7 <suzhe8@huawei.com>
1\x,tree e7b9e2222d2979254db606c2f6428a0c66519ee5
parent 5fc8e2836d07366c0cf3c44d3702a6f3b54670c0
author fwg5587 <fanweiguo@h-partners.com> 1776062165 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1776062165 +0800

update: 更新文件 oh_window.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>``x;N@@=(hf?(J	ޙąZQ҇.% qrRC':Xpn rBGl;dWm9"Ϛb]7<mzrSt^˾+1Rpd/ Z_e[<>_OEQ]tWܘ^X̖xtree ef491b7c84cf8dd6fcf6ad64f3eaa51d4f62c886
parent a23884191ce64f6e9fb4ed919825916f73aa3f61
author Leal <lealtan@163.com> 1775902057 +0800
committer Leal <lealtan@163.com> 1775902057 +0800

API参考&文档一致性整改

Signed-off-by: Leal <lealtan@163.com>|W'x:tree 240709eba68697035981dc91c8aba3adc43c6ae2
parent 68f68fde56f4fbf040eca2e5b07eb134b0a863b9
author lishang21 <lishang21@h-partners.com> 1775895348 +0800
committer lishang21 <lishang21@h-partners.com> 1775895348 +0800

update: 更新文件 oh_device_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>vgdxCtree b6ed597ba12f4b2b5a430bcabeae9ad7b79c1fc4
parent f3a31f4e44b8edef1559e57d7c74ae47fb3b40af
author lishang21 <lishang21@h-partners.com> 1775895329 +0800
committer lishang21 <lishang21@h-partners.com> 1775895329 +0800

update: 更新文件 oh_device_manager_err_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com> lx>tree 58311933147e7b98ca4801ddaba810d72e508b1a
parent 837baa67159af747a7712984eacca9e2cb157d25
author lishang21 <lishang21@h-partners.com> 1775895311 +0800
committer lishang21 <lishang21@h-partners.com> 1775895311 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>%lh"x:tree 7d3dc068ff9aea3051b5895206f19d2f6205f5a0
parent 2594fe1c20eec68dd715df7a48bb53d7ae3aa171
author lishang21 <lishang21@h-partners.com> 1775895223 +0800
committer lishang21 <lishang21@h-partners.com> 1775895223 +0800

update: 更新文件 oh_device_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>C6g!x>tree 12fea4f142ea7da2f4fd9d96f14fdabcac8581bf
parent 80c4d37f0f9decaa3222b1b8e40c19e117509d9c
author lishang21 <lishang21@h-partners.com> 1775895190 +0800
committer lishang21 <lishang21@h-partners.com> 1775895190 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>Qhjx>tree d2fd95f8689e99d86963f64cca9612ade559a62d
parent 22d5e7719ea87e7d6f67ad982aa022ec1812a1c8
author lishang21 <lishang21@h-partners.com> 1775892228 +0800
committer lishang21 <lishang21@h-partners.com> 1775892228 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>hx>tree a68a79f5e4aea4d340b1c1982a90f9a30916fc8d
parent fce3503e23cfb9b1e6199a06c4bf6fa21e818ada
author lishang21 <lishang21@h-partners.com> 1775892165 +0800
committer lishang21 <lishang21@h-partners.com> 1775892165 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>iyxCtree a3904a19030384001da5e046a528d8f02ff8d485
parent 6713446af79542075dadcafea5f057168ac5533a
author lishang21 <lishang21@h-partners.com> 1775892129 +0800
committer lishang21 <lishang21@h-partners.com> 1775892129 +0800

update: 更新文件 oh_device_manager_err_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>imx:tree 99809a34a1692ded6212d50018bf184c2b91d463
parent ec733772a26518044cf5da8671d0c997403eaf0f
author lishang21 <lishang21@h-partners.com> 1775892052 +0800
committer lishang21 <lishang21@h-partners.com> 1775892052 +0800

update: 更新文件 oh_device_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>ex;0{=
ZYAqNnA䘂ۓ=4*DcLUfGAB2AgTDQ@(!,q «MkyBN^kvLr9: @t[}Q]<+Uex>tree 9cea4606de39be2673dc8fbeb127adffca3ec678
parent 26ea688a847e6fa183279ec01c3f45f02a581338
author lishang21 <lishang21@h-partners.com> 1775873927 +0800
committer lishang21 <lishang21@h-partners.com> 1775873927 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>i(x>tree 65d0718214db0c240013fcf158bbd828936c371c
parent 8c8c8bcf3c16c444495a93e2bc411cac6f8aaccc
author lishang21 <lishang21@h-partners.com> 1775873629 +0800
committer lishang21 <lishang21@h-partners.com> 1775873629 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>ǅh͞x>tree 3e68bf0d005c1c298217f6a74b938986b053c10d
parent fcbb452ea497a44d89c3b22a13ab440f0a11fe7f
author lishang21 <lishang21@h-partners.com> 1775872900 +0800
committer lishang21 <lishang21@h-partners.com> 1775872900 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>wh[x>tree f41a02b9044d545f7fa6c13d6ee6935a4fafe58a
parent 68b958cff28d4933b3bd05e3875d56fb9e535f5f
author lishang21 <lishang21@h-partners.com> 1775872772 +0800
committer lishang21 <lishang21@h-partners.com> 1775872772 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>/Lix>tree 633bbff938c7aa8217c7273666331ef15272b5e2
parent c314910e5dfe72d53a6bbb751a31cfd04f188e0b
author lishang21 <lishang21@h-partners.com> 1775871883 +0800
committer lishang21 <lishang21@h-partners.com> 1775871883 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>YhFx>tree 633bbff938c7aa8217c7273666331ef15272b5e2
parent 03fcba693324c4b613c8d50eb9954c69a956ccec
author lishang21 <lishang21@h-partners.com> 1775871829 +0800
committer lishang21 <lishang21@h-partners.com> 1775871829 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>?4h-x>tree 2885741e682c3bffe9c2d8f673d029388bd0c99b
parent e3130c17d105741d5c0c1bd3cabb209d063a129f
author lishang21 <lishang21@h-partners.com> 1775870437 +0800
committer lishang21 <lishang21@h-partners.com> 1775870437 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>]h;x>tree 49ceeae01348e381c691348c56102646e9739d1b
parent 54c15d9f52e83c7a0020e0d774236335ee8002fc
author lishang21 <lishang21@h-partners.com> 1775869978 +0800
committer lishang21 <lishang21@h-partners.com> 1775869978 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>XgIx>tree 717afc90495b2f822335aa1bb4fbd2164b726eff
parent 2bf6fa397cbaa7b9391cd884a2003ae30428819f
author lishang21 <lishang21@h-partners.com> 1775869944 +0800
committer lishang21 <lishang21@h-partners.com> 1775869944 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>hƞx>tree 5dc676454321e66d9eb618724216ef6a4fc36aba
parent a1234cf1370587ad35f044760d2cde374c18a66b
author lishang21 <lishang21@h-partners.com> 1775867946 +0800
committer lishang21 <lishang21@h-partners.com> 1775867946 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>h	x>tree 5c7dda8a8d7ec2a136e70900e76f2474c51ab92c
parent 015c04dae25395591c1b2a9c5bc2d4b46dec8833
author lishang21 <lishang21@h-partners.com> 1775867908 +0800
committer lishang21 <lishang21@h-partners.com> 1775867908 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>hx>tree 313adbc85be5dca15ef50b6757b78928a6dd0af1
parent db70b7c7b32adeeb5268e70ba78522c8bc7d0855
author lishang21 <lishang21@h-partners.com> 1775867607 +0800
committer lishang21 <lishang21@h-partners.com> 1775867607 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>fikx>tree 660346244cf018dffba861cbeee0c9fa8f99b80b
parent 8486be0823fa9492a58630dbd82b1b7c65f3e0b4
author lishang21 <lishang21@h-partners.com> 1775867012 +0800
committer lishang21 <lishang21@h-partners.com> 1775867012 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>hx1N1 {=
ڵ|>|O@tH7=Rӌ4"69̘<:c|hɑu&XTO\dL$:	.u4ј$dPIT7-@״hAomL"mwKm@CA߀Pjk|?\dN|_J=Q"wW?`f
	x5@@D`r8?%BQz&؃"30i'Z;Scw;5ڄ{OקXNQT&V( `fBj	$})ųIiVfU d}e_B_r|0x>tree 1de77dbeb9cf62678b89f083fa660bbc994bb19f
parent c295f5e288f56abd556463d68ea9146adf1ae66b
author lishang21 <lishang21@h-partners.com> 1775810951 +0800
committer lishang21 <lishang21@h-partners.com> 1775810951 +0800

update: 更新文件 oh_cloud_disk_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>iZx>tree ff400cdf7a55b0599e7526043a9bc028d4d8fb3a
parent ce559022dd68b8270ab4b77da3c7c4dfadd8ab5c
author lishang21 <lishang21@h-partners.com> 1775810922 +0800
committer lishang21 <lishang21@h-partners.com> 1775810922 +0800

update: 更新文件 cloud_disk_error_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>ixMJ@F}K+?j֞:p		27p!^O͓d0Vf[ʒLﳺ˓.lt-	j4H1F˔qapXۢ2IJ-ye-^2/5ф>3uZ<h>i|:>+u;fjRfNԂ,QL>#MXkC_b7Hq=x1N0ݧlFbf	DHݸڙL\d ~ND<i
}MƶAR1G?QAjƠ[)6DCj?Nw'W\]~es7XMnnD0(˯-kVK|O/߇r<_^OPlƔE$QgğxA
0 yE٤MڈMDJQ<iHh@$Nl^F"OmqzuUJӜ$ OHIE>^ׂ֖e^jW,MeÇ=Ia#@}-&2Zbxë[xJ]\MMLÏNbxPj0+^$ٲPJҜrm?K[UBO=²e2A'dB(:k<[."8S*D:4Ҧd[\X-mfgt<5n+CX<p9K3I59ڗmxg}skl9ծh	n*%K ;}#ͻc씛r˶X-fbipF,	TE7tNAmM87xJ1Ey쥒GQT(
n˗K;$6dZ΅ý .5z#<
Z9'LB@p&
itE'0s.iNe$34}n)׺R+f#k;DmկH˖=P*r?ǈkH)xJ69ƍ[_&Dbx;0D{=!8MR`GII(giʬ}YȦ0`Cd#5ADN-ri:GMCp6: !%d1ѓ{qe\wLwz|Hv֦CC w jkoskAQΚfNY<*>_8"x <DjmNQ=VR6yڭRoUO5_+D0Pٮ0 WV{NF`7^)١pVIeJNI;h-ns/aϕBN9+qTFq5lS5u泫'(T[.9&ARcND@pöyaru&+qi{ &=emwL8S9`_;c7#Ӽ~Q=2vɇ<OmvKs4C}sڬyvhv	f:\	s#<F-bDH] xQN0+ZytB@O| Zۛ8" $ӎF3ټ0u˭"ɶbcjXC3-38%Ѳ+jUQCRu'5CZsH.AJC]X靇K-(5JSRNCOɝ:X2;r圳38^ D{=Rx旉"leW@S_:?鰬#o8W7=<OpL?.C4u*@ԢLǲ̖|Ʊj	dxIj1нN}k2&^ Fi[;jpr!HvE-^XyR= x$	N
MzPRʔUbb\bKIiAer0m}s.;?>ã~NsƥsIo/vc o ܯW\[-rh\{ԉuE>maCx1! {^Ao4p-c/Xv+sA^KKc9SL":Hpv`6;WrbsBꊫԮ%DaB$.cpI$OCp
o}n~XiŪtoeGr @z1wYi.J
o[)y_x;! {NAoc'xcbaCX^KKc9SLftDA@{|AD 9怊lбYEÅ
J*Hn9}@KsJt-;<p9ƶ^(V[cce@ %
F
Bm+<5_jxI!Ei`a!tҥqV^yBh Hz֢FD`VʍAQ'E2D4
e{m)R\1.;>i=rpi΀ 5aJtDm3L^͐]x=N1F{=Zd:UjN0-G+G. %;,}OIO_]eBj
^csf=F3.<VI6ȐW#S2]uV.1xeZ$-ñ"oNp#&6+TXס/Zo}Z~c_/_O!L97 NUs|B@ĹuCt.IȀrǗx1N@E9(hxB)hsz&vod6(9@$=&KJ~~DLɑ@*콕<*fZU,SXAlT%\	}Ɏ)k!船ֹMii%_0ka#mL3K;`cr}~z{}?=\?t!w^IR/w:?QiV xQn0܋3(YCzM)PthI-#|}gXt!G0`z}{Ry8<+[Y̴p*Г#9EklQNz#wJZm%_9ǰ!9lαM/i-.\114o7%3/cʅW!~͎
C	P]ͣAȾYE!M4JޥUs-q·n
^fNh?s}"~)Uj0V?8)΁ć;eT5^v3Ze3JNN]SoOx8tree 530d6bb81ebc78a8b8d57a9e2a1b1492deb07935
parent 37d6db0b7143b732342c29ef58af9cda045058f4
author zzc19990127 <zhangzecong@huawei.com> 1775717764 +0800
committer zzc19990127 <zhangzecong@huawei.com> 1775717764 +0800

[richEditor]支持横向、纵向滚动

Signed-off-by: zzc19990127 <zhangzecong@huawei.com>5iݟxK0 =E-<XP)1zzY4.gv!Y(LrYI&s}G&j[bavHޑ( @':d
:.~Pq)E_>L|ӶBgcrVL2Fvj
5Ri(͒sˏKO^x=1@"(,xO5Nu
oT6VV^FF.{ 1RxPIK^<w=4 k[UPJg4pk4r<Z)!9P;b2jȡ?yB%0\J"vkv_F,bV)AYxJ0@|Evy4M+""(../H6ЗԒ"nu樋":? ]'vs`@nM&hJDR+"c9iU>RH-	)8(6傕Q}CGOJ#~BՇ|%^]au@E5Ffr1?|R`ůO6͹q1tv|i1ݿMy<EWok?p*|EU"X(4C~x6x?N0w;
;?-GdSWNPƀXae&PCGOzKia4- *SZf2BʩkNZ>&LpnL+ -	g	BPіRMjMcSMu)vLgD2])Pho3<~4L/ێXgzW,fxQ躭c]4 tmx1n1E{}h=6Bwx[GJP I )VpD4x{cJ+m{좏)GڠEŐ*زKq%UdH)D4WNe yvrL.d^\;n5vq/KD ,E3np9.o~v~r~
1gǢMO~_ax1n1E{=Z40(r^avƑa%5Oqs '@4x{ю1{q Gk )Z^ڬ*2,J"2u&d@pʿEOiEqVi-42̑'P]69׻4q=nv~S꥙."|<EO]ϛxAn0E>U*'x<ޡ'	dA wW8 K@4%* '[fR*%e`L $؉Irƺ9cԤ5c\d,V~p=Wy%Nx SD))RNU).w>\?[.n=nx5)/zn`ax0{O윝B}GR?@&1HIDKT(0FEv`6d" v&I#xW:5 VG2YƲ
OUS囍oXZ.qU~O,ۥEas9Qmsu	7i<-_ۆbi#xPn0+掶rm!hA\]vH$[34޼yy$=	^b]Y4:#m)(4pAZn
Rۨ(٧<}缀[?e&BƤJ(kي^Brfy2L&-R-L}  {zSӮO9F`1/Wŉ~49W+8"j?}=?~m`iyXv-4+ܚmܧ÷ؗp+59V?4L.ڮ2qS.Q#4ӸN&xn0~V&qUv	=DB,lQLӬ8vixz@+.=3<(Im,dEJuUg4]'ƭ$HH%qQH!:9
Y:bɍȹ1%IF;eꜧA$,U&O9CĐ賈q.ftm6; zg|;[=; d
G6!sp~eHX5~6V<_;%NY=)o
 ';
}Ëu}P!ΐh=Mi9~z:~mꆱmn/;8^Zh35]67]_`hJRwX>t.(랰{)Zw+x8tree a5bd8cfd11b2c3929ba53c2840a01e383c4789d7
parent c1fcf48f7168428222f9cc14b2e87a89cd404722
author m0_59343938 <xuqingyang4@huawei.com> 1775641192 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1775641192 +0800

update: 更新文件 capture_session.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>x(cx6tree f2c7e52d1ff9eefe6fa108bc50667371777b12b3
parent f3f6e5528316b7d5d97d7bc64588cbd4c0b6be9c
author m0_59343938 <xuqingyang4@huawei.com> 1775641090 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1775641090 +0800

update: 更新文件 camera.ndk.json


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>bxM0FwόBӞ`'9l,?hBH>Oz[g])RlD3eDSH'fVm}N@2E$ _kK"*C,MmMҦUF0\hED7&<KVuVi')]-RS9SJL5c_(.)%kiuxJ@}%~C	]18+R9F{0 "Xof{L4ؠmbI(RIAS]NM[TB d,9B.LSgeǄh.)#x0΋<kLAL}kRR8EI^׾SSls$?8jVv޼?o?{]vnymۧE{Y?"tTFY_ycS4fY?KĆR@XubMzNQה!D0K}<"xn <X0QU5*VP01D6n>%]ty̜#DCQ:nmƪmcd-q	v6\AM*'VNY{Cn%,٧	<Nɯօ|
jlnx9+r_>g.<)+x^rY_	sH4a/GK޼41NODi41a(nh1-3iAu`"B/^J	sU$mvm-<)O>/C*	X4[țGs@myZ9j*@hWxEtree e6e5374ce222dc7cf2196ac8e2f7600b942b25c3
parent d933156856b5f4cd6dbd3a1119f1eac0e81e65f6
author liuxiang-7014 <liuxiang193@h-partners.com> 1775620971 +0800
committer liuxiang-7014 <liuxiang193@h-partners.com> 1775620971 +0800

update: 更新文件 avrecorder.h


Signed-off-by: liuxiang-7014 <liuxiang193@h-partners.com>Gix?JA~N1D<̼0;a bg1[m?ŗ̲߯iR2!4@3$bdT hZl@Q,Cy&ڰCDʑEU%r"j_Fy{.U,OiMXgRkgx 1"X?'">_vO]Yk.mw9<n>[!4+]7K듿O_TqzxMN0}N=*r4#X͚8VI1ܞ.XIJ1A*zt1	WڥuLޱbu}PP|%L2˶OjWxZCMi>Zs@,19{#9ڻ8#c]oŮ퀔&1y6p=+(=O5!:I0TιxC6/܄Mu_?eEpϛxϻN1O-E*5O0ǉ"IAA	O:j=1 KIRIɳ9'U6͒DQ3PFđc%2_~첾q_2}v{,d]3p @ ]gw~#ګnK:lwIQc^.2:  T \Z5s+1k?ڔ>grCxJ1E$"L^:C)Ľ9_8mÅsu9[
3x!h$R1ΠS<J_5g-RMRg82M4mmQZWk?EtͰ{0"}@MU.x@>v9>|_Zv^l(e7|Sm_'x}n0yQWىo~*T	Ğ$b;^q)e8w9G"S+46h8cjzFZT;FVB Z;N؉~}4y|&:ߖk@Uw'x+!*u6gS;tϒ*Ҍ:xaٟ庐	0w\8D27C<P>O7p8%}|ڄvh90A2#qC	fܾbo)	zpzV<Ͱ$ڬlR+C43y=f_z`g{F)x\O]z]9hJزKa~JlS&#{<_/T}x tree 919376bdf1fbe59ad8f0528e8bfeaba2f100d774
parent d93b295be6fd1e765d5fcc3894611454038ce663
parent 08e7376471eb503cbd6a294015f58dd7eb2125c5
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1775611335 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1775611335 +0800

!4869 merge feat/ipckit-uint-parcel-api into master

feat: IPCKit新增uint8/uint16/uint32/uint64类型Parcel读写接口

Created-by: x601760700
Commit-by: x601760700
Merged-by: openharmony_ci
Description: ### 相关的Issue
#3775

### 原因（目的、解决的问题等）
当前IPC Parcel仅支持有符号整数类型（int8/int16/int32/int64）的读写操作，缺少无符号整数类型（uint8/uint16/uint32/uint64）的读写接口支持，无法满足需要处理无符号数据的场景。

### 描述（做了什么，变更了什么）
新增8个无符号整数类型的Parcel读写API声明：
- `OH_IPCParcel_WriteUint8` / `OH_IPCParcel_ReadUint8`
- `OH_IPCParcel_WriteUint16` / `OH_IPCParcel_ReadUint16`
- `OH_IPCParcel_WriteUint32` / `OH_IPCParcel_ReadUint32`
- `OH_IPCParcel_WriteUint64` / `OH_IPCParcel_ReadUint64`

变更文件：
- `IPCKit/ipc_cparcel.h`：新增8个API的函数声明及注释
- `IPCKit/libipc_capi.json`：新增8个API的JSON条目（first_introduced: 26.0.0）

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4869NIxN0EwwTd;v]!xKi\YFJ`ck(2vsuj!J+/|m!`h,)icri 
KV.NKSsT4!MǊyOxt- F9hW
ujm_Eº旗S ?m䘆p8ϟu~d.mG
Ʋ
hxKn!D5?EQD4eaX8mTSFăR$QE%N|1sf4A1Io	*f^iG Ư?:[x.S1 6Vk~N6;[-$l	;GD烈{;oBi9/4IZFxM0 d%Pƻt-QZ4i
FK>1F=b	D@2ϴHmV")p!A 0_s;̋˸lE<?ժ,2 lo:g6zZf|__>Xijǟ˘iݬ/x]ޜx9N@9hE;pY!I
\ I}$
"&F ޓ/7 :y"N'NY%5PeNPR	3O(r*W.++lżr4ԋsLr#>!42g8dVGx;~wC?_ͮ߾ضC7X)~}v1Qrfx	1 "wQ3{,Y
,B,qp;3OIjU{'MYi@]P^O]:-"YƚCcKpNC=^~^o>swi쇲=|N"F"1S*9@L֚p\vߥ8/9uC|{]x1tree 3b79c79696ba063740f5bd49b91007b885482748
parent 0f6c9d9c6d70d4c89263f25a77c61cff2c4388f3
author fwg5587 <fanweiguo@h-partners.com> 1775531516 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1775531516 +0800

update: 更新文件 oh_window_comm.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>Gbx=n0w;
|AU;g⁄Fn=@յR7!B܂p>wIP)o4(-d qZ%B@^8`QDgQ2D(2Ā!XB0[!}ێcMM|[CRou?)ͱ]r1⳩!d)gz:.}=wGӪP1a=veכxKJ1Ef@J54| wv8x}LBFBĨJ
vjcD3h(sV[,R
ly)
7 [5Mvt!bQ{ڧ/h0 ~.չT+}r1JB[ lK=^S;%Ҳ4Fj~mTq6DXΛ؇F휐΅ZkK;y~{z)?{ӚqxOtree e81238f34d9a20c6ec752ed4bff132b899792ece
parent 66ead03405b56eaae6e0d3b3a5f7233901f61455
author liuxiang-7014 <liuxiang193@h-partners.com> 1775526785 +0800
committer liuxiang-7014 <liuxiang193@h-partners.com> 1775526785 +0800

update: 更新文件 libavrecorder.ndk.json


Signed-off-by: liuxiang-7014 <liuxiang193@h-partners.com>Smaxtree cfc57b1e12d996d079bc03a832f84ccc033c24c1
parent 2cff021aaf184a50c26c5bb14e9d8e25fa6fa38f
author yang-yinghua <yangyinghua1@huawei.com> 1775526695 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775526695 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>]`['xJ0@ܥL2m,xZLf&ۢ.Tѯw<xmU}LT)!òwJ*bn gr,PcdC[վM؇+MqC{^.2d{sf5oolPS;/MoƼLY[jsI)N{}qB odx,tree 50766eaca57c4e6364028ce3313661cb2b3e2f02
parent ad19426bd70a218181f87a09238e849cd2c246b1
author ren-qian12 <renqian12@h-partners.com> 1775524488 +0800
committer ren-qian12 <renqian12@h-partners.com> 1775524488 +0800

参数约束描述修改

Signed-off-by: ren-qian12 <renqian12@h-partners.com>`Ddx=JA@9vv9fYfViDE)/^pV:g	,MNa)-oFwT;TI぀R3z: *És:Z^u{us+ʥ,g#ĜI1lvên~?e7LnBw+mxj0Ew} OTB5C')Qv02[[G$-Пi?2=Á7DJSB Jc(xkjea[d F^XrXK*H	#A#0_]%l̀;J5OkZfۤLZnt*[
Ec=a
dW
xJA@%2;+A,掻BL`ウb'B4M33>V8"GP)@I0#Axv"Wd"Ob*u2᭳Fr`рc^Vsۭ~WXP!O9<1 Ya	;-bƉmY{媿{Y}xj6]3Fh(sڝxAN0D9E(EqvMPȗtv]ղ[Etpq A)0'VN]밒V	8@	%s,3ŀ^ `:	]v5{V`=bӼ8g0 -_ߨ?Eeؚ_y_橕2oɌ`uxA  ＂b`ݶBCh=3ɴJ$5XE55l1iglza$bY	BkacdT1OsS,tw|reN9IJîKkA`JEH2eJ]a #5^#x;N1 {=
};pyw
Q/(嘯@$.bJX  .J`(+),*PMRP+!mm~O_˸]E!/!~m_pZǾv<}[Ϙx=N0{=
zB,[m	$$($T+N@㰂c`!4fTd"%I2B1JDReְkx%F"TN'Jpx#`_wJΚ7;U
 X ݮ&OXom޿woUNWMdl5˟_u\uUv^@ 	B'R h>)>70f
1zxtree 72a64f2484d76f5787a0125de50f5f8806d03176
parent 7a63cb85cfadde4b1b5b0f82b65370e934799dd3
author yang-yinghua <yangyinghua1@huawei.com> 1775207042 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775207042 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>WYxtree dba9c62b7f8b395b9ea8be85ecae6d303dc5e6d0
parent f924a4e5d7ca05d30291d781be8f31a386c87755
author yang-yinghua <yangyinghua1@huawei.com> 1775207031 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775207031 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>nZx=n1ާp-?;;/,44\j$\& rl)m='}zg%;EZ/EkȳuHY XS "4&P
 C5DE66u+'y(/'7[N.K8e e3Gpw#Ϗx4o?}OEy)j7A~e<xtree 72a64f2484d76f5787a0125de50f5f8806d03176
parent ecf721e9d4e8bbb2a461616ef6d5341d8e429152
author yang-yinghua <yangyinghua1@huawei.com> 1775206554 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775206554 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>VY[xAj0 za%d)R)`]Dn\ׁah0&%LȘ$`hM*Q 6i];[ DqDDB|HaY_U(~nz-V5n4\ǻ6-4^ >?"f}^RejZ˟]9SdE_XVx2ɺ!VDS
@T/BX\xtree 6b7090a18d2c53545406f0a1aec1912184d06a3a
parent 2e8198f64839beeacd5e045ea7ec448d8b2806b3
author yang-yinghua <yangyinghua1@huawei.com> 1775206064 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775206064 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>&YŜxtree f8160191c3e41a1f4d988b679e16b24dfc2af46e
parent c47b1fc72620819824a7e0400e37a7f2ad27d23f
author yang-yinghua <yangyinghua1@huawei.com> 1775206047 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775206047 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>7YМxtree 6b7090a18d2c53545406f0a1aec1912184d06a3a
parent d650f2d9060048e5678758270fa520cf76148b46
author yang-yinghua <yangyinghua1@huawei.com> 1775205248 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775205248 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com> XvxK
0EYERyiWymMJH]:9RZitEQ1GaKs)D$F.xG%>zd6^K-s¯Lz5;X v5/0y.T{乤8T.?b^dxtree f8160191c3e41a1f4d988b679e16b24dfc2af46e
parent 11eeda5f1d7c6dbefef78b598d02f2426beceea1
author yang-yinghua <yangyinghua1@huawei.com> 1775204772 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775204772 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>^[xA E(1;x(3mR=]4.[ʬ=!>r2"hg! H+צ!Vp6c	0c/@r(J[UTi㚪>봥'a_	- NskARc-"]~~>Yxtree 2d74c9c4d891e0150d1403e34d85e4c473cd9208
parent 8d0a8cde164e0f647317dba0980cdca1b8115432
author yang-yinghua <yangyinghua1@huawei.com> 1775204305 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775204305 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>zYxtree 479cefd6b832bad1a8e5afd409553e13ad843a6c
parent 19caa17e5aa54f2b890b3d1b4a9bbc8da71b18b5
author yang-yinghua <yangyinghua1@huawei.com> 1775204155 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775204155 +0800

check

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>[kx1n!E{NAo֖e9 3ƶ'RF)Ybp£	(9c"/91lP7\18yDA&dm\71JuY[]:U}^\mmBp neAm-yk~/*QyD};t`xVtree 995d841b6c102350158dfb0d5b64e054543f628a
parent 416b5ee85334861065eaf7be6e3aad668b8e0f85
author zhanghongran <zhanghongran@huawei.com> 1775202945 +0800
committer zhanghongran <zhanghongran@huawei.com> 1775202945 +0800

add new sdk for video encoder preprocess or dual stream encode

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
DoxCtree be50b0ec3d1d8a1a157dd253466b560cd60821b3
parent e7c18ded4c561725010a959f51f48a60ce466f8e
author lishang21 <lishang21@h-partners.com> 1775202121 +0800
committer lishang21 <lishang21@h-partners.com> 1775202121 +0800

update: 更新文件 oh_device_manager_err_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>ryixCtree 680f5d0be026f0869c10267bf9a96a9cb33ce1c3
parent eb49362b6476825f370139929329b36053ace86b
author lishang21 <lishang21@h-partners.com> 1775200984 +0800
committer lishang21 <lishang21@h-partners.com> 1775200984 +0800

update: 更新文件 oh_device_manager_err_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>GiJx:tree 29106961f7de714d713299224cdadc1d222dd271
parent c0a5c21fcd2e80a89b9037b95053d3923b339156
author lishang21 <lishang21@h-partners.com> 1775200962 +0800
committer lishang21 <lishang21@h-partners.com> 1775200962 +0800

update: 更新文件 oh_device_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>ex/tree aa31b40323ffdcfd5088d7becc84d31aba16412e
parent 9609ae373f9a3d1c55dd22dfc08149b382e6a6dc
author yang-yinghua <yangyinghua1@huawei.com> 1775200265 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1775200265 +0800

API注释一致性修改

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>:hxCtree 33747fa644d394b07a3f7a2b5ba72d693e48cfbf
parent ac011b43e745d6de6e87ed690d4353a0a568a7ee
author lishang21 <lishang21@h-partners.com> 1775199763 +0800
committer lishang21 <lishang21@h-partners.com> 1775199763 +0800

update: 更新文件 oh_device_manager_err_code.h


Signed-off-by: lishang21 <lishang21@h-partners.com>+`jۚx:tree 0b42aed36f84c17112c7bb5444c3ebcef850582d
parent 9609ae373f9a3d1c55dd22dfc08149b382e6a6dc
author lishang21 <lishang21@h-partners.com> 1775199709 +0800
committer lishang21 <lishang21@h-partners.com> 1775199709 +0800

update: 更新文件 oh_device_manager.h


Signed-off-by: lishang21 <lishang21@h-partners.com>K_g*x5	@EEL}IYŅeuvpL5;s-s4G@m-^łd߾kh0*.b
HBwV} K"#x tree dce0bf0dc1ffb98bb31af8cffd3dc21309633432
parent 8b3021edf321b751196b564253409467df2afe2d
author ren-qian12 <renqian12@h-partners.com> 1775195444 +0800
committer ren-qian12 <renqian12@h-partners.com> 1775195444 +0800

空格修改

Signed-off-by: ren-qian12 <renqian12@h-partners.com>X]x tree 9226f08e139a390d6b919704bfec880240ed9079
parent d08ac55bce3bc3aa95753cc24cc5283860db9366
author ren-qian12 <renqian12@h-partners.com> 1775194602 +0800
committer ren-qian12 <renqian12@h-partners.com> 1775194602 +0800

空格修改

Signed-off-by: ren-qian12 <renqian12@h-partners.com>V\ĕxtree 705a1f8dbccfae792c96a6ee76b7e667b4711c39
parent d2469cf02222c78bc167e5e253afbb2d35533c7f
author ren-qian12 <renqian12@h-partners.com> 1775194262 +0800
committer ren-qian12 <renqian12@h-partners.com> 1775194262 +0800

1

Signed-off-by: ren-qian12 <renqian12@h-partners.com>`WTڛxj0 {}ZsF~ Eځaq޽WE3T]l92Aea1t6,R++A'ԓȂe?h΃6yko])@0Oz[ǐ8FׇU՘uބ]ujϮ\he^]̱ԘRI]""4</YxJAye\1UZ}0sf7hvfWH/b!(bac,l|Dp4vڝ gzR 3DgZ+aRj&撤V'>meJ9`8!6eq}{r8ʏgxwBaBI6N{*%)xhBPLǣ"4S<Ar}?*8r}u;N$zy|{~؞_ߞm^/w7/6O~Hz_YF2A2p]<H+#@2r\
P	i&@G}E> ]xj0D
݋$k-oCɹ_ #e}=01Dl\ė1ȱ;@p"<'sMڒš2C(8`D0d7>\b=[k۴J{|z;YR|<7:g6<!x-ݚeKU$w=3Vn-?^yx@tree 7ab8266e09019c1d23d0f616d2390cdd1240028d
parent 6ec0e0ec780395db4269565deca98ab0ec388c19
author infinite_chaos <huangchao178@huawei.com> 1775142447 +0800
committer infinite_chaos <huangchao178@huawei.com> 1775142447 +0800

modify api version of ai mouse key

Signed-off-by: infinite_chaos <huangchao178@huawei.com>
{extree 57948b9856152cbf095cf8eb1fd0de017acfb786
parent 0ad67d7b2ca2f3cc4e1ce3470851e706f4534663
author qq_44946196 <shiju1@huawei.com> 1775141949 +0800
committer qq_44946196 <shiju1@huawei.com> 1775141949 +0800

fix alarm

Signed-off-by: qq_44946196 <shiju1@huawei.com>)Nex%ʱ@P)b`>~")wPERN`^霖}#gѢb+z&*M|s+U2>JеZ".Z_@"|'xAk1ed2$EkA,=t%YYlo=lj"z+-N֛8kE/Kޏ7  0qb MaD㨧N5E##t[.T	pŕ6*NU&$]YfS&X4I8e![rǍRn/5ifN>!QyЅQgMv}y]2>Uo,gCj	ᕇh>)UU6	o *R!Ţo)#T8˰Z׶l4<÷ף/wvz``ϰBy^U
y\_=kY4/JVxtree 17d12737ac0df6c01fd4dc5355006fd90b6fce41
parent 74db53f61adc4bfa9d7811c6424e6da88a409ebd
author qq_44946196 <shiju1@huawei.com> 1775138514 +0800
committer qq_44946196 <shiju1@huawei.com> 1775138514 +0800

fix alarm

Signed-off-by: qq_44946196 <shiju1@huawei.com>O0x=N1{=t8;)ET"Q8I$n"!B>=}zud(i 4	LHȥD[Pu&Mko}h"B^кa1sU"~$,sVN)1E_s(~nƃڿ?\ί7otB\/n
͐RNzX|h\lx1j0wB{p%KBzIC(ClJo ZdicS}#r!@) 'X)EXJUh$R^Cm]1qP+K%":F+rSb5_&m)b{fͅ1ZV_`3ݴ){6}~޾m~eOƞ:buD?,IgMx2tree 5003b7c974c9ef0323c2fe6991c46f72afe8f248
parent fae09e350912c6ad8c562f969757c5959ac94f9d
author ren-qian12 <renqian12@h-partners.com> 1775133770 +0800
committer ren-qian12 <renqian12@h-partners.com> 1775133770 +0800

API注释参考一致性整改

Signed-off-by: ren-qian12 <renqian12@h-partners.com>pgx;0EޫpƟ%=+gG"rݓI:IGr2^8z
9id	]xJI,6щՄNSapYTyT<L%Sy(nOBu=eH\ y ;O_qR0w}&>^x
tree 54740b60b27bdea3772995eace2e44ae3d402043
parent c54650f02147b5c37c79a1913ec7883872727c2c
author qq_44946196 <shiju1@huawei.com> 1775121315 +0800
committer qq_44946196 <shiju1@huawei.com> 1775121315 +0800

add json

Signed-off-by: qq_44946196 <shiju1@huawei.com>?WL՚x=0@=ȎBԩM*ČO.:Б/B%38c҆!m)Q~R"xcdr& q'@X(^[o˚)sIy+X`ZxYi.G	ƨNcJGᡙEz~_SF
^$xP1N0
(ǻ	vD\E8  
<)FhĬDWs05T+' VX$0qUa!
46I	 woo|>w㤯a_zK[xڝ6vF>g_kɫy~<η/|PoN(Rě՟Ʃ.-'O,{	*X*H 3 sxKN0D9w@n:Fq0jۓ%9 JU7UrU#ҩ6D)1g !/ʄÝn@.hRYXPdBGBX8Ar1R<wf:o󾙷|x}}7Hh`Nw]ztOm75&|;W3~?^tًǧqPeQ2 teљxA
0E9ERIig""̴6q-x Շy6U; HDA$z?H*1 <xl	`ɣ]R2GZ7۸7vR+=S_G9gvzϭ?9sKѹ)u>`>W{Q֜x<tree 117f18b59dee9112c1c4c8fe8e82b6bc95db7940
parent a7af45d42eb2d8352ea505a4ae3fef6f61eb9206
author guagua_wen <tanyongwen1@huawei.com> 1775111676 +0800
committer guagua_wen <tanyongwen1@huawei.com> 1775111676 +0800

update: 更新文件 oh_commonevent_support.h


Signed-off-by: guagua_wen <tanyongwen1@huawei.com>kx<tree 2a91008a765100cecb23176154fe89027830adfb
parent 794cc33b65d8213d212535fe6a7fc65e77927628
author guagua_wen <tanyongwen1@huawei.com> 1775110116 +0800
committer guagua_wen <tanyongwen1@huawei.com> 1775110116 +0800

update: 更新文件 oh_commonevent_support.h


Signed-off-by: guagua_wen <tanyongwen1@huawei.com>ipxm0E{NPp<H	NQR!hJ%!(Q2g-E'dx
HKKuYƬQ|kb@6kJ%dӰE[%sYu<<^m~̯?p&2`F6;9	ޗ})ҷ4ŔRQ]}~caݓxCtree 963a30aed6260e56849f92a8ba707ff788cc12b9
parent 472fce298cef8693c7f79eca8486d6f6e644d231
author yang_jinhuan <yangjinhuan@huawei.com> 1775101899 +0800
committer yang_jinhuan <yangjinhuan@huawei.com> 1775101899 +0800

update: 更新文件 native_huks_api.h
fix warn

Signed-off-by: yang_jinhuan <yangjinhuan@huawei.com>tmՙxItree 154503c51cff0724eba9159852cfd5464d573b53
parent e66563f9141b6cbd6caef8eae78c37dd8d515ac4
author wangyongli66 <wangyongli7@h-partners.com> 1775100113 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101433 +0800

update: 更新文件 native_drm_common.h


Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>inxMtree a932124c3030737212165de7762075ce4e6b921d
parent b54282bf7cca2e1b17870449f7a875be79498ee2
author wangyongli66 <wangyongli7@h-partners.com> 1774941695 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101433 +0800

update: 更新文件 native_mediakeysystem.h


Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>Fox`tree a854d75490fc9faa9f86a23ae492c50df6aa9a4a
parent 85ac4070951afbf889d99fe7ed5288782f775544
author wangyongli66 <wangyongli7@h-partners.com> 1774941677 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101432 +0800

update: 更新文件 native_mediakeysession.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>D~ xXtree e002816fb57cdcfc08a1d1e873b5f29fe8f4e0f5
parent 5d99eb3881641f6413cae685edfc0457ddc65ccc
author wangyongli66 <wangyongli7@h-partners.com> 1774941657 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101432 +0800

update: 更新文件 native_drm_err.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>ڍ{jx[tree 0122a3bc7abd09570432d295f24061a977ce29e3
parent 78d3d44810fd8192f269c9ae36e2879e1f635ef5
author wangyongli66 <wangyongli7@h-partners.com> 1774941627 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101431 +0800

update: 更新文件 native_drm_common.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>zĐx`tree a588dca2aec46eca04f3daa6b12506286a41fd69
parent cc5d5ea6bde7dd32eecc55bb232c094ff7d36702
author wangyongli66 <wangyongli7@h-partners.com> 1774941044 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101430 +0800

update: 更新文件 native_mediakeysession.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>I'x[tree 15f09789bb1033082747dc5671708381c879b3d1
parent 2e8a69b6e2adeda84567394dbbe5e6a53f1ab1cd
author wangyongli66 <wangyongli7@h-partners.com> 1774940319 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101430 +0800

update: 更新文件 native_drm_common.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>{Ix_tree 077bfc17a57f0fd4c7391bb82c265d7e7df28d35
parent d27e15fea50517fee2c9398dbaf6207fe356aa20
author wangyongli66 <wangyongli7@h-partners.com> 1774939296 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101429 +0800

update: 更新文件 native_mediakeysystem.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>r~x`tree cfe3dec89242f1925910323f3c6696dee33196ce
parent 80aece4d202d827f00f83fb11cc276ca89292ee5
author wangyongli66 <wangyongli7@h-partners.com> 1774938993 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101429 +0800

update: 更新文件 native_mediakeysession.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>'}xXtree b0c82f15766e12e0dc91fe3f1223ae0ef8e775fb
parent 046cd7fb0996e6a245f6c3d995af4623735e7fc2
author wangyongli66 <wangyongli7@h-partners.com> 1774938770 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101428 +0800

update: 更新文件 native_drm_err.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>zx[tree 63db3a1dbacf52c60be3e85fbe3cf83bc1681605
parent b37f096f38481e5bca640fc3a40ff79fc0bc5d04
author wangyongli66 <wangyongli7@h-partners.com> 1774938660 +0800
committer wangyongli66 <wangyongli7@h-partners.com> 1775101427 +0800

update: 更新文件 native_drm_common.h
修改拼写错误

Signed-off-by: wangyongli66 <wangyongli7@h-partners.com>q|x<tree 3afbbba8a3e73c2806d3dd413552d1c4135c614d
parent c931e5602e590945829158d0c79ba0b0ccfac86d
author guagua_wen <tanyongwen1@huawei.com> 1775101297 +0800
committer guagua_wen <tanyongwen1@huawei.com> 1775101297 +0800

update: 更新文件 oh_commonevent_support.h


Signed-off-by: guagua_wen <tanyongwen1@huawei.com> jxn D{>r``EJuu`vaX>nRFig7*dcђ0
c$ U.Mh<:8DT<$g&,[+hZJ*85˻TVR<eng<2b׈"#m,7:v~5S܅=M>Г1|@40`-j0axAj0@ѽN}q4hJtuO F`
~xUDGac@$pp#Q5QP$Cg!VϴʲHLb!NP(!UzT}q=-R?Z_&ͯK{jc0# xfuG6UȷR_mZ!\P9(ý\9"Xh	a㑬uXB`eQax1N1D{=ZdvwJ7r" :MnTT\EB5ғ͔LĵV*lGm[ȁ턑l3)h2c@	h0RAmaa~.ÔvݘyN٧ƒ(o~U4UK9W;/ot8{	?RixAn0E>(`3!8/H rrvM
LU[@nXxADIIm	9:\@&ťS'+ B
mLEq QH~Ŋt9s_MYofaf׎|V/i&^/z̥{/IS)UaZV$^xM0wd4vY!B	T0'6+V miA NO;2Zhtg;62QclN4I9_"ZRڷ/ʐ'c,įV9O.C_si(~UOпy9y9},(y÷+}/|Z~ <iړx;N1E{=2olBQK`sE0rf|$Dh$`
9չu@N9-U)xtEgFle6%t
0K4Ρ:6PIFp4>z	-m@C=Pؘ0fp8͂
km#Zzd\+{Lo/pv;9/lۆ'trlJJODosxtree c7a1ea560ba4840bd12dcc52eadf9f06508df6d2
parent 3bfca152341e81b678037975edae5f66ddd07724
author qq_44946196 <shiju1@huawei.com> 1775038435 +0800
committer qq_44946196 <shiju1@huawei.com> 1775038435 +0800

Fix data differences

Signed-off-by: qq_44946196 <shiju1@huawei.com>]Sxtree ef13af8587306c755129e62fb5be965ae398e4f8
parent 0585a608274a3db73a42b0812e1cf8805b21c887
author qq_44946196 <shiju1@huawei.com> 1775038247 +0800
committer qq_44946196 <shiju1@huawei.com> 1775038247 +0800

Fix data differences

Signed-off-by: qq_44946196 <shiju1@huawei.com>\Qx1n0EwB{Ⴒ,R@=(D.o_=@Ә"fM(`Vͨ6JUD*c
*Шc)B(qK$, R\oe{8^e/9#:?Q?ApG{MAO/lv1_a1d?AŹ!ù'*uS2˄dIPxl~ axn1 {BH|B> Zkrw}NQR鋈l'©BSHbr9ʋ]:A)XJ l)b|A?w[_׌p"s{{nEMDqD i]YR\ʩxlZܽb r~ gRÖx1J1"'?	f27#cN-,,lDAE+o3Ao#xKCRض*@9ޘ:*Q҉z1I2(%3{ª0""`QҢzUǳ.:-gshܖb.}<%wIsR
jț;ߎ*?Orz~޿f|qҝ=sѬv*lΑx1tree af1fc1580d9d8d202a4591f06d979650d871a4a0
parent c12b8e4d6eccf44b8d002bab8d83af6ee024681c
author fwg5587 <fanweiguo@h-partners.com> 1775026538 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1775026538 +0800

update: 更新文件 oh_window_comm.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>cxAJ19ERyɼ$Rw	vȐ2EDtFn\upn ?D{E֔@uFfVzR[!y +ReXj%J0Ѝ Cy%'W"lZ47aQ˵>/ՌA:h 6U#+fa}KszN״8~?׋@դ~__Ӻmx1tree af1fc1580d9d8d202a4591f06d979650d871a4a0
parent e29829605a20b652a62c91ed96e3e80812c02aab
author fwg5587 <fanweiguo@h-partners.com> 1775025467 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1775025467 +0800

update: 更新文件 oh_window_comm.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>bٜx,tree 80040db0747648d0f22c53d0cd6774870eca809f
parent 49e53b461eaa831032fc38555c756a2b64f1f44f
author fwg5587 <fanweiguo@h-partners.com> 1775025134 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1775025134 +0800

update: 更新文件 oh_window.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>A`x5tree aec7aa627e7d133c2e9dffbb569957622bd96fd4
parent 9f8c510255428858862229197de21271185ac5ce
author qq_44946196 <shiju1@huawei.com> 1775014825 +0800
committer qq_44946196 <shiju1@huawei.com> 1775014825 +0800

Format conversion requirement interface description

Signed-off-by: qq_44946196 <shiju1@huawei.com>L^xAN0E9Eij; vkAz{z}g1X` =&L;n_r@Os1I.}~oubuYK^' 립?u#}oCaF*ZRVyե2Md/L^Fx<tree 97f05ace2c820431c1445c7e6fed56797efa5576
parent bdfd483b68b9d41608299c4aeda8ef3e04be14a7
author mohaoyuan <mohaoyuan@h-partners.com> 1775007607 +0800
committer mohaoyuan <mohaoyuan@h-partners.com> 1775007607 +0800

update: 更新文件 js_native_api_types.h


Signed-off-by: mohaoyuan <mohaoyuan@h-partners.com>knx6tree f4bd9847b31aea299a963306e51486c00aacb9bb
parent 4846e87e84050318d6fa51a4f1aed87f08219853
author mohaoyuan <mohaoyuan@h-partners.com> 1775007511 +0800
committer mohaoyuan <mohaoyuan@h-partners.com> 1775007511 +0800

update: 更新文件 js_native_api.h


Signed-off-by: mohaoyuan <mohaoyuan@h-partners.com><gΝxtree 74b88b7d81aa9698fb01aa2d8cca3858621dce16
parent 2887572d0efe9efe9b75156d80105dee852be372
author qq_44946196 <shiju1@huawei.com> 1775005386 +0800
committer qq_44946196 <shiju1@huawei.com> 1775005386 +0800

format conversion interface

Signed-off-by: qq_44946196 <shiju1@huawei.com>Ux1N1E{=Z#ۃ"JE	fd#%tㄜH kZEO&Ȥ;t©J hW^-0jZ3^Y8M.ri}7Mf=]ewt!{`['DNc/N8b.2>/ǧ[-*͸N<t9ƎrtxMn09w%PUUW@0
`Йl)"⺴4e^m}ǭUZIJ`Hk2cNa%,\uVK#["ZonH6\_ASZ[^)%'@Nw'GgC<xO޵xSX2fH!+˽`!)_ Oɍ}h>+BOb?YpFx1 {^A9p(;l+2X}\Rl1SU"nVG%TbP62> -lr  Qp9(e" ަR6<{G~&xNmveyZpF`]7X{c&JJ]8nd*dÛxKj1:ECܲBl:>-[03 +M/lMԒu޺RDvY^aCgthc6OGfs
wD!뽆eD~>6Yhc!εwBe^&c|~@opRF_GW^ɇV!>^z~ WxJ0E쥒I2~{LIK'.fJ¬]"Fp-~ӕrᦎ@R !hI*
眱9祷b,jEh(t U}A1I˦~/dKyլ\*seB])mvؾacx{ƮE$5!dhpx;N1 {=
zo}('yzQ Qs4-HҎ4+HZ
[4 S(^ʭK9gT)22^YTN@}*a>Z嶆6Ԟ>xzL˼V<yI?.46ΛM<=# U\x,tree 409df7632a77be7f7d2ecf5cec79522bfd4a86dd
parent 0c3703f10e988ec9dc6c54d5f6c4636b30bfcbfd
author fwg5587 <fanweiguo@h-partners.com> 1774919208 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1774919208 +0800

update: 更新文件 oh_window.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>c
x;n1E{}4~"X?L2(Se3d489 r@J@FKhIВ1`(.+VUɢd'2S[qc뾹weHvťV_vor=ן|cl3t#f"jq
OYőxJA@%2wfDB
w-+,b/B

&Z)ρ̒).nMX@o>AF\($n}Od(m"c0f@:䂁#8veM4F+yvN<R;k /ϔWJuW+y{|{X]-i/ĪfC)trEaVxAn EbU*z`jƎP..*`$h*bg^"V6D5X27u퐲ǂrHu\r)) 5+K14FY/Xh{-S!ELs5zmD@֠ΰ6>WVo3O^#x[n EYG 3TU=t&j^B+sXAd5H7FQ:S䥢I 5)8ʣ.kg)T"PZBx/\.7/"IJq:F6/Gm~jck7!8O)=qQ\ixN!D|w3
 ='o&~a0l6k^Yf
"3QD65&l2*WܦDO`^5h@	fֻL)ތm{vJ8qxԇ̗b-zCp-rZnxR{
NRuN-vegevy}{xⳖi9/t}O m@x,tree d12fe8aab6c30998dc29bc93f0bb6c2a0c69b28b
parent 493ce1cd7f714cfa7bc16179391a99725bf23b13
author fwg5587 <fanweiguo@h-partners.com> 1774863679 +0800
committer fwg5587 <fanweiguo@h-partners.com> 1774863679 +0800

update: 更新文件 oh_window.h


Signed-off-by: fwg5587 <fanweiguo@h-partners.com>bFxEtree 35fa50ed8267cc80f4220dad146c686e207f2f6b
parent 281fc7b77e8dfa0881892a84a980c6ae72958db8
author liuxiang-7014 <liuxiang193@h-partners.com> 1774862567 +0800
committer liuxiang-7014 <liuxiang193@h-partners.com> 1774862567 +0800

update: 更新文件 avrecorder.h


Signed-off-by: liuxiang-7014 <liuxiang193@h-partners.com>iYxJAFyeeΟQ,I]']?$Χ	1^>×/%`P%T@cPJ9Pa6s[S }RU.8酕ZhJc$jSBDpg]f`;N͊1[JǾ[r09B._n<|fۯW˶b즙.Ƣ~<ig]o.xK D}0&ÜR#x6Y'RJ7fɀd&
28f^%7XLYq2RhK!1bJ@:hHin}Z7F+G7~xzN&ui0ȓı>\Po]>eOByXJh|$ YYؖx&tree 14d835b5588982b43c845f9c54836164f77b9fb0
parent 2871518b92aacc92986ec0b686404e876a4737ff
author ren-qian12 <renqian12@h-partners.com> 1774854908 +0800
committer ren-qian12 <renqian12@h-partners.com> 1774854908 +0800

注释描述修改

Signed-off-by: ren-qian12 <renqian12@h-partners.com>A` x?tree bd30f80cf03562b752a6640a0bcf604ca7f23b2f
parent 915a9628e6786f109612f63256f18a1d1ccf1c60
author he_xuhui <hexuhui3@h-partners.com> 1774853496 +0800
committer he_xuhui <hexuhui3@h-partners.com> 1774853496 +0800

update: 更新文件 native_audio_session_manager.h


Signed-off-by: he_xuhui <hexuhui3@h-partners.com>jxMj0@N}Idi4
=@OlbdJnޠ8T=BZԠ6e%Ƒo:t>c!RRQEr,V1bf	
;:Ǽ~eB:L;~ty}}֌9% 0[ev<ӦrT.٥?'P8xJ0y$M""ų}ҙqm-	oo@}mL0kFeN>.ja
TF4<#FAR:Y`:HPo׺ѧ˭:kN?RG#9RZɲ՝f~D>ޡU|uc޶ތ,߫𩪞@lZxJ0FyIQqZp|	Mȼ}9p>1>IGmDʆw.F9F8rhpb61kzUYuǱ/w6Yvc^&Mr?F>?7z~K9}ݻR_ Z)t~Y͜x,tree 4046109ec73aa1407c0ac7d121f1fca5b9ae856a
parent 13b35eadfa5303bbf2406c7238331061753acd16
author lu-daochun <15323390187@139.com> 1774837230 +0800
committer lu-daochun <15323390187@139.com> 1774837230 +0800

update: 更新文件 camera_manager.h
1

Signed-off-by: lu-daochun <15323390187@139.com>JY֘xJ0y쥒UD|og&´cݬW03[إ[qu8N)
ˊaf{[rE	[˂v+DZxt|bk@2`T pmG/F8Sߍy1YSkG#m),i]Ĕ?62ݼC~}rLI56:)~Gx*tree 4d3e83bd190b8cbfcf7ae7dea972ab70ec0de2d7
parent cec02879d819c6f9c6d3377b3b943d955a6e6935
author lu-daochun <15323390187@139.com> 1774833612 +0800
committer lu-daochun <15323390187@139.com> 1774833612 +0800

update: 更新文件 video_output.h
1

Signed-off-by: lu-daochun <15323390187@139.com>ZԙxI1@TwYO{;73A71 %؈X]'Ba6BNl&E<`6BJOhM"FVTBeM^ͧemcu7ˆGy=\K11":ͭOʄ	׭$~^X:7Znzޟ'~wIfxKj0 :BzImJ߾^f3wL]<kO6T%ŎQqِ5ZR$Hmy,P'#=zqQJk8"{zlB|iZk~~iO#\xAj0E:KX5J!w	$L-Z}t>kpHF˩h:;z0PP2@Cw+U*#ِա87Gz~j/S_^"u)"8;ε5$f`t{Fdz6Vêzȯӟ-F]|x;n0{`I-ɕ%"*r06Y"ŉrBՎ $ȔAU&.Av9KG:j@(>/̾_>#$s< ݮKZ"]kMӷKs첤V85!|xN ǥ^|xAj0 zAֻJO,!rpBCR4J3L]TmHb@Y>Q$-P V1~Rm
;-{q w1#?|r_.:i[rz"@>8vaUgc}-^޾1/XT9&]2u[xx1!E{NAo4` %Q kiib_YzQEGB00D !JCevjd7xO`HVZOsirMSy^
NV.4ߎRYkiC$7 ćJC;_ք8Kq;缍u]ZxJC1@|Ev$7&E6о'(Mpqn8mђ#`g#}d@h'(}ӝ`
ˈ `1p0M*mj.u]Wc/XmNi60#qdښVn_e]Rfb1xS-a]xJ0<Ev$M'=D<pqR	$7\+SAOn"(}6Է6W>\i-*6MӄcPaJ 'LKY(!4<	Q
ˊto2ɂu嶜lbA"	Ak;9g@_-UuѮÃ=]w3WG_}3o{?;k}6QnMPi~ xKJAE絊K{}$dYU`wK22gN2wl6 #[p:p8íL6jE0:(P%(C3jaJ>6'csr֘Y:%¾nIpk77w!_m9Yvi7ΡB# lVD߈x{<?~<^,ĺ&( b)xJ1E쥒4$#"RilgdR{gR\{[F".QLZHZ@Q|Jh//ʀZ)غڠAZY#?@N~+Wʷi8=pi`S{ʥп:Xn}XV-4}h75Ά﻿f?dZxj!E~>5Ғmv}>0uL;"äKIԀd&(1(| na6t))V*c&@#)&Ɇus2~Pmx櫬NɥX|'lsPzKaOu!7N}BiKvKdOҞ]xJ1EeJ'U, JRiDd.twU5RIJ9Lń<5ҒY&.D(	1ak)y6ngxapȁeu{ǩ걬ua"ԻGD@#2R?J??tM<Ovۿ#q<].߅]TWxM1sW-zNphdT D@BA6HR$2`	\\&593ؤ\fGͪx>%t[fyLS-<WuT24OT*XþVsnjB\/T|&~6YxAn0zE
((/$2v*(E]K"%)t"0㤊6A1duxm-h8r2C&6QkHǼVۻͿY߄1[kݖw.}}Ɯ ?햭u{xuk:Ui3;,Z`x0E{OA83HS0!hR-HE讎tnn&>5D`\# LCE{B15d<*X$
^(PƼz.Wu\:v\WTO
S4Zg&Zr}4t}ítAh6cQ?=Cc%x=o0Dw
}EN;uH9p=pjcDʅ"IM1fEh ā8M[UH <kʡᢂRT|%whho=ɾ)|)MW^#1.eޗy0CXb^0c1kʰ:+9StN!VNH	0 3U=Gv?ikxνJA~bzY={f$6V
^3nfRxbE+{ADԀW.L!j_%QPC2XO"@CCֺLt		f1piBVzٴղIN~=l[LFTP)<gQVBNƛj3|\a=}Ovu,<1]E}yjVpx1J1"$`^%yb5dPPbYX;㇏/Vy [
3JQ0S,9itX<Y+oZ+RT1bS7c'	hwi<R
{` ؼC)?fpA$8%avf}z~=}}0H~BX؛?f;RlxJ1Ee*~@[ɣ`wzBąns3:d1*k1vYma{ɬ&*y	PPďqn]FyeV(X@ށw]*~D""}y}fEi7.V!]62d]) ,OXx1N1ާpc{3P;1Y)Q.' #@k5_zeK}$V;II$h=:ǔZDs yhڨx_6㤷y;droզɒeRUv7"BTzxϏzzOz7cJM<^h
xAj0 z%aޕPJV~"
}TH~PuO".gjci1wH"CN\lct$ iFU0bL0N!4u~v˺2CՆN7R" ICi/6s4ZL]	 ]Zx=N1ާp^-B'1 	DAq cтyzdDؾ(nMq+z4'W}Xdi#|ג	,pVl*#MRnS\^7gCS1]Z-(73)ڮR_A.6qi2m秏o敐q7)nO5"s\xMJ19E#xeIK,f'x7nr.Սǰ+j' bTNa0!2D>'Bx2^jMފ }EoP)®S](c񚟯C\ݺ
8m/pNK2z ۱5T*!-0?}.or:>2v3n
nʹٟoi8xKj0:[RKB Yt[X6dnr*(w}hs%D6J%I Ψ-m{î"Iv>14FϹz胨t;ںsZ5R?-y~-1gC":2?m;࿭:glJ}S:"C~\(R<\E_!%E"F)<KH+gx tree d470fdfdb4316a0817594c9897962a033e02c2dd
parent 90576b8ac4bc91448b44cddfef0c3b6cc289a800
author FileStream <liuwenjian5@huawei.com> 1774423689 +0800
committer FileStream <liuwenjian5@huawei.com> 1774423689 +0800

修复拼写错误

Signed-off-by: FileStream <liuwenjian5@huawei.com> aWzx[ɴiFrqyYEjrXC6##CS`+ zx  w<ʣ1~Gibi[gKrua`:bhZMM\Z<¥J`1R&thz#Zy7~e;s\b4A57{^cT" @tk"; }
͜R^t\x1n0]^ %ْ Ș'X2Pˁ-}<u.6	rU}kH.~@=͓6ͲFASı0R8/iH	z$f0tn!?sU{"QNҝd퟼.71C$ sܚ1|SnU4}^xAN!EiS.
1aNP@1Me{/"Є|!H)8C)S\.mh!HFDMpTXJFA9Q]T:޷?>~{ӆhY@M{c+ Tg㨽ins*u&y,o'7a˙xAj0E:Kh$[r%w	FQ-}2dm(gɴ9iT!'A)H.KQ}Rd"lٍJD_xuܗG'Ӹ̝Zy~{Z[wE@V/ܓ1_{Q9Rc]xj0z
݋JRJ =吳~V"Sczck
gNj"F׸tɑ0*5o!}4MSD ֗mq|saC*ki$L b;?GПG|(8!ܗ]YwBpjJ}{굸ix
0F<Ev6"$7`Si |p,-}r	tf{eŋM*@)vl3ʠ!`| 2/ϱ<5Nc}p-ݮl"{D iloQ9us]x~OA]x  w<JPc_RC[gKr0K6q0FZi4.j8 F¹JD t	W򂶚"o(sHC<Q55{f.1,E~|@/ NV+"Bܧ1,16u}MR^x=0@=ȎC1s8vH%6&f$7|zm	s81䂇g"HCpWM[B.a7A\`(E,}[USʳS!K![uۧe>itnx ԚRV%^k^uxKj1D:atmB*E ' k}f *⍞)f C HhVLq6DY%=!M`:9fk*CBk&4(._ǥuX}.|lOh>.6jnS
/,kߋ }Ji;WXZg9לV@q_-xνJ@~b{o2+"O{g&h\K!vb%66>aV9䁈P0^5 uօ@N@)s$QE%Z&Ғ #-x
/r|R>:~{Zh8_#.F80	-˙Ev><ܔǷr?}u4ܽGNu"pyקAOuʗx7tree a134c3bf0f0885ba73dd80a00870ad90f6de7173
parent 83ba7b338862eb38da7d9268d7e4c32954d23db6
author gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774324140 +0800
committer gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774324140 +0800

update: 更新文件 ohaudio.ndk.json


Signed-off-by: gcw_O7hu6ZQF <liujiayu33@huawei.com>T}dxm1@ѻ="k!D`lBFW@)"J	nBCKOmѝI輱vbvH@.H0Ba:$c 6G	pc=P^)۱Nx+0q櫔X5!5?/^ؖQ$}*MM%z)QҪ
seԔxDtree 85ce12b99affc7bfc9efc9163cdf8ee00815de8c
parent 07e28f6c3426952324c012cec573f467e5b57923
author gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774320533 +0800
committer gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774320533 +0800

update: 更新文件 native_audio_stream_manager.h


Signed-off-by: gcw_O7hu6ZQF <liujiayu33@huawei.com>jx7tree 32be633b63833ca13de3f6abb4cb46c95d3fed57
parent c8472ec59b51cac875b63b9685aee36f54c8e7d1
author gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774320141 +0800
committer gcw_O7hu6ZQF <liujiayu33@huawei.com> 1774320141 +0800

update: 更新文件 ohaudio.ndk.json


Signed-off-by: gcw_O7hu6ZQF <liujiayu33@huawei.com>NexNMK0WxA&ȊMTy)nM6eE7޼yoLD
](kUW5Mu63!J2Dwn8r/;/ FI]2JX5Ufca.WXwj.;ZK`UQ3zyO`gu|{? w.yob~5EKPOf)Spy~(L)|0a6]|ܤ[i?6%OxJ1 Jg;q2&,ѣx*R[YghE}h䄝2YsC׀C\s68~Wu}.NilJلfD>7$"@1ƼM崷v˟ \rxJAyee.; "J'"6"(IZH'-\V4)>8NGƢ:4!:'c4 JI|eCA\XϢ
+dV^s6㪦S_t[?"M氚lSnw:cM1+평x^Y|ݦtiv6eu?_/q0맋'BvQU1fA?l =:%ϕT%0W+r$_པx1tree 2ca83716c22ee03666b7706c38ac72fb6588507d
parent 08e55fe4dca4c73a28e78f43bc17c899a88d086c
author wzy_dthq <wangzhuoyu@huawei.com> 1774267771 +0800
committer wzy_dthq <wangzhuoyu@huawei.com> 1774267771 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wzy_dthq <wangzhuoyu@huawei.com>g[x9tree 6daefbaaf0827eda94392cd970dd1507b9b6993f
parent 02d06ef8067203704f08c1597feb071cb132573e
author wzy_dthq <wangzhuoyu@huawei.com> 1774267735 +0800
committer wzy_dthq <wangzhuoyu@huawei.com> 1774267735 +0800

update: 更新文件 native_audio_session_manager.h


Signed-off-by: wzy_dthq <wangzhuoyu@huawei.com>sbjxοM0SGwNDy/wM[a	
D:(s@A'/D	];
6JH8%-@!;L1szmlŪ P:cz%iuk1~BcI[y]4VU#w
~rZ\]ZVN|}ooGZ(Rв	"4Gƞ	~;̾jיxJ1 JgDDNݙeLXݣGX5KY&*$lQUN!ۀf$(DLH~Wu}.NI,_B9&D>7	|]`ŘI;rӞu\דx#tree 913d9cd4139b3dfbca64a7a30b57146ccad90a4c
parent 709b677e012a0af7760cba70cb89bd2e16952480
author yao_qiaoming1 <yaoming14@h-partners.com> 1774256434 +0800
committer yao_qiaoming1 <yaoming14@h-partners.com> 1774256434 +0800

修正

Signed-off-by: yao_qiaoming1 <yaoming14@h-partners.com>z^x
1D|Ez]y(VK7b5Fпw)i"ps+8j2BF@#h+FA@=R87e`=(=J&v-l9ߒ-CFS^ie/Æ2%WqAg` dANlO*/htoD1]2ع5Jcox1tree 3f2cedebde17c1d3bade58738fe86717eba4e25f
parent 65189e249cf48977364d48208ffa08098f677d18
author wzy_dthq <wangzhuoyu@huawei.com> 1774235099 +0800
committer wzy_dthq <wangzhuoyu@huawei.com> 1774235099 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: wzy_dthq <wangzhuoyu@huawei.com>gϛxλN0OoxB hVH4<'.6"'=G痾2KT*,RF>A"vt(dV9xt>x'(9akS]~y<JG8<O[ع<z
zF>  ^ZX7/D82e»[[&x{Ⳍ3SWs/xN<w7țN{O%9fGӃ@lx1n0 wB{h	"hJ8r`izޮbS$H&]-STCXm 0L2D*)Y4Nv6Y\wvJ6r1@u7` {i0"$%_Q4/uOeQs\Üa|\s?\nxIN1>ߣ Cwӎwp{ }zU9 .⽷NrRj W%촅d8'ÓW995&;m.|݅T}w׼I8AYz XVיb)4bIHh՘A<}3.zJ?C^Jxm@F̓0' ERa)NN%!8V2@^U}dL"TY0,(ѽӨ}(ـgZƦT `D1QM"h0sKc7#i':hU!X$07}=yunz`_hd3xJAE%^vtfCJt_fMtA&l-/_e .f1Qbn| \{1beTsjJZ\y`p6.G	Enhو	F"uWUS.PכbA\^z6hpp 2%>CƷw{;~Ǧ}ٵ[iűWrpS?mxN0 
QzQ
@!IImEw4iFD!H4 #	%2&Kidg9Ac`ZVM[o;-GK]kZ6187~ t_W}0kU4=&ԥ)Yi4?\x	0{]*Ӽ"N𒼴JIN%<zv>HąAE
xW r!).8R99e]-kY*r:HmJ %NFy?<S	nVWJF8!ت]3`_d=bH>ZxK
0 9ERIҼ|D;x-VJK*x{G"mJQ.X	TW#+o^2Hk\`$b8a8fr,4OLxvH-8F8!J6gCe&ة{!"̻_VZxJ0IgAP朶K0tƷ<[`$khg@mD@NGMYFdyZR7Ȅyn@9ǋ,o~mmqR'Ju7nreEP*(y@4L\o||J5N>	O	FZ48OBDv]2Y<w[ j4hRo:Ԭtx[
0DK%
MojM%F7KaΙi 0 v@"=RiL$+jIQQv*jmbnrԳFyer]
>˙Kt}VB.5g!>8)9}YUxA!Ei]t3;x
Emz҃1>1W>((S/Qa2QSTJ:L4HX
#b41ZQ )Xp?eY5KǧԹ˰zG["xcFڻ|{tSTM27WxKn >첨`*!l2TozXz.74ɢAh.A電lcL.뙴̨jK."Hϸ5|Q3%S`evIO|u5xYqmQ?^S?@ztmxtې蜾N,5pi}[VG_1=sbxAj0 zABw?QbU	}3U\0xT2(j1:IEڇ)9TDQ*kO~Xׇ֓}{hZ_n\36ߗor}/3'n2pu_lK2N#XЖxAj0нN%AlK	t]4~%Bo_ߠ00kP>nfcc
~tpf4Zug(!f4ul0LryLfҊ{[$.k[t~c==im@OkVZj'3-%!+~D-&Pރv\*sYgnH!_Dbix&tree 2c75ba8bd0f3306df1381bc100e667ec279db9f8
parent 3ab6cc7227c133b5e6b19162e846c6547ff946a3
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773883024 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773883024 +0800

修改注释

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>mbyx&tree 5c7a9a9f11588b99b743c6f4968421d10f8aca44
parent fb2937563aad7850a008fca4e518029cf74835e0
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773834450 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773834450 +0800

修改格式

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>b.xKN0D>EQ?oG@m=i(x{XU|YyjJҁ%)omUKjtNӚRե|U1G8iU9~}yelJ~i;>z;3y %磿s!p|FOBL7!^ڨ,%}^[|gxKJAE絊KK?"\z-MII:pf;N܅	 ]΅]J#hJ^I`02 rNHKM#*sAEI!H`'mGo*TZzy'`^)\:zcHu?'vW@uk\/ӡBnIhpZmxPKj0YO'RZZ0dEOғK#׋ aS"nFtiM@̳*D  lƅr¥[O
8K+H{IG:B5'<۰C(+o?	+iCd{3_y.K溽/޶S8p:+cc)6%oǇvsOM#t:XC2H$ഃ6kTwqx$tree b8b0e0ddb888081c80acf42ae9451e4f77cf345a
parent d1baa738bc6db8e3e8b65a501b7ffc489b2759bb
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773815699 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773815699 +0800

设置json

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>ax)tree 48b35ee04d73bf671e644b1dd5d940ad3020155d
parent ca1b88e304d5a0413f36d0ceda8066e6bdbea2a9
author zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773815492 +0800
committer zhaoyuanbo <zhaoyuanbo3@h-partners.com> 1773815492 +0800

新需求接口

Signed-off-by: zhaoyuanbo <zhaoyuanbo3@h-partners.com>*ddחx7tree f12b5c55b608ba0788dfbb7849a2ccf885c8c644
parent 1b0ce8a66b9b64396cc0708b689e9597b3e1fcbf
author m0_59343938 <xuqingyang4@huawei.com> 1773803547 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1773803547 +0800

update: 更新文件 camera_manager.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>c?xA Ebf
1;xʢ`*x{1 ?yɫ3x4rp0"ʨ$Of8[]@圖>;m+x>4t@ρ,jpLfAONJNyS[{_3(rVv#DT+답_PZ
V⚖a(1u)N^Fx3tree 63f12bf9e8b304be55a03653ddcdd61d7b3aa970
parent 4f6d88ecdef78bac15c303aebcabd77183552ec2
author tianyuhang99 <tianyuhang6@huawei.com> 1773800600 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773800600 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>"
fxαJC1=O]*isN"R:ȹIoKBS88(Y[#u-D3q)EHl;LfjãN] tAz) E\Vj?z7җ=5}㭔8zJ(g~*~z9}oÞ7E۲\K9Oşa7xjA@pwcEB!;3wܑ2+R X._1?!΁fe(| hr@U,64:KO
# *hTS+oO+z(,
CWh{Y5(9 tr[{q~9|}\Or:&	k>ƱM5' <bߓx3tree f139e82015fd9d1455dd343487cc7cd661591836
parent 5c0499cf9388514a4a25c7b8e167bd32fdd7ba42
author tianyuhang99 <tianyuhang6@huawei.com> 1773747258 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773747258 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>9e7x3tree 8742b888cc9b38eea8b986b2ec6d08043b2d7f53
parent 0d270fca333020effc3bbba76c46335e1c15c22c
author tianyuhang99 <tianyuhang6@huawei.com> 1773747178 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773747178 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>G-f2xMJ19EROI#Mwн܈בb|")D8Xlɢ$8c]2޲)nh	2	8.9C8!eGa-4zsݸv^rцx VO=9,i?~^>zYrSOW~axMjB1YE$1?"=t{O0׈عtNN[Z(qi#7J2GgfhM$r	tlF*Ǭ1JmlJɁ5S,Z_Gڇj?U{fX7O\	JpB:xğ/|OJӚ4b?2_x=j1F{B}I;	$9jV
>&H4x0r`Ǧd."L\ժָ2\ b(pѳ5hB1*~	Q?7Y/܋s_!r0zsC#"71W8]ڪڔzkEʮ׺KT&BO|^uUxAj0E:%e,3q,nhAlF6Tkr@w"Zag	B]` H.z![ߨ/[gLK (k=;4؃m)_8-^Kʧ4ytCd:V?9P+R䟚!hu\[k9(k:oJ}!KL1nE5Yx3tree 81a7f6c0bc8442ccf6fa420b385f20d65dd5505a
parent 63b31d42b55549a3cb1bb284a97cb5d40f0ae0fe
author tianyuhang99 <tianyuhang6@huawei.com> 1773734257 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773734257 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>UfCx3tree deeb3b4ca98de39ffd78561725395dacff5403be
parent 7f495b03c7f2ea9e41e342d522cb2d587b0c327e
author tianyuhang99 <tianyuhang6@huawei.com> 1773732744 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773732744 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>fx3tree 5aac4de77c29ad1133a95564e9f60d9b879da909
parent ffff10873d27337823e6c5c1617abb7fa27a45cf
author tianyuhang99 <tianyuhang6@huawei.com> 1773732149 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773732149 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>6fx1N1 {=
]EU*^`߭+.F'(B7M")4ҴID$=E $u%Zg	!Mk"습dgS$'qQin:MvN2\wu\i4L0F]8&+e2z?p<~(u?lv/j)tǍFWȓx3tree 1082a7bf74e487c037ba8cf1bbcc3913ef6fcaf5
parent a6cf323dd038dcd2f6f06350bbbb6b020bfc047a
author tianyuhang99 <tianyuhang6@huawei.com> 1773731610 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773731610 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>? gx3tree 3dd74d31cb90c31d14cb8c7ad9f77e100fe4bc18
parent 03322ae75cc0eaaf4cde3fc89a358d6f8d8e5d30
author tianyuhang99 <tianyuhang6@huawei.com> 1773730689 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773730689 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>6g#x3tree 3f839cd98ab7cf6d74fbbcb8bfa1d0e5e91a81cf
parent ce59b8a58d4613c15b857e73967ebd7a1bf8db82
author tianyuhang99 <tianyuhang6@huawei.com> 1773730641 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773730641 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>Cggx3tree 1a49c53ddbb3b0dfc46ce7ec74c06119fc116f41
parent e2dbb354750367a07de463d8aa877e99e079f2a8
author tianyuhang99 <tianyuhang6@huawei.com> 1773730592 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773730592 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>l&f5x3tree 8d95b624c0dcf53ed6927585d59e540bf2216957
parent f7b117886a0835937a40f0492d6026f8173c6ab6
author tianyuhang99 <tianyuhang6@huawei.com> 1773728351 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773728351 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>doxJ1E|EzY$!XȂLv[]YzTͽp^{,@Ph+w-O>)hlHQBnT8ȵnfَbw|N" go c,уU:vh<תP>O43O:zc.1Hpu1Akoxh'xMkA)ʾd'Hk"DٙgdvζzmRXE	e:ɯ! zP<=0<Z`?<9. qC"Dʩ1ZAḌn5/Kc)0{)׳GB@zeثBbϏ57r]d_֖/m]<uӫkl֌&x1}Z|4j<WbTjz?37	B6ΝVՠ~BN[R*SKYi;m&lw]0/~G3?-4lhur2+^ҔʖV\?Mt
ߥKy[9Ȗ}7SFl^6ܹxov/_cAއ+R&hH	xj0{=Jr!wIH;mD b)脢FOLd9~Y|D7vs@q4(nV#sy[?)?&AxB:]su//|~@-p4^K{J}⩈寗2Xx3tree 007be1bea50d3bf759b6c1dbc0e96f6c68451986
parent 56a4a279cab4346bb5b347363ea97ef8182e7601
author tianyuhang99 <tianyuhang6@huawei.com> 1773666155 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773666155 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>ex3tree d9e99b0034191727ec1b4c2e1ff9ef21b2c5a6ee
parent 5c86d39d110b512a03c13d4d7d73593cd84a72d1
author tianyuhang99 <tianyuhang6@huawei.com> 1773665436 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773665436 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>Ieʓx3tree 19fac0104818fd32e834b0b7f8e091ecfe13b7b2
parent b20e7aa6e2650cc3b8bbe6c83d755d70584d8b7a
author tianyuhang99 <tianyuhang6@huawei.com> 1773665386 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773665386 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>ufexAj0 ze%m*v Z!K0XK"$</9f|aHi]TnR1-dK$9|Fão}U{tr#MT/ҎϤ/B@?" I{l>cԪ4qZoEIs7Q]xAn ＂{h(?XYے}rKԭi$9@gb 7Ga!+4*Rnz"dG hOOc@w:k*J{"J߷m.UT(Ǐ62@]FJKttd3Syx~M0\xJ!F}
ccttu~"zqX\o|pCDgޠx!Ke6@{:OTs1,ƱA2;leBIsǡ?-9z~gۗ.|c&tP?@P׻9__Rt}~'R[JKYF v\ܓxK  GbDLN2KV 2fB\H`QGY7kHiYL)d8۠ @8+5+V\~pi2zX`_zǿd}!G:2Fv/&y
7\x6tree 30f12c519f678377d7577c85d6a7410389db129a
parent 35a221b4cb55a477972853a5175f81740cb11968
author m0_59343938 <xuqingyang4@huawei.com> 1773651821 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1773651821 +0800

update: 更新文件 camera.ndk.json


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>`<x7tree 1de9a5f4bf01cc42d592e0d1358f19523d27c1a7
parent 78c8ff00384b9f17a6884fcc726b455f2202370f
author m0_59343938 <xuqingyang4@huawei.com> 1773651765 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1773651765 +0800

update: 更新文件 camera_manager.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>Ыb7bx&tree b316a254cea36d0dd863643a41c3421a108579ee
parent 09fcd1be14b13910bc0398e9b43fe30bb2e6bd9a
parent 5d3b184af00f04ff96908bc3d890427d1272def2
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1773651392 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1773651392 +0800

!4728 merge master into master

相机控制器添加影随人动

Created-by: qq_24329337
Commit-by: qq_24329337
Merged-by: openharmony_ci
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3638?ref=&did=3800747#tid-3800747
原因（目的、解决的问题等）
相机控制器添加影随人动

描述（做了什么，变更了什么）
相机控制器添加影随人动

自检结果（结果截图添加到下面）
[Y] 在IDE编辑可联想，可编译通过，是否已验证通过
![image.png](https://raw.gitcode.com/user-images/assets/4379443/c08d1314-3be2-4253-8dba-3a163da840bc/image.png 'image.png')
[Y ] 实现代码是否已经合入
![image.png](https://raw.gitcode.com/user-images/assets/4379443/8a69c520-6968-4430-a5b7-05ee5a4837fd/image.png 'image.png')
[不涉及] 导出接口是否已添加到kit管理文件中

兼容性影响评估，如有影响请写明（Y/N）
新增接口，不影响兼容性

L0新增用例自检结果
是，有新增L0用例，且完成自检

API参考文档影响评估（提供docs仓pr链接）
是，已刷新API参考文档，PR链接（必填）：https://gitcode.com/openharmony/docs/pull/134130?ref=&did=8408908#tid-8408908

See merge request: openharmony/interface_sdk_c!4728̘x;NC1 {b{Q@k{g>rr{RЍF]'_90Ef)!
WRŘ:/XRF-`+9,L)*萏
Emɷ|l@lyb'a6v^?ٙ8ymmۄrЅ)R]v5]v-Sgk~ TƓx3tree d0ea101c482dc65c4f671e41c5df66c0deef431f
parent 239b6c21a09ebe921cfac59594fad02cf9ced033
author tianyuhang99 <tianyuhang6@huawei.com> 1773644461 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773644461 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>fܚx:tree c68841d7dadea145a42d748e29df99028855d10e
parent b6fc268bcc0359dd8c263a1610fe9f8e576adb6f
author tianyuhang99 <tianyuhang6@huawei.com> 1773641667 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773641667 +0800

update: 更新文件 libwifi.ndk.json


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>HixQtree 1e0148af7c4ba12f7153aaf049cd5bdf13143b3f
parent c65f8141745f45b07ac1a9676660e693eb7669e3
author tianyuhang99 <tianyuhang6@huawei.com> 1773641609 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773641609 +0800

delete: 删除文件 ConnectivityKit/wifi/wifi_linked_info.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>rqx3tree 8a97ef950249ecb108408f2cbad28c0af917d207
parent 4820c43aa8bd49371f6de732ad1811d234756524
author tianyuhang99 <tianyuhang6@huawei.com> 1773641576 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773641576 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>Dex3tree 88d8ccc3d9701d9fcab2cd0d332aab7864157a0b
parent e3db0a72d11244a408521f701751131b3e4ea218
author tianyuhang99 <tianyuhang6@huawei.com> 1773632429 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773632429 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>eox<tree 368fc2ad0d4e56c4203bfb68f491ee34c067efb3
parent 42f47dbf33dec2538cedf1a3d7ccf5b85e21d94c
author tianyuhang99 <tianyuhang6@huawei.com> 1773626572 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773626572 +0800

update: 更新文件 wifi_linked_info.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>	Ljѓx3tree 8a4c50ceb84c330784054068c6609f13821e0196
parent 87b700308880636903d98d21e13f81409730a51e
author tianyuhang99 <tianyuhang6@huawei.com> 1773626419 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773626419 +0800

update: 更新文件 oh_wifi.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>WQc4x9tree 975628d5301212bf169878cdce4239d8a54f67a9
parent 09fcd1be14b13910bc0398e9b43fe30bb2e6bd9a
author tianyuhang99 <tianyuhang6@huawei.com> 1773626159 +0800
committer tianyuhang99 <tianyuhang6@huawei.com> 1773626159 +0800

new: 新建文件 wifi_linked_info.h


Signed-off-by: tianyuhang99 <tianyuhang6@huawei.com>3@hDxetree c917dffd20a572ce7078fcc6259cb4595065e93c
parent be0a7ff8534d96d6a2505ed30888f93c37d19a57
parent 4884e0f1c06631d83f1544ca41bc4ec8bf18acd5
author Taowerful <liurantao@huawei.com> 1773467902 +0800
committer Taowerful <liurantao@huawei.com> 1773467902 +0800

Merge branch 'master' of git@gitcode.com:Taowerful/interface_sdk_c_2.git into 'master'
# Conflicts:
#   conflict hiviewdfx/hidebug/libhidebug.ndk.jsonxνJA~bzY;3s'V};)+˄b+vvnFZ|pr#^H>( 9S 4hm.vJ}l37^BP* -M,Ez~PRo:j}yi خrRZ+4H]}zt2Pvǻ7?^c'R*䏟측4LT>
U
i%HY`_/vx'tree 64b5c89248863377769ccab137d98a59063c4bb6
parent c706b0c5c5e3f34e0d58400194dcea32f00343c7
author huqinglong <huqinglong1@h-partners.com> 1773396219 +0800
committer huqinglong <huqinglong1@h-partners.com> 1773396219 +0800

链接修改

Signed-off-by: huqinglong <huqinglong1@h-partners.com>
jaǓxKj0@:adRB؁h,-77(t=^oD}<:X5nhS F9٪JK$>GƹDmy918*}ϟ](y]y&Fkd ϣwV}4UZ׵	yR>IMO\%xKn!5V "!'xƒi">}}*yZ(@TgU"VYu%ZX9P	g@UɌIDڜFJGu6zۖ35*ÅJy) ;>~$ژ1[>xT8vyR\yx"tree 6c2075974a9fdac8de98ca8941e9d1aab98fb948
parent 5b9244d79966b3f22da891d28166648a74139f78
author junoo <zhoujing96@h-partners.com> 1773391674 +0800
committer junoo <zhoujing96@h-partners.com> 1773391674 +0800

capture support profession

Signed-off-by: junoo <zhoujing96@h-partners.com>&\x2tree 9f0177782f519472c5d69a01407c8db1f1c46421
parent 5b9244d79966b3f22da891d28166648a74139f78
author zzc19990127 <zhangzecong@huawei.com> 1773387566 +0800
committer zzc19990127 <zhangzecong@huawei.com> 1773387566 +0800

[richEditor]补充接口ndk声明

Signed-off-by: zzc19990127 <zhangzecong@huawei.com>qbؗxJ[AsTJ9Hifɦ+oSJ7Bq/[iF-FJ/<o X*H"mdrk'5%m&DPTId,Xmh`VU%UrF+1޾ٴL[Ry[;KyJq^IhBКΛR,h(Taj(Ҥ_o<Z]]n{~zz&``h.^il.wMkS=ԣI6(ma3zPa`Y}3Dg	 q"1q3m!R=V0ȞBxαJ1=O]*_r\""V%_`t" .os՛|up?H"5FDιt5L@rrnN3̕E]zުJ:And 虉3Lm~dqkfvmPVU-; w񟶐*-9}h0u_,\nWo{~)7~u^?]rFSts|Nrxn D|ՂVT/Xb;J"XUu/G943*~<HsjHƘ}i_T979{'#9v
#kTu*^۲7Nme*W{DQ(wۭZ.T5qẔ+)ug|H[hxn1 
N TU~A8l*go c^-ѧZk*Ib
jyӥCprSIS@ccP$UbӺd?Bp6Z;eֻ7(
ޠ64ؘvYZ8i<]
x=JD1"<7?d$7vnRD[72Lc-vﴅYdrbK5O+ bt9ECDőMf)^yJn1*Am8/~7myLZsZ!x )>?^THׯ!n]<̥nxvl["*QSBgmv7%gxFtree 043811fd594258d4857d7e4045adeee633232e2f
parent 2580512bf9c88b387134916fb7b620beed5c8852
author panwangyang <panwangyang@huawei.com> 1773194866 +0800
committer panwangyang <panwangyang@huawei.com> 1773194866 +0800

明确枚举值JSVM_MEMORY_PRESSURE_LEVEL_LOW_MEMORY

Signed-off-by: panwangyang <panwangyang@huawei.com>
ulxAj0E:ar)#0FRWf'=br@vED	F7ؐP NqD0ȋM<FL}`.$	()ng:yy۲n-YmӋa0Hx ک&4ԇ7>{ϒsNOwSWR`Ux;O0w
؎$BuCB̕׉UŎbG4zV؎<HUvJ-VH^lLje(ꠂBcxzıĬu4L&m>ʗq5] h8D􁷜ݝb?V
)a{L>7zz;BΥӱֹހh)ŴRXc)C8حsTrgxMN0F9hSoFqN6`QIK{
L~$$M2V(!Q܍w];#Ǘ	Ͼ(3kB:}vhc^zӯ8og9'Dwk];w[;2geT^۪rN~S]OxJAE%fD+;!_&EveJ'B&X])7w"yHQD#	%aǎЕ	WI58F	KA,6R":`0TiN*j<և1/^VSz4mB@L@	vR,HۛUo?ͮxMQ=nmJO/=lTxȱ@Fatl;uY
]FӀR=}Ρm+0VNPQXSuբ_0مd J!dQ׈f/ʼv x[
0EKe&dJI@uј-CJYfL&@
-eeU9I(BDd:Xd!Oୢ˪'x0}hiFynڄ`cpނ>APZX^R&GdQ+x+)JMUH64LNMJ02,-LS-SRMSӌ-ML
RJRRL-,SL-M̓LRSRM͹KK22*22!4<5S/9?N\AhP47$#<Ϟt'{fl|n%Og<TiEK #lx=JA>EUӋbd&x	vF^ԍ6APY05O A.<>^wֈ/4" %qm!$b#`b.h.k1 <Z ))u@E^7-j/5+v?Cme}Lme3CNNǇc|ݓR4EfzSlx[
0 sK%݊w l6m6RR7a,H+m-X@\zl$S>Q$e691yPh'@ve`*\2"nm#k۷1pLuI`0x@/O
/YiX8w.#OɜxAN1Es
@@dU83 8>aQgD@VY2)ZrJ\<c@R&͉.I:)c0ɋMGAt_,:	^"[g>&DA좄)|mow	opR`^aU3hГENyўK_~z
*op@k'5?}Xr;j1xKj1D:aZҨeBexZaF3x"Iӈ֙CLRc4y	qmÈkL 	8ƀ)
dP"\y|T(?Tykδ͟Cｑo+%6:w,<}QMdxk'Nw_.(XzPLyh3kxKj0@:B)CO0F0}Jv^?D@t@mtȣ9Tfg 1z![M>8Wi|b41	xu?}lE9xZҮy|a&g' !}\q)"i,lJ}e2N5ZxKN1D>(۟!X"۲{=$ٕZKE;GXLrEQ.MpQSc;hp@F#g)<z	Aօ0+eh4_vzس`ϱ^_9΁6?	+ۯLj?>~ډ/5eبve%j4ML&Wjò~6Kn%GO4ǟj{>L,p;=Ctx1N0@w;JB\uco6 hTuT24@b|oxzub[T%!(ER'q$s)FH:r6D4`\r:I>an}+/͵X3OU(;: nZ?Oqy?_·(f|R_>?x#gx=N0ݧR"'kAqAe VK;1Id =?=)"R:˙WVg9 \LR23Dj\:x5zlPsaay*Hk]WEy%gE6x،\==LR5=@:-S
_t\Ϯn?w]صwjsx{!似gu]9f~5xQj0wCbK.=m	,oo0}7crR+E%V4UF~u{FN4`@e,bu`ɕJ%N>m_;H!s<It}Y90g  ]wvumN8{XNҐxA
0@}NT&M'w L&`))hByهȈdha8rzU-$3̐loKS$&bB7[gށm]-e:r/7ԷSkV<EFX$w.#ÝOBxN0w?wTǎPUxAQ]m&U0#$^4P^wI'4`Ee<z	δ{F0d#:A@,eH`Ǽ({	hi5t:U.W[aw2r%֒e:ȉ>9<>|>>߯EVwum榶milBH-{!Ɖ_;9so.x0{OٗKl#؁	. A#~K jF`  %%ŎY7CȂcT> VA:/{급23L3P91sT+JAhj;yRsr]UOe[ImmrrRb:FC!ޏxބۆ}҆ůYHaȗx0{Om!LH"G<K jF` %%}+N_BDhT\!S1%mZ	ҕe2P*%R`Lu?s]ݱɠx],]n0՚ij&xkۤ@sOez]o횪c,i )bzxMj0@N}pgJz0G!)}z@>x}WJ)\/YG]aj̏v*S($\)!$75ri@8Ixn˗Ŕ\B10ܻ:ɪ4{~:[kC9GhOx;tI(5U0-52)-<09<%08590$u}o 0aixAN0@}N=*mG!5'pbɢz{/=)>HAD);*."ov;s@)e !Ii?nV6(ؗm^ߵi}NjaB$FY?mUj>lw˷jEɘ:7n͹gwY\)*=NB(1`~ *Pjݗx=0{=͌Y!8$Ȉ@%5G6=ƦDz{ŧmI
!qXȖ	_*K	yp!rt@=Jx~ǆ5wvw\6[I;f9T"=u,_(񼝞rUjծ;}JpDbx0E{O?B#)HPаf	bRR"Q]Sܥĵru*G%5@4m!pɁw .5+",W1:ea
6z߸zܧzKJ!!Bn	~<y_czӤrMg0`x0F{OpIBg眤H"G, K jF`c}{$E&!a
py|^xr/mdS96$y@pb@ÔsxUcmzj35+ij2ȭ 5MPy;=ϧԦ.[)]SwXL} b|x;tree fed224bc4b69381b17151190f86a05a952bd01b2
parent c5783422c510fa403d10665eb3acd6aaeffd73e9
author chinese-deer <yezhenghao@h-partners.com> 1772592824 +0800
committer chinese-deer <yezhenghao@h-partners.com> 1772592824 +0800

update: 更新文件 camera.h


Signed-off-by: chinese-deer <yezhenghao@h-partners.com>"ixFtree 486d97d3f3f01e74ddbe1ccb21133c779b7e11ee
parent a54d4024817eaa9c9f0cee7aa85c628156bcf8d4
author panwangyang <panwangyang@huawei.com> 1772591094 +0800
committer panwangyang <panwangyang@huawei.com> 1772591094 +0800

明确枚举值JSVM_MEMORY_PRESSURE_LEVEL_LOW_MEMORY

Signed-off-by: panwangyang <panwangyang@huawei.com>
p*nKxKn }䈏EQ4w	^FK9}|(ےZ5DE'!:T)BeeF䒴+O:ĵPXIF5+-}\>h.q6=K+߄]tfwH9NWp;wƾ{-%=?~>c)x;tiEqbfbb`fjhlajdblif81րzK8J ҶxM
0}N(y6FD'xy?h^f3Q\IPT
'@Y3%D98Z`8ʽZe[Frr(9@ŃJNFI4O/64GS]%fYVG-'_9wzP]yyRxJ1 .yL:""E&%=Dd	F@<5:3(4
eKyMJO4sBSD[\$UN#-heI.p%m1woVŝyn(紱'wK)1_5xzy}>_+e,pVө|_N|axxj  ~K|QeYJ/J[`M}* tnԠ$h:֎(X)7`k{Bqb,bT^vO+U~)ۂ}lS<%]4?fX)֋,3Gy}^Ҋs~ƒy+]8R?{LPB8_hx;0=Ȏw (Ї0Ӂ_l6z䎑k(IC#{XBcִ\ $:fnՋ,GtԸp(&5Ue.:-hw]uDuݰ#'` si,E\#5IĖ}Ucc?TKUy0jRnx=N0ݧv.9_u)M!td |ܦiA. 3""RL*d3.WB JF6bE `%Ny,$XaM,Ù)ReHusM\гUemW*b\nvNRLm'L3FuVPFI+˶ل~흅Ǹp.q}}va_?oeDu=mg]܏\Ub6#:QGd\Ni%J
xKn!D>@ħ`00}p(E^ؘ!iTHVːm1$ΣQa6dB]YNr#:Y<OI)oПܾ|ZyKߗ{SeO?>AZKdsLuI`tk?	qK9/YɔxMN0>(7Bذ*<7^nSW*#q ͌4LۈxKoKa2A?w dJ@JRڀveV	iJQsԍ-~z\ˏxdW2t\+ݞC]_hJX 5F1_ c}ĭ<ԒS31š4ߎo|b&xAJ19E2M2EJ	^f^@)cJZDԍ@WEp؀pV7?|#& 6j\BbC#,="*1	Vx&"96,h(WvGiէƠgjJi;ӺyRb>gWD[;sy<!]5Xgvl\x10PGc;IK':qJ\=s:u߀y2*E Ųp%d1ܞW#\eZQyyX~dI#7x@Dr*b:ħHhS݀(HDy<Mdk.E,D L8Ql6m坶Epxt&:rquc
}3ﺨfRu!	əP񼝞rb٬ZJy+d"xJ1F<EzYɝeQNܙI	Yĭ;_BFl|G1R9|%3KW{B@4-u|W;K`QƊy,iC"v2\(tm()`~>ae/9\Hh
Fm".c)^臣Krvxprn8antV ,k˓x1E|EzQދ2,bm$D#d#bkV_3;ն88ps=7Јh
$)BJ HW&s+"rR);,С-ff7mtY_\lJcY
T(`c?-[\{xKw=gw}}[u80ٟbxK E笂Wc܃0xXQw/K0N&眶qk3ZA)
1I3 AlJ]AkAJ' B
JJk[-B+?m؊L(C\^p @8;:R~g.5š4(FXxQ
!@=QNhDt:il.#D{}CA[ 1`x27Hg]'3 -\H q΂˖a>Y+ؖ1R<.-ӎ5;Vz_ts+unU򶕲M/=rW?xKj0D:aBn); AjX0oU":|*,2wQR-PAR4MM"dGl#b $s]r_>T.UΙS2l( Qkߥ}&CcMhs=]W6DP@@@y.*J}m&k_idox[
0 s%MD;x n6BRS#3%E[^:gOjCi1yT3-RPr1&(΄#VA|m*ZPo)wN,p@wVzx:] ZC;V6/]QJ
4JG9闬>ZxQj1D}
[Jٖ6^Bn_|̼ao"V0*)N &37ޤvyS3QR8C̘g/mjwZeٹ^<!a177  3ZzW:l<<SŮm1_Z%!>j~Tc~x[j0 u
6; a^.D
G(h.L#hG!/@|Ȝ#z*k8̈E)DNFSlIURo|sf?[uy]On-L&z_z?,/ͭ>R_wihz
Xx0E{OىA<ω$(rgаf	bRR"QS\#R)<W2/l(U0ԅEY%7hCm(@^Z2N9NYÅ=J h!]O58nk6ksdtcdML	 se|]obբϺ2{Z| وdRx0{Oَ ؁	^$E9gаf	bRR"QŞ+^cf::h@8I4cOm
ȽPrJ	=@C+lKlu[xzfZ	TȄ`3m{?}.zclW-!)N_Rbטx1j0wB{p~YB'mr<8
FtJ2JBm#A漏iVXeLE ;&nH(EXa0'k
Da6OFgu1b5Ul\Z;ڴOD!iۤD/8쿇mx?sSog1|Į!Zx=0{*?1/Y!8mU0::.w؎*. {=d76WJ֓ dfmƞRP6T(M(ODYgFe@M^vbE\Ŵ/i0v,_|N0nc䇪CƜ]^/8oUy\$
E\4/a2x	1"wYIo#"`1yшfe7jL,Ô cD	/ZIJI`(!*wR7 v\ۨAD 4`tl6Je)uK>PFUSJ~?vʥ kP0BnS)uוyZf
Mc8ľ]LxK
0 9E4?$/7\Y9NTXYpFB6p! F/Zx%ϐ)"Vy+du[e;-.CjY*	>x ٩rϖ6yJUx;N@~V1=2}g=yt, h".&I7[.p;O'6Tj#gg6ܦ.KSrd
d rk"UNT{捇eHLH\gyVi.PE~uHgz(;,,ɋ6sʕ,ϴz4cd2F~r7ǯOyW0B!$~Gxxm1Ewڞ!zw7Z @\QHi#[Bӓׯ#h$	-N#<{[E'IH:h EǺF}rF/vjLkxxI~{kG=35}۫\/ySo&~|"^xAj0E:adYҨ;#yrqls(2uQtyN̒
#\H-FZE]&.U-)Xo!	3JKIбI|dze/^9uݡYk㰕ʹ<xk Xkbkޅx}3Ԅ>_+^fxi1DBKeI&
$Z&Bkp{5@ɺ`xaSWRIr@^5tK#7Zi؛++B㼡h R`#z~.)Rn][1ӎ%X0 kj{}^W^Ҙi;'_^xJ1E|J89	2ɐI;-v,ؽC{f1YBgJBFcAYQ	)I	(km,gz<WnO H)q9;-NH_^s8!:qAWX)/k,3M稦[q0Bt~}ox[N!EYfLA(1`h1LzhGwo/{n=sѡ38oƧO|5oҧΡcHzJTX*-	"1̌*swo(]ec_s;=ߥ=qy&F!RD zisƿtU۷.&Q굽wӨ<VYfx=J1"dψnMldRPFD9#[2 Vw̍DcGB%^8a(N
g#Y +UYw:^}^B`U7J=i}9BtGDf}ŧXlmr{޷:Zo=~	}gnNtercxı0;LɶMRH.EFY8^r؁E @BA4kAb
t_q{(	8IaYē%\87.R!xαJ1>O^N2I6YDldܦsЧZ>UĺCu.h%*
DeV
BsUfBE*6Baϔ*C!p<޷iY&>L|i\- :ā0;3?ҷMe@_fN~u$.sYaQ=<|ñ@R1R%1!V`xQj1D}
-WvK)CO yf!u03az33ƤP
(Q2dK1f@4j#nV
\J#UB)[??nR"Xk>.>0,	X H/{<f]nǽ,ݹ6Lx{WxA
 E}Iq4-=@ulRzz{nD\iH}t}7m( 'V(W. D#zרNS^rP~Ưe0iǃs(ˍ0Ў5̵6/Ez1Jgؕ:c_.YxM
0EyVT&% _l&$wo Nw&))![8Zԛ86UdF	>"b<4C+hu*.'U6}-mnާg*MM6O}{u\!⪭Uz̯,ܕ:\~9S_sZ(xM
0F9ERo	I´T-^@<xk}m6 H1*zČ&	&K	0%cɆց>-JMĺU_+H>JkG*Hxy
q+ceꦜa;:">TxAN!EfmLP=IL}t@v.q""!CB"#-)Ď;i
rN]K,!EYr/!3xsvͿo?~a\p]<`9鱫ƿt6n՘IZ/k[]xA
0E9ER8iw 2Mfl	)ۛ#x-\abF(Bs1&Np-È8~(` CNq GֺӋ>uX^6{g֍w{3ڌt%Y{enS_SXx[
0EK%8"\$[I	)[w ^8V$(P4hg (P)7iᨽ1Z쭱c`<FG:&6*JLU2\KXiܧ2]^ܩRb[<ױ6>2aW>bZPxj@)8X֯M(vB-h5HbLW-;ssf("8CbY)/glE܏"֠"aH<'MEIOa8ˊ=fsКT _HxԐ{i(/TqY/D~ tۺ4U<	ii'Qj7B[VƜd)!p}^
D_U%yGe(wEWA`u)kY7RhM`u璤UREhhѧkF#0`z^e|6$c^طso_Czh_3=X(=}3֚CM8cndCCr'ڜ`X]B*j9(ٔM؏r/Z,InAxxJAyeeED3Ȯ0 ha'il"2ɊoabuwN)$1h!HZ$d*V'azl3MGL*o Y$Xtzzr~&Ӄz1;jXnrkqMcl4g'Nqy9f6wMcѥTT/xwI,hP8D_IWȝ1 =;{ԗxJAFy%HP	>;-	TvA4HR|i\Է0`qNqJOčJ)	锷`k^DOl=C%ehZ)!H٦FQpY53lo~%P3|s*'P7?jpXOau3k)GOekcxJAFy%2F$(>\nݰLФJ'	)'E>)_iNZ F 19V	ƤJR:NY26*cSh5"fiJiv0(NTmGo&yoNp53@/e. ao^??>/yG}=i0ڜaqקkxAn }zb"+#Dَ43}v`cFVh1-mR6KD"gGQmr@Ym.M65ｺuOw)'nwmlpGb1a<+_ݛF*'A,*Ѐ!>U[TxK
0EYER_D;H>يMJH(,A].[ E5r.
4*E&bO3duR;i=BcjFBp!)7HПV(ҫ%~`އAkHoNozr	9"#_	WxA! ＂F-64DJ-Rpڻ%NG0ȃҎă.MA[#YO	76E'߰S^eu>KGt@ltέmWH%yd^B\pՔvIW[jxMK0Eo/#ICD{Vh2)ޮ]{/{J&!yFxS"4e6uUŭ9'`VT^J\ZƔ!])~{P.~~Ww֧mn8g[;OlĿpaeg7 _ lus~xi?^\_ˡ{?9R_jnxAn!＂{fe("`F6Xd'Dԡ]D@Š+LIё.uh'٦..ydY9u{HG.]=5ۻ[kp^2Fm0+uk=7.W>RNy˱a[x1N0w;
o
U܁$6C*03t:C$n#A8A}z'CZ)eh=ƺD FzjZyЕU4|t%W!˪MZv=v^'^n5`X(BX!ԮK]>%o?Ƨc^a?i-gg_9axJAy%23wvgVDlbe};3kvgX[jcXJꀭK[b
K LA($HP  Ә[U
so\c.-2 CEpFx,
2xkm1]m`X!ϹLh>?tr0YK,vJV|<99\blflaSP}[EϏ~y^m^EUF:]:n's>v	px[
0"R6 tb+4)1{oLˠ=08~P, .jRX$݁a 8]N[`meJYק<mܢN<}Z.Eu uK/.K<6)f~_WxAj0E:eƒfPLY.X2L dmMf`B4$E>fj〞1(DJ"o
G]w<Ks(G1wY>c]GD@뺴vonRJݖ"9wʣzWxAn D9TUV.*u]332ddQ+sH3ANiNjBWMb i5*gRR@Il<9LZio>) C) `!aLTQ\ϟW?x{	imxuZĿE>*n?(I8޷F%Obr&OkhjLxA
0 yElidll&RR'ׁiFqH0vQl0#Yԓ)M$hfH1@'#ykrD`ЋMu%S}L+$B8g`;PskR~ܔ{)KL}JWxA0E>E)e; Ŗ&!8k*@J',ϒ8;2Ffɒ#fa<K! 6{Ob=u>q]~'GDen_{B]sEXs>'rV5^͐x@tree cd1ed3059d883365a5434ccc6b798133a6f082b6
parent 3236c18b1a26d67feb054cfd0575d56e800871be
author liufei225 <liufei225@h-partners.com> 1771038241 +0800
committer liufei225 <liufei225@h-partners.com> 1771038241 +0800

update: 更新文件 drawing_text_typography.h


Signed-off-by: liufei225 <liufei225@h-partners.com>[+gҖx[N!EYf1= S]i%͹g[zQ!99^T`DB\<gE4iӂ8DԂpl(S qs:Jۺ]#뫅<W39_vղhmެoc	iy˻]_ʐx[j0 u
֦; eWZD
P;03hgs#ńnb&O&3t&iD3HV=r0&Y"(Z\︟W]g*&Go\p@U^:խT\<_E[ԗxA Ee(`0ؚҨ#?y0HMC3Ҁ8ZP<hdCfGof$CC*6EK/P׉m-4y(*n}ϭu/\-=Y|-5mщ/VxA Ea
<`54^`~DP89H9*ԣR@hc&=xaXధ7 $@cAa-s<=m9Fy+]Z/@Abu]Ji_:C{7m)n#R~i/gZZxJ1<EzY7ɏ>Mrbg!Vv"j#O㠾SZ
[ԑY
lMX& c{Ms*ɴ>"a>a0-XA_R-s<[ϻ]r9LA(Duz~^??׷ot(˞byv'}*~pljxCtree b6fdef867d58d2e981c515a5b9081fdc59e50a05
parent 95cd33d263e543a3756317795213044687a8bf97
author zhanganxiang1 <zhanganxiang@huawei.com> 1770983799 +0800
committer zhanganxiang1 <zhanganxiang@huawei.com> 1770983799 +0800

CAPI监听优选输入输出设备变化

Signed-off-by: zhanganxiang1 <zhanganxiang@huawei.com>
psPx%Ž0P)bw9?K4EY$e5i;9{ X3Dڊ*k[|39cE\SH0Br(-znrp~:7#]xAj0N}IɒGSJz0gb"#"hMf?/I@!XTisHKy6l^)ǠS)St
>̆K9Jw[Wn_{>֝RϥޭCB	$ s:!'pOnZ|kUO/gvSWUxTN@}߯۠JHwٵ%]Ҫ/sΙ35
8;O4H$`~8hF!1G=CRRw:F>ِiE}1MFA4@N(OCBɤAd.S
fT|bxYaz ^y}]8=}6Ln
r FB*Bn`~$/qABWo^	A,ZBɰ&y▪S!3*k\:eJj)HQѥ@(ځWAn}^t Uj;stҪ"wb`(_?~/_Z'4\ciOE*!X+RQWW6Bb.՝T~ހZҲTY[;߱߃uX_Mau	Ĵ(lK|33sQMMSN܌6kCVʭaN#|`Jl;jkR3/Tv/yj{n-GVè`n>c,TL2gDn_i7qp	xPJ0)rJ毋 ,xRڂM$Mӛ`/00̴ȭOʛ@VQg@Zk)h~bn<&H&FcRD2c/M
פ(m)~yiw<_ ezXXXg.nR4`]~^{ogaCr-VamDdc3z+;fpI'~HVc76ME#L"Ԁrx1N1 {=
Z}^;B?5gˡ#Ձ:BM9F4S4ID'+&sRC>gFΌ=O,hbӹ>1uMSI]IL`]ln?HlZ"< v(?;Zr||]>NJmV՘*=<Q?&Wcx=1@"(wD;x/_q#CDN6vjqcV<x#RN DD
]ZFl2'֡S*J@Uh`@Ylrv{'$,S974¶rVy+@x!6)gWg6{>n^kgl+öa7 FX1xjA)^Hd6?ZRLv!6j,!
ꅉi-I0W}MZx3s~s	5>򂤉Sf]U4QFT%Rh'HYV!^ r
~ByǛļ9}2R8AT%x)2=ߜnhE\6r0pY}{) `%ڐa>}Tz\t (hqX.a|t굤aq99NSxwj[}'0> :+ӿ|M.nױ]$|JN2pj'>O4	S+Nĩ˶Li^pˊFdIK'WqknNGl\\e>}Dg[ϗJ;KKz6:f;iwI{^7\!yսMo{jmgJ3 oW%f\#S,H&H)OT
D񒒥)7j՝&xn1~
/Qx<!TDH	^c{2H&JAvITh)
lZ4a{W!YBl}wι5ΡBJ],:QS4=<;w9EAAxErB9k1JB3'=|&!Ip3rxcm5CiR^rhxk9!55XBH5>_IKv;E;:l5IFQ`v:O_LeÍ_gt6`q5np1hmtk&}NTWi[v0VPD<ÕvPwCGXN'KH$;쬕Nm֢3VO +.>Q_;/OzrE;=+Of?KqY.	\,jZD*%+,!q0}Y1&e]ExS]OA}_1~fv"T `#v7n3LCF(VĂTĈ>HA1%bs1&uttJ$L6!9XA5ibd0giMXDkqUK2A8m  3N8+\itSSf,n$[0bFtņבn=!X8Kd gN
_j6dG|v"Wc "|)3nnk0?KfةV/={'8
~.(p"WƛAcw~|Zl|{Q.ȕ<\7!iH\P4
WRYWҞ=j|1B%xq:`q6ktHYq[.u	۲reJ ǳ^:5eʀyd,m>e@}qy̟ŀsꥱ`cF3wޗ ֹk<}<RWM@[jsTZ!,ʅ'Ox41qb$wQb	 BtT1uf*&#
%;.xJ1}2RIVYIjȐFk]3n"Pm"𱞴eN\[qzUnn"2{ukl('S1O)E|-c3#J39꺌!יchlczbr݄O]T?׹lW9]TOArr9jK%G0L6%rF6e~+xKO1w	jlOP4DJ9uvȿǙX^}*fiSoD,PbY(J4G6\"Dr+FKUa!J)3w΃{D Ӏn\	7bK͕tw`uM붩цR1ۦ-8Y(	-7ޠa@"DܭWk@0nCI@{Gz{#aQK,GBFGBoE).h
`,3&^ާka||;e9/w(nKF5qe'BRU%Xqsaλȱ{lmMDXL#xN!<M݅5ƴ{05_مV^5d }SՊ5N	QLK%L6d0Rtmk4q+ZlTziSsi>&'$l81|L/q|TV0	7TRJs.x˾z\L#0@c`c=/J2̠bn
:X=`s߅>`׶"YsvBOx]rUxdǕ]K5L}]Qq(xOk0slY\$'쥔f-KS"k[24~,T'I377!,ssPRe጑Q:4.ԒSzA2Z(-g^I#:5}e;`BP^1FKJIU\TUY8Y>:l(4/0'8v͈t5'A-d{1cߩ.#	}Iլ(h:,\Xq-9ľ-vOi{?l49WRK2%bgؤuRzh??JѪ&BHfPg?Na˘ی[Lp:LIKZgNJ\md%30xRM0WBC _ժZP5Zsc*#	Tٞ{keQEEı4*QX4RBBEU)KebV0f+ь2NuU|<iWQ۩s,$8)HFZ'YуNZN-g7/a6R+q:`5Ado:Bf63޼i֔!\PqmFU 5SJ[=9.N=u6$$&i}z;xb14!oѷ?5ewV3!Jv@kyV
IbTh;bD:ԽW,6ɵ`5XH7{_B,(mCݜ=[|
/5u^кV&,63U2l#r<_1+vΪxtree 0dc044448dfa5eeeb8168bc4d47e34588d3f8c9e
parent e82a9d80a680dfb95660abf73632ef087abd7aa2
author zyp217 <zyp_tju@163.com> 1770783368 +0800
committer zyp217 <zyp_tju@163.com> 1770783368 +0800

添加qos.h中宏定义版本号


Signed-off-by: zyp217 <zyp_tju@163.com>V[xtree 0a0dad6ba5a7d81f2362f6ba3ad83531d22aaf4b
parent 45a0f52dd491843bef7c32afe04a9ee3aad48beb
author flysky1 <811062409@qq.com> 1770773919 +0800
committer flysky1 <811062409@qq.com> 1770773919 +0800

update: 更新文件 ohinput.ndk.json


Signed-off-by: flysky1 <811062409@qq.com>sWxtree aca3b67a4c3ad09e5ff408a9475ffcb2966c1dbb
parent e82a9d80a680dfb95660abf73632ef087abd7aa2
author flysky1 <811062409@qq.com> 1770773827 +0800
committer flysky1 <811062409@qq.com> 1770773827 +0800

update: 更新文件 oh_input_manager.h


Signed-off-by: flysky1 <811062409@qq.com>Xx[j0 u
zRz`]Jc+on0$sn$Y`!e՝ٻ60B9\d9	>=΅م@^k;4[]~qA\H=}h=ir!7 AڻҪRuh]&ޖR_uمOS<R:XӒx"tree 89e3823a8b675f6442cb086ea663bc1d97759be7
parent 6d634d64c0892dffbf7fa67f6a6f0e7aa00b23f5
author carnivore233 <xuyue51@huawei.com> 1770636738 +0800
committer carnivore233 <xuyue51@huawei.com> 1770636738 +0800

【RichEditor】新增CAPI

Signed-off-by: carnivore233 <xuyue51@huawei.com>S]xOJ1+r&,".Cdݓ?#~YAhUDDdjΣF $!pvrtsa B %CG &#Uw:Cs;J紦
^aV-c]/CY)7iaYHW<?R@!&N3.=]emWcg}ϗ}zCq/	ywGz<x1j1E{B}pI3;Rw	f5L!MENK9qR{|xVU+}B(AbL32d2{Yunj@IkWAAb({BIy#6.=2e? o:=eb3'>@0u7Ke?]??wc^aֲYjǧ{/2]xMN!E笂iӘ0{|%R>Ĺwt98HĔS1PdPlU!RPG|2$I-HYa4c
(y_Z[1|ۥܑ_tNXB $챞oƭء.pK٤Ub[v5~P9žDYxAN1@}N=*;vB܁Ti#13h
=]pn#K(-J-$Y2Zk.(ԱW9ljiD	sI,f 3WWn1(o%D,	:B9׽>cXwc\6kS}y6Oxx?J@~N1Dd`㖲yfMbHXbJz|,iDlM6`2f_t	9`a.jOl!m"B0֥gy>>}WO_1*筷J^V)[uYLOu+L}~	Kis׋a8pNHyT>dKveO !GK9x?xfלxMJ0@9ER4"r'_IӅd+xz{qx^Y<ZTJ3@%Z,0[5YS 9By;YsI3j8c(Ny1t	`!2]~ԟ/&Vgi(=e 3]ŜjrY]\_vCT^Mx1<}xyz.!MwBnNL~2rh2xMJ19Ee$??Q\4_)6Sڝ.MEWp#xz}<  `19mL *i݄a
5A{Ùw)Ƽd2!gRwɼ_SnVflUW:l5m}Q_oB%UBnNhߖx[
0EDD܃vFhRJ{ׅsO[X k9|DRBd/~#"Ԍ:GPcK0@ k˽J3/\s-:|tCDcԶNKW-?
*7ͥX*x2tree 68a30c5ea0fb6a364ec22ccbf6e8606297500d85
parent 0705fd29c85b0689420307c4e487d707f3f3e361
author carnivore233 <xuyue51@huawei.com> 1770376145 +0800
committer carnivore233 <xuyue51@huawei.com> 1770376145 +0800

【RichEditor】新增CAPI-修改codecheck

Signed-off-by: carnivore233 <xuyue51@huawei.com>idx-tree 9408f66bed673db4fd13544619b7cce46d9a7796
parent 2632acf86d4c1abc85068ee4b6d1d7084d8dabea
author carnivore233 <xuyue51@huawei.com> 1770375622 +0800
committer carnivore233 <xuyue51@huawei.com> 1770375622 +0800

【RichEditor】新增CAPI-TextEditor

Signed-off-by: carnivore233 <xuyue51@huawei.com>Db}x"tree c3414d02d07aff46ca0b100578f42880626b4dd6
parent 0e7bf80fb6a901aa04f03028154d0a118a2ddbff
author carnivore233 <xuyue51@huawei.com> 1770374938 +0800
committer carnivore233 <xuyue51@huawei.com> 1770374938 +0800

【RichEditor】新增CAPI

Signed-off-by: carnivore233 <xuyue51@huawei.com>HC]yx"tree 1f7b601310c499febd44819dad3074d3e172b06d
parent 5f34a9e487f6d710d45712e55c2213d91053d362
author carnivore233 <xuyue51@huawei.com> 1770374070 +0800
committer carnivore233 <xuyue51@huawei.com> 1770374070 +0800

【RichEditor】新增CAPI

Signed-off-by: carnivore233 <xuyue51@huawei.com>}\ix]
 =%SM)wʺhH!G(ef^q%/^`QΐQGA6lrQCZ-/H VǲS~a{iᷲ?[Vqt罵B]?	'kjm_8B"̌=;SJ?/>[xMj0:e<Rr@G rBOtE{x{|,Z( E45u#BXx*9F շȔֶ*ʃ^1Qs=21(59\8?vYzy/ JOVh;Puw[,_߿[.//y(7cJM67^[QxJAyeeNR3OE6NH,BoBT >ͮ-Bp|pNx4J
1y #@`MU⁌:8EMWqcV1Ѥ3rډo{3ʬM?os0ڂV0|CB.)#z
$?ۧyjo^v^4tu\5O˟ۯc:l+lck`n3e`""pd~~9x=JA>E2u/".M&^l3Ҷ(yxs8՜9y1@)) DdFaфbNPc@RɓV1B.I1	@<6LӸm4_^R\oO?Q z㐟'[8eϯC[L4>on;Mtql3,Wrק]e]$ @HgJʛBik,sIQxTKr@)z	d[EqغF= ͈Ȏ8 'qR,B4ݯ{=uSw">E<oA Y*48uӁ?Ot0 E
W]B
4ZWVjPJ'c*#^etKk	_pT*e4jT{J@UnʺCLښ1ρK)fAVwK)XݾSxDV%TbV>?$ln8Ve,T[6<,mE-yV!$l`![n:btpcw툦$V9ZNJY_JO<eԥ|3~uoZeYܹNM! ' ,wlQ&*PVJF+]DA*ʆ,x tRd:o6/G7˒lkSCS}l)̸i@#^IMk	rDf4rDg%MdOukGCcl,#v=y:+{JM^hPWʞ:;E	G*=G
LKuSkdɉ#Bz3v#dܥN˸ˏ뫟'xQn1+xLPؐ=,EP(H-vaAS^񽒈t?6=6zvc6q;8L
zGC0luMkwИZL1A<S[qZ(M_54S3lNoM>^k%יK#D@8/G<h?GRo2.x x*\0d WGV[^z(ȁAs%
O]e{Ls>|mp	, 8L.Oy"@"(y,gR<dV\k{_gXeJ'rG27RUnp,~+*z/e)x;k0w
z:ҒRthclP__w󨅈^K!N{\/tF[Ѣt:
g#P(t:[ ]cCH	{:Χv+0?Vo2a4?`{j{qRKZ{Jy(8	|_S9-7cӐ(49ƭ{ֳ1jaǏJo%8/Wփ DlE-q !Ğ"	yxj1E{}A3zdB0nv/J#{KA｝;:$Pvs0b	A;w\,%j"a*P&9((J"ںz]ma]㝗i=ۧ"H@)m1S=2s+{\*穕2͏ݟΊ'NfNxMK@E+f/ۅUeޛ&fJX ^.̒Ac1EF#[jS+ktƆ^q@md
sXGirMP)8..v<|Nup++B^UF^A З@q-HF<揄?7KO=7\^pǯ9m&^@{~8}!)-f]^lh)72L\CҺF٨N>V%+t~֘xKj0EZ%A_)%謐ޓ-il#n&tJG.i3)N'c 52V}]dG41DBiI'!1XXg'/?őʰ@e؍S:=si	uʭ&jpv^߷[{C!Ԕ6VefxNJ1 e%~Aͺ^VbNR"XY(z_0L103LCjXEG:"!Z*
;ʸu:!}NM!A5qa"Fi)i#ʨf <c	'CWQM]Kǳ]7 B#p)@ugCJ}5,?7%Zn//fYqz\]Yߛa u]9tx9tree a6f671a0ced4c2d13e8a14eb6ccf376ebbd5786d
parent 63287abc65de04b6c8dda337aabaa81d3cd389f5
author wmyao_mm <wangmengyao17@huawei.com> 1769767371 +0800
committer wmyao_mm <wangmengyao17@huawei.com> 1769767371 +0800

update: 更新文件 net_connection_type.h


Signed-off-by: wmyao_mm <wangmengyao17@huawei.com>djx3tree 9a7d1f1d9cadb05eb60ada91de15ae571a582187
parent 9dba39f9bab07223b571bdb560d0a87d3e984aab
author wmyao_mm <wangmengyao17@huawei.com> 1769763626 +0800
committer wmyao_mm <wangmengyao17@huawei.com> 1769763626 +0800

update: 更新文件 net_http_type.h


Signed-off-by: wmyao_mm <wangmengyao17@huawei.com>EgxJ0@ܥ2dL'fa[fQ {>Uf(+'Aդhh	'uq4X&3}voܷu-uWmv}!GP;^:k^sm^ ???\Yt35h<e1XS/5b$x]K0@+"~%iY>SI.ص#Kf>.9
h@NyIJi$PŘg:^Zd1MC0"Ѩ4Sa"tD\9h7F7oӻmUn@{n-D	5,so8F.:+[^@*z:3tz5䐐 rZ<WuYu^UOuQoU/pvpF<s+߼<oaD
z모U.ģp;<JƧ"8@Rn@ZiD_xA!ὧp?]ZjCZvD=!Ol=~Y& 2%f]"dKd!)g<G2^EmH?[@hQM.`URAMImV#t3ۗ:m+%VX?VFfz6YJ׾qK<R<yO j	\ߕx=N@=hv3BHT9 ڟq"6AR"Pr|${z('gπ'DƥJ,n(%% [
5ɹ`828fO*nvtw],ֳvlco^8קyXkS	Y 9]w$@swxOoǗgU/J_'6+e"#LdXQ8;tox=J@@9V[{ o@68+B+a/e˸{sx< R!e璱$7Q$Ͻ	x
ɕ˔[	HD.1rQ  x)!u?6m~]ѓ	5vب8SZRXz,cd&gGazm7_w~?}rTƢO⯻v]2.hQ+4V3Y0VzT/xAJ1@9E'$?Rw?;LRJ/º("D7=LvZpxYGq 2sXzA>
c!bUQ	V6kA_&k)f
p"LhשvRɄpSoh4u.@^_]59b5|~<?ݍe|_Ifr5D&qw#fx=J@9EDjM0nQkbe{sޡG)">km0\ہ2I0:@$C.I
umY5kSלRnW+s60M2}oi3}憐y7?BE]Es׋?ɲ
m
tgVD+3$<WΘ󔆘*tѐxMj0@N}qѿFB6ɲdMFS#7'(t7f	Q6"ԐSN^gm\AHQJ59qÍ. Uїr65y0yq&_ۼs^Rǐ@>)PJ<zf|o7FYeI."ĹMauqqx8Q"
T$
<eg<rı'T'`̛x=A923WD	6aWlBi(Ktoy
 Qj>ru40ѣ ha+(&j(Yd"BH< [iYYE;FSJTˮ/CL43	MyWszl/浻>7M?B|R@3<j_xAJ19ER<DJѝ]	V%yycؙ2f N܋{ x[<F@p}|YD.Qdp 
!gUc4M-R<#f$|")ת6	$PV]/Є+9]j[deWFFyR@׹G*?_O/󾹙/:7vA݆wm7?_B,mi$>uScx7tree 0458f7eb41817185c432493a7a739cc7e0089513
parent ed1f065f7c62842b6ddb2b9c641009a0e8eb8b3b
author mohaoyuan <mohaoyuan@h-partners.com> 1769139174 +0800
committer mohaoyuan <mohaoyuan@h-partners.com> 1769139174 +0800

update: 更新文件 ui_input_event.h


Signed-off-by: mohaoyuan <mohaoyuan@h-partners.com>ThDxM cw<l@t۸pmM&}ވ@R0ycUUD> i+CT6@Vרt$莅L1L
B'ϵ\gW~<^ΡXAaI!wg==g8Ԕ_~޳Xx;n1E{=({`q4"R lvT##["RdhѠUAZ:7`:}S-|'HEt"ȩ_6˭ϛo~ճVzVӐwF;j'`ؓvRU޾e{>x8+c墧X唪fse/xAj1 ~!V?%e}nY9!zXN
l1*5&(B+=JP4I2L(MM:m7^o!@˕oOm|yȩ a=o襛9ϫq3;+KV8xm0E{N>AHhAv :Z,L
Cx^{X	_<:1Kl]Lɀ!У&PGTɮGrܡhB`m*E 4aBeurmiܬZx*uB0J=Zr9?f=͘RӝJi!xMJ@F}K'A;xNip&C0d\"a`f-n<xe`u2	kŞ	`kHgyZAGk\x v5ZW?c1˛3nױJ8$u Xm.!^DLtzyz?=
qvV}JU8n[x=
@~ODDD'lfM$WDk 2<+1K s@u:V:PPMl$9**^;:kDvl;y,s;͢L.6mǾrJ@o]}?y!ժ"iCH*$_\xMJ19EOGD'xb%ft̀u!n/0יa@@Aʉ%@ 
GR@:D`tQFͮ0Q9"֦n}t4-ْjk`8
u7.#
5~XsauJ
 ~ +˙8PZazz^>ۏm劉i}eƉ/(]vB5X7`?͚]xAj0E:EfQ(w	$y{9uENP9DZ* E{<0Ku,IGF@
4ll1V:8eؐCTU6=K!@9ZNM/|-`N<CYʲ6d	|P˙x:Oׯv?ބXuMXexKj0 :ۗ'ɑJ)2]NϓPK-7t7L[h-!!GG-K]gL}=1K3IKBMHcLJRv ƺwޮ[I\g㸹;};X2Hxaate`[jsr3SqCḫ)nrd5xMJ19ERIuaV<ARtҤ9	^Fķx|қe2ŔYTIl0xrm2
9hI'JC4Vĭ*yzwpønircx yj_׷*4TRJ·?<quKEBmt58Җ/'dXxA
0E9ER4i3	̌TjD]ՅY8
FȀB	}]"N@|lf4qR6cN`S#!%s&_u*o.Ьoy:i{ߣ Zi~pIw.05H>MMM\3xA
0E9ER$4dN4`-)m׉YBp!s;46&ViJ(BCױV2@
Ańvi1ʆhI\eL4+u'm,AB<:5ȍJer6V]K|oJJM">TxA
0E9ERI4E;xD6EBW~E48䜱FƄ^[h|XpQ=ph9!`$X	9Ñ:WeKt)yKCw5h[Qr)O&kX9_zjH1VKx=n1F{="gEw	()hCC.QDͩH-@}zOOJϬIF r6`E:O]D^-Sϋ}2kom$p!#	:Ri(ӡ[@\ِ޹}j6B!J ԅR  B?nNf<_k׫wZ4x;J@@Y_f"U:;w@^"1OHg! m݂bf܅Y`{deb$ل hdR!h
Mx%9$0Z$ҖE, s%9E8ɞ~c5Y-V<t{LTjwjGRJt3C!/z~kNŘs毉⢍CE6N EHUmfLR`/NuwxM
0F9ER4?wd. {|1KTGM
.\J +,.G"mb<A-DcNm49s*ߵR^Ǵy5z#Nwۚ^9K)C|~R"xJ0{"wLd2)^ܣ͋L:6vҲx[Umnz2D1	eE@3xsUB2XkٕT,RЉ}/}^üG{wi/}d O=mDӭ]uXV~WYy2ԦEڕ42iwxE2
XQ9P4"`_ڟxOtree 961e57c6b5d5fd2854d45029ed5e7e1a3c0f6af0
parent 794af71625abf48b46ded9294dbbfcc1b8c052c6
author wen_oop <zhangchao467@h-partners.com> 1768551772 +0800
committer wen_oop <zhangchao467@h-partners.com> 1768551772 +0800

sync description info of  interface header file about Image

Signed-off-by: wen_oop <zhangchao467@h-partners.com>lAxA
0E9ERI$3#"VhZj<ÃmRȊ!%P> T9EaHY-Jm:  "+ B9>>qVֆy?G@סK:yh'tAv:?ږM*KRxK
0@9ELG@2ɌfFJ'>xgflbم 1Ȁ$6QBQGy(b2Cf;`6P8=:{.6es+4S+;ow'm΂à7J;*/o0+u˶l}y>ҬVDxMN0F>Ŭؠ"qfwi"HR.vIO^@O>ṛSױ\OR#%H"ٲd/C'TMT7(d	^mj!!b>FxC.skv=Ǳ
[]΍6W-"|?q2b=x8tree 7140fa92126e2e96220566f1764a7a089a55fea7
parent ea667c1a5933c2a5ad33a0c3244cb8bb5a366a6e
author zzz701 <lihaima1@huawei.com> 1768480430 +0800
committer zzz701 <lihaima1@huawei.com> 1768480430 +0800

update: 更新文件 application_target_sdk_version.h
删除宏

Signed-off-by: zzz701 <lihaima1@huawei.com>'i#x?J@~N1ULoV[{ $H
9+`#XXY
V ZWxA4$`j2o
Jr\Ʌmj)''F'JzSk#2RO-Π;W9=P`w:)l+l.J􀥌m#d"~	2~0ons߯~R7Q\mݮ_	9+
}\n䴰UO4x=s&sP`Q(m8Ǡ |A|Px&tree 9feca65d7258c661f83f2de16b2fd9e9255fa5d3
parent c00027ba4326fdb7c1a23008bbfd9efc249dfeda
author yang-yinghua <yangyinghua1@huawei.com> 1768466033 +0800
committer yang-yinghua <yangyinghua1@huawei.com> 1768466033 +0800

has remote data

Signed-off-by: yang-yinghua <yangyinghua1@huawei.com>b_1x=j0@wB{I'S)!.td(K֧ZP(t!ge:F($dRNCH\4P̛PA8SV,K|G+߽úw˦VA5ZBv_Jv5}M\o:|d)(.p	Xx=JA@92?;|,$N@XJ%x en-Le-XW<^j6HZvTp> 	%bA]b*8ZI	H` hs4>7.h)/QOH!֓c.02(`{;REfx~mm̞OǶ{zj~]TYBog?y=x1N1E{=Z46B;p;l/ZLUr* 
.Bln>ȬC:NNF@9yiYȥČm)
	1 Y2l6X7è'r՗Ylpy"
 j۾V^wo_u><_>Rwp"MΊSҖ`ۖxN0E٣xĨB|BW,Lc)B)+VJUb5SJ>KJUՒ
F`=}eչBc1%mгYSd1ɵ
/cWe?e2>ezڞ1t=SUW8m(0\C9m΀DSz-ft{ TΑx;j1E{B'=}Ƙ=d)3`KF1I%@6.+oYFJm8p[%5VR J?(
|ܸv("mȚ`D
,6F_Nw#>ݒk:ktpB y?iJJ]x B^ѝx=N1{=ZE'[FS	A)TQ`8 T72q>P`QcЊDHTx}#[ FUSHTE@+$orvy'8fZ+Ƌ8\*ȏ)]?Y˳z\w^?^Wozi)5C5a;EfښxϿJ@vܟ\.)"SgwwkmRӫ`7AEPAARAiSvt*L4̘Lr`2u2Pb* z>. jg{iC^tT6~;1^mPb=ڶ`rR)3RȦ֜_,°X|y{y"}yվ=Y{>LM~%w8Ds({u]v5Zz[D(
땘x;0 {*Ȏq~޸ 3@DOq\ch˙b4#VU<Y`h@R{F!PkURXFxG0њHR@>&\552a[>zkJ'\BeTF3;n?as]BX~bcx1J@9$@{owHm="^&.zY/_||ǟ{f zKB}PWNXou5;bjF$BF
F
z<}jb[ix(k#ƨٮcߎ>_	s}3>LߔTt"E;92zDx=N1Eޫp CVwqx=))>9 *\`3q.oza/Sn.&,FfD$6jsзVbܪs_߯5d}$%"6'GSG/GDRvuɏ?Lj4x7tree c66de322f03c7076041d8c788b9560b0bd651980
parent efe35f94b1e8f1709df16923f5fdb1838a2180b8
author yangjcc <yangjiangcheng1@huawei.com> 1768354718 +0800
committer yangjcc <yangjiangcheng1@huawei.com> 1768354718 +0800

update: 更新文件 ohaudio.ndk.json


Signed-off-by: yangjcc <yangjiangcheng1@huawei.com>gx͍0w;Zm#GQp=AD̧MWXId
R|%l(-k.{>Y$gKRf0#߽EZ\lg3&tF	NmgPA-kߞ?*q};=:\z^hx;N@@=(3k#@3q\N %wp'Hj\p{KC"u, x.D
V،K6<.grt"1XR4*D1y%0V[x6Vhmz]M_Bt}&w0oMJ´98>>SSw/[4[`bxn! {>:kYgYV!_9s˴Qʙb4h
(<r
Ų[=vC ʜezGhTǥuYg5ԧ_~㗔U㰶Y97  2;m[RedXx1N0@w;JquVM:Э[Jݐ`ԩK;Dݺ"=饎[ %IƂ2
tR#
cHT(ٳ(&F(D1D!}HV骔J̾)bg/xK0E^G\ (7P7)?ޟ߿ƏVO˟qOƞY$2,';mxKj1D:aL3R`.K@V<YV0(՛v@s^
DQ!EE&kÁ<a+5hѦ,N[MoIO8^֫!QYNPu#˓WӗBoRJRxz ؅Vɒ#x2tree 7bf2fd72008189c4331a167516ac154a8fb06703
parent 3008ae8c5a4c17e36274751b78206ba92e5bc991
parent fe01380616df27b5ad7bf545fb1ea1475409af6a
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1768276285 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1768276285 +0800

!4496 merge pr_4247 into master

codecheck

Created-by: zlGiteelz
Commit-by: ZhangLiang
Merged-by: openharmony_ci
Description: 处理代码告警问题
https://gitcode.com/openharmony/interface_sdk_c/issues/3462

See merge request: openharmony/interface_sdk_c!4496;ʑx=
0G"TI|wI-h+5":{:9z;/B) B+S'IZ{=iX
	 :}r(r20)ߤ/:R~=rViDcMJ;^t~/㍱Y3oQf]Uea7튽`xP;N1}
h{;B)UjN}nhQK&@4\DFb<1HjD3头u>e@jc@*و-M<R-Sx.QTlSn䞆RRWTݎqs/ѻ\DoTnyh v=gק|9cmRtXXvu7v!W1`b!B&WP=(XSox0tree 15ab2d3b8fc506bab24a93fa480570e6761a0a1f
parent b3f5f1b4b5b9f13ad2a62896332e5c5c02e794cc
author zwhero <zouwei49@huawei.com> 1768224159 +0800
committer zwhero <zouwei49@huawei.com> 1768224159 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: zwhero <zouwei49@huawei.com>0ex%tree 5932760ef70dabb6b862f5a92888583480bb5c8a
parent 94e7270dfd9d6491323299802b0f5887fc276d06
author Marcz <zhangyifu@huawei.com> 1768222410 +0800
committer Marcz <zhangyifu@huawei.com> 1768222410 +0800

update: 更新文件 telephony_radio_type.h


Signed-off-by: Marcz <zhangyifu@huawei.com>}`Ex tree 4169812f64f3491ab2194de80a276978f85a793a
parent 3008ae8c5a4c17e36274751b78206ba92e5bc991
author Marcz <zhangyifu@huawei.com> 1768222317 +0800
committer Marcz <zhangyifu@huawei.com> 1768222317 +0800

update: 更新文件 telephony_radio.h


Signed-off-by: Marcz <zhangyifu@huawei.com>:E]x0tree 1bf4d598cfced168fafaa3fea2a6c3b8160ae9c1
parent 2697511dfbd448973e00096b2b4ab475ea98a07b
author zwhero <zouwei49@huawei.com> 1768221580 +0800
committer zwhero <zouwei49@huawei.com> 1768221580 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: zwhero <zouwei49@huawei.com>fx;0{=
Zǿ!5 	2 iє,I (zjw@d;tl| 	J<0\d8*GJ^Ȇ&l-hRW,/XG?+W*tʻUൕ D}KR-qx<^gfI	iI^Wx8tree 3442811fcb7c84a8743072e8b3a0774f099777be
parent 56cf56c1a8e0775b319e6a486d0df58aaab3813b
author m0_59343938 <xuqingyang4@huawei.com> 1768190546 +0800
committer m0_59343938 <xuqingyang4@huawei.com> 1768190546 +0800

update: 更新文件 metadata_output.h


Signed-off-by: m0_59343938 <xuqingyang4@huawei.com>bxj0Eɖb9n]X!i^f7ܙ{LH0(jXiW]MDwIѸ5[%0h{K#̔<'<MTXΆD_Q{ɕ'9g5]\p]Nj%7m+E0_u{<#D%zKPbe0!|<7-b+L[
qjQ3 񈎊x0tree 1948ec3da233000d7601208d382d3be7050c1e2a
parent ae7ac7cfedd88df32529c560ef350e9c3212e76d
author zwhero <zouwei49@huawei.com> 1768032221 +0800
committer zwhero <zouwei49@huawei.com> 1768032221 +0800

update: 更新文件 native_huks_external_crypto_api.h


Signed-off-by: zwhero <zouwei49@huawei.com>e}xtree d09c9ae05a127683c02156e01dc829a90019f7f0
parent ec431d82dd752af7108f00e1860a936023439c23
author zwhero <zouwei49@huawei.com> 1768031942 +0800
committer zwhero <zouwei49@huawei.com> 1768031942 +0800

打开资源错误码调整

Signed-off-by: zwhero <zouwei49@huawei.com>G^x1N0  w;*c'+@vl@!UH@H2Pj6l|$x@;p62%*I+"HSHČGD	M %\x(LTF0u:BZ`eq:DΚA&Mbb0GFpq/-r=G%(5ua_xn<k=ǅnv~S~_>+?ˉ_ 8̳NemG[];xMK@E+f/~EDpU ʛ&ddX7H.wMٹYo,k
(JΉO<-ӡ󛘝Nj"9%֥/U="n_}*lJA [;lp,yZGy.Rr)~8[y^+8sSݟ+sOӉ}=)1)6`m) 3mxMJA}HWOU֞kfaB;H6nܻ6 Qp}m	u$}Y$=޲sȉ{Jeafl99RdD8'Y7Z^=XBj4n%x磱
PA)au8O/Q%7#sV¥Y\Cj4ѶsO
e4 *mxuOJ19E!=$/ΤN39@w.\ąoa.+"uL$2RP[ƅq\r͢s	A+cBj2I	F{+B`	UA*A0 ~,<Ў]j8BEܬiK#Vu.(:zcHS۾|ߨj7؞Zi-~|qpmpV]!d6=YNilo0d:xu]J0F߳ir72{prv
Ӥ@p>
t9uw:x	H{HDQF3lĉr刨rQJF'BBQs=^{+WDiv}%67X`7	JB݂q3W͏T0~|>?﯌])m	^ʘx=J@@9|EDj|3M6H	k`ͲXxjW07UK`E{\0/IZJ坢P[D: TIz|P'Sá_Z4s~)WC~\ml?V6Ѻ{~vk{yz~v񓱫l(fmJ_c%6%e8-'bHYm'"4&r؟xKJ19E(tqCgH&w@Cb"-j$r$8裠ڨ(Cnىˉ٣GՅICA"K©q6PUdj\{yJ_ygq>c%pʞΒrmNk^u)(py`^/S ']xKN1D>EQA EbÌCg"XaWU{5VfȑIم,UBi݄!RHExTS!.H*fmcN1M1tK_k6_Nf垖]ާ~~Jp'QJ:p_+58-lI>6޶P+$mJ,sC/?=^ّxIE1@}^g2{ $]FНEX{AmZ&CK#bcΒD@k$F.۲6WT߱]PEZs`Hd<֣nmcKttZza1QJR {`~̩Bn_ݘfvBMxAjA 󊹋{ܙ_0ݫ{]Y&HD93f_<x*((2*%eqGÑc'Ņ:JkVQ(844j_## !g*KƐM(a^Z2 /<to)yj3 n}*2i3}.i:1vݫ̇siUx1n@ {hϾݳ.l#RH4iT4THH|&/(Ҏ4ɣe"Wb)VB&_kAC̮QUhJj'npx1Goǡ+h)C.Pf@5fڵ9${;Mߗ|e{5.< ]Qjx0E{ONB}( 6؂,@GCO!t^(TAui<"* u
+\iQ(0ZIVo2&OOzb;U @ ۶əR~s9͢#?!nY[RxA
0E9ERI4$,lX=.ufɁ.7`d}o PP4X5v6!dg"F#,9,a2^Ii;Н%=i|tA  K(u)s34 RxA
0 yEb6ɦd
MTo ^f.llHzGdLԋU{𝱃!`„]h%1hcYt8~ze)?lJOM*E=p jTn+޺Q6=2"r/-VĖx[j0 u
=wRJ[!Rpe>>B̌Y<bCfLAqE@1XbDQ7Z HK XR@|Ehs_us;OƫLgk8ot}/mR7Q;.cKO֋Rq=tCxWx;
1"$<E;x<5"Z{cZ솏= 6zʀiEE4N+phc{H\FS>gZZH4Brni7yS]NoǾ[0URI]v)M*t~.6-ePu1V0 6`yxK
0EYER˿"\%/6RSGsm3U|o T}REBR.ELf;' H%c&SDLCoQ ߴz_ }𤲏xଳ^9cNx!fӲ\V[M9w:>TAxK!D40@1;x t7g9^RRh}@88{f+h|rRTejFG.YİTZL8+Uq%2HhLwo.eCe!ڀzz)ɟn@|]CK4(u,Ix=۟W>VUxJ1@e%N""Գ_dfF-_w==xC6M>%mP=G^sqټ!nC9ÖRSPfvf͵56/}˺}ol^e}ll!R$">uioj18vc^&<uթ~1ǥlgN|'?ęGH <c@	Ddx[ DYJy\½&Tw/;sfjA&hM` P8'tji`"f^QoɑC ouʅ=?m%u6|ypi5ftNpB.sg43v	c:x~1h[Wx1n1 {=:;EC^`Ip.F((R>.Ag@EFSL"9gId$k}P؂o=Ũa$@ΞPdb,q ١CiE]Iva˰kWre}͋FGQu:Rojs+uM^x;0D{=
{T5NA#IAD7yޘ%tQQ0Q."x!F/]n1O혀"QflB$Kmk-,ߠeT}z?I'NRbwk,j/.f/u-އ_@Tx=N@F=h?!	ƻcE`m| H4F.}*.k QI^%9Eɱ5FFJ A[KR^K/2FH\)ۋ[G`IЪt(c}i,t)nEoxC+y@\E.} yχ>}Qsof]xN;
1sM6Y _wA#%,,T"̇&'0ѴrUEF!@ZhS WR.,g˚{%5\[M}.w1cޅU_]Urpi;6q=D4Rx w@i\_p~ *z_W_xJ0E쥒L!"i2WRSZ.rpN[E&Q&@5ŢXQ< Uf|2*'0"0@v[V}ycZ^n2=l}(s|Sk/G=/jV}7iR9yYjv&z;{֋z? >;@FM(қ	gOxPj19B:_0gn]*u
!B3k,G1eJ&o\ArAuX9%6DLA|j>kh˯s9ڦ`51&d&tm_[I{϶ѕhr,I}y9ד>GT
CAOYhx;0D{=
roB܁ElH%-Hi%	cLs^4ƣ7qC"`W̕C^E "!2׹HBw]s֌v\xo`uIFSn<c4e]!MeoxA
0D9ERM	[Ԉ#%ܹpexƵy"RLRj'LN4Y<[CQ(΃5Bh;IfFgSfj;~lðyی]xshGP mo{ݎ|\ӝE蓖()^7,$`xA
0}NTtwm3mFDA/΅+/#cؕkq?v4F]&J@ $N={o!Bl(5[-htU6#U	v2bvX힛U-*pz&,&9Ru#_??Xˆ}҆o^x!tree 88accba91640df8256d8bb6fa8a19027e2cc1007
parent 4a852e0121a4ce7296f94fa03776d78f733414f8
author wanglili12 <wanglili65@huawei.com> 1767004265 +0800
committer wanglili12 <wanglili65@huawei.com> 1767507806 +0800

添加结构体描述

Signed-off-by: wanglili12 <wanglili65@huawei.com>
b`qxtree f3619b4e0db1c47e0b5c5917a19fe6635b71d935
parent f5c0246995dc2e740d47a5064a0635c9f1e3b443
author zzz701 <lihaima1@huawei.com> 1767427697 +0800
committer zzz701 <lihaima1@huawei.com> 1767428353 +0800

修改描述信息

Signed-off-by: zzz701 <lihaima1@huawei.com>
IWx	tree aa4c44e31b1b3def0a9b7a9fb5f511a674c6d659
parent 01afade568e0a55ae3ab5a9f00d2a3b0cc7788b2
author zzz701 <lihaima1@huawei.com> 1767425948 +0800
committer zzz701 <lihaima1@huawei.com> 1767426306 +0800

修改宏定义

Signed-off-by: zzz701 <lihaima1@huawei.com>
Vx	tree 66d1bc43d14295621c6e1ab3bd267c8ec847018d
parent d17e72e982c95a0fabac06dfa1e8196f1d464969
author zzz701 <lihaima1@huawei.com> 1767410137 +0800
committer zzz701 <lihaima1@huawei.com> 1767410146 +0800

修改宏定义

Signed-off-by: zzz701 <lihaima1@huawei.com>
ݼUnxtree d04bf15737fe186b01fe2d5f1182ef3fb5efe3a1
parent ccb32519226d1162b95b42dfff9a2d4474ed7bed
author zzz701 <lihaima1@huawei.com> 1767314803 +0800
committer zzz701 <lihaima1@huawei.com> 1767408695 +0800

处理检视意见

Signed-off-by: zzz701 <lihaima1@huawei.com>
Wx1tree f91f26af4bb7527c65d21a4d86c5123baa2f13f7
parent be67983fce63c94fdad33e7b19013b3663bfb314
author m0_56042728 <yangyingchun5@huawei.com> 1767178065 +0800
committer m0_56042728 <yangyingchun5@huawei.com> 1767178065 +0800

delete: 删除文件 sing


Signed-off-by: m0_56042728 <yangyingchun5@huawei.com>8b`xO;N0}
hsB4[q~F$NzEO( p8J3f49#RHR	_i1riNBp@U(Ny2iAA\h	N4F/Zvfo0\ZzXɍv{rJKg` <
ge2,EB5}R#n'	[}x\߮oؔz,Oum°c\5'ymLsx%Ź@ @"
w nqO2p_r@b9sZ-sq7dee"Pta@j\r}ږ}f/"Wl9<_lT*Ǳ.@Ўwy}#dx%ʻ@ P)blwIJAAb$׼s:e2g,C[ՋVAQ+|3z	$ĽE`pX7Pc xJtree 374179746e167004f9acd4fe8a8e60ce54b47655
parent 8da91a5a57b275b8c09789cddaf28d3a68427e05
author wangqiguang5 <wangqiguang5@h-partners.com> 1767169487 +0800
committer wangqiguang5 <wangqiguang5@h-partners.com> 1767169487 +0800

add OH_AVMediaSource_Destroy and notes

Signed-off-by: wangqiguang5 <wangqiguang5@h-partners.com>
$jex=0ާp
 'p&ciIP0BPs%(2+1HE[<,1.TT@AW6%X֪XM2(dPE 5#&Br"r~w+giM1ra;~=C@u~z^?!Ĳ]u\}JEux_XxBtree bc41637ccb62d95f1a073b0bba300f967acb6b92
parent f4370392410974d7e0889703183ed8acaf4dbf6e
author yangjcc <yangjiangcheng1@huawei.com> 1767166767 +0800
committer yangjcc <yangjiangcheng1@huawei.com> 1767166767 +0800

update: 更新文件 native_audiostreambuilder.h


Signed-off-by: yangjcc <yangjiangcheng1@huawei.com>xlx@tree c5f3ab91b875090a30c731c93ad97a70483ffd2b
parent e03e697d4830b827d89b93853298047b71b05147
author yangjcc <yangjiangcheng1@huawei.com> 1767166667 +0800
committer yangjcc <yangjiangcheng1@huawei.com> 1767166667 +0800

update: 更新文件 native_audiostream_base.h


Signed-off-by: yangjcc <yangjiangcheng1@huawei.com>ljZx=tree 18152a18502dddc731ccd9e000bf56a53d469d2c
parent 2ea630c4ce082a965d4c64e86f1e97fff6df603c
author yangjcc <yangjiangcheng1@huawei.com> 1767166595 +0800
committer yangjcc <yangjiangcheng1@huawei.com> 1767166595 +0800

update: 更新文件 native_audiocapturer.h


Signed-off-by: yangjcc <yangjiangcheng1@huawei.com>'j֘xtree f89239c4da18ee461844dd604bc86a00ab5fe5b5
parent 2d12d52b4e9b12b97160c4390ba12e592415b9f1
author zzz701 <lihaima1@huawei.com> 1767098537 +0800
committer zzz701 <lihaima1@huawei.com> 1767165396 +0800

适配新的宏
Signed-off-by: zzz701 <lihaima1@huawei.com>
)yTIx0 {O=b@/D)u؃tHt+NW%VrlDBMjްc.{ŋp:PޑoCjE0寧f߯CSjWK84r)S#\ŎC)t<0t9jJj_/q]x[
0EK%N""L'>-@[Wfٙй`U&ـ.umH-BL,r2$=z."لd +/pòK?wa7gZЂx'Z^<ƾpjnBU~U^#Yx1
1 "l^E?MNΈhDvV~Fghe-vY'"biPdW1zŊ:nrd-\i"$h-7ZӪrݺD*k*A['{ .x]q<7!fX)~7JDa:x'tree 327e8b693c1de106e440696f4fec35f1ed8177e6
parent 8da91a5a57b275b8c09789cddaf28d3a68427e05
author l00957130 <linzuoquan1@huawei.com> 1767084608 +0800
committer l00957130 <linzuoquan1@huawei.com> 1767101089 +0800

修改ani接口起始时间

Signed-off-by: l00957130 <linzuoquan1@huawei.com>
baxMJAF}އ	^dF2 ] kW]y#&7,㵙YD1;km&PLِxę&
LJ> R7'_[3H`MY-UޜKw^i}+wU+ ⴮kk|8qx{}>?bxN0yJxj^7VոM]AW3of43up#lOqtAjҤ]y]hCBGŀc#Ko^c<P{b"QH@In^ϲ쯙~lټwmTZTR]SϹVwA!Q`Ziv|vP̵^n/}̕Kǃ>/m8O~o{oxKn0 >(~=? -XT3-7YD<; (9V҈ Z ";!	E$6k HLbp蜠D)ÊcK]s*o7ozT`׎LeÖKpB_{(ҿy0QϹ	oWf]xtree f2239543354a8ad083577e30afacc27a9a563cb0
parent d4b533c0d3dcc6ae463080cf1385b287c5674dad
author zzz701 <lihaima1@huawei.com> 1767071382 +0800
committer zzz701 <lihaima1@huawei.com> 1767093027 +0800

NDK编译告警修改

Signed-off-by: zzz701 <lihaima1@huawei.com>
X_Zx[ȴiVCSSmk \xJ1Fyjf2"J(7ɽ3Y4)!O[w9pDktTI*:;#QK=ykMt`xٙ`䬑!ZDC}R]밬I6(7:9IJkϹw)8ݽ'ȑ3k}^A!\(*.la\測4\??`x=N0@w;Jv!	>M r2@,]tA[8M 8qr"ڙR*k\)	2f.DEDi.ר$Xd"7]]!QW_C7͂Cn~KjQIدÿlfۧi9^ZMݦ6VImTx@tree 1ca045f350e29c9474953a32147592d726b36652
parent 80b289b15397f1558d37812762eea4768ed8ff68
parent 6c485896baf8f9d6e7a557453cee9d963c104dcc
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766982191 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766982191 +0800

!4441 merge zlk04 into master

删除冗余错误码描述

Created-by: xzken
Commit-by: xzken
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3412

### 原因（目的、解决的问题等）

删除冗余错误码描述
### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4441:-xtree afc4eb0feb23f5eef5ddfdabe71c4f9d1eed31c1
parent 401df0d838baef6245bd490d00e7f24278eff52a
author hexuhui <hexuhui3@h-partners.com> 1766401817 +0800
committer hexuhui <hexuhui3@h-partners.com> 1766977647 +0800

otherMedia

Signed-off-by: hexuhui <hexuhui3@h-partners.com>
[XxItree b4c9eed695b2ac1a2b4a5c34639addb6d38540ac
parent 5bbf16a83b028970645392e62ad8d64680b07c63
author javey-lu <lujiawei21@huawei.com> 1766911366 +0800
committer javey-lu <lujiawei21@huawei.com> 1766973009 +0800

hdr live photo

Signed-off-by: javey-lu <lujiawei21@huawei.com>
Change-Id: Id75b3eb6ca1fa6de5e45db48e7628c681751370a
d^x	tree 2de00e13456a6a9be42d1ffb3f9eb7f14ca02219
parent 3942fedcdea5a79b217eb72f1c7f1e7cb50897ab
author zzz701 <lihaima1@huawei.com> 1766797353 +0800
committer zzz701 <lihaima1@huawei.com> 1766815646 +0800

NDK编译告警

Signed-off-by: zzz701 <lihaima1@huawei.com>
r3UtxLtree 6bb35072eae274b6dd98dffee2b255438311f03c
parent 8cc3718469036c1a51bd0082e6173e63a44ad415
parent 8a5b4287568bef3b63daaba1c1d5794543048d28
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766756173 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766756173 +0800

!4437 merge ndk_enum_master_1225 into master

ndk enum version changes

Created-by: tanwlanyue
Commit-by: tanwlanyue
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/multimedia_camera_framework/issues/3754?ref=&did=3694217#tid-3694217

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ Y] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [N ] 是否更新json文件
- [Y ] 实现代码是否已经合入
- [Y ] 目标是否已经添加到interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [Y ] 头文件library声明与SDK so库名称一致
![img_v3_02ta_1c488fc5-67c4-4695-b5e9-80f6a6feaafg.jpg](https://raw.gitcode.com/user-images/assets/4379443/1141cc88-6e92-4ac2-8e5c-c2e5fe631060/img_v3_02ta_1c488fc5-67c4-4695-b5e9-80f6a6feaafg.jpg 'img_v3_02ta_1c488fc5-67c4-4695-b5e9-80f6a6feaafg.jpg')
### 兼容性影响评估，如有影响请写明（Y/N）
- [ N] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
docs主干：https://gitcode.com/openharmony/docs/pull/123750
docs 1117分支： https://gitcode.com/openharmony/docs/pull/123767
interface_native_header： https://gitcode.com/openharmony-sig/interface_native_header/pull/2946

See merge request: openharmony/interface_sdk_c!4437(5xtree f3bbee2fb42cef1c0b9908c54eefa1e6b0dddddc
parent 873d37afcc210cf8778a3557db4ae31086813c61
author zexin_c <chenzexin14@huawei.com> 1766734351 +0800
committer zexin_c <chenzexin14@huawei.com> 1766734351 +0800

add ndk

Signed-off-by: zexin_c <chenzexin14@huawei.com>
VTxtree c36931a31edfc2285e367ca0084946b62fbe029d
parent 76ca0e380c1f0aecc78b4935a94bf427380f618c
author xzken <zoulinken1@huawei.com> 1766732063 +0800
committer xzken <zoulinken1@huawei.com> 1766732063 +0800

删除冗余错误码描述

Signed-off-by: xzken <zoulinken1@huawei.com>
ax"tree b7c00e4819848b688506a2a800b8f5acba5eb25e
parent 76ca0e380c1f0aecc78b4935a94bf427380f618c
author zengmanyi <zengmanyi@huawei.com> 1766719816 +0800
committer zengmanyi <zengmanyi@huawei.com> 1766731546 +0800

modify version of APIs to 23

Signed-off-by: zengmanyi <zengmanyi@huawei.com>
[xktree 4c052b00f8deb6d203c715cef9e4157cbfb3382a
parent 29e6ee6d00ed404692f7b974f42dbfcbf2df004b
author zhaona45 <zhaona45@huawei.com> 1766040488 +0800
committer zhaona45 <zhaona45@huawei.com> 1766730227 +0800

Add OH_PictureNative_GetHdrComposedPixelmapWithOptions

Change-Id: I59e5eb517eab0d79258f9ad820205db1225e3aae
Signed-off-by: zhaona45 <zhaona45@huawei.com>
Xqx#tree a2553781956d77033cfd53db6d2246b9bf7ba1f4
parent 76ca0e380c1f0aecc78b4935a94bf427380f618c
author SuRuoyan <suruoyan1@huawei.com> 1766716693 +0800
committer SuRuoyan <suruoyan1@huawei.com> 1766716693 +0800

add ogg muxer output format enum

Signed-off-by: SuRuoyan <suruoyan1@huawei.com>
\YxN0EwwvRJl|cJB"ԍ2Wb3bbw_ XՑN!IFmmSIO$PnM["嚜II3-	~v2YMrX> &`7~x8~mokƧq޿n_6d*XdmJ_Kjʘ-_T)sI$-sd:y 
~?qMx'tree 27a34e20e879835659ea0bb428f5fd386d74ec77
parent 6bd6c25adb943130e5c8910450c58dfd05048a2e
author wanglili12 <wanglili65@huawei.com> 1766211875 +0800
committer wanglili12 <wanglili65@huawei.com> 1766712682 +0800

接口返回值注释修正

Signed-off-by: wanglili12 <wanglili65@huawei.com>
~dxMtree 5c66745258674f12f7d2a92032f72272c68e966b
parent 2b6a1c38a86c599145c6c23abd5127e321b0b5ca
parent d8595a06708b8c0f8834588dbb61b767ad9e0851
author LeiiYB <leiyanbo@h-partners.com> 1765594943 +0800
committer LeiiYB <leiyanbo@h-partners.com> 1766665261 +0800

Merge branch 'master' of https://gitcode.com/openharmony/interface_sdk_c
fx'tree 12d60701c143b132ae8e3ab78e2305fd4815c494
parent 39384ae13a54a84469bef170721dee4f384bd9a2
author tanwlanyue <zhanglei737@huawei.com> 1766651446 +0800
committer tanwlanyue <zhanglei737@huawei.com> 1766651446 +0800

ndk enum version changes

Signed-off-by: tanwlanyue <zhanglei737@huawei.com>
Y\nx=1@";	g@gdnda/V^FTbx㕁S$$`ZS^iQ^d..(pTXc<HDVyI*݄Hݦ'ra?Ov%Vz>N6m[
`{cs+ _XxNtree 4eb26da966efdd351e83a07747500d6db5f5d168
parent 497b219910f23634b7ff42a10fc8fb3c067d415e
author fangxiang <fangxiang19@huawei.com> 1766567529 +0000
committer fangxiang <fangxiang19@huawei.com> 1766567929 +0000

fix codecheck

Signed-off-by: fangxiang <fangxiang19@huawei.com>
Change-Id: I38831ffaca4dab39af6b8cf3138e008aaac34dea
gDx;A >E2^"{=A^2nDfF^FchUFfYeٌqP{@5yG4ځ
+4r1MQn)&/(Z?l_t鳭a9hڒUr@<+i{mw9UCUv%_jxtree f9762a17bd0065f9ef64c2cad34e386618895cf1
parent 15326c1a4dc3ed01f2b29f522b267e0d86087b45
author Lin_111 <linyuqi5@huawei.com> 1766386237 +0800
committer Lin_111 <linyuqi5@huawei.com> 1766557412 +0800

heif ndk

Signed-off-by: Lin_111 <linyuqi5@huawei.com>
LMȖx)tree 396c49eb5ee3fe9454158c8cd05edd3752fe4654
parent ca8d746c3f60fa9d10ddce110d4fd70d0f592ffe
author liufei <liufei225@h-partners.com> 1766458037 +0800
committer liufei <liufei225@h-partners.com> 1766544845 +0800

feat(graphic): add font support checking APIs to native drawing library

- Add OH_Drawing_IsFontSupportedFromPath API
- Add OH_Drawing_IsFontSupportedFromBuffer API
- Both APIs are introduced in version 23

Signed-off-by: liufei <liufei225@h-partners.com>
:x=tree c1cf2b39e3512c165e44333d2c4cc5da262cba88
parent cfca65b90586ad1f68d63af2cd05c765238462cc
author jiang-qunchao <jiangqunchao@huawei.com> 1764730788 +0800
committer jiang-qunchao <jiangqunchao@huawei.com> 1766542482 +0800

Interface annotation rectification

Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com>
3gvxntree 24e4328ca065837e2c88b85b8ab92c9fee65a5d2
parent dc6d407152add6402be1a6d4fbeb998974b80e37
author wangqiguang5 <wangqiguang5@h-partners.com> 1766495510 +0800
committer wangqiguang5 <wangqiguang5@h-partners.com> 1766495510 +0800

add AVPlayer ndk/sdk interfaces and add AVMetedataExtractor ndk interfaces

Signed-off-by: wangqiguang5 <wangqiguang5@h-partners.com>
x$x+tree 5c9282629a21032e8535d6d1e8114c6451985f66
parent 8ace75b2423c0f4300f3b3606e0964733c99fc03
author weixin_66524478 <zhengsong5@huawei.com> 1766492011 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1766492011 +0800

since标签修改

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>^Fx9tree 11049d962620299e3b9ef47bfdd626f97c00c528
parent 8ace75b2423c0f4300f3b3606e0964733c99fc03
author w30076694 <wumingyang11@h-partners.com> 1766489368 +0800
committer w30076694 <wumingyang11@h-partners.com> 1766489368 +0800

新增相机旋转角度接口

Signed-off-by: w30076694 <wumingyang11@h-partners.com>
hٗMx(tree b30dda2907500800291ecfa2474b61619d67df03
parent 5ad69d523fa50670e85e336f0d85ce1e583d2e75
parent df7f880c9de8d2b0f2a5fce11fa1c56323c9c24f
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766483884 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766483884 +0800

!4405 merge master into master

修改pip 模块名与对外文档一致

Created-by: weixin_43102524
Commit-by: weixin_43102524
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
不影响兼容性

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!44050glTxCtree 0a65378888f63f7fb1199aac47fbc43490ce3b78
parent b1dbbe9cfa9c83ee60dce58a23a0f78ab35491ea
parent c6db86722f9b6c36ed26d5c0165630c15f14312b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766477039 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766477039 +0800

!4419 merge bug_fix_change_getContextFrom_ani_value into master

change api version

Created-by: mh_xiaobai
Commit-by: zjut.wujinhui@qq.com
Merged-by: openharmony_ci
Description: ### 相关的Issue https://gitcode.com/openharmony/interface_sdk_c/issues/3399


### 原因 修改ArkTS-Sta接口版本 为 23


### 描述 修改ArkTS-Sta接口版本 为 23


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N） 不涉及
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4419x1
@ {ٽ\6w"|٘&ODk 3">Tb7L1LD\82E0e(\oJ6j͝4Qeʃ%O	46\xmN*nw,k=VIt]M4D6'P]1_q}JE#EҖe߮_)x*tree 374056135fe396fb433ea2ca4f6946244e4fbcb8
parent 2167c37fbd1dd5ab685f0d93a5a3b815231f963a
author chen-qiao-yi <chenqiaoyi2@huawei.com> 1766459070 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1766459070 +0800

接口增加错误码

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
d$xMtree 30836b4ccf7a9f9bbb44d1f0fdc58dd437d009ad
parent d2f1d356c3be1acdff3e23e4b44a9af95734095e
author liufei <liufei225@h-partners.com> 1765786188 +0800
committer liufei <liufei225@h-partners.com> 1766458062 +0800

feat(ndk): add font support check functions

Added two new APIs to check if a font format is supported:
- OH_Drawing_IsFontSupportedFromPath: checks font support from file path
- OH_Drawing_IsFontSupportedFromBuffer: checks font support from memory buffer
Both functions return boolean values indicating font support status.

Signed-off-by: liufei <liufei225@h-partners.com>
4oxFtree e6175ddc41ffb6b27ef2fb9b3191acc7073bb32d
parent 596d545de25f6c4c4c6045d0c75de9abbda6ffc5
parent d2f1d356c3be1acdff3e23e4b44a9af95734095e
author Felix-fangyang <fangxiang19@huawei.com> 1766454435 +0800
committer Felix-fangyang <fangxiang19@huawei.com> 1766454435 +0800

Merge branch 'localapi' of git@gitcode.com:Felix-fangyang/interface_sdk_c.git into 'master'
# Conflicts:
#   conflict graphic/graphic_2d/native_buffer/native_buffer.h
.xKtree a774175e74a458940ee6396557225ce29ed65cb2
parent 17c0478f897406b656b3d619bd501e290eb2c6bd
author fangxiang <fangxiang19@huawei.com> 1766453739 +0000
committer fangxiang <fangxiang19@huawei.com> 1766453739 +0000

change api

Signed-off-by: fangxiang <fangxiang19@huawei.com>
Change-Id: Ic01416797a398576be824cd9e5f25396b8c4e56a
/cɖLx9tree e5c99cdbb945360bae19383a998e5f3e0b5a53ec
parent abee79eb7601771f7ab6aa35922792cda498559b
parent 071b5f96e6794c90444efc3a53b207e5d90f3818
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766453458 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766453458 +0800

!4417 merge master into master

修改自检项

Created-by: zzz701
Commit-by: zzz701
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4417[x,tree 73a20729de2a778780a18086895dd8254fb50361
parent abee79eb7601771f7ab6aa35922792cda498559b
author guanzengkun <guanzengkun@huawei.com> 1766452926 +0800
committer guanzengkun <guanzengkun@huawei.com> 1766452926 +0800

API since版本从22改为23
Signed-off-by:guanzengkun <guanzengkun@huawei.com>
hdQxtree 1857e028267f153e4b0703a84a5629093724259c
parent dc6d407152add6402be1a6d4fbeb998974b80e37
parent 192d2371684f4a81a60a9ab6789b3293fb026f8b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766413737 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766413737 +0800

!4406 merge master into master

ukeySDK配置

Created-by: wxb_code
Commit-by: wxb_code
Merged-by: openharmony_ci
Description: https://gitcode.com/openharmony/interface_sdk_c/issues/3388
### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [√] 是否通过C语法扫描
- [ √] 是否通过注释规则扫描
- [√] 是否更新json文件
- [√] 实现代码是否已经合入
- [√] 目标是否已经添加到build仓ndk依赖目标里
- [√] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审
兼容
### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [√] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [√] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4406jx9tree 3a96c348f6e315362c6cd7d6372bbbf3bdd323f4
parent dc6d407152add6402be1a6d4fbeb998974b80e37
author zjut.wujinhui@qq.com <zjut.wujinhui@qq.com> 1766412581 +0800
committer zjut.wujinhui@qq.com <zjut.wujinhui@qq.com> 1766412581 +0800

change api version

Signed-off-by: zjut.wujinhui@qq.com <zjut.wujinhui@qq.com>
ex	tree f2e2fec7e8c3f80be1b9ddbc067805a6c70a1747
parent 401df0d838baef6245bd490d00e7f24278eff52a
author zzz701 <lihaima1@huawei.com> 1766397576 +0800
committer zzz701 <lihaima1@huawei.com> 1766397620 +0800

修改自检项

Signed-off-by: zzz701 <lihaima1@huawei.com>
iV1x-tree e01e13217331db372b59bbf0baff06a1a116ca2e
parent 15326c1a4dc3ed01f2b29f522b267e0d86087b45
author zcdqs <junfeng.lijunfeng@huawei.com> 1764760525 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1766386427 +0800

add grid scrollToIndex capi

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
`>xtree 7d4b29975f0ad7a6593e857a73eb5fe601659d8c
parent 15326c1a4dc3ed01f2b29f522b267e0d86087b45
author xzken <zoulinken1@huawei.com> 1766371871 +0800
committer xzken <zoulinken1@huawei.com> 1766371871 +0800

修复注释错误

Signed-off-by: xzken <zoulinken1@huawei.com>
Zx'tree 5d3c56621840dbdb3d1177affbda010893c1bd97
parent 6bd6c25adb943130e5c8910450c58dfd05048a2e
author yylong <yeyinglong@hisilicon.com> 1766146095 +0800
committer yylong <yeyinglong@hisilicon.com> 1766368688 +0800

修复注释描述错误问题

Signed-off-by: yylong <yeyinglong@hisilicon.com>
iix}tree d7afffb2ae6019aac7bca8ba6d193350c4fe415a
parent 5223f4f7d34aeb2cac7670b87e288d7b32c70e8e
author fangzhiyuan1 <fangzhiyuan5@huawei.com> 1765970827 +0800
committer fangzhiyuan1 <fangzhiyuan5@huawei.com> 1766221926 +0800

Add SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING to List&Grid

Signed-off-by: fangzhiyuan1 <fangzhiyuan5@huawei.com>
Change-Id: I954c785db43a9760b845a6f47e4dd78fd013a6cc
uy:xM
0F9ERI&I3#"L҉V1]x{@pZԳ!DY %j*s&KJF(DO+czȳ>76K}2]}E }0{Qt[\7Q6g.O?_fQAxM
0F9ERI$	f2j<UҊN<'Y"&gd4:U-pN])=(@)rJԶm1v@=Kuux>"RsfPmjiBgmO*\J/TəxItree 91a9d187dec3fb6aefd43a93da306f16df57d0da
parent 598bb63e698de697891e3e3c147ddb835ecd2cca
author zhaona45 <zhaona45@huawei.com> 1764932108 +0800
committer zhaona45 <zhaona45@huawei.com> 1766207713 +0800

add dvaudio mimetype

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Change-Id: I97d2976c9ec5b54acb2805e42293dd8c9d7924ab
?md˔xtree f4235aaeb7e7ff6c5ea90b065813c184931822da
parent 73454f8eea7071c0b533c488b27d06a41064f7b1
author zhaona45 <zhaona45@huawei.com> 1766158503 +0800
committer zhaona45 <zhaona45@huawei.com> 1766158503 +0800

sync

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Mxtree b62ea4ee7a680b49118eb36187c7ed3e3c6265c7
parent 1c213450facb6b900bc13cd4742b786c6db7b7f0
author zhaona45 <zhaona45@huawei.com> 1766156934 +0800
committer zhaona45 <zhaona45@huawei.com> 1766156934 +0800

sync

Signed-off-by: zhaona45 <zhaona45@huawei.com>
wMNxtree aef3296e6088bf46076c47c5cbdcc8adb7db6b79
parent dee6af8aa41181993033474db3cae911ffb31ec0
author zhaona45 <zhaona45@huawei.com> 1766154404 +0800
committer zhaona45 <zhaona45@huawei.com> 1766154404 +0800

fix

Signed-off-by: zhaona45 <zhaona45@huawei.com>
O1xtree 6695fc3f33746dde4ed1c31082fa855eeffcf8b9
parent c7c85587bacaaceaf5fee73afd8e077bf8907060
author zhaona45 <zhaona45@huawei.com> 1766154117 +0800
committer zhaona45 <zhaona45@huawei.com> 1766154117 +0800

fix

Signed-off-by: zhaona45 <zhaona45@huawei.com>
TOxtree 5870e139f437d9061a55d4af13146c5dd33e530b
parent 799b6a2440731268d73107638eba9c966871a9ba
author wxb_code <wangxiaobai@huawei.com> 1766138150 +0800
committer wxb_code <wangxiaobai@huawei.com> 1766138150 +0800

ukeySDK配置

Signed-off-by: wxb_code <wangxiaobai@huawei.com>
gxXBx=tree 2394e959ae3c2803e4b33656302a9b5ca67a2e2a
parent 6bd6c25adb943130e5c8910450c58dfd05048a2e
author weixin_43102524 <18328528985@163.com> 1766134620 +0800
committer weixin_43102524 <18328528985@163.com> 1766135844 +0800

修改pip 模块名与对外文档一致

Signed-off-by: weixin_43102524 <18328528985@163.com>
dQxtree 628bb41b21e93c66054b84ba929aff7c7a3a5b47
parent 3c477e2b14e39658c85ce841124fbff1c7b10d0d
parent fd04cb8fbbb328f7bb7c3c4ea0c64b9f1576d474
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766121055 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766121055 +0800

!4150 merge master into master

NDK轨道信息key值

Created-by: huqinglong
Commit-by: huqinglong
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2687
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4150|xBtree 188dd0f3e1178b90887983fafb0f437780b532f9
parent a35e1c53f8e860c0c30160f4e8e79d32d90c23cc
author wangqiguang5 <wangqiguang5@h-partners.com> 1765265195 +0800
committer wangqiguang5 <wangqiguang5@h-partners.com> 1766070870 +0800

新增获取播放质量接口

Signed-off-by: wangqiguang5 <wangqiguang5@h-partners.com>
qxtree 06ac9883351f409f509259bba923cf8087dd7dd6
parent 482877d8c5575d3c39b630fa511c584e29fd6d6c
author zhaona45 <zhaona45@huawei.com> 1766050848 +0800
committer zhaona45 <zhaona45@huawei.com> 1766050848 +0800

update parameter type

Signed-off-by: zhaona45 <zhaona45@huawei.com>
]TxCtree 4abe690428f6ef1748b673043654d62681b941c1
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author Zhang-Dong-hui <zhangdonghui5@huawei.com> 1765336580 +0800
committer Zhang-Dong-hui <zhangdonghui5@huawei.com> 1766044622 +0800

change since version from 23 to 22

Signed-off-by: Zhang-Dong-hui <zhangdonghui5@huawei.com>
Uex!tree 45c9c87d73eff94c68e05f88efc629f068172cc3
parent 29af30eb29dfa5ee4061c3334ae1a1132ea3ba2e
author yanghang <kongwei13@h-partners.com> 1766039712 +0800
committer yanghang <kongwei13@h-partners.com> 1766039712 +0800

fix: delete syscap

Signed-off-by: yanghang <kongwei13@h-partners.com>
R[Mx#tree a08b716f6f274762e46e672d508a5af48bde4361
parent ea13978198d383bfcce215d327213b6d0bc5a1a0
parent e85362b26626a22b882026b647d98ff87f3453e4
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766029407 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1766029407 +0800

!4326 merge master into master

修改接口引用库文件错误

Created-by: jjl10086
Commit-by: jjl10086
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4326hhxAJ1D9E2NL&{q22? (
ԣx(J$ %UYqR)Y}x-hs%V6,ܒcfs\oJ:q}{4b	L.Iuguν6M}WxM1 ]Q7~=P@d9#=J@43s0kXJ!H΁7{B,ը-S)"x "Lg
!ڈn>WZܯx6"ۺ;g۫9CZ~2u[0~6d
ʗ&Ѷ٤+>:Ij=ߗ^xtree 8141a1f66edd642f43e7c3bf0e3d391173b0d970
parent 1b492c2a11cf5152dcf46c7171ce6778a4fbe57c
author liufei <liufei225@h-partners.com> 1766021433 +0800
committer liufei <liufei225@h-partners.com> 1766021433 +0800

remove blank line

Signed-off-by: liufei <liufei225@h-partners.com>
*VxM
09ERdR`ҙhoo̓k`@l>'s@b^-Jm'=[%9"%81+ypN'zT_njUqGIƨNckVmSn
ws)]~~PQǜxK
1D9E2Nf	;a>;WE=G*R@9F)x.I GPԊUM{C'ǽeQDg`/T![{,UOqovSL)sIL4Ft[j[36Q6gRJGSSSx:tree 88cb1d08771d183eecbb6dc6747c2737d6ca0181
parent 3a3783d371161f4f863216fbb6f1c8053d9e336b
parent 28271ac1e3f790d3b1d90ca36088ab22ecc3bdc6
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765968936 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765968936 +0800

!4393 merge 1217 into master

补全错误码说明

Created-by: dingpy
Commit-by: dingpy
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）
补全错误码描述

### 描述（做了什么，变更了什么）
补全错误码描述

### 自检结果（结果截图添加到下面）
- [是] 是否通过C语法扫描
- [是] 是否通过注释规则扫描
- [否] 是否更新json文件
- [是] 实现代码是否已经合入
- [是] 目标是否已经添加到build仓ndk依赖目标里
- [是] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [否] 不兼容
  - [是] 是否经过评审

### L0新增用例自检结果
- [是] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [是] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

https://gitcode.com/openharmony/docs/pull/120850

See merge request: openharmony/interface_sdk_c!43935]xktree 06c11a47b4584babeb923c1b247d7abc2370d1a5
parent 29e6ee6d00ed404692f7b974f42dbfcbf2df004b
author zhangwt3652 <zhangwenting15@huawei.com> 1765871045 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1765966268 +0800

混合播放下静音建议

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
Change-Id: I6d28df855e644665ae28a07125aa8b3b612beeaf
zzx]
!F]1Ոh@`0}Bz:9|qan&8` z<	
=4i yV+is60=im#ϾlVB/?/(JOzvV3pBwevzu^Zk%><>kVSx>tree e090fe2da77a5853a9e86aa67fdf89cbf7ffc0c9
parent 0811542992e385a1bc61df610341dfab93b0f723
parent 48d3ef5da94cf7803168cd04c840bda06a85b4a9
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765960884 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765960884 +0800

!4353 merge master1210 into master

SetWindowPrivacyMode注释修改

Created-by: m0_53886083
Commit-by: 卢宇豪
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3349

### 原因（目的、解决的问题等）

SetWindowPrivacyMode注释修改
### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4353ZӏН'x}tree 29dcd45b73ac6390f4d33120a6762f88214ae2da
parent 866b3d82d29214421db4f86997bf49ba6b0c99bc
author liufei <liufei225@h-partners.com> 1765455089 +0800
committer liufei <liufei225@h-partners.com> 1765956215 +0800

feat(graphic): add OH_Drawing_GetFontPathsByType API

Introduce a new API to obtain an array of font paths from the system based on
the specified font type. This function returns a pointer to an array of
OH_Drawing_String representing the font paths, and updates the path count via
output parameter.

The new API is also registered in the NDK JSON manifest for version 23.

Signed-off-by: liufei <liufei225@h-partners.com>
VRx)tree 8fd7f201a48f44627f6b0bc231c86d69c00f8100
parent 10a266ffec6ccd2ac9a5fa05a3202dcd73c66025
parent ced6d80e079ed43d06b578dd2bcaf9109977bc12
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765948959 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765948959 +0800

!4312 merge textdirection into master

支持textDirection

Created-by: lijuan124
Commit-by: lijuan124
Merged-by: openharmony_ci
Description: ### 相关的Issue
支持textDirection

### 原因（目的、解决的问题等）
支持textDirection
### 描述（做了什么，变更了什么）
支持textDirection

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）N
### L0新增用例自检结果
- [] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2823

See merge request: openharmony/interface_sdk_c!4312xVxktree daff97d29f036b1a9abde3caacaeb495f792d542
parent 6e35603d3db396f3986a2c7839b47fe2006ab428
parent ffd5237ffe09ed651ba9460b847c048e660b0d9d
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765946461 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765946461 +0800

!4379 merge IMAGE_ANTIALIASED into master

image edge antialias

Created-by: gcw_X57qWiFx
Commit-by: lizhan
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因 新增需求image支持位图设置边缘抗锯齿


### 描述 新增需求image支持位图设置边缘抗锯齿


### 自检结果
![image.png](https://raw.gitcode.com/user-images/assets/4379443/316338f0-f910-45da-96a3-b37faca874c3/image.png 'image.png')
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估https://gitcode.com/openharmony/docs/pull/117666
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4379т!xtree 8b715336ab4c4214f12f840d5ec4363fcdba48d7
parent 456beffea8f8a68f29fdf3f8e951d508615939ec
author dingpy <dingpanyun1@huawei.com> 1765417083 +0000
committer dingpy <dingpanyun1@huawei.com> 1765944148 +0000

补全错误码说明

Signed-off-by: dingpy <dingpanyun1@huawei.com>
_Ixhtree 92ef71b5699636f106e89b1730414157d518d713
parent 29e6ee6d00ed404692f7b974f42dbfcbf2df004b
parent 911b8ceefef46f9b19946a872b396864db397dbd
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765943056 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765943056 +0800

!4376 merge hidebug into master

新增SetCrashObj接口

Created-by: leiguangyu
Commit-by: leiguangyu
Merged-by: openharmony_ci
Description: 相关的Issue
原因（目的、解决的问题等）
hidebug新增SetCrashObj接口
自检结果（结果截图添加到下面）
![image.png](https://raw.gitcode.com/user-images/assets/4379443/80659b44-172d-44be-a969-caac269132f0/image.png 'image.png')
是否通过C语法扫描 是
是否通过注释规则扫描 
是否更新json文件 是
实现代码是否已经合入 是
目标是否已经添加到build仓ndk依赖目标里
兼容性影响评估，如有影响请写明（Y/N）

L0新增用例自检结果
是，有新增L0用例，且完成自检

API参考文档影响评估（提供docs仓pr链接）
是，已刷新API参考文档
否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!437699nx*tree cfccb38ad9041f3f9785b6271086a38f16611bf1
parent 29e6ee6d00ed404692f7b974f42dbfcbf2df004b
author lijuan124 <lijuan124@h-partners.com> 1765876761 +0800
committer lijuan124 <lijuan124@h-partners.com> 1765876831 +0800

支持文本布局方向

Signed-off-by: lijuan124 <lijuan124@h-partners.com>
xecx;
@EYGD܃+xycH]nHp;DR!Z&$S%x\"@M*)=N0B)ȹ1vj;zcj^C.7meQnvV;!9`uwr}=oAȢ^66"&"p_xM1F9ERT"eRn#%ܹpeD<x<_eJVz6S:jM$\Λ"G+Zc03%@CbH6Pnʏi>j̕4TG,	x 1U[
~8ޮ"WqW	_xtree d87aa566fa735c60b5a2c88880017f76dd74e218
parent 29e6ee6d00ed404692f7b974f42dbfcbf2df004b
author kw <wangyuqi30@huawei.com> 1765027621 +0800
committer kw <wangyuqi30@huawei.com> 1765869079 +0800

时延获取接口

Signed-off-by: kw <wangyuqi30@huawei.com>
Vxtree c66e7f327affd5d22a80e631a443310f11128852
parent 7258a05b58a321739fea1477db3c7f75e3be596b
author zhaona45 <zhaona45@huawei.com> 1765867552 +0800
committer zhaona45 <zhaona45@huawei.com> 1765867552 +0800

update OH_ImageBufferData

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Uqsx=tree c5752f79cb81ca00a039773d6d460eb3ed633be1
parent d75dbe855d92c0e2a9bf0592eea5665bc42b7ace
parent fc24d8c5b79a086c8991997f197e675725f2d4da
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765804256 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765804256 +0800

!4381 merge master into master

媒体库NDK接口支持yuv端到端开放

Created-by: weixin_66098672
Commit-by: weixin_66098672
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3370

### 原因（目的、解决的问题等）
媒体库NDK接口支持YUV端到端能力开放
【1】三方可以保存YUV对象
【2】三方可以获取YUV对象

### 描述（做了什么，变更了什么）
【1】新增枚举：MEDIA_LIBRARY_IMAGE_HEIF = 2
【2】新增接口：OH_MediaAssetManager_QuickRequestImage

### 自检结果（结果截图添加到下面）
- [√] 是否通过C语法扫描
- [√] 是否通过注释规则扫描
- [√] 是否更新json文件
- [√] 实现代码是否已经合入
https://gitcode.com/openharmony/multimedia_media_library/merge_requests/9855
- [√] 目标是否已经添加到build仓ndk依赖目标里
- [√] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
- [×] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [√] 是，有新增L0用例，且完成自检
![image.png](https://raw.gitcode.com/user-images/assets/4379443/1fcee40b-ecb8-4481-9c37-a812894356d6/image.png 'image.png')
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [√] 是，已刷新API参考文档
header仓：https://gitcode.com/openharmony-sig/interface_native_header/pull/2886
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4381Dj}ixttree cda84a3d0470f65b88c6bee7c79283f623b8361c
parent 2a4a3b16441b59d64a05444d5e1e242444d4c4fc
author lcy_lovebug <lichengyi5@h-partners.com> 1765177547 +0800
committer lcy_lovebug <lichengyi5@h-partners.com> 1765788516 +0800

分组密钥NDK接口新增错误码

Signed-off-by: lcy_lovebug <lichengyi5@h-partners.com>
Change-Id: If30ef6d607f079cf695b4b60f39a58a93bcf3d29
N<xNtree eeb5ff4bb97879e649ed7b82743aa3962c0a8f4e
parent 361ac4c3153d1335ceda99c7cd9094d25063123e
author weixin_66098672 <wangzhigang56@huawei.com> 1765775040 +0800
committer weixin_66098672 <wangzhigang56@huawei.com> 1765779161 +0800

媒体库NDK接口支持yuv端到端开放

Signed-off-by: weixin_66098672 <wangzhigang56@huawei.com>
PtUxAN09E4Mb!8 rcѤR=9b6#ͼ~)sq8|Ǽ s2RUATaEpiZV| 0E8o.=CNܮU;A>8tއ/셋cٲ|,1o
ߚmyKf^xOtree ea233a4a184080cadcd577183bd2414a1e3c0794
parent 267f9063806bfeed57e5ad1b6d69f1d41871f445
author lizhan <lizhan11@h-partners.com> 1765700574 +0800
committer lizhan <lizhan11@h-partners.com> 1765700574 +0800

image edge antialias

Signed-off-by: lizhan <lizhan11@h-partners.com>
Change-Id: If9d1ca6b3454b3caf40fded7e020cf4dbd93d9ca
ogLx!tree 0706e9232a14614ce0cf9f318cc9fb4a04f5e298
parent 73f12ec00bff0e66b5ad83c5474af5c1bf992a69
author xzken <zoulinken1@huawei.com> 1765615004 +0800
committer xzken <zoulinken1@huawei.com> 1765615004 +0800

update: 更新文件 libace.ndk.json


Signed-off-by: xzken <zoulinken1@huawei.com>@_x!tree 8b7b2da4f5f3507b939097062ee8f5dc31f0dcf6
parent e308ea038fad778d22040d56d53acd08c2f184d2
author xzken <zoulinken1@huawei.com> 1765614100 +0800
committer xzken <zoulinken1@huawei.com> 1765614100 +0800

update: 更新文件 libace.ndk.json


Signed-off-by: xzken <zoulinken1@huawei.com>(_x tree 58d8d5b3c89e66340615c18b1dd523cfac217f1d
parent 9275d20f76d375e2f16f5ce67c31b04395b1b66a
author xxngwang <wangxiaoxiang11@huawei.com> 1765612059 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1765612059 +0800

update API23
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
Zx"tree ad0cc5ac2e64472d007f40f6abe7466621f8d7f6
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author LeiiYB <leiyanbo@h-partners.com> 1763471841 +0800
committer LeiiYB <leiyanbo@h-partners.com> 1765593661 +0800

add comments for batchInsert

Signed-off-by: LeiiYB <leiyanbo@h-partners.com>
q[ox-tree 9852c810a3fbbf519c7254d19b705c6100b95a04
parent e7fdf5693645c854f19c79c76eb5850ed64b8daa
author lixinsheng2 <lixinsheng2@huawei.com> 1765506366 +0800
committer lixinsheng2 <lixinsheng2@huawei.com> 1765592660 +0800

移除不必要的头文件

Signed-off-by: lixinsheng2 <lixinsheng2@huawei.com>
-hx[tree d2eef9e785961e1f41bf46b255b2456c3ed737f9
parent 21819beb94fa46bc65c11037e9b9b4fb9ba989ef
author leiguangyu <leiguangyu1@huawei.com> 1765536944 +0800
committer leiguangyu <leiguangyu1@huawei.com> 1765536944 +0800

新增SetCrashObj接口

Change-Id: Ie5df98aa77d1a430a43400de82c8cc1924a047fe
Signed-off-by: leiguangyu <leiguangyu1@huawei.com>
qzxtree 2b58ee2de7e446b016b3d641aa1c4389e45da4fb
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author xzken <zoulinken1@huawei.com> 1765420557 +0800
committer xzken <zoulinken1@huawei.com> 1765532007 +0800

提交节点转换能力接口

Signed-off-by: xzken <zoulinken1@huawei.com>
d)xEtree 1f4fc6850441070eb1ac13da32afa79583fc568d
parent 53355d09e1ae0340db5c92a1362d72d4c183e13f
author jichunjiang-30079441 <jichunjiang1@h-partners.com> 1765530422 +0800
committer jichunjiang-30079441 <jichunjiang1@h-partners.com> 1765530668 +0800

0702 sync

Signed-off-by: jichunjiang-30079441 <jichunjiang1@h-partners.com>
?c&Qxtree 45d31ce95ede8c5d527657bc9db0dfe8da2a40ca
parent e7fdf5693645c854f19c79c76eb5850ed64b8daa
parent 2417fcc58759904500c7e99382e2d326fc154fe2
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765529248 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765529248 +0800

!4273 merge cherry-pick-mr-4105-1761724619901-auto into master

motionPath

Created-by: yuanlin94
Commit-by: hehongyang3
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/121252

See merge request: openharmony/interface_sdk_c!42734sśx[tree 1c3b1d5964fff0d58e7e5b978269bae60aa8b628
parent faf2f796c75b73353c8649383f7049b01ffdd5e2
author leiguangyu <leiguangyu1@huawei.com> 1765527718 +0800
committer leiguangyu <leiguangyu1@huawei.com> 1765527718 +0800

新增SetCrashObj接口

Change-Id: Iebee6c7e208fe280293e6f08c1c5dfdafc8e22f5
Signed-off-by: leiguangyu <leiguangyu1@huawei.com>
qx[tree 016d2f08af0b858ada13663d2ed08ddb094e7884
parent a99edacf60dc70e271b0163633e0be09c36d5b95
author leiguangyu <leiguangyu1@huawei.com> 1765522009 +0800
committer leiguangyu <leiguangyu1@huawei.com> 1765522009 +0800

新增SetCrashObj接口

Change-Id: I04727e9dd714d04468df7e0a61a84aa4c6c788c7
Signed-off-by: leiguangyu <leiguangyu1@huawei.com>
epx[tree d6645127e613316b1d752917a4b28babc3c27ea4
parent e9566efebabe2109fd6a96651c82171e4238bb32
author leiguangyu <leiguangyu1@huawei.com> 1765521186 +0800
committer leiguangyu <leiguangyu1@huawei.com> 1765521186 +0800

新增SetCrashObj接口

Change-Id: If378d3d009420d7175a7af82de7c0bec9be9d4be
Signed-off-by: leiguangyu <leiguangyu1@huawei.com>
ޫpx[tree 4d00906b2fc9fa15101b36ad2faa0c5cc708352f
parent 8236482a5fe61aa51e37f7edb9533b3d670b0fad
author leiguangyu <leiguangyu1@huawei.com> 1765520500 +0800
committer leiguangyu <leiguangyu1@huawei.com> 1765520500 +0800

新增SetCrashObj接口

Change-Id: Id85d6d8e672a1884b3dec3267898aad12fef3507
Signed-off-by: leiguangyu <leiguangyu1@huawei.com>
{dpxPtree 45d31ce95ede8c5d527657bc9db0dfe8da2a40ca
parent e7fdf5693645c854f19c79c76eb5850ed64b8daa
author hehongyang3 <hehongyang@huawei.com> 1762132407 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1765510185 +0800

motionPath

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
Change-Id: Id6f36ed08bf5047b5e91d318338ca1e6e97e4cf7
Lhܐx@tree 29f5572460f156a8a613fc8fd133ad052443fb35
parent 866b3d82d29214421db4f86997bf49ba6b0c99bc
author wangjiaqiang <wangjiaqiang11@h-partners.com> 1765452426 +0800
committer wangjiaqiang <wangjiaqiang11@h-partners.com> 1765452426 +0800

修改addtogroup标签

Signed-off-by: wangjiaqiang <wangjiaqiang11@h-partners.com>
kxtree cefb88a4ee616c623cb8aeeaa92af9b708e6edaa
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author sunchao <sunchao106@huawei.com> 1765337546 +0800
committer sunchao <sunchao106@huawei.com> 1765440567 +0800

YUV生态开放新增接口

Signed-off-by: sunchao <sunchao106@huawei.com>
ORbȑx=
0"TTD'HMFDg psp2R< Enѡ*.HW*Τ:/6  R7:L;+UFzb:ZtʈҪTr9Av=|0T\I:b12u3 \_[~h	E,a+;_ߕRx%tree b9524c2b1aa44e42fdb30a8e1c16e3de3216a26c
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
parent 8d3f796a9ec8c4fe7c3f7fd4a790cf6034e612e6
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765429430 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765429430 +0800

!4335 merge master into master

api level校验优化

Created-by: li-xiang335
Commit-by: 李想
Merged-by: openharmony_ci
Description: ### 相关的Issue
[api level校验优化](https://gitcode.com/openharmony/interface_sdk_c/issues/3335)

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4335υ4xtree 8020bd224827ff78354218f76130afb30609c989
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author liuzhijie2 <liuzhijie10@huawei.com> 1765418842 +0800
committer liuzhijie2 <liuzhijie10@huawei.com> 1765418842 +0800

api 23 to 22

Signed-off-by: liuzhijie2 <liuzhijie10@huawei.com>
ZVxAn  ＂{
0ݪ<bک^G؜BUPAJD1 +{,ZViÆINJ"IOG왡0	h6~UUV޷֦y+7Y^k|X)z!Ι^1v_n{3|7CW=3E [$Yx[j0 u/	JI$rCn_w`fFg-ɣ.]8̨$6qT[\"*1NEHABnT:'ׯr6pm^ǲ'06DxQku:aKWm\\oDNuK]]x6tree 4782dc3f53e5dbc15810eb043126b5825fad5913
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author l00957130 <linzuoquan1@huawei.com> 1765351238 +0800
committer l00957130 <linzuoquan1@huawei.com> 1765351238 +0800

修改json文件中，adopt接口的版本

Signed-off-by: l00957130 <linzuoquan1@huawei.com>
Rjjx?tree 43b4f0ddbc241330d9c15d9a31a42446e145b539
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author zhanghang <zhanghang160@huawei-partners.com> 1763538623 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1765349372 +0800

feat:container_picker

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
fڕxtree 6db34ee758e04034e756625a653c9e5f2eea2f23
parent 28cba4f3ad1e55b5ba53651bbe29f0cd630943d0
author 李想 <lixiang380@huawei.com> 1764925604 +0800
committer 李想 <lixiang380@huawei.com> 1765347405 +0800

api level校验优化

Signed-off-by: 李想 <lixiang380@huawei.com>
,^x
tree 7447c4873880a0de3e3790feff9ca3ff459f9c3c
parent 1608fc9cd0fa2dd1c15ba1005d3c6bbb9601e5ea
author 卢宇豪 <luyuhao6@huawei.com> 1765336990 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1765336990 +0800

change1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
[xtree 9df5f9a9d62f60ae4b14105651b02b51404d191b
parent ed6d2ad6a9d992a80a1251efbfc996ec3b114bfc
author wangrui <wangrui383@huawei.com> 1765279962 +0800
committer wangrui <wangrui383@huawei.com> 1765279962 +0800

del softbus syscap

Signed-off-by: wangrui <wangrui383@huawei.com>
ԾVxQ
0DsmMd
M$7GyoU FqĒ$)8b@zQܴh ` }& 2Q42mm.U{K/\s:ozz3ui_Rk,,JݖGޗQ}nZbxK
0EYER? g+6)!{qrιP4m|KI KE֩pdrN@Y#RX`(&F"~kS?Pl-c,˅rk0cen$о#
7rP9'_y"^x]
0sKn~*"H
MJIPoo 2|3e',"F5QY{b;"`phjLh2]{hOӳ:Wz`V-wmҌt[RL~MBܖGen~_oXΒxKj1D:ơ	CZVf#BBvţ^Uoa0Q+뒜GCH*qȞ'6.]Z 33,4YY&Bѷd}rI&ulXmTOS`
 &=ާ/] utɭJ,[5k|,P]xQn N@UUCP-Į,\+G;7wflRsɎu!gv&H(" heARg0:dr0F]OOߣ堓)ǷCP^)1oqA*JtW=xM
09E21?w 2I'I)ۛ#x{ue1x6%(p-40bsDMHКI:c|L=(%hSYe9c{ZxM[i>E#D@ k邖YG!n#ؕ92'+?XTxCtree 2e34bcc7dd3750a22990746f8b25f28323c540fa
parent 90612f5ab1e4555e4bd13c4d5ac020659a95ee79
parent c578bed32ca615a127e7d0b46ae406eb421fb3cd
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765202565 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765202565 +0800

!4347 merge master into master

新增API

Created-by: xxngwang
Commit-by: xxngwang
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）
新需求，新增变声，空间渲染，变速变调API

### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2863
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4347Ěxtree 2e34bcc7dd3750a22990746f8b25f28323c540fa
parent 90612f5ab1e4555e4bd13c4d5ac020659a95ee79
author xxngwang <wangxiaoxiang11@huawei.com> 1765195205 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1765197339 +0800

新增API
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
4[x?tree c4624e083900eb80d82c6286dfc9e513bbf6e12b
parent 2a4a3b16441b59d64a05444d5e1e242444d4c4fc
author chen-qiao-yi <chenqiaoyi2@huawei.com> 1765185634 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1765185634 +0800

增加自动处理旋转角的创建接口

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
NsxOtree e39fef957f290c0b6c690da05a872baa0f3653e2
parent c8dafe725aaf4f4f47a18a43d17d87a8a7046b2d
author lianyuanqi <lianyuanqi@h-partners.com> 1763690777 +0800
committer lianyuanqi <lianyuanqi@h-partners.com> 1765161975 +0800

注释添加：在UI线程中使用OH_ArkWeb_GetNati…

Signed-off-by: lianyuanqi <lianyuanqi@h-partners.com>
{Dx/tree e695235dd66a489ba1644a77651df20835553b54
parent 6f21b0d5abaf9757219b977f024020bd7c3450f3
author zhao-linglan <zhaolinglan1@huawei.com> 1763609618 +0800
committer zhao-linglan <zhaolinglan1@huawei.com> 1765020161 +0800

add attachWithUIContext

Signed-off-by: zhao-linglan <zhaolinglan1@huawei.com>
5_}Rx#tree c78cbffe8e175428727bec474479ddadf5fd400c
parent bc49713c7de7fda61d42716c834d6642b74deac2
parent b7a31ce0e86dafe19fed24eef3d53552da72e249
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765014527 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1765014527 +0800

!4338 merge cr_12_5 into master

abandon interface

Created-by: RuiChen_01
Commit-by: RuiChen_01
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3339

### 原因（目的、解决的问题等）
废弃接口

### 描述（做了什么，变更了什么）
废弃接口

### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
- [Y] 是否通过注释规则扫描
- [Y] 是否更新json文件
- [Y] 实现代码是否已经合入
- [Y] 目标是否已经添加到build仓ndk依赖目标里
- [Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [Y] 是，有新增L0用例，且完成自检
- [] 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4338Wx>tree 4de3820b35456ed98dd1fbddc595da0f9f76f7b2
parent dcee0dba19f954ec7360d6a6e818e1793f3f5a11
author mobHot <hulei100@huawei.com> 1765012943 +0800
committer mobHot <hulei100@huawei.com> 1765012943 +0800

fix some errors

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: I235813b6bbb850f55301a597da39e5dcea3e04c2
/o`xItree e3cb12a2d012c4c68fc99dc5720c0ec9ffb257c5
parent bc49713c7de7fda61d42716c834d6642b74deac2
author mobHot <hulei100@huawei.com> 1765009737 +0800
committer mobHot <hulei100@huawei.com> 1765009984 +0800

add the ndk interface code

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: I1b0a8f19336eafd8f9be82150118d8074fb06b6b
9cyxetree 0b1b7185a1096d61fff9909e6a0e7c6665a808d4
parent bc49713c7de7fda61d42716c834d6642b74deac2
author zhaona45 <zhaona45@huawei.com> 1764989354 +0800
committer zhaona45 <zhaona45@huawei.com> 1765005120 +0800

get and modify imageproperty with type interface

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Change-Id: Ic12746e8537987496e95cb9c59cff9c88395197d
ñm\xstree 8619c5da406cb6c8535ba03b58b782289bbd0690
parent 5d498992bb7e6e7b97fe33fe72dcb2c3ff1ebdb7
author ningqicheng <ningqicheng@huawei.com> 1764205955 +0800
committer ningqicheng <ningqicheng@huawei.com> 1765001397 +0800

napi提供新接口napi_throw_business_error

Signed-off-by: ningqicheng <ningqicheng@huawei.com>
Change-Id: I27208fe7cae7d05bbf8c0eccecdee77c1a3d7ceb
~xtree 92fc058a902e4fdb36d9f16d1b0c718be0d4a07e
parent 28cba4f3ad1e55b5ba53651bbe29f0cd630943d0
author RuiChen_01 <chenrui193@huawei.com> 1764928590 +0800
committer RuiChen_01 <chenrui193@huawei.com> 1764928590 +0800

abandon interface

Signed-off-by: RuiChen_01 <chenrui193@huawei.com>
Wx:tree 92c2a1f27c88bb606e42d8336f8bf876fb2beac7
parent 28cba4f3ad1e55b5ba53651bbe29f0cd630943d0
author lixinsheng2 <lixinsheng2@huawei.com> 1764923779 +0800
committer lixinsheng2 <lixinsheng2@huawei.com> 1764923779 +0800

Correct the name of the deprecated label

Signed-off-by: lixinsheng2 <lixinsheng2@huawei.com>
teAxztree e9c934254882b25bd00039209659bd6d30381037
parent 28cba4f3ad1e55b5ba53651bbe29f0cd630943d0
author wangtao <wangtao487@h-partners.com> 1764403351 +0800
committer wangtao <wangtao487@h-partners.com> 1764922765 +0800

输入框新增OH_ArkUI_TextContentBaseController_ScrollToVisible

Signed-off-by: wangtao <wangtao487@h-partners.com>
Change-Id: I5940708f44fdb2f2212a4707e2e4882aea73579e
/G~ʞQxtree ceff7604403f35e402b3bb4f58ea5b1b8b008f0d
parent dd3c98c33589018e5d85a88a1f1330c139d47c4a
parent 1dd96d5c600f60583d793ba4aeba48a2df84c284
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764909716 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764909716 +0800

!4332 merge master into master

iso开放 NDK接口定义

Created-by: wandererhh
Commit-by: 贾昊炜
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

https://gitcode.com/openharmony-sig/interface_native_header/pull/2856

See merge request: openharmony/interface_sdk_c!4332xBtree 899149345d5fd3f0a7821732c3c9b0bf5b71954b
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author ZhangLiang <zhangliang335@h-partners.com> 1764210921 +0800
committer ZhangLiang <zhangliang335@h-partners.com> 1764904048 +0800

deprecated OHOS private interface

Signed-off-by: ZhangLiang <zhangliang335@h-partners.com>
eȞx>tree 8c8c61875c7c54b62a210811c07992ca241c77c4
parent 24bc3ea52fd009796273c6f211859a34d3fbe6af
author yuanlin94 <linyuan25@h-partners.com> 1764903478 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1764903478 +0800

【ArkUI】控件截图支持广色域配置

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
qxtree 19d613a987e005674a621cf805c288dbdc2a7211
parent 7d7499e65799b2d131a1fb50b8fcf3e68c8407b1
author owen_creeper <ouhanjun3@huawei.com> 1764868994 +0800
committer owen_creeper <ouhanjun3@huawei.com> 1764868994 +0800

add flush

Signed-off-by: owen_creeper <ouhanjun3@huawei.com>'+Wxtree 28004b843fa6f5dacc5ca7f693b98d16903aa770
parent 5e15d9a0cac90271c966d0eb461c4b8deb7c0755
author owen_creeper <ouhanjun3@huawei.com> 1764868668 +0800
committer owen_creeper <ouhanjun3@huawei.com> 1764868668 +0800

modify api

Signed-off-by: owen_creeper <ouhanjun3@huawei.com>aGYFxgtree a83a9345a9b8a0465917eaa8fcc0e8c8040554ef
parent 2a4a3b16441b59d64a05444d5e1e242444d4c4fc
author wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1764053070 +0800
committer wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1764849241 +0800

普通文本组件支持自定义拖拽时的背板颜色

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei-partners.com>
Change-Id: I25cb0faa1b3bab0b3a5bf2373e505aaf346a38a2
5x"tree c1f47ac6d153245fe2adc43085b1053bc0ea6207
parent 2a4a3b16441b59d64a05444d5e1e242444d4c4fc
author 贾昊炜 <jiahaowei1@huawei.com> 1764838619 +0800
committer 贾昊炜 <jiahaowei1@huawei.com> 1764838619 +0800

iso开放 NDK接口定义

Signed-off-by: 贾昊炜 <jiahaowei1@huawei.com>
 hՑx1tree 220a24edb43c419649f2c2c37f8ce5ea3a943320
parent 3c883d0279d3a5e7aa6bbd417e14f8b974b4bd2b
author l00957130 <linzuoquan1@huawei.com> 1764773985 +0800
committer l00957130 <linzuoquan1@huawei.com> 1764776148 +0800

修改adopt相关接口的since版本

Signed-off-by: l00957130 <linzuoquan1@huawei.com>
fxktree 1f10109d4b6767fa48525c758b85bb3170b460b0
parent e3f3d91f3e99d8d1dd005adf6cc1be1d094030bf
author 常佳兴 <changjiaxing2@h-partners.com> 1764748415 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1764768800 +0800

修改接口名和注释

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: Ia8ee844822d47b9cc6afea7230631273ae93b805
xQtree 734b1a4f5001a0f6f65b419163ef39d67c593684
parent 56c755b19a6da23c2858346b0e87016817ee474b
author FTL1ght <zhangyubao@h-partners.com> 1764756597 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1764756597 +0800

Fix interface

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I2813a5c01a00b53253704f1261bd117adb3241a5
&dxQtree 03ea59fe5d2aac1bb1a8711020247d73dbe3d0cf
parent 3fb9e319c2ddb4ac97df72d68541c24970a380d3
author FTL1ght <zhangyubao@h-partners.com> 1764753482 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1764753482 +0800

Fix interface

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I9074155c15472cf06d80f1457edbc6ed876863b7
VgCxtree 47ea7af14d553a9ff0baab05d73ac3fac686b9dc
parent 5e89ace193ab388c83d8933076c11d394ce07073
author jjl10086 <1845426516@qq.com> 1764748881 +0800
committer jjl10086 <1845426516@qq.com> 1764748881 +0800

修改接口引用库文件错误 

Signed-off-by: jjl10086 <1845426516@qq.com>\jxStree 80d3e23f37a2e6150ce639de0319b7d56de34ef2
parent 00a114b0302282eb219cd76235ca8d43e9ac742a
parent 598bb63e698de697891e3e3c147ddb835ecd2cca
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764743034 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764743034 +0800

!4317 merge audio1125 into master

add audio codec

Created-by: zhaona45
Commit-by: zhaona45
Merged-by: openharmony_ci
Description: ### 相关的Issue
[add audio codec](https://gitcode.com/openharmony/interface_sdk_c/issues/3324)

### 原因（目的、解决的问题等）
新增3个音频解码的mimetype，用于创建音频解码器。

### 描述（做了什么，变更了什么）
新增3个音频解码的mimetype，用于创建音频解码器。

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x]  是否通过注释规则扫描
- [x]  是否更新json文件
- [x] 实现代码是否已经合入
https://gitcode.com/openharmony/multimedia_av_codec/pull/6888
https://gitcode.com/openharmony/multimedia_av_codec/pull/6832
https://gitcode.com/openharmony/multimedia_av_codec/pull/6810
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 兼容
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
[add audio codec](https://gitcode.com/openharmony/docs/pull/119104)

See merge request: openharmony/interface_sdk_c!43170xCtree f1939ce5083c1b74383e1e20192f019ad11b3081
parent 00a114b0302282eb219cd76235ca8d43e9ac742a
author yuanlin94 <linyuan25@h-partners.com> 1764741943 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1764741943 +0800

capi支持自定义事件分发，修改api版本

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
sRx-tree e7c8fc36bf80c26edbd70830e492920ee51b45bf
parent e49e55c6b03058f5e41994fbb178f594882d33d1
parent 76beec3a45d41e69e66d5057e2f6a19282c90723
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764735384 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764735384 +0800

!4299 merge band_width into master

预览带宽压缩接口错误码修改

Created-by: sunchao106
Commit-by: psl-007
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档：https://gitcode.com/openharmony-sig/interface_native_header/pull/2829
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4299⋔xtree 941ba02422a5c785025c0f50ae3af7c4d5974ffe
parent cfca65b90586ad1f68d63af2cd05c765238462cc
author tzcurtain <zhoukechen2@huawei.com> 1764733874 +0800
committer tzcurtain <zhoukechen2@huawei.com> 1764733874 +0800

text marqueeOption

Signed-off-by: tzcurtain <zhoukechen2@huawei.com>
[x?tree 401b928efd01615d901501986f830b09d2e91fb5
parent cfca65b90586ad1f68d63af2cd05c765238462cc
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1764644640 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1764728269 +0800

monopolize capi

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
mhZxqtree ecd6a8fc18ac1a1919072ae9ddaa9bc25a79295c
parent 99f3a0db7e40503f8e948af5b45bcb89810dc45b
author 常佳兴 <changjiaxing2@h-partners.com> 1764725627 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1764725627 +0800

修改注释和电子流一致

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: I26e8c1c2ca8579f2ebdff3e1114ce94d3047a9a6
^ωxhtree 96a23d86de0e6dc56b36e733839baf0d3a0ce433
parent 54c2d301fe0808a640d4d091b700b4693d63ab5b
author 常佳兴 <changjiaxing2@h-partners.com> 1764678797 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1764678797 +0800

修改错误码注释

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: Icbea390dbdd798ae23488601ac4336af30fb5d08
wTxItree 40f347675a8d203e3a4a02fd0acf312c1f4377b2
parent 1c7e029bb61a86547709e1dd264ac6a04bc3910f
parent 998a2c9ae7900862f660e022512141b1e869c17f
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764677738 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764677738 +0800

!4263 merge joystick_axis into master

capi joystick axis add type

Created-by: yuanlin94
Commit-by: yuanlin94
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）

capi joystick axis add type 
### 描述（做了什么，变更了什么）
capi joystick axis add type 

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审
N
### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/117370

See merge request: openharmony/interface_sdk_c!4263Zwxttree 7f59968a44a67b12e4a0a024af429b51fbcecc13
parent 0e72c32f55a03b04d26454d7e0d6741db53fbc34
parent 1bce15d91f68787bec48f458d6e4db61288424f7
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764671303 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764671303 +0800

!4310 merge dev1129 into master

add OH_Huks_GetUkeyPinAuthState

Created-by: weixin_40599145
Commit-by: linzs
Merged-by: openharmony_ci
Description: ### 相关的Issue
[add OH_Huks_GetUkeyPinAuthState](https://gitcode.com/openharmony/interface_sdk_c/issues/3316)

### 原因（目的、解决的问题等）
架构信息网站实现与设计一致整改

### 描述（做了什么，变更了什么）
架构信息网站实现与设计一致整改

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
门禁扫描已通过，架构信息网站同源
- [x] 是否通过注释规则扫描
门禁扫描已通过，架构信息网站同源
- [x] 是否更新json文件
不涉及
- [x] 实现代码是否已经合入
[modify GetAuthPinState interface](https://gitcode.com/openharmony/security_huks/pull/1833)
- [x] 目标是否已经添加到build仓ndk依赖目标里
不是新增接口和文件，不涉及
- [x] 头文件library声明与SDK so库名称一致
不是新增接口和文件，不涉及

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
[OH_Huks_GetUkeyPinAuthState 接口同源架构设计网站](https://gitcode.com/openharmony-sig/interface_native_header/pull/2827)
[add ukey doc](https://gitcode.com/openharmony/docs/pull/115368)
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4310Nrxetree ffc7be6c5457e5d96999a76459d9228efbca4fe1
parent 416c6bbc9b5a0fb0d68bb0b066a93a25a70b65ad
author 常佳兴 <changjiaxing2@h-partners.com> 1764661063 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1764661063 +0800

修改注释错误

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: I027f2c445a9c8c8bee0add31412daccf607257de
= ۝xMtree 0c82828ea750a3607a17c8a225c57cfa4266568a
parent 3506b07c0eea3266b85b868f2553a5cae55445b3
author zhanghang <zhanghang160@huawei-partners.com> 1764145287 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1764654947 +0800

Refresh 支持上划不取消刷新

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
sxtree 0e8fab634bb371f26c0eed4a7f0d33b1f00a4228
parent e667719fed4e5997ddea0496323a053a5ce4aa60
author zhaona45 <zhaona45@huawei.com> 1764057508 +0800
committer zhaona45 <zhaona45@huawei.com> 1764644120 +0800

add audio codec

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Rx&tree 9ad481ef1c62c33467b598acb2b67b4f1f59fe95
parent f79cbee801fdb89921cafe5c8a87c0bfed77b395
author lintaicheng <lintaicheng1@huawei.com> 1764571672 +0800
committer lintaicheng <lintaicheng1@huawei.com> 1764642231 +0800

add skip info key

Signed-off-by: lintaicheng <lintaicheng1@huawei.com>
E^x>tree cfe2d03535b2c605aa481b629fb2d74ce0d4b000
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author ZouQianshun <zouqianshun@h-partners.com> 1764640551 +0800
committer ZouQianshun <zouqianshun@h-partners.com> 1764640551 +0800

鼠标事件rawDelta说明优化

Signed-off-by: ZouQianshun <zouqianshun@h-partners.com>
4Koӟx_tree 35591fe090ccafe66cc933296de19bf3363a6e85
parent adc54a0529449349b48d5e5fe33d26bb20f009e5
author 常佳兴 <changjiaxing2@h-partners.com> 1764596183 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1764596183 +0800

修改注释

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: I6cd482fb7e42b390ff92f6e9c4ec0c1728beebeb
u{xutree 0f8d13467ea1dcd76cf9cf44886d318ab7f03a9d
parent 17c0478f897406b656b3d619bd501e290eb2c6bd
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764401702 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764592256 +0800

feat:layout CAPI

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
Change-Id: Ib83ccf098a3db74e085a3859b63e6273182daa10
;:vxtree 6ed278c7021e5af94fecb275d229444dbefb8c99
parent 481f78a8a8ba40582e0512d44c27f37640f7c5c7
author yuanlin94 <linyuan25@h-partners.com> 1764588674 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1764588674 +0800

优化注释

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
\ќxLtree c989571f8da77e44e86977011f003be8e251be12
parent ed95bab4fb1e730f79a5ca2bd242806d848a409c
author FTL1ght <zhangyubao@h-partners.com> 1764579224 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1764579224 +0800

Fix desc

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I32471829eb1e9a6e507d99f85de7572f18004d54
[dox;tree 53acfe47508aaf7ca4f57df59ddd1e61e6671711
parent 9960b3ee51d239bb1a32bec5f5ac0a746e7cad81
author qq_44643155 <qq_44643155@noreply.gitcode.com> 1764578946 +0800
committer qq_44643155 <qq_44643155@noreply.gitcode.com> 1764578946 +0800

modify comments and add json

Signed-off-by: xuzikang <xuzikang2@huawei.com>
`Qxtree 0b65763aee7e42ff350a74c3764cdfef95fa667c
parent 5117722817645c4964b68d7023d0ecb0e4d68ebc
parent dfa93b7b4e892ad26e90a647673349ea0fe88c81
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764574440 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764574440 +0800

!4305 merge master into master

多段注释无法解析since版本

Created-by: li-xiang335
Commit-by: 李想
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3312

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4305T؛xtree c1527d15d984387e6cc382bcdb07013814af48ad
parent 5117722817645c4964b68d7023d0ecb0e4d68ebc
author zhaona45 <zhaona45@huawei.com> 1764571618 +0800
committer zhaona45 <zhaona45@huawei.com> 1764571618 +0800

add ImageReceiver interface

Signed-off-by: zhaona45 <zhaona45@huawei.com>
0uVIx.tree 579501507d1386e1d7d63780fbb18f164302df97
parent e667719fed4e5997ddea0496323a053a5ce4aa60
author qianyong325 <qianyong15@h-partners.com> 1764053827 +0800
committer qianyong325 <qianyong15@h-partners.com> 1764410682 +0800

add preferences NDK

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
E]3xWtree 1723007c3b82a2b04e13a1ae83cd9d9df89a8d1d
parent b2be661917c76536c54a11c8cf29b0c7d23ad78e
author linzs <linzhaosheng@huawei.com> 1764410173 +0800
committer linzs <linzhaosheng@huawei.com> 1764410173 +0800

add OH_Huks_GetUkeyPinAuthState

Signed-off-by: linzs <linzhaosheng@huawei.com>
Change-Id: I2e07662e197243d84bc5226ce8a635c8df05ae3f
~kYx{tree fa13c9e1558e62042f339be9d676085f2022e12c
parent b2be661917c76536c54a11c8cf29b0c7d23ad78e
author FTL1ght <zhangyubao@h-partners.com> 1764400689 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1764401112 +0800

Add fontPadding and fallbackLineSpacing interface for c

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I94b049a825986fa46b9a1107c430ae8dc54cb01a
uxtree f527bac3c3f05026e1670ff12d16f7111bd9ab4b
parent d0197ae1d19687cf8d044d7b96287389e2070120
author dingpy <dingpanyun1@huawei.com> 1764148791 +0000
committer dingpy <dingpanyun1@huawei.com> 1764399811 +0000

补充错误码说明

Signed-off-by: dingpy <dingpanyun1@huawei.com>
a^Gx#tree 87d0da4c72f4b2570df6943dbe912d6265fa76a1
parent 1cc467f7736423a451c9168e032a4e324bd7b00a
author 李想 <lixiang380@huawei.com> 1764319726 +0800
committer 李想 <lixiang380@huawei.com> 1764324853 +0800

多段注释无法解析since版本

Signed-off-by: 李想 <lixiang380@huawei.com>

iFx/tree 7bdf996d04eb6f2275c7ff7c9eddf15ade5f4ef6
parent 1cc467f7736423a451c9168e032a4e324bd7b00a
author qq_44643155 <qq_44643155@noreply.gitcode.com> 1764317697 +0800
committer qq_44643155 <qq_44643155@noreply.gitcode.com> 1764317697 +0800

change inferface

Signed-off-by: xuzikang <xuzikang2@huawei.com>
8i[x'tree 74496c3f53c5b379eac7f3b2059a2d3483ccda7d
parent 5aa2dc9338b4a238a8387bd44ed4ffedfef8956b
author lizeqiang <lizeqiang4@h-partners.com> 1764310325 +0800
committer lizeqiang <lizeqiang4@h-partners.com> 1764310325 +0800

update api version

Signed-off-by: lizeqiang <lizeqiang4@h-partners.com>
f2_xLtree 56f4c3542171b092824bef7efe06e2ccf0ff23fb
parent a0cf9fed212332fdd7c68ee3718b83679b977803
parent 10a045d31be630745e15e88bce6433d08786ed79
author ustc-tianyu <dutianyu4@huawei.com> 1764249819 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1764250213 +0800

all ndk interface
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
gxQtree edb6c74a9cefa106b9691449f712f668d2504197
parent 649919a1796ac1b7489516b464f8a1ae61cf11f5
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764228179 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764232386 +0800

文本组件小语种显示优化

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
yYxtree 4f6feb032a80c4b8cfe84e18bcd3b52887be92c7
parent 96c05ff088501087f0c551e7c312d6370be9cfb2
author ustc-tianyu <dutianyu4@huawei.com> 1762920639 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1764229995 +0800

all ndk interface
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
Zxtree bd5ab819be80d333b521b9fac29068c69ba4e663
parent 649919a1796ac1b7489516b464f8a1ae61cf11f5
author xxngwang <wangxiaoxiang11@huawei.com> 1764227071 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1764227071 +0800

Update API
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
Z#xEtree 143a3b81a2f3aa645c289f053543030428c6e9d0
parent f1a927327736164797683f5d662f42d65bfdf053
author psl-007 <pengsilong@huawei-partners.com> 1764226681 +0800
committer psl-007 <pengsilong@huawei-partners.com> 1764226681 +0800

预览带宽压缩接口错误码修改

Signed-off-by: psl-007 <pengsilong@huawei-partners.com>
sux0tree 694f64c406d8bd5c854e2436a69dadc3fda823f2
parent 649919a1796ac1b7489516b464f8a1ae61cf11f5
author zzz701 <lihaima1@huawei.com> 1764226000 +0800
committer zzz701 <lihaima1@huawei.com> 1764226014 +0800

去除TEEKit目录在ndk打包时添加since 宏定义

Signed-off-by: zzz701 <lihaima1@huawei.com>
Սkyx&tree 83fc1896b07f344c0c455ba6f96e43a98faca16d
parent a92318f5e17ca390c0a9717b6355f8915b3724ff
author weixin_66524478 <zhengsong5@huawei.com> 1764206652 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1764206652 +0800

注释更新

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>@]xVtree c52a3b7621ebc5a4c87dd91f66dc7869ccd6a2e6
parent 0010193cb3ffc542078c45b11d270ec9b14bd25e
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1762480162 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764150198 +0800

TextController支持文本选择能力

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
N-xҕRx%tree b1ac40da396c2787571a99dc9f2cb9392e056f80
parent 3506b07c0eea3266b85b868f2553a5cae55445b3
parent 92230021db78599b2d52ef6a84945f070fc12cc0
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764145841 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1764145841 +0800

!4281 merge master into master

update: 更新文件 oh_pointer_style.h

Created-by: dyt2
Commit-by: dyt2
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3295

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [√] 是否通过C语法扫描
- [√] 是否通过注释规则扫描
- [√] 是否更新json文件
- [√] 实现代码是否已经合入
- [√] 目标是否已经添加到build仓ndk依赖目标里
- [√] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [√] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [√] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4281ix>tree e2421dd16ab006e4857a3e6db288b6ff9e816577
parent bc0841bccb70fefb33be80046d266f4a59677069
author weixin_66524478 <zhengsong5@huawei.com> 1764132874 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1764132874 +0800

开合盖、支架开合公共事件

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>n`x<tree 29ee42a92df0fe77a41d0c75b9c549bb7538abce
parent 409634b529518555fa6bfc69e4bfadff8057c80e
author Lem0nC <caimengyu2@huawei.com> 1764073945 +0800
committer Lem0nC <caimengyu2@huawei.com> 1764073945 +0800

add sdk

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: I8df187ba45d5aac438827b2c57076993dfda91d1
!_5x<tree 2d1853228ce735a709e49734c06073bc1aa4f036
parent 1652a37d5672d1d5bcd704c4f307556beea97732
author Lem0nC <caimengyu2@huawei.com> 1764073250 +0800
committer Lem0nC <caimengyu2@huawei.com> 1764073250 +0800

add sdk

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: Id4c72611da939fa3f0a8d1b6ec0ce6929c6b65a0
%]xTtree 492612ee9d3c6e68086f2cd49210e3500feaa7c4
parent 3506b07c0eea3266b85b868f2553a5cae55445b3
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764067102 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1764067102 +0800

add interface_c compress punctuation

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
ox$tree 5a2dfee26770cff2b5bea4baf252951cea796df4
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author s30043564 <shenxiaoliang1@huawei.com> 1763458678 +0000
committer s30043564 <shenxiaoliang1@huawei.com> 1764056351 +0000

add permisstion

Signed-off-by: s30043564 <shenxiaoliang1@huawei.com>
`YxEtree f699b23469cbc4a375cf40dfae31c1761189c90c
parent e667719fed4e5997ddea0496323a053a5ce4aa60
author dyt2 <dengyutao2@huawei.com> 1764054195 +0800
committer dyt2 <dengyutao2@huawei.com> 1764054195 +0800

update: 更新文件 oh_pointer_style.h
modify -100 cursor style description

Signed-off-by: dyt2 <dengyutao2@huawei.com>l<xtree d2c40e714074f15ed9e07b99a99f9ab198926b36
parent 74c00891183f23b0e1800465128f04f78ac1d6bd
author 18326651137 <sunchao106@huawei.com> 1762762646 +0800
committer sunchao106 <sunchao106@huawei.com> 1764050687 +0800

add interface

Signed-off-by: 18326651137 <sunchao106@huawei.com>
QԕxUtree dd8a5ba43fa6cf84e0a4066fd080c6517eb8b931
parent ac843a5eae88111ae98743836205a6f77f2df3c4
author chang-jiaxing <changjiaxing2@h-partners.com> 1764040498 +0800
committer chang-jiaxing <changjiaxing2@h-partners.com> 1764040498 +0800

update: 更新文件 libnative_rdb.ndk.json


Signed-off-by: chang-jiaxing <changjiaxing2@h-partners.com>s	x6tree b1adfdf3f2e0c50f684e0f6303ca1aaff28394c5
parent e3cbf3091947c79575135de41222b5742046a842
parent e667719fed4e5997ddea0496323a053a5ce4aa60
author chang-jiaxing <changjiaxing2@h-partners.com> 1764040442 +0800
committer chang-jiaxing <changjiaxing2@h-partners.com> 1764040442 +0800

Merge branch 'master' of git@gitcode.com:chang-jiaxing/interface_sdk_c.git into 'master'
# Conflicts:
#   conflict distributeddatamgr/relational_store/libnative_rdb.ndk.json󕂜x,tree cddae17ed0eabd7ebdace82ca6162ce96e141cf6
parent e667719fed4e5997ddea0496323a053a5ce4aa60
author l00957130 <linzuoquan1@huawei.com> 1764036258 +0800
committer l00957130 <linzuoquan1@huawei.com> 1764036258 +0800

统一adopt错误码注释信息

Signed-off-by: l00957130 <linzuoquan1@huawei.com>
hfxtree 42dbaaed97887ec6f9f7ebde5b8714c78ade7689
parent 222384d1860983011e42f4331432387d3e85cf01
author yuanlin94 <linyuan25@h-partners.com> 1763542740 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1763985657 +0800

joystick_axis

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
YBxhtree cc7fe26c50e40364f308946f9c2a543aaaf2d354
parent c8dafe725aaf4f4f47a18a43d17d87a8a7046b2d
author 常佳兴 <changjiaxing2@h-partners.com> 1763108653 +0800
committer 常佳兴 <changjiaxing2@h-partners.com> 1763984389 +0800

新增returning接口

Signed-off-by: 常佳兴 <changjiaxing2@h-partners.com>
Change-Id: I03c4d4eef03835b9b8929e5b8b178c3e909b8f7c
OTx@tree 223440c5e431c43284f05e0719b8e2483e7c73df
parent 24bc3ea52fd009796273c6f211859a34d3fbe6af
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1763984052 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1763984052 +0800

capi能力补齐

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
lMx<tree 4f7f58242cf7d2ea2887f734d07c397f4ed334fc
parent f149abe6d0d417123557ba45ac5d5d38ce34a1b9
author Lem0nC <caimengyu2@huawei.com> 1763972576 +0800
committer Lem0nC <caimengyu2@huawei.com> 1763972576 +0800

add sdk

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: I3366dcdab919e0dc6aff030f164376f70aebb228
R_ x<tree e50d316cdbe1e4aab4c5a60e70922d6a0bcc10dc
parent f866f6eb274d4898d97fd02d4a408ec7b9f1b724
author Lem0nC <caimengyu2@huawei.com> 1763971610 +0800
committer Lem0nC <caimengyu2@huawei.com> 1763971610 +0800

add sdk

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: Icf6929ffc0bf4793ba731837fcc5e2859252d0a2
w_gxHtree 1f5778f2c68c557f2629462d1da29a4a0e004457
parent 3b025de921beb12c7adbca3fb724112bbcf6f469
author weixin_66524478 <zhengsong5@huawei.com> 1763953287 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1763953287 +0800

update: 更新文件 oh_commonevent_support.h


Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>sjx3tree dbf01089b572dbcb688a15da09aac83c6725bf26
parent 17c0478f897406b656b3d619bd501e290eb2c6bd
author zhancm <zhanchongming@h-partners.com> 1763777249 +0800
committer zhancm <zhanchongming@h-partners.com> 1763777249 +0800

Updated list of supported APIs

Signed-off-by: zhancm <zhanchongming@h-partners.com>
M!bxjtree bd56d71025bbfbdee2fd8f437875edb38b1516eb
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author liyujie <liyujie43@huawei.com> 1753843346 +0800
committer guanzengkun <guanzengkun@huawei.com> 1763719515 +0800

回合0702 Add drawable descriptor from Resource/DrawableDescriptor to native node ani interface
Signed-off-by:guanzengkun <guanzengkun@huawei.com>
z[xhtree 09460e9460d6f462b196a632953757ccda13190f
parent 74c00891183f23b0e1800465128f04f78ac1d6bd
author lcy_lovebug <lichengyi5@h-partners.com> 1763718111 +0800
committer lcy_lovebug <lichengyi5@h-partners.com> 1763718111 +0800

分组密钥新增接口

Signed-off-by: lcy_lovebug <lichengyi5@h-partners.com>
Change-Id: Ib3f84c9ba533aeb63409e27b52ffa24d9cfaf90e
אxx<tree 442b252b2f8fa669d8087d2f177d68944c9b1426
parent ee3c67cb84cddef0b66814576c2a2ef4430763e2
author zhanghongran <zhanghongran@huawei.com> 1763690891 +0800
committer zhanghongran <zhanghongran@huawei.com> 1763690891 +0800

撤回注释中替换已废弃接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
nrx6tree e18afb1d60e90e610c1b3fa2cab91b53ee8b1035
parent 39f3a93edfd9d6d812e2d062d543ce6e27d20369
author zhanghongran <zhanghongran@huawei.com> 1763690572 +0800
committer zhanghongran <zhanghongran@huawei.com> 1763690572 +0800

注释中替换已废弃接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
hox tree 512c393e0314ca7ffd8affbce5999f7a30807c11
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author 胡清云 <huqingyun1@huawei.com> 1763477847 +0800
committer 胡清云 <huqingyun1@huawei.com> 1763626998 +0800

CAPI responseRegionList

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
:dxHtree eea41c61dc34d106b064c6e97168c3a8f473fd86
parent 6f21b0d5abaf9757219b977f024020bd7c3450f3
author wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1763626723 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763626723 +0800

delete backward CAPI

Co-authored-by: wangxiuxiu96<wangxiuxiu9@huawei-partners.com>

~k'xKtree 85db4b4561e6e0d44da8285dbe602535cd5a3caf
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author lisitao <lisitao3@h-partners.com> 1763347211 +0800
committer lisitao <lisitao3@h-partners.com> 1763557030 +0800

[L]支持隐藏menubar
修改Signed-off-by:lisitao3@h-partners.com

Signed-off-by: lisitao <lisitao3@h-partners.com>
vqUnxtree 7e4f7f2c1cba61d78dc4e9b1773a5cc10904f733
parent 222384d1860983011e42f4331432387d3e85cf01
parent d1c7e7215713b07d84255400811df0a221b3fc47
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763554773 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763554773 +0800

!4245 merge dev1117 into master

add errrorCode .h

Created-by: weixin_40599145
Commit-by: linzs
Merged-by: openharmony_ci
Description: ### 相关的Issue
[add errorCode .h](https://gitcode.com/openharmony/interface_sdk_c/issues/3269)

### 原因（目的、解决的问题等）
新增错误码

### 描述（做了什么，变更了什么）
新增错误码

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
门禁所有校验已通过
- [x] 是否通过注释规则扫描
门禁所有校验已通过
- [x] 是否更新json文件
不涉及新增部件，只增加了现有类型中的枚举值
- [x] 实现代码是否已经合入
![image.png](https://raw.gitcode.com/user-images/assets/4379443/1c8fe406-ddbc-4515-924a-2599b5b9890d/image.png 'image.png')
- [x] 目标是否已经添加到build仓ndk依赖目标里
不涉及新增部件，只增加了现有类型中的枚举值
- [x] 头文件library声明与SDK so库名称一致
不涉及新增部件，只增加了现有类型中的枚举值

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony/docs/pull/115368
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4245pxFtree 0b514b8188dc8e21705ae924637de98501db8409
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author linzs <linzhaosheng@huawei.com> 1763352643 +0800
committer linzs <linzhaosheng@huawei.com> 1763543869 +0800

add errrorCode

Signed-off-by: linzs <linzhaosheng@huawei.com>
Change-Id: I13bd27b9e269899fd5329ee6eb4a4e6d6cd7eb5e
febx*tree 2ec0446f1ea80a2046042deda1f74a6ee660a689
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author zhanglei <zhanglei737@huawei.com> 1763374861 +0800
committer zhanglei <zhanglei737@huawei.com> 1763519331 +0800

ndk枚举整改开放版本变更

Signed-off-by: zhanglei <zhanglei737@huawei.com>
<h2x2tree eaec7559e29b476cb6b1d8ed63b9d7ef56716a54
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author MengYao <mengyao17@h-partners.com> 1763474403 +0800
committer MengYao <mengyao17@h-partners.com> 1763474403 +0800

提供不计算rowCount的查询接口

Signed-off-by: MengYao <mengyao17@h-partners.com>
kxhtree 90b4e33e7dca195ebc2a59d6eb15835d60316d51
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author wangtao <wangtao487@h-partners.com> 1763471112 +0800
committer wangtao <wangtao487@h-partners.com> 1763474095 +0800

Remove CAPI ArkUI_HapticFeedbackMode

Signed-off-by: wangtao <wangtao487@h-partners.com>
Change-Id: I150c9a300d4a307ee4198672576a82b663d0bb74
7n~xtree be0d84339150883fa83b94dd4ee2e6615f6091fe
parent c1151f7cca2f803a0f6e229cb5f0475ced3451b5
author wxb_code <wangxiaobai@huawei.com> 1763459025 +0800
committer wxb_code <wangxiaobai@huawei.com> 1763459025 +0800

ukey资料修改

Signed-off-by: wxb_code <wangxiaobai@huawei.com>
V}]Fxtree 18160db3a20b76290d4fdba2e60864e28201ca1a
parent 53adec794922ed3e0256c7ce1c87a49473acd36c
author wxb_code <wangxiaobai@huawei.com> 1763456476 +0800
committer wxb_code <wangxiaobai@huawei.com> 1763456476 +0800

ukeyCodeCheck

Signed-off-by: wxb_code <wangxiaobai@huawei.com>
;+Wݜxtree 87ecee35d0f2a2c1bf96a74da478223d8061be10
parent 8a9351ae33f2fd4f888bfb231b6b0f38734efb4b
author wxb_code <wangxiaobai@huawei.com> 1763455263 +0800
committer wxb_code <wangxiaobai@huawei.com> 1763455263 +0800

ukeyNDK接口定义

Signed-off-by: wxb_code <wangxiaobai@huawei.com>
s^{x2tree 7fe9e03e612662483a5fb210264e4f1c37d560e0
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author sunchao106 <sunchao106@huawei.com> 1763345212 +0800
committer sunchao106 <sunchao106@huawei.com> 1763345212 +0800

add band width compression c interface

Signed-off-by: sunchao106 <sunchao106@huawei.com>
^fxTtree e71697a829f8a722bef5ccf65cc3f449ad1ea386
parent 2434472b8d1c96afd903bc1f21750aaffd80ad11
parent 081e4d4d609cd3cb91bc3d276adb84ffe554493f
author liuzhijie2 <liuzhijie10@huawei.com> 1763214527 +0800
committer liuzhijie2 <liuzhijie10@huawei.com> 1763214527 +0800

Merge branch 'master' of https://gitcode.com/liuzhijie2/interface_sdk_c

* 'master' of https://gitcode.com/liuzhijie2/interface_sdk_c:
  LazyInitializeWebEngine
[Ԗx&tree e71697a829f8a722bef5ccf65cc3f449ad1ea386
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author liuzhijie2 <liuzhijie10@huawei.com> 1763214020 +0800
committer liuzhijie2 <liuzhijie10@huawei.com> 1763214487 +0800

LazyInitializeWebEngine

Signed-off-by: liuzhijie2 <liuzhijie10@huawei.com>
|W]x&tree 2a5a3abb71970b36139806c5c888649ef776a582
parent 2adf0329ffc9b8705e97700f658e8aeba7e0f864
author liuzhijie2 <liuzhijie10@huawei.com> 1763214020 +0800
committer liuzhijie2 <liuzhijie10@huawei.com> 1763214020 +0800

LazyInitializeWebEngine

Signed-off-by: liuzhijie2 <liuzhijie10@huawei.com>
L\wx	tree 14770a6e9645653318755cc02df23e8f75672512
parent a35a2475c9ed483a3fc9459702364cea0185f5ec
author 李想 <lixiang380@huawei.com> 1763026838 +0800
committer 李想 <lixiang380@huawei.com> 1763168473 +0800

check api

Signed-off-by: 李想 <lixiang380@huawei.com>
TT_x@tree 69649e105284a92ef380e52bc32896d377cdb987
parent 94129a430d4c785b61be8691df3464d22748dad3
author weixin_66524478 <zhengsong5@huawei.com> 1763089885 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1763089885 +0800

支架开合、PC开合盖公共事件

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>nxKn!}@G; &C$5bl#DS(-q\LF!CZu1Ǻk%)`x6~{&l!=I( @܍骶.roYZQ}w)Q!~R YxIj1 zArAzn[23OT.PxK I:r* \zP:(^@,%%1#e+cm]'ׯ{+pZ'=y{m`cJDcN/]~Mogv\M%~]fxA  ＂YJacbkRh{uiYdC);`@VB4c)$g@h+&U`*XCJ~0gatNM|i*e|~nY_Ϳy>Ʋ\BA۞P NKb9	qǮԅ關Wxtree 09592521329e0fc0987f3b6a753702e2ba41cd1f
parent d1b51afd5081c48a4b2492be39dcc110dc4818a5
author dingpy <dingpanyun1@huawei.com> 1762341961 +0000
committer dingpy <dingpanyun1@huawei.com> 1763027008 +0000

NativeBuffer新增接口

Signed-off-by: dingpy <dingpanyun1@huawei.com>
9T\x[j0 u/)Z,RzV؅HF	}}߁CB̩T<S:ԔlIXӐ6AG$,BA}Z8z+pM!.R9\zQËZ޶9O_rδ+]Koi_]4x3tree 9b4b7faf41b73855b200e71f5bd346e916f7008e
parent 74c00891183f23b0e1800465128f04f78ac1d6bd
author SKY2001 <songtianyu10@huawei.com> 1762860015 +0800
committer SKY2001 <songtianyu10@huawei.com> 1763022302 +0800

杀死子进程接口错误码描述补充

Signed-off-by: SKY2001 <songtianyu10@huawei.com>

kbRx%tree 50b9df6c222f8f206c55c9e645b92478ee1ff0bd
parent f35417a0d61e5b64de2e4cb2764b5175d65869c9
parent 9af626aa5b774b2d7906e3960eb7f1663a6b88f7
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763020277 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763020277 +0800

!4211 merge master2 into master

新增无效窗口ID错误码

Created-by: kidoku
Commit-by: zhengyaozong
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/multimodalinput_input/issues/6623

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ Y] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [Y ] 是否更新json文件
- [Y ] 实现代码是否已经合入
- [ Y] 目标是否已经添加到build仓ndk依赖目标里
- [ Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ N] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [Y ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4211CÜSx<tree 4e580ac6e597fb78af674a21891e8c15157032ba
parent 481f78a8a8ba40582e0512d44c27f37640f7c5c7
parent 5400ff69da91444fca072064adc8ef362b8be3f0
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763018828 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1763018828 +0800

!4151 merge master into master

【修改说明】添加vc1/msvideo1/wmv3/mjpeg的MIME/profile/level定义

Created-by: anemoi
Commit-by: anemoi
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3209

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4151<xtree 2ee5a5b5d328a9ca28d460c04ceaf3e955bda321
parent 481f78a8a8ba40582e0512d44c27f37640f7c5c7
author xxngwang <wangxiaoxiang11@huawei.com> 1763004632 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1763013777 +0800

Update API
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
TIZmxFtree 78f06270f32bcdf6f6304856abe972df886965d1
parent 6d7d6f79476361161bc7a59ef749f6370ac8ef33
author anemoi <qihaonan3@huawei.com> 1762998141 +0800
committer anemoi <qihaonan3@huawei.com> 1762998141 +0800

【修改说明】添加vc1/msvideo1/wmv3/mjpeg的MIME/profile/level定义

Signed-off-by: anemoi <qihaonan3@huawei.com>ts.xQj0Du
ծ,Kޡj;G]D`fc11d dqQV[ܥvm0Q>PaACK]&j!6>P_aoۊ{VZ%[)|g[ f[xtree c869e0dc068131bad84df0c8bbb3dee76f9a704e
parent 481f78a8a8ba40582e0512d44c27f37640f7c5c7
author owen_creeper <ouhanjun3@huawei.com> 1762957830 +0800
committer owen_creeper <ouhanjun3@huawei.com> 1762957830 +0800

add midi api

Signed-off-by: owen_creeper <ouhanjun3@huawei.com>,Yx*tree fbe693db68c156f4524812047f7d810f2dcdba6e
parent d95f0213413dd140503d4034031e48bcec1dbe12
author weixin_44950735 <yuzichen5@huawei.com> 1762841781 +0000
committer weixin_44950735 <yuzichen5@huawei.com> 1762841781 +0000

iscontains nullptr

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
[x$tree 91bf3057c74a394e7e11686a62989e8e8fa1a44c
parent 74c00891183f23b0e1800465128f04f78ac1d6bd
author zzm_gitcode <harbin_zzm@163.com> 1762833052 +0800
committer zzm_gitcode <harbin_zzm@163.com> 1762833052 +0800

fix audio channel layout brief

Signed-off-by: zzm_gitcode <harbin_zzm@163.com>
|ZGx%tree 9747f7337ec2d58c5026f54cfe7b624632e99a83
parent 5ce7ceb51fe3aa83a598c552e6948582e13dcec0
author zhengyaozong <zhengyaozong@h-partners.com> 1762825144 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762825144 +0800

1

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
m^̟xOtree b8e8267850c4b0deebdfe46d98c4ed170630036d
parent 74c00891183f23b0e1800465128f04f78ac1d6bd
author chenyaowen6 <chenyaowen6@huawei.com> 1762784815 +0800
committer chenyaowen6 <chenyaowen6@huawei.com> 1762784815 +0800

修复UnregisterAvailableDevicesChangeCallback大小写问题

Signed-off-by: chenyaowen6 <chenyaowen6@huawei.com>
QDtx6tree eee260afb3c536e64e6adce4af5ac965132d05f9
parent 39c0024470e063eb3780d8f9716ccb811a5bbdce
author xxngwang <wangxiaoxiang11@huawei.com> 1762323591 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1762755364 +0800

Change to OUTPUT_NODE_TYPE_DEFAULT
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
ZbQxtree 130b5f44f351c2f3fd8858fdfd1a20388373d5c9
parent b0ed9cfd9aee494fe53471ec13b4106d19bfd670
parent 45bef7edb06505b95d4b63ea31060dd08412f380
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762747882 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762747882 +0800

!4189 merge master into master

光标枚举值修改

Created-by: kidoku
Commit-by: zhengyaozong
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/multimodalinput_input/issues/6613

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ Y] 是否通过C语法扫描
- [ Y] 是否通过注释规则扫描
- [ Y] 是否更新json文件
- [ Y] 实现代码是否已经合入
- [Y ] 目标是否已经添加到build仓ndk依赖目标里
- [ Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4189j}gx1tree 23dcd13733e338e1dd07acf41fd0edc6ea2f700e
parent b0ed9cfd9aee494fe53471ec13b4106d19bfd670
author zcdqs <junfeng.lijunfeng@huawei.com> 1762255022 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1762746875 +0800

add drag and select api to grid

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
bTxFtree 9955f44d8d29737e6e9bfc7395d2eb26b9b24674
parent 3dfb224716c2a4119e12253123aa954113802146
parent 37bb24ae3c8507acc2302b8163c45e6ecab234a6
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762742149 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762742149 +0800

!4190 merge master into master

新增 #include <cstddef>

Created-by: tanhon
Commit-by: tanhon
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3234
### 原因（目的、解决的问题等）
新增 #include <cstddef> 
### 描述（做了什么，变更了什么）
新增 #include <cstddef> 
### 自检结果（结果截图添加到下面）
- [ Y] 是否通过C语法扫描
- [ Y] 是否通过注释规则扫描
- [ Y] 是否更新json文件
- [ Y] 实现代码是否已经合入
- [ Y] 目标是否已经添加到build仓ndk依赖目标里
- [ Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ N] 不兼容
  - [ Y] 是否经过评审

### L0新增用例自检结果
- [ Y] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ N] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4190nexjtree 07a84140003a439d6fb3815464dcdbe7ccc8441d
parent eebe66790574cb0b602932ae421fd021671d830f
parent c577571542d538c193f9f9853675d4edb088e7fc
author zhengyaozong <zhengyaozong@h-partners.com> 1762739051 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762739051 +0800

Merge branch 'master2' of https://gitcode.com/kidoku/interface_sdk_c into master2
rx'tree 07a84140003a439d6fb3815464dcdbe7ccc8441d
parent 62bae9f28c1240bb60662288f796ce0c399ca3c3
author zhengyaozong <zhengyaozong@h-partners.com> 1762591735 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762738923 +0800

123

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
^ޛx+tree 3ccb791b6833fd7f5994b11a699f98890248ea31
parent 96c05ff088501087f0c551e7c312d6370be9cfb2
author yuanlin94 <linyuan25@h-partners.com> 1762330572 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1762678551 +0800

capi onChildTouchTest add

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
t\x%tree 07a84140003a439d6fb3815464dcdbe7ccc8441d
parent 62bae9f28c1240bb60662288f796ce0c399ca3c3
author zhengyaozong <zhengyaozong@h-partners.com> 1762591735 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762591735 +0800

1

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
Ac^wx%tree 9ab3853e41afffa8260543ae40d6d36658ceadc8
parent 2a4480c23f0431ff22b56d36fdb40a12c4b181dc
author zhengyaozong <zhengyaozong@h-partners.com> 1762573982 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762573982 +0800

1

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
w_*x%tree ba915b6f5e5045d6cc97712cc24cf70c4fb1453b
parent 45bef7edb06505b95d4b63ea31060dd08412f380
author zhengyaozong <zhengyaozong@h-partners.com> 1762573526 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762573526 +0800

1

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
G^Ǜrx+tree dd13143e458a8913f42bdc0a6c98af0c29285a98
parent 713bdeac7c8730b92d6815c2aa4a1868bddd8abb
parent 936624d5002f81d966ed4ff2b2d10ea87ae806cc
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762513322 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762513322 +0800

!4186 merge master into master

变更视频元数据生成风格模式枚举值的顺序

Created-by: Hennes
Commit-by: Hennes
Merged-by: openharmony_ci
Description: ### 相关的Issue
[修改动态元数据风格模式值的顺序](https://gitcode.com/openharmony/interface_sdk_c/issues/3230)

### 原因（目的、解决的问题等）
因需求变更动态元数据生成的默认风格模式

### 描述（做了什么，变更了什么）
变更动态元数据生成的默认风格模式，默认模式由亮度修改为对比度

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/0ccdbda8-7776-48d0-8d2b-c0dd026b376d/image.png 'image.png')
- [x] 是否通过注释规则扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/1f9367f5-9e60-403c-be53-fc8d479f47cf/image.png 'image.png')
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
- [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2735
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4186*kMx tree 10b6503101b0f4902116642ac3fa1d88d27b0a32
parent bea4c672891a37fc82ee5be4b6a7351e2cb45182
parent 88b6bf80a3ff1b6d0206b6d9c8379c79f0f3b229
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762509260 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762509260 +0800

!4209 merge master into master

mac 上的工具链使用归档的python

Created-by: rePeek
Commit-by: rePeek
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4209h8x"tree b57c693a9ca2ed8d179aa0c0d46312da8e494f80
parent bea4c672891a37fc82ee5be4b6a7351e2cb45182
author l00957130 <linzuoquan1@huawei.com> 1762488258 +0800
committer l00957130 <linzuoquan1@huawei.com> 1762507156 +0800

提交adoptchild接口

Signed-off-by: l00957130 <linzuoquan1@huawei.com>
[x(tree 10b6503101b0f4902116642ac3fa1d88d27b0a32
parent bea4c672891a37fc82ee5be4b6a7351e2cb45182
author rePeek <wangsenyin@huawei.com> 1762482513 +0000
committer rePeek <wangsenyin@huawei.com> 1762483665 +0000

mac 上的工具链使用归档的python

Signed-off-by: rePeek <wangsenyin@huawei.com>
oh^xtree cfa1c5b4cf3cd25e057ae2b3bae53f8b75f55134
parent 7b208d2e96147aef96e99195f95d9a0fc063fd37
parent 207518b0c2c9229135be53a0bce586f42d3c457b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762430261 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762430261 +0800

!4152 merge add_frameNode_isOnRender_node into master

add func add func OH_ArkUI_NodeUtils_GetNodeUniqueId

Created-by: mh_xiaobai
Commit-by: zjut.wujinhui@qq.com
Merged-by: openharmony_ci
Description: ### 相关的Issue

[[Bug]: is on render tree]([[Bug]: is on render tree](https://gitcode.com/openharmony/arkui_ace_engine/issues/67849))


### 原因  add func add func OH_ArkUI_NodeUtils_GetNodeUniqueId


### 描述  add func add func OH_ArkUI_NodeUtils_GetNodeUniqueId

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明 不涉及
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档 https://gitcode.com/openharmony/docs/pull/114628
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4152١x+tree 1adf7567ba0af70fa50c297a8a0b74c26099408d
parent 4d875a32ca780820f0405dfd35bf038e66fa0e75
author huangzhenghua <huangzhenghua3@huawei.com> 1762416146 +0800
committer huangzhenghua <huangzhenghua3@huawei.com> 1762416146 +0800

add napi_sendable_ref interface

Issue: https://gitcode.com/openharmony/interface_sdk_c/issues/3238
Test: Build & Boot devices

Signed-off-by: huangzhenghua <huangzhenghua3@huawei.com>
Change-Id: Ieb919cf94f6015c9a9bca6f1c52d2c1b46a03e7a
QIxotree 34518090afbe673f2f21eadf5bcaeb8736f2f049
parent 4d875a32ca780820f0405dfd35bf038e66fa0e75
parent 681afaec94a76a81aa9cf2788e9e67436f76488c
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762415817 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762415817 +0800

!4199 merge master into master

add block align

Created-by: zzm_gitcode
Commit-by: zzm_gitcode
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
不涉及

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/115343

See merge request: openharmony/interface_sdk_c!4199\.̞x.tree 442b252b2f8fa669d8087d2f177d68944c9b1426
parent d75eadfd7ada70e652a04d412c60ae046e0ac62d
author zhanghongran <zhanghongran@huawei.com> 1762392216 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762392216 +0800

add note for transform

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
aǕSx5tree 721d58cdcd25125d11b4ddaa7848f8fcf0137f80
parent 5fc9a8687a728a71a4a99baf63b05fe284eddcca
parent ed2fca4d92cb49e58ec8e96bd989dd563a9e6425
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762345360 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762345360 +0800

!4198 merge buildgn into master

add huks-ukey tag and api to build.gn

Created-by: weixin_40599145
Commit-by: linzs
Merged-by: openharmony_ci
Description: ### 相关的Issue
[huks ukey buildgn](https://gitcode.com/openharmony/interface_sdk_c/issues/3241)

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4198Rx]tree 41eb2603e2c5286af7af6a26922bf9ef502f873d
parent bc07916ea553f030cd8b7d9248c9365ab62ba28d
author linzs <linzhaosheng@huawei.com> 1762325260 +0800
committer linzs <linzhaosheng@huawei.com> 1762337626 +0800

add huks-ukey tag and api to build.gn

Signed-off-by: linzs <linzhaosheng@huawei.com>
Change-Id: I422c49107c0f659e729a27d1000452b92c615d01
kx.tree 8abc88643fbe798f94064b834fe8a2d7780e9609
parent 8d90726f1f77feb1ea43bbcc2cd857f0b07bef50
author zhanghongran <zhanghongran@huawei.com> 1762335296 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762335296 +0800

add note for transform

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
2Qb_x.tree 26b85bb32fa673f8e469fa8dcfb82766556d262b
parent 3e67bed325cfbedec19ca31e4cf27218f2c793da
author zhanghongran <zhanghongran@huawei.com> 1762333413 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762333413 +0800

add note for transform

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
xbŕxtree 1eca8220add80138560360d5fd5d1088e55b2c4f
parent bc07916ea553f030cd8b7d9248c9365ab62ba28d
author zzm_gitcode <harbin_zzm@163.com> 1762329647 +0800
committer zzm_gitcode <harbin_zzm@163.com> 1762332952 +0800

add block align

Signed-off-by: zzm_gitcode <harbin_zzm@163.com>
(USx1tree 92050b6f89741beb2a66f62a55fa6fc49d5f56d0
parent 078c06ec91a3d2f0f6827c80af4f9c5ce06d4d71
author SKY2001 <songtianyu10@huawei.com> 1761201349 +0800
committer SKY2001 <songtianyu10@huawei.com> 1762330427 +0800

支持父进程杀死子进程-ndk接口

Signed-off-by: SKY2001 <songtianyu10@huawei.com>
i̟xOtree 0fd1fa476809bc4b12bbb81604b675ae1f2c637b
parent aedda201934fa2ea360ec7dae853fb3197e57a5d
author zhanghongran <zhanghongran@huawei.com> 1762329305 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762329305 +0800

update: 更新文件 libnative_media_codecbase.ndk.json


Signed-off-by: zhanghongran <zhanghongran@huawei.com>s_xDtree 22238ee5092bc5862c23157a467c0fd74b75bbe4
parent 58ee0a13d7cadc5a45ea16e707ca73354e8b946f
author zhanghongran <zhanghongran@huawei.com> 1762325500 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762325500 +0800

delete: 删除文件 .vscode/extensions.json


Signed-off-by: zhanghongran <zhanghongran@huawei.com>mx:tree 5808ebe96358dfe696818431c285503c198f8427
parent e41b8f24fe22afede2b9fa928ff14e378192d416
author zhanghongran <zhanghongran@huawei.com> 1762325221 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762325221 +0800

add transform api of video decoder

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
elx:tree 29d9708ca1f1c5cd6940ea2cbf30018323a68491
parent bc07916ea553f030cd8b7d9248c9365ab62ba28d
author zhanghongran <zhanghongran@huawei.com> 1762324956 +0800
committer zhanghongran <zhanghongran@huawei.com> 1762324956 +0800

add transform api of video decoder

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
^ex?tree d6a9e4e23c227dafaff2292e4b872b9a7e2001db
parent e2e5552a3bdd0f897185148b28f678bdd04689ad
author zjut.wujinhui@qq.com <zjut.wujinhui@qq.com> 1762310864 +0800
committer zjut.wujinhui@qq.com <zjut.wujinhui@qq.com> 1762310885 +0800

add func IsInRenderState

Signed-off-by: zjut.wujinhui@qq.com <zjut.wujinhui@qq.com>
gxNtree 698472b64795a4f3a3ef4027a776413fb7294065
parent 37210fb6b15f62c8d11ae0918f6f3f0f126ef197
author TFDeeplearner <yanghaolong2@huawei.com> 1762306469 +0800
committer TFDeeplearner <yanghaolong2@huawei.com> 1762306469 +0800

修复GetVideoSupportedNativeBufferFormats格式错误
Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>
$rx"tree fcb23861865e40fa63cb4b0b4914be0b862a1838
parent 19a5e4758af91817f884725938be07095e28ac01
author wangyaohui11 <wangyaohui17@huawei.com> 1762267406 +0800
committer wangyaohui11 <wangyaohui17@huawei.com> 1762267406 +0800

code Check

Signed-off-by: wangyaohui11 <wangyaohui17@huawei.com>
OIYQxtree 248521e39834d7443bf8c50b069cc81e2d74be62
parent 339d8b46eb99ae953d1977535fe5f5093695cb75
parent 5fca643de16227ff72669fd37445e92875b9e2be
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762263442 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762263442 +0800

!4171 merge master into master

update: 更新文件 net_connection.h

Created-by: lizeo
Commit-by: lizeo
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ Y] 是否通过C语法扫描
- [ Y] 是否通过注释规则扫描
- [Y ] 是否更新json文件
- [Y ] 实现代码是否已经合入
- [Y ] 目标是否已经添加到build仓ndk依赖目标里
- [ Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N ] 不兼容
  - [Y ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ]Y 否

### API参考文档影响评估（提供docs仓pr链接）
- [Y ] 是，已刷新API参考文档 https://gitcode.com/openharmony/docs/pull/114412
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4171!txTtree 6f5d76d4702cc8a873332d0a764dd0f0f64bf5ee
parent 5be7d7431377501e3043f72ee850cdb05a4adc45
parent 339d8b46eb99ae953d1977535fe5f5093695cb75
author xxngwang <wangxiaoxiang11@huawei.com> 1762262028 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1762262028 +0800

Merge branch 'master' of https://gitcode.com/xxngwang/interface_sdk_c
 jxtree 79160720d75afec781b147bedad02749a4d78063
parent 339d8b46eb99ae953d1977535fe5f5093695cb75
author tanhon <tanhong6@h-partners.com> 1762253762 +0800
committer tanhon <tanhong6@h-partners.com> 1762253762 +0800

ii

Signed-off-by: tanhon <tanhong6@h-partners.com>
PxItree 6f5d76d4702cc8a873332d0a764dd0f0f64bf5ee
parent 52ddd8bcfc47a142c3eec437ae06389a3289f931
author weixin_40599145 <linzhaosheng@huawei.com> 1762249201 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762249201 +0800

NDK-huks ukey 特性新增tag与tagType

Co-authored-by: linzs<linzhaosheng@huawei.com>

hox0tree af9f6930a0d0fd6f43fba878c19dfc2212861fe6
parent de7589a468c7f709f2951c64232abd4d55725216
author Hennes <lurihong@h-partners.com> 1762174626 +0800
committer Hennes <lurihong@h-partners.com> 1762245525 +0800

修改动态元数据风格key值的顺序

Signed-off-by: Hennes <lurihong@h-partners.com>
*mx%tree 28142be78c4ba67ef68bb26de03e3f3e118bdc89
parent 986ca5af753c3da0ea99abd0a3f4744f73455006
author zhengyaozong <zhengyaozong@h-partners.com> 1762240033 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1762240033 +0800

1

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
_"x2tree 5712f84c9526acd78668e17f95074a9cd4d44c10
parent 7309f14895fe619747087ebd5a1abb458d79a068
author weixin_66524478 <zhengsong5@huawei.com> 1762237251 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1762237251 +0800

合盖模式切换禁用

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>BdMx tree cce882ec04775d444de8513049eb48cf5226b10e
parent 26ba94e9e51d586b44b877825683da7bec22b958
parent 935f3dc3403be9ad01ccdf9fbef67d41054d52b2
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762237119 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762237119 +0800

!4187 merge ai-menu-capi-trueFix into master

ai-menu-capi-trueFix

Created-by: xuhang363
Commit-by: xuhang363
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4187-`xtree cce882ec04775d444de8513049eb48cf5226b10e
parent 26ba94e9e51d586b44b877825683da7bec22b958
author xuhang363 <xuhang89@huawei.com> 1762227997 +0800
committer xuhang363 <xuhang89@huawei.com> 1762227997 +0800

ai-menu-capi-trueFix

Signed-off-by: xuhang363 <xuhang89@huawei.com>
*cTQxtree f93a81a57886dcc64d86880da5286fc746d0b4df
parent f9b262d8907cc280aacc7683741ed0ad182b660d
parent 2d4fc6e5e1ee351d49151f970489fa867ef29e69
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762174625 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762174625 +0800

!4177 merge ai-menu-delete-config-capi into master

ai-menu-delete-config-capi

Created-by: xuhang363
Commit-by: xuhang363
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/114804
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4177@vLx1tree b07d80bca2a81ba478fcbf26c9411b5aacdf0546
parent 2f2bd8665bd5047758099250b0f208e70632d689
parent 80b21dcbee5e2b37cb174db9f47095c6fbe95389
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762165613 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1762165613 +0800

!4163 merge remote into master

6.1新增接口

Created-by: dingpy
Commit-by: dingpy
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [是] 是否通过C语法扫描
- [是] 是否通过注释规则扫描
- [是] 是否更新json文件
- [是] 实现代码是否已经合入
- [是] 目标是否已经添加到build仓ndk依赖目标里
- [是] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [否] 不兼容
  - [是] 是否经过评审

### L0新增用例自检结果
- [是] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony-sig/interface_native_header/pull/2689

See merge request: openharmony/interface_sdk_c!4163/EVx2tree f4f122c5d58db8558c6e5110afd633902f95fb8e
parent 2f2bd8665bd5047758099250b0f208e70632d689
author weixin_66524478 <zhengsong5@huawei.com> 1762159816 +0800
committer weixin_66524478 <zhengsong5@huawei.com> 1762159816 +0800

合盖禁用模式切换

Signed-off-by: weixin_66524478 <zhengsong5@huawei.com>dx{tree 3631027a8397ed951ab7c9eb3a752aee90e68a24
parent 4a7764e008d8114d17c1e49bbdcefdfd4f8960ff
author Lem0nC <caimengyu2@huawei.com> 1762157770 +0800
committer Lem0nC <caimengyu2@huawei.com> 1762157834 +0800

需求：ndk支持多行省略号

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: Ic855bcf0d89e8c66cad8f3c31cb3c9d5b6024a26
Signed-off-by: Lem0nC <caimengyu2@huawei.com>
v#!x!tree 9fa38bb26c2c572bd4a0745afa4234b059b5ab3c
parent 0aabd977ade3172a918a350a93987ed87d7e921b
author wangyaohui11 <wangyaohui17@huawei.com> 1762154238 +0800
committer wangyaohui11 <wangyaohui17@huawei.com> 1762154238 +0800

codeCheck

Signed-off-by: wangyaohui11 <wangyaohui17@huawei.com>
KpZxtree ba23fd05b10e6bc79158d7cbc007877ad51e95cd
parent 123b6522e072408f00a8f6842c6f0ca63095fc73
author dingpy <dingpanyun1@huawei.com> 1761636369 +0000
committer dingpy <dingpanyun1@huawei.com> 1762135820 +0000

6.1新增接口

Signed-off-by: dingpy <dingpanyun1@huawei.com>
&Xҝxtree 2ef304a7a909da18786f5f2ddf4da5a8f71c1f47
parent 5a0eb4191ef86c11fab550ec938c8a8d81f38f08
author xuhang363 <xuhang89@huawei.com> 1761881481 +0800
committer xuhang363 <xuhang89@huawei.com> 1762076085 +0800

ai-menu-delete-config-capi

Signed-off-by: xuhang363 <xuhang89@huawei.com>
.Xxotree ca2a4ba537354b8de24345a1afc6e544542912e2
parent e3ab1c2f16eac38bd1458c1cf845585489d9cd40
author lijiangfeng <lijiangfeng13@huawei.com> 1761881421 +0800
committer lijiangfeng <lijiangfeng13@huawei.com> 1762074776 +0800

Add external string

Issue:  https://gitcode.com/openharmony/interface_sdk_c/issues/3225
Signed-off-by: lijiangfeng <lijiangfeng13@huawei.com>
Qw6x!tree c9396e00dfa06359277c4bf66da0e626afdf60fd
parent ea0043039682e4ee5358a15c325f4da278e43f3d
author wangyaohui11 <wangyaohui17@huawei.com> 1761902527 +0800
committer wangyaohui11 <wangyaohui17@huawei.com> 1761902527 +0800

codeCheck

Signed-off-by: wangyaohui11 <wangyaohui17@huawei.com>
'Zx+tree d0e343ea35ee501dad05bfbbddfdfed19d6fdf58
parent ef76ef1f994df542dcd03cee33ffa21b78743229
author Lizhiqi <lizhiqi1@huawei.com> 1761360735 +0800
committer Lizhiqi <lizhiqi1@huawei.com> 1761900081 +0800

add layoutmanager editmenuoption bindselection

Signed-off-by: Lizhiqi <lizhiqi1@huawei.com>
֨aɟSx?tree d48ea6c6207f182601badc01afffe36dabdfd947
parent d2010cfe5e49ea43263738dc593b61c70ea2d7ed
parent 2aae80ae010a342400fcdbd6cc2aa963b75e3300
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761897625 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761897625 +0800

!4154 merge master into master

新增编解码器nativeBufferFormat能力查询接口

Created-by: TFDeeplearner
Commit-by: TFDeeplearner
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

docs仓pr链接：https://gitcode.com/openharmony/docs/pull/114620

See merge request: openharmony/interface_sdk_c!4154)x!tree 9fa38bb26c2c572bd4a0745afa4234b059b5ab3c
parent 2f53717ddf6594647a3efcdf8d58bd8e3db65620
author wangyaohui11 <wangyaohui17@huawei.com> 1761878250 +0800
committer wangyaohui11 <wangyaohui17@huawei.com> 1761878250 +0800

codeCheck

Signed-off-by: wangyaohui11 <wangyaohui17@huawei.com>
}0[*xtree 5c9e325810e0c77dbfe4c392a6606bf8f3a9e4e0
parent cbce0b60be037af5a3bb7b4dfb0a8586ca9ac84e
author lizeo <lize49@huawei.com> 1761824606 +0800
committer lizeo <lize49@huawei.com> 1761824606 +0800

update: 更新文件 net_connection.h


Signed-off-by: lizeo <lize49@huawei.com>X[xtree b2221b30270ae05236fdf78c752f6c82ef60f137
parent 065e39291fd99fba3eaa47eb9ee994bfb502cc70
author lizeo <lize49@huawei.com> 1761824560 +0800
committer lizeo <lize49@huawei.com> 1761824560 +0800

update: 更新文件 net_connection.h


Signed-off-by: lizeo <lize49@huawei.com>rZpxXtree 0db5e510cb803491adaf840f4600e7f43c91dcba
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author wangqing <wangqing195@huawei.com> 1761810564 +0800
committer wangqing <wangqing195@huawei.com> 1761810564 +0800

remove atomicservice label

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: I7110bec34f3b375341ba70ce7f770473755325f6
фiMxtree b7902b23ec5c38ed81590ae46ebcc6fdf0f639ac
parent 027714177b8e91ccf976e20bc1381aca95397ac1
author lizeo <lize49@huawei.com> 1761808620 +0800
committer lizeo <lize49@huawei.com> 1761808620 +0800

update: 更新文件 net_connection.h


Signed-off-by: lizeo <lize49@huawei.com>Zxtree 608a0caa2cfb3c8c07a0fb4a68da740efe26b0de
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author lizeo <lize49@huawei.com> 1761808461 +0800
committer lizeo <lize49@huawei.com> 1761808461 +0800

update: 更新文件 net_connection.h


Signed-off-by: lizeo <lize49@huawei.com>Zx,tree c9396e00dfa06359277c4bf66da0e626afdf60fd
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author wangyaohui11 <wangyaohui17@huawei.com> 1761738092 +0800
committer wangyaohui11 <wangyaohui17@huawei.com> 1761738092 +0800

SetPipParentWindowId

Signed-off-by: wangyaohui11 <wangyaohui17@huawei.com>
^x9tree 16b28beff009d03ea925217c1e38f2647820d51d
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author 胡清云 <huqingyun1@huawei.com> 1761729776 +0800
committer 胡清云 <huqingyun1@huawei.com> 1761729776 +0800

onVisibleAreaChange新增接口API版本改为22

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
sx/tree d2c0893aebb07b9030ac2b5b1f9646a9498f0879
parent 531e229cd7752d9545f26c4978323613afcbc3a9
author Concoun <Concoun@noreply.gitcode.com> 1761729223 +0800
committer Concoun <Concoun@noreply.gitcode.com> 1761729223 +0800

Add DrawPixelMapMesh and json

Signed-off-by: Concoun <zhangjinxuan9@huawei.com>
U_͛x[tree beb484ea647de064537b92309d9eb5fe9cd08540
parent 816e259a17d305119aec43d1d177830e4971a78e
author 邹林肯 <zoulinken1@h-partners.com> 1761620914 +0000
committer 邹林肯 <zoulinken1@h-partners.com> 1761706569 +0000

修改sdk版本号
Signed-off-by: wangyang2022 <wangyang412@huawei.com>
Change-Id: I89f550a31db6170da8e44f3051328b2f241f2cc7
tܛx;tree 79e83acbeaec8faa51f71aff36b1be06f1fd1ed2
parent 11613abfe35888875be5679160b4840efa5c4935
author 胡清云 <huqingyun1@huawei.com> 1761651796 +0800
committer 胡清云 <huqingyun1@huawei.com> 1761651796 +0800

长按手势AllowableMovement类型修改为double

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
Y3xSx>tree d5aeb4df31150395e7531bfb628e66f03cbb52d6
parent 2e2c17168f30cd8c7e10fcbf8368c845de209836
parent 749747020195dc1d35d34d6df79d15c569ffe553
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761648637 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761648637 +0800

!4145 merge 1024 into master

list cachecount能力增强capi

Created-by: shi-hongjie
Commit-by: 石红杰
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/110713
https://gitcode.com/openharmony/docs/pull/103674
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4145Qxtree 2a3044f3ebbfbf44d32dda4b2166913748500274
parent 123b6522e072408f00a8f6842c6f0ca63095fc73
parent 6e6f72996a64ebf17d6a72a7f86925f0572e8ffe
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761640001 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761640001 +0800

!4139 merge master into master

修改逻辑相机接口版本号

Created-by: qq_42102992
Commit-by: w30076694
Merged-by: openharmony_ci
Description: ### 相关的Issue
#3202

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
https://gitcode.com/openharmony/docs/pull/113246
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4139-{ x"tree d16becb2ec950c3fdee9e88e6148afbdfcc7da35
parent 2d052a6499d0335626962c704946b589a3b75cc7
author jay-liusong <jay.liusong@huawei.com> 1761637144 +0800
committer jay-liusong <jay.liusong@huawei.com> 1761637144 +0800

Add ohaudiosuite

Signed-off-by: jay-liusong <jay.liusong@huawei.com>
Pn\x#tree 768c1d00a29d6e9777b8bc563b2aeed2f7796c80
parent 123b6522e072408f00a8f6842c6f0ca63095fc73
author xxngwang <wangxiaoxiang11@huawei.com> 1760929187 +0800
committer jay-liusong <jay.liusong@huawei.com> 1761637103 +0800

Add ohaudiosuite
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
\Extree 76ea1f3d6a23a90450e6339a37078d57dac957d8
parent 123b6522e072408f00a8f6842c6f0ca63095fc73
author Zenix <zhengxingyou1@huawei.com> 1761581325 +0800
committer Zenix <zhengxingyou1@huawei.com> 1761581325 +0800

fix overlay sdk

Signed-off-by: Zenix <zhengxingyou1@huawei.com>
VAx$tree a91e5881849a5f4504ed861f3609e9273f2ba37b
parent 967a425fc820dd2025edb7ea1b27a029d173eb6b
author xxngwang <wangxiaoxiang11@huawei.com> 1760929187 +0800
committer xxngwang <wangxiaoxiang11@huawei.com> 1761564099 +0800

Add ohaudiosuite
Signed-off-by: xxngwang <wangxiaoxiang11@huawei.com>
0_]Qxtree 7118e2e9d4590e55232c1cfe3c5bdef7bb87ca03
parent e2e5552a3bdd0f897185148b28f678bdd04689ad
parent b19d0ca136d729607cea7c9ee3b5941c49834591
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761551782 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761551782 +0800

!4144 merge master into master

add ndk interface

Created-by: Lzt
Commit-by: 陆志腾
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3203

### 原因（目的、解决的问题等）
添加api

### 描述（做了什么，变更了什么）
添加api

### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
- [Y] 是否通过注释规则扫描
- [Y] 是否更新json文件
- [Y] 实现代码是否已经合入
- [Y] 目标是否已经添加到build仓ndk依赖目标里
- [Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4144M{xJtree 9f5f673a57469fc10506b3b972d1a1aa56319db8
parent e2e5552a3bdd0f897185148b28f678bdd04689ad
author wangzhone <wangzhihao42@h-partners.com> 1761539230 +0800
committer wangzhone <wangzhihao42@h-partners.com> 1761539230 +0800

OH_ArkUI_CancelDataLoading修改返回值描述

Signed-off-by: wangzhone <wangzhihao42@h-partners.com>
;qpx-tree 8243748ca3c78338510fe905688274c0b1da6f50
parent 77d01f211a5dafad5594a67b330dc40872a82c0a
author TFDeeplearner <yanghaolong2@huawei.com> 1761533347 +0800
committer TFDeeplearner <yanghaolong2@huawei.com> 1761533347 +0800

修复头文件引用
Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>
sfmxNtree bcb7b084dac96309a64d64b532ef8d9c9d2097c7
parent e2e5552a3bdd0f897185148b28f678bdd04689ad
author TFDeeplearner <yanghaolong2@huawei.com> 1761530716 +0800
committer TFDeeplearner <yanghaolong2@huawei.com> 1761530716 +0800

新增编解码器nativeBufferFormat能力查询接口
Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>
7y,xGtree 4bd0f6d46003dc1dc3243ab36a77df8e8e40a7eb
parent 4a981a48aa56937896718e8b8c5dc029eb07a68c
author anemoi <qihaonan3@huawei.com> 1761528692 +0800
committer anemoi <qihaonan3@huawei.com> 1761528692 +0800

【修改说明】添加vc1/msvideo1/wmv3/mjpeg的MIME/profile/level定义

Signed-off-by: anemoi <qihaonan3@huawei.com>
ƀsxStree 86a61112837fada32bbc2ce6920f3ab63e5b597e
parent e2e5552a3bdd0f897185148b28f678bdd04689ad
author anemoi <qihaonan3@huawei.com> 1761387950 +0800
committer anemoi <qihaonan3@huawei.com> 1761387950 +0800

【修改说明】添加av1/vp9/vp8/vc1/msvideo1/wmv3/mjpeg的MIME/profile/level定义

Signed-off-by: anemoi <qihaonan3@huawei.com>
Æwx0tree 711c528f139ff4cc806c1911f54abeb63b849a54
parent 4d7ee7227b7a455225d5111f83d548a8232b9886
author huqinglong <huqinglong1@h-partners.com> 1761385275 +0800
committer huqinglong <huqinglong1@h-partners.com> 1761385275 +0800

NDK轨道信息key值

Signed-off-by: huqinglong <huqinglong1@h-partners.com>
Jex?tree d7275b51d074359d6dac46ab6b1502fe60d1e4be
parent 262566c64fc97676a91fe0ef1ffc319ed440ffce
author w30076694 <wumingyang11@h-partners.com> 1761361197 +0800
committer w30076694 <wumingyang11@h-partners.com> 1761361197 +0800

逻辑相机NDK接口修改版本号

Signed-off-by: w30076694 <wumingyang11@h-partners.com>
pmgRx tree db66f49af0ae497d371b4269d4afca5361e127f2
parent ef76ef1f994df542dcd03cee33ffa21b78743229
parent 266b15dccc0d19f80601611af3211614db7399ac
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761358886 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761358886 +0800

!4146 merge master into master

fix comment

Created-by: zhouwenbo7
Commit-by: zhouwenbo7
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3205

### 原因（目的、解决的问题等）
fix comment

### 描述（做了什么，变更了什么）
fix comment

### 自检结果（结果截图添加到下面）
- [Y ] 是否通过C语法扫描
- [ Y] 是否通过注释规则扫描
- [ Y] 是否更新json文件
- [ Y] 实现代码是否已经合入
- [ Y] 目标是否已经添加到build仓ndk依赖目标里
- [Y ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4146Jxxtree a670a2e95a2a9c0fb5fa743116575fe6acdaeaab
parent 078c06ec91a3d2f0f6827c80af4f9c5ce06d4d71
author zhouwenbo7 <zhouwenbo7@huawei.com> 1761309362 +0800
committer zhouwenbo7 <zhouwenbo7@huawei.com> 1761309597 +0800

fix comment

Signed-off-by: zhouwenbo7 <zhouwenbo7@huawei.com>
YRx]tree 6c3e449e67e593e2621aa5e05c6d9a44f1cddcb0
parent 8e7013b5811cd2d43fd8dc0b288c940b1bb43692
author 石红杰 <shihongjie@huawei.com> 1761306905 +0800
committer 石红杰 <shihongjie@huawei.com> 1761306905 +0800

list cachecount能力增强capi

Signed-off-by: 石红杰 <shihongjie@huawei.com>
Change-Id: I89f4bb283f05a2fc4f6e9b09cc9fadca8b519e20
S{ėxtree a0b94e66a5e6b4f544e8cd6b3499cbe63b96abb7
parent 3fabd5ba2cfc5b3b3c76beefa9c5001f7b97ddb5
author 陆志腾 <luzhiteng@huawei.com> 1761299475 +0800
committer 陆志腾 <luzhiteng@huawei.com> 1761299475 +0800

add ndk interface

Signed-off-by: 陆志腾 <luzhiteng@huawei.com>
obxtree 6d86153436ef6ff50beeb8ad6dad4a8eff72f55c
parent 262566c64fc97676a91fe0ef1ffc319ed440ffce
author 陆志腾 <luzhiteng@huawei.com> 1761299241 +0800
committer 陆志腾 <luzhiteng@huawei.com> 1761299241 +0800

add ndk interface

Signed-off-by: 陆志腾 <luzhiteng@huawei.com>
^axVtree 7e02308b6353a9ee401ca60c87a7ffddf51537ee
parent 262566c64fc97676a91fe0ef1ffc319ed440ffce
author Lem0nC <caimengyu2@huawei.com> 1761296512 +0800
committer Lem0nC <caimengyu2@huawei.com> 1761296512 +0800

需求：支持行首标点压缩

Signed-off-by: Lem0nC <caimengyu2@huawei.com>
Change-Id: Ie373c4a783f6d3f46a8d10a18d744fc1b2216c1e
sxGtree 7e92e4e558c7e4dd64d56b9071ed3cb9aac6a5ca
parent 41a9346d69826c164c49334b0f8c9a821dfab75e
author liuyongkai2 <liuyongkai2@huawei-partners.com> 1761278439 +0800
committer liuyongkai2 <liuyongkai2@huawei-partners.com> 1761278439 +0800

NODE_SWIPER_ITEMFILLPOLICY

Signed-off-by: liuyongkai2 <liuyongkai2@huawei-partners.com>
di Lx2tree 698504af718a09b4079308a6397bc26e5ca41a97
parent 078c06ec91a3d2f0f6827c80af4f9c5ce06d4d71
parent d8274b3dfe0bbd598dd27a4f219e7576523d8214
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761274409 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761274409 +0800

!4129 merge local into master

迁移枚举

Created-by: Felix-fangyang
Commit-by: fangxiang
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4129lz^xKtree 19e5ff4dc4d52abfeae55b9b5500354fe6f85764
parent 078c06ec91a3d2f0f6827c80af4f9c5ce06d4d71
author zhanghang <zhanghang160@huawei-partners.com> 1761271265 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1761271265 +0800

ItemFillPolicy CAPI add None type

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
=jgxtree 75e51163af897c4d9eb0e0966e198522872306cd
parent 078c06ec91a3d2f0f6827c80af4f9c5ce06d4d71
author baijidong <baijidong@huawei.com> 1761211234 +0800
committer baijidong <baijidong@huawei.com> 1761211234 +0800

add errcode for ndk

Signed-off-by: baijidong <baijidong@huawei.com>
Wx6tree 6f706e853f2911aa3b42e47de9dbfe6eec3a20c3
parent 9335da4933151df73160636a0172321aa893adcb
author Hennes <lurihong@h-partners.com> 1761187134 +0800
committer Hennes <lurihong@h-partners.com> 1761188580 +0800

修改动态元数据风格key值的注释说明

Signed-off-by: Hennes <lurihong@h-partners.com>
rxNtree 44046d8b63d823f22e5fa3be6b416417a9bb7a82
parent 6e920d1a5d1f31a6fac07fb05c08766b5d12f461
author fangxiang <fangxiang19@huawei.com> 1761186933 +0000
committer fangxiang <fangxiang19@huawei.com> 1761187547 +0000

fix codecheck

Signed-off-by: fangxiang <fangxiang19@huawei.com>
Change-Id: If7e30baa9c38c37428180dfd4bdb5e99c77d868b
bfox
tree 4d7c5fc8d68f376207df7689dea4824b3e77369e
parent 680233d300399316aada33153c8949455431f282
parent 025102a6845c9afb04cf62361aad7b827bf45bfa
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761133992 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761133992 +0800

!4130 merge master into master

add API 22 audio mimetype

Created-by: suruoyan
Commit-by: SuRuoyan
Merged-by: openharmony_ci
Description: ### 相关的Issue
已关联

### 原因（目的、解决的问题等）
API 22新增8个音频解码的mimetype，用于创建音频解码器。

### 描述（做了什么，变更了什么）
新增8个音频解码的mimetype。

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
相关合入链接：
https://gitcode.com/openharmony/multimedia_av_codec/pull/6458
https://gitcode.com/openharmony/multimedia_av_codec/pull/6605
https://gitcode.com/openharmony/multimedia_av_codec/pull/6637
https://gitcode.com/openharmony/multimedia_av_codec/pull/6698
https://gitcode.com/openharmony/multimedia_av_codec/pull/6653
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致


### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 兼容
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
SDK合入后，再合入docs：
https://gitcode.com/openharmony/docs/pull/112865


See merge request: openharmony/interface_sdk_c!4130M7QQxtree da3fb0290c6ea7ae3252faa98256202accd4d2bc
parent e3ab1c2f16eac38bd1458c1cf845585489d9cd40
parent 8e03d72ec5db2e40d2ebb9cd1e54fa8a992d5dff
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761127389 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1761127389 +0800

!4126 merge hzq into master

添加英文注释

Created-by: liuyongkai2
Commit-by: liuyongkai2;openharmony_ci
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档  链接：https://gitcode.com/openharmony/docs/pull/112556
- [ ] 否，不涉及刷新API参考文档


See merge request: openharmony/interface_sdk_c!4126Jwxtree d6592d4f9f82adf614b9b698e3591c84c81efb7d
parent e3ab1c2f16eac38bd1458c1cf845585489d9cd40
author SuRuoyan <suruoyan1@huawei.com> 1761113498 +0800
committer SuRuoyan <suruoyan1@huawei.com> 1761113498 +0800

add API 22 audio mimetype

Signed-off-by: SuRuoyan <suruoyan1@huawei.com>
|@Y2xMtree 74b7e5ddca73725eae8fbb9b2b3989da73ba335d
parent e3ab1c2f16eac38bd1458c1cf845585489d9cd40
author fangxiang <fangxiang19@huawei.com> 1761103956 +0000
committer fangxiang <fangxiang19@huawei.com> 1761103956 +0000

迁移枚举

Signed-off-by: fangxiang <fangxiang19@huawei.com>
Change-Id: Id5ac914c51e2e419e6d455b1f43e8cb0ea0164e3
jkwx?tree 8064137e486ffa1bee3aa487adb5624f100f0574
parent 1095185aa987d6dcc3196de3201d75ff21d01669
author liuyongkai2 <liuyongkai2@huawei-partners.com> 1761014485 +0800
committer liuyongkai2 <liuyongkai2@huawei-partners.com> 1761014485 +0800

添加英文注释

Signed-off-by: liuyongkai2 <liuyongkai2@huawei-partners.com>
bblxtree 56e8cbfa0c59081cde1df98466768b6d83e383e8
parent 69136e994e8758d7833b79ddb0240bd5aade57fb
author sunyaozu <sunyaozu@huawei.com> 1758532047 +0800
committer sunyaozu <sunyaozu@huawei.com> 1761011524 +0800

add i18n timezone ndk interface

Signed-off-by: sunyaozu <sunyaozu@huawei.com>
L\bx,tree a22faa4da7350d99fc3dc8d706bfeb5325245523
parent 63ccf405dbcd0f68565cf77128a8d2e959c6e797
parent a639084fef19812055cf60572997528f430ec2cd
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760689145 +0800
committer liuyongkai2 <liuyongkai2@huawei-partners.com> 1760965688 +0800

!4066 merge master into master

add ROI metadata

Created-by: yang-xiaoyu5
Commit-by: yang-xiaoyu5
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/multimedia_av_codec/issues/5164

### 原因（目的、解决的问题等）
视频生产者需要在视频生产的同时就配置ROI信息，增加ROI通过图形接口随帧配置的功能

### 描述（做了什么，变更了什么）
OH_NativeBuffer_MetadataKey中新增roi metadata key
并修改描述，metadata不仅仅是hdr的metadata，也包含roi场景

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/112218

See merge request: openharmony/interface_sdk_c!4066
Yx*tree 689580c86e8739302a1f930191c7cdf37e3947e2
parent 3bb9b455ced7d7f4c48070bd52669c172545982b
author 屑屑屑 <jiangwenda5@h-partners.com> 1760685310 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1760926277 +0800

更新接口描述

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
_kQxtree eca3ce7e637bd2bd110a833f4e4a6068e4351910
parent cbab63e367c2aabc05b5a62b5190b920d66e78dd
parent 7f67e8f235203979321a81d082fb9881ff4d4f4b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760762858 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760762858 +0800

!4113 merge remote into master

修改枚举命名

Created-by: dingpy
Commit-by: dingpy
Merged-by: openharmony_ci
Description: ### 相关的Issue
start build

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）
修改枚举命名

### 自检结果（结果截图添加到下面）
- [是] 是否通过C语法扫描
- [是] 是否通过注释规则扫描
- [是] 是否更新json文件
- [是] 实现代码是否已经合入
- [是] 目标是否已经添加到build仓ndk依赖目标里
- [] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [Y] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/111500
- [Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4113g~xtree 242622fc4ff318f31880a127852961413914ff9f
parent bdf2c60c1373fa9913a533a9af327921d6c8a40a
author dingpy <dingpanyun1@huawei.com> 1760670907 +0000
committer dingpy <dingpanyun1@huawei.com> 1760670907 +0000

修改枚举命名

Signed-off-by: dingpy <dingpanyun1@huawei.com>
 \=xWtree 3c9d8457ddf9fa872f21047c3a84fde82d14e7ff
parent 4424a6d832ea7b66572cf89917f06e376732a18f
author yangyingchun <yangyingchun5@huawei.com> 1758540993 +0800
committer douzihao9 <douzihao@huawei.com> 1760667399 +0800

fix/mindspore ndk not include interface: OH_AI_DeviceInfoGetPriority

Signed-off-by: yangyingchun <yangyingchun5@huawei.com>
Kpofxktree 18d4d59527e1a78c18911fd540f2c8e1d9df1ae4
parent 436dc00bdaa706023b86d4ce91a8465e8f594a8f
parent 9335da4933151df73160636a0172321aa893adcb
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760617137 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760617137 +0800

!3982 merge master into master

新增动态元数据风格的key和枚举值

Created-by: Hennes
Commit-by: Hennes
Merged-by: openharmony_ci
Description: ### 相关的Issue
[新增动态元数据风格的key和枚举值](https://gitcode.com/openharmony/interface_sdk_c/issues/3073)

### 原因（目的、解决的问题等）
新增动态元数据风格的key和枚举值

### 描述（做了什么，变更了什么）
新增动态元数据风格的key和枚举值

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/ba36e2b2-e687-4b33-a74c-03ebe9acb27b/image.png 'image.png')
- [x] 是否通过注释规则扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/368f7c40-f3f7-4082-a145-6787bb3f33c1/image.png 'image.png')
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
- [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3982P:x?tree f4382de2ba91316e1a2e990b98769293e1417dd1
parent 7f5bdbea8dfd974e2d0f3de93345515e3ddb1696
author liuxiang <liuxiang193@h-partners.com> 1760582366 +0800
committer liuxiang <liuxiang193@h-partners.com> 1760582366 +0800

按照架构信息平台最新版本修改

Signed-off-by: liuxiang <liuxiang193@h-partners.com>
9txtree c55a56c0f62b0c7e699dc31f3cb004c170843c38
parent 7f5bdbea8dfd974e2d0f3de93345515e3ddb1696
author dingpy <dingpanyun1@huawei.com> 1760576342 +0000
committer dingpy <dingpanyun1@huawei.com> 1760578905 +0000

6.0新增需求&枚举

Signed-off-by: dingpy <dingpanyun1@huawei.com>
V^9Gxytree d9481ddd303faacb0c5dedfdd96f56022a0f6e27
parent 8c8564f8d86223e2aab168950cd2a797edb43955
parent f28f4abcfff7ce2f4902226143b2ad4f5eafb4d6
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760525959 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760525959 +0800

!4039 merge master into master

capi注释修改

Created-by: nicholaszc
Commit-by: 赵聪
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ]  是否更新json文件
- [ ]  实现代码是否已经合入
- [ ]  目标是否已经添加到build仓ndk依赖目标里
- [ ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
  - [ ]  是否经过评审 Y

### L0新增用例自检结果
- [ ]  否，无新增

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4039T.xtree a31a543a6a5479ada08340cdf50392035d27aaab
parent 8e7013b5811cd2d43fd8dc0b288c940b1bb43692
author 木子李 <liyi263@h-partners.com> 1760086006 +0800
committer 木子李 <liyi263@h-partners.com> 1760511799 +0800

add new interface

Signed-off-by: 木子李 <liyi263@h-partners.com>
 _x*tree 9b248341ca6d6a09bc9dd6914624a895f3b7ac45
parent 8cf22700f7471d51844d2733e348d36a2a6067d4
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760425254 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760425254 +0800

fix code check problem

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>]x0tree 51a3d28195e304ac71c33437f3726d060fb6275e
parent 4df9d368bf7d57ef0a9e6fbf28f50bc229724f3d
author huqinglong <huqinglong1@h-partners.com> 1760407637 +0800
committer huqinglong <huqinglong1@h-partners.com> 1760407637 +0800

NDK轨道查询接口

Signed-off-by: huqinglong <huqinglong1@h-partners.com>
{?ggkxItree 4d92fb557ef7c31d1a452e6255ea5dfa17bb42be
parent 9795eb7ab53ac79d95cb31f075b5928c113b3b9a
parent dc6d45cd9e3ef3ac98e1d7527cdfdbe9e8aceb14
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760359614 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760359614 +0800

!4088 merge dev_sdkm into master

[sdk] 删除callback接口返回AV_ERR_INVALID_STATE

Created-by: wang-ziweix
Commit-by: 王子微
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3161

### 原因（目的、解决的问题等）

删除callback接口返回AV_ERR_INVALID_STATE
### 描述（做了什么，变更了什么）

删除callback接口返回AV_ERR_INVALID_STATE
### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/6e06227f-e26e-44f5-adf0-4ed4746284e5/image.png 'image.png')
- [x] 是否通过注释规则扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/39726a5a-4018-45cd-bbb0-565935af18e6/image.png 'image.png')
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档 
- [ ] 否，不涉及刷新API参考文档

https://gitcode.com/openharmony/docs/pull/111206

See merge request: openharmony/interface_sdk_c!4088*p1xNtree 4b630cd9831935be751e44d86a6e4dfa19fbb035
parent 019b40f96b462c0bdc5dcdcd2112d34ed2c09fcc
author fangxiang <fangxiang19@huawei.com> 1759132022 +0000
committer fangxiang <fangxiang19@huawei.com> 1760358770 +0000

add interface

Signed-off-by: fangxiang <fangxiang19@huawei.com>
Change-Id: I71f3be9966e15d33ed4b695f20dd53b404e81caa
ZHg@TxBtree 519b51841d5f67c39664c7891862317b423b4c11
parent 1bf0d4732f87d86aa04eac6267e114e32f461469
parent 497e51a8217c78573edd4846c8ba054e5f654af5
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760344864 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760344864 +0800

!4086 merge listLanes_sdk_c into master

List/Grid/WaterFlow Add ItemFillPolicy

Created-by: catherinecheung
Commit-by: zhanghang
Merged-by: openharmony_ci
Description: ### 相关的Issue
3160

### 原因（目的、解决的问题等）
List/Grid/WaterFlow Add ItemFillPolicy

### 描述（做了什么，变更了什么）
List/Grid/WaterFlow Add ItemFillPolicy

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4086它xPtree d3b3ce391723eaa5202bace20bc76a7ef80241fd
parent 90535120e1d5bd3f2e8942ce4b7fd7a816f9e22c
author 王子微 <wangziwei38@h-partners.com> 1760164788 +0800
committer wang-ziweix <wangziwei38@h-partners.com> 1760339950 +0800

[sdk] 删除callback接口返回AV_ERR_INVALID_STATE

Signed-off-by: wang-ziweix <wangziwei38@h-partners.com>
txPtree 8aaa6b4bc0b524f3906802775a359e4f7c82d4a4
parent 281f45544f154be5e59035f7d43fcc36b2005b6a
author zhanghang <zhanghang160@huawei-partners.com> 1760149744 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1760339266 +0800

List/Grid/WaterFlow Add ItemFillPolicy

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
kxWtree ef8ef3fde52a41f5c903af5844b7a07779f0b2fa
parent fde7d8990b48a083d05dc36eba41ae931174ef27
author liuxiang <liuxiang193@h-partners.com> 1760320633 +0800
committer liuxiang <liuxiang193@h-partners.com> 1760320633 +0800

add setPickerMode/excludePickerWindows/presentPicker in multimedia

Signed-off-by: liuxiang <liuxiang193@h-partners.com>
pUxtree 0935572cca627a728ea295b2cfb0f0054f93c4a4
parent 5c91e8d822aea7625ff129af05a3363a68efb442
author baijidong <baijidong@huawei.com> 1760281751 +0800
committer baijidong <baijidong@huawei.com> 1760281751 +0800

add rekeyex for ndk

Signed-off-by: baijidong <baijidong@huawei.com>
XXx'tree 5b7d942e22c310bd0629efa046533b1e145883b5
parent 816e259a17d305119aec43d1d177830e4971a78e
author yanghuiqing <yanghuiqing6@huawei.com> 1760255792 +0800
committer yanghuiqing <yanghuiqing6@huawei.com> 1760255792 +0800

新增类型常量

Signed-off-by: yanghuiqing <yanghuiqing6@huawei.com>
#c}xtree 73cf5eb394e23d6855cb57146e7dddf738168044
parent 8aefad52cbbe11d343051036436236d7893583bc
author baijidong <baijidong@huawei.com> 1760241118 +0800
committer baijidong <baijidong@huawei.com> 1760241118 +0800

add rekeyex for ndk

Signed-off-by: baijidong <baijidong@huawei.com>
bW{xtree b8c1d43f175f5b2a3f4a9e73b63784630aad2aba
parent 816e259a17d305119aec43d1d177830e4971a78e
author baijidong <baijidong@huawei.com> 1760241065 +0800
committer baijidong <baijidong@huawei.com> 1760241065 +0800

add rekeyex for ndk

Signed-off-by: baijidong <baijidong@huawei.com>
4WɖRx&tree 2401ee208254b12d4e0a194a97d5868250d72407
parent 47d90c9098e5cb8340544f5ac481b3fd5cf5ea61
parent 983720f55179a00facc04075dc0eb6161773e2e0
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760190216 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760190216 +0800

!4079 merge cursor_info_ndk_interfaces into master

add ndk interfaces about cursor info

Created-by: linuxscreen
Commit-by: wanghui
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/111069

See merge request: openharmony/interface_sdk_c!4079 J{)xQtree 084a099af056361a201a89b35714e311cc4103e3
parent 170130b1508939ca3fe22083bb27a8d67a155015
author Hu_ZeQi <huzeqi@huawei.com> 1760186779 +0800
committer Hu_ZeQi <huzeqi@huawei.com> 1760186779 +0800

Swiper:add NODE_SWIPER_ITEMFILLPOLICY

Signed-off-by: Hu_ZeQi <huzeqi@huawei.com>
Change-Id: If7b5574b9ad601702b6c8473f4f19cde02e09e0d
{jcwxztree 468dc104ac57e857a5b7d69ff746cd10e2c6ee56
parent e278861af77dcde98caf86050c2fe453c21d671a
author lcy_lovebug <lichengyi5@h-partners.com> 1760171649 +0800
committer lcy_lovebug <lichengyi5@h-partners.com> 1760171649 +0800

AES-CCM支持指定aead长度（C接口）

Signed-off-by: lcy_lovebug <lichengyi5@h-partners.com>
Change-Id: I466654da63d2dcca0f78ff918bd3c55d66c07530
~xtree ef20d4cb8e86196b39831fcbdae418ba4382147c
parent ed4e89ec2295932c5520a02932c4e036958d31a1
author Hennes <lurihong@h-partners.com> 1758109608 +0800
committer Hennes <lurihong@h-partners.com> 1760164760 +0800

新增NDK接口

Signed-off-by: Hennes <lurihong@h-partners.com>
2YSx6tree 5c84360c707a6834b50677c63182c904e79e1d42
parent 608828dc6095f7fc0a0d294312fba2acad0f5080
parent 7d13502ed2123dd89dfb6ff0909334678b6c88d4
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760162358 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760162358 +0800

!4047 merge master into master

Fix spelling errors

Created-by: dongjie123
Commit-by: dongjie123
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/resourceschedule_ffrt/issues/903

### 原因（目的、解决的问题等）
修复拼写错误

### 描述（做了什么，变更了什么）
修复拼写错误

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4047}rx!tree 0914a5a354684d984461daf6a0ecad848ea8c0ab
parent 281f45544f154be5e59035f7d43fcc36b2005b6a
parent 259e2de0136c685150fd005c1efd4b0b6a0b2273
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760156505 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760156505 +0800

!4031 merge ndk_enum_0924 into master

modify some enums of NDK

Created-by: tanwlanyue
Commit-by: tanwlanyue
Merged-by: openharmony_ci
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3158?ref=&did=3340082#tid-3340082
### 原因（目的、解决的问题等）
NDK枚举值变更

### 描述（做了什么，变更了什么）
NDK枚举值变更

### 自检结果（结果截图添加到下面）
![20251010-190243.jpg](https://raw.gitcode.com/user-images/assets/4379443/6f1542c9-2157-4e6a-83f8-0e7f6f408c2f/20251010-190243.jpg '20251010-190243.jpg')
- [Y ] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [N ] 是否更新json文件
- [ Y] 实现代码是否已经合入
https://gitcode.com/openharmony/multimedia_camera_framework/pull/3960
- [ Y] 目标是否已经添加到build仓ndk依赖目标里
- [ Y] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [N ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [Y ] 是，有新增L0用例，且完成自检
- [] 否
![20251010-192731.jpg](https://raw.gitcode.com/user-images/assets/4379443/e5d67c87-80fc-48d9-b136-07d4814032f3/20251010-192731.jpg '20251010-192731.jpg')
### API参考文档影响评估（提供docs仓pr链接）
- [Y ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony-sig/interface_native_header/pull/2568

See merge request: openharmony/interface_sdk_c!4031w?xJtree 9805973355d1f94cc16631dcb8ada40c0c444d6f
parent 281f45544f154be5e59035f7d43fcc36b2005b6a
author 任国军 <renguojun1@h-partners.com> 1760152316 +0800
committer 任国军 <renguojun1@h-partners.com> 1760152316 +0800

add OH_AbilityRuntime_ApplicationContextGetLogFileDir

Signed-off-by: 任国军 <renguojun1@h-partners.com>
sx3tree 9ba623ebcb81f1ab1b432191a3a3db42517bfe21
parent fdc4db2a9d98d400fc552e5448620ca45304bc63
author wanghui <wanghui437@h-partners.com> 1760100825 +0800
committer wanghui <wanghui437@h-partners.com> 1760100825 +0800

add ndk interfaces about cursor info

Signed-off-by: wanghui <wanghui437@h-partners.com>
1aRx/tree 0583ac3408e51dc8681fda3bce4414bd270e4ad0
parent 8e7013b5811cd2d43fd8dc0b288c940b1bb43692
parent 06d459bca7fd874d85015dbc5f450f1904e897e5
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760092973 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760092973 +0800

merge master into master

新增图形枚举查询的Key

Created-by: lzm233
Commit-by: lzm233
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/110575
文档PR要等sdk合入trunk才能合入doc仓
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4060Ux9tree 082a698d503956195a48e9d0e5c89f3a6e6dece5
parent 2d7f99057544d1d661f0522fa4d28d2fe225df3a
author zhangdd_ewan <zhangdongdong50@huawei.com> 1760084724 +0800
committer zhangdd_ewan <zhangdongdong50@huawei.com> 1760084724 +0800

改icu ndk接口版本22

Signed-off-by: zhangdd_ewan <zhangdongdong50@huawei.com>
hxtree 3cebc3fc2b15298bb158e45bad1ce34fda96185d
parent 8e7013b5811cd2d43fd8dc0b288c940b1bb43692
author yuanlin94 <linyuan25@h-partners.com> 1760080422 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1760080422 +0800

c21to22

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
)VǑxAtree 546716d859bf2705ed176dc5c507900e0af36f0f
parent dd231be36d9a38151410a343cd81ace7de6562a7
author shilei <shilei91@huawei.com> 1759656797 +0800
committer shilei <shilei91@huawei.com> 1760068132 +0800

add napi interface

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I9cc2e2020be52e83e935a5fc6ccad72314d54671
Y`x tree 949f1c86c26a6bf6057751e0620b43a41878cba0
parent 79baf34979ff3ed59a01bc7e3bf02c0af39c624a
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760064979 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760064979 +0800

删除空格

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>_x tree 3b9f4cad28782a353d217f8bc6d8bf0f45433092
parent 67cf03c7268f9ae0bf51a3d20ae7001d5174f9b7
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760064906 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1760064906 +0800

描述修改

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>o_x!tree b8ec155a2f11d23244c6fcece0a4a70868834961
parent b1e81ff99482d8e174e4e13566e8bb5a86ae348d
author chen-qiao-yi <chenqiaoyi2@huawei.com> 1760061500 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1760061500 +0800

优化代码

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
z^>x.tree 12548a03fb8cf4990edd60dc1b28703ba11fcbfc
parent e278861af77dcde98caf86050c2fe453c21d671a
author liujiaxing2024 <liujiaxing19@huawei.com> 1759213095 +0800
committer liujiaxing2024 <liujiaxing19@huawei.com> 1760058860 +0800

mainThreadJankV2

Signed-off-by: liujiaxing2024 <liujiaxing19@huawei.com>
^x!tree 6d284db7d960f2d00d5b791de295bcad5e8bf077
parent 4eaef5ee208a95c79316b1dd88016caccf86945d
author chen-qiao-yi <chenqiaoyi2@huawei.com> 1760017998 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1760017998 +0800

优化接口

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
_Dx!tree 3ce0a6d51d6bbc329c3f9d1dee129fabaac0290d
parent 69e5fa817dd270f94792d3b60668a1b6f571d4ea
author chen-qiao-yi <chenqiaoyi2@huawei.com> 1760014040 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1760014040 +0800

告警修正

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
'_zSx?tree 378386d7b8a71e0c4517a0a558e7db6360b678b1
parent bb7004816a206d2277914d550dc6ba9605d75764
parent 986ca5af753c3da0ea99abd0a3f4744f73455006
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760013897 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1760013897 +0800

merge master into master

新增NDK接口

Created-by: kidoku
Commit-by: zhengyaozong
Merged-by: openharmony_ci
Description: https://gitcode.com/openharmony/multimodalinput_input/pull/8539
### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [Y ] 是否更新json文件
- [ Y] 实现代码是否已经合入
- [Y ] 目标是否已经添加到build仓ndk依赖目标里
- [Y ] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ N] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ Y] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/110082
- [ Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4028@>x*tree 8ea6b239d932de89d7f22c3251ecf0264c670077
parent 938c2f23ee420e4958556d9438d9cdb486be1a63
author zhengyaozong <zhengyaozong@h-partners.com> 1760009443 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1760009443 +0800

修正

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
b~x*tree a3fd17c09be13cde764df91b81559e4070557635
parent f0d6fd9922133590856440317ac7025fb07884f6
author zhengyaozong <zhengyaozong@h-partners.com> 1760008732 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1760008732 +0800

修正

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
ax6tree 0d5f43ba593a649c6aaa767bfc0522ff49d2ac14
parent f8015e64213b329092d021db98dd470143640214
author weixin_46211877 <gongjingbo2@huawei.com> 1758871649 +0800
committer weixin_46211877 <gongjingbo2@huawei.com> 1760001541 +0800

add lockcursor interface

Signed-off-by: weixin_46211877 <gongjingbo2@huawei.com>
^kx)tree 66f2d73f4571e9d0519c90fc8fa492f44a6de9c0
parent e278861af77dcde98caf86050c2fe453c21d671a
author Polyhedron-ZXero <polyhedron.wl@live.cn> 1759213372 +0800
committer chen-qiao-yi <chenqiaoyi2@huawei.com> 1759924982 +0800

增加 NDK 接口

Signed-off-by: chen-qiao-yi <chenqiaoyi2@huawei.com>
.aLJx^tree 874d207ae54902f89801dbcde14a60e43a3f086c
parent b0d8090bedf67fe86d984575aaf7fbe2331b93d3
parent 5231b73e644cc54e50d436092ec6a63df6546e3e
author ohci1 <ohci1@noreply.gitcode.com> 1759744988 +0800
committer ohci1 <ohci1@noreply.gitcode.com> 1759744988 +0800

merge coasting_axis1 into master

fix build error

Created-by: yuanlin94
Commit-by: yuanlin94
Merged-by: ohci1
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
- [x] 头文件library声明与SDK so库名称一致

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4074^GՑx!tree 874d207ae54902f89801dbcde14a60e43a3f086c
parent b0d8090bedf67fe86d984575aaf7fbe2331b93d3
author yuanlin94 <linyuan25@h-partners.com> 1759742654 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1759742654 +0800

fix build error

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
ͺZ_x!tree 281e9b2ca26cca50256fffaaffb145e8c3e5526d
parent dd231be36d9a38151410a343cd81ace7de6562a7
author yuanlin94 <linyuan25@h-partners.com> 1758009524 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1759671372 +0800

惯性轴事件

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
_xtree 4f25b6735fec0e92f76ee4399ea134c3ed41659c
parent 170130b1508939ca3fe22083bb27a8d67a155015
author zcdqs <junfeng.lijunfeng@huawei.com> 1758549596 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1759569685 +0800

add grid capi

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
,Z4x1tree ff4488a6a281cad1e26431dd46465f7602017784
parent 458dc6137d57f73dfb855c813613cdd3acd14641
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1759221885 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1759221885 +0800

enhance qp offset description

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>kNaCx9tree 5463112ba25dbd408b6e86c8c06e1c27f69d3a38
parent 18084a03325e68a9d23ebc29bc7d112dc3309a53
author lanming <lanming@huawei.com> 1759220775 +0800
committer lanming <lanming@huawei.com> 1759220775 +0800

算法库对称算法api新增错误码，不修改旧的实现

Signed-off-by: lanming <lanming@huawei.com>
xۑx!tree d226b9c64f2b2dcd49fbd72145554801abbb5cd7
parent 149babdc415bc63bd301a708a3cc77bed1c446d2
author yuanlin94 <linyuan25@h-partners.com> 1758886051 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1759218483 +0800

node_clip_shape

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
zt[Hx>tree 8f9b7a38473e89d81d5c9a567cdd5ff400679a18
parent 60907ebb805712e47d198325d99689a3c804741f
author gcw_dyOv3Sds <shiwei75@huawei.com> 1759217659 +0800
committer gcw_dyOv3Sds <shiwei75@huawei.com> 1759217659 +0800

【接口】屏幕录制支持设置高亮录制区域
Signed-off-by: user.name <shiwei75@huawei.com>
Yvx0tree f4b56ccdd0dbf3b254d2cb79a681fd9afc053149
parent 36628ed3a1b27c79b4a0a068313e036c24a673cc
author zhengyaozong <zhengyaozong@h-partners.com> 1759216387 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759216387 +0800

版本修正

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
,gx4tree 0761a480633c624e0795b77ccc67a7374d7459be
parent 11b9b68837242543d052cabe28eac11210a74907
author zhangdd_ewan <zhangdongdong50@huawei.com> 1759215037 +0800
committer zhangdd_ewan <zhangdongdong50@huawei.com> 1759215037 +0800

补充icu ndk接口

Signed-off-by: zhangdd_ewan <zhangdongdong50@huawei.com>
*dהx4tree 8885c0ab06ee7ed9c6690d64a92d9a6f3ae995c7
parent e278861af77dcde98caf86050c2fe453c21d671a
author zhangdd_ewan <zhangdongdong50@huawei.com> 1759200525 +0800
committer zhangdd_ewan <zhangdongdong50@huawei.com> 1759200525 +0800

补充icu ndk接口

Signed-off-by: zhangdd_ewan <zhangdongdong50@huawei.com>
.5fxtree 1b268ee2fb7375fdd777603e7ff43e131271c0e0
parent e278861af77dcde98caf86050c2fe453c21d671a
author yuanlin94 <linyuan25@h-partners.com> 1759136055 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1759198297 +0800

hasAxis

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
W?xtree c19836e02b58aa64112878d3c6658b14c3b05fe5
parent 17888bac497b5b66abce349b370ead7b3646c3ed
author baijidong <baijidong@huawei.com> 1759140463 +0800
committer baijidong <baijidong@huawei.com> 1759140463 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
q^ڛxtree 572b23f77943fedda42f3cf8b0700d6ed8720872
parent 5a87d5dce082b83e3894ac68fcba6bb8443ab20e
author baijidong <baijidong@huawei.com> 1759140387 +0800
committer baijidong <baijidong@huawei.com> 1759140387 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
_ux9tree d3bf4974ff5fedb997e373db9992770869f9a988
parent 7fe7e1b8ffd06b592906ab77b67ce16e08fe40ee
author zhengyaozong <zhengyaozong@h-partners.com> 1759136904 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759136904 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
qlx$tree e2e7712333de746092727ff22039f1f78168a357
parent e278861af77dcde98caf86050c2fe453c21d671a
author yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1759136674 +0800
committer yang-xiaoyu5 <yangxiaoyu5@huawei.com> 1759136674 +0800

add ROI metadata

Signed-off-by: yang-xiaoyu5 <yangxiaoyu5@huawei.com>V[xtree 8c3b4f7decde83c41294742ab610ecd2bd80c472
parent e278861af77dcde98caf86050c2fe453c21d671a
author xuhang363 <xuhang89@huawei.com> 1759134198 +0800
committer xuhang363 <xuhang89@huawei.com> 1759134749 +0800

Ai-CAPI-0929

Signed-off-by: xuhang363 <xuhang89@huawei.com>
@QRxtree 3b0d826d21a04ba39a4538b4677e7b76979f7413
parent e4d917296558547ec418e30fa050139c2cfba482
author lzm233 <linziming2@huawei.com> 1759132210 +0800
committer lzm233 <linziming2@huawei.com> 1759132210 +0800

新增图形枚举查询的Key

Signed-off-by: lzm233 <linziming2@huawei.com>
Ge`Rx)tree 05af6cd604af38d39cb41625cbf576123babe1ce
parent 4820bae4618fdbd90f20996bf136d840c3ea4ac3
parent eb48b83a184a3a75be988a1129488955e1846f36
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759119058 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759119058 +0800

merge master into master

feature:post Ndk cb to main thread

Created-by: wuchengwen_oh
Commit-by: wuchengwen
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3137
### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [X] 是否通过C语法扫描
- [X] 是否通过注释规则扫描
- [X] 是否更新json文件
- [X] 实现代码是否已经合入
- [X] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [X] 是，已刷新API参考文档 https://gitcode.com/openharmony-sig/interface_native_header/pull/2538
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3992Hsxtree 5653f752c422bd7a7cf9e3926a592a241128b244
parent d8f0e8c6f89900e1405746832216d26a69ff2149
author baijidong <baijidong@huawei.com> 1759070403 +0800
committer baijidong <baijidong@huawei.com> 1759070403 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
>]]xtree d076752b1416f3df7c694bab6359ec007dd3ad14
parent 63a4ce2c7bc2f95f682b1bfa04e64b0da6413b6d
author baijidong <baijidong@huawei.com> 1759067518 +0800
committer baijidong <baijidong@huawei.com> 1759067518 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
_xtree 26a4f118de3e7921252ba1ef3a82a3f755d64900
parent a9d8874b4349068520dcf10d0559f63cb00bc949
author 木子李 <liyi263@h-partners.com> 1758857369 +0800
committer 木子李 <liyi263@h-partners.com> 1759064360 +0800

add details

Signed-off-by: 木子李 <liyi263@h-partners.com>
t].x9tree 3f4e61ccf3002a9736183ac69adb082a492d495e
parent 867ef10db2fc60ebef11ad81b2bdd48921ca22d4
author zhengyaozong <zhengyaozong@h-partners.com> 1759062820 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759062820 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
~l|x9tree c3fb39963c225fe03cc846acb9459f7bddf44243
parent b074f2928b02e7b58ad12bd0df7f29372a18a38d
author zhengyaozong <zhengyaozong@h-partners.com> 1759062671 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759062671 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
Rl?x9tree 16ff2c9d08faeb35b4b2938609b3691ee08d9021
parent 3a0e7239dc43184fe1456baab1d3ba0b23ba918f
author zhengyaozong <zhengyaozong@h-partners.com> 1759061019 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759061019 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
$lx9tree 04d869fc7292e925005225d5e0cd4ff7f26d5381
parent 1c21529556c6b98e4ddf6622d11f99ba64377732
author zhengyaozong <zhengyaozong@h-partners.com> 1759059875 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759059875 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
jx9tree cdb3a058798f51b477efbc39521e0982827c99fb
parent abf0be2e5592cfd762694b4f5d76c3e4309698b8
author zhengyaozong <zhengyaozong@h-partners.com> 1759059731 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759059731 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
#lx9tree 32854c364f859ed3c141315225c630e40a540ffd
parent 10e39509364ccf6353cd11b71feb7190004917de
author zhengyaozong <zhengyaozong@h-partners.com> 1759058769 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759058769 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
jx9tree a232bf4f275e6abe3904d678fe03b1119e7b8b13
parent 22f52526d7b8b14f446a6d73a1d93f8bf5e3f0f7
author zhengyaozong <zhengyaozong@h-partners.com> 1759053522 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759053522 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
8lQxtree debee9691c403716ce199ff05e12165932a2ca55
parent 06bd3cee7fe866d12bb7369bf749b509b4eb283b
parent ebf5bd68135386bd690589339c9a797c775d68cf
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759053431 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759053431 +0800

merge master into master

add icu ndk interface

Created-by: sunyaozu
Commit-by: sunyaozu
Merged-by: openharmony_ci
Description: ### 相关的Issue

### 原因（目的、解决的问题等）
生态诉求，NDK新增开放ICU三方库头文件

### 描述（做了什么，变更了什么）
NDK新增开放ICU三方库头文件

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）N
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
https://gitcode.com/openharmony/docs/pull/110194
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!39571ݐSx0tree 29e091ade9b2426aac69b310ffde40b4c6cd42cf
parent f2f115856a105f1988688857b5fbbde020363e4c
parent 241e6af12aa068d8a85cf3b7fec3ed617bedfb03
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759049549 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1759049549 +0800

merge full-font-desc into master

feat(graphic): add font full descriptor parsing functionality

Created-by: liufei225
Commit-by: liufei
Merged-by: openharmony_ci
Description: ### 相关的Issue
[【6.0需求】获取字体文件相关信息](https://gitcode.com/openharmony/interface_sdk_c/issues/3047)

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3949 x.tree 042db291389aa2ecff96dd94df2e17774f58f6ea
parent e4d917296558547ec418e30fa050139c2cfba482
author zhangkai26 <zhangkai269@huawei.com> 1759041297 +0800
committer zhangkai26 <zhangkai269@huawei.com> 1759041297 +0800

audio sdk 返回值描述修改

Signed-off-by: zhangkai26 <zhangkai269@huawei.com>
Jextree dcf3725edd82e366d1f35d00260b419b1f7946ee
parent 6537cee0c95d08bedac4f7b6927c03305f608f11
author xiaozuo00 <xuyicong3@huawei.com> 1758700537 +0800
committer xiaozuo00 <xuyicong3@huawei.com> 1759028574 +0800

新增Drawable对象

Signed-off-by: xiaozuo00 <xuyicong3@huawei.com>
e\x9tree ba6070e695ef2f580a115e631d9bc7f4ff9553f0
parent d9287714b04032eeae1c3827e4abc9e17c51c958
author zhengyaozong <zhengyaozong@h-partners.com> 1759025420 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759025420 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
kҙx9tree f028b99beadb06b4d162b1ffe498abf6e55668fc
parent 0ad377a6298a299a9224d9849adf312035034130
author zhengyaozong <zhengyaozong@h-partners.com> 1759024930 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1759024930 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
kx4tree 9d0b9df6b8392ecab6ffcda725f454393a7b4a00
parent dd5c793236fa511bcf6308bdd2487097914a3214
author weixin_44950735 <yuzichen5@huawei.com> 1758700899 +0000
committer weixin_44950735 <yuzichen5@huawei.com> 1759021389 +0000

errorcode commnet complement

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
_1xtree d937d568dc5f717963112f6fb195b8b28bc5aa4a
parent 67d83fb71d5bc608e985efcdf108ce94232daa77
author baijidong <baijidong@huawei.com> 1758979914 +0800
committer baijidong <baijidong@huawei.com> 1758979914 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
_xtree 6e56864e924c3abaa299f7e627f46f24c4d0a03f
parent 1b6232eee22b55ce0ea3452d800ae462c91cf6cc
author baijidong <baijidong@huawei.com> 1758897914 +0800
committer baijidong <baijidong@huawei.com> 1758897914 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
_{Qxtree 1c61748d3e3798fca5834465192c9e89e582b61b
parent 149babdc415bc63bd301a708a3cc77bed1c446d2
parent 6dad8ddaa6ad03db92dccdab1d1ac6dfc385a00c
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758880161 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758880161 +0800

merge syncToSDK into master

syncANIToSDKC

Created-by: LeechyLiang
Commit-by: LeechyLiang
Merged-by: openharmony_ci
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3096?ref=&did=3320155#tid-3320155
### 原因（目的、解决的问题等）

syncANIToSDKC
### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
需要屏蔽项目代码风格
- [x] 是否通过注释规则扫描
不涉及
- [x] 是否更新json文件
不涉及
- [x] 实现代码是否已经合入
是
- [x] 目标是否已经添加到build仓ndk依赖目标里
是

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 兼容

### L0新增用例自检结果
- [x] 否
不涉及L0新增测试用例

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
[UpdateDocs](https://gitcode.com/openharmony/docs/pull/110035)

See merge request: openharmony/interface_sdk_c!4009hݜx<tree eefbf8f4d5d83395ee90c01416ded8c1cada8b81
parent 149babdc415bc63bd301a708a3cc77bed1c446d2
author zhanghang <zhanghang160@huawei-partners.com> 1758876661 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1758876661 +0800

fix:comment change

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
;fx'tree fd4fe7ce22c39afd59e25e8b8821f9f6970ee828
parent 6537cee0c95d08bedac4f7b6927c03305f608f11
author tanwlanyue <zhanglei737@huawei.com> 1758697498 +0800
committer tanwlanyue <zhanglei737@huawei.com> 1758871774 +0800

modify some enums of NDK

Signed-off-by: tanwlanyue <zhanglei737@huawei.com>
V]Dxctree ab3887fc0103d26ab75b9c21aa1be44d80d216e1
parent 81a29da66fda2afbc3185fac42b74a03a6dfd2a8
author zhanghang <zhanghang160@huawei-partners.com> 1758787712 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1758870136 +0800

AnimatedDrawableDescriptor support control playing on ndk

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
ubRx-tree d8045ba6d68868e66fc8c95e26163530451e9a74
parent f8015e64213b329092d021db98dd470143640214
parent 1116eedf354fcb4702c8a2ddb4081af69bcb3f2f
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758869847 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758869847 +0800

merge minline into master

feat: text支持minlines属性

Created-by: wangxiuxiu
Commit-by: wangxiuxiu96
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）
feat: text支持minlines属性
### 描述（做了什么，变更了什么）
feat: text支持minlines属性

### 自检结果（结果截图添加到下面）
- [X] 是否通过C语法扫描
- [X] 是否通过注释规则扫描
- [x] 是否更新json文件
- [X] 实现代码是否已经合入
- [X] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [X] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [X] 否

### API参考文档影响评估（提供docs仓pr链接）
- [X] 是，已刷新API参考文档
[Text支持minLines功能](https://gitcode.com/openharmony/docs/pull/107609)
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3946Nx9tree cb165c209245bb6d872da4a15ba14e40e30fe6f3
parent 8bfd99afc9a762c16f08d019cfd438054327264b
author zhengyaozong <zhengyaozong@h-partners.com> 1758859739 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758859739 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
-0l#xtree 03d7d7f115494b255c301cbb488bed6fb02a1504
parent 08d0cfe08e4c2b68211aa00a7262c77e409924a3
author baijidong <baijidong@huawei.com> 1758858180 +0800
committer baijidong <baijidong@huawei.com> 1758858180 +0800

ndk损坏回调接口

Signed-off-by: baijidong <baijidong@huawei.com>
!^^xtree 0c66e2db4a959c2cddd0ec22b88de9a634e9962b
parent 08d0cfe08e4c2b68211aa00a7262c77e409924a3
author lancer <haoshuo1@huawei.com> 1758855545 +0800
committer lancer <haoshuo1@huawei.com> 1758855545 +0800

api版本22改为21
Signed-off-by: haoshuo <haoshuo1@huawei.com>
uWx9tree 0ee7edbb000a7a0e34fe2486be32b31fe071b793
parent 5da94a85e8065d3ba8ef538eba24434e42152ff2
author zhengyaozong <zhengyaozong@h-partners.com> 1758855509 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758855509 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
Jlgx(tree 3546643febbdf1561b2d9c31bab40a98b81078b8
parent 08d0cfe08e4c2b68211aa00a7262c77e409924a3
author dongjie123 <dongjie52@h-partners.com> 1758854441 +0800
committer dongjie123 <dongjie52@h-partners.com> 1758854441 +0800

Fix spelling errors

Signed-off-by: dongjie123 <dongjie52@h-partners.com>
CZxNtree 16f92828b7c2f6c3f2650e0135f16b0eedf5144b
parent 08d0cfe08e4c2b68211aa00a7262c77e409924a3
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1757903215 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1758851451 +0800

feat: text支持minlines属性

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
~qx-tree 19154e7e3ddbc2bbeef2eff35358794de2ed2573
parent f205ccff7709facae765802e94a3781f2f9fd08a
author markcarter <liuhaotian15@h-partners.com> 1758805576 +0800
committer markcarter <liuhaotian15@h-partners.com> 1758814999 +0800

add ndk targets

Signed-off-by: markcarter <liuhaotian15@h-partners.com>
`ߜx\tree 23c7ec5533954c844f5b1bf06ab120585410711b
parent fbd81fafb4ad7045dd35b26ba03faebc297b13c4
author zhanghang <zhanghang160@huawei-partners.com> 1758629217 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1758804258 +0800

Image的组件alt接口支持加载失败时显示

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
*ŀx3tree 0f8e61c54d5f0f5a3e9b6e2904f22cdd8ff3f926
parent fd8d021e687bd048ed5aa60c7c626025d323abf3
author zhengyaozong <zhengyaozong@h-partners.com> 1758793900 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758793900 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
hRx+tree 3e50b47b27dc48a07f1a1c98473bb0383eccfa33
parent 02fdcacf6d8b5f103c25f6cd187c01c3c6fa774d
parent 443c718901fd03ead273a6e1ec2ae91bfbc4c99e
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758791227 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758791227 +0800

merge hasAxisC into master

轴事件支持获取当前轴值类型

Created-by: yuanlin94
Commit-by: yuanlin94
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）
轴事件支持获取当前轴值类型

### 描述（做了什么，变更了什么）
轴事件支持获取当前轴值类型

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

https://gitcode.com/openharmony/docs/pull/109009

See merge request: openharmony/interface_sdk_c!3963Cxtree 4938ac93ffb2530472edd336f5433bd73c6eec41
parent 02fdcacf6d8b5f103c25f6cd187c01c3c6fa774d
author linzlinz <2495670683@qq.com> 1758770003 +0800
committer linzlinz <2495670683@qq.com> 1758770003 +0800

add bt ndk

Signed-off-by: linzlinz <2495670683@qq.com>
KBxxtree e874912cafd2d865d6f0c5ab0b1cda7dad12bd20
parent 02fdcacf6d8b5f103c25f6cd187c01c3c6fa774d
author wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758766096 +0800
committer wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758766096 +0800

CAPI文本输入框支持自定义键盘

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei-partners.com>
Change-Id: I017b60d4a326d0a2cb9c012d0add624feb35f2e9
xtree 1eaf27be466c7585967ada1b2b4090974348606a
parent c923a440ee9e28b94253804716f5c99c55e2e23e
author 赵聪 <zhaocong33@h-partners.com> 1758765596 +0800
committer 赵聪 <zhaocong33@h-partners.com> 1758765596 +0800

capi注释修改

Signed-off-by: 赵聪 <zhaocong33@h-partners.com>
ax3tree 8e2cfef1e481b160d74805cdc06686c123aca590
parent 21d01334f56130dfbfdddc1580e319ca0a237ddc
author zhengyaozong <zhengyaozong@h-partners.com> 1758763867 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758763867 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
ah`x0tree e1751ee11196d5eea266d3ec757e4643d0abb027
parent 02fdcacf6d8b5f103c25f6cd187c01c3c6fa774d
author llj123 <luojie119@h-partners.com> 1758763857 +0800
committer llj123 <luojie119@h-partners.com> 1758763857 +0800

update: 更新文件 purgeable_memory.h


Signed-off-by: llj123 <luojie119@h-partners.com>bQxtree 82f93cd946ac004574bc65e74533c3ef4fd7c1f9
parent 46e857bbf76a1aef82323b45050ffb2b728a1063
parent 6aebac2a30c35f18e9fe5249f15bd4b4be79950d
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758716113 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758716113 +0800

merge master into master

C-API NAPI接口ANI适配

Created-by: wangyang2022
Commit-by: wangyang2022
Merged-by: openharmony_ci
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3094
### 原因（目的、解决的问题等）

C-API NAPI接口ANI适配
### 描述（做了什么，变更了什么）
C-API NAPI接口ANI适配

### 自检结果（结果截图添加到下面）
- [Y ] 是否通过C语法扫描
- [Y ] 是否通过注释规则扫描
- [Y ] 是否更新json文件
- [Y ] 实现代码是否已经合入
- [Y ] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ Y] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ Y] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4007oexWtree 510e13616b0995cac5c72e132d856b93fa681eef
parent 31844926f4292b96ca69b126116d09f36dfa6744
parent cdbd266f2035b2b89c1b0958e679c3a9569863bc
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758705834 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758705834 +0800

merge codespeed into master

feat:list支持设置限位动画速度

Created-by: catherinecheung
Commit-by: zhanghang
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3105

### 原因（目的、解决的问题等）
list支持设置限位动画速度

### 描述（做了什么，变更了什么）

list支持设置限位动画速度
### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
![image.png](https://raw.gitcode.com/user-images/assets/4379443/21f60583-1f61-4578-a29b-7b3814bb6249/image.png 'image.png')
![image.png](https://raw.gitcode.com/user-images/assets/4379443/3500f739-0e2e-49f7-a78d-bf3acab7f9d9/image.png 'image.png')
### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/103609

See merge request: openharmony/interface_sdk_c!4020x9tree 73530dbe74c0466781aa826a262cae014e7b1ec0
parent bf2f48503ae168d85ddc9cee412a96159abbd68c
author zhengyaozong <zhengyaozong@h-partners.com> 1758704119 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758704119 +0800

新增光标NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
Ll[xQtree 4e52ecf7586c5c5ee05a06c0d4e286faf9168011
parent e4011af1cf4736c5ee617fc974e573fe6f42edec
author zhanghang <zhanghang160@huawei-partners.com> 1758593762 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1758701778 +0800

feat:list支持设置限位动画速度

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
7xx9tree 26bd8b1790622c0c03f895901d22e74cd320fd09
parent 6537cee0c95d08bedac4f7b6927c03305f608f11
author 潜秋宏 <qianqiuhong@h-partners.com> 1758700277 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1758701371 +0800

node_overlay 接口注释修改01

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
s$xEtree 5b665acedb7403a96c315d1c70f345e6618792f3
parent 9d6ff2f252d0988c69595722b14b9f5d32298aea
author liufei <liufei225@h-partners.com> 1758698085 +0800
committer liufei <liufei225@h-partners.com> 1758698085 +0800

feat(graphic): update font descriptor API parameter type

Change the parameter type of OH_Drawing_GetFontFullDescriptorsFromPath from
char* to const char* to better reflect that the function does not modify
the input path string. Also update the documentation comment to be more
descriptive about the path parameter.

Signed-off-by: liufei <liufei225@h-partners.com>
Ixtree c90f889692dbb46b11b107c687ff1488d1e4085e
parent 6dd1573ccc9c351ead81cc7b35a2c5348c548b22
author liufei <liufei225@h-partners.com> 1758695354 +0800
committer liufei <liufei225@h-partners.com> 1758695354 +0800

move ndk json

Signed-off-by: liufei <liufei225@h-partners.com>
`Us,x0tree 7b2aa90d697d1afec37d81590e348c21d7dceb14
parent 8493f09cf3885042931e7462db494944f1cc7e53
author liufei <liufei225@h-partners.com> 1758695247 +0800
committer liufei <liufei225@h-partners.com> 1758695247 +0800

feat(graphic_2d): add new error code for incorrect parameters

- Introduce `OH_DRAWING_ERROR_INCORRECT_PARAMETER` to indicate null pointer inputs
- Update font descriptor APIs to return new error code when descriptor or output
  parameters are NULL
- Replace `OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE` with
  `OH_DRAWING_ERROR_INCORRECT_PARAMETER` in font descriptor attribute APIs
- Clarify error descriptions for `OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH`

Signed-off-by: liufei <liufei225@h-partners.com>
::Rx-tree 700408d7172299bc518646d70b4d23a0b6aaaf48
parent 261fd8f4a0186c8b0b47891e22a271530f100e3d
parent b0d8778b477b54e996dda2b45f1e057daba6766d
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758688237 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758688237 +0800

merge swiper_20250918 into master

Swiper：add finishanimation

Created-by: chijunwen
Commit-by: chijunwen
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3078

### 原因（目的、解决的问题等）
Swiper：add finishanimation

### 描述（做了什么，变更了什么）
Swiper：add finishanimation

### 自检结果（结果截图添加到下面）
- [ Y ] 是否通过C语法扫描
- [ Y ] 是否通过注释规则扫描
- [ Y ] 是否更新json文件
- [ Y ] 实现代码是否已经合入
- [ Y ] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ NA ] 不兼容
  - [ Y ] 是否经过评审

### L0新增用例自检结果
- [ Y ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ Y ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3989s˞x.tree 700408d7172299bc518646d70b4d23a0b6aaaf48
parent 261fd8f4a0186c8b0b47891e22a271530f100e3d
author chijunwen <chijunwen@h-partners.com> 1758174870 +0800
committer chijunwen <chijunwen@h-partners.com> 1758684943 +0800

Swiper：add finishanimation

Signed-off-by: chijunwen <chijunwen@h-partners.com>
ax4tree 09c74140d9f631cfe041dfc5a68164ba4ab03ed2
parent 48ef97a83d12e82cf6e4c95416bb572b9f824f49
author weixin_44950735 <yuzichen5@huawei.com> 1758684357 +0000
committer weixin_44950735 <yuzichen5@huawei.com> 1758684357 +0000

version number changes to 21

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
l^Ixtree 7232ba8ab2d84f6050761f8d1a1379f60e5c71b1
parent 261fd8f4a0186c8b0b47891e22a271530f100e3d
author sunbees <sunqinjia@huawei.com> 1758176494 +0800
committer sunbees <sunqinjia@huawei.com> 1758684310 +0800

add xcomponent opaque interface

Signed-off-by: sunbees <sunqinjia@huawei.com>
Zxbtree 365c8de4a29400486e1ef56e14045f286a1be5aa
parent 261fd8f4a0186c8b0b47891e22a271530f100e3d
author wangyang2022 <wangyang412@huawei.com> 1758433695 +0000
committer wangyang2022 <wangyang412@huawei.com> 1758681666 +0000

C-API NAPI接口ANI适配
Signed-off-by: wangyang2022 <wangyang412@huawei.com>
Change-Id: I0a27bf2e7800d585fafbcc7328ef2e777044243f
-lxXtree 9caf935c0c704b58c8c20821fe20d9955f712ae0
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1757903129 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1758681450 +0800

feat: Text支持固定行高和行间距

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
{axvtree 0a61619b4792588389312d6c4f32a309c8f79969
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author yuhaoqiang <yuhaoqiang@huawei.com> 1758195725 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1758680591 +0800

hidebug新增ndk接口

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
Change-Id: Id276b014327916749e2b3bb2c1a693d98a1edf8c
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
*mx3tree 75ce7eeb580cf760862811aafeeee6f4e15d5ef9
parent 665c0b1c942627c8840d8286520ff5a6a81a465e
author zhengyaozong <zhengyaozong@h-partners.com> 1758680423 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758680423 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
\h&xZtree 04c8ffb7f28eb1c7b74255ba0494d5f3f103e69f
parent 8fc62e99feece6a400501d2c2672e374d7177f24
author LeechyLiang <liangweihong1@huawei.com> 1758507433 +0800
committer LeechyLiang <liangweihong1@huawei.com> 1758679174 +0800

syncANIToSDKC

Signed-off-by: LeechyLiang <liangweihong1@huawei.com>
Change-Id: I0020fb921b6df174c0e5d99d7695efd10e44b44d
[kx3tree d21d8eb89feefd9778c9c9a73fc3c8cd18e4b8f3
parent 9a7f66c078cfb2dec886721eb9efda01640253b0
author zhengyaozong <zhengyaozong@h-partners.com> 1758678249 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758678249 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
inx<tree 35f7f7a8afb03873b26f09c4f7c12eb86bb56cb8
parent fbd81fafb4ad7045dd35b26ba03faebc297b13c4
author 胡清云 <huqingyun1@huawei.com> 1758632663 +0800
committer 胡清云 <huqingyun1@huawei.com> 1758637050 +0800

提供长按手势滑动识别阈值自定义能力

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
6rx`tree b06789c4c8b9bdcdd8374a006f2e8d1cdfc82e7e
parent dd1b5026b5bd289b5346c653749a5cdd70926137
author wangqing <wangqing195@huawei.com> 1758636336 +0800
committer wangqing <wangqing195@huawei.com> 1758636336 +0800

trace switch notification callback

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: Ic5f40221290387fbc2465e6d3e9cf056579fb0f0
m=x3tree 9d61c4c46232d4b27e6bf5c8aa1c5f543c62ce7f
parent 1a19927db10cce17cde56fed6ad0a92ba28f015c
author zhengyaozong <zhengyaozong@h-partners.com> 1758635377 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758635377 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
+i(x3tree dfd63aaa0e7675c506911666559b38ab3edd0fa6
parent fbd81fafb4ad7045dd35b26ba03faebc297b13c4
author zhengyaozong <zhengyaozong@h-partners.com> 1758633826 +0800
committer zhengyaozong <zhengyaozong@h-partners.com> 1758633826 +0800

新增NDK接口

Signed-off-by: zhengyaozong <zhengyaozong@h-partners.com>
[iOaxtree 634f0d0a6699d5c2ca30f85c73ed0f4b4493af68
parent fbd81fafb4ad7045dd35b26ba03faebc297b13c4
parent b9627d5ba197c6746d7eed163a3d3aa747e28c55
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758633773 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758633773 +0800

merge 0919 into master

C text属性字符串和image span colorfliter 支持svg

Created-by: wangxiuxiu
Commit-by: wangxiuxiu
Merged-by: openharmony_ci
Description: ### 相关的Issue
[C text属性字符串和image span colorfliter 支持svg](https://gitcode.com/openharmony/interface_sdk_c/issues/3098)

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里
![image.png](https://raw.gitcode.com/user-images/assets/4379443/09a5d6a9-24c2-426b-b8f4-03e2fdea879d/image.png 'image.png')
### 兼容性影响评估，如有影响请写明N
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [x] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
[DOC text属性字符串和imageSpan colorFilter支持svg](https://gitcode.com/openharmony/docs/pull/109436)

See merge request: openharmony/interface_sdk_c!4013,xjtree f7a7b57f825485d5409fbaabc9c0c86bced1a52d
parent e4011af1cf4736c5ee617fc974e573fe6f42edec
author wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758184440 +0800
committer wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758627025 +0800

showCounter

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei-partners.com>
Change-Id: Ic7546b750e2bf57ac97863595b520328b4b0b8a9
_u#lx<tree c1c6052424e76883413ab82eef6f22681acdd496
parent eca393a9c90a4a3b55d976cf09ba52310a59d911
parent 6392aa668793655a0b6f25d20ec796e99f3d0639
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758625837 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758625837 +0800

merge onVisibleAreaChange_feature_0921 into master

onVisibleAreaChange: 支持可见区域超出父组件边界计算

Created-by: Yun-xier
Commit-by: 胡清云
Merged-by: openharmony_ci
Description: ### 相关的Issue
[onVisibleAreaChange: 支持可见区域超出父组件边界计算](https://gitcode.com/openharmony/interface_sdk_c/issues/3095)

### 原因（目的、解决的问题等）
onVisibleAreaChange: 支持可见区域超出父组件边界计算

### 描述（做了什么，变更了什么）
onVisibleAreaChange: 支持可见区域超出父组件边界计算

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
![image.png](https://raw.gitcode.com/user-images/assets/4379443/294ff2ff-4d3b-4829-b957-8efae46f9da5/image.png 'image.png')
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
[https://gitcode.com/openharmony/docs/pull/109661](https://gitcode.com/openharmony/docs/pull/109661)
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4008nBޔQxtree 9c1b75b5bbe99deb0014d70fa8e18162c8834c13
parent 5c61f16d145f6e31986a99882270a6a78e387d4b
parent da9fa54ff2695efe8eb40cf6868b9b2d49ceeafe
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758617530 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758617530 +0800

merge master into master

修改so名称

Created-by: m0_54007497
Commit-by: m0_54007497
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）

sdk仓so描述不一致
### 描述（做了什么，变更了什么）

修改so描述
### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
不涉及
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
不涉及
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里
不涉及

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审
  不涉及

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档
https://gitcode.com/openharmony/docs/pull/109015

See merge request: openharmony/interface_sdk_c!4021$KxDtree 8f7a4646fa99cc259f60d3a821977868a446ec57
parent e4011af1cf4736c5ee617fc974e573fe6f42edec
parent 1a9716bf77d1c20fe7cae338809748e960042eff
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758615547 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758615547 +0800

merge master into master

新增<头文件library声明与SDK so库名称一致>自检项

Created-by: zzz701
Commit-by: zzz701
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [x] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!4019mYx/tree 4bb7f3a9825d0102b226d86211ee8ff99d7ce0a9
parent e4011af1cf4736c5ee617fc974e573fe6f42edec
author m0_54007497 <liyangyang87@h-partners.com> 1758608314 +0800
committer m0_54007497 <liyangyang87@h-partners.com> 1758608314 +0800

修改so名称

Signed-off-by: m0_54007497 <liyangyang87@h-partners.com>
_xgtree 2780c4f65efe67ddef0fba86e9480abf6bf5a93d
parent e4011af1cf4736c5ee617fc974e573fe6f42edec
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1757903940 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1758606315 +0800

add:TextArea控件支持配置滚动条颜色capi接口

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
_xhtree b2251f67f2d35ee6b07f55509c571250557f9ea3
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758524841 +0800
committer wangxiuxiu <wangxiuxiu9@huawei-partners.com> 1758595121 +0800

C text属性字符串和image span colorfliter 支持svg

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei-partners.com>
Change-Id: I303d937e9fc7de8660bcb0946afd75c129b28a33
9ۙx9tree aa42aa8af9650732d9f7669982e44ba24e7a020f
parent 8640cf314510b63402f5509f2bd2252c04508c4a
author zzz701 <lihaima1@huawei.com> 1758592706 +0800
committer zzz701 <lihaima1@huawei.com> 1758592732 +0800

新增<头文件library声明与SDK so库名称一致>自检项

Signed-off-by: zzz701 <lihaima1@huawei.com>
qxtree 5cf37163d4af7f8f2e81c7bb50ab6e4e0e8667f7
parent a51ca7588840166910575f6a296be0e53b2f66d1
author zzz701 <lihaima1@huawei.com> 1758528657 +0800
committer zzz701 <lihaima1@huawei.com> 1758529558 +0800

修改废弃宏定义
Signed-off-by: zzz701 <lihaima1@huawei.com>
YxKtree 56b6d008791dcf41fd0207ed1c12282f78cbd5a0
parent 8fc62e99feece6a400501d2c2672e374d7177f24
author 胡清云 <huqingyun1@huawei.com> 1758444972 +0800
committer 胡清云 <huqingyun1@huawei.com> 1758526511 +0800

onVisibleAreaChange: 支持可见区域超出父组件边界计算

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
ox0tree 1a7317e2de2f5b71f0189341101fe75de72aa66b
parent 9dbf2fe07649d030fc4ad287e53493bcaeeb2802
author markcarter <liuhaotian15@h-partners.com> 1758442883 +0800
committer markcarter <liuhaotian15@h-partners.com> 1758522956 +0800

test add interface

Signed-off-by: markcarter <liuhaotian15@h-partners.com>
a"x'tree 8cdfb426bf8453d7eb87ebfd31ddfbbbffe4fad6
parent 1451e62ebef928b9ea5cc89f3065373c861bbace
author 吕振杰 <lvzhenjie3@huawei.com> 1758514750 +0800
committer 吕振杰 <lvzhenjie3@huawei.com> 1758514750 +0800

错误码描述一致性修改

Signed-off-by: 吕振杰 <lvzhenjie3@huawei.com>
rXRx%tree 08032c814d6e389403edead7c517f47c83b77501
parent 8fc62e99feece6a400501d2c2672e374d7177f24
parent d88a0979f6df15e6265727864b2553b11f1c0c02
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758512580 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758512580 +0800

merge master into master

注解修正错误码

Created-by: wuchengjun5
Commit-by: wcj
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3093?ref=&did=3319060#tid-3319060

### 原因（目的、解决的问题等）
注解中错误码不准确

### 描述（做了什么，变更了什么）
修正注解中的错误码

### 自检结果（结果截图添加到下面）
- [NA] 是否通过C语法扫描
- [NA] 是否通过注释规则扫描
- [NA] 是否更新json文件
- [Y] 实现代码是否已经合入
- [Y] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [NA] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!40061lx1tree af07f981f47066acbb999b1dd44df851a3916523
parent 19d46afdbec840b003cf1cdf2ede462da6ea40f1
author wuchengwen <wuchengwen4@huawei.com> 1758183422 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1758509415 +0800

feature:post Ndk cb to main thread

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
8bxtree ae0ccc16da1abfe4e76b5141d3623c7733d61bc9
parent c379dff06a7bcf51dd7a1f479cb425f59ef0bb44
author liufei <liufei225@h-partners.com> 1758508202 +0800
committer liufei <liufei225@h-partners.com> 1758508202 +0800

remove white space

Signed-off-by: liufei <liufei225@h-partners.com>
rwX͓xtree eaf771757953675fcc70556d9016eaae715fd15e
parent 6b44a40223f23a53a1335c5ace778fab3f0c833c
parent 75f5e04b6555024d039efa995617c5c9848ae65a
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758355486 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758355486 +0800

merge master into master

change_code

Created-by: awduwgayd
Commit-by: awduwgayd
Merged-by: openharmony_ci
Description: fix comment

See merge request: openharmony/interface_sdk_c!3976*xKtree 2a5efb144ba31059175c14263bb3ce277f3322b4
parent a8bc30183abfbcaa93aa7bcd325ac273f41fbe5f
author wcj <wuchengjun5@huawei.com> 1758351874 +0800
committer wcj <wuchengjun5@huawei.com> 1758352130 +0800

注解修正错误码

Signed-off-by: wuchengjun <wuchengjun5@huawei.com>
Change-Id: Id30394859cb58847fe3eff78ea6f8eaebd82e370
=n̛x+tree 1ceb86e6a12161da218521c1b27c96cb403282a0
parent 60907ebb805712e47d198325d99689a3c804741f
author 屑屑屑 <jiangwenda5@h-partners.com> 1758270619 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1758270619 +0800

update so file name

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
LexStree 412707c494ada0bc2b6c2d31aeac29e71017f5b7
parent 19d46afdbec840b003cf1cdf2ede462da6ea40f1
author wangqing <wangqing195@huawei.com> 1758198080 +0800
committer wangqing <wangqing195@huawei.com> 1758198080 +0800

fix error description

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: I0f5d7e4520a4b9633ac089033c39af0532db9a8a
Bi[x)tree ad614ec2c341d9c4866daccab952deb7c6311eb0
parent 992bdb0353d3ea78865cb687762af753eb5cc99a
author weixin_44950735 <yuzichen5@huawei.com> 1758197892 +0000
committer weixin_44950735 <yuzichen5@huawei.com> 1758197892 +0000

region api change

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
U_[@x"tree 7b34fbe7401fcfe2166b378b60c4cce838f91394
parent dd8d9d235263159057b926b65a04f4e3370b94f6
author weixin_44950735 <yuzichen5@huawei.com> 1758197129 +0000
committer weixin_44950735 <yuzichen5@huawei.com> 1758197129 +0000

rect space

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
}W6JxVtree 95c7e5f58ad76557ee7d961970b27be81600908d
parent 19d46afdbec840b003cf1cdf2ede462da6ea40f1
parent 91e1f5840836869528121cba08c5fe5725d1caa8
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758196909 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758196909 +0800

merge session_code into master

audio session注释修改

Created-by: zhanganxiang1
Commit-by: zhanganxiang1
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3984}Ixstree decd5cc8d2535170f57e1f5aee7c595162932069
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author chenjiafeng10 <chenjiafeng10@h-partners.com> 1758164103 +0800
committer chenjiafeng10 <chenjiafeng10@h-partners.com> 1758185898 +0800

textArea支持CAPI配置滚动条是否显示

Signed-off-by: chenjiafeng10 <chenjiafeng10@h-partners.com>
Change-Id: I8ee5e2624f12a3840e9815cc4ce931f2149b3c59
Jx\tree 89030dcd192f2aae7af16ccd6f675b97d4b1a8d7
parent f334e5fc8ea259a8fc11e86c534d5fd359376038
parent 582c4d3183ef76b0cca30e7159d4942cc1e4889d
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758181167 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758181167 +0800

merge master into master

头文件中so与资料保持一致

Created-by: baijidong
Commit-by: baijidong
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3971՝Mɔx[tree 73558256b71ce7ae4698964c5ca11de3051b0850
parent 5195ace187c2d6505476c082995f510723e0150a
author weixin_44950735 <weixin_44950735@noreply.gitcode.com> 1758163011 +0000
committer weixin_44950735 <weixin_44950735@noreply.gitcode.com> 1758165823 +0000

sdk-c add OH_Drawing_MatrixPreConcat, OH_Drawing_RectContains, OH_Drawing_RectInset, OH_Drawing_RegionSetEmpty

Signed-off-by: weixin_44950735 <yuzichen5@huawei.com>
ȃx)tree f0329b7cbfded797f1bd8b7ed20915a924290270
parent f334e5fc8ea259a8fc11e86c534d5fd359376038
author 陈树山 <css353929243@163.com> 1758165004 +0800
committer 陈树山 <css353929243@163.com> 1758165004 +0800

OH_PixelmapNative参数类型修改

Signed-off-by: 陈树山 <css353929243@163.com>
emeHxwtree f231c163383f4da6be236dac5bcff09b8a420246
parent 9dbf2fe07649d030fc4ad287e53493bcaeeb2802
parent be0d51817f12fc28f6772cc4d4bece815fcfd738
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758163863 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758163863 +0800

merge master into master

告警处理

Created-by: zzz701
Commit-by: zzz701
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3983`C9)x4tree 2c00042c8c2035d8782d112d245135795c5d9ff0
parent 392977fef745aed225005bf1dd9da47faf90c109
author zhanganxiang1 <zhanganxiang@huawei.com> 1758116090 +0800
committer zhanganxiang1 <zhanganxiang@huawei.com> 1758116090 +0800

audio session注释修改

Signed-off-by: zhanganxiang1 <zhanganxiang@huawei.com>
gxtree ed53cd626542e1cd60cd694e32e90d57982567a5
parent 544805887da4c70de261166d44d77081ee3a034d
author zzz701 <lihaima1@huawei.com> 1758115681 +0800
committer zzz701 <lihaima1@huawei.com> 1758115681 +0800

告警处理
Signed-off-by: zzz701 <lihaima1@huawei.com>
uQIx`tree 5db28843957a126bb4a7ecbdeef93a8fbe8f7af2
parent ed4e89ec2295932c5520a02932c4e036958d31a1
parent 56b9f250992a5be70c70390345c70310e3838e99
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758113286 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758113286 +0800

merge master into master

fix:param描述新增

Created-by: lvchao_2580
Commit-by: lvchao_2580
Merged-by: openharmony_ci
Description: ### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
NA 
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3979=-@Wxstree 3a752e15721f7a00fcfa1a8d79287cb7a9d64d9d
parent a8bc30183abfbcaa93aa7bcd325ac273f41fbe5f
parent 1ebe466d6b26393faf40b2fc07f5a9603ca29ee6
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758106890 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758106890 +0800

merge removeANIMaster into master

removeAniHeader

Created-by: LeechyLiang
Commit-by: LeechyLiang
Merged-by: openharmony_ci
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3065?ref=&did=3298924#tid-3298924

### 原因（目的、解决的问题等）

Remove ANI Header from SDK

add ani.h to
ani header file list
_ANI_HEADER_LISTS = [
"native_node_ani.h",
"ani.h",
]
in interface/sdk_c/build-tools/clean_ndk_ani.py
### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
不涉及
- [x] 是否通过注释规则扫描
不涉及
- [x] 是否更新json文件
不涉及
- [x] 实现代码是否已经合入
不涉及
- [x] 目标是否已经添加到build仓ndk依赖目标里
不涉及

### 兼容性影响评估，如有影响请写明（Y/N）
- [x] 兼容
  - [] 是否经过评审

### L0新增用例自检结果
- [x] 否

### API参考文档影响评估（提供docs仓pr链接）
- [x] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3974"x#tree c207056122706743ae74c751bc237e5088a2b1a4
parent 08b53bd2263515df1812e88e3c251931b5d3e699
author liufei <liufei225@h-partners.com> 1758097905 +0800
committer liufei <liufei225@h-partners.com> 1758097905 +0800

refactor(graphic): add const attribute to font descriptor functions

- Add const attribute to OH_Drawing_GetFontFullDescriptorAttributeInt
- Add const attribute to OH_Drawing_GetFontFullDescriptorAttributeBool
- Add const attribute to OH_Drawing_GetFontFullDescriptorAttributeString

Signed-off-by: liufei <liufei225@h-partners.com>
l`Mx.tree 9bf0db867abaccfae6470ea271f6e1b00a1027bc
parent 5195ace187c2d6505476c082995f510723e0150a
parent 75eaf834990ea488014de5a537eafaf59b88b712
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758096108 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758096108 +0800

merge fix-library into master

fix library

Created-by: wanghao1717
Commit-by: wanghao1717
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/interface_sdk_c/issues/3068

### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
- [Y] 是否通过注释规则扫描
- [Y] 是否更新json文件
- [Y] 实现代码是否已经合入
- [Y] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3977Px*tree ee54f2d04bd9bc4fc31bc1e96dc82d5a27dccffd
parent 5195ace187c2d6505476c082995f510723e0150a
author lvchao_2580 <lvchao28@h-partners.com> 1758093314 +0800
committer lvchao_2580 <lvchao28@h-partners.com> 1758093861 +0800

fix:param描述新增

Signed-off-by: lvchao_2580 <lvchao28@h-partners.com>
~`)x4tree feacdffd88fcc85f5b3da59bfca52b5b65aaf562
parent 5195ace187c2d6505476c082995f510723e0150a
author liuleiminhw <liuleimin1@huawei.com> 1758093689 +0800
committer liuleiminhw <liuleimin1@huawei.com> 1758093689 +0800

update: 更新文件 net_connection.h


Signed-off-by: liuleiminhw <liuleimin1@huawei.com>Ɩhxtree 9bf0db867abaccfae6470ea271f6e1b00a1027bc
parent 5195ace187c2d6505476c082995f510723e0150a
author wanghao1717 <wanghao505@huawei.com> 1758080743 +0800
committer wanghao1717 <wanghao505@huawei.com> 1758080743 +0800

fix library

Signed-off-by: wanghao1717 <wanghao505@huawei.com>
;aTxtree d353ff7cd8b5b08fdde77efdbd57753c18d514df
parent 019b40f96b462c0bdc5dcdcd2112d34ed2c09fcc
author awduwgayd <wangle153@huawei.com> 1758077402 +0800
committer awduwgayd <wangle153@huawei.com> 1758077402 +0800

change_code

Signed-off-by: awduwgayd <wangle153@huawei.com>
HV	x\tree 4036b248f7069d485edaae667a24a5f829c47200
parent 019b40f96b462c0bdc5dcdcd2112d34ed2c09fcc
author LeechyLiang <liangweihong1@huawei.com> 1758077313 +0800
committer LeechyLiang <liangweihong1@huawei.com> 1758077313 +0800

removeAniHeader

Signed-off-by: LeechyLiang <liangweihong1@huawei.com>
Change-Id: Iae7639463b4a6d5f7eab67ca97dda8b247afef2d
gmqKxEtree 6d7e4131771124198831ef39ae3663844306432a
parent d97ccbb729a2af95819237b48fdcf2098fbe332c
parent c923a440ee9e28b94253804716f5c99c55e2e23e
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758032325 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1758032325 +0800

merge master into master

修改扫描代码注释

Created-by: nicholaszc
Commit-by: 赵聪
Merged-by: openharmony_ci
Description: 1. 修改扫描代码注释
---
### 相关的Issue


### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [Y] 是否通过C语法扫描
- [Y] 是否通过注释规则扫描
- [Y] 是否更新json文件
- [NA] 实现代码是否已经合入
- [NA] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [N] 不兼容
  - [Y] 是否经过评审

### L0新增用例自检结果
- [N] 是，有新增L0用例，且完成自检
- [Y] 否

### API参考文档影响评估（提供docs仓pr链接）
- [N] 是，已刷新API参考文档
- [Y] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3960X͒Jx]tree 9080bc47d0f18432417680f94fdc9e61075fb7f8
parent ef3ce7c5b9f9eaa6bdc886c6a7b6543e771d0e4f
parent 544805887da4c70de261166d44d77081ee3a034d
author ohci1 <ohci1@noreply.gitcode.com> 1758031125 +0800
committer ohci1 <ohci1@noreply.gitcode.com> 1758031125 +0800

merge master into master

NDK编译告警宏定义

Created-by: zzz701
Commit-by: zzz701
Merged-by: ohci1
Description: ### 相关的Issue

https://gitcode.com/openharmony/interface_sdk_c/issues/3029
### 原因（目的、解决的问题等）


### 描述（做了什么，变更了什么）


### 自检结果（结果截图添加到下面）
- [ ] 是否通过C语法扫描
- [ ] 是否通过注释规则扫描
- [ ] 是否更新json文件
- [ ] 实现代码是否已经合入
- [ ] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

### L0新增用例自检结果
- [ ] 是，有新增L0用例，且完成自检
- [ ] 否

### API参考文档影响评估（提供docs仓pr链接）
- [ ] 是，已刷新API参考文档
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3951KA<x)tree c956b9f6d32e9ccb0fcd9dd50ed0072c328b2b45
parent a9d8874b4349068520dcf10d0559f63cb00bc949
author baijidong <baijidong@huawei.com> 1758030822 +0800
committer baijidong <baijidong@huawei.com> 1758030822 +0800

头文件中so与资料保持一致

Signed-off-by: baijidong <baijidong@huawei.com>
 yiǐx tree 8f96679f1159a19fc514f69912faf8cc4227e3d5
parent 6dcf591d1365de5740163a76f10bea7dcaa769aa
author shj07 <shihaojie11@huawei.com> 1758023874 +0800
committer shj07 <shihaojie11@huawei.com> 1758023874 +0800

1

Signed-off-by: shj07 <shihaojie11@huawei.com>1Lx tree 129794ca36df10777d19352fd5abfe4beb2336cb
parent a9d8874b4349068520dcf10d0559f63cb00bc949
author shj07 <shihaojie11@huawei.com> 1758014405 +0800
committer shj07 <shihaojie11@huawei.com> 1758014405 +0800

1

Signed-off-by: shj07 <shihaojie11@huawei.com>6LW x	tree 1d7153ed68380509564daa78f84358b52ab55295
parent b4a5c2e54d569a98d3811b4be01138688eb47ca6
author liufei <liufei225@h-partners.com> 1758005608 +0800
committer liufei <liufei225@h-partners.com> 1758013317 +0800

refactor(graphics): update font descriptor retrieval API

- Change OH_Drawing_GetFontFullDescriptorsFromStream function signature
- Use raw binary data instead of memory stream as input
- Update function documentation to reflect new parameters and behavior

Signed-off-by: liufei <liufei225@h-partners.com>
xtree de3ad9598c45697f4da5aa388f7a617e456114cf
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author zzz701 <lihaima1@huawei.com> 1757917910 +0800
committer zzz701 <lihaima1@huawei.com> 1758011369 +0800

NDK编译告警
Signed-off-by: zzz701 <lihaima1@huawei.com>
Tn$xFtree 94512b18f67ed036038bcb98ae5446ab05afc82a
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author liufei <liufei225@h-partners.com> 1758005371 +0800
committer liufei <liufei225@h-partners.com> 1758005371 +0800

feat(font): add APIs for font full descriptor

- Add new type OH_Drawing_FontFullDescriptor
- Add new enum OH_Drawing_FontFullDescriptorAttributeId
- Implement APIs to get font full descriptors from stream and path
- Add functions to retrieve attributes from font full descriptor
- Update NDK JSON to include new APIs

Signed-off-by: liufei <liufei225@h-partners.com>
vșxtree 51cc618cbab65a7c82389f481d94efe7a1e6d945
parent 6ce96b38dde151ad313fd26c736752fb789ffb74
author yuanlin94 <linyuan25@h-partners.com> 1757988431 +0800
committer yuanlin94 <linyuan25@h-partners.com> 1757988431 +0800

hasAxis

Signed-off-by: yuanlin94 <linyuan25@h-partners.com>
UWxtree d75f93f80588f87aaf138c5bad15ffdbbcda7a76
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author sunyaozu <sunyaozu@huawei.com> 1757923319 +0800
committer sunyaozu <sunyaozu@huawei.com> 1757987913 +0800

add icu ndk interface

Signed-off-by: sunyaozu <sunyaozu@huawei.com>
Yx#tree 2b7987e544d4c0988cea7665a9a79c95e62d90a8
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author jinsitao <jinsitao.jin@huawei.com> 1757987330 +0800
committer jinsitao <jinsitao.jin@huawei.com> 1757987330 +0800

新增GameControllerKit

Signed-off-by: jinsitao <jinsitao.jin@huawei.com>
Ӽ_@Rx)tree b9b528bfd804a477bbb88c9e42bee34beb53c426
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
parent 03f27f6cbecda80dce94556a3a8d1caa73d8c37b
author openharmony_ci <openharmony_ci@noreply.gitcode.com> 1757948487 +0800
committer openharmony_ci <openharmony_ci@noreply.gitcode.com> 1757948487 +0800

merge capi_pixelround into master

interface_capi: pixelround

Created-by: camlostshi
Commit-by: Shi Bofan
Merged-by: openharmony_ci
Description: ### 相关的Issue
[interface_capi: pixelround](https://gitcode.com/openharmony/interface_sdk_c/issues/3049)

### 原因（目的、解决的问题等）
interface_capi: pixelround

### 描述（做了什么，变更了什么）
interface_capi: pixelround

### 自检结果（结果截图添加到下面）
- [x] 是否通过C语法扫描
- [x] 是否通过注释规则扫描
- [x] 是否更新json文件
- [x] 实现代码是否已经合入
- [x] 目标是否已经添加到build仓ndk依赖目标里

### 兼容性影响评估，如有影响请写明（Y/N）
兼容

### L0新增用例自检结果
不涉及

### API参考文档影响评估（提供docs仓pr链接）
- [x] 是，已刷新API参考文档 [capi docs: pixelround](https://gitcode.com/openharmony/docs/pull/108482)
- [ ] 否，不涉及刷新API参考文档

See merge request: openharmony/interface_sdk_c!3952ix$tree 25d342634f8c8700e193e96d33b3756f811350f8
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author 赵聪 <zhaocong33@h-partners.com> 1757938283 +0800
committer 赵聪 <zhaocong33@h-partners.com> 1757938283 +0800

修改扫描代码注释

Signed-off-by: 赵聪 <zhaocong33@h-partners.com>
hםx-tree eeb385c715aa6b5ef27cef33db2c8343749cb10b
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author zhanganxiang1 <zhanganxiang@huawei.com> 1757926768 +0800
committer zhanganxiang1 <zhanganxiang@huawei.com> 1757926768 +0800

输入设备选择

Signed-off-by: zhanganxiang1 <zhanganxiang@huawei.com>
7gx8tree a5515bab27e9c6d9e2083a3307d8310592168163
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author wang-ziweix <wangziwei38@h-partners.com> 1757921417 +0800
committer wang-ziweix <wangziwei38@h-partners.com> 1757921417 +0800

[sdk] fix spelling mistake

Signed-off-by: wang-ziweix <wangziwei38@h-partners.com>
eckx tree b9b528bfd804a477bbb88c9e42bee34beb53c426
parent 1cbc4309dce8b326caea231a964113d6fa4da10a
author Shi Bofan <shibofan1@huawei.com> 1757902182 +0800
committer Shi Bofan <shibofan1@huawei.com> 1757902182 +0800

interface_capi: pixelround

Signed-off-by: Shi Bofan <shibofan1@huawei.com>
rZx[tree b3912f1ee5a1f6122e3106ce404fe204014cace0
parent e98b77c5a53707a0642ab5679497dcf0607e34a9
parent acb550ba333c44d40fd2b7ad2cea57b8911d57dc
author openharmony_ci <120357966@qq.com> 1757769737 +0000
committer Gitee <noreply@gitee.com> 1757769737 +0000

!3824 补充onWillStartDragging等事件的说明
Merge pull request !3824 from 郝烁/master`gtxXtree fe3ad2c75d5e79c9e178f89bda9d3c28fe314516
parent 08e85719b066da2c64b9bc12a64d348f058c409b
parent 4f52068ebc219eddb8b11cbf08ecb616a3299125
author openharmony_ci <120357966@qq.com> 1757763994 +0000
committer Gitee <noreply@gitee.com> 1757763994 +0000

!3936 PointerEvent等接口描述修改1
Merge pull request !3936 from 潜秋宏/zdl091103}$rTxWtree ae02d5c601b76c8184ef3e27c6b86982b8a9f09e
parent 57f51f9b1bbc0fa84e5aa5b9b76aaec3310f961b
parent 6ff60dacce0b755318c855dca53577429922eb79
author openharmony_ci <120357966@qq.com> 1757758751 +0000
committer Gitee <noreply@gitee.com> 1757758751 +0000

!3940 CAPI新增反色逃生通道接口
Merge pull request !3940 from fangzhiyuan/masterrhxHtree 196470426f26442caa0a5a58fb649775991db1e9
parent b60ffe2d5358b36975cf6e01e3ebbc4035573003
parent 3c4e90f5f736ebdd3b02ce5c68704902d76f53e0
author openharmony_ci <120357966@qq.com> 1757731842 +0000
committer Gitee <noreply@gitee.com> 1757731842 +0000

!3938 add dual core interface
Merge pull request !3938 from zql_666/masteraOxOtree f7630f1bc894230e8a07b88631af65640d6de514
parent 5044d42f1f95a33df1e85548aa9bdf2a8c1cd051
parent 78a0e8f8561a556991d272ffcdfa0ca1c5bde6ba
author openharmony_ci <120357966@qq.com> 1757688125 +0000
committer Gitee <noreply@gitee.com> 1757688125 +0000

!3718 添加智能降噪查询接口
Merge pull request !3718 from Charles/masterp	x7tree 009d5f05f7b5c132503980abd199ea82b58fd195
parent 5044d42f1f95a33df1e85548aa9bdf2a8c1cd051
author fangzhiyuan <fangzhiyuan5@huawei.com> 1757680300 +0000
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1757680631 +0000

CAPI新增反色逃生通道接口

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
 mIx,tree 08efa18b1c7734c7e59ce1a2c62e5b1b779ca87a
parent c5e2b3786b727d153bf789471809c25a2efbe73b
author lizeqiang <lizeqiang4@h-partners.com> 1757597334 +0800
committer lizeqiang <lizeqiang4@h-partners.com> 1757658895 +0800

add dual core interface

Signed-off-by: lizeqiang <lizeqiang4@h-partners.com>
_xNtree 8df5848ac06b81705dbd3cfc893ba43bbd332f2f
parent c5e2b3786b727d153bf789471809c25a2efbe73b
parent 0207b791b056d66d7ec0f02a025f4a972c601e1e
author openharmony_ci <120357966@qq.com> 1757649193 +0000
committer Gitee <noreply@gitee.com> 1757649193 +0000

!3889 多设备支持同时发声
Merge pull request !3889 from ZB/fix-dupdevice?;mx:tree 8a3ffbe8d52a385c536ed359d01ad409cd2516be
parent c5e2b3786b727d153bf789471809c25a2efbe73b
author 潜秋宏 <qianqiuhong@h-partners.com> 1757591291 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1757591291 +0800

PointerEvent等接口描述修改1

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
ux^tree 986723ed3e7995006970976d2032826e7fb1d0ec
parent 45c67ad97b6189acceceb5d3324b1e400ee92ee9
parent d7dd85d73e52dc2ec5edf2f6fedc85ef5d5b57e0
author openharmony_ci <120357966@qq.com> 1757509217 +0000
committer Gitee <noreply@gitee.com> 1757509217 +0000

!3928 更改NODE_TEXT_CONTENT_ALIGN注释
Merge pull request !3928 from wangxiuxiu96/textContent2o xLtree 3672523e9f3a6312fe45fbcc5084c6e71f85f5b4
parent 9361537d8756a6e1bfbdbef92528bb7d85afb5e2
parent e7237a80d2fe2a5004806917dd3f0461df1da29c
author openharmony_ci <120357966@qq.com> 1757505914 +0000
committer Gitee <noreply@gitee.com> 1757505914 +0000

!3923 sourcetype add capi
Merge pull request !3923 from wangweiyuan/sourcetype8e&xRtree b7502ea01590d08c297c2e46d2a1172c51a1ebbc
parent d6eb4380947376d7fae343871e92af3fe0cba21e
parent ba19b07438fcc712f43492644e81d828293de02c
author openharmony_ci <120357966@qq.com> 1757491344 +0000
committer Gitee <noreply@gitee.com> 1757491344 +0000

!3885 冗余错误码返回修改
Merge pull request !3885 from 卢宇豪/master0831pqxStree ee1bf079de12aa0340b8cc02b7f71627fd3affa4
parent d6eb4380947376d7fae343871e92af3fe0cba21e
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1757409282 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1757409282 +0800

更改NODE_TEXT_CONTENT_ALIGN注释

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
rΗxGtree 12557309c4a83dcab5506a44af2e06e36ac8686b
parent 35961105ee907a85816f6d9e3128c03017a33a5b
parent e9660b42a8c2f049bd35ab675243e3eafa10cd1e
author openharmony_ci <120357966@qq.com> 1757405274 +0000
committer Gitee <noreply@gitee.com> 1757405274 +0000

!3913 hilog API注释更新
Merge pull request !3913 from liuyifei/masternemxNtree 80ca79dcb0d8c8e8df2e0bc7ef2b7c81b6c4d113
parent 1f18db8c410a7a1ab677e2603f3d7cb5aa69df71
parent ff142841ed7c705bf71d9aeb6a0aeb6d8ff4cfb5
author openharmony_ci <120357966@qq.com> 1757399226 +0000
committer Gitee <noreply@gitee.com> 1757399226 +0000

!3926 Bugfix for spelling mistake
Merge pull request !3926 from Mr_hupeng/mastermgxtree 80ca79dcb0d8c8e8df2e0bc7ef2b7c81b6c4d113
parent 1f18db8c410a7a1ab677e2603f3d7cb5aa69df71
author Mr_hupeng <hupeng76@huawei.com> 1757389119 +0800
committer Mr_hupeng <hupeng76@huawei.com> 1757389119 +0800

Bugfix for spelling mistake

Signed-off-by: Mr_hupeng <hupeng76@huawei.com>
҂Z˞x^tree 3662e883fa1fe2e61f95db9442763eca65469486
parent 6364c13f91d6699ec844758e41a6ac5c059edcf1
parent 8fe8d6d4de114cb917b9748be89fb0fe565285b6
author openharmony_ci <120357966@qq.com> 1757330375 +0000
committer Gitee <noreply@gitee.com> 1757330375 +0000

!3921 CAPI Image组件支持内容转场动效
Merge pull request !3921 from kangshihui/dev_0908sx#tree 4d2a536f822e5dba95d7a342ce2de6b7800e585c
parent 54b94076fb819cae2ed91b3ad29f730558060953
author 郝烁 <haoshuo1@huawei.com> 1757318041 +0000
committer Gitee <noreply@gitee.com> 1757318041 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 郝烁 <haoshuo1@huawei.com>`^x+tree 54158ca892f69ea60eaef6a6c3a414f476282535
parent 6364c13f91d6699ec844758e41a6ac5c059edcf1
author wangweiyuan2 <wangweiyuan2@huawei.com> 1757315077 +0800
committer wangweiyuan2 <wangweiyuan2@huawei.com> 1757315077 +0800

sourcetype add capi

Signed-off-by: wangweiyuan2 <wangweiyuan2@huawei.com>
_xgtree 3662e883fa1fe2e61f95db9442763eca65469486
parent 6364c13f91d6699ec844758e41a6ac5c059edcf1
author kangshihui <kangshihui@huawei.com> 1757312257 +0800
committer kangshihui <kangshihui@huawei.com> 1757312257 +0800

CAPI Image组件支持内容转场动效
Signed-off-by:kangshihui<kangshihui@huawei.com>

Change-Id: I6a2d498fd9b6147851c72975c0c84b566cc24a72
/z[xJtree 556b36b10d9c278de7bc3be6ee98a0acb8c3f416
parent c39e15eeae602b4fa356edec9e25ced1b8d7bd4d
parent fb439a28340e22a4f018237a55357b333332b3c3
author openharmony_ci <120357966@qq.com> 1757293871 +0000
committer Gitee <noreply@gitee.com> 1757293871 +0000

!3859 overlay interface
Merge pull request !3859 from Zenix/overlayInterfacee'xXtree 06b5f2b45a1c31d00a5b26ef4b29173325e39646
parent a7dafff0d5fbbcf522bfa7e6f23571ba03f06b05
parent 6d46bdb23d4d23315ccc40401256140992930930
author openharmony_ci <120357966@qq.com> 1757169590 +0000
committer Gitee <noreply@gitee.com> 1757169590 +0000

!3917 [BugFix]add strip for llvm/bin
Merge pull request !3917 from Lighting Artist/llvm-whhegx9tree f0ac40216676d850e8aed342c7d673aac0d8e697
parent 0bbebd205252bac6462515d8f730b2867bdfb423
author Lighting Artist <wanghao636@huawei.com> 1757154295 +0000
committer Lighting Artist <wanghao636@huawei.com> 1757165292 +0000

[BugFix]add strip for llvm/bin

Signed-off-by: Lighting Artist <wanghao636@huawei.com>
qbMxTtree c4045efccf3938bf11857be0e0699cc2447ffb23
parent 0bbebd205252bac6462515d8f730b2867bdfb423
parent bc145d0c5ac2114e1ce87d2dbdf8d5ab5621911c
author openharmony_ci <120357966@qq.com> 1757154767 +0000
committer Gitee <noreply@gitee.com> 1757154767 +0000

!3734 提供获取窗口信息的接口
Merge pull request !3734 from 陈树山/master|uxLtree 6949a982f4c23506d1e3a49d6f3f064d81d2ec01
parent 799376307ee40a8ec1e3ea579aae50f77fb09352
parent 13e2b034a380960444f5a12f431b3a3cf92630f6
author openharmony_ci <120357966@qq.com> 1757144840 +0000
committer Gitee <noreply@gitee.com> 1757144840 +0000

!3863 add GetAbilityResourceInfo
Merge pull request !3863 from xuyicong/master"csxRtree f9f5a0309a6ed968a50c944f7211f1fe0a23b557
parent 04f953cb4259aea5c45e6293ffd149d6e947d884
parent aec293c10b8b5e72bb71cd259bc92c3c22ffcb94
author openharmony_ci <120357966@qq.com> 1757130668 +0000
committer Gitee <noreply@gitee.com> 1757130668 +0000

!3915 add AVPlayer capi SetDataSource
Merge pull request !3915 from 李晓港/masterimx tree 705a022eafb3d4f9650cce97d6ec94e1e5f211ed
parent ccc52b3ed12291b2dec6e2c3d9e42ccc601ba2e9
author xiaozuo00 <xuyicong3@huawei.com> 1756710533 +0800
committer xiaozuo00 <xuyicong3@huawei.com> 1757130110 +0800

add GetAbilityResourceInfo

Signed-off-by: xiaozuo00 <xuyicong3@huawei.com>
[xLtree fe84f203571668d2e8fa2ffbedc33da3319c9530
parent b5bb5182508dd0a3c0d39f019069a99f1679488d
parent fd68a09a34b144157d0b045147734db35b0f1f3d
author openharmony_ci <120357966@qq.com> 1757076274 +0000
committer Gitee <noreply@gitee.com> 1757076274 +0000

!3790 slider支持渐变色能力
Merge pull request !3790 from xushunjie/sdkc%jx^tree 52f18e9c28b1f4277f15984b704a02429ffda030
parent ffd8c8d965b045035ae5c672ff2e1cf977c11843
parent 27fa00283960364c4c0cf25cd201fb32351e1dd4
author openharmony_ci <120357966@qq.com> 1757076256 +0000
committer Gitee <noreply@gitee.com> 1757076256 +0000

!3887 补充backgroundImagePositionAPI12注释
Merge pull request !3887 from 潜秋宏/0902_capifpx~tree 93217c03fd117c5621e4c4fbc1c0d80c8e36332a
parent 41eb2bed40eeffe3aa49f0e7f2f62a72433bbfd4
parent 61e028d720525c4039c6ac854548f04cf3b7d35c
author openharmony_ci <120357966@qq.com> 1757072752 +0000
committer Gitee <noreply@gitee.com> 1757072752 +0000

!3781 Intercept and ReDispatch KeyEvent To Support Secure Password Input.
Merge pull request !3781 from wuliangdong/re_dispatch_keyiJxrx|tree 4b414d6fa3f47d72d3c4ff0b5e93240350c26963
parent 3ed3e5307b28e56727641f29a00893c90f7597ea
parent 1f56cdb067415753603d2a4936917ff2e405f1dc
author openharmony_ci <120357966@qq.com> 1757072323 +0000
committer Gitee <noreply@gitee.com> 1757072323 +0000

!3762 descritpion:UIAbility获取首次启动参数&amp;最近启动参数ndk接口定义
Merge pull request !3762 from 查维/master?Bxtree 0ae96240167349f6fc35e79e84b0f63d8e646f3e
parent 7f334b263e08c290efaa641b9269e3dc02d8034e
author 陈树山 <css353929243@163.com> 1757067284 +0800
committer 陈树山 <css353929243@163.com> 1757067284 +0800

更新json配置

Signed-off-by: 陈树山 <css353929243@163.com>
\(xRtree 87e205f10b015e91993ac124097df670c87937de
parent 9b239b8e04e593a86345edcf724fbe8fd81711fa
parent fb6653e921857263e6022ce81d2da2240b3b3e38
author openharmony_ci <120357966@qq.com> 1757065560 +0000
committer Gitee <noreply@gitee.com> 1757065560 +0000

!3897 追加相机NDK接口返回值
Merge pull request !3897 from zhanglei/0904-sdkmxCtree 14ad0148781ad2f095bcddb223daa43d956b4660
parent 47a73b9e956f2af363ee335001f7109c4446a4bf
parent 9aff960af8ce87d9826ca916265e12bb3c31a108
author openharmony_ci <120357966@qq.com> 1757065207 +0000
committer Gitee <noreply@gitee.com> 1757065207 +0000

!3886 add SetLogLevel
Merge pull request !3886 from buzhenwang/master?0`x@tree b1f863e87e29ceb5d163ba53b748e9de73236150
parent 0e27ae677af41acf28cc43e09d45540c91b35f10
author 查维 <zhawei12@huawei-partners.com> 1757064834 +0000
committer Gitee <noreply@gitee.com> 1757064834 +0000

update AbilityKit/ability_runtime/application_context.h.

Signed-off-by: 查维 <zhawei12@huawei-partners.com>هkx}tree ba85cca91cb92bdd9fc402a7dd83ce442596e88f
parent b9e7d33e13cb4b0a414390eee00ae1843765c5f7
parent 47a73b9e956f2af363ee335001f7109c4446a4bf
author 查维 <zhawei12@huawei-partners.com> 1757064587 +0000
committer Gitee <noreply@gitee.com> 1757064587 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 查维 <zhawei12@huawei-partners.com>hx.tree 5f4614c8aa53dc39a0134303351b226d309061e1
parent 47a73b9e956f2af363ee335001f7109c4446a4bf
author 李晓港 <lixiaogang28@huawei.com> 1757063096 +0800
committer 李晓港 <lixiaogang28@huawei.com> 1757063096 +0800

add AVPlayer capi SetDataSource

Signed-off-by: 李晓港 <lixiaogang28@huawei.com>
f!xStree 42bee2b054100d3672d6aee72f8c6819a7d6fcb6
parent fc716a1d6dee93852e2a33cd5760196d85e81ca4
parent 338ae60539920f1765c3b816db89c563e1c7060c
author openharmony_ci <120357966@qq.com> 1757062324 +0000
committer Gitee <noreply@gitee.com> 1757062324 +0000

!3664 NDK接口支持返回pid
Merge pull request !3664 from 杨旭光/feat/start-pid>nxtree 89d458460c59eb89b4a0c22cdbc68b45cf2b52d2
parent 3f0dcf78232d05b0b0c3bb959b84b54d79f1fa08
author ZB <zhuhaokai@huawei.com> 1756823617 +0800
committer ZB <zhuhaokai@huawei.com> 1757059781 +0800

多设备支持同时发声

Signed-off-by: ZB <zhuhaokai@huawei.com>
cQ[xrtree bb4b7ddd2448513451609b6b0924e98348681cb4
parent fc2d2d94c15182c80ace6b8f988627453571defc
author wuliangdong <wuliangdong1@huawei.com> 1755764695 +0000
committer wuliangdong <wuliangdong1@huawei.com> 1757054277 +0800

Intercept and ReDispatch KeyEvent To Support Secure Password Input.

Signed-off-by: wuliangdong <wuliangdong1@huawei.com>
Change-Id: I0f72ee9059f6a631f2ec8c83c2e63a96e07c102d
!~kx)tree 43c3d208ce306ab0963bfdf802fffb1d1d921f85
parent 15fc5749316a2342aee3dded9d09468b2c063b4b
author liuyifei <liuyifei20@huawei.com> 1757043885 +0000
committer Gitee <noreply@gitee.com> 1757043885 +0000

update hiviewdfx/hilog/include/hilog/log.h.

Signed-off-by: liuyifei <liuyifei20@huawei.com>2^xtree 60ab37241997158466a9c14129a63482a27cdcd1
parent 07b0609bb8e91e83c6f18835eddf9c4c5c39e6c9
author buzhenwang <buzhenwang@huawei.com> 1756814353 +0800
committer buzhenwang <buzhenwang@huawei.com> 1757036562 +0800

add SetLogLevel

Signed-off-by: buzhenwang <buzhenwang@huawei.com>
aYxtree 481d2e6c3ffedb64d42d3b435194436ab113b110
parent fc716a1d6dee93852e2a33cd5760196d85e81ca4
author liuyifei <liuyifei20@huawei.com> 1757035818 +0000
committer Gitee <noreply@gitee.com> 1757035818 +0000

hilog API注释更新

Signed-off-by: liuyifei <liuyifei20@huawei.com>i-Ynxutree 23d74a39f9e365fabe2ed24ce12d0fafc539292d
parent a586e6a5641d5c8b486d1edc2d5fa9312e50c78c
author 潜秋宏 <qianqiuhong@h-partners.com> 1756815467 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1756994230 +0800

补充backgroundImagePositionAPI12注释

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
Change-Id: Ia0b0ee96d20f81a3ee1cd4051f928d6437ac6db2
lxPtree 6a516e3e3babf11516153b1f443429e39d9835d7
parent 1e2155adef4a93e71a624fec20d3044e81f6f7a2
parent 70f2c7a654155edb89f18aae65d9c2c4a407e733
author openharmony_ci <120357966@qq.com> 1756991425 +0000
committer Gitee <noreply@gitee.com> 1756991425 +0000

!3899 修改扫描c-sdk代码注释
Merge pull request !3899 from 刘昊苏/masterip
xGtree 51263c1ca435942d30a6feec7826800e292f887b
parent 680b6499e71d7ba2136b0cc682c5fba1dccf732d
parent 73b83364166bd1d144b6a3f67a26e72b139ac33b
author openharmony_ci <120357966@qq.com> 1756990495 +0000
committer Gitee <noreply@gitee.com> 1756990495 +0000

!3900 修改接口注释
Merge pull request !3900 from zzhengxiang/master&hPx|tree e90cd2bc69e7137e485c13637e573bc8523b4232
parent 6a31bc633ec98c2b5fb76c0624d1f5df35f6ec96
parent df30f2b082fb1d357be31ef9aa28ec26066fe5c5
author openharmony_ci <120357966@qq.com> 1756989809 +0000
committer Gitee <noreply@gitee.com> 1756989809 +0000

!3898 修改 OH_ArkUI_NativeModule_InvalidateAttributes 注释
Merge pull request !3898 from wujinhui/bug_fix_change_func_desc{xStree d0bc53e89080af589e1a55b6e377853087955726
parent 6a31bc633ec98c2b5fb76c0624d1f5df35f6ec96
author Nathan Yang <yangxuguang3@huawei.com> 1753670360 +0800
committer Nathan Yang <yangxuguang3@huawei.com> 1756988904 +0800

feat: add OH_AbilityRuntime_StartSelfUIAbilityWithReceivingPid

Signed-off-by: Nathan Yang <yangxuguang3@huawei.com>
<mPxtree 7f006ff8868769f2b247f0cfd0cb2ab75bb7beb5
parent 174027769036523445535a15b9d63813d2c59f06
author zzhengxiang <2646125453@qq.com> 1756976715 +0800
committer zzhengxiang <2646125453@qq.com> 1756976715 +0800

修改接口注释

Signed-off-by: zzhengxiang <2646125453@qq.com>
lV}x?tree 61e377f9238c8624feb7fa7fc04fa8f6314da40f
parent f83acbc0c0a028ae2d165416f7d3e39c92e34ba9
author xushunjie <xushunjie1@huawei-partners.com> 1756976067 +0000
committer Gitee <noreply@gitee.com> 1756976067 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: xushunjie <xushunjie1@huawei-partners.com>hxCtree 71c2ce3389b21942867ef6b1a7e66acfe8343151
parent 6a31bc633ec98c2b5fb76c0624d1f5df35f6ec96
author 刘昊苏 <liuhaosu@huawei.com> 1756974920 +0800
committer 刘昊苏 <liuhaosu@huawei.com> 1756974920 +0800

修改扫描c-sdk代码注释; Signed-off-by:liuhaosu@huawei.com

Signed-off-by: 刘昊苏 <liuhaosu@huawei.com>
Hwϓxstree 201e28dee420109c2bffb736eeac3f799e87bdbb
parent b0b0a0db45fd0af4a032e327e91143c9d81e61f0
parent 9820fe946996d696fe679f6f5c444906df4fddf4
author openharmony_ci <120357966@qq.com> 1756972477 +0000
committer Gitee <noreply@gitee.com> 1756972477 +0000

!3893 fix master multimodalinput/kits/c/input/oh_input_manager.h diff
Merge pull request !3893 from 王豪/m-0902diffHYunx;tree 5e5679201576d68335c60c77e6cbc52c2c7283b7
parent b0b0a0db45fd0af4a032e327e91143c9d81e61f0
author wujinhui <wujinhui7@huawei.com> 1756969999 +0800
committer wujinhui <wujinhui7@huawei.com> 1756969999 +0800

修改 OH_ArkUI_NativeModule_InvalidateAttributes 注释

Signed-off-by: wujinhui <wujinhui7@huawei.com>
ix"tree 40d02336b6e2ed3b731be6af3ec824196ae39930
parent b0b0a0db45fd0af4a032e327e91143c9d81e61f0
author zhanglei <zhanglei737@huawei.com> 1756968780 -0700
committer zhanglei <zhanglei737@huawei.com> 1756968780 -0700

fix camera ndk error code

Signed-off-by: zhanglei <zhanglei737@huawei.com>
ZJxmtree c674d7ac4517c4cd29b45cb1d82b635efe3e58ad
parent 486c5c172386684a55b7313e6b4ffe6be5636c61
parent 7ebda3c9e0ab7672d7da05b204c0064c4a3c7d0e
author openharmony_ci <120357966@qq.com> 1756958571 +0000
committer Gitee <noreply@gitee.com> 1756958571 +0000

!3777 feat: List支持展开指定的ListItem的swipeAction
Merge pull request !3777 from zhanghang/swipeActionFyxNtree 864f76991f4db10b7c853cea7307b51aef9e14df
parent 824108be5cd317b2b59bef81f6d4678fdde8d46c
parent de7dc4d28aedd1ac06a03f958967639223969eef
author openharmony_ci <120357966@qq.com> 1756957853 +0000
committer Gitee <noreply@gitee.com> 1756957853 +0000

!3894 FixLoudNessGainIntroudced
Merge pull request !3894 from huangtianyu/masterfxdtree cb50d1c22fcd2aae79cab63511f1ba463800041b
parent 492681f7be94dfb2b6e0563b4d8e4a04529bf106
parent 749a7661b67b15419e170443d26d57528bb52471
author openharmony_ci <120357966@qq.com> 1756957825 +0000
committer Gitee <noreply@gitee.com> 1756957825 +0000

!3838 增加OH_UdmfData* OH_Pasteboard_GetData权限说明
Merge pull request !3838 from 任倩/masterslx
tree 259cb53126ec71827a3783d456f0bc9d75e4ad71
parent e152dc3c27d2d819ffa38b925616061057e11e6f
author 卢宇豪 <luyuhao6@huawei.com> 1756888013 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1756888013 +0800

chaneg1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
ZDx#tree 4b63e080083c1e3ac42c2f9dcc4823dee14658cd
parent eb56c47c74a4b502a2f619bcfaddea887564f45d
author huangtianyu <huangtianyu15@huawei.com> 1756885611 +0000
committer Gitee <noreply@gitee.com> 1756885611 +0000

FixLoudNessGainIntroudced

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>F]xgtree 3ba37bf1b8d6d2a5cab2ad3f361b240b4337cfbc
parent eb56c47c74a4b502a2f619bcfaddea887564f45d
parent 6f70671cbabaa01a360346dd6d490fb71b20a242
author openharmony_ci <120357966@qq.com> 1756885276 +0000
committer Gitee <noreply@gitee.com> 1756885276 +0000

!3891 update multimedia/player_framework/lowpower_avsink_base.h.
Merge pull request !3891 from zpf/masterZqxtree 8e59440f73f566afc7f37e6f2468efee6b206c63
parent 174027769036523445535a15b9d63813d2c59f06
author wanghao1717 <wanghao505@huawei.com> 1756884268 +0800
committer wanghao1717 <wanghao505@huawei.com> 1756884268 +0800

update

Signed-off-by: wanghao1717 <wanghao505@huawei.com>
Y<Qx;tree 6da3b4b38d9e9dcaa0f6b7d703ddf73c1cdb925a
parent 3f0dcf78232d05b0b0c3bb959b84b54d79f1fa08
parent dbc85aaf9cb2c9033372e9effb0e2c775abf52ea
author openharmony_ci <120357966@qq.com> 1756883088 +0000
committer Gitee <noreply@gitee.com> 1756883088 +0000

!3881 svg feature
Merge pull request !3881 from 张全超/svgc[x2tree 99b53a1076f41b1fcdfd112b84e3132bb4173b68
parent 3dee6b66f01639b42aac82014e70a6f5b4783c0f
author zpf <zhupengfei26@huawei.com> 1756871639 +0000
committer Gitee <noreply@gitee.com> 1756871639 +0000

update multimedia/player_framework/lowpower_avsink_base.h.

Signed-off-by: zpf <zhupengfei26@huawei.com><bpxktree d356ae2d2332561519e9ea2bc6501196383a8ce4
parent 3f0dcf78232d05b0b0c3bb959b84b54d79f1fa08
author zhanghang <zhanghang160@huawei-partners.com> 1755220938 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1756868479 +0800

feat: List支持展开指定的ListItem的swipeAction

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
Change-Id: I286b01bfbe3dad80b92db6974b5c04bd56269f95
戫xatree 364f4d934449a133a2f62e9be911e87b17ce6c93
parent 07b0609bb8e91e83c6f18835eddf9c4c5c39e6c9
parent ce659aa59b8a8a12c6e2b9e6acd141ed77be3ba7
author openharmony_ci <120357966@qq.com> 1756821815 +0000
committer Gitee <noreply@gitee.com> 1756821815 +0000

!3882 相机框架增加高性能接口
Merge pull request !3882 from zhanglei/0902_interface_sdk_cwx2tree c72e38bced6bb94fae78f8f992ea1f2fba8423d4
parent df6a4fd463584371f7b9fa193888b6fac82c6641
author zpf <zhupengfei26@huawei.com> 1756818790 +0000
committer Gitee <noreply@gitee.com> 1756818790 +0000

update multimedia/player_framework/lowpower_avsink_base.h.

Signed-off-by: zpf <zhupengfei26@huawei.com>kxcxtree f2a8c1167556e6dc00a62341a3d0534c4d97e4aa
parent 54d452cb3e5581ed3fc4e790367efd4c317b847f
author Zenix <zhengxingyou1@huawei.com> 1756697607 +0800
committer Zenix <zhengxingyou1@huawei.com> 1756818233 +0800

overlay interface

Signed-off-by: Zenix <zhengxingyou1@huawei.com>
}MXKx2tree 13e810a721cd41e988ca52206ab193cec69b1c63
parent cf91bcf9b61344c9b0619d42b9d8aca74bbaf118
author zpf <zhupengfei26@huawei.com> 1756803505 +0000
committer Gitee <noreply@gitee.com> 1756803505 +0000

update multimedia/player_framework/lowpower_avsink_base.h.

Signed-off-by: zpf <zhupengfei26@huawei.com>bx2tree d912d232265f213335654c3e1e69193c63674318
parent 5b75698a56c41b0a05c6150a691153141fb9a100
author zpf <zhupengfei26@huawei.com> 1756803425 +0000
committer Gitee <noreply@gitee.com> 1756803425 +0000

update multimedia/player_framework/lowpower_avsink_base.h.

Signed-off-by: zpf <zhupengfei26@huawei.com>b`x*tree 364f4d934449a133a2f62e9be911e87b17ce6c93
parent 07b0609bb8e91e83c6f18835eddf9c4c5c39e6c9
author zhanglei <zhanglei737@huawei.com> 1756800743 +0800
committer zhanglei <zhanglei737@huawei.com> 1756800743 +0800

相机框架增加高性能接口

Signed-off-by: zhanglei <zhanglei737@huawei.com>
hx,tree dbd24d495a892507df94433c74c44b21ad4f7f88
parent 07b0609bb8e91e83c6f18835eddf9c4c5c39e6c9
author zhang-quanchao <zhangquanchao@huawei.com> 1756800525 +0800
committer zhang-quanchao <zhangquanchao@huawei.com> 1756800525 +0800

svg feature

Signed-off-by: zhang-quanchao <zhangquanchao@huawei.com>
/`ȘxHtree b65d5099c245396be2c07076224e67058c364616
parent 174027769036523445535a15b9d63813d2c59f06
parent f4b78717f0be92380542d49c60db9021d82bf7e0
author openharmony_ci <120357966@qq.com> 1756796942 +0000
committer Gitee <noreply@gitee.com> 1756796942 +0000

!3855 提交areachange接口
Merge pull request !3855 from 邹林肯/zlk108fxtree 698e05f4b3e914adc44441f797369a6b8cbde42b
parent 174027769036523445535a15b9d63813d2c59f06
author zpf <zhupengfei26@huawei.com> 1756790686 +0800
committer zpf <zhupengfei26@huawei.com> 1756790686 +0800

lpp 接口

Signed-off-by: zpf <zhupengfei26@huawei.com>
IQ3xtree 4de53220e1b917831144de2b3d2a412c4646d405
parent ec4b8c3fa22270b7eb2ef2ea28b5a60c40024760
author 陈树山 <css353929243@163.com> 1756781196 +0800
committer 陈树山 <css353929243@163.com> 1756781196 +0800

修改差异0902

Signed-off-by: 陈树山 <css353929243@163.com>
/[<x
tree e3c92799eb2c7fa1bbf9e421648180d314147e76
parent a7ce3f71e3930f11187937d7c260ad65467cf4b5
author 卢宇豪 <luyuhao6@huawei.com> 1756716552 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1756716552 +0800

chaneg1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
ZNxBtree 66892019fe302833c454c245ebe450a1d244eb14
parent 54d452cb3e5581ed3fc4e790367efd4c317b847f
parent ccaab5706ea2706cff859b78c7e1a3d9d0299cf1
author openharmony_ci <120357966@qq.com> 1756711622 +0000
committer Gitee <noreply@gitee.com> 1756711622 +0000

!3845 处理告警问题
Merge pull request !3845 from zzz701/masterex
tree c8bf027cd00a5f225208c694fd80bd06dbb4317b
parent c91131495b95464550ae6307df5ac5c679e7b89f
author 卢宇豪 <luyuhao6@huawei.com> 1756707903 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1756707903 +0800

chaneg1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
Zx
tree 4131b4f6c10f9938c1e8209a23e45027172723a9
parent 6c8a1c472eb2cc472a3210f2bf56c77694b0e38e
author 卢宇豪 <luyuhao6@huawei.com> 1756707770 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1756707770 +0800

chaneg1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
YМxtree db5946930112f9c44f62c820a3cbde4e8016ddae
parent 57a2287f798e8959b409c9dda99051f3553697ab
author zzz701 <lihaima1@huawei.com> 1756705454 +0800
committer zzz701 <lihaima1@huawei.com> 1756705466 +0800

修改编译告警

Signed-off-by: zzz701 <lihaima1@huawei.com>
ĜW1xBtree 2d271a61ca4c1aad40495e8967dbe6a9667b17c9
parent ccc52b3ed12291b2dec6e2c3d9e42ccc601ba2e9
parent 327613876307527d9c3226322666a1178ecba64a
author openharmony_ci <120357966@qq.com> 1756696828 +0000
committer Gitee <noreply@gitee.com> 1756696828 +0000

!3810 pip注释修改
Merge pull request !3810 from 周敬松/master"gsx
tree 89d2c8b51756e205e77b52dd96e6510dfa6c2973
parent ccc52b3ed12291b2dec6e2c3d9e42ccc601ba2e9
author 卢宇豪 <luyuhao6@huawei.com> 1756630867 +0800
committer 卢宇豪 <luyuhao6@huawei.com> 1756630867 +0800

hcange1

Signed-off-by: 卢宇豪 <luyuhao6@huawei.com>
[xZtree e4cef17087d32cbc463bab2bc0515c619a805132
parent 0701a1a61130f47bed9796e70ec0e488d8e66fcb
parent 4c22ea983935342ae8218d8c9a2262283a0e9cad
author openharmony_ci <120357966@qq.com> 1756627501 +0000
committer Gitee <noreply@gitee.com> 1756627501 +0000

!3856 Interface: Pasteboard Sync Delayed Data
Merge pull request !3856 from 朱思远/masterlRkkx0tree e4cef17087d32cbc463bab2bc0515c619a805132
parent 0701a1a61130f47bed9796e70ec0e488d8e66fcb
author 朱思远 <zhusiyuan2@huawei.com> 1756621091 +0800
committer 朱思远 <zhusiyuan2@huawei.com> 1756621091 +0800

Interface: Pasteboard Sync Delayed Data

Signed-off-by: 朱思远 <zhusiyuan2@huawei.com>
i&x+tree 7137a8acc90f1d62e1372dc79f1a804cf1af5c0d
parent 0701a1a61130f47bed9796e70ec0e488d8e66fcb
author fangzhiyuan <fangzhiyuan5@huawei.com> 1756550758 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1756551283 +0800

提交areachange接口

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
	dxBtree 329db81c46b65ceef7647dcd86c437df707d9d6b
parent beccf7120e2d6f048495818db415b4cc5ead1d0b
parent dbf8a0d5cbf671fa70500588c66e1b0c4ce6238b
author openharmony_ci <120357966@qq.com> 1756538535 +0000
committer Gitee <noreply@gitee.com> 1756538535 +0000

!3828 修改sdk版本号
Merge pull request !3828 from 王洋/master5hxAtree 6985e272394bf384c550ef6d9285fdcd7e7b9bfd
parent ed63f43bc8876325159574f47bb09c357ffdba84
parent a3ff57b136286540d5029d15614cc2691d4741ea
author openharmony_ci <120357966@qq.com> 1756527135 +0000
committer Gitee <noreply@gitee.com> 1756527135 +0000

!3848 revert interface
Merge pull request !3848 from zql_666/master_xItree 71a3b3468fe8251ec6ad17907fcf844078121958
parent e56879b5e3af38c851b7501a7298a7e82a575e13
parent eae957d4f5b6b78dcb42f6195227b9d9fbdc15dc
author openharmony_ci <120357966@qq.com> 1756523689 +0000
committer Gitee <noreply@gitee.com> 1756523689 +0000

!3735 LineHeight interface for c
Merge pull request !3735 from FTL1ght/0812ba3xPtree c14e911194cbb2b6a61538a398a81f55b8c41f90
parent 18cea6d418b0ce1d505a902e5f865c0ab3c35a60
author FTL1ght <zhangyubao@h-partners.com> 1756519231 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756519231 +0800

Remove const

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I7a7a4151be4ea64152eb1ad9ffee345115efefb5
gjxctree dfeada1d95874798abd2ccfb3c84d97f5f63bf75
parent 0ba75430c759d62a3874beaf69d21072bb00d775
author FTL1ght <zhangyubao@h-partners.com> 1756517552 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756517552 +0800

Remove syscap and value is null

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Iefeaba95b905ca48c75a4cdbeb0bbbb4c84e2072
Kox^tree 5bd05658d79f162bfc958dc6badcd339ffd07ef7
parent 03d9eb28836e299cec9beb0b67e6e86a141c982c
parent a586e6a5641d5c8b486d1edc2d5fa9312e50c78c
author openharmony_ci <120357966@qq.com> 1756515385 +0000
committer Gitee <noreply@gitee.com> 1756515385 +0000

!3814 CAPI支持backgroundImagePosition对齐方式
Merge pull request !3814 from 潜秋宏/0826tѕx%tree 54b8756d0fdc31553e8b6f923dfd945df511d219
parent 03d9eb28836e299cec9beb0b67e6e86a141c982c
author lizeqiang <lizeqiang4@h-partners.com> 1756462445 +0800
committer lizeqiang <lizeqiang4@h-partners.com> 1756463770 +0800

revert interface

Signed-off-by: lizeqiang <lizeqiang4@h-partners.com>
%]x;tree 53136674772f1575b5a0bd9c19e15470ddb338be
parent 87fbe919200e0723b4d9e096a8e64713b51dbaf7
parent e36153d1511e10bf075d2292fe6318bcf6e94a5d
author openharmony_ci <120357966@qq.com> 1756452874 +0000
committer Gitee <noreply@gitee.com> 1756452874 +0000

!3844 add since
Merge pull request !3844 from hejunfei/master=]xVtree d3e1acf11b005c6c14053278b62a03aa3c930f0b
parent ae45fe2b6653cd713d3916389291cd2b5d0a683d
parent 2f9db33ba2d481a2f098a2642cb1e927f725c2ee
author openharmony_ci <120357966@qq.com> 1756452354 +0000
committer Gitee <noreply@gitee.com> 1756452354 +0000

!3795 TextContentAlign CAPI
Merge pull request !3795 from chenjiafeng10/textContentAlignZgxYtree 854c509bd5057aaed4d94a301e31eb8ee1eb8c12
parent 4b16d124c1030228a77212d6eb010ebe5c04db2b
parent 7fdc97f20b704747e3d7da6452b745aa50775d66
author openharmony_ci <120357966@qq.com> 1756449028 +0000
committer Gitee <noreply@gitee.com> 1756449028 +0000

!3805 uid隔离需求功能代码
Merge pull request !3805 from 张昊峥/zhz_isolation_uidtRxtree 07ac5b3025b4be73a816fc5bc6b7f5240076ab5f
parent af44ce98ddbdab784250410e4fd03844ccf79b1c
author hejunfei <hejunfei@huawei.com> 1756447551 +0800
committer hejunfei <hejunfei@huawei.com> 1756447551 +0800

add

Signed-off-by: hejunfei <hejunfei@huawei.com>
KQx[tree daee96c3f96cbc31b0d8a1efc94b34d379bcbae1
parent 57a2287f798e8959b409c9dda99051f3553697ab
parent dc8c2baebf06be9dc38990448127ba69d97aaa52
author openharmony_ci <120357966@qq.com> 1756440886 +0000
committer Gitee <noreply@gitee.com> 1756440886 +0000

!3809 蓝黄同步nativ_child_process.h
Merge pull request !3809 from sty28558/LanHuangTongBu7nҙx	tree bbbee39162578d9bf3d566085843288afb2705b2
parent 57a2287f798e8959b409c9dda99051f3553697ab
author hejunfei <hejunfei@huawei.com> 1756440626 +0800
committer hejunfei <hejunfei@huawei.com> 1756440626 +0800

add since

Signed-off-by: hejunfei <hejunfei@huawei.com>
Qx?tree fcd46e727c6e7c55ecab0ae93304270522cd7633
parent 57a2287f798e8959b409c9dda99051f3553697ab
author chenjiafeng10 <chenjiafeng10@h-partners.com> 1756436753 +0800
committer chenjiafeng10 <chenjiafeng10@h-partners.com> 1756437057 +0800

TextContentAlign CAPI

Signed-off-by: chenjiafeng10 <chenjiafeng10@h-partners.com>
cޖx&tree 05e67453fd2909905abc609d9242b3e0e9f05eb1
parent f69c1075195b98b75dd89e888b6a707851642052
author Charles <wangchao685@h-partners.com> 1756435758 +0800
committer Charles <wangchao685@h-partners.com> 1756435758 +0800

update func comments

Signed-off-by: Charles <wangchao685@h-partners.com>
Zfx'tree cbcec3d4b1ccece4bf56cca750b371295551f90d
parent 88f27d635e3876ddfdd6513858ae5dbf9ed014f5
author Charles <wangchao685@h-partners.com> 1756435479 +0800
committer Charles <wangchao685@h-partners.com> 1756435479 +0800

update interface name

Signed-off-by: Charles <wangchao685@h-partners.com>
	]6xXtree 71ad535acdf336728f0c8da2cf18f72e81ce9463
parent fb3b806e1a7779ab7e5be71f2b760f8ff7051b40
parent 8f86646d1c0cf773e0c70a652c5761184d0ad6e4
author openharmony_ci <120357966@qq.com> 1756432348 +0000
committer Gitee <noreply@gitee.com> 1756432348 +0000

!3802 修改DidFailWithErrorV2接口注释
Merge pull request !3802 from zhengyutao/masterΝoExDtree 6e72964dbb862980b192ffdaf08a4dd1881464f3
parent c074da9a112ab8690a708648d510d1006950676c
parent f5aabe6083a92e4a84e8d1a12ab8aa26ce30c4e9
author openharmony_ci <120357966@qq.com> 1756386712 +0000
committer Gitee <noreply@gitee.com> 1756386712 +0000

!3736 dual core code sync
Merge pull request !3736 from zql_666/masterQ`Bxhtree 854784f3b4767f3ae5aed8aa017f614b7b56de7d
parent 8057c86fdf6e5caeb9249d8eb6c291ccbaa2ba1e
parent 431b218dd6c694a2f0c3b079f3e78a5360095022
author openharmony_ci <120357966@qq.com> 1756384630 +0000
committer Gitee <noreply@gitee.com> 1756384630 +0000

!3817 算法库capi增加随机数开启硬件熵源接口
Merge pull request !3817 from lichaochen/master|?xVtree c3632af51dbaf3a862e15a39fe127de8376b62c5
parent a588fb6357c7edb847c0258b9381d84d832f7fd9
parent 0e4d2c5948d5601204cb4abd0953044d2f3e54a3
author openharmony_ci <120357966@qq.com> 1756383892 +0000
committer Gitee <noreply@gitee.com> 1756383892 +0000

!3803 修复onSizeChange接口注释错误
Merge pull request !3803 from 邹林肯/zlk091rlxGtree 8d97900913be3732a189f5b4cc63c600c599b60b
parent eac4c9eb02bc8550c0f4441c6feb672d612a7452
parent e36a491b3c678e6d14ac6043daa8086f568b230d
author openharmony_ci <120357966@qq.com> 1756375630 +0000
committer Gitee <noreply@gitee.com> 1756375630 +0000

!3827 一致性修改02
Merge pull request !3827 from 潜秋宏/zdl082741hOx|tree 38729bfe75e70bfe7b7205e4400d4834ec483ca6
parent 237d01f8754c44e080c0cb87510770cbd24ba314
author zhang_hao_zheng <zhanghaozheng2@h-partners.com> 1756193760 +0800
committer zhang_hao_zheng <zhanghaozheng2@h-partners.com> 1756372604 +0800

uid隔离需求功能代码

Signed-off-by: zhang_hao_zheng <zhanghaozheng2@h-partners.com>
Change-Id: Ib1e9ffbbe64d94018acd6fea08cfc10ad1b2d956
}Byx,tree 8ab65307b5ffc98500523871a1e28626fd6f3297
parent eac4c9eb02bc8550c0f4441c6feb672d612a7452
author 任倩 <renqian12@huawei.com> 1756372043 +0000
committer Gitee <noreply@gitee.com> 1756372043 +0000

增加OH_UdmfData* OH_Pasteboard_GetData权限说明

Signed-off-by: 任倩 <renqian12@huawei.com>gqxZtree 64ec5f3eb93b420eec03d701caffb1df373d2796
parent b8e8a1f6b4d61587837d14fa6d5f310e1baf58f8
author FTL1ght <zhangyubao@h-partners.com> 1756368001 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756368001 +0800

Remove useless returns

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Ifecd3ff3e6f57b5058b88b9cc2ded8e593532d33
mltxBtree 3b6492c0fc68dd294ae3cc0f98d42a38fb1b376e
parent 1b4c3dd644316beff80f2adb8a6e2d556d98a3ef
parent daec7f7c048add820b02681a982bbd3c2c4a4d19
author openharmony_ci <120357966@qq.com> 1756365270 +0000
committer Gitee <noreply@gitee.com> 1756365270 +0000

!3830 修改检视意见
Merge pull request !3830 from zzz701/master]gxStree 4b631920e5975d4ee96fb344a2a261f03533d873
parent 1f2c24abf33bd265ea9c3868e39359229cbe717d
author FTL1ght <zhangyubao@h-partners.com> 1756363460 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756363460 +0800

Fix description

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I20fa5ca4e9f225065f9ed34dd22b0c3817e9770e
gxUtree d98ab75f3fb2790c0921d357c91326ac5170c366
parent 6b00e7c35f55adc5342d76c318d7a20e801f0521
author lichaochen_huawei <lichaochen@huawei.com> 1756280228 +0800
committer lichaochen_huawei <lichaochen@huawei.com> 1756363036 +0800

算法库capi增加随机数开启硬件熵源接口

Signed-off-by: lichaochen_huawei <lichaochen@huawei.com>
!nxtree 3d6bfafe8a88a9e4a474664c57caed86d9b0584e
parent c67078c893bce2b8efe77382085b26dcb0f9ace5
author zzz701 <lihaima1@huawei.com> 1756348210 +0800
committer zzz701 <lihaima1@huawei.com> 1756355111 +0800

修改检视意见

Signed-off-by: zzz701 <lihaima1@huawei.com>
X1x%tree 70351c438a1e763e3f4e02b3b92184db518c3073
parent 6b00e7c35f55adc5342d76c318d7a20e801f0521
author lancer <haoshuo1@huawei.com> 1756287896 +0800
committer lancer <haoshuo1@huawei.com> 1756350624 +0800

补充onWillStartDragging等事件的说明
Signed-off-by: haoshuo <haoshuo1@huawei.com>
d)xtree 6d532b2ae3a65245ac88dc7b5cde166b486d5c1e
parent 9f4ffcf7885d3f2b180672792c385edc2d1e8fa4
author 周敬松 <18328528985@163.com> 1756208268 +0800
committer 周敬松 <18328528985@163.com> 1756349606 +0800

pip注释规范修改

Signed-off-by: 周敬松 <18328528985@163.com>
;^͙xitree 1679924bcd86555e8255fa23506ed88cbf05fd7c
parent 61a9afa8466090dbd78e7f873ea726f1797ff7f0
parent 3d9becee32e9c45b069838d9bc77e5dfdec9568a
author openharmony_ci <120357966@qq.com> 1756346548 +0000
committer Gitee <noreply@gitee.com> 1756346548 +0000

!3749 hidebug新增接口OH_HiDebug_GetGraphicsMemorySummary
Merge pull request !3749 from 于好强/masterxx&tree 9f040a2edf5fa7db7b38163eac1e5b7d5b21b887
parent 54471b505adffe40a91ed067d5e058b1b332cc2b
author Charles <wangchao685@h-partners.com> 1756343749 +0800
committer Charles <wangchao685@h-partners.com> 1756343749 +0800

update func comments

Signed-off-by: Charles <wangchao685@h-partners.com>
\ix[tree 2e630aa4e94fd8cdab9fa36c58f0c9caf997b941
parent 61a9afa8466090dbd78e7f873ea726f1797ff7f0
author wangyang2022 <wangyang412@huawei.com> 1756303841 +0000
committer wangyang2022 <wangyang412@huawei.com> 1756303841 +0000

修改sdk版本号
Signed-off-by: wangyang2022 <wangyang412@huawei.com>
Change-Id: I6be2ed77669fcde03c3781b6cdb6b4025b696dd2
0ox)tree 4bb644913cd02c28f35de872b1cfce4ab3b640da
parent 61a9afa8466090dbd78e7f873ea726f1797ff7f0
author 潜秋宏 <qianqiuhong@h-partners.com> 1756302692 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1756302692 +0800

一致性修改02

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
<:lxNtree 7bb1dffe8a450646d4a9d179c73360e5f7f4aa35
parent 6b00e7c35f55adc5342d76c318d7a20e801f0521
parent 604ef26daf3ff0814ddf8040d49f225169aa6b5b
author openharmony_ci <120357966@qq.com> 1756298737 +0000
committer Gitee <noreply@gitee.com> 1756298737 +0000

!3796 ndk增加音量增益接口
Merge pull request !3796 from 胡庆龙/masteroܒxRtree ffc853ca5df592d675f6fb4756bcc1373e46acfc
parent 385a4d1b6c2ecf93c0cd36f2f8b90a92f4724e9b
author FTL1ght <zhangyubao@h-partners.com> 1756287052 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756287052 +0800

Add error code

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Ie8533f623f38b4f843c0bc6032b4f802e7058e16
|qhxOtree 59e9ed43b3d25970bc4589e6a61767efa40b2d87
parent 39b05c6d2d5d401545b8dd47d845a0ff12d4b4d9
author FTL1ght <zhangyubao@h-partners.com> 1756286337 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756286337 +0800

Format enum

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Idccc05c8edcd4e497583954e316a24e1a5a57da5
qfەxUtree 3a1500815b64b8c3ecd40426f103c3903e369074
parent 2f4187973409532b78a8ec0f9c9ee687746989f4
author FTL1ght <zhangyubao@h-partners.com> 1756284587 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756284587 +0800

Format error code

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I7a1570f54c494feae7be2a162f9593e6ac6135fc
&gGxtree ca0489ce51a427ab54d4488a1c3a0226f2e13f97
parent e43f0f4b56570db0b324c5de6f381b76d85f9426
author 陈树山 <css353929243@163.com> 1756265315 +0800
committer 陈树山 <css353929243@163.com> 1756265315 +0800

修改差异

Signed-off-by: 陈树山 <css353929243@163.com>
=wZxtree 7422ba3f6993d6c43c8741fedfe6a2e15ebc65ab
parent 769232cdaf43ebb454d98623776c2ca7f55f6c90
author 陈树山 <css353929243@163.com> 1756264011 +0800
committer 陈树山 <css353929243@163.com> 1756264011 +0800

0827检视意见修改

Signed-off-by: 陈树山 <css353929243@163.com>
`x5tree 55e668b5e467e6eaca849741b4c5cc3a9112685b
parent 4876a7c581bd37c9e388315d2cc15c9e8784f9d0
author 邹林肯 <zoulinken1@h-partners.com> 1756259864 +0000
committer Gitee <noreply@gitee.com> 1756259864 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 邹林肯 <zoulinken1@h-partners.com>h_xHtree f8d4121f9663cc9b6403d488569029ad86cb6668
parent b1781b33a49a24e86584f1b7a0581dcd30fff5d9
parent c67078c893bce2b8efe77382085b26dcb0f9ace5
author openharmony_ci <120357966@qq.com> 1756216958 +0000
committer Gitee <noreply@gitee.com> 1756216958 +0000

!3757 NDK打包裁剪1.2接口
Merge pull request !3757 from zzz701/master5ufx]tree 4cbca1d1921a0d9f2872fccabebd25bd80dcb162
parent b74e29dc1a552ef58c6d86a62147ffda0d8320f0
parent f2817b0d0c18c339ba1be91494e37dd043e3f046
author openharmony_ci <120357966@qq.com> 1756215600 +0000
committer Gitee <noreply@gitee.com> 1756215600 +0000

!3774 capi: layoutPolicy & position_edges
Merge pull request !3774 from CamlostShi/policyandposfkxMtree 524a7bb69b81415eec052df3e126985f29e16673
parent ee240ffe5efe6e0e5cd42d2682a68642fdd35a98
parent c4e5c588d28c8de359f903c1047d6961124f44ad
author openharmony_ci <120357966@qq.com> 1756215388 +0000
committer Gitee <noreply@gitee.com> 1756215388 +0000

!3800 修复render兼容性问题
Merge pull request !3800 from 邹林肯/zlk08DnCxztree f13d81cde06a0f71ea15574b3cd4ccdcdbd5e989
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author 潜秋宏 <qianqiuhong@h-partners.com> 1756214429 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1756214429 +0800

CAPI支持backgroundImagePosition对齐方式

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
Change-Id: I1a338d64df007f3be5c1f6d6431992b84dede981
/1xZtree d07dc8ca81708c3594c4fcf7ba7ac9ce0ea2c828
parent 410e063653732eba16f74156881b580c3bcabf35
author FTL1ght <zhangyubao@h-partners.com> 1756121123 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756214074 +0800

Attribute partitioning

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Icb8507f2e42aeca8a7f4d0065481c738aea0f5a1
;kx=tree ad4673420638e6c858bbbbd8e193cd3b09ec379a
parent 9f4ffcf7885d3f2b180672792c385edc2d1e8fa4
parent 75ba634a8d577a7c449424b5f86ee7ffb579d61d
author openharmony_ci <120357966@qq.com> 1756208573 +0000
committer Gitee <noreply@gitee.com> 1756208573 +0000

!3799 fix comment
Merge pull request !3799 from fengyulong/0822 ^՘xHtree a0adcf7d8dfb751e00acc89f66373b138bd8b4dd
parent 207b33b4fd18b1656b06b9aa7e5399cb2532fc91
parent 9fdf44951dceb3e9d689cfed4364e89aa3c07750
author openharmony_ci <120357966@qq.com> 1756202896 +0000
committer Gitee <noreply@gitee.com> 1756202896 +0000

!3798 修改接口描述
Merge pull request !3798 from 潜秋宏/zdl082530Glx0tree 878094317fe246b1077699b507be8e5abc4d7c8e
parent 207b33b4fd18b1656b06b9aa7e5399cb2532fc91
author fangzhiyuan <fangzhiyuan5@huawei.com> 1756198784 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1756198784 +0800

修复render兼容性问题

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
i xHtree 8eea3eb2621858c4d8c5e14f345c896b8e5d4d8f
parent 237d01f8754c44e080c0cb87510770cbd24ba314
parent 26a3a59898778caa7e19d3e550255feee96162a8
author openharmony_ci <120357966@qq.com> 1756196839 +0000
committer Gitee <noreply@gitee.com> 1756196839 +0000

!3783 逻辑相机NDK接口
Merge pull request !3783 from Mignon.Wu/masterufhx{tree 49d37d0690905839bf59f004c448e8ce3c959793
parent 494e0c3ee8dfd042b68cb0bd9deea601a77b2d03
parent a9df56e2a3d6c5c0cc9f717e78f3e245a610115e
author openharmony_ci <120357966@qq.com> 1756192496 +0000
committer Gitee <noreply@gitee.com> 1756192496 +0000

!3801 add new func OH_ArkUI_NativeModule_InvalidateAttributes
Merge pull request !3801 from wujinhui/add_new_func_invalidateAttributes2zx9tree abace79090783d9b67f143fd11e96a2de62d9457
parent 494e0c3ee8dfd042b68cb0bd9deea601a77b2d03
author fangzhiyuan <fangzhiyuan5@huawei.com> 1756191558 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1756191558 +0800

修复onSizeChange接口注释错误

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
anx)tree dbe9d0f42bc5cdd5aedf243fcda80c37259aae9a
parent 7c5e333fa221262cb9083dc9785ff6a60cc965a6
author Shi Bofan <shibofan1@huawei.com> 1755608493 +0800
committer Shi Bofan <shibofan1@huawei.com> 1756191022 +0800

capi: layoutPolicy & position_edges

Signed-off-by: Shi Bofan <shibofan1@huawei.com>
]זx&tree 343148ebc2f835b18fe0518a7530049ccc0a6e16
parent 494e0c3ee8dfd042b68cb0bd9deea601a77b2d03
author zhengyutao <zhengyutao@huawei.com> 1756189318 +0000
committer Gitee <noreply@gitee.com> 1756189318 +0000

修改DidFailWithErrorV2接口注释

Signed-off-by: zhengyutao <zhengyutao@huawei.com>NdxStree aca4fdf92f5b1d384bed28270d6ba64933d2c9c8
parent db9105e186b13f9816cb5ce7b84654272c612d52
author yuhaoqiang <yuhaoqiang@huawei.com> 1755161409 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1756188081 +0800

接口定义修改

Change-Id: I418faeaad02eaefecf92c304c5c08c55c0cfd390
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
e qrx:tree 49d37d0690905839bf59f004c448e8ce3c959793
parent 494e0c3ee8dfd042b68cb0bd9deea601a77b2d03
author wujinhui <wujinhui7@huawei.com> 1756180960 +0800
committer wujinhui <wujinhui7@huawei.com> 1756180960 +0800

add new func OH_ArkUI_NativeModule_InvalidateAttributes

Signed-off-by: wujinhui <wujinhui7@huawei.com>
heyx&tree 58914728bb2db2eed4ac598dfe3cbdadb6305f77
parent d8758a0dabf72937a48e628befef8f79e50935b6
author fengyulong <fengyulong3@h-partners.com> 1756177168 +0800
committer fengyulong <fengyulong3@h-partners.com> 1756177168 +0800

fix comment

Signed-off-by: fengyulong <fengyulong3@h-partners.com>
_extree e527603cc4c157abde9dd6612067a53c3947d81e
parent 4cffc1ee00ea30aaea17ee34062cd677f852d3b1
author 陈树山 <css353929243@163.com> 1756171711 +0800
committer 陈树山 <css353929243@163.com> 1756171711 +0800

检视意见修改

Signed-off-by: 陈树山 <css353929243@163.com>
m_Px*tree 9a788acd56fd1b69bd1d9db1ce7026a5920fabf2
parent 7c5e333fa221262cb9083dc9785ff6a60cc965a6
author 潜秋宏 <qianqiuhong@h-partners.com> 1756125163 +0800
committer 潜秋宏 <qianqiuhong@h-partners.com> 1756125163 +0800

修改接口描述

Signed-off-by: 潜秋宏 <qianqiuhong@h-partners.com>
nΞx^tree 43b04880070362b6618e9a3d36a42807cce227b0
parent df75f993d29dfe2289452d5da71d66f9cb0ceb9c
author FTL1ght <zhangyubao@h-partners.com> 1754981163 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1756120682 +0800

LineHeight interface for c

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I79e0ea7c29befd4fa2accdc2eacab64ad88e5db0
mjx(tree df1b5c0268fb26cd13a463ab0f188d121c37d6ff
parent 64984f3870fbcc220bd2f60d63c03a28c1d6f6f2
author lizeqiang <lizeqiang4@h-partners.com> 1754980652 +0800
committer lizeqiang <lizeqiang4@h-partners.com> 1756119400 +0800

dual core code sync

Signed-off-by: lizeqiang <lizeqiang4@h-partners.com>
$J^YxYtree f50925a7264351fa5ea4a60885bd6e2111e23f61
parent 7c5e333fa221262cb9083dc9785ff6a60cc965a6
parent 7a3b2b8618b639f81ea39b5030ea784f328fe258
author openharmony_ci <120357966@qq.com> 1756115330 +0000
committer Gitee <noreply@gitee.com> 1756115330 +0000

!3789 修复拖拽起拖返回值说明
Merge pull request !3789 from 刘永凯/fix_commentu:vmxFtree 367dd55c381fbea8f492037b5b3641fb7598a04f
parent 26b2df671acbe9065401886437b7f1223a7a6b89
author 查维 <zhawei12@huawei-partners.com> 1756114924 +0000
committer Gitee <noreply@gitee.com> 1756114924 +0000

update AbilityKit/ability_runtime/libability_runtime.ndk.json.

Signed-off-by: 查维 <zhawei12@huawei-partners.com>mcx@tree 3b4efc49e9d1edf599dc78dfc8dcd3520e3344c2
parent d65393c211ee73f01956e799e6a5c9780e73734f
author 查维 <zhawei12@huawei-partners.com> 1756114862 +0000
committer Gitee <noreply@gitee.com> 1756114862 +0000

update AbilityKit/ability_runtime/application_context.h.

Signed-off-by: 查维 <zhawei12@huawei-partners.com>Zkx0tree 07308b889075e60e4fe38d463b7253acb51f30fd
parent d8758a0dabf72937a48e628befef8f79e50935b6
author w30076694 <wumingyang11@h-partners.com> 1756105720 +0800
committer w30076694 <wumingyang11@h-partners.com> 1756105720 +0800

逻辑相机NDK接口

Signed-off-by: w30076694 <wumingyang11@h-partners.com>
oax"tree 55b94ade338c94574094b170ec7fe38e91f8e324
parent 7c5e333fa221262cb9083dc9785ff6a60cc965a6
author Linkxu <xushunjie1@huawei-partners.com> 1756089902 +0000
committer xushunjie <xushunjie1@huawei-partners.com> 1756093582 +0000

sdkc

Signed-off-by: Linkxu <xushunjie1@huawei-partners.com>
\gx6tree c1f863a140e721f5e4a9552aa5ba4d44de35eff9
parent c83fce052c201f61e8bb0d8eab9ea649860dd2b9
author huqinglong <huqinglong1@h-partners.com> 1756088609 +0800
committer huqinglong <huqinglong1@h-partners.com> 1756088609 +0800

ndk增加音量增益接口

Signed-off-by: huqinglong <huqinglong1@h-partners.com>
lיxYtree b938c65648f2304795c57c130f24926eb885b4ba
parent d8758a0dabf72937a48e628befef8f79e50935b6
parent d33be6e65fba3c606110c92cbf93ef55a6aab231
author openharmony_ci <120357966@qq.com> 1756024241 +0000
committer Gitee <noreply@gitee.com> 1756024241 +0000

!3710 提交组件事件设置能力新接口
Merge pull request !3710 from 邹林肯/zlk06Ay9xHtree 2caa66205a323d4235dc5e35f36484e7c74043a8
parent d8758a0dabf72937a48e628befef8f79e50935b6
author 刘永凯 <liuyongkai2@huawei-partners.com> 1755948351 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1755948351 +0800

修复拖拽起拖返回值说明

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
~Fx-tree b938c65648f2304795c57c130f24926eb885b4ba
parent d8758a0dabf72937a48e628befef8f79e50935b6
author fangzhiyuan <fangzhiyuan5@huawei.com> 1755781612 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1755930400 +0800

提交common事件接口

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
Lfxtree e876d4ffe76509ec26c4df24c3cb489d23ef56bf
parent 70e56da9eed90575f64f667e723d4955a6abf0f5
author zzz701 <lihaima1@huawei.com> 1755507359 +0800
committer zzz701 <lihaima1@huawei.com> 1755908163 +0800

NDK打包裁剪1.2接口
Signed-off-by: zzz701 <lihaima1@huawei.com>
1-Xxotree 1490612c115097b1e560190e1fb2aa19f92f5a0e
parent e9c027183ec34df643e00bf0dc58f7ec4ff70e92
parent 2823f175436c434224291c2801014d881f8c1800
author openharmony_ci <120357966@qq.com> 1755769985 +0000
committer Gitee <noreply@gitee.com> 1755769985 +0000

!3780 add arkui objectFit enum for imageMatrix
Merge pull request !3780 from xushunjie/arkui_objectFitEnum_uploadQpFxLtree 1490612c115097b1e560190e1fb2aa19f92f5a0e
parent e9c027183ec34df643e00bf0dc58f7ec4ff70e92
author xushunjie <xushunjie1@huawei-partners.com> 1755761272 +0800
committer xushunjie <xushunjie1@huawei-partners.com> 1755763921 +0800

add arkui objectFit enum for imageMatrix

Signed-off-by: xushunjie <xushunjie1@huawei-partners.com>
lĔxTtree 04b0c64d61ae3aef7e67c89a0a79c10ff6c78135
parent e55908928bfdee37f831b625320b2d63208c68ac
parent 6af1b66745b09624f03c08587e63e2eb01f539df
author 查维 <zhawei12@huawei-partners.com> 1755746584 +0800
committer 查维 <zhawei12@huawei-partners.com> 1755746584 +0800

Merge branch 'master' of https://gitee.com/zhawei11/interface_sdk_c_1
mVxdtree 04b0c64d61ae3aef7e67c89a0a79c10ff6c78135
parent d7bd9fd688908cb3c6f42af5c68fa4b8763af1d3
author 查维 <zhawei12@huawei-partners.com> 1755501052 +0800
committer 查维 <zhawei12@huawei-partners.com> 1755743067 +0800

descritpion:UIAbility获取首次启动参数&最近启动参数ndk接口定义

Signed-off-by: 查维 <zhawei12@huawei-partners.com>
Nxdtree 86e7d13d580c4d42b32739d91d970edce6f83e56
parent 88e3167ca52fc27bd52eb70431d23ab2b84b5379
parent 707d4edf6f9712b7ab753aec8252c6298e6ab130
author openharmony_ci <120357966@qq.com> 1755741104 +0000
committer Gitee <noreply@gitee.com> 1755741104 +0000

!3771 [sdk]  low  latency only support video decoder
Merge pull request !3771 from 王子微/dev_sdkc1oNxQtree 41d22b0babc69f72d9332f25361c7a7cab0cf6c3
parent 7f8e990dab95ce3d2350fc2bb99d54b75b02a06b
parent a7ed67c1e3ab60315d3e6c8f1327edfab6712fae
author openharmony_ci <120357966@qq.com> 1755687561 +0000
committer Gitee <noreply@gitee.com> 1755687561 +0000

!3601 修改animate注释信息
Merge pull request !3601 from liuyanzhi2020/liu0708'lћxKtree 41d22b0babc69f72d9332f25361c7a7cab0cf6c3
parent 65d7fb44ca105cdb448cd0252190325c28563904
parent 4a1f4236d1a3f3b38a6d32903d77d8fafd73a78d
author openharmony_ci <120357966@qq.com> 1755683895 +0000
committer Gitee <noreply@gitee.com> 1755683895 +0000

!3776 fix history comments
Merge pull request !3776 from CheerfulRicky/masterdKx&tree 67d6b5c4edb4c2234d1727cd58a5ac46b8d10431
parent b7924a84da1c9fb4bc0d641f2db169955256b2ea
author cheerful_ricky <yuegang7@huawei.com> 1755671533 +0800
committer cheerful_ricky <yuegang7@huawei.com> 1755671544 +0800

fix history comments

Signed-off-by: cheerful_ricky <yuegang7@huawei.com>
|w^XxCtree cab3a6d112b4fe21b171c3b55b6216deb2bb164b
parent b7924a84da1c9fb4bc0d641f2db169955256b2ea
author 王子微 <wangziwei38@h-partners.com> 1755602087 +0800
committer wang-ziweix <wangziwei38@h-partners.com> 1755671254 +0800

[sdk]  VIDEO_LOW_LATENCY只支持解码

Signed-off-by: wang-ziweix <wangziwei38@h-partners.com>
ntxutree 148f313fa82f22f9e4cde9164afd1281e4abf996
parent fe9da8e993abddd50bb3058da9d639e39a5169c5
parent 32816888ff4b30f75b58e36440f1e99b75ae7a94
author openharmony_ci <120357966@qq.com> 1755658788 +0000
committer Gitee <noreply@gitee.com> 1755658788 +0000

!3764 add commit for NODE_XCOMPONENT_TYPE&NODE_XCOMPONENT_SURFACE_SIZE
Merge pull request !3764 from wangjunman1/masterJpxZtree 83b2cf8820f209953e719cb14a3870775d3538fc
parent b7924a84da1c9fb4bc0d641f2db169955256b2ea
parent 2ec04f875636d7ee1161dbff848b929931d13118
author openharmony_ci <120357966@qq.com> 1755606829 +0000
committer Gitee <noreply@gitee.com> 1755606829 +0000

!3767 回退api 21接口
Merge pull request !3767 from wujinhui/revert_frame_node_add_func_1l\xtree 83b2cf8820f209953e719cb14a3870775d3538fc
parent b7924a84da1c9fb4bc0d641f2db169955256b2ea
author wujinhui <wujinhui7@huawei.com> 1755591600 +0800
committer wujinhui <wujinhui7@huawei.com> 1755591600 +0800

回退api 21接口

Signed-off-by: wujinhui <wujinhui7@huawei.com>
&nZxRtree caaa866ad5edb1c6063e71b5d2d1817a39f6c296
parent f92370434e0dc4867cbba3eb77e9e239f0b166d6
parent 5092728ca9ba944d1ac7efb9da2efe58719f7a2a
author openharmony_ci <120357966@qq.com> 1755523821 +0000
committer Gitee <noreply@gitee.com> 1755523821 +0000

!3738 接口错误码描述缺失
Merge pull request !3738 from zhaojinghui/fix_scanq*xRtree acdb2b2480c21649461b30f6dd69764dde883e92
parent f92370434e0dc4867cbba3eb77e9e239f0b166d6
author wangjunman1 <wangjunman1@huawei.com> 1755518441 +0800
committer wangjunman1 <wangjunman1@huawei.com> 1755520422 +0800

add commit for NODE_XCOMPONENT_TYPE&NODE_XCOMPONENT_SURFACE_SIZE

Signed-off-by: wangjunman1 <wangjunman1@huawei.com>
^iԛxktree 7c9dfdd525dff205f7e0106a517ed037ba7b879a
parent d7bd9fd688908cb3c6f42af5c68fa4b8763af1d3
parent 644a82009ca45eeb493544cf31f6fd0ca2e800d7
author openharmony_ci <120357966@qq.com> 1755503481 +0000
committer Gitee <noreply@gitee.com> 1755503481 +0000

!3755 update multimodalinput/kits/c/input/oh_input_manager.h
Merge pull request !3755 from 王豪/update-0815IrŔxdtree fb52a3d6b15a82197d82ae8f2d08bbfb751d446f
parent d7bd9fd688908cb3c6f42af5c68fa4b8763af1d3
author 查维 <zhawei12@huawei-partners.com> 1755501052 +0800
committer 查维 <zhawei12@huawei-partners.com> 1755501052 +0800

descritpion:UIAbility获取首次启动参数&最近启动参数ndk接口定义

Signed-off-by: 查维 <zhawei12@huawei-partners.com>
	xttree d3620ffcc428741654650458b3ae54b560ac085a
parent 69dc2d3fe75f1a9eb778ad588b9d551f6877de83
parent 62a27d0295afae90167df46caaa17ff198ed7af4
author openharmony_ci <120357966@qq.com> 1755500133 +0000
committer Gitee <noreply@gitee.com> 1755500133 +0000

!3759 add ABILITY_RUNTIME_ERROR_CODE_GET_APPLICATION_INFO_FAILED
Merge pull request !3759 from 任国军/aria_dev_08124XqxOtree 0a81b373a07dfcf71e3cbcb0404a92c0a061c29c
parent 84b12e5ee27146aceef36dc3d5fe71866c189fef
author 任国军 <renguojun1@h-partners.com> 1755480511 +0800
committer 任国军 <renguojun1@h-partners.com> 1755480511 +0800

add ABILITY_RUNTIME_ERROR_CODE_GET_APPLICATION_INFO_FAILED

Signed-off-by: 任国军 <renguojun1@h-partners.com>
"rJx`tree 4c031749c2455ead14402ff6852282c24d062560
parent 4077fa31e2b4fefe350f865baf154cdf6365ac4c
parent f6d46e42a7f73300703f995d40fa1ae5a6e94e82
author oh_ci <maguangsheng1@huawei.com> 1755402962 +0000
committer Gitee <noreply@gitee.com> 1755402962 +0000

!3758 Change the python source of llvm
Merge pull request !3758 from liu_jialiang/change_python_srcAlxctree 4c031749c2455ead14402ff6852282c24d062560
parent 4077fa31e2b4fefe350f865baf154cdf6365ac4c
author liujialiang <liujialiang10@huawei.com> 1755357132 +0800
committer liujialiang <liujialiang10@huawei.com> 1755357132 +0800

Change the python source of llvm
description: the python for llvm is different from python for build. Use the new dir 'python_llvm'.

Signed-off-by: liujialiang <liujialiang10@huawei.com>
<9xVtree ca66024aad3f9617f979aab7c99271158d101037
parent 08fe30a2ed944a485e464dd338457613ab73a937
parent 32b616088afdd8df7363c530cab73364e21380dd
author openharmony_ci <120357966@qq.com> 1755342984 +0000
committer Gitee <noreply@gitee.com> 1755342984 +0000

!3751 arkui capi ndk upload
Merge pull request !3751 from xushunjie/arkui_capiNdk_uploadϭgHxdtree 95eb633a9b1f713ca93c199b0ed0bd9946cb8470
parent 21352d138cbbbb96580aec5c251afff73a8bb4d3
parent b7513e268f059eaaded0e2f8cb533ee0833968b9
author openharmony_ci <120357966@qq.com> 1755342774 +0000
committer Gitee <noreply@gitee.com> 1755342774 +0000

!3739 修复XComponentType.NODE相关NDK接口注释
Merge pull request !3739 from sd_wu/fixAttachNodePuՓxCtree 9bca3d57b175e1ebb70729d7cbd2672ce84ba076
parent d92da3ad6938759f61fd2c7814515a56217897db
parent 11f88553cc02425a4616f9d48f61e96cadcee8cf
author openharmony_ci <120357966@qq.com> 1755332864 +0000
committer Gitee <noreply@gitee.com> 1755332864 +0000

!3656 Issue:#ICOJYR
Merge pull request !3656 from SoftSquirrel/master`xFtree ec9139107e8aa9316cccdcd43db5e6a26b5bfd0b
parent 70e56da9eed90575f64f667e723d4955a6abf0f5
parent ce7112f785a17c252cccbc55b128d09e1008dfa9
author openharmony_ci <120357966@qq.com> 1755248121 +0000
committer Gitee <noreply@gitee.com> 1755248121 +0000

!3745 change wifi kit @brief
Merge pull request !3745 from 吴俊/masterdxtree 1f4fd133cefe7c72397e2ddf55f68f18ab522f91
parent 70e56da9eed90575f64f667e723d4955a6abf0f5
author wanghao1717 <wanghao505@huawei.com> 1755245423 +0800
committer wanghao1717 <wanghao505@huawei.com> 1755245423 +0800

fix bug

Signed-off-by: wanghao1717 <wanghao505@huawei.com>
crTxtree 506777ddd605b61ce7ec7d10c12f95135b6e0f0c
parent b11bdf100d9c1d3f7243e67ddac81c9055107ac2
author TeamCorePro <wujun156@huawei.com> 1755244558 +0800
committer TeamCorePro <wujun156@huawei.com> 1755244558 +0800

add

Signed-off-by: TeamCorePro <wujun156@huawei.com>
5Qגxbtree b7a9fc2432c5208bfe7f7e765b097ddc81b7df12
parent 655720b8bf1326d3aac687d4c5614d8997be9f4e
parent 4d2bf6c7fc63e1d71e65c6e743f6c44b14164807
author openharmony_ci <120357966@qq.com> 1755227000 +0000
committer Gitee <noreply@gitee.com> 1755227000 +0000

!3714 新增开放音频卡顿故障事件
Merge pull request !3714 from liujiaxing19/audioFrameJank,oxٔxttree 55349eb473b239322e8947e47ca4666a2d98de2f
parent a1ccf2b800281e2b5c780239f085f784ff602bed
parent 0f034599ac47fa3620f0e163c79ea76f3faad7fe
author openharmony_ci <120357966@qq.com> 1755222651 +0000
committer Gitee <noreply@gitee.com> 1755222651 +0000

!3712 新增方法 OH_ArkUI_NodeUtils_ApplyAttributesFinish
Merge pull request !3712 from wujinhui/add_func_modifyDone`xx;tree b48b0daa9603c0c69f08b3098ea81febb709749c
parent 4db8251bce84c577afe06b67a6c23c648db237e2
parent 419f02cf9ca58b66c54d641ae3d353b5a9fd8860
author openharmony_ci <120357966@qq.com> 1755174313 +0000
committer Gitee <noreply@gitee.com> 1755174313 +0000

!3725 repair comment
Merge pull request !3725 from cat/master(^uxPtree 8ca9ac6f4686704c32055972aaa1b0cf85b8511f
parent e2f2adf018760da251027276d1093aa3e170f556
parent 7eeba4f00abdd20652dd47b3889edbf577707998
author openharmony_ci <120357966@qq.com> 1755172613 +0000
committer Gitee <noreply@gitee.com> 1755172613 +0000

!3748 去除暂未使用的错误码
Merge pull request !3748 from 邹林肯/zlk07qxktree 72b179e803715673f62cc4fd36056fe83d31f290
parent 9daa88d95bda48f995091aa7182b965b1901a589
parent 83578ff40815fe395a276d314427fec2bc6522df
author openharmony_ci <120357966@qq.com> 1755172302 +0000
committer Gitee <noreply@gitee.com> 1755172302 +0000

!3733 inspector c-api 文档描述与实际不一致的修改
Merge pull request !3733 from pengzhiwen/masterV{ڙx9tree 5009b6ecb9c4d4ddff44f472933af55c1d503627
parent dc6b346782fb51644e6895c655844675af221aa3
author xushunjie <xushunjie1@huawei-partners.com> 1755157839 +0800
committer xushunjie <xushunjie1@huawei-partners.com> 1755172192 +0800

arkui capi ndk upload

Signed-off-by: xushunjie <xushunjie1@huawei-partners.com>
e?xctree 13fb6d94f221a9142a6b70d18a6cf9b68434159f
parent 92cd43d6816fba6c7746a16c9f39eb90663db910
parent b0f252bc16ee39dab058be7bc691a6e426923a05
author openharmony_ci <120357966@qq.com> 1755171659 +0000
committer Gitee <noreply@gitee.com> 1755171659 +0000

!3752 Change OH_NativeXComponent_Callback introduction
Merge pull request !3752 from 陈俞池/cc0814{nxKtree 93542070de5262bc18291a67bd8dd7d6c3fd6de3
parent 7722911bbe9679363daf13c1b0f5274d23dcfe96
parent 5ba0566c5d27b8891d0ebb5bf85659c554a8d9b8
author openharmony_ci <120357966@qq.com> 1755171634 +0000
committer Gitee <noreply@gitee.com> 1755171634 +0000

!3753 格式错误修改
Merge pull request !3753 from wangxiuxiu96/formatFix)?jmxBtree 93542070de5262bc18291a67bd8dd7d6c3fd6de3
parent 7722911bbe9679363daf13c1b0f5274d23dcfe96
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1755162129 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1755162632 +0800

格式错误修改

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
oZx9tree bb8a250781908882daba6473f7e8c683238315f9
parent 7722911bbe9679363daf13c1b0f5274d23dcfe96
author 陈俞池 <chenyuchi2@huawei.com> 1755161198 +0800
committer 陈俞池 <chenyuchi2@huawei.com> 1755161198 +0800

Change OH_NativeXComponent_Callback introduction

Signed-off-by: 陈俞池 <chenyuchi2@huawei.com>
lXxptree 2dda6c32fa3321dffe652a2b4854f3d5a2d0bb43
parent dc6b346782fb51644e6895c655844675af221aa3
parent 84b12e5ee27146aceef36dc3d5fe71866c189fef
author openharmony_ci <120357966@qq.com> 1755159533 +0000
committer Gitee <noreply@gitee.com> 1755159533 +0000

!3737 add OH_AbilityRuntime_ApplicationContextGetVersionCode
Merge pull request !3737 from 任国军/aria_dev_0812LuUx3tree 44bb7a78d5ce65ed8a412801aa78149d4277ecc2
parent dc6b346782fb51644e6895c655844675af221aa3
author fangzhiyuan <fangzhiyuan5@huawei.com> 1755139644 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1755154983 +0800

去除暂未使用的错误码

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
Blxwtree d252aedc4f4d51564e5174f1887c92453ff12436
parent dc6b346782fb51644e6895c655844675af221aa3
author yuhaoqiang <yuhaoqiang@huawei.com> 1755143033 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1755143048 +0800

hidebug新增接口OH_HiDebug_GetGraphicsMemorySummary

Change-Id: I418faeaad02eaefecf92c304c5c08c55c0cfd390
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
@|x'tree b269bf2371772beb800103e004d44d7601433343
parent 5cc7b191e181bbfdcf874cc91fc78a23417f5210
author Charles <wangchao685@h-partners.com> 1755141729 +0800
committer Charles <wangchao685@h-partners.com> 1755141729 +0800

interface name change

Signed-off-by: Charles <wangchao685@h-partners.com>
ZșxItree 5df43e89d7e8eb996555b13ec593204f2ed294b0
parent 64984f3870fbcc220bd2f60d63c03a28c1d6f6f2
author pengzhiwen3 <pengzhiwen3@huawei.com> 1754966588 +0800
committer pengzhiwen3 <pengzhiwen3@huawei.com> 1755140558 +0800

inspector c-api 文档描述与实际不一致的修改

Signed-off-by: pengzhiwen3 <pengzhiwen3@huawei.com>
wx'tree bdf502904be19f88169db6ed8f84b5697a5a89fe
parent 9c862844f80212e4ce0729babd7935981f07d7b3
author Charles <wangchao685@h-partners.com> 1755139596 +0800
committer Charles <wangchao685@h-partners.com> 1755139596 +0800

interface name change

Signed-off-by: Charles <wangchao685@h-partners.com>
[x'tree d86cddd84da41c1dd3eb7def6c0240d27600b2f0
parent f260a66b917d180989ea5fee2800ce8bc4ff5b6f
author Charles <wangchao685@h-partners.com> 1755139524 +0800
committer Charles <wangchao685@h-partners.com> 1755139524 +0800

interface name change

Signed-off-by: Charles <wangchao685@h-partners.com>
H\x?tree dd4169e9a4791fc3d1c105c67f7d6bd3c29da5a2
parent 24ba49af68086606797ab8c981fd0643ac1c2950
parent cd908038d6760e7f4ce5155d5985713ef319bfe9
author openharmony_ci <120357966@qq.com> 1755087543 +0000
committer Gitee <noreply@gitee.com> 1755087543 +0000

!3740 差异同步
Merge pull request !3740 from 于好强/master݋fPx tree 20e4cfad56ad1e5d561098086c587c4ff1199342
parent 24ba49af68086606797ab8c981fd0643ac1c2950
author 吴俊 <wujun156@huawei.com> 1755085306 +0800
committer 吴俊 <wujun156@huawei.com> 1755085306 +0800

add

Signed-off-by: 吴俊 <wujun156@huawei.com>
Qxgtree f503b486b4cd2e39288a8ec02651119340447cc5
parent 4439beec0b291d8e1cc2dc8cff1db2c1fd9aa506
parent 3ba96b429e27290fad18cb7336c91e1e1e947378
author openharmony_ci <120357966@qq.com> 1755056517 +0000
committer Gitee <noreply@gitee.com> 1755056517 +0000

!3722 OH_ArkUI_SetForceDarkConfig接口注释更新
Merge pull request !3722 from 陈一阁/color-convertuvxMtree 665c811973ab21f93f956d746674c08bc91160a2
parent f275a1e8731d376353ef1462b8485bcd5b4594b9
author yuhaoqiang <yuhaoqiang@huawei.com> 1755052202 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1755052214 +0800

差异同步

Change-Id: Idedb656f17c9f36c10341c570fb1b35cc3bbac78
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
	kxtree 1ad69bad4ae481d81c5b23ddb8a860e193248d0b
parent 5a6e913cdac47b7103df06f45f22869177fa4ca9
author 陈树山 <css353929243@163.com> 1755045605 +0800
committer 陈树山 <css353929243@163.com> 1755045605 +0800

检视意见修改813-1

Signed-off-by: 陈树山 <css353929243@163.com>
`)xMtree e2acf99f22a271c1e83aa705217414164b1dee4d
parent 938fcc211b4f2b2dc36806fe326fa77081367b10
parent 7b4186fafb384dc7551aad84fa8bfbd1cd85e8b7
author 陈树山 <css353929243@163.com> 1755006570 +0000
committer Gitee <noreply@gitee.com> 1755006570 +0000

!1 update arkui/window_manager/oh_window.h.
Merge pull request !1 from ki_ja/N/Agx"tree e2acf99f22a271c1e83aa705217414164b1dee4d
parent 938fcc211b4f2b2dc36806fe326fa77081367b10
author ki_ja <zhuxiaowen4@huawei.com> 1755006518 +0000
committer Gitee <noreply@gitee.com> 1755006518 +0000

update arkui/window_manager/oh_window.h.

Signed-off-by: ki_ja <zhuxiaowen4@huawei.com>[Ñx1tree 476ee424eae09f1c699f8dd6c53b9d68446e9437
parent 7a44bac8972321ca01645f8e7725829478f36338
author sd-wu <wudongsheng3@huawei.com> 1755000300 +0800
committer sd-wu <wudongsheng3@huawei.com> 1755000300 +0800

修复XComponentType.NODE相关NDK接口注释

Signed-off-by: sd-wu <wudongsheng3@huawei.com>
pg}x`tree f503b486b4cd2e39288a8ec02651119340447cc5
parent 4439beec0b291d8e1cc2dc8cff1db2c1fd9aa506
author eager1 <chenyige2@h-partners.com> 1754998138 +0800
committer eager1 <chenyige2@h-partners.com> 1754998138 +0800

OH_ArkUI_SetForceDarkConfig update

Signed-off-by: eager1 <chenyige2@h-partners.com>
Change-Id: I568fc59fc62e11cfcc38751e72a22abe8e852b7b
\m(x8tree 413140d25fdbeceda2e9e8f4f4acddcca598bd5c
parent f04b4eb91a9dfd91763d2f8b2d3b52842b33d426
author wujinhui <wujinhui7@huawei.com> 1754620400 +0800
committer wujinhui <wujinhui7@huawei.com> 1754992400 +0800

新增方法 OH_ArkUI_NodeUtils_ApplyAttributesFinish

Signed-off-by: wujinhui <wujinhui7@huawei.com>
9jxtree 236756b80f69e2872896661e239403c6fd9293e9
parent fa858d79d8633e9d8e712ef3125977b817c77e38
author 陈树山 <css353929243@163.com> 1754991794 +0800
committer 陈树山 <css353929243@163.com> 1754991794 +0800

检视意见修改812-6

Signed-off-by: 陈树山 <css353929243@163.com>
N^nxKtree 84a83ef847995b30efd71bd000cb423ac6cc57a5
parent 4439beec0b291d8e1cc2dc8cff1db2c1fd9aa506
author 任国军 <renguojun1@h-partners.com> 1754991608 +0800
committer 任国军 <renguojun1@h-partners.com> 1754991608 +0800

add OH_AbilityRuntime_ApplicationContextGetVersionCode

Signed-off-by: 任国军 <renguojun1@h-partners.com>
9vQxtree 6af1b86c94a1860b306ddf8286e2b3518af8e540
parent 07ab3458dc8cc8fb7f10b6e95c3b6976f4013828
author 陈树山 <css353929243@163.com> 1754989837 +0800
committer 陈树山 <css353929243@163.com> 1754989837 +0800

检视意见修改812-5

Signed-off-by: 陈树山 <css353929243@163.com>
_xtree cd42d6ccfa5e7148e70fb8cc07607a659ac3c100
parent d68a9d764da1cf11fdb4b838ff0407bebfc72d9b
author 陈树山 <css353929243@163.com> 1754987411 +0800
committer 陈树山 <css353929243@163.com> 1754987411 +0800

检视意见修改812-4

Signed-off-by: 陈树山 <css353929243@163.com>
a/xtree 52bec675775a06b2110b4258350172c0ff99be19
parent 62151866328ca254d9260a7bd10c6b98a7dadfb6
author 陈树山 <css353929243@163.com> 1754987265 +0800
committer 陈树山 <css353929243@163.com> 1754987265 +0800

检视意见修改812-3

Signed-off-by: 陈树山 <css353929243@163.com>
^xtree 975b77b694e2f20f7b96932d0341b2a34565842a
parent ad1dbce6f539e38f4343f6712247ee72302289a8
author 陈树山 <css353929243@163.com> 1754986223 +0800
committer 陈树山 <css353929243@163.com> 1754986223 +0800

检视意见修改812-2

Signed-off-by: 陈树山 <css353929243@163.com>
^xtree 278771e8d98d480c523573e047ff491f1c4343a3
parent 2792f060a94763d8aabeb2e252599e064e67f0e1
author 陈树山 <css353929243@163.com> 1754984140 +0800
committer 陈树山 <css353929243@163.com> 1754984140 +0800

检视意见修改812-1

Signed-off-by: 陈树山 <css353929243@163.com>
^xztree 59989f80a04396e4822b22f0c47ea5cb88931bb3
parent 19e409c7909467c677ba1a2388ee1cc2e6ae882b
parent ef7e0951a5e93de48be95136f985c712a8726f20
author openharmony_ci <120357966@qq.com> 1754983305 +0000
committer Gitee <noreply@gitee.com> 1754983305 +0000

!3727 修改SetRectShapeOptionEdgeValue和SetRoundRectShapeOptionEdgeValue接口
Merge pull request !3727 from 王洋/master|rxktree ca15d1d42a6eb2a522133052f8141fad21f3ee6d
parent 64984f3870fbcc220bd2f60d63c03a28c1d6f6f2
parent e77f36f05ea63fc995e41f0b5a3fa83c3b613d41
author openharmony_ci <120357966@qq.com> 1754980500 +0000
committer Gitee <noreply@gitee.com> 1754980500 +0000

!3732 fix multimodalinput/kits/c/input/oh_input_manager.h diff
Merge pull request !3732 from 王豪/0812001-m1px'tree 99b74cb6a32b7b7431a0bd30a27623db199f1be6
parent 64984f3870fbcc220bd2f60d63c03a28c1d6f6f2
author 陈树山 <css353929243@163.com> 1754968459 +0800
committer 陈树山 <css353929243@163.com> 1754968459 +0800

提供获取窗口信息的接口

Signed-off-by: 陈树山 <css353929243@163.com>
ixtree ca15d1d42a6eb2a522133052f8141fad21f3ee6d
parent 64984f3870fbcc220bd2f60d63c03a28c1d6f6f2
author wanghao1717 <wanghao505@huawei.com> 1754965039 +0800
committer wanghao1717 <wanghao505@huawei.com> 1754965039 +0800

diff

Signed-off-by: wanghao1717 <wanghao505@huawei.com>
Rxtree 97d5a85e5931de19fb96ef6347c810474232aaa6
parent 71c45d52bc34df007514c5d3d14b904275fa2e51
author cat <chenjinxiang3@huawei.com> 1754897590 +0800
committer cat <chenjinxiang3@huawei.com> 1754960923 +0800

repair comment

Signed-off-by: cat <chenjinxiang3@huawei.com>
SYxwtree 3e1872d854b9b27410f98bc5d334ac4787c60916
parent f04b4eb91a9dfd91763d2f8b2d3b52842b33d426
author liujiaxing2024 <liujiaxing19@huawei.com> 1754622833 +0800
committer liujiaxing2024 <liujiaxing19@huawei.com> 1754914310 +0800

新增开放音频卡顿故障事件

Signed-off-by: liujiaxing2024 <liujiaxing19@huawei.com>
Change-Id: Ib88187529ac0eafe85042b49025aba3da54758d3
&xGtree aa76143c04f197256fe41733372ed0292d455781
parent 7a44bac8972321ca01645f8e7725829478f36338
parent 64376e6e77c59c091b37bc003706c9ef6612a06f
author openharmony_ci <120357966@qq.com> 1754912934 +0000
committer Gitee <noreply@gitee.com> 1754912934 +0000

!3729 fix xcomponent ndk
Merge pull request !3729 from sunbees/xc_ndk_fixo`1xtree aa76143c04f197256fe41733372ed0292d455781
parent 7a44bac8972321ca01645f8e7725829478f36338
author sunbees <sunqinjia@huawei.com> 1754906063 +0800
committer sunbees <sunqinjia@huawei.com> 1754906286 +0800

fix xcomponent ndk

Signed-off-by: sunbees <sunqinjia@huawei.com>
Txltree b2d0276ab3bfe4814f7abeb504fa70417ffc44f2
parent 7a44bac8972321ca01645f8e7725829478f36338
author wangyang2022 <wangyang412@huawei.com> 1754899942 +0000
committer wangyang2022 <wangyang412@huawei.com> 1754900869 +0000

修改SetRectShapeOptionEdgeValue和SetRoundRectShapeOptionEdgeValue接口
Signed-off-by: wangyang2022 <wangyang412@huawei.com>
Change-Id: I9e11ca1b81ac684b594de27f82e1b2745a271a86
p{x?tree cbc66cf0e108c067f9f7b587f917ee9b39649d7c
parent 79b486e800e0081bcd27da6e36d90621dd30311a
parent 89f3c41586ea71c50ba740fc24deae1dfaa4f3db
author openharmony_ci <120357966@qq.com> 1754734364 +0000
committer Gitee <noreply@gitee.com> 1754734364 +0000

!3719 注释描述修改
Merge pull request !3719 from ljh/master)flxtree 3f4dab70b0058ba058c7d084cc2bcb8d8714e87d
parent 7cd0d28501453d8c8f4a59cde9c93efaebc3a90a
author ljh <liujianhong6@huawei.com> 1754730636 +0800
committer ljh <liujianhong6@huawei.com> 1754730636 +0800

注释描述修改

Signed-off-by: ljh <liujianhong6@huawei.com>
[x0tree bb3bc7980e1f6dc9c19ed5643904ac454203eea4
parent a7125a149403971c95ce927b402835b731ae662b
author Charles <wangchao685@h-partners.com> 1754727935 +0800
committer Charles <wangchao685@h-partners.com> 1754727935 +0800

添加智能降噪查询接口

Signed-off-by: Charles <wangchao685@h-partners.com>
!@hxYtree 03f757cea253f175b80c4575c2d5bba25f7efd90
parent 3c723a8cc91e61581582fe9bf4df9b71fd002a53
parent 64f419c44caa989254a29e841294fe5429627a4e
author openharmony_ci <120357966@qq.com> 1754727770 +0000
committer Gitee <noreply@gitee.com> 1754727770 +0000

!3717 add OH_AI_ModelLoadConfig
Merge pull request !3717 from huiliang166/oh_ai_modelconfighxUtree 2f829fe6257391398e45abbe8ef8b9e69c842f84
parent c83fce052c201f61e8bb0d8eab9ea649860dd2b9
parent d047aba77810fa06b3562154f644ebe9664904f7
author openharmony_ci <120357966@qq.com> 1754726111 +0000
committer Gitee <noreply@gitee.com> 1754726111 +0000

!3716 方法格式错误修改
Merge pull request !3716 from wujinhui/bug_fix_func_sync7pۘx(tree 058ac92f31418b73a85d8a47c638b4853ca9d32b
parent c777d1842720a673878837b706136105888327a0
author huiliang166 <lianghui43@huawei.com> 1754647266 +0800
committer huiliang166 <lianghui43@huawei.com> 1754722380 +0800

add OH_AI_ModelLoadConfig

Signed-off-by: huiliang166 <lianghui43@huawei.com>
Yx0tree 60ff48450aabf7085fc77780b14022cbb8b1d261
parent 3e0d52fe2b01d560c06df91dd2087c066b88bdea
author Charles <wangchao685@h-partners.com> 1754721841 +0800
committer Charles <wangchao685@h-partners.com> 1754721841 +0800

添加智能降噪查询接口

Signed-off-by: Charles <wangchao685@h-partners.com>
Ţix0tree f0d10147b757fd253dfcc36c51dededee23c9594
parent 7ac3b0529963d7231682fdb93a2242b8c6347b4b
author Charles <wangchao685@h-partners.com> 1754721623 +0800
committer Charles <wangchao685@h-partners.com> 1754721623 +0800

添加智能降噪查询接口

Signed-off-by: Charles <wangchao685@h-partners.com>
,ifx0tree acc6d3e83e67bab0c355c23207775ad3eebe930e
parent 272c8d7b3d35f6f9e4b56f449bc7b4d31374b0e3
author Charles <wangchao685@h-partners.com> 1754721563 +0800
committer Charles <wangchao685@h-partners.com> 1754721563 +0800

添加智能降噪查询接口

Signed-off-by: Charles <wangchao685@h-partners.com>
cix0tree 95f38ac634d5cffc30fa9efae12c3f7b60be72f5
parent c83fce052c201f61e8bb0d8eab9ea649860dd2b9
author Charles <wangchao685@h-partners.com> 1754720575 +0800
committer Charles <wangchao685@h-partners.com> 1754720575 +0800

添加智能降噪查询接口

Signed-off-by: Charles <wangchao685@h-partners.com>
Ojx?tree a806aa4095584c543998b2ecd83499f02d45397e
parent 43c447e7e2340b7ca30c940e78b85b1388dd3f92
parent 7cd0d28501453d8c8f4a59cde9c93efaebc3a90a
author openharmony_ci <120357966@qq.com> 1754653435 +0000
committer Gitee <noreply@gitee.com> 1754653435 +0000

!3701 注释描述修改
Merge pull request !3701 from ljh/mastereSxAtree 008054cea76d4a80181ff346fab925efe3b98af9
parent 082c554f6647c2f23bef646c2b865f9063ba0f07
parent 90493a31bf0d021d14899cad0274ea3a4859f918
author openharmony_ci <120357966@qq.com> 1754652503 +0000
committer Gitee <noreply@gitee.com> 1754652503 +0000

!3709 delete @syscap
Merge pull request !3709 from 庞宇成/masteroPbExBtree 778f3506fda06ab8f8cc28a974c084c1e0e62022
parent c777d1842720a673878837b706136105888327a0
parent b9c3d585d805e3ea3a205b761a484d820dd9abf4
author openharmony_ci <120357966@qq.com> 1754647700 +0000
committer Gitee <noreply@gitee.com> 1754647700 +0000

!3711 add since tag
Merge pull request !3711 from lixinsheng2/masterd-^xtree 7ba570495199d37e1d6680e342e5648ee1a3968e
parent c777d1842720a673878837b706136105888327a0
author wujinhui <wujinhui7@huawei.com> 1754645942 +0800
committer wujinhui <wujinhui7@huawei.com> 1754646568 +0800

方法格式错误修改

Signed-off-by: wujinhui <wujinhui7@huawei.com>
	_xstree bcc486f22e625d9bd0b74acd5318b21f89d813c8
parent b65e3088e801597d7905b27fbf17fe1a6bc42c38
parent 7f7dbbb2ea5d3fe72099518bd5e973436200945f
author openharmony_ci <120357966@qq.com> 1754635426 +0000
committer Gitee <noreply@gitee.com> 1754635426 +0000

!3713 文件缺少@kit标签及@file标签 文件名不匹配修改
Merge pull request !3713 from Lixiaoying25/master<xXtree c63be301767b5b114d974fc36a5f620788deccbd
parent f04b4eb91a9dfd91763d2f8b2d3b52842b33d426
parent 0892c3afd987505238f4a1734e60acc310c16189
author openharmony_ci <120357966@qq.com> 1754627198 +0000
committer Gitee <noreply@gitee.com> 1754627198 +0000

!3704 add warnings for using exit in callbacks
Merge pull request !3704 from 董洁/masterixjtree 2f792fe49b42e5f67e4e796ed159dce5d92cc183
parent f04b4eb91a9dfd91763d2f8b2d3b52842b33d426
author Lixiaoying25 <lixiaoying25@h-partners.com> 1754621619 +0000
committer Gitee <noreply@gitee.com> 1754621619 +0000

update IPCKit/ipc_kit.h.
头文件缺少@kit标签及@file标签文件名不匹配修改

Signed-off-by: Lixiaoying25 <lixiaoying25@h-partners.com>MxOtree 8298928d819260ae4f6b4c8752d6c0d5cd45d123
parent 1fcbc9c171eee6e38049b52a2ac2a5702e4fd358
parent c0736da82711a76871ab16f9b7e745c80112c04f
author openharmony_ci <120357966@qq.com> 1754619634 +0000
committer Gitee <noreply@gitee.com> 1754619634 +0000

!3703 修改curve一致性问题
Merge pull request !3703 from chenxiaoxue/mastersljxtree 02c0be151505cc84cbbf3202be3b12fb9b962bd3
parent 1fcbc9c171eee6e38049b52a2ac2a5702e4fd358
author lixinsheng2 <lixinsheng2@huawei.com> 1754578640 +0800
committer lixinsheng2 <lixinsheng2@huawei.com> 1754578640 +0800

add since tag

Signed-off-by: lixinsheng2 <lixinsheng2@huawei.com>
[*xItree e7b8d9a691a51d6e2d1a4cc3b06c1480f0253c0b
parent 0ccba242ea6247e56a87617a437a2ce4b9bf46ca
parent 69aeada15b9a1329ff86e9889275c5eb88a2ad56
author openharmony_ci <120357966@qq.com> 1754575424 +0000
committer Gitee <noreply@gitee.com> 1754575424 +0000

!3707 gesture capi sdk bugfix
Merge pull request !3707 from zhouchaobo/0807Lc8xBtree fd94b617a980ffb0dd139e5e908d55293ebf19f6
parent 5cc7700e8fe5ad993b01b79438111ea4fdb1e72c
parent 39931192dc50b78ed0b36b06588fd83028dc8e4c
author openharmony_ci <120357966@qq.com> 1754570927 +0000
committer Gitee <noreply@gitee.com> 1754570927 +0000

!3708 add moov front
Merge pull request !3708 from wanganzhou/masteraxtree 0327bf0a27e9f38150aefcdb1f438017d476ae45
parent e2856564e48c72525a1fd844dcef573a638dd2ae
author 庞宇成 <pangyucheng@huawei.com> 1754568833 +0800
committer 庞宇成 <pangyucheng@huawei.com> 1754568833 +0800

delete @syscap

Signed-off-by: 庞宇成 <pangyucheng@huawei.com>
9ax)tree fd94b617a980ffb0dd139e5e908d55293ebf19f6
parent 5cc7700e8fe5ad993b01b79438111ea4fdb1e72c
author wanganzhou <wanganzhou1@h-partners.com> 1754567440 +0000
committer wanganzhou <wanganzhou1@h-partners.com> 1754567850 +0000

add moov front

Signed-off-by: wanganzhou <wanganzhou1@h-partners.com>
"_x&tree fbe44065caa382d6f5ebc012cf6d411eb068eb66
parent b945245aaf4876509b13e345468930828e274446
author zhou-chaobo <zhouchaobo@huawei.com> 1754565505 +0800
committer zhou-chaobo <zhouchaobo@huawei.com> 1754565505 +0800

gesture capi sdk bugfix

Signed-off-by: zhou-chaobo <zhouchaobo@huawei.com>
$\xGtree 987e8f00a8fdb768f1864995fc9cda77f14a9359
parent b945245aaf4876509b13e345468930828e274446
parent a31c65d41bc720aeca48aad03d6f305e16f0d79c
author openharmony_ci <120357966@qq.com> 1754557819 +0000
committer Gitee <noreply@gitee.com> 1754557819 +0000

!3705 蓝黄同步代码
Merge pull request !3705 from ganchuantao/mastergxtree 987e8f00a8fdb768f1864995fc9cda77f14a9359
parent b945245aaf4876509b13e345468930828e274446
author ganchuantao <ganchuantao1@huawei.com> 1754551542 +0000
committer Gitee <noreply@gitee.com> 1754551542 +0000

蓝黄同步代码

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>)]x:tree 64d6a73e9e2555e317c9a3159b7595f5854ae9bc
parent b945245aaf4876509b13e345468930828e274446
author dong--jie <dongjie52@h-partners.com> 1754535544 +0800
committer dong--jie <dongjie52@h-partners.com> 1754535544 +0800

add warnings for using exit in callbacks

Signed-off-by: dong--jie <dongjie52@h-partners.com>
v`xGtree 1672ac487e6962bdaa8dd928e230e70786f5512d
parent b7eacc150c65cf01d382dbd9efbe057d43d6cd7f
parent 44793f157eb73f7ba63a00f68c1e18269f19fcf0
author openharmony_ci <120357966@qq.com> 1754534472 +0000
committer Gitee <noreply@gitee.com> 1754534472 +0000

!3702 删除多余空行
Merge pull request !3702 from ganchuantao/master1iWxRtree 8dafa3eeeb3c6bb15f6d03c293c851190df16dff
parent 0567de5e380845d96bf85b66e27239b4df745225
parent f3d2a223f0f6e87ce8d74e8a259e67c209ba6a82
author openharmony_ci <120357966@qq.com> 1754486610 +0000
committer Gitee <noreply@gitee.com> 1754486610 +0000

!3698 AddANIHeaderFileToMaster
Merge pull request !3698 from Leechy/sync0603ToMaster)f2x;tree 362b61b967f6088d55efe269dcbb24bc6160356d
parent 053d9f4bc67b84a51c2025dd40f4ee6ff1d4b9a6
parent fbd62ecf2a672a6d5391771470b4a48eacfdbae0
author openharmony_ci <120357966@qq.com> 1754483923 +0000
committer Gitee <noreply@gitee.com> 1754483923 +0000

!3696 fix c api doc
Merge pull request !3696 from AOL/syncapi>^x'tree 49c34a0c91848c5b497f350ee61f2b1c9d5abf15
parent 053d9f4bc67b84a51c2025dd40f4ee6ff1d4b9a6
author chen-xiaoxue299 <chenxiaoxue11@huawei.com> 1754482321 +0800
committer chen-xiaoxue299 <chenxiaoxue11@huawei.com> 1754482321 +0800

add

Signed-off-by: chen-xiaoxue299 <chenxiaoxue11@huawei.com>
$#\0xtree 149692b40f93a3a553ed8e46d853e6e1828aafef
parent 053d9f4bc67b84a51c2025dd40f4ee6ff1d4b9a6
author ganchuantao <ganchuantao1@huawei.com> 1754481691 +0000
committer Gitee <noreply@gitee.com> 1754481691 +0000

删除多余空行

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>Rn_x{tree c5f12728fcdce1769fe2073f6457508c59454c42
parent 9a8ded7ef9222f64b096c870f28e27a5b1c54649
parent efc3f20e6cb2b34ef1453d6051373e5ad44f040d
author openharmony_ci <120357966@qq.com> 1754466031 +0000
committer Gitee <noreply@gitee.com> 1754466031 +0000

!3693 update multimedia/player_framework/lowpower_avsink/liblowpower_avsink.ndk.json.
Merge pull request !3693 from huangtianyu/masterֽ{xHtree bfe2b771851552364fbf20d8a6753f02b72ccbfa
parent f275a1e8731d376353ef1462b8485bcd5b4594b9
parent 24eaff79b50ca97cf2792d0128fc3f2ac67242d2
author openharmony_ci <120357966@qq.com> 1754465927 +0000
committer Gitee <noreply@gitee.com> 1754465927 +0000

!3697 native buffer config
Merge pull request !3697 from 李辉/config0805|cxCtree 2d500a4bcbfa4b2cf2966606dd29fe46829511fd
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
author 李辉 <lihui359@huawei.com> 1754396396 +0000
committer 李辉 <lihui359@huawei.com> 1754396396 +0000

native buffer config

Signed-off-by: 李辉 <lihui359@huawei.com>
Change-Id: I7eac8f325e422bd9afefea0d729580e415c234d0
rKgِx`tree 8a5394285362645acaa29a3a3ff4eb89125f5378
parent f628d2f1985681005d413164941b1e4f1f709025
parent 3cfa05abb3ad057b3f663f97f87fe5458bee94d8
author openharmony_ci <120357966@qq.com> 1754393344 +0000
committer Gitee <noreply@gitee.com> 1754393344 +0000

!3695 huks interface_c 设计实现保持一致
Merge pull request !3695 from 杨俊峰/0804master)uLxKtree 6c21767774312d4afe18432413506f7cf8a51b01
parent 31fbc8d6c05f010f5c0a5860fe31ada646587e53
parent e94f3f3d5531e86b87536d7d028560817a1da31c
author openharmony_ci <120357966@qq.com> 1754376822 +0000
committer Gitee <noreply@gitee.com> 1754376822 +0000

!3683 压力管控回调修改
Merge pull request !3683 from plutowang/master	jxBtree 7c233973f7a1f121fc7c977aa93c09bc8886d955
parent d11319117a3d369319b55d0d8b569d5203451530
author magekkkk <lixin113@huawei.com> 1754365368 +0000
committer magekkkk <lixin113@huawei.com> 1754365368 +0000

fix c api doc

Signed-off-by: magekkkk <lixin113@huawei.com>
Change-Id: Id9abd2cce39b986770ddf0b2b0c98bfb4c8b2830
Q'_x8tree 4d1f16eeda1ac7e77a1bb8390e4e426a067d5429
parent d11319117a3d369319b55d0d8b569d5203451530
parent 71c45d52bc34df007514c5d3d14b904275fa2e51
author openharmony_ci <120357966@qq.com> 1754365279 +0000
committer Gitee <noreply@gitee.com> 1754365279 +0000

!3692 add comment
Merge pull request !3692 from cat/master8[&xStree d86225d8949075e309fdc61fa35b98ac489e5aa8
parent 63487e0d91dfeff766cbd9a8d78ce9d8ef0d95cc
parent 0dec97006fda5ce3ea3e830b2d82a6b8544023b4
author openharmony_ci <120357966@qq.com> 1754364645 +0000
committer Gitee <noreply@gitee.com> 1754364645 +0000

!3666 修改GetOutputDescription注释说明
Merge pull request !3666 from zzm/masterMox/tree 346e7e2f96752d0d2416a53cbec92f82cc79fe28
parent c2d974b7b9eb218fb91b83530c5ff3cafdc55f40
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1754362453 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1754362453 +0800

review01

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
&m^xJtree 16b71c4e18fb7c41c898fa7e229d3d27ce5d0c9d
parent df75f993d29dfe2289452d5da71d66f9cb0ceb9c
parent 90519eb180a3cccee3ae79a8fff8afb5dd8cb543
author openharmony_ci <120357966@qq.com> 1754311310 +0000
committer Gitee <noreply@gitee.com> 1754311310 +0000

!3659 修改ndk的lib名称
Merge pull request !3659 from jiangminsen/masterk?xtree 9d1d59ed67e1d7607b5a723cd7d3619f3010d3a6
parent 99c9bb1c17127d09361c8fb45d84b4ac902cf48a
author cat <chenjinxiang3@huawei.com> 1754300603 +0800
committer cat <chenjinxiang3@huawei.com> 1754309969 +0800

add comment

Signed-off-by: cat <chenjinxiang3@huawei.com>
cRxPtree 7b89633fc137a261cd50ffdea12760e6e5010184
parent df75f993d29dfe2289452d5da71d66f9cb0ceb9c
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1754307873 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1754307873 +0800

huks interface_c 设计实现保持一致

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
~s%xYtree f4fe74fd7c385229a213a0e50439b6c141005f45
parent df75f993d29dfe2289452d5da71d66f9cb0ceb9c
author huangtianyu <huangtianyu15@huawei.com> 1754305100 +0000
committer Gitee <noreply@gitee.com> 1754305100 +0000

update multimedia/player_framework/lowpower_avsink/liblowpower_avsink.ndk.json.

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>mrΟxtree 670041f8a5fbe6376f6a6caac0574ee9c88a5892
parent df75f993d29dfe2289452d5da71d66f9cb0ceb9c
author ljh <liujianhong6@huawei.com> 1754292025 +0800
committer ljh <liujianhong6@huawei.com> 1754292025 +0800

注释描述修改

Signed-off-by: ljh <liujianhong6@huawei.com>
`[Dx\tree e7b14c9fee58b7c5e0e0db43b50b90853ec5a633
parent 4a0288f9dea93f5e2ffef18102aa37f313aab644
parent b1b8bc1681301de8bb472fc7df189ccb39d57335
author openharmony_ci <120357966@qq.com> 1754130928 +0000
committer Gitee <noreply@gitee.com> 1754130928 +0000

!3689 补充接口入参&amp;&amp;返回值修改
Merge pull request !3689 from Hone/h_0802_01|txQtree b62f1896528680d984f50b6dda44c5197fa8a90a
parent d0234a0b4682fa68e448fad3c683669f57212e27
parent 1bd26477c19d0cd5467f3367f39bcb2132c51544
author openharmony_ci <120357966@qq.com> 1754129245 +0000
committer Gitee <noreply@gitee.com> 1754129245 +0000

!3687 补充brief描述和返回值
Merge pull request !3687 from baitianyou/masterpmx)tree 3da11ab057f20c8ed6e631e50b31d767f82d8cdd
parent 6b05d5a405701ca7d55f3a1b164b2d34737be0cb
author baitianyou <baitianyou@h-partners.com> 1754124550 +0800
committer baitianyou <baitianyou@h-partners.com> 1754124550 +0800

添加brief描述

Signed-off-by: baitianyou <baitianyou@h-partners.com>
dx=tree 2944660a23a23b999e766994d6fc5533e1a2a687
parent d0234a0b4682fa68e448fad3c683669f57212e27
author wangzhihao <wangzhihao42@huawei.com> 1754123313 +0800
committer wangzhihao <wangzhihao42@huawei.com> 1754123313 +0800

补充接口入参&amp;&amp;返回值修改

Signed-off-by: wangzhihao <wangzhihao42@huawei.com>
u!nxEtree e3770e604af8bdeaa37f82a18bd596d88b94ed69
parent ddcd889a6b9de62b0be490df98e65d59a51d4f74
parent 6ccd8d8e65f33f540ee712caf442bffaa6d6724c
author openharmony_ci <120357966@qq.com> 1754049056 +0000
committer Gitee <noreply@gitee.com> 1754049056 +0000

!3630 add fill mode interface
Merge pull request !3630 from yxc3/masterDc,xNtree cb1c5054209f8cd4dca2a9e01952c56eb0c015ec
parent 557c24f164368d23078e5afd3f31464240393d59
parent 620a6a2498f3f10c89c5a4999ccd2a779a60039f
author openharmony_ci <120357966@qq.com> 1754048774 +0000
committer Gitee <noreply@gitee.com> 1754048774 +0000

!3682 废弃NODE_UNIQUE_ID
Merge pull request !3682 from 胡清云/uniqueId_0731wgxDtree 77e40fcd388e90e3f2d15b95d9211a700ba7f6cc
parent b5541a4a68c0cf7a77d585c935fa43d8a53be2fe
parent e991be38e54ab6993d1c7f4438905d7a235c8a87
author openharmony_ci <120357966@qq.com> 1754042912 +0000
committer Gitee <noreply@gitee.com> 1754042912 +0000

!3662 提交render接口
Merge pull request !3662 from 邹林肯/zlk05oh x@tree e301381157f1292d379b6237acf880040041a702
parent 020e3ef748053890445a81ea695a15f803f54dda
parent 580ec799affeda1229848714dfa0764f631bb4a5
author openharmony_ci <120357966@qq.com> 1754037920 +0000
committer Gitee <noreply@gitee.com> 1754037920 +0000

!3654 add bt2020 hlg define
Merge pull request !3654 from lhang/lh)\nx5tree f8b2bd262e69dd20d72722e732ad738a8d611c7d
parent 020e3ef748053890445a81ea695a15f803f54dda
author baitianyou <baitianyou@h-partners.com> 1754034358 +0800
committer baitianyou <baitianyou@h-partners.com> 1754034358 +0800

补充brief描述和返回值

Signed-off-by: baitianyou <baitianyou@h-partners.com>
k}xtree ec8e914ab3078d551fdf5f68e3a1d32e69a84a04
parent dccc799bfd61ebabd4bed7089ad50cf01111d82a
author yxc3 <yexiaochen@h-partners.com> 1754029249 +0800
committer yxc3 <yexiaochen@h-partners.com> 1754029249 +0800

add fill mode interface

Signed-off-by: yxc3 <yexiaochen@h-partners.com>
ZxAtree 4940312430a212ec9f4ec6aa9096e3890df2ccd6
parent 92b44d4f9729ca68164efa6c0651719189f3caa2
parent 956941a9a08e1fa7439df726f67877477ef67387
author openharmony_ci <120357966@qq.com> 1753963639 +0000
committer Gitee <noreply@gitee.com> 1753963639 +0000

!3672 LoudnessGain
Merge pull request !3672 from huangtianyu/master_xLtree 4f9d33fa9ec79a5ce67f4bfbead2cc67b834450b
parent a418f538422e193ec0e6014de6d04e2ad7c05d91
parent b8b0e2717d67cabda191e6e2ef8b262ccbb78ae1
author openharmony_ci <120357966@qq.com> 1753962974 +0000
committer Gitee <noreply@gitee.com> 1753962974 +0000

!3684 超级微距监听接口开放
Merge pull request !3684 from wang/masterJ$pkxHtree 4910df05efd50163c0c87c0cbdbee9a340a02069
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
author wangdongyusky <wanghuanqing2@h-partners.com> 1753929206 +0800
committer wangdongyusky <wanghuanqing2@h-partners.com> 1753955502 +0800

超级微距监听接口开放

Signed-off-by: wangdongyusky <wanghuanqing2@h-partners.com>
pvxLtree 93490478c81fdce6aaca0b141fc4f06199f78c15
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
parent 65c695f14f232c864c6eaa20b61871a23951d090
author openharmony_ci <120357966@qq.com> 1753950681 +0000
committer Gitee <noreply@gitee.com> 1753950681 +0000

!3681 删除C接口中的系统标签
Merge pull request !3681 from jxw/masterrnn[x-tree 188e555449ce5c1bb309f769ba4536d46e8d4284
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
author banana_pluto <wangruikang@huawei.com> 1753950467 +0800
committer banana_pluto <wangruikang@huawei.com> 1753950467 +0800

压力管控回调修改

Signed-off-by: banana_pluto <wangruikang@huawei.com>
L@i>xtree 369e22b795cb29fd033fd0effc4d80ec28d84e11
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
author 胡清云 <huqingyun1@huawei.com> 1753947406 +0800
committer 胡清云 <huqingyun1@huawei.com> 1753947406 +0800

废弃NODE_UNIQUE_ID

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
kd_xtree 93490478c81fdce6aaca0b141fc4f06199f78c15
parent d5cd607bc544fc908b63fe5f45ee3d422bacb067
author jxw <jiexiwen@huawei.com> 1753944767 +0000
committer Gitee <noreply@gitee.com> 1753944767 +0000

删除C接口中的系统标签

Signed-off-by: jxw <jiexiwen@huawei.com>,#_ƓxCtree 4ed9a625df395d0906687dc11bfe9472c11afe54
parent bbdc84016953c22550bdee337e350990f4a2d68d
author huangtianyu <huangtianyu15@huawei.com> 1753927166 +0000
committer Gitee <noreply@gitee.com> 1753927166 +0000

update multimedia/player_framework/lowpower_audio_sink.h.

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>iʗx'tree f64925b95a6afe4642d688ae149fb3912bdcb7cc
parent dccc799bfd61ebabd4bed7089ad50cf01111d82a
author fangzhiyuan <fangzhiyuan5@huawei.com> 1753526907 +0800
committer fangzhiyuan <fangzhiyuan5@huawei.com> 1753878204 +0800

提交render接口

Signed-off-by: fangzhiyuan <fangzhiyuan5@huawei.com>
JdFxHtree 374b9f0ff90420b966bb462cbae2ad2e51a67ef7
parent 984204549863e159207b6027cae85d9853168008
parent b155cd640da2d182d6497dba2855287a6973c883
author openharmony_ci <120357966@qq.com> 1753861115 +0000
committer Gitee <noreply@gitee.com> 1753861115 +0000

!3674 移除错误注释
Merge pull request !3674 from wjn/capi_error_annongxx`tree 89a151724c32a6477ecc69d694c3e3b8ed41e92d
parent b71f51e428f18fc51b441078eba5e020d6007c5a
parent 0c35f86eba5ce5bdc2a4417ac34e1d895c7d61ba
author openharmony_ci <120357966@qq.com> 1753849325 +0000
committer Gitee <noreply@gitee.com> 1753849325 +0000

!3668 json文件中补充接口OH_JSVM_SetDebugOption
Merge pull request !3668 from Sizheng/mastersLx!tree 005091fb238912d8b45e3cd774eb3d9561fe4aa5
parent b71f51e428f18fc51b441078eba5e020d6007c5a
author wjnRance <wanjining@h-partners.com> 1753842754 +0800
committer wjnRance <wanjining@h-partners.com> 1753842754 +0800

移除错误注释

Signed-off-by: wjnRance <wanjining@h-partners.com>
F|afxtree c97a6d43b72880134be9ef379ff9a24c4ac558db
parent b71f51e428f18fc51b441078eba5e020d6007c5a
author huangtianyu <huangtianyu15@huawei.com> 1753787579 +0000
committer Gitee <noreply@gitee.com> 1753787579 +0000

LoudnessGain

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>^JX(xetree f742808c7857488ed96658a2f009fd5401054227
parent b71f51e428f18fc51b441078eba5e020d6007c5a
author LeechyLiang <liangweihong1@huawei.com> 1753779109 +0800
committer LeechyLiang <liangweihong1@huawei.com> 1753779109 +0800

AddANIHeaderFileToMaster

Signed-off-by: LeechyLiang <liangweihong1@huawei.com>
Change-Id: I5a73067a7c161700baccf407fe8201f3ffc4579c
dm̗xGtree 89a151724c32a6477ecc69d694c3e3b8ed41e92d
parent b71f51e428f18fc51b441078eba5e020d6007c5a
author zhangsizheng <zhangsizheng@huawei.com> 1753706864 +0800
committer zhangsizheng <zhangsizheng@huawei.com> 1753706864 +0800

json文件中补充接口OH_JSVM_SetDebugOption

Signed-off-by: zhangsizheng <zhangsizheng@huawei.com>
	r"x[tree 24141cd134871794fed35885f4a477c0d201dd6d
parent 2592524033dee458e03b3f97d7898a249d359fa4
parent 84e1d8f42a7e40a9cbd3bf6f5b00eb441a5fa32c
author openharmony_ci <120357966@qq.com> 1753702866 +0000
committer Gitee <noreply@gitee.com> 1753702866 +0000

!3661 补充缺失tag，修改C接口注释方式
Merge pull request !3661 from lwt999/masterv~xtree d6a1e8516289bcea40ba43f8d26d07ef82c4581f
parent b0d395dc1b0da7f5af1e2d2d37f20fff17af708b
author zzm <zhangzhiming23@h-partners.com> 1753693191 +0000
committer Gitee <noreply@gitee.com> 1753693191 +0000

codecheck

Signed-off-by: zzm <zhangzhiming23@h-partners.com>Ux:tree 05b9eded5b269516b4685fb3cf1179b27f642f61
parent dccc799bfd61ebabd4bed7089ad50cf01111d82a
author lwt999 <liuwanting5@h-partners.com> 1753515038 +0800
committer lwt999 <liuwanting5@h-partners.com> 1753688538 +0800

补充缺失tag，修改C接口注释方式

Signed-off-by: lwt999 <liuwanting5@h-partners.com>
qx*tree 7da5fdcb33556e13e5fc9698717912b6ec7a1a7d
parent 2592524033dee458e03b3f97d7898a249d359fa4
author zzm <zhangzhiming23@h-partners.com> 1753685497 +0000
committer Gitee <noreply@gitee.com> 1753685497 +0000

修改GetOutputDescription注释说明

Signed-off-by: zzm <zhangzhiming23@h-partners.com>e`x>tree c8c7a036d25e96f79ebe0032a8fe8c06892d8cb1
parent dccc799bfd61ebabd4bed7089ad50cf01111d82a
parent ef24be6b7c76aefb6631625f1850bd80240d7d5f
author openharmony_ci <120357966@qq.com> 1753527085 +0000
committer Gitee <noreply@gitee.com> 1753527085 +0000

!3653 Signed-off-by: GQ 
Merge pull request !3653 from GQ/master(_9x3tree 3495a295919656dad0e25636778a4bf94d1d0339
parent dccc799bfd61ebabd4bed7089ad50cf01111d82a
author jiangminsen <jiangminsen@h-partners.com> 1753498404 +0800
committer jiangminsen <jiangminsen@h-partners.com> 1753498404 +0800

修改ndk的lib名称

Signed-off-by: jiangminsen <jiangminsen@h-partners.com>
hxFtree 3be856242b6491cb28ef8592f8a6c044e0d4757a
parent a19178ab902f5c338cb0571a11c041f2c660543f
parent 73d693c69dfdd9dd6918c0672aa25eb83e85d6d1
author openharmony_ci <120357966@qq.com> 1753432973 +0000
committer Gitee <noreply@gitee.com> 1753432973 +0000

!3657 主干差异性消除
Merge pull request !3657 from luoweibin/0724qhxBtree 5f20df7f1e8c354f3009662e0b5abcf75a1bbb79
parent de483e30e404f12c3ad3e9d7f33abfd4b0c76be9
parent 46b411a82826a8d667377b7ce207472d9b1a7825
author openharmony_ci <120357966@qq.com> 1753429155 +0000
committer Gitee <noreply@gitee.com> 1753429155 +0000

!3529 TEE Kit导出
Merge pull request !3529 from liyuxuan_hw/masterVbΝxtree 9b028336ec75f1eef3b3d2b16298586c5a6a6099
parent 702d2d5966d4e409197c1338989018898987d297
author liyuxuan_hw <447978021@qq.com> 1750413657 +0800
committer liyuxuan_hw <447978021@qq.com> 1753408315 +0800

TEE Kit导出

Signed-off-by: liyuxuan_hw <447978021@qq.com>
PUNx^tree a8f5372e48a14edfa7ccd8484d6fd0c11fce1572
parent 9002224bbd74c3440269109c3251e1c808316ddf
parent 53e6793a5a126149c12e27c9b922edf16b23eb99
author openharmony_ci <120357966@qq.com> 1753368455 +0000
committer Gitee <noreply@gitee.com> 1753368455 +0000

!3230 新增C-API 组件创建并行化相关API
Merge pull request !3230 from 王洋/master0517uxstree a8f5372e48a14edfa7ccd8484d6fd0c11fce1572
parent 9002224bbd74c3440269109c3251e1c808316ddf
author wangyang2022 <wangyang412@huawei.com> 1747469744 +0000
committer wangyang2022 <wangyang412@huawei.com> 1753363343 +0000

新增C-API 组件创建并行化相关API
Signed-off-by: wangyang2022 <wangyang412@huawei.com>
Change-Id: I74325c4000ea950162059274c812a3f20b461039
!zkxGtree 20084333e3f15a53ee0fc54e25936c9d61ca73c6
parent 7135cd347ab1e63a7f011222a920c0dd8ec83600
parent 7027921a4b695a1ac705cd296a3bd81d5ebb1674
author openharmony_ci <120357966@qq.com> 1753362407 +0000
committer Gitee <noreply@gitee.com> 1753362407 +0000

!3655 fix err code 2
Merge pull request !3655 from weipengyu/fix-err-codeؾ`x!tree 5955e0d78c5b5f05feffd1931b32695735210919
parent 7135cd347ab1e63a7f011222a920c0dd8ec83600
author luo_weibin <luoweibin3@huawei.com> 1753353661 +0800
committer luo_weibin <luoweibin3@huawei.com> 1753353661 +0800

主干差异性消除

Signed-off-by: luo_weibin <luoweibin3@huawei.com>
:bxstree 73e0268af599c71a7e681542eb35deb44c66999e
parent 16313e3f9734bac538d612accf4b891d31730995
author SoftSquirrel <xuhao47@huawei.com> 1753343558 +0800
committer SoftSquirrel <xuhao47@huawei.com> 1753343558 +0800

Issue:#ICOJYR
Description:add dot
Sig: SIG_ApplicaitonFramework
Feature or Bugfix:Bugfix
Binary Source: No

Signed-off-by: SoftSquirrel <xuhao47@huawei.com>
~vxtree 20084333e3f15a53ee0fc54e25936c9d61ca73c6
parent 7135cd347ab1e63a7f011222a920c0dd8ec83600
author wpy88 <weipengyu4@huawei.com> 1753339329 +0800
committer wpy88 <weipengyu4@huawei.com> 1753339329 +0800

fix err code 2

Signed-off-by: wpy88 <weipengyu4@huawei.com>
2PՕxutree 351215d1acdad205e194b0e0e388f4871b2563e8
parent 0523da3c571a602812b24ae745f2a1ddd8246273
parent 700eb3fbf31c9b351c0efbedc13bcc7becafdb41
author openharmony_ci <120357966@qq.com> 1753271030 +0000
committer Gitee <noreply@gitee.com> 1753271030 +0000

!3624 add NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING
Merge pull request !3624 from tomkl123/20250713_on_will_stop_draggingzDoٖxVtree 2491f1ff3c733de40d293f45ad0e7d632c58a4c2
parent c766d56fc778614bf11fe4386dd56f297f343859
parent 23e5dba4f1cf02db26ab8efcace195ec054d0b23
author openharmony_ci <120357966@qq.com> 1753269628 +0000
committer Gitee <noreply@gitee.com> 1753269628 +0000

!3643 modify SetBufferDropMode usage
Merge pull request !3643 from 丁盼云/remote_0718kxtree 8149261947d7c8bed4a986db189b6ffb2650ee53
parent c766d56fc778614bf11fe4386dd56f297f343859
author lhang <liuhang95@huawei.com> 1753261534 +0800
committer lhang <liuhang95@huawei.com> 1753261534 +0800

add bt2020 hlg define

Signed-off-by: lhang <liuhang95@huawei.com>
hQx!tree 49e776c3f0e2c8e141b9cfb9931f24f242cdf99d
parent f6a142738c20c19d76596f16d5f3b73d83118bfd
author dingpy <dingpanyun1@huawei.com> 1752827150 +0000
committer dingpy <dingpanyun1@huawei.com> 1753254384 +0000

modify SetBufferDropMode usage

Signed-off-by: dingpy <dingpanyun1@huawei.com>
}[x(tree 2f54c41c6586f48dc405e3f72cbd70b3b6138421
parent c766d56fc778614bf11fe4386dd56f297f343859
author mazhabandeng <dreamer_gq@163.com> 1753239679 +0800
committer mazhabandeng <dreamer_gq@163.com> 1753242005 +0800

修改队列任务支持线程模式接口
Signed-off-by: GQ <dreamer_gq@163.com>
}ixRtree fdb98651b538dade5724d35d856c6c59fb45f0f4
parent 73ecd5d44fe4d09e89a3cedb046f7989825316d0
parent 798d7daef5e830a58c1a0eaee5871690d6cd8ac1
author openharmony_ci <120357966@qq.com> 1753183355 +0000
committer Gitee <noreply@gitee.com> 1753183355 +0000

!3584 提交NDK renderNode相关接口
Merge pull request !3584 from 邹林肯/zlk03oxWtree 1375c85cf7b7c3534528a8e08de0feb4cbc66e38
parent cbecf49bdcc75e6c802bcb4446a1a767b056c4bd
parent ce4ef27fd0a3051b8eddd4ea6b1a58adaa07d5ed
author openharmony_ci <120357966@qq.com> 1753176740 +0000
committer Gitee <noreply@gitee.com> 1753176740 +0000

!3649 fix wrap key err code
Merge pull request !3649 from weipengyu/fix_wrap_key_err_code	kxStree 131018eac150ea510019d6f6ef597610b7c030db
parent 73e2bb80d3b4eea5b3b24c74ce916c5af38bfc77
parent 1257304ad4c5befa668f0ce5a04cd83a3d3d97b7
author openharmony_ci <120357966@qq.com> 1753173105 +0000
committer Gitee <noreply@gitee.com> 1753173105 +0000

!3632 add privacy warning
Merge pull request !3632 from weipengyu/add_privacy_warningbhMx)tree a24d338f98ce0fe7685e8a1f3d5a37a97331988e
parent 0631807018ac5c1dc2ec5b50d146950480870e5d
author 邹林肯 <zoulinken1@huawei.com> 1751524261 +0800
committer 邹林肯 <zoulinken1@huawei.com> 1753149750 +0800

提交NDK renderNode相关接口

Signed-off-by: 邹林肯 <zoulinken1@huawei.com>
rkpxdtree 462b62f1ea7c8cf009aaf842f96721e9f7c3a822
parent 16313e3f9734bac538d612accf4b891d31730995
parent a8beb4c89827a75c801cf5784208874f386eafa2
author openharmony_ci <120357966@qq.com> 1753109960 +0000
committer Gitee <noreply@gitee.com> 1753109960 +0000

!3650 压力管控及相机控制器NDK接口
Merge pull request !3650 from plutowang/pressure-controlxԟxtree 7de940ec5ef858c88aeeec52e5e338d29851c55e
parent a31d3269e8073f4b3aa0d8c97c64c6e677227115
author wpy88 <weipengyu4@huawei.com> 1753098429 +0800
committer wpy88 <weipengyu4@huawei.com> 1753098429 +0800

add private notice

Signed-off-by: wpy88 <weipengyu4@huawei.com>
dSۙx9tree 462b62f1ea7c8cf009aaf842f96721e9f7c3a822
parent 16313e3f9734bac538d612accf4b891d31730995
author wangruikang <wangruikang@huawei.com> 1753093755 +0800
committer wangruikang <wangruikang@huawei.com> 1753093755 +0800

压力管控及相机控制器NDK接口

Signed-off-by: wangruikang <wangruikang@huawei.com>
ޤpĒxtree 6da3799a36ce4e711f3cd9c9b51e0db3886089a3
parent 0409422c0bdcace35fb9c2194182fa2c90960396
author wpy88 <weipengyu4@huawei.com> 1753086264 +0800
committer wpy88 <weipengyu4@huawei.com> 1753086264 +0800

fix wrap key err code

Signed-off-by: wpy88 <weipengyu4@huawei.com>
TGxOtree 55e11f05ed564b0b086a4c45c697c2a957ef9d08
parent f6a142738c20c19d76596f16d5f3b73d83118bfd
parent 60221a5e16ce013927529d9b7f605211d5f570b2
author openharmony_ci <120357966@qq.com> 1752842013 +0000
committer Gitee <noreply@gitee.com> 1752842013 +0000

!3641 fix/mindspore lite syscap
Merge pull request !3641 from yangyingchun/masterdx4tree 55e11f05ed564b0b086a4c45c697c2a957ef9d08
parent f6a142738c20c19d76596f16d5f3b73d83118bfd
author yangyingchun <yangyingchun5@huawei.com> 1752821564 +0800
committer yangyingchun <yangyingchun5@huawei.com> 1752826135 +0800

fix/mindspore lite syscap

Signed-off-by: yangyingchun <yangyingchun5@huawei.com>
RcxYtree dbfaab9ff9c9b5b584b7d577f6afb674d505184a
parent aeb8da52020900fb24041c9d03f183fd2fe38f78
parent db966c444de7e0b94414258076f934db577ac951
author openharmony_ci <120357966@qq.com> 1752743229 +0000
committer Gitee <noreply@gitee.com> 1752743229 +0000

!3638 队列任务支持设置以线程模式运行
Merge pull request !3638 from GQ/masterxx6tree 976d1de948a69c1984edbc3b05b211732a8ba2e6
parent edd9c4dd9e0c745f7615bd5ec3ecd5d024571109
author mazhabandeng <dreamer_gq@163.com> 1752719564 +0800
committer mazhabandeng <dreamer_gq@163.com> 1752719564 +0800

队列任务支持设置以线程模式运行

Signed-off-by: mazhabandeng <dreamer_gq@163.com>
Kdqx9tree 3702f78931b142a4db69489f73658fbf5d2d1683
parent c29b3bc8918c52cd8c2964a40bdddd6df64fa761
parent 275b34845ef196c8ff891d5d59dbdd7a6ce30b07
author openharmony_ci <120357966@qq.com> 1752668142 +0000
committer Gitee <noreply@gitee.com> 1752668142 +0000

!3634 add blank key
Merge pull request !3634 from yj/masterf]xNtree 0b681ed295972e754668bba78e629aee07dfc805
parent dc9d69bb8cf7379777943e06c9920c67ef44f53b
parent ce39f2bf5183953b690d244f461d110aaed3f10e
author openharmony_ci <120357966@qq.com> 1752662913 +0000
committer Gitee <noreply@gitee.com> 1752662913 +0000

!3631 添加获取采样率范围接口
Merge pull request !3631 from zzm/masterFRoxbtree a77911fcb94a2cd8a8f0f80194d37786f7fc8f06
parent 391fc5f733c64d4652818ae25de7ad4e9f9f5d40
parent 2f22749011f9d32db66461aee8da5513774d95b1
author openharmony_ci <120357966@qq.com> 1752660184 +0000
committer Gitee <noreply@gitee.com> 1752660184 +0000

!3629 修复NODE_IMAGE_ANIMATOR_IMAGES的注释未加Link
Merge pull request !3629 from guan0/master/pxtree 2f8b75c0300cbcb7ee75bbfca71e220866ab534d
parent 10ad619227c13bcfe477c48f01971d9a58bfdb17
author wpy88 <weipengyu4@huawei.com> 1752656109 +0800
committer wpy88 <weipengyu4@huawei.com> 1752656109 +0800

policy to statement 2

Signed-off-by: wpy88 <weipengyu4@huawei.com>
UNx6tree a87032d9164cdbecc4682d262190eee6d48fc56c
parent a68223b36d121f5e9ef73dd1d290e5704a54c690
author mazhabandeng <dreamer_gq@163.com> 1752655063 +0800
committer mazhabandeng <dreamer_gq@163.com> 1752655063 +0800

队列任务支持设置以线程模式运行

Signed-off-by: mazhabandeng <dreamer_gq@163.com>
(qxtree 661cb4937951f593305bae1b5df02f7616ed6614
parent eab52e4dc634aa2ac9f4275aafc2c8b262945d39
author wpy88 <weipengyu4@huawei.com> 1752631169 +0800
committer wpy88 <weipengyu4@huawei.com> 1752631169 +0800

policy to statement

Signed-off-by: wpy88 <weipengyu4@huawei.com>
Tyxitree bf218849ca1a10a12b1caef432a783924e89b537
parent d12cc36dcf5903d18f8aad7e68442ecdfd5de7d2
parent f9d3b8fbfe64ca6165490cb052af4885e9beecad
author openharmony_ci <120357966@qq.com> 1752588140 +0000
committer Gitee <noreply@gitee.com> 1752588140 +0000

!3627 废弃OH_ResourceManager_GetConfiguration接口
Merge pull request !3627 from HanSY/deprecatGetConfigcuRx tree 072b3dda07ac43bbf05a58b119ff6cbea649746c
parent d12cc36dcf5903d18f8aad7e68442ecdfd5de7d2
author yj <yujie57@huawei.com> 1752587374 +0800
committer yj <yujie57@huawei.com> 1752587374 +0800

add blank key

Signed-off-by: yj <yujie57@huawei.com>
RKx3tree 9e1908c0be094f6ea79e83f7e0e80013c9b27c29
parent 85a7db3b4dba24cc773a75e170e6d11834c7e655
author HanSY <hansiyuan1@huawei.com> 1752457099 +0800
committer LongerJokies <hansiyuan1@huawei.com> 1752580364 +0800

废弃OH_ResourceManager_GetConfiguration接口

Signed-off-by: HanSY <hansiyuan1@huawei.com>
extree eefeae564d893805cb0e8011acbcc7d852f37cfe
parent 0409422c0bdcace35fb9c2194182fa2c90960396
author wpy88 <weipengyu4@huawei.com> 1752578186 +0800
committer wpy88 <weipengyu4@huawei.com> 1752578186 +0800

add privacy warning

Signed-off-by: wpy88 <weipengyu4@huawei.com>
EoTxtree 864f817939b5ba87e9d70f601d863ef28dbbde60
parent d12cc36dcf5903d18f8aad7e68442ecdfd5de7d2
author zzm <zhangzhiming23@huawei.com> 1752572363 +0000
committer Gitee <noreply@gitee.com> 1752572363 +0000

添加获取采样率范围接口

Signed-off-by: zzm <zhangzhiming23@huawei.com>exJtree 6572385c4d14b59b1c88db9bfff0b77373f5825a
parent 42106247d52e410db2b062ada908ebc0d113a209
parent d07ea922ec04522dfb2f7491976726a996ac0134
author openharmony_ci <120357966@qq.com> 1752546110 +0000
committer Gitee <noreply@gitee.com> 1752546110 +0000

!3553 add b-frame ndk interface
Merge pull request !3553 from dev_ZUT/mastera$xFtree 2d9e6a691f38d07f1922b1a6ba2f2c309981c725
parent 42106247d52e410db2b062ada908ebc0d113a209
author guanzengkun <guanzengkun@huawei.com> 1752543433 +0800
committer guanzengkun <guanzengkun@huawei.com> 1752543433 +0800

修复NODE_IMAGE_ANIMATOR_IMAGES的注释未加Link
issueNo: https://gitee.com/openharmony/interface_sdk_c/issues/ICMANO?from=project-issue
Description: 修复NODE_IMAGE_ANIMATOR_IMAGES的注释未加Link
Sig: SIG_ApplicationFramework
Feature or Bugfix:Feature
Binary Source:No
TDD:Pass
XTS:Pass
预测试:Pass
Signed-off-by:guanzengkun <guanzengkun@huawei.com>
jxEtree d973f3a6edd7578d8bf112de6159c033ff60c949
parent ffffd9e26a3d9217511e1e4306b36e193e1b2664
parent c0274e5524b4a2e038da6407e48decbf93376b87
author openharmony_ci <120357966@qq.com> 1752503052 +0000
committer Gitee <noreply@gitee.com> 1752503052 +0000

!3628 hearingAid
Merge pull request !3628 from hexuhui/feat-hearing-aid<aPxBtree 49b6f81b09b3ef1374c20e1939c5bbfa9f069007
parent 85a7db3b4dba24cc773a75e170e6d11834c7e655
parent b12d26f6bfdcbc09e351cce095cf540f12735cfa
author openharmony_ci <120357966@qq.com> 1752487969 +0000
committer Gitee <noreply@gitee.com> 1752487969 +0000

!3625 doc描述优化
Merge pull request !3625 from 于好强/masterAhxtree 3db74bda050ebe13524cc2cb055073344a5bc79d
parent 85a7db3b4dba24cc773a75e170e6d11834c7e655
author hexuhui <hexuhui3@h-partners.com> 1752462777 +0800
committer hexuhui <hexuhui3@h-partners.com> 1752462777 +0800

hearingAid

Signed-off-by: hexuhui <hexuhui3@h-partners.com>
QUVyxPtree 49b6f81b09b3ef1374c20e1939c5bbfa9f069007
parent 85a7db3b4dba24cc773a75e170e6d11834c7e655
author yuhaoqiang <yuhaoqiang@huawei.com> 1752458623 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1752458623 +0800

doc描述优化

Change-Id: I048a8febe22648066b00b29be6e9d33cae3f13c1
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
qmxotree 557aed84e835bab788d021b8b96313f345f82ef3
parent 85a7db3b4dba24cc773a75e170e6d11834c7e655
author tomkl123 <wangyansong11@huawei.com> 1752397279 +0800
committer tomkl123 <wangyansong11@huawei.com> 1752397279 +0800

add NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING

Signed-off-by: tomkl123 <wangyansong11@huawei.com>
Change-Id: Id614c5f5a07f1ea3d4be3e6417f38dd4be7edaa3
ooxYtree 4ee5dbe53d301f0de722470916fcc63e73170fc3
parent a398821ce6c926df8db0fef407910ceb2720d190
parent ec4ab1ecf916b51b9c577715e66cd1f64f0896c3
author openharmony_ci <120357966@qq.com> 1752333982 +0000
committer Gitee <noreply@gitee.com> 1752333982 +0000

!3618 Scroll自由滚动和缩放C-API接口
Merge pull request !3618 from yeyinglong/list2;r,xYtree 3ad29f54a5eb5a6463c0213f7a93d22b03bad8f5
parent 009fd57940a377efb7b630f47c0b5829bac6936f
parent 3a315b2c9edb137924392d2bef0452beba7d669b
author openharmony_ci <120357966@qq.com> 1752315714 +0000
committer Gitee <noreply@gitee.com> 1752315714 +0000

!3606 更正cookiemanager ndk接口注释
Merge pull request !3606 from wuxinzao/cookie_ndk3 oxftree ed381f3bc0362773edb6d8718b15f76dfa69dacb
parent c9cf2b64f5c2af65d2b8486652875657431fae28
parent 846e2d2dde17933b62b2d82594800f9346131bcc
author openharmony_ci <120357966@qq.com> 1752309161 +0000
committer Gitee <noreply@gitee.com> 1752309161 +0000

!3622 新增OH_HiDebug_GetAppNativeMemInfoWithCache接口
Merge pull request !3622 from 于好强/master3txVtree b4da07abe0e327a08c13e05d236d741fbf7b26f6
parent c69b14ace21767daa3592fd82218f5a4dd229382
parent d374cd210e437c6385201a09a2016299fcc4bc0a
author openharmony_ci <120357966@qq.com> 1752308093 +0000
committer Gitee <noreply@gitee.com> 1752308093 +0000

!3616 新增接口：OH_NetConn_QueryTraceRoute
Merge pull request !3616 from jxw/masterBmxttree b83455d55f18e15d6df8f72b6b8b442ba53c985d
parent 0631807018ac5c1dc2ec5b50d146950480870e5d
author yuhaoqiang <yuhaoqiang@huawei.com> 1752280554 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1752305526 +0800

新增OH_HiDebug_GetAppNativeMemInfoWithCache接口

Change-Id: I048a8febe22648066b00b29be6e9d33cae3f13c1
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
Gyx#tree eadf68be7cc16305222f0f128721c3ccf48331b4
parent c35dc71b43e021fd3dc247787016dff305f8874a
author jxw <jiexiwen@huawei.com> 1752304628 +0000
committer Gitee <noreply@gitee.com> 1752304628 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>m\ƝxMtree fa935ebaf687ca9eef59df2e5fa5b8eacc29f8fc
parent d81ec4e7af3a1b495952ad0252c1473e66cbadd2
author yeyinglong_admin <yeyinglong@hisilicon.com> 1752217382 +0800
committer yeyinglong_admin <yeyinglong@hisilicon.com> 1752288681 +0800

Scroll自由滚动和缩放C-API接口

Signed-off-by: yeyinglong_admin <yeyinglong@hisilicon.com>
=yxJtree 1bc1f5b3b156f2c6657522a4e2aff5a56377bb53
parent 34afea09b694c249f3b1020e2c25fae67e292aad
parent f92733007c0ec74c89a521770ba5302cdbe5e413
author openharmony_ci <120357966@qq.com> 1752226085 +0000
committer Gitee <noreply@gitee.com> 1752226085 +0000

!3589 add flac muxer format
Merge pull request !3589 from lintaicheng/master>acxWtree 45d188635caaf1b9fd31b9a40e02b720152ec2b0
parent d81ec4e7af3a1b495952ad0252c1473e66cbadd2
parent 513e9d9d076aa6de72f2b35c09dbbbcbd2642c13
author openharmony_ci <120357966@qq.com> 1752222797 +0000
committer Gitee <noreply@gitee.com> 1752222797 +0000

!3620 update network/netssl/include/net_ssl_c.h.
Merge pull request !3620 from jxw/mastersixtree 45d188635caaf1b9fd31b9a40e02b720152ec2b0
parent d81ec4e7af3a1b495952ad0252c1473e66cbadd2
author jxw <jiexiwen@huawei.com> 1752222614 +0000
committer Gitee <noreply@gitee.com> 1752222614 +0000

update network/netssl/include/net_ssl_c.h.

Signed-off-by: jxw <jiexiwen@huawei.com>nYxctree 7d3cb8c72c716671fbae10f25dfb21443dae747d
parent e1054aba0371f5cdf0c12b3e112443e32a93b578
parent 9002b6faa312c3078888ea000344231efe243153
author openharmony_ci <120357966@qq.com> 1752214653 +0000
committer Gitee <noreply@gitee.com> 1752214653 +0000

!3597 Http_ResponseCallback回调增加length信息
Merge pull request !3597 from liuleimin_hw/masterhrxstree 8b911fa0ab004b9b819d4c7e2ceb4cbbf3933354
parent d044b20a97df085e3979076d1237b805d901555a
parent 66ef0faf0ec4a1a4d9821e5a5a1561c6ae388c0f
author openharmony_ci <120357966@qq.com> 1752204535 +0000
committer Gitee <noreply@gitee.com> 1752204535 +0000

!3569 Add interrupt and device features for audio session
Merge pull request !3569 from 郝亮飞/audiosessionv2_0629u>x%tree 54988d0e0b3c8e114d423b0fa5151e36f1dcea8d
parent 2c6e534435f92ef015aa6a2cf908bd024ffa0484
author jxw <jiexiwen@huawei.com> 1752203837 +0000
committer Gitee <noreply@gitee.com> 1752203837 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: jxw <jiexiwen@huawei.com>l]x(tree 05991fbc2a68adbc6e29595a272af861e8e43bfe
parent d749c830ec12d14e549cda07282d02aa6e88b910
author jxw <jiexiwen@huawei.com> 1752203787 +0000
committer Gitee <noreply@gitee.com> 1752203787 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>_cx(tree 6c5076c656522b582bb5d9625d3d6bff4b232a6b
parent 5ec947fc56b319c62ff9a135e1b67904d73acf44
author jxw <jiexiwen@huawei.com> 1752203754 +0000
committer Gitee <noreply@gitee.com> 1752203754 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>O^x#tree b7cf5c1cace6ed39b3f2ada3aae1df9bcc209814
parent d044b20a97df085e3979076d1237b805d901555a
author jxw <jiexiwen@huawei.com> 1752203693 +0000
committer Gitee <noreply@gitee.com> 1752203693 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>[0]xEtree 14f7cf8cf849720e40eb58debb49af49b66e3ce5
parent bd7e6e8334714b005737422a46911f57b8ac4ad4
parent 6498c5258b535ea4efbf21eaf753182c8e315475
author openharmony_ci <120357966@qq.com> 1752165973 +0000
committer Gitee <noreply@gitee.com> 1752165973 +0000

!3603 modify  net_connection.h
Merge pull request !3603 from jxw/masterjax?tree dc9d1878e3b377a78b5a3c41d2dc63aee5dfba22
parent 0ed83020b33ea5dad7595b639a4c6695946975b7
author 郝亮飞 <haoliangfei@huawei.com> 1751198927 +0800
committer 郝亮飞 <haoliangfei@huawei.com> 1752162603 +0800

Add interrupt and device features for audio session

Signed-off-by: 郝亮飞 <haoliangfei@huawei.com>
^ox^tree bd65f424edb66201841c68bead9425ea74b6be0e
parent ead6c29be7cb901e080c1505896173c3ae084853
parent e2cb039484ed73f22b32637df514a8793c606e7d
author openharmony_ci <120357966@qq.com> 1752161935 +0000
committer Gitee <noreply@gitee.com> 1752161935 +0000

!3612 新增OH_Netstack_IsCleartextCfgByComponent接口
Merge pull request !3612 from jxw/mastero)x(tree 94511cad02b08d6aaac897567f84432f883b202d
parent 639ffde8d6eb84115b35c36fdbe19134521066be
author jxw <jiexiwen@huawei.com> 1752161192 +0000
committer Gitee <noreply@gitee.com> 1752161192 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>$~^x%tree 15b7e57955fab9797b38eb6e64b5ee7a291bfc61
parent dff3eb5fbca466755854d464020087588f999586
author jxw <jiexiwen@huawei.com> 1752161017 +0000
committer Gitee <noreply@gitee.com> 1752161017 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: jxw <jiexiwen@huawei.com>.<]x(tree db850e294f911151de37d94155b4faef7943a214
parent 8a2cb2f5c831cff02120da239e18bff98bd46cb4
author jxw <jiexiwen@huawei.com> 1752160982 +0000
committer Gitee <noreply@gitee.com> 1752160982 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>_Ux#tree 027db34896133dbef323def4ea317ce600aa6cb8
parent 0d2d5c5e3557dcfd3242474e210e1a28bc89442b
author jxw <jiexiwen@huawei.com> 1752160937 +0000
committer Gitee <noreply@gitee.com> 1752160937 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>c] x@tree f2d2edf4ea9a6da6ec975870aeb674778082d911
parent 4d66e6787367968404fe15def7135ad22656ef0b
parent a674c825c8584f401765c8d5d16522d1049d3cb2
author openharmony_ci <120357966@qq.com> 1752160930 +0000
committer Gitee <noreply@gitee.com> 1752160930 +0000

!3615 add unsupport
Merge pull request !3615 from 李一鸣/masterHax(tree 868f89bb27f390a498107d7af30d558421b33b4f
parent 6fb87fc08cd5267b686511f0bf215b597f8ec55c
author jxw <jiexiwen@huawei.com> 1752158281 +0000
committer Gitee <noreply@gitee.com> 1752158281 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>
^x(tree 5791a4af2e3af5babeb743bc79832e2dd7477fbd
parent 25dcb21eeaf4360893bf75c036fe6501976a3380
author jxw <jiexiwen@huawei.com> 1752157203 +0000
committer Gitee <noreply@gitee.com> 1752157203 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>;_x%tree df5e79e4d5db15f45327ee14a6deb1333f29234e
parent 705f35448c92f158b2790840858bc4880f53ce92
author jxw <jiexiwen@huawei.com> 1752153120 +0000
committer Gitee <noreply@gitee.com> 1752153120 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: jxw <jiexiwen@huawei.com>\x(tree 261a7368d2823cf21dbd5511283fcf650267d597
parent d958aa6c103a93fd08357d07240c916519ec5084
author jxw <jiexiwen@huawei.com> 1752153028 +0000
committer Gitee <noreply@gitee.com> 1752153028 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>]x(tree 182586814f86c34eba91ab3c078c8ff786ebdef5
parent 4e43ffa37fc7cfd0c49fdab1c1d62252d7f704fd
author jxw <jiexiwen@huawei.com> 1752152973 +0000
committer Gitee <noreply@gitee.com> 1752152973 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>`dx(tree 6facdd62b43193630796647d0a78e15676ee3eb8
parent 543e76427fcca0a0b134892ff90f7dc0742f4abf
author jxw <jiexiwen@huawei.com> 1752152864 +0000
committer Gitee <noreply@gitee.com> 1752152864 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>Q_
xCtree acb86054fd6e1a599085728a176063ca0b7b458e
parent aae4c4f9e3deeb058101e410f7f8d33e80d7bb5c
parent dc099e4e9f645040a6061960d12db2e636ce9bf7
author openharmony_ci <120357966@qq.com> 1752152073 +0000
committer Gitee <noreply@gitee.com> 1752152073 +0000

!3609 add rdb semantic
Merge pull request !3609 from 周澎亮/mastercxtree 96b3e6da05b65066aba43c686b88f675dcf39245
parent f4a68a06b53a5f0f0d4037dff01b55b2a8f84a56
author 李一鸣 <liyiming21@huawei.com> 1752149070 +0000
committer Gitee <noreply@gitee.com> 1752149070 +0000

fix codecheck

Signed-off-by: 李一鸣 <liyiming21@huawei.com>ӽYxtree 07ff12f14a49725d119b70ee7ebec6fd97158957
parent 8bdb147846114288df50517c90f5e58d6765c090
author 李一鸣 <liyiming21@huawei.com> 1752142634 +0000
committer Gitee <noreply@gitee.com> 1752142634 +0000

delete version

Signed-off-by: 李一鸣 <liyiming21@huawei.com>r:Xx#tree a8abeef8973bfd25968c4ab57d9783b0b45bb68d
parent 0c64d272bf91329c7851be0124a816d471b50b82
author jxw <jiexiwen@huawei.com> 1752142284 +0000
committer Gitee <noreply@gitee.com> 1752142284 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>/\ڝxtree 06afa5f960f980c28e586d425971f467adf246f9
parent aae4c4f9e3deeb058101e410f7f8d33e80d7bb5c
author 李一鸣 <liyiming21@huawei.com> 1752142203 +0000
committer Gitee <noreply@gitee.com> 1752142203 +0000

add unsupport

Signed-off-by: 李一鸣 <liyiming21@huawei.com>01Yɓx#tree 4cab261a5938a92ae78514fe4e3acc2ade1703e8
parent 9bd250f96f4390e3dd61db42944174223e5d5aff
author jxw <jiexiwen@huawei.com> 1752140723 +0000
committer Gitee <noreply@gitee.com> 1752140723 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>]&xKtree 7a2f4633267fa416d174fbd8a5ab4c1f8b9688a9
parent da7614b611f190b7519fbbf39a32d57e3902341b
parent dbfd3f93829a4159338e0da733ea3a75a7bc2755
author openharmony_ci <120357966@qq.com> 1752140231 +0000
committer Gitee <noreply@gitee.com> 1752140231 +0000

!3604 回退部分opengl api
Merge pull request !3604 from zhangqiang/del-apiPfxtree 0741010a97be1ea4f31db0fb3c88e26dbf7f4e65
parent 0ca28ee45501460dab9050e8a7019b970da18586
author wuxinzao <wuxinzao@huawei.com> 1752139465 +0800
committer wuxinzao <wuxinzao@huawei.com> 1752139465 +0800

检视修改

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
xXИxHtree cb12ed5c6d757d8e33a6ab2f49b241a1beded4ce
parent d448dbe8700fce5044a1b1b7d32e279fa7e5ad75
parent 47db96918cfc4ddf7ef1bc6fefc845d86d779d52
author openharmony_ci <120357966@qq.com> 1752136254 +0000
committer Gitee <noreply@gitee.com> 1752136254 +0000

!3610 点分版本接口下线
Merge pull request !3610 from zzz701/masterl|xtree 274890798e91332a8c2cf8af3f4688c3bf683689
parent 6e08e1333b3a013799d0be41f352d72ffe4094c7
author jxw <jiexiwen@huawei.com> 1752130577 +0000
committer Gitee <noreply@gitee.com> 1752130577 +0000

update network/netssl/libnet_ssl_c.json.

Signed-off-by: jxw <jiexiwen@huawei.com>Wۚxtree 4678398db01ed1e0ce70793da1cdecfa37eef938
parent d448dbe8700fce5044a1b1b7d32e279fa7e5ad75
author jxw <jiexiwen@huawei.com> 1752130507 +0000
committer Gitee <noreply@gitee.com> 1752130507 +0000

update network/netssl/include/net_ssl_c.h.

Signed-off-by: jxw <jiexiwen@huawei.com>"kZLxtree cb12ed5c6d757d8e33a6ab2f49b241a1beded4ce
parent d448dbe8700fce5044a1b1b7d32e279fa7e5ad75
author zzz701 <lihaima1@huawei.com> 1752112836 +0800
committer zzz701 <lihaima1@huawei.com> 1752112927 +0800

点分版本接口下线
Signed-off-by: zzz701 <lihaima1@huawei.com>
~\ƕx%tree dcc7f3fb4adcd2cd201ce41bb5ace82cafbe1821
parent d448dbe8700fce5044a1b1b7d32e279fa7e5ad75
author 周澎亮 <zhoupengliang1@huawei.com> 1752069042 +0800
committer 周澎亮 <zhoupengliang1@huawei.com> 1752069042 +0800

add rdb semantic

Signed-off-by: 周澎亮 <zhoupengliang1@huawei.com>
hxEtree a4a49b7cfc674e855bc44000c4b8eb2f02ab70f4
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
parent 83b234bb144184b2b11f19308ad259f32e6143e0
author openharmony_ci <120357966@qq.com> 1752049669 +0000
committer Gitee <noreply@gitee.com> 1752049669 +0000

!3602 补充错误码说明
Merge pull request !3602 from lwt999/mastergx$tree a4a49b7cfc674e855bc44000c4b8eb2f02ab70f4
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
author lwt999 <liuwanting5@h-partners.com> 1751956282 +0800
committer lwt999 <liuwanting5@h-partners.com> 1752028363 +0800

补充错误码说明

Signed-off-by: lwt999 <liuwanting5@h-partners.com>
*bWx#tree 7c24f62e7982526b9653b62a353695209f191320
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
author wuxinzao <wuxinzao@huawei.com> 1751975134 +0800
committer wuxinzao <wuxinzao@huawei.com> 1751975134 +0800

更正cookiemanager ndk接口注释

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
]9bux#tree eab72eca3d137867e6eb6a330e52499d532a7371
parent cee48e7c575eec10feb656f98014f633344fc28a
author jxw <jiexiwen@huawei.com> 1751974250 +0000
committer Gitee <noreply@gitee.com> 1751974250 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>]xtree bb6cf55c6e5882dea0cccd8b1c055970ae1c16d0
parent 9196064054f60e5c5673027e239b508aad3ec49c
author zhangqiang <zhangqiang349@huawei.com> 1751964457 +0800
committer zhangqiang <zhangqiang349@huawei.com> 1751964457 +0800

wrong

Signed-off-by: zhangqiang <zhangqiang349@huawei.com>
XUx#tree 47952388b1ace6ae6dd1fc4f09e136f7658228ae
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
author jxw <jiexiwen@huawei.com> 1751957017 +0000
committer Gitee <noreply@gitee.com> 1751957017 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>]xtree 866d0a8a931a88c575c85c9d71559f477bfccef6
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
author liuyanzhi <liuyanzhi3@huawei.com> 1751940788 +0800
committer liuyanzhi <liuyanzhi3@huawei.com> 1751940788 +0800

fix animate

Signed-off-by: liuyanzhi <liuyanzhi3@huawei.com>
Wx7tree b3329c3e0651ace50bc0b4e666f6a61888624391
parent f02ddea73884fb1f7782910bb0b91784c7b87ef5
author liuleimin_hw <liuleimin1@huawei.com> 1751798405 +0000
committer Gitee <noreply@gitee.com> 1751798405 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>/dx7tree 2116ceb7bdc418a5f5c2f7fbbb44518a229dd839
parent e1171e6eebfb9b22a711574903e2742b1370727e
author liuleimin_hw <liuleimin1@huawei.com> 1751788010 +0000
committer Gitee <noreply@gitee.com> 1751788010 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>dx3tree 6308bf8729e25a244f62d9dccf1268f777c3bc6d
parent 9cd919c93a50f2fc4b333209a7900edc11c2da41
author liuleimin_hw <liuleimin1@huawei.com> 1751787738 +0000
committer Gitee <noreply@gitee.com> 1751787738 +0000

Http_ResponseCallback回调增加length信息

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>Biwx<tree 14fd4aa63f5b67c5e0ef7dd33acd9e279ccc7749
parent 485e7fadb8898dd6f4650e5c1879827b36f02455
parent 52ca9c72e8012fcae9add418150dc560701faf62
author openharmony_ci <120357966@qq.com> 1751705255 +0000
committer Gitee <noreply@gitee.com> 1751705255 +0000

!3587 sync code
Merge pull request !3587 from 屑屑屑/masterҶaxRtree 5dd20ecdee7fc14566f7e26897ee96ed7d7072a4
parent 996e649fe345bf9184dc29c67b0ded99f0fa2ce0
parent 778469d0263ffa9e9949c9bb07a2756a28625eba
author openharmony_ci <120357966@qq.com> 1751630080 +0000
committer Gitee <noreply@gitee.com> 1751630080 +0000

!3593 【修改说明】：add setIntBuffer
Merge pull request !3593 from zzm/masterXnjxDtree 34963a5b883af71cb4e1dccae02e2f669a8a3321
parent 7d48390e8e799fe831c59ba890c2a9da00084ce7
parent e628d41b74d6f79eb43231a5e52d9642bdeafae4
author openharmony_ci <120357966@qq.com> 1751625593 +0000
committer Gitee <noreply@gitee.com> 1751625593 +0000

!3574 新增dm_ndk
Merge pull request !3574 from guoyi/master_20250630bx^tree 2331c0a29fbec0cde95d46dde4641156ecf4e803
parent 545445a162631f365bead1681728796611bb2fc3
parent 8b14c47403d257c40d9eae13d9b39695806eea49
author openharmony_ci <120357966@qq.com> 1751622325 +0000
committer Gitee <noreply@gitee.com> 1751622325 +0000

!3588 录屏框架新增配置picker是否弹出接口
Merge pull request !3588 from yxc3/master}xxCtree 2f6d3118692f25631a5bcefe4fd7d0f36b5c6090
parent 71822d329d0c9e3e4f38cb8095c843f88815129d
parent 9ff7f5a0fcbbc3a76df365c970c8d93919b6c56e
author openharmony_ci <120357966@qq.com> 1751620637 +0000
committer Gitee <noreply@gitee.com> 1751620637 +0000

!3531 fix native fence
Merge pull request !3531 from 李辉/fence0620ax`tree 0943c489baf510b7d11936aa1ae35682204eb9d4
parent ef0da891ee6ff2e6dd8a8cbd31b1e0f24f021deb
parent 22f3947100dfad49d37abf7a9ba07e535bd104d8
author openharmony_ci <120357966@qq.com> 1751620577 +0000
committer Gitee <noreply@gitee.com> 1751620577 +0000

!3592 add audio codec syncmode interface in API 20
Merge pull request !3592 from SuRuoyan/syncmodekxRtree 649c9b97fde23eb8f25b41e9fc3bc57f3cfe1582
parent 43915077f946b5ccee72ba262bd094b020f66eb4
parent 62c81d5f71be9053e27eaaf2331857d372bcbfe7
author openharmony_ci <120357966@qq.com> 1751616878 +0000
committer Gitee <noreply@gitee.com> 1751616878 +0000

!3525 add draw font feature interfaces
Merge pull request !3525 from qsftw/font_0620Qfx(tree b93eb6bc2ff51d7b24145af34e9e2ffea5030507
parent da2671d3d4fe23d6743f9c19867d6d34e246795f
author zzm <zhangzhiming23@huawei.com> 1751615652 +0000
committer zzm <zhangzhiming23@huawei.com> 1751615946 +0000

【修改说明】：add setIntBuffer

Signed-off-by: zzm <zhangzhiming23@huawei.com>
dx6tree 453e94c273a3397fd8071cd2a6b863d693f7d21d
parent da2671d3d4fe23d6743f9c19867d6d34e246795f
author yxc3 <yexiaochen@h-partners.com> 1751600083 +0800
committer yxc3 <yexiaochen@h-partners.com> 1751615161 +0800

录屏框架新增配置picker是否弹出接口

Signed-off-by: yxc3 <yexiaochen@h-partners.com>
tpxxtree 4af1acf352ed176dbefba915f4f7f6baa7408ee5
parent da2671d3d4fe23d6743f9c19867d6d34e246795f
parent 790adf44bdc9ed080e6458e5f3bc4ddfe1641886
author openharmony_ci <120357966@qq.com> 1751614215 +0000
committer Gitee <noreply@gitee.com> 1751614215 +0000

!3563 add new canvas imageFilter samplingOptions shadereffect ndk interface
Merge pull request !3563 from dreamyhhh/newndkٴvx/tree 2aad04818456ea35cb025529f95cec89427bf74f
parent da2671d3d4fe23d6743f9c19867d6d34e246795f
author SuRuoyan <suruoyan1@huawei.com> 1751613896 +0800
committer SuRuoyan <suruoyan1@huawei.com> 1751614041 +0800

add audio codec syncmode interface in API 20

Signed-off-by: SuRuoyan <suruoyan1@huawei.com>
_x*tree 24dc9554887757951eaf1ff8a943bd603b7a212f
parent da2671d3d4fe23d6743f9c19867d6d34e246795f
author lintaicheng <lintaicheng1@huawei.com> 1751601388 +0800
committer lintaicheng <lintaicheng1@huawei.com> 1751601388 +0800

add flac muxer format

Signed-off-by: lintaicheng <lintaicheng1@huawei.com>
	^KxHtree 121a41dbf3592ae86cd1f450256a7345d3f07bd2
parent 0ed83020b33ea5dad7595b639a4c6695946975b7
parent f3d0b4f804f71f145734bfe004070717fddce568
author openharmony_ci <120357966@qq.com> 1751597031 +0000
committer Gitee <noreply@gitee.com> 1751597031 +0000

!3579 增加了错误码
Merge pull request !3579 from wuxinzao/cookie_ndkFh$xtree 83a4413f4b074fa0f2e6b1e57f269b2df4bab8fa
parent f27925f20522680544a89640f17f1b046dee2d26
author dreamyhhh <hangmengxin@huawei.com> 1751018294 +0800
committer dreamyhhh <hangmengxin@huawei.com> 1751549642 +0800

add new ndk

Signed-off-by: dreamyhhh <hangmengxin@huawei.com>
q
Wđx!tree ca8f8107cad7f661a3f339655b35ab31cec9d65c
parent 609e0945ee2aa9be6b370aea5375cda2ca71ebee
author 屑屑屑 <jiangwenda5@h-partners.com> 1751549256 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1751549300 +0800

sync code

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
dלxLtree 8132015ac220706130759672d15e367243bde082
parent 045d4d00748743a2ff27e840e64bf43d512a3801
parent 9ee457992a89569f44751beaea6028da8caad723
author openharmony_ci <120357966@qq.com> 1751532393 +0000
committer Gitee <noreply@gitee.com> 1751532393 +0000

!3341 add audio decoder g711a
Merge pull request !3341 from lintaicheng/masterE*a>xStree 64bd58d46d8afb2feab3f179691b666ffe299015
parent 0631807018ac5c1dc2ec5b50d146950480870e5d
parent 9ff0c0a9c58965b464c657eddbe564e9d6a56c75
author openharmony_ci <120357966@qq.com> 1751528122 +0000
committer Gitee <noreply@gitee.com> 1751528122 +0000

!3580 易用性DidFailWithError优化
Merge pull request !3580 from zhengyutao/masterkxtree 62271c54649a9e26be631ee902950b4554de6979
parent 1304b73f08c6b3d79fa2dad6845c1749c26757e0
author wuxinzao <wuxinzao@huawei.com> 1751508256 +0800
committer wuxinzao <wuxinzao@huawei.com> 1751508256 +0800

检视修改

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
Wڑx!tree 90cc329c982c4122a399474cbacb1e9267bd0ac8
parent 01eeceaf8cc35b32b791d0765fd6dcdd2e76b5dd
author zhengyutao <zhengyutao@huawei.com> 1751458817 +0000
committer Gitee <noreply@gitee.com> 1751458817 +0000

易用性DidFailWithError优化

Signed-off-by: zhengyutao <zhengyutao@huawei.com>b̑x!tree 4264cfdbe6047c0393b82ec93cb744cf927b87c9
parent 257d640feec253bb8da1897773b8a56b11a6d6a5
author zhengyutao <zhengyutao@huawei.com> 1751458099 +0000
committer Gitee <noreply@gitee.com> 1751458099 +0000

易用性DidFailWithError优化

Signed-off-by: zhengyutao <zhengyutao@huawei.com>FaǔxDtree a40c52c4eb07dfac0579f4bb37b390ed3c3480cc
parent 4cdf46a1d10ac6b1416dd1c7f623e8f59d55cce4
parent e2a4ac4f4e59f6d73b71907868f5e8d5e120326b
author openharmony_ci <120357966@qq.com> 1751454382 +0000
committer Gitee <noreply@gitee.com> 1751454382 +0000

!3435 add gewu interface
Merge pull request !3435 from liuchuang/apilcb1xttree c5d2021733a38b2777adbd11bc16218a5d3c5738
parent 4f04468ffba93586c277bea47103aee02e3b0ed4
parent 770fa0120dded48ba4707a272d23d932ab2da0bb
author openharmony_ci <120357966@qq.com> 1751453800 +0000
committer Gitee <noreply@gitee.com> 1751453800 +0000

!3575 Add AVTranscoder OnError errorCode.
Merge pull request !3575 from zhangwt3652/add_avtranscoder_onerror_errorcodes?x!tree 80e9f6884750c5a48cef8801086d59a80f04dae5
parent 3c6e6ce374a24e1047f370b5696a79b0dc281226
author zhengyutao <zhengyutao@huawei.com> 1751424863 +0000
committer Gitee <noreply@gitee.com> 1751424863 +0000

易用性DidFailWithError优化

Signed-off-by: zhengyutao <zhengyutao@huawei.com>ؘ`Ǒx!tree 56b77e2fbe3cf0ef6a855d8c8ed7976d220c3c49
parent 4f04468ffba93586c277bea47103aee02e3b0ed4
author zhengyutao <zhengyutao@huawei.com> 1751424462 +0000
committer Gitee <noreply@gitee.com> 1751424462 +0000

易用性DidFailWithError优化

Signed-off-by: zhengyutao <zhengyutao@huawei.com>;b;xtree 2095a69f97320febf8daf487d41443f109b69b69
parent 4f04468ffba93586c277bea47103aee02e3b0ed4
author wuxinzao <wuxinzao@huawei.com> 1751376517 +0800
committer wuxinzao <wuxinzao@huawei.com> 1751376517 +0800

增加了错误码

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
e]xMtree 189180292ada4a0237a4449dd70ac19d0805a31f
parent 292836c0f3613ef737431364012903883e0a126e
author zhangwenting3652 <zhangwenting15@huawei.com> 1751352313 +0800
committer zhangwenting3652 <zhangwenting15@huawei.com> 1751359336 +0800

Add AVTranscoder OnError errorCode.

Signed-off-by: zhangwenting3652 <zhangwenting15@huawei.com>
\gxWtree 2b69770da072680a8487c7c0d7e140dd2bbac65c
parent 340d31f89f959ed6e40e2761ec2c8f17ab9aeb44
parent 1bedadbca08d69cb8af8abc4b205a5c328ad4ac8
author openharmony_ci <120357966@qq.com> 1751355784 +0000
committer Gitee <noreply@gitee.com> 1751355784 +0000

!3394 Feat: Add Function To Support Getter and Setter Of GlobalX/GlobalY For MouseEvent/TouchEvent/AxisEvent.
Merge pull request !3394 from wuliangdong/feat_global_coords)x>tree 39e6d1cdd081a1f98cba6bd50ddd827c40ec86d4
parent 292836c0f3613ef737431364012903883e0a126e
parent 780c583e248886642ae9dc293056477478a07683
author openharmony_ci <120357966@qq.com> 1751353878 +0000
committer Gitee <noreply@gitee.com> 1751353878 +0000

!3571 format gn
Merge pull request !3571 from huangtianyu/master#]Rx^tree 8ad20b0929b9588e76c6ba4b0444e3bd2308cb1a
parent 530f77e588eb38ee6c20e0092f40a0d9273a06c1
parent 19fbc2c1cecff533c2d8e8f49ce7c776aebb2384
author openharmony_ci <120357966@qq.com> 1751295854 +0000
committer Gitee <noreply@gitee.com> 1751295854 +0000

!2739 add variable write data callback function
Merge pull request !2739 from ancimoon/acallbackkx	tree 8ad20b0929b9588e76c6ba4b0444e3bd2308cb1a
parent 530f77e588eb38ee6c20e0092f40a0d9273a06c1
author huchang <huchang4@huawei.com> 1751288158 +0800
committer huchang <huchang4@huawei.com> 1751288158 +0800

fix conflict

Signed-off-by: huchang <huchang4@huawei.com>
Qrx?tree 62718b4b757c563e7d94cf81cfb3b68ca51d3dfe
parent ad4a2e3f1e9b8c925b0830cb6ca8d089850f743f
parent fdb127ef801c2b6241546ed2ef19f9ef141935b6
author openharmony_ci <120357966@qq.com> 1751286348 +0000
committer Gitee <noreply@gitee.com> 1751286348 +0000

!3573 add resource apis
Merge pull request !3573 from AOL/resapis_x tree e2e9dc2b342fd4eecea2f0ceed4a1fb7afd3d77b
parent ad4a2e3f1e9b8c925b0830cb6ca8d089850f743f
author guoyi <guoyi39@huawei.com> 1751285996 +0800
committer guoyi <guoyi39@huawei.com> 1751285996 +0800

新增dm_ndk

Signed-off-by: guoyi <guoyi39@huawei.com>
)Rx tree 62718b4b757c563e7d94cf81cfb3b68ca51d3dfe
parent 35f385a945b557c9dbb3114b276ace8e83ba217c
author AOL <lixin113@huawei.com> 1751283545 +0000
committer Gitee <noreply@gitee.com> 1751283545 +0000

fix gn format

Signed-off-by: AOL <lixin113@huawei.com>!|L7x tree 83e7c508969d7e86ad70fb98c593ea94cf7752b1
parent d540ff88dfa44687b0cfc79b185722dd109de3a9
author AOL <lixin113@huawei.com> 1751281769 +0000
committer Gitee <noreply@gitee.com> 1751281769 +0000

remove blank

Signed-off-by: AOL <lixin113@huawei.com>>Kܛx tree bc509621d0c036e06ea6b107d7f48e393ca6c564
parent 5fc4303099db4cc048f8fa116978bc1bc5dbb25d
author AOL <lixin113@huawei.com> 1751280636 +0000
committer Gitee <noreply@gitee.com> 1751280636 +0000

update apis

Signed-off-by: AOL <lixin113@huawei.com>EKRxFtree 356c0e0db5011872ec49afb71d63939d619f2f17
parent ad4a2e3f1e9b8c925b0830cb6ca8d089850f743f
author magekkkk <lixin113@huawei.com> 1751280225 +0000
committer magekkkk <lixin113@huawei.com> 1751280225 +0000

add resource apis

Signed-off-by: magekkkk <lixin113@huawei.com>
Change-Id: I0f7829d7d6671892f165885c1d4d5cc4219141db
`axEtree 683f7f62e33b0a71860d001603d50cde8cbad11c
parent ed59c5cb5f0b23e3bd63f6b7d971e4f171628802
parent 772aa021c9f888a203b62b1144a2d4f1c47775d2
author openharmony_ci <120357966@qq.com> 1751271821 +0000
committer Gitee <noreply@gitee.com> 1751271821 +0000

!3522 syscap注释修改
Merge pull request !3522 from zhuyinlin/master1extree 688dafaae80c553e93c31b42ef09f0267d5eb6e3
parent dea728d24a6530cec324ef153c34cc94c8894f05
author liuchuang <liuchuang40@huawei.com> 1749783891 +0800
committer liuchuang <liuchuang40@huawei.com> 1751267973 +0800

add gewu interface

Signed-off-by: liuchuang <liuchuang40@huawei.com>
W0ZLxJtree 1548802079d57edbbee571d7b137b7f2d79c8b66
parent 4cb6bbf5ddbe8410b568f9fada66261ade1c3d4f
parent a215d1e344f12ff245650b4e94b8763cfce9619d
author openharmony_ci <120357966@qq.com> 1751265595 +0000
committer Gitee <noreply@gitee.com> 1751265595 +0000

!3570 error commit update
Merge pull request !3570 from xiangtongtong/masterGextree 860b06cc6feddbff696712f8d4fd4ecca7ee75a0
parent 425299cc5cabe79495e40e32fa65b99c29b350eb
author lihui <lihui359@huawei.com> 1750409032 +0800
committer lihui <lihui359@huawei.com> 1751253579 +0800

fix native fence system cap

Signed-off-by: lihui <lihui359@huawei.com>
U2xDtree 609adfc476898b7fa2682e874383715b4bbfb4a1
parent 2a2cfae1fc1dd516496d7c1e5c4d4b1f5d5a52a6
author xuzhongwu <xuzhongwu@huawei.com> 1751252796 +0800
committer xuzhongwu <xuzhongwu@huawei.com> 1751252796 +0800

format gn

Signed-off-by: xuzhongwu <xuzhongwu@huawei.com>
Change-Id: I64b399cf77dec83ddd7e1c3b9d195ec1e244a730
fxCtree c1835351e6fed337f51918b4d7cb10a73cc81a70
parent de6b0fecf2a798640b11fd964a2b1eafabd97401
author huangtianyu <huangtianyu15@huawei.com> 1751252492 +0000
committer Gitee <noreply@gitee.com> 1751252492 +0000

update multimedia/player_framework/lowpower_video_sink.h.

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>5jex[tree 37c49ac208a63a895686d7be92669d68f336be73
parent f27925f20522680544a89640f17f1b046dee2d26
author qsftw <gaoqiangsheng@huawei.com> 1750387795 +0000
committer qsftw <gaoqiangsheng@huawei.com> 1751250285 +0800

add draw font feature interfaces

Signed-off-by: qsftw <gaoqiangsheng@huawei.com>
Change-Id: I96f6aa81b08214f5e7780af150a432e7bb36ff0a
kzx@tree 1548802079d57edbbee571d7b137b7f2d79c8b66
parent 4cb6bbf5ddbe8410b568f9fada66261ade1c3d4f
author xiangtongtong <xiangtongtong1@h-partners.com> 1751249961 +0800
committer xiangtongtong <xiangtongtong1@h-partners.com> 1751249961 +0800

error commit update

Signed-off-by: xiangtongtong <xiangtongtong1@h-partners.com>
Wjx\tree 4ac189e682d48feb08d75d861fe5099db7aec87a
parent e6e4ad2048a9e665143be82c6297fd206741fbed
parent 4cb6bbf5ddbe8410b568f9fada66261ade1c3d4f
author wuliangdong <wuliangdong1@huawei.com> 1751248785 +0800
committer wuliangdong <wuliangdong1@huawei.com> 1751248880 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c into feat_global_coords

Change-Id: I30d3f6ef74befdb195d33cf85137d87e75c39a26
їx7tree f08aa93461ddc68676babc13c2320ecaad8051c1
parent 75a2a9688642d21b692af350fcaffe0c4ce7483e
author wuliangdong <wuliangdong1@huawei.com> 1751248290 +0000
committer Gitee <noreply@gitee.com> 1751248290 +0000

update multimodalinput/kits/c/ohinput.ndk.json.

Signed-off-by: wuliangdong <wuliangdong1@huawei.com>*WeNx?tree e706bde57db339f99a9a29613e642d65e491f9b6
parent 6d42171833a64d3756ae0052529abb29e41f99e4
author wuliangdong <wuliangdong1@huawei.com> 1751248128 +0000
committer Gitee <noreply@gitee.com> 1751248128 +0000

update multimodalinput/kits/c/input/oh_input_manager.h.

Signed-off-by: wuliangdong <wuliangdong1@huawei.com>.Vg:xNtree c1c00119955d45a8e15c7372003f22d07bca0c28
parent 6783f6a08f8cfd4c89ac17b81596a3415825d491
author wuliangdong <wuliangdong1@huawei.com> 1749694695 +0800
committer wuliangdong <wuliangdong1@huawei.com> 1751247581 +0800

Feat: Add Function To Support Getter and Setter Of GlobalX/GlobalY For MouseEvent/TouchEvent/AxisEvent.

Signed-off-by: wuliangdong <wuliangdong1@huawei.com>
Change-Id: I710f67a32b33c5a874eca71c3595f06564a15bf5
xAtree 7f9179ca66f728a4bd1c76b0c74e768b9f281b3b
parent d76cc8eafb5789e9ee29fa57f572262f734bcc74
parent 5b788f9220d5f4860b307bc8fd79340e09255585
author openharmony_ci <120357966@qq.com> 1751113655 +0000
committer Gitee <noreply@gitee.com> 1751113655 +0000

!3492 fix spell
Merge pull request !3492 from zhaojinghui/fix_spell`UxEtree d73983e60aefcd44fcfa52c0dbb12970295eff5f
parent c5908f50c9657e927c62b838b1a7495ae8ec19b4
parent 134fe60b7578bebfd1e969085bafd682382ed1db
author openharmony_ci <120357966@qq.com> 1751110843 +0000
committer Gitee <noreply@gitee.com> 1751110843 +0000

!3547 增加响度接口
Merge pull request !3547 from zhouyuxin/masterZhΑxQtree 3a8cab43214079cf8942af9b08983cffa7a22a9a
parent d3d29eeaf6fa35efe56b55b20a466df0a38103da
parent d659e260ab19a0b266e9ec5dceaae8268b2f7a21
author openharmony_ci <120357966@qq.com> 1751104978 +0000
committer Gitee <noreply@gitee.com> 1751104978 +0000

!3566 fix ArkWeb_BlanklessErrorCode format
Merge pull request !3566 from mmx/mastergߞxNtree 27b8e068c26543812c4a44d257bb9381711fe3d6
parent af48eb8201efc338eef42b9247f380ec4416f630
parent 3d5faf5cf8a791191ff1aedb9c3a296b6ad2fb88
author openharmony_ci <120357966@qq.com> 1751098416 +0000
committer Gitee <noreply@gitee.com> 1751098416 +0000

!3487 fix drawing path description
Merge pull request !3487 from qsftw/path_0617dx9tree cfaa96dd01d4d2a7cd95312ec2cbba525bf27789
parent af48eb8201efc338eef42b9247f380ec4416f630
author some-one-mmx <maominxian1@huawei.com> 1751095535 +0800
committer some-one-mmx <maominxian1@huawei.com> 1751095535 +0800

fix ArkWeb_BlanklessErrorCode format

Signed-off-by: some-one-mmx <maominxian1@huawei.com>
dxtree 4e9dda4cbef78e50e761f1353e39ab06e63b4412
parent 7fbacff53be4cf3190ce612d5bbc56214118f02a
author zyx0106 <zhouyuxin15@huawei.com> 1751095146 +0800
committer zyx0106 <zhouyuxin15@huawei.com> 1751095146 +0800

fix API description

Signed-off-by: zyx0106 <zhouyuxin15@huawei.com>
.VΛxtree acc80ca36ff714df4eb7bc40cfd6da7f5669ec12
parent e144da1be0126ac5fba9b477a0b1a83fadb749b0
author zyx0106 <zhouyuxin15@huawei.com> 1751092158 +0800
committer zyx0106 <zhouyuxin15@huawei.com> 1751092158 +0800

add json modification

Signed-off-by: zyx0106 <zhouyuxin15@huawei.com>
oXxdtree caa39ef7b073475b3c8e4ccc8d58bae0c5d6cda5
parent f6bb66de98e9b4a5254152c83550bbd3d486cb3d
parent e34ec35bdf0902644321496df2a7ac373768f939
author openharmony_ci <120357966@qq.com> 1751080435 +0000
committer Gitee <noreply@gitee.com> 1751080435 +0000

!3560 update third_party/musl/ndk_musl_include/malloc.h.
Merge pull request !3560 from Lumos235/master~nx_tree 2fd7fcd6d32af0dda5219726371d11453efbd5fa
parent f27925f20522680544a89640f17f1b046dee2d26
author ZhaoJinghui <zhaojinghui5@h-partners.com> 1750215063 +0800
committer ZhaoJinghui <zhaojinghui5@h-partners.com> 1751074645 +0800

fix spell

Signed-off-by: ZhaoJinghui <zhaojinghui5@h-partners.com>
Change-Id: I6136c07da4af1ce6605c78f02682d8d277b3e651
.lxUtree 0a88214fa70f6ec1aaa5cc1b5e10e045b94ddeae
parent ecfa202b2e39007b10d2977549d45b54ca641d1e
parent f17f6e77ca59d851581f9b5a41c272b389ae4449
author openharmony_ci <120357966@qq.com> 1751027805 +0000
committer Gitee <noreply@gitee.com> 1751027805 +0000

!3548 增加了saveCookie的ndk接口
Merge pull request !3548 from wuxinzao/cookie_ndknkxftree d3848e9cc3ee3c9f5d536305a3f06d913c7c35a5
parent f27925f20522680544a89640f17f1b046dee2d26
parent 784df85f546a33d2353f9f11a30dcc15ade129b1
author openharmony_ci <120357966@qq.com> 1751023901 +0000
committer Gitee <noreply@gitee.com> 1751023901 +0000

!3561 add NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED to swiper
Merge pull request !3561 from sunqi/masterjxPtree 04e53005926c6c472b5bcf8fdf2127a8b620690e
parent c7380995aa076c765bc7e919493b2e68c7e82af6
parent 0cded30cb144e7b8819e8786f96236d3a3bb5ff7
author openharmony_ci <120357966@qq.com> 1751009346 +0000
committer Gitee <noreply@gitee.com> 1751009346 +0000

!3353 CAPI: add two type HitTestMode
Merge pull request !3353 from zhouchaobo/0607cxjtree f2a631223ca4e1bf0072bb6ca76bf47498a3ecbb
parent 447c75ab543a91750184dd0ce50057ab22049a65
parent a3bbea17efc26b4cd188a264bc64fef0bf96365f
author openharmony_ci <120357966@qq.com> 1751009277 +0000
committer Gitee <noreply@gitee.com> 1751009277 +0000

!3556 ArkUI_GestureRecognizerType add ON_CLICK DRAG_DROP
Merge pull request !3556 from 刘永凯/0626onClick!0pxtree a631f85975a028689b3988ef8405c477e600601a
parent 7eb20776e72d54d4a50108e154910d07e14b74da
author wuxinzao <wuxinzao@huawei.com> 1751008490 +0800
committer wuxinzao <wuxinzao@huawei.com> 1751008490 +0800

修复门禁告警

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
[xItree 29c24a841788ba7a3d4d05a4591dbd1bfce53623
parent f8d3303d6c1c38c6b0f9f177edce371014833b56
parent 9ef0d4a103189f360fad74f5c391597b5148b0ef
author openharmony_ci <120357966@qq.com> 1750990746 +0000
committer Gitee <noreply@gitee.com> 1750990746 +0000

!3294 change param name
Merge pull request !3294 from ancimoon/rename_parambx\tree e937ec2b57c407e82eecec775177e358df0766be
parent 806831f508fa8b7bd60cf9fd843076e502c0010b
parent 17f26b85081141125f4bebaeb955af8a15363371
author oh_ci <maguangsheng1@huawei.com> 1750989215 +0000
committer Gitee <noreply@gitee.com> 1750989215 +0000

!3559 update .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md.
Merge pull request !3559 from 马广生/N/A
k&xYtree 239588dc855be747e66ded094768d77d40833026
parent 9196064054f60e5c5673027e239b508aad3ec49c
author 刘永凯 <liuyongkai2@huawei-partners.com> 1750904352 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1750947252 +0800

ArkUI_GestureRecognizerType add ON_CLICK DRAG_DROP

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
v|x*tree 3336860bc94e977cda386414bffba56c915cdafb
parent e75e262c9e8140af278bea0152f426537ff2d257
author zhouchaobo <zhouchaobo@huawei.com> 1749259848 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1750941967 +0800

CAPI: add two type HitTestMode

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
X_x"tree bfdd4bdcf68c693f18ce514ebe70717b041a0492
parent 806831f508fa8b7bd60cf9fd843076e502c0010b
author SQ <sunqi57@huawei.com> 1750937513 +0800
committer SQ <sunqi57@huawei.com> 1750937513 +0800

add NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED to swiper

Signed-off-by: SQ <sunqi57@huawei.com>
bzVx6tree 3746be062608371d51a462453d7d0404585594ba
parent 354c16985a86265832ab314ce64274f103d2f9d9
author Lumos235 <luojie119@h-partners.com> 1750935564 +0000
committer Gitee <noreply@gitee.com> 1750935564 +0000

update third_party/musl/ndk_musl_include/malloc.h.

Signed-off-by: Lumos235 <luojie119@h-partners.com>_xptree b3d3bc6d7b1123711e09182c5c18578cc781b691
parent eabb75fc46e300de66b5fb4b3afbb7f6731ab1c1
parent 7a2f33d84dbf3f0cc115ab64aa7fbf1727380406
author openharmony_ci <120357966@qq.com> 1750934320 +0000
committer Gitee <noreply@gitee.com> 1750934320 +0000

!3309 Support config of MaxMultiTouchPointNum
Merge pull request !3309 from blueyouth/config_MaxMultiTouchPointNumRstxetree a376419496ecf0705ff094fee9d0b65c943d7da5
parent e75e262c9e8140af278bea0152f426537ff2d257
parent 3945127975e3f2bf5f8118d020a26bbc4ee1fec3
author openharmony_ci <120357966@qq.com> 1750934162 +0000
committer Gitee <noreply@gitee.com> 1750934162 +0000

!3419 XComponentType.NODE类型相关NDK接口标注废弃
Merge pull request !3419 from sd_wu/node_depw;xtree 699b4ac5a9d7389e0ec84b32d3530fd03ebfff3e
parent 8d71fbd272432b7ed039475af02b2ecf223b28cb
author wuxinzao <wuxinzao@huawei.com> 1750931120 +0800
committer wuxinzao <wuxinzao@huawei.com> 1750931120 +0800

同步接口注释

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
%h]x;tree aefc9cf578b7a2ae39639a96c835ba68e0bd472d
parent e75e262c9e8140af278bea0152f426537ff2d257
author 马广生 <maguangsheng1@h-partners.com> 1750928869 +0000
committer Gitee <noreply@gitee.com> 1750928869 +0000

update .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md.

Signed-off-by: 马广生 <maguangsheng1@h-partners.com>i]xZtree 6664d8ebf4aca27bd303b55b9d9bff4eba55f035
parent 9196064054f60e5c5673027e239b508aad3ec49c
parent 311e7eb8759727df13873cf0eaf82ba4eee12198
author openharmony_ci <120357966@qq.com> 1750911975 +0000
committer Gitee <noreply@gitee.com> 1750911975 +0000

!3555 Add EnableBFrame interface.
Merge pull request !3555 from zhangwt3652/add_enablebframehxtree c76d2a53aaf71b21e347b4d328e513da6afc9f19
parent 86bf220d80460c52490d70ecba0e165ad98d6ffa
author huchang <huchang4@huawei.com> 1750853838 +0800
committer huchang <huchang4@huawei.com> 1750853838 +0800

sync with hams

Signed-off-by: huchang <huchang4@huawei.com>
s/Sxtree 89a48dce9e9be160a213796a10f4397db61e0d06
parent 9196064054f60e5c5673027e239b508aad3ec49c
author huchang <huchang4@huawei.com> 1748307307 +0800
committer huchang <huchang4@huawei.com> 1750853106 +0800

change param name

Signed-off-by: huchang <huchang4@huawei.com>
8?Rx6tree 6664d8ebf4aca27bd303b55b9d9bff4eba55f035
parent 9196064054f60e5c5673027e239b508aad3ec49c
author zhangwt3652 <zhangwenting15@huawei.com> 1750850208 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1750850208 +0800

Add EnableBFrame interface.

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
J`Κx:tree 64e69b8c506d6ae463064f0e22d60e28437918f9
parent 7dc41370e07905affc1c20b43ec66b205357a8da
parent 5082f5338df237352db1ec7f8c4fdb03cd4ce828
author openharmony_ci <120357966@qq.com> 1750845402 +0000
committer Gitee <noreply@gitee.com> 1750845402 +0000

!3445 fix syscap
Merge pull request !3445 from lwt999/master\x%tree 35e00cf9a36698479081f1aa92d24e4a890300ec
parent fbee41b3917b9a832f08d417c3a42f936fe316c4
author dev-zut <liangzhihao11@huawei.com> 1750843476 +0800
committer dev-zut <liangzhihao11@huawei.com> 1750843476 +0800

add b-frame ndk interface

Signed-off-by: dev-zut <liangzhihao11@huawei.com>
[x%tree 16689e798a1d1deff3dd9c10b1517c08c0036eee
parent 7257945c258ccb8b0c8f6a40c8f48c88a5675320
author dev-zut <liangzhihao11@huawei.com> 1750842645 +0800
committer dev-zut <liangzhihao11@huawei.com> 1750842645 +0800

add b-frame ndk interface

Signed-off-by: dev-zut <liangzhihao11@huawei.com>
2[UxKtree e1e098d47f741ecbf430463dd44737f5c69c9483
parent 7257945c258ccb8b0c8f6a40c8f48c88a5675320
parent 54cd0705222f70bf1b87cc6d1fd9c94b13822152
author openharmony_ci <120357966@qq.com> 1750842204 +0000
committer Gitee <noreply@gitee.com> 1750842204 +0000

!3463 modify interface note
Merge pull request !3463 from 杨俊晖/0604movie,dxdtree eda571f1d64fa3fbf9ff934ed937190a45f31fe3
parent 3e550349c3c66f0621ba9a6b76457860e0aac271
parent 5a040fbe6f0b4c4b171c576b7be2bd3b8b636fcd
author y30025806 <yangjunhui10@huawei.com> 1750836875 +0800
committer y30025806 <yangjunhui10@huawei.com> 1750836875 +0800

Merge branch '0604movie' of https://gitee.com/yangjunhui10/interface_sdk_c into 0604movie
K lPxtree abd8aecf03ca93c4649d11b5c92734ab9bbea6a2
parent 48e1a8aa7548a7b9abe427e6479906ed6d758355
author y30025806 <yangjunhui10@huawei.com> 1750836791 +0800
committer y30025806 <yangjunhui10@huawei.com> 1750836791 +0800

add json

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
4pSxtree 5c420e6a5830b2cf248f6fbe91bb43d29f71b695
parent 7257945c258ccb8b0c8f6a40c8f48c88a5675320
author huangtianyu <huangtianyu15@huawei.com> 1750832506 +0800
committer huangtianyu <huangtianyu15@huawei.com> 1750832506 +0800

LppNDK

Signed-off-by: huangtianyu <huangtianyu15@huawei.com>
[ZxHtree 3aa919b11cd05d93d7546a9759b3188b4f4e207e
parent e20a905f9271a255c0fc7db09c425423ae9a7c03
parent bc420901cfcc916bd78de83408171f0addbeed47
author openharmony_ci <120357966@qq.com> 1750817804 +0000
committer Gitee <noreply@gitee.com> 1750817804 +0000

!3509 VideoEncoder同步接口NDK
Merge pull request !3509 from lzm/master'Lfxftree b1416d2afd2838cf11354553d57a3f8889b77306
parent 0409422c0bdcace35fb9c2194182fa2c90960396
parent 876b1cb1280484b5eefcba94b50774e44220dbd7
author openharmony_ci <120357966@qq.com> 1750772042 +0000
committer Gitee <noreply@gitee.com> 1750772042 +0000

!3546 touchTestDone add description of params
Merge pull request !3546 from 刘永凯/touchTestDoneAdd_2toĒxbtree cf477f5c088822f0eefd8217b067a56aa4d75994
parent 0409422c0bdcace35fb9c2194182fa2c90960396
author blueyouh <bailiang18@huawei.com> 1748430286 +0800
committer blueyouh <bailiang18@huawei.com> 1750766234 +0800

Support config of MaxMultiTouchPointNum

Signed-off-by: blueyouh <bailiang18@huawei.com>
Change-Id: I9feff24f0ae5fc5d6123c6ac336c5777958ef0ba
9nfxtree a64bd95f2fa8031d26595ca101c8b2c58bf6c03d
parent f5b805321fa1a2659ade6548c02e34465a9a0837
author wuxinzao <wuxinzao@huawei.com> 1750765928 +0800
committer wuxinzao <wuxinzao@huawei.com> 1750765928 +0800

修复了门禁告警

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
9_x$tree 02bd0c829271dbca213b11c91a9bfaf20f03b966
parent 0dca445ea14329408c102a67c6c793c291c4190c
author zyx0106 <zhouyuxin15@huawei.com> 1750763450 +0800
committer zyx0106 <zhouyuxin15@huawei.com> 1750763450 +0800

fix which file new apis are in

Signed-off-by: zyx0106 <zhouyuxin15@huawei.com>
8YKxPtree c975c63ba0648ec92bc3cdb7f81fba129bf266eb
parent 6bac3dd7fcee045a94877172e571c793411636e0
parent 83bb0858692a9c86ca2959358830f16e5b898a93
author openharmony_ci <120357966@qq.com> 1750755022 +0000
committer Gitee <noreply@gitee.com> 1750755022 +0000

!3517 modify napi interface notation
Merge pull request !3517 from shilei91/masterǇeextree b8c8288b03f54b1f0cfebcb919cdb2f3b004bc86
parent b70a6aaac045f0a0b6aac469d1ca1b6d6377ce96
author zyx0106 <zhouyuxin15@huawei.com> 1750752609 +0800
committer zyx0106 <zhouyuxin15@huawei.com> 1750752609 +0800

fix interface description

Signed-off-by: zyx0106 <zhouyuxin15@huawei.com>
ΦZ^x	tree 67d374cc1c96b9b39e71f4c28c1dc813d2a9c53f
parent 6bac3dd7fcee045a94877172e571c793411636e0
author lzm <linziming2@huawei.com> 1750751161 +0800
committer lzm <linziming2@huawei.com> 1750751161 +0800

编码同步接口

Signed-off-by: lzm <linziming2@huawei.com>
Wџxtree 8c2eab24bf3f9ea9dd94400ea29ded8e4e7e651b
parent 6bac3dd7fcee045a94877172e571c793411636e0
author wuxinzao <wuxinzao@huawei.com> 1750749323 +0800
committer wuxinzao <wuxinzao@huawei.com> 1750749323 +0800

增加了saveCookie的ndk接口

Signed-off-by: wuxinzao <wuxinzao@huawei.com>
,bxtree 5d9543066f4eab5bee1aae2e2685b007ae3b371c
parent 6bac3dd7fcee045a94877172e571c793411636e0
author zyx0106 <zhouyuxin15@huawei.com> 1750749034 +0800
committer zyx0106 <zhouyuxin15@huawei.com> 1750749034 +0800

增加响度接口

Signed-off-by: zyx0106 <zhouyuxin15@huawei.com>
o:[ƘxXtree 766ef72795b18530c8d625da5cc278f04861ea90
parent 970199ef2f7c05de3bb8bd9d95ad110306327f7f
parent c3ba27e2ed03d255eabb1c856d73265fda858b9d
author openharmony_ci <120357966@qq.com> 1750730666 +0000
committer Gitee <noreply@gitee.com> 1750730666 +0000

!3537 [RGBA1010102]新增像素格式枚举
Merge pull request !3537 from 万之凡/masterwrKxNtree d4dbd85607f0477044f1aba3e740cff99d6daa3e
parent 970199ef2f7c05de3bb8bd9d95ad110306327f7f
author 刘永凯 <liuyongkai2@huawei-partners.com> 1750692101 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1750692101 +0800

touchTestDone add description of params

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
*v1x5tree b7c4b5ebc000e85fa2cbfc2b7a0e0fb3297fe995
parent 48e1a8aa7548a7b9abe427e6479906ed6d758355
author 杨俊晖 <yangjunhui10@huawei.com> 1750681174 +0000
committer Gitee <noreply@gitee.com> 1750681174 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: 杨俊晖 <yangjunhui10@huawei.com>ֿiTxttree 9ce64d8c5f9371a6d0cee30748aa45a61fe0f2c6
parent ad3cf52f43e92dcf8f8bd1c7303676c7bbd742ac
parent 9b925e395c380b0e1ae2ae933e34ac397e48689a
author openharmony_ci <120357966@qq.com> 1750679480 +0000
committer Gitee <noreply@gitee.com> 1750679480 +0000

!3545 OH_ArkUI_SetTouchTestDoneCallback add param description
Merge pull request !3545 from 刘永凯/touchTestDoneAddw6xFtree 285fd299c86f633697e7293dfe16b10c60f995e9
parent af548c9d1b9b380799c4e2e3f4f8caf7c64d4b64
parent 4c641d5ca6a999548c5532a25ab83af25354ade1
author openharmony_ci <120357966@qq.com> 1750679460 +0000
committer Gitee <noreply@gitee.com> 1750679460 +0000

!3543 Distance add unit Px
Merge pull request !3543 from 刘永凯/addPXbdx^tree 99e6cdfd3f4a445a40248a88cb3293c3e8642211
parent edbbd8ce52c8b36cde7a0e642f60cb2724e29128
author 刘永凯 <liuyongkai2@huawei-partners.com> 1750668250 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1750668250 +0800

OH_ArkUI_SetTouchTestDoneCallback add param description

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
{xKtree c0f97cccac802b9e9eee6c80e4d1ef9c441873fe
parent edbbd8ce52c8b36cde7a0e642f60cb2724e29128
parent f8b0f55454e60d0382c473547326b36e6fac8ed2
author openharmony_ci <120357966@qq.com> 1750665194 +0000
committer Gitee <noreply@gitee.com> 1750665194 +0000

!3530 fix dialog shadow
Merge pull request !3530 from zhanghang/dialog_shadowMejx;tree 3f7d941a2dee11fd4809c24fafe127c5d304f7c0
parent edbbd8ce52c8b36cde7a0e642f60cb2724e29128
author 刘永凯 <liuyongkai2@huawei-partners.com> 1750663008 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1750663008 +0800

Distance add unit Px

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
NnЛx;tree 852b7a3b35cd40b521b7849a8bdc1f075332da33
parent 25617a21b7b6fa1edf1a1053fc6cfd17f3a6ab47
author zhanghang <zhanghang160@huawei-partners.com> 1750402105 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1750656661 +0800

fix dialog shadow

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
H5dאxPtree 3624a94b2dd43d15ea4529eda049366da5bd5db6
parent e1f9b4e0feedb0fd27d1cb7715aa964cf6aa5648
parent dbd804a2858fa5d5de0742b86e154e34181a4e78
author openharmony_ci <120357966@qq.com> 1750654451 +0000
committer Gitee <noreply@gitee.com> 1750654451 +0000

!3462 修改swiper注释信息
Merge pull request !3462 from liuyanzhi2020/liu0616rlx?tree b0693a1fae1c5e63b00f68004a71833e4bc00144
parent 8e70632fd17e4bc2da7569a4aa0df08023aaaf4c
parent d1048efbc076a240576b7e79a8a6f3d959ff4f1a
author openharmony_ci <120357966@qq.com> 1750649275 +0000
committer Gitee <noreply@gitee.com> 1750649275 +0000

!3540 darwin sdk fixed
Merge pull request !3540 from A_Wei/master8_Wx`tree b0693a1fae1c5e63b00f68004a71833e4bc00144
parent 8e70632fd17e4bc2da7569a4aa0df08023aaaf4c
author A_Wei <lidawei30@huawei.com> 1750645583 +0800
committer A_Wei <lidawei30@huawei.com> 1750645583 +0800

darwin sdk fixed

issue:https://gitee.com/openharmony/interface_sdk_c/issues/ICH088?from=project-issue

Signed-off-by: A_Wei <lidawei30@huawei.com>
 pHx"tree 637ad7ee5854ad9b25d31e7850cba9dccf534213
parent 24701a6abe24cb7f9f8af6be8f8b358d712a86d7
author 万之凡 <wanzhifan1@huawei.com> 1750642828 +0800
committer 万之凡 <wanzhifan1@huawei.com> 1750642828 +0800

[RGBA1010102]注释bugfix

Signed-off-by: 万之凡 <wanzhifan1@huawei.com>
/d˗xGtree aa163941e6b396f8370495fbc9e1ef95c4d58213
parent 74a7cc2727625d6cd3ad6d5b95ad207d31112cfe
parent e2856564e48c72525a1fd844dcef573a638dd2ae
author openharmony_ci <120357966@qq.com> 1750575722 +0000
committer Gitee <noreply@gitee.com> 1750575722 +0000

!3539 fix async http space
Merge pull request !3539 from 庞宇成/masterex#tree aa163941e6b396f8370495fbc9e1ef95c4d58213
parent 74a7cc2727625d6cd3ad6d5b95ad207d31112cfe
author 庞宇成 <pangyucheng@huawei.com> 1750522051 +0800
committer 庞宇成 <pangyucheng@huawei.com> 1750522198 +0800

fix read sync no symbol

Signed-off-by: 庞宇成 <pangyucheng@huawei.com>
_dwxFtree c28d0ef298b0d2406aab687666be53f0521055c3
parent b8ec467f407742740b8ab360d1565b4ddf83bf2c
parent efbb35db06efd209a65227e9a793a6eb5717c01c
author openharmony_ci <120357966@qq.com> 1750513145 +0000
committer Gitee <noreply@gitee.com> 1750513145 +0000

!3536 add getpointerlocation
Merge pull request !3536 from Rosita/masterĸbxxRtree b5970acc929b032e8ee123f987be9df6a086f029
parent 1504d5be4c81f053ec4e8c8b23fa8aebd8fd75ff
parent cacfcaf3cc3a8f891c75b5db222b36d2a3c25a4f
author openharmony_ci <120357966@qq.com> 1750512209 +0000
committer Gitee <noreply@gitee.com> 1750512209 +0000

!3486 录屏框架新增设置B帧接口
Merge pull request !3486 from xzcbob/masterWt$xMtree cfb84e0d3f3a41251ef98ff0809a5c2aa0ede4ab
parent 039cda3f572e880d227c28e2a22d6b23cc474441
parent e5095a9cd818658cc7fd0a6253a00d6f4def8adf
author openharmony_ci <120357966@qq.com> 1750506512 +0000
committer Gitee <noreply@gitee.com> 1750506512 +0000

!3491 CAPI反色管理器
Merge pull request !3491 from 陈一阁/color-convert?lÒxBtree ac46e14225c27666aea8486cfe1fba1dfb6174fb
parent 1e6c06b45547c9e0a5e4f802601e985f1ecca462
parent 5c8f6bc7abaa4c316e82a928b73a8cb4126f8583
author openharmony_ci <120357966@qq.com> 1750496196 +0000
committer Gitee <noreply@gitee.com> 1750496196 +0000

!3391 add blankless ndk api
Merge pull request !3391 from mmx/masterv`x,tree 05d3ff80c113a36a8d81e619a40eb14be124287e
parent 0454a48e1fb664ce2ccec0efa0c415d1e0ba2962
author lintaicheng <lintaicheng1@huawei.com> 1749087530 +0800
committer lintaicheng <lintaicheng1@huawei.com> 1750494786 +0800

add audio decoder g711a

Signed-off-by: lintaicheng <lintaicheng1@huawei.com>
Zr_x.tree 976a020a07cba93443c74990187be57ac17589b1
parent 1e6c06b45547c9e0a5e4f802601e985f1ecca462
author 万之凡 <wanzhifan1@huawei.com> 1750490740 +0800
committer 万之凡 <wanzhifan1@huawei.com> 1750490740 +0800

[RGBA1010102]新增像素格式枚举

Signed-off-by: 万之凡 <wanzhifan1@huawei.com>
1`mޛx+tree 02e9a52e2f486865ea5c80c8257553a436778cbf
parent e4190569f3db5cb7af25c0e718d63930b40700ab
author Rosita <wangjing596@huawei.com> 1750480297 +0000
committer Gitee <noreply@gitee.com> 1750480297 +0000

update multimodalinput/kits/c/ohinput.ndk.json.

Signed-off-by: Rosita <wangjing596@huawei.com>j^xtree 680b5eae72febbc9f61acdd14995108d60ce7c05
parent 1e6c06b45547c9e0a5e4f802601e985f1ecca462
author Rosita <wangjing596@huawei.com> 1750479988 +0000
committer Rosita <wangjing596@huawei.com> 1750479988 +0000

add getpointerlocation

Signed-off-by: Rosita <wangjing596@huawei.com>
 WxQtree 63752f33080634e091cfb444b30306bf1dedd5a6
parent 120f9e529c2cdcd674634c850f06c7da8a1a87a5
parent 1d36de2630d4237e5f0fa64ffb587a6e943d5591
author openharmony_ci <120357966@qq.com> 1750476940 +0000
committer Gitee <noreply@gitee.com> 1750476940 +0000

!3478 虚拟屏支持自动跟随旋转
Merge pull request !3478 from 杰尼/master(rx*tree 5fcecbe3c3e3e04e1ee4dec5c3c3620efc3c1fb0
parent 4269821c935533171e10d75476b538757e67c979
author some-one-mmx <maominxian1@huawei.com> 1749648771 +0800
committer some-one-mmx <maominxian1@huawei.com> 1750474074 +0800

add blankless ndk api

Signed-off-by: some-one-mmx <maominxian1@huawei.com>
q^xMtree 9560868d482fa7f44dcfdd697d29e3f4e5e339fa
parent 6adf8f1be7548d7972575b200393f5c84cb63f60
parent 49e85eface2b2126ef5c287f864cf6fc6458856c
author openharmony_ci <120357966@qq.com> 1750428709 +0000
committer Gitee <noreply@gitee.com> 1750428709 +0000

!3514 effect sdk 文档注释整改
Merge pull request !3514 from yanghf/master*sj̖xFtree bceb39f424c83a08f3e59f787915c80aadae245b
parent 425299cc5cabe79495e40e32fa65b99c29b350eb
parent c1c3f73451e9b13c85d25f2d68d72ef63e463ecc
author openharmony_ci <120357966@qq.com> 1750417351 +0000
committer Gitee <noreply@gitee.com> 1750417351 +0000

!3524 add_sync_read_https
Merge pull request !3524 from 庞宇成/masterfxHtree cb0dbf019f18bd391b449939f308544777741397
parent c9ed0eebec64af807663a403c36732b36ffc6cb7
parent 6453f9cd35bdc3a67b23bfb1428257e746d547f6
author openharmony_ci <120357966@qq.com> 1750406714 +0000
committer Gitee <noreply@gitee.com> 1750406714 +0000

!3504 默认值描述修改
Merge pull request !3504 from 张荣杰/masterclx&tree c5da6e76a84203f6065b762f53d0f30469a1cad8
parent db30b95f1203b68a61dfc971d0785cd709c8bd73
author xzcbob <xuzhangchi@huawei.com> 1750081835 +0000
committer xuzhangchi <xuzhangchi@huawei.com> 1750405548 +0800

录屏框架新增设置B帧接口

Signed-off-by: xzcbob <xuzhangchi@huawei.com>
{iWx^tree a9a9966c14828f220bf91efbe81dd6cb9950a248
parent 7e89fa418aa7229e4fc419c72b299aee7671a8eb
parent 20710ff78029374ccde8306a43a35706c0a04d71
author openharmony_ci <120357966@qq.com> 1750403984 +0000
committer Gitee <noreply@gitee.com> 1750403984 +0000

!3488 请求注入弹框接口和查询授权结果接口-去掉syscap SystemCapability.MultimodalInput.Input.Core
Merge pull request !3488 from qianyong325/masterxQtree fdacf1123fbd92beb4aacf7b5daf7431a28004f6
parent 25617a21b7b6fa1edf1a1053fc6cfd17f3a6ab47
parent b3ee8115dfa4de1552a1f93f15c9dce8f618b9e0
author openharmony_ci <120357966@qq.com> 1750402097 +0000
committer Gitee <noreply@gitee.com> 1750402097 +0000

!3485 LLVM packaging Python modification
Merge pull request !3485 from A_Wei/masterh gԟx`tree c3b51ac50c4f6a84904cb457eeee818db237a01f
parent 702d2d5966d4e409197c1338989018898987d297
parent 097f4fb66dce58a2ddd339dc5d41b6c23b8d482e
author openharmony_ci <120357966@qq.com> 1750394882 +0000
committer Gitee <noreply@gitee.com> 1750394882 +0000

!3342 【ArkUI-架构演进】ArkUI控件树创建支持在独立虚拟机上下文中使用声明式控件接口API
Merge pull request !3342 from 刘永凯/bossեlx_tree c3b51ac50c4f6a84904cb457eeee818db237a01f
parent 702d2d5966d4e409197c1338989018898987d297
author 刘永凯 <liuyongkai2@huawei-partners.com> 1749092561 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1750392247 +0800

api

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
Change-Id: Idf2e8ba4665fd4c42c4d215eb682b4b0996e8cce
v#xtree 9026fc7d1e2d943f3237f0dc935a94d6b7b70624
parent db30b95f1203b68a61dfc971d0785cd709c8bd73
author liyang <liyang782@huawei.com> 1750078534 +0000
committer liyang <liyang782@huawei.com> 1750389291 +0800

虚拟屏支持自动跟随选择

Signed-off-by: liyang <liyang782@huawei.com>
bxtree 640410c1582e8ef6ac2c990fd1277ff243f8a743
parent 00b1c9c617c32369c2823eb49d2bc59b10d9c5dd
author 庞宇成 <pangyucheng@huawei.com> 1750385296 +0800
committer 庞宇成 <pangyucheng@huawei.com> 1750385650 +0800

add_sync_read_https

Signed-off-by: 庞宇成 <pangyucheng@huawei.com>
ВcxRtree 4979a82455af9eb6175e7d4baeba780d02a7cc0c
parent 00b1c9c617c32369c2823eb49d2bc59b10d9c5dd
parent 89cb3aa6f191feb88a4f61220265a34c82a47c36
author openharmony_ci <120357966@qq.com> 1750384821 +0000
committer Gitee <noreply@gitee.com> 1750384821 +0000

!3322 全局坐标系适配
Merge pull request !3322 from wangweiyuan/global_displayRmxMtree 20c9ae33819373b6039616698157c2ab0149ff97
parent 86406ebb6bc21e8f4d8eec2259fc9e79221f42b1
author shilei <shilei91@huawei.com> 1750319254 +0800
committer shilei <shilei91@huawei.com> 1750345371 +0800

modify napi interface notation

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I6f80981cf536c532bfe56eb572357accfc4cf3f5
e|xAtree 50b0e9a51369a2365c0b7f9cf9686eb425e5837a
parent 8b9800cea0ef1d56cfb841eca40de53bbdc8bd36
parent 845242f398e6ae70b8dd8f1e8c3e2d8e8c1be528
author openharmony_ci <120357966@qq.com> 1750338193 +0000
committer Gitee <noreply@gitee.com> 1750338193 +0000

!3520 rotatefix
Merge pull request !3520 from wangweiyuan/rotatefixbxTtree 94a53bcaa2ddf48b0f0156a3e8fae5fe64f9f3ea
parent d1898b49b627bd844062ffc9fcf28a48d3b83d8d
parent 4b57fa85237918d7d21909f694f845df8488c9dc
author openharmony_ci <120357966@qq.com> 1750326584 +0000
committer Gitee <noreply@gitee.com> 1750326584 +0000

!3497 修复蓝黄区注释不一致问题
Merge pull request !3497 from Jarvis/mastertxtree 949b391f88f5bc90001dbe7535b73dc76ec72c2e
parent d1898b49b627bd844062ffc9fcf28a48d3b83d8d
author zhuyinlin <1085905529@qq.com> 1750326227 +0800
committer zhuyinlin <1085905529@qq.com> 1750326227 +0800

syscap注释修改

Signed-off-by: zhuyinlin <1085905529@qq.com>
4Sx+tree 43f44fce8b1ef72e7ca1d548c5402a9331afd8b6
parent a2bb9e1d488529c0e7f8305985f778512d1352ff
author oh_ci <maguangsheng1@huawei.com> 1750321200 +0000
committer Gitee <noreply@gitee.com> 1750321200 +0000

update .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md.

Signed-off-by: oh_ci <maguangsheng1@huawei.com>u\OxUtree 466788c58251457a15258a3eb2f4c2091bfbaed0
parent a61e6335fe1c1d70cef29f471cab884b14d44552
parent 61abe42a4d53f27cc84fb25abe5cc228af5565c9
author openharmony_ci <120357966@qq.com> 1750319434 +0000
committer Gitee <noreply@gitee.com> 1750319434 +0000

!3512 新增api需要补充@since标签
Merge pull request !3512 from wangwenjun/masterp xZtree f02b93eba9c0662e846c5dc8e390521c4465783f
parent 86406ebb6bc21e8f4d8eec2259fc9e79221f42b1
parent 57a028d65beae91e70b929c8b4f2ad46d89ab6f4
author openharmony_ci <120357966@qq.com> 1750319241 +0000
committer Gitee <noreply@gitee.com> 1750319241 +0000

!3510 add syncLoad for list grid waterflow
Merge pull request !3510 from 李俊峰/sync_load09l*x^tree 3cfe9029028977f4eb2d63ac4e6cbc8d8a3f6aaa
parent 4af033539cd65e37fc0ac1739b9093e7329617c4
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1748835177 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1750317606 +0800

全局坐标系适配

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

json文件中补充新增接口

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

添加注释

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

补充新接口

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

根据翻译结果修改注释

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
fxdtree 60ea01834686b122037857fc37f28abeaefb8418
parent 88b773516d6e32730a36299aa8ac2422a5f6762b
parent 3c43ce3f16480fba069e3b510a1fb91b16c25476
author openharmony_ci <120357966@qq.com> 1750317434 +0000
committer Gitee <noreply@gitee.com> 1750317434 +0000

!3225 增加支持copy段落样式、文本样式、阴影
Merge pull request !3225 from lemon/newcopy|Fxytree e7cd61a3463031487592d129a5802a2f4111758c
parent 0bb22d3c1d9b8c34a277e7c9d0fdf0955d9fa385
parent 06fcc7bc6d88cf60fd0643ecb5d669f7f9195794
author openharmony_ci <120357966@qq.com> 1750304903 +0000
committer Gitee <noreply@gitee.com> 1750304903 +0000

!3437 OH_AVDataSource回调支持传递用户自定义数据 API
Merge pull request !3437 from xulei123/OH_AVDataSource_APIxtree ee4ab21bd57c81d7023781915a89da00f04b984a
parent 0bb22d3c1d9b8c34a277e7c9d0fdf0955d9fa385
author yanghf <yanghefei1@huawei.com> 1750304373 +0800
committer yanghf <yanghefei1@huawei.com> 1750304373 +0800

effect sdk 文档注释整改

Signed-off-by: yanghf <yanghefei1@huawei.com>
_Ax?tree 410ee66b837d5a228a4cd66c128cbb23ffdd8be6
parent 0bb22d3c1d9b8c34a277e7c9d0fdf0955d9fa385
author wangwenjun <wangwenjun59@h-partners.com> 1750303630 +0800
committer wangwenjun <wangwenjun59@h-partners.com> 1750303630 +0800

新增api需要补充@since标签

Signed-off-by: wangwenjun <wangwenjun59@h-partners.com>
qox6tree 0129c8620bbacbc38675cf82454ef26dfe9da8c3
parent 0bb22d3c1d9b8c34a277e7c9d0fdf0955d9fa385
author zcdqs <junfeng.lijunfeng@huawei.com> 1750301414 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1750301414 +0800

add syncLoad for list grid waterflow

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
dxHtree 4bbdf6c0c18b871809faf1b23026c705f3ee0105
parent 4fbe35c678f03f066eb975cccea0c4fcd7775059
parent 879ae4f05794a1f9aec0385d182adb28c90b7f9c
author openharmony_ci <120357966@qq.com> 1750245027 +0000
committer Gitee <noreply@gitee.com> 1750245027 +0000

!3494 build.gn add vulkan
Merge pull request !3494 from ZhangLiang/updata4bx0tree 9f18acf0b58c7d3f7e987db3af1646e4149e1d4b
parent c079e29f4689030e837736b65a8148dcffbafcf3
author zhangrongjie <zhangrongjie4@huawei.com> 1750236127 +0800
committer zhangrongjie <zhangrongjie4@huawei.com> 1750237458 +0800

默认值描述修改

Signed-off-by: zhangrongjie <zhangrongjie4@huawei.com>
[j	xstree de60285a14f458fe7acac1adf96efb9d75a96c58
parent 84d0e3dbe439169a3ae20433f77febc3d39f52de
author A_Wei <lidawei30@huawei.com> 1750128983 +0800
committer A_Wei <lidawei30@huawei.com> 1750236659 +0800

LLVM packaging Python modification

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/ICFOQ4?from=project-issue

Signed-off-by: A_Wei <lidawei30@huawei.com>
1xWxKtree 1aaf781500e1d95d43685ffd84d82397e69c6051
parent c079e29f4689030e837736b65a8148dcffbafcf3
parent a51e3c3545f3dccea0474cd89c7f7e82076dde56
author openharmony_ci <120357966@qq.com> 1750236164 +0000
committer Gitee <noreply@gitee.com> 1750236164 +0000

!3276 视频解码器同步模式sdk
Merge pull request !3276 from lzm/masterlxItree 4b83766184c51e7590606f208f98ccdda10aab1d
parent 26767957de0b700c3a4a63374d1543241eb62784
parent a27539cfb3c1182ff6f6f55974d41d36e43f7e3c
author openharmony_ci <120357966@qq.com> 1750234537 +0000
committer Gitee <noreply@gitee.com> 1750234537 +0000

!3316 白平衡接口注释修改
Merge pull request !3316 from wang/masterkBx'tree 77fcf45da389adef722c03ad7d807e8e2a686d6e
parent e8ceaa8c7ca719fc35b07801d3a358e3eba59aa5
author xulei123 <xulei272@huawei.com> 1750231243 +0000
committer Gitee <noreply@gitee.com> 1750231243 +0000

update multimedia/av_codec/native_avsource.h.

Signed-off-by: xulei123 <xulei272@huawei.com>"]ox+tree e01193e83d4806566f65a91ad07251a676f6cd02
parent 5372209c2e1bbf8e18c20b8b89f4b28caecc6d01
author xulei123 <xulei272@huawei.com> 1750230949 +0000
committer Gitee <noreply@gitee.com> 1750230949 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: xulei123 <xulei272@huawei.com>3!]%x0tree f0bc02563f8ff4540bf1b9468f2923f8bbe1fdeb
parent 7ec00bdf255d119a499285bd2fa9811e02698bce
author Jarvis <sunqingqiang@huawei.com> 1750229277 +0800
committer Jarvis <sunqingqiang@huawei.com> 1750229277 +0800

删除多余空格，与黄区代码对齐

Signed-off-by: Jarvis <sunqingqiang@huawei.com>
gqx^tree b0735e56244e81852ba58228b7159e9b9b912929
parent ff59723c6e6d07c22d2cd27c7b7bb0fb05f8022e
parent e6a7c513d96b30c1d181464f9f71e09398636974
author openharmony_ci <120357966@qq.com> 1750228780 +0000
committer Gitee <noreply@gitee.com> 1750228780 +0000

!3477 新增GIF解码指定帧NDK接口
Merge pull request !3477 from baosiyuan/release_gif_0616Oqvx*tree 8eadf28521a1110959537b795f552c7dbd054326
parent ff59723c6e6d07c22d2cd27c7b7bb0fb05f8022e
author Jarvis <sunqingqiang@huawei.com> 1750227545 +0800
committer Jarvis <sunqingqiang@huawei.com> 1750227595 +0800

修复蓝黄区注释不一致问题

Signed-off-by: Jarvis <sunqingqiang@huawei.com>
mk?x4tree 388f21233444d651f122afd0519731531ec1f7fc
parent 9b21d6fea507249a7b7cb913ca721f462d3a5eb0
author ZhangLiang <zhangliang335@h-partners.com> 1750218413 +0800
committer ZhangLiang <zhangliang335@h-partners.com> 1750219730 +0800

build.gn add vulkan

Signed-off-by: ZhangLiang <zhangliang335@h-partners.com>
 `x@tree a46d705bf6824ace0d4a8f57aaedad408b53a424
parent 0b79414e2f5e5878c67006edfae089d54875029c
author eager1 <chenyige2@huawei.com> 1750213533 +0800
committer eager1 <chenyige2@huawei.com> 1750213678 +0800

color inverter

Signed-off-by: eager1 <chenyige2@huawei.com>
Change-Id: Ib5ca78ed96d996be71e153d141443b480e04408b
`vx-tree 480416b4ea1cc300af38e3aff7e7426f99445e66
parent ff59723c6e6d07c22d2cd27c7b7bb0fb05f8022e
author qianyong325 <qianyong15@h-partners.com> 1750209556 +0800
committer qianyong325 <qianyong15@h-partners.com> 1750209556 +0800

满足接口新规

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
dix^tree 21afc213f50fd0cebc084b3a96a99f58b5e091fd
parent 0b79414e2f5e5878c67006edfae089d54875029c
parent 6fd8a431ef4885bd755eed078cfa668705f06ed3
author openharmony_ci <120357966@qq.com> 1750168234 +0000
committer Gitee <noreply@gitee.com> 1750168234 +0000

!3351 Add AVTranscoder NDK interface.
Merge pull request !3351 from zhangwt3652/avtranscoder_ndkjHxtree 05369c26c3998625a99bafb1fc12b2005c5b35c9
parent e90cc8f0946b15c9302a654ae6d83f6e82c057fb
author lzm <linziming2@huawei.com> 1750151428 +0800
committer lzm <linziming2@huawei.com> 1750151428 +0800

删除编码同步接口

Signed-off-by: lzm <linziming2@huawei.com>
[ɖxtree 34e0b07346aa5e91cfc5c56b107d8ed80996d94e
parent d38a751f7d222c39dd00a0bf78f8527b832a27d2
author lzm <linziming2@huawei.com> 1750147257 +0800
committer lzm <linziming2@huawei.com> 1750147257 +0800

同步模式sdk

Signed-off-by: lzm <linziming2@huawei.com>
8TxYtree cf3b1c86e3c744f8215ba5f10894bca07cec915e
parent 2bd60499b1d3a2ca97e888608caa8bff5a3632bd
parent 2d563e1599d6f6a3b4725fac48fa63c8bff0e0e6
author openharmony_ci <120357966@qq.com> 1750142452 +0000
committer Gitee <noreply@gitee.com> 1750142452 +0000

!3484 fix:capi头文件删除重复的kit标签
Merge pull request !3484 from 沈康/master2cvxxWtree 7aa9aa939b9e9dc232beb0caf7e08cf02e6a1de9
parent 84d0e3dbe439169a3ae20433f77febc3d39f52de
author qsftw <gaoqiangsheng@huawei.com> 1750135876 +0000
committer qsftw <gaoqiangsheng@huawei.com> 1750135876 +0000

fix drawing path description

Signed-off-by: qsftw <gaoqiangsheng@huawei.com>
Change-Id: I2767eecf0987f3a78381e6f4e81702a92e822779
\tlxhtree 6458cea41b548367169b4e3530b3034088825481
parent 84d0e3dbe439169a3ae20433f77febc3d39f52de
parent 4acfea7e25f970b15a9e7793fc253a8b8bf87f7b
author openharmony_ci <120357966@qq.com> 1750130848 +0000
committer Gitee <noreply@gitee.com> 1750130848 +0000

!3392 请求注入弹框接口和查询授权结果接口
Merge pull request !3392 from qianyong325/masterQx(tree 674de2e21d0dc651fa0462ec3dd4bcd19b673af3
parent 3ffd52c13749f8fd140a59720cee70ed073c8ba2
author shenkang <shenkang6@huawei.com> 1749785178 +0800
committer 沈康 <shenkang6@huawei.com> 1750128365 +0000

fix:capi头文件删除重复的kit标签
Signed-off-by: shenkang <shenkang6@huawei.com>2k:x:tree 4a3540ec0fab42b8ddf0b3081bbf04258a723d7b
parent 2bbeb4c589cee5b3bc1da98b42473b61270b8c60
author zhangwt3652 <zhangwenting15@huawei.com> 1749198761 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1750127987 +0800

Add AVTranscoder NDK interface.

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
hMbxstree bfe90217836ff2c644e32e44d33d67ca8ce72df3
parent d649a9749e1ad4023b7a2023b72aac5fc09aed1d
parent 84d0e3dbe439169a3ae20433f77febc3d39f52de
author lemon <caimengyu2@huawei.com> 1750124430 +0000
committer Gitee <noreply@gitee.com> 1750124430 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into newcopy

Signed-off-by: lemon <caimengyu2@huawei.com>$ZvxItree c8b09ac364fd216b33f0340f8505293fc478ed7a
parent db30b95f1203b68a61dfc971d0785cd709c8bd73
parent 86d73cb168fb6c316bb7c23e73ec62eb3c3e3392
author openharmony_ci <120357966@qq.com> 1750085242 +0000
committer Gitee <noreply@gitee.com> 1750085242 +0000

!3471 修改api参数名
Merge pull request !3471 from dreamyhhh/master0612gx$tree 38be0f3ebf4ce7a720f8d3698c220126367216d8
parent 0187cd52ac99f2b1938ffe6fd40916a4afd033f9
author qianyong325 <qianyong15@h-partners.com> 1750084944 +0800
committer qianyong325 <qianyong15@h-partners.com> 1750084944 +0800

checkcode

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
HZx$tree 8f335b2ebf8c13098710c141d610960e88b63876
parent 074997a5f4a6071934839f914bf27145afd93963
author qianyong325 <qianyong15@h-partners.com> 1750082338 +0800
committer qianyong325 <qianyong15@h-partners.com> 1750082338 +0800

codecheck

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
׏Xݖx6tree 8949f17cd7c02d898cda5b3670fa342e718ae8a9
parent db30b95f1203b68a61dfc971d0785cd709c8bd73
author baosiyuan <baosiyuan@huawei.com> 1750076700 +0800
committer baosiyuan <baosiyuan@huawei.com> 1750076700 +0800

Add OH_ImageSourceNative_CreatePictureAtIndex().

Signed-off-by: baosiyuan <baosiyuan@huawei.com>
Hcx-tree 31a5fb0aba440fcc67296366d8ff55a9f6b5c5cc
parent c24bf3ac3ae00c4d6dcdb0289e440afcfe7045fa
author qianyong325 <qianyong15@h-partners.com> 1750073990 +0800
committer qianyong325 <qianyong15@h-partners.com> 1750073990 +0800

修改检视意见

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
e}xAtree fe64eb538c29ece4e6f199c544a124a9abfe00d0
parent 9a97b8b50ae755ccfa6086da8a2e8f42dafca804
parent 6927557bd5d5ecaa1f8e22650e314d299ce4b99d
author openharmony_ci <120357966@qq.com> 1750062411 +0000
committer Gitee <noreply@gitee.com> 1750062411 +0000

!3427 ffrt add fiber
Merge pull request !3427 from wangyulie/masterB]axtree a6ac17dd2114f3729caaad13ffcc7a0255e2d2df
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author dreamyhhh <hangmengxin@huawei.com> 1750059342 +0000
committer dreamyhhh <hangmengxin@huawei.com> 1750059342 +0000

修改api参数名

Signed-off-by: dreamyhhh <hangmengxin@huawei.com>
a6xtree f35b932722cd3dda5c1c7e2cfc574c1cf681522d
parent 78ab845c9a756e6f69b16e09060594362b115bcd
author wangyulie <wanglieyu@126.com> 1750053464 +0800
committer wangyulie <wanglieyu@126.com> 1750053464 +0800

add fiber

Signed-off-by: wangyulie <wanglieyu@126.com>
2[OxYtree 60fb25f356f05460818b92dfb8caf943d03e5527
parent 4269821c935533171e10d75476b538757e67c979
parent e866f6b03bc1cdbc4802a793ddfbf1e529a18428
author openharmony_ci <120357966@qq.com> 1750049073 +0000
committer Gitee <noreply@gitee.com> 1750049073 +0000

!3335 add setInitRect interface to pip ndk
Merge pull request !3335 from wangyaohui/setRectgxtree 713fb88ed5d647891a86bdc3b5e4439c1d72361a
parent b1be85c0487790fe9eb0dfe4297b6875828b4082
author wangyulie <wanglieyu@126.com> 1750046119 +0800
committer wangyulie <wanglieyu@126.com> 1750046119 +0800

add fiber

Signed-off-by: wangyulie <wanglieyu@126.com>
Oixtree 80d622f73064348aa6053ea2830efbda74fd2c61
parent d82b45fd78ffb2c2be4a8770e3d537db30664c33
author wangyulie <wanglieyu@126.com> 1750044623 +0800
committer wangyulie <wanglieyu@126.com> 1750044623 +0800

add fiber

Signed-off-by: wangyulie <wanglieyu@126.com>
)OƜx|tree c6ecf2cda1cfe9029bc2902ce81d703d2fdf61f4
parent 3ffd52c13749f8fd140a59720cee70ed073c8ba2
parent c6c2af7fc46a624662fde5b16a210e53a29e3004
author openharmony_ci <120357966@qq.com> 1750043706 +0000
committer Gitee <noreply@gitee.com> 1750043706 +0000

!3319 一致性同步 add OH_NativeArkWeb_RegisterAsyncThreadJavaScriptProxy
Merge pull request !3319 from liyongzhuang/master|xGtree 706fe6764b5e7e3c4752ab57f9ea6a52c8a849b2
parent dec5a23205fac65e0c284333560ebbdefa7c9de5
parent eabd3b24b2760a45a28b4cb7877267370085016c
author wangyulie <wanglieyu@126.com> 1750043093 +0800
committer wangyulie <wanglieyu@126.com> 1750043093 +0800

Merge branch 'master' of https://gitee.com/wangyulie/interface_sdk_c_hhf
ue=xtree 7e36d3b57a046e12377ae077a818b914b1f16729
parent 68496d6c130b42307202b147ad090f042486d2aa
author wangyulie <wanglieyu@126.com> 1750043034 +0800
committer wangyulie <wanglieyu@126.com> 1750043034 +0800

add fiber interface

Signed-off-by: wangyulie <wanglieyu@126.com>
QҔx$tree c9e5dbe8b907380871677156cbee0a79993ad4ad
parent 2a5d315b83793edf8b0d310519576278454ceafd
author y30025806 <yangjunhui10@huawei.com> 1750042114 +0800
committer y30025806 <yangjunhui10@huawei.com> 1750042114 +0800

modify interface note

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
W8xtree 157c0747959f4da4d9850ba46d2fb8ac66b4c60e
parent 3ffd52c13749f8fd140a59720cee70ed073c8ba2
author liuyanzhi <liuyanzhi3@huawei.com> 1750034265 +0800
committer liuyanzhi <liuyanzhi3@huawei.com> 1750034265 +0800

fix swiper

Signed-off-by: liuyanzhi <liuyanzhi3@huawei.com>
WBxLtree 07119cd315d2ae3ebfa8e9ec2c6e410a1b20478c
parent 3ac046c1daeb21af47cd7594705fe4c11beafb5f
parent bf9278248876d770a6f8ca51b8963c1b21a830a4
author openharmony_ci <120357966@qq.com> 1749996271 +0000
committer Gitee <noreply@gitee.com> 1749996271 +0000

!3403 [NDK]fix codecheck
Merge pull request !3403 from 刘雅宁/fix_codecheckLg]xQtree 1654df63d13f4a077494e7d3c781bb5cd6990198
parent f3887fbbf032b831ab1316ff20b14fc9928f18e6
parent 3385533ef6b1c6517be617494d7d0a180a6b3b9f
author openharmony_ci <120357966@qq.com> 1749883570 +0000
committer Gitee <noreply@gitee.com> 1749883570 +0000

!3443 删除多余注视
Merge pull request !3443 from chendawei8@huawei.com/masteruknx?tree 62d05e177f5ebbb038fc393558babce9b41d3d16
parent f8ab96d388199d50d7d78127ed033cd3e0a63a51
parent 4ad59c12497d93eb46537caae25d83532a374e9f
author openharmony_ci <120357966@qq.com> 1749814839 +0000
committer Gitee <noreply@gitee.com> 1749814839 +0000

!3402 黄蓝差异
Merge pull request !3402 from hemenghao/master.cxtree fd63158d166229c2d115784dde2c2cfea04897bd
parent cd1f16529fd37803559eea28768342da3f689c9e
author lwt999 <liuwanting5@huawei.com> 1749808243 +0800
committer lwt999 <liuwanting5@huawei.com> 1749808452 +0800

fix syscap

Signed-off-by: lwt999 <liuwanting5@huawei.com>
QRx,tree b89b2013d1f211f6a024355b6e3a2da383d0b3f5
parent f8ab96d388199d50d7d78127ed033cd3e0a63a51
author chendawei8@huawei.com <chendawei18@huawei.com> 1749807860 +0000
committer Gitee <noreply@gitee.com> 1749807860 +0000

删除多余注视

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>2d|xDtree 23663711a530553e54db9a63c47ef2792d851890
parent 609e0945ee2aa9be6b370aea5375cda2ca71ebee
parent a8d45256f88d3e9ea2b47cfa6812e7083339cab8
author openharmony_ci <120357966@qq.com> 1749801946 +0000
committer Gitee <noreply@gitee.com> 1749801946 +0000

!3422 fix inconsistent params
Merge pull request !3422 from zph/masteraxtree 9f357b4c7a750f7c87b0614a35623401af90de5f
parent 609e0945ee2aa9be6b370aea5375cda2ca71ebee
author x00911906 <xulei272@huawei.com> 1749799422 +0800
committer x00911906 <xulei272@huawei.com> 1749799422 +0800

OH_AVDataSource_API

Signed-off-by: x00911906 <xulei272@huawei.com>
Qxtree 8ab5f78a56ac9130469af955eb9630e7a674cd26
parent 7ead94c0af5248bbe97e4f18ca7ed3d06cf06e44
author zph <zhaopenghui8@huawei.com> 1749798420 +0800
committer zph <zhaopenghui8@huawei.com> 1749798420 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
6Qxtree 4cf4046742b4e93e5e9a7e1b7f44315f2c319f89
parent 3f143ae024124f651b5c2a23aed2927cb4c0de05
author zph <zhaopenghui8@huawei.com> 1749796914 +0800
committer zph <zhaopenghui8@huawei.com> 1749796914 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
WPxtree 594e80fc17418127cc27061122d1c98d6b8a6c4d
parent 17ef2e537440f3ec75d830cee2e6185cf474736f
author zph <zhaopenghui8@huawei.com> 1749796281 +0800
committer zph <zhaopenghui8@huawei.com> 1749796281 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
 OxMtree 546245147d554728356ba589a1896875b5cf88b9
parent 579a1862666d57469216ccbcf6da801068ac4aaf
parent 1bcbb8dbf693afd92724b59536a5d82998ab509a
author openharmony_ci <120357966@qq.com> 1749794889 +0000
committer Gitee <noreply@gitee.com> 1749794889 +0000

!3354 update window ndk interface
Merge pull request !3354 from jjxxx123/masterFcxEtree 4250b66cf241742685a916dd76764bd196238c06
parent 4b51424e476bef584a372bb2fade8726c9e32135
parent de1d72e416ce1caebbd84af29f851487869e1c2a
author openharmony_ci <120357966@qq.com> 1749789147 +0000
committer Gitee <noreply@gitee.com> 1749789147 +0000

!3373 fix: Clear the alarm
Merge pull request !3373 from kongwei/mastermC`xZtree 4e2d426a55f01c897929b44021a2b62f1ee3f222
parent dea728d24a6530cec324ef153c34cc94c8894f05
parent c0c8fe4766792471911652638dc8129148df110f
author openharmony_ci <120357966@qq.com> 1749784667 +0000
committer Gitee <noreply@gitee.com> 1749784667 +0000

!3409 整改master oh_input_manager.h 差异
Merge pull request !3409 from 王豪/m-06120001lcx tree 8235d7c437dfec05c7007033a77a6322582883d5
parent 68496d6c130b42307202b147ad090f042486d2aa
author wangyulie <549976081@qq.com> 1749782662 +0000
committer Gitee <noreply@gitee.com> 1749782662 +0000

update resourceschedule/ffrt/c/type_def.h.

Signed-off-by: wangyulie <549976081@qq.com>rQVxtree db9c86136e46de463f3d6755a04452b2587d6d34
parent dea728d24a6530cec324ef153c34cc94c8894f05
author wangyulie <wanglieyu@126.com> 1749782562 +0800
committer wangyulie <wanglieyu@126.com> 1749782562 +0800

add fiber

Signed-off-by: wangyulie <wanglieyu@126.com>
WOuxjtree 51f2c343af1ee7e2df00929cc2f7f1797728532e
parent 5b0d2dbbe9768b1f2cda9d47a48d224d8be2b813
parent ee3fdccad0fcf8077d097c99995b9723129a565b
author openharmony_ci <120357966@qq.com> 1749781652 +0000
committer Gitee <noreply@gitee.com> 1749781652 +0000

!3302 CAPI:支持拖起方延迟提供数据接口
Merge pull request !3302 from wangweiyuan/dragDataLoadingoX}Hxtree eaa48b2f063f8f7738921d1ad1992f343bc4576e
parent 5b0d2dbbe9768b1f2cda9d47a48d224d8be2b813
author zph <zhaopenghui8@huawei.com> 1749778884 +0800
committer zph <zhaopenghui8@huawei.com> 1749778884 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
Px7tree 679fe1b5a97493495e9af44fae3494730bb58691
parent de91a95bee29be40f0abb6479db37fe41dbae1e6
author sd_wu <wudongsheng3@huawei.com> 1740991637 +0800
committer sd_wu <wudongsheng3@huawei.com> 1749739158 +0800

XComponentType.NODE类型相关NDK接口标注废弃

Signed-off-by: sd_wu <wudongsheng3@huawei.com>
nxJtree 18e2bd215a913a85c626e5139f34db5f65f34074
parent c526a59a3250341dc7762aa5f4408c0bf2f8d95f
parent d235da1ee44e5d5d5a55825526314101bf940c37
author openharmony_ci <120357966@qq.com> 1749738757 +0000
committer Gitee <noreply@gitee.com> 1749738757 +0000

!3417 同步错误码描述
Merge pull request !3417 from lcy_lovebug/master\ixetree 18e2bd215a913a85c626e5139f34db5f65f34074
parent c526a59a3250341dc7762aa5f4408c0bf2f8d95f
author lcy_lovebug <lichengyi5@h-partners.com> 1749734011 +0800
committer lcy_lovebug <lichengyi5@h-partners.com> 1749734011 +0800

同步错误码描述

Signed-off-by: lcy_lovebug <lichengyi5@h-partners.com>
Change-Id: I26ed28205210d1bb78bef9dc9c3a0b3c57fe45d6
5vxEtree 17bdb4e9fafe59453f356002648f4d0a85b6028d
parent 941f179aa4d38a86657d7ebdeb3cc9b14936d7df
parent ffc840ecc5772f71658e84b5050001aa62151c4e
author openharmony_ci <120357966@qq.com> 1749733758 +0000
committer Gitee <noreply@gitee.com> 1749733758 +0000

!3387 fix master c
Merge pull request !3387 from weipengyu/fix_master_chkaxRtree bd669223114ba946d610f4d46960b1b0c2bb5f37
parent de91a95bee29be40f0abb6479db37fe41dbae1e6
parent fde825f97ac05fa5a169de51f33136f334fe2fc5
author openharmony_ci <120357966@qq.com> 1749733696 +0000
committer Gitee <noreply@gitee.com> 1749733696 +0000

!3358 修改public-c api接口问题
Merge pull request !3358 from lichaochen/mastermxtree 42db507be94eedade7dd3b8ad72872b8bf5fa050
parent de91a95bee29be40f0abb6479db37fe41dbae1e6
author wanghao1717 <wanghao505@huawei.com> 1749726516 +0800
committer wanghao1717 <wanghao505@huawei.com> 1749726516 +0800

fix

Signed-off-by: wanghao1717 <wanghao505@huawei.com>
aTPxFtree 0cf16b363f06a2db1f2eec471838bbd4f9bd0d58
parent 731ae1155dd17b314ab8f023e7eebb9c3391dc6b
parent 6d34b0b4cc97ee2fa3ab7a9e4f64f404e12dcdc2
author openharmony_ci <120357966@qq.com> 1749717260 +0000
committer Gitee <noreply@gitee.com> 1749717260 +0000

!3253 rotateangle
Merge pull request !3253 from wangweiyuan/rotate_angle-dxtree 0efc17df20bc2768f35044282b11d80e1f3aaa88
parent 731ae1155dd17b314ab8f023e7eebb9c3391dc6b
author liuyaning <liuyaning7@huawei.com> 1749716806 +0800
committer liuyaning <liuyaning7@huawei.com> 1749716806 +0800

[NDK]fix codecheck

Signed-off-by: liuyaning <liuyaning7@huawei.com>
@Yxtree 78534cf8300fdf4eaf78521b4d7037eb7d0f2529
parent 731ae1155dd17b314ab8f023e7eebb9c3391dc6b
author hemenghao <hemenghao2@huawei.com> 1749716558 +0800
committer hemenghao <hemenghao2@huawei.com> 1749716558 +0800

黄蓝差异

Signed-off-by: hemenghao <hemenghao2@huawei.com>
Zܕxtree a11373d433ec2b00a0ac9a7fbba9d0c858aa0754
parent 86d341804c35b08fb93f07f957c1ab22d42a0873
author lcc <lichaochen@huawei.com> 1749451369 +0800
committer lcc <lichaochen@huawei.com> 1749709815 +0800

修改public-c api接口问题

Signed-off-by: lcc <lichaochen@huawei.com>
\=xDtree cd5b8d1ff093f8a1d24730e45633cc579f7517c7
parent c3afd7663a71483622856661df171167abb224c0
parent 655545943c28c596f88b2a0cd523d39227298dba
author openharmony_ci <120357966@qq.com> 1749696852 +0000
committer Gitee <noreply@gitee.com> 1749696852 +0000

!3270 scrolltoc
Merge pull request !3270 from 刘永凯/scrolltomasterZcrxGtree d7aa80a2aa4decfca2d8e1c95090c6666d2a7932
parent 6783f6a08f8cfd4c89ac17b81596a3415825d491
parent efde087200bee301ed21bf2a9385fa13058de019
author openharmony_ci <120357966@qq.com> 1749696667 +0000
committer Gitee <noreply@gitee.com> 1749696667 +0000

!3357 FocusWrapMode枚举类
Merge pull request !3357 from zhanghang/grid`JfQxNtree bc9f465f697f13e584040739fd7f94f9738d70c0
parent 43057d6e0d62d5636ff574dfe1964d145524d0ba
author qianyong325 <qianyong15@h-partners.com> 1749691042 +0800
committer qianyong325 <qianyong15@h-partners.com> 1749691042 +0800

请求注入弹框接口和查询授权结果接口

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
ݒzxOtree 2510b736588b285df4b2f37d00271030f11c70fd
parent 7d8e98f05270ff0f88a3f2e543b4f33509d441b0
parent e3436f6773ee35298a596eb7e6112b05eb2b7db2
author openharmony_ci <120357966@qq.com> 1749647625 +0000
committer Gitee <noreply@gitee.com> 1749647625 +0000

!3361 修改TextBadge相关描述
Merge pull request !3361 from FTL1ght/TextBadgefixGtree 339a32429774f93e9092b43a92477f715aad9717
parent eff16f11a40518cc45be0f19831bc4742cf27032
parent 44a7ac3628ab77ea144ae51f5108b6d0dbabb457
author openharmony_ci <120357966@qq.com> 1749633799 +0000
committer Gitee <noreply@gitee.com> 1749633799 +0000

!3384 modify ffrt ndk json config
Merge pull request !3384 from GQ/master	a&x	tree 362b1d21928a099661d2ea2116aef0f6b4bc04d0
parent eff16f11a40518cc45be0f19831bc4742cf27032
author wpy88 <weipengyu4@huawei.com> 1749633017 +0800
committer wpy88 <weipengyu4@huawei.com> 1749633017 +0800

fix master c

Signed-off-by: wpy88 <weipengyu4@huawei.com>

PxFtree 5863e99057a112e26591eeaca501501213e666b7
parent 8408fe4587c707e45490ad9d746ff1e46e78de16
parent 1b8651547aab89a1293af5656bdc3359576dfd51
author openharmony_ci <120357966@qq.com> 1749627264 +0000
committer Gitee <noreply@gitee.com> 1749627264 +0000

!3350 Request_for_nocopy
Merge pull request !3350 from fanzhihao8/NocopyJaxtree 2b69cb02bc18450507374e3ccc6c446bea641a59
parent 59c92953f0de77312a4cc5bf982f5ef3b137abc8
author mazhabandeng <dreamer_gq@163.com> 1749624763 +0800
committer mazhabandeng <dreamer_gq@163.com> 1749625700 +0800

modify ffrt ndk json config
Signed-off-by: GQ <dreamer_gq@163.com>
VWxqtree 42f7fc9de775bcece290a788333a77722ed81136
parent 3391bdd1c4d30ea8c6476e3d151927c42bd5ab38
parent a11be29b906283e3a5e7d18a501fbe5daf09c2e2
author openharmony_ci <120357966@qq.com> 1749608595 +0000
committer Gitee <noreply@gitee.com> 1749608595 +0000

!3371 【轻量级 PR】：修改定制dispatch table 接口的注释
Merge pull request !3371 from ganchuantao/N/A݀xRtree 2f31444437f9b804638d61254823b4bebef1c6f8
parent 37e9c7c7c199cb9ad57f84f322e00ec14183165c
parent cdaa674aea99935a5df249e192a42365fe7122f5
author openharmony_ci <120357966@qq.com> 1749545582 +0000
committer Gitee <noreply@gitee.com> 1749545582 +0000

!3365 fix oh_window_pip warning
Merge pull request !3365 from jiangxiaofeng20/masternf\xKtree ef35d16e3df9cb49051cba5d7d39358f7928082c
parent d86c29dcc78b3950b307ce05c487f50966dcfa3d
parent 0e2d117ab37886a72473da8a6bf4a5cdc07855d1
author openharmony_ci <120357966@qq.com> 1749543108 +0000
committer Gitee <noreply@gitee.com> 1749543108 +0000

!3053 Add OH_JSVM_SetDebugOption
Merge pull request !3053 from Sizheng/master8cx#tree 68e592115f5e9c217db4500b47674131e09b886d
parent 9a0ae150659828542cc575db4ec4c569a8f2c650
author yanghang <kongwei13@h-partners.com> 1749524055 +0800
committer yanghang <kongwei13@h-partners.com> 1749538122 +0800

fix: Clear the alarm

Signed-off-by: yanghang <kongwei13@h-partners.com>
*@YxOtree 1516c593eca886010f77fdcad16a6fef6ff4c9ee
parent 9a0ae150659828542cc575db4ec4c569a8f2c650
parent b14f1bfd0468f99997254f4c3ad80922ff1b2090
author openharmony_ci <120357966@qq.com> 1749528099 +0000
committer Gitee <noreply@gitee.com> 1749528099 +0000

!3368 修复蓝黄一致性差异
Merge pull request !3368 from lichaochen/masternxtree a2cdeacf35097dedba30acad1d7b5ea6537238a9
parent 9a0ae150659828542cc575db4ec4c569a8f2c650
author ganchuantao <ganchuantao1@huawei.com> 1749523304 +0000
committer Gitee <noreply@gitee.com> 1749523304 +0000

修改注释

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>5n[x.tree 9bf0a6902ec813301b6fd1106747a9e49327ad0d
parent 86d341804c35b08fb93f07f957c1ab22d42a0873
author zhanghang <zhanghang160@huawei-partners.com> 1749450080 +0800
committer han-z <han-z @neusoft.com> 1749519470 +0800

FocusWrapMode枚举类

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
aےxbtree 98a64901bd904da5669d3684ee2a67d4ff22c734
parent e7b62f67136c957849f300e8a94a9d651da27417
parent 892038932fab76b7ff6718cfab27424f2583ed5b
author openharmony_ci <120357966@qq.com> 1749473343 +0000
committer Gitee <noreply@gitee.com> 1749473343 +0000

!3338 Font和Canvas部分NDK接口版本更改为19.
Merge pull request !3338 from wanyanglan/master~txtree 035d163a5a113016cead6bc8115cc0c3ee92c14c
parent e7b62f67136c957849f300e8a94a9d651da27417
author lcc <lichaochen@huawei.com> 1749469358 +0800
committer lcc <lichaochen@huawei.com> 1749469358 +0800

修复蓝黄一致性差异

Signed-off-by: lcc <lichaochen@huawei.com>
]xLtree 780e806e9f79e6fedc9da050ad0373c4a6360946
parent 79f5f72e784d1060410d60da2d405ddadc7e26aa
parent 0461325105868b5499acab0e2e6a88dc9cc82fa3
author openharmony_ci <120357966@qq.com> 1749466041 +0000
committer Gitee <noreply@gitee.com> 1749466041 +0000

!3344 新增opengl api
Merge pull request !3344 from zhangqiang/opengl/add_apivofRxTtree c0e5f2dddc22f1ce2e135b9b9d65b7d3329c3fa6
parent 923e02513dd379be950bcb30b2167f123209aa3c
parent 35708b2413c200bcbdb90a71e49b2ca8c9e23370
author openharmony_ci <120357966@qq.com> 1749465763 +0000
committer Gitee <noreply@gitee.com> 1749465763 +0000

!3362 http C接口 ndk target 修改
Merge pull request !3362 from liuleimin_hw/mastery9kJxtree c0e5f2dddc22f1ce2e135b9b9d65b7d3329c3fa6
parent 6d3b6cd522e33c60370f075305cd8db1ad6f8594
author liuleimin_hw <liuleimin1@huawei.com> 1749460682 +0000
committer Gitee <noreply@gitee.com> 1749460682 +0000

update ndk_targets.gni.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>L[xtree 47109d320141ae7fec4d510e8e8909bc45a50c1e
parent 923e02513dd379be950bcb30b2167f123209aa3c
author liuleimin_hw <liuleimin1@huawei.com> 1749459458 +0000
committer Gitee <noreply@gitee.com> 1749459458 +0000

update ndk_targets.gni.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>YxCtree 734a01b757b14e6147407835f6e5ed17b2160951
parent 923e02513dd379be950bcb30b2167f123209aa3c
author jiangxiaofeng20 <jiangxiaofeng20@huawei.com> 1749458842 +0800
committer jiangxiaofeng20 <jiangxiaofeng20@huawei.com> 1749458842 +0800

fix oh_window_pip warning

Signed-off-by: jiangxiaofeng20 <jiangxiaofeng20@huawei.com>
if%x_tree 97781a8a661095c5e3e512ce996728909f7479aa
parent 923e02513dd379be950bcb30b2167f123209aa3c
author FTL1ght <zhangyubao@h-partners.com> 1747741619 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1749457662 +0800

修改TextBadge相关描述

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: I65241a622a19e5c8fc3b7b135d920fc3525860fb
i5q[xqtree 0b67cdc8769ef027e8db74b37d8c05788d9d6490
parent f23c0d58e12f1e79ab1262d9cfa9321ed16d34a8
parent cdfaf5a6d6186e5d5bec98389fecb0a605927b91
author openharmony_ci <120357966@qq.com> 1749453774 +0000
committer Gitee <noreply@gitee.com> 1749453774 +0000

!3356 add interface OH_Drawing_TypographyHandlerAddEncodedText
Merge pull request !3356 from Liufei/unicode-encodedЧsZxAtree 0b67cdc8769ef027e8db74b37d8c05788d9d6490
parent f23c0d58e12f1e79ab1262d9cfa9321ed16d34a8
author liufei <liufei225@h-partners.com> 1749450081 +0800
committer liufei <liufei225@h-partners.com> 1749450148 +0800

add interface OH_Drawing_TypographyHandlerAddEncodedText

Signed-off-by: liufei <liufei225@h-partners.com>
 f=x.tree 4088611acdfe69e27bd1a9a21674a34ceb08e506
parent 734f82173caaf531505a66702caca5dde316396e
author jjxxx123 <jiangxue32@h-partners.com> 1749448901 +0000
committer Gitee <noreply@gitee.com> 1749448901 +0000

update arkui/window_manager/oh_window.h.

Signed-off-by: jjxxx123 <jiangxue32@h-partners.com>	_+x>tree dd2fea869f00d1da74615a6d3cd3f2bdb46bfa1e
parent 86d341804c35b08fb93f07f957c1ab22d42a0873
parent 8733929bcb54e5d5636f1e42081a6afa4f56a39a
author openharmony_ci <120357966@qq.com> 1749441727 +0000
committer Gitee <noreply@gitee.com> 1749441727 +0000

!3352 fps based pts
Merge pull request !3352 from colinhl/masterE_`x-tree 109afe39cb629f07f5637271b80b591dd4990c4c
parent e4a8d85e573ce912c31f2ba4b79dfe14cbd7f454
author zhangqiang <zhangqiang349@huawei.com> 1749439364 +0800
committer zhangqiang <zhangqiang349@huawei.com> 1749440466 +0800

添加中望CAD新增API

Signed-off-by: zhangqiang <zhangqiang349@huawei.com>
3)e0x-tree eac62378caac11154910e70e2d0a01d353bc8d58
parent cd1f16529fd37803559eea28768342da3f689c9e
author zhangqiang <zhangqiang349@huawei.com> 1749439329 +0800
committer zhangqiang <zhangqiang349@huawei.com> 1749439329 +0800

添加浩辰CAD新增API

Signed-off-by: zhangqiang <zhangqiang349@huawei.com>
Xd˝x tree 5e8c7d78db53af72a0ebc14437065059aabf6d09
parent 6b88c6b97d448e5cbd7437bf6a33c86ac0be2dac
author colinhl <helin48@huawei.com> 1749433247 +0800
committer colinhl <helin48@huawei.com> 1749433247 +0800

fix

Signed-off-by: colinhl <helin48@huawei.com>
2MÝx tree c55b070f3273b6fa17c55149eddb2a91d6e2c9c2
parent 2986318c8a869836cc7dfe6d2a3d738a99f2d2a5
author colinhl <helin48@huawei.com> 1749284879 +0800
committer colinhl <helin48@huawei.com> 1749284879 +0800

fix

Signed-off-by: colinhl <helin48@huawei.com>
xNMx tree d133476466459be90eebe27bdf8b31b67c3fda53
parent bb426ddd384c29693a297dc87782f635cf5abeaf
author colinhl <helin48@huawei.com> 1749283238 +0800
committer colinhl <helin48@huawei.com> 1749283238 +0800

fix

Signed-off-by: colinhl <helin48@huawei.com>
M~x.tree cac88dad51362d1f30a9acc4ab0b15e993ba93e1
parent 86d341804c35b08fb93f07f957c1ab22d42a0873
author jjxxx123 <jiangxue32@h-partners.com> 1749281631 +0000
committer Gitee <noreply@gitee.com> 1749281631 +0000

update arkui/window_manager/oh_window.h.

Signed-off-by: jjxxx123 <jiangxue32@h-partners.com>K_zx tree 4a51358022fe6a43b829900213477ec5e405aa79
parent d5e4850a65f322f069639b8af435359d29fcaf2e
author colinhl <helin48@huawei.com> 1749280558 +0800
committer colinhl <helin48@huawei.com> 1749280558 +0800

fix

Signed-off-by: colinhl <helin48@huawei.com>
gKxDtree 4408f04c60f66ccf3789a07345971e17344b98b1
parent 64f1f2310621ed8c5ccc2600b29e00337bbbbc87
parent bccd0e4de84e7243f2a12050a3e4a02859be8303
author openharmony_ci <120357966@qq.com> 1749268548 +0000
committer Gitee <noreply@gitee.com> 1749268548 +0000

!3336 add UserSelection
Merge pull request !3336 from 李一鸣/masterbcBxtree 57be01656fb2cf964cd96f30505f49be8d474152
parent 9e5eb718e9a69af5a1edb38bf01fdb379349606b
author wangyaohui <wangyaohui17@huawei.com> 1749268073 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1749268073 +0800

codeCheck

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
CYxitree a7fae18259fa25ef0f8a0892496e0543fe318fc4
parent acf6598ca4855fa002f314fcdd2aa384df55c4cd
parent 665b9ac57783b4990f09b12d898ce0de856c2eb5
author openharmony_ci <120357966@qq.com> 1749267296 +0000
committer Gitee <noreply@gitee.com> 1749267296 +0000

!3323 新增processor通过配置文件初始化接口
Merge pull request !3323 from liujiaxing19/processora}PxZtree b32ccd7b480d2204416f37740e8aa1d4cfbb0bef
parent 583dc126702be737f97e739a113ac01087582f3f
parent d2d5efcee51b54652ab6e31b220a43532b84e9e2
author openharmony_ci <120357966@qq.com> 1749214414 +0000
committer Gitee <noreply@gitee.com> 1749214414 +0000

!3347 add new interface touchTestDone
Merge pull request !3347 from 刘永凯/touchTestDone2l?x=tree e5058f1105662df24c1e7c92cf728ee279584a7e
parent 61a2c1bdaa60e02bbc18da3a23e2dda2d8602bef
author 李一鸣 <liyiming21@huawei.com> 1749211768 +0000
committer Gitee <noreply@gitee.com> 1749211768 +0000

update multimedia/player_framework/native_avscreen_capture.h.

Signed-off-by: 李一鸣 <liyiming21@huawei.com>VmxAtree 17ee8e415cc9d808fb8664d9bed06225e030fd2f
parent 9a209e1d2ff48ba496bd3cff83ca543b0a499a34
parent 583dc126702be737f97e739a113ac01087582f3f
author 李一鸣 <liyiming21@huawei.com> 1749211050 +0000
committer Gitee <noreply@gitee.com> 1749211050 +0000

fix code conflict

Signed-off-by: 李一鸣 <liyiming21@huawei.com>#h	xwtree d9844856e9594d2f086ec0a7f73e385998b91902
parent 4af033539cd65e37fc0ac1739b9093e7329617c4
parent 05aaa4d322b7a64883bcffef52d4198082527f62
author openharmony_ci <120357966@qq.com> 1749210558 +0000
committer Gitee <noreply@gitee.com> 1749210558 +0000

!3343 屏幕录制支持设置隐私窗口屏蔽模式新增NDK接口
Merge pull request !3343 from Trouvaille/branch0523sx tree 4cb4657fc4d834b62b56aae3a26df0f8db4017d6
parent 5d2243edf2b992507c00b22f745f6dd5f4706305
author colinhl <helin48@huawei.com> 1749210061 +0800
committer colinhl <helin48@huawei.com> 1749210061 +0800

fix

Signed-off-by: colinhl <helin48@huawei.com>
FLyxotree 0adf5ee5d7d1f717e9055dffd92b1f3f2a946827
parent 21ca57090af00279c83867522ddeab4b01bc8453
parent 9b3c077eca32d97da9298131e044f59dc99e7d67
author openharmony_ci <120357966@qq.com> 1749202076 +0000
committer Gitee <noreply@gitee.com> 1749202076 +0000

!3317 drawing colorspace interface C upload
Merge pull request !3317 from 刘伟/drawing_colorSpaceManager_upload>?sޗxtree 5e8c7d78db53af72a0ebc14437065059aabf6d09
parent 21ca57090af00279c83867522ddeab4b01bc8453
author colinhl <helin48@huawei.com> 1749200632 +0800
committer colinhl <helin48@huawei.com> 1749200632 +0800

fps based pts

Signed-off-by: colinhl <helin48@huawei.com>
OPxYtree cdc69424e7fa1d13d21313457cf6b14915c4e4d8
parent e93d7fab7daefb38c7836a5d7f7cc361c9719cdd
parent 564d3638b3f3d8a4ea97bc8a92fa5f10d7994c7d
author openharmony_ci <120357966@qq.com> 1749200103 +0000
committer Gitee <noreply@gitee.com> 1749200103 +0000

!3340 Text Vertical alignment sdk c
Merge pull request !3340 from FTL1ght/verticalAlignment^ixLtree 6216e10ca9311307bb075759d70b015ae5c21fe5
parent 9e18ed26144874ea1d90dd2959fd727930f73ff0
parent 4db5198c2368d071d7c39439bc68f5da17089461
author openharmony_ci <120357966@qq.com> 1749199558 +0000
committer Gitee <noreply@gitee.com> 1749199558 +0000

!3234 画中画ndk接口更新
Merge pull request !3234 from wangyaohui/masterXojzxQtree 490b1cbb57271a829b07dc2157c4e8a37cd1a036
parent 2bbeb4c589cee5b3bc1da98b42473b61270b8c60
parent bf79c546338d4af41fa1fadbc333de5d83ea94cc
author openharmony_ci <120357966@qq.com> 1749199421 +0000
committer Gitee <noreply@gitee.com> 1749199421 +0000

!3348 编创框架新增纹理接口
Merge pull request !3348 from jinmingru/master&qx*tree f0832d9eb8d27346e070a7e584653a6c1e5f74a5
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author fanzhihao8 <fanzhihao6@h-partners.com> 1749197038 +0800
committer fanzhihao8 <fanzhihao6@h-partners.com> 1749197038 +0800

Request_for_nocopy

Signed-off-by: fanzhihao8 <fanzhihao6@h-partners.com>
_x[tree 7d4c9c0882f1f4616d1d5492c38c17c0e8d7bd0f
parent bc469e61af2127754efe5c28018787f6e23e56b3
parent f4736b98635d9e97a05ad26e89e7a6b325dfe06b
author openharmony_ci <120357966@qq.com> 1749195517 +0000
committer Gitee <noreply@gitee.com> 1749195517 +0000

!3259 add the interface of glyph drawing.
Merge pull request !3259 from hulei/glyphDrawingNewixtree 0d10248621b7856719d29c7d5ffc70a2812ec92c
parent bd9d96beabbb100870dce79edac064b3c4b07e4b
author jinmingru <jinmingru1@huawei.com> 1749178541 +0800
committer jinmingru <jinmingru1@huawei.com> 1749193520 +0800

jinmingru1@huawei.com

Signed-off-by: jinmingru <jinmingru1@huawei.com>
[xFtree 8fb7e491a79c47673def0d4c4acef23268f419c9
parent bc469e61af2127754efe5c28018787f6e23e56b3
author 刘永凯 <liuyongkai2@huawei-partners.com> 1749139258 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1749181964 +0800

add new interface touchTestDone

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
΢rxatree 4010cf008fa18bfb23b9cf71b0ccba141b2638c3
parent bc469e61af2127754efe5c28018787f6e23e56b3
author FTL1ght <zhangyubao@h-partners.com> 1749045168 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1749132969 +0800

Text Vertical alignment sdk c

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
Change-Id: Ie5c5874ebc1e03a95cbb2feb931746b222f261d4
m-xttree a604a521e08161a6775e8ad03b0fbf8753b4257f
parent 13fdf9095f849015d96578a5c7e55c82226d7556
parent 4491e81e81896b41a267bd4ea5eb01f78d665888
author openharmony_ci <120357966@qq.com> 1749129241 +0000
committer Gitee <noreply@gitee.com> 1749129241 +0000

!3227 （interface c）新增解注册字体接口，新增强制未塑性字符显示接口
Merge pull request !3227 from Liufei/interface-c杓xntree dfdd036f8e0cdf5ec7d2feaee13021f0a7d40ac6
parent 85c94732b95eee5a45b579c2add88e74c7acc1cf
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1748334482 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1749113939 +0800

CAPI:支持拖起方延迟提供数据接口

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
Change-Id: I96f23331a4a1a068d9b65b5bcd664d15ba12347a
7xntree 80876fcd4f7708c9b41a879017797123004b6d0d
parent cd1f16529fd37803559eea28768342da3f689c9e
parent 7d400a8382d376b80386b5476eb13e79b1b8c678
author openharmony_ci <120357966@qq.com> 1749110506 +0000
committer Gitee <noreply@gitee.com> 1749110506 +0000

!3136 CAPI 提供根据节点UniqueId获取能力和根据UniqueId获取对应节点能力
Merge pull request !3136 from wangxiuxiu96/CAPI-uniqueId.&xtree de20ebe34f6fd18a7b1359d9f7cb4e36bec5b323
parent 5aaa5e8c2ec667c2ff4e431a198594ee3e862117
author 李一鸣 <liyiming21@huawei.com> 1749106513 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749106513 +0800

change return

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
4%_۔xTtree a414206e7070230bad1198c3f684d828c0af7a54
parent a947d4e2f99fa7fe32c6eb903a4c03add7ee57fa
parent e341deb84595661e8853c1adfac3bb22af217825
author openharmony_ci <120357966@qq.com> 1749099352 +0000
committer Gitee <noreply@gitee.com> 1749099352 +0000

!3328 UDMF公共数据通路可见性
Merge pull request !3328 from qianyong325/master\oxtree d035b387c3e1c22d15376428ad8d5ac03fb54b8d
parent e61e32781087427820487d25f7df74e5cac4d28a
author liufei <liufei225@h-partners.com> 1749093637 +0800
committer liufei <liufei225@h-partners.com> 1749093637 +0800

sync with request

Signed-off-by: liufei <liufei225@h-partners.com>
lPVלxLtree 2c4cab3b3c2669ef0b53a44560e8bb89028cbd31
parent 0454a48e1fb664ce2ccec0efa0c415d1e0ba2962
parent 32f425834bf6ed5a2c2eaf95f29855cb90d54a1f
author openharmony_ci <120357966@qq.com> 1749093515 +0000
committer Gitee <noreply@gitee.com> 1749093515 +0000

!3313 文本垂直对齐
Merge pull request !3313 from wjn/text_vertical_alignxkxKtree e15b346723d27c4065d5a9f43eb0ff423e2a0def
parent bceee883bfc7db203e63dff06ca0c50463acecd0
author Trouvaille <wuminghua6@huawei.com> 1749091555 +0800
committer Trouvaille <wuminghua6@huawei.com> 1749091555 +0800

屏幕录制支持设置隐私窗口屏蔽模式新增NDK接口

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
 =Exrtree cf54100a345803842a8958985a699fc647d6423b
parent 0454a48e1fb664ce2ccec0efa0c415d1e0ba2962
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1746674424 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1749088121 +0800

CAPI-uniqueId

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
Change-Id: Iff4faad63444a393598ccea99897ac80caa177e4
jubx`tree f6c96263c9707c1b119502aed3fbe84f5d97bbbc
parent a661028f6d71221ff527a34fe05a0c133432e378
parent f6d39d249a6518ecf11ec77409a4e6855888c94a
author openharmony_ci <120357966@qq.com> 1749047212 +0000
committer Gitee <noreply@gitee.com> 1749047212 +0000

!3327 增加接口错误码获取接口
Merge pull request !3327 from wangweiyuan/UIInputErrorCode5vx@tree 3c2a8a5da96fb0a7518ba10550d9bc3649918fb0
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author qianyong325 <qianyong05@chinasoftinc.com> 1748952166 +0800
committer qianyong325 <qianyong05@chinasoftinc.com> 1749039774 +0800

UDMF公共数据通路可见性

Signed-off-by: qianyong325 <qianyong05@chinasoftinc.com>
wnxQtree 2ce3c80b229189e936a3de6ec71ae301537dc9e9
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1748404384 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1749037581 +0800

增加接口错误码获取接口

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
zoxVtree fe412bcaa35d5dc6d3ff7288ea4dc566a6b8327f
parent ba47ac5ed8015abae447864701aab6cdde27b46e
parent 003346d5113fd26343c847e36c4efe3decaaa089
author openharmony_ci <120357966@qq.com> 1749032835 +0000
committer Gitee <noreply@gitee.com> 1749032835 +0000

!3320 【napi】add multicontext interface
Merge pull request !3320 from shilei91/masterzk_xtree 3dbbedd5d7505f03062534bdaa2454f24cc6a78a
parent ee7bf2c7d13ec9f450176b5b82961beacbe5f6e7
author 李一鸣 <liyiming21@huawei.com> 1749026037 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749026037 +0800

fix typo

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
u^9xtree e0bf79e3e9ffd69766b707971d20fc4d8107a2e4
parent eb50d684c9e9afae4c5600199bc9c20f754a813d
author 李一鸣 <liyiming21@huawei.com> 1749026008 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749026008 +0800

fix typo

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
]jxtree 5a1f9bbadf02b2c829c41b860d34fc86bda06314
parent 2bb00c42beb1dde72858202c044396df087b5ec3
author 李一鸣 <liyiming21@huawei.com> 1749025962 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749025962 +0800

fix typo

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
u]ixtree 09a392c96bb94c7d8fab14f1efc3f05b687b5a0e
parent 13a161eb2256487eebd50ef02c612e49365b7af0
author 李一鸣 <liyiming21@huawei.com> 1749025916 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749025916 +0800

add json

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
)]Qxtree 6650756b16d26e5c03a6c0e1dc0bab4eb6b0b4ad
parent ba47ac5ed8015abae447864701aab6cdde27b46e
author 李一鸣 <liyiming21@huawei.com> 1749025188 +0800
committer 李一鸣 <liyiming21@huawei.com> 1749025188 +0800

add UserSelection

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
'ax tree c58552f02cc446e7332a061e052c3d3b5a91fdb9
parent ba47ac5ed8015abae447864701aab6cdde27b46e
author y30025806 <yangjunhui10@huawei.com> 1749022896 +0800
committer y30025806 <yangjunhui10@huawei.com> 1749022896 +0800

support auxiliary

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
WxKtree 0224d9aa7c101859d5d02e74d66fb6e87a56c242
parent 79edb82c60450b6be9d82f074345f1ecb2b4fdee
parent 992c1c5c51af7066c604a2e3bcac59ad260b51d1
author openharmony_ci <120357966@qq.com> 1749021954 +0000
committer Gitee <noreply@gitee.com> 1749021954 +0000

!3314 feat:add nearlink type
Merge pull request !3314 from 王恒申/nearlinkf̛xKtree 800c10951aba4da257fce067edcdc575d7971dac
parent 6c6aa73ce5ec2525856539c19886f0bb03cafef3
parent c21572cf09e0b17785681c16be763ff31a0285d8
author openharmony_ci <120357966@qq.com> 1749019941 +0000
committer Gitee <noreply@gitee.com> 1749019941 +0000

!3321 add KILL_REASON event
Merge pull request !3321 from 羊头军师/masterfߛx4tree 9e60892d938da9847c6d26d6df0129ec353676ba
parent d4b62cbf4d758e70be77663049668e630ae74d0d
author liufei <liufei225@h-partners.com> 1749007563 +0800
committer liufei <liufei225@h-partners.com> 1749007563 +0800

docs(graphic): update font unregisteration documentation

- Clarify the required action after unregistering a font family
- Improve the documentation for OH_Drawing_UnregisterFontFamily function

Signed-off-by: liufei <liufei225@h-partners.com>
}؞xNtree edda07c5084d6025d8787aae9b78da295624b1e0
parent f569e9e77559cd1b72814b6439eb4781158a9dc8
parent c54593ffe521ff702f668a0f5750196536d80f45
author openharmony_ci <120357966@qq.com> 1749003441 +0000
committer Gitee <noreply@gitee.com> 1749003441 +0000

!3293 Add focus wrap mode for list
Merge pull request !3293 from zhanghang/zlist5cxItree 16162adcf05280fd81624ab5bb4a0b58fffe65e2
parent 0571a5b911d1768468d71f193e8e5fa15bce68a5
parent 7c00ce7492afcef11433dc7d7eec6dcde9fe9702
author openharmony_ci <120357966@qq.com> 1749003030 +0000
committer Gitee <noreply@gitee.com> 1749003030 +0000

!3312 add perf doc for audio ndk
Merge pull request !3312 from AOL/perfdoc2bxtree 3bdfd1f38c4e80a308b82b596216c2a09fdee81c
parent 9702cf0f1f1e1abf50e39897b1595cd885ced6a3
author wangyaohui <wangyaohui17@huawei.com> 1749002277 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1749002277 +0800

errCode

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
 wYIx6tree 49de637fefb0e0abe92117f70fd77cad2cde5b18
parent 0571a5b911d1768468d71f193e8e5fa15bce68a5
author wangyaohui <wangyaohui17@huawei.com> 1749001413 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1749001413 +0800

add setInitRect interface to pip ndk

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
ܫcɗxtree c5d3d5690d7a8edd872610ff62043369c73f29b8
parent 017f9f958ab2ee211ab3c8116d9f00e7ed303c22
author wangyaohui <wangyaohui17@huawei.com> 1749001229 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1749001229 +0800

reset

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
smWx6tree f9e2b584efc9266d1b072f150301db830a17c066
parent 15a2cb57e2f4c1f8902080da70db02c0becb63ca
author wangyaohui <wangyaohui17@huawei.com> 1749001019 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1749001019 +0800

add setInitRect interface to pip ndk

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
c2x^tree ab07ef103a3384fc3adbb92ab6fe04a211b6d879
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
parent 6b058a1ee2245d70d139131eeb9e08dad30c31d8
author openharmony_ci <120357966@qq.com> 1748961134 +0000
committer Gitee <noreply@gitee.com> 1748961134 +0000

!3195 add drawing_path ndk interfaces
Merge pull request !3195 from 刘伟/ndk_drawing_path_0514mfxRtree ef3036eca6359fd6a1cd048840deb4737b0b9aba
parent 1cb3353ab07eaaae8f39deac1573416f152c4d94
author liufei <liufei225@h-partners.com> 1748938297 +0800
committer liufei <liufei225@h-partners.com> 1748938297 +0800

docs(graphic): update font unregister documentation

- Add note to clarify that layout should be recalculated for all typography using the unregistered font family.

Signed-off-by: liufei <liufei225@h-partners.com>
Kx*tree b0a4ff73cbd965bc2fbab5378e4353f7e270d9e4
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author 羊头军师 <wuzhenyang1@huawei.com> 1748833997 +0800
committer 羊头军师 <wuzhenyang1@huawei.com> 1748914709 +0800

add KILL_REASON event

Signed-off-by: 羊头军师 <wuzhenyang1@huawei.com>
jx}tree 89679530fea305d2c3ca8c23e4981fb900331a47
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author liujiaxing19 <liujiaxing19@huawei.com> 1748852052 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1748852052 +0800

新增processor通过配置文件初始化接口

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: I04fdfc3769e9cc99fb1a8f8cb0e81fe686f7d4cb
xFtree d6c95f6dd1b5c7b65503caaa9ded1e676d7ddc74
parent 156b73777ce00ed12b1a04303d4439d6a9f15f4a
author zhanghang <zhanghang160@huawei-partners.com> 1748262283 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1748844406 +0800

Add focus wrap mode for list

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
:}hxItree 8c18fe604c68f7480e890f6140572f8e2df31bd9
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author shilei <shilei91@huawei.com> 1748767796 +0800
committer shilei <shilei91@huawei.com> 1748767796 +0800

add multicontext interface

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I8d0ed6b68650b06643b0c08ee9463bc05fc279ba
{dɘxtree f4b203df66fd720a77a7e7dbdf4e868911acd45c
parent 4f8c456cbc63d8c9f5ac895a20ad6ab91b0171ad
author liufei <liufei225@h-partners.com> 1748597300 +0800
committer liufei <liufei225@h-partners.com> 1748597300 +0800

remove @version

Signed-off-by: liufei <liufei225@h-partners.com>
FWxQtree aa7f7789c0eb853142c3fc52926dbbd14d50de03
parent 7ee4a4ffdf5f230b8fd0c9be618184d062a6a081
author liyongzhuang <liyongzhuang1@huawei.com> 1748595352 +0800
committer liyongzhuang <liyongzhuang1@huawei.com> 1748595352 +0800

add OH_NativeArkWeb_RegisterAsyncThreadJavaScriptProxy

Signed-off-by: liyongzhuang <liyongzhuang1@huawei.com>
sp*xatree 1922d058cb00478757c480d645f2e74b2ac4ee4b
parent 36bdc1ea37afba0a47f7cf278e068fe1a272d7dd
parent 3477ddc6a553ead19b3cca235279ede46b3c69e7
author openharmony_ci <120357966@qq.com> 1748581244 +0000
committer Gitee <noreply@gitee.com> 1748581244 +0000

!3296 Add ROI Encode Interface and SQR Encode Interface
Merge pull request !3296 from Jarvis/master3khxQtree 06c8c94138302ee8d0b751527c9149f05a6037cc
parent bc57178cc80f1efe76668ee5e99fd21c1522424c
parent 7853020bb104e589c4451a8cb63d4af8162e49b0
author openharmony_ci <120357966@qq.com> 1748576323 +0000
committer Gitee <noreply@gitee.com> 1748576323 +0000

!3315 add fast status query apis
Merge pull request !3315 from zhangwt3652/fastinfofdwx.tree 5637d28cb72ee29dc41adb8544f7be918d196d77
parent 9e5dbc6e0d09b471774f16f4df2e916e22cd9b74
author liuwei <liuwei793@h-partners.com> 1748571175 +0800
committer liuwei <liuwei793@h-partners.com> 1748571175 +0800

drawing colorspace interface C upload

Signed-off-by: liuwei <liuwei793@h-partners.com>
ŷ_x^tree f2d93ddb4e292216c9ff2618f703c590557d20c8
parent fbf2097c88af6dc2c677b07934bdce5d05072de1
author wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1748570695 +0800
committer wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1748570803 +0800

白平衡接口注释修改

Signed-off-by: wang <wanghuanqing2@h-partners.com>
EzߔxDtree 06c8c94138302ee8d0b751527c9149f05a6037cc
parent bc57178cc80f1efe76668ee5e99fd21c1522424c
author zhangwenting3652 <zhangwenting15@huawei.com> 1747721976 +0800
committer zhangwenting3652 <zhangwenting15@huawei.com> 1748566382 +0800

add fast status query apis

Signed-off-by: zhangwenting3652 <zhangwenting15@huawei.com>
Zfx4tree e71618d9000d6c61a3f170c322f5152eb9d8026e
parent bc57178cc80f1efe76668ee5e99fd21c1522424c
author Wang Hengshen <wanghengshen1@huawei.com> 1748527302 +0800
committer Wang Hengshen <wanghengshen1@huawei.com> 1748527302 +0800

feat:add nearlink type

Signed-off-by: Wang Hengshen <wanghengshen1@huawei.com>
a;xtree 7846718971a5fdec6d1d26c2859d1897cb62a411
parent c19112299f522dac3a2025edc86a428540679983
author Yanghaolong <yanghaolong2@huawei.com> 1748525638 +0000
committer Gitee <noreply@gitee.com> 1748525638 +0000

add sqr bitrate mode

Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>XMxtree 6c4bb8f51d7e0a64795bf3bb51ddca1a551720f6
parent 64d22d64dc109f9601ee47a8a5c9dee66e1b15cc
author Yanghaolong <yanghaolong2@huawei.com> 1748525576 +0000
committer Gitee <noreply@gitee.com> 1748525576 +0000

add sqr bitrate mode

Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>mZrxtree 2a825cbd6fd3f48275bec1506f5831a742a488ed
parent f1c19276f6b172a016734f40c6131bdbfd844bc5
author Yanghaolong <yanghaolong2@huawei.com> 1748525508 +0000
committer Gitee <noreply@gitee.com> 1748525508 +0000

add sqr to json

Signed-off-by: Yanghaolong <yanghaolong2@huawei.com>5+Wx:tree 15d6ff3a27fd4c72dd0573868acadf83616c3bef
parent dcf84544a79a76666a7e2eb8b784387fbc244778
author Jarvis <sunqingqiang@huawei.com> 1748523141 +0800
committer Jarvis <sunqingqiang@huawei.com> 1748523403 +0800

同步修改json文件，添加ROI接口相关定义

Signed-off-by: Jarvis <sunqingqiang@huawei.com>
uax!tree e0003937b64b22504a8c393adc8a4f2165ee6f89
parent bc57178cc80f1efe76668ee5e99fd21c1522424c
author wjnRance <wanjining@h-partners.com> 1748520501 +0800
committer wjnRance <wanjining@h-partners.com> 1748520501 +0800

文本垂直对齐

Signed-off-by: wjnRance <wanjining@h-partners.com>
QaZx+tree b83b5a2193de24e62960b98660d182344177a789
parent 29cbd896ef9349a82b87fc28a52f2e2c15da6b33
author lw19901203 <liuwei793@h-partners.com> 1747190171 +0800
committer lw19901203 <liuwei793@h-partners.com> 1748511745 +0800

add path ndk interface

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
HX-x=tree 04777ec4a2a75a265ca78f8d77cd77d6a1697175
parent bd9d96beabbb100870dce79edac064b3c4b07e4b
parent fbf2097c88af6dc2c677b07934bdce5d05072de1
author openharmony_ci <120357966@qq.com> 1748503651 +0000
committer Gitee <noreply@gitee.com> 1748503651 +0000

!3311 ndk接口修改
Merge pull request !3311 from wang/master@KcxRtree 60556ee055ce19bb9eb32e30cf43a0767150bb06
parent a6bbe15f072214b08f4532ee0ef347aaec659327
author wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1748402240 +0800
committer wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1748488655 +0800

ndk接口修改

Signed-off-by: wang <wanghuanqing2@h-partners.com>
pƜx\tree 08dce695aef97f1f9e9a0ed9af2a70ca74c88931
parent cb7fb14cf212394a460ddd96c0fca6301aae930d
parent 6004a98464772578ba71cc319539cd04b74fe8d3
author openharmony_ci <120357966@qq.com> 1748485032 +0000
committer Gitee <noreply@gitee.com> 1748485032 +0000

!3299 fix:调整system_capability_headers头文件
Merge pull request !3299 from 沈康/masterrxZtree 36cc26160022e20b6df2086672f5d6f83d4467ef
parent 4d126cb79c9d5a77157b4fa58391b33b133bbe48
parent 5d708a53e5f2a6ebee38132e1908180050eb0ab9
author openharmony_ci <120357966@qq.com> 1748438315 +0000
committer Gitee <noreply@gitee.com> 1748438315 +0000

!3308 接口格式整改，删除多余空格。
Merge pull request !3308 from 胡伟/masterx͔xTtree c5d3d5690d7a8edd872610ff62043369c73f29b8
parent a93eb95bd48d33fbf68eff9e07be15c5d70b277a
parent 5f841a24bdd26f8d6968f820bffa3eccad9950aa
author wangyaohui <wangyaohui17@huawei.com> 1748437914 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1748437914 +0800

Merge branch 'master' of https://gitee.com/wangyaohui11/interface_sdk_c
z`kx!tree b6ccbe9229aa04cfc44b53c91525cc78297c4a9c
parent 61bfae84b9dac3d35f6c2f58280fa7a5d7705652
author wangyaohui <wangyaohui17@huawei.com> 1748437848 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1748437848 +0800

[fix] codeCheck

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
\:x7tree 40e316c5bbf9cc5b29779f3410e642a56b5a9015
parent 5ffdabb7687bb6032332a8ba38b96d90bfc864f6
author AOL <lixin113@huawei.com> 1746615625 +0000
committer magekkkk <lixin113@huawei.com> 1748435670 +0000

remove blank

Signed-off-by: AOL <lixin113@huawei.com>
Change-Id: Ie262ea254aaf5cf95f6ae0c65857f5f1655648c3
[xktree c6622a6f16559d522c276d890100d9f6cfc583cd
parent 4bfe18c020505c8375667745668f9ac0709f7008
parent 354c16985a86265832ab314ce64274f103d2f9d9
author openharmony_ci <120357966@qq.com> 1748425427 +0000
committer Gitee <noreply@gitee.com> 1748425427 +0000

!3307 update third_party/musl/ndk_script/adapter/libc.ndk.json.
Merge pull request !3307 from Lumos235/master։mxLtree 5d81a7bbb296646d610fcf4d5a7e6272dd11ef9e
parent a08c69f754f5c118313a02d19e709c7d88d74dd1
parent b9f66f14704b2116a83f43aa17b3fb46a6b13174
author openharmony_ci <120357966@qq.com> 1748423789 +0000
committer Gitee <noreply@gitee.com> 1748423789 +0000

!3306 change api version to 20
Merge pull request !3306 from yangbo_404/masterbњxZtree 4f37349f747d79d7b585adc7e816e4f6e7d52b2c
parent ac6a93ec17a46489483f34c731af38eff4dd6043
parent f03a674459bb8bbb725700b8e82480952f41be55
author openharmony_ci <120357966@qq.com> 1748422256 +0000
committer Gitee <noreply@gitee.com> 1748422256 +0000

!2971 Text控件支持去除行尾空格
Merge pull request !2971 from wangweiyuan/trimspacejtIx tree bf3ced70b06f9107ca87d79d198dbc23f2539e0d
parent b2bedd720bd46c8504d4f4487c7dc5a95a98db1b
author 胡伟 <huwei169@huawei.com> 1748422192 +0000
committer Gitee <noreply@gitee.com> 1748422192 +0000

接口格式整改，删除多余空格。

Signed-off-by: 胡伟 <huwei169@huawei.com><mx]tree e9bc75cc1ceb15474b93bfc9c7be7dd62285bce0
parent f3b6234738a07bffd4ac5a1d1ab7277ce2e5e081
parent 42e81ca320728ad9cb64e98d72a719cefff4a19a
author openharmony_ci <120357966@qq.com> 1748421946 +0000
committer Gitee <noreply@gitee.com> 1748421946 +0000

!3252 capi自定义绘制层级完善
Merge pull request !3252 from wangweiyuan/capi_draw_layervx!tree 79172eb7d57b1bc5d3b1ebb63047511793108dad
parent a6bbe15f072214b08f4532ee0ef347aaec659327
author yangbo_404 <yangbo198@huawei.com> 1748418718 +0800
committer yangbo_404 <yangbo198@huawei.com> 1748421004 +0800

change api version to 20

Signed-off-by: yangbo_404 <yangbo198@huawei.com>
_W?x=tree 0462b691410d68d1c59042a6a090890e55fb803a
parent c354b8ea0e14ece8b6c874d5cb6df69b6b95e534
author Lumos235 <luojie119@h-partners.com> 1748419485 +0000
committer Gitee <noreply@gitee.com> 1748419485 +0000

update third_party/musl/ndk_script/adapter/libc.ndk.json.

Signed-off-by: Lumos235 <luojie119@h-partners.com>NdxTtree 55f41e8d56edf5620cf15ddab29fd5ce51906fb6
parent a6bbe15f072214b08f4532ee0ef347aaec659327
parent 4e4dd02301cd0bbe85a923bbdc3bb45b122d0826
author openharmony_ci <120357966@qq.com> 1748419457 +0000
committer Gitee <noreply@gitee.com> 1748419457 +0000

!3265 CAPI:minAndMaxLines
Merge pull request !3265 from wangweiyuan/minAndMaxLines0521+gLx tree 723a8beada9a89d306d5120b50cfe2e7c43cb1e4
parent 281cabc2bcdeeb140a31429bf931eed4977f3cb3
author AOL <lixin113@huawei.com> 1745893732 +0000
committer magekkkk <lixin113@huawei.com> 1748417589 +0000

update urls

Signed-off-by: AOL <lixin113@huawei.com>UNxtree f2fa29f74c4f8abde7a72c23a0c8dcaee4d868c2
parent a6bbe15f072214b08f4532ee0ef347aaec659327
author magekkkk <lixin113@huawei.com> 1745839924 +0000
committer magekkkk <lixin113@huawei.com> 1748417589 +0000

add perf doc part 2

Signed-off-by: magekkkk <lixin113@huawei.com>
].Tx/tree 2c287bf93fafad02a2153687beb030ec0e583cc1
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
author shenkang <shenkang6@huawei.com> 1748330110 +0800
committer shenkang <shenkang6@huawei.com> 1748402461 +0800

fix:调整system_capability_headers头文件

Signed-off-by: shenkang <shenkang6@huawei.com>
ܳgxltree f60f21765b8d00e12fa0c061678f1cce48db3087
parent ed64b79e40e966028c4b407b059f99b1500a447b
parent a6bbe15f072214b08f4532ee0ef347aaec659327
author Trouvaille <wuminghua6@huawei.com> 1748399072 +0800
committer Trouvaille <wuminghua6@huawei.com> 1748399072 +0800

屏幕录制支持设置隐私窗口屏蔽模式

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
ۃbxBtree c15f31ca0157bbfe6b48b6ea22780efd7e9527e1
parent 1e0ea7025f27a9de155f5d6098981c8734360a53
parent 64df0f9f5b96b03126825f6af466d72c521edc48
author openharmony_ci <120357966@qq.com> 1748351581 +0000
committer Gitee <noreply@gitee.com> 1748351581 +0000

!3292 Image新增syncload
Merge pull request !3292 from guan0/mastertb1xDtree 2cab43d642adfcda7c1fe78defd64ebce4c98b40
parent 0a8dacb32c871ac123db03f88da3b4d184cc97e1
parent c85b58d862847c3ad04ebaaeab376cad33afd5aa
author openharmony_ci <120357966@qq.com> 1748350160 +0000
committer Gitee <noreply@gitee.com> 1748350160 +0000

!3291 fix Netstack
Merge pull request !3291 from wangmengyao111/masterdx@tree d3e1b54c92cadd58aedb94c6cf971ba018c00643
parent 7fae67138ae05d467d6f5aee5d7ee5e0ca44071e
parent 902fda3dcbeb8a74cc8e1c6424a281ed864f36d9
author openharmony_ci <120357966@qq.com> 1748347961 +0000
committer Gitee <noreply@gitee.com> 1748347961 +0000

!3300 fix interface
Merge pull request !3300 from 屑屑屑/masterddzxktree 05eec3d1934bb736cfcb94c2cf4e2d35a2d1e22c
parent be11c2614a68cb36f219916fb3cd727b632f6935
parent f043fef486a1cd3f073cb54302345db5866d7878
author openharmony_ci <120357966@qq.com> 1748345226 +0000
committer Gitee <noreply@gitee.com> 1748345226 +0000

!3297 ImageReceiver on回调支持传入用户自定义数据
Merge pull request !3297 from zhaona45/receiverq|xXtree 6c337a68f6eb642b65528d0be87eb8aded09fe15
parent b5b987cdcf06fda316c7db06ad9076483e468de0
parent b2bedd720bd46c8504d4f4487c7dc5a95a98db1b
author openharmony_ci <120357966@qq.com> 1748336915 +0000
committer Gitee <noreply@gitee.com> 1748336915 +0000

!3301 短时任务获取C接口易用性整改
Merge pull request !3301 from 胡伟/masteryxtree bcd40a447916c698297bdf660433c34fe2f41651
parent 49fecd650d6297a2438b6090ba84f621836c2879
author liufei <liufei225@h-partners.com> 1748335481 +0800
committer liufei <liufei225@h-partners.com> 1748335481 +0800

style(graphic): remove redundant comments and adjust spacing

- Remove duplicate comments for enum type
- Adjust spacing in comments for better readability
- Update file: graphic_2d/native_drawing/drawing_text_global.h

Signed-off-by: liufei <liufei225@h-partners.com>
T̟x4tree 6c337a68f6eb642b65528d0be87eb8aded09fe15
parent 1cc77c2a4f41f6b1d187ef9407da8a43ac97b3c1
author 胡伟 <huwei169@huawei.com> 1748331870 +0000
committer Gitee <noreply@gitee.com> 1748331870 +0000

update backgroundtasks/transient/include/transient_task_api.h.

Signed-off-by: 胡伟 <huwei169@huawei.com>2,gx2tree cae2f034089221de077b4663963dc2555709da54
parent b5b987cdcf06fda316c7db06ad9076483e468de0
author 胡伟 <huwei169@huawei.com> 1748331803 +0000
committer Gitee <noreply@gitee.com> 1748331803 +0000

update backgroundtasks/transient/libtransient_task.ndk.json.

Signed-off-by: 胡伟 <huwei169@huawei.com>6e7x%tree 235db32ffa1bd0ce0c17a8685b9bd557d7177a8b
parent 4c81069d35412461c8f05b9abe7ddbcbac6d3218
author 屑屑屑 <jiangwenda5@h-partners.com> 1748330464 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1748330567 +0800

fix interface

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
ex:tree 6df2b06d98b1774582e5a3af8a3e811670bd81b2
parent aab45ff109866c2e7d77562e0d03e8dbb69f5858
author liufei <liufei225@h-partners.com> 1748329576 +0800
committer liufei <liufei225@h-partners.com> 1748329576 +0800

refactor(graphic): rename text no glyph enum values

- Rename TEXT_NO_GLYPH_USE_DEFAULT to TEXT_UNDEFINED_GLYPH_USE_DEFAULT
- Rename TEXT_NO_GLYPH_USE_TOFU to TEXT_UNDEFINED_GLYPH_USE_TOFU

Signed-off-by: liufei <liufei225@h-partners.com>
肍*xZtree b09aaec02bdfb7c8070daab030dfff669301f354
parent 13748309fadaf09534112d0c43f42b438a7af15a
parent b4c3dd8396c5d58609c4f9259ee971344fb2b1be
author openharmony_ci <120357966@qq.com> 1748321698 +0000
committer Gitee <noreply@gitee.com> 1748321698 +0000

!3224 【DatePicker】添加列循环可配置C-API
Merge pull request !3224 from 卢松/devytx7tree b5e73ac920160b10d63f14b9af485a339d64e1ce
parent 13748309fadaf09534112d0c43f42b438a7af15a
author zhaona45 <zhaona45@huawei.com> 1748317935 +0800
committer zhaona45 <zhaona45@huawei.com> 1748319332 +0800

ImageReceiver on回调支持传入用户自定义数据

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Anx@tree 82b4dc13b7399319206fb120c3434634332f4bad
parent c0ad71cdb252749c75135c744ab2c4c4e8dbdf25
author mobHot <hulei100@huawei.com> 1748316730 +0800
committer mobHot <hulei100@huawei.com> 1748316730 +0800

fix the interface

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: I499d22cf721b211c5bb43ff9574435e1cb56bd33
,o_xtree fa25d881f0d9a2fb9da76c401054813e7b2e9442
parent 156b73777ce00ed12b1a04303d4439d6a9f15f4a
author Jarvis <sunqingqiang@huawei.com> 1748316070 +0800
committer Jarvis <sunqingqiang@huawei.com> 1748316070 +0800

Add ROI Encoder Interface

Signed-off-by: Jarvis <sunqingqiang@huawei.com>
Yזxitree 7ec768673576c2c241fcf72c8fa62d6e7d72d1a5
parent bebab1990b1b0093e6d99ada37f28a613da55df3
parent 0afd786f866677a891095d690be255a815e4902d
author openharmony_ci <120357966@qq.com> 1748314049 +0000
committer Gitee <noreply@gitee.com> 1748314049 +0000

!3288 OH_Drawing_FontMeasureTextWithBrushOrPen and OH_Drawing_FontGetWidthsBounds parameter type change.
Merge pull request !3288 from wanyanglan/master/xHtree 05e6dd0b2eae85daa0303d189de5ed1e2ec0c684
parent 156b73777ce00ed12b1a04303d4439d6a9f15f4a
parent c39c13b9441930a7a5140c13de2009ee593ba445
author openharmony_ci <120357966@qq.com> 1748314001 +0000
committer Gitee <noreply@gitee.com> 1748314001 +0000

!3283 HTTP C接口增加
Merge pull request !3283 from liuleimin_hw/master1eБxqtree cb8ea4d2f8d64f6145bb60b2249760589765434b
parent 156b73777ce00ed12b1a04303d4439d6a9f15f4a
author wanyanglan <wanyanglan1@huawei.com> 1748155318 +0800
committer wanyanglan <wanyanglan1@huawei.com> 1748272471 +0800

OH_Drawing_FontMeasureTextWithBrushOrPen and OH_Drawing_FontGetWidthsBounds parameter type change.

Signed-off-by: wanyanglan <wanyanglan1@huawei.com>
Ayfx7tree 4e6f117eeae924fc0edb68367c48f07a98e5b5fa
parent a71923e413178db05f99912b6cf96a3889ba57d2
author liuleimin_hw <liuleimin1@huawei.com> 1748272425 +0000
committer Gitee <noreply@gitee.com> 1748272425 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>}e&x7tree 5401923a8ff085649bed42cc936cbf477bad9467
parent 1559b0d1f0c94eccd219c22582173da9df29bf53
author liuleimin_hw <liuleimin1@huawei.com> 1748269714 +0000
committer Gitee <noreply@gitee.com> 1748269714 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>Ydx7tree efaa288e7e2e932e6461951e0811595e6c521396
parent da13ec216725aefdc960606e8069759a05c9bb25
author liuleimin_hw <liuleimin1@huawei.com> 1748269633 +0000
committer Gitee <noreply@gitee.com> 1748269633 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>d2x7tree ef926cb801102bc9e9e086e51dce673b4c5d99b0
parent 9dda95d7a832b32feff2e4d7d02c279aa09bf94a
author liuleimin_hw <liuleimin1@huawei.com> 1748267829 +0000
committer Gitee <noreply@gitee.com> 1748267829 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>fx7tree 8b6693e4c3dfa5ae1c5ed19507179e982033461f
parent ce8b8dcda8f184dd34e0129b1a7011e8e7cbad83
author liuleimin_hw <liuleimin1@huawei.com> 1748261437 +0000
committer Gitee <noreply@gitee.com> 1748261437 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>eix%tree 197a2e4912d1448915fe36450aa03a4cb6c3be49
parent 156b73777ce00ed12b1a04303d4439d6a9f15f4a
author guanzengkun <guanzengkun@huawei.com> 1748258220 +0800
committer guanzengkun <guanzengkun@huawei.com> 1748259811 +0800

Image新增syncload

Signed-off-by: guanzengkun <guanzengkun@huawei.com>
`!xtree 7fd48a40afd98f9648af2b66352f2de5330e743f
parent 2044e482c0abab365dd1b2e45e9f255778195554
author liufei <liufei225@h-partners.com> 1748258688 +0800
committer liufei <liufei225@h-partners.com> 1748258688 +0800

refactor(graphic): rename text no glyph show related API

- Rename OH_Drawing_TextNoGlyphShow to OH_Drawing_TextUndefinedGlyphDisplay
- Rename OH_Drawing_SetTextNoGlyphShow to OH_Drawing_SetTextUndefinedGlyphDisplay
- Update related header file and JSON documentation

Signed-off-by: liufei <liufei225@h-partners.com>
ӗx7tree 0344c3f7dd73d15e1813b3578a900a97cb45a9bf
parent 36105fc75a967894a0d5640edf8018569f6c23f7
author liuleimin_hw <liuleimin1@huawei.com> 1748258576 +0000
committer Gitee <noreply@gitee.com> 1748258576 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>ޟd;x7tree 1a26c7b9c0bafffb34720014f79ba13bb7656ef6
parent 4aba8a587191fc95ae85d8b8f0fbe8baedce3bc7
author liuleimin_hw <liuleimin1@huawei.com> 1748256362 +0000
committer Gitee <noreply@gitee.com> 1748256362 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>Qfx7tree 550c06464093fb25e97eb6adfe3bdb5793f4c69f
parent 0956f24a84b6d4c3ac9c315a33cd4cefffc67d6d
author liuleimin_hw <liuleimin1@huawei.com> 1748255835 +0000
committer Gitee <noreply@gitee.com> 1748255835 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>fx2tree b850fdc1a214a041b090a391cdbbe5219222c707
parent 7b33524d90b79a30e0321f1db65aef66a7624400
author liuleimin_hw <liuleimin1@huawei.com> 1748252161 +0000
committer Gitee <noreply@gitee.com> 1748252161 +0000

update network/netstack/net_http/net_http.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>aݒx2tree 1a0a5b442202f7507020c54d223750a923550c46
parent ea55bb80ba241e373fd52c9cd0d410b071c41b4c
author liuleimin_hw <liuleimin1@huawei.com> 1748252074 +0000
committer Gitee <noreply@gitee.com> 1748252074 +0000

update network/netstack/net_http/net_http.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>Lax7tree 1af9ca200eb9831a3fdf8317161bc8a781356c28
parent 461f17abe383ee017f09cceb1680b40d2abecc22
author liuleimin_hw <liuleimin1@huawei.com> 1748251791 +0000
committer Gitee <noreply@gitee.com> 1748251791 +0000

update network/netstack/net_http/net_http_type.h.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>eGxPtree 03231175fb9cb3259a2a46512307d26e43eb4171
parent fd1576c269908daca4880dae8d9c3993fb139e77
parent 4c81069d35412461c8f05b9abe7ddbcbac6d3218
author openharmony_ci <120357966@qq.com> 1748250276 +0000
committer Gitee <noreply@gitee.com> 1748250276 +0000

!3290 add create with dma interface
Merge pull request !3290 from 屑屑屑/masterigx/tree 8e048a2a9e56b612101d7e8cb3241d2f746907f7
parent fd1576c269908daca4880dae8d9c3993fb139e77
author wangmengyao111 <wangmengyao17@huawei.com> 1748249125 +0000
committer Gitee <noreply@gitee.com> 1748249125 +0000

update network/netssl/BUILD.gn.

Signed-off-by: wangmengyao111 <wangmengyao17@huawei.com>R^xStree 275e7d23a2242647427620d1a2fcb261a35aee6b
parent f6a51153526dca718f83dfd92bfe3cc1c0c9c250
parent e551d19ca5ca32744acf9b2d76a50359e9cdd7af
author openharmony_ci <120357966@qq.com> 1748247168 +0000
committer Gitee <noreply@gitee.com> 1748247168 +0000

!3284 Remove ANI From Master
Merge pull request !3284 from Leechy/RemoveANIFromMasterf~x5tree ac129777c40734ff0c9d9635cc89958fd2a5a663
parent 420b877bf024a6efdf77e83bc1c9dab44d33405f
author 屑屑屑 <jiangwenda5@h-partners.com> 1748243454 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1748245055 +0800

add create with dma interface

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
ŵjxAtree f367724ecd0491ea4cce361a55168583f392144b
parent 19a0a08d868afc06f66ac0b0238dfc1a19fe0984
parent fba10530d49a09407858b039a8c4b1580aedd960
author openharmony_ci <120357966@qq.com> 1748230654 +0000
committer Gitee <noreply@gitee.com> 1748230654 +0000

!3289 修改注释
Merge pull request !3289 from qianyong325/master+c:xRtree 22c4a0864298ff27af71d5d6775079c7d4303364
parent 19a0a08d868afc06f66ac0b0238dfc1a19fe0984
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1748230334 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1748230334 +0800

Text控件支持去除行尾空格

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
v<yxGtree f4a40a5cecfbcf083b1f4c12a0f4ab8ac2380215
parent 657c38bcc0eb047832e6f391a84d17cdbc6be14f
parent 3618f465dc6d3e214e8dfcecb698929949dc17a2
author openharmony_ci <120357966@qq.com> 1748229354 +0000
committer Gitee <noreply@gitee.com> 1748229354 +0000

!3287 change to 20
Merge pull request !3287 from ancimoon/split_change_20?]b˙xtree e724b93a9ee644e039f03eb1e131cd330d0cb25b
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1746362110 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1748229341 +0800

capi自定义绘制层级完善

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

注释修正

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>

注释修正

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
l̑x1tree 3c549b99309d0a608f9e8eb6f835aa9241f57688
parent 32092575c62f9ed665f92aff47267708839d6ac7
author liufei <liufei225@h-partners.com> 1748227814 +0800
committer liufei <liufei225@h-partners.com> 1748229090 +0800

remove ui components and add prefix text

Signed-off-by: liufei <liufei225@h-partners.com>
?^xItree 5a15377e88c984b033a041777573f6340fd9fe01
parent 0a3ce67f93b7adfe4dd6486c9a1f6b9e8199f6d0
parent 0d3b1a9594b37359af570aa55c84d8eb55a9a033
author openharmony_ci <120357966@qq.com> 1748228729 +0000
committer Gitee <noreply@gitee.com> 1748228729 +0000

!3209 feat:sliderCAPI
Merge pull request !3209 from wangxiuxiu96/sliderCAPIbb6x-tree 0ec5a6e57fef476086114dc746bd8ae799e824fd
parent 5d39af88d63611c57be1e638f120d5b93b210af2
author qianyong325 <qianyong05@chinasoftinc.com> 1748223313 +0800
committer qianyong325 <qianyong05@chinasoftinc.com> 1748223313 +0800

修改注释

Signed-off-by: qianyong325 <qianyong05@chinasoftinc.com>
pbٔxDtree 6b3e1297e64dfbf67ff3c5f0fd659455996a019f
parent 85c94732b95eee5a45b579c2add88e74c7acc1cf
parent e67901d34945803670c87b9b46dfe708d25ab5c2
author openharmony_ci <120357966@qq.com> 1748174464 +0000
committer Gitee <noreply@gitee.com> 1748174464 +0000

!3285 udmf support delay drag
Merge pull request !3285 from zph/masterq?axEtree 8a43c23379ed4519fa0b5262a6156ac49d98f54b
parent a827558b882e661d491b8a20ef0350f2ac52c02b
parent 9c86ff18fec57f4d23d41a1490a9043143ea89b9
author openharmony_ci <120357966@qq.com> 1748156444 +0000
committer Gitee <noreply@gitee.com> 1748156444 +0000

!3281 add SetCaptureArea
Merge pull request !3281 from 李一鸣/mastercx	tree fb09365010b14da415b6fe3a68f2936e5fd76bc1
parent a827558b882e661d491b8a20ef0350f2ac52c02b
author huchang <huchang4@huawei.com> 1748153348 +0800
committer huchang <huchang4@huawei.com> 1748153358 +0800

change to 20

Signed-off-by: huchang <huchang4@huawei.com>
|PxRtree 351ab4cd09d8219997dfca0ff376655c7132e300
parent 10d6a65cd7d51a78e589d96485565de858db6df9
parent 6a284988c42ab89816d1d2a89d27535615d63f7a
author openharmony_ci <120357966@qq.com> 1748106255 +0000
committer Gitee <noreply@gitee.com> 1748106255 +0000

!3269 CAPI文本渐变色接口
Merge pull request !3269 from wjn/capi_text_gradientl>x=tree c377f7f244a0232033ac1152850bafeabbe3c79a
parent 52e6a0fef15663e601748f743a5d3cff0daad38f
parent 5ca0a998834ba625da01d99382c9523092da5133
author openharmony_ci <120357966@qq.com> 1748081203 +0000
committer Gitee <noreply@gitee.com> 1748081203 +0000

!3274 modify api 20
Merge pull request !3274 from yangxu/master,]xctree c3406e854f176717b0119d938906037c2284b4ab
parent ed1f89c9e7926f2ea1d3c9a166e47e98c1df0500
parent d106a44075f69cf9ee3b76fa7e4926beb1877760
author openharmony_ci <120357966@qq.com> 1748077331 +0000
committer Gitee <noreply@gitee.com> 1748077331 +0000

!3286 swiperSwiperDigitIndicator相关接口版本迁移
Merge pull request !3286 from 石红杰/0521cvxtree da6056d24a3b37e25ba933d9cc61d487f75d9393
parent bbe0a2f7eb6669734a10b7e7a4a8c24d12ad3f20
author zph <zhaopenghui8@huawei.com> 1748076951 +0800
committer zph <zhaopenghui8@huawei.com> 1748076951 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
֟Pxtree 752169974b31e10711fe8c98689fe3284142df2b
parent 1b13c806432101ccffe0a327adcfbcc926635e1b
author zph <zhaopenghui8@huawei.com> 1748076193 +0800
committer zph <zhaopenghui8@huawei.com> 1748076193 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>

Oǐxptree 57271629c2297e4a918233d8e2696657de3d34c3
parent 5e6993e8c80cc4dc6ce7b8efaca26fa0fb3b6d8e
author 石红杰 <shihongjie@huawei.com> 1748070673 +0800
committer 石红杰 <shihongjie@huawei.com> 1748070673 +0800

swiperSwiperDigitIndicator相关接口版本迁移

Signed-off-by: 石红杰 <shihongjie@huawei.com>
Change-Id: Ice8e580ef84298b9ea19abbea850de7bee25f679
+xatree c3406e854f176717b0119d938906037c2284b4ab
parent 9a28130a3f93755daa624aaafeac33c0fefa19e0
parent a055842aef30a1b85cdc0dd4e384fb7f62bd5db2
author openharmony_ci <120357966@qq.com> 1748063042 +0000
committer Gitee <noreply@gitee.com> 1748063042 +0000

!3267 childprocess增加ndk接口
Merge pull request !3267 from 夏良伟/native_child_process-0522<Js@xBtree 5dd44cf378fc29d0a2eb279f21bc11db0f5b2460
parent cf1e06eb12e7ee15ff842ab0835320205a7acbb2
parent 8e03e80afc1c49fbefccabac73f846f2c4f0f1f8
author openharmony_ci <120357966@qq.com> 1748060287 +0000
committer Gitee <noreply@gitee.com> 1748060287 +0000

!3232 修改接口描述
Merge pull request !3232 from zzz701/masterLh2xtree 95cab32bf4cafe33678ca46ae903a898e30c4f31
parent ea45614f971db50253df691f4e2621f2ae2592f0
author zzz701 <lihaima1@huawei.com> 1748057061 +0800
committer zzz701 <lihaima1@huawei.com> 1748057070 +0800

修改接口描述

Signed-off-by: zzz701 <lihaima1@huawei.com>
-W}x[tree f5a3e71b6400fda1fc94016cefa6769e8299c512
parent 52d2beb791f5eef39fcc1ae1498b3e09539aefcc
parent 52f3a80d122e0b4f3a918a8d99463959355838ce
author openharmony_ci <120357966@qq.com> 1748052303 +0000
committer Gitee <noreply@gitee.com> 1748052303 +0000

!3266 sync fence interface C upload
Merge pull request !3266 from 刘伟/syncFence_NDK_uploadXkxtree 5c0354dae5228db0dcdb2e90ee57062352fed372
parent 52d2beb791f5eef39fcc1ae1498b3e09539aefcc
author zph <zhaopenghui8@huawei.com> 1748005351 +0800
committer zph <zhaopenghui8@huawei.com> 1748005351 +0800

update

Signed-off-by: zph <zhaopenghui8@huawei.com>
QgxMtree 484cbb66df34a662c44387b3f2a07acca901f378
parent e617499ca8d2972ab6913d8e781a8041aba704ee
author xlw <xialiangwei1@huawei.com> 1747881352 +0800
committer xlw <xialiangwei1@huawei.com> 1748001323 +0800

childprocess增加ndk接口

Signed-off-by: xlw <xialiangwei1@huawei.com>
Change-Id: I818ff71ecaa04bf86b4caa9cac6d1dc7bc106d05
@kxctree e41ed368b38a7ed84a98bfb0946899a91d3d87c3
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
author LeechyLiang <liangweihong1@huawei.com> 1747991820 +0800
committer LeechyLiang <liangweihong1@huawei.com> 1748000283 +0800

Remove ANI From Master

Signed-off-by: LeechyLiang <liangweihong1@huawei.com>
Change-Id: If6c7287b397b02639022713f7f72acf36d4391d8
Qnsx>tree 96745d43b577c93e93de75c2970fa02bbb58e1b3
parent 609b18b109dd417f130f21ea31a0581b4da389ad
parent 5b009e0d251d68f837bda50b8b475deec71283f7
author openharmony_ci <120357966@qq.com> 1747999062 +0000
committer Gitee <noreply@gitee.com> 1747999062 +0000

!3247 修改capi注释
Merge pull request !3247 from bd/20250519)`a xMtree 231a92a715af47acc673f0bfb57ccdf3f267dd43
parent 544b4a919c083bbe1edebb4e99cf50bde5e2f334
parent 212e62813cce73f736e6a190bd3324cc8ace3f73
author openharmony_ci <120357966@qq.com> 1747998425 +0000
committer Gitee <noreply@gitee.com> 1747998425 +0000

!3275 Add Douyin NDK interface.
Merge pull request !3275 from wanyanglan/masterPemxYtree 99235af33d17b1e6d999f7bfb0f1a6687ffd4ad8
parent a47eb6ddaa84ce1b243374a7e1113a3867440af7
parent f3e674ec0f974eb9164371a7e02aecb97e5975c1
author openharmony_ci <120357966@qq.com> 1747997464 +0000
committer Gitee <noreply@gitee.com> 1747997464 +0000

!2620 xcomponent ndk optimize
Merge pull request !2620 from sunbees/xcomponent_ndk_optimizeCk+xGtree 60396f0e5d7fcb5cda8af732fad74f1b01e3a9e3
parent 9ccfc69d3f39027ca046aabb343b2dff0514094a
parent e708b11f0610f081a0fb686bdd422bad16b65980
author openharmony_ci <120357966@qq.com> 1747993966 +0000
committer Gitee <noreply@gitee.com> 1747993966 +0000

!3277 recordCmd支持嵌套
Merge pull request !3277 from li-kiao/record2fx0tree 06652dea32bdbac5d42f9e09ea77f7988ad5540f
parent 33c2c08972da802307ec501fbdd99c9962f0f7a8
author liuleimin_hw <liuleimin1@huawei.com> 1747991969 +0000
committer Gitee <noreply@gitee.com> 1747991969 +0000

update network/netstack/net_http/BUILD.gn.

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>ax2tree fe90843eec5de8bb83a1a6c77c9bffad7524b578
parent c7f8c6754ea1a9d7f058f7a672fbf0e7ae125da8
author lw19901203 <liuwei793@h-partners.com> 1745562408 +0800
committer lw19901203 <liuwei793@h-partners.com> 1747991905 +0800

sync fence interface C upload

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
Eo]xBtree a389d9bb59e0b26b7100893ace7db2b7a882108d
parent 44abf421ec323e4fd7b937029113f5c29b01990c
parent 8d6afb47b56ecb369cc88f4d3d813b00561e97c9
author openharmony_ci <120357966@qq.com> 1747991661 +0000
committer Gitee <noreply@gitee.com> 1747991661 +0000

!3279 API 20回合master
Merge pull request !3279 from 胡伟/mastercx`tree ce8d32fd693f49d9abd67035c6d03c67ecefb4c8
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
parent 2448233e23f8bffdabb6cc6d4b6003dd95e5d18f
author openharmony_ci <120357966@qq.com> 1747990711 +0000
committer Gitee <noreply@gitee.com> 1747990711 +0000

!3280 add textpicker's selected background style
Merge pull request !3280 from wangxiuxiu96/masterMnx$tree 1a392dab2a6348ac81492a44185623b29027db5e
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
author liuleimin_hw <liuleimin1@huawei.com> 1747988240 +0800
committer liuleimin_hw <liuleimin1@huawei.com> 1747988240 +0800

HTTP C接口增加

Signed-off-by: liuleimin_hw <liuleimin1@huawei.com>
q`x<tree c11f3d7fd643e709e496b105786bc54f9ea09b8e
parent 38ae032aef7d5bb9a2f65c07fe929c1980514633
author Trouvaille <wuminghua6@huawei.com> 1747987046 +0800
committer Trouvaille <wuminghua6@huawei.com> 1747987046 +0800

屏幕录制支持设置隐私窗口屏蔽模式

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
vxx<tree 5e1c5da365f83900fbe80dff7ce84446b105b58a
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
author Trouvaille <wuminghua6@huawei.com> 1747986887 +0800
committer Trouvaille <wuminghua6@huawei.com> 1747986887 +0800

屏幕录制支持设置隐私窗口屏蔽模式

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
1w֛xtree 60ca2f6b3e1e23ca1c2f6b337076905a8ff7352b
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
author 李一鸣 <liyiming21@huawei.com> 1747982204 +0800
committer 李一鸣 <liyiming21@huawei.com> 1747982204 +0800

add SetCaptureArea

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
axZtree ce8d32fd693f49d9abd67035c6d03c67ecefb4c8
parent f395fcbddd70db9515afbe63943bf486c30ae8dd
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747980557 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747980557 +0800

add textpicker's selected background style

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
t7xLtree 42b78bf42ab8b0501d4b7cbb0d58d4b7c7594908
parent b181005d9defdedb87bd3261ca9cbb267396c626
author sunbees <sunqinjia@huawei.com> 1747971494 +0800
committer sunbees <sunqinjia@huawei.com> 1747971494 +0800

xcomponent ndk optimize

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I1219aebcfc5fe1553d187041e3fb9b67c01a9e54
M1h=x5tree 80a1ace3ec072fa65375a26d3008e3598d223010
parent f9220c36690e3ede6d62ce8882bb027ae5a423f4
author 胡伟 <huwei169@huawei.com> 1747970854 +0000
committer Gitee <noreply@gitee.com> 1747970854 +0000

update backgroundtasks/transient/include/transient_task_type.h.

Signed-off-by: 胡伟 <huwei169@huawei.com>67fCx4tree 3b51f34fb2435a62455056d0cea22300f5c28856
parent 3db335c650f347027f65e277232617f6e1fe2f97
author 胡伟 <huwei169@huawei.com> 1747970794 +0000
committer Gitee <noreply@gitee.com> 1747970794 +0000

update backgroundtasks/transient/include/transient_task_api.h.

Signed-off-by: 胡伟 <huwei169@huawei.com>dxctree 45b2feb55e1499e1bcc90d7edf48d7f2107c1cd0
parent 1ee66b2686ec9ea1cda51116f2dd9c158b64241b
parent 4aa1d7061bef1a00cfeb4615352e50d358468525
author openharmony_ci <120357966@qq.com> 1747970790 +0000
committer Gitee <noreply@gitee.com> 1747970790 +0000

!3218 适配自定义dispatch table,增加ndk 接口
Merge pull request !3218 from ganchuantao/master[uՒx2tree 5443a7bd76b91c080882cd0e277ff9422b306518
parent 1ee66b2686ec9ea1cda51116f2dd9c158b64241b
author 胡伟 <huwei169@huawei.com> 1747970758 +0000
committer Gitee <noreply@gitee.com> 1747970758 +0000

update backgroundtasks/transient/libtransient_task.ndk.json.

Signed-off-by: 胡伟 <huwei169@huawei.com>extree 052ccdb8f355c5fad3569ca38488bb558d21a596
parent 1ee66b2686ec9ea1cda51116f2dd9c158b64241b
author li-kiao <lx.96@foxmail.com> 1747967226 +0000
committer li-kiao <lx.96@foxmail.com> 1747968194 +0000

recordCmd支持嵌套

Signed-off-by: li-kiao <lixiang284@huawei.com>
mVܟxOtree a002cf8d00f0896865b69cabf5407ef7cbe76375
parent d38a751f7d222c39dd00a0bf78f8527b832a27d2
parent 5e6993e8c80cc4dc6ce7b8efaca26fa0fb3b6d8e
author openharmony_ci <120357966@qq.com> 1747965756 +0000
committer Gitee <noreply@gitee.com> 1747965756 +0000

!3261 stackFromEnd接口版本迁移
Merge pull request !3261 from 石红杰/0521nxotree 5808ac94ed84d0474ae6bd6de8f9a24a591d649d
parent 582761bf54159e84034aea634dbcffd9fc698402
parent b181005d9defdedb87bd3261ca9cbb267396c626
author openharmony_ci <120357966@qq.com> 1747961672 +0000
committer Gitee <noreply@gitee.com> 1747961672 +0000

!2779 add modifier key state & keyboard indicator state for xcomponent key & mouse event
Merge pull request !2779 from sunbees/xc_add_modifier_key~-x`tree 2489133382d0c2aa1b6f2ae05ac3d7996bb402d4
parent ec6ea3aa3f77b4e74ad1b7f8767004dfaae3c981
parent ff753a3fe22e82d807c8f146687d84665c77e317
author openharmony_ci <120357966@qq.com> 1747925723 +0000
committer Gitee <noreply@gitee.com> 1747925723 +0000

!3190 CAPI支持onIdle事件回调0513
Merge pull request !3190 from wangxiuxiu96/CAPI_master_0507'o֖xVtree ef487a730082d85c438568b78c433b5cc13be5cb
parent 27f66e9f55eb2950d32e73520866f595e396960b
parent fb877c2f1be6d8d9f5e57f940431db64db16a557
author openharmony_ci <120357966@qq.com> 1747921588 +0000
committer Gitee <noreply@gitee.com> 1747921588 +0000

!3271 录屏NDK接口一致性修改
Merge pull request !3271 from Trouvaille/branch0522ox(tree a716529bb037055c477214d3c8956d997df15aba
parent 27f66e9f55eb2950d32e73520866f595e396960b
author wanyanglan <wanyanglan1@huawei.com> 1747918223 +0800
committer wanyanglan <wanyanglan1@huawei.com> 1747918223 +0800

Add Douyin NDK interface.

Signed-off-by: wanyanglan <wanyanglan1@huawei.com>
kp\Pxtree 116fbee36218e62d7561d267380d729ed0641e6d
parent f38a0b09b1ea7ad16af52171237a828b4356fe78
author yangxu <yangxu69@hisilicon.com> 1747915773 +0800
committer yangxu <yangxu69@hisilicon.com> 1747915773 +0800

modify api 20

Signed-off-by: yangxu <yangxu69@hisilicon.com>
CsSxStree f5184d524f2a52cc65650e615c25807071dd86aa
parent 8b10fc3451b8a2d10d2ffddf04f00952168a0068
parent 27f66e9f55eb2950d32e73520866f595e396960b
author yangxu <yangxu69@hisilicon.com> 1747915687 +0800
committer yangxu <yangxu69@hisilicon.com> 1747915687 +0800

Merge branch 'master' of https://gitee.com/waterme1ons/interface_sdk_c into 0522
gxtree 605a56f35c20dbd916989638afa3617ae29d5480
parent f3527a5ee64e2a937e7d5337e9438df0791a78e2
author yangxu <yangxu69@hisilicon.com> 1747896359 +0800
committer yangxu <yangxu69@hisilicon.com> 1747915237 +0800

modify api 20

Signed-off-by: yangxu <yangxu69@hisilicon.com>
:SxAtree da10029adef3c1abfc89fc233ea7be21174b3160
parent e9e979346989a5e14f1b3a4459dea3fa5784130c
parent 16a37ab630cb5d5f04f63f1af6c106fef2ef716e
author openharmony_ci <120357966@qq.com> 1747910144 +0000
committer Gitee <noreply@gitee.com> 1747910144 +0000

!3272 add json file
Merge pull request !3272 from zhouwenbo7/master`xWtree 2c0b09447e52d8546e3dffe27b88f8b532bb7280
parent 7aa704f0865771360088d8955750f05692503b1e
parent d1e6e684e7b9356390ded3e9b75d60770a8f78bb
author openharmony_ci <120357966@qq.com> 1747908836 +0000
committer Gitee <noreply@gitee.com> 1747908836 +0000

!3257 Swiper api change to API19
Merge pull request !3257 from xuzhidan/swiper_api19_0521e=xitree 4e77b771201480bbb33668046060c680786b0cc6
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
parent a4ee6702d2bfb70f1376eab957c5e1a4a0e487b1
author openharmony_ci <120357966@qq.com> 1747907858 +0000
committer Gitee <noreply@gitee.com> 1747907858 +0000

!3236 【napi】新增多context接口:新增多context接口
Merge pull request !3236 from shilei91/masterв{}xCtree 8e48bc692472e5b35b077506b5bceb5f03a9f3b9
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
author zhouwenbo7 <15689446+zhouwenbo7@user.noreply.gitee.com> 1747906060 +0800
committer zhouwenbo7 <15689446+zhouwenbo7@user.noreply.gitee.com> 1747906503 +0800

add json file

Signed-off-by: zhouwenbo7 <zhouwenbo7@huawei.com>
}~fx*tree aace8a18194b4617ebcceb8f8ff6650cf66c142d
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
author Trouvaille <wuminghua6@huawei.com> 1747898606 +0800
committer Trouvaille <wuminghua6@huawei.com> 1747898606 +0800

录屏NDK接口一致性修改

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
7ix0tree d0551166c61a186844a0e58b7525f2b15c376f04
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
author 刘永凯 <liuyongkai2@huawei-partners.com> 1747897491 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1747897491 +0800

scrolltoc

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
Jtjx(tree b65aef1104f2156c842c69b16303f5e9ebb6366b
parent ce5634b41b09bd7d8faa3dbd2d64e6f6699bbcd1
author wjnRance <wanjining@h-partners.com> 1747896006 +0800
committer wjnRance <wanjining@h-partners.com> 1747896006 +0800

CAPI文本渐变色接口

Signed-off-by: wjnRance <wanjining@h-partners.com>

erx_tree 91bb26d342f984f39b5a9c4f81690afe102118d7
parent 804207aad2a0da160b8a00b84c616c98f4edc1b0
parent 34466dd5020fc8e7fccd85b5d63174144a56e1ff
author openharmony_ci <120357966@qq.com> 1747882400 +0000
committer Gitee <noreply@gitee.com> 1747882400 +0000

!3264 录屏NDK接口注释拼写错误修改
Merge pull request !3264 from Trouvaille/branch0521v}xNtree 3409cffa03adcff367da42f8f537f5ad3a65b4f8
parent 770916a027903cebd6621c78b0f23b1148aea543
parent 91a094c5be49b6f07d7fbe368586bd4030bdda40
author openharmony_ci <120357966@qq.com> 1747881220 +0000
committer Gitee <noreply@gitee.com> 1747881220 +0000

!3245 C-API scope需求接口提交
Merge pull request !3245 from 刘永凯/0519lXxItree 1c1f8137505e0e44b40d1e426b39cf67ec13bcc1
parent c7f8c6754ea1a9d7f058f7a672fbf0e7ae125da8
parent 9b21d6fea507249a7b7cb913ca721f462d3a5eb0
author openharmony_ci <120357966@qq.com> 1747831730 +0000
committer Gitee <noreply@gitee.com> 1747831730 +0000

!3198 版本升级v1.4.309
Merge pull request !3198 from ZhangLiang/updata4L>f=x3tree 593fcec1dd2c0836a0bb258b6b1fbad7e73b4f2d
parent c7f8c6754ea1a9d7f058f7a672fbf0e7ae125da8
author Trouvaille <wuminghua6@huawei.com> 1747821617 +0800
committer Trouvaille <wuminghua6@huawei.com> 1747821617 +0800

录屏NDK接口注释拼写错误修改

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
p$x\tree 66d4dad1c4c3be7e664a89bf2590d1dbe4a73644
parent 941c4501f6db206d4cec3af01294e0f86e704a57
author 石红杰 <shihongjie@huawei.com> 1747817345 +0800
committer 石红杰 <shihongjie@huawei.com> 1747817345 +0800

stackFromEnd接口版本迁移

Signed-off-by: 石红杰 <shihongjie@huawei.com>
Change-Id: Icbfa3de99b0b7da08e1f8242187a616020c5512f
|Cxttree 0b6d97e435c32afce4d38b19c795be733048b73a
parent 5cc637e44d382a2958d20317763e46e9b92d58ab
parent 8e776724f35737b3bb31d1da2cd6cc5c062fb7bf
author shilei91 <shilei91@huawei.com> 1747817038 +0000
committer Gitee <noreply@gitee.com> 1747817038 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: shilei91 <shilei91@huawei.com>=txXtree e57809fdc38256283bfe9ee7bd761634003f4592
parent 8e776724f35737b3bb31d1da2cd6cc5c062fb7bf
parent 22216127a0a7cac0f38f9dcf1fbded6398f5b25c
author openharmony_ci <120357966@qq.com> 1747816985 +0000
committer Gitee <noreply@gitee.com> 1747816985 +0000

!2875 Drawing 增加pixelmap构造canvas接口
Merge pull request !2875 from yzj688/masterwoxtree b1909f87d150c217dcb793e5c2ed42c521e0509f
parent 61bfae84b9dac3d35f6c2f58280fa7a5d7705652
parent 8e776724f35737b3bb31d1da2cd6cc5c062fb7bf
author wangyaohui <wangyaohui17@huawei.com> 1747816193 +0000
committer Gitee <noreply@gitee.com> 1747816193 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>){Gx*tree daace73008e9276f502d4e877acc649e68b30ad9
parent 8d584feaf7fd321d178cba05159c650d3d2218e4
author wangyaohui <wangyaohui17@huawei.com> 1747815634 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747815634 +0800

[fix] 删除无用字段

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
l#e:xxtree 9fac94845ecaca319fba916fb8ae5284547674f0
parent 3b6e3bed8424f61aeb2ad211242bbf21181a22c8
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1747815304 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1747815304 +0800

CAPI:minAndMaxLines

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
Change-Id: I1f13425ccab5e9624181dc546935fbad9607f624
uxQxHtree c2016accaa963fe56a6a67ec1fe29b47fcf16059
parent 29cbd896ef9349a82b87fc28a52f2e2c15da6b33
parent 1b48e62783bdba95449611eda9508adbe4b3859d
author openharmony_ci <120357966@qq.com> 1747815302 +0000
committer Gitee <noreply@gitee.com> 1747815302 +0000

!3255 modify interface since
Merge pull request !3255 from shilei91/masterJcxRtree 4cf7b0d7a7afc64cad935c6b54ef0da2d896ac1c
parent 29cbd896ef9349a82b87fc28a52f2e2c15da6b33
author mobHot <hulei100@huawei.com> 1747812175 +0800
committer mobHot <hulei100@huawei.com> 1747813381 +0800

add the interface of glyph drawing.

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: If0ea70672777e3247722d2435e6caab62edf90b0
g;xTtree c688320de214321cf27232e93c47d9cb5a0d65d8
parent adb7cc1405190070445357f7f9feea3f4af95ecf
parent 1e6c4bf0efac264069a2fa3dc76c8f924b91572d
author openharmony_ci <120357966@qq.com> 1747813058 +0000
committer Gitee <noreply@gitee.com> 1747813058 +0000

!2837 add window ndk interface
Merge pull request !2837 from 红书包指挥官/master6mwxgtree f195d8358a10abe7eff686d93ac33f0f3284f4de
parent 192c496854afb2a1909be223db76365d3aa241b4
parent 76a91e54625754016c734ce080eeca1ef5a821de
author openharmony_ci <120357966@qq.com> 1747812985 +0000
committer Gitee <noreply@gitee.com> 1747812985 +0000

!3196 add the support for updating color and decoration
Merge pull request !3196 from hulei/trailingSpaceOnxtree 6ed8eb9b78870c675f34f93b3ffe12612560e604
parent 753e54227a0fd0c36749e539259806d860368a22
author liufei <liufei225@h-partners.com> 1747812173 +0800
committer liufei <liufei225@h-partners.com> 1747812173 +0800

add function to json

Signed-off-by: liufei <liufei225@h-partners.com>
KVxftree 563a29a24e515775241ea3e95fefc3c0810699a9
parent fd73605d85e532701fa79910dda1d689dd0de20b
parent 06bd632f9ad7aaa52d66569cb5dce7ca90fa5415
author openharmony_ci <120357966@qq.com> 1747808226 +0000
committer Gitee <noreply@gitee.com> 1747808226 +0000

!3258 修改OH_ArkWeb_RegisterScrollCallback注释告警
Merge pull request !3258 from zhufenghao/mastert͑xAtree 563a29a24e515775241ea3e95fefc3c0810699a9
parent fd73605d85e532701fa79910dda1d689dd0de20b
author zhufenghao <zhufenghao2@huawei.com> 1747802996 +0800
committer zhufenghao <zhufenghao2@huawei.com> 1747802996 +0800

修改OH_ArkWeb_RegisterScrollCallback注释告警

Signed-off-by: zhufenghao <zhufenghao2@huawei.com>
Fmޓx3tree b9ac491cef6bc7f837f5f15b3fab1b9e2501ef7e
parent 7db9fb5ac5e8630f698f62d692d77f771ba054cd
author wangyaohui <wangyaohui17@huawei.com> 1747795348 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747795348 +0800

[fix] 三个接口返回错误码

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
Nlŕxztree d4f2458e6a1ff2904b42de0a28e5a3230c30a42a
parent fd73605d85e532701fa79910dda1d689dd0de20b
author sunbees <sunqinjia@huawei.com> 1747794360 +0800
committer sunbees <sunqinjia@huawei.com> 1747794471 +0800

add modifier key state & keyboard indicator state for xcomponent key&mouse event

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: Icd90ea0e9e61c84cd434cd6c57fa08679af64f81
|!xtree 677829c666d97ca00de580dcb2e5791219a746fd
parent 5f42e7dd651b103fa0fae8386ae684ca6bb5c63e
author liufei <liufei225@h-partners.com> 1747794031 +0800
committer liufei <liufei225@h-partners.com> 1747794031 +0800

refactor(graphic): move font-related functions and enums

- Move OH_Drawing_UnregisterFont function to drawing_text_global.h
- Move OH_Drawing_NoGlyphShow enum and related function to drawing_text_global.h
- Update function and enum placements for better organization

Signed-off-by: liufei <liufei225@h-partners.com>
_Οxtree 6ecd5cc9185fd60c75f66dee4b5b9b5c4c94a622
parent 4c18f9f853d4fdbb4e8a41b9f8b91a315d839123
author liufei <liufei225@h-partners.com> 1747384526 +0800
committer liufei <liufei225@h-partners.com> 1747793958 +0800

update

Signed-off-by: liufei <liufei225@h-partners.com>
~Sےxtree 326292d808cf6bff6cabe2d3e06571c8287d6325
parent fd73605d85e532701fa79910dda1d689dd0de20b
author liufei <liufei225@h-partners.com> 1747384353 +0800
committer liufei <liufei225@h-partners.com> 1747793958 +0800

add ndk c

Signed-off-by: liufei <liufei225@h-partners.com>
hSxRtree 0739dc4030bf5f96ca0f9fee7f64848e85582bbf
parent fd73605d85e532701fa79910dda1d689dd0de20b
author xuzhidan <xuzhidan1@huawei.com> 1747793948 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1747793948 +0800

Swiper api change to API19

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: I0db0c2295619acec36e4ecd7d0deb2e54420bef0
hx}tree 61bac2ffc64b92664848ff036d8c1770f5aaade4
parent 55e80f2285716680fb5df87afc9752d65d98a380
parent fd73605d85e532701fa79910dda1d689dd0de20b
author ganchuantao <ganchuantao1@huawei.com> 1747788805 +0000
committer Gitee <noreply@gitee.com> 1747788805 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>A{xItree 51527024eb59d8309b6fc031a5aab2c91cdbf629
parent 9455cb8a31e8a42b5afdcfeaacca3fb3dc1a6140
parent 90892b6215e1bd481894ff3b837958a09f0c1bfb
author openharmony_ci <120357966@qq.com> 1747759003 +0000
committer Gitee <noreply@gitee.com> 1747759003 +0000

!3216 resource dir [回合]
Merge pull request !3216 from chenliming/master'exEtree d442b79f6fa0647c4a771ea004c0477ed7884846
parent 9f8cbf7d7afe1f2197d8da92643074977a9c76b2
author shilei <shilei91@huawei.com> 1747743728 +0800
committer shilei <shilei91@huawei.com> 1747752702 +0800

modify interface since

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I1f1d6d7d0407ffba5930577c8f3aaa7170126476
1bxYtree 2c6478340e5295457802b79d9a2a621bc1195361
parent fa9fbc1ba9c286a822a4df8f9f0b99d56101b4d8
parent 297063a59e0987fafa4e7d527652a5a1b7e1223d
author openharmony_ci <120357966@qq.com> 1747751323 +0000
committer Gitee <noreply@gitee.com> 1747751323 +0000

!3249 增加算法库Public C Api 头文件
Merge pull request !3249 from lichaochen/master3goxBtree f5c6d1c20e49df4bacbb034fec46ec8037c8ddd3
parent 5f6ae951fcb36025e433bf62cc7b8f5e458317ae
parent 812ecc2233788981460160a9efee05b25849a0b1
author openharmony_ci <120357966@qq.com> 1747751235 +0000
committer Gitee <noreply@gitee.com> 1747751235 +0000

!2791 Fallback argb
Merge pull request !2791 from caochuan/back_argb`xXtree 9b868d47fe47e219b87e400799a3e545b22b5d79
parent f3527a5ee64e2a937e7d5337e9438df0791a78e2
parent 8381bdd2746f9d3b08620cf0956fca0ac00d3106
author openharmony_ci <120357966@qq.com> 1747750793 +0000
committer Gitee <noreply@gitee.com> 1747750793 +0000

!3184 Support high contrast setting on APP
Merge pull request !3184 from ZY_encoder/master	gxtree 824cbb6fb4c485f7d19c57ef04ac2c0dd225af10
parent 8da2f8a26936f2d57c30c32cb475998cf836e53f
author b30058220 <baodi1@huawei.com> 1747666074 +0800
committer b30058220 <baodi1@huawei.com> 1747750209 +0800

修改capi注释

Signed-off-by: b30058220 <baodi1@huawei.com>
RxHtree e2bdf77df1099ef63d89cd1c9b1e5c762dbe85a3
parent fb131d844791568c8a6e522c46468e92e8874994
parent c2f39e42a0144b717dd56d5d8a2463fb077dcb04
author openharmony_ci <120357966@qq.com> 1747746309 +0000
committer Gitee <noreply@gitee.com> 1747746309 +0000

!2999 Add setPlaybackRate.
Merge pull request !2999 from zhangwt3652/speedkaxUtree 9ded778f2894e898522a2e169a1b509b447eef84
parent 9f8cbf7d7afe1f2197d8da92643074977a9c76b2
parent 5d39af88d63611c57be1e638f120d5b93b210af2
author openharmony_ci <120357966@qq.com> 1747744278 +0000
committer Gitee <noreply@gitee.com> 1747744278 +0000

!3250 UDMF NDK接口能力补齐回合
Merge pull request !3250 from qianyong325/master+n xntree 87c653eb6e2002305a6c169edb91b563e26f8958
parent bb9be3f1c021bf322e20dbe415225b7819ccfc7a
parent 91347b23ac65c86bb3efa6e8065beecb9ddc625d
author openharmony_ci <120357966@qq.com> 1747742602 +0000
committer Gitee <noreply@gitee.com> 1747742602 +0000

!3212 特性分支回合主干 6.0 RDB NDK接口仓代码合入
Merge pull request !3212 from zhangyuchao/master~x`tree 8c2bf3db0561fa167ded84f7188c343b85d7c749
parent 3b6e3bed8424f61aeb2ad211242bbf21181a22c8
parent 02cd63a087c8655abc333376e6d8d7dc26932acb
author openharmony_ci <120357966@qq.com> 1747742561 +0000
committer Gitee <noreply@gitee.com> 1747742561 +0000

!3229 增加头文件跳转sample链接
Merge pull request !3229 from chendawei8@huawei.com/masteruxMtree 06dd5f3b561e537019a2052206bf8bfa0a80e7a1
parent be48f57a7e9561cb1afa8a5639968497321a1ef7
author zhangwt3652 <zhangwenting15@huawei.com> 1747739496 +0000
committer Gitee <noreply@gitee.com> 1747739496 +0000

update multimedia/player_framework/avplayer/libavplayer.ndk.json.

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>Ջkx,tree 190c5badd3ca4764f2018c441c404d008a687613
parent 877e2f85d35784606dd86fe751241ff011891a9a
author chendawei8@huawei.com <chendawei18@huawei.com> 1747738310 +0000
committer Gitee <noreply@gitee.com> 1747738310 +0000

更新示例链接

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>ycԛx;tree 005f24ec253e739c837c286b07b8cb1080b5f954
parent 3b6e3bed8424f61aeb2ad211242bbf21181a22c8
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1747736350 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1747736350 +0800

rotateangle

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
fxRtree 97d2687cb287cde4140fb6bc08b0c4e294ff3b26
parent 474a81e3df0dcad188b5214e425739ae166e4519
parent 7fb5ab78bf0ae618bad152e32c33b0a9cd37020d
author openharmony_ci <120357966@qq.com> 1747726210 +0000
committer Gitee <noreply@gitee.com> 1747726210 +0000

!3244 add drawing_Effect_C(挑单)
Merge pull request !3244 from Li Xiaoxiang/mastergؒxmtree 88635133ecb39d0107810aed23a47cb689973e6b
parent d4b7956a8ebed67a39ee352195a67dd948da4f0d
parent 080467f8189f4cf64a34cd499b072b30cdfb2148
author openharmony_ci <120357966@qq.com> 1747717153 +0000
committer Gitee <noreply@gitee.com> 1747717153 +0000

!3243 add newDrawingCInterface (挑单）                                      Signed-…
Merge pull request !3243 from Li Xiaoxiang/Effect_C_master$wx[tree eae97872f7741f23a5278dc43fd00b0f830db948
parent 1650ad4430584552df4ad16ada9ac05d4c59a07b
parent f0e5443ffe3a6475a9f06de7cf14f1c6fdef1417
author openharmony_ci <120357966@qq.com> 1747716688 +0000
committer Gitee <noreply@gitee.com> 1747716688 +0000

!3037 hidebug新增抓抓栈与栈解析接口
Merge pull request !3037 from 于好强/masterxxnxPtree 1de5022a076b18b6ac9fc775d85f4b2cd37f4e09
parent e617499ca8d2972ab6913d8e781a8041aba704ee
parent 90956b2497e6b390b0447781ce5d02147cc438f5
author openharmony_ci <120357966@qq.com> 1747716125 +0000
committer Gitee <noreply@gitee.com> 1747716125 +0000

!3235 dialog状态查询
Merge pull request !3235 from yangbiao199318/dialog-state`gx|tree 053dd1f5b34d9f7182814966375f54b37374740c
parent f2534e253325ef5e7c892d707858382d899a7fd8
parent e617499ca8d2972ab6913d8e781a8041aba704ee
author ZY_encoder <zhouyong10@huawei.com> 1747713798 +0000
committer Gitee <noreply@gitee.com> 1747713798 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: ZY_encoder <zhouyong10@huawei.com>9wx9tree de248c24d6c65161eff076e5d9950b85a835cd7a
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author z00544238 <zyc.wei@huawei.com> 1747298202 +0800
committer z00544238 <zyc.wei@huawei.com> 1747712851 +0800

特性分支回合主干 6.0 RDB NDK接口仓代码合入

Signed-off-by: z00544238 <zyc.wei@huawei.com>
mnxytree 4facf6feb11074ef565720f82ed3a11c7c665a5e
parent 73a6036693f5075adeeca98950b12e9b7f36f894
author 刘永凯 <liuyongkai2@huawei-partners.com> 1747641828 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1747712392 +0800

C-API scope需求接口提交

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
Change-Id: I11572b1f483752d94f5ed5532b89a96bd698cad4
&dxAtree bfa0995cb586a50496672da98f2a659ce5a3d249
parent e617499ca8d2972ab6913d8e781a8041aba704ee
author qianyong325 <qianyong05@chinasoftinc.com> 1747711925 +0800
committer qianyong325 <qianyong05@chinasoftinc.com> 1747711925 +0800

UDMF NDK接口能力补齐回合

Signed-off-by: qianyong325 <qianyong05@chinasoftinc.com>
jlx+tree ebe380c8f8f6dfe044dcbe2be952fd39816d3d1b
parent e617499ca8d2972ab6913d8e781a8041aba704ee
author zzh593245631 <zhangzhaohua2@huawei.com> 1744278048 +0800
committer lcc <lichaochen@huawei.com> 1747709492 +0800

增加算法库Public C Api 头文件

Signed-off-by: zzh <zhangzhaohua2@huawei.com>
exXtree 6b31d265654700c3bac154ef0ca6374c07d4fc25
parent 0dde1c164db91e8a3f4b8d2e88afeb59942cc20e
parent 90d278d01b4b017f876411fd0f1abff46e5981d6
author openharmony_ci <120357966@qq.com> 1747665961 +0000
committer Gitee <noreply@gitee.com> 1747665961 +0000

!3185 textInput and textArea add CAPI
Merge pull request !3185 from wangxiuxiu96/text_05137gۙxytree 5e8d1dab755ba3ece05bd35a6927ae5217cb387b
parent 6e592c20e42657e0ec8bb45ac144faa11c1d27f4
parent d5af9b4e2421f915d495fbfcad6e0f031e866475
author openharmony_ci <120357966@qq.com> 1747663999 +0000
committer Gitee <noreply@gitee.com> 1747663999 +0000

!3242 新增音量铃音模式音频场景查询和监听接口
Merge pull request !3242 from zhangwt3652/volumeringersceneiԉax1tree bbcbe1e74713a0bc2ed267dcdbffe64c40e19845
parent 552e2634852b4d3efb90138587f9115a2bb7aa2a
author wangyaohui <wangyaohui17@huawei.com> 1747662735 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747662735 +0800

[fix] json文件中添加函数

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
ix[tree 5ab3b650383f5f85ff0b70a80f5a6757da614cdf
parent 8da2f8a26936f2d57c30c32cb475998cf836e53f
parent 86381cf8157bf663f1d702a4cdd5defbf6d89696
author openharmony_ci <120357966@qq.com> 1747662580 +0000
committer Gitee <noreply@gitee.com> 1747662580 +0000

!3241 Cherry-pick branch0411 to master
Merge pull request !3241 from Leechy/cherryPick2Mastergigxtree d438ae421c29ac5b6b293803de7acb5f1077d6f9
parent 67690201f14e48db4c7f82dfb0ab587bbfab2178
author ganchuantao <ganchuantao1@huawei.com> 1747651190 +0000
committer Gitee <noreply@gitee.com> 1747651190 +0000

修改注释

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>[]x:tree 0e87a0e93cbc54affa3d0ad775934aec5c46f644
parent 4b92478f47145191755c925c76fc07a6165b8967
parent 4d0c80de5e23d01884d25e0f04d1aa76e904ff6b
author openharmony_ci <120357966@qq.com> 1747648697 +0000
committer Gitee <noreply@gitee.com> 1747648697 +0000

!2679 新增CAPI
Merge pull request !2679 from yangxu/masterL$_xYtree 21cff16d062ea1aa030579833e4d4136af638afe
parent 73a6036693f5075adeeca98950b12e9b7f36f894
parent bacd5a92aa77db4e8fd2c216aba83a679dcab7b4
author openharmony_ci <120357966@qq.com> 1747647223 +0000
committer Gitee <noreply@gitee.com> 1747647223 +0000

!3239 增加算法库Public C Api 头文件
Merge pull request !3239 from lichaochen/master<qxOtree 164831ac11e3024357c60c4be6647e020553176b
parent 73a6036693f5075adeeca98950b12e9b7f36f894
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747115730 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747643706 +0800

textInput and textArea add CAPI

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
z5kxtree c653eb5e7c04e3a2ac4a7219b04c2d88261001c5
parent 177c6014c4cac5d91c0565b6ccf9cc7032061abf
author ganchuantao <ganchuantao1@huawei.com> 1747641685 +0000
committer Gitee <noreply@gitee.com> 1747641685 +0000

修改注释

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>CPZxZtree da77206c58abdea0ef6e67637710bb36866e72ec
parent af61fdcef2ef860706b1308a7602ad6459246107
parent a0610df2f5d84ee35274f954abf5e7871a038e03
author openharmony_ci <120357966@qq.com> 1747637280 +0000
committer Gitee <noreply@gitee.com> 1747637280 +0000

!3237 scrollBarMargin c infterface
Merge pull request !3237 from zhanghang/scrollBarMargin_cJixxtree 1b7daa9de9c5696e47f2741cb15cf8e4a1fd0a71
parent 0a5acc65aba313633bd5a90c2a146cc1694869b1
parent 080c5b74d62360641880c758a8eb3e2d2322e3fe
author openharmony_ci <120357966@qq.com> 1747637195 +0000
committer Gitee <noreply@gitee.com> 1747637195 +0000

!3183 【通用拖拽】支持应用自定义开启禁止角标显示
Merge pull request !3183 from wangxiuxiu96/forbiddenuxWtree 01eb67b0ab8efb4481482d16d1f1dae1882cef76
parent 90a2d16e7f63cf2cefc4871d7655bacb91e3a020
parent 70f11a249cc6d77ea4d9bfd85b47cf7a8d9f22e9
author openharmony_ci <120357966@qq.com> 1747637108 +0000
committer Gitee <noreply@gitee.com> 1747637108 +0000

!3238 Update swiper ndk.json to API19
Merge pull request !3238 from xuzhidan/swiper_api19hx1tree ab85e83bae4560e160f52af5f43cfe047c4d721f
parent 90a2d16e7f63cf2cefc4871d7655bacb91e3a020
author lixiaoxiang <lixiaoxiang0608@163.com> 1747636659 +0800
committer lixiaoxiang <lixiaoxiang0608@163.com> 1747636659 +0800

add drawing_Effect_C(挑单)

Signed-off-by: lixiaoxiang <lixiaoxiang0608@163.com>
!`XxEtree 4d2f0cb3ffbc338e1dedd428bcc546c4733abb26
parent 90a2d16e7f63cf2cefc4871d7655bacb91e3a020
author lixiaoxiang <lixiaoxiang0608@163.com> 1744862350 +0800
committer Li Xiaoxiang <lixiaoxiang0608@163.com> 1747635303 +0000

add newDrawingCInterface                                       Signed-off-by:<Lixiaoxiang0608@163.com>*]xTtree d384a55c9159ad61032041b07e9f1d952c49c07a
parent 90a2d16e7f63cf2cefc4871d7655bacb91e3a020
author zhangwt3652 <zhangwenting15@huawei.com> 1747634201 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1747634201 +0800

新增音量铃音模式音频场景查询和监听接口

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
Ux3tree b54b1b19010bc6d91d96fbc5c9c962b3c62d25fb
parent cb669c4ab2de67260be1de62e84081d57980fd42
author wangyaohui <wangyaohui17@huawei.com> 1747627538 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747627538 +0800

[fix] createPip增加config参数

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
fx5tree 14e01f8e80b053361e7ed4d3a08a0053c059a257
parent a3ade2ff8d682b5b0f93c4d47ce1e0b03ebf3be5
author wangyaohui <wangyaohui17@huawei.com> 1747627332 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747627332 +0800

[fix]接口变更，增加PipConfig

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
?jxUtree 41a71e2f7f2b3ee3a9de05f7e4241c498950fa3d
parent 4722563d27a569c1e5e031be896136e949e7ed89
parent 2992e0165b6d5903d7d2a04277dc41a43c10dd39
author openharmony_ci <120357966@qq.com> 1747626293 +0000
committer Gitee <noreply@gitee.com> 1747626293 +0000

!3220 新增设置打断模式接口
Merge pull request !3220 from zhangwt3652/0415mutezeoxOtree 8d94c6fb22d07398fb27b33170559fa7acb05786
parent 4722563d27a569c1e5e031be896136e949e7ed89
author LeechyLiang <liangweihong1@huawei.com> 1743135187 +0800
committer LeechyLiang <liangweihong1@huawei.com> 1747625918 +0800

Cherry-pick branch0411 to master

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IC8POJ
Signed-off-by: LeechyLiang <liangweihong1@huawei.com>
Change-Id: I8771e45b6e55227eb0f3f2dbc46c3c3a75d7bc73
jxKtree d7a7c3bad80f4b2dbff2394d1de6dbff1aebfeba
parent 850308159a931289769798f29e8a898afbc2a1a5
parent e783b9208961964e8bcb1315fe4adba2120eda4a
author openharmony_ci <120357966@qq.com> 1747623563 +0000
committer Gitee <noreply@gitee.com> 1747623563 +0000

!3213 自动空格优化
Merge pull request !3213 from lemon/autospace_masterؤk͜xtree d8ad9d7e23d193d7f0e80919c091d4f272b63ce1
parent 850308159a931289769798f29e8a898afbc2a1a5
author lcc <lichaochen@huawei.com> 1745739177 +0800
committer lcc <lichaochen@huawei.com> 1747622763 +0800

增加算法库Public C Api 头文件

Signed-off-by: lcc <lichaochen@huawei.com>
_ʗxWtree 97d865bbf75dad4b0bab52a829253ce11b397756
parent d453d96992838a564215ff3c4a68a2f3b698a283
author xuzhidan <xuzhidan1@huawei.com> 1747621793 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1747621793 +0800

Update swiper ndk.json to API19

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: I4d65fb67d3ec28a31f7e3ae2dc53f2dcce1a1934
FFjx,tree 43118a133a7a99409a8e79d2a3f7fad930d96c67
parent f5739cd0fcf90398e214a67a86aa4c976ea7b63a
author chendawei8@huawei.com <chendawei18@huawei.com> 1747621781 +0000
committer Gitee <noreply@gitee.com> 1747621781 +0000

修改链接名称

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>exXtree e1a92557628eda1226003ec3f63687ddd460df72
parent d453d96992838a564215ff3c4a68a2f3b698a283
parent 142c25de8032ebc3badcddce66fbfd2718f71a57
author openharmony_ci <120357966@qq.com> 1747621669 +0000
committer Gitee <noreply@gitee.com> 1747621669 +0000

!3089 Add focus wrap mode for grid
Merge pull request !3089 from zhanghang/gridFocus_sdk_c h~x{tree 1647e1ce5338b3e13243d5fe25db788731946c0e
parent d453d96992838a564215ff3c4a68a2f3b698a283
author zhanghang <zhanghang160@huawei-partners.com> 1747618557 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1747618557 +0800

scrollBarMargin c infterface

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
Change-Id: Iebec39d03688ecb630b758e93700cb9716c6178c
vix?tree 308b9b5f57b7d5de52b19bc00059182481619d88
parent cc9ed5c37b89227f93806a9610f92bdbf5f9da91
author 红书包指挥官 <gongjingbo2@huawei.com> 1747618435 +0000
committer Gitee <noreply@gitee.com> 1747618435 +0000

update arkui/window_manager/libwm.ndk.json.

Signed-off-by: 红书包指挥官 <gongjingbo2@huawei.com>qxqtree e556662a5bcd4291afc2fe7c3f114f493d0f8d5b
parent 0690ccafedc923cd3aa26f33b926e926cdf8c207
parent d453d96992838a564215ff3c4a68a2f3b698a283
author 红书包指挥官 <gongjingbo2@huawei.com> 1747618071 +0000
committer Gitee <noreply@gitee.com> 1747618071 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 红书包指挥官 <gongjingbo2@huawei.com>i~xHtree 23c1ab191cda87dbb7a0687af4e278fa891e17be
parent d453d96992838a564215ff3c4a68a2f3b698a283
author liukaii <liukai240@huawei.com> 1744953499 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747618025 +0800

ban

Signed-off-by: liukaii <liukai240@huawei.com>
Change-Id: I8e77c2e1fc8098979ebc033b31d6a56c86ac071a
]d.xJtree 71d6222275fda71f558487dc0c7d8e810794e73f
parent d453d96992838a564215ff3c4a68a2f3b698a283
author shilei <shilei91@huawei.com> 1747575011 +0800
committer shilei <shilei91@huawei.com> 1747575011 +0800

add multi-context interface

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Id14baf8157f97411148be57d95ba82ee0b51dc9e
^cǐxPtree b3818c6d5af393c4fdfb9020b7cd7e3ab2461176
parent d37f6bf7307db98707bea09222451a0127d1e142
parent 4a73e782539419cdab72e651e26e8f8add3048f3
author openharmony_ci <120357966@qq.com> 1747561838 +0000
committer Gitee <noreply@gitee.com> 1747561838 +0000

!3186 获取DragEvent的DisplayId
Merge pull request !3186 from wangxiuxiu96/drag3"hxEtree c4c3805a8702f04d75f7bfe55781216ade5beaf7
parent dd6a065740f6ff3c266a0aa6c212fdb2006b211a
author yangbiao199318 <yangbiao63@huawei-partners.com> 1747554388 +0800
committer yangbiao199318 <yangbiao63@huawei-partners.com> 1747554388 +0800

dialog状态查询

Signed-off-by: yangbiao199318 <yangbiao63@huawei-partners.com>
k>jxqtree 85721995fdbea26ba6e066a10edb0baa18e2fdd7
parent dd6a065740f6ff3c266a0aa6c212fdb2006b211a
parent df1fed0871f3c3311aa4e7f95740915a39b2f733
author openharmony_ci <120357966@qq.com> 1747554013 +0000
committer Gitee <noreply@gitee.com> 1747554013 +0000

!2685 Refresh支持最大下拉距离C接口定义
Merge pull request !2685 from zhanghang/refresh_maxpull_distanceb~xrtree c3f480bd1c0b4db1e3791a0ca3c77f1606c2ef91
parent a15f370c383ab49dbc18b38e02dab3da4fe043a1
parent d8dfeaf5ada4c4142d5333ce27a7ae71a21bcf56
author openharmony_ci <120357966@qq.com> 1747551676 +0000
committer Gitee <noreply@gitee.com> 1747551676 +0000

!3068 Swiper: add interface NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION
Merge pull request !3068 from Hu_zq/masterCFpx~tree f9cf47206244576dcbb0e9cff168839b9eec0116
parent d047e6b3cf0d9b8e47b01022711f45b6b2dcc169
parent dfebeee573b19f795ecbd962e2e758f75b8bf4ae
author openharmony_ci <120357966@qq.com> 1747493253 +0000
committer Gitee <noreply@gitee.com> 1747493253 +0000

!3226 【通用拖拽】支持应用在拖拽事件中获取拖起方信息
Merge pull request !3226 from wangweiyuan/drageventWikijxPtree 7c1445ee7f7eb50bfe4249d84d98b4339db73176
parent 1fa396ac6d3cb546dab0e1adfb6e81e582b7ad2f
parent dd2a2b860034548890a6d41d2031bb14d21c85be
author openharmony_ci <120357966@qq.com> 1747493203 +0000
committer Gitee <noreply@gitee.com> 1747493203 +0000

!3231 添加type类型key
Merge pull request !3231 from wangweiyuan/capi_event_key,klxltree 053d9c2197c94bb875322c80678b1ec9a328e4ab
parent 32503d4dfde8c3ee3bb9f65c7e1ecd7b7b3acf26
parent f41840e64b34b32419dcc8422ff142a9f5684b48
author openharmony_ci <120357966@qq.com> 1747490674 +0000
committer Gitee <noreply@gitee.com> 1747490674 +0000

!3228 录屏新增应用订阅窗口状态变化通知接口
Merge pull request !3228 from Trouvaille/myBranchTVxftree 4df887a8bd799f6740f54be48f361cd7584af04c
parent 24620f9566bb34078a0edc24c58bd849a964f880
parent bd11c2d31e51db11404f30403440eb9666793d64
author openharmony_ci <120357966@qq.com> 1747485917 +0000
committer Gitee <noreply@gitee.com> 1747485917 +0000

!2980 feat(typography): add function to handle encoded text
Merge pull request !2980 from Liufei/unicode%lxJtree 00114932f3beb18d12fee4038bc4cb07f2229b6f
parent 67f4c3fdce53f294536b2ff1d676d6dd50c9f489
parent c2eb940e2b39ef8c77b13a3525c86be37ce16977
author openharmony_ci <120357966@qq.com> 1747485787 +0000
committer Gitee <noreply@gitee.com> 1747485787 +0000

!3205 change level
Merge pull request !3205 from ancimoon/split_change_leveldix,tree 4f17d63789a6787661a42b0d19e328a012e3eef2
parent 5837b55fd79896e237b2acbea71ea35eb37ad0c5
author chendawei8@huawei.com <chendawei18@huawei.com> 1747481108 +0000
committer Gitee <noreply@gitee.com> 1747481108 +0000

修改注释描述

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>jdxbtree 9c3840fc50241ee9414e45e792c4f372160515bc
parent a6beb34e1f49cd5b5b5b107ce625e3f9be184478
parent 96ab1f83244ccd0de836c794496b81bbb9d4027f
author openharmony_ci <120357966@qq.com> 1747479928 +0000
committer Gitee <noreply@gitee.com> 1747479928 +0000

!3188 Swiper auto fill CAPI change to api19
Merge pull request !3188 from xuzhidan/swiper_api19_0513j_x+tree be9b4d9d374957560ef055e9f4c829a10c35498a
parent c0bb812807d01640d6d895ef23db7d27e75711b2
author wangyaohui <wangyaohui17@huawei.com> 1747479125 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747479125 +0800

[fix] json中添加函数

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
Rd,xLtree 8d5036b8ef1c339c13004f84b65dc8b970041ae1
parent 707f4c75bad70452ac7acd1f74d2f5d65343c2c4
parent c0bb812807d01640d6d895ef23db7d27e75711b2
author openharmony_ci <120357966@qq.com> 1747475807 +0000
committer Gitee <noreply@gitee.com> 1747475807 +0000

!3192 画中画新增ndk接口
Merge pull request !3192 from wangyaohui/masterUkWx:tree 1646be83bc3b5ce567523f8db92fa161fdb5ea85
parent ea45614f971db50253df691f4e2621f2ae2592f0
parent 08b2fe26fd867055564d839a227050d593d68a23
author openharmony_ci <120357966@qq.com> 1747473377 +0000
committer Gitee <noreply@gitee.com> 1747473377 +0000

!3219 udmfc
Merge pull request !3219 from qianyong325/mastera\|xCtree 4662848c407be23ad03364edf85012e8d55d7767
parent ea45614f971db50253df691f4e2621f2ae2592f0
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1747469765 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1747472635 +0800

添加type类型key

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
mx,tree 5bb5cef2dd5a4afe78923f1132a45b954be98631
parent 839704eb40783c145e1153e40664153e74827a1b
author chendawei8@huawei.com <chendawei18@huawei.com> 1747465304 +0000
committer Gitee <noreply@gitee.com> 1747465304 +0000

修改ArkWeb描述

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>8}ax,tree 2f7e1807ec0a1937b20cc8d2b6e6e2ce44799d75
parent df2d0e9c0c5b8711d24756763bd8532e39930d63
author chendawei8@huawei.com <chendawei18@huawei.com> 1747463981 +0000
committer Gitee <noreply@gitee.com> 1747463981 +0000

修改注释描述

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>YGdxdtree 19a747ab528ebe3d5838d1b4b1920434e7eee4c5
parent 90a18a819e3917f590d47ac70fefc3732ee06d57
author yuhaoqiang <yuhaoqiang@huawei.com> 1745483132 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1747457456 +0800

hidebug新增抓抓栈与栈解析接口

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
Change-Id: I9d530a953c721f762639b9d9e226ea5ca5789d1a
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
E;x3tree 62fd576e9d430c5e7c6c385d1636df7a7c4cd2df
parent e0e338c82d709c08cec48624919ddcf1aed91292
author wangyaohui <wangyaohui17@huawei.com> 1747453712 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747453712 +0800

[fix] 单行超过120，加换行

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
{ix;tree 0eaea80cb0d407b67e5a2c74ec48caf531fd34ee
parent ea45614f971db50253df691f4e2621f2ae2592f0
author chendawei8@huawei.com <chendawei18@huawei.com> 1747452707 +0000
committer Gitee <noreply@gitee.com> 1747452707 +0000

增加头文件跳转sample链接

Signed-off-by: chendawei8@huawei.com <chendawei18@huawei.com>nx$tree 3de03e0c29d9d0e24799ff89ac72e453f0d7136b
parent 014aa7a1249824bdb64a7b92aebad02df87f2230
author wangyaohui <wangyaohui17@huawei.com> 1747401662 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747401662 +0800

[fix] 删除重复

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
_`sx8tree 815edf738c39049d0f98fd9b9da60e6eb567ebb8
parent 3de88ac7bbc008d331b1cab86265a24e9eda674d
parent bf3f3154643d20bf01662d20013fe96aff27e7d3
author openharmony_ci <120357966@qq.com> 1747399243 +0000
committer Gitee <noreply@gitee.com> 1747399243 +0000

!3214 NativeVSync
Merge pull request !3214 from ljh/masterq+]x2tree d28aef071a10b5e279be23b046870e68cbaf3bc0
parent 88de6b7230bf69eedc8d070288b28ec294d78e80
author wangyaohui <wangyaohui17@huawei.com> 1747398429 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747398429 +0800

[fix] lifecycle 改为 lifeCycle

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
dx6tree 8650bdc41ada4de8a9115c68a2f8fb88621d3ce9
parent 48bdfd11f45fc791a2c72e8687177d80197f8183
author wangyaohui <wangyaohui17@huawei.com> 1747398042 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747398042 +0800

[fix] json 与 头文件保持一致

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
]k4x.tree dc32ea4c6457cbc2838e3f2250e3c946f654b1ce
parent e4d57ccb9d5b68bfb5bc0ad479380154efa71e5f
author wangyaohui <wangyaohui17@huawei.com> 1747397303 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747397303 +0800

[fix] 新增函数加入json

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
gx]tree 5698c834bca01040aeec0e6d6033f1fd1eb2ee23
parent 72e5b22d86ce8f2cb5cb55582fb46fa6772cd7a6
author wangyaohui <wangyaohui17@huawei.com> 1747396931 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747396931 +0800

[fix] 把结构体放在内部，不对外暴露；根据检视意见修改

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
0x?tree fdcbbe4358ba3b108683e80ceb76935abe008b75
parent 2474537a144088fd06b9b2cf51986cea86aa0e68
author wangyaohui <wangyaohui17@huawei.com> 1747395107 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747395107 +0800

[fix] 增加部分枚举注释，修改路径

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
bt9xItree fe0c369dfcc95bc731805d24fe75d452efd0b0a5
parent d61d6b889863a85f50cddec0c1eaf4c333448117
parent 4fda72076302e7a196e9329f40d7342eadc95c3c
author openharmony_ci <120357966@qq.com> 1747393566 +0000
committer Gitee <noreply@gitee.com> 1747393566 +0000

!3055 特性分支to主干编辑框占位文本和abilityName;支持短信验证码编辑框;编辑框应用发送清空候选词命令
Merge pull request !3055 from qianyong325/master&OmxTtree f70e488dec3555cb2b366ab5a6c59ddd88611300
parent 6ba6caeea79ed8be46a40a6cebb5a9743fc85690
parent 16734c034f784316be356ddc3ac9ed255ac974d0
author openharmony_ci <120357966@qq.com> 1747392834 +0000
committer Gitee <noreply@gitee.com> 1747392834 +0000

!3165 add debug and metadata interface 
Merge pull request !3165 from lanhaoyu/ndk05101fxtree 683b46ce442726295191f9492ba06aeb3ac9cc44
parent f7bd4b80942951a60ee27efd48b4c31a075bd83b
author huchang <huchang4@huawei.com> 1747390124 +0800
committer huchang <huchang4@huawei.com> 1747390124 +0800

add more

Signed-off-by: huchang <huchang4@huawei.com>
̣OxBtree ba755efe08d244512c075e752aac3c6cd1c4a240
parent 6ba6caeea79ed8be46a40a6cebb5a9743fc85690
author Trouvaille <wuminghua6@huawei.com> 1747386580 +0800
committer Trouvaille <wuminghua6@huawei.com> 1747386580 +0800

录屏新增应用订阅窗口状态变化通知接口

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
 {xHtree 17973f91a5750591ef77818fdb1eb0270293dc8b
parent b1770381db25e3fd39f84c82f787845bbfc93f1b
parent e85269d6d97700ca86b709161e963be7cd3f1548
author openharmony_ci <120357966@qq.com> 1747385702 +0000
committer Gitee <noreply@gitee.com> 1747385702 +0000

!3217 新增点分版本接口
Merge pull request !3217 from zzz701/masterY2ixtree 7d3cc9841d8dbfd03e5bca3ceba7e8865980a9ff
parent c6d086d3c8f8c33d85298305502dde3e88dd4ee7
author ganchuantao <ganchuantao1@huawei.com> 1747384923 +0000
committer Gitee <noreply@gitee.com> 1747384923 +0000

修改注释

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>|$\%xUtree 71cdb81a0e47978d83afd25790caa973a3a18653
parent f96f0761a8c7537f809a16f92e2a91c3bde37fcb
author wangweiyuan <wangweiyuan2@huawei-partners.com> 1747382598 +0800
committer wangweiyuan <wangweiyuan2@huawei-partners.com> 1747384863 +0800

【通用拖拽】支持应用在拖拽事件中获取拖起方信息

Signed-off-by: wangweiyuan <wangweiyuan2@huawei-partners.com>
Change-Id: I86b00a385db3760fda26d7f38b1e9bb62c3c2448
;xtree f9d4c9b5d485b08d9fe4954c5c406a86963ad17d
parent dec8f80f68c8f6dce00a07fa45100e5b03e6c229
author lemon_u <caimengyu2@huawei.com> 1747382433 +0800
committer lemon_u <caimengyu2@huawei.com> 1747383079 +0800

增加样式copy

Signed-off-by: lemon_u <caimengyu2@huawei.com>
sZԟx?tree 61845ac104a010dacdc3b63db26334f5f0528e6f
parent f96f0761a8c7537f809a16f92e2a91c3bde37fcb
parent c01a61ab7c7cef60e3f3c2d2ef34b60167e72089
author openharmony_ci <120357966@qq.com> 1747382367 +0000
committer Gitee <noreply@gitee.com> 1747382367 +0000

!3056 syscap 整改
Merge pull request !3056 from zhenghui/masterbxtree 36b214960738f3d2d53a8c112f43334f659a90e6
parent eb5eb80c9cc7be051b4e1ce80d02ca06ab44afc5
author lemon_u <caimengyu2@huawei.com> 1747382118 +0800
committer lemon_u <caimengyu2@huawei.com> 1747382118 +0800

增加样式copy

Signed-off-by: lemon_u <caimengyu2@huawei.com>
Znxtree 1ec54e901fa63a733e6b92ec2a311f31d73594fc
parent 77597f54ee394c9abf99b3610e7828e5d523ca7d
author lemon_u <caimengyu2@huawei.com> 1747381645 +0800
committer lemon_u <caimengyu2@huawei.com> 1747381645 +0800

增加样式copy

Signed-off-by: lemon_u <caimengyu2@huawei.com>
wZIxbtree 538d643204106c85d8a84a44ef029747f7b6d13c
parent 94d9287cf62954da54dcc087da8919a95395edce
author royce-ls <lusong11@huawei.com> 1747381503 +0800
committer royce-ls <lusong11@huawei.com> 1747381503 +0800

【DatePicker】添加列循环可配置C-API

Signed-off-by: royce-ls <lusong11@huawei.com>
Change-Id: I105981e66e03627e13c4bdefdbd00c0cfb4fcab9
@vxNtree 9b04ead02acd7f5ec166600a7d40f6593b3fdebd
parent 77597f54ee394c9abf99b3610e7828e5d523ca7d
parent 065ead34aa4fcbf7c2ca2b1fcb94cdb64d99a66c
author openharmony_ci <120357966@qq.com> 1747380494 +0000
committer Gitee <noreply@gitee.com> 1747380494 +0000

!3202 录屏框架新增策略接口
Merge pull request !3202 from xzcbob/master4qxtree 70b3fe90aa2c9e331cf12e9a5c8c71eebd561f28
parent a289db0992e4a9a5db080d1cfe59ef7eb569a835
author ganchuantao <ganchuantao1@huawei.com> 1747380020 +0000
committer Gitee <noreply@gitee.com> 1747380020 +0000

增加注释

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>2[x0tree 8036f88468d307c1a8d1284fc308edfb28ed194b
parent 0de61c2fdc4e073d59a9d98cd761360422ae9daa
author wangyaohui <wangyaohui17@huawei.com> 1747379162 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747379162 +0800

[fix] 根据API电子流修改

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
hxNtree 3701012f9b18a2cca7018d98d9e24f93f73f1a1b
parent a8151695a9d61bd63e0f933a4bff3c9c1d96a72c
parent 837a945454080ea74b45cdf7b326549859784692
author openharmony_ci <120357966@qq.com> 1747377546 +0000
committer Gitee <noreply@gitee.com> 1747377546 +0000

!3221 add native child exit
Merge pull request !3221 from hy05190134/fork_masterbjxNtree a7341fb092652c9e1b42697f334ba19c5ea27dfd
parent a5299abd0b86f0953714dcce78664c09eb0503bf
parent c72a8c91f30404aaaf7e94a3fe0fdb1ddbb392e5
author openharmony_ci <120357966@qq.com> 1747368384 +0000
committer Gitee <noreply@gitee.com> 1747368384 +0000

!3199 自动填充新增动效
Merge pull request !3199 from kangshihui/text_devnx!tree 34da453de8e9f8f254099fa964fcb800e2ed965a
parent df786eafba1939b7f17771779c2a83cbf2d6596f
author zzz701 <lihaima1@huawei.com> 1747367094 +0800
committer zzz701 <lihaima1@huawei.com> 1747367108 +0800

isApiVersionGreaterOrEqual 接口改名

Signed-off-by: zzz701 <lihaima1@huawei.com>
f]x~tree 6dd6aa481f42b07d55e091052f6c7bb065e02dee
parent df786eafba1939b7f17771779c2a83cbf2d6596f
parent caafea5b90371e05b35bfd1cc25c5bbf9dd6f5ba
author openharmony_ci <120357966@qq.com> 1747366592 +0000
committer Gitee <noreply@gitee.com> 1747366592 +0000

!3211 HUKS AliasSet相关接口,OH_Huks_WrapKey,OH_Huks_UnwrapKey接口添加
Merge pull request !3211 from 杨俊峰/0515masterW낽xhtree e60f5e97e4bf31a0152ec453cc45872405a4c565
parent df786eafba1939b7f17771779c2a83cbf2d6596f
author yangyang706 <yangyang706@h-partners.com> 1747366487 +0800
committer yangyang706 <yangyang706@h-partners.com> 1747366487 +0800

add native child exit

Signed-off-by: yangyang706 <yangyang706@h-partners.com>
Change-Id: Icf8a88f2c60d261cb87328d865a7409ca9063953
Smɓx#tree ca64640bad91b8bc845e8ae400d2dd311b2bf4a7
parent df786eafba1939b7f17771779c2a83cbf2d6596f
author ShortMessage <qianyong15@h-partners.com> 1747363463 +0800
committer ShortMessage <qianyong15@h-partners.com> 1747363463 +0800

udmfc

Signed-off-by: ShortMessage <qianyong15@h-partners.com>
\xntree a64360534a2ad0f099fe26649209aac853f4b426
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author zhangwt3652 <zhangwenting15@huawei.com> 1747363133 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1747363335 +0800

新增设置打断模式接口

Change-Id: I43a466139c395f2f4c8837e471e2fcecc9ea6019
Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
&@{x6tree 190cffbd04659dc24e503fcd08edd53e61bcec78
parent df786eafba1939b7f17771779c2a83cbf2d6596f
author ganchuantao <ganchuantao1@huawei.com> 1747362004 +0000
committer Gitee <noreply@gitee.com> 1747362004 +0000

适配自定义dispatch table,增加ndk 接口

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>plxHtree d9d71f42bf07f8eacd5d74baa2e7a46c42c7fd3f
parent 58c47f9c10a61dfc1bd0bc8dbffe9dd623b288eb
parent d1dfaf94e9cec9836d0cbef83c77a723502f7b9b
author openharmony_ci <120357966@qq.com> 1747324050 +0000
committer Gitee <noreply@gitee.com> 1747324050 +0000

!3178 longpressApi
Merge pull request !3178 from wangxiuxiu96/longpressApi(fwxStree fea0f4fdc2083a15928ed2d8593e645250d78de5
parent ec6f2e2ea490beca934898a6c1f66fde2bdb094d
parent 78997d0d86cc0911866f693fcbfbe37a1ce6a96c
author openharmony_ci <120357966@qq.com> 1747323723 +0000
committer Gitee <noreply@gitee.com> 1747323723 +0000

!3180 获取文本行数的CAPI实现
Merge pull request !3180 from wangxiuxiu96/linex;pxRtree 64f7c6b28dc78247648ec24d72c19584120c27f1
parent 61bf2936746933f5ac09df96d50ab6975ee1c365
parent 62924c1b9a48c3344326e3c0b9105a7fd26b3ba5
author openharmony_ci <120357966@qq.com> 1747317429 +0000
committer Gitee <noreply@gitee.com> 1747317429 +0000

!3201 新增编解码接口
Merge pull request !3201 from zhaona45/add_new_interfaceԼkxYtree 2a728a2e418d72a17eaf50f70cee979f07a672b9
parent 6fa1fe38d178234e2a711b7daae928ee9e4af2ed
parent 463154bd1a60a1345de46ce6a6961faaaae28082
author openharmony_ci <120357966@qq.com> 1747315560 +0000
committer Gitee <noreply@gitee.com> 1747315560 +0000

!3191 feat:add stateStyle capi interface
Merge pull request !3191 from 潜秋宏/stateStyle[lxutree 281f004607f2d744f1c78e67ebdf2e4cd3fc67c5
parent 7ad84a5639e30ae4c8f3c4f050394af237dcfa26
parent 2a9f14de93d8f713ba6552ce832cfc75f15e089d
author openharmony_ci <120357966@qq.com> 1747314711 +0000
committer Gitee <noreply@gitee.com> 1747314711 +0000

!3016 输入组件（TextInput、TextArea）增加”验证码”类型
Merge pull request !3016 from wangxiuxiu96/otc6l;xHtree 0a044e58177a5296752d1b5d4fb93b127f5deb09
parent 1200474cba2462c79f44c1b8178b0a38ed5d0ed3
parent ec85a4a86a8cc10ea278b92b26b8e917ab5e6abf
author openharmony_ci <120357966@qq.com> 1747306789 +0000
committer Gitee <noreply@gitee.com> 1747306789 +0000

!3215 fix GetPropertyWithNull
Merge pull request !3215 from AiChaosN/Api19}bkx^tree 80967c27016641ed6bd5288618613644e6308440
parent fc96c2121bcb84c39f6df646bb620a5750b9b2a0
author AiChaosN <ninghaoran@h-partners.com> 1747303104 +0800
committer AiChaosN <ninghaoran@h-partners.com> 1747303104 +0800

fix GetPropertyWithNull

Change-Id: I0752c029610166d3e2a9dad42ae242dc59a58e98
Signed-off-by: AiChaosN <ninghaoran@h-partners.com>
ujܞx^tree 1b9285d477eda5fd12ebd46f304d727445b0080d
parent 860ff6ad97a2f2d2db60108db56ad5b1833e4a09
author AiChaosN <ninghaoran@h-partners.com> 1747302875 +0800
committer AiChaosN <ninghaoran@h-partners.com> 1747302875 +0800

fix GetPropertyWithNull

Change-Id: Ib1f13f6e39a035138160f41827438f09352dd763
Signed-off-by: AiChaosN <ninghaoran@h-partners.com>
kxktree fa8b425be9cc5c8585ff48852b06420e2ed079ac
parent c76b8a17f9757acc5b89c5d0d31a58a1bc2229e3
parent c354b8ea0e14ece8b6c874d5cb6df69b6b95e534
author openharmony_ci <120357966@qq.com> 1747301982 +0000
committer Gitee <noreply@gitee.com> 1747301982 +0000

!3200 update third_party/musl/ndk_script/adapter/libc.ndk.json.
Merge pull request !3200 from Lumos235/masterpؘxHtree 652404da1fe2be542eb0fad06a2161467f5fed92
parent 90a18a819e3917f590d47ac70fefc3732ee06d57
parent 881bd5e6955b26fd7c30dc2f8f8ec7b0f157b448
author openharmony_ci <120357966@qq.com> 1747301574 +0000
committer Gitee <noreply@gitee.com> 1747301574 +0000

!3197 fix syscap interface
Merge pull request !3197 from zhouwenbo7/masterchxJtree e00a7e893465ed46036d735db6e02e3681eb25a5
parent becc55b6a40aad5209d925d4550a3292a92efa15
author zhaona45 <zhaona45@huawei.com> 1747212880 +0800
committer zhaona45 <zhaona45@huawei.com> 1747301021 +0800

新增编解码接口

Signed-off-by: zhaona45 <zhaona45@huawei.com>
Change-Id: I9b146c285bfc8d222c4c1cb2961caaa04cf96ed0
,jx2tree 0e3a54973bd57f3106552196f1a3d88600bca16e
parent 0f0fdc6098ad9c55ab18486db6b5781da112064b
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1747300091 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1747300091 +0800

0515修改3

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
bA_xBtree f78c436ead5b4e1fae74c0ebdb1122fcd47bd02f
parent ec9131988069a09c274118b452038a40c7f43f98
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1747299061 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1747299061 +0800

wrap key 相关接口添加

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
^kOxtree 2dacd9e6c79c154f97ee6be5ac749b08bbaecd8a
parent d42182cd502ca8976674db52ee12922c882c79c4
author ljh <liujianhong6@huawei.com> 1747298695 +0800
committer ljh <liujianhong6@huawei.com> 1747298695 +0800

NativeVSync

Signed-off-by: ljh <liujianhong6@huawei.com>
Rȕxtree 86c6eb5763794ea4896de40b199731c3fd8c14b8
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author lemon_u <caimengyu2@huawei.com> 1747298283 +0800
committer lemon_u <caimengyu2@huawei.com> 1747298283 +0800

自动空格优化

Signed-off-by: lemon_u <caimengyu2@huawei.com>
]ēxCtree c3d53609674c142f93b10dd25fcb49e52653ef36
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
parent 11afe4494cb699112903d9a3272254bf3d1c3b68
author openharmony_ci <120357966@qq.com> 1747298233 +0000
committer Gitee <noreply@gitee.com> 1747298233 +0000

!3208 修改生成路径
Merge pull request !3208 from shilong/mastergUxAtree 48016bc5994909e350dc10cd2c6e2c6e04c35e57
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1747298039 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1747298039 +0800

AliasSet相关接口添加

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
1k̗x'tree d606537ea81f91345ab43dada936966a5a0b1ab9
parent 212d25f64365562b997a92ebe6d1762cf3710f8f
author qianyong325 <qianyong15@h-partners.com> 1747295947 +0800
committer qianyong325 <qianyong15@h-partners.com> 1747295947 +0800

更新注释

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
>_fx=tree 92c2e6f1f86849d76c5db3b2cea2555a8bd91d74
parent de4b2a9fbd553a9b91c5953d6bb601abf8dffa66
author Lumos235 <luojie119@h-partners.com> 1747295676 +0000
committer Gitee <noreply@gitee.com> 1747295676 +0000

update third_party/musl/ndk_script/adapter/libc.ndk.json.

Signed-off-by: Lumos235 <luojie119@h-partners.com>Nex?tree 6bed6d98b40067b7961ea3498935e5edd9eeef43
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747286732 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747286732 +0800

feat:sliderCAPI

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
ixtree c3d53609674c142f93b10dd25fcb49e52653ef36
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author shilong <dragon.shilong@huawei.com> 1747280926 +0000
committer Gitee <noreply@gitee.com> 1747280926 +0000

修改生成路径

Signed-off-by: shilong <dragon.shilong@huawei.com>)^x	tree 5826a02725e40da4a2af0d439855e0b07323145d
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author huchang <huchang4@huawei.com> 1747269861 +0800
committer huchang <huchang4@huawei.com> 1747269861 +0800

change level

Signed-off-by: huchang <huchang4@huawei.com>
[QxCtree a286f41dd89d6d20eda4169009533ebd09be3e00
parent 38b27ad4bfc477aafb475fb94f2c97aa9bf7e18c
author qian-qiuhong <qianqiuhong@h-partners.com> 1747229396 +0800
committer qian-qiuhong <qianqiuhong@h-partners.com> 1747229396 +0800

feat:add stateStyle capi interface

Signed-off-by: qian-qiuhong <qianqiuhong@h-partners.com>
jxZtree 069b2caa148b103cd1352ac323a0bb3c0b236170
parent becc55b6a40aad5209d925d4550a3292a92efa15
parent 9b81f7c4f0721b00594b6049751e96f2c5fab199
author openharmony_ci <120357966@qq.com> 1747215084 +0000
committer Gitee <noreply@gitee.com> 1747215084 +0000

!3187 EmbeddedComponent接入NDK
Merge pull request !3187 from Lby/lby_EmbeddedComponent_NDK3jlx6tree cb4be800186e1dfd0ab419edce3e53532089a22e
parent e9e8d9c16456b6240b12ed39a890e7b839745958
author Lumos235 <luojie119@h-partners.com> 1747210583 +0000
committer Gitee <noreply@gitee.com> 1747210583 +0000

update third_party/musl/ndk_musl_include/malloc.h.

Signed-off-by: Lumos235 <luojie119@h-partners.com>avxWtree 7cea73962c74ab6380c956dee464aea86424e80f
parent becc55b6a40aad5209d925d4550a3292a92efa15
author kangshihui <kangshihui@huawei.com> 1746538413 +0800
committer kangshihui <kangshihui@huawei.com> 1747209064 +0800

自动填充新增动效
Signed-off-by:kangshihui<kangshihui@huawei.com>

Change-Id: I162d4a436ccf8ef504bfb97824421e1fbedd942c
!txtree 809a6027574f02041b82f4a64c1b71d6a0651ce4
parent 18e1f4bd63f1ce362978ca0553bda7df0fcfebeb
author zaoul <zhangmenglu@huawei.com> 1747207345 +0800
committer zaoul <zhangmenglu@huawei.com> 1747207345 +0800

版本升级v1.4.309

Signed-off-by: zaoul <zhangmenglu@huawei.com>
KZ5x=tree f25029153caab95b9f849ce15c520d63203f0608
parent cb2e1662ddcb9f06ffd3eaab0b2b5db9cdcc4cf4
author Lumos235 <luojie119@h-partners.com> 1747206162 +0000
committer Gitee <noreply@gitee.com> 1747206162 +0000

update third_party/musl/ndk_script/adapter/libc.ndk.json.

Signed-off-by: Lumos235 <luojie119@h-partners.com>Ժexxxtree a4c645bf46b3ecf080dfdff0706af458e6cbb4f6
parent 7ad9c0550fb3b2e8e9a2e0a74b7fab0d650ec2be
parent 391811f7c1805907a999a22d6aa3e70b2c02ce94
author openharmony_ci <120357966@qq.com> 1747204155 +0000
committer Gitee <noreply@gitee.com> 1747204155 +0000

!3193 【button】CAPI ARKUI_BUTTON_ROUNDED_RECTANGLE change to 19
Merge pull request !3193 from yyuanche/button_type_0513pt!x*tree ab275b36aa52602ff53e07225b5c1c5ebf2945c8
parent 7ad9c0550fb3b2e8e9a2e0a74b7fab0d650ec2be
author xuzhangchi <xuzhangchi@huawei.com> 1747194855 +0800
committer xuzhangchi <xuzhangchi@huawei.com> 1747194855 +0800

录屏框架新增策略接口

Signed-off-by: xuzhangchi <xuzhangchi@huawei.com>
^jxJtree 175f4f79010526dbdb8476fd378b564b301dd072
parent 7ad9c0550fb3b2e8e9a2e0a74b7fab0d650ec2be
author zhouwenbo7 <15689446+zhouwenbo7@user.noreply.gitee.com> 1747194414 +0800
committer zhouwenbo7 <15689446+zhouwenbo7@user.noreply.gitee.com> 1747194414 +0800

fix syscap interface

Signed-off-by: zhouwenbo7 <zhouwenbo7@huawei.com>
i	x`tree f1f0fdca1f4d1679bab0a1e33c25053bfd2633c0
parent 60f9cadfd143b9232ed769c88e03813cb82ebb39
author mobHot <hulei100@huawei.com> 1746435703 +0800
committer mobHot <hulei100@huawei.com> 1747193594 +0800

add the support for updating color and decoration

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: Ie307fb95d17080cfb864ead948e9d70bcd6a1de4
flmxZtree 80564d8a4bdb31887fad5b131485aec8c2988493
parent 1f11c73ca9318dcef079bb16ca028604c11413d5
author mobHot <hulei100@huawei.com> 1745153895 +0800
committer mobHot <hulei100@huawei.com> 1747193498 +0800

add the support for trimming line end space

Signed-off-by: mobHot <hulei100@huawei.com>
Change-Id: Ie9ed8598790afff270517980b095e260e3e1ed75
hzxDtree ab8324d91c9d2ae43e2a8cdcbc46a8820c2773c5
parent 6d1baed6e852a4904559521e27e918599dfe9a63
author yyuanche <yuancheng25@huawei.com> 1747193295 +0800
committer yyuanche <yuancheng25@huawei.com> 1747193295 +0800

【button】CAPI ARKUI_BUTTON_ROUNDED_RECTANGLE change to 19
Signed-off-by: yyuanche <yuancheng25@huawei.com>
gxLtree 787cffe90d561ca51714df571447b122d2a4adfa
parent 1f11c73ca9318dcef079bb16ca028604c11413d5
parent 6fc71df17074a0cb5ba5ed2ec91d1917db4087c1
author openharmony_ci <120357966@qq.com> 1747191441 +0000
committer Gitee <noreply@gitee.com> 1747191441 +0000

!2844 interface_sdk_c添加opengl
Merge pull request !2844 from zhangqiang/gl4dgxXtree 941995e8cbd9635296147e9cb9dbe5bf577b4e90
parent d0f51d49dc6e0e7cb50d8ec82c23b8843c4bd0a9
parent 16f991e0df25b82a7dc794d0d1eccdb3918fce17
author openharmony_ci <120357966@qq.com> 1747188455 +0000
committer Gitee <noreply@gitee.com> 1747188455 +0000

!2792 新增高保真拾音通路native API
Merge pull request !2792 from trytocalm/mastersoxtree 9a020031f712805f8e4637c6a47557e0db066863
parent 6e2607c7ab681fc20a193ced68d2176c3926831f
author Lby <liboyu12@huawei.com> 1747188037 +0800
committer Lby <liboyu12@huawei.com> 1747188037 +0800

EmbeddedComponent接入NDK

Signed-off-by: Lby <liboyu12@huawei.com>
Qx6tree 58013d4e4e4b874ffea2f7c1d654bde0d0c8c8c9
parent d0f51d49dc6e0e7cb50d8ec82c23b8843c4bd0a9
author Lumos235 <luojie119@h-partners.com> 1747187866 +0000
committer Gitee <noreply@gitee.com> 1747187866 +0000

update third_party/musl/ndk_musl_include/malloc.h.

Signed-off-by: Lumos235 <luojie119@h-partners.com>Fcx"tree 7b2de4db5fd50377d775ec96109f356787751aba
parent a4d49534fe6406ff3eef749a8cf283b63ca24ef6
author zhangqiang <ethanzhang2098@163.com> 1747186072 +0800
committer zhangqiang <ethanzhang2098@163.com> 1747186072 +0800

first_introduced 20

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
Xx3tree 63b9de70d069b0c4261484b270069f3c44e3ff27
parent 98d8a68fa5bb6f46d1b3147af3a477167dd92c93
author 蒋志庆 <jiangzhiqing4@h-partners.com> 1747144884 +0800
committer 蒋志庆 <jiangzhiqing4@h-partners.com> 1747144884 +0800
encoding uft-8

bugfix

Signed-off-by: 蒋志庆 <jiangzhiqing4@h-partners.com>
ixPtree d4e93d195297af923c8d8e0bb9dd898273e173b8
parent 6d1baed6e852a4904559521e27e918599dfe9a63
parent 6ba0f710185b655dcefd1dbda87620ae6859dbe3
author openharmony_ci <120357966@qq.com> 1747144461 +0000
committer Gitee <noreply@gitee.com> 1747144461 +0000

!3176 change since 19 to since 20
Merge pull request !3176 from CheerfulRicky/workdx#tree 48fd54dcfe89d212f96394e55f4bbc0e9edc345f
parent 6d1baed6e852a4904559521e27e918599dfe9a63
author wangyaohui <wangyaohui17@huawei.com> 1747141144 +0800
committer wangyaohui <wangyaohui17@huawei.com> 1747141144 +0800

[featire] pip ndk

Signed-off-by: wangyaohui <wangyaohui17@huawei.com>
u\xYtree 47d4b412154529c25c2df417b894204fef8b4580
parent f8810b6233a0a775e073ff31c05c7bf9087c73c9
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747130107 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747130107 +0800

CAPI supports onIdle event callback 0513.

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
nxStree 4a7ee296a866e0bb910b14dcb135d374c0f5beca
parent 6e2607c7ab681fc20a193ced68d2176c3926831f
parent 860ff6ad97a2f2d2db60108db56ad5b1833e4a09
author openharmony_ci <120357966@qq.com> 1747130096 +0000
committer Gitee <noreply@gitee.com> 1747130096 +0000

!3130 添加api19的相关WithNull接口
Merge pull request !3130 from AiChaosN/Api19mmxtree 1795d4d7ee39a8d7a65314d626a7b9bad41b80b5
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author zhenghui <zhenghui25@huawei.com> 1745928238 +0800
committer zhenghui <zhenghui25@huawei.com> 1747123472 +0800

syscap 整改

Signed-off-by: zhenghui <zhenghui25@huawei.com>
OXBx0tree 3d54f84452f8b22eff4f2825139413299ed5eeec
parent 6e2607c7ab681fc20a193ced68d2176c3926831f
author ZY_encoder <zhouyong10@huawei.com> 1747115327 +0800
committer ZY_encoder <zhouyong10@huawei.com> 1747123334 +0800

Support high contrast setting on APP

Signed-off-by: ZY_encoder <zhouyong10@huawei.com>
o_x]tree a09b6e1ab9b72dd076252bf8a7036a7bebd45354
parent 6e2607c7ab681fc20a193ced68d2176c3926831f
author xuzhidan <xuzhidan1@huawei.com> 1747120346 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1747120346 +0800

Swiper auto fill CAPI change to api19

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: I5a046d73adca54e9ce5dc9104dccd8404915abba
%l7x+tree cd62ee53f0ba3aa75a5ee569a0b9a3ae0055e28d
parent 6e2607c7ab681fc20a193ced68d2176c3926831f
author liukaii <liukai240@huawei.com> 1744953127 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747116618 +0800

获取DragEvent的DisplayId

Signed-off-by: liukaii <liukai240@huawei.com>
a֛xKtree 7c6ad1e68639d7cf7b60fed7c99c3348157d0909
parent bf12392273daf9427f8b7648fbf20c6244f9569f
parent 89af5b752e72ae4175b642a3e9f040d7b6748b60
author openharmony_ci <120357966@qq.com> 1747109182 +0000
committer Gitee <noreply@gitee.com> 1747109182 +0000

!3179 add ubrk_setUText interface
Merge pull request !3179 from 王剑/masterR9exDtree 8faa1c86761f5581512bd060cc9d9dac3bed0300
parent f69a530adb77ef09b4bffc8cbe4500078959c05e
parent bc90499175ca3f0ce313a3abf57ecf9f83a2a95d
author openharmony_ci <120357966@qq.com> 1747108461 +0000
committer Gitee <noreply@gitee.com> 1747108461 +0000

!3171 sdk tranlatewith
Merge pull request !3171 from 刘永凯/sdktranAexStree a1d34e907a5a1343f15e48cfaec0bfacf77abec7
parent 8a79dd0a2588076f737ce6c6a019976fd8e95f7a
parent 2e133e8ab3cb5b0cfa789610ce4a309439dbcfc0
author openharmony_ci <120357966@qq.com> 1747107076 +0000
committer Gitee <noreply@gitee.com> 1747107076 +0000

!2998 avrecorder supports aac file format
Merge pull request !2998 from Steven/masterhܖxFtree 7e3db9c4bf0a0479f9e58c1f7ee5261cab00992c
parent a4e132c192c3aebd3db15858b8ed39a42a5a8065
author zhanghang <zhanghang160@huawei-partners.com> 1746516674 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1747105408 +0800

Add focus wrap mode for grid

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
(thΑxqtree 98857ec4d8ff5ecc67401392864a1864cc5386b2
parent 8a79dd0a2588076f737ce6c6a019976fd8e95f7a
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1743650067 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747102179 +0800

longpressApi

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
Change-Id: I32e434d4f916186f2d5ae674ac84151373a21629
txxJtree f10b5c6659688aec23c25d12acf1556476b991a4
parent 30309ee49bf1c5958ac348cf4c1765ff0e8bec87
parent 2749979fb5c6513054ffa54533444aa7d24525ce
author openharmony_ci <120357966@qq.com> 1747101090 +0000
committer Gitee <noreply@gitee.com> 1747101090 +0000

!3164 SetNodeDraggable注释修改
Merge pull request !3164 from bd/20250509^exLtree 1a63cb9e5dde493e9e0f1d4cfba15b5a6108896a
parent a41800ec7d3bdb9076d197dc5328addc4115d503
author 蒋志庆 <jiangzhiqing4@h-partners.com> 1747049873 +0800
committer 蒋志庆 <jiangzhiqing4@h-partners.com> 1747049873 +0800
encoding uft-8

高保真拾音通路Native API

Signed-off-by: 蒋志庆 <jiangzhiqing4@h-partners.com>
o{
xrtree a89daf506cddf26ef59c1a275643b688ecfcf3de
parent f0a4ecbeae4b0f9cfe8f8d86f02e196c841abd8a
parent 5cb1950b8691e2e45460722699ddd736268df861
author openharmony_ci <120357966@qq.com> 1747049297 +0000
committer Gitee <noreply@gitee.com> 1747049297 +0000

!2953 add general task and queue task submission wrapper interfaces
Merge pull request !2953 from chuchihtung/master@txYtree 66d72c58d8f1a4fa6fb9fa832662bb0be00bf167
parent 94d9287cf62954da54dcc087da8919a95395edce
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1743573292 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1747047328 +0800

输入组件（TextInput、TextArea）增加”验证码”类型

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
Change-Id: I4e14b7336e80538931f6448518b3f1c904af0351
!x+tree f137d24b318f75b0b0a78f0bfcd8719a33453d44
parent c51c7dd1c2693cb75134b2f782d4f4f05a125eef
author cheerful_ricky <yuegang7@huawei.com> 1745977075 +0800
committer CheerfulRicky <yuegang7@huawei.com> 1747034584 +0000

change since 19 to since 20

Signed-off-by: cheerful_ricky <yuegang7@huawei.com>^\xHtree c4495c879678feab5f482e10b2acbbc08662e36f
parent e8e7a93efc1bf1b9d488e01b3290c9f0cd09976c
parent 6e984134a96db1ae6abea394b0c17b9eee85c1d8
author openharmony_ci <120357966@qq.com> 1747033613 +0000
committer Gitee <noreply@gitee.com> 1747033613 +0000

!3173 头文件syscap整改
Merge pull request !3173 from shihaojie/masterixtree d82787cf48d420a77ce34098802dff5e9f0a4591
parent e8e7a93efc1bf1b9d488e01b3290c9f0cd09976c
author sunyaozu <sunyaozu@huawei.com> 1745549349 +0800
committer 王剑 <wangjian546@huawei.com> 1747032809 +0800

add ubrk_setUText interface

Signed-off-by: sunyaozu <sunyaozu@huawei.com>
E\xtree c4495c879678feab5f482e10b2acbbc08662e36f
parent e8e7a93efc1bf1b9d488e01b3290c9f0cd09976c
author shihaojie <shihaojie11@huawei.com> 1747020618 +0000
committer Gitee <noreply@gitee.com> 1747020618 +0000

1

Signed-off-by: shihaojie <shihaojie11@huawei.com>P x7tree 4a94ba0f44177c04caf120864ebe910571098e69
parent e8e7a93efc1bf1b9d488e01b3290c9f0cd09976c
author 刘永凯 <liuyongkai2@huawei-partners.com> 1747017338 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1747017338 +0800

sdk tranlatewith

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
-mxqtree da5b33e9c7af3ddf9253eafd77e7f122494868f4
parent 94d9287cf62954da54dcc087da8919a95395edce
parent 1e041fcb40bb40b58acac00d8b8e32a994cb5f49
author openharmony_ci <120357966@qq.com> 1746956562 +0000
committer Gitee <noreply@gitee.com> 1746956562 +0000

!3157 新增获取Api子版本，patch版本接口 OH_GetSdkApiMinorVersion OH_GetSdkApiPatchVersion
Merge pull request !3157 from zzz701/mastert[xxtree 1a602243ac6c3b6e375698e205bde2bce5d7caa4
parent 9e07d89f2221c03aac7c212a4d0a4b20cf725c1f
author zzz701 <lihaima1@huawei.com> 1746953932 +0800
committer zzz701 <lihaima1@huawei.com> 1746953947 +0800

新增获取Api子版本，patch版本接口 OH_GetSdkApiMinorVersion OH_GetSdkApiPatchVersion，版本比对接口isApiVersionGreaterOrEqual

Signed-off-by: zzz701 <lihaima1@huawei.com>
zxJtree 8872525956ab3e199457ba9165665c3bf73e6d6a
parent 366287ecbd2950d01604498bd5e72677138e2047
parent dafef047a7e23acc068036ac47e30fbe33b695f8
author openharmony_ci <120357966@qq.com> 1746888073 +0000
committer Gitee <noreply@gitee.com> 1746888073 +0000

!3013 add function QuerySyncResult
Merge pull request !3013 from wind/masterbɘxHtree 4eec2004ff25243e693e2bff3131a55e96b12712
parent c51c7dd1c2693cb75134b2f782d4f4f05a125eef
parent 26152a59a5da985cfc0173e679762e01a13aaba1
author openharmony_ci <120357966@qq.com> 1746869822 +0000
committer Gitee <noreply@gitee.com> 1746869822 +0000

!3168 fix:dialog update
Merge pull request !3168 from yangbiao199318/api19<axDtree 4eec2004ff25243e693e2bff3131a55e96b12712
parent c51c7dd1c2693cb75134b2f782d4f4f05a125eef
author yangbiao199318 <yangbiao63@huawei-partners.com> 1746866201 +0800
committer yangbiao199318 <yangbiao63@huawei-partners.com> 1746866201 +0800

fix:dialog update

Signed-off-by: yangbiao199318 <yangbiao63@huawei-partners.com>
Ie*x[tree edd49b362e6552dab30df9b8ed2296f440bfa2e6
parent c380857e4c3b2359a9659b16beeece1ce62c6858
parent f2b9fb513975c8a240a7ae8e6b9d709d2ddb5101
author openharmony_ci <120357966@qq.com> 1746865203 +0000
committer Gitee <noreply@gitee.com> 1746865203 +0000

!3166 Dialog组件API版本变更
Merge pull request !3166 from houguobiao/req_api18_to_api19pWxStree 733292aac35f92f28276908830e1e5fa8bc4f54f
parent 457c0ae04ee431eec9c9a537ffbeca7f7a224e0a
parent 78a60e30eda068f2568f5b94f85d841af83a4b22
author openharmony_ci <120357966@qq.com> 1746861198 +0000
committer Gitee <noreply@gitee.com> 1746861198 +0000

!2728 Add new interface about badge type.
Merge pull request !2728 from FTL1ght/badgeAHf,x\tree 995315c96b0965fd991c25f714c8eb6024dc4574
parent b63a6233d51c31f4e436910bb40d173f0740d779
author houguobiao <houguobiao@huawei.com> 1746860715 +0800
committer houguobiao <houguobiao@huawei.com> 1746860715 +0800

Dialog组件API版本变更

Signed-off-by: houguobiao <houguobiao@huawei.com>
Change-Id: I72c90a517a91f3f0f5667dddb4f133b52fc1d996
qxtree aabac11e8c815b657020eddc0ed79c1c816c1c3b
parent b63a6233d51c31f4e436910bb40d173f0740d779
parent a169c4d0cfac3e7d45eb8cfbeb56999da87ac682
author openharmony_ci <120357966@qq.com> 1746859507 +0000
committer Gitee <noreply@gitee.com> 1746859507 +0000

!3103 modify commit of commonlibrary/memory_utils/libpurgeablemem/purgeable_memory.h
Merge pull request !3103 from littlebee/localczBx/tree 9b67ce87fb52c3adadf32535dbb4f11816772ef6
parent b63a6233d51c31f4e436910bb40d173f0740d779
author lanhaoyu <lanhaoyu3@huawei-partners.com> 1746859209 +0800
committer lanhaoyu <lanhaoyu3@huawei-partners.com> 1746859209 +0800

add ndk interface

Signed-off-by: lanhaoyu <lanhaoyu3@huawei-partners.com>
 axktree cf048fb07cd43b79b839412b00a0f5e7a82f14f1
parent 36014cafa9f65ab1f20ceacd54fb08b2ef1a7a6d
parent 51ffabaecac0c7ea2a24e412ebf0e15097944432
author openharmony_ci <120357966@qq.com> 1746857555 +0000
committer Gitee <noreply@gitee.com> 1746857555 +0000

!3143 Dialog组件支持自定义背景模糊 18改19
Merge pull request !3143 from zhanghang/dialog_20250508`]{BxVtree c3283b27af9033446a3e4530c7491548e50db2f5
parent fde78a674347e62ca906fea5695895ec90f31456
parent 4150826614f5de590a26ee979a3d9bc67cd0c171
author openharmony_ci <120357966@qq.com> 1746849615 +0000
committer Gitee <noreply@gitee.com> 1746849615 +0000

!3156 revert new error code in master
Merge pull request !3156 from CheerfulRicky/masterf͙xtree 9dd218876463329672801482ad9bd26593093dda
parent 57d4d6139f3eda8ffb778919701226412af29ad7
author b30058220 <baodi1@huawei.com> 1746793315 +0800
committer b30058220 <baodi1@huawei.com> 1746793315 +0800

getPreDragStatus注释修改

Signed-off-by: b30058220 <baodi1@huawei.com>
9	Ux>tree a30cbdea370cb47ee0c4d9c466ddc0f5ba22643b
parent bffafc6680d146d8a2b803d55fe548041dfd3106
parent cece8cd3cc94213d4226a24679160ede234866c9
author openharmony_ci <120357966@qq.com> 1746789545 +0000
committer Gitee <noreply@gitee.com> 1746789545 +0000

!3142 修改api
Merge pull request !3142 from zhanghang/0528_dzleHaxLtree 46f276b0a95eaddde2593fad6dd25d5483764b26
parent ed23b15c0a3fba454ecb48ee36d114c1d594c8fa
author AiChaosN <ninghaoran@h-partners.com> 1746774035 +0800
committer AiChaosN <ninghaoran@h-partners.com> 1746788036 +0800

api19

Change-Id: Ia100087baf002511dbce04e5a8cb6206e9e859f9
Signed-off-by: AiChaosN <ninghaoran@h-partners.com>
	f?x1tree 81fe2314093be3dc9266c97efe8d8b8ee2ab39fe
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author cheerful_ricky <yuegang7@huawei.com> 1746760059 +0800
committer cheerful_ricky <yuegang7@huawei.com> 1746760082 +0800

revert new error code in master

Signed-off-by: cheerful_ricky <yuegang7@huawei.com>
[abזxFtree db4f8b98bf4fdf0a7e73f470cbd3737a1ea65363
parent f63b8e2f76f82e624f2b1bb86ae304e6ece05d2c
parent de940de1df986eb7b4b433a51ed4440773ac0653
author openharmony_ci <120357966@qq.com> 1746717704 +0000
committer Gitee <noreply@gitee.com> 1746717704 +0000

!3100 添加文件路径
Merge pull request !3100 from yangwenxin/masterxiјxHtree 67fdda06399ea7b194272defaf574a44a79a93d9
parent 73e6c37e5c97d56c92083fb94dc7a665bd7edd79
parent 37246359cf5aeddd228f0d14df231fdc4eee1387
author openharmony_ci <120357966@qq.com> 1746713003 +0000
committer Gitee <noreply@gitee.com> 1746713003 +0000

!3145 头文件syscap整改
Merge pull request !3145 from shihaojie/masteribxptree 27037ba4f28ea868bf7b4c642fdeb6812e4a42b2
parent c3670495b836958608f33db85a88e6448c0e303b
parent 13c275074adac3fa684e463ee4ab57e549d27072
author openharmony_ci <120357966@qq.com> 1746712938 +0000
committer Gitee <noreply@gitee.com> 1746712938 +0000

!3101 NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE 修改为API19
Merge pull request !3101 from 胡清云/slice_0506&r3xYtree c66160933be02813d5f4571208b8617660b432b7
parent 64730e44cd194f30aee57fe79e0b0334597f49a1
parent dcdd02eaae00db26a2668a8946abe7f9525a4d34
author openharmony_ci <120357966@qq.com> 1746712879 +0000
committer Gitee <noreply@gitee.com> 1746712879 +0000

!3104 修改distanceMapapi版本
Merge pull request !3104 from 贺晨韬/hct_api1819_050601qmƜx\tree d8498349c0c4f8fd08bdeae058c79c59bd484d5a
parent ed23b15c0a3fba454ecb48ee36d114c1d594c8fa
parent 5ae61fbc5b4685a1b09ff72b3756f3723009da7f
author openharmony_ci <120357966@qq.com> 1746712575 +0000
committer Gitee <noreply@gitee.com> 1746712575 +0000

!3078 修改关键帧动画期望帧率版本
Merge pull request !3078 from chenxiaoxue/masteryxHtree a3026a0af835f28b5e877aa0c1bde25467600250
parent 455203d26db916a5247d9a545a7d7cd2f489e9d2
parent 4e3aa0606943b49294e1406caaeb46108c7aba38
author openharmony_ci <120357966@qq.com> 1746710284 +0000
committer Gitee <noreply@gitee.com> 1746710284 +0000

!3137 图片框架syscap整改
Merge pull request !3137 from 胡超/masteri͒x2tree bd5f79d1bc7c459efb748f1b525005c5aa5a5b9d
parent baf8b22d3534844a7fc6644b1a79df5b6a7ee1fd
author FTL1ght <zhangyubao@h-partners.com> 1741872773 +0800
committer FTL1ght <zhangyubao@h-partners.com> 1746709259 +0800

Add new interface about badge type.

Signed-off-by: FTL1ght <zhangyubao@h-partners.com>
abxPtree 1e709eec1bac570db75a0c727b50425f1c16267d
parent 8dfa52d6c4d01b4c56821cf4f666afb4c4454bf0
parent 8b52309c86ef6f4642d5f521c72fcdb09debffea
author openharmony_ci <120357966@qq.com> 1746708851 +0000
committer Gitee <noreply@gitee.com> 1746708851 +0000

!3148 update LocationKit/BUILD.gn.
Merge pull request !3148 from liuxinbing/masterfmxCtree 2f6e229ebafc07a3cd4b2f6c5682eb9e8b01b735
parent 4967c4fc303e2e56c3cc37f7abdda53209a09e7b
parent f4285e714fb6c643e16a25be2b1ad56505a41c0a
author openharmony_ci <120357966@qq.com> 1746702652 +0000
committer Gitee <noreply@gitee.com> 1746702652 +0000

!3102 change api 19
Merge pull request !3102 from liukaii/changeApi19n`x<tree fd9070ebcf10e1d441e3a842643fd6c8ed356cf9
parent 4b26f2a3349b8035787d7d967ebe41614d5d7e33
parent c7b00d9e2483360dcc8a671792083f9fdadfbbd5
author openharmony_ci <120357966@qq.com> 1746702364 +0000
committer Gitee <noreply@gitee.com> 1746702364 +0000

!3097 Change19
Merge pull request !3097 from Zenix/ChangeAPI19 ]GxFtree 7f9791b6fdf341e03db8f25b9cb0ba1117bbf757
parent a911257f315b9b3297d2492a7b6d7f11a29fa2ad
parent b8c3d228ce7722fb53ca6047c2d13928e4afeb4f
author openharmony_ci <120357966@qq.com> 1746702348 +0000
committer Gitee <noreply@gitee.com> 1746702348 +0000

!3141 CAPI头文件修改
Merge pull request !3141 from zhuyinlin/master^.gݘx(tree c0135c2d51b9646dd05636f29869bff8bba2ec57
parent 8f260075239522ecb0453cf1810eebc3db992813
author liuxinbing <liuxinbing4@h-partners.com> 1746702337 +0000
committer Gitee <noreply@gitee.com> 1746702337 +0000

update LocationKit/BUILD.gn.

Signed-off-by: liuxinbing <liuxinbing4@h-partners.com>]Ix\tree 770683f2c9e0148e396db463dce695e4788276e9
parent 9a76717856e082b273aafd71b333423e37925732
parent f03cae32df8d30f2754ecc2566658fddc36c4b88
author openharmony_ci <120357966@qq.com> 1746698344 +0000
committer Gitee <noreply@gitee.com> 1746698344 +0000

!3122 add cropRegion interface
Merge pull request !3122 from 姚星宇/0507_addRegionInterfacegJkKx!tree 8db6e93127026168dc66818f270aa3b0ba49983c
parent 9a76717856e082b273aafd71b333423e37925732
author shihaojie <shihaojie11@huawei.com> 1746696995 +0800
committer shihaojie <shihaojie11@huawei.com> 1746696995 +0800

头文件syscap整改

Signed-off-by: shihaojie <shihaojie11@huawei.com>
^x>tree 656c466e5c8248bbc95eaacdfd33f356f6112a63
parent abdf95dd93d693ee0d4762f3e6933166c2f782c6
parent 97ffe065cdc98a0452b7cc768c0e50d7d57c9124
author openharmony_ci <120357966@qq.com> 1746695115 +0000
committer Gitee <noreply@gitee.com> 1746695115 +0000

!3076 delete capi
Merge pull request !3076 from 刘永凯/delete[b*xYtree 9abab65611722d65f65345edba9313eec594edb3
parent abdf95dd93d693ee0d4762f3e6933166c2f782c6
author zhanghang <zhanghang160@huawei-partners.com> 1746693785 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1746693785 +0800

Dialog组件支持自定义背景模糊 18改19

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
{x3tree 1e972de377d0dbdb5178796ac0185620eeb68ed9
parent abdf95dd93d693ee0d4762f3e6933166c2f782c6
author zhanghang <zhanghang160@huawei-partners.com> 1746692911 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1746692911 +0800

修改api

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
dxtree 2016fc5e5c7bf28508265b26ec4adaaae950ce9b
parent abdf95dd93d693ee0d4762f3e6933166c2f782c6
author zhuyinlin <1085905529@qq.com> 1746691082 +0800
committer zhuyinlin <1085905529@qq.com> 1746691082 +0800

CAPI头文件修改

Signed-off-by: zhuyinlin <1085905529@qq.com>
IU-xtree 25cd3de6f3c9cf89643bce7d0dec23ee80842d50
parent abdf95dd93d693ee0d4762f3e6933166c2f782c6
author huchao <huchao53@huawei.com> 1746674574 +0800
committer huchao <huchao53@huawei.com> 1746674574 +0800

图片框架syscap整改

Signed-off-by: huchao <huchao53@huawei.com>
R[xPtree bb6681319c56bef4867ae3e2930c14963cd8da5f
parent 8f260075239522ecb0453cf1810eebc3db992813
parent 8093370cef76769248f238acb32e5550d2eed246
author openharmony_ci <120357966@qq.com> 1746672456 +0000
committer Gitee <noreply@gitee.com> 1746672456 +0000

!3131 0507修改 BUILD.gn修改
Merge pull request !3131 from 杨俊峰/0507master<jx1tree bb6681319c56bef4867ae3e2930c14963cd8da5f
parent 8f260075239522ecb0453cf1810eebc3db992813
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1746626802 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1746626802 +0800

0507修改

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
71_ߚx:tree bf5932de97409282b7a3a82eb0edce63265b4f7f
parent c8593210a884a5c0198bedf34e376ae453d2ae49
parent ea24a38573e84a7ae2e002ef803b3ffd589557b5
author openharmony_ci <120357966@qq.com> 1746625824 +0000
committer Gitee <noreply@gitee.com> 1746625824 +0000

!3128 change syscap
Merge pull request !3128 from hui/mastergj]x]tree 106104c8469235fb1c438def7d7c1b2bded2cf81
parent f9e3d07b689f4c49c2b3d64512d30fc2c355b63f
parent 82eef0de18ec6729d14b815a8581209b02ea4170
author openharmony_ci <120357966@qq.com> 1746621978 +0000
committer Gitee <noreply@gitee.com> 1746621978 +0000

!3060 Scroll component change to API19
Merge pull request !3060 from xuzhidan/scroll_api19_0430ѧhx/tree 058a29f3ed374c4673d7fd6ab92d89a9ee87c448
parent 6361b5df0609ca0e8e6d71551f52c57e3360739e
author zhangwt3652 <zhangwenting15@huawei.com> 1745385092 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1746619510 +0800

Add setPlaybackRate.

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
K^'xctree 56a54bad88ae94ae7a4b28e2cdd14bbe7033eb03
parent 9e07d89f2221c03aac7c212a4d0a4b20cf725c1f
parent 0753bee183348348b91bd83e7ea692a4ce914c66
author openharmony_ci <120357966@qq.com> 1746618776 +0000
committer Gitee <noreply@gitee.com> 1746618776 +0000

!3126 hiappevent 头文件关于SystemCapability的整改
Merge pull request !3126 from zhou_xq/sdk_muvox?tree bf22c4da29857cadb02d4ec440715ec393d2a8f3
parent 60b8c407f0852f02a6f0d75a56794a40478229c5
parent 79245bbc44bc217d12fa4ad46391a135d8a34f69
author openharmony_ci <120357966@qq.com> 1746617219 +0000
committer Gitee <noreply@gitee.com> 1746617219 +0000

!3121 sdk_c整改
Merge pull request !3121 from leiguangyu/masteraxtree 58f051b29e8807768a8c3f3969f71bd6087e7c10
parent 60b8c407f0852f02a6f0d75a56794a40478229c5
author hui <lizhihui10@huawei.com> 1746615522 +0800
committer hui <lizhihui10@huawei.com> 1746615522 +0800

change syscap

Signed-off-by: hui <lizhihui10@huawei.com>
K'Mx(tree 02ba337efa23d395a393a33f869544ea4b0669f1
parent b8d8142cf85f6aea32b8372eab31f22333840f9b
author zhangqiang <ethanzhang2098@163.com> 1746609752 +0800
committer zhangqiang <ethanzhang2098@163.com> 1746610170 +0800

third_party relative path

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
,ZxPtree a5539b95e2c16b35ba550d60cb6d1e9387debd5c
parent ec7c71d13d76bfa4bb711624eb043e6f26d9f151
parent 255deac2136b3e2f7329a8e737ab7d6d22e52cd0
author openharmony_ci <120357966@qq.com> 1746608649 +0000
committer Gitee <noreply@gitee.com> 1746608649 +0000

!3095 fix: pasteboard build config
Merge pull request !3095 from renzhixian/masterfΚxjtree ecd49980d73050d9303e02c46e4345f5e557a3ce
parent 9cede7180bda406be8614232cabfffad552d9e71
parent 92fec72a7ed0ed8a96daa8674729e1e54553eddb
author openharmony_ci <120357966@qq.com> 1746608568 +0000
committer Gitee <noreply@gitee.com> 1746608568 +0000

!3117 change xcomponent surface holder api to 19
Merge pull request !3117 from sunbees/xc_surfaceholder_to19rpcxDtree 3007d77fd2301fe4bf557f28b790fba40d32ab0e
parent b9400be02dbbc6d246751b9c6d51e62e401530ce
parent 09a72f4bbf60e2eeee4f1d647caf689910aae4d9
author openharmony_ci <120357966@qq.com> 1746608435 +0000
committer Gitee <noreply@gitee.com> 1746608435 +0000

!3106 hilog syscap整改
Merge pull request !3106 from liuyifei/master0dxEtree 784777657e2b6c077b71af89f74bf7c149cea2a5
parent 941c4501f6db206d4cec3af01294e0f86e704a57
parent c921c8c73404d5611cce8335e77e02b21217549e
author openharmony_ci <120357966@qq.com> 1746607381 +0000
committer Gitee <noreply@gitee.com> 1746607381 +0000

!3105 syscap排查整改
Merge pull request !3105 from 冉召宇/masterguxItree 860b16e4438e91423a1207ac8c95b6647a17a073
parent 57631646d5c4f39a4c3ed523f57979c35d95c5a1
parent f941b53d944f40f40841ecee05519a625a6cf28d
author openharmony_ci <120357966@qq.com> 1746604595 +0000
committer Gitee <noreply@gitee.com> 1746604595 +0000

!3113 fix-sys-cap
Merge pull request !3113 from Power-the-WORLD/fix-sys-cap;`xNtree b952ce8b29b0a05e3a22a1b515af131f50116abd
parent e88f59189c4ec6bf5b7b1d6f7a9ed338353c4524
parent 7625f9e5be6921cca9eb08478d82b1d4e1bb9f26
author openharmony_ci <120357966@qq.com> 1746604466 +0000
committer Gitee <noreply@gitee.com> 1746604466 +0000

!3114 Revised syscap in header files
Merge pull request !3114 from 白露/mastermgEx_tree c38b67291ef0a3c987cd3013be4ee93c8a876641
parent d1d2ee9f4797caab9b08821da1ef11708125feb3
author sunbees <sunqinjia@huawei.com> 1746599929 +0800
committer sunbees <sunqinjia@huawei.com> 1746599929 +0800

change xcomponent surface holder api to 19

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I9b2d08545ece112a9317cb5853791b7d2f406c41
#mxtree fd5348b5ea18314b1e6a5150b212b70e37f9b1aa
parent 000efa979c6c6e5b13ab4510e5eaaa90fc62150d
author bailu1992 <bailu27@huawei.com> 1746588292 +0800
committer bailu1992 <bailu27@huawei.com> 1746595135 +0800

Revised syscap in header files

Signed-off-by: bailu1992 <bailu27@huawei.com>
qVϝxMtree 8d1e540ac8ff9eef2c0221f7ef90db02ec7f3aa8
parent 000efa979c6c6e5b13ab4510e5eaaa90fc62150d
parent 6142d755e83a96fc2ce842fc8d7591deccd636e1
author openharmony_ci <120357966@qq.com> 1746593674 +0000
committer Gitee <noreply@gitee.com> 1746593674 +0000

!3096 add graphic error code
Merge pull request !3096 from 李辉/errorcode0506DzgCxtree 9c2a94d5eb0b94838b9cd1e78e507ea18fe17a76
parent 000efa979c6c6e5b13ab4510e5eaaa90fc62150d
author wenjinchao <wenjinchao@huawei.com> 1746587425 +0800
committer wenjinchao <wenjinchao@huawei.com> 1746587425 +0800

fix-sys-cap

Signed-off-by: wenjinchao <wenjinchao@huawei.com>
XqYxxtree 57ea5325b90686b7c96bca7319462951cde2291e
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
author y00656910 <yaoxingyu3@huawei.com> 1746429391 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1746586050 +0800

add cropRegion interface

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: Ia4a5a5f760ac92e590da7166b294f24a25613f5d
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>

uRxEtree 841b3c238e213f7cad1da618f81d4ec1f97a9cd6
parent 83764055294188532c7e4f94663980520abcf2a5
parent ad11a95cc0ef4455e78a7f9190fa229702404732
author openharmony_ci <120357966@qq.com> 1746585668 +0000
committer Gitee <noreply@gitee.com> 1746585668 +0000

!3077 内存syscap整改
Merge pull request !3077 from 蔡一鸣/masterFgxxtree a5a55ffebc937e1586b1583ca00016a032d5039c
parent 54291e2e6a08303cc98cd8222aa7849abb59e7fe
author lihui <lihui359@huawei.com> 1746537352 +0800
committer lihui <lihui359@huawei.com> 1746585470 +0800

add graphic error code

Signed-off-by: lihui <lihui359@huawei.com>
wQΖxFtree 300fd808a2665a9b762da1d5bc62105518338c3d
parent f8810b6233a0a775e073ff31c05c7bf9087c73c9
parent 33fffe5e59b5d90bc3e6b44050e495040db24859
author openharmony_ci <120357966@qq.com> 1746584316 +0000
committer Gitee <noreply@gitee.com> 1746584316 +0000

!3084 syscap asset modify
Merge pull request !3084 from 尹耀德/masterۃd+xtree 315f3d36ef7c03e56128a1f390e0b3add2e8e0d7
parent f320ea9187d69fea9fff985812fe5f77998ae20b
author liuyifei <liuyifei20@huawei.com> 1746582215 +0000
committer Gitee <noreply@gitee.com> 1746582215 +0000

hilog syscap整改

Signed-off-by: liuyifei <liuyifei20@huawei.com>Wx$tree 229f2e2a460597c9f4222de38abe70e0d5025ed6
parent f8810b6233a0a775e073ff31c05c7bf9087c73c9
author @ran-zhao-yu <ranzhaoyu1@huawei.com> 1746581373 +0800
committer @ran-zhao-yu <ranzhaoyu1@huawei.com> 1746581373 +0800

syscap排查整改

Signed-off-by: @ran-zhao-yu <ranzhaoyu1@huawei.com>
k_x^tree 0ac087a619fa18751d801d2f500facbec5fa14c7
parent d3a9eb7ac27712cb431f2eb46cfe40502e437365
parent 1b375917a8f3803bff5256cd69316469f9f66605
author openharmony_ci <120357966@qq.com> 1746580101 +0000
committer Gitee <noreply@gitee.com> 1746580101 +0000

!3098 C API文件SystemCapability配置整改
Merge pull request !3098 from liumingyue/fix-c-apiJphx tree 7dc8c6c95dbc11afa011f3130039e54dc4ba88d1
parent d3a9eb7ac27712cb431f2eb46cfe40502e437365
author 贺晨韬 <hechentao@huawei.com> 1746545178 +0800
committer 贺晨韬 <hechentao@huawei.com> 1746545178 +0800

修改distanceMapapi版本

Signed-off-by: 贺晨韬 <hechentao@huawei.com>
+ix@tree 16e6925bbfab90a3b45954715dc95408c0ae74ad
parent 55ef070d28ad99d7b4cabfbaed71af839d36e58c
parent e528a1510673cf116e8eff5e44e5ad471a9735c3
author openharmony_ci <120357966@qq.com> 1746544269 +0000
committer Gitee <noreply@gitee.com> 1746544269 +0000

!3094 fix:capi path
Merge pull request !3094 from 吴成文/masterpc1xAtree 644ff95c0a8c58c86f8a7205509e07114f5faf27
parent c84b0dd760b500a2a81790f1be07a05eaadb9afc
parent 420b877bf024a6efdf77e83bc1c9dab44d33405f
author openharmony_ci <120357966@qq.com> 1746542652 +0000
committer Gitee <noreply@gitee.com> 1746542652 +0000

!3093 fix ndk header
Merge pull request !3093 from 屑屑屑/master~NcxTtree 0e254bb03be6d21c9669e742b06f1b8e22b9b2e1
parent fd542aff61383b551b1cb89ea7342a66f95d36b2
author surencong <surencong@huawei.com> 1746542450 +0800
committer surencong <surencong@huawei.com> 1746542450 +0800

modify commit of commonlibrary/memory_utils/libpurgeablemem/purgeable_memory.h

Signed-off-by: surencong <surencong@huawei.com>
q$xRtree 01ec67205d10d640330afc28e21ad3dae84465fa
parent fd542aff61383b551b1cb89ea7342a66f95d36b2
parent 69983c0f5b91dd43ed46d1cc6f9e67835faa4fe3
author openharmony_ci <120357966@qq.com> 1746541980 +0000
committer Gitee <noreply@gitee.com> 1746541980 +0000

!3088 musl add malloc_check_from_ptr
Merge pull request !3088 from wangwenjun/mastergxtree 1243a026598b49eadfbb40b7b691d2ebcaf9aa63
parent fd542aff61383b551b1cb89ea7342a66f95d36b2
author liukaii <liukai240@huawei.com> 1746541960 +0800
committer liukaii <liukai240@huawei.com> 1746541960 +0800

change api 19

Signed-off-by: liukaii <liukai240@huawei.com>
\RxBtree cb474b9b4fad8f9cfa4dcd867fc9eaf779737640
parent fd542aff61383b551b1cb89ea7342a66f95d36b2
author 胡清云 <huqingyun1@huawei.com> 1746540811 +0800
committer 胡清云 <huqingyun1@huawei.com> 1746540811 +0800

NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE 修改为API19

Signed-off-by: 胡清云 <huqingyun1@huawei.com>
הpbx!tree 99e05cc44cb51e4f64a277cab865837aac3f4960
parent fd542aff61383b551b1cb89ea7342a66f95d36b2
author yangwenxin <yangwenxin9@huawei.com> 1746540351 +0800
committer yangwenxin <yangwenxin9@huawei.com> 1746540351 +0800

添加文件路径

Signed-off-by: yangwenxin <yangwenxin9@huawei.com>
6bx9tree 3e9610c95fd069edb8a3ecbf5a6353b8673aad48
parent f320ea9187d69fea9fff985812fe5f77998ae20b
author liumingyue <liumingyue12@huawei.com> 1746536279 +0800
committer liumingyue <liumingyue12@huawei.com> 1746540337 +0800

C API文件SystemCapability配置整改

Signed-off-by: liumingyue <liumingyue12@huawei.com>
kxktree 1bc949dfe27ed0d80048fbecef6a0943ae1e97c7
parent f320ea9187d69fea9fff985812fe5f77998ae20b
parent ab5860b8a3864c71f4c42be9ebed069a2619604b
author openharmony_ci <120357966@qq.com> 1746539000 +0000
committer Gitee <noreply@gitee.com> 1746539000 +0000

!3092 start_options.h纳入SDK配置文件
Merge pull request !3092 from 杨旭光/refactor/ndk-start-optionszxtree 340d3083793af194fb7dd9812e36b4f687c822a9
parent f320ea9187d69fea9fff985812fe5f77998ae20b
author Zenix <zhengxingyou1@huawei.com> 1746537958 +0800
committer Zenix <zhengxingyou1@huawei.com> 1746537958 +0800

Change19

Signed-off-by: Zenix <zhengxingyou1@huawei.com>
ATCxtree 9020f2bf76bf52dd8b746a4521ff9c76ddb89a9f
parent f320ea9187d69fea9fff985812fe5f77998ae20b
author wuchengwen <wuchengwen4@huawei.com> 1746535650 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1746535650 +0800

fix:capi path

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
_C[x&tree 48f99791a49e4acded4ab0eb0fce34368d425243
parent cd49ea6ad1311b4b68a00d136160bb536d9520b4
author 屑屑屑 <jiangwenda5@h-partners.com> 1746533233 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1746535442 +0800

fix ndk header

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
e*xJtree 6321df9851de585ced29313b03b58d33afbca55d
parent 88df7f34fd3900dfbd3c338547aa59bdbb3dd915
parent 1374ea67cd445afee575412673159186ce2d9d0f
author openharmony_ci <120357966@qq.com> 1746533220 +0000
committer Gitee <noreply@gitee.com> 1746533220 +0000

!3082 rdb build.gn fix
Merge pull request !3082 from zhaojinghui/fix_buildgndxTtree b5e1831b10ca9fcf3929564be194c2706b868de6
parent 9cda86f22a0ccf4e744c549ff162d5629af49267
parent 290ef85180b27b17d8a106b76ebbcc99ee71ca83
author openharmony_ci <120357966@qq.com> 1746533004 +0000
committer Gitee <noreply@gitee.com> 1746533004 +0000

!3059 calendar change capi version.
Merge pull request !3059 from zhanghang/calendar19gfx?tree ff07160f3874e0dc68bfeccf362bfffaaf366b18
parent 1c516ab959781f747b18c89470332dc38686a8bb
parent c092f73862f54f459159fc2ac26b1213a6f66072
author openharmony_ci <120357966@qq.com> 1746523547 +0000
committer Gitee <noreply@gitee.com> 1746523547 +0000

!3081 syscap整改
Merge pull request !3081 from 陶金沛/0506_c6c/x;tree 90fa256d9cfaf6149ffc0979138135ce6541a565
parent f2adb48cf5933658abf4603d7b11bcc3ce97356a
author 蔡一鸣 <caiyiming4@huawei.com> 1746520517 +0000
committer Gitee <noreply@gitee.com> 1746520517 +0000

update commonlibrary/memory_utils/libpurgeablemem/BUILD.gn.

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>k?xStree 60668aeac0e6c843799f05faf9ffb8e8fdc3407a
parent a4e132c192c3aebd3db15858b8ed39a42a5a8065
parent e7066f2f276b838dda01249676a5cdeeb0e1ae50
author openharmony_ci <120357966@qq.com> 1746519438 +0000
committer Gitee <noreply@gitee.com> 1746519438 +0000

!3080 添加system_capability_headers
Merge pull request !3080 from kangchongtao/0506:j6x;tree 6c7e0062c7eb02048bb4281510e8af7e746cb790
parent 2091b0f603e9e9c47d29e5418073aaa5f498c521
author 蔡一鸣 <caiyiming4@huawei.com> 1746518366 +0000
committer Gitee <noreply@gitee.com> 1746518366 +0000

update commonlibrary/memory_utils/libpurgeablemem/BUILD.gn.

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>jKx<tree ddb9e86fda50be80aef5bd33d913f52fa0acb318
parent 551e21ddcc41aa376d45f64aa81ca32865f02b97
author wangwenjun <wangwenjun59@h-partners.com> 1746516588 +0800
committer wangwenjun <wangwenjun59@h-partners.com> 1746516588 +0800

musl add malloc_check_from_ptr

Signed-off-by: wangwenjun <wangwenjun59@h-partners.com>
Smgxtree bca9c18c29a7dc0199bed1e4293caea5b8b03466
parent a4e132c192c3aebd3db15858b8ed39a42a5a8065
author 尹耀德 <yinyaode1@huawei.com> 1746514176 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1746514176 +0800

syscap asset modify

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
ax;tree 8a9b91143d2d2a5ce154f8f3bc35e7c4a0ba59c3
parent d59de2d22efa17f41e4756672d6c472f09847ecb
author 蔡一鸣 <caiyiming4@huawei.com> 1746509833 +0000
committer Gitee <noreply@gitee.com> 1746509833 +0000

update commonlibrary/memory_utils/libpurgeablemem/BUILD.gn.

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>
Zkx&tree 0277365fdfd189696f785da4303ae07bc0f441d9
parent a4e132c192c3aebd3db15858b8ed39a42a5a8065
author “陶金沛” <taojinpei@huawei.com> 1746505747 +0800
committer “陶金沛” <taojinpei@huawei.com> 1746505747 +0800

修改build.gn

Signed-off-by: “陶金沛” <taojinpei@huawei.com>
mFxtree 0c5106266a282d51176e0eeaf31e1d879ee2c8d8
parent a4e132c192c3aebd3db15858b8ed39a42a5a8065
author ljh <liujianhong6@huawei.com> 1746503975 +0800
committer ljh <liujianhong6@huawei.com> 1746503975 +0800

nativeVSync_interface

Signed-off-by: ljh <liujianhong6@huawei.com>
XUx=tree 3dc5b1a253b805574f13fc19cf158add02c1abda
parent 3bb2385f333c77653da0b699844719e1d006a764
parent 99c9bb1c17127d09361c8fb45d84b4ac902cf48a
author openharmony_ci <120357966@qq.com> 1746502944 +0000
committer Gitee <noreply@gitee.com> 1746502944 +0000

!3046 repair interface
Merge pull request !3046 from cat/masterw^Vxtree 0faebcda0568d489272e11f34b72e4dc2e2d4277
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
author c30053238 <chenxiaoxue11@huawei.com> 1746501696 +0800
committer c30053238 <chenxiaoxue11@huawei.com> 1746501696 +0800

api18->api19

Signed-off-by: c30053238 <chenxiaoxue11@huawei.com>
T*xLtree fb0d3e986b1b18938493fc8dc1ec094eccf66b71
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
parent 2829223cc4ca5dbba988259a85781440857fc488
author openharmony_ci <120357966@qq.com> 1746501110 +0000
committer Gitee <noreply@gitee.com> 1746501110 +0000

!2951 cleancache api to 19
Merge pull request !2951 from 李辉/cleancache0417d8x2tree d72ec5d15896ab61657e83d4b06cb4f12cd92e4f
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
author 刘永凯 <liuyongkai2@huawei-partners.com> 1746501032 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1746501032 +0800

delete capi

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
Rkx;tree c477a69294a256c40e594815236674d0b71d7572
parent 5516e3e21dcdfe83a012441d9763b09d024eec9f
author 蔡一鸣 <caiyiming4@huawei.com> 1746500851 +0000
committer Gitee <noreply@gitee.com> 1746500851 +0000

update commonlibrary/memory_utils/libpurgeablemem/BUILD.gn.

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>ixktree d2d679438ee89c4d5bc65c30381979c6f3cc2277
parent 4bf28905b8d86612b07eeedb894f91ee49d71237
parent ec1a50a6179335061c1ba28135f8e20739453145
author openharmony_ci <120357966@qq.com> 1746007625 +0000
committer Gitee <noreply@gitee.com> 1746007625 +0000

!3030 媒体库支持在AVRecorder录制文件自动保存
Merge pull request !3030 from liuguangsheng/master|xPtree b3a34f53c921ee4d988b8a12d9b49f1c27cc5096
parent 95b043affff0a031ed2d44fc6e080b2183394acf
parent f1b61fcb756636f912b5c79501a0870bd3937f86
author openharmony_ci <120357966@qq.com> 1746002927 +0000
committer Gitee <noreply@gitee.com> 1746002927 +0000

!2665 jit ACL: change version to 18
Merge pull request !2665 from greensue/versionrdxDtree 10238d666a4fc0a31149085ba75352754391e164
parent 44cd54054deb97438da786ffb1b9c7e2e7c2a7a1
parent 8292e005dbd3df7612277ec78f3736969bf1b4aa
author openharmony_ci <120357966@qq.com> 1745999505 +0000
committer Gitee <noreply@gitee.com> 1745999505 +0000

!2857 Add macro interface
Merge pull request !2857 from gtrajtr/master`Zxqtree 7f0ca2256a3fdf363e4ed6a012a91b03e21e478b
parent 46b86a1423d5755823eccb6ccdd9d6fa26c7bde0
parent d1d2ee9f4797caab9b08821da1ef11708125feb3
author openharmony_ci <120357966@qq.com> 1745996645 +0000
committer Gitee <noreply@gitee.com> 1745996645 +0000

!3057 xcomponent surfaceHolder api version change to 19
Merge pull request !3057 from sunbees/xc_surfaceholder_to19s_xUtree 75eeb084d71194520cfe8c6d1327c19f263b58e8
parent 9e5dbc6e0d09b471774f16f4df2e916e22cd9b74
author liuguangsheng <liuguangsheng3@huawei.com> 1745567740 +0800
committer liuguangsheng <liuguangsheng3@huawei.com> 1745983733 +0800

媒体库支持在AVRecorder录制文件自动保存

Signed-off-by: liuguangsheng <liuguangsheng3@huawei.com>
9~oxXtree 7406ccfefc5397e87e6045cd6b7068fc2321b439
parent 46b86a1423d5755823eccb6ccdd9d6fa26c7bde0
author xuzhidan <xuzhidan1@huawei.com> 1745983099 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1745983099 +0800

Scroll component change to API19

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: Id3a22dd7a318d281e22b6dbf8790053007366fc7
jxGtree 8b3eea04bee69c2f77e3da43a2c8b11d1eb84435
parent 18e1f4bd63f1ce362978ca0553bda7df0fcfebeb
author zhanghang <zhanghang160@huawei-partners.com> 1745982974 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1745982974 +0800

calendar change capi version.

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
gjxDtree 1f96c79aa456500d2b32a2a698cedcf2a9ddd23e
parent ba36f1f7deaebd7f6cb63f98d66da738d552be0b
parent 18e38641d54ff2af0f7f93be53666265bf57ad64
author openharmony_ci <120357966@qq.com> 1745979563 +0000
committer Gitee <noreply@gitee.com> 1745979563 +0000

!3051 补充syscap
Merge pull request !3051 from tuxiaohang/add_syscapB/e`xNtree 0d1560f5e6ad291a02d65e3f6504f52201269c42
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
parent 3b4ce6a37956f267d5487567e6adf0e0fa27c769
author openharmony_ci <120357966@qq.com> 1745978789 +0000
committer Gitee <noreply@gitee.com> 1745978789 +0000

!3054 change api ver for volume mode
Merge pull request !3054 from AOL/changever>-cxftree f2ea33f076186d606f4fb5a065cab54ec348393b
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author sunbees <sunqinjia@huawei.com> 1745976497 +0800
committer sunbees <sunqinjia@huawei.com> 1745976497 +0800

xcomponent surfaceHolder api version change to 19

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I772b3e1ad87533930387d7ae6eff480af2993b44
p͞xtree 0d1560f5e6ad291a02d65e3f6504f52201269c42
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author magekkkk <lixin113@huawei.com> 1745924774 +0000
committer magekkkk <lixin113@huawei.com> 1745934102 +0000

change api ver for volume mode

Signed-off-by: magekkkk <lixin113@huawei.com>
WМx\tree 165df2c922f9e3da686e35bfd9fece9c3967570d
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author qianyong325 <qianyong15@h-partners.com> 1745915898 +0800
committer qianyong325 <qianyong15@h-partners.com> 1745915898 +0800

支持短信验证码编辑框and编辑框占位文本abilityName

Signed-off-by: qianyong325 <qianyong15@h-partners.com>
ðxotree b26714ca48d76caec2e202be4cc8242c8d72d84e
parent 9e5dbc6e0d09b471774f16f4df2e916e22cd9b74
author tuxiaohang <tuxiaohang@huawei.com> 1745911916 +0800
committer tuxiaohang <tuxiaohang@huawei.com> 1745912459 +0800

补充syscap

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IC4XHR
Signed-off-by: tuxiaohang <tuxiaohang@huawei.com>
Change-Id: Ib9637fabc3c02562d37718bd40dd5c5b486eb521
Ӄ-xtree ccda2368a93870a40da334b46d413569b78dacee
parent 0714dd5ccab8065d539671e1a8e435e52839a0f2
author jango <wangjian422@huawei.com> 1745890262 +0800
committer jango <wangjian422@huawei.com> 1745890262 +0800

Update comments

Signed-off-by: jango <wangjian422@huawei.com>
Rxtree a2f91976d14ac603fd28b3f57be086edb99fd7b8
parent 1d9e47cc05cee524daaceeb0e6e31840cf16e335
author jango <wangjian422@huawei.com> 1743991689 +0800
committer jango <wangjian422@huawei.com> 1745889753 +0800

ndk.json add interface

Signed-off-by: jango <wangjian422@huawei.com>
m9Vxtree 7ff1bdf22008b556a54b3ee782137b93111f964d
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author jango <wangjian422@huawei.com> 1743581195 +0800
committer jango <wangjian422@huawei.com> 1745889714 +0800

Add macro interface

Signed-off-by: jango <wangjian422@huawei.com>
8uT=xtree 157be18e6c8ae070b344aca07d76a8d3bebfe134
parent 4656a01a2a53ed7c9e72eeff43d0a6623ceb1c22
author cat <chenjinxiang3@huawei.com> 1745847693 +0800
committer cat <chenjinxiang3@huawei.com> 1745847693 +0800

repair interface

Signed-off-by: cat <chenjinxiang3@huawei.com>
UxEtree ba286d4f73041e29e5e6aac3aa074feb734dc63f
parent 9b9ee56a6228a018104b304ae2c1d1cf0450cafe
parent 3b651f598107b1064b4fb4d286be5ef1456765cf
author openharmony_ci <120357966@qq.com> 1745839366 +0000
committer Gitee <noreply@gitee.com> 1745839366 +0000

!3039 BUILD.GN修改
Merge pull request !3039 from 杨俊峰/0428master=ex5tree ba286d4f73041e29e5e6aac3aa074feb734dc63f
parent 9b9ee56a6228a018104b304ae2c1d1cf0450cafe
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1745815354 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1745815354 +0800

BUILD.GN修改

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
bpxCtree 883969e91a21b8080b753cd9ed19997793cc4841
parent 096ed16d89a66dff5bd4d48071331c31042ed4e8
parent 058f3ee4e8b2343267802efd32517c7eec46b73b
author openharmony_ci <120357966@qq.com> 1745812758 +0000
committer Gitee <noreply@gitee.com> 1745812758 +0000

!3007 imageSize注释修改
Merge pull request !3007 from bd/20250424F+bIxttree a5dad71c3e7bb0529807344e8525849bf4c61ed9
parent 9e5dbc6e0d09b471774f16f4df2e916e22cd9b74
parent 4a846e5e0873e65af3a56a434fc6b37c387881fa
author openharmony_ci <120357966@qq.com> 1745811419 +0000
committer Gitee <noreply@gitee.com> 1745811419 +0000

!2815 Dialog组件支持自定义背景模糊CAPI 代码优化
Merge pull request !2815 from zhanghang/dialog_20250401Qx%tree de40c06753abfde964478028991ea076da8bc5a4
parent 9e5dbc6e0d09b471774f16f4df2e916e22cd9b74
author trytocalm <liuhuayou@huawei.com> 1745751755 +0800
committer trytocalm <liuhuayou@huawei.com> 1745751755 +0800

高保真拾音通路Native API

Signed-off-by: trytocalm <liuhuayou@huawei.com>
Rex5tree cd4898c7b79a7c13cb69c02758a71e97c29e90d6
parent 0856eaf82046836233eb1d7f08c1ebf848d6f14a
author Steven <duanzhengteng@huawei.com> 1745741524 +0000
committer Gitee <noreply@gitee.com> 1745741524 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>dx5tree c66bf5a8d357248805835f501cb482e75c54fb3c
parent dae9aabe330b8e4090ce07cbbd090d7562b8a1ec
author Steven <duanzhengteng@huawei.com> 1745740681 +0000
committer Gitee <noreply@gitee.com> 1745740681 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>Idxtree 8a35d3af275627018be8cb91764cc577acd0ac92
parent 8be7456d12dbd25b7d04a495076f18edb87d5516
author skye-you <youziting@huawei.com> 1745573559 +0800
committer skye-you <youziting@huawei.com> 1745573559 +0800

change description

Signed-off-by: wind <youziting@huawei.com>

V~x8tree 4d7ba5265aef596849959bbc8d0ecee37ef4ca6e
parent 0ab599a57cbf7f55cdca85ddfe3046f815b99579
parent a39a7852c3c8ec3083787b6b468a8f7833021f7d
author openharmony_ci <120357966@qq.com> 1745507075 +0000
committer Gitee <noreply@gitee.com> 1745507075 +0000

!3021 json补充
Merge pull request !3021 from 李政/testMaYxtree 4d7ba5265aef596849959bbc8d0ecee37ef4ca6e
parent 0ab599a57cbf7f55cdca85ddfe3046f815b99579
author 李政 <lizheng194@huawei.com> 1745499352 +0800
committer 李政 <lizheng194@huawei.com> 1745499352 +0800

xxxxx

Signed-off-by: 李政 <lizheng194@huawei.com>
cVxtree 81bdf67fed0a68b964d905326dadda4f09d5f242
parent 7f3b19c895d607e3495f284d951cfd694adeb6e4
author skye-you <youziting@huawei.com> 1745486802 +0800
committer skye-you <youziting@huawei.com> 1745486802 +0800

change number to count

Signed-off-by: wind <youziting@huawei.com>
XOxHtree acd194d2a083db238f8ecd51527b90b044ad30cb
parent 57d4d6139f3eda8ffb778919701226412af29ad7
parent 7921ca28311243336bd1d16b3da51ab2091e295e
author openharmony_ci <120357966@qq.com> 1745483269 +0000
committer Gitee <noreply@gitee.com> 1745483269 +0000

!2962 adjust API18 to API19
Merge pull request !2962 from wangqing/dev0418@_Ԕxtree 055de44276a751aaa7ca055d0007f5b91355757a
parent cea2168c4345d2ed5a725e7dcbbbcaf3209e36b8
author skye-you <youziting@huawei.com> 1745482056 +0800
committer skye-you <youziting@huawei.com> 1745482056 +0800

correct function name

Signed-off-by: wind <youziting@huawei.com>
Wxtree 4922d8ea338df428189a95cc0b79dc4fc1537d93
parent 1ec7665861ac9e8146b44be1c764bb415f2f5d4d
author skye-you <youziting@huawei.com> 1745479933 +0800
committer skye-you <youziting@huawei.com> 1745479933 +0800

add json config`

Signed-off-by: wind <youziting@huawei.com>
0U]xtree db772f098c0fa49831dfe2f1179da662b4f052d4
parent 6361b5df0609ca0e8e6d71551f52c57e3360739e
author skye-you <youziting@huawei.com> 1745479501 +0800
committer skye-you <youziting@huawei.com> 1745479501 +0800

add function QuerySyncResult

Signed-off-by: wind <youziting@huawei.com>
ܸYxtree 93388a9938aa73361741e2099f9cf81abcda4e07
parent 57d4d6139f3eda8ffb778919701226412af29ad7
author b30058220 <baodi1@huawei.com> 1745459246 +0800
committer b30058220 <baodi1@huawei.com> 1745459246 +0800

imageSize修改注释

Signed-off-by: b30058220 <baodi1@huawei.com>
tSxYtree 87892f77205d7b5b400fd4b673083114c31363ef
parent 7051e5413aa18c622a50ae25a711cfb0e7278019
parent 60d07cb6145257878ea73ded27563f93e8e0d5e4
author openharmony_ci <120357966@qq.com> 1745399530 +0000
committer Gitee <noreply@gitee.com> 1745399530 +0000

!2993 add new audio format related apis
Merge pull request !2993 from 杨临风/feat-eac3-2gi<xetree 0969be286f8cb866692ef163e179ac5e840eeac8
parent 6361b5df0609ca0e8e6d71551f52c57e3360739e
parent 25b693cf647904ceb6db13bcaa44a170b6602fa2
author openharmony_ci <120357966@qq.com> 1745396843 +0000
committer Gitee <noreply@gitee.com> 1745396843 +0000

!2975 add active hdbc guide to CAPI XComponent interface
Merge pull request !2975 from 陈俞池/cc0421Snrx5tree cd4898c7b79a7c13cb69c02758a71e97c29e90d6
parent 6361b5df0609ca0e8e6d71551f52c57e3360739e
author Steven <duanzhengteng@huawei.com> 1745375964 +0000
committer Gitee <noreply@gitee.com> 1745375964 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>U>cϓxStree db69e4839a9c60a216f70bf61e4f57c2b0846d7d
parent ff2fb25d6afd0233ee40284abce5ada5e2064ba4
author wangqing <wangqing195@huawei.com> 1744946304 +0800
committer wangqing <wangqing195@huawei.com> 1745375852 +0800

adjust API18 to API19

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: Ic4ecf2928248b85e41a02c7d55d32783db3ac565
g%x0tree 5bbd2331c695faebf8febd9b0f9dc1ea611f6659
parent d1286b300c631bdc9add129a755403c48c43e412
author 杨临风 <yanglinfeng5@huawei.com> 1744814420 +0800
committer 杨临风 <yanglinfeng5@huawei.com> 1745319555 +0800

add new audio format related apis

Signed-off-by: 杨临风 <yanglinfeng5@huawei.com>
hj xatree 2da79da6ef48c5ee3667c3f9aafd5b36eed18416
parent 42ee715b0a71b00f811fd262e5a1ce35bdef8720
parent 4756a5759593b88a09a0cf7e47e03dd218a3eb7f
author openharmony_ci <120357966@qq.com> 1745307971 +0000
committer Gitee <noreply@gitee.com> 1745307971 +0000

!2968 nativeimage增加实时性渲染优先模式
Merge pull request !2968 from 马靖涛/20250419myޞxNtree d91bfda843be053745cd0519493b044cc351d84c
parent 83579752dfcfdf138d65a5def1e5fb4bab13302f
parent a810535e4622f7b611cd9cc2c4540c8f55efc978
author openharmony_ci <120357966@qq.com> 1745294215 +0000
committer Gitee <noreply@gitee.com> 1745294215 +0000

!2982 修改最小编译版本为18
Merge pull request !2982 from shilong/masterWXn_x!tree d91bfda843be053745cd0519493b044cc351d84c
parent 83579752dfcfdf138d65a5def1e5fb4bab13302f
author shilong <dragon.shilong@huawei.com> 1745287864 +0000
committer Gitee <noreply@gitee.com> 1745287864 +0000

修改最小编译版本为18

Signed-off-by: shilong <dragon.shilong@huawei.com>e=xXtree fd57bb84c9e3972417ed31347286f917c688daa4
parent 52bcda2b4e4cd757e500313f0c5f111b182d22d9
author m00472246 <majingtao1@huawei.com> 1745234557 +0800
committer m00472246 <majingtao1@huawei.com> 1745234557 +0800

native_image新增丢帧模式 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
nx;tree 05d51dce7e2f3f7a43c4d3ae880dfeb43500e9d0
parent 83579752dfcfdf138d65a5def1e5fb4bab13302f
author 陈俞池 <chenyuchi2@huawei.com> 1745203971 +0800
committer 陈俞池 <chenyuchi2@huawei.com> 1745217717 +0800

add active hdbc guide to CAPI XComponent interface

Signed-off-by: 陈俞池 <chenyuchi2@huawei.com>
mxftree 246dc217c5b662f849d43fa45f6ba6c70704de81
parent 9866f7e02ef5643589ddaa061db4270623a089a1
author m00472246 <majingtao1@huawei.com> 1745060722 +0800
committer m00472246 <majingtao1@huawei.com> 1745060722 +0800

nativeimage增加实时性渲染优先模式 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
!x~xCtree 78b021d293ae12ab5816e42183f508bc34007995
parent 041d81199169e04a73b5a89f3ffb75dc99e43295
parent 030293fe52f9743289932f3ab09a868fe48912c6
author openharmony_ci <120357966@qq.com> 1745059919 +0000
committer Gitee <noreply@gitee.com> 1745059919 +0000

!2954 Fix API version.
Merge pull request !2954 from 刘永畅/masterdn`؛x;tree 409697f667adc5997ae0cdf6f8d6c6d53a7a5114
parent fac2425a068d4fd0c31da2067b1b2d2580b88ece
parent 812740f7fa935c0884318aee3e1d909650e28b2e
author openharmony_ci <120357966@qq.com> 1745059797 +0000
committer Gitee <noreply@gitee.com> 1745059797 +0000

!2959 add perf doc
Merge pull request !2959 from AOL/perfdoc1A\xWtree e216bbb4595cc5240ab8100b651a2eafa22d0235
parent 91dcb1a0a60f4211552fc6ae10f7547bca3ab4f4
parent 8667c9f90f7ff51bd291590fc9bb3df1cd89f702
author openharmony_ci <120357966@qq.com> 1745049687 +0000
committer Gitee <noreply@gitee.com> 1745049687 +0000

!2964 同步代码
Merge pull request !2964 from zhangwt3652/syncAvsessionInterfaceMastercm xFtree 8f07a1acc71801dbbd31c1fa6ba74abb3c347d2d
parent ff2fb25d6afd0233ee40284abce5ada5e2064ba4
parent b263b55eef57dcadbadf15204e152d9904061949
author openharmony_ci <120357966@qq.com> 1745041158 +0000
committer Gitee <noreply@gitee.com> 1745041158 +0000

!2848 修改标签问题
Merge pull request !2848 from yangwenxin/masterj^x'tree 3a1b544720f42cab7f9614c5e179c7335a3abc44
parent ff2fb25d6afd0233ee40284abce5ada5e2064ba4
author zhangwt3652 <zhangwenting15@huawei.com> 1744970504 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1744970504 +0800

同步代码

Signed-off-by: zhangwt3652 <zhangwenting15@huawei.com>
-`TxGtree 790a8d83f80c323d6b7d6ae71b15b129c66317dd
parent ff86b0d28049a153399d20977c8b85cf49c7b931
parent 2f9524e79186df4729089203aa46a28d3531976d
author openharmony_ci <120357966@qq.com> 1744945157 +0000
committer Gitee <noreply@gitee.com> 1744945157 +0000

!2935 add active hdbc guide
Merge pull request !2935 from 李辉/hebc0415LaUxQtree 3509258c6e03d92870652e291ebfa9b8c005c743
parent ff86b0d28049a153399d20977c8b85cf49c7b931
author benb365 <liuyongchang1@huawei.com> 1744943442 +0800
committer benb365 <liuyongchang1@huawei.com> 1744943442 +0800

Fix API version.

Signed-off-by: benb365 <liuyongchang1@huawei.com>
Change-Id: I24fc9f5a248e607b199fa0d1f1db4f28fb7014c4
dΐx@tree dda66b783d3b945e5eb9c34926a09c5055a4ec65
parent 54291e2e6a08303cc98cd8222aa7849abb59e7fe
parent b363928daeda67c87554bd0ab8cf74368ff5091f
author openharmony_ci <120357966@qq.com> 1744939754 +0000
committer Gitee <noreply@gitee.com> 1744939754 +0000

!2945 整改ets api
Merge pull request !2945 from niyisheng/masterKbxKtree 1a506fdc04be3ff7880b004b4e13186b8cd293a3
parent 54291e2e6a08303cc98cd8222aa7849abb59e7fe
author chuchihtung <jasper0312@gmail.com> 1744733750 +0800
committer chuchihtung <jasper0312@gmail.com> 1744899952 +0800

add general task and queue task submission wrapper interfaces

Signed-off-by: chuchihtung <zhuzhidong2@huawei.com>
.j}xtree 7d5ab419290718e74671b82ffc96a36c74f7bc18
parent 54291e2e6a08303cc98cd8222aa7849abb59e7fe
author magekkkk <lixin113@huawei.com> 1744870025 +0000
committer magekkkk <lixin113@huawei.com> 1744895919 +0000

add perf doc

Signed-off-by: magekkkk <lixin113@huawei.com>
hQSxtree 5a458389a57c62a2b0eb2dd8bf88fb5291635a37
parent 54291e2e6a08303cc98cd8222aa7849abb59e7fe
author lihui <lihui359@huawei.com> 1744893332 +0800
committer lihui <lihui359@huawei.com> 1744893518 +0800

cleancache api to 19

Signed-off-by: lihui <lihui359@huawei.com>
KPxtree 81739b13b6582b5157ab836013826e895d3f970e
parent 0f5c6e7e7849e862cb7b0f4b7e93dd1e951b9a28
author niyisheng <niyisheng@huawei.com> 1744859978 +0800
committer niyisheng <niyisheng@huawei.com> 1744859978 +0800

整改ets api

Signed-off-by: niyisheng <niyisheng@huawei.com>
(Xxtree 4b3abaafe487542ab39959b480e2ff3fbf4807b4
parent 5e3c18f660d0fd1f8f06545b9718a52549f3922a
author zhangqiang <ethanzhang2098@163.com> 1744810996 +0800
committer zhangqiang <ethanzhang2098@163.com> 1744810996 +0800

move to opengles

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
FW'xitree fe2b12bdeabdbdd482fd19e1e780721b085c5547
parent 64147855b11d1aaba581508910b9ea70d234ee5f
parent 2b3373c835a5546fc44caf0765978c891d2c2d0d
author openharmony_ci <120357966@qq.com> 1744803992 +0000
committer Gitee <noreply@gitee.com> 1744803992 +0000

!2896 Description: 同步代码_0410
Merge pull request !2896 from chenjiafeng10/date_0410_base_master_sync#Mqx>tree 7e429dcd55859cd4190af57e22da475d89704b31
parent cc63e19bc7bbd7dab3d397fc7cdc1ddc2c77cc82
parent 2a87832ba65fd8bb7e018ef17a43381d3e5f942d
author openharmony_ci <120357966@qq.com> 1744797563 +0000
committer Gitee <noreply@gitee.com> 1744797563 +0000

!2938 codecheck
Merge pull request !2938 from ustc-tianyu/master `xtree 7e429dcd55859cd4190af57e22da475d89704b31
parent cc63e19bc7bbd7dab3d397fc7cdc1ddc2c77cc82
author ustc-tianyu <dutianyu4@huawei.com> 1744789603 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1744789614 +0800

codecheck
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
Xxtree d52c1dbea71efcc19659cc33e84ab67172391612
parent cc63e19bc7bbd7dab3d397fc7cdc1ddc2c77cc82
author lihui <lihui359@huawei.com> 1744723518 +0800
committer lihui <lihui359@huawei.com> 1744777249 +0800

add active hdbc guide

Signed-off-by: lihui <lihui359@huawei.com>
Sx\tree 4416172906aa456e6576a9b86c2efb44226d3169
parent 1bb811cbe9785da668a9305ef5d033ddd5d9da28
parent a1ff0fe6f350f5a1e5ade40565b0f0ef88c3a6e2
author openharmony_ci <120357966@qq.com> 1744720762 +0000
committer Gitee <noreply@gitee.com> 1744720762 +0000

!2890 fix:capi接口错误码注释兼容性修改
Merge pull request !2890 from 沈康/master xޑx1tree bd476fd58283f5bbf65d70acd5c9a9fc6566fb1a
parent 36cf25638bb05d3865ff77768c4558fb1492c7d5
parent 4908123b216f31ac2e6ef3e3c4712e9ef7127ef0
author openharmony_ci <120357966@qq.com> 1744719521 +0000
committer Gitee <noreply@gitee.com> 1744719521 +0000

!2933 17
Merge pull request !2933 from zhuhan/api179ZYvx1tree a86a28483a42ba0a378fa40abcdb8320e7a0a092
parent fc0c4240648299b5fe2a4427454722e5d2629883
author zhuhan <zhuhan10@huawei.com> 1744708632 +0800
committer zhuhan <zhuhan10@huawei.com> 1744708632 +0800

17

Signed-off-by: zhuhan <zhuhan10@huawei.com>
Change-Id: I2532242a5f24e59f75bade117b46fb8bfb5989cf
Z)x/tree e50b2ec28ac96fc089bc00a8b1f08b0b2f32a9dd
parent ef6ab37d1236cfb8627ea6b01b11f5b2471820cd
author shenkang <shenkang6@huawei.com> 1744270580 +0800
committer shenkang <shenkang6@huawei.com> 1744707657 +0800

fix:capi接口错误码注释兼容性修改

Signed-off-by: shenkang <shenkang6@huawei.com>
9mxHtree 60a1d514cab61db440876f1a61cd8f8f95a89c2c
parent 4221ccfff2f8f7519691afbfe47ca737b68fc050
parent 7d17cd931ee4af47d10c847e00cc5544198f2ce5
author openharmony_ci <120357966@qq.com> 1744707502 +0000
committer Gitee <noreply@gitee.com> 1744707502 +0000

!2814 add surface enum
Merge pull request !2814 from 李辉/surfaceApi0401RdVxbtree 6cef788ba14dd400d7fadf1d87fc91755ee6285f
parent 0afcc0c7a3693bc0da2a3c3bc2f5975cf57880b0
parent b4dc36563a8d7487dd153b0eb5e18a9e497b8db1
author openharmony_ci <120357966@qq.com> 1744645069 +0000
committer Gitee <noreply@gitee.com> 1744645069 +0000

!2900 slider触控反馈补充振动权限说明
Merge pull request !2900 from zhanghang/slider_capi3pyxWtree 98ca107cd617598b3bacd1600933c68614dab10a
parent 079c9b40e1684b454340409cd315a6bd18850915
parent 5a3ea5579aee30f7353c62cb2eaa17e872bf91b9
author openharmony_ci <120357966@qq.com> 1744462254 +0000
committer Gitee <noreply@gitee.com> 1744462254 +0000

!2855 【轻量级 PR】：api注释规范
Merge pull request !2855 from liyongzhuang/N/A{pxftree 75c4059b1339bbef180c76e3b2b65563f2140863
parent dd3c3e5ef60269cd884502a05b1120dc108ebffd
parent 48c2fa36965548b609dfe12f71274634ea62a2af
author openharmony_ci <120357966@qq.com> 1744380183 +0000
committer Gitee <noreply@gitee.com> 1744380183 +0000

!1758 修复C语言引用drawing_text_typography.h时报错
Merge pull request !1758 from Liufei/fix-ndk	wx3tree 623bd5ead719da1e07480e64a58635a1f0ba0f99
parent 8eb1def8b2354acb10eb1f4f227478fbe183b1c1
parent cc1a67e7fad401258c10bda5fe10a7d2d9b5677f
author openharmony_ci <120357966@qq.com> 1744359050 +0000
committer Gitee <noreply@gitee.com> 1744359050 +0000

!2898 bugfix
Merge pull request !2898 from bjd/master|\x(tree db1b5dc94b9070f6aec7784ac5d9ebfba1c1d2e7
parent bdbc56d7cfd2cc6065c610c43f1ca5497957c3e5
author zhangqiang <ethanzhang2098@163.com> 1744354800 +0800
committer zhangqiang <ethanzhang2098@163.com> 1744354800 +0800

move headers to local dir

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
[xStree a3519fa7aec405bafe3f1724b9971a225551ff05
parent 4d03c08b6e123787a64ab927ebe014967996c650
parent e2980605a80563379019d6fd9bf141a2b72a9017
author openharmony_ci <120357966@qq.com> 1744354346 +0000
committer Gitee <noreply@gitee.com> 1744354346 +0000

!2888 补充高斯数据库相关接口
Merge pull request !2888 from luqing/0410_add+conxTtree 1f3f1f9fea460709e2da37fba5f590dbdbc751f3
parent 9726347730ed2e92b0b36612dee1310385d4ce50
author zhanghang <zhanghang160@huawei-partners.com> 1744352772 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1744353996 +0800

slider触控反馈补充振动权限说明

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
}uyߚxjtree ffdbd1600fef8d652d92122a4c4a7f3c094ec269
parent 9726347730ed2e92b0b36612dee1310385d4ce50
parent d01a1b503fcb7c875d5abe0c962e7fce1fd6dff6
author openharmony_ci <120357966@qq.com> 1744353962 +0000
committer Gitee <noreply@gitee.com> 1744353962 +0000

!2866 修改OH_Ability_GetCurrentChildProcessArgs的api版本
Merge pull request !2866 from hanchenZz/master	fvxtree c36f0bae82d0a298257d88a5fea88d9a718443b6
parent 1de2b58fc16d59b367076af80b8aa8ec54174070
author bjd <baijidong@huawei.com> 1744341701 +0800
committer bjd <baijidong@huawei.com> 1744341701 +0800

补充相关接口

Signed-off-by: bjd <baijidong@huawei.com>
nVGxtree 5834872cc6924bce53a978c9a8083abca543616f
parent 327a542f8be8f53c0542d93ac024c39ba5986699
author bjd <baijidong@huawei.com> 1744341113 +0800
committer bjd <baijidong@huawei.com> 1744341113 +0800

补充相关接口

Signed-off-by: bjd <baijidong@huawei.com>
qUxtree 4ab211d912388c3652d7f9ff2fe471153e2e1ad3
parent 9726347730ed2e92b0b36612dee1310385d4ce50
author bjd <baijidong@huawei.com> 1744339802 +0800
committer bjd <baijidong@huawei.com> 1744339802 +0800

补充相关接口

Signed-off-by: bjd <baijidong@huawei.com>
U|xtree 5288fcda081f4c2907290cb7d2afa3aad26d3851
parent ce331f465b761afa4638f3b7dc7d955d43012cd5
author liufei <liufei225@h-partners.com> 1744287927 +0800
committer liufei <liufei225@h-partners.com> 1744288400 +0800

compatibility

Signed-off-by: liufei <liufei225@h-partners.com>
ĬV9xtree 0bedfd4445372a2dd3910aba35b2c8122aa60f10
parent 9726347730ed2e92b0b36612dee1310385d4ce50
author liufei <liufei225@h-partners.com> 1731743923 +0800
committer liufei <liufei225@h-partners.com> 1744288117 +0800

fix compile error

Signed-off-by: liufei <liufei225@h-partners.com>
H}Vkx=tree e66b5df5d35e24a5cc8bdf10135dd7ba942bc7fd
parent 8f67f8eb342ded43d411f5ca9662ec64894eb409
parent dba165e165c501bc18b20d8b4d32463823efc5a0
author openharmony_ci <120357966@qq.com> 1744283931 +0000
committer Gitee <noreply@gitee.com> 1744283931 +0000

!2874 sdk test
Merge pull request !2874 from 刘永凯/viewcapibxLtree 790ce860e30d2b23e7ace103bc57e3b109e6d7cb
parent e90164b06b9a89abe0850b1dd2f62ddc44a972cc
parent c7015bb707dd3ef1439a011088f36e70ed0173ea
author openharmony_ci <120357966@qq.com> 1744278223 +0000
committer Gitee <noreply@gitee.com> 1744278223 +0000

!2771 OH_Huks_ListAliases同步
Merge pull request !2771 from 杨俊峰/master1!iΕxtree c5a0563f34dcdf22c5a9d68318f3c3e651b29604
parent e90164b06b9a89abe0850b1dd2f62ddc44a972cc
author luqing <luqing16@huawei.com> 1744268408 +0800
committer luqing <luqing16@huawei.com> 1744271678 +0800

补充接口
Signed-off-by: luqing <luqing16@huawei.com>
TWxFtree 790ce860e30d2b23e7ace103bc57e3b109e6d7cb
parent 28937b6598c22f7dbdccd180094f6c4dd5f9619f
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1744267895 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1744267895 +0800

OH_Huks_ListAliases版本同步

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
7UkKxktree 98f9d28703353b62ea809bc7b4e9b9c5e5979f69
parent edd117752aa00213e533c1d83a27fb12be7e2e34
parent e90164b06b9a89abe0850b1dd2f62ddc44a972cc
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1744267861 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1744267861 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c into 0327
epxKtree c2d86642e386d216f05e1b8c41cdb812a1353515
parent c2ccdaae2781df1636b9dc14a3f69338e221c827
parent d1590ae52feeff9cdd28af65b15a8ce91f5f4a14
author openharmony_ci <120357966@qq.com> 1744257259 +0000
committer Gitee <noreply@gitee.com> 1744257259 +0000

!2886 Add missing error code note
Merge pull request !2886 from Steven/master]dRx<tree 102c395d3847fd0b38894457614fc431ad3ec01a
parent 47e0d7efcc364a46b7d30330cd10cd14781a5d9b
parent e4e3f40a80585544104951d75c849bc55db1caab
author openharmony_ci <120357966@qq.com> 1744256744 +0000
committer Gitee <noreply@gitee.com> 1744256744 +0000

!2877 icu特性回合
Merge pull request !2877 from bjd/master ajx>tree 26b53264baea2e276a102ed2402028190a0c49eb
parent ef6ab37d1236cfb8627ea6b01b11f5b2471820cd
parent 80e7d377407c5fba6a89b48b2fb30491a1b9443b
author openharmony_ci <120357966@qq.com> 1744255472 +0000
committer Gitee <noreply@gitee.com> 1744255472 +0000

!2788 描述修改
Merge pull request !2788 from xionglei/master7bx0tree 1ebd031f1676535fd9d230c1eb5401e84020193d
parent ef6ab37d1236cfb8627ea6b01b11f5b2471820cd
author Steven <duanzhengteng@huawei.com> 1744251400 +0000
committer Gitee <noreply@gitee.com> 1744251400 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>>ax/tree cdfd257d8211926e118d531c2ddabaa5e11b5c75
parent 1483c2a24bb3c9a68e024be86effb618de7e4008
author 刘永凯 <liuyongkai2@huawei-partners.com> 1744114570 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1744251263 +0800

sdk test

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
k jJx<tree 11715789957a632db9c3296638b2a1b6f50be240
parent 3b9ad039ec5678490f219a78c95d72163bd35c1c
parent ecd8fb4e86f62c945c4c3135d8f3a56fa3426561
author openharmony_ci <120357966@qq.com> 1744208259 +0000
committer Gitee <noreply@gitee.com> 1744208259 +0000

!2849 change api
Merge pull request !2849 from 刘永凯/api17p_]xotree 5d632aa791f38d4b6195eb282b5840090625a27a
parent d9667df3e33fbbfdd0520f0c180bd84e6bfe6e76
parent a363cbb4ae45dbb92ba5b8c4d71502224da22672
author openharmony_ci <120357966@qq.com> 1744198128 +0000
committer Gitee <noreply@gitee.com> 1744198128 +0000

!2883 【轻量级 PR】：Remove napi_onLoad from libnapi.ndk.json
Merge pull request !2883 from wangbowen36/N/A8rvyx]tree e3d6ae94cd9566059762a3a286e720c445733180
parent c7cc3120bec418aeb8459ce0bd9a2b528e511c01
parent fbb304629b316e0687dfdfadf0bfe3d1493820a3
author openharmony_ci <120357966@qq.com> 1744191256 +0000
committer Gitee <noreply@gitee.com> 1744191256 +0000

!2803 hiappevent移除多余@syscap sdkc
Merge pull request !2803 from liujiaxing19/consistency
oLxqtree 28bbc42fe7ada57196d16dd8a6ea4746fed18bcb
parent c7cc3120bec418aeb8459ce0bd9a2b528e511c01
author wangbowen36 <wangbowen36@huawei.com> 1744190005 +0000
committer Gitee <noreply@gitee.com> 1744190005 +0000

Remove napi_onLoad from libnapi.ndk.json
Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IBZSI7

Signed-off-by: wangbowen36 <wangbowen36@huawei.com>yDx<tree 17f4c56d6e8b0c9a414fae0720bdddcadf6af665
parent c7cc3120bec418aeb8459ce0bd9a2b528e511c01
author 18795846185 <chenliming20@huawei-partners.com> 1744177728 +0800
committer 18795846185 <chenliming20@huawei-partners.com> 1744177728 +0800

resource dir

Signed-off-by: 18795846185 <chenliming20@huawei-partners.com>

,`xtree 50f4afa663e3fdcdd91095a2678f7ab2aa322139
parent 556ce77906becae32681d1583295f5f9c098a4cf
author bjd <baijidong@huawei.com> 1744164987 +0800
committer bjd <baijidong@huawei.com> 1744164987 +0800

icu特性回合

Signed-off-by: bjd <baijidong@huawei.com>
4Sxtree 7f2a8e8317acfbf2cfa6643a10731638f895fff9
parent c7cc3120bec418aeb8459ce0bd9a2b528e511c01
author bjd <baijidong@huawei.com> 1744162620 +0800
committer bjd <baijidong@huawei.com> 1744162620 +0800

icu特性回合

Signed-off-by: bjd <baijidong@huawei.com>
Sx!tree fcd9bf5e8e831f21ee2a9dd9645d582115b09aee
parent da379850b748ffc65bd324f877e604a0e58e1638
author yzj688 <yuzejun1@huawei.com> 1744119833 +0800
committer yzj688 <yuzejun1@huawei.com> 1744119833 +0800

Drawing 增加pixelmap构造canvas接口
Signed-off-by: yzj688 <yuzejun1@huawei.com>
4`xYtree df48e49419aee0e4ef72844f1d689d1f4d4819cc
parent da379850b748ffc65bd324f877e604a0e58e1638
parent 3e154c240e4cea4da607bae2d0597b188db860a1
author openharmony_ci <120357966@qq.com> 1744119717 +0000
committer Gitee <noreply@gitee.com> 1744119717 +0000

!2838 Interface export napi_onLoad
Merge pull request !2838 from wangbowen36/Addnapi_onLoadUiSxGtree 3816aec7297d833214df209848be2cd5910b86b5
parent 1483c2a24bb3c9a68e024be86effb618de7e4008
parent 0f5c6e7e7849e862cb7b0f4b7e93dd1e951b9a28
author openharmony_ci <120357966@qq.com> 1744114498 +0000
committer Gitee <noreply@gitee.com> 1744114498 +0000

!2871 add flag description
Merge pull request !2871 from niyisheng/master bxtree c1b7647582ec13babb2e6f1a8dd60ca642aa2ad0
parent b59fa9f9483815c2e168dd0e8643beac95cee647
author niyisheng <niyisheng@huawei.com> 1744104831 +0800
committer niyisheng <niyisheng@huawei.com> 1744104831 +0800

add flag description

Signed-off-by: niyisheng <niyisheng@huawei.com>
ZxGtree 34f0423de34e67136200a8d76d8fac4bfb1ca9f8
parent aea7379e59ce32291009fd2fd7359ede28226411
parent c0d3e018a7a045052cbca9a525f50700939d7481
author openharmony_ci <120357966@qq.com> 1744103659 +0000
committer Gitee <noreply@gitee.com> 1744103659 +0000

!2840 modify API version
Merge pull request !2840 from hongran1206/master}v`ɚxtree 8f1e822140384bee1d2b18e339ef552cc3a85669
parent aea7379e59ce32291009fd2fd7359ede28226411
author niyisheng <niyisheng@huawei.com> 1744103412 +0800
committer niyisheng <niyisheng@huawei.com> 1744103412 +0800

add flag description

Signed-off-by: niyisheng <niyisheng@huawei.com>
=Y xltree 3a1a3675a9cfdade6c3fd2e77b967b1b4d3678dd
parent 11f883c51554f4bba2cdc4821836afa14eb13fb5
parent c2f2f67d0e13350ae2069f65389c3d37d558ee96
author openharmony_ci <120357966@qq.com> 1744095618 +0000
committer Gitee <noreply@gitee.com> 1744095618 +0000

!2748 新增pan手势capi中distanceMap的设置
Merge pull request !2748 from 贺晨韬/hct_add_panDisanceMap6|xFtree 5a1a39836d3b9fb1c65fcaad07d24abe1f396f9e
parent 11f883c51554f4bba2cdc4821836afa14eb13fb5
author hanchenZz <wanghanchen1@huawei.com> 1744093773 +0800
committer hanchenZz <wanghanchen1@huawei.com> 1744093773 +0800

修改OH_Ability_GetCurrentChildProcessArgs的api版本

Signed-off-by: hanchenZz <wanghanchen1@huawei.com>
7!ox@tree 4c739aa7597b01f126b7df7c663a67ea9afc1226
parent 0ccb4b7c51fa448cfd4e8bbd969bc50c768f0b16
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1744079105 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1744079105 +0800

OH_Huks_ListAliases添加

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
gxktree 29aa4c3cf325ac496106568a869b83e03c6094d7
parent 110a33a326f88ec014e6acea4af29562512606d9
parent 11f883c51554f4bba2cdc4821836afa14eb13fb5
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1744079069 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1744079069 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c into 0327
lpx(tree 3a1a3675a9cfdade6c3fd2e77b967b1b4d3678dd
parent 11f883c51554f4bba2cdc4821836afa14eb13fb5
author hct95 <hechentao@huawei.com> 1742871089 +0800
committer 贺晨韬 <hechentao@huawei.com> 1744033676 +0800

新增pan手势capi中distanceMap的设置

Signed-off-by: hct95 <hechentao@huawei.com>
j
x'tree 6a95c422d2b0001131cac8186c4e806c27efe823
parent a92ad8ab179f9ff3e740d236934e555660335ebe
author zhanghongran <zhanghongran@huawei.com> 1744030638 +0800
committer zhanghongran <zhanghongran@huawei.com> 1744030638 +0800

修改版本号

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
)cxYtree 229d55cb39919047ff8d84a90e62a607baa019cf
parent d4fe6db22d178ec633da4dee9c262d038d241301
parent d193a766f636e58ea5d9c1299bf7183723ca2f93
author openharmony_ci <120357966@qq.com> 1744016075 +0000
committer Gitee <noreply@gitee.com> 1744016075 +0000

!2834 add new error code for publish api
Merge pull request !2834 from CheerfulRicky/master8hxOtree 7ec32f81ae2b615faab20127dacc4bac3f87693b
parent f4457d70388d1f08444b3d591d73a747c8a3c8bc
parent 7f9dac448006aea2094b3c2679d2a9f7af6f14ae
author openharmony_ci <120357966@qq.com> 1744014836 +0000
committer Gitee <noreply@gitee.com> 1744014836 +0000

!2793 modify libimage_commin.so error
Merge pull request !2793 from 胡超/masterRhMxrtree 7d7c64f1c4d0c136169eb9154c11eb52ea853a3a
parent cd49ea6ad1311b4b68a00d136160bb536d9520b4
author liujiaxing19 <liujiaxing19@huawei.com> 1743411128 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1744012112 +0800

hiappevent接口资料一致性修改

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: I0db1c391b651028d312a0d2fc1128165154f40e7
+{֖xFtree 10798c8d67f793353d5128c5d4b97c7ba0db15c8
parent fc0c4240648299b5fe2a4427454722e5d2629883
parent a6c0680da5b85628ca22d6d36ba84490b0baa0cc
author openharmony_ci <120357966@qq.com> 1744007396 +0000
committer Gitee <noreply@gitee.com> 1744007396 +0000

!2829 调整f32的api为17
Merge pull request !2829 from cailei24/master_d
xtree 59a3e27bdf2633cc7e9cbd117e3b1f96945425ff
parent fc0c4240648299b5fe2a4427454722e5d2629883
author liyongzhuang <liyongzhuang1@huawei.com> 1743932212 +0000
committer Gitee <noreply@gitee.com> 1743932212 +0000

api注释规范

Signed-off-by: liyongzhuang <liyongzhuang1@huawei.com>]1xAtree 4875b53ab2dc1b8cc1be5544fff9270fb4d8df55
parent 44d16d004b7ff4bc4228e611e7f37af5c5e42a1a
parent 93ebf0b8e466fc9a5046ec35131a6a5f03f016ab
author openharmony_ci <120357966@qq.com> 1743671313 +0000
committer Gitee <noreply@gitee.com> 1743671313 +0000

!2842 接口信息修改
Merge pull request !2842 from wangz/mastergEx1tree 30018830b137a767bfe02a96bd0f897d4784bc2d
parent 44d16d004b7ff4bc4228e611e7f37af5c5e42a1a
author 刘永凯 <liuyongkai2@huawei-partners.com> 1743670873 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1743670873 +0800

change api

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
gjDx<tree e28e23dd7dc3bf910c33f8cdde102acbb8cc24d8
parent 44d16d004b7ff4bc4228e611e7f37af5c5e42a1a
author “yang-wenxingg” <yangwenxin9@huawei.com> 1743670598 +0800
committer “yang-wenxingg” <yangwenxin9@huawei.com> 1743670598 +0800

修改标签问题

Signed-off-by: “yang-wenxingg” <yangwenxin9@huawei.com>
sxtree b61eac42855f314ff8d53e1a14cfaac05a9e73c6
parent c7d0df13d58eb8bd70a0018a63543fc8f56399f1
author zhangqiang <ethanzhang2098@163.com> 1743670417 +0800
committer zhangqiang <ethanzhang2098@163.com> 1743670417 +0800

. to //interface

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
Vxtree aea6b3f3e896d0ddab805f4a45a666b15c281477
parent 3808a77019d5d65e711f20824578a94ff28d2c86
author zhangqiang <ethanzhang2098@163.com> 1743651639 +0800
committer zhangqiang <ethanzhang2098@163.com> 1743669581 +0800

ndk gl4

Signed-off-by: zhangqiang <ethanzhang2098@163.com>
RĚxJtree b9e0c84257382884cbd54430fcabe7449234500e
parent 3808a77019d5d65e711f20824578a94ff28d2c86
parent d1286b300c631bdc9add129a755403c48c43e412
author openharmony_ci <120357966@qq.com> 1743667478 +0000
committer Gitee <noreply@gitee.com> 1743667478 +0000

!2836 modify api version
Merge pull request !2836 from 杨临风/fix-device2Rdxtree 7185648c5cf892f4eb703b9c5d42d3eba0b351ed
parent 265b7935c9977a4e495d0b483dfe72b727c0a4f8
author wangz <wangzhen350@huawei.com> 1743655003 +0800
committer wangz <wangzhen350@huawei.com> 1743655003 +0800

接口抛异常修改

Signed-off-by: wangz <wangzhen350@huawei.com>
d\ɐx@tree 6bfbab3b3ca15bc407a86942508315d3809842cf
parent 91b0f0a490e04b8d7e08c4a491a137c0bc176588
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1743651104 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1743651104 +0800

OH_Huks_ListAliases同步

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
!exktree 23d4d9978656e0048164b6c83710cded770408fe
parent e60af80231f130fbf9bb06a9bd5d3fd4373f5737
parent 3808a77019d5d65e711f20824578a94ff28d2c86
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1743651064 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1743651064 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c into 0327
oxx?tree ce076c367a7b93ea30decc3267f7e72a5ba8e129
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
author 红书包指挥官 <gongjingbo2@huawei.com> 1743586827 +0800
committer 红书包指挥官 <gongjingbo2@huawei.com> 1743648769 +0800

add window ndk interface

Signed-off-by: 红书包指挥官 <gongjingbo2@huawei.com>
b_xnxtree fa8113cdf53a22db5260be9be8dd0e74be3978ec
parent 3808a77019d5d65e711f20824578a94ff28d2c86
author wangz <wangzhen350@huawei.com> 1743647391 +0800
committer wangz <wangzhen350@huawei.com> 1743647391 +0800

接口信息修改

Signed-off-by: wangz <wangzhen350@huawei.com>
Zx{tree 80f24f092bddfad9470b782b99cfe9d382c32c57
parent 4b997be8304157607d5b0b5ff7164e789920edaf
author wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1743647219 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei-partners.com> 1743647219 +0800

获取文本行数的CAPI实现

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei-partners.com>
Change-Id: Ic5357953d94158cdee767b9a225f04201d6a47a4
-߄x4tree f1283f3f4a0ce0184c6f0654a3459e34bfdfecad
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
author cheerful_ricky <yuegang7@huawei.com> 1743576447 +0800
committer cheerful_ricky <yuegang7@huawei.com> 1743642524 +0800

add new error code for publish api

Signed-off-by: cheerful_ricky <yuegang7@huawei.com>
mecxatree 8535f1723b3eac4c72a8f71dc24f0dfedc64a1dd
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
parent 1d9b132b441c438e7bf6e670aacee9e8e1a3c2d7
author openharmony_ci <120357966@qq.com> 1743607404 +0000
committer Gitee <noreply@gitee.com> 1743607404 +0000

!2825 Add keyboard indicator states in KeyEvent.
Merge pull request !2825 from liukaii/indicatorKeymx*tree dc8930dbbec3d84a73030555c6b930c453ee6633
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
author zhanghongran <zhanghongran@huawei.com> 1743595261 +0800
committer zhanghongran <zhanghongran@huawei.com> 1743595261 +0800

modify API version

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
\`Rxqtree 03b9792efd2849ecefe68a3d5f2af45d42dc5b60
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
author wangbowen36 <wangbowen36@huawei.com> 1743586911 +0800
committer wangbowen36 <wangbowen36@huawei.com> 1743586911 +0800

Interface export napi_onLoad

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IBYCCH
Signed-off-by: wangbowen36 <wangbowen36@huawei.com>
Yxx!tree fe6facbf17393da3ca1e29b9601224b36f8557b2
parent 1e38274e525d62f235d13ed7eb00c719504f9f6a
author 杨临风 <yanglinfeng5@huawei.com> 1743231560 +0800
committer 杨临风 <yanglinfeng5@huawei.com> 1743583534 +0800

modify api version

Signed-off-by: 杨临风 <yanglinfeng5@huawei.com>
d3xtree 56c61c46056377e491e9895ea7fd8dd26ac53340
parent 28a91bd888a045ce8b5eaf0f6df7d7df9b014940
author cailei <cailei24@huawei.com> 1743564098 +0800
committer cailei <cailei24@huawei.com> 1743564098 +0800

调整f32的api为17

Signed-off-by: cailei <cailei24@huawei.com>
A^Ux=tree dbf4991008e1b33bfb8aa3fe6423208f6c2f07a1
parent cca1acaf09fbef80be60174500c1b67782242db0
parent ccdcffe52b70f07ae07a63b605a4d20247d3f182
author openharmony_ci <120357966@qq.com> 1743563804 +0000
committer Gitee <noreply@gitee.com> 1743563804 +0000

!2820 多摄同开ndk
Merge pull request !2820 from 李政/testRdx*tree d73978ffda549b5294ca096a57d1c0d85f5eab44
parent cca1acaf09fbef80be60174500c1b67782242db0
author liukaii <liukai240@huawei.com> 1743558571 +0800
committer liukaii <liukai240@huawei.com> 1743563721 +0800

Add keyboard indicator states in KeyEvent.

Signed-off-by: liukaii <liukai240@huawei.com>
]Kxtree 6463b1a9ded1aa4c967da1fccd574719566ee8ed
parent def3858fa5ba9adbc377350d5f1c1e68d4c1808c
author lihui <lihui359@huawei.com> 1743476191 +0800
committer lihui <lihui359@huawei.com> 1743562076 +0800

add surface enum

Signed-off-by: lihui <lihui359@huawei.com>
N+Qx.tree dbf4991008e1b33bfb8aa3fe6423208f6c2f07a1
parent 11fe5b9c7123834d243430c514cc5b46bf5eb225
author 李政 <lizheng194@huawei.com> 1743556515 +0000
committer Gitee <noreply@gitee.com> 1743556515 +0000

update multimedia/camera_framework/camera_manager.h.

Signed-off-by: 李政 <lizheng194@huawei.com>/cFx.tree a997a0f7d9ca4c590ea61223b4eb307a7aa7a78f
parent 1c929a242b305ea013bb8124ae6625eb254da06a
author 李政 <lizheng194@huawei.com> 1743521082 +0000
committer Gitee <noreply@gitee.com> 1743521082 +0000

update multimedia/camera_framework/camera_manager.h.

Signed-off-by: 李政 <lizheng194@huawei.com>cxtree d87f472e970bde9a64a5aa42f20a96f946095ab4
parent 69d1701af8b79a49d880f7fe43faa38ff710a35c
author 李政 <lizheng194@huawei.com> 1743520496 +0800
committer 李政 <lizheng194@huawei.com> 1743520496 +0800

xxxx

Signed-off-by: 李政 <lizheng194@huawei.com>
jUxtree 94af26f12132a6c621741a68ef778b67f4f4a54e
parent cca1acaf09fbef80be60174500c1b67782242db0
author 李政 <lizheng194@huawei.com> 1743518675 +0800
committer 李政 <lizheng194@huawei.com> 1743518675 +0800

多摄同开ndk

Signed-off-by: 李政 <lizheng194@huawei.com>
l\Sxktree e70d984b0cd21df93a74f2342f19f008097d84c4
parent b33dd1b686cfdddb87a344ef079d28d5147c3f8a
parent d190e50b7a7307b090ebddea98f41c05121b751f
author openharmony_ci <120357966@qq.com> 1743514454 +0000
committer Gitee <noreply@gitee.com> 1743514454 +0000

!2761 drawing deprecated OH_Drawing_GpuContextCreateFromGL
Merge pull request !2761 from lizhan/deprecatedGpuz1pxhtree 8799cc6c40d5679758bd8a35dc516a72acdfe7ba
parent 90273f9e4653254b833659d5efa33172a7064105
author zhanghang <zhanghang160@huawei-partners.com> 1743488222 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1743488222 +0800

Dialog组件支持自定义背景模糊CAPI 代码优化

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
Change-Id: I4e5f326ccc05b3e4fdd41bcd83a72ae2b5423f72
w)x;tree f25ea0e224516a272634c45b1108ce31d29022db
parent 68faa19413bb912cf68680b935b7658249883281
parent 59c92953f0de77312a4cc5bf982f5ef3b137abc8
author openharmony_ci <120357966@qq.com> 1743477930 +0000
committer Gitee <noreply@gitee.com> 1743477930 +0000

!2812 modify annotate
Merge pull request !2812 from GQ/master';\^xtree f25ea0e224516a272634c45b1108ce31d29022db
parent 68faa19413bb912cf68680b935b7658249883281
author mazhabandeng <dreamer_gq@163.com> 1743470619 +0800
committer mazhabandeng <dreamer_gq@163.com> 1743470619 +0800

modify annotate
Signed-off-by: GQ <dreamer_gq@163.com>
=PsxDtree f3cf75786d51777a330270b0648713c2a10a5b49
parent 77fadccc3f9a194007613aae108b2d5d0a67fedf
parent 8caf0785162d46f33f1eab4bd13af897d75fed26
author openharmony_ci <120357966@qq.com> 1743431929 +0000
committer Gitee <noreply@gitee.com> 1743431929 +0000

!2809 字体接口废弃
Merge pull request !2809 from GMiao522/master?fȕxEtree 0e8fbfecfa4af48a7336e886a92546b69f8d143d
parent 8ecd4ca2e60c9ad0d9056e8f526e7c2d26a86e1f
parent 664bc172d3573405e0888a78a6232cf69dda4a03
author openharmony_ci <120357966@qq.com> 1743426217 +0000
committer Gitee <noreply@gitee.com> 1743426217 +0000

!2804 add ndk interfaces
Merge pull request !2804 from wangqing/dev0331aRxQtree 83020d7ee6c7b006d53fa790812dc27d0c048c70
parent cd49ea6ad1311b4b68a00d136160bb536d9520b4
parent 59ebc92a0afaf7b4ae4f669157f154f163773aab
author openharmony_ci <120357966@qq.com> 1743424518 +0000
committer Gitee <noreply@gitee.com> 1743424518 +0000

!2750 字段缺失，格式符号整改
Merge pull request !2750 from 任倩/mastersxtree 0ba0f7f8895b1bba4fda6c1badf5325f69cbb0b7
parent cd49ea6ad1311b4b68a00d136160bb536d9520b4
author GMiao522 <goumiao2@huawei.com> 1743422374 +0800
committer GMiao522 <goumiao2@huawei.com> 1743422374 +0800

字体接口废弃

Signed-off-by: GMiao522 <goumiao2@huawei.com>
YxPtree 8e9454d48c21dba4b9a8a626ae536b460310030f
parent cd49ea6ad1311b4b68a00d136160bb536d9520b4
author wangqing <wangqing195@huawei.com> 1743411825 +0800
committer wangqing <wangqing195@huawei.com> 1743411825 +0800

add ndk interfaces

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: Iac4334f9f1786eda3e5edbe093a55177a2961021

ex[tree f7e5767de80bb7bf09a97ab269a98da679ec9194
parent 1884fbd9658e1ed5d0b24a6a98909f6e05bb826a
parent 449003dc055392208086d7524bf641bcf3ec552f
author openharmony_ci <120357966@qq.com> 1743386725 +0000
committer Gitee <noreply@gitee.com> 1743386725 +0000

!2785 [sdkmaster] fix differences in master
Merge pull request !2785 from 王子微/dev_sdkc1Sqlx:tree 8d4346959a4d0ad2e2fd0d3ec331baac40992b3c
parent ab2179ff285bbe7833ab1eaf7c3ec54a2306ecf9
parent b60bbc319d7f6ccf350054aabb5c6c0e03b141df
author openharmony_ci <120357966@qq.com> 1743245429 +0000
committer Gitee <noreply@gitee.com> 1743245429 +0000

!2787 fix annotation
Merge pull request !2787 from ht/masterۦ_yxtree 9d400a35bfd9827c62caa1605d56e76573e2bee1
parent ab2179ff285bbe7833ab1eaf7c3ec54a2306ecf9
author huchao <huchao53@huawei.com> 1743238856 +0800
committer huchao <huchao53@huawei.com> 1743238856 +0800

modify libimage_commin.so error

Signed-off-by: huchao <huchao53@huawei.com>
/}X>xtree 3a0b13d3a6b5c5dd2be66f57e418b5500e9a1def
parent ab2179ff285bbe7833ab1eaf7c3ec54a2306ecf9
author caochuan <caochuan@huawei.com> 1743234795 +0800
committer caochuan <caochuan@huawei.com> 1743234795 +0800

Fallback argb

Signed-off-by: caochuan <caochuan@huawei.com>
Tx?tree b8795b61e41d08a1c9d7ae9f143b3ef6d3d0c5f2
parent 1e38274e525d62f235d13ed7eb00c719504f9f6a
parent 59287e5fa27e85c7020429cdd37b8f14467802b3
author openharmony_ci <120357966@qq.com> 1743233291 +0000
committer Gitee <noreply@gitee.com> 1743233291 +0000

!2765 add the key of H263
Merge pull request !2765 from yj/mastero]Zxtree bf14c8ea86e721040e73c99940be88ea19fdccff
parent 1e38274e525d62f235d13ed7eb00c719504f9f6a
author yiyajun <yiyajun@huawei.com> 1743228516 +0800
committer yiyajun <yiyajun@huawei.com> 1743228516 +0800

描述修改

Signed-off-by: yiyajun <yiyajun@huawei.com>
 Vx tree 7718d9c929b181fe1e205637fc0e5986ce165eb1
parent 1e38274e525d62f235d13ed7eb00c719504f9f6a
author ht <hutao105@huawei.com> 1743215790 +0000
committer Gitee <noreply@gitee.com> 1743215790 +0000

fix annotation

Signed-off-by: ht <hutao105@huawei.com><6KДx4tree 1508a13c22de58fb0dc23a8194ce177fc7b46393
parent 90273f9e4653254b833659d5efa33172a7064105
parent 1a0f35db3a4f5940856f96af3212e6b62de0fa55
author openharmony_ci <120357966@qq.com> 1743213370 +0000
committer Gitee <noreply@gitee.com> 1743213370 +0000

!2692 fix sdk
Merge pull request !2692 from Zenix/m314=Xڛx;tree b5ba2231e910d8bc8152b15709f73b76b0839634
parent 98f827b7931326056b1fb4d2d513ed44d0ece5d0
parent 80529323faa310898ab059933eb1bf41b1542d06
author openharmony_ci <120357966@qq.com> 1743162271 +0000
committer Gitee <noreply@gitee.com> 1743162271 +0000

!2684 capi inter
Merge pull request !2684 from 刘永凯/capi	W^ϝx=tree 977d45a4ca53732ead1134233f83be024ec7c9dd
parent 968e3514913af273ee0a6934bff0c5ea291028ff
author 王子微 <wangziwei38@h-partners.com> 1743152990 +0800
committer 王子微 <wangziwei38@h-partners.com> 1743152990 +0800

[sdkmaster] fix differences in master

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
mx<tree c8fb6d349f34fc4610b4e169eab6a0565e8efe60
parent a63019144d00487b78fa943b18846eb6a6ac01fd
author 李辉 <lihui359@huawei.com> 1743150887 +0000
committer 李辉 <lihui359@huawei.com> 1743150887 +0000

fix gn format

Signed-off-by: 李辉 <lihui359@huawei.com>
Change-Id: I370ebdf6bc92db2b3a38fcd2e356c78d4aed9a27
dҞxNtree a9ed3cbc211cf859dfb4cc4c9d0334aa74e7aa62
parent 18e1f4bd63f1ce362978ca0553bda7df0fcfebeb
parent 3237f72cc3ec11f966df1912d0370bdedbb1d9e1
author openharmony_ci <120357966@qq.com> 1743148665 +0000
committer Gitee <noreply@gitee.com> 1743148665 +0000

!2773 sdk_c仓蓝黄差异同步
Merge pull request !2773 from Trouvaille/branch!n˘xhtree b661efc2522d3b94e676462649fc53dcc815cfdf
parent 423b80e76623a22bb3d5997bf66f3cef77e91a27
parent 6bd6f09e1b45b255fff5946917059965e740f1a1
author openharmony_ci <120357966@qq.com> 1743089706 +0000
committer Gitee <noreply@gitee.com> 1743089706 +0000

!2695 Dialog组件支持自定义背景模糊 CAPI
Merge pull request !2695 from zhanghang/dialog_20250315ɮwx9tree c7a04f73216af2f1bb9d50a5f4590a5e9ec5761d
parent e74c5c1e91a3dad242e9be528fa6704cdfb9df6a
parent 9c7c274dda20aca1c6f3077ab73a796ad7a181f8
author openharmony_ci <120357966@qq.com> 1743078781 +0000
committer Gitee <noreply@gitee.com> 1743078781 +0000

!2688 axis_c
Merge pull request !2688 from 刘永凯/axis_clax5tree cf149cf62b7f3b6e4a6079fd8f42c9bd03170f25
parent a427394b5782593789e87edfc381bdb6ae675b62
author 任倩 <renqian12@huawei.com> 1743069308 +0000
committer Gitee <noreply@gitee.com> 1743069308 +0000

update distributeddatamgr/pasteboard/include/oh_pasteboard.h.

Signed-off-by: 任倩 <renqian12@huawei.com>Mfx5tree ed087253adad20e9c9a2acce48a74c53253b5c48
parent 8427d1034fa41aed2b2c7c98add3fdae207c32e1
author 任倩 <renqian12@huawei.com> 1743067776 +0000
committer Gitee <noreply@gitee.com> 1743067776 +0000

update distributeddatamgr/pasteboard/include/oh_pasteboard.h.

Signed-off-by: 任倩 <renqian12@huawei.com>ygx&tree 98a4cf79cd97ad776a5da42cc52dd760e91d7626
parent e74c5c1e91a3dad242e9be528fa6704cdfb9df6a
author Trouvaille <wuminghua6@huawei.com> 1743067004 +0800
committer Trouvaille <wuminghua6@huawei.com> 1743067004 +0800

sdk_c仓蓝黄差异同步

Signed-off-by: Trouvaille <wuminghua6@huawei.com>
df+x@tree 968fabd1f3b42cfd5ae6364ee6c73a49200fa806
parent e74c5c1e91a3dad242e9be528fa6704cdfb9df6a
author yang-junfeng0621 <yangjunfeng19@huawei.com> 1743064086 +0800
committer yang-junfeng0621 <yangjunfeng19@huawei.com> 1743064086 +0800

OH_Huks_ListAliases同步

Signed-off-by: yang-junfeng0621 <yangjunfeng19@huawei.com>
gx tree 1335650d9f2294f25e2f954b8419af665047e79a
parent a738193f36a5a618e5f59fadfefcf923adec3c5a
author yj <yujie57@huawei.com> 1743056652 +0800
committer yj <yujie57@huawei.com> 1743056652 +0800

add the key of H263

Signed-off-by: yj <yujie57@huawei.com>
 Kx tree 186621437cf27198bb00059be62dd083ebb26681
parent e6fd1cf6d68975092ed6ec0d3e37c4ae9c3aaf0b
author yj <yujie57@huawei.com> 1743056479 +0800
committer yj <yujie57@huawei.com> 1743056479 +0800

add the key of H263

Signed-off-by: yj <yujie57@huawei.com>
aKؓxctree fad14a28a42987f73b1d4c57928190f445b9a3a9
parent 4b997be8304157607d5b0b5ff7164e789920edaf
parent 336d849cbf7f809521f4e5775084507011bc5dc3
author openharmony_ci <120357966@qq.com> 1743051786 +0000
committer Gitee <noreply@gitee.com> 1743051786 +0000

!2754 [L] setOnVisibleAreaApproximateChange api 18-&gt;17
Merge pull request !2754 from lisitao/d0326i}x tree 4627d636247d0377a85f6e8e7dbaa534b7bc498c
parent 4b997be8304157607d5b0b5ff7164e789920edaf
author yj <yujie57@huawei.com> 1743047251 +0800
committer yj <yujie57@huawei.com> 1743047251 +0800

add the key of H263

Signed-off-by: yj <yujie57@huawei.com>
K$x
tree ceb2d7cad5ee209f9a52988717d5caace7768a5e
parent 84c8843ca8f25ca6416ad6ed6b02bdb9c9175f24
author lihui <lihui359@huawei.com> 1743044595 +0800
committer lihui <lihui359@huawei.com> 1743044595 +0800

add surface api 6.0

Signed-off-by: lihui <lihui359@huawei.com>
Q x5tree 9c746a5f64ba5688fe55b01c5bf9e3851c29323b
parent ec9730036886ddc2adcc439f973614089329d5bf
author 任倩 <renqian12@huawei.com> 1742982281 +0000
committer Gitee <noreply@gitee.com> 1742982281 +0000

update distributeddatamgr/pasteboard/include/oh_pasteboard.h.

Signed-off-by: 任倩 <renqian12@huawei.com>.fxUtree caa06caa655b3c60e7d15451814c3a93f43ee198
parent 968e3514913af273ee0a6934bff0c5ea291028ff
parent 772d48006693cd3ad53d8881d39a633eba6e0a98
author openharmony_ci <120357966@qq.com> 1742979800 +0000
committer Gitee <noreply@gitee.com> 1742979800 +0000

!2725 音频框架增加设备类型
Merge pull request !2725 from Guoge/remote_controlqxtree 6b69f64c7f40fcb4dfc4aadc732c21e9f2c327db
parent 968e3514913af273ee0a6934bff0c5ea291028ff
author l00844999 <lizhan12@huawei.com> 1742971345 +0800
committer l00844999 <lizhan12@huawei.com> 1742971345 +0800

drawing deprecated
Signed-off-by: l00844999 <lizhan12@huawei.com>
R,xstree fd192317c30d4e72302093b48c79a0f9f8ee1471
parent 968e3514913af273ee0a6934bff0c5ea291028ff
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1742957465 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1742957465 +0800

[L] setOnVisibleAreaApproximateChange api 18->17
修改Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
uxztree caa06caa655b3c60e7d15451814c3a93f43ee198
parent 369c8a4bfe07e2c4fb1e2d19c2de9faefd478960
parent 968e3514913af273ee0a6934bff0c5ea291028ff
author Guoge <guoyichen2@huawei.com> 1742953685 +0000
committer Gitee <noreply@gitee.com> 1742953685 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into remote_control

Signed-off-by: Guoge <guoyichen2@huawei.com>FyxZtree fa9614a0aef853bee29517585f76b33f232648a8
parent fe99f0752c0ca98f791273a258aa58834a4a0824
parent 490c368fd864885245a835138d26c2e4b0da4ee1
author openharmony_ci <120357966@qq.com> 1742903949 +0000
committer Gitee <noreply@gitee.com> 1742903949 +0000

!2708 hiappevent错误码level修改
Merge pull request !2708 from liujiaxing19/fixErrorCodenxMtree c73057dc5f678f6ef67023489b84d29815e698da
parent 4ec0f4ee43abe494a9685910663d059b3b93cc73
parent defe5b6542d3a76550531f485caaedbc5969b558
author openharmony_ci <120357966@qq.com> 1742903470 +0000
committer Gitee <noreply@gitee.com> 1742903470 +0000

!2751 按照规范修改注释
Merge pull request !2751 from zhangyuchao/master8lZxtree c73057dc5f678f6ef67023489b84d29815e698da
parent 4ec0f4ee43abe494a9685910663d059b3b93cc73
author z00544238 <zyc.wei@huawei.com> 1742896524 +0800
committer z00544238 <zyc.wei@huawei.com> 1742897275 +0800

按照规范修改注释

Signed-off-by: z00544238 <zyc.wei@huawei.com>
ZAxOtree b36c66a7a558199e756882006fb1be9f48b9da18
parent 366c2e1a7a616e70ba180a8c9510d2fa781e6059
parent 518301a60989a26d1ae8ce930f59212e0fb595d3
author openharmony_ci <120357966@qq.com> 1742893399 +0000
committer Gitee <noreply@gitee.com> 1742893399 +0000

!2704 ffrt读写锁开源合入sdk仓
Merge pull request !2704 from 雷旗/master%n;xtree 80da6cb4f33bc6e1dced24575f251b81deaea4af
parent 366c2e1a7a616e70ba180a8c9510d2fa781e6059
author 任倩 <renqian12@huawei.com> 1742889152 +0000
committer Gitee <noreply@gitee.com> 1742889152 +0000

一致性修改

Signed-off-by: 任倩 <renqian12@huawei.com>aZxtree 0cf055b5f3864bae2516eddbda4d943db116a289
parent 9bd7a08d69b8c00330ec0c510166b2debca6f9cc
author leiqi <384581262@qq.com> 1742889092 +0800
committer leiqi <384581262@qq.com> 1742889092 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
Vxtree 587b494eaf111c87414d4338098d8e6e1bd7c644
parent 2ac19f9bb7d40d80b97e2209d4339fded19c9d7e
author leiqi <384581262@qq.com> 1742888535 +0800
committer leiqi <384581262@qq.com> 1742888535 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
FV
xtree dae744fbe49cbb06a9b1faae0e08ac6c6a27712b
parent f159563324aee3dd864f65e346fc71a7a109c1ee
author leiqi <384581262@qq.com> 1742885975 +0800
committer leiqi <384581262@qq.com> 1742885975 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
|W8xtree 9b2d399412f9a681e527a201ea527870d78f74cf
parent 3dc11f2fb4737cd67c7f25ee1b47f71364b1b680
author leiqi <384581262@qq.com> 1742885307 +0800
committer leiqi <384581262@qq.com> 1742885307 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
gUxtree 8dbe6a7040b3128b4addd8cfd97ace04be01f939
parent 5c262321740333bbd3b002fc8f442fb234358df5
author leiqi <384581262@qq.com> 1742885166 +0800
committer leiqi <384581262@qq.com> 1742885166 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
V(xtree 06fe7449526ce6c174dd3b36d68c576e9ac3dc0b
parent a9c660b3c5c0a6e7b5777ca09ea7ac08e57fd86e
author leiqi <384581262@qq.com> 1742885040 +0800
committer leiqi <384581262@qq.com> 1742885040 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
Vםxtree 6ec2ce919e640374538d4a86c1edae8f2f21fce4
parent e68747d24cd386e930b8ac5dc9a77712dbe4a5c1
author leiqi <384581262@qq.com> 1742884924 +0800
committer leiqi <384581262@qq.com> 1742884924 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
&Vxntree 23ec509d5522af1d80438c709e8a881999871ae7
parent 2bab1e079d0ba3cf32136189ee1e92e750086c5f
parent 1e34a352a36afad00677e05a715726bf2b73d218
author openharmony_ci <120357966@qq.com> 1742873651 +0000
committer Gitee <noreply@gitee.com> 1742873651 +0000

!2747 hicollie补充导出“自定义卡死时间”需求新增接口
Merge pull request !2747 from hhl/masterxttree 5577aaf02e87c0b257e577f7f2f1a883b7109f8e
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author zhanghang <zhanghang160@huawei-partners.com> 1742015096 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1742871666 +0800

Dialog组件支持自定义背景模糊 CAPI

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
Change-Id: I4f6816aec3fe0a98ee4346093731cb110a4a00ab
ߔxtree 23ec509d5522af1d80438c709e8a881999871ae7
parent 2bab1e079d0ba3cf32136189ee1e92e750086c5f
author hhl <yinhuiling@huawei.com> 1742870386 +0800
committer hhl <yinhuiling@huawei.com> 1742870386 +0800

fix: 补充导出新增接口

Signed-off-by: hhl <yinhuiling@huawei.com>
b]ҝxtree 3dfe4b0df8286e1122ef8be9214ceb1bb9002349
parent a5a971a3e600650bec7f6a99d0cc38367dbaa51a
author leiqi <384581262@qq.com> 1742866825 +0800
committer leiqi <384581262@qq.com> 1742866825 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
7Vxtree 528cab74f8adfc69dac9a039b10b156d4efcd54c
parent bd9a296b85ae737b4c7cd69f24321255a5d9127f
author leiqi <384581262@qq.com> 1742821592 +0800
committer leiqi <384581262@qq.com> 1742821592 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
5YVϕxUtree 6ad192c620e66095c6ee536c4fce0f03d6d2705f
parent c1f9d5c8af211a972d1fc4ff18a5a8c803bb4824
parent 6957e987dfe966878f134c9dc80471252489d76b
author openharmony_ci <120357966@qq.com> 1742818774 +0000
committer Gitee <noreply@gitee.com> 1742818774 +0000

!2743 修复ndk编译报错问题
Merge pull request !2743 from shegangbin/fix_ndk_0324
oxtree 6ad192c620e66095c6ee536c4fce0f03d6d2705f
parent c1f9d5c8af211a972d1fc4ff18a5a8c803bb4824
author shegangbin <shegangbin1@huawei.com> 1742808100 +0800
committer shegangbin <shegangbin1@huawei.com> 1742808100 +0800

fix ndk

Signed-off-by: shegangbin <shegangbin1@huawei.com>
pCWTxZtree 1104b94697497e7c5bb8e72973085cad1aae36ad
parent 6839f733f892c859e48b122f7b63a6be0c70ad9e
parent b266f6e8ba35db3949852b2b0f945c1e9c40f6f3
author openharmony_ci <120357966@qq.com> 1742805317 +0000
committer Gitee <noreply@gitee.com> 1742805317 +0000

!2711 @file 文件名拼写有误，需修正
Merge pull request !2711 from 于好强/master^whxEtree 254a5c35d22305c9f12dd56092b23b65eaf35dd4
parent 23bc26d40c59fe4f48802d52758ee92e922bb4dc
parent 704fb3b07937193b9f57c8fddefbfb79d9c50643
author openharmony_ci <120357966@qq.com> 1742720017 +0000
committer Gitee <noreply@gitee.com> 1742720017 +0000

!2730 修复c++库int问题
Merge pull request !2730 from 邹林肯/int|i;x#tree 254a5c35d22305c9f12dd56092b23b65eaf35dd4
parent cc7bbfcfbc413d085a5c85a51dd5bcaf235a07d9
author 邹林肯 <735001321@qq.com> 1742635780 +0000
committer Gitee <noreply@gitee.com> 1742635780 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 邹林肯 <735001321@qq.com>L^x!tree c5bb21b072a81b5f77a3e19d7d4f326218cd83db
parent 23bc26d40c59fe4f48802d52758ee92e922bb4dc
author zoulinken <zoulinken1@huawei.com> 1742631762 +0800
committer zoulinken <zoulinken1@huawei.com> 1742631762 +0800

修复c++库音乐问题

Signed-off-by: zoulinken <zoulinken1@huawei.com>
HcTxDtree 3312e223aa408ab24709e70c999ea960f656de58
parent baf8b22d3534844a7fc6644b1a79df5b6a7ee1fd
parent 07e45fa0967633cdd8fc810eae3d5304add384c7
author openharmony_ci <120357966@qq.com> 1742629007 +0000
committer Gitee <noreply@gitee.com> 1742629007 +0000

!2696 audio 注解完善
Merge pull request !2696 from zhangkai/masterex(tree dd7adbbddc1fe51aaa3fe273465aba2c3ac2043a
parent 45382b3173745bec5108348226987ce72cbc1a03
author 刘永凯 <liuyongkai2@huawei-partners.com> 1741922054 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1742625447 +0800

capi inter

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
Zdxvtree 988b410907296ae22253e698b7fd7267c8244962
parent af6911196ab4afb9554a8e8e0816dccdbb3bf186
parent baf8b22d3534844a7fc6644b1a79df5b6a7ee1fd
author Zenix <zhengxingyou1@huawei.com> 1742549272 +0000
committer Gitee <noreply@gitee.com> 1742549272 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into m314

Signed-off-by: Zenix <zhengxingyou1@huawei.com>Yvhxtree b3d93d5b880bc0363f76982000bd3ebd90a54c82
parent 8c5de1057d310da58976394f9b55d166792af48b
author Zenix <zhengxingyou1@huawei.com> 1742002884 +0800
committer Zenix <zhengxingyou1@huawei.com> 1742548999 +0800

fix sdk

Signed-off-by: Zenix <zhengxingyou1@huawei.com>
VSxtree 661684e4b208786e1e693064ff189b5adc011cc6
parent faeb9015677153418e50a6d6a9778000cd4c4ce3
author leiqi <384581262@qq.com> 1742542621 +0800
committer leiqi <384581262@qq.com> 1742542621 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
JUxStree 4d19b45ea651ab2bb23e51211cb9550cd4caa1a3
parent affb6442de6b5caf7e2c6946aea20672ca2a423e
parent ebd968a29a794ab894c18a74b54ce2d933c7afd2
author openharmony_ci <120357966@qq.com> 1742541048 +0000
committer Gitee <noreply@gitee.com> 1742541048 +0000

!2022 拆分音频回调接口
Merge pull request !2022 from ancimoon/split_callbacksRpxStree b4319357387c8ca473407b8eb9aee3b373324523
parent e41c9a34a01457367732dacf0eadb806e6aea545
parent 4ebc7cf3dfe657016ac198ef97b6793409cf18cf
author openharmony_ci <120357966@qq.com> 1742540098 +0000
committer Gitee <noreply@gitee.com> 1742540098 +0000

!2714 音频框架接口新增设备类型
Merge pull request !2714 from Guoge/masterrrxtree 4541426bc617607b22f6d81212be74efdaa4826c
parent 9f36e9397287a34ea5c6a9f908ff2e334aba2de2
author leiqi <384581262@qq.com> 1742522959 +0800
committer leiqi <384581262@qq.com> 1742522959 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
#fUxtree 1c75cc66e443046cc7053f41c83205ca3702ed74
parent 1a2fc0e4579d87ee9d4ba575cab5340fd07dc164
author g00514389 <guoyichen2@huawei.com> 1742476477 +0800
committer g00514389 <guoyichen2@huawei.com> 1742476477 +0800

formating

Signed-off-by: g00514389 <guoyichen2@huawei.com>
PxPtree d68d945c2c95fcda1efd8662528c7789723b20ea
parent 89ca93fd1ed4d131c7d560b1112879054fe62ddd
parent f8199d50ba34e25bfa9780722b2d174753bd9411
author openharmony_ci <120357966@qq.com> 1742475882 +0000
committer Gitee <noreply@gitee.com> 1742475882 +0000

!2718 黄蓝代码差异同步sdk_c
Merge pull request !2718 from 卢道春/masterpAx tree ba4c8fdb8a3686d8a23abcba278b61f4b152291b
parent 89ca93fd1ed4d131c7d560b1112879054fe62ddd
author g00514389 <guoyichen2@huawei.com> 1742474827 +0800
committer g00514389 <guoyichen2@huawei.com> 1742474827 +0800

add remote control apis

Signed-off-by: g00514389 <guoyichen2@huawei.com>
"Vxtree 7a9d9663c0697c647182e969f8dacf2fdcb67472
parent f4c523bc1e7cde82d453e607eced6f1bfb81549c
author leiqi <384581262@qq.com> 1742474555 +0800
committer leiqi <384581262@qq.com> 1742474555 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
TVǖxtree f1f6dab0f264b6f91b5370299c39023db3131c7b
parent bf31aa4bce5074e8a8503bcd2e41625431b3d98a
author g00514389 <guoyichen2@huawei.com> 1742471841 +0800
committer g00514389 <guoyichen2@huawei.com> 1742471841 +0800

change format

Signed-off-by: g00514389 <guoyichen2@huawei.com>
qRCx$tree d68d945c2c95fcda1efd8662528c7789723b20ea
parent 89ca93fd1ed4d131c7d560b1112879054fe62ddd
author 卢道春 <ludaochun@h-partners.com> 1742454918 +0800
committer 卢道春 <ludaochun@h-partners.com> 1742454918 +0800

代码差异同步

Signed-off-by: 卢道春 <ludaochun@h-partners.com>
{jǖxtree 92ad97d8851a72a23c5509e8eaa22cc51eb9baa3
parent 097dff3f640c9fbf1e14aabc862e83b9ff2c476d
author g00514389 <guoyichen2@huawei.com> 1742453825 +0800
committer g00514389 <guoyichen2@huawei.com> 1742453825 +0800

delete spaces

Signed-off-by: g00514389 <guoyichen2@huawei.com>
SxZtree 8e84b67152882a74794850aa0cab10ab93890fe7
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
parent 35982b1daa3d533986b68d2fa9a13f197a66cf5a
author openharmony_ci <120357966@qq.com> 1742453787 +0000
committer Gitee <noreply@gitee.com> 1742453787 +0000

!2710 【需求】新增NDK接口：OH_WindowManager_GetAllWindowLayoutInfoList、OH_WindowManager_ReleaseAllWindowLayoutInfoList
Merge pull request !2710 from fox/newP,Ԙxtree 22ffa5663458933fe6252340646214ab7543462a
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author g00514389 <guoyichen2@huawei.com> 1742439655 +0800
committer g00514389 <guoyichen2@huawei.com> 1742439655 +0800

add new devices

Signed-off-by: g00514389 <guoyichen2@huawei.com>
Qxntree 115fa26d560f263e1684767bc71c75233ecece6e
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author yuhaoqiang <yuhaoqiang@huawei.com> 1742370802 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1742375881 +0800

@file 文件名拼写错误，修正文件名

Change-Id: I56ed5af8ceebc2b99850d44bf758d03a13c7c65b
Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
ښx
tree a6b2fee3688ec3d05b33e6d84a71e0849ec9ea35
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author lihui <lihui359@huawei.com> 1742210585 +0800
committer lihui <lihui359@huawei.com> 1742372283 +0800

add surface api 6.0

Signed-off-by: lihui <lihui359@huawei.com>
Px tree 8e84b67152882a74794850aa0cab10ab93890fe7
parent 398eb0cd67859f186623d6e3782491597f37129f
author fox <tanhong6@h-partners.com> 1742367319 +0800
committer fox <tanhong6@h-partners.com> 1742367319 +0800

i

Signed-off-by: fox <tanhong6@h-partners.com>
Lx  tree ae4269096c051c217caba880af635ae9a54e18d7
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author fox <tanhong6@h-partners.com> 1742367083 +0800
committer fox <tanhong6@h-partners.com> 1742367083 +0800

ii

Signed-off-by: fox <tanhong6@h-partners.com>
ANxatree 0567439b929bb18550b0e7989cb33ce7ef545ce1
parent 04096c6a49f0fcea36855e92618d6f7cbfad89b5
author liujiaxing19 <liujiaxing19@huawei.com> 1742305981 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1742305981 +0800

错误码level修改

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: Ifef61eb1dca14f7c2d0c5d3f5099edb556612d30
s@xtree 98087ec70b5e47cddf21c13595292ada2c9fd964
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author leiqi <384581262@qq.com> 1742288677 +0800
committer leiqi <384581262@qq.com> 1742288677 +0800

ffrt读写锁开源合入sdk仓

Signed-off-by: leiqi <384581262@qq.com>
\VHxtree bb471cf475a5ca89cf2839ad6396d77496af2b16
parent 446f20c1d1265de841e90900cc4f848b5a18cdb4
author huchang <huchang4@huawei.com> 1742286726 +0800
committer huchang <huchang4@huawei.com> 1742286726 +0800

refactor api depends relationship

Signed-off-by: huchang <huchang4@huawei.com>
Yxtree ff262646b73fb94a63434fd5368c6f1f4695202e
parent 05ca7b88d0736c41b90346cd182cef192b60af1f
author huchang <huchang4@huawei.com> 1742178490 +0800
committer huchang <huchang4@huawei.com> 1742178490 +0800

add pre declare

Signed-off-by: huchang <huchang4@huawei.com>
̩Rxtree 2d9c3c455cfb1d094e3086f0125c43fa993be8d5
parent b49b197d963ab5293d5a0ea9c6376f4a88de324d
author huchang <huchang4@huawei.com> 1742032981 +0800
committer huchang <huchang4@huawei.com> 1742174590 +0800

add json

Signed-off-by: huchang <huchang4@huawei.com>
-P0xtree 9d7493b8887fad9fe92dafb63e1ad7286a5d4a6c
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author zhangkai <zhangkai269@huawei.com> 1742028826 +0800
committer zhangkai <zhangkai269@huawei.com> 1742028826 +0800

audio 注解完善

Signed-off-by: zhangkai <zhangkai269@huawei.com>
 *\xtree 79a00aa0a233a011220ec5724ff3e1d9678dab31
parent 4dfce62670fabbe9299c7fff1fdb81e6f5f1eecb
author huchang <huchang4@huawei.com> 1742009625 +0800
committer huchang <huchang4@huawei.com> 1742010996 +0800

change api level

Signed-off-by: huchang <huchang4@huawei.com>
TRxGtree f11f13629d6911498b60cc9457a58763183bedb1
parent bbe9a3bf59315db3acf1e20252d1730c8f10d485
author huchang <huchang4@huawei.com> 1734097140 +0800
committer huchang <huchang4@huawei.com> 1742009867 +0800

split audio callbacks

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I2052f48e0e188731feade9ca904599579e5d502f
0cxjtree 666bbb1868db4e37c14e01e75c2822cd4f16ec73
parent aa8fe7b772672b4a863942907979f33ae8e3448f
parent 166c56836b00acc466d705bc6a0b4f2a14c0c272
author openharmony_ci <120357966@qq.com> 1741950937 +0000
committer Gitee <noreply@gitee.com> 1741950937 +0000

!2686 StartOptions相关API版本改为17
Merge pull request !2686 from 杨旭光/refactor/ndk-start-options1uwx^tree b788395573f6a9b3f2e3f6d06dc656b07d5e4e53
parent 45382b3173745bec5108348226987ce72cbc1a03
parent ec65a3c234b50876169bd4c743e6da48f95b2dd2
author openharmony_ci <120357966@qq.com> 1741944243 +0000
committer Gitee <noreply@gitee.com> 1741944243 +0000

!2690 fix:代码规范行宽调整不超过120字符
Merge pull request !2690 from 沈康/masterŸxxUtree f115677ec48ec0dd8e27db68d4dfb201c7626d60
parent 45382b3173745bec5108348226987ce72cbc1a03
author yangxuguang-huawei <yangxuguang3@huawei.com> 1741926160 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1741943985 +0800

feat: change StartOptions API version to 17

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
-nyx1tree b788395573f6a9b3f2e3f6d06dc656b07d5e4e53
parent 45382b3173745bec5108348226987ce72cbc1a03
author shenkang <shenkang6@huawei.com> 1741939187 +0800
committer shenkang <shenkang6@huawei.com> 1741939187 +0800

fix:代码规范行宽调整不超过120字符

Signed-off-by: shenkang <shenkang6@huawei.com>
olĝx-tree d2eecc5be81209bbeea2ffd24aa29f6e877d254d
parent 45382b3173745bec5108348226987ce72cbc1a03
author 刘永凯 <liuyongkai2@huawei-partners.com> 1741936066 +0800
committer 刘永凯 <liuyongkai2@huawei-partners.com> 1741936066 +0800

axis_c

Signed-off-by: 刘永凯 <liuyongkai2@huawei-partners.com>
}i`xtree 74dea62c14e91c23dac70eba993c2b9c2a6014ca
parent b2d56d7bd855bc19e607730646a07a09a0eb7097
author yangxu <yangxu69@hisilicon.com> 1741849908 +0800
committer yangxu <yangxu69@hisilicon.com> 1741876961 +0800

新增CAPI

Signed-off-by: yangxu <yangxu69@hisilicon.com>
NUxtree 12c9fa3a4d6074c18b20c6a24674f4f4a2ff3105
parent b2d56d7bd855bc19e607730646a07a09a0eb7097
parent a3a485817ba1c5436a6017856e0ef032a9582550
author openharmony_ci <120357966@qq.com> 1741865397 +0000
committer Gitee <noreply@gitee.com> 1741865397 +0000

!2667 供获取应用级沙箱路径的ndk接口 sdk版本号修改为16
Merge pull request !2667 from wangbing/master_ndk_getDir̙xItree a184713c52a4c25448ec8a3b70979770b515ac2c
parent 3a5f934e69c921ef40558e7162194d1009bce566
parent b6e7ba250f49367177f1f8b93ac6749c66bb800c
author openharmony_ci <120357966@qq.com> 1741769112 +0000
committer Gitee <noreply@gitee.com> 1741769112 +0000

!2661 add pixelmap interface
Merge pull request !2661 from 姚朱鹏/masteredВxBtree b711ff6224d9b0a138f4ecd99d975e1f4229f30f
parent 8acb6053276ea5e2708f650c54d801010eb8be0c
parent eaf07cac29a4dafbd31d7bd1a35812704fa23fd4
author openharmony_ci <120357966@qq.com> 1741694788 +0000
committer Gitee <noreply@gitee.com> 1741694788 +0000

!2636 add hdmi device
Merge pull request !2636 from ancimoon/br_hdmiſaxVtree db081c16ca9ed7a94a23e7a29e89a80493e37f52
parent d6bb9ab67a4ba7bcea14515f4ee2bfc1b6e1e235
parent d7c87ba80b050e1c9060fef984df1c0641e62d47
author openharmony_ci <120357966@qq.com> 1741692944 +0000
committer Gitee <noreply@gitee.com> 1741692944 +0000

!2632 按照规范修改文档格式
Merge pull request !2632 from 梅志坚/deal-dts-58;uxXtree 28e00d926cb6c3c0c825bcaa967a0c56c690f063
parent 142b264641fffe5c368a3a5ea35c7d604d2cc357
parent dd2b5e71409fc58affd690077bf7ac482e99b2c7
author openharmony_ci <120357966@qq.com> 1741663246 +0000
committer Gitee <noreply@gitee.com> 1741663246 +0000

!2655 add cropStrategy interface
Merge pull request !2655 from 姚星宇/0307_cropStrategy4kÖx6tree 961a4ce66b37465e9c8af7642a1b3ea53fe97a91
parent 142b264641fffe5c368a3a5ea35c7d604d2cc357
author wangbing <wangbing175@huawei-partners.com> 1741659649 +0800
committer wangbing <wangbing175@huawei-partners.com> 1741659649 +0800

update sdk version

Signed-off-by: wangbing <wangbing175@huawei-partners.com>
&%bxtree d8c00f83b003a0825e1e87fff13c45b94f4d9975
parent 142b264641fffe5c368a3a5ea35c7d604d2cc357
author greensue <shulin3@huawei.com> 1741657675 +0800
committer greensue <shulin3@huawei.com> 1741657675 +0800

jit ACL: change version to 18

Signed-off-by: greensue <shulin3@huawei.com>
fWHxXtree c1c54b2287e5fe59b94e92dd4003c15c96a1f38d
parent b5c4563f87533a7a5715e57d0be3f1393da545eb
parent c9b07c9c14b5bbd606054630070b2f981169c2d8
author openharmony_ci <120357966@qq.com> 1741627661 +0000
committer Gitee <noreply@gitee.com> 1741627661 +0000

!2358 linux arm64编译sdk-interface_sdk_c
Merge pull request !2358 from wuyuechang/masterKjxCtree 2f2fbc7b12f42b657b7cceb5fb6b7a57b978a35a
parent 5d1a3ab7ac2826b9e3e700491399e2bff39fe737
parent 4d675f14d6984307e1bbdb1d1a1bafc55b310c72
author openharmony_ci <120357966@qq.com> 1741612194 +0000
committer Gitee <noreply@gitee.com> 1741612194 +0000

!2663 fix func error in json
Merge pull request !2663 from AOL/mastera)xtree 2f2fbc7b12f42b657b7cceb5fb6b7a57b978a35a
parent 5d1a3ab7ac2826b9e3e700491399e2bff39fe737
author AOL <lixin113@huawei.com> 1741608559 +0000
committer Gitee <noreply@gitee.com> 1741608559 +0000

fix func error in json

Signed-off-by: AOL <lixin113@huawei.com>`OxKtree 0ce21a9d7662fe1315033b0820c545e88fc87f74
parent d0d640bad9b82759c1b65ab0bcf3f53f80b97603
parent 19daa5d0652bbbabf6a8dd712c4792a5ee29a2ec
author openharmony_ci <120357966@qq.com> 1741599528 +0000
committer Gitee <noreply@gitee.com> 1741599528 +0000

!2659 add startVisibility
Merge pull request !2659 from xuzihan129/wechat_fix!]dx"tree da3215cdac823d2f54849dcfdf352dc2d1d29ebd
parent d0d640bad9b82759c1b65ab0bcf3f53f80b97603
author yaozhupeng <yaozhupeng@huawei.com> 1741590506 +0800
committer yaozhupeng <yaozhupeng@huawei.com> 1741592625 +0800

add pixelmap interface

Signed-off-by: yaozhupeng <yaozhupeng@huawei.com>
:^xytree 2c42cb8944c863475cf2ce434373ae5367eb24d3
parent 07d047d072b439e4713329bacfbbca7a7aadc202
author y00656910 <yaoxingyu3@huawei.com> 1741588724 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1741588871 +0800

code check

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: I3092e6fd2cde4cf021e42f37671c8324ff16557d
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
p]xvtree e8ac19e3359e80e93f090ad9959740e2c47f2b0d
parent 65146db823b3d1e31d0decf721f3479a334e77c7
author y00656910 <yaoxingyu3@huawei.com> 1741339304 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1741583137 +0800

add cropStrategy interface

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: Ie40313428df2d9feb46b4bab0011c3999954ea2f
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
0vxtree 0ce21a9d7662fe1315033b0820c545e88fc87f74
parent d0d640bad9b82759c1b65ab0bcf3f53f80b97603
author xuzihan129 <xuzihan11@huawei.com> 1741574491 +0800
committer xuzihan129 <xuzihan11@huawei.com> 1741574491 +0800

add startVisibility

Signed-off-by: xuzihan129 <xuzihan11@huawei.com>
<WxUtree 634b3cc64981d0afb2b30c50f7c2688d0d388585
parent 136b1e524f7ffccfd5d333ecbed75b0d198de9fe
parent 283d89027c81529e93e7912880d0872c98d3984b
author openharmony_ci <120357966@qq.com> 1741418804 +0000
committer Gitee <noreply@gitee.com> 1741418804 +0000

!2571 新增StartOptions
Merge pull request !2571 from 杨旭光/feat/ndk-start-optionszlxWtree 57ab50939ee4cd4a035006681f20d8d5e565f5dc
parent 0d134f8694f1354bfa4e58b68d141d0523475668
parent 3c3c711a447895df9436f08ac83da470f0d15bc2
author openharmony_ci <120357966@qq.com> 1741411151 +0000
committer Gitee <noreply@gitee.com> 1741411151 +0000

!2619 回退新增的UIInputEvent类型
Merge pull request !2619 from wc-huang/uitype_bakOnx@tree 98495522d1e87fd4efbfb0538f9a25b6beb16449
parent 0d134f8694f1354bfa4e58b68d141d0523475668
author yangxuguang-huawei <yangxuguang3@huawei.com> 1740126087 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1741404911 +0800

feat: add startOptions

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
QgxXtree ceaf8904112d1a669b6d097997dc50b9e402c32e
parent 279f0936b8c34ecdb27c19aef19d65cece4f6999
parent ad737ea2fd86644c5d7eed6cfde6f6587b4c77b1
author openharmony_ci <120357966@qq.com> 1741348721 +0000
committer Gitee <noreply@gitee.com> 1741348721 +0000

!2654 add set volume apis in ohaudio and avplayer
Merge pull request !2654 from AOL/master	i7x@tree 949bf637854742c2fb084991d21d6cd92e2df473
parent 29fce4509a9ee7ccd05c9e87eaa51f3e6b3537e9
parent 33cbb287673b0f769ed809ad5de608f1281693fc
author openharmony_ci <120357966@qq.com> 1741347014 +0000
committer Gitee <noreply@gitee.com> 1741347014 +0000

!2637 change api 16 to 18
Merge pull request !2637 from jxw/master@^lxktree a2685a9313353fdc9c140eac5278056e5d48e8a2
parent c00cf98f92130f803169e6f3c1d8476ae9b1c6a7
parent 6bd86652364eddc105541c86550b8524640f458d
author openharmony_ci <120357966@qq.com> 1741345105 +0000
committer Gitee <noreply@gitee.com> 1741345105 +0000

!2607 支持获取子进程启动参数NativeChildProcess_args
Merge pull request !2607 from hanchenZz/masterhNyƝx tree de1fc23f9a17ff01c4197363bf87d1eaadeb3e70
parent 76aa91ef6a56878896a37d29464c9e348e19017d
author AOL <lixin113@huawei.com> 1741339344 +0000
committer Gitee <noreply@gitee.com> 1741339344 +0000

fix ver error

Signed-off-by: AOL <lixin113@huawei.com>Kx tree 472d0471a56ae7d7dc1efbdda9bfc0fb46d69b5e
parent 3bf0085d388d893f3182d4f8425f56f347044114
author AOL <lixin113@huawei.com> 1741339234 +0000
committer Gitee <noreply@gitee.com> 1741339234 +0000

add ndk json

Signed-off-by: AOL <lixin113@huawei.com>KIxtree f85e273918079c5489d82f48d254a727e7355ba9
parent c00cf98f92130f803169e6f3c1d8476ae9b1c6a7
author AOL <lixin113@huawei.com> 1741339026 +0000
committer Gitee <noreply@gitee.com> 1741339026 +0000

add set volume apis in ohaudio and avplayer

Signed-off-by: AOL <lixin113@huawei.com>Uؔxttree afd4810795a84773efe2e8ffb89f23f8b1e06f14
parent ea72b41d398bd82da006d38ca148e6c616e1295a
parent ae92e0d061dc00707132f61e07e0c919c010186d
author openharmony_ci <120357966@qq.com> 1741331481 +0000
committer Gitee <noreply@gitee.com> 1741331481 +0000

!2652 自定义弹窗支持自定义焦点策略
Merge pull request !2652 from houguobiao/req_custom_dialog_focusable4x9tree fbc24208669cd44341ab49ce5a507a6d77c66d2d
parent 65146db823b3d1e31d0decf721f3479a334e77c7
parent 6f2ee413783d4af000f39cac43cda32cb7ee8299
author openharmony_ci <120357966@qq.com> 1741329004 +0000
committer Gitee <noreply@gitee.com> 1741329004 +0000

!2584 add memory db
Merge pull request !2584 from ht/master\]x9tree 55b3bc948c7dc462287624d1cbe7deb72dbd9f44
parent fd910d4a4b92003d28b8ff72707d36291b8a2e97
parent af6d4c23e28ff8ea5cbc96d095a519c3e1d7e071
author openharmony_ci <120357966@qq.com> 1741274329 +0000
committer Gitee <noreply@gitee.com> 1741274329 +0000

!2642 rollangle
Merge pull request !2642 from 郑齐熠/apiD`xDtree 551d9fb3957673541296fbb065ed224ebf06611c
parent a75001c9bbc38c32b44debc1da3c400871b119db
parent 0b9f4aa26ea31960870b77013ecc73c12dae57bb
author openharmony_ci <120357966@qq.com> 1741271986 +0000
committer Gitee <noreply@gitee.com> 1741271986 +0000

!2640 size_t_fix
Merge pull request !2640 from zhengzhuolan/size_t_fixb	x*tree d89313ce7a0ee81f351b8fef08f0807a52a98873
parent 10efd484e05676b900fc52836022414f08379b44
author mazhabandeng <dreamer_gq@163.com> 1740733997 +0800
committer mazhabandeng <dreamer_gq@163.com> 1741261041 +0800

按照规范修改文档格式
Signed-off-by: 梅志坚 <meizhijian741@outlook.com>
xi	xktree 1197506efd8e9dfcf4d34e0ab421f8ff0bddcf3f
parent a75001c9bbc38c32b44debc1da3c400871b119db
author houguobiao <houguobiao@huawei.com> 1741260360 +0800
committer houguobiao <houguobiao@huawei.com> 1741260360 +0800

自定义弹窗支持自定义焦点策略

Signed-off-by: houguobiao <houguobiao@huawei.com>
Change-Id: I41b76889269124a66e80791af419159061d3fe93
{ŁDxZtree 45766ffc68894a335a79d62753b7fa98bf33fc04
parent fa33a0d1a7df5f6b2a844f3f872ac8b7e8818d8e
parent 5dd4479eb29e25eda4ab2de99e87431ee3169373
author openharmony_ci <120357966@qq.com> 1741246460 +0000
committer Gitee <noreply@gitee.com> 1741246460 +0000

!2644 update security/asset/inc/asset_type.h.
Merge pull request !2644 from 尹耀德/master}m;x>tree 67cd65aa98b838cc78bd8416bde97d9bb3c9aabd
parent 10efd484e05676b900fc52836022414f08379b44
parent feef3238c6545b194f2cfd70f21cc306ba37fe4c
author openharmony_ci <120357966@qq.com> 1741244414 +0000
committer Gitee <noreply@gitee.com> 1741244414 +0000

!2625 modify headers
Merge pull request !2625 from 钱丹/master]axPtree b558fae1a9a6e7eedd69eceede48739a51275ae6
parent 9510e9c1099755a86bf5f6f81b57fec1f7c00c4b
parent cbb3397e4741bd70d407f1cc558395474a920777
author openharmony_ci <120357966@qq.com> 1741239512 +0000
committer Gitee <noreply@gitee.com> 1741239512 +0000

!2585 textPicker and customDialog
Merge pull request !2585 from zhanghang/0224_dzlexLtree 228a6ae560b6d65a0d89c3d787fa53a0dfbcbd51
parent 3f7bd5df31639c22a2662008c9b679d1d269e302
parent 2c8776ea138d5ea1b2f7fed24893223b32b12deb
author openharmony_ci <120357966@qq.com> 1741234555 +0000
committer Gitee <noreply@gitee.com> 1741234555 +0000

!2641 Drawing需求提拉至api16
Merge pull request !2641 from lizhan/0305apiagxqtree 3b8de0b9fce40845465117107b4b930e9348e825
parent db094e66ff0751f2dec09aeece0296b52ac44021
parent 9bcc8bfbe26393b6d0714c76fcbbbe9c5d182639
author openharmony_ci <120357966@qq.com> 1741233363 +0000
committer Gitee <noreply@gitee.com> 1741233363 +0000

!2645 【av_codec】新增能力混用会发生未定义行为说明
Merge pull request !2645 from 杨小雨/masterp0x]tree 151c1c30691d9c0d3b2fdbd97e84e294517a33c2
parent 661e57cbd99ad38922372d59f946029bda8687e2
author hanchenZz <wanghanchen1@huawei.com> 1741000747 +0800
committer hanchenZz <wanghanchen1@huawei.com> 1741225533 +0800

新增接口OH_Ability_GetChildProcessArgs，支持子进程获取启动参数

Signed-off-by: hanchenZz <wanghanchen1@huawei.com>
&#x%tree 062354ec3656d6ed17a2f0dc83d794641b471512
parent db094e66ff0751f2dec09aeece0296b52ac44021
author 尹耀德 <yinyaode1@huawei.com> 1741223890 +0000
committer Gitee <noreply@gitee.com> 1741223890 +0000

update security/asset/inc/asset_type.h.

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>Lbx;tree 019b7e948699f204a3d4c2591a97f3f6ace8e130
parent 644c3f0176c6d6be693f30660ceaef85e83526e8
author liangxinyan123 <liangxinyan2@huawei.com> 1737613027 +0800
committer liangxinyan123 <liangxinyan2@huawei.com> 1741179789 +0800

feature: linux arm64编译sdk

Signed-off-by: liangxinyan123 <liangxinyan2@huawei.com>
exHtree b3b156c3ae69f72229685b67c218a2b3995bdedd
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
parent be3479568073d5798fa35829c0db4fed9f18846f
author openharmony_ci <120357966@qq.com> 1741175343 +0000
committer Gitee <noreply@gitee.com> 1741175343 +0000

!2572 path add getSegment
Merge pull request !2572 from ustc-tianyu/masterBbxtree 7f629867f3bb3ec01df9d6d38e2ade25890bcc10
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
author 郑齐熠 <zhengqiyi2@huawei.com> 1741167978 +0800
committer 郑齐熠 <zhengqiyi2@huawei.com> 1741167978 +0800

change api

Signed-off-by: 郑齐熠 <zhengqiyi2@huawei.com>
7^x tree 354a68d0c01fcad28ed0e3de9e7f326a84e52146
parent de594291f3d38cc1c623e208d0f8879c837477ea
author htt1997 <hutao105@huawei.com> 1741167430 +0800
committer htt1997 <hutao105@huawei.com> 1741167430 +0800

fix

Signed-off-by: htt1997 <hutao105@huawei.com>
eKxtree 388874c04c39023ae411e8529ffc930b7c4a88c5
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
author l00844999 <lizhan12@huawei.com> 1741158375 +0800
committer l00844999 <lizhan12@huawei.com> 1741158897 +0800

drawing fix
Signed-off-by: l00844999 <lizhan12@huawei.com>
oNQx=tree f4758cf756da18ea56fac7247384f2e271ddc67d
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
author zhengzhuolan <zhengzhuolan@huawei-partners.com> 1741156716 +0800
committer zhengzhuolan <zhengzhuolan@huawei-partners.com> 1741156716 +0800

size_t_fix

Signed-off-by: zhengzhuolan <zhengzhuolan@huawei-partners.com>
)diyxMtree a2e18f1166886a688afb798197d945fa9b0f3622
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
author yangxiaoyu <yangxiaoyu5@huawei.com> 1741141685 +0800
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1741141685 +0800

【av_codec】新增能力混用会发生未定义行为说明

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
*xtree ad84413110be7fdb94607f6c66886177e071924c
parent 93fe260e5e649dff580010e8da03fe7ad65d1d13
author jxw <jiexiwen@huawei.com> 1741137841 +0000
committer Gitee <noreply@gitee.com> 1741137841 +0000

change api 16 to 18

Signed-off-by: jxw <jiexiwen@huawei.com>NxxNtree abc1a4dedeb567154fc99ef536d20e984f4eeb7a
parent 16a630d0d9949c67d2b76bafc958cacd21021801
parent f2ce69b79dd91b07066b1da2c14469ef0081d747
author openharmony_ci <120357966@qq.com> 1741100448 +0000
committer Gitee <noreply@gitee.com> 1741100448 +0000

!2414 add hitracemeter interfaces
Merge pull request !2414 from wangqing/dev0208ex;tree a15d2f9097bd07189527b7f1be31746ba4cc71d6
parent 1ef8cc5a24180cb416b28f1d49d35c228e95a14f
parent 369e91caaed5147288361268213d59d8df1257a0
author openharmony_ci <120357966@qq.com> 1741099906 +0000
committer Gitee <noreply@gitee.com> 1741099906 +0000

!2590 add cwant ndk
Merge pull request !2590 from zhuhan/0220ފ[xPtree fac438d628cf4468099f5b1e3cd33e23d0cbce85
parent f348196acc00b33c14dd5162a7fc241fb32aefe4
parent b9d5f09cda18474a0ee00e9a2704d43563cc411d
author openharmony_ci <120357966@qq.com> 1741097949 +0000
committer Gitee <noreply@gitee.com> 1741097949 +0000

!2598 change branch name to GSKV
Merge pull request !2598 from bluhuang/nameChange^eȑxAtree 91fa1a57e1e65792dc37f89162c6b043e252b3ae
parent f348196acc00b33c14dd5162a7fc241fb32aefe4
author huchang <huchang4@huawei.com> 1741093536 +0800
committer huchang <huchang4@huawei.com> 1741093536 +0800

add hdmi device

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I4523e9f19915b790793bc03f96b7d9d11ee2fa71
a#xGtree c995aab4d4f15f97b87c68328cd33869cfe6f1b5
parent 8a082d0b27a90ed391b643c509d4fe0377cbe088
parent e3803b838ddc9fd19e14b816036f2fcd1883f9c8
author openharmony_ci <120357966@qq.com> 1741090098 +0000
committer Gitee <noreply@gitee.com> 1741090098 +0000

!2605 注释参数名修改
Merge pull request !2605 from zhangkai/masterixEtree 95e28a37912d09c72ce1413934ee6aa530aafbc9
parent f4cedafc7aaf589767a6f637d6c4236b9d6a62e8
author zhanghang <zhanghang160@huawei-partners.com> 1740388272 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1741077343 +0800

textPicker and customDialog

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
!iRx5tree d583a5d1b4e276482d6c648c92593afca97fea91
parent 6c60639141a5f5ce7b1f9fcd71c3f539458a061a
parent abcb36949f0e2f6a605d835c747ea490905cd768
author openharmony_ci <120357966@qq.com> 1741052276 +0000
committer Gitee <noreply@gitee.com> 1741052276 +0000

!2627 api18
Merge pull request !2627 from 谢智宇/c18N]kxtree cc24b83a34f38386bc062fe45bc076295d7e58cf
parent 6c60639141a5f5ce7b1f9fcd71c3f539458a061a
author bluhuang <bluhuang@icloud.com> 1740538867 +0800
committer bluhuang <bluhuang@icloud.com> 1741008526 +0800

change branch name to GSKV

Signed-off-by: bluhuang <bluhuang@icloud.com>
L X<xUtree d583a5d1b4e276482d6c648c92593afca97fea91
parent 6c60639141a5f5ce7b1f9fcd71c3f539458a061a
author fangyunzhong <fangyunzhong2@huawei.com> 1741003055 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1741003076 +0800

api18

Change-Id: Ic3207794627a472bbaa186cdcae34b6d4471c8ac
Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
jxtree ba65ded29a8752b10f439aea0f418a3a103de8e5
parent e9aeb98324f1a47adeb0402e2910e25d5ea80c49
author ustc-tianyu <dutianyu4@huawei.com> 1740191044 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1741001832 +0800

path add getSegment
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
[Wx`tree 94fcb27023214c376bb32e96c742d7c828976645
parent f4cedafc7aaf589767a6f637d6c4236b9d6a62e8
parent 333ee72e101c46e2212bd45c2189d963569083da
author openharmony_ci <120357966@qq.com> 1741000078 +0000
committer Gitee <noreply@gitee.com> 1741000078 +0000

!2379 新增获取用户自定义属性接口
Merge pull request !2379 from 彼此彼此/cyc0206_1P{x<tree 680b2b0bf8df274ffd224e66ca950fbe92a09096
parent 2ba441c5613faef021c4cfd1ae08c5ffe652906d
author 彼此彼此 <chenyuchen8@huawei.com> 1740994781 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1740994781 +0800

新增获取用户自定义属性接口

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
gxtree 73750921cdfc0e5d561180585271bfcc511fe56f
parent f4cedafc7aaf589767a6f637d6c4236b9d6a62e8
author qian-dan <756328797@qq.com> 1740989797 +0800
committer qian-dan <756328797@qq.com> 1740989797 +0800

modify headers

Signed-off-by: qian-dan <756328797@qq.com>
cHK1xttree 62fdf8c465e8518ef43e1a2c2375f52528c907a8
parent 9cb51ca356dc04a8755562974889e127a0abffa4
parent f4cedafc7aaf589767a6f637d6c4236b9d6a62e8
author wc-huang <1454579418@qq.com> 1740984276 +0000
committer Gitee <noreply@gitee.com> 1740984276 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into uitype_bak

Signed-off-by: wc-huang <1454579418@qq.com>rxYtree d292ecd2b46370873ec5be78d16c7d3b1fb2d124
parent 1bd3304252f6f898ed93bccaff1433aa87353f30
author wangqing <wangqing195@huawei.com> 1738986727 +0800
committer wangqing <wangqing195@huawei.com> 1740982885 +0800

add hitracemeter interfaces

Signed-off-by: wangqing <wangqing195@huawei.com>
Change-Id: I768aa31c558c58d3eee9c7cfa48166c6ae371cb1
kkMxCtree 3165631cf9244d7e4dcdf8717836a4ae3dd5bd1c
parent 666a31c3987e69ce96844e461ba37126cca9f70a
parent 9a610fcb70999b74ecb9d21e39ce4d7bf598c858
author oh_ci <maguangsheng1@huawei.com> 1740980414 +0000
committer Gitee <noreply@gitee.com> 1740980414 +0000

!2621 change api18
Merge pull request !2621 from liangliang6768/masterqaxtree e2484b4f7e46ff152ecee534617a3974838ecf95
parent 587bcfd8678bd80c7653035bb0d28586934aeae2
author htt1997 <hutao105@huawei.com> 1740732050 +0800
committer htt1997 <hutao105@huawei.com> 1740973501 +0800

fix update name

Signed-off-by: htt1997 <hutao105@huawei.com>
O[x tree ad21664b67edbffb974ab860106db8a055b7c4bf
parent 1030a5313675d4e533acf21dcca3baea54b6740b
author Your <you@example.com> 1740967641 +0800
committer Your <you@example.com> 1740967641 +0800

change api 16 to 18

Signed-off-by: Your <you@example.com>
`L xItree ae9872392e593262552014d4c8f324df20388bfc
parent 4e61ce5e939da869ac7ca8b5db3a67e972f80015
parent 04a90837fd17cd6079a4a4902a7ca477f8cc7c18
author openharmony_ci <120357966@qq.com> 1740966635 +0000
committer Gitee <noreply@gitee.com> 1740966635 +0000

!2592 add amr
Merge pull request !2592 from 钱申鹏QSP/20250224_add_amr_2Yctx<tree 21f0cfceede933ec5c40d40cf315fdbf2c0d97a8
parent 2561431d9233661035a1a9834b04f1cf09c2a853
author zhuhan <zhuhan10@huawei.com> 1740465585 +0800
committer zhuhan <zhuhan10@huawei.com> 1740966167 +0800

add cwant ndk

Signed-off-by: zhuhan <zhuhan10@huawei.com>
Change-Id: I7e02c01568167e71188a4682555bbd73af08d008
^HxQtree 94170ad968b6f5e8b196ba84399da33d59c7d1b3
parent 016e84c9179c290833895df987287d7263ae39c8
parent 91e1e226e161795a688618f8a1f51780d853e71d
author openharmony_ci <120357966@qq.com> 1740893892 +0000
committer Gitee <noreply@gitee.com> 1740893892 +0000

!2559 add stylues rotation angle in capi
Merge pull request !2559 from 郑齐熠/ent(fƔx$tree 2eac7495171c9b82c45cad04a2e63cec4ef22e56
parent 016e84c9179c290833895df987287d7263ae39c8
author liangliang6768 <xuliang110@huawei.com> 1740880581 +0800
committer liangliang6768 <xuliang110@huawei.com> 1740880581 +0800

change api18

Signed-off-by: liangliang6768 <xuliang110@huawei.com>
pXQxqtree c76a301999b8ba740a72aaa7d8e632d584f62e33
parent 6e2fae092c95ff800c636c8a1bf1e594f39fabfd
parent 93f1a6a8384312f1a391dd82a95dfa0474e81046
author openharmony_ci <120357966@qq.com> 1740843683 +0000
committer Gitee <noreply@gitee.com> 1740843683 +0000

!2523 add surface holder callback in xcomponent ndk
Merge pull request !2523 from sunbees/xcomponent_add_holder_ndkrڐxPtree 5d5c72d751c8f2e0d5fa5974082c408495cc5469
parent c6f9cd65013db2f95d7951b7d21f1c77883210d4
parent 14f3f3acbc1f5fdd14d8b007c9a8aa5654d411b9
author openharmony_ci <120357966@qq.com> 1740834534 +0000
committer Gitee <noreply@gitee.com> 1740834534 +0000

!2618 NODE_SCROLL_BACK_TO_TOP api to 15
Merge pull request !2618 from Hu_zq/masterbx4tree fcb4fdbb431513267c99da9d5a426f0fff0634ac
parent 614126e8273984e777ff9f67b56c5d4a3f5b5e2b
author huangweichen <huangweichen6@huawei.com> 1740832940 +0800
committer huangweichen <huangweichen6@huawei.com> 1740832940 +0800

回退uiinput类型修改

Signed-off-by: huangweichen <huangweichen6@huawei.com>
ix[tree 643e1725e96c6faa7a8da7e74b75d1f32c396a7f
parent 9b6655d87e471bb545f0af7e12bbb175061f37dc
parent c2a0d6773d93564b08b562c7f1bd8779c050562a
author openharmony_ci <120357966@qq.com> 1740832901 +0000
committer Gitee <noreply@gitee.com> 1740832901 +0000

!2611 onHoverMove feature changes from 16 to 15
Merge pull request !2611 from mdd12138/mastergqx\tree ebcb8d60a8b1aff4f1d45f1c2675a372f947aba2
parent 614126e8273984e777ff9f67b56c5d4a3f5b5e2b
parent 6005bd9fb449715a3a75c70310c8b7360155c04d
author openharmony_ci <120357966@qq.com> 1740832745 +0000
committer Gitee <noreply@gitee.com> 1740832745 +0000

!2346 图片框架支持ARGB编解码
Merge pull request !2346 from caochuan/0122_support_ARGBfq{xGtree 31b025cd2a5fdfdd35baa2fd994f6ba8780746bc
parent 614126e8273984e777ff9f67b56c5d4a3f5b5e2b
author Hu_zq <huzeqi@huawei.com> 1740831887 +0800
committer Hu_zq <huzeqi@huawei.com> 1740831887 +0800

NODE_SCROLL_BACK_TO_TOP api to 15

Signed-off-by: Hu_zq <huzeqi@huawei.com>
Change-Id: I4c030e2cce48fae0fc73bcd1da2387233bab5788
Mbxtree 81730bda0a1a0878ee22694998cd5f3bae6f87bf
parent b38e794244a0414136c6f390685052bf626fd992
author 郑齐熠 <zhengqiyi2@huawei.com> 1740021383 +0800
committer 郑齐熠 <zhengqiyi2@huawei.com> 1740827425 +0800

angle

Signed-off-by: 郑齐熠 <zhengqiyi2@huawei.com>
	[PxOtree b88409a4de53e506dab55a4bb15a1a0471eba242
parent 054fb2fcbc2a6877d8199f62e5377ebbfe547ea0
parent 6eac99637c3276280a8b7ebc7569451dc6e21562
author openharmony_ci <120357966@qq.com> 1740797256 +0000
committer Gitee <noreply@gitee.com> 1740797256 +0000

!2515 新增 废弃 plural c接口
Merge pull request !2515 from 谢智宇/pluralnxDtree b501917372624c267f0c6e265dcad5c2956664a1
parent 15cc5cec7890eb9017125f6821ce161b2a62bf68
parent 2ffe15ab730850e518b280fdcb043a93998aa013
author openharmony_ci <120357966@qq.com> 1740738770 +0000
committer Gitee <noreply@gitee.com> 1740738770 +0000

!2470 revised 16 to 15
Merge pull request !2470 from zhouchaobo/masterc_?xQtree a93b0464ed68b465d575d605e358ceade1bc62df
parent 04096c6a49f0fcea36855e92618d6f7cbfad89b5
parent 87f4293dc4fd4e35e7346d8ab2ec1a5182b4e308
author openharmony_ci <120357966@qq.com> 1740732708 +0000
committer Gitee <noreply@gitee.com> 1740732708 +0000

!2606 补充wordbreak的枚举值
Merge pull request !2606 from wjn/capi_word_breakifmBx#tree 08d76936e464f121d2679d94999e1d0fbf164548
parent 04096c6a49f0fcea36855e92618d6f7cbfad89b5
author mdd12138 <1245619585@qq.com> 1740714964 +0800
committer mdd12138 <1245619585@qq.com> 1740714975 +0800

onHoverMove feature changes from 16 to 15

Signed-off-by: mdd12138 <1245619585@qq.com>
ΠQxntree 0993a6bb21cf6648c5098ff95810e6c703feb483
parent 43f93d885e4c264fcfb7b8b8b90f1168f45065dd
parent bf83daed2df589c6f0145e8d007df5b284d37b00
author openharmony_ci <120357966@qq.com> 1740661585 +0000
committer Gitee <noreply@gitee.com> 1740661585 +0000

!2437 native window add interface OH_NativeWindow_CleanCache
Merge pull request !2437 from 李辉/cleancache02105r>xbtree 1c4f5e41399f5c173514a1f810575bfe6bde455e
parent 43f93d885e4c264fcfb7b8b8b90f1168f45065dd
author sunbees <sunqinjia@huawei.com> 1739802703 +0800
committer sunbees <sunqinjia@huawei.com> 1740660186 +0800

add surface holder callback in xcomponent ndk

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: Ib83d9d314064874b200716696a0a281e6b1e0aac
nxgtree 251e8affecb53965d4eea85e12f07020ef8fd325
parent 7d7bdfc3573e55ecc32950794e26ff15e7d8d182
parent e070eead6dc9883683d4e31f6bfe9173f0df60ce
author openharmony_ci <120357966@qq.com> 1740646933 +0000
committer Gitee <noreply@gitee.com> 1740646933 +0000

!2228 按键事件新增ui inoput事件类型
Merge pull request !2228 from wc-huang/codekeyEvent20250101xɑx!tree 206e585357ae85c1a8a8f7678abdbc727344b56c
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
author wanjining <wanjining@huawei.com> 1740641383 +0800
committer wanjining <wanjining@huawei.com> 1740642974 +0800

补充wordbreak的枚举值

Signed-off-by: wanjining <wanjining@huawei.com>
1bx-tree 3c17217a3d6d7a73197b9071c2570a90911d0d86
parent b3d56d40dfdf4aba4e3590140ba7d973ad4f15d3
author lihui <lihui359@huawei.com> 1739606418 +0800
committer lihui <lihui359@huawei.com> 1740637515 +0800

native window add interface OH_NativeWindow_CleanCache

Signed-off-by: lihui <lihui359@huawei.com>
k]ǚxZtree 59d7353ffec2439e687079e8e3fb4f4c4e0278bb
parent a4933e55477fce69c3119b842f531857f1e4b793
parent a2cacb996bcc4d6879b4c55d9cc4e3cf1d0d5e17
author openharmony_ci <120357966@qq.com> 1740637317 +0000
committer Gitee <noreply@gitee.com> 1740637317 +0000

!2589 modify SetMinLogLevel api version info
Merge pull request !2589 from buzhenwang/master5DjNx>tree 7298c694ad033c1775c9ae7f2169cb60898c3f5c
parent c7d9bb7e27a31033c477fc24bd9ebfa23066b925
parent 526d3d25d5621b0a8dac41a67619f1ad7abdc74e
author openharmony_ci <120357966@qq.com> 1740627289 +0000
committer Gitee <noreply@gitee.com> 1740627289 +0000

!1828 支持float32
Merge pull request !1828 from ancimoon/f32le3I`xtree d1c0b8ca1255f048e5ee11f1512a9abdc8a0c929
parent c7d9bb7e27a31033c477fc24bd9ebfa23066b925
author zhangkai <zhangkai269@huawei.com> 1740626145 +0800
committer zhangkai <zhangkai269@huawei.com> 1740626145 +0800

注释参数名修改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
`Rxxtree c029ede463a4aa383dcf225d84b27b964817ca8b
parent f62422584edef33af43a6e4d0414440dbdeb163c
parent b11f843215aea2c47dc040c7f2ac9d868b370ea4
author openharmony_ci <120357966@qq.com> 1740568597 +0000
committer Gitee <noreply@gitee.com> 1740568597 +0000

!2582 【轻量级 PR】：NODE_WATER_FLOW_CACHED_COUNT新增接口，添加注释
Merge pull request !2582 from sunqi/N/A].x]tree 931e46b4947a94d8b3d9fff662ae5ff239887869
parent f595bb27690ac0007e9d2ade6eb63b0c680e1271
parent 24cf8d599e86724b92abe9fcf4e4d5db0c5d3ded
author openharmony_ci <120357966@qq.com> 1740555974 +0000
committer Gitee <noreply@gitee.com> 1740555974 +0000

!2595 Dialog生命周期补齐CAPI
Merge pull request !2595 from yangbiao199318/dialog_20250208R&nݓxCtree 2d0f38cd380751368cf6a4d63c598466504b0041
parent 661e57cbd99ad38922372d59f946029bda8687e2
parent e29ccbb6f2127f08b5ccfd6fd5aa891f04dc10dc
author openharmony_ci <120357966@qq.com> 1740543936 +0000
committer Gitee <noreply@gitee.com> 1740543936 +0000

!2575 api level 16 to 15
Merge pull request !2575 from 陈一阁/capiax`tree e6d1a2cacc1c250285bac3be5b0a06126db02025
parent 9d5a034eb8ef8426d1dfbad86d1f4319ac442ff4
parent 6d9b9dcaa0afb3de58c9571ba61016fcfbff48d0
author openharmony_ci <120357966@qq.com> 1740474786 +0000
committer Gitee <noreply@gitee.com> 1740474786 +0000

!2587 元数据、缩略图ndk接口错误码修正
Merge pull request !2587 from 彭同辉/master_3~ԓxCtree 32249e7c5876a40ecd5cae8f234b534098dbd9f7
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
parent 220319f4d65af30da4eaa41ff7589a7135622e94
author openharmony_ci <120357966@qq.com> 1740465191 +0000
committer Gitee <noreply@gitee.com> 1740465191 +0000

!2395 drawing 规范修改
Merge pull request !2395 from lizhan/0207c|cx2tree 13db2d42c0b64c39fcec93c523f5730f94ca0f17
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
author buzhenwang <buzhenwang@huawei.com> 1740463819 +0800
committer buzhenwang <buzhenwang@huawei.com> 1740463819 +0800

modify SetMinLogLevel api version info

Signed-off-by: buzhenwang <buzhenwang@huawei.com>
#cx
tree db6e4ab9c41b49a450dc0ea36623c54fd3fe1a45
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
author htt1997 <hutao105@huawei.com> 1740388356 +0800
committer htt1997 <hutao105@huawei.com> 1740388356 +0800

add memory db

Signed-off-by: htt1997 <hutao105@huawei.com>
^Ox<tree a56e8d8092a4f340fae2e35048eb46bdc15e6077
parent 49f1749cbf60d6258640477e29f79fb668f56b69
author 彭同辉 <pengtonghui@huawei.com> 1740386106 +0000
committer Gitee <noreply@gitee.com> 1740386106 +0000

update multimedia/player_framework/avmetadata_extractor.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>lix9tree bf527952b5cebd58e080450f31a341d2ce60e40c
parent 7b0693a5264a49d4b1e56a39d13afcafcdaf5081
author 彭同辉 <pengtonghui@huawei.com> 1740386078 +0000
committer Gitee <noreply@gitee.com> 1740386078 +0000

update multimedia/player_framework/avimage_generator.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>akxtree 766b2108c58d5af0f7ecc4ea024bea8be3890319
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
author sunqi <sunqi57@huawei.com> 1740381522 +0000
committer Gitee <noreply@gitee.com> 1740381522 +0000

NODE_WATER_FLOW_CACHED_COUNT新增接口

Signed-off-by: sunqi <sunqi57@huawei.com>8
ZCxtree 2ec6049ad30cb271deeed4faa2900af49803535f
parent 45a38ce6dd058680f0f617b42e1be095c88c3c45
author HannibalQSP <qianshenpeng@huawei.com> 1740364227 +0800
committer HannibalQSP <qianshenpeng@huawei.com> 1740364227 +0800

add amr

Signed-off-by: HannibalQSP <qianshenpeng@huawei.com>
eY-xOtree 9fc99b584e642beed528a12e5718c7ba1e99e9c3
parent 04a37580f10f37a665cc2d25dbc523d57c2fa3ba
author yangbiao199318 <yangbiao63@huawei-partners.com> 1740220916 +0800
committer yangbiao199318 <yangbiao63@huawei-partners.com> 1740228247 +0800

Dialog生命周期补齐CAPI

Signed-off-by: yangbiao199318 <yangbiao63@huawei-partners.com>
Mox;tree bb4ace36c5889a6fa7e83b047ce4ac18da28f511
parent 04a37580f10f37a665cc2d25dbc523d57c2fa3ba
parent c6c8833287b89b5c1d75f705d38cb5c27c44ecbd
author openharmony_ci <120357966@qq.com> 1740227727 +0000
committer Gitee <noreply@gitee.com> 1740227727 +0000

!2517 add batchInsert
Merge pull request !2517 from ht/masterN^x_tree 092351d7ad056cc603d5d93dbf726b25e31bacb3
parent 77b3a2510197e16a40db8b740c6289947d9b2c0e
parent 53fa97cf7856868b340a2221a8665a2bec8b96d4
author openharmony_ci <120357966@qq.com> 1740216838 +0000
committer Gitee <noreply@gitee.com> 1740216838 +0000

!2554 添加swiper的space、ignoreSize CAPI
Merge pull request !2554 from zhanghang/swiper_spacexnx<tree dbc9ce99539ee0e141d5fec7f00073dd04b0fb84
parent 4789bc3d0c8e9598661af694480ba5788c9bd385
author 彭同辉 <pengtonghui@huawei.com> 1740216198 +0000
committer Gitee <noreply@gitee.com> 1740216198 +0000

update multimedia/player_framework/avmetadata_extractor.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>3m(x9tree 1889969bcac837e6f210cb40a6ba37e72c4e38c5
parent b4c33317724fddc99c8fd66091a01f00cb7051ee
author 彭同辉 <pengtonghui@huawei.com> 1740216136 +0000
committer Gitee <noreply@gitee.com> 1740216136 +0000

update multimedia/player_framework/avimage_generator.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>kx7tree 9fbb91afe61e97e1af201a9fba3a058eb8bd1706
parent e1435d8e8ec47d5a4dc46cb64a0e5e836187b45b
author 彭同辉 <pengtonghui@huawei.com> 1740216031 +0000
committer Gitee <noreply@gitee.com> 1740216031 +0000

update multimedia/media_foundation/native_averrors.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>Okx9tree 95c19767ad6f9b8cd28cb785153dacff59f76060
parent 69bbff5c0342273f4f5c8ba2dc9338b306eebe91
author 彭同辉 <pengtonghui@huawei.com> 1740212099 +0000
committer Gitee <noreply@gitee.com> 1740212099 +0000

update multimedia/player_framework/avimage_generator.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>l&x<tree c47bc0ac8926202df9d00a4d9b944bd0e289a7b8
parent 33695e6d5655cfc423736dc20fdb27552022fdc5
author 彭同辉 <pengtonghui@huawei.com> 1740212056 +0000
committer Gitee <noreply@gitee.com> 1740212056 +0000

update multimedia/player_framework/avmetadata_extractor.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>=ylx<tree c5a02a1315a30703f4961e92fa38330a38d675ef
parent 760ac4fac31e1969dc98bca0ef993961a4198b42
author 彭同辉 <pengtonghui@huawei.com> 1740211420 +0000
committer Gitee <noreply@gitee.com> 1740211420 +0000

update multimedia/player_framework/avmetadata_extractor.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>lJx9tree 21da3200e7bd3520ac757d21c8cba7a7b501278b
parent ba6df234d0e60742567f23fd031eb32d1277fd67
author 彭同辉 <pengtonghui@huawei.com> 1740211253 +0000
committer Gitee <noreply@gitee.com> 1740211253 +0000

update multimedia/player_framework/avimage_generator.h.

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>k;xtree 1e98f5b620edcf5fb412d05f29167511022aadd2
parent b38e794244a0414136c6f390685052bf626fd992
author 彭同辉 <pengtonghui@huawei.com> 1740210747 +0000
committer Gitee <noreply@gitee.com> 1740210747 +0000

ndk错误码补充

Signed-off-by: 彭同辉 <pengtonghui@huawei.com>`xCtree a954b1adc72f9b1ad3873d2a2ad1df30829cdf3c
parent 63030b04ad072a2742fe4bed15ce9312c0839216
parent 7d44120ae74c14640f55a779aaf5f89b174d14c0
author oh_ci <maguangsheng1@huawei.com> 1740209087 +0000
committer Gitee <noreply@gitee.com> 1740209087 +0000

!2508 change since to 15
Merge pull request !2508 from mlyuestc/master0+ax9tree 3570abfe60ac82cbe9c9c55f46e5683c43ec487b
parent c944020e785196f3e07296c2930621d7dcb5f5d0
parent 3fa5b7dd9173e50dadf39f8b7394ec88111abdbb
author htt1997 <hutao105@huawei.com> 1740208248 +0800
committer htt1997 <hutao105@huawei.com> 1740208248 +0800

Merge branch 'master' of gitee.com:htt1997/interface_sdk_c
 ]їxtree 973cc106bc49ce432b864ca2a9627e90cc90b3aa
parent de534b0e19eafe0754855484116361ee10a43559
author htt1997 <hutao105@huawei.com> 1740208239 +0800
committer htt1997 <hutao105@huawei.com> 1740208239 +0800

code check

Signed-off-by: htt1997 <hutao105@huawei.com>
)aM	xLtree ac54721411813cb6d0139a046f77dd4afc029e43
parent e9aeb98324f1a47adeb0402e2910e25d5ea80c49
parent c1184e35cd1a8c3abdb382ea3adf193eb1ba11bc
author openharmony_ci <120357966@qq.com> 1740206095 +0000
committer Gitee <noreply@gitee.com> 1740206095 +0000

!2573 补充文件kit信息
Merge pull request !2573 from wc-huang/kit20250222+i`x tree 357c1e8e672634d41869d900deb06ce53f1c8162
parent de534b0e19eafe0754855484116361ee10a43559
author ht <hutao105@huawei.com> 1740204807 +0000
committer Gitee <noreply@gitee.com> 1740204807 +0000

update

Signed-off-by: ht <hutao105@huawei.com>qHx0tree ac54721411813cb6d0139a046f77dd4afc029e43
parent e9aeb98324f1a47adeb0402e2910e25d5ea80c49
author huangweichen <huangweichen6@huawei.com> 1740194542 +0800
committer huangweichen <huangweichen6@huawei.com> 1740194542 +0800

补充文件kit信息

Signed-off-by: huangweichen <huangweichen6@huawei.com>
{g{xCtree f6df2c0c6f2066745de4ab16f6b8124806cdbb4c
parent e9aeb98324f1a47adeb0402e2910e25d5ea80c49
author eager1 <chenyige2@huawei.com> 1738918478 +0800
committer eager1 <chenyige2@huawei.com> 1740191666 +0800

api level 16-->15

Signed-off-by: eager1 <chenyige2@huawei.com>
Change-Id: I8b275a76a488c8a1d506047e293d056272f9d4f6
x*_xmtree 0e63d3d6e11275b84be33c43ebf4b2debb9527c6
parent 0b16737fb2d0c0b952857aee8261e540fced804c
parent 90d3fd5a384a7df579a072e1f45b5b8ae34a7832
author openharmony_ci <120357966@qq.com> 1740142543 +0000
committer Gitee <noreply@gitee.com> 1740142543 +0000

!2465 limitFinget_changeApiVersion
Merge pull request !2465 from wangxiuxiu96/limitFinget_changeApiVersion_0211qfxPtree 7db393995a62dee3821272377ece656f3538e40c
parent 652f20820416d67f7919c9ddda845de52517f823
author zhanghang <zhanghang160@huawei-partners.com> 1739881676 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1740141292 +0800

添加swiper的space、ignoreSize CAPI

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
-o\xDtree dbcef914208394e4706e0a3b036f4f062bd941e1
parent cb7f805cf968a56d71874a62fa898c292dd53709
parent 3e86e66b19cda6a352b7a424f708c7bc83941698
author openharmony_ci <120357966@qq.com> 1740133437 +0000
committer Gitee <noreply@gitee.com> 1740133437 +0000

!2477 api版本修改
Merge pull request !2477 from wangweiyuan/masterCexRtree d21dfcc88bed1944136cdfe110f9dc3386aa4f0f
parent b38e794244a0414136c6f390685052bf626fd992
parent 3f1f42becdb6d394ca02f8a6ec4702292921636f
author openharmony_ci <120357966@qq.com> 1740132228 +0000
committer Gitee <noreply@gitee.com> 1740132228 +0000

!2464 Axis action get capi update
Merge pull request !2464 from zhouchaobo/axisEventGfx\tree ae8f83544dced82e98ffbc035e175f9eee9c5b24
parent 3199abd33021a23a9ced45f3c2018e0faf93f95e
parent 838c8ba1aa204b2c59d2c44634617b17f37dc8df
author openharmony_ci <120357966@qq.com> 1740124759 +0000
committer Gitee <noreply@gitee.com> 1740124759 +0000

!2569 add OH_ArkWeb_RegisterScrollCallback
Merge pull request !2569 from xiongjun_gitee/masterkxbtree 7caeafb775e20fae32b333d214e3d6f138783fdd
parent 29edb879d7651135a8c54a7323d988e1e8837ba4
parent 1fec0c52b182f2520bf6daac27bf1d4f5406755e
author openharmony_ci <120357966@qq.com> 1740121286 +0000
committer Gitee <noreply@gitee.com> 1740121286 +0000

!2462 capi提供当前事件触发的id_15
Merge pull request !2462 from wangweiyuan/capi_touchid_15hux[tree 493e32430a85e8a3caab7dc721d5f6de0cb29df8
parent ec7ba083446deaae3e5375c797037c7dfb88a2b3
parent 859858ad88f30cfd50d79f6920144c902ab7ce5c
author openharmony_ci <120357966@qq.com> 1740119304 +0000
committer Gitee <noreply@gitee.com> 1740119304 +0000

!2567 视频镜像接口，主干分支蓝黄同步
Merge pull request !2567 from eric/masteryxBtree 830ec38120d6c3ce7f8802c75f99b613b7c6d549
parent 4970d8c60eb4119ac07d3f93bcbc876a9b228f34
author xiongjun_gitee11 <xiongjun28@huawei.com> 1740118538 +0800
committer xiongjun_gitee11 <xiongjun28@huawei.com> 1740118538 +0800

add OH_ArkWeb_RegisterScrollCallback

Signed-off-by: xiongjun_gitee11 <xiongjun28@huawei.com>
fxtree c97d0b0397199f142930a251ef761490bae4db89
parent 66d2e833cce2fe24e2a0869c388a9c81512a7b6c
author htt1997 <hutao105@huawei.com> 1740108798 +0800
committer htt1997 <hutao105@huawei.com> 1740108798 +0800

fix rename

Signed-off-by: htt1997 <hutao105@huawei.com>
MYx
tree 3de70cf7f9c5367c9d28385b6e7c99ad611c02e5
parent 44e1b304db8b499a785cf6cf3ad76513da64b487
author eric <aizhibo2@huawei.com> 1740108742 +0000
committer Gitee <noreply@gitee.com> 1740108742 +0000

主干分支蓝黄同步

Signed-off-by: eric <aizhibo2@huawei.com>dZ}xStree b46583343e96a342336ca063f3824b53cec093f0
parent a1adb4926c01eae22ec6323915703f869b6bf81c
parent 518ed7b7aa6308ad1593941056b16527ee4a50a5
author openharmony_ci <120357966@qq.com> 1740102885 +0000
committer Gitee <noreply@gitee.com> 1740102885 +0000

!2449 List C-API接口版本由16改为15
Merge pull request !2449 from 王关/masterslΐx`tree 2d58590fae18a95893bec88f02afde437ed6300a
parent b666e477d2a687988aabed255d9c61476895782f
parent 9732ac3ba318639b492ca157bb6e2a534b080595
author openharmony_ci <120357966@qq.com> 1740064235 +0000
committer Gitee <noreply@gitee.com> 1740064235 +0000

!2486 CAPI侧backdropblur接口版本变更
Merge pull request !2486 from chenxiaoxue/backdropblurrzxNtree 46b426a2f349b5ecacc3b5895c2cca2973f5903a
parent 2561431d9233661035a1a9834b04f1cf09c2a853
parent 47976a5192793548bc15300e5984154fe229add7
author openharmony_ci <120357966@qq.com> 1740062307 +0000
committer Gitee <noreply@gitee.com> 1740062307 +0000

!2542 list从底部布局capi接口
Merge pull request !2542 from 石红杰/0219ȵl5x tree 3bf3d5c6f03c860bc859d2e2ff6b79138a18cf07
parent 7d4fcdd5cb2a25aaf6dc4bd2d1c02b1e8585c974
author htt1997 <hutao105@huawei.com> 1740055090 +0800
committer htt1997 <hutao105@huawei.com> 1740055090 +0800

fix

Signed-off-by: htt1997 <hutao105@huawei.com>
RYLFxBtree 7951efcacf24f055deb7ad2fb07a36485b7971f0
parent 8726638be767501167a4e4d43ae6831d85748c06
parent e6fbaf7f9a1b75ebcc8ae168cd359a49dd54b790
author openharmony_ci <120357966@qq.com> 1740046876 +0000
committer Gitee <noreply@gitee.com> 1740046876 +0000

!2481 修改API版本
Merge pull request !2481 from youbing54/masteredxgtree 11f4d7e67e93adb6653786ea93ee1ba38a34ac76
parent 46abd4d158cdc29606495822b6ea1e5226cb0e8d
parent dc225f3341a89ae9d73c87fa31019d41c2c8e021
author openharmony_ci <120357966@qq.com> 1740046186 +0000
committer Gitee <noreply@gitee.com> 1740046186 +0000

!2561 CAPI相关需求16回合15引入错误码清除处理（CAPI SDK部分）
Merge pull request !2561 from 马梓健/250220_lazyExpand_delete_errorCode;xYtree 50987d55ed77d91e4c861104c61837a605e714fe
parent 5467cb89d5e888f4dc881333e4b8d1f5662e1576
parent 726fef636a9762c0a5953b0a5d9f386a2cd71332
author openharmony_ci <120357966@qq.com> 1740046031 +0000
committer Gitee <noreply@gitee.com> 1740046031 +0000

!2526 dialog 页面级能力C-API 版本调整
Merge pull request !2526 from firminly/liyi1fox tree b91ee2b052a65781e69ff978ea758d55ab8b57c1
parent c42485376123c9e9e4ae185d8f37c5c4e23a7884
author liyi0309 <liyi58@huawei.com> 1739863445 +0800
committer liyi0309 <liyi58@huawei.com> 1740039796 +0800

dialog 页面级能力C-API 版本调整
Signed-off-by: liyi0309<liyi58@huawei.com>
5`x]tree b862b4e8481356590706b20496f5879c859828eb
parent 4970d8c60eb4119ac07d3f93bcbc876a9b228f34
parent e9f7b9e71f1d1cf49937ce7779faa014160f43b4
author openharmony_ci <120357966@qq.com> 1740037933 +0000
committer Gitee <noreply@gitee.com> 1740037933 +0000

!2543 Changer touch recognizer version to API15.
Merge pull request !2543 from 刘永畅/master#k}x~tree 3944949c32c17f310973a83d94fe9d621a4d2d8c
parent 44e1b304db8b499a785cf6cf3ad76513da64b487
author mazijian <mazijian2@huawei.com> 1740036631 +0800
committer mazijian <mazijian2@huawei.com> 1740036631 +0800

CAPI相关需求16回合15引入错误码清除处理（CAPI SDK部分）

Signed-off-by: mazijian <mazijian2@huawei.com>
Change-Id: Ie326faaee45696a772bb390e410b7534c79dbab0
:xDtree fd2f19b057abd7937348018a6102b82d8875e98e
parent 44e1b304db8b499a785cf6cf3ad76513da64b487
parent 169c72904e0ce6cd212ad8b4dd00dd5765e06694
author openharmony_ci <120357966@qq.com> 1740027043 +0000
committer Gitee <noreply@gitee.com> 1740027043 +0000

!2522 回合版本修改capi
Merge pull request !2522 from bd/20250217dxdtree fd10ce8f0eef2f867391bda39366c2acc555b024
parent 9fe7840c0569e08612c84b9a830f9f670f2760f7
parent d0d348bbf1fb51c73ce2a80880b13f4ad3040d65
author openharmony_ci <120357966@qq.com> 1740018815 +0000
committer Gitee <noreply@gitee.com> 1740018815 +0000

!2505 checkboxgrop-capi-h修改15版本
Merge pull request !2505 from zhanghang/checkboxgroup-capi-15hcpΖxftree cc654e763e429b463e666af690cd6869e69cee2d
parent 14f33da6193182239877d33172031187d190a057
parent 9fe7840c0569e08612c84b9a830f9f670f2760f7
author bd <baodi1@huawei.com> 1740014598 +0000
committer Gitee <noreply@gitee.com> 1740014598 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 20250217

Signed-off-by: bd <baodi1@huawei.com>kЕx5tree cb13198c57f4d43ee209ad50c13faf08d691a8e5
parent b6bcb619414d3a0183200a92f3c990ad5072bfb8
author 彼此彼此 <chenyuchen8@huawei.com> 1740014100 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1740014100 +0800

updata the NDK's name of demuxer

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
śnxTtree 8360b0f54a3c9a78a1aa170266d12c4d7e8aa917
parent 10730dea149a31d6b64104aa8ae29ff84286af55
parent d4b1d2a43c0b76957dcfec97cde8f07b067bef8a
author openharmony_ci <120357966@qq.com> 1739977419 +0000
committer Gitee <noreply@gitee.com> 1739977419 +0000

!2547 modify api level 16 to 15
Merge pull request !2547 from 姚星宇/modifyApiLevelixxltree 9fb87d1eefefae78b92251ffd063efd721cb7f18
parent 7878ced1641e6f6e6044ad20c1db9725732a37b2
parent 890624f1b3b1f35887e75b24cfad2e7a9af77ac1
author openharmony_ci <120357966@qq.com> 1739977244 +0000
committer Gitee <noreply@gitee.com> 1739977244 +0000

!2546 change keyboardAppearance api num
Merge pull request !2546 from xiangyuan6/fix_keyboardAppearance_apiNumʄqxitree 221e345f9a36480aa163b28dbb7a35f0b33af377
parent b01fcbecf8bad377de8ce8551d5d1f3ef9e34e4f
parent 4ec94969a274e4f98d08927dd371b67a4f815181
author openharmony_ci <120357966@qq.com> 1739975978 +0000
committer Gitee <noreply@gitee.com> 1739975978 +0000

!2454 input click attach add requestKeyboardReason param
Merge pull request !2454 from huangzhuozhen/master"/pxUtree e8f644e37e4531bf479b04bd01bf423884e9d63c
parent 7875b968d6974fb48b20265b513c3f5fd79a01ea
parent 96dea8d59f4506cc077770d142d73e4bf30bd580
author openharmony_ci <120357966@qq.com> 1739964896 +0000
committer Gitee <noreply@gitee.com> 1739964896 +0000

!2418 变更VVC查询接口版本至API15
Merge pull request !2418 from rachel_w/master_o]xdtree 215e27c2d98b4ff6126c8a1d72c323979d588df9
parent 223cca4f8ecd67496669eb48241b4be486454146
parent 0008b27aa5ee7f70ca96d28742e5e474cdae9a88
author openharmony_ci <120357966@qq.com> 1739961251 +0000
committer Gitee <noreply@gitee.com> 1739961251 +0000

!2548 [L]自定义按键事件分发和走焦 更改version
Merge pull request !2548 from lisitao/key1lVzxHtree b613d9c6a2f0e2992177376500feeb21d0e3fdf1
parent e18deb248f0ad1301def56f06d982e9abf08027f
parent 29ae370cc1e7f32fa1e2b274809b3bd2b6e94ad5
author openharmony_ci <120357966@qq.com> 1739958718 +0000
committer Gitee <noreply@gitee.com> 1739958718 +0000

!2540 export ndk interfaces
Merge pull request !2540 from yangqirun/masterUd(xFtree 54259490c53514dcad3d8f8e1850746a4e5d6b6d
parent ae65db02219e0f622636f3af91073a123c05a7e5
parent 017969bcf795c9f639b68c5613f484659220b2cc
author openharmony_ci <120357966@qq.com> 1739956157 +0000
committer Gitee <noreply@gitee.com> 1739956157 +0000

!2492 调整API版本
Merge pull request !2492 from wjn/api_change_sdk_cIdZxntree a773bab2581be692075d8c4e91a066414713941b
parent ae65db02219e0f622636f3af91073a123c05a7e5
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739955916 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739955916 +0800

[L]自定义按键事件分发和走焦 更改version
修改Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
` xKtree 5d635df5e18962a2588a2868a6faf64ecdc3b76b
parent ed647b47a2dae882e47ac8c0a8c2868cc0a26148
parent e9c48d43b9a91edb28995ba885893fba098470fc
author openharmony_ci <120357966@qq.com> 1739954538 +0000
committer Gitee <noreply@gitee.com> 1739954538 +0000

!2512 add ndk interfaces
Merge pull request !2512 from monica_zengwang/masterldxWtree 5eae7e90d441def4e9f0846bbcfe7537d3e5599d
parent ed647b47a2dae882e47ac8c0a8c2868cc0a26148
author y00656910 <yaoxingyu3@huawei.com> 1739951788 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1739951788 +0800

modify api level 16 to 15

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: I8bd17dcc71529a2da8145218256b20e6d7b9611e
Қeqxctree 448d742d096282c855d4111b429b1682ab38fc72
parent 878cd9d7df4a0e45f4aedf6ccf2bce3a71cdab39
parent 679ad043a4015d5616eb3f0d46823b20bd5e09c6
author openharmony_ci <120357966@qq.com> 1739950655 +0000
committer Gitee <noreply@gitee.com> 1739950655 +0000

!2357 支持非标外设SCSI命令字及构建SCSI DDK API
Merge pull request !2357 from Gao Rui/scsiwx*tree ce1c206f07127d7a2bdd6a4d055e409588672574
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
author xiangyuan <xiangyuan6@huawei.com> 1739950448 +0800
committer xiangyuan <xiangyuan6@huawei.com> 1739950448 +0800

change keyboardAppearance api num

Signed-off-by: xiangyuan <xiangyuan6@huawei.com>
_לxltree 1000d9d066a444a6e1f756d1f6e22732e7fbf494
parent 652f20820416d67f7919c9ddda845de52517f823
parent 4a961c118503f69c9b1fdfba63f9137ac6da4fc6
author openharmony_ci <120357966@qq.com> 1739947765 +0000
committer Gitee <noreply@gitee.com> 1739947765 +0000

!2487 ArkUI提供CAPI控制及处理焦点事件调整API版本
Merge pull request !2487 from wc-huang/capi5.0|ڛxktree 88509103765230db31048d846db158e299f98251
parent 89baba8f6cdf34d1d330a9f376f96b4d45198b8f
author benb365 <liuyongchang1@huawei.com> 1739938390 +0800
committer benb365 <liuyongchang1@huawei.com> 1739938390 +0800

Changer touch recognizer version to API15.

Signed-off-by: benb365 <liuyongchang1@huawei.com>
Change-Id: Ic6b45926acacc31f28f020f5f4669786f6f6ace7
Rbnxtree fb87ad0dca0af49d6d16970625e2d5999a18b08b
parent 2732122974ade5de925b7acef80ff789c7aed53f
author wanjining <wanjining@huawei.com> 1739446455 +0800
committer wanjining <wanjining@huawei.com> 1739932919 +0800

调整API版本

Signed-off-by: wanjining <wanjining@huawei.com>
s[x[tree 6712f72ed7f40d6350c3cc8803d312cf62e1afb0
parent b056242b142a94d4379f9cddf4e0b3b058a4df3a
author 石红杰 <shihongjie@huawei.com> 1739931938 +0800
committer 石红杰 <shihongjie@huawei.com> 1739931938 +0800

list从底部布局capi接口

Signed-off-by: 石红杰 <shihongjie@huawei.com>
Change-Id: I9018b6b8315c384e3c2ebfef6448dff96a38ded7
H}nxStree d46af8c6da791af0c22ea4e8eb158787ce073e67
parent 652f20820416d67f7919c9ddda845de52517f823
author yangqirun <yangqirun3@huawei.com> 1739929092 +0800
committer yangqirun <yangqirun3@huawei.com> 1739929092 +0800

export ndk interfaces

Signed-off-by: yangqirun <yangqirun3@huawei.com>
Change-Id: I02d7958be29df68ce004a4faba734133c7a05932
Iixxtree d6c894b9c39401fe43bb242e9a9833f40b829e76
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author limabiao <limabiao1@h-partners.com> 1739268742 +0800
committer limabiao <limabiao1@h-partners.com> 1739928925 +0800

支持非标外设SCSI命令字及构建SCSI DDK API

Signed-off-by: limabiao <limabiao1@h-partners.com>
Change-Id: I6170369de27c40da97592e8b7319e49e8f2e4320
xtree bd7c2bef6400bd4d60d4deaeb62067164fdf11a8
parent 53e8411a7bd109194076c82efbe72fa7b656c9dd
author htt1997 <hutao105@huawei.com> 1739845231 +0800
committer htt1997 <hutao105@huawei.com> 1739879537 +0800

update

Signed-off-by: htt1997 <hutao105@huawei.com>
MBx<tree fe7ca2875289a011bb95a0787c4e8a886139d5b2
parent 959dd270d06a645c68b4bbae49b4616502dfeab6
parent 6c3e0b2b79fbc13e89a4799ea802d76d5b7a4880
author openharmony_ci <120357966@qq.com> 1739873724 +0000
committer Gitee <noreply@gitee.com> 1739873724 +0000

!2518 fix api version
Merge pull request !2518 from fox/master^Txktree ba67aeb2a37a8c2faabab9ef651cce35d6d77ea0
parent 959dd270d06a645c68b4bbae49b4616502dfeab6
author wangweiyuan <wangweiyuan2@huawei.com> 1736245880 +0800
committer wangweiyuan <wangweiyuan2@huawei.com> 1739870147 +0800

capi提供当前事件触发的id

Signed-off-by: wangweiyuan <wangweiyuan2@huawei.com>
Change-Id: Iec94cad8c7f7097254f11819f6c4675e8cc6cbb2
~JxAtree 707c8326fb1996cc1aa27dac5f8c9b12d1babe94
parent c42485376123c9e9e4ae185d8f37c5c4e23a7884
parent e16175ba762a54b24485d71a2bc46701955ce0a3
author openharmony_ci <120357966@qq.com> 1739866747 +0000
committer Gitee <noreply@gitee.com> 1739866747 +0000

!2236 补充Swiper CAPI
Merge pull request !2236 from 王关/master bx0tree d040a59e5f27bf2866e615948cdac9c5f45bb590
parent ee02505d6fba1f2fdf6e6ec3efaae83a608df4c0
author 彼此彼此 <chenyuchen8@huawei.com> 1739861224 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1739861224 +0800

Add media info verification

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
4!ohxntree de44cce13e06bb3f68ae36d35db367baec05c75e
parent c0b87bd57800b6acafab7904043d5369021670b4
parent 56bdd27e7aec3d60b24cddc95e96198b0bd8c570
author openharmony_ci <120357966@qq.com> 1739856514 +0000
committer Gitee <noreply@gitee.com> 1739856514 +0000

!2519 hiappevent补充导出“支持调整系统事件订阅触发条件”需求新增接口m
Merge pull request !2519 from liujiaxing19/xx0217xx`1UxItree 3d99240140c33b85b23e6f0908656f4c9b9c254d
parent 5d297bd6f06de1593161165accb51ec3c380937d
parent 4bda8dd6b3e93a95b622c8b221a372015ff9e03a
author openharmony_ci <120357966@qq.com> 1739856424 +0000
committer Gitee <noreply@gitee.com> 1739856424 +0000

!2509 新增视频镜像NDK接口
Merge pull request !2509 from eric/masteruiʐx0tree ced6784910c60cef51d3e0d8a030b02957bbab54
parent d8d240fc951188544a9579920a405a0e841f9de5
author 彼此彼此 <chenyuchen8@huawei.com> 1739849281 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1739849281 +0800

Add media info verification

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
mxHtree f1b60af38575250b227e74b5a74be3a931032f6c
parent 5d297bd6f06de1593161165accb51ec3c380937d
author b30058220 <baodi1@huawei.com> 1739801155 +0800
committer b30058220 <baodi1@huawei.com> 1739801155 +0800

回合版本修改capi

Signed-off-by: b30058220 <baodi1@huawei.com>
Change-Id: I85d492bd4987839b5c9a96884024334e5dea8c66
cxLtree 04026bb22a729413b59104c428c20b8393dd1080
parent 56cb2e3cfa4bd507bc58117f1a0714628997919e
parent c787d60384af66efa3bad97e00447df54bda587b
author openharmony_ci <120357966@qq.com> 1739799258 +0000
committer Gitee <noreply@gitee.com> 1739799258 +0000

!2480 change 16 to 15.
Merge pull request !2480 from zhanghang/mod_16to15_0212^`xx_tree cedc02970001ceff3ae9ffdc25b7fe807bd12c52
parent 56cb2e3cfa4bd507bc58117f1a0714628997919e
author liujiaxing19 <liujiaxing19@huawei.com> 1739792353 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1739792353 +0800

补充导出接口

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: I93d6b89701f84ac7f5427a9d8e4b53be1258995f
rxtree 273f802e832615dc0186c947adbe605aa330065d
parent 56cb2e3cfa4bd507bc58117f1a0714628997919e
author htt1997 <hutao105@huawei.com> 1739783577 +0800
committer htt1997 <hutao105@huawei.com> 1739791925 +0800

add batchinsert

Signed-off-by: htt1997 <hutao105@huawei.com>
qNx tree cab1550751147dc8bb8fd73bbaef8103083b6593
parent 56cb2e3cfa4bd507bc58117f1a0714628997919e
author fox <tanhong6@h-partners.com> 1739785384 +0800
committer fox <tanhong6@h-partners.com> 1739785384 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
N	Nxltree db6929e74d1d5003d16ee1d21347332dcb241e33
parent af964c7bc4182f6cbc0e75c3eb1d6cb8ca116488
author fangyunzhong <fangyunzhong2@huawei.com> 1739780559 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1739782891 +0800

新增 废弃 plural c接口

Change-Id: I2f7f2fa264eddcb925100dd0acfda8dd0903b99a
Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
zxvtree 7d50d0a322b5f8d871e15ddc42c4b5ce58537c78
parent dab90fdef321faa33f58f386747711e432a5d584
parent 56cb2e3cfa4bd507bc58117f1a0714628997919e
author youbing54 <youbing3@huawei.com> 1739781228 +0000
committer Gitee <noreply@gitee.com> 1739781228 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: youbing54 <youbing3@huawei.com>T1vxtree ebbabfa5c7fae50686a829c51837b0772b9e628b
parent b056242b142a94d4379f9cddf4e0b3b058a4df3a
author z00562947 <zengwang1@huawei.com> 1739777490 +0800
committer z00562947 <zengwang1@huawei.com> 1739780995 +0800

add ndk interfaces

Signed-off-by: z00562947 <zengwang1@huawei.com>
cQS̜x\tree 2bfaba53484497a633bd4f8328bff4e1bebe5ee9
parent af964c7bc4182f6cbc0e75c3eb1d6cb8ca116488
parent b94393ebcc67bd71abf949f375759b1ed506eb29
author openharmony_ci <120357966@qq.com> 1739775402 +0000
committer Gitee <noreply@gitee.com> 1739775402 +0000

!2499 修改接口设计实现不一致
Merge pull request !2499 from ZhouJie/master_interfaceywxtree 3660f66dc4c9e03d3c287e360a9fd44310a1108e
parent ab8d618e3857dcc6f66beed37ee29fb4f067d874
author eric <aizhibo2@huawei.com> 1739774408 +0000
committer Gitee <noreply@gitee.com> 1739774408 +0000

新增视频镜像NDK接口

Signed-off-by: eric <aizhibo2@huawei.com>^k[&x
tree 5660ac3ba5ffaa11ad459bc4dfdef93ff63f3182
parent a20424096bd8678059b15c0f5446393f4b358b64
author eric <aizhibo2@huawei.com> 1739774149 +0000
committer Gitee <noreply@gitee.com> 1739774149 +0000

增加视频镜像接口

Signed-off-by: eric <aizhibo2@huawei.com>8YYxtree 53536516740802c7c3a32ae75445bfca979d3a82
parent af964c7bc4182f6cbc0e75c3eb1d6cb8ca116488
author aizhibo <aizhibo2@huawei.com> 1739765761 +0800
committer aizhibo <aizhibo2@huawei.com> 1739765761 +0800

新增视频镜像NDK接口
Signed-off-by: aizhibo <aizhibo2@huawei.com>
^ǜx\tree 18bd35bf877af2152f4204f45f6cab056ee3381e
parent 5d783eb43430852b0bc10c53d865b2cdb15deedd
parent 521f2a77610359dea285de911437793035a15333
author openharmony_ci <120357966@qq.com> 1739764541 +0000
committer Gitee <noreply@gitee.com> 1739764541 +0000

!2318 Add a custom timeout interface for stuck events
Merge pull request !2318 from hhl/master~ix tree 50cfce0060b30b8992f30dd7d8877c712fcb3256
parent 729031924f4bc3428351807e882dc50953db12e0
author mlyuestc <maluyao3@huawei.com> 1739763867 +0000
committer Gitee <noreply@gitee.com> 1739763867 +0000

删除文件 arkui_ace_engine_interface3ZNWxttree 6fbdeeebcd8e4f2362a356d323f3e1701154905a
parent 6d4e2e6938b72ac64403f1e1b933a43c1c784aa8
parent 5d783eb43430852b0bc10c53d865b2cdb15deedd
author mlyuestc <maluyao3@huawei.com> 1739763716 +0000
committer Gitee <noreply@gitee.com> 1739763716 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: mlyuestc <maluyao3@huawei.com>@vxtree 59b65a30f7127ee7481c2205f38a12006ff4b61e
parent c1fd137323b8b557d32c010253df88da9814244f
author mlyuestc <maluyao3@huawei.com> 1739763391 +0000
committer mlyuestc <maluyao3@huawei.com> 1739763595 +0000

change since to 15

Signed-off-by: mlyuestc <maluyao3@huawei.com>
?T)x%tree 2582715c721b21199fc480f71dfebba4404a1d0a
parent dc827b8e07ec079742f4142fa5ffd4d86e66d20b
author 王关 <wangguan27@huawei.com> 1739193935 +0800
committer AnBetter <wangguan27@huawei.com> 1739758820 +0800

List C-API接口版本由16改为15

Signed-off-by: 王关 <wangguan27@huawei.com>
dʒxBtree d87067267b4ce2d0b1f74f7866baf5fdccf09b84
parent 7de17e33290727de255d585885520b6728079200
parent d481b6ab0eb515a5f15847c14944fe34b3e02626
author openharmony_ci <120357966@qq.com> 1739620138 +0000
committer Gitee <noreply@gitee.com> 1739620138 +0000

!2506 修改api接口
Merge pull request !2506 from youbing54/master3cxstree d87067267b4ce2d0b1f74f7866baf5fdccf09b84
parent 7de17e33290727de255d585885520b6728079200
author youbing54 <youbing3@huawei.com> 1739617313 +0800
committer youbing54 <youbing3@huawei.com> 1739617313 +0800

IssueNo: https://gitee.com/openharmony/interface_sdk_c/issues/IBMIC3
describe: 修改api接口
Feature or Bugfix: Feature
Binary Source:Yes
Signed-off-by: youbing54<youbing3@huawei.com>
ex~tree 9db60e51c6dea21a7b422e1baf035e799551993d
parent b056242b142a94d4379f9cddf4e0b3b058a4df3a
parent 47db89b1e77c71b1d908933767505dcb79217d7e
author openharmony_ci <120357966@qq.com> 1739609598 +0000
committer Gitee <noreply@gitee.com> 1739609598 +0000

!2396 Progress组件支持strokeWidth/strokeRadius/enableSmoothEffect修改API版本
Merge pull request !2396 from 王关/masterpěxKtree c2a14665944ec99ecc2b6352aa5a98717e5bc633
parent b056242b142a94d4379f9cddf4e0b3b058a4df3a
author zhanghang <zhanghang160@huawei-partners.com> 1739595303 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1739595406 +0800

checkboxgrop-capi-h修改15版本

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
nxGtree 6c7d9a00e0d51930c6e3bbab8a4968fc2eb79ddb
parent dbb211d66a41bd92f04764790bf928980636724b
author zhoujie <zhoujie241@huawei.com> 1739522578 +0800
committer zhoujie <zhoujie241@huawei.com> 1739522578 +0800

修复codeCheck

Signed-off-by: zhoujie <zhoujie241@huawei.com>
Change-Id: I3e86e5b7597e3ee879adf045320a603baf32e900
exYtree 81579f65ca27baba238e509f822eaa0e79db6aef
parent 1dbe16d2dac1816c0bb6f71c6164dc5d099120e8
author zhoujie <zhoujie241@huawei.com> 1739521000 +0800
committer zhoujie <zhoujie241@huawei.com> 1739521000 +0800

修改接口设计实现不一致

Signed-off-by: zhoujie <zhoujie241@huawei.com>
Change-Id: Idfb69e5638b086ff8dd476d3ca9525fc9ad16f8e
|
wx>tree f77b19bafa981a24b9c6eae2bd96516f2bf4e2df
parent fbaff428b1b9fdd6fdfa55de848754e48cd7d4c7
parent 0facd4377cc50041d5414a713f7c8edbe0d40a87
author openharmony_ci <120357966@qq.com> 1739513605 +0000
committer Gitee <noreply@gitee.com> 1739513605 +0000

!2491 api16回合api15
Merge pull request !2491 from wang/mastert<bxDtree 214bf672222f2841d7c8c7e0ed71afce08bd1725
parent 0cd617f02abe0d6622b0b801fa8447db882dbd02
parent c63949c7dec00576fc2731d132d4c1f795e49d0c
author openharmony_ci <120357966@qq.com> 1739511208 +0000
committer Gitee <noreply@gitee.com> 1739511208 +0000

!2372 新增http明文C接口
Merge pull request !2372 from jxw/master-gx`tree 8b7bfb56dff1c1228cdf632d189d7878fcd9567c
parent f89b5458a3a8eedd83edab88454b9fef2b6209d9
parent b863da3e5fa7cc33d28068a9e791ac68c9cfd73e
author openharmony_ci <120357966@qq.com> 1739504459 +0000
committer Gitee <noreply@gitee.com> 1739504459 +0000

!2349 [L] add CAPI setOnVisibleAreaApproximateChange  api
Merge pull request !2349 from lisitao/s1'Alpxftree e4d867194bec38772bcd8decc7186bc916ae47d5
parent 2732122974ade5de925b7acef80ff789c7aed53f
parent 47cbb74e4868474f9f8399ef412ab8e459c4b73e
author openharmony_ci <120357966@qq.com> 1739504236 +0000
committer Gitee <noreply@gitee.com> 1739504236 +0000

!2455 [L]自定义按键事件分发和走焦 Capi更改version
Merge pull request !2455 from lisitao/d1]|x\tree f5ecd84d8c755d35a737bd29e7b766c092f5132a
parent 2732122974ade5de925b7acef80ff789c7aed53f
author wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1739438199 +0800
committer wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1739502919 +0800

api16回合api15

Signed-off-by: wangdongyusky <wanghuanqing2@h-partners.com>
s	rxtree 027cef4cfced9ec15a2c69a4f3bfee6feae3d8a0
parent db034dab1950560a5db998de2cbf2d982ff74ced
author jxw <jiexiwen@huawei.com> 1739445418 +0000
committer Gitee <noreply@gitee.com> 1739445418 +0000

update network/netssl/include/net_ssl_c.h.

Signed-off-by: jxw <jiexiwen@huawei.com>[xqtree 3431e451c5f09ad0d6e3bc576e460ec9c5ac4e49
parent a089283ab4e076028322cdde276030cf455d7f76
parent dc8c977cbc7ca94a3684ab6b9805a691159140c9
author openharmony_ci <120357966@qq.com> 1739437443 +0000
committer Gitee <noreply@gitee.com> 1739437443 +0000

!2440 crossLanguage需求回合API15 SDK修改
Merge pull request !2440 from 马梓健/250210_crossLanguage_toAPI15I%x4xwtree 44488194f3120a2f346113ca1a231772d117453a
parent 7f05510a2eaccfc390c6cbce5680da2157eef9f0
parent 1953f3b26b222cf8bb0f0ac1f193f7ff3e1a71aa
author openharmony_ci <120357966@qq.com> 1739434395 +0000
committer Gitee <noreply@gitee.com> 1739434395 +0000

!2460 FrameNode支持LazyExpand枚举值修改+SDK回合15（CAPI SDK）
Merge pull request !2460 from 马梓健/250211_lazyExpand_toAPI15̗xWtree 764cd86eade987cfcfffac41ed02e5a4fae1171a
parent 673dae2b2abf566f826d9a6f917acdc6d2caaa51
parent 6c7b01534557405ccd281cfaff0151218e52d7cf
author openharmony_ci <120357966@qq.com> 1739434186 +0000
committer Gitee <noreply@gitee.com> 1739434186 +0000

!2446 新增浏览器托管策略事件通知
Merge pull request !2446 from 黄晓/masterqyqx`tree 630bd940998537bdb5bd78c8ef5d9573be67a170
parent cb96d177666ac05b7d092d279d6d6e96e456027d
parent 22dd34036217582f731f1fa51838ca5ead4f6b16
author openharmony_ci <120357966@qq.com> 1739422837 +0000
committer Gitee <noreply@gitee.com> 1739422837 +0000

!2474 NODE_IMMUTABLE_FONT_WEIGHT since 15
Merge pull request !2474 from LuckClover/FontWeightAPI15:gțxKtree 468e812104f5739e9e81bc8f466f0df51aa2a6ef
parent 17a7ab646115c0f7617edb12e51e2b907b251a10
parent 4896b6ac15b3bd42835003dd5e7c98d80516dc23
author openharmony_ci <120357966@qq.com> 1739420449 +0000
committer Gitee <noreply@gitee.com> 1739420449 +0000

!2392 修改 API 版本
Merge pull request !2392 from 陈乔异/cqy/api-levelHixTtree 2b14cf1e086083a55c07b8d3c91ea3434b390b1f
parent 17a7ab646115c0f7617edb12e51e2b907b251a10
author huangweichen <huangweichen6@huawei.com> 1739418829 +0800
committer huangweichen <huangweichen6@huawei.com> 1739418829 +0800

ArkUI提供CAPI控制及处理焦点事件调整API版本

Signed-off-by: huangweichen <huangweichen6@huawei.com>
̔|ixbtree 3e76d4e288029e47e192a8997dc694e63b37741f
parent 020b2ce6069bc9f7e5985955ba165f02b54d243a
parent 807638bffb4419f0db471dcc63fa701c91f87d0e
author openharmony_ci <120357966@qq.com> 1739417105 +0000
committer Gitee <noreply@gitee.com> 1739417105 +0000

!2439 【轻量级 PR】：添加usb音频设备枚举
Merge pull request !2439 from 136******92/N/Aw"xytree 0cd056ccd91c40a7ac8679618ad7cf7b8b083d5f
parent a1fcc233ce14748b02ecfcbf266a9589057ff431
parent 79db03f3872243975d25ac26d5abe10de339fdd2
author openharmony_ci <120357966@qq.com> 1739416464 +0000
committer Gitee <noreply@gitee.com> 1739416464 +0000

!2473 废弃获取当前队列接口以及注释修改
Merge pull request !2473 from 梅志坚/sdk_add_del_update_58_250210o·fxhtree fadee47ca89a8d720625d99a85a62a718894c283
parent 475df61f09521e85d78eb355ba661388a5293c53
parent 3b95625525db2715d8dcfc8767131973f68b4bef
author openharmony_ci <120357966@qq.com> 1739415209 +0000
committer Gitee <noreply@gitee.com> 1739415209 +0000

!2459 bug: modify pasteboard FileConflictOption definition
Merge pull request !2459 from sunxuejiao/masternzxptree c7f8604ec61a784cd8867a79407dee6458b507e1
parent 475df61f09521e85d78eb355ba661388a5293c53
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739413702 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739413702 +0800

[L] add CAPI setOnVisibleAreaApproximateChange  api
修改Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
)jxYtree ae6ee483b339c78356440dac57361179a6d82514
parent 4a60d94b942aa1f2262751e61750f3cd9c8bd53d
parent 45ad83182c6a53e673a5febe04dba62eebcd230a
author openharmony_ci <120357966@qq.com> 1739413285 +0000
committer Gitee <noreply@gitee.com> 1739413285 +0000

!2402 OH_NativeArkWeb_LoadData修改为api15
Merge pull request !2402 from 吴振德/masterox tree 506f553a667e12c201036eabb0cf3f3f32def6e2
parent bf6d65b9252eee4786f3b598e617f7c8a5028cee
author c30053238 <chenxiaoxue11@huawei.com> 1739413276 +0800
committer c30053238 <chenxiaoxue11@huawei.com> 1739413276 +0800

version change

Signed-off-by: c30053238 <chenxiaoxue11@huawei.com>
VGxAtree 4bea98529d7756c6e4173cc6c2d5bf6e6a0ba24c
parent 1b73a0d8f9cd1692b83cce123652e34f9d23fb69
author huangweichen <huangweichen6@huawei.com> 1735737695 +0800
committer huangweichen <huangweichen6@huawei.com> 1739413270 +0800

按键事件增加UI input事件类型

Signed-off-by: huangweichen <huangweichen6@huawei.com>
rΓxStree 212068dbd030adca05dc5e1850117d960dfab266
parent 1e2acf26862b34658b2e14b235bf3d6e12770f69
parent c3180cd68beb9ddc2e7e5f04c09243cfb2e709b4
author openharmony_ci <120357966@qq.com> 1739413191 +0000
committer Gitee <noreply@gitee.com> 1739413191 +0000

!2376 Drawing themefont change api version
Merge pull request !2376 from lizhan/0205cf,x{tree 47f8c0d59bbfe59eba2855061520971af8b3d936
parent 4b61804fa4d06fec82bb70d038957a5db678bcdc
parent ad2e2af6b53484299918b31ac2cac6af7cac4395
author openharmony_ci <120357966@qq.com> 1739412913 +0000
committer Gitee <noreply@gitee.com> 1739412913 +0000

!2410 修改Swiper onContentWillScroll API版本为15
Merge pull request !2410 from xuzhidan/swiper_onContentWillScroll_api15|xCtree ee57f44e12fb22ca096102c281352f95c12b62d8
parent f5567140457dfff496b864807201086400ae9f67
parent d290725dd11a91417735b0d74f94e5d48223d3af
author openharmony_ci <120357966@qq.com> 1739365970 +0000
committer Gitee <noreply@gitee.com> 1739365970 +0000

!2436 add new interface
Merge pull request !2436 from mlyuestc/master_xctree aa0e7442fa6ceb1868fa37a7752b891f21cfa3e4
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
parent 72967f5dacc20c1b93dfd1bfcf5e82d73bc5fd8f
author openharmony_ci <120357966@qq.com> 1739358814 +0000
committer Gitee <noreply@gitee.com> 1739358814 +0000

!2348 关键帧动画支持设置期望帧率 cAPI
Merge pull request !2348 from chenxiaoxue/keyframe|;xytree aa0e7442fa6ceb1868fa37a7752b891f21cfa3e4
parent ea6c285654915ffb7793f7b180726abaf36858f2
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
author chenxiaoxue <chenxiaoxue11@huawei.com> 1739349919 +0000
committer Gitee <noreply@gitee.com> 1739349919 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into keyframe

Signed-off-by: chenxiaoxue <chenxiaoxue11@huawei.com>}ߓx#tree 36ac50c640bd5499c86a79f8da717110d3334ac6
parent bf6d65b9252eee4786f3b598e617f7c8a5028cee
author c30053238 <chenxiaoxue11@huawei.com> 1737528205 +0800
committer c30053238 <chenxiaoxue11@huawei.com> 1739349862 +0800

keyframeanimateto

Signed-off-by: c30053238 <chenxiaoxue11@huawei.com>
&WYxttree 1349dd93297622a7a0be72cdc2140bb1d74a0cd9
parent c1fd137323b8b557d32c010253df88da9814244f
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
author mlyuestc <maluyao3@huawei.com> 1739348697 +0000
committer Gitee <noreply@gitee.com> 1739348697 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: mlyuestc <maluyao3@huawei.com>vTxtree c722caab5d87cb9695b5191b5d88d3963d44a708
parent b3d56d40dfdf4aba4e3590140ba7d973ad4f15d3
author mlyuestc <maluyao3@huawei.com> 1739169980 +0000
committer mlyuestc <maluyao3@huawei.com> 1739348612 +0000

add new interface

Signed-off-by: mlyuestc <maluyao3@huawei.com>
Ux:tree 55ee826a98d91c84da8166f9d07f2f3a637e1bfd
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
author zhanghang <zhanghang160@huawei-partners.com> 1739347133 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1739347133 +0800

change 16 to 15.

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
&vcxPtree 06f46ec87d16a1c6863e603b6f6c1542bdc3a6b5
parent 33821117fa713d0e2a86d1c26a81553b39425676
parent 8abba9f2fdedc45b94134df4eee4c4f90dfa8a56
author 梅志坚 <meizhijian741@outlook.com> 1739345003 +0800
committer 梅志坚 <meizhijian741@outlook.com> 1739345003 +0800

解决冲突
Signed-off-by: 梅志坚 <meizhijian741@outlook.com>
ҒtxLtree 06f46ec87d16a1c6863e603b6f6c1542bdc3a6b5
parent fe8f45eda1fb1691d55a8fbcab0c4b3cd7a3e94f
parent b97bd2b144d4cbb3c1177aff602f74094969e03e
author 梅志坚 <meizhijian741@outlook.com> 1739170495 +0800
committer 梅志坚 <meizhijian741@outlook.com> 1739344898 +0800

去除void
Signed-off-by: felands <meizhijian741@outlook.com>
^ox,tree 0cea66622fc714b85bf185e22bc1feea4894f95a
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
author wangweiyuan <wangweiyuan2@huawei.com> 1739343025 +0800
committer wangweiyuan <wangweiyuan2@huawei.com> 1739343025 +0800

api版本修改16 -> 15

Signed-off-by: wangweiyuan <wangweiyuan2@huawei.com>
pd<x[tree c81fdd9366d8b6f37815e4cdc531f96e56975973
parent 5b535c4e34e6b0c2f45eb928d3dcb419a0fe4a1c
author wangtao <wangtao487@huawei.com> 1739327924 +0800
committer wangtao <wangtao487@huawei.com> 1739327924 +0800

NODE_IMMUTABLE_FONT_WEIGHT since 15

Signed-off-by: wangtao <wangtao487@huawei.com>
Change-Id: If975d67965d083c2b0e7be80f61c6c995875c556
h(xAtree 6df8fcbc6214b09f6b3f3ad46d3df7534cbdb555
parent cef14cbddf8e1a485f968c540d061a8edb3d574e
parent 8c5de1057d310da58976394f9b55d166792af48b
author openharmony_ci <120357966@qq.com> 1739326675 +0000
committer Gitee <noreply@gitee.com> 1739326675 +0000

!2361 sr async ondrop
Merge pull request !2361 from Zenix/SR_ONDROP>-`xRtree 9ef3ff3a787d999b98f1c4fc1c2dc1931ca9746b
parent b00e34e27d1c3a3255afce824a92b45c35aec52b
parent 89baba8f6cdf34d1d330a9f376f96b4d45198b8f
author openharmony_ci <120357966@qq.com> 1739326239 +0000
committer Gitee <noreply@gitee.com> 1739326239 +0000

!2420 Add CAPI to cancel touch event.
Merge pull request !2420 from 刘永畅/master
iGxVtree 6a502801c03ea3300226b557e2311b0e99c61621
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
parent cf20bf999c6ab2280cf24f02c788b427dffc71a5
author openharmony_ci <120357966@qq.com> 1739282914 +0000
committer Gitee <noreply@gitee.com> 1739282914 +0000

!2435 inspector新增capi接口回合5.0
Merge pull request !2435 from pengzhiwen/mastermmxtree 75987a92d242d09197aa3941233d08c051e7e79d
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author zhouchaobo <zhouchaobo@huawei.com> 1739275743 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1739275743 +0800

revised 16 to 15

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
XϘx(tree 9cb3954702052fe42987daf393eb12367275213c
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author zhouchaobo <zhouchaobo@huawei.com> 1739268270 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1739268270 +0800

limitFinget_changeApiVersion

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
s_ x'tree 46ddc4d36ca3a44e944250fccaf15da7790e23a9
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author zhouchaobo <zhouchaobo@huawei.com> 1739267978 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1739267978 +0800

Axis action get capi update

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
:n_xztree c60ca00a1f711a7915cef000422313e4f7d0797f
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author mazijian <mazijian2@huawei.com> 1739262365 +0800
committer mazijian <mazijian2@huawei.com> 1739262365 +0800

FrameNode支持LazyExpand枚举值修改+SDK回合15（CAPI SDK）

Signed-off-by: mazijian <mazijian2@huawei.com>
Change-Id: Iaf439a39835059f9e0121bfe41d71036e1a6ec3e
CԓxCtree f7b6f3ef10d95b23af8eb7410f5142e20b18e8dc
parent 6e25a3a4904373daad91d1698de6aca5005bb8e4
author sunxuejiao <sunxuejiao8@huawei.com> 1739261440 +0800
committer sunxuejiao <sunxuejiao8@huawei.com> 1739262281 +0800

bug: modify pasteboard FileConflictOption definition

Signed-off-by: sunxuejiao <sunxuejiao8@huawei.com>
j0xYtree c59dd57cef37262c6ad6dd71a583f4ad8b615b56
parent feafac2d5097343322dd78b38d5442c58c8c6a2f
parent cdf27438ed295eb7f875777581d068c4cb526345
author openharmony_ci <120357966@qq.com> 1739255580 +0000
committer Gitee <noreply@gitee.com> 1739255580 +0000

!2433 add new timestamp api for speed change
Merge pull request !2433 from AOL/newtimestamp̹hِxPtree 451fca4adebbd221b9095375af881c0f725cce32
parent 372b03954cedc011bca3d9f06e1802e9da4a66de
parent 89084ed27a08e7257f61de8acda79909845d7185
author openharmony_ci <120357966@qq.com> 1739247470 +0000
committer Gitee <noreply@gitee.com> 1739247470 +0000

!2386 update for onHoverMove feature
Merge pull request !2386 from mdd12138/master*eDxPtree f258e6a837af0516c26c64c8372da0ef8f337ea4
parent 4a0ab006b2e226f6a3fe80be5ea7cb9d08a105d3
parent 539ccba61dc17df2b80e6bdf1541272d2cb81fc4
author openharmony_ci <120357966@qq.com> 1739246306 +0000
committer Gitee <noreply@gitee.com> 1739246306 +0000

!2350 asset数据支持导入导出
Merge pull request !2350 from 尹耀德/master̳rxtree b21a2c315db59c72d72d07d9afbf25f8b11918ff
parent 805982c699559e6a0c5ca824faf598a56d0c071c
author mdd12138 <1245619585@qq.com> 1738833204 +0800
committer mdd12138 <1245619585@qq.com> 1739245071 +0800

update for onHoverMove feature

Signed-off-by: mdd12138 <1245619585@qq.com>
N͕xUtree a0d78499939796b93be469c4892365767a30a052
parent dc827b8e07ec079742f4142fa5ffd4d86e66d20b
parent ee56835b46ca61c5d4abd12e1c308674c69fe71d
author openharmony_ci <120357966@qq.com> 1739242105 +0000
committer Gitee <noreply@gitee.com> 1739242105 +0000

!2415 Dialog支持层级管理
Merge pull request !2415 from houguobiao/req_level_orderFmIxjtree dbdc786c05aacd2cc74c550236abbf5fed0ad81b
parent dc827b8e07ec079742f4142fa5ffd4d86e66d20b
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739241496 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739241496 +0800

[L]自定义按键事件分发和走焦 Capi更改version
修改Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>

xLtree 15d84da80bb928cc1721134fe5033b7f9f5ae49f
parent 25a3b981b21f7108c3774deecf97d1a6474c6730
parent 2c1498951573367ac45b959565d188727f6527bd
author openharmony_ci <120357966@qq.com> 1739191792 +0000
committer Gitee <noreply@gitee.com> 1739191792 +0000

!2422 get capslock state ndk api
Merge pull request !2422 from Dragon51/masterb%xitree a55df60379d148e4d6bdd3c0d87c7042d61716bd
parent 6cbf9a30a3271e2552d7cdb94b566bbd802a95be
parent 166c290c4517777b101dc1fe4f0e29c3e6463c4b
author openharmony_ci <120357966@qq.com> 1739190591 +0000
committer Gitee <noreply@gitee.com> 1739190591 +0000

!2341 Set the longest duration allowed for current recording
Merge pull request !2341 from 刘汶谏/masterrFxKtree 479a1d494b0ce17afd0da8b3638460821ffff1e0
parent ae14b4249a5ed802def7179db7575877906bf13e
parent a197eee7f1d5a44cc08140fc753ba503a1814dd6
author openharmony_ci <120357966@qq.com> 1739187479 +0000
committer Gitee <noreply@gitee.com> 1739187479 +0000

!2399 修改API级别c
Merge pull request !2399 from liujiaxing19/fixAPILevel	KgxYtree 67ea14fc3d59f02abff5175ba5399f7385ac637e
parent 9bd2038ab2bead4c0a8836dee452aa909d052906
parent 0d3d5c637c1114fb008c021b840ea4645606da5a
author openharmony_ci <120357966@qq.com> 1739183798 +0000
committer Gitee <noreply@gitee.com> 1739183798 +0000

!2430 [L]自定义按键事件分发和走焦 Capi
Merge pull request !2430 from lisitao/s28tHxVtree 7f0bdfd6372910416201d083c8f0a87a89357f69
parent fc191b285248ae82e306c59320acdababcce5d07
parent 9c18e7a290d5ea6e2e62ea8efa11dcb42ee64df7
author openharmony_ci <120357966@qq.com> 1739181635 +0000
committer Gitee <noreply@gitee.com> 1739181635 +0000

!2426 add displaycallback api15
Merge pull request !2426 from hanKF/addDisplayIdCallbackhx`tree c1051c202e512100315f1f45c74b8e4be86495c4
parent fc191b285248ae82e306c59320acdababcce5d07
author mazijian <mazijian2@huawei.com> 1739177884 +0800
committer mazijian <mazijian2@huawei.com> 1739177884 +0800

crossLanguage需求回合API15 SDK修改

Signed-off-by: mazijian <mazijian2@huawei.com>
Change-Id: I13d9a068d33fa363610aa8f02f430fc46ecb1a4c
urxwtree 07e9f0d2d150892f6a168f54e79178dbceb7c17f
parent a62f5eff7f418871ce2c255796f83c74c58985e0
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739107397 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1739176890 +0800

[L]自定义按键事件分发和走焦 Capi
修改Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
P5xtree 38b0b6069030e219cd1c7aa62a39ca2efcc63b60
parent fc191b285248ae82e306c59320acdababcce5d07
author 136******92 <yupanwen@huawei.com> 1739176564 +0000
committer Gitee <noreply@gitee.com> 1739176564 +0000

添加usb音频设备枚举

Signed-off-by: 136******92 <yupanwen@huawei.com>3^1xXtree 9ddff71c099a364e01dbc333b22b071f55a9e623
parent b3d56d40dfdf4aba4e3590140ba7d973ad4f15d3
parent 0e0798c19e09f2341fbeced98727baf6f11b1193
author openharmony_ci <120357966@qq.com> 1739172450 +0000
committer Gitee <noreply@gitee.com> 1739172450 +0000

!2417 【ArkWeb】异常注释缺少星号
Merge pull request !2417 from echoorchid/masterospxGtree 5efa4ade1270f9e85f452bb619b3726e8a09e7e3
parent fe8f45eda1fb1691d55a8fbcab0c4b3cd7a3e94f
parent b97bd2b144d4cbb3c1177aff602f74094969e03e
author 梅志坚 <meizhijian741@outlook.com> 1739170495 +0800
committer 梅志坚 <meizhijian741@outlook.com> 1739170495 +0800

Merge branch 'sdk_add_del_update_58_250210' of gitee.com:mei-zhijian/interface_sdk_c into sdk_add_del_update_58_250210
Signed-off-by: felands <meizhijian741@outlook.com>
[x*tree 5efa4ade1270f9e85f452bb619b3726e8a09e7e3
parent c2d19098f923f3a6ecfe89324bda26384b1d997c
author 梅志坚 <meizhijian741@outlook.com> 1739158543 +0800
committer 梅志坚 <meizhijian741@outlook.com> 1739170178 +0800

去掉未开源的代码
Signed-off-by: felands <meizhijian741@outlook.com>
&[l$xPtree 0717d8d36e0bd9a0eb34cc0ee44d23e2de7713cc
parent d67b742d870d1523a82517898eeadb75598b277e
parent 64a29feedea789f8467601996b6ae15eeb013548
author openharmony_ci <120357966@qq.com> 1739161589 +0000
committer Gitee <noreply@gitee.com> 1739161589 +0000

!2380 Add napi_wrap_enhance interface
Merge pull request !2380 from dingwen/masterfxftree 8df837bfecf63ec54fed281e2ea67b8e0b07ac69
parent d67b742d870d1523a82517898eeadb75598b277e
author pengzhiwen <pengzhiwen3@huawei.com> 1739159707 +0800
committer pengzhiwen <pengzhiwen3@huawei.com> 1739159707 +0800

inspector新增capi接口回合5.0

Signed-off-by: pengzhiwen <pengzhiwen3@huawei.com>
Change-Id: I3d71d78fcf1740e3d5098ef5bd481cfe572b9126
##wqx@tree e3a57d6081c605e38f23b29b284c1ebc292f83c2
parent c2d19098f923f3a6ecfe89324bda26384b1d997c
author 梅志坚 <meizhijian741@outlook.com> 1739158543 +0800
committer 梅志坚 <meizhijian741@outlook.com> 1739158543 +0800

废弃ffrt_get_current_queue以及注释修改
Signed-off-by: felands <meizhijian741@outlook.com>
OuZxtree 21da30c63dc21356c30f2dc300ea815c38e5224d
parent d67b742d870d1523a82517898eeadb75598b277e
author Zenix <zhengxingyou1@huawei.com> 1737624593 +0800
committer Zenix <zhengxingyou1@huawei.com> 1739156998 +0800

sr async ondrop

Signed-off-by: Zenix <zhengxingyou1@huawei.com>
BVxAtree ec56626a904a79a2b80dea958bf422d104f385bc
parent 1b38dee077727b43b6845cfe695165e7ca0f7a53
parent 0019af48e4f0749daf46cfd5351af58e85e06da1
author openharmony_ci <120357966@qq.com> 1739152915 +0000
committer Gitee <noreply@gitee.com> 1739152915 +0000

!2330 增加aac封装
Merge pull request !2330 from cailei24/master*cxEtree e437fbb67217ffce06216e2a1d09487c6cff7be6
parent a62f5eff7f418871ce2c255796f83c74c58985e0
parent 72442c59eb71463e9aa5b80bb049fd38a6f3ba91
author openharmony_ci <120357966@qq.com> 1739152654 +0000
committer Gitee <noreply@gitee.com> 1739152654 +0000

!2411 Remove llvm-ifs from NDK
Merge pull request !2411 from 何海/ifsc)x\tree c8c9b32c8dc590333a703f112d10c0c025b93569
parent 273d8336ccc38935f5a31e574651fc57cfed6776
author liujiaxing19 <liujiaxing19@huawei.com> 1738913184 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1739149642 +0800

修改API级别

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: Ib6561b742411083fdae68383e818afa2ad5793bb
npxvtree cef9eaf9853d699c935f0b3d0d9c646c3f21551a
parent 4c9d9e3864061a8b51533894edd4fc7f1b64aeee
parent 4be71eceb966712e141c40442e9ed01c48a4ab8a
author openharmony_ci <120357966@qq.com> 1739085307 +0000
committer Gitee <noreply@gitee.com> 1739085307 +0000

!2405 add new CAPI setGestureInterrupterToNode
Merge pull request !2405 from zhouchaobo/CAPI_setGestureInterrupterToNode u"xQtree 08489cbdac14888d1f9a5274ea155c9d25759b76
parent d054d0c4a5f71dcef97739ee4196e30f50de7557
parent 4fcf98467fb132b23d31c9ac64b595b2a804bdf5
author openharmony_ci <120357966@qq.com> 1739013683 +0000
committer Gitee <noreply@gitee.com> 1739013683 +0000

!2394 add display callback
Merge pull request !2394 from hanKF/addDisplayIdCallback Rextree 6673b75400746b7f6b76bea95b1bc54205d03217
parent 4fcf98467fb132b23d31c9ac64b595b2a804bdf5
author hanKF <hanhu3@h-partners.com> 1739010656 +0800
committer hanKF <hanhu3@h-partners.com> 1739011300 +0800

add displaycallback api15

Signed-off-by: hanKF <hanhu3@h-partners.com>
8Tx:tree c2935e5dbb5bce0a52bcb2fba463f1929f57d6c6
parent 78d10b3b30f3e87fe1095c6f0326a3028abf6423
parent 8fe5e68a589961f8b99dc414ec19961d1c2a29c6
author openharmony_ci <120357966@qq.com> 1739008940 +0000
committer Gitee <noreply@gitee.com> 1739008940 +0000

!2419 配置文件
Merge pull request !2419 from wang/master{Kaҕx5tree f24544345c58ebc2ff8cf5f058398512d60d4e6e
parent 78d10b3b30f3e87fe1095c6f0326a3028abf6423
author 15349246236 <longchao17@h-partners.com> 1739006213 +0800
committer 15349246236 <longchao17@h-partners.com> 1739006882 +0800

get capslock state ndk api

Signed-off-by: 15349246236 <longchao17@h-partners.com>
Z$xLtree 6eacf6df296e33f1a84b2b24d253817b9ddf89a6
parent 84f200bb68905871404ec8054087ade05cf9d964
author dingwen <dingwen6@huawei.com> 1738806280 +0800
committer dingwen <dingwen6@huawei.com> 1739006546 +0800

Add napi_wrap_enhance interface support pass binding object size and finalize_cb execute async

Description:Add napi_wrap_enhance interface support pass binding object size and finalize_cb execute async
Issue:https://gitee.com/openharmony/arkui_napi/issues/IBK6OE?from=project-issue

Signed-off-by: dingwen <dingwen6@huawei.com>
Change-Id: Id81167e5805c5601540855f74fd55626f8ab55a7
i$xVtree f7957eab9f4d5ecaa467a2e4e4b55848c6369bbd
parent 4c05fb490039edb7625f19a93a3db8c19cde2648
author wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1739001616 +0800
committer wangdongyusky <15222869+wangdongyusky@user.noreply.gitee.com> 1739001661 +0800

配置文件

Signed-off-by: wanghuanqing<wanghuanqing2@h-partners.com>
sx/tree 4d09f8bc6bf846851fd662ea2bbcdf9ca4a2bc26
parent 78d10b3b30f3e87fe1095c6f0326a3028abf6423
author rachel_w <wangqiuyuan2@huawei.com> 1739001088 +0800
committer rachel_w <wangqiuyuan2@huawei.com> 1739001088 +0800

变更VVC查询接口版本至API15

Signed-off-by: rachel_w <wangqiuyuan2@huawei.com>
p@ix%tree 07170604f76561a03a0881995067100e4a98af71
parent 78d10b3b30f3e87fe1095c6f0326a3028abf6423
author echoorchid <huweidong2@huawei.com> 1739000458 +0800
committer echoorchid <huweidong2@huawei.com> 1739000458 +0800

fix abnormal code comment

Signed-off-by: echoorchid <huweidong2@huawei.com>
[xYtree 8d5ba7e1cd034bc62e3da2a44bb77565a60c3458
parent 872368afcbe593b8d14bb6a814e4860a98351d42
author houguobiao <houguobiao@huawei.com> 1738998744 +0800
committer houguobiao <houguobiao@huawei.com> 1738998744 +0800

Dialog支持层级管理

Signed-off-by: houguobiao <houguobiao@huawei.com>
Change-Id: Ia3328a5719229a25bd8c4c1bb9e5eac4657c2fbe
96rxKtree 8fa124471b3c109b061e3e745de4faeaa4620efb
parent 1dbe16d2dac1816c0bb6f71c6164dc5d099120e8
parent f161c54ddb3b937414188c73ac6af9f863378c14
author openharmony_ci <120357966@qq.com> 1738996946 +0000
committer Gitee <noreply@gitee.com> 1738996946 +0000

!2393 fix new format since 15
Merge pull request !2393 from 李辉/format0207dxYtree ef4ea2f77221a6eab22daede12f8d585b0f1e10d
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
parent a24d300baa605089f17960726daaa0dc3e2867d4
author openharmony_ci <120357966@qq.com> 1738983553 +0000
committer Gitee <noreply@gitee.com> 1738983553 +0000

!2365 add action type for xweb focus move
Merge pull request !2365 from zhanghangkai/master){jxftree e0bfe71a165ec043585e91ecf274f8515e2d06a2
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
author He Hai <hehai2@huawei.com> 1738979919 +0800
committer He Hai <77500096@qq.com> 1738982585 +0800

Remove llvm-ifs from NDK

Remove llvm-ifs from NDK

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/IBKRAO
Signed-off-by: He Hai <hehai2@huawei.com>
joٜxltree 6a3f744c29ae50c12f0c5cb969b3da3e55d5abeb
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
author xuzhidan <xuzhidan1@huawei.com> 1738980392 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1738980392 +0800

Swiper onContentWillScroll api version change to 15.

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: I2fd4a6bfe2ae5a4b68f0f6c04719c46e2417e47b
]t<xtree cd02e5556d7a9bc66d7cc3ddc2a11205b7fc1d48
parent 125edf1d8ae19ebf0e05bb641a21542120a522aa
author magekkkk <lixin113@huawei.com> 1738931535 +0000
committer magekkkk <lixin113@huawei.com> 1738931535 +0000

update doxygen format

Signed-off-by: magekkkk <lixin113@huawei.com>
Vxtree 646745bc07893426e0a9ed4d1eabef1cf99e6f8e
parent acfc1e16aa285182589d16a07b4f60c22e39beb0
author magekkkk <lixin113@huawei.com> 1738926326 +0000
committer magekkkk <lixin113@huawei.com> 1738926326 +0000

fix comment mismatch

Signed-off-by: magekkkk <lixin113@huawei.com>
KUx&tree dffd85d35932d1f69756840677761529e405575d
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
author magekkkk <lixin113@huawei.com> 1738922462 +0000
committer magekkkk <lixin113@huawei.com> 1738922462 +0000

add new timestamp api for speed change

Signed-off-by: magekkkk <lixin113@huawei.com>
["x4tree c078458e3f9fb205b85bfdea55f671cbb0c7c33b
parent 3baa61fa4e2502619d1b1b52c4d93ccbb9dfd1fe
author zhouchaobo <zhouchaobo@huawei.com> 1738921906 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1738921906 +0800

add new CAPI setGestureInterrupterToNode

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
	ZdxNtree 6b734ccbeac231453de5fb560fc661b670ca5edb
parent 805982c699559e6a0c5ca824faf598a56d0c071c
parent aab1c71225ba2b7e85d21e18632dcff9de227d6e
author openharmony_ci <120357966@qq.com> 1738919169 +0000
committer Gitee <noreply@gitee.com> 1738919169 +0000

!2359 add axisEvent capi
Merge pull request !2359 from zhouchaobo/axisEvent_capif^x,tree df6a3859713ba4f86a74f6ba9c3d363a6381e3d1
parent 805982c699559e6a0c5ca824faf598a56d0c071c
author wu_zhende <wuzhende2@huawei.com> 1738915739 +0800
committer wu_zhende <wuzhende2@huawei.com> 1738915739 +0800

OH_NativeArkWeb_LoadData修改为api15

Signed-off-by: wu_zhende <wuzhende2@huawei.com>
bxtree 6b734ccbeac231453de5fb560fc661b670ca5edb
parent 805982c699559e6a0c5ca824faf598a56d0c071c
author zhouchaobo <zhouchaobo@huawei.com> 1737616479 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1738913123 +0800

axisEvent

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Xxatree 324fe329184adf72735c20e914cf72f1a4df2b87
parent 131bda02b0d04b1cd4de1cb7201e7b587666794d
parent 039b2a2ae7c201a903255e14758a42912a77d594
author openharmony_ci <120357966@qq.com> 1738912510 +0000
committer Gitee <noreply@gitee.com> 1738912510 +0000

!2368 Gesture recognizer get capi add
Merge pull request !2368 from zhouchaobo/gesture_recognizer_c?kxYtree 2b034c6eb2eda0ba5fbd0b8c087349f6cea04f2b
parent 273d8336ccc38935f5a31e574651fc57cfed6776
parent f1eae729ae1990a07f827d82c3765011c439711b
author openharmony_ci <120357966@qq.com> 1738911500 +0000
committer Gitee <noreply@gitee.com> 1738911500 +0000

!2342 NODE_ON_CLICK_EVENT interface add
Merge pull request !2342 from zhouchaobo/clickeventBgٔxTtree 1de2aec36a0c6d68fef02c019a29fb68e280e675
parent 273d8336ccc38935f5a31e574651fc57cfed6776
author AnBetter <wangguan27@huawei.com> 1738909513 +0800
committer AnBetter <wangguan27@huawei.com> 1738909513 +0800

Progress组件支持strokeWidth/strokeRadius/enableSmoothEffect修改API版本

Signed-off-by: AnBetter <wangguan27@huawei.com>
 lvxtree 2b034c6eb2eda0ba5fbd0b8c087349f6cea04f2b
parent 273d8336ccc38935f5a31e574651fc57cfed6776
author zhouchaobo <zhouchaobo@huawei.com> 1737512752 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1738908095 +0800

clickevent

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
AY=x+tree feec96f63dd6bebdaf70d40a290bc3f5c031c927
parent 273d8336ccc38935f5a31e574651fc57cfed6776
author zhouchaobo <zhouchaobo@huawei.com> 1737885053 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1738906744 +0800

Gesture recognizer get capi add

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
b`˝xMtree 7c8bc3970f4786d09ca018b69b6a5e304c995152
parent a5ea6da1fb072f9a4f807f6d440b63e4652e85b5
parent 003f603d93041758f36abb21913f0b79b106ba0c
author openharmony_ci <120357966@qq.com> 1738901996 +0000
committer Gitee <noreply@gitee.com> 1738901996 +0000

!2345 chinese api ability
Merge pull request !2345 from zhouchaobo/capi_abilityd-x9tree 8318226c8c9b376ff945b8ef9eee24d993ea3fcc
parent 8895a0641c5a0cac40cfa509dcf94e89fa088c88
parent f2fde0227595cc12cadc7941677369f422f784ba
author openharmony_ci <120357966@qq.com> 1738901815 +0000
committer Gitee <noreply@gitee.com> 1738901815 +0000

!2354 next focus
Merge pull request !2354 from wc-huang/new]xNtree a4b8367e3c37dd9c376383e99505bc8cd78796dd
parent 540e92ae1f8946a5020649fad560ac73153371a9
parent 064a28835206902e7fd917c458c52d1b417450fe
author openharmony_ci <120357966@qq.com> 1738901203 +0000
committer Gitee <noreply@gitee.com> 1738901203 +0000

!2371 新增SetPacUrl、GetPacUrl接口
Merge pull request !2371 from jxw/masterp hxRtree 0095575a0dd67d9ea81fae446417cd89881275fc
parent 810cfce01464ebfc9cec043619974c61e4f78d2a
parent 6380799d5e21e5bab52ab6819c45a38c0f74033a
author openharmony_ci <120357966@qq.com> 1738900588 +0000
committer Gitee <noreply@gitee.com> 1738900588 +0000

!2388 修改API版本&添加权限错误码
Merge pull request !2388 from fox/masterpxtree 2e48e9133b8ba5204710aab2b0d234d18e36d3d5
parent 3b154b92af8ff616e1a5182f6976df377dfd7aa9
author hanKF <hanhu3@h-partners.com> 1738896968 +0800
committer hanKF <hanhu3@h-partners.com> 1738896972 +0800

补充json文件

Signed-off-by: hanKF <hanhu3@h-partners.com>
VVxtree b65c5efb48b35d7b86338b4868543f13fad243fc
parent 810cfce01464ebfc9cec043619974c61e4f78d2a
author l00844999 <lizhan12@huawei.com> 1738896934 +0800
committer l00844999 <lizhan12@huawei.com> 1738896934 +0800

drawing 规范修改
Signed-off-by: l00844999 <lizhan12@huawei.com>
VEx	tree fb8dcbd584f8bc5d6766ebb3488f801ed212bd6d
parent 0b343d8c997cc7bb7047799b6fe0877b7b9efd65
author hanKF <hanhu3@h-partners.com> 1738894699 +0800
committer hanKF <hanhu3@h-partners.com> 1738894704 +0800

修改声明

Signed-off-by: hanKF <hanhu3@h-partners.com>
Uܞxtree e48c81d18e9ef69090ba16a0ced4daa7033b7911
parent 810cfce01464ebfc9cec043619974c61e4f78d2a
author lihui <lihui359@huawei.com> 1738892259 +0800
committer lihui <lihui359@huawei.com> 1738892259 +0800

fix new format since 15

Signed-off-by: lihui <lihui359@huawei.com>
mRaxtree 11dabb1b638734fbb0ccc94ea0e5726f03407f9c
parent 79a1ac7752a845fc45cbb9ee29b0462220b3525c
author hanKF <hanhu3@h-partners.com> 1738890259 +0800
committer hanKF <hanhu3@h-partners.com> 1738890263 +0800

修改为api16

Signed-off-by: hanKF <hanhu3@h-partners.com>
yTxbtree feeeef28d11e8c989dcb29b965b3fe5c8e352981
parent 04ca4f1f26b72e1b5ae33ddfc45698e408a8df0d
parent 6e2e6348958f041de287d795212cde00f4d8881e
author openharmony_ci <120357966@qq.com> 1738851924 +0000
committer Gitee <noreply@gitee.com> 1738851924 +0000

!2284 [NDK]Remove redundant files from NDK
Merge pull request !2284 from 刘雅宁/remove_llvm_filesioxtree 647145f42213b7ea1cfc23cd050cf52715066a33
parent 04ca4f1f26b72e1b5ae33ddfc45698e408a8df0d
author 陈乔异 <chenqiaoyi2@huawei.com> 1738846579 +0800
committer 陈乔异 <chenqiaoyi2@huawei.com> 1738846579 +0800

修改 API 版本

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>
eHxtree e5da9e19475d8f07de1a0229f19c6cc04990529c
parent 446c3c4ea4faec213f1bf0d89e65d28af9d53121
author hanKF <hanhu3@h-partners.com> 1738844529 +0800
committer hanKF <hanhu3@h-partners.com> 1738844548 +0800

修改编译错误

Signed-off-by: hanKF <hanhu3@h-partners.com>
Yx	tree f017daa566f18440655ab110e525758dcd3aebfc
parent d62949d254cadb9acb2016c783db652fa92c7923
author hanKF <hanhu3@h-partners.com> 1738842807 +0800
committer hanKF <hanhu3@h-partners.com> 1738842811 +0800

修改注释

Signed-off-by: hanKF <hanhu3@h-partners.com>
yTxtree d627f280aee57ade70e19fc155576fcd1ea25a12
parent 746021ed65d6c928741b0ecab6b78bfd84a1c7f4
author hanKF <hanhu3@h-partners.com> 1737967124 +0800
committer hanKF <hanhu3@h-partners.com> 1738842552 +0800

add display callback

Signed-off-by: hanKF <hanhu3@h-partners.com>
iT'x  tree de598497d7d465b7baa7c1daeecc7f541730ea10
parent c3b2260ff13bfa09f554fda5191d3a3930056ec2
author fox <tanhong6@h-partners.com> 1738841950 +0800
committer fox <tanhong6@h-partners.com> 1738841950 +0800

ii

Signed-off-by: fox <tanhong6@h-partners.com>
4Nx tree b00e54863892d78e38fd31bd043819f0e47b6929
parent f507927d2dabdfbe5007d9f10b49946e61b1f210
author fox <tanhong6@h-partners.com> 1738841896 +0800
committer fox <tanhong6@h-partners.com> 1738841896 +0800

i

Signed-off-by: fox <tanhong6@h-partners.com>
I%LxLtree 61df9d0b0fd6c944fd02420d5cf4b258d233e2ab
parent 84f200bb68905871404ec8054087ade05cf9d964
parent 6469f4cffa807164693d4f21c353ef47ee911082
author openharmony_ci <120357966@qq.com> 1738841708 +0000
committer Gitee <noreply@gitee.com> 1738841708 +0000

!2369 Remove redundant function
Merge pull request !2369 from verystone/master_d6x tree 7d73e8cf165f6f576da964948fdcdb001c284f32
parent 541e7afd2d1e44c41770eed71d697e957a49ba5b
author fox <tanhong6@h-partners.com> 1738841290 +0800
committer fox <tanhong6@h-partners.com> 1738841290 +0800

i

Signed-off-by: fox <tanhong6@h-partners.com>
uMxtree 75da0f8893e8b8edf8e30a5b6856ed3da01de305
parent 8d0903de2a0980ef8bc3099f4504d60c84b57c80
author verystone <xudaqing@huawei.com> 1737890729 +0800
committer verystone <xudaqing@huawei.com> 1738839415 +0800

Remove redundant function

Signed-off-by: verystone <xudaqing@huawei.com>
[=xttree 6e30a8008d28d3050079d2b3fc5d936606fd2960
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
author liuyaning <liuyaning7@huawei.com> 1736300192 +0800
committer liuyaning <liuyaning7@huawei.com> 1738828893 +0800

Remove redundant files from NDK

Remove redundant files from NDK

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/IBGCTE
Signed-off-by: liuyaning <liuyaning7@huawei.com>
x&tree b05bfab27ad946f1c6ab215868ada8a27c2a5529
parent 84f200bb68905871404ec8054087ade05cf9d964
author l00844999 <lizhan12@huawei.com> 1738723366 +0800
committer l00844999 <lizhan12@huawei.com> 1738825811 +0800

Drawing themefont change api version
Signed-off-by: l00844999 <lizhan12@huawei.com>
 Wxptree e9a6066997c765ff5ab15b492e99ada88a9cc957
parent b0135b616dd2564fa1e0a90172df413c44979871
author zhanghangkai <zhanghangkai@huawei.com> 1737772758 +0800
committer zhanghangkai <zhanghangkai@huawei.com> 1738825600 +0800

add action type for xweb focus move

Signed-off-by: zhanghangkai <zhanghangkai@huawei.com>
Change-Id: Ibd0e732eb6e97035b08c399133def18dc90abd47
t.x<tree 4a0c9cd0395889e2788f454411dd7b1c68c758ca
parent 90dc9a19b198dfbbea5bf0db2db168b557ae4ad9
author 彼此彼此 <chenyuchen8@huawei.com> 1738806067 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1738806067 +0800

新增获取用户自定义属性接口

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
׀x<tree b479f12b1741d3b29b0b89e011868afae303cd2f
parent 84f200bb68905871404ec8054087ade05cf9d964
author 彼此彼此 <chenyuchen8@huawei.com> 1738805311 +0800
committer 彼此彼此 <chenyuchen8@huawei.com> 1738805311 +0800

新增获取用户自定义属性接口

Signed-off-by: 彼此彼此 <chenyuchen8@huawei.com>
3Z~מx^tree ea08e097ff682295314d1a1bf0e69219f04f1147
parent 746021ed65d6c928741b0ecab6b78bfd84a1c7f4
parent f02eac2d6e4bcc68bc7ca699056a3c88468eaa7d
author openharmony_ci <120357966@qq.com> 1738656024 +0000
committer Gitee <noreply@gitee.com> 1738656024 +0000

!2039 C-API遍历节点能力扩展需求接口文档
Merge pull request !2039 from 邹林肯/k2zRxItree 2c75f4bead2f378e756eb3e373ac2c6de9c9f104
parent 8566d2b767eb96e44878ec3e32ab0d75b09a0901
parent 7cbc41bd89e1d713c032829ec5f90331f532f581
author openharmony_ci <120357966@qq.com> 1737952064 +0000
committer Gitee <noreply@gitee.com> 1737952064 +0000

!2360 补充format说明
Merge pull request !2360 from 杨俊晖/0123modify=iKx<tree 6810a25c7fb062244b43d1e956b5f7012c7bafba
parent 8d0903de2a0980ef8bc3099f4504d60c84b57c80
parent 541e7afd2d1e44c41770eed71d697e957a49ba5b
author openharmony_ci <120357966@qq.com> 1737949731 +0000
committer Gitee <noreply@gitee.com> 1737949731 +0000

!2364 新增NDK接口
Merge pull request !2364 from fox/masterzaȕx%tree 1d552c088f198e2df9ac03fb3ca108d376e2ed70
parent 87059560044f591dad8bd27ff9d09f361febda8d
author jxw <jiexiwen@huawei.com> 1737900929 +0000
committer Gitee <noreply@gitee.com> 1737900929 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: jxw <jiexiwen@huawei.com>^hxtree d83827f853f02be67d39f1156833541e3cc56cba
parent 19d5bfd1d9d6516b1b62830ff8e17b918100d5c3
author jxw <jiexiwen@huawei.com> 1737896545 +0000
committer Gitee <noreply@gitee.com> 1737896545 +0000

update network/netssl/libnet_ssl_c.json.

Signed-off-by: jxw <jiexiwen@huawei.com>0Xoxtree 258da35b539ade5232d01d520a15e8024fb5c717
parent 8d0903de2a0980ef8bc3099f4504d60c84b57c80
author jxw <jiexiwen@huawei.com> 1737895994 +0000
committer Gitee <noreply@gitee.com> 1737895994 +0000

update network/netssl/include/net_ssl_c.h.

Signed-off-by: jxw <jiexiwen@huawei.com>dXx(tree 5d4f39dd186194a4a3673add5247f8754a432c67
parent 0f562cdd341503f9aed0016600c62c908e735d79
author jxw <jiexiwen@huawei.com> 1737893831 +0000
committer Gitee <noreply@gitee.com> 1737893831 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: jxw <jiexiwen@huawei.com>P^$x#tree 265c3e67cb3b3c00fef4aebfb530bd9a49c85267
parent 8d0903de2a0980ef8bc3099f4504d60c84b57c80
author jxw <jiexiwen@huawei.com> 1737893783 +0000
committer Gitee <noreply@gitee.com> 1737893783 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: jxw <jiexiwen@huawei.com>.]Yxgtree 36f8e2abc10b67371fa34d027dc652f8e6e4c515
parent 872368afcbe593b8d14bb6a814e4860a98351d42
parent 2a0e40b9a1bd6afb7bd8d05a6e830e99ef4770b5
author openharmony_ci <120357966@qq.com> 1737887779 +0000
committer Gitee <noreply@gitee.com> 1737887779 +0000

!2323 bug: Optimization get paste data progress interface
Merge pull request !2323 from sunxuejiao/mastero8x tree 5d43cdcd22a6fe9d275a267bd6b25a2658417a79
parent ec0ec9e906c2268cf3f4206589473d36a84d53a3
author fox <tanhong6@h-partners.com> 1737881942 +0800
committer fox <tanhong6@h-partners.com> 1737881942 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
\N'x tree a476576b55cf4195fff73d6920ee0436877a827e
parent ab79c005f7e50c08cf730ba90485953998f0bd96
author fox <tanhong6@h-partners.com> 1737881809 +0800
committer fox <tanhong6@h-partners.com> 1737881809 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
Mx tree e749896f2fa0788573c7ae758eba727adbb2f298
parent c2d5792cf4918a4866651606fe821d4e21f9969f
author fox <tanhong6@h-partners.com> 1737879051 +0800
committer fox <tanhong6@h-partners.com> 1737879051 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
&ZMx tree 4c19e2a656df63e7115cf978ce69d5740fcc1aee
parent d3afe47355f8d52877817426954af37efe069ee8
author fox <tanhong6@h-partners.com> 1737878906 +0800
committer fox <tanhong6@h-partners.com> 1737878906 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
NNx tree 8668c6ba79827648cc228d21a3d1f6e0fa834687
parent 847709b1ee4154bdc88c68e1842f0f0503250d90
author fox <tanhong6@h-partners.com> 1737878588 +0800
committer fox <tanhong6@h-partners.com> 1737878588 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
MWx tree 711f4d3a4c7adb1ff8031419767889f875bd313e
parent b9bbfe3a7579c9732ba48efc61afaaf6da6d11a6
author fox <tanhong6@h-partners.com> 1737877799 +0800
committer fox <tanhong6@h-partners.com> 1737877799 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
Ocx tree 30be2cdf1a61584ff6c26c792ba5502273b2b376
parent 1c2c38e3d5966af9e063e4510a211a28e999162a
author fox <tanhong6@h-partners.com> 1737876571 +0800
committer fox <tanhong6@h-partners.com> 1737876571 +0800

iii

Signed-off-by: fox <tanhong6@h-partners.com>
tMx?tree 109abf5904a4012f0302770006d0af7af54c035d
parent b0135b616dd2564fa1e0a90172df413c44979871
parent b70edf34d2325b9eb1f4cb987f7d3c2f1051f094
author openharmony_ci <120357966@qq.com> 1737799488 +0000
committer Gitee <noreply@gitee.com> 1737799488 +0000

!2309 修改版本号
Merge pull request !2309 from 刘丰/mastere?xYtree 5252364b0bc654216ec9dff3d846cea7a4c25ce9
parent 016edc77ab04738a1f9a0f1d824176b379f9af87
parent 1f3722332eef7759d6f79e075d46c71fdd973fb8
author openharmony_ci <120357966@qq.com> 1737735133 +0000
committer Gitee <noreply@gitee.com> 1737735133 +0000

!2352 支持非标外设扩展驱动-USBSerial
Merge pull request !2352 from Gao Rui/serial7rbx  tree f8c5b6d2a7ea174ad03598e79324c17d9b11ccc4
parent 72aaf1a1ee967f88c99aec5def5c76ff6c9c51a1
author fox <tanhong6@h-partners.com> 1737717953 +0800
committer fox <tanhong6@h-partners.com> 1737717953 +0800

ii

Signed-off-by: fox <tanhong6@h-partners.com>
MOFx  tree c871f5293074c137f521877bea65d0c4b5a2b666
parent 91fcbfa8b06803ab4a9b8f55651c8d08aea00721
author fox <tanhong6@h-partners.com> 1737716129 +0800
committer fox <tanhong6@h-partners.com> 1737716129 +0800

ii

Signed-off-by: fox <tanhong6@h-partners.com>
KMxVtree a3174422aa9d4832ec7df34f2084bd5a06eb8603
parent 1bd3304252f6f898ed93bccaff1433aa87353f30
parent f4a7088af2d54d1d737a7d9f10ba68fde36ab6a9
author openharmony_ci <120357966@qq.com> 1737711432 +0000
committer Gitee <noreply@gitee.com> 1737711432 +0000

!2356 add operate hand info in touchEvent
Merge pull request !2356 from youbing54/masterQQgxKtree 46698e1c9a94187736bd6b36c51671d1aee7fd9a
parent c2d19098f923f3a6ecfe89324bda26384b1d997c
parent 7fb879c4b2c231c05ca3df1aedc385f9949bd4a8
author openharmony_ci <120357966@qq.com> 1737690771 +0000
committer Gitee <noreply@gitee.com> 1737690771 +0000

!2320 Input_KeyEvent、Input_MouseEvent、Input_TouchEvent、Input_AxisEvent增加对应的windowId和displayId属性的set、get接口
Merge pull request !2320 from w00416770/masterx_tree 74203466866945a8effbd248ecb1cdf5856987e7
parent 488a57b576de707f171df13be5c0a7d57c93ad28
author youbing54 <youbing3@huawei.com> 1737604331 +0800
committer youbing54 <youbing3@huawei.com> 1737681727 +0800

IssueNo: https://gitee.com/openharmony/interface_sdk_c/issues/IBJG23
describe: add operate hand info in touchEvent
Feature or Bugfix: Feature
Binary Source:Yes
Signed-off-by: youbing54<youbing3@huawei.com>
vMxKtree 1bbd8b7fe67f06e92376b86d67eefe3cd895f780
parent b028da1cc52584b463160df6cbbeff3ad7d76546
author yangmaoquan@chinasoftinc.com <yangmaoquan@chinasoftinc.com> 1736584053 +0800
committer yangmaoquan@chinasoftinc.com <yangmaoquan@chinasoftinc.com> 1737626472 +0800

支持非标外设扩展驱动-USBSerial

Signed-off-by: yangmaoquan@chinasoftinc.com <yangmaoquan@chinasoftinc.com>
Change-Id: Icaa6e83dd6d1da52b93fd69d167ba3194ec33636
9Fxtree 8fad31df025f37f0ab2003e54f6b0eb24462a0cb
parent c2d19098f923f3a6ecfe89324bda26384b1d997c
author zoulinken <zoulinken1@huawei.com> 1737621497 +0800
committer zoulinken <zoulinken1@huawei.com> 1737622151 +0800

提交lazy遍历接口

Signed-off-by: zoulinken <zoulinken1@huawei.com>
naxtree 46698e1c9a94187736bd6b36c51671d1aee7fd9a
parent f4ee80a1f73bec125cf30e0db09dbb699d6ee991
parent c2d19098f923f3a6ecfe89324bda26384b1d997c
author w00416770 <wangkangkang2@huawei.com> 1737619921 +0000
committer Gitee <noreply@gitee.com> 1737619921 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: w00416770 <wangkangkang2@huawei.com>xFxVtree 467d75cd61ed778bfee4f34076ec3ca07bbd94af
parent f3239076dff5c67500141c96a5417149cfd9c5f8
author y30025806 <yangjunhui10@huawei.com> 1737618656 +0800
committer y30025806 <yangjunhui10@huawei.com> 1737618656 +0800

补充format说明

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: Ie98157a07bbd3f2c28c406b0471fec397d87ac0d
ixLtree 2968d15681690d939ec32950156177528e25b4ec
parent f3239076dff5c67500141c96a5417149cfd9c5f8
parent 573640dfd6870b67b136a3dcad880dd3475f9d6e
author openharmony_ci <120357966@qq.com> 1737617359 +0000
committer Gitee <noreply@gitee.com> 1737617359 +0000

!2328 set and get capslock state
Merge pull request !2328 from Dragon51/master"bxtree 711329fd4db35d358b6981c764960e7c5db6cf49
parent 1d360604eacfd9c81556645639663144400d1439
author wc-huang <1454579418@qq.com> 1737600931 +0800
committer wc-huang <1454579418@qq.com> 1737616115 +0800

next focus

Signed-off-by: wc-huang <1454579418@qq.com>
HKxatree f91e0b43ceca583133d3bee31963f3f6c581d7de
parent efaf92ebfff193cc735602d743dd69c5bf4b8093
parent 28492e95b3a391e5b527459755ec3167d397d841
author openharmony_ci <120357966@qq.com> 1737615301 +0000
committer Gitee <noreply@gitee.com> 1737615301 +0000

!2293 【JSVM】添加JITless模式下失败状态码
Merge pull request !2293 from greensue/jitAcl$Swxtree 6199b94c038f1153686a5cb51d92b343fd85d19b
parent fc2809607513a33542cdab1ac5c4b87b0e4b5b9d
author zhouchaobo <zhouchaobo@huawei.com> 1737614875 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1737614875 +0800

capi_ability2

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
6YBxFtree 434cb2c575e78c18a35c4d88ac41b249ad83c577
parent 488a57b576de707f171df13be5c0a7d57c93ad28
parent 4c05fb490039edb7625f19a93a3db8c19cde2648
author openharmony_ci <120357966@qq.com> 1737613039 +0000
committer Gitee <noreply@gitee.com> 1737613039 +0000

!2050 NDK接口添加
Merge pull request !2050 from wangdongyusky/master}f"xbtree 2db606281df8aef63080f721c61873716576df7e
parent 644c3f0176c6d6be693f30660ceaef85e83526e8
parent 062ac446ea6adc3caa018e0716c4a120f1640d3f
author openharmony_ci <120357966@qq.com> 1737603202 +0000
committer Gitee <noreply@gitee.com> 1737603202 +0000

!2306 native window deprecated GET_STRIDE/SET_STRIDE
Merge pull request !2306 from 李辉/window1023Dkzxtree ae248fcc29a7e187e70828da2d1aca546365a47a
parent df0513987daeeebc6416b98a37fc57fc65c2d3ff
author 尹耀德 <yinyaode1@huawei.com> 1737534727 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1737601444 +0800

asset add wrap

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
[_xktree 61fb68e4c0cb6753225762a663a0ce53cbe00d9e
parent 1d360604eacfd9c81556645639663144400d1439
parent 3e15825bac9c11348710866667577ad3858540cf
author openharmony_ci <120357966@qq.com> 1737601431 +0000
committer Gitee <noreply@gitee.com> 1737601431 +0000

!2314 Swiper新增onContentWillScroll接口
Merge pull request !2314 from xuzhidan/swiper_onContentWillScroll"sxrtree 7d6a526c424b1960a1aa92654c859d707d1dfffa
parent e522ea9f7841a092fef55231ed602fe1196211c4
parent 2cc9108341774ceef8971ba4d173ccdf868e0e19
author openharmony_ci <120357966@qq.com> 1737550424 +0000
committer Gitee <noreply@gitee.com> 1737550424 +0000

!2332 CAPI：支持backgroundImageResizable属性设置slice
Merge pull request !2332 from 胡清云/background_0118yQ|	xTtree ee517897641fc970f7c517b1b64f5a890a6a13aa
parent 91fcbfa8b06803ab4a9b8f55651c8d08aea00721
parent ac55a15a395355e60610a1941d2efad69c13fefd
author openharmony_ci <120357966@qq.com> 1737548108 +0000
committer Gitee <noreply@gitee.com> 1737548108 +0000

!2260 5.1版本ces新增napi接口
Merge pull request !2260 from sunjiakun/ces_5.1_ndkϦlx\tree c8ceac245bd6ed0ff5fb5e8fb8ee849a1a607df8
parent cc5c38055384f27ee07683f1c3505589fd55cf6e
parent d743f7f4cdc78dc7cfa761d999509ba1b5eee8b3
author openharmony_ci <120357966@qq.com> 1737539035 +0000
committer Gitee <noreply@gitee.com> 1737539035 +0000

!2340  API16新增视频软解MPEG2/MPEG4接口
Merge pull request !2340 from 李建超/masteru3xBtree e698ce42dbe0901152ed293bc89ecbac2e99683b
parent bf227519a2663501c0109ba23b1312b4710ebf02
author sunxuejiao <sunxuejiao8@huawei.com> 1737010159 +0800
committer sunxuejiao <sunxuejiao8@huawei.com> 1737538394 +0800

bug: Optimization get paste data progress interface

Signed-off-by: sunxuejiao <sunxuejiao8@huawei.com>
jhxQtree dbad5949461c8de8af65e3d53654d31eba3aec76
parent df0513987daeeebc6416b98a37fc57fc65c2d3ff
parent e0e2a10173145224ce100815074464a2db58b106
author openharmony_ci <120357966@qq.com> 1737535047 +0000
committer Gitee <noreply@gitee.com> 1737535047 +0000

!2344 增加后台进程主动压制API
Merge pull request !2344 from Bagwey/masteroܜx\tree df60f9e2b96f16b94adb64750350a839c35c33c5
parent df0513987daeeebc6416b98a37fc57fc65c2d3ff
author xuzhidan <xuzhidan1@huawei.com> 1737533166 +0800
committer xuzhidan <xuzhidan1@huawei.com> 1737533166 +0800

Swiper add onContentWillScroll C-API

Signed-off-by: xuzhidan <xuzhidan1@huawei.com>
Change-Id: I2abc9e12923dd9caaa34e7821a11f9b07448b56f
mxTtree a03e4b39615625520d9d843a137a6001cb761511
parent 416e17734b513c13e228004a2493fa4dcfe6309b
author caochuan <caochuan@huawei.com> 1737515751 +0800
committer caochuan <caochuan@huawei.com> 1737531385 +0800

图片框架支持ARGB编解码

Signed-off-by: caochuan <caochuan@huawei.com>
Change-Id: I646b5220784837609087bb5b508b3ec100d950ef
"nxXtree 1ca9acb2a1c8448cad097e9fd172434f9a606e0d
parent bf6d65b9252eee4786f3b598e617f7c8a5028cee
parent d31b2b220ff573d1ad5aab71317a9b84af12fa3c
author openharmony_ci <120357966@qq.com> 1737529064 +0000
committer Gitee <noreply@gitee.com> 1737529064 +0000

!2310 Swiper/Tabs增加onUnselected事件回调
Merge pull request !2310 from sunqi/masterpxVtree 687d7372ab7c71fa7792380b35a09720ea9ae027
parent ed175626c0af924d72b7d36e207f2b9fb17f2b5d
parent 68a4d50b0f8b991fce3bc436279b63243c0d1ca6
author openharmony_ci <120357966@qq.com> 1737519010 +0000
committer Gitee <noreply@gitee.com> 1737519010 +0000

!2280 add avrecorder ndk interfaces revision
Merge pull request !2280 from Steven/mastergxHtree fbbd3b8ab0c715e1ca41a434ab7ec99724b4ff16
parent 72ea01cf66181a54880a5ae931e209943f60908c
parent 3b08539273715d6f4b9534681f634092c97c7689
author openharmony_ci <120357966@qq.com> 1737517310 +0000
committer Gitee <noreply@gitee.com> 1737517310 +0000

!2331 xcomponent 多实例
Merge pull request !2331 from pengzhiwen/masterIdxtree 0c58956bfb9b6907cf39e4e0ee50ba44e44d504d
parent 7e6626ccdbd4babfba058a81c0ef84865e9c50c8
author zhouchaobo <zhouchaobo@huawei.com> 1737513674 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1737513674 +0800

capi_ability

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
;Zix}tree 28db124136a430283c9ade1e50fdac78b773ee42
parent 397472d445953720a4f520f3f98c4f14a78a66ba
parent 72ea01cf66181a54880a5ae931e209943f60908c
author zhouchaobo <zhouchaobo@huawei.com> 1737513523 +0000
committer Gitee <noreply@gitee.com> 1737513523 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into capi_ability

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>+vzxtree 43876c2e65aa65c5671b416bf256effd9baff766
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author zhouchaobo <zhouchaobo@huawei.com> 1737513136 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1737513136 +0800

capi_ability

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
yZ4x tree d5cf7bc456e91c99a6d9a06c90ffee09c95a0641
parent 72ea01cf66181a54880a5ae931e209943f60908c
author Bagwey <baijiangwei1@huawei.com> 1737512882 +0800
committer Bagwey <baijiangwei1@huawei.com> 1737512882 +0800

add background process API

Signed-off-by: Bagwey <baijiangwei1@huawei.com>
!Yxtree bf90ecdf910aa43009916d7af79371485b85aa67
parent 72ea01cf66181a54880a5ae931e209943f60908c
author SQ <sunqi57@huawei.com> 1737460829 +0800
committer SQ <sunqi57@huawei.com> 1737511482 +0800

Swiper/Tabs增加onUnselected事件回调

Signed-off-by: SQ <sunqi57@huawei.com>
(Z4x8tree c8b73cb629755d47655012d10d55b91b3c0ead91
parent 72ea01cf66181a54880a5ae931e209943f60908c
author 刘汶谏 <liuwenjian5@huawei.com> 1737511270 +0000
committer Gitee <noreply@gitee.com> 1737511270 +0000

Set the longest duration allowed for current recording

Signed-off-by: 刘汶谏 <liuwenjian5@huawei.com>WhxYtree d397f5b2bfe2501879e5f338a6cf4b1aac69a846
parent 72ea01cf66181a54880a5ae931e209943f60908c
author li-jianchao1993 <lijianchao9@huawei.com> 1737468815 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1737509097 +0800

【修改说明】 API16新增视频软解MPEG2/MPEG4接口

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
gLy?x"tree 6dc5ac3b56fca1620c5cfd44a3b44634ae439499
parent b086b8227a9fc4d45c4eefe0cb5268c23efc4839
author greensue <shulin3@huawei.com> 1736405181 +0800
committer greensue <shulin3@huawei.com> 1737461072 +0800

jit acl:add jit error retrurn  status

Signed-off-by: greensue <shulin3@huawei.com>
\xYtree b8732c8bdbbbae21d476a206aa58e02d090ae4a6
parent 7c4d81b4dd93242d1fa2daa463056326e5767a90
parent ca2ba54ad986dc022dc87cd17f0c0a60b6d231f6
author openharmony_ci <120357966@qq.com> 1737456884 +0000
committer Gitee <noreply@gitee.com> 1737456884 +0000

!2339 CAPI新增onSelected回调
Merge pull request !2339 from zhanghang/develop_onSelected+nxKtree 41181f915e5e9364dcd8914a0885398c2450c63b
parent 24050077821a231d0a16e285ab3e5852750e5354
author zhanghang <zhanghang160@huawei-partners.com> 1737448861 +0800
committer zhanghang <zhanghang160@huawei-partners.com> 1737448861 +0800

CAPI新增swiper onSelected回调

Signed-off-by: zhanghang <zhanghang160@huawei-partners.com>
xbl\x=tree 0a98fde1c7d8cdbf3c4920603f21286bef54996e
parent 7aef2d80f3f9d18b28b156079d65d87e8e7cdc41
author 刘丰 <liufeng236@h-partners.com> 1737446154 +0000
committer Gitee <noreply@gitee.com> 1737446154 +0000

update drivers/external_device_manager/usb/usb_ddk_types.h.

Signed-off-by: 刘丰 <liufeng236@h-partners.com>tjx;tree 6ad81bd8ff669891e37be9144310702c52ba3b5d
parent 484622d4edb263003e019055caf6af5f4c39163c
author 刘丰 <liufeng236@h-partners.com> 1737445975 +0000
committer Gitee <noreply@gitee.com> 1737445975 +0000

update drivers/external_device_manager/usb/usb_ddk_api.h.

Signed-off-by: 刘丰 <liufeng236@h-partners.com>.hxrtree 77fdbdaaefa291434ca9497e5859c2011306f215
parent 416e17734b513c13e228004a2493fa4dcfe6309b
parent a7842976bb92dfcc557cc0271e13b1d1f2928461
author openharmony_ci <120357966@qq.com> 1737445478 +0000
committer Gitee <noreply@gitee.com> 1737445478 +0000

!2208 新增CAPI枚举 - WaterFlow布局模式、滚动容器clipContent
Merge pull request !2208 from 周沺耳/dev,xttree 9faabd0dad7e5eeb887bcd2e3b1d5bb0ff446f4e
parent 5c43a9e093e864697d8955eb7d6d226513702ea2
author huqingyun <huqingyun1@huawei.com> 1737202155 +0800
committer huqingyun <huqingyun1@huawei.com> 1737443266 +0800

CAPI：支持backgroundImageResizable属性设置slice

Signed-off-by: huqingyun <huqingyun1@huawei.com>
Change-Id: I9f86880cbf6e8e5f4b05d6fa88bee1a189eed8aa
T4xRtree 6dfb88eaafe2c7764833c9e63a87a74768837598
parent a600a356baffcd9e194896e79be2228af0dbee65
parent 67fe71d946de61c4ea1bf1aecc93bb9de1b30780
author openharmony_ci <120357966@qq.com> 1737430748 +0000
committer Gitee <noreply@gitee.com> 1737430748 +0000

!2087 补充注释并消除代码差异
Merge pull request !2087 from 邹林肯/lhcyXuxRtree 59dff0f53fdf760f3dd2ac6c39f38caf78a2ef32
parent a8280b525c760fb12d6f7248c3f469c7e0b1fd8f
author Tianer Zhou <zhoutianer@huawei.com> 1737425032 +0800
committer Tianer Zhou <zhoutianer@huawei.com> 1737425032 +0800

merge conflict

Change-Id: I15f12eb72a9ffe15f036876442302cdf4d062b3a
Signed-off-by: Tianer Zhou <zhoutianer@huawei.com>
D3ixLtree 04fe1696d78e06841dba74e328122f8c5e746788
parent 5502603bf3552b95fec1c59cea82032cd628ca17
author Tianer Zhou <zhoutianer@huawei.com> 1737095500 +0800
committer Tianer Zhou <zhoutianer@huawei.com> 1737424994 +0800

fix enum

Change-Id: If95d25b55bb80b4df99d5d899112f92ef95c3887
Signed-off-by: Tianer Zhou <zhoutianer@huawei.com>
zxexQtree f1ba8bed4ff76a8fafa72235f140f191bfbc6112
parent a600a356baffcd9e194896e79be2228af0dbee65
author Tianer Zhou <zhoutianer@huawei.com> 1735354542 +0800
committer Tianer Zhou <zhoutianer@huawei.com> 1737424994 +0800

add interface

Signed-off-by: Tianer Zhou <zhoutianer@huawei.com>
Change-Id: I449f817ebcf94543b8b2514abddc6e394f5b12df
jx^tree d13287ae5cb5d270d7a85420c1b968ae08eb9069
parent aa1c639115fa808ad654d64af3d527280afb82b0
parent 20dc5bb737ba6c5ef10010945d221da76c203bab
author openharmony_ci <120357966@qq.com> 1737380614 +0000
committer Gitee <noreply@gitee.com> 1737380614 +0000

!2334 新增CAPI接口NODE_SCROLL_BACK_TO_TOP
Merge pull request !2334 from zhanghang/backToTop1lxptree c423e71993c0b480bb2bed1e777fb10431bf2d6a
parent 6979e342955938dd5193417225e754bca3cb56b8
parent 15f0992a05890acee47dd4af57e1305612131f6a
author openharmony_ci <120357966@qq.com> 1737374321 +0000
committer Gitee <noreply@gitee.com> 1737374321 +0000

!2102 新增OH_ImageSourceNative_CreatePixelmapUsingAllocator接口
Merge pull request !2102 from caochuan/DMA_NDKdtxtree c423e71993c0b480bb2bed1e777fb10431bf2d6a
parent 6979e342955938dd5193417225e754bca3cb56b8
author caochuan <caochuan@huawei.com> 1737352379 +0800
committer caochuan <caochuan@huawei.com> 1737366176 +0800

Add DMA ndk api.

Signed-off-by: caochuan <caochuan@huawei.com>
Sxtree 625ff6f14df61addb88a1006e8781dbb41abf25f
parent 9137877c04d1fa74bec70c4ab5e33d1e87ce4ac0
author sunjiakun <sunjiakun5@huawei.com> 1736168841 +0800
committer sunjiakun <sunjiakun5@huawei.com> 1737340806 +0800

add ces_5.1_ndk

Signed-off-by: sunjiakun <sunjiakun5@huawei.com>
iXxLtree 8adf21c978b5288fa71f99d079d35e9e41fe7e1a
parent 6582a065dcea2a454069a9ad620c9f1af72f1da7
parent 152867cf509e1ab7f2d39587c936f2c250e21187
author openharmony_ci <120357966@qq.com> 1737338637 +0000
committer Gitee <noreply@gitee.com> 1737338637 +0000

!2319 backdropBlur cAPI接口
Merge pull request !2319 from chenxiaoxue/master{fx[tree 720e01af5e09cebae6785e61d204ea919ec90185
parent 5c43a9e093e864697d8955eb7d6d226513702ea2
parent 524dea4a5efb7daa62616b979e45bb33da85ae6b
author openharmony_ci <120357966@qq.com> 1737292123 +0000
committer Gitee <noreply@gitee.com> 1737292123 +0000

!2325 修改OH_ArkUI_FocusRequest接口注释
Merge pull request !2325 from wc-huang/code0116]oxXtree 98436b35c034ace1e637f1f635388c2d6ba8d2ba
parent 041d7bd5d8acebbd23153f90c3ed4a0db7d21d07
parent 49559a6544f6b035134ff78063b4ae7e4d042fbb
author openharmony_ci <120357966@qq.com> 1737195091 +0000
committer Gitee <noreply@gitee.com> 1737195091 +0000

!2329 checkboxgroup-capi修改
Merge pull request !2329 from Tintin9529/checkboxgroup-capikOxltree b2908ac2a921a9e7da40d33ffb782293f8a88a45
parent d3cd1e66b196a32b38b997f7002a973c563bfe64
author w00416770 <wangkangkang2@huawei.com> 1736932755 +0800
committer w00416770 <wangkangkang2@huawei.com> 1737192905 +0800

Input_KeyEvent、Input_MouseEvent、Input_TouchEvent、Input_AxisEvent增加对应的windowId和displayId属性的set、get接口

Signed-off-by: w00416770 <wangkangkang2@huawei.com>
ԑxitree f6eb2a60de3d01424ba0fa4f6fb8e2891c5a4ecb
parent 41bb21ccae7d7c323e6628bf27ba615b61d9b045
parent 17a986429b55e846ba9f489d0fa300098b45f778
author openharmony_ci <120357966@qq.com> 1737188260 +0000
committer Gitee <noreply@gitee.com> 1737188260 +0000

!2271 CalendarPicker支持当天高亮禁用时间范围
Merge pull request !2271 from Zhang Jinyu/calendar],{xtree 978071f81353b60bdc820116d26cfc4130a97b61
parent 811ea92008ac938d083308dfa9ce70f04d729ec5
author cailei24 <cailei24@huawei.com> 1737186270 +0000
committer Gitee <noreply@gitee.com> 1737186270 +0000

增加aac封装能力

Signed-off-by: cailei24 <cailei24@huawei.com>+WxYtree ac5aa73ee8089d0ba6ba09f76e8a611b0f74a87f
parent d414bdee778cd71e0825d564f709637cf9534fcf
author Tintin9529 <tantingting5@huawei.com> 1737173586 +0800
committer Tintin9529 <tantingting5@huawei.com> 1737182282 +0800

checkboxgroup-capi

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
Change-Id: Ia94d47f48d32bdda6219c0311686985609022fd2
iĘxHtree bef4d085e3734ffebdfbe48ef11e0005bac1fcfb
parent 5e76c1c1a2f3797b571b957353ebd7d0105c0def
parent 718ba07139b10d57e00cf33e12bc0b61192ac2e9
author openharmony_ci <120357966@qq.com> 1737179668 +0000
committer Gitee <noreply@gitee.com> 1737179668 +0000

!1975 add get UDMF data c-api
Merge pull request !1975 from liukaii/masterжbxktree d4cf4517a489c5576e0176cdb6f39f4b74a25833
parent d414bdee778cd71e0825d564f709637cf9534fcf
parent 28f988176c33044e103c70f8c74528b808a693d4
author openharmony_ci <120357966@qq.com> 1737169862 +0000
committer Gitee <noreply@gitee.com> 1737169862 +0000

!2326 fix dialog new api：指定避让键盘的 距离
Merge pull request !2326 from Tintin9529/branch250116vxJtree 14a076e9661abdf07427f2980bc4c75cac94e866
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author Zhang Jinyu <zhangjinyu101@huawei.com> 1737166448 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1737166448 +0800

CalendarPicker支持当天高亮禁用时间范围

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
uxttree ef679a9e5317cfe7cb32757d751cefb330fd16ef
parent 898b1ccdd4e7bab5db7b31dc3b1b7b84a5f85ea5
parent d414bdee778cd71e0825d564f709637cf9534fcf
author liukaii <liukai240@huawei.com> 1737120294 +0000
committer Gitee <noreply@gitee.com> 1737120294 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: liukaii <liukai240@huawei.com>cvxjtree efcdb5e89e19d10da32e1d17a28003a5dae60918
parent 279280828f185e4b8d0fc17087a08fbec55479a4
parent 5ec23a5b63fa0cf0816e2bc7405fdf5fbff1a7f0
author openharmony_ci <120357966@qq.com> 1737119978 +0000
committer Gitee <noreply@gitee.com> 1737119978 +0000

!2098 CAPI-XComponent上补齐Surface控制能力和AI能力
Merge pull request !2098 from sd_wu/surfaceai51qyxDtree 30a30472cb15e107881045532c3ec323b03c990f
parent ea32abb64ccad8ff3b16d8b527182aae1574b233
parent d31fd4740dd3d20bb23bce5bf3d674def4356ab1
author openharmony_ci <120357966@qq.com> 1737110538 +0000
committer Gitee <noreply@gitee.com> 1737110538 +0000

!2324 更改api注释
Merge pull request !2324 from wangweiyuan/mastereӖxVtree 17c5cd611017a7d2888e579bdec84076f45a119e
parent 638ea4f60f317a889b1c479eb68b6b0d3ae71c6a
parent f9c08f557c72e27e47a06ed8d7a6b15447803417
author openharmony_ci <120357966@qq.com> 1737109472 +0000
committer Gitee <noreply@gitee.com> 1737109472 +0000

!2235 设置跨语言属性能力接口
Merge pull request !2235 from 邹林肯/sdkcrossux{tree 88c8f577b0486b3fa64611327bd86c6d71ac237c
parent 92ef19fc1d4613d0c5c63ebabf3d3b5f43f82ecd
parent 638ea4f60f317a889b1c479eb68b6b0d3ae71c6a
author sd_wu <wudongsheng3@huawei.com> 1737108722 +0000
committer Gitee <noreply@gitee.com> 1737108722 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into surfaceai51

Signed-off-by: sd_wu <wudongsheng3@huawei.com>ylx'tree 4842a546a864cb08c73f51745f205aba7fa5c41f
parent abd5b7457e7575432e68e033900aa2ce2c989305
author sd_wu <wudongsheng3@huawei.com> 1735788794 +0800
committer sd_wu <wudongsheng3@huawei.com> 1737108673 +0800

add xcomponent ai image analyzer api

Signed-off-by: sd_wu <wudongsheng3@huawei.com>
]xtree edb21dad92a7285e1eeecf61e0c12b394a7dab91
parent 2049662a7cf8eddc7f22d9f0cb3647670bbf28af
author lihui <lihui359@huawei.com> 1737104398 +0800
committer lihui <lihui359@huawei.com> 1737104398 +0800

change buffer handle brief

Signed-off-by: lihui <lihui359@huawei.com>
Tؕx5tree b75529d20e0c6596cedd5b98a173415ad2132d1d
parent 32a1b2ed560ec026e12cf5cfdfb559030ae6f5e4
author Steven <duanzhengteng@huawei.com> 1737103364 +0000
committer Gitee <noreply@gitee.com> 1737103364 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>dxdtree 46362e23787483ee935a193403a203c0ce6009d9
parent 21a444237fad1ebb2f8cb7f89e0af437c9524a27
parent 44c36b30cc3ae091b787becf246b9350ddc817de
author openharmony_ci <120357966@qq.com> 1737103047 +0000
committer Gitee <noreply@gitee.com> 1737103047 +0000

!1878 【CAPI】Button新增ROUNDED_RECTANGLE类型
Merge pull request !1878 from yyuanche/button_typeaqsx\tree 7e58ddf3c861eebd4baa9d92e88eaa4c529860e2
parent 811ea92008ac938d083308dfa9ce70f04d729ec5
parent d7edfbb5b228a07ae4f40628418aea91a5c333c9
author openharmony_ci <120357966@qq.com> 1737100703 +0000
committer Gitee <noreply@gitee.com> 1737100703 +0000

!2312 Feature: limitFingerCount_CAPI
Merge pull request !2312 from zhouchaobo/limitFingerCountƄk`xStree 9f232a9d34a3c273b4752058fc5c2d92b8cdb162
parent 1da9453b35ab4c7d8b789cbc27e23be1bf0d5338
parent dfa946857d5938ed2d35ac428830236202e665c6
author openharmony_ci <120357966@qq.com> 1737095958 +0000
committer Gitee <noreply@gitee.com> 1737095958 +0000

!2327 Drawing 增加gpu绘制接口补充
Merge pull request !2327 from yzj688/master_,mxUtree da7fbc6821a99924f110fd1588ff0f295e205245
parent 1fb6150d1ee674c9a22d35756577aa2754b95739
parent 371bbb115374e157c7e830e74ba9c786e7bf50e1
author openharmony_ci <120357966@qq.com> 1737095808 +0000
committer Gitee <noreply@gitee.com> 1737095808 +0000

!2300 slider  支持音效振动
Merge pull request !2300 from Tintin9529/slider_haptic\kqx|tree 58d338ed4f7099e8532f16f09d9855871bf437f0
parent 1bcfbebb79112a021ccb2e3ab0a95e8e11fa4da7
parent c6fef79d4e0ed9e99b2b4bfec45ba6b74b088a64
author openharmony_ci <120357966@qq.com> 1737095529 +0000
committer Gitee <noreply@gitee.com> 1737095529 +0000

!2311 Swiper带动画跳转功能优化，修改C_API接口注释。
Merge pull request !2311 from Zhang Jinyu/swiper_tab_0110\6xatree a625e6108dd93281ccb1cf1a26d08cb49ed4ce01
parent 17283fc2ecfa724cdce228dced503839feb6bd81
parent 9839579cc08a6bce36e0cdf84f82d3432aa97fbb
author openharmony_ci <120357966@qq.com> 1737090494 +0000
committer Gitee <noreply@gitee.com> 1737090494 +0000

!2106 新增avi视频码流格式支持
Merge pull request !2106 from 董炜峰/weekly_20241223_aviy*xVtree d423dac6406dc3fa7a349fc3ca946cb7051ec8de
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
author Zhang Jinyu <zhangjinyu101@huawei.com> 1733380989 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1737087944 +0800

Swiper带动画跳转功能优化，修改C_API接口注释。

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
Gx5tree ee7ad78ed89af73a1f4faaf04ded9a9994bf534e
parent 12095a7694f210b04404a6dc42dac21d0a432347
author 15349246236 <longchao17@h-partners.com> 1737085217 +0800
committer 15349246236 <longchao17@h-partners.com> 1737085217 +0800

set and get capslock state

Signed-off-by: 15349246236 <longchao17@h-partners.com>
Ħ[xLtree 3ea969bb4c1f0541f0b83b73d67a6b5c12ce6532
parent 12095a7694f210b04404a6dc42dac21d0a432347
parent 75247d43577615c079591fe0269088019d02e4d4
author openharmony_ci <120357966@qq.com> 1737084682 +0000
committer Gitee <noreply@gitee.com> 1737084682 +0000

!2321 dialog 页面级能力C-API
Merge pull request !2321 from firminly/liyi1f\x#tree 998b9eaba983e1658b70d83e7dec435af01a5310
parent 85d20b7a919acc8c2e8d2eba147c55e2d213f11a
author 邹林肯 <735001321@qq.com> 1737080085 +0000
committer Gitee <noreply@gitee.com> 1737080085 +0000

update arkui/ace_engine/native/native_type.h.

Signed-off-by: 邹林肯 <735001321@qq.com>^BxYtree 2c7c890167f24b22ab55ec014b025674396a769d
parent 689ec15f403521e1bc2deb1be5da7e16b48e2bb2
parent 6795c577f3374987a33100c90fe672b4efb9b1ba
author openharmony_ci <120357966@qq.com> 1737079933 +0000
committer Gitee <noreply@gitee.com> 1737079933 +0000

!2291 add OH_NativeArkWeb_LoadData interface
Merge pull request !2291 from 吴振德/masterkgxtree a3d4999cf38d9351564251f5153c184049bb6b79
parent 689ec15f403521e1bc2deb1be5da7e16b48e2bb2
author yzj688 <yuzejun1@huawei.com> 1737078394 +0800
committer yzj688 <yuzejun1@huawei.com> 1737078394 +0800

Drawing 增加gpu绘制接口补充
Signed-off-by: yzj688 <yuzejun1@huawei.com>
N_xYtree 04745c4d723d67d044db0031430a40cfb88e2b04
parent 5d39b66bac4268b1a3e530aad691263b8954545c
parent 6c95fed343b9c5fd85fabe9a9c4dc316873a5bb2
author openharmony_ci <120357966@qq.com> 1737034893 +0000
committer Gitee <noreply@gitee.com> 1737034893 +0000

!2262 添加输入框键盘样式CAPI接口
Merge pull request !2262 from xiangyuan6/mastersÔx$tree 40f52c174c279bdfd383afd76923ea39df7ca55d
parent 35fb98371dc48c3b86c38ff4b68a55d11c704246
author Tintin9529 <tantingting5@huawei.com> 1737029160 +0800
committer Tintin9529 <tantingting5@huawei.com> 1737031893 +0800

fix dialog new api

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
Zx7tree 14d690b2a41378a76d7eea84fd3203bd43677c72
parent 5d39b66bac4268b1a3e530aad691263b8954545c
author huangweichen <huangweichen6@huawei.com> 1737028149 +0800
committer huangweichen <huangweichen6@huawei.com> 1737028149 +0800

调整焦点CAPI接口注释

Signed-off-by: huangweichen <huangweichen6@huawei.com>
IjxPtree 1164f7b9afa8bbf683afcb34b187bfd3f54eabeb
parent 7050010bb1cd57134bda5c597387e9f9603314bf
parent 603462ea92d7936264123b958bb94113e85f0f74
author openharmony_ci <120357966@qq.com> 1737026502 +0000
committer Gitee <noreply@gitee.com> 1737026502 +0000

!1752 Add float vector support for db.
Merge pull request !1752 from cuile4/vectordÕx5tree 8aba7d46728d3961cba6796ca992b57c13ab499a
parent b4a7a3659adf3faf2ea0e1e5ae0e6cab82794976
author yyuanche <yuancheng25@huawei.com> 1737020735 +0800
committer yyuanche <yuancheng25@huawei.com> 1737020823 +0800

【CAPI】Button新增ROUNDED_RECTANGLE类型
Signed-off-by: yyuanche <yuancheng25@huawei.com>
tgxDtree 93bd34c912ed44ccf960b2e38b9548d59d523d7c
parent 35fb98371dc48c3b86c38ff4b68a55d11c704246
parent a6f20a979e24e257fa635b1d01789593165728f3
author openharmony_ci <120357966@qq.com> 1737019022 +0000
committer Gitee <noreply@gitee.com> 1737019022 +0000

!2245 VRR api 版本修改
Merge pull request !2245 from xzcbob/mastercxttree d09ef3817791ddf2d3ed7bf41da3e5627038a1a8
parent 43d280612319fed98e34ba73d1a878c1543f77bf
parent 35fb98371dc48c3b86c38ff4b68a55d11c704246
author liukaii <liukai240@huawei.com> 1737015515 +0000
committer Gitee <noreply@gitee.com> 1737015515 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: liukaii <liukai240@huawei.com>txtree 37d45b9f0bcd4db10197ce205caa3adde9f1411e
parent 3cd276b64c0b14a491d7607095b441595c8772d1
author liukaii <liukai240@huawei.com> 1733745875 +0800
committer liukaii <liukai240@huawei.com> 1737015374 +0800

add get UDMF data c-api

Signed-off-by: liukaii <liukai240@huawei.com>
jTx$tree 47819a3ac7a80d2a710c19e9e16fd708095ab801
parent 35fb98371dc48c3b86c38ff4b68a55d11c704246
author wangweiyuan <wangweiyuan2@huawei.com> 1737014244 +0800
committer wangweiyuan <wangweiyuan2@huawei.com> 1737014244 +0800

更改api注释

Signed-off-by: wangweiyuan <wangweiyuan2@huawei.com>
&ax9tree 465e8f8d45f2c833187eb7a24fc04b270f6917b4
parent bf227519a2663501c0109ba23b1312b4710ebf02
author zoulinken <zoulinken1@huawei.com> 1736997947 +0800
committer zoulinken <zoulinken1@huawei.com> 1737011014 +0800

节点迁移api和跨语言api能力接口提交

Signed-off-by: zoulinken <zoulinken1@huawei.com>
r%xtree 4c44042eb3d055b9e34a9424141ae089e4d4d262
parent c6172f2707df80c491b141386294fb9c08b9c41e
author cuile4 <cuile4@huawei.com> 1736253255 +0800
committer cuile4 <cuile4@huawei.com> 1737010888 +0800

Add float vector support for db.

Signed-off-by: cuile4 <cuile4@huawei.com>
tSvx)tree d0488209ed799c261d90490b27a690f388187ccb
parent 95ba393721b71fb6f7add015f1de37208e62c9d1
author 吴振德 <wuzhende666@163.com> 1736390452 +0800
committer 吴振德 <wuzhende666@163.com> 1737010742 +0800

add OH_NativeArkWeb_LoadData interface

Signed-off-by: 吴振德 <wuzhende666@163.com>
bxtree 93416a80f8d7a591c29f8ba67722fa7fc2118405
parent d3cd1e66b196a32b38b997f7002a973c563bfe64
author c30053238 <chenxiaoxue11@huawei.com> 1736923192 +0800
committer c30053238 <chenxiaoxue11@huawei.com> 1737010651 +0800

backdropblur

Signed-off-by: c30053238 <chenxiaoxue11@huawei.com>
;TxNtree 9fc9405ef0a5cdc788ae031125fe124f5a1d5948
parent 3e87c0dc65496c9a89a29fd8343b38d6f62d9043
parent 1537187b7aaa2b51a4892836c4c1a8a46c5d9dc7
author openharmony_ci <120357966@qq.com> 1737007870 +0000
committer Gitee <noreply@gitee.com> 1737007870 +0000

!1850 event info enhancement
Merge pull request !1850 from zhouchaobo/event_infoe-x<tree 1bb3ce7e3b4908a93874f0386a5b51a49fda6650
parent b30bc935ba179c53ecc6e54a277dc70f96d5ea91
author zhangjinyu101 <zhangjinyu101@huawei.com> 1736578458 +0800
committer zhangjinyu101 <zhangjinyu101@huawei.com> 1737006370 +0800

Slider组件支持声振能力

Signed-off-by: zhangjinyu101 <zhangjinyu101@huawei.com>
_l(x^tree 7c40054c0143ed929556d21bcd3a1bfedcfbb965
parent bf227519a2663501c0109ba23b1312b4710ebf02
parent fbe7a6d420b0f80c319af43a1bfa88bb93e14f0a
author openharmony_ci <120357966@qq.com> 1737003030 +0000
committer Gitee <noreply@gitee.com> 1737003030 +0000

!2313 native buffer/native image资料整改
Merge pull request !2313 from 李辉/apiFeature0113Hp3xtree 4a94a402d660bd72bdd3d598b10e87bacecd8254
parent feeda4e563fa273a894aa24c75f49713cec27d42
author liyi0309 <liyi58@huawei.com> 1736996670 +0800
committer liyi0309 <liyi58@huawei.com> 1736996670 +0800

dialog 页面级能力C-API
Signed-off-by: liyi0309<liyi58@huawei.com>
rXxZtree f87c13cf1841c0368357674477f25373c820924e
parent bf227519a2663501c0109ba23b1312b4710ebf02
author zhouchaobo <zhouchaobo@huawei.com> 1736840397 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1736995567 +0800

event info enhancement

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: Ibad1130f6d7d944909d323a2d5be5f1c9dee6a6e
kAxgtree e454677e8fc5349b3e64d137e5cdfaead4b6d946
parent 3bd4a1a0ecad518b0a2b65fe508eb6ba2c631dd6
parent b5ca7466e9403465c06c1f5cc325dcc8b4c532f2
author openharmony_ci <120357966@qq.com> 1736994902 +0000
committer Gitee <noreply@gitee.com> 1736994902 +0000

!2299 增加视频编码surface模式repeat编码相关key
Merge pull request !2299 from 李建超/masterzx}tree cf680afbded85cec2ba2cf7c3e88e6d7eae50ee8
parent 55bec53ef9eafa1219063d4bfd6c49136299ee74
parent 19b130688add332f14e1a345023d5b4dd8b687cb
author openharmony_ci <120357966@qq.com> 1736993411 +0000
committer Gitee <noreply@gitee.com> 1736993411 +0000

!2118 DatePicker和DatePickerDialog组件支持声振能力 
Merge pull request !2118 from Tintin9529/DatepickerHapiticFeedbackՀ͗xWtree e59cbe4d7334361d6359dc44953f89de803b0f88
parent 503f594c9f997baea29c6d814d16362409ece94a
parent 1d3ed7fc94c80152cc527cddd3b9ee383c404954
author openharmony_ci <120357966@qq.com> 1736950906 +0000
committer Gitee <noreply@gitee.com> 1736950906 +0000

!1818 CAPI：组件截图接口
Merge pull request !1818 from 胡清云/CAPI_snapsot_1123uCqxPtree 195d885d3631081036bcbe75a91a5110360786f5
parent f7d11c6bb83621620f165f0ef1047394a85b86a1
parent dc6e31faaf2d33d76e1db68abce91d3a47b84f35
author openharmony_ci <120357966@qq.com> 1736937585 +0000
committer Gitee <noreply@gitee.com> 1736937585 +0000

!2303 Axis action get capi add
Merge pull request !2303 from zhouchaobo/axisActiond͓xctree 0fbb3a0d797a4e3594aa1269be887cc0811e8093
parent d7e87daf717449799586985117345d3a9989853c
parent 2af6ffff38e8f3dbc30db4587fbc20c1a0c461a7
author openharmony_ci <120357966@qq.com> 1736933449 +0000
committer Gitee <noreply@gitee.com> 1736933449 +0000

!1847 UDMF interface for unified progress bar
Merge pull request !1847 from JUN/feature-progress-1126[k4xJtree ea81c62abc7fa8f612ab1ec038b6c94c2ddf33ec
parent 8a87c5e3d013e4c45522eca9e64ca583996be20a
parent 11aa611457ba4a458526832e7497d2b7da82222d
author openharmony_ci <120357966@qq.com> 1736930980 +0000
committer Gitee <noreply@gitee.com> 1736930980 +0000

!2315 接口规范性更正
Merge pull request !2315 from 杨旭光/feat/ndkmxstree 8292912172fd374258af0c298f57b552f69e5074
parent d3cd1e66b196a32b38b997f7002a973c563bfe64
parent bb8f105281f33e5d8cbc27a800194c54d0e52cea
author openharmony_ci <120357966@qq.com> 1736930715 +0000
committer Gitee <noreply@gitee.com> 1736930715 +0000

!2162 Feat:【基础能力】输入类控件(TextInput/TextArea)扩展ContentType类型
Merge pull request !2162 from wangxiuxiu96/contenttype9x)tree 45ed9ee2499da693a9f001744b16b3b699191cfa
parent 2266acac33932d2e7c8b7fe6441e07c22cd451e0
author x00893483 <xiangyuan6@huawei.com> 1736214911 +0800
committer x00893483 <xiangyuan6@huawei.com> 1736928054 +0800

add ArkUI_KeyboardAppearanceType

Signed-off-by: x00893483 <xiangyuan6@huawei.com>
RYx0tree f12a70efef3b9c8ebb90483e5b4576720cb79277
parent 8fa24a2d3cee367c9720cef5ed70a7ea2bb1a7b1
author lizhuojun <lizhuojun3@huawei.com> 1732630141 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1736927408 +0800

UDMF interface for unified progress bar

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
bxtree f9b037d3627017a0dd9ced04ad2307f3b7a9247e
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author hhl <yinhuiling@huawei.com> 1736922348 +0800
committer hhl <yinhuiling@huawei.com> 1736923660 +0800

add hicollie struck interface

Signed-off-by: hhl <yinhuiling@huawei.com>
WTxYtree b9e8e8fd8017e8ad6b1f6c5ee29b76372dae2034
parent 20f836e580381dd8cade456dc2faf9edbbb7fabd
author zhouchaobo <zhouchaobo@huawei.com> 1736840024 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1736922003 +0800

Feature:LimitFingerCount

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: Ie0fa437279f4fe2761880d03bf53cb294368497c
mڐx`tree 8691bf74402ee0e417dfd6d65b890a2740436867
parent 3cef728aa751b508fed1a8a9876eb1eeab45923d
parent 5aeb975944ebb5883f90f97eaf11682dcc2228e7
author openharmony_ci <120357966@qq.com> 1736915613 +0000
committer Gitee <noreply@gitee.com> 1736915613 +0000

!2242 支持非标外设扩展驱动开发-HID DDK增强
Merge pull request !2242 from Gao Rui/hid3x;xJtree f34dd63231441762964bcb136a2a850abb815fb8
parent 6b39729eee09969194e9a023149a9ec2c8ed4431
parent 586dd95fd42b661052c0869d8b045123f6fb4f4f
author openharmony_ci <120357966@qq.com> 1736913478 +0000
committer Gitee <noreply@gitee.com> 1736913478 +0000

!2308 sdk替代接口修正
Merge pull request !2308 from 马靖涛/20240114jxctree ac620d775c38c7bd00080fdebca2ba02da592c3c
parent c3eeaf33fff6e2bd29d1800beab339dee756a022
parent 74d5faa03bad2e9c3c5c1a443865c6ecb8b39fe2
author openharmony_ci <120357966@qq.com> 1736858061 +0000
committer Gitee <noreply@gitee.com> 1736858061 +0000

!2275 新增capi提供当前事件触发的id 
Merge pull request !2275 from wangweiyuan/capi_touchid~zxutree a5d66191646fb91d0916b5c9d99f2477b7c8619e
parent 055317dc303ddbaf200e503d0c7d55fe8b3d0969
parent cf2a85f1783cd1cebda0c6a12b5f8d58c6d728e2
author openharmony_ci <120357966@qq.com> 1736856485 +0000
committer Gitee <noreply@gitee.com> 1736856485 +0000

!2307 【轻量级 PR】：NDK中应该使用c库接口，而不是c++库接口-hilog/log.h整改
Merge pull request !2307 from liuyifei/N/AהxTtree d037b4eaf167d59df1142bc12101b59a577d0915
parent 2354d353c95304069c4d3d0e77b6adc7aa7b5401
parent b1577bb39b11eb16646bf0a6dfe1232614cf25bc
author openharmony_ci <120357966@qq.com> 1736854128 +0000
committer Gitee <noreply@gitee.com> 1736854128 +0000

!2229 add ArkWeb_ComponentAPI onScroll
Merge pull request !2229 from zhufenghao/mastersfx6tree 99496e84000f2955374e1b956e4a84430638e268
parent 2354d353c95304069c4d3d0e77b6adc7aa7b5401
author yangxuguang-huawei <yangxuguang3@huawei.com> 1736852937 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1736853680 +0800

fix: errcode

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
bїxWtree 434dca22638d24faa51ff42de63a6714ae3256c5
parent 2354d353c95304069c4d3d0e77b6adc7aa7b5401
author huqingyun <huqingyun1@huawei.com> 1736844157 +0800
committer huqingyun <huqingyun1@huawei.com> 1736853037 +0800

CAPI：组件截图接口

Signed-off-by: huqingyun <huqingyun1@huawei.com>
Change-Id: Ief3444c98cb4fa672fe27bca21d314a5e4b9fe06
Scrxtree 3b51503a4462f02a84a278b7a7389a9555cb8411
parent e86c9283b3b9439f3350ed757059327d0e4f152c
author lihui <lihui359@huawei.com> 1736824963 +0800
committer lihui <lihui359@huawei.com> 1736846091 +0800

add BufferHandle brief

Signed-off-by: lihui <lihui359@huawei.com>
SPQxOtree c1213b40cc3bda000595da28fea561311e35b944
parent a83e644a4865299f2eaacd2273e3d3d6c83cc6e5
author m00472246 <majingtao1@huawei.com> 1736819390 +0800
committer m00472246 <majingtao1@huawei.com> 1736845551 +0800

sdk替代接口修正 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
Xkxtree e2d004497fc882edd3091623732a43386394c634
parent fe2e7d1717ac4f7f000c14f5fcd0aa1b6a41e0f1
author lihui <lihui359@huawei.com> 1736840614 +0800
committer lihui <lihui359@huawei.com> 1736843674 +0800

fix cleancode

Signed-off-by: lihui <lihui359@huawei.com>
vNjxmtree a0907db33fce12ea52c0897770aef4fab26a28a1
parent d230003ac8cf1de79b0f99fae96a1e861a7cf01d
parent 389b21c3c3e70d66dda6b3f88baf0adea6daf6ec
author openharmony_ci <120357966@qq.com> 1736842047 +0000
committer Gitee <noreply@gitee.com> 1736842047 +0000

!2295 ArkUI提供CAPI控制焦点及处理焦点事件
Merge pull request !2295 from wc-huang/interface20250110ܴ}yxtree 3875ded0dc413681391b5c8d67516a562bf0bed3
parent d230003ac8cf1de79b0f99fae96a1e861a7cf01d
author lihui <lihui359@huawei.com> 1736770442 +0800
committer lihui <lihui359@huawei.com> 1736841861 +0800

native buffer spelling correction

Signed-off-by: lihui <lihui359@huawei.com>
FW*xTtree dd8f948f0be63e3d6638a5745745df82b4b5ea7e
parent 4ab5954f0bb2f6fa4d43af142e5312332549913e
parent 722133c7e18eb3cce761970ab20c2efd42ca21ca
author openharmony_ci <120357966@qq.com> 1736837806 +0000
committer Gitee <noreply@gitee.com> 1736837806 +0000

!2302 补充native_vsync接口说明
Merge pull request !2302 from shegangbin/fix_0113':mx=tree c496f5bc46e77b92e986806fb97f8e680a0a73a3
parent 27d9a5e512fadf8c07551339803c8fd7d4e0cb1f
author 刘丰 <liufeng204@h-partners.com> 1736836455 +0000
committer Gitee <noreply@gitee.com> 1736836455 +0000

update drivers/external_device_manager/usb/usb_ddk_types.h.

Signed-off-by: 刘丰 <liufeng204@h-partners.com>OixJtree a788bf876ff6fa3c38e2eeb0984944df94621272
parent a83e644a4865299f2eaacd2273e3d3d6c83cc6e5
parent 073fbd7cdea9f8157f634a8e97bf33919e3b9e9a
author openharmony_ci <120357966@qq.com> 1736821156 +0000
committer Gitee <noreply@gitee.com> 1736821156 +0000

!2298 去掉无用错误码
Merge pull request !2298 from 杨旭光/feat/ndkmxtree 3b547a3905239ae82755daed8a57a81ef04e1717
parent a83e644a4865299f2eaacd2273e3d3d6c83cc6e5
author 刘丰 <liufeng204@h-partners.com> 1736820987 +0000
committer Gitee <noreply@gitee.com> 1736820987 +0000

修改版本号

Signed-off-by: 刘丰 <liufeng204@h-partners.com>O]$xDtree 600f1daea4bbc914e86d414362f6d15fb036bd17
parent a83e644a4865299f2eaacd2273e3d3d6c83cc6e5
author liuyifei <liuyifei20@huawei.com> 1736817821 +0000
committer Gitee <noreply@gitee.com> 1736817821 +0000

NDK中应该使用c库接口，而不是c++库接口-hilog/log.h整改

Signed-off-by: liuyifei <liuyifei20@huawei.com>xy}xGtree 6880930c21dcc40c82f940901348c199f8f7b84e
parent 760a983c1771c13d6a8c120f6c3b18a1333dcb6d
parent feeda4e563fa273a894aa24c75f49713cec27d42
author openharmony_ci <120357966@qq.com> 1736777174 +0000
committer Gitee <noreply@gitee.com> 1736777174 +0000

!1895 support new dialog api
Merge pull request !1895 from firminly/liyi5bxEtree c875bef14a55f543d82f2f50ba1d0f9925472276
parent 20f836e580381dd8cade456dc2faf9edbbb7fabd
parent 9cae7a68957127f5ed85fa815a119418e9891342
author openharmony_ci <120357966@qq.com> 1736777011 +0000
committer Gitee <noreply@gitee.com> 1736777011 +0000

!2233 keycode add
Merge pull request !2233 from zhouchaobo/1227_cutover\axtree 8a795d9f0ea06173bc146590d505acefe34016d8
parent 3c984df6cfa5a74a9fc7c13d72ed047e8ac077d1
author lihui <lihui359@huawei.com> 1736759610 +0800
committer lihui <lihui359@huawei.com> 1736772628 +0800

deprecated GET_STRIDE/SET_STRIDE

Signed-off-by: lihui <lihui359@huawei.com>
>T˗xtree 328c27b810630a314e506aa9b7ff17550155911a
parent a5eac431b8fa9c8ba5879705a70f4a01b90b0add
author lihui <lihui359@huawei.com> 1729670909 +0800
committer lihui <lihui359@huawei.com> 1736771780 +0800

Additional Interface Declaration

Signed-off-by: lihui <lihui359@huawei.com>
Ux{tree eae9228253e0e1d2e0c204f5ed972d0f5e15c987
parent 3154203151d76f66c308ffbad660f11fc225bb8b
parent 20f836e580381dd8cade456dc2faf9edbbb7fabd
author wc-huang <1454579418@qq.com> 1736761680 +0000
committer Gitee <noreply@gitee.com> 1736761680 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into interface20250110

Signed-off-by: wc-huang <1454579418@qq.com>sx[tree 4df64c143c818672ebc0c1b50f9c59da66dcf824
parent e1e60062dc4674ea1c25d5e1ba7e76b797b873c7
parent b72b8f177ad7c1e0f963b05343b2e244b72d4064
author openharmony_ci <120357966@qq.com> 1736754910 +0000
committer Gitee <noreply@gitee.com> 1736754910 +0000

!2070 [新需求]: CAPI 获取窗口名称接口
Merge pull request !2070 from 陈一阁/capiux$tree 0aa31486fcded3998c437b267ec8171629ea87b0
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author zhouchaobo <zhouchaobo@huawei.com> 1736746043 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1736746043 +0800

Axis action get capi add

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
]xMtree 25915d30cdffb42c03fa976a9b71ce5f8967752c
parent b30bc935ba179c53ecc6e54a277dc70f96d5ea91
author yangxuguang-huawei <yangxuguang3@huawei.com> 1736563996 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1736736625 +0800

refactor: delete unused error codes

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
&mxvtree e04cf2c3dd26be3510cea72bf33e47a7d1bc26b3
parent 1a350fa439633f544f8f44b7f3f91447709cd6b9
parent b8905211cc67455c7ef84e02351e7fa545c25525
author openharmony_ci <120357966@qq.com> 1736735691 +0000
committer Gitee <noreply@gitee.com> 1736735691 +0000

!2263 支持非标外设扩展驱动开发-USB DDK增强-SDK开发
Merge pull request !2263 from Gao Rui/usb_enhance_newxtree b2ae86a5576b97ab058696315cdf51f87279fde6
parent 8f5d6a905f0ee9756c5194fe41734265c7564c6c
author shegangbin <shegangbin1@huawei.com> 1736727084 +0800
committer shegangbin <shegangbin1@huawei.com> 1736727084 +0800

fix

Signed-off-by: shegangbin <shegangbin1@huawei.com>
iU.xStree f3172aeab4820099ed16497918b968b763cfd438
parent 07e189bc14b37cbbac7505718f1503af1287bc29
parent 2b13eb19488ed0f93652380e4c3995bbfac3d14a
author openharmony_ci <120357966@qq.com> 1736588605 +0000
committer Gitee <noreply@gitee.com> 1736588605 +0000

!1968 增加Drawing 支持GPU绘制接口
Merge pull request !1968 from yzj688/masterkmbx`tree 4b4c93b42b1fd67701c04fadf40602df0ef63e6f
parent 397d0883314f1ddec268cf3579fea7a3264b423f
parent fcccbae62a1c6e4a174489e3933b470ff8f8a857
author openharmony_ci <120357966@qq.com> 1736586073 +0000
committer Gitee <noreply@gitee.com> 1736586073 +0000

!2292 【新需求-API16】RDB增加token校验接口
Merge pull request !2292 from bluhuang/tokenHvxLtree 66de10bbe01c39ebf0c865625e75f9c983028695
parent 397d0883314f1ddec268cf3579fea7a3264b423f
author zhouchaobo <zhouchaobo@huawei.com> 1736582875 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1736582875 +0800

keycode add

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: Ic3ae523deb1b3f9075911c0eae612476499d8654
fxZtree d67e5d45edf0db246c5c7228b48179799a74733d
parent b30bc935ba179c53ecc6e54a277dc70f96d5ea91
parent 7e3737768750950a3e45396b677ceaf321cbbb3b
author openharmony_ci <120357966@qq.com> 1736581061 +0000
committer Gitee <noreply@gitee.com> 1736581061 +0000

!1973 Drawing 增加支持GPU在屏绘制接口
Merge pull request !1973 from yzj688/master1Vr?xetree 5a87a3fd95c970408c7c05ca6eb2dd5b783b238d
parent b30bc935ba179c53ecc6e54a277dc70f96d5ea91
author li-jianchao1993 <lijianchao9@huawei.com> 1736577790 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1736577790 +0800

【修改说明】 增加视频编码surface模式repeat编码相关key

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
uSx/tree f83a254da423de9c557ac59bfa9a6b7d0692aae1
parent 3a5c50dc0ab4c10c71a1c9f11d1d2a70f42e010b
author zhufenghao <zhufenghao2@huawei.com> 1735785820 +0800
committer zhufenghao <zhufenghao2@huawei.com> 1736575327 +0800

add ArkWeb_ComponentAPI onScroll

Signed-off-by: zhufenghao <zhufenghao2@huawei.com>
HaxStree 77f57c13077253bec03941f92f5f158c6fa255de
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
author 陈战 <chenzhan002@chinasoftinc.com> 1734687042 +0800
committer limabiao <limabiao1@h-partners.com> 1736509031 +0800

hid ndk新增

Change-Id: I0d80c88dd086e4ba2b5591715a346dbea49b9f61
Signed-off-by: limabiao <limabiao1@h-partners.com>
l)kxKtree 71c068b307cec5348cfceace033a8d236b7e8d15
parent 5750b278861f9bb65bb55e96ba28e9d6ff1d38cc
parent c70d5ec311756f2e4cb95638031a1c8de582d94f
author openharmony_ci <120357966@qq.com> 1736508061 +0000
committer Gitee <noreply@gitee.com> 1736508061 +0000

!2290 List组件C-API接口补齐
Merge pull request !2290 from 王关/master%kxtree 9c9bda21818de82817e84f61a306d211bdc27d2a
parent b086b8227a9fc4d45c4eefe0cb5268c23efc4839
author bluhuang <bluhuang@icloud.com> 1736404160 +0800
committer bluhuang <bluhuang@icloud.com> 1736501451 +0800

add api of tokenizer checking

Signed-off-by: bluhuang <bluhuang@icloud.com>
ݪZnxOtree 8540437c5d930cddbd0adee61cb3a8821ac32f08
parent 9bf515f021a18e5a2e7f57dba0e00373278abff0
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
author 陈一阁 <chenyige2@huawei.com> 1736306055 +0000
committer eager1 <chenyige2@huawei.com> 1736500553 +0800

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into capi

Signed-off-by: 陈一阁 <chenyige2@huawei.com>
Change-Id: I75956917878c0d3ce9a1687a9cb5ce798ebf14df
xPtree 019262d9c6c3118bd6ee8e726e9101baca15db47
parent ef6556dfb802186077aa6a8b0a2803cb0aca9fdd
parent 81343a8f8eb0adf6422148d129ccf48138e1fb84
author openharmony_ci <120357966@qq.com> 1736500275 +0000
committer Gitee <noreply@gitee.com> 1736500275 +0000

!1977 【NDK】封装PathEffect接口
Merge pull request !1977 from zed/dev-effectIkxDtree 2250e72c31a66a8aa5731bdda2067acadcfc8104
parent 8f5d6a905f0ee9756c5194fe41734265c7564c6c
parent ecc47f888a0339c4fa95d1839e67b3be0949f19e
author openharmony_ci <120357966@qq.com> 1736499813 +0000
committer Gitee <noreply@gitee.com> 1736499813 +0000

!1971 [Canvas]封装NDK接口
Merge pull request !1971 from zed/masterdˑxtree 877e2acc31658247c70a527c954c12b5591ad6f7
parent f1c1c1ebc48ef5fc6a5cc8999805a91a37df77e8
author 王关 <wangguan27@huawei.com> 1735817329 +0800
committer 王关 <wangguan27@huawei.com> 1736494085 +0800

补充Swiper CAPI

Signed-off-by: 王关 <wangguan27@huawei.com>
]HZx"tree 20bb03de0421e15583f5078ce7387a58a91789a2
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author yzj688 <yuzejun1@huawei.com> 1733744260 +0800
committer yzj688 <yuzejun1@huawei.com> 1736491018 +0800

Drawing 增加支持GPU在屏绘制接口
Signed-off-by: yzj688 <yuzejun1@huawei.com>
d=xtree 1f99f47d11de3b9268310706040f97572d2f3982
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author zed <maozijie@huawei.com> 1733738143 +0800
committer zed <maozijie@huawei.com> 1736478466 +0800

[Canvas]封装ArkTS/NDK接口

Signed-off-by: zed <maozijie@huawei.com>
gW$xKtree 314a34247032849ed50d794305aa396c58e438e6
parent 8f5d6a905f0ee9756c5194fe41734265c7564c6c
author huangweichen <huangweichen6@huawei.com> 1736473981 +0800
committer huangweichen <huangweichen6@huawei.com> 1736473981 +0800

ArkUI提供CAPI控制焦点及处理焦点事件

Signed-off-by: huangweichen <huangweichen6@huawei.com>
Yv|xtree 52801d511e098c73ec931a18796cf50b7e3d1b2c
parent 8f5d6a905f0ee9756c5194fe41734265c7564c6c
author liyi0309 <liyi58@huawei.com> 1736473085 +0800
committer liyi0309 <liyi58@huawei.com> 1736473115 +0800

dialog 页面级能力C-API
Signed-off-by: liyi0309<liyi58@huawei.com>
Vxtree 94b707e272f2971fa810cd1c90046f0a17c46afe
parent 3cd276b64c0b14a491d7607095b441595c8772d1
author zed <maozijie@huawei.com> 1733749036 +0800
committer zed <maozijie@huawei.com> 1736420844 +0800

【NDK】封装PathEffect接口

Signed-off-by: zed <maozijie@huawei.com>
XxMtree c5a9c7ef0c86fd6e99392264afdb9e62dcf59cf6
parent fc648eb17b66f4ef11f886757c1a5a0551a45ff2
parent c4a9d1b829d7ccee580818555421c2c611927122
author openharmony_ci <120357966@qq.com> 1736414974 +0000
committer Gitee <noreply@gitee.com> 1736414974 +0000

!2294 delete redundant processes
Merge pull request !2294 from 林昱晔/masterdh#xdtree e8665838e89730d03dcb3810e9ef66a2cdf1f8e3
parent 40956b4e09b212ae35066afa9df7a703ebe99a7c
parent b322512f5ff5063a2cdb1b4f82aabf6c890ff42e
author openharmony_ci <120357966@qq.com> 1736414941 +0000
committer Gitee <noreply@gitee.com> 1736414941 +0000

!2189 OH_NativeImage_GetBufferMatrix from API 14 to API 15
Merge pull request !2189 from sqwlly/masterbzlxbtree e9cf703f04598251886a90d4c7caa20bfec55abb
parent b086b8227a9fc4d45c4eefe0cb5268c23efc4839
parent b7a0f87d720b5a57b555af75b1c84b2e251b318c
author openharmony_ci <120357966@qq.com> 1736412213 +0000
committer Gitee <noreply@gitee.com> 1736412213 +0000

!2237 feat: 增加S4进入和退出的公共事件
Merge pull request !2237 from guochengying/masterxxtree abde0ba9e431be4d01e765349a7b9e40cafa775d
parent 49364e41833848208f399f5a2ef43d793c3ae000
author 林昱晔 <linyuye@huawei.com> 1736407138 +0000
committer Gitee <noreply@gitee.com> 1736407138 +0000

gn check

Signed-off-by: 林昱晔 <linyuye@huawei.com>2&UUxtree fe8d6251ebd253348be9569e10c06018e0c87d0c
parent b086b8227a9fc4d45c4eefe0cb5268c23efc4839
author 林昱晔 <linyuye@huawei.com> 1736405723 +0000
committer Gitee <noreply@gitee.com> 1736405723 +0000

delete redundant processes

Signed-off-by: 林昱晔 <linyuye@huawei.com>i]xRtree 8c7e6dfa29c8c99eb20153f98f2ce1369fdf3684
parent 95ba393721b71fb6f7add015f1de37208e62c9d1
parent 7bca39c944d9ece8f3e2274e3d05fe06351b67ca
author openharmony_ci <120357966@qq.com> 1736397568 +0000
committer Gitee <noreply@gitee.com> 1736397568 +0000

!2286 backdropBlur cAPI接口
Merge pull request !2286 from chenxiaoxue/backdropblurixtree 00080baf5fb0eac2f4e9c421d3e513fad47950c4
parent 95ba393721b71fb6f7add015f1de37208e62c9d1
author 王关 <wangguan27@huawei.com> 1736390241 +0800
committer 王关 <wangguan27@huawei.com> 1736390241 +0800

List组件C-API接口补齐

Signed-off-by: 王关 <wangguan27@huawei.com>
#cxltree 0f570bee72e022235f3c69e2a10b05a90561ce2c
parent bad642c1bb4f3487369895f7292da412e4d84bc3
parent 89aed18621e167a0ba101f9d3b262d21a42e055b
author openharmony_ci <120357966@qq.com> 1736348467 +0000
committer Gitee <noreply@gitee.com> 1736348467 +0000

!2126 support dialog new api：指定避让键盘的距离
Merge pull request !2126 from Tintin9529/branch1224xxQtree 6d6bb24ec575476ac4e1a4fd81a9169b273c95d2
parent bad642c1bb4f3487369895f7292da412e4d84bc3
author LuoBin <luobin77@h-partners.com> 1735615609 +0800
committer LuoBin <luobin77@h-partners.com> 1736337446 +0800

USB DDK增强ndk代码

Signed-off-by: LuoBin <luobin77@h-partners.com>
Change-Id: I54c7acd5ea74fa12a32ad4a217bcffe7dc80a7e3
dk)x]tree de4febbfeca6c40cad61c5c9feefbe7b55331491
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
parent c0131047d1c82e4b593ebcd69bf7ca999bdf010d
author openharmony_ci <120357966@qq.com> 1736336287 +0000
committer Gitee <noreply@gitee.com> 1736336287 +0000

!2067 deprecated get_device_api_version interface
Merge pull request !2067 from 仇玉加/12-19FoPx'tree 7f66954bf436023590dbbbdcde7f7a0f24eda537
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author c30053238 <chenxiaoxue11@huawei.com> 1736329333 +0800
committer c30053238 <chenxiaoxue11@huawei.com> 1736329333 +0800

add capi backdropblur

Signed-off-by: c30053238 <chenxiaoxue11@huawei.com>
ԛY@xtree 6effc8d95b4847a5f749ea70c9621b79f52820bf
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author yzj688 <yuzejun1@huawei.com> 1733733324 +0800
committer yzj688 <yuzejun1@huawei.com> 1736320270 +0800

增加Drawing GPU接口
Signed-off-by: yzj688 <yuzejun1@huawei.com>
XIx(tree 2073da72fa0f75a27e97c9e80425cfd7a7403da9
parent 24050077821a231d0a16e285ab3e5852750e5354
author Tintin9529 <tantingting5@huawei.com> 1735031535 +0800
committer Tintin9529 <tantingting5@huawei.com> 1736316523 +0800

support dialog new api

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
ZՕx5tree 88a36a2126b201c7a17b6081d5b8457c636df3cd
parent dba3e0c30ada1e2136a62907f572a2ccf958bbb5
author Steven <duanzhengteng@huawei.com> 1736304809 +0000
committer Gitee <noreply@gitee.com> 1736304809 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>dex0tree d5ff8fae708c304cfc8469c8bfa1b8835418fbc2
parent ff8c1270db5bf831191e08e26945f012c4e92360
author Steven <duanzhengteng@huawei.com> 1736304784 +0000
committer Gitee <noreply@gitee.com> 1736304784 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>box+tree 883577da32e27bc0beca913392959d2c2c33c7d3
parent fbbed33756619f7d199f35639ccf8e75c5ceaa58
author Steven <duanzhengteng@huawei.com> 1736304469 +0800
committer Steven <duanzhengteng@huawei.com> 1736304469 +0800

AVRecorder NDK interfaces revision

Signed-off-by: Steven <duanzhengteng@huawei.com>
0_x9tree e0338294b00f66b378a6626b3a757927aa539fa4
parent b6b1850b7ca632c35561ffe1ade2e9bc4a669efa
author guochengying <346447065@qq.com> 1736254186 +0000
committer Gitee <noreply@gitee.com> 1736254186 +0000

update BasicServicesKit/commonevent/oh_commonevent_support.h.

Signed-off-by: guochengying <346447065@qq.com>bSxBtree 38f0747ac74aefeb15b13ca90e786eb406eac866
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
parent 12541b42096dcce3f5bea7bc2c16bb9e83f876e7
author openharmony_ci <120357966@qq.com> 1736253354 +0000
committer Gitee <noreply@gitee.com> 1736253354 +0000

!2265 版本不一致同步
Merge pull request !2265 from zzm/masterhxttree 6fdad68b6707bd409a9a8d691a0f6f93534c4fbc
parent 841160efaf077d7c94cfd782978e760e2d567e01
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author cuile4 <cuile4@huawei.com> 1736249080 +0800
committer cuile4 <cuile4@huawei.com> 1736249080 +0800

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into vector

# Conflicts:
#	distributeddatamgr/relational_store/include/oh_cursor.h
rx-tree 38f0747ac74aefeb15b13ca90e786eb406eac866
parent 135de54d84ea9ada7e109efde08ba4284c353cd8
author zzm <zhangzhiming23@huawei.com> 1736221635 +0000
committer zzm <zhangzhiming23@huawei.com> 1736221635 +0000

【修改说明】：版本不一致同步

Signed-off-by: zzm <zhangzhiming23@huawei.com>
~nvxWtree 83b3eeb4e73250b07d0127effa387acc2c7f906a
parent d9aac9c318ec048dc85dec4897a52795667ce52b
parent f1f8d0388ae586c35ca2fbc0d14e7b893d7fe4a4
author openharmony_ci <120357966@qq.com> 1736219454 +0000
committer Gitee <noreply@gitee.com> 1736219454 +0000

!2243 修改gif编码相关接口api版本
Merge pull request !2243 from fandongyu/master?txMtree 2fe3a205a5f4f4da96c5f346ac1f78615f6ff39d
parent 2266acac33932d2e7c8b7fe6441e07c22cd451e0
parent 364a85dc948e5d68543ea3f5814ebaec1775fb67
author openharmony_ci <120357966@qq.com> 1736215723 +0000
committer Gitee <noreply@gitee.com> 1736215723 +0000

!2212 add avrecorder ndk interfaces
Merge pull request !2212 from Steven/mastere'xJtree af8ac1c51440901f0bbfa25413cde5e233fae00f
parent 9137877c04d1fa74bec70c4ab5e33d1e87ce4ac0
parent 60da88fe1250aaabf3e825bbe8c1bebcad883fbb
author openharmony_ci <120357966@qq.com> 1736171718 +0000
committer Gitee <noreply@gitee.com> 1736171718 +0000

!2051 修改node编译路径
Merge pull request !2051 from kangchongtao/1217;kx)tree 16de52bcbfb5cb0a80db86fca00dbeeb57da8cfa
parent a2ae5d5d13026d2591d4c83294d2cb4ae5e702e0
author 董炜峰 <dongweifeng4@h-partners.com> 1736167484 +0800
committer 董炜峰 <dongweifeng4@h-partners.com> 1736167484 +0800

add raw stream

Signed-off-by: 董炜峰 <dongweifeng4@h-partners.com>
&hRx)tree 725ac04f3600936d9a9be14ce76de93b284c2766
parent 025a8e2a27ea76dd67174fd8ad8325cd2a6c776f
author 董炜峰 <dongweifeng4@h-partners.com> 1736165718 +0800
committer 董炜峰 <dongweifeng4@h-partners.com> 1736165718 +0800

add raw stream

Signed-off-by: 董炜峰 <dongweifeng4@h-partners.com>
f{xJtree 08f8e38e7dcdb25ed9ce9dbc1321ee34aa0deefb
parent bb04d76746172b4ca081aaa2a47394d1b08efe35
parent a9c9efc981594d7e3fcccc728eb3d7a55f72c8f3
author openharmony_ci <120357966@qq.com> 1736165527 +0000
committer Gitee <noreply@gitee.com> 1736165527 +0000

!2249 代码一致性修改
Merge pull request !2249 from Wanxiaoqing/mastervm0x[tree d6de2e528214a0c8f29ee27cc5f29b75f2cc22a4
parent 02a85ffd313f3addd0f1887b4161080380a5bb1c
parent 1e23c909597a74984810c4568b9684c0886513db
author openharmony_ci <120357966@qq.com> 1736164128 +0000
committer Gitee <noreply@gitee.com> 1736164128 +0000

!2246 add unit description for key in sdk_c
Merge pull request !2246 from 王子微/dev_sdkc2k]x7tree 1896f4de91ba11904b1c70f4860420c8a59320fa
parent fd54ece23a98a2836b8321a1575088e8f45dbcc0
parent a804d1d580fe877d7e4587f578d6927c650eb8a1
author openharmony_ci <120357966@qq.com> 1736162429 +0000
committer Gitee <noreply@gitee.com> 1736162429 +0000

!2256 fix format
Merge pull request !2256 from zww/master][x(tree 40bb490c75bda43d2b149888be54a484d32d6344
parent 9121a56b510c517a38bcf1c6df9265def00f70cc
author 董炜峰 <dongweifeng4@h-partners.com> 1736155299 +0800
committer 董炜峰 <dongweifeng4@h-partners.com> 1736155299 +0800

add audio raw

Signed-off-by: 董炜峰 <dongweifeng4@h-partners.com>
Hex tree 1896f4de91ba11904b1c70f4860420c8a59320fa
parent fd54ece23a98a2836b8321a1575088e8f45dbcc0
author zww <zhuweiwen@huawei.com> 1736155124 +0800
committer zww <zhuweiwen@huawei.com> 1736155124 +0800

fix format

Signed-off-by: zww <zhuweiwen@huawei.com>
RNx'tree 9fe925d813ff8ba4f0c138d309d1a080967bc730
parent fd54ece23a98a2836b8321a1575088e8f45dbcc0
author wanxiaoqing <wanxiaoqing@huawei.com> 1736150846 +0800
committer wanxiaoqing <wanxiaoqing@huawei.com> 1736150846 +0800

代码一致性修改

Signed-off-by: wanxiaoqing <wanxiaoqing@huawei.com>
9f'x;tree 8b4a096aed665d5ad99820b6f57d2c377ade42ce
parent 664f06928d581c52f65732c778e97306054e9e3a
author 王子微 <wangziwei38@h-partners.com> 1736149101 +0000
committer Gitee <noreply@gitee.com> 1736149101 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: 王子微 <wangziwei38@h-partners.com>jSxOtree 66a30fcd241b19925c16162478c4b268150de75f
parent fd54ece23a98a2836b8321a1575088e8f45dbcc0
author 王子微 <wangziwei38@h-partners.com> 1736147926 +0800
committer 王子微 <wangziwei38@h-partners.com> 1736147926 +0800

[sdk5.0.2release] add unit description for key in sdk_c

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
rޒxRtree bfa4be68af88d068e0b3465ee6b5171f39ef7674
parent 19d5d864cf5ad0f9d0ffcf5805a32eae0bdd31bd
parent 117675da762588dfad13ef8ca936a419122cc1ce
author openharmony_ci <120357966@qq.com> 1736146085 +0000
committer Gitee <noreply@gitee.com> 1736146085 +0000

!2089 rdb transaction ndk interface
Merge pull request !2089 from zhangyuchao/masterhrx"tree 8b8a564aa70f8aea4a8da7a382462c63eabc24b8
parent 19d5d864cf5ad0f9d0ffcf5805a32eae0bdd31bd
author xuzhangchi <xuzhangchi@huawei.com> 1736143847 +0800
committer xuzhangchi <xuzhangchi@huawei.com> 1736143847 +0800

VRR 接口版本修改

Signed-off-by: xuzhangchi <xuzhangchi@huawei.com>
dAx_tree 96bc4ea5611a0fd10b7cd3cfa7b6a84e448cb534
parent 2345bf59d7a4233b062e9e074d175be6348ab13c
parent 61524d7bcc55bb17c39377f4f502167097e44162
author openharmony_ci <120357966@qq.com> 1736133950 +0000
committer Gitee <noreply@gitee.com> 1736133950 +0000

!1812 需要capi版本的布局绘制回调接口
Merge pull request !1812 from pengzhiwen/sdk-v1Ȝwxdtree 068df8a3e009affda2b42886259919ba064237e9
parent 3a5c50dc0ab4c10c71a1c9f11d1d2a70f42e010b
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1735119899 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1736132870 +0800

Feat:【基础能力】输入类控件(TextInput/TextArea)扩展ContentType类型

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
Change-Id: I7432623b0e4e675bf570727cb9742fb9a461a979
xGtree c5fa0fe19f05a51778d0bacabde467e0d522c478
parent 2345bf59d7a4233b062e9e074d175be6348ab13c
author Tintin9529 <tantingting5@huawei.com> 1735024502 +0800
committer Tintin9529 <tantingting5@huawei.com> 1736126041 +0800

DatePicker和DatePickerDialog组件支持声振能力

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
Cq
x5tree 19d888376eca9ed900c399314e3bdcd583fe073c
parent 893a0cd73b0d1ef4e5b1cc740ede91b8465dec6f
author Steven <duanzhengteng@huawei.com> 1736076418 +0000
committer Gitee <noreply@gitee.com> 1736076418 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>be1x5tree 9874398ffa5d54ba8c6b217e91261f0ea0462877
parent a637ffb19d8e1bde965507edb0deb2e22d5501f6
author Steven <duanzhengteng@huawei.com> 1736073131 +0000
committer Gitee <noreply@gitee.com> 1736073131 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>dXx0tree 162cae0cecbc360696414722a89ef1773f937658
parent 1c67c6c4ef292c6581fd8fa3edfea31a5e62f661
author Steven <duanzhengteng@huawei.com> 1736072938 +0000
committer Gitee <noreply@gitee.com> 1736072938 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>b}xYtree 123f5ff9ddb93f1854965152104c593c75a3dbd2
parent 00e9cfc051b87aa1f47e421d6495f2c05cf264f1
parent f278e2ab5cb7f5b83a27dd728fdfe4d5e7702d8c
author openharmony_ci <120357966@qq.com> 1736043773 +0000
committer Gitee <noreply@gitee.com> 1736043773 +0000

!2218 增加OH_Pasteboard_GetChangeCount接口
Merge pull request !2218 from Seiphro/master½mx0tree 1b1550c93bf36c0b4df8f94dcc83415557da8bb6
parent bb77cb969aa3e03319cc407831ebfdc16a181b10
author Steven <duanzhengteng@huawei.com> 1736000171 +0000
committer Gitee <noreply@gitee.com> 1736000171 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>bx&tree 08abeba78195b341927491927964f98259c9f0f7
parent 95310f506855f39bb59db73d12cc0f877a29e742
author Steven <duanzhengteng@huawei.com> 1735998997 +0800
committer Steven <duanzhengteng@huawei.com> 1735998997 +0800

add avrecorder ndk interfaces

Signed-off-by: Steven <duanzhengteng@huawei.com>
]x0tree 40538ed945a40a3e8bcc4f976581c326ded374df
parent 5e9a346837ddef2d31510b45551b3075b2d4004a
author Steven <duanzhengteng@huawei.com> 1735997682 +0000
committer Gitee <noreply@gitee.com> 1735997682 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>aLax5tree 495fbaf10df5a8bb78661d9d783e730644ec2a38
parent 9fe4b40dee809adbab512b4231901eaca86c6aaf
author Steven <duanzhengteng@huawei.com> 1735997165 +0000
committer Gitee <noreply@gitee.com> 1735997165 +0000

update multimedia/player_framework/avrecorder_base.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>reYx|tree e02ce3a3c7ae00172f3ecbd81eb6eda6aa7fcd32
parent 5de9d836a433f4f78089be45959a0312a3f8b9ba
parent 9c5006bf604b9fde380755aa7934adb3bd10e7b3
author openharmony_ci <120357966@qq.com> 1735992922 +0000
committer Gitee <noreply@gitee.com> 1735992922 +0000

!2240 feat: Button支持控制大字体的字体放大缩小倍数范围
Merge pull request !2240 from Zhang Jinyu/button_0103Px:tree 8d70ad4effe99478132832698759e6eef8ba0cd8
parent 5de9d836a433f4f78089be45959a0312a3f8b9ba
author pengzhiwen <pengzhiwen3@huawei.com> 1732268567 +0800
committer pengzhiwen <pengzhiwen3@huawei.com> 1735980817 +0800

需要capi版本的布局绘制回调接口

Signed-off-by: pengzhiwen <pengzhiwen3@huawei.com>
rUxWtree 2e55147bde154a337defcce1d39ab0aff730d788
parent 5de9d836a433f4f78089be45959a0312a3f8b9ba
author fandongyu <fandongyu.30044153@huawei.com> 1735973449 +0800
committer fandongyu <fandongyu.30044153@huawei.com> 1735973449 +0800

Signed-off-by:fandongyu<fandongyu.30044153@huawei.com>

Signed-off-by: fandongyu <fandongyu.30044153@huawei.com>
_jxLtree 433aec274bd33f53c99509733e4ee6388129bf5b
parent 67e97ad3c13d69d692409d83b9bc52c0b10943c8
parent 1e263dbdec47df69e335f1ce9d8bde76471ba6ae
author openharmony_ci <120357966@qq.com> 1735961150 +0000
committer Gitee <noreply@gitee.com> 1735961150 +0000

!2224 增加分词接口
Merge pull request !2224 from zwtmichael/my_interfaceQjx~tree ed13537f93823f1458b321372fdede9ec9506644
parent 75bdb6bab8da851432b8d3cb3a2b151e77daded9
parent 67e97ad3c13d69d692409d83b9bc52c0b10943c8
author Seiphro <yangxiaodong41@huawei.com> 1735909635 +0000
committer Gitee <noreply@gitee.com> 1735909635 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: Seiphro <yangxiaodong41@huawei.com>jyĖxVtree 611cd048b1ec2e3ada65ea7f6d0f9cd0356fcd19
parent a3945b0f393c9ced0643731f79061ef526c12831
parent 35c1b69c38a04c775714d4d70f7fc1c9f10b8ba8
author openharmony_ci <120357966@qq.com> 1735903056 +0000
committer Gitee <noreply@gitee.com> 1735903056 +0000

!2198 添加录屏ShowCursor接口
Merge pull request !2198 from 李一鸣/addShowCursorGq|xTtree 7deecc4df362644ee6ea58a8cce8fe826ae400ce
parent a3945b0f393c9ced0643731f79061ef526c12831
author Zhang Jinyu <zhangjinyu101@huawei.com> 1735897724 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1735897724 +0800

Button支持控制大字体的字体放大缩小倍数范围

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
x]tree 83b33640799c1fc3e71db9e13eec737efb409953
parent 2efad28e93c71afdbe64d9a035c0f679936bcbac
parent abf23eb60e44f361c10b635991873b83741f8b34
author openharmony_ci <120357966@qq.com> 1735896037 +0000
committer Gitee <noreply@gitee.com> 1735896037 +0000

!2012 feat：add pasteboard getDataWithProgress
Merge pull request !2012 from sunxuejiao/master$lxKtree 68b0cec17dd502bc98f1b83f4471e344b24ad70f
parent 002c1d7d7025a20a961be591246fc2ec336aedb4
parent d8a20736e7d5f8c1337b80914c9323af18323eec
author openharmony_ci <120357966@qq.com> 1735895356 +0000
committer Gitee <noreply@gitee.com> 1735895356 +0000

!2205 修复接口声明错误
Merge pull request !2205 from yangqirun/masterylxtree b41b1e43c0134f91314a5bc5ff9617364f938113
parent b547643d0bb2dba06b2ce13dc961cb02863236d7
author 李一鸣 <liyiming21@huawei.com> 1735892498 +0800
committer 李一鸣 <liyiming21@huawei.com> 1735892498 +0800

add json

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
X\2x0tree a6866b388ac8ec05e63613bebe72f1743592f916
parent 20badd7368ef9d2faad64709ceaaf73514a15987
author Steven <duanzhengteng@huawei.com> 1735890508 +0000
committer Gitee <noreply@gitee.com> 1735890508 +0000

update multimedia/player_framework/avrecorder.h.

Signed-off-by: Steven <duanzhengteng@huawei.com>b~x9tree 65309541573f52ac6e34d6ac649df1068e3ec7e5
parent 2fccdb42c5c06f4190ccc9d8e3f861140d7b6559
author guochengying <346447065@qq.com> 1735884582 +0000
committer Gitee <noreply@gitee.com> 1735884582 +0000

update BasicServicesKit/commonevent/oh_commonevent_support.h.

Signed-off-by: guochengying <346447065@qq.com>Ab@xNtree 3bff76645d514511169245b3fa7263d88b12003e
parent 0de1efd31e4d98cb1c0f33b695443cfd4bbc184e
parent 34aec52f6286432942d28a3cace771abdc448510
author openharmony_ci <120357966@qq.com> 1735870414 +0000
committer Gitee <noreply@gitee.com> 1735870414 +0000

!2234 添加muxer接口的json描述
Merge pull request !2234 from 杨鹏/master8mx5tree 6d279538793ea8b865e3d2cbe60978072e6c2057
parent 0de1efd31e4d98cb1c0f33b695443cfd4bbc184e
author guochengying <346447065@qq.com> 1735869051 +0800
committer guochengying <346447065@qq.com> 1735869054 +0800

fix: add enter and exit hibernate mode usual event

Signed-off-by: guochengying <346447065@qq.com>
,/]~x&tree a9d4ea20423f450f2ca4e20b19376b25cba860bd
parent df56717eec25daa92e43117787a00a17b1018673
author zwtmichael <zhuwentao5@huawei.com> 1735626697 +0800
committer wanghaishuo <wanghaishuo1@huawei.com> 1735867443 +0800

add tokenizer interface

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
]xmtree f0f57ddc09720edffeed0b65338f6a8bb756977b
parent b186583bfb570bc4362f1c9deb53283a9767e5e5
parent ab4a722974f1f173f7c827d856d9ccb90880f531
author openharmony_ci <120357966@qq.com> 1735822677 +0000
committer Gitee <noreply@gitee.com> 1735822677 +0000

!2093 Swiper支持配置按下时不停止自动播放
Merge pull request !2093 from 李俊峰/swiper_auto_playcx|tree 4242bb0e975b6965d89777dd3adeeaefa07d1ed5
parent f1c1c1ebc48ef5fc6a5cc8999805a91a37df77e8
parent 0c65e7695ecad1425c41fdac8e40b65ee508bf94
author openharmony_ci <120357966@qq.com> 1735817846 +0000
committer Gitee <noreply@gitee.com> 1735817846 +0000

!2000 字体引擎word break断词功能新增多音节连字符断词功能
Merge pull request !2000 from liumingxiang/masterxDtree 196ab29afe8f970838760725d6ce8a8b40432530
parent 3a5c50dc0ab4c10c71a1c9f11d1d2a70f42e010b
parent b7c833d4396a7ded8c50fc90f74ed9900e88120b
author openharmony_ci <120357966@qq.com> 1735811318 +0000
committer Gitee <noreply@gitee.com> 1735811318 +0000

!2230 更新头文件
Merge pull request !2230 from 杨旭光/feat/ndkhjxtree 61e3f3893b88857cd26d8a797731f9ac2a1adad0
parent ebae24c39ec28d80aa65a884116a0e5c3c5b5e51
author z00544238 <zyc.wei@huawei.com> 1734782876 +0800
committer z00544238 <zyc.wei@huawei.com> 1735810694 +0800

rdb transaction ndk interface

Signed-off-by: z00544238 <zyc.wei@huawei.com>
2Uxtree 57b10d9f91c35b242a13dac049c4c8ea972a9b90
parent 3a5c50dc0ab4c10c71a1c9f11d1d2a70f42e010b
author peng <yangpeng43@huawei.com> 1735804715 +0000
committer peng <yangpeng43@huawei.com> 1735804715 +0000

add muxer ndk json

Signed-off-by: peng <yangpeng43@huawei.com>
0RPx,tree 01ab27334b7cf21802760084716ae27d5fd1b453
parent c90206a7bebbea138ead8545e963a4536cd721f0
author yangxiaodong <yangxiaodong41@huawei.com> 1735563257 +0800
committer yangxiaodong <yangxiaodong41@huawei.com> 1735804649 +0800

modify comment

Signed-off-by: yangxiaodong <yangxiaodong41@huawei.com>
_xstree 196ab29afe8f970838760725d6ce8a8b40432530
parent 3a5c50dc0ab4c10c71a1c9f11d1d2a70f42e010b
author yangxuguang-huawei <yangxuguang3@huawei.com> 1735788184 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1735788184 +0800

feat: update include

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
Change-Id: Ib2ffabfda630039bbecc3b353a1d0ed57e31f95b
vx6tree b4d35ca345292f156b4de2900dad1bd546408f2e
parent f6ec6c1bb07e49096c526cd6627ebb88d420d2cb
author sunxuejiao <sunxuejiao8@huawei.com> 1733993522 +0800
committer sunxuejiao <sunxuejiao8@huawei.com> 1735786278 +0800

feat: add pasteboard progress interface

Signed-off-by: sunxuejiao <sunxuejiao8@huawei.com>
dxtree bf4bea8830a9e2757d64d3a680756323fe4ef656
parent 1b73a0d8f9cd1692b83cce123652e34f9d23fb69
parent 84f107689a8fe330381c865b2310f261ef8c1841
author openharmony_ci <120357966@qq.com> 1735782346 +0000
committer Gitee <noreply@gitee.com> 1735782346 +0000

!2226 DatePicker组件支持配置要显示的选项列C接口定义
Merge pull request !2226 from Zhang Jinyu/req_datepicker_modex}tree e97ef9363e3207b09d57acce36a65ddf94398af4
parent 7c37838e7e56353cd658eac449458b54437b0c3a
parent 39305f28578287b72a882842006a5a69d619d8a0
author openharmony_ci <120357966@qq.com> 1735731732 +0000
committer Gitee <noreply@gitee.com> 1735731732 +0000

!2211 TimePicker组件支持配置开始时间和结束时间C接口定义
Merge pull request !2211 from Zhang Jinyu/Timepicker_1228ۉ~x|tree 732b411882362677e6df97c504d3dbb182ead151
parent a878115f80c47fd1d0a42613ee75e3bbfa5028da
parent fcfae2ce8719087a8eb7f92772c9e8cf9fe64ba9
author openharmony_ci <120357966@qq.com> 1735722972 +0000
committer Gitee <noreply@gitee.com> 1735722972 +0000

!1829 CalendarPicker组件支持配置最大最小日期
Merge pull request !1829 from houguobiao/req_calendarpicker_start_endfxVtree 4182e32c53aa45367113d3e3ce45698907286659
parent a878115f80c47fd1d0a42613ee75e3bbfa5028da
author Zhang Jinyu <zhangjinyu101@huawei.com> 1735714068 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1735714068 +0800

DatePicker组件支持配置要显示的选项列C接口定义

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
 }xXtree 7135a59e2b4e4f6242c50bbfdc6ff8926246b031
parent 72969696d3ee1453a2daaf225435a7795263bf3e
parent 4df4ebe120590d96a0098c0b02cd7a7846320caa
author openharmony_ci <120357966@qq.com> 1735640161 +0000
committer Gitee <noreply@gitee.com> 1735640161 +0000

!2108 Drawing增加Ndk错误码重置接口
Merge pull request !2108 from lizhan/themeFontXq xVtree 56cc9b2fbb435b8aee0832b2330be055eeb847e8
parent 58d41f659da0e9584101165e4183ee16e5eb4330
parent f2bec516a1bb4f8537e9fc6ad093e0fa76741d90
author openharmony_ci <120357966@qq.com> 1735639022 +0000
committer Gitee <noreply@gitee.com> 1735639022 +0000

!2015 [L] capi按键事件支持拦截和分发
Merge pull request !2015 from lisitao/t1qx4tree 23cfc4797fe330357abcd879ee1c14e275bf3d05
parent 4f7bbf46ff79a719f77810b5a3251f44c6b7af1b
author qiu_yu_jia <qiuyujia1@huawei.com> 1734596330 +0800
committer qiu_yu_jia <qiuyujia1@huawei.com> 1735635452 +0800

deprecated get_device_api_version interface

Signed-off-by: qiu_yu_jia <qiuyujia1@huawei.com>
#dCx6tree 7a5d2671dc1d0deb95bf1855528e8aaff620dc5a
parent df56717eec25daa92e43117787a00a17b1018673
parent ecb0cbd358b524fdad2cb3adcb13e5f4347db1c4
author openharmony_ci <120357966@qq.com> 1735620433 +0000
committer Gitee <noreply@gitee.com> 1735620433 +0000

!2165 cwant5
Merge pull request !2165 from zhuhan/cwant5γ\xStree 33d85f6a075143ac3d22f298936421835e469670
parent c90206a7bebbea138ead8545e963a4536cd721f0
parent 42c57774faa7a0efd2a039bdf83b1cbc88215662
author openharmony_ci <120357966@qq.com> 1735615259 +0000
committer Gitee <noreply@gitee.com> 1735615259 +0000

!2215 清理hiappevent接口告警
Merge pull request !2215 from liujiaxing19/fixvoidVblx`tree f2f769702ce2c7f41c61389b99f95b6ac0510720
parent a0f2061387d2e47df4e9073af50a643c834a1785
parent 4944289b716bfb0b5f564e7b18171e158ee956fa
author openharmony_ci <120357966@qq.com> 1735551525 +0000
committer Gitee <noreply@gitee.com> 1735551525 +0000

!1912 提交根据节点id获取节点能力的接口
Merge pull request !1912 from 邹林肯/xq16
{+x%tree 27b0e6976f856fcc0139b96e75603fd60c02155b
parent a0f2061387d2e47df4e9073af50a643c834a1785
author kangchongtao <kangchongtao@huawei.com> 1735550507 +0800
committer kangchongtao <kangchongtao@huawei.com> 1735550507 +0800

fix build bug

Signed-off-by: kangchongtao <kangchongtao@huawei.com>
\x4tree 800ebdb9de6410cc3b062199448b7936b2dfa60e
parent c887467e57893bce9c802a84781ac29ae145d4af
author zhuhan <zhuhan10@huawei.com> 1734403542 +0800
committer zhuhan <zhuhan10@huawei.com> 1735549505 +0800

cwant

Signed-off-by: zhuhan <zhuhan10@huawei.com>
Change-Id: I9a4f52097d5d76fd51339b621c030aa149fed5f4
\SxBtree 286b1b6988cd623ceb8f6e9b53cb0ef1ad397fe8
parent 2821f4dcda8640e62f6d6f096ecbf987b0117418
parent 4005138d23f547fb626666e22d0860affb0ec4bc
author openharmony_ci <120357966@qq.com> 1735549478 +0000
committer Gitee <noreply@gitee.com> 1735549478 +0000

!2206 增加801错误码
Merge pull request !2206 from 郭旭/mastergxStree 4c0d418f92ed0897a90ce3b4e708124c5214802e
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author liumingxiang1 <liumingxiang1@huawei.com> 1733921128 +0800
committer liumingxiang1 <liumingxiang1@huawei.com> 1735546070 +0800

word break新增枚举：WORD_BREAK_TYPE_BREAK_HYPHEN

Signed-off-by: liumingxiang1 <liumingxiang1@huawei.com>
9rxttree 5549bed37b1522de28031c276e224b2c15638f2c
parent 7eb4e9c2e1e5247e6dc51040f94bfc2ae7c8fdfa
parent 7e1f6ce077b7df6b5ab51de5ad6054d5ad0b86eb
author openharmony_ci <120357966@qq.com> 1735545007 +0000
committer Gitee <noreply@gitee.com> 1735545007 +0000

!2214 更新结构体命名 AbilityRuntime_Want改为AbilityBase_Want
Merge pull request !2214 from 杨旭光/feat/ndk݀ԓx#tree c4927ddd9a4ba805d3bfff8367755e2e1098d2c7
parent 151addb064afb88677c0e61c33d21b3907519845
author 邹林肯 <735001321@qq.com> 1735544774 +0000
committer Gitee <noreply@gitee.com> 1735544774 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 邹林肯 <735001321@qq.com>}]xetree 5e3347c5cfdc4d58838d0d184df0675abda4faae
parent 7eb4e9c2e1e5247e6dc51040f94bfc2ae7c8fdfa
author liujiaxing19 <liujiaxing19@huawei.com> 1735529935 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1735529935 +0800

接口定义告警清理

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: I1e94cdb053ee400bf5f265fd0486e2a509f7c8f3
xxltree 5549bed37b1522de28031c276e224b2c15638f2c
parent 7eb4e9c2e1e5247e6dc51040f94bfc2ae7c8fdfa
author yangxuguang-huawei <yangxuguang3@huawei.com> 1735441703 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1735441703 +0800

feat: change AbilityRuntime_Want to AbilityBase_Want

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
Change-Id: I429d9add58a8aa545a65e4f306258d5dbd2ef61c
xjtree 6b56f6554920ff915fae0e974d155603a58c5a5b
parent 3db534ae3e4d189424c294c3d23d51dc99a09a20
parent 8eb54444e5b84bfc49512abe7193a869110a62fd
author openharmony_ci <120357966@qq.com> 1735433652 +0000
committer Gitee <noreply@gitee.com> 1735433652 +0000

!2025 子进程支持NDK接口启动UIAbility
Merge pull request !2025 from 杨旭光/feat/start-ability-ndkyxRtree ace0856df83f2eeaf21aedf1052391811d2fc379
parent e6f88b16e457b2999ac4966d64d27f75caf450f7
parent dd975cc92d4f49f43adfadb21ee862890c28a9b4
author openharmony_ci <120357966@qq.com> 1735394498 +0000
committer Gitee <noreply@gitee.com> 1735394498 +0000

!2213 自定义字体枚举类
Merge pull request !2213 from liumingxiang/master_beiͥphx*tree dea7e1f81b05fb56ced8c324c41b677168450200
parent 7f6bb23ad3b1c66c1f6b9899b43d3ccc7c78ad7b
author liumingxiang <liumingxiang1@huawei.com> 1735392316 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735392316 +0800

添加枚举类

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
ex&tree b3950881482db1653fbc1e2a5a0e3ece1c428dc9
parent f24893d6b89c41e9f2305d2c9c5ccd1be17eb7e1
author liumingxiang <liumingxiang1@huawei.com> 1735388010 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735388010 +0800

添加since

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
a)x&tree e64c3c121122415fe78191e5b5e6d0b763b704b7
parent e6f88b16e457b2999ac4966d64d27f75caf450f7
author Steven <duanzhengteng@huawei.com> 1735381089 +0800
committer Steven <duanzhengteng@huawei.com> 1735381089 +0800

add avrecorder ndk interfaces

Signed-off-by: Steven <duanzhengteng@huawei.com>
]x]tree ef6d590c88d1769b14fc33d61807a3016b04b158
parent 26885861abdadbd98b544520ff38923cc238af1e
parent 6c6c75b3fb3ca234f47fd5acb7060e16ae7ee698
author openharmony_ci <120357966@qq.com> 1735378359 +0000
committer Gitee <noreply@gitee.com> 1735378359 +0000

!2003 新增支持监听鼠标事件的ndk接口
Merge pull request !2003 from 韦国宁/masterzxLtree 6b95997722812d6dad88bf424d2057052ca8eb88
parent 91b834b7c6f462080f1e57cdd3b203c42ff6b18e
parent 5d85d9d874c5d8e89285345e0aeff79c4ad8940f
author openharmony_ci <120357966@qq.com> 1735367337 +0000
committer Gitee <noreply@gitee.com> 1735367337 +0000

!1833 add group tag for asset
Merge pull request !1833 from xinchengcai/mastercxbtree 56f06705235b9268dbc544c2443076516c0b1f30
parent 91b834b7c6f462080f1e57cdd3b203c42ff6b18e
author zhangjinyu101 <zhangjinyu101@huawei.com> 1733991659 +0800
committer zhangjinyu101 <zhangjinyu101@huawei.com> 1735365706 +0800

TimePicker组件支持配置开始时间和结束时间C接口定义

Signed-off-by: zhangjinyu101 <zhangjinyu101@huawei.com>
@ <xMtree 2ce5ad73242ac0863b847516316e4b13d8724c1c
parent 90446664a3732dd23162d3e4923b0de940884f46
parent dd692c435927250e78147d444f9ba34f407be23e
author openharmony_ci <120357966@qq.com> 1735357564 +0000
committer Gitee <noreply@gitee.com> 1735357564 +0000

!2202 checkboxgroup capi
Merge pull request !2202 from Tintin9529/checkboxgroupBb^x:tree 84f640075b54b0a63e0d9e86e74d79b9a02767d9
parent 65ad55450d312b49462130830588c8a4c26926d7
parent 3ca79141c0be4b9f1ad707d0c60f33c78db2c268
author openharmony_ci <120357966@qq.com> 1735356497 +0000
committer Gitee <noreply@gitee.com> 1735356497 +0000

!2005 Fix API_sdk_c
Merge pull request !2005 from cjj/masterw[Sx+tree 86bf7449c11a82e0ac7e516e0680be50e1e6cb6b
parent 65ad55450d312b49462130830588c8a4c26926d7
author 郭旭 <guoxu34@huawei.com> 1735349658 +0000
committer Gitee <noreply@gitee.com> 1735349658 +0000

update multimodalinput/kits/c/input/oh_input_manager.h.

Signed-off-by: 郭旭 <guoxu34@huawei.com>axQtree 54f3d52a4f3b45687fe9d9534af0c4a4f3db6916
parent 65ad55450d312b49462130830588c8a4c26926d7
author yangqirun <yangqirun3@huawei.com> 1735348127 +0800
committer yangqirun <yangqirun3@huawei.com> 1735348127 +0800

fix interface error

Signed-off-by: yangqirun <yangqirun3@huawei.com>
Change-Id: I9008a4df756625aa42618e30ca06f16a5cc9266c
kgx6tree d983383a52efce65e9d4b8f1f3f0405149f949a5
parent a89d2156a6f6a6351bc6c4c7aaa559b059054a3f
author 韦国宁 <weiguoning2@huawei.com> 1733926954 +0800
committer 韦国宁 <weiguoning2@huawei.com> 1735306664 +0800

新增支持监听鼠标事件的ndk接口

Signed-off-by: 韦国宁 <weiguoning2@huawei.com>
xxStree 5b4d501e6c1f2f20d0be29cc8063cfad3c25c0e2
parent e9ce61bb18601c5a0ab62585857d6eeccebf97cd
parent 56ce18cf7f40f3502f1cd5566596596af8eb1b50
author openharmony_ci <120357966@qq.com> 1735303527 +0000
committer Gitee <noreply@gitee.com> 1735303527 +0000

!2110 jd ndk jsb api16
Merge pull request !2110 from jianglinyang/master-jd-ndk-api16fxEtree b9bb0ca0612766234e9c8e4572c8df58b452551d
parent b172b29dcb49301b0e16f1759cca0a6c9f0dde3e
parent caf20623e00a0107d57aedb832187f299519b233
author openharmony_ci <120357966@qq.com> 1735289763 +0000
committer Gitee <noreply@gitee.com> 1735289763 +0000

!2166 api14to16
Merge pull request !2166 from liumingxiang/master_api16`ȚxZtree f9ba5c4cb031917d9c17392db03194670277d5cd
parent fd73f4eeacf8034004c911ae86f7fb5bdfe91612
parent d96e23a59962d370b64ae4e1b3dcca66f24307d3
author openharmony_ci <120357966@qq.com> 1735285902 +0000
committer Gitee <noreply@gitee.com> 1735285902 +0000

!2135 change getPressedKeys note
Merge pull request !2135 from wangxiuxiu96/keyEventNote1225ti\x#tree 787ea55b7ad8936d6db3c291883fbdfcdd89eb9c
parent 81f7fb61a7e7c89c8dd31d0f4ca1d98d2a0ab48d
author 邹林肯 <735001321@qq.com> 1735285007 +0000
committer Gitee <noreply@gitee.com> 1735285007 +0000

update arkui/ace_engine/native/native_type.h.

Signed-off-by: 邹林肯 <735001321@qq.com>_x#tree 0fd8959979e3264c0f69335eba64d8c93275ee51
parent d8e447e72f2f15b6c831064da0cacc26882e4a3b
author 邹林肯 <735001321@qq.com> 1735284731 +0000
committer Gitee <noreply@gitee.com> 1735284731 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 邹林肯 <735001321@qq.com>_]x$tree e838d182cadda022f7dc02e3da7ef7f250c19435
parent 7167209c8e4a2b10861279e6c89470f9944f570b
author Tintin9529 <tantingting5@huawei.com> 1735277161 +0800
committer Tintin9529 <tantingting5@huawei.com> 1735284210 +0800

checkboxgroup capi

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
ZHxtree 47d26133c0564a2aa29996ec163edfa98d9396b5
parent 7167209c8e4a2b10861279e6c89470f9944f570b
parent b951799518665036bf5278c1dc38c193fcec28f5
author openharmony_ci <120357966@qq.com> 1735278618 +0000
committer Gitee <noreply@gitee.com> 1735278618 +0000

!2192 TimePicker组件支持12小时制时上午下午跟随时间联动
Merge pull request !2192 from Zhang Jinyu/timepicker_capiևܓxctree 4c267caf07dd89c7e3b2f47d05519ea783f8bc8f
parent 9d3f2de438c16ccd66c460ee79e2c9b2f2c3a4c0
parent dd627b8e5f7ca020ab586b1902f6c35b2a204cb9
author openharmony_ci <120357966@qq.com> 1735269660 +0000
committer Gitee <noreply@gitee.com> 1735269660 +0000

!2133 修改 NODE_IMMUTABLE_FONT_WEIGHT 英文注释
Merge pull request !2133 from LuckClover/Commentqx^tree b8392726d27718fb6f4409b0da6cf3c4c9e27b72
parent 70d899c500b7fc281e231689ffef84b6d23060c5
parent cf1c3281c93baa7dadcb165d60272a70c2d53df3
author openharmony_ci <120357966@qq.com> 1735224355 +0000
committer Gitee <noreply@gitee.com> 1735224355 +0000

!2056 MouseAction add cancel event
Merge pull request !2056 from wangxiuxiu96/mouseCancel_masterRKk>xBtree 59c01c8c180bc2d221a841429263225b870a58a5
parent 58bafbfbb8d41b03ccc8387e8886d4b75b5072d9
parent cb7a4e64ebec3d0ce498c0890f4590964456ae3c
author openharmony_ci <120357966@qq.com> 1735216987 +0000
committer Gitee <noreply@gitee.com> 1735216987 +0000

!2178 image API整改
Merge pull request !2178 from fandongyu/master*b#xNtree 1c235b019292e1e6d083bb49c9a58163cc87b5b2
parent 6e681f014c0d5a3c89141e842a1e5b1c001a9e01
parent 4e371fc48e47379646a6a84d35e1319b54db17a5
author openharmony_ci <120357966@qq.com> 1735216550 +0000
committer Gitee <noreply@gitee.com> 1735216550 +0000

!2107 progress支持CAPI代码优化
Merge pull request !2107 from 王关/masterqkxtree 0f0a5cdbfb506a63e331323f624b7d38bd75d68e
parent 6e681f014c0d5a3c89141e842a1e5b1c001a9e01
author 李一鸣 <liyiming21@huawei.com> 1735215968 +0800
committer 李一鸣 <liyiming21@huawei.com> 1735215968 +0800

add showCursor

Signed-off-by: 李一鸣 <liyiming21@huawei.com>
_0xZtree 534f28256ed10c9a4a59cc923f1d2b976a4a7911
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author Zhang Jinyu <zhangjinyu101@huawei.com> 1735204517 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1735204517 +0800

TimePicker组件支持12小时制时上午下午跟随时间联动

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
obxptree a8d35355565ae527c46de837bc6581354533167e
parent e2ee56cb5bf01252b2e5927e22f61ce1a228a2c8
author sqwlly <shiqiwei4@huawei.com> 1735203591 +0000
committer sqwlly <shiqiwei4@huawei.com> 1735203829 +0000

OH_NativeImage_GetBufferMatrix version change Signed-off-by: s30029175 <shiqiwei4@huawei.com>

Signed-off-by: sqwlly <shiqiwei4@huawei.com>
Change-Id: I8cb07f7341da29464f1c557f770734b930f1b783
|9xntree 668e2ca46e2a0b846eb54d14b239e32c6135c645
parent 42b8b4881ff29fb9bd8abb3dc5e2d9d638fe4896
parent 17bccabd307443a650cbe1c89b8a1a9f896eebf9
author openharmony_ci <120357966@qq.com> 1735178229 +0000
committer Gitee <noreply@gitee.com> 1735178229 +0000

!2144 TextPicker组件支持声振能力
Merge pull request !2144 from Tintin9529/TextPickerEnableHapticFeedbackyםx-tree 0de13405c19ba0bfb6cc5187c29da7d9aa594caa
parent 930b28b87e10395d5f493ca7a5761d47c2cb2f80
author liumingxiang <liumingxiang1@huawei.com> 1735134713 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735134713 +0800

回退drawingArray

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
0cex/tree 68c51f0d1a0cc0bb476f6185ce2c4333020373e3
parent 5cd4868f5a9095a1b9957e10d9eb929e9e8d1769
author liumingxiang <liumingxiang1@huawei.com> 1735130711 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735130711 +0800

整改遗漏的api14

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
,exrtree aa7b649bfad7a888145d8e6d50a93abc2937a04c
parent dc24fac8c05be90abed5ad32101528f445c56403
parent 902fbe6a6c32568a643d827d1784a17587933999
author openharmony_ci <120357966@qq.com> 1735130465 +0000
committer Gitee <noreply@gitee.com> 1735130465 +0000

!2073 CAPI:TextInput/TextArea支持halfLeading 
Merge pull request !2073 from wangxiuxiu96/halfLeading__sdk_c_masterosx0tree 4ba7049db31871e90676056b2c88f42fa8f8f936
parent f131d642da46c3bdabff5e0d7b84b46559549862
author liumingxiang <liumingxiang1@huawei.com> 1735128451 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735128451 +0800

删除多余的修改

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
hʐx0tree fe11460dd2a86cbd15e1153a230201242fb1e7ca
parent c2af9a19ed48ffef413f79ba406aae04a09e6843
author liumingxiang <liumingxiang1@huawei.com> 1735128347 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735128347 +0800

删除多余的修改

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
ix$tree 93d52474269609d339f92e51f1f8c81e579be019
parent fa55897cdadfcbda2d4ae007be48ea562dcfc961
author liumingxiang <liumingxiang1@huawei.com> 1735128201 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735128201 +0800

api14to16

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
0]}xStree 8c54293c255dbe55483abdb199d3168408ab403e
parent 3306f918f9f7f362680b6095dc3d43293ae11516
parent 82fb47443eb8b7c2857f0033cc1e66cec513ef49
author openharmony_ci <120357966@qq.com> 1735122565 +0000
committer Gitee <noreply@gitee.com> 1735122565 +0000

!2109 新增Muxer封装设置参数接口
Merge pull request !2109 from 杨鹏/master#qʑxAtree 11ba0015d6678dd9d41af05a1850b8c607e86faf
parent 0bfa1f807102ba8079aac6f6607c4f5f6e7475bb
parent 3306f918f9f7f362680b6095dc3d43293ae11516
author liumingxiang <liumingxiang1@huawei.com> 1735119772 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735119772 +0800

Merge remote-tracking branch 'upstream/master'
dxqtree d04fef0af6a2ebde045aacf4d8189dd8c927ac9e
parent e2ee56cb5bf01252b2e5927e22f61ce1a228a2c8
parent 5b2a7016149d1ea3ba4593714549264877ceb5c4
author openharmony_ci <120357966@qq.com> 1735118400 +0000
committer Gitee <noreply@gitee.com> 1735118400 +0000

!2114 SDK-C支持EdgeEffectOptions对象新增属性
Merge pull request !2114 from Zhang Jinyu/edgeEffect_sdk_c1224Q,yx^tree 420d62b7a23e5469e36850ef49bb47346c92a913
parent 244ccb23eb140bcc57913bc842cca1328f107143
parent 6fb52a51a65345784d499bf72341748cdbe5d912
author openharmony_ci <120357966@qq.com> 1735116557 +0000
committer Gitee <noreply@gitee.com> 1735116557 +0000

!2131 app_hicollie事件新增hiappevent订阅
Merge pull request !2131 from 郑冬冬冬/mastertxYtree fbd000fb1a908d4fb2a78373b8267f67ca3fac68
parent 5023ce1c8a67c65b7865e0f2cda279a5f658a65c
parent c05badf0ead3afd41c896462493b5be979f15277
author openharmony_ci <120357966@qq.com> 1735111211 +0000
committer Gitee <noreply@gitee.com> 1735111211 +0000

!2111 修复syscap_ndk.h中@file标签错误
Merge pull request !2111 from 林楠木/master4t%x)tree ee1a99b86e35f5e5034f66183f1263f54f27fcac
parent b775d6e02374fef5d5f2c1ed23c52d0d5a166ea4
author wangxiuxiu <wangxiuxiu9@huawei.com> 1735092950 +0800
committer wangxiuxiu <wangxiuxiu9@huawei.com> 1735107596 +0800

change getPressedKeys note

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei.com>
)`xAtree a2818ecc3e32a2f529ce82200f86a41c1f3ed876
parent fb56f8c05c36faae4e0d00fa9f6568ada4f929aa
parent 5023ce1c8a67c65b7865e0f2cda279a5f658a65c
author liumingxiang <liumingxiang1@huawei.com> 1735107484 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1735107484 +0800

Merge remote-tracking branch 'upstream/master'
tex4tree f73cc1d8690557f94813865b3c3179f8e535d9c8
parent 352f0d1a6db6126a694e62f9c94211f5d55ab400
author Tintin9529 <tantingting5@huawei.com> 1735105299 +0800
committer Tintin9529 <tantingting5@huawei.com> 1735105299 +0800

TextPicker组件支持声振能力

Signed-off-by: Tintin9529 <tantingting5@huawei.com>
gxStree 2beeefbfd424736d84515cde03cad49517a23050
parent ea4b494cc83b47d5213d5ef059887913d153c2cd
parent 7fb995d2c6b157c90a9c0498961221db48eb00be
author openharmony_ci <120357966@qq.com> 1735103947 +0000
committer Gitee <noreply@gitee.com> 1735103947 +0000

!2091 Swiper: pageflipmode change 14 to 15
Merge pull request !2091 from Hu_zq/mastere`xPtree 5748477d01d3a179bedc13be7578cfa175a2bfd7
parent 0664d767cc411f3e2af1fe8c067aa673574dd84b
parent 57be09eed70ee2ca3dc555002653f48aa4877754
author openharmony_ci <120357966@qq.com> 1735101984 +0000
committer Gitee <noreply@gitee.com> 1735101984 +0000

!2128 progress线性样式注释补充
Merge pull request !2128 from 王关/masterp
xBtree 6272230b699702eaa641f2616d7ce3890173021e
parent 7d1077379cc58ebdb2f6f76dcbf43d282f9a7e8d
parent 91a9805e890c5d1009f4369ba36799590760fefa
author openharmony_ci <120357966@qq.com> 1735097622 +0000
committer Gitee <noreply@gitee.com> 1735097622 +0000

!1948 image API整改
Merge pull request !1948 from fandongyu/masterWaQxUtree 79c6208b30ddc41aedbd0f1eb8d19266dc9d724a
parent b775d6e02374fef5d5f2c1ed23c52d0d5a166ea4
parent 8a1a3fea6705c47b2fb76cc642cfc98a33a0415d
author openharmony_ci <120357966@qq.com> 1735095386 +0000
committer Gitee <noreply@gitee.com> 1735095386 +0000

!2103 C-API支持添加下一帧回调
Merge pull request !2103 from wangxiuxiu96/c-api1+qx8tree c45335eb84dad8a30010519a8b55a74e9127d94d
parent b775d6e02374fef5d5f2c1ed23c52d0d5a166ea4
author zoulinken <zoulinken1@huawei.com> 1735043579 +0800
committer zoulinken <zoulinken1@huawei.com> 1735094552 +0800

提交根据节点id获取节点能力的接口

Signed-off-by: zoulinken <zoulinken1@huawei.com>
_sSxftree bd6787bcb5677059bdee01c11f4a731c637fdde0
parent b775d6e02374fef5d5f2c1ed23c52d0d5a166ea4
author wangtao <wangtao487@huawei.com> 1735090106 +0800
committer wangtao <wangtao487@huawei.com> 1735090106 +0800

修改 NODE_IMMUTABLE_FONT_WEIGHT 英文注释

Signed-off-by: wangtao <wangtao487@huawei.com>
Change-Id: Id0a6c2340a8586307aa8faf772465ae568d78739
rΘx8tree bc87969f1e6a3c0092c81862ef506c9c167ddc6f
parent b775d6e02374fef5d5f2c1ed23c52d0d5a166ea4
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1734342758 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1735044277 +0800

TextInput/TextArea支持halfLeading

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
9g;x^tree 9aa737465b596c032b9e1c9c5fb71c808fbb535e
parent 352f0d1a6db6126a694e62f9c94211f5d55ab400
parent 0b57084fed4f95ba86be98338383d03b825debce
author openharmony_ci <120357966@qq.com> 1735042806 +0000
committer Gitee <noreply@gitee.com> 1735042806 +0000

!2066 新增 Text 字体粗细设置接口，此接口设置的字体粗细不随系统设置而变化
Merge pull request !2066 from LuckClover/ImmutableFontWeightVWxtree ca9c132b1ef0aa94ab2f8ad1a8f43d03db545e3f
parent 8f627ecb3e540a42f86c2559261f0e662b64c134
author AnBetter <wangguan27@huawei.com> 1734958686 +0800
committer AnBetter <wangguan27@huawei.com> 1735039613 +0800

代码优化

Signed-off-by: AnBetter <wangguan27@huawei.com>
jXx+tree 36be2d76ca313dcd8932f744ac7e8d5b39fbea60
parent 352f0d1a6db6126a694e62f9c94211f5d55ab400
author 郑冬冬冬 <zhengchengkai@huawei.com> 1735039299 +0800
committer 郑冬冬冬 <zhengchengkai@huawei.com> 1735039299 +0800

Message:fixCodes

Signed-off-by: 郑冬冬冬 <zhengchengkai@huawei.com>
O]jxTtree 37c08029288dd4813db99dfdd7d5dfdafb52f46e
parent 0575fcffbf3ba5196d26526a822a2674c081654a
parent a2d30e094613cdd49fb92817df9902de70bf8234
author openharmony_ci <120357966@qq.com> 1735035540 +0000
committer Gitee <noreply@gitee.com> 1735035540 +0000

!2063 【napi】接口文件注释修改
Merge pull request !2063 from shilei91/masterpxitree 60a8bc40f527bcfbf99d15a12f2e879c3bfdefe1
parent 24050077821a231d0a16e285ab3e5852750e5354
parent ad290878c9dc208fa3a521c6a67bd4af43748e52
author openharmony_ci <120357966@qq.com> 1735033787 +0000
committer Gitee <noreply@gitee.com> 1735033787 +0000

!2078 TextPicker支持自定义每一列的宽度
Merge pull request !2078 from Zhang Jinyu/textpicker_12206yCx&tree 0e9b13b98b3cb08c4ebd36f4584af5934f9e043c
parent 24050077821a231d0a16e285ab3e5852750e5354
author AnBetter <wangguan27@huawei.com> 1735032096 +0800
committer AnBetter <wangguan27@huawei.com> 1735032096 +0800

progress线性样式注释补充

Signed-off-by: AnBetter <wangguan27@huawei.com>
ec@x"tree c98a1bd4332064ae83690ceedc6bbff5120a4486
parent 25cf552e3289250f7a0c379124ca421631507115
author 董炜峰 <dongweifeng4@h-partners.com> 1735025919 +0800
committer 董炜峰 <dongweifeng4@h-partners.com> 1735025919 +0800

add pcm

Signed-off-by: 董炜峰 <dongweifeng4@h-partners.com>
F~bxMtree f9ff860cf134b07b7be4ae30cb13e3ea8d2bf8e2
parent 2991426b3b320e12267224c91214310d4febaa06
author shilei <shilei91@huawei.com> 1734532197 +0800
committer shilei <shilei91@huawei.com> 1735023137 +0800

modify napi interface notation

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I82fb77c0f7c68aef83d8467dd0a135de30ebae6e
Zfxtree 0c967a798267e67fcef818dca211cfa9163dde8b
parent 560f3cc62633f35bad3297504653444869a41005
author wangxiuxiu <wangxiuxiu9@huawei.com> 1734490361 +0800
committer wangxiuxiu <wangxiuxiu9@huawei.com> 1735021655 +0800

add mouse cancel

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei.com>
U[!xLtree ac8930800a7bad7bd7c7d79de671319621efa13d
parent 24050077821a231d0a16e285ab3e5852750e5354
author zhangjinyu101 <zhangjinyu101@huawei.com> 1735018350 +0800
committer zhangjinyu101 <zhangjinyu101@huawei.com> 1735018350 +0800

SDK-C支持EdgeEffectOptions对象新增属性

Signed-off-by: zhangjinyu101 <zhangjinyu101@huawei.com>
npUxHtree 39cf2a00a7e3429c907f8857db6fa9581f476534
parent a0cd9505e7045c30645afda576db65c0f72ca005
parent 0613561ba9c0932f3f97f4fec8f79a67cc123478
author openharmony_ci <120357966@qq.com> 1735014354 +0000
committer Gitee <noreply@gitee.com> 1735014354 +0000

!2095 add hilog ndk interfac
Merge pull request !2095 from liuyifei/masteraڗxGtree 6dcac36388d9d3ae74f7e82ce1e07a98de994cc9
parent 8f627ecb3e540a42f86c2559261f0e662b64c134
parent 2de67dbd771917dafa32d0f59f01fb2ce5493dcb
author openharmony_ci <120357966@qq.com> 1735013584 +0000
committer Gitee <noreply@gitee.com> 1735013584 +0000

!2105 修复文档描述错误
Merge pull request !2105 from 邹林肯/spnxtree 8c53757be34b95d6332b724d841231779103cec4
parent 7187513be632fd9ecd4072dc9419ffac792cc771
author peng <yangpeng43@huawei.com> 1735011581 +0000
committer peng <yangpeng43@huawei.com> 1735011581 +0000

modify comment

Signed-off-by: peng <yangpeng43@huawei.com>
fP,xtree 3b3fe3dfdc6c9d6729531db6fda48ff71f181a30
parent 5f0e7e054ec39e68fa3b48b984694a59bf72229e
author peng <yangpeng43@huawei.com> 1735009161 +0000
committer peng <yangpeng43@huawei.com> 1735009161 +0000

modify comment

Signed-off-by: peng <yangpeng43@huawei.com>
fuQxtree 016263c10449d077f54bcff4cd12238b92c506f9
parent 9283479f450c3bc566fe5ee02f511796b1270401
author peng <yangpeng43@huawei.com> 1735009000 +0000
committer peng <yangpeng43@huawei.com> 1735009000 +0000

modify comment

Signed-off-by: peng <yangpeng43@huawei.com>
Oxx[tree 6c5055ed02fdf3e789713f63ef3178e116e8e506
parent 8f627ecb3e540a42f86c2559261f0e662b64c134
author lwx1281857 <linnanmu@h-partners.com> 1735008678 +0800
committer lwx1281857 <linnanmu@h-partners.com> 1735008678 +0800

Description: Code optimization
Feature or Bugfix: Bugfix
Binary Source:No

Signed-off-by: lwx1281857 <linnanmu@h-partners.com>
l9xtree 4e03037c3d1a76adf8917cc78217ad81049459bf
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author j00466033 <jianglinyang@huawei.com> 1735008331 +0800
committer j00466033 <jianglinyang@huawei.com> 1735008331 +0800

jd-ndk-api16

Signed-off-by: j00466033 <jianglinyang@huawei.com>
NTxtree c68f61011227fd78fd23252d0e3b0172f6b741de
parent 7892505e247c17ab1ba06c752358acb623a1a65c
author peng <yangpeng43@huawei.com> 1735006463 +0000
committer peng <yangpeng43@huawei.com> 1735006463 +0000

add space line

Signed-off-by: peng <yangpeng43@huawei.com>
!Oxtree 985aa90f40acae6fb16f4851f134efa2f2b7ce71
parent a7b89f10268cf86e675b46b03f42f79cf11ad996
author peng <yangpeng43@huawei.com> 1734963655 +0000
committer peng <yangpeng43@huawei.com> 1734963655 +0000

modify comment

Signed-off-by: peng <yangpeng43@huawei.com>
WQxtree 4c7d7bbc85f4715b64eb9192371430795cc7ec4f
parent 88dda9473388356ce723d66481440efeb02515e3
author l00844999 <lizhan12@huawei.com> 1734962842 +0800
committer l00844999 <lizhan12@huawei.com> 1734962842 +0800

drawing errcode
Signed-off-by: l00844999 <lizhan12@huawei.com>
OoxXtree 843f0f9b7bac71568df31c05258eedae785ad39f
parent 35493bde1e8673f575994eeef9c3554c024459b8
parent 9a5a14698c3e732065f8e0240bc2be16d1752e56
author openharmony_ci <120357966@qq.com> 1734956427 +0000
committer Gitee <noreply@gitee.com> 1734956427 +0000

!2064 回合：Preferences support CLKV
Merge pull request !2064 from bluhuang/master_clkvqkxx<tree f938c7710104575fbec26601fd45b234c06dee93
parent 35493bde1e8673f575994eeef9c3554c024459b8
author 董炜峰 <dongweifeng4@h-partners.com> 1734956345 +0800
committer 董炜峰 <dongweifeng4@h-partners.com> 1734956345 +0800

增加avi视频码流格式支持

Signed-off-by: 董炜峰 <dongweifeng4@h-partners.com>
Նvx!tree c0b3c8a9c20b87e207e3cbc0a3b133399376c734
parent 35493bde1e8673f575994eeef9c3554c024459b8
author zoulinken <zoulinken1@huawei.com> 1734956102 +0800
committer zoulinken <zoulinken1@huawei.com> 1734956102 +0800

修复文档描述错误

Signed-off-by: zoulinken <zoulinken1@huawei.com>
cxrtree ba496aa417a55b7c0ee2d97b3fe7cea9a55dfaa3
parent e4d872a9d70bc381f1169b7f0e02c51df5df4d4f
parent 2c3f9347c556edfd12275efc1d3ba6eae636e116
author openharmony_ci <120357966@qq.com> 1734948760 +0000
committer Gitee <noreply@gitee.com> 1734948760 +0000

!2076 【hiappevent】支持调整系统事件订阅触发条件
Merge pull request !2076 from liujiaxing19/xx1220xxshxjtree 1d66b29ccc39b95d9a83845b4f444e64657f740e
parent e4d872a9d70bc381f1169b7f0e02c51df5df4d4f
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1732869711 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1734948308 +0800

C-API支持添加下一帧回调

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
Change-Id: If6d345808c11ce1efbc946ec9081651bb63c6501
\zxNtree 0f9909eed4f38f212eecb689f6abb9e77661183f
parent 7efa348a3c3e37d658f2d1f576667f2eb3cba6b0
parent 6bbbbb18282f620b1ba3cd8c9ee39a08bac6f98c
author openharmony_ci <120357966@qq.com> 1734946602 +0000
committer Gitee <noreply@gitee.com> 1734946602 +0000

!2074 修改接口注释
Merge pull request !2074 from wangxiuxiu96/keyEventNoteLlxGtree 9a8dd98c2e99759911283928a9761df7a9d49da2
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
parent 98ba8141add1a1bb1d560504369f09a5409f7afb
author openharmony_ci <120357966@qq.com> 1734942432 +0000
committer Gitee <noreply@gitee.com> 1734942432 +0000

!2036 新增 JSVM 接口
Merge pull request !2036 from 王翊民/jsvm_apifgğxtree 5c03ba66a7a32299bd37a4847e4ac5b6bd50c871
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1734940518 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1734940518 +0800

[L] capi按键事件支持拦截和分发
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
u xytree 878376a1e8d2325d7e379650090467389bd1f53b
parent 76ed11760a8d8da1015d21e8e63f3d50b9def773
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author liujiaxing19 <liujiaxing19@huawei.com> 1734933528 +0000
committer Gitee <noreply@gitee.com> 1734933528 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into xx1220xx

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>zxCtree 86da4165ae7ad3a1b1d331558d310fbf64f73c03
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author sd_wu <wudongsheng3@huawei.com> 1734925680 +0800
committer sd_wu <wudongsheng3@huawei.com> 1734925680 +0800

capi xcomponent support surface rect setting and enable analyzer

Signed-off-by: sd_wu <wudongsheng3@huawei.com>
?Whxtree c3c8bc1257c1d583a79fc035ccdad7c3841fbdbb
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author liuyifei <liuyifei20@huawei.com> 1734922012 +0000
committer Gitee <noreply@gitee.com> 1734922012 +0000

add hilog ndk interface

Signed-off-by: liuyifei <liuyifei20@huawei.com>W4x%tree 5312684ce341d88b1d326a78d218edda7afe4094
parent 560f3cc62633f35bad3297504653444869a41005
author wangxiuxiu <wangxiuxiu9@huawei.com> 1734678977 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1734869339 +0800

change keyEvent note

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei.com>
\xotree d0dda30b7120333d3e1309a69ab29055708b2dbc
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author zcdqs <junfeng.lijunfeng@huawei.com> 1734837014 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1734837014 +0800

add stop when touched to swiper autoplay

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
Change-Id: I31e41759ec2d2dc645aaf2294f15146b3e2b29d0
 WsxJtree 05913e7b7cd312f8acc7a42af896c1f3d6374172
parent 1c055f094f0ca8542030d049c0ded4c12b20b9ba
author Hu_zq <huzeqi@huawei.com> 1734791295 +0800
committer Hu_zq <huzeqi@huawei.com> 1734791295 +0800

Swiper: pageflipmode change 14 to 15

Signed-off-by: Hu_zq <huzeqi@huawei.com>
Change-Id: Ie349fe4ddec67f9aa34a71a0621fb9dafc56f609
@dx`tree b15895cde48cfeb2244e0965389073ee25e3f8d4
parent 032e36498f6afecc27ef7c527f57e5bf3e1f6578
parent 777b56be42a63347152cd2cd2fc7c09669dc9e16
author openharmony_ci <120357966@qq.com> 1734789736 +0000
committer Gitee <noreply@gitee.com> 1734789736 +0000

!1757 llvm版本更新【windows】增加python3目录
Merge pull request !1757 from HsuYao/mastercvnx;tree 9d8280e4af408eb6b4ca0b3a9b1b029348fb7937
parent ab62e33ac45bf5edc7748ad0101ea26c4489ad97
parent 193bc783e280c0b43221946ca83cdb2afda5f469
author openharmony_ci <120357966@qq.com> 1734788038 +0000
committer Gitee <noreply@gitee.com> 1734788038 +0000

!2080 api link
Merge pull request !2080 from 屑屑屑/masteraxtree 2a7f7cae1a65cb13b218a5cf8c09f8b66853cfc5
parent 8f627ecb3e540a42f86c2559261f0e662b64c134
author peng <yangpeng43@huawei.com> 1734787279 +0000
committer peng <yangpeng43@huawei.com> 1734787279 +0000

add muxer ndk interface

Signed-off-by: peng <yangpeng43@huawei.com>
TExStree 421dd77a665c335feda922d142a945c953569cda
parent 9964c585bbdb113af30fb995d3cb54dbeb1b41ba
parent 6953738017a79424fc22572fbe327b27b7b661a9
author openharmony_ci <120357966@qq.com> 1734785278 +0000
committer Gitee <noreply@gitee.com> 1734785278 +0000

!1827 add qualityPriority interface
Merge pull request !1827 from linchengfeng/mastergjxUtree eeddeaf66245c734cf8c8faf61ef26cd7bbe748a
parent 84b811d71c6c7ef597f4ab431a01e5905cc39fcf
parent b6d5de9b58485c3f1e44616630a2443f9670e5d9
author openharmony_ci <120357966@qq.com> 1734782599 +0000
committer Gitee <noreply@gitee.com> 1734782599 +0000

!2088 TextInput/TextArea CAPI补充
Merge pull request !2088 from wjn/on_change_previewjxWtree 6ffc12b0cf8881e8823ea2b1978a6ea5a010ab2c
parent ebae24c39ec28d80aa65a884116a0e5c3c5b5e51
parent 8d0ae88e94bfb046853da5736def745eaf060c65
author openharmony_ci <120357966@qq.com> 1734779385 +0000
committer Gitee <noreply@gitee.com> 1734779385 +0000

!1959 新增nativebuffer的格式format类型
Merge pull request !1959 from 李辉/format
s=x#tree ef11fca60ad27bc50e377d504f117773b882e084
parent ebae24c39ec28d80aa65a884116a0e5c3c5b5e51
author wanjining <wanjining@huawei.com> 1734778169 +0800
committer wanjining <wanjining@huawei.com> 1734778169 +0800

TextInput/TextArea CAPI补充

Signed-off-by: wanjining <wanjining@huawei.com>
^xDtree 5b32159b7a6aa49ee212de5426a39d077337c86a
parent e37a0161562cbd58ac07a4b697cfb60a328d3f1a
parent 88dda9473388356ce723d66481440efeb02515e3
author openharmony_ci <120357966@qq.com> 1734777935 +0000
committer Gitee <noreply@gitee.com> 1734777935 +0000

!1853 Drawing ThemeFont
Merge pull request !1853 from lizhan/themeFont2`xJtree fdc1f1c5f18165b5ca2bf3dfeaea9008d958711c
parent b399c4abf9abec65294fe71ebcc8431b82675714
parent 9a2c0e8c0bea328c93ce2f834b26c97a4e95bb7a
author openharmony_ci <120357966@qq.com> 1734775756 +0000
committer Gitee <noreply@gitee.com> 1734775756 +0000

!2043 清理API Lint告警
Merge pull request !2043 from WangJiazhen/apilinthvx`tree 436d78b7875d1cf4fc74691eca51a496c47d5129
parent e118cc052c96a22ad6a96b5836f3c70c0d5b2214
parent 4beb03b558fbb96d1abf808243dae6fac36f90e2
author openharmony_ci <120357966@qq.com> 1734775637 +0000
committer Gitee <noreply@gitee.com> 1734775637 +0000

!2083 Progress线性样式增加CAPI接口同步主干
Merge pull request !2083 from 王关/masterqz'xNtree 7fb23a8860704b75e81f3baa29b3c361a69c65b9
parent 468816415460db1d5a76983c74c2729e0233884f
parent 4b807fc806a339b1dc63c55338215a6cef95038d
author openharmony_ci <120357966@qq.com> 1734774996 +0000
committer Gitee <noreply@gitee.com> 1734774996 +0000

!2082 增加processor的ndk接口
Merge pull request !2082 from yangqirun/master|hxRtree 5e82af214e0a573a585139800eb56bb3530019f0
parent bf98d03a688be02842fb5352bbe058c988771709
parent ac4ed7ea66460fffcdcd909cc0fa5e612fc16862
author openharmony_ci <120357966@qq.com> 1734771715 +0000
committer Gitee <noreply@gitee.com> 1734771715 +0000

!2062 新增string&text处理ndk接口
Merge pull request !2062 from sunyaozu/mastermlx*tree b82a7da1db90155885041bfa5d81a86fae9be21a
parent bf98d03a688be02842fb5352bbe058c988771709
author zoulinken <zoulinken1@huawei.com> 1734771576 +0800
committer zoulinken <zoulinken1@huawei.com> 1734771576 +0800

补充注释并消除代码差异

Signed-off-by: zoulinken <zoulinken1@huawei.com>
jx6tree 0283b1ad44b4423fb78e476add6dd3cacbdd70c3
parent bf98d03a688be02842fb5352bbe058c988771709
author AnBetter <wangguan27@huawei.com> 1734762015 +0800
committer AnBetter <wangguan27@huawei.com> 1734770718 +0800

Progress线性样式增加CAPI接口同步主干

Signed-off-by: AnBetter <wangguan27@huawei.com>
nxtree f0863f6f293dd26d7ea0a5b8d2c9c2c3c453d58f
parent 4a5710e2b1d29dcb388d3872dd4ca6d5fa8cf59e
author l00844999 <lizhan12@huawei.com> 1732693003 +0800
committer l00844999 <lizhan12@huawei.com> 1734769558 +0800

Drawing ThemeFont
Signed-off-by: l00844999 <lizhan12@huawei.com>
QÝx]tree 33447d9a1d5e9df93ec785e6ac03db196af91815
parent 56698dbefe5db7f012de1d57cc354960c6dcffa4
author yangqirun <yangqirun3@huawei.com> 1734750916 +0800
committer yangqirun <yangqirun3@huawei.com> 1734750916 +0800

Add ndk interfaces of processor

Signed-off-by: yangqirun <yangqirun3@huawei.com>
Change-Id: I0c0ef03b9fcfb8ab9e24933a64c81a757d9c0747
1nxotree 5f84578e38747683bc8d9cec4701e0210af0ebef
parent eb95a2c8a8590bc1b9deba9fba2505e7c4f9aff2
parent 41030766c566d5e9fce4f081888346937d830c50
author openharmony_ci <120357966@qq.com> 1734708422 +0000
committer Gitee <noreply@gitee.com> 1734708422 +0000

!2021 添加获取 PixelMap 像素内存地址的接口
Merge pull request !2021 from 陈乔异/cqy/access-pixels[|x$tree cdf71003b1cffceb1f942dbddf703050258a5f69
parent 76c87fc561641f5c83beea951932be8c79a10b9c
author 屑屑屑 <jiangwenda5@h-partners.com> 1734693816 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1734694133 +0800

api link fix

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
e&x{tree dffde41bd8548cf92b1be26dd7df1ed29cf1bf94
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author Zhang Jinyu <zhangjinyu101@huawei.com> 1734682494 +0800
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1734682494 +0800

TextPicker支持自定义每一列的宽度。

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
Change-Id: I7f993139dbb364f0a360dba3603b6601a04b68a0
gƓxCtree e103fd403f033d630bb2f233a9e90c22306c565a
parent 56698dbefe5db7f012de1d57cc354960c6dcffa4
parent 3139d839604eebd3aa993ce6e3a921c2480d9d40
author openharmony_ci <120357966@qq.com> 1734681002 +0000
committer Gitee <noreply@gitee.com> 1734681002 +0000

!2035 修复API Lint告警
Merge pull request !2035 from zhouyan/1216uBcxtree 26c3ff8502958f91baa9751e237076e577fe7ca6
parent 2991426b3b320e12267224c91214310d4febaa06
author sunyaozu <sunyaozu@huawei.com> 1734517871 +0800
committer sunyaozu <sunyaozu@huawei.com> 1734668645 +0800

provide icu ndk function

Signed-off-by: sunyaozu <sunyaozu@huawei.com>
@Xx tree c59bbae112b711bb7c9e5abfaaea91ca3f78223a
parent 76c87fc561641f5c83beea951932be8c79a10b9c
author wangyimin <wangyimin15@huawei.com> 1734339290 +0800
committer wangyimin <wangyimin15@huawei.com> 1734665421 +0800

cherry-pick jsvm api

Signed-off-by: wangyimin <wangyimin15@huawei.com>
\'xGtree b8271ef5dc416a0052c75e7d160d19e0fdf1e77e
parent 45ac8a7e215331122a79019f5aed7dca06e8efaa
parent b1005b7e971dff4a2949196dac6d3499ceb18bc3
author openharmony_ci <120357966@qq.com> 1734663367 +0000
committer Gitee <noreply@gitee.com> 1734663367 +0000

!2061 api lint告警处理 
Merge pull request !2061 from zhangkai/masterfxStree 7d5bd0ad5b620fcdb2151fb1e5bdc94d145428da
parent 5a5824c6574504d77ba12049c50ddf8b18d1f978
parent a7e402bdfc158d4629c1f93e1d457465921096f3
author openharmony_ci <120357966@qq.com> 1734620506 +0000
committer Gitee <noreply@gitee.com> 1734620506 +0000

!2048 清理API Lint告警
Merge pull request !2048 from chenjunxiang/20241217_masterhxxtree fa145be8435f244b8703ce62c7a6f547f2344efd
parent 93ff6dc293a20732cec47743da74e2ac3d585c75
parent 5a5824c6574504d77ba12049c50ddf8b18d1f978
author 陈乔异 <chenqiaoyi2@huawei.com> 1734616132 +0000
committer Gitee <noreply@gitee.com> 1734616132 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into cqy/access-pixels

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>OƂ+xytree cadb9ac252ce7b7e39438575aa688584be285179
parent 19f6549088ad1e3dff4c4dc8ecf955a784462de6
parent fbd5ac78a05363b872484428075d5394297754bf
author openharmony_ci <120357966@qq.com> 1734613211 +0000
committer Gitee <noreply@gitee.com> 1734613211 +0000

!1922 增加获取 PixelMap 大小的接口和CreateScaledPixelmap的接口
Merge pull request !1922 from shenshiyi2/master ÀxEtree e1d59455d7d0d18364997c7ede4cd6ffe7c73a03
parent 9fcad3ddc3ab6e6df123643cd04f33eb52760b7a
parent 852b021e5a59765cc9d18370afbe45b4bbf1a255
author openharmony_ci <120357966@qq.com> 1734611084 +0000
committer Gitee <noreply@gitee.com> 1734611084 +0000

!2030 修改注释
Merge pull request !2030 from liumingxiang/master_beYg xftree 6bd56c688a18a4140dd520d52c41ee29fb0fc7f6
parent d56320653d9670ccf4cbcf256cd4e623d3a4e3bc
parent e4c9f7f69550512242128a59c679835c1a1a72d4
author openharmony_ci <120357966@qq.com> 1734602944 +0000
committer Gitee <noreply@gitee.com> 1734602944 +0000

!1955 screencapture接口 doc信息和参数名不符 整改
Merge pull request !1955 from 杰尼/master{Ɣxtree 9ff5563ba0896bc72d50a4b919204ec3736b8953
parent c69bfaf363f00596463fd791506114b984624b05
author lihui <lihui359@huawei.com> 1733727608 +0800
committer lihui <lihui359@huawei.com> 1734602059 +0800

add native buffer format enum

Signed-off-by: lihui <lihui359@huawei.com>
fSQxMtree 626c39ac7d8cfba16f9b8be8c32c942db6bd2477
parent 091ee9fb95a28da4c3ba9702c5a9aaa8d95ed3d8
parent 62587cacee1c98dcde45ba848d20d4c82a5e79cd
author openharmony_ci <120357966@qq.com> 1734596906 +0000
committer Gitee <noreply@gitee.com> 1734596906 +0000

!1974 list sdk_c相关告警整改
Merge pull request !1974 from 石红杰/1209CoNxMtree 0f48e55e01028ae6963ebb661fa9c771e7e317e8
parent 7bcda5565d5dce76ce663ef825bd479ff3c0b626
parent 0a5fdb674ad9b1e60c76cbaf106da465480a15eb
author openharmony_ci <120357966@qq.com> 1734596795 +0000
committer Gitee <noreply@gitee.com> 1734596795 +0000

!1989 【swiper】API lint 排查
Merge pull request !1989 from ShihaoWang/1210S8hx?tree 264bf882c22dd21a6b0e458167862f906c33218e
parent 4f7bbf46ff79a719f77810b5a3251f44c6b7af1b
parent 6f1d244dd87b8f954832f953ce32fd9a73e6f573
author openharmony_ci <120357966@qq.com> 1734596312 +0000
committer Gitee <noreply@gitee.com> 1734596312 +0000

!1843 添加枚举值
Merge pull request !1843 from 杨欢欢/ndk2fxOtree f349661a714b45728c14832e16cf04c642bf93b9
parent 2991426b3b320e12267224c91214310d4febaa06
parent 9ec08c84f68776db812a670fcb76252ad8658bb2
author openharmony_ci <120357966@qq.com> 1734574874 +0000
committer Gitee <noreply@gitee.com> 1734574874 +0000

!2060 添加unprocessed流属性
Merge pull request !2060 from owenCreeper/masteriGxtree 4c18d88238e54d0c61af3246a2cbc7339ab01ddd
parent 2991426b3b320e12267224c91214310d4febaa06
author bluhuang <bluhuang@icloud.com> 1730877184 +0800
committer bluhuang <bluhuang@icloud.com> 1734572234 +0800

preferences support CLKV

Signed-off-by: bluhuang <bluhuang@icloud.com>
W}xRtree 12f03cf365e3595194fc51b87227be3fbefe3ef8
parent 1c561e4613260371990f6f4a379052dc6f05052d
parent 9db815469fd91980b415f89d23efa6d1693f8654
author openharmony_ci <120357966@qq.com> 1734510379 +0000
committer Gitee <noreply@gitee.com> 1734510379 +0000

!2052 c api lint 整改
Merge pull request !2052 from 孙鑫炎/dev_cApiLinkProbPlusixctree 31ef74722a9c00cc6bac7c8c082f486629159457
parent 5cf522f623bddae47b94fa0ce024ffc2e5702bb6
parent e66f86fd32c6649428f4d6edab5647e8b44ac8aa
author openharmony_ci <120357966@qq.com> 1734510091 +0000
committer Gitee <noreply@gitee.com> 1734510091 +0000

!2031 新增CAPI创建TEXTURE类型xcomponent接口
Merge pull request !2031 from WangYing/sdkc241216hHtxMtree b2ee988ca73ac7efcd09dcae9863b03b84c83a54
parent a5eac431b8fa9c8ba5879705a70f4a01b90b0add
parent d5f27e94308d0f100d6693d39afd25bcf660bca1
author openharmony_ci <120357966@qq.com> 1734509545 +0000
committer Gitee <noreply@gitee.com> 1734509545 +0000

!2028 修改注释
Merge pull request !2028 from wujinhui/bu_fix_mod_annotationEkxtree 5985448ead14aaed7a9a11ee8410b06ac85a44f2
parent a5eac431b8fa9c8ba5879705a70f4a01b90b0add
author zhangkai <zhangkai269@huawei.com> 1734509106 +0800
committer zhangkai <zhangkai269@huawei.com> 1734509106 +0800

api lint告警处理

Signed-off-by: zhangkai <zhangkai269@huawei.com>
\xtree 14b5ed4b4acca4e7e4409d137bf30266401a21d8
parent a5eac431b8fa9c8ba5879705a70f4a01b90b0add
author owenCreeper <ouhanjun3@huawei.com> 1734506027 +0000
committer Gitee <noreply@gitee.com> 1734506027 +0000

add unprocessed

Signed-off-by: owenCreeper <ouhanjun3@huawei.com>oV<xtree 769888e7f201304b6aaa1cea539b1c1c12a53c59
parent 1fe0653d1ef489bd3a81af6ce1edbca42972e11b
author 陈乔异 <chenqiaoyi2@huawei.com> 1734503114 +0800
committer 陈乔异 <chenqiaoyi2@huawei.com> 1734503114 +0800

增加注释

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>
hdPx?tree 3abdc692bedabf512df9cb47ab79c50981ff0f0c
parent 81d8e2608974dc21ac38db8d0745d4491d85661f
author WangYing225 <wangying397@huawei.com> 1734332992 +0800
committer WangYing225 <wangying397@huawei.com> 1734438937 +0800

补充CAPI创建TEXTURE类型xcomponent接口

Signed-off-by: WangYing225 <wangying397@huawei.com>
ikxVtree d5e92808a21b02d088430cc1c9a2e9825926aabe
parent 20d85c553ac4389c9087a3a5555c13d2e0002461
author sun-xinyan <sunxinyan2@huawei.com> 1734437746 +0800
committer sun-xinyan <sunxinyan2@huawei.com> 1734438070 +0800

CAPI Lint告警整改

Signed-off-by: sun-xinyan <sunxinyan2@huawei.com>
Change-Id: Ie8e63e10bae5a586e9aece6d0a628f299571a039
4m.xbtree 841bb2d2c2a985b32a1f0d8433f5693c93dad1ff
parent a5eac431b8fa9c8ba5879705a70f4a01b90b0add
author chenjunxiang <chenjunxiang4@huawei.com> 1734429511 +0800
committer chenjunxiang <chenjunxiang4@huawei.com> 1734429511 +0800

参数名称修改

Signed-off-by: chenjunxiang <chenjunxiang4@huawei.com>
Change-Id: I1d1d30199733564b67f6fe83d9b0ff3e45ea366f
Rv xQtree fa930bce38f6396569d4890168e834f0ce4c882b
parent 404617e967d7bece245b2f9f040374ff53602097
author y30053096 <yangjinhuan@huawei.com> 1732624444 +0800
committer y30053096 <yangjinhuan@huawei.com> 1734420854 +0800

add enum for ndk
Signed-off-by: y30053096 <yangjinhuan@huawei.com>

Change-Id: I000536d9cd10d1f3092ff3f0019766dc5e341313
bxtree dbe5661f5af385b65cc2d03a5cf20a8fa0dc55da
parent 76c87fc561641f5c83beea951932be8c79a10b9c
author WangJiazhen <wangjiazhen4@huawei.com> 1734403185 +0800
committer WangJiazhen <wangjiazhen4@huawei.com> 1734403185 +0800

api lint

Signed-off-by: WangJiazhen <wangjiazhen4@huawei.com>
*ZxQtree 1355521a40a7dd8675de3594a7d29b9f83569dfe
parent 76c87fc561641f5c83beea951932be8c79a10b9c
parent 64af266155c56b7a2a0e09a6491cd449f78d3cc7
author openharmony_ci <120357966@qq.com> 1734352187 +0000
committer Gitee <noreply@gitee.com> 1734352187 +0000

!2038 interface_sdk addtogroup fixed
Merge pull request !2038 from wangyifan/master5fwx*tree 1355521a40a7dd8675de3594a7d29b9f83569dfe
parent 76c87fc561641f5c83beea951932be8c79a10b9c
author w30052974 <wangyifan94@huawei.com> 1734347622 +0800
committer w30052974 <wangyifan94@huawei.com> 1734347622 +0800

interface_sdk addtogroup fixed

Signed-off-by: w30052974 <wangyifan94@huawei.com>
YxLtree dba20cf09c63502115e1032a34dc542b3295ebfa
parent 76c87fc561641f5c83beea951932be8c79a10b9c
author zhouyan <zhouyan162@huawei.com> 1734335340 +0800
committer zhouyan <zhouyan162@huawei.com> 1734335340 +0800

修复API Lint告警

Signed-off-by: zhouyan <zhouyan162@huawei.com>
Change-Id: I3abd2498536cbbb3bdb5c302e7638df02334ad9a
Teixqtree 2731f4f4977c6897ddc5c5fe4188d15617685709
parent 81d8e2608974dc21ac38db8d0745d4491d85661f
parent 3ddb3460f520b3a7319c1a2885801bd23ef46979
author openharmony_ci <120357966@qq.com> 1734334278 +0000
committer Gitee <noreply@gitee.com> 1734334278 +0000

!1783 Add JSVM_API to Private and External String
Merge pull request !1783 from chenraozhong/Private_ExternalString1oɗx'tree a4e18954ff68d13040496fc6516fd2e2faccb6ea
parent 81d8e2608974dc21ac38db8d0745d4491d85661f
author liumingxiang <liumingxiang1@huawei.com> 1734332001 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1734332001 +0800

修改注释

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
bx]tree 7f50165311a6c02a233629b6884d844a2b550a6e
parent 404617e967d7bece245b2f9f040374ff53602097
parent b3a18ab67ab8c33bca8027d20e4131351622530e
author openharmony_ci <120357966@qq.com> 1734323286 +0000
committer Gitee <noreply@gitee.com> 1734323286 +0000

!2014 新增设置AccessibilityValue属性接口
Merge pull request !2014 from 屠吉人/master7t*x!tree f145d0e38fc2bd4c43e3db57127b529d23bdbed8
parent 5fd7d87eae4ebdfdd9f68690a75bcbb05bcc84c9
author wujinhui <wujinhui7@huawei.com> 1734318452 +0800
committer wujinhui <wujinhui7@huawei.com> 1734318452 +0800

修改注释中的参数名称

Signed-off-by: wujinhui <wujinhui7@huawei.com>
BgxRtree 5c5ea214726734108f78cdde34aabf5e714fa40d
parent 2428ab11ae104a4c34ee7a63fcb628c7802bf73b
parent 20d85c553ac4389c9087a3a5555c13d2e0002461
author openharmony_ci <120357966@qq.com> 1734164057 +0000
committer Gitee <noreply@gitee.com> 1734164057 +0000

!1951 c api lint 整改
Merge pull request !1951 from 孙鑫炎/dev_cApiLinkProbPlusmj-xKtree 38e16fedff810a96728d63e2d1c8945dfabc4bb4
parent 2b7c39fa60f0681bca4549a9f19ac3ad091f6bce
parent a6aa990daaf2346317d6cc06f7b09b9545c8fa23
author openharmony_ci <120357966@qq.com> 1734087438 +0000
committer Gitee <noreply@gitee.com> 1734087438 +0000

!1846 drawable的注释修改
Merge pull request !1846 from 徐钦锋/sdk1126lxatree 0a3a8299433034cfd91cb1bffb94199a56cc351b
parent 264fcb0e554474f24d6c8874b63d238755e92059
parent a81575b00951e897a619dd9db21831bbc8fe1726
author openharmony_ci <120357966@qq.com> 1734083700 +0000
committer Gitee <noreply@gitee.com> 1734083700 +0000

!1707 供获取应用级沙箱路径的ndk接口
Merge pull request !1707 from sunjiakun/ndk_getDirpxxetree 8aa0e4d20c8902e0c9937aa236b01eeb5d635848
parent f6ec6c1bb07e49096c526cd6627ebb88d420d2cb
author ajajaaj1024 <tujiren@huawei.com> 1733995384 +0800
committer ajajaaj1024 <tujiren@huawei.com> 1734078813 +0800

新增设置AccessibilityValue属性接口

Signed-off-by: ajajaaj1024 <tujiren@huawei.com>
Change-Id: I33c5b1b08216087a3bd841cbe9b9e0edb30c8922
TvxZtree 931af5012a2c0a35528eae30fa8bef1f61219b76
parent f6ec6c1bb07e49096c526cd6627ebb88d420d2cb
parent 5977bc84da6cab941282861ef5fe1089916a6856
author openharmony_ci <120357966@qq.com> 1734010233 +0000
committer Gitee <noreply@gitee.com> 1734010233 +0000

!2008 【轻量级 PR】：api lint告警修改
Merge pull request !2008 from wanglingyi/N/AOrxtree 2c77fbdca92e32a653269de08d66f6b925ad153b
parent 11d15ab9c7450ea72372407940126ed454e26b66
author sunjiakun <sunjiakun5@huawei.com> 1732258624 +0800
committer sunjiakun <sunjiakun5@huawei.com> 1734005363 +0800

back GetResourceDir

Signed-off-by: sunjiakun <sunjiakun5@huawei.com>
DYhxtree 260559ab451badec1025c1364be8c4141b6e06da
parent f6ec6c1bb07e49096c526cd6627ebb88d420d2cb
author sunjiakun <sunjiakun5@huawei.com> 1731479647 +0800
committer sunjiakun <sunjiakun5@huawei.com> 1734005338 +0800

Add ndk interface

Signed-off-by: sunjiakun <sunjiakun5@huawei.com>
 Y{x	tree 931af5012a2c0a35528eae30fa8bef1f61219b76
parent f6ec6c1bb07e49096c526cd6627ebb88d420d2cb
author wanglingyi <wanglingyi4@huawei.com> 1733991244 +0000
committer Gitee <noreply@gitee.com> 1733991244 +0000

12121

Signed-off-by: wanglingyi <wanglingyi4@huawei.com>RLxQtree 478a510c39a547775882feca707330f3b26d5d0c
parent a89d2156a6f6a6351bc6c4c7aaa559b059054a3f
parent a57a230ed12a94752c4e33b7c92c139b5edc188e
author openharmony_ci <120357966@qq.com> 1733985460 +0000
committer Gitee <noreply@gitee.com> 1733985460 +0000

!1785 cursorless axis event capi
Merge pull request !1785 from zhouchaobo/1108_dragePxtree 9b9b062d061fd4498a07f8c2e016a7efc3923e87
parent a89d2156a6f6a6351bc6c4c7aaa559b059054a3f
author cjj <chengjiajun7@h-partners.com> 1733966891 +0800
committer cjj <chengjiajun7@h-partners.com> 1733966891 +0800

fix_code

Signed-off-by: cjj <chengjiajun7@h-partners.com>
Tޗx'tree 3b49d4ca44554c69a3312f738fdfd59bca9593be
parent b34d17c9c223faf9b851b63b53cae8ad967537c1
author liumingxiang <liumingxiang1@huawei.com> 1733929780 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1733929780 +0800

修改分号

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
ncOx9tree c380ca882f51f51a55bafafd15cf7905f6b3bde7
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author liumingxiang <liumingxiang1@huawei.com> 1733924643 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1733924643 +0800

添加自定义字体枚举类

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
2qZx<tree 518b93fa5049ead0d88ff00ee69c0ce516c15ca9
parent 9f9b06441f986cde49e742247d297d40b1902f5a
parent 5408865cd2e695ab58b88ce0a32b86a2f2bb91cb
author openharmony_ci <120357966@qq.com> 1733924344 +0000
committer Gitee <noreply@gitee.com> 1733924344 +0000

!1993 add @addtogroup
Merge pull request !1993 from zzm/masterA^x9tree 21751d5a4560c56e9856ff94a7968714e548fa68
parent 6cbf96866f4133dc98c41f7bcd67c64f80e98ef2
author liumingxiang <liumingxiang1@huawei.com> 1733923917 +0800
committer liumingxiang <liumingxiang1@huawei.com> 1733923917 +0800

添加自定义字体枚举类

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>
aoxMtree 31a32a55fb34d03b0cb43cf56ab1a5eccf3ba19c
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author liumingxiang1 <liumingxiang1@huawei.com> 1733921128 +0800
committer liumingxiang1 <liumingxiang1@huawei.com> 1733921128 +0800

word break新增枚举：WORD_BREAK_TYPE_HYPHEN

Signed-off-by: liumingxiang1 <liumingxiang1@huawei.com>
Bqx'tree 518b93fa5049ead0d88ff00ee69c0ce516c15ca9
parent 9f9b06441f986cde49e742247d297d40b1902f5a
author zzm <zhangzhiming23@huawei.com> 1733886701 +0000
committer zzm <zhangzhiming23@huawei.com> 1733909788 +0000

【修改说明】：add @addtogroup

Signed-off-by: zzm <zhangzhiming23@huawei.com>
(d}x[tree e3c19b6c48624c391c62180300851e6aa4942f84
parent 7c14e7c83cbd208ddb3c3c98ea029b91023797de
author zhouchaobo <zhouchaobo@huawei.com> 1732083536 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1733901828 +0800

cursorless axis event capi

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: Ic34394256f1d709d97ed21e9ee6bfa7af0a7172d
ilݞx^tree ad2c8799effcfd219844d7a5bb20965beb05062d
parent 4513cf5a6515b229145441e4307883512f110724
parent 64f71a865f7296805f58dc94525f065c1b4a3b81
author openharmony_ci <120357966@qq.com> 1733838208 +0000
committer Gitee <noreply@gitee.com> 1733838208 +0000

!1832 SDK_C中开放hicollie超时检测接口
Merge pull request !1832 from 郑冬冬冬/master)uxMtree 61c54f750c7a735055c5f1ba1e5e5bc83e50e200
parent 0199bc94c26c4959d39e28ab4acdefcedc4587c8
author wangsh88 <wangshihao26@huawei.com> 1733833923 +0800
committer wangsh88 <wangshihao26@huawei.com> 1733833923 +0800

API lint fix

Signed-off-by: wangsh88 <wangshihao26@huawei.com>
Change-Id: I5c84f528cd8337eb59d476d8ec068a924eef8930
exEtree 9900f9e122c996759899ec0bdfce8f12b80312cb
parent d0c7b3969389a35cb1cefccd678bb9383b737d7c
parent a591242c2dbd8ad0e9d469d950e195695dbb4760
author openharmony_ci <120357966@qq.com> 1733830736 +0000
committer Gitee <noreply@gitee.com> 1733830736 +0000

!1945 api link问题解决
Merge pull request !1945 from baoxy92/masterrexLtree 430cec7f2220e2218fa359696ab9d0c0b92de7d0
parent 9db49be1995b7990afa61a6b172070666d032090
parent b0d2d3b700892de8995f779747582c94951ce1f4
author openharmony_ci <120357966@qq.com> 1733827345 +0000
committer Gitee <noreply@gitee.com> 1733827345 +0000

!1914 Swiper: add capi PageFlipMode
Merge pull request !1914 from Hu_zq/masterpbFx]tree c6400660d1fb4a082756a2541fda4242dc64c212
parent b028da1cc52584b463160df6cbbeff3ad7d76546
parent 6a5bc33885a184a836bdde044d855f4b667c34c4
author openharmony_ci <120357966@qq.com> 1733821807 +0000
committer Gitee <noreply@gitee.com> 1733821807 +0000

!1969 add addtogroup title in interface_sdk_c
Merge pull request !1969 from 王子微/dev_sdkc2mx@tree 3add2c7243cdd63351d8d2ef603fb71860360aa6
parent 0199bc94c26c4959d39e28ab4acdefcedc4587c8
parent e19e3434133c4bddbf356fca55aca58f1051c2fa
author openharmony_ci <120357966@qq.com> 1733813587 +0000
committer Gitee <noreply@gitee.com> 1733813587 +0000

!1950 api lint整改
Merge pull request !1950 from zhangkai/master(cx1tree 9875de494bac7f20eebdaaeabd10086cb604e00f
parent 1a21bb0e184b035e10c1bad1624e3a5da132b452
author 王子微 <wangziwei38@h-partners.com> 1733812796 +0800
committer 王子微 <wangziwei38@h-partners.com> 1733812796 +0800

[localSDKc2] fix comments

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
iǑx1tree 36675957ddbe06ec7a2c8e74e803c3cc49152646
parent b6a5ac79e0172aaf8c0bf55558068aff1ce5af9f
author 王子微 <wangziwei38@h-partners.com> 1733802486 +0800
committer 王子微 <wangziwei38@h-partners.com> 1733802486 +0800

[localSDKc2] fix comments

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
]ixtree 970383b1e0e5178703600993d6cebd8ad01c41b4
parent 560f3cc62633f35bad3297504653444869a41005
author zhangkai <zhangkai269@huawei.com> 1733560407 +0800
committer zhangkai <zhangkai269@huawei.com> 1733800689 +0800

api lint整改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
TVxItree 66d0ec74bba5c286fafa21272e225af9ff24d0b2
parent d1ce0c8684110d9a9306cdc69daf6d2283cb9533
parent 62f8cdbdc4e7ec04c5ebb1604f2f6ab31722f1c2
author openharmony_ci <120357966@qq.com> 1733754045 +0000
committer Gitee <noreply@gitee.com> 1733754045 +0000

!1931 [L] 修改c-api node_z_index
Merge pull request !1931 from lisitao/s24exDtree 4aad392f93fbc58ab537fbe281f2fab557f29b4c
parent 3cd276b64c0b14a491d7607095b441595c8772d1
parent c2cf25a385e24f3820bdd8a763077c457339ebf7
author openharmony_ci <120357966@qq.com> 1733747297 +0000
committer Gitee <noreply@gitee.com> 1733747297 +0000

!1963 CApi规范整改
Merge pull request !1963 from wanglingyi/master1ex9tree 38070e4453b90fcf1d6066b55ea5fb146ad37678
parent ac395ff808c141d9f6d127e9c145a82ee5694573
author 王子微 <wangziwei38@h-partners.com> 1733746539 +0800
committer 王子微 <wangziwei38@h-partners.com> 1733746539 +0800

[localSDKc2] fix file descriptiom

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
wkxx]tree 89f46c88d5c0bce095684da2a1ae5b190c26468c
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author shihongjie <shihongjie@huawei.com> 1733745442 +0800
committer shihongjie <shihongjie@huawei.com> 1733745442 +0800

list sdk_c相关告警整改

Signed-off-by: shihongjie <shihongjie@huawei.com>
Change-Id: I5b1d8b2f4e849fdca16c0c8b432fa37cf5e09410
uxetree 7521df4ad7a6a411aa12b05245ddaa3e0b3c4498
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
parent e1dcb6b26f0d490f40e741f7ca12cef3da81310b
author openharmony_ci <120357966@qq.com> 1733742516 +0000
committer Gitee <noreply@gitee.com> 1733742516 +0000

!1965 The cenc module api link problem has been solved
Merge pull request !1965 from zhenghongda/masterinx:tree 6374b4af40c0b69a1f825b7b418f4633511a503f
parent 943b15ba6908a4169d4172db302ae5b0effd6a18
author 王子微 <wangziwei38@h-partners.com> 1733736523 +0800
committer 王子微 <wangziwei38@h-partners.com> 1733736523 +0800

[localSDKc2] fix compliation error

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
kxBtree bea9ec0f02cfc41c332dac91e18f6366fb2b234a
parent cdce82be1cbd0fa914af419e3673cbb97911ce6c
author 王子微 <wangziwei38@h-partners.com> 1733733747 +0800
committer 王子微 <wangziwei38@h-partners.com> 1733733747 +0800

[localSDKc2] add addtogroup title in sdk_c

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
pƝxmtree 7521df4ad7a6a411aa12b05245ddaa3e0b3c4498
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1733731129 +0000
committer zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1733731129 +0000

The cenc module api link problem has been solved

Signed-off-by: zhenghongda <zhenghongda4@huawei.com>
ޟuxctree 0961797e53cc9f03ebc56b24286dd1c59e00c953
parent 11058cb79cfad4d8eaa6396c42105fd03a421fe2
author shenshiyi2 <shenshiyi2@h-partners.com> 1733730446 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1733730446 +0800

OH_PixelmapNative_CreateScaledPixelMapWithAntiAliasing接口错误码更新

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
;{xtree 2e2329436c3cf09e9d364187b9fb0edad8e2b7cf
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author wanglingyi <wanglingyi4@huawei.com> 1733730243 +0800
committer wanglingyi <wanglingyi4@huawei.com> 1733730243 +0800

1209

Signed-off-by: wanglingyi <wanglingyi4@huawei.com>
LW7x:tree 6d843e1963db7a4c8b9ad4da55bdc298f1f60e8a
parent 2ffc288120dfd8993d0cb8eb525371d21224f9d7
author baoxy92 <baoxianyue@hisilicon.com> 1733728202 +0000
committer Gitee <noreply@gitee.com> 1733728202 +0000

update multimedia/drm_framework/native_mediakeysystem.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>,\fWx;tree 86ac39cffae65aebb1c7628f0e11430271279753
parent dd25f6a4ef9e38058a887bac03654887565655e1
author baoxy92 <baoxianyue@hisilicon.com> 1733728170 +0000
committer Gitee <noreply@gitee.com> 1733728170 +0000

update multimedia/drm_framework/native_mediakeysession.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>ex:tree e3ed58d7c5e79201f71bccf5c388626b730a6631
parent 635c74fd51c81ace242d1f622af93ac0d8b2bbf5
author baoxy92 <baoxianyue@hisilicon.com> 1733728150 +0000
committer Gitee <noreply@gitee.com> 1733728150 +0000

update multimedia/drm_framework/common/native_drm_err.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>ex=tree 6cbc5059d6a482af4dc4361ca792ed82258c34b9
parent 5c52fe052592a51df08704765c7483f68a608b3d
author baoxy92 <baoxianyue@hisilicon.com> 1733728126 +0000
committer Gitee <noreply@gitee.com> 1733728126 +0000

update multimedia/drm_framework/common/native_drm_common.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>/f2x:tree 07d096bf1ae262b898ee76f6ba9433efb46efee3
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author liuweili <liuweili1@huawei.com> 1732795094 +0800
committer yanghaiming <yanghaiming4@huawei.com> 1733726759 +0800

Add JSVM_API to Private and External String

Signed-off-by: yanghaiming <yanghaiming4@huawei.com>
9eOxAtree a197fef7f85124e0507b49ca18cc5088026561dd
parent 76bfd7bcffc92fe82cf7b008aca67366f7b405d5
author liyang <liyang782@huawei.com> 1733713053 +0800
committer liyang <liyang782@huawei.com> 1733713053 +0800

screencapture接口 doc信息和参数名不符 api init告警整改

Signed-off-by: liyang <liyang782@huawei.com>
$tVxMtree 9634e84e0bbb77beb705a585db26362c71def950
parent 8c3370fd69325e196c43e88c0ef86afdba51cccd
author shenshiyi2 <shenshiyi2@h-partners.com> 1733707179 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1733707417 +0800

CreateScaledPixelMap接口参数改为驼峰命名法

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
x.xAtree aa27bb1c2352d020bb0e7c5cc60d9a1930037acc
parent 0d5dec73c972253ea004143f01aa5466e4385f14
author shenshiyi2 <shenshiyi2@h-partners.com> 1733649053 +0000
committer Gitee <noreply@gitee.com> 1733649053 +0000

update multimedia/image_framework/libpixelmap.ndk.json.

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>;!gٜxLtree ebdf2c9c2105cf103958225209c5f7f3fc21e606
parent 9f16d767ea3bd3054e38a5a25ac93e75d6b3cee8
author shenshiyi2 <shenshiyi2@h-partners.com> 1733649032 +0000
committer Gitee <noreply@gitee.com> 1733649032 +0000

update multimedia/image_framework/include/image/pixelmap_native.h.

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>blxRtree 39ca94a4f6caad5db8590d868893c66a945df028
parent bb54f68c071342ee01c62ce91d5c507b935e4d92
author sun-xinyan <sunxinyan2@huawei.com> 1733580369 +0800
committer sun-xinyan <sunxinyan2@huawei.com> 1733580369 +0800

c api lint 整改

Signed-off-by: sun-xinyan <sunxinyan2@huawei.com>
Change-Id: I87ba7183c578949e04d449c084704b19f7439a12
ixQtree c968be7f36054e9f9be6a7403da4dd018ce09602
parent 560f3cc62633f35bad3297504653444869a41005
parent 8f91a64a9b7118f4ed206a3e1d360831eeee919a
author openharmony_ci <120357966@qq.com> 1733564722 +0000
committer Gitee <noreply@gitee.com> 1733564722 +0000

!1920 activeChildren接口新增说明
Merge pull request !1920 from 邹林肯/k111fm4x:tree ef0753a116b70a9924856b4d12fd99cc9fd4d871
parent 5c18f81ac282e05db591cb4e07b7ed4f18a5258b
author baoxy92 <baoxianyue@hisilicon.com> 1733544337 +0000
committer Gitee <noreply@gitee.com> 1733544337 +0000

update multimedia/drm_framework/common/native_drm_err.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>ex=tree 697631fd35a9c4ced9e5d66e6f6420e365526fb2
parent 666dc5eccbf9238c33f85d97f2ef49aa802c0493
author baoxy92 <baoxianyue@hisilicon.com> 1733544316 +0000
committer Gitee <noreply@gitee.com> 1733544316 +0000

update multimedia/drm_framework/common/native_drm_common.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>gx:tree 20beff494abb07532ba04f6dfeb29d9adbc2b7c2
parent 411ee094e57dc6bfcfbde306c44c00af7b6d41a6
author baoxy92 <baoxianyue@hisilicon.com> 1733544300 +0000
committer Gitee <noreply@gitee.com> 1733544300 +0000

update multimedia/drm_framework/native_mediakeysystem.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>sXgx;tree f581015d11d24b48ce8cfe766af6f40af25e16ba
parent 50d44aa127b6acb367c6348b0c41adcc24d9bb13
author baoxy92 <baoxianyue@hisilicon.com> 1733544282 +0000
committer Gitee <noreply@gitee.com> 1733544282 +0000

update multimedia/drm_framework/native_mediakeysession.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>fx;tree d6e4a4cd5c258656e1e9ff6c7bffe11098b761b2
parent 560f3cc62633f35bad3297504653444869a41005
author baoxy92 <baoxianyue@hisilicon.com> 1733544265 +0000
committer Gitee <noreply@gitee.com> 1733544265 +0000

update multimedia/drm_framework/native_mediakeysession.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>X=egxFtree f6c59117f376dfe48d43388bbb57fbee8960d9b4
parent 9ef02cbf020ceadbed3818ea02a79bec3468f646
parent 4a1c2876ceb7aacf1f4f595b87ffa4f62758f55e
author openharmony_ci <120357966@qq.com> 1733493808 +0000
committer Gitee <noreply@gitee.com> 1733493808 +0000

!1929 代码一致性
Merge pull request !1929 from lilanqing/1205BYSyncgΒxRtree 9132bdb8cb0a0dc27ed1d316d66dccc64e8fea84
parent c3566fb74049d03e4338f7a1902197facfe3a035
parent c808ffc61eb4a61ba0788e804efc5025faed6cc2
author openharmony_ci <120357966@qq.com> 1733484735 +0000
committer Gitee <noreply@gitee.com> 1733484735 +0000

!1937 add drawing_error_code.h
Merge pull request !1937 from changleipeng/fix_headerhGxWtree c9b5670b077f62effb13390a66fac8f2bd28e7c2
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author Cai Xincheng <caixincheng@huawei.com> 1732589250 +0800
committer Cai Xincheng <caixincheng@huawei.com> 1733484002 +0800

add group tag

Signed-off-by: Cai Xincheng <caixincheng@huawei.com>
Change-Id: Ifc08e6aad6954e8a8e1c9993afd9a5712929071d
jqxKtree 35dc0960eaa9eba94c6e0d97865ef88245782e3c
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
parent aba9711bae1d398cb3d09ba445a326e9840353a6
author openharmony_ci <120357966@qq.com> 1733479991 +0000
committer Gitee <noreply@gitee.com> 1733479991 +0000

!1940 1206 gif api fix
Merge pull request !1940 from duanhan/1206_gif_api_fixGbxMtree ce721103d6893b3d649105c0fa20651af3114bbd
parent fdc218519ec0efcae064bbf853eb7bf5ebe4ea0a
author shenshiyi2 <shenshiyi2@h-partners.com> 1733472325 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1733472325 +0800

OH_PixelmapNative_CreateScaledPixelmap接口重命名

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
ޑr(xtree 35dc0960eaa9eba94c6e0d97865ef88245782e3c
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author duanhan <duanhan1@huawei.com> 1733471442 +0800
committer duanhan <duanhan1@huawei.com> 1733472074 +0800

1206 gif api fix
Signed-off-by: duanhan <duanhan1@huawei.com>
Rvxhtree 3b12d795755f417477a159e2f2ac2e905893a771
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author changleipeng <changleipeng4@huawei.com> 1733470055 +0800
committer changleipeng <changleipeng4@huawei.com> 1733470055 +0800

add drawing_error_code.h

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Change-Id: I6083b006cdd57cc05f681c8db094972e22bfbb84
%pݛx+tree 92363fb6008435d442ba9814e9c109982920647b
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author 郑冬冬冬 <zhengchengkai@huawei.com> 1732588815 +0800
committer 郑冬冬冬 <zhengchengkai@huawei.com> 1733460008 +0800

Message:fixCodes

Signed-off-by: 郑冬冬冬 <zhengchengkai@huawei.com>
ivxrtree 0a822f241a64f9d41f596471166d49dfc036da58
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1733408549 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1733408549 +0800

[L] 修改c-api node_z_index
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
1wx
tree a51c25ae13c0ffab5a398d2556731276cffd2897
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author lilanqing <lilanqing@huawei.com> 1733400906 +0800
committer lilanqing <lilanqing@huawei.com> 1733400906 +0800

sync

Signed-off-by: lilanqing <lilanqing@huawei.com>
5SxCtree bde6fa6a678b28d19191def689595d636e3ffe65
parent 99a03f63e3a3e2afe79f14e289a56b5592b8debf
author Hu_zq <huzeqi@huawei.com> 1733209035 +0800
committer Hu_zq <huzeqi@huawei.com> 1733384265 +0800

Swiper: add capi PageFlipMode

Signed-off-by: Hu_zq <huzeqi@huawei.com>
Change-Id: Icaf32e5775580fa20737835a044b18b68eef0bc0
bڝx=tree 062269c694cf0dd9c0ef6aad4b920a6ac81d4146
parent 1394a928982bda12d0dc0859ccda61500a7f5122
author shenshiyi2 <shenshiyi2@h-partners.com> 1733316178 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1733316178 +0800

增加获取 PixelMap 大小的接口

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
1nx>tree 35bd86b6d7b41e0d2fc4af84c83e8db015d48c2c
parent c88d12833f3d29505f6d485a37e55fbd50e4680a
author shenshiyi2 <shenshiyi2@h-partners.com> 1733315762 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1733315762 +0800

增加CreateScaledPixelmap的NDK接口

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
kQxDtree b08d5fe0aadc4aaff70d6d0514390a5ada617734
parent c88d12833f3d29505f6d485a37e55fbd50e4680a
parent c98ff4374a8a1bd59c74fe937f0afa3a80e38942
author openharmony_ci <120357966@qq.com> 1733315315 +0000
committer Gitee <noreply@gitee.com> 1733315315 +0000

!1896 API Lint 告警清理
Merge pull request !1896 from GuoLi/mastertdx&tree ed39e409de4499781f986fccb39df3c1bb35e885
parent c88d12833f3d29505f6d485a37e55fbd50e4680a
author zoulinken <zoulinken1@huawei.com> 1733304617 +0800
committer zoulinken <zoulinken1@huawei.com> 1733304617 +0800

ActiveChild接口新增说明

Signed-off-by: zoulinken <zoulinken1@huawei.com>
d+xHtree 2680838a851c4767d36e21d3a1af2d6a14c5f4a5
parent 173bec6bfdd7c56fcc2c8a213c1ea9374cf0e5ae
parent 67f4db0da66800613a1b4256647311ec7a7d6d8a
author openharmony_ci <120357966@qq.com> 1733303505 +0000
committer Gitee <noreply@gitee.com> 1733303505 +0000

!1907 napi接口文件修改
Merge pull request !1907 from shilei91/master,ixItree 1f093fa4fa302b146a3a85a759fc9f0ad960eeb0
parent 6dfd7994bdf49c1e300e0f83eb6dda8ab2c104d7
parent ffd5e4c9a885190a2d7d839c4e2ab617b2bd5873
author openharmony_ci <120357966@qq.com> 1733299603 +0000
committer Gitee <noreply@gitee.com> 1733299603 +0000

!1886 API addtogroup标签整改
Merge pull request !1886 from runrunya/fix,h֔xtree ecf2d4e0e7b24102b49bca79f749eb8ebcc13160
parent c887467e57893bce9c802a84781ac29ae145d4af
author GuoLi <guoli37@h-partners.com> 1733299033 +0800
committer GuoLi <guoli37@h-partners.com> 1733299033 +0800

API Lint告警清理

Signed-off-by: GuoLi <guoli37@h-partners.com>
Xlxitree 9373990a0a349187c7cabcb7606b5653c5757496
parent 8fa620dd4ebd9bd8127ec70c71abc36a68d1c81b
parent 2c14285531d1d44c1fa7fcbf8c75d32776e9d70a
author openharmony_ci <120357966@qq.com> 1733298354 +0000
committer Gitee <noreply@gitee.com> 1733298354 +0000

!1909 修改获取应用显存接口的初次引入api等级
Merge pull request !1909 from 于好强/masterYğxotree 20b33c8986a343de34da47d004a9382b7e70ab84
parent 8bb2104c10a2f28d0d03a08878d400af4e07722c
parent c29b87d6bd5f1ad17f2bfb5690ad80ba027b3e1f
author openharmony_ci <120357966@qq.com> 1733284528 +0000
committer Gitee <noreply@gitee.com> 1733284528 +0000

!1899 上传废弃接口说明&OH_BitrateMode头文件位置变更
Merge pull request !1899 from 李建超/masteroŚxJtree c6adca6ded51f628ee13211138d3aef527fc34f9
parent 5a35a35bc6633efae611df0298237b6638715bd0
parent 157512afcf7c3d61c374b89f8078bab5540c35a6
author openharmony_ci <120357966@qq.com> 1733217425 +0000
committer Gitee <noreply@gitee.com> 1733217425 +0000

!1911 添加文件结尾注释
Merge pull request !1911 from zhaoyong/dialogwkxtree 7fa2d1701a3047a7b880850962d99a9c41fdcb0a
parent 48fab8ea3c551d22c86aef31db76d27396e48200
author z30053720 <zhaoyong70@huawei.com> 1733206637 +0800
committer z30053720 <zhaoyong70@huawei.com> 1733206637 +0800

add tag

Signed-off-by: z30053720 <zhaoyong70@huawei.com>
OEx?tree 23df63f9e0c16d2359a98bc298aea89d1f50dbaa
parent 48fab8ea3c551d22c86aef31db76d27396e48200
parent fc6fef569607c5b63be6cb355ad3068da4b4e41e
author openharmony_ci <120357966@qq.com> 1733199532 +0000
committer Gitee <noreply@gitee.com> 1733199532 +0000

!1837 代码同步
Merge pull request !1837 from 屑屑屑/masterA'gjxAtree bdb4fe496a64a77a0b4ea9e5690aae0950a7d8fb
parent 48fab8ea3c551d22c86aef31db76d27396e48200
author yuhaoqiang <yuhaoqiang@huawei.com> 1733190830 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1733190830 +0800

修改获取应用显存的接口初次引入为api14

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
$ymxMtree 00e0f5b81b5a67509e116e4dc0448c572265c8b2
parent 7be68ea3556f77780aa4f09654d1c1ddb628ab9c
author shilei <shilei91@huawei.com> 1733147957 +0800
committer shilei <shilei91@huawei.com> 1733147957 +0800

modify napi interface notation

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Ic4ce6c44c1ee8d9afe097d7d443d360a11281563
exHtree cafb8e41944f329db7475515fd19d63f4a5c8474
parent 0d5406e89b1336996084cd0a111bef0b6d77308a
parent 0fe4e3b3142cd42505d99035e2567445bbda4690
author openharmony_ci <120357966@qq.com> 1733130959 +0000
committer Gitee <noreply@gitee.com> 1733130959 +0000

!1883 capi JSDOC bug fix
Merge pull request !1883 from zhouchaobo/capi_doc5F`ǘxHtree 5b3e34eb66b0eee0ee6767d51c262ddd7672d0b4
parent 40f565e28aa6198e01e7413e6d47b223f7df681e
parent 7be68ea3556f77780aa4f09654d1c1ddb628ab9c
author openharmony_ci <120357966@qq.com> 1732961703 +0000
committer Gitee <noreply@gitee.com> 1732961703 +0000

!1900 napi接口文件修改
Merge pull request !1900 from shilei91/master;ixXtree f3750debd1057ccf5c1390e51f6f0e80fbd97a80
parent 94b03e180c5796a854d7dce7d3a0422cbf94cda2
parent b878c0b04484eddc327f5f1332a81815aab2749f
author openharmony_ci <120357966@qq.com> 1732955459 +0000
committer Gitee <noreply@gitee.com> 1732955459 +0000

!1881 更新指定文件接口版本
Merge pull request !1881 from zhangwu/updated_version9jsxItree 3b3bc663974bb558b9de99f1bcf22debd091f789
parent 5ab147606e5e12f9f4aa0b5edcf32bece075dd3a
author shilei <shilei91@huawei.com> 1732952575 +0800
committer shilei <shilei91@huawei.com> 1732952575 +0800

modify napi interface file

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I82376d1940b90a71488a0efe0fbed61ea104a584
eKxtree 40bdcaadc0721343bd984067c999a1cf250026f4
parent c93539ac5e3b628f1208a1a7a894e6a412cbff21
author = <zhangwu47@huawei.com> 1732781116 +0800
committer = <zhangwu47@huawei.com> 1732950474 +0800

插入新宏版本内容

Signed-off-by: = <zhangwu47@huawei.com>
'VҞxNtree 9a1f993a36bd943226b6b7ce52e7f246a08e17a0
parent f8bbd497b4789e2a7098e39cfd29d9aadf548954
parent 5ab147606e5e12f9f4aa0b5edcf32bece075dd3a
author openharmony_ci <120357966@qq.com> 1732950256 +0000
committer Gitee <noreply@gitee.com> 1732950256 +0000

!1888 【napi】接口注释整改
Merge pull request !1888 from shilei91/mastermxTtree 0d3247a3afdf9257a331a2c6d014baece6c3527d
parent b654ae970c3ed59f195a7e08bd726a242e24ef2c
author li-jianchao1993 <lijianchao9@huawei.com> 1732872856 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1732947592 +0800

【修改说明】 OH_BitrateMode头文件位置变更

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
1y|xBtree 6c9cdedcc73f134c55a1ab3ac1c1da184ee9c0d9
parent bb54f68c071342ee01c62ce91d5c507b935e4d92
parent 513c72609000b05d89fabcbb3b8c7b3cb0d9115f
author openharmony_ci <120357966@qq.com> 1732939549 +0000
committer Gitee <noreply@gitee.com> 1732939549 +0000

!1851 C Lint Alarm fix
Merge pull request !1851 from liujixin/masterFa$xTtree eafbb4a4fc980ede2bf3004ff99c8e77c75a2b3e
parent e35c169971733d83d8b20ce23902aaa0d722df4f
parent 5f3429264f8c68b1dadf8ba5cc1b5b679a640ac5
author openharmony_ci <120357966@qq.com> 1732889060 +0000
committer Gitee <noreply@gitee.com> 1732889060 +0000

!1876 支持自定义编译sdk产物包
Merge pull request !1876 from xukun_cai/master}%rxCtree 4f1dbf64529962d14451d8917951e6703e9c7fc8
parent 21d7332da6638f713564d8198edde6acc0bcbd7e
author li-jianchao1993 <lijianchao9@huawei.com> 1732872356 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1732872356 +0800

【修改说明】 上传废弃说明

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
\q8xJtree d6bd94b3dbe307aa3d4febbc03ff85c69ab99adb
parent 21d7332da6638f713564d8198edde6acc0bcbd7e
parent 34b54ff3b0cedd19ab25f89528dc259daf44712f
author openharmony_ci <120357966@qq.com> 1732865992 +0000
committer Gitee <noreply@gitee.com> 1732865992 +0000

!1667 增加VVC查询接口
Merge pull request !1667 from hongran1206/master+|kxStree 6f1cbdd0af7c4f824ddd92b830b2bda24062ef6b
parent b4a7a3659adf3faf2ea0e1e5ae0e6cab82794976
author zhouchaobo <zhouchaobo@huawei.com> 1732849786 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1732864653 +0800

capi JSDOC bug fix

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: I87a262b0ab9dc963d971841e993da5387dc33835
jixMtree 6c22aadda7005790ae89a93cb072fac520b856a8
parent 21d7332da6638f713564d8198edde6acc0bcbd7e
author shilei <shilei91@huawei.com> 1732862229 +0800
committer shilei <shilei91@huawei.com> 1732863417 +0800

modify napi interface notation

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I1c85ab512d0aa46391b84afee7361bda6d98136f
xfxtree 517cfbead9319c9aaebb90800a70061c79174aca
parent 21d7332da6638f713564d8198edde6acc0bcbd7e
author liuzerun <liuzerun@huawei.com> 1732850774 +0800
committer liuzerun <liuzerun@huawei.com> 1732850774 +0800

fix

Signed-off-by: liuzerun <liuzerun@huawei.com>
RFxtree 0fb1654d60f9085150b2c1ae51c6a4fd7d3e8237
parent dca73150007f96e45887b8e15650a63e2b622f10
author xukun_cai <401117262@qq.com> 1732849188 +0800
committer xukun_cai <401117262@qq.com> 1732849188 +0800

gn check

Signed-off-by: xukun_cai <401117262@qq.com>
̡I!xDtree dc222fd33115f4e1e2dbafd84cf086813f6fe904
parent c887467e57893bce9c802a84781ac29ae145d4af
parent 7e3ce696f4c00d4cef8e69d63ba70a25fc1cf22c
author openharmony_ci <120357966@qq.com> 1732800339 +0000
committer Gitee <noreply@gitee.com> 1732800339 +0000

!1835 Fix: 新增sdk.json
Merge pull request !1835 from shilong/masterXFd.xtree 89c4477ea867dcd22c4d5991ee081b9c5eac6863
parent c887467e57893bce9c802a84781ac29ae145d4af
author xukun_cai <401117262@qq.com> 1732795234 +0000
committer Gitee <noreply@gitee.com> 1732795234 +0000

支持自定义编译sdk产物包

Signed-off-by: xukun_cai <401117262@qq.com>\^xUtree 0390f3cf70bda45c11b5edf4e25b6343ff4ce61e
parent b4a7a3659adf3faf2ea0e1e5ae0e6cab82794976
parent cc5737a954a4cf307ba0c68bfa0c81e3d4ecdc6a
author openharmony_ci <120357966@qq.com> 1732791697 +0000
committer Gitee <noreply@gitee.com> 1732791697 +0000

!1820 keyEvent capi接口整改
Merge pull request !1820 from wangxiuxiu96/keyEvent1125 m^xtree 420e60ca834fda45e44d1c083a9e2622d097427a
parent aa4b9f61da3279cb46110a70845755cba8c94a00
author shilong <dragon.shilong@huawei.com> 1732784921 +0000
committer Gitee <noreply@gitee.com> 1732784921 +0000

新增ndk.json

Signed-off-by: shilong <dragon.shilong@huawei.com>Wxtree aa51f5572da34375d61ddb64815ac1184312f149
parent fb49479576ff24604479483957655cf051772eb5
author shilong <dragon.shilong@huawei.com> 1732784892 +0000
committer Gitee <noreply@gitee.com> 1732784892 +0000

修改ndk.json

Signed-off-by: shilong <dragon.shilong@huawei.com>>VҔxtree 98c6186ef49fa7d09b7cc1444a5dd01e4235b83c
parent 4a5710e2b1d29dcb388d3872dd4ca6d5fa8cf59e
author ji_xinliu <liujixin1@huawei.com> 1732678867 +0800
committer ji_xinliu <liujixin1@huawei.com> 1732782240 +0800

Lint Alarm fix

Signed-off-by: ji_xinliu <liujixin1@huawei.com>
YW;xBtree cffb8d8c9a1b8c249d9113b1819a4e13c4550521
parent 000c0173afdf70e62a2f13a25fed0fdc261685f7
parent 2559eedbb6d66e19e8a6f4c89b82d38fddcb9f19
author openharmony_ci <120357966@qq.com> 1732766906 +0000
committer Gitee <noreply@gitee.com> 1732766906 +0000

!1859 api Lint整改
Merge pull request !1859 from happy/wxl_apiLintOcxItree ebba623fe0bbe433fb19da113230c33894217e0c
parent c93539ac5e3b628f1208a1a7a894e6a412cbff21
parent 64d79f5b3487e377fa83cf4f5d639253191e632e
author openharmony_ci <120357966@qq.com> 1732766868 +0000
committer Gitee <noreply@gitee.com> 1732766868 +0000

!1805 node_scroll_size补充描述
Merge pull request !1805 from honzx/1122"fx[tree 755f376710b67da9cb2531c5bf34ab5d6b9ef4d9
parent 16f2d07c03482f21dd7871286e16343c63386f0b
parent 4498a329a8e6744f9fa30202239522908aa7677e
author openharmony_ci <120357966@qq.com> 1732710342 +0000
committer Gitee <noreply@gitee.com> 1732710342 +0000

!1760 AAC profile新增HE-AAC，HE-AAC v2枚举
Merge pull request !1760 from SuRuoyan/masterFk?x@tree 5420e5dd5c05c28eda4d0d4405dc180be1772d4a
parent 16f2d07c03482f21dd7871286e16343c63386f0b
author happy <wangxueli8@huawei.com> 1732708965 +0800
committer happy <wangxueli8@huawei.com> 1732708965 +0800

api Lint整改

Signed-off-by: happy <wangxueli8@huawei.com>
Change-Id: I2eebe7fe93e9e64ce2e2249ccfc8f29c7edb71c7
Fd]xDtree 0d714415c4ce9cc163854186bd2f4f651336cd4d
parent 3ee75937e6466253f8ce5209b1a88c1394f8a961
parent 59edf0a64bbe64f8b41bf2ecf5e7488ca5edffa9
author openharmony_ci <120357966@qq.com> 1732703154 +0000
committer Gitee <noreply@gitee.com> 1732703154 +0000

!1789 API Lint 告警清理
Merge pull request !1789 from GuoLi/masterdxtree 4c4fe9447f4d2c986ae7a6ac3501645a355d08c0
parent 4a5710e2b1d29dcb388d3872dd4ca6d5fa8cf59e
parent dda15a29786dde2a9d137252205a2fe50853fce1
author openharmony_ci <120357966@qq.com> 1732700960 +0000
committer Gitee <noreply@gitee.com> 1732700960 +0000

!1813 OH_NativeVSync_Create_ForAssociatedWindow接口补充json文件内容
Merge pull request !1813 from leafly2021/add_json_name"xItree 923e34ea051349e78968f8eb181373a5d51f14c9
parent 17a6ed57dc3a22226cb21c0d0cb964c12cdb68ef
parent ecf642d952400b371393980549514eecc5d18845
author openharmony_ci <120357966@qq.com> 1732676623 +0000
committer Gitee <noreply@gitee.com> 1732676623 +0000

!1683 API link告警清除
Merge pull request !1683 from 185******37/masterHc^xBtree a54306f49487874b4ae3c40b560ab793bf9cfc57
parent 8fa24a2d3cee367c9720cef5ed70a7ea2bb1a7b1
parent 38bc1ab3bb047078c938c315be088d36ba81044d
author openharmony_ci <120357966@qq.com> 1732675286 +0000
committer Gitee <noreply@gitee.com> 1732675286 +0000

!1796 API Lint整改
Merge pull request !1796 from huanghan18/masterb~xtree f2c27ba3708d25683e9bf8749ab0f8269ae3957f
parent 51e5f9d92e877c2ae453c73e0110f70e01aa4d86
author wangxiuxiu <wangxiuxiu9@huawei.com> 1732510325 +0800
committer wangxiuxiu <wangxiuxiu9@huawei.com> 1732671722 +0800

keyEvent

Signed-off-by: wangxiuxiu <wangxiuxiu9@huawei.com>
Yxytree 7f3c2ebf901f6745e701f09705be7c748c438d99
parent 067b629ce2b809a13b6a01a466e68f81373204a4
author xuqinfeng1@huawei.com <xuqinfeng1@huawei.com> 1732628964 +0800
committer xuqinfeng1@huawei.com <xuqinfeng1@huawei.com> 1732628964 +0800

drawable的注释修改

Signed-off-by: xuqinfeng1@huawei.com <xuqinfeng1@huawei.com>
Change-Id: I95d8891ec8b1497635a7541611ae6065773db9d9
֗zxUtree c61c1043ae2fac66633be439f9fc397fc17f5747
parent 7c14e7c83cbd208ddb3c3c98ea029b91023797de
author hongzexuan <hongzexuan@huawei.com> 1732626545 +0800
committer hongzexuan <hongzexuan@huawei.com> 1732626545 +0800

fix node_scroll_size

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: Ic41a40d2c73a24e085dc3f370e67533181f7c9f5
kxDtree eb9c1383691d3645ee4ef320ec3d01064edaa92f
parent 9c45f9e262d47948b1590782854a9ab382699dcb
parent c40f98a5832a2dfee8c022cb6d0a9af98ec16df9
author openharmony_ci <120357966@qq.com> 1732615645 +0000
committer Gitee <noreply@gitee.com> 1732615645 +0000

!1814 Drawing代码同步
Merge pull request !1814 from lizhan/1122fixdxZtree 160210e298632b11c014b0c8216f51b494273d17
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
parent e4ae497c8de46ed9b978a769ea8dcaaffbded519
author openharmony_ci <120357966@qq.com> 1732613668 +0000
committer Gitee <noreply@gitee.com> 1732613668 +0000

!1823 fix preferences ndk warning
Merge pull request !1823 from bluhuang/preferences_warningѰjԔx$tree 9259c949c245255bf16f9d1f3a0c9d887bb19b9b
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author 屑屑屑 <jiangwenda5@h-partners.com> 1732593220 +0800
committer 屑屑屑 <jiangwenda5@h-partners.com> 1732593220 +0800

代码同步

Signed-off-by: 屑屑屑 <jiangwenda5@h-partners.com>
*Ihxtree b956f426ce1a25cb50fee2d261236efdcdb515d8
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author shilong <dragon.shilong@huawei.com> 1732589623 +0000
committer Gitee <noreply@gitee.com> 1732589623 +0000

修改sdk的产出路径

Signed-off-by: shilong <dragon.shilong@huawei.com>9bxstree adacdcde864fc59f343e7620f55651afe5643a02
parent f57254ecdd55b4944a4cc6929cd59980fd22cbfb
author houguobiao <houguobiao@huawei.com> 1732546614 +0800
committer houguobiao <houguobiao@huawei.com> 1732546614 +0800

CalendarPicker组件支持配置最大最小日期

Signed-off-by: houguobiao <houguobiao@huawei.com>
Change-Id: I48903638e7fc1344018abb2bdaa75ed26e3629d5
[ЙxItree aa51f5572da34375d61ddb64815ac1184312f149
parent baf8079d3540a31d677ca6c9c77a5367bbd6e94a
parent 0c55c08f0537bf777f125cefc048285332bacbbc
author openharmony_ci <120357966@qq.com> 1732543941 +0000
committer Gitee <noreply@gitee.com> 1732543941 +0000

!1791 API Lint告警清理
Merge pull request !1791 from Wanxiaoqing/masterKZftxUtree 6236901b290a5ef9c6b872e397d1546afacb87cc
parent baf8079d3540a31d677ca6c9c77a5367bbd6e94a
author huchang <huchang4@huawei.com> 1732540912 +0800
committer huchang <huchang4@huawei.com> 1732540912 +0800

add support for float32 in audiokit

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Idd5ae94c33c1ac586fdba092ffc7f6ddb0c52891
qixQtree cf26fdba2ebeb863a8b80b92e1fb81f28ff9cd03
parent 82410d581e48affc9d807dd9b879341cff939880
parent 4988464bbacb5ab76c71533d06c5f1846e668889
author openharmony_ci <120357966@qq.com> 1732539562 +0000
committer Gitee <noreply@gitee.com> 1732539562 +0000

!1766 【修改】标签顺序错误
Merge pull request !1766 from 张琼洁/mastersxmtree 7989d34803eaafd780527ce3ae0c0a7697e0438e
parent 8446f136ab59649460783fd8888a19652624c7af
parent 31be49946aca82727bbca3dcbe5989df4bebebfd
author openharmony_ci <120357966@qq.com> 1732539523 +0000
committer Gitee <noreply@gitee.com> 1732539523 +0000

!1781 增加能使用主题字的fontCollection接口
Merge pull request !1781 from liumingxiang/FontCollectionY}xHtree 327e6039ad2d0fc54eac9d6681571763bb1abfa0
parent 2249d72f5d3ffb4276f6dcd7b6556d386ff567e9
parent 14787e23eb2f776b7a854b52b287354210fad07c
author openharmony_ci <120357966@qq.com> 1732526489 +0000
committer Gitee <noreply@gitee.com> 1732526489 +0000

!1779 注释规范性整改
Merge pull request !1779 from wangyulie/master IixFtree b05815109ba3427549337a003a85921de1fff1e3
parent b9181718eeae3f982bfe49244b86f70b0b65a040
parent 72d5a2d44c6a24b5762e0314946f4867b40104c3
author openharmony_ci <120357966@qq.com> 1732526314 +0000
committer Gitee <noreply@gitee.com> 1732526314 +0000

!1801 API Lint的整改
Merge pull request !1801 from huanghan18/APILint[axqtree 2f99c7be125050e6d767b83e35d5f5292868a79d
parent d6439c48a6ba08d586af3994b96509cb86969707
parent b9181718eeae3f982bfe49244b86f70b0b65a040
author liumingxiang <liumingxiang1@huawei.com> 1732524933 +0000
committer Gitee <noreply@gitee.com> 1732524933 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into FontCollection

Signed-off-by: liumingxiang <liumingxiang1@huawei.com>Txtree c30f806cecf32c85d43f3927be56693c7a3bd30e
parent b9181718eeae3f982bfe49244b86f70b0b65a040
author bluhuang <bluhuang@icloud.com> 1732520438 +0800
committer bluhuang <bluhuang@icloud.com> 1732520438 +0800

fix preferences ndk warning

Signed-off-by: bluhuang <bluhuang@icloud.com>
YxFtree e0feec6eb0ae60c5f13cf18d8bb0bff4597b2a4d
parent 72ff80c5acd2beaa430dd927a615459dd60c4934
parent ceb36951c5ddd909e8bd51063c358534ea0ca43b
author openharmony_ci <120357966@qq.com> 1732517951 +0000
committer Gitee <noreply@gitee.com> 1732517951 +0000

!1739 新增native image接口
Merge pull request !1739 from sqwlly/1114fxDtree af38891a684bc7aec61a0a71797702b4d3be031b
parent 7c14e7c83cbd208ddb3c3c98ea029b91023797de
parent 86671db3e059610aa0ec2ca360303b5277ba0f04
author openharmony_ci <120357966@qq.com> 1732506475 +0000
committer Gitee <noreply@gitee.com> 1732506475 +0000

!1771 sdk_c告警修改
Merge pull request !1771 from 乾阳熠/master\hCx}tree 017a5f98d6fcf2d915c99fcaef1694689eb1ce50
parent 3344262e59753d9fb13ad281992c7ba5170d087f
parent 7c14e7c83cbd208ddb3c3c98ea029b91023797de
author 张琼洁 <zhangqiongjie4@huawei.com> 1732497093 +0000
committer Gitee <noreply@gitee.com> 1732497093 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 张琼洁 <zhangqiongjie4@huawei.com>:yx`tree caab1a8d47b5753be916e40a452c0f4458723384
parent 56bb3a8602e1edb3001ed47fbb19f0ca47334821
parent 51e5f9d92e877c2ae453c73e0110f70e01aa4d86
author openharmony_ci <120357966@qq.com> 1732361650 +0000
committer Gitee <noreply@gitee.com> 1732361650 +0000

!1767 按键事件支持capi接口整改
Merge pull request !1767 from wangxiuxiu96/key-event-1118tCxQtree 31371ededb0fea2c8e4fd79039fe11ce573e268f
parent a1c98e6ac4a6fe8582963292bc3022a2384182ca
parent a04b38dd7199853a62def64895cdc739d28692a8
author openharmony_ci <120357966@qq.com> 1732349883 +0000
committer Gitee <noreply@gitee.com> 1732349883 +0000

!1809 C API syntax correction
Merge pull request !1809 from zhaojinghui/capi_syntax9ZfVxtree b84e0cf8b9794814d18eb8aa52f6853253fd48db
parent 52df4c35bbdd2d2019809231af9b40b955659436
author l00844999 <lizhan12@huawei.com> 1732269542 +0800
committer l00844999 <lizhan12@huawei.com> 1732269542 +0800

drawing fix
Signed-off-by: l00844999 <lizhan12@huawei.com>
lNx@tree d67ca896292c447f22d426cb34e859b66b30ce9b
parent 52df4c35bbdd2d2019809231af9b40b955659436
parent 3b45a0c47f184b1eff3574805b64b513d83fe32d
author openharmony_ci <120357966@qq.com> 1732269212 +0000
committer Gitee <noreply@gitee.com> 1732269212 +0000

!1806 API Lint 整改
Merge pull request !1806 from 蔡一鸣/1122bx'tree 9e727bc9d6c31f41fd27da59b9fa68c7999b944f
parent 09c863f73f47e476b038edf350d5dbe6a2eab094
author leafly2021 <figo.yefei@huawei.com> 1732269118 +0800
committer leafly2021 <figo.yefei@huawei.com> 1732269118 +0800

新接口补充配置文件

Signed-off-by: leafly2021 <figo.yefei@huawei.com>
Ddsxtree 29eef17ab93249d62cd87e33e67c4e310f466cfa
parent d18620674d3f94ec34e5776460a0350c962adfdb
author wangyulie <wanglieyu@126.com> 1732264696 +0800
committer wangyulie <wanglieyu@126.com> 1732264696 +0800

删除不打包的头文件

Signed-off-by: wangyulie <wanglieyu@126.com>
L_ixMtree 475fa3950e855da2265af4ecd9a4b48f1ade48ea
parent 160bc622cbf31721a6280422fef8a2f6f00d8fda
parent 69e543d15d899ad5aa79911dfcba19acd2acbc79
author openharmony_ci <120357966@qq.com> 1732263440 +0000
committer Gitee <noreply@gitee.com> 1732263440 +0000

!1797 API Lint整改
Merge pull request !1797 from chenjunxiang/20241121_master)LfxXtree b4f844cd6beeac26ac4dca9803032c71910f9737
parent 6ec25b4a705449ff74bad49bd7bcd38ce2992063
parent a593a1d104b1a38ba62f52d9ef5c1a1ee66e07fa
author openharmony_ci <120357966@qq.com> 1732262491 +0000
committer Gitee <noreply@gitee.com> 1732262491 +0000

!1773 hiAppEvent接口APILint整改C
Merge pull request !1773 from liujiaxing19/fixAPILintpm#xatree 220325d37e52329c86dbdafd9f835f5e2ab22445
parent 6ec25b4a705449ff74bad49bd7bcd38ce2992063
author ZhaoJinghui <zhaojinghui5@huawei.com> 1732259470 +0800
committer ZhaoJinghui <zhaojinghui5@huawei.com> 1732259476 +0800

C API syntax correction

Change-Id: I535e0a96eb84998aadea6517c1eb2d817ac71772
Signed-off-by: ZhaoJinghui <zhaojinghui5@huawei.com>
"n x\tree a6c74fd73dcb9219e8ef1ef4527eac9e02c38b55
parent 2c8f8f072aa8129a25e7043b32788d187e34958a
parent f2a861a42e975e6eeab4bddce3c184791e4d6be0
author openharmony_ci <120357966@qq.com> 1732256177 +0000
committer Gitee <noreply@gitee.com> 1732256177 +0000

!1804 fix: trace.h文件注释添加结束标志
Merge pull request !1804 from jiangwei/masteruxtree 3b3c79f9ad82b68a22d688576de5798ca648c433
parent 2c8f8f072aa8129a25e7043b32788d187e34958a
author 蔡一鸣 <caiyiming4@huawei.com> 1732255114 +0800
committer 蔡一鸣 <caiyiming4@huawei.com> 1732255114 +0800

API Lint

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>
 \x?tree a6c74fd73dcb9219e8ef1ef4527eac9e02c38b55
parent 2c8f8f072aa8129a25e7043b32788d187e34958a
author jiangwei <jiangwei214@h-partners.com> 1732243768 +0800
committer jiangwei <jiangwei214@h-partners.com> 1732243768 +0800

fix: trace.h文件注释添加结束标志

Signed-off-by: jiangwei <jiangwei214@h-partners.com>
o;x]tree 52d5ff29740a0d3cd7037cef6070d34d64afcdea
parent 79d5dc37549be9a2950a6178822e344a758816cf
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1731919601 +0800
committer wangxiuxiu <wangxiuxiu9@huawei.com> 1732241566 +0800

keyevent 接口整改

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
Change-Id: Iafe513facda3f037b30d3af63260a330c6121bb1
Hqٔxtree 56b54d618d16d0fb0fc2216e3c8cad2dc3b7ea74
parent 41ed9bb00a9b54aa7199b29500d82f1272a3c775
author huanghan <huanghan18@huawei.com> 1732198530 +0800
committer huanghan <huanghan18@huawei.com> 1732198530 +0800

API Lint整改

Signed-off-by: huanghan <huanghan18@huawei.com>
WOxtree 63b07adaf365ad18462b7ef6089c56271b5cf69a
parent 41ed9bb00a9b54aa7199b29500d82f1272a3c775
author huanghan <huanghan18@huawei.com> 1732198464 +0800
committer huanghan <huanghan18@huawei.com> 1732198464 +0800

API Lint的整改

Signed-off-by: huanghan <huanghan18@huawei.com>
bXxdtree ec1814eff1109fda798d7d518e6dda10acc2c934
parent 50562c03312c1c1e6d4b29c985d8694d01164a3c
parent 777f5489627c7fd73982da794e172d55f195be38
author openharmony_ci <120357966@qq.com> 1732195102 +0000
committer Gitee <noreply@gitee.com> 1732195102 +0000

!1778 TEE KIT API下架，待TEE孵化后再评审导出
Merge pull request !1778 from suwanghw/masterwlxUtree ae5ff52d50cafc5290db422693767ac68e4f1457
parent 3c9959cc7a210c2e76765af307b3a6a14ec8d5c9
parent 9e992ca06616ae860827501ca800cca16f9e25cb
author openharmony_ci <120357966@qq.com> 1732191463 +0000
committer Gitee <noreply@gitee.com> 1732191463 +0000

!1717 Fix：新增错误码，新增接口
Merge pull request !1717 from shilong/mastertrݙxItree 82238bf19381d629de1abad2aefc80f616b990d0
parent 4a8141991bbe3711c95e0b9a3b4f3eddfb7a3fd1
parent 74a194ccb16238e51fc97a88f0845afecbd583aa
author openharmony_ci <120357966@qq.com> 1732187430 +0000
committer Gitee <noreply@gitee.com> 1732187430 +0000

!1787 调整接口顺序
Merge pull request !1787 from 王丽莉/master0422ilkxtree 39c06a3dd3ab38c4d0e8d5fe1bbec93167d3186c
parent c3513fe714175209172b4e9cb0718c4904001f7c
author chenjunxiang <chenjunxiang4@huawei.com> 1732174969 +0800
committer chenjunxiang <chenjunxiang4@huawei.com> 1732181803 +0800

解决api lint整改

Signed-off-by: chenjunxiang <chenjunxiang4@huawei.com>
Change-Id: I34d3931a88447dc561c62b22246db6e9c58674f5

解决api lint整改

Signed-off-by: chenjunxiang <chenjunxiang4@huawei.com>
Change-Id: I02b6a01eee5f099411f6a8d691353032997fca43
Pxjtree 0d854444048e68ef615531cb3c057f012a7b8f07
parent 910d4f7672d5f5706889ff7c693ba850990bcccb
parent 933713558db31988d40cd10c1ecbeb68304f6364
author openharmony_ci <120357966@qq.com> 1732181762 +0000
committer Gitee <noreply@gitee.com> 1732181762 +0000

!1794 图形API Lint整改 OH_PixelmapImageInfo_GetAlphaType
Merge pull request !1794 from shenshiyi2/masteror#x@tree 0656eb1ca82868d973e97e277ba8cbdc26d6f6fb
parent bda1b17384e90c6a5fa2b3d037edf0fd7d425cf4
parent c3e764e0851c044f97fb4a6213039d6fe2a1a35f
author openharmony_ci <120357966@qq.com> 1732181727 +0000
committer Gitee <noreply@gitee.com> 1732181727 +0000

!1744 vsync注释fix
Merge pull request !1744 from 李辉/lint1115dx>tree 08c4e1c1377c5319f8687f8ea1d1c28bd8c64bcf
parent c3513fe714175209172b4e9cb0718c4904001f7c
parent fa1794b89c91096d9c8d507ec72593bf0422b038
author openharmony_ci <120357966@qq.com> 1732181691 +0000
committer Gitee <noreply@gitee.com> 1732181691 +0000

!1681 api变更sdk-c
Merge pull request !1681 from 郭旭/master)waxLtree a34056c4229fd00ea5712d41c2ff4acfcb07bb91
parent cdce281b23bfb8f4f2e5db5bace26a4a8a4783f0
author shenshiyi2 <shenshiyi2@h-partners.com> 1732173838 +0000
committer Gitee <noreply@gitee.com> 1732173838 +0000

update multimedia/image_framework/include/image/pixelmap_native.h.

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>mݖxtree cc20ffb71d69b2bccb737813735b1b86cb8e79e4
parent b23776d41de2099a8a9a1a253bece95277e71183
author shilong <dragon.shilong@huawei.com> 1732173415 +0000
committer Gitee <noreply@gitee.com> 1732173415 +0000

添加废弃标签

Signed-off-by: shilong <dragon.shilong@huawei.com>^ xWtree 6007e01f91549215f53ad3e2a0c1b80634231859
parent f961208fec699e6432bfc0631aa02ec05e44ac34
parent c3513fe714175209172b4e9cb0718c4904001f7c
author shenshiyi2 <shenshiyi2@h-partners.com> 1732173197 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1732173197 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c
. i͞xNtree b04986c0e96faec4dd2397b1ba2acb29c823694a
parent b67aff7b4b6e899231287ae7e4719a65208562ad
author shenshiyi2 <shenshiyi2@h-partners.com> 1732173135 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1732173135 +0800

图形API Lint整改 OH_PixelmapImageInfo_GetAlphaType

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
p;xVtree 6718a19fd8c63c0629f7950805ecd2b79d477aef
parent f5ef6eb6703831b26f63a232c3390d4db050c812
parent 09c863f73f47e476b038edf350d5dbe6a2eab094
author openharmony_ci <120357966@qq.com> 1732162970 +0000
committer Gitee <noreply@gitee.com> 1732162970 +0000

!1694 新增动态帧率Vsync接口
Merge pull request !1694 from leafly2021/kal20241111ُm@xtree 3003ac66a479fb95329cf7b7edc952fc57e6005d
parent f5ef6eb6703831b26f63a232c3390d4db050c812
author wanxiaoqing <wanxiaoqing@huawei.com> 1732159246 +0800
committer wanxiaoqing <wanxiaoqing@huawei.com> 1732159246 +0800

告警清理

Signed-off-by: wanxiaoqing <wanxiaoqing@huawei.com>
F_)x tree db2fe2cd0cfb0428b799b937e2a4f55879a64162
parent 7df7d8dffcb4c64b07595108e85e7beff10c0883
author GuoLi <guoli37@h-partners.com> 1732103465 +0000
committer Gitee <noreply@gitee.com> 1732103465 +0000

update

Signed-off-by: GuoLi <guoli37@h-partners.com>Nxtree adc6404c73e5dee1827551b05eee999a5a2ed874
parent 47e6bc2e1c5b79c4966bb1f98767a7a57cd534c6
author GuoLi <guoli37@h-partners.com> 1732102604 +0000
committer Gitee <noreply@gitee.com> 1732102604 +0000

API Lint告警清理

Signed-off-by: GuoLi <guoli37@h-partners.com>VxQtree 0aeb351b66f12f0bb59dc173e23c0a11dd4c9df3
parent 47e6bc2e1c5b79c4966bb1f98767a7a57cd534c6
parent 73bb68bf2092ed2ceb33c549e7a4e3d46c917e8a
author openharmony_ci <120357966@qq.com> 1732094942 +0000
committer Gitee <noreply@gitee.com> 1732094942 +0000

!1753 修改接口描述
Merge pull request !1753 from changleipeng/font_descriptor>mxHtree 71f0b981d166c9307ab06db77d1ced7a0ad59536
parent 0c84bcb24fff934e0907d7ee234fb5b8f5bbfd60
parent ebd94021fe6900d7a3ad63380d190abcdf46cd49
author openharmony_ci <120357966@qq.com> 1732091254 +0000
committer Gitee <noreply@gitee.com> 1732091254 +0000

!1768 图形API Lint整改
Merge pull request !1768 from cloctred/api-lintvgxStree 59759f95cac2b83eeb6dab37a6c30a77427d18ed
parent 0c84bcb24fff934e0907d7ee234fb5b8f5bbfd60
author wanglili12 <wanglili65@huawei.com> 1732087705 +0800
committer wanglili12 <wanglili65@huawei.com> 1732087705 +0800

调整接口顺序

Signed-off-by: wanglili12 <wanglili65@huawei.com>
Change-Id: I1253c17ccf1ea708571ecf3dc06ba580ec221fcf
_:oxOtree 9c3c9804de776969677f07aa78f4e885061f2d9a
parent d948b3ea74e1fd520fd3107b2196b12a894d7418
parent edb766ae8419040ab35595729c5289280328fe58
author openharmony_ci <120357966@qq.com> 1732086410 +0000
committer Gitee <noreply@gitee.com> 1732086410 +0000

!1762 hidebug接口api规范整改
Merge pull request !1762 from 于好强/master^jmxGtree 5350ab282fbc44d0e9a0272c9ed4d25da93705c7
parent d82cdbdb9c144fc195d943eb55bad6688afb790d
parent f06f09a1053671cd975676bb561eaeb5b6835b95
author openharmony_ci <120357966@qq.com> 1732086143 +0000
committer Gitee <noreply@gitee.com> 1732086143 +0000

!1780  hilog API Lint整改
Merge pull request !1780 from liuyifei/master9dExwtree dcc7798161bd174dfb72a9be966e483cbd0300bc
parent 7cb199b82be28622d4a70f9b12bea1c3c29a1ec1
author 乾阳熠 <qianyangyi@h-patners.com> 1731935012 +0800
committer 乾阳熠 <qianyangyi@h-patners.com> 1732083877 +0800

Description: sdk_c告警修改
IssueNo: https://gitee.com/openharmony/drivers_hdf_core/issues/IB57T6
Signed-off-by: qianyangyi <qianyangyi@h-partners.com>
dxytree a73b64d806c76e0afde6b94f9ecc8008a4d52195
parent ef3cb3e0b8cd87cccc0e31c44d1df96ddbfb646d
author sqwlly <shiqiwei4@huawei.com> 1731570664 +0000
committer sqwlly <shiqiwei4@huawei.com> 1732074980 +0000

add new interface sdk c Signed-off-by: s30029175 <shiqiwei4@huawei.com>

Signed-off-by: sqwlly <shiqiwei4@huawei.com>
Change-Id: I4b73da3d896ce70a34ddf58d6172705d6bf68d82
vxtree 4a84123f192e984fbf770d885745be6832d43c30
parent 760a0b16812b9bfffa472484d7fe1e4c23c3937e
author liufei <liufei225@h-partners.com> 1732074964 +0800
committer liufei <liufei225@h-partners.com> 1732074964 +0800

add api lint

Signed-off-by: liufei <liufei225@h-partners.com>
jhTDxtree 486511fde6d61d60e537fba0b70591099e60ad6c
parent 41ed9bb00a9b54aa7199b29500d82f1272a3c775
author wangyulie <wanglieyu@126.com> 1732018083 +0800
committer wangyulie <wanglieyu@126.com> 1732072567 +0800

规范性整改

Signed-off-by: wangyulie <wanglieyu@126.com>
VgxCtree 5a370890dff2f5dc0cb743897c398a2d61bfb9f3
parent c89e33bd4fc7b2e61c5c40d40a0006c37ad1ae17
parent 99a39dce90817a4a2a45d0a28bc27e8fd0b1b959
author openharmony_ci <120357966@qq.com> 1732025833 +0000
committer Gitee <noreply@gitee.com> 1732025833 +0000

!1747  api lint告警
Merge pull request !1747 from wangdongqi/mastercx>tree 60884f34127a71a5b9effbcbf453e5bdab7e4464
parent 41ed9bb00a9b54aa7199b29500d82f1272a3c775
parent 97f1b22315e090794b2dc454004c87b17f083219
author openharmony_ci <120357966@qq.com> 1732025193 +0000
committer Gitee <noreply@gitee.com> 1732025193 +0000

!1765 huks api lint fix
Merge pull request !1765 from zww/master]ēxtree 41dda9becfcc9361c782dd17a4f1cec4352aa87a
parent 41ed9bb00a9b54aa7199b29500d82f1272a3c775
author liuyifei <liuyifei20@huawei.com> 1732024544 +0000
committer Gitee <noreply@gitee.com> 1732024544 +0000

 hilog API Lint整改

Signed-off-by: liuyifei <liuyifei20@huawei.com>%Wxtree 7bd9397d3cc808f147e577ed5ae46579d4690d34
parent 35e3a673c3f5c23c5b1bd40f36dc27f7bf513b9b
author suwanghw <wangsu14@huawei.com> 1732016394 +0800
committer suwanghw <wangsu14@huawei.com> 1732016394 +0800

Delete tee kit api

Signed-off-by: suwanghw <wangsu14@huawei.com>
+Ux=tree 55a372b25fdc2d35e6ae5825c94f27d5c9ad26a9
parent 35e3a673c3f5c23c5b1bd40f36dc27f7bf513b9b
parent d111464efdd49c0167169cca8b41281eb2394f04
author openharmony_ci <120357966@qq.com> 1732015627 +0000
committer Gitee <noreply@gitee.com> 1732015627 +0000

!1776 API DOC整改
Merge pull request !1776 from 胡伟/master[aߕxEtree 9d66288cba983e95108279d7711d3ec2d79bb6af
parent 87da35b2d7b2e9b94646098f43894cc5be3889cd
parent 02f980fe76d5e4e4b8e9db27b3c2ecb59d0e0497
author openharmony_ci <120357966@qq.com> 1732004283 +0000
committer Gitee <noreply@gitee.com> 1732004283 +0000

!1774 fix getMimeTypes error
Merge pull request !1774 from Gavin/masteraxktree 6cbdc460b0e44e2d50eb50221ce576d8e17a85ad
parent b79302d1f459c170f3478931e74fadfd0a69ed47
author liujiaxing19 <liujiaxing19@huawei.com> 1732003764 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1732003764 +0800

hiAppEvent接口APILint整改2

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: I12b1a9598e687e45cbbde587a5f730fe1f7b5016
̝uxJtree c0fdc570ac7014809ba3577f5379630a54f2f283
parent 067b629ce2b809a13b6a01a466e68f81373204a4
parent 60a71c532c55e8cc1fae5236b9e7d37331698ced
author openharmony_ci <120357966@qq.com> 1732002774 +0000
committer Gitee <noreply@gitee.com> 1732002774 +0000

!1662 ndk错误码枚举增加
Merge pull request !1662 from Feng Lin/masterhx$tree b09cec7980a100c04a179b10e6f3e7a9f318c29f
parent 83f7992fc90096b570a71b00dfe2ecee62e3f120
author shilong <dragon.shilong@huawei.com> 1732002602 +0000
committer Gitee <noreply@gitee.com> 1732002602 +0000

修改USB_DDK_IO_FAILED的注释

Signed-off-by: shilong <dragon.shilong@huawei.com>`x5tree 97583d84cc005240fa8850181fe5e82a196b4319
parent 6f94f058bb3c4fac018b107fc7ab08a03d78a992
author 胡伟 <huwei169@huawei.com> 1732000942 +0000
committer Gitee <noreply@gitee.com> 1732000942 +0000

update backgroundtasks/transient/include/transient_task_type.h.

Signed-off-by: 胡伟 <huwei169@huawei.com>ex4tree dad48ccb0878a8d686db470fec0aa8200ea5f897
parent 067b629ce2b809a13b6a01a466e68f81373204a4
author 胡伟 <huwei169@huawei.com> 1732000907 +0000
committer Gitee <noreply@gitee.com> 1732000907 +0000

update backgroundtasks/transient/include/transient_task_api.h.

Signed-off-by: 胡伟 <huwei169@huawei.com>Qex&tree 2e730b62756134c76eb6df48f5fecf6442c2c079
parent dd5b736b6d160b42752231a1e74e3b487d7c2961
author Gavin <caiguangwei2@huawei.com> 1731997216 +0800
committer Gavin <caiguangwei2@huawei.com> 1731997216 +0800

fix:add getMimeTypes interface json

Signed-off-by: Gavin <caiguangwei2@huawei.com>
[xtree 7d61ca73b6af387c67db295a1b38f21185f39d15
parent 7cb199b82be28622d4a70f9b12bea1c3c29a1ec1
author liufei <liufei225@h-partners.com> 1731985526 +0800
committer liufei <liufei225@h-partners.com> 1731985526 +0800

api lint

Signed-off-by: liufei <liufei225@h-partners.com>
S֚xjtree 32e925aa8ceff9eb6d05674a8b03cacbfa32d55b
parent 2275312fe6e91aa35acc5f8201d296a99f559188
author liujiaxing19 <liujiaxing19@huawei.com> 1731985061 +0800
committer liujiaxing19 <liujiaxing19@huawei.com> 1731985061 +0800

hiAppEvent接口APILint整改

Signed-off-by: liujiaxing19 <liujiaxing19@huawei.com>
Change-Id: Ia7f9ad69973e11c65e5e33b1c827dfe53c197da0
6u]xEtree 97c3353f5021d999b93779c0c2f9063c7f67dd3c
parent 8a225340bfcc683529215b0b9bceed1f8034fb55
parent 226a3728d3e970d3de7992fa139b04044dc3c96e
author openharmony_ci <120357966@qq.com> 1731937363 +0000
committer Gitee <noreply@gitee.com> 1731937363 +0000

!1769 修改注释信息
Merge pull request !1769 from 周澎亮/masterj.x=tree 2a418a297a35826d6418cc42ba4e6217334c8871
parent 4b1913350e25639afebff7e725fe3f400c7c1ce3
parent 47592a8252b0a37a25e3ec09c720f60e29d80e82
author openharmony_ci <120357966@qq.com> 1731932683 +0000
committer Gitee <noreply@gitee.com> 1731932683 +0000

!1682 添加addtogroup
Merge pull request !1682 from sjh/master%_ИxXtree e0146da2a9a6593d0874ef2d9501eeff488818dc
parent 7cb199b82be28622d4a70f9b12bea1c3c29a1ec1
parent b67aff7b4b6e899231287ae7e4719a65208562ad
author openharmony_ci <120357966@qq.com> 1731931909 +0000
committer Gitee <noreply@gitee.com> 1731931909 +0000

!1770 图形API Lint整改 image_common.h 
Merge pull request !1770 from shenshiyi2/masterJolx;tree e1057714e1e0f227b02d40a4d850d1867314d2f7
parent 481a182f30f8e20399b714b2c41a51a28dd1fb0c
author shenshiyi2 <shenshiyi2@h-partners.com> 1731922017 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1731922017 +0800

图形API Lint整改 image_common.h

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
+gxtree 4ff0c5ff3fa1e51a0a75fbe4ff2e4b9883fd5b1f
parent 79d5dc37549be9a2950a6178822e344a758816cf
author 张琼洁 <zhangqiongjie4@huawei.com> 1731913382 +0000
committer 张琼洁 <zhangqiongjie4@huawei.com> 1731920542 +0000

1

Signed-off-by: 张琼洁 <zhangqiongjie4@huawei.com>
&`yx tree 4e9e072ea4f50d57fe2e800e0c48a1ba6b51a83f
parent 7cb199b82be28622d4a70f9b12bea1c3c29a1ec1
author 周澎亮 <zhoupengliang1@huawei.com> 1731919146 +0000
committer Gitee <noreply@gitee.com> 1731919146 +0000

修改接口注释信息

Signed-off-by: 周澎亮 <zhoupengliang1@huawei.com>hj9xtree 580315782eadbb4e251ce15373691ccdf80f6597
parent 79d5dc37549be9a2950a6178822e344a758816cf
author zww <zhuweiwen@huawei.com> 1731915823 +0800
committer zww <zhuweiwen@huawei.com> 1731915823 +0800

huks api lint fix

Signed-off-by: zww <zhuweiwen@huawei.com>
-Px[tree 584bbdc427367eb13a96476b1c45d0472e3ab2c5
parent 79d5dc37549be9a2950a6178822e344a758816cf
parent 735478808b746d20bf13e0335f466cc8e2e56ad7
author openharmony_ci <120357966@qq.com> 1731912730 +0000
committer Gitee <noreply@gitee.com> 1731912730 +0000

!1763 fix: trace.h头文件修复app lint告警
Merge pull request !1763 from jiangwei/masterox>tree 87a004787948f4f496d98615af50bbb3c0186f49
parent 741dd1f0fa3909f7b934e44d7055f165f9465d74
parent 4c11ab9ed168f00a09e347f272220f8b22e7b8da
author openharmony_ci <120357966@qq.com> 1731911328 +0000
committer Gitee <noreply@gitee.com> 1731911328 +0000

!1761 api Lint整改
Merge pull request !1761 from Future/master$_ҝx]tree 3e152e155ea1dee3b4862e525d11794d048aff6f
parent eb463e4bf09dd32e63690964bc1e29ef95ebf382
parent c571eb64baf6406b0d504a666ff6928c33d1b892
author openharmony_ci <120357966@qq.com> 1731905326 +0000
committer Gitee <noreply@gitee.com> 1731905326 +0000

!1673 API Lint 整改 outputcount参数不匹配
Merge pull request !1673 from wangyifan/masterqxDtree 3a0e559f644cbce93b0b4100e8b92f1ba81bcbbe
parent 16eaf58a1a0d99675d9b49ba0f1b5dd7fc696ca9
parent 040b53c552352c76c9a9d28f681089e9ff3e6cbe
author openharmony_ci <120357966@qq.com> 1731905017 +0000
committer Gitee <noreply@gitee.com> 1731905017 +0000

!1756 effect_ndk 整改
Merge pull request !1756 from 肖邵安/masterWg)x[tree 32a53d89df3d79fb06a5490f6e3f6dde7767753e
parent 7107ebdf880c7f0c8f83f8f4ba9a84d29311a578
parent 481a182f30f8e20399b714b2c41a51a28dd1fb0c
author openharmony_ci <120357966@qq.com> 1731903415 +0000
committer Gitee <noreply@gitee.com> 1731903415 +0000

!1764 图形API Lint整改 pixelmap_native.h 
Merge pull request !1764 from shenshiyi2/masteromx>tree bcfbec5df18d47681f90ebd5d030da6228cc0d5d
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
parent 66503f84243972da50e11b115d69a1493b007ef0
author openharmony_ci <120357966@qq.com> 1731900623 +0000
committer Gitee <noreply@gitee.com> 1731900623 +0000

!1754 API规范整改
Merge pull request !1754 from runrunya/fixzc`x>tree b78b2b66cf380c91be5c7540f79e23d03a48450b
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
author shenshiyi2 <shenshiyi2@h-partners.com> 1731898040 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1731898040 +0800

图形API Lint整改 pixelmap_native.h

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
ONjx>tree 37376c0aa29cd86b9b07c297b6cc89c2086df342
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
author jiangwei <jiangwei214@h-partners.com> 1731897360 +0800
committer jiangwei <jiangwei214@h-partners.com> 1731897360 +0800

fix: trace.h头文件清理app lint告警

Signed-off-by: jiangwei <jiangwei214@h-partners.com>
9:l_xtree 5a22d274dc36c796f99d6aa8bac08fba14c5f40b
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
author yuhaoqiang <yuhaoqiang@huawei.com> 1731895199 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1731895199 +0800

规范整改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
i^hxtree 12b05c4975c95db274f352e9674b2408f1d2fc8d
parent f33b837c158d743e473be950bc7871a3f9b7cf1e
author 徐未来 <xuweilai2@huawei.com> 1731894714 +0800
committer 徐未来 <xuweilai2@huawei.com> 1731894714 +0800

api Lint整改

Signed-off-by: 徐未来 <xuweilai2@huawei.com>
`Ǚxytree c9e837d3cd226a5bb869a46e7eb4930bfc467735
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
author xwx1135370 <xuyao44@huawei.com> 1731736911 +0800
committer xwx1135370 <xuyao44@huawei.com> 1731736911 +0800

【windows】增加python3目录

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/IB4SU5?from=project-issue

Signed-off-by: xwx1135370 <xuyao44@huawei.com>
*<~x)tree 7acd9bea97c46fc220ff6cc1de059d87198c7c58
parent 1c0fca1ffdb771bc7bcc93792937b5c3dd151f9d
author 肖邵安 <xiaoshaoan@huawei.com> 1731721175 +0800
committer 肖邵安 <xiaoshaoan@huawei.com> 1731721175 +0800

effect ndk @file @addtogroup fix

Signed-off-by: 肖邵安 <xiaoshaoan@huawei.com>
gxJtree 81566bd58ef408f06868128de647e05cb28f4ca0
parent 6cc6f38ee657eabe3f8ca076b3010cf2c51dbda1
parent bdb178d43816fc61593602146ba30a6224699958
author openharmony_ci <120357966@qq.com> 1731675457 +0000
committer Gitee <noreply@gitee.com> 1731675457 +0000

!1695 DrawingAPI规范性整改
Merge pull request !1695 from lizhan/1111fix fxJtree 5a3693f5ae27a484b81c539e030bb7bfae63617d
parent d54af745174de95a6d0347b9d4d01cd1c382c558
parent dc1198d2c022bd5b555907d3be0705b41453f105
author openharmony_ci <120357966@qq.com> 1731667181 +0000
committer Gitee <noreply@gitee.com> 1731667181 +0000

!1637 change since 13 to 14
Merge pull request !1637 from xinchengcai/masterk	ax>tree 3fc2f7a9bd13948c2f9dc5def2c5cc4f550b2549
parent b644330032ed2dbc596a1004fb719deabca8fc81
parent c1aa321fb32ffba7e454a4e76c8771f927dc8ed1
author openharmony_ci <120357966@qq.com> 1731665958 +0000
committer Gitee <noreply@gitee.com> 1731665958 +0000

!1709 api lint fix
Merge pull request !1709 from 李辉/lint1112>rarxAtree a97f2dfe68ed464600eadf8ebe29add71f79cc08
parent fd4a5708cd588587d73af08a795be485cdfb3f59
parent 14dc43f20170926e3e401cc8d872e7f355e0e163
author openharmony_ci <120357966@qq.com> 1731665180 +0000
committer Gitee <noreply@gitee.com> 1731665180 +0000

!1748 api lint告警清除
Merge pull request !1748 from hhl/masterdҙxYtree 1344b8e62042b58b669ab56cac8e344875a86d73
parent 261d2307e38eb8b83168832bc16a3009e21f59ab
parent 7cceafcb06adc87ada06ab2ddced1a93d0450cf9
author openharmony_ci <120357966@qq.com> 1731661857 +0000
committer Gitee <noreply@gitee.com> 1731661857 +0000

!1704 【master】资源管理API Link整改
Merge pull request !1704 from 冉召宇/mastersʚxJtree 205d322375caf1101636f5ce3a1fa04ebf9f855a
parent 56f8a3585798cdc4b259b7fd8ae23eac1acd7b09
parent 914aa964e60248700f0cf999aeeea92818365ec8
author openharmony_ci <120357966@qq.com> 1731661132 +0000
committer Gitee <noreply@gitee.com> 1731661132 +0000

!1740 fix addtogroup and file tag
Merge pull request !1740 from Ethan/masterccxbtree 34922b5f06a8ea479cefb7c4594f5e223cbe16a4
parent 5f17c0d3b11fdfddf416459bbec0b577f5a4fce1
author changleipeng <changleipeng4@huawei.com> 1731656291 +0800
committer changleipeng <changleipeng4@huawei.com> 1731658687 +0800

修改接口描述

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Change-Id: I692072399873075e219d3e5868acccb81b475941
qu:xtree a17503509da31450278f810508da041fcd4ea1fb
parent 02f98efbe04b877a31a7eb0b40539765fb58067f
author cuile4 <cuile4@huawei.com> 1731656152 +0800
committer cuile4 <cuile4@huawei.com> 1731656736 +0800

Add float vector support for db.

Signed-off-by: cuile4 <cuile4@huawei.com>
SxCtree cb621845e54316c395dfa6d5a9309efea174f18d
parent 228d5910f32e96be90169c5ca16aafb72e5afb4e
parent 56f8a3585798cdc4b259b7fd8ae23eac1acd7b09
author cuile4 <cuile4@huawei.com> 1731652972 +0800
committer cuile4 <cuile4@huawei.com> 1731652972 +0800

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into vector
^d؝x=tree 6e1151ebe240f4bead11c83a7098ec254cba35fc
parent 56f8a3585798cdc4b259b7fd8ae23eac1acd7b09
author s00659936 <282229496@qq.com> 1731121100 +0800
committer s00659936 <282229496@qq.com> 1731644677 +0800

add addtogroup

Signed-off-by: s00659936 <282229496@qq.com>
Change-Id: If723cfaaa9240e53d954a1e8de3e69f126526a2e
3WƙxYtree f6ecff00e296ce11bf2bbb05d261302cc4671fba
parent 5d1228818e95f5ba067ff80d4fdf53caed292ae8
parent 3fbfec31d1c56e7427d48e4fbbbe9f6561c27667
author openharmony_ci <120357966@qq.com> 1731643791 +0000
committer Gitee <noreply@gitee.com> 1731643791 +0000

!1719 新增effectkit BlurWithTileMode接口
Merge pull request !1719 from 肖邵安/masterfMqxAtree 06607ec6e02d4eb61341065d9e2c50b11c062fae
parent 16d59b5f84f4519a8c8110f3253deeb2018972d9
parent 28f2bea8e2d752704ea9e037454fda091934f79d
author openharmony_ci <120357966@qq.com> 1731642253 +0000
committer Gitee <noreply@gitee.com> 1731642253 +0000

!1692 告警清理 
Merge pull request !1692 from lichaochen/master,b͘xXtree 5af514a03b7f6549ebe0f84a623f1d05d9bad593
parent c69bfaf363f00596463fd791506114b984624b05
parent c6df9e7855864e865d7fdf94d6c98ed250e68cac
author openharmony_ci <120357966@qq.com> 1731641676 +0000
committer Gitee <noreply@gitee.com> 1731641676 +0000

!1665 dlp capi接口变更api等级为api14
Merge pull request !1665 from 王永忠/masterprxtree b175728a334d7be2df47c197d6f49ad17bfa8b6e
parent c69bfaf363f00596463fd791506114b984624b05
author liuzerun <liuzerun@huawei.com> 1731640046 +0000
committer liuzerun <liuzerun@huawei.com> 1731640046 +0000

API 规范整改

Signed-off-by: liuzerun <liuzerun@huawei.com>
 Yxtree 22a04ba362e7b6f4c18fa039a16b81347b7ee708
parent c69bfaf363f00596463fd791506114b984624b05
author hhl <yinhuiling@huawei.com> 1731639909 +0800
committer hhl <yinhuiling@huawei.com> 1731639909 +0800

fix issues

Signed-off-by: hhl <yinhuiling@huawei.com>
;Nx(tree b2340215153ed07b159ecb3192d369828c64c54b
parent c69bfaf363f00596463fd791506114b984624b05
author wangdongqi <wangdongqi2@huawei.com> 1731639535 +0800
committer wangdongqi <wangdongqi2@huawei.com> 1731639535 +0800

Signed-off-by: wangdongqi <wangdongqi2@huawei.com>

 Changes to be committed:
K\6xtree cf5827748f212ddc15d31aaf4e2310876ffe74a1
parent c69bfaf363f00596463fd791506114b984624b05
author lihui <lihui359@huawei.com> 1731637123 +0800
committer lihui <lihui359@huawei.com> 1731637123 +0800

api lint fix 1115

Signed-off-by: lihui <lihui359@huawei.com>
zN=xXtree ba18a5785440d68b19e60e30c43165930b4a5377
parent 0b9074408d8e7fe773a1f44b62c77612caf8ad83
parent 78bebfc4f2f66cec1c10f87472744bb8f7e0c675
author openharmony_ci <120357966@qq.com> 1731590077 +0000
committer Gitee <noreply@gitee.com> 1731590077 +0000

!1738 init 修改 @addtogroup、@file位置
Merge pull request !1738 from 林楠木/masterPp>xtree c4b918f7c800682d13bda9f8e6522814e9e86b6a
parent e58ed54edee650b35e5f08c352698ad2a8b6484e
author shilong <dragon.shilong@huawei.com> 1731586339 +0000
committer Gitee <noreply@gitee.com> 1731586339 +0000

标点符号

Signed-off-by: shilong <dragon.shilong@huawei.com>Yx+tree 240fa31f15b2eef9e21f41160b92f49641b8c8c9
parent 64f462d706eb32191f71a64d94c248d6689b3184
author 肖邵安 <xiaoshaoan@huawei.com> 1731487250 +0800
committer 肖邵安 <xiaoshaoan@huawei.com> 1731586305 +0800

add ndk interface BlurWithTileMode

Signed-off-by: 肖邵安 <xiaoshaoan@huawei.com>
f)xtree 283a56079ab527ed84aa462013474d845cd1259a
parent 5909304b56b02beb69b487085c29541206a1f809
author shilong <dragon.shilong@huawei.com> 1731586221 +0000
committer Gitee <noreply@gitee.com> 1731586221 +0000

修改注释格式

Signed-off-by: shilong <dragon.shilong@huawei.com>\xtree e1c30614f4a5aaa081e59f96c0460b4edcdfad93
parent 371fac3026ce6b762ed593a3d1bbf6c448563e83
author shilong <dragon.shilong@huawei.com> 1731586089 +0000
committer Gitee <noreply@gitee.com> 1731586089 +0000

加上@error标记

Signed-off-by: shilong <dragon.shilong@huawei.com>f\^xNtree accd7c38895e680c7fe7bd062dbd39afee08cfa1
parent c69f9a731871fd1e99868d648109fdcd42f139e3
parent 5616d5db5a69081935c4ec240cf50b831db486d7
author openharmony_ci <120357966@qq.com> 1731583049 +0000
committer Gitee <noreply@gitee.com> 1731583049 +0000

!1724 修改头文件使用范围
Merge pull request !1724 from cloctred/fix-ndkox6tree 76ee830a286705a5659baf15093d325a77236c9e
parent c6bd856da947273648997970dcb0dcb5f78c7ff1
author liuchungang <liuchungang@hisilicon.com> 1731575895 +0800
committer liuchungang <liuchungang@hisilicon.com> 1731577285 +0800

fix addtogroup and file tag

Signed-off-by: liuchungang <liuchungang@hisilicon.com>
2dxktree eecc7314a45099f32f58373e979b8e458bb74132
parent e8287359275f4395806842783e76b4a591953903
parent 828e9c31b067fd752e6e00fb1a8f2b951ae47ad7
author openharmony_ci <120357966@qq.com> 1731576861 +0000
committer Gitee <noreply@gitee.com> 1731576861 +0000

!1633 【基础能力】容器组件焦点支持配置TabStop
Merge pull request !1633 from wangxiuxiu96/capiC}x	tree 63dc70ef9080377d0818b3710541cc581e3ae3af
parent 5f17c0d3b11fdfddf416459bbec0b577f5a4fce1
author lihui <lihui359@huawei.com> 1731384115 +0800
committer lihui <lihui359@huawei.com> 1731573045 +0800

api lint alarm fix

Signed-off-by: lihui <lihui359@huawei.com>
#PxQtree 770b4dd3976e57f154611c7100652662b5f8bb29
parent 054622864e0d7bae290eae4d5c1b8d3efe910c22
parent 364a12c94e70df2f611a92ffc4dd4cd709d45701
author openharmony_ci <120357966@qq.com> 1731569815 +0000
committer Gitee <noreply@gitee.com> 1731569815 +0000

!1615 C-API打点需求相关API提交
Merge pull request !1615 from 邹林肯/xq15onxYtree d47969c5743fb68cca0cf3fc6ea42e4bd540461a
parent 17584182955a71478d10850a2ed61966a0fcdaca
author lwx1281857 <linnanmu@h-partners.com> 1731567187 +0800
committer lwx1281857 <linnanmu@h-partners.com> 1731567187 +0800

Description:Code optimization
Feature or Bugfix:Bugfix
Binary Source:No

Signed-off-by: lwx1281857 <linnanmu@h-partners.com>
ClxBtree 9fc120b25f8a26cdb7229f15fc21767702abe4e2
parent 4d3b943532f0fe46986cf270f34f02a93077e236
parent e07045f3e9a536cef356f5b7c54e18ff08090c39
author openharmony_ci <120357966@qq.com> 1731561665 +0000
committer Gitee <noreply@gitee.com> 1731561665 +0000

!1684 新增说明
Merge pull request !1684 from XUXIAOBO/master1111Nb?xQtree bc0f2c8fe5545b999a3b8a3964b0dc86717562cb
parent f92fdcf0ea158107084149d2b6640332672a9ff0
parent 9e0d641ca963c5eb1d5c943f3bddad5eaf366f6f
author openharmony_ci <120357966@qq.com> 1731558264 +0000
committer Gitee <noreply@gitee.com> 1731558264 +0000

!1720 fix build error
Merge pull request !1720 from 姚星宇/11_13_fix_build_errorhxwtree 0b25cb04c295f9f5a00a0c5a72ac4268d19e6ec4
parent d19113c45f32c58488a8677c51fbcafdf13b2ac0
parent 2aff0fb89b2860f54752b5bebbb14c694428f43a
author openharmony_ci <120357966@qq.com> 1731556918 +0000
committer Gitee <noreply@gitee.com> 1731556918 +0000

!1696 TextPicker组件增加滑动停止事件回调
Merge pull request !1696 from houguobiao/req_textpicker_onscrollstopw,֞x tree 733811925098b87fdd3414f9ba814b69f6005508
parent 04db8e5605e4b3502b47e5e2586eef98511c5aab
author Feng Lin <linfeng67@huawei.com> 1731555330 +0000
committer Gitee <noreply@gitee.com> 1731555330 +0000

ad

Signed-off-by: Feng Lin <linfeng67@huawei.com>jKxtree 8361409aa78fed61b58a102ec7d95446aac55b44
parent 0fe987b1cd9b81eac26525320aa38ac9aa93600a
author l00844999 <lizhan12@huawei.com> 1731374044 +0800
committer l00844999 <lizhan12@huawei.com> 1731549915 +0800

drawing整改
Signed-off-by: l00844999 <lizhan12@huawei.com>
Qxtree 1bf38bb0fcece234a7b344e8b35071bdcce62408
parent bc8a6b4e612e3a9685708c7dadec5f12e1fa4216
author shilong <dragon.shilong@huawei.com> 1731549489 +0000
committer Gitee <noreply@gitee.com> 1731549489 +0000

exit 修改成exist

Signed-off-by: shilong <dragon.shilong@huawei.com>\RxEtree 69f7a6333c0a5e40fce1507e1711e73eb6422189
parent 2f6cbac961012c77171b2af8d74fd5ca77882026
author 冉召宇 <ranzhaoyu1@huawei.com> 1731549471 +0000
committer Gitee <noreply@gitee.com> 1731549471 +0000

update global/resource_management/include/rawfile/raw_file_manager.h.

Signed-off-by: 冉召宇 <ranzhaoyu1@huawei.com>Gn>x=tree ec8d88baaed88f205a2f72cbf8b5588e0478de83
parent 45a8d4af97339dd670578b7bfd7b7bbf978f444b
author 冉召宇 <ranzhaoyu1@huawei.com> 1731549456 +0000
committer Gitee <noreply@gitee.com> 1731549456 +0000

update global/resource_management/include/rawfile/raw_file.h.

Signed-off-by: 冉召宇 <ranzhaoyu1@huawei.com>Rlʜx<tree 73a23668874897c157ac7950f391eb2a063bb479
parent df8772f431170b5a1317ae8625040ee36ac37fc5
author 冉召宇 <ranzhaoyu1@huawei.com> 1731549441 +0000
committer Gitee <noreply@gitee.com> 1731549441 +0000

update global/resource_management/include/rawfile/raw_dir.h.

Signed-off-by: 冉召宇 <ranzhaoyu1@huawei.com>ajxtree b719f2204c574975be3a4aa23f070f4551bd19da
parent 76638683f78a05a90b98440b92682e8a751ce7da
author shilong <dragon.shilong@huawei.com> 1731549203 +0000
committer Gitee <noreply@gitee.com> 1731549203 +0000

修改hid_ddk注释代码

Signed-off-by: shilong <dragon.shilong@huawei.com>G_x;tree de7382d282f615f4c7682913dd7591491ef47168
parent 418d4d2ee9d0b87094e7d0949742a1f200342a0d
parent 5fa5493e6acbe79f3ddf24978e88bf33a667a0fd
author openharmony_ci <120357966@qq.com> 1731502369 +0000
committer Gitee <noreply@gitee.com> 1731502369 +0000

!1642 add kit
Merge pull request !1642 from changleipeng/1101\!xStree 239ba4a72197d5c752ced1057c365b3475b6bc83
parent 44e3b3e1a5ff71aab72539edb28973093bed8ec9
parent 79abb5576bbf89d9a6b70432076a7a86ce36e968
author openharmony_ci <120357966@qq.com> 1731498703 +0000
committer Gitee <noreply@gitee.com> 1731498703 +0000

!1713 引入了C++的头文件需要整改
Merge pull request !1713 from GuoLi/mastereq xTtree 55a2dd4ae546a53054926354dfb325b6051b2e9e
parent e8589705275c8be05804e79d9dbcf9f557b58768
parent 00b4462bfafa31345b9d574db111c99d32b22691
author openharmony_ci <120357966@qq.com> 1731498306 +0000
committer Gitee <noreply@gitee.com> 1731498306 +0000

!1714 LocationKit头文件依赖修改
Merge pull request !1714 from liuxinbing/mastern$xtree bd0d45e38f8292b0305ef11a0c21bbede6b633a1
parent 78f728d27f196439a5b1a62eb6e333993239b967
author shilong <dragon.shilong@huawei.com> 1731498273 +0000
committer Gitee <noreply@gitee.com> 1731498273 +0000

修改函数名

Signed-off-by: shilong <dragon.shilong@huawei.com>|[-x`tree dea6d5d83735f74e4a55900e8548bb8d32c797e8
parent b84e30ec4a03246c932988788d0eb972ba79c0ab
parent e7d6daaac847bbc2fc9d251c7f9000d8a437f524
author openharmony_ci <120357966@qq.com> 1731495247 +0000
committer Gitee <noreply@gitee.com> 1731495247 +0000

!1699 NativeDisplaySoloist API Lint 告警整改
Merge pull request !1699 from gonghongyu/SDK_1111MnxOtree 6e3f67fced57fa91a017f0a19f3c3dd3e1c1ede6
parent b84e30ec4a03246c932988788d0eb972ba79c0ab
author liufei <liufei225@h-partners.com> 1731493447 +0800
committer liufei <liufei225@h-partners.com> 1731493447 +0800

fix compile error

Signed-off-by: liufei <liufei225@h-partners.com>
Change-Id: I5fdd7d49cb42880b4ae8d8de992ad2e32b2c624c
gNxtree 1ecbf9cbdd8e982fb4d103950c6395b9e32e8c50
parent 6adb744a2f66bffdfa1c5d146a9e38919f87b988
author shilong <dragon.shilong@huawei.com> 1731490480 +0000
committer Gitee <noreply@gitee.com> 1731490480 +0000

修改11到10

Signed-off-by: shilong <dragon.shilong@huawei.com>dYxMtree e8608b319c1c6bc5aef0aef1311deb1fffcb2a55
parent 64f462d706eb32191f71a64d94c248d6689b3184
parent 8ab56e7abbc31d1e4ef846eb2660c2e2b10ff2bb
author openharmony_ci <120357966@qq.com> 1731489327 +0000
committer Gitee <noreply@gitee.com> 1731489327 +0000

!1703 c api不能依赖 c++库
Merge pull request !1703 from dujingcheng/djcsdklj>x"tree 8c1db9fb17642d1346e872743181e3a7e94c58ee
parent 4dd3aba812305d8aee5baaf9308ca39593f7eb94
author shilong <dragon.shilong@huawei.com> 1731488639 +0000
committer Gitee <noreply@gitee.com> 1731488639 +0000

新增没权限错误码注释

Signed-off-by: shilong <dragon.shilong@huawei.com>.fnxMtree bbbd4c34fd2ea116c50d9ee4af4584efc3700d8f
parent 3845d4b83e1f8b30b4d7bf703b894901b0ba6b6b
author y00656910 <yaoxingyu3@huawei.com> 1731488017 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1731488017 +0800

fix build error

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: Id0714bce41f7ac7d05e8115f8f24387eaba4c92f
cx)tree c1f2ac1fcb8c615accf6f5bcc428e9839d144f17
parent 64f462d706eb32191f71a64d94c248d6689b3184
author shilong <dragon.shilong@huawei.com> 1731487113 +0000
committer Gitee <noreply@gitee.com> 1731487113 +0000

修改错误码，新增release接口

Signed-off-by: shilong <dragon.shilong@huawei.com>
\i3xJtree be69840a9a5111047cc8f0f18dbfc73f60d9f74b
parent ff8266d3d0602feb9ed4d282c9f2728b40a8096b
parent 376e8dbc9fc2d155fd29d6b4bc7350814dce476c
author openharmony_ci <120357966@qq.com> 1731486659 +0000
committer Gitee <noreply@gitee.com> 1731486659 +0000

!1708 【bug】change sensor c api
Merge pull request !1708 from maan/masterlexXtree 41884b3c10f5fa8d38efc0841c788b2e55541220
parent 32addbba82eb7fc3bafd0f9acc2d305cf3b5dd19
parent bf5094e8c63cd0e8ff6c6cc4c6bd2107d62671c3
author openharmony_ci <120357966@qq.com> 1731485259 +0000
committer Gitee <noreply@gitee.com> 1731485259 +0000

!1700 【IPC&RPC】API lint 告警整改
Merge pull request !1700 from Lixiaoying25/masterv:ncxtree 85624661f9014beaef3119685c90279962d18bf6
parent 32addbba82eb7fc3bafd0f9acc2d305cf3b5dd19
author GuoLi <guoli37@h-partners.com> 1731483964 +0000
committer Gitee <noreply@gitee.com> 1731483964 +0000

蓝黄同步

Signed-off-by: GuoLi <guoli37@h-partners.com>MFTҕxtree 747845b7b31f72ffe85ac36ff69c531481911100
parent e43b081aca2f472161a7474e23c6a7ea78920ffc
author dujingcheng <dujingcheng@huawei.com> 1731465897 +0000
committer dujingcheng <dujingcheng@huawei.com> 1731482416 +0000

fix

Signed-off-by: dujingcheng <dujingcheng@huawei.com>
}~Vxtree 64c096322f8f78395d1d47ae4a8c7462be6702f3
parent 32addbba82eb7fc3bafd0f9acc2d305cf3b5dd19
author maan4 <maan4@huawei.com> 1731481084 +0000
committer maan4 <maan4@huawei.com> 1731481084 +0000

sensors CAPI change

Signed-off-by: maan4 <maan4@huawei.com>
N
x  tree ca7d007614126b11028d2441a7914ae223b83afd
parent bd8ab4ff35eb0417a4cc7a51c896309200094edb
author Feng Lin <linfeng67@huawei.com> 1731480050 +0000
committer Gitee <noreply@gitee.com> 1731480050 +0000

add

Signed-off-by: Feng Lin <linfeng67@huawei.com>4LbxNtree 0b479668b2649d44ed7c3183b80107d84727d341
parent b0afa5b90d845cc0d7c32df387215e21f9015825
parent a51295a10e8fcd14b53601065d5029e16321f008
author openharmony_ci <120357966@qq.com> 1731470893 +0000
committer Gitee <noreply@gitee.com> 1731470893 +0000

!1697 【bug】窗口编译告警
Merge pull request !1697 from 崔洪斌/mastermpx tree 2047e2dca9714871436cb66f8a53527b5e66e26a
parent b0afa5b90d845cc0d7c32df387215e21f9015825
author @ran-zhao-yu <ranzhaoyu1@huawei.com> 1731467636 +0800
committer @ran-zhao-yu <ranzhaoyu1@huawei.com> 1731467636 +0800

API Link整改

Signed-off-by: @ran-zhao-yu <ranzhaoyu1@huawei.com>
!Y[%xitree afc53351875aa44c11d28a32a07b1ea23b81e31d
parent e43b081aca2f472161a7474e23c6a7ea78920ffc
parent b2fbfdde407b0056096466236d9a120d5032df97
author openharmony_ci <120357966@qq.com> 1731466913 +0000
committer Gitee <noreply@gitee.com> 1731466913 +0000

!1593 image_effect 接口兼容性排查整改
Merge pull request !1593 from lusunqi/cherry-pick-1729671165Vv x)tree a3f775b4b74038b5297185b906b9707b229186a7
parent 7da99af6545d2f6ba032e6adef1127e90a62d33f
author zoulinken <zoulinken1@huawei.com> 1730104234 +0800
committer zoulinken <zoulinken1@huawei.com> 1731466621 +0800

C-API打点需求相关API提交

Signed-off-by: zoulinken <zoulinken1@huawei.com>
N
e[xtree b4278688863ffe6edad1736ffb39770365a544fd
parent d6ae5e73aba2a6678504c7c581c807c53e0a3f4d
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1730282799 +0800
committer 潜秋宏 <qianqiuhong@huawei.com> 1731416419 +0800

capi

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
*Zޜx|tree 7a26811a96ce895dd38185a442f3c03f1eda5d0d
parent 81b24824fe49b475634d801d3e6eb1dfa91a15a3
author houguobiao <houguobiao@huawei.com> 1731378154 +0800
committer houguobiao <houguobiao@huawei.com> 1731412742 +0800

TextPicker组件增加onScrollStop事件回调C接口定义

Signed-off-by: houguobiao <houguobiao@huawei.com>
Change-Id: I935cdc210db6488527cf788ef629dc0050c76783
`x@tree fafa264c0deb5ce7f07401e9fadc8925bb1543db
parent ad816cfd101aa0c2f1258cb8fcdd6fcec86a3003
parent 8c295b4afc6c0065dd54dd3ca4941f3ea3d0787d
author openharmony_ci <120357966@qq.com> 1731404701 +0000
committer Gitee <noreply@gitee.com> 1731404701 +0000

!1689 Asset lint
Merge pull request !1689 from xinchengcai/master3aݐxPtree 789c8c99257c5ce466d372ec94a18434f3390e33
parent 3f73e03d9fa612e0efaddf99cf75ca70b635fdda
parent f193300847f88f53d344efe37c5d560fa2ef2c23
author openharmony_ci <120357966@qq.com> 1731403584 +0000
committer Gitee <noreply@gitee.com> 1731403584 +0000

!1668 key事件支持capi
Merge pull request !1668 from wangxiuxiu96/keyevent-capijxdtree 856916df06efecbaa2ea0b37136e28481d810997
parent 5f17c0d3b11fdfddf416459bbec0b577f5a4fce1
parent 8a075e5cb601f8cdc3c17b91c19c767ff84876c2
author openharmony_ci <120357966@qq.com> 1731403442 +0000
committer Gitee <noreply@gitee.com> 1731403442 +0000

!1671 滚动类组件CAPI支持获取子组件全展开尺寸
Merge pull request !1671 from honzx/1108c~xtree 2bb0f14f551e17565637139abcb1c1fc1ac9a53d
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author cuile4 <cuile4@huawei.com> 1731327115 +0800
committer cuile4 <cuile4@huawei.com> 1731399403 +0800

pasteboard errorcode fix

Signed-off-by: cuile4 <cuile4@huawei.com>
Sx,tree 6c95b6bb12eb225e57be527b89556c639b95c7cf
parent 5f17c0d3b11fdfddf416459bbec0b577f5a4fce1
author Lixiaoying25 <lixiaoying25@huawei.com> 1731398826 +0800
committer Lixiaoying25 <lixiaoying25@huawei.com> 1731398826 +0800

API lint 告警整改
Signed-off-by: Lixiaoying25 <lixiaoying25@huawei.com>
c9xtree 5c697bce7d16069e53cb2bc8b6cfca1d1e2ac060
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author leafly2021 <figo.yefei@huawei.com> 1731327359 +0800
committer leafly2021 <figo.yefei@huawei.com> 1731398717 +0800

add Vsync api

Signed-off-by: leafly2021 <figo.yefei@huawei.com>
GVĝxMtree 52923a5d647b36fda39838e5804e50a0cbeb19c4
parent c6bd856da947273648997970dcb0dcb5f78c7ff1
parent b4aad91652f8eee567e950a9d05b7cb5b7712303
author openharmony_ci <120357966@qq.com> 1731383012 +0000
committer Gitee <noreply@gitee.com> 1731383012 +0000

!1686 api lint 告警清除
Merge pull request !1686 from 施运理/fix_warningy5kXx!tree 175a2bfad29aa5fa29949ec1aa85d48bdbe7afd7
parent 406c0a0aa0f9f8b6fc242879d3f705e5c75fb8de
author 崔洪斌 <cuihongbin@huawei.com> 1731378901 +0800
committer 崔洪斌 <cuihongbin@huawei.com> 1731381120 +0800

窗口调整编译告警

Signed-off-by: 崔洪斌 <cuihongbin@huawei.com>
bCm͚xJtree 0eb9f57797fa1e499605b37e686cca99dc21cf69
parent 36a245c9a543f29d23ebec68424d542d7a92dfe7
parent c50ce7407b97733f6d295dcf52be96eb1318b936
author openharmony_ci <120357966@qq.com> 1731380064 +0000
committer Gitee <noreply@gitee.com> 1731380064 +0000

!1690 告警清理
Merge pull request !1690 from 杨旭光/refactor/api-lint4ixHtree f37eaea9fe10146270a433f8689e2314d21ee319
parent 406c0a0aa0f9f8b6fc242879d3f705e5c75fb8de
parent 17584182955a71478d10850a2ed61966a0fcdaca
author openharmony_ci <120357966@qq.com> 1731378796 +0000
committer Gitee <noreply@gitee.com> 1731378796 +0000

!1691 init CAPI注释整改
Merge pull request !1691 from 林楠木/masterhɐx`tree 3d632125be2dc11527e2381e8f5ec1cfc16f8972
parent 81b24824fe49b475634d801d3e6eb1dfa91a15a3
author wangxiuxiu96 <wangxiuxiu9@huawei.com> 1730945065 +0800
committer wangxiuxiu96 <wangxiuxiu9@huawei.com> 1731377885 +0800

key event support capi

Signed-off-by: wangxiuxiu96 <wangxiuxiu9@huawei.com>
Change-Id: I2aa53bf46076e489800c8f5ec80ed8ab1139584b
,*nx<tree 94a7c03069fa7597607df8fd0b119bfaedfa5dcb
parent d40762f732899fcd467be416f56c86c374594600
parent 14256c55c4900aaf84ae1d0d1472306d50107363
author openharmony_ci <120357966@qq.com> 1731373575 +0000
committer Gitee <noreply@gitee.com> 1731373575 +0000

!1676 规范整改
Merge pull request !1676 from 梁琦/master bx9tree a29b5c5add8592ed60609139826d221beddc9780
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author gonghongyu <gonghongyu1@huawei.com> 1731330184 +0800
committer gonghongyu <gonghongyu1@huawei.com> 1731330184 +0800

NativeDisplaySoloist API Lint 告警整改

Signed-off-by: gonghongyu <gonghongyu1@huawei.com>
ilxEtree 0956281290ab0e103a9c2e3aa53a3a07479e44ca
parent bc795fccf0bd4977db8b123af21e72066f350dfb
parent fbf3d76898d9c8b744d6fce8360dae025da8bb1d
author openharmony_ci <120357966@qq.com> 1731327956 +0000
committer Gitee <noreply@gitee.com> 1731327956 +0000

!1680 更新接口标签
Merge pull request !1680 from 崔瑞斌/masterkdxtree 7fe4488d83b065b86159aa3273b1c59af59594fe
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author lcc <lichaochen@huawei.com> 1731315319 +0800
committer lcc <lichaochen@huawei.com> 1731315319 +0800

告警清理

Signed-off-by: lcc <lichaochen@huawei.com>
LSxltree b542b54aa89a610cf432d17cb170be58f9518256
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author yangxuguang-huawei <yangxuguang3@huawei.com> 1731312255 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1731312372 +0800

fix: api lint

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
Change-Id: Ia60c1cecfb6fbb4794246d3d8c94134109162a00
sPxXtree 84920defd388b3fa0bd94539685c6cd8944f8d0c
parent bc795fccf0bd4977db8b123af21e72066f350dfb
author Cai Xincheng <caixincheng@huawei.com> 1731312141 +0800
committer Cai Xincheng <caixincheng@huawei.com> 1731312141 +0800

asset api lint

Signed-off-by: Cai Xincheng <caixincheng@huawei.com>
Change-Id: Ibcdadb18e9eb07318aeb3dab975732a6465b5a9f
kNx^tree 647bb7e4fc77d75799baf9480db20ed5847f86d4
parent 0fe987b1cd9b81eac26525320aa38ac9aa93600a
parent 2cbc6c891ea35e0d38b53964c75e3c26a16fc5f2
author openharmony_ci <120357966@qq.com> 1731310371 +0000
committer Gitee <noreply@gitee.com> 1731310371 +0000

!1670 OH_MD_KEY_VIDEO_DECODER_ENABLE_VRR json 补充
Merge pull request !1670 from xzcbob/masterjxZtree d5ed2257593245f02b2b3e4ac7411e421919da16
parent 3845d4b83e1f8b30b4d7bf703b894901b0ba6b6b
parent 85f90673d570edd0ffa761d2bfa1a7ff95c142d9
author openharmony_ci <120357966@qq.com> 1731306367 +0000
committer Gitee <noreply@gitee.com> 1731306367 +0000

!1677 错误码表述英文语法错误修改-sdk_c
Merge pull request !1677 from blc/master:v͘xtree 5cb461607f1102831e0b4f18c6937aca2af14c53
parent 3845d4b83e1f8b30b4d7bf703b894901b0ba6b6b
author 施运理 <shiyunli@huawei.com> 1731297105 +0800
committer 施运理 <shiyunli@huawei.com> 1731305851 +0800

fix warning in comment
Signed-off-by: 施运理 <shiyunli@huawei.com>
`ʓx3tree 4a772a016fbad153ecb62d4ae90d16117d3b7a50
parent 3845d4b83e1f8b30b4d7bf703b894901b0ba6b6b
author xxb-wzy <xuxiaobo5@huawei.com> 1731296247 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1731296247 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: Ia858cc4e59e5c126d3e388e97a4e14b75831e328
E]gx tree 1fc71e39bd9ad538f7a050e719de54454f0be66b
parent 4421e63372ce9d78d24f3a49ebfa802378fbb55a
author Feng Lin <linfeng67@huawei.com> 1731292571 +0000
committer Gitee <noreply@gitee.com> 1731292571 +0000

ad

Signed-off-by: Feng Lin <linfeng67@huawei.com>Lܙxtree b617a2f9b30ee9cda6a4638efd32f00b53eb66c7
parent b621f181002d37cc195b57900bcd7af95ed7f151
author liangqi <liangqi28@huawei.com> 1731036113 +0800
committer liangqi <liangqi28@huawei.com> 1731291797 +0800

standardize rectification

Signed-off-by: liangqi <liangqi28@huawei.com>
,XTxtree d8e1629f5664ab8e1ee2e7cf6aeb63c94ec66c9a
parent 51c00ce25b297211efa3164fa2041a68e24dfbbd
author cuiruibin <cuiruibin3@huawei.com> 1731117013 +0800
committer cuiruibin <cuiruibin3@huawei.com> 1731291359 +0800

更新标签说明

Signed-off-by: cuiruibin <cuiruibin3@huawei.com>
V`x tree 269193bf76059fe6b2607f4ecc9306805d3d1d0d
parent f24ec47be0ffb63bcb59f465dc8dbeb5ec80075e
author Feng Lin <linfeng67@huawei.com> 1731290681 +0000
committer Gitee <noreply@gitee.com> 1731290681 +0000

ad

Signed-off-by: Feng Lin <linfeng67@huawei.com>MmxGtree 15ab67f80d0546f8f817274a92cb85c539cb575d
parent bc25d0f91ef3f8dddb0c018e8b8af2fad43665a2
author z30053788 <zhaobaoxin1@huawei.com> 1731141005 +0800
committer z30053788 <zhaobaoxin1@huawei.com> 1731141005 +0800

update

Signed-off-by: z30053788 <zhaobaoxin1@huawei.com>
Change-Id: I17f78f854d58b4d048379a0647b2505d734c6cac
`xtree 0233a77f5a4c81f6695875cfeb37735f363f2de8
parent 3845d4b83e1f8b30b4d7bf703b894901b0ba6b6b
author 郭旭 <guoxu34@huawei.com> 1731119001 +0000
committer 郭旭 <guoxu34@huawei.com> 1731119001 +0000

api变更sdk-c

Signed-off-by: 郭旭 <guoxu34@huawei.com>
VÛxKtree 6e2d206f789c63cae295793fda98d1f2aa79259f
parent 1053442ecf3fa9c40af173208710253601142ccb
parent b8c9d8844591a8e8a342d388b829071225827587
author openharmony_ci <120357966@qq.com> 1731059304 +0000
committer Gitee <noreply@gitee.com> 1731059304 +0000

!1664 Fix function's brief and param
Merge pull request !1664 from Lee/masteruaEx]tree 80e450feb4af9e51f57f0de782a7fe2802750858
parent 0b9768f9222512091cb8841c19396fe83b895b97
parent a22b6f55c5b161be182be26c4b6fbc8e23d58aeb
author openharmony_ci <120357966@qq.com> 1731057075 +0000
committer Gitee <noreply@gitee.com> 1731057075 +0000

!1674 修改camera.ndk.json文件中接口名称
Merge pull request !1674 from 章超123/master uxCtree 3532efc3d8b414c1f95a77e76da273a1ed9fb7d5
parent 9af67f18a4c906c071bfa56c5bef1be076603caf
author xzcbob <xuzhangchi@huawei.com> 1731056514 +0000
committer Gitee <noreply@gitee.com> 1731056514 +0000

update multimedia/av_codec/codec_base/libnative_media_codecbase.ndk.json.

Signed-off-by: xzcbob <xuzhangchi@huawei.com>Nj=xFtree f336538b00aed564d5defa5ff6b716b5d667fad7
parent b621f181002d37cc195b57900bcd7af95ed7f151
parent 59b6f17b63c69bc5547ccb2165a4fe605ef1df53
author openharmony_ci <120357966@qq.com> 1731055340 +0000
committer Gitee <noreply@gitee.com> 1731055340 +0000

!1646 添加截屏接口
Merge pull request !1646 from huangji731/masterhxtree bf67ed1e5f4a4c526aa528da1dcb06fcaf0d2724
parent b621f181002d37cc195b57900bcd7af95ed7f151
author shaoyuanzhao <shaoyuanzhao@huawei.com> 1731052317 +0800
committer shaoyuanzhao <shaoyuanzhao@huawei.com> 1731052317 +0800

fix errorcode

Signed-off-by: blc <caobaolong5@huawei.com>
}Zxtree 70599b3fdbc5f6c4bc1bf7bdf8019328abb3e35f
parent cdce82be1cbd0fa914af419e3673cbb97911ce6c
author Lee <18800203378@163.com> 1730882081 +0800
committer Lee <18800203378@163.com> 1731046994 +0800

fix function's brief and param

Signed-off-by: Lee <18800203378@163.com>
GLBx6tree d1e2b198ff73e244070fc57b68c24afb7cbecaec
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author w30052974 <wangyifan94@huawei.com> 1731034048 +0800
committer w30052974 <wangyifan94@huawei.com> 1731034048 +0800

API Lint 整改 outputcount参数不匹配

Signed-off-by: w30052974 <wangyifan94@huawei.com>
Y[eɟx_tree 2d341a9316354a706cd49d60d4cbbf71665698e2
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author hongzexuan <hongzexuan@huawei.com> 1731031264 +0800
committer hongzexuan <hongzexuan@huawei.com> 1731031264 +0800

scroll capi supports totalsize

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: I5d97922132674c6f836530351306b2bd86147651
myxNtree 8213a9e9513ff3d133109e8049693497146f23ef
parent 05b69be2dbb672d4f1d02dfdcfd56b967c93d98c
parent 075d1f7760128aa2e183feea80db2e69dbef8717
author xuzhangchi <xuzhangchi@huawei.com> 1731029748 +0800
committer xuzhangchi <xuzhangchi@huawei.com> 1731029748 +0800

Merge branch 'master' of https://gitee.com/xzcbob/interface_sdk_c_VRR
hx:tree 62de46dd12dc1ad603b715d48528135d4217cfb8
parent 9256a8e7de6a9d2684ea2973f2da26be549115d3
author xuzhangchi <xuzhangchi@huawei.com> 1731029627 +0800
committer xuzhangchi <xuzhangchi@huawei.com> 1731029627 +0800

OH_MD_KEY_VIDEO_DECODER_ENABLE_VRR json 补充

Signed-off-by: xuzhangchi <xuzhangchi@huawei.com>
idx1tree ca4d05859f03aea25c9df22307b20c086e956793
parent afa228c229e409e16e76c4581bac8291900dcd59
author zhanghongran <zhanghongran@huawei.com> 1730981697 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730981697 +0800

add VVC profile and level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
<6aʑx1tree eedb40cac05bd70cab1d0b23d541aa23484539fe
parent ec0a3969c05862601911b561d1a08a5cff054181
author zhanghongran <zhanghongran@huawei.com> 1730977671 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730977671 +0800

add VVC profile and level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
bxXtree 26a7bd7f9ea33144bb2ac68add4570bc1f8e75f4
parent 81b24824fe49b475634d801d3e6eb1dfa91a15a3
parent cc5063ac77102339d2f8444550e80e38b7b82c1b
author openharmony_ci <120357966@qq.com> 1730974721 +0000
committer Gitee <noreply@gitee.com> 1730974721 +0000

!1620 修复代码文件中未声明Kit问题
Merge pull request !1620 from 蔡一鸣/1029RZvx1tree ed226d33bfc5a275051a0ab0cbb1538ecd50bac5
parent 6b4fabeacee9015112de64571f726b0bdc88255c
author zhanghongran <zhanghongran@huawei.com> 1730972024 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730972024 +0800

add vvc profile and level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
lcx-tree fe446c6f3fb3b11108fa014b5d626d9bec07ef15
parent f0e0fe74805d1a4699afc2ac3247b2cf3f1176bd
author zhanghongran <zhanghongran@huawei.com> 1730965766 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730965766 +0800

add profile and level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
 3ax1tree 4685545925b07fbe4bf01462b0016df7b6d7bb82
parent 9fb565303ac0948eff4fa6d2db7399062cc0a075
author zhanghongran <zhanghongran@huawei.com> 1730962789 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730962789 +0800

add VVC profile and level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
Paxtree 506d270a6f93115eb1835f8b21fd4b7ed1a02b6e
parent d6ae5e73aba2a6678504c7c581c807c53e0a3f4d
author 蔡一鸣 <caiyiming4@huawei.com> 1730169205 +0000
committer 蔡一鸣 <caiyiming4@huawei.com> 1730962596 +0000

1029

Signed-off-by: 蔡一鸣 <caiyiming4@huawei.com>
&[kx1tree 8e3769093b8b39256fc6d8b3cec3ae9c0017b17f
parent 81b24824fe49b475634d801d3e6eb1dfa91a15a3
author zhanghongran <zhanghongran@huawei.com> 1730959267 +0800
committer zhanghongran <zhanghongran@huawei.com> 1730959267 +0800

add VVC Profile and Level

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
}axtree 663fd79154a007fb32d0063c940dea2494039a80
parent af56d57a260c5cc779fb69fc8c677509ff246b44
author Feng Lin <linfeng67@huawei.com> 1730947584 +0000
committer Gitee <noreply@gitee.com> 1730947584 +0000

ad change

Signed-off-by: Feng Lin <linfeng67@huawei.com>MNxtree 09a937e78f4a73e8cece78c3cd2bb8e03787fffd
parent d1d7d507949ef313f15f43b7ba84b53c4efbb6e9
author Feng Lin <linfeng67@huawei.com> 1730947256 +0000
committer Gitee <noreply@gitee.com> 1730947256 +0000

prove codecheck

Signed-off-by: Feng Lin <linfeng67@huawei.com>Sx tree dbe6f1ffbbf51d637f8f368658b0b8f3a54f8dcb
parent 6d06e1abe0df09f455bd697a6bff1a74e5baf71c
author Feng Lin <linfeng67@huawei.com> 1730946795 +0000
committer Gitee <noreply@gitee.com> 1730946795 +0000

ad

Signed-off-by: Feng Lin <linfeng67@huawei.com>
iNxPtree 3fbf47b8d54206def9d3e3a0da532b512a7d5415
parent 4b661a20149c7f157baa1a30a402626ad1cbc6bf
parent 36fcc9ab8ae558419f5eff896b6cd5f80a32d59c
author openharmony_ci <120357966@qq.com> 1730901749 +0000
committer Gitee <noreply@gitee.com> 1730901749 +0000

!1572 move ndk_targets.gni to sdk_c
Merge pull request !1572 from xukun_cai/masterfޟx  tree c6f93af11d184ebdd2b4640c232af6a129255838
parent a3fa417d48314840c50229656c64fe2cfc1cc8ff
author Feng Lin <linfeng67@huawei.com> 1730899332 +0000
committer Gitee <noreply@gitee.com> 1730899332 +0000

ad 

Signed-off-by: Feng Lin <linfeng67@huawei.com>Lxotree 4148276fe4aa9ef7c017edc83d72117c72fb6f0c
parent cdce82be1cbd0fa914af419e3673cbb97911ce6c
parent 7cec9821e367b97e9c16650112944a6d0bbc54b7
author openharmony_ci <120357966@qq.com> 1730895708 +0000
committer Gitee <noreply@gitee.com> 1730895708 +0000

!1623 提供NDK接口查询当前应用适用的设备类型
Merge pull request !1623 from liumingyue/add-bms-ndk/ےxtree 93aa514a42656a58e544d2469eb7cc3bdf47f06d
parent cdce82be1cbd0fa914af419e3673cbb97911ce6c
author 王永忠 <wangyongzhong2@huawei.com> 1730889739 +0000
committer Gitee <noreply@gitee.com> 1730889739 +0000

update api

Signed-off-by: 王永忠 <wangyongzhong2@huawei.com>]Kxtree 269193bf76059fe6b2607f4ecc9306805d3d1d0d
parent cdce82be1cbd0fa914af419e3673cbb97911ce6c
author Feng Lin <linfeng67@huawei.com> 1730875342 +0000
committer Gitee <noreply@gitee.com> 1730875342 +0000

add sdk c 

Signed-off-by: Feng Lin <linfeng67@huawei.com>3Oxrtree 79c36e2b07c059b4ea1559b62184b964fbdb2cc7
parent f47b4c9814ad8f380a31b9ccb42d7829c308524e
parent 065aeb77c34ac063c72431844e93934ec0366346
author openharmony_ci <120357966@qq.com> 1730867334 +0000
committer Gitee <noreply@gitee.com> 1730867334 +0000

!1654 bugfix: compilation failed due to lack of header file dependencies
Merge pull request !1654 from 华鑫/master;Irx]tree 26bcea99896b8d55aeaf6923d2e380e51170d02b
parent 0e3720faf4c6cde5881bed8ef4907983586751da
parent da22d4225fe55343cc8284a04a3df0ac968e93a1
author openharmony_ci <120357966@qq.com> 1730814172 +0000
committer Gitee <noreply@gitee.com> 1730814172 +0000

!1639 修改获取应用显存接口的api等级
Merge pull request !1639 from 于好强/masterj{]xDtree dd6c0874ac24fdcf6840f2d3721f01334f588af9
parent 4c28490e5a3b6570ff056613d845e991587bde17
parent ff5f3da6e8c14d0db014edb5349b8d69c2551c28
author openharmony_ci <120357966@qq.com> 1730807738 +0000
committer Gitee <noreply@gitee.com> 1730807738 +0000

!1618 jd ndk jsb
Merge pull request !1618 from jianglinyang/JD_ndk_jsb`xntree e9eabfe8351711d19234feac76320b9eccabe678
parent 4c28490e5a3b6570ff056613d845e991587bde17
author huaxin <huaxin6@huawei.com> 1730770003 +0800
committer huaxin <huaxin6@huawei.com> 1730770003 +0800

bugfix: compilation failed due to lack of header file dependencies

Signed-off-by: huaxin <huaxin6@huawei.com>
Change-Id: I69c59fde006ea263211e791fd2c5ef6930826451
qxVtree 9a01516d8a29f6ac97bda993a8fb5a352a4dcd59
parent b4a8e05c555952c57896f2ea918ffb10fc68b4b3
parent d3b2c12ecd35a51a88d498941083b525335664df
author openharmony_ci <120357966@qq.com> 1730723765 +0000
committer Gitee <noreply@gitee.com> 1730723765 +0000

!1652 包含很多README.OpenSource 重复文件，与主线third_party下的三方库重复定义
Merge pull request !1652 from 王曹宇/bugfix_delete_readme.OpenSourcer%p_xStree cf1ef6a20892a9f6affdbb3c82b00a5678f463d5
parent 1dd68a8b392dd9dd7ac3c98d95e31d8929956c13
parent 0aa39f3c8ae132077bebf7cda94999e197c1117d
author openharmony_ci <120357966@qq.com> 1730722693 +0000
committer Gitee <noreply@gitee.com> 1730722693 +0000

!1645 native window pts接口回退api13
Merge pull request !1645 from 李辉/pts1102
lx\tree fc5e0a330bf929c0e01aff3a908b397339d133f9
parent 0c8128c9579bad745b9babfe2fd70eadc630eb84
parent dd5b736b6d160b42752231a1e74e3b487d7c2961
author openharmony_ci <120357966@qq.com> 1730722017 +0000
committer Gitee <noreply@gitee.com> 1730722017 +0000

!1643 【剪切板服务】增加getMimeTypes接口
Merge pull request !1643 from Gavin/masterstٚxZtree 283d46038b6b546fe9fbf4eae43fcadd23d0e151
parent c9969f57afe65d8363b7362ee5e503500e45dfea
parent f33b837c158d743e473be950bc7871a3f9b7cf1e
author openharmony_ci <120357966@qq.com> 1730717702 +0000
committer Gitee <noreply@gitee.com> 1730717702 +0000

!1648 补充kit解决kit设计与实现不一致
Merge pull request !1648 from Future/masterv՝x-tree 7604cbb02ada3100d0c34c72d2a5a9132467166d
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author wangcaoyu <wangcaoyu@huawei.com> 1730711976 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1730711976 +0800

delete README.OpenSource in third_party

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
:>_xtree 283d46038b6b546fe9fbf4eae43fcadd23d0e151
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author 徐未来 <xuweilai2@huawei.com> 1730691294 +0800
committer 徐未来 <xuweilai2@huawei.com> 1730691294 +0800

补充kit

Signed-off-by: 徐未来 <xuweilai2@huawei.com>
_xGtree 682244fb1bc7e3cd0d0030f563280e5b45cf694a
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author huangji731 <huangji731@huawei.com> 1730538203 +0800
committer huangji731 <huangji731@huawei.com> 1730538203 +0800

https://gitee.com/openharmony/interface_sdk_c/issues/IB053U

Signed-off-by: huangji731 <huangji731@huawei.com>
Yex1tree d6540251bdc06c9b669b857dadc0746a68ecd68d
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author Gavin <caiguangwei2@huawei.com> 1730453906 +0800
committer Gavin <caiguangwei2@huawei.com> 1730535032 +0800

feature: pasteboard add interface getMimeTypes

Signed-off-by: Gavin <caiguangwei2@huawei.com>
axtree 8f6accdbf992716c3d98a5356999fe1763d63805
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author lihui <lihui359@huawei.com> 1730531273 +0800
committer lihui <lihui359@huawei.com> 1730531946 +0800

pts api 回退13

Signed-off-by: lihui <lihui359@huawei.com>
ePx"tree 2b8d5c8603bf010fa7db2f27c9282d41b6a9ac3a
parent c9969f57afe65d8363b7362ee5e503500e45dfea
author changleipeng <changleipeng4@huawei.com> 1730447159 +0800
committer changleipeng <changleipeng4@huawei.com> 1730447159 +0800

add kit

Signed-off-by: changleipeng <changleipeng4@huawei.com>
P\Ax<tree 14a09cc592645fca17b60fd3a53df2128f3d2e56
parent 501fe7ea21b7b03a864931500f003ed1bc645f91
parent dc2935cfed3ff331a1b4b41f612fe56a776421ba
author openharmony_ci <120357966@qq.com> 1730437473 +0000
committer Gitee <noreply@gitee.com> 1730437473 +0000

!1640 kit整改
Merge pull request !1640 from 俞超麒/master_cGxtree 14a09cc592645fca17b60fd3a53df2128f3d2e56
parent 501fe7ea21b7b03a864931500f003ed1bc645f91
author 俞超麒 <yuchaoqi1@h-partners.com> 1730432526 +0800
committer 俞超麒 <yuchaoqi1@h-partners.com> 1730432526 +0800

add kit

Signed-off-by: 俞超麒 <yuchaoqi1@h-partners.com>
y`\xtree 4c948398eb374658ff3e559402b15c6f951e45a1
parent 4969408a6d7daf0ce26f7e2fcfadd8c3b63adc6c
author j00466033 <jianglinyang@huawei.com> 1730115748 +0800
committer j00466033 <jianglinyang@huawei.com> 1730427508 +0800

JD ndk jsb

Signed-off-by: j00466033 <jianglinyang@huawei.com>
Txtree 983baa296c8514b65350ec5e716fcf0681d5f9b9
parent 501fe7ea21b7b03a864931500f003ed1bc645f91
author yuhaoqiang <yuhaoqiang@huawei.com> 1730426316 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1730426411 +0800

修改api等级

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
^xEtree c1778b24cf564dc227da34926d8e4bea0cb2c1ce
parent 4969408a6d7daf0ce26f7e2fcfadd8c3b63adc6c
parent 555321619c9cd4df88fc3dd281888cabff8917bd
author openharmony_ci <120357966@qq.com> 1730378712 +0000
committer Gitee <noreply@gitee.com> 1730378712 +0000

!1636 新增NDK接口
Merge pull request !1636 from XUXIAOBO/master1031eȑxqtree 6f84f02f034fdc2dc326847de41fccd8fdd0690a
parent 4969408a6d7daf0ce26f7e2fcfadd8c3b63adc6c
author Cai Xincheng <caixincheng@huawei.com> 1730367474 +0800
committer Cai Xincheng <caixincheng@huawei.com> 1730367474 +0800

change RequireAttrEncrypted to since 14

Signed-off-by: Cai Xincheng <caixincheng@huawei.com>
Change-Id: I1438c1ec6f9c9c73484b3b281c8b397a698e4db1
v8tx3tree 95a9369357973b951ec00f3b76026b43cdef63f1
parent 85a15325f5ff1456db755ff11f509e25f06016e7
author xxb-wzy <xuxiaobo5@huawei.com> 1730365605 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1730365605 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: I237236331668aa6f3304bce91b9eb59750710b4f
[ɐxptree a80ab6b89d0e19e96ccebbd66819b6fa40d995ae
parent f233b74d3f207df933e381becf9f32153de9d84b
parent 36fde95a4a516543063a7af665acf1240a85f79a
author openharmony_ci <120357966@qq.com> 1730347460 +0000
committer Gitee <noreply@gitee.com> 1730347460 +0000

!1597 添加interface_sdk_c getLastJavascriptProxyCallingFrameUrl接口
Merge pull request !1597 from xiaye/master,3wxrtree 385d6235e829a424220659d3dcd55feb6ddecc01
parent 47c790d3200fbabbd4ad7521fbf9a62e16b5da4e
parent 454cfaa19ef1962b8352fe9f48b0fc0b37d650f8
author openharmony_ci <120357966@qq.com> 1730346824 +0000
committer Gitee <noreply@gitee.com> 1730346824 +0000

!1565 新增OH_NativeXComponent_RegisterKeyEventCallbackWithResult NDK接口
Merge pull request !1565 from sd_wu/key6wx=tree 46e66bc3632a56051c1942088cfdaa212da16c56
parent ed415dab8cfe651596c51349f3f9026b26be6fc5
author liumingyue <liumingyue12@huawei.com> 1729238961 +0800
committer liumingyue <liumingyue12@huawei.com> 1730343037 +0800

add OH_NativeBundle_GetCompatibleDeviceType

Signed-off-by: liumingyue <liumingyue12@huawei.com>
fbxXtree 9e8469a98b2b4f810642535b2a3404aa39726d70
parent d6ae5e73aba2a6678504c7c581c807c53e0a3f4d
parent 33a41fee9904baefed03fea2418cc8cc29b25939
author openharmony_ci <120357966@qq.com> 1730282451 +0000
committer Gitee <noreply@gitee.com> 1730282451 +0000

!1547 auto switch device NDK API
Merge pull request !1547 from 章超123/autoSwitch-Masterx.ix tree 8c69f3b262e2d25d615a74f8dd6ebc13b32dbba0
parent 0e6245e8caf29e1b60054be8ebb0fd02331b0064
author xiaye <xiaye1@huawei.com> 1730170585 +0800
committer xiaye <xiaye1@huawei.com> 1730170585 +0800

增加空行

Signed-off-by: xiaye <xiaye1@huawei.com>
QxNtree d34b4df6c176494028e73365a3d32eb7c2351713
parent c1302d4d2521fbd656065f9b0b0cb44de645566c
parent 075d1f7760128aa2e183feea80db2e69dbef8717
author openharmony_ci <120357966@qq.com> 1730125740 +0000
committer Gitee <noreply@gitee.com> 1730125740 +0000

!1463 视频播放支持可变帧率
Merge pull request !1463 from xzcbob/master8mx_tree b55a2658a4e6fc59140fbcb6608999b888b2218e
parent 7da99af6545d2f6ba032e6adef1127e90a62d33f
parent 9f26e2d114bf9efc0540eab79d0b7d850ba1a8ea
author openharmony_ci <120357966@qq.com> 1730112144 +0000
committer Gitee <noreply@gitee.com> 1730112144 +0000

!1599 属性字符串序列化接口告警处理
Merge pull request !1599 from 张应祥/marshall}xstree 03e384232c2dcc48c0f2598417549620dd491297
parent 42387fe98b3c46091bfd0424754835d9dad54da1
parent 7da99af6545d2f6ba032e6adef1127e90a62d33f
author sd_wu <wudongsheng3@huawei.com> 1730100167 +0000
committer Gitee <noreply@gitee.com> 1730100167 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into key

Signed-off-by: sd_wu <wudongsheng3@huawei.com>txtree f9e9d7b04d0973bd1316b7ec2c19f7f636069fd7
parent ed8c4b0d2cf2606b30b04ba16a14092611d90227
author sd_wu <wudongsheng3@huawei.com> 1728975638 +0800
committer sd_wu <wudongsheng3@huawei.com> 1730099362 +0800

add key callback with ret

Signed-off-by: sd_wu <wudongsheng3@huawei.com>
OYx>tree 7be0c2e4767a09f0512189dd3f65236c76f91f94
parent bc25d0f91ef3f8dddb0c018e8b8af2fad43665a2
parent b3ca47567b53990878198d0043b6805921a63458
author openharmony_ci <120357966@qq.com> 1730084800 +0000
committer Gitee <noreply@gitee.com> 1730084800 +0000

!1604 添加kit标签
Merge pull request !1604 from Ethan/masterXbx'tree 7be0c2e4767a09f0512189dd3f65236c76f91f94
parent bc25d0f91ef3f8dddb0c018e8b8af2fad43665a2
author liuchungang <liuchungang@hisilicon.com> 1729928837 +0800
committer liuchungang <liuchungang@hisilicon.com> 1729928837 +0800

add kit name

Signed-off-by: liuchungang <liuchungang@hisilicon.com>
a_gx tree 951892878fc714b85eedcbe824a08a0be90cc398
parent 3aae7b9ada1f54e1f8c665c59015272878ea1dee
author xiaye <xiaye1@huawei.com> 1729853319 +0800
committer xiaye <xiaye1@huawei.com> 1729853319 +0800

调整格式

Signed-off-by: xiaye <xiaye1@huawei.com>
Qx tree 0ea7b188166d699143615162b199b70810f1c3d9
parent a1f3ff5d2991015c872b6dc80d6e1626405bce83
author xiaye <xiaye1@huawei.com> 1729850523 +0800
committer xiaye <xiaye1@huawei.com> 1729850523 +0800

调整格式

Signed-off-by: xiaye <xiaye1@huawei.com>
?Px tree c4656726f2235969ad6dd28394c861be6232de9f
parent 558f4130960e54c9494045da90acdfb11585d919
author xiaye <xiaye1@huawei.com> 1729849687 +0800
committer xiaye <xiaye1@huawei.com> 1729849687 +0800

删除空行

Signed-off-by: xiaye <xiaye1@huawei.com>
BP1x tree e4bdfc54e9ad9427dd9e6ba9ce82c1ded800f8b7
parent e3cddc329d403a2710a48232981bccaffae6498c
author xiaye <xiaye1@huawei.com> 1729849043 +0800
committer xiaye <xiaye1@huawei.com> 1729849043 +0800

调整格式

Signed-off-by: xiaye <xiaye1@huawei.com>
GRxTtree efc4bf9d0dc613e41d14c5f0712ed14fe524eb6b
parent 0bb56b6a44354c1758d1c1cb2d097b3b894e5e8a
parent f279a5ba8c2fbf695d4545938e49b5488fff3a70
author openharmony_ci <120357966@qq.com> 1729846355 +0000
committer Gitee <noreply@gitee.com> 1729846355 +0000

!1580 新增ContentForm UDS
Merge pull request !1580 from JUN/feature-contentForm-1021hx?tree 97968899e884be022a0d9e4b9f978ef807d79c55
parent 0bb56b6a44354c1758d1c1cb2d097b3b894e5e8a
author zyx0121 <zhangyingxiang2@huawei.com> 1729837158 +0800
committer zyx0121 <zhangyingxiang2@huawei.com> 1729837158 +0800

修改属性字符串序列化接口的注释

Signed-off-by: zyx0121 <zhangyingxiang2@huawei.com>
%sx2tree 9aa2b9d3941ff051bf9eaeb858ef5ef6d33edcbe
parent 2275312fe6e91aa35acc5f8201d296a99f559188
author xiaye <xiaye1@huawei.com> 1729810492 +0800
committer xiaye <xiaye1@huawei.com> 1729810492 +0800

添加interface_sdk_c getLastJavascriptProxyCallingFrameUrl接口

Signed-off-by: xiaye <xiaye1@huawei.com>
iTg2xTtree cc6ef34efb36ee4323fe9b3802caed6f2b51a10d
parent 2275312fe6e91aa35acc5f8201d296a99f559188
parent cd2ccdda9621e342bf5e6d0579bca2d66a9b0b61
author openharmony_ci <120357966@qq.com> 1729774634 +0000
committer Gitee <noreply@gitee.com> 1729774634 +0000

!1575 滚动类组件CAPI支持FadingEdge
Merge pull request !1575 from honzx/1017fadeRnxZtree f4cf9bb4641c657ff776d1489dc31fbef3f4fb69
parent ab0b3e0fa57f12c3971eb5c4388fe6a5c48e4375
parent 978393092a71b3648cfafeb17028101f7e78e50b
author openharmony_ci <120357966@qq.com> 1729680391 +0000
committer Gitee <noreply@gitee.com> 1729680391 +0000

!1541 修改Preferences Close函数接口描述
Merge pull request !1541 from lxlxlxl/masterrxtree a9c3c9e2937c44cd8d83cb8352db70b601fb840c
parent a4e72be373d0249d3164b2211a73553f8a4fed0e
author 章超123 <zhangchao338@huawei.com> 1729679937 +0000
committer Gitee <noreply@gitee.com> 1729679937 +0000

自动切换镜头

Signed-off-by: 章超123 <zhangchao338@huawei.com>)^ؖxFtree 1ce7e4f3fd07105f198c7461a5b7084c2fe6ce6e
parent 6f1e671f8f404258f2b327f87c263b9d559d2d0f
parent ab0b3e0fa57f12c3971eb5c4388fe6a5c48e4375
author 章超123 <zhangchao338@huawei.com> 1729679871 +0000
committer Gitee <noreply@gitee.com> 1729679871 +0000

自动切换镜头

Signed-off-by: 章超123 <zhangchao338@huawei.com>tlxgtree b01c377a9cbf3d043d1f8d7607ee8de1ad13e619
parent 1dec5d016fcd4abdbdcd0149a121889bb029ad24
parent a72088496ac5eb1416db91a35ae912c8c2721c1c
author openharmony_ci <120357966@qq.com> 1729679400 +0000
committer Gitee <noreply@gitee.com> 1729679400 +0000

!1546 增加折叠屏镜头统一上报NDK需求接口
Merge pull request !1546 from 章超123/master1012~JxNtree dead6137cca9b5321b6c413f9ded37564b0b38b8
parent 53e03dadf45319a7717c53e95a450ad63513d065
parent ef58b9267ac935d828edb7fe4b7d6f7b85b3de61
author openharmony_ci <120357966@qq.com> 1729673097 +0000
committer Gitee <noreply@gitee.com> 1729673097 +0000

!1535 增加自定义属性的备注
Merge pull request !1535 from 邹林肯/cp31qʚxjtree de1f96f30cf2244b8b45f9969e557c5d7124f536
parent 53e03dadf45319a7717c53e95a450ad63513d065
author lusunqi <lusunqi@huawei.com> 1723556700 +0800
committer lusunqi <lusunqi@huawei.com> 1729671167 +0000

cherry pick 5f81cf1 from https://gitee.com/lusunqi/interface_sdk_c/pulls/1183
image_effect ndk接口排查整改

Signed-off-by: lusunqi <lusunqi@huawei.com>
{Tx3tree 190a537654ca38237f8dbe5e308383660e8cf209
parent b3f630b46b3f2c58ff7271cfdfb77616ee87ebbc
author xxb-wzy <xuxiaobo5@huawei.com> 1729671063 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1729671063 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: I2e337ec5699505cbb0121da95b62f38a7238f959
]8xXtree e4416b3ff93a249e4d15872acb7a30220d822f23
parent 3b16c06d25d662bf1422067e309d33f5b7a9d3e0
parent 8fe68a49cfe186f92880e8151be013c811a6beb1
author openharmony_ci <120357966@qq.com> 1729579767 +0000
committer Gitee <noreply@gitee.com> 1729579767 +0000

!1558 修改参数与注释描述不一致
Merge pull request !1558 from changleipeng/1014^zsx?tree 0999c2fa25284a0859276d0b83bbe37531b81ef0
parent fd52c815e14e609eab1962f6878d59217af53be2
author zhangchao <zhangchao338@huawei.com> 1728715437 +0800
committer zhangchao <zhangchao338@huawei.com> 1729566565 +0800

增加折叠屏镜头统一上报NDK需求接口

Signed-off-by: zhangchao <zhangchao338@huawei.com>
ތsLxtree b817764c494542daa9e84b6b7961215cf2002b22
parent ed415dab8cfe651596c51349f3f9026b26be6fc5
author lizhuojun <lizhuojun3@huawei.com> 1729499091 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1729561543 +0800

add ContentForm UDS

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
Yx3tree f18507663adae4a41d5acd297d20a48e47051e72
parent f6eb1a2785e81b78082ebee490d25959770dfbf0
author xxb-wzy <xuxiaobo5@huawei.com> 1729511942 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1729511942 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: I7ae1c0e354949db4a00d9c83b5bb910e3122b68d
]mx3tree 4c939d0c62f4a1a23e028310ed8830c483f5fc2d
parent 3f4f307b50d16857f5bca84830eed067b06ec5e3
author xxb-wzy <xuxiaobo5@huawei.com> 1729510351 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1729510351 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: Ib3e74dcad38979a2c1aa14e3de68e99cb0e90d07
%]xNtree ec67aa10c5d06c81cc0aadea2c6f7f83ac9d7d50
parent ed415dab8cfe651596c51349f3f9026b26be6fc5
parent 2aa575072d0fb7093b0f9d072614c750b7bdceb7
author openharmony_ci <120357966@qq.com> 1729502301 +0000
committer Gitee <noreply@gitee.com> 1729502301 +0000

!1563 修改locationKit so说明
Merge pull request !1563 from liuxinbing/masterjxtree 42f450e35c2529653a415d0bc5f6db8560ef8aff
parent 9256a8e7de6a9d2684ea2973f2da26be549115d3
author xzcbob <xuzhangchi@huawei.com> 1729483969 +0000
committer Gitee <noreply@gitee.com> 1729483969 +0000

vrr update

Signed-off-by: xzcbob <xuzhangchi@huawei.com>Q;x[tree 60ff8346a6f198f05b04aa24cf3022c5c5c698c4
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author hongzexuan <hongzexuan@huawei.com> 1729135926 +0800
committer hongzexuan <hongzexuan@huawei.com> 1729477289 +0800

scroll capi add fadingEdge

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: Ifd16e5d9eba02305e2eaed84a613c246d68499ae
ܗmx3tree 2e2b051060e0e2d8570260f7828a89461dcbcea0
parent a3ee5ceb2ba990d8c36e9c53f415520cfbe36e92
author xxb-wzy <xuxiaobo5@huawei.com> 1729323674 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1729323674 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: I91b51c7786f5aa8bccfc4936d602caceda547f89
Jn^ix3tree 160be80692d0f14460e9973db89e15293deab20f
parent ed415dab8cfe651596c51349f3f9026b26be6fc5
author xxb-wzy <xuxiaobo5@huawei.com> 1729219456 +0800
committer xxb-wzy <xuxiaobo5@huawei.com> 1729219456 +0800

Signed-off-by: xxb-wzy <xuxiaobo5@huawei.com>
Change-Id: Id49de840b724bca45076d887d0317f282f30314d
 \xCtree 1389cb4ab2c77dd482ee2f9ecf5de894e97cf1e5
parent 8df471e6e39e59aa1f240ff960e74091dc6a6d1b
parent aa7592a795d8638c4bab405b447ae69bd3b93f8f
author openharmony_ci <120357966@qq.com> 1729183811 +0000
committer Gitee <noreply@gitee.com> 1729183811 +0000

!1574 新增OH_VIDEO_NONE
Merge pull request !1574 from 高成/mastero'extree dca019cb5be293fbde668348a3ee3dad40acb3f4
parent a414f2fb500230585d229b5af72be4d8cda70f2a
author zhjs <zhangjingsong7@huawei.com> 1729137313 +0800
committer zhjs <zhangjingsong7@huawei.com> 1729137313 +0800

DTS0000000000000test

Signed-off-by: zhjs <zhangjingsong7@huawei.com>
,Wٚxtree 86fa5bb6251210c3557eab2bb94382ced852958e
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author zhjs <zhangjingsong7@huawei.com> 1729135437 +0800
committer zhjs <zhangjingsong7@huawei.com> 1729135437 +0800

DTS0000000000000test

Signed-off-by: zhjs <zhangjingsong7@huawei.com>
Vםxtree 226ddb55f8f5e97d69c7b35cb88fe240fc715cca
parent 8df471e6e39e59aa1f240ff960e74091dc6a6d1b
author xukuncai123 <401117262@qq.com> 1729131856 +0800
committer xukuncai123 <401117262@qq.com> 1729131856 +0800

move ndk_targets.gni to sdk_c

Signed-off-by: xukuncai123 <401117262@qq.com>
'SxYtree 576be14d7b6b516dc2b18e5df732241cec093ca0
parent ead4a6c9a992f5b96eb55a82435337e98b1bc992
parent 9b5d41fcc27e863425108e9a6dd0ec23786a6887
author openharmony_ci <120357966@qq.com> 1729080670 +0000
committer Gitee <noreply@gitee.com> 1729080670 +0000

!1522 解决同一个函数声明了两次
Merge pull request !1522 from gxjhl/1005redefinetx]tree 9c3d86f90c42036bd61093fc3a321d2bc9ab375e
parent 8c30c1a95cd50de40930ffc0721060357f65639e
parent 4ba83527ab41da0714d7514e87ac16d70e01d70e
author openharmony_ci <120357966@qq.com> 1729072995 +0000
committer Gitee <noreply@gitee.com> 1729072995 +0000

!1559 属性字符串marshall和unmarshallCAPI
Merge pull request !1559 from 张应祥/marshallx&sx=tree 9c3d86f90c42036bd61093fc3a321d2bc9ab375e
parent 8c30c1a95cd50de40930ffc0721060357f65639e
author zyx0121 <zhangyingxiang2@huawei.com> 1729041723 +0800
committer zyx0121 <zhangyingxiang2@huawei.com> 1729041723 +0800

属性字符串序列化和反序列化CAPI

Signed-off-by: zyx0121 <zhangyingxiang2@huawei.com>
Sp xKtree 84af9d804db97ca66064515d37ecbfac8ce34ab1
parent dd387405dc27ec8ee92ecb2ef666299be798cba6
parent 8e52e64e8e747b095f643d13d0011d5e4e93a6a3
author openharmony_ci <120357966@qq.com> 1728997591 +0000
committer Gitee <noreply@gitee.com> 1728997591 +0000

!1533 pts接口描述修正API14
Merge pull request !1533 from 李辉/pts1009YzkxLtree d9a439919eff095b5e8c62f471bb622b1741f386
parent ed8c4b0d2cf2606b30b04ba16a14092611d90227
parent 9b29b6686d62d57b425201a0d0d42c1ae883634d
author openharmony_ci <120357966@qq.com> 1728996068 +0000
committer Gitee <noreply@gitee.com> 1728996068 +0000

!1511 fix callback interface
Merge pull request !1511 from changleipeng/fix_cbcxStree 5743d88ae498950cf60502898eb4793395f686a7
parent 23df7c929eb86e18c3f68f35114459e66e5e265b
parent 61dbb9dd80f596540c9bafd8f67d26958ff94221
author openharmony_ci <120357966@qq.com> 1728960935 +0000
committer Gitee <noreply@gitee.com> 1728960935 +0000

!1514 属性字符串转htmlCAPI
Merge pull request !1514 from 张应祥/styledStringogxtree 5585009869c8e57fcbe140d62079cd10806a1919
parent 23df7c929eb86e18c3f68f35114459e66e5e265b
author 李文龙 <liwenlong22@huawei.com> 1728958107 +0800
committer 李文龙 <liwenlong22@huawei.com> 1728959878 +0800

bugfix:library

Signed-off-by: 李文龙 <liwenlong22@huawei.com>
_xItree 53e80a2d79ee60e7a41ab779b8e1423b3b33cb46
parent 3e38b5efae6676305bcf0041c6ebfd58a8f1c5c0
author zyx0121 <zhangyingxiang2@huawei.com> 1727600587 +0800
committer zyx0121 <zhangyingxiang2@huawei.com> 1728916398 +0800

属性字符串与html的序列化和反序列化接口

Signed-off-by: zyx0121 <zhangyingxiang2@huawei.com>
cz6x)tree 8e901f762e7f9634546a55989c6dd39369bc3bc2
parent 2c8bff3ac7cbf121d747211e0dbbf0acef6cbf91
author zhangchao <zhangchao338@huawei.com> 1728716176 +0800
committer zhangchao <zhangchao338@huawei.com> 1728892891 +0800

auto switch device NDK API

Signed-off-by: zhangchao <zhangchao338@huawei.com>
]2x2tree 3a5541a5df58ce3ae3921d5f5d42c50f2fb89f87
parent 23df7c929eb86e18c3f68f35114459e66e5e265b
author changleipeng <changleipeng4@huawei.com> 1728887498 +0800
committer changleipeng <changleipeng4@huawei.com> 1728887498 +0800

Correct spelling errors

Signed-off-by: changleipeng <changleipeng4@huawei.com>
bxxPtree 8f8f855f39c60315bf9377d78787d02bf150f412
parent db455d0382c1d6dcded3c889908046d98c849f37
parent 2fccc1f67dfd9c24b583cf8da4ef3268e2bdbde1
author openharmony_ci <120357966@qq.com> 1728722992 +0000
committer Gitee <noreply@gitee.com> 1728722992 +0000

!1336 NDK OHOS接口命名问题修改
Merge pull request !1336 from Aurora/mastermxFtree f2212167677935602180b9e2e6a9044869ea7f84
parent dc0e245096f5bf39cf9b295dc912cc9f6ee33501
parent 97b7fa4e8ca33686dea9ddbc909ce72605df573a
author openharmony_ci <120357966@qq.com> 1728719682 +0000
committer Gitee <noreply@gitee.com> 1728719682 +0000

!1532 添加quality level
Merge pull request !1532 from zhjs/master_1008c{x`tree 3a3adbd4380a887db79a308304d06025145930c8
parent c6f47e34a649174d2482444bc7e9f1fa150ce492
parent 63df08ac88870f9ef290ae685a17720784c3e3ff
author openharmony_ci <120357966@qq.com> 1728717805 +0000
committer Gitee <noreply@gitee.com> 1728717805 +0000

!1542 【CES】修改接口说明
Merge pull request !1542 from wangsen1994/developer_ces_ndk_1011&q-x$tree 502dfad6628c582a1c0782e46f303f9cb78980f2
parent c6f47e34a649174d2482444bc7e9f1fa150ce492
author lxlxlxl <liuxiaolong77@huawei.com> 1728635902 +0000
committer Gitee <noreply@gitee.com> 1728635902 +0000

modify Close interface description

Signed-off-by: lxlxlxl <liuxiaolong77@huawei.com>\x,tree 3a3adbd4380a887db79a308304d06025145930c8
parent c6f47e34a649174d2482444bc7e9f1fa150ce492
author wangsen1994 <wangsen51@huawei.com> 1728635829 +0800
committer wangsen1994 <wangsen51@huawei.com> 1728635829 +0800

修复ces C接口的接口说明

Signed-off-by: wangsen1994 <wangsen51@huawei.com>
3dixgtree a831e7251ea1260ed3624ce005b2ab0ae77a7a30
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
parent acdec68e2dd99b6fa398a55c7a98d5b5e82236be
author openharmony_ci <120357966@qq.com> 1728630282 +0000
committer Gitee <noreply@gitee.com> 1728630282 +0000

!1477 ScreenCapture新增设置录屏最大帧率的接口
Merge pull request !1477 from zhangq444/master2|x'tree 0c72cb50c6f9a9024e38e225e0d80e29c784590d
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author zoulinken <zoulinken1@huawei.com> 1728464036 +0800
committer zoulinken <zoulinken1@huawei.com> 1728464385 +0800

增加自定义属性的备注

Signed-off-by: zoulinken <zoulinken1@huawei.com>
vhOxtree 26a9d2c6bbe4c43e094f28d8892505181c89d6f0
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author lihui <lihui359@huawei.com> 1728447432 +0800
committer lihui <lihui359@huawei.com> 1728447432 +0800

pts api since api 14 fix

Signed-off-by: lihui <lihui359@huawei.com>
R x tree d0fbc9b3048ef0a31faa8c921c44076c3d98f4d8
parent 293ec99502b93ae94e8ef76745473af8bc5b8edd
author zhjs <zhangjingsong7@huawei.com> 1728377616 +0800
committer zhjs <zhangjingsong7@huawei.com> 1728377616 +0800

add variable quality level

Signed-off-by: zhjs <zhangjingsong7@huawei.com>
{ \ExVtree 06ead617394230d51825cdabfe71ad42f361ecda
parent 2ceedd38a35e6135575416d0ae1c5a396c82398a
parent 633596b086fcf16ee94d397bcdd4696705fd602c
author openharmony_ci <120357966@qq.com> 1728376712 +0000
committer Gitee <noreply@gitee.com> 1728376712 +0000

!1504 滚动类组件capi支持fling接口
Merge pull request !1504 from honzx/0927fling|px[tree a2fb46458a29e6eb9fa298f8caa3b2b039c52820
parent 7c1371d56792e7d0581f50f2aa8e22189e3ae0dd
author hongzexuan <hongzexuan@huawei.com> 1727416400 +0800
committer hongzexuan <hongzexuan@huawei.com> 1728370367 +0800

scroll capi supports fling

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: I943e83f0a0865935522320952008d4d21aa2013a
"lxxPtree 10c2490a583ea86c159a33880b50e91845074fca
parent ce745148a84b1f8a4ba53db0229f0bdb1ba39ac5
author gxjhl <fangyuhao1@huawei.com> 1728118587 +0800
committer gxjhl <fangyuhao1@huawei.com> 1728118587 +0800

同一个函数声明了两次

Signed-off-by: gxjhl <fangyuhao1@huawei.com>
Change-Id: If7059b9ca7005d206ebd3032b038d7e1e2ceb4f6
ͱqx_tree 2cb01911870587891fd30700d6abbf72768643d6
parent 0aba6eb477f76d7473ea5a21500dc7e27ee26a6d
parent b1f3b3fef8bc3ada33d4d5b19c29b658f9a8fad8
author openharmony_ci <120357966@qq.com> 1727683415 +0000
committer Gitee <noreply@gitee.com> 1727683415 +0000

!1484 修改入参名称，保持多入口一致
Merge pull request !1484 from 邹林肯/customP1A|~xTtree 497fbaad9e8543f7a837fa9024ed63cab4f417a2
parent 51552c31f803ccc994d2fd77cf68a7f6e22b83bb
parent 081a37e6911982a2366401732401fc1e5a2fe8cd
author openharmony_ci <120357966@qq.com> 1727682789 +0000
committer Gitee <noreply@gitee.com> 1727682789 +0000

!1506 ans新增Capi
Merge pull request !1506 from wangsen1994/developer_ans_capit_0928hx3tree ee5ddc230664e0e023ceb2aaaff4144179f75a65
parent 7c1371d56792e7d0581f50f2aa8e22189e3ae0dd
author zoulinken <zoulinken1@huawei.com> 1727245717 +0800
committer zoulinken <zoulinken1@huawei.com> 1727662088 +0800

修改入参名称，保持多入口一致

Signed-off-by: zoulinken <zoulinken1@huawei.com>
aqx#tree cd94eee4731716814c45a99b235d936361d94e26
parent a0c9a3612e275abdfc6a30dee20b729eba55e863
author wangsen1994 <wangsen51@huawei.com> 1727609470 +0800
committer wangsen1994 <wangsen51@huawei.com> 1727609655 +0800

修改接口版本为13

Signed-off-by: wangsen1994 <wangsen51@huawei.com>
B`+xTtree a769481bc5efb5f2fd899ff527d185416affd85d
parent 3e38b5efae6676305bcf0041c6ebfd58a8f1c5c0
parent d7f7065f4159fb3f6a02a242d31b1e6fc295fd69
author openharmony_ci <120357966@qq.com> 1727600024 +0000
committer Gitee <noreply@gitee.com> 1727600024 +0000

!1505 修改SDK注释信息里的拼写错误
Merge pull request !1505 from AOL/masterZsx1tree 307310965cd16c7511c5222a468b972840597e05
parent 3e38b5efae6676305bcf0041c6ebfd58a8f1c5c0
author changleipeng <changleipeng4@huawei.com> 1727580251 +0800
committer changleipeng <changleipeng4@huawei.com> 1727598756 +0800

fix callback interface

Signed-off-by: changleipeng <changleipeng4@huawei.com>
A`ǕxEtree 1979110dacf9b0dcfbe22f3ef80a52d97981bd76
parent 218e2a16da322065504f36473c0a7522abdef160
parent f7f76cae4909227ecc73a3cc8a8bd681b14d2ebf
author openharmony_ci <120357966@qq.com> 1727597130 +0000
committer Gitee <noreply@gitee.com> 1727597130 +0000

!1513 add NDK interface
Merge pull request !1513 from changleipeng/0905v`ӔxDtree 7876d087ab6ca6fdc7ce18b1d5844ffec70bb091
parent 738f1c1f0410d443ab0cd737ab0fb70e5c6384f6
parent 7aae7432b9aa1ee97ab6895d083d1dc804bd3afc
author openharmony_ci <120357966@qq.com> 1727591625 +0000
committer Gitee <noreply@gitee.com> 1727591625 +0000

!1501 api13 add enableMirror
Merge pull request !1501 from qano/master(ebxEtree 78dc5feb3628828287292e02f24e5d4c23ad39a3
parent 744a7b1b393e3914dcfaba5dbc468bf6a268577d
author changleipeng <changleipeng4@huawei.com> 1726649457 +0800
committer changleipeng <changleipeng4@huawei.com> 1727581435 +0800

restore OH_Drawing_FontDescriptor position

Signed-off-by: changleipeng <changleipeng4@huawei.com>
ixtree d1cbbb8a20a971d0b02f23098f79ea2d2f9b8629
parent 738f1c1f0410d443ab0cd737ab0fb70e5c6384f6
author wangsen1994 <wangsen51@huawei.com> 1727486786 +0800
committer wangsen1994 <wangsen51@huawei.com> 1727507635 +0800

ans新增capi

Signed-off-by: wangsen1994 <wangsen51@huawei.com>
XxLtree 8d84b1bde6f2335f23cde2424a71285afe529b38
parent 7c7f6d8aea151e621a7e385520ffd03db6708587
parent 8240209cee4eb1ce61629eb92546c209d2311ae1
author oh_ci <maguangsheng1@huawei.com> 1727442130 +0000
committer Gitee <noreply@gitee.com> 1727442130 +0000

!1478 [新需求]: 新增NDK接口
Merge pull request !1478 from gaosong/masterk\x,tree 8d84b1bde6f2335f23cde2424a71285afe529b38
parent f3e5624629834f8b21446246c3102e9bdda2d187
parent 7c7f6d8aea151e621a7e385520ffd03db6708587
author gaosong <gaosong29@huawei.com> 1727403763 +0800
committer gaosong <gaosong29@huawei.com> 1727424506 +0800

Merge gitee.com:openharmony/interface_sdk_c
[Rx tree 7fde42d4e0cce5680be091c9edd67e1bcbcda272
parent 7c7f6d8aea151e621a7e385520ffd03db6708587
author AOL <lixin113@huawei.com> 1727421144 +0000
committer Gitee <noreply@gitee.com> 1727421144 +0000

fix typo

Signed-off-by: AOL <lixin113@huawei.com>98Jxtree 6d4e0ce07ea03ab85857349d1c2657d8d5a1dec7
parent 7c7f6d8aea151e621a7e385520ffd03db6708587
author qano <nimaosen1@huawei.com> 1727405874 +0800
committer qano <nimaosen1@huawei.com> 1727418280 +0800

api13 add enableMirror

Signed-off-by: qano <nimaosen1@huawei.com>
Rx]tree 14b1e7c4d5b3b81585dd8f59dd612417249150d3
parent ce745148a84b1f8a4ba53db0229f0bdb1ba39ac5
parent ec2fd6b585023067c11e2a688d08795b27b5bcaf
author openharmony_ci <120357966@qq.com> 1727349000 +0000
committer Gitee <noreply@gitee.com> 1727349000 +0000

!1494 对native_image  sdk注释补充说明
Merge pull request !1494 from 马靖涛/20240926_1ݑrx`tree 14b1e7c4d5b3b81585dd8f59dd612417249150d3
parent ce745148a84b1f8a4ba53db0229f0bdb1ba39ac5
author m00472246 <majingtao1@huawei.com> 1727339246 +0800
committer m00472246 <majingtao1@huawei.com> 1727339246 +0800

对native_image  sdk注释补充说明 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
r{x,tree a16dd2bcd8482aca24f488be23ea3301821c22c6
parent 59c1f6a7a89d790bf3aba23deed5e232a8ef7458
parent ce745148a84b1f8a4ba53db0229f0bdb1ba39ac5
author gaosong <gaosong29@huawei.com> 1727255076 +0800
committer gaosong <gaosong29@huawei.com> 1727318433 +0800

Merge gitee.com:openharmony/interface_sdk_c
>]ixTtree 435e566a1e09b42f35dbd0c413adf75d34408017
parent 7c1371d56792e7d0581f50f2aa8e22189e3ae0dd
parent 21b8db6ccd416d5e33463a6cde734bb95bb940ff
author openharmony_ci <120357966@qq.com> 1727246044 +0000
committer Gitee <noreply@gitee.com> 1727246044 +0000

!1476 修改既有文件@file问题
Merge pull request !1476 from caochuan/interface_cCox,tree 56db5f8ea234ff46e5997181c3c2947150f4720d
parent 72c3f80a03d762c17ecd6c24d99f07ce0ecf7606
parent 7c1371d56792e7d0581f50f2aa8e22189e3ae0dd
author gaosong <gaosong29@huawei.com> 1727233726 +0800
committer gaosong <gaosong29@huawei.com> 1727234268 +0800

Merge gitee.com:openharmony/interface_sdk_c
[xtree 47f19bf6420920a89cf70f8a4d55ea9b78b6dc40
parent 14579671808ecd86bd4b712a860771a3159a8f34
author gaosong <gaosong29@huawei.com> 1727096304 +0800
committer gaosong <gaosong29@huawei.com> 1727233716 +0800

ndk

Signed-off-by: gaosong <gaosong29@huawei.com>
NxHtree 060fe94fea6424f94fb55bc579484361dbc5f8f3
parent deab83629655818299c337372822746fbc33998e
parent 2b27409b6b6e4890f8561d272cd8475ea6473ffc
author oh_ci <maguangsheng1@huawei.com> 1727181060 +0000
committer Gitee <noreply@gitee.com> 1727181060 +0000

!1465 新增蓝牙服务capi
Merge pull request !1465 from linzlinz/hl_0920.h,xStree 85929d2e0ca924e294d746b16a6612f51e9fdecf
parent f1c04d6d8f8fe0aec8f7587c24708d82e3e1f0da
parent 78c1dfc31a4e673ed0f730a8aee3fbf042fa83bc
author openharmony_ci <120357966@qq.com> 1727173304 +0000
committer Gitee <noreply@gitee.com> 1727173304 +0000

!1430 完善接口返回的错误码
Merge pull request !1430 from ccfriend/updateapi(r5x tree 61f033ceed67344125bc4d704345b1ba44513753
parent 02c9d01bfe506d187236ddecac6d1d91895b2375
author ccfriend <chengcheng14@huawei.com> 1726059927 +0800
committer ccfriend <chengcheng14@huawei.com> 1727161797 +0800

add more error codes

Signed-off-by: ccfriend <chengcheng14@huawei.com>
wYxUtree d7fbbfabc6272fbaaa3c3b3bff91714261b15379
parent 14579671808ecd86bd4b712a860771a3159a8f34
parent e809fb1ffc602b9a3404fd95212b126391c37500
author openharmony_ci <120357966@qq.com> 1727150823 +0000
committer Gitee <noreply@gitee.com> 1727150823 +0000

!1445 C-API 自定义属性需求开发
Merge pull request !1445 from 邹林肯/customPS7qrxAtree 74b308566ee6d81a6c38e67e9aede927a58ceda2
parent 14579671808ecd86bd4b712a860771a3159a8f34
author SubmarinePhantom <liuxiyao223@huawei.com> 1717553202 +0800
committer SubmarinePhantom <liuxiyao223@huawei.com> 1727142967 +0800

NDK OHOS接口命名问题修改

Signed-off-by: SubmarinePhantom <liuxiyao223@huawei.com>
6!mxtree 6a6473a5993e15bd9d5d20d312950f2a9a580971
parent fd52c815e14e609eab1962f6878d59217af53be2
author lee <lilong32@huawei.com> 1726824652 +0800
committer lee <lilong32@huawei.com> 1727088711 +0800

add bluetooth capi

Signed-off-by: lee <lilong32@huawei.com>
5Mxjtree 9765343a2e761a0e372365562e0b82a3839f6b54
parent fd52c815e14e609eab1962f6878d59217af53be2
parent e73aed597977885ce40d95074443989d45757bbe
author openharmony_ci <120357966@qq.com> 1727082233 +0000
committer Gitee <noreply@gitee.com> 1727082233 +0000

!1401 新增RDB 新版本开库接口、多事务系列NDK接口
Merge pull request !1401 from Wan Yi/master"c}x*tree 0ea6d364fed58ee865e90e7983583faa52b750b2
parent 18f64a0a0d0f3ce45ca023d5f2dfb0cbbafc0f7c
author zoulinken <zoulinken1@huawei.com> 1726298927 +0800
committer zoulinken <zoulinken1@huawei.com> 1727079588 +0800

C-API 自定义属性需求开发

Signed-off-by: zoulinken <zoulinken1@huawei.com>
khқxKtree 3956e64679335ad72338e9371883d4f29ddf2724
parent 5be025813e5fe576d31cc21713639d125f9e4437
author wy524668781@icloud.com <wy524668781@icloud.com> 1725517780 +0800
committer wy524668781@icloud.com <wy524668781@icloud.com> 1727072675 +0800

add vector field for rdb

Signed-off-by: wy524668781@icloud.com <wy524668781@icloud.com>
}_xStree e73827f8aab5824aed2f0ad22a602b3431823709
parent fd52c815e14e609eab1962f6878d59217af53be2
author zhangqiang <zhangqiang342@huawei.com> 1727062758 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1727062758 +0800

20240923  ScreenCapture新增设置录屏最大帧率的接口

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
yxxtree 52936f90df5434bbbea01485bf5bf1a3a1933431
parent fd52c815e14e609eab1962f6878d59217af53be2
author caochuan <caochuan@huawei.com> 1727062227 +0800
committer caochuan <caochuan@huawei.com> 1727062227 +0800

modify @file problem

Signed-off-by: caochuan <caochuan@huawei.com>
GVxPtree 0e2fe7be25c595f408b63af5fb11bce7fb29497f
parent 26832d3e466b1f674e5eab5888ab546166008272
parent 65ab9e5e41baaae182b3a9d79534a5df7818d48a
author openharmony_ci <120357966@qq.com> 1726816551 +0000
committer Gitee <noreply@gitee.com> 1726816551 +0000

!1460 native window枚举注释补充
Merge pull request !1460 from 李辉/PTS0919nlߟxOtree 8876ecc2ee83aa484620f568f8f36c7996a2d9b5
parent 5b61f0f67a3933e221f0b8d169cee51ec86dcf44
parent c3acaa86b21fd67685d30639786948f70986fe97
author openharmony_ci <120357966@qq.com> 1726743652 +0000
committer Gitee <noreply@gitee.com> 1726743652 +0000

!991 新增麦克风回调接口
Merge pull request !991 from ancimoon/micblockedunxMtree 8d16676156894579ed4b5e34bc899da1a6db2d08
parent 8f5e2b82459fee2d21dafd97d22314b5f8be139a
parent 2c8bff3ac7cbf121d747211e0dbbf0acef6cbf91
author openharmony_ci <120357966@qq.com> 1726742526 +0000
committer Gitee <noreply@gitee.com> 1726742526 +0000

!1462 添加size_t头文件
Merge pull request !1462 from wangmengyao111/masterkSxOtree ff541902a2d20030a273b15c8c08adce28e3d096
parent d7dd4808465396b230b998b50922f1e6f462fedf
parent 0b531e0c68811e483ecc5119a2fdcbdf8ef0f182
author openharmony_ci <120357966@qq.com> 1726734050 +0000
committer Gitee <noreply@gitee.com> 1726734050 +0000

!1447 vpe add colorspaceName
Merge pull request !1447 from 刘尚/vpe_master_0827,ffx'tree eec737fae310b2e3dc2695bf8fa504fa7931e72a
parent d7dd4808465396b230b998b50922f1e6f462fedf
author xuzhangchi <xuzhangchi@huawei.com> 1726728811 +0800
committer xuzhangchi <xuzhangchi@huawei.com> 1726728811 +0800

可变帧率增加枚举值

Signed-off-by: xuzhangchi <xuzhangchi@huawei.com>
}h+xTtree a01b8806a9cf5c9031e1abcf6f7c428027fc520d
parent d7dd4808465396b230b998b50922f1e6f462fedf
author wangmengyao111 <wangmengyao17@huawei.com> 1726720505 +0800
committer wangmengyao111 <wangmengyao17@huawei.com> 1726720543 +0800

TicketNo:DTS2024091316370
Description:添加size_t头文件

Team:PDU_PTL
Feature or Bugfix:Bugfix
Binary Source:No
PrivateCode(Yes/No):No

Signed-off-by: wangmengyao111 <wangmengyao17@huawei.com>
_эx	tree a2d79dbf1acf05d60a3e3859b91d9a5e47da308f
parent d7dd4808465396b230b998b50922f1e6f462fedf
author lihui <lihui359@huawei.com> 1726715022 +0800
committer lihui <lihui359@huawei.com> 1726715022 +0800

补充注释说明

Signed-off-by: lihui <lihui359@huawei.com>
uRVxhtree 6f5ce9e680c8a5c9c0e4ccb1bba2ea407352a697
parent e4d316697560cc8725d9184ff823ce1acac71f97
parent 05321da70dd703fa6fe001723f675cbfc01f2943
author openharmony_ci <120357966@qq.com> 1726672429 +0000
committer Gitee <noreply@gitee.com> 1726672429 +0000

!1442 新增读取 ARGB 格式像素的接口
Merge pull request !1442 from 陈乔异/cqy/read-argb-pixelsR{xPtree 1335422538844475d9eaa48a8f263c625186bb77
parent 6f44aceebe08aa442c26bbc936bda2a7cee720eb
parent 00c5029bb8bf0f504480122742cd7fd4a153528f
author openharmony_ci <120357966@qq.com> 1726652069 +0000
committer Gitee <noreply@gitee.com> 1726652069 +0000

!1431 新增native window操作枚举
Merge pull request !1431 from 李辉/PTS0911l~xdtree 981f29efe72797a8d29551e0594c7388c2eb9e0d
parent 5be025813e5fe576d31cc21713639d125f9e4437
author changleipeng <changleipeng4@huawei.com> 1722220206 +0800
committer changleipeng <changleipeng4@huawei.com> 1726648853 +0800

update NDK interface

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Change-Id: I2f4c65d8b45afdfdc037822c435e8d7280562a6e
Uncxtree dbc880ba50d77f82abb900c4d4ed9a2cb20f05ef
parent b6ac96bc263865631e94a3e3b8fb1110b0061272
author lihui <lihui359@huawei.com> 1726047298 +0800
committer lihui <lihui359@huawei.com> 1726645082 +0800

新增native window接口

Signed-off-by: lihui <lihui359@huawei.com>
WחxGtree 8c875eb542724b9a8c19dbfae0aa167bb93d9901
parent 721fa5f009c189cf8e272a86962f81e94dc27937
parent 8a7bf3b8e00fb976775955daa17f4d33efd023ee
author openharmony_ci <120357966@qq.com> 1726395429 +0000
committer Gitee <noreply@gitee.com> 1726395429 +0000

!1449 旋转ndkjs补充
Merge pull request !1449 from zhaoyuanchun/masterUg,x&tree 8c875eb542724b9a8c19dbfae0aa167bb93d9901
parent 721fa5f009c189cf8e272a86962f81e94dc27937
author z30049243 <zhaoyuanchun@huawei.com> 1726387483 +0800
committer z30049243 <zhaoyuanchun@huawei.com> 1726387483 +0800

旋转ndk接口js补充

Signed-off-by: z30049243 <zhaoyuanchun@huawei.com>
_sxatree 282ffe370f96acf7ad049b04ed5102bf741c6895
parent 5939d12d50ca005d21397bdcddbb9be3374224bb
parent 5f815176b940c958d305cc6c1e40648792b39705
author openharmony_ci <120357966@qq.com> 1726321312 +0000
committer Gitee <noreply@gitee.com> 1726321312 +0000

!1446 【CAPI】imageSpan新增baseline接口
Merge pull request !1446 from wjn/image_span_baselineqxtree 28700e841e0f34177ebc2142166b9d09bcd5ae6d
parent 18c21c254cf26c6058a462775020663599e2dd23
author liushang <liushang2@huawei.com> 1726316533 +0800
committer liushang <liushang2@huawei.com> 1726316533 +0800

colorspace name

Signed-off-by: liushang <liushang2@huawei.com>
Tx-tree 282ffe370f96acf7ad049b04ed5102bf741c6895
parent 5939d12d50ca005d21397bdcddbb9be3374224bb
author wanjining <wanjining@huawei.com> 1726306024 +0800
committer wanjining <wanjining@huawei.com> 1726306634 +0800

【CAPI】imageSpan新增baseline接口

Signed-off-by: wanjining <wanjining@huawei.com>
`fbxMtree 7c9453a503849220f7ff32cd4db392bf94733f68
parent 94d97018d62a98d4f6aa15041ce7ea7519552848
parent 7c8f30f759b1cba8f497424dbfa434890287300b
author openharmony_ci <120357966@qq.com> 1726297058 +0000
committer Gitee <noreply@gitee.com> 1726297058 +0000

!1399 添加加到build仓的内容
Merge pull request !1399 from hhj/add_build*k.xKtree 1021f06da89b96c0ed063da31ed273e2eda9960f
parent 18f64a0a0d0f3ce45ca023d5f2dfb0cbbafc0f7c
parent bbb37a2bb60f440febdd0734d2175e8db262e58a
author openharmony_ci <120357966@qq.com> 1726295358 +0000
committer Gitee <noreply@gitee.com> 1726295358 +0000

!1439 增加内存维测接口
Merge pull request !1439 from 姚朱鹏/master&px@tree b3fc014cb8c30ff4f20850e94ae85af9f547c951
parent 35e406802fe58691a67d1e26459d9cf00cc4b4f7
parent 3c3c6a9e8c6397b74a7e26364573ffa607447743
author openharmony_ci <120357966@qq.com> 1726281832 +0000
committer Gitee <noreply@gitee.com> 1726281832 +0000

!1438 格式修正
Merge pull request !1438 from lishihao/mymaster+cxztree 4dba1098100d96505348ea3a59b87bbb19b7fa98
parent 352b07a1ef7dbacad911955d34e1ba83388cb4dc
parent 35e406802fe58691a67d1e26459d9cf00cc4b4f7
author 姚朱鹏 <yaozhupeng@huawei.com> 1726236231 +0000
committer Gitee <noreply@gitee.com> 1726236231 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 姚朱鹏 <yaozhupeng@huawei.com>~x\tree a338a472ab0a8816d5e81d6c91a692d326b7427c
parent 5251cea0d561b3117320574d6291983f25ee31fc
parent 1874326284f760da9882130cffdaae9dba348198
author openharmony_ci <120357966@qq.com> 1726231030 +0000
committer Gitee <noreply@gitee.com> 1726231030 +0000

!1392 pixelmap native层支持操作colorspace
Merge pull request !1392 from shenshiyi2/masterkdnKxStree 5e7d5d8d516d8a86375856f4aec1f23d17ca2d6d
parent dabb9bf5f7b14a8f6d99500eff7317a7310ee5a1
parent 18c21c254cf26c6058a462775020663599e2dd23
author openharmony_ci <120357966@qq.com> 1726229339 +0000
committer Gitee <noreply@gitee.com> 1726229339 +0000

!1343 VPE图像NDK修改为API13
Merge pull request !1343 from 刘尚/vpe_master_08271lxtree af5ebdfca1bce9c39016dff763f38a001d7e8269
parent bb32e0991e2725e27551c6ac5a82a7baba9971e2
author 陈乔异 <chenqiaoyi2@huawei.com> 1726222429 +0800
committer 陈乔异 <chenqiaoyi2@huawei.com> 1726222429 +0800

修改接口定义

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>
\i;xtree f3c8ce071ee00a30e2f9088dd8c8b71350d74adf
parent dabb9bf5f7b14a8f6d99500eff7317a7310ee5a1
author 陈乔异 <chenqiaoyi2@huawei.com> 1726221936 +0800
committer 陈乔异 <chenqiaoyi2@huawei.com> 1726221936 +0800

增加新接口

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>
`<fx"tree f1a09a982d2ff50e53561a92e554dc6f5b9746dd
parent dabb9bf5f7b14a8f6d99500eff7317a7310ee5a1
author yaozhupeng <yaozhupeng@huawei.com> 1726211526 +0800
committer yaozhupeng <yaozhupeng@huawei.com> 1726219833 +0800

add pixelmap interface

Signed-off-by: yaozhupeng <yaozhupeng@huawei.com>
^x[tree bad6cfd3e57ae78d9430fdae03875d86fd3c8b70
parent 05b8f9fb4c5a47d028fca4e13ec8c09eeca7b600
parent d4e0e66c5f0dbd065ac44adf64e8e309722e6409
author openharmony_ci <120357966@qq.com> 1726203507 +0000
committer Gitee <noreply@gitee.com> 1726203507 +0000

!1433 不再对NDK编译后的特定目录过滤
Merge pull request !1433 from zhangwu/masterxƛx;tree ee42fbae3efc6d78120d213813710a7751680d1f
parent 5be025813e5fe576d31cc21713639d125f9e4437
author lsh <450972247@qq.com> 1726202521 +0800
committer lsh <450972247@qq.com> 1726202521 +0800

lsh native_node.h 格式修改

Signed-off-by: lsh <450972247@qq.com>
Change-Id: I0689a2297ad1f95d60813e7e669ec1c771d6fee1
\xFtree 956bc8f506b1ec6c38b901a11fab8142cb67eb8e
parent 197d36bd698c6d3f5e1cf3d6c510e49ef5bbc810
parent 399efddd1720a389f0e57bc90977fc825c814197
author openharmony_ci <120357966@qq.com> 1726145650 +0000
committer Gitee <noreply@gitee.com> 1726145650 +0000

!1158 feat:add hotkey interface
Merge pull request !1158 from HYH/mastervzb*xNtree 57b3b0d5cfa4b60995acee18e898f670f888f448
parent 43d89c4f961e0a347816a506bd9d7eeedd43c8d1
parent f5868316e701a826e237003312929257234a9558
author openharmony_ci <120357966@qq.com> 1726145328 +0000
committer Gitee <noreply@gitee.com> 1726145328 +0000

!1432 Preferences: change enum name
Merge pull request !1432 from bluhuang/valuecfx-tree 980e7a380f165ff2283d24ee937bb2e110291bf4
parent 43d89c4f961e0a347816a506bd9d7eeedd43c8d1
author zhangwuf <zhangwu47@huawei.com> 1726129575 +0800
committer zhangwuf <zhangwu47@huawei.com> 1726129575 +0800

不再对NDK编译后的特定目录过滤

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
?lxNtree 64145c3009c04e260f9dcb0b1bfa5f5edb8ef872
parent e406539b4a301e6ba9bc7de12d8a98b125e13c4d
parent e7a565a18f6814479e73d5fed905017a48d278dc
author oh_ci <maguangsheng1@huawei.com> 1726124012 +0000
committer Gitee <noreply@gitee.com> 1726124012 +0000

!1393 新增ColorSpace的NDK接口
Merge pull request !1393 from 俞超麒/masterUnRxOtree 37d305c90d57d9c76bdaf01d2934a61ceef59935
parent 5deec0e936eda8fb3fc7871aee6bcb18cddee03f
parent 1491d887e13192914716da0fae01e15786ec6e7d
author openharmony_ci <120357966@qq.com> 1726116279 +0000
committer Gitee <noreply@gitee.com> 1726116279 +0000

!1398 Typeface新增可变字体
Merge pull request !1398 from ustc-tianyu/master Rmx:tree a3e91d91a58ed762283ea72a5c1f2990a9b4f0ca
parent e105e1e37255571fa4edc3b614d87f39859ec552
author huchang <huchang4@huawei.com> 1726112152 +0800
committer huchang <huchang4@huawei.com> 1726112152 +0800

abbr mic

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I0c3ce24032686b76929171d7dfc60682e371e502
]xTtree 6c52b67837d41812b68621210ff6d4f0e0d27ee8
parent 72c41cedf2a2342ca1a0b3a19c4e7bb848d91668
author huchang <huchang4@huawei.com> 1726110463 +0800
committer huchang <huchang4@huawei.com> 1726110627 +0800

add block detection query function

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I3f7a7c7b61941fc88e0f7e8db22fd2ec6807e117
hxJtree 478e8c732b917cbf6f07ba83c66fd6257dab0132
parent 5deec0e936eda8fb3fc7871aee6bcb18cddee03f
author bluhuang <bluhuang@icloud.com> 1726065481 +0800
committer bluhuang <bluhuang@icloud.com> 1726109102 +0800

change enum type name

Change-Id: I4097658a6c43b38ee1a8f2826663752582398c10
Signed-off-by: bluhuang <bluhuang@icloud.com>
f[xJtree afa631582ca3eaf1d8a0d9a6af78a8d0e3c73e59
parent 4047273a5e4c91e2f1656895269ff8f4d37e3e5e
parent 02c9d01bfe506d187236ddecac6d1d91895b2375
author openharmony_ci <120357966@qq.com> 1726054281 +0000
committer Gitee <noreply@gitee.com> 1726054281 +0000

!1404 删除多余的ndk接口
Merge pull request !1404 from ccfriend/mastercpjxOtree 0565bc0d10115d7be270d0c0f75f412ba9aba7e1
parent b6ac96bc263865631e94a3e3b8fb1110b0061272
parent 9e79f499c3faf9d3664ca396c59fa0079ad61c84
author openharmony_ci <120357966@qq.com> 1726053229 +0000
committer Gitee <noreply@gitee.com> 1726053229 +0000

!1428 注册接口参数修改
Merge pull request !1428 from zwtmichael/my_mastermLx"tree 95aec76d265c68349183f01fd0b8e3f2831c97df
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
author ustc-tianyu <dutianyu4@huawei.com> 1725415838 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1726042940 +0800

add fontVariation C API
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
[UxVtree d2619499c3a6436e9fe77b004a63c544e485e5a8
parent bcce45264e06733692d57c28406cda7821364ba6
parent f89d5b8cb48ec5be7a84a1572a9e385eec6b1b3b
author openharmony_ci <120357966@qq.com> 1726041829 +0000
committer Gitee <noreply@gitee.com> 1726041829 +0000

!1232 【字体引擎】新增接口OH_Drawing_TypographyGetLongestLineWithIndent， 获取带有缩进的最长行宽度。
Merge pull request !1232 from PengKejie/masterxxXtree c134e7bf7360003f13d765fa0776065c7308db65
parent 960478e8a55053435dc5e346a58cc94cded601b4
parent b85ef02514caf08487e6691ab4d5d9c92f50e44d
author openharmony_ci <120357966@qq.com> 1726040089 +0000
committer Gitee <noreply@gitee.com> 1726040089 +0000

!1394 PictureMetadata接口变更为API 13
Merge pull request !1394 from caochuan/ndk_0903ekgx*tree ffeb03cdde9a31d0b81fe0bb621baba564b9f684
parent 078026f856e945bc8374633b7f08ec142cdf4a4b
author 俞超麒 <yuchaoqi1@h-partners.com> 1726026690 +0800
committer 俞超麒 <yuchaoqi1@h-partners.com> 1726026690 +0800

add colorSpaceManagerNDK

Signed-off-by: 俞超麒 <yuchaoqi1@h-partners.com>
N^gx|tree 064ddc62b60c99c334c9a0ae77a3d6c5e9553b76
parent 98293209439a78b791e5beeaa17bbad84edab61e
parent 960478e8a55053435dc5e346a58cc94cded601b4
author ccfriend <chengcheng14@huawei.com> 1726024461 +0000
committer Gitee <noreply@gitee.com> 1726024461 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: ccfriend <chengcheng14@huawei.com>axyx?tree 74c94ac1c7cda74106aff37f0802e86b45992ee2
parent 94554934d781db0e54eceb4f23dbb1829f6c3b98
author huchang <huchang4@huawei.com> 1725978909 +0800
committer huchang <huchang4@huawei.com> 1725978909 +0800

add camcorder

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Ida9d396228dfa7614b4d63254295fceb12380c6e
u`x"tree 52466144d3242e97054f9e5f8d6e15cf5fc0113f
parent e44777326c4612f63b93d350a0bebf517ee2d631
author zwtmichael <zhuwentao5@huawei.com> 1725941707 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725955732 +0800

modify interface param

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
[xLtree d88010870fd2334e3bb66c4c590979cc58ce45d2
parent 2636738338ec3c935d99f1a9f02fa7d663ac1f3b
author huchang <huchang4@huawei.com> 1725942129 +0800
committer huchang <huchang4@huawei.com> 1725944612 +0800

add mic unblocked callback

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Ib3d438faf355ad06e8bf6032b5cc46599694660d

Ldxtree 01a6dda4cfa4a814d7057d1f9a9e2584707dc375
parent bd36a3e5a174c57a931c3048b2db2f7f0249d0a3
author PengKejie <pengkejie@h-partners.com> 1725941012 +0800
committer PengKejie <pengkejie@h-partners.com> 1725941012 +0800

修改version

Signed-off-by: PengKejie <pengkejie@h-partners.com>
ђ\xWtree cc4012be2c5692599ec3c0cb46f3ad1a73bb179f
parent c7b070f35975304b19b65ca55e339330247e6f25
parent e44777326c4612f63b93d350a0bebf517ee2d631
author openharmony_ci <120357966@qq.com> 1725890536 +0000
committer Gitee <noreply@gitee.com> 1725890536 +0000

!1397 修改build.gn文件命名问题
Merge pull request !1397 from zwtmichael/my_master]pDx{tree 8e2a811b8818c970d567e75e5d3cfb05709878e8
parent 9142802e8fab12e1d37163456bf7029350b4cfbe
parent e64ddbf2fee9d841edf800682886ca2649cf569f
author openharmony_ci <120357966@qq.com> 1725885986 +0000
committer Gitee <noreply@gitee.com> 1725885986 +0000

!1403 location C API中的callback增加userData参数以支持多实例场景
Merge pull request !1403 from 刘彬俊/masterx1tree c329b4d9037dc1b95850c1cf8656a7684aff09a4
parent 3d9ae1ce6bf18ba3c5a97f69be3897a38d1e896a
author HYH <huiyuehong@huawei.com> 1725872630 +0000
committer Gitee <noreply@gitee.com> 1725872630 +0000

update multimodalinput/kits/c/input/oh_input_manager.h.
dadad

Signed-off-by: HYH <huiyuehong@huawei.com>Tb	xHtree ae8575b1a23986b512ecf006d19a0e18dba5d2dd
parent 47183d33910ae2b64f78b15fd4999c87a99ebece
parent ac7fa3dd19ca0636cfa1c9a2669220dfb4c7ac70
author openharmony_ci <120357966@qq.com> 1725860569 +0000
committer Gitee <noreply@gitee.com> 1725860569 +0000

!1421 paste board ndk json fix
Merge pull request !1421 from cuile4/masterocx}tree 6e79fd750de2962bd2d86fca5676e207ca0c7a4b
parent fa8599ec5d52359e5fd93ec5754088807aeacab4
parent 0e9e197f044805d94c71e54ee7aa53c3d22e4627
author openharmony_ci <120357966@qq.com> 1725853228 +0000
committer Gitee <noreply@gitee.com> 1725853228 +0000

!1422 新增applicationContext错误码ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST
Merge pull request !1422 from yangzk/masterzxrtree 82ac24754b0720e378c9f92f5796f1d9ecd91eb9
parent b5fbcf75d685aff6ad1a350781557ad945dab4c7
parent 2b199c4962653a72dec495c079b2462904f86037
author openharmony_ci <120357966@qq.com> 1725801502 +0000
committer Gitee <noreply@gitee.com> 1725801502 +0000

!1390 添加媒体库0826 api并修改addtogroup问题
Merge pull request !1390 from caochuan/media-library-0826-apiU{Oxtree 503ed80a252bf90c700d59e5b3e6ae9275f42b49
parent 1d300a939925260dc89cc096e6735952f02776a6
author cuile4 <cuile4@huawei.com> 1725778490 +0800
committer cuile4 <cuile4@huawei.com> 1725778490 +0800

paste board ndk json fix

Signed-off-by: cuile4 <cuile4@huawei.com>
Px+tree c6b289bce4426728c16aa59c28cabc757c223d89
parent 5be025813e5fe576d31cc21713639d125f9e4437
author huanghuijin <huanghuijin@huawei.com> 1725454100 +0800
committer huanghuijin <huanghuijin@huawei.com> 1725768876 +0800

add build targets section

Signed-off-by: huanghuijin <huanghuijin@huawei.com>
_Śxtree 8069ee24756784173bc4af00a02e207b71668c56
parent 5edd2249c9343f8607cd76a6cb1fb7f7ee5663b2
author caochuan <caochuan@huawei.com> 1725259139 +0800
committer caochuan <caochuan@huawei.com> 1725703767 +0800

add media library 0826 api

Signed-off-by: caochuan <caochuan@huawei.com>
dVޔxTtree f005416714f4bab46e0352da075f222b1cb8f5e0
parent fe3bbbc2c603d83a0206e63a6d2291f0b1e0b467
parent 1d300a939925260dc89cc096e6735952f02776a6
author openharmony_ci <120357966@qq.com> 1725691883 +0000
committer Gitee <noreply@gitee.com> 1725691883 +0000

!1406 Add udmf ndk interface into ndk json
Merge pull request !1406 from cuile4/master@eVxCtree 12c09b750519931f7b4d22783b0dbdc00187b7f8
parent 70dcb255dca5a068b6cd6b916741459ac72069de
parent 580e7fcd8ce6a624b99613fba582745abbc9b22c
author openharmony_ci <120357966@qq.com> 1725686061 +0000
committer Gitee <noreply@gitee.com> 1725686061 +0000

!1381 ndk配置调整
Merge pull request !1381 from 高超/ndk_chagneBfx%tree 41363e7e91742b5abbccbe96e25e8fdb137b4632
parent 5be025813e5fe576d31cc21713639d125f9e4437
author zwtmichael <zhuwentao5@huawei.com> 1725436606 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725683050 +0800

modify build gn file name

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
n\xOtree 4762de4d44ed97a1785d3aeb413d46eb619f4d5d
parent 6dc701517c27bb88dc0b3da1cb22b960ed3327e1
parent cc49c8db9f8e18c10b25455b93d8d8d901e2d250
author openharmony_ci <120357966@qq.com> 1725626702 +0000
committer Gitee <noreply@gitee.com> 1725626702 +0000

!1413 修改ndk的接口json配置
Merge pull request !1413 from ccfriend/newjsonJm;xatree 7f4ffcbf993f37004fec666bff8a4258f7732e22
parent 19439bb4fc630b702a82752967f5eb7fbf171433
parent 1c6690438450d3b530989c8745f3a07ab1086b68
author openharmony_ci <120357966@qq.com> 1725624366 +0000
committer Gitee <noreply@gitee.com> 1725624366 +0000

!1347 Support Accessibility Native接口
Merge pull request !1347 from dujingcheng/djcaccessibility1Pmx#tree beff7523342613ff98d63b35cf5c3304db616c04
parent 19439bb4fc630b702a82752967f5eb7fbf171433
author ccfriend <chengcheng14@huawei.com> 1725617789 +0800
committer ccfriend <chengcheng14@huawei.com> 1725617789 +0800

modify json config name

Signed-off-by: ccfriend <chengcheng14@huawei.com>
#ZlxWtree 2a818bcfe035ba0bfc18af79bf3f045e7c2227df
parent 4951930c8c9ed420239b381af5e68d2e93c36a30
parent 701a75765f26c78c9267d4df967e232e5818ac80
author openharmony_ci <120357966@qq.com> 1725611496 +0000
committer Gitee <noreply@gitee.com> 1725611496 +0000

!1407 add some JSVM function's result code
Merge pull request !1407 from 蒋群超/masterQj(xtree d31f07e078c21ec3b3c5c42378fb09df9af3ac66
parent 86364f19baa2b33de893a8aed138d13b39ebc5a1
author liu-binjun <liubinjun@huawei.com> 1725536669 +0800
committer liu-binjun <liubinjun@huawei.com> 1725605116 +0800

bugfix:add userData

Signed-off-by: liu-binjun <liubinjun@huawei.com>
Zxtree 5541b3ea1ad12a71132a4f97605c44abc7de495c
parent 872e830c61c545d847146f6ea46b5ce4439a1c67
author liushang <liushang2@huawei.com> 1725601311 +0800
committer liushang <liushang2@huawei.com> 1725601311 +0800

fix colorspaceinfo

Signed-off-by: liushang <liushang2@huawei.com>
=VxBtree 5a90f70c74895fb7bbcbdbf5bba53301fb8e956b
parent 8398ba470431e50481840974701fd35d8a79c0cc
parent 0d837a5cc06d20ea69bda931ae9a8cab8761112c
author openharmony_ci <120357966@qq.com> 1725598215 +0000
committer Gitee <noreply@gitee.com> 1725598215 +0000

!1409 修改json配置
Merge pull request !1409 from ccfriend/newcppqe6xQtree eb1dfaa04dc0aff50590389901f3ebba00bcf951
parent dbbab736290d074b7006ab3f41c2af7481127965
parent 1d5b0d8b260f24f2bff59e7b4bd9f3bad352e231
author openharmony_ci <120357966@qq.com> 1725594143 +0000
committer Gitee <noreply@gitee.com> 1725594143 +0000

!1405 新增微信打印ndk接口
Merge pull request !1405 from 单海洋/myfeatureP6r,xtree 0d75cc9f3958c3404a306129d19b88d590641f52
parent dbbab736290d074b7006ab3f41c2af7481127965
author ccfriend <chengcheng14@huawei.com> 1725593979 +0800
committer ccfriend <chengcheng14@huawei.com> 1725593979 +0800

modify json config

Signed-off-by: ccfriend <chengcheng14@huawei.com>
wmXx?tree d44ef21cb2759adb0f5f8d9eb5c94533a90b730e
parent dbbab736290d074b7006ab3f41c2af7481127965
author jiang-qunchao <jiangqunchao@huawei.com> 1725588985 +0800
committer jiang-qunchao <jiangqunchao@huawei.com> 1725588985 +0800

add some JSVM function's result code

Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com>
nfxtree a61af4f071081aa990a22963f4d5436ea4506e76
parent dbbab736290d074b7006ab3f41c2af7481127965
author cuile4 <cuile4@huawei.com> 1725586891 +0800
committer cuile4 <cuile4@huawei.com> 1725586891 +0800

Add ndk interface of udmf into ndk json.
>

Signed-off-by: cuile4 <cuile4@huawei.com>
TVx%tree 7f7d643cc32840cd59583215ff8c44c5ff2c8b81
parent 84bea90c9d26a71a6c95e1160a3e5e93741e51bc
author HYH <huiyuehong@huawei.com> 1725585021 +0000
committer Gitee <noreply@gitee.com> 1725585021 +0000

update multimodalinput/kits/c/ohinput.ndk.json.
1

Signed-off-by: HYH <huiyuehong@huawei.com>\ax-tree 3003e18dfb41a6d842424c3f40f0b836309c32ed
parent 6eb90d89cc6badedfc7808f47b4fedcaee994313
author shanhaiyang <shanhaiyang@huawei.com> 1725549583 +0800
committer shanhaiyang <shanhaiyang@huawei.com> 1725549583 +0800

新增微信ndk打印接口

Signed-off-by: shanhaiyang <shanhaiyang@huawei.com>
ۚiۓx#tree 23bacd52ddde241351c00205dd086686ab8a8d13
parent 30f8e6bf3fdcbd27a1d5cc2d65199258959f9be8
author ccfriend <chengcheng14@huawei.com> 1725547433 +0800
committer ccfriend <chengcheng14@huawei.com> 1725547433 +0800

remove unused interface

Signed-off-by: ccfriend <chengcheng14@huawei.com>
_[ɛxtree a12a0368f15d3de7c4057f7c80ab2069e5295cd5
parent 5f19970e59a2953fec20f9613a60cfa10f0495a1
author dujingcheng <dujingcheng@huawei.com> 1725371916 +0000
committer dujingcheng <dujingcheng@huawei.com> 1725543267 +0000

add fanyi

Signed-off-by: dujingcheng <dujingcheng@huawei.com>
Y1xntree 6a29d7b683804bea02fbbf45588ba0d7692ef280
parent 75085207c85c10ff4135ab9bc7d4229cc9dc89f3
parent dbbab736290d074b7006ab3f41c2af7481127965
author HYH <huiyuehong@huawei.com> 1725537886 +0000
committer Gitee <noreply@gitee.com> 1725537886 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: HYH <huiyuehong@huawei.com>9rx tree 83bbb5cde6d7b54e7e7f72a929bd761fc3cf0e8a
parent 42c0ee2190e71305d280803bfe354de0d9cc289f
author HYH <huiyuehong@huawei.com> 1725537789 +0800
committer HYH <huiyuehong@huawei.com> 1725537789 +0800

hyb

Signed-off-by: HYH <huiyuehong@huawei.com>
;LxBtree 5f305688868239433696e9c40d1c7d6bbb24f3d0
parent 7385fdb659a2cb6bae4745745311bd80dba2767d
parent e1548f2f3ec145749c86154abe5237f8d4215916
author openharmony_ci <120357966@qq.com> 1725536747 +0000
committer Gitee <noreply@gitee.com> 1725536747 +0000

!1402 capi configuration
Merge pull request !1402 from HYH/shaoziyunk_VxVtree 5f305688868239433696e9c40d1c7d6bbb24f3d0
parent 7385fdb659a2cb6bae4745745311bd80dba2767d
author hellohyh001 <huiyuehong@huawei.com> 1725529778 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725529778 +0000

capi configuration

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I96673d200d8bab7b9e19713cb3a44cab7b2cb445
i]xTtree 24cc1841d85e8cce0e2eaea2cf33957a0311e466
parent bf12951915fefc820af5ec50761765ba87520a9e
parent 8e94abbf4f9745b0a33c5eb2be0406ba354a32a8
author openharmony_ci <120357966@qq.com> 1725526608 +0000
committer Gitee <noreply@gitee.com> 1725526608 +0000

!1395 apply for clang with -std=c++xx is on
Merge pull request !1395 from oscrlet/boolNfxEtree 26de04fe65f6b2e95ca21d6c06515746b4ade141
parent 5be025813e5fe576d31cc21713639d125f9e4437
parent 66d9cc6c26287ff25e2a15c8b6c2486985a9fbe7
author openharmony_ci <120357966@qq.com> 1725523427 +0000
committer Gitee <noreply@gitee.com> 1725523427 +0000

!1396 修复注释描述
Merge pull request !1396 from 郑志豪/masterIjx tree 9d0a64281bbda0f040c70ae078da82844b8ed2ed
parent 98f602f9f237bb07f6bb2b530f56205b6232bb1e
author HYH <huiyuehong@huawei.com> 1725510139 +0800
committer HYH <huiyuehong@huawei.com> 1725510139 +0800

das

Signed-off-by: HYH <huiyuehong@huawei.com>
Lx tree 13796a0cd2371232287a1dc1ecb38d33ca28f24f
parent bc01372cc068d47c86cb48c1a8700c9d929fda0f
author HYH <huiyuehong@huawei.com> 1725507253 +0800
committer HYH <huiyuehong@huawei.com> 1725507253 +0800

dad

Signed-off-by: HYH <huiyuehong@huawei.com>
NKx-tree f3a661e27aa67cd9c83e43951d6b6fbbf76fb795
parent 196772c32c5d7162feaffbfc05dc6bf59cf0c277
author zheng_zhi_hao <zhengzhihao3@huawei.com> 1725427047 +0800
committer zheng_zhi_hao <zhengzhihao3@huawei.com> 1725499782 +0800

修复注释描述

Signed-off-by: zheng_zhi_hao <zhengzhihao3@huawei.com>
:gx@tree c0fe6b7fde3a0b9d55691e8951209e8075ba340a
parent c2079975e69138266a4fdfa42c4f0288773576f0
author shenshiyi2 <shenshiyi2@h-partners.com> 1725281115 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1725454177 +0800

pixelmap native层支持操作colorspace

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
 kƛx tree 9ef14cfb99e61e98b26c89d8743475f061005020
parent ddff86f8e108ba8944a7c27e75588999e29cabee
author HYH <huiyuehong@huawei.com> 1725439055 +0800
committer HYH <huiyuehong@huawei.com> 1725439055 +0800

dada

Signed-off-by: HYH <huiyuehong@huawei.com>
LCx tree 9ba22c5eba2572faf879a277425b03c9581e6efc
parent 557b979cb8b041ed42832c5baa872e56d5aa0fb8
author HYH <huiyuehong@huawei.com> 1725438649 +0800
committer HYH <huiyuehong@huawei.com> 1725438649 +0800

dah

Signed-off-by: HYH <huiyuehong@huawei.com>
;LxEtree 84d06e72756f9396a818aa566ef12c4a78f34af7
parent 555d7b2acc079df11e6217088d86a9db9d367152
author huchang <huchang4@huawei.com> 1721266880 +0800
committer huchang <huchang4@huawei.com> 1725434945 +0800

add micblocked json

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Ida090f4484c431699123229fab15e9c7ba12cf24
bxRtree 393d8f869da4436d723d386d46e58f7ca971fcf5
parent 5be025813e5fe576d31cc21713639d125f9e4437
author huchang <huchang4@huawei.com> 1720608014 +0800
committer huchang <huchang4@huawei.com> 1725434814 +0800

support for mic blocked in audio

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I255c5c691babee2dcf0ef68dacacdb092bec5a09
hxxStree 8ff259a2464e4d62992082de62c06a27c43f124e
parent 196772c32c5d7162feaffbfc05dc6bf59cf0c277
parent 30f8e6bf3fdcbd27a1d5cc2d65199258959f9be8
author openharmony_ci <120357966@qq.com> 1725432853 +0000
committer Gitee <noreply@gitee.com> 1725432853 +0000

!1214 增加avsession的ndk接口定义
Merge pull request !1214 from ccfriend/masterEnǚx tree 774c091bdfa8cec851deb4519d22cf6ea0fa18fa
parent e773c8652a5ea8914b6c0c6a2d4f138cc4341b10
author HYH <huiyuehong@huawei.com> 1725431198 +0800
committer HYH <huiyuehong@huawei.com> 1725431198 +0800

dsa

Signed-off-by: HYH <huiyuehong@huawei.com>
!LÚx:tree f60f28a2864474174ff8b482cc4c66325f98430b
parent 196772c32c5d7162feaffbfc05dc6bf59cf0c277
author yanghaiming <yanghaiming4@huawei.com> 1725416664 +0800
committer yanghaiming <yanghaiming4@huawei.com> 1725416706 +0800

apply for clang with -std=c++xx is on

Signed-off-by: yanghaiming <yanghaiming4@huawei.com>
vd"xZtree f8ce4e2876e0e856de039b55b615396d4b9534b5
parent b837b2c6816a34c06722ae9e5b57b37e5762c56d
parent 713dc55b15debb934aef515a30b435c70bcde115
author openharmony_ci <120357966@qq.com> 1725415546 +0000
committer Gitee <noreply@gitee.com> 1725415546 +0000

!1359 修改XComponent NDK语法问题
Merge pull request !1359 from sunbees/xc_macro_modify(oҗx'tree 1a6dc7fd315ac26431e6d14a747178330bb5899b
parent 6a522030325c43cb9daccf5e9a5bf5b30a757efe
author ccfriend <chengcheng14@huawei.com> 1723899312 +0800
committer ccfriend <chengcheng14@huawei.com> 1725412780 +0800

add avsession ndk interface

Signed-off-by: ccfriend <chengcheng14@huawei.com>
;\ɖxFtree 2fc7eb74e0484c307de0038b0469df5690fd5952
parent 0c051b78fb31552f924ca808c7a5d6e158dfcec6
parent 86364f19baa2b33de893a8aed138d13b39ebc5a1
author openharmony_ci <120357966@qq.com> 1725375561 +0000
committer Gitee <noreply@gitee.com> 1725375561 +0000

!1389 location增加C API
Merge pull request !1389 from 刘彬俊/master]fɓx#tree 4b7faf7498218fb49818e200ec592acded626196
parent 5edd2249c9343f8607cd76a6cb1fb7f7ee5663b2
author liu-binjun <liubinjun@huawei.com> 1725258060 +0800
committer liu-binjun <liubinjun@huawei.com> 1725368561 +0800

feature:add location c api

Signed-off-by: liu-binjun <liubinjun@huawei.com>
%\~xztree 3aaf3f4f1009428ece206e0acad15cefe03d69f6
parent 93eb5ab1402c057e3d6d2a60a9a7591f2fdcdab3
author caochuan <caochuan@huawei.com> 1725367991 +0800
committer caochuan <caochuan@huawei.com> 1725367991 +0800

PictureMetadata API changed to api13

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/IAOLO6?from=project-issue

Signed-off-by: caochuan <caochuan@huawei.com>
|xQtree 091e39003b4a68ffaa0221ae3ee8bdd68c583f29
parent 93eb5ab1402c057e3d6d2a60a9a7591f2fdcdab3
parent 7fc768543d21920f8742844e98b851330571ad38
author openharmony_ci <120357966@qq.com> 1725363621 +0000
committer Gitee <noreply@gitee.com> 1725363621 +0000

!1369 新增preference ndk接口
Merge pull request !1369 from zwtmichael/my_master	j"x tree 00bd8aece65711e683d516b9c2af0c2cffc5bea2
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author HYH <huiyuehong@huawei.com> 1725357585 +0800
committer HYH <huiyuehong@huawei.com> 1725357585 +0800

add c api

Signed-off-by: HYH <huiyuehong@huawei.com>
N֕xUtree d0fd7a30c32759479dd723ca776814c039229555
parent 983d0882e232dcb6f043e4625df257374ad47a50
parent fddd4c31d67ddb4f6fbc11bc535641e90a9857df
author openharmony_ci <120357966@qq.com> 1725329251 +0000
committer Gitee <noreply@gitee.com> 1725329251 +0000

!1383 fix function no parameter use void
Merge pull request !1383 from 吴成文/masterixZtree 6a768e8cf57c40e2ca2bb2e14e3ab8b2bed55a42
parent f5c4febb70dbe383c9d97b7e9ce34689f425882b
parent f4035d8254327dca4f091dd7580053f27b76b754
author oh_ci <maguangsheng1@huawei.com> 1725327116 +0000
committer Gitee <noreply@gitee.com> 1725327116 +0000

!1382 feat: add capi for battery info
Merge pull request !1382 from z30053694/batteryInfoCapiJ@izxtree dc6e8ad55a482f65bde6187592e6e4892ad1bbbf
parent 4a172227e4a215a0ff76da86c0ba158fded5e33b
author zwtmichael <zhuwentao5@huawei.com> 1725290398 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725325591 +0800

add new errCode

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
CZxtree 84a9de1ec47e1c172565a7a44b206ecda2e98848
parent c638191e64d75044b2d2ae624a2ada8d3d5fe58e
author zwtmichael <zhuwentao5@huawei.com> 1725283165 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725288627 +0800

fix commitment

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
&Z&xwtree 38121b68d311b29819bd5b6b6f483d47b2ede6be
parent 72061e05cec9d0d38b5e26c6382a5900773de4b1
parent 1e6336b5da0c66055f3ccbf605fce62890a1fdae
author openharmony_ci <120357966@qq.com> 1725285748 +0000
committer Gitee <noreply@gitee.com> 1725285748 +0000

!1353 新增telephony相关的ndk接口，获取默认主卡ID和网络制式
Merge pull request !1353 from sjh/telephonywxtree 1d9abe2780cbd6bdeeaa5c163cd1f22867a582fb
parent a50eb8d1942a45c9d43dfc62edd12f0c8f70035a
author zwtmichael <zhuwentao5@huawei.com> 1725271067 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725284855 +0800

modify errCode

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
*Zx$tree 1380542ce8b71893823a754730476897dd1a9903
parent 81e56069b60af8b820037fca01c6328b89144d70
author zwtmichael <zhuwentao5@huawei.com> 1724903599 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725284855 +0800

add preference interface

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
vR[[x%tree a770b7882d575ee4c991bbdfbe437792cbf7a87e
parent 72061e05cec9d0d38b5e26c6382a5900773de4b1
author zwtmichael <zhuwentao5@huawei.com> 1724847181 +0800
committer zwtmichael <zhuwentao5@huawei.com> 1725284855 +0800

add preferences interface

Signed-off-by: zwtmichael <zhuwentao5@huawei.com>
!m^/xtree 31718730eac348c5f8f90410af4334e912f9b763
parent a9497e387cf96d8cea7b58643bd58f2dade1f7ac
author z30053694 <zhangchen190@huawei.com> 1725246737 +0800
committer z30053694 <zhangchen190@huawei.com> 1725282171 +0800

fix: changed @since to version 13 and fix typos

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: I2d6edf8ed5c0fa9bfb0b177ee7f1665c9121c2c9

fix: changed version to 13 and fix typos

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: I1546a6df07010199b20a790740364f0747a47c94

fix: added comment

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: I26f987cdd7dc69daf1c8cb27782e984fd1d3f8d6

fix: typos

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: I9b667f4de5b6bf8262ed7987d696ea5b5e4881a7
[̟x?tree cbfdf584668e3bce2d8ae74df9f1eaad1a1fc90f
parent abc3e3448b91354ba4edc34d5644087055388969
parent 72061e05cec9d0d38b5e26c6382a5900773de4b1
author shenshiyi2 <shenshiyi2@h-partners.com> 1725270362 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1725270362 +0800

Merge remote-tracking branch 'upstream/master'
cxRtree 310f5e94307b81e1a952a4137c7cf142e9c23190
parent ee931a8993b9d8acd266cfdc5919d4546057d4d8
parent e915c1f7531ccf12a8bff7ae8cfd9c7c17f568d8
author openharmony_ci <120357966@qq.com> 1725265547 +0000
committer Gitee <noreply@gitee.com> 1725265547 +0000

!1375 StartNativeChildProcess 修改
Merge pull request !1375 from zhangyuhang/childigxQtree d46b82d46d6b6c01a3c909c3226d16026466649e
parent 5edd2249c9343f8607cd76a6cb1fb7f7ee5663b2
parent 2ef6fa5bfd152bb41de7919dd5be67d867233887
author openharmony_ci <120357966@qq.com> 1725260314 +0000
committer Gitee <noreply@gitee.com> 1725260314 +0000

!1356 输入设备管理新增NDK接口
Merge pull request !1356 from HYH/shaoziyun3osxqtree d46b82d46d6b6c01a3c909c3226d16026466649e
parent 8b338b9f79ddc6d1d02381a3ddac910402a69dbb
parent 5edd2249c9343f8607cd76a6cb1fb7f7ee5663b2
author HYH <huiyuehong@huawei.com> 1725249106 +0000
committer Gitee <noreply@gitee.com> 1725249106 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into shaoziyun

Signed-off-by: HYH <huiyuehong@huawei.com>ƻtx|tree dd1fc5a8c0558f5d96f5605f7fabcdb2e509b45d
parent a49423eced582cfe5210d2ac906c7007d3aa8db7
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
author HYH <huiyuehong@huawei.com> 1725084925 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725249044 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into shaoziyun

Signed-off-by: HYH <huiyuehong@huawei.com>
+yGxPtree 181a0311e23fa1083dd9c2762b9b9d055b091813
parent 1bbee71d6f786e257a0b17d2a7de7315f86a2c8a
parent 6ed7439e7f4095728230dbefb34e64e38caa7113
author oh_ci <maguangsheng1@huawei.com> 1725247945 +0000
committer Gitee <noreply@gitee.com> 1725247945 +0000

!1377 applicationContext新增ndk接口
Merge pull request !1377 from yangzk/masterkxKtree 4c8799c1043414accffdd93705b11b239c905b1e
parent 48c8b990de58091a27bb9e0034056a89f7a02352
parent 6eb90d89cc6badedfc7808f47b4fedcaee994313
author openharmony_ci <120357966@qq.com> 1725195101 +0000
committer Gitee <noreply@gitee.com> 1725195101 +0000

!1386 新增微信打印ndk
Merge pull request !1386 from 单海洋/myfeature|m~xtree 5fdb6f4db2cc8b2d5d2cbe12e0633458ca1eba08
parent 2a705831cdeda17de42488f49fe9ec40374e08e6
author dujingcheng <dujingcheng@huawei.com> 1724940155 +0000
committer dujingcheng <dujingcheng@huawei.com> 1725187651 +0000

dd

Signed-off-by: dujingcheng <dujingcheng@huawei.com>
Xx*tree e1ea8648d8fc684b08ff01ff23c16641fa09ee1d
parent e6bde733d53eb6d50b5c52913d912e48174c2d16
author shanhaiyang <shanhaiyang@huawei.com> 1725110380 +0800
committer shanhaiyang <shanhaiyang@huawei.com> 1725187562 +0800

增微信打印ndk接口

Signed-off-by: shanhaiyang <shanhaiyang@huawei.com>
MgxBtree e8ee9feebade1aa71c45f48829335c4b61791676
parent 532cdb10ddd31281770aa76f6b3ce84c32076956
parent 3ffd999385897ee0c576fdbbc3aa825ffc021707
author openharmony_ci <120357966@qq.com> 1725185073 +0000
committer Gitee <noreply@gitee.com> 1725185073 +0000

!1358 add device listener capi
Merge pull request !1358 from HYH/mxh`xNtree d21c0b03fb9ebb284f2483cb46b1f181bb59618f
parent 2e78288d5cea9b4284bd8c55883b0c7b7fa7bb45
parent b9e9f6e4dbfd15609ebad8443deb4ad3ab7b449e
author openharmony_ci <120357966@qq.com> 1725176152 +0000
committer Gitee <noreply@gitee.com> 1725176152 +0000

!1380 native image新增接口修正
Merge pull request !1380 from 李辉/wx0831mxRtree 4f673f4f9df9f9e6dbebc236e859180c880dcf09
parent 8af1f27dd0972557ef4bea0f13ef010a46d16a86
author z30053694 <zhangchen190@huawei.com> 1725164181 +0800
committer z30053694 <zhangchen190@huawei.com> 1725164181 +0800

fix: formatted

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: Ifcb1d125ed455ed9a81a4a107c0d9d60ce676731
c{xPtree aff6e7ca073f04dc2d508e383bb1627411046617
parent 91a570e29ef13e188365cdbcc5f2f453d5d24d3b
parent 26adbc194d9dd41a695a5da87762f98eba464e5d
author openharmony_ci <120357966@qq.com> 1725162941 +0000
committer Gitee <noreply@gitee.com> 1725162941 +0000

!1084 add udmf record provider c api
Merge pull request !1084 from houpengtao/udmfexRtree 16eca5426af0b3547ce246ea08b2007af2035975
parent 532c66ef494c360e4a8fdc6b7f821f38fbefb064
parent f764e8b10d66cfaf8b3645f6ca4da43e08af3062
author openharmony_ci <120357966@qq.com> 1725115309 +0000
committer Gitee <noreply@gitee.com> 1725115309 +0000

!1061 Add paste board csdk interface
Merge pull request !1061 from houpengtao/masterfxztree 2b59292204d2f94d9815baf0c7f13f1cdd501f95
parent 670f24d0d7cb2f7c099af6b6626e3afcccc48499
parent 532c66ef494c360e4a8fdc6b7f821f38fbefb064
author houpengtao <houpengtao@huawei.com> 1725112411 +0000
committer Gitee <noreply@gitee.com> 1725112411 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into udmf

Signed-off-by: houpengtao <houpengtao@huawei.com>yxNtree e22d13f331fceac4cbb22258b64975ef27fa9be3
parent e6bde733d53eb6d50b5c52913d912e48174c2d16
parent 50ea97e214e20adebd19d5df85f4a7c87d0bb3c0
author openharmony_ci <120357966@qq.com> 1725111790 +0000
committer Gitee <noreply@gitee.com> 1725111790 +0000

!1054 UDMF NDK添加UDS类型
Merge pull request !1054 from JUN/feature-uds-0722;gКxztree 02e057a522679c419660289399962d2dd6267bc4
parent cd378e9dfad0441ebd4c6dd1549889d258c2b629
parent e6bde733d53eb6d50b5c52913d912e48174c2d16
author houpengtao <houpengtao@huawei.com> 1725107942 +0000
committer Gitee <noreply@gitee.com> 1725107942 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into udmf

Signed-off-by: houpengtao <houpengtao@huawei.com>Iwx~tree e22d13f331fceac4cbb22258b64975ef27fa9be3
parent bbdbc1156a5c5e45c69cb99aa8602f924dcaddd3
parent e6bde733d53eb6d50b5c52913d912e48174c2d16
author JUN <lizhuojun3@huawei.com> 1725104239 +0000
committer lizhuojun <lizhuojun3@huawei.com> 1725104495 +0800

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into feature-uds-0722

Signed-off-by: JUN <lizhuojun3@huawei.com>
PzǑxtree 10ebed34e7b8a09f81be2d7ed28f7e7f1ed465a8
parent 43c4c870935ea8d9ac0a394205b4beb25b5ecba2
author hellohyh001 <huiyuehong@huawei.com> 1725103314 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725103314 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
U<xCtree 8661cfe5e75993b402a2de41f29f1ea8f37dd2ff
parent 2c57fe6232ad0510ab60b10668b9bebef49b1a4c
author shenshiyi2 <shenshiyi2@h-partners.com> 1725097225 +0800
committer shenshiyi2 <shenshiyi2@h-partners.com> 1725099347 +0800

Image Kit 错误码描述修改
- 501 Resource unavailable.
- 62980097 IPC error.
- 62980246 Failed to read the pixel map.
- 62980247 Failed to write the pixel map.

Signed-off-by: shenshiyi2 <shenshiyi2@h-partners.com>
_x{tree 2489a4cb05f3bb2ff15811d316bc878482ec6636
parent 14ed895885f81c0c02e641431515f94c405c3659
parent bb60c0776de7e3cfc12046f57fb7740e379568ab
author openharmony_ci <120357966@qq.com> 1725096784 +0000
committer Gitee <noreply@gitee.com> 1725096784 +0000

!1360 【泛Sensor】【sensor】新增linear acc、game rotation vector接口
Merge pull request !1360 from lixiangpeng5/lxpF~xxtree 487ba25d2dd1c0a7edcde931d39f128acb066f58
parent 87eb438790f89e3ad58cb6b99c6eed1a299cf45d
parent 5f377ca70bbb32bcc573e8e2d53120c39b935aad
author openharmony_ci <120357966@qq.com> 1725096323 +0000
committer Gitee <noreply@gitee.com> 1725096323 +0000

!1355 提供NDK接口查询应用入口的MainElement信息
Merge pull request !1355 from Tintin9529/cz_GetMainElementName?'dxNtree a9f39414c181c2b7cae8f52214d5604d74da1ab0
parent 4b6fcd7abf4d063b7b79b4a6efacb64e8ddb73bc
parent 9e93a0333fa89347b2b47f3205073d58ae9886b2
author openharmony_ci <120357966@qq.com> 1725095802 +0000
committer Gitee <noreply@gitee.com> 1725095802 +0000

!1231 add asset account enc tag
Merge pull request !1231 from xinchengcai/masterbex>tree 3fd2f8f346b566c65d5e2485f546f49b91c660ff
parent e1fbb0198517615a1e1712c1ac3106c4c1796360
parent c894bed91bed7bf908cd4c7bc683c1797dde072e
author openharmony_ci <120357966@qq.com> 1725095749 +0000
committer Gitee <noreply@gitee.com> 1725095749 +0000

!1366 Add native api
Merge pull request !1366 from cuile4/master^x1tree 829bd978511a1b8787cfba173e06540b9c1ad27a
parent e1fbb0198517615a1e1712c1ac3106c4c1796360
author wuchengwen <wuchengwen4@huawei.com> 1725094588 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1725094588 +0800

fix function no parameter use void

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
a@xjtree 0005202f93bb27065f4a635141cc843ca0e61d98
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
author z30053694 <zhangchen190@huawei.com> 1725091263 +0800
committer z30053694 <zhangchen190@huawei.com> 1725091311 +0800

feat: add c-api of battery info module

Signed-off-by: z30053694 <zhangchen190@huawei.com>
Change-Id: Id7af7ce9818f3bd7f831e10a7f600448b2987f2d
ixOtree cbbd6900a3d866858abd34ef18df1818012934ca
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
parent da05cf5aea5a64ca8696839b25ce6f0430ee2155
author openharmony_ci <120357966@qq.com> 1725091052 +0000
committer Gitee <noreply@gitee.com> 1725091052 +0000

!1323 Picture接口API版本变更
Merge pull request !1323 from jinmingru/masterqSkxtree 9f030d1f6623fbc812440b061917bc3b50db2d2b
parent e4c9ba20f018759cc1d816d148849fec63c5b036
author hellohyh001 <huiyuehong@huawei.com> 1725089605 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725089605 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
$Sȕxtree 4a6b9bdcff3aff0e4bd2287fcb2d3550cc9e40c7
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
author gaochao <gaochao69@huawei.com> 1725087315 +0800
committer gaochao <gaochao69@huawei.com> 1725087315 +0800

调整ndk接口配置

Signed-off-by: gaochao <gaochao69@huawei.com>
Y\Axtree 5c3aca6711ccc6d2de746f3b075fdb58d8ff7698
parent 9219a0ba4ed3fff7e5d39372fe69b2e36145f054
author hellohyh001 <huiyuehong@huawei.com> 1724838696 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725084692 +0000

add mul NDK

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
%X*xtree 586a2e39b10b2f44eb6f3fb1f0a59c2041a569b7
parent 4e861ae6bc98074351474c60ae28b3e7b21128ec
author lihui <lihui359@huawei.com> 1725081802 +0800
committer lihui <lihui359@huawei.com> 1725081802 +0800

native image 新增接口修正

Signed-off-by: lihui <lihui359@huawei.com>
.[,xttree 97c0f950d9cd1d8142e2bdaf04f56e9cd23cc82e
parent e70d28cd044f52dfe863effcbe4d2fd9ed080563
author zhangyuhang72 <zhangyuhang72@huawei.com> 1725075470 +0800
committer zhangyuhang72 <zhangyuhang72@huawei.com> 1725075470 +0800

StartNativeChildProcess API修改

Signed-off-by: zhangyuhang72 <zhangyuhang72@huawei.com>
Change-Id: Ib475cf5dd09174743b7d0c95c33ecf0218c88ded
"xx.tree 7d78db9fa4f95b4c4e5c531ff7297f2d7c123d86
parent 3d2a06a6c334f04f33d65546ade88224e4fe2134
author Cai Xincheng <caixincheng@huawei.com> 1724066782 +0800
committer Cai Xincheng <caixincheng@huawei.com> 1725071388 +0800

add asset account enc tag

Signed-off-by: Cai Xincheng <caixincheng@huawei.com>
_x5tree e62a74a4d52d61604e2a92389f21fe7eac3c14a9
parent 9219a0ba4ed3fff7e5d39372fe69b2e36145f054
author tantingting <tantingting5@huawei.com> 1724838602 +0800
committer tantingting <tantingting5@huawei.com> 1725069140 +0800

add GetMainElementName interface

Signed-off-by: tantingting <tantingting5@huawei.com>
?cxBtree 6d6ef7209f46711259d9b690831581eaeab540b8
parent 828baf3e59b4642927a8d3c6a99128294fa94175
author cuile4 <cuile4@huawei.com> 1724902576 +0800
committer cuile4 <cuile4@huawei.com> 1725026529 +0800

Add ndk interface of udmf.

Signed-off-by: huangxiyong <huangxiyong@huawei.com>
Signed-off-by: cuile4 <cuile4@huawei.com>
%dKxtree 503815961a5cbe1ecb2a1e784f8eae1dab8da911
parent bdef566848212db869ff5e8e1bc1b3b2be886794
author hellohyh001 <huiyuehong@huawei.com> 1725022474 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725022474 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
U,xtree 1cef4216431a066442b0ace6415f61102144d2a6
parent d5a7764f96028b94ba7f2ee0ffabcbf64702299c
author hellohyh001 <huiyuehong@huawei.com> 1725022121 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725022121 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
HSБxQtree 6f6acde312467d14255fa5a0836afa164fcda93c
parent e70d28cd044f52dfe863effcbe4d2fd9ed080563
parent bb083513dc26c8d9416a0be79f93808f7b5eb045
author openharmony_ci <120357966@qq.com> 1725011794 +0000
committer Gitee <noreply@gitee.com> 1725011794 +0000

!1371 修改注释
Merge pull request !1371 from kerongfeng/camera_interface_c_0829Yjxtree 1adbd926c874d482eee0384d96a0afa7be510ef0
parent d9bc19fa2e12d41205dc942ab795eaa8d0940ec5
author hellohyh001 <huiyuehong@huawei.com> 1725011762 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725011762 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
1	U<xtree b9366853fb49e8aa9564a1f1f8e3883a46b53776
parent cdbf8d29720ccd14770d5e00d121d948d9b554bb
author hellohyh001 <huiyuehong@huawei.com> 1725005429 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725005429 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
!hTx*tree 09f96193f6c2c1afed14c74c24bdb66fd18636fc
parent 3af4f195062fb7113a5301709a1bdc933613eb30
author kerongfeng <fengkerong@huawei.com> 1725004814 +0800
committer kerongfeng <fengkerong@huawei.com> 1725004814 +0800

add a missing line of comments

Signed-off-by: kerongfeng <fengkerong@huawei.com>
p^xWtree 9e40349d8e1b1b37fd4c3283ec1029b0a7ec6218
parent 9fabe7156b02b50741ca44a36f46359386248981
author lixiangpeng5 <lixiangpeng5@huawei.com> 1725003344 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1725003929 +0000

fix by see

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: I18664a4a34ce02d286365943ef424b00685471b7
hxtree e1a21dea174a15e2268b62fcef97432795a43e39
parent 5d0d4cee8a3a617802c379bab50689b748f07537
author hellohyh001 <huiyuehong@huawei.com> 1725003548 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725003548 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Sڒxtree eb85202a9072f2c3b986362b4e0fb21979664d49
parent aa432430b7151fb96e8d4b9b7e6ed7bef4981674
author hellohyh001 <huiyuehong@huawei.com> 1725001954 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725001954 +0000

111

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Sxtree 32a5f689461cf98f557d4c1dccc2c8326da7bff5
parent b379245999d7431bddca0596b7c847e602303ec0
author hellohyh001 <huiyuehong@huawei.com> 1725000369 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1725000369 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
TxTtree ed701ec3a0d169c6e1c9ec5b1831ef3dc5e5d552
parent a724ef4e66a65b60407e8271b11f2b94d276d42d
parent 51c00ce25b297211efa3164fa2041a68e24dfbbd
author openharmony_ci <120357966@qq.com> 1724986764 +0000
committer Gitee <noreply@gitee.com> 1724986764 +0000

!1279 新增NDK接口获取文件名称
Merge pull request !1279 from 崔瑞斌/masterH	txAtree dce842d6df66f8bc16451afb2d717c6ffdfd54b3
parent 8afcbbb312e1aaf1a886b5575b516b10e0638315
parent a724ef4e66a65b60407e8271b11f2b94d276d42d
author hellohyh001 <huiyuehong@huawei.com> 1724985958 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724985958 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
bxtree 46e25195f2243e2d9a9239a269a266bfbfaa44ad
parent b667c73ce7b1c83e1cf26e38f9e8a48a0ab42b07
author hellohyh001 <huiyuehong@huawei.com> 1724985833 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724985833 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
eqTxtree 7d3610a4851e3f4bbe7b044e2b8a356b98b24f6b
parent 3026ed683318652144da69e567bced783531f8c3
author hellohyh001 <huiyuehong@huawei.com> 1724983738 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724983738 +0000

11

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Sxtree 648c2dcc62b687b682877df56df0d0b61e9735cb
parent 01af6eb6fb727e6d3df2674b5cbffe0683a80b9f
author lizhuojun <lizhuojun3@huawei.com> 1721743049 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1724983505 +0800

add new define

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
YSx)tree d0b3ce53ff16c8b2a1d8941c6d6dfcaaeac62f8f
parent 828baf3e59b4642927a8d3c6a99128294fa94175
author cuiruibin <cuiruibin3@huawei.com> 1724315663 +0800
committer cuiruibin <cuiruibin3@huawei.com> 1724980622 +0800

新增NDK接口获取文件名称
Signed-off-by: cuiruibin <cuiruibin3@huawei.com>
UikxHtree 9953a584b355c61d306e84e6933eb14346bfa7c8
parent 2c57fe6232ad0510ab60b10668b9bebef49b1a4c
parent 316b815cab505ddab407dd462ae971e24df424d2
author openharmony_ci <120357966@qq.com> 1724936734 +0000
committer Gitee <noreply@gitee.com> 1724936734 +0000

!1346 新增native image接口
Merge pull request !1346 from 李辉/wx0828Sgʐxtree 99b83d1fc352db955df3273fc162eb638daed0f1
parent 792f96c9ba1f725abec1442990074fe4c3589740
author hellohyh001 <huiyuehong@huawei.com> 1724926795 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724926795 +0000

1

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
KTxQtree 11754e1435547dbf419b5973b18e1dd8784f9e7a
parent 30e980a328039b1658108eb4054a503a0c8d52c9
parent 2108bae6d4dfff8d35235e3623694ab5740ce57a
author openharmony_ci <120357966@qq.com> 1724926228 +0000
committer Gitee <noreply@gitee.com> 1724926228 +0000

!1354 增加NODE_FOCUS_STATUS说明
Merge pull request !1354 from 潜秋宏/0828SDKWi8x%tree 77bdde3ce0bef2f6a803310ce930522e2d132be3
parent 7b7d0d4d7dae053e2425437a9450af85821e2c22
author houpengtao <houpengtao@huawei.com> 1722049209 +0800
committer houpengtao <houpengtao@huawei.com> 1724925076 +0800

add record provider c api

Signed-off-by: houpengtao <houpengtao@huawei.com>
]xLtree cf8570a352218128191e8f08fb825417add4a32d
parent 3af4f195062fb7113a5301709a1bdc933613eb30
parent 734d08aa187014c3e0bfe288b5c6b3153c9acdbc
author openharmony_ci <120357966@qq.com> 1724922136 +0000
committer Gitee <noreply@gitee.com> 1724922136 +0000

!1053 System shortcut key capi interface
Merge pull request !1053 from HYH/ollbxtree 443d849d88512aabaa6046cb943e973aba793afb
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author houpengtao <houpengtao@huawei.com> 1721707709 +0800
committer houpengtao <houpengtao@huawei.com> 1724918757 +0800

add paste board ndk

Signed-off-by: houpengtao <houpengtao@huawei.com>
[xMtree 49b14c7facaa1c4eec9332c45c837a339b91dddc
parent 8b91b33708aabbad3f20d520352367d4afa022fd
parent f677ac3fdb8a0735a81ba7ecb9b0ac703349c1b9
author openharmony_ci <120357966@qq.com> 1724918738 +0000
committer Gitee <noreply@gitee.com> 1724918738 +0000

!1259 audio 蓝黄一致性修改
Merge pull request !1259 from zhangkai/masterm6xtree 26cc4b8be87fd3f38fe26de743aba1fd3428673c
parent fe0775e62bef439a95a68c1e411bb6a2818a3695
author hellohyh001 <huiyuehong@huawei.com> 1724915947 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724915947 +0000

1

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
\Txftree 1d9aeb0bc8ba0daeaed2ba631b7565d4519f3dba
parent 3565968e777fc37049ec5e303a8768a3017e869c
author hellohyh001 <huiyuehong@huawei.com> 1724913279 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724913279 +0000

System shortcut key capi interface

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Iaf5a3935b13ef855b180317305f0ead886fe0f04
BoxStree 27238048f95fa0e3c01388d319af67b976b15cc5
parent 3565968e777fc37049ec5e303a8768a3017e869c
parent 3f996162ed88f5eab39b67375e7708a9268bc2aa
author openharmony_ci <120357966@qq.com> 1724912974 +0000
committer Gitee <noreply@gitee.com> 1724912974 +0000

!1339 NODE_SCROLL_PAGE注释修改
Merge pull request !1339 from honzx/0827scrollpageIhx<tree 6a0025b5e0ed786ea28cb6edb4848230ca2eddb6
parent 828baf3e59b4642927a8d3c6a99128294fa94175
parent f394d6a7e6bb3b42c5747efd9fd79cd9ed614b17
author openharmony_ci <120357966@qq.com> 1724908659 +0000
committer Gitee <noreply@gitee.com> 1724908659 +0000

!1155 Add Interface  Capi
Merge pull request !1155 from HYH/yzj]xtree 0105317d1b4c12fc1107cdab2270fcf304debaa1
parent e31d520487ec9e5e0a77f039ee4609a6f6f5d950
author dujingcheng <dujingcheng@huawei.com> 1724829766 +0000
committer dujingcheng <dujingcheng@huawei.com> 1724898817 +0000

fxi

Signed-off-by: dujingcheng <dujingcheng@huawei.com>
=Wҝx}tree 8a4b3a8d8ceaac8d0bb70216f7b24255e59bedc2
parent 9b6cbbc5145e9c21a98a73b994b93b99055c193a
author lixiangpeng5 <lixiangpeng5@huawei.com> 1724858447 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1724858686 +0000

add capi for linear acc and game rotation vector

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: Ida167a634827cb5259a674d2ee83a653a05fc202
}xxMtree 4b1519944a3856ebdc20c9229e1099ae4b8f4ef4
parent ceb42f0b47732835b1459ce4c5c4973004619cfa
author sunbees <sunqinjia@huawei.com> 1724846266 +0800
committer sunbees <sunqinjia@huawei.com> 1724846266 +0800

fix xcomponent ndk macro

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: If365f3419dd8fba2a58816e8926886dec6128f09
 fx'tree bfd7054b40f8615a62d05a770fb67ad2f714d73a
parent 828baf3e59b4642927a8d3c6a99128294fa94175
author hellohyh001 <huiyuehong@huawei.com> 1724846094 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1724846094 +0000

add device listener capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
h\/xFtree fad858feed7cb6fe641d3f41cfd5082336afc155
parent 59c48ff30590d693ed93e346aaa07e293129af49
parent 2380cabae586d5b0fdafe9764cc50831ebeafa2d
author openharmony_ci <120357966@qq.com> 1724842953 +0000
committer Gitee <noreply@gitee.com> 1724842953 +0000

!1344 ndk 接口语法整改
Merge pull request !1344 from yzj688/masteri3xatree acba86a0f4c4c87fcd127ef112e95e712fc022c2
parent 9219a0ba4ed3fff7e5d39372fe69b2e36145f054
parent 5f40d432a121148099ea7c6127e1c5fc0894e5d5
author openharmony_ci <120357966@qq.com> 1724842857 +0000
committer Gitee <noreply@gitee.com> 1724842857 +0000

!1348 Ability_NativeChildProcess_ErrCode整改
Merge pull request !1348 from 杨旭光/feat/version`qxRtree 702bd2e197e40c9ceaaa011539b01ff949a8a846
parent 7ca40f87d940e456d555b16243cf5abf0743a65d
parent fc0c12c16bee90db53fbaf815ee7e4ffb749846f
author openharmony_ci <120357966@qq.com> 1724834327 +0000
committer Gitee <noreply@gitee.com> 1724834327 +0000

!1345 qos.h黄蓝不同步问题修复
Merge pull request !1345 from liuyuxiu/masterc;pΟx/tree 4eed1826c855d2bdbb484289d957e7bd7d86d611
parent 7ca40f87d940e456d555b16243cf5abf0743a65d
author qianqiuhong <qianqiuhong@huawei.com> 1724833883 +0800
committer qianqiuhong <qianqiuhong@huawei.com> 1724833883 +0800

增加NODE_FOCUS_STATUS说明

Signed-off-by: qianqiuhong <qianqiuhong@huawei.com>
&dxtree 042d3ded6bd8b8f339aee56de7eaa8a7ac3fd49f
parent 7ca40f87d940e456d555b16243cf5abf0743a65d
author lihui <lihui359@huawei.com> 1724815868 +0800
committer lihui <lihui359@huawei.com> 1724828132 +0800

新增native image接口适配三方wx

Signed-off-by: lihui <lihui359@huawei.com>
abxstree 0dc8f509c5f5efe18fef358ce084337dc209b9d4
parent 7ca40f87d940e456d555b16243cf5abf0743a65d
author yangxuguang-huawei <yangxuguang3@huawei.com> 1724827100 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1724827100 +0800

fix: chenge to API13

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
Change-Id: I8a18a38402a443cb53be25babdf6121158d61a63
-u xtree 9542f9563b94baeace66df06832b97e3f549b94b
parent 7ca40f87d940e456d555b16243cf5abf0743a65d
author dujingcheng <dujingcheng@huawei.com> 1724816016 +0000
committer dujingcheng <dujingcheng@huawei.com> 1724826672 +0000

add accessi

Signed-off-by: dujingcheng <dujingcheng@huawei.com>
Zsxttree 5cf84306a89732df147f0868dbaa942e379128ef
parent 87a9c145cecd98d36c8a753afa928bfb6f7e3553
parent 4698d183a6078a59305d44af10881eb0652d7ddd
author openharmony_ci <120357966@qq.com> 1724812839 +0000
committer Gitee <noreply@gitee.com> 1724812839 +0000

!1342 解决diff工具结果名称列出现空的情况和collect_h工具增加-D命令行参数
Merge pull request !1342 from zhangwu/masterғx#tree 7122886358fe8fe4c852e49553c1d189ab95789d
parent 87a9c145cecd98d36c8a753afa928bfb6f7e3553
author liuyuxiu <liuyuxiu2@huawei.com> 1724810959 +0800
committer liuyuxiu <liuyuxiu2@huawei.com> 1724810959 +0800

qos.h yellow and blue gap bugfix

Signed-off-by: liuyuxiu <liuyuxiu2@huawei.com>
\xtree 536db9a7746c096c95d7b916af02d4d1469c8af0
parent 32c71f2a42cfd72c28223dff9d8f9b11f74a0237
author yzj688 <yuzejun1@huawei.com> 1724810583 +0800
committer yzj688 <yuzejun1@huawei.com> 1724810583 +0800

ndk 接口语法整改
Signed-off-by: yzj688 <yuzejun1@huawei.com>
1YixFtree 7a81a006df30f1bace1676586724b88445aadd3f
parent 25b4c07599af01f059ba0c5cb8e0f0c99c3bdb4d
parent 5724daa724fffcc53079d28113039f92ebb314e4
author openharmony_ci <120357966@qq.com> 1724766479 +0000
committer Gitee <noreply@gitee.com> 1724766479 +0000

!1318 fix:inputmethod doc
Merge pull request !1318 from 吴成文/masterWePxGtree fa7217a265a2cd01a4559dacfcf165c6f8be6431
parent 9e7e612c9b5b2ede9dcc62c6e4b0a0c6da1f8e8e
parent 32c71f2a42cfd72c28223dff9d8f9b11f74a0237
author openharmony_ci <120357966@qq.com> 1724765386 +0000
committer Gitee <noreply@gitee.com> 1724765386 +0000

!1329 Drawing ndk语法整改
Merge pull request !1329 from yzj688/mastergĒxtree 6f99c5e7f94af8992a87e7b5394e9f79e34f72f5
parent 9e7e612c9b5b2ede9dcc62c6e4b0a0c6da1f8e8e
author liushang <liushang2@huawei.com> 1724760345 +0800
committer liushang <liushang2@huawei.com> 1724760345 +0800

change to api13

Signed-off-by: liushang <liushang2@huawei.com>
RVcx_tree 0071be221738b222dc7799d44d91ee6a969156ac
parent 6fed3dcd1230aac818a65193007acddf21fbe584
parent 1dc338a3650405e5633e48bdde66283ee8af1853
author openharmony_ci <120357966@qq.com> 1724757708 +0000
committer Gitee <noreply@gitee.com> 1724757708 +0000

!1308 更新StartNativeChildProcess版本号
Merge pull request !1308 from 杨旭光/feat/version9sZxStree 8d8e6a73776182854f8d3ec9bd457a6e61a38d63
parent ed96b060c04feb53804b139cad64b82e55fdfec8
parent cf0c7a7fa52a63e57748ddbc86e2c54053c04d98
author openharmony_ci <120357966@qq.com> 1724754363 +0000
committer Gitee <noreply@gitee.com> 1724754363 +0000

!1337 窗口stdbool头文件整改
Merge pull request !1337 from zhouchengchao/master^oXx]tree eb8ea85aa5b038d5979b611918490d4f1edfd8db
parent 3e9e64989c1abfd05ee534ff645897dcd469f022
author zhangwuf <zhangwu47@huawei.com> 1724749642 +0800
committer zhangwuf <zhangwu47@huawei.com> 1724750361 +0800

解决diff工具结果名称列出现空的情况和collect_h工具增加-D命令行参数

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
bXxUtree 98053392bc89aa925381d45766d6586d813ba0ec
parent a958a952a5190374e0d84e50d276967a65a56f9c
author hongzexuan <hongzexuan@huawei.com> 1724747666 +0800
committer hongzexuan <hongzexuan@huawei.com> 1724747666 +0800

fix node_scroll_page

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: Icdb22041fb367ab22c9dba486bd2c051b6d6c6dc
NkxZtree 006748f7c94a05e797189df48e50084c3da9bbb4
parent dbace29cd5c265a1a53724fba603dc1631b428a6
author yangxuguang-huawei <yangxuguang3@huawei.com> 1724566901 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1724745568 +0800

feat: update version for StartNativeChildProcess

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
T6rpx]tree 2701e08973c89d5dca32c1fda5c0f66a25006539
parent e100b89d403a9ab92633d1ae3079e0f77d2fc86b
parent 41827cae5d202c5d714832d11b0a2e5d20568cce
author openharmony_ci <120357966@qq.com> 1724743064 +0000
committer Gitee <noreply@gitee.com> 1724743064 +0000

!1301 image_kit 多图和gif编码修改为api13
Merge pull request !1301 from fandongyu/mastersrXxHtree b9ffb2715a3cd65c2fb87499316361ea88818e2f
parent 3e9e64989c1abfd05ee534ff645897dcd469f022
parent 7f762a42c187622817d406d88b899280cb6e070a
author openharmony_ci <120357966@qq.com> 1724729768 +0000
committer Gitee <noreply@gitee.com> 1724729768 +0000

!1325 NDK接口语法整改
Merge pull request !1325 from 崔瑞斌/master`'jx3tree 41754803cc693e0d0fb0fed8bb17c6a133684554
parent 3e9e64989c1abfd05ee534ff645897dcd469f022
author zhouchengchao <zhouchengchao4@huawei.com> 1724729087 +0800
committer zhouchengchao <zhouchengchao4@huawei.com> 1724729087 +0800

fix bool lib issue

Signed-off-by: zhouchengchao <zhouchengchao4@huawei.com>
JbɔxDtree bb87243bd37f108e92bb249bfdfc6be0b65befff
parent a7a2274fca46a75ff36803d50c5f166ee6e32b3a
parent 437c5e2cd3551eed792460baaa54a814b9655bb4
author openharmony_ci <120357966@qq.com> 1724679222 +0000
committer Gitee <noreply@gitee.com> 1724679222 +0000

!1320 短时任务C API
Merge pull request !1320 from lipengfei/masterN-f4xGtree 3427a6d859cc6a66686b8d259804d01b304daff0
parent 87e89bea226fd33a99cac7c9dc2ce77deee58886
parent f242e47a916666b00a5d20432cad402b4a76b9f4
author openharmony_ci <120357966@qq.com> 1724672146 +0000
committer Gitee <noreply@gitee.com> 1724672146 +0000

!1317 DrawRecordCmd名称修改
Merge pull request !1317 from 刘伟/0826+8gxStree 2bca2d60b1b2568e8b0bcae6a41f550d5db0a948
parent 20062d049e7dfbc9d8ce9335cdbc21a9f5edca80
parent c0df27b819bb82553e6d8cde90143c9a05169278
author openharmony_ci <120357966@qq.com> 1724672113 +0000
committer Gitee <noreply@gitee.com> 1724672113 +0000

!1311 修改click_distance_number到97
Merge pull request !1311 from 郑齐熠/mastermx]tree aa7e2a75942b7370084edb68e18ecf3b1164b8ee
parent ce505a5ba24b3ff3c756c279d434d43b39f19433
parent 4ecb0fea4e9c8db049c4362abbfddc80241eb5d8
author openharmony_ci <120357966@qq.com> 1724667899 +0000
committer Gitee <noreply@gitee.com> 1724667899 +0000

!1331 native_displaySoloist的NDK语法整改
Merge pull request !1331 from Klein-CK/sdk_c_0826p?xtree a7fc1381b84d016bacf52143015fdb3cc82509d0
parent 75d048e403558805069582021984c7f744b44b32
author lipengfei <lipengfei53@huawei.com> 1724664703 +0800
committer lipengfei <lipengfei53@huawei.com> 1724664703 +0800

code check

Signed-off-by: lipengfei <lipengfei53@huawei.com>
@Txtree 971e6ef7e5464a5efa821f868f8f741f58b94633
parent 8db067f471917ef1c9e1e6eb864e523a6d9ab7bd
author lipengfei <lipengfei53@huawei.com> 1724664308 +0800
committer lipengfei <lipengfei53@huawei.com> 1724664381 +0800

/** @} */  修改

Signed-off-by: lipengfei <lipengfei53@huawei.com>
Yxtree 170e2b02af47376f2947ec0eb8fcd8f3f22660ff
parent f740f3778188a1c1338ea974edc0407a24a9b076
author lipengfei <lipengfei53@huawei.com> 1724663138 +0800
committer lipengfei <lipengfei53@huawei.com> 1724663138 +0800

codex

Signed-off-by: lipengfei <lipengfei53@huawei.com>
Twxtree f4c861e54ac6569a065e25903dce878205e96fc7
parent 2120d667bb115bece318ef2fa67569dc8b851dad
author lipengfei <lipengfei53@huawei.com> 1724660398 +0800
committer lipengfei <lipengfei53@huawei.com> 1724660398 +0800

bugfix

Signed-off-by: lipengfei <lipengfei53@huawei.com>
U^x[tree 63e7efd002a938633aa0e2ed274c5c9ff2f0bc55
parent dbace29cd5c265a1a53724fba603dc1631b428a6
author Klein-CK <chenke76@huawei.com> 1724660113 +0800
committer Klein-CK <chenke76@huawei.com> 1724660113 +0800

Addstdbool.h for native_displaySoloist

Signed-off-by: Klein-CK <chenke76@huawei.com>
Change-Id: I058e11b863edb6272e011b5dd102240377d41a77
iGxtree c6263a9e49b8e3652be6ab2fa0446e5a9c8fdc51
parent 129f6b85166b22b2bb43a9356cd3bb192ffe71b4
author yzj688 <yuzejun1@huawei.com> 1724659299 +0800
committer yzj688 <yuzejun1@huawei.com> 1724659299 +0800

Drawing ndk语法整改
Signed-off-by: yzj688 <yuzejun1@huawei.com>
hXxWtree f936ffa52f058d5e40081229a24479c069efd589
parent 129f6b85166b22b2bb43a9356cd3bb192ffe71b4
parent b4ffec97fafec7e16c7689cc3282fe5525ec98c3
author openharmony_ci <120357966@qq.com> 1724658673 +0000
committer Gitee <noreply@gitee.com> 1724658673 +0000

!1307 avcodec接口注释添加已有错误码
Merge pull request !1307 from rchdlee/08244s!xtree 6b82343c27584ce1ebbd65813829bfd2834e387f
parent 129f6b85166b22b2bb43a9356cd3bb192ffe71b4
author cuiruibin <cuiruibin3@huawei.com> 1724656883 +0800
committer cuiruibin <cuiruibin3@huawei.com> 1724656883 +0800

NDK接口语法整改
Signed-off-by: cuiruibin <cuiruibin3@huawei.com>
``7xtree d0376266a7f9026643c6f279a9ce546a3ca841a0
parent 129f6b85166b22b2bb43a9356cd3bb192ffe71b4
author jinmingru <jinmingru1@huawei.com> 1724656206 +0800
committer jinmingru <jinmingru1@huawei.com> 1724656266 +0800

jinmingru1@huawei.com

Signed-off-by: jinmingru <jinmingru1@huawei.com>
AZwxKtree 3f162d225c8fe8fa9b86c34d3458ee093046ebca
parent 1c5cb7eda29c171a42a36fc95982cd4d09c59058
parent 36f0dbc0abccbd90d1d1b5eb44d52c9609bbcaa0
author openharmony_ci <120357966@qq.com> 1724646900 +0000
committer Gitee <noreply@gitee.com> 1724646900 +0000

!1191 C编译问题修复
Merge pull request !1191 from 姚星宇/0814_BugFix1m:xEtree fc6289df267bbe77c7dd69e9f2d35d04d434ff65
parent 17a714312a7e2fab82db862b4f686809085612b0
parent 8843a5ccf4c49d546078eeedc7f56bcb233914cc
author openharmony_ci <120357966@qq.com> 1724644565 +0000
committer Gitee <noreply@gitee.com> 1724644565 +0000

!1272 nnrt capi整改
Merge pull request !1272 from wangchuanxia/masterdDx?tree 97d074bfdb01891bbf824f10cb32a9b9dc0970ca
parent a00beaf165013d038a6d5ec7603258896478e3d2
parent 8adeb5fb9dfc7b296b91791289523b71bf689429
author openharmony_ci <120357966@qq.com> 1724643766 +0000
committer Gitee <noreply@gitee.com> 1724643766 +0000

!1304 添加kit标签
Merge pull request !1304 from ancimoon/xwebcwx`tree 94710f387f0551423a9e360f9a78e42845b2c1ac
parent 77b7a556309495c746c8b5ecdd2a12228e31ee2d
parent 13a5b5385ab94657ebe4a73c99e1013e6bacd6c5
author openharmony_ci <120357966@qq.com> 1724639426 +0000
committer Gitee <noreply@gitee.com> 1724639426 +0000

!1257 【轻量级 PR】：依赖头文件误删还原
Merge pull request !1257 from 罗博明/N/A{h|Nx"tree eee20772520d79a22dfcf2bac2d7bdb5d930a254
parent 77b7a556309495c746c8b5ecdd2a12228e31ee2d
author wuchengwen <wuchengwen4@huawei.com> 1724637036 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724637036 +0800

fix:inputmethod doc

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
=P]'xStree 075f4b80e0f38c466b22fcd673b4db9e8e9d874c
parent 3fec228e5bd8f64dcf3a0ebf5c2432940b542e27
author lvshiqi <liuwei793@h-partners.com> 1724636694 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724636694 +0800

修改函数名称

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: I99a3aff7712ba3f49d8e6f9b2ba6070602cf2c9b
SoTx]tree 6f54c8be03f33e22c089866be7ef4d4cfce3b0d8
parent a536cfccb3fbefe15b810b47ad778f99c1a83dfa
parent 51c6c12161cff3ffe5422531cd478da7dbb5473e
author openharmony_ci <120357966@qq.com> 1724589134 +0000
committer Gitee <noreply@gitee.com> 1724589134 +0000

!1309 添加设置默认发声设备
Merge pull request !1309 from libliang/setDefaultDevice-00avxtree ce48f430628227e32fb5a150efbaf990dac7a461
parent 3230d951c99d39f4222aa61f48108417bbcf0ce3
author rchdlee <liyidong1@huawei.com> 1724586064 +0800
committer rchdlee <liyidong1@huawei.com> 1724586064 +0800

删除多余空行

Signed-off-by: rchdlee <liyidong1@huawei.com>
[7xtree 59093398dced6889b22d6713e80ce6cc4063a3df
parent 988ca0ee0b2d786dd60661eafd3d384f4ca02b10
author rchdlee <liyidong1@huawei.com> 1724585986 +0800
committer rchdlee <liyidong1@huawei.com> 1724585986 +0800

补充错误码描述

Signed-off-by: rchdlee <liyidong1@huawei.com>
J]xtree 82167e0a0f120658b7f4800ce287a7e3b4193269
parent 50befa01c3ce4697d6d1dccff6c85b5eba654a5d
author libliang <libliang@163.com> 1724583679 +0800
committer libliang <libliang@163.com> 1724583679 +0800

fix ohaudio.ndk error

Signed-off-by: libliang <libliang@163.com>
QixOtree a0572017a635bb22d198cd1313b718fa16a0dea9
parent dbace29cd5c265a1a53724fba603dc1631b428a6
parent dbd2d0d1a35db10d547f1c202e001bc2bd779029
author openharmony_ci <120357966@qq.com> 1724578512 +0000
committer Gitee <noreply@gitee.com> 1724578512 +0000

!1302 旋转需求ndk接口d.ts
Merge pull request !1302 from zhaoyuanchun/masterkxtree 46b3f2e2ebb1118b1aa3b0cd55e486e78b507b1f
parent e227882adefce018a63036b2310a77e212bce992
author libliang <libliang@163.com> 1724575983 +0800
committer libliang <libliang@163.com> 1724575983 +0800

fix the # error

Signed-off-by: libliang <libliang@163.com>
Nzxtree 7f7733525224d6273e539d6206be1395bb61d8dc
parent e0c4ca0d39996ce903ce29db82d9a010ad6f9811
author libliang <libliang@163.com> 1724574428 +0800
committer libliang <libliang@163.com> 1724574428 +0800

add the ohaudio.ndk.json

Signed-off-by: libliang <libliang@163.com>
Qx'tree 379744527234ab91ac3c4b6c0df43f4271d4f45a
parent dbace29cd5c265a1a53724fba603dc1631b428a6
author zhengqiyi <zhengqiyi2@huawei.com> 1724573112 +0000
committer zhengqiyi <zhengqiyi2@huawei.com> 1724573112 +0000

fix node click distance number

Signed-off-by: zhengqiyi <zhengqiyi2@huawei.com>
LQ]x
tree 83a48a5680d489eb2097ccf74443b7571d17f465
parent 9688bb61924b7da4a7dd5ba5efd309123b8b0641
author libliang <libliang@163.com> 1724567334 +0800
committer libliang <libliang@163.com> 1724567334 +0800

add releated header

Signed-off-by: libliang <libliang@163.com>
mOOxtree 9ffb53f9b68be505c85190ce7e8ecdb041f57c2a
parent dbace29cd5c265a1a53724fba603dc1631b428a6
author libliang <libliang@163.com> 1724565110 +0800
committer libliang <libliang@163.com> 1724565110 +0800

first checin in setDefaultDevice

Signed-off-by: libliang <libliang@163.com>
E
Vxqtree 84b473f6565a010c9f6176ede0a7e87df3b6137a
parent def6144cc54ed266c04121d1fa48f1456499f3e2
parent 74d57c8ac26943306a586c2c4a32f8785d75ea89
author openharmony_ci <120357966@qq.com> 1724555832 +0000
committer Gitee <noreply@gitee.com> 1724555832 +0000

!1303 【CES】新增公共事件常量定义
Merge pull request !1303 from wangsen1994/developer_ces_constant_0824|]xtree fd7965f5ff7347549af8ffec4495411558de272a
parent 492203ace110ea25f6406832185c5c019408bae8
author wangsen1994 <wangsen51@huawei.com> 1724498975 +0800
committer wangsen1994 <wangsen51@huawei.com> 1724547960 +0800

新增事件常量

Signed-off-by: wangsen1994 <wangsen51@huawei.com>
]x.tree bdf104460a05bb4de90419477cf8fbc3c3c68294
parent def6144cc54ed266c04121d1fa48f1456499f3e2
author rchdlee <liyidong1@huawei.com> 1724514070 +0800
committer rchdlee <liyidong1@huawei.com> 1724514070 +0800

avcodec接口注释增加已有错误码描述

Signed-off-by: rchdlee <liyidong1@huawei.com>
l̓xCtree 4565a534204b5aaa857610b5cb8b6c5491cc8d50
parent 492203ace110ea25f6406832185c5c019408bae8
parent 3fec228e5bd8f64dcf3a0ebf5c2432940b542e27
author openharmony_ci <120357966@qq.com> 1724507271 +0000
committer Gitee <noreply@gitee.com> 1724507271 +0000

!1269 异步绘制ndk接口
Merge pull request !1269 from 刘伟/0822\fxBtree ee70b6c5beee9413bcd8e34c3e5f913b488ce483
parent 3b3dd411fa80551274e1c054eb836fcbda3d2f37
author huchang <huchang4@huawei.com> 1724500982 +0800
committer huchang <huchang4@huawei.com> 1724500982 +0800

add audiokit tag

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I0196d57bc6cfa16b7dbb620efbcf1c1043fa761c
acAxtree 413d2b90a9e26410ab57e8624bdf45d2a31c6359
parent f219eeb5eb5bf639a1d1e93bc7f6367d9cd05f99
author z30049243 <zhaoyuanchun@huawei.com> 1724497176 +0800
committer z30049243 <zhaoyuanchun@huawei.com> 1724497176 +0800

修改注释

Signed-off-by: z30049243 <zhaoyuanchun@huawei.com>
TYx!tree 8edee4eeaa0bd9227e8bf420cfba450e6de03dcc
parent 3d08f60fb14baa1be20a921009dc19488ac49efd
author z30049243 <zhaoyuanchun@huawei.com> 1724496992 +0800
committer z30049243 <zhaoyuanchun@huawei.com> 1724496992 +0800

修改正确注释

Signed-off-by: z30049243 <zhaoyuanchun@huawei.com>
g_xtree f97bec4ce0c4e5dd15ab0e1d1ae175dcd7ebffb1
parent b5612fd35a16c115cadd92a4632a2d989e3a86fd
author z30049243 <zhaoyuanchun@huawei.com> 1724495872 +0800
committer z30049243 <zhaoyuanchun@huawei.com> 1724495872 +0800

修改错误码

Signed-off-by: z30049243 <zhaoyuanchun@huawei.com>
w]x"tree 42d8d1d970a64f95cdcf417f8c72fc1309775dd4
parent 492203ace110ea25f6406832185c5c019408bae8
author z30049243 <zhaoyuanchun@huawei.com> 1724492736 +0800
committer z30049243 <zhaoyuanchun@huawei.com> 1724492736 +0800

旋转需求的d.ts

Signed-off-by: z30049243 <zhaoyuanchun@huawei.com>
h\xWtree 58bbf8d6c0a71e8906fbbcdd002bcd3f37febd96
parent 3e2b0d2b8db36b6a22512f4fa595337f9b130398
author fandongyu <fandongyu.30044153@huawei.com> 1724489181 +0800
committer fandongyu <fandongyu.30044153@huawei.com> 1724489181 +0800

Signed-off-by:fandongyu<fandongyu.30044153@huawei.com>

Signed-off-by: fandongyu <fandongyu.30044153@huawei.com>
wk xatree 822920e7342d4c1c91099886744be88c0b66d07b
parent 3e2b0d2b8db36b6a22512f4fa595337f9b130398
parent 05b7ac0b38dbd812e4973f0ebc7fbbcf03055ec5
author openharmony_ci <120357966@qq.com> 1724489169 +0000
committer Gitee <noreply@gitee.com> 1724489169 +0000

!1247 【CES】新增CES ndk接口
Merge pull request !1247 from wangsen1994/developer_ces_ndk_0820PoxLtree 3d62d3cb3e5b5b70ee5d1ece7fca9f0b991bb120
parent c0f93a69fd1d8e145e97da440c74497808cbf938
parent d5b94cdfbb8200cc09e9afb91e83f06433e54251
author openharmony_ci <120357966@qq.com> 1724486003 +0000
committer Gitee <noreply@gitee.com> 1724486003 +0000

!1276 新增hdi error code
Merge pull request !1276 from sqwlly/hdi_error_codegxtree 6adb22399e54972a00dab887615b38ced4672e9e
parent 676b34f03616372418a723e6f2706e01ee872004
author wangsen1994 <wangsen51@huawei.com> 1724143823 +0800
committer wangsen1994 <wangsen51@huawei.com> 1724485199 +0800

新增cse ndk接口

Signed-off-by: wangsen1994 <wangsen51@huawei.com>
Z^xNtree 0a59707dd5fadd6ffc986556cdc29d7ccdd217d9
parent a958a952a5190374e0d84e50d276967a65a56f9c
parent 31bcfffd6992b937412235fd75da9625df930a1c
author openharmony_ci <120357966@qq.com> 1724482603 +0000
committer Gitee <noreply@gitee.com> 1724482603 +0000

!1299 fix:inputmethod capi review
Merge pull request !1299 from 吴成文/masterhBx$tree 87ff2513dccb063457ea41ea0c6e671c287c202d
parent 6ccf3534fe7862032880bef1dbf505820e9206fa
author zhangkai <zhangkai269@huawei.com> 1724228628 +0800
committer zhangkai <zhangkai269@huawei.com> 1724469898 +0800

audio 蓝黄一致性修改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
0ebx'tree 0a59707dd5fadd6ffc986556cdc29d7ccdd217d9
parent a958a952a5190374e0d84e50d276967a65a56f9c
author 吴成文 <wuchengwen4@huawei.com> 1724469411 +0800
committer 吴成文 <wuchengwen4@huawei.com> 1724469411 +0800

fix:inputmethod capi review

Signed-off-by: 吴成文 <wuchengwen4@huawei.com>
0exQtree 6de935602056ba314ed0a02bb63dc5882020aba3
parent 5f76d425a66605cc3d734d0babf11f306a7181eb
parent 8161f191b53d00a6cb1a3f62b64246f8e47c9d57
author openharmony_ci <120357966@qq.com> 1724427043 +0000
committer Gitee <noreply@gitee.com> 1724427043 +0000

!1245 dlp权限管理新增ndk接口
Merge pull request !1245 from 王永忠/mastercp>xJtree fb7f19118879dc4274ff79c1fb326672a78e1ea4
parent 72913ccd671ed553c6a19f75ffaecd4436088124
parent 63bee649afae3d3e73dda72ecea666d10b5a419a
author openharmony_ci <120357966@qq.com> 1724417187 +0000
committer Gitee <noreply@gitee.com> 1724417187 +0000

!1278 网络管理NDK语法整改
Merge pull request !1278 from GuoLi/masterrl'xNtree c32c9a8152d206f9fbddb8a30cfe74d9f2da8cf3
parent d42d96e37952727d0752c98e06571e944568e3b2
parent 3b3dd411fa80551274e1c054eb836fcbda3d2f37
author openharmony_ci <120357966@qq.com> 1724414816 +0000
committer Gitee <noreply@gitee.com> 1724414816 +0000

!1223 适配三方web所需NDK接口
Merge pull request !1223 from ancimoon/xwebԽl3xFtree ec2111ae4e774251d5a02966885781f1a7b6f2e6
parent c4b75cb62df93e0a069be9850a7a19d9913b7845
parent 63dcb9b28443f6eeb62bba10164d29638c7e2fbc
author oh_ci <maguangsheng1@huawei.com> 1724414539 +0000
committer Gitee <noreply@gitee.com> 1724414539 +0000

!1258 add inputmethod capi
Merge pull request !1258 from 吴成文/master[exmtree f715cd8557e13c1e395f01cc7bd676b8fbe9e6df
parent f4d4b0d45300a83fe0558f8401978a12b3711c06
parent fd5f3f4d87245e01e519d69f0aaf636a0651492c
author openharmony_ci <120357966@qq.com> 1724411646 +0000
committer Gitee <noreply@gitee.com> 1724411646 +0000

!1246 netmanager_base增加应用级代理的部分NDK接口
Merge pull request !1246 from Tiga Ultraman/wechatGM{xPtree 20228dbe925a370a0698471adc0a3d484f45f4f0
parent e5f8abddb969ad7d538fd8343f230115b161f3d5
parent 2c2a357447fdf36d36e5297efcd2530176c4929d
author openharmony_ci <120357966@qq.com> 1724410092 +0000
committer Gitee <noreply@gitee.com> 1724410092 +0000

!1284 NDK对外接口规格补充
Merge pull request !1284 from 马靖涛/202408211n"xMtree 72e66b67813fb8ee8bf286b1f0d06f29008a3c45
parent dd1fc7067679160be5ab092048ec9904c441ee7b
author lvshiqi <liuwei793@h-partners.com> 1724406581 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724406581 +0800

修改finish

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: Ibdf2359a163c704ae96148acabf5df297b654ec0
h3xVtree 874ab79ace62cc081f5a8db859a92fbd6cb298c7
parent 078026f856e945bc8374633b7f08ec142cdf4a4b
parent e40e09ae5cb1cba3d05df2af4ebf7c3cab709b3f
author openharmony_ci <120357966@qq.com> 1724405728 +0000
committer Gitee <noreply@gitee.com> 1724405728 +0000

!1209 添加CookieManager Ndk 接口
Merge pull request !1209 from gaojianhao1/CookieNdkȂm"xGtree 6e4967941fe53da2158149046ea791d4f6e25f9f
parent 50e5553639cb46f56817cbc01b1a24b403c7e3c5
author 刘伟 <liuwei793@h-partners.com> 1724403984 +0000
committer lvshiqi <liuwei793@h-partners.com> 1724405221 +0800

update graphic/graphic_2d/native_drawing/drawing_error_code.h.

Signed-off-by: 刘伟 <liuwei793@h-partners.com>1kؙxItree 3308bbe5af798d7b1fa67a178a4f10a4024e9372
parent 917cc44c053ae3b59d16d77697177dfb80e33cc9
author lvshiqi <liuwei793@h-partners.com> 1724405119 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724405119 +0800

添加gn

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: I0a068f9ec406df08998fef17ac231d4d79a5d477
)fxGtree d7a179dca6baa75fce5868d738217514bc895231
parent 3f5a332c9c8bce6013013f459891f8df1d6763ce
author lvshiqi <liuwei793@h-partners.com> 1724400158 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724400158 +0800

修改

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: Idf8de3345ae13597b810555f83ba67866db642f6
>exPtree 2b540887e3b894738dee8640ab3d8eedf5f54802
parent ffaa24c4389795e0d366af055c1a764ea13cbf27
author lvshiqi <liuwei793@h-partners.com> 1724399202 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724399202 +0800

修改codecheck

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: I91f4fb46c1d182d34d81d51b2914d58ee58b51b3
i'xtree b2c1c4f62a158e541f2fd275b5301a5a65913953
parent 096cf0eecdccca62dc2357fa6ebaa4b64c1e7186
author wuchengwen <wuchengwen4@huawei.com> 1724395511 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724395511 +0800

max length is 8k

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
^[ixptree 6fc92a4747eb584e3597d4c8782bc29d6f9bd195
parent ceb42f0b47732835b1459ce4c5c4973004619cfa
parent a0938cca44ce993675f04148136fc60cb4857c8f
author openharmony_ci <120357966@qq.com> 1724395108 +0000
committer Gitee <noreply@gitee.com> 1724395108 +0000

!1286 resourceschedule/ffrt/ffrt.ndk.json中ffrt_queue_attr_get_max_concurrency接口拼写问题
Merge pull request !1286 from zhuguoyang/masterц5xtree d65adbaa7485c5c4d7b9b712d4fab6dcb9a0b4d0
parent 948450b4d79258284d9888b1b7f5605f36d4b716
author wuchengwen <wuchengwen4@huawei.com> 1724384598 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724394531 +0800

add }

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
W0xPtree 50946f3fdd700a8a7a71982d20acd806025a8aaa
parent b8a9d15a7a891e0ea549c69e0b679d1c51e22e2a
author lvshiqi <liuwei793@h-partners.com> 1724393655 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724393655 +0800

添加errorcode

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: If29b52399e8a8cff713409261f6dcaef85d09655
Sijxtree 6fc92a4747eb584e3597d4c8782bc29d6f9bd195
parent ceb42f0b47732835b1459ce4c5c4973004619cfa
author zhuguoyang <zhuguoyang@h-partners.com> 1724381066 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1724381066 +0800

attr

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
"[xVtree 94542ca98c2a13f87720a32171a2ee4e5e0fe7e9
parent 0fa17cacdfc2834eb24129a97f03219cb26efd6c
author lvshiqi <liuwei793@h-partners.com> 1724380844 +0800
committer lvshiqi <liuwei793@h-partners.com> 1724380844 +0800

异步绘制ndk接口

Signed-off-by: lvshiqi <liuwei793@h-partners.com>
Change-Id: I454ccb8857b31df951d20579c6ca869d8e5f5fcc
$ox>tree 2a33de1e78b0bba8efc9df2daa1fcd9d61478a4b
parent 418069f6f2ed9b410b89310f3557e3f7098f672b
parent ad1a5cd0e0d8221126db4bc7ee5f0cf1b7664e7e
author 吴成文 <wuchengwen4@huawei.com> 1724380137 +0000
committer Gitee <noreply@gitee.com> 1724380137 +0000

!5 modify codecheck
Merge pull request !5 from 赵凌岚/masterphx&tree a0bfb27ad013f14de5a277ae311273336b216de2
parent 7bf324b641dbaebacbf75f7694fa9a8ac54ab502
author zhaolinglan <zhaolinglan1@huawei.com> 1724379693 +0800
committer zhaolinglan <zhaolinglan1@huawei.com> 1724379693 +0800

modify annotation

Signed-off-by: zhaolinglan <zhaolinglan1@huawei.com>
(|_+xUtree 0e197fdc6632f467d384db4f5e5a04086c90eb27
parent 1782b302f951c9631edcfdfa8d51d8c40d64a0d6
author m00472246 <majingtao1@huawei.com> 1724330566 +0800
committer m00472246 <majingtao1@huawei.com> 1724377731 +0800

NDK对外接口规格补充 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
6ox6tree b6008edda009a46126dbc7570ae8e4e730d05034
parent 01df84bae741e4a6aac25196b042c2e74cc84411
author wuchengwen <wuchengwen4@huawei.com> 1724335655 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724376869 +0800

change new to create, delete to destory

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
cRxWtree 5b4ced45496d0418bfab1e3c639510ddca0215c4
parent 0fa17cacdfc2834eb24129a97f03219cb26efd6c
author huchang <huchang4@huawei.com> 1724039254 +0800
committer huchang <huchang4@huawei.com> 1724375418 +0800

add ndk interface of audiokit for web

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I1aead9d26d78b9db7a8c9d3856a4c4e71ed27af1
jՓxStree f2f125de4a37e36bab6917377ee6ea0a6a4a2725
parent 0fa17cacdfc2834eb24129a97f03219cb26efd6c
parent 8604f387c1e6c3d05b4532ae50df74b85eb0a350
author openharmony_ci <120357966@qq.com> 1724338585 +0000
committer Gitee <noreply@gitee.com> 1724338585 +0000

!1241 netstack添加证书相关的NDK接口
Merge pull request !1241 from sjh/wechatjpjxNtree b9dfb76e4c9c7c64436cce72e748fadccc133530
parent 2aab6028a5d3a6f6916b8a43e779174ce4de9454
parent 63f58f4df6124956a97a2f2bbd1735b3a4fe2d93
author openharmony_ci <120357966@qq.com> 1724331186 +0000
committer Gitee <noreply@gitee.com> 1724331186 +0000

!1229 添加获取gpu显存接口
Merge pull request !1229 from 于好强/masterpx4tree c78a32868148245fd9e01640ace2c7f00f468caa
parent 2912fdd66ecfd072b0a82320b097b424f3baf625
parent 7bf324b641dbaebacbf75f7694fa9a8ac54ab502
author 吴成文 <wuchengwen4@huawei.com> 1724330548 +0000
committer Gitee <noreply@gitee.com> 1724330548 +0000

!4 modify
Merge pull request !4 from 赵凌岚/master2,d1x&tree c78a32868148245fd9e01640ace2c7f00f468caa
parent eae3771388d3f2fec22a0de0c19221c28695fb88
author zhaolinglan <zhaolinglan1@huawei.com> 1724329658 +0800
committer zhaolinglan <zhaolinglan1@huawei.com> 1724329939 +0800

modify annotation

Signed-off-by: zhaolinglan <zhaolinglan1@huawei.com>
=^1x?tree c8dd5ec426ddbf615de34bc52e10e03b3f0dbe33
parent f8042909be3ffee02a5deac261b7ed57b9e6bfe2
parent eae3771388d3f2fec22a0de0c19221c28695fb88
author 吴成文 <wuchengwen4@huawei.com> 1724328740 +0000
committer Gitee <noreply@gitee.com> 1724328740 +0000

!3 modify annotation
Merge pull request !3 from 赵凌岚/masterYix&tree c8dd5ec426ddbf615de34bc52e10e03b3f0dbe33
parent f8042909be3ffee02a5deac261b7ed57b9e6bfe2
author zhaolinglan <zhaolinglan1@huawei.com> 1724328601 +0800
committer zhaolinglan <zhaolinglan1@huawei.com> 1724328601 +0800

modify annotation

Signed-off-by: zhaolinglan <zhaolinglan1@huawei.com>
 `xYtree c10ba893b2f0b660459426f65199d8db830810f7
parent 676b34f03616372418a723e6f2706e01ee872004
parent 8e0df94474aa2913b2c0748157e951625572fffd
author openharmony_ci <120357966@qq.com> 1724328414 +0000
committer Gitee <noreply@gitee.com> 1724328414 +0000

!1277 修改相机NDK接口定义
Merge pull request !1277 from kerongfeng/camera_interfaceox*tree dd9aa7148ee3119eeb7c01dba8fdd3f319f7eabf
parent 2d8e85197153e4e14112335b7c8a044e239575d3
author yuhaoqiang <yuhaoqiang@huawei.com> 1721372145 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1724324657 +0800

新增获取应用显存接口

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
j4xOtree 10fe447e5ade464a8400bf85001756ecb153628b
parent 00bb16ba1ce5c26f362d73c7d30e94d94ad72572
parent 02a1fd9b40345d88a6b452224aaae686813e5659
author openharmony_ci <120357966@qq.com> 1724323780 +0000
committer Gitee <noreply@gitee.com> 1724323780 +0000

!1274 屏幕管理增加NDK接口
Merge pull request !1274 from huangji731/master<kuxBtree a9ab10d33173841526720d6852dc4e7c5afab541
parent 2c8378bec917c229f4d96db56b73f3900b5e57d5
author wuchengwen <wuchengwen4@huawei.com> 1724319735 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724319735 +0800

add param to OH_InputMethodProxy_SendPrivateCommand

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
hNxOtree 1cd54ff5262ab2ae123f51e419cffe79e1bccb50
parent 1880a30527f1aff92a4c3955d98707adb99c4a2a
parent 148a629ae624997f74c7b1cbdd5c1c8458b1886e
author openharmony_ci <120357966@qq.com> 1724318336 +0000
committer Gitee <noreply@gitee.com> 1724318336 +0000

!1234 新增时间时区获取时区接口
Merge pull request !1234 from Gin/timeqxGtree 1f408ceec10c21f424d562f5aea75e44c4ccfe89
parent 179f41ed3d84e38b8528bf877f90bece384d9a74
author huangji731 <huangji731@huawei.com> 1724292520 +0800
committer huangji731 <huangji731@huawei.com> 1724317040 +0800

https://gitee.com/openharmony/interface_sdk_c/issues/IALLYK

Signed-off-by: huangji731 <huangji731@huawei.com>
"gxtree 45832803f4b26ce2804ffbf64255cabbc3def7a7
parent 1880a30527f1aff92a4c3955d98707adb99c4a2a
author GuoLi <guoli37@h-partners.com> 1724315172 +0800
committer GuoLi <guoli37@h-partners.com> 1724315172 +0800

网络管理NDK语法整改

Signed-off-by: GuoLi <guoli37@h-partners.com>
_xtree 7d2553e4479c212869e845400d11b0d500f78765
parent 296ae9394a30358dda62c8f12179b7df1ea802ed
author PengKejie <pengkejie@h-partners.com> 1724313474 +0800
committer PengKejie <pengkejie@h-partners.com> 1724313474 +0800

code format

Signed-off-by: PengKejie <pengkejie@h-partners.com>
,X4x_tree faf87415121683b18dbf6f390251c41cb742a97a
parent 6ba11e35159be364c833c9254ef50f3704789dd8
parent cdc796e3800dc3109eeaa81bd453c43f1360ab8b
author openharmony_ci <120357966@qq.com> 1724313076 +0000
committer Gitee <noreply@gitee.com> 1724313076 +0000

!1263 新增 GetNativeBuffer 接口
Merge pull request !1263 from 陈乔异/cqy/get-native-bufferqx:tree 8a7aa44372f7fba2e145047e11f3a870ffae5dbd
parent 42cf14538a8c0471687a0bb88f39991c2fea4b26
parent c66f0e342c58c58eeac509173680ad2cf9ce4289
author 吴成文 <wuchengwen4@huawei.com> 1724311512 +0000
committer Gitee <noreply@gitee.com> 1724311512 +0000

!1 modify c api
Merge pull request !1 from 赵凌岚/masterH ex tree 8a7aa44372f7fba2e145047e11f3a870ffae5dbd
parent 42cf14538a8c0471687a0bb88f39991c2fea4b26
author zhaolinglan <zhaolinglan1@huawei.com> 1724310646 +0800
committer zhaolinglan <zhaolinglan1@huawei.com> 1724310938 +0800

modify capi

Signed-off-by: zhaolinglan <zhaolinglan1@huawei.com>
N[חxGtree 30e8abd1c53e39d59a9b6e3b86a73a8e730ce607
parent a9cfd70213c9ce49c99ba10b48d1a526be715edc
parent 671bfe4f08838376be659a5ef3ccdad5e9b3125d
author openharmony_ci <120357966@qq.com> 1724307609 +0000
committer Gitee <noreply@gitee.com> 1724307609 +0000

!1268 NDK语法错误整改
Merge pull request !1268 from xiyupeng/master,ix>tree 7737a2630e4e52c18f1970cb355559aa1ea054e9
parent 179f41ed3d84e38b8528bf877f90bece384d9a74
parent 7cc0837d47097612055b51231f7b3ece3018a3e2
author openharmony_ci <120357966@qq.com> 1724298937 +0000
committer Gitee <noreply@gitee.com> 1724298937 +0000

!1273 NDK json修改
Merge pull request !1273 from wisdom/master_x)tree 61f98304810a6af03ddaba11cb1a4fa6ba314a09
parent 179f41ed3d84e38b8528bf877f90bece384d9a74
author kerongfeng <fengkerong@huawei.com> 1724298615 +0800
committer kerongfeng <fengkerong@huawei.com> 1724298615 +0800

modify image native parameter

Signed-off-by: kerongfeng <fengkerong@huawei.com>
_ʔx$tree 9d4311b84f41a3a04e55ae4318887d2f1ba988f4
parent b4395f4fd6076d0d28faecc202199006d7349e99
author wuchengwen <wuchengwen4@huawei.com> 1724296667 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724296667 +0800

add addgroup and file

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
\fxtree a7b7ce2d5cd3749411d8da7b8c585f4cfad7cb52
parent ccdc78f22baedcef4ac831299831433d7dcc5be6
author s00659936 <282229496@qq.com> 1724124146 +0800
committer s00659936 <282229496@qq.com> 1724295801 +0800

netstack添加证书相关的NDK接口.

Signed-off-by: SJH <282229496@qq.com>
[VZ~x8tree baf3ed56cdabd88455a8385d72a9917e345c24e3
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
author Tiga Ultraman <liaoxude@huawei.com> 1724139682 +0800
committer Tiga Ultraman <liaoxude@huawei.com> 1724295330 +0800

add interface for new proxy ndk functions

Signed-off-by: Tiga Ultraman <liaoxude@huawei.com>
c֔xttree 3bdb7db5936c6bda11feb8bfdf254c2d43c6690b
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author sqwlly <shiqiwei4@huawei.com> 1724293751 +0000
committer sqwlly <shiqiwei4@huawei.com> 1724293751 +0000

add hdi error code Signed-off-by: s30029175 <shiqiwei4@huawei.com>

Signed-off-by: sqwlly <shiqiwei4@huawei.com>
Change-Id: I658538eb487701a43b6f9694f0a1b40453af4e73
`s9x tree 5e83c1a48be6d4533ea9a966515312fc47a6a331
parent 179f41ed3d84e38b8528bf877f90bece384d9a74
author wangchuanxia <wangchuanxia@huawei.com> 1724292423 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1724292423 +0800

fix capi

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
[xtree 16efd0aeefe67498ac0cec067c2ca483d1cccc44
parent 6ccf3534fe7862032880bef1dbf505820e9206fa
author wisdom <weisihao1@huawei.com> 1724292148 +0800
committer wisdom <weisihao1@huawei.com> 1724292148 +0800

Description: Update interface JSON

Signed-off-by: wisdom <weisihao1@huawei.com>
QZx3tree aeb64157c5a2bb999d456eda2da1173b4dc0e08e
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
author wangyongzhong2 <wangyongzhong2@huawei.com> 1724135599 +0800
committer wangyongzhong2 <wangyongzhong2@huawei.com> 1724291644 +0800

add ndk for dlp

Signed-off-by: wangyongzhong2 <wangyongzhong2@huawei.com>
Wcxtree 611cb6265b455953b018008f6a3ca2c118ae5974
parent 179f41ed3d84e38b8528bf877f90bece384d9a74
author xiyupeng <xiyupeng@huawei.com> 1724289720 +0800
committer xiyupeng <xiyupeng@huawei.com> 1724289720 +0800

NDK语法错误整改

Signed-off-by: xiyupeng <xiyupeng@huawei.com>
D]xRtree 930508ae25f823890a5b100746e2580513f6a35e
parent bfef1637c6cab6a48d9391e9a0395019f7f12e76
parent a85394a74e8246c6adb47803e7924a6eafc6fa2a
author openharmony_ci <120357966@qq.com> 1724238207 +0000
committer Gitee <noreply@gitee.com> 1724238207 +0000

!1250 Added libjsvm.ndk.json omission
Merge pull request !1250 from 蒋群超/masterhxTtree 17fa200931f2a03d8c4c42ba5aa486a1a998af92
parent 6ccf3534fe7862032880bef1dbf505820e9206fa
parent 1a3042611b571b44d3986a0f2ee19763073ffb2d
author openharmony_ci <120357966@qq.com> 1724230644 +0000
committer Gitee <noreply@gitee.com> 1724230644 +0000

!1217 添加启动子进程API
Merge pull request !1217 from 杨旭光/feat/wechat-ndkox#tree 695dda9297222fcd3681cd7ebb866cb2fed8c3af
parent 6ccf3534fe7862032880bef1dbf505820e9206fa
author wuchengwen <wuchengwen4@huawei.com> 1724228603 +0800
committer wuchengwen <wuchengwen4@huawei.com> 1724229753 +0800

add inputmethod capi

Signed-off-by: wuchengwen <wuchengwen4@huawei.com>
{]xtree 03640e3647ffaf6315d22c49b4e580f3c6bac4f5
parent 6ccf3534fe7862032880bef1dbf505820e9206fa
author 罗博明 <luoboming@huawei.com> 1724228206 +0000
committer Gitee <noreply@gitee.com> 1724228206 +0000

restore h dep

Signed-off-by: 罗博明 <luoboming@huawei.com>XxKtree ef248b6aa5f0621e81cc441c69697b06314cf222
parent 0c4dfb8b3fbf42c79067427f6ced72bb65fb2aba
author yangxuguang-huawei <yangxuguang3@huawei.com> 1723965366 +0800
committer yangxuguang-huawei <yangxuguang3@huawei.com> 1724221346 +0800

feat: add StartNativeChildProcess

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
2Nmx]tree fa869d1daf0cf9a688b66ec5326cbf051c30429b
parent 1782b302f951c9631edcfdfa8d51d8c40d64a0d6
parent 27fc3296e0b488f37e3b7435c1cc063567434d8b
author openharmony_ci <120357966@qq.com> 1724207401 +0000
committer Gitee <noreply@gitee.com> 1724207401 +0000

!1244 check工具增加对非兼容性变更检测
Merge pull request !1244 from zhangwu/masterOxx/tree 6020263c13e5756fdc40e56346088d8a9c596b74
parent 1782b302f951c9631edcfdfa8d51d8c40d64a0d6
author jiang-qunchao <jiangqunchao@huawei.com> 1724203922 +0800
committer jiang-qunchao <jiangqunchao@huawei.com> 1724204114 +0800

add libjsvm.ndk.json

Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com>
`kxHtree 7953bcac65713d44165b2233353203089af34e31
parent 5246ce229b9e8d082df2e5e52cd5b1df0005468a
parent 4cd7f8b7740495692568fb77eabc73d1fa640490
author openharmony_ci <120357966@qq.com> 1724159684 +0000
committer Gitee <noreply@gitee.com> 1724159684 +0000

!1220 add ndk pixel format
Merge pull request !1220 from duanhan/yuv_10bit`ߛx[tree 0828fe9d07793a1ec6d9b1ff544012ced4979943
parent b141398145b6de219d004d5d5cc19a6a4a1cd6a0
parent a4c0044b7167ee6920e71f3a14ddf35d175b34cf
author openharmony_ci <120357966@qq.com> 1724153123 +0000
committer Gitee <noreply@gitee.com> 1724153123 +0000

!1240 ScreenCapture接口的注释错误修复
Merge pull request !1240 from zhangq444/masterGr3xNtree a6e4f78aae9a0174c2d4d9c169bc0cb925433fe6
parent 206b25726653253798435000ef465ec4633c8357
parent 729f2c98fe245c0f5a3f56003abccbd02d1c85dc
author oh_ci <maguangsheng1@huawei.com> 1724151947 +0000
committer Gitee <noreply@gitee.com> 1724151947 +0000

!1228 添加访问控制ndk接口声明
Merge pull request !1228 from zhouyan/ndk{Op$xatree af775be47916192f3d4ae14e965a71ae689b1071
parent ee622c9b15f998020fe2bfc76556d983d923b74f
parent fec33c8830fc6087beb51a46c96bbf52bdc66948
author openharmony_ci <120357966@qq.com> 1724144949 +0000
committer Gitee <noreply@gitee.com> 1724144949 +0000

!1157 Pixelmap 增加 metadata 接口
Merge pull request !1157 from 陈乔异/cqy/pixelmap-metadatarxHtree 80e4ee6f98ff6c37dffdcf736fcba2d1566c1ee5
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
parent e28cac1744404a6d6d30de8b148e9298a2272228
author openharmony_ci <120357966@qq.com> 1724138414 +0000
committer Gitee <noreply@gitee.com> 1724138414 +0000

!1242 架构平台不一致
Merge pull request !1242 from 任欣瑶/masterkmx/tree 4c8f033d686670e017721a0f6ab87b9ff0c811a4
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
author zhangwuf <zhangwu47@huawei.com> 1724135639 +0800
committer zhangwuf <zhangwu47@huawei.com> 1724135639 +0800

check工具增加对非兼容性变更检测

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
`$mix0tree 25bdc38b8785d855491ee171ce262b62927efc84
parent 3d2a06a6c334f04f33d65546ade88224e4fe2134
author li_junsong <lijunsong4@huawei.com> 1724070455 +0800
committer li_junsong <lijunsong4@huawei.com> 1724133827 +0800

新增时间时区获取时区接口

Signed-off-by: li_junsong <lijunsong4@huawei.com>
m=xtree 80e4ee6f98ff6c37dffdcf736fcba2d1566c1ee5
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
author renxinyao <renxinyao2@huawei.com> 1724125834 +0800
committer renxinyao <renxinyao2@huawei.com> 1724125834 +0800

架构平台不一致

Signed-off-by: renxinyao <renxinyao2@huawei.com>
R"caxGtree af13585a8e0847bcda7025d9533d92704a843367
parent 2c86dfe5d9db4f2685a33cc368ddc200b7341280
author zhangqiang <zhangqiang342@huawei.com> 1724122397 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1724122397 +0800

20240820  ScreenCapture接口的注释错误修复

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
oxhtree f78fba2483783edd1fe99630218322b47152733e
parent ccdc78f22baedcef4ac831299831433d7dcc5be6
parent 68def77f952d38f97142cf8734976fae4136b80b
author openharmony_ci <120357966@qq.com> 1724121848 +0000
committer Gitee <noreply@gitee.com> 1724121848 +0000

!1224 增加一个OH_NativeImage_Create作为纯消费端
Merge pull request !1224 from 马靖涛/20240819zx0tree 869828e104f282adc2049527d8aeb7375262e59e
parent 83f1b88a59d3de6aef7bd2750ed44090f8feeb9e
author gaojianhao1 <gaojianhao@huawei.com> 1723810338 +0800
committer gaojianhao1 <gaojianhao@huawei.com> 1724118846 +0800

sAdd CookieManager ndk interface.

Signed-off-by: gaojianhao1 <gaojianhao@huawei.com>
t`|x^tree c5f34d611308026cea7849df596c1ccd33e886a9
parent 3d2a06a6c334f04f33d65546ade88224e4fe2134
parent 44199282cf9da598be8207c81731ec17f5b165bb
author openharmony_ci <120357966@qq.com> 1724068744 +0000
committer Gitee <noreply@gitee.com> 1724068744 +0000

!1201 【轻量级 PR】：网络管理新增枚举
Merge pull request !1201 from NoCodeNoBB/N/AHvxvtree fae7cef27469c8b999af2786ec38bd365f3ca6eb
parent 6c81bf401d24606cb9e5093aa5a2f2cff8019ac9
author PengKejie <pengkejie@h-partners.com> 1724067259 +0800
committer PengKejie <pengkejie@h-partners.com> 1724067259 +0800

新增接口OH_Drawing_TypographyGetLongestLineWithIndent，
获取带有缩进的最长行宽度。

Signed-off-by: PengKejie <pengkejie@h-partners.com>
DΙxytree 56a7dd7a8c204741f425be08a85bd1f94803043a
parent 3d2a06a6c334f04f33d65546ade88224e4fe2134
author y00656910 <yaoxingyu3@huawei.com> 1723639998 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1724063004 +0800

0814bugFix

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: I6a637a7df8242a184cf40d9c05fdc6eae3311e0b
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
oxEtree 3f4a397fe5c934953bd3c2624bfd3921ff9abaaf
parent 2d8e85197153e4e14112335b7c8a044e239575d3
parent 17b2ba091d1d9a3b7810bd5d5ff1d47d71ffcf82
author openharmony_ci <120357966@qq.com> 1724061260 +0000
committer Gitee <noreply@gitee.com> 1724061260 +0000

!1218 录屏NDK语法整改
Merge pull request !1218 from 杰尼/masterixYtree 4800b1ba9b9c69bf24df8bc4e21a9826a6e261fd
parent 4494fc9e2cf584aa850b52ec311a87ac726cd17e
author zhouyan <zhouyan160@huawei.com> 1724056382 +0800
committer zhouyan <zhouyan160@huawei.com> 1724057803 +0800

添加访问控制ndk接口声明

Signed-off-by: zhouyan <zhouyan160@huawei.com>
Change-Id: Iec95adca938b87e9128b2771e1edab7c48553629
Kuxztree caabcceaecff12df1c52ad1fca74fd3c30e53dcf
parent 9b6cbbc5145e9c21a98a73b994b93b99055c193a
parent 27a7ae90d1b13e99335c1934b0da11c5abbfc757
author openharmony_ci <120357966@qq.com> 1724038862 +0000
committer Gitee <noreply@gitee.com> 1724038862 +0000

!1216 添加相机、媒体库处理媒体资产相关NDK接口 
Merge pull request !1216 from caochuan/media_asset_ndk_0818Rixtree 5e9e53e64332f04c8693fa13b2b51d6ab2c6a341
parent 9b6cbbc5145e9c21a98a73b994b93b99055c193a
author duanhan <duanhan1@huawei.com> 1724038153 +0800
committer duanhan <duanhan1@huawei.com> 1724038153 +0800

add ndk pixel format
Signed-off-by: duanhan <duanhan1@huawei.com>
_ATxHtree e4bf82192c2675a0ac252bebc9f491f619059686
parent 0c4dfb8b3fbf42c79067427f6ced72bb65fb2aba
parent deb2c24f80e8464a8eb3af2db9d61393a9845258
author openharmony_ci <120357966@qq.com> 1724033828 +0000
committer Gitee <noreply@gitee.com> 1724033828 +0000

!1166 修改拼写错误
Merge pull request !1166 from shegangbin/fix_0812hhxtree f888c981b4c5d396cbc3ddb4bd25adc435b263b6
parent 0c4dfb8b3fbf42c79067427f6ced72bb65fb2aba
author liyang <liyang782@huawei.com> 1724031929 +0800
committer liyang <liyang782@huawei.com> 1724031929 +0800

录屏NDK语法整改

Signed-off-by: liyang <liyang782@huawei.com>
	[ӛxktree 97d77f6d3f2e389ba5cc632e7d8f27aaf5334976
parent 83f1b88a59d3de6aef7bd2750ed44090f8feeb9e
parent 3c083918e32c254065a5bd33cf22de654ddc8995
author openharmony_ci <120357966@qq.com> 1723969116 +0000
committer Gitee <noreply@gitee.com> 1723969116 +0000

!1207 add interface for array buffer backing store && wasm 
Merge pull request !1207 from oscrlet/arraybuffer2oxtree 8bc473e7a9cc66f6a3f04f33c1c2e3b9c23da6f1
parent 83f1b88a59d3de6aef7bd2750ed44090f8feeb9e
author caochuan <caochuan@huawei.com> 1723958958 +0800
committer caochuan <caochuan@huawei.com> 1723958958 +0800

add media asset ndk

Signed-off-by: caochuan <caochuan@huawei.com>
WEx/tree 19d73a20ba52b7757e125245713451bdb43a5390
parent 5652fa1eded3852067b8be65b3ca92ba3fb8fa17
author yanghaiming <yanghaiming4@huawei.com> 1723897502 +0800
committer yanghaiming <yanghaiming4@huawei.com> 1723897606 +0800

standarlize interface name

Signed-off-by: yanghaiming <yanghaiming4@huawei.com>
$`xtree 14b2376782f6dcc82b51545208c2bf1aae752fd4
parent 9aa9690b184ffd5d3f12d19b7a6f21ec492326a2
author liuweili <liuweili1@huawei.com> 1723880776 +0800
committer liuweili <liuweili1@huawei.com> 1723880776 +0800

add

Signed-off-by: liuweili <liuweili1@huawei.com>
Q>xjtree 37a03c334061ae8349a3fedf3a821dd28766c7c3
parent 0ab244eebe09c62959f40c898dae74c5e5fd0ddb
parent 83f1b88a59d3de6aef7bd2750ed44090f8feeb9e
author HYH <huiyuehong@huawei.com> 1723853628 +0000
committer Gitee <noreply@gitee.com> 1723853628 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into yz

Signed-off-by: HYH <huiyuehong@huawei.com>=ksMxVtree 04f46de7a1e2f98364536da1ccfe816712aa6b18
parent b17549f85f62d12b7e57cd40b0d697b203ed839c
author hellohyh001 <huiyuehong@huawei.com> 1723810723 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1723810723 +0000

Add interface capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I3c517edb2ad0700f29be2b59d705d9e53eb92d7e
i[x_tree 837bd2d81ef0147c3d334544eff9089de8ebb63c
parent 4494fc9e2cf584aa850b52ec311a87ac726cd17e
parent 0d49e42be45081b706febcf24f315a06f31c1eff
author openharmony_ci <120357966@qq.com> 1723804955 +0000
committer Gitee <noreply@gitee.com> 1723804955 +0000

!1203 补充视频后处理key信息到json文件中
Merge pull request !1203 from rchdlee/masterHy@xtree 317436663c83243bd398d2d7e0030605fdc6ee2c
parent 4494fc9e2cf584aa850b52ec311a87ac726cd17e
author ccfriend <chengcheng14@huawei.com> 1723803266 +0000
committer Gitee <noreply@gitee.com> 1723803266 +0000

add test.txt.

Signed-off-by: ccfriend <chengcheng14@huawei.com>̵SoxQtree e5717bc9c961f19a14978aa881417d77de9b4cc2
parent 172a70c8ae0918ae76b031039053a6a2863e5e89
parent 0eda34b401bd4119017c9978a60f9bdca623f796
author openharmony_ci <120357966@qq.com> 1723778574 +0000
committer Gitee <noreply@gitee.com> 1723778574 +0000

!1195 native gesture code warning fix
Merge pull request !1195 from zhouchaobo/0728.9dxVtree e995f60dceada493ac30e0d62efab2e874bc7b9e
parent 33a7464f6a5348210135c7911ce57c857263a94c
author hellohyh001 <huiyuehong@huawei.com> 1723775641 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1723775641 +0000

Add Interface Capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I2633541e1c92061b96235bd45f0bb053a1e1513b
KhxVtree 9292d112e5e8e24b25cf3fc8029329899f7ee6fd
parent fabea3b979bb6336646a1cc056a327f4c643e30f
author hellohyh001 <huiyuehong@huawei.com> 1723775556 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1723775556 +0000

Add Interface Capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I0396681bbeac77b35fc193d7f1124e3f72511f69
thx`tree 4bdf8c304eebca756311895e350e22c9f9d310e5
parent 1d5ec64b68cc7b2fd2956ae07c2d0ea72c2b1246
parent f9ace6072cfd2aaf5e41324538689d6b12bf7ca6
author openharmony_ci <120357966@qq.com> 1723745682 +0000
committer Gitee <noreply@gitee.com> 1723745682 +0000

!1074 添加相机框架NDK接口（0729）
Merge pull request !1074 from cold/camera_ndk_api_0729euDxtree c4de3e08a8c83ca4feaa64c036e47b72b4dffa7b
parent 15fa21ae01ce0d9bb969da5a124c2d0f474ccc7e
parent 953ac3abaec34eb7d8c334c61bc740c473cc2f07
author openharmony_ci <120357966@qq.com> 1723729415 +0000
committer Gitee <noreply@gitee.com> 1723729415 +0000

!1197 Add interfaces for NDK AVPlayer to implement OnError and OnInfo
Merge pull request !1197 from 袁景华/NdkAvplayerInterfaceiS{xAtree 28d723ce8c9046fe74fbd94330a9e2200b6a2705
parent e03faa27ae7bfbff0a23449f195acb8bcd2c3713
parent 986175b3d057164c7c8290f5cce0e75d4dc06bdb
author openharmony_ci <120357966@qq.com> 1723728953 +0000
committer Gitee <noreply@gitee.com> 1723728953 +0000

!1194 NDK 告警修复
Merge pull request !1194 from firminly/liyi2"d1xftree 879c3b75a48f13c76beed09fc14b0de2df78df78
parent cb7c476368955747f33b04b343ba85ae7c60fcb9
parent 99918692988a367300b07a2417e5a241aff14d06
author openharmony_ci <120357966@qq.com> 1723721682 +0000
committer Gitee <noreply@gitee.com> 1723721682 +0000

!1196 AVPlaybackSpeed新增3.0、0.25、0.125倍速枚举
Merge pull request !1196 from 任军旗/masterux.tree f71e7b6c5a864d740bdb866a2b369f8ff982bf70
parent cb7c476368955747f33b04b343ba85ae7c60fcb9
author rchdlee <liyidong1@huawei.com> 1723721128 +0800
committer rchdlee <liyidong1@huawei.com> 1723721128 +0800

补充视频后处理key信息到json文件中

Signed-off-by: rchdlee <liyidong1@huawei.com>
imxItree 6a7f010e38dc86689ea48d4af2b1ac3812f70251
parent dcdbd2a294033bfe972abc294cb86b4072b0e80e
parent 7945141b55e459ceeabc6d7e4ff8108c32ce4fb3
author openharmony_ci <120357966@qq.com> 1723720228 +0000
committer Gitee <noreply@gitee.com> 1723720228 +0000

!1200 新增ffrt API12接口
Merge pull request !1200 from wangyulie/masterRg1xPtree dd34846bacdd2f49e73c2674f49973ad7dd26398
parent 7000d5343de4b6a2580ca873e0a61a67a4dce790
parent a50a89c9956fdb7938788f588905cc21e0ce224e
author openharmony_ci <120357966@qq.com> 1723718275 +0000
committer Gitee <noreply@gitee.com> 1723718275 +0000

!1169 sdk新增start_time属性
Merge pull request !1169 from 杨俊晖/0813PTSFixqkxvtree db56552837ca6db8edc3460df325fc9767ebb43d
parent 391d9d39ef7b4af19a65688b290abda6a32641b5
author yuanjinghua <yuanjinghua1@huawei.com> 1723707971 +0800
committer yuanjinghua <yuanjinghua1@huawei.com> 1723716285 +0800

Add interfaces for NDK AVPlayer to implement OnError and OnInfo

Signed-off-by: yuanjinghua <yuanjinghua1@huawei.com>
Change-Id: Ie5f7ef84100daca3e0b3b1db502947272e42236d
}<xtree dc7afc0a000eb9fd3206d127eda81dfc412dfc2e
parent 7000d5343de4b6a2580ca873e0a61a67a4dce790
author NoCodeNoBB <maoyufeng3@huawei.com> 1723715094 +0000
committer Gitee <noreply@gitee.com> 1723715094 +0000

网络管理新增枚举

Signed-off-by: NoCodeNoBB <maoyufeng3@huawei.com>$`ՙxtree 08c83a2be236faa29f6fd05f8551bea56b04c7d9
parent 7000d5343de4b6a2580ca873e0a61a67a4dce790
author wangyulie <wanglieyu@126.com> 1723714556 +0800
committer wangyulie <wanglieyu@126.com> 1723714802 +0800

ffrt add interfaces in API12

Signed-off-by: wangyulie <wanglieyu@126.com>
V<xYtree e29d0df1e792cc3f66db48fa1a0f194f75a9d8d3
parent 391d9d39ef7b4af19a65688b290abda6a32641b5
parent 2c4bb919df7e889e0a2c04cce0095da6ccd11246
author openharmony_ci <120357966@qq.com> 1723706187 +0000
committer Gitee <noreply@gitee.com> 1723706187 +0000

!1154 post message ndk interface
Merge pull request !1154 from jianglinyang/postmessage-ndk%jx1tree 4334bb88ef9a8e02fceb7270d22a2b1e09306e92
parent 391d9d39ef7b4af19a65688b290abda6a32641b5
author 任军旗 <renjunqi3@huawei.com> 1723705505 +0000
committer Gitee <noreply@gitee.com> 1723705505 +0000

AVPlaybackSpeed新增3.0、0.25、0.125倍速枚举

Signed-off-by: 任军旗 <renjunqi3@huawei.com>lWxHtree e207fc11e0297d6bad0886440bf4ca5e46b1a2f5
parent d67e32f2513024e85ecd678f6a1bd265c90d231d
parent 418a6c2e31469f3415882cfef7f99eb353683241
author openharmony_ci <120357966@qq.com> 1723704159 +0000
committer Gitee <noreply@gitee.com> 1723704159 +0000

!1156 修改无形参告警
Merge pull request !1156 from 任欣瑶/master;lLxKtree d215aaba403bdf38f096f94dae069aded5067e00
parent 7d0584fb97c6e7239cadf347a4a6e52ab3985b51
parent 0b32e531992822694b2043e027651acca05d7064
author openharmony_ci <120357966@qq.com> 1723694782 +0000
committer Gitee <noreply@gitee.com> 1723694782 +0000

!1193 interface_sdk更新BUILD.gn
Merge pull request !1193 from wisdom/masterKe`x`tree 62770498478013e52d085064b2cd1be2ab752711
parent 7d0584fb97c6e7239cadf347a4a6e52ab3985b51
author zhouchaobo <zhouchaobo@huawei.com> 1723688624 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1723688624 +0800

native gesture code warning fix

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: I366acad9a146872b962f653095e4894731421c64
elxtree d90ffe8f80f7d66089a47e2267a5789fe7433bf8
parent 7d0584fb97c6e7239cadf347a4a6e52ab3985b51
author liyi0309 <liyi58@huawei.com> 1723687601 +0800
committer liyi0309 <liyi58@huawei.com> 1723687601 +0800

NDK 告警修复
Signed-off-by: liyi0309<liyi58@huawei.com>
#R×x'tree d215aaba403bdf38f096f94dae069aded5067e00
parent 7d0584fb97c6e7239cadf347a4a6e52ab3985b51
author wisdom <weisihao1@huawei.com> 1723686219 +0800
committer wisdom <weisihao1@huawei.com> 1723686219 +0800

Description: Update NDK interface BUILD.gn

Signed-off-by: wisdom <weisihao1@huawei.com>
e\x}tree 39561a6acadd0104133dad41f7b404ccb1df3692
parent 563288a10a5e1a5c79d6229438a0e98cc395c84b
parent 7d0584fb97c6e7239cadf347a4a6e52ab3985b51
author 杨俊晖 <yangjunhui10@huawei.com> 1723683237 +0000
committer Gitee <noreply@gitee.com> 1723683237 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 0813PTSFix

Signed-off-by: 杨俊晖 <yangjunhui10@huawei.com>2xPtree 0fb438af15b690cd9f13e579969a569d40976cf1
parent 724409e01a2fdbec8f3b1de12d8218791a6c30ee
author y30025806 <yangjunhui10@huawei.com> 1723683164 +0800
committer y30025806 <yangjunhui10@huawei.com> 1723683164 +0800

add err code

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: I37ce49dabb9d592e9533c2e35d5f7bba6106b7b1
zbxVtree 1be2e4fa2d135902d06d92332da809994a2e20a5
parent a20c1f7be127913e3a72715f5b7f0e6f2e6000f3
parent 31410a394f1d936042d87534251fc341d9fa3723
author openharmony_ci <120357966@qq.com> 1723639553 +0000
committer Gitee <noreply@gitee.com> 1723639553 +0000

!1164 【修改说明】删除LBVC ndk接口
Merge pull request !1164 from 杨鹏/masterqfxOtree ea17ae81db429021b77ea8fe1e66ccc652ca12ef
parent 8e9efbcae148cc9f75094ad349de2b971a13b564
author y30025806 <yangjunhui10@huawei.com> 1723639042 +0800
committer y30025806 <yangjunhui10@huawei.com> 1723639042 +0800

fix conflic

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: Iec966d60ae4cfcf3f844ba6ce9242eec1dbd2b63
dxOtree e9e26fc4a9b19fc8f00663776249eaf31e6904b6
parent 1c70e47cc3751a2d03142546e65cd0635fb734cf
author y30025806 <yangjunhui10@huawei.com> 1723638585 +0800
committer y30025806 <yangjunhui10@huawei.com> 1723638585 +0800

fix conflic

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: I3b4c70769c72b330a6e2275501b453210faa4320
`xRtree 8fefdcb12f1903bef760a889df9ac6bb596c0657
parent 3494fd5149d0b69aeb852fefc98c9391ddf72c9b
author y30025806 <yangjunhui10@huawei.com> 1723638371 +0800
committer y30025806 <yangjunhui10@huawei.com> 1723638371 +0800

add start time

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: I114d276a486588630c97c443eb426f8209c359f6
Hcx~tree 23aeba2b1bcbee9f572b7700bc56ea098e784b48
parent ed91bee9de6b60eae5d54c8e85bdc2cda8822d77
parent 8eb150ab8b696bdcbef1ab2fb7aa4f69bf13887b
author openharmony_ci <120357966@qq.com> 1723630400 +0000
committer Gitee <noreply@gitee.com> 1723630400 +0000

!1180 Add description for napi_coerce_to_native_binding_object
Merge pull request !1180 from milkpotatoes/cherry-pick-1723555021gyxntree cddc909add5ce236a3aaa6c8ea0fa1021bd8b799
parent f0fee97dd8c76f6c6927433baac3c2f6066ed4db
author j00466033 <jianglinyang@huawei.com> 1723206269 +0800
committer j00466033 <jianglinyang@huawei.com> 1723628859 +0800

postmessage ndk interfaces

Signed-off-by: j00466033 <jianglinyang@huawei.com>
Change-Id: Ie9d9c49f0e279f24beb04ba9f8f62076d6711d05
Signed-off-by: j00466033 <jianglinyang@huawei.com>
?|6xWtree 0fdcec203a5046f9dffbbede664abff4268944aa
parent c206d0d4df8be387651bb3c9d731e7094f3f6a4d
parent 73bd8634bc4cbce6b374efdc37fae7086f2c7f00
author openharmony_ci <120357966@qq.com> 1723625718 +0000
committer Gitee <noreply@gitee.com> 1723625718 +0000

!1168 更改注释使其描述信息正确
Merge pull request !1168 from KentZustc/master2wGx[tree a8ed9f016fae568e00edfacc5d67a3a057e9d213
parent 0274ed127855d96ac34ebfec7cadcd86f4c8ed66
parent d0e38652c3f9868c5c60acb8ec4133487d3e42db
author openharmony_ci <120357966@qq.com> 1723624822 +0000
committer Gitee <noreply@gitee.com> 1723624822 +0000

!1185 【轻量级 PR】：接口规范性整改
Merge pull request !1185 from 0165418301/N/A:u8xXtree 4f5f282d296c239c093f9c846e849a8a2e96c3e8
parent 781a88e709d99f3fd3bf2bd828023ed1120dc4ee
parent 5d02de110d3d171d12ffbb8956a82beb0dcd5244
author openharmony_ci <120357966@qq.com> 1723624615 +0000
committer Gitee <noreply@gitee.com> 1723624615 +0000

!1179 Fix unknown type name 'bool' error.
Merge pull request !1179 from zhenghongda/master	hxLtree e49182f917025e7d597c412c8e2725d66d6728e2
parent 7d1d7154df1c605f1fce4bf731eb717f854a54a3
parent f2dbb3c6663e5cb811c9ad6f70e1da73f52032de
author openharmony_ci <120357966@qq.com> 1723622877 +0000
committer Gitee <noreply@gitee.com> 1723622877 +0000

!1171 open ffrt recursive mutex
Merge pull request !1171 from yuanzhipu/masterQdՔxTtree 0e6fccf95b0ffe33a397e8018243a7dd46e1f776
parent 804471ea1de9f12804f978f588e6e87b8e85b155
parent 603da8cc12512480b760d02b968b3303fe36ed24
author openharmony_ci <120357966@qq.com> 1723622417 +0000
committer Gitee <noreply@gitee.com> 1723622417 +0000

!1159 AudioSession NDK 合入
Merge pull request !1159 from libliang/audio_session_ndkh)xItree a6920e0e5f042afd514ee6c6b9965158bfebaf9a
parent ad0c3c0268e62cd6558d6ebbb90d649360737429
parent ed15ded7f1d5d09f5199e4136a5e50e9d3fc0e7c
author openharmony_ci <120357966@qq.com> 1723621329 +0000
committer Gitee <noreply@gitee.com> 1723621329 +0000

!1182 ohaudio引入stdbool.h 
Merge pull request !1182 from zhangkai/master[f,xtree d2a099771f856965b1b7f21a48e81b0e4d6efa54
parent cc8317fa14c432ff876990546d7ccaf60ad4cf83
author yuanzhipu <2710242656@qq.com> 1723608228 +0800
committer yuanzhipu <2710242656@qq.com> 1723608228 +0800

open ffrt recursive mutex

Signed-off-by: yuanzhipu <2710242656@qq.com>
R!xVtree 804fce5c84068a2d4d89dd7323b8b04f24d05fc6
parent 479f7669f88b9f1bf975ebe508f58059b52280ea
author hellohyh001 <huiyuehong@huawei.com> 1723600707 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1723600707 +0000

Add interface capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: If648b8328fd621659191dd8f047179ba9edc4929
Jhxtree e40d62a3099709db79a5742b7a6ca05fefc50298
parent ad0c3c0268e62cd6558d6ebbb90d649360737429
author 0165418301 <wanglingyi4@huawei.com> 1723598996 +0000
committer Gitee <noreply@gitee.com> 1723598996 +0000

接口规范性整改

Signed-off-by: 0165418301 <wanglingyi4@huawei.com>Z֗xwtree 3cc17c0d2be52fb21ded0b08a5867189b85c673a
parent c44acf015d9bc4a07b16b4d45f8f912c1701f512
parent f73ff89e58755a63bd05b8d699ce71857e496e00
author openharmony_ci <120357966@qq.com> 1723560334 +0000
committer Gitee <noreply@gitee.com> 1723560334 +0000

!1151 【修改说明】 新增视频后处理错误码&相应接口注释
Merge pull request !1151 from 李建超/master`x tree f41c84d397d73d3dac6b1a9f1e5e65880b610445
parent c44acf015d9bc4a07b16b4d45f8f912c1701f512
author zhangkai <zhangkai269@huawei.com> 1723556456 +0800
committer zhangkai <zhangkai269@huawei.com> 1723556456 +0800

ohaudio 导入stdbool.h

Signed-off-by: zhangkai <zhangkai269@huawei.com>
t[xZtree 535411441374cdc4d7e6246152e1bc309b52680d
parent 8e7ee9ce213dcd4e7cff7a8182dfcce2ec4356aa
parent f471dab2d5df8808a7c890b1f68ba524013ae99e
author openharmony_ci <120357966@qq.com> 1723553151 +0000
committer Gitee <noreply@gitee.com> 1723553151 +0000

!1127 新增带distance限制创建TapGesture
Merge pull request !1127 from 郑齐熠/master9tqx`tree 42d1dfbca91185b7f7530836fe557262ba0880e1
parent 8e7ee9ce213dcd4e7cff7a8182dfcce2ec4356aa
author zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1723552302 +0000
committer zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1723552742 +0000

Fix unknown type name 'bool' error.

Signed-off-by: zhenghongda <zhenghongda4@huawei.com>
q$xtree 34914f95a6631d33d8d16af825acb03a00c78bdd
parent ea989c195c58a775760baf5689ccb04dd14ec4a8
author yuanzhipu <2710242656@qq.com> 1723548516 +0800
committer yuanzhipu <2710242656@qq.com> 1723548516 +0800

open ffrt recursive mutex

Signed-off-by: yuanzhipu <2710242656@qq.com>
,RGxtree 1128d2460e4118687ae6751eaa524982f4cb3154
parent a18b2a4e0f9aedb78dd68351eb03df0949b005d2
author libliang <libliang@163.com> 1723542504 +0800
committer libliang <libliang@163.com> 1723542504 +0800

fix pointer issue

Signed-off-by: libliang <libliang@163.com>
vO$xtree 42da3941319d76f8f849f356ff7a9fc5cc485707
parent f5e4ea8f6db7c8c3156a62189f21e9a1d66cd3da
author yuanzhipu <2710242656@qq.com> 1723539386 +0800
committer yuanzhipu <2710242656@qq.com> 1723539386 +0800

open ffrt recursive mutex

Signed-off-by: yuanzhipu <2710242656@qq.com>
TRvxtree ba3907f2bd2bf88af8eca93e7588e10f14e93106
parent 8e7ee9ce213dcd4e7cff7a8182dfcce2ec4356aa
author yuanzhipu <2710242656@qq.com> 1723539190 +0800
committer yuanzhipu <2710242656@qq.com> 1723539190 +0800

open ffrt recursive mutex

Signed-off-by: yuanzhipu <2710242656@qq.com>
kSxZtree 635e0619fa6777a6e111e756866edf7f272a8b28
parent 90377a626364f14877c43227e4a2a6a8be708cad
parent 0478cac98a8a3e2c5f3205c101ea1d0d1a26c043
author openharmony_ci <120357966@qq.com> 1723534852 +0000
committer Gitee <noreply@gitee.com> 1723534852 +0000

!1134 C-API 系统环境变化接口调整
Merge pull request !1134 from 邹林肯/fontScalet.xXtree e440761b4b26df706ba0fcc29137d33249c6c844
parent 90377a626364f14877c43227e4a2a6a8be708cad
author y30025806 <yangjunhui10@huawei.com> 1723531590 +0800
committer y30025806 <yangjunhui10@huawei.com> 1723531590 +0800

add track start time

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: Iae8638ba8a25919bf8a0f03844aea4f05f9a4203
dxItree 4ff52c97f6d33d1380fff314159b9c99f3375b81
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
parent a15164e7709cad39e60af31b0c2b1dc002396aaf
author openharmony_ci <120357966@qq.com> 1723524490 +0000
committer Gitee <noreply@gitee.com> 1723524490 +0000

!1141 新增ffrt loop注释
Merge pull request !1141 from zhuguoyang/mastergax-tree 87981a0eaaf903b13a185f67b6090ac58606893c
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author KentZustc <zhangle110@huawei.com> 1723516094 +0000
committer Gitee <noreply@gitee.com> 1723516094 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: KentZustc <zhangle110@huawei.com>i^xRtree 0954f38882a8db359f9e7d670e5d0ac05e724c7a
parent 531c848888085533248e645774a0c8bc2f3f14df
author li-jianchao1993 <lijianchao9@huawei.com> 1723427756 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1723474198 +0800

【修改说明】 根据评审意见修改错误码

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
u{ x-tree 204826e3a9c66466179d24879be6e1b573787a34
parent eb97c042b7421b4b9a1456660cdfd6c92c46bcbf
author zoulinken <zoulinken1@huawei.com> 1723024449 +0800
committer zoulinken <zoulinken1@huawei.com> 1723470751 +0800

C-API 系统环境变化接口调整

Signed-off-by: zoulinken <zoulinken1@huawei.com>
bi$xtree cc52d7550aa437cc786833aba90af6634df2b61d
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author shegangbin <shegangbin1@huawei.com> 1723451464 +0800
committer shegangbin <shegangbin1@huawei.com> 1723451464 +0800

fix

Signed-off-by: shegangbin <shegangbin1@huawei.com>
U֒xtree a951c4e092074b0eda5f0392948275a16260db60
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author peng <yangpeng43@huawei.com> 1723449854 +0000
committer peng <yangpeng43@huawei.com> 1723449854 +0000

del lbvc

Signed-off-by: peng <yangpeng43@huawei.com>
:xMxztree 893ebc2114f3b816c07259a285bc82afcaee4547
parent 942a6585aeb1e520c693862d7740772749841c84
parent 85764aa4fafeafa51ef415ff6d78c838acfed06b
author 陈乔异 <chenqiaoyi2@huawei.com> 1723443744 +0800
committer 陈乔异 <chenqiaoyi2@huawei.com> 1723443744 +0800

Merge branch 'cqy/pixelmap-metadata' of https://gitee.com/chen-qiao-yi/interface_sdk_c into cqy/pixelmap-metadata
~"xtree fa3924f5e0dc80fc99e5bc7e5f7c4edfe6c2a284
parent 651a4fda60f9c5eb0c990291d3e929fe55cb9140
author libliang <libliang@163.com> 1723432909 +0800
committer libliang <libliang@163.com> 1723432909 +0800

audio_session_native_1

Signed-off-by: libliang <libliang@163.com>
/Sx`tree 86e87fcdf7913764af09c4411b36a5a087b11d0a
parent 163dd2173ffb4b6cc6a21adbc04a16f5b4b4c7df
parent 4d2ad1d50b6b22d067398f0e24d90dba5e7e04d3
author openharmony_ci <120357966@qq.com> 1723431560 +0000
committer Gitee <noreply@gitee.com> 1723431560 +0000

!1135 录屏框架新增进出隐私空间事件监听
Merge pull request !1135 from xzcbob/master}xttree 2c9ec9d64ba5d714affa08652a065dc65fb91d32
parent af8e9954aeea4e6137c01bc5e465df4ffc49a200
parent 163dd2173ffb4b6cc6a21adbc04a16f5b4b4c7df
author 陈乔异 <chenqiaoyi2@huawei.com> 1723430828 +0000
committer Gitee <noreply@gitee.com> 1723430828 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into cqy/pixelmap-metadata

Signed-off-by: 陈乔异 <chenqiaoyi2@huawei.com>̆xtree ddc0b81fbc1698d000aa066c125c88f77b2a8be0
parent 163dd2173ffb4b6cc6a21adbc04a16f5b4b4c7df
author 任欣瑶 <renxinyao2@huawei.com> 1723428129 +0000
committer 任欣瑶 <renxinyao2@huawei.com> 1723428129 +0000

修改无形参告警

Signed-off-by: 任欣瑶 <renxinyao2@huawei.com>
3kݜxLtree 75ea8bf88dd0dbb1610bf7124345ab9be42ed927
parent 76e8d2a340eeb70921c3597c9bc03d3ab11b962a
author hellohyh001 <huiyuehong@huawei.com> 1723426738 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1723426738 +0000

add capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I5519d7f2889fd459762c66a639875fcea6e9873a
-eyxBtree 7cab91cb97c494cebda7085b1d378a381334c175
parent 019b6e05f41a95eae629a1a950ad6325272d7e16
parent 8b4f0be41e81d20c39e9ad92fa64a992435ff0b3
author openharmony_ci <120357966@qq.com> 1723345578 +0000
committer Gitee <noreply@gitee.com> 1723345578 +0000

!1149 视频处理引擎NDK
Merge pull request !1149 from 刘尚/vpeXgWxbtree c12e48ee0548c96feee5c56d04ef364be9ddf5dc
parent 019b6e05f41a95eae629a1a950ad6325272d7e16
author li-jianchao1993 <lijianchao9@huawei.com> 1723270970 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1723282310 +0800

【修改说明】 新增视频后处理错误码&相应接口注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
uЗx7tree 5137d2716f9df25ee68c0ffcdf89f76ea3f0b33b
parent b738526d0d777e6da1d4a8800aa0c71401e46427
author xzcbob <xuzhangchi@huawei.com> 1723195836 +0000
committer Gitee <noreply@gitee.com> 1723195836 +0000

新增枚举 OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHES

Signed-off-by: xzcbob <xuzhangchi@huawei.com>"exJtree d608a57499a0c8e58031bf049fffb9501f79d329
parent e97dd07f79288bb1615e781174c5f06358d7ab01
parent cda51557a4843340dc9d4d040e4aea7cd8af7edf
author openharmony_ci <120357966@qq.com> 1723194642 +0000
committer Gitee <noreply@gitee.com> 1723194642 +0000

!1146 增加@kit标签
Merge pull request !1146 from yangfan/add_picture_kitsgx;tree e8cdd45f911fd41da3fee25ad37d1b65c3544af0
parent 5828404fb139ad7e2ba3c09e00567e2d6b1a4ee6
parent c393a12cede23975966144e341fcc3766ce61d23
author openharmony_ci <120357966@qq.com> 1723194043 +0000
committer Gitee <noreply@gitee.com> 1723194043 +0000

!1010 Gif Encode
Merge pull request !1010 from Can Xia/masterO]@xtree b3d9ab200c092f062ec620700eec7f92aa4dfadd
parent ce341ea5423f70a555f8b2c92316d66bdb4976b2
author liushang <liushang2@huawei.com> 1723192770 +0800
committer liushang <liushang2@huawei.com> 1723192770 +0800

value

Signed-off-by: liushang <liushang2@huawei.com>
Rx
tree 7c9c923d404769ecd6c9d326a6c27eb9dcd52fd4
parent e4153a500bd5ac6ad28ebcff9038cfea4aac307c
author liushang <liushang2@huawei.com> 1723192390 +0800
committer liushang <liushang2@huawei.com> 1723192390 +0800

add vpe

Signed-off-by: liushang <liushang2@huawei.com>
 <Txtree ae448e27152ef445b1ca8c4da04895c238cd707f
parent 76e8d2a340eeb70921c3597c9bc03d3ab11b962a
author yangfan <yangfan174@huawei.com> 1723188693 +0800
committer yangfan <yangfan174@huawei.com> 1723188693 +0800

增加@kit标签

Signed-off-by: yangfan <yangfan174@huawei.com>
^XxQtree db89f0953d7a246062aaa8e58eb54fbf79cc317b
parent aa5dbf634a0283b8df4fb6e57037db3f85fd995a
parent af5f943ec92c408f20e5f4404c2272f4c7209294
author openharmony_ci <120357966@qq.com> 1723188560 +0000
committer Gitee <noreply@gitee.com> 1723188560 +0000

!1125 多模监听拦截接口定义修改
Merge pull request !1125 from HYH/masterrNxZtree ea6b95bfe654cd031b1ddfcfe017007dfc22a82e
parent 76e8d2a340eeb70921c3597c9bc03d3ab11b962a
parent e6ea4e32fe5df47d56f98c5e1f5613c99e8d58a6
author openharmony_ci <120357966@qq.com> 1723188360 +0000
committer Gitee <noreply@gitee.com> 1723188360 +0000

!1142 check工具bug修复和语法工具完善
Merge pull request !1142 from zhangwu/masterI\vxYtree 90955efe89c513da03d4c61fa1f88557ca2e2c38
parent f58850829237c4d12d631244ce000ee6e1b674d9
parent 45eddf4cf8024221958e60e7169fd538ee8a3e4b
author openharmony_ci <120357966@qq.com> 1723177914 +0000
committer Gitee <noreply@gitee.com> 1723177914 +0000

!1073 修复part_config中配置的musl feature
Merge pull request !1073 from HsuYao/masteroHx_tree 849ce7880ab32cadaa925b5d11bcd7c345c6a786
parent 0f6224809c0a5afd54e2927387038249cb1903d4
parent 54b41780e51aa36c7a0e2a8fb14f7fe8a6dbe4d2
author openharmony_ci <120357966@qq.com> 1723174744 +0000
committer Gitee <noreply@gitee.com> 1723174744 +0000

!1108 drm 媒体密钥系统增加回调接口注释
Merge pull request !1108 from baoxy92/masteryx#tree 43b1cff0ba8d60b13733c718efc6c7c796af32b3
parent f07b4d2ad4f93818bd8b995e874eecb3f19d1e79
author zhuguoyang <zhuguoyang@h-partners.com> 1723174274 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1723174274 +0800

ffrt loop t

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
x1^x,tree f6e71f470655974fe9486a63109edbab501b7ca4
parent 0f6224809c0a5afd54e2927387038249cb1903d4
author zhangwuf <zhangwu47@huawei.com> 1723174132 +0800
committer zhangwuf <zhangwu47@huawei.com> 1723174132 +0800

check工具bug修复和语法工具完善

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
ix.tree 0d04ca07ecf4ca5cbfb55a09a0cfb75bf5bfe37a
parent 38f74f9bef10ead3cb221aa0203840bf9fe92004
author zhuguoyang <zhuguoyang@h-partners.com> 1723173342 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1723173342 +0800

add ffrt loop type des

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
k1cBx?tree c3254f92dfcb5e822cfb68de0004b64ad70d657c
parent e4153a500bd5ac6ad28ebcff9038cfea4aac307c
author multimodalinput <huiyuehong@huawei.com> 1722993663 +0800
committer multimodalinput <huiyuehong@huawei.com> 1723172559 +0800

多模监听拦截接口定义修改

Signed-off-by: multimodalinput <huiyuehong@huawei.com>
vxetree 3b5ddd9f6a3b9389831ce3eb6fc1af34318148a9
parent 0f6224809c0a5afd54e2927387038249cb1903d4
author Can Xia <xiacan2@huawei.com> 1723169646 +0800
committer Can Xia <xiacan2@huawei.com> 1723170203 +0800

Gif Encode

Signed-off-by: Can Xia <xiacan2@huawei.com>
Change-Id: Iaca87a6dbce54b9e77bec2bb1bd1a71e4b6ad30f
Signed-off-by: Can Xia <xiacan2@huawei.com>
9l xVtree c221a82786a510a9df784aca60bccc95ebd8cf65
parent c334c30d4ef57f5827845215b359939d78a8e64b
parent 09184764b586308a03486bb9964b8156f57df813
author openharmony_ci <120357966@qq.com> 1723125765 +0000
committer Gitee <noreply@gitee.com> 1723125765 +0000

!1008 图片框架增加多图接口
Merge pull request !1008 from caochuan/ndk_api_0712}oԜxLtree 86932a113ff231d99c0ccd183a39922d13ec6002
parent b8db7a3d012c98e13fe8955577cd76bd4b299172
parent 03abec17f9d921cae7fdffbd8ade916341ba3a70
author openharmony_ci <120357966@qq.com> 1723123319 +0000
committer Gitee <noreply@gitee.com> 1723123319 +0000

!1139 add RDB_SECURITY_AREA_EL5
Merge pull request !1139 from 卢羊羊/masterexHtree 98fa471b7636f4f59250ea3ca39c7a0fd9cd95b0
parent 2abfdd90a3f6195d5560323de7680fbee72359dd
parent a9ac043c36fe50e32472bad35c26401c2b6db3f1
author openharmony_ci <120357966@qq.com> 1723121567 +0000
committer Gitee <noreply@gitee.com> 1723121567 +0000

!1132 新增豁免隐私接口
Merge pull request !1132 from 杰尼/masterlޛxtree d7b3f186fdc5fdedb0c3f39733bdba5d8b64a709
parent 3a302dcda33c2f68c4c558f4e3c1332905aea121
author luyangyang <1049603119@qq.com> 1723118874 +0800
committer luyangyang <1049603119@qq.com> 1723118888 +0800

门禁修复
Signed-off-by: luyangyang <1049603119@qq.com>
8Rxtree 34edf1f741bfa2f2e9f89875d0f64e55dd23338f
parent 2abfdd90a3f6195d5560323de7680fbee72359dd
author luyangyang <1049603119@qq.com> 1723117543 +0800
committer luyangyang <1049603119@qq.com> 1723117568 +0800

add RDB_SECURITY_AREA_EL5
Signed-off-by: luyangyang <1049603119@qq.com>
(Q2xtree 557279eb7db7d0057cd31096c6cc38dcd01b6ecd
parent 0a5101a0594256635e67d38e7c0fd248ccbb44db
author liyang <liyang782@huawei.com> 1723115723 +0800
committer liyang <liyang782@huawei.com> 1723115723 +0800

新增隐私窗口豁免功能

Signed-off-by: liyang <liyang782@huawei.com>
)aVx0tree 9802b9b83faf11a08f5f4f0c5cb88f7401da5bd7
parent 099fccc62b6f9659748f25599a6c03f283c07947
author baoxy92 <baoxianyue@hisilicon.com> 1723114564 +0000
committer Gitee <noreply@gitee.com> 1723114564 +0000

update multimedia/av_codec/native_avdemuxer.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>jmaRx=tree 2bbd88090ca2907c235abd2d447a2e45c60bbb83
parent a4c547c6973a92ec55b833cc8b036c8652db9783
author baoxy92 <baoxianyue@hisilicon.com> 1723114508 +0000
committer Gitee <noreply@gitee.com> 1723114508 +0000

update multimedia/drm_framework/common/native_drm_common.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>AfxTtree 5ccc6eb0e030a702974181f15b6a32d28b1f258b
parent 6c81bf401d24606cb9e5093aa5a2f2cff8019ac9
parent 012444dc5cde0bd52298e3015394d54616abc3d1
author openharmony_ci <120357966@qq.com> 1723110002 +0000
committer Gitee <noreply@gitee.com> 1723110002 +0000

!1104 接口设计和实现一致问题
Merge pull request !1104 from 马千里/mastert:x\tree 463c90a7ad509628a2cfd6b98df61a8dacb531c0
parent f0fee97dd8c76f6c6927433baac3c2f6066ed4db
parent f6818d5e4941c550bf29f97c47d0f708976d2447
author openharmony_ci <120357966@qq.com> 1723097446 +0000
committer Gitee <noreply@gitee.com> 1723097446 +0000

!1128 hitrace.h修复NDK语法错误整改问题
Merge pull request !1128 from jiangwei/master^uPxPtree 21f1bdf86260edce1366c1692e319c31ce8b5207
parent eb97c042b7421b4b9a1456660cdfd6c92c46bcbf
parent 0be961053f892cdb6eee7f99d18232df5be4369b
author openharmony_ci <120357966@qq.com> 1723033993 +0000
committer Gitee <noreply@gitee.com> 1723033993 +0000

!1126 libpixelmap json fix
Merge pull request !1126 from duanhan/pixelmap_json_fixxfxtree c1c3f04445e54918345003837b89e26ed96bcde9
parent 7cccad4dbedd47de6a6f192ca776e0a45038bbd1
author liyang <liyang782@huawei.com> 1723020330 +0800
committer liyang <liyang782@huawei.com> 1723020330 +0800

新增豁免隐私接口

Signed-off-by: liyang <liyang782@huawei.com>
2#]nxtree 872aa412f0898273dc6ab7eca59b8da024024e3e
parent eb97c042b7421b4b9a1456660cdfd6c92c46bcbf
author liyang <liyang782@huawei.com> 1723020165 +0800
committer liyang <liyang782@huawei.com> 1723020165 +0800

新增豁免隐私接口

Signed-off-by: liyang <liyang782@huawei.com>
]7xEtree 2f79854084459d63c0cedc661ea9fc0e467cc392
parent eb97c042b7421b4b9a1456660cdfd6c92c46bcbf
author root <root@USER-20231012EH.localdomain> 1723012039 +0800
committer root <root@USER-20231012EH.localdomain> 1723012039 +0800

fix: 修复hitrace.h NDK语法错误整改

Signed-off-by: root <root@USER-20231012EH.localdomain>
jx^tree 4200a28b4a661359d0183087df776e99a448ec84
parent 4cfb6d4ed55d9df87f6a4126a79bb6a93e84aded
parent a4c547c6973a92ec55b833cc8b036c8652db9783
author openharmony_ci <120357966@qq.com> 1723005208 +0000
committer Gitee <noreply@gitee.com> 1723005208 +0000

!1121 drm接口实现与设计一致性问题解决
Merge pull request !1121 from baoxy92/masterx۔xTtree 7f967d2fa87b133263cd422f583cdda0b97b897a
parent a8a325348dc93d42d3f6fc48c91ee26828364986
parent 75a70f47d464005306bd6e273644024e389f5e19
author openharmony_ci <120357966@qq.com> 1723001994 +0000
committer Gitee <noreply@gitee.com> 1723001994 +0000

!1119 修改NODE_CLIP接口描述
Merge pull request !1119 from 王丽莉/master-sdk_cmx#tree e78c88096f7750c9043bdd6817b264899e1d0757
parent a8a325348dc93d42d3f6fc48c91ee26828364986
author zhengqiyi <zhengqiyi2@huawei.com> 1723000709 +0000
committer zhengqiyi <zhengqiyi2@huawei.com> 1723000709 +0000

add distance to tapGesture

Signed-off-by: zhengqiyi <zhengqiyi2@huawei.com>
=[ixtree 093fe570ed52c05dd0e88ff1e62a3cacf3ee0092
parent e4153a500bd5ac6ad28ebcff9038cfea4aac307c
author duanhan <duanhan1@huawei.com> 1722998766 +0800
committer duanhan <duanhan1@huawei.com> 1722998766 +0800

libpixelmap json fix
Signed-off-by: duanhan <duanhan1@huawei.com>
%VxZtree b9cd43aeb711b610d52d69f0733a45b7a33f22fe
parent e4153a500bd5ac6ad28ebcff9038cfea4aac307c
parent 7fa9e12a59ea4629f38243addbf488ee6bd0c97f
author openharmony_ci <120357966@qq.com> 1722998266 +0000
committer Gitee <noreply@gitee.com> 1722998266 +0000

!1122 修改DRM相关接口的错误码描述
Merge pull request !1122 from 姜春丽/masterzzexNtree 912b7d91436842bba89e7d6313a14749a9da2897
parent 33c95b1f73e82e369e59e587cf548b60675c817b
parent 591824ab0f0a5954d69000fccbfcdc2445639ca4
author openharmony_ci <120357966@qq.com> 1722943483 +0000
committer Gitee <noreply@gitee.com> 1722943483 +0000

!1120 新增编码均匀分层枚举
Merge pull request !1120 from anemoi/masterxmxQtree 907f0a03bfaceb7311eebda03c7420c4c187fa0e
parent cd887e00ceae2b2527112939fd59bf9f7054886e
parent a58f9a3cb70a85ef4be7da50454e1e1d62ad0789
author openharmony_ci <120357966@qq.com> 1722937010 +0000
committer Gitee <noreply@gitee.com> 1722937010 +0000

!1007 多模新增事件监听拦截接口
Merge pull request !1007 from HYH/masterrx?tree 2fac0c5fc5df59cf6c11801af0fdb4dc789d94a9
parent c62062820fbff795bbafe05f30f95d4e8eaf1bf6
author jiangchunli <jiangchunli1@huawei.com> 1722935979 +0000
committer jiangchunli <jiangchunli1@huawei.com> 1722935979 +0000

Add error code description related to drm.

Signed-off-by: jiangchunli <jiangchunli1@huawei.com>
'hXx9tree 21e3391c34b6c97c40d2f277b03d08eecf4bb5f0
parent cd887e00ceae2b2527112939fd59bf9f7054886e
author baoxy92 <baoxianyue@hisilicon.com> 1722935822 +0000
committer Gitee <noreply@gitee.com> 1722935822 +0000

update multimedia/drm_framework/libnative_drm.ndk.json.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>8eDx#tree 3ba7e70dd6f84e7acb8a6bfbbd1ada4f8784a38a
parent c62062820fbff795bbafe05f30f95d4e8eaf1bf6
parent f9af162b75cb993c19c7a8340917ab030a8da67b
author openharmony_ci <120357966@qq.com> 1722934496 +0000
committer Gitee <noreply@gitee.com> 1722934496 +0000

!1117 统计工具结果数据三方库、开源/闭源分成两列，diff工具同理；其次diff工具结果api类型更改为节点类型，新增生成语法问题文件表
Merge pull request !1117 from zhangwu/masterN+xPtree 0c049fa164643faf25478d70b45f6a4401fd050b
parent feea13d703264598819ec0ced343a5b6f5e29ca6
parent 3cdb49a5477d2de4a7df62d045c84d60853377c8
author openharmony_ci <120357966@qq.com> 1722932272 +0000
committer Gitee <noreply@gitee.com> 1722932272 +0000

!725 nested scroll c-api
Merge pull request !725 from zhouchaobo/0514_nestedScrollXneTxQtree 5d0a33f6c971c70241682dcad936677602fe4144
parent c67d11aa84995e6b60ffe2019d40c23ed0cd6701
author zhangwuf <zhangwu47@huawei.com> 1722845612 +0800
committer zhangwuf <zhangwu47@huawei.com> 1722930631 +0800

统计工具结果数据三方库、开源/闭源分成两列，diff工具同理；其次diff工具结果api类型更改为节点类型，新增生成语法问题文件表

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
ۜxLtree b8ab82fc1e3eb5f0b1b94a5297d5469e8b6fca76
parent c67d11aa84995e6b60ffe2019d40c23ed0cd6701
parent 5a7a12ea8e5f608f391aedf199d8558206b56dba
author openharmony_ci <120357966@qq.com> 1722930060 +0000
committer Gitee <noreply@gitee.com> 1722930060 +0000

!1110 native_node.h 中描述更改
Merge pull request !1110 from happy/master"jKx9tree c8e73b87e92b12a4dba03993412bbcb436b8ee5f
parent c67d11aa84995e6b60ffe2019d40c23ed0cd6701
author qihaonan <qihaonan3@huawei.com> 1722928392 +0000
committer qihaonan <qihaonan3@huawei.com> 1722928392 +0000

【修改说明】新增分层编码均匀分层模式

Signed-off-by: qihaonan <qihaonan3@huawei.com>
uӜx\tree fecc04bf40fae379db4c8a8f43db9c4f46ff563d
parent c67d11aa84995e6b60ffe2019d40c23ed0cd6701
author wanglili12 <wanglili65@huawei.com> 1722911037 +0800
committer wanglili12 <wanglili65@huawei.com> 1722924496 +0800

修改NODE_CLIP接口描述

Signed-off-by: wanglili12 <wanglili65@huawei.com>
Change-Id: Ie666ac9b20638c0be450f8605debeaccab4eacc1
RprnxTtree e7f845d8af7bea20b5cf85e7237a33b5013df12d
parent bc807191d8559d14ca635768fa4e0a62633b74a5
author zhouchaobo <zhouchaobo@huawei.com> 1722503827 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1722909423 +0800

nested scroll c-api

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: I11c1bc24d0a46992d0d331fb4d897ab192077f66
<Dixntree 0bf24448724c4e03563fd72ee3876f9a23613257
parent c67d11aa84995e6b60ffe2019d40c23ed0cd6701
author caochuan <caochuan@huawei.com> 1722909169 +0800
committer caochuan <caochuan@huawei.com> 1722909169 +0800

Add ndk API for Picture

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IACICD?from=project-issue

Signed-off-by: caochuan <caochuan@huawei.com>
uxWtree 047114927dc35537b3f044a63706b82e49978849
parent 02d1af90b6ca31072e457abb6242c95828b4b966
parent 41ebd3cdfa93a561c6898ebd8398336b16c30d70
author openharmony_ci <120357966@qq.com> 1722831433 +0000
committer Gitee <noreply@gitee.com> 1722831433 +0000

!1033 C-API 系统配置变更回调需求
Merge pull request !1033 from 邹林肯/config+rvxvtree bba70169aab341fa38b5fb7ec04b88784f2b7f9d
parent 755c35901286ff6986913991cd4de5ef5500eded
parent bb18a71a2a98418cfa278c6dc9232d7cd06f0714
author openharmony_ci <120357966@qq.com> 1722679578 +0000
committer Gitee <noreply@gitee.com> 1722679578 +0000

!1111 修改CAPI拖拽发起前的长按交互阶段的变化状态名称
Merge pull request !1111 from Zhang Jinyu/0802xEtree d07b04b933cc75f43c788ec27489bd29a630ccc9
parent 6f8773c02f891f804da8367c339a4a09b8ea134f
author m30063213 <m30063213@notesmail.huawei.com> 1722675654 +0800
committer m30063213 <m30063213@notesmail.huawei.com> 1722675654 +0800

接口设计和实现一致问题

Signed-off-by: m30063213 <m30063213@notesmail.huawei.com>
Ejxstree 27005363b9ca34a0eb1388c6dbc676be1d9aefa2
parent 7f56c854c5b472f3f160db70eef483a5a15224c6
parent f20314895a1c1987339f50ee053f05723e5c208e
author openharmony_ci <120357966@qq.com> 1722672482 +0000
committer Gitee <noreply@gitee.com> 1722672482 +0000

!1090 新增native vsync NDK接口，支持多次回调
Merge pull request !1090 from shegangbin/add_native_vsync_ndkm}hxZtree b33afa7f356f9afc3d41e139281ceef7f090338e
parent 74bc9ddd6732f2aab4feda229692c33fb5f9b026
parent dacac48017adcba60b5610d74d27b7a88f883d0a
author openharmony_ci <120357966@qq.com> 1722668837 +0000
committer Gitee <noreply@gitee.com> 1722668837 +0000

!1112 新增接口修改json文档
Merge pull request !1112 from 姚星宇/0803_addInterfaceuUxptree 87753002215101425eeba72344e85509b267d68e
parent 2516d0e26ae8add019761cf3e45aa3004e71bbdb
parent 74bc9ddd6732f2aab4feda229692c33fb5f9b026
author 邹林肯 <735001321@qq.com> 1722667689 +0000
committer Gitee <noreply@gitee.com> 1722667689 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into config

Signed-off-by: 邹林肯 <735001321@qq.com>Ӏuxctree a6bb882b71df9f58f9b9466bc341ba35f8ff49b7
parent d7b138811fb3c5c3aa75b0bd66c2458f72f97a3d
parent fddca027a82edd60061297aa3c7be89b99373020
author openharmony_ci <120357966@qq.com> 1722665706 +0000
committer Gitee <noreply@gitee.com> 1722665706 +0000

!1100 【CAPI】新增Text组件HalfLeading接口
Merge pull request !1100 from wjn/half_leading_capiu+xWtree af8e55397e91eb866e1ffc7b377423e3e1bcb730
parent e52b15b56fa5663187c8aad44d1c7c3a3f22fb77
parent 0341ee0222de37acda8ee8c4e0de07e2d97343c4
author openharmony_ci <120357966@qq.com> 1722665670 +0000
committer Gitee <noreply@gitee.com> 1722665670 +0000

!1097 【CAPI】新增CustomSpan接口
Merge pull request !1097 from wjn/custom_span_capiVnxZtree 8c9add9be215bf4c7c2370f2b592cd4965bf02ce
parent 5e455bdf096a0389d2f92d67a93195a0ab248ea7
author multimodalinput <huiyuehong@huawei.com> 1720779547 +0800
committer multimodalinput <huiyuehong@huawei.com> 1722661655 +0800

多模新增事件监听和拦截以及鼠标样式设置接口

Signed-off-by: multimodalinput <huiyuehong@huawei.com>
)xctree 5c1d17ef8ef5a95ba13a02ab07760de40f64275c
parent e52b15b56fa5663187c8aad44d1c7c3a3f22fb77
author y00656910 <yaoxingyu3@huawei.com> 1722655243 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1722655243 +0800

introduce OH_ImageNative_GetTimestamp

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: I094ab572a3f0f97fa3b9f72aaa1a188610aa6a6b

kxtree e1e0d1b73f17d277d7c3b19ec7bed304b8dd1cad
parent c432d1a3065807f6c21c85bccdc6f375eefdb865
author wanjining <wanjining@huawei.com> 1722424354 +0800
committer wanjining <wanjining@huawei.com> 1722654386 +0800

修订注释

Signed-off-by: wanjining <wanjining@huawei.com>
:[x?tree 1238baf0a686da509584c668c8347140e59d6396
parent 4ad97aab556f96e44b27c7318ccb41d4c7c9dbd5
parent 7d8584a24b444d7cd1233a21e658fd01f24ff092
author openharmony_ci <120357966@qq.com> 1722589489 +0000
committer Gitee <noreply@gitee.com> 1722589489 +0000

!1019 add hdr metadata
Merge pull request !1019 from zjy/metadatalB^xOtree c286221661f67f25113e950d533aeeef4dd4f9a3
parent 5de3a2c8269eb726e3debd16e32b9e7fd7f70fc1
author happy <wangxueli8@huawei.com> 1722585925 +0000
committer happy <wangxueli8@huawei.com> 1722585925 +0000

native_node.h 中描述更改

Signed-off-by: happy <wangxueli8@huawei.com>
Change-Id: I3b9eb274fe95ad8b4b5e8faa226732d38677c530
B1mxmtree 521b9b38de19332502e5cf6379ca8135d190b8f5
parent ebca18cd8314b566da9c134db5bd795f486f6087
parent f30a01040a4a5378286cdd62b9234f0184750c30
author openharmony_ci <120357966@qq.com> 1722585912 +0000
committer Gitee <noreply@gitee.com> 1722585912 +0000

!1102 【基础能力】Drag CAPI 新增GetDropOperation接口
Merge pull request !1102 from Zhang Jinyu/newaddWwxNtree bdad13b926c383158e5ff3d5557d2a20b1b6018d
parent e57251beb8d84891ed83ee8caffdd63bd5dc0353
author xiaobjy <zhongjiyuan1@huawei.com> 1721015216 +0800
committer xiaobjy <zhongjiyuan1@huawei.com> 1722565908 +0800

add hdr metadata

Signed-off-by: xiaobjy <zhongjiyuan1@huawei.com>
Change-Id: I908d127a563ddb9b49b3788dfce737176ef2c647
h0xatree 74d0c73b84a5ba448d907f7e5a20cf71eb140818
parent 0400756e33d1338b928a9f8c0b0b3627c6e4ffc1
parent 08d83012beb70424469f4d874795cdd4e4f0fb58
author openharmony_ci <120357966@qq.com> 1722565794 +0000
committer Gitee <noreply@gitee.com> 1722565794 +0000

!1083 ScreenCapture增加设置分辨率的新接口
Merge pull request !1083 from zhangq444/master\v*xYtree 0627625e92a8ff851b3a13c2ab1db04bbec6bd0c
parent 051f6d5d4a3e693a3826e041d9711fed3ac11bfe
parent 4f88a7b3968aa7fdf4157bd3f2646c38864b0cde
author openharmony_ci <120357966@qq.com> 1722564160 +0000
committer Gitee <noreply@gitee.com> 1722564160 +0000

!1106 NODE_LINEAR_GRADIENT注释修改
Merge pull request !1106 from 王丽莉/master-sdk_c'o4xRtree fbce6fc41f9f15a34e463127698eac1a8a9a542e
parent 6575a7ba8b926473354810c8336690078b2e8f34
parent 388c8961c8f5592647901e48002629b289e4c94b
author openharmony_ci <120357966@qq.com> 1722510968 +0000
committer Gitee <noreply@gitee.com> 1722510968 +0000

!1107 删除三个非对外接口OH_Drawing_TypographyGetMetrics/OH_Drawing_RegisterThemeFontBuffer/OH_Drawing_RedisterThemeFont
Merge pull request !1107 from PengKejie/master mܗxWtree 3601eb14c1e393be2228833b22ba20ce3bdaa46f
parent 5de3a2c8269eb726e3debd16e32b9e7fd7f70fc1
parent 35c1c23d7b0ce73d5be18b6baa87fad92a5113a3
author openharmony_ci <120357966@qq.com> 1722503891 +0000
committer Gitee <noreply@gitee.com> 1722503891 +0000

!1069 新增私有exif key 字段接口
Merge pull request !1069 from duanhan/exif_newkey!qx;tree bc62cafd14c5669fff8fb2f73ca67e01d3a678c4
parent 03d8f0004beed296753162d7a46a604676835034
author zoulinken <zoulinken1@huawei.com> 1722413637 +0800
committer zoulinken <zoulinken1@huawei.com> 1722499529 +0800

C-API深浅及系统字体大小变更需求接口

Signed-off-by: zoulinken <zoulinken1@huawei.com>
tRxtree ab80041057ffeb658f4dfa6b3715d1cc1256e18f
parent 5de3a2c8269eb726e3debd16e32b9e7fd7f70fc1
author PengKejie <pengkejie@h-partners.com> 1722499098 +0000
committer Gitee <noreply@gitee.com> 1722499098 +0000

update graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json.
OH_Drawing_TypographyGetMetrics
OH_Drawing_RegisterThemeFontBuffer
OH_Drawing_RedisterThemeFont
删除以上三个接口，均为内部接口，不对外开放。

Signed-off-by: PengKejie <pengkejie@h-partners.com>E)xatree 5b84e3c0ad7b77800568211b6f340ff267a9bd40
parent 1f7944babc506db0e5d31fc8cd0b2efc0da9f847
author wanglili12 <wanglili65@huawei.com> 1722496345 +0800
committer wanglili12 <wanglili65@huawei.com> 1722496345 +0800

NODE_LINEAR_GRADIENT注释修改

Signed-off-by: wanglili12 <wanglili65@huawei.com>
Change-Id: I862c75be4c280d3075e3899e6744045fc6495ca0
o	x+tree a28653851ee6cc057a8a7c8fda7c0e32d1e253da
parent fafe5fd4b9b42896890ad018ccfbb3a0eb4f3033
author duanhan <duanhan1@huawei.com> 1722482678 +0800
committer duanhan <duanhan1@huawei.com> 1722482678 +0800

新增私有exif key 字段接口, 名称修改
Signed-off-by: duanhan <duanhan1@huawei.com>
kxDtree 24da74268707df868cfe81f78c1f2b64015f7125
parent 8c4c900ef475c9863eb22361f32bf97ec79bd1df
author zhangqiang <zhangqiang342@huawei.com> 1722481938 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1722481938 +0800

20240801  Screencapture新增接口注释修改

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
n;xVtree 686300e1b83608a65e203ba3e696cdbb7b181894
parent e203ff56dd2cac5b1cbf4c8ba5712b6439cf47c6
parent 39ff5c7020f5dd1ff832ebf34dec19a1c9f77c47
author openharmony_ci <120357966@qq.com> 1722480362 +0000
committer Gitee <noreply@gitee.com> 1722480362 +0000

!1013 新增PixelMap Native JS 互转接口
Merge pull request !1013 from duanhan/TS_APIgmxctree 8f714eb35108d70b88049dc649595f3f351745ed
parent cc5728b3b384613603e2824b76233ef0b5803be4
author zhangjinyu101 <zhangjinyu101@huawei.com> 1722421588 +0800
committer zhangjinyu101 <zhangjinyu101@huawei.com> 1722477037 +0800

add drag new api

Signed-off-by: zhangjinyu101 <zhangjinyu101@huawei.com>
Change-Id: I118b1dd51155a874581a3567023c3dc2ce3e6813
ljxVtree 3b7fee487a5e5be1454a9efb194e79ae4e93629d
parent cc5728b3b384613603e2824b76233ef0b5803be4
parent ad362af2edd6a71637f0f070c25f24a28ddbd159
author openharmony_ci <120357966@qq.com> 1722425971 +0000
committer Gitee <noreply@gitee.com> 1722425971 +0000

!1101 修改libuv版本号
Merge pull request !1101 from liaoxingxing/ModifyLibuvVersion*mx+tree 0de0af04f5caa1a64598a8dc0c99f4864735788a
parent 2ebfe2c356b663759927b51ba37779ba687e4637
author duanhan <duanhan1@huawei.com> 1722424272 +0800
committer duanhan <duanhan1@huawei.com> 1722424272 +0800

新增私有exif key 字段接口, 名称修改
Signed-off-by: duanhan <duanhan1@huawei.com>
+Oix0tree 02094db54f2167ad9165196b8568252fa3894dd3
parent 41defc5914f09bcfc62ea79c281298f0b2711b66
author duanhan <duanhan1@huawei.com> 1722421111 +0800
committer duanhan <duanhan1@huawei.com> 1722421111 +0800

新增PixelMap Native JS 互转接口，注释修改
Signed-off-by: duanhan <duanhan1@huawei.com>
jx^tree 4866181c91f7f25796c25212c0861f78018dae4d
parent dbd56b201fcc5b1f8dc34cdd8b463eb4adfd1301
parent 2a8d6e969b0db65e42d3d5bad765313bd5ecebcb
author openharmony_ci <120357966@qq.com> 1722420540 +0000
committer Gitee <noreply@gitee.com> 1722420540 +0000

!1099 修改拖拽增加CAPI的keystates接口
Merge pull request !1099 from Zhang Jinyu/fixcapi(tאx0tree 3a610b88b6a3dfdf9f4f933c3c9369f0680f64d1
parent aa85171bc9b61fcf3a352ac7fd64b6ee94d6a1d7
author duanhan <duanhan1@huawei.com> 1722418379 +0800
committer duanhan <duanhan1@huawei.com> 1722418379 +0800

新增PixelMap Native JS 互转接口，注释修改
Signed-off-by: duanhan <duanhan1@huawei.com>
֧ldx0tree ba7a685f26dfef3b843eafbbc6648c5f3bcae3f2
parent 7a3fd60802a80405145b781c5dc2eb277baba21e
author duanhan <duanhan1@huawei.com> 1721639817 +0800
committer duanhan <duanhan1@huawei.com> 1722416333 +0800

新增PixelMap Native JS 互转接口，修改注释
Signed-off-by: duanhan <duanhan1@huawei.com>
elƑx!tree ebc2a754bbfb2fd7c1882d010a81cfa7f4c34fe7
parent dbd56b201fcc5b1f8dc34cdd8b463eb4adfd1301
author duanhan <duanhan1@huawei.com> 1720856229 +0800
committer duanhan <duanhan1@huawei.com> 1722416333 +0800

新增PixelMap Native JS 互转接口
Signed-off-by: duanhan <duanhan1@huawei.com>
Jbx-tree 0afdd807f6d42fe02892581cc850064db2ab2843
parent 5fd7d87eae4ebdfdd9f68690a75bcbb05bcc84c9
author shegangbin <shegangbin1@huawei.com> 1722226527 +0800
committer shegangbin <shegangbin1@huawei.com> 1722415560 +0800

add native_vsync ndk interface

Signed-off-by: shegangbin <shegangbin1@huawei.com>
yaxbtree a8d6895d54c3b541476b09f6fbe3ad9f697ca077
parent 03d8f0004beed296753162d7a46a604676835034
parent 4b90b75d18143616923d09dfbc1674378101bba0
author openharmony_ci <120357966@qq.com> 1722413155 +0000
committer Gitee <noreply@gitee.com> 1722413155 +0000

!1070 新增imageNtaive_GetTimestamp接口
Merge pull request !1070 from 姚星宇/0724_addInterfaceuqx&tree 23d23acaf11f913a0313957ed58884bc02bef963
parent eca346b958832e1132b84bd6d1fbd42b9dae9cc5
author wanjining <wanjining@huawei.com> 1722338451 +0800
committer wanjining <wanjining@huawei.com> 1722410843 +0800

【CAPI】新增CustomSpan接口

Signed-off-by: wanjining <wanjining@huawei.com>
Scʘx8tree 9baaf7fc1515225750cc1c98c79fac7da403e407
parent 03d8f0004beed296753162d7a46a604676835034
author liaoxingxing <liaoxingbin@h-partners.com> 1722392284 +0800
committer liaoxingxing <liaoxingbin@h-partners.com> 1722392284 +0800

modify 1.44.2 to 1.48.0

Signed-off-by: liaoxingxing <liaoxingbin@h-partners.com>
@ax1tree 65713751a13d0fa84029fa3f82b825450a6c26a3
parent eca346b958832e1132b84bd6d1fbd42b9dae9cc5
author wanjining <wanjining@huawei.com> 1722390847 +0800
committer wanjining <wanjining@huawei.com> 1722390847 +0800

【CAPI】新增Text组件HalfLeading接口

Signed-off-by: wanjining <wanjining@huawei.com>
ixctree 680383d8b1f4cc398b61b2aa7b8fea824e9cc181
parent 6bf0bb0c60d15682a11a9568abba1424fd8b50f6
author Zhang Jinyu <zhangjinyu101@huawei.com> 1722348898 +0000
committer Zhang Jinyu <zhangjinyu101@huawei.com> 1722348898 +0000

fix drag and dorp capi

Signed-off-by: Zhang Jinyu <zhangjinyu101@huawei.com>
Change-Id: I13bf0b987dbfd42b549eea2d513d715d8b89b89d
mxQtree 8f825254bbe15bd18ebe83a2b46c3c11f05b68b3
parent 9d3f54ff879b3ec31c67f343bd947f461362589e
parent 1f7944babc506db0e5d31fc8cd0b2efc0da9f847
author openharmony_ci <120357966@qq.com> 1722340358 +0000
committer Gitee <noreply@gitee.com> 1722340358 +0000

!1059 CAPI新增focusBox接口
Merge pull request !1059 from 王丽莉/master-sdk_cmqxMtree 0e935f258dea9ed2b86da773f6d202b658e42f53
parent 15a8d7b6971632f49aeb6dcb29b266124b78bfd9
parent 6d1d3ae56333da3e441d07010b396fc7b0909874
author openharmony_ci <120357966@qq.com> 1722339959 +0000
committer Gitee <noreply@gitee.com> 1722339959 +0000

!1071 相机NDK接口补充@kit表现
Merge pull request !1071 from cold/masterkx^tree 95d92fb279da6a2115a0339a592739a8fc67237f
parent eca346b958832e1132b84bd6d1fbd42b9dae9cc5
parent 7f355f901ba94626a8e6f021f039e5a1f3ea6b4d
author openharmony_ci <120357966@qq.com> 1722339637 +0000
committer Gitee <noreply@gitee.com> 1722339637 +0000

!1096 修复枚举值顺序与rom不一致
Merge pull request !1096 from wjn/text_field_capi_bugyw&xtree c7ebe8815e3585cd0adf342cddcc78a1a356f40e
parent 1a042ae63b5831aa864c9ecfa922073e40715f4a
author duanhan <duanhan1@huawei.com> 1721813174 +0800
committer duanhan <duanhan1@huawei.com> 1722330871 +0800

新增私有exif key 字段接口
Signed-off-by: duanhan <duanhan1@huawei.com>
iaƔx$tree 95d92fb279da6a2115a0339a592739a8fc67237f
parent eca346b958832e1132b84bd6d1fbd42b9dae9cc5
author wanjining <wanjining@huawei.com> 1722326817 +0800
committer wanjining <wanjining@huawei.com> 1722326817 +0800

修复枚举值与rom不一致

Signed-off-by: wanjining <wanjining@huawei.com>
Rfؚx
tree 6a01532da70887421553e7ba49a1c077361b8b15
parent eca346b958832e1132b84bd6d1fbd42b9dae9cc5
author cold <lengye@huawei.com> 1722305478 +0800
committer cold <lengye@huawei.com> 1722305478 +0800

add ndk interface for camera

Signed-off-by: cold <lengye@huawei.com>
:QxDtree 76616570647db42a11b10302051673687790592b
parent f5869a2ed1361a5c06fce431e8e1610a8c376a89
parent 8d13c031c7d2748ada3aaad33f47cbefc6c23c89
author openharmony_ci <120357966@qq.com> 1722304697 +0000
committer Gitee <noreply@gitee.com> 1722304697 +0000

!1094 NDK修改注释
Merge pull request !1094 from zhangyuchao/master
dxtree 76616570647db42a11b10302051673687790592b
parent f5869a2ed1361a5c06fce431e8e1610a8c376a89
author z00544238 <zyc.wei@huawei.com> 1722301102 +0800
committer z00544238 <zyc.wei@huawei.com> 1722301102 +0800

modify comment

Signed-off-by: z00544238 <zyc.wei@huawei.com>
gMCxPtree c472225c5c49b12d54d0125701844a0c91f2a907
parent 2492783d43d161f6566b3d1e6eda8b9c84fadfab
parent 1f070bbf1678f6ac81dca2be273bd1f61fe15cca
author openharmony_ci <120357966@qq.com> 1722257502 +0000
committer Gitee <noreply@gitee.com> 1722257502 +0000

!1093 动画新增since注解
Merge pull request !1093 from wujinhui/add_sdk_since/lxPtree bc6e0a19c83ac925963a8ba205d9997fb7bfa2f3
parent 0df7c7091ffdf4d28a2158cf4359c3a663f1668f
parent 54a6b41696afd4dfb04b12ee1f6f54db3c48ea12
author openharmony_ci <120357966@qq.com> 1722247776 +0000
committer Gitee <noreply@gitee.com> 1722247776 +0000

!1092 删除测试接口
Merge pull request !1092 from yangfan/remove_my_pixel_mapRm;xtree 575accd2e5ce91c22086b1e7a1bba27181c37ce3
parent 5fd7d87eae4ebdfdd9f68690a75bcbb05bcc84c9
author wujinhui <wujinhui7@huawei.com> 1722240654 +0000
committer wujinhui <wujinhui7@huawei.com> 1722241326 +0000

动画新增since注解

Signed-off-by: wujinhui <wujinhui7@huawei.com>
a[xytree 1ac4e514801d4a3bfc7edf6f196d828e4bd1d1e8
parent 5fd7d87eae4ebdfdd9f68690a75bcbb05bcc84c9
parent 2cc1b63d458596fbefc3aae8421a6028ed8f70d0
author openharmony_ci <120357966@qq.com> 1722240778 +0000
committer Gitee <noreply@gitee.com> 1722240778 +0000

!1085 【CAPI】dialog onwilldismiss方法工具方法名称修正
Merge pull request !1085 from yyuanche/ndk_dialog_bugfixԄixtree f6c5543e942b1d23d141ceee414f6ee9a76ffb81
parent 5fd7d87eae4ebdfdd9f68690a75bcbb05bcc84c9
author yangfan <yangfan174@huawei.com> 1722240363 +0800
committer yangfan <yangfan174@huawei.com> 1722240363 +0800

删除测试接口

Signed-off-by: yangfan <yangfan174@huawei.com>
\xJtree dd3f389d58d1adc46e446cf6c3f227da5c0c5971
parent 32b18ed4150d3f645b932e456ee0880869f863ff
parent 988a019e8ff0eb8a7ddaff722e0933ad8c26e72a
author openharmony_ci <120357966@qq.com> 1722085180 +0000
committer Gitee <noreply@gitee.com> 1722085180 +0000

!1060  add hicollie sdk_c interface
Merge pull request !1060 from hhl/mastercx`tree 94dd1b465c3683eac1d3c2a6b54c92c8f2b21781
parent 645e2c33c9f86625685940a0d2b8d5cbf989a1b1
parent a927d91a44ffaacd3037a0ac32c73ef9c3c0b4c1
author openharmony_ci <120357966@qq.com> 1722079377 +0000
committer Gitee <noreply@gitee.com> 1722079377 +0000

!1032 添加相机框架NDK接口（0721）
Merge pull request !1032 from cold/camera_ndk_api_0721l6txItree c18e94cbaba436e3ff0b698fc36174ff5e936c94
parent fa464de49bb3db2170f6c7ef45e1940179305f28
parent ef51491a7841ae0be840cf9e2e14399d42ac0d4f
author openharmony_ci <120357966@qq.com> 1722075139 +0000
committer Gitee <noreply@gitee.com> 1722075139 +0000

!1081 新增扫描capi接口
Merge pull request !1081 from 刘昊苏/masterkxQtree b80eceed1dccb47cfb9c54453d0498edc8a4b1d8
parent 7daceaa4e1def4c6300282add077b88bd439cced
parent c92da09a385b12ade88203d2e7d669bfb820d674
author openharmony_ci <120357966@qq.com> 1722073787 +0000
committer Gitee <noreply@gitee.com> 1722073787 +0000

!1023 资源管理CAPI规范整改
Merge pull request !1023 from 高超/rawfile_new-qКx
tree eb436ab26bd568eeac5e3e70456763cc441143be
parent ecec7211ac2effc662904b063823d1aec05c595f
author cold <lengye@huawei.com> 1722073215 +0800
committer cold <lengye@huawei.com> 1722073215 +0800

add ndk interface for camera

Signed-off-by: cold <lengye@huawei.com>
RrxQtree c338f1d4b37aa2fcb9bd6f432eb51a7d6e242a90
parent ecec7211ac2effc662904b063823d1aec05c595f
parent d48fa5efaa4f3423a5b7e9a9877e1232195cd2d6
author openharmony_ci <120357966@qq.com> 1722072672 +0000
committer Gitee <noreply@gitee.com> 1722072672 +0000

!1048 【Drm】修改错误码描述
Merge pull request !1048 from 姜春丽/masters0x^tree 3f0166b603b07530a6ffd19d1bb87d6d8461d9e0
parent 23bd00ab03b0a439940b8a3335add1fa28f54c8c
parent 0e89de291588ab4f28b0ca44c42553ea405f432b
author openharmony_ci <120357966@qq.com> 1722070485 +0000
committer Gitee <noreply@gitee.com> 1722070485 +0000

!980 添加相机框架NDK接口（0715）
Merge pull request !980 from cold/camera_ndk_api_0715sxQtree 352a86c8a5a92ffae6c5cd34de8ee350c238c66a
parent f89b133978309605bad467d44b73223caf7828d7
author zhangqiang <zhangqiang342@huawei.com> 1722070321 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1722070321 +0800

20240727   Screencapture设置分辨率ndk接口名称修改

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
sv2x;tree 7d51570f8c68551deaa9bf66f896583774ba4fe4
parent bc807191d8559d14ca635768fa4e0a62633b74a5
author 刘昊苏 <liuhaosu@huawei.com> 1721976193 +0800
committer 刘昊苏 <liuhaosu@huawei.com> 1722070284 +0800

新增扫描capi接口 Signed-off-by:liuhaosu@huawei.com

Signed-off-by: 刘昊苏 <liuhaosu@huawei.com>
]rxWtree e8557d9eebfe29e3b7bbeb8cb1fb3455f1ca8d9f
parent 5eca0b9d4a1ea66ce2b186f37c095eedac12cd53
parent 4261c2e1968c62ada909416a143564685416b7d6
author openharmony_ci <120357966@qq.com> 1722069502 +0000
committer Gitee <noreply@gitee.com> 1722069502 +0000

!1072 增加解码指定送显时间接口
Merge pull request !1072 from 李建超/masterwrx.x<tree d3288414c234d0018e326d6e7f89a166be8a0b60
parent 58ca024927141a1ecc74219e30b6b0d43779eb47
author 姜春丽 <jiangchunli1@huawei.com> 1722065562 +0000
committer Gitee <noreply@gitee.com> 1722065562 +0000

update multimedia/drm_framework/native_mediakeysystem.h.

Signed-off-by: 姜春丽 <jiangchunli1@huawei.com>kwx=tree ae82394990c974e9229afda2b889cd8c01969a0f
parent 0f0d211e3ff8525e3c6cbfe68b1902305bbd4249
author 姜春丽 <jiangchunli1@huawei.com> 1722065479 +0000
committer Gitee <noreply@gitee.com> 1722065479 +0000

update multimedia/drm_framework/native_mediakeysession.h.

Signed-off-by: 姜春丽 <jiangchunli1@huawei.com>lxtree d98769ec56aebb6781f671fa65b89f14768b0beb
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author hhl <yinhuiling@huawei.com> 1721701877 +0800
committer hhl <yinhuiling@huawei.com> 1722054600 +0800

add hicollie sdk_c interface

Signed-off-by: hhl <yinhuiling@huawei.com>
"V{xItree 9c1159f0d3250c4dca566a15039f04593a0d32f0
parent 6bf0bb0c60d15682a11a9568abba1424fd8b50f6
parent fab5cd64587ff40c2b93a720c1d3d8e768ce4a61
author openharmony_ci <120357966@qq.com> 1722050857 +0000
committer Gitee <noreply@gitee.com> 1722050857 +0000

!1082 fix window ndk kit
Merge pull request !1082 from zhouchengchao/masterc.xGtree 67f3c86b664ea9ef0e3ce63f34eefe5b67b93741
parent 6bf0bb0c60d15682a11a9568abba1424fd8b50f6
author yyuanche <yuancheng25@huawei.com> 1722049605 +0800
committer yyuanche <yuancheng25@huawei.com> 1722049605 +0800

【CAPI】dialog onwilldismiss方法工具方法名称修正
Signed-off-by: yyuanche <yuancheng25@huawei.com>OH_
ivxNtree 9d1b0570936806dcad09bf5e993d696cff03859f
parent 6bf0bb0c60d15682a11a9568abba1424fd8b50f6
author zhangqiang <zhangqiang342@huawei.com> 1722046725 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1722046725 +0800

20240727   ScreenCapture增加设置分辨率的新接口

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
ntxtree fe2e4e3cc4bd5e4c35335d24fe74dae2b3204795
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author houpengtao <houpengtao@huawei.com> 1721707709 +0800
committer houpengtao <houpengtao@huawei.com> 1721996933 +0800

add paste board ndk

Signed-off-by: houpengtao <houpengtao@huawei.com>
)q[xztree ea18f0b6ef6506b8452c479d5b30c313e359d6e7
parent 4e6f3f5ea5b1bc5c0e2e5a1cff0d9976bb934da7
parent b0bdede82145ebb3c0d27b7911b532d242cd13f8
author openharmony_ci <120357966@qq.com> 1721982720 +0000
committer Gitee <noreply@gitee.com> 1721982720 +0000

!1026 【CAPI】customDialog 新增registerOnWillDismissWithUserData能力
Merge pull request !1026 from yyuanche/ndk_dialogF} x
tree 5980193b40b82e00e13b423bf297de8842374fa9
parent bc807191d8559d14ca635768fa4e0a62633b74a5
author cold <lengye@huawei.com> 1721982316 +0800
committer cold <lengye@huawei.com> 1721982316 +0800

add ndk interface for camera

Signed-off-by: cold <lengye@huawei.com>
[Px`tree 85626cf06fe57d51d5f5b636c34f6ec33873624a
parent bc807191d8559d14ca635768fa4e0a62633b74a5
parent b9499d632a6380131edb61568a956ab359395250
author openharmony_ci <120357966@qq.com> 1721981789 +0000
committer Gitee <noreply@gitee.com> 1721981789 +0000

!1080 fix：补充踩内存和主线程超时事件定义
Merge pull request !1080 from wjf/masterzx2tree eb6938051e3d57b8e4130aeb0f9b396f73ff073c
parent bc807191d8559d14ca635768fa4e0a62633b74a5
author zhouchengchao <zhouchengchao4@huawei.com> 1721980387 +0800
committer zhouchengchao <zhouchengchao4@huawei.com> 1721980387 +0800

fix interface kit

Signed-off-by: zhouchengchao <zhouchengchao4@huawei.com>
bVxYtree d30e7252a8be7eadecac159cf8f41f270e515a60
parent 12a78888d9a2558d1fab85127597924e5f9168c6
parent 5bd99e732d1e478a2c2e2faca4d44236b25bb68d
author openharmony_ci <120357966@qq.com> 1721965265 +0000
committer Gitee <noreply@gitee.com> 1721965265 +0000

!1049 JSVM_PropertyAttributes新增枚举值
Merge pull request !1049 from 王翊民/masterqƝx=tree a02a82b59d2a8c8949c9928c6c424521c111dd85
parent e85eca60372f136dc727103912afb41dbc785434
author 高超 <gaochao69@huawei.com> 1721922066 +0000
committer Gitee <noreply@gitee.com> 1721922066 +0000

update global/resource_management/include/resourcemanager/ohresmgr.h.

Signed-off-by: 高超 <gaochao69@huawei.com>(hx_tree 93b8b5f459cd256bbe48edb77a601717aff0f56f
parent 481e05a359630d74356752ba4a684328958c6c1e
parent ccfb18b81ad643266d8e95fd0d5f96bcee048416
author openharmony_ci <120357966@qq.com> 1721916218 +0000
committer Gitee <noreply@gitee.com> 1721916218 +0000

!1031 update vulkan headers 275 with vk_vedio
Merge pull request !1031 from Andrew0229/v1.3.275_2~{h1x$tree 63156401e120f580b681c00c72ba7051700c6a83
parent 481e05a359630d74356752ba4a684328958c6c1e
author wjf <wujunfang1@huawei.com> 1721909046 +0800
committer wjf <wujunfang1@huawei.com> 1721909262 +0800

补充踩内存和主线程超时事件定义

Signed-off-by: wjf <wujunfang1@huawei.com>
niWx\tree 60b2ba68c83bdb36cad159d16b6020e4278b46e1
parent 691145e0f8f4ceb422886cb77e6dedafeb8fe7ba
parent de1577c49fcee09168b416fda76729dcbe770d4d
author openharmony_ci <120357966@qq.com> 1721897044 +0000
committer Gitee <noreply@gitee.com> 1721897044 +0000

!1067 UDMF NDK删除错误码，增加错误码注释
Merge pull request !1067 from JUN/masterw]xLtree d1a4bff9f10f1834dff4c6e3629991d63ce0df2c
parent 2121cf5dcdd634d4af6cc55477df8d1a54a82c20
parent 93a22419c3608ff3d5ab3a416f57532c65529f74
author openharmony_ci <120357966@qq.com> 1721895294 +0000
committer Gitee <noreply@gitee.com> 1721895294 +0000

!1052 fix Asset Linter warning
Merge pull request !1052 from CheungVane/master8d`x,tree 11e1e4f6ccd458d76dc9e2c7ef48ab7fcfdc6ece
parent 81fc1955f4c6168069adecc146fffd8c92f93054
parent 2121cf5dcdd634d4af6cc55477df8d1a54a82c20
author yyuanche <yuancheng25@huawei.com> 1721892921 +0800
committer yyuanche <yuancheng25@huawei.com> 1721892921 +0800

Merge branch 'master' into ndk_dialog
je]xJtree 0e0476cc462751a7f8bb7a346b3fb92f1d5b1fea
parent 2416006eaef78a38c99fa8ce191c9bfd6524a4e8
parent c876eaf0f6ecd0e373d7e043e3dbb0b510657d1e
author openharmony_ci <120357966@qq.com> 1721881775 +0000
committer Gitee <noreply@gitee.com> 1721881775 +0000

!999 增加拖拽事件的CAPI
Merge pull request !999 from Zhang Jinyu/capi_k`xVtree 01225083447427c63e3030cf8f70b099bab907ad
parent f74e3f5bdb343d023fa256843e63c688e2152352
parent d13b205d99bc4f782e84f2b6baa926ccf3a5c003
author openharmony_ci <120357966@qq.com> 1721881682 +0000
committer Gitee <noreply@gitee.com> 1721881682 +0000

!1068 增加C-API animatator curve默认值
Merge pull request !1068 from 邹林肯/anim?nUxItree a323c78ab47d3452b453352038925bf88d8d686d
parent 577a8360f5983485d6d116802ce5ca0d6934e9e8
parent cc3fce2332e3459551bd56aaa01ef63a14c428bb
author openharmony_ci <120357966@qq.com> 1721875775 +0000
committer Gitee <noreply@gitee.com> 1721875775 +0000

!1045 [NDK] add node native id api
Merge pull request !1045 from lisitao/l1A`ɖxVtree af56b77953cb74a97bb10c116aa778b29dd1131c
parent e57251beb8d84891ed83ee8caffdd63bd5dc0353
parent 1b0cadac45e8c66c870c25a3ab096c1ad7cec978
author openharmony_ci <120357966@qq.com> 1721875678 +0000
committer Gitee <noreply@gitee.com> 1721875678 +0000

!1057 【轻量级 PR】：kit 一致性整改
Merge pull request !1057 from ggbondd/N/AJms}xZtree a4bed4f575a232be6c18a5e4def04631eb175a5c
parent 44015d51db37089336b273e4078b54b9a58fc342
author xwx1135370 <xuyao44@huawei.com> 1721870457 +0800
committer xwx1135370 <xuyao44@huawei.com> 1721870457 +0800

修复part_config中配置的musl feature

issue：https://gitee.com/openharmony/third_party_musl/issues/IAF1XE?from=project-issue

Test：Source code compilation

Signed-off-by: xwx1135370 <xuyao44@huawei.com>
PxUtree a4b5e0bb59bcada4da1fd17f04213565098ffbe7
parent e57251beb8d84891ed83ee8caffdd63bd5dc0353
author li-jianchao1993 <lijianchao9@huawei.com> 1721831159 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1721831159 +0800

【修改说明】 增加解码指定送显时间接口

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
Jx 
tree b7814cba6a9e26a39505bbe8d5c52f667a31b0d4
parent 44015d51db37089336b273e4078b54b9a58fc342
author cold <lengye@huawei.com> 1721822256 +0800
committer cold <lengye@huawei.com> 1721822256 +0800

add kit

Signed-off-by: cold <lengye@huawei.com>
rIxjtree 864db8de91220024c0c930d631039a665df91835
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author y00656910 <yaoxingyu3@huawei.com> 1721820092 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1721821789 +0800

add imageNative_GetTimestamp interface

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: Id279090ee1db8531bb4d7d1bacf5cd72a6024276
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
zx=tree f4a9f90825456c1b6b64ad79a94bf6b02706d017
parent bc64ba00df06d06cacf8feac63cc5c7cafbae322
author 高超 <gaochao69@huawei.com> 1721819037 +0000
committer Gitee <noreply@gitee.com> 1721819037 +0000

update global/resource_management/include/resourcemanager/ohresmgr.h.

Signed-off-by: 高超 <gaochao69@huawei.com>Ekx5tree b3db48d4db300cf39fdd8a855853fd90a19dcd31
parent 86a365fbcc840c5af8ac86d808ebc7cbede0baec
author 高超 <gaochao69@huawei.com> 1721818730 +0000
committer Gitee <noreply@gitee.com> 1721818730 +0000

update global/resource_management/include/rawfile/raw_file.h.

Signed-off-by: 高超 <gaochao69@huawei.com>%hsx[tree e75708b59081ed2bb55e296d7ac618d2c45f4db8
parent 1a042ae63b5831aa864c9ecfa922073e40715f4a
parent d0a30a85544c0fcc1e91fd3ef455e2ebb90ef0b4
author openharmony_ci <120357966@qq.com> 1721813461 +0000
committer Gitee <noreply@gitee.com> 1721813461 +0000

!1066 解决架构平台接口一致性问题
Merge pull request !1066 from zhuguoyang/master&w̞x.tree ee22cdf6d6fc528d7ac7e5da186488af0b9d2faf
parent 44015d51db37089336b273e4078b54b9a58fc342
author zoulinken <zoulinken1@huawei.com> 1721786782 +0800
committer zoulinken <zoulinken1@huawei.com> 1721803606 +0800

增加C-API animatator curve默认值

Signed-off-by: zoulinken <zoulinken1@huawei.com>
fxltree e3ecfd6b9c68439b877e7a5a3bd9953164b24316
parent f54aa2fb224e6a9ec5e2fdc48d5023bf0575ecf7
author zhangjinyu101 <zhangjinyu101@huawei.com> 1721457619 +0800
committer zhangjinyu101 <zhangjinyu101@huawei.com> 1721803509 +0800

增加拖拽事件的CAPI

Signed-off-by: zhangjinyu101 <zhangjinyu101@huawei.com>
Change-Id: I1d2caf83a90136809797d35d5cfac8efe7611263
wxHtree f6f9d86cf1029ee0b4731b589b9eaad3515edfea
parent 44015d51db37089336b273e4078b54b9a58fc342
parent 91e86ca2d25f47936e2c803e6e79c6b541de964e
author openharmony_ci <120357966@qq.com> 1721793320 +0000
committer Gitee <noreply@gitee.com> 1721793320 +0000

!1055 录屏kit一致性整改
Merge pull request !1055 from 杰尼/master$=kÑx!tree f8b4aaef45835bed966769e01b8994a0f9762b66
parent 44015d51db37089336b273e4078b54b9a58fc342
author lizhuojun <lizhuojun3@huawei.com> 1721786111 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1721786111 +0800

modify errorcode and doc

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
[cxtree 32095d7bfb6cc521fee0c53500d677b0f2535047
parent 3f3f07413919769db2462e0cfb5a4f1b8192bdac
author liyang <liyang782@huawei.com> 1721783764 +0800
committer liyang <liyang782@huawei.com> 1721783764 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
U\8xtree 7e4deb6a4517e1d8753b5106ca8626d1014fe2bd
parent 44015d51db37089336b273e4078b54b9a58fc342
author zhuguoyang <1371126227@qq.com> 1721750072 +0800
committer zhuguoyang <1371126227@qq.com> 1721750072 +0800

modify ffrt annotation

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
>V|x#tree 684cdc940d45e8628c34b5036396e307925f47d8
parent beba64fc0f5f7b40524bad7df79d3fcd37d1d7c6
author lizhuojun <lizhuojun3@huawei.com> 1721742087 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1721742087 +0800

add pixelMap and errorcode

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
QK]bxtree a4b69258c8008b9957ad6067760e73a19c7d02da
parent 5f72314289484ef205ed8f0e7ae732e913e0c4d9
author liyang <liyang782@huawei.com> 1721740117 +0800
committer liyang <liyang782@huawei.com> 1721740117 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
[xJtree 4ea41bf4651abe0c17cd209252c88e6d3fc89a4f
parent 848f909884dfa35381641a22373c4c7e81d40cbc
parent 323aac06b2818fab45d3c166462e3334a68b70bf
author openharmony_ci <120357966@qq.com> 1721739387 +0000
committer Gitee <noreply@gitee.com> 1721739387 +0000

!1063 补充C文件的kit声明
Merge pull request !1063 from MengYao/masteri̟xtree 4146da66bf44d30644fa3b3c4888cd2f29cd7cd8
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author MengYao <mengyao17@huawei.com> 1721734410 +0800
committer MengYao <mengyao17@huawei.com> 1721734410 +0800

补充kit声明

Signed-off-by: MengYao <mengyao17@huawei.com>
#W!xKtree f203b6f9e98fa5e2900fb5c6265dc1cb7596f4f7
parent 42dea8aae106324675533abd6f6b2c0184181dfc
parent 1e07dd9c1681c90fc97ca7545995cd8943dd84ff
author openharmony_ci <120357966@qq.com> 1721733706 +0000
committer Gitee <noreply@gitee.com> 1721733706 +0000

!1062 添加message source type
Merge pull request !1062 from zhangkai/master
fxtree 453592cbe4446e31320af7e68b820b990c837bb3
parent 11bfaf0376ed5aa2f88101165c3997e6864d646f
author gaosix <gaochao69@huawei.com> 1721045556 +0800
committer gaosix <gaochao69@huawei.com> 1721729790 +0800

资源管理CAPI规范整改

Signed-off-by: gaosix <gaochao69@huawei.com>
]ܙxYtree 688a374690e482d3f50f019a9731f987b2b0473f
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author wanglili12 <wanglili65@huawei.com> 1721700877 +0800
committer wanglili12 <wanglili65@huawei.com> 1721722137 +0800

CAPI新增focusBox接口

Signed-off-by: wanglili12 <wanglili65@huawei.com>
Change-Id: I30e37b3eb6fa60a5199fd98939f7959a82f9415c
xyl6x"tree f203b6f9e98fa5e2900fb5c6265dc1cb7596f4f7
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author zhangkai <zhangkai269@huawei.com> 1721719572 +0800
committer zhangkai <zhangkai269@huawei.com> 1721719572 +0800

添加message source type

Signed-off-by: zhangkai <zhangkai269@huawei.com>
Z]xtree 4ca3f8f05c36a60dfee52e31c4959b6595eba48b
parent e06b8b6306d934eaa5d61c41cc089d6a08246cdb
author liyang <liyang782@huawei.com> 1721696304 +0800
committer liyang <liyang782@huawei.com> 1721696304 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
E]'xtree 03c2b70da60a1153df301b4190e40f761de0f41d
parent 5651a6078f0d0924503c8f9d74ce3e1e085b6f58
author liyang <liyang782@huawei.com> 1721660335 +0800
committer liyang <liyang782@huawei.com> 1721660335 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
[xtree a919d68225d149fbbb3b1b703137627a01b56820
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author ggbondd <guanshaojuan@h-partners.com> 1721648321 +0000
committer Gitee <noreply@gitee.com> 1721648321 +0000

kit 一致性整改

Signed-off-by: ggbondd <guanshaojuan@h-partners.com>4]xtree 1caa5f03bda4ee850264e78ce4eb4a9f2b928905
parent 9200fe2d4ebf9c9cedcc854c3921847bfdc98e8b
author liyang <liyang782@huawei.com> 1721648203 +0800
committer liyang <liyang782@huawei.com> 1721648203 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
]ƕxtree 59de3e69029531dc454e9d7c7535d9a917e2b58b
parent 42dea8aae106324675533abd6f6b2c0184181dfc
author liyang <liyang782@huawei.com> 1721641712 +0800
committer liyang <liyang782@huawei.com> 1721641712 +0800

录屏kit一致性整改

Signed-off-by: liyang <liyang782@huawei.com>
f\4x<tree b63f54b54005a4ad32dfd01c6cb343e213ff0630
parent 1933c12afa09166d588ab3c76f3595f50217864f
author 姜春丽 <jiangchunli1@huawei.com> 1721637969 +0000
committer Gitee <noreply@gitee.com> 1721637969 +0000

update multimedia/drm_framework/native_mediakeysystem.h.

Signed-off-by: 姜春丽 <jiangchunli1@huawei.com>kx2tree 789c50d03af841886de3090dede88c7570e90d1a
parent 421cd3208f03130bd3a7e61075e2f1d414611b7e
author 姜春丽 <jiangchunli1@huawei.com> 1721634374 +0000
committer Gitee <noreply@gitee.com> 1721634374 +0000

update multimedia/av_codec/native_avdemuxer.h.

Signed-off-by: 姜春丽 <jiangchunli1@huawei.com>Mgx2tree 4ce75746b2ae79dae921f53218b0182acca0e5c1
parent f2034c2441e3f7fb3d21981a61d6090cea241ecd
author 姜春丽 <jiangchunli1@huawei.com> 1721634325 +0000
committer Gitee <noreply@gitee.com> 1721634325 +0000

update multimedia/av_codec/native_avdemuxer.h.

Signed-off-by: 姜春丽 <jiangchunli1@huawei.com>DhUxEtree 86f04225a5aaca6bf89a6e6418ccdf2b7c189e18
parent 3c24d47f932c78808864591c64df072929f99d2a
parent c874ddcab981e15bbcada21d0c058dd7ec6af387
author openharmony_ci <120357966@qq.com> 1721630884 +0000
committer Gitee <noreply@gitee.com> 1721630884 +0000

!1051 修改编译文件类型
Merge pull request !1051 from JUN/master.jhxetree 385d50cef63a3176a986d78c3b8434c5f56e61fe
parent a895d87a616d61e2eaaaeef2f2d210d68cf351b7
parent 58993d58c99d5fd09a74d0c9f5e5564c35470c85
author openharmony_ci <120357966@qq.com> 1721622254 +0000
committer Gitee <noreply@gitee.com> 1721622254 +0000

!1003 ImageEffect新增添加、删除、替换滤镜接口
Merge pull request !1003 from 朱锐/masterB}'x.tree 7944ef00c7a30984d049aea06d8fe6ff92a0fd1a
parent 76c03e90c5ceb403009535c3249cdac1e4c022b5
author lizhuojun <lizhuojun3@huawei.com> 1721621052 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1721621052 +0800

add new UDS(OpenHarmonyFrom, FileUri)

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
$=`Fx>tree 7529be824c50bb8490650a752ba9ff333b57104c
parent 76c03e90c5ceb403009535c3249cdac1e4c022b5
parent b5b9b27c581ed10bec98638d5f98b764ae6c1ff7
author openharmony_ci <120357966@qq.com> 1721620560 +0000
committer Gitee <noreply@gitee.com> 1721620560 +0000

!1042 fix parameter
Merge pull request !1042 from oscrlet/master*^Ԛx*tree 52c24a3c28b18bb18ea08d15cfe821d27eab4ee8
parent 76c03e90c5ceb403009535c3249cdac1e4c022b5
author CheungVane <zhangwenzhi3@huawei.com> 1721620232 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1721620232 +0800

fix Asset Linter warning
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
_x!tree 295a644315b5fc61e27310d6bdee07561106c997
parent 9be603fa8e8e897ea9a0812cdcb7cc6e6adf0180
author lizhuojun <lizhuojun3@huawei.com> 1721619605 +0800
committer lizhuojun <lizhuojun3@huawei.com> 1721619605 +0800

modify UDMF NDK build GN

Signed-off-by: lizhuojun <lizhuojun3@huawei.com>
[xAtree 8fb89973761024453c5456f0283072323ac08817
parent 76c03e90c5ceb403009535c3249cdac1e4c022b5
author 王翊民 <wangyimin15@huawei.com> 1721615443 +0800
committer 王翊民 <wangyimin15@huawei.com> 1721615443 +0800

Add JSVM_NO_RECEIVER_CHECK to JSVM_PropertyAttributes

Signed-off-by: 王翊民 <wangyimin15@huawei.com>
3k%x7tree 10d7a8069623e543c6b3f9810e5e84a2bd716a09
parent 747d408a69c2c8618edb98c8661e385f7caaabbd
author jiangchunli <jiangchunli1@huawei.com> 1721614273 +0000
committer jiangchunli <jiangchunli1@huawei.com> 1721614273 +0000

change the error code description.

Signed-off-by: jiangchunli <jiangchunli1@huawei.com>
XmcxVtree 9f812a73a877e6da99ac6a423245a9eaa7d7b970
parent ce2867a776c97a83339bb910e0eee3aefad10f15
parent 76c03e90c5ceb403009535c3249cdac1e4c022b5
author jiangchunli <jiangchunli1@huawei.com> 1721613616 +0000
committer jiangchunli <jiangchunli1@huawei.com> 1721613616 +0000

Merge branch 'master' of https://gitee.com/jiang-chunli/interface_sdk_c
VkxRtree a76e3c71ee71e532d6fd7a6de3811da70bbc7ba9
parent 0b8869af5de427ad6ba3aac7af7028736436ba98
parent 1d3b3596bed4fff67265612138e19267aab925df
author openharmony_ci <120357966@qq.com> 1721468778 +0000
committer Gitee <noreply@gitee.com> 1721468778 +0000

!1047 算法库NDK支持头文件kit化
Merge pull request !1047 from lanming/masterpixCtree 24291691bca88ff96e5ddcd2e7d1c45b99df58eb
parent 9be603fa8e8e897ea9a0812cdcb7cc6e6adf0180
parent d48ed7db705b45ac244b92c7c62397ed7f32d7ad
author openharmony_ci <120357966@qq.com> 1721468750 +0000
committer Gitee <noreply@gitee.com> 1721468750 +0000

!966 支持vtt字幕轨解析
Merge pull request !966 from zzm/master7jxtree 1ec51bb21ebb0306ec495a396cb994403a3c7ac1
parent 9be603fa8e8e897ea9a0812cdcb7cc6e6adf0180
author lanming <lanming@huawei.com> 1721462036 +0800
committer lanming <lanming@huawei.com> 1721462036 +0800

算法库NDK支持头文件kit化

Signed-off-by: lanming <lanming@huawei.com>
bx*tree 24291691bca88ff96e5ddcd2e7d1c45b99df58eb
parent bbbac4501333a27b995f8a4350dab34032da5ebe
author zzm <zhangzhiming23@huawei.com> 1721448738 +0000
committer zzm <zhangzhiming23@huawei.com> 1721459269 +0000

【修改说明】：增加版本标识

Signed-off-by: zzm <zhangzhiming23@huawei.com>
fl=xvtree 0f68c9ad3de51e305be449151c5af93409205a7e
parent 5ee08b3b38f690eda282855bc8017af3ff1873df
parent 9be603fa8e8e897ea9a0812cdcb7cc6e6adf0180
author zzm <zhangzhiming23@huawei.com> 1721442474 +0000
committer Gitee <noreply@gitee.com> 1721442474 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: zzm <zhangzhiming23@huawei.com>|nwxCtree d145139d6ba2565be0d6943979fdd714a2894ffd
parent bcde126ef3aebd70a51b9f8e35da5574459b2d04
parent 8e89661ac3d062f8f39e9fd0aca623fbedf4c198
author openharmony_ci <120357966@qq.com> 1721389085 +0000
committer Gitee <noreply@gitee.com> 1721389085 +0000

!882 zlib update 1.3.1
Merge pull request !882 from xinking129/mastern`xYtree 54d210a67df2fd2a0e6f4f59d9a175a9d8d51155
parent ec330e2f3fa9db83adf025cc5cfe4547eef2a9b6
parent 01a98eddd39f567174ce2cf8f746ef25e8b75a33
author openharmony_ci <120357966@qq.com> 1721385780 +0000
committer Gitee <noreply@gitee.com> 1721385780 +0000

!1040 增加算法库Public C Api 头文件
Merge pull request !1040 from lichaochen/masterrrxdtree 9c33023ccc27879c10e5b1f9a97a9fbc41c5ac92
parent 5960603821a7ba13f14aa78513d829d82a883a95
parent 7ccf5809efdee73916c3e8a372ab8351d2a5934e
author openharmony_ci <120357966@qq.com> 1721384793 +0000
committer Gitee <noreply@gitee.com> 1721384793 +0000

!1005 NativeImage对外暴露NativeWindowBuffer需求
Merge pull request !1005 from 马靖涛/20240712!tÒxrtree 48c7a063db8287d2bbb2babf699666fea453f7c0
parent 7bde71723bc011f35003c029f247ce1e435abc3c
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1721378999 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1721378999 +0800

[NDK] add node native id api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
Ɂtxtree 7ba35f9302a90bbf3129e0a755fde17b9206a52d
parent 39c5f4fbd96cd23e5305fc9e3b847db5d31e4733
author lcc <lichaochen@huawei.com> 1720168772 +0800
committer lcc <lichaochen@huawei.com> 1721378113 +0800

增加算法库Public C Api 头文件

Signed-off-by: lcc <lichaochen@huawei.com>
F`xGtree 3c8815f0f1fa6837993ff952b2aadddc41a92a49
parent 7bde71723bc011f35003c029f247ce1e435abc3c
parent caf67d3467dc7133789cb249d3602d79d5f89995
author openharmony_ci <120357966@qq.com> 1721377357 +0000
committer Gitee <noreply@gitee.com> 1721377357 +0000

!1011 支持wav封装格式
Merge pull request !1011 from cailei24/masterXqgxEtree 09abb88cb03456d0eb38305bd3e4957847bf6e83
parent 8d734429d330ba41dcf6588ef455c61422af64e2
parent d234d6d32de2f27a8eb893f8648a1747b5d71c1c
author openharmony_ci <120357966@qq.com> 1721376551 +0000
committer Gitee <noreply@gitee.com> 1721376551 +0000

!1041 增加注释描述
Merge pull request !1041 from 姚朱鹏/master^ixPtree 0967763bc1a2592caf0deddc74a45262f1bdcb3a
parent d59425575574581e0b0d965f15ffd16e73c8b695
parent 46380aec809c378ace9c20dcc1d995bcf549cdeb
author openharmony_ci <120357966@qq.com> 1721372821 +0000
committer Gitee <noreply@gitee.com> 1721372821 +0000

!1039 CAPI-DIFF工具结果新旧版本内容列中内容要与js一致，CAPI-统计工具结果增加开源/闭源/三方库API列
Merge pull request !1039 from zhangwu/masterL/ؙx	tree f53c41d6e2421b6ea97ba1a5a68ddd1b71acfc7f
parent d59425575574581e0b0d965f15ffd16e73c8b695
author yanghaiming <yanghaiming4@huawei.com> 1721370354 +0800
committer yanghaiming <yanghaiming4@huawei.com> 1721370354 +0800

fix parameter type of compile with options
T&xFtree c663d7f3c4cc0747c59e1ba143a07476aa38382b
parent ab59a98d3e140862485755dd42900cd0f8ff1da6
parent 14a5ac081498d93a848bf7cafbfa8ce908bd79f0
author openharmony_ci <120357966@qq.com> 1721367381 +0000
committer Gitee <noreply@gitee.com> 1721367381 +0000

!1036  修改接口注释
Merge pull request !1036 from 李建超/masterMkxVtree b7ad26c8e5afd4176a30cf0f5187bee148781b7b
parent 2f4604565b92bdd5c35ea410b200f9f661acb3a9
parent 8f13684132fdbbc0875dae1cfc4c689c006baed1
author openharmony_ci <120357966@qq.com> 1721364498 +0000
committer Gitee <noreply@gitee.com> 1721364498 +0000

!1035 修改NODE_WATER_FLOW_GAP的注释
Merge pull request !1035 from 李俊峰/comment%oxtree 3950505ca4e8e7baa6daef4f650341ff3ccc22c9
parent f54aa2fb224e6a9ec5e2fdc48d5023bf0575ecf7
author yaozhupeng <yaozhupeng@huawei.com> 1721358560 +0800
committer yaozhupeng <yaozhupeng@huawei.com> 1721358951 +0800

add description

Signed-off-by: yaozhupeng <yaozhupeng@huawei.com>
!\?x~tree 939e838d2918c357b49f6fabf4ee9d0de03460c7
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
author zhangwuf <zhangwu47@huawei.com> 1721301479 +0800
committer zhangwuf <zhangwu47@huawei.com> 1721358472 +0800

CAPI-DIFF工具结果新旧版本内容列中内容要与js一致，CAPI-统计工具结果增加开源/闭源/三方库API列

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
Ϡxbtree 86d7aa510d9ba8e5c3ebdc7eacbffedb5438ed1d
parent f54aa2fb224e6a9ec5e2fdc48d5023bf0575ecf7
parent 7c50aae2cf8050de6ca6fdc011626f00911e215e
author openharmony_ci <120357966@qq.com> 1721357261 +0000
committer Gitee <noreply@gitee.com> 1721357261 +0000

!1025 [新需求]: 增加mp4视频码流格式支持
Merge pull request !1025 from 杨俊晖/0715vvc{}'xitree 55c0ecd1b27f7bf36600291fbcab34d6dec029fa
parent c7628bd40ed4bb846fb58ca746b6ed0ab6097872
author m00472246 <majingtao1@huawei.com> 1720756671 +0800
committer m00472246 <majingtao1@huawei.com> 1721355000 +0800

NativeImage对外暴露NativeWindowBuffer需求 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
cvtxVtree 6bb8948142e64b42c2576791e0a4797e6c09afc3
parent d1fc2f0cf250dbbc7733c6c42e66fb8ab72abe37
parent 013c4ef1bb0b1cfbc3137b3d24c08f55f0e50820
author openharmony_ci <120357966@qq.com> 1721321302 +0000
committer Gitee <noreply@gitee.com> 1721321302 +0000

!1016 新增pixelmap缩放和stride接口
Merge pull request !1016 from 姚朱鹏/masterrxxtree 88ac2b15e3fc75431ca9b54f01672640eae656a6
parent ed0c9b498b10bdb82639a52739c021c12b2349ad
parent 34fbdbd53097d13acc3855df281ea2b2b2125632
author openharmony_ci <120357966@qq.com> 1721302208 +0000
committer Gitee <noreply@gitee.com> 1721302208 +0000

!410 修改image_source_mdk.h头文件定义的字符串定义
Merge pull request !410 from 姚星宇/fix_duplicate_symbolcۅxNtree 79ea9fc33d90ec352b8a861307fbd3447df3a0fb
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
parent d035b7469c24c9849dc0ad3d02a84d7383a65737
author openharmony_ci <120357966@qq.com> 1721292484 +0000
committer Gitee <noreply@gitee.com> 1721292484 +0000

!1028 shadow修改实际单位。
Merge pull request !1028 from 邹林肯/shadow_8nVxKtree 25d4a83b90c5ee8e460b3a9858f3026cd776be13
parent a8ad1f6f4270364809f05e842b6fb40205afcf7d
author y30025806 <yangjunhui10@huawei.com> 1721291472 +0800
committer y30025806 <yangjunhui10@huawei.com> 1721291472 +0800

add vvc

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: I12cf926aa7562b24514e5a83ef60fa5c7fbc237b
~`xBtree d76b065155251e7cfd81491c9581a3777c1b7215
parent a0d1164c366be58049099dc7f2d192a400bfdbaa
author 姚朱鹏 <yaozhupeng@huawei.com> 1721289743 +0000
committer Gitee <noreply@gitee.com> 1721289743 +0000

update multimedia/image_framework/include/image/pixelmap_native.h.

Signed-off-by: 姚朱鹏 <yaozhupeng@huawei.com>nGxBtree 4eb35d161c7002d70b001e398a4daa62d84ea9da
parent 17104892537c2803d63309ad2c5defd564908b64
author 姚朱鹏 <yaozhupeng@huawei.com> 1721289236 +0000
committer Gitee <noreply@gitee.com> 1721289236 +0000

update multimedia/image_framework/include/image/pixelmap_native.h.

Signed-off-by: 姚朱鹏 <yaozhupeng@huawei.com>	n6x"tree 0677155c6a5f6edd3c59f0cc4d12e96c2ed52d5f
parent 2fea429902d029d08c46e2a74843980b5f1f7c2b
author yaozhupeng <yaozhupeng@huawei.com> 1720958657 +0800
committer yaozhupeng <yaozhupeng@huawei.com> 1721287791 +0800

add pixelmap interface

Signed-off-by: yaozhupeng <yaozhupeng@huawei.com>
>l]x#tree 31ab79454ab482d0d717145961766d9bfafe837c
parent 2ee211578e9ad7bd1ba56db75bfc4f8d4a1110c1
author 邹林肯 <735001321@qq.com> 1721286356 +0000
committer Gitee <noreply@gitee.com> 1721286356 +0000

update arkui/ace_engine/native/native_node.h.

Signed-off-by: 邹林肯 <735001321@qq.com>Ps^ x4tree f726ab11d36bbd461dd0c3ba15e1d2bbb3bab3ef
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
author jiangchunli <jiangchunli1@huawei.com> 1721269369 +0000
committer jiangchunli <jiangchunli1@huawei.com> 1721283846 +0000

Add a comment for drm callback.

Signed-off-by: jiangchunli <jiangchunli1@huawei.com>
'bœxCtree 137d5833120bff6d20874cbe5aa104ce6b26c75e
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
author li-jianchao1993 <lijianchao9@huawei.com> 1721228680 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1721228680 +0800

【修改说明】 修改接口注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
;pƟxtree 70b1cd6ea2b0e196ebab648eb641a08e02754823
parent 8c53476cdf67f3417065e393b2a0fdc38d7eae34
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
author 杨俊晖 <yangjunhui10@huawei.com> 1721228431 +0000
committer Gitee <noreply@gitee.com> 1721228431 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 0715vvc

Signed-off-by: 杨俊晖 <yangjunhui10@huawei.com>8X~Ixftree 5674f35c84e00c3796d8160ab36a9aefd19c5e3d
parent 2a6873e67e2903b8a2a1121a1c6bfa71de985843
author zcdqs <junfeng.lijunfeng@huawei.com> 1721221479 +0800
committer zcdqs <junfeng.lijunfeng@huawei.com> 1721222576 +0800

update comment of waterflow gap

Signed-off-by: zcdqs <junfeng.lijunfeng@huawei.com>
Change-Id: Ic9d02111cb4974adeb4d0dcab9e77509d2028de9
jpxBtree 43bebbea9ee6de42ca2e5232ef38708b8ed4aea5
parent e2e26cb95e60f791a965d9a3fbb412d10850fcf0
parent d7d2eb8be410137465a5cd1b462ed3c5ac83dddd
author openharmony_ci <120357966@qq.com> 1721210216 +0000
committer Gitee <noreply@gitee.com> 1721210216 +0000

!906 udmf ndk 接口
Merge pull request !906 from zhangyuchao/masterdxFtree 88b30e31f2450aa9701ac0b672ff6007bc95ecf1
parent 74cf9824c9c1f6c309955fe16b585e0ccd00bdac
parent e82e99ac3730e09ba4b9a6e6c3d95b9044fdbe99
author openharmony_ci <120357966@qq.com> 1721196811 +0000
committer Gitee <noreply@gitee.com> 1721196811 +0000

!1012  修改接口注释
Merge pull request !1012 from 李建超/masterkxPtree c1819dbe741775f5cb4dbd9739981c4669931f06
parent df9e93f6509ac16a7aaafb3d80e19db2129931b5
author andrew0229 <zhangzhao62@huawei.com> 1721132801 +0800
committer andrew0229 <zhangzhao62@huawei.com> 1721182186 +0000

add vk_video

Signed-off-by: andrew0229 <zhangzhao62@huawei.com>
Change-Id: I07f8a0c044e62ec0225b3d8df89f34616880760b
<dux-tree 5f26c140009ea54b9f3f8acdda372c040b45b836
parent 74cf9824c9c1f6c309955fe16b585e0ccd00bdac
author andrew0229 <zhangzhao62@huawei.com> 1720685233 +0800
committer andrew0229 <zhangzhao62@huawei.com> 1721134907 +0000

update vulkan headers v1.3.275

Signed-off-by: andrew0229 <zhangzhao62@huawei.com>
X\9x|tree a48ffd31f3a1c6d61c5ab6bca7834cda1999ec43
parent 3a841c4049bf6694f84396693387b8cbdbf1fec2
author z00544238 <zyc.wei@huawei.com> 1718875529 +0800
committer z00544238 <zyc.wei@huawei.com> 1721123032 +0800

IssueNo:
Description:
Sig: SIG_DataManagement
Feature or Bugfix:
Binary Source:No/Yes
TDD:Pass
XTS:Pass
Pretest:Pass/Fail/NA

Signed-off-by: z00544238 <zyc.wei@huawei.com>
8u7x#tree 300c0b83d801aab474b640b8916b96700ac7480c
parent 74cf9824c9c1f6c309955fe16b585e0ccd00bdac
author zoulinken <zoulinken1@huawei.com> 1721119696 +0800
committer zoulinken <zoulinken1@huawei.com> 1721119696 +0800

modify custom shadow units

Signed-off-by: zoulinken <zoulinken1@huawei.com>
]xLtree 910f8539b8fd570b622e57efbd0eca0160938ec6
parent 74cf9824c9c1f6c309955fe16b585e0ccd00bdac
author yyuanche <yuancheng25@huawei.com> 1721113493 +0800
committer yyuanche <yuancheng25@huawei.com> 1721113493 +0800

【CAPI】customDialog 新增registerOnWillDismissWithUserData能力
Signed-off-by: yyuanche <yuancheng25@huawei.com>
Vr+xLtree a23da2ac05d45f9bff9c3564a09d7b356faddf9b
parent 2970f7286b1ab38bac94e13d0ffc61558d665a59
parent 179a5219264d685f7dc637bb5b77d87e9e1257d7
author openharmony_ci <120357966@qq.com> 1721106977 +0000
committer Gitee <noreply@gitee.com> 1721106977 +0000

!1022 补充头文件@kit标签
Merge pull request !1022 from 韩晓东/master*nxKtree 94fffde8a2291fe26694e44395837e302aadd80a
parent 2970f7286b1ab38bac94e13d0ffc61558d665a59
author y30025806 <yangjunhui10@huawei.com> 1721095589 +0800
committer y30025806 <yangjunhui10@huawei.com> 1721095589 +0800

add vvc

Signed-off-by: y30025806 <yangjunhui10@huawei.com>
Change-Id: Ide74364dbb16b6ecdc5ff14df3df06bf844d5373
˲axZtree 39216e46dbb09c56869bccb311275817ab6ce5f4
parent fa5790961dc48828497c48621047add7acdf3e65
parent afce3ba53eb87d75633136c8e41cc4bceecebabc
author openharmony_ci <120357966@qq.com> 1721048185 +0000
committer Gitee <noreply@gitee.com> 1721048185 +0000

!1001 diff结果列标更新，与js-diff结果列标保持一致和新增或删除文件，需要把文件的内容报出
Merge pull request !1001 from zhangwu/masterWxFtree fa75a134e878ebe39f62e35dfc256c07f684aec6
parent 4373c827134cec01e8d59d7ea7e200b2d71056d7
parent 45d6b64f8d93c0795718c5d35d9a0078b3502045
author openharmony_ci <120357966@qq.com> 1721043927 +0000
committer Gitee <noreply@gitee.com> 1721043927 +0000

!986 添加接口描述
Merge pull request !986 from wangyan/wangyan0710g"xQtree e35cccb2cb3283ff747f50c794aa40fca33bbc5d
parent b8960a5893f2742565c862bb45ca420566a92ec2
parent f3f643b6ab1a16f1a380ce9a93ce386064add97d
author openharmony_ci <120357966@qq.com> 1721043811 +0000
committer Gitee <noreply@gitee.com> 1721043811 +0000

!1020 增加@kit标签
Merge pull request !1020 from yangfan/image_framework_addKitƑjx8tree c25cc6286915316049c7f4718c58869e96d65fad
parent 5e455bdf096a0389d2f92d67a93195a0ab248ea7
author z00428214 <zhurui17@huawei.com> 1720707487 +0800
committer z00428214 <zhurui17@huawei.com> 1721041369 +0800

imageEffect新增滤镜添加、删除、替换接口

Signed-off-by: z00428214 <zhurui17@huawei.com>
nkȜxLtree 9bae5cf7ec5e041d1e7afc9a319c9e6537214382
parent 5e3a1f379a451adbe684bc3454b7400799b3b61b
parent f55ef48acb375700be1781174666abc51f21dfdb
author openharmony_ci <120357966@qq.com> 1721034546 +0000
committer Gitee <noreply@gitee.com> 1721034546 +0000

!1021 头文件添加@kit标签
Merge pull request !1021 from 秦川钞/masterLDnxFtree 1b3e4d92f51455408a8311976fbc026905edaa81
parent acce4bff13a369bc143c47e69a55ac58a1b1e360
author 韩晓东 <hanxiaodong17@h-partners.com> 1721030187 +0000
committer Gitee <noreply@gitee.com> 1721030187 +0000

update multimedia/media_library/media_asset_base_capi.h.

Signed-off-by: 韩晓东 <hanxiaodong17@h-partners.com>%o/xItree 18b5763eca386a4559449a68ee16133c3a29615e
parent 5e3a1f379a451adbe684bc3454b7400799b3b61b
author 韩晓东 <hanxiaodong17@h-partners.com> 1721030005 +0000
committer Gitee <noreply@gitee.com> 1721030005 +0000

update multimedia/media_library/media_asset_manager_capi.h.

Signed-off-by: 韩晓东 <hanxiaodong17@h-partners.com>ox?tree 9b0b56e8966ad883c84d889f6be023ab3642551f
parent 29fd89cfc3bd474f12e8b7a6bac6d1e9d036fed8
parent aec6b967b9cb28c3dec7e8b2929628defaeacf3c
author openharmony_ci <120357966@qq.com> 1721028852 +0000
committer Gitee <noreply@gitee.com> 1721028852 +0000

!1002 kit告警清除
Merge pull request !1002 from 谢智宇/kit_hIx+tree a1a72ef891ab79fb5941e4e0ee03d9901bf86d27
parent 29fd89cfc3bd474f12e8b7a6bac6d1e9d036fed8
author 秦川钞 <qinchuanchao@h-partners.com> 1721028384 +0800
committer 秦川钞 <qinchuanchao@h-partners.com> 1721028384 +0800

添加@kit标签

Signed-off-by: 秦川钞 <qinchuanchao@h-partners.com>
lRmxtree 62fcf7bca41cf4eb14c31554375670a0891b053d
parent 750173f096f705ecfd20ce7bc5b741b3e78e22e5
author yangfan <yangfan174@huawei.com> 1721026181 +0800
committer yangfan <yangfan174@huawei.com> 1721026181 +0800

删除空格

Signed-off-by: yangfan <yangfan174@huawei.com>
LVxUtree 8e65454747424234b76323a5b23f37f4e8826cb8
parent c3e1e94fc9af922efcfa777ca7fd79b4be9301ad
parent d9ee3fb7c5a464fe1082a4fe8e52e585ee7292b4
author openharmony_ci <120357966@qq.com> 1721024791 +0000
committer Gitee <noreply@gitee.com> 1721024791 +0000

!1018 更新vulkan headers opensource
Merge pull request !1018 from Andrew0229/v1.3.275h~xtree d196c301b844852c364af7dc50dfbd126c763912
parent b1394a7247db4f15963368e8e5fb22799ead774a
author yangfan <yangfan174@huawei.com> 1721024328 +0800
committer yangfan <yangfan174@huawei.com> 1721024328 +0800

删除空格

Signed-off-by: yangfan <yangfan174@huawei.com>
aVyxtree d46f0392bfafc4ae47b5e2866808ff1bc41a1dbf
parent 006926032c11bb4f6605c474a9a42109d9d5013c
author yangfan <yangfan174@huawei.com> 1721024039 +0800
committer yangfan <yangfan174@huawei.com> 1721024039 +0800

增加@kit标签

Signed-off-by: yangfan <yangfan174@huawei.com>
6X5xKtree 3b6b341a56749b9daa01d1c787740f7d0e575cb0
parent db26a73447cfc22688671dbce0eaa003e48bbd93
parent f90861415f9617eccddf5cda0065d35b2480ef79
author openharmony_ci <120357966@qq.com> 1721023838 +0000
committer Gitee <noreply@gitee.com> 1721023838 +0000

!1017 buffer_handle增加kit
Merge pull request !1017 from 马靖涛/20240715/gxItree 625c26021574d921c3095ebd3fe2e5a480133c2f
parent 006926032c11bb4f6605c474a9a42109d9d5013c
parent 30ce6b9c6f6666feb60546231141ed39d97eef82
author openharmony_ci <120357966@qq.com> 1721015402 +0000
committer Gitee <noreply@gitee.com> 1721015402 +0000

!1009 ohaudio 添加kit标签
Merge pull request !1009 from zhangkai/master}ex/tree 575275f0746450cb3a8f7136b74519d1de307e00
parent 006926032c11bb4f6605c474a9a42109d9d5013c
author andrew0229 <zhangzhao62@huawei.com> 1721014854 +0800
committer andrew0229 <zhangzhao62@huawei.com> 1721014854 +0800

update vulkan headers opensource

Signed-off-by: andrew0229 <zhangzhao62@huawei.com>
7\YxPtree 14a29a09acf772735855092d2f26f78b3ff9c48a
parent 006926032c11bb4f6605c474a9a42109d9d5013c
author m00472246 <majingtao1@huawei.com> 1721013235 +0800
committer m00472246 <majingtao1@huawei.com> 1721013235 +0800

buffer_hadnle增加kit Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
7fmx=tree bd36b93960bd76ff324ec02223ad968d11bad12c
parent 4c074fbd73cfed969a4b79bb7100f7c0669524dd
author 姚星宇 <yaoxingyu3@huawei.com> 1721009971 +0000
committer Gitee <noreply@gitee.com> 1721009971 +0000

update multimedia/image_framework/include/image_source_mdk.h.

Signed-off-by: 姚星宇 <yaoxingyu3@huawei.com>ݰlȑxAtree e982e702babae2650369ec279b2659af6b51a3b2
parent 2fea429902d029d08c46e2a74843980b5f1f7c2b
parent 021d161393822b60ebaf5372a2b76561e8f51773
author openharmony_ci <120357966@qq.com> 1721009876 +0000
committer Gitee <noreply@gitee.com> 1721009876 +0000

!1014 log.h add kit
Merge pull request !1014 from buzhenwang/master(^xDtree 8d8dd62b4760c64cf3d0f87f06b7de05ce13c0db
parent 6f1af4b5436a1816f4b8bfc9865b3da4209430c0
parent afe3058c3ca8c311904435f2fb7e4eac2994d225
author openharmony_ci <120357966@qq.com> 1720937702 +0000
committer Gitee <noreply@gitee.com> 1720937702 +0000

!995 add retain for script
Merge pull request !995 from oscrlet/masterjbxFtree 2b0798964173d9ae532920e8a94ce3a42d3ad14c
parent f8efe9367ab4f52bf7a08f641eb0c5e2a7584e94
author yanghaiming <yanghaiming4@huawei.com> 1720662726 +0800
committer yanghaiming <yanghaiming4@huawei.com> 1720925334 +0800

add retain for script && open inspector with name

Signed-off-by: yanghaiming <yanghaiming4@huawei.com>
hxtree ca264cd81aa84ff881c5041a49056e205abc051e
parent 6f1af4b5436a1816f4b8bfc9865b3da4209430c0
author buzhenwang <buzhenwang@huawei.com> 1720857030 +0800
committer buzhenwang <buzhenwang@huawei.com> 1720857030 +0800

log.h add kit

Signed-off-by: buzhenwang <buzhenwang@huawei.com>
]XԓxCtree f7dfc307559aca39f36d1e7e3be3171e935d8d24
parent f668b1239ee9664c8941abe5806987ef44757726
author li-jianchao1993 <lijianchao9@huawei.com> 1720856061 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1720856061 +0800

【修改说明】 修改接口注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
Lpxtree 1804bb6242cbc8341283411da1f748b38c0fff1e
parent 6f1af4b5436a1816f4b8bfc9865b3da4209430c0
author cailei <cailei24@huawei.com> 1720836280 +0800
committer cailei <cailei24@huawei.com> 1720836280 +0800

增加mulaw的wav封装

Signed-off-by: cailei <cailei24@huawei.com>
KX?x tree b3ea4c5c46441272580136c1afdf62e8e34ccb57
parent 6f1af4b5436a1816f4b8bfc9865b3da4209430c0
author zhangkai <zhangkai269@huawei.com> 1720832811 +0800
committer zhangkai <zhangkai269@huawei.com> 1720832811 +0800

ohaudio 添加kit标签

Signed-off-by: zhangkai <zhangkai269@huawei.com>
]ȜxLtree 6e717dc561306476a15970c1b07d0d404c7c5e19
parent 5e455bdf096a0389d2f92d67a93195a0ab248ea7
author zt147369 <zhangting201@huawei.com> 1720690433 +0800
committer 谢智宇 <xiezhiyu2@huawei.com> 1720767703 +0800

清除kit告警

Change-Id: If40093fcbb62a678d36723b8acd423152577b24c
Signed-off-by: 谢智宇 <xiezhiyu2@huawei.com>
smx@tree e86c0ce93644abe7f391b6f1ba314749d08c0241
parent f6bd36fac9055c522941a995c9a4b848f9433c7d
parent 47f31fd73663c07d6d5efac44a9526444d32427b
author openharmony_ci <120357966@qq.com> 1720764467 +0000
committer Gitee <noreply@gitee.com> 1720764467 +0000

!1004 Add kit tags
Merge pull request !1004 from lilanqing/0712kit-^
xBtree 67701d69a11a51874a35202b6b790c50bd1f1a2a
parent 5e455bdf096a0389d2f92d67a93195a0ab248ea7
parent bd1f851c686626e21ae74c73bbef1a27de181d61
author openharmony_ci <120357966@qq.com> 1720757273 +0000
committer Gitee <noreply@gitee.com> 1720757273 +0000

!974 增加kit标签
Merge pull request !974 from ustc-tianyu/masterj<dxtree a94b1da1b8acba5b0afda98d53a2e5cb1bd587fb
parent e5a26b75ad511a4f1228b7448f8d3ffc664a5975
author ustc-tianyu <dutianyu4@huawei.com> 1720249531 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1720753887 +0800

add kit label
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
ZAYđxtree da86aa79d6134e5ca8c3b4983d2d2fa373f9add7
parent 5e455bdf096a0389d2f92d67a93195a0ab248ea7
author lilanqing <lilanqing@huawei.com> 1720750514 +0800
committer lilanqing <lilanqing@huawei.com> 1720750514 +0800

kit declare

Signed-off-by: lilanqing <lilanqing@huawei.com>
	Vcxwtree 1a4a5686b4c086333dcfc13a00b8bb3b944693d9
parent afcca39c3e94797b9a00188da4945b5bf0d5fa9c
author zhangwuf <zhangwu47@huawei.com> 1720689126 +0800
committer zhangwuf <zhangwu47@huawei.com> 1720689126 +0800

diff结果列标更新，与js-diff结果列标保持一致和新增或删除文件，需要把文件的内容报出

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
uxStree 8c8880a0ea898bc8d621ce6550712a1ba7f3e497
parent afcca39c3e94797b9a00188da4945b5bf0d5fa9c
parent 10e4e375eff4e10c90fb99ba26f8fd68515793fd
author openharmony_ci <120357966@qq.com> 1720680946 +0000
committer Gitee <noreply@gitee.com> 1720680946 +0000

!988 【NDK】CAPI缺失kit标签补充
Merge pull request !988 from yyuanche/ndk_kitoxBtree d67d72e4faaf4aecea511417a1d5fcbc47de2b85
parent 66ddcbbddde7025e8b820361e1512aa20ed0248d
parent 3af2e41aaa66e8217538aecd30eb422935102b8b
author openharmony_ci <120357966@qq.com> 1720678158 +0000
committer Gitee <noreply@gitee.com> 1720678158 +0000

!992  修改@kit名称
Merge pull request !992 from 李建超/masteri0xntree 4d21819c4c829934ea8fdee3891b6e976c4ca7e7
parent f8efe9367ab4f52bf7a08f641eb0c5e2a7584e94
parent bc0e1f87509b4287741ae3aeabd15b3be2079497
author openharmony_ci <120357966@qq.com> 1720669415 +0000
committer Gitee <noreply@gitee.com> 1720669415 +0000

!978 modify musl version information from 1.2.3 to 1.2.5
Merge pull request !978 from 仇玉加/sdk_musl_versionhs>x-tree ecf4535413f9c9cf53dc8cfe2767fdeee70d2b2f
parent 03262d2977fc181eb6c6552ba28befa4e3907714
author wangyan <wangyan431@huawei.com> 1720616332 +0000
committer Gitee <noreply@gitee.com> 1720616332 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: wangyan <wangyan431@huawei.com>s`%xAtree 9d407eb23e3bcbe65548fe7d57b14fdae7737cf4
parent f8efe9367ab4f52bf7a08f641eb0c5e2a7584e94
author li-jianchao1993 <lijianchao9@huawei.com> 1720613734 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1720613734 +0800

【修改说明】 修改@kit名称

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
yox-tree 2cb83e0c60e4accbf336a846d3724401a393271e
parent 0aa74d7efca0589bd107c99be0c20430c1f73218
author wangyan <wangyan431@huawei.com> 1720611494 +0000
committer Gitee <noreply@gitee.com> 1720611494 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: wangyan <wangyan431@huawei.com>˛_6xDtree 005eebf635fc20012b845c027658be0981e32612
parent 8c01919b272db5bd8ed03d2de8fa3f9bbb519c02
parent 2bb30f64daafa68af3379e78e66d41fe9f199df8
author openharmony_ci <120357966@qq.com> 1720600518 +0000
committer Gitee <noreply@gitee.com> 1720600518 +0000

!987 drm接口注释修改
Merge pull request !987 from baoxy92/mastergx*tree d09f5dd2f3cb8cd223ed03de66bbbc6e90d378a9
parent 8c01919b272db5bd8ed03d2de8fa3f9bbb519c02
author yyuanche <yuancheng25@huawei.com> 1720597786 +0800
committer yyuanche <yuancheng25@huawei.com> 1720599226 +0800

【NDK】CAPI缺失kit标签补充
Signed-off-by: yyuanche <yuancheng25@huawei.com>
gxAtree 3683ce6b4dd132a3f9cf67f3d4b59f7a88aba916
parent 6c785c98ef1c400de98c6a8982ba64bb38369436
parent 494f37e7514eeefe5006e5a8ee99062528b1f614
author openharmony_ci <120357966@qq.com> 1720588355 +0000
committer Gitee <noreply@gitee.com> 1720588355 +0000

!972 补充kit标签
Merge pull request !972 from zhoutong_uestc/ztAdx=tree e2fdc60d87182c9ded587fe615bbf678d7abe621
parent 6c785c98ef1c400de98c6a8982ba64bb38369436
author baoxy92 <baoxianyue@hisilicon.com> 1720582204 +0000
committer Gitee <noreply@gitee.com> 1720582204 +0000

update multimedia/drm_framework/common/native_drm_common.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>Ng2x`tree c74c5318ea754f116fe783f76c08721ca8bfa067
parent dfe0179edbac3ff16a7cbafb6f83a082c766a81d
parent 7677c477607316c265c82d2e96bf1ada655db77f
author openharmony_ci <120357966@qq.com> 1720578863 +0000
committer Gitee <noreply@gitee.com> 1720578863 +0000

!973 Update description of napi_remove_wrap_sendable
Merge pull request !973 from diartyz/sendable}`mߚxztree 0ed0a19eafa9c43197694d257a19a03aec739da3
parent 29c2d097a76c4c5e23994650a8e5d3f66837bf7f
parent 1828770c55884129abe2ea43fb973ab6c6ae052a
author openharmony_ci <120357966@qq.com> 1720578361 +0000
committer Gitee <noreply@gitee.com> 1720578361 +0000

!982 CAPI-diff工具结果操作标记改为中文和新增是否为系统API列
Merge pull request !982 from zhangwu/masterMǋxtree a619528a3605e0b54f556a61e33f6b5aba2bcfac
parent 29c2d097a76c4c5e23994650a8e5d3f66837bf7f
author wangyan <wangyan431@huawei.com> 1720578288 +0000
committer Gitee <noreply@gitee.com> 1720578288 +0000

添加接口描述

Signed-off-by: wangyan <wangyan431@huawei.com>MYǐx0tree 5ee46fa8445837d6a284d8e749bca06b90a4e438
parent a97edfca0fe93d3dee563a5af96bc89d29ea6327
author qiu_yu_jia <qiuyujia1@huawei.com> 1720494014 +0800
committer qiu_yu_jia <qiuyujia1@huawei.com> 1720576933 +0800

modify musl version from 1.2.3 to 1.2.5

Signed-off-by: qiu_yu_jia <qiuyujia1@huawei.com>
>`0xNtree 0ed0a19eafa9c43197694d257a19a03aec739da3
parent 29c2d097a76c4c5e23994650a8e5d3f66837bf7f
author zhangwuf <zhangwu47@huawei.com> 1720517334 +0800
committer zhangwuf <zhangwu47@huawei.com> 1720522473 +0800

CAPI-diff工具结果操作标记改为中文和新增是否为系统API列

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
xKtree 5cc443bd9c506bef1f00ceffd7d980fd50c0d3cd
parent a96f3e8a5461012cab824c844a226c5179a7c9f6
parent efe19419d792164f1dcbcef3d7c103b95a8229fb
author openharmony_ci <120357966@qq.com> 1720509357 +0000
committer Gitee <noreply@gitee.com> 1720509357 +0000

!960 优化duration说明
Merge pull request !960 from 杨俊晖/0704durationVl
xQtree 0a68199c120be3da858f76193bb2e4b1cfaa6b10
parent 84ad3c3b8435943e2f221072ead0f4bc2135bbdc
parent 6508674e6490084d9df3b2b7b18988ed68e208c7
author openharmony_ci <120357966@qq.com> 1720505484 +0000
committer Gitee <noreply@gitee.com> 1720505484 +0000

!878 新增 font variation 接口
Merge pull request !878 from luhan/font_variation֒jOxEtree 1913d1e9bb8009f3877f829d2326859cf5b4baf2
parent a97edfca0fe93d3dee563a5af96bc89d29ea6327
parent ec888a85bbdfbc804889f9bf804c4a388a0339a2
author openharmony_ci <120357966@qq.com> 1720498642 +0000
committer Gitee <noreply@gitee.com> 1720498642 +0000

!975 修改diff工具问题
Merge pull request !975 from zhangwu/master!ixAtree ab7e716185cb9bad09def2f48efe674df59e1e68
parent b8a409ee2ac4da7229080d15687a5a6ccf6b1402
parent bc563587f553af0d5f9b7cdf4e08bfbd5a5e9951
author openharmony_ci <120357966@qq.com> 1720445576 +0000
committer Gitee <noreply@gitee.com> 1720445576 +0000

!976 增加@kit注释
Merge pull request !976 from 李建超/masterehxtree 952151184d7b83961b4f84ac51fe6c848e5cc1dc
parent b8a409ee2ac4da7229080d15687a5a6ccf6b1402
author zhangwuf <zhangwu47@huawei.com> 1720427233 +0800
committer zhangwuf <zhangwu47@huawei.com> 1720430652 +0800

修改diff工具问题

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
S!^dxAtree ab7e716185cb9bad09def2f48efe674df59e1e68
parent b8a409ee2ac4da7229080d15687a5a6ccf6b1402
author li-jianchao1993 <lijianchao9@huawei.com> 1720429826 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1720429826 +0800

【修改说明】 增加@kit注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
=oxztree d9718d7cd2872fce0e7dfbcb3b885122119f10de
parent 12ea65072796e59f0d5cea025edac0e48f125e4d
author y00656910 <yaoxingyu3@huawei.com> 1710294404 +0800
committer y00656910 <yaoxingyu3@huawei.com> 1720403328 +0800

define string constant

Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
Change-Id: I45304853593eba90d61ba7bb7c3ef2bc868a18f1
Signed-off-by: y00656910 <yaoxingyu3@huawei.com>
uxrtree 9b2819cf552f2f5b986203719d0702d48e76acef
parent 9c170d3009f8155f607c2417d6b5e0176ae475ca
parent 75a191dd9a3b873a5498aa1060d3bb2fb233a022
author openharmony_ci <120357966@qq.com> 1720254512 +0000
committer Gitee <noreply@gitee.com> 1720254512 +0000

!971 【textArea】CAPI textArea&textInput 新增方法json补充
Merge pull request !971 from yyuanche/ndk_textArea yxAtree 770365c94694c5b9cde00553676f7150fe4878ab
parent e5a26b75ad511a4f1228b7448f8d3ffc664a5975
parent 39f7705365a69bb629d2c339162cdf49b7de05d5
author openharmony_ci <120357966@qq.com> 1720252883 +0000
committer Gitee <noreply@gitee.com> 1720252883 +0000

!936 JSVM新增接口
Merge pull request !936 from 蒋群超/master|ex?tree a5d2ad29847cbd45555c63aa814cc14d733d4c83
parent e598776a83a5b597b2da79ce7459eaa5c189f463
author liu-zelin <liuzelin8@huawei.com> 1720233103 +0800
committer liu-zelin <liuzelin8@huawei.com> 1720233103 +0800

Update description of napi_remove_wrap_sendable

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IAB144?from=project-issue
Signed-off-by: liu-zelin <liuzelin8@huawei.com>
Change-Id: I85147b4c658cb8bd34259a6af5ae11a702a421a5
Dxtree 770365c94694c5b9cde00553676f7150fe4878ab
parent e5a26b75ad511a4f1228b7448f8d3ffc664a5975
author 蒋群超 <jiangqunchao@huawei.com> 1720185936 +0800
committer 蒋群超 <jiangqunchao@huawei.com> 1720185936 +0800

JSVM新增接口

Signed-off-by: 蒋群超 <jiangqunchao@huawei.com>
O'fxLtree 0141c9edaada7e341bbc7b40d4898b6787c79fd5
parent 4711b05963439f0024ed5e3c7b1afa1a804fe79f
parent ac25afe64042637644e8f127aa2dbe288d043f10
author openharmony_ci <120357966@qq.com> 1720184896 +0000
committer Gitee <noreply@gitee.com> 1720184896 +0000

!952 JSVM新增接口2
Merge pull request !952 from 蒋群超/SR20240701372293Jh%xKtree 16952d394f268891af4ae3d432488409de5d4fcc
parent bb27aece5a8c5ff32c8227c011ebddd145b98f53
parent e9fe1abce48f78e797d0f57c32f374114bbc9f19
author openharmony_ci <120357966@qq.com> 1720180971 +0000
committer Gitee <noreply@gitee.com> 1720180971 +0000

!916 新增清除缓存NDK接口
Merge pull request !916 from renhw001/masterulvxItree 98c8010913b57648aa6fa7c08da2c8bbe7561a72
parent 12ea65072796e59f0d5cea025edac0e48f125e4d
parent 67a4c4a4dc5c66546a24ce86b7f05feae75a3c80
author openharmony_ci <120357966@qq.com> 1720172467 +0000
committer Gitee <noreply@gitee.com> 1720172467 +0000

!969 给channel layout添加@kit
Merge pull request !969 from guoyao/mastergx*tree e468ff188d544cf693baa9c823609bec6d1a2a60
parent 12ea65072796e59f0d5cea025edac0e48f125e4d
author zhoutong_uestc <zhoutong_uestc@163.com> 1720171367 +0800
committer zhoutong_uestc <zhoutong_uestc@163.com> 1720171367 +0800

补充kit标签

Signed-off-by: zhoutong_uestc <zhoutong_uestc@163.com>
]bcxDtree e3a2e1c8e43875688b5b6fa241813157080ce5db
parent 12ea65072796e59f0d5cea025edac0e48f125e4d
author yyuanche <yuancheng25@huawei.com> 1720171353 +0800
committer yyuanche <yuancheng25@huawei.com> 1720171353 +0800

【textArea】CAPI textArea&textInput 新增方法json补充
Signed-off-by: yyuanche <yuancheng25@huawei.com>
etoxXtree ef85d0e677ea3264cd7ea7fa90fc472224fddedb
parent d744597dbc5c0daa0a415850228bdc4817a00d0b
parent b10c9e615fb90854e85b9daf2af4fd51af869706
author openharmony_ci <120357966@qq.com> 1720169754 +0000
committer Gitee <noreply@gitee.com> 1720169754 +0000

!967 NDK C-API fix BackgroundImagePosition unit
Merge pull request !967 from firminly/liyi$kixtree d082eb46147a0dd1aa593748ebee54e61b1519d9
parent 173a6f5480bfd6ccb2fc0ee4b5e02c63ca94a2c6
author guoyao <guoyao18@huawei.com> 1720168398 +0800
committer guoyao <guoyao18@huawei.com> 1720168398 +0800

添加@kit

Signed-off-by: guoyao <guoyao18@huawei.com>
ARxDtree d61230621f0423c83b9e9c43f17b4e75ca49a8ad
parent c7628bd40ed4bb846fb58ca746b6ed0ab6097872
parent 80c4a47bcb1e1adfeaa366eb9016a0c671c252ea
author openharmony_ci <120357966@qq.com> 1720168255 +0000
committer Gitee <noreply@gitee.com> 1720168255 +0000

!957 支持查询路由信息
Merge pull request !957 from HuangXW/NavQ#jxKtree cae7aff62a0337c13aa6ee06a6595b2614abbe69
parent 39c5f4fbd96cd23e5305fc9e3b847db5d31e4733
parent b110dbc24089ba240f0aac2f04e71258a55f78a2
author openharmony_ci <120357966@qq.com> 1720165027 +0000
committer Gitee <noreply@gitee.com> 1720165027 +0000

!961 添加逐字绘制接口
Merge pull request !961 from ustc-tianyu/mastermxtree bbda2afc36ecbe406151ec473aab2206a970bc08
parent 11bfaf0376ed5aa2f88101165c3997e6864d646f
author guoyao <guoyao18@huawei.com> 1720161448 +0800
committer guoyao <guoyao18@huawei.com> 1720161448 +0800

添加@kit

Signed-off-by: guoyao <guoyao18@huawei.com>
R-xTtree 0821aede6cfa2a5f6522eac5eaf0cdffddd16f98
parent 11bfaf0376ed5aa2f88101165c3997e6864d646f
parent cba8a9fa90cc8b611c763e8df2e8a323fed9d46b
author openharmony_ci <120357966@qq.com> 1720159791 +0000
committer Gitee <noreply@gitee.com> 1720159791 +0000

!931 提供圆点导航点C-API接口
Merge pull request !931 from jiangzhijun8/masterrCx"tree 16afa573dabbb91803a6f7ea2a84c5c69cfb7dc2
parent b63580de13eb0a10fc8d7e61156de0a592fac8c5
author liyi0309 <liyi58@huawei.com> 1720146289 +0800
committer liyi0309 <liyi58@huawei.com> 1720146289 +0800

add C-API fix backgroundimageposition unit
Signed-off-by: liyi0309<liyi58@huawei.com>
YxQtree cc4af596cd050258725bed184d651d12701ba117
parent 3ccabe106d017d0cd8b620ab93fa6e3a340d27fd
parent dcb30c49d806e849409a277fa8169c92db3cb443
author openharmony_ci <120357966@qq.com> 1720144566 +0000
committer Gitee <noreply@gitee.com> 1720144566 +0000

!949 NDK C-Api 增加ObjectFit枚举
Merge pull request !949 from aryawang/72masterSi{x+tree 872a5d243b2c81fed3b2ab8f0ae22255ce42a7dd
parent c1191ac6e0143344b0d54f928591bb2e72637da3
author jiang-qunchao <jiangqunchao@huawei.com> 1719645138 +0800
committer jiang-qunchao <jiangqunchao@huawei.com> 1720143265 +0800

JSVM新增接口

Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com>
;cAx0tree a6e13ce7380c91b23318527c03c09b514fe24d22
parent 3ccabe106d017d0cd8b620ab93fa6e3a340d27fd
author zzm <zhangzhiming23@huawei.com> 1720104294 +0000
committer zzm <zhangzhiming23@huawei.com> 1720104294 +0000

【修改说明】：支持vtt字幕轨解析

Signed-off-by: zzm <zhangzhiming23@huawei.com>
foxNtree 185bf5e1f522670600bf27afb4c0ee87b4a26baa
parent 29db11bbca8703a779b60f36b8d609733849bea5
author H-xinwei <huangxinwei4@huawei.com> 1720103047 +0000
committer H-xinwei <huangxinwei4@huawei.com> 1720103047 +0000

codecheck fix

Signed-off-by: H-xinwei <huangxinwei4@huawei.com>
Change-Id: If72823efe1ee021b666af2a8075f050ad0291189
kfGx$tree fae6e3f720eba50c7e94d1fa7d459005ede45262
parent 3ccabe106d017d0cd8b620ab93fa6e3a340d27fd
author ustc-tianyu <dutianyu4@huawei.com> 1720075734 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1720081225 +0800

add draw single character
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
Z^"xWtree 4c7674310140f7d53a3f16b4335e51f874081d45
parent 931e3550c9b5c0e6893d2a1d7d411f88365f9ca6
author H-xinwei <huangxinwei4@huawei.com> 1720010365 +0000
committer H-xinwei <huangxinwei4@huawei.com> 1720077987 +0000

路由信息查询CAPI

Signed-off-by: H-xinwei <huangxinwei4@huawei.com>
Change-Id: Iba403807e08822319454d4ee0d47af765191e015
mxatree 2b117087b65e92c717c9edd227e1a3329d90cb17
parent 6a4213a884dfb82ae2c93dedfe4adfc0a32c0a45
author yangjunhui10 <yangjunhui10@huawei.com> 1720075073 +0000
committer yangjunhui10 <yangjunhui10@huawei.com> 1720075073 +0000

完善duration说明

Signed-off-by: yangjunhui10 <yangjunhui10@huawei.com>
Change-Id: Ide92e44cd5c44c0663931a1c07da6d6d8a4f6651
|rxUtree c2d59bcf47c1c7e88d12256839a695850863dc9a
parent 1bfe9719852df3f9b04bc0c957e83d5f9ca4290a
parent 7fc836cefc631b95aa8556ba501b036adeb96584
author openharmony_ci <120357966@qq.com> 1720063035 +0000
committer Gitee <noreply@gitee.com> 1720063035 +0000

!934 image_effect增加时间戳相关接口
Merge pull request !934 from 朱锐/master3*sBxGtree 2a264b3fa46370b546482ea708344c63d37cf378
parent 19cf8fec32fb151085d7e37858c6ff706780cd6b
parent b63580de13eb0a10fc8d7e61156de0a592fac8c5
author openharmony_ci <120357966@qq.com> 1720061730 +0000
committer Gitee <noreply@gitee.com> 1720061730 +0000

!954 NDK C-API fix description
Merge pull request !954 from firminly/liyiqayxOtree 6e8fab2e5867dcecef555239d7e5dc6d5d92290e
parent 931e3550c9b5c0e6893d2a1d7d411f88365f9ca6
parent 880dc14e730fd2b81a67e5538bb1b6421682fba8
author openharmony_ci <120357966@qq.com> 1720059448 +0000
committer Gitee <noreply@gitee.com> 1720059448 +0000

!958 USAGE类型修改为uint64_t
Merge pull request !958 from 马靖涛/20240704)_lRxVtree 878f02accfb336845676bab012199c54b3ac3b62
parent 9d0d15e34e58b410c8f3378faca872c733fd93dc
author m00472246 <majingtao1@huawei.com> 1720055510 +0800
committer m00472246 <majingtao1@huawei.com> 1720055510 +0800

USAGE类型修改为uint64_t Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
!lxZtree 1bce56ddd4475d002a0c312374cfe6db333e4c3f
parent 0f31f20b5eb088ff5d40a2e8fa66ceeaa2d845d4
parent a33f527d19f91a3ab6e212d317d34ef661bc119c
author openharmony_ci <120357966@qq.com> 1720005350 +0000
committer Gitee <noreply@gitee.com> 1720005350 +0000

!950 textinput&textarea添加CAPI事件接口
Merge pull request !950 from wjn/ndk_textinputqxNtree 4ebe4c508db7e8b00bb580bc7589cbc26e182afc
parent 6848182b5be175ff874bace75c2ca3297602e54b
parent c3f5d6358e35389ccb29c13220eb8b9475804795
author openharmony_ci <120357966@qq.com> 1719998143 +0000
committer Gitee <noreply@gitee.com> 1719998143 +0000

!956 解决流水线报kind值错误
Merge pull request !956 from zhangwu/mastero6xWtree 793627df66a71756d0210a672904020e21e55b87
parent 6095dfddf201a25820a438629eeeb5ab5de78b1f
parent 9d0d15e34e58b410c8f3378faca872c733fd93dc
author openharmony_ci <120357966@qq.com> 1719987664 +0000
committer Gitee <noreply@gitee.com> 1719987664 +0000

!955 接口废弃增加替代接口说明
Merge pull request !955 from 马靖涛/20240703jux"tree d0c3d7b03d64190c72eca2be4b7a5ef89a868528
parent 6095dfddf201a25820a438629eeeb5ab5de78b1f
author zhangwuf <zhangwu47@huawei.com> 1719987220 +0800
committer zhangwuf <zhangwu47@huawei.com> 1719987220 +0800

解决流水线报kind值错误

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
FeŘx8tree 73140933b28c98fa6239a3a1ff2b1c820557a892
parent 904dccd7d6c9cd06a390b142f8a50bc004d07bef
author jiangzhijun8 <jiangzhijun7@huawei.com> 1719559686 +0800
committer jiangzhijun8 <jiangzhijun7@huawei.com> 1719987169 +0800

提供圆点导航点C-API接口

Signed-off-by: jiangzhijun8 <jiangzhijun7@huawei.com>
PlxFtree c40ba478a592c43ceb536f312e349239b8107b04
parent 7e61393a62159eb76ae7d0c930ce54d9e07362b2
parent 43afb90c6bb87f8e4b4cefe02e667db52ae29433
author openharmony_ci <120357966@qq.com> 1719980103 +0000
committer Gitee <noreply@gitee.com> 1719980103 +0000

!946 C-API添加到NetworkKit
Merge pull request !946 from wulimm/masterUdx^tree 52316188842413c5917de382ca43cce92b7273be
parent 417e08597e9373a8d6c300eccb87501616dc2045
author m00472246 <majingtao1@huawei.com> 1719976157 +0800
committer m00472246 <majingtao1@huawei.com> 1719976157 +0800

接口废弃增加替代接口说明 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
+uxtree 6b75f1362a7f38e7ddb4efe1efd75a6ec4ec1a72
parent a9247f0208fc9c738ac04641c150c36bd43bccab
author liyi0309 <liyi58@huawei.com> 1719973901 +0800
committer liyi0309 <liyi58@huawei.com> 1719973901 +0800

add C-API fix description
Signed-off-by: liyi0309<liyi58@huawei.com>
BRxMtree fee479079d7fa070c35a28062307aca4c703a914
parent c663836067ac821eccec15d92b0c0a3215b08e87
parent a9247f0208fc9c738ac04641c150c36bd43bccab
author openharmony_ci <120357966@qq.com> 1719973296 +0000
committer Gitee <noreply@gitee.com> 1719973296 +0000

!911 NDK C-API add areachange ratio
Merge pull request !911 from firminly/liyi3cx?tree b81934c80d54acf12952947d4d6bb1d9f447c3ae
parent 1897f4facba258e7c616e0602bba52144b27a208
parent 417e08597e9373a8d6c300eccb87501616dc2045
author openharmony_ci <120357966@qq.com> 1719972917 +0000
committer Gitee <noreply@gitee.com> 1719972917 +0000

!933 接口废弃
Merge pull request !933 from 马靖涛/20240629m d-x?tree 0c52ecbcdeabbf2707a0932fddcb6edc0e8bd713
parent ae5bbdc33ce2cd22b30141aaa51f21791fe4bf06
parent 54d49e01384664959ba01f363e1fb837b5225c50
author openharmony_ci <120357966@qq.com> 1719972001 +0000
committer Gitee <noreply@gitee.com> 1719972001 +0000

!937 [NDK] fix anmate api
Merge pull request !937 from lisitao/s1X_xLtree 01d4e07580a46edf19f19c64c0c337ea65179747
parent 0bf4d23675332e1947588ee6d584642f1339feb5
parent 126399019782804be1454f57dac3afdea8919a0e
author xinking129 <xinxin13@huawei.com> 1718701781 +0800
committer xinking129 <xinxin13@huawei.com> 1719920253 +0800

Merge branch 'master' of https://gitee.com/xinking129/interface_sdk_c_1
3jcxYtree 74de537ab9302fb02a6705f90389928767ba3395
parent cd7d84f5fc3c99c18ce8b451f15d4a98deea0e10
parent 431d02ba7faca85d11c4cce2ca24a58443605308
author openharmony_ci <120357966@qq.com> 1719904333 +0000
committer Gitee <noreply@gitee.com> 1719904333 +0000

!948 【 input 】CAPI 描述信息新增 kit
Merge pull request !948 from 任欣瑶/master#hsqx.tree 1e52f87dc2469a355cd108da068ea186f0180f9e
parent cd7d84f5fc3c99c18ce8b451f15d4a98deea0e10
author wanjining <wanjining@huawei.com> 1719903377 +0800
committer wanjining <wanjining@huawei.com> 1719903377 +0800

textinput&textarea添加CAPI事件接口

Signed-off-by: wanjining <wanjining@huawei.com>
ahExZtree 9fdb200ae328f5595f2d347a548d0986970b5a9f
parent a7f5942b570b30c89aeb388a8aeb094a5fc9d0e2
author aryawang <wangcaihui@huawei.com> 1719902828 +0000
committer aryawang <wangcaihui@huawei.com> 1719902828 +0000

NDK C-Api 增加ObjectFit枚举

Signed-off-by: aryawang <wangcaihui@huawei.com>
Change-Id: I2c7bb5926daf6caea1b4c6b8a0854fa8e8c38509
;oxhtree 9897d252311253f46e8165db87f0722aebc9227e
parent 6a4213a884dfb82ae2c93dedfe4adfc0a32c0a45
parent ccc48a207864473afbf4b5d48de519ae787182f6
author openharmony_ci <120357966@qq.com> 1719892963 +0000
committer Gitee <noreply@gitee.com> 1719892963 +0000

!935 在HidebugNDK里新增HIDEBUG_NO_TRACE_RUNNING错误码
Merge pull request !935 from 董博斯/masterw>x$tree 28486e1dbe98f64241119a94e5af68a33b77de61
parent 6a4213a884dfb82ae2c93dedfe4adfc0a32c0a45
author renxinyao <renxinyao2@huawei.com> 1719891774 +0800
committer renxinyao <renxinyao2@huawei.com> 1719891774 +0800

CAPI 描述信息新增 kit

Signed-off-by: renxinyao <renxinyao2@huawei.com>
H6cixtree b1f4656869bd356b51cdcb0c31da47b86979812a
parent 6a4213a884dfb82ae2c93dedfe4adfc0a32c0a45
author wulimm <hanjing5@huawei.com> 1719885860 +0000
committer Gitee <noreply@gitee.com> 1719885860 +0000

C-API添加到NetworkKit

Signed-off-by: wulimm <hanjing5@huawei.com>1WÜx|tree 0349b6b8cdc4fa1c9559633fad0ba1502ead260a
parent 12f64eb9ea1bbd14e5f8b96e4b601c2c804a02ff
parent d7ebb26d6860931d7f4d2ad6f3b4b0b81a05f4d9
author openharmony_ci <120357966@qq.com> 1719807898 +0000
committer Gitee <noreply@gitee.com> 1719807898 +0000

!932 update multimedia/av_codec/avcencinfo/libnative_media_avcencinfo.ndk.json
Merge pull request !932 from zhenghongda/masterzyJx?tree 59c8092a409c10399cbe86877545e8798040311d
parent fde61babb35e59ddc6dcc083a326bf82d4c15c2e
parent 738b70d93a6339ef37ecb02e3bbcf9239663aaf3
author openharmony_ci <120357966@qq.com> 1719807038 +0000
committer Gitee <noreply@gitee.com> 1719807038 +0000

!919 添加kit声明
Merge pull request !919 from liujixin/masterd[xjtree bffa27396b46dbf6c6092d0c5fb04a9d9fd6e3b7
parent 899a5b98808cde97cd8fea18052fd5e122fcbaac
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719799777 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719799777 +0800

[NDK] fix anmate api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
sRxFtree 33cd714e2b69136db39c06afd04e48e7cce8c4b4
parent 5d2a76d71c62cfcff56cd7c407c43b8def582b15
author m00472246 <majingtao1@huawei.com> 1719626313 +0800
committer m00472246 <majingtao1@huawei.com> 1719796735 +0800

接口废弃 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
wfxtree ac6dbd05ed42e1e98b9f31ef92339fbb68fe8725
parent fde61babb35e59ddc6dcc083a326bf82d4c15c2e
author liyi0309 <liyi58@huawei.com> 1719795942 +0800
committer liyi0309 <liyi58@huawei.com> 1719795942 +0800

add C-API add areachange ratio
Signed-off-by: liyi0309<liyi58@huawei.com>
.U)xktree d8db01a79adcac3eda6f360443415b02c08043a9
parent 899a5b98808cde97cd8fea18052fd5e122fcbaac
parent 4eaf77d7d4ad7578b2a83e3b4d77f0d82d71ca9f
author openharmony_ci <120357966@qq.com> 1719658154 +0000
committer Gitee <noreply@gitee.com> 1719658154 +0000

!782 Improve the return code format for missing interfaces
Merge pull request !782 from milkpotatoes/fix-lessr[xItree 5a9415705edc283f0cf4a6be50d2e25bfeb6d306
parent c1191ac6e0143344b0d54f928591bb2e72637da3
parent 28818ea6a4a20c281406a9812dcfbdb9f5bc87af
author openharmony_ci <120357966@qq.com> 1719649410 +0000
committer Gitee <noreply@gitee.com> 1719649410 +0000

!926 Add sendable napi in ndk
Merge pull request !926 from diartyz/sendablec4x=tree 8466b5bb6f790a17cf45d51dc68b518663ed955a
parent c1191ac6e0143344b0d54f928591bb2e72637da3
author dongbosi@huawei.com <dongbosi@huawei.com> 1719642728 +0800
committer dongbosi@huawei.com <dongbosi@huawei.com> 1719642728 +0800

add errorcode in hidebug ndk

Signed-off-by: dongbosi@huawei.com <dongbosi@huawei.com>
nex$tree eb94997edf709f2319d3db0e28fa355cb8081062
parent c1191ac6e0143344b0d54f928591bb2e72637da3
author z00428214 <zhurui17@huawei.com> 1719642085 +0800
committer z00428214 <zhurui17@huawei.com> 1719642085 +0800

image_effect增加时间戳接口

Signed-off-by: z00428214 <zhurui17@huawei.com>
]x^tree 6cac0dd23236b79ecddf6dbd9652ef8a6d5625db
parent c1191ac6e0143344b0d54f928591bb2e72637da3
author zhenghongda <zhenghongda4@huawei.com> 1719622482 +0000
committer zhenghongda <zhenghongda4@huawei.com> 1719622482 +0000

update multimedia/av_codec/avcencinfo/libnative_media_avcencinfo.ndk.json

Signed-off-by: zhenghongda <zhenghongda4@huawei.com>
Etx]tree 344a0a4b3ba204cf354ea4f265139f03c2170fbe
parent 904dccd7d6c9cd06a390b142f8a50bc004d07bef
parent e57f92752b6f37baeea679e08b56165aa6e69302
author openharmony_ci <120357966@qq.com> 1719570812 +0000
committer Gitee <noreply@gitee.com> 1719570812 +0000

!924 [NDK] add keyframe, animator, removeAllchild, api
Merge pull request !924 from lisitao/l_7<iix'tree 344a0a4b3ba204cf354ea4f265139f03c2170fbe
parent ce626c4ed6ed82cb701bc5d7984210bf8dac1591
author lisitao <lisitao3@huawei.com> 1719566546 +0000
committer Gitee <noreply@gitee.com> 1719566546 +0000

update arkui/ace_engine/native/libace.ndk.json.

Signed-off-by: lisitao <lisitao3@huawei.com>)4]x(tree 411e8c531292c5bb5666335cce40d2d9eef5c95a
parent 811175122dca2e3d8669ec4976971824845eafa1
author lisitao <lisitao3@huawei.com> 1719566525 +0000
committer Gitee <noreply@gitee.com> 1719566525 +0000

update arkui/ace_engine/native/native_animate.h.

Signed-off-by: lisitao <lisitao3@huawei.com>]xItree 9d493e203af4af635e70f22c9711d576a754f692
parent 9973c5be3b834afb23b2588f05ab7f5109638087
author luhan <luhan22@huawei.com> 1718339101 +0800
committer luhan <luhan22@huawei.com> 1719564925 +0800

add font variation ndk interface

Signed-off-by: luhan <luhan22@huawei.com>
Change-Id: I6a369e12534ac2ceb9b308d207204494d414856c
Ybxjtree 26d2c9a6beb2ccef51aa5cb35051398189a6f169
parent 904dccd7d6c9cd06a390b142f8a50bc004d07bef
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719545687 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719549238 +0800

[NDK] add anmate api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
%r+xUtree 9330f222b17fa0fbc5781c7474cf6a251911a37c
parent 5fb603e5168ef06c6c9ba7ea467824b5d1259c57
parent d4e2880f0c48ca4009200f844002c1ed816e5906
author openharmony_ci <120357966@qq.com> 1719543900 +0000
committer Gitee <noreply@gitee.com> 1719543900 +0000

!927 账号CPI接口新增kit标签
Merge pull request !927 from 周士淼/fix_0627_kitݥq,xrtree 51216763e75056c83d1e5277228d27c1ad39ba6b
parent d7070210ceaec9918c6f4210acc07d674836300e
parent 95178604e926a2f8a5b35308abde6405bf06562e
author openharmony_ci <120357966@qq.com> 1719540913 +0000
committer Gitee <noreply@gitee.com> 1719540913 +0000

!923 [NDK] XComponent新增获取相对应用窗口和屏幕的坐标
Merge pull request !923 from WangYing/xy240626:xCtree e8bc336097062b2432d9d079a62ddfe13ed01f7d
parent aa6e59ec2a15e6596e475adfa0a2a4bbff5fddfc
parent 56cd45424a6943bbc68f2e3ebc78779b41b9a111
author openharmony_ci <120357966@qq.com> 1719540513 +0000
committer Gitee <noreply@gitee.com> 1719540513 +0000

!921 [NDK] add transition api
Merge pull request !921 from lisitao/i11axltree 6adde98c8a4f0626deb483d9c4d56a0c7aa5b6f1
parent e598776a83a5b597b2da79ce7459eaa5c189f463
parent 5aae6dbfdc6406d6e7c4df48ab32c7d65b71a4a2
author openharmony_ci <120357966@qq.com> 1719491203 +0000
committer Gitee <noreply@gitee.com> 1719491203 +0000

!909 【需求】huks支持跨端协同二次访问控制认证
Merge pull request !909 from weizhaohui/master̈́xtree 8b2641be2fd48247cce41de6def9f77495d149e1
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author milkpotatoes <chenshulin5@huawei.com> 1716898659 +0800
committer milkpotatoes <chenshulin5@huawei.com> 1719488939 +0800

Improve the return code format for missing ifs

Improve the return code format for missing ifs
Issue: https://gitee.com/openharmony/interface_sdk_c/issues/I9SXYR

Signed-off-by: milkpotatoes <chenshulin5@huawei.com>
Change-Id: I364499c747b35321090384c0da09b43cc5d2df15
Dxntree a7609430292165dadca03f63713d571b536fe65c
parent a7f5942b570b30c89aeb388a8aeb094a5fc9d0e2
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719367741 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1719480550 +0800

[NDK] add transition api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
Tsx,tree a4d36597864421ce781746bf94e812f6e47294fa
parent aff350531097c7a661322d832567461252c07fea
author WangYing225 <wangying397@huawei.com> 1719473613 +0800
committer WangYing225 <wangying397@huawei.com> 1719473613 +0800

modify return explanations

Signed-off-by: WangYing225 <wangying397@huawei.com>
[xLtree feea75ea8d26bed7c48addaeccc5b05fa3a94644
parent 047a897b82a7ed478d403579d174dabf3602d46b
author renhw001 <renhongwei9@huawei.com> 1719471254 +0000
committer renhw001 <renhongwei9@huawei.com> 1719472136 +0800

update graphic/graphic_2d/native_drawing/drawing_font_collection.h.

Signed-off-by: renhw001 <renhongwei9@huawei.com>
wkxbtree ab9b2bc03645a9b59f9ac1f58fb3511890a04b41
parent e598776a83a5b597b2da79ce7459eaa5c189f463
author ZhouShimiao <zhoushimiao@huawei.com> 1719470842 +0800
committer ZhouShimiao <zhoushimiao@huawei.com> 1719470842 +0800

CAPI 描述信息新增 kit

Signed-off-by: zhoushimiao <zhoushimiao@huawei.com>
Change-Id: I9c2c4f2e6c622ab2ecc5ec96e6878cee0734147d
^Zuxtree 1f60dd16a5fcde459f066e7985daf3bdc161d4bc
parent a7f5942b570b30c89aeb388a8aeb094a5fc9d0e2
author ji_xinliu <liujixin1@huawei.com> 1719302769 +0800
committer ji_xinliu <liujixin1@huawei.com> 1719459580 +0800

添加kit声明

Signed-off-by: ji_xinliu <liujixin1@huawei.com>
\xVtree 88e5334a639647a7a2ad76988b2f727db90a4c15
parent da9230074bd7cd6b57a8738ec7199c4d62172187
author liu-zelin <liuzelin8@huawei.com> 1719454468 +0800
committer liu-zelin <liuzelin8@huawei.com> 1719454468 +0800

Add sendable napi in ndk

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IA8NGD?from=project-issue
Signed-off-by: liu-zelin <liuzelin8@huawei.com>
Change-Id: I401a91773cc0376f64d7fd715dd772308120008e
rKx)tree 94086ca6cfb54b135dd2780c4108ea6148035515
parent e5979f9329b48f406eaee0c9aa0a1bb534593edc
author WangShengming <wangshengming6@huawei.com> 1719452085 +0800
committer WangShengming <wangshengming6@huawei.com> 1719452085 +0800

add code

Signed-off-by: WangShengming <wangshengming6@huawei.com>
#^Fx=tree 1407044e6080716dab4b6be896186b43bb4c0710
parent b08f378bf736e9450b8717554ad82c9f33d59e81
parent ca933998d6702d04a24b8d4e9ed9b7830c3a1270
author openharmony_ci <120357966@qq.com> 1719402150 +0000
committer Gitee <noreply@gitee.com> 1719402150 +0000

!913 kit一致性排查
Merge pull request !913 from Lxy/masterb#xDtree ce56d54d80b5ddfe9db115b74553378b3d2c1732
parent ebbfa8fd5a3ea3a043abe0f4f17625a6810f5ff3
parent 72d1c9f3bb75c4fe563a1b9b581b27e0df7da723
author openharmony_ci <120357966@qq.com> 1719389954 +0000
committer Gitee <noreply@gitee.com> 1719389954 +0000

!920 drm接口Kit名修改
Merge pull request !920 from baoxy92/master6gxOtree 3a8844ea09678b65ff6424e4e4bd66d214db6f94
parent fdd91da7efbd4abadd0c4cb18af95b6d39c20a8f
parent 11af268f086d4917fc4ddc66deb4dfd4be4f45fe
author openharmony_ci <120357966@qq.com> 1719383828 +0000
committer Gitee <noreply@gitee.com> 1719383828 +0000

!918 修改key的注释
Merge pull request !918 from 王子微/dev_localInterfaceympxStree 61574b8328a16e8abd050a8d4e2ad8663d358f6b
parent a7f5942b570b30c89aeb388a8aeb094a5fc9d0e2
parent 0db7fc50fe3b71b6d10d8b691a61ba6ff1790970
author openharmony_ci <120357966@qq.com> 1719377275 +0000
committer Gitee <noreply@gitee.com> 1719377275 +0000

!917 修改黄区出现的codecheck问题
Merge pull request !917 from zhangwu/masterqex tree a58aa88b125747d952a710edaf5098788796eeda
parent a7f5942b570b30c89aeb388a8aeb094a5fc9d0e2
author WangYing225 <wangying397@huawei.com> 1719374396 +0800
committer WangYing225 <wangying397@huawei.com> 1719374396 +0800

add interfaces

Signed-off-by: WangYing225 <wangying397@huawei.com>
йXgx;tree da1d6af2c347942e90fe177b10ffdaba09c379e7
parent 9143ac369ba15a8d55bf82ad292e95f58ada7e8b
author 王子微 <wangziwei38@h-partners.com> 1719365987 +0000
committer Gitee <noreply@gitee.com> 1719365987 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: 王子微 <wangziwei38@h-partners.com>lx:tree 9f615e556a2b2c57d38079ed386e780bc83f76c4
parent c3b5a035734bc76a73313280d2f916e379fbda3f
author baoxy92 <baoxianyue@hisilicon.com> 1719321343 +0000
committer Gitee <noreply@gitee.com> 1719321343 +0000

update multimedia/drm_framework/common/native_drm_err.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>2ex=tree 2fe7c5025e804389c2a3fb94261065237bba31c8
parent 2606bd9366118a4c5e4c827343e1cde558ea87e3
author baoxy92 <baoxianyue@hisilicon.com> 1719321327 +0000
committer Gitee <noreply@gitee.com> 1719321327 +0000

update multimedia/drm_framework/common/native_drm_common.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>ex'tree f858d8e98692a4d69cc666594b2d44ce6ff7316b
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author zhangwuf <zhangwu47@huawei.com> 1719299156 +0800
committer zhangwuf <zhangwu47@huawei.com> 1719312726 +0800

修改黄区出现的codecheck问题

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
4f_x;tree d34b78bc323389fd8b129a92659602eb9dd67b91
parent e65e3d1460af606824dfccafe493ec70b60f5cc2
author 王子微 <wangziwei38@h-partners.com> 1719307577 +0000
committer Gitee <noreply@gitee.com> 1719307577 +0000

update multimedia/av_codec/native_avcodec_base.h.

Signed-off-by: 王子微 <wangziwei38@h-partners.com>ûkEx@tree da1d6af2c347942e90fe177b10ffdaba09c379e7
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author 王子微 <wangziwei38@h-partners.com> 1719301439 +0800
committer 王子微 <wangziwei38@h-partners.com> 1719301439 +0800

[interface_sdk] 修改不完整的注释

Signed-off-by: 王子微 <wangziwei38@h-partners.com>
2wMxGtree 1833959615aaf80838cf6f6bc653aa4dd9f8bb0c
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
parent 2606bd9366118a4c5e4c827343e1cde558ea87e3
author openharmony_ci <120357966@qq.com> 1719301307 +0000
committer Gitee <noreply@gitee.com> 1719301307 +0000

!915 接口文档Kit名更改
Merge pull request !915 from baoxy92/masterbhx$tree 997e7df66ab9e1e7264aa21e7f20ee6ba4c32009
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author renhw001 <renhongwei9@huawei.com> 1719297748 +0800
committer renhw001 <renhongwei9@huawei.com> 1719297748 +0800

新增清除缓存NDK接口

Signed-off-by: renhw001 <renhongwei9@huawei.com>
Bbx:tree 1833959615aaf80838cf6f6bc653aa4dd9f8bb0c
parent e5c2b5c166a436a1d2bde6f32309e918536473c0
author baoxy92 <baoxianyue@hisilicon.com> 1719288225 +0000
committer Gitee <noreply@gitee.com> 1719288225 +0000

update multimedia/drm_framework/native_mediakeysystem.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>e͛x;tree 6e8a08057616ccdb5ec523998f3c1dcde187c948
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author baoxy92 <baoxianyue@hisilicon.com> 1719288212 +0000
committer Gitee <noreply@gitee.com> 1719288212 +0000

update multimedia/drm_framework/native_mediakeysession.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>eՖxtree 3eee501ecae85fc467c21be6f3d1bc9cdeee831f
parent 7303eb20650335c3d525f6a60fe5e95d6d48375b
author Lxy <laixinyou1@huawei.com> 1719283147 +0800
committer Lxy <laixinyou1@huawei.com> 1719283147 +0800

补充kit标签

Signed-off-by: Lxy <laixinyou1@huawei.com>

U˟xOtree 94dabaf4b4feada4fe881fb37df79bd9356f3461
parent 7daf09632770ae06b5e86bf19c86cf76b9273e45
parent 4c70c03fe8e42c1633f5e20efd079d6d08744c75
author openharmony_ci <120357966@qq.com> 1719278171 +0000
committer Gitee <noreply@gitee.com> 1719278171 +0000

!912 设计实现不一致整改
Merge pull request !912 from wangchuanxia/masterpAxTtree 6266774391e33cb26f7d850f822466340c957967
parent 5a3f807c09a8dc4b1cd8b537ac3ce00d7cbae726
parent 87e099216fef5eef9e7ddb56aeda9bed78232f94
author openharmony_ci <120357966@qq.com> 1719237738 +0000
committer Gitee <noreply@gitee.com> 1719237738 +0000

!863 打印CAPI接口的错误码整改
Merge pull request !863 from liuwenfeng/masterqx6tree 83ddd7cc636e3167247fd1e1a7507f3598954598
parent 5a3f807c09a8dc4b1cd8b537ac3ce00d7cbae726
author wangchuanxia <wangchuanxia@huawei.com> 1719234454 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1719234454 +0800

设计与实现不一致整改

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
No*x=tree c32a60bcc1af1f195e388ccd018e3d32dc9002b4
parent 3cc1010fc2fb6d95ec354e9330b0c80fc47f112c
parent c071424cb7896024ff101baac337b5cfa605b54a
author openharmony_ci <120357966@qq.com> 1719226967 +0000
committer Gitee <noreply@gitee.com> 1719226967 +0000

!905 添加kit标签
Merge pull request !905 from 白露/masterex1tree fce6619cb8a03fdf5eeca9a718cf5cd29f350cc7
parent 584309c845747dff668cfe1e0256fd2dbad5cb26
author liuwenfeng <bluecodeman@outlook.com> 1718182383 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1719049503 +0800

打印CAPI接口错误码整改

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
{<lxStree 2c6840f25ff99d215038514b5ae6aaac96fddac1
parent a0ac5a122da80d739cbffae499d3ae4d4ba03aec
parent 4a05949c654e309efd78a5ce5939c61d1db83912
author openharmony_ci <120357966@qq.com> 1719025893 +0000
committer Gitee <noreply@gitee.com> 1719025893 +0000

!867 适配Linux arm host openharmony编译
Merge pull request !867 from wenyu/masterl}lӛx[tree c747afacc87330e0255d29ad45251b6d929b9c6b
parent d9735191fefda947a78f4db811bb4569f41a6e4c
parent 4b59d0060c6847612017f3f961b80a5f1267cb3d
author openharmony_ci <120357966@qq.com> 1718971783 +0000
committer Gitee <noreply@gitee.com> 1718971783 +0000

!910 add kit annotation mindspore
Merge pull request !910 from chengfeng27/add-kit-annotationi̙x)tree 002e8c19832b4c0c9821b085dfe7c47811b8a4f5
parent 99d0a52d6a41e8fe2ebb376c5208a9c6d2117be2
author WangShengming <wangshengming6@huawei.com> 1718961592 +0800
committer WangShengming <wangshengming6@huawei.com> 1718961592 +0800

add code

Signed-off-by: WangShengming <wangshengming6@huawei.com>
0^~xCtree 2318000bebfa5834fbf1246df5e1dd12c7717b4d
parent 476eb2ecd2bc10e0315bfae263eb63f3baa9f93e
parent 38f74f9bef10ead3cb221aa0203840bf9fe92004
author openharmony_ci <120357966@qq.com> 1718961065 +0000
committer Gitee <noreply@gitee.com> 1718961065 +0000

!903 ffrt add kit name
Merge pull request !903 from zhuguoyang/masterbkxQtree a0e30d0efb82d84be90f1b317fd650c2295011f3
parent 7dea777eed96a46e2393316a45d56854fdf7706e
parent 072316568cea83eb17248930122473d999183e65
author openharmony_ci <120357966@qq.com> 1718956911 +0000
committer Gitee <noreply@gitee.com> 1718956911 +0000

!897 performance kit化修改
Merge pull request !897 from 于好强/performancekitwlxgtree d451807e183e24cb466a85e508b1eef65d02942e
parent 42a948d3bab0c20d71f8539a993a52affe09c715
parent 68ca70c81b8bdd6b4eff9eabdc7d9e0a7daffdac
author openharmony_ci <120357966@qq.com> 1718954297 +0000
committer Gitee <noreply@gitee.com> 1718954297 +0000

!907 修改check工具bug，使其结果问题信息更准确
Merge pull request !907 from zhangwu/masterxPtree 046f22b3857bc2967dcbd83e3bed9ef8be6db7c6
parent 0f898f7ec45d4ef080d4c64f1a3a5b237d13cfba
parent 6edb7edf8e4b9ac108fb6212bd939d4a2aae9fc0
author openharmony_ci <120357966@qq.com> 1718953511 +0000
committer Gitee <noreply@gitee.com> 1718953511 +0000

!908 ohaudio sdk 新增oh头文件
Merge pull request !908 from ZHAI JUNWEI/masterfrlx$tree 5bf290a8f63936f7efe35d92e3561c37f9b6ef1e
parent 0f898f7ec45d4ef080d4c64f1a3a5b237d13cfba
author chengfeng27 <chengfeng27@huawei.com> 1718950593 +0800
committer chengfeng27 <chengfeng27@huawei.com> 1718950593 +0800

add kit annotation

Signed-off-by: chengfeng27 <chengfeng27@huawei.com>
:F[yx$tree 1a2fba42d61f78c4c6cfe29c6cde254d5de651c5
parent 116f4103149ce573d9a18426d0d3cee64538b648
author zhuguoyang <zhuguoyang@h-partners.com> 1718950034 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718950034 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
#I^xUtree 3feabef52b9ef8ef0737a8ed0ccbcdf3e91d62ce
parent 3a841c4049bf6694f84396693387b8cbdbf1fec2
parent 25f068b116deaa453493f68872e176c8dd844345
author openharmony_ci <120357966@qq.com> 1718946715 +0000
committer Gitee <noreply@gitee.com> 1718946715 +0000

!834 ndk 新增Get&Set needPackProperties
Merge pull request !834 from duanhan/needExifjx;tree 027a6e00663bc63a9ef20d4fb3af75831e1fc52e
parent 435591d8b6e91517a47a8fb4e4e2908f8fa9ce3f
author zhangwuf <zhangwu47@huawei.com> 1718869155 +0800
committer zhangwuf <zhangwu47@huawei.com> 1718939557 +0800

修改check工具bug，使其结果问题信息更准确

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
'vgxtree 07eb2d298f12b0d3e4d0794067ef25197c2896de
parent aca29b4cecccb232c7803c4eae0fa9ed5faf2713
author bailu1992 <bailu27@huawei.com> 1718869292 +0800
committer bailu1992 <bailu27@huawei.com> 1718939158 +0800

Add kit tags

Signed-off-by: bailu1992 <bailu27@huawei.com>
Px$tree 8a5b9033a61b17e954c29f86e88ebfa5102d2665
parent a77179831696894270984209ee6136bbe2fdc21e
author zhuguoyang <zhuguoyang@h-partners.com> 1718938268 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718938268 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
G\x3tree 4eba0b2b78c45924efc763d8260337ad86ee63de
parent 3a841c4049bf6694f84396693387b8cbdbf1fec2
author WangShengming <wangshengming6@huawei.com> 1718938262 +0800
committer WangShengming <wangshengming6@huawei.com> 1718938262 +0800

code review modify

Signed-off-by: WangShengming <wangshengming6@huawei.com>
xbx$tree ea3e8682245892542a6498089a2a2963e83cca56
parent 81e7eedb4354d87cb924882958fc67e86b967151
author zhuguoyang <zhuguoyang@h-partners.com> 1718938157 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718938157 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
P\ےx2tree 773239eb593755808eb3f749eeff57f9ea9b24b9
parent 3a841c4049bf6694f84396693387b8cbdbf1fec2
author zhaijunwei <zhaijunwei123@huawei.com> 1718936657 +0800
committer zhaijunwei <zhaijunwei123@huawei.com> 1718936657 +0800

ohaudio sdk 新增oh头文件

Signed-off-by: zhaijunwei <zhaijunwei123@huawei.com>
fx$tree 793b75af3395eb074e11af932749950355da8fec
parent 665b6663c49a75c5eeefbbcdad393a81a20e32da
author zhuguoyang <zhuguoyang@h-partners.com> 1718936650 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718936650 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
JF^x$tree 4b2abdb038ff131b6ecd5ef5c6e9d50880a0d61d
parent 37a32f23da788eaf0d0b968f09845eb454966787
author zhuguoyang <zhuguoyang@h-partners.com> 1718935891 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718935891 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
r^bx$tree 593f0767d8c38421b52c2b2085117550afdc1e75
parent 5da70d61afae2f6fa39c37e0af3e3e4f7bd028ff
author zhuguoyang <zhuguoyang@h-partners.com> 1718935813 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718935813 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
)I^oxAtree fce193eb8a81b6c3e9df3d827a977e5e2765e5d9
parent 9fc61e010f2f8368d462d94b229740519c6fa153
parent 0964c0d8e734be5601cf9d397759b1f218e488ef
author openharmony_ci <120357966@qq.com> 1718871874 +0000
committer Gitee <noreply@gitee.com> 1718871874 +0000

!902 添加@kit注解
Merge pull request !902 from yangqirun/masterRdxStree f04a3286e611bac74bb576b7ccce134bf562b213
parent 96759965605c7a5fa880a89e3720e55868118a0c
parent 1fe9cb4ae997a1019dbeec7a2a54ac1f9e1e3ca7
author openharmony_ci <120357966@qq.com> 1718870697 +0000
committer Gitee <noreply@gitee.com> 1718870697 +0000

!900 文件管理ndk接口补充kit
Merge pull request !900 from zhuhongtao666/master9oex:tree bd51bc14e8db98c58cdeb183a9591b263ca6837c
parent 435591d8b6e91517a47a8fb4e4e2908f8fa9ce3f
parent a656e3b71a6b03e3566b175bb0ac16df4432756b
author openharmony_ci <120357966@qq.com> 1718868733 +0000
committer Gitee <noreply@gitee.com> 1718868733 +0000

!896 添加kit标签
Merge pull request !896 from XKK/masterb?xetree 4d41879eac7f45ab6f7ea242f6d2280da1235079
parent 47016b5f5e30c35b27eb59e0428c1e8b741242af
parent e6c80463bee65f372aa056521d214b5fb1092e5c
author openharmony_ci <120357966@qq.com> 1718864527 +0000
committer Gitee <noreply@gitee.com> 1718864527 +0000

!901 hitrace修改kit下代码文件未声明@kit问题
Merge pull request !901 from ganchuantao/masterdzSxftree 4057776c6489473929288243ab767c0130fc66d9
parent aca29b4cecccb232c7803c4eae0fa9ed5faf2713
parent d7b6988de3d31335155141b3410abfec8d1faaa5
author openharmony_ci <120357966@qq.com> 1718853650 +0000
committer Gitee <noreply@gitee.com> 1718853650 +0000

!895 net_connection_type.h与net_connection.h声明networkKit
Merge pull request !895 from wulimm/masterlsx$tree b3407ba9f78149f270fdce0a4b2c1c58877b8be2
parent 4c192978bc5501b100abb98db8dd72d0fd1ad1d3
author zhuguoyang <zhuguoyang@h-partners.com> 1718851360 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718851360 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
l^x$tree 5e7c8aa1b7b32078d1fdc4aaf54c99799fc91aa1
parent 2f8a352b0da85238335c6b2dd3625c2a89bc5d6c
author zhuguoyang <zhuguoyang@h-partners.com> 1718851120 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718851120 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
^x$tree f2dd42c41bc79834e83a44847c12ab2b7281a44d
parent 683373c556e6f1a491910bf58014521152f6d914
author zhuguoyang <zhuguoyang@h-partners.com> 1718850963 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718850963 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
\x+tree 651f33b7bb332b076c5c4e73c288e16ef4c55639
parent de5e2364647987c07d09a2a88e047520c08a3f09
author 18721213663 <zhuhongtao12@huawei.com> 1718769894 +0800
committer 18721213663 <zhuhongtao12@huawei.com> 1718849238 +0800

filemanagement add kit

Signed-off-by: 18721213663 <zhuhongtao12@huawei.com>
Wqx$tree 42c290d8ca85b549231632063ddfefcd0c017e42
parent aca29b4cecccb232c7803c4eae0fa9ed5faf2713
author zhuguoyang <zhuguoyang@h-partners.com> 1718849004 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1718849004 +0800

add kit name

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
_xPtree cf545bd968fa2a8277867bd049910c9a573c0274
parent c25a50a6f6b0926b2a18502184b019cf18c64b3c
parent ffd222e9a3bc0877e217e2d6cc4b70cc57c6d83e
author openharmony_ci <120357966@qq.com> 1718798794 +0000
committer Gitee <noreply@gitee.com> 1718798794 +0000

!898 TEE KIT设计与实现不一致修改
Merge pull request !898 from wzr/masteroxtree 03c78cfcbe09e2555bb9c356a04287f9e27dfbab
parent badb5744ee382daec40121c73b82130df4a7c237
author wenyu <wenyu17@huawei.com> 1718798518 +0000
committer Gitee <noreply@gitee.com> 1718798518 +0000

update third_party/musl/ndk_script/BUILD.gn.

Signed-off-by: wenyu <wenyu17@huawei.com>7gZxPtree 7411d08733b104c2ca12866c868420030d7291b6
parent c25a50a6f6b0926b2a18502184b019cf18c64b3c
author yangqirun <yangqirun3@huawei.com> 1718785240 +0800
committer yangqirun <yangqirun3@huawei.com> 1718785240 +0800

add kit annotation

Signed-off-by: yangqirun <yangqirun3@huawei.com>
Change-Id: Ie04c2ca46bc4809d85e2fbaced4a7b8ac2ac5262
k{gѕxUtree c9c2208b7e72ab3dbfa94554df97f7e498879347
parent de5e2364647987c07d09a2a88e047520c08a3f09
parent d00fd8eb29597d34f84136cb07b24d887df9d697
author openharmony_ci <120357966@qq.com> 1718782146 +0000
committer Gitee <noreply@gitee.com> 1718782146 +0000

!899 修改注释中错误的类型描述
Merge pull request !899 from 李建超/masterqhvٓx3tree ed5b4dcb12e98455105131351227e41412fc6195
parent de5e2364647987c07d09a2a88e047520c08a3f09
author ganchuantao <ganchuantao1@huawei.com> 1718779645 +0000
committer Gitee <noreply@gitee.com> 1718779645 +0000

修改kit下代码文件未声明@kit问题

Signed-off-by: ganchuantao <ganchuantao1@huawei.com>hmxUtree c9c2208b7e72ab3dbfa94554df97f7e498879347
parent de5e2364647987c07d09a2a88e047520c08a3f09
author li-jianchao1993 <lijianchao9@huawei.com> 1718767585 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1718767585 +0800

【修改说明】 修改注释中错误的类型描述

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
&.}ўxtree 4afbed75f5d96debf826f0f40617c1a05284234a
parent 4e7d629d1c7abe284f6679b759eed983417e370b
author wenyu <wenyu17@huawei.com> 1718767054 +0000
committer Gitee <noreply@gitee.com> 1718767054 +0000

update third_party/musl/ndk_script/BUILD.gn.

Signed-off-by: wenyu <wenyu17@huawei.com>:Yxtree 23346c3db057c97a1098b603a7dcdd6bd57a60b9
parent 6b91fac0c73bb6a3642403d66d8c5c2d95815813
author wzr <wangzhiru1@huawei.com> 1718765578 +0800
committer wzr <wangzhiru1@huawei.com> 1718765578 +0800

KIT设计与实现不一致修改

Signed-off-by: wzr <wangzhiru1@huawei.com>
Wb;x tree 87ed32b5077033b391c160d44b86a8ba4459ee83
parent 2e5102a8dac9cfa64f71a9f5bebcb84e1b1eb262
author yuhaoqiang <yuhaoqiang@huawei.com> 1718764869 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1718764869 +0800

performancekit修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
_fxctree 29471f390d28ebf0f058f305c0d66eb42050d2c7
parent 2e5102a8dac9cfa64f71a9f5bebcb84e1b1eb262
parent 050d54ea68a0bf9d787b1df71f697a6a275b7eb5
author openharmony_ci <120357966@qq.com> 1718763827 +0000
committer Gitee <noreply@gitee.com> 1718763827 +0000

!888 【NDK】CAPI expandSafeArea&divider 属性新增
Merge pull request !888 from yyuanche/ndk_7toDrx)tree 012ef3376d9623c3bf92d696c08bac7120994ec2
parent 4fd3c2d6fa5bdd81fc26040b62d4fef6f71a191c
author wulimm <hanjing5@huawei.com> 1718762887 +0000
committer Gitee <noreply@gitee.com> 1718762887 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: wulimm <hanjing5@huawei.com>_hx.tree 4f720dc72b4350d664cd0f11803b604abc707d72
parent 70b6439d3c9a5afd749f3cd7f98bfb0d6f0057e3
author wulimm <hanjing5@huawei.com> 1718762792 +0000
committer Gitee <noreply@gitee.com> 1718762792 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: wulimm <hanjing5@huawei.com>nax.tree d045ec8650779b0fdc7ed807a706e1df5e0d5573
parent 676371a903e95635caef23a237b5fb673c78f290
author wulimm <hanjing5@huawei.com> 1718761525 +0000
committer Gitee <noreply@gitee.com> 1718761525 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: wulimm <hanjing5@huawei.com>Q\`x)tree d6479c5e9875ccbeef1cacc705a583cf8aec2bba
parent b9056c1debc28072f622771ccb2918dbbe058f25
author wulimm <hanjing5@huawei.com> 1718761491 +0000
committer Gitee <noreply@gitee.com> 1718761491 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: wulimm <hanjing5@huawei.com>,`Jxtree 2cc46bb71c662d189576a2b2348b55e80730563f
parent 2e5102a8dac9cfa64f71a9f5bebcb84e1b1eb262
author XKK <huyingsong@huawei.com> 1718761362 +0800
committer XKK <huyingsong@huawei.com> 1718761362 +0800

添加kit标签

Signed-off-by: XKK <huyingsong@huawei.com>
/U/x.tree cca2cbcecb6f752183e073005d6d947dbfab0cb4
parent 2e5102a8dac9cfa64f71a9f5bebcb84e1b1eb262
author wulimm <hanjing5@huawei.com> 1718713419 +0000
committer Gitee <noreply@gitee.com> 1718713419 +0000

net_connection_type.h与net_connection.h声明networkKit

Signed-off-by: wulimm <hanjing5@huawei.com>lfpxGtree da4f5ce7cffd29ab701c3dc10f5c56115f14669c
parent 4a1fc39867573ed9eba09ec3c51a91eea0dafde6
parent 5a0a8045228f7a7bf85f7afe4f8a042755e4f0aa
author openharmony_ci <120357966@qq.com> 1718701948 +0000
committer Gitee <noreply@gitee.com> 1718701948 +0000

!894 asset store kit change
Merge pull request !894 from 尹耀德/master/gxtree 8ff459e208f3df514de25158c8bedfc63ff786b3
parent d7a676d3d78085048114af151546e21b0fdc1d97
author xinking129 <xinxin13@huawei.com> 1718354538 +0800
committer xinking129 <xinxin13@huawei.com> 1718701766 +0800

zlib update 1.3.1

Signed-off-by: xinking129 <xinxin13@huawei.com>
s}Tixutree 99e106f022f1a730aa6a89c4bd4f371e233d492c
parent 9fe68500bc00a329e3ad645b3fd6dd73d16292cf
parent 00dda8e99cb52115308fabebe7f56d5f29a3428b
author openharmony_ci <120357966@qq.com> 1718700681 +0000
committer Gitee <noreply@gitee.com> 1718700681 +0000

!885 新增nativeBuffer和nativeWindow 色彩空间和元数据配置接口
Merge pull request !885 from xuedong/master*x=tree a3d9069973418ea2bb07a163cd1ceb8bf31705ff
parent dcd358fd6484356b2086c0468a35955085051f7e
parent 742c013e8d95e089c6a3708fa2fa0191b13d51cc
author openharmony_ci <120357966@qq.com> 1718693900 +0000
committer Gitee <noreply@gitee.com> 1718693900 +0000

!892 修改kit声明
Merge pull request !892 from 杨欢欢/kit^eVxtree cdeb6aacb75c04e8c715f196263a192709da8b80
parent 5eecaafa29ce0e82df5bb21c352c942361322c62
author wenyu <wenyu17@huawei.com> 1718691967 +0000
committer Gitee <noreply@gitee.com> 1718691967 +0000

update third_party/musl/ndk_script/BUILD.gn.

Signed-off-by: wenyu <wenyu17@huawei.com>wZkxBtree 230d88f8244afc58ee0afca95bea80af1da5abaa
parent 3f8b43bab10649fd3168b9e7b1a2cd05ff419ab6
parent cf4e024e2a7f8e41a98a463abc25d9842dbc3172
author openharmony_ci <120357966@qq.com> 1718687015 +0000
committer Gitee <noreply@gitee.com> 1718687015 +0000

!890 [NDK]  fix overlay api
Merge pull request !890 from lisitao/l_5axtree 8e1210303be9ab92ddaec5ccbe7139bbe86e18f1
parent 3f8b43bab10649fd3168b9e7b1a2cd05ff419ab6
author 尹耀德 <yinyaode1@huawei.com> 1718679695 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1718679695 +0800

modify asset store kit

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
cixctree 7f1de0014b0a22faf2dde83638035f1c7fc3e506
parent da9230074bd7cd6b57a8738ec7199c4d62172187
parent 8d28699981f5de404d19d8864062a9f6800b9ed7
author openharmony_ci <120357966@qq.com> 1718678004 +0000
committer Gitee <noreply@gitee.com> 1718678004 +0000

!887 更改diff结果：diff结果是否为api变更列，按统计规则的要求(符合要求的函数和变量)
Merge pull request !887 from zhangwu/masterZxKtree 1caaa16b179acdcf55cf3f73f7da9ace21b48e78
parent da9230074bd7cd6b57a8738ec7199c4d62172187
author y30053096 <yangjinhuan@huawei.com> 1718675358 +0800
committer y30053096 <yangjinhuan@huawei.com> 1718675794 +0800

modify kit
Signed-off-by: y30053096 <yangjinhuan@huawei.com>

Change-Id: I82ed58bacf09d6d77f114c2e5045f0d8b9cbd10f
kcQxtree ce8acc97853e809afede8fa1360ffe476263ba00
parent f2afac9a05c371d4a1fcce63e6efa721165c085e
author wenyu <wenyu17@huawei.com> 1718629937 +0000
committer Gitee <noreply@gitee.com> 1718629937 +0000

update third_party/musl/ndk_script/BUILD.gn.

Signed-off-by: wenyu <wenyu17@huawei.com>`[:x tree 189dab5283645611fba732debdd3596a73ee1987
parent b5432ec5a29adfa1d9a248545f31efeebf5ee99b
author wenyu <wenyu17@huawei.com> 1718627526 +0000
committer Gitee <noreply@gitee.com> 1718627526 +0000

update

Signed-off-by: wenyu <wenyu17@huawei.com>yxLȞxtree 8de8ee263869e2732e7896709f9d71f05e08580b
parent 348f3c8316c9e542d771ead47f9fceda1bae6c5a
author wenyu <wenyu17@huawei.com> 1718625396 +0000
committer Gitee <noreply@gitee.com> 1718625396 +0000

update third_party/musl/ndk_script/BUILD.gn.

Signed-off-by: wenyu <wenyu17@huawei.com>Zx tree 1b74360f5fb88e81ef085afd30af2c48795a4b17
parent fd2dcdaa40554448ad020829e1fc1274e8b6869e
author wenyu <wenyu17@huawei.com> 1718625248 +0000
committer Gitee <noreply@gitee.com> 1718625248 +0000

update

Signed-off-by: wenyu <wenyu17@huawei.com>Kxltree 903183000cc5ba7f5a33491d2c26fb0230a424db
parent 80b65ab3bab44fe7cad192c2bd24eb4042d25562
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1718622512 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1718622512 +0800

[NDK]  fix overlay api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
?qx9tree 3c718129629ea52467112162a81c29365f149946
parent da9230074bd7cd6b57a8738ec7199c4d62172187
author yyuanche <yuancheng25@huawei.com> 1718592713 +0800
committer yyuanche <yuancheng25@huawei.com> 1718593676 +0800

【NDK】CAPI expandSafeArea&divider 属性新增
Signed-off-by: yyuanche <yuancheng25@huawei.com>
gx%tree d7cab123623b3c735fab5e3be3a49854011b4372
parent e251c5d6f241ba2fce9dc60095c94969a170111b
author xuedong <xuedong@huawei.com> 1716816413 +0800
committer xuedong <xuedong@huawei.com> 1718589505 +0800

add nativeBuffer and nativeWindow interface

Signed-off-by: xuedong <xuedong@huawei.com>
+]xptree 7f1de0014b0a22faf2dde83638035f1c7fc3e506
parent da9230074bd7cd6b57a8738ec7199c4d62172187
author zhangwuf <zhangwu47@huawei.com> 1718416070 +0800
committer zhangwuf <zhangwu47@huawei.com> 1718416070 +0800

更改diff结果：diff结果是否为api变更列，按统计规则的要求(符合要求的函数和变量)

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
0xStree 148f750773c97ec31b48247ef9b593e817e51120
parent d7d602102a0b75d249b963483cdc9d42d4852589
parent 1fdfac73e2ef211948d8392c58c35bed95b359c5
author openharmony_ci <120357966@qq.com> 1718360721 +0000
committer Gitee <noreply@gitee.com> 1718360721 +0000

!883 remove addtion blank of note
Merge pull request !883 from milkpotatoes/diff-sync{fxKtree fe72cf2bb6ea0c0aa02a262973cf89c23c7fe49a
parent d7a676d3d78085048114af151546e21b0fdc1d97
parent 9d074a0a19f8ac5fcb0e99d7cd8c40a509b06816
author openharmony_ci <120357966@qq.com> 1718357931 +0000
committer Gitee <noreply@gitee.com> 1718357931 +0000

!870 蓝黄一致性问题修改
Merge pull request !870 from zhangkai/mastervmx6tree 6152c5cd4f09844f4a494cc82728e929d113e4a5
parent d7a676d3d78085048114af151546e21b0fdc1d97
author milkpotatoes <chenshulin5@huawei.com> 1718356491 +0800
committer milkpotatoes <chenshulin5@huawei.com> 1718356909 +0800

Remove addtion blank of lines

Remove addtion blank of lines
Issue: https://gitee.com/openharmony/interface_sdk_c/issues/IA5JM9

Signed-off-by: milkpotatoes <chenshulin5@huawei.com>
Change-Id: I877ffd6f970f6374ca4ad169ce1e9138af3f82c5
F͓ܗxtree 8ff459e208f3df514de25158c8bedfc63ff786b3
parent d7a676d3d78085048114af151546e21b0fdc1d97
author xinking129 <xinxin13@huawei.com> 1718354538 +0800
committer xinking129 <xinxin13@huawei.com> 1718354538 +0800

zlib update 1.3.1

Signed-off-by: xinking129 <xinxin13@huawei.com>
sTjx$tree 30db3dd6273ddaea2e8e31250c2452d9cacb1fb3
parent 5d2a76d71c62cfcff56cd7c407c43b8def582b15
author zhangkai <zhangkai269@huawei.com> 1718264504 +0800
committer zhangkai <zhangkai269@huawei.com> 1718270484 +0800

蓝黄一致性问题修改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
$ex|tree bc4d227d2195362d812944d4b8ab05890cc2ba11
parent 1a82ba2bbaae9f0d887fc3105f9beebea18e6358
parent 651290cd983455498ac5db42cbb7eba6ad587a4a
author openharmony_ci <120357966@qq.com> 1718267947 +0000
committer Gitee <noreply@gitee.com> 1718267947 +0000

!772 C-API：修正NODE_FOREGROUND_BLUR_STYLE属性入参说明
Merge pull request !772 from 胡清云/C-API_0527_foregroundBlurStyleIxTtree f40e1e3037d1ee7bf0e11acaf4706f6ddf77a8f6
parent 5d2a76d71c62cfcff56cd7c407c43b8def582b15
parent ec9e420ab224b9da767472aa3a422e45885024f4
author openharmony_ci <120357966@qq.com> 1718265973 +0000
committer Gitee <noreply@gitee.com> 1718265973 +0000

!810 Add documentation for sendable napi
Merge pull request !810 from diartyz/sendablehxTtree 1ae438c18a007e7573ada3cceb57f4f38d3138ba
parent 0a8f14a6acd2e89602f72ca054ef2f06cd6471eb
parent a583a6e744271783a00d41a36686a826bfbdeede
author openharmony_ci <120357966@qq.com> 1718254429 +0000
committer Gitee <noreply@gitee.com> 1718254429 +0000

!849 账号CAPI描述信息修改
Merge pull request !849 from 周士淼/fix_0607_capixrx>tree 27cccaec00c825641ac03aff37d2cb38c59fe712
parent 594f42fc7e39dbc62702284a324f84bfc2617344
parent 1b606d07b2b4922a0a1a2ff83de1a6ee240c472e
author openharmony_ci <120357966@qq.com> 1718253891 +0000
committer Gitee <noreply@gitee.com> 1718253891 +0000

!858 蓝黄同步
Merge pull request !858 from Federer-JC/masterRbxYtree 696555932dd634988e509ddb65589efe07e5ef6f
parent 73b95c2b7dd8bda9acd0fd7682cd986fc463858a
parent a56291c7429467d93cd90bbd5a082878f83b9734
author openharmony_ci <120357966@qq.com> 1718253754 +0000
committer Gitee <noreply@gitee.com> 1718253754 +0000

!850 ContentSlot多实例场景优化
Merge pull request !850 from sunbees/multiNodeContent[;qMxxtree 17e34404ddee00cb0fc9c901dc45753b5ab3396c
parent 9973c5be3b834afb23b2588f05ab7f5109638087
parent c4350ddd2da50baab6418a8bd91627655dfd666d
author openharmony_ci <120357966@qq.com> 1718253457 +0000
committer Gitee <noreply@gitee.com> 1718253457 +0000

!856 增加diff和统计工具结果的接口全路径信息列和结果优化
Merge pull request !856 from zhangwu/masterq*x0tree c3e304d85c6bdd1dc7e6dbbc46133f0de3455dc8
parent 334c771fa82111b23680bf1038281f7e3a27b256
author duanhan <duanhan1@huawei.com> 1718251348 +0800
committer duanhan <duanhan1@huawei.com> 1718251348 +0800

ndk新增Get&Set needsPackProperties，fix codecheck
Signed-off-by: duanhan <duanhan1@huawei.com>
8(cܜxltree cdeb6aacb75c04e8c715f196263a192709da8b80
parent 5d04c0cfe45791ebcb57b99efe1ed3d1cb19aa21
parent 9973c5be3b834afb23b2588f05ab7f5109638087
author wenyu <wenyu17@huawei.com> 1718249756 +0000
committer Gitee <noreply@gitee.com> 1718249756 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: wenyu <wenyu17@huawei.com>sox tree 6f48de30bd2876dec96981e98b702bb070109a64
parent 8914fd43fdda73c069606011f21102ef75454e81
author wylyw78 <wenyu17@hauwei.com> 1718249491 +0800
committer wylyw78 <wenyu17@hauwei.com> 1718249491 +0800

适配Linux arm host openharmony编译

Signed-off-by: wylyw78 <wenyu17@hauwei.com>
_\xhtree 44428151681a51fef3c9551a008705acc344be99
parent 584309c845747dff668cfe1e0256fd2dbad5cb26
parent a0f3915a05abec85776c19f0c103463343cddc31
author openharmony_ci <120357966@qq.com> 1718187134 +0000
committer Gitee <noreply@gitee.com> 1718187134 +0000

!846 【IPC&RPC】修复kit设计与实现不一致问题
Merge pull request !846 from Lixiaoying25/master;{ޓxStree 6050fe3a5ff1265d0c77312aba57b47c54520c02
parent f92074ea0797290242d5b1bff1ea6e531735a9f2
parent 2597bcc56a09e304f622ef762500a91f5a3d1134
author openharmony_ci <120357966@qq.com> 1718177012 +0000
committer Gitee <noreply@gitee.com> 1718177012 +0000

!857 删除addtogroup非必要标签校验
Merge pull request !857 from 姜前进/6123qDxAtree d7306c32369d26b2f9733a532f8cf24cea337c05
parent f92074ea0797290242d5b1bff1ea6e531735a9f2
author Federer-JC <jincong4@huawei.com> 1718162455 +0800
committer Federer-JC <jincong4@huawei.com> 1718162455 +0800

蓝黄同步
Signed-off-by:Federer-JC <jincong4@huawei.com>

Signed-off-by: Federer-JC <jincong4@huawei.com>
g)xCtree 9218ef2ba96bfb22763c17157eb049e73b210c71
parent 0c140aea21300d709a84ccbe77f792b365da2961
author jwx1102601 <jiangqianjin@huawei.com> 1718158535 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1718158535 +0800

删除对addtogroup标签中非必要标签校验

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
rxftree befa631f56a077089b0cc32a873e4c6e8ac773d5
parent da1eaf8dac771bfbe235c7b0e983c7b423d6f788
parent bea3b9e215997d3c9cf06525e3bac1237d87e07e
author openharmony_ci <120357966@qq.com> 1718116235 +0000
committer Gitee <noreply@gitee.com> 1718116235 +0000

!855 NDK-CAPI: add AccessibilityState set/get method
Merge pull request !855 from wangxinqiang007/masterRn<xLtree e979adb0fcd30a0f98b20a68635c3e3b1ed1b56a
parent da1eaf8dac771bfbe235c7b0e983c7b423d6f788
author zhangwuf <zhangwu47@huawei.com> 1718107251 +0800
committer zhangwuf <zhangwu47@huawei.com> 1718107420 +0800

增加diff和统计工具结果的接口全路径信息列和结果优化

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
ʃǓxStree bc1047d9cd7abad7c7574bf1c6d55f89ede3d7f2
parent 45e73c764720362cf6a5134a16e2eb0f7f85bc14
author wangxinqiang007 <wangxinqiang2@huawei.com> 1718098449 +0800
committer wangxinqiang007 <wangxinqiang2@huawei.com> 1718101950 +0800

NDK-CAPI: add AccessibilityState set/get method

Signed-off-by: wangxinqiang007 <wangxinqiang2@huawei.com>
w9mx?tree fd9b82dca47044fc294f05023e7e263ebe8e9560
parent 80b65ab3bab44fe7cad192c2bd24eb4042d25562
author Lixiaoying25 <lixiaoying25@huawei.com> 1717749989 +0800
committer Lixiaoying25 <lixiaoying25@huawei.com> 1718097905 +0800

修复kit设计与实现不一致问题

Signed-off-by: Lixiaoying25 <lixiaoying25@huawei.com>
wrxFtree 02ded1a9ce49e44df41645871a9bcf2dfd99e678
parent eacc7cfb16aec087889855aed078185fe7d7b528
parent 23e479ca0af42097dd0403f77c628a87f15a3480
author openharmony_ci <120357966@qq.com> 1718096219 +0000
committer Gitee <noreply@gitee.com> 1718096219 +0000

!714 补充NETCONN_BEARER_VPN
Merge pull request !714 from Aurora/masterjc>x^tree 72a3255e7514a889a015646c47f692a040896539
parent 75e5ecc0bbd4fb4685a3f7bd36c7629950a97c91
parent a70af42028698ce1fbd01ca961a1945b667d6b65
author openharmony_ci <120357966@qq.com> 1718092512 +0000
committer Gitee <noreply@gitee.com> 1718092512 +0000

!808 添加renameat2接口宏定义常量参数
Merge pull request !808 from 仇玉加/renameat2wx(tree 3244b38ba537cc24b811eb1032f1645f443dd75c
parent 75e5ecc0bbd4fb4685a3f7bd36c7629950a97c91
author SubmarinePhantom <liuxiyao223@huawei.com> 1715935107 +0800
committer SubmarinePhantom <liuxiyao223@huawei.com> 1718087816 +0800

add vpn

Signed-off-by: SubmarinePhantom <liuxiyao223@huawei.com>
]WxTtree ab0d87cd4dfd3eeaeeaedcff24fea756d87a9fb5
parent 08494e846cc9135bc0a0b93af1a27d896cd5edeb
parent 58471dcdbeb0095bcd5ceae1a040363f3a4a564b
author openharmony_ci <120357966@qq.com> 1718087570 +0000
committer Gitee <noreply@gitee.com> 1718087570 +0000

!847 add image_effect errorcode description
Merge pull request !847 from 朱锐/masterlxVtree 98b1618b3f23fdbdfbccb69baf0dbbb6732ad40d
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
author liu-zelin <liuzelin8@huawei.com> 1717471830 +0800
committer liu-zelin <liuzelin8@huawei.com> 1718075389 +0800

Add documentation for sendable napi

Issue: https://gitee.com/openharmony/docs/issues/I9USM9?from=project-issue
Signed-off-by: liu-zelin <liuzelin8@huawei.com>
Change-Id: I1d274caf0e2980ec725e2e0de320a0fa2f751166
dx^tree cad090f794965be348312bfc0441e22ef2bda008
parent 80b65ab3bab44fe7cad192c2bd24eb4042d25562
author sunbees <sunqinjia@huawei.com> 1717916488 +0800
committer sunbees <sunqinjia@huawei.com> 1717916488 +0800

distinguish nodeContent multiple instance

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I20585ead28f25131e1c9dcea08ac8fd01023983b
="nx^tree cffddba29b0bf3bf7d6e71c2f0251d06b018aa39
parent 80b65ab3bab44fe7cad192c2bd24eb4042d25562
author ZhouShimiao <zhoushimiao@huawei.com> 1717915808 +0800
committer ZhouShimiao <zhoushimiao@huawei.com> 1717915808 +0800

CAPI 描述信息修改

Signed-off-by: zhoushimiao <zhoushimiao@huawei.com>
Change-Id: I05adbe913fdf6d0849f3a93067d75f9ff74a82a1
%Rux)tree ab0d87cd4dfd3eeaeeaedcff24fea756d87a9fb5
parent 08494e846cc9135bc0a0b93af1a27d896cd5edeb
author z00428214 <zhurui17@huawei.com> 1717828566 +0800
committer z00428214 <zhurui17@huawei.com> 1717835975 +0800

add image_effect errorcode description

Signed-off-by: z00428214 <zhurui17@huawei.com>
+p\ xHtree e4d6ca154a4a1fa0a90cea346832a1204970636e
parent 80b65ab3bab44fe7cad192c2bd24eb4042d25562
parent 6f694ecb46248f24c5f5fad5e49a0baf3c1aad61
author openharmony_ci <120357966@qq.com> 1717751087 +0000
committer Gitee <noreply@gitee.com> 1717751087 +0000

!838 修改sdk capi注释
Merge pull request !838 from 谢智宇/nsdk_capilkxHtree e53db556ceb889df93b2bce4127bbf4b13a837a6
parent 3dfb48ab9e342448797818d87fd9c1b9becb5468
author xiezhiyu <xiezhiyu2@huawei.com> 1717673885 +0800
committer xiezhiyu <xiezhiyu2@huawei.com> 1717723895 +0800

修改capi注释

Change-Id: Ic4103657a366d87a39f7cd69270297b59d011ed4
Signed-off-by: xiezhiyu <xiezhiyu2@huawei.com>
jxjtree 8844d77ff7ef156d33f617feb6fa39fccca8d712
parent a687cd5e181da6a9797bd03e6c0ce6512d354c26
parent ed4a9b68a57087fd3d2444a2d23f20b1205a3b89
author openharmony_ci <120357966@qq.com> 1717682580 +0000
committer Gitee <noreply@gitee.com> 1717682580 +0000

!799 编译sdk时将compatible_config.json打包到ndk目录下
Merge pull request !799 from jianyang/master{kxUtree 4a23cf94cb212478c648ceca94292b6a870be041
parent bf4664b4577ccd63ba2a87cf372f4e340257acf6
parent a0e5ec84a92ddb82b49e3376abb2a7438abc674a
author openharmony_ci <120357966@qq.com> 1717679712 +0000
committer Gitee <noreply@gitee.com> 1717679712 +0000

!837 cdefs.h文件里蓝黄空格不一致
Merge pull request !837 from 仇玉加/spaceuNx*tree 65c41e33de9c21b44f0bda0544127847f2e95c9a
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
author 仇玉加 <qiuyujia1@huawei.com> 1717665130 +0800
committer 仇玉加 <qiuyujia1@huawei.com> 1717665130 +0800

修改字符串之间空格不一致

Signed-off-by: 仇玉加 <qiuyujia1@huawei.com>
hrrDx!tree 6b9c3e641a35ba519f5ad063dda8c5cd5b8d1207
parent 290c81efcf593ef6416edae24ac8575e65e1cf53
author duanhan <duanhan1@huawei.com> 1717664891 +0800
committer duanhan <duanhan1@huawei.com> 1717664891 +0800

ndk新增Get&Set needsPackProperties

Signed-off-by: duanhan <duanhan1@huawei.com>
]Ϝx\tree cae6db24bb5828e96920d597e8eedb3b708919d1
parent e3413f5677945a9a888768d85be25979fa3a120b
parent bfc44186b3243ea519a2ca22db176c9754a8540d
author openharmony_ci <120357966@qq.com> 1717661969 +0000
committer Gitee <noreply@gitee.com> 1717661969 +0000

!819 补充media library capi接口权限
Merge pull request !819 from caochuan/add_permissionEp x tree a11f4d8b994cb24e50bd426a58e3557608288d9e
parent 3dfb48ab9e342448797818d87fd9c1b9becb5468
author duanhan <duanhan1@huawei.com> 1717654960 +0800
committer duanhan <duanhan1@huawei.com> 1717655497 +0800

ndk新增Get&Set needPackProperties

Signed-off-by: duanhan <duanhan1@huawei.com>
M\gxPtree 8df7b65911ac8c1c98cbf8bd2e1d57416597795a
parent 3dfb48ab9e342448797818d87fd9c1b9becb5468
parent ccae565e982013a1acdbc06689580a45da83f4cc
author openharmony_ci <120357966@qq.com> 1717654934 +0000
committer Gitee <noreply@gitee.com> 1717654934 +0000

!830 增加音频编解码错误码描述
Merge pull request !830 from peng/masterQ-rݙx	tree 8df7b65911ac8c1c98cbf8bd2e1d57416597795a
parent 2e285afdfd956e6e4c4150c34655b74fc6203971
author peng <yangpeng43@huawei.com> 1717641021 +0000
committer peng <yangpeng43@huawei.com> 1717641021 +0000

modify comments

Signed-off-by: peng <yangpeng43@huawei.com>
Q:x	tree c112fdc5b4b751807647ed64cd2ae1681a42cfbf
parent 07a954c5a8f5a1c49080ab00ead795b8d4bf5d7b
author peng <yangpeng43@huawei.com> 1717639404 +0000
committer peng <yangpeng43@huawei.com> 1717639404 +0000

modify comments

Signed-off-by: peng <yangpeng43@huawei.com>
R@xtree d57ba3239d4aa65cac014139ea65f09ebb684424
parent 3dfb48ab9e342448797818d87fd9c1b9becb5468
author peng <yangpeng43@huawei.com> 1717597702 +0000
committer peng <yangpeng43@huawei.com> 1717597702 +0000

add audio codec err code description

Signed-off-by: peng <yangpeng43@huawei.com>
PYxTtree f46adf0ec8156e63de26883f99c4bd88eee7a217
parent 362274640bc6503c8eb6753932a52f8d8185c796
parent c6eceaabc6c6dc72c211a45498ed093f902bb79f
author openharmony_ci <120357966@qq.com> 1717583131 +0000
committer Gitee <noreply@gitee.com> 1717583131 +0000

!531 add ndk interface for securecamera
Merge pull request !531 from kerongfeng/masterFgx&tree 5da2051da07386a2311b53a7fd8fd909ae16b1ee
parent d262f41879dc6be092c38fc66638a5a9b74bdbcd
author kerongfeng <fengkerong@huawei.com> 1717570048 +0000
committer Gitee <noreply@gitee.com> 1717570048 +0000

 add ndk interface for securecamera 

Signed-off-by: kerongfeng <fengkerong@huawei.com>"s]xZtree 944af6880a95cfb550d795f16a56bbec469c0c6f
parent 4ed3556609706f636fbfb6a4a0c120146eb3521b
parent 7b53e5b6ebf12154361246d762328e4b1272f59a
author openharmony_ci <120357966@qq.com> 1717568780 +0000
committer Gitee <noreply@gitee.com> 1717568780 +0000

!824 Fix the syscap description in the file.
Merge pull request !824 from zhenghongda/masterEhΕx%tree 41c303f94f434ca7b32d038832d4a1ddb5c88822
parent ecb00f84df6fe449cbcb3eb8dfcc0e0c8554a470
author kerongfeng <fengkerong@huawei.com> 1717559374 +0000
committer Gitee <noreply@gitee.com> 1717559374 +0000

add ndk interface for securecamera 

Signed-off-by: kerongfeng <fengkerong@huawei.com>/^ xMtree 36e6a8cff46070dc2709d83f8ab88f118a224f02
parent 5bfbfb5e87224f5b80781af5f9f3133e95089902
parent b253de6d1c8d606cfcce68ad072aeb335fde9d9e
author openharmony_ci <120357966@qq.com> 1717554124 +0000
committer Gitee <noreply@gitee.com> 1717554124 +0000

!805 [NDK] fix getTotalChildCount note
Merge pull request !805 from lisitao/l_1rex$tree f3236f66ac789d1c41c29936e32832a476fbcdf5
parent 5bfbfb5e87224f5b80781af5f9f3133e95089902
author caochuan <caochuan@huawei.com> 1717494320 +0800
committer caochuan <caochuan@huawei.com> 1717494373 +0800

补充media library capi接口权限

Signed-off-by: caochuan <caochuan@huawei.com>
axktree b261b0e7d488df3b745486f7ae74d667bf3a8ed3
parent 3e63fc6586ffa8aecb403a90437b54b1b45c5b83
parent 1b1ce600cd31a5402df955ce99dfed6c6ad3776b
author openharmony_ci <120357966@qq.com> 1717492392 +0000
committer Gitee <noreply@gitee.com> 1717492392 +0000

!813 引用头文件native_buffer.h路径bugfix
Merge pull request !813 from yangfan/fix_image_native_includeyxqtree a275adf75bc4a7a3f497f668cc97b1066242418e
parent 1e458c4132351a5f2253210eafe5fbe3878ea179
parent 0ad8ed90472986a57c2cac598f52c88b3a56adaf
author openharmony_ci <120357966@qq.com> 1717490977 +0000
committer Gitee <noreply@gitee.com> 1717490977 +0000

!818 在ohaudio.ndk.json内新增允许应用静音并发播放的接口
Merge pull request !818 from zhengxin/0604gxWtree befa70ec2e3456aff64b68dca7335a1375c89217
parent 591187edecbc308c26662cb93e5f7ae54f022b5a
parent 6331414ba6f8aa58b449edf639194e5eb535d14c
author openharmony_ci <120357966@qq.com> 1717490743 +0000
committer Gitee <noreply@gitee.com> 1717490743 +0000

!777 【NDK】6toD refresh接口新增 
Merge pull request !777 from yyuanche/ndk_refreshPZn\xxtree 2d19738cac90cd3b81ebd6e4df3d6867cb50bad3
parent bf673b3ec2ea541704821d2ebf6cd1d0c0d750fd
author jianyang <jiangyang9@huawei.com> 1717225406 +0800
committer jianyang <jiangyang9@huawei.com> 1717490615 +0800

When compiling the SDK, package  into the NDK directory

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/I9U6BR

test:
Signed-off-by: jianyang <jiangyang9@huawei.com>
夀xPtree d3ddbcde454bcb8ebd91419c5f004185c7882a6b
parent 591187edecbc308c26662cb93e5f7ae54f022b5a
author zhengxin <zhengxin3@huawei.com> 1717487205 +0800
committer zhengxin <zhengxin3@huawei.com> 1717487205 +0800

add json for silent mode

Signed-off-by: zhengxin <zhengxin3@huawei.com>
Change-Id: I678991e641d77eb7d60c784389dbf6644f92dab0
hx-tree eef765500e017dda38b5278d8e2eeb1eb5e4911f
parent 39880e6fffa3aae80641d3916f33a8168a1b1b14
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
author yyuanche <yuancheng25@huawei.com> 1717386952 +0800
committer yyuanche <yuancheng25@huawei.com> 1717483170 +0800

Merge branch 'master' into ndk_refresh
|[qxtree e26ac47e94b62d97347b0a93cbd58cdc87c0dba3
parent 9a77c6c90237ac81a31c3a3b48ef39aa7d95baf8
author yangfan <yangfan174@huawei.com> 1717483165 +0800
committer yangfan <yangfan174@huawei.com> 1717483165 +0800

目录修改

Signed-off-by: yangfan <yangfan174@huawei.com>
Xbx-tree 3361109281e6dc10c42e8eca3111f4b13afaf7fe
parent 0a6d6655611e9f421ab6759c1847714719bc6f1b
author yangfan <yangfan174@huawei.com> 1717482037 +0800
committer yangfan <yangfan174@huawei.com> 1717482037 +0800

引用头文件native_buffer.h路径bugfix

Signed-off-by: yangfan <yangfan174@huawei.com>
exItree ae282577b6ab5262082f122e170f8c12b25551a2
parent 557e8e9392a26c94182a82fc60f3500c79a46e65
parent 591187edecbc308c26662cb93e5f7ae54f022b5a
author yangfan <yangfan174@huawei.com> 1717474767 +0800
committer yangfan <yangfan174@huawei.com> 1717474767 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c
gdqxGtree ae282577b6ab5262082f122e170f8c12b25551a2
parent ff5d105586ffb8a0cbdd0f5f7820ddca7a40844e
parent 29c42bf888195b151d0c884a8968b9c1d78b340b
author openharmony_ci <120357966@qq.com> 1717470416 +0000
committer Gitee <noreply@gitee.com> 1717470416 +0000

!780 新增sdk capi接口
Merge pull request !780 from 谢智宇/sdk_capii xYtree f8c0fbf7982e748880bfd45dcbcdcd3a9de3c7cd
parent cd4f06159cb8e01db0e8d5117b45116ecec547fe
parent acd4f5c9b99f36a389325bc4c460f01776df8a6f
author openharmony_ci <120357966@qq.com> 1717467323 +0000
committer Gitee <noreply@gitee.com> 1717467323 +0000

!795 avcodec能力接口新增错误码描述
Merge pull request !795 from 杨小雨/master̕yx*tree da14dad0917707fe0a893c3b52f2ba29d7a74dde
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
author 仇玉加 <qiuyujia1@huawei.com> 1717459799 +0800
committer 仇玉加 <qiuyujia1@huawei.com> 1717459799 +0800

添加renameat2接口宏定义常量

Signed-off-by: 仇玉加 <qiuyujia1@huawei.com>
1XoxFtree 541f2543b21ecd5e601445484753e8c061d00c23
parent 9c612ca1ed729492c2e2f8a33ff5cad015c76187
author xiezhiyu <xiezhiyu2@huawei.com> 1716879959 +0800
committer xiezhiyu <xiezhiyu2@huawei.com> 1717417370 +0800

新增sdk capi

Change-Id: I4c9a261219453e1162c1c57e903517b7213fb4f1
Signed-off-by: xiezhiyu <xiezhiyu2@huawei.com>
Qex[tree 3025f39d98a8afc818433af43282cf58a24eb75d
parent a2ab0b603bcb3702c27b069ddd9f4710bd00f595
parent f36dceb96399413fc16e1d239f710cc0c2f252ba
author openharmony_ci <120357966@qq.com> 1717416808 +0000
committer Gitee <noreply@gitee.com> 1717416808 +0000

!705 新增允许应用静音并发播放的接口
Merge pull request !705 from zhengxin/0516e(xęxitree d356135feee4a30c9de521efc41001cc81658009
parent f970dc192bfdf4414403bbb950b24fea44e7f3d3
author Zz00836346 <zhengxin3@huawei.com> 1715851470 +0800
committer zhengxin <zhengxin3@huawei.com> 1717406801 +0800

新增允许应用静音并发播放的接口

Signed-off-by: z00836346 <zhengxin3@huawei.com>
Change-Id: I0bd396f11f3501677c3247e3ba96b62ce2bcb214
rJ|ޕxUtree 55120d4f2d5d3e5112daaeba777119c06e3db0b2
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
parent f55a5e6de4d34bd07a4a6e155f919ae452a53541
author openharmony_ci <120357966@qq.com> 1717404208 +0000
committer Gitee <noreply@gitee.com> 1717404208 +0000

!791 ContentSlot多实例场景优化
Merge pull request !791 from lanshouren/work_0530nPxwtree 066016ce0747fa21f45d070dd8a597e0919f1199
parent 777d1896534d26b7c9a50e7345e720b67e1958a8
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1717403003 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1717403003 +0800

[NDK] fix getTotalChildCount note
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
ux)tree 485635d1dcbeed8eee83c15661eef3c7ef3c7c29
parent 9c612ca1ed729492c2e2f8a33ff5cad015c76187
author yyuanche <yuancheng25@huawei.com> 1716876955 +0800
committer yyuanche <yuancheng25@huawei.com> 1717386802 +0800

【NDK】6toD refresh接口新增
Signed-off-by: yyuanche <yuancheng25@huawei.com>
*dxdtree 4fa79fed79fb55fdcab2abd81eca6da639636709
parent 36f6a1c50ff0d8ca7288fcb73d4f2d0fe30a9fbc
parent c910addda1efec05a5151e1a70359f0faddeabfa
author openharmony_ci <120357966@qq.com> 1717244732 +0000
committer Gitee <noreply@gitee.com> 1717244732 +0000

!785 取消获取公共目录的NDK接口的权限校验
Merge pull request !785 from wangluyao/master)jzxLtree 9a0a4e0b7f258191612252baa3ec0a2fb432a927
parent bf673b3ec2ea541704821d2ebf6cd1d0c0d750fd
parent 6253be244cd909baba074f1dc2e300ecba2f02a9
author openharmony_ci <120357966@qq.com> 1717237213 +0000
committer Gitee <noreply@gitee.com> 1717237213 +0000

!788 support napi_fatal_exception
Merge pull request !788 from shilei91/masterexEtree 9d3814ec76a74ea6cdf713a929d00392ad8c1af4
parent 51486314085adabca2677de8a8cda7babd1cf57d
author Wang Luyao <wangluyao35@huawei.com> 1716946998 +0800
committer Wang Luyao <wangluyao35@huawei.com> 1717229132 +0800

取消NDK接口获取公共目录接口的权限校验

Signed-off-by: Wang Luyao <wangluyao35@huawei.com>
i	xȘxXtree c84ab1a84b00606afce0e9320a64ad1784fe6669
parent e0e65128f85de49c72547571892ebf96fe554dbf
parent 091e635bbb24123e28ae7090c8ec5fabaeab8219
author openharmony_ci <120357966@qq.com> 1717142156 +0000
committer Gitee <noreply@gitee.com> 1717142156 +0000

!750 drawing interface sdk_c 0530
Merge pull request !750 from 刘伟/drawing_sdkc_zhx05303Zix7tree 271c57264860b749f5b77538e895716a728e0a20
parent e0e65128f85de49c72547571892ebf96fe554dbf
author yangxiaoyu <yangxiaoyu5@huawei.com> 1717141941 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1717141941 +0000

avcodec能力接口新增错误码描述

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
nxUtree cab7f2450b1d27f042d190256ea3b4f359414b27
parent 59461cf240fec2f7b6bb737943d72c3a594c7df4
parent 45e73c764720362cf6a5134a16e2eb0f7f85bc14
author openharmony_ci <120357966@qq.com> 1717074433 +0000
committer Gitee <noreply@gitee.com> 1717074433 +0000

!786 NDK-CAPI: add swiper attribute
Merge pull request !786 from wangxinqiang007/masterHfxQtree 10f7da9aa2c3c6a25f8fd75689dba25e7dd767f9
parent 5afc92ed0fa863eca86f287025ae2f8940e02447
parent 163b2ff96c620326c64248660665e22f2961fc2d
author openharmony_ci <120357966@qq.com> 1717054714 +0000
committer Gitee <noreply@gitee.com> 1717054714 +0000

!792 avmuxer capi补充错误码说明
Merge pull request !792 from cailei24/mastermxAtree 9f1c4203fd19b4828b1505d8e6d110d4cc7fed54
parent d4708ff8eb24ddea5399a887ee90603d66aabcb1
parent 5b9d17d30cd65399e56437fb7283f9212a020602
author openharmony_ci <120357966@qq.com> 1717050061 +0000
committer Gitee <noreply@gitee.com> 1717050061 +0000

!762 调试pandas版本
Merge pull request !762 from zhangwu/masterldTxXtree ad82b683959a938e114372a5f50378f6fb30623d
parent 99d9b850fae3781370e5fa2f869651a75a32052e
parent ed7e2c5b97189f204c4aab7c730c75de99e0e958
author openharmony_ci <120357966@qq.com> 1717047094 +0000
committer Gitee <noreply@gitee.com> 1717047094 +0000

!768 AVCodec支持输出真实图像宽高
Merge pull request !768 from hongran1206/masterpqxtree 087bb7db7cdf6040f95e8b55a990df2b773c36e9
parent 99d9b850fae3781370e5fa2f869651a75a32052e
author cailei <cailei24@huawei.com> 1717038099 +0800
committer cailei <cailei24@huawei.com> 1717038099 +0800

补充接口错误码

Signed-off-by: cailei <cailei24@huawei.com>
TYjxqtree 1fe4d1ba8606ceddb1e4e4974bf356d208a7cd6b
parent 99d9b850fae3781370e5fa2f869651a75a32052e
author lanshouren <lanshouren@huawei.com> 1717035606 +0800
committer lanshouren <lanshouren@huawei.com> 1717035606 +0800

[ContentSlot]support multiple instance scenarios

Signed-off-by: lanshouren <lanshouren@huawei.com>
Change-Id: I343641f227ec6ac86072d99d9ac1936a2722b0a7
vfxZtree 6c66e550130c5745fc152e3106138f1b7119af7c
parent efa125780c20c63d1efa90b51ceb3461162e3199
parent b3ede25d86cc5b67f5f27da879cbf26ef9655c5e
author openharmony_ci <120357966@qq.com> 1716991050 +0000
committer Gitee <noreply@gitee.com> 1716991050 +0000

!776 Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode OH_AVPlayer_SetAudioEffectMode
Merge pull request !776 from fanpingan/Feature1txOtree cc72b91f2dd56de7a86b4a11b079f9244c61c1c9
parent 9c92604f2ee4ea640edf9103f1c1f4ae8afc4c7a
parent bf831c486f4da5e3d8ee290ab1427fd876e5d408
author openharmony_ci <120357966@qq.com> 1716981508 +0000
committer Gitee <noreply@gitee.com> 1716981508 +0000

!784 avcodec增加错误码说明
Merge pull request !784 from hongran1206/masterRmxntree f95a2344c30e24f4303fbb4034a88f5b958308e1
parent 8d6e65035cf94c1c240719869d1d7ee257676b2a
author fanpingan <fanpingan1@huawei.com> 1716973172 +0800
committer fanpingan <fanpingan1@huawei.com> 1716973172 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I33bf8131bc3943511c251a4cc04ef6cd037e8193
}xKtree a6fc75ad9ca32e470354a56e8cdc0d4168a5d2b6
parent 9c92604f2ee4ea640edf9103f1c1f4ae8afc4c7a
author shilei <shilei91@huawei.com> 1716968035 +0000
committer shilei <shilei91@huawei.com> 1716968035 +0000

support napi_fatal_exception

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Ie012f62f2adbb27ca379cc4d06f9e46342204529
fxBtree bf3d54cbb149c6fb7f5c95cf2fbfaf6665f0e25d
parent 8ccb0ead2b30bc68f75665ab28a6115e4c3c6597
author wangxinqiang007 <wangxinqiang2@huawei.com> 1716951200 +0800
committer wangxinqiang007 <wangxinqiang2@huawei.com> 1716965526 +0800

NDK-CAPI: add swiper attribute

Signed-off-by: wangxinqiang007 <wangxinqiang2@huawei.com>
1Bgxntree dd8defb58bb9ffb7115a86116b7bed96ab2e18c9
parent 598fae1cb1fddadff3a9224f091deaff015911e6
author fanpingan <fanpingan1@huawei.com> 1716955113 +0800
committer fanpingan <fanpingan1@huawei.com> 1716955113 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: Iebb4c4b605b6832b10ebfd192049f8bfdce53143
@x4tree 27f427bc9807d7a9ea6005fc8690d4ea78a7905e
parent 831ada26b6ac48740da16e7458a0f60119a8eda8
author zhanghongran <zhanghongran@huawei.com> 1716953742 +0800
committer zhanghongran <zhanghongran@huawei.com> 1716953742 +0800

avcodec补充错误码说明

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
·jxCtree 97caf01652db5ec841092d1c20fc44311e3fe04c
parent 9c92604f2ee4ea640edf9103f1c1f4ae8afc4c7a
author zhanghongran <zhanghongran@huawei.com> 1716953253 +0800
committer zhanghongran <zhanghongran@huawei.com> 1716953253 +0800

avcodec解码支持输出图像真实宽高

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
^vx1tree c42ea9f463a4a3b27dcf2f8e3f678caa17c43976
parent 44358308fc0fe8cab7feb3ed517902b7e3f6d5c3
author lw19901203 <liuwei793@h-partners.com> 1716948377 +0800
committer lw19901203 <liuwei793@h-partners.com> 1716948736 +0800

drawing interface sdk_c 0530

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
%N[xCtree 0599526957f6e07f8e0df43470bdbdc5f2aaf4ee
parent 51486314085adabca2677de8a8cda7babd1cf57d
parent ce357ad7d66df08521366808c217e3db8f84d5c0
author openharmony_ci <120357966@qq.com> 1716945851 +0000
committer Gitee <noreply@gitee.com> 1716945851 +0000

!783 qos NDK易用性整改
Merge pull request !783 from Ethan/masterf՚x:tree 4f4a8d6ea780450f168972919a74ba3ff15d7a7b
parent 51486314085adabca2677de8a8cda7babd1cf57d
author zhanghongran <zhanghongran@huawei.com> 1716908374 +0800
committer zhanghongran <zhanghongran@huawei.com> 1716908374 +0800

avcodec capi 补充错误码说明

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
emx]tree 3cf246466220a05e84cf5eaa7044f86e499fdb4e
parent 95105231220ac24f6dc96e20d5a30d45b6ba5b5b
parent 8ccb0ead2b30bc68f75665ab28a6115e4c3c6597
author openharmony_ci <120357966@qq.com> 1716900403 +0000
committer Gitee <noreply@gitee.com> 1716900403 +0000

!720 NDK-CAPI: add image animator attribute
Merge pull request !720 from wangxinqiang007/master1ixtree 6e59ba4f4f3057c1d94ce9734196785cd359d3b6
parent 95105231220ac24f6dc96e20d5a30d45b6ba5b5b
author Ethan <liuchungang@hisilicon.com> 1716898848 +0000
committer Gitee <noreply@gitee.com> 1716898848 +0000

fix qos ndk comments

Signed-off-by: Ethan <liuchungang@hisilicon.com>)VqxJtree 3cf246466220a05e84cf5eaa7044f86e499fdb4e
parent 95105231220ac24f6dc96e20d5a30d45b6ba5b5b
author wangxinqiang007 <wangxinqiang2@huawei.com> 1716115399 +0800
committer wangxinqiang007 <wangxinqiang2@huawei.com> 1716885820 +0800

NDK-CAPI: add image animator attribute

Signed-off-by: wangxinqiang007 <wangxinqiang2@huawei.com>
dhx@tree e2d82fef40305f1ef5a5d19cd1c0012918e08984
parent 9c612ca1ed729492c2e2f8a33ff5cad015c76187
parent ee42b8626afec23198416cf86280291a2ee5d209
author openharmony_ci <120357966@qq.com> 1716882355 +0000
committer Gitee <noreply@gitee.com> 1716882355 +0000

!757 [NDK]  fix errorCode
Merge pull request !757 from lisitao/l_1	^xtree fb009358b45364694fafa5e10cc4e2fd023e6bcc
parent 5c41f7b09c2bd5c1d67349fb02ee57ca32f7400e
author zhangwuf <zhangwu47@huawei.com> 1716608771 +0800
committer zhangwuf <zhangwu47@huawei.com> 1716880576 +0800

调试pandas版本

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
	j[Gxntree 093afca71ac87a9b56fabe974e982ddf00ace9fe
parent a0e38542910cab8d4a702239d63afb91a4283610
author fanpingan <fanpingan1@huawei.com> 1716866520 +0800
committer fanpingan <fanpingan1@huawei.com> 1716866520 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: If1b43c5c2d7a83d36f984a831fc0c22a246198f1
hёxntree 4cad2587a1667a57d5bce53672d086ce42ede693
parent 385db123cdd7354ce832ceb9ca1f90f6177e9ef5
author fanpingan <fanpingan1@huawei.com> 1716864363 +0800
committer fanpingan <fanpingan1@huawei.com> 1716864363 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I6e3a11302539a97d2ed2f31210878bacf776e99a
xntree 2bb2e8e6e7f6dab14adcc3d56b743c10c6881ab6
parent fa033516e19415d411f3ee1055303d447c18ede9
author fanpingan <fanpingan1@huawei.com> 1716862484 +0800
committer fanpingan <fanpingan1@huawei.com> 1716862484 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I8db46923f9988fc7b9d6853cd9e7cb32cb9017fb
Ӭxntree f250ecc782d40936947257fad0f7aba09142db0e
parent 4fd86a8f1ed1809912416115415e93d9e60cb17b
author fanpingan <fanpingan1@huawei.com> 1716859507 +0800
committer fanpingan <fanpingan1@huawei.com> 1716859507 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: If2e972c3c5714574dec7e78374d6894f64b918cd
~xxtree dec4571ffcd849f2904cb9ed44d914c2ecf93558
parent 12f5d925271ca899b2ae228010ac2cda7b7f1182
author huqingyun <huqingyun1@huawei.com> 1716793543 +0000
committer huqingyun <huqingyun1@huawei.com> 1716815587 +0000

C-API：修正NODE_FOREGROUND_BLUR_STYLE属性入参说明

Signed-off-by: huqingyun <huqingyun1@huawei.com>
Change-Id: Ibda9cae1364a7f59cd6efc148f3c4dacc2b7e21e
ǀKxCtree f0dc7c1788b1e006d7bf1c6f2a393aeb163e7a27
parent e251c5d6f241ba2fce9dc60095c94969a170111b
parent 0f3888397042320faded3afe19e41f95dd9c4ba9
author openharmony_ci <120357966@qq.com> 1716814761 +0000
committer Gitee <noreply@gitee.com> 1716814761 +0000

!767 [NDK]  fix overlay note
Merge pull request !767 from lisitao/l_2`xFtree e941475b3fd08e04c698e71b13df52b5f0082f7e
parent 0e4e8e6f338e6d7df76ddbfc25662f99fc1a5ac4
parent 76645a9f7f5f3a6ec1122b02f2b02d640079f8be
author openharmony_ci <120357966@qq.com> 1716808166 +0000
committer Gitee <noreply@gitee.com> 1716808166 +0000

!743 revert
Merge pull request !743 from 杨俊晖/OpenHarmony-5.0-Beta1UdxZtree ddc2fb198dd1c7f34ef0a3a9751e23f9b945389d
parent 12f5d925271ca899b2ae228010ac2cda7b7f1182
parent 98f0d649747c1b370522b0574de6fd65fe678b14
author openharmony_ci <120357966@qq.com> 1716794421 +0000
committer Gitee <noreply@gitee.com> 1716794421 +0000

!668 新增音频回调返回值定义
Merge pull request !668 from ancimoon/callback_result|u<xEtree ea5d7a21d502fbd045061e7ead1c61b014ae8852
parent 65cc4231e45b6d57bddc05abd62a33d3d022bef2
parent eb504376b76808f7e81485f2c1921a673b1f0e08
author openharmony_ci <120357966@qq.com> 1716782234 +0000
committer Gitee <noreply@gitee.com> 1716782234 +0000

!769 修改attest描述
Merge pull request !769 from 杨欢欢/attest_11i[xJtree 3ecdb89122d0feb2066283bd786f7f0475342279
parent 0b41f1273fae78ca610e7e534523a11d0846015c
parent 0c140aea21300d709a84ccbe77f792b365da2961
author openharmony_ci <120357966@qq.com> 1716780251 +0000
committer Gitee <noreply@gitee.com> 1716780251 +0000

!715 工具适配codecheck门禁
Merge pull request !715 from 姜前进/0517jxQtree a02cd1527f27d26f8c089325fe561c95b3c8c431
parent 24aaba2c1b7760d7a404b231970d91458bacaebb
parent 794ac1352b62b4f97e97e736e11e9267717a9d10
author openharmony_ci <120357966@qq.com> 1716778172 +0000
committer Gitee <noreply@gitee.com> 1716778172 +0000

!761 [DRM] Rectify API annotations.
Merge pull request !761 from zhenghongda/masterGe.xJtree 04a2ed8a9a1c9bfb2cefcf1c9395181ea8ec3841
parent 77a39fe284c9cd66489be3b3103212e5f3ea3225
parent 37a28c9e53b7e51d81a1259eb6e3acaa202c1812
author openharmony_ci <120357966@qq.com> 1716777924 +0000
committer Gitee <noreply@gitee.com> 1716777924 +0000

!765 ddk ndk接口新增kit注解
Merge pull request !765 from 沈康/masterjlxYtree 2a8e2c17a6e4c56ea57970c10715a056a9721b82
parent 718bca6185b649dbd1906926669395f5c01c12f0
author y30053096 <yangjinhuan@huawei.com> 1716775249 +0800
committer y30053096 <yangjinhuan@huawei.com> 1716775249 +0800

modify attest permission
Signed-off-by: y30053096 <yangjinhuan@huawei.com>

Change-Id: I42cda77a6844515a5a7062030ef219cd7fa3eeba
"(fxVtree 9fd8a613f790870eed44eacb3036697436d0b71c
parent a2cbc3b75db075c34e04ca0711f4ade51086bbed
parent 6659e8becf9a47015b671769bf4a4178e9b17a2c
author openharmony_ci <120357966@qq.com> 1716634377 +0000
committer Gitee <noreply@gitee.com> 1716634377 +0000

!763 fix：hiappevent接口增加错误码注释
Merge pull request !763 from wjf/master$,sPxktree 5c97c428ac204f103e092e985fb432c58ef2c8ff
parent 26628e02942d65c17fb87d2cb08faf3d3cd96c38
parent cf4321de7c067564b5ebb57f259115853999eab7
author openharmony_ci <120357966@qq.com> 1716629344 +0000
committer Gitee <noreply@gitee.com> 1716629344 +0000

!760 链接返回状态码到枚举类型 JSVM_Status
Merge pull request !760 from milkpotatoes/link-ret-codeQ|xmtree 0a8445162e677aee9313f976dcc1fef80d0a1577
parent 73bd11abc2addc123c41a1e6250d6dcd9c02fc5d
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1716626292 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1716626292 +0800

[NDK]  fix overlay note
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
 sXxjtree 49f2acd03321696781e69ed02cd8977d3977afa4
parent 73bd11abc2addc123c41a1e6250d6dcd9c02fc5d
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1716602039 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1716625750 +0800

[NDK]  fix errorCode
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
<tqxXtree 028c76aaaeefdd0697c23faf10754d0d9a029ac3
parent 5c41f7b09c2bd5c1d67349fb02ee57ca32f7400e
parent 16561ab3e4928855d95d380b0dcf46a4919a2e46
author openharmony_ci <120357966@qq.com> 1716624953 +0000
committer Gitee <noreply@gitee.com> 1716624953 +0000

!637 可变帧率提供分级管控NDK接口
Merge pull request !637 from 徐炜楠/masterwx[tree 4282284522f51068a67ac60ae553304885525926
parent 5c41f7b09c2bd5c1d67349fb02ee57ca32f7400e
author zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1716607251 +0800
committer zhenghongda <13135671+zhenghongda@user.noreply.gitee.com> 1716624092 +0800

[DRM] Rectify API annotations.

Signed-off-by: zhenghongda <zhenghongda4@huawei.com>
7lxtree f5e16a290e4d1784e921e4908209b66b51afee11
parent 97187d21aac1cccf48d848ca794d250a34a79894
author wjf <wujunfang1@huawei.com> 1716608603 +0800
committer wjf <wujunfang1@huawei.com> 1716622148 +0800

hiappevent接口增加错误码注释

Signed-off-by: wjf <wujunfang1@huawei.com>
axutree ff9bca0683ee3622598ba1e18a46488db29f4019
parent 5c41f7b09c2bd5c1d67349fb02ee57ca32f7400e
author milkpotatoes <chenshulin5@huawei.com> 1716620958 +0800
committer milkpotatoes <chenshulin5@huawei.com> 1716620958 +0800

Link return code to JSVM_Status

Link return code to JSVM_Status

Signed-off-by: milkpotatoes <chenshulin5@huawei.com>
Change-Id: I8515717ee6b8ef84c0efcf08290c5e49d846b5f4
V}oxItree 88c459a1e8b1587472d87618e9de733cae3eb9f1
parent d04262f4b910b7e9362ab969292e4dccb529122b
author xuweinan <xuweinan5@huawei.com> 1714995562 +0800
committer xuweinan <xuweinan5@huawei.com> 1716619756 +0800

Description:Add DisplaySoloist NDK Interface
Feature or Bugfix:Feature

Signed-off-by: xuweinan <xuweinan5@huawei.com>
GBiޝxtree 9ef74c8f6aa1bc66cfe94d3b84740437fa0d6ba7
parent e45879517bfb503e8fec79423598f3892b9385d1
author shenkang <shenkang6@huawei.com> 1716618549 +0800
committer shenkang <shenkang6@huawei.com> 1716618549 +0800

fix:ndk add kit annotation

Signed-off-by: shenkang <shenkang6@huawei.com>
-YxPtree 4aa281cafcc3b5f6ad1b508267374eb1ff31837d
parent 98ec1cdef28aa7b67107ec3b464030c5f91e4fcf
parent a2984ef3800b29a8947f712902a6b1471b987c15
author openharmony_ci <120357966@qq.com> 1716602848 +0000
committer Gitee <noreply@gitee.com> 1716602848 +0000

!756 【web】API注释排查整改
Merge pull request !756 from echoorchid/master:m˗xWtree 140cb493c0a83e88dbf4b560bda00c93f4cb4b45
parent e121e91e311a59e706c3edbd34a54f2a43f9a13c
parent 758c667c3235e1cc7589cc28b7f5bbcd0e57b299
author openharmony_ci <120357966@qq.com> 1716600787 +0000
committer Gitee <noreply@gitee.com> 1716600787 +0000

!584 [新需求]增加创建子进程的NDK接口
Merge pull request !584 from grs/masterbuړxStree aabbad23f4b0d56325faa30f06caa817cb38c599
parent beeb1754ae4238be4da78e2e511d6283248a7620
parent ec9049f560d8a0f23cc10dec6f27a57d788c703b
author openharmony_ci <120357966@qq.com> 1716558137 +0000
committer Gitee <noreply@gitee.com> 1716558137 +0000

!746 C-API 6-2d list SwipeAction Expend
Merge pull request !746 from 邹林肯/swipeEix+tree e9360df33ba06bfd9ba9d75f70f66a4fc6c23487
parent 97187d21aac1cccf48d848ca794d250a34a79894
author zoulinken <zoulinken1@huawei.com> 1716385835 +0800
committer zoulinken <zoulinken1@huawei.com> 1716544122 +0800

C-API 6-2d list SwipeAction Expend

Signed-off-by: zoulinken <zoulinken1@huawei.com>
(^xrtree 19e80e43d01669018890c6471520a99c6086e462
parent 9beb6ea1a8aab97eda3242d1cbe9749689f0f640
parent a10d52796b7a23bed95f739aa01bd4ef6aca7d56
author openharmony_ci <120357966@qq.com> 1716543870 +0000
committer Gitee <noreply@gitee.com> 1716543870 +0000

!752 增加需求库和diff工具结果增加api变更次数统计数据
Merge pull request !752 from zhangwu/master謇7xZtree 6e631dd2546a6563be0356da48bc7bf3dcc21cb0
parent 73bd11abc2addc123c41a1e6250d6dcd9c02fc5d
parent 90ae2cfa13321f0b43b0fc4929247e8f996e0f98
author openharmony_ci <120357966@qq.com> 1716543567 +0000
committer Gitee <noreply@gitee.com> 1716543567 +0000

!748 AVCodec支持编码输出QP和MSE信息
Merge pull request !748 from hongran1206/master.}rxtree 6310fde6c23aa19e0181da2a6c686298a5933f9f
parent 73bd11abc2addc123c41a1e6250d6dcd9c02fc5d
author echoorchid <huweidong2@huawei.com> 1716538431 +0800
committer echoorchid <huweidong2@huawei.com> 1716542254 +0800

update return desc

Signed-off-by: echoorchid <huweidong2@huawei.com>
.[%x5tree c2d8a9b434cee52b56d3be2365ad8b9ca74a23d8
parent fe26f464558a53847ff96e0b650188e0da935638
author grs <guoruishuai@huawei.com> 1713928577 +0800
committer grs <guoruishuai@huawei.com> 1716540827 +0800

[新需求]元能力添加NDK接口，支持创建子进程

Signed-off-by: grs <guoruishuai@huawei.com>
SuxFtree 6961e23b8f2d16e7f4579314f1354cd069dcd41a
parent 0ccdd6e4bad228cdd98f40c69c6f2651711c667e
author zhangwuf <zhangwu47@huawei.com> 1716519554 +0800
committer zhangwuf <zhangwu47@huawei.com> 1716536933 +0800

增加需求库和diff工具结果增加api变更次数统计数据

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
}xItree 9a642e26ca21318c8c6188acb92c0e60aed7eabe
parent 0ccdd6e4bad228cdd98f40c69c6f2651711c667e
parent 33427bcf4f8696249d4145ca0c7e23eac1b45d14
author openharmony_ci <120357966@qq.com> 1716528863 +0000
committer Gitee <noreply@gitee.com> 1716528863 +0000

!751 修正ohos_toolchain位置
Merge pull request !751 from Mr.zhao/masterix+tree 29a814cc4964837c4797c444068e19dab64ecedc
parent f84a443100fe87695f4d35af69a7c153d89925fb
author zhaohang <zhaohang44@huawei.com> 1716518809 +0800
committer zhaohang <zhaohang44@huawei.com> 1716518809 +0800

修正action(ohos_toolchain)的位置

Signed-off-by: zhaohang <zhaohang44@huawei.com>
cßx?tree aab00d8fd79ea6007e944d5b154b8102aff3c046
parent 0e395964328186a17df720d9af98ce001eb4d7c2
parent 9c611e489b71c4e248080cab8e6a0cd6161e7098
author openharmony_ci <120357966@qq.com> 1716518557 +0000
committer Gitee <noreply@gitee.com> 1716518557 +0000

!716 API注释整改
Merge pull request !716 from xiyupeng/masterc@x>tree 10faa836615617fd1c30815e1572c6d03c4c35e5
parent 5fa42a3669df8f92c261f10fac2d7f1c398c2bc2
parent f84a443100fe87695f4d35af69a7c153d89925fb
author openharmony_ci <120357966@qq.com> 1716473223 +0000
committer Gitee <noreply@gitee.com> 1716473223 +0000

!747 适配ohos llvm
Merge pull request !747 from Mr.zhao/master`jxItree 697190fd29970d20c151a4f508009536f7444f27
parent c92c1ae5313971d788c689b162e53b1824094a7f
parent 5fa42a3669df8f92c261f10fac2d7f1c398c2bc2
author yangfan <yangfan174@huawei.com> 1716467845 +0800
committer yangfan <yangfan174@huawei.com> 1716467845 +0800

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c
d'xhtree 697190fd29970d20c151a4f508009536f7444f27
parent 4812ff1ce47fa3ecb8e6e33995964e59cd66d83d
parent 66c9f1db681b885b01bf1a84192915a85e95f216
author openharmony_ci <120357966@qq.com> 1716454679 +0000
committer Gitee <noreply@gitee.com> 1716454679 +0000

!684 NDK MUSL移除断言失败函数上的_Noreturn标记
Merge pull request !684 from 仇玉加/noreturnʘ|xtree 879d18b5d953b7fd384adc2ca34bf72b0ab3ab0a
parent ee632c92e783311af971410b221efb55260c6b33
author zhaohang <zhaohang44@huawei.com> 1716452988 +0800
committer zhaohang <zhaohang44@huawei.com> 1716452988 +0800

格式化gn文件

Signed-off-by: zhaohang <zhaohang44@huawei.com>
\6xDtree 7f0506f4fcfb204ca1effa17c5b6051f6ad1bc1f
parent 97187d21aac1cccf48d848ca794d250a34a79894
parent ff63a3da2eae15329b7b8fefd645021570111001
author openharmony_ci <120357966@qq.com> 1716451543 +0000
committer Gitee <noreply@gitee.com> 1716451543 +0000

!745 返回值信息优化
Merge pull request !745 from fyz1019/masterYh}xtree e54e7a3dd7f0c86e897c63d17fcfd72f4deae833
parent ac437ce5e9b50e379f071217f0e895ab190429f3
author zhaohang <zhaohang44@huawei.com> 1716451328 +0800
committer zhaohang <zhaohang44@huawei.com> 1716451328 +0800

修改libcxx名称

Signed-off-by: zhaohang <zhaohang44@huawei.com>
+\2x>tree e4f3812a4e032b552b6472f561acd66027d2e6bd
parent 97187d21aac1cccf48d848ca794d250a34a79894
author zhanghongran <zhanghongran@huawei.com> 1716449479 +0800
committer zhanghongran <zhanghongran@huawei.com> 1716449479 +0800

视频编码支持输出qp和mse信息

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
2rxutree f47603d1d586c6467db956ff69ed698720c17eaa
parent 44358308fc0fe8cab7feb3ed517902b7e3f6d5c3
parent 1035e1f41e1421d4715934ef041bfb7806a3c585
author openharmony_ci <120357966@qq.com> 1716446103 +0000
committer Gitee <noreply@gitee.com> 1716446103 +0000

!744 将音频解密接口由native_avcodec_audiodecoder.h修改为native_avcodec_audiocodec.h
Merge pull request !744 from 姜春丽/masterCxEtree d5223921efba84e943b052af712df44631a0578a
parent cacba9719e5df34ae8915db7a084d2ecabd5a025
author xiyupeng <xiyupeng@huawei.com> 1715947153 +0800
committer xiyupeng <xiyupeng@huawei.com> 1716436496 +0800

web/webview/interfaces/native/arkweb_scheme_handler.h API注释整改

Signed-off-by: xiyupeng <xiyupeng@huawei.com>
oxHtree cb32276000cd9f1a98d3f23399374cc72316dd17
parent b847b4c05eaad83daca957da6992f9ca7e9142ba
parent b944071d747132b92a73d2e51972d9ae2d62b800
author openharmony_ci <120357966@qq.com> 1716436065 +0000
committer Gitee <noreply@gitee.com> 1716436065 +0000

!740 audio NDK易用性整改
Merge pull request !740 from zhangkai/masterg>xtree 6a0f1fe7efb51e5933c1c81c78db38479b7de761
parent b847b4c05eaad83daca957da6992f9ca7e9142ba
author zhaohang <zhaohang44@huawei.com> 1716430551 +0800
committer zhaohang <zhaohang44@huawei.com> 1716430551 +0800

适配ohos llvm

Signed-off-by: zhaohang <zhaohang44@huawei.com>
Xٓxctree 9ebcbcf1e8a2eb2ca18ae9ea656b89ba2a5a502c
parent 3e751d7f3029a616d0c09edb5b8f0d288a91a4eb
parent 8ab37399a634fd7ee6b6e8d2bdb9e0dfa079b095
author openharmony_ci <120357966@qq.com> 1716386829 +0000
committer Gitee <noreply@gitee.com> 1716386829 +0000

!723 提交C-API 工具类和listChildrenMainSize 接口
Merge pull request !723 from 邹林肯/utilsyx0tree e745010d1857630986e8354d02c98c821e572c9e
parent 1a9bb1f9dc152b74c7f0930390b4ae092e88a19e
author fangyunzhong <fangyunzhong2@huawei.com> 1716379966 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1716379966 +0800

返回值信息优化

Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
]hxEtree f0cf5ceefa425d433eeb0084d9b6a779f0c4a718
parent 2e0ea7a30eb0f7697e267cbfad4483cc23163f94
parent e95e2c8ee24a51d7aecbef275dcc4bb771b73040
author openharmony_ci <120357966@qq.com> 1716377936 +0000
committer Gitee <noreply@gitee.com> 1716377936 +0000

!739 错误码sdk新增
Merge pull request !739 from 马靖涛/20240522ZixVtree 7c9231595cef40ce2e14b80d6036850331d779ce
parent 2e5878d41c38a1bf2699b03f0f6f713b127810dc
parent 814098c8afa105a1db4184ef96d70d0998eaf87f
author openharmony_ci <120357966@qq.com> 1716375868 +0000
committer Gitee <noreply@gitee.com> 1716375868 +0000

!738 【master】资源CAPI补充修改SDK
Merge pull request !738 from 冉召宇/masterPYqxPtree b484c64ae7cd5b12bb9ce7ec7f998cb49768ed33
parent d4aa48b73870d545093a277b353b6065ab8aba04
parent d07a2a41bfa72d00d78c3989063066e8644a6813
author openharmony_ci <120357966@qq.com> 1716373272 +0000
committer Gitee <noreply@gitee.com> 1716373272 +0000

!711 ohaudio 接口返回描述整改
Merge pull request !711 from zhangkai/master{bmxYtree f00370807406e48218ab11ed1c7925891faa810c
parent d4aa48b73870d545093a277b353b6065ab8aba04
author jiangchunli <jiangchunli1@huawei.com> 1716372657 +0800
committer jiangchunli <jiangchunli1@huawei.com> 1716372657 +0800

Change audio decryption interface from audio_decoder to audio_codec.

Signed-off-by: jiangchunli <jiangchunli1@huawei.com>
oxLtree aabd5d1554f6ca3c62d77dff06a2736cdeaea3bd
parent 679738013dea882d7a9dafb4d772b77bdc6c6702
parent 0da883dfa82674bff6d76708860467ef1a42d481
author openharmony_ci <120357966@qq.com> 1716371707 +0000
committer Gitee <noreply@gitee.com> 1716371707 +0000

!736 【Fix】接口描述调整
Merge pull request !736 from 董博斯/mastertpxItree 13423ea4fb1a1557904dc93c8d1c70e18eedf5d0
parent 40b14b4cb67618395612e5f32002dac3339d49e1
parent a5458ddcc888089187b87a250c463beebc585766
author openharmony_ci <120357966@qq.com> 1716366174 +0000
committer Gitee <noreply@gitee.com> 1716366174 +0000

!726 drawing新增错误码
Merge pull request !726 from ustc-tianyu/masterY<hxntree 7949a797bc56be92be54a64ea37e164cb2b683b4
parent 399911925fec0a02d7fd6ed615ebbf164ba92585
author fanpingan <fanpingan1@huawei.com> 1716365177 +0800
committer fanpingan <fanpingan1@huawei.com> 1716365177 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I7fb3e3c705c8bee121e73be28f7de114e40751dd
x>tree 50944f6b52d27faea47b4046861e1748674efff7
parent 1a9bb1f9dc152b74c7f0930390b4ae092e88a19e
parent 0bd59a596ae8b5d38db66b584606e78737a1098d
author openharmony_ci <120357966@qq.com> 1716365049 +0000
committer Gitee <noreply@gitee.com> 1716365049 +0000

!730 NDK errorcode
Merge pull request !730 from 安文韬/masterZaSxStree 6733bb421ade15e6c5ae5a76c2be848da878b337
parent d78170dbfcd22748065150bfbbda6fa360082f3e
author yangjunhui10 <yangjunhui10@huawei.com> 1716364138 +0000
committer yangjunhui10 <yangjunhui10@huawei.com> 1716364138 +0000

revert

Signed-off-by: yangjunhui10 <yangjunhui10@huawei.com>
Change-Id: I0e759a238baff1ca54cda54c8b1f8857c0677f84
hxtree 298c785c6c1ec794b6a780d389e35f86f3359f80
parent 6ade19c30276571fd80911c193f0d6422c5150a4
author ustc-tianyu <dutianyu4@huawei.com> 1716103725 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1716352115 +0800

error code bugfix
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
yYx$tree 8aa96f0dad521dbedf8969106b8200498222f876
parent bbb072ae61cb9c0f9474f9323d35836cb4ed328e
author kerongfeng <fengkerong@huawei.com> 1716351253 +0000
committer Gitee <noreply@gitee.com> 1716351253 +0000

add ndk interface for securecamera

Signed-off-by: kerongfeng <fengkerong@huawei.com>e\x$tree 8145db829daa22be2fbeee16a43ceb5c03e48e26
parent 39424cdc9392ab80d1003dd1922232443c204c4a
author kerongfeng <fengkerong@huawei.com> 1716351134 +0000
committer Gitee <noreply@gitee.com> 1716351134 +0000

add ndk interface for securecamera

Signed-off-by: kerongfeng <fengkerong@huawei.com>:\x+tree 80de2393dacc31dd57c5de9907d612570359d6d5
parent 308299e00ed37e0b1dec502ad7bde0a226d189b5
author @ran-zhao-yu <ranzhaoyu1@huawei.com> 1716301252 +0800
committer @ran-zhao-yu <ranzhaoyu1@huawei.com> 1716346996 +0800

资源CAPI补充修改SDK

Signed-off-by: @ran-zhao-yu <ranzhaoyu1@huawei.com>
Scߑx!tree 69a336cf650a5656919664374e9f9d04d8031149
parent 1a9bb1f9dc152b74c7f0930390b4ae092e88a19e
author zhangkai <zhangkai269@huawei.com> 1716346811 +0800
committer zhangkai <zhangkai269@huawei.com> 1716346811 +0800

audio NDK易用性整改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
]Z]sx@tree 6356eb64dbad61f1aa6ba913b306986e10daaede
parent 6ade19c30276571fd80911c193f0d6422c5150a4
author dongbosi@huawei.com <dongbosi@huawei.com> 1716292048 +0800
committer dongbosi@huawei.com <dongbosi@huawei.com> 1716344375 +0800

fix the descripton of errorcode

Signed-off-by: dongbosi@huawei.com <dongbosi@huawei.com>
gxLtree 837e15b9b92ccf49dc19dbe711119b967cb21cee
parent 1a9bb1f9dc152b74c7f0930390b4ae092e88a19e
author m00472246 <majingtao1@huawei.com> 1716342151 +0800
committer m00472246 <majingtao1@huawei.com> 1716343100 +0800

错误码sdk新增 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
[ifx"tree 869195cf90c97b4470763145fce2c13fc946532d
parent 996679e7948a7281f192e62ac96b0e4a7623f9d8
author yyuanche <yuancheng25@huawei.com> 1716259256 +0800
committer zoulinken <zoulinken1@huawei.com> 1716301584 +0800

【NDK】6toD 新增接口
Signed-off-by: yyuanche <yuancheng25@huawei.com>
}_ӐxPtree 3476247bf73f226a9548616aa7c91ff6e5991bc4
parent 430923dc10241e5ba33fd0dceb4125a22a86340b
parent 5f719e84327d67f9c97c7d0f3909058a0b75fcf7
author openharmony_ci <120357966@qq.com> 1716300972 +0000
committer Gitee <noreply@gitee.com> 1716300972 +0000

!737 c api 返回值注释整改 
Merge pull request !737 from wangchuanxia/master.kڝxMtree 6413ea72cbb95f7ec8fc32230c56c4ff3b7b7f1d
parent 8914fd43fdda73c069606011f21102ef75454e81
parent 308299e00ed37e0b1dec502ad7bde0a226d189b5
author openharmony_ci <120357966@qq.com> 1716300320 +0000
committer Gitee <noreply@gitee.com> 1716300320 +0000

!718 【master】新增CAPI接口
Merge pull request !718 from 冉召宇/masterlx(tree 33550a04a315fd4d5e9ccf6aef23524e69e181a1
parent d967d4bd89a05d57227fc34593f9d32fb3e99bf9
author wangchuanxia <wangchuanxia@huawei.com> 1716293116 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1716295125 +0800

fix c api return

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
\6_;xtree abcfa44d1fd8da70b3b96c7f9830a47c96114f87
parent 996679e7948a7281f192e62ac96b0e4a7623f9d8
author 安文韬 <anwentao@huawei.com> 1716256723 +0800
committer 安文韬 <anwentao@huawei.com> 1716294828 +0800

errorcode

Signed-off-by: 安文韬 <anwentao@huawei.com>
[xBtree fa9f2e7b34f8e4f8e7bb6fe374e11a8e85762f4d
parent 0a512472ad9862ca5bb23fec11ddad4c056bc888
author huchang <huchang4@huawei.com> 1715846996 +0800
committer huchang <huchang4@huawei.com> 1716291746 +0800

modify missspell

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I7bcde34577968bf345f9c88cf568676ed70d2585
mcDx;tree e83d548567bd49c0e907fd91a46eb234dd12b708
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author 仇玉加 <qiuyujia1@huawei.com> 1715669970 +0800
committer 仇玉加 <qiuyujia1@huawei.com> 1716284324 +0800

移除NDK MUSL断言失败函数上的_Noreturn标记

Signed-off-by: 仇玉加 <qiuyujia1@huawei.com>
Mxx4tree e26139522bc05ad1aada4fc56a0d091296879a78
parent 4c3027a2b7535be6456e8dbcb7ce423bf77c0ff8
parent 694e363298fa569c95d6f18dade91601e49420f0
author openharmony_ci <120357966@qq.com> 1716281240 +0000
committer Gitee <noreply@gitee.com> 1716281240 +0000

!733 Fix
Merge pull request !733 from SuperWang/masterГ[;xGtree ef67eb00c0bd82fa7db45cc75b717b12b826c2fc
parent 996679e7948a7281f192e62ac96b0e4a7623f9d8
parent ebc5620ebb1d82f15bb3149549c79f2f851f03db
author openharmony_ci <120357966@qq.com> 1716279986 +0000
committer Gitee <noreply@gitee.com> 1716279986 +0000

!731 NDK易用性修改
Merge pull request !731 from lvyuanyuan/myfeature}hx"tree 726695637acb2792125c06903240eb596f086218
parent b42b5e1d19c6304abecbb16267aac181edefc5e4
author @ran-zhao-yu <ranzhaoyu1@huawei.com> 1715951191 +0800
committer @ran-zhao-yu <ranzhaoyu1@huawei.com> 1716279648 +0800

新增CAPI接口

Signed-off-by: @ran-zhao-yu <ranzhaoyu1@huawei.com>
@^ x8tree e3d008b4c96da750e0296cb0b9080268e592b7a3
parent 79f0ad7ff103b4ae4a824980e86606ba8979c108
author WangShengming <wangshengming6@huawei.com> 1716275143 +0800
committer WangShengming <wangshengming6@huawei.com> 1716275143 +0800

Description: repair code
Signed-off-by: wangshengming <wangshengming6@huawei.com>
/dTxVtree 1c9a98ddd58300fb755e2b6dfb74ec3985d503ee
parent ab42838776cff481c0edd16a7dbd8b1048736303
author lvyuanyuan <lvyuanyuan7@huawei.com> 1716263362 +0800
committer lvyuanyuan <lvyuanyuan7@huawei.com> 1716263362 +0800

NDK错误码整改

Signed-off-by: lvyuanyuan <lvyuanyuan7@huawei.com>
Change-Id: I839bb53cd58882db60363c6e6e19d06b8f780bb9
px8tree 009d58a50e0adb8e5e52910f37e1c34c00d1cda9
parent 996679e7948a7281f192e62ac96b0e4a7623f9d8
author WangShengming <wangshengming6@huawei.com> 1716261879 +0800
committer WangShengming <wangshengming6@huawei.com> 1716261879 +0800

Description: repair code
Signed-off-by: wangshengming <wangshengming6@huawei.com>
dxYtree 58ec0de21a662a2d59587bf008461a6528509094
parent 9b2375ba221e0cd95706e829ccb3a12f99634c35
parent 237dfc94503906dc6f61d329b3b7a74631b2e759
author openharmony_ci <120357966@qq.com> 1716253146 +0000
committer Gitee <noreply@gitee.com> 1716253146 +0000

!721 【demuxer】信息解析拓展
Merge pull request !721 from 杨俊晖/0520_infoParserڥqđxAtree 4abb7f48c55c3c17439bd3b6dd3066b7ce3a17ad
parent 76125ecf0b4c15e213aae69657e21d6bff0a02a2
parent ee4f10c0acef395288ae0cdb37ba983856143e59
author openharmony_ci <120357966@qq.com> 1716215708 +0000
committer Gitee <noreply@gitee.com> 1716215708 +0000

!564 pixelmap add tosdr capi
Merge pull request !564 from zjy/tosdr:a\xotree daca95490eaabc35026c2fee72921e6ee25b55b5
parent 43f26be036cf9e3645f095d2686f5cd76464a189
parent 9fce315440deaa69512ad559349d41a287c4ff47
author openharmony_ci <120357966@qq.com> 1716210475 +0000
committer Gitee <noreply@gitee.com> 1716210475 +0000

!699 新增camera_device.h头文件，提供获取orientation接口
Merge pull request !699 from 章超123/masterxMtree 9ecb3d3860faba3b0040d85a7b6ac034bd6e24ad
parent 22ac0e8cf6916afec88ee11d5fd0f1205e3fc249
author zhangchao <zhangchao338@huawei.com> 1715754527 +0800
committer zhangchao <zhangchao338@huawei.com> 1716198408 +0800

新增camera_device.h头文件，提供获取orientation接口

Signed-off-by: zhangchao <zhangchao338@huawei.com>
x՜xStree f8b5427f20e0fde5cb640d0d679efe4bd37ee588
parent 6ade19c30276571fd80911c193f0d6422c5150a4
parent 816afad76640e09408a7fc8b73de9b176dd8afc4
author openharmony_ci <120357966@qq.com> 1716186225 +0000
committer Gitee <noreply@gitee.com> 1716186225 +0000

!713 CAPI-diff工具新增参数位置变化场景、addtogroup和file标签新增和删除，增加按kit划分的.md表格结果
Merge pull request !713 from zhangwu/masterk۝x-tree 1b67ccfed03fd7cf5943dcbb9b46cc4a511010f8
parent ffc01b2345094950f2a1bc8f6aa7569cc78878d2
author yangjunhui10 <yangjunhui10@huawei.com> 1716175944 +0000
committer yangjunhui10 <yangjunhui10@huawei.com> 1716175944 +0000

增加信息解析key

Signed-off-by: yangjunhui10 <yangjunhui10@huawei.com>
Peșx)tree e5638f7ae7150cbb0c41fafcf7dbf65d6debbc04
parent b9a575dcb5800a641f07d60d04b3312f020bd360
author zhangkai <zhangkai269@huawei.com> 1715927515 +0800
committer zhangkai <zhangkai269@huawei.com> 1716175342 +0800

ohaudio 接口返回描述整改

Signed-off-by: zhangkai <zhangkai269@huawei.com>
s9fxRtree f2d8d7fa40346618de3cd8cefae35250f14cb116
parent 85e3f2bd86a32192f6931f1c546abab5fd96c4f4
parent 51c0d66823df11963bbf5fea5ac827ea0f259f36
author openharmony_ci <120357966@qq.com> 1716023039 +0000
committer Gitee <noreply@gitee.com> 1716023039 +0000

!703 包管理NDK接口错误信息整改
Merge pull request !703 from 赵淦/mastertgxntree f095035fefe40302f572fc22141cc44b2581762a
parent 6b87b53ae70965e4339cac705f82c966f2f36bb4
author fanpingan <fanpingan1@huawei.com> 1716020083 +0800
committer fanpingan <fanpingan1@huawei.com> 1716020083 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I1920be895eaaafaa1f02664c49e13cbd123d6bb3
`xYtree 8b11a995c7bed02f209a9319ecad7efca0fa0c73
parent b0b567ef1e8b76af732d9b40aeec138afeae86ee
parent ada167dc8853cbff41a87de3849deb9fec0e164b
author openharmony_ci <120357966@qq.com> 1716018028 +0000
committer Gitee <noreply@gitee.com> 1716018028 +0000

!683 add new interface for write and read parcel
Merge pull request !683 from wzn121/masterTk[xntree bd21bc073e8c292459a8fca25164aa938229f085
parent 17d4bc7395cf421f1179dbbb42eefbc60c93a0ab
author fanpingan <fanpingan1@huawei.com> 1716015131 +0800
committer fanpingan <fanpingan1@huawei.com> 1716015131 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I544978f96b7427c01b6406a07b96a4f29df94e41
\xUtree ee039c6a7e144c37bf6770763bf21a3c1ed006c5
parent b42b5e1d19c6304abecbb16267aac181edefc5e4
parent 1bb592cf790befc7176bbe87990fa17e40e337d7
author openharmony_ci <120357966@qq.com> 1716014737 +0000
committer Gitee <noreply@gitee.com> 1716014737 +0000

!676 capi Service exception rectification
Merge pull request !676 from 陈飞飞/master(lKx-tree 5c80083b2a8d0d961830ae1f8b2182c306b06d62
parent 4a6328c4a9d4e72dc9f805294cea991afb3e3ed8
author cff-gite <chenfeifei8@huawei.com> 1716005204 +0800
committer cff-gite <chenfeifei8@huawei.com> 1716005204 +0800

capi Service exception rectification

Signed-off-by: cff-gite <chenfeifei8@huawei.com>
^ɝx-tree 969ef76c1afeab5f01dd72aa2dc249f8efc18d91
parent dd553eeec671cdae7180d5209cd62b01f0d1e448
author cff-gite <chenfeifei8@huawei.com> 1716004362 +0800
committer cff-gite <chenfeifei8@huawei.com> 1716004362 +0800

capi Service exception rectification

Signed-off-by: cff-gite <chenfeifei8@huawei.com>
h
`Uxntree 2cb4b033a781114eda533817464b46c7804942f5
parent ab42838776cff481c0edd16a7dbd8b1048736303
author fanpingan <fanpingan1@huawei.com> 1715948352 +0800
committer fanpingan <fanpingan1@huawei.com> 1715948352 +0800

Provide NDK api: OH_AVPlayer_SetAudioRendererInfo OH_AVPlayer_SetAudioInterruptMode

Signed-off-by: fanpingan <fanpingan1@huawei.com>
Change-Id: I4145d029a09006dfd88f8aabc71826e2b95c5bbb
~x\tree 2a382dc27e55d62c2d16cd698bf6c1c644302594
parent cacba9719e5df34ae8915db7a084d2ecabd5a025
parent 1838de7520f5b8b755a7da437ac9b370d8c8036e
author openharmony_ci <120357966@qq.com> 1715947485 +0000
committer Gitee <noreply@gitee.com> 1715947485 +0000

!704 添加onAttach与onDetach对应的枚举值
Merge pull request !704 from 孙翰洋/attach]wߐxPtree 16cc377544ff4d1c87596436aee7e1427b09e658
parent a32f0356fd5559b2103fe38b36d2f665d2a0b0b3
parent 43aa65e082ec2e7b66a5bc0ad038605d766c9927
author openharmony_ci <120357966@qq.com> 1715941554 +0000
committer Gitee <noreply@gitee.com> 1715941554 +0000

!710 整改CAPI接口返回描述
Merge pull request !710 from wangyan/wangyan0517lux-tree fdf58071230c1bd672f3228a4d52156363b3292d
parent 7be636c75d43979c3e72fd83f31cd7dfe5246206
author jwx1102601 <jiangqianjin@huawei.com> 1715935740 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1715937993 +0800

工具适配codecheck门禁

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
>axKtree 8215786970cf2d8fbbcd91cf30e37e3ca7e83833
parent 7be636c75d43979c3e72fd83f31cd7dfe5246206
parent e4e4eb88c0737a3e6b94abb83e0511680e7659b2
author openharmony_ci <120357966@qq.com> 1715937400 +0000
committer Gitee <noreply@gitee.com> 1715937400 +0000

!707 node.js update to 18.20.1
Merge pull request !707 from kangchongtao/0516_axtree 5a25eafb2650fa51a8974a4cdd72d7d4cb141435
parent f970dc192bfdf4414403bbb950b24fea44e7f3d3
author zhangwuf <zhangwu47@huawei.com> 1715928574 +0800
committer zhangwuf <zhangwu47@huawei.com> 1715934577 +0800

CAPI-diff工具新增参数位置变化场景、addtogroup和file标签新增和删除，增加按kit划分的.md表格结果

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
,xZtree 49387fe9065af3e0b2c54f37723e47db9a8400f8
parent ab42838776cff481c0edd16a7dbd8b1048736303
parent 05d55941d30e51e612fc3c4f69c49ff6e70eb10f
author openharmony_ci <120357966@qq.com> 1715927511 +0000
committer Gitee <noreply@gitee.com> 1715927511 +0000

!709 BUILD.gn 新增source styled_string.h
Merge pull request !709 from 胡清云/C-API-0517~l*x*tree b5fad9e73ad666d4c8e340b11ad212b8ce697493
parent b9a575dcb5800a641f07d60d04b3312f020bd360
author s30052571 <sunhanyang@huawei.com> 1715843494 +0800
committer s30052571 <sunhanyang@huawei.com> 1715927183 +0800

add enum about attach and detach.

Signed-off-by: s30052571 <sunhanyang@huawei.com>
GYxtree 1b1fbece9a125fa06cc56e5cf80f620999d1931e
parent ab42838776cff481c0edd16a7dbd8b1048736303
author wangyan <wangyan431@huawei.com> 1715926358 +0800
committer wangyan <wangyan431@huawei.com> 1715926358 +0800

整改CAPI接口返回描述

Signed-off-by: wangyan <wangyan431@huawei.com>
mawxNtree 770d8aad55fc6ddf79c842efb7c64768a3ba7325
parent b1be855e211a1024bf838b0b17ac4fc75ab83f8c
parent cf0a1cfe26b81113f81ac17703be05a8d3166ed7
author openharmony_ci <120357966@qq.com> 1715914420 +0000
committer Gitee <noreply@gitee.com> 1715914420 +0000

!691 Layout Rect接口注释修改
Merge pull request !691 from yeyinglong/capi1YlQxctree a7c58f9d5c682652f93bc07ad5253d2f964c1880
parent b1be855e211a1024bf838b0b17ac4fc75ab83f8c
author huqingyun <huqingyun1@huawei.com> 1715912701 +0000
committer huqingyun <huqingyun1@huawei.com> 1715912701 +0000

BUILD.gn 新增source styled_string.h

Signed-off-by: huqingyun <huqingyun1@huawei.com>
Change-Id: Iedc05f521501f3c6739c15c33808b3d9d842d641
qxjtree 663a2a1f15661b3502b904727326b5e050c89517
parent b1be855e211a1024bf838b0b17ac4fc75ab83f8c
author huchang <huchang4@huawei.com> 1715339016 +0800
committer huchang <huchang4@huawei.com> 1715867393 +0800

add result defination of audiorender write data callback

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I40f44245e3a00db115a68125035540c22d216031
nwxItree 87bf2f94528cb2ca50f4440b61e6d57f4a36e54a
parent c65a2761112a7a7445a58052ebc13b301c5916fb
parent 5bafa96704388d475eb7a079fb6e8ee14834b758
author openharmony_ci <120357966@qq.com> 1715865587 +0000
committer Gitee <noreply@gitee.com> 1715865587 +0000

!590 IPC CAPI：add ipc interface
Merge pull request !590 from hubin/mastergcxMtree f3180deb6b8fd18455749b13cfaafa96f18d9c4b
parent 214a9f457bf4d67387074a499957a58702136542
parent e47faad2b39b2197c357ad314db7b3cc1f854c1d
author openharmony_ci <120357966@qq.com> 1715863560 +0000
committer Gitee <noreply@gitee.com> 1715863560 +0000

!680 C-API: 新增C-API接口
Merge pull request !680 from 胡清云/C-API-0513hxLtree 228b831f2f3bfaab2a6e2b34681b5d6ed35d7fe4
parent f970dc192bfdf4414403bbb950b24fea44e7f3d3
parent 0d0cfaf1233a6407b09dc38fd24d9e8355e16bd4
author openharmony_ci <120357966@qq.com> 1715861366 +0000
committer Gitee <noreply@gitee.com> 1715861366 +0000

!692 asset ndk return code整改
Merge pull request !692 from 尹耀德/masterfjٜxctree 94514df5fda6497a3c8c97b2261c8a5ce580c424
parent 3f3c2f25621d13453b1b120ceb17149dfaab309c
author kangchongtao <kangchongtao@huawei.com> 1715860504 +0800
committer kangchongtao <kangchongtao@huawei.com> 1715860543 +0800

node.js update to 18.20.1

Signed-off-by: kangchongtao <kangchongtao@huawei.com>
Change-Id: I6e02d1ce68db2aa633899c06ca40364544c11399
Signed-off-by: kangchongtao <kangchongtao@huawei.com>
 hxztree e875f34e969f256dec34bd99fb4c98a237e3c695
parent d97e3c3347862c0e1ab34b7776d50268d7fd40c3
parent 5b729396510fc56e7bc8fd428f200b290bfce6e1
author openharmony_ci <120357966@qq.com> 1715850141 +0000
committer Gitee <noreply@gitee.com> 1715850141 +0000

!696 scheme handler网络拦截新增OH_ArkWebResourceRequest_GetFrameUrl接口
Merge pull request !696 from xiyupeng/master~xttree 4cc99f977e0be2251790d17bf2082cf2fc08e280
parent b9a575dcb5800a641f07d60d04b3312f020bd360
parent 5b870044922d9ce1a11b0cff106c92b3a876113c
author openharmony_ci <120357966@qq.com> 1715849530 +0000
committer Gitee <noreply@gitee.com> 1715849530 +0000

!592 【外部跟踪需求】弧形文本开发对外提供接口
Merge pull request !592 from zhangwt3652/arctext0425JQx=tree 627ffd0e9000955645cb02560c1fe962270584c5
parent 9259a29412f583ff342aa98f58f1f011379d97d9
author zhangwenting <zhangwenting15@huawei.com> 1714056610 +0800
committer zhangwt3652 <zhangwenting15@huawei.com> 1715846050 +0800

OH_Drawing_TypographyPaintOnPath

Signed-off-by: zhangwenting <zhangwenting15@huawei.com>
oEdxtree e42771f2b1d230b29082638b8d5af2be9008898e
parent ff43e6a56afa84398a94aef585d5ac37e3c5723a
author zhaogan <zhaogan2@huawei.com> 1715828596 +0800
committer zhaogan <zhaogan2@huawei.com> 1715844045 +0800

error message mofify

Signed-off-by: zhaogan <zhaogan2@huawei.com>
UxPtree a82de2239579bf9a81220399b257c84f39aa11e4
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author huqingyun <huqingyun1@huawei.com> 1715680395 +0000
committer huqingyun <huqingyun1@huawei.com> 1715842953 +0000

新增C-API 接口

Signed-off-by: huqingyun <huqingyun1@huawei.com>
Change-Id: I36aaeacea9c680cb3d003e891fc19f28c44dcce4
slWx!tree e3ea8b4fa7aa386d868aa136f4c48376aa977bbd
parent 46fb6ac0240391502c1b6792be84c61819390a30
author 尹耀德 <yinyaode1@huawei.com> 1715832157 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1715832157 +0800

modify error msg for asset2

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
cexitree bc2c9af189aa32598bda2db685bd765f5792524d
parent 9b020ad80f56c0754134cb8f43441505820f3887
parent 31ea43aa0d56dd4bb355b87a41d0ae59f15b915a
author openharmony_ci <120357966@qq.com> 1715779555 +0000
committer Gitee <noreply@gitee.com> 1715779555 +0000

!697 【修改说明】AVCodec新增封装和编解码枚举接口
Merge pull request !697 from peng/master؟xtree e55b5c935f7dcff3b83dcfab66d9c866765007b9
parent ccfe14aec8637d9648cf6d722b667b63cda5e831
author peng <yangpeng43@huawei.com> 1715776231 +0000
committer peng <yangpeng43@huawei.com> 1715776231 +0000

Adjust comment format

Signed-off-by: peng <yangpeng43@huawei.com>
Txtree e41f30a41caac2a6cfcd4f16cee716e80ad8292c
parent 23b1bd79544da70ec5b28209f290a0e0e107f6ea
author peng <yangpeng43@huawei.com> 1715776129 +0000
committer peng <yangpeng43@huawei.com> 1715776129 +0000

Adjust comment format

Signed-off-by: peng <yangpeng43@huawei.com>
T|x6tree dd59db81bbb64f04d20f229df82fbd544d87fcb5
parent 1ca34c4dec4807a1bcb42c3e4e8284888c5ae1aa
author wzn121 <wangzining5@huawei.com> 1715773869 +0000
committer Gitee <noreply@gitee.com> 1715773869 +0000

update graphic/graphic_2d/native_window/external_window.h.

Signed-off-by: wzn121 <wangzining5@huawei.com>d_x]tree 7759fee8ac6596274200d23a1cf5fc4a55bbe6b6
parent 88b7f5e1b2078e2acefa51cb98c6b22dc25cfd46
parent 11e139646b6e3f4847b3749c9597280e9b8c84fa
author openharmony_ci <120357966@qq.com> 1715772414 +0000
committer Gitee <noreply@gitee.com> 1715772414 +0000

!698 获取gif图片的播放次数
Merge pull request !698 from Can Xia/cherry-pick-1715743023/@qx5tree 099538132680340e6cb8ec0812acc0b2f1f8b890
parent 583bd2896d77bf37a1e1bb7b4bf24f14e901824b
author Can Xia <xiacan2@huawei.com> 1715763133 +0000
committer Gitee <noreply@gitee.com> 1715763133 +0000

update multimedia/image_framework/include/image/image_common.h.

Signed-off-by: Can Xia <xiacan2@huawei.com>Ya_x tree 4a9238b89ab2751716cc7683beaf1fe600585a27
parent 7a484337f1c302609a9043c88729f9368f825090
author 尹耀德 <yinyaode1@huawei.com> 1715762697 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1715762697 +0800

modify error msg for asset

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
+axitree 429abb5c9fc56102b0f75fc1816e99eb6c7a4a26
parent edc972db9263ea3c5878641b3e3df385806e6c75
parent ba2a29d5fb0555d09ba136b0b4937819dd8be3e6
author openharmony_ci <120357966@qq.com> 1715762053 +0000
committer Gitee <noreply@gitee.com> 1715762053 +0000

!685 文件规则修改：文件增删，只比对文件本身信息；添加规则：常量与变量互转
Merge pull request !685 from sam_wusb/master>TxKtree 6bf81227981aa0f85aaf8db111648e956b46ca08
parent b669fcf8ef7633d6f114a58c04d4cf71ece9ceea
parent 1a96bcfdf968701dd258df95c5bc6a6d9ab63d62
author openharmony_ci <120357966@qq.com> 1715757677 +0000
committer Gitee <noreply@gitee.com> 1715757677 +0000

!651 asset huks error msg整改
Merge pull request !651 from 尹耀德/masterzkx
tree 91567b1f0634fd553c82e8e87a8d84cc2ff6ab1b
parent 4593760ba054019f4a7a21f488efedaf5e0711a6
author hubin <hubin29@huawei.com> 1715138852 +0800
committer hubin <hubin29@huawei.com> 1715757600 +0800

add ipc capi interface

Signed-off-by: hubin <hubin29@huawei.com>
=Q/x>tree b8f599a60b6a69bb079612781fe5feb60a5c9b09
parent 82be64760cb936ff44945342e9a5eed5208797a6
parent 9076db3b6f40b75a43b31c028ccb12fc827436ed
author openharmony_ci <120357966@qq.com> 1715756530 +0000
committer Gitee <noreply@gitee.com> 1715756530 +0000

!679 ndk资料整改
Merge pull request !679 from xuerunlong/513?Sbx6tree 8ea7c030ecf28a92a3971b9a8b8ac2e89dc0301d
parent d11745382707f6f6b9da11d635519e08631730ba
author wzn121 <wangzining5@huawei.com> 1715755804 +0000
committer Gitee <noreply@gitee.com> 1715755804 +0000

update graphic/graphic_2d/native_window/external_window.h.

Signed-off-by: wzn121 <wangzining5@huawei.com>bjxPtree 900c73272ca4cb975743172e4008382723e8584c
parent 22ac0e8cf6916afec88ee11d5fd0f1205e3fc249
parent 89dfe57ac686d777e0f06c0aebea1a471fb58b1c
author openharmony_ci <120357966@qq.com> 1715755589 +0000
committer Gitee <noreply@gitee.com> 1715755589 +0000

!681 整改CAPI接口返回描述
Merge pull request !681 from wangyan/wangyan0513rmx6tree a98916588ac7c27731347b82bab0b9e0d926b31b
parent c163c42d025f6613ed480ef4404dcb91c82f4dce
author wzn121 <wangzining5@huawei.com> 1715752207 +0000
committer Gitee <noreply@gitee.com> 1715752207 +0000

update graphic/graphic_2d/native_window/external_window.h.

Signed-off-by: wzn121 <wangzining5@huawei.com>_bx6tree 5fadb16e242b150d42ae81b334033ff80fa21d12
parent ae5e1da48b6c5f9885ac3e5f97f7c014762b7758
author wzn121 <wangzining5@huawei.com> 1715743242 +0000
committer Gitee <noreply@gitee.com> 1715743242 +0000

update graphic/graphic_2d/native_window/external_window.h.

Signed-off-by: wzn121 <wangzining5@huawei.com>nbx5tree 1eb2f2a09ff275e41ec44eee3750af60912a3102
parent de66897bfca780a8b39930780ca6a09901ce2558
author Can Xia <xiacan2@huawei.com> 1715743142 +0000
committer Gitee <noreply@gitee.com> 1715743142 +0000

update multimedia/image_framework/include/image/image_common.h.

Signed-off-by: Can Xia <xiacan2@huawei.com>q4axctree e62c8cb887384bc95ed590a94fc71f2003e265fd
parent 22ac0e8cf6916afec88ee11d5fd0f1205e3fc249
author caochuan <caochuan@huawei.com> 1714376925 +0800
committer Can Xia <xiacan2@huawei.com> 1715743024 +0000

fixed 2dda5c6 from https://gitee.com/can-xia/interface_sdk_c/pulls/608
获取gif图片的播放次数

Signed-off-by: caochuan <caochuan@huawei.com>
Y{$xtree a93267c19ed737185bb6ca05eab02727384617e0
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author peng <yangpeng43@huawei.com> 1715741953 +0000
committer peng <yangpeng43@huawei.com> 1715741953 +0000

add audio ndk interface

Signed-off-by: peng <yangpeng43@huawei.com>
?SyxJtree 5f1dc06270dd70837bbdd88ca983a0f7e8cac356
parent 22ac0e8cf6916afec88ee11d5fd0f1205e3fc249
author xiyupeng <xiyupeng@huawei.com> 1715740728 +0800
committer xiyupeng <xiyupeng@huawei.com> 1715740728 +0800

scheme handler网络拦截新增OH_ArkWebResourceRequest_GetFrameUrl接口

Signed-off-by: xiyupeng <xiyupeng@huawei.com>
5uxgtree b4313f3c856e7a4fbc59d5bf8fed1f6a8dc46bf6
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
parent 3b129fcd80653aa2f20c4493134f88d4a4bc504f
author openharmony_ci <120357966@qq.com> 1715739507 +0000
committer Gitee <noreply@gitee.com> 1715739507 +0000

!695 修复ffrt.ndk.json中ffrt_get_main_queue拼写问题
Merge pull request !695 from zhuguoyang/masterYxx?tree c044e791cec038dfb24b95f3cb4b7032ab9ace26
parent 534296cb569e1e0a0674d3ef8e9b17584216db13
author xuerunlong <xuerunlong1@huawei.com> 1715736317 +0000
committer Gitee <noreply@gitee.com> 1715736317 +0000

update filemanagement/environment/include/oh_environment.h.

Signed-off-by: xuerunlong <xuerunlong1@huawei.com>=hx4tree b4313f3c856e7a4fbc59d5bf8fed1f6a8dc46bf6
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author zhuguoyang <zhuguoyang@h-partners.com> 1715696598 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1715696598 +0800

fix ffrt ffrt_get_main_queue

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>

extree a2a1081843c925b606c9c76026d75e63641525f0
parent a50fe7ad44e51999cd0e6258fc59c0c00975d1ee
author sam_wusb <wusongbai1@huawei.com> 1715686442 +0800
committer sam_wusb <wusongbai1@huawei.com> 1715686773 +0800

门禁圈复杂度整改

Signed-off-by: sam_wusb <wusongbai1@huawei.com>
ax"tree 80529d440347a09ca810c1a809614a4de79634cc
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author 尹耀德 <yinyaode1@huawei.com> 1715678303 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1715678303 +0800

modify asset ndk return code

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
acxDtree 0cc089acde7d2f46f60cb8359a592737202fbab9
parent 254f73ac2e85eb4fb93e0dfaa001ce2134f70c82
author yeyinglong_admin <yeyinglong@hisilicon.com> 1715677959 +0800
committer yeyinglong_admin <yeyinglong@hisilicon.com> 1715677959 +0800

Layout Rect接口注释修改

Signed-off-by: yeyinglong_admin <yeyinglong@hisilicon.com>
~qx|tree 68214979f42c5aacaf68a9cfa37a4a69695b830b
parent 90dbfe63e83fa01a0c709db1ba9513949fd72734
author openharmony_ci/wusongbai <wusongbai1@huawei.com> 1715670104 +0800
committer sam_wusb <wusongbai1@huawei.com> 1715671869 +0800

文件规则修改：文件增删，只比对文件本身信息；添加规则：常量与变量互转

Signed-off-by: sam_wusb <wusongbai1@huawei.com>
w͓xctree d2ca0170f0182ebdd8cfabc29ec956a8e6745482
parent b40e7348fe03855a96e4cee754775cfb7e0cefc0
parent 2006ae6f9fbded6ca16f573b2409855a4681a69d
author openharmony_ci <120357966@qq.com> 1715668850 +0000
committer Gitee <noreply@gitee.com> 1715668850 +0000

!594 新增fopencookie和renameat2函数接口暴露
Merge pull request !594 from 仇玉加/renameat2cz?x-tree 01c30b7f233e3dec0d9197fd95b86c6a16d39321
parent 243e3b168e6ae3e84aab1c25832c210af09e54c4
author cff-gite <chenfeifei8@huawei.com> 1715667360 +0800
committer cff-gite <chenfeifei8@huawei.com> 1715667360 +0800

capi Service exception rectification

Signed-off-by: cff-gite <chenfeifei8@huawei.com>
^ՕxUtree 7338a99c0d2679e16a8ad920ceb84f984d8ef08e
parent 88a1c3f57fd54de2db6f7beb6470337c14bcef57
author xiaobjy <zhongjiyuan1@huawei.com> 1713519783 +0800
committer xiaobjy <zhongjiyuan1@huawei.com> 1715666980 +0800

pixelmap add tosdr capi

Signed-off-by: xiaobjy <zhongjiyuan1@huawei.com>
Change-Id: I59a7f6bf561029936e6b410df18a2ce294301ab2
Fjx-tree 3bf01747f5daab362a27691b063cfc876ee05ed6
parent ab169923c08702cc984dcb18446411935ac4beeb
author cff-gite <chenfeifei8@huawei.com> 1715656170 +0800
committer cff-gite <chenfeifei8@huawei.com> 1715656170 +0800

capi Service exception rectification

Signed-off-by: cff-gite <chenfeifei8@huawei.com>
_x.tree f1c4d7582a67c6b21b13b8eaad4895b1a36b6666
parent b40e7348fe03855a96e4cee754775cfb7e0cefc0
author wzn121 <wangzining5@huawei.com> 1715653564 +0800
committer wzn121 <wangzining5@huawei.com> 1715653564 +0800

add new interface for write and read parcel

Signed-off-by: wzn121 <wangzining5@huawei.com>
O ^x[tree 80ccff11aa3b1414ff9f2dc27dfa29de9a2cea2d
parent 37ac124117c2c7be9d375dba5b3d3d1fccea7806
parent 69037558d96a19f1ec71fc3f535166c10ea1ee8f
author openharmony_ci <120357966@qq.com> 1715652009 +0000
committer Gitee <noreply@gitee.com> 1715652009 +0000

!671 整改media C API接口返回描述
Merge pull request !671 from Xie Zhongwei/capi_error3s?x_tree 963fe83022750bd8d4c9e1a941a08b36713bbd78
parent 40376fbed9878ccd99fb230247fa4274b9ae8784
parent 2d169cc7e0e17cf09e1591150e24acf4b015868a
author openharmony_ci <120357966@qq.com> 1715604516 +0000
committer Gitee <noreply@gitee.com> 1715604516 +0000

!678 CAPI命名、Doc校验工具适配codecheck规则
Merge pull request !678 from 姜前进/513w4xHtree 1e6d8d26c667b447740c3be8efea9761f1540f3c
parent bc0a65c12b7af4c9ee8ad025f6b939aa7ddcf89b
parent b65bb938aeb6b366a7212e03f124f79ad44fd617
author openharmony_ci <120357966@qq.com> 1715603193 +0000
committer Gitee <noreply@gitee.com> 1715603193 +0000

!673 svg新增shader接口
Merge pull request !673 from ustc-tianyu/masterӭhџxtree 903e38bed7810ff705d5a544858549fe6b5da45a
parent bc0a65c12b7af4c9ee8ad025f6b939aa7ddcf89b
author wangyan <wangyan431@huawei.com> 1715602406 +0800
committer wangyan <wangyan431@huawei.com> 1715602406 +0800

整改CAPI接口返回描述

Signed-off-by: wangyan <wangyan431@huawei.com>
w~b,xNtree 51946c5d5a6f79def91136ed80104e712707c004
parent b4fdace61752914d6f4a419234d3b95c5b37b1ff
parent 913b3b8e90ffe620d482cbb605500875504c9345
author openharmony_ci <120357966@qq.com> 1715600266 +0000
committer Gitee <noreply@gitee.com> 1715600266 +0000

!672 matrix按照新方式提供
Merge pull request !672 from 马靖涛/20240512,lxDtree a57981ad037c95be707402cc042aa1159d9a7f78
parent 718bca6185b649dbd1906926669395f5c01c12f0
parent b2d9a1f1d66d0e349a786aee025406f1d56a6d31
author openharmony_ci <120357966@qq.com> 1715595803 +0000
committer Gitee <noreply@gitee.com> 1715595803 +0000

!656 drm API12接口提交
Merge pull request !656 from baoxy92/masterclxCtree 8745ae9a838e5d264786ae92aa2b36f5dcc73ce0
parent 823bae4b7f543771e4e588ecbf376cbbf098cefd
author jwx1102601 <jiangqianjin@huawei.com> 1715583218 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1715592259 +0800

CAPI命名、Doc校验工具适配codecheck规则

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
Koxtree 390eaab8076bd2718d19986cb6edd8c92477df00
parent 823bae4b7f543771e4e588ecbf376cbbf098cefd
author xuerunlong <xuerunlong1@huawei.com> 1715585491 +0800
committer xuerunlong <xuerunlong1@huawei.com> 1715586543 +0800

ndk资料整改

Signed-off-by: xuerunlong <xuerunlong1@huawei.com>
N`x~tree a51ff8057ad292151698a2be90c312e58a79938f
parent 823bae4b7f543771e4e588ecbf376cbbf098cefd
parent d774c52c219491d886558e5db97998884c3d3e99
author openharmony_ci <120357966@qq.com> 1715583048 +0000
committer Gitee <noreply@gitee.com> 1715583048 +0000

!654 scheme handler网络拦截新增OH_ArkWebResourceRequest_GetResourceType接口
Merge pull request !654 from xiyupeng/master#TxPtree 76525e9a60f89432d43799c59363c56c43654e77
parent d7bd610343ba3037171968227061c314f534a279
parent a0efbe58a8de7f507ae75ac8d95197030d86b520
author openharmony_ci <120357966@qq.com> 1715570491 +0000
committer Gitee <noreply@gitee.com> 1715570491 +0000

!665 sdk适配新增视频通话usage
Merge pull request !665 from Reily.wu/master8kxbtree 8c0703f1c4232548eee1cd07cbc0b84193dd23f6
parent d78170dbfcd22748065150bfbbda6fa360082f3e
parent 8dc2ad46e4a20461831944df8f80e9e28487f699
author openharmony_ci <120357966@qq.com> 1715569568 +0000
committer Gitee <noreply@gitee.com> 1715569568 +0000

!598 avscreencapture支持pc端排除指定windowID窗口
Merge pull request !598 from 杰尼/masterx]x#tree df4de1b1660e7383648dd97cdadccf8017103cff
parent d78170dbfcd22748065150bfbbda6fa360082f3e
author ustc-tianyu <dutianyu4@huawei.com> 1715504624 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1715504629 +0800

add shader ndk
interface Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
K]kxUtree a55d6952139b9ef9bc28c1b34b8a07e8bfa30d65
parent d78170dbfcd22748065150bfbbda6fa360082f3e
author m00472246 <majingtao1@huawei.com> 1715476220 +0800
committer m00472246 <majingtao1@huawei.com> 1715476220 +0800

matrix按照新方式提供 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
nxJtree dbcd6d4ab93e091447ed108c4458a05d4e2e10d9
parent 3f3c2f25621d13453b1b120ceb17149dfaab309c
parent ff95586f20340cca94293c1dbd4950244a1d96bf
author openharmony_ci <120357966@qq.com> 1715431611 +0000
committer Gitee <noreply@gitee.com> 1715431611 +0000

!659 JSVM新增接口函数声明
Merge pull request !659 from bwtang/masterkxKtree 86d074349ab4d8ed540b7f92aa8b33c10fcaaeaf
parent 2106d9d60b78737e9c371b58d47fbae4ee24bf02
author cyberbox <468042667@qq.com> 1715421798 +0800
committer cyberbox <468042667@qq.com> 1715429028 +0800

update capi return descriptions

Signed-off-by: cyberbox <468042667@qq.com>
Change-Id: I6558383d3dac999918fb50047f00e1f64342a9e4
baxetree d8c50e6d8c65b27af1b420e9d74adf385afa69df
parent 353a0356b263e4483f0788c607dbe23bd7617703
parent 08c73985e55065d08025427d9745376ecd7f50d6
author openharmony_ci <120357966@qq.com> 1715422868 +0000
committer Gitee <noreply@gitee.com> 1715422868 +0000

!650 【AVCodec Kit】avc level 新增5.2 6 6.1 6.2枚举
Merge pull request !650 from 杨小雨/master}r|xDtree 4a4c17b09ef1df925deb04e41c89fa92a2dd3c14
parent e85d660515bbac53550d4f8c82b3ac3038bdfedc
parent cc955639b717258c64854f09eee5b1a6145e722d
author openharmony_ci <120357966@qq.com> 1715422730 +0000
committer Gitee <noreply@gitee.com> 1715422730 +0000

!480 nnrt算子扩充-v2.1
Merge pull request !480 from maoyong/masterexjtree c64f4dca33c14a65fabd9cd7eba2084be798ac0c
parent a2792d359bb80c9523de991b37bc073fb278a1d2
parent d41ac7d36c82b5b2a152ce46427e1722e638387d
author openharmony_ci <120357966@qq.com> 1715421512 +0000
committer Gitee <noreply@gitee.com> 1715421512 +0000

!662 Adding an explanation about c interface of setting
Merge pull request !662 from changleipeng/TextShadowpFx)tree c7e25f6c07c345f21765032aaca860a0a015c073
parent fd4651e281c839c1d4d61a149e4737b8c219e644
author liyang <liyang782@huawei.com> 1715409106 +0800
committer liyang <liyang782@huawei.com> 1715409106 +0800

按屏幕录制排除指定windowid的窗口

Signed-off-by: liyang <liyang782@huawei.com>
$gx5tree 88153837222812822aeada7576bc6b1a39d6c79e
parent 9259a29412f583ff342aa98f58f1f011379d97d9
author 仇玉加 <qiuyujia1@huawei.com> 1714039110 +0800
committer 仇玉加 <qiuyujia1@huawei.com> 1715399892 +0800

添加fopencookie和renameat2函数接口暴露

Signed-off-by: 仇玉加 <qiuyujia1@huawei.com>
sxutree c64f4dca33c14a65fabd9cd7eba2084be798ac0c
parent 8e6eebdfb1041f741043bac578d663623d0e3da3
parent a2792d359bb80c9523de991b37bc073fb278a1d2
author changleipeng <changleipeng4@huawei.com> 1715395718 +0000
committer Gitee <noreply@gitee.com> 1715395718 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into TextShadow

Signed-off-by: changleipeng <changleipeng4@huawei.com>X+x<tree 6b8424e317ab7fbd9b9813c3e10ef1cb2bc6fbd9
parent bf5f582df8756936fe891461e324c5f696226347
author xiyupeng <xiyupeng@huawei.com> 1715161758 +0800
committer xiyupeng <xiyupeng@huawei.com> 1715394982 +0800

scheme handler网络拦截新增getRequestResourceType接口

Signed-off-by: xiyupeng <xiyupeng@huawei.com>
o̙x9tree 355e5211ccec80dc62db6cdecdb7be9bad52e1b5
parent 6e989c8f75088f7a38da53c3634419c0357c809f
author bwtang <tangbowen9@huawei.com> 1715394315 +0800
committer bwtang <tangbowen9@huawei.com> 1715394315 +0800

fix the comments about return value of the new interfaces

Signed-off-by: bwtang <tangbowen9@huawei.com>

dݛx{tree e8cacc22182cc3ae3c804bfa8086125a34f52c93
parent a04f679870230d2735433446159cd8b393942327
author changleipeng <changleipeng4@huawei.com > 1715393618 +0800
committer changleipeng <changleipeng4@huawei.com > 1715393618 +0800

modifying the code some of explaining

Signed-off-by: changleipeng <changleipeng4@huawei.com >
Change-Id: I720bf5f9f83dca9eb62279f12b6d497f1bea1cf3
"yDx)tree d50f53e9983dacec9bb98887682677c6685eb220
parent 52977f8affe202fdcdf6a7d3b6fea211debe62c4
author liyang <liyang782@huawei.com> 1715390469 +0800
committer liyang <liyang782@huawei.com> 1715390475 +0800

按屏幕录制排除指定windowid的窗口

Signed-off-by: liyang <liyang782@huawei.com>
`fix-tree 873e65762d0575401779c4e7e3ed9436c3b6a4c6
parent e1e52f184c00e027e12f4a3fbdb3f04917faebd4
author wang-yangsong <wangyangsong@h-partners.com> 1715338152 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1715338152 +0800

bugfix

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
Bax`tree 496189f36e5910a67991e8c5109fb4d9a6cd9b87
parent dbce6cc82b48bcf003c343ecc8bf47c98095fcb4
parent 961d5f0e126ef03efd262bc5f28e29bcc9759978
author openharmony_ci <120357966@qq.com> 1715337580 +0000
committer Gitee <noreply@gitee.com> 1715337580 +0000

!663 录屏框架NDK接口错误码信息整改
Merge pull request !663 from 张迪/newBranch_0509k{xZtree d36a7937c1036d0884f18b0b3b153cda21a1beeb
parent d790068f15dbeb43b15fa497a29d3ad5b8652949
parent 318aebb9f12c844141be15977ecc02ddeec94afd
author openharmony_ci <120357966@qq.com> 1715337524 +0000
committer Gitee <noreply@gitee.com> 1715337524 +0000

!646 capi 错误码描述修改
Merge pull request !646 from 周士淼/fix_0507_capi_errCodeVt8xstree 2685e3b2f30bcff841cc5727e73844d065f9678d
parent 40e97f9dbb6a546b1414390dcda5beff39a92432
parent a19b6330d8b933010cb760816d28fd6a32254273
author openharmony_ci <120357966@qq.com> 1715336419 +0000
committer Gitee <noreply@gitee.com> 1715336419 +0000

!658 Modify the comment and add a method for destroy the text boxes
Merge pull request !658 from changleipeng/0509NDKpx!tree 23b01744c91d1cc7703d934e9993ae7cdca6d1fa
parent c0adce90d65323b12c4695c7295cc32bb2407bef
author 张迪 <zhangdi119@huawei.com> 1715257563 +0800
committer 张迪 <zhangdi119@huawei.com> 1715328175 +0800

录屏框架NDK错误信息整改

Signed-off-by: 张迪 <zhangdi119@huawei.com>
~jnxatree 77b3daf64459c2091e78bb07474b4529843e66a3
parent 2106d9d60b78737e9c371b58d47fbae4ee24bf02
author ZhouShimiao <zhoushimiao@huawei.com> 1715321484 +0800
committer ZhouShimiao <zhoushimiao@huawei.com> 1715321484 +0800

capi 错误码描述修改

Signed-off-by: zhoushimiao <zhoushimiao@huawei.com>
Change-Id: I8d48d5ebe7cf0a949ceeba3313bf13ca188b3402
hvxtree 97a62089744e2df28c385e60182213ce7adfdf2c
parent 40e97f9dbb6a546b1414390dcda5beff39a92432
author Reily <wululu123@huawei.com> 1715313824 +0800
committer Reily <wululu123@huawei.com> 1715313824 +0800

sdk新增视频通话usage

Signed-off-by: Reily <wululu123@huawei.com>
	[:x/tree 9344da788fb03a5e142741f41fbf5b702137b4ed
parent b72b243ab262a568606cd92bd8c67a28fb4deba5
author baoxy92 <baoxianyue@hisilicon.com> 1715305428 +0000
committer Gitee <noreply@gitee.com> 1715305428 +0000

update multimedia/av_codec/native_cencinfo.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>#"a$x/tree fa11145a41d0c83d88cc4d28651b05d91ffe24d5
parent e2cec727da7e6b28bbf44c0759deaf4824f86eff
author baoxy92 <baoxianyue@hisilicon.com> 1715263285 +0000
committer Gitee <noreply@gitee.com> 1715263285 +0000

update multimedia/av_codec/native_cencinfo.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>bx/tree cbf9a98b8bf4954dd33a4a93c868bf09b5a2a9e0
parent fcc8c8f9a9a7bb6be593da84dddffc1701fb0e05
author baoxy92 <baoxianyue@hisilicon.com> 1715254611 +0000
committer Gitee <noreply@gitee.com> 1715254611 +0000

update multimedia/av_codec/native_cencinfo.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>bxZtree 9725f23a49d99d7b07ef6b63dceef89b5db6d106
parent c0adce90d65323b12c4695c7295cc32bb2407bef
parent 254f73ac2e85eb4fb93e0dfaa001ce2134f70c82
author openharmony_ci <120357966@qq.com> 1715252533 +0000
committer Gitee <noreply@gitee.com> 1715252533 +0000

!632 C-API支持设置组件布局大小位置
Merge pull request !632 from yeyinglong/capi1cvǜxltree 657e466072958de26e359f0d9801513868c63cdc
parent a7a896d7fa6d8319bbaee67efbc32bc965b73696
author changleipeng <changleipeng4@huawei.com > 1715247187 +0800
committer changleipeng <changleipeng4@huawei.com > 1715247187 +0800

text-shadow of Setting

Signed-off-by: changleipeng <changleipeng4@huawei.com >
Change-Id: I6e9d759c1c9c3b1d21eb5f53a26f052f6cf12485
itxxZtree 2c5eb58a46e222fb73bf4030303c3ba36ea06300
parent 2c469c4032a3791594add299ee74c982010c6a66
parent 31433703750135c15912805e96582344d31b8681
author openharmony_ci <120357966@qq.com> 1715246581 +0000
committer Gitee <noreply@gitee.com> 1715246581 +0000

!660 NDK-CAPI: add drawable_descriptor.h
Merge pull request !660 from wangxinqiang007/master*exJtree 8cbae86a749764208f7a0c05a94f005fac11ee87
parent ffc01b2345094950f2a1bc8f6aa7569cc78878d2
parent f9765b6cca6d72c4d21a9ffd6a492c6b696b5fa9
author openharmony_ci <120357966@qq.com> 1715237608 +0000
committer Gitee <noreply@gitee.com> 1715237608 +0000

!653 修改CAPIlibclang.so路径
Merge pull request !653 from zhangwu/masterhx/tree ef87790e381576a50fbefc159d0be29521f8f55a
parent eacb9642749926b37357196d8309f0d005575808
author baoxy92 <baoxianyue@hisilicon.com> 1715236021 +0000
committer Gitee <noreply@gitee.com> 1715236021 +0000

update multimedia/av_codec/native_cencinfo.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>0_ʗxGtree a57541a083807630642b6f85dfcaf429ff2a873c
parent 17308dca0aa2576c0f76b3c76e958b3f577a1b21
author wangxinqiang007 <wangxinqiang2@huawei.com> 1715226326 +0800
committer wangxinqiang007 <wangxinqiang2@huawei.com> 1715226326 +0800

NDK-CAPI: add drawable_descriptor.h

Signed-off-by: wangxinqiang007 <wangxinqiang2@huawei.com>
gx6tree 23bf3f5320eea05454b33c4bcac0d2ba986f161a
parent f40a370a3d31738b6e4df4a584f62fd8ca051edc
author bwtang <tangbowen9@huawei.com> 1715224981 +0800
committer bwtang <tangbowen9@huawei.com> 1715224981 +0800

add OH_JSVM_IsXXX interfaces for fast js type checking

Signed-off-by: bwtang <tangbowen9@huawei.com>
bxXtree 67ded0248522aa2b35b426eab3fc34cef149267b
parent ffc01b2345094950f2a1bc8f6aa7569cc78878d2
author changleipeng <changleipeng4@huawei.com> 1715223759 +0800
committer changleipeng <changleipeng4@huawei.com> 1715223759 +0800

Modify the comment and add a method to destroy the text boxes

Signed-off-by: changleipeng <changleipeng4@huawei.com>
]oxAtree c58d64fa4466fd75c3e110b6c5dba96748098e7f
parent 3a16a209c65be4a4bbcab55317fcb79bbe7f1a78
parent e4350413355bdcbbb4cf0000b5b0c6d8a4a75401
author openharmony_ci <120357966@qq.com> 1715177034 +0000
committer Gitee <noreply@gitee.com> 1715177034 +0000

!647 XTS测试整改
Merge pull request !647 from liuwenfeng/masterle\xtree 4464bb49493d65556e24a154c1696fa91ba834cf
parent 3a16a209c65be4a4bbcab55317fcb79bbe7f1a78
author bao92 <baoxianyue@hisilicon.com> 1715171095 +0800
committer bao92 <baoxianyue@hisilicon.com> 1715171095 +0800

drm API12接口提交

Signed-off-by: bao92 <baoxianyue@hisilicon.com>
)[xCtree d792e5237ad9498c5050bb8e386e467d5d428742
parent bf5f582df8756936fe891461e324c5f696226347
parent ec5b519557a44f59160cef38f2d40472661a310d
author openharmony_ci <120357966@qq.com> 1715163557 +0000
committer Gitee <noreply@gitee.com> 1715163557 +0000

!643 Fix: 错误码说明
Merge pull request !643 from shilong/masterdxtree 0de57de5a94c73ccd7bfc6bb0072dced811f552f
parent efde82b74bc586a805a6f9cc09e5e8d9fd9acc5d
author kerongfeng <fengkerong@huawei.com> 1715160951 +0000
committer Gitee <noreply@gitee.com> 1715160951 +0000

 add ndk interface 

Signed-off-by: kerongfeng <fengkerong@huawei.com>Yxtree 408d8952acf83b30d8624eb75fbe502afe2bd5b0
parent bf5f582df8756936fe891461e324c5f696226347
author zhangwuf <zhangwu47@huawei.com> 1715156424 +0800
committer zhangwuf <zhangwu47@huawei.com> 1715158194 +0800

修改libclang.so路径

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
95\x!tree d6346ec990965b1f4ef2ece08e414361abbfd675
parent bf5f582df8756936fe891461e324c5f696226347
author 尹耀德 <yinyaode1@huawei.com> 1715153062 +0800
committer 尹耀德 <yinyaode1@huawei.com> 1715153062 +0800

asset huks error msg chagne

Signed-off-by: 尹耀德 <yinyaode1@huawei.com>
ZcIx^tree e7ab3d95448158db14d542cd5e1ab1e053ceb7fa
parent 9634ddaa951bd3c4c7bc53cf88a0c7bc0e6b4750
parent 682e594471c9baab6243818687cc458b41b78014
author openharmony_ci <120357966@qq.com> 1715149433 +0000
committer Gitee <noreply@gitee.com> 1715149433 +0000

!649 NDK C-Api 调整Image resizable 属性顺序
Merge pull request !649 from aryawang/58master)pXxOtree 0fef5dad11f8d3b23134c5cd1269568825d8caf3
parent a4dcc7ca6600f488d682f6fa8b58dafcef6a899d
parent 5bdf74469c775879ccdf222e0c51d604b073b505
author openharmony_ci <120357966@qq.com> 1715139761 +0000
committer Gitee <noreply@gitee.com> 1715139761 +0000

!638 开放Drawing接口适配SVG
Merge pull request !638 from ustc-tianyu/masterloxitree d80398c2a05aadc96cd61d2d721b5204a153f81c
parent a4dcc7ca6600f488d682f6fa8b58dafcef6a899d
author aryawang <wangcaihui@huawei.com> 1715136437 +0000
committer aryawang <wangcaihui@huawei.com> 1715136437 +0000

NDK C-Api 调整image resizable的属性顺序

Signed-off-by: aryawang <wangcaihui@huawei.com>
Change-Id: I64f69f6b2c965d30eb8510f5d18617691a4e07b5
P<xhx2tree 88e94c14b9237c5ae839a478c3628db56f8a7a62
parent a4dcc7ca6600f488d682f6fa8b58dafcef6a899d
author yangxiaoyu <yangxiaoyu5@huawei.com> 1715136416 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1715136416 +0000

avc level 新增5.2 6 6.1 6.2枚举

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
^ex#tree 7be33a0754716534d3a6856093bdbf171f25900d
parent df085295a42e57c21cd138d2a69a30c4536c7826
author ustc-tianyu <dutianyu4@huawei.com> 1714651644 +0800
committer ustc-tianyu <dutianyu4@huawei.com> 1715130785 +0800

add matrix ndk interface
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
[~xXtree 4eac60ecca3f79bf518053a6e95652169af82894
parent 7b1a5b52b6963a8b47b8d367ad8adcfa28653472
parent 17308dca0aa2576c0f76b3c76e958b3f577a1b21
author openharmony_ci <120357966@qq.com> 1715090209 +0000
committer Gitee <noreply@gitee.com> 1715090209 +0000

!620 NDK-CAPI: add drawable_descriptor
Merge pull request !620 from wangxinqiang007/mastergx%tree 04b58d15d6fcd40589d90a0d222f91d5a0a70ba5
parent 7b1a5b52b6963a8b47b8d367ad8adcfa28653472
author liuwenfeng <bluecodeman@outlook.com> 1715085781 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1715085781 +0800

remove ohprint capi

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
.D^nxTtree d2770e6b1c86664fc55e54ab2a57cb66f22622d9
parent 72fb3ff58c7aa693023a261a663a38762549eddc
parent 3cd92bb8706a45dfd5e4a2438e64d4debfeeecb1
author openharmony_ci <120357966@qq.com> 1715084548 +0000
committer Gitee <noreply@gitee.com> 1715084548 +0000

!627 add NODE_IMAGE_ON_DOWNLOAD_PROGRESS
Merge pull request !627 from real_jing/masterlfxHtree 0477f83f783d1302bd1f0d5c013fd5d85222628d
parent 30af4a1a086407a99c8179944ea998e410f9fd09
parent e2cd48cb5615f53be925001608bc966806f78ba9
author openharmony_ci <120357966@qq.com> 1715083317 +0000
committer Gitee <noreply@gitee.com> 1715083317 +0000

!561 Async JSB NDK接口修改
Merge pull request !561 from SalmonC/master9dxrtree c7e25f6c07c345f21765032aaca860a0a015c073
parent b0da207c955b73f06fd8e5a3e1ce47bb06d9eb8b
parent 30af4a1a086407a99c8179944ea998e410f9fd09
author 杰尼 <liyang782@huawei.com> 1715082910 +0000
committer Gitee <noreply@gitee.com> 1715082910 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 杰尼 <liyang782@huawei.com>x xVtree 1dffbfcfa286eec168a23fecc68835f3ed610a99
parent 2106d9d60b78737e9c371b58d47fbae4ee24bf02
parent e29fb617cff2e9d7557b980644dfe1979ed7d039
author openharmony_ci <120357966@qq.com> 1715073754 +0000
committer Gitee <noreply@gitee.com> 1715073754 +0000

!631 [NDK] add input show keyboard on focus api
Merge pull request !631 from lisitao/l_5`h}xYtree 4531a4381bb166ee7d5126d425128b12c8559dcc
parent 9af516b66d44aa940acc8f078e17dfa31163f0f9
parent dce16db076ee362f52597d9970ed0b6a6dda25a0
author openharmony_ci <120357966@qq.com> 1715069063 +0000
committer Gitee <noreply@gitee.com> 1715069063 +0000

!642 interface仓json文件开放接口增加
Merge pull request !642 from zhangq444/master3rxmtree 4303c8a4d135a0c0664b8dff0deb1d5220357090
parent c0fa7a401543f3635f01e26ed9af7a531f7f68a0
parent 99586252ede0cbdb36e172bfc1bc1959acd6c655
author openharmony_ci <120357966@qq.com> 1715069035 +0000
committer Gitee <noreply@gitee.com> 1715069035 +0000

!633 【NDK】5toD numberOflines、selectedBackgroundColor接口补充 
Merge pull request !633 from honzx/0506rvYxitree b90a0f0dce4386a1b2fde1bdd3f7a6f0caf98c56
parent ab36d7e57ae2ebdc171d9a3c95ab433afeb99ee8
parent bcf5fcae4b12042e16622665305e026a66c55f44
author openharmony_ci <120357966@qq.com> 1715055888 +0000
committer Gitee <noreply@gitee.com> 1715055888 +0000

!636 CAPI统计工具结果、diff结果对其js对应工具结果和CAPIcheck工具结果增加表格数据
Merge pull request !636 from zhangwu/master"x0tree 35e06fd60bc4bc5864a6ca1f679fb28ca6b731b5
parent 5f8ec992663cf88b0f43ee9f59178ff0c0448598
author wang-yangsong <wangyangsong@h-partners.com> 1715053153 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1715053153 +0800

sync nnrt

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
bxtree eeb46c9fced5f20af5c1156adcbaa3dfbb31505a
parent ab36d7e57ae2ebdc171d9a3c95ab433afeb99ee8
author shilong <dragon.shilong@huawei.com> 1715053026 +0000
committer Gitee <noreply@gitee.com> 1715053026 +0000

声明错误码；

Signed-off-by: shilong <dragon.shilong@huawei.com>
`?xAtree 6c3c3186164322ca2336318132dae5e5d75d5c56
parent ab36d7e57ae2ebdc171d9a3c95ab433afeb99ee8
author zhangqiang <zhangqiang342@huawei.com> 1715051162 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1715051162 +0800

20240507  interface仓json开放接口增加

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
l|xEtree d2241aac65d76f5dc4f1ed42f7ee43536dd00e79
parent ab36d7e57ae2ebdc171d9a3c95ab433afeb99ee8
author wangxinqiang007 <wangxinqiang2@huawei.com> 1714472022 +0800
committer wangxinqiang007 <wangxinqiang2@huawei.com> 1715007719 +0800

NDK-CAPI: add drawable_descriptor

Signed-off-by: wangxinqiang007 <wangxinqiang2@huawei.com>
piixutree 0d12e1682ac4200a9019d55b1d2b4bf3f1299cb6
parent 0787be60f71c6fae3e4713e450e5b11c5b3dde6b
parent aedb7f69645bfc225767a6aa3e95d71f79a52aeb
author openharmony_ci <120357966@qq.com> 1714999122 +0000
committer Gitee <noreply@gitee.com> 1714999122 +0000

!404 废弃音频内录接口，同时音频流支持设置是否允许被内录属性
Merge pull request !404 from ancimoon/playbackcapture:Ux`tree 0dc04ecaf01e189f103c0f31cc07b426c8c3a0de
parent cf77dff75e603c62d2e0b6f33c23a1845153bfdf
parent e45879517bfb503e8fec79423598f3892b9385d1
author openharmony_ci <120357966@qq.com> 1714996560 +0000
committer Gitee <noreply@gitee.com> 1714996560 +0000

!635 【错误码】【ndk】C api接口错误码整改
Merge pull request !635 from 沈康/master{xRtree a2cf05b7d1cdac7f1fb2de5257e40adecb9557cd
parent d04262f4b910b7e9362ab969292e4dccb529122b
parent 6a7a41ac1553999eb3ae45786e4e747de5bceb2a
author openharmony_ci <120357966@qq.com> 1714995069 +0000
committer Gitee <noreply@gitee.com> 1714995069 +0000

!621 【NDK】5toD接口补充 
Merge pull request !621 from yyuanche/waterflow_consYqmxPtree 22c94ebbce0dd4816d0e7a5c0eb816499c33b386
parent a9a50e4d2f814400210913edca9da21222cd6e93
author yeyinglong_admin <yeyinglong@hisilicon.com> 1714964113 +0800
committer yeyinglong_admin <yeyinglong@hisilicon.com> 1714994824 +0800

C-API支持设置组件布局大小位置

Signed-off-by: yeyinglong_admin <yeyinglong@hisilicon.com>
{]xtree 6c282a44b7986c90af09316433cffacaa27fd91a
parent a9a50e4d2f814400210913edca9da21222cd6e93
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1714962951 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1714994658 +0800

[NDK] add input show keyboard on focus api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
yxGtree 6d5b8aa375ac93f4faceeed4153f37b95caaf683
parent 51916bea95448237578ff26781a834898f596623
parent d04262f4b910b7e9362ab969292e4dccb529122b
author shenkang <shenkang6@huawei.com> 1714985782 +0800
committer shenkang <shenkang6@huawei.com> 1714993452 +0800

Merge branch 'master' of https://gitee.com/shenkang6/interface_sdk_c
dxjtree 2efbf84c4d9306a31e08e18d5ee127710e450833
parent a9a50e4d2f814400210913edca9da21222cd6e93
author zhangwuf <zhangwu47@huawei.com> 1714993161 +0800
committer zhangwuf <zhangwu47@huawei.com> 1714993161 +0800

CAPI统计工具结果、diff结果对其js对应工具结果和CAPIcheck工具结果增加表格数据

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
)x0tree a2cf05b7d1cdac7f1fb2de5257e40adecb9557cd
parent 9427ec46d98badfb1e2ed23609fcdb55c1c76d0d
parent d04262f4b910b7e9362ab969292e4dccb529122b
author yyuanche <yuancheng25@huawei.com> 1714990214 +0800
committer yyuanche <yuancheng25@huawei.com> 1714990214 +0800

Merge branch 'master' into waterflow_cons
v_x-tree 5c4a7c0feafe1a96b72d4346d9c0b4b7d5c51091
parent a9a50e4d2f814400210913edca9da21222cd6e93
author shenkang <shenkang6@huawei.com> 1714985715 +0800
committer shenkang <shenkang6@huawei.com> 1714985715 +0800

fix:interface ndk error code rectification

Signed-off-by: shenkang <shenkang6@huawei.com>
` xQtree e744121ae009d670b3e2a34989b8ce051425ce81
parent dba7c7d4f578d0949105b61e7cd2e84f2a962aca
parent 5e20b77d03cbc1adeb5c68e234f8f155be63a520
author openharmony_ci <120357966@qq.com> 1714982632 +0000
committer Gitee <noreply@gitee.com> 1714982632 +0000

!634 exchange failed code description
Merge pull request !634 from 任欣瑶/masterkxixJtree 63492fffb04c63903acc00be845653954f1cd675
parent f40a370a3d31738b6e4df4a584f62fd8ca051edc
parent 6b91fac0c73bb6a3642403d66d8c5c2d95815813
author openharmony_ci <120357966@qq.com> 1714982205 +0000
committer Gitee <noreply@gitee.com> 1714982205 +0000

!431 Add TEE APIs to interface_sdk_c
Merge pull request !431 from wzr/masterΌbrx)tree a6e1247b34bdd6f7c47d0b662314c7ab86f442e8
parent f40a370a3d31738b6e4df4a584f62fd8ca051edc
author renxinyao <renxinyao2@huawei.com> 1714979626 +0800
committer renxinyao <renxinyao2@huawei.com> 1714979906 +0800

exchange failed code description

Signed-off-by: renxinyao <renxinyao2@huawei.com>
_ʜx\tree 2ce2c49df9367c3b5a1130eeb51f091a20c2f5f0
parent a7a896d7fa6d8319bbaee67efbc32bc965b73696
parent d23448a26cd09f26c6f297e69d174a592ed674af
author openharmony_ci <120357966@qq.com> 1714976828 +0000
committer Gitee <noreply@gitee.com> 1714976828 +0000

!630 录屏过滤app自身声音 枚举项增加
Merge pull request !630 from zhangq444/masterBxxZtree ec1eeeef48e252184eb90629c7d4c86039f69934
parent a9a50e4d2f814400210913edca9da21222cd6e93
author hongzexuan <hongzexuan@huawei.com> 1714976417 +0800
committer hongzexuan <hongzexuan@huawei.com> 1714976417 +0800

【SDK】text接口补充

Signed-off-by: hongzexuan <hongzexuan@huawei.com>
Change-Id: I7a8bc16a915850fd34730330b2c58960d78f5a90
u|qx9tree 0e68848c01f05408f65b23007ab1b549d6f13b67
parent a9a50e4d2f814400210913edca9da21222cd6e93
parent cb3e7d0e890fe2c30cae0590a4f5afaebfb07f34
author openharmony_ci <120357966@qq.com> 1714967572 +0000
committer Gitee <noreply@gitee.com> 1714967572 +0000

!628 add hdr capi json
Merge pull request !628 from zjy/hdr]xMtree 7b65548ca81682b50270c74efa63a3a04fc07aa5
parent a9a50e4d2f814400210913edca9da21222cd6e93
author zhangqiang <zhangqiang342@huawei.com> 1714962703 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1714962703 +0800

20240506   录屏过滤app自身声音   枚举项增加

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
wuxOtree 0e68848c01f05408f65b23007ab1b549d6f13b67
parent a9a50e4d2f814400210913edca9da21222cd6e93
author xiaobjy <zhongjiyuan1@huawei.com> 1714910957 +0800
committer xiaobjy <zhongjiyuan1@huawei.com> 1714910957 +0800

add hdr capi json

Signed-off-by: xiaobjy <zhongjiyuan1@huawei.com>
Change-Id: I4af2f02785f48cb4e702685d61972cc00d3d599b
}=fdxItree 0913df8727ca151c24e156b97c02410f1ecb525c
parent a9a50e4d2f814400210913edca9da21222cd6e93
author guojing.325@qq.com <guojing.325@qq.com> 1714896819 +0800
committer guojing.325@qq.com <guojing.325@qq.com> 1714896819 +0800

NDK-CAPI : add NODE_IMAGE_ON_DOWNLOAD_PROGRESS

Signed-off-by: guojing.325@qq.com <guojing.325@qq.com>
!a3xLtree da8533a66c4d9050c55a5c3fd3e28eac90f60245
parent 0d6c38416ad3b279a30015025b0b57ae9adb1f9c
parent 307bf3eee477ac7a0b32240887c0e0bdb106b1c0
author openharmony_ci <120357966@qq.com> 1714891578 +0000
committer Gitee <noreply@gitee.com> 1714891578 +0000

!588 支持bindsocket对应的NDK
Merge pull request !588 from wuzh_iot/masterkdjxbtree 9e2356f10751c7b1849c1e1844bb23dd15afc028
parent 2de0364753771bd84420521f097b5edd4ddffa6a
parent f856ce7d62ca67efc7487afe318239816a002793
author openharmony_ci <120357966@qq.com> 1714829297 +0000
committer Gitee <noreply@gitee.com> 1714829297 +0000

!497 Add JSVM sourcemap&lock&iscallable&microtask API
Merge pull request !497 from suchongwei/masterTkŗxGtree bb115ff85b5f5bb69d4347348825dc942d8eb0c5
parent 4bae8c13a731fa9ea920994e4513cb2a7a62bb5d
parent a6d4467d9175e4fc47c72a96580d7a48decc40a5
author openharmony_ci <120357966@qq.com> 1714828263 +0000
committer Gitee <noreply@gitee.com> 1714828263 +0000

!625 [NDK] RelativeContainer API
Merge pull request !625 from lisitao/l_2Lb<xEtree c7e79261c176761a13c985d774ce52d5bd2c6ac4
parent 5f74610da504a0c68109db150dff305150697b3f
parent 6064abec3511b2993ab1206f92bacf456a517633
author openharmony_ci <120357966@qq.com> 1714824512 +0000
committer Gitee <noreply@gitee.com> 1714824512 +0000

!569 增加sourcetype和devicetype
Merge pull request !569 from kw/0421.c{xqtree 140c31b86c579f02e7ce5273be67dd9d1ccad78b
parent cb4900582b66f780a5f07a427db8edecb1521d93
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1714814656 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1714814656 +0800

[NDK] RelativeContainer API
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
|txjtree 624c83bde99e78b5727b90539f9b13b6f146112c
parent 2f9a44907a5d6c1b7d38dc472f68f1ce00f36ea1
parent e19a046c84a1e2e2cb12291f8021ae14a3441314
author openharmony_ci <120357966@qq.com> 1714809419 +0000
committer Gitee <noreply@gitee.com> 1714809419 +0000

!559 add new interface for surface type and app framework type
Merge pull request !559 from wanchao21/masternfx}tree 32465bf81014759eebfae31f2901c3c13da952b3
parent 38f15dc7587395684272a9fbc9f3ad802471418c
author Chongwei Su <suchongwei@huawei.com> 1712465847 +0800
committer Chongwei Su <suchongwei@huawei.com> 1714803896 +0800

Add JSVM sourcemap&lock&iscallable&microtask API

issue:https://gitee.com/openharmony/interface_sdk_c/issues/I9EFU5

Signed-off-by: Chongwei Su <suchongwei@huawei.com>
5F}1xRtree f2958c12882b17154ba98c06188d7c79ce70ffc6
parent df085295a42e57c21cd138d2a69a30c4536c7826
parent 67046db29fe5ebfc890757ee5d00b84b1064fecd
author openharmony_ci <120357966@qq.com> 1714739107 +0000
committer Gitee <noreply@gitee.com> 1714739107 +0000

!615 【NDK】5toD新增接口提交 
Merge pull request !615 from yyuanche/ndk_5toDm?x,tree a8931e1e18d8145b0457d47c8c2cbad0fefb729c
parent ed311ca88b3baa62876bce6911046eaf4df4bd43
author liyang <liyang782@huawei.com> 1714736994 +0800
committer liyang <liyang782@huawei.com> 1714736994 +0800

Screen capture ContentFilter API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
]x,tree 198ff9559f09e519e81f22aedcd287abdb7dc78f
parent 3104e3665757425078525654326e2f69ed1263d1
author liyang <liyang782@huawei.com> 1714736837 +0800
committer liyang <liyang782@huawei.com> 1714736837 +0800

Screen capture ContentFilter API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
O\x'tree 0acc5b5290160ce96ee7ac2ad133e581c8247df6
parent b506864fde2ea620a1eb5393efe850684f51192b
author yyuanche <yuancheng25@huawei.com> 1714401536 +0800
committer yyuanche <yuancheng25@huawei.com> 1714732358 +0800

【NDK】5toD新增接口提交
Signed-off-by: yyuanche <yuancheng25@huawei.com>
`d̑x!tree f99a480efe6a4408f1db71b47c8d37ee4f6037af
parent 23869923f03634740eae0e7c2abc07d90bb0ccf3
author yyuanche <yuancheng25@huawei.com> 1714618619 +0800
committer yyuanche <yuancheng25@huawei.com> 1714653189 +0800

【NDK】5toD接口补充
Signed-off-by: yyuanche <yuancheng25@huawei.com>
`əxYtree 8b7b104b86e5c01d437bff5049e38f2bbb555bfa
parent 38f15dc7587395684272a9fbc9f3ad802471418c
parent 3476d4a6ae0bc6fb0d9f8d9b4a5b2920d363dd0b
author openharmony_ci <120357966@qq.com> 1714492056 +0000
committer Gitee <noreply@gitee.com> 1714492056 +0000

!604 add tensor allocator api
Merge pull request !604 from chengfeng27/tensor-allocator-apiLix'tree 5661e3b54939172cb3688a85e82a4108760c844c
parent b506864fde2ea620a1eb5393efe850684f51192b
author yyuanche <yuancheng25@huawei.com> 1714401536 +0800
committer yyuanche <yuancheng25@huawei.com> 1714471989 +0800

【NDK】5toD新增接口提交
Signed-off-by: yyuanche <yuancheng25@huawei.com>
YcxUtree 7b62659140d85dea465f8f9e2e380f02bbe5de2a
parent f5019645a41cab93b0323c36627a1e4e2722848c
parent 62a26a27e3a023304132348aa4d810e764d18643
author openharmony_ci <120357966@qq.com> 1714471405 +0000
committer Gitee <noreply@gitee.com> 1714471405 +0000

!398 musl新增locale接口
Merge pull request !398 from wanzixuan/locale_add_interfacebkx]tree 4c5b476b4cf987cd4cfccb9ec1fc63d5d87b5c5b
parent 62a7f6a3ed45102b37119c7509f1b8cca335784f
parent fe8c7840d44caa78e173bfc22103196068544e7c
author openharmony_ci <120357966@qq.com> 1714469366 +0000
committer Gitee <noreply@gitee.com> 1714469366 +0000

!515 add namedPropertyData and indexedPropertyData
Merge pull request !515 from shilei91/master kxxtree 10b1a116712e303d389a9b960cde1b9e21c43801
parent 840aea3bf638d8f5982d566817ba9911f4ee4e5d
parent 62a7f6a3ed45102b37119c7509f1b8cca335784f
author wanchao21 <wanchao21@huawei.com> 1714463882 +0000
committer Gitee <noreply@gitee.com> 1714463882 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: wanchao21 <wanchao21@huawei.com>u<x6tree ac32211ec16004196189e2f052a6ec9f0ed03e7e
parent 1507950122d0f5ecfd6044c5ee154c2d354a02fa
author wanc361 <bluesky7417@126.com> 1713439501 +0800
committer wanc361 <bluesky7417@126.com> 1714463750 +0800

add new interface for surface type and app framework type

Signed-off-by: wanc361 <bluesky7417@126.com>
h\xxtree c874903ee6c591ef3b8d5c29fe2c83ecf600f9a9
parent 4593760ba054019f4a7a21f488efedaf5e0711a6
author wuzh981022 <wuzhuo6@huawei.com> 1714014292 +0800
committer wuzh981022 <wuzhuo6@huawei.com> 1714462129 +0800

add new NDK BindSocket

Signed-off-by: wuzh981022 <wuzhuo6@huawei.com>
TxFtree 37f98e36b309d49513c39e893207bb6bd6164281
parent c6554b4e24b05a72fc8df100ec984a05658b59c0
parent 6d256ede73e3acc9f398a18684b1d109195390ab
author openharmony_ci <120357966@qq.com> 1714460174 +0000
committer Gitee <noreply@gitee.com> 1714460174 +0000

!541 HiTraceChain添加接口
Merge pull request !541 from lixing/master]]e3x`tree 0b742dd59faf97a5a73c277e213f6bc09564117e
parent f4218405a3c74bc5f06b28f92519f5a786909827
parent 5eda5674adbce43adbeaa21f9d6cfe84cd329327
author openharmony_ci <120357966@qq.com> 1714459041 +0000
committer Gitee <noreply@gitee.com> 1714459041 +0000

!607 enum未加typedef会导致c文件编译失败
Merge pull request !607 from 马靖涛/20240429yxptree 563a8c41076dcecd01c0e9cbb5421ffc9c272825
parent b29803ab19cf6c9e00fe9d64ab4aee1fb3b32aa2
parent 2b7dcf41d5490580e9d3f5ef9fc1ce38ef16f36a
author openharmony_ci <120357966@qq.com> 1714447753 +0000
committer Gitee <noreply@gitee.com> 1714447753 +0000

!599 libclang.so路径修改和文件级统计工具文件路径固定
Merge pull request !599 from zhangwu/master؋xKtree e6dcc65c93fc79806f58fe6af5ec2230066f8b81
parent b506864fde2ea620a1eb5393efe850684f51192b
parent ff4e3dc682d49e60282c8378c401a4135fbd9f03
author openharmony_ci <120357966@qq.com> 1714399009 +0000
committer Gitee <noreply@gitee.com> 1714399009 +0000

!577 首帧buffer堆积需求
Merge pull request !577 from sqwlly/buffer_holdljx%tree d3b44c68c507739c9c3a50a99b1672727a0ae48e
parent 6b25b041944a3e909b326b0599013faed235ef85
author lixing0101 <lixing141@huawei.com> 1714396470 +0800
committer lixing0101 <lixing141@huawei.com> 1714396470 +0800

add @library/first introduce

Signed-off-by: lixing0101 <lixing141@huawei.com>
(Xqx\tree bdd699ce07ea3f3539dbcc3757392c64d8084d28
parent 8352d8a1b162269081f0a9f5a54abe3fccd2ea96
parent 298fa7e15528dbcbdaa38aaf67745ba9f9707f95
author openharmony_ci <120357966@qq.com> 1714391675 +0000
committer Gitee <noreply@gitee.com> 1714391675 +0000

!601 add interface OH_JSVM_Equals
Merge pull request !601 from 蒋群超/OH_JSVM_RelaxedEqualsmLxmtree 8f45abb9bae9c4deb01f2e686a3a7b524486497f
parent fe26f464558a53847ff96e0b650188e0da935638
author shilei <shilei91@huawei.com> 1713865379 +0000
committer shilei <shilei91@huawei.com> 1714374817 +0000

modify the callback of JSVM_PropertyHandlerConfigurationStruct

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Ide16718679dedfe32eee799522da426f0afdec11
ImrxPtree 5353902416f61892810c3fdef8b47b2810991012
parent a0db8dacb7b8173593af1927d8b70a984d42a9f0
parent a438f7fb5159152eafdbaeb6e9874e3adc2f0392
author openharmony_ci <120357966@qq.com> 1714372736 +0000
committer Gitee <noreply@gitee.com> 1714372736 +0000

!606 add font interfance change
Merge pull request !606 from 刘伟/font_name_0429fxStree 16c9fe64e1455e2d025350bdfc1b014f53f3b5ef
parent 42cfd2aa79d630fdb4ea94eab1b041c06b6526b0
parent b0c25780300fddb17316c26e9001a5503037bb03
author openharmony_ci <120357966@qq.com> 1714367578 +0000
committer Gitee <noreply@gitee.com> 1714367578 +0000

!583 图形渲染后端EGL扩展接口补齐
Merge pull request !583 from 钟柠/0424Wsxgtree 64e0898b682ce4ab0f37c0b806f0f8c64603cb06
parent 42cfd2aa79d630fdb4ea94eab1b041c06b6526b0
author m00472246 <majingtao1@huawei.com> 1714366802 +0800
committer m00472246 <majingtao1@huawei.com> 1714366802 +0800

enum未加typedef会导致c文件编译失败 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
>zx+tree 35e9ada8c73653e12821bb0c7673d179cf8ae6d4
parent 42cfd2aa79d630fdb4ea94eab1b041c06b6526b0
author lw19901203 <liuwei793@h-partners.com> 1714363261 +0800
committer lw19901203 <liuwei793@h-partners.com> 1714364081 +0800

font interfance change

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
Yɗx7tree 00f245c1151174e316b3b70ba6cf959f4dfc3d84
parent 77494817076963dd100b3e739a83b59d1406a465
author jiang-qunchao <jiangqunchao@huawei.com> 1714270709 +0800
committer jiang-qunchao <jiangqunchao@huawei.com> 1714361096 +0800

add interface OH_JSVM_Equals

Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com>
7+b>xatree eed121c409f6dbd193d145c52a12ece04fc443ad
parent e4db48ee5736793670f71e7ebad20bab04770d2e
parent 4fe2d2a09db3158d41ec5f395ceec981182d4eec
author openharmony_ci <120357966@qq.com> 1714360111 +0000
committer Gitee <noreply@gitee.com> 1714360111 +0000

!595 修正ContentSlot占位组件事件枚举值
Merge pull request !595 from lanshouren/work_0425CyzxDtree ef56487f49fcf433ff916a25df00f4732a9fbb0a
parent dbef538f252876b5c988cde27ca7b40b432bd4c9
author zhangwuf <zhangwu47@huawei.com> 1714121666 +0800
committer zhangwuf <zhangwu47@huawei.com> 1714357254 +0800

libclang.so路径修改和文件级统计工具文件路径固定

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
D|x=tree c41040e7254d61de57021650b89300d1b798763a
parent 6799daf4c309d68d6d0bb408ec2581f4ee552ab6
parent da481c319d0ede650d4d89c5c1006985c637d6cf
author openharmony_ci <120357966@qq.com> 1714327183 +0000
committer Gitee <noreply@gitee.com> 1714327183 +0000

!536 add image hdr capi
Merge pull request !536 from zjy/masterH]xItree fefb49164afb73b4534d06d399435e59c022c903
parent dd8aa237dac9a40a17432a22c660d5a7215ae6f3
parent 0724f42e860f7128850c508917b21caaf1408c6b
author openharmony_ci <120357966@qq.com> 1714312936 +0000
committer Gitee <noreply@gitee.com> 1714312936 +0000

!591 解决ohos-sdk编译报错
Merge pull request !591 from Mr.zhao/master|hkx^tree 30805a7aaa0dd6e945e448898483bd737693c5dd
parent 0b4141502e3b1ee19598b0a0c97defa9faaf9be3
parent c474b37ca86a7f59a03fb3335833be0219c29cf2
author openharmony_ci <120357966@qq.com> 1714311591 +0000
committer Gitee <noreply@gitee.com> 1714311591 +0000

!572 drawing interface sdk_c 0428
Merge pull request !572 from 刘伟/drawing_interfaceSdkC_0428kxwtree 1448b044dcfdb9f0c4fa4cf30bb9c77a01db9ff5
parent 6fb2edbc0ce2d587cf10f15c6a2ddc65f35752f5
author wanzixuan <wanzixuan@huawei.com> 1710150610 +0000
committer wanzixuan <wanzixuan@huawei.com> 1714309056 +0800

add new interface for locale
issue:https://gitee.com/openharmony/interface_sdk_c/issues/I97KGA?from=project-issue

Signed-off-by: wanzixuan <wanzixuan@huawei.com>
y~gx*tree 3e70febf5e3218a5dfec08f4d4dd74b4da091463
parent 0b4141502e3b1ee19598b0a0c97defa9faaf9be3
author chengfeng27 <chengfeng27@huawei.com> 1714294647 +0800
committer chengfeng27 <chengfeng27@huawei.com> 1714298634 +0800

add tensor allocator api

Signed-off-by: chengfeng27 <chengfeng27@huawei.com>
9]xhtree f83de47fe73f7335cfcaf1efe2d28d56daac2f73
parent 35a785623fd5e03d0d5cdc5372219278b9210784
parent 7e8374cf458b9ab97d6755b6f2caffac03806144
author openharmony_ci <120357966@qq.com> 1714293533 +0000
committer Gitee <noreply@gitee.com> 1714293533 +0000

!586 add ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED for custom scheme
Merge pull request !586 from mmx/masterzlxntree bf2ecb7aff992334cec0b28368cba72ca2c37148
parent 596bf2c0461ae79b57bbc0530296142805249d6d
parent 41e0bb2131eba25b0e0666638cd7895dccd1bedc
author openharmony_ci <120357966@qq.com> 1714283053 +0000
committer Gitee <noreply@gitee.com> 1714283053 +0000

!553 【泛Sensor】环境光传感器上报参数扩展
Merge pull request !553 from lixiangpeng5/ambient_lightvkxHtree 8eef79ffaff0ee0625983562bc18e84987227542
parent 5e07bb682cf0c7bc3828450e5bdd500f26093470
parent 85c46b97def475ba53ce1a56a96ed65f308e2709
author openharmony_ci <120357966@qq.com> 1714276251 +0000
committer Gitee <noreply@gitee.com> 1714276251 +0000

!579 补充nativewindow接口json
Merge pull request !579 from 刘瓒/jsonE.hxRtree 3212f9eb279872172934c0935cdab3825da1b4a4
parent 77494817076963dd100b3e739a83b59d1406a465
parent c1dd0d722d1c12e8cb9e76f6cf9bd04f97d6c997
author openharmony_ci <120357966@qq.com> 1714274029 +0000
committer Gitee <noreply@gitee.com> 1714274029 +0000

!396 expose some libc interface
Merge pull request !396 from lubinglun/add_interface%fx_tree b846294528bbbf1a3c1873dcb4014d5f4db6afad
parent a5014265c1b5e12a2f46ac6200688234bd9529ff
author huchang <huchang4@huawei.com> 1711184531 +0800
committer huchang <huchang4@huawei.com> 1714272776 +0800

rename enum name of audio stream privacy type

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Ib0a59c5bfcdf76ed0c9686c1f0ec6cd2231b7c72
m^xYtree 2fa7eda312194b57c2be91d40c66f9a68c0c6b86
parent 0bec652f4e95e87e4e214619bb4d4c3b741cd36e
author huchang <huchang4@huawei.com> 1710163802 +0800
committer huchang <huchang4@huawei.com> 1714272776 +0800

deprecate playback capture in audio fwk

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I018fd9b6d00684e7b499f1490994c0f3e89af8b9
jxctree f9367f5a21f02f104e61293d4a3e929b1d6ca220
parent 77494817076963dd100b3e739a83b59d1406a465
author huchang <huchang4@huawei.com> 1710162458 +0800
committer huchang <huchang4@huawei.com> 1714272775 +0800

add privacy type for playback capture in AudioKit

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I200d163e76ab51baae70642701751057f3660da4
kxFtree 0545f3b0bc2eb197fd90a11c6ce1b8aa046dc6ec
parent df88c5f0396af364941ef854b3db69c02b5857f4
parent 0ac72408e8a446caec435365f136fbf6e7fd5b23
author openharmony_ci <120357966@qq.com> 1714239840 +0000
committer Gitee <noreply@gitee.com> 1714239840 +0000

!596 位图新增NDK接口
Merge pull request !596 from 姚朱鹏/pr_582'kLxItree 5ee4a85ccd9b6e823deee0678e38600386efa7d3
parent 68e14aa94898227e0b07bbaf0731ac99d2e072f5
parent 2f7f52bbeeecd43722d8701f01906067b0b814d5
author openharmony_ci <120357966@qq.com> 1714226541 +0000
committer Gitee <noreply@gitee.com> 1714226541 +0000

!571 新需求：新增base_ndk
Merge pull request !571 from shilong/masternixPtree c3cb7de59bca03c3da6b075802eda09a57a68bc4
parent 16c3085488be0ace901c44f0dea6af9595c9b68d
parent ed0c4474f00f0749887ac46733372220981b0b9a
author openharmony_ci <120357966@qq.com> 1714191248 +0000
committer Gitee <noreply@gitee.com> 1714191248 +0000

!540 NDK C-API add xcomponent convert
Merge pull request !540 from firminly/masterieJxWtree 27949300686f9c6797c585a8012a78005adb2564
parent dbef538f252876b5c988cde27ca7b40b432bd4c9
parent fb2166b8ab404e348966e470c46d43782d055ab5
author openharmony_ci <120357966@qq.com> 1714135096 +0000
committer Gitee <noreply@gitee.com> 1714135096 +0000

!597 适配pixelmap_native.h路径变化修改
Merge pull request !597 from 朱锐/master)Gqx1tree e54baeb7134ca658adb3e2c0b21065e63596c3b8
parent 3df93501c8692197c135b85e7849520d5f7f0e4c
author lw19901203 <liuwei793@h-partners.com> 1713942486 +0800
committer lw19901203 <liuwei793@h-partners.com> 1714128675 +0800

drawing interface sdk_c 0428

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
Z(xtree d2c725dde89f4bc51b2a2f2081a36cc7c863ec27
parent dbef538f252876b5c988cde27ca7b40b432bd4c9
author zhongning5 <zhongning5@huawei.com> 1714117435 +0800
committer zhongning5 <zhongning5@huawei.com> 1714117435 +0800

add egl api

Signed-off-by: zhongning5 <zhongning5@huawei.com>
/Xx1tree 116598f6904a67d0852f14fac00a269c40bf2a15
parent dbef538f252876b5c988cde27ca7b40b432bd4c9
author liyang <liyang782@huawei.com> 1714114224 +0800
committer liyang <liyang782@huawei.com> 1714114236 +0800

avscreencapture支持pc端排除指定windowID窗口

Signed-off-by: liyang <liyang782@huawei.com>
{&i5x,tree 27949300686f9c6797c585a8012a78005adb2564
parent dbef538f252876b5c988cde27ca7b40b432bd4c9
author z00428214 <zhurui17@huawei.com> 1714113847 +0800
committer z00428214 <zhurui17@huawei.com> 1714113847 +0800

适配pixelmap_native.h路径变化修改

Signed-off-by: z00428214 <zhurui17@huawei.com>
axWtree ce88c0657d9bbc1aa944b29bb18ac59e661e0f32
parent 825187f29d06174d79b42800b8928a76f7385f75
parent 58daa5d9b922fc09aa6b37f6947effe5563a0f16
author openharmony_ci <120357966@qq.com> 1714111662 +0000
committer Gitee <noreply@gitee.com> 1714111662 +0000

!593 修改NODE_TEXT_LINE_SPACING位置
Merge pull request !593 from wangdantong/sdk_c425jМxtree 2e1a074a6d44556637ec7a5966df24810da45374
parent 7357db9a5b33a99217efb64197fb5ed330513d4f
author yaozhupeng <yaozhupeng@huawei.com> 1714107574 +0800
committer yaozhupeng <yaozhupeng@huawei.com> 1714107574 +0800

add pixelmap ndk

Signed-off-by: yaozhupeng <yaozhupeng@huawei.com>
	Z'x;tree 0fca530134ba22629f281bf12272448165dc3194
parent ce163763f6d2bf163779645846f4143caeac7223
parent 844049fbb73ee43dbbea4efae4f63836a3a73621
author wzr <wangzhiru1@huawei.com> 1713516871 +0800
committer wzr <wangzhiru1@huawei.com> 1714101625 +0800

Merge branch 'master' of gitee.com:WangZhiru1994/interface_sdk_c
h_x tree 6756f7c4637ed47f2e85739134667fa165c2d23b
parent df4da3576dde3028c49ed5b1ae13942df45cb9b0
author kw <wangyuqi30@huawei.com> 1714096375 +0800
committer kw <wangyuqi30@huawei.com> 1714096375 +0800

clean code

Signed-off-by: kw <wangyuqi30@huawei.com>
sM&xtree 179b1eb27175dbb284cfbdeb17e2154f90743f3d
parent 6373396e59ccda78d4c963a60508258a19938a4d
author kw <wangyuqi30@huawei.com> 1714096043 +0800
committer kw <wangyuqi30@huawei.com> 1714096043 +0800

delete sourcetyupe

Signed-off-by: kw <wangyuqi30@huawei.com>
OPSxtree c2d0991f5f3945ddf30fb8293f7baa272e5c532f
parent 3df93501c8692197c135b85e7849520d5f7f0e4c
author shilong <dragon.shilong@huawei.com> 1713769013 +0800
committer shilong <dragon.shilong@huawei.com> 1714049030 +0800

新增ddk_base

Signed-off-by: shilong <dragon.shilong@huawei.com>
Z[xZtree 195df823dbd2a0c16c88143acc798e9101d8010a
parent fd8b138a6a6d3f1ad87584fc8e8ef328a64674b6
author lixiangpeng5 <lixiangpeng5@huawei.com> 1714048503 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1714048872 +0000

fix by review

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: I0fb36a12f16cc6c5263956ebcea7d8f843e55c6a
plxBtree cf1f5154cf0672b5f85fcb4d9aa2f091a07353eb
parent 9259a29412f583ff342aa98f58f1f011379d97d9
parent 8cae633ea7ea8317701b789027c1a44f61cd092a
author openharmony_ci <120357966@qq.com> 1714048809 +0000
committer Gitee <noreply@gitee.com> 1714048809 +0000

!549 增加vvc/srt key
Merge pull request !549 from 杨俊晖/masterJeEx#tree c2b4d13c211d60479580a45010f70f48af630de5
parent 7357db9a5b33a99217efb64197fb5ed330513d4f
author lixing0101 <lixing141@huawei.com> 1713947365 +0800
committer lixing0101 <lixing141@huawei.com> 1714048622 +0800

add hitracechain interface

Signed-off-by: lixing0101 <lixing141@huawei.com>
zWʚxJtree ffcda959a00e38160b4b397af6a2ff3781bfec60
parent 9259a29412f583ff342aa98f58f1f011379d97d9
author lanshouren <lanshouren@huawei.com> 1714043371 +0800
committer lanshouren <lanshouren@huawei.com> 1714043371 +0800

fix typos

Signed-off-by: lanshouren <lanshouren@huawei.com>
Change-Id: I2aab1a1e15d4f1fdd215c5abfe4753da1c038b1a
bgҘxHtree 412909e88a5696386831ae3717de94ed9d608888
parent ec01747738bf557a2f692630f6c72ba7b1d143b1
author 刘瓒 <liuzan9@huawei.com> 1714040395 +0000
committer 刘瓒 <liuzan9@huawei.com> 1714040538 +0000

补充nativewindow接口json

Signed-off-by: 刘瓒 <liuzan9@huawei.com>
Change-Id: I500f2fe3cc99591eb8d6bc779deb6e9105b8d06f
z<lʟxtree 9b6184b885d14eeb0cec7ee4419211deb10b8d34
parent fd1f36d073aa160290b74f4624976e9ee660143d
author sqwlly <shiqiwei4@huawei.com> 1714036904 +0000
committer sqwlly <shiqiwei4@huawei.com> 1714036904 +0000

add set buffer hold interface Signed-off-by: s30029175 <shiqiwei4@huawei.com>

Signed-off-by: sqwlly <shiqiwei4@huawei.com>
Change-Id: I8ddfb66ffd67b24fce978cae47a615ec8946ad08
Kwx`tree 9693bc3acaa7db685107ede6c5846d979e474b3d
parent 4593760ba054019f4a7a21f488efedaf5e0711a6
author conewang <wangdantong@huawei.com> 1714036665 +0000
committer conewang <wangdantong@huawei.com> 1714036665 +0000

修改NODE_TEXT_LINE_SPACING位置

Signed-off-by: conewang <wangdantong@huawei.com>
Change-Id: Id3c2a63c92309777f2909542b9b26133264d43d2
pex tree c03809b4239203239f9692ce6c74f4e4e91895c4
parent 9259a29412f583ff342aa98f58f1f011379d97d9
author zhaohang <zhaohang44@huawei.com> 1714029779 +0800
committer zhaohang <zhaohang44@huawei.com> 1714029779 +0800

解决ohos-sdk编译报错

Signed-off-by: zhaohang <zhaohang44@huawei.com>
t^xhtree ed492380fef68a819f4d709114759ed043e7f51c
parent 4593760ba054019f4a7a21f488efedaf5e0711a6
parent f00159576ecdf638f616d5ca5054009ff4d3632e
author openharmony_ci <120357966@qq.com> 1714021689 +0000
committer Gitee <noreply@gitee.com> 1714021689 +0000

!581 新增extern "C"宏定义 __BEGIN_DECLS 和 __END_DECLS
Merge pull request !581 from 仇玉加/masterOvsx<tree 8352b7204ffaec5b001cf69e33bb0634aeb55aaf
parent fe26f464558a53847ff96e0b650188e0da935638
author 仇玉加 <qiuyujia1@huawei.com> 1713866907 +0800
committer 仇玉加 <qiuyujia1@huawei.com> 1714013660 +0800

添加宏定义extern "C", __BEGIN_DECLS和__END_DECLS

Signed-off-by: 仇玉加 <qiuyujia1@huawei.com>
pUxTtree 11f074140bc2a756a82e926914fdf763ab1abea3
parent 00c1cd9e444ea7ae2bf35b15d1af87ca4a5297de
parent a8f9f230f7b69c73e21188f48868523fc023ec3f
author openharmony_ci <120357966@qq.com> 1713962077 +0000
committer Gitee <noreply@gitee.com> 1713962077 +0000

!538 NDK头文件导出路径修改
Merge pull request !538 from yangfan/fix_pathError=qєxtree 89a1f32f417a6534c56d476dc8255ac6b1f86dad
parent 00c1cd9e444ea7ae2bf35b15d1af87ca4a5297de
author liyi0309 <liyi58@huawei.com> 1713961462 +0800
committer liyi0309 <liyi58@huawei.com> 1713961462 +0800

add C-API xcomponent convert
Signed-off-by: liyi0309<liyi58@huawei.com>
k<Sx\tree 48668014196d7d66c78b3f26740c37bc861850a1
parent 191fe819366a5244e5e31e1ec429a434b43039ae
parent 43c5aab488be1fda567949de752b94b3a348e24c
author openharmony_ci <120357966@qq.com> 1713951688 +0000
committer Gitee <noreply@gitee.com> 1713951688 +0000

!567 增加ContentSlot站位组件的相关能力
Merge pull request !567 from Zhiqiang/mastergtӗxxtree e1f6f0fe7b74fe8bac5bca51bd04e7b8351b42d1
parent fe26f464558a53847ff96e0b650188e0da935638
author some-one-mmx <maominxian1@huawei.com> 1713949971 +0000
committer some-one-mmx <maominxian1@huawei.com> 1713949971 +0000

add ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED for custom scheme

Signed-off-by: some-one-mmx <maominxian1@huawei.com>
Change-Id: I65212f12692c1eabd6dc47298df8a3dfde9a488f
WZyPxtree 6dd5bbf7b1589a8469173476136575ed1a91a05a
parent 1e9d9d11b744a92f9756aedb564ec15946862095
author yangfan <yangfan174@huawei.com> 1713946968 +0800
committer yangfan <yangfan174@huawei.com> 1713946968 +0800

格式修改

Signed-off-by: yangfan <yangfan174@huawei.com>
PVxStree 353c0098c49d381e0a3a1a39405f3a923528582f
parent ec01747738bf557a2f692630f6c72ba7b1d143b1
parent abdad26bb175cd62824c4d50dfd7dfb7dc973d8f
author openharmony_ci <120357966@qq.com> 1713944622 +0000
committer Gitee <noreply@gitee.com> 1713944622 +0000

!566 修复__unused重复定义的错误
Merge pull request !566 from zzulilyw/masterpxtree 0785062a3651e30263fe49a3f210a0764cc1e1a7
parent acc12c8adc0b5d72abb9a5be8febf6307e6a3588
author yangfan <yangfan174@huawei.com> 1713944474 +0800
committer yangfan <yangfan174@huawei.com> 1713944474 +0800

编译错误

Signed-off-by: yangfan <yangfan174@huawei.com>
Wx"tree 3d0a18cf30c5e981af14428a271ccfd0c0e34853
parent affc93c1af54cab26b018b101a63a049e7c717e4
author yangfan <yangfan174@huawei.com> 1713940264 +0800
committer yangfan <yangfan174@huawei.com> 1713940264 +0800

dest_dir中增加image子目录

Signed-off-by: yangfan <yangfan174@huawei.com>
PaxUtree 19e6e24ed543d5fa9fa14bc93644fd557ababf59
parent ec01747738bf557a2f692630f6c72ba7b1d143b1
parent affc93c1af54cab26b018b101a63a049e7c717e4
author yangfan <yangfan174@huawei.com> 1713939932 +0800
committer yangfan <yangfan174@huawei.com> 1713939932 +0800

Merge commit 'refs/pull/538/head' of https://gitee.com/openharmony/interface_sdk_c
C+ixqtree 419b29d2b2bcbb585837e5e018e84e744e7a0c36
parent 400486fc7cbe8b8513d027bc14aff3a1463af1af
author sqwlly <shiqiwei4@huawei.com> 1713853673 +0000
committer sqwlly <shiqiwei4@huawei.com> 1713924569 +0000

set buffer hold Signed-off-by: s30029175 <shiqiwei4@huawei.com>

Signed-off-by: sqwlly <shiqiwei4@huawei.com>
Change-Id: I83052bf571bd697d67851e06ccf8c08c272b913c
qx/tree 2433032ccb003162f793c32c011d73c7765e5650
parent 8e509a7586723d19e97e75dd4d9e4528752de35a
author lubinglun <lubinglun@huawei.com> 1713923676 +0000
committer Gitee <noreply@gitee.com> 1713923676 +0000

update third_party/musl/ndk_musl_include/dlfcn.h.

Signed-off-by: lubinglun <lubinglun@huawei.com>`cx0tree 6b4c6e9133d8c93677ff60e96ccc2ee062bbf16d
parent bd47e0c6dad2ba5429a177fbb900d5a7ea1f80e6
author lubinglun <lubinglun@huawei.com> 1713923558 +0000
committer Gitee <noreply@gitee.com> 1713923558 +0000

update third_party/musl/ndk_musl_include/unistd.h.

Signed-off-by: lubinglun <lubinglun@huawei.com>	Dcx0tree 89ce65816b3aea7d42f27c6d1a2129c8edbd0eb3
parent e1460270e7debb80519674d2b004083e8f7b413c
author lubinglun <lubinglun@huawei.com> 1713923442 +0000
committer Gitee <noreply@gitee.com> 1713923442 +0000

update third_party/musl/ndk_musl_include/unistd.h.

Signed-off-by: lubinglun <lubinglun@huawei.com>bxxstree 98d8bf7a6242549f14d9dde33eaecada00fd499a
parent 400486fc7cbe8b8513d027bc14aff3a1463af1af
author lubinglun <lubinglun@huawei.com> 1713841898 +0800
committer lubinglun <lubinglun@huawei.com> 1713922929 +0800

expose libc interface:dlvsym,crypt,eaccess

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/I97JTK

Signed-off-by: lubinglun <lubinglun@huawei.com>
|
xftree 0caafa8e0a4c186d2235f113f5825c08b859a809
parent 8bd66b89297b86809a268db0d08f3c1b85f7f863
parent aa85456522cc20c2f90bc4529da484774a614cb6
author openharmony_ci <120357966@qq.com> 1713880978 +0000
committer Gitee <noreply@gitee.com> 1713880978 +0000

!335 window add keyEvent Filter Callback ndk interface
Merge pull request !335 from zhouchengchao/master(mxxtree 4da85701e3c91a8de1553bd75fe3465de84f03dd
parent 45452b0101fda40dd8ae8804ea35e62adb5b7d76
author Zhiqiang <yuzhiqiang5@huawei.com> 1713630724 +0800
committer Zhiqiang <yuzhiqiang5@huawei.com> 1713875073 +0800

add json.fix the format issue. update the format. add napi method. add node content related structure/interface

Signed-off-by: Zhiqiang <yuzhiqiang5@huawei.com>
"{xytree 6e31733eeee045a1016d0948d6f07ce9564882ac
parent eb58df35179844a67edcdc0ad779f20766c10774
parent 0f832f4795aebb1c95678e3640693323cb5d5c36
author openharmony_ci <120357966@qq.com> 1713872744 +0000
committer Gitee <noreply@gitee.com> 1713872744 +0000

!580 drm 新增获取插件uuid和name的接口，播放框架新增获取drm信息的接口
Merge pull request !580 from baoxy92/master(}xLtree b0af58abf1b8e95611ba31078182100ce32334e2
parent fe26f464558a53847ff96e0b650188e0da935638
parent 2b5f37449c4e42bc6f6a3c059c83286ff16e2927
author openharmony_ci <120357966@qq.com> 1713868452 +0000
committer Gitee <noreply@gitee.com> 1713868452 +0000

!377 inform for local data changed 
Merge pull request !377 from LeiiYB/masterbwx0tree 9319a4b61298fe5709d84b2caf3417d4ce59de55
parent 782314953ae982f45c4525d4faeed40cff8150b9
author baoxy92 <baoxianyue@hisilicon.com> 1713866653 +0000
committer Gitee <noreply@gitee.com> 1713866653 +0000

update multimedia/player_framework/avplayer.h.

Signed-off-by: baoxy92 <baoxianyue@hisilicon.com>P_ax]tree 413e83f287bbf774f9a740c5dd12f3585797a8f3
parent fe26f464558a53847ff96e0b650188e0da935638
author bao92 <baoxianyue@hisilicon.com> 1713866374 +0800
committer bao92 <baoxianyue@hisilicon.com> 1713866374 +0800

drm 新增获取插件uuid和name的接口，播放框架新增获取drm信息的接口

Signed-off-by: bao92 <baoxianyue@hisilicon.com>
xotree 473507fb8bbdbd9fb2d00c794aa0ce5885ff108f
parent 400486fc7cbe8b8513d027bc14aff3a1463af1af
parent d56c529d2025223fa78577ee25a8d4429583ebde
author openharmony_ci <120357966@qq.com> 1713842753 +0000
committer Gitee <noreply@gitee.com> 1713842753 +0000

!575 NDK C-Api OH_ArkUI_GestureEvent_GetRawInputEvent 接口暴露
Merge pull request !575 from aryawang/48master?_uDxYtree cbf660b5a899ec09515407580022d7d5241e19a0
parent 8bf085d72159b8d838be46a4c2875de75e1f8e75
author lixiangpeng5 <lixiangpeng5@huawei.com> 1713788619 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1713788619 +0000

fix by check

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: I01ecbf496ee503b6daa2f615e88eaf9e600cc6f3
3Jk xktree 8404a9ca796d58f62025b794470232e40ee3fd2d
parent dbc5949baba2d0e237b57f8216ed2b8b4421dd72
author aryawang <wangcaihui@huawei.com> 1713785485 +0000
committer aryawang <wangcaihui@huawei.com> 1713785485 +0000

NDK C-Api OH_ArkUI_GestureEvent_GetRawInputEvent

Signed-off-by: aryawang <wangcaihui@huawei.com>
Change-Id: Idbf977531a2a5581b9d0fe96ca4608a192ec295b
qxKtree 60212db977b9eba2a7c9062b8cd62429260cf99f
parent 3df93501c8692197c135b85e7849520d5f7f0e4c
parent 23f40327d95fb1286219240147ab4c68e420d554
author openharmony_ci <120357966@qq.com> 1713774323 +0000
committer Gitee <noreply@gitee.com> 1713774323 +0000

!568 Asset新增数据库字段
Merge pull request !568 from 符子坤/masterlxtree 62fc25e440144a92a2017b1a2e68fd17c90c93e0
parent 3df93501c8692197c135b85e7849520d5f7f0e4c
author kw <wangyuqi30@huawei.com> 1713687170 +0800
committer kw <wangyuqi30@huawei.com> 1713687170 +0800

add devicetype and sourcetype

Signed-off-by: kw <wangyuqi30@huawei.com>
Sxtree 60212db977b9eba2a7c9062b8cd62429260cf99f
parent 3df93501c8692197c135b85e7849520d5f7f0e4c
author fuzikun <fuzikun@huawei.com> 1713682613 +0800
committer fuzikun <fuzikun@huawei.com> 1713684414 +0800

add asset tag

Signed-off-by: fuzikun <fuzikun@huawei.com>
QxWtree 80b236cd32bb498a82cda10a5e576a51d364f7b6
parent 1900b5f4fe1f59e9f55111905580e18589a3d217
parent 58ed515f774a8995c8f4aff524ab413186ce687b
author openharmony_ci <120357966@qq.com> 1713626880 +0000
committer Gitee <noreply@gitee.com> 1713626880 +0000

!555 stdio.h add include stdint.h
Merge pull request !555 from guzhihao4/fdsan_add_stdintgxctree 6da7f52745a33309faf3887cf0909448f7a5e6a1
parent 98232d463b137e5f397252314a7ab18d00114fa6
parent 3973c803d96a762b2c704fbb5d25756df29cf463
author openharmony_ci <120357966@qq.com> 1713620725 +0000
committer Gitee <noreply@gitee.com> 1713620725 +0000

!513 添加Text组件lineSpacing属性C接口
Merge pull request !513 from wangdantong/c_line_spacing|txxtree a45447817468df87923ed427b3c26feabe8b318f
parent 3f687d5a664fce38a13f31b590036bc5a5d3dc36
author zzulilyw <liuyawei10@huawei.com> 1713608579 +0800
committer zzulilyw <liuyawei10@huawei.com> 1713608579 +0800

Fix redefined error
Issue: https://gitee.com/openharmony/third_party_musl/issues/I9AILH
Build & Boot devices & xts

Signed-off-by: zzulilyw <liuyawei10@huawei.com>
jzx8tree 45c9ed14c23ccc459987f5dbbbbd240f79ac780b
parent 3f687d5a664fce38a13f31b590036bc5a5d3dc36
parent 0245b0f2d37a0c6a9d48b2edaac69a69abfab3eb
author openharmony_ci <120357966@qq.com> 1713607738 +0000
committer Gitee <noreply@gitee.com> 1713607738 +0000

!557 codecheck
Merge pull request !557 from guoxing/master_ x_tree 7741bcec6795038f99260114d8ac1d9a1016b468
parent 9ecccd763c94dbd1edf28f3a67323733cba1c668
parent 3f687d5a664fce38a13f31b590036bc5a5d3dc36
author lixiangpeng5 <lixiangpeng5@huawei.com> 1713602564 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1713602564 +0000

Merge branch 'master' of https://gitee.com/openharmony/interface_sdk_c into ambient_light

Change-Id: Ifb284c1d5337c51fca3e469e2e4e43bca43e7f37
NxYtree ae6f6040f1f1c2c3b4143ebbad85645679da9b6a
parent c96d3c0e9fcc92b54fa2f3942281f079a41d7aed
author lixiangpeng5 <lixiangpeng5@huawei.com> 1713602301 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1713602301 +0000

fix by check

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: I74b700a133b342850517b7561943e747119683fb
j=x@tree e14385c4d21708b20e4e5e8ba718f632074ae359
parent 75115748fc3648f0882ba60121c8d2f439dedc07
parent 356e3d80a08927138a29ad7471bc4cdab5767898
author openharmony_ci <120357966@qq.com> 1713599609 +0000
committer Gitee <noreply@gitee.com> 1713599609 +0000

!510 端云加解锁
Merge pull request !510 from lvcong_oh/mastercxdtree e23290cac2b348a7970aee581f311645a488f890
parent 5323abc1f546f377993caddcca1ebd8215d98643
parent 546b63a48c027889aad558a081596bcfb54506d4
author openharmony_ci <120357966@qq.com> 1713597117 +0000
committer Gitee <noreply@gitee.com> 1713597117 +0000

!390 napi支持向主线程提交指定优先级的任务
Merge pull request !390 from shilei91/master|ʜxltree 2017d57e3e20fd2930f989d72e38e11815ecd7d1
parent c9ec513a51289dbb77e6fb912a0f2bd62414259d
parent 6e553c9fce469f5a4765022c606e2cd5bbe78f95
author openharmony_ci <120357966@qq.com> 1713584834 +0000
committer Gitee <noreply@gitee.com> 1713584834 +0000

!486 add BasicServicesKit/os_account.h os_account_common.h CAPI 
Merge pull request !486 from jidong/dev040101Fnnxqtree 2017d57e3e20fd2930f989d72e38e11815ecd7d1
parent 6bfac6f7114bcbd7fc68e4832b7e3abf89709911
parent c9ec513a51289dbb77e6fb912a0f2bd62414259d
author jidong <jidong4@huawei.com> 1713536563 +0000
committer Gitee <noreply@gitee.com> 1713536563 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into dev040101

Signed-off-by: jidong <jidong4@huawei.com>sYxQtree b47efc560a178692bf338e4348f21fef13ea73ae
parent a7bad8d6b45337f2586cf0b7dfe2213f51933cd0
parent 5f8479700a91e5576c334b95d381ef07e57cb839
author openharmony_ci <120357966@qq.com> 1713534955 +0000
committer Gitee <noreply@gitee.com> 1713534955 +0000

!478 打印子系统导出CAPI接口
Merge pull request !478 from liuwenfeng/masterlo|x`tree 42d2f8f2e9f9a63d843de39211fa61148a479f44
parent b05358300e8bc3133e758bc7dced305cb1cdf2c0
parent d02cd374bc5124b01e949a22ebdf11fccee546f7
author openharmony_ci <120357966@qq.com> 1713521222 +0000
committer Gitee <noreply@gitee.com> 1713521222 +0000

!547 feat：add new interfance of shadow layer
Merge pull request !547 from 刘伟/shadowlayer0417Cnxwtree 758f0deab86ec326b7ea91824fd38ba54b0e7567
parent 88a1c3f57fd54de2db6f7beb6470337c14bcef57
parent 0ee3bf9c6844c16c227dd20438cbf2cfd77974bd
author openharmony_ci <120357966@qq.com> 1713519908 +0000
committer Gitee <noreply@gitee.com> 1713519908 +0000

!527 Add c interface related audio_device, audio_common, audio_routing_manager
Merge pull request !527 from Li Yuhang/add_c_interface_0412,{xtree 351ac5554c520c2caaffedcf552fe3716c152363
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author wzr <wangzhiru1@huawei.com> 1711076506 +0800
committer wzr <wangzhiru1@huawei.com> 1713516821 +0800

Add TEE KIT API to SDK.

Signed-off-by: wzr <wangzhiru1@huawei.com>
{Qxtree 8a5a71b522b86a9a94492afefa5eee0cd56993e7
parent 103000d577bd42136e112ca5e2d2fc092598c1de
author maoyong <maoyong5@huawei.com> 1713510833 +0800
committer maoyong <maoyong5@huawei.com> 1713510833 +0800

update syscap format

Signed-off-by: maoyong <maoyong5@huawei.com>
MmUxUtree 501002952076f9fab8dd20ea26f74b1f50ea83c4
parent ecbbbf5f1c2d86352911e3dd3f349e6e77a83b61
parent d5d3a9782c82d5b887ac876538a944990a42ed3b
author openharmony_ci <120357966@qq.com> 1713506303 +0000
committer Gitee <noreply@gitee.com> 1713506303 +0000

!528 【NDK】CAPI-接口问题修复
Merge pull request !528 from yyuanche/capi_adjusthnxLtree 648dc5faaa30bf950d4ed0b48498b3ff9a1e3da8
parent 061c037d4f92003e2d3c2ae8b8d6c16ac3ad1a80
parent 9f828a8d839117776706f6898f541e749bd18f52
author openharmony_ci <120357966@qq.com> 1713497547 +0000
committer Gitee <noreply@gitee.com> 1713497547 +0000

!542 修改命名冲突接口
Merge pull request !542 from 刘瓒/nativewindow~wnxgtree 1256b7bff06cca0e1ffdd2b11c06507a801e0907
parent 1507950122d0f5ecfd6044c5ee154c2d354a02fa
parent 0e0f9762c6c4bd662e898e5502c7cebec31541ea
author openharmony_ci <120357966@qq.com> 1713495397 +0000
committer Gitee <noreply@gitee.com> 1713495397 +0000

!512 expose fd_chk interface to support checking select fd
Merge pull request !512 from lubinglun/fortifyNo/x:tree 8fafe5611ba17fe027f7a8e60ce8e9ee7ce2f542
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
author lw19901203 <liuwei793@h-partners.com> 1713322644 +0800
committer lw19901203 <liuwei793@h-partners.com> 1713492021 +0800

feat:add nem instrance of shade layer

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
E^ܖxtree d3d35167348e6723d852a5cc2a9ac842833aad02
parent 1507950122d0f5ecfd6044c5ee154c2d354a02fa
author w00818794 <wenyuce@huawei.com> 1713490359 +0000
committer w00818794 <wenyuce@huawei.com> 1713491073 +0000

Async JSB 接口修改

Signed-off-by: w00818794 <wenyuce@huawei.com>
DUx	tree e396c30974bdb7c31a41fdff0ac5eff2ce0b2b7e
parent 1507950122d0f5ecfd6044c5ee154c2d354a02fa
author guoxing <guoxing22@huawei.com> 1713435715 +0000
committer guoxing <guoxing22@huawei.com> 1713435715 +0000

codecheck

Signed-off-by: guoxing <guoxing22@huawei.com>
?SRҚxetree c7d827a4ff4ceb8a16e449af71a77a5e8a50c550
parent 45452b0101fda40dd8ae8804ea35e62adb5b7d76
author guzhihao4 <guzhihao4@huawei.com> 1713423961 +0800
committer guzhihao4 <guzhihao4@huawei.com> 1713432473 +0800

stdio.h add include stdint.h

Issue:https://gitee.com/openharmony/interface_sdk_c/issues/I9HR2J

Signed-off-by: guzhihao4 <guzhihao4@huawei.com>
Change-Id: I0b55d3a4c9c97827823123d4e43abc9113163bf9
xOtree 0726475e68adefe727e671eb9b91f3a44f2169e2
parent 6b12c6b24339e815dd25f2c1e8351a5799de2ffe
parent 7ae901b1f0dc76ba28a3323717a71ad2b227106e
author openharmony_ci <120357966@qq.com> 1713431499 +0000
committer Gitee <noreply@gitee.com> 1713431499 +0000

!550 新增5.0视频编码相关key
Merge pull request !550 from 李建超/masteroxstree 2651d562e2789863b4c5c0fa745135155f97a03c
parent 45452b0101fda40dd8ae8804ea35e62adb5b7d76
parent bbd8825029d39233f182f014c1fd89c3914e8413
author openharmony_ci <120357966@qq.com> 1713431189 +0000
committer Gitee <noreply@gitee.com> 1713431189 +0000

!552 增加CAPI文件级统计接口、CAPI扫描结果和diff结果增加kit、子系统信息列
Merge pull request !552 from zhangwu/masterfxtree c042460d718a1e2e278fb773183e0b889271132d
parent 522425a32d9418506d8fd18062812b29f6eac5d4
author Li Yuhang <liyuhang24@huawei.com> 1713430585 +0000
committer Gitee <noreply@gitee.com> 1713430585 +0000

Modify


Signed-off-by: Li Yuhang <liyuhang24@huawei.com>N}xtree 0302dd7a7cc85bdf6ed7592382331b9ccd1aaab7
parent 7d7b8b2ac76235d22302d9e9bdd202d4332ec475
author Li Yuhang <liyuhang24@huawei.com> 1713430490 +0000
committer Gitee <noreply@gitee.com> 1713430490 +0000

Modify

Signed-off-by: Li Yuhang <liyuhang24@huawei.com>oPjxktree 30652ea6241042b7c92202fffb7e86dbfe314242
parent 45452b0101fda40dd8ae8804ea35e62adb5b7d76
author shilei <shilei91@huawei.com> 1713423829 +0000
committer shilei <shilei91@huawei.com> 1713427578 +0000

add interface of napi_call_threadsafe_function_with_priority

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Id626368f3108854730ebc2da355105eec214f665
*qxMtree a17b0d87a152c08309303c8a8c9d3229dad8c5ba
parent d76fe3df2e54283169a03908cd652b39fb96e643
author xiaobjy <zhongjiyuan1@huawei.com> 1712994599 +0800
committer xiaobjy <zhongjiyuan1@huawei.com> 1713423258 +0800

add hdr ndk api

Signed-off-by: xiaobjy <zhongjiyuan1@huawei.com>
Change-Id: Ib7d668308244b0c47dddfe00c575f78a520ed974
z}fmx tree 40bd4ec2368fad37841bec344d8e538b9f02bdc9
parent 3eeb2756e1a157624b6a663a730e3ef629d7933b
author liuwenfeng <bluecodeman@outlook.com> 1713412022 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1713412022 +0800

ndk print capi

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
W\2x`tree f97c5a0b5f5d884e976625e19a6880c7b7057848
parent 91df3705a0f30cc9f8b58f2d5b7a9e0553f1d0c1
author zhangwuf <zhangwu47@huawei.com> 1713343814 +0800
committer zhangwuf <zhangwu47@huawei.com> 1713409967 +0800

增加CAPI文件级统计接口、CAPI扫描结果和diff结果增加kit、子系统信息列

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
x@tree 92dea927b7f1b06a8d2beb8eeabcc163f9b6366f
parent d2fdbb8925bc4e8afafaff2ecffd01c6e8856c2d
author jidong <jidong4@huawei.com> 1711980634 +0800
committer jidong <jidong4@huawei.com> 1713409439 +0800

add os account c api

Signed-off-by: jidong <jidong4@huawei.com>
Change-Id: Ic25cbffb68956e8255246e187fae8ef6934bec24
4cxtree a6b0f97d6e0e16795775a2ee0dfbfbee33121cf0
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author wzr <wangzhiru1@huawei.com> 1711076506 +0800
committer wzr <wangzhiru1@huawei.com> 1713408281 +0800

Add TEE KIT API to SDK.

Signed-off-by: wzr <wangzhiru1@huawei.com>
߮Rx tree 6bbe4c36b23bdf4641987645a566d2db3684732c
parent d42bfd573937cf77fc3a19f65d0b8b25e3d15d80
author liuwenfeng <bluecodeman@outlook.com> 1713402798 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1713402798 +0800

ndk print capi

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
1|\2xvtree a14f8d914898cba32b43298cdbcc59f521242445
parent 45452b0101fda40dd8ae8804ea35e62adb5b7d76
author lixiangpeng5 <lixiangpeng5@huawei.com> 1713361305 +0000
committer lixiangpeng5 <lixiangpeng5@huawei.com> 1713361305 +0000

add parameters for ambient light response

Signed-off-by: lixiangpeng5 <lixiangpeng5@huawei.com>
Change-Id: Iddf3a819939f14ad8687ea95d5008d6308b25174
d]uxOtree 726ac415bd9be9debe6770452d25514df9eea70e
parent 1602951828b425895f053ace12de2f8692c3e146
author li-jianchao1993 <lijianchao9@huawei.com> 1713354010 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1713354010 +0800

【修改说明】 新增5.0视频编码相关key

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
VvxYtree be44640c4262b71b56b143d7147db0e96d3214ec
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
author lubinglun <lubinglun@huawei.com> 1713321564 +0800
committer lubinglun <lubinglun@huawei.com> 1713351211 +0800

add fd size check for FD_SET, FD_CLR, FD_ISSET

https://gitee.com/openharmony/interface_sdk_c/issues/I9HC4S

Signed-off-by: lubinglun <lubinglun@huawei.com>
Change-Id: I3e7937a353c68b7632c99cb476ac37ce9da9f96b
^nxEtree 0fea8c48a61da6d1400a5359c1f2244054d1e6b7
parent 91df3705a0f30cc9f8b58f2d5b7a9e0553f1d0c1
parent 0a697816ae2c58a6b27ccf15ad1c6c0464306bcb
author openharmony_ci <120357966@qq.com> 1713339892 +0000
committer Gitee <noreply@gitee.com> 1713339892 +0000

!544 新增nativewindow接口
Merge pull request !544 from 刘瓒/usageh$x'tree 1aab52d84e3916ae0d9a4cabd46362a4ff2de89e
parent 91df3705a0f30cc9f8b58f2d5b7a9e0553f1d0c1
author yangjunhui10 <yangjunhui10@huawei.com> 1713335989 +0000
committer yangjunhui10 <yangjunhui10@huawei.com> 1713335989 +0000

add vvc\srt key

Signed-off-by: yangjunhui10 <yangjunhui10@huawei.com>
]xGtree b1de30bd16f7d5f3b888d3e1ae9cc63866527ac3
parent 90b533f09a6f291478b045074328806f0fd30597
parent 876b267d355fb9422ac32efe5c0c85ee54be964a
author openharmony_ci <120357966@qq.com> 1713335354 +0000
committer Gitee <noreply@gitee.com> 1713335354 +0000

!448 Add ImageEffect interface
Merge pull request !448 from 朱锐/mastercxKtree a565dd603997e0114acb3ddbbf1c56d79fe1b6c7
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
parent 3a52a51ac7233f71d1d5a87249e91b03a9f0038f
author openharmony_ci <120357966@qq.com> 1713325606 +0000
committer Gitee <noreply@gitee.com> 1713325606 +0000

!523 NDK C-API add touchintercept
Merge pull request !523 from firminly/liyi2xbxtree f22615789b3405859a68924b2dc20f3a102d5fbb
parent 160b077c6ae8dc1c60d7ddcd3d6368c6c883c155
author kerongfeng <fengkerong@huawei.com> 1713321791 +0000
committer Gitee <noreply@gitee.com> 1713321791 +0000

add ndk  interface 

Signed-off-by: kerongfeng <fengkerong@huawei.com>)Vxxtree 62b65d79fda4ac92afb99ee3fb5eeaaadb12453e
parent 87ab324a5c6817e47a22d0f968beb0ce65b9248c
author kerongfeng <fengkerong@huawei.com> 1713321026 +0000
committer Gitee <noreply@gitee.com> 1713321026 +0000

add ndk interface

Signed-off-by: kerongfeng <fengkerong@huawei.com>LWxBtree 797150229dbb59967891ecec21300f431360e33d
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
author zhouchengchao <zhouchengchao4@huawei.com> 1713279127 +0800
committer zhouchengchao <zhouchengchao4@huawei.com> 1713279127 +0800

window_manager keyevent interface

Signed-off-by: zhouchengchao <zhouchengchao4@huawei.com>
lh0xDtree d420cad2410992be313b8da1cd5f851b7271bc57
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
author 刘瓒 <liuzan9@huawei.com> 1713269597 +0000
committer 刘瓒 <liuzan9@huawei.com> 1713269597 +0000

修改nativewindow接口

Signed-off-by: 刘瓒 <liuzan9@huawei.com>
Change-Id: Ia3c2222505d89a26f9ebf3415bc03e14b5a652c0
kxDtree 3c4f5667828f9750ebd3570369d3a5032056182b
parent c1b88251f6e7d60699290a1f2bb6f3015d4b35f6
author 刘瓒 <liuzan9@huawei.com> 1713263109 +0000
committer 刘瓒 <liuzan9@huawei.com> 1713263109 +0000

新增nativewindow接口

Signed-off-by: 刘瓒 <liuzan9@huawei.com>
Change-Id: Ieecc5dd74ad79cdd5b92803c1982fb77b1f37c6a
kk~x|tree 65dd58c3e9edd2d2d99b4031f6c4061c931a4487
parent d12abcb3e1d368f732e69c218bbad291b38c61d8
parent a1d35ebb3f9e96b3d55b81cb6e403c83dcb4f587
author openharmony_ci <120357966@qq.com> 1713259703 +0000
committer Gitee <noreply@gitee.com> 1713259703 +0000

!543 回退 'Pull Request !493 : 新增nativewindow接口'
Merge pull request !543 from openharmony_ci/revert-merge-493-master@{Uxtree 65dd58c3e9edd2d2d99b4031f6c4061c931a4487
parent d12abcb3e1d368f732e69c218bbad291b38c61d8
author openharmony_ci <120357966@qq.com> 1713258007 +0000
committer Gitee <noreply@gitee.com> 1713258007 +0000

回退 'Pull Request !493 : 新增nativewindow接口'
aT	x>tree c0a0d248b2a47325952b1615667c67a3d1fab535
parent db0905a57a9b31ded65d3fd0c89ca47bfc7226ca
author wang-yangsong <wangyangsong@h-partners.com> 1713254674 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1713254674 +0800

update nnrt translation

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
8DhxLtree 451728361c47b6fb362802663056de2e9ffb34df
parent 7357db9a5b33a99217efb64197fb5ed330513d4f
parent 0253b64f8c71b52793dfe5c6f5177b7081e3059f
author openharmony_ci <120357966@qq.com> 1713250466 +0000
committer Gitee <noreply@gitee.com> 1713250466 +0000

!493 新增nativewindow接口
Merge pull request !493 from 刘瓒/nativewindow$Nixtree bb3cc897a92d2dda367ee980e07a58c51072c8fe
parent 7e1d36d02d4f270c018d2673cb3479e5ac69212c
author z00428214 <zhurui17@huawei.com> 1711166253 +0800
committer z00428214 <zhurui17@huawei.com> 1713235982 +0800

Add ImageEffect interface

Signed-off-by: z00428214 <zhurui17@huawei.com>
Sϔxtree a565dd603997e0114acb3ddbbf1c56d79fe1b6c7
parent 7357db9a5b33a99217efb64197fb5ed330513d4f
author liyi0309 <liyi58@huawei.com> 1713196595 +0800
committer liyi0309 <liyi58@huawei.com> 1713196595 +0800

NDK C-API add touchintercept
Signed-off-by: liyi0309<liyi58@huawei.com>
(wS1xEtree 65dd58c3e9edd2d2d99b4031f6c4061c931a4487
parent 03768abe6f0de19369b3f42856589914ffa801e6
parent a4c97a8cfbf2400273a4f4ee7273e87a7ed670be
author openharmony_ci <120357966@qq.com> 1713187601 +0000
committer Gitee <noreply@gitee.com> 1713187601 +0000

!521 [NDK]  animate api
Merge pull request !521 from lisitao/ndk_list_8`xftree 31e96c2a73a9e7060e8b977f5fb4ff98be0cb1e6
parent 7043bc6a9d15fc3f749f021581ae1ec0d8a0c0d1
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713183590 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713183590 +0800

[NDK]  animateTo
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
WpxHtree 2882bad52da9066c3461c3dd9ab42c36d0629cea
parent b38e6dea41c255a70c62d39565ac63799a068892
parent 2458753350d848fe6f16ac82367c3c21456e29d6
author openharmony_ci <120357966@qq.com> 1713182371 +0000
committer Gitee <noreply@gitee.com> 1713182371 +0000

!502 ICU NDK开放IDNA接口
Merge pull request !502 from 罗博明/masterKgYxKtree 4397c81cb770ea90d136b66923a92cf5013b4b3e
parent a6ef7b9c2eecaed71a70c59a17da1eff71b94cca
parent fac27e62b9557aabe606b368965772076a78f9be
author openharmony_ci <120357966@qq.com> 1713181109 +0000
committer Gitee <noreply@gitee.com> 1713181109 +0000

!501 名字拼写错误修正
Merge pull request !501 from 马靖涛/20240408Ӵnxtree 7a0b15e8cc2c57235623bc49b6d1b5fffdf69e95
parent 601709029109bb0185f6db6cb4ee2303536d4d02
author 罗博明 <luoboming@huawei.com> 1713175295 +0000
committer Gitee <noreply@gitee.com> 1713175295 +0000

add json

Signed-off-by: 罗博明 <luoboming@huawei.com>KVxDtree 615a70f62684613725a1a78d1333d0dcf754d66d
parent 105176d7f02ed12f7211f80f5d683a737a737be4
parent a6ef7b9c2eecaed71a70c59a17da1eff71b94cca
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713168784 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713168784 +0800

Merge branch 'master' into ndk_list_7
JxaՓxCtree 8e13ec3c836600501594b7ad370bb60588cefe0f
parent ac1d493ffaf0979f34140d6d1a0de7e74becc96c
parent 8f03aa82ec74f55055cf417c4fd4675a6b211f8a
author openharmony_ci <120357966@qq.com> 1713160308 +0000
committer Gitee <noreply@gitee.com> 1713160308 +0000

!490 add C-API attribute
Merge pull request !490 from firminly/masteraCx!tree d4287b64611e1e15d29f3ef4666c6658a6054043
parent ac1d493ffaf0979f34140d6d1a0de7e74becc96c
author yangfan <yangfan174@huawei.com> 1713150037 +0800
committer yangfan <yangfan174@huawei.com> 1713150037 +0800

NDK头文件导出路径修改

Signed-off-by: yangfan <yangfan174@huawei.com>
^ycxGtree 701f3e70fd1dbe3515c35ca7bdf116b0d6ad8c50
parent eaee5a54e299975b6f3460cde785dcdcc8891a8f
parent 22651a534e332ca04474de3fbd44529daed4ac64
author openharmony_ci <120357966@qq.com> 1713082208 +0000
committer Gitee <noreply@gitee.com> 1713082208 +0000

!537 Add fdsan interface
Merge pull request !537 from guzhihao4/add_fdsanOcxNtree 701f3e70fd1dbe3515c35ca7bdf116b0d6ad8c50
parent eaee5a54e299975b6f3460cde785dcdcc8891a8f
author guzhihao4 <guzhihao4@huawei.com> 1713005358 +0800
committer guzhihao4 <guzhihao4@huawei.com> 1713014325 +0800

Add fdsan interface

Signed-off-by: guzhihao4 <guzhihao4@huawei.com>
Change-Id: I506bf9b7696218da00db4f8caa96d78059df69c3
gxItree 1716de2ffc4ecbb7e270183ccad1a1b425241684
parent eaee5a54e299975b6f3460cde785dcdcc8891a8f
author Li Yuhang <liyuhang24@huawei.com> 1713014027 +0800
committer Li Yuhang <liyuhang24@huawei.com> 1713014027 +0800

Add ndk related to audio routing manager, common and device base

Signed-off-by: Li Yuhang <liyuhang24@huawei.com>
:hHxatree 486a5c7de5bbeec726da2d66368d7a0554e481dd
parent bbc9661d3bf7774092b96004e11bad1b3cc39f8d
parent 8b0152a1fbbf858e422ca37bd686e526ece4bcaf
author openharmony_ci <120357966@qq.com> 1713004029 +0000
committer Gitee <noreply@gitee.com> 1713004029 +0000

!499 音频NDK新增AudioRenderer打断模式接口
Merge pull request !499 from ZHAI JUNWEI/masterLvxhtree ac8a5a778d15b0a1bd120f51f4d287db8d64c2d6
parent 98787116ed81cd3fee7cda61251611ea8b882953
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713000736 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1713000736 +0800

[NDK]  animate api
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
ڣpxGtree a838a5cd56cc90c8f9e079cc90017a846ad1acb8
parent d76fe3df2e54283169a03908cd652b39fb96e643
parent 95eebaf3a8dc529a31e300b5f8bd926e5c56be9a
author openharmony_ci <120357966@qq.com> 1712995443 +0000
committer Gitee <noreply@gitee.com> 1712995443 +0000

!518 update ffrt interface
Merge pull request !518 from zhuguoyang/master)d7xUtree d4ff84546ce10e90c2e855853a4448427dd1ade9
parent 73640b4850dac01ae367530f7eecaf42c332dcf5
parent 239a3705436bf653257e66c95bd4dd19489830ff
author openharmony_ci <120357966@qq.com> 1712992297 +0000
committer Gitee <noreply@gitee.com> 1712992297 +0000

!496 MediaLibrary native api impl
Merge pull request !496 from caochuan/test-native-api4gbx-tree df75097bbd14c45ec317bf45adfb64c9bef27762
parent 00142815cdf958bb00a69e75a36fb22e0bef917f
author zhuguoyang <zhuguoyang@h-partners.com> 1712934656 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712934656 +0800

update ffrt interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
"bxxJtree 013a591a1211c416b2605ccd812d0b0d25d604bc
parent cd4dca61980de8f8c189fa297f2d79af579143f9
parent 430ac356d06b5a65c9a777b135eac46b594184d7
author openharmony_ci <120357966@qq.com> 1712918900 +0000
committer Gitee <noreply@gitee.com> 1712918900 +0000

!532 增加新NDK接口
Merge pull request !532 from yangfan/add_newImageNDKgx'tree 27741e24cb271057ca074baa778200a3f9b18e21
parent b7389167fc69538a093a01b2e8b11ecd400bd8c6
author kerongfeng <fengkerong@huawei.com> 1712915142 +0000
committer Gitee <noreply@gitee.com> 1712915142 +0000

add ndk interface in camera_framework

Signed-off-by: kerongfeng <fengkerong@huawei.com>KW]jx(tree 727c5abfd2995a92c9d51d170a15e68ae04d04f6
parent d97351cf273aeb1c497224a222a10c554462f853
author kerongfeng <fengkerong@huawei.com> 1712911673 +0000
committer Gitee <noreply@gitee.com> 1712911673 +0000

add ndk interface for camera_framework

Signed-off-by: kerongfeng <fengkerong@huawei.com>]xtree 013a591a1211c416b2605ccd812d0b0d25d604bc
parent cd4dca61980de8f8c189fa297f2d79af579143f9
author yangfan <yangfan174@huawei.com> 1712911399 +0800
committer yangfan <yangfan174@huawei.com> 1712911399 +0800

增加新NDK接口

Signed-off-by: yangfan <yangfan174@huawei.com>
Yx$tree cbdafc281a6f78658c6ae8617a193372fb5e2a1a
parent cd4dca61980de8f8c189fa297f2d79af579143f9
author kerongfeng <fengkerong@huawei.com> 1712911092 +0000
committer Gitee <noreply@gitee.com> 1712911092 +0000

add ndk interface for securecamera

Signed-off-by: kerongfeng <fengkerong@huawei.com>8]ğx_tree 7076143d19e57e089a462fb6805dba552e3dfc6b
parent 0b79df8e9a92b2db7406eebd5e8cdcb006a48343
parent 9ea8bfa17c9922843af00d6d827d056a2b62c1ad
author openharmony_ci <120357966@qq.com> 1712905190 +0000
committer Gitee <noreply@gitee.com> 1712905190 +0000

!524 ImageReceiver提供纯native接口
Merge pull request !524 from yangfan/add_imageReceiverNewqxtree 63370c59d23ead086ad1549143f44bc01cbabdb2
parent f080ad5a92ccd546553680b5707be0ccb0b94685
author yangfan <yangfan174@huawei.com> 1712892647 +0800
committer yangfan <yangfan174@huawei.com> 1712892647 +0800

更新codecheck

Signed-off-by: yangfan <yangfan174@huawei.com>
{Vextree 1af1e159adca1ae20b2d6b8f60a105c510b2722b
parent 0b79df8e9a92b2db7406eebd5e8cdcb006a48343
author liyi0309 <liyi58@huawei.com> 1712841058 +0800
committer liyi0309 <liyi58@huawei.com> 1712891333 +0800

add C-API attributes
Signed-off-by: liyi0309<liyi58@huawei.com>
PҒxtree 641e2834937b33432ffca7830e224fe4ba60b594
parent 969ce4bb88a488b70f1736da5298be847639eda2
author yangfan <yangfan174@huawei.com> 1712890522 +0800
committer yangfan <yangfan174@huawei.com> 1712890522 +0800

修改lib名字

Signed-off-by: yangfan <yangfan174@huawei.com>
oWx(tree ffc7a365322894d05d1387ff52ec7cbcbdb217d3
parent 0b79df8e9a92b2db7406eebd5e8cdcb006a48343
author yyuanche <yuancheng25@huawei.com> 1712885578 +0800
committer yyuanche <yuancheng25@huawei.com> 1712885578 +0800

【NDK】CAPI-接口问题修复
Signed-off-by: yyuanche <yuancheng25@huawei.com>
9Gex$tree 5c34cafef565cd11ac0b267b9d713acadf0bc7d3
parent 8b07607b1293d036e3cfa5754a42ea5cb51d6453
parent 0b79df8e9a92b2db7406eebd5e8cdcb006a48343
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1712847456 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1712847456 +0800

merge
,jWxctree aaded5e935fa57d74fbded414cd6b2cf3ae78b9f
parent 01b3cfb6174632cc72f0a0d7b7322a26f53c1101
parent fb91f82b8b075f4d500a3f655bfa6b7c4ca50403
author openharmony_ci <120357966@qq.com> 1712840753 +0000
committer Gitee <noreply@gitee.com> 1712840753 +0000

!506 【NDK】懒加载与waterFlow get方法API新增
Merge pull request !506 from yyuanche/ndk_lazyx4x(tree 688a8f101788bd2fec033af2acbf8c2a1578783c
parent 9efda8feedcf6fcddfe92ae9cbfa8eabe88ab9d8
author zhuguoyang <zhuguoyang@h-partners.com> 1712838814 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712838814 +0800

update gn & json

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
bKx(tree 686da58a6b1928bff82b2e476494ba43d11d6e5a
parent b5a232dc9692fc7d90aa74b8d2c6bd6b11d80f9d
author zhuguoyang <zhuguoyang@h-partners.com> 1712835896 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712835896 +0800

update gn & json

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
 _xtree bdb24923e4f78bbec304ea7af9fbc11da1dd7706
parent ac5bec7af1eaf7cc9ef0cbef9ccafdfbc308b5ca
author yangfan <yangfan174@huawei.com> 1712832223 +0800
committer yangfan <yangfan174@huawei.com> 1712832223 +0800

修改so的名字

Signed-off-by: yangfan <yangfan174@huawei.com>
]}x	tree 12991a5d12a7895d49639a01c47069f1922c61d8
parent 2b8324e5f754b4dccd2fd1452a08a1f97534b14e
author yangfan <yangfan174@huawei.com> 1712828114 +0800
committer yangfan <yangfan174@huawei.com> 1712828114 +0800

update

Signed-off-by: yangfan <yangfan174@huawei.com>
#O֞x.tree 033936ed3d31cde6f66956a32949066498dbdf7f
parent 2406b2419445cddf90346047ed5040e2d7596902
author zhuguoyang <zhuguoyang@h-partners.com> 1712828075 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712828075 +0800

update interface 17-19

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
Z._Ɵxtree a18610729da895e611a6ed4b409b2504fce7fdc2
parent df667a27b7bdb26977780e84cc89e0163c78ed29
author yangfan <yangfan174@huawei.com> 1712826929 +0800
committer yangfan <yangfan174@huawei.com> 1712826929 +0800

更新注释

Signed-off-by: yangfan <yangfan174@huawei.com>
1Wxtree 7526dc43766530c300d99e5efee82d1ce1b3d13a
parent dbaee6ca13b92215122c99d987c28d728a25d8c2
author yangfan <yangfan174@huawei.com> 1712825906 +0800
committer yangfan <yangfan174@huawei.com> 1712825906 +0800

更新注释

Signed-off-by: yangfan <yangfan174@huawei.com>
rWxtree 70ad160edaf72417ffcde33e9d89e02a8def7c84
parent 7149839327c04f31c3dafc6f75daef9289c8f738
author yangfan <yangfan174@huawei.com> 1712825648 +0800
committer yangfan <yangfan174@huawei.com> 1712825648 +0800

删除空格

Signed-off-by: yangfan <yangfan174@huawei.com>
UWx%tree d554a122e9c79bcb6f45690626676548d8ee9eeb
parent 76a9c027f1255ac3e0bd0cd980652a7a864992ff
author yangfan <yangfan174@huawei.com> 1712824554 +0800
committer yangfan <yangfan174@huawei.com> 1712824554 +0800

ImageReceiver提供纯native接口

Signed-off-by: yangfan <yangfan174@huawei.com>
/`xktree 9d7df856c8ef69125b4f7f63b7eb14a90b25ef6b
parent d6a265b626d2477417206c9009458a9622d31dfb
parent 89dfccd957f6ad963bffaf0b338075b719742a88
author openharmony_ci <120357966@qq.com> 1712818749 +0000
committer Gitee <noreply@gitee.com> 1712818749 +0000

!507 修改json配置中的接口名称和头文件保持一致
Merge pull request !507 from 崔瑞斌/master1Xxtree 233c1f36d99c59364eaa8ad83e26d5d8454161d4
parent 002182a6147565c9a923b68f879026383e74b137
author caochuan <caochuan@huawei.com> 1711094766 +0800
committer caochuan <caochuan@huawei.com> 1712805476 +0800

MediaLibrary native api impl

Signed-off-by: caochuan <caochuan@huawei.com>
FWx(tree 6df35e748881f1e7d38ff24ac44117988a257520
parent 828f1093cb5914d1db1d6709764a63f063388b4e
author zhuguoyang <zhuguoyang@h-partners.com> 1712803871 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712803871 +0800

update interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
Vg^x(tree b34b68650745b404c7e64563ece1d3cf19483540
parent 210bb0135cb5e49a2d982de3e36d0b21d4a50222
author zhuguoyang <zhuguoyang@h-partners.com> 1712803487 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712803487 +0800

update interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
^x(tree 74286f86390f84ee419575cf597e828f8ab0a1c0
parent c1f8fbf65b1a24d3fe1bf5dd55c865646363779f
author zhuguoyang <zhuguoyang@h-partners.com> 1712802735 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712802735 +0800

update interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
g}_֙x9tree a1a9e4516e0332429e696bb2b37a1aff88da1ed4
parent 100ab95a4d4ef74290867f94e8335a9893539e07
author yyuanche <yuancheng25@huawei.com> 1712571613 +0800
committer yyuanche <yuancheng25@huawei.com> 1712801508 +0800

【NDK】懒加载与waterFlow get方法API新增
Signed-off-by: yyuanche <yuancheng25@huawei.com>
M$m=x(tree 5f9f06fdd9a149b0ef153fdd9a4a2658edd6c367
parent 421e4bfac90408287850dc4ce101aed9dfa3f680
author zhuguoyang <zhuguoyang@h-partners.com> 1712800069 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712800069 +0800

update interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
h`ȕxtree f7b056d194ce33a1e9283a5d237bc07cc53e553b
parent e4d7fcf61c6de14a0e65e1452d4395d67deece06
author mengjingzhimo <luoboming@huawei.com> 1712798326 +0800
committer mengjingzhimo <luoboming@huawei.com> 1712798326 +0800

fix

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
Xxitree e584671da5f5f5cc0c25d255d25f6d2c4c2a227d
parent 3fa5bff8a9b7239cc529185d5bedd8306489e7ff
parent a7b95d9f7db3b8efef9465c966b7dd8fb68c9f55
author openharmony_ci <120357966@qq.com> 1712730048 +0000
committer Gitee <noreply@gitee.com> 1712730048 +0000

!517 schemehandler  删除json中与头文件不匹配的api。
Merge pull request !517 from wanghui/masterC}Rx=tree e584671da5f5f5cc0c25d255d25f6d2c4c2a227d
parent 3fa5bff8a9b7239cc529185d5bedd8306489e7ff
author w00477664 <wanghui210@huawei.com> 1712719136 +0800
committer w00477664 <wanghui210@huawei.com> 1712719259 +0800

删除json中遗漏的api，未发布过相关api。

Signed-off-by: w00477664 <wanghui210@huawei.com>
nx-tree 8dd48fdecc605f131daa88f6b5fec1824961e620
parent eaa5c03e8825f89f586afb7dc82be17882ba11a1
author zhuguoyang <zhuguoyang@h-partners.com> 1712718473 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712718473 +0800

update ffrt interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
dbx-tree b9a8ce392e9eb0458dffc75baf0080fb6bae42bd
parent 3fa5bff8a9b7239cc529185d5bedd8306489e7ff
author zhuguoyang <zhuguoyang@h-partners.com> 1712718008 +0800
committer zhuguoyang <zhuguoyang@h-partners.com> 1712718008 +0800

update ffrt interface

Signed-off-by: zhuguoyang <zhuguoyang@h-partners.com>
+cqxtree b0591c737f040712c9e2dd4084bbc8248f8def9d
parent 76a9c027f1255ac3e0bd0cd980652a7a864992ff
author lvcong_oh <lvcong@huawei.com> 1712580422 +0800
committer lvcong_oh <lvcong@huawei.com> 1712667759 +0800

add lockRow/unlockRow function

Signed-off-by: lvcong_oh <lvcong@huawei.com>
YxKtree 7a3e45e5e703b3afd7a1d5e1bc2efbcc0c9eb425
parent ebe466425b0655151b6050bbdbb498e30a99a6f8
parent 03074732ecd8999574226035d5fe335539ff4454
author openharmony_ci <120357966@qq.com> 1712639417 +0000
committer Gitee <noreply@gitee.com> 1712639417 +0000

!492 AVCodec新增API12接口
Merge pull request !492 from 134******51/masterldxNtree 9733982df362dfe34aba9a6d04cdefb35f20231e
parent df575d216d311d8dfe3b14dec34c6cc0e195c3ea
parent 0fd18f3095bd3f96e3ec2bd2b51cae5813c457d8
author openharmony_ci <120357966@qq.com> 1712630847 +0000
committer Gitee <noreply@gitee.com> 1712630847 +0000

!505 CAPI解析增加api版本信息
Merge pull request !505 from zhangwu/master69nx tree ac5e1d2fa93adfefdc8e65823bbb5177826d78e9
parent 0de33e06e8ab545a17520fb4c3ae4840a3caf14b
author liuwenfeng <bluecodeman@outlook.com> 1712629346 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1712629346 +0800

NDK print capi

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
Q]xftree 583bdcb2528b91a7608307125a96cd33e5726199
parent 100ab95a4d4ef74290867f94e8335a9893539e07
author conewang <wangdantong@huawei.com> 1712626278 +0000
committer conewang <wangdantong@huawei.com> 1712626278 +0000

添加Text组件lineSpacing属性C接口

Signed-off-by: conewang <wangdantong@huawei.com>
Change-Id: I70fe429c3d90ef1380eb548d190dd72c3e0181ac
awxUtree 8e89289c10f42257f64227628df67ee2139eb3f6
parent 76a9c027f1255ac3e0bd0cd980652a7a864992ff
parent bac9d414061915c255eed7d2df17914d2b110250
author openharmony_ci <120357966@qq.com> 1712583001 +0000
committer Gitee <noreply@gitee.com> 1712583001 +0000

!504 提交avcodec 特性查询相关capi
Merge pull request !504 from 杨小雨/masterqxtree 9fa6b1a2be115778ccffe15c4dedd1cc58bd0aaf
parent 3db58c327f4fee410e1145cfac4dbc606994c360
author zhaijunwei <zhaijunwei123@huawei.com> 1712581416 +0800
committer zhaijunwei <zhaijunwei123@huawei.com> 1712581416 +0800

fix review

Signed-off-by: zhaijunwei <zhaijunwei123@huawei.com>
\xtree 6a0af39e0baec02885b459fd791929a52b312cac
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author leiiyb <leiyanbo@huawei.com> 1709779876 +0800
committer leiiyb <leiyanbo@huawei.com> 1712575794 +0800

add local data changed notice

Signed-off-by: leiiyb <leiyanbo@huawei.com>
!=W@x2tree f084eb7e3cf929b7f20adf802d88f9fc8be044a5
parent 76a9c027f1255ac3e0bd0cd980652a7a864992ff
author cuiruibin <cuiruibin3@huawei.com> 1712575467 +0800
committer cuiruibin <cuiruibin3@huawei.com> 1712575467 +0800

修改接口名称配置和头文件一致
Signed-off-by: cuiruibin <cuiruibin3@huawei.com>
=q3x"tree 845e87d6f5b15a5293a1458b82c10e56d9981cd2
parent 057c1c204e9b0c3ce47a8c40492f1436791f2550
author zhangwuf <zhangwu47@huawei.com> 1712567114 +0800
committer zhangwuf <zhangwu47@huawei.com> 1712575000 +0800

CAPI解析增加api版本信息

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
aΖxFtree ab74d006e76fb5ec2d291b8809c1b7806408003e
parent 100ab95a4d4ef74290867f94e8335a9893539e07
parent 93bc88bc1caca8eec8c5803fea85c21ccd8b599b
author openharmony_ci <120357966@qq.com> 1712569588 +0000
committer Gitee <noreply@gitee.com> 1712569588 +0000

!364 SM4新增CFB分组模式
Merge pull request !364 from 杨欢欢/sm4Ij\x2tree a16027cf82985911894990212f3d3225a8027793
parent 100ab95a4d4ef74290867f94e8335a9893539e07
author yangxiaoyu <yangxiaoyu5@huawei.com> 1712566843 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1712566843 +0000

重新提交avcodec 能力相关api

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
hex-tree dd9e4378f6dd4d5d74443d2de87640cedcc727ca
parent 972e7c413da93ba59754e4e942db717424b28a4e
author zhaijunwei <zhaijunwei123@huawei.com> 1712566154 +0800
committer zhaijunwei <zhaijunwei123@huawei.com> 1712566154 +0800

根据review意见修改

Signed-off-by: zhaijunwei <zhaijunwei123@huawei.com>
lfMxtree 81529cffecfaaec04de8f57416736b7a3ea393b1
parent 100ab95a4d4ef74290867f94e8335a9893539e07
author 罗博明 <luoboming@huawei.com> 1712565142 +0000
committer Gitee <noreply@gitee.com> 1712565142 +0000

add icu idna support

Signed-off-by: 罗博明 <luoboming@huawei.com>X[)xRtree 3e65eb8e0ee313d7a03b2391fed47f0a3e4d335d
parent 09de8d3278507d17505ab2cae31210d6db5b9593
author m00472246 <majingtao1@huawei.com> 1712559418 +0800
committer m00472246 <majingtao1@huawei.com> 1712559831 +0800

名字拼写错误修正 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
'nRxAtree 6584134d35eeb6efc1048ef3168c0e4a84327387
parent aab3dd384ca2dbea36956d02faf7042fc44e7356
parent e8fac7bf1c322319ef2db40b6b5ef143490ad7c0
author openharmony_ci <120357966@qq.com> 1712559115 +0000
committer Gitee <noreply@gitee.com> 1712559115 +0000

!458 gesture update. 
Merge pull request !458 from gushuheng/masterSaxbtree 65e2d66f789879e49baea9a433df54e6ee039772
parent 057c1c204e9b0c3ce47a8c40492f1436791f2550
parent dbc5949baba2d0e237b57f8216ed2b8b4421dd72
author openharmony_ci <120357966@qq.com> 1712547098 +0000
committer Gitee <noreply@gitee.com> 1712547098 +0000

!500 NDK-C-Api事件对接，添加对外暴露接口
Merge pull request !500 from aryawang/48master.y7xPtree 65f8f35e892aabead25cf9cc432aac2ca32bd2f2
parent 057c1c204e9b0c3ce47a8c40492f1436791f2550
author y30053096 <yangjinhuan@huawei.com> 1712547073 +0800
committer y30053096 <yangjinhuan@huawei.com> 1712547073 +0800

add CFB for sm4
Signed-off-by: y30053096 <yangjinhuan@huawei.com>

Change-Id: Id87ccaa9eeeab0f694d5a0a0fed87cf931280875
jc֓xctree ef38e8a3a82c345c03faa2e834de16467f223cb4
parent 792684646b835f39676f29441fe9d136f198585d
parent 4f2b606e71e8286cc40c7277bc73b9d0d85feb0e
author openharmony_ci <120357966@qq.com> 1712543736 +0000
committer Gitee <noreply@gitee.com> 1712543736 +0000

!425 Drawing sdk_c interface addRoundRect 
Merge pull request !425 from 刘伟/drawing_RoundRect_0330 mxktree 8a175aeed8f44f1086723b07b28afe532677054a
parent 4731c11aef763fc153009da683847541ffbe4ea3
author aryawang <wangcaihui@huawei.com> 1712541782 +0000
committer aryawang <wangcaihui@huawei.com> 1712541782 +0000

NDK-C-Api事件对接，添加对外暴露接口

Signed-off-by: aryawang <wangcaihui@huawei.com>
Change-Id: I5d735fb134f23166da72f8b308c6e6cbf915916e
~͛xKtree 965f9de631a4f81624fc2125a4da2c8199a5dfe2
parent 6b0a39622a910f3fa4a4eb69c6ed193216ec730c
parent 840f592997f6dc4459df3ea5d11c04b3406b910f
author openharmony_ci <120357966@qq.com> 1712489593 +0000
committer Gitee <noreply@gitee.com> 1712489593 +0000

!401 废弃获取uv_loop接口
Merge pull request !401 from kangchongtao/0311ivx;tree bc82fc85937fc2da581545df664ac88e4e241a18
parent 7e1d36d02d4f270c018d2673cb3479e5ac69212c
author lw19901203 <liuwei793@h-partners.com> 1712482934 +0800
committer lw19901203 <liuwei793@h-partners.com> 1712482934 +0800

interface sdk_c of B-site requirements

Signed-off-by: lw19901203 <liuwei793@h-partners.com>
^֝x]tree 3f9ce7c4136480672ed24ba9e5f9f33e71e51408
parent 4731c11aef763fc153009da683847541ffbe4ea3
parent ddf3553fb032e28c6d7ae13b0cc320087d647f9d
author openharmony_ci <120357966@qq.com> 1712481677 +0000
committer Gitee <noreply@gitee.com> 1712481677 +0000

!495 Add feature of property handler configuration
Merge pull request !495 from shilei91/masterbjxCtree 5205ce616ee4b3ef088f71dfd4284a7752e6e90d
parent 4731c11aef763fc153009da683847541ffbe4ea3
author zhaijunwei <zhaijunwei123@huawei.com> 1712477766 +0800
committer zhaijunwei <zhaijunwei123@huawei.com> 1712477766 +0800

音频NDK新增AudioRenderer打断模式接口

Signed-off-by: zhaijunwei <zhaijunwei123@huawei.com>
2bq֛x;tree 86cdfdbd5c717f2a1d23eef6abdd21642e2a4eba
parent 0030301d27066e7cd1ec39e093fd4f9798a90df1
author wang-yangsong <wangyangsong@h-partners.com> 1712477279 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1712477279 +0800

fix api format check

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
Mg"x@tree 90d83c52d2939810df1e2c172da393b4ca6d5f2b
parent 1c51fd7f5e0d4496bb67cf9855f97241049280d8
author wang-yangsong <wangyangsong@h-partners.com> 1712474880 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1712474880 +0800

add ops param API version

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
Pg=x:tree d1bdd97fc9bc2ad9d2e9ce0fcb53294cfb5a88f5
parent 16125ba860aa4a7dba59807b5a9911414b061de3
author wang-yangsong <wangyangsong@h-partners.com> 1712474389 +0800
committer wang-yangsong <wangyangsong@h-partners.com> 1712474389 +0800

add ops API version

Signed-off-by: wang-yangsong <wangyangsong@h-partners.com>
5fyxCtree 3f9ce7c4136480672ed24ba9e5f9f33e71e51408
parent 4731c11aef763fc153009da683847541ffbe4ea3
author shilei <shilei91@huawei.com> 1712295379 +0000
committer shilei <shilei91@huawei.com> 1712472311 +0000

add property handler

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: I3f9c988aec4c3af15d5727205b3182f8d03da979
aPx"tree b17b5e41818c7b069347bf02bce6580ab5d9b1f6
parent e9e88208fef0b8c028a54a9af07dc17778d2dd37
author liuwenfeng <bluecodeman@outlook.com> 1712463329 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1712463329 +0800

NDK printer capi

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
&)\xDtree 18e1fe1f179177ab7c468e00c87e63a9d7310140
parent fc4bd2f5882fa1922eaa24083598363de40b4536
author 刘瓒 <liuzan9@huawei.com> 1712134752 +0000
committer 刘瓒 <liuzan9@huawei.com> 1712135378 +0000

新增nativewindow接口

Signed-off-by: 刘瓒 <liuzan9@huawei.com>
Change-Id: I9ba1af5787c61ae691b4f16c2cbaba58235d03d6
PYkxtree eb03d9ab30a3c3e48995a6cfd5e462fb826b4735
parent 4731c11aef763fc153009da683847541ffbe4ea3
author gao_ziyu <gaoziyu@huawei.com> 1712134202 +0800
committer gao_ziyu <gaoziyu@huawei.com> 1712134202 +0800

add api12 interface

Signed-off-by: gao_ziyu <gaoziyu@huawei.com>
U0x tree e2b48db2603afd82327ebff1f10beb7296cecfeb
parent cfac3f224ba95e0d8a5b79ce3718dc316988e8e6
author liuwenfeng <bluecodeman@outlook.com> 1712115891 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1712115891 +0800

NDK print CAPI

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
\xUtree 1ed0facca15d4b70608b4a0ea30cf76f5fca0d17
parent 4fac669771f80374573c8c3f5e5ad048218378ef
parent 9cab8648354c5c8a93c59bfd9db93c29dfbb2988
author openharmony_ci <120357966@qq.com> 1712068912 +0000
committer Gitee <noreply@gitee.com> 1712068912 +0000

!484 新增AudioVivid播放ndk接口
Merge pull request !484 from chongteng wang/masterx\oMxttree 9af3792591bea62b93c3672b1ac464b408530987
parent 5588399c1ae3a30a7098e9614fae362bf87c2842
parent e6393f2a31d979126945d72813ef71231eb4c70c
author openharmony_ci <120357966@qq.com> 1712063804 +0000
committer Gitee <noreply@gitee.com> 1712063804 +0000

!489 回退 'Pull Request !483 : 新增AVCodec kit 5.0能力查询接口'
Merge pull request !489 from openharmony_ci/revert-merge-483-masterWxtree 9af3792591bea62b93c3672b1ac464b408530987
parent 5588399c1ae3a30a7098e9614fae362bf87c2842
author openharmony_ci <120357966@qq.com> 1712063684 +0000
committer Gitee <noreply@gitee.com> 1712063684 +0000

回退 'Pull Request !483 : 新增AVCodec kit 5.0能力查询接口'
9Zxctree 84705a565ad162d80a8891870aa6c5cf514c82b0
parent 0056cb8901b397b4afd5a8ea8246b5c030c7cd53
parent 746738cd591bd61572788300252d6c5f67ef20c7
author openharmony_ci <120357966@qq.com> 1712063616 +0000
committer Gitee <noreply@gitee.com> 1712063616 +0000

!488 回退 'Pull Request !487 : AVCodec kit能力头文件补充，新接口规范修改'
Merge pull request !488 from openharmony_ci/revert-merge-487-mastero`x$tree 84705a565ad162d80a8891870aa6c5cf514c82b0
parent 0056cb8901b397b4afd5a8ea8246b5c030c7cd53
author openharmony_ci <120357966@qq.com> 1712063272 +0000
committer Gitee <noreply@gitee.com> 1712063272 +0000

回退 'Pull Request !487 : AVCodec kit能力头文件补充，新接口规范修改'
?iyxitree ff4733482399b4788cfa33a9b2f02a369c1afef5
parent d8d86d46aa360024941a57b8d9c41feb95ddcef0
parent 3b1816746f3c5df5d2c544620e4035b02bb416f2
author openharmony_ci <120357966@qq.com> 1712059676 +0000
committer Gitee <noreply@gitee.com> 1712059676 +0000

!487 AVCodec kit能力头文件补充，新接口规范修改
Merge pull request !487 from 杨小雨/masterd	xAtree 4364d6727850df27b5f8dd942ec37a39aaa60d9a
parent 1ecd3eca5e179d4afedec9c3631fd256dccc023e
author yangxiaoyu <yangxiaoyu5@huawei.com> 1712048795 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1712048795 +0000

AVCodec kit能力头补充，新接口规范修改

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
vxXtree 84705a565ad162d80a8891870aa6c5cf514c82b0
parent 57827b5fe683284a191303af24cd5bcd319d85c3
parent 1ecd3eca5e179d4afedec9c3631fd256dccc023e
author openharmony_ci <120357966@qq.com> 1712029294 +0000
committer Gitee <noreply@gitee.com> 1712029294 +0000

!483 新增AVCodec kit 5.0能力查询接口
Merge pull request !483 from 杨小雨/mastersOxUtree 9af3792591bea62b93c3672b1ac464b408530987
parent 80427e78c20f82c1ad64bcb3ec8942848013cbad
parent 730e8afa867e41a315d61a0b1df767f59e714f12
author openharmony_ci <120357966@qq.com> 1712025579 +0000
committer Gitee <noreply@gitee.com> 1712025579 +0000

!371 多模增加事件安全注入接口
Merge pull request !371 from mayunteng/pr_196erx%tree 0c57fcec2738214d8eeb2382037c47dfbd3ff1f6
parent 398aba3c6b9150c679b68c5b1e8a5d314386c0ef
author yangxiaoyu <yangxiaoyu5@huawei.com> 1712020392 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1712020392 +0000

json文件新增接口

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
dxOtree 65d0fa1fa3bfcb8bd16d612b9893a1b6b85adc6f
parent f6ffa744ba99dfd83299be98592d2ea9c541efa4
parent 1c8d3723945916a97abc6ad1594cb684dcd00f06
author openharmony_ci <120357966@qq.com> 1711985929 +0000
committer Gitee <noreply@gitee.com> 1711985929 +0000

!464 NDK C-Api 手势接口修改
Merge pull request !464 from aryawang/326master- k֐x@tree b438c8d2f5eb5358ae5304e2e5043fb5772e5668
parent f6ffa744ba99dfd83299be98592d2ea9c541efa4
author Wang Chongteng <wangchongteng@huawei.com> 1711963793 +0800
committer Wang Chongteng <wangchongteng@huawei.com> 1711963793 +0800

新增AudioVivid播放ndk接口

Signed-off-by: Wang Chongteng <wangchongteng@huawei.com>
hmxtree 06f9a5e7584f0b152de552ac0de227385984dcd4
parent 427c30490970d361b350a2e1a61dafbeb0abfa9d
author mayunteng_1 <mayunteng@huawei.com> 1711962657 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711962657 +0800

delete useless word

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
][x6tree 77edee59db5be68e6de32ce8d6ae6931f9872835
parent fc4bd2f5882fa1922eaa24083598363de40b4536
author yangxiaoyu <yangxiaoyu5@huawei.com> 1711958175 +0000
committer yangxiaoyu <yangxiaoyu5@huawei.com> 1711958175 +0000

新增AVCodec kit 5.0能力查询接口

Signed-off-by: yangxiaoyu <yangxiaoyu5@huawei.com>
kxMtree 81605a92105a5fcf7898d5122851fdd4dab2dc57
parent fc4bd2f5882fa1922eaa24083598363de40b4536
parent 26eacfe4a558de52033e50274310f989cf02094b
author openharmony_ci <120357966@qq.com> 1711957989 +0000
committer Gitee <noreply@gitee.com> 1711957989 +0000

!475 【NDK】 新增WaterFlow API
Merge pull request !475 from yyuanche/masterg=xLtree 580ae0d06be8161e0f34c77b0254107a9ad2f70f
parent 84365fcea16d77d96b2bd44293c318f1018db3f4
parent 5478d1a73407c9d9a0b1467ce7a8afbd3991faae
author openharmony_ci <120357966@qq.com> 1711952976 +0000
committer Gitee <noreply@gitee.com> 1711952976 +0000

!481 新增AVCodec kit 5.0接口
Merge pull request !481 from 李建超/masterTjxFtree dd115a024c9afadb891c78f31d2b37c90b421520
parent 39d405fd7fc9658b75f032ee1cac158203e164b7
parent 100edc9f9949500f074cc5f22d037b9502957bfe
author openharmony_ci <120357966@qq.com> 1711882612 +0000
committer Gitee <noreply@gitee.com> 1711882612 +0000

!457 Drawing GPU 绘制需求
Merge pull request !457 from yzj688/masterdxptree dd115a024c9afadb891c78f31d2b37c90b421520
parent 07478d27c865149cd77a7a5589b5f725bf4eaadc
parent 39d405fd7fc9658b75f032ee1cac158203e164b7
author yzj688 <yuzejun1@huawei.com> 1711867755 +0000
committer Gitee <noreply@gitee.com> 1711867755 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: yzj688 <yuzejun1@huawei.com>NsxRtree 291cef6ee199261d04a2f356da8c3fa7b39089c0
parent c46be1eea6831f478ecdc89a857de91558d713a5
parent 4420ef7919205ddb0916d82f420e3b95648f9e92
author openharmony_ci <120357966@qq.com> 1711798392 +0000
committer Gitee <noreply@gitee.com> 1711798392 +0000

!477 合并445与405pr的NDK接口
Merge pull request !477 from changleipeng/0329lmmdjxXtree a1a2b16795fffa10024ea886bab37385ed32e2b9
parent d2fdbb8925bc4e8afafaff2ecffd01c6e8856c2d
parent 98333d02d3fda7e5aa9e3cf1d52ce24ac3d1351a
author openharmony_ci <120357966@qq.com> 1711792275 +0000
committer Gitee <noreply@gitee.com> 1711792275 +0000

!479 开放序列化NDK接口(interface)
Merge pull request !479 from wangzhaoyong/ndk0329yqx%tree a4415202bbdeecdaf3ff982c068f01c8bfd3adb6
parent 460c7b4fc8075e462194105c96b66ccb86cdc995
author yyuanche <yuancheng25@huawei.com> 1711617648 +0800
committer yyuanche <yuancheng25@huawei.com> 1711781127 +0800

【NDK】 新增WaterFlow API
Signed-off-by: yyuanche <yuancheng25@huawei.com>
>`|x$tree f57086a2d0d5ef42a559bf8ae4a892da56bed12a
parent 7483dc899bdb823dfdca10277d3eae7899abf3f4
author mayunteng_1 <mayunteng@huawei.com> 1711768861 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711768861 +0800

去掉系统权限校验

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
foxLtree 42a4e08114b56cc9d0f7d543ebaab2431bc9f711
parent d2fdbb8925bc4e8afafaff2ecffd01c6e8856c2d
author li-jianchao1993 <lijianchao9@huawei.com> 1711766580 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1711766580 +0800

【修改说明】 新增AVCodec kit 5.0接口

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
s8xtree 67bf8ffbea9f5b66694bd780405b2e604d79ad90
parent d2fdbb8925bc4e8afafaff2ecffd01c6e8856c2d
author maoyong <maoyong5@huawei.com> 1711766056 +0800
committer maoyong <maoyong5@huawei.com> 1711766075 +0800

update nnrt ops interface, add ops

Signed-off-by: maoyong <maoyong5@huawei.com>
\Xx"tree 8b8391d0e307fbb25f61ba143732d26ac1696321
parent 3530edd1bca98c94d0ce37156ab06cfc7b3271ce
author mayunteng_1 <mayunteng@huawei.com> 1711764622 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711764622 +0800

修改ohinput.ndk.json

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
4?^ʜxtree f49fc9bf3094b514cec1eca084e7bdd4b419e1e2
parent 46f2ccf24fe16b4f05be4ae52d21ce3f95d62c5a
author mayunteng_1 <mayunteng@huawei.com> 1711717801 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711717801 +0800

增加actiontime

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
s]ژx(tree 81a70874a6408f7fa13ab85b6d20edbe63344084
parent a600166d34f70c965d9016d084e3ace68bcece69
author changleipeng <changleipeng4@huawei.com> 1711716522 +0000
committer changleipeng <changleipeng4@huawei.com> 1711716522 +0000

添加library

Signed-off-by: changleipeng <changleipeng4@huawei.com>
#`&xtree ea5115a67e98a2bdb4f0d394b7137b09add5e61a
parent 6bc0e711c329a9ba320a45a19e5cb3a85bb2e579
author mayunteng_1 <mayunteng@huawei.com> 1711715821 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711715821 +0800

增加actiontime

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
\ْxbtree a1a2b16795fffa10024ea886bab37385ed32e2b9
parent d2fdbb8925bc4e8afafaff2ecffd01c6e8856c2d
author wangzhaoyong <wangzhaoyong@huawei.com> 1711711466 +0800
committer wangzhaoyong <wangzhaoyong@huawei.com> 1711711466 +0800

support serialize ndk

Signed-off-by: wangzhaoyong <wangzhaoyong@huawei.com>
Change-Id: Ib6a3bbfc9bc62d857efa1858d69496f24343ac5e
s\xWtree 3f405cdb4f2650cb02b78294cc853e759cd3f41c
parent 6821d22de51c798f487f5e531b245150d4efb824
parent 4beff04025905f473b593221d518c7e950fb1809
author openharmony_ci <120357966@qq.com> 1711708281 +0000
committer Gitee <noreply@gitee.com> 1711708281 +0000

!399 音频新增过载/欠载接口
Merge pull request !399 from ancimoon/under/overflowQrMx tree bc54a6b821202c18f146bc2f937e5685ba33f47c
parent 6821d22de51c798f487f5e531b245150d4efb824
author liuwenfeng <bluecodeman@outlook.com> 1711706684 +0800
committer liuwenfeng <bluecodeman@outlook.com> 1711706684 +0800

NDK print CAPI

Signed-off-by: liuwenfeng <bluecodeman@outlook.com>
nZx4tree 160fd4d203f54afd0adce0bb6f27053ef818421a
parent 6821d22de51c798f487f5e531b245150d4efb824
author changleipeng <changleipeng4@huawei.com > 1711704269 +0800
committer changleipeng <changleipeng4@huawei.com > 1711704269 +0800

合并405 445提交

Signed-off-by: changleipeng <changleipeng4@huawei.com >
Igxtree c821453776357309fee08d8bb048fb4ccb5e0b68
parent 2bede893b5baa0b9f71e3541399b230f5bc618fc
author mayunteng_1 <mayunteng@huawei.com> 1711696874 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711696874 +0800

button none

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
ZXŘxXtree 7e69902c5c9d9d72b6fbc7a17722b46f3cab022c
parent e9dd60c2ef51c3d14448d1188551e5c4ba13ec1b
parent ba0c1bbd0f983b07486b6fb096ab386251a423d5
author openharmony_ci <120357966@qq.com> 1711696396 +0000
committer Gitee <noreply@gitee.com> 1711696396 +0000

!456 AVSource支持自定义数据源NDK接口
Merge pull request !456 from wangyan/masterBs?xtree 12ff9494501a177f3c2012b5e6a0a68e6aaaa017
parent a1523de3db99e3a6c960c73967361f5126442f2e
author mayunteng_1 <mayunteng@huawei.com> 1711694999 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711694999 +0800

增加actiontime

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
n[xtree 90edafae65c1100a5e7456964b8b0d267be30373
parent a28754e75fd5b11c34db04aeb09014d480db3f42
author mayunteng_1 <mayunteng@huawei.com> 1711693199 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711693199 +0800

删除pressure

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
+V[{xEtree 9670cd018860f5cd83c57c3c6b01b6a9f466857b
parent 460c7b4fc8075e462194105c96b66ccb86cdc995
parent 9444212ea332a0ea4419927605b79fe7fa29b545
author openharmony_ci <120357966@qq.com> 1711684931 +0000
committer Gitee <noreply@gitee.com> 1711684931 +0000

!470 新增Seek选项
Merge pull request !470 from monica_zengwang/0326Ycxtree a7daf48fb431a1acfb5827073644609f97081b25
parent 0bb89661d91a14ca261f22bde37724c4cf164f06
author yzj688 <yuzejun1@huawei.com> 1711368490 +0800
committer yzj688 <yuzejun1@huawei.com> 1711678158 +0800

Drawing GPU 绘制需求
Signed-off-by: yzj688 <yuzejun1@huawei.com>
EW
xtree 834a476cdd94366027ac2b0e6cb468de2b82f043
parent 5935ae138c1876985009dce1ebabd820cb72a1fc
author mayunteng_1 <mayunteng@huawei.com> 1711618253 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711618253 +0800

不修改之前doc

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
fc`x$tree fbf447593d7388ae9bb08a6065cb291df49ba756
parent edc1a344a9de5d4c79fe2430dd69f406547a2bf0
author mayunteng_1 <mayunteng@huawei.com> 1711614734 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711614734 +0800

增加注入取消接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
׶eZxtree ec3624370252d009acd0652fadd983651988714e
parent c1b01aa759b45cc264b903981fb23fd1a5ecc253
author mayunteng_1 <mayunteng@huawei.com> 1711614345 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711614345 +0800

增加翻译

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
e~\xtree 95dbe1966b104bf4e1bdf6dbf196e5d79e153838
parent 11dc87ac14ca10b2a621242f38b9cfb35ac89f46
author mayunteng_1 <mayunteng@huawei.com> 1711612015 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711612015 +0800

增加const

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Zxtree a0001892b5701880b7b79e0162fa56cc517d126b
parent fa119caa568d88dca1465007976fb1b1f307db92
author mayunteng_1 <mayunteng@huawei.com> 1711608772 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711608772 +0800

接口调整

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
-[xJtree 6c54d61a52eff61fed73237a5e669ed89ac07d99
parent 52ef5cea5272c15d47ea277816a4d5fc3d58f096
parent 8206e783b0784d4e9d7863c20be2194a55364963
author openharmony_ci <120357966@qq.com> 1711598663 +0000
committer Gitee <noreply@gitee.com> 1711598663 +0000

!337 新增判断文件夹接口
Merge pull request !337 from fyz1019/master*kxHtree 3168ad20ce324872d9b023c586c25742581eca75
parent 2f00f814cb38663ddba21bff3d63da785bdcb246
parent 5e7a7a668b809773a668baa46905d610eeba8ffa
author openharmony_ci <120357966@qq.com> 1711595999 +0000
committer Gitee <noreply@gitee.com> 1711595999 +0000

!472 C-API 支持长按手势
Merge pull request !472 from firminly/mastervhExWtree a1f78a0777543b1f581200d9ce1cc482837cef4b
parent 0597495ae321743a90b77b7ed37809d57d24ea2a
author aryawang <wangcaihui@huawei.com> 1711508436 +0000
committer aryawang <wangcaihui@huawei.com> 1711592683 +0000

NDK C-Api 手势接口修改

Signed-off-by: aryawang <wangcaihui@huawei.com>
Change-Id: I5b28f522fc654377582bea276078dd64779d08fa
{NnxVtree 3e23ffde634e097c3064505aeee2af0fe34d3546
parent b2f2a5ff1c05ffc2f5474772ff62d24360f0037e
parent 88d02fe65f91d5174029ab3f82d93a93092b9a67
author openharmony_ci <120357966@qq.com> 1711592274 +0000
committer Gitee <noreply@gitee.com> 1711592274 +0000

!471 [NDK] custom node interfaces libace
Merge pull request !471 from lisitao/ndk_list_7 sgxXtree 5a9ac080cedda2d56112aaa30c19b86c73b14548
parent 2f3d6b1f8970d3c561b3b4a646d0e04d3693b2fb
parent 8481341c3706d5cb318018cc61b93acb8e0b5f4e
author openharmony_ci <120357966@qq.com> 1711555157 +0000
committer Gitee <noreply@gitee.com> 1711555157 +0000

!453 AVPlayer支持0.5/1.5倍速播放
Merge pull request !453 from WhiteTing/issue_I9BF1J'lxEtree 24af506b30aab5ee5301ffb51cba48f18c76cb0d
parent 0f20cac6f326dd54eb6338a790750997e3a45731
parent 4aefb4dba9364d7449a6ea79f578eb22f9da9c6a
author openharmony_ci <120357966@qq.com> 1711539683 +0000
committer Gitee <noreply@gitee.com> 1711539683 +0000

!413 新增NDK接口
Merge pull request !413 from changleipeng/03013lmm7ex	tree 07699a11fc383b14f4b332a7ece2eae2be77bb42
parent 0f20cac6f326dd54eb6338a790750997e3a45731
author liyi0309 <liyi58@huawei.com> 1711534377 +0800
committer liyi0309 <liyi58@huawei.com> 1711534377 +0800

add gesture C-API
Signed-off-by: liyi0309<liyi58@huawei.com>
+aNxrtree 45845324cd15e53325bbb2a29057fe3adec7f6a1
parent 851250cac0a8fc95b2c56df0b4043d74177d0140
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1711533720 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1711533720 +0800

[NDK] custom node interfaces
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
Ot`xtree 6c3a90b0c9d27177e7b60edc9c8fe95f2bd65829
parent a733e1ec669b1dea78cae0bf99d9fc6aa123d865
author mayunteng_1 <mayunteng@huawei.com> 1711533615 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711533615 +0800

增加翻译

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
]͖xFtree dcbbc20e98c0c63c2327ba0242eb0523a299c072
parent 0abec924483e5d93202a2e7999b4a9503ee00db7
author zengwang1 <zengwang1@huawei.com> 1711528253 +0000
committer zengwang1 <zengwang1@huawei.com> 1711533508 +0000

add ndk api

Signed-off-by: zengwang1 <zengwang1@huawei.com>
Change-Id: I166b444ed6c05330c25b4c7bcae0e93ec037d9ce
c@x6tree 7259cb33f2015071a25399eb4891b68f91028163
parent 156d00eb0efe1ffbcda414490d75af403283c1bc
author fangyunzhong <fangyunzhong2@huawei.com> 1709114557 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1711526742 +0800

新增判断文件夹接口

Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
{mxOtree 7c6e2b35de52d47424b56d51d0d530dbd8bf158e
parent 8969fd4fc24d6f0b0054e0c77844e79c1662f5ba
author changleipeng <changleipeng4@huawei.com> 1711511230 +0000
committer Gitee <noreply@gitee.com> 1711511230 +0000

update graphic/graphic_2d/native_drawing/drawing_text_typography.h.

Signed-off-by: changleipeng <changleipeng4@huawei.com>m؞x^tree 99d33d4ae861531ad99c446f0dbf8794df5c1586
parent 0f20cac6f326dd54eb6338a790750997e3a45731
author huchang <huchang4@huawei.com> 1710151433 +0800
committer huchang <huchang4@huawei.com> 1711511022 +0800

get underflow/overflow count on audio stream

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Iafa74b1d096f754443ee3a5f5554884199ee38c9
	kԜxLtree cce438ca28db75059a49f12f9a13adff491196dc
parent 54f8cfe253d6519b1e7759a7d3d75d80b543795b
parent 06741fb67b8a9cc33b1b7bdd68ad8b8375fa9dd5
author openharmony_ci <120357966@qq.com> 1711510118 +0000
committer Gitee <noreply@gitee.com> 1711510118 +0000

!466 SDK中增加手势接口
Merge pull request !466 from guozonghao11/masterskזxVtree 3275bc25133b9e0f44244afeeaf832d6d507537c
parent 59b483acf7cbeaae1378eff868b04b9e704d46e5
parent feffb593ead5ede909c3748fc320a0d7865a7754
author openharmony_ci <120357966@qq.com> 1711509999 +0000
committer Gitee <noreply@gitee.com> 1711509999 +0000

!397 音频NDK新增AudioRenderer标记接口
Merge pull request !397 from ancimoon/mark;q~xDtree 29d53ad357dea3a2e36eadfc936a5fdbf51d657d
parent 6c13fd75c9588331e31f252df30d63fab215bc55
parent cc05913ee3f5efc86d659e216a60c0a6d1cb8f56
author openharmony_ci <120357966@qq.com> 1711506771 +0000
committer Gitee <noreply@gitee.com> 1711506771 +0000

!467 Fix doc descriptions
Merge pull request !467 from haotuo/fix_docsQc xtree 8068e759771b39820f06c8258b8fb5f6edfa03c4
parent 422f5563fa8c1d4196b0349ca21b572b7ae4bb87
author wangyan <wangyan431@huawei.com> 1711506361 +0800
committer wangyan <wangyan431@huawei.com> 1711506361 +0800

补充ndk接口名称

Signed-off-by: wangyan <wangyan431@huawei.com>
'\x$tree e6ddb9ca64a4a2ee56d05a5df2dfce81829621f8
parent 6c13fd75c9588331e31f252df30d63fab215bc55
author guozonghao <guozonghao@huawei.com> 1711502195 +0800
committer guozonghao <guozonghao@huawei.com> 1711505059 +0800

sdk中增加手势接口

Signed-off-by: guozonghao <guozonghao@huawei.com>
'/eox<tree 29d53ad357dea3a2e36eadfc936a5fdbf51d657d
parent 6c13fd75c9588331e31f252df30d63fab215bc55
author haotuo <haotuo@huawei.com> 1711503765 +0800
committer haotuo <haotuo@huawei.com> 1711503765 +0800

Fix doc description

Signed-off-by: haotuo <haotuo@huawei.com>
Change-Id: I9b650fcdc38611fda13e8ca947c41bb8ab2b4f84
caxVtree 3b3c4382dd1854f44e4dc0d2479dba99d17374ed
parent d0f4415099bf1674c0c94f14b3d012a70d86f49f
parent 851250cac0a8fc95b2c56df0b4043d74177d0140
author openharmony_ci <120357966@qq.com> 1711463109 +0000
committer Gitee <noreply@gitee.com> 1711463109 +0000

!465 [NDK] custom node interfaces libace
Merge pull request !465 from lisitao/ndk_list_7dg.xQtree 256924a218bc35efe04f0d62aea5d93a51c26e55
parent 0597495ae321743a90b77b7ed37809d57d24ea2a
parent bf18f4034c67d89df93d01605b6ff138877e3cf4
author openharmony_ci <120357966@qq.com> 1711453843 +0000
committer Gitee <noreply@gitee.com> 1711453843 +0000

!462 change av screen capture build path
Merge pull request !462 from 杰尼/masterOgx tree 256924a218bc35efe04f0d62aea5d93a51c26e55
parent 0597495ae321743a90b77b7ed37809d57d24ea2a
author liyang <liyang782@huawei.com> 1711444980 +0800
committer liyang <liyang782@huawei.com> 1711444980 +0800

change av screen capture build path

Signed-off-by: liyang <liyang782@huawei.com>
V}Xēx3tree 39ec534d025033943a3989bb5cd429c70fad4b69
parent f5b8df3be184321482cfb6a5b47d5f2dde3be1a5
author wangyan <wangyan431@huawei.com> 1711443420 +0800
committer wangyan <wangyan431@huawei.com> 1711443714 +0800

修改接口和注释，跟电子流保持一致

Signed-off-by: wangyan <wangyan431@huawei.com>
	qhx*tree 06b9b56c4b70f42a3c90ea625144343c48b3ee99
parent efc944a6d80ec5297b3d1c27fc3b0fecc760a9be
author mayunteng_1 <mayunteng@huawei.com> 1711441481 +0800
committer mayunteng_1 <mayunteng@huawei.com> 1711441481 +0800

多模增加事件注入接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
@jxEtree 60ae783e95e5c0bd762fee527a9cd77b0303f0d5
parent eb7059bff1aeff3e9ad465741758f281b7037a0e
parent 09de8d3278507d17505ab2cae31210d6db5b9593
author openharmony_ci <120357966@qq.com> 1711440761 +0000
committer Gitee <noreply@gitee.com> 1711440761 +0000

!402 获取offset的sdk
Merge pull request !402 from 马靖涛/20240311@fVxOtree c870eccd4b35e43a1f35b41fe7acca4d0f0fe876
parent efc944a6d80ec5297b3d1c27fc3b0fecc760a9be
parent 23d05c2573b7650fa032f1f186a2e02a07ebdb0e
author openharmony_ci <120357966@qq.com> 1711440531 +0000
committer Gitee <noreply@gitee.com> 1711440531 +0000

!450 [NDK] custom node interfaces
Merge pull request !450 from lisitao/ndk_list_66DgxPtree cfb04a1197c508b1b684113be7af1fb6cf9e8954
parent fd69e944abeeea89646b13a33cb0dd80d7b14aab
author changleipeng <changleipeng4@huawei.com> 1711434443 +0000
committer Gitee <noreply@gitee.com> 1711434443 +0000

update graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json.

Signed-off-by: changleipeng <changleipeng4@huawei.com>nxOtree 29cb3b20afa79c9719fe8251aa8a6e576600d306
parent 6877e0d8de1dbb5fd33ab41f5f0a05d040e1e513
author changleipeng <changleipeng4@huawei.com> 1711434375 +0000
committer Gitee <noreply@gitee.com> 1711434375 +0000

update graphic/graphic_2d/native_drawing/drawing_text_typography.h.

Signed-off-by: changleipeng <changleipeng4@huawei.com>nxOtree ff18ec13c4b2fda685594947659a86b2fbfb339b
parent f06e937eea56baed11785e1475374310e36b429a
author changleipeng <changleipeng4@huawei.com> 1711434092 +0000
committer Gitee <noreply@gitee.com> 1711434092 +0000

update graphic/graphic_2d/native_drawing/drawing_text_typography.h.

Signed-off-by: changleipeng <changleipeng4@huawei.com>mǟxOtree 603475f4ff8773cf1d8ec7ee0571c5ba38ba076b
parent c3447c77b228517cde2679462efda77c1b4dce84
author changleipeng <changleipeng4@huawei.com> 1711433928 +0000
committer Gitee <noreply@gitee.com> 1711433928 +0000

update graphic/graphic_2d/native_drawing/drawing_text_typography.h.

Signed-off-by: changleipeng <changleipeng4@huawei.com>>n6xwtree d01b7ebceda07caed4fc41dd98d83fd7b58f07b9
parent df1aaa483fcd736fdb48c7cb23d6169121fb2917
parent efc944a6d80ec5297b3d1c27fc3b0fecc760a9be
author changleipeng <changleipeng4@huawei.com> 1711433583 +0000
committer Gitee <noreply@gitee.com> 1711433583 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 03013lmm

Signed-off-by: changleipeng <changleipeng4@huawei.com>axJtree 4209e16d18d78dcc343a14251e8d526f7bf74151
parent 0abec924483e5d93202a2e7999b4a9503ee00db7
parent 4f37ba2e8df486de76bf266b8222629098437fe9
author openharmony_ci <120357966@qq.com> 1711426411 +0000
committer Gitee <noreply@gitee.com> 1711426411 +0000

!389 字体新增ndk接口
Merge pull request !389 from changleipeng/0308yqf=hYxItree 492ac2f786eceae58cc20c28e7ad64d441ec5878
parent 0bb89661d91a14ca261f22bde37724c4cf164f06
parent f6d063b07cf1736653ad5ab96bef7bf393a87b04
author openharmony_ci <120357966@qq.com> 1711417179 +0000
committer Gitee <noreply@gitee.com> 1711417179 +0000

!454 adapt native window so path
Merge pull request !454 from 杰尼/masterex)tree 98878acc391e65f5c341a3c850f1f3a2f23b4601
parent 0bb89661d91a14ca261f22bde37724c4cf164f06
author gushuheng <gushuheng@huawei.com> 1711415801 +0800
committer gushuheng <gushuheng@huawei.com> 1711415801 +0800

gesture API struct update to typedef
Signed-off-by: gushuheng <gushuheng@huawei.com>
^ڛxtree 77919b85eb421f5c7304893aa0acbcf152d31c74
parent 2aa635de80ca3e7166fb9841eaaf285d968d2497
author liyu233 <liyu287@huawei.com> 1711365230 +0800
committer liyu233 <liyu287@huawei.com> 1711365230 +0800

AVPlayer支持0.5/1.5倍速播放

Signed-off-by: liyu233 <liyu287@huawei.com>
2ZxVtree bb468f8832180b63893fed315cd9a4027569180f
parent 0bb89661d91a14ca261f22bde37724c4cf164f06
author huchang <huchang4@huawei.com> 1710149363 +0800
committer huchang <huchang4@huawei.com> 1711363321 +0800

add mark interface on audio renderer

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I2d2f2b04852ceadf73d9615448bf306051d49094
gx,tree 00c224ae35bfbdc60a82adffcf0af31ab8169763
parent 0bb89661d91a14ca261f22bde37724c4cf164f06
author wangyan <wangyan431@huawei.com> 1711362248 +0800
committer wangyan <wangyan431@huawei.com> 1711362248 +0800

AVSource支持自定义数据源NDK接口

Signed-off-by: wangyan <wangyan431@huawei.com>
hPxXtree 85c134b0c39e01df0c916e4d66e686a2bc52f9ab
parent 04662bd3af8c0204dc1364ec0a2e00bd3a4ab487
parent db902c9c1c4dfb4c6eb24bce168f73ae6ea75b7f
author openharmony_ci <120357966@qq.com> 1711361460 +0000
committer Gitee <noreply@gitee.com> 1711361460 +0000

!395 新增音频NDK 设置获取音量接口
Merge pull request !395 from ancimoon/masterR-vcxtree 45a995ea10fa1bf3681db3c8271a38066fc974a2
parent 0d3c621daa1b395e36fdbab95a02e42608d5d70b
author liyu233 <liyu287@huawei.com> 1711358228 +0800
committer liyu233 <liyu287@huawei.com> 1711358228 +0800

AVPlayer支持0.5/1.5倍速播放

Signed-off-by: liyu233 <liyu287@huawei.com>
q-Zjxtree 4d32ea990bd1252fcacdab8c6f1deae21c6a5483
parent 04662bd3af8c0204dc1364ec0a2e00bd3a4ab487
author liyang <liyang782@huawei.com> 1711357244 +0800
committer liyang <liyang782@huawei.com> 1711357244 +0800

adapt native window so path

Signed-off-by: liyang <liyang782@huawei.com>
$W`xtree 930c422077d86d99309a55cd92b9dfe57acd2d6d
parent 04662bd3af8c0204dc1364ec0a2e00bd3a4ab487
author liyu233 <liyu287@huawei.com> 1711356552 +0800
committer liyu233 <liyu287@huawei.com> 1711356552 +0800

AVPlayer支持0.5/1.5倍速播放

Signed-off-by: liyu233 <liyu287@huawei.com>
fZlx[tree 8b7df882226e59ea14f6ecf6d556999fa8c59eb9
parent bec513ee9339ff147cac00a07d12768c2ab3d76c
author changleipeng <changleipeng4@huawei.com> 1711078498 +0000
committer changleipeng <changleipeng4@huawei.com> 1711355178 +0000

增加设置与获取高度模式的接口声明(添加注释）

Signed-off-by: changleipeng <changleipeng4@huawei.com>
U	vxotree d92ad90a29351c4eb29b90a0ea0e3716b295829d
parent e7bd3878c2680c40f28a4d89f1c044efc82c51ec
parent 2665634f1705cbb6b7e0f474615d3a5a014b07cf
author openharmony_ci <120357966@qq.com> 1711192339 +0000
committer Gitee <noreply@gitee.com> 1711192339 +0000

!367 增加OH_NativeXComponent_GetTouchEventSourceType接口
Merge pull request !367 from sunbees/XCGetSourceTypevxXtree b7e8c0192d972696f34f1e5359d2d1f240a62446
parent 7e1d36d02d4f270c018d2673cb3479e5ac69212c
parent 529139895a7ead7e8257bec3d716d0fbce76b0f9
author openharmony_ci <120357966@qq.com> 1711184306 +0000
committer Gitee <noreply@gitee.com> 1711184306 +0000

!447 增加DrawPixelMap接口及相关类型
Merge pull request !447 from hw_yang/pixelmap<,q|x5tree c8b1d02b173df2a2ff6e1713e904b5a7692259fd
parent a65a76759045294a70f5cbf71961a7a10adc8f84
author kangchongtao <kangchongtao@huawei.com> 1710158162 +0800
committer kangchongtao <kangchongtao@huawei.com> 1711182894 +0800

get uv_loop interface discard

Signed-off-by: kangchongtao <kangchongtao@huawei.com>
cӜxLtree 6e00186c94c95099c0e7ad47d7e66a58db14cf57
parent 45df9fec4a9be90191baeb3de3fead73fa22ede5
author m00472246 <majingtao1@huawei.com> 1710158461 +0800
committer m00472246 <majingtao1@huawei.com> 1711181362 +0800

获取offset的sdk Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
'h|x\tree b7e8c0192d972696f34f1e5359d2d1f240a62446
parent 7e1d36d02d4f270c018d2673cb3479e5ac69212c
author yjx <yangjingxiao1@huawei.com> 1711157809 +0800
committer yjx <yangjingxiao1@huawei.com> 1711157809 +0800

增加DrawPixelMap接口及相关类型

Signed-off-by: yjx <yangjingxiao1@huawei.com>
Change-Id: I9f985b6ccdb9b00074c71129bab249182170cff5
-tCxDtree cf7bde6dbe84a1f2448d6af35e7082d87a6a89f2
parent 61fc9c81aecebfdbbcfe472cc435591a0b8e8487
parent f86a59cc336ee7fda7650007863710e8fc3233a3
author openharmony_ci <120357966@qq.com> 1711106663 +0000
committer Gitee <noreply@gitee.com> 1711106663 +0000

!382 Drawing开放NDK接口
Merge pull request !382 from 刘伟/pr_318|MgΓxctree 02836dc67fd7eff395d80f0c583c7f82f12dade6
parent 002182a6147565c9a923b68f879026383e74b137
parent e740df615282d3de704700a58ca661498bcfd215
author openharmony_ci <120357966@qq.com> 1711094735 +0000
committer Gitee <noreply@gitee.com> 1711094735 +0000

!429 capi检查添加since标签缺失
Merge pull request !429 from 王曹宇/feature_check_doc_sinceHwǕxUtree cc72f7b5dfa80bd8a22d49538c836c2880c94010
parent c122498a32d2a5e0aacb5130f6b226a331429a0a
parent 02dc8f69bc8912f1fe7553c96c2af4568862e120
author openharmony_ci <120357966@qq.com> 1711021573 +0000
committer Gitee <noreply@gitee.com> 1711021573 +0000

!303 [WIP] Add napi_define_sendable_class
Merge pull request !303 from diartyz/sendablegxBtree 046fb602246ed19c7e280ee3ed70c4856d2466eb
parent a424c18eb586be5de5f8b2bae1657fd5dce24414
parent 57f3070cdc7e031f382b8073046faadc14ebd9f4
author openharmony_ci <120357966@qq.com> 1710937473 +0000
committer Gitee <noreply@gitee.com> 1710937473 +0000

!423 NDK gesture C-API
Merge pull request !423 from gushuheng/master`xXtree d07a2e3ba67b1a49bf4aefa0f047488df939bd1a
parent 6fb2edbc0ce2d587cf10f15c6a2ddc65f35752f5
author huchang <huchang4@huawei.com> 1710146656 +0800
committer huchang <huchang4@huawei.com> 1710921117 +0800

add volume control on ndk audio render

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I4421b1e88c4bf1c20353bc4574b8a686210c98c9
{jx5tree dbc38fe0670b11a557c6decf48ba8834a26f282c
parent 12497c25bca06156fc64ee99311d8f6042b8b4ad
author changleipeng <changleipeng4@huawei.com> 1709889056 +0000
committer changleipeng <changleipeng4@huawei.com> 1710920224 +0000

!389 字体新增ndk接口

Signed-off-by: changleipeng <changleipeng4@huawei.com>
rhfx!tree 9ed1bb29b77c5d9f655e6a0f2354d902fc419899
parent dc62709118125969407da9b9656e49a9d46f4dfe
author changleipeng <changleipeng4@huawei.com> 1710906837 +0000
committer changleipeng <changleipeng4@huawei.com> 1710906837 +0000

修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
h]:x3tree 9d90b148cc04165f21aa0edca1c9327c858195db
parent a431cca46c8a5566538e2a3cfa83e9e9f8614836
author Gushuheng (Simon) <g00480395@china.huawei.com> 1710674369 +0800
committer Gushuheng (Simon) <g00480395@china.huawei.com> 1710903263 +0800

NDK gesture CAPIS.
Signed-off-by: gushuheng <gushuheng@huawei.com>
]!x'tree 7317ae372eb7d134321ed33cc03ab33273d694c0
parent 31097bc7865de34a2c457537f0385b3b33d4453e
author lw19901203 <liuwei742@huawei.com> 1710332903 +0800
committer lw19901203 <liuwei742@huawei.com> 1710852170 +0800

drawing sdk_c interface commit

Signed-off-by: lw19901203 <liuwei742@huawei.com>
VxOtree 136db2093befe32c2dbf7bde47d17d512e18ec72
parent c8a6a5aad564e8d0eec6c2c1c76c8f4fb776835c
parent 08b2dda2b348dae1848b435a86e916a947cd5695
author openharmony_ci <120357966@qq.com> 1710832856 +0000
committer Gitee <noreply@gitee.com> 1710832856 +0000

!420 Screen capture API Changes in SDK
Merge pull request !420 from 杰尼/mastergxtree 273b843b5d6fd17078fae0453231c2bb6f10281e
parent c8c4ec6c5809d1b7686cb5cd685ddf5bb12cd7e6
author liyang <liyang782@huawei.com> 1710829748 +0800
committer liyang <liyang782@huawei.com> 1710829748 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
1WxXtree 150ecccae636f7d19f607628e3e35e557366be92
parent a431cca46c8a5566538e2a3cfa83e9e9f8614836
parent 65e61e2133b0ee92cf5470470e339de1e50d0c33
author openharmony_ci <120357966@qq.com> 1710821047 +0000
committer Gitee <noreply@gitee.com> 1710821047 +0000

!366 支持获取post以及put请求的body。
Merge pull request !366 from wanghui/master+;rxtree 5ff70a4e5d60e697e90682f656d4ce699840f8f2
parent 6d9bb7a00e62253e0f61955c533316dad8c1cec2
author liyang <liyang782@huawei.com> 1710819871 +0800
committer liyang <liyang782@huawei.com> 1710819871 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
MWKxtree 7bfe7775f1b1fc52abaac910c2815e227e300d9a
parent d5a32a9c3ae16b7a094765859e276344ab6d5172
author liyang <liyang782@huawei.com> 1710814122 +0800
committer liyang <liyang782@huawei.com> 1710814122 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
 W4xtree 2743d5e6f9eec44147a0c2306f609258041165f9
parent 03933fe09cac2085613bcfffd1a3c67f9ae8eb20
author liyang <liyang782@huawei.com> 1710760062 +0800
committer liyang <liyang782@huawei.com> 1710760062 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
kMWxtree 0585429406bac652553202611a75d6b7f3d2aa07
parent 804821a5e1d66aad8b25e0ca41a2a5d26a4b5541
author liyang <liyang782@huawei.com> 1710755251 +0800
committer liyang <liyang782@huawei.com> 1710755251 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
8V[xtree 94412776e9678b18947836aba8d3c17e46362c85
parent c1330a2dd3a4f19ae9be7bfaf3cd8faa0247bf28
author liyang <liyang782@huawei.com> 1710754869 +0800
committer liyang <liyang782@huawei.com> 1710754869 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
iWxtree 2703bed3a5b6f6c1a966abc8f16fd0b2f39c0aa6
parent 74ee41b6ba69125779233e8aea739ef659d213e6
author liyang <liyang782@huawei.com> 1710754480 +0800
committer liyang <liyang782@huawei.com> 1710754480 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
b6Wxtree 65c473831e219f869102f837605894c4ff2814fa
parent a65a76759045294a70f5cbf71961a7a10adc8f84
author wangcaoyu <wangcaoyu@huawei.com> 1710583222 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1710583222 +0800

add check since of api

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
Xwx3tree 883aa3f7312d6b8c0622c8e6807406aebf44c5b2
parent 7566eb0a979b2e7677760d750b64b4737a334a40
author changleipeng <changleipeng4@huawei.com> 1710578439 +0000
committer changleipeng <changleipeng4@huawei.com> 1710581614 +0000

根据检视意见修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Ai(xdtree a024e1feeb52a490969944f1572a8a87fdf3ad2a
parent 14ad878a2b3aed8894dc7264bd01702a9624a4ba
author sunbees <sunqinjia@huawei.com> 1710484397 +0800
committer sunbees <sunqinjia@huawei.com> 1710572781 +0800

add OH_NativeXComponent_GetTouchEventSourceType

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I77ef9b7e81d031ba6432c85caaf821b06f8db8e2
=q9xStree 283cfafd5bd0aacbcf02f709250ea0e811d9b744
parent 6ab6f8a1c6d0646cc25517fbfc85330ed024e2ca
parent 4cc9c6ed68016f1c9a0393cd5e96ca093b48f8ca
author openharmony_ci <120357966@qq.com> 1710570142 +0000
committer Gitee <noreply@gitee.com> 1710570142 +0000

!419 【fix】修正ndkjson的函数名
Merge pull request !419 from 董博斯/mastersxtree d6d82d6d23e613cbbd57e9f05d72b948e75b3fe4
parent 6ab6f8a1c6d0646cc25517fbfc85330ed024e2ca
author liyang <liyang782@huawei.com> 1710556511 +0800
committer liyang <liyang782@huawei.com> 1710556511 +0800

Screen capture API Changes in SDK

Signed-off-by: liyang <liyang782@huawei.com>
X<xAtree 283cfafd5bd0aacbcf02f709250ea0e811d9b744
parent 6ab6f8a1c6d0646cc25517fbfc85330ed024e2ca
author dongbosi@huawei.com <dongbosi@huawei.com> 1710555567 +0800
committer dongbosi@huawei.com <dongbosi@huawei.com> 1710555567 +0800

fix the function name of ndkjson

Signed-off-by: dongbosi@huawei.com <dongbosi@huawei.com>
_hٔxDtree d471e3d0d374ffc17213cd9951edc4354fc08341
parent d8d75c25f6253b198bbb56234b676976a4b25e9f
parent 8fd77796369445081d2218ebcb76b70ad10561f3
author openharmony_ci <120357966@qq.com> 1710498278 +0000
committer Gitee <noreply@gitee.com> 1710498278 +0000

!375 ICU4C提供为C API
Merge pull request !375 from 罗博明/mastere4x^tree 88117ce4bdfb0bc344236297954816c7e5e1f05b
parent 163d7d97c543f52a02a1b11d7613ea3cf4fc1ce8
parent a073b31c77ac7ee847da62f09dc8d85fec03a768
author openharmony_ci <120357966@qq.com> 1710489729 +0000
committer Gitee <noreply@gitee.com> 1710489729 +0000

!384 多模增加事件和按键状态查询接口
Merge pull request !384 from mayunteng/masterSzxPtree 368368e859ef1a7298d619fd7d599357ffa11d9b
parent 14ad878a2b3aed8894dc7264bd01702a9624a4ba
parent f86092f6e7354dc2a6f476e8349456af367371e1
author openharmony_ci <120357966@qq.com> 1710484932 +0000
committer Gitee <noreply@gitee.com> 1710484932 +0000

!356 更新data_asset包含头文件
Merge pull request !356 from renjiecui/master	lڟxOtree 31d933370b0dc60c7e20d503d9df6e800585e31c
parent 0285ec3fc96b082669d4be22b76544fd1f47e5ae
parent 8445a05e48f0157e16a2dbc3f76c60f95b0d77df
author openharmony_ci <120357966@qq.com> 1710475470 +0000
committer Gitee <noreply@gitee.com> 1710475470 +0000

!411 customDialog c-api上传
Merge pull request !411 from 邹林肯/customDialogjWx-tree 7ab86e6e01a14950de5665bd8cf6dae78f723729
parent 68fc5d5ea340e3a054a4a512354a1e37a19529cf
author changleipeng <changleipeng4@huawei.com> 1710329059 +0000
committer changleipeng <changleipeng4@huawei.com> 1710474036 +0000

修改接口声明

Signed-off-by: changleipeng <changleipeng4@huawei.com>
LexHtree dea27b0d466f16d07278d2cd60200615152a7400
parent 0285ec3fc96b082669d4be22b76544fd1f47e5ae
author liu-zelin <liuzelin8@huawei.com> 1707032610 +0800
committer liu-zelin <liuzelin8@huawei.com> 1710467692 +0800

Add napi_define_sendable_class

Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I90ZTI?from=project-issue
Signed-off-by: liu-zelin <liuzelin8@huawei.com>
Change-Id: I2b327b04eb6bf53399b6dd9f8458cbe415b2c3bb
؎xutree cab28f913104b6c0066e9fa0e2dae532fabe5d1c
parent 6df467185b5c52f56e2e41cf9339522c6a6cffd5
author mayunteng_1 <mayunteng@huawei.com> 1710313308 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710466505 +0000

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: Id54cda4f7171e4b552ac271e120f774f3c6ba160

Change-Id: If96b725d291d2fe1cad28ddd2c3ad583a2adc41c
lrxStree 044bb79875c4896f658ff2f4a658c3eb2d345422
parent 116a14a28a1fecc976fcf0f324bb8e985a3f1315
parent 4a1fa2f648b6f88f5b99dd76e1198d24c91c67f6
author openharmony_ci <120357966@qq.com> 1710424188 +0000
committer Gitee <noreply@gitee.com> 1710424188 +0000

!416 fix NativeVsync SystemCapability
Merge pull request !416 from 刘瓒/NativeVsynci$x&tree f70721fea1cbfc1be12dfaa9dd0de745d93b08b9
parent 601489a1aceaf74b4019b91558fb8ff6ebcbf4cd
author zoulinken <zoulinken1@huawei.com> 1710340091 +0800
committer zoulinken <zoulinken1@huawei.com> 1710409523 +0800

upload c-api customDialog SDK

Signed-off-by: zoulinken <zoulinken1@huawei.com>
q_[xhtree 3ff57add3db4932c47af2c8c5ff4ae364fde5e73
parent 64f2817b7bf72490d4715a1796e1ee4c39ba739f
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
author 刘瓒 <liuzan9@huawei.com> 1710379150 +0800
committer 刘瓒 <liuzan9@huawei.com> 1710400188 +0800

Merge remote-tracking branch 'origin/master' into local

Change-Id: I56316545baadf417872c3d598c1d1ead485640eb
oxbtree 6746027254c57304734f798a7108f888f6680178
parent 3934bda7cf1ca9129012d263c11aa1ded2b52522
parent e2d35050768fd50cfade9a704cfd6d760a4ddeb6
author openharmony_ci <120357966@qq.com> 1710385958 +0000
committer Gitee <noreply@gitee.com> 1710385958 +0000

!373  新增napi接口napi_load_module_with_info
Merge pull request !373 from chenlincl3/module_info'PpxOtree 5a16942124623273acb7f83612cd7878fafde3bc
parent 530a91f591b9ef6cf4290a25398c890d35c29174
parent 5730f1daba04bc7d063c1fc7297f9e2d756b49e3
author openharmony_ci <120357966@qq.com> 1710385492 +0000
committer Gitee <noreply@gitee.com> 1710385492 +0000

!414 录屏对外接口开放修改
Merge pull request !414 from zhangq444/master#oxrtree c7ecf12b79e7f9070f9c0b65f643ce6b7775effe
parent 95474a37a8913ac96bc834ff405c2a0ef0761c3e
parent 530a91f591b9ef6cf4290a25398c890d35c29174
author chenlincl3 <932565568@qq.com> 1710382316 +0800
committer chenlincl3 <932565568@qq.com> 1710382316 +0800

Merge remote-tracking branch 'origin/master' into module_info

Change-Id: Ie95b639dd7706b7f255fe5c9bc16e8ea43cf7dc1
ZmNxZtree e65ce6407def689e437eb911ad7a1380c3e6eadf
parent 601489a1aceaf74b4019b91558fb8ff6ebcbf4cd
parent 429fb3186c9c8125a266d2df640b908fc56b90cd
author openharmony_ci <120357966@qq.com> 1710382033 +0000
committer Gitee <noreply@gitee.com> 1710382033 +0000

!320 提供事件循环运行和关闭的能力
Merge pull request !320 from shilei91/master9xϛx;tree 6e46401f03e37a248bbac58ad1a918750f1497fb
parent 6fb2edbc0ce2d587cf10f15c6a2ddc65f35752f5
author 刘瓒 <liuzan9@huawei.com> 1710379145 +0800
committer 刘瓒 <liuzan9@huawei.com> 1710379145 +0800

fix NativeVsync

Signed-off-by: 刘瓒 <liuzan9@huawei.com>
Change-Id: I6991347d203e0200a041dd99d9dc65cee156a9aa
dәxItree f6389ddc4470bc02a56517646b2bc0726ea4d355
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
parent 3fc38ab1513cafabbb77a8fd0ccfdfd488bb892a
author openharmony_ci <120357966@qq.com> 1710339163 +0000
committer Gitee <noreply@gitee.com> 1710339163 +0000

!380 NDK C-API add extends api
Merge pull request !380 from firminly/masterbxtree 527bc08e841afa8a32d42d50bbcfac4f1048ad7b
parent a65a76759045294a70f5cbf71961a7a10adc8f84
author liyi0309 <liyi58@huawei.com> 1710218854 +0800
committer liyi0309 <liyi58@huawei.com> 1710325719 +0800

add extend C-API
Signed-off-by: liyi0309<liyi58@huawei.com>
;Nx=tree 6c8692a6354b433b3211905b6d15ce6e94bb6469
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
author zhangqiang <zhangqiang342@huawei.com> 1710322753 +0800
committer zhangqiang <zhangqiang342@huawei.com> 1710322753 +0800

20240313  录屏对外接口开放修改

Signed-off-by: zhangqiang <zhangqiang342@huawei.com>
lxrtree 88ce91e60d2e87c08c52e7c32e70c44c13c46275
parent 93598f2ce92a4b469e2be1e51933eafafaeefa38
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
author chenlincl3 <932565568@qq.com> 1710316633 +0800
committer chenlincl3 <932565568@qq.com> 1710316633 +0800

Merge remote-tracking branch 'origin/master' into module_info

Change-Id: I55397a6ed365457d926764ddea7d06f19ff30dea
Mmxxtree 2d3793002e6c868b575c3c7d7e43489ade23ea6a
parent 11ec1b0058df1273309d371ff74c8d6a6ab46288
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
author changleipeng <changleipeng4@huawei.com> 1710312523 +0000
committer Gitee <noreply@gitee.com> 1710312523 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 0306lmm

Signed-off-by: changleipeng <changleipeng4@huawei.com>{x'tree b1c0a5b71d7f17110b7cdf4b053f3b3fc55f7216
parent a2b317fdedb9068072d8f3205fab3b35d894eb09
author changleipeng <changleipeng4@huawei.com> 1710311049 +0000
committer changleipeng <changleipeng4@huawei.com> 1710311049 +0000

修改注释

Signed-off-by: changleipeng <changleipeng4@huawei.com>
b%x?tree fb585e99841e20263755638827b625dbc0f8e6a8
parent fd1281f349d7065213a4d2c0ca831fbe1d006f7f
author mayunteng_1 <mayunteng@huawei.com> 1710310729 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710310729 +0000

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: Ibfa41b0b16c8c513e8b85ddecbed0cbb418b8029
/bx?tree 30bd1ed2ff278495e76e4e8ff6112cc9bb473102
parent 0de91dcb2f166340bf4aae2bee5faca6857868d3
author mayunteng_1 <mayunteng@huawei.com> 1710310210 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710310210 +0000

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: I5d7daad0fc9414f0534862a6cc2df8d6fedd702c
(cxWtree a8f1f320ebe30babbdde901a98d1b77d6ca76588
parent 12497c25bca06156fc64ee99311d8f6042b8b4ad
author chenlincl3 <932565568@qq.com> 1709726598 +0800
committer chenlincl3 <932565568@qq.com> 1710310058 +0800

新增napi_load_module_with_info

Signed-off-by: chenlincl3 <chenlin201@huawei.com>
Change-Id: Ic90abbde2b64535bb522895e685d41c6ef65f5c0
,ilxntree 5a513e71c8a3382667df9bf02108cdfbd2aed35a
parent 1899b08ec0fdce06d2cbfbe217dd047825e146b6
author mayunteng_1 <mayunteng@huawei.com> 1710298493 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710304482 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: I08f565f004c3922d384e8c76b1e23e494d5bce36
?؂xntree 821847b8affdc49f1f68c2703040ae6c4cf291f3
parent 331be112ec9ba1c4a794e75e6f5a3c2c6cf538e3
author mayunteng_1 <mayunteng@huawei.com> 1710295038 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710295038 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: Ice4e07fbc312daaa292f9c26e79fddcd7fcfe973
Axntree d44eca1b74486de73add54b99d19fbc7b2ae3119
parent 613fda994450daa95b9cc1687b5afcc6a347fece
author mayunteng_1 <mayunteng@huawei.com> 1710293749 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710293749 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: I3397ba37e1fb173782037b695faf19e9113b8e0f
Exntree 56041fcd4866241640badbd52d1735a2e836a019
parent 6259878728d699fcb2dac5b6d7e897968728aeba
author mayunteng_1 <mayunteng@huawei.com> 1710293488 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710293488 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: I27d7ba63728b6ad579e56617292990c0d6da6116
Bx'tree 3ca6432457987dace7486fbe98c47641bdbe34e6
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author changleipeng <changleipeng4@huawei.com> 1710250999 +0000
committer changleipeng <changleipeng4@huawei.com> 1710250999 +0000

添加声明

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Tax<tree cf1c25ca414ee59c455af6ab41b706949d0a9593
parent 34b1409ba32865ef94f9e8176d416c61ffc3f183
author shilei <shilei91@huawei.com> 1710247682 +0000
committer shilei <shilei91@huawei.com> 1710247682 +0000

add interface

Signed-off-by: shilei <shilei91@huawei.com>
Change-Id: Ia0bc64c3312859261d47d4b05bb13776df453481
o9^xtree eb50d209c4a5b7e637419b108e77dbdaed93e74d
parent 482edf3e2f06ff26baf890b532484edc15054ee2
author 罗博明 <luoboming@huawei.com> 1710246562 +0000
committer Gitee <noreply@gitee.com> 1710246562 +0000

remove useless

Signed-off-by: 罗博明 <luoboming@huawei.com>3Z0xAtree 9cd96937674e9460d918f2c0b3707a35403db13a
parent acbb1a2f5d157be7ad83a46954c7c7ad47a2a3b9
parent e74698487ca8db03225a746bd27b22db251687f5
author openharmony_ci <120357966@qq.com> 1710246535 +0000
committer Gitee <noreply@gitee.com> 1710246535 +0000

!368 add create env api
Merge pull request !368 from zhuhan/env0306Y^xtree 465ae3164b7ce465f71dd0cbb2fbcbeefd27c992
parent b4e8f7a4ae5c0f13ca6d2eb0b5e52fbb4ef064a5
author 罗博明 <luoboming@huawei.com> 1710245658 +0000
committer Gitee <noreply@gitee.com> 1710245658 +0000

useless 

Signed-off-by: 罗博明 <luoboming@huawei.com><Yxtree b5439a0df38ef4d7b636026499b22fe46030f151
parent d34353716d261ae2dd633b8b1bea252f8966eb6a
author 罗博明 <luoboming@huawei.com> 1710245554 +0000
committer Gitee <noreply@gitee.com> 1710245554 +0000

useless 3

Signed-off-by: 罗博明 <luoboming@huawei.com>WVxtree e7961f2fc7c9d5fee24d263b391bb76917e6f527
parent b2d515c6d65a9fa7feb3e940942f97f26f31c44e
author 罗博明 <luoboming@huawei.com> 1710245543 +0000
committer Gitee <noreply@gitee.com> 1710245543 +0000

useless 2

Signed-off-by: 罗博明 <luoboming@huawei.com>7	Wxtree 76da03103f92a602ec3e61292bf5da7d009b60bd
parent c2ced711fac99d16567b3abc7f815ab32c92224a
author 罗博明 <luoboming@huawei.com> 1710245533 +0000
committer Gitee <noreply@gitee.com> 1710245533 +0000

remove useless

Signed-off-by: 罗博明 <luoboming@huawei.com>YӜxLtree fafb9f99953cd7166bae707eb96f247fa054d774
parent a65a76759045294a70f5cbf71961a7a10adc8f84
parent c791a6a12328cad85c0aa8d39a1fbc2c73d280b4
author openharmony_ci <120357966@qq.com> 1710240331 +0000
committer Gitee <noreply@gitee.com> 1710240331 +0000

!400 ndk.json新增hiappevent接口
Merge pull request !400 from 于好强/yhqlPxtree 6e4c800a385c4f1be77b67375a775c18d47ebcc9
parent d714e82658b4adb8ccfcc04fbfc01bffea0dc6c4
author 罗博明 <luoboming@huawei.com> 1710231177 +0000
committer Gitee <noreply@gitee.com> 1710231177 +0000

remove @deprecated

Signed-off-by: 罗博明 <luoboming@huawei.com>#\cxtree 0ec0c90fd235cd5dfd6276c1ec7e75a37a0a73cb
parent 5a2e33547e2ba757552783f4ef58a9855d4f508d
author mengjingzhimo <luoboming@huawei.com> 1710230127 +0800
committer mengjingzhimo <luoboming@huawei.com> 1710230127 +0800

remove empty

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
\x!tree 4b2e68e5d295df9f1c5adca2564e1376d88002f8
parent a65a76759045294a70f5cbf71961a7a10adc8f84
author mengjingzhimo <luoboming@huawei.com> 1710228894 +0800
committer mengjingzhimo <luoboming@huawei.com> 1710228894 +0800

add icu4c c api

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
R[ʞxntree 9121d5db9b8f0e315c62c8d1bb38ad19b590082b
parent 85aae69c51e119225722cde2af2f79aa834b5a0a
author mayunteng_1 <mayunteng@huawei.com> 1710165370 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710165370 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: I74b8f4b0432b2459cae0141168e0cec06030e0ec
yFxntree d031850ba68dec21109075d0f7614977a5a93ce0
parent a65a76759045294a70f5cbf71961a7a10adc8f84
author mayunteng_1 <mayunteng@huawei.com> 1710165143 +0000
committer mayunteng_1 <mayunteng@huawei.com> 1710165143 +0000

多模增加事件和按键状态查询接口

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: Iaaff0f8e4b8523042ed0a9ec354c87285b888ca0
8xtree 4f5dc8ea20b2a85be00b3f4f4dbbef35e37d66b8
parent f22e80c35ff62e6d448a4520ef3476899358e87e
author yuhaoqiang <yuhaoqiang@huawei.com> 1710158052 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1710158052 +0800

ndk.json修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
\xtree f8787d71565a3db9bdfe56611c39d9ab50fee25c
parent f9ba2b3b9b0aa1226fc39eca26a2fdca00754c27
author yuhaoqiang <yuhaoqiang@huawei.com> 1710157463 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1710157463 +0800

ndk.json修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
]HxHtree c52bfbd6698bd0c6340e7059b5b8f9ccc4a91d1c
parent 6fb2edbc0ce2d587cf10f15c6a2ddc65f35752f5
parent f9ba2b3b9b0aa1226fc39eca26a2fdca00754c27
author openharmony_ci <120357966@qq.com> 1710157419 +0000
committer Gitee <noreply@gitee.com> 1710157419 +0000

!345 hiappevent ndk接口更新
Merge pull request !345 from 于好强/yhq'lvxTtree 4782df5494a764381a205477429e78b3d2bd15ac
parent 8b2372129cbc3ad15bcd0ecd2ab947c08950476d
parent 7d917e7f1597e28f8db94fa47ea12da8ee660ed6
author openharmony_ci <120357966@qq.com> 1709953508 +0000
committer Gitee <noreply@gitee.com> 1709953508 +0000

!372 xcomponent提供surface显式回调
Merge pull request !372 from 李月关/030602oxGtree 04ea4e57adb8d337d4890f30a7c85e7337c71564
parent 12497c25bca06156fc64ee99311d8f6042b8b4ad
parent c82b5a6598805bb4b44e2201485a54dcc4f9d6e1
author openharmony_ci <120357966@qq.com> 1709950998 +0000
committer Gitee <noreply@gitee.com> 1709950998 +0000

!359 bitmap 新增两个接口
Merge pull request !359 from 刘伟/bitmapj!x=tree 687a4250a6c31b404d282d6cbe971fc7b69b6818
parent c470f5ced722721dd181485216d022e1a5a42a05
parent 8ba877a72782986d44bf136763468986a62b18fb
author openharmony_ci <120357966@qq.com> 1709882339 +0000
committer Gitee <noreply@gitee.com> 1709882339 +0000

!369 冗余ndk整改
Merge pull request !369 from 杨欢欢/ndk"dBxAtree d73353eef4d3fb32372e573450effd79626d980f
parent 854c05a77af90de57521cded8475476481840fec
author zhuhan <zhuhan10@huawei.com> 1709692497 +0800
committer zhuhan <zhuhan10@huawei.com> 1709881618 +0800

add create env api

Signed-off-by: zhuhan <zhuhan10@huawei.com>
Change-Id: I5de6fd308000650f60cb872287726a5beacfe52d
tY`x`tree ea131132a1b6f8ed7bd34296e2fc832f832c6bbf
parent 5f61a5ce73ae04ec65a83428b75a795f162cc234
parent 0f70ae808bd0701d8ed480254ddfc24779d8212a
author openharmony_ci <120357966@qq.com> 1709880045 +0000
committer Gitee <noreply@gitee.com> 1709880045 +0000

!370 新增接口OH_Drawing_CreateSharedFontCollection
Merge pull request !370 from guoxing/masternpxtree b62c66d4847b2bbcb79c235bda757fc4bd99660e
parent 7d2ee85c13e7e5e6b9c58a41e8c8ee302883921f
author guoxing <guoxing22@huawei.com> 1709712999 +0000
committer guoxing <guoxing22@huawei.com> 1709865545 +0000

add ndk

Signed-off-by: guoxing <guoxing22@huawei.com>
T_Qxxtree e269028f910ea651c2db94dc78a253b701137a40
parent 5b213ddfb850ef909ac77d74938f2f23f705c143
parent 5f61a5ce73ae04ec65a83428b75a795f162cc234
author 李月关 <liyueguan@huawei.com> 1709865239 +0000
committer Gitee <noreply@gitee.com> 1709865239 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 030602

Signed-off-by: 李月关 <liyueguan@huawei.com>yzxUtree 90c79ca72cc72d57401ef2295124c3181ab2bde5
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
parent 512814468db2b6a8a74669d860257853cd7df163
author openharmony_ci <120357966@qq.com> 1709864060 +0000
committer Gitee <noreply@gitee.com> 1709864060 +0000

!334 feature_intercept interface
Merge pull request !334 from zhouchaobo/0228_interceptfߘx8tree f5e961a5f6fb081c5e6b7ae2e64c48512d2567e4
parent e656db370f9ce5925ed772535a8695b92e0b9589
author w00477664 <wanghui210@huawei.com> 1709650301 +0800
committer w00477664 <wanghui210@huawei.com> 1709801124 +0800

支持获取post请求以及put请求的body。

Signed-off-by: w00477664 <wanghui210@huawei.com>
;`i؟xtree 317016072ea0bf60c78a29cc773d94966c510cd5
parent e9ae46b0efb98bb65582f2b61c6520bfff9b39e9
author 李月关 <liyueguan@huawei.com> 1709794896 +0800
committer 李月关 <liyueguan@huawei.com> 1709794896 +0800

change interface ndk json

Signed-off-by: 李月关 <liyueguan@huawei.com>
$cxtree 94f7bae1eb5c259fd83a5d9653900fe58cf4b939
parent bf09447f385dafad576960f129de512c8f7b0b72
author yuhaoqiang <yuhaoqiang@huawei.com> 1709793190 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1709793190 +0800

变量类型修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
Sax4tree e3e2bbb9072b0b8847984059eaeda878a07646f5
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author 李月关 <liyueguan@huawei.com> 1709719259 +0800
committer 李月关 <liyueguan@huawei.com> 1709719259 +0800

xComponent provides surface explicit callbacks

Signed-off-by: 李月关 <liyueguan@huawei.com>
kx\tree 90c79ca72cc72d57401ef2295124c3181ab2bde5
parent 40b39e70bf406b8946e925ff0146ca12f6610dd6
author zhouchaobo <zhouchaobo@huawei.com> 1709640225 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1709718136 +0800

feature_intercept interface

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: Ib7a4a511e7f13cf2fe91897dbd5a981d6d063619
imxdtree 141e273706c2bb2c0dc3fb0e0720c47ccfc57b73
parent f5aee18c6eb89c63647e059217e6eef9071b5f36
parent 45df9fec4a9be90191baeb3de3fead73fa22ede5
author openharmony_ci <120357966@qq.com> 1709717021 +0000
committer Gitee <noreply@gitee.com> 1709717021 +0000

!365 sdk接口新增（OH_NativeWindow_NativeWindowAttachBuffer、OH_NativeWindow_NativeWindowdetachBuffer）
Merge pull request !365 from 马靖涛/202403056xqtree ae6f44b3cc7028fbe3706b85733fac145b2b9d84
parent 7d2ee85c13e7e5e6b9c58a41e8c8ee302883921f
parent 1d18e4ce3ffbeae54ce0df1414ba8b77d4b3419c
author openharmony_ci <120357966@qq.com> 1709715116 +0000
committer Gitee <noreply@gitee.com> 1709715116 +0000

!324 增加OH_NativeXComponent_SetNeedSoftKeyboard接口
Merge pull request !324 from sunbees/xcsetNeedSoftKeyBoardxQxUtree fbe84079e0ecc54e5e68ba7eb2f5cb8bc08d29bc
parent 7d2ee85c13e7e5e6b9c58a41e8c8ee302883921f
author y30053096 <yangjinhuan@huawei.com> 1709711781 +0800
committer y30053096 <yangjinhuan@huawei.com> 1709711781 +0800

update ndk interface
Signed-off-by: y30053096 <yangjinhuan@huawei.com>

Change-Id: Ibcd752a31fc33d44e9c6a21f642c28552e929ab2
=7gxmtree ae6f44b3cc7028fbe3706b85733fac145b2b9d84
parent 7d2ee85c13e7e5e6b9c58a41e8c8ee302883921f
author sunbees <sunqinjia@huawei.com> 1709700577 +0800
committer sunbees <sunqinjia@huawei.com> 1709700577 +0800

add interface of OH_NativeXComponent_SetNeedSoftKeyboard

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I21236eb1085b501f5ff0858af304f0fe2f9ea47a
fsxtree 9c3da8cc97b6029bd13ee4564cb339b5f9e5dadc
parent 7f6c2d49428d190310e65969aa484da1ac719670
author yuhaoqiang <yuhaoqiang@huawei.com> 1709696692 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1709696692 +0800

注释修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
]xKtree 89fdd0c105ae6e28279ac3e82f858898ef602fe8
parent 854c05a77af90de57521cded8475476481840fec
parent 3454f505d3a069e99596fb66a4912d87371e80bf
author openharmony_ci <120357966@qq.com> 1709696365 +0000
committer Gitee <noreply@gitee.com> 1709696365 +0000

!355 NDK C-API add buildnode api
Merge pull request !355 from firminly/masterbFxWtree 7de084c8ca3bf7445c2b1e21a50a103363113614
parent f4e0ebf515ecca6335c34840cccf0945c1f4efa2
author liuwei <liuwei793@h-partners.com> 1709695744 +0800
committer liuwei <liuwei793@h-partners.com> 1709695744 +0800

bitmap 添加两个接口

Signed-off-by: liuwei <liuwei793@h-partners.com>
Change-Id: I3983a8f2be1b934fa1191361fce57579695902f7
	oxtree c3ffa6e8e0f5a8323b058afb0044f8ce3113f42e
parent 8fe91d07092cd15656823f9aa809cac0d0102dc2
author yuhaoqiang <yuhaoqiang@huawei.com> 1709631318 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1709690984 +0800

注释修改

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
s]vxItree dd49232af145e0f94f0677514b1423956ceb1f46
parent e38320efb9628d8ae88479f47d7c332b0c582da2
author m00472246 <majingtao1@huawei.com> 1709636718 +0800
committer m00472246 <majingtao1@huawei.com> 1709687288 +0800

sdk接口新增 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
-fNxRtree 062e54e1c23b522d85304b3eed6188aba2acc7e5
parent fa7632b172b87af2850246fa0b2bcc6288c78ca8
parent a3c7051986c1deeab9117c77f4afd0e79dacfc6b
author openharmony_ci <120357966@qq.com> 1709648995 +0000
committer Gitee <noreply@gitee.com> 1709648995 +0000

!363 新增ArkWeb NDK API
Merge pull request !363 from pilipala195/ndk_jsbridge_0305͋gx
tree c444b0a65030ca0eefc2adc41c47ec039c020210
parent fa7632b172b87af2850246fa0b2bcc6288c78ca8
author liyi0309 <liyi58@huawei.com> 1709642074 +0800
committer liyi0309 <liyi58@huawei.com> 1709642074 +0800

add build node API
Signed-off-by: liyi0309<liyi58@huawei.com>
O/xUtree 120ae2a7a102c797fb36737a0443cc44fb71b7a1
parent 2c2622d911e7f3744474c20711f07bc8802c15d4
parent 0f40bd29e50b856af1fc148fc476e4924cc0c893
author openharmony_ci <120357966@qq.com> 1709639583 +0000
committer Gitee <noreply@gitee.com> 1709639583 +0000

!309 XComponent add axis ability interface
Merge pull request !309 from zhouchaobo/0219f#xftree 120ae2a7a102c797fb36737a0443cc44fb71b7a1
parent 2c2622d911e7f3744474c20711f07bc8802c15d4
author zhouchaobo <zhouchaobo@huawei.com> 1708933034 +0800
committer zhouchaobo <zhouchaobo@huawei.com> 1709620149 +0800

XComponent add axis ability interface

Signed-off-by: zhouchaobo <zhouchaobo@huawei.com>
Change-Id: I770d52243fdcbc387e0c7e08d1589b268961d12a
ox6tree 1accbab1c9b450033c4e0aa340d313bb37464a5b
parent 2c2622d911e7f3744474c20711f07bc8802c15d4
author yangguangzhao <yangguangzhao1@huawei.com> 1709269771 +0800
committer yangguangzhao <yangguangzhao1@huawei.com> 1709602863 +0800

add native arkweb api

Signed-off-by: yangguangzhao <yangguangzhao1@huawei.com>
/cxGtree f7499cc41684000b13ffbfba26a1f4faff8beec7
parent aa17e116c3f2e83f60aca124c9638841e7a9132c
parent 80e404146dcc29cbbaf505a5c4cb3e1d21423a2c
author openharmony_ci <120357966@qq.com> 1709560978 +0000
committer Gitee <noreply@gitee.com> 1709560978 +0000

!319 新增关键资产存储NDK
Merge pull request !319 from wind/masterkxtree 34d9b46844c6c88d142f3604aaabf9f644251d9b
parent 0fe9590928ed57493ff63839acfccff57e38a6ab
author renjiecui <cuirenjie@huawei.com> 1709550541 +0000
committer Gitee <noreply@gitee.com> 1709550541 +0000

update include

Signed-off-by: renjiecui <cuirenjie@huawei.com>TxStree ff6be8daf00dfa71e0faca62e68aa351c688f4cd
parent 1cf25bc3b36fcc95f4d3cf9686bdf71563109899
parent e656db370f9ce5925ed772535a8695b92e0b9589
author openharmony_ci <120357966@qq.com> 1709517797 +0000
committer Gitee <noreply@gitee.com> 1709517797 +0000

!328 注释中存在标点符号错误。
Merge pull request !328 from wanghui/mastertxYtree bc6da09826f1056fd23e98170c55a30a94c31fa7
parent 1ad824308831d5bd56380bef3601b22f62b26a98
parent c8f47ff05f1d60efaaff4576f3d0514563bc25cc
author openharmony_ci <120357966@qq.com> 1709474536 +0000
committer Gitee <noreply@gitee.com> 1709474536 +0000

!298 增加ICU4C  NDK接口（ICONV 转码）
Merge pull request !298 from 罗博明/masterճr:xtree c0cb91c588d2bd02796185dc7f1ee8ed340e5ecf
parent 694001b9c6a81e338f667ed1b11544f9d0b63bc2
author wind <youziting@huawei.com> 1709380027 +0800
committer wind <youziting@huawei.com> 1709380027 +0800

format build.gn

Signed-off-by: wind <youziting@huawei.com>
XR%xtree a26a372ea4f241458c761fd226115af79727629f
parent f2728df452f86fbf85df24882bf1a6fa3623b20a
author 罗博明 <luoboming@huawei.com> 1709368730 +0000
committer Gitee <noreply@gitee.com> 1709368730 +0000

fix head

Signed-off-by: 罗博明 <luoboming@huawei.com>Vrxntree bb7f8603a5202b0cd124aed1828f398834698ea7
parent f4e0ebf515ecca6335c34840cccf0945c1f4efa2
parent e38320efb9628d8ae88479f47d7c332b0c582da2
author openharmony_ci <120357966@qq.com> 1709362677 +0000
committer Gitee <noreply@gitee.com> 1709362677 +0000

!322 补充nativeWindow中的format、ColorGamut、TransformType
Merge pull request !322 from 马靖涛/20240226Oyx
tree df042b5a3d87416c0ec26f8b15e1933e85c153c6
parent 7951ac03d6215c10aea52f8ca3f793a010c2e775
author 罗博明 <luoboming@huawei.com> 1709348459 +0000
committer Gitee <noreply@gitee.com> 1709348459 +0000

icu capacity

Signed-off-by: 罗博明 <luoboming@huawei.com>X?xHtree 68d523b2323dd684c09c1de5cd7d5d6c30465a42
parent 9b65c0aa00ea9c5f0e1d7cdddeb5cca6892a6be7
author yuhaoqiang <yuhaoqiang@huawei.com> 1709347905 +0800
committer yuhaoqiang <yuhaoqiang@huawei.com> 1709347905 +0800

update hiviewdfx/hiappevent/include/hiappevent/hiappevent.h.

Signed-off-by: yuhaoqiang <yuhaoqiang@huawei.com>
K9mxtree e63bd791bddf6a1e66d1cccfcf544e90f931f97e
parent c6eb4a43afae8ff26c0dc5f11cf484d5a66ca911
author 罗博明 <luoboming@huawei.com> 1709297386 +0000
committer Gitee <noreply@gitee.com> 1709297386 +0000

no check icu head

Signed-off-by: 罗博明 <luoboming@huawei.com>T\xtree a547ea54c38b36a2c73ed82848469207c5bfdb94
parent 7600460ae7f4503fda0f39f9756561f55427f8df
author 罗博明 <luoboming@huawei.com> 1709288583 +0000
committer Gitee <noreply@gitee.com> 1709288583 +0000

add system cap

Signed-off-by: 罗博明 <luoboming@huawei.com>Xxltree 4c670ecc6614383444b3958f5857ab74d5b55c00
parent 31097bc7865de34a2c457537f0385b3b33d4453e
parent 36478e620795fa720da7fd58b4b4664103ece486
author openharmony_ci <120357966@qq.com> 1709287105 +0000
committer Gitee <noreply@gitee.com> 1709287105 +0000

!347 Fix the type of memorylimit and replace name ACE with ARKUI
Merge pull request !347 from 董博斯/master,uo۝x-tree 4753488240ae6d0abd9e7e84c0a02b8f6c0ef4d5
parent 972b0cda75fcd08ad36daf166c7ce1b53cb70579
author w00477664 <wanghui210@huawei.com> 1709000341 +0800
committer w00477664 <wanghui210@huawei.com> 1709285733 +0800

修复注释中标点符号错误。

Signed-off-by: w00477664 <wanghui210@huawei.com>
=fxtree 2c046d629b6eecd4ba845e40602ce020169277a6
parent 9c50f6ccaf86520e268de1f870c8d46a317b73a0
author 罗博明 <luoboming@huawei.com> 1709285021 +0000
committer Gitee <noreply@gitee.com> 1709285021 +0000

no ndk

Signed-off-by: 罗博明 <luoboming@huawei.com>Uxbtree 4c670ecc6614383444b3958f5857ab74d5b55c00
parent 31097bc7865de34a2c457537f0385b3b33d4453e
author dongbosi@huawei.com <dongbosi@huawei.com> 1709274825 +0800
committer dongbosi@huawei.com <dongbosi@huawei.com> 1709274825 +0800

fix the type of memorylimit and the param of startAppTraceCapture

Signed-off-by: dongbosi@huawei.com <dongbosi@huawei.com>
rӐxPtree a6b01e01be8e52aae5ab7c1adaab1f7352ae0ac7
parent 0fd5f3054db7b85d935012e9be278792237fe31f
parent 351092f3ed6976a95d2b2eeda6352224c94758b2
author openharmony_ci <120357966@qq.com> 1709268287 +0000
committer Gitee <noreply@gitee.com> 1709268287 +0000

!331 文件子系统fix错误码
Merge pull request !331 from zhuhongtao666/mastern˙x	tree 8c26f68452da167a4259b6058519809f84bbd467
parent 5099d6520218e0980093aafafe5a715758cb4e69
author 罗博明 <luoboming@huawei.com> 1709256107 +0000
committer Gitee <noreply@gitee.com> 1709256107 +0000

add missing

Signed-off-by: 罗博明 <luoboming@huawei.com>`cV֝xMtree 7056c796a2389639426c38f8dc0361a96e212d32
parent 156d00eb0efe1ffbcda414490d75af403283c1bc
parent a0417a6a93a3aed95497fb944c5b7f5f0013f727
author openharmony_ci <120357966@qq.com> 1709215401 +0000
committer Gitee <noreply@gitee.com> 1709215401 +0000

!281 fileShare 新增NDK接口
Merge pull request !281 from weishaoxiong/mastervhxtree 906bf36aa376cf1f65e97d854b50bb6b2477a12f
parent 92781e281cf7090f39d4de06660a588dcdabcc0b
author 罗博明 <luoboming@huawei.com> 1709204307 +0000
committer Gitee <noreply@gitee.com> 1709204307 +0000

del h

Signed-off-by: 罗博明 <luoboming@huawei.com>Uܟxtree c7dfc0938683043d95c7ba09a60b5e7d3938e004
parent aa57d295c2cb29cd9332782846507258b32cdec2
author weishaoxiong <weishaoxiong2@huawei.com> 1709196902 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1709196902 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
w[5xtree 9104d3eb4bd4559cfd44af2949dc5e5d3aadac16
parent 132bb7abd7fb2b2b1a6c809db7215325bdf186c9
author 罗博明 <luoboming@huawei.com> 1709194852 +0000
committer Gitee <noreply@gitee.com> 1709194852 +0000

config

Signed-off-by: 罗博明 <luoboming@huawei.com>ݫWxtree a3fa74c8443e2b5e542b2ba21875a72a6b02254f
parent 836f52da44a223912c71c312121a9984bfc31b42
author mengjingzhimo <luoboming@huawei.com> 1709194575 +0800
committer mengjingzhimo <luoboming@huawei.com> 1709194575 +0800

remove c++

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
Yrxtree ea40001eb7c89e20061252b0ea5d5ab699f0c610
parent 5cc12ac3835c922b6c49153999e2840762b65e56
author 罗博明 <luoboming@huawei.com> 1709192385 +0000
committer Gitee <noreply@gitee.com> 1709192385 +0000

del DEPRECATED

Signed-off-by: 罗博明 <luoboming@huawei.com>rVx	tree 14200a3aa91efaa0ee3ecf8c9a25e3d5677a4c5e
parent 6ab8c43e592cd35fc6ee608cadc694381fd18f1a
author 罗博明 <luoboming@huawei.com> 1709191125 +0000
committer Gitee <noreply@gitee.com> 1709191125 +0000

iconv build

Signed-off-by: 罗博明 <luoboming@huawei.com>Yxtree 783189e4e065dfed971858ab307e71e11f3d1d10
parent 0176b8eb05f5a7cd3b1734970a916d3518161d69
author 罗博明 <luoboming@huawei.com> 1709190786 +0000
committer Gitee <noreply@gitee.com> 1709190786 +0000

iconv

Signed-off-by: 罗博明 <luoboming@huawei.com>eUxtree 5d9c1bdded934cfa7a77862af9e0d51b68752e56
parent 3e5a20d3009675d756a836a1f170eda06edf4307
author 罗博明 <luoboming@huawei.com> 1709190778 +0000
committer Gitee <noreply@gitee.com> 1709190778 +0000

support  iconv

Signed-off-by: 罗博明 <luoboming@huawei.com>4Yxtree c41de3ef91cbb678801af8c64481848b12e02a14
parent 5db22c7071738b56520d35fd87b8c336b09261f7
author mengjingzhimo <luoboming@huawei.com> 1709190545 +0800
committer mengjingzhimo <luoboming@huawei.com> 1709190545 +0800

del h

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
WVWxntree 876cd4b6355f9503095b3cd7c1b68d7048765126
parent f493ccfa75510b6daa019817b48baeb4640c2dd0
author mengjingzhimo <luoboming@huawei.com> 1709189490 +0800
committer mengjingzhimo <luoboming@huawei.com> 1709189490 +0800

Signed-off-by: mengjingzhimo <luoboming@huawei.com>

 On branch master
 Your branch is up to date with 'origin/master'.
 Changes to be committed:
	modified:   icu4c/libicu.ndk.json
$;xtree 4a00ab83f8f9cdb02d19a1b7087abb2982cd9c3d
parent 053df8924f1d716c72c00f81ecbaa666daba8bf5
author weishaoxiong <weishaoxiong2@huawei.com> 1709104183 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1709104183 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
G\xltree 3f5137c246b76346b5e74b13893804303a727a91
parent 0fe9590928ed57493ff63839acfccff57e38a6ab
parent 5491bbf8adf557957f05e67a88f4d6e620b78474
author openharmony_ci <120357966@qq.com> 1709088804 +0000
committer Gitee <noreply@gitee.com> 1709088804 +0000

!284 【特性需求】V8引擎支持性能分析及调试功能
Merge pull request !284 from shaoshuai/masterwx>tree 4c0a090cb7085bc93417a9808bdbdeefaa62c0d8
parent 7fa7b28eb46b7788d5423497ce83d21a44a71f4d
parent efc1f69830e43e604aa8888420b65c35ec405be4
author openharmony_ci <120357966@qq.com> 1709033217 +0000
committer Gitee <noreply@gitee.com> 1709033217 +0000

!321 修改接口
Merge pull request !321 from changleipeng/0225bȞxNtree 69e888ae76322a7f995c312d935bcd8575143751
parent 972b0cda75fcd08ad36daf166c7ce1b53cb70579
parent 7e48899b89319e71fc1f43c856fa07f8a9e6c5d7
author openharmony_ci <120357966@qq.com> 1709020753 +0000
committer Gitee <noreply@gitee.com> 1709020753 +0000

!310 drawing 新增两个接口
Merge pull request !310 from 刘伟/getimageinfo"m-x"tree 39bd23952a31c188ed2d173462bf99314b47994f
parent 0a23cc09fd94b2bd233a7abe2726aeb41adfbc5b
author 18721213663 <zhuhongtao12@huawei.com> 1709006156 +0800
committer 18721213663 <zhuhongtao12@huawei.com> 1709006156 +0800

fix_errorcode

Signed-off-by: 18721213663 <zhuhongtao12@huawei.com>
͔Ux|tree e4201849d5ed5ba28ccb2d96d9bc3fac45979560
parent 0e262d211ea5994eb900b591e2e6aa60b66d4203
author changleipeng <changleipeng4@huawei.com> 1709001172 +0000
committer changleipeng <changleipeng4@huawei.com> 1709001172 +0000

void OH_Drawing_TypographySetIndents(OH_Drawing_Typography*, int, const float indents[]);增加indents[]

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Xxutree 824854c342e4c5f51f8027000f765ca75f75164d
parent 4c145cf64ad3bc81940332775223fe2f226be5a2
author m00472246 <majingtao1@huawei.com> 1708914042 +0800
committer m00472246 <majingtao1@huawei.com> 1708996378 +0800

补充nativeWindow中的format、ColorGamut、TransformType Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
xxftree 74783813a57c8e0610645e367569c4890d7c0559
parent cee5b40f43ec73325470574f4f2b3d4585ec7c57
parent 5176c95b19a959172357ed6c423901851e053aa1
author openharmony_ci <120357966@qq.com> 1708957296 +0000
committer Gitee <noreply@gitee.com> 1708957296 +0000

!313 [新需求]: 【master】【hidebug】【CAPI】增加三方应用获取CPU usage，内存，trace接口
Merge pull request !313 from 董博斯/master!xKtree 6e53e08c7038ab38c736db5ba6b8bdccff8021df
parent ceafa823b1df7e020202e4794d58407d9478d872
parent 6a2f8154a0d8ff47538c33d3dc37453b288d1325
author openharmony_ci <120357966@qq.com> 1708954604 +0000
committer Gitee <noreply@gitee.com> 1708954604 +0000

!323 [NDK]  NDK API translate
Merge pull request !323 from lisitao/ndk_list_2bx1tree 309d676533dedd22ce66bc33c03fad5b33429456
parent 512864d49168526efc32103c3dd8fea7056f5b78
author dongbosi@huawei.com <dongbosi@huawei.com> 1708485496 +0800
committer dongbosi@huawei.com <dongbosi@huawei.com> 1708950729 +0800

add hidebug CAPI

Signed-off-by: dongbosi@huawei.com <dongbosi@huawei.com>
`xtree 0082becf2ae00f015142dc68a10b2cba14beb6b9
parent 059987bc74d3c73dcfd5556359429e158323c01b
author shaoshuai <shaoshuai16@huawei.com> 1708946742 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708946764 +0800

加注释

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
=gY1xtree d2e2076ea5f7e74645f4b7d1b06993875d0335d6
parent 467efd597f709ccfe06d8e7ba5daba994c2eca3f
author wind <youziting@huawei.com> 1708945195 +0800
committer wind <youziting@huawei.com> 1708945195 +0800

add asset ndk

Signed-off-by: wind <youziting@huawei.com>
^Qȑx!tree 4659b12269053a9ff4ea6d4abd8c2a31930ba5c5
parent d1a0a3f1b437c005d3606b59f2b698ac78a53d66
author shaoshuai <shaoshuai16@huawei.com> 1708938463 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708938529 +0800

CPU名字更改为Cpu

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
_xntree 6e53e08c7038ab38c736db5ba6b8bdccff8021df
parent ceafa823b1df7e020202e4794d58407d9478d872
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708914320 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708914320 +0800

[NDK]  NDK API translate
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
Wrx(tree 645b4d6d091bc4f402bc5e1699ee8905777c9c3f
parent ceafa823b1df7e020202e4794d58407d9478d872
author changleipeng <changleipeng4@huawei.com> 1708869139 +0000
committer changleipeng <changleipeng4@huawei.com> 1708869139 +0000

“添加*”

Signed-off-by: changleipeng <changleipeng4@huawei.com>
akxPtree eb36f987bbd2a0a2bc98fee839160c5cb756607e
parent 9b6decef40e9c1d8bfae72e8e02f2aa6c8aad116
parent 0962bc27fa6eb82f4eda5581da966642a716966d
author openharmony_ci <120357966@qq.com> 1708823685 +0000
committer Gitee <noreply@gitee.com> 1708823685 +0000

!316 [NDK] merge NDK API translate
Merge pull request !316 from lisitao/ndk_list_1X@fsxWtree 7156ce327e1c35fb59d5581d6e4365a0158003d4
parent 16a0bfc43982456ff02bf11e6e16f5872647ae30
parent fafe1cf4fd0b15568cd7a1d013022312a70fbd58
author openharmony_ci <120357966@qq.com> 1708783336 +0000
committer Gitee <noreply@gitee.com> 1708783336 +0000

!317 Strip unstripped shared objects
Merge pull request !317 from zhao-xinyuan8/sdk_strip˛hxstree ff8e17e67daa4f624ffe1f8debd3c0f639ec388f
parent 6dc922b326f670f84d2e05582664e41fdd519cfd
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708589646 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708769252 +0800

[NDK] merge NDK API translate
Signed-off-by:lisitaolisitao3@huawei.com

Signed-off-by: DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com>
0urxDtree 30a776bf2ca19bf45a027535083f525f27f5a11d
parent 5f0467f0294bc5336ebfac2f85c0c77108bd5a6c
parent 7509bd855071062b5d28f30582da161ab9c803bd
author openharmony_ci <120357966@qq.com> 1708763767 +0000
committer Gitee <noreply@gitee.com> 1708763767 +0000

!300 增加字体接口
Merge pull request !300 from changleipeng/0205iex0tree b2a77cbc8995eeee5e20145d010614c6b2965699
parent 55a244235ec0d6193782404b2941c267309eed55
author changleipeng <changleipeng4@huawei.com> 1708758788 +0000
committer changleipeng <changleipeng4@huawei.com> 1708758788 +0000

恢复结构体注释

Signed-off-by: changleipeng <changleipeng4@huawei.com>
fx&tree c1a9e95525c226218532e3c7e89164f2406834d7
parent 838f809aa7592a72d636b0449d483cdab1098974
author changleipeng <changleipeng4@huawei.com> 1708756651 +0000
committer changleipeng <changleipeng4@huawei.com> 1708756651 +0000

修改Table

Signed-off-by: changleipeng <changleipeng4@huawei.com>
]xmtree af37edc291807ff76709df75238aa898e1e9041a
parent bfe6477773c72d259deeeaf53e11bd72650e36c2
parent 0b2bb46f3e2fe2372c5fb48f3ae28d2e4e1d6a7a
author openharmony_ci <120357966@qq.com> 1708685321 +0000
committer Gitee <noreply@gitee.com> 1708685321 +0000

!302 remove OH_ArkWebRequestHeaderList_Create 与 OH_ArkWebResourceRequest_GetRequestHeader 功能重复
Merge pull request !302 from wanghui/masterۄږxftree 0d507253b2f62f6fc5253878ebaad6a2a93bfc39
parent 467efd597f709ccfe06d8e7ba5daba994c2eca3f
parent efe63b053cd6aab36b78f6ae08dcda4e986d1a88
author openharmony_ci <120357966@qq.com> 1708677100 +0000
committer Gitee <noreply@gitee.com> 1708677100 +0000

!314 解决CAPI解析工具无法获取宏定义注释问题
Merge pull request !314 from zhangwu/master)Cxtree 47f70e273b99434daa8fff0b800e01b389ad7a39
parent c8cc36983a3901c804795a6499db1c5b8c6b64f7
author changleipeng <changleipeng4@huawei.com> 1708676392 +0000
committer changleipeng <changleipeng4@huawei.com> 1708676392 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
HY6xtree 84fb4a3579fb1d0af0415ab3451fdde5ad106752
parent 2f872f163d764b9c74ff6b77111aa4855711b2cc
author changleipeng <changleipeng4@huawei.com> 1708672055 +0000
committer changleipeng <changleipeng4@huawei.com> 1708672055 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
UUY/x*tree 6b2d30eb4f435569355715313f74ff9c0aa090ab
parent 6fdc624f4977ed0028aef36d191a2756edbb144b
author changleipeng <changleipeng4@huawei.com> 1708658826 +0000
committer changleipeng <changleipeng4@huawei.com> 1708658826 +0000

修改结构体

Signed-off-by: changleipeng <changleipeng4@huawei.com>
dxQtree 9843d0875201729cf6d92593e7218d5a7b7ee17d
parent d136f69f648704df27ea951a8671ef40b6888be1
parent 881d252f6835bae0359b081e0e4301cf97c6a714
author openharmony_ci <120357966@qq.com> 1708652910 +0000
committer Gitee <noreply@gitee.com> 1708652910 +0000

!211 黄蓝同步code_check问题解决
Merge pull request !211 from 姜前进/0112nxtree 108f3d79f65546712a1323c1b8c5cc1f030a973e
parent 3f9999e6b55a4a7faa693d1c254a02d52be84b54
author zhao-xinyuan8 <zhaoxinyuan9@huawei.com> 1708596094 +0000
committer zhao-xinyuan8 <zhaoxinyuan9@huawei.com> 1708651406 +0000

Strip unstripped shared objects

Use llvm-strip to strip shared object.
To keep shared objects same as previous.

Issue: I92YHF
test: So in out dir are stripped
Signed-off-by: zhao-xinyuan8 <zhaoxinyuan9@huawei.com>
Change-Id: I2c5d55d9cfc1717dba7a7be4ecca5d71e450a3b3
Ixtree eb02eae8d371ecd9492c0268985e4bf93ef96546
parent 60f278e1579cb5585c152797101f3cc890ac7c66
author changleipeng <changleipeng4@huawei.com> 1708604314 +0000
committer changleipeng <changleipeng4@huawei.com> 1708604314 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
	Xɗx'tree aaf2006b25c22149705abe64f912a44c4994ba2a
parent b88e917c2ab876e5890a00878922154a23e5ebe4
author changleipeng <changleipeng4@huawei.com> 1708599907 +0000
committer changleipeng <changleipeng4@huawei.com> 1708599907 +0000

格式修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
ax'tree d0adbec1845d33c4e65d94eb3bf46004753690b4
parent d667bd8d19495a1b0cba1faad501c041d50fd792
author changleipeng <changleipeng4@huawei.com> 1708594713 +0000
committer changleipeng <changleipeng4@huawei.com> 1708594713 +0000

格式修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
b~xHtree e217d079be0a6340d03c4a7e515e916b7d5ae2af
parent 3f9999e6b55a4a7faa693d1c254a02d52be84b54
parent 5d9c205b6854cd4a9328b463fcd4f297a9bbe684
author openharmony_ci <120357966@qq.com> 1708593586 +0000
committer Gitee <noreply@gitee.com> 1708593586 +0000

!274 新增FileUri.NDK接口
Merge pull request !274 from 崔瑞斌/master1ix'tree 00cd1293982d6c58d999c0c7bb3f701478579d74
parent 0a9e1162280dd6afacfafcd55c024c8d0cbe1546
author changleipeng <changleipeng4@huawei.com> 1708590365 +0000
committer changleipeng <changleipeng4@huawei.com> 1708590365 +0000

格式修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
b9x'tree 90ac3f556ba75190ab29c69d744bb945203692da
parent 4e6d514cfab73b4d9d297abb33ce42215d43d3f0
author changleipeng <changleipeng4@huawei.com> 1708590096 +0000
committer changleipeng <changleipeng4@huawei.com> 1708590096 +0000

格式修改

Signed-off-by: changleipeng <changleipeng4@huawei.com>
b,xDtree 4d8570a64bdcada76c2f857fdc34c4865b9f2aa0
parent 35d7c26fa8b6c85a2778b0f1da75ec333ffa48ea
parent dfb53798f578cb1dd3cfcce7663319dbc6d6bfaa
author DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708587149 +0800
committer DESKTOP-H8KLN8I\lisitao <lisitao3@huawei.com> 1708587149 +0800

Merge branch 'pr_308' into ndk_list_1
cTxZtree 255a8f6b72ef58121c0014fa4761ac2201f963b1
parent 35d7c26fa8b6c85a2778b0f1da75ec333ffa48ea
parent 4c145cf64ad3bc81940332775223fe2f226be5a2
author openharmony_ci <120357966@qq.com> 1708587057 +0000
committer Gitee <noreply@gitee.com> 1708587057 +0000

!315 surfaceId获取nativeWindow需求接口
Merge pull request !315 from 马靖涛/20240222qx/tree a18e961267ccfba4db00b2157de58295674525c9
parent 606cd935fb31f8d2cc711cdaca0baa7ae8c370a2
author cuiruibin <cuiruibin3@huawei.com> 1706620912 +0800
committer cuiruibin <cuiruibin3@huawei.com> 1708581077 +0800

新增FileUri.NDK接口公共仓定义

Signed-off-by: cuiruibin <cuiruibin3@huawei.com>
Njxatree 255a8f6b72ef58121c0014fa4761ac2201f963b1
parent 35d7c26fa8b6c85a2778b0f1da75ec333ffa48ea
author m00472246 <majingtao1@huawei.com> 1708566331 +0800
committer m00472246 <majingtao1@huawei.com> 1708566331 +0800

surfaceId获取nativeWindow需求接口 Signed-off-by: m00472246 <majingtao1@huawei.com>

Signed-off-by: m00472246 <majingtao1@huawei.com>
r+xtree 652f21769c808774409dc324a10fa045303d12b7
parent 9685743d2b4bddc0d4ec8d42b3e8fb6977a3baa8
author liyi0309 <liyi58@huawei.com> 1708564798 +0800
committer liyi0309 <liyi58@huawei.com> 1708564798 +0800

merge NDK C-API translate
Signed-off-by: liyi0309<liyi58@huawei.com>
Q
xPtree d6d93f4e2b88cbc45c7fba1aac8eb36987833d98
parent 512864d49168526efc32103c3dd8fea7056f5b78
parent 503dc33b3c5ebd34e768ac2fcc86544a75eb6bac
author openharmony_ci <120357966@qq.com> 1708518564 +0000
committer Gitee <noreply@gitee.com> 1708518564 +0000

!285 avplayer_base.h头文件自包含
Merge pull request !285 from wangyan/master/mnxHtree 4b95092685b372918c9ec48f549f58040ae33e10
parent f02578cf437eb8ebb0ea5d3bd476e63b476a4a5f
parent aafcd24866f84cff9f37f8eb23d456810b63a4a3
author zhangwuf <zhangwu47@huawei.com> 1708486067 +0800
committer zhangwuf <zhangwu47@huawei.com> 1708507576 +0800

Merge branch 'master' of https://gitee.com/zhangwuf/interface_sdk_c_1
fx'tree 60445c25c3f2058fc5074d971f2e8b12174f31c3
parent dd2d453d32cc0aa1ccea858514043c57e8581c66
author changleipeng <changleipeng4@huawei.com> 1708500085 +0000
committer changleipeng <changleipeng4@huawei.com> 1708506949 +0000

修改接口

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Aax8tree 5a40f88198ec544dabf46b6d8afc7cd67db42a82
parent 6b27351f4ea7bb27c5f320fd76fb7eee2dceeafa
author shaoshuai <shaoshuai16@huawei.com> 1708501782 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708501834 +0800

jsvm_types.h新增接口API版本修改为12

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>

Anx`tree 3d7661d0a01a194be5be7651d19b1dbe456227a5
parent a97c47ed73d642c016db8d8f6227741b55b12d5e
author 刘伟 <liuwei742@huawei.com> 1708501117 +0800
committer 刘伟 <liuwei742@huawei.com> 1708501117 +0800

add matrix setpoly and bitmap add getimageinfo

Signed-off-by: 刘伟 <liuwei742@huawei.com>
Change-Id: I571e5879df715cf3c0659dbca0cd8b92a9c6990c
mq|x:tree 03c330d664d67ddbb457364cbea4523f563bd7c5
parent 7a9c8e93bde539c483807d0b58459e56a76e7daa
author zhangwuf <zhangwu47@huawei.com> 1708485743 +0800
committer zhangwuf <zhangwu47@huawei.com> 1708485743 +0800

解决CAPI解析工具无法获取宏定义注释问题

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
uxtree d08c1a0b525e5d8d1c7370934180764daf56242a
parent 4f4512bafc4795d29030985165d16edfaa9c0e87
author weishaoxiong <weishaoxiong2@huawei.com> 1708431391 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1708485316 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
U[!xAtree 0d4ee83b130b7a9d0aa6a078d076024ed4866ab1
parent 9c08e181510540f191507b938f02eca2a753108b
author shaoshuai <shaoshuai16@huawei.com> 1708482241 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708482340 +0800

新增接口改API版本号，并修改ndk.json文件

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
9tsxMtree 5b94921b1b6f22376a1a97a19b491b6515b13575
parent bf3144083fb3047a52d6ac1f4e5affb2be0a9ac5
parent 6b62d6debc081b61e7f68da4a3bb4c2573ea43ed
author openharmony_ci <120357966@qq.com> 1708437844 +0000
committer Gitee <noreply@gitee.com> 1708437844 +0000

!215 qos_manager新增开源头文件
Merge pull request !215 from Ethan/master]lxPtree f7e86c236374f04601497e7a6b8f817cbd7bbbeb
parent 9685743d2b4bddc0d4ec8d42b3e8fb6977a3baa8
parent 0a23cc09fd94b2bd233a7abe2726aeb41adfbc5b
author openharmony_ci <120357966@qq.com> 1708415533 +0000
committer Gitee <noreply@gitee.com> 1708415533 +0000

!296 新增Environment NDK接口
Merge pull request !296 from zhuhongtao666/mastertrkxtree bc2986dfdb9129c0747b555351217b140d77df2d
parent e26a218d4eb7bc482b254159fb9197db3ef270eb
author shaoshuai <shaoshuai16@huawei.com> 1708415171 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708415216 +0800

注释修改

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
[x(tree 235360c01f2fe752edc9d70b287abe5fbfe3776f
parent 403c19c43ee7db70617344e0a75b44cc1d86560f
author 18721213663 <zhuhongtao12@huawei.com> 1707100520 +0800
committer 18721213663 <zhuhongtao12@huawei.com> 1708401094 +0800

ndk_add_environment

Signed-off-by: 18721213663 <zhuhongtao12@huawei.com>
Wxtree 23c4ae2a94f40827102655b420363c90c7d6b605
parent ad691005dcf2751e7720e5c6d217298953cca125
author weishaoxiong <weishaoxiong2@huawei.com> 1708307084 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1708401055 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
ZDxtree b7f6f63b0e32a4ef33a74513a072ae0ea40c8f56
parent 710ed7677e7ff0bae19532325ab367c773c1124e
author changleipeng <changleipeng4@huawei.com> 1708395954 +0000
committer changleipeng <changleipeng4@huawei.com> 1708395954 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
]lY=xtree ee5754b2cf4bb408c266bb3a6c5cb0e4be342794
parent a1dc71c7c1eb85903bacbdc4c1166c9e148f17b4
author changleipeng <changleipeng4@huawei.com> 1708394686 +0000
committer changleipeng <changleipeng4@huawei.com> 1708394686 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
XjZ[x?tree 8c85201738a6f5a8bbfa9a65c8d2f309a38d803b
parent 56436d3916c2b02a0ce4b857b3ede6a67cdb2da1
author shaoshuai <shaoshuai16@huawei.com> 1708392678 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1708392768 +0800

注释内容修改JSVM_OK以及brief下行加空行

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
&sxtree ca289f1a25f8bf01072f1db8345fb041684b2324
parent de218ea3db8c6f63d41d2d9aded0045661e28f65
author changleipeng <changleipeng4@huawei.com> 1708336064 +0000
committer changleipeng <changleipeng4@huawei.com> 1708337100 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
neYOxtree 6b1eb7a6a9986b6be351f8ac13578dd60eefccd9
parent 32b0b50ec20ff9edabeb2d390c6343223e1b99f5
author changleipeng <changleipeng4@huawei.com> 1708334617 +0000
committer changleipeng <changleipeng4@huawei.com> 1708334617 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Zxtree 43f18216c137f97716981c826457964c63706d3e
parent 37e8d6b3fe64fa363d3c485ef1b6868c8900e83f
author 罗博明 <luoboming@huawei.com> 1708331637 +0000
committer Gitee <noreply@gitee.com> 1708331637 +0000

add uenum api

Signed-off-by: 罗博明 <luoboming@huawei.com>Wvxtree 305615afa6bd5b0956343c7ebd4ef5a7578c3d44
parent cdb683b508f296d30d63bdb1f3a841f7e528970f
author 罗博明 <luoboming@huawei.com> 1708328292 +0000
committer Gitee <noreply@gitee.com> 1708328292 +0000

no show c++ api

Signed-off-by: 罗博明 <luoboming@huawei.com>^Xxtree abf022416c204305cc02a7bfb188c27f5b97b8bf
parent a2822cff12de9ebc1b62c38cab91c1e86bf2de76
author changleipeng <changleipeng4@huawei.com> 1708323808 +0000
committer changleipeng <changleipeng4@huawei.com> 1708323808 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
VZqxtree 86e863c6a6c2ac29525e13c7eb207a153af0c550
parent 25def4d08441ed4da3df5b50a8fb9c796218eb4b
author changleipeng <changleipeng4@huawei.com> 1708314161 +0000
committer changleipeng <changleipeng4@huawei.com> 1708314161 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Yx"tree 9f410f24ca4bfddaefae36ed617518f03ddc4fd7
parent 75f45fbc8da80f5ccc16807e5dfffd14e0d2d5ed
author liuchungang <1397328542@qq.com> 1705981958 +0800
committer liuchungang <1397328542@qq.com> 1708308839 +0800

add qos_manager ndk header file

Signed-off-by: liuchungang <1397328542@qq.com>
=X&xtree 243b3bc802788ad6ba44cba7f63ae41dd0302a22
parent 6a07fe097bbb54247206438806c47826ee16cecf
author changleipeng <changleipeng4@huawei.com> 1708247110 +0000
committer changleipeng <changleipeng4@huawei.com> 1708247110 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
:qYxtree 000273448213f0479b47335aa577fe18088c80d6
parent 834cd71c837df98f831d77c9d1964f028290d218
author changleipeng <changleipeng4@huawei.com> 1708247056 +0000
committer changleipeng <changleipeng4@huawei.com> 1708247056 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Wwxtree 7a0a70eef58ca085721d8dd7ace43b73de7b299a
parent 74698c8378b7705ebf7cee08dab3bb50dd92e806
author changleipeng <changleipeng4@huawei.com> 1708245177 +0000
committer changleipeng <changleipeng4@huawei.com> 1708245177 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
FqZExtree f3a31541d5d734d0606c4c76447e6b49b4dd4ca6
parent 2a7c92182201c9d64e041df226e10db52a611252
author changleipeng <changleipeng4@huawei.com> 1708243606 +0000
committer changleipeng <changleipeng4@huawei.com> 1708243606 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
9XQxtree 6c1d1454dcf7db0da427236c352cbfe885d1d3da
parent ea9e55d816de5a3deb8ef87d6d3490bb83427394
author changleipeng <changleipeng4@huawei.com> 1708237294 +0000
committer changleipeng <changleipeng4@huawei.com> 1708237294 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
KZ;xtree b77bffbf5544326cc88fda16b02a1b7f2bafed03
parent d5989fcd6aa02679bc7663f1371fbccaac0b0cdf
author changleipeng <changleipeng4@huawei.com> 1708227041 +0000
committer changleipeng <changleipeng4@huawei.com> 1708227041 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
[+xtree 6566a016f7895d7a85e52111a2a2adcd743e598e
parent 6d041c7005e0e25726d2e9a4904df3e6eae64bfb
author 罗博明 <luoboming@huawei.com> 1708222183 +0000
committer Gitee <noreply@gitee.com> 1708222183 +0000

fix  json

Signed-off-by: 罗博明 <luoboming@huawei.com>jVxtree 601017927fc40960cd4b3b31dec58be2e1ebe323
parent 0616541475fe68a11ae8e17520256242b94a9225
author weishaoxiong <weishaoxiong2@huawei.com> 1708141065 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1708141065 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
Zlx!tree 51dea7ccb42a77c7d685ce12ea5945bce8142b40
parent 253ed8fe470aefabd034a96bfc9f5d6bf742c8bc
author w00477664 <wanghui210@huawei.com> 1708138421 +0800
committer w00477664 <wanghui210@huawei.com> 1708140527 +0800

修复api注释错误。

Signed-off-by: w00477664 <wanghui210@huawei.com>
]xtree af4ed9b7486f4a752828af0c4153791b1aa74fd0
parent 80d88361df91065b4509470bb68ad03312647b14
author weishaoxiong <weishaoxiong2@huawei.com> 1708136347 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1708136347 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
(Zxtree 1531d106749d8e1239962d40f5388c9e3e840262
parent baf01a7d6160b7112ab552a9492c558f8f4a9c61
author weishaoxiong <weishaoxiong2@huawei.com> 1708132088 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1708132088 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
>Zcx{tree cba08fe0842c17658c561f53e9cde71c26fbfbd4
parent ca76a6f42980a57f044bcba2baec1248ef8b8457
author mengjingzhimo <luoboming@huawei.com> 1707383723 +0800
committer mengjingzhimo <luoboming@huawei.com> 1707383723 +0800

Signed-off-by: mengjingzhimo <luoboming@huawei.com>

 On branch master
 Your branch is up to date with 'origin/master'.
 Changes to be committed:
	modified:   BUILD.gn
z~Sxtree 61b0fa2c009fc09704dbaf0935bfd1c6f4c9261a
parent 1a862bbd30b13896b402bed94cd97cb61bac6855
author 罗博明 <luoboming@huawei.com> 1707382545 +0000
committer Gitee <noreply@gitee.com> 1707382545 +0000

fix 2

Signed-off-by: 罗博明 <luoboming@huawei.com>Vxtree befd1d8193259ea966144063d6e1f20d3e1c69d0
parent be6f6b06ecacea8a8c52e1f8e7e25c166faba071
author 罗博明 <luoboming@huawei.com> 1707382490 +0000
committer Gitee <noreply@gitee.com> 1707382490 +0000

fix

Signed-off-by: 罗博明 <luoboming@huawei.com>!V(x!tree 2c55bc5528621fa92f9f488f23eebb61b3e03995
parent 57766fc1f683d49d5c3ab3f045c8cf4258fbc429
author weishaoxiong <weishaoxiong2@huawei.com> 1707295517 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1707295517 +0800

fix：

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
]xtree 0cbf6fb176241ce71345ebe97d2adf2634386a16
parent 98e393f2d714ee8a3da44135b0472dee5c52e790
author changleipeng <changleipeng4@huawei.com> 1707277322 +0000
committer changleipeng <changleipeng4@huawei.com> 1707277322 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
`vY:xAtree ebed45c0243b2fec967d2ae984d3c0c9d4b47c29
parent bc45251b5cdf7cd8910d7da032a1c21db1828f3b
parent 0b83b8f859faab7cc37b2d87518d22d6f039f930
author openharmony_ci <120357966@qq.com> 1707220716 +0000
committer Gitee <noreply@gitee.com> 1707220716 +0000

!297 接口描述修改
Merge pull request !297 from guoxing/masterMjg͜xtree cbc329584a756021590163a0337426d7a63f3cfc
parent dc266eb3ff4ecb8f3c3506264cdeb9a139c8be9e
author changleipeng <changleipeng4@huawei.com> 1707213701 +0000
committer changleipeng <changleipeng4@huawei.com> 1707213701 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
t<Yxtree 01c11142d408dc903093a5dde57b1cc3dfb0bddb
parent ebad2a811a98b8f1c1ed87d86c89dd5892ae26da
author changleipeng <changleipeng4@huawei.com> 1707213148 +0000
committer changleipeng <changleipeng4@huawei.com> 1707213148 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Zxtree cac0e1de341772ef6f6d40c9f8b6355aeca4bda6
parent 6c288133add64abc45b06b870de590345d5d9408
author changleipeng <changleipeng4@huawei.com> 1707206251 +0000
committer changleipeng <changleipeng4@huawei.com> 1707206251 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Yxtree 44512d263803a601c9c2f33eb06ff47c32c513a4
parent a97c47ed73d642c016db8d8f6227741b55b12d5e
author guoxing <guoxing22@huawei.com> 1707119318 +0000
committer guoxing <guoxing22@huawei.com> 1707205788 +0000

接口描述修改

Signed-off-by: guoxing <guoxing22@huawei.com>
Zxtree 8ed42566136a8afbe70855655d259316d6c412c6
parent 4cafdb887cb5954c96fb384bc06378d26c25d062
author changleipeng <changleipeng4@huawei.com> 1707201731 +0000
committer changleipeng <changleipeng4@huawei.com> 1707201731 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Xxjtree 60dfed9003dcbc97b354353cff91ffc19941a2db
parent bc45251b5cdf7cd8910d7da032a1c21db1828f3b
author w00477664 <wanghui210@huawei.com> 1707201280 +0800
committer w00477664 <wanghui210@huawei.com> 1707201280 +0800

remove OH_ArkWebRequestHeaderList_Create, 与 OH_ArkWebResourceRequest_GetRequestHeader 重复。

Signed-off-by: w00477664 <wanghui210@huawei.com>
Iuxtree 88d15ffcf12c4200f7d60fc6c225398e8850caa5
parent e79be1a83911f724c6b8e88edbcee771c0e3308f
author changleipeng <changleipeng4@huawei.com> 1707199547 +0000
committer changleipeng <changleipeng4@huawei.com> 1707199547 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
Yxtree 9884f87fba8fac1b8c15e28c1885fa8280a73a25
parent bd42427664636e072f2300348f02bb893f92bd6d
author weishaoxiong <weishaoxiong2@huawei.com> 1707199210 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1707199210 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
f[/xtree 2caecf67170d52d391280aefd48815ce899c5a5b
parent 86948916edec5aed8568f3ddaafac7092f18cf2d
author changleipeng <changleipeng4@huawei.com> 1707191838 +0000
committer changleipeng <changleipeng4@huawei.com> 1707191838 +0000

1

Signed-off-by: changleipeng <changleipeng4@huawei.com>
hZx'tree 51dd73111c064f11a5aba13209a6b1e9be7ac9ca
parent 06e1ff09d0cf3acfab7f6c854b7f12f2fa8cf647
author changleipeng <changleipeng4@huawei.com> 1707187256 +0000
committer changleipeng <changleipeng4@huawei.com> 1707187256 +0000

增加接口

Signed-off-by: changleipeng <changleipeng4@huawei.com>
b؞x~tree 29cdf0979b9ee5fbe2b039fc73fcce4b2ab6fd9b
parent a97c47ed73d642c016db8d8f6227741b55b12d5e
parent 9508eca79cf40f8e4ed8472a41f509e9bd10c2c7
author openharmony_ci <120357966@qq.com> 1707133612 +0000
committer Gitee <noreply@gitee.com> 1707133612 +0000

!273 scheme handler ndk api 添加删除resourcehandler  resourcerequest的接口。
Merge pull request !273 from wanghui/master? x'tree 9e72d93c79e7e6da830eda6806bebe9835308ff8
parent a97c47ed73d642c016db8d8f6227741b55b12d5e
author changleipeng <changleipeng4@huawei.com> 1707128238 +0000
committer changleipeng <changleipeng4@huawei.com> 1707128238 +0000

增加接口

Signed-off-by: changleipeng <changleipeng4@huawei.com>
aÛxtree c2c533023c457cfd1c55054f86f837b548bd5964
parent 35c615324570f223136f9320d48659d084af49cf
author 罗博明 <luoboming@huawei.com> 1707126707 +0000
committer Gitee <noreply@gitee.com> 1707126707 +0000

version to 12

Signed-off-by: 罗博明 <luoboming@huawei.com>Vܕxtree a50ec110653766480452009e780709950bf5f516
parent 8f183b5670e7cedc6d58b5ada473d7e053edb387
author 罗博明 <luoboming@huawei.com> 1707126173 +0000
committer Gitee <noreply@gitee.com> 1707126173 +0000

ndk gni

Signed-off-by: 罗博明 <luoboming@huawei.com>%Usxtree d964e6be3f198433f453a8165e4a6e687180074d
parent a97c47ed73d642c016db8d8f6227741b55b12d5e
author mengjingzhimo <luoboming@huawei.com> 1707123662 +0800
committer mengjingzhimo <luoboming@huawei.com> 1707123662 +0800

add icu4c ndk

Signed-off-by: mengjingzhimo <luoboming@huawei.com>
_Zxrtree bdcaf5e98dcebbdea0c0842e4952c89d284728d4
parent aafcd24866f84cff9f37f8eb23d456810b63a4a3
author w00477664 <wanghui210@huawei.com> 1706594175 +0800
committer w00477664 <wanghui210@huawei.com> 1707117046 +0800

add ResourceRequest/ResourceHandler destory function.
move error codes for ArkWeb to arkweb_error_code.h.

Signed-off-by: w00477664 <wanghui210@huawei.com>
'tПxtree 838fbeb9e7f85702dfa02e055e91aaeec824014b
parent 6b3b3e5eecb2ccecb045de928d68ffb07adeb8cc
author weishaoxiong <weishaoxiong2@huawei.com> 1707100427 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1707100920 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
إ]ژx(tree df6d0b897a093699fcaae6089ac360e5b2d34787
parent 903a34d0f188aed75bf88320619e6c4b02e677e0
author 18721213663 <zhuhongtao12@huawei.com> 1707052431 +0800
committer 18721213663 <zhuhongtao12@huawei.com> 1707052431 +0800

environment_add_ndk

Signed-off-by: 18721213663 <zhuhongtao12@huawei.com>
Wqxntree 3823d51e49efa16774b2cc29c2bb3b2f3f394070
parent 903a34d0f188aed75bf88320619e6c4b02e677e0
parent 1b1a1e35a8f88c33742a628e98d37d210e67604b
author openharmony_ci <120357966@qq.com> 1707042477 +0000
committer Gitee <noreply@gitee.com> 1707042477 +0000

!290 【轻量级 PR】：update third_party/openGLES/README.OpenSource.
Merge pull request !290 from 王凯/N/A_v%xMtree 87416e63dca022ed2de43eb7683f79e1b85dbd0f
parent e43c44bd1f97c892dbf4805533a9e19296bfbd5f
parent 4009bfd43f7fcaa05fc4ca40e64ad4787d50cf38
author openharmony_ci <120357966@qq.com> 1707035393 +0000
committer Gitee <noreply@gitee.com> 1707035393 +0000

!242 support switching clang_base_dir
Merge pull request !242 from lijunru/0124fxtree d780e2e22484ee763a1698868c471688beac040f
parent a46d973a2addf2546efa2873da10e2114fc9094e
author weishaoxiong <weishaoxiong2@huawei.com> 1707013246 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1707013246 +0800

fix:
Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
k[ux(tree e95a4b13f8e68b278dda22226f707a31ea48351a
parent e43c44bd1f97c892dbf4805533a9e19296bfbd5f
author 王凯 <wangkai493@huawei.com> 1706864932 +0000
committer Gitee <noreply@gitee.com> 1706864932 +0000

update third_party/openGLES/README.OpenSource.

Signed-off-by: 王凯 <wangkai493@huawei.com>1_xtree 9e212c0f71d6a94148bc07929c03bcf38e007d8d
parent d8e7c7538cb354a7f7a3881da80cd0fd25b7070c
author weishaoxiong <weishaoxiong2@huawei.com> 1706864350 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1706864350 +0800

fix:

Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
[x9tree 5d6970471a045a3e8e395edec7e1f3ae0020d91c
parent aafcd24866f84cff9f37f8eb23d456810b63a4a3
author weishaoxiong <weishaoxiong2@huawei.com> 1706771402 +0800
committer weishaoxiong <weishaoxiong2@huawei.com> 1706860796 +0800

feat:新增FileShare.NDK 接口
Signed-off-by: weishaoxiong <weishaoxiong2@huawei.com>
kix`tree 94f41fa4770ff2703f7273959fae3ac7f98fcdc7
parent 52295b3584f845500ae8a14d8ce2eab344e18e4d
parent 7417a1aabf2d54b3156ad9ab141c484a54cd4cb0
author openharmony_ci <120357966@qq.com> 1706859512 +0000
committer Gitee <noreply@gitee.com> 1706859512 +0000

!275 添加Drawing C接口，OH_Drawing_PenSetPathEffect
Merge pull request !275 from li-kiao/0130jpdxctree 8257501d378eaf1e16c6bb48d59e76cac1fa2567
parent aafcd24866f84cff9f37f8eb23d456810b63a4a3
author li-kiao <lx.96@foxmail.com> 1706627425 +0000
committer li-kiao <lx.96@foxmail.com> 1706795161 +0000

添加Drawing C接口，OH_Drawing_PenSetPathEffect

Signed-off-by: li-kiao <lixiang284@huawei.com>
Change-Id: Id4a0d1a0f36a52ac2116fc3eaa48eb5d4b81e47d
1rx$tree babe7d83c1d7a34591482a3925551f3df5070889
parent 52295b3584f845500ae8a14d8ce2eab344e18e4d
author wangyan <wangyan431@huawei.com> 1706780498 +0800
committer wangyan <wangyan431@huawei.com> 1706780498 +0800

avplayer_base.h头文件自包含

Signed-off-by: wangyan <wangyan431@huawei.com>
b`x*tree c409238c66210412f5961942558cf2ebac8ee52a
parent 560d3f79078cfc27fc8b07549c4c5268ac010a9c
author shaoshuai <shaoshuai16@huawei.com> 1706779409 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1706779515 +0800

变量命名修改为小驼峰

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
KhNxDtree 33a7d7c70f9d818824f447160928c6bf832f9e8e
parent 52295b3584f845500ae8a14d8ce2eab344e18e4d
author shaoshuai <shaoshuai16@huawei.com> 1706777411 +0800
committer shaoshuai <shaoshuai16@huawei.com> 1706777459 +0800

【特性需求】v8支持性能分析以及调试功能

Signed-off-by: shaoshuai <shaoshuai16@huawei.com>
!xxgtree af42b2844c8cdafe24d09a53c68bc3781010de35
parent aafcd24866f84cff9f37f8eb23d456810b63a4a3
parent bf20acfbe0d0f0e13333f9793d0f13947d04c2be
author openharmony_ci <120357966@qq.com> 1706760363 +0000
committer Gitee <noreply@gitee.com> 1706760363 +0000

!276 修改OH_NativeXComponent_GetXComponentId接口描述
Merge pull request !276 from sunbees/fix_xc_idbvxxMtree f4282ef2011ea382e76360e54d0e97692939785a
parent fa0e8c6df780754b137dc9675f95793f5268fa75
author sunbees <sunqinjia@huawei.com> 1706668694 +0800
committer sunbees <sunqinjia@huawei.com> 1706668694 +0800

id'length cannnot be set

Signed-off-by: sunbees <sunqinjia@huawei.com>
Change-Id: I579fa7f75a3f1a114dc4656c87698a12ad6cb2d6
	fKxjtree f0bb1ae25d1830be4da071efb6d917eda1581980
parent c6e070447cd35715cb5153f2aa314a477249cc75
parent 2781945780a035b76eff0f757e6f842b7bd84b2e
author openharmony_ci <120357966@qq.com> 1706597997 +0000
committer Gitee <noreply@gitee.com> 1706597997 +0000

!258 remove void, update opensource info
Merge pull request !258 from chengfeng27/mslite-void-openSourceInfoPUox]tree fa272399f99b0d1aa85475dff1bd3b76b45ce1cc
parent 606cd935fb31f8d2cc711cdaca0baa7ae8c370a2
parent 91f45b5835b4aaa47f06849409a8bd943e5ef8de
author openharmony_ci <120357966@qq.com> 1706512482 +0000
committer Gitee <noreply@gitee.com> 1706512482 +0000

!262 增加drm CAPI需要导出的头文件
Merge pull request !262 from 王丘丘/c_local_1124wxDtree aa9ae99e1bbbed040d1b4ffc80cf11d7c394b4d3
parent 8aebaabe12cd87cbe5f371303448677f9bf970d1
parent caeb1c2680f6cbe73afaae9f3907b7f188d3bce5
author openharmony_ci <120357966@qq.com> 1706438922 +0000
committer Gitee <noreply@gitee.com> 1706438922 +0000

!240 Drawing C接口定义
Merge pull request !240 from li-kiao/zhouyi~xg۟x?tree ea534e4b20c28ba876e7ad6ab535dac1c34d9807
parent fa0e8c6df780754b137dc9675f95793f5268fa75
parent 969470492ceb9700efe00be8656fec0f95d1da09
author openharmony_ci <120357966@qq.com> 1706430523 +0000
committer Gitee <noreply@gitee.com> 1706430523 +0000

!264 补充json文件
Merge pull request !264 from MengYao/master=cЕxEtree 4a6e8889395233442995db270968e5abb2a9faeb
parent 90375c6af3f251d071f46e3fc5b2ced603125b52
author li-kiao <lx.96@foxmail.com> 1706346101 +0000
committer li-kiao <lx.96@foxmail.com> 1706420636 +0000

Drawing C接口定义

Signed-off-by: li-kiao <lixiang284@huawei.com>
Change-Id: I9b5efb72ad5588fac6e72a4df2a98326142970ef
dxtree 6d2928dc6c6765ea078a4f74ae12f403566130e6
parent e45fceff2547cc73f8ee8d0f104ba8a02b020ac5
author MengYao <mengyao17@huawei.com> 1706418190 +0800
committer MengYao <mengyao17@huawei.com> 1706418190 +0800

补充json文件

Signed-off-by: MengYao <mengyao17@huawei.com>
^WxMtree a03b17efd3c0e94d0a9f0698d5c973530cc31343
parent 75649a6e8ac68db2838ed354b35227df32209fbf
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1706401696 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1706410691 +0800

revise BUILD.gn to provide header file

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
kx9tree dbd67a10fdc12f3a4696cc69804fa249fc9bcc57
parent fd5708f1103a5e1f00039d814a7e65a28086714c
parent 99454028366ebef9f3cc147c2da9fe38a7b6acb8
author openharmony_ci <120357966@qq.com> 1706366523 +0000
committer Gitee <noreply@gitee.com> 1706366523 +0000

!261 add NDK API
Merge pull request !261 from firminly/liyi\xtree d3297cafea683a75c6af54baf7c94fd9b1e3cc3d
parent f52b47759cef243bb1198d8ffed83f8be132ded2
author liyi0309 <liyi58@huawei.com> 1706358890 +0800
committer liyi0309 <liyi58@huawei.com> 1706358890 +0800

update arkui node api
Signed-off-by: liyi0309<liyi58@huawei.com>
ERЖxFtree 13330aae610f6b3bffe4013ecc4256b1555ae908
parent 1e118822273bef039355cd99ceae73b4ff23e668
parent 4c82b315f1f3fd7ca1136e61f9c9dc5e3b9911d6
author openharmony_ci <120357966@qq.com> 1706351778 +0000
committer Gitee <noreply@gitee.com> 1706351778 +0000

!202 scheme handler ndk api.
Merge pull request !202 from wanghui/masterbx@tree d7ea734c77f89284ce4b8fa36f099ccdfb426f0f
parent fd0a131e062165c0a9542f8b56b61d7fd35401f0
parent e45fceff2547cc73f8ee8d0f104ba8a02b020ac5
author openharmony_ci <120357966@qq.com> 1706343092 +0000
committer Gitee <noreply@gitee.com> 1706343092 +0000

!245 add NDK Interface
Merge pull request !245 from MengYao/masterN`7x5tree 3291f565c16dea5081e2d287d1250ed4eb16a819
parent fd0a131e062165c0a9542f8b56b61d7fd35401f0
author chengfeng27 <chengfeng27@huawei.com> 1706342130 +0800
committer chengfeng27 <chengfeng27@huawei.com> 1706342130 +0800

remove void, update opensource info

Signed-off-by: chengfeng27 <chengfeng27@huawei.com>
`x tree 6dffe64d3fb7d84c00826754b0fdbdce480b9b79
parent af1689d518c3e3c851fd7ba286f8104a4dfdf816
author w00477664 <wanghui210@huawei.com> 1704713452 +0800
committer w00477664 <wanghui210@huawei.com> 1706317701 +0800

scheme handler ndk api.

Signed-off-by: w00477664 <wanghui210@huawei.com>
۰URx]tree c7c69d07c7a91c4f0a618d4c52ed004b4ee693d3
parent 0c47fc9234ae3592b190eec1ff0fd956bc1e960e
parent a20b1de180dc8986422faee41200e9133723c439
author openharmony_ci <120357966@qq.com> 1706271702 +0000
committer Gitee <noreply@gitee.com> 1706271702 +0000

!206 增加AVCodec drm适配CAPI
Merge pull request !206 from 王丘丘/240110_capi_drm_avcodec]~ox[tree a869b715986de1e2e2c355421cabc50dcc27f804
parent f52b47759cef243bb1198d8ffed83f8be132ded2
parent 75649a6e8ac68db2838ed354b35227df32209fbf
author openharmony_ci <120357966@qq.com> 1706257099 +0000
committer Gitee <noreply@gitee.com> 1706257099 +0000

!235 DRM framework CAPI接口评审修改
Merge pull request !235 from 王丘丘/c_local_1124T1r<xxtree 33f9bd9e5e2e751c8d505deb6bed6f7f8ad95089
parent 97103e9f942766225b9538695959945859664844
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1705889849 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1706252348 +0800

rename libnative_drm.ndk.json and revise some format issues

refractor drm func with ram routine

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
"xtree 8870c681fca15c79aebe0cf141cea46c8e0b4207
parent a1003f221115dbb9889fb48bc3bb3fc557d1d040
author MengYao <mengyao17@huawei.com> 1706208436 +0800
committer MengYao <mengyao17@huawei.com> 1706208436 +0800

add NDK interface

Signed-off-by: MengYao <mengyao17@huawei.com>
qSxKtree 4e9f71a0b281ea47b1758f5672bc07aade0724c3
parent 7504bf302a9fb46772085c09289547f0bbde2363
parent f04e0a4f405baa685321f8cc64ae82f908898237
author openharmony_ci <120357966@qq.com> 1706084267 +0000
committer Gitee <noreply@gitee.com> 1706084267 +0000

!239 新增接口GetLineTextRange
Merge pull request !239 from guoxing/mastergzxRtree 210ad9651db33be0fe84d7f01dda93021633fdd1
parent 7504bf302a9fb46772085c09289547f0bbde2363
author lijunru <lijunru9@huawei.com> 1706067618 +0800
committer lijunru <lijunru9@huawei.com> 1706077357 +0800

support switching clang_base_dir

Signed-off-by: lijunru <lijunru9@huawei.com>
Change-Id: I605efd3cc67a3b03cc84ca5ac2f5d61701ffabf3
ixVtree a59647a7e3d96c3b3cfb865c6e3b060a35a2dbc2
parent 6a6aed261036cb64db4fd960567a7eb396c5010d
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1704877414 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1706069164 +0800

add drm adaptor to avcodec with no audiodecoder

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
jp-xJtree fb770b8ec0c096ca86291df639b6295f2edcbf09
parent 72ff0c0f5c65b410fc499e07bbe7435e2fd57a86
parent a8255730a706c9301d1e5a0daf618c6a468a8103
author openharmony_ci <120357966@qq.com> 1706006154 +0000
committer Gitee <noreply@gitee.com> 1706006154 +0000

!208 CAPIcheck检测问题修改
Merge pull request !208 from yang123/masterGi&xtree 4b02dc5c89d22335eb11d45d5fd236541f684a3b
parent 02169e4edac1b93e837bccd27799567c0a2493ef
author guoxing <guoxing22@huawei.com> 1705926060 +0000
committer guoxing <guoxing22@huawei.com> 1705999368 +0000

新增接口

Signed-off-by: guoxing <guoxing22@huawei.com>
(VЗxGtree 2bc76454253701dffb548e9064afdf010651e743
parent 02169e4edac1b93e837bccd27799567c0a2493ef
parent be538876002c28dc17965a145d165e3f90a2d5a7
author openharmony_ci <120357966@qq.com> 1705982722 +0000
committer Gitee <noreply@gitee.com> 1705982722 +0000

!201 删除马达capi命名空间
Merge pull request !201 from HYH/master^ix"tree 82f3e583b68e4fb6a9205a8adf9459aa58282bde
parent 50b4c3fb623b6a6eceed4a3008ae6c0c205deee9
author liuchungang <1397328542@qq.com> 1705981130 +0800
committer liuchungang <1397328542@qq.com> 1705981130 +0800

add qos_manager ndk header file

Signed-off-by: liuchungang <1397328542@qq.com>
Vߒx"tree bbd053a81a21465c902c9e09c090f1ebf1b5610f
parent 227dde55a27222ae8e95f94d47a56e2a74a3f611
author liuchungang <1397328542@qq.com> 1705974643 +0800
committer liuchungang <1397328542@qq.com> 1705974643 +0800

add qos_manager ndk header file

Signed-off-by: liuchungang <1397328542@qq.com>
۾UxUtree 31fa6df23babb3b4d73f4946187c4d3e4e1586d7
parent 90375c6af3f251d071f46e3fc5b2ced603125b52
parent 3c1ca2f991bd1c8059a312a8ad7dc6193ae82df1
author openharmony_ci <120357966@qq.com> 1705911837 +0000
committer Gitee <noreply@gitee.com> 1705911837 +0000

!224 将 toolchains_dir 变为可变参数
Merge pull request !224 from zzulilyw/masterjoxBtree ae08aeba84e841a6067d000ace42e5fd2ca61381
parent 74e3a8cf0d99f947e9e9c00a73da7988dc4d90f4
parent 2350f87eaa4b1687730f12c96c83f62154075830
author openharmony_ci <120357966@qq.com> 1705762124 +0000
committer Gitee <noreply@gitee.com> 1705762124 +0000

!217 新增drawing api
Merge pull request !217 from li_zt/local_0112ax tree ae08aeba84e841a6067d000ace42e5fd2ca61381
parent 169ffc54aaeab98e11c807fa00383773e9b27e24
author li_zt <lishutian1@huawei.com> 1705756814 +0000
committer Gitee <noreply@gitee.com> 1705756814 +0000

merge

Signed-off-by: li_zt <lishutian1@huawei.com>Naxvtree 764c62609ba891558779817e71af9f9d6205ee6d
parent 3e4c029ea143f88a8997a34fb7dbd8f56ae7182f
parent 74e3a8cf0d99f947e9e9c00a73da7988dc4d90f4
author li_zt <lishutian1@huawei.com> 1705756620 +0000
committer Gitee <noreply@gitee.com> 1705756620 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into local_0112

Signed-off-by: li_zt <lishutian1@huawei.com>P!vxqtree cc93de68f030c506a36be045e669c2aa5fc96704
parent ec3f6f63da4e7878c4d13e9fa486b7e71aa3e665
parent afe8093f76376e3baf4265f202de72ccdfd8a367
author openharmony_ci <120357966@qq.com> 1705755295 +0000
committer Gitee <noreply@gitee.com> 1705755295 +0000

!231 新增SaveLayer、Path、Matrix、文字相关Drawing C 接口
Merge pull request !231 from li-kiao/sdk1119_lx|xAtree 2595c4ecb8b4deab474e1f192d3a7ac6a4059289
parent d1849eb86e18c97b0267eb0acb7295da9ba4d9c9
parent b078232dc5e586b21307366c35e7a21230288734
author openharmony_ci <120357966@qq.com> 1705750488 +0000
committer Gitee <noreply@gitee.com> 1705750488 +0000

!230 新增drawing c接口
Merge pull request !230 from li-kiao/ymjp>cwxntree 3e3f7a7feb94e8237b767ecf69275dfb941e83ae
parent ce0a7b6e794fcb7e70edd0960eee2aa6de51f652
author li-kiao <lx.96@foxmail.com> 1705672858 +0000
committer li-kiao <lx.96@foxmail.com> 1705744732 +0000

新增SaveLayer、Path、Matrix、文字相关Drawing C 接口

Signed-off-by: li-kiao <lixiang284@huawei.com>
Change-Id: I875f87153cf86c832cf7663ee2510b8d19ffa26d
,|JxJtree ac11943b85b75b5dbd9b685510f68a2cf64f8257
parent ce0a7b6e794fcb7e70edd0960eee2aa6de51f652
parent 717b4e57fb1f9a66173c0309403f9763bb6db187
author openharmony_ci <120357966@qq.com> 1705743810 +0000
committer Gitee <noreply@gitee.com> 1705743810 +0000

!233 相机框架开放delete接口
Merge pull request !233 from cold/masterlhxtree ac11943b85b75b5dbd9b685510f68a2cf64f8257
parent ce0a7b6e794fcb7e70edd0960eee2aa6de51f652
author cold_yixiu <lengye@huawei.com> 1705740201 +0800
committer cold_yixiu <lengye@huawei.com> 1705740201 +0800

fix json

Signed-off-by: cold_yixiu <lengye@huawei.com>
S\xtree 794b1d733fbf3eae2c5616d9544b35bb36e0e949
parent 70786f7c1399300b739baec618bb2dc135f2d5a4
author li_zt <281364103@qq.com> 1705735351 +0800
committer li_zt <281364103@qq.com> 1705736191 +0800

新增drawing api: image surface update

Signed-off-by: lishutian <lishutian1@huawei.com>
΃X0xtree 95471801f52c0005ec0abbb17b84df9590cc88dd
parent ce0a7b6e794fcb7e70edd0960eee2aa6de51f652
author li-kiao <lx.96@foxmail.com> 1705673841 +0000
committer li-kiao <lx.96@foxmail.com> 1705674510 +0000

新增Cube二期canvas的c接口

Signed-off-by: li-kiao <yeminjia@huawei.com>
q^}x"tree 33bde4a5b8f9fc29aa5d34d6590144bdad7b9ba7
parent 10f657a9e6e3433faec0b01f0ad80804fbc4a2fc
author liuchungang <1397328542@qq.com> 1705657815 +0800
committer liuchungang <1397328542@qq.com> 1705657815 +0800

add qos_manager ndk header file

Signed-off-by: liuchungang <1397328542@qq.com>
>Wxtree d9f709c574c7f17b32fc6d5fa6ea28ae57dc9fe9
parent ce0a7b6e794fcb7e70edd0960eee2aa6de51f652
author li_zt <281364103@qq.com> 1705419226 +0800
committer li_zt <281364103@qq.com> 1705649848 +0800

新增drawing api: image surface

Signed-off-by: lishutian <lishutian1@huawei.com>
-WxGtree 2385b5459d508ca5ebdd1304c7005af19e26b908
parent 317148b07f9d6d0ea941e9a6af54a34634379245
parent a6a8ec23f55513f5a61312d820d030eaefe6eb95
author openharmony_ci <120357966@qq.com> 1705576940 +0000
committer Gitee <noreply@gitee.com> 1705576940 +0000

!228 变速api的ndk.json更新
Merge pull request !228 from Guoge/masterN>fx8tree 2385b5459d508ca5ebdd1304c7005af19e26b908
parent 75bdeed8b41437fdb63628e4de6d140dcdd9b0ef
author Guoge <guoyichen2@huawei.com> 1705571695 +0000
committer Gitee <noreply@gitee.com> 1705571695 +0000

update multimedia/audio_framework/ohaudio.ndk.json.
更新格式

Signed-off-by: Guoge <guoyichen2@huawei.com>Öhx#tree 149ff533c014f096d816e8a943a034d06d601226
parent 317148b07f9d6d0ea941e9a6af54a34634379245
author g00514389 <guoyichen2@huawei.com> 1705567808 +0800
committer g00514389 <guoyichen2@huawei.com> 1705567808 +0800

add speed apis in ndk.json

Signed-off-by: g00514389 <guoyichen2@huawei.com>
Uxttree be8646b9ce4b50cb57e5ec714c62f14d8f3fb713
parent 451be190e5701e333a4d015c8f0edbd89cb32edd
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1705546401 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1705546401 +0800

set input Array type param description from ArrayType[0] to ArrayType pointer

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
|x{tree e075a447a69ed4ada73697cd9d6255236cb123c8
parent 317148b07f9d6d0ea941e9a6af54a34634379245
author zzulilyw <liuyawei10@huawei.com> 1705480530 +0000
committer zzulilyw <liuyawei10@huawei.com> 1705480530 +0000

make  a variadic parameter
Issue: https://gitee.com/openharmony/interface_sdk_c/issues/I8WXQP
Test: Build & Boot devices & xts

Signed-off-by: zzulilyw <liuyawei10@huawei.com>
I@}VxJtree 787fe4dd2cd3595e43abf4c2278160c0b3ef2ef8
parent cb5f854f6a45e4b2c9059f31554b970060d7c267
parent 451be190e5701e333a4d015c8f0edbd89cb32edd
author openharmony_ci <120357966@qq.com> 1705476574 +0000
committer Gitee <noreply@gitee.com> 1705476574 +0000

!190 增加DRM功能CAPI
Merge pull request !190 from 王丘丘/c_local_1124iGx8tree 2efe3b7a8d25b8cb85edafe6031d8e7513d20be7
parent 682838334453cdf3dc0f01c81d5198d4c3938c4a
author yang123 <yangyanling13@huawei.com> 1705475502 +0000
committer Gitee <noreply@gitee.com> 1705475502 +0000

update sensors/miscdevice/vibrator/include/vibrator.h.

Signed-off-by: yang123 <yangyanling13@huawei.com>vczx|tree 0acbdd30aa377e184da761531cd56c844f44181f
parent fff666cd938eefd84e6ec44104807c90db3ffc2f
parent cb5f854f6a45e4b2c9059f31554b970060d7c267
author 姜前进 <jiangqianjin@huawei.com> 1705461132 +0000
committer Gitee <noreply@gitee.com> 1705461132 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 0112

Signed-off-by: 姜前进 <jiangqianjin@huawei.com>ߒ~/xtree ca715c1856eae9e25d85be3ebf03844233926ebe
parent 3826c3d5b7157ff8c238aa1d9d0170419e393376
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701247390 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1705457203 +0800

add first_introduced tag
add getMediaKeySystemName
remove prefix OH_ from enum, callback and struct
rename drminfo to mediakeysysteminfo
reformat and remove wrong dependency files, add event listener type

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
x.tree fd7c80f9a15ea22d556f55f8e33c5caf359528c2
parent e21cc0c04cb42acd011bc281e1832b6db004da7a
author liuchungang <liuchungang@1397328542@qq.com> 1705054852 +0800
committer liuchungang <1397328542@qq.com> 1705454119 +0800

add qos_manager ndk header file

Signed-off-by: liuchungang <1397328542@qq.com>
P[1xetree 363243607405c4b912cc7d5d57253141d74e4b24
parent b595150fdd8ba98180dd2e9436c788166ca47cc9
parent 4a9acbf09410f4860a23e128ed1701e2366db7ca
author openharmony_ci <120357966@qq.com> 1705412162 +0000
committer Gitee <noreply@gitee.com> 1705412162 +0000

!220 同步当前软件版本，接口并未发生变更
Merge pull request !220 from kangchongtao/0116}xZtree 25b2dcbe256d3a0f754be0f920230eb9b57f18fd
parent aff107f7c8c3106db57ae35808fe97030dc75d0b
parent 7a9c8e93bde539c483807d0b58459e56a76e7daa
author openharmony_ci <120357966@qq.com> 1705397524 +0000
committer Gitee <noreply@gitee.com> 1705397524 +0000

!222 c仓黄区扫描出的codecheck问题修改
Merge pull request !222 from zhangwu/mastervx*tree aa444a558b9bc8e222a0ece094eab6f69bf27b65
parent a1003f221115dbb9889fb48bc3bb3fc557d1d040
author zhangwuf <zhangwu47@huawei.com> 1705391428 +0800
committer zhangwuf <zhangwu47@huawei.com> 1705391428 +0800

黄区扫描出的codecheck问题修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
iZxZtree 5f4c4e1e914623b9c5fced95cc05e23de7ac0b94
parent d6e3e19754ff172479c749e9fc2008e9af37f606
parent d5a9991b51d29dd733feeafb247dd85bd35f2abf
author openharmony_ci <120357966@qq.com> 1705386797 +0000
committer Gitee <noreply@gitee.com> 1705386797 +0000

!191 avplayer通过头文件引入NativeWindow
Merge pull request !191 from 蔡洪志/master)v%x\tree 009707f9699f43c8494a621543858d00ef3c5faf
parent a1003f221115dbb9889fb48bc3bb3fc557d1d040
parent 286d8052038250ae201abc81c26e34ebb4c60a80
author openharmony_ci <120357966@qq.com> 1705386679 +0000
committer Gitee <noreply@gitee.com> 1705386679 +0000

!219 Delete redundant API from libjsvm.ndk.json
Merge pull request !219 from suchongwei/master@-iYxKtree eca3a0650a82f5b023b8c10ea784f6d8d59f88ac
parent a1003f221115dbb9889fb48bc3bb3fc557d1d040
author kangchongtao <kangchongtao@huawei.com> 1705376763 +0000
committer kangchongtao <kangchongtao@huawei.com> 1705376763 +0000

同步当前软件版本，接口并未发生变更

Signed-off-by: kangchongtao <kangchongtao@huawei.com>
4}Ɯx|tree 009707f9699f43c8494a621543858d00ef3c5faf
parent a1003f221115dbb9889fb48bc3bb3fc557d1d040
author Chongwei Su <suchongwei@huawei.com> 1705372270 +0800
committer Chongwei Su <suchongwei@huawei.com> 1705372270 +0800

Delete redundant API from libjsvm.ndk.json

issue:https://gitee.com/openharmony/interface_sdk_c/issues/I8WH3G

Signed-off-by: Chongwei Su <suchongwei@huawei.com>
uk{mxHtree c17baf1deb4a83efcf9c7ad364eef5136dbebf05
parent 3bab2bc7e1538b3f97a026636c0f3bacab953363
parent f2d1cdc1600a1e748157e510f2053a893345aa49
author openharmony_ci <120357966@qq.com> 1705318158 +0000
committer Gitee <noreply@gitee.com> 1705318158 +0000

!209 HUKS 新增permission注释
Merge pull request !209 from wuXin/masterhx'tree cf51ff0fb01ec16f7a0c98f8c832920603d7f029
parent aca175d9243d7dd4e4a5579ccd9200f52ebe8acf
author caihongzhi <caihongzhi@huawei.com> 1705317997 +0800
committer caihongzhi <caihongzhi@huawei.com> 1705317997 +0800

头文件引入路径修改

Signed-off-by: caihongzhi <caihongzhi@huawei.com>
h͕xetree 3ea32fbfa05579b100cd27ab47bb0ebdef852759
parent e21cc0c04cb42acd011bc281e1832b6db004da7a
parent a2a6c14da146bc59b8bc414bbd10d43a71ee1ddd
author openharmony_ci <120357966@qq.com> 1705067097 +0000
committer Gitee <noreply@gitee.com> 1705067097 +0000

!204 Add napi_make_callback interface function code logic
Merge pull request !204 from 王景悟/masterrHxutree 3ea32fbfa05579b100cd27ab47bb0ebdef852759
parent e21cc0c04cb42acd011bc281e1832b6db004da7a
author xwx1135370 <xuyao44@huawei.com> 1705058184 +0000
committer xwx1135370 <xuyao44@huawei.com> 1705058184 +0000

add napi_make_callback
https://gitee.com/openharmony/interface_sdk_c/issues/I8VJEQ
Signed-off-by: xwx1135370 <xuyao44@huawei.com>

Change-Id: Iadf30c974dc5f8aa961f1edc0c75492486922327
#yx+tree 9ea845348b623122c065d0a13200157b4a7517f9
parent e21cc0c04cb42acd011bc281e1832b6db004da7a
author lixinsheng2 <lixinsheng2@huawei.com> 1705054207 +0800
committer lixinsheng2 <lixinsheng2@huawei.com> 1705054207 +0800

hid ddk新增delete按键

Signed-off-by: lixinsheng2 <lixinsheng2@huawei.com>
bYx4tree 67559c9f9f77d5946f9c5abdb552d2149bbf2294
parent 6a6aed261036cb64db4fd960567a7eb396c5010d
author jwx1102601 <jiangqianjin@huawei.com> 1705048245 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1705048245 +0800

黄蓝同步code_check问题解决

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
g:x8tree 6e66ed213d65b56162dcc415685aef3d37c5a1cd
parent c7d7c84b960b450cb8d659e52939dedcef903b90
author yang123 <yangyanling13@huawei.com> 1705047848 +0000
committer Gitee <noreply@gitee.com> 1705047848 +0000

update sensors/miscdevice/vibrator/include/vibrator.h.

Signed-off-by: yang123 <yangyanling13@huawei.com>&cȘx8tree 2b06c1190973c055769c12389bd0a411d7d670de
parent fbfb0421fecd036b14301a86f93e63a5438dcbcb
author yang123 <yangyanling13@huawei.com> 1705043815 +0000
committer Gitee <noreply@gitee.com> 1705043815 +0000

update sensors/miscdevice/vibrator/include/vibrator.h.

Signed-off-by: yang123 <yangyanling13@huawei.com>bxBtree 209ea431155d348b21d41fcec561183ef714b92d
parent e21cc0c04cb42acd011bc281e1832b6db004da7a
author wuXin <wuxintao5@huawei.com> 1705040924 +0000
committer Gitee <noreply@gitee.com> 1705040924 +0000

update security/huks/include/native_huks_api.h.
新增permission权限注释

Signed-off-by: wuXin <wuxintao5@huawei.com>nnxStree bce3ce873c3559a46489d421f13b383d5a81a06e
parent 94907c4cd9e1ffcd6dd5bf9ffa2a71b15f262d9c
parent 90e6a8213eb81983f0d4782fed179d1a41b1f79a
author openharmony_ci <120357966@qq.com> 1704989750 +0000
committer Gitee <noreply@gitee.com> 1704989750 +0000

!153 Add system standard JS engine API
Merge pull request !153 from suchongwei/mastergTxstree 01c2f4be74191c02e8547a0a872dd1dede4badbe
parent 6511c8cafbcd9e7f2603b320f25ecf4784e3a5a3
author Chongwei Su <suchongwei@huawei.com> 1702893369 +0800
committer Chongwei Su <suchongwei@huawei.com> 1704973807 +0800

Add system standard JS engine API

issue:https://gitee.com/openharmony/interface_sdk_c/issues/I8PEK3

Signed-off-by: Chongwei Su <suchongwei@huawei.com>
D:ydxGtree 6421b89e57fe3ab48faddcac2b1329db0317e37e
parent 6a6aed261036cb64db4fd960567a7eb396c5010d
parent 6231874d1f68f0f571dbf9153ea5b5ad93d07b61
author openharmony_ci <120357966@qq.com> 1704961728 +0000
committer Gitee <noreply@gitee.com> 1704961728 +0000

!197 capi注释整改
Merge pull request !197 from zhouwenzhi/fix_warninggxtree 6598a87e0f74ceca06fcdea6c8d0fed0501ccb64
parent 045273280af4a99e9fcf0a84138506dc2596522e
author yyl <yangyanling13@huawei.com> 1704936056 +0000
committer yyl <yangyanling13@huawei.com> 1704936056 +0000

文件提交1

Signed-off-by: yyl <yangyanling13@huawei.com>
=Wqxtree c8178c734a481ae6717a0afca14fa877edc9364e
parent 6a6aed261036cb64db4fd960567a7eb396c5010d
author yyl <yangyanling13@huawei.com> 1704935761 +0000
committer yyl <yangyanling13@huawei.com> 1704935761 +0000

文件提交

Signed-off-by: yyl <yangyanling13@huawei.com>
YW=xgtree 6421b89e57fe3ab48faddcac2b1329db0317e37e
parent 6a6aed261036cb64db4fd960567a7eb396c5010d
author Handsome_Afraican_Man <zhouwenzhi@huawei.com> 1704444925 +0800
committer Handsome_Afraican_Man <zhouwenzhi@huawei.com> 1704875381 +0800

    IssueNo:#I8TY6M
    Description:Bugfix
    Sig:bundleManager
    Feature or Bugfix:Bugfix
    Binary Source:No

    Signed-off-by: zhouwenzhi <zhouwenzhi@huawei.com>
}xVtree 9c32970972343d0d52f707e9922e11dc1ce7d571
parent 073112c41754697c8b282d758c181039fa483a22
parent 76b7bc4d029105ce5235b90b73d69e96555bb46c
author openharmony_ci <120357966@qq.com> 1704784799 +0000
committer Gitee <noreply@gitee.com> 1704784799 +0000

!192 ndk enable napi_add_finalizer
Merge pull request !192 from Gymee/add_napi_interfaceftxAtree 0fae289a042cdec01d212eb4855ede9f39c9f4d6
parent 88a11e9a9cb46a70b5f0b668bbca9c073f5815ff
parent 4f931aa6ca520146b5ea7cab8f522ff4ea1291d1
author openharmony_ci <120357966@qq.com> 1704781237 +0000
committer Gitee <noreply@gitee.com> 1704781237 +0000

!200 添加syscap tag
Merge pull request !200 from wangyifan/masterdxFtree 7054bc4ca026551435d560374dc50b685cb114f9
parent af1689d518c3e3c851fd7ba286f8104a4dfdf816
parent 65a0611f3544db3fd7c56e25792f5cb908f7c4f9
author openharmony_ci <120357966@qq.com> 1704770824 +0000
committer Gitee <noreply@gitee.com> 1704770824 +0000

!203 key修改成正确的
Merge pull request !203 from linziming/masterirh$xStree 7054bc4ca026551435d560374dc50b685cb114f9
parent af1689d518c3e3c851fd7ba286f8104a4dfdf816
author linziming <linziming2@huawei.com> 1704762487 +0000
committer linziming <linziming2@huawei.com> 1704762487 +0000

key修改成正确的

Signed-off-by: linziming <linziming2@huawei.com>
Change-Id: I4089a604b24f8460ca5c283cac68fa12c709bbf1
9o$x+tree d4ed3d59ab847c86ca12398476ebd600f9a0c21a
parent af1689d518c3e3c851fd7ba286f8104a4dfdf816
author hellohyh001 <huiyuehong@huawei.com> 1704701189 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1704701189 +0000

删除马达capi命名空间

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
(gdxtree 38ddfc1ada2604c01b5af3e2e3c053d7fa5aa595
parent af1689d518c3e3c851fd7ba286f8104a4dfdf816
author w30052974 <wangyifan94@huawei.com> 1704699126 +0800
committer w30052974 <wangyifan94@huawei.com> 1704699126 +0800

添加syscap tag

Signed-off-by: w30052974 <wangyifan94@huawei.com>
3Wexstree ccb1ef2085a44d69b3a1cd8228e76bc30a7afee4
parent be599ed65231eac3eab9d6ff8c7f0737b673b9db
author Gymee <yumeijie@huawei.com> 1704331637 +0800
committer Gymee <yumeijie@huawei.com> 1704684240 +0800

ndk enable napi_add_finalizer

Issue: https://gitee.com/openharmony/interface_sdk_c/issues/I8TG6F
Signed-off-by: Gymee <yumeijie@huawei.com>
Change-Id: I1001fa8dc6cfb6e277c995e152ff10efd1e821ac
xPtree a1ac93ec8239cf8e45749726079def37a6825c66
parent 15606ee0df8cc73e5f32726dfc7fe51d875bd5dc
parent ff43e6a56afa84398a94aef585d5ac37e3c5723a
author openharmony_ci <120357966@qq.com> 1704533874 +0000
committer Gitee <noreply@gitee.com> 1704533874 +0000

!179 包管理Native接口适配C代码
Merge pull request !179 from 赵淦/masterqwxLtree 78e2c59df973a00ac38e73db3fd5cec20af07805
parent 51c54b2f543fd067b46a22ff34094f4491e5abbd
parent 71764512a7c1e3750cef2f401fbd54689d3edb36
author openharmony_ci <120357966@qq.com> 1704443409 +0000
committer Gitee <noreply@gitee.com> 1704443409 +0000

!76 新增接口OH_Drawing_RegisterFont
Merge pull request !76 from 003/master{hxatree 2015f775ebc58c50e391abe8a446e0449eae4b51
parent 0af4dc5f80710dcc13500ff1c1ead372e34b2eaa
parent c8cd18c9966b75eb93156cb84c267fac3277d137
author openharmony_ci <120357966@qq.com> 1704431044 +0000
committer Gitee <noreply@gitee.com> 1704431044 +0000

!168 remove res_state and program_vocation_name
Merge pull request !168 from haotuo/fix_c_ndk_issuenxCtree bedf94e24479ee8d2ece9861f6a859b5ef85b2dd
parent 6315f2e136dcc76c249c5a35a389d34a7edf717a
parent a9fc16dc2bcaa3ca209d6fb3d2855b892f59eb83
author openharmony_ci <120357966@qq.com> 1704358164 +0000
committer Gitee <noreply@gitee.com> 1704358164 +0000

!57 新增相机框架c接口
Merge pull request !57 from cold/master3kbxKtree edfaf79783d4c5ab0161c9cf5705bd4784966838
parent f62b11a8e9d58150c0a4caba61522dff13f97172
parent e84520bc64e680d4607cec2fb3fa8e5722e72600
author openharmony_ci <120357966@qq.com> 1704354005 +0000
committer Gitee <noreply@gitee.com> 1704354005 +0000

!195 add kit Universal Keystore Kit
Merge pull request !195 from wuXin/masterLcxtree b6e19a5d18394422e0b23a0e733d36c74db6ebe6
parent 4628bc3d071d5d9b08d343e1bcf5646c347723fc
author cold_yixiu <lengye@huawei.com> 1704353930 +0800
committer cold_yixiu <lengye@huawei.com> 1704353930 +0800

fix build.gn

Signed-off-by: cold_yixiu <lengye@huawei.com>
WSxtree edfaf79783d4c5ab0161c9cf5705bd4784966838
parent e769be7a139cb46da41b743dbb898400993bac63
author WuXinTao <wuxintao5@huawei.com> 1704349090 +0800
committer WuXinTao <wuxintao5@huawei.com> 1704349090 +0800

add code for fix 5
Signed-off-by: wuxintao <wuxintao5@huawei.com>
5Vxtree e2bf56f04863f1e0b88eb5a69ba1b5103bd10af8
parent 958e39fffecd176c52a55a82f765fd10cf018879
author WuXinTao <wuxintao5@huawei.com> 1704344239 +0800
committer WuXinTao <wuxintao5@huawei.com> 1704344239 +0800

add code for fix3
Signed-off-by: wuxintao <wuxintao5@huawei.com>
SKVlxtree 029a173beae682213a1efa6476f1b813b6214174
parent 260cf9e5d470691baa5bb60014c61cc65b1bb1bb
author WuXinTao <wuxintao5@huawei.com> 1704340747 +0800
committer WuXinTao <wuxintao5@huawei.com> 1704340747 +0800

add code for HUKS kit
Signed-off-by: wuxintao <wuxintao5@huawei.com>
.Vx&tree f2f04a79abadc4914b4c4f9f0570d53cbd392e5c
parent c9f2e7a5fff742e1f2c13da1465aa39ee2fcce41
author wuXin <wuxintao5@huawei.com> 1704335800 +0000
committer Gitee <noreply@gitee.com> 1704335800 +0000

update security/huks/include/native_huks_type.h.

Signed-off-by: wuXin <wuxintao5@huawei.com>5_x'tree 61cd7e3449415d4a239bc143ed1442ae464cd43e
parent 985ba11d72caee80096899630a7b530df91f7aaa
author wuXin <wuxintao5@huawei.com> 1704335781 +0000
committer Gitee <noreply@gitee.com> 1704335781 +0000

update security/huks/include/native_huks_param.h.

Signed-off-by: wuXin <wuxintao5@huawei.com>N^7x%tree 10bb90a1b5ee75e9cb6c715bf920ebedb4741ab8
parent f62b11a8e9d58150c0a4caba61522dff13f97172
author wuXin <wuxintao5@huawei.com> 1704335765 +0000
committer Gitee <noreply@gitee.com> 1704335765 +0000

update security/huks/include/native_huks_api.h.

Signed-off-by: wuXin <wuxintao5@huawei.com>^@xJtree 4125004e749c96395bf0e398a3e01ab161492993
parent be599ed65231eac3eab9d6ff8c7f0737b673b9db
parent 3ac01e11e767bbbc75e13a692896114dba22651d
author openharmony_ci <120357966@qq.com> 1704334734 +0000
committer Gitee <noreply@gitee.com> 1704334734 +0000

!182 NDK补充-修改错误参数
Merge pull request !182 from Aurora/masterfBjӕx5tree f28b858b6baad650b887ce14974bb13ea1dd56e5
parent be599ed65231eac3eab9d6ff8c7f0737b673b9db
author caihongzhi <caihongzhi@huawei.com> 1704288600 +0800
committer caihongzhi <caihongzhi@huawei.com> 1704288600 +0800

avplayer通过头文件引入NativeWindow

Signed-off-by: caihongzhi <caihongzhi@huawei.com>
tlxrtree 504ebcbfeda50b0a0e3bcc2022a835a627065580
parent c887ed2dafe4f47ee9f2d1d73e8766d8bbeb388e
parent be599ed65231eac3eab9d6ff8c7f0737b673b9db
author 003 <zhanglitao11@huawei.com> 1704286351 +0000
committer Gitee <noreply@gitee.com> 1704286351 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 003 <zhanglitao11@huawei.com>ruQx@tree eefbe435ca6eba769d4e6087a9506af36b9f5f83
parent 0e6e33b95f9ffeda6872a5ee2694b3486d16c5ca
parent 9e57d0a2973acd3c414645391f7fca9aa554db70
author openharmony_ci <120357966@qq.com> 1704275409 +0000
committer Gitee <noreply@gitee.com> 1704275409 +0000

!115 channel layout API
Merge pull request !115 from Lepage/mastera`Õxztree 39d94b038690f0c823cbd57a7af36615ed4a2451
parent 1a66c55719aa356001c9544d638f647c7f3b5178
author zhaogan <zhaogan2@huawei.com> 1703563205 +0800
committer zhaogan <zhaogan2@huawei.com> 1704264765 +0800

Issue: #I8REBE
Description:包管理Native接口适配C代码
Sig: SIG_ApplicaitonFramework
Feature or Bugfix: Feature
Binary Source: No

Signed-off-by: zhaogan <zhaogan2@huawei.com>
(x>tree 7c754136e0fa4cddc33e47e8cad37b495c52397c
parent d0e3cc79dbcf169d5be7a0c4d08b23dbc68d1fb2
parent adb770bb26aadbcd21264fe167557fdec6bce2e0
author cold_yixiu <lengye@huawei.com> 1704264038 +0800
committer cold_yixiu <lengye@huawei.com> 1704264038 +0800

Merge branch 'master' of gitee.com:cold_yixiu/interface_sdk_c
iextree b0bfb851d1cd47317ed5ac1480ee454a96e81c6b
parent 558534b306c20de010780d79a9496327fe1c10a0
author cold_yixiu <lengye@huawei.com> 1704263944 +0800
committer cold_yixiu <lengye@huawei.com> 1704263944 +0800

fix docs

Signed-off-by: cold_yixiu <lengye@huawei.com>
Qxtree 81201804126d8bb046950b7881f5367c7d4ba55a
parent 18d27ae66802f1685f9fb35a7ad62b6b02e77101
parent 3b33bffbd2bd6613fff6767937ee7726659b93e5
author Lepage <linyuanpeng@huawei.com> 1704254336 +0000
committer linyuanpeng <linyuanpeng@huawei.com> 1704254441 +0800

audio_channel_layout
 V;x!tree 8d41519553cdd52fa31a2788fbd871986563056d
parent a5203a42d7491efea6a915d129735c844de1b469
parent e8103910632e8344a7e64692c5b8d54d26c53cf3
author linyuanpeng <linyuanpeng@huawei.com> 1704254223 +0800
committer linyuanpeng <linyuanpeng@huawei.com> 1704254223 +0800

audio_channel_layout
Xxtree d927585371462f4e8c0abcf1003ffe7e4096e03d
parent 1ec8d95cd6dd48975e0d1a4d40a638b2a75ac218
parent cd3a9175bd6ed7497548600a0d4dbb1b7d495fa3
author Lepage <linyuanpeng@huawei.com> 1704192074 +0000
committer linyuanpeng <linyuanpeng@huawei.com> 1704254100 +0800

audio_channel_layout
0%Wxtree 13ea6f2ebd3e70167c84e79d369c5c318ea75460
parent edb0ee237c3ef30fb56cda6e97514069574b5fd7
author peng <yangpeng43@huawei.com> 1704253701 +0800
committer peng <yangpeng43@huawei.com> 1704253701 +0800

format gn

Signed-off-by: peng <yangpeng43@huawei.com>
v|O;xUtree 0b3086d8109481d995afc655aafd054a16d96b05
parent 84f324e6892335757541174ca062d95b57168fcb
parent edb0ee237c3ef30fb56cda6e97514069574b5fd7
author Lepage <linyuanpeng@huawei.com> 1704252478 +0000
committer Gitee <noreply@gitee.com> 1704252478 +0000

!3 【修改说明】修改layout文件的BUILD.gn
Merge pull request !3 from peng/master=tBxtree 0b3086d8109481d995afc655aafd054a16d96b05
parent 84f324e6892335757541174ca062d95b57168fcb
author peng <yangpeng43@huawei.com> 1704252090 +0800
committer peng <yangpeng43@huawei.com> 1704252090 +0800

modify audio layout gn

Signed-off-by: peng <yangpeng43@huawei.com>
8Rvxtree 33802d1ef26060c754c372284369c54ebe61eee2
parent 1ec8d95cd6dd48975e0d1a4d40a638b2a75ac218
parent cd3a9175bd6ed7497548600a0d4dbb1b7d495fa3
author Lepage <linyuanpeng@huawei.com> 1704192074 +0000
committer linyuanpeng <linyuanpeng@huawei.com> 1704251091 +0800

audio_channel_layout
QW=xtree 33dad5d33e82911e5f6864a94aa019cf3a98d192
parent 1ec8d95cd6dd48975e0d1a4d40a638b2a75ac218
author peng <yangpeng43@huawei.com> 1704187452 +0800
committer peng <yangpeng43@huawei.com> 1704187452 +0800

add audio layout gn

Signed-off-by: peng <yangpeng43@huawei.com>
tRxFtree c82a2597b0d66bc620fdb44727e6b295a3ec1cf9
parent 46aa2c93b62149397ca9d905390af0892cd22f17
parent d9c955f59e48518fae6d1846d36095ca0844d05b
author linyuanpeng <linyuanpeng@huawei.com> 1704180848 +0800
committer linyuanpeng <linyuanpeng@huawei.com> 1704181935 +0800

Merge branch 'master' of gitee.com:lepage/interface_sdk_c
ex_tree 76912fa93b650acebd2a84ed0535081724d3215e
parent 75b80df5598684ab4a223da5f223acfba318e366
parent b2b0404b38d91a3d71025e8561a75d81d31c8059
author openharmony_ci <120357966@qq.com> 1704177096 +0000
committer Gitee <noreply@gitee.com> 1704177096 +0000

!107 新增路由变化原因通知NDK API
Merge pull request !107 from ancimoon/br_device_changeUsڗxgtree 03d74d3cfbb7a001dd7658e24bbaab561d91460e
parent 6de0643dea258a0c6f6b18d058f9298aab2c2e40
parent 102c0764f1f79e343389d873b4ee5441272927df
author openharmony_ci <120357966@qq.com> 1704022693 +0000
committer Gitee <noreply@gitee.com> 1704022693 +0000

!111 avcodec新增功能接口，公共接口移至底座
Merge pull request !111 from hongran1206/master}x4tree e59f06bff50e6ceb318814028e34223eaa553d2b
parent 262fcc02b63dc0ab5ca647878eb74a145bee01d3
author zhanghongran <zhanghongran@huawei.com> 1704015796 +0800
committer zhanghongran <zhanghongran@huawei.com> 1704015796 +0800

添加first_introduced说明

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
i&xMtree c2ca80429dfd4188cc690227baa92e814900306d
parent 6e0fc5379cf09dcd7e58411fea35ae31f1983e6e
parent c30c60435d5701df7ec35cb61da4ad58782d1a19
author openharmony_ci <120357966@qq.com> 1703851723 +0000
committer Gitee <noreply@gitee.com> 1703851723 +0000

!185 native接口参数范围修改
Merge pull request !185 from fyz1019/master_lwxHtree a79f5016fc1bb37fb73075042c799c87a077f14e
parent 3e434f440a37154cb68bb55c9529d391c3b3ca34
parent e098273620bbc007eb7179bb5bcf1c53bef35a1c
author openharmony_ci <120357966@qq.com> 1703846899 +0000
committer Gitee <noreply@gitee.com> 1703846899 +0000

!186 drawing新增接口提交
Merge pull request !186 from guoxing/mastert2i>x9tree cd0962b9ff72bc6505211de458b94d3dfc1784fd
parent 3e434f440a37154cb68bb55c9529d391c3b3ca34
author fangyunzhong <fangyunzhong2@huawei.com> 1703831088 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1703845158 +0800

native接口参数范围修改

Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
;Omxktree aa1d20ceeac63d773a251244b52a097dd3ae84d9
parent c4ffeb52f8df2639102e8f557bbcd035fd2ffcb3
parent c12ba3ed0d6dea91563fedf938f796ab4be3dbef
author hongran1206 <zhanghongran@huawei.com> 1703836194 +0000
committer Gitee <noreply@gitee.com> 1703836194 +0000

!7  修改接口注释和架构信息平台上面保持一致
Merge pull request !7 from 李建超/masterx_tree aa1d20ceeac63d773a251244b52a097dd3ae84d9
parent b554058636c97a1ae145cd80bb3b3fd14d00be7e
parent c4ffeb52f8df2639102e8f557bbcd035fd2ffcb3
author li-jianchao1993 <lijianchao9@huawei.com> 1703835686 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1703835686 +0800

Merge branch 'master' of https://gitee.com/li-jianchao1993/interface_sdk_c
<m|xjtree aa1d20ceeac63d773a251244b52a097dd3ae84d9
parent 9bcb3e4fb70aa73478d8c210643d0cb3eb603ff3
author li-jianchao1993 <lijianchao9@huawei.com> 1703835599 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1703835599 +0800

【修改说明】 修改接口注释和架构信息平台上面保持一致

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
a4ƑxAtree 04c373213dd1f058aa5ca29452e4f1500689d134
parent 150f28fbaeb65b7889809f074be8ab95c777bdea
author huchang <huchang4@huawei.com> 1701700145 +0800
committer huchang <huchang4@huawei.com> 1703834741 +0800

add export json

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: I2dad86ecddc03847f038777324d0216fc3be9c82
a;xAtree fe1133d855a26cc92dce05e2e5865a39e8a8cebd
parent dc6f21a34919570b3acd5ebcf29864bd24fa16c5
author huchang <huchang4@huawei.com> 1701262943 +0800
committer huchang <huchang4@huawei.com> 1703834741 +0800

adjust comments

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Id75da48370c8db46b861c2772c2ab86ea2662549
?;bxYtree 3bcf472a253ad0ba362d15c88ed13174024dcd6a
parent 3e434f440a37154cb68bb55c9529d391c3b3ca34
author huchang <huchang4@huawei.com> 1701172586 +0800
committer huchang <huchang4@huawei.com> 1703834740 +0800

supports reporting device change reason

Signed-off-by: huchang <huchang4@huawei.com>
Change-Id: Id4889cc4b1598b333173053a145c562d6c8c146a
8jxtree a79f5016fc1bb37fb73075042c799c87a077f14e
parent 3e434f440a37154cb68bb55c9529d391c3b3ca34
author guoxing <guoxing22@huawei.com> 1703834123 +0000
committer guoxing <guoxing22@huawei.com> 1703834123 +0000

encode

Signed-off-by: guoxing <guoxing22@huawei.com>
PxKtree 854cd00ae24a2de51910cee4842ccbc16965b6ec
parent bb4d5c8c6c9da0ce41b8ec80daead073ab6c92b3
author zhangwuf <zhangwu47@huawei.com> 1703834074 +0800
committer zhangwuf <zhangwu47@huawei.com> 1703834074 +0800

CAPI解析工具解析宏定义代码优化和check语法指令bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
ɀx}tree 5ddc151e11a01788141dae2cb2f92c111433bab7
parent acd21c982ce5ad66b3c74a416464c038ec66ebe7
parent 9bcb3e4fb70aa73478d8c210643d0cb3eb603ff3
author hongran1206 <zhanghongran@huawei.com> 1703825524 +0000
committer Gitee <noreply@gitee.com> 1703825524 +0000

!6 【修改说明】 修改接口注释和架构信息平台上面保持一致
Merge pull request !6 from 李建超/masterNkxItree ca0a46e95417f5cb622beadb8db100145538ea5b
parent 5de4be05a08d1402de2aa106134ac18ffe410616
parent d8c2808912b17845f420070c7d82d8a2ac5381d4
author hongran1206 <zhanghongran@huawei.com> 1703762766 +0000
committer Gitee <noreply@gitee.com> 1703762766 +0000

!5 format check告警修复
Merge pull request !5 from linziming/masterui7xVtree 60ddc03c7d4b61699dae0b2fd1c93c93f3c30b2d
parent 016a8a3be161c1dd07c00850d3869c4fb9d06d39
author linziming <linziming2@huawei.com> 1703762273 +0000
committer linziming <linziming2@huawei.com> 1703762273 +0000

format check告警修复

Signed-off-by: linziming <linziming2@huawei.com>
Change-Id: Icac6e733b86245b072e4ade0ee787fbf7251977b
oAxXtree 7b02232c74082aa3582e36e8347001616a67416b
parent 81ec52758c83a9b4c80a5a920e0630c239ccea16
parent 5c6b1e1a70e1866371109cef5d8d9e40424af6b5
author hongran1206 <zhanghongran@huawei.com> 1703756276 +0000
committer Gitee <noreply@gitee.com> 1703756276 +0000

!4 【修改说明】audio_channel_layout修改
Merge pull request !4 from peng/masterP8r!xtree 7b02232c74082aa3582e36e8347001616a67416b
parent 81ec52758c83a9b4c80a5a920e0630c239ccea16
author peng <yangpeng43@huawei.com> 1703755924 +0800
committer peng <yangpeng43@huawei.com> 1703755924 +0800

audio_channel_layout mark

Signed-off-by: peng <yangpeng43@huawei.com>
T	xTtree f7289455d5d7ab6929c979cf63af2deffd90891b
parent dc016d07d0fca0edce23a52aa4c2dc2807f0b00f
parent 016a8a3be161c1dd07c00850d3869c4fb9d06d39
author hongran1206 <zhanghongran@huawei.com> 1703752761 +0000
committer Gitee <noreply@gitee.com> 1703752761 +0000

!3 修改json & 头文件include修改
Merge pull request !3 from linziming/masterH#qxFtree 1a429e9d9acd0b39d16f4e65bda85bac9482f75a
parent 44ea83e6be299aa2f8a134b8bdd84f8f8338c6bb
parent a92b1b4728089ea312edd4685f7d4408a207929b
author openharmony_ci <120357966@qq.com> 1703749854 +0000
committer Gitee <noreply@gitee.com> 1703749854 +0000

!142 fix vibrator header out dir
Merge pull request !142 from HYH/masterbxatree f7289455d5d7ab6929c979cf63af2deffd90891b
parent dc016d07d0fca0edce23a52aa4c2dc2807f0b00f
author linziming <linziming2@huawei.com> 1703749519 +0000
committer linziming <linziming2@huawei.com> 1703749519 +0000

修改json & 头文件include修改

Signed-off-by: linziming <linziming2@huawei.com>
Change-Id: Ie64d4eeb8b7948a258708ec471f598cab396fd86
wjx/tree eecf2390479cc42196ea3a27ccd659f592184629
parent 44ea83e6be299aa2f8a134b8bdd84f8f8338c6bb
author Aurora <liuxiyao223@huawei.com> 1703733524 +0000
committer Gitee <noreply@gitee.com> 1703733524 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>`Ðxptree 592f6d7891f28481941a205b98de71c705a557c6
parent bb4d5c8c6c9da0ce41b8ec80daead073ab6c92b3
parent 20d8ac924da46e176e8fb9f7b949059b3b541898
author openharmony_ci <120357966@qq.com> 1703677043 +0000
committer Gitee <noreply@gitee.com> 1703677043 +0000

!93 开放napi接口 napi_coerce_to_native_binding_object (interface)
Merge pull request !93 from wangzhaoyong/ndkHwxrtree 82c3ba0eb3f555ed7a1065fa7e170ddccc190097
parent 2dd02160dc75261d2dfd789ad765413f0bf6f6a9
parent bb4d5c8c6c9da0ce41b8ec80daead073ab6c92b3
author 003 <zhanglitao11@huawei.com> 1703650006 +0000
committer Gitee <noreply@gitee.com> 1703650006 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into master

Signed-off-by: 003 <zhanglitao11@huawei.com>mtxKtree 21ea3236b2b3881c753dd5a04865b0c5e6724d36
parent da05c4ca635c7d1ff0f19d4c8cd17efa3bc6be7a
parent bbdc4444b8e6725c8b955f0a43684588d03452cf
author openharmony_ci <120357966@qq.com> 1703595738 +0000
committer Gitee <noreply@gitee.com> 1703595738 +0000

!155 Add NDK api for net ssl
Merge pull request !155 from Aurora/netssl_ndk_racxBtree 93e7e5ec6479deb4261e230f7933de5b6594f0db
parent 2b2c2e43d33c734b131aceb5e9f0c47a5e8da0bf
parent 80449e0825725ffb34464447d18fb330fc6e924b
author openharmony_ci <120357966@qq.com> 1703593988 +0000
committer Gitee <noreply@gitee.com> 1703593988 +0000

!157 新增ndk接口
Merge pull request !157 from ustc-tianyu/master]Ye<xDtree 49c23b8e65bb1546abac6f2a87c59570d1841877
parent 92298a8d342d6d07fdb917962eaafddd079ad0e9
parent b933d4ec33f03ab963c588e095a8c946df84ec84
author openharmony_ci <120357966@qq.com> 1703593761 +0000
committer Gitee <noreply@gitee.com> 1703593761 +0000

!180 modify AccessPixels
Merge pull request !180 from 朱静茹/masterdcdxtree 8c586f0d364fb618ba96299fd2c6a3b26fab0827
parent 1a66c55719aa356001c9544d638f647c7f3b5178
author zhujingru <zhujingru2@huawei.com> 1703574013 +0800
committer zhujingru <zhujingru2@huawei.com> 1703587831 +0800

modify AccessPixels

Signed-off-by: zhujingru <zhujingru2@huawei.com>
YؚxZtree b98f983fab26dbb0b0bdfbd5e6a316516f70d6ab
parent 1a66c55719aa356001c9544d638f647c7f3b5178
parent 8f7f0cebc5f41abc84e1c1ee875321021889c66f
author openharmony_ci <120357966@qq.com> 1703582624 +0000
committer Gitee <noreply@gitee.com> 1703582624 +0000

!181 门禁功能优化&增加宏函数名判断
Merge pull request !181 from 姜前进/1226[yax=tree e2609b97c8949ba172cb2477a072cf9c57cbb266
parent 41968f6097c2a62ef8ea7127b60fccc083c7cbe8
author jwx1102601 <jiangqianjin@huawei.com> 1703574631 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1703574631 +0800

门禁功能优化&增加宏函数名判断

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
*pxtree de1177fb77410f3d1f96e22de6aedff666269788
parent a1edddd13a89f99d4595de5ca8bae8413c8465a1
author d00613262 <dutianyu4@huawei.com> 1702968497 +0800
committer d00613262 <dutianyu4@huawei.com> 1703516488 +0800

ndk interface
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
YTxNtree ddbeab41245266aced7601a168ad4fe4bf12a129
parent 01c81ae1674db77f55120ab1e71d8fdc93cfb8f9
parent 581bf234c987043dd075e3775bdfe49b08aaaa96
author openharmony_ci <120357966@qq.com> 1703515174 +0000
committer Gitee <noreply@gitee.com> 1703515174 +0000

!173 bundleNdk add appId&appIdentifer
Merge pull request !173 from 赵淦/masterh.xHtree a97e5e7e008f60737caa59af40b22cd080178c57
parent bc98e72b087e46c6d581b017f8c3e84e436026d0
parent 55b274e0b144f53c4c6ff6f6803d7f3e27eea074
author openharmony_ci <120357966@qq.com> 1703507138 +0000
committer Gitee <noreply@gitee.com> 1703507138 +0000

!132 新增匿名key attest接口
Merge pull request !132 from ailu/masterhxktree 260de2329cba982e9bd67ecb30bab1fed23ec9a5
parent b040a421aa682a795ce27583e8a5bc92f2eb185b
parent d967d4bd89a05d57227fc34593f9d32fb3e99bf9
author openharmony_ci <120357966@qq.com> 1703504433 +0000
committer Gitee <noreply@gitee.com> 1703504433 +0000

!175 需要废弃的接口不用放在新的头文件里，还是放原来老的头文件中  #I8QLIK
Merge pull request !175 from wangchuanxia/masterdҙxItree 92a01bad22ffa5af1d892cfb651b98baa30de3f6
parent c02ee048dfa049e57bc0be7d56395a01d43eac23
parent ff3bd3815a667dad350994c5383ef47b9e9bb104
author openharmony_ci <120357966@qq.com> 1703493417 +0000
committer Gitee <noreply@gitee.com> 1703493417 +0000

!78 增加音频变速API
Merge pull request !78 from Guoge/gyc_change_apis	jxEtree 06eda7ecf2d0b21d289898a040abcbf3bb1294fd
parent d0fbf6f0ee1c0ee60eb85a80069fe87e46cf2c43
parent c5f31ace49b4017a9deb1746af5b537c8e3d6d99
author openharmony_ci <120357966@qq.com> 1703487803 +0000
committer Gitee <noreply@gitee.com> 1703487803 +0000

!134 补err code和access type
Merge pull request !134 from ailu/masterBexltree 9be5c7e60936147e78c4eb4a2c80c05115b0bbd6
parent dc5016533bfcd4d54beba2c45bcb22a9b8b49c70
parent 817e752c32910eae941f206c9ca854b8fe715743
author openharmony_ci <120357966@qq.com> 1703470506 +0000
committer Gitee <noreply@gitee.com> 1703470506 +0000

!178 针对diff工具，增加解析单文件引入头文件功能
Merge pull request !178 from zhangwu/masterP]x|tree e0e79f8802dd0996dd4a00d1b623bc3d4cc37401
parent e4e64ec96561c1a5ad8aab9821790f01752189ce
author zhaogan <zhaogan2@huawei.com> 1703220725 +0800
committer zhaogan <zhaogan2@huawei.com> 1703467527 +0800

Issue: #I8QHIL
Description:bundleNdk add appId&appIdentifer
Sig: SIG_ApplicaitonFramework
Feature or Bugfix: Feature
Binary Source: No

Signed-off-by: zhaogan <zhaogan2@huawei.com>
l|x2tree 2d53a2b69d7b23ce77d76df0fe7462c11dc614be
parent e97cd909ee2d1edfe1d712774f7b87202b58e1ff
author zhangwuf <zhangwu47@huawei.com> 1703322133 +0800
committer zhangwuf <zhangwu47@huawei.com> 1703322133 +0800

针对CAPIdiff工具增加解析引入头文件

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
<oKx%tree 04697bf471fa6d7df4559a2ae9ec25d0a2843bb8
parent b83d1ec19cd1b4f92c6a0a860efd7ab422b088ec
author linyuanpeng <linyuanpeng@huawei.com> 1701502044 +0800
committer linyuanpeng <linyuanpeng@huawei.com> 1703317453 +0800

channel layout enum

Signed-off-by: linyuanpeng <linyuanpeng@huawei.com>
">_xTtree a3ca6a4c1d32032cb6211c5dc6f6b914f8e85798
parent 048c9f58ec190fce1340b88c99374c986e34f65e
parent cecda7d1019377d904d04a8df408c1dce1ad3a2d
author openharmony_ci <120357966@qq.com> 1703234659 +0000
committer Gitee <noreply@gitee.com> 1703234659 +0000

!143 新增web_ndk接口interface_sdk_c
Merge pull request !143 from echoorchid/masterlxBtree 308dc7bc9c846aa04c270d7068dfb9248cd7251d
parent 55f74dce26a32e1347f475235dcf1ee17eb3d357
author echoorchid <huweidong2@huawei.com> 1702386640 +0800
committer echoorchid <huweidong2@huawei.com> 1703233789 +0800

add ndk capi for web javascriptProxy and runJavaScript

Signed-off-by: echoorchid <huweidong2@huawei.com>
ݶgЛxKtree 2ab276b02390c81f5f71761929791bb53c9767de
parent e4e64ec96561c1a5ad8aab9821790f01752189ce
parent 2edc05e3f7946b74247ec5b385419b870cad63bb
author openharmony_ci <120357966@qq.com> 1703229616 +0000
committer Gitee <noreply@gitee.com> 1703229616 +0000

!156 回退channel_layout修改
Merge pull request !156 from 杨俊晖/masterjȘx(tree 2ffa8db7848d35e8c64710ad1b29b1db1d889d6c
parent 4d3699f46146a0f84d6e102f5c3c834c1a3787d2
author wangchuanxia <wangchuanxia@huawei.com> 1703229131 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1703229131 +0800

head file change

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
?	^x(tree d33ac20cbaad0b2b0dc6357e92b44eeed232bcff
parent e2deefc279ae02499f4109cb4bae4cb9bab05f26
author liuxiyao223 <liuxiyao223@huawei.com> 1703211240 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1703211240 +0800

modify enum value name

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
]xytree e5fcfd09daf430da0ed61a2c7930278ce5707edf
parent e4e64ec96561c1a5ad8aab9821790f01752189ce
author wangzhaoyong <wangzhaoyong@huawei.com> 1701084663 +0800
committer wangzhaoyong <wangzhaoyong@huawei.com> 1703160074 +0800

ndk add napi_coerce_to_native_binding_object

Signed-off-by: wangzhaoyong <wangzhaoyong@huawei.com>
Change-Id: Iabecb80670e34402acad9ca7daa53949054b1d4f
&{xgtree dc6e9a0c736ef71da766060b8d1a7f85dc392e37
parent 858ba1919f8b90ce12e8954ccb24be8873ddc55e
parent ab118035ef2331cf437cdd65191d8caf2b18493a
author openharmony_ci <120357966@qq.com> 1703135992 +0000
committer Gitee <noreply@gitee.com> 1703135992 +0000

!88 add new callback size set func and missing ndk json defination
Merge pull request !88 from AOL/masterFnxRtree c8e3d10138a132108365a94e20130701bc6c2153
parent ec9e199a4bc9f80cb55f9ffe5f2cdb9497f8bd2f
parent 315d0a07a12772bde50bba63ed7bdf5eec7cf5eb
author openharmony_ci <120357966@qq.com> 1703133091 +0000
committer Gitee <noreply@gitee.com> 1703133091 +0000

!124 入参增加fence和旋转矩阵
Merge pull request !124 from 林建武/1205sdkrx_tree e205576830ca95a732ca6e183019e821f5ccffaa
parent d329e5bcd054ccf29bb9f34de0626dd6cb71f89d
parent de93e0bdb9361a51a1f84f4bf676965fd70cd1a5
author openharmony_ci <120357966@qq.com> 1703085742 +0000
committer Gitee <noreply@gitee.com> 1703085742 +0000

!145 napi新增create_object_with_properties接口
Merge pull request !145 from chentianyu/masterrfxytree dd2e408e1cf85bdddd2f1ea6426c8cb781eb7044
parent 92d5eaa3f35c769d770435c8e546ef1098e4c064
author haotuo <haotuo@huawei.com> 1703075967 +0800
committer haotuo <haotuo@huawei.com> 1703076021 +0800

Remove res_state define and program_invocation_name because dont exposed
by libc

Signed-off-by: haotuo <haotuo@huawei.com>
Change-Id: Iae1cf00084800db09c4ea6780da32c39ea91ab89
xaxgtree 172551879a9eac9bba78e835ec983aaaa23b1112
parent 41968f6097c2a62ef8ea7127b60fccc083c7cbe8
parent 29ff46a2f2f6980d92913902c14ca7f292124313
author openharmony_ci <120357966@qq.com> 1703074573 +0000
committer Gitee <noreply@gitee.com> 1703074573 +0000

!82 RM006 webSocket NDK接口编译仓代码
Merge pull request !82 from Aurora/websocket_interface_sdk_c}tҒxBtree 43c708b4735f0a1c09e28aeee1b4f2d6e979d787
parent 57cb47a09d5c1ffba7638b5f6f8ed566dfcd7a14
author liuxiyao223 <liuxiyao223@huawei.com> 1703066567 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1703066567 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
extree dc3fe75c2accb1ba2e5d61079023904b3c3da59f
parent b1a112661b4367ad704cb8e0e158ab507c3af15c
author magekkkk <lixin113@huawei.com> 1703065848 +0800
committer magekkkk <lixin113@huawei.com> 1703065848 +0800

add introduce tag in json

Signed-off-by: magekkkk <lixin113@huawei.com>
VxBtree 23111bd3b331484e98d743a548d20e0fd5f3b97d
parent 6032efa9c38bc56676f17848aa95bc19b2f45ad4
author liuxiyao223 <liuxiyao223@huawei.com> 1703063875 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1703063875 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
:@dnxQtree 3cd48504d1838fb85d0189dd0f6df542045547ae
parent f7b440b4ce5eb154744e260fb4439a70414253f1
parent e97cd909ee2d1edfe1d712774f7b87202b58e1ff
author openharmony_ci <120357966@qq.com> 1703042626 +0000
committer Gitee <noreply@gitee.com> 1703042626 +0000

!152 CAPI解析工具宏定义bug修改
Merge pull request !152 from zhangwu/mastero:xEtree af46736d6940e5c54a0158df344d2a2506adb027
parent 6511c8cafbcd9e7f2603b320f25ecf4784e3a5a3
author chentianyu <chentianyu31@huawei.com> 1703000724 +0800
committer chentianyu <chentianyu31@huawei.com> 1703000724 +0800

Add napi interface to create object with properties

Signed-off-by: chentianyu <chentianyu31@huawei.com>
hxBtree f2a69cde78006e3af06e6bbd092fd04de7b92c69
parent 674ec9900b98677c03aaefcfe54809d82c9d3315
author liuxiyao223 <liuxiyao223@huawei.com> 1702989208 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702989208 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
OeOxUtree 192b2a55fbf34a118a62f4c3db3d663e590c87c5
parent 9139dbe9651dc85d68fb7afe3fc57dc3c62de929
parent 92d5eaa3f35c769d770435c8e546ef1098e4c064
author zhangwuf <zhangwu47@huawei.com> 1702887940 +0800
committer zhangwuf <zhangwu47@huawei.com> 1702980894 +0800

CAPI解析工具宏定义bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
sxCtree b7e0cd9db7391a33ab4b2310b26f2af319d7e1ea
parent a1edddd13a89f99d4595de5ca8bae8413c8465a1
parent 15331d0462df042bb3dcbc8cad32d200d436ff80
author openharmony_ci <120357966@qq.com> 1702978293 +0000
committer Gitee <noreply@gitee.com> 1702978293 +0000

!126 Add interfaces to NDK
Merge pull request !126 from Aurora/masterԺaxtree e7c5087559f03bdceba9ef9a946bc941448db0ec
parent 26b94bccc094fda079fd0b2f27eb68d61441f284
author liuxiyao223 <liuxiyao223@huawei.com> 1702978169 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702978169 +0800

modify

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
zVxBtree 4f421f8b14de1b48be0d90bb4d0d1c5fafc5df59
parent f74c2e11ecde3cb1b5ed6024026b4dce36a64cdd
author liuxiyao223 <liuxiyao223@huawei.com> 1702971693 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702971693 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
ifx7tree 0fa19fc599e56aacce48ebabf840b1e746923580
parent aeb3b0d60795f4b3fbe2bbe913c3aef359de91a3
author Aurora <liuxiyao223@huawei.com> 1702969624 +0000
committer Gitee <noreply@gitee.com> 1702969624 +0000

update network/netstack/net_websocket/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>weRx7tree b30dc6a831f718d8b807baaca39d92fa6f9b11bf
parent a8bc51872adeee182dace07b687b70f7978bb188
author Aurora <liuxiyao223@huawei.com> 1702969029 +0000
committer Gitee <noreply@gitee.com> 1702969029 +0000

update network/netstack/net_websocket/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>W+e+x2tree a5df672cdeca7e6c76f79c9a6e9e9bd720860b85
parent a1edddd13a89f99d4595de5ca8bae8413c8465a1
author yangjunhui10 <yangjunhui10@huawei.com> 1702968650 +0800
committer yangjunhui10 <yangjunhui10@huawei.com> 1702968650 +0800

回退channel_layout修改

Signed-off-by: yangjunhui10 <yangjunhui10@huawei.com>
f՘x8tree 4f421f8b14de1b48be0d90bb4d0d1c5fafc5df59
parent 76d05f4e46667fd3ee034067e6beb9c4907f6763
author Aurora <liuxiyao223@huawei.com> 1702967916 +0000
committer Gitee <noreply@gitee.com> 1702967916 +0000

update network/netstack/net_websocket/libwebsocket.ndk.json.

Signed-off-by: Aurora <liuxiyao223@huawei.com>3rdԟxtree e3e730ce48540d6a0c56864f64201ddcc8f628e5
parent b6660759312253bd844fff8232c70d8be9232518
author liuxiyao223 <liuxiyao223@huawei.com> 1702967172 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702967172 +0800

modify format

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
8Wx4tree 66b4d00badc7426caac257df12300dbc12bd6755
parent 1b48999b4ef455f5c34e7bec269a294091526b92
author Aurora <liuxiyao223@huawei.com> 1702958334 +0000
committer Gitee <noreply@gitee.com> 1702958334 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>bfx(tree ad61298053e5f81d077a7f4b6b23bd4ff7425a14
parent a1edddd13a89f99d4595de5ca8bae8413c8465a1
author liuxiyao223 <liuxiyao223@huawei.com> 1702956062 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702956062 +0800

Add NDK api for netssl

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
[wxtree 5173befb226712a2700a56910656e1961703b59a
parent 894f0cf7d30e30b43eaaca573797057573daa204
author magekkkk <lixin113@huawei.com> 1702952840 +0800
committer magekkkk <lixin113@huawei.com> 1702952840 +0800

add missing api in json

Signed-off-by: magekkkk <lixin113@huawei.com>
c$TQxftree 4753e8ceed06135293f97e6a260cc37fd12a2e2c
parent 92d5eaa3f35c769d770435c8e546ef1098e4c064
parent 4d3699f46146a0f84d6e102f5c3c834c1a3787d2
author openharmony_ci <120357966@qq.com> 1702899169 +0000
committer Gitee <noreply@gitee.com> 1702899169 +0000

!147  neural_network_runtime新增接口和库  #I8NLL0
Merge pull request !147 from wangchuanxia/master.s8x7tree fc71ea7314a5744b1656f5f144c643bd28019424
parent ad686d31780729ce4cc872c65032d1eff73ee549
author Aurora <liuxiyao223@huawei.com> 1702892780 +0000
committer Gitee <noreply@gitee.com> 1702892780 +0000

update network/netstack/net_websocket/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>(cx7tree 149cdaa5f9348b1e8e1b384f0437971bb0c7465e
parent b288dd9d15f52ffda899df975eea2fdfae561875
author Aurora <liuxiyao223@huawei.com> 1702892318 +0000
committer Gitee <noreply@gitee.com> 1702892318 +0000

update network/netstack/net_websocket/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>YdxHtree f172fa9fd47e7718d4d129a48b89cf588ae5d53a
parent 452d0c2e76cc7cbb020663e73531f415a8f33992
parent 55f74dce26a32e1347f475235dcf1ee17eb3d357
author zhangwuf <zhangwu47@huawei.com> 1702886552 +0800
committer zhangwuf <zhangwu47@huawei.com> 1702886552 +0800

Merge branch 'master' of https://gitee.com/zhangwuf/interface_sdk_c_1
gex%tree 69b9bc28518284391351056787c5300c564016e9
parent 9975074182a529f00ff3dd5bb21c711f1b9c1d3e
author zhangwuf <zhangwu47@huawei.com> 1702886512 +0800
committer zhangwuf <zhangwu47@huawei.com> 1702886512 +0800

CAPI解析工具宏定义bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
cxBtree 3236f8e95d06075bbbfea04ae2ca465458887cd9
parent 30914ca7ccbbd726413ea6bebf16a1c5b688e3a6
author liuxiyao223 <liuxiyao223@huawei.com> 1702869825 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702869825 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
Ceex2tree ecd8229186a179aaebe10c39ec85cb2feefb8e33
parent 255108eade654eb4bc1795b3b0c8b1df25652e7e
author Aurora <liuxiyao223@huawei.com> 1702869602 +0000
committer Gitee <noreply@gitee.com> 1702869602 +0000

update network/netstack/net_websocket/net_websocket.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>;bx2tree ecd8229186a179aaebe10c39ec85cb2feefb8e33
parent 5b2152d5da724e65c60be2d82ddab4b804b306f1
author Aurora <liuxiyao223@huawei.com> 1702868103 +0000
committer Gitee <noreply@gitee.com> 1702868103 +0000

update network/netstack/net_websocket/net_websocket.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>'bۗx7tree 85cf3ad3d5704861a53a5fb8d5242e0820dc88af
parent 676f778d3c04b3bade5904fd21cbcbe7a1c9c5bd
author Aurora <liuxiyao223@huawei.com> 1702866860 +0000
committer Gitee <noreply@gitee.com> 1702866860 +0000

update network/netstack/net_websocket/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>dx'tree 36217971193fd4328115efb2f6e247339c5a8f09
parent cc9fad757a886a845417f79c34a10fda2e817da9
author wangchuanxia <wangchuanxia@huawei.com> 1702863190 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1702863190 +0800

nnrt sdk change

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
<n^Extree aa5a470815c100c4f8dd8ea0a4e4ee3a6c0f9d83
parent dbafb9e47a0fe513810623764b6e1285ed737a53
author ailu1 <jinyanhong1@huawei.com> 1702806492 +0800
committer ailu1 <jinyanhong1@huawei.com> 1702806492 +0800

remove since

Signed-off-by: ailu1 <jinyanhong1@huawei.com>
yS#xtree 732dbf92fe68a839574d229c901ebf71f7a19f65
parent 92d5eaa3f35c769d770435c8e546ef1098e4c064
author ailu1 <jinyanhong1@huawei.com> 1702804649 +0800
committer ailu1 <jinyanhong1@huawei.com> 1702804649 +0800

add anon key attest

Signed-off-by: ailu1 <jinyanhong1@huawei.com>
PTǛxtree ac2a47419630be584fe79b3b5f5d3b4a720b2d46
parent 92d5eaa3f35c769d770435c8e546ef1098e4c064
author ailu1 <jinyanhong1@huawei.com> 1702803737 +0800
committer ailu1 <jinyanhong1@huawei.com> 1702803737 +0800

add errcode and access type

Signed-off-by: ailu1 <jinyanhong1@huawei.com>
*Wxctree 79745e998a04b1dbf41825578319b5bb20b9248b
parent 776c5538959773ec02847356c8267840a35bd395
parent 981571032623c8a94f7a70fc3f074ac2e6cbbc24
author openharmony_ci <120357966@qq.com> 1702731423 +0000
committer Gitee <noreply@gitee.com> 1702731423 +0000

!120 XComponent 增加帧率控制与显示更新接口
Merge pull request !120 from 徐炜楠/masterczxFtree b3be9ee3b8d38bbc055599af7e57b17215c0cfbb
parent 012bf58094fd1ac287fc80eba76557f0e4318f95
author xuweinan <xuweinan5@huawei.com> 1701672814 +0800
committer xuweinan <xuweinan5@huawei.com> 1702724424 +0800

Description:XComponent add rate interface
Feature or Bugfix:Feature

Signed-off-by: xuweinan <xuweinan5@huawei.com>
dKj)x+tree 3236f8e95d06075bbbfea04ae2ca465458887cd9
parent 4b0b85850220c648c58d3571723510a57ed86ab3
author Aurora <liuxiyao223@huawei.com> 1702721944 +0000
committer Gitee <noreply@gitee.com> 1702721944 +0000

update network/netstack/net_websocket/BUILD.gn.

Signed-off-by: Aurora <liuxiyao223@huawei.com>R]Tx+tree ba90167a00b81f88c312116bfd3b49d5e4775bb4
parent f2098fdeef235a802a905c4aca0c245df8e0ecb6
author Aurora <liuxiyao223@huawei.com> 1702720584 +0000
committer Gitee <noreply@gitee.com> 1702720584 +0000

update network/netstack/net_websocket/BUILD.gn.

Signed-off-by: Aurora <liuxiyao223@huawei.com>Q^xBtree 670065b0d1f02e4959ab08d9847b6fa95e2ad70c
parent 65f8a6ad5ee4382c869465d1866ca0058c493fd6
author liuxiyao223 <liuxiyao223@huawei.com> 1702640562 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702640562 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
)$dExBtree 3ad766c19c0ebfe970aee2ab3865d2eed2867bf8
parent 9fbde4120db24b4ae14ac8c5dba79a77d97848fa
author liuxiyao223 <liuxiyao223@huawei.com> 1702635198 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702635198 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
df\x$tree e723624083eeb07dd0cc353e1987b3c8f5020019
parent c7967da21cf90eb8524cc674fd87133a75777b49
author liuxiyao223 <liuxiyao223@huawei.com> 1702632465 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702632465 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
YtxBtree 6eff11282da7c87c729c53748354cfbca052c6b3
parent bbe3c26138cf70a3a4e284280274f38ba7a3ba0a
author liuxiyao223 <liuxiyao223@huawei.com> 1702631515 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702631515 +0800

add websocket inner api and  capi  function code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
!dЙxItree 79be54e2e92d7895c09d0de71ab36632d0e03771
parent 6bd35553f1f8ac817a9588122eb35742834119e4
parent a07aa04c505fa3c7e927135ec79c39503c10fdfc
author openharmony_ci <120357966@qq.com> 1702631447 +0000
committer Gitee <noreply@gitee.com> 1702631447 +0000

!148 'ndk check 工具上门禁
Merge pull request !148 from 姜前进/1215xhx'tree 1368a46995a34b80c9c2a2d1d6a1267ad789c4e7
parent f6d0e046b8a87caf934a35d463df7f054df70a1d
author wangchuanxia <wangchuanxia@huawei.com> 1702631173 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1702631173 +0800

nnrt sdk change

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
^xUtree d45b430db4b4fb4f3344e0e01ba8d59f1b2f85ca
parent 32a81af3fbe6f6422fbb871d4092bb8ae3a7b9ce
parent e116a32f232f8406844ee0725c95170e1e3f6c75
author openharmony_ci <120357966@qq.com> 1702628492 +0000
committer Gitee <noreply@gitee.com> 1702628492 +0000

!131 【HUKS】add AuthStorageLevel tags
Merge pull request !131 from CheungVane/master4ix$tree d5503e7949ddb7ce30f89debce93dfd09ce0e6dd
parent 8adf86a916009fc3c4a1d6e99f4852a5f8ee1a32
author liuxiyao223 <liuxiyao223@huawei.com> 1702628050 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702628050 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
[x+tree 492c561babbdf333337848f16b59289e358c3092
parent 4b0c89fbc2a5dea0e3a4dcac1d6921cdd1954091
author liuxiyao223@huawei.com <liuxiyao223@huawei.com> 1701832421 +0800
committer liuxiyao <liuxiyao223@huawei.com> 1702627227 +0800

update

Signed-off-by: liuxiyao223@huawei.com <liuxiyao223@huawei.com>
y]Ɯx|tree 71efd80913f79d2bfe82bb18339ce56009c55cfc
parent b11c78df4b9cbd9a62bb4a8906085238051962d8
parent 32a81af3fbe6f6422fbb871d4092bb8ae3a7b9ce
author 姜前进 <jiangqianjin@huawei.com> 1702624074 +0000
committer Gitee <noreply@gitee.com> 1702624074 +0000

Merge branch 'master' of gitee.com:openharmony/interface_sdk_c into 1215

Signed-off-by: 姜前进 <jiangqianjin@huawei.com>~x+tree 28940b16a791d58173446f26592b563e2bfd4e40
parent 322da6df7368a35b92b2bcf098fcccd1364a6db9
author jwx1102601 <jiangqianjin@huawei.com> 1702623848 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1702623848 +0800

ndk check 工具上门禁

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
`%xMtree 7f41ae5596f69cb8530c25ce849283e7cc74874e
parent 934a5034393c017accfec6e32fbb420b3d6adf87
parent fc7b5f63018de202ba69a7cfa5609a409c54fea9
author openharmony_ci <120357966@qq.com> 1702621976 +0000
committer Gitee <noreply@gitee.com> 1702621976 +0000

!144 新增rawfile的64位NDK接口
Merge pull request !144 from fyz1019/master=jOxXtree 4cbc39eafd993fab689bce534b671e8e4f6fd386
parent 6511c8cafbcd9e7f2603b320f25ecf4784e3a5a3
parent 934cbdf2f88b483001aecf14c8e6b5b6b7a63d05
author openharmony_ci <120357966@qq.com> 1702614928 +0000
committer Gitee <noreply@gitee.com> 1702614928 +0000

!130 【HUKS】add device password set tags
Merge pull request !130 from CheungVane/masterSkx'tree b153e66dd71971d4a3e08e2df4304e7c4ec87dba
parent b2c8dfc47befa12b9df4c414c4ec74eec90dd4f2
author wangchuanxia <wangchuanxia@huawei.com> 1702606114 +0800
committer wangchuanxia <wangchuanxia@huawei.com> 1702606114 +0800

nnrt sdk change

Signed-off-by: wangchuanxia <wangchuanxia@huawei.com>
vP`x$tree 1ce429f64d96c295755840c5332c2a6ac2161907
parent efc36b43c07fb8c47aaf37c9b7f934171420308d
author liuxiyao223 <liuxiyao223@huawei.com> 1702548600 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702548600 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
Yax$tree fc51d265c02596e161a3c96e04155ec236e0433f
parent 3bd42c5baa04917d5e1580752f8816d325ed2e65
author liuxiyao223 <liuxiyao223@huawei.com> 1702548091 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702548091 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
zdYYx9tree 6da8efd6643c81935176b28e1a2dd959831c5cce
parent 55f74dce26a32e1347f475235dcf1ee17eb3d357
author fangyunzhong <fangyunzhong2@huawei.com> 1702388004 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1702545626 +0800

新增rawfile的64位NDK接口

Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
kx tree 655d2fc07cd801344015d8d32595f5206a1930c9
parent 994a536e0acd7d9a9fbd58e4a380307de1846848
author CheungVane <zhangwenzhi3@huawei.com> 1702539931 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1702539931 +0800

fix code check
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
,Zix(tree 7c6e058dc45ff5a4b7e0bb76baf618c14d2d0935
parent aef25bd72f2d3de9001f0189acd905ec64d5b367
author CheungVane <zhangwenzhi3@huawei.com> 1702538269 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1702538269 +0800

remove redundant blank
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
H_x$tree cde54b1273b5517189279ef0800aec0621623e97
parent 5f9520f9910d548cc474d73584121ef297cfcd56
author liuxiyao223 <liuxiyao223@huawei.com> 1702518561 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702518561 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
5AYx$tree 6c53775cf9617604307af37b3901e0c6853d78f3
parent cd21c8196938e1e0e712145bb4bfdf872abfd6ad
author liuxiyao223 <liuxiyao223@huawei.com> 1702469722 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702469722 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
Z	x$tree 76a16b5c57d462fc6760db86858cd7a679ff43ec
parent e69a420db9cfd9336565de270d2141e35c14dfbe
author liuxiyao223 <liuxiyao223@huawei.com> 1702452702 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702452702 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
ZxItree 1283c7f3d469a298554cec8ae54cf3ae98bf7499
parent 55f74dce26a32e1347f475235dcf1ee17eb3d357
parent 98facd1f834a191e76c67ba5eb2335cd7199c1e5
author openharmony_ci <120357966@qq.com> 1702433913 +0000
committer Gitee <noreply@gitee.com> 1702433913 +0000

!141 修改类型描述信息
Merge pull request !141 from 王曹宇/masteruuo
x$tree a29e149c5d2a2b80f948acea2efa0d29cf0cb1ed
parent 5b99858377f9b5d66663b89d2535eeca8907d0fc
author liuxiyao223 <liuxiyao223@huawei.com> 1702432177 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1702432177 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
C2[,xGtree c3f4408a1050a99360cd46e0cf5336a310691433
parent b2c8dfc47befa12b9df4c414c4ec74eec90dd4f2
parent 4d65430f8ac2e99a52d3e4c712f6cb0860796947
author openharmony_ci <120357966@qq.com> 1702348870 +0000
committer Gitee <noreply@gitee.com> 1702348870 +0000

!106 Modify Image NDK API
Merge pull request !106 from zhongjiyuan/masterǗaxOtree 3e17a8f58b1a49a66611b552c04d3f9856b7becb
parent caab4b799f9908ba55138a219943320ea56ecd4a
parent 0a78abdd69ff28cfa6f1900d0288749e4befe538
author openharmony_ci <120357966@qq.com> 1702278012 +0000
committer Gitee <noreply@gitee.com> 1702278012 +0000

!139 xcomponent ndk删除冗余include
Merge pull request !139 from sunbees/xc_rmjxtree 04c3a949fcb1b9b13828245971fdb2895d9c7f90
parent 54ebb4c0b7885ef93c7375c9156fc98a7459ee7d
author sunbees <sunqinjia@huawei.com> 1701950373 +0800
committer sunbees <sunqinjia@huawei.com> 1702267867 +0800

rm redundant include

Signed-off-by: sunbees <sunqinjia@huawei.com>
xWGx*tree 66c134a70a8d6fc87892ce4953563b4a18fe182c
parent caab4b799f9908ba55138a219943320ea56ecd4a
author hellohyh001 <huiyuehong@huawei.com> 1702264213 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1702264213 +0000

fix vibrator header out dir

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
]x%tree 238baeb3ce7072b8a89f2fe6e79f48431663db3d
parent 54ebb4c0b7885ef93c7375c9156fc98a7459ee7d
author wangcaoyu <wangcaoyu@huawei.com> 1702103815 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1702103815 +0800

添加type，修改描述信息

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
,h	xKtree 8c94b7ab2c85cf94ea316dc934dc855a79021e7c
parent 2d1dc2666fc88dd8c1fe4831c0b43296ed88defd
parent 2e628f3b94a1374ee00a1d1916337ecdbfc21c04
author openharmony_ci <120357966@qq.com> 1702031538 +0000
committer Gitee <noreply@gitee.com> 1702031538 +0000

!101 Enable some napi interfaces
Merge pull request !101 from yp9522/opennapid&xHtree 3152bc646849c6740c4dc7308266d62b04ea3b75
parent 3aa346c7552f743baad7403036881e43c0ae7930
author zhanghongran <zhanghongran@huawei.com> 1702027455 +0800
committer zhanghongran <zhanghongran@huawei.com> 1702027455 +0800

【修改说明】删除参数设置相关接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
zAxPtree 1b350a642853ab37b3b4f37edb8d60617539fb7e
parent d5c6f9cdf4088bf12ec9b81cc2008487ed2cf005
author yanpeng <yanpeng51@huawei.com> 1701173997 +0800
committer yanpeng <yanpeng51@huawei.com> 1702005877 +0800

Enable some napi interfaces

Signed-off-by: yanpeng <yanpeng51@huawei.com>
Change-Id: I1df25f60b876cbf64d8961efd137b83cfc471335
gSxLtree a55ac715956110ce7ad59039142c2334bad339c0
parent 9c2a81f77a00d3c50c14d9e4a650e28fe3ab8f61
author zhanghongran <zhanghongran@huawei.com> 1702005193 +0800
committer zhanghongran <zhanghongran@huawei.com> 1702005193 +0800

【修改说明】废弃avmemory，升级为avbuffer

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
yxCtree 9c6131b0e75f8c5373575c9f80d3bb5e76b0d737
parent 357ebd3c7d83373117c1393a997229ad45e20ebb
parent 929cc5f4a8a7121c79af66447fd34f6e893430e0
author openharmony_ci <120357966@qq.com> 1702003264 +0000
committer Gitee <noreply@gitee.com> 1702003264 +0000

!84 11.23 告警处理
Merge pull request !84 from maruiqazqaz/masterB4cjxNtree 891c74f5174fd86392732b73274ad8f3ffeaecb1
parent f17a1b95990b8467e8bea645793a409df929d79d
parent 9975074182a529f00ff3dd5bb21c711f1b9c1d3e
author openharmony_ci <120357966@qq.com> 1702002795 +0000
committer Gitee <noreply@gitee.com> 1702002795 +0000

!136 CAPI兼容性优化特殊场景
Merge pull request !136 from zhangwu/master-mx8tree ff9a5dd158912a96b1cbfb1802adf97cc601658c
parent 54ebb4c0b7885ef93c7375c9156fc98a7459ee7d
parent 65ef25da0d8eceaa5894334b10b960f4f6f32641
author openharmony_ci <120357966@qq.com> 1701952624 +0000
committer Gitee <noreply@gitee.com> 1701952624 +0000

!85 Add sensor capi
Merge pull request !85 from HYH/master9]bxHtree 0b55614420c1db5767056c3be91e48fba3c98831
parent c88229c25dcc9dc47dc43772239ed551c6c2602a
parent 54ebb4c0b7885ef93c7375c9156fc98a7459ee7d
author zhangwuf <zhangwu47@huawei.com> 1701848140 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701938655 +0800

Merge branch 'master' of https://gitee.com/zhangwuf/interface_sdk_c_1
:veIxJtree 0a6c2e42ec774406be5062588935db768f18488e
parent cb87986be22275dfbdaff898a377546f60845cd0
author hellohyh001 <huiyuehong@huawei.com> 1701933876 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701933876 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: If44c8d25764dad5499650546a3635db3c3525b9e
tdxVtree af67fd5a68e86704c6ea684cf3e5686568988f44
parent 99c6e9ded7c0484ac4b7f32ded45439219fa0f58
parent a1b004a19fff5d9818ff1f2abd82bef754b37f05
author hongran1206 <zhanghongran@huawei.com> 1701917644 +0000
committer Gitee <noreply@gitee.com> 1701917644 +0000

!2 【修改说明】 修改avbuffer NDK
Merge pull request !2 from 李建超/master3uxItree 1ec723199c796981ff7a9822af88f438ee07102f
parent 91baa19c4cd936773b34470a6887f81eda482bb8
author li-jianchao1993 <lijianchao9@huawei.com> 1701917550 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1701917550 +0800

【修改说明】 修改muxer接口&注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
rx=tree a7cef29da7825fd1acc72bfa6fc434ce4e5ac74c
parent d7f799abe4eccac7a00e625831b1c48575274683
author li-jianchao1993 <lijianchao9@huawei.com> 1701913727 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1701913727 +0800

【修改说明】 修改注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
n5x=tree 4c9c5cf7596561a27a103c8edcfd6b3f16b86ad8
parent 7fb61a5e1efda1e8bd496bbcbdc945d8be1f3b04
author li-jianchao1993 <lijianchao9@huawei.com> 1701871382 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1701871382 +0800

【修改说明】 修改注释

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
TnxQtree 2acd4e7ae208baf64d2e1af6562724bd8ffbcdd1
parent d574d4965b1caf855a533291844a895ccdee789e
parent 504ce383c69e19dbfcc2ad0513a8db8bd3007d1a
author hongran1206 <zhanghongran@huawei.com> 1701870837 +0000
committer Gitee <noreply@gitee.com> 1701870837 +0000

!1 修改音频AudioCodec接口和注释
Merge pull request !1 from peng/masterrxCtree fd6cd91c60660f991b4f104bb4bafa04ac675994
parent d574d4965b1caf855a533291844a895ccdee789e
author li-jianchao1993 <lijianchao9@huawei.com> 1701870198 +0800
committer li-jianchao1993 <lijianchao9@huawei.com> 1701870198 +0800

【修改说明】 修改avbuffer NDK

Signed-off-by: li-jianchao1993 <lijianchao9@huawei.com>
mCxtree 2acd4e7ae208baf64d2e1af6562724bd8ffbcdd1
parent ab83672b00bdc70b20151f84cfbc35889726180e
author peng <yangpeng43@huawei.com> 1701867593 +0800
committer peng <yangpeng43@huawei.com> 1701867593 +0800

add function link

Signed-off-by: peng <yangpeng43@huawei.com>
oRÕxtree b562f8ec01a547edbafb3eaf51b7d3f72763fb09
parent d574d4965b1caf855a533291844a895ccdee789e
author peng <yangpeng43@huawei.com> 1701867457 +0800
committer peng <yangpeng43@huawei.com> 1701867457 +0800

modify AudioCodec interface

Signed-off-by: peng <yangpeng43@huawei.com>
;Vxtree 9a08f3bdeb55c9f2886ef8a95eb839e98fa7aff4
parent fa7555753bd1d955657e41866338fb71dcf586f3
author zhangwuf <zhangwu47@huawei.com> 1701848096 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701848096 +0800

CAPI兼容性场景bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
|1b#xtree 0a9c6223016c8153875a9030b8463453cd90065d
parent fdf732729310f8371d502525e8076692f7ed3798
parent 66c9e74aa068a3861dea3b5a49cd3edf3c6c6d4e
author openharmony_ci <120357966@qq.com> 1701794315 +0000
committer Gitee <noreply@gitee.com> 1701794315 +0000

!129 bugfix:diff工具自动化测试问题解决，permisson类型
Merge pull request !129 from 王曹宇/bugFix_diff_permissionaxVtree eb20b9b9a8afeba90b7c706b860a3c008e6cde87
parent 4c5c56acc6021470928901f3d28c6928b9f51f90
parent 322da6df7368a35b92b2bcf098fcccd1364a6db9
author openharmony_ci <120357966@qq.com> 1701774928 +0000
committer Gitee <noreply@gitee.com> 1701774928 +0000

!127 修复新增单个文件未解析问题
Merge pull request !127 from 姜前进/1205rx1xtree fba6cb6eead5cb71ed3e9c0692244e7d63798a39
parent ca5035bf4163d8e7fdd815ac913742a2b05f3acd
author CheungVane <zhangwenzhi3@huawei.com> 1701768104 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1701768104 +0800

add blank
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
Zxtree e2a245b028cf2b4bdf64dc19e5386f1b1f096e78
parent 9a50b03513c726816bc645de0b23f5603ae49f7d
author CheungVane <zhangwenzhi3@huawei.com> 1701767841 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1701767841 +0800

add since 11
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
Zx'tree 2f58a973a4118a955bb21717519cd5c9b4b7385a
parent 325527dba0c7a71104c48b4530933a750c14fc87
author CheungVane <zhangwenzhi3@huawei.com> 1701765250 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1701765250 +0800

modify the upper case
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
c\x9tree b62c1bf94fa414be40bd3ec52da571361c8d09f1
parent 098db9fffa7aa0dd4fcde895bfa7b6a828e37bd9
author jwx1102601 <jiangqianjin@huawei.com> 1701746016 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1701764706 +0800

修复新增单个文件未解析问题

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
*Ppx+tree 3252235e757cda7d8656830513e117e1ee76c9e7
parent 4c5c56acc6021470928901f3d28c6928b9f51f90
author CheungVane <zhangwenzhi3@huawei.com> 1701758528 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1701758528 +0800

add AuthStorageLevel tags
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
%^px.tree eb915614fee0386826423909dec87f96f3f701ca
parent 4c5c56acc6021470928901f3d28c6928b9f51f90
author CheungVane <zhangwenzhi3@huawei.com> 1701757931 +0800
committer CheungVane <zhangwenzhi3@huawei.com> 1701757931 +0800

add device password set tags
Signed-off-by: zhangwenzhi <zhangwenzhi3@huawei.com>
_xKtree 8782ed283ec1afe3489eaab05e79a72d3eea0b5b
parent e4d31d39484c578cc0cf9fc2071c96c94345066d
parent fa7555753bd1d955657e41866338fb71dcf586f3
author openharmony_ci <120357966@qq.com> 1701756892 +0000
committer Gitee <noreply@gitee.com> 1701756892 +0000

!128 capi兼容性场景bug修改
Merge pull request !128 from zhangwu/masterEl)x<tree b216bb1dcd79ea700a79f19240abfa7ec90468a1
parent b63a1fe9b69ccf1530287af663403b80511bc0b4
author zhanghongran <zhanghongran@huawei.com> 1701749771 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701749771 +0800

【修改说明】删除冗余代码

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
sx/tree 436df1e5187b42c7e3e3148d54a5457423407117
parent 62ee43e7a4d9f2161a038c0148f2f782fddd9d3c
author Aurora <liuxiyao223@huawei.com> 1701748783 +0000
committer Gitee <noreply@gitee.com> 1701748783 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>d_x$tree 61c27fba44d469858dd926b651d46ed4469171aa
parent e4d31d39484c578cc0cf9fc2071c96c94345066d
author wangcaoyu <wangcaoyu@huawei.com> 1701747113 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1701747113 +0800

bugfix: default permisson data

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
\xtree 8782ed283ec1afe3489eaab05e79a72d3eea0b5b
parent e4d31d39484c578cc0cf9fc2071c96c94345066d
author zhangwuf <zhangwu47@huawei.com> 1701747014 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701747014 +0800

capi兼容性场景bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
bx/tree 6e9f1664646c9a720941e3028b1ed2847cbc7f9c
parent 050d99941ea7cba5f427884da5d0ced0166706b4
author Aurora <liuxiyao223@huawei.com> 1701745529 +0000
committer Gitee <noreply@gitee.com> 1701745529 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>L_x1tree bf1a7070d79aa100fe5fc92058acfddc6023c721
parent f21b4d50847f240ff9423bc3b227c1049258852a
author Aurora <liuxiyao223@huawei.com> 1701745208 +0000
committer Gitee <noreply@gitee.com> 1701745208 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: Aurora <liuxiyao223@huawei.com>D`ԑx1tree df84d793990215cc2e00eddb3c0314d1eb5c3c1e
parent 2dfff73a925cc4fb1e76a1dfdf0eb469c9d858b0
author Aurora <liuxiyao223@huawei.com> 1701745023 +0000
committer Gitee <noreply@gitee.com> 1701745023 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: Aurora <liuxiyao223@huawei.com>bx4tree 6eede580389c92998d5eef284000142ac3a083f7
parent 7ada6ba4a661c09b28fea9f75bffcc8ab91bb72a
author Aurora <liuxiyao223@huawei.com> 1701744854 +0000
committer Gitee <noreply@gitee.com> 1701744854 +0000

update network/netmanager/include/net_connection_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>cx/tree 642ecccd729813e4fee1abe2f2830ddd301d610e
parent 4c4ad0c39c2abba8872ab9c32b0a7dba91b89e2f
author Aurora <liuxiyao223@huawei.com> 1701744804 +0000
committer Gitee <noreply@gitee.com> 1701744804 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>*aӘxHtree 274eaa9589fc482b7c902e43ac1ed736fc5c547d
parent e4d31d39484c578cc0cf9fc2071c96c94345066d
author liuxiyao223@huawei.com <liuxiyao223@huawei.com> 1701742307 +0800
committer liuxiyao223@huawei.com <liuxiyao223@huawei.com> 1701742307 +0800

Add interfaces to NDK

Signed-off-by: liuxiyao223@huawei.com <liuxiyao223@huawei.com>
gJxtree 7c6996c33066afee1a076605342a03deb324307c
parent e4d31d39484c578cc0cf9fc2071c96c94345066d
author lin-jianwu <linjianwu@huawei.com> 1701740530 +0800
committer lin-jianwu <linjianwu@huawei.com> 1701740530 +0800

sdk interface change

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
XYOxItree 6eff7e30282479c635242a0c45435e3280efe80e
parent d227b9fcdacab33d3e677cca16814694fe2fb110
parent a8eee716cc327a2ca375ee420023395170d4f867
author openharmony_ci <120357966@qq.com> 1701689517 +0000
committer Gitee <noreply@gitee.com> 1701689517 +0000

!116 diff_node场景开发
Merge pull request !116 from zhangwu/feature_difgxRtree 326e25bb67a8403e7a3522faf8b0a684997bed69
parent dba0038a0413c6050eacb84855ff6ef7367b6896
parent 098db9fffa7aa0dd4fcde895bfa7b6a828e37bd9
author openharmony_ci <120357966@qq.com> 1701689180 +0000
committer Gitee <noreply@gitee.com> 1701689180 +0000

!119 新增ndk兼容性检查工具代码
Merge pull request !119 from 姜前进/122P.uDxctree 0930aa415f6f5a2f5a7995ae7625bb643d28482a
parent 012bf58094fd1ac287fc80eba76557f0e4318f95
parent aefac7c885d6d07fa93f500fe6f8b8e0fc217627
author openharmony_ci <120357966@qq.com> 1701682891 +0000
committer Gitee <noreply@gitee.com> 1701682891 +0000

!114 capicheck工具check文件中函数bug修改
Merge pull request !114 from zhangwu/bugfix_commentwxJtree 55640bfde3b5c6dc18717db454d6eed6694fff5b
parent 4edabb681c84ae3c07fa6aea065a460e62588000
author hellohyh001 <huiyuehong@huawei.com> 1701681549 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701681549 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I8f6d9661f672e17039a53850a73a9c794c3811ab
e+x6tree d2d514805942386b2f9e4d0ec149271d647bdb0e
parent b83d1ec19cd1b4f92c6a0a860efd7ab422b088ec
author jwx1102601 <jiangqianjin@huawei.com> 1701510950 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1701678023 +0800

新增ndk兼容性检查工具代码

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
ɔkuxBtree 3b34b5638c7ee48e6e9036392db5da4118202f93
parent 59812f3e563d241b6566d64a843ec7c9b65f3dfc
author zhanghongran <zhanghongran@huawei.com> 1701663706 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701663706 +0800

【修改说明】北向删除冗余定义

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
!vQxYtree 9f066a19d49a57ae721756527b0576184474fad5
parent b83d1ec19cd1b4f92c6a0a860efd7ab422b088ec
parent de7d7cd54430a6c2bf05bc05bd43a918261e8724
author openharmony_ci <120357966@qq.com> 1701654666 +0000
committer Gitee <noreply@gitee.com> 1701654666 +0000

!118 ndk兼容性检查工具添加diff
Merge pull request !118 from 王曹宇/feature_diff ux$tree 8540b169d6b918bda6b1005cd29080bedba5c530
parent 4d287454b6d41707631986d85dcab2474a2528da
author wangcaoyu <wangcaoyu@huawei.com> 1701509888 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1701601586 +0800

ndk兼容性检查工具开发

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
eΘxtree 5f5a606211ec8581a2fa85f2c551b4a40ef81473
parent 68f3c256e8798d13d09a51b3364fc5fdafa50b91
author zhangwuf <zhangwu47@huawei.com> 1701507772 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701511686 +0800

diff_node场景开发

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
9/[x?tree 924136f2532f4c5dbf515c660f839c54928d19a5
parent b703845d57f5dfdd73059283505f43c7de9ef192
author zhanghongran <zhanghongran@huawei.com> 1701507768 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701507768 +0800

【修改说明】删除不支持规格

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
@txJtree 20f14b1bca2038e45b8326521efbf88e9183b792
parent 1431e4f9ae8df6dd368d46baca705be07ac8554f
author hellohyh001 <huiyuehong@huawei.com> 1701505464 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701505464 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ie776fc30f6b079595d832d1a3795fc72df5908da
1e'xTtree 3652f2859cdfe69af9cdac49ea2ce02a5f1a3af5
parent cac3c2199f7ab806ce29975a399b1dd892aaf029
author zhanghongran <zhanghongran@huawei.com> 1701505087 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701505087 +0800

【修改说明】梳理新增接口，删除不必要接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
pxJtree eb021d85924387375dba648d5a7e1b869e18f41b
parent c30273d34faf15a655d4227852444334f0d0d035
author hellohyh001 <huiyuehong@huawei.com> 1701504528 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701504528 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I91ab78524fbc2b962315cadedcca5d741c021e30
cxtree 5de2ebebef8f4176015fc62de22cdf4f108b289a
parent 39ee6ae472bbbc361d72848791385c296713616d
author zhangwuf <zhangwu47@huawei.com> 1701500390 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701500390 +0800

check参数bug修改

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
[xatree 2b74ae622b5cc6e097c5da246f68197b2e3e4b8a
parent 4d287454b6d41707631986d85dcab2474a2528da
parent 892ca5a8c5efa3485d2298b85f0cef7d139aa1a3
author openharmony_ci <120357966@qq.com> 1701484551 +0000
committer Gitee <noreply@gitee.com> 1701484551 +0000

!95 修复SET_BUFFER_GEOMETRY接口的描述
Merge pull request !95 from shegangbin/fix_descriptionTrxVtree 65346de551836613138a1673ba3d8483bb0c013c
parent 0e099cade7f6e0d07e39ff2f6ff4971d8ec1e372
parent 9942280c9195d9894ae0a338431ca3ab0f5e5ed7
author openharmony_ci <120357966@qq.com> 1701424102 +0000
committer Gitee <noreply@gitee.com> 1701424102 +0000

!61 rawfile资源native接口优化-interface
Merge pull request !61 from fyz1019/master{m˔xttree 3cececfc1336c6c05ebda6565ccae68c740f43d8
parent f3546d98e12af0508dd8adff495c95ee38097607
author maruiqazqaz <marui83@huawei.com> 1701420544 +0000
committer Gitee <noreply@gitee.com> 1701420544 +0000

update distributeddatamgr/relational_store/include/relational_store.h.
Signed-off-by: maruiqazqaz <marui83@huawei.com>

Signed-off-by: maruiqazqaz <marui83@huawei.com>4{x)tree 3330da4e94dd196ed8cb4c021acd874866a85bd4
parent 6b768be28c8bc99ef94d1e14cbbdbdcd9046e055
author zhanghongran <zhanghongran@huawei.com> 1701408302 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701408302 +0800

修改API11接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
d@xAtree a1440c75c0b5428664b1ffce56f80e2b1a86a051
parent 96cf5b07b37ac008a63c4a256d76a00c0e878f3c
author zhanghongran <zhanghongran@huawei.com> 1701404654 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701404654 +0800

【修改说明】调整API11接口位置

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
|VtxJtree 73bdf33a03df55491b5d4166d05894897e707ff4
parent 46c3ca23e887cc02eccf0d3ce4aa6c66a44693dc
author hellohyh001 <huiyuehong@huawei.com> 1701398852 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701398852 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I6d660393ff8e43028f6c5c8e44a03816691f9060
?dxItree d41c191b92758e6fcc19f713df35db00f4539c51
parent c4e91ef08a7e1566adefb236d6a5061e633c442c
author hellohyh001 <huiyuehong@huawei.com> 1701398626 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701398626 +0000

upate

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I997382632e94ee05b253d07714cf6ac38606da0b
cd.xJtree 637cc86cabb7edfe630d01dc0e73bb8863dd909d
parent dc85a39ea3e7cb1ca519642756db73f69de54d8d
author hellohyh001 <huiyuehong@huawei.com> 1701396372 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701396372 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I8fab206e29bde01fc4a0d894b9f3b918dab68b1e
bgxRtree c33297b4bb85ec6361ecc8ae23364ef784ca6e7b
parent e65873bebeb933bad87040fe4c9e894249743742
author xiaobjy <zhongjiyuan1@huawei.com> 1701230313 +0800
committer xiaobjy <zhongjiyuan1@huawei.com> 1701395538 +0800

Modify Image NDK API

Signed-off-by: xiaobjy <zhongjiyuan1@huawei.com>
Change-Id: If35f38c82c27f73f3c01da485f44a780384cb004
gxJtree e413a27ea798ab46d99a0e6fc0ea823ea9b048ce
parent f817563adcdd1d8e336b59c728af09f7765c994f
author hellohyh001 <huiyuehong@huawei.com> 1701355126 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701355126 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I17e72510bd434492637153c624af054916cc929d
ŸdxJtree 2e691465139f6005c773d4316e3086d0641d1e50
parent 256a61c4d69ebe372b794add6c6271cd004fda74
author hellohyh001 <huiyuehong@huawei.com> 1701353509 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701353509 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Id936dbb16c473db714d94bf643a50bbc3ee2bbad
7dȚxJtree 80b992f31c6d309d839c814d6a7640966e6ec611
parent e2d202d390b87438aebfc049ecea91281438c8d8
author hellohyh001 <huiyuehong@huawei.com> 1701343494 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701343494 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I02a6232ccfc26f4f84bf7a7b6900445f432e5e62
Od4xJtree 5e090bd3e94240cf49678e26c79555b1d99b7e14
parent e471348f361205176e53226485bb9cffed135171
author hellohyh001 <huiyuehong@huawei.com> 1701338367 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701338367 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I885540f9934c75955372596038400e0340e2ba4d
pRb;xJtree b6bd1ca92104cfa2befbf277284550be022eb71a
parent 801e700c81406b1ae55834ccdf16fe763c93b790
author hellohyh001 <huiyuehong@huawei.com> 1701336169 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701336169 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I94f2d0ea11912ab0a7a6d8ffc78e621785d6025e
He%xJtree b9d99ca0eb3fb607b315b40c0d420cbbee658194
parent 9ac024b1bd0a2395984a00c504840e8c88ddef66
author hellohyh001 <huiyuehong@huawei.com> 1701335448 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701335448 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ife60fe0b39ede3ad44df23b7908532e9fa70c43a
^exKtree e5bdee75cc3c6e55dbefad623cf92de5b73b7711
parent 0e099cade7f6e0d07e39ff2f6ff4971d8ec1e372
author zhanghongran <zhanghongran@huawei.com> 1701334407 +0800
committer zhanghongran <zhanghongran@huawei.com> 1701334407 +0800

【修改说明】API11新增avcodec&avbuffer接口

Signed-off-by: zhanghongran <zhanghongran@huawei.com>
wxJtree e1da100e7b455cf8127fffbcda0d3a0a5ecacc70
parent 726207b64d8120c8ba7283872f609e88a7041d32
author hellohyh001 <huiyuehong@huawei.com> 1701329082 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701329082 +0000

udpate

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I7aba00ba69d3a144786d48b833763fc33041eb05
YdxJtree fb48db027b93d145757b5485cd1acd5f3c3ef137
parent 2a4d63ae63f9b6fc1a5b7bbda15e3104f29302b1
author hellohyh001 <huiyuehong@huawei.com> 1701325734 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701325734 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ia6ffb4583297a2dbedb04df8767cc474efae05b4

fKxtree 1e38263699511f8e9c58c7da5491e3fa31a80fd3
parent c7ce465d5b9b0ab97832f3f2f3f701613c90fd38
author marui <marui83@huawei.com> 1700726727 +0800
committer marui <marui83@huawei.com> 1701309404 +0800

11.23 modify warning

Signed-off-by: marui <marui83@huawei.com>
;OxRtree 2d441edd056fe12d01595e558dd37d41973420f4
parent 76d8ec778e73de5f0319a9ab67f26c0197346839
parent 39ee6ae472bbbc361d72848791385c296713616d
author openharmony_ci <120357966@qq.com> 1701254550 +0000
committer Gitee <noreply@gitee.com> 1701254550 +0000

!105 头文件注释类型统一
Merge pull request !105 from zhangwu/bugfix_commentlnnxJtree 50c9e12e42d7dec76274e6281284cd4a25df79f2
parent acf8a0de10a76a2772d1a81fa1d35723e040c93a
author hellohyh001 <huiyuehong@huawei.com> 1701245576 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701245576 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ic2b19570250b6b53b5fa287e784a89641bc06b97
 dzxJtree 255b42173d4963c8c7eaa599e5bb8e32d52ae750
parent dd5b3e5c43687402f90b19d614c1714565aad4d8
author hellohyh001 <huiyuehong@huawei.com> 1701239042 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701239042 +0000

upadte

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Id4a427755e89468d84eaa6527c1e999db165a150
pcx;tree b744a338b1dcf8d6d2454ede3dddd8224d5befa0
parent e65873bebeb933bad87040fe4c9e894249743742
parent 7d42eb2d75842c91079b59a63327e947c62eacad
author openharmony_ci <120357966@qq.com> 1701238927 +0000
committer Gitee <noreply@gitee.com> 1701238927 +0000

!47 add vibrator capi 
Merge pull request !47 from HYH/master^]^hxtree 2339c1b6a8ed9bd222e058ce9796a87442ae6f3a
parent b52a062adc0f2254b180b900c889dbb2960147ab
author zhangwuf <zhangwu47@huawei.com> 1701227542 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701227542 +0800

头文件注释类型统一

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
cxAtree fe1e485172475a747de9e30ee3f6d8e608ec3d63
parent ed39cb68565ee99b48a4976386424f009e8e6ffb
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701183113 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701183113 +0800

remove native_drm_object.h

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
I?hxJtree 56ca5d39fec7de1a67b718f2325021bd9ce28aa1
parent 8723e7dd2754a45e1c623b50df6d6b917432d0cb
author hellohyh001 <huiyuehong@huawei.com> 1701177583 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701177583 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ifdc9001c0e26c4f87cf33d5b5ebd604713228bb4
^ecxMtree cc3c98d91d2e56a919281abc43618fef1cb90306
parent fafdbad4a03c455a267ad5bd9f3fd4bf9790a665
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701173925 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701173925 +0800

revise gn and define drm info callback

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
m1xetree 885fcc4e9540b2d94a8bfba4246ccf4e451ff861
parent d5c6f9cdf4088bf12ec9b81cc2008487ed2cf005
parent b52a062adc0f2254b180b900c889dbb2960147ab
author openharmony_ci <120357966@qq.com> 1701173063 +0000
committer Gitee <noreply@gitee.com> 1701173063 +0000

!99 解决获取头文件最开始注释少/**问题
Merge pull request !99 from zhangwu/bugfix_comment؈}ɗx'tree 9af5a913e169051a86fd71b45c1996655fac3e12
parent e6ef0d4116f40741d0167eb71f53526d33f64b68
author zhangwuf <zhangwu47@huawei.com> 1701086697 +0800
committer zhangwuf <zhangwu47@huawei.com> 1701163507 +0800

解决头文件最开始注释少/**

Signed-off-by: zhangwuf <zhangwu47@huawei.com>
)~fxJtree e86554a4aae4bd820bc6c47dc6c0cbf90fe38ea5
parent 1e2d3500611c79613e2ed627be62510f24c24259
author hellohyh001 <huiyuehong@huawei.com> 1701161364 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701161364 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I420f9e348a8e4c84290c02c2487e8c144a52e326
d3xJtree b651813c5c32ebee0e8753cd84955fbb24a92d30
parent 359fa89f6e86b7efc6a86209763ad8462e131ba6
author hellohyh001 <huiyuehong@huawei.com> 1701157442 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701157786 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I5224970157ed8338776d22fa92f5043702cf5fbc
WdDx tree 594fafaf47fe97049a35bcb05fd6f189ec793c87
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author hellohyh001 <huiyuehong@huawei.com> 1699347935 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701156152 +0000

add vibrator capi

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
ӊ[ǚxJtree 220f808f7f36b613303920c285a5e0cd959f56cf
parent 0cce61054a53fe0e84137cbb7025140e9a2abd89
author hellohyh001 <huiyuehong@huawei.com> 1701154565 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701154565 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Iae4993f0fe31e7397122012730750026203d23e4
AGcx0tree 08b817d0f61a801057199bed00032249237be76d
parent b220e0a262fa2231931238b1798d458ceec06f71
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701153330 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701153330 +0800

format gn

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
`+x1tree 1d07054ad167f06e4d11597b5b7ad437c46b77b1
parent a27c91c546a3b63387fa3ddb1cd0ee72e98e0ab4
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701146638 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701146638 +0800

adjust dir

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
bmx;tree 736a4777398ca3237e007f58ba1d493c3ba1922b
parent c2aa2504919ac0d7ebe4fa207941e94ee179ba59
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701095956 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1701095956 +0800

add function comment

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
?e̞xtree 636442ba42ca3101042c7f605f563dd35f997704
parent d5c6f9cdf4088bf12ec9b81cc2008487ed2cf005
author shegangbin <shegangbin1@huawei.com> 1701093393 +0800
committer shegangbin <shegangbin1@huawei.com> 1701093393 +0800

fix description

Signed-off-by: shegangbin <shegangbin1@huawei.com>
jYӚxJtree f00064e91ad214c35759c006b6dc88c1003546d5
parent 7ea5e75ce35142c88a06bc8152d356d9c382b8db
author hellohyh001 <huiyuehong@huawei.com> 1701092260 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701092260 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I11180e86f20ab0265b0407d8afa52a7b52ce8b30
cxJtree fa442f798dadf431e3bdfd2f3b40ddb4822c8204
parent 0f4b9843a889b3df2ed7aa5ec61408e17719f7ce
author hellohyh001 <huiyuehong@huawei.com> 1701091386 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701091386 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I2bc1950f08460915ad37db2880af7fc1fd39176d
exVtree 1adc29372fa8e6369a85f98b61ed668f30dbf304
parent 68f3c256e8798d13d09a51b3364fc5fdafa50b91
parent a2e3b75d83f62e272a9f203e7a97c9c1a51e229f
author openharmony_ci <120357966@qq.com> 1701084786 +0000
committer Gitee <noreply@gitee.com> 1701084786 +0000

!69 Add OH_NetConn_GetAllNets interface to NDK
Merge pull request !69 from Aurora/masterDgޔxttree 1671f3c7bb2bfcd3d263e18c8f696d54be351f26
parent 167d997c8682fd5565a7c2be7b13e8a00d5709a0
author SubmarinePhantom <liuxiyao223@huawei.com> 1700133441 +0800
committer liuxiyao <liuxiyao223@huawei.com> 1701067441 +0800

Add OH_NetConn_GetAllNets interface to NDK

Signed-off-by: SubmarinePhantom <liuxiyao223@huawei.com>
Signed-off-by: liuxiyao <liuxiyao223@huawei.com>
38wxItree 874493972b152f3e0d5f151db936aadfec47afc2
parent 591cd8e7f7014ed7af915888118520a92fca0092
author hellohyh001 <huiyuehong@huawei.com> 1701057187 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1701057187 +0000

upate

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I45360777211dcb636544044ddd8b42d742ba8407
;cfx:tree 6aa362877f1097c3113965217e5b83927a798328
parent 310f5d951a79a71c12ed9be137c49c9e330039ea
author fangyunzhong <fangyunzhong2@huawei.com> 1699926270 +0800
committer fangyunzhong <fangyunzhong2@huawei.com> 1701054425 +0800

rawfile资源native接口优化

Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
k,xGtree 312c1433f902a1353b5fc32a09736dbc05593156
parent b8c564a9a3d0bf53f4814fd2b45060a49c1297ac
parent 082fb4a296bc67a3ca039497593cfb5131d54280
author openharmony_ci <120357966@qq.com> 1701051783 +0000
committer Gitee <noreply@gitee.com> 1701051783 +0000

!71 Drawing新增NDK接口
Merge pull request !71 from ustc-tianyu/masteryemxZtree 673b60447fb7080f8d5881da024a9b1562dfca34
parent c286b9f8f9ddae29eb0b4d8bbf40b40d9513accf
parent e6ef0d4116f40741d0167eb71f53526d33f64b68
author openharmony_ci <120357966@qq.com> 1701051462 +0000
committer Gitee <noreply@gitee.com> 1701051462 +0000

!87 CAPI统计工具修改目录和注释
Merge pull request !87 from zhangwu/bugfix_comment.ux$tree 3048b1ee6ae1104007111df10a96ac9b3673b0d6
parent 8da5c72bfb0268f62ff1c75be1c3d92fdc13aacb
author liuxiyao223 <liuxiyao223@huawei.com> 1700916197 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1700916197 +0800

add websocket code

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
wZx tree 54ed2e466b9b5a1687e46301360bb1c87f028b04
parent a25d65ae2830345ba0e60d123fcdbfe0c0b4f550
author zhangwu <zhangwu47@huawei.com> 1700548715 +0800
committer zhangwuf <zhangwu47@huawei.com> 1700903877 +0800

capi工具修改目录和注释

Signed-off-by: zhangwu <zhangwu47@huawei.com>
lcݖxVtree 0ff9c9c9c15b6ccaac3791ce32199166e5547037
parent a25d65ae2830345ba0e60d123fcdbfe0c0b4f550
parent e3472f30945f6fde7431e9687b3fa90f6082ba91
author openharmony_ci <120357966@qq.com> 1700898794 +0000
committer Gitee <noreply@gitee.com> 1700898794 +0000

!72 扩展外设框架新增HID DDK接口
Merge pull request !72 from lixinsheng2/master҉rxJtree baaaab489575d7858ac0c4bc4b18ebe05ee4018d
parent 13f6af94c7957ac1e7039e4d676a363efc305aae
author hellohyh001 <huiyuehong@huawei.com> 1700896445 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700896445 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I3af2352c4bb26481702422df745705c42a058516
"dޖx&tree 2502426648ae373496b280aeb09a4e2b64409665
parent 44732898d928b56cd15d2a6e002d50e4e30e6ee4
author lixinsheng2 <lixinsheng2@huawei.com> 1700296662 +0800
committer lixinsheng2 <lixinsheng2@huawei.com> 1700878721 +0800

新增C接口HID DDK

Signed-off-by: lixinsheng2 <lixinsheng2@huawei.com>
V
^ݚxJtree f0873f3341226deeafbc0994af0d6e1787437cf8
parent 44044130203cf2b5c9f3d26baf874db1d2983925
author hellohyh001 <huiyuehong@huawei.com> 1700878080 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700878080 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I149717972e189a2d198a4d0417b0e3a24f04ce37
rcʗx7tree e71a6260e8cfb0eb6088cb8c2ba43a2de2c3fbc1
parent a25d65ae2830345ba0e60d123fcdbfe0c0b4f550
author qiu-qiu-wang <wangguangqiang@hisilicon.com> 1700827100 +0800
committer qiu-qiu-wang <wangguangqiang@hisilicon.com> 1700827100 +0800

drm capi pr scan

Signed-off-by: qiu-qiu-wang <wangguangqiang@hisilicon.com>
be,x6tree 4da28051b92b74ee083e59c47a57a17766328589
parent e361550500fa239bdc3fe816c2dbde44deb2f453
author liuxiyao223 <liuxiyao223@huawei.com> 1700826121 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1700826121 +0800

add websocket client interface sdk c

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
l`Rx.tree ac4a5e82b1a2a73d05424456d7e4efbb78a1fb94
parent a25d65ae2830345ba0e60d123fcdbfe0c0b4f550
author AOL <lixin113@huawei.com> 1700823981 +0000
committer Gitee <noreply@gitee.com> 1700823981 +0000

add new callback size set func and missing ndk json defination

Signed-off-by: AOL <lixin113@huawei.com>^Lx1tree 0d5f28a5551901160e80894d1f22f0dbf10dc860
parent 3e7032d59024c948520f3e0b19d8415f820eca11
author Aurora <liuxiyao223@huawei.com> 1700814223 +0000
committer Gitee <noreply@gitee.com> 1700814223 +0000

update nestack/net_websocket/include/net_websocket.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>_x6tree b81245b08264629f8e2e82e7b208adb20582eb81
parent 92f12cfbd414dff7697b64f6472d5ae00d51a528
author Aurora <liuxiyao223@huawei.com> 1700813812 +0000
committer Gitee <noreply@gitee.com> 1700813812 +0000

update nestack/net_websocket/include/net_websocket_type.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>!bx"tree e9233e8941499fac9b008f97bdf81bc097aa59ac
parent bcf00aed40de99590267e84890f0ab6b9714ab1a
author Aurora <liuxiyao223@huawei.com> 1700813060 +0000
committer Gitee <noreply@gitee.com> 1700813060 +0000

update nestack/net_websocket/BUILD.gn.

Signed-off-by: Aurora <liuxiyao223@huawei.com>Zx1tree f2317dcede00451ba162693abe1dc469b8a28933
parent c3732e775c8a11b0efa733c911d96046afec2b8f
author Aurora <liuxiyao223@huawei.com> 1700812900 +0000
committer Gitee <noreply@gitee.com> 1700812900 +0000

update nestack/net_websocket/include/net_websocket.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>aEx1tree 9544750606dc774f5dcfebb29883ea952b431731
parent 8bf7b2dcc3a16a4408d190fc28c4e266a28fcc90
author Aurora <liuxiyao223@huawei.com> 1700812617 +0000
committer Gitee <noreply@gitee.com> 1700812617 +0000

update nestack/net_websocket/include/net_websocket.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>Z^axtree 31d4ed02e9e77dd40ad2ca372ba46ee2fe92d4d8
parent 167d997c8682fd5565a7c2be7b13e8a00d5709a0
author d00613262 <dutianyu4@huawei.com> 1700203986 +0800
committer d00613262 <dutianyu4@huawei.com> 1700790706 +0800

add ndk interface
Signed-off-by: ustc-tianyu <dutianyu4@huawei.com>
cfUgxJtree 9730995c28861f93ecb8de0124d24c65ae870616
parent 1ed1f5e57e3ecf7228328b6461aaaacc2bdc4522
author hellohyh001 <huiyuehong@huawei.com> 1700749904 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700749904 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Id419d1765c4fc2c5f1817ad4773b3ce4ca24d443
dxJtree aaddd09193ee7c3532d68e3bb35ae96984f25bac
parent 027c144c4f83971a46f9f97ff480eb3d5fba2105
author hellohyh001 <huiyuehong@huawei.com> 1700749797 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700749797 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I205c3511883978251c8c91e409853f2912aa14ee
dxJtree 1eed441283c0183b242e8b23cd1159d5bb629b3c
parent 8259ef2430be6855019a9a24484d3281860ddb28
author hellohyh001 <huiyuehong@huawei.com> 1700748604 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700748604 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I6746a71899a5d5c5c18355bcb082633853c3858b
Lc
xJtree 3df5557b80f56cc0a522b80559b36890973e826f
parent 802158e1effce633b8f93a3b8500f46f02b6be80
parent 23a3431ff85ec03b813fdd13d27527d89d995c8f
author openharmony_ci <120357966@qq.com> 1700746394 +0000
committer Gitee <noreply@gitee.com> 1700746394 +0000

!58 NDK结构体添加注释信息
Merge pull request !58 from 赵淦/masternxItree f38d76e5acc3e309e595e91923e974eb0eac4302
parent c7ce465d5b9b0ab97832f3f2f3f701613c90fd38
parent 432a2c1550992bef81b56a8bdba420a553aafbfe
author openharmony_ci <120357966@qq.com> 1700743076 +0000
committer Gitee <noreply@gitee.com> 1700743076 +0000

!83 CAPI语法检查工具上库
Merge pull request !83 from 姜前进/1122_nxJtree 81809ccbe1060eeb810fc8a6b42a2be25f8c78f2
parent bdca54f1bc312be4fcfa122a8ee4c761b2d16a6e
author hellohyh001 <huiyuehong@huawei.com> 1700739471 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700739471 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Iad5718e7142fe148acd4a8f6e6fe19f94fc68851
fÚxJtree f8bdb260664d1a14ea7cb1585c56a7bb88fa4586
parent f773ac301d7d2b48f5035d0b78a34326d049f1eb
author hellohyh001 <huiyuehong@huawei.com> 1700731580 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700731580 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: Ic18366bffe0e55fbc7ebbb4b9e0a79f2e03ba6ec
4fQxJtree 6146bc55167b4b0fb39600b092d06d3c28d3183f
parent 972d6d11379af33ddf5bf3308536d711e6cf93b1
author hellohyh001 <huiyuehong@huawei.com> 1700731350 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700731350 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: I8241831f5f75f7742b8e97b64c2634463c421d04
c$xJtree 97aa72d2f9fa69b5532d0fadb4569377d3cc9ddf
parent c7ce465d5b9b0ab97832f3f2f3f701613c90fd38
author hellohyh001 <huiyuehong@huawei.com> 1700729976 +0000
committer hellohyh001 <huiyuehong@huawei.com> 1700729976 +0000

update

Signed-off-by: hellohyh001 <huiyuehong@huawei.com>
Change-Id: If72571502880714d2073f871f6629518b225b337
Ωd,x^tree cbcdcd4864bfb7b3b91eac2cf85f98fbd2ac5152
parent 6fd49fa4436aa4a30e02db32f498bd706a34b72a
parent ac6e3113aaf7979fdcfea36d24b269fcf9a76b2c
author openharmony_ci <120357966@qq.com> 1700706951 +0000
committer Gitee <noreply@gitee.com> 1700706951 +0000

!80 CAPI自动化测试基础框架
Merge pull request !80 from 王曹宇/feature_capi_test_case)y˗x'tree bce6f4017d72ca147fd98a88a30a3c856baea8b7
parent 759497667cc85f04b32bb65d077bd1e707ba96c3
author wangcaoyu <wangcaoyu@huawei.com> 1700618674 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1700703773 +0800

添加自动化测试基础框架

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
;iܘx(tree 1f4384b255ead25aa04b2f211453aca48b4249ff
parent 62984ac9bb183e6b50aaf076273a7b0e8ac317b9
author jwx1102601 <jiangqianjin@huawei.com> 1700641683 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1700643685 +0800

CAPI语法检查工具

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
w`Hx/tree a178bfd99039f0c6c3fbda4ace957974d6dd98c6
parent 6fd49fa4436aa4a30e02db32f498bd706a34b72a
author liuxiyao223 <liuxiyao223@huawei.com> 1700635951 +0800
committer liuxiyao223 <liuxiyao223@huawei.com> 1700635951 +0800

add websocket interface build

Signed-off-by: liuxiyao223 <liuxiyao223@huawei.com>
`_ixDtree 5ca01c41fd924399156ca91ddd261e6fba004262
parent 759497667cc85f04b32bb65d077bd1e707ba96c3
parent 94b4dae44e079c7590e4d47fd7d6a6947a5a14e0
author openharmony_ci <120357966@qq.com> 1700575478 +0000
committer Gitee <noreply@gitee.com> 1700575478 +0000

!75 add typedef and json
Merge pull request !75 from 林建武/119sdkccĐx tree fb8c13d3d8c68a13cfc65ac3317d4603a22d5b08
parent 759497667cc85f04b32bb65d077bd1e707ba96c3
author g00514389 <guoyichen2@huawei.com> 1700553699 +0800
committer g00514389 <guoyichen2@huawei.com> 1700553699 +0800

add playback speed apis

Signed-off-by: g00514389 <guoyichen2@huawei.com>
a$Ux!tree cc9ffaac68d4748e79fc11e729d4a65c123829df
parent 8d6f08a7275d41a80116e371937b2f514453e9af
author lin-jianwu <linjianwu@huawei.com> 1700476279 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700476279 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
X[vx]tree 8bf4ef2d2b9d5ffb2d751eb85e1fe6e1810882e5
parent e029d248ce74d34a95275c57473009aa8fc3dc59
parent e21a54949421d5eca65f645c1933cbc47195e6ea
author openharmony_ci <120357966@qq.com> 1700468005 +0000
committer Gitee <noreply@gitee.com> 1700468005 +0000

!74 check_doc工具修改bug回归测试
Merge pull request !74 from 王曹宇/bugFix_check_doc'vx5tree b1206f5d95ce80f560519a13b0e36a0bb9269075
parent e029d248ce74d34a95275c57473009aa8fc3dc59
author zhanglitao <zhanglitao11@huawei.com> 1700462320 +0800
committer zhanglitao <zhanglitao11@huawei.com> 1700462320 +0800

新增接口OH_Drawing_RegisterFont

Signed-off-by: zhanglitao <zhanglitao11@huawei.com>
fxItree c029104cb7f4d46fe5435931e0dd06650c566bce
parent d7c8ffb048f32aa9f78af8bd3c6899fd0b6b25ed
parent 62984ac9bb183e6b50aaf076273a7b0e8ac317b9
author openharmony_ci <120357966@qq.com> 1700448855 +0000
committer Gitee <noreply@gitee.com> 1700448855 +0000

!70 整改CAPI命名检查工具
Merge pull request !70 from 姜前进/1117n(x!tree 2cb28c869be205c83b7b782d9161bde3f38d4b04
parent 87bd3e648a0c00c76c2a8690044e763f9f37d2b6
author lin-jianwu <linjianwu@huawei.com> 1700375291 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700375291 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
 [Sx!tree f742b5c97e4ae497549bdeace681f14baba57af6
parent a4f284532e7b07fec5b2d5ca491d2bd98deeeed3
author lin-jianwu <linjianwu@huawei.com> 1700315989 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700315989 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
]yxJtree bb86ca449858e7c4f50c652256bd943ff38855f2
parent 44732898d928b56cd15d2a6e002d50e4e30e6ee4
author wangcaoyu <wangcaoyu@huawei.com> 1700300687 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1700300687 +0800

param标签过多，permission标签数据，since校验问题处理

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
ke|Gx.tree 7960043586b180cde81fe6cbb7b73225d5895cfe
parent 0eabc0bad667c8fb6f9df615df97db90469fe0b4
author jwx1102601 <jiangqianjin@huawei.com> 1700192293 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1700300229 +0800

整改CAPI命名检查工具

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
eSxUtree e4e9f7f17ad4f6d594338380873ff3e250a71a7e
parent 44732898d928b56cd15d2a6e002d50e4e30e6ee4
parent b7292f58fb01e4c7cfdb50c59c2ad62d6f8f509d
author openharmony_ci <120357966@qq.com> 1700297567 +0000
committer Gitee <noreply@gitee.com> 1700297567 +0000

!48 增加ImagePacker NDK接口
Merge pull request !48 from yangfan/Add_ImagePacker_NDKnkoxitree b6514965c9418c7b32d23dd7152eea956dad0b87
parent 167d997c8682fd5565a7c2be7b13e8a00d5709a0
parent a4f284532e7b07fec5b2d5ca491d2bd98deeeed3
author openharmony_ci <120357966@qq.com> 1700205699 +0000
committer Gitee <noreply@gitee.com> 1700205699 +0000

!54 add nativewindow, nativeimage,nativebuffer capi interface
Merge pull request !54 from 林建武/119sdkcs>x!tree 12a98b8b17955882227a4b26318c603b8796898f
parent 8bb816e746f083c4763168e390a8f87df02faee3
author lin-jianwu <linjianwu@huawei.com> 1700195678 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700195678 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
NZlx!tree 889f4c5cd4aaafefe474a874ede0abccd13ada7e
parent fa2a189e3706aa03a92d21723cdb1b7c13cd0d0e
author lin-jianwu <linjianwu@huawei.com> 1700194790 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700194790 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
@]x!tree e1c038f01a0294844a41fff7f14689e6842367d1
parent dd525629407ae51068ee2d2e7fdbe921ce0e0588
author lin-jianwu <linjianwu@huawei.com> 1700189126 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700189126 +0800

add graphic capi comment

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
gZxtree 1a7d5fca172560af682c7585a458f48953801860
parent ab77859d9afcad39633ca1135e4882f1725bb2fb
author zhaogan <zhaogan2@huawei.com> 1699692358 +0800
committer zhaogan <zhaogan2@huawei.com> 1700125085 +0800

Issue: #I8FP10
Description:NDK结构体添加注释信息
Sig: SIG_ApplicaitonFramework
Feature or Bugfix: Bugfix
Binary Source: No

Signed-off-by: zhaogan <zhaogan2@huawei.com>
ۛxtree 8a9af47d67f47cf362c1f4e9435c1328eeb3bd44
parent cd3daf38db0be421637f50920986f41834d7fc54
author lin-jianwu <linjianwu@huawei.com> 1700124793 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700124793 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
!Yzxtree dae1f287e961619de805745e688a1a9256be6a18
parent d15b5aa3997cec61d3cc4bd5ffd56312aafe2aec
author yangfan <yangfan174@huawei.com> 1700115521 +0800
committer yangfan <yangfan174@huawei.com> 1700115521 +0800

注释内容变更

Signed-off-by: yangfan <yangfan174@huawei.com>
(\
x_tree 099de5b6f3f5bb257f79433768e0fc178b3cf627
parent a89dee6786ad113aea78dbf242fc5bffe13a6ac5
parent 9dff55b6124e8403fa5657221ebc6b0c090ebb92
author openharmony_ci <120357966@qq.com> 1700104615 +0000
committer Gitee <noreply@gitee.com> 1700104615 +0000

!65 CAPIcheck工具联调CAPI解析数据
Merge pull request !65 from 王曹宇/feature_check_docgwExtree f124dfa504dfa6eb581ad0d1c09acc084295ed7c
parent b37d4755159d1c037f551e320f957f5ef946e091
author yangfan <yangfan174@huawei.com> 1700103173 +0800
committer yangfan <yangfan174@huawei.com> 1700103173 +0800

结构体名称规范化

Signed-off-by: yangfan <yangfan174@huawei.com>
, _xctree 486b8bb7f2dd2506a0c06dc539743b4f270eb3ca
parent fa472e07c8ba4f2727b9022cb34d9c18d25855bb
parent 0eabc0bad667c8fb6f9df615df97db90469fe0b4
author openharmony_ci <120357966@qq.com> 1700100335 +0000
committer Gitee <noreply@gitee.com> 1700100335 +0000

!64 解决应用解析工具单个文件不能解析问题
Merge pull request !64 from 姜前进/1115!˂xHtree 486b8bb7f2dd2506a0c06dc539743b4f270eb3ca
parent fa472e07c8ba4f2727b9022cb34d9c18d25855bb
author jwx1102601 <jiangqianjin@huawei.com> 1700048946 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1700055885 +0800

解决应用解析工具单个文件不能解析问题

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
y>x+tree 03f009e603ca19aace4156eb8bfe0a0fa1728582
parent d442fa2ee96a98d40fb45beaf4ea2ff5e3834b2f
author wangcaoyu <wangcaoyu@huawei.com> 1700055680 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1700055680 +0800

CAPIcheck工具联调CAPI解析数据

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
߀hfx+tree c4a25fae55521e511edbbd5ba3f888f2fed3bdf3
parent 26bd8f92cea03169a39c11ee766a1b2c670c8a38
author yangfan <yangfan174@huawei.com> 1700049130 +0800
committer yangfan <yangfan174@huawei.com> 1700049130 +0800

接口统一增加first_introduced字段

Signed-off-by: yangfan <yangfan174@huawei.com>
g^xtree f794655ebe43f7e6cd8904ff42539c2eb8e32389
parent 3cfa13e5d1e6123306bcddc81d6ad45b654053a3
author lin-jianwu <linjianwu@huawei.com> 1700046333 +0800
committer lin-jianwu <linjianwu@huawei.com> 1700046333 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
^Ybx1tree 284bdbf55e19794bef55cd8ab90e38c773ca853a
parent 38bd986924075385311708453f0e6f0be6fed6ee
parent fa472e07c8ba4f2727b9022cb34d9c18d25855bb
author wangcaoyu <wangcaoyu@huawei.com> 1700041763 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1700041763 +0800

Merge branch 'master' into feature_check_doc
l^WxCtree 284bdbf55e19794bef55cd8ab90e38c773ca853a
parent 3450fda4c6635b0e994dbad28848f586241f3b64
parent 429f82e6688620943852dcf3aaa41419b0dca77d
author openharmony_ci <120357966@qq.com> 1700041069 +0000
committer Gitee <noreply@gitee.com> 1700041069 +0000

!62 CAPI的codecheck修改
Merge pull request !62 from zhangwu/master3d[xtree 862374d1627f0d4fdd0859d808af986f738b737d
parent 60f796b63c5a8728c4999037e34f6905454b9516
author zhangwu <zhangwu47@huawei.com> 1699949805 +0800
committer zhangwu <zhangwu47@huawei.com> 1700037815 +0800

codecheck修改

Signed-off-by: zhangwu <zhangwu47@huawei.com>
3U6xOtree 1575ab79eb4040e99471fe21b61f6d79900be03d
parent c3e9dd02a14bff4ccd1d3877ef39da03701d1542
parent da523a5df98f2625d4c82c7e57b122a220a64473
author openharmony_ci <120357966@qq.com> 1700030446 +0000
committer Gitee <noreply@gitee.com> 1700030446 +0000

!63 调整CAPI检查工具工程目录
Merge pull request !63 from 姜前进/1114zq<x*tree 1575ab79eb4040e99471fe21b61f6d79900be03d
parent c3e9dd02a14bff4ccd1d3877ef39da03701d1542
author jwx1102601 <jiangqianjin@huawei.com> 1699955076 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1700013186 +0800

调整工程目录结构

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
cxtree 382106bf1e36704c41abb93de42b75a5950b46e7
parent 75426b9477eab0d55ee49550d2f1bbc423f13e8b
author lin-jianwu <linjianwu@huawei.com> 1699962376 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699962376 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
Y,xtree eeead497dc9641d07cc5113a1896fc6f86c917ec
parent 534bc31b72eb8dc370b1db34987609842d5556d8
author yangfan <yangfan174@huawei.com> 1699962024 +0800
committer yangfan <yangfan174@huawei.com> 1699962024 +0800

增加first_introduced字段

Signed-off-by: yangfan <yangfan174@huawei.com>
i]ԘxHtree 485a8b87a7570f018fd4c6363144ff24de00907a
parent 310f5d951a79a71c12ed9be137c49c9e330039ea
parent 7366b132949b0966e0fbd69d78db324c868da1ee
author openharmony_ci <120357966@qq.com> 1699947208 +0000
committer Gitee <noreply@gitee.com> 1699947208 +0000

!39 add train c api
Merge pull request !39 from chengfeng27/add_train_capi bxtree 9bb32bb0ae9abc8c06e0baafd99505768e16269a
parent 2f9212ca08794e4153b447822cb685d070d52bee
author lin-jianwu <linjianwu@huawei.com> 1699944063 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699944063 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
!Yxtree 82a698b2a51735c6e0bd0a768111880342504d1f
parent 2362f20946b949ca115417a04de5ef87607bd831
author yangfan <yangfan174@huawei.com> 1699942490 +0800
committer yangfan <yangfan174@huawei.com> 1699942490 +0800

删除多余空格

Signed-off-by: yangfan <yangfan174@huawei.com>
Yxtree 349efe2251d45cf18fd24e09168064f30a1028b1
parent 558534b306c20de010780d79a9496327fe1c10a0
author cold <lengye@huawei.com> 1699929661 +0000
committer Gitee <noreply@gitee.com> 1699929661 +0000

update multimedia/camera_framework/BUILD.gn.

Signed-off-by: cold <lengye@huawei.com>LVx!tree 3218e9c4c040689cfdfa8bc9a67618a7c0c76594
parent 8875b4996f08ec47c573b607d7126d035a08eee4
author chengfeng27 <chengfeng27@huawei.com> 1699693515 +0800
committer chengfeng27 <chengfeng27@huawei.com> 1699924953 +0800

add train c api

Signed-off-by: chengfeng27 <chengfeng27@huawei.com>
Xnxtree 1a80103846a0cf8409c024f061fa1c0f771999f9
parent 3c3a4fb374d2d98b2858c2003bf0f0cac28f8a04
author yangfan <yangfan174@huawei.com> 1699875295 +0800
committer yangfan <yangfan174@huawei.com> 1699875295 +0800

增加ImagePacker NDK接口

Signed-off-by: yangfan <yangfan174@huawei.com>
[xtree 6a7604299cd42c57995e2109eb5eabcf2e88aa10
parent df140645a435cb7ec4e7d875edbb4d01f9cba8c1
author cold_yixiu <lengye@huawei.com> 1699865739 +0800
committer cold_yixiu <lengye@huawei.com> 1699865739 +0800

change camera ndk so name

Signed-off-by: cold_yixiu <lengye@huawei.com>
لYxItree 4b0459bfd45b45a7adbb45d1a757c5d35ba399ba
parent c1411799d09b64ebdcf29f597da8288d9f47546f
parent 0fbe860fba00ee6a8cd7990b1ee74b9f2f048cf4
author openharmony_ci <120357966@qq.com> 1699849894 +0000
committer Gitee <noreply@gitee.com> 1699849894 +0000

!56 CAPI命名检查工具上库
Merge pull request !56 from 姜前进/1110/nƛxtree 763f572e8899f0c51f2ecf96e759d214e8a55394
parent e2f12f0661fc305a9f81cdbc0af7022bd25e00cf
author lin-jianwu <linjianwu@huawei.com> 1699786369 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699786369 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>

YxQtree 406edf58d144fef89e5538b7e198e037afb366b8
parent 8875b4996f08ec47c573b607d7126d035a08eee4
parent 815a8fe8f4fdfca4cd817d7bea33924e1d32cad2
author openharmony_ci <120357966@qq.com> 1699697618 +0000
committer Gitee <noreply@gitee.com> 1699697618 +0000

!45  新增napi接口napi_load_module
Merge pull request !45 from chenlincl3/masterSkxbtree 9c2008dd9e82020b41ac293e485cd91604b723ae
parent 00456298f544547a3985f5e197e4febc0b073fa9
parent 38bd986924075385311708453f0e6f0be6fed6ee
author openharmony_ci <120357966@qq.com> 1699692890 +0000
committer Gitee <noreply@gitee.com> 1699692890 +0000

!53 CAPI解析doc规则检查工具初始化
Merge pull request !53 from 王曹宇/feature_check_docyBx.tree 7a4bdd1636b272851774aa7ed79d6adf70d47fe9
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author jwx1102601 <jiangqianjin@huawei.com> 1699602497 +0800
committer jwx1102601 <jiangqianjin@huawei.com> 1699691703 +0800

CAPI命名检查工具上库

Signed-off-by: jwx1102601 <jiangqianjin@huawei.com>
;eיxYtree c5396271ba216a8c5ff0b57713e60c4d0e83fe69
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
parent ab77859d9afcad39633ca1135e4882f1725bb2fb
author openharmony_ci <120357966@qq.com> 1699689850 +0000
committer Gitee <noreply@gitee.com> 1699689850 +0000

!49 ndk暴露appId和appIdentifier（interface）
Merge pull request !49 from 赵淦/masterbs.xtree c5396271ba216a8c5ff0b57713e60c4d0e83fe69
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author zhaogan <zhaogan2@huawei.com> 1699407547 +0800
committer zhaogan <zhaogan2@huawei.com> 1699672858 +0800

Issue: #I8DKDG
Description:ndk暴露appId和appIdentifier
Sig: SIG_ApplicaitonFramework
Feature or Bugfix: Bugfix
Binary Source: No

Signed-off-by: zhaogan <zhaogan2@huawei.com>
W'xtree 34eb9503641ba0c29a02e3fb5f152123917ddf54
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author cold_yixiu <lengye@huawei.com> 1699601375 +0800
committer cold_yixiu <lengye@huawei.com> 1699601375 +0800

add camera ndk

Signed-off-by: cold_yixiu <lengye@huawei.com>
gU*xtree b04f079150488b64a803cd8af353afcd9eca244f
parent e6a6142ffcbf3420af1b08bcc2bf4d500d28358d
author lin-jianwu <linjianwu@huawei.com> 1699600922 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699600922 +0800

add capi interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
Z!xtree b6615ce09517124df011bcd93506cdc35d546191
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author wangcaoyu <wangcaoyu@huawei.com> 1699514545 +0800
committer wangcaoyu <wangcaoyu@huawei.com> 1699584797 +0800

CAPI解析doc校验

Signed-off-by: wangcaoyu <wangcaoyu@huawei.com>
]xtree 23ae4c8ec9e8bc3ad100cd6089b65c8e83472791
parent 81bcd1012a70d164a8db816d63cf92daa1a03a3a
author lin-jianwu <linjianwu@huawei.com> 1699534695 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699534695 +0800

add native interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
Zxtree b065b5c3605fada35e30d09b2b73f7bcaf0ca3ab
parent 801e6ceddd10bcec7b2c233f2682ee10245a3825
author lin-jianwu <linjianwu@huawei.com> 1699520932 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699520932 +0800

add native interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
[Rxtree 87236f37e4b4b10da8a624a707efe995e0a26c7d
parent a8b59ae3394d8e02e25affd5e41d04b0a280d0d0
author lin-jianwu <linjianwu@huawei.com> 1699520848 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699520848 +0800

add native interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
OZƝxtree e9d8e468708a1dea11a74060af0aba88f49d8cd0
parent 45adeabf6f46a5e8e6287c03a5efdb6e45ec53d7
author lin-jianwu <linjianwu@huawei.com> 1699519659 +0800
committer lin-jianwu <linjianwu@huawei.com> 1699519659 +0800

add native interface

Signed-off-by: lin-jianwu <linjianwu@huawei.com>
[ޙxItree c59da996f3ded1ee34087db01a11473768ae0a88
parent 140b70b18913ff657683ca2b405304642712557f
parent 60f796b63c5a8728c4999037e34f6905454b9516
author openharmony_ci <120357966@qq.com> 1699345204 +0000
committer Gitee <noreply@gitee.com> 1699345204 +0000

!37 CAPI统计工具功能补全
Merge pull request !37 from zhangwu/master(iixBtree 9c0235a2020bd9110f1b866722669f20b5fdbaeb
parent 5b7b83ffcc8e48daed8cb9bf09a9685d74b254f2
parent f5845fe319b268cd5c2f68d0af4c13ec3e5f4481
author openharmony_ci <120357966@qq.com> 1699342598 +0000
committer Gitee <noreply@gitee.com> 1699342598 +0000

!44 删除冗余文件
Merge pull request !44 from kangchongtao/1106h gRxKtree c4e1c431aeca93884b4edb1ffd26ae289a4c89ab
parent 3c3a4fb374d2d98b2858c2003bf0f0cac28f8a04
parent c5a3034016687290211510855f3cf549144ec44d
author openharmony_ci <120357966@qq.com> 1699342464 +0000
committer Gitee <noreply@gitee.com> 1699342464 +0000

!42 跨平台统一宏整改
Merge pull request !42 from qugr/20231106_masterfkvxtree b44fb4ff241c3fb754e9f69621c5a6b335e125f8
parent 42afe3e6dabc749f013b4b3950e31fe0957b5985
author zhangwu <zhangwu47@huawei.com> 1698741810 +0800
committer zhangwu <zhangwu47@huawei.com> 1699327135 +0800

CAPI工具功能补全

Signed-off-by: zhangwu <zhangwu47@huawei.com>
U\xGtree 098bd3374c064f26e8d6c19d18e53a5b718e2f9f
parent a1697b20eab8fef06167dda20f9ca36296a5429a
parent 48a8e900c652ef883e0e8d5993295e0560eecbce
author openharmony_ci <120357966@qq.com> 1699270337 +0000
committer Gitee <noreply@gitee.com> 1699270337 +0000

!36 新增netmanager capi接口
Merge pull request !36 from Aurora/master\Nglxatree ca06a723205eadfdf93415bbd2a24b309a525aed
parent a62121f1a9421510fe3e6af1c3edcfe9bf8e60d2
author chenlincl3 <chenlin201@huawei.com> 1699264833 +0800
committer chenlincl3 <chenlin201@huawei.com> 1699264833 +0800

新增napi接口napi_load_module

Signed-off-by: chenlincl3 <chenlin201@huawei.com>
Change-Id: I95d2795f474a69757b8ad59b4d3b4f73311303df
qTx*tree 3a51d17587508c618bde188366b2e87eb182a9fc
parent a1697b20eab8fef06167dda20f9ca36296a5429a
author kangchongtao <kangchongtao@huawei.com> 1699260099 +0800
committer kangchongtao <kangchongtao@huawei.com> 1699260099 +0800

删除冗余文件

Signed-off-by: kangchongtao <kangchongtao@huawei.com>
`:extree 393c1987489fe03decd027b039ebda849d543c58
parent e5a32019854cce906952a01148be0787e4e6cbcc
author Aurora <liuxiyao223@huawei.com> 1699258814 +0000
committer Gitee <noreply@gitee.com> 1699258814 +0000

update network/netmanager/BUILD.gn.

Signed-off-by: Aurora <liuxiyao223@huawei.com>aY:x1tree ad82828c7dc642a01b671745e6572ebfcb0c5e3e
parent 2c63bc01213b8eaf7d0c0305f9abcc7a945ca358
author Aurora <liuxiyao223@huawei.com> 1699255507 +0000
committer Gitee <noreply@gitee.com> 1699255507 +0000

update network/netmanager/libnet_connection.ndk.json.

Signed-off-by: Aurora <liuxiyao223@huawei.com>ax/tree d31631707a719a8e5ae9a85840e0b675dda68628
parent 19d3137874908fe8f30723a0d7640773a2129dde
author Aurora <liuxiyao223@huawei.com> 1699241363 +0000
committer Gitee <noreply@gitee.com> 1699241363 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>q6_x/tree d71c0bc09570fef240dd10e772182a8d20d17bbd
parent 71294091392556d4d4b6f1a3c6131c4b7e00bfee
author Aurora <liuxiyao223@huawei.com> 1699240333 +0000
committer Gitee <noreply@gitee.com> 1699240333 +0000

update network/netmanager/include/net_connection.h.

Signed-off-by: Aurora <liuxiyao223@huawei.com>~`)x/tree 87796c9087d2e66f2776709f3a77a62d7cc12778
parent b49f45f95ea3ad9d3caad8c9d46e6fd8f23e83f4
author SubmarinePhantom <liuxiyao223@huawei.com> 1699236613 +0800
committer SubmarinePhantom <liuxiyao223@huawei.com> 1699236613 +0800

update @return

Signed-off-by: SubmarinePhantom <liuxiyao223@huawei.com>
`xtree 754b392591694e8c4484b0d4fa8b21e64b72b6a8
parent a1697b20eab8fef06167dda20f9ca36296a5429a
author quguiren <quguiren@huawei.com> 1699233853 +0800
committer quguiren <quguiren@huawei.com> 1699233853 +0800

uniform_macro_for_crossplatform

Signed-off-by: quguiren <quguiren@huawei.com>
d\xJtree 47760c6a343e1824a15682fbc2aa0216871dc1b4
parent 54015f25849ec1dbb796e05b08051a158eb8f7e6
parent 5fe71775f40a8ad70efa8cb501a451f26e559db9
author openharmony_ci <120357966@qq.com> 1699182326 +0000
committer Gitee <noreply@gitee.com> 1699182326 +0000

!41 add hilog callback interface
Merge pull request !41 from liuyifei/master_cxtree 4d477fca44141b9b26395fd1d023f4f6b54f6b6b
parent c2ad0ae2a6a4b9497df5e7e15a8774de5214e407
author liuyifei <liuyifei20@huawei.com> 1699089466 +0800
committer liuyifei <liuyifei20@huawei.com> 1699089466 +0800

sdk add hilog callback

Signed-off-by: liuyifei <liuyifei20@huawei.com>
<Yx@tree a8bc30de21f064ee5cd245a41c8da49da332be74
parent 6ad3a0fe6ae386e07343bcdee45669115dd2086d
parent c2ad0ae2a6a4b9497df5e7e15a8774de5214e407
author openharmony_ci <120357966@qq.com> 1699074851 +0000
committer Gitee <noreply@gitee.com> 1699074851 +0000

!38 add hilog callback
Merge pull request !38 from liuyifei/masterbamxtree 075d58a749c5abdf7283422bd8e7891eb94810a4
parent e438998eba2903b5174628abf681d431b56c3b99
author hw_yys <liuxiyao223@huawei.com> 1699015121 +0800
committer hw_yys <liuxiyao223@huawei.com> 1699015121 +0800

update net_connection.h

Signed-off-by: hw_yys <liuxiyao223@huawei.com>
?Wxtree 4f0b943ba5ee377cd3a61ce18feb54790ec42945
parent 44fdaccc83b30a821c54b3eecb0132e5f0d69b3f
author liuyifei <liuyifei20@huawei.com> 1698997340 +0800
committer liuyifei <liuyifei20@huawei.com> 1698997340 +0800

add hilog callback

Signed-off-by: liuyifei <liuyifei20@huawei.com>
qX]xEtree 77c1f3ed0eecf263b27b2342261f6619568496e4
parent b4213ab399723e3f5b097efce94d04f055b7c778
parent 1ef7627142e37ce7628c706694012002e876444e
author openharmony_ci <120357966@qq.com> 1698931218 +0000
committer Gitee <noreply@gitee.com> 1698931218 +0000

!28 更新data_asset地址
Merge pull request !28 from renjiecui/masterۼdxtree 297d3ad98ecb6e4e27389af03194f83b0fee6045
parent 55dc1552a7c37f13840ace2ec0ee931f42157adf
author renjiecui <cuirenjie@huawei.com> 1698318416 +0800
committer renjiecui <cuirenjie@huawei.com> 1698906210 +0800

modify include data

Signed-off-by: renjiecui <cuirenjie@huawei.com>
YHxFtree 81f3329bea399651133d131d0007f5a6fc1754b6
parent 44fdaccc83b30a821c54b3eecb0132e5f0d69b3f
parent e7c878c89237104f237f331d9da3afe018279fe3
author openharmony_ci <120357966@qq.com> 1698804349 +0000
committer Gitee <noreply@gitee.com> 1698804349 +0000

!21 同步avplayer ndk接口
Merge pull request !21 from taoljt/bugfix_1\fMxtree 169948642db746cdfcdaca0b47d8a9d3e3a6356c
parent 9c71414e6e8025c9a3b99df979394a80a25ba710
author liuxiyao <liuxiyao223@huawei.com> 1698754136 +0800
committer liuxiyao <liuxiyao223@huawei.com> 1698754203 +0800

add dns api

Signed-off-by: liuxiyao <liuxiyao223@huawei.com>
=dUxtree d285687cb682159c5c9b6b8ae61bc2de0d0b8309
parent 44fdaccc83b30a821c54b3eecb0132e5f0d69b3f
author liuxiyao <liuxiyao223@huawei.com> 1698739785 +0800
committer liuxiyao <liuxiyao223@huawei.com> 1698739785 +0800

add dns capi

Signed-off-by: liuxiyao <liuxiyao223@huawei.com>
7Vxntree da183d7858e6039fe54c3c8e01ed94936854f8e5
parent bcdfd4c5e492915e136738f43b44b06d29d1f309
parent d5f7b91fc183437c9f24eb794c673af2a87d5d79
author openharmony_ci <120357966@qq.com> 1698725817 +0000
committer Gitee <noreply@gitee.com> 1698725817 +0000

!15 新增libc接口：arc4random sys/queue.h sys/cdefs.h execinfo.h
Merge pull request !15 from zzulilyw/masterivٟxtree a90bb776626979a1d5e1952634e01ad8c3c4ec52
parent a62121f1a9421510fe3e6af1c3edcfe9bf8e60d2
author lvjintao <lvjintao1@huawei.com> 1697549224 +0800
committer lvjintao <lvjintao1@huawei.com> 1698674820 +0800

代码提交

Signed-off-by: lvjintao <lvjintao1@huawei.com>
YxCtree 87f5b42ef58b8c49ad85cff6db97b0a0f879e528
parent 55dc1552a7c37f13840ace2ec0ee931f42157adf
parent 42afe3e6dabc749f013b4b3950e31fe0957b5985
author openharmony_ci <120357966@qq.com> 1698501850 +0000
committer Gitee <noreply@gitee.com> 1698501850 +0000

!24 新增CPAI统计工具
Merge pull request !24 from zhangwu/master׼hhxttree 512cc7d088757ef1aefd992bafe6fafa6a0ac925
parent 274096e3baf9a2cc70873751f8358ea436fa8e51
author zzulilyw <378305181@qq.com> 1698486244 +0800
committer zzulilyw <378305181@qq.com> 1698490312 +0800

Add new libc-ndk interface
Issue: https://gitee.com/openharmony/interface_sdk_c/issues/I869YN
Test:Build & Boot devices & xts

Signed-off-by: zzulilyw <378305181@qq.com>
s͖xtree cf5c5614081a9fed3e9f6e81b9f62c2d8ced176d
parent 09ac3b4708be5a4b7f133d43bc44fa9835375c2f
author zhangwu <zhangwu47@huawei.com> 1697705868 +0800
committer zhangwu <zhangwu47@huawei.com> 1698147537 +0800

capi解析工具框架

Signed-off-by: zhangwu <zhangwu47@huawei.com>
}]xGtree fe478891f1e59b7e67f824d4e192080f1e1c9613
parent d7b41c16490e403136a79b6034eed9695cb3d808
parent 81eefb78b28f4defde743d9b5efe337f93df087d
author openharmony_ci <120357966@qq.com> 1698026240 +0000
committer Gitee <noreply@gitee.com> 1698026240 +0000

!22 包管理删除多余接口
Merge pull request !22 from 赵淦/master$mx9tree 1d05b2dc4ba35445541b4af8dd76250deaf32695
parent 7a25879fa8c3e96dac41f6d5e1a89faea9977203
parent 92a06f7b39f5fa0606cce411830c06075b69f201
author openharmony_ci <120357966@qq.com> 1697973653 +0000
committer Gitee <noreply@gitee.com> 1697973653 +0000

!25 add 4.0ndk
Merge pull request !25 from renjiecui/masterM]x>tree 0a0640624943b5d7226b7e126f3a8de870458895
parent a62121f1a9421510fe3e6af1c3edcfe9bf8e60d2
parent 15e330fdf47302bf16ef50330d7d300cc15bc35b
author openharmony_ci <120357966@qq.com> 1697809804 +0000
committer Gitee <noreply@gitee.com> 1697809804 +0000

!23 同步NDK差异
Merge pull request !23 from 黄冬婷/mastereАxtree da9d9b95ffaaf003a7951c2c26f2ce726e297ece
parent bded584b9dd747c4df9556a0b5655f1f1e80d61b
author renjiecui <cuirenjie@huawei.com> 1697788147 +0800
committer renjiecui <cuirenjie@huawei.com> 1697794479 +0800

modfy code

Signed-off-by: renjiecui <cuirenjie@huawei.com>
wVx0tree 0a0640624943b5d7226b7e126f3a8de870458895
parent 2e648f7600fa76b1d7356ac8fc40caf2e5420219
author huangdongting <huangdongting3@huawei.com> 1697627443 +0800
committer huangdongting <huangdongting3@huawei.com> 1697781953 +0800

同步NDK差异

Signed-off-by: huangdongting <huangdongting3@huawei.com>
&Pdőxtree 1003f71bbbbe5bf3855c39f5e65aa39c152dd93b
parent a62121f1a9421510fe3e6af1c3edcfe9bf8e60d2
author renjiecui <cuirenjie@huawei.com> 1697700727 +0800
committer renjiecui <cuirenjie@huawei.com> 1697700727 +0800

add 4.0 NDK

Signed-off-by: renjiecui <cuirenjie@huawei.com>
rUx}tree 45e8596f2fefec8ba381da81e2ad7013d13c7395
parent a62121f1a9421510fe3e6af1c3edcfe9bf8e60d2
author zhaogan <zhaogan2@huawei.com> 1697619830 +0800
committer zhaogan <zhaogan2@huawei.com> 1697619830 +0800

Issue: #I893OL
Description:包管理删除多余接口
Sig: SIG_ApplicaitonFramework
Feature or Bugfix: Bugfix
Binary Source: No

Signed-off-by: zhaogan <zhaogan2@huawei.com>
[x8tree e244a106a7da288a2917d758098e576b552e5ff8
parent 09ac3b4708be5a4b7f133d43bc44fa9835375c2f
parent 2e648f7600fa76b1d7356ac8fc40caf2e5420219
author openharmony_ci <120357966@qq.com> 1697458526 +0000
committer Gitee <noreply@gitee.com> 1697458526 +0000

!19 同步NDK
Merge pull request !19 from 黄冬婷/masternwaox*tree e244a106a7da288a2917d758098e576b552e5ff8
parent 09ac3b4708be5a4b7f133d43bc44fa9835375c2f
author huangdongting <huangdongting3@huawei.com> 1697434944 +0800
committer huangdongting <huangdongting3@huawei.com> 1697455702 +0800

同步NDK

Signed-off-by: huangdongting <huangdongting3@huawei.com>
}axitree f9131e278666bb2a6b607e8ebae7ec45a9fe199e
parent 1b339ef737a2426d9494ea10fec5a1c4c948e6e0
parent 826ecf438d7878c9e1c62e41e6fef611e2c2bd6a
author openharmony_ci <120357966@qq.com> 1696837575 +0000
committer Gitee <noreply@gitee.com> 1696837575 +0000

!16 回退 'Pull Request !14 : 同步NDK'
Merge pull request !16 from openharmony_ci/revert-merge-14-masterr6x tree f9131e278666bb2a6b607e8ebae7ec45a9fe199e
parent 1b339ef737a2426d9494ea10fec5a1c4c948e6e0
author openharmony_ci <120357966@qq.com> 1696837548 +0000
committer Gitee <noreply@gitee.com> 1696837548 +0000

回退 'Pull Request !14 : 同步NDK'
Kx8tree b96b8e9acf3c0fa5a61c24ad1c7c46fdfd0488ab
parent 274096e3baf9a2cc70873751f8358ea436fa8e51
parent 827525af98cebe26a82ab195202fabfb58eaca83
author openharmony_ci <120357966@qq.com> 1696837320 +0000
committer Gitee <noreply@gitee.com> 1696837320 +0000

!14 同步NDK
Merge pull request !14 from 黄冬婷/masteroVcbx0tree b96b8e9acf3c0fa5a61c24ad1c7c46fdfd0488ab
parent 274096e3baf9a2cc70873751f8358ea436fa8e51
author huangdongting <huangdongting3@huawei.com> 1696767618 +0800
committer huangdongting <huangdongting3@huawei.com> 1696767618 +0800

同步NDK文件

Signed-off-by: huangdongting <huangdongting3@huawei.com>
qfϜx\tree f9131e278666bb2a6b607e8ebae7ec45a9fe199e
parent 46900ce77419bda643979319b9b275cc91ba0ada
parent b2b6ec470e42ec3a07b8f33439b5a5c6881fc500
author openharmony_ci <120357966@qq.com> 1695627163 +0000
committer Gitee <noreply@gitee.com> 1695627163 +0000

!13 根据应用框架建议，修改docs文档内容
Merge pull request !13 from hhj/misspellf{-xtree f9131e278666bb2a6b607e8ebae7ec45a9fe199e
parent 46900ce77419bda643979319b9b275cc91ba0ada
author hhj <huanghuijin@huawei.com> 1695040493 +0800
committer hhj <huanghuijin@huawei.com> 1695128748 +0800

Fix some duplicate content in docs.

Signed-off-by: hhj <huanghuijin@huawei.com>
YxDtree 814c8323eb97e1ca2f75a078be5914d391dd544c
parent fe122f76d2794a4d06ed022445df3356047f29bb
parent aa9370d5c8f10c9a10953f50a710b2f50eff254b
author openharmony_ci <120357966@qq.com> 1694599801 +0000
committer Gitee <noreply@gitee.com> 1694599801 +0000

!12 更新RAEDME.md文件
Merge pull request !12 from 黄冬婷/masterwGgǐxPtree 297e4b0f6641679e8ba99ed3c0ed3b9f41abc9fa
parent dc3f92f2d9ca827cee67003c564ca6ee4bec6ac0
author huangdongting <huangdongting3@huawei.com> 1694598039 +0800
committer huangdongting <huangdongting3@huawei.com> 1694598039 +0800

补充C API指导、规范和构造文档链接

Signed-off-by: huangdongting <huangdongting3@huawei.com>
K|Exltree 48a95ffe0b64399d12360c00802a3d03570b2c49
parent b5c8a0ede0817e76a8cfe5bbf912fddaf9ba0f0f
parent dc3f92f2d9ca827cee67003c564ca6ee4bec6ac0
author openharmony_ci <120357966@qq.com> 1694484587 +0000
committer Gitee <noreply@gitee.com> 1694484587 +0000

!11 增加遗漏的头文件、修改oat.xml、删掉冗余文件
Merge pull request !11 from 黄冬婷/masterxRx3tree b3f4ef9b2a04ba731da8832ad0c4792d98537af1
parent 0fa0f59dc280b0df1e48662ada13683aab8fbf74
author huangdongting <huangdongting3@huawei.com> 1693464716 +0800
committer huangdongting <huangdongting3@huawei.com> 1694077634 +0800

去掉非ndk文件

Signed-off-by: huangdongting <huangdongting3@huawei.com>
ix8tree f51eee893d2d1d0b45ed07080d4560a07f8eb580
parent b6bd639906514fcaaaa08e537e58b074ab261eaa
parent aa165c6edf2bc9b6b6dddcba159ffc594c26cf79
author openharmony_ci <120357966@qq.com> 1693306936 +0000
committer Gitee <noreply@gitee.com> 1693306936 +0000

!10 fix spell error
Merge pull request !10 from hhj/master _xtree f51eee893d2d1d0b45ed07080d4560a07f8eb580
parent f4721c5b1f467dbcc686cfee157ba3b1e5a694cb
author hhj <huanghuijin@huawei.com> 1693301612 +0000
committer Gitee <noreply@gitee.com> 1693301612 +0000

update docs/howto_add.md.

Signed-off-by: hhj <huanghuijin@huawei.com>.Ukxtree aee8f4bb46b2fc5ad21b1dac3643387836a01ff7
parent b6bd639906514fcaaaa08e537e58b074ab261eaa
author hhj <huanghuijin@huawei.com> 1693291836 +0000
committer Gitee <noreply@gitee.com> 1693291836 +0000

update docs/howto_add.md.

Signed-off-by: hhj <huanghuijin@huawei.com>=WUxEtree 3425bbb6c7afdf9e0d4c71150062440638e9fbb8
parent 749aca5422c51832445008431b469d7c32856bfd
parent 0fa0f59dc280b0df1e48662ada13683aab8fbf74
author openharmony_ci <120357966@qq.com> 1693289679 +0000
committer Gitee <noreply@gitee.com> 1693289679 +0000

!8 修改oat报告中问题
Merge pull request !8 from 黄冬婷/master&lx0tree e82104c961cff762a08b282c9b98a0ac8acc1966
parent 4faef42c002e9a141546f2f4d31b9eb48641d376
author huangdongting <huangdongting3@huawei.com> 1693284934 +0800
committer huangdongting <huangdongting3@huawei.com> 1693284934 +0800

oat问题修改

Signed-off-by: huangdongting <huangdongting3@huawei.com>
|fmxUtree 6f0a58abac0fbc70f79540b0af7d2d263b3055e4
parent 655717e82441d9b99e36552ed5fe8fedec68f702
parent 4faef42c002e9a141546f2f4d31b9eb48641d376
author openharmony_ci <120357966@qq.com> 1693216500 +0000
committer Gitee <noreply@gitee.com> 1693216500 +0000

!7 增量根目录下LICENSE和README文件
Merge pull request !7 from 黄冬婷/masterosx:tree 8b97c2ee3bb18531055d2b3446aa46312f8f7abb
parent ffce84118c676360f3124864996e651aa23f7546
parent e752892bf78914ebfd57ad1c5687065689394037
author openharmony_ci <120357966@qq.com> 1693211062 +0000
committer Gitee <noreply@gitee.com> 1693211062 +0000

!6 增加C API文档
Merge pull request !6 from hhj/docs_ndk_֙xItree 27a9049ba4e26c36e683eed6701f013767cdbe16
parent 2641022bca5cb1ad09239350fbaf599b7b92b521
author huangdongting <huangdongting3@huawei.com> 1693019743 +0800
committer huangdongting <huangdongting3@huawei.com> 1693210109 +0800

修改README文件和删除容易OAT.xml

Signed-off-by: huangdongting <huangdongting3@huawei.com>
շs}xtree f9d362402d623ef482b828fd57b14285ac251856
parent a78aaa66cb9f1b5c5f5c10ce443ef469900dcfa1
author hhj <huanghuijin@huawei.com> 1692437825 +0800
committer hhj <huanghuijin@huawei.com> 1693039131 +0800

Add docs for interface_sdk_c.

Signed-off-by: hhj <huanghuijin@huawei.com>
 @Wjx=tree 95359fe00a7110b61f4a111b044e34ff5c57d5b1
parent 06afeabdd14733381d249ea6303b1f65e8656d89
parent 2641022bca5cb1ad09239350fbaf599b7b92b521
author openharmony_ci <120357966@qq.com> 1693017913 +0000
committer Gitee <noreply@gitee.com> 1693017913 +0000

!5 归档ffrt接口
Merge pull request !5 from 黄冬婷/masterex4tree 95359fe00a7110b61f4a111b044e34ff5c57d5b1
parent 751e4b30d3a1564d88189c56e6432cf0f501cf54
author huangdongting <huangdongting3@huawei.com> 1692873807 +0800
committer huangdongting <huangdongting3@huawei.com> 1692873807 +0800

归档ffrt头文件

Signed-off-by: huangdongting <huangdongting3@huawei.com>
h+xOtree 82274c965826730d96e5d7c3537b46ccbc614a86
parent a78aaa66cb9f1b5c5f5c10ce443ef469900dcfa1
parent 751e4b30d3a1564d88189c56e6432cf0f501cf54
author openharmony_ci <120357966@qq.com> 1692871231 +0000
committer Gitee <noreply@gitee.com> 1692871231 +0000

!4 根目录下增加openSource文件
Merge pull request !4 from 黄冬婷/masterNAqx=tree 82274c965826730d96e5d7c3537b46ccbc614a86
parent 1fbbc11428cb1485eeadb053bf87310670faac4f
author huangdongting <huangdongting3@huawei.com> 1692861373 +0800
committer huangdongting <huangdongting3@huawei.com> 1692861373 +0800

提交根目录下openSource

Signed-off-by: huangdongting <huangdongting3@huawei.com>
XmxJtree b94dd5a0de8579eefa7fc77e56207e2657ae1305
parent 037a0dcd17f442c19c9c5260c8f75e0a18a7cdf9
author huangdongting <huangdongting3@huawei.com> 1692012436 +0800
committer huangdongting <huangdongting3@huawei.com> 1692012436 +0800

在根目录下补充license和opensource

Signed-off-by: huangdongting <huangdongting3@huawei.com>
'uxNtree 639126d35c1a6e23b6946807add59bbaf7ff1aef
parent 8d73a1802a44cc39934928eb796bbc08a399fc81
parent 037a0dcd17f442c19c9c5260c8f75e0a18a7cdf9
author openharmony_ci <120357966@qq.com> 1691742933 +0000
committer Gitee <noreply@gitee.com> 1691742933 +0000

!1 同步代码到interface_sdk_c仓
Merge pull request !1 from 黄冬婷/master/ox+tree 639126d35c1a6e23b6946807add59bbaf7ff1aef
parent 5bafdca3e998e06b5dc6b0d6ac0602c6867dbbe1
parent f86af4f40751445ea3fb8030a7a91f0d22818137
author huangdongting <ohos@DESKTOP-VK2KLJ2.localdomain> 1691565866 +0800
committer huangdongting <huangdongting3@huawei.com> 1691725730 +0800

Merge branch 'master' of gitee.com:hdt-mandy/interface_sdk_c

Signed-off-by: huangdongting <ohos@DESKTOP-VK2KLJ2.localdomain>
Signed-off-by: huangdongting <huangdongting3@huawei.com>
ݘ x$tree 5e2dc263ca52bac6aac942f51c4c9660a86d886e
parent 5733835c232d4fe7205d5f61b522bee2adecd6ca
author huangdongting <huangdongting3@huawei.com> 1691135785 +0800
committer huangdongting <huangdongting3@huawei.com> 1691565378 +0800

ent

Signed-off-by: huangdongting <huangdongting3@huawei.com>
^x$tree cc818e93aad7b64dba536e2d7cbc8c3b3dca5fc6
parent 5733835c232d4fe7205d5f61b522bee2adecd6ca
author huangdongting <huangdongting3@huawei.com> 1691135785 +0800
committer huangdongting <huangdongting3@huawei.com> 1691397168 +0800

ent

Signed-off-by: huangdongting <huangdongting3@huawei.com>
y_oxBtree 5e81f7f0285d073a6a68beed7b754894338080f6
parent 8d73a1802a44cc39934928eb796bbc08a399fc81
author huangdongting <huangdongting3@huawei.com> 1691065861 +0800
committer huangdongting <huangdongting3@huawei.com> 1691065861 +0800

同步代码到interface_sdk_c仓

Signed-off-by: huangdongting <huangdongting3@huawei.com>
nx 3tree 99b66f809c99e705e6e77f3af212c5a86ea17734
author openharmony_dcp <12516224+openharmony_dcp@user.noreply.gitee.com> 1689766757 +0000
committer Gitee <noreply@gitee.com> 1689766757 +0000

Initial commitǙ@kx31 Ԓ{%#؊dv:}}r_̴LY~[Ĝ{8__91 }x340031Qp
qKc_{~鳷\}/&'3))4$?$C//%[/8?&ys
BW9B5g#4d0t\S̬HP=?KSH 0,x340031Qp
qKc뎕oK[,1L*LK*cȽ<+.o~_;]↪ψ`x7?8QұRѩ9iZ]U N-&x340031Qp
qKc:/54֤]Zww'xkQ\TYPXY\RZYx%'*2!b"̂"zfM<ۯXV,/d*٩@9>25m]ɰvǣ*N*}}zœr\o9JS2SANfVvs~ԼX|UivJP˦oeZm`oHKOL/JMM,ԉ?v6{/9{/UGnb2P]o@Ҽm?r+JK*õ{܊A[0*,LKPaFoQ2JM5rTt0<rQ]پ/z{=ޭXbWrч69-;ӺP9Izy)zYyUlZ~B(S-o x340031Qp
qKcg$:^+FCԢĂL3D=RNtL2͝?eg'T}NfPB^^J^Vq~Cq/+785 8SxmmLSWpq8:Ⱥ)&T`-XHaVvJdsioO+ӖDp*fe9eVuT^C"fK$'<9ONL$kHCY*ΰc7?\׾nv)?W,2@j 'O4aJKVQQX7[KB)+'z<%+'qH2rpufpS{ήGx  z`Bvϕ^uy*-&X[[J8eRF|%_:d?$kB?koā7UI(@gYMjͩX7oܹI3*.EoȻ=MEZH5kAKE8M)m͕=*f@Gܞp3 'JB+APgVvJYX6p4/vHK(ݎ[ra Zf+/-#WZGhzH;hٟo+5EÜE,aaߋN?m<HUft{C]z%@&\m}V#qr0bRQ#"	hR	#Dv7:ޓH7<knv_=FFϡԔҍ{|g˅o.hm_h{'M7L n_~i( ,n[KN_=>$Bb4\ +,&L,dX X<P<6n[_\\iHQ<tvCQyaf˶0mJ\H-z;f4}.ʿ7~ A7Nv3wĵDy=M"7@EjJt𱁝>yW
4ֱ̐knDG~7rB.Ō0#rHk?u(NxcPmNoXY5_2rhknmf$Yx340031Q(IMOL+O,`EuDw}0PW\WRHr[Fr+.aQRY
T|&ڝ#tn} ߭7ͬx340031QHKL+dߴnƕނz.ߪù($5>7̝~Ti U x31 lGEgk%Syeg~I|JfZù78)&1Ip@>D 8.'2T/uR/H n%x340031QHHM+dX^AwLG~abgc&>9? $3)3'c6ʅz;V{huY6R #x340031QHLK+dXiC/it
 xkx340031Q(H,*N-+dP;>mܳ]\b{/ ͨx340031QH+.I+)+dn~nsfF,:S. !8x31 Ԋ%6Quu\M<6&&`%8'2,?zÜI-#|QC? c6x31 l)1h9h8 
x340031QK,NM-`x6M9{wk+qIOD ]ox340031Q(*͋M+dáTt.ٵnFÊgo  3x+ 40000 bundle_framework yXbiW?@`x! 40000 bundle ]grh\B )z]xx 100644 BUILD.gn !>#e/jU^f40000 include -囪I/,x'r100644 libpasteboard.ndk.json MwK7m>+/5x_ 100644 oh_pasteboard.h ʒfߑ5a7ilv100644 oh_pasteboard_err_code.h AҠZV(A)֩x340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%A-|S_e[L8dbJNfRAQjZjQj^rj^^J^Vq~[.x=q
Jm]o j1^x340031Qψ/(JMK-JKN-`xvx,+U$>$IbSZT
R&(eYk/(jaLS26*#{TBܰk)K)Yr3#K秆:,ϓ  Kqx340031Qp
qKcXcr8$b[L@!3/94%zw%|o=w9.CC)9I)izy)zYyOtᷳ-8:E  .hx340031Q(MM`吢۷"Tħ'秤~n0uקwK2YinjI"Pg+b06jײm35ʊ
<zӞ.>AŪ=Vj`
JR
m]翮*΢_/mT  J	x c100644 BUILD.gn EZՄg<2t100644 ddk_api.h 
G|!D9Q$^100644 ddk_types.h }^DJEt100644 libbase.ndk.json 7XoK# Wɡ3d9
x \100644 BUILD.gn %\+[w@#100644 hid_ddk_api.h C*-Y)Ml	
100644 hid_ddk_types.h raaH
w.Ϭ=100644 libhid.ndk.json Q?JN2VȷyOr_a+<6x340031Qp
qKcrSyrݓ_EzxyoQTZ_ZUǐfGwoⶊzý|1@(O,`~̯MBrzVAGm%L%@	[Y]Bdt ͶBx340031Qp
qKcxL{}'͌Sx 2sJSRNo;lky!d&g$%gdde1ɷ7jͮ .Ũx340031QψO,J,K``PnCU.<7DWZTR`=;oQswdV b#x340031Qp
qKcl?K Bf^rNiJ*ýo23.Yn 7sSr2R2rSJRԪ4N:?=tB_*m/x340031QψO+,M+`ۚR"-I|+ \Xx340031Qp
qKctH{e:/ۭ71 ̼ҔTy6~M~zԑkgt0_ZUp=ג_i4kz a3x340031QψOI/-`q=f$[fTFK  5px340031Qp
qKcخwd2I&@S`ҹw5,K'>i!Ĕ̤̜|l<RI/apkmʳ4' V+x340031QH-*/OOI`Xq߄{J)zϲ|C̜|7m\W|Zq' !Ǩx340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*C@w^\O5ڎ!d&eg$de1h}?l4-	fDR ·/x340031QψOI/H,J`0,kyCSV&̠mKNN 3ϯx340031Qp
qKc\]x-.m_`QUlQMԞ /gO|x;r9 9Ex340031Qp
qKcvscgծʂ0C$w2l<'<kp=)~oio x340031Qp
qKcqsdfvR
̷j',!jr2}\ˌR)s_u~lnK+w ]Ix340031Qp
qKc{rde}a<nidC$w2cl<wv4%NQg: 0x340031Qp
qKc`ZQ[%u<? %[	x i100644 BUILD.gn WUi-9nMv>H100644 libnative_display_soloist.ndk.json Oj䐐44pS100644 native_display_soloist.h @97o9N;x340031Qp
qKcp^!bɶM;vo4L*+NK*cp:ArI5ڟY;b h[x340031Qp
qKcH	e38Yղ5//^hb 
y9)-}jnR?gvMÄSr222sR^Zpwa_)o6ޡ	 ,Sx31 ̜t-2»jOx*F{m jx340031QO`[p_e@Wbۏd x340031QK,,KO,M/JKI-J-`׎8d|\MQ- Ex340031Qp
qKcY/e3{mdQXYUǰ#|ݪ5Ve/,ojeG mF&x340031Qp
qKcX[h}A;BMeQXYUǠ/xS=sJV)Q%{g d%nx340031Qp
qKc8ɵV{oQXYX[ZZUpnni>(VRV }X b(x340031Qp
qKcתh`9O˶=,!jr2K2RsSS2ˊKSRV)9\>޳smHD>v" lO$x340031Qp
qKc`io1;w8o=ʹ&'3)/$,5>75%31>9?%59)8U//%[/8?ayHنc//*Cm
 &bx340031Qp
qKcЯ.:!41I3=VC̤Ē̲Ԕdl<}>]rDW_. 2 [?"x340031QK,,KO)ʍO`yShRߣ	Շ0PZTTr51{gwD\5	 '$ x340031Qp
qKc.ʽ_,߶7LMMLO,.N-KMLO-ON,K*cx3Zִk/;]79oɳ3 `*|
x Y100644 BUILD.gn !?xs%jf1100644 native_midi.h I$+(1=c100644 native_midi_base.h #||x(tb+100644 ohmidi.ndk.json %>C,^P!#c}NipW7?x340031Qp
qKcsWK9]hQXXU0fbSw0;
 "gx340031Qp
qKc0ϿpKBGp]R]gBd&%妖$$$ƧV%&de1̲*JіQqeJZ+	 H$VxT 100644 BUILD.gn Mo/EJ;Z_;100644 libavplayer.ndk.json #B\2읡˩psix340031Qp
qKcYq=Z)lOt!jr2ˊRRRRS$𾏓Vú6- ʨx340031Qp
qKc`:A~V#_9wK&'3)(189?%H//%[/8?ancG,Bj{wd9	 b!$x340031Qp
qKc=aٹ<}]!jr22SRS3RBZ	DGݤ(m7 !cx340031Qp
qKcX2Il:g(O_jQZZZdde1}mUv{:Ch`zo捅קZm+9S%@>/պe~6rƹv Gx340031Q(H,IH-*cҢ%?l: xF 40000 miscdevice tiAYa#z,;S40000 sensor M
P't"G33b^Bx31 ̤Ē"hY1W,سҘ Rx340031Qp
qKcxnϛy,@	߂7E|	&@S0%)z!d&ŗe&%de1pxxڡ_<rۋ t/x340031Q(L*J,/``2Gh1DU_RY
T^=wbW;  4+
x Z100644 BUILD.gn YH5ԇ1uaYÒ100644 libsensor.ndk.json oaKKO P100644 oh_sensor.h !]e~A6B	\100644 oh_sensor_type.h BKd NMbztԔ@x31 ̼~%fsw2ǤO  Qx31 3#N5)nѿ\:vp ϥՠx340031QHI-LNK``1:y⍐^kAـuŕɉy)@uޔKki;cMk[
 rwʨx340075Up
qKcW73\|Kכg7;xq(d%甦2mb5O~/\>BLL*II-ϫOI,I*c`>Soץ< 7a2]x340075U(II-ϫOI,I`~=	ehacbG? MJx340031Qp
qKcޱۀ>Vg9G5 \}u<7~\ ]!Ao8Qbƙ 2%5x340031QHM`}R
>i6m!\AjE	PMcS%yTsY '$-(PoʕsUVNd<>nmO3 ,+x340031Q(*I,I/`X{v&(3BCfG 	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYym,}UV'm;yxF( g&3djӜ|3,+s  ~7x31 ҼT{k~Λnq_v >x340031Qp
qKc4n==EظsrRi!j|<]]Bb\f,]uYMG*]G[Q'3[;m/vG8& Bf^rNiJ*çC=49*FrԤ̤2l<ump7Ibj3b E8x340031QH̬`=9Wnk^u@!DARq
Pn"^?71_k.TAJbQyfP%5Y}pWԢ|	q
{9Dǖ$'3QF6:t'V~_5$ )^&L֪kјUR_Ьiɾ/m=ɺ{yb݇*).I+-.K620 *Ʊtg+>
Њ
4/E1/`=y~$(51 ??n:+]evk0uE@}r⾍ABPy`2ޞ~CΦe{?TEYjQqf>(H͵QpSx7qKA"Hl$fyը}碏w~= {נx  100644 uv.h ѰrռC
+xUy Tk&Д%I7"%Kl%k%30[gXW,)[;)Wۤ"K-2%J{sw>Y~9G[KK_WW	2QpqWe>8}.=ՑV- 4 &ig~3e8\<Q`_ef w|c3ᩂU(u/@, w c|y4OA/gAF"Lac5xGrc۴ff>w mVHܕb^@"2, "3p|*4Ovb͹a,gRo?L@A,t<"_w[qhTA,!ݹ}/.\XK1~8yhzلvMN[?fh>DB2ղz>>pZl9 x*-{;?݉
!ezқd8S7O0[αٳ@ YjZ{Wo`fOU|h5}beFA"*C!!ո~1Kfg"O/(d>0!F&RxG:Jdt6b`Uyo<ix'BGĲdzxt"kl۟/nɮhY4&5{xcN+.Ōbp؀r%[:Lg{emW޵4yŃ5b1: )m41ꭓOKޏ̗>AŹWK3,a1p J_b"bAI@a\Y_mت{sǞBofhLo$eɹzYчvB֬~DL@6St0ckSfQ Ȝ[M{)z]OꮷxD}s\fJN=g4w2=i++(*g*F W|xOHqfG%WN	{]{6H4}-rmJ]})04AUѐp2Eon*/TlDRBXz)2Y_zA(ET]9ܲ3?+-Qg5bAtLMb}ѩ0:7e&ٮd(߮=@a!"^7r[?&'cM4Kdr21rtA
@,b&<pU5}8-40ZZevvoNHgBAIV"p|*fyG`#{/'Y]VUNc2k\b&J)N?pn)eu:9$U'fpȓr'r|VnE?h:f-zNbGz{]	qZ.W@ECJ6+_QAm]QM(X 1_>$D(ThȊ{)AԻ6K%Òn_BX LAwf2g@Nh;JYLZ3cBWu/Ͻ>@;H"p\q:6E2"%ыgGO4w^ezӀ 4!욱wa;0 @ yqiphHs++ͤc|9cqd]s}ҸXl34l" xʺ#idHS.fG=o,>2}|(
7W!	Ţ<ѽP@n
'uY4}h_Xrݝ%ӛC $&b;vK42q۔<QњdnSx)'@Hm\QY@ "D|%R?4XLhHzMnwm̀R[F6$''?}X3yIL&:pݒg^u3}5XHћ"@ɓE}d߻6oWj3-.LBsMCƯCݳjW crU12ar`Ϟ%^` W(-Y|ᑚ9*aFE6oިNj a{ܸo GP^9)išm-̄X!tAjqTpCXvGgгZt@).[ֻ.IIj!7-bR%觠;>:G"k
;+q;WW;H+Fz7q79=7:I'k<k^@`=aƳ垽}9z>jj2ߤzy!?\Q"*R׏E9N/ڨSnPYP+5S-}CdM)|X]ձD^_dG[e\BRZiW7O0D'֚O]GPP=9Dܐɯ~1v3:[U$!E ʽfGź0\}VjiQf+~)aI*rFSnoqg壘,Vtq{lx~盋2ve'NP1sM鏸3|╍\q`:zLT.6qM6mցvA?@̽ԙ*<vQqPtޯ6Lڵ>eL^/^w{3 M@daǘ{Le &@WŒVu}u&ԭo	;d	-H!r^ڊaH` ]]lppᠡ5r6'x340031QH+)`B.'\_
͌} 3/"M='qMv;eTE^bnjqjPQُӏW]wHŞ}-܂DǦ+>rCBgD'>@Ֆ@,xr|ۻ_LuOq>,wېuQv \x340031QHK+`r40s{{-5*/*L*w}f$y9Y%j{O**snLYغu=d}8?9;FiӷI3-
/E
SSRvAmUOLdl.0H*Q9v׻Z鏒O&Jr2jE9ipFn<3p5Ey@56?VLK9&ݧ;AՔe)W/JQ"<]BdY) uحx340031QH-H-K-`xl|Uf~g_*3(_<	۩ϞƱ' |5EjҥŚ׵VMSj(${V	'>:jbZN >8ɤx340031Q(HLN-`Ъ=_Lǎ~4 @<x340031Q(N.`uRaK[2sJ߫*3Kr45UX(fQG~z0u@sw\ؓQe" &$x340031Qp
qKch\:F٦
olQʐq%Qj]:λ <n94㳣璥9N&x340031Qp
qKcxhNQH͌y7]L@݇A#@ycϝG됺5s6L5؈!Aͬ2Q}S8[%!o̰eJ;>ak̺Q N0êx340031QH`aߟ%N|5/^Ӝ)|>'Ho!L>9(5(	=.vaŏ8sg(Ԋ5gcfq}}y <*.x340031QH1`XU?!9ԭQL0+H(i|dC"u';5O!$ Q<a-pz b-x340031QH1`xd''o`WCU:Z5+0Pɟ+9a[OaȨPaT>Lâk.ywOg!T$DY/A3\_Nػ @9	x340031Qp
qKc%9}6[ygĈ3tve0iy)bw?j9K PH,d-4ckXY{nI56Ade1tLcu%ŗ'7w  "X4۬x31 C==CG6FE<kC~x]s&2_{J/K?5d֕׾o)v')km" 
x340031Q/Hq`ݻYGo	{v"]~!x#(7?݅,:~x]%=nsCX_T܌3g%jYFPA.z%%u7=o[lzpw̑녌= $D%x340031Q(+N̋/LI͏OOIMO,3,.I`0z/7+zqge'^4$-r4^ʪqtS>%
AݩyPݧrDfU|#3/73?9TeS1/9	C8JnolK*Npst?vVlԛdHs^W۽([ۓ+ߕkZHP+.:儅?L4zvyGX;5gٟzrcAڋTnn~Po:{aڑO +$!x340031QH.,(ɏO,J,IM.)-J,`!}rki&[L2DT\YZTϷdUrqq{;wL^pJ&Ū=*<oessJzOu|cקҽQd\×eكݩBwv;4;%39FPY7KOL/JMM<7x}aKn~z`7Td&gy?`5W?ЧR
]-J3Rk[5DP| U|zPgE.<w	M5rT$XI_q|OKL吘Fr_]%}V іVx340031QH)/H-,.ϋO,`P?4'#ऩN]> 
x+ 40000 bundle_framework 6ipJyPT1B|V8yx! 40000 bundle t&||lAa{*Φx" 40000 include f羈Ŀ^e8a	x d100644 ability_resource_info.h U5	E`0100644 bundle_manager_common.h B
>/#U;(-100644 native_interface_bundle.h 
<$y'u?
̓l;x31 Բļ"?+tO?l+4U|{܋Z 9Ңx31 ̼ҔTCKˮg&n}o%7# 6lx340031QψOI-LNMKLO-`h~Y5Y;Ȋ1ġ<>(>9?%/1uޮvӈ371_>Q
 (}x340031QHIɎO,`}EG_\p֪J*RjJ?}+sWm#_9;  x340031QLOIɎO,`82~ܷU^.0DUXRYZT*wݭOoDw.7>h r#1x340031Q(-N/N-L̉O,`huoMuQ7Um9w!ڒʂb'ӓMHpA, |%x31 ̼ҔT{]o  ߔx340031QH/MO,ΎO-*/OOI`8'wR)oZN-y9ӍUCx$]yE@-mG2$MVMc˝x '2)x31 ̼ҔT<m7:əXӏm Lx340031QψO+,M+`0T)&^K
p ZZx31 ̼ҔTqKoRl6L~ ix340031QH-*/OOI`mv_g++|Fa$KXBgħefrB'UZN 1 Ǥ?x340031QH,MLOOOK-J,/`k?>x뛞PX
{Ykd ɽzrSS2a*%Kv|/~y𷢧>,/-Je>xk[2^_5T$1%$1>(1qu7%lO?o]<:`:t^o]G׌蟹;|fhN,+d;TchrkR|mqXWWX
rD<i_^ch`{v5XY1|MWZ_6ǖwzevIB`VEr&DjD}W1W׹%µFhݼB,*a^t7rl*///*M,M̏/j?3L|u_̉[̚Ar_MW$ٚCWWZen]	56uef,]Snq fGM闋W}.+NP]y%e g%''4y/tH,/\F!=WgLƮ.o<\Z,_%ЙZT_J+>EVYϢ },	ӗfx31 ̼[f8vX;: hx31 Ik}hz߾A^{eW Fx31 ̼ҔT7&^\7.6ܷ_w<ؔǠx340031QHI-LNK`T9V#\-r#_!D]qeqrbA|^J6Pbpf9}>D V{x31 ҢĜԒҼT-l
ɑ"UX** 
xE 100644 BUILD.gn +@Qlj̟*|C6%D100644 ani.h đfÁQx1@|A	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~FCK9lU59+@%dƃg0+~ɥsoς7v0:V
 ;x$ 40000 transient v(\Ԍsux<x"Zgmx31 Ғ̜b /Mɥ x31 ̤ҢĤ\_v%=SzrK
 Z	Sx340031Qp
qKch^÷@|3&JBd&&&Ude10mg,ꔛ^yrI䃜ކД&=A;}Ru1׎ w5	x340031Qp
qKca'wcXم΋Y5!jr2K2RsSsSRtO1WjjuF!ԃ&ўP@֫MYM| s>/xu{4Ty'!Dl#PtlH@kθ3sYسv6EB"ԉ
4jټ{G=\]Y,{_g#S$Wl%K$LxTWfA/ ʌypZڞm?ʼ	}83TI4wz3υl
_\hAA$#kG)`^;SIe4|'sMR[zlu<! i)[@cGn
Ml6Ő $|hע&0HޮQ_e8w]w(L
fQr( s˹ȞEC,"	'S,w:H2v"!>a1>^w'u뾪
%Ed0KEkLd(]߬FE8AdLƷ٦M,AeUn!,EĀL{qESҙڜvsur^.sjXE,b{S.ﾙE1` !mʫ*0IvXH?}i~Lqgċ	vӳe<w R9Xkʂb8bBi/E-
l((sݾ&0)Q4d50uI7B!QVBx<7.  ǦB?\uRU~qoLϿz3:>= <P<f
};VyxSe'HH۾1';ȮNlFA1`_, iWu&U	Ka//_K;Osr\骬_y(9k8|-%J}9/
nJIQQ4kPCdpG[7m<MhIݾK1
/J)񊤯T]y2;ZQS,<YAC[;I^'u(H1&rmYB[iQ3,)c>4GP&z;:n&Z<q^[	#~n(<a*g7]  їS.׸&
Mp.KAlK0\|6_Qw0!iGtS኎j!f?E+!oݛjszfmEej7Cv90 b$ǸtֺDLF&^w1KY@wޯ{p\u=זkP%9
~(dK{4Z"4مUܝrҗ#ć*nZ\>\Uy$D'E$9~pA{2ԝ+Һ#$9rb7+̊ؕx^bx" 40000 hidebug Qvh2R ɉMxO 100644 hidebug.h 9rМٖ{100644 hidebug_type.h 6W+YCq]ely!x340031Qp
qKc/xsj	El}!DMNfR~FbYqjqqf~^^J^Vq~Ü)"s$r?~r}Ē̲Ĳ"7cvZ*h#5妖$$$ߘhme؏L=/
a~ֈ '2)19$$ϛlɡeyFSXZYT[ޑ9d֭y{/<`hߪgKK͒ՖKVb:>)鬉r1#afǹZ^\ǥ%(H0#nՂ3웿0⎜sP5e&f+!z;u޽ ɴx340031Qp
qKc ḓ>FTc Bf^rNiJ*Â.$V%OOtnSr2RKRK2R>?=K,ﯹ] 1@x340031QK-OKM.`Xy>Swb;7'plMm|IeA*PâȯOYOn[$s)L s$Ox31 ԒԒ" Nʭ5V[^	\YIQbZZfrZfNIjC1{]ńMBx:ueKn\ U, x340031Qp
qKc4kqJ7ټ?[y!DMNfR^jI|IQbZZfrZfNIj^^J^Vq~×ʻ4qGͼPxa?1ue0Ȼ<x6O5f>O¥< -K'K[SyR2 <Px340031Qp
qKc9Es;~/21 ̼ҔTmSU]axR!Ĕ̤Ԓd<?
i=qkբA߿	 -x340031QK-/.ΉO`s}DΜf{-ղMY|IeA*P寗{`t=R +!hx340031Qp
qKcxPr"^^;}̣'2(B$%&g'&%de1fYw^ƴiR2|?jb 
y9)K37?4^*w1O8x340031QHJLN//K/(ON-.MKLO-`3L5:Q{)SM' /5xo 100755 BUILD.gn B&NDI-V40000 inc Uz⬑4˰2X100755 libasset.ndk.json k3nTZNRЉ/xO 100755 asset_api.h D}7i ܢ>˵[100755 asset_type.h g1Buep"

x340031Qp
qKc@cy'6v*l5+' Bf^rNiJ*Ý>w	y-x8-!d&efV%%Ude1d7NqWvc{2hzj_Qo9asSRX~W09 Cx340031QK,,K(.O,`P2ye1Y*OLI,(I-jbw@͓ESjPy^bN|rQeAI>?Xͺ]Og/W YL[SNK{m]eiE@&=&eU*;ra|
>_2b)a ;x$ 40000 transient Q$P1˷(s1!.OGAx" 40000 include sQ܏R'7e.GeƢx31 ̼ҔT܇?0H6LF+)B  x340031QHJLN//K/(ON-.MKLO-`}bCknffNJr
 *x31 ̼ҔTQ<f`?i, 9ۥx340031QK,,K(.O,`xdS/nâ43)
1V%'UC5>K۰;2"Tzt\RY
Խgs&sUl,EwAbQb.P#~ߍ=S;r
ꆇx_zm͟ۿ nh>x" 40000 webview  I!S^dF<Jx% 40000 interfaces С24XG Fx! 40000 native ɫM Z\'\ٟ**Fx5 100644 native_interface_arkweb.h JK4TTZ0@wa
x340031QHOK-J,K/ILI-+dxȹeVny!j) W P,/.M/,.Ie~pi,ۮ^tt5\XTS
2P	,텻dE Esج(dń9ͷyoX eIx340031QHOI,/.M/,.I*c)=#u<s- 	0x340031Qp
qKcxݲ-[NmԳqUC̴̤Ē<l<O8iԣբs~	T닥8>\h{hJK)3 <6rx31 \,o7>^Iϓ 5	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez'Ke%wcWoTėTOo&*NiPu9I`R>zO[tH5MO  ;Bx340031Qp
qKczI
tӫMsX 2sJSR6yZVS?LuGMC)9Iy%eyzy)zYy[tm}Gy  >.x340031QH-*/JOI`D:3R94J	ټjQVZRt@ER:wϵ	 Dxv 100644 BUILD.gn EFG940000 include ؎_L_ݸO}04100644 libhicollie.ndk.json Cf|
T0uU,1x# 40000 hicollie "=
]^)6q9Px& 100644 hicollie.h \n_40 QOJ&wYݧx340031QMMLOLNN-.H)H-ON,`zؾSq+bb8$>)8B3۴],[g_ǘ$-P,usOTHpuھH" ļbu{mvthC.څ ļ")ⶨ>N[n_:d*rzqKnV3~w^\ԭLW~Yf^z|AF~I>L9yg-]nI2rb.R Ǝx340031Qp
qKcXcpfnǍ.t,61 dFիhbߥǽ`ʓ/!ҊJR8w4$9V2N +Fx340031QHK,ϋ/K,LLI`3㿖-?F!D}ZfRjPΫ2f.,|/`hPTIN~~PҲMN:Kx%wXS[ZZTzso3tKx׬4䔎5|F+^ϾRSa URX3z﷍ja09 '~Sx$Y\+c̿RTIIbq6PmƇ[vQGa*2s>'D~NN'ʈ),HOIM睘*`~g_GWT Ñx31 ҢļԼajmկUtE9T?@ wvעx31 ̼ҔTbNn鼨<+6~JP< %x31 ̜TY_&dɨg?U<'"8(9571/1=H_lGZmp Sx340031Q(J,O,`x﷯dxנ{S!BQZfN*PvosѾ?&MKLO+{W:_>͐ U3x340031Q(J-M/`sZk!kۼ;zFI0O*
k1?sEAϩ x31 Ĥ̜̒Tڟk$X_Jƶfˌ&(ʊJJ2sS%ME`RrY풯#smR 1¨x31 Լܤ"KN)?y!I)#_ #x340031Qp
qKcرȫ{TOa)_!jJRJSsRSRnLDh?ړ#9c6罯4[m
zVmHQUGJ~ri.ԣά~b9,AGL$kI r3|g8^GՙkYcTP_Q	ԐH-[.{*o)c -m}x340031Qp
qKc~K˧%NU<0* PK)MIeoP&uj.aޥLǶ￣bJNfRIjj^^J^Vq~fVsn:Ġ$ |+x31 T*W/>X~?+eds2SJNI7hQd\+ x31 Ĥ̜̒ҼTCǟ!LY2)&E-x31 ̜b4%>MܛR x340031Qp
qKcpH"ç5p7LJI/(ON-.K*c0^}ϢaY̄jK,,KG՘p*mՅ9nJNj! 7;x31 Բļ"6-Uv'q(ԳK x340031Qp
qKc8*oz}լwr%_NZnb 
y9)Wf~,w皳[!Ĕ̤Բļ"l<G/Q; .x340031QψOI-LNMKLO-`"C7Ѿۤ{_hCy|jQQ|r~J*P`ؼş7u/<o ,7x340031Qp
qKc[bcKϯ2ͪm(d%甦2~7Ǐj<SΟSr23sKSS2sSRfq%-	fvMb/ce 	/x340075Up
qKcd=⣸'*ZM0=aQXYUǰiZۺs4WXTNMQ:U	Ճ!763/{8fRrs x5x340031Qp
qKcPWg|]<51 ̼ҔT?a
E]swl5XPZWUǰ~ۧ}wd?Tq 1qx31 ĂԲԼS7o ٠x340031QL,(H-K+`xM+|?˕w^5̶3DWT/5OMg8ԦP}!ZJGu,<ؽxpR{Ģ\ꐌVyeOs |Ix340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔT	qI9>C)9Iy%%)y)zYy_댴VnǱʋ! 0ˤx31 TTM_bШ)[tLL 
sS2mfSuLMM-Е'U75~h2aƎ_PT$&gAޜ{?'%o*](:"5'>7 o<30Q&zy@q;,:tuӗ+7GO(:RS3NzP>sStI1Cd-y.EɩP,wuv 6AK ?x340031QMLOO`(ZuKɷ;Ye^bIfY*Pu~#?c&Uͅ6gߢ,HLN-BhX#Ա jɹSo\6TR$-7پ9piHCR_Z(SJs܏YacV"$ߌfܐq\T˪yVp97IVɲd;*@* K0xz 40000 background_process_manager Nֆ!]*aaym@3ewG40000 ffrt ߬/}7'Ks40000 qos_manager Likoұ[>1dxk 100644 BUILD.gn Ns(}Ј140000 c 5Djf?!hX100644 libqos.ndk.json "Fq7 z76)x! 100644 qos.h %!ۖبY DW3b	x31 <nd/ygfsaigL ʊSK-`l7ûWTS_"ZZTXyF(>MnGr}QQQ]àjS]SW&j^TN d3x340031Qp
qKcVoL堀R]7}B$&edT'&''e0E0|!մ)P=9I%٩yzy)zYyBG_pXV*BEC^' 2x& 40000 certmanager T;fuM:wu~~xp 100644 BUILD.gn "CH/ʒx-d40000 include DVNF9{<#h$YN100644 libcm.ndk.json 6>rq#?AM)cxW 100644 cm_native_api.h X7oV}>Hi100644 cm_native_type.h -cy4<Am"#x" 40000 webview ^)S"<MxRJ.E+F;x% 40000 interfaces h%sOQ·x! 40000 native M̕bJx` 100644 oh_commonevent.h @BL0Y4s100644 oh_commonevent_support.h t3^9{ sqC[C9W'׫x31 Ԣl_&뷥1̻'w<_ UQx31 bY_y8^C	ާ ldx340031Qp
qKcprdɧ<=|bSso5鉹y%E99E%zj*~_xZue&Z5pꜷL1TZWT$lGDRA&{?}{^'AYyAb
PA%G+N:J>Z}=0M7:6:ǖJnڜ̤4de1i;:m=[<0 px340031Qp
qKc~K˧%NU<0* PK)MIeooɬUJ^q>3{bJNfRIjj^^J^Vq~fVsn:Ġ$ 5)-lx31 T=rm;'{F=(&W u-tNE""XYX	x31 Լ̼T=Ӄ/L;QRx綤O*d$V&%1hi,s+'CT%d2q[M%BSM.K/bֱE/@yɒOf?x31 Ē̲T|Rʚť	N[|lG :x31 l[)ߟUu|jBr~nnj^I|AbQqj^V1a:W>Gn	ذ̴4U[B~yWi'V9Q#LHVL2 б6=x340031QHOI,/.M/,.I*cx2iMa] =x340031Qp
qKca7ۑ%xwI&@Sp9Nފr/885Sr2K2RRR}X|AI}6W3;߇} @G0Qx31 ԊԢĜԲļ"9}&S ɥx31 LC<ޅ'tV	{\5&hmRtQjq~iQrj|nb^bzjnj^	C	gD[yfF N[x31 ̜TkVVaju ۣO_@T%&%1gpKv\{Cڑ q!%x340031Q(J,O,`8{׶7Nbskl"eUjQ2K|_ϱ	ӾMKLO9knRdmk u1x340031Q(J-M/`j{\i$YO7\]iQQT&w ԟO6 ?"x31 Ăx;ߵ'knh 	x8qBHR\}뛂'yKh &
x340031Qp
qKcﴕWx또Q*&5--5$>-3$H/ߖ_/n	oJkYrT%@)q.wqۙvg*s2K2R!zRNUz+ퟭʋkh rGx340031Qp
qKcp_S8Wz>v|`b 
y9)Wen!/34YRUǰ[{:XL{5匞 Vp/x31 ̒TQame	o[`S1 x340031Q()JLN`x4#F=O[S ΋ժx340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔTy߆U>K?Cβ'!d&gd䦖dde1|3bcZyǊ7+/  1x340031QK,,KO,MON,()-J-`de$7G	 -Ax31 Ҕd?*w3l_'VfՁ &HjW~_?G:/LYJ#K̓3S=5S{Ü(bd̼|V6N=tឰ	H]P7f$$V旖e0L1]aL\i3>%5W㈇ҶC{aj *c}7띘,]0*^0Eɩ>_;jZR:1I)uv	%%2,,YxT>s;K,,Kz' 1)3'|I62_}OV`W@mZY>S,p"	~K<ڠqXvNceJ^FmG#4stOשXXp3_NaeAPZb >grdCO':]CYfJj>T׹Oyn[z{G%{6_u.Ǌ;\R{QNG[x4"<Ƶ:7eZ?XUxStЄTd,hA6)Lkm{۞0g<]-$q},¾9ϞwO+uQ{#bXf*~$c_/l2z[5|s߱yar0M`y4JZ,K.'7	 Ax31 ̒b)4vMdf^,: ;qx31 d!~rI9u݉Ze,OfIx340031Qp
qKcQw*#jZs P+(-apᲒe& {na33JR5e5+-E  (
x340031QψO,/,H`IDׂs_23$>71/1=gv,?nRZt>iXPRxV5
3JRK*s@N`]'g'?} jEx31 ̼ԢԂ"sL`b̵<&`y% /_cs\s#&'g0uf]re%A38ם 1x
x340031Qp
qKc*ԼɤGzM/qC̤Ԓl<(Uz:Pp*l-.!>:K'%=MU|IeA*Piz}JL/,/8|uҮ yAAx31 ԜҜĢĒD'.oxXğԵ}?-7/J/N-*LNeblk1sDegTcv^9 0#x340075Up
qKcԠTFғsOMkJ"&@Sp~q/O{Of-C)9I%9yE)zYy#nsu<nnV 4[-x340075U(II-ϫ/JL``?4mZ77bU_RY
ԑ5:@oMӹ+Lc8  4$uxB 100644 LICENSE )/>v8) 40000 kits ,=X
"`PV֛Gx340031QHOMO+)I-/,H`(R(7]~uB?a_"HI-L)_Evh;M8I5Ley%@357,Xd)@U/W~hZyz*֯N^끦
nkk|unhޣغZ' oZӨx31 Լ̼TE󳃔*r<?tuod$V&%1xyBZ()uy)pc9fcbad:!|D  .Xx31 Ē̲TILNd7Xg x340031QHϋO,))L*-I-`(R}aWRiR5 x340031QψO,.ION,()-J`hna1V.nr_iP-5Cyi@ŭF,aNa`b-[#q	Sqnb^bzjP"I}w^o3W*T 3x31 ԊԢĜԲļ"巸;XWf9L#C֮J $x340031Q(-NOIɎO,`.l|uuk-)W=~>*,,H-*=RFܕu*q H"8x% 40000 graphic_2d LaNhCsy{  ix) 40000 native_drawing 	EMQv=if#(xQ 40000 ability_base  XS40000 ability_runtime F#Bu,K.Mqx340031Qp
qKcg$:^+FCԢĂL4	vewT}NfPB^^J^Vq~Cq/+785 <6ԩx340031Qp
qKcprdɧ<=|bSso5鉹y%E99E%zD/ic~?gۚh<4Oe:RR2A
=w̝SE[_z-Il^Sa|jYj^	PڰڕԦ;{[d)@Uʳ&~W!ZI;^Xx`[Bݯk3Z5\wؿIjs23<Ux脒[λnS>  3x340031Qp
qKcP\ka%K-طQĈĢ_kY`;Ƌg!+,J/IOJM.?dRWx5Bv{.^AV_ZTj]{]ՕkbgNHouIijQQ~Q|r~J*P-j-[$$ٙ v%8{\	p3*L[XUǐLՂe"',imWza vYx31 Ĥ̜̒ҼTds,/Xd ;x31 ̜bYkf(ν:G; ox340031Qp
qKcpH"ç5p7LJI/(ON-.K*c뜖{_&jK,,KG՘p{Ҭ;ŎS
/H3 4x340031Qp
qKc~!0'3>լt6;bQ dmW[v]Ynߒ ~x31 \3ϭyLwBڧ 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez"%3WLX"Tnڀ" N0$mӁ|	{߄LUPNò{tiY~ ̍7x31 Ē̲Tiݨ<J ߤx31 ļԼ9eV !# ٬x340031Qp
qKcutx[FiD Bf^rNiJ*b[҅dC̹̵>KC)9I%Eyřy%%zy)zYyL)
gyhL y-x340031Q()J+L+/I,ΎO,`Plvb\N1Ī AvBf|S %]x340031QHOI,/.M/,.I*c0	~3XcS}t$x31 Ҽl%(,qúܗ_	 ax31 ҼTOΏ=vᇞ6'ۤx340031Qp
qKca5񻛷4?/< 2sJSRg\/I:5n Sr2JRrRR
9?1ϚVP7h[H r.xxr 100644 BUILD.gn :Ai]*S{`40000 include 7nm100644 libudmf.ndk.json bòއ8 	BYƐ9G-1x I100644 udmf.h yՇ xE100644 udmf_err_code.h X,g0E 1100644 udmf_meta.h Q? }az)100644 uds.h eEKiޖ\81>7<4100644 utd.h :µ$bOzUܢ_ҲI HǢx31 ԊԢĜԲļ"tw\gA':  	x340031Qp
qKcsڒf0Kg7IIɎO,`ڀuĉ8n+7m}IQIeAj1PF@rmETYNfRRbq^^J^Vq~yDei_O.|7u ]<#x340031Qp
qKcrSyrݓ_EzxyoQTZ_ZUǐfGwoⶊzý|1@(O,`Xd2kӻByfOX lGXyr Dx31 Ҕļ"]sζߙK4ut5e0|6:%Yfr㣷LUi9E?|ܺ#ەSa>J2%,.=bq̋=>j:PPX^l-7<u~ya *3KHx340031Qp
qKc[bcKϯ2ͪm(d%甦2ě*ĕ/G]Zr!Ĕ̤Ҕļ"l< YqIx]=X 3dx340031QH/MO,ΎO-*/OOI`lט+hw^Y}?ߚnђ+71/1=E{jf]ɋ#iE/lV B)x340031Qp
qKcl?K Bf^rNiJ*p}frN4+E
Sr2R2rSJRԪ4N:?=tB_*,Ȭx340031QψO+,M+`X9iM$ _x340031Qp
qKcخwd2I&@Spˍ׶^jΎ5UwS>%nWyV^İ *x340031QH-*/OOI`جo%xV̿ǃZqBgħefO^E8w󋓚V9b XЭxM 40000 i18n IC'\Vr\c2Mu40000 resource_management B$`t]VHF<WxL 40000 rawfile $MmDS .[Yh40000 resourcemanager P΂L3²#I	xy 100644 raw_dir.h ]]"m0jĿnat100644 raw_file.h x>k6+100644 raw_file_manager.h `rJޫKje,V;73OxQ 100644 ohresmgr.h 'D WZw#0100644 resmgr_common.h <YKPJ'a)"x31 Ăx,jMٯ\\<ܶd I
x S40000 hiappevent -*wYO~a& N40000 hicollie GO$oI^d{C40000 hidebug nO	!{| 40000 hilog 
kQrx;fO40000 hitrace }%UD\mU%(@xAhNd Dx340031Qp
qKcPWg|]<51 ̼ҔT/J;^ћrI.0XPZWUǠ\l{UV!+g:9xn]z 1ȥx% 40000 hiappevent Pʏ,g~g^"x O100644 hiappevent.h L|66*`-P":100644 hiappevent_cfg.h WS@Yp|W::%100644 hiappevent_event.h .^)Vqƿ	.j100644 hiappevent_param.h Qם}e&׻)¼iq<Hx340031Qp
qKcjk׮ܦ.]ff PK)MIep̹V\sD,cRbJNfRFfr~NNf^^J^Vq~í3gj>YetcCk 1~x31 T%S>^ν}?Lmg K#x340031QLL`0^!=,u? x" 40000 hidebug #0q	@d#<xO 100644 hidebug.h ^BC100644 hidebug_type.h 6W+YCq]ely}x340031Qp
qKcp_S8Wz>v|`b 
y9)˩/iʫ0`߫
Sr222KSRvuko^^Kbv  '.ۢx31 ̒T%N[(㤄{f ^]x340031Q()JLN`SV!O,/[䪽 x340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔT|7juHkm1%'3)?#3$7$#?%/%[/8?)mY[+9*8yW  =0X!x340031Q+(-M-OO,)ILΈ/(+ON,`??r]sYՕg15'4
\-zGqI6>Gi,-*/KˇP_Vj!)goE'+*aDv[&}	Xe%'&tk(nzȇuR},skEwIjEI|bY~f

/AOfi0{;^|َIZKgjJf	0P|^(P5itv{#6ȭwxmO- S߅x340031QK,,KO,MON,()-J-`:PS~s+?L&z
 x340031Qp
qKcQgVcu0LK,,KMML/KKK*ch˼eEr $x31 TUԣC\oo9ue"BnjJfb|IeAj^eY	tЉ0Щn*K,,KO,M̏OHK͉I/-jXsnkbS]5g96ee)@KXOp`ګS6wh˒JR=]uM{pBO=î8>3/-cb!gh'W{a,#(mSZuWj>ٰЁy,-(7QN-{Zt&T+Eݽinrnjn~Q%P	۵+g|) ̅-x340031Qp
qKclLSQ=	FSC̤Ē̲ԔTl<Y}sYe<FV $Lx340031Qp
qKc|Y}^|!jr2
r+SRDmn m=eO|{ "x340031Qp
qKcuX+4_nhQXYXV\XPRZUǰ8䌓S/x2;07 Ke(x 40000 kits <hHNjNx 40000 c 3;;abIqv/l^yH	xp 100644 BUILD.gn T =BE|Zr740000 input <L$_͟z 'Ɋ"100644 ohinput.ndk.json J>43{}ꈦ3bv`D)dx| 100644 BUILD.gn XAh(Zdࡏ40000 include PbNG awTۼ/=100644 libnet_connection.ndk.json ZtȯP(0x340031Qp
qKc9Es;~/21 ̼ҔT?݋3V]M{1\yC)9Iy%9zYy~H{֪E /x340031QK-/.ΉO`X\E;{=pC4e%@疿^JzSdKM v#+x31 ̼ԢԂ"\Zd<3%P}5ҼԒxr9zևgٹJSSK:E.N 1x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	5kkO<|X1t'D0aHL/G]]N_^ p0Ԩx340031QHJLN//K/(ON-.MKLO-`2k7ƽU ex340031Qp
qKc{P!QBEǯ;&@̠^HfxkoBd&de1*w(4P|֔ֿf ]*=x340031Q(/`0p{"tlM͵=v&D @x340075Up
qKcpRS/<yuȶ6 2~E>M%]<6X\ZUblyS7\"H V|-ux340075UH,.N-O,`x1^BoQ{0?i @bY噖H*  sȦx31 ԲT%_nF&*Wf&`EũyEg,֦0L?[Cf /x31 ̼Y5}#p9C^&I ߡx31 oXNca{YQT* 	x340031Qp
qKcغZC_L~n41 ̼ҔT}?/-u|rtSvgvBL,/K`X*W~G'^?UZUpʤ){21HإѢ +?x340031QHI-LNK``Ҟ5Ozj̘L(89 >/%Ҳ)t*g8? !	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYy7p{pc[\燳41 ĔԢb2Y?{}W,{B7A:-x31 ҼT0ho x340031Qtvve!ۨoWֿb
01 ̒bUf}<m.mВqx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*&k7&	
Wᡞ8(rW<=xE4Ǻ e+	x340031QH,(LN,ϋ/I,JO-/NɎ/K-*
e0,ɬ]|}ߠgћZX^{ϧk&^1Pi%9ŉ@o`k鮞yoh yFAux340031Qp
qKc0z'^*0jDRb
~Bd&%de1=j.xn.oW|S :x" 40000 webview ~DihqS߾ކHx% 40000 interfaces t#Ԛ(8}O*ġx! 40000 native -ِD!`H.W _x31 Ҕļ"S/9v`|'ΆzfO A&x31 Ăx_z}gIoPѹr Mx31 Ē̲̼tW{wڕ^7iYj;=s N	x31 Լ̼T'4;6auU'Ϛd$V&%1hi,s+'CT%d2q[M%BSM.K/bֱE/@yɒOf>@x31 Ē̲T.u
z.PǠ	 Px340031QK,LO,ϋ//-I-`xebγ[9?aY\F @x340031QOIO,))/.,H-`֫0l۶ֲ;3IujYj^	ByضM!ʌW~yvjr֨xqUtnK) 5trxeeP)"r}mDeke/n  
bx340031QHOI,/.M/,.I*c(]曀Ĝi;NXd &9vx340031QuqqqKMa
ާL?Z%>kU}UHKK*5MztAdbϧ??\3x-l֑1Kc/;ސ zKx31 Ĥ̜̒TOQS6o&^oneEy%ӏ][in]j
 1!@x31 ԒrYJOYNYku	XMyfZ&CKָj?[|x:>d K`x31 T{7vlbu{{>ds2SJ^?57_)}h vx31 Ĥ̜̒ҼTgF?8ԝ;L<7 I0ͨx31 ̜b+g-(0
29K&ԫx340031Qp
qKcpH"ç5p7LJI/(ON-.K*cK)8:?һC5%dƣj`x45b\ 4Ax340031Qp
qKc~!0'3>լt6;bQra5F|
 _%x31 \]r=xO N	x31 Լ̼Tj5lv9?VC	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& D;Cx31 Ē̲TB,W2W=5x~ r	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~CݠÆkg|o+{jK2RA3t^3ǴͯuӶUK Yj=x31 Ҽlg!kMxe?`̡x31 ҼT*	bsNNݑ5ξb ;
x340031Qp
qKca5񻛷4?/< 2sJSR.Ss~1HASr2JRrRRVq{g|/k /^x31 Ғ̜br߾͜rV~%"\x31 ̤ҢĤ\C3ަFJ̽f~ 8s*x340031Qp
qKciPVy_Y׆Hib 
y9)Jn{y)y]?BLL*H,.IMO,JK*chySi+mƿ 0x340031Qψ/H,.IMO,J`h/AAg6iψ6Ģ4>(>9?%wg/>Ƭ~S n(x340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%A#ZIw:/'%bJNfRAQjZjQj^rj^^J^Vq~FTɏr6_	)/s 1;x340031Qp
qKca7ۑ%xwI&@Srڏ$&\6e(3XY_UL`tMk^N^ ܤ-5x340031Qp
qKcXcr8$b[L@!3/94%;k5z4WRnƃSr2JSrRʿ6˴\gዏSn  .Mx340031Q(MM`(É =7~hzW">(>9?%t>tݽ^̽JsSK?\1Um	WVTܕ+xřs/霝)1_dLAI
Pђiz{='}
 r{Ifx31 Բļ"ݸd~Q<e	{= E>x340031Qp
qKc8*oz}լwr%_NZnb 
y9)`C2kť^+)Sr2RR2SsSR&BGAr\ /ix340031QψOI-LNMKLO-`LƣRPZfuPZT
ԧT 7yYALf '*%x31 ԊԢĜԲļ"REe7d(ɶ:vU@g~* ɧE
x340031Qp
qKc%đWQ۷L1L*-NK*cZc#QX,7=SU
TX(GzƟY><%Anh
K*RJ$	M}U9wQ'|  m>x340031QH/MO,ΎO-*/OOI`X[_R"e]!DK~F<ļ"3iY^K]s *gx31 ҢļԼbx":ș|, xLex31 ̜TX$CKn?eߘ@T%&%1/ş.6 #x340031Q(J-M/`K^argח7x!DDM|r~nn~Pi}usUG z#$x31 ĂxgM>ݝ$+JFc&#m x340031Qp
qKcvscgծʂ0C$w2l<tW`K<3ʿsX B ϯ
x340031Qp
qKcoϲJ7Z}5ݱ{w.V`7I*MKK-O`(]gifKWMUXYѤUǰs_'.w$~ڷ9OY\jBՑÒoeOz9 Fox340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cܽ6tSӓAh`XtBf])ޮWؓ ؆0x340031Qp
qKcPWg|]<51 ̼ҔTnXmg,XL~RwI!Ĕ̤ĂԲԼl<bۻb|Y>ys /Yx31 ĂԲԼ-vo_ʖ Рx340031QL,(H-K+`s\2Aq	ƣVONK}.95!J&+U1Ln>,o^Cgw8׀ (1hv=
:|{Į=% ~D:x31 T9E"T[,]D(- бզx340031QLL`|f_Mt<ﰾa8
 rx340031Qp
qKc|;#7E&@SʰkxV-K.Zbe1%'3)#3%54]//%[/8?aMPĒ7Ŭ5\'%( c,cx31 ̔ԤtriΊ#%;?.tak ˩x340031QLIM*M`PQ.?9e߳ta^#b( \YCǜR{j)h  miԥx340031Qp
qKcp_S8Wz>v|`b 
y9)E=wO:r,Mg&o!Ĕ̤̒Tl<]'?Kڼ͇֞ݾ y/x31 ̒Tmϼڤ>YɰѢ2. Wx340031Q()JLN`jWnqgb ֏x340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔTew(]nul+/e!d&gd䦖dde1TOQ:!'H+pږZ-5  3x340031QK,,KO,MON,()-J-`pdR춲}rwLު x340031QK,,KO,M/JKI-J-`}Y3}x^p[za# sTx340031Qp
qKchx(W!-jW_]qMu ss
?f׮gvHEGsS!d&%dƧdeuqz=&)2r{PP幩)٩ũřyz\ҏ?>KHo͍COeqIj.Po2.zKKc}V[0x340031QK,,KO)ʍO`3ћ>xwծYSjsv-JLa:4k1CgW $x340031Qp
qKcx!ڸk˿k&m{݃59Iy%e)Ezy)zYy<
?Z:o٩RW (Ex340031Qp
qKc|Y}^|!jr2
r+SR_b2Ttb-q źx340031Qp
qKcYq=Z)lOt!jr2ˊRRRRgq+u@YQ ܫx340031Qp
qKcq%}̄=il<q/C̤ԢĲ̼ll<.5"s}C,b2x `$-x31 ̒bwuVONuăY x31 d뫫`y[w^ :x340031Qp
qKc~m~X؁p&Og^6kb 
y%ܦ'56(X_)|7AC`%zy)zYyW̓/Ha&g2s 1)x340031QψO,/,H`IDׂs_23$>71/1=\'ZOU٩) c6;v㭤9EOdF4x31 Ԓļ"sNz߬ޙ0tFM(Qu<?)3@((ILfq֞^۟[q& 0nx340031Qp
qKc ḓ>FTc Bf^rNiJ*4?3n]U얪 bJNfR^jI|r~^^jrIf~^^J^Vq~[-1a}9xxC nz.x340031QK-OKM.`a;^T8yCljK*RJZT'Zy;cY6 #^x31 Ԓ<C$.^4-G]wԤNѬKq$t9S $kx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	oi+ݓ>r|!҅Cvv,Xxۢ,ksY߃2>N K3x340031Qp
qKcXcpfnǍ.t,61 dސs[x߾$ػO+?-D//%[/8?Oq7KCrnnsm.㤹 )Jx340031Qp
qKc{P!QBEǯ;&@Pңkф?eլ\!s2
Rdֻ	
gzh>kJ_3 )%x340031Q(/`f<MK_ɥY`= |x340031Qp
qKcp]=I"Yg)H PK)MIeE{ݛ{O,m{]K!d&efde1rrFS禤`s,? -x31 ԲT;לFhλJqT	XQqj^q~gg˜<Q3E*M,gbx31 ̤Ē" _&խUشWpU `1x340031Qp
qKcxnϛy,@	߂7E|	&@S!∿m^jgV>!Ĕ̤̤Ē"l<];5'_nqq{2 B{/*x340031Q(L*J,/`xxO\Hɜ;rdf/,H*yN==dxg?  %
x340031Qp
qKc0y]P4"!/'M4L*N+/K*cX|ŏBgw+LUU.rtK-N^Ѿ@te%@GmDU?Mɭs/E Ax31 ԜҜĢĒD'.oxXğԵ}?-7/J/N-*LNe|gϜMWla 8"֩x340075Up
qKcԠTFғsOMkJ"&@Sڋ'ۊ[5֊!d&dU%de1lhphieZE p.x340075U(II-ϫ/JL`sg}UۿߚeS]!V%@EwVRC&{Kus (Ũ	x340031Qp
qKc8zWJff.d,ǣIBx:2=sK|,*̤Rl<'D׼ה:Sz##&@ TZT̠&9Fr\X+ 4Ԣx31 ҼTvk}5w-z}' åx340031Qtvve!ۨoWֿb
01 ̒btןBr+mO޻Bc7 x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*CWgōAui2^sr8(amKشn_v  .	x340031Q(ˎ/I,I/`9:AK1!TaiNvbPMdVmKdWOZ{EM|r~Q*PܺƥOV;+pQ
3
.݌?+8ϴe =YxQ 40000 ability_base }hN&!;d40000 ability_runtime ])"}4Bmk.X^x! 40000 native cb +(@˨گ\kӿ~Kx 100644 BUILD.gn CC+M`.W100644 libwm.ndk.json jh
#dkI~,;7100644 oh_window.h ؝ڱ!ǂR^II\R100644 oh_window_comm.h 30)q=V#L100644 oh_window_event_filter.h d{\i"D><100644 oh_window_pip.h rA8K1FsVf*bx+ 40000 bundle_framework Ckl	.}_(ICT_x! 40000 bundle 0'B/G|/qkjxt 100644 BUILD.gn _|V3)#we40000 include QH3k>@fl6"100644 libbundle.ndk.json q	ډUF[4ڻ.A	x d100644 ability_resource_info.h q|lץ=o>/100644 bundle_manager_common.h 0X-1
zLֺVB100644 native_interface_bundle.h O{'Vv5gAx&m>Bx2 40000 external_device_manager H'";ƈ<޵;Ǡx O100644 BUILD.gn ݩʟmGcYHISno100644 libusb_serial.ndk.json jb\b1!x1|7100644 usb_serial_api.h qC5 *sh5k100644 usb_serial_types.h }1ثL-]gjK
Fťx% 40000 graphic_2d 6)}8KFx100644 BUILD.gn )5qu΂C40000 audio_capturer CJ-ھo!躥40000 audio_manager &I8;z40000 audio_renderer ^fiWkA}	40000 audio_suite_engine %JcKEt40000 common 4Ԇ6x90yT^H100644 ohaudio.ndk.json HCsE;Z/9͒BrAxB100644 image_common.h FNp)&i100644 image_native.h zq<100644 image_packer_native.h .:(T2YX?100644 image_receiver_native.h ؠnQÖ%nM100644 image_source_native.h eCf՞m*+100644 picture_native.h P坏[=Uho3100644 pixelmap_native.h zhpT0Ѯ]x340031Qp
qKc|Y}^|!jr2
r+SRZ,xzԯeE˗L. !ex340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*ý6J,\ɋt.db̂^daw6 ,}x31 Ԥr6Kˢ+]m񙯎ھx31 ̼Ԣboc	ag?v Rx31 Ē̲TەChjm
 x& 40000 commonevent hx$?72|x% 40000 graphic_2d QؒW	HnB!;ux) 40000 native_drawing *94*-IHvϯ\K3Fx340031Qp
qKc1e=;rfb 
)ɉ%EEfsg7iNC[#dy@u.o-}x&Y?pKԼT/2óH;)>c̒Լ̼TgܹW"]RfL*<׺S[ӗի55?lb{?<H6ݺDu9 0!n	x31 Լ̼T஌{uUr
0ₜļ"Y_><m%SqndʼĂLo<=vDBh> y)psN']Yu8SÊu_ G@x31 Ē̲T;nu8 Rx340031Qp
qKckX>&'3<W//%[/8?%+KYF4%{V:AK֬ӡ*33R2Wlи;ϝ,>9?7Ջk6};?2wcM-K+O)I-Zl>G[U+`|d.GUSY Tz=Y`e\ fx6 100644 c_file_kit_sub_system.json *&90#<h1hx% 40000 graphic_2d o׶}3r_~WLۯx 40000 kits ZԢٶwڊ_x 40000 c V[J)<Sݷsd	x31 Ԓļ")?{"Q#&hS+JkR=h34?^Uo\aqqCgd_[}Ú2lUܑ9%|SW! '$;9x| 100644 BUILD.gn XAh(Zdࡏ40000 include [U:Rc9Z100644 libnet_connection.ndk.json ZtȯP(V1x] 100644 net_connection.h K7	X_h>100644 net_connection_type.h XUE&ڨBI`DiY5m#x31 ԒԒ" Nʭ5V[^$ $rx31 ₜļ":/V(`W%e߾N<3/%<z%g^uH  x340031Qψ/K/`4V}CLE)OmYa`l8!+ :u:ԲԼ̜"
T}?W|:=COAfP5ջ3VlɋNܻl D}x+ 40000 player_framework 3aQܩ0ULpTcx31 Ē̲TNSk}M- ǎx31 Ăx)Y՜v|qh{	A E'x31 Ē̲TǗO/'|AW-Cmo x31 Ē̲TK=jvÍjSڷ(= Tx340031QHOI,/.M/,.I*coG.섊2f2NY dɦx31 ̼ԢԂ"sL`b̵<&`y% nmwg+?ʔ@()OM*ON-a)_bFs<' 33rx31 Լ̼Tۧ3%leewMR2r+sS<Xzvo]-K}:E{̼rB
0n>i" U.dnxe{8TiWR;]DVzЄq	$ΜsΜ3KfVVݬE(tYJvZ*QjPmϞ}|+~E2AQlf8_l0H_Uv-Tokc ϶u޺"FŀF)>beBG7YOsz?fJ1cԾ=~r6'rh^R1GUzsE.M樄$f|/I&5v.GļJt`40RhrOVeaI[u>;@9j1\{~3a3͡fQ9)P$E8JZ7VɿUoK,0ށQGoThYÖosZq%rVjnYOOOSL4lf~zIN$EcJcRAӡW
"I
**ϒ-W^\I%D
xU#)A0_O+Ӣ̜֗wҾ&[;zs{xAsԐ,MٲfYeW0v?fS
vɞ={>fM42o;c{EҀ7:[g_b(`0
J.	'g]v"7m?ÝP`H˸kCӝVsRQ$K DҠV}=ƴS
^3cj˵d1YĐ$NF`wڈHᣟ" Jk#BOr&
1)Qj,Du+׸osf(L2(hQ iܨ)oi{s|b[rB 
r~sHӃVC!K% &a<\i;R~B6}yqy|LDcN@	H7>zWe&pPRo9
s
R11q)	vgљŜk4VP`J[$A_9rʷ>3dI<vu<-}'&kRhgC~vs:V`~@PeVTGCIvu)B QDPɴ=r=]`Ѿk5)vZgp;(GRu՚`B-'{|R[GmsD14I7tDq{Y9)D6b%)!4HI~eIҋǿi9A4RڇWG[;aFO^qFa>`j7l\gjW.7~"MjСi2~s#hfʛ^*OɅݥ*Fޗ={`PUIB&F>k嚞7>{t1
RjzAaˠaΥSqT~~[IAaRoAfrW$ʮNIx31 Ĥ̜̒TOQS6o&^oneEy%.$.-i;m9Io "x31 Ԓ{%#؊dv:}}r_̴LЗqߗ~L5u| ~x31 Ĥ̜̒ҼT6-_ʾ\w/Պ/ R6x31 ̜bs}L|}Of\\,( <Ox340031Qp
qKc~!0'3>լt6;bQ3pޣw9zmt{ fޯx31 \@ewV؞{⫶ y/ 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez>)5U%Oʽ8$%@umخq)/dmPu9I`Rl;F߷weO O=,	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~CSO!$1$jK2RA36>/<<m)˙ M?:x340031Qp
qKciPVy_Y׆Hib 
y9)Vze+yJ	lRZgUC)9I%IE)zy)zYy-o"Cr3xTB i/̯x340031Qψ/H,.IMO,J`:`Yv='fTt1Ģ4>(>9?%wg/>Ƭ~S H(Ex340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%aYVV֡S?zl1%'3(5-(5/9X//%[/8?a-8%O X2x340031Qψ/(JMK-JKN-``cblԏ%F3&ٓoMm|jQQ|r~J*P%qrEV~˘(͹b5d\4nGrR6>R®,1d	[ݜbW3GFΣ, Qx340031Qp
qKca7ۑ%xwI&@S0mMHrϫC+[7,EC)9Iy%eE)Izy)zYy>v>`v᫙þ t~1x340031Qp
qKcXcr8$b[L@!3/94%|ce$IxBLL*MMK*c`έ:ᚒNkS٪mU 'x340031Q(MM`R"_˖NSEE)@oGLf5DVZTvYy?̯MڵlLMb7H?.sz_mSPThvd&`+^	} F*D1x31 Բļ" E|SJ\vk +x340031Qp
qKc8*oz}լwr%_NZnb 
y9)+׼{_$]c1%'3)%,39571/1=H//%[/8?a{iKi+.x- 2x340031QψOI-LNMKLO-`o9EGRmꑢoU!EE)@}Jr?ޘδoF( /(x31 ԊԢĜԲļ"&GvWz-w' 
x31 TNW7|wMtFf
-g	OrX_Ԣ̂Ԣ&{kל9ufcsIΛXR%~N-vi+W, XF
x340031Qp
qKc0仱;G{ެm~4Bd&'de1~x±[ߑ(}w)`*OIɎO,`
.V4\ļs7mDSXRYZTÍĆc~;~\~ 1?x340031Qp
qKc[bcKϯ2ͪm(d%甦2|{p/_<ȭcqNĪC)9I9))yEzy)zYyA^	3&{N /x31 LC<0ƶ?&rӾS㫦&`ҢļԼbx":ș|, jx340031Qp
qKczI
tӫMsX 2sJSR//kuKaA!Ĕ̤Ē̲LC<l<忿Z}:h6#m<U <l.x340031QH-*/JOI`D:3R94J	ټjQVZR+)%mwGȧu٤ Wx340031Qp
qKcvscgծʂ0C$w2l<!ɋgfmt^Yq? ]
x31 ĂԲԼsjZ<[^t&PE99
R\KsD/fn^/$%54!GhW%kO?"'?kaK}WEBE?ɗ%&2Ԫ~u=pAc BA1x340031Qp
qKcPWg|]<51 ̼ҔTe;(4,e|Gp)[!Ĕ̤ĂԲԼl<bۻb|Y>ys y=.x31 ĂԲԼ+&d]o x340031Qp
qKc|;#7E&@S8U'?'ٺje,C)9I)Izy)zYy7̖8G|%'
n '2΢x31 ̔ԤtMs\vs6: ԰x340031QLIM*M`t=df
ͬ3NJ?6DQ_RY
TyͿy+>&"*_8`2 mBx340031QK,,KO,MON,()-J-`d~ju^~ Sx340031QK,,KO,M/JKI-J-`rF3
߳aU,_ 'Ԥx340031Qp
qKc/xsj	El}!DMNfR~FbYqjqqf~^^J^Vq~Ü)"s$r?~r}Ē̲Ĳ"t=irn5妖$$$󰞟={g|~
Mr+KKRz(v/sy)^¦]OaijijfIj.PLϻ엶Vԗ<tǏRYnpPCu|Rb1Agt({`ߒ𗕧
YrҒZT_Tۓ-ƍaVnUy??i3Բ̼|rel<f{+j  ±x31 ̒b3u-P̍ `ix31 d./6I¥osf>  x340031Qp
qKcQw*#jZs P+(-ahgs7.dK:F<m1#?D//%[/8?aƤf$ISSmԹ )x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	Õ\nrAAλ:|!1uKtb;:b{n p0x340031Qp
qKcXcpfnǍ.t,61 dmvGlhs{Bde1p>/fiHmse4 %+x31 Ԣļ"˃{ocYg ;x340031Qp
qKccI+>~]7卉(d%甦2^-e϶׽O~^m1%'3)9W//%[/8?᠙]lQBFeCgEe ;,.x340031QH΍K,,KO,`׹7H[!ҒʂTZoZ'y|N;{;S߶>
 ;$x31 Ԥrweb/ȝj1 Gx31 ̼ԢbXY[uZ^Z_ߥa6}!ן9x31 Ē̲T&.ygDmv{  |x31 Ē̲Tu'N=q;VybIm إ*x340031QHOI,/.M/,.I*cX09͈hwYG*Y;\ 	x31 Լ̼TN;Nr/=Nₜļ"Y_><m%SqndʼĂLo<=vDBh> y)psVL`+><igެ >Ҧx340031QHOI,/.M/,.I*cR9;{%oO]ު  	x31 Ē̲T&.C왟ߕg՝3 \x340031QK,,K/,HO`v$=mKYU9 Jx[ŸqȤJL3C(=%robd  kx340031QHOI,/.M/,.I*c/1u?ieMݲk+|  x340031Qp
qKcXcr8$b[L@!3/94%!>]q;~<yb!Ĕ̤Ҕ4l<IL[o
o"M  ,Rx340031Qp
qKc0]٨w!DMNfR^bIfYj|njJfb|r~JjrRbq^^J^Vq~Ck;x%K &x! 40000 native MhaX#Å	x31 Լ̼TN;Nr/=Nₜļ"Y_><m%SqndʼĂLo<=vDBh> y)ps2Cu:7(/YP7 *>	x31 Լ̼TzRKYY~2	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9!:o[,dv A>	x31 Լ̼T#*oPijy!(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜc-zK|2; >x31 Ē̲T3uYv7 x340031QHOI,/.M/,.I*cxD!cRs>g/V x31 Լ̼Trxyr,^蚀d$V&%1xyBZ()uy)pc9fcbad:!|D B+.ޡx31 Ē̲ToY18T: ?	x31 Լ̼Th_W/ϾL2/(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜc-zK|2; y?Px31 Ē̲T#4*安{ܼP 	x31 Լ̼T^7LԢOq=W۽ѫb	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9!:o[,dv @>Tx31 Ē̲Tӡ1Uۜ:4/t
 b0x340031QHOI,/.M/,.I*cxMYL38xk (	x31 Լ̼TE'm|Zˋ*[d$V&%1hi,s+'CT%d2q[M%BSM.K/bֱE/@yɒOfK@x31 Ē̲T?.U&Z x%	x31 Լ̼T7sHvqJ]cVgVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%nNf|[%K> =Cx31 Ē̲T/Twnϥv h	x31 Լ̼TN77]R%y*ₜļ"Y_><m%SqndʼĂLo<=vDBh> y)psN']Yu8SÊu_ B?jx31 Ē̲TO;-P6x{gvQ x340031Qp
qKc9Es;~/21 ̼ҔTIn1+<?><oe!d&奖'e1-WXN#[]O /x340031QK-/.ΉO`.XrJ]\=9MY|IeA*P寗{`t=R N"Ax31 ̼ԢԂ"\Zd<3%P}5ҼԒxrgǶl;qݳeew &'g0uf]re%A38ם 22	x31 Լ̼TעjMKo0Ho:(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜc-zK|2; =x31 Ē̲Tr[7!} /	x31 Լ̼TzimX3ۅu&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n )@x31 Ē̲TO{/5]<e x340031QHOI,/.M/,.I*c8vsrHCϿsNp 8x31 Ē̲T`k 돗I_rᗆ춗 ~Ex340031QHOI,/.M/,.I*cs?Ϩa|ɱ^ S|x31 Լ̼Tߵ,>3d[߲aBG/d$V&%1xyBZ()uy)pc9fcbad:!|D C3/ 	x31 Լ̼T_,+qFN1g<U&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n }>Rx31 Ē̲T%n
XUFiOf6] 
x340031QHOI,/.M/,.I*cx|&[_?hs&ru 5!	x31 Լ̼TKn^Y}wbₜļ"Y_><m%SqndʼĂLo<=vDBh> y)ps2Cu:7(/YP7 ?\	x31 Լ̼Te,||dNpYL&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n 0=áx31 Ē̲TI3dkv+ x31 Լ̼TS[|f.w{ݹ'H6+J,.IMKLO-b8bٽv,QR!*3R
9rRǲ+&uB _.zx31 Ē̲TzW3{M[ l	x31 Լ̼T=1FrM񈈴K3+J,.IMKLO-bОű&/Y2VNK,dX?cK$;>	"]_7'3>Xc^pc%u <x31 Ē̲TBUῸ㸝ـ x340031QHOI,/.M/,.I*c*\}.{%XѴE x31 Լ̼Twn;5
y׽3+J,.IMKLO-b8bٽv,QR!*3R
9rRǲ+&uB q/x31 Ē̲T#^On`Ypx7wY+ ~	x31 Լ̼T%<]q,)G<XMR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHgɌ1qxآXd'C ?x31 Ē̲TV)}C?| Aبx31 Լ̼TA|(}=N.ϩMR2r+sS<Xzvo]-K}:E{̼rB
0n>i" '!.x31 Ē̲T1X8vT5- tp	x31 Լ̼T-J졍rϚd$V&%1hi,s+'CT%d2q[M%BSM.K/bֱE/@yɒOf?px31 Ē̲TK_?mSSkh5 tx31 Լ̼TX~_p	XQJfqANbe|nb^bzjY+_meo_hQY_W9?c=]!F6ѭ'M `r,x31 Ē̲TǮx?]
$i>w  [x31 Լ̼TE%"{m;fY9/M&`E)9yEgu^P|=%Jʾ}=Deyf^J~9\!XYjXvXDN4 -x31 Ē̲T x/_[vp  E	x31 Լ̼Tώ(oyk-pnₜļ"Y_><m%SqndʼĂLo<=vDBh> y)ps2Cu:7(/YP7 Z9>x31 Ē̲T^ᘙBo/#{ 6e	x31 Լ̼Te[xo0i {^&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n =?x31 Ē̲T	>܉t~>QBö x31 Լ̼Tg[S9]3eVֻ^7d$V&%1xyBZ()uy)pc9fcbad:!|D l/{x31 Ē̲T}K$n+=Qk5W^|b|| {
x340031QK,,KOI`¹gޱ\Tǉ(,, )ݦwur4}}k }Sa|YfqibP=@Ww!veo 2'5%(3/t&3~i [ICx31 Լ̼T+97WJvI}Ҕx	XQJfqANbe|nb^bzjY+_meo_hQY_W9?c=]!F6ѭ'M -`x31 Ē̲T*Vwj;,e]l\ Kq	x31 Լ̼TMמIyke{[sa)&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n V??x31 Ē̲T$Ojسnbo2 	x31 Լ̼TVKe2ZiqIMR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHgɌ1qxآXd'C _>ѡx31 Ē̲T鋿g0Y:>)k>c  x31 Լ̼T[aJyK?n,x?ₜļ":/V(`W%e߾N<3/%s~,,{,B,l['O ,x31 Ē̲TJˬ|>mGJU~ ˬq
x340031QK,,KOI`¹gޱ\Tǉ(,, )ݦwur4}}k }Sa|YfqibP/]gTv:\U_\R_\RTBv~g\|u4NN 2A	x31 Լ̼T{^TFٞVv{Yy(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜc-zK|2; ?x31 Ē̲T]} -գ{},  	x31 Լ̼T=(|I[´vYN_=fVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%nNf|[%K> Ahx31 Ē̲T#k":Imw ?ex31 Լ̼Tmws6{cqnMR2r+sS<Xzvo]-K}:E{̼rB
0n>i" 7#.סx31 Ē̲T%y{g0o[R 	x31 Լ̼TN3:/KKUW.ojVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%nNf|[%K> =x31 Ē̲TW̍q~=7K 6~x31 Լ̼T1{9U.cItjDₜļ":/V(`W%e߾N<3/%s~,,{,B,l['O e-x31 Ē̲T{Yf?)eSITZ  ۨx31 Լ̼To=f%g/d$V&%1xyBZ()uy)pc9fcbad:!|D ,.x31 Ē̲T}NpD0Kj7$ Ƌڧ	x31 Լ̼T|Gj
wV7S	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9!:o[,dv J>x31 Ē̲T?s?
=}l3a ͉x31 Լ̼TV+:.&8PW̖5˷7+J,.IMKLO-b8bٽv,QR!*3R
9rRǲ+&uB 	.jx31 Ē̲Te?f^q߇e-_˒ ؼ	x31 Լ̼T}y:InE>l'fVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%nNf|[%K> j?<ܡx31 Ē̲TMF{W]~sƟIW1ϟ ׍x340031QHOI,/.M/,.I*cx"IEB 	x31 Լ̼TGKeqVpq>mVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%n6.pgjXѺNk k=x31 Ē̲TRUOtz.hrboS: :x340031QOIO,))O.-.`Ziv-USU  poަx340031QHOI,/.M/,.I*ck!x~ˉ?l{ 
1ݧ	x31 Լ̼Tٗq熪ö?Nd$V&%1hi,s+'CT%d2q[M%BSM.K/bֱE/@yɒOf?̡x31 Ē̲TczN|ݹ?ϩ2{мQ< Qx340031QHOI,/.M/,.I*ci;*l)5}2ⵎJ ?	x31 Լ̼Ti⯫;
39۝(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜc-zK|2;  >
	x31 Լ̼TGfg5z(/v_Z/	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9.G,PܺIaE:>x31 Ē̲T:߬>Ny6S PȨx340031Qp
qKcI~n_k^>;I 2sJSR<[۝??aZͱUSr23sRRrK[[ywf b/ܨx340031QψO,J,K`p\!³wm?7]OݣrO-*JOo]G'NW3 "بx31 Լ̼TX~_p	XQJfqANbe|nb^bzjY+_meo_hQY_Wh}F=ɳD/[ںIO$ {8.	x31 Լ̼T⠖$Gw:|:||ₜļ"Y_><m%SqndʼĂLo<=vDBh> y)psN']Yu8SÊu_ @աx31 Ē̲TZ%1jԶ2q-J 
x31 ĂԲԼgۥ-73b@%d2Ju!GR[͢oM'YvÔ&3LXzjwvLms
0OgZRߕhy`QA}i-Oa%Eɩ/_~i/ jFx340031Qp
qKcPWg|]<51 ̼ҔTrTDt޿lzVC)9Iey%zy)zYy8	L}{GQA  /x31 ĂԲԼҠa'2ݹjfȾ	 g	x31 Լ̼TgnY|)n]5?a	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9!:o[,dv AAx31 Ē̲TFg''~r5Du! .x340031QHOI,/.M/,.I*cؘvȪ˥!Tu?G I	x31 Լ̼T?#޾pS'e=&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RdƇ8uln,P^١n ?x31 Ē̲T10'*hFm[ 
	x31 Լ̼TO{6: {++Nn6+J,.IMKLO-bОű&/Y2VNK,dX?cK$;>	"]_7'3>Xc^pc%u @dx31 Ē̲T.uzYZk6=Ϟ  	x31 Լ̼T;+ˣW74Lyky٫(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜ	~#l(n]$԰u A?fx31 Ē̲TMLG{d|l^ x340031QHOI,/.M/,.I*cHP<]Lo 	x31 Լ̼T$ϖw;ܳbbEMR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHgɌ1qxآXd'C @x340031QK,,KO,MON,()-J-`hraB&rO/ (x340031QK,,KO,MON,()-J-`vٲL=>r? ѫ	x31 Լ̼T!Uݯ,?6^fc6s	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9.G,PܺIaE:P=x31 Ē̲T919KU<X5Cw_q, mxQ 40000 ability_base  XS40000 ability_runtime ])"}4Bmk.X dx340031Qp
qKc|Y}^|!jr2
r+SRX/8yB܁N& E ɢx340031QK,,KO,MON,()-J-`?L⢩3/<}PV5!  .	x31 Լ̼TG]ϑfmYej5+J,.IMKLO-bОű&/Y2VNK,dX?cK$;>	"]_77igO./=8Օ_`"B NAx31 ₜļ":/V(`W%e߾N<3/%P[dٟU,괿3q.+r > c	x31 Լ̼T+;~ʼZ;.>mVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%n6.pgjXѺNk BΡx31 Ē̲T?[Y0y+R x31 Լ̼T8W[V}Ojz?Փ҃MR2r+sS<Xzvo]-K}:E{̼rB39gL&zM*W|"p1Lx31 Ē̲Ts/fj_dhp 	x31 Լ̼TN77]R%y*ₜļ"Y_><m%SqndʼĂLo<=vDBh> y)ps|]/|:Rf}G$/]\ Iq@\Hx6 95JD?3?	q/^X~MvkXn,sW8,Ix340031QK,,KO,MON,()-J-`8}Ύi{H=Ԭ ݤԢx340031QK,,KO,MON,()-J-`(iVwm81})JF x340031QK,,KO,MON,()-J-`^7ƿOw%s ύpx340031QK,,KO,MON,()-J-`xx)Jb]ޝ#֋^q 	x31 Լ̼T9פ\t7̠g3+y'Κd$V&%1hi,s+'CT%d2q[M%BSM.K/s:rŭęVS @x31 Ē̲TǅnSwlQ(]9FfX x31 Ăx;ь_
oVud bAx31 Ҕd?*w3l_'VfՁ &HjW~_?G:/LYJ#K̓3S=5S{Ü(bd̼|V6N=tឰ	H]P7f$$V旖e0L1]aL\i3>%5W㈇ҶC{aj *c}7띘,]0*^0Eɩ>_;jZR:1I)uv	%%2uۥoHіcqWBXYNbAbRfNfI%ld<=n3&2}YEVxApKʄ/򕼌n!qFh$5螟Snױ f5Ć	{w7J+~Ct2SR-utӴ=7Za#хX7s[}/JqFǸV'fLK*o󝌥-(o8?})cUԾ٣yb۳,bq'b>aߜgύ'ߕ](ֽU1,BIƾB_.e!$-=ϣk<5c3l֗a<8h.UxX>7]&On a>	x31 Լ̼T]Z>=>oj&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RNa@q'q @x31 Ē̲T|WO9!_}{ /	x31 Լ̼TG.q5{ͷdd$V&%1hi,s+'CT%d2q[M%BSM.K/s:rŭęVS tAx31 Ē̲TbaOW,) >x340031QHOI,/.M/,.I*c9}Jr^g8 ,;	x31 Լ̼T+C6}j;UK&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RNa@q'q @x31 Ē̲T"Ԟߗ>Α}pd? pݯx31 Ҕl^!		,L *SRzګwޛj]aSDߘp3\Iqjqqf~CʙRunvtor`(JZUdeɟƓ^."R\QRn۔]ArU&M"+!D]fnbzj|jZZjr	Üy]'֞^{7p6Uʐ!Z]zm'n*>re:0DenjJ&Љy)% Jak6TtM1Ҝ̤ĢJ@3Rm>T]fJ&gJ-m7^_azUs@$V!)anN(WO{^a(-LI͏/(Oz^z|j^zf^*ە,6OϽsD\| ʨx340031Qp
qKcI~n_k^>;I 2sJSRfZ0ƽUDUmyup!Ĕ̤܂bl<7V^/ ]ٵ> 2Yx340031QψO,J,K`e\5~Ulx:]]|jQQr~
H}
==qڞVgX >#x31 Ăx'ɫ|0I%z*? Kax31 Ăx?];MmVV >x31 Ăx+c2ze? x31 ĂxܼWp)Do 5x31 Ăx].Mwؿ=}t x340031QH)J,KON+K,,I`\uNWW&ugO4hLK,,KiK*cgG~d~;# +x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*K+%voj7K֋"'e0izלg-pFj 0ax31 ĂxTh$=O~˽C/ ox340031QH)J,KON+K,,I`>ոOeS^MSg=cѐXY
֓U0q&/?_vF +	x h40000 ace_engine v2w8,9{SrE40000 display_manager +\Ω40000 napi }ڂt14>ǒ40000 window_manager `NX<!B!j>?ơx! 40000 native  L?y:Xǒnګx% 40000 graphic_2d 4$WM)rP/1`	x31 Լ̼TER;&_eA2!&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RNa@q'q a?x31 Ē̲T_R\lyO ,I	x31 Լ̼TKH;M|-vvd	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9.G,PܺIaE:a?x31 Ē̲T;T=9_RC һ1	x31 Լ̼TW>!x	XQJfqANbe|nb^bzj,/l6yy̒)8r2De^bA&7X"!4dI̼r9.G,PܺIaE:D'x31 Ē̲TM?g"p=he xx
x31 ĂԲԼm7M>͝~DUy].3*JLe#rBEN)IIM*Mgę9`S+
k"ZKS7^"ÿ^y_U ysFΨx340031Qp
qKcPWg|]<51 ̼ҔTP_'|zz!d&ed&de1$0iGU 10x31 ĂԲԼgйȴϼg& 
x31 ĂԲԼV)/R¬[&}eU0G+ՅIm	6	6TgyST0aى35^-:(+s"'?kaK}WEBE?ɗ%&2|;oDӧ* SFx340031Qp
qKcPWg|]<51 ̼ҔT3RZ<=#i-7XPZWUǰ~ۧ}wd?Tq ?1x31 ĂԲԼS>p<w5 :
x31 ĂԲԼU>7KJ	J}%(9?''3aW9l}l:$%54aSgjn[tPW@瀑LEN~:G*Kk
/)JLNev(xO{U'~QW- fC(x340031Qp
qKcPWg|]<51 ̼ҔTe,[,mxR0g"C)9Iey%zy)zYy8	L}{GQA  U.qx31 ĂԲԼќC^Zϧ_cžD  P
x31 ĂԲԼt3$rOɻ>wKnT9"w_.HjKYM:[Ԥt	KONmAyN_F^09\[껲-,:(/)L(19ۡx%2O>WٞE] aDרx340031Qp
qKcPWg|]<51 ̼ҔT;d?3tfSr222
RRJROq`}*o &/x31 ĂԲԼRAmamӾzsw 
x31 ĂԲԼ#}z2dd`hU0G+ՅIm	6	6TgyST0aى35^-:(+s"'?kaK}WEBE?ɗ%&2|;oDӧ* wD&x340031Qp
qKcPWg|]<51 ̼ҔTj{_[6cօ^ߝ/.i1%'3)#3 ,5D//%[/8?a'	Oxܷ8?* q1x31 ĂԲԼY^7|" ox340031QL,(H-K+`Wlޥ9ۺ8.n)'պK9-hN9q;/.T_fQK5=9v^=h,:^* (1z]w}u:fE\]boz
 bCǬ
x31 ĂԲԼ6qyjАU(9?''3aW9l}l:$%54aSgjn[tPW@瀑LEN~:G*Kk
/)JLNev(xO{U'~QW- ǖCx340031Qp
qKcPWg|]<51 ̼ҔT'KƱ0U9VK}C)9Iey%zy)zYy8	L}{GQA  0x31 ĂԲԼW<vhxڱUo%4㋜ ̬
x31 ĂԲԼ8/2'_NqU	TQr~NNf*Tr$%,&tRm7LIJjRi:Ävg'xݶ<#/t-]ُUXٗ&_RP'OʫlOZ 9Dx340031Qp
qKcPWg|]<51 ̼ҔT)..?6 rT.kSr222
RRJROq`}*o 0x31 ĂԲԼcCZ&۹.^ x340031QL,(H-K+`Wlޥ9ۺ8.n)'Ֆn	M`WjWK^ja&4u׾;gXBdĢ\u9~<que) BCC
x31 ĂԲԼ)f,nK}1Uow!&PE99sDR]ȑԖ``Iu0%)Iڝ8Suۢ:`*rwe?ZXTa-tPd_ZS|IQbr*÷CKd8<}+=jJEfx340031Qp
qKcPWg|]<51 ̼ҔTEwe~}+{0C)9Iey%zy)zYy8	L}{GQA  "/ǥx31 ĂԲԼB_y$g<ICy $%
x31 ĂԲԼsRorkaQjU0G+ՅIm	6	6TgyST0aى35^-:(+s"'?kaK}WEBE?ɗ%&2|;oDӧ* Cx340031Qp
qKcPWg|]<51 ̼ҔTț'yy~Yiky!Ĕ̤ĂԲԼl<S&>#s[ ?/x31 ĂԲԼt!) a6
x31 ĂԲԼ1<lisTT#Msr2S}#-f7,oaJRRJ&,=;;qE9}tyT3p-l~<ZȾ0To⍗/?qxW^e{u WDx340031Qp
qKcPWg|]<51 ̼ҔTc<=MeS?dC)9Iey%zy)zYy8	L}{GQA  k0x31 ĂԲԼ~AsV^?絆e{]B]'g- )
x31 ĂԲԼw֨F_5)w__x	TQr~NNf*Tr$%,&tRm7LIJjRi:Ävg'xݶ<#/t-]ُUXٗ&_RP'OʫlOZ nnDx340031Qp
qKcPWg|]<51 ̼ҔT"㵊ʨxܿ}USr222
RRJROq`}*o Q0x31 ĂԲԼPu?L+y뛼|yM  
x31 ĂԲԼK)J+7HXX	TQr~NNf*Tr$%,&tRm7LIJjRi:Ävg'xݶ<#/t-]ُUXٗ&_RP'OʫlOZ 'Dx340031Qp
qKcPWg|]<51 ̼ҔTꤕbF/*/!Ĕ̤ĂԲԼl<S&>#s[ /ox31 ĂԲԼ3kt:<:-ަ2 g
x31 ĂԲԼ??oiLr̴:\&PE99sDR]ȑԖ``Iu0%)Iڝ8Suۢ:`*rwe?ZXTa-tPd_ZS|IQbr*÷CKd8<}+=jF
x340031Qp
qKcPWg|]<51 ̼ҔTBU;z3Sr222
RRJROq`}*o 0bx31 ĂԲԼ27(X)w=-B R/
x31 ĂԲԼkI|țؽZw&PE99sDR]ȑԖ``Iu0%)Iڝ8Suۢ:`*rwe?ZXTa-tPd_ZS|IQbr*÷CKd8<}+=j"Ex340031Qp
qKcPWg|]<51 ̼ҔTGk]Xy{MŅ2^Sr222
RRJROq`}*o 
L1Vx31 ĂԲԼ=,'=}hˠ)n_Q 

x31 ĂԲԼg}V%kܝ,|W"o	TQr~NNf*Tr$%,&tRm7LIJjRi:Ävg'xݶ<#/t-]ُUXٗ&_RP'OʫlOZ xQDx340031Qp
qKcPWg|]<51 ̼ҔTD[Sg?&/7XPZWUǰ~ۧ}wd?Tq 92Lx31 ĂԲԼfzTcuUo 
x31 ĂԲԼe2ܶczZT9"w_.HjKYM:nԤt	KONmAyN_F^09\[껲-,:(/)L(19ۡx%2O>WٞE] Dx340031Qp
qKcPWg|]<51 ̼ҔTCsx]qʵY=n曼!d&ed&de1$0iGU 1xx31 ĂԲԼ?v*7|)qGh  gx31 ĂԲԼ?W;yV*> 3x31 ̼ҔTH%-قW<i \
x31 ĂԲԼ._Ǩ9C% D0x340031QL,(H-K+`hXR;}#!劺 	x31 Լ̼T~Nܕ#i[LR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHg9w9fNL+Z) [@mx31 Ē̲TJvQFgỌ_NX5~- "	x31 Լ̼Tu)NIg3+Īךd$V&%1hi,s+'CT%d2q[M%BSM.K/s:rŭęVS @x31 Ē̲TZ[JXt X¥x31 Ăx_XY*
zevh_ ox31 Ĥ̜̒TܷYv.Ro9Lw1AQVTWpؽy<dZh[ $"	x31 Լ̼To[&-|-%C߆&`E)9yEV
_d|?̓NK,dX?cK$;>	"]_7gy̻ݸ"o{ O^A x31 Ē̲Tʡ%眐r Jx31 ĂxŶVlm46 x31 ₜļ":/V(`W%e߾N<3/%pIZ&>_V:  Уx31 ₜļ":/V(`W%e߾N<3/%ЈeI ~)wy 8"2/xĸq2=¥-z5Kdʮ<s l	x31 Լ̼T3m&uNl2bWid$V&%1hi,s+'CT%d2q[M%BSM.K/s:rŭęVS ܖ<x31 Ē̲TR,ԊS)~WG; 2%	x31 Լ̼TkwlU@yݏ=IoVY\XZĠ=cM^d?έQXɰ~ǵn51HM54cw|D<3/%n6.pgjXѺNk FBOx31 Ē̲Ts*,g_eEWE 	x31 Լ̼Tzǿ֜5d]f&`E)9yEڳ86|y1K|?yx\{VcTC}<v'A3RNa@q'q >@x31 Ē̲Tӏ%GYZeOmӇf %ߡx31 Ĥ̜̒TܷYv.Ro9Lw1AQVTW`z%Ri0{y5 !Vx340031QMLOO`o4S~FOhU"K,,Kog~tF[٩E펹qaҒ}hh(JMN*E}cA[,9-EH7ǸEOo&uGB5d&!Lvت,~o:V& ߔ'Y%˒Q0FΫ ے	x h40000 ace_engine 7*}s#ꍔӍN 40000 display_manager _Ύ΅:ăf('IDj40000 napi }ڂt14>ǒ40000 window_manager ܄L(
F[0;8x! 40000 native mW0hEx340031Qp
qKckX>&'3<W//%[/8?!MK=֯1)2?#<3/%\/4WےtwU2z)\ڰ{p/|~{:w1Ԧħe攤}I;av3m&X  4P)&6''R+.W hjeݥx% 40000 graphic_2d UG[&A2kXNKrj
x31 Ԣb		fl_Ru>0n	XiJfqIQfRiIjJFbQJybQ*}n3lM7tvJǒ`+QWaUŬ{)~~t)DazQbAFf2ƫë3;>phb֨ `B&x340031Q((+``kx҄a'?o}7uaj<;J	8oB (x! 40000 native <#71.3i<1ԛ
x31 Ăxi?v^Hܗ!	x31 Լ̼T{͚d9?=Gv(vj0+J,.IMKLO-bОű&/Y2VNK,dX?cK$;>	"]_7t[835h]5 WAx31 Ē̲TT?N^lϛ}v ťx31 ĂxyՂ*] .	x31 Լ̼T-'V|-qjܟu(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜ	~#l(n]$԰u ~Dx31 Ē̲Tg&&a)p	 Ix31 ₜļ":/V(`W%e߾N<3/%ن9;eL/:ټj/ !x31 ĂxG\wV55KY ȡx! 40000 native jq-A0`=T=xx340031QMLOO`R]VQ-l5*K2R*{3j.l8EeAbrvjBKK{/oP}#wz;Eɩ@HZo,;}+sT}=8(Q!fZ=<Ib=[TCAfrIiZQm/`t/\mEjNnbBM}U,Ο
o4
 ~x340031QMLOO`(5Ըj&Kn_g2/$,rκ1oQT$&g!4_;۹'{!WECQjr*P)l4gy_}ϡh)/-JFrԻȍꯤjT_0nӄP%EHjv<r5+J{}^q?\mEjNnbBM}U,Ο
o4
 -	x31 Լ̼Thq+ə֚<8quވŻb,LR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHg9w9fNL+Z) i?աx! 40000 native !bѨN<V=ZQ	x h40000 ace_engine 0;Wn_2|7[*΢.Ȍ40000 display_manager +\Ω40000 napi }ڂt14>ǒ40000 window_manager `NX<!B!=?;x! 40000 native ɜY0LHC?Vxx 40000 ace_engine s5c!b040000 display_manager H,!뛍>}Z?!?40000 window_manager 7k'lͤ[.$LYM/gx! 40000 native _첐Lp(έx} 100644 native_node.h އ$IkT100644 native_type.h M-;jl)M100644 styled_string.h Â{g,!Uyk4	x31 Լ̼TSUekk^?+Ys	XQJfqANbe|nb^bzjUk6!pŻ *2Ͽح&	&xOHgY^"#Fc7njH^ k@x31 Ē̲TIsطw\OoV 'x31 Ăxղ+C_ʖ2XHsqݜ7 x31 ԲԼݻoƛ]|^g" x340031QψOK-K+`pd3zkEJUbS_\ZP_cv=ygX/ &Fx31 ԒԒ" a'kf~6X1ll%  ax340031Qp
qKc8S9li%!DMNfR^jI|jIFjU`M-"rjVz,Ճ!뽙7:_k-pN'N[XTƗTd W	gD˕	 Gx31 ԒԒ" ar;ŒOi6d 0x31 ԒԒ" >tLb 5x31 ԒԒ" 4+\n?}k% ߧx31 ԒԒ" #ͳn=N
S LEx340031Qp
qKcS-̥qcۜ!jr2RKSK2Rl<ݷomq^WӷnSga_ͼ]km%s>qZ¢2 ?W^oP\x,6c DLx31 ԒԒ" 炴un] $wx31 ԒԒ" a_/EsiKD =Rx31 ₜļ":/V(`W%e߾N<3/%p	ڝ܎gTފw$J B 	x31 Լ̼TۅYR&=0f۽LR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHg9w9fNL+Z) E@?x31 Ē̲TYwgR.qɆzv: .	x h40000 ace_engine b.X!jE40000 display_manager +\Ω40000 napi }ڂt14>ǒ40000 window_manager `NX<!B!3>x! 40000 native ,"$D9Q:eiV1x31 ԲԼ7׾nr[1A6Y2 /x31 Ҽļ")M[;u`cn00kJK+*aFm퉗75/T+H#^{Iw ]2èx340031QHJLN//K/(ON-.MKLO-`(uy1lgW3{r>x31 Ҽļ"{ϒ-x~˕<k֞xypS_BuobnNta>^%
T`p7 Mj0yx340031QHJLN//K/(ON-.MKLO-`PPWtøOtK 1x31 Ҽļ"߻ulMXf  4x31 ̼ҔT_ː 0b짻  x340031QHJLN//K/(ON-.MKLO-`P09Ǭ#Ծ8dW MOFx31 Ҽļ"s?nu)|OKvzgk֞xypS_BuobnNta>^%
T`p7 1x340031QHJLN//K/(ON-.MKLO-`P^nU}oIQ:,	 Rx31 Ҽļ"U|sj=[Oj&`MiiE%语=াfbҝ|!1uKtb;:b{n u1x340031QHJLN//K/(ON-.MKLO-`5\c4El3<	 +x31 Ҽļ"CoEg5

лq{Zܢx31 ̼ҔT̻|k-uL[ (	x340031QHJLN//K/(ON-.MKLO-`jb(Pua5: (vx31 Ҽļ"96_\lI1sMҊJ_[{M}սŊ;!҅Cbz9겗*^wtR I1x340031QHJLN//K/(ON-.MKLO-`к{mԕ$޽f۫& Ax31 ԊԢĜԲļ"JC)5|}+tV  
x31 T/=Msa&VaIi&`>EBu4W\/ZԢ̂Ԣ0R
s%J 8!~-i O"1zJ;we㋁ h9eֿ_=Yx,DEx340031QHIɎO,`ئ9^Ol2LuYf4D(*,H-*ط);cެ Nx340031QLOIɎO,`hyik勓]k 'h穿v0Lu# g$x340031Q(-NOIɎO,`HJy#ٿ9*L*,,H-*e-~4qkls/ jx31 ԊԢĜԲļ"d7{/dXi YO
x31 T/=Msa&VaIi&`>EBu4W\/ZԢ̂Ԣ3UXy1/O&@T'10gRЋD5
RSepb1@#<Y'T+e̎+W1Ax340031Q(N.Ό/H-,H-J̉O,`U\gn`3Į szȍGwҜ'y.q
 n(~x340031Q(-NOIɎO,`HJy#ٿ9*L*,,H-*=NR*%Ćh_d<l Gx340031Q(-N/N-L̉O,`Ts-˟Ui oGˡ9*!wkU˃r?&x31 ԒԒ" Ak_yiճϓ\ 2x340031Qp
qKcS-̥qcۜ!jr2RKSK2Rl<ݷomq^WӷnSga[\^Y3Ks%,Ee|IeA*P9w"S9*dq,c Bx31 ԒԒ" ̄O6~s])7r~'X .	x h40000 ace_engine b<bX+vT40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+ariZA9x! 40000 native zXP^,2JKpex31 ԒԒ" A4VŷoLŜ*v| x340031Qp
qKcS-̥qcۜ!jr2RKSK2Rl<ݷomq^WӷnSga[\^Y3Ks%,Ee|IeA*PEG6wZ`#p=y	9 oAx31 ԒԒ" aEx{Ϛe"A) (ϧx31 ԒԒ" !cks&>9Yi{Ke Cx340031Qp
qKcg$:^+FCԢĂL	*KE&EZVcLjAK*cH47~<Q#wef& G5nx340031Qp
qKcg$:^+FCԢĂL3)n3϶+8
c$l<DsW_<rW6n6?qj" 7x31 ԒԒ" a*'ooOn{έ? *9x340031Qp
qKcXdUl_d͚"m-0LK-O-H-2Rw߾ɶ]Dn{]M*=ROzP4d0(4]($o_%@vsvDx~oE˧= Bx31 ԒԒ" mx5
;2,/ Wx% 40000 graphic_2d T?ca/[&TʉAx340031QHN,ȌKKMaXa>_1{>nCʌĔW/U(u7̟RIPuE))IyE a<
8ħ<xr#3fCŧfޘou|AٿYAgfgb3?֎o`um,r ax340031Qp
qKcg$:^+FCԢĂLC&ڥfȺV>'3	C//%[/8?!U8GܕMO s6x340031Qp
qKcg$:^+FCԢĂLuwt=?Xts>T}NfPB^^J^Vq~Cq/+785 e7Ux340031QH)/H-,.ϋO,`*d~QZnl wlg Vx340031Qp
qKcg$:^+FCԢĂL3Fްu{,}Jzz5T}NfPB^^J^Vq~Cq/+785 &6	x h40000 ace_engine DRg7<40000 display_manager +\Ω40000 napi }ڂt14>ǒ40000 window_manager .L%{WzFvب᧛CKx! 40000 native "ҋ\,h8Fg%x$ 40000 transient 2^4h%@7x$ 40000 transient VhxL;(c=,x" 40000 include ғ{rqOx$Ix$ 40000 transient 6%Y&9HAm?qXWGx$ 40000 transient >KM
]$
x$ 40000 transient T~J U4!e_9*x" 40000 include 5;Quu@f3)|9
x$ 40000 transient o̊1y7S/;x| 100644 BUILD.gn =DVs_2f240000 include bn7I/شT}100644 libtransient_task.ndk.json d;vzT
µ#/xa 100644 transient_task_api.h 3n+	m~Z100644 transient_task_type.h H?HoLJOg[('	x31 Լ̼T0Cܩoq}(% '2>71/1=A{ߗ6O<fɔ[92/ akjb,jh$tyf^J~9ܜz>TUW]s+{A͇ l?x31 Ē̲T͓lM*gs(pd9 kx340031Qp
qKcg$:^+FCԢĂL[,{wmf̼j SJQ$l<DsW_<rW6n6?qj" y6x340031QH)/H-,.ϋO,`*d~QZnl wlgBd& tde1,ve=og^fB 1(ҧ	x31 Լ̼TI,tN%OMR2r+sSgql}`cL~ǹ!*2Ͽح&	&xOHgNuZux5+1| ZBx31 Ē̲Tvrs߯+.1 b7x340031Qp
qKc-s얍WZ{ofQS_ZY\XU _
y@تτLjAK*c`Y{BeμՅ X6_x340031Qp
qKcj`WquGխVkQS_ZY\XU _
y@تτLjAK*c`Y{BeμՅ 7^	x h40000 ace_engine @f!\|e/<40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+arx?x! 40000 native U>fH񇩣ɍz[ AҤx$ 40000 transient E7ȝ+	x" 40000 include >_)c"dT^@#xa 100644 transient_task_api.h KTId4h100644 transient_task_type.h ԍއ+vCcY[(	x31 Լ̼TG]ϑfmYej5+J,.IMKLO-bОű&/Y2VNK,dX?cK$;>	"]_7t[835h]5 7AAX	x h40000 ace_engine \DcQOic$O40000 display_manager +\Ω40000 napi }ڂt14>ǒ40000 window_manager .L%{WzFvبgAmx! 40000 native @/!;5Jbg-x340031Qp
qKcj`WquGխVkQS_ZY\XEGcjuVs2Z:RX~2y`ٷ3/~3xu! 66کx340031Qp
qKcj`WquGխVkQS_ZY\X0+V8oT]ətVs2Z:RX~2y`ٷ3/~3xu! h:x340031Qp
qKcj`WquGխVkQS_ZY\Xp&S'|^I:dfUGs2Z:RX~2y`ٷ3/~3xu! ;ۤx340031Qp
qKcj`WquGխVkQS_ZY\Xp&S'|^I:dfUG I`$_x340031Qp
qKcj`WquGխV Yx31 ԊԢĜԲļ"Ir+]^;F ǽͪ
x31 Tt:wdey:N0Kgd0<33ݛQfYs řEE93
,b|ϬujmD~$=&],K檞e㋁ Vx+{/}M1u	 dGx340031QHIɎO,`nђ/Zvm&o$J*Rʮ2k\ape. QNx340031QLOIɎO,`1aǗ䥤j361DUXRYZTӻ_'wm7Qb4 Ox340031Q(N.Ό/H-,H-J̉O,`{q?S碳vW:og kx340031Q(-NOIɎO,`f)7_plR.& ;x340031Q(-N/N-L̉O,`ˈhUkR dx340031Qp
qKc ḓ>FTc Bf^rNiJ*C̚Ks6ڼH|őYm!d&奖'&dde1'.pޛǎ? /?x31 ԊԢĜԲļ"̑IJy& 
x31 T/3WNA{qz񘀥32Sž^?C=qOAd3R22Rs>meto|~O=
 *K"̥%9rT`ڒ۫@cFLpt펢!yy CEx340031QHIɎO,`xWf=e}1D(*,H-*r]xJ3.]K 5ox340031QLOIɎO,`5[-V"E߄#=UaIeAj1PkJM7{;7y[* ,"x340031Q(N.Ό/H-,H-J̉O,`xl[W}ߣ_fLjҽ }x340031Q(-NOIɎO,`X*)pe %pDx340031Q(-N/N-L̉O,`ȮO9m)k?f+~z kKx340031Qp
qKcg$:^+FCԢĂL|h[Wf1T}NfPB^^J^Vq~Cq/+785 7Ax31 ԊԢĜԲļ"W}]vUYb~L5- ^
x31 T+5Odpڥ)W;L)ǣ:yl|ಁŴuaEG řEE9+onξ_eROɽ> *KTg9/Ү;O6e㋁ }.ųyʝRWϟl \Fx340031QHIɎO,`zNiEsxjJ*RʶOcnr*X{\t? 0x340031QLOIɎO,`H)]zΚv*,,H-*d~l4[TGnoY_b  x340031Q(N.Ό/H-,H-J̉O,`xXϯsQG-~o x340031Q(-NOIɎO,`\̂QzeK !3"x340031Q(-N/N-L̉O,`~jkb譢yLL  dͩx340031Qp
qKcg$:^+FCԢĂL^噒7nLjAK*cH47~<Q#wef& #8x31 bݧ+5O9ڐ95g
 ȌVx31 ̼ҔT;vkN΋y* x31 bG?ה[*gq7_X x31 ̼ҔTGT4
4Xϝ3> ٘x31 b-?rsbE8x31 ̼ҔT3fl<bmsx31 b/~~j=ȖU> x31 ̼ҔT3j-P9u^m' {Kx31 bZoV9?jrY3 Kx31 ̼ҔTw>ۗ%  x% 40000 graphic_2d W1+λG%Dqx31 Ĥ̜̒TܷYv.Ro9Lw1AQVTW 8O;Y8 "x31 ̒bkruJ..;/sg" x31 dKQ3:}{߽  x340031Qp
qKcQw*#jZs P+(-aة8VpJ_r\n1#?D//%[/8?dWˌw&I
 V+\x31 Ԓļ"6=MW12?>83nGɎ↯߾aMBAIbr6L5=edghU}RP @)}x340031Qp
qKc ḓ>FTc Bf^rNiJ*2;^Y}DC)9Iy%yy%yzy)zYyoĄEgp	K<f0Ix31 ̼ԢԂ",񾽽1`N~	Xi^jI<H9}=WyC%I٩%jY\~IrP?u n0x, 100644 ohbattery_info.h 9hF h6vHb>Pf:	x340031Qp
qKcprdɧ<=|bSso5鉹y%E99E%zj*~_xZue&pEk{~0>,5ELobXo׳8*f<7,5.pƹh&npF&_zmUAl<?mC'-߲=8wux340031QHOMO+)I-/,H`(R(7]~uB?a_"HI-L)qԢ&ocdLey%@*$yj<sISf[oRo:NteES77Cqd37(oՒ BV'x31 ₜļ":/V(`W%e߾N<3/%pqnY7X?|zsJ  !x340031Qψ/K/`zuLc,O>N[WpCMY|r~n.Pms
c{]I	e1Ԧħe攤T4kB{O-Q N4àx340031Qp
qKckX>&'3<W//%[/8?%+KYF4%{V:AK֬ӡ*33R2f?Ǜ>v
hHEWT[ywgۃ_݀6,5$>-3$G#zl-27)^iCOAfPiR-MmOD=O8^W\
 IaQx31 ₜļ"W	x+Ny=̼r˕>" ]gfX{\3  խx340031QψO,.ION,()-J`hna1V.nr_iP-5Cyi@Ż.gn[p~_-LŹyE@%\vF?_{:W '5x340031Qψ/K/`ز:EWH76=9~!\ZgΓg<RR.cIjSRJ2sJRz$;h)U@ʳ f 6mx31 ₜļ"W	x+Ny=̼rBIohxzue-9P "ʧx340031Qψ/K/`Haz2)Kh)Oy<y3/.a2k96,5$>-3$7'd<pz{lE U60x, 100644 ohbattery_info.h LhpUh:	"dxM 40000 BasicServicesKit e8B[%GTMQr"40000 graphic sW{Ci\軵Zl#x, 100644 ohbattery_info.h o8
mkD nx31 ₜļ"W	x+Ny=̼rB)2^-3 !Ox340031Qψ/K/`Haz2)Kh)Oo}WMywhԲԼ̜"ߔt}>G \6NxQ 40000 ability_base }hN&!;d40000 ability_runtime F#Bu,K.Mq	x h40000 ace_engine zFRs]~J@40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+ar6Bҡx! 40000 native +7K޿iAGLU~vx31 Ԥr}ūHf[xrkw x31 ̼ԢbW[EtM:r~3OW "x31 Ē̲Tƙl{l+b{f; x340031Qp
qKckX>&'3<W//%[/8?%+KYF4%{V:AK֬ӡ*33R2\^z'aCOЕ'EnhI0rA?дJey%i9%E@=Փf[m	ߔ!IqJz
2JMninS|"y"rU /^x31 ₜļ""={:#	<Qxj~ō=c̼rBݬ(yIǺDk$j+ x340031QψO,.ION,()-J`hna1V.nr_iP-5Cyi@mܿiW0ϥyE1&%W~䵐zsD[6C. 5x340031Qψ/K/`~2KKKeV[}6DST䫭vo-G&5hvM݆CmjYj^I|ZfNIjPOZ=9UWxJ d4"x.100644 BUILD.gn 'sˈǊuh)ě100644 camera.h hZKn+7\Fz1,Wa100644 camera.ndk.json o J[@zӔ沁m100644 camera_device.h Gzgߌ [Z#ɛ100644 camera_input.h 2NlpOaP▎ˣUD=100644 camera_manager.h GۓN(b100644 camera_notification_info.h rVPqfm|pAR-100644 capture_session.h Pp-ĜYG100644 metadata_output.h hB[a\3100644 photo_native.h >
8100644 photo_output.h LMu$j]0r,100644 preview_output.h Wd"YS100644 video_output.h vTfqR
b7ox31 ₜļ"=s&hN=z|oVY_Wj󃻹uy)w}hk v#x340031QψO,.ION,()-J`#s_#n.C}f^Z>P{-o`sz^tLŹyE@A?v7|֩( Sz;x340031Qψ/K/`hjY,ٲ\Ye_!\Z\4Zɜ7"CmjYj^I|ZfNIjPϗCq3H\3٤ M1ާ	x31 Լ̼To[&-|-%C߆&`E)9yE55wSD	L6yx\{VcTC}<v'A3RnpqGĳgf/ <x340031Qp
qKckX>&'3<W//%[/8?%+KYF4%{V:AK֬ӡ*33R2Zb/cSǺ͠C!sC8\_沆ctfʏW1!jSRJ2sJRz?}^קS0d F*ݦDDu ^Wx31 ₜļ"~^bTgUgjne{k
mZ  #x340031QψO,.ION,()-J`P,~(&Qj^]]qem\&7Cyi@:Q3~7.`䄩871/1=^?ǲnޱƓO:E7 c:Ux31 ₜļ"߭y1ʬiW&`y)p??kYǞg{gۇV F!"Ox31 ₜļ"c^Pu]aM*3R
5_M~p7ײ=5ζm #x31 ₜļ"c^Pu]aM*3R
_b\xzfz2ݥS #[x340031Qψ/K/`-)R'nCoVCگVw8)OeUnP=aNOujy-_0Ԧħe攤|979cD9}M L4wx31 ₜļ"/kJ'8	3?E̼ry$޾Lw- fE"x340031QψO,.ION,()-J`P,~(&Qj^]]qem\&7Cyi@_/ZX!TANݘsSꗙhgG	Oy' )5x340031Qp
qKckX>&'3<W//%[/8?%+KYF4%{V:AK֬ӡ*33R2^}w-zEQ)seQ\EJW+\DD{'`M-K+O)I-]zMUqi+b~}f=@цJy4y)><x]q* jex31 ₜļ"x꓿.2b	Xeyf^J~9\	KW'lx/ E!*x340031Qψ/K/`(]C͡є'՚w~~).:P2?c*ԲԼ̜"\Ң2'^ 5x31 ₜļ"Ê3GmBx7J;<3/%pCԁ]Wh6{<U 0#x340031QψO,.ION,()-J`^hPcf/&iCyi@<w~J=/|Sqnb^bzjPO5%6|xZ<޵ =x31 ₜļ"_k#$;Y˭0,K/+j#zjJX[yd퇵 <x340031QψO,.ION,()-J`.%ΙXsVUswbK*:]Ony>N嘊sS64oԙRͅwݬW  h9?x340031Qψ/K/`ݑSvgr5t782)OY|DMemڵ-PZWSZԳč]x[sq' 6x31 ₜļ"?]8執O1,K/+j#zjJX[yd퇵 #	x h40000 ace_engine O(W.ޠWQ 40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+arqVAQx! 40000 native ݟN𼍯q(ܤ4-x% 40000 graphic_2d 'ctD4y|VL	x31 Լ̼Tu57h56?~ּ&`E)9yEV
_d|?̓NK,dX?cK$;>	"]_7gy̻ݸ"o{ Ԯ?x31 Ē̲Tu=Uvp(90)o /x% 40000 graphic_2d /3-
OvP' [m	x h40000 ace_engine d&52"3qzx40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+arHA	x h40000 ace_engine E:؃D1du5	40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager .yiL0Ǭh."=uh>x31 Ē̲TQGJwb)"l ʛ6x31 Ĥ̜̒TOQS6o&^oneEy%Uwe|sL{loم !x31 ԼܤA΄䔗k.ZCY: &x340031Qp
qKc:/54֤]Zww'xkQ\TYPXY\RZY~5*CLzmX:፦27>9 #m59-v?wOgsE}vj%PKuxUwۛOf~h?Uqr~nn~P^ʯno',3ZT) ':bGSJf7O14=ZRz˫.b:.2>1(5575d6̶B+Y#71NɓZ?w23T6?{RTuEy)@7%0X-3*@fBUX8?~Oq9d%M5rT9%j_ӧ:ًva*Ħ?_M/<n/nL$l<ҏspx-?!q꩖ %	x31 Լ̼T<JrpnNPYR(% '2>71/1=!\
Z4?IhTQXɰ~ǵn51HM54cw|D<3/%n}w[mat;=_Ck I;x31 Ē̲T\X(ٵnMmg tQ	x31 ԤĢsN+cTa/[x1#(5-(5/9!k}u<bS{c@T$d%2(.j*oBů94%7!e
$&38skZ T9x340031Qp
qKciPVy_Y׆Hib 
y9)i??wt\!{Z6TX\XU0wy$ғL q0x340031Qψ/H,.IMO,J`m
i2|XƧ'秤rQg5y (x31 ĂxgsoVm9]%t^e kxm{4Tyh{hLvLM4ih&ںݙ3stdm=tJB"0Ko-^l-wp\sGpwuC=zcök?qp/>LHA'h[8p/%ÝOf)AKgq<DC_ښ#nݻZS6P*A9.e]rY{bkMtC0DMGE= xD0B@q;F:oRxbIjXl'r(H/Mo4d3udŅ´]- iufz~Ѡ~M?M5!y/{@F3;b(AF%_f]vR$w*w!"0Y)g:,˼}TL)l[R^3Y˰GH4e4Z,SP
jھ9ᷘ6d& 4bQ^GXϴ+2ܨ'<ɚ\]sts4	ы#M%sftɌӛZ`)(|^uVLM2vX}h-L p8qQfC7VOyY7Ig!) 9CT[%'loX3}@]דFus7r	v!H$"J
,^szOe^GJ~C>&$Ɩ$xDdwњԨ/
Dívw43RAɗul˦B͒ضZuy:c[_p7Jop4'J[-!THVr4G藐1Sx%xVpP{<ŭ6n)"7x\)؇3v#\%VH{VN> ߻ľcFl#jFa/] ˧Te(	3V{k/2SV}Wt:2Lr[,ևV!9E)3,BP5v]0s[&~Vܒ(Zn(p5-͉\tiUk~g3L]`|ghtX}C[iBH\c7sI;]uEÎG^nD$T/ !$l|Z3@}dy BT1.]`vfedk2lu*ye!_0~z[3uaabHq<FΪ٩G+JEtWuLS=S,0szwwCyuu:.dD#[_;zvv&)NmIdtn<\^;`\~/*2|&~T(1`sVe蟊bRVْt_mgex340031Qp
qKcPWg|]<51 ̼ҔTɁ>#eӟ[}!Ĕ̤ĂԲԼl<bۻb|Y>ys T/rx31 ĂԲԼ6God>t"S: 8Vx340031Qp
qKcjk׮ܦ.]ff PK)MIeny^F+,R'G!d&ed&dde1:|&ûUKK76t
 >15x31 TsӳYs=|m*W &x340031QLL`;ݨ"~MC̵.fg  x340031Qp
qKc|;#7E&@SА6{WʻYŋ"SbJNfRFfJjRi^^J^Vq~CbY=Aǯnz J/x31 ̔ԤtMo_lMϯӈsC įx340031QLIM*M`X1#OGFX5<m( 2(S}ޱ^{# = Hx340031Qp
qKcj!־vSɞef,:h($d''1c,֖GVT|c{kvfδAVW
2?VIkr=o4$5>5/=3/!]ۿu[U~Cpo<ǫN~ul=dB^^J^V1Pl.mH3T=_rx340031QK,,KO,MON,()-J-`8cieqbv< ڊ/x340031QK,,KO,M/JKI-J-`O5~JV "x31 ̒bSW%d*|_u=8d, Mdx31 dO=\JXHMU3\ {	x340031Qp
qKcQw*#jZs P+(-aL_Uүc_99!fgde1xٙ,3>^]cΤ#	W(x31 Լܤ9>]EXMxi $D	x31 Լ̼Tt⿗]/,<$ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg9.x-lbvhm m"<¡x31 Ē̲T9:W~	fm  z9x340031Qp
qKc !Nf~Y2&(1=>1/%>(@/\<8e+:BgKtJrRSR2JW-tcgi;r2SR2~.|Yw#m;6!ҼĒ̲TC2sKR,~XI#.Y9sUmJfbN~:PRׯn^uh>_^T%E ce~}\YLn̼Ԣ43"fK0ӃJSOHH?4ơ:>19983)3'#}L߯U9KoZ~ri1P䟪{yߘD}eT$ 5.y\)~ٕ?djNO->m(keY2
QU姀Ũ'E\)m8k@Όl%ꑉ9el?m%y .)Zy7Ntmc̨RRRA)l_bv]D?*Y+ ZyU!炋Ӗ
m(g{GT@C	/+HcZp+,Yf΅W҇j,.IM/.)%VT9̻$o#4L`$Q&o%Mja{ 
gx31 Ăxc݌7{GUM\+ hx340031QK,,KO,MON,()-J-`E[Z{u?J"'&v c2x340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`pUW#=~ME'{&/%[/8?д6Ҏ7.Վ4>%,39hPon>k6j.EUWPZTyMRo^[GIGUZT=?V^C8xW\mAIiQj|qjqqf~Pq+M~;kב-=~C禖$$$痖@\][~冷80TqAF~I~|^bIfg6bvʑɻ(*f\iwK;׮3U>{PK\K@UlACuPe)HZyg{@ mZEx31 ̼ԢԂ"wYAv
k楖ă3g^xs>$?{΍PRTZ )uɕ=.`\w
 2x340031Qp
qKcqy7׺]6())+I-JN-(/`nif[3#{!͆Cu|IeA*P~uo[&'ՒaG^J^Vq~üB}ߔXYү[: Jx% 40000 graphic_2d Ɔ[Ӏ~*S8]+Ԫx31 Ĥ̜̒ҼTe.IWVgO 2x31 ̜b*<^*}^   x31 Ē̲T-Wv|k/]}ǀ ӥx31 ĂxnQO*!V/J= x340031Qp
qKcjk׮ܦ.]ff PK)MIenkϚquⶔi!d&ed&dde1U۟I|^eˎy $0x31 TW,u<j9Z76= Gۦx340031QLL`x=sʜ3Gm& "
x340031Qp
qKcxh?}+f	l04K,,KL`V]<S]Ha)4&=LIũ@sdߛz4_7wFĜ UǠjwY'.`rڗ~2 r<5x31 ̒bI{Ͻ))d x31 d,{/In gëO? x340031Qp
qKcQw*#jZs P+(-aX<lRg͊{~o;tbF~X^^J^Vq~ڷ,xD?6n,Z (,<
x340031QψO,/,H`IDׂs_23$>71/1=ȓ˭`u;8]:;2>9?d\slq'kpՎK
3JRK*s@N`]'g'?} lDx31 Ԓ9zևgٹMJSSK:E.N ~x31 ̼^9~5wc}|O ex31 }oD6Ν{ޯVcY Χ x31 ̼ҔTmC|∦SD fx340031QHI-LNK`T9V#\-r#_!D]qeqrbA|^J6Pݽ_~}yO /gڡx! 40000 native  ;$Fex@:Ajx340031Qp
qKcXcr8$b[L@!3/94%3iNBdn<T=C)9I)izy)zYyOtᷳ-8:E  )x340031Qp
qKc|;#7E&@Sp'wg;8Lov-C)9I)Izy)zYyTdIޒÖ^ 1cx31 ̔Ԥt*akW6m`	: N[x340031QLIM*M`Z.̦o_J83EQ|IeA*Pexԅ[_2Y  fx31 ĂdWW;gv|8vQ9 dx31 ̼@5gY[{}G 8x31 i\Z<:ﳟ/ x340031QHI-LNK``1:y⍐^kAـuŕɉy)@u%7??x'5aK}opx31 ̼%rN^y աx31 FӪ]5lx[w$x340031QHI-LNK`hg?yKͬQs?KBW''dՕԄ.536oH  x31 ̼_^뷽_A;{E[ x31 n*DeWm{\Wǰ+ Ux340031QHI-LNK`Pۙhr\ӷ\T)sBW''dՕԄ.536oH J0	x h40000 ace_engine who{Wh*o^G40000 display_manager :e%ֲ3lݍ40000 napi }ڂt14>ǒ40000 window_manager t([+ar@vx! 40000 native w%lPaW *±_x31 ̼9LK(.! Ox31 ]78qܺ^x!>GG  ۅbx340031QHI-LNK`xo=vI#3d)Գ_7+,NN,K+;	S'\jglߐ x31 ̼%NgJJ%.=Ǻ3' ?ߡx31 +!lR_}7 
x31 ̼ҔTt?<S(k [x340031QHI-LNK`Ps8tLEG2G
BW''dμ5''iZ: !x31 ̼	7Dޮk:ɕ9 x31 YVdoD@w zx31 ̼ҔTQWmHwg0ܗ
 Xx340031QHI-LNK`Ps8tLEG2G
BW''d&μ5''iZ: b"x31 ̼L_E269񄤞x~C2 ]ߡx31 'ŵG3߷עo۬Y ۵x31 ̼ҔTG/?1
UQl  x340031QHI-LNKM`Ps8tLEG2G
BW''dCμ5''iZ: i#x31 ̼;-RLK\wD0t 1ġx31 E.]߷+约y<fx31 ̼ҔT%?c~oɞ Lax340031QHI-LNKM`Ps8tLEG2G
BW''dμ5''iZ: 2"	x31 Լ̼T"iJ[Զu
ս[(% '2>71/1=5uUUky	yx\{VcTC}<v'A3R,/yS#7W$m/ ?x31 Ē̲Tf؎-KX"< ]x31 ̼x=ZlرQOS x31 {KT?ĭF礉۳ `x31 ̼ҔTzAMLz&H)t_v @gx340031QHI-LNK`ib!"5{eP_?՘&tCĂl{ߙ?Vk}S f;x31 ̼:޾!M]fЋk ^x31 ݇Z.x[z9x+ }$x340031QHI-LNK`PR\$Pi~k-+!+RJo~~Nj	7$ QF	x31 ̼
GۋdZ~钮S Zzx31 ֍֦hKG x31 ̼ҔT?:ISfde ΋x340031QHI-LNK`Xw0LwO,%$.CĂl{ߙ?Vk}S u"vx31 ̼%__)4q«V j9x31 uv&Ll]0/,*Yl? ox31 ̼ҔT6{^֌`~ǽa ˯x340031QHI-LNK`Xw0LwO,%$.  _ax31 ̼wx}қs>  jx31 +wvn'UYO{g7 x340031QHI-LNK`PR\$Pi~k-+!+Rꄦxs'P{ƆC()	 Bx31 ̼w/fL.|?)S͋ s|x31 u;vkRޮǨL jx340031QHI-LNK`PR\$Pi~k-+!+R,-;ؐ1I"y\ Dx31 Ԥri/Das,DԔƳ?g x31 ̼ԢbN-
h0]cWS7) rx31 Ē̲T񞹗 .͠`Ia tx340031QH,.OM+I-JKLN`PPwZSoEuIeH\8[%^ސwiDѬo Ȃ$	x31 Լ̼Tv'ĴenL.̭s	XQJfqANbe|nb^bzjUk6!pŻ *2Ͽح&	&xOHgax-|NOôO{4 t<x31 ĂxmҗzaoM3 Q>	x31 Լ̼T޷g$I_{^޽%gd$V&%1Xο*|m7^;2/ akjb,jh$tyf^J~9ܜ%22~jD?8vE Bx31 Ē̲TC'':$ܦdҾ҂Gx31 Ĥ̜̒TOQS6o&^oneEy%s֮['jAe./xL & ݡx31 Ē̲Tӫ&o籋= Lx340031Qp
qKciPVy_Y׆Hib 
y9)`.xC!d&$&'de1L]^>y6-.jo<" }.دx340031Qψ/H,.IMO,J``<RE[Wy-)wC,JSSRzzw9^Zp3a<W L*$x31 LC<ޅ'tV	{\5&hmRtQjq~iQrj|nb^bzjnj^	C =N٩f<ak Kx31 ̜T8cu8#&EɩyEnz{>>~2m$SFU7 ]7Ix340031Q(J,O,`9)zQoq{"eUMJФ0:aw1ᔣhsSAf|0qiy7b/^ |.x340031Q(J-M/`K^argח7x!DDM|r~nn~P߸Foߕ!%f 5#x31 ĂxtnMdw-~Nl[,
x31 ĂԲԼwU,{zQGG&PE99oS?ic
%aJRRJ,h;v+}S"'?kaK}WEBEKSjUY?Up P1 nGx340031Qp
qKcPWg|]<51 ̼ҔTר6,a_zجSr222
RRJRmʊ9dL=ϭK 0x31 ĂԲԼߥk8am&vm; ,̨x340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`)9]!c[/fޜl<S_'e'NEi|JjYfr*T}[=B\AUWPZT= e6w9탩_NFUZTku:9sv.ڂҢ<[NUsSKSKKK ]XέMr[W{p抂Ē2m
#w5fo݋޷BT<Ҿ>jEiA#ラ,Tj9Q,пUBՖe#T4xM //+=o kx31 ̒bMJc8vj-R~ N
x31 d"Ow}p/} x340031Qp
qKcQw*#jZs P+(-aPdjqER7EB +K*c3Yf|U2IeGD; F)X	x31 <nd/ygfsaigL ʊSK7Fxoyַ2pw_D[|JjYfrj|rjQIfZfrbI*ë?ۭW>Xay߹| 3JL]$կa.$ <@x31 Ԥry;:ґoo ̸,x31 ̼Ԣb;w?1Xw]3TK	Ax31 Ē̲T~%GN0} 	x31 Լ̼T5/]}mbӗI&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)ps-=e#g-Gqg F4=x340031Qp
qKckX>&'3<W//%[/8?a8K/,Rj}YU__ &ZT7o8/,>9?7v<>OO2fI6T,PZWSZ%:fJ.wdc9RhC[zHq\ A6aex31 ̒bׄ_M;z 8x31 d63;s][ >
ʠx340031Qp
qKcQw*#jZs P+(-av0w;vAD5پ%33JRL}ձxgRّю A(Ģx31 Ԥrðet~zK1sj dx31 ̼ԢbFpOͿO/,G 
Yx31 Ē̲Tvc6?c9z0^mB@- x2 40000 external_device_manager 70vBi4?;M7x2 40000 external_device_manager StMC9`/O>
x U40000 base ;/5Qp1`M40000 hid 9	^+Vځs^^1`T40000 scsi_peripheral ɴuA.HHV+d40000 usb 3>5zgBnH40000 usb_serial {U4U#G<x O100644 BUILD.gn ݩʟmGcYHISno100644 libusb_serial.ndk.json jb\b1!x1|7100644 usb_serial_api.h GA1v-e]100644 usb_serial_types.h HyzxrpBFx2 40000 external_device_manager K'>$Ntw.&5mx2 40000 external_device_manager 3俣*OD2Ku5ˡZ
x U40000 base ;Gq%dsaW=40000 hid =m]\ocY40000 scsi_peripheral =ttI9840000 usb P	ю5lC#40000 usb_serial {U4U#AH	x c100644 BUILD.gn EZՄg<2t100644 ddk_api.h *D'Lɦ.,H(հk100644 ddk_types.h  ju62~~N100644 libbase.ndk.json 7XoK# Wɡ3}R<
x \100644 BUILD.gn 6Ml#~@.F|100644 libusb.ndk.json P9=Ǫ]H|Y100644 usb_ddk_api.h 'wJSʼru@{100644 usb_ddk_types.h I	:{>ٞ.mSC^?x2 40000 external_device_manager EKH[N
x U40000 base  &-ݐ.40000 hid <-za$Ad40000 scsi_peripheral {헛pi!K/gǬn40000 usb xNEs9	zQ40000 usb_serial HmhEiIK	߂x\D
x \100644 BUILD.gn 6Ml#~@.F|100644 libusb.ndk.json P9=Ǫ]H|Y100644 usb_ddk_api.h XѾ+:!100644 usb_ddk_types.h {@~>a;ƢĚpSD x O100644 BUILD.gn ݩʟmGcYHISno100644 libusb_serial.ndk.json jb\b1!x1|7100644 usb_serial_api.h {8ˑp%vm^100644 usb_serial_types.h 'A)8ǂ$ff9Gx2 40000 external_device_manager %8e){?K!][
x U40000 base kýJi3)Egnk40000 hid T܏;Wㅿ];ux!40000 scsi_peripheral ,d
mS-G40000 usb =\)E'FRοOM40000 usb_serial EF{đ	RIFm
x \100644 BUILD.gn 6Ml#~@.F|100644 libusb.ndk.json P9=Ǫ]H|Y100644 usb_ddk_api.h pb<o"h*#H100644 usb_ddk_types.h -RBߜ1`pbZkKQ_=x O100644 BUILD.gn ݩʟmGcYHISno100644 libusb_serial.ndk.json jb\b1!x1|7100644 usb_serial_api.h /9Wb	{}j0100644 usb_serial_types.h BcISFۡx! 40000 native ;(}WVDރD)ܿ	x h40000 ace_engine @zi=X2<E(40000 display_manager _Ύ΅:ăf('IDj40000 napi }ڂt14>ǒ40000 window_manager ܄L(
F<1x! 40000 native ٞ\g"19|Wgx% 40000 graphic_2d Qה..@cȃEZx31 ĂxN&p{|wӍ ݥxm{XLy33%DxQɃRybmwe13N3gNqّt!Eb
eTtR(2iϙ>w|~8;/su
{#ڮ8eVXqa8EkJla
c4"ʥj
;;Ju>O}{Z23P. V R	\[\/MKD"(oڵ<!.M*fB9|X(q&E`KI.f,ws#R	1(ՙ+5aKr7ĻpEx8m'3chUMCz R2Ծ4vcC/@R,"a$<kE_DɌ_`k\Zd浡gRKα"J+I"/UJ2fUhH"n(%^}>kzO	, #FUjtÚL0sd!^x} mIO! doќ
m)Զj` |=^=mWqڲ_zUd(RlH[IRVO%Ati8u:ew;_}$(@EwO^E7@r@>k+&PZobѻQQ@UV@7dϣSoI,{
+$*ѕ&p(L>tn-Nn]ҡ8IX\Uc	C]sWF@Q<W%Rwv)(yDpǞoyvM@BEDǐGAhruУl½ʨP{V=繋/:Ċ 9]MvkżI;M%#>uG~'R@$S|]klⰤ`=+64لhE </9+Uu\Ҷ>$G9b@Abcgr5k`ʌ]mǼU
f.$r?#%)өZRmƷ '\cxecHvǢR_VpU]Y!r ˉ~l.t,T^Qd}zSy[%\LD;+g̺Dg|D2!<@	⊶?DGH4UwcT=ļ~J	$B+ݶi2)~̚G!Pst\||1o
ykoi
V鱠ܳ?i %ld˜Qͻ6u*D'76KT2v#[iqfbk
3)9yH)"6rciǬ*LEnxj
x S40000 hiappevent ;swߵE#&H[40000 hicollie GO$oI^d{C40000 hidebug 8Ooł}yI40000 hilog 
kQrx;fO40000 hitrace }%UD\mU%(@xAhNWGGƨxx 100644 BUILD.gn ' ^?jQpUU[ǀ40000 include WNŁ4<O100644 libhiappevent.ndk.json #s=j\L:,I1x% 40000 hiappevent a71:]Ax31 Լܤ
6^o: Ӹ, ̯x31 \}g^캎7 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez6V=*g~In;ʂb:K~n=EΗi9ár2de1Qa6ҵ} n9	x31 Լ̼Tb.v{$]{%aޘd$V&%1ğ[!\Ց'i{<] *2Ͽح&	&xOHgz0#ޚ ===x31 Ē̲T.!f7O\/uEu x31 Ăx֣M_=?np~ .x340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`YvǬu݁~V9ocPde1((26h}GyӌJAQZ
4U]Jx775I5*+(-&sCN7$ɣMKLO-:xu_o9cifx\mAIiQj|qjqqf~PQ͟6,-nA	87$1%$1>Z}+7uŹ2KK2@>+GPL޵֘u/xFQ	7K	b3{|PFzbC:ƆVMU[Ph6쿬\? :Vx31 Ԥr87ۣf.b) 2Ax31 ̼ԢbW9$.; x31 Ē̲TN>Zsvtu9 њ%	x31 Լ̼Tݹ4&O?#/6+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/(ZiKip i=x31 Ē̲TY^Bl<{Ԥ-} 		x31 Լ̼TΎ'E=hJₜļ"WUm2Cw{'@T%d2q[M%BSM.K/(ZiKip =?	x31 Լ̼T9[xSQ~C*ڧ&`E)9yEV
_d|?̓NK,dX?cK$;>	"]_7QX_;->Ӗ>r ==x31 Ē̲TrrxvmJ-$  
	x31 Լ̼T&otJ]?4&`E)9yEV
_d|?̓NK,dX?cK$;>	"]_7QX_;->Ӗ>r }<4x31 Ē̲TJ>gzvzi(g4 ;J	x31 Լ̼TgG~&wM--	zb|E瘀d$V&%1Xο*|m7^;2/ akjb,jh$tyf^J~9Fb}4L[GN X9֡x31 Ē̲T
=}UƓv& Қx340031Qp
qKc[bcKϯ2ͪm(d%甦2|`W\ѱSXOjŶEBLLψO/MO,ΎMKLO-K*c`J'5s- >/x340031QH/MO,ΎO-*/OOI`8tGKA}{鮺%?#IWnb^bzjPK]ǵ{v;X #*Vx340031Qp
qKc[bcKϯ2ͪm(d%甦2]jǬXmW:fI0_YZU0;.iO0k{+[ Ԗ0Fx340031Qp
qKc[bcKϯ2ͪm(d%甦2,z\rʯg?%4cU}Sr23sKSS2sSRfq%-	fvMb/ce 2x340031Qp
qKc[bcKϯ2ͪm(d%甦2,PNa3S:Ⱦ)Сn1%'3)?#>9'4%>%8;>71/1=H//%[/8?!+aw\`fd)2V _2x340031QH/MO,ΎO-*/OOI`-4'5Lgx-HrSZVͤ)mӿ
vr ¸)@x340031Qp
qKc[bcKϯ2ͪm(d%甦2l{vRV,2	)n*vbJNfR~F|rN~iJ|Jfqv|nb^bzj^^J^Vq~CW,<̮ɞSel3x31 \ 9᝻m̯vfC$ {C	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez6V=*g~In;ʂb[jK16Z).'3	lX^J^Vq~+>]ͮ?f3(]۷  J8bx31 Ē̲T{߯
2rIg3ô Abx31 ĂxNCu_jmuXUw6  ծx340031Qp
qKchx(W!-jW_]qMu ss
?f׮gvHEGsS!d&%dƧdeuqz=&)2r{PP幩)٩ũřyz}㍖36jYS!z*KRsZ_~p|͕q[^HS nX̯x31 ̒bOd機o^4AC/ ̬x31 dkU9alm 
x340031Qp
qKcQw*#jZs P+(-axn=;V\cJ<~a1#?D//%[/8?dWˌw&I
 *ۢxB100644 image_common.h ;ܛ5W:$100644 image_native.h sRQx^xI2P^100644 image_packer_native.h  Pwm좢rK100644 image_receiver_native.h &L@ޜ>rRR100644 image_source_native.h MOd͑)ǑI_100644 picture_native.h qaו$w100644 pixelmap_native.h zhpT0Ճx31 ĂxI{
*.-a\e 'lx31 Ԓļ"C޺h?y/&j~L`s:#(nںh֔ $&g3XSFvv]'u% |,	x31 Լ̼ThƲ[K2v;=7ui	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9Fb}4L[GN u;x31 Ē̲TMw]2|E-v ї	x h40000 ace_engine 5?nLu>v40000 display_manager _Ύ΅:ăf('IDj40000 napi }ڂt14>ǒ40000 window_manager ܄L(
F'o:ơx! 40000 native kBOΘ]S&'bݒ	x31 Լ̼Tu춯1eȓc~WxkVY\XZosVGi4tɂK,dX?cK$;>	"]_7QX_;->Ӗ>r =x31 Ē̲Tk?pYUy.?x ̓ʤx340031Qp
qKc|Y}^|!jr2
r+SR➄[nT]GwH @xF 40000 miscdevice tiAYa#z,;S40000 sensor w$\_vkx31 LC<0ƶ?&rӾS㫦&`ҢļԼ {SCqey zx31 Ăx-\=e}R b/x 40000 kits  B_H-Hot9.1x 40000 c &A[{̝ܓ[1_x31 Ăxi\fFqƒ^[< ˗/	x31 Լ̼T'̘<1IjُMiVY\XZosVGi4tɂK,dX?cK$;>	"]_7QX_;->Ӗ>r =x31 Ē̲TYU܆l[d {8xi 40000 netmanager DgnIrV7]ͳsEA40000 netssl Y~sIv040000 netstack iHI+p%~1j*x31 ̒bW^p1NOնH gǬx31 d&WP,2YzΕi% 
x340031Qp
qKcQw*#jZs P+(-at^yukZgDYj1#?D//%[/8?![kYۡ]MҿQt ~+x31 ԒrYJOYNYku	XMyfZ&DP'v	l >/mx31 Ē̲Te%ByD?9 +Lx340031Qp
qKckX>&'3<W//%[/8?{Ǎ{=pǥWߍ+ψ/K/`]s[扅YMn	EWTuafi6Nf~Rk:ԲԼ̜"خ?X^8;r, g=@WO-3<WM[ ?b֢x31 ĂĢ"SwBE.UpuV4lΪ\CsSSļļLJOm.|/Gm7W՚`MI-(fw?W=7Gҋ r8	x31 ԤĢ<O?$Y׍L RRRS9TsQђ*iBT$d%2G.xYPU[/<JQZƠ#%Rt}lza?c| ?x340031Qp
qKca7ۑ%xwI&@SʰxĿ3Zw=ؼo!Ĕ̤Ē̲$l<f"s;nZr§hʌg D/9x31 ԊԢĜԲļ"檿#94W1-	qc ?Bx340031Qp
qKcrSyrݓ_EzxyoQTZ_ZUǐfGwoⶊzý|1@(O,`he:UhԷ
Uf久,T[RYZT}`}sH,;*.  sCx340031Qp
qKcl?K Bf^rNiJ*Ê{_ls}PWYFj7!d&ede1Ui~iu~z
U 16x340031QψO+,M+`М'T*7*$w]}s ZRx340031Qp
qKctH{e:/ۭ71 ̼ҔT.u:0?󟭷ͥ!d&għeƗede1\s}Eϵd-r͚^ 1x) 100644 oh_file_uri.h C6ѯ0ڢKQڤx340031Qp
qKcخwd2I&@SOUr{dV\ia5q!Ĕ̤̜|l<RI/apkmʳ4' *x340031QH-*/OOI`جo%xV̿ǃZqBgħefmPOfϒݒ Skx340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*Áw_opgy9-@ٗW/]5_XUǠyK4&YNI 1[x340031QψOI/H,J`_{Ng(+ rKx340031Qp
qKcp_S8Wz>v|`b 
y9)㎚4`G>/f1%'3)#(19U//%[/8?!bWϒ6ohha E.x31 ̒TJ; mx340031Q()JLN`8(uϵ:W. vZx340031Qp
qKc9BV[qYF KS2JJRjݛxLe\wA;dy@ueL&WlEVW
2˞B%6?0=dDar~nn~CR+ffLOOoz$1azy)zY@E___`$;qf \x340031QK,,KO)ʍO`2åiu\2//=^6PZTTۡEq;~˾xݺ'+ R<'x31 ̒b/{M?1nP
kK ~x31 da*+D= x340031Qp
qKc~m~X؁p&Og^6kb 
y%|fJtVOeC`%zy)zYyW̓/Ha&g2s |+x340031QψO,/,H`'"tU3#pl=23$>71/1=:XFšMyvq	:;2>9?d{~gtv>, `3x31 Ԓļ"8Ϗ߯XթSM`s:#(nںh֔ $&g38kq/-OvUc8 q.Ax340031Qp
qKc ḓ>FTc Bf^rNiJ*j*M:^^C)9Iy%yy%yzy)zYyoĄEgp	K<fr/wx340031QK-OKM.`ffаL+)lލ\/,Hj_(jQ(kpe" ?x31 Ԥrg{զLW_2 x31 ̼ԢbZ<X	̱z8/u Ex31 Ē̲TIÃ
Ge\_m\6 Cx% 40000 graphic_2d J,q<G>u66ا	x31 Լ̼Tݢq5PazRǥ|d$V&%1hpΙZ![UOK,dX?cK$;>	"]_7QX_;->Ӗ>r $1<ߥx31 Ăxo_#iv/%9f x31 ĂxCR7_a8g|kt 	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYy"O\-xRm P *HMLI-*f8K;'	~Wړw s7x31 ҼTW$.dѢڪBj OQx31 Ē̲TdYFt:;o̓n  =x31 ĂxYi5])ew 
x31 ĂԲԼ][Deή`PeGT'@%d2f*jw=AףW\^Ô&3|:S]M|Љs09\[껲-,:(/)L(19VCKLPU/3 UCx340031Qp
qKc|;#7E&@Sʐ*~j[e>6yC)9I)Izy)zYyTdIޒÖ^ 1x31 ̔ԤtgZwziw x340031QLIM*M`8+#7T7z0DQ_RY
TGlF}Gf> |x" 40000 webview *^hHϛ*:P x% 40000 interfaces N"]w$F8m@#J&x! 40000 native 67&BIZc1vt	x31 Լ̼T6ޕ.5f0+Ӽ̻`	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9Fb}4L[GN :x31 Ē̲TiQ- &	x31 Լ̼T	'U$-*d	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜG#{>iYY@Q D;աx31 Ē̲TN;6.d_b㭶[x31 Ăx'_R[m`3S  U
x S40000 hiappevent Aͮ07Bv%40000 hicollie ˡKA'[qSD)40000 hidebug nO	!{| 40000 hilog 
kQrx;fO40000 hitrace }%UD\mU%(@xAhNOC|	x31 Լ̼T_b*w^-Xxnm	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ&/vzll{=x31 Ē̲Tm|e**5_[ 
x S40000 hiappevent WgﴕLK&[0	40000 hicollie ˡKA'[qSD)40000 hidebug o5'5iFɠ@}(40000 hilog 
kQrx;fO40000 hitrace }%UD\mU%(@xAhNXAxx 100644 BUILD.gn ' ^?jQpUU[ǀ40000 include tH;"8q|8(B100644 libhiappevent.ndk.json #s=j\L:,IdK.x% 40000 hiappevent !839KTmhőzx O100644 hiappevent.h #1֒m]VM100644 hiappevent_cfg.h WS@Yp|W::%100644 hiappevent_event.h US!v@n
<}100644 hiappevent_param.h ̎xpL'4mH>,[H	x h40000 ace_engine V0xXVLa840000 display_manager _Ύ΅:ăf('IDj40000 napi }ڂt14>ǒ40000 window_manager ܄L(
F=x! 40000 native ctVFNz{kx31 Ăx}?#]q)rӵfn ïx 40000 kits AoZۍA-DF5י2x 40000 c 6$2=\,Q<s
Ixp 100644 BUILD.gn T =BE|Zr740000 input 2\MuGvX@100644 ohinput.ndk.json J>43{}ꈦ3bv`,Gx31 ĂxzMN,:a_Vv. x31 Ăx+\']YuG4h- 	x31 Լ̼Ti-,3M|uމ7+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/3cWu4fS;n9  >x31 Ē̲T+.N{"jת2)e ϕx31 Ăxn/Pb7kZ= Jx31 ̒bZlrxD  x31 d/kgM]@u&,) Zx340031Qp
qKcQw*#jZs P+(-a;pr+8uKlbVB +K*c3Yf|U2IeGD; 6(x% 40000 graphic_2d 6ůNDF1F
˕
x31 ĂxEşK.뾭}cK׮iN hx 40000 kits 3s6L"<^[`	
x 40000 c .zp%,Yk|
xp 100644 BUILD.gn T =BE|Zr740000 input gŰ=S|D T$100644 ohinput.ndk.json J>43{}ꈦ3bv`Ր*p	x j40000 pasteboard , D΄03U/(40000 preferences 	AgYĕX-)40000 relational_store !2j <k40000 udmf !r ~mL.=Kx31 Ăd'o>ǉ#> Vx31 Ăxӗ;r3.y!jXY. dNx31 Ē̲̼t$ޠsJD / ƥx31 Ăxk^=\":EB  ̥xu{8Ty-de넄.lR(Lj338̜g1Eȸ-VQ=*Ԥ)HhBmzBҰe{~lb}ϰ!VI2H,ARچ4L;hp&9߷Ut2IBpVoyZұM'	y_P $8;#gyC/Vm?tu݀E`QmhpFRr㻭O1ʩPn0KA@ϔŰMMt׸D2$(q!vMM^Qh{٣ݐtaC<,ϮG[rqt2*F̾կV+K3^Qao28lrYghpDA a'1.3)Jg&U5tRI"QX$t}qBUab)Ahu٫[]=C>  ?mz>Ɩ؛[1
bHVUYNܐ8=R)41a{z>C^#QK	^k\hW%\GR"H1(g'N|ti$ԭm.E&JpE(c\[e/+yhsHHrv=t+XSsXq!С<ic/8@%@҉ZFжYEŝWRgؗM]Tt10Wq
ڑA(_-VpulxGhb}o8:!5ߥ]I^HB1`|.OWvfg54-7'N1ص2jXQ<3Z5L!AJG~yo)NQtlvfUd	?k~ߔKvsH0DNoE:ΘcӬnمztKB >^֧=PfgfSdf"M߆
"c"yQ|-Zl&fÂ'_'Kok,=͎ѺVMW#A8&:||Jm 𽜜.E6'bO:lWu+/RY0\i|fo'O;2xy .o{NZE\ӄT>8Qq3Z|@Eqd;3rɺq-[ǿJ}\\U&j{G4hl/K3tѭbƑ%9
~dl^*3!Ɛn@49ղ&{0	%*5K*ͯ٤}@a(HO-~l|m8qv,Soi_i=x31 Ădw|Q?]qx/siĕ ;)x31 Ăx9%8,44۽k'j> zͩx31 Ē̲̼t#mU=Yv !q_x340031QH)J,KO,M,`Jo~aPi@NfAtsg>8JV^`zGҪKhJjw1bǽ]˂/*\|f+4ܸ81̜T>3^w9䬒(.HLNjXv*}UqUG72v?*!!9?~ٳ/_.νmǎ/c{4pf8Ľr(8շ~-wo&{6?Lo~X3m/ōh*Jn+I ivޫ>rb,ۧ!371ÛNp-sgYQ~AFR'*l=c;G˔<t$dpYңic{ۣeYnٞsaB^65`h()ʬ -2WٽaCrH3HN6572(51ނ"?^>4-%Dh$^\sJ}Joc,*SRA<b֤L,{ӟ-4d=XNR=[|UdLfMۆ%5|?ќ9>3
ud ̊ԜxH<</~G0/UlѕgWF==j{ncs*wFSZ_T?=TnK]B;~t\TtT2پs}@9+>fE\|N_9[$[₮64/f7}[8?~OWqMtY81 /(Z*[z/ݸ:)?u1癃nKqFbJj"R54kK̍lcGKƆ`ђ_L|gեԧF]oN{ru͛ϡ(-J/_|qҴj]g+)e$7i(9XiS|tP/l;Z~Ҫ셰ף~?Ǣ2on&00"l	=g vwݧ	x31 Լ̼TS˛ju*Nqₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9S=V~XOS^h; :<Ux31 Ē̲T;ʺ@佇Glq 	hx31 Ăxs?]nbg *x31 Ăx|2^/Bk$;3u7W\k xuiTg,b.@AԀGL+$B$C2dd""AEOH RAAE	P,Ht&<K]]i4U!TD<B&Y<Pٹt#@,$p*T!IcoiZs[Nt`"rCea5qvn5ݪ, 6@'|#e)M8!F0rm&/^KfG,(HPgQzr7fmU3VpI6]i1&zM	 `4(ϋJslIc1.q\XOda	Q[40\Vznx"BF^η;x)VQɎNQw]!Hoqٚ'!^MR9v5nSjۤmeKNs?AĀ uƑN]F#U'MЇ~zWӌĨM
!PGeSTY Y̧w3R:[}*4L@h;NeP3B
*[YP#
E@@)ʒǞ|<AP ŰK$^/ȅ;iFÛ0*
k+&PǊ21was  CwM̕Cbwdm * M6{ƹ,:[|B354U%ƃ)OGȪDt]b[kVv^pP[՛E@#|O×R<:+,ǚ9<pmޡ-]Jo_,L9͏ĥXZg?Lʰ0w%؉/Ha`%Xےrq+9:`, X)&/R<h:zL +c|&=c3sӣؘ(tW~cDζ9!Lh7#r$jjM57\E]?Ʒ +n~s&٨6Űcp>X.iRݭ#.Ӏ@tnIASf-{N	d'~ѐ?Z`"L.W^1{1;<%Hcǿ` TDya;7kжqrVksPh-(R8ӥs`'TT64]a}QRH
;rpuTfmCq{4B`eQ=);E}ҡeQĕ`]rKT	?-%$7FFcx|w[x31 Ăd]"fI.ׯ0@k; x31 Ăx&/>\,<QnL x31 Ē̲̼t9l5i1_D?% A(_x340031QH)J,KO,M,`(?6'7]QMQhu1C4E@.Ů\[ߕGIiQmDSWXT4wl	
MjsJ_msS_ˠ`"BVŦ4>-3$m8*{:S6(7O|AӐZTԐRN{V{;iwxtM=15oT{L&_9-VDmZ^8]tD׳h*Jn+I ie3``.Q}JJ餤{4d&\튲nA~#m}̽
RB3WlEm'*#'$*lxyVztjaZ=hsN%-6pEɻoi:J2+jl_X#	3M//.)JMj96G^ӻ®5WBRXJۻ,杞/qޥ/lǢ2>5--5Jڧl;=L,	Ɯ4d=XN_LNMs{ڤcLieOGגTh]rQ1S?LuAWYɛl*7Ob4ͺ6]y~&8m~hRHwOX(59(%>977կVi[Y֫ϽT2+׾IylX͞ 	Km^paD<nZt.!b˷OjMϮhsr@%놤56>;EnY2SR,&66bg>hEK~90W6^m/?(*w{͓uAʗoi?OGbo)e$}Y#$S=虣 jr>+>%utǢ2gouY}۲iRN~? m>x31 Ăx<?y4d]  x31 ĂdJW9{ݭ3g* ^x31 Ăx~F>mYz}]>;  \x31 Ē̲̼tٷ<wvh1-\*͵`+ /x31 Ăx\t'}粒bG٢x31 Ăd[&%܈޳Uq	Y px31 ĂxSo6ӍWr\& ?Yx31 Ē̲̼tڳ\ui])I`r	 Bxx31 ҼTWrU;w=wcj| Hx31 ҜԔDQwcW?*n?wGfng y{x31 ĲdiwJKaOZ"߹C լx340031QK,,KO,KOIM/LI1H/sk5wɤ&>ZCS`CU3#p6at)`rߘ{L tB{<tEɩ@H(əz o̵1K*lΏJ;Nhykc ,dڥx31 Ăx{'/
_V1m3;LVx340031Qp
qKc~K˧%NU<0* PK)MIe(],MW):Sr2JRSRxEHT5ꕟsQ'%d% *mx31 T%97gokS]3L`9y%QׂL'[(2~x. T	x31 Լ̼Ta?Nh[;1n%ₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9_F}[Ӳԑ󳀖3 C;x31 Ē̲TH}[>̒,bY} 6"	x31 Լ̼T_T
XV<O v	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜG#{>iYY@Q ";x31 Ē̲TV~89̏ߖ? nO	x31 Լ̼T%/Tu͓S.9kVY\XZosVGi4tɂK,dX?cK$;>	"]_7ޣxkZ:r~r{ c?*x31 Ē̲T%%q=/^rJ а	x31 Լ̼TxÜ.Wx!ڞ&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)ps-=e#g-Gqg )<áx31 Ē̲T+U;Δg蠟aԱ 3x31 Ĥ̜̒TOQS6o&^oneEy%[uTomcXR5mr? sx31 Ĥ̜̒ҼT*l%ׯ<|}ɔ5~qy Nx31 ̜bS{jŉU?J $vx340031Qp
qKc~!0'3>լt6;bQPusUw(vp~- t	x31 Լ̼T_riU	Oₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf Ax31 Ē̲T'W-V+XMXD!3 t	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~CëxQU%G6o(NuTm^bIfYj<Hyت9[d3['k"Z=k/ ,=	x31 ԤĢERW>yxl`3&EEiEyɩb9RhygM4!RsK2sKRa7OXaMeҔ4e+T?<p̭kAb2 ?x340031Qp
qKca7ۑ%xwI&@Sʐ!ZkYl${,7XY_UǠPnۧen	+t- -bx31 ĂxߵB8sG<e !x340031Qp
qKcvscgծʂ0C$w2l<pi&3g,vA,= !x340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cpo&nf
K%\'9wf)T+GB-/T!^GS A2x340031Qp
qKc|;#7E&@SʠoA+Z67X[e1%'3)#3%54]//%[/8?!Kr;XGUo^ B.͢x31 ̔Ԥtߛ>	8L,;>x340031QLIM*M`H2Z`4}^OU(/,H\jw-vo֗J; Xx340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔT7~r2k|ѵi!Ĕ̤̼ҒԒl<	oq=t؞c- K2x340031QMLOO`xӴع;^>~{!ʼĒ̲TJY+/}E1#w٩EpG6ߵw[{_lBP
4IKPΕy7Rۭis|9w
-Eɩ;sz.*våMP%EHjŘND3~;aDHM,@<NMO8<#ُԓ 6Ox340031Qp
qKc|Y}^|!jr2
r+SRL[/tG>Pth{_QW N!x31 ̒bSwͼhGӷG8 ,Ϭx31 dj϶bk9 ^x340031Qp
qKcQw*#jZs P+(-aБb,4aŏxB +K*crUTVhAbdC &&kx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	ÉE}>wYFh@XEYּ,;e|
 F4Tx340031Qp
qKcXcpfnǍ.t,61 d51#eyiiE%zy)zYy~rYsswۜk+w'  *x340031QHK,ϋ/K,LLI`PWvʛޥqOOfQZTr3bHuvaߎ3:,]TIN~~PWqp3uk#C8Cv{%:}--I *7ZA5:[\*),M-9[DIiVɢϝ|Ͽ^URX3lԣ>~˼0sV509 'ɚŶ[<$8L-d0WlLEf.5/O}tG_EYfoʧbʂ4A;emn}!( x340031Qtvve!ۨoWֿb
01 ̒bw翸mFuX#S x31 Ăx9JkuZ_ݴsǞkv  jWx31 Ăx|Qu7ѿfIvy^Ta
 x31 ĂxUGo8-9W/WǤ :x31 ĂxZ11F֗\>7U:| gx31 ĂdL>OrKel d x31 ĂxJ	#Ձ۶aJV7a Хx31 Ē̲ļ"d&UxN[E x340031QK,,KO//.HLNMKLO-`ffkLx_ PGWx31 Ē̲TN3Oܰbbt'~ x31 Ăx[<M?;~e֋6 x31 ĂdP6²{6+
^W
 ¥x31 ĂxUDf1 oq(kOG x31 Ē̲ļ"kauEU[|
 x340031QK,,KO//.HLNMKLO-`yͬɜQ[e9 :;	x31 Լ̼T׺_Z=\$I	uMR2r+sSpH4F=.Yyx\{VcTC}<v'A3R|=Z{oMRGZv  #=]x31 Ē̲TIG*8[ h @	x l40000 access_token l*ŷ1ߋp6<С40000 asset _}Z\K-/掩QM$a=40000 device_certificate Z$4iwcsć 40000 huks `J. G!bp:)x& 40000 certmanager #yק@x(U.n8CC<Ogxp 100644 BUILD.gn "CH/ʒx-d40000 include /l+O׃)g?100644 libcm.ndk.json 6>rq#?A!>)xW 100644 cm_native_api.h TVg֡&	Ζ[ߠD100644 cm_native_type.h e%vZj3)? Qx31 ⒢̤ҒԔĢĢTιEtx2G)-:-3'571/1=575êY/r/S~'BdER _"x31 Բļ"8do9f慣27  9n~x31 ̼ҔTe3m,ό75 |x31 ⒢̤ҒԔĢĢTɕ_ܯl;gIL2sRsSsSJ>0"r:w"OV. %0x31 Բļ"T?^Ys'LsY9Y ;x31 ̼ҔTzq[0
f- sx340031QψOI-LNMKLO-`-Vd}
$};q(O-*OOIZ[jLO$&vx31 ⒢̤ҒԔĢĢTɕ_ܯl;gIL2sRsSsSJn]w3wWy &Dx31 Ҕļ"ӥewo)8f t x31 ̼ҔT,b"V>ީ(  7x340031QH/MO,ΎO-*/OOI`xͿ7OG~P"%?#IWnb^bzjPKۑ?IUr6z'1^} 'x31 ⒢̤ҒԔĢĢT*<)>x|M2sRsSsSJn]w3wWy Q%Ʃx31 Բļ"Kg5Q	So G%x31 ̼ҔT>82㟤Կ!ڧx31 ⒢̤ҒԔĢĢT*<)>x|M2sRsSsSJtn\vq`ı1^ $x31 Ҕļ"p{j[DEO Yx31 ̼ҔTЪ΅=}όV $x340031QH/MO,ΎO-*/OOI`X.B4$y'q6ٗo;noђ+71/1=HƟɪilSY/پ &٧x31 ⒢̤ҒԔĢĢT*<)>x|M2sRsSsSJlx%߰<7R$ÿ 4$x31 Ҕļ"Owow|8"Sf  x31 ̼ҔT>gWK²}:y.  x31 ⒢̤ҒԔĢĢT*<)>x|M2sRsSsSJK/<U帲uo8j &$x31 Ҕļ"və
g.qs	U+~v[ ^x31 ̼ҔT5m]-:]*W mx340031QH/MO,ΎO-*/OOI`z.o.6cw>u-HrSZbR`krL`O\ Z%x31 ⒢̤ҒԔĢĢTrn^k7viV̜ļԼO|9l). #(x31 Բļ" khM7,n\)N0  x31 ̼ҔTۅvN]X,h  ʧx340031QψOI-LNMKLO-`H;W.w,s1ġ<>(>9?%4keJbæL֜s !(ox31 ⒢̤ҒԔĢĢT;gزR{mMCUe&%0_x wqeNqp G7&xx31 Բļ"c'<͚QG?󔿔 7Ox31 ̼ҔTƣa_}=̌f |x340031QψOI-LNMKLO-`شPwu곔Y6h6ġ<>(>9?%4keJbæL֜s (	x31 Լ̼Tx|^=TX2b&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)psz7wjG- =x31 Ē̲Tu՚h7'M5{2]~O'lkx340031Qp
qKcj!־vSɞef,:h($d''1c,֖GVTW+nM]VUddFVW
2?VIkr=o4$5>5/=3/G㗫OZ9ԙ/. ssn806;}ձՇL֓ck~@lb`/FOّ2hLq tpRx340031Qp
qKc[bcKϯ2ͪm(d%甦2\Xf{$^1:{Dr!Ĕ̤Ҕļ"l< YqIx]=X u12_x340031Qp
qKc[bcKϯ2ͪm(d%甦2RV½'5:-3_YZU0;.iO0k{+[ 0x340031Qp
qKc[bcKϯ2ͪm(d%甦2(ګUU&|=]1Sr23sKSS2sSRfq%-	fvMb/ce /x340031Qp
qKc[bcKϯ2ͪm(d%甦20H[Y|k+x6BLLψO/MO,ΎMKLO-K*c`J'5s- 1&x340031Qp
qKc[bcKϯ2ͪm(d%甦21糢b\84esC)9I9))yEzy)zYyA^	3&{N +3x340031Qp
qKc[bcKϯ2ͪm(d%甦2t?һ>J33&l6_YZU0;.iO0k{+[ 0sx340031Qp
qKc[bcKϯ2ͪm(d%甦2TvHL6F[$ZiLC)9I9))yEzy)zYyA^	3&{N d.x340031Qp
qKc[bcKϯ2ͪm(d%甦2W:ݖݏwk1%'3)?#>9'4%>%8;>71/1=H//%[/8?!+aw\`fd)2V 1qx340031QH/MO,ΎO-*/OOI`^rql-mk.>lђ+71/1=xm>m
B[;% '6x340031Qp
qKc[bcKϯ2ͪm(d%甦2$0Ԭffӆ__o1%'3)?#>9'4%>%8;>71/1=H//%[/8?!+aw\`fd)2V 1nx340031QH/MO,ΎO-*/OOI`2=Tx.np2hψGҕZR}^uZ]&x340031Qp
qKc[bcKϯ2ͪm(d%甦2-^xaAC)9I9))yEzy)zYyA^	3&{N 2ʣx340031Qp
qKc[bcKϯ2ͪm(d%甦2ҏH<a>e[,!d&g'䗦ħdg&%de10y%KZ9^ /	x31 Լ̼TkoJq9(ukdTO(% '2>71/1=!\
Z4?IhTQXɰ~ǵn51HM54cw|D<3/%nT_f0ӔN# ;x31 Ē̲T3՞a:h]:Mz50 fܣx340031Qp
qKc[bcKϯ2ͪm(d%甦2AUrkGH1OeYj1%'3)?#>9'4%>%8;>71/1=H//%[/8?!+aw\`fd)2V 0x340031QH/MO,ΎO-*/OOI`x|d/cSu{-HrSZrAf&TX pw,Jx340031Qp
qKc[bcKϯ2ͪm(d%甦2-V}iӴ)w%.0_YZU0;.iO0k{+[  0ץxu 100644 BUILD.gn >2`8˗ǙSϫ40000 include Z-Wx6N100644 libhidebug.ndk.json #ͽGwEDn)<횒w/9x" 40000 hidebug Q;ƈ"軖=Xg<ƯxO 100644 hidebug.h ׃uJ~\Bv100644 hidebug_type.h 6W+YCq]ely!Rx31 Ĥ̜̒TOQS6o&^oneEy%U&ݵbwEw= !x31 Ē̲TԉmmVB zǧ	x31 Լ̼T	^1ltגw/Mp3+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/hadG5-K9?h9= .'=Сx31 Ē̲T?6s,<v-O|Q~ x31 ̒bbwX݂P}) Bݬx31 de_z9#ftTa 9x340031Qp
qKcQw*#jZs P+(-a'"lYN/$Ro1#?D//%[/8?dWˌw&I
 J)x31 ̒bo,]tRӤBe뜶 %x31 d#OL|j4 Ox340031Qp
qKcQw*#jZs P+(-a48'^?0<0VUegxue;ʎ$v\ j~)
x31 ĂԲԼwU,{zQGG&PE99N/\k.G]4`JRRJfs;`	!g09\[껲-,:(/)L(19VCKLPU/3 B\	x31 Լ̼TSyOYܝc	zkLR2r+sSpH4F=.Yyx\{VcTC}<v'A3R|=Z{oMRGZv .<x31 Ăx;\j+M\ үx31 ̒bSsȬ؟]du {x31 d,^z!|9KN  ~x340031Qp
qKcQw*#jZs P+(-arš/n{mΞ!fgde1xٙ,3>^]cΤ#	WC-ůx31 ̒b;s'ƞo]" Zx31 d[9c~; $x340031Qp
qKcQw*#jZs P+(-axyJsYZ_~4e/C`%zy)zYy^v&ˌW׾Xf3HhU [,	x31 Լ̼TĦҋsyo^-ANₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9_F}[Ӳԑ󳀖3 v<`x31 Ē̲TnO1;zya ݧ	x h40000 ace_engine #MgV!ح8O40000 display_manager _Ύ΅:ăf('IDj40000 napi }ڂt14>ǒ40000 window_manager qY|A	*A>=Px! 40000 native G1WY;d	x31 Լ̼TgeEm+=>ₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9S=V~XOS^h; K>x31 Ē̲TYr]%l/KlЦx31 Ҕlgo?ke1؝7,OOIMf;场ϑDf^۽T^Q883?An;Jo_Sԃ(JZUdBWѿկ8˹yV"ݽp^,ˍ}kMgaL.V]Q\0g^W	ލ8\qս2de{r_xdUޙ|275%Ҽw*$	d&%U21E8k]6sQWXZd;|No]^Ƃe)EɠKOKKe-d%z撙iW}s Ûx31 ̒by;N3.לsi|d^ Rެx31 d-gLh~6Z𬨧y4j,x340031Qp
qKcQw*#jZs P+(-a㘺__ax4w/C`%zy)zYy^v&ˌW׾Xf3HhU +rx31 ̒bѥ>g\_8پkx31 d8y#I~ 0x340031Qp
qKcQw*#jZs P+(-a>ǇO!^fՇ<mB +K*c3Yf|U2IeGD; 4)x31 Ăx&gcR|+ -ҧ	x31 Լ̼T>;*E4|uVi{(% '2>71/1=!\
Z4?IhTQXɰ~ǵn51HM54cw|D<3/%nT_f0ӔN# ;x31 Ē̲T=~tg3HUb ^x31 ̒bM[=iN7NLg 6x31 d΍.c_\3^~ ~=
x340031Qp
qKcQw*#jZs P+(-adzGӄ?9wVNSjzbF~X^^J^Vq~2յ:L*; q *	x31 Լ̼TD4cJ#cxt	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ&/vzll{]=x31 Ē̲T#AsUX{K%  yx340031Qp
qKcXcr8$b[L@!3/94%{'i65̻j~\AC)9I)izy)zYyKBfyFr}\WǪq L ,x340031Q(MM`p/:p6_~P 㯺EE)@oGLf5DVZTvYy?̯MڵlLMbS|DIYǿO	˵`
JR
͎L$l9aS I	x31 Լ̼T~[vh<-&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)psg9ĿtCnxbu}ɯم@	x31 Լ̼TwU-?r}ȷ'W#g,4+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/s@]V[$Nx/ {?x31 Ē̲T\^YG?Mxy x31 Ăx+xZ+~?-x31 Լܤk*\wqvEL )/5x31 ĂxC˄"'8d#u5wC vx31 ҔlEK={zr};&e)b/.]ziwӼgg1,`kl{Vdu^KDQ2ЪD$+}}zwЂ(M)ERZֺymv؟p#D]fnbzj|jZZjr	Üy]'֞^{7p6Uʐ!4Hz%sg>lN6MMM:14/%䝇Ō?]-ZyJs2*JgW8$}ʹ	ÞUdQ//Oktճ+8A$V!)}Ÿus׷=3XK,3%5?(?yyyoW۬?m?JqSq ˌx340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`h?۸#V<f/iwWGUU{<W&l{\4>%,39hg?m]\Te&G7Ty%@nSyn	Pfs>zKaTyE@^wGt*iC	Sg_нha$؅L6`TԒĔĒ+ku߿1skӯ܆ #$?>/$3Am1~]k[mp3N.{4kי*SYrs_%Y*} :ڲ̔T$S-[3Eaz 	x31 Լ̼T׾0/g[MvGdₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9S=V~XOS^h; u=x31 Ē̲Tk6sb:M^ hxx31 Ԥr#^M{%"%uPI ʡx31 ̼Ԣb3&^glM`gWR !x31 Ē̲TY5%ϙRp mx31 Լܤ?p0?P$S !x31 LC<ޅ'tV	{\5&hmRtQjq~iQrj|nb^bzjnj^	Cy}A<mO] ;Qx31 ԼܤU+X~6B_4_m =C	x31 ԤĢCh{WlZN5ffԴԢԼbtLy"j*JI,K̉/./JeP\<Urν_O9;sDiiJnCʲ*IsMfq8ڵ 1 =zx340031Qp
qKciPVy_Y׆Hib 
y9)Z=b[ïlTohqiC)9I%IE)zy)zYyS}Og+=nˤ  /ex340031Qψ/H,.IMO,J`h*"ERq:|]n!EE)@=/-8{CT0f~+ Ds*	x31 ԤĢkfHOcNfCԫL RRRSz21}f#SoXy(5'$3?/1'$(AqTWY|:.~=`69)i)V$15y[kׂd x>x340031Qp
qKciPVy_Y׆Hib 
y9)|t6٧z}#C)9I%IE)zy)zYyS}Og+=nˤ  @.x340031Qψ/H,.IMO,J`faN.s׳C,JSSRzzw9^Zp3a<W W&w	x31 Լ̼T%8../y{&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)psj{Z a=1x31 Ē̲T%mxrlz< x31 ĂxϋMj$K| ޥ	x31 ԤĢG]Y>R;(srt@%3H?dcSGn^W(DUQjNbIf~^bN|qI~Q*F+t]zlޙs JKSrRPIb k21֮ 
4=x340031Qp
qKciPVy_Y׆Hib 
y9)*/W~'pw}OBLL*H,.IMO,JK*c껼|?\mv[&]xD 0x340031Qψ/H,.IMO,J`hkyzb\],iyAΜ2Ģ4>(>9?%wg/>Ƭ~S X'ץ	x31 ԤĢ{{kSoggy(5-(5/9A's8gF:2uG!RsK2sKRO5zŷ\sSmfΜQZƐlJ\Gv-HL ?~x340031Qp
qKciPVy_Y׆Hib 
y9)o7⽽\7>k1%'3 $5)?(E//%[/8?aIs'mtQ{ &1x340031Qψ/H,.IMO,J`vӋo('.ԢT]!L}?O )-)a	x31 Լ̼Te3Л9UNV0+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/3cWu4fS;n9 0>:x31 Ē̲Tg"7.窑<ð w	x31 ԤĢ]Bo_LImQTZZ uГ93#O}Sz]ͣUE9%y9%E[йw6yg΁(-MMcHYB%`#Z$& yc:x340031Qp
qKciPVy_Y׆Hib 
y9)%xԧPfѤ?gYXBLL*H,.IMO,JK*c껼|?\mv[&]xD /x340031Qψ/H,.IMO,J`x1\s|-C+V?C,JSSRzzw9^Zp3a<W \7*;	x31 ԤĢ)S&ޮm\Z1_@%3H?dcSGn^W(DUQjNbIf~^bN|qI~Q*F+t]zlޙs JKSrRPIb k21֮ =x340031Qp
qKciPVy_Y׆Hib 
y9)W6Өڻh:NsSr2
KRRR./<WzrݖI7 p.x340031Qψ/H,.IMO,J`ܱ₀lX֎<XƧ'秤rQg5y 5)x31 Բļ"kDޱ/r7]רUz 1Xx340031Qp
qKc8*oz}լwr%_NZnb 
y9)l#~iڰIWXb1%'3)%,39571/1=H//%[/8?a{iKi+.x- Vv1x31 Բļ"	CZܛ1 " ƫx340031Qp
qKc8*oz}լwr%_NZnb 
y9)wb/zyۿdZbbJNfRJjYfrjnb^bzj^^J^Vq~䣗RV(]Z _2]	x31 ԤĢӯ9-X~uU}0(*JMK-JKN-fNLݾ)bQԜĒĜTS^e-WܻTټ3@1,[A0dcn]A=x340031Qp
qKciPVy_Y׆Hib 
y9)o&T)x(؇uqN/!d&$&'de1L]^>y6-.jo<" Z0)x340031Qψ/H,.IMO,J``NVYh?1Ģ4>(>9?%wg/>Ƭ~S tT&x31 Բļ"ol&Auu^ <ܫx340031Qp
qKc8*oz}լwr%_NZnb 
y9)loWO+MWr1+&Sr2RR2SsSR&BGAr\ "[0x340031QψOI-LNMKLO-`xo*ۗ=C!EE)@}aeWأ}{˒Z+Fx31 Բļ"IS-6-.chU. )x340031Qp
qKc8*oz}լwr%_NZnb 
y9)Zߦ󄬮Ls@X!Ĕ̤Բļ"l<G/Q; /x340031Qp
qKcP\ka%K-طQĈĢgLY9{w"旤'e& ՟<wH6+jM;ń /NI-*=|I**+/9Q4mE3HJSSRj'\jQjS-)^6Imv&]	7Nn;WA,r2'de1HTZx)ouaؕՒgsҥx340031Qp
qKcP\ka%K-طQĈĢf.!l>T]O¢nJuRH7aEV_ZTZj=YglK!)M-*/OOI<tV4IY&<ه6;dweOvIM,K<9hTQNfĂL<ɲjW/.Za~! nv	x31 Լ̼TNGtn8	0\K]cVY\XZosVGi4tɂK,dX?cK$;>	"]_7gٯ|3i~vr :<[x31 Ē̲TklKqN? Ȗx31 ̒bsWfK\t0|iϲf Ǭx31 dj2<]e9 Šx340031Qp
qKcQw*#jZs P+(-axatI/)#R_33JRL}ձxgRّю (
x340031QψO,/,H`IDׂs_23$>71/1=Zn;Vy;ƥn>VR٩) chm;u +ǎS㘃PXWZ_\RR0w"o89= Ex31 ̒b[ķOrZGÉ? Hx31 d+_u>oGߧn=S mTx340031Qp
qKcQw*#jZs P+(-ahx8o5-MCB +K*c3Yf|U2IeGD; W)x340031Qp
qKcP\ka%K-طQĈĢ.64syJk	
RsKRRKY^3FiL;ֽFV_ZT{qWMVsgoDRZT_
T㔲vW=maLER	WcJU+ʝ<UM TQNfĂL<ԅg,9yfIkK} Ϩu̧	x31 Լ̼TVUlMzA7W!u	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ ᜛))%UiGFA3Rw6I~ce;6 ;x31 Ē̲T[Y<g~JIeC*F
x31 Ĥ̜̒TOQS6o&^oneEy%l|Qw3^Ys*<)h S	x31 Լ̼T)K?ޝM;vUF%}LR2r+sSpH4F=.Yyx\{VcTC}<v'A3R|=Z{oMRGZv =tx340031Qp
qKc~!0'3>լt6;bQ/gҍ/&{:V	5 eFx31 \MY(WpT{]" 	x340031Qp
qKcٴ^;ˀvz	ʆ5YezV_CuCT_<AR_RYZTWYkq{q.^[[&Bd&K*cHf}ޭYS? o>l	x31 Լ̼T^m $]&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nζzP	=`9=Ax31 Ē̲TU,OXCWe=Ib 0ex340031Qp
qKckX>&'3<W//%[/8?A ˓:;63qTe~F|yf^J~^?7nx=)iBR)te@kYfvjdmy)'KaM-K+O)I-RwL%;f2LܱCOAfPK7xiu$^UM| gP	x31 ԤĢERW>yxl`3&EEiEyɩI?]SfIS(5'$3?/1'$(s%x2^%7UT4%7!e
$&38skZ +:x340031Qp
qKca7ۑ%xwI&@S QgQ3j0t\Sr2K2RRR}X|AI}6W3;߇} *-x31 Ăx_^x0A[ ~-x340031Qp
qKc0VZ\0r٣W_\&'3),75%318(9U//%[/8?nK$zgWp #x340031Qp
qKc|Y}^|!jr2
r+SRJrx&ɯ'NOs Hx31 ̒b[fJ<tv x31 dfg2ؙ| m	_x340031Qp
qKcQw*#jZs P+(-aع,#w[~x:pZ!Čl<)WE5j5)LN: (
x340031QψO,/,H`IDׂs_23$>71/1=ڋ%$ݤg슥W?ٛ{:;2>9?d?t;Uo(|qrBaA~f^IjQ|qIeHu܉k$g/z@ ZEQx340031Qtvve!ۨoWֿb
01 ̒bպvӸ^}z! x340031Qp
qKc0PoK߼xM371 ̔|Vbno:u=TIiNvbߥL[zcmen3 o)	x340031Q(ˎ/I,I/`9:AK1!TaiNvbPMdVmKdWOZ{EM|r~Q*P=¹efI9t.ybBjwWDu^ LJ9|x340031QK,,KO)ʍO`Z^S|i72^e>bCyjQPneq=V' =$x340031QK,,KO)ʍO`HVO={Ua!Ԣ"ZrR9S7zO ]j"Ax340031QK,,KO)ʍO`Xǰ|ν׬'_}:Ϭr}WCEE@[=Yեr*o :8!	x31 Լ̼T[]^|,IaIG.Ed$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%n}w[mat;=_Ck 'q>,x31 Ē̲T<~|~wF)X s 5#	x31 Լ̼T517^-w"N_!}	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ+g`)/4Gv<=^x31 Ē̲T	ۗoF51, %	x31 Լ̼TOv֚nRX|&d3ZLR2r+sSpH4F=.Yyx\{VcTC}<v'A3Rw6I~ce;6 og?Bx31 Ē̲T+[|HFE_Gv;ߥx340031Qp
qKch\:F٦
olQʐq%Qj]:λ :M??)gZ3n
 N(
x340031Q*K,,KO,`xrJr%W,;rC,JK*R;z|aSEg>ޒ_xZ~B54}@ޫӅ:~?%*I[n7vwo-! [H2x340031Qp
qKcx+: M3~q!DM^bIfYj|biJf~|r~^YjQIj^ófoxٻ[s]yԍCOz'bS\YX
Դl'?6x홵"RܚR3@<,>Rr1oe@gu5de1NZﱍoU(r] ]c	x31 Լ̼T!u^Αh1[fVY\XZosVGi4tɂK,dX?cK$;>	"]_7瀾୶I/ۡ^ F;̡x31 Ē̲T3zrͱ"(Q-X|[R 	x31 Լ̼Tyn*LULNkm4k	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ+g`)/4Gv4;Hx31 Ē̲TˋS/Uo~.$#s4 ) Ǖxx31 ̒bVo,?˾,/؜p ?x31 d&E>uG[Ùv ߠx340031Qp
qKcQw*#jZs P+(-a`Wo|OcIHgC`%zy)zYy^v&ˌW׾Xf3HhU ,'x31 ҔlEK={zr};&e)ӂl(Kaʔ}W883?a c_cCGߛ'"ZJ V%"Yӛ0gmL<DiJQ.:ֲ\ϳ䬏n;t!2sSSRK늟=!ܻK1W=w_ì;bs׌;܆MM:14/%䝇Ō?]-ZyJs2*JgW8$}ʹ	ÞU=__
tgKWq(,IL-BRqJ77#o{gDiYfJj~|AQ~2(S3RޮdY~#⊧&_ #S@	x31 Լ̼TըEK}MR2r+sSpH4F=.Yyx\{VcTC}<v'A3RLX9oc?MyԎ>[ =hx31 Ē̲T<?UqR8C& ʧ	x31 Լ̼T>MZr;}LR2r+sSpH4F=.Yy,ON)騪H;2OE7
"]_7瀾୶I/ۡ^ S>{x31 Ē̲TegR9Vn x31 Ăx1=MSo\=!nK x31 ̒b5InRZzL> cx31 d&ߌv /1(ƚ6 
{x340031Qp
qKcQw*#jZs P+(-ap7;`&Wgum.۵pF!Čl<ߵoOYr~lܮ/Y  ,x340031Qp
qKckX>&'3<W//%[/8?西xyx}c^vZ̼rj[-5|\Z-JVPZWSZ%:fJ.wdc9RhC[zHq\ b2x340031Qp
qKcYq=Z)lOt!jr2ˊRRRRLg^Xy*"+;=R7  ;	x31 Լ̼T].v1|ǺX'&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)psj{Z c=1x31 Ē̲T;3O4c}n}^% x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*CG3μe7޻\ۋE(-N.,(a8w=Ϛwz̊# 2	x31 Լ̼TsLYҌ?ElI5!b&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3cWu4fS;n9 $;	x31 Լ̼T[-Vtr'\(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)psj{Z ʚ?x31 Ē̲T^̅u﮻\\mwoN px31 ԊԢĜԲļ"7_{`-[Qekg 
x340031Qp
qKc0仱;G{ެm~4Bd&'de1L9XӮtuJRĂL'Imc ҁ2CnNȾlF} 08
x31 ԊԢĜԲļ"qwN8@uߢm8
x340031Qp
qKc0仱;G{ެm~4Bd&'de1L9XӮtuJRĂLO~pswof),,H-*$i< @r"h}(>Tx31 Ĥ̜̒TOQS6o&^oneEy%όx6]<zCЌ@Ǫh  	x31 Լ̼T_K'Θ\OlC'3+J,.IMKLO-b?׷BùV#O4xdAT%d2q[M%BSM.K/s@]V[$Nx/ t?_x31 Ē̲TGI&mhs[qdp]C< x	x31 Լ̼T_.$;Oe 6ssӽ&`E)9yEVH8juIFO,ʼĂLo<=vDBh> y)psj{Z E<x31 Ē̲Tyu.^FM+W ~	x31 Լ̼TVUlMzA7W!u	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ&/vzll{<
x340031Q*K,,KO,`xʐr2tت~_1ʂb?_T&񴏧Py)0c+%D/лtΟOI|
nbcV卿ݝxKc5 Fx31 ̒b[
XoJZ_x31 dfdߘʕS? 
Sx340031Qp
qKcQw*#jZs P+(-aVxY*tyg*s>B +K*c8`]/:eY a)*n	x31 Լ̼TW9cVLR2r+sSpH4F=.Yyx\{VcTC}<v'A3Rw6I~ce;6 d?3x31 Ē̲Tًznqa7ʝ Fx31 ĂxyYl}"LV޾ 	x31 Լ̼TsLYҌ?ElI5!b&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/UmWd%s[7\Z	  ;\	x31 Լ̼TK̜ۚ0|l8H`I	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ&/vzll{N=x31 Ē̲T?;#޿y/M] ܛG	x31 Լ̼TeIRJhX{(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)psj{Z 7;x31 Ē̲T'Y|1j-c+ ҝx31 Ăxx&MԮzK? Tc	x31 Լ̼Tm9xoK2\kVY\XZosVGi4tɂK,dX?cK$;>	"]_7瀾୶I/ۡ^ ;;tx31 Ē̲TؿSN,8>VƆж ԉ[	x31 Լ̼TxVjѭV*TMR2r+sSpH4F=.Yyx\{VcTC}<v'A3Rw6I~ce;6 >#x31 Ē̲TYO/[;3͎* x31 ԊԢĜԲļ"So)_G懷fM 3ާ	x31 Լ̼TG;V/[Wu'7xUƚ(ₜļ"s}+?k:$MQ}KDe^bA&7X"!4dI̼r9oMҽ_~ n=tx31 Ē̲T#l-yenS ɘ-	x31 Լ̼T=+=؊))zxm뢲&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/s@]V[$Nx/ N<x31 Ē̲T5~)=<``UyL :o	x31 Լ̼TI]o8ٵWt:MR2r+sSpH4F=.Yy,ON)騪H;2OE7
"]_7瀾୶I/ۡ^ Q>x31 Ē̲T@_Y{H}s0 {بx31 Լܤ=9vk
::g*+ x340031Qp
qKc0i;~WIڏ٩M7I+I+OMJMK*cP>cWT9fnaƴ<{6bI65/mRXu'@=/LpYщק`ՓZg-RuAx_iI`TP_Q	԰\)ii󹧷KD| Ɔpx340031Qp
qKcj!־vSɞef,:h($d''1c,֖GVTSM`q:MSȌ(5/%d t	Mӓ{YaqifIj|j^zf^*C붾3u[B߈7yf7W{&ދ15?lbZ6&{Lt r¢x31 ԊԢĜԲļ"3.1>Ö˫n ,ޣ
x340031Qp
qKc0仱;G{ެm~4Bd&'de1\e_EMb"<JSR22v=kTir?ZΣ),,H-*}{`nz&_'m~8 X@B	x31 Լ̼Tü|I'Ng\ЪT(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)psj{Z 0<.x31 Ē̲T'S<ʪT}7ߝ[ 	x31 Լ̼T/oWNJ-q[d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%n}w[mat;=_Ck `>x31 Ē̲T&Hjݳ7WPdq ՂEx340031QK,,KO,MON,()-J-`V-f=ay5'޽{6* }x31 ԊԢĜԲļ"e.s_%t遻I" *>	x31 Լ̼TZ*Z:!''9&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/s@]V[$Nx/ Q!<x31 Ē̲Te5?f,3ˎsi,SqW Ӗ	x31 Լ̼TJ,3;5&q_rp̿&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/s@]V[$Nx/ ='x31 Ē̲T-IȳL7a·iu wx340031QK,,KO,MON,()-J-`t=9X4;Y= ڮ	x31 Լ̼TGkUUwhF	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ akjb,jh$tyf^J~9ܜ&/vzll{~=x340031Qp
qKc|;#7E&@SʰxEe*ސN.:+!Ĕ̤̔Ԥtl<_x7Mp31gu 1Cx31 ̔Ԥt-|'/q^4 ox340031QLIM*M`.9$dcpߺQŗTU.͌mY0N' dx340031QK,,KO,MON,()-J-`4]T݂69o.ݽG ~Fx340031Qp
qKcjk׮ܦ.]ff PK)MIexʬLy-r̘b1%'3)#39?''3U//%[/8?3i5\ޅ2XZsݵP l1x31 T;Kz|_IIg- >x340031QLL`P:r8C	[Ҭޮv%9 ̦x340031Qp
qKcjk׮ܦ.]ff PK)MIePa5?5&~W!d&ed&dde1:|&ûUKK76t
 0x31 TTi{/7>t系x340031QLL`+g|ӭ-%. +x340031Qp
qKc9BV[qYF KS2JJR4ǯxQDcS\dy@uvY߫lCzqEfRRRA.KYﾋ&[_"4$5>5/=3/!]ۿu[U~Cpo<'wủajMgK*j%9v3_K.}%< rx31 Ԓ{%#؊dv:}}r_̴LKkjvݷ1!Q! Bx31 Ԓ{%#؊dv:}}r_̴LgY1E}}2]R 	x31 Լ̼TWOo郈Gy?d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%nܶ9)8 p?hx31 Ē̲T4.qb5sɱ5 qx31 ĂxO\}Ę7vW  |[x31 TJ߸E3QTx҂Նf&&)z+OYR&LXԑwЕ'UiյckKEuAbrvj}sN{hkK.fDUYX _{Ĵ~yoCC^bA&PKUl3
{[2V~UU7_-NEQ__Zq334c<} Mx340031QMLOO`H(wDEYPз"K,,K|wHҼ9(*S\=(egO匷?h(JMN*Eseލvq_t]EKq~iQ2sSkA5d&!}OΔEܕL"5'7 %!֌mO:I 7x340031Qtvve!ۨoWֿb
01 ̒bƋNuu<#ZX; N`x31 ĂxWvۮb]o.ki~. x31 Ԓ{%#؊dv:}}r_̴LC20trֳ) 5x31 Ԓ{%#؊dv:}}r_̴LiIz}Kڳ yx31 Ԓ{%#؊dv:}}r_̴L-~=zw;l߽ fţx31 Ԓ{%#؊dv:}}r_̴L.È4NK虴 Qx31 Ԓ{%#؊dv:}}r_̴L#rgV0(0vҎ#1x31 Ԓ{%#؊dv:}}r_̴L\<*Mco.Np~ x	x31 Ԓ{%#؊dv:}}r_̴LiJOjyaĦ?~u Ix31 Ԓ{%#؊dv:}}r_̴L6ە_ع {	x31 Լ̼TENfnvm`R<(% '2>71/1=!\
Z4?IhTUXp?i딒J#Tt y)ps)\hd-o]N1m =x31 Ē̲T|O˸;H03t 
i9x340031Qp
qKc !Nf~Y2&(1=>1/%>(@/nG%0̵Ewp	<1)'5>%8($:=#I
&?ՐUzج+c+ocSTi^bIfY*!%@cc?~ًK6%31'?t|?[W
?:4k^/"z2mVR,s&Z2JR@`-j¬O*0L	>!!d̤̜̒J^H[l2Y|".W .iɥ@=G{}kcZOS[WԸmr죏eW:1;2>`wg*DUYGվ}زNv0LX*vfd+QLo(peo+(K, vI:tꤓUn++ddFU]
JascP$P	Ϫh]QT% mVR7;=O+W5Q"-9@l8#id;Z^K2'5%(3qg9q%]yJK33
JK:YTKoJ_< mwx31 ĂxbE1bw9"L9	 mx340031Qtvve!ۨoWֿb
01 ̒bO?>zƶ7^<Օw x31 Ĥ̜̒ҼT[2aq~-䏦G]cP̨x31 ̜b$M[|MS7ѩXIy? u	x31 Լ̼T,r3+6Kₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf A1x31 Ē̲TOLYzMJ.TQ x31 Ҕl_\9&舮	^X,4ʲd&ݫek㮟~G]883?An;Jo_Sԃ(JZUde|ƃKA"c-k]<KC;Og.371=5>5--5aμrkO/˽qt{ef6[߷~׆S՘&݃MM:14/%
>kE+kl=+4ql6d9IEE=wL<Z״7lC>@ed"ylڴ=[9EHJ/Rqܯ*R/!J2SRAv%@sW<5:7 wn*x31 Ԓ{%#؊dv:}}r_̴LƚܳKs<. kx31 Ԓ{%#؊dv:}}r_̴L-%XJ͸ʅkB :x31 Ԓ{%#؊dv:}}r_̴L{>kohiazF,l ux31 Ԓ{%#؊dv:}}r_̴LE3OqhK]͸ x31 Ԓ{%#؊dv:}}r_̴LE%N\M{-m Ix31 Ԓ{%#؊dv:}}r_̴Lc?n>98p) Cx31 Ԓ{%#؊dv:}}r_̴L+<!S۪{6:̧ Cǣ
x340031Qp
qKc뎕oK[,1L*LK*cyQ=5kKoECgăf0L^lXuM_b@*s2SS3򁪵zNqY2?;6\_ *,>x31 Ԓ{%#؊dv:}}r_̴LGdk]g|g? x x31 Ԓ{%#؊dv:}}r_̴L}7^oxb6>C{ urx31 Ԓ{%#؊dv:}}r_̴L	+MEb?iNPYEʥ \x31 Ԓ{%#؊dv:}}r_̴LB_|!{'W D&x31 ĂxIn_;'} #x340031Qp
qKc|;#7E&@S`T&-LKPgﺶWnBLLLIM*MK*cPU.s-- /x31 ̔ԤtNƨ&:E^8xS7 Ŵx340031QLIM*M`(0y7俋Wf,AREQ|IeA*P!\LJg-N3 |	x31 Լ̼T=Eo^pwNĞxӜ4ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg9.x-lbvhm ]v<x31 Ē̲Tc6_//_ݫ?ml{3 Ix31 ԊԢĜԲļ",(~#GV x31 \TE183	}Z 	x31 Լ̼T>Ip|7_t	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ ᜛))%UiGFA3Rw6I~ce;6 
A;x31 Ē̲Tf7ſ27hyX9kf}4 3	x31 Լ̼T'ZۭԲd׬|O{MR2r+sSpH4F=.Yy,ON)騪H;2OE7
"]_7瀾୶I/ۡ^ m<ԡx31 Ē̲T+>JO>i x31 ĂxYsb25& 7x31 ԊԢĜԲļ"/mo>I7ӏ\ 
x340031Qp
qKc0仱;G{ެm~4Bd&'de1~x±[ߑ(}w)`*OIɎO,`HmF9S>/:MaIeAj1Pi$W~W:4_7Ws @ťx31 ĂxOe59sysՒ `x31 Ҕlo\r~3CXX_K&ʲdSΩIo6\KJS3vm0N=dUEHVH/dx\nuYj^JQ.Ųطtn}#3sSSRK늟=!ܻK1Wמ{)sYw&MM:14/%
>kE+kl=+4ql69IEE=wL<Z״7lC>@$V!yGapu.
pscLWҲ̔dP`ǧg2xI=s̴֫ξ9} ڥx31 Ăx͛Cv{.Ь w	x31 Լ̼To9N.3:}<j%1ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >x31 Ē̲T7AnJwn\P|yre" x31 Ԓļ")&kf>2P.~oʎ&0E9u?Jv7|m]k
Jn~Jؕ*료Xz  +x31 ̼ԢԂ"wYAv
k楖ă3"axv9m9
O#&'g0uf]re%A38ם 'v1\	x31 Լ̼Tnq851+J,.IMKLO-b?׷BùV#O4xdAT%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL h<x31 Ē̲TCٖs.K5}2o x31 \key}D͸u#; x31 ĂxVɛ^\UaN |qx31 Ăx?cD_SX;;=ݵ4 Fx31 \S+k>{&G r	x31 Լ̼Tϫ6m?D}^YF)V&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i k%>x31 Ē̲T-
;b.$M, {`x31 Ăx93*e_vnӌ J	x31 Լ̼T'!_+q|kEos_d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%n}w[mat;=_Ck U9>x31 Ē̲Tˑ'No*fۯos 
x340031Qp
qKc{,86)pڄ3}ә&/$,5>73%S/ZYNwLu!}ؚ0'%Uݪ}o'Ӝ|Vs:?lb^J^Vq~-gk_, =Y	x31 Լ̼TL+Lnr΍;y_d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%nܶ9)8 @x31 Ē̲Tg{ҘheY0#gX ex31 ĂxiݥwmYFWoNK $x31 Ăx"Ms+RS>{T5 x31 Ăx޲fτ.%y0 z	x31 Լ̼TS_\k[{{فw&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i ?Cx31 Ē̲T)Zӧ\۾v[ݽ'> ۗd	x31 Լ̼T>r\].T+|ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >x31 Ē̲T޻>Y:I-IS/r7  {
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^CwGsq><sЖ<LIũ@sdߛz4_7wFĜ UǠjwY'.`rڗ~2 ϊ?
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^zL/?Jvp1'%U;97Ng,+zc<meנ3&de1r։ةe߾̂ >̥x340031QK,,KO,M̏MKLO-`,#lM[=̻6ҢT$rߞߧdwƲ~X旖dǧe$桘0/Ϧ?;<IHgB	+Cz7){4<$mDU,)JME("c}>]mm:lsJs}c,ZZ9S0yb~ 3ťϥx31 Ăxۊ//(޵jK6 x31 Ăxks'8z$þ x31 Ăx}Lwqi|r, 9x31 Ăx/ASyk۸7V~ 	x31 Ăx?ne4<E& 	x31 Լ̼TALN-샔d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%nܶ9)8 
?Ux31 Ē̲T	W|`ɧknNvh3 Ӧ
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^;rVox-˕Sa|Rbq*PstƲH8VQv:?lb^J^Vq~-gk_, #?=ex31 Ăxي$Zod"w# 3x31 ĂxUIE_T+6{ε\[   	x31 Լ̼TƧ;i~}r&	ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >x31 Ē̲T׳߬&'-ȗ h*
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^k-#Ld7ZjlטSa|Rbq*Hn"cGL<vtEkN
U61/%[/8?AN\NE/ke [< 
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^ʑ=CIds9+0>)8udNƱ#&OD;5t UǠjwY'.`rڗ~2 ;
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^3oY=W=SzT)xU㙽:+,p=:?lb^J^Vq~,څWUv"xlύ ;x31 ĂxG<qHg(ʲkvӉ c x31 ҔlE/,ݺZ~ۛ8aX	DeY|r~Jj2)}$7p%ũřyrMaT6{?zxDQ2ЪD$+]2}~Y5/(IbYn[k:crA>ii%suϞ[{zY݈åW+CVkO]9;CU榦d_XNdµ58ArPҜ̤ĢJ?HgkZ}f^!s 
r+S0_eW8칱`j+DiYfJj~|AQ~2(0S3Rzg٤odfZggߜ 
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^CŇI.x7gWa*OJ,NrW[5{ڟ2B33&de1]{^e'H)  V>
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^CŇI.x7gWa*OJ,N6y.N_|_>f U ˻v{"3s# 6@	x31 Լ̼T#<wO&
fd7frₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >rx31 Ē̲T4%2ٱ "
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^]Q_퉾^ԋ&LIũ@zmF`_Tu~ļl<Y޵0߫$7Eٞ '@7
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^wǵgLnؘxlLIũ@/<,f޹*/py)zYyk^aWI(o1=72 z?Ѧ
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^w/e?HnyugL
S_xYs=eU^ڝ1P`Rdy.|Pcf{nd  ?Cx31 Ē̲T"N^esf8i dx31 Ăxn
K^r%{&{ET
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^/Ƃv.EyTX
T⥞K\ZCUgMK*c]
NB~S ܯ<5
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^%}47ҷf}2
SWs)KY+^q{y)zYyk^aWI(o1=72 Sw=z
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^%}47ҷf}2
S==8:kDEE U ˻v{"3s# ?Nx340031Qp
qKc9BV[qYF KS2JJRjݛxLe\wA;dy uut[9CVW
2˞B%6?0=dDar~nn~CR+ffLOOoz$1Rj7|zv_+J̪ E`4
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^ß9h`='äTj6a'l_=eOy)zYyMz޾rB~ҁUSO fK@7
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^Sv9ǩ;~?TX
T}\[n U4q+7)'8P<$ kF>	x31 Լ̼Tӝ]¼]Z	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ ᜛))%UiGFA3Rm;Sj[޺c> )R=x31 Ē̲T}=S-'[>ZdA+ Ȗ	x31 Լ̼T59HOۚls{qₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ c>x31 Ē̲TY=r=\V: ;x31 Ăx.<˖>GDD x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*k;7̶R}YǺ\8(pTt>kN޹3/3+  ~/2	x31 Լ̼TɊeVՏ_ৣ"5(% '2>71/1=fF;{mX,uM
De^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} ]=x31 Ē̲Tۂ3}|[k7ߧ Nۥx31 Ăx-'><t*_aqIɬ1 'Xx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*o_$i?1C9
8(pTt>kN޹3/3+  /+x31 Ăxւ{g|RƇte?Z x31 Ăx/'>ys{Yɰ8cA?Хx31 Ăx'=´1hY̮, ~
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^Ɯ?o^mTT0'%UO\.JpysCUgMK*cȊѥ$"ؙp A;
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^׊#[u\ԝԭS/LIũ@թ{'[OmY!ֹd)ܛP`R"?zt) >gC#v&\ 4>
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^CEǓ)	[LZ~M{LIũ@N_*otg;MFy)zYyYY=d!xZ;. ۸>دx31 ̒b8߱]ck: tx31 dyN`*h\.(٪ }	)	x31 Լ̼Tc2Os-ҰAn	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ ᜛))%UiGFA3Rm;Sj[޺c> \_=x31 Ē̲Tf,Ol 	x31 Լ̼T7i]%KMR2r+sSpH4F=.Yy,ON)騪H;2OE7
"]_7gnGOVr_ ī>ԡx31 Ē̲Tze;6ߊRsIo#Y =5	x31 Լ̼T7γm*5d&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i t>1x31 Ē̲T|u%WkTnX >	x31 Լ̼TgMlg,~*l,	XQJfqANbe|nb^bzjCεZi~Ѩ%2/ ᜛))%UiGFA3Rm;Sj[޺c> \:=x31 Ē̲TY!5Y>S_y b	x31 Լ̼T&N84.+xxǦ7F&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/s@]V[$Nx/ Y<	x31 Լ̼TIڳKfV8\_͹(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)ps)\hd-o]N1m <x31 Ē̲T)MnW:7F:,(_g 	x31 Լ̼TTN5B>u86+J,.IMKLO-b?׷BùV#O4xdAT%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL <x31 Ē̲T<,<E^ڴ 	x31 Լ̼T"{,,~-wbnCₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} -=x31 Ē̲TWY!d'	 uO	x31 Լ̼T}54\\eO"Dd$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%nܶ9)8 %>x31 Ē̲T;>ipT~ G
x340031Qp
qKcp|]j)R!DM^bIfYj|nfJ^֩:]J>ێ		TX
Tof%-vI\[C:?lb^J^Vq~CVGV.$l!x΄ 0;R	x31 Լ̼TxM߬LU&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i ?x31 Ē̲Tw!x.#**" Χ	x31 Լ̼T6_:}(}hU(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)ps)\hd-o]N1m <Mx31 Ē̲TB>˸'sKxRҭ
 	x31 Լ̼TgM_2ݒ6O6%d$V&%1ğ[!\Ց'i{<] *2ιY'mRQUvdnD<3/%nܶ9)8 l@x31 Ē̲T?.X%|S z- R	x31 Լ̼TwWG]}hI{:k'I&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i t>͡x31 Ē̲TVQ/¼͑JeT K
x340031Qp
qKc`\pS$W{}sd!DM^bIfYj|nfJ^+֘7:^sT|jRz$p~ey)zYyYY=d!xZ;. ?	x31 Լ̼T\*ϫk}{Ayₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} 9=ȡx31 Ē̲Ti~+)#u=R?ƹ	x31 Լ̼T6ưf5>_Q(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)ps)\hd-o]N1m 4=ȡx31 Ē̲TƬɭgIzS /	x31 Լ̼T?V[/hȘib6ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >hx31 Ē̲T9-O;7Sf& 	x31 Լ̼T<'^O&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i >١x31 Ē̲T<w}\\[l 
x340031Qp
qKc0:}6yĖB^(n:fQXYG*5n<#0>)8`/Sۺvp<|;~6Tu~ļl<ڏ9|ẓh馟W ?CBx31 Ăx>ܫ߳!c! #l	x31 Լ̼TܳT ~\ELR2r+sSpH4F=.Yy,ON)騪H;2OE7
"]_7gnGOVr_ F\?ԡx31 Ē̲T3OO,ttn#?yV  q	x31 Լ̼T'RoK{f[mU]m&`E)9yEVH8juIFO,ʼĂLsn|I[tTUj.K/3`NG'm9xr/i b @x31 Ē̲Tܙ*[MKK"; 	x31 Լ̼Tiy6[Nx'	d$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ $@x31 Ē̲T/ڽo&'`+U x31 ĂxܻҤ+
5z" *f	x31 Լ̼T/9^wdf=%(% '2>71/1=!\
Z4?IhTQXp?i딒J#Tt y)ps)\hd-o]N1m U=x31 Ē̲Tr-xg[e* ^	x31 Լ̼Th,6uVyY$d$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ >x31 Ē̲T?\wscOx31 Ăx\K<TZۅAE& ;	x31 Լ̼T'*=Y4WDm~0+J,.IMKLO-b?׷BùV#O4xdAT%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL A>x31 Ē̲T;+L":]wj( 	Хx31 ĂxK'x~Ԥݟt-e1en }	x31 Լ̼T~.	A;,TR]kVY\XZosVGi4tɂK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ {<x31 Ē̲T'?2֟<f? ڥ%z -	x31 Լ̼T)՗3R=\ngu1ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} `=x31 Ē̲TV["-V_=x[l9 x31 Ăxxe<ܻ h	x31 Լ̼T٧o
}F/ₜļ"s}+?k:$MQ}KDe^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} >[x31 Ē̲TMJ4| 	x31 Լ̼T٧o
}F/ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ >\	x31 Լ̼TykX^rt]j|SFₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ >x31 Ē̲Ty>*ʛՒaeMf 	x31 Լ̼ToOzM=	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i Aix31 Ē̲Tq?]=հoa ƈ	x31 Լ̼T&bxb.3&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 >Sx31 Ē̲Tm-绿IqM}pqCv6 r	x31 Լ̼T{n[^fRNr2x[	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i G=[x31 Ē̲T\?YkyӂI	x31 Լ̼TBgp\^woF	r&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 !>px31 Ē̲T#FuʌUܳsh0 di	x31 Լ̼T*[SW~aTѲmdE&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 V>x31 Ē̲T]ߜ0*{AY' 	x31 Լ̼TElS)]|sLR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL >x31 Ē̲Tb}yZ2^֙P{ z&	x31 Լ̼T.-*߼W_	4}nV	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i <D=šx31 Ē̲T;}<JZ/u
N`8-:B 	x31 Լ̼T#S]K]Z}rN1ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ u=x31 Ē̲T1O`=EVTV& 	x31 Լ̼T=G{9Σ@G	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i e>x31 Ē̲Tol;ݯ)E] )	x31 Լ̼T;yg/?ctGd$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ (?\x31 Ē̲Tu3}=?<gޙ߉; z	x31 Լ̼Tx}S+|0i	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i ,=x31 Ē̲T_*[8cJ!#S  	x31 Լ̼TދO:\{pņ&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 ?sx31 Ē̲T+[ew|my4w}4 	x31 Լ̼TKs1C^Ǝ:MR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL *?x31 Ē̲TC5ֻ<%=]]x340031Qp
qKc~!0'3>լt6;bQT'cԬGx,	 _	x31 Լ̼T	{ɔ,zkiAₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ =px31 Ē̲Tz+vWLZޠ: r	x31 Լ̼TYf9vb*96_hVY\XZn3#z{g6,&2/ ᜛))%UiGFA3Rm;Sj[޺c> C@x31 Ē̲TF{xF#|Ƈ 	x31 Լ̼T%#傝9ŧ[~Gc	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i =lx31 Ē̲TKQ݉\h5+x31 Ĥ̜̒TOQS6o&^oneEy%֥
>U|5  	x31 Լ̼TsKWi8}ߚd$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ H?x31 Ē̲Tz9Sg̙'i֕& Ț]	x31 Լ̼Ton/\1ܿR͝{.d$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ @ox31 Ē̲T^N}ai%k =F	x31 Լ̼TmY\Rp$)?LR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL >x31 Ē̲TT:Ʋlː}5 x31 ĂxSLʵ7kz:]ɕ@ zx31 Ҕlk)|9rQ答@T'秤&3:]~q٥[ۖ`	\Iqjqqf~ow>Ͽ<ީQ(J]s۟5Pa1cDiJQ.:ֲ\ϳ䬏n;t!2sSSRK늟=!ܻK1WW#:]yI/_AT榦d_XαrYɼ>,5_<q6Ҝ̤ĢJ,Iaj3mBƭ''B$V!yT.5@y"uvTThh(-LI͏/(Of^z|j^zf^*ە,6OϽsD\| ޼I	x31 Լ̼TC7XR́];Vd$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ ?px31 Ē̲T އv1cY 	x31 Լ̼T3<^k~8촖?ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ Ψ>x31 Ē̲Tc|#}T* ^x31 Ĥ̜̒TOQS6o&^oneEy%QS7l;sԧ^- 9E	x31 Լ̼T{gS6{0õ('oₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ ?g=ϡx31 Ē̲Tc<KB=>|Xx^-.  ^	x31 Լ̼TwocXc_魠ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ a>=x31 Ē̲TJ|R> 	x31 Լ̼Tv%g٥\-=\c`VY\XZn3#z{g6,&2/ ᜛))%UiGFA3Rm;Sj[޺c> <x31 Ē̲Ts\sxt,LYoW1[ %6	x31 Լ̼Tdk7/g]rZI7ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ Ė>x31 Ē̲T=!,CpW x31 Ĥ̜̒TOQS6o&^oneEy%7s>w}b?~	 "Ƨ	x31 Լ̼TVIܜc-&W\$0+J,.IMKLO-bxNpKxQXp?i딒J#Tt y)ps)\hd-o]N1m 0?x31 Ē̲T~S7^cMȝ{oN 	x31 Լ̼T7Mf>>$Mߞw\kVY\XZn3#z{g6,&2/ ᜛))%UiGFA3Rm;Sj[޺c> A'x31 Ē̲TkgvR(HFA9 n	x31 Լ̼T4̛ɩ&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 h>Lx31 Ē̲T/
~TfpmyFo&x340031Qtvve!ۨoWֿb
01 ̒bهpuBd? x	x31 Լ̼T-KD9v,yeԭ1MR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ u}?͡x31 Ē̲T睗:6AkV )vx340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%++ #>v/e1%'3(5-(5/9X//%[/8?a-8%O 	2x340031Qψ/(JMK-JKN-`{ߕ5oߠaMm|jQQ|r~J*PӄEfrFGV|ķ|ɧk/(jy:0qY*C(6ĜR%2].\iyK&T$ ET%x340031Qp
qKca7ۑ%xwI&@SPs䤒s3.*4XY_U@>`啋|Jf/ .x31 Ăxiw|D#+.7^ x31 ԤrW֌mKyT_׷ x31 ̼ԢbEdop=ܩx31 Ē̲T=?s
]DvZf/! ,	x31 Լ̼Tɢi^](+((% '2>71/1=fF;{mX,uM
De^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} <x31 Ē̲T.SW/NƢz~d 	x31 Լ̼Tuڸۨ!cݒHo	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/3`NG'm9xr/i =x31 Ē̲T<K&FZOoΏ 0x31 ҔlBUy9xn}Vzɀʲd7+ژLySPp%ũřypeV̵|{푈"8 V%"Yy%*9;xDiJQ.:ֲ\ϳ䬏n;t!2sSSRK늟=!ܻK1W 't1/X{SSuΜMM:14/%c:*y#V}Xjv8xRmd9IEE+Yfڄ[OaO+IL-B;DX䮼%W(DiYfJj~|AQ~2(0S3RޮdY~#⊧&_ WS	x31 Լ̼TÁ=>u	ǻd$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9s?z4xږ.☶ ?x31 Ē̲T^\kĝ *	x31 Լ̼TAm='UN*jfVY\XZn3#z{g6,&2/ ᜛))%UiGFA3Rm;Sj[޺c> =hx31 Ē̲T,1ua 
ާ	x31 Լ̼Tc[X7XifX"jVY\XZn3#z{g6,&2/ ᜛))%UiGFA3Rm;Sj[޺c> a<x31 Ē̲TI֯=KxlނEg ѧ٧	x31 Լ̼T-=B9fl^~-Y(% '2>71/1=fF;{mX,uM
De^bA&97S>SJ:*5ҎSэHg͙v0pѣնu9Ǵ} x<x31 Ē̲T+/zO`k! ïx31 \7V=j=<Dv? ѯx31 ԜҜĢĒD'.oxXğԵ}?-7/J/N-*LNeO<hꡏ˭,pf /#Ex340075Up
qKcԠTFғsOMkJ"&@Sʰ{Ƴ/>cDn߽.KC)9I%9yE)zYy#nsu<nnV Y.G	x31 Լ̼TOnYi(L|0eFdₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf (AA$x31 Ē̲TmK#sliVwOU x31 ̒bgG~]p¢:SiEGx[ n"x31 dcsc潅X~ x340031Qp
qKcQw*#jZs P+(-aHjyv%	r>n1#?D//%[/8?AdUQZ*/=F)S Z)x31 \NǹVvatAJV x31 Ăx-'T6#U?q֋  x31 Ĥ̜̒TOQS6o&^oneEy%vplu5㙖^^k_[ 	x31 Լ̼T=rG-ʵ<&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| z$?x31 Ē̲T)O=n(},$O x31 Ăxb3eibyX x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	õ[yKNO)"]0$`gǂ-ʲ=g=(T R1^x340031Qp
qKcXcpfnǍ.t,61 dݐiNݾң5!DZZQ^^J^Vq~糟\n6]Is*Ox31 Ҽļ"7fձjHnyZd5s@	XSZZQ	C=x3].GceYbq* V1x340031Qp
qKcXcpfnǍ.t,61 dV7~i38,x^'[c!DZZQ^^J^Vq~糟\n6]Isy'x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	˩
_,yQ`aD0aHΎo[e{2{Pǩ S2_x340031Qp
qKcXcpfnǍ.t,61 dpNƧKeoBde1p>/fiHmse4 '&+
x340031Qp
qKc0:}6yĖB^(n:fQXY`~Oi_^
S''-|tR"om;	:?lb^J^Vq~Cǜ]Rgnj=]Qvtϊ+ ~Avx31 Ĥ̜̒TOQS6o&^oneEy%|rHk !x31 Ĥ̜̒TOQS6o&^oneEy%>֟/9_Ɩ 8#?
x340031Qp
qKc0:}6yĖB^(n:fQXY Ǻh;󖞍Hp|,TYXIiZUϡ3&de1~%{eeGK7  {B	x31 Լ̼Tg^.uЂ.[LR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL  >x31 Ē̲T>^xN0;tg;ӟ? 	x31 Լ̼TqM;]<~3]MR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜms
=<Ym[S~qL [>Ox31 Ē̲TT]G"wk{g/c bx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*ML;zplٝPlPZ\YPp8*z5'\ٙG M/C	x31 Լ̼TYӧmМ,5Tₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ `>
x31 Ē̲TVɕ=2kTb >x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*üʓ6j'v7^̂Q}^9yΠwά8 0x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*C7#o:E%YsΕA~Yq l1ťx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*N+խg>n|쌛yOXF(-N.,(a8w=Ϛwz̊# \.3Ţx340031QK,,KO,MON,()-J-`߾ZrÙ{:	h x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*ʅ-N^:qIO)E 'e0g;Wvevf x1	x31 Լ̼T?M<lEƅB7d$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9ɋÞ0VlәpNc ]<Tx31 Ē̲T6.}1uAK+! =x31 l\擟TfF9Br~nnj^I|AbQqj^V1a:W>Gn	ذ̴4U[B~yWiK~Ԗ'v[ 	3x31 ĂxR$M9uVZj hx340031Qp
qKc|Y}^|!jr2
r+SR,{aog/v^Yl5[  #"x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*Âs|KK0Img̂Q}^9yΠwά8 y2;	x31 Լ̼TC=1a[5;'Rzq1ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ W? x31 Ē̲Ti,\՝5< rӧ	x31 Լ̼T[^OQ-3>4+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nϡ}9!Vzi~ oBx31 Ē̲TS,xt/c. >x31 Ăxɧ>Z63Cp,G Lx340031Qp
qKc{rwY-RjQXYX_\YXpG074g(;][Sj^zfHcOYx<iKV~A-?ll<CI=1_{meVR Nx31 Ԥr1L^-glZZI9H Ρux31 ̼ԢbA#b7<x31 Ē̲Tǽ̼[+"tT3fvKaK x31 ĂxǪ:#uUZw
6[
 &	x31 Լ̼Tb+U7F^˼`RyCiG	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/8y
c16	D= !:x31 Ē̲Toʋs}!f æb	x31 Լ̼TC|cLf^_]fVY\XZQpC>JyJXK,d]
Es?9ylNtyf^J~9CoO	rBN +?#x31 Ē̲TS,XxUfZ_> *~x31 lϮxw~Y==٬e,f&&
y%EũEzY\jM,_mb|m&`R2z
|WYoz];~p@!F0
6/;Q[B)oU 5x31 ԊԢĜԲļ"Į7mOB}ߪ rק	x31 Լ̼Tf]?DuVܾuₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7gnGOVr_ _>x31 Ē̲TeE&dW>_x ̃	x31 Լ̼Tk:]̵'o<r諹	XQJfqANbe|nb^bzjû̌w흥۰XƛʼĂLsn|I[tTUj.K/8y
c16	D= m?x31 Ē̲T''WZ&t^"s^ޗe{, gx31 Ăx$r3f1H>xˢ 	x31 Լ̼T!yis9y¢w/LR2r+sS-`fSo,7܆R7ޤ@T%d2s<O:R#<(tyf^J~9ܜa{wT+NL8'r1 MG=zx31 Ē̲Ts2F֞h6NUW$k 	x31 Լ̼T~o8342ͧLR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ i*Ax31 Ē̲T}_xB=j}\kw åx31 Ăx_{C֚ݧb#>#D= 3x31 ĂxV,&T8J[ 	x31 Լ̼Tgs%O~h	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ @x31 Ē̲T%2l[e?x$;l }x31 Ăx
|YO=ūfj9 	x31 Լ̼TΛy$wrCW&5+J,.IMKLO-bxNpKxQXp?i딒J#Tt y)ps=QQa f;٦3Ƚ <x31 Ē̲T/$\\4bwþ  ɛ	x31 Լ̼T}l\kwrd$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9ɋÞ0VlәpNc <x31 Ē̲T>nIp;Vܹ 	x31 Լ̼T/f~MRG	眸ₜļ"wi;Kaԍ7)y,ON)騪H;2OE7
"]_7'yq
bm:Ή{ C6;Kx31 Ē̲T϶Y)"R^ 	x31 Լ̼Tǟ淝9qʖ&O$d$V&%1[H}YzonIK,d8fy矴uJIGUFڑy*Q̼r9ɋÞ0VlәpNc J=bx31 Ē̲Ty0XSb >7	x31 Լ̼TX^ȴ[fژ\eVY\XZn3#z{g6,&2/ ᜛))%UiGFA3R$/{ޣXAvMg9{e=x31 Ē̲T3_|zj!6} šx31 Ē̲T{#>-_˧7Cכ/8/^	 Կȧ	x31 Լ̼T5z"<O%wC`&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| {@Aɡx31 Ē̲T\8Wټzz/s9Zgx31 Ĥ̜̒TOQS6o&^oneEy%t\pķ̨Fg_]w ")	x31 Լ̼T[Ξ
fOAXҦ&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHgI^G}Gd΄s" >ex31 Ĥ̜̒TOQS6o&^oneEy%ɺo,x:ӫZ2w!	x31 Լ̼TYt*ww0|5vy	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ V?x31 Ē̲T2gܛ}o;?ʻ Ƨ	x31 Լ̼T;K}4f/Vi,e	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ D@x31 Ē̲T_yC[UT]r "Ƣx31 Ԥr5~U-'ls</V Èx31 ̼Ԣbey
IWOLT kx31 Ē̲TE<]٥xfg ϶ҧ	x31 Լ̼T[Ξ
fOAXҦ&`E)9yE?03~ߩwnboR *2ιY'mRQUvdnD<3/%nܶ9)8 }1>L	x31 Լ̼T^q]pG3-ϙd$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? Aߡx31 Ē̲TNvˌ9 xhx31 Ăx7:X~T_(i[  T	x31 Լ̼Tbus~$~&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| )!AEx31 Ē̲T|K^늞#]_mϩ  ϖjx31 Ăx*ʉ^geO	{Nn]U x31 Ĥ̜̒TOQS6o&^oneEy%DM1?+W#nS< !
x340031Qp
qKc0:}6yĖB^(n:fQXY }JѤz~k؎0>)8ڻW/qĘGU׎BUgMK*cKM<ʎnYq n@	x31 Լ̼TU~>=fOS3&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| Ax31 Ē̲T3\y43&Q ٩x31 Ăx;5yp3գ8x31 Ĥ̜̒TOQS6o&^oneEy%̶}
>rq ܻ vx31 Ĥ̜̒TOQS6o&^oneEy%1L6c߻M"e p:x31 Ĥ̜̒TOQS6o&^oneEy%71^d3{- + .x31 ĂxC<6,qGD; 8	x31 Լ̼T]=t_pˬ7d$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? mAx31 Ē̲T<o?G4"[) t	x31 Լ̼TžyhnTr&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| Bx31 Ē̲TDkW_o8kRvheab 	x31 Լ̼TwHnŵ%ʇMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ &Aӡx31 Ē̲Ty
]PI]p3˝ 
x340031Qp
qKc0:}6yĖB^(n:fQXYwm5EkMcSa|Rbq*Pu~(lu6Mb	y)zYysvItGM?+8  @	x31 Լ̼T|}[{By&G.2+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nϡ}9!Vzi~ Bx31 Ē̲Tf<Vܿ) |	x31 Լ̼T73.-tyzd$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? MAx31 Ē̲Tph¿G^`  /ϧ	x31 Լ̼TύOB#l9ȝ-|O}|	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ '@\x31 Ē̲TznF.fl\_;e[j |	x340031QK,L/JePl^`=L,^*3$(-1958%;>Y/37!Ie{Y7|MURZWTy4즆,4|,4Nfml))M0 ??x340031Qp
qKca7ۑ%xwI&@Sʰzjip}Q}嬎1XY_UǠPnۧen	+t- %,	x31 Լ̼TڄV.,g^4kȹ bVY\XZ и@q%ê%lvAT%d2y+ɽjEXqzU3A3R|>~돳wo	 ;ҡx31 Ē̲Tddi,i7X|W x340031Qp
qKca7ۑ%xwI&@S0>M5:̒m1%'3)/$,5(%I//%[/8?)?MS7W} A-Fx340031Qp
qKcXcr8$b[L@!3/94%!`{	κ>{\?!d&de1?0\,濤[Tϛ1?Sx$,x31 Ăx;3nVcAYO'&7n	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYyHQg_y?
!&@ TZTPf<gacO[]f6 8	x31 Լ̼T3#\vp[>ViUmVY\XZQpC>JyJXK,d]
Es?9ylNtyf^J~9CoO	rBN m?x31 Ē̲T@wx=xv1{Ľ8k#	 	x31 Լ̼T_og&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| zBx31 Ē̲TS]W={ALCO&
x31 ĂԲԼ/}\|iⳲzj=Lsr2S2f爬_$rs:_LIJjRi:v:Mꍮjn=9|垯09\[껲-,:(/)L(19iKWT}Uov lFAx31 ̔ԤtncS۽.  ox340031QLIM*M`p潧^|ZN߳,>}a( RCQ3{Sy hqx340031Qp
qKc|;#7E&@Sʐ Z\0u{7rFbJNfRFfJjRi^^J^Vq~C~w"B;&J-޼| /x340031Qp
qKc|;#7E&@S`	y>{C)9I)Izy)zYyY߹Ǌ<r
(x= 0x31 ̔ԤtyA&4.Y 
x340031QLIM*M`p潧^|ZN߳,>}a( 2tmal£EO4` x340031Qp
qKc|;#7E&@S s#5_c,6TUǐ%_{#PR7/ Å/̢x31 ̔ԤtEןO.kLuu%< ܯx340031QLIM*M`p潧^|ZN߳,>}a( vE=]8<R )	x31 Լ̼T_VϘOo5~|h=jVY\XZQpC>JyJXK,d]
Es?9ylNtyf^J~9CoO	rBN -!C;x31 Ē̲TgOfV޼;=iR ֦
x340031Qp
qKc0:}6yĖB^(n:fQXYǡtVI"mN#Tmnxc.2P`Rj?=sS2~V\q  fB
x340031Qp
qKc0:}6yĖB^(n:fQXY0cA'ej4Oj0>)8zt5p)* ":?lb^J^Vq~Ӹ.w1l* `?	x31 Լ̼T	1ݺy#/OnZ(% '2>71/1=!"Z|.q~QXл"a+~s]ٜ̼r9<Jg]ןX꧙/~`Ax31 Ē̲T;~}-V~M Ƒ.	x31 Լ̼TOzwuvŪ]66d$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? B-x31 Ē̲T	;&^=`GU&{ Χ	x31 Լ̼TI']^quحMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ qAߡx31 Ē̲Tf|K)z* Տc	x31 Լ̼Twߋq]?:7]ₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf A@x31 Ē̲TU/5?0HAʉYY ,\
x340031Qp
qKc0:}6yĖB^(n:fQXYùis,Wvo܂0>)8現/Gȣgs}3&de1<=Ky7x^˦x CȦ
x340031Qp
qKc0:}6yĖB^(n:fQXY`ۈ`z\<$yߍO0'%U;W\?#JAUgMK*cx{=n0f=M 5?x31 Ĥ̜̒TOQS6o&^oneEy%StXe~suRj\v7 k sx340031Qp
qKcX(2%kNJlݏ&@Sʰ5K6z?ps04>6TUǐqnRv+n6 -Nx31 Ĥ̜̒ҼTo58;ϲr` ORx31 ̜b-ج>=&yR%8> Wx340031Qp
qKcpH"ç5p7LJI/(ON-.K*cH8=J:V+Ē̲xTٕ
an$_-_!/ \7x31 Ҽl5!u{MXZoj7w
 [x31 ҼT5g<e7{kxj/T  x340031Qp
qKcPזEN'iUD֘ Bf^rNiJ*÷}+jI]\Fl-/NBLLJ*KIK*ca}}kdϭL۷ q,0x340031QK,,K+I-JKLNO*KI`AAJB:Rv	 ¨x340031Qp
qKciPVy_Y׆Hib 
y9)r~o4'	~b?~޶b>C)9I%IE)zy)zYyيU/gh|% e.@x340031Qψ/H,.IMO,J`0UQͫrmD8bQZT
ӻ҂?Du	cX穿r !'x31 Ăx%_^֨5- (x340031Qp
qKcPWg|]<51 ̼ҔTn3ۺyKM7\!Ĕ̤ĂԲԼl<bۻb|Y>ys )/x31 ĂԲԼȇ/^}CXkVJ; )x340031Qp
qKc|;#7E&@SjyW8¢ݶ
}
,f4TUf{狍٧o>{h=}gq& 1Dx31 ̔ԤtMŕo?wϽ Tx340031QLIM*M`Шlw:\8za/qqb9QŗTU΢nG75<嶪^ Aǣx340031Qp
qKcH	e38Yղ5//^hb 
y9)	{h}M]bR!d&edde10|UݏC_=9 E.x31 ̜t]+ǆ E Ćmx340031QO`UΑʪ.SPී% x340031Qp
qKc|Y}^|!jr2
r+SRs8&g(N.7 hx31 ̒bА7rN& Ux31 dї5-̘ sD]dc쏪v 
ݠx340031Qp
qKc~m~X؁p&Og^6kb 
y%5u6h֫mTy!fgde1%5-~B˻g< I-Ox340031QψO,/,H`'"tU3#pl=23$>71/1=Ϯ76K7:;2>9?d{~gtv>, 4wx31 ԤrހO]u_giKψ=Q-  x31 ̼Ԣb+}_=vb7 'x31 Ē̲TzA+/]IB~ y*x31 ԤrjfA&r} dʃ]K&  ex31 ̼Ԣb[w\pj3nd ߡx31 Ē̲T8/">q]n. Mc	x31 Լ̼Tj˚wļi?۬x$ₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf yAx31 Ē̲Tόy:SCЭgo ԟx31 ĂxW\ǿpj3 )	x31 Լ̼Tuʔn5;-wޚW&`E)9yE	/}*<ࣔt὏5Te^bA&97S>SJ:*5ҎSэHg9V:/'JT?| ;@=x31 Ē̲T4mY+DsEM _x31 Ԥr{ŷ?0مf gإx31 ̼Ԣbok>IluXշ x31 Ē̲T'KwN6ǅS l٧	x31 Լ̼T5Gٔ4y6c٤(% '2>71/1=!"Z|.q~QXл"a+~s]ٜ̼r9<Jg]ןX꧙/4??Dx31 Ē̲TY|5ʫKo<5 _	x31 Լ̼THk"ޗœ"*6hFzGd$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? >sx31 Ē̲T֫m|59V~/ ,Χ	x31 Լ̼T.LVU>̜ۭ{ f&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| T@x31 Ē̲TEb&Y
4,h*. 

x340031Qp
qKc0:}6yĖB^(n:fQXY0{Ћ~$~=mQSa|Rbq*Py!Ej7$&Ԥ(KCUgMK*cx{=n0f=M ?ۧ	x31 Լ̼T%KS.yKOXExₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf b@x31 Ē̲TdM'
r3zņw+nڧ	x31 Լ̼T
3Kؼo2׵nₜļ">h
QSDe^bA&CWϯT(wEdsB3Rz+w]Jؗbwf @gx31 Ē̲T#eyw+<+YeU ܥx31 Ăx27ٿpE} \x31 ĂxZ-mӘ>l`{x( 	x31 Լ̼Tk~X<m׻	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ A(x31 Ē̲T--*M	kn캰IЕW m	x31 Լ̼TgWMVٻcUeMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ "@Qx31 Ē̲T+?[J?	ߢ:s] Y	x31 Լ̼Tr^4d$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? #Bϡx31 Ē̲T噗,(8 t HӨx340031Qp
qKca7ۑ%xwI&@S0qMH3y";w=f}!Ĕ̤Ē̲$l<}U{ln|fqn_LN +'.jx340031Qp
qKca7ۑ%xwI&@S0wW>(i;cⓟG!d&%d$de1KZuߓes#3srfr  20P	x31 Լ̼T՛-E.>9E\e&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| TAx31 Ē̲TZ/iڞR&ӵs/  ߶x340031Qp
qKca7ۑ%xwI&@SЭ%gMfr;}SubJNfR^bIfYj|QJ^^J^Vq~þUw=Y67R>8/`& ).{	x31 Լ̼TMJa)׿Z?}xW[Wx	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ @ġx31 Ē̲T?<Hk||P]??O ͥx31 Ăx_M{uj[ -@	x31 Լ̼T6J%s3''>1	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9^{M$Aq̢I,OD==x31 Ē̲Tc6/ǖq5/@c/ ˴	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~Ƨj
c4yb6/$,5<rT2ڂSy>dYjs   3;sx31 Ăxj~>Ĺbi>T[ 5'
x340031Qp
qKcoϲJ7Z}5ݱ{w.V`7I*MKK-O`YMv*LWjfX6TiNfR^bIfYj<D^^J^Vq~er>t$3od)T?	4H##i; Cx340031Qp
qKcp_S8Wz>v|`b 
y9)3m_X}oR4].Sr222KSRvuko^^Kbv  -x31 ̒TϣMhk]5 ѷdx340031Q()JLN`,mIT?.pq3  x340031QMLO/(ON-.K`hIS /$ b鹫C~o.馝y;b78 h̭z9<gd)LIGuLRN.r3?T,Ԯ8]1};rT|UMwspw{5Yw5's rx31 ̒boyDVZ4Aa;b kx31 dF6)[i5  u	x340031Qp
qKcQw*#jZs P+(-aX;{gz$'+}\Yjm1#?D//%[/8?AdUQZ*/=F)S (Nx340031Qp
qKcp]=I"Yg)H PK)MIePw}ƅ47֘-1Q]Uʍ
	Mα  $*;x31 ԒrYJOYNYku	XMyfZ&å{S-%?Zu C,x31 Ĥ̜̒ҼT*JRZz1v?y Bx31 ̜bu-jU?SLڱ_̓ $,ߡx31 ҢĜԒҼT=<9sb274x31 \χ·nX/fGKjM  Bx340031Qp
qKckX>&'3<W//%[/8?_姴}ϲeCUgėge0
0n4PN`]֏,>9?7VTgaS{Q	*sK|1Ԧħe攤v-ݑe9K?`), *#vՅSe<pMxU} L_ޫx31 ҼlO,;'Y+OqJ~n+ O^x31 ҼT3"ϮW8 x340031Qp
qKcPזEN'iUD֘ Bf^rNiJ*S7#oܳ5тbJNfRRi^JN^^J^Vq~C5N?xX+&{nU-gھ Ƽ-x340031QK,,K+I-JKLNO*KI`{,ǧ'_2Z'w &ax340031Qp
qKca7ۑ%xwI&@SʰoF}߮20.j)Ӗ[Sr2K2RRR4kx47#ۯ 9r/Vx31 ԊԢĜԲļ"&U}c|7 x31 ҢļԼ]߮x?1+
[~ 
x340031Qp
qKcHhSXjƩxj01 ̼ҔTjW|{L7!d&%dde1R|dgȰnzTXP~CvSgM+ B¬x31 ̜TX$CKn?eߘ@T%&%1trGǉ^P):æ #ux340031Q(J-M/`x]VR-̖]&2O*2޲Ob\<qh ݹ!åx31 Ăx)A!MuL33B/rۻ Ҁ͠x340031Qp
qKcvscgծʂ0C$w2l<[k|.22JU; x340075Up
qKc~F?O_kQXYUǰiZۺs4WXTNMQ:U	Ճ!jH:0M= v4x340031Qp
qKc|;#7E&@Sʐ;O'F_BY.G6TUpMkj==NݴL /x31 ̔Ԥt[WM
B4;no^TUs/ *x340031QLIM*M`P>dz(1
QŗTUM[zS8Ci9wNi 4sx340031QK,,KO,M/JKI-J-`8pE;/ƨ=)_6=, Ҝx31 ̒b;4/X^Mf/ ex31 d{g0M;  x340031Qp
qKc~m~X؁p&Og^6kb 
y%E|/js3BbF~X^^J^Vq~CF.fl;2 6(qx340031QψO,/,H`'"tU3#pl=23$>71/1=Z[B6'W^s
:;2>9?d{~gtv>, a2x340031QK-OKM.`>BXǻ>,LalMm|IeA*PC[ߨ74z!q t%Ex340031Qp
qKc9Es;~/21 ̼ҔT~B"+V9Sr2RK⋋s,viZVSY,֣x340031QK-/.ΉO`¾{`aݼyeq-3DS_RY
T{nipz7E  Px31 Ԓ%6Dv
X/2?(=y[FԤNѬKq$t9S îx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	Ò^<[\]f+ta>mK=^st׳֟V|;2 5x340031Qp
qKcXcpfnǍ.t,61 d8<|tR?Is!ҊJR6_8h05O;j.A }%Fx340031Qp
qKc{P!QBEǯ;&@P8%;y-՗֞8?'30X//%[/8?!Gg_qBloF?(}* 3-Dx340031Q(/`9*#NIME]/ 8x340031Qp
qKcp]=I"Yg)H PK)MIeY32`·w[tF^<d1%'3)4X//%[/8?6:7%wc +ίx31 ̼s=U~ptn#K ]x31 )u/4_r/ Tx340031QHI-LNK`xaxlׄ9fBٜB4BW''d=ck|iÝͷ  -x340031Qp
qKcޱۀ>Vg9G5 \}qNٕԉ/mnGE1w{q. $ex340031QHM`}R
>i6m!\AjE	PMD<EGw~;Eoj
rKr
\I>W5aDs4Y? u.x340031Qtvve!ۨoWֿb
01 ̒bqd*vIԝczDZ AѤx340031Qp
qKc:t+rᏕ~}K.xv&9?$D/!5u&O]v2r@KĒʂTo>urv7~U=TYZ~Qn"Ȩo*M)}ؔ ĲoP5y)E9Izy)zYy[g.z|'W$N_ǶLG~JjP
栘yEGĒbyX]6rөw\]P5%yE@5gζko3u>M4ez 2VmZGuu&g3܏ߔ x31 ԤrU}y𬕋~: 3x31 ̼ԢbVȕ.E !Z x31 Ē̲T=\5zeAS} Λx340031Qp
qKca7ۑ%xwI&@SPoQ0Q9?9ΰqBLLK,,K/JIK*cؗ^ο'Fg +	x31 Լ̼Tz_.2=2!lMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ ր@~x31 Ē̲TŹ֝o5nt:#v+fgB +	x31 Լ̼Tf;:ʬq}"	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ Jg?`x31 Ē̲T(c9jjT{,Xs x31 ĂxgLV	ܨH˳J ߧ	x31 Լ̼TO\.G3D?)d2	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ 6@\x31 Ē̲TеA-<j~걬*ى dfx31 Ăx╲'?VpX)+.x31 Ăx#~r}f3 rh	x31 Լ̼TWa_qx5Yi&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| @Ax31 Ē̲TLu/NLXg\x ̧	x31 Լ̼T[ekԣ1ęd$V&%1DT$APR҅>.֯ *2zW$콺~BOwN+z "]_7[S¾+S4E? bAx31 Ē̲T"DvZg.CuIw x31 Ăx׋}/}%b5a 		x31 Լ̼T&o_;ZEo^7+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nϡ}9!Vzi~ 4qCXx31 Ē̲TX!MYkYg> 0	x31 Լ̼TӇܪoeVJ}s E3(% '2>71/1=!"Z|.q~QXл"a+~s]ٜ̼r9!i*|rWʭ+f=R \1;ox31 Ē̲T*=WVrf>( x31 Ăx,7?^/eҝTzm +ϧ	x31 Լ̼Too_eaj/ڶ&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| ?ZAJx31 Ē̲T;SL`~f!y] ō	x31 Լ̼Ta۪+&;97Μ.&`E)9yE	/}*<ࣔt὏+ʼĂLM94-|*[ֆC3Rlsz6œ1&< a.=Xx31 Ē̲T{Lo}0cۺ缓 x31 ĂxfN-jչq8F[  1	x31 Լ̼T'*]͜``\h0	XQJfqANbe|nb^bzjDоBނǕQXɰ0{b/\wkxtyf^J~9ܜsN=ڦx8f$' ;x31 Ē̲T 5aDm遇7  ;x31 ĂxͲgF'O>y8Sw+ tx31 ĂxV97|,q Bx340031Qp
qKca7ۑ%xwI&@Sʰurue~4XY_Uǰ/j՝O͍,1ɩ ,<	x31 Լ̼Tލul9Kq}ISLR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ 
Báx31 Ē̲TgϪO|^SROo ʳ^	x31 Լ̼T*}	do{Ǵ
MR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ LBmx31 Ē̲T㞟Y/r-E{I;2 x340031Qp
qKca7ۑ%xwI&@Sc~jq>1=цSr2K2RRRtpU&Ǩ|f5 W+t	x31 Լ̼T&c'fd;zj=хw\MR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ @#x31 Ē̲TlWNz8xQٖMlx31 ĂxV>>_7uZ3`? ex31 Ăx_v&M{z!# Yx31 Ăx*C5-x.9\ܰ 5	x31 Լ̼T_u[~Ӆ/4+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nϡ}9!Vzi~ pCСx31 Ē̲Tw;V41tlXEތÁ 	x31 Լ̼TdE'ϲJvܿk	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9!i*|rWʭ+f=R /:x31 Ē̲T~fL}sM޺4 x340031Qp
qKcp]=I"Yg)H PK)MIeػEAL䍏kUWj1%'3)4X//%[/8?6:7%wc ;*>	x31 Լ̼TOcLrs_4׊vŨS&`E)9yE	/}*<ࣔt὏+ʼĂL	{_P4ӝHg9V:/'JT?| @Bx31 Ē̲TFS^.g7K&j[a 0	x31 Լ̼TДe12ߨGMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ YUAx31 Ē̲TPƾ'o\>Kǰ=	x31 Լ̼TeJ5+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nϡ}9!Vzi~ ZfAx31 Ē̲T[v+.yYGR~ ٥x31 ĂxEI8A,'ٓJ	x31 Լ̼Tod>R'ximl	XQJfqANbe|nb^bzjCDEK
()]xb
2/ wEޫW*t9!y)psx?%	;O3_ D@x31 Ē̲T]fSRTT~sPm] 9	x31 <nd/ygfsaigL ʊSK7Fxoyַ2pw_D[|JjYfrj|rjQIfZfrbI*}=9.U6qΚlyҷ]ªMK4 ;x31 Ԣļ"ÿ,dq^`R^n Fx340031Qp
qKch{vyoE&@Sp|{ܗi>f^>-yz!Ĕ̤\l<fvEY
9  )	x31 <nd/ygfsaigL ʊSK7Fxoyַ2pw_D[|JjYfrj|rjQIfZfrbI*CoZU!:9f>x}DqFiv1ÄM&[eWjj H;Φx31 Ԣļ"y?_%DegM\x340031Qp
qKch{vyoE&@Sʠ[AةxO~8w!Ĕ̤\l<fvEY
9 )<x340031QH΍K,,KO,`/ʞmgexӜ︢]iIeA*PmƱjxHYp? "ʢx31 Ԥr+b/SN[v{P̶=z 1x31 ̼Ԣb|frD;shnw lx31 Ē̲T~ѿf}z~ x31 ԤrE-zso{M ʖx31 ̼ԢbE1gOJsMi sx31 Ē̲TrVxe:aޱ_s Ӝ
x340031Qp
qKc0:}6yĖB^(n:fQXY3~c?ֽzub*OJ,NL
ѷ?ls*U61/%[/8?i\_ʻZ6[ H@b
x340031Qp
qKc0:}6yĖB^(n:fQXYP=JtF#]rv0oTX
T]i\Yj;"P`Ruy_O<eSa Af	x31 Լ̼Tv=dw{ůff65+J,.IMKLO-bH8~V <}\_AT%d2H{uJ<~W@6'D<3/%nNGZJ+_ܕrY {=ӡx31 Ē̲T-F6H27 ¨M
x340031Qp
qKc0:}6yĖB^(n:fQXY8OE]O>Tj7oŊIȖ>yP`Ruy_O<eSa C	x31 Լ̼T'*]͜``\h0	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9^{M$Aq̢I,ODW=x31 Ăxs.R;F0ݷ/ 
x340031Qp
qKchߞ_ ~{yn!jK2Rs3S2259撹b*OJ,N>5%A!%kaS} U|4{/`zy-
- B>
x340031Qp
qKchߞ_ ~{yn!jK2Rs3S22\[-._4uig<L};0'%UY"3U{AUgMK*c2)D\r~i o@+x31 Ē̲T*ͺt^`ڻxx31 Ăx}?/nXمT  Rx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*C
>E-羃E%?m_ævu /B	x31 Լ̼T<Yv2I~$T()`VY\XZ и@q%ê%lvAT%d2y+ɽjEXqzU3A3R|>~돳wo	 C};x31 Ē̲TJ&hO	 
x31 Ҕļ"Qo?u렶q]
瘀e0|6:%Yfr㣷LUi9EW5ǫֻ=pk*%qxi5JOB((H,JePэ&)xAusQkq3KWx31 ̒bJ+&n>}~w' جx31 d~vm+wlb)NB &x340031Qp
qKcQw*#jZs P+(-ahm`aYP~2'ŭ!fgde1h˩{VU!sM3$ D(	x31 Լ̼TdE'ϲJvܿk	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9^{M$Aq̢I,OD^=?	x31 Լ̼Tkt3o6wtkMR2r+sS"*_Ux(G)O{Wy+^?Rh;'=	.K/stu)a_Nީ~ ?Ax31 Ē̲T}f3OV}(bQ ӯx31 ̒bά-hz1/,kœ uhx31 dsG^a&| c
x340031Qp
qKcQw*#jZs P+(-aPȩ:@oKVyB +K*cЖS=vCWfH|_ N)x31 ̒btnvG"\  	kx31 d {9u/?|>|Rf ix340031Qp
qKcQw*#jZs P+(-aP~fsPzORٷ2!Čl<m9}Jj<dn}i5 P+rx31 ̒b-Zs#N`*tw x31 dVݯMLg
e|# 		x340031Qp
qKcQw*#jZs P+(-aX'\S>!fgde1h˩{VU!sM3$ A)t	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~_,)u]y@nFڼĒ̲xɛfؔ1,Q*vɥ <x340031Qp
qKca7ۑ%xwI&@Sʰ/߯)oAW[N!d&%d$de1(_}cw[J9]K1x31 ĂxWK.<:o:K8K=x340031QH(I++*cX2>ASinx I.ާ	x31 Լ̼T-iyK1	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9^{M$Aq̢I,OD<x31 Ē̲T3j3K+2>\vwN9 	x31 Լ̼T'=B>}qM*&`E)9yE	/}*<ࣔt὏+ʼĂLM94-|*[ֆC3Rp
u])H^: ?J<̡x31 Ē̲TWq5bJINV+ż S~x31 ̒b~c!	lx 4x31 dk%;"I"~d: x340031Qp
qKcQw*#jZs P+(-aE=UEB+S4T6VUǠ-z1[)W햇̭6͐ W)	x31 Լ̼TSۣ7͸bڕ(% '2>71/1=!"Z|.q~QXɰ0{b/\wkxtyf^J~9ܜsN=ڦx8f$' M<x31 Ē̲Tث_=Uy/ ̉ܥx31 Ăxk'q>rr@ Ox31 Ăx".|pNP{ %	x31 Լ̼T^Ӌ'V~L[mₜļ"}*v?+/V-a2/ a=N[goJeFtyf^J~9ܜsN=ڦx8f$' R<x31 Ē̲Tf~&bGD 
	x31 Լ̼TB>Qlfy&`E)9yE	/}*<ࣔt὏+ʼĂLM94-|*[ֆC3Rlsz6œ1&< >x31 Ē̲T5w'?k:̩}ȗs 	x31 Լ̼TsmL]YL-!	XQJfqANbe|nb^bzjDоBނǕQXɰ0{b/\wkxtyf^J~9ܜsN=ڦx8f$' ;x31 Ē̲Td+uzibKݿ d|	x31 Լ̼TZdKTRYBX=(% '2>71/1=!"Z|.q~QXɰ0{b/\wkxtyf^J~9ܜsN=ڦx8f$' /<x31 Ē̲T V6y%x1/4>) 
(x31 Ԓļ"׸#{X7#&0E9u?Jv7|m]k
Jn縗c;ꪱ|v	 ."x340031Qp
qKc ḓ>FTc Bf^rNiJ*ÇC역V~5[k8Sr2RKRK2Rj	Qx8cǃ !/x340031QK-OKM.`RR>Yh{Stތ3kbS_RY
Ԡ4Pբ:QN˲E,  ax31 Ԓļ"zOQSU)#"83nGɎ↯߾aMBAIbr6ÍroG]5ώ3,x340031Qp
qKc ḓ>FTc Bf^rNiJ*3dG%we׺ZqqC)9Iy%yy%yzy)zYyoĄEgp	K<fu.ax340031QK-OKM.`w{cR6+	'Wm
7Ħ6 Ai$Eu1eX b !x31 Ԓļ"$S{'ʄ_z(0)*.a茬Qk/x~XSfPPp=ǽ?|?QWL l*ܬx340031Qp
qKc ḓ>FTc Bf^rNiJ*c÷'쮲U/sjf1%'3)/$>9?//5$3?O//%[/8?᭖>ul<v<! v. x340031QK-OKM.`x3Eco>;?;:y!6%@K%Y-t,]  #
	x31 Լ̼T϶+~Mk֣&`E)9yEA
T~zW^r?ZfDe^bA&æ~Yp߭k!y)psmTs5fi11= 16;x31 Ē̲TF-"d0ىù~x31 ĂxfE!fOXw, ݾ	x31 Լ̼T'L'5>=:#vₜļ">h
QSDe^bA&æ~Yp߭k!y)ps6|9hIEGY >x31 Ē̲T]]	x|T,p1 `	x31 Լ̼T%J/؞y.|	XQJfqANbe|nb^bzjCDEK
()]xb
2/ aa?o,_ւu̼r9^{M$Aq̢I,OD u<tx31 Ē̲Tg
6l<E6 ,	x31 Լ̼T]%_UwLR2r+sS"*_Ux(G)O{Wysi['fU|Hg=ڣm'cMgy"
 k?dx31 Ē̲T#lFߚFvDCVW~ 	x31 Լ̼TKF[βMb3LMR2r+sS"*_Ux(G)O{Wysi['fU|Hg=ڣm'cMgy"
 @=x31 Ē̲Ts7,?quer-cMۏ 	x31 Լ̼Tm{bO-pITƙ}MR2r+sS"*_Ux(G)O{Wysi['fU|Hg=ڣm'cMgy"
 j?ʡx31 Ē̲TU,4D׈WW	x31 Լ̼T-7)}9V+wٴ&`E)9yE	/}*<ࣔt὏+ʼĂLM94-|*[ֆC3Rlsz6œ1&< E=ȡx31 Ē̲Ty7]C}BQ. c^	x31 Լ̼Tμ:fK86=ذL(% '2>71/1=!"Z|.q~QXɰ0{b/\wkxtyf^J~9ܜsN=ڦx8f$' <x31 Ē̲T~+р̥~֚Ma^ 2	x31 Լ̼T3F/bXb(Vuₜļ"}*v?+/V-a2/ aa?o,_ւu̼r9zJX6_wޘ :x31 Ē̲TӜu&jXT<^ å	x31 ԤĢERW>yxl`3&EEiEyɩb9RhygM4!RsK2sKR.wr{i.f?B1u_cw-'Km <	x31 Լ̼T%
&7Wws+b_T(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHgS²׶Qb 8Xx31 Ē̲T.B?vtqǤiYag*) yx31 ̒b
asmOtUrO}R *nx31 dͪ+'=v<._ѫ>gF 
x340031Qp
qKcQw*#jZs P+(-a(׷aȯa+!fgde1h˩{VU!sM3$ q*,x31 Ăx5uc7=8wԯ{[DXx340031Qp
qKcvscgծʂ0C$w2l<U,
jN2]zܴ@ X,x31 ĂxwɚiYj\ 
x31 ĂԲԼ6<KhNRT@Y9"3I\ΗST;Jz&ߙx5oT3]zݧ~0|L(19Pegt?y! E	x31 Լ̼TJWx/S!}]lı*]&`E)9yEA
T~zW^r?Z2/ aa?o,_ւu̼r9^{M$Aq̢I,ODC<<rx31 Ē̲TQa;|8\oک> (x31 Ăxa56Ws!{x31 Ăxϟ\;-8G%y Gx31 Ăx3s?rbujv !x31 Ăxsbmz̫<;`ϫg 	x31 Լ̼Ts+q%&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF <x31 Ē̲T^fa{ -Ȯx31 Լ̢ԼF'}83ݬtPn|*-3'5(ʣxza}zM$3a_"/W;ͼxcFSE*_$/n6-~& ^V8x31 ĂxjZ4xEZ- lx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cȶ3wȳ"מZP=(2^>~oR,plwӃ" 1է	x31 Լ̼T{a'TzBd~ΚIe&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nηj,7>f [; x31 Ē̲T݅u
ߘ 	x31 ԤĢ<O?$Y׍L RRRS9TsQђ*iBT$d%2\:Ғ9\^4=nI(-MMcHYB%`#Z$& =	x31 Լ̼T7}j,DLR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜTqw4ˁ:1x31 Ē̲TMlv88aDg=!K _x31 ĂxK\-ٕ֒? ٥x31 Ăx9od^lʊ H	x31 Լ̼TGtݗԑfd$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9zJX6_wޘ "&<¡x31 Ē̲TϞ=PbpI{  	x31 Լ̼Tmju[c-bgJₜļ"}*v?+/V-a2/ aa?o,_ւu̼r9zJX6_wޘ /;x31 Ē̲T#=ܶh#Z9H5 ӊ	x31 ԤĢ<O?$Y׍L RRRS9TsQђ*iBT$d%2D6LϷ]cq|JaEҔ4!߂k,\x	 r;Dx340031Qp
qKca7ۑ%xwI&@S`(l|n¬[[l>%bJNfR^bIfYj|QJ^^J^Vq~B79n>v%
ӵ -lx340031Qp
qKca7ۑ%xwI&@Sp|wNԧvKVfp6XY_UǠPnۧen	+t- -M	x31 Լ̼T~vOOj&Nh	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z&  <x31 Ē̲T-;.ig4 i9	x31 Լ̼T	?̿27eӢ&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF ^\=x31 Ē̲TM%&|UsGgnp/ >Ч	x31 Լ̼T	swM̢应BMK;6d$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9zJX6_wޘ P1;x31 Ē̲TUq?Unٸy<O *	x31 Լ̼T&3,,̲<xYW77+J,.IMKLO-bWh\b[a6 *26ӸpOn-X^.K/?.s]z& g?Zx31 Ē̲Tl[o<;gow  x31 ĂxUݐ1O%7 x31 Ăx&Ҫ3=ڸ.U5o,  Alx31 ̒b-?sh:ni|ffCnc x31 dŋ,R8$XZ k`	+x340031Qp
qKcP/zݟx[k8nb 
y%e~=W"q!Čl<m9}Jj<dn}i5 a,	x31 Լ̼Tm'g'jH9)^y_Rₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7[O	^F5WnS3 C:"x31 Ē̲T73l9,k/ ˡ	x31 Լ̼TӏΌf cRLR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜTqw4<ɡx31 Ē̲T~ΚP&()Z R
c	x31 Լ̼T_%]]sN8%1M(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg}@gz9L.=H <]x31 Ē̲TǵM&=ž#E?bS 2	x31 Լ̼Tr9.|dŊ&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF z<x31 Ē̲TUvQk*gg dx31 Ăxr\$.mdt7 "ħ	x31 Լ̼Tg٪b;ͼ^Za	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& <x31 Ē̲TI6֓oM[dwuB ,kx31 ̒b&^ܯ}fAb#U rx31 d߲pco^[> 4x340031Qp
qKcϞu72IՍ ))|L@!3~/^ߺ!"J9|7VUǠ-z1[)W햇̭6͐ *	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYy~ДgUV[ PI|FjbJjQ1C=Q+=mzv :	x340031Qp
qKcLV,gHڽjKv]3tvve{%^YU9<P%9Iɥzy)zYy.Ψ0!GDBQ P *HMLI-*f(3ǰ1Jw-T.|3 a7˧	x31 Լ̼TK#lu;ǋ3LR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜTqw4{=ȡx31 Ē̲THO3a$ZNk Z	x31 Լ̼T5:.8T|/p[Mₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M <ҡx31 Ē̲Tꃫmf{+QgF +x340031Qp
qKca7ۑ%xwI&@SʰG{=gM)5bJNfR^bIfYj|QJ^^J^Vq~S~RC@o*
op !T.x31 ̒btNxy[r' wެx31 d0ُk˛귿f!mU x	bx340031Qp
qKcϞu72IՍ ))|L@!3`Bgf	:M94!fgde1h˩{VU!sM3$ (x31 Ăx7r)5S7_2=< x31 ̒bfQ
_՞oeKjx31 dƍ|SlL<̠re! ~x340031Qp
qKcϞu72IՍ ))|L@!3!Oh[xLڬ4r*zD!fgde1h˩{VU!sM3$ Q((x31 ̒bc<^ݳU x31 d;=*AJ  ]x340031Qp
qKcϞu72IՍ ))|L@!3a%U[6\/T7VUǠ-z1[)W햇̭6͐ 5m(x31 ̒bǵKj.8~ 1x31 dlZ|,1|n x340031Qp
qKcϞu72IՍ ))|L@!3>U&׆33JRTO=f+զ  f+8x31 ̒b*Њ,.+"> Ȭx31 dsoIeuyd:N  Rx340031Qp
qKcϞu72IՍ ))|L@!32]+pwpkamh1#?D//%[/8?A[NDcR-[_m!} [)2	x31 Լ̼TK\n>2E(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg}@gz9L.=H #e:x31 Ē̲T\Sw	8j+ x340031Qp
qKca7ۑ%xwI&@S;a"w8W*|5XY_U)P+?> ,֧	x31 Լ̼T=&1Zt#iElmd$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9+_yd\%Ev_  n;&x31 ̒bWyLN8ςʧ *̬x31 dkumӛf4n1  
x340031Qp
qKcnWp|ѤϷD Bf^Ai	o5=W^iB +K*cЖS=vCWfH|_ ,x31 ̒b .C}33*}RY p-x31 d.0uZ] Bx340031Qp
qKcnWp|ѤϷD Bf^Ai	ZݹĹ+Ztftu2VUǠ-z1[)W햇̭6͐ G(үx31 ̒b9۷MʭM6 x31 dI.?齘Wwk`5"x340031Qp
qKcnWp|ѤϷD Bf^Ai	CW핞ࡶl\2C`%zy)zYyr'rnyjk ȍ*x31 ̒bjs>/xl&_ x31 d˅f&U5\vlcu 
x340031Qp
qKcnWp|ѤϷD Bf^Ai	>"1="i%a1#?D//%[/8?A[NDcR-[_m!} )x31 ̒b&a2s.{9s& iFx31 d~OL6)U3Y6O s
Ơx340031Qp
qKcnWp|ѤϷD Bf^Ai	mG'ni$id1#?D//%[/8?A[NDcR-[_m!} R)үx31 ̒bϖ$(`}qG	 ͬx31 d~ͱ귝x03W 1x31 ̒b	<~Z<nѕߖ=* Ix31 dʹ*/<U/l x340031Qp
qKcnWp|ѤϷD Bf^Ai	C+I'ANkohO$fֵR]33JRX/\SV;%]t +x31 ̒bO;|T]oi эx31 dGݭ役-9R !x340031Qp
qKcnWp|ѤϷD Bf^Ai	DzBe!fgde1l_ff-a'&wJ
 , 	x31 Լ̼TkٗtYR,תDq85(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg}@gz9L.=H )L;x31 Ē̲T}O^͝TsEӟ \է	x31 Լ̼T:MvX(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg}@gz9L.=H V;lx31 Ē̲TCg~ס=I}n jx31 ̒b4[뾜sg뒠?
 Tx31 d3sJd˶{2 
x340031Qp
qKcnWp|ѤϷD Bf^Ai	CUBYf._uC`%zy)zYy,٩Y{`Kz؉If. +sx31 ̒b=",l5	*L.9 
Ԭx31 dO^Dߏ3~´ `x340031Qp
qKcnWp|ѤϷD Bf^Ai	CǓ&N||bʂ6obF~X^^J^Vq~kvjؒvb*~ }.x31 ̒b^-%,9&lu|-#S x31 d[Td7H;V͘E s	bx340031Qp
qKcnWp|ѤϷD Bf^Ai	KWBw:2$ƮZk1#?D//%[/8?e5;5klI;1lSEW v)Jx31 Ăx+c=|gw:O Qx340031Qp
qKca7ۑ%xwI&@SuEOYw$c!Ĕ̤Ē̲$l<	_N)yvY#)jK >/x340031Qp
qKca7ۑ%xwI&@SʠbrZY[]rbJNfR^bIfYj|QJ^^J^Vq~ÄLկQ<~;,5t% -ӧ	x31 Լ̼Tu(hh(õ|	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& N;Hx31 Ē̲TgTgW<θi |	x31 Լ̼T}lg_ˍ3ݰp'ₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M <x31 Ē̲T~zٳr=䟲LQ~+ 3
r	x31 Լ̼TiYURkN<Y^{|>Oₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M [<̡x31 Ē̲T??wi; 	x31 Լ̼Trl.o|=tₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M \<,x31 Ē̲Ts_n| 6IFo :	x31 Լ̼TT_20c	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& 4;*x31 Ē̲T'氜}k>޸1 ;.	x31 Լ̼T_l}ϻ|go.[w:ₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M /=.x31 Ē̲TޱT	ο a	x31 Լ̼Tm'g'jH9)^y_Rₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M  <įx31 ̒b~{nKqa 4ͬx31 dD9>^oշY 	x340031Qp
qKcnWp|ѤϷD Bf^Ai	Rv7/qB +K*c`پpN[NL2[t ,Zx340031Qp
qKca7ۑ%xwI&@SNE59lKC)9Iy%eE)Izy)zYy2UFRhGSԄ ;	/	x31 Լ̼Tob۱ur/Dvd$V&%1H+4.P-x\yj	ʼĂL oe4V+]/j4tyf^J~9ܜTqw4>Zx31 Ē̲T_aṡ_ ϯx31 ̒bכlcܸ2X Dx31 d	?rGƽƈ5 cՠx340031Qp
qKcnWp|ѤϷD Bf^Ai	ëέK3r3C`%zy)zYy,٩Y{`Kz؉If. +Q	x31 Լ̼TgUӖq}YRm)B2&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF ;x31 Ē̲T׵-~u#$R ؖ	x31 Լ̼Tmaok̛cꗋ3+J,.IMKLO-bWh\b[a6 *2݃^|["8tԪ y)ps{?PكޅbӻK7 >x31 Ē̲THCm0 Wx31 ̒b2*$fJ 
x31 d1*8-fJ$ k;Tx340031Qp
qKcnWp|ѤϷD Bf^Ai	]-V$ɺN
Qc!Čl<Ԭ=%=$UNI]q*n	x31 Լ̼TsYvGё}ת/_bVY\XZ и@q%ê%lvAT%d2y+ɽjEXqzU3A3R|>~돳wo	 k?x31 Ē̲T+ޝt	qaUtJ֩ ȟpx31 ̒bvJ0c$˃ϮX  ڬx31 d_'qNiqQY Kx340031Qp
qKcnWp|ѤϷD Bf^Ai	}\I+U߆33JRX/\SV;%]t +	x31 Լ̼T}3҂%,Ts	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& <	x31 Ē̲T%
{dd! S	x31 Լ̼TK&Id^~ݳ/&3+J,.IMKLO-bWh\b[a6 *2݃^|["8tԪ y)psUI̾{mW
?}	 =Mx31 ̒b3VOrm%&Ş/9+Sx31 diW+_r}]/鋳 cנx340031Qp
qKcnWp|ѤϷD Bf^Ai	ʔWorv:33JRX/\SV;%]t [+~	x31 Լ̼Tx&Dfsݽx}?*ޛd$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9߽AB1ݥi >x31 Ē̲TkӝoeY(}<iI x31 ̒b,坬{C׭+r 
x31 dvVOX<a?6d >x340031Qp
qKcnWp|ѤϷD Bf^Ai	C}6{1yhὋ!fgde1l_ff-a'&wJ
 (/,h	x31 Լ̼TASY϶0S&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF <Sx31 Ē̲T;G9UhKtv; _ 	x31 Լ̼Tm/Iوs;B_tLR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜTqw4=x31 Ē̲Tyw7ٰ
mCjMӪx31 Ăx'-z[wy\, ix31 Ăx7_
RSj} ȥx31 Ăx%ֈK]upJ`ԕ	x31 Լ̼Twգtc5~LY"$XmVY\XZ и@q%ê%lvAT%d2y+ɽjEXqzU3A3R|>~돳wo	 :աx31 Ē̲TϬ+6z8A(]{l	x31 Լ̼T.LuVtud$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9߽AB1ݥi =!x31 Ē̲T2a>1@gE '	x31 Լ̼T9/Us	2J[}x	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/ʺ7KV=^RTk X:x31 Ē̲TM?tKw*Z\Y {x31 ̒b.o;`[o/ @x31 dO=~6.|s'/ ,x340031Qp
qKcnWp|ѤϷD Bf^Ai	p$R4ĭR?bF~X^^J^Vq~kvjؒvb*~ *ax31 ̒bIΜͲok}\ݿ 1x31 d-a3Gn
:ΣaR 7
x340031Qp
qKcnWp|ѤϷD Bf^Ai	ÏkÙ<?V:!Čl<Ԭ=%=$UNI]S*D	x31 Լ̼Tw͂%:\m}c	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z&  <͡x31 Ē̲TՉgM2Mn)*Ѻin Nҧ	x31 Լ̼TÏ˾Ծ84f:	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& x<Fx31 Ē̲TХS^寮x%ڳ׹ /q	x31 Լ̼T?px> |=!=\&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nw8{лPazwF ;֡x31 Ē̲TA5LWëA? 8x31 ̒bz}bmjK;9 %Ȭx31 d?M]pߣ\4x31 ̒bewݲCVVlJ x31 dh#mU_p^+֟Km ]sx340031Qp
qKcnWp|ѤϷD Bf^Ai	ýͅίM%&y,ߺ?bF~X^^J^Vq~C>.Rə9L *	x31 Լ̼T/ь
~ܽÒq	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/?.s]z& õ@Kx31 Ē̲T9&w*!*qC7 H	x31 Լ̼T|bW&f5I.{z(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg}@gz9L.=H &?x31 Ē̲T=w͞|ox&} 6ʧ	x31 Լ̼Tr$fkSjy	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/ʺ7KV=^RTk h9ʡx31 Ē̲T ?lvV+gpQ 	x31 Լ̼TC)'~˞ReCS,?ₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7_=](0#M x7;x31 Ē̲TS&Nʟ~  ǉx340031Qp
qKca7ۑ%xwI&@Sʠ%۶s+5T{txe9!d&%d$de1513AwӚ>EWf< 3,'x31 Ҕļ"Qo?u렶q]
瘀e0;9%YIvf(.JI/-d9^CXu^SA(gȫM{AjkR\7BAqFbQ*nė4I"_	 |Kƥx31 Ăxs{k^yL1 Хx31 Ăx4M6+ʭ-q x31 ĂxK6<d[zQ.3\& F	x31 Լ̼T/zv_muMR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜPǯYrGZ/e e<x31 Ē̲T9׻+1emkbc ֥x31 Ăx{.Y-9kaC%gm x31 Ăx.%)\޸5 t	x31 Լ̼T=&1Zt#iElmd$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9̽{cNΛowfڝV9 :x340031Qp
qKca7ۑ%xwI&@SO⛩	2np~V竜m1%'3)/$,5(%I//%[/8?ᯙ*ּ)-ڽ2 .Gx31 ԒrYJOYNYku	XMyfZ&+gXj .x340031Qp
qKc뎕oK[,1L*LK*cKKQUVEK+;$6}	 Ѐ-Jx31 Ăx|ޱI˟bbvSs 4x31 Ăx]/]R~ooˮ nA	x31 Լ̼T{h[h͞)O-v4+J,.IMKLO-bWh\b[a6 *2݃^|["8tԪ y)psBYW"fʹKj =x31 Ē̲Tozuvcxpg	&V nЧ	x31 Լ̼TK&Id^~ݳ/&3+J,.IMKLO-bWh\b[a6 *2݃^|["8tԪ y)psb)>i~hW z;	x31 Լ̼T<ME-r-Ym͉ݜɛd$V&%1H+4.P-x\yj	]yAAir/>ZV^ji̼r9+_yd\%Ev_  ;ۡx31 Ē̲TVW(x˦~/ m	x31 Լ̼TsϚ3?:sc83(% '2>71/1=A"h_qOoKUK삨K,dVvJ{!oՊRfNHg	e]qț%+z/){R ":x31 Ē̲T7L7_Ci_ 	x31 Լ̼T8UbZN^L'_ₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7'u+"o{K l:x31 Ē̲TilUG֧	x31 Լ̼T5*K؜ʺkMR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜPǯYrGZ/e 9<nx31 Ē̲TY&sHg=ᑒO x	x31 Լ̼T^u؜%NZ7nE1MR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜPǯYrGZ/e ;ơx31 Ē̲TGӷ}vNHzK 0x31 Ē̲T&GZ\n=>} e	x31 Լ̼Tro1Ժ̜@}5oMR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ke;m<]{Ii}W=@x31 Ē̲T-gT+;X<yB#9	x31 Լ̼TBk;3yCϜ&`E)9yEA
T~zW^r?ZfDe^bA&C{P܋yVZ5sD<3/%nz|6ν$ <hx340031Qp
qKcH	e38Yղ5//^hb 
y9)/y#ǟ``|x9!d&edde1賽"Rl~C] Ѡ,!x31 ̜tĔitNvW_nzt #x340031QO`Z^Ź٭j/}=\ x31 Ĥ̜̒TOQS6o&^oneEy%x1h0uuyc>  x31 \&
U6伺<u6	x31 Լ̼T5gj2c}^-v6ₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ X-<	x31 Ē̲TJxTܮ>rʷ ͥx31 ĂĢ"SwBE.UpuV4lΪ\CsSSļļLJI{<-|QOE՚`MI-(fw?W=7Gҋ U_8x31 ̒bDjڬQm` 
'x31 d.Iُ}QsmEm;M |x340031Qp
qKc~m~X؁p&Og^6kb 
y%A+_y$F}JܥsEOB +K*cPwK0k[.wx} +x340031QψO,/,H`'"tU3#pl=23$>71/1=Y#:fi'W!TgV'秀5ڼsrۙ2> 1nx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*þKKnL>VėK_iPZ\YP0n8NfX%`| gh1x31 Ԥr5\_3q5h 
̥x31 ̼Ԣb^:qgHк▍' x31 Ē̲T%m?-I| :	x31 Լ̼TbgmWz	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/ߵ~翫s/I?9 };x31 Ē̲Tǉsd9qDxr]1GCi 	x31 Լ̼T3_*,n:t菨_LR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ke;m<]{Ii}>x31 Ē̲T׻sKx4d  ox31 Ē̲T}OZ"iANO 	x31 Լ̼Tg.9|='u҅k'zaVY\XZ и@q%ê%lvAT%d2y+ɽjEXqzU3A3R<la`eriÂ <)	x31 Լ̼TnG{X4CzDₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7D#y	+ ;:x31 Ē̲TlK3~y2k~}SC Ѣx31 ĂĢ"SwBE.UpuV4lΪ\CsSSļļLJ
W%V{';=k3'i-P	ڔԂbyG>s~uۃs)X >5	x31 ԤĢTK\oD*&EEiEyɩb9RhygM4!RsK2sKR#XZPv~z-[%(-MMcБH)>6Wwٱ?> =x340031Qp
qKciPVy_Y׆Hib 
y9)$=v4"v.|0TX\XU)>$7#.WڌoO- l2gx340031Qψ/H,.IMO,J`0hӴgneg4Ģ4>(>9?%wg/>Ƭ~S m&hx340031Qp
qKc|Y}^|!jr2
r+SR*jLL,?i}?í\Ai ӧ	x31 Լ̼T'"fu}=gMR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜ-2"}\n0M}X 3:x31 Ē̲TG,=Zjv]oxj+ 
:	x31 Լ̼T5_̿oiV/W4+J,.IMKLO-bWh\b[a6 *2݃^|["8tԪ y)ps0q4}aA |<:x31 Ē̲TkQiٟ"T%7f  
zx31 Ē̲TibΫu\-tOrd hx31 ĂĢ"SwBE.UpuV4lΪ\ Tx31 Ҽl"K\5,3mRfnO `Nx31 ҼTwzLOؿW Vx340031Qp
qKcPזEN'iUD֘ Bf^rNiJ*㽞3!W>vM=bJNfRRi^JN^^J^Vq~C5N?xX+&{nU-gھ -Qx340031QK,,K+I-JKLNO*KI`3x]3n2yzF? 	x31 ԤĢ<{Y
N(5-(5/9a_C5Gj-y;גּ &DUQjNbIf~^bN|qI~Q*ξ[&t;br3yC++@1H	]|^ث A@x340031Qp
qKca7ۑ%xwI&@S7᝖&Y׵1 bJNfR^bIfYj|QJ^^J^Vq~_39Tz7y9SZ{e3 .bx340031Qp
qKc|;#7E&@S锑ʹEK7bJNfRFfJjRi^^J^Vq~Û	/6f- 1x31 ̔ԤtwzS";Oa_} !֯x340031QLIM*M`Шlw:\8za/qqb9QŗTUM[zS8Ci9wNi 2ax31 ̒bgRmkɥU5PN zx31 d'_˶}ת8G} i x340031Qp
qKc~m~X؁p&Og^6kb 
y%rf9^L'/=WbF~X^^J^Vq~_Y-t{{ ʇ+x340031QψO,/,H`'"tU3#pl=23$>71/1=+ooN%JRo*[:;2>9?d{~gtv>, L$2x31 ̼cm]*.R6 Ρx31 _t'I)nr`-zfU 2x31 Ĥ̜̒TOQS6o&^oneEy%'<\S##0'翟  o!7x31 Ĥ̜̒TOQS6o&^oneEy%qSN\ᦖrLr/ Ǳ	x31 Լ̼Tm604=FD򮘯	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/E_V 8x31 Ē̲T5f.5kJysN2 µ	x31 Լ̼TjOo;vL[k%}ₜļ"=Kc:fvyڟ	2/ ![=(MŇU+CK9"]_7D#y	+ s<Ax31 Ē̲Te䵚3b #x31 ̒bg02Ѿf6[	+ x31 dm{|L5zq© x340031Qp
qKc~m~X؁p&Og^6kb 
y%wSX9#!{ϩ<<u4VU|y<2frf-S; w-;x340031QψO,/,H`'"tU3#pl=23$>71/1=zU5߼{BtHfFwUn;VRB' n3x340031Qp
qKcH	e38Yղ5//^hb 
y9)+#>O[yO|?Sr222sRxEXǡ/f_ /x31 ̜tk71;kݸ Cbx340031QO`tْ5ɮuLį iHx340031Qp
qKcH	e38Yղ5//^hb 
y9)/<]VYO[kz.6z}4U+rUu?-|1K Z1x31 ̜tE_(m=hpCr7 }x340031QO`fv)(	'i)*it ,
ax31 Ĥ̜̒TOQS6o&^oneEy%,|]y|΅[}ԴN, !שx340031Qp
qKc0r:|f3MɆ)	kQYR_TWP{Ƣ܏:?/<ҖSPXTWZQ԰moXyn"<jjEwS|k2*e-TuNfR^z6Vcb/g6vhrQI|~Y@;OMWN%kv0n ºt֣x31 ԒewM*Ukf?\y	XMyfZ&m2>^+TRp7hڽJ dx340031Qp
qKchYV2qkSOu&'3))4$?$C//%[/8?&ys
BW9B5g#4d0~017w^޼ꇣ.[
 m#16x340031Qp
qKclYz2,y6ʖEBd&gede1LJHqi(}ψ`0a_]Ț3U-b +kx31 Ĥ̜̒ҼT=8kzI iDx31 ̜b7z']N~}(	ګx340031Qp
qKcpH"ç5p7LJI/(ON-.K*cϾnI].{ObjK,,KG՘pJ2ޯK'_.? 	7x31 ҢĜԒҼT[>>9/ٿѬx Vx31 \;X:C([ 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yezl_Εռ S㢔zt$%@u3'l\+t5f\7v/腪LUǰw]ՔGٜo8OY }%9	x31 Լ̼Tu^`=}d$V&%1L)ntRSMBT%d2JP1ĕ'HB3RLL(@k)3e ?3x31 Ē̲Tsմ䚸Yh> \	x340031Qp
qKcx|=au֔K!jss2~3|tIRiOUXUL2Yw`v5iڼĒ̲xܟ-i7w9B g]Dx31 ļԼiΕgo~Ч1`mc3 e>x340031Qp
qKcutx[FiD Bf^rNiJ*bq/y r,HC)9I%Eyřy%%zy)zYyjqSˢ] Dg/x340031Q()J+L+/I,ΎO,`hK)vkؼ/՝1Ī JrWǽ=b5f kV)sx31 ĂĢ"UVK^(v:,H Jx31 lWY'NhĻ\440031QHM+/H,*N-*fR;lr]g7wjm3SzXճ/J"1!?sn,zgź| V:x340031QHOI,/.M/,.I*c+3c-)k:m=OVY 
x31 ҼlϪi5WhtY_B Qϡx31 ҼT)3xh_|oOˊn 7}x340031Qp
qKcj(wYk..K<NY3 2sJSRdbO{7[!Ĕ̤ҼTl<o=9+[>j* b*ȥx340031QK,,K+I-JKLNO*KI``k,m%w8"x31 Ғ̜b*||gI3x31 ̤ҢĤ\6I熞nh =x340031Qp
qKcnxMP׻%|\ڗBd&&&Ude10mg,ꔛ^yrI䃜ކД?g{l$=x  6x340031Qp
qKc?cKV'5g;w PK)MIe{?==IEBLL*H,.IMO,JK*cV|9GX/	 v0D"x340031QHI,IO,.N-`>MvЪhQ\ZT_T?e#Y,#//qB(XS
TOotMYWMi1Ps*xd,nv`UTZs?31w7=E)ɉ% FW| tv͵fCeSSJRKK2g絉b]kvZĆ``g?u&mCJ[ą0IYɠ0i`mE0sƥ]ZC=TW?߅9<߼__3P_TuQjN"ȩ9%Eоsy{5e63PZT_jaYĳ͜qr!w Zزx340031Qp
qKc{2}?Esr&3f{kb 
y9)l2k
VfD[qxe{B<!d&de1\kLk,ر	 P,ޢx31 ԊԢĜԲļ"յn~2/L:l|k 	x340031Qp
qKcs=D~Ȭu1.bQXމqVoې4p7ʂbffLu~mdK=̤Tl<|¿\n3 l=x31 Լ̢Լ;Y|'D4k?ne&`Ui9EW5ǫֻ=pk*%kmwG8L9!&IĢT݈/irDY7GEοw? r7x340031Qp
qKc0vt܆ɏ'51 ̼ҔT773&sUJ!d&efde1ݔOz	[oUռק91, q+x31 ҢļԼ:<t|I  Cx31 ĂxU|?ocޥR- Ů
x340031Qp
qKcﴕWx또Q*&5--5$>-3$H/-yܒ'jɁ 7C/h|NfP9Iy%e=zy)zYy'*]ou5[MEzx340031Qp
qKch8/}yv*'SVi5L*+NK*cp:ArI5ڟY;b G
x31 ĂԲԼ#.4 Y`NT@Y9"3I\ΗSTΠϷ׶8ZvY_S0K1+4BLjUL(19aEK_KTv>[VKn JBx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2lp\2絃)!d&ed&de18o[	-ON ."x31 ĂԲԼׯqa~WQr' @.x340031Qp
qKc|;#7E&@SʰNgkh׷3'gaɪ\Qn!Ĕ̤̔Ԥtl<ܷ_3֝/; 0;x31 ̔Ԥt>1MY?ְԟ x340031QLIM*M`~FV+2ațg[Vl61DQ_RY
Tj,Cve^x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIeN{Fs|mؔe1%'3)#3'?]//%[/8?W~Zbe+yx340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)㎚4`G>/f1%'3)#(19U//%[/8?!bWϒ6ohha -ުx340031Qp
qKc8#pvG۽\um
01 ̼ҔT4N<6	5bJNfR~Ff^AiInjIF~J^J^Vq~Nfy_ڞ-^K( /̢x340031QK,,KO,MON,()-J-`XZgQ>ʾ:Y Xx340031QK,,KO,M/JKI-J-`WyZH4WV Ox340031Qp
qKc8Ww}1$ngQ\p;`?ŵL`fst0ϦXTƧ5-|Sd]|S6i9%E@Wt_V.4`ZnxɇruK$de1}8`MLܥ 4>][x340031Qp
qKc|Y}^|!jr2
r+SR4>mheݱXAŋye  
x340031Qp
qKcYq=Z)lOt!jr2ˊRRRR4Om:ڬg!z ئ$x31 ̒bEw2wQyJ kax31 dfW?:q1_U* wx340031Qp
qKc~m~X؁p&Og^6kb 
y%S$Z1JGM|#B +K*cx+P}'1Og,Hd{ +áx340031QψO,/,H`'"tU3#pl=23$>71/1=dԯ;ļS+S@m޹wVL[Ias
 z3¨x31 ԒԤNѬKq$t9S '
x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	l&Ӹ>o:qs|!ۖ\{دg?nwd< 74;x340031Qp
qKc֠UQmQE=Β-131 dc&Jxxy!ҊJR6׉Gd1/[ ,x340031QHK,ϋ/K,LLI`PWvʛޥqOOfQ_ Tidejٻ̶_Ғ
Ο{xĩ^ӽcE%R=ݕ[~"35z\J3RSamzGq߯{xʼ&2'5?YUWԼv{C$gUݟoT7}RGSM-*^rs	H~{J	f0%)i@U'Fr]Kη  9Qx31 <nd/ygfsaigL ʊSKf}ϼ(ql@	ߛ'rC3JTzqZKs3 &(x340075Up
qKcxébv{Zn4];t` PKf~hx1Y"N/4!.bBNfRbqqj^^J^Vq~CwG\%8/ӞZX ^1ޯx340075UH,.N-O,`8R}+bĿ-.g NuBIdAߎ#~ eEx340031Qp
qKc[uh[Kʇf/[cb 
y9)I.<Y7ѡ'%C)9Izy)zYy>մpKRN jC,x31 ԲTWWM+}X|H]5{Լ"Golq'rXޣT
 x31 ̤Ē"wB6Bi2+ =x340031Qp
qKcBČ=őKtyK21 ̼ҔTGeWnU;Ӵ:U!d&ŗe&%de1pxxڡ_<rۋ Q0
x340031Qp
qKcio?V$$voj0L*N+/K*cX|ŏBgw+LUU.rtK-N^Ѿ@te%@GmDU?Mɭs/E Clx31 ̼.^z^83X _x31 |)bd*\vȖrW  
k	x340031Qp
qKcԳ:7DN5FiVB&@SzGM,2Q9BL,/K`g<xk8coS-r2RR2S3RT4E`U"9f	4Z%9͠x340031QHI-LNK``Ҟ5Ozj̘L(89 >/%nAՊSljd7 y	x340031Qp
qKc8zWJff.d,ǣIBx:2=sK|,*̤Rl<zVC#.O|Z}l( g&3J5ij5}UywI 5jx31 ҼTi_;Uǯ]u7	 ףOx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*þ5۟Pv
KĜ&9fnorZCLD b-x340031Qp
qKc0z'^*0jDRb
~Bd&%de1x=+wyE%;1x340031Qp
qKcxhNQH͌y7]L@5؈!Aͬ2Q}S8[%!o̰eJ;>ak̺Q %x340031Qp
qKc0PoK߼xM371 ̔|_v{T?ѬΟN"TIiNvbC{7<t	__o' (֤x340031Q(+N̋/LI͏OOIM023).I`U_oɢߨq9OgO	|v9;ZKמ7۽ZD7ASY;Sڹc^ڴ__2j7]_q)2w!\XQi(UD+es)	k%:OvǩH}.OŢ꥘cg շ|	x340031Q(ˎ/I,I/`0s걝\|Ymi
Ksj>9O샹GE#4sWFQ_
TX}کW7\c5}7o*/*޺w3^˪$<Ӗ wFx31 Ԥr:2cZvlysRK[ x31 ̼Ԣb>37w	Fxx[ [x31 Ē̲Tɗ/0m?ry  	x31 Լ̼TV-&6cMR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜ-2"}\n0M}X |;x31 Ē̲T}wbj"> κu	x31 Լ̼Tyvy˖wǚ9Q&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 q</x31 Ē̲TevlmxV0p M{x31 ̒bzOsY$je-ݐ x31 dШY	Vz`:(1 z	àx340031Qp
qKc~m~X؁p&Og^6kb 
y%=}0Ȯ1Pgμ@!Čl<uf["qy' }*ġx340031QψO,/,H`'"tU3#pl=23$>71/1=nQpu~[XL
:;2>9?d{~gtv>, pb3C	x31 Լ̼Tް+>[F᫮	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/E_V !f:x31 Ē̲T{tZ_k~ObԽ$ +	x31 Լ̼T	r:l'?z:gO`ĩ#SLR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜ-2"}\n0M}X :=x31 Ē̲Tb*H+~_/[ B	x31 Լ̼TkqJN5lw	XQJfqANbe|nb^bzjDоBނǕQX&CުašV͜.K/E_V ':x31 Ē̲Tl:1)eƏS&Oy Kx31 Ĥ̜̒TOQS6o&^oneEy%gnЙafgw Тx31 Ԥr5lW[c'>s ҡ^x31 ̼Ԣb[6:pi-6G߮ x31 Ē̲Tc$Vh=`a@É 	x31 Լ̼TpWWBMLtq*	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ aO:x31 Ē̲T悇X/QբYo APx31 ԤrCˌfM4s;myo Qx31 ̼Ԣb%*lS%VGre(s, ڧx31 Ē̲TNeۊb˭y/03 3	x31 Լ̼Tn&*~i]0ₜļ"}*v?+/V-a2/ ![=(MŇU+CK9"]_7D#y	+ J9`x31 Ē̲T.هa>'yxs ɓ	x31 Լ̼Tij$[y	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ j;x31 Ē̲T{R*btS]rTfǒ ,x31 Ăx)oYO+ov-_t3' x340031Qp
qKc|;#7E&@SpcQL+9~bJNfRFfJjRi^^J^Vq~Û	/6f- %2x31 ̔ԤtiW	<^&␔{n /x340031QLIM*M`(i[rYX.	"Z(K*R*-)顴۴W [,x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	Î+_}Rܫ{5$95CXEYּ,;e|
 4x340031Qp
qKcXcpfnǍ.t,61 d=gh}+=OaF{O2OK+*K*c|_Ґ\[8i. !9+gx340031Qp
qKcp]=I"Yg)H PK)MIenkdґ#܂ײBLL(.K*cxF儍MIa]|X~  P)x31 ̼sފzEL.#. 4
x31 `蹷pro8ԲS8 x340031Qtvve!ۨoWֿb
01 ̒b݂]GYDvu Ӣx31 Ԥr7σ^Lq).+T Ox31 ̼Ԣb9!ZnvdƎʐ x31 Ē̲TBm:1zV;uc	 Xx31 Ăxծ~N~w7}!4+} 	x31 Լ̼T^yoONچSLR2r+sS$<~X.ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG %<.x31 Ē̲TYk?Z8T	x31 Լ̼TTܺ]r'qLR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG 9;Ρx31 Ē̲To?J9&}9{~ x31 Ăx~\չ~Wt=mӎ "x340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?[sxw*\Qյ_Nh_Y{νos Y6x31 ԤrTm` $ġN x31 ̼Ԣb_YӠbv7 x31 Ē̲Td?c>w
?t{; ;˧	x31 Լ̼T_-&-Xg)eVv5+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ ~>jx31 Ē̲Tփ=ᅳ[w'e bx31 Ĥ̜̒ҼT)Wךh$! L&%x31 ̜bfVz|Jz]B9Y §	x31 Լ̼TΥyz?'X3B&&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 S;tx31 Ē̲Ts+e5nu8X 
ާ	x31 Լ̼T~-t]+Kʴ7gd$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( _5>"x31 Ē̲TB/O8(D]D볼 	x31 ԤĢ.N^\ׁɧ]=;W8@%3=rH%oU6ӄ*JI,K̉/./Jeh`]jA櫶p_ly4%7AGJ ^U?d Y@x340031Qp
qKciPVy_Y׆Hib 
y9)OWl[!<aˤjӒ'BLL*H,.IMO,JK*cV|9GX/	 i/߯x340031Qψ/H,.IMO,J`x}e&owI/Tqv!EE)@=/-8{CT0f~+ p)Wx31 Ăxv7U&د[# x31 Ăx^/41qR؃] g	x31 Լ̼T)wiަƻU.d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( 4;١x31 Ē̲T?O]2k
_6O[Wn 5	x31 Լ̼T-:~r6n8pgₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ }<x31 Ē̲Th<<cÎY.Z" H+	x31 Լ̼Tcz;Y3+Hnd$V&%1YӉm7MyAAir/>ZV^ji̼r9[dnEXYla>i  -=Cx31 Ē̲Tk'cod9vF?W?|}k 	x31 Լ̼TfzKIM=A,hѧ&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 :x31 Ē̲T]!zjAԋ 9x31 Ăx/$rƝ {x31 Ăx[Mkʴ8I vx31 ĂxfY'fn_  	x31 Լ̼Tp݆Kn~m}THU^ₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ <x31 Ē̲Tr8GM{b 1	x31 Լ̼TF>2޿:gₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ u=<Ox31 Ē̲Tkh_xd8)}  	x31 Լ̼TM)Umcb	>=aVY\XZ0!Dg5IiO.7#
QX>+VC{T+Wv.Lz 	.K/319ScHF^>̔ 	?١x31 Ē̲Tw1
5ѥy+_J  4x340031Qp
qKc]v5̻OL?}'r!DMJQbz|b^J|JQ~^Ñ	eU6om5k<1)'5>%8($a㗟k޲SLjLJLNK*c*,5MFRٍf΂*K,,K:$37$h,'z;[3ںfpMLO*]9/Ul_^CUZ\RZ2)\onW/WPzUmf^IjQ)?[yp}NM8T'&'g&edT2tg^7G'~O4qmEpMO.-9ޓSu/[ڟ~o܂Լ]W.wsV]gI|jS+S MfL]壳fBK'S@ڭ;*orpSa|^bA&PuC*Nz?%UuIeX̫e^T#;Ɗ3
KYsK*sRSK2@bbl=qPy%r_[3Wf. Mx31 Ăxm*I/COqzV8 /	x31 Լ̼TI۸6v3TXq"ޘd$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( F=x31 Ē̲T.-
?oԩ|ƝZ (	x31 Լ̼TWh596,ީ2&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 m<5x31 Ē̲T\_z\}es9k[އ2 c	x31 Լ̼TOV0,2SMₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ $<x31 Ē̲Ty`m8 ޶d	x31 Լ̼Tkgv.Л.Lhₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ 7?;x31 Ē̲T_Hua>|7 d	x31 Լ̼T{:wk8$lₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ pF<5x31 Ē̲T ~)g=} N	x31 Լ̼Tv
ey冰ϩaVY\XZĠgzL'wݮ;_37CT%d2y+ɽjEXqzU3A3Rz$5>a9|9; &:x31 Ē̲T66goQc6& 	x31 Լ̼TVp?;,7l8	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ :x31 Ē̲T_Wem_x= x31 Ăxז]hRo]/ըY 	x31 Լ̼TS3_EE|oVY\XZĠgzL'wݮ;_37CT%d2y+ɽjEXqzU3A3Rz$5>a9|9; =Fx31 Ĥ̜̒TOQS6o&^oneEy%:%'Y\Rݣ˲vǄ o	x31 Լ̼T/%[}{~d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( 1w=x31 Ē̲TQ//l*y*/[  sx31 Ĥ̜̒TOQS6o&^oneEy%3t_]Pٔ>LpIv 3	x31 Լ̼T}{-mn%Y⼡`Iₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ G<gx31 Ē̲T'~\b1( r	x31 Լ̼Tt-vܢxc礙<&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
  ;x31 Ē̲T}~])S 	x31 Լ̼T[釱>&q|
U4+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ |9x31 Ē̲T2}B\x0kk6wc_@}	x31 Լ̼T)BWtslB&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 ˋ<x31 Ē̲TK%x[O	??( x31 ̒bO/XB9Ľ<װ	 gx31 ds _,l {
}x340031Qp
qKc~m~X؁p&Og^6kb 
y%=+TN_lc#Y[!Čl<uf["qy' ,x340031QψO,/,H`'"tU3#pl=23$>71/1=2V]MYWGNOOkyY3o%)*d|" o3_x31 Ĥ̜̒TOQS6o&^oneEy%;X;J˧3 Y ҧ	x31 Լ̼T8fG한4m&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
  :ޡx31 Ē̲TWZ󯀸gOÛ b	x31 Լ̼T9&45\HpbG&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 p2<9x31 Ē̲TgkQb^Mzf x31 Ĥ̜̒TOQS6o&^oneEy%2W;J٫vFI ̿	x31 Լ̼T?:?m3\9!(% '2>71/1=ARNl]wgn҇K,dVvJ{!oՊRfNHg9H?j޽}r?
svD >x31 Ē̲TS.~ztQMw 	x31 Լ̼TXΗ(z*uZ{ₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ w<Yx31 Ē̲TWDcv>_hƳ# 	x31 Լ̼Tʌpߥ$ڔ8(dmt6+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ T9x31 Ē̲T%Ksf$y3	x31 Լ̼TSvzhyޗ[MR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG <x31 Ē̲Td7KUvg(15/ n	x31 Լ̼T3":څ=N&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 r<x31 Ē̲T/"O06GgLu	xR Ó	x31 Լ̼TZa-K/mwW.=i	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ ;x31 Ē̲T_,wsz6Vs gק	x31 Լ̼TvR~ߛbzO.m5+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ "=x31 Ē̲TG;69Hl˘ ҧ	x31 Լ̼T0/+K\6יnVY\XZĠgzL'wݮ;_37CT%d2y+ɽjEXqzU3A3Rz$5>a9|9; :x31 Ē̲T+DcxjL.خY8 'x340031Qp
qKc|;#7E&@SpfqC*V|bJNfRFfJjRi^^J^Vq~ÚNEL%nYkN:.KVQ -x31 ̔Ԥts&ζ-\>ƭt0 Ex340031QLIM*M``}W	1	Yoq(Zb( /nNcӮ,n  Xb"	x31 Լ̼Ts7u,cB&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 go<"x31 Ē̲T'nvz.B<-O 7x31 ԒrYJOYNYku	XMyfZ&C]bʷiUzS:UԐ 4Yx31 Ăx?c*> gx340031Qp
qKc|;#7E&@S0qD-+</;Jq4!d&ed&de1`bc۾ZOY\	 2Ԣx31 ̔ԤtG<Oftn<٪oB0 ax340031QLIM*M`(i[rYX.	"Z(K*R*gQ^ģr[UUm/| ,e	x31 Լ̼Tȭ.]gwryOLR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG =x31 Ē̲Tw3:Ԛ?ˊg 3,	x31 Լ̼TKf|q<&xy-&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 G;x31 Ē̲TAݛykfӪOO Yx31 Ăx/d~s-WUuj 	x31 Լ̼TI|;8,{&Y:_{YI~&`E)9yEbJt[?r9yn5ԹGeL"qe¤	̼r9?=35ndLY ;x31 Ē̲T%{W)oz ́	x31 Լ̼TݑWռT.W5ₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ X=x31 Ē̲T=/ԯnXE휒Z& 	x31 Լ̼TٷrIUrb`ₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ %;x31 Ē̲TߖKa	. /x31 Ăx_ɑ~ܦy<-;f 
i	x31 Լ̼T	<m6V#|2LR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG +A;x31 Ē̲Tmxn{Ya~v: e	x31 Լ̼Tlo"Bgbₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNt=woaOQ |-=Lx31 Ē̲T>̨ōC'ߝ	 x340031Qp
qKca7ۑ%xwI&@S{gE㞹Gvk|!Ĕ̤Ē̲$l<͚u.)Ȯkg8 1/sx31 Ăx/&Uu%UڽrWop
 8Gx340031QK,,KO,MON,()-J-`/沒{wzxi;	 fsx340031QK,,KO,M/JKI-J-`XޛWL3Q̆Ol] x340031Qp
qKc`:A~V#_9wK&'3)(189?%H//%[/8?5{?r=u6T~ޝ |:#x31 ̒b'!Jl7Ҥ{B>퉸"' )"x31 d$'A?_-cH ;x340031Qp
qKc~m~X؁p&Og^6kb 
y%Z?VȷbGĔ33JRʊn39{;Z2֖A T(x340031QψO,/,H`'"tU3#pl=23$>71/1=ZƆv]5\0{!TgV'秀5ڼsrۙ2> 1px340031Qp
qKc8vgUY&-#nb 
y9)wHya/ULSr22JR_Qo9asSRX~W09 "+x340031QK,,K(.O,`Xo|HSm{ZcUq|bJbAIjPnPl,
sʣ]_yY+_wn,K*Rw}^hV}X?wc>=^ wLx31 Ԥrť3|Mmӆ .x31 ̼Ԣb>gҮ Mx31 Ē̲TnR/UsI6Hj x340031Qp
qKc|;#7E&@S4ivj>Y><bJNfRFfJjRi^^J^Vq~Û	/6f- 1x31 ̔Ԥt/w-~XW?  x340031QLIM*M`0̙psn8xȿMU7DQ_RY
TY|4mq|5NL?8ݦ o	x31 Լ̼Tyfy2o/th^SIB&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 ;x31 Ē̲T=3;sl9x `\	x31 Լ̼TΕS5s{Ls7m'l8LR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG O<ޡx31 Ē̲T3iT<jm:鬍؅ѯx31 ̒beq%ɹ* Tլx31 d^a|^/U_= x340031Qp
qKc~m~X؁p&Og^6kb 
y%l]>IkfԴG*S~3VUǠ`,}]$. /1x340031QψO,/,H`'"tU3#pl=23$>71/1=:hG9G9K\oYPZ2h=mg:J
;STD ]2̩x31 Ԓļ"8Ϗ߯XթSM`sn8y.-[_ҡWS##$&g38kq/-OvUc8 ҧ-~x340031Qp
qKc9Es;~/21 ̼ҔT9oͺt[C)9Iy%9zYy~H{֪E u-ƣx340031QK-/.ΉO`XtL/K[&Tl2;v,C4e%@疿^JzSdKM k"x340031Qp
qKcp]=I"Yg)H PK)MIexqlƗ t!Ĕ̤bl<WnT[Nhܔw +x31 Ăx˾Pzi[̙6)ֲ5ז  	x31 Լ̼T+ҟlmA&?&d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( Ez=x31 Ē̲Ts1\ODyb Y	x31 Լ̼Ty֭,ꚺA"	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ ;hx31 Ē̲TyKZkBKiz Qx31 ̒b>1snyx:Ǭ x31 d%t-!ۮ Vx340031Qp
qKc~m~X؁p&Og^6kb 
y%b+H֌ӹ<C`%zy)zYy;~	fr˿߷EO +x340031QψO,/,H`'"tU3#pl=23$>71/1=zÜW{*]ܝ٩) c6;v㭤9EOd45	x31 Լ̼Try~^cfZ](q򈶊	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ T;0x31 Ē̲Te~ˋ` *x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	6~]-?ٯ@XEYּ,;e|
 4x340031Qp
qKcXcpfnǍ.t,61 dd+z
ݶ*kg5OK+*K*csf794p$ (Bx340031Qp
qKcp]=I"Yg)H PK)MIeu-W`1%'3)4X//%[/8?6:7%wc +'x31 Ĥ̜̒TOQS6o&^oneEy%SgMZmRi9͹ x340031Qp
qKcg$:^+FCԢĂL7sL
Mض=I=*T}NfPB^^J^Vq~Cq/+785 |6,x31 \%Q2)Y\/A֋ 
|x31 Ҽlv6cBM]bY =pbx31 ҼTkMOe5s#?<˽ʤ) x340031Qp
qKcPזEN'iUD֘ Bf^rNiJ*Li/Tcc9w3TUM"9 `7geGͳ] *x31 Ғ̜bU֛9S6& $~
x31 ̤ҢĤ\YHԜz>*7" 5I_x340031Qψ/H,.IMO,J`8зuꮄܜ.ԢT]!L}?O L)x340031Qp
qKcXcr8$b[L@!3/94%aMfMʌs>y/lOG!Ĕ̤Ҕ4l<0kvɳ۾c;6 >,
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`yq٢"1uGg7M 4o7y{*\?{`Ҝ$zy)zYy^'^=_@
x340031Qp
qKc|1!Rx^i;-75L*-NK*cZc#QX,7=SU
TXpl-S'b,zᒌ tښ(^Eן+-\ =x31 ĂԲԼk\_l8 sx31 ̔Ԥt=9gIU/渾! ˮx340031QLIM*M`y±& ?k/Y_{m( q>O?W,0 x31 ̒T-]VvظP8xHWm 0Xx340031Q()JLN`P<x
۝/	km8w Xx340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔT4N<6	5bJNfR~Ff^AiInjIF~J^J^Vq~Nfy_ڞ-^K( Bv0ߢx340031QK,,KO,MON,()-J-`8Ͷ?6O]vC\ 9x340031QK,,KO,M/JKI-J-`6VMfs'E)wЃ*W x340031Qp
qKc|Y}^|!jr2
r+SRosɊyy=gW=  !x340075Up
qKcpRS/<yuȶ6 2/szqֲ'M?|K3X\ZUPji{9˴g iq0x340031QK,,K(.O,`0*mn`Һ|ɆX'$5	ly1;HhI^Ƣ (1#m֔Gg}_', ,K*R7l6ӂ'59c1oOx31 ԒewM*Ukf?\y	XMyfZ&Üƪ_رt-E!h/	x31 Ĥ̜̒ҼTY/Ʀ7VQ*, 6x31 ̜bњlg(rwf ~Px340031Qp
qKcpH"ç5p7LJI/(ON-.K*c+18NCSxvՔXY1aϩ)|%[?
 4x31 ҢĜԒҼTͲO%s7 ix31 \bwiẍ6:10{b w
Rx340031Qp
qKcؐ5KdǊ&OV2L*K*c`M~@zrKe;8lU끪ψ/K/`8}͢K
8Q_o,>9?7TٮUޯNCmjYj^I|ZfNIjPOr(c%l:a6 Sx31 ĂĢ"bgd>M~fn e
x31 <{9VhvۧjFݶ&`T܂s?͖u+]sR|ے9j	f&&
yz%Z
.V8lVy|hSJ*RSR~G18NL)*'oN(-)f:yZ2SwUr{[y$<+ Fx340031QHKL+d8Ulׯn*$>Be禀ݙ؏cjݢ=<#-q_ 4׭x31 l| L5e240031QHM+/H,*N-*fR;lr]g7wjm3pC1?3ӱƫ%|?DbtaQyIg?u]M1}rF, 5x340031QHHM+d=qmٱ7~:HjSA^媜Uδ|,<Q%概nV3bF#[[VMѮy(
+J+@JµlUû7^E7)Li~nnj^I|AbQqj^V1a:W>Gn(3.c?k{s  ]
x340031QHOK-J,K/ILI-+d-S1-Ж41 ̒Ҥ\g˜3\]w[,S3sJSRA.HdvLtIGV[R᭿y` yF|x340031QHOI,/.M/,.I*cH3J9Nv);1 x31 l)b<eRX3^*n|JfZâ}d%4,Ð tAbQqj]Nd5^Rl_ #x340031QHHM+dpB;}aQLwe %Px340031QHLK+d1^. a^lk x340031QH+.I+)+d~3iG칷22=N  $uݩx340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%A &{)dlRa1%'3(5-(5/9X//%[/8?acX~P_ۆA]9 i0x340031Qψ/(JMK-JKN-`;7C.C!6EE)@MklYB%n®)$3?a]EujS']Y+n餇]KYbN)Ȓ'x'Hf;gS֫x340031QHN,ȌKKMaXa>_1{>nCʌĔu>Z	[ΗgKZχ+-N-O/LI)1;{3nj*V1 2΢x31 ԊԢĜԲļ"%3g5yg-!'w Wx31 Tw,z^>x2S,tj;dͣ~K$>n]bX*D8AmKo53Ηn &
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`X3=S^;tQ7ʂbRu~Srlg.=U4V//%[/8?AR|V_YgFE ̘?f
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22&x6/Z_.{eO 4A{B眿diCx31 Լ̢Լq:q<;	XUZfNj|iQ&ÕGn2|E/
BIf>&ۜ7>ǭ"{8#(AE7K\QF <7fx340031Qp
qKcl?K Bf^rNiJ*C&GxRaGS-WC)9IyeEyy%zy)zYyjUuZesB| /x340031QψO+,M+`(38KJc  ]x340031Qp
qKc0vt܆ɏ'51 ̼ҔT#aIJ&7TX@k`C)9Ii9zy)zYy7^zg5iN+x340031QH-*/OOI`RHѷEO5Oz4`YC̜|L0{Îf "x31 ҢļԼF/ށVNgU4dr= lx31 ̜TX$CKn?eߘ@T%&%1q}"v|Άإٵ x340031Q(J-M/`ҕcǸSgn	kU5y@[u[_'=T %/
x340031Qp
qKcﴕWx또Q*&5--5$>-3$H/Ur񨺓qm<mTT%@y?}M9BUd&%dCde1;tͿV?[sוl5 8Gx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cvmi鑴7kh5/ӅAѐ0%$_uӧ 'u4x340031Qp
qKcjk׮ܦ.]ff PK)MIeM!iNb_͌빆Sr222sr2SRZNv~p`iLUeuT /	x31 Tό3,uJfm0[ ڻx340031QLL`躲)gHR	 ex340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)vgfΥnfBLL,)JLNK*c8ft+fc>Q-A' +,x340031QK,,KO,MON,()-J-`8tX1?yOaVI$^4 ȭx340031Qp
qKcP]_%,脣#du59Iy%e)Ezy)zYylS3j,>![z x340031QψO,/,H`'"tU3#pl=23$>71/1=:dGӽDVS+S@m޹wVL[Ias
 0ɦx340031QHK,ϋ/K,LLI`a5QI>>?Okmf̅L!s*$x|hk&[XomP%@%'>uV[:5Ƥ7:V*),M-ɚzYolkqZ;8'5dQy{\~hbh\lm:wEKa*2sSJ	zb{3fsmIeAj|JjPŲKCez_V< \w1x340075Up
qKcxébv{Zn4];t` PKfx5diWQRe!Ą̤l<VKL;p9_=; 2,x340075UH,.N-O,`8R}+bĿ-.g .0{]""mUzi~ vƢx340031Qtvve!ۨoWֿb
01 ̒b-FHlLoq7w x340031Qp
qKc:t+rᏕ~}K.xv&9?$D/a-uv🽸kC$$ƗT]̚wZ>6;U_2j宬짫';uީq,z,2TMnf^JqA~Qj|Nf^^J^Vq~Wx ӑ4`+'&ٳ>TIqIbIi1PMwG?-sPt[Co{T,TMIj^q~Po_me]nnQ|ELЋ cz/I:x\si/ 9.x340031Qp
qKcP7
7b^\/ؕ!5J>*tw(%3v1ʲ6VnI 4#
x340031Q*K,,KO,`xrJr%W,;rC,JK*RJV_~gw7jOU@AO4m.TGS711iNM%1 -G	x31 Լ̼T=.;FW2{,LR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG <ϡx31 Ē̲T&OPҥfܵ׏ 	x31 Լ̼T}볗K*x%[՝.>	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ ;x31 Ē̲TڽT`y,:
} <j	x31 Լ̼Thvv`9ޮ	d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( [;x31 Ē̲T9/;-4F,;zz 	x31 Լ̼T]kr<ܮgCₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNt=woaOQ =ˡx31 Ē̲T]x2\Um'ܶɾ}5qf. wx31 Ăx*{-L^N1HN& x31 ̒bDo3nן2TUmvu x31 d}HVWww:g1_p 1x340031Qp
qKc~m~X؁p&Og^6kb 
y%8|WZaY܅!fgde1nv׸~G~/V *x340031QψO,/,H`'"tU3#pl=23$>71/1=z]іbsŒ?(4:;2>9?d{~gtv>, m3x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*k܂?]U0:(PZ\YP}hKӕMnrvԬ
 +x31 Ԥr˯oY;k	5OW/ Dݥx31 ̼Ԣb:PQlcbx31 Ē̲T^CwZ,xI|7 >&	x31 Լ̼T6sejD}3+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ o>1x31 Ē̲TùWOM;rWR 	x31 Լ̼Ty̜4A,K	d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( v<Ρx31 Ē̲TĠ^NEKOt.p yx340031Qp
qKcp]=I"Yg)H PK)MIe%~6>lcϊ5Q]Uʍ
	Mα  +	x31 Լ̼T^txv|C酪d$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( =cx31 Ē̲TLùϗM3 qx31 Ҽl(?o.2ք' Zx31 ҼTMf`+a}`*G] ʃmx340031Qp
qKcPזEN'iUD֘ Bf^rNiJ*-ҏ9ת'2TUPn'֊ɞ[U˙o; 1Rx340031QK,,K+I-JKLNO*KI`]aXoN 'x31 ĂxఏVde{Am /x340031Qp
qKcp]=I"Yg)H PK)MIeaX)b={m1Q]Uʍ
	Mα  )P	x31 Լ̼Tt9oOq{ixw	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ F9١x31 Ē̲Tͷsn}mj.çLR |x340031Qp
qKcp]=I"Yg)H PK)MIe_hPps_Vkx!d&efde1rrFS禤`s,? g(z	x31 Լ̼T,]\'jRoVLR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG ¯<x31 Ē̲TWoܸ]ŕztE#Ǟ tx31 Ē̲T؂vu/4v Ȣx340031Qp
qKc8vgUY&-#nb 
y9)3Uƿfč1Bԝ!d&efde1rrFS禤`s,? J,"x31 Ԥrog˛;Jrvzp. \x31 ̼ԢbQޯwzw x31 Ē̲TsXi{a^am ɧ	x31 Լ̼TGF=3|9]sTd$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( p=x31 Ē̲TWN]ߎO_TĬ{j\ x340031Qp
qKc8vgUY&-#nb 
y9)MNp]{t_a񆷟BLL(.K*cxF儍MIa]|X~  U.B	x31 Լ̼T_~)g;{pd$V&%1YӉm7MyAAir/>ZV^ji̼r9'IGͻOX0'_aΎ( q>*x31 Ē̲Ta6ߓK[/?kZ x31 Ĥ̜̒TS/5{}Y(+*+Meeys.ݢsEvb9 o}$x31 Ĥ̜̒ҼT|"}ܬ)2pիɬ .Px31 ̜bnd9U߽ɝs>[ =cx340031Qp
qKcpH"ç5p7LJI/(ON-.K*c!uA5)oir=MTS^bIfYj<sLGzsF] .N4
x340031Qp
qKc1Fj-NB$'e0(lҿQl4_;GUd΄@d&%dC4de1\.:׉mS'WPud0\Jot:+YH Fx340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?!8Jj.o9U6D?Ճ!Ҥf;2ƈ) (5x31 ĂԲԼًϸ^-r~sw* ҥx340031Qp
qKc`ȩ\q]@F+[WKygb 
y9).^&Yy]vpV\[ZbJNfRFfIQbr^^J^Vq~6[1EZm	}|> g\+Bx31 ̒T)kbNyC, ϐx340031Q()JLN`=dΌϝ6ힺ/ig 1ʩx340031Qp
qKc_3wQƪdg*wgt}՗&'3)?#883?O//%[/8?ADo_U30Uz%/$,5>,7$1%$Q/aqI
Puӂڨ
t0;2?sv˛x<nfP]Cu|jQQ~Q1P)lvO3f~8}Y9 ]Ex31 Ҽļ"50<}@|dB&`MiiE%n6)i<k+D0aȶ%u:oOk+ q8~x340031Qp
qKcxPr"^^;}̣'2(B$%&g'&%de10M}P=-V> 2sJSRr*t,pLjȱfv I_6x340031QHJLN//K/(ON-.MKLO-`8@.} \
x340031Qp
qKc8:%T¬sf]d>}kb 
+:16[O"E?4OK+*K*cx<\_ژ&*HN׋ ,"x340031QHK,ϋ/K,LLI`rtQw:6ejQ_ TqWYz(nyYVTEniIjPIgE#	g}4d\[_l)RZ?TELq!9V(xӳbl[~şk^Le "9{el
jZ37ÔTƧU,^+ilkn  $vx31 ԤrTYj.a. ax31 ̼Ԣbw&Ԑ-5mx# ̡x31 Ē̲T2~Veߒ95)  )x340031Qp
qKc8vgUY&-#nb 
y9)\#:Wmo`1%'3)4X//%[/8?6:7%wc w~,x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	ÃއR{Mj}%ݧ ҅Cvv,Xxۢ,ksY߃2>N >4x340031Qp
qKcXcpfnǍ.t,61 dR+ǻjTIfO&Bde193SVek]8 5+Wx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	sgsW><ϝ|9|!;;,mQ59,ƎA =2x340031Qp
qKc8vgUY&-#nb 
y9);S=4zdx-XI+C)9Izy)zYyܨ𷜰Թ)),+ 0+ox340031Qp
qKc|;#7E&@Sʰ X3[޷,l1%'3)#3%54]//%[/8?O}zzM 2x31 ̔ԤtmQn/1=|('_s Px340031QLIM*M`].ieewؽ%CE%@GǇ^PZ]m+ 
Hx340031Qp
qKc8vgUY&-#nb 
y9)}kiyڧ&п@!Ĕ̤bl<WnT[Nhܔw 	O*	x31 Լ̼TL)ߗUhW{P	XQJfqANbe|nb^bzj1vw<ܤQX&CުašV͜.K/stԼ{~ E;x31 Ē̲TJthụ ʊǢx31 Ԥrf~$"0oqtK $Υx31 ̼ԢbLl'/HȘt3& 8x31 Ē̲T!SCEJy5 vx31 Ԓļ"8Ϗ߯XթSM`s'ȭwto?"
JJOE]J*d~c0#	 |(Mx340031Qp
qKc9Es;~/21 ̼ҔT~w7	4/?7!Ĕ̤Ԓd<?
i=qkբA߿	 -x340031QK-/.ΉO`lvL]M^/^mg, _=0:@ol	 1X!x340031Qp
qKc ḓ>FTc Bf^rNiJ*=m2,2wIS!Ĕ̤Ԓ<l<Z5~,o:Ҿ2kV 31ax31 Ԓļ"_BU/Vz+	LQqqm"υyK:tjj}lg9ߎj,g ,x31 Ԓļ"_BU/Vz+	LQqq];cVd^xR>BAIbr6CɼhKiBLoLXbfp$ D'~x31 Ԓļ"kb^=yk2x550)*.a8 a\bg̊OG((ILf(=v)MI	Kl$ &=x340031Qp
qKc ḓ>FTc Bf^rNiJ*JW-I:ѽZk/|AzWC)9Iy%yy%yzy)zYyoĄEgp	K<fx/;x340031QK-OKM.`XQ>¥\IvSO,wʂTՉrVX.bq  g"שx31 Ԓļ"o:YDrm[߶F-Է&0E9;|:̷wKYyI%'.	2	1aMX (Zx31 Ԓļ"*uNkuu[*)	r>ۻ%vƬȼ|lғyl҄
ߘ&,H 
(x340031Qp
qKc ḓ>FTc Bf^rNiJ*C9{7CDbJNfR^jI|r~^^jrIf~^^J^Vq~Cњs?7ip 0x31 Ԓļ"g{kE9K&r-N40O[0ޅ.3fE'#$&g3̋f&T$Ƅ%6aaG ç)x340031Qp
qKc ḓ>FTc Bf^rNiJ*CZ!
ؘ^|bJNfR^jI|r~^^jrIf~^^J^Vq~Cњs?7ip a1&x31 ԤrIA{^nQ pI ߠܥx31 ̼Ԣb+],|47K x31 Ē̲TS+4uٶo {x31 Ԓļ";f|)=CyVy]	LQqq];cVd^xR>BAIbr6CɼhKiBLoLXbfp$ &x31 Ăx^籺,U_&G| Ox31 Ԓļ"^qm.-^ý	LQqqqcצl1UKZ5BAIbr6CɼhKiBLoLXbfp$ &x340031QK-OKM.`h1x3G|MUbS_RY
p~Δ¾Ma!;O 'x31 Ԓļ"Vgv36M̓ә&0E9]Ř;T.i} {%'.	2	1aMX {()x340031Qp
qKc ḓ>FTc Bf^rNiJ*V";?]V^C)9Iy%yy%yzy)zYyoĄEgp	K<f
/x31 Ԓļ"v/=zڵq.Z68^`ձkSs*%O|$19d^4ۥ4B&7&,	38 1)Nx340031Qp
qKc ḓ>FTc Bf^rNiJ*{qϩ/d<wfLf1%'3)/$>9?//5$3?O//%[/8?᭖>ul<v<! %-x31 Ԓļ"eCWe8ȽtSX뽏Y&0E9]Ř;T.i} {%'.	2	1aMX O'x340031Qp
qKc ḓ>FTc Bf^rNiJ*Õ=sw[romNU!d&奖'&dde1'.pޛǎ? 0Hx31 Ԓļ"}>t;F~siST\p\/ص)[C'npPPPz2/RP!؄I )x340031Qp
qKc ḓ>FTc Bf^rNiJ*[wzWr;p'BLLK-OKM.K*cx%&,:O8G]7~ s/x31 Ԓļ"Nm]6&6?xҼ&]8^`ձkSs*%O|$19d^4ۥ4B&7&,	38 s&x31 Ԓļ"ɟ>]?tS'NaST\p\/ص)[C'npPPPz2/RP!؄I و)9x340031Qp
qKc ḓ>FTc Bf^rNiJ*˒了%'xd'Do-zb1%'3)/$>9?//5$3?O//%[/8?!(gJkw+lju --x31 Ԓļ"e+2<r$-zUǮMb`>qk=lғyl҄
ߘ&,H &x340031Qp
qKc ḓ>FTc Bf^rNiJ*ћ?-1rbJNfR^jI|r~^^jrIf~^^J^Vq~CQ {Wt /x31 Ԓļ"|RVSz|{IfE	LQqqqcצl1UKZ5BAIbr6CɼhKiBLoLXbfp$ 	G&άx340031Qp
qKc ḓ>FTc Bf^rNiJ*I9۪7zl{.BLLK-OKM.K*c3
`yyyZ
Z] 0x31 Ĥ̜̒ҼT!mPEb%]W Z	x340031QLJK-K+K*cp{>կG-N`?%?#YKCHTcAjK
J2rvܩf+8eQ }G:Ʈ
x340031Qp
qKcX^xnFܺlwE3Bd&de1]N::nqBDϥo<U__o$U%Cqey%i9%E@=ORe
W/m|긼Fx340031Qψ/H,.IMO,J`ҙd"Y\B Wi*z(O-*OOI1/5ī]\Rҧ s%x340031Qp
qKc{2}?Esr&3f{kb 
y9)"#>Gm~5'!륢!Ĕ̤Ҕ4l<36OJܰ'Ťrɞ5+x340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cI7ېo[TCh`(Й'/No"10x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2D}욖/1Eymd:!d&ed&de1i<Mt`2f5~ /=x31 ĂԲԼAF!I x340031QL,(H-K+`P[X9!miD^C;7DWT:\rjpwCdA͕MVVM/ObedwF҉;SuAbQb.[{|ux]{K D&x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIeX2Cq֓eMl_e7UǠlߥ7mߜ_ش]u +x31 ̜t*g,'0\c*u9: ox340031QO`hnXwY?e<l =Kx340031Qp
qKc8#pvG۽\um
01 ̼ҔTN<moNI=hpmSr232
JKrSK2SRxg?Nu+ Z/ͬx340031Qp
qKc ḓ>FTc Bf^rNiJ*˭^vĘݬ/BLLK-OKM.K*cpQ~k1kc'T)S #0ƭx340031QK-OKM.`t?9ϮܓʂT4{7h5Xc7 &	x340031Qp
qKc/|TƜ5FkoEBx:2=sK|,*̤Rl<.2U.GD'&@ TZTI!4(뗫طv+ |492x31 ҼTǻg[V^}D  =zx31 Ԓļ"S_lEv-tė\A%^&0E9]Ř;T.i} {%'.	2	1aMX (ʬx340031Qp
qKc ḓ>FTc Bf^rNiJ*CGX"'q/_ݺ/|!Ĕ̤Ԓ<l<0 ǟ*鯰5 X-éx31 Ԓļ"s,n:k][7dך0:vmcP[!$&g3̋f&T$Ƅ%6aaG M)x340031Qp
qKc ḓ>FTc Bf^rNiJ*Ïxx|3f-2Z\Uf3^;6] _1x31 Ԓļ";f|)=CyVy]	LQqqCOҏom]:c'~F((ILf(=v)MI	Kl$ /)ۢx31 Ԥru<3w,qW >x31 ̼Ԣb.͗ۻw
`a) emx31 Ē̲TjN/(s~U Fx31 Ԓļ"B?<럿oST\p\/ص)[C'npPPPz2/RP!؄I ?*x340031Qp
qKc ḓ>FTc Bf^rNiJ*Cl[m}gBLLK-OKM.K*c3
`yyyZ
Z] [/x340031QK-OKM.`X)Ǵ|Jjlj\CljK*RFYq/֎; 0(	x31 Լ̼TSf^SΞ붟awhgₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ H;x31 Ē̲T"k"5^dSW4
 x31 Ăx	;
Xz|˷_^( ߀˩x31 Ԓļ"ORQڄlFzUǮMb`>qk=lғyl҄
ߘ&,H ("x340031Qp
qKc ḓ>FTc Bf^rNiJ*Í?<h֬/]4Z\Uf3^;6] u2.x340031QK-OKM.`_C_tC!6%@inaJ,8~X@k "'L	x31 Լ̼TU'6t,?m1%әₜļ"=Kc:fvyڟI2/ ![=(MŇU+CK9"]_7D#y	+ mL<2x31 Ē̲Tg8ۈ-۵Ѭ<; Lx31 Ԓļ";f|)=CyVy]	LQqqqcצl1UKZ5BAIbr6ÍroG]5ώ3*6x31 ԒknMtY/rfdWRTZ )uɕ=.`\w
 P ɫx31 Ԓi^E<=g^ԤNѬKq$t9S W0x31 Ăxm595J}φ >x31 Ăx[;>Z2Li:Kd z	x31 Լ̼TNe?]'zUi˄LR2r+sS,UĶuk&}ʼĂL oe4V+]/j&Ԡ̼r9'IGͻOX0'_aΎ( =x31 Ē̲Tw2/
,M2 Nx31 Ăx!2>,.q麘 x340031Qp
qKc0.[*	<fw BbiJf~|rbAIiQjC{Sɢ̑_W h071/1au%v<[U[ Y]Qj^J*sr'klk/e&Q}[W7E#/{RjxaE؎  Yx340031QK,,KO,M/JKI-J-`|r2?YZK' x31 Ē̲TͺſƧ	ndi) %Ģx340031Qp
qKcXcr8$b[L@!3/94%MU̇δ~!Ĕ̤Ҕ4l<꾷͵2-gn Xw,עx31 ԊԢĜԲļ"n95/ozzw^|. ۹ۣ
x340031Qp
qKc%đWQ۷L1L*-NK*cZc#QX,7=SU
TXӿ;UәEs­ii+ tښ(^Eן+-\ |@Xx31 Ăx݌f=. rx340031Qp
qKcpGU?ůe4z?Ji.61 ̼ҔTW){':j]ۚz;F05zC)9Iy%%)y)zYySTN	
FzK# 2ۯx31 ̒b?AG}rt:U x31 d݃^;o]nrI  x340031Qp
qKc~m~X؁p&Og^6kb 
y%WN2pv4Vkgi>!Čl<w[EIN\Xqg)S[+mx31 Ԥr_sRW85%K[.N x31 ̼Ԣbu+8oX~̌j Zx31 Ē̲TUJ;/19rñw3  x31 Ԥr_E'.K/jP|/ ۦ$x31 ̼ԢbɈI^=Я!i 01x31 Ē̲T)ب	zڼl8ebt whx31 ԤrUI+5r:!#P tEx31 ̼ԢbgETzw_W`kYv :x31 Ē̲TnYr;ߣy;85\Q Sx31 Ԥr3ߦ߲H1/Z8 Ѫx31 ̼Ԣb-q]9-=3_ 9Tx31 Ē̲TʸCFn[4ͫ Ϣx31 ԤrKuHxn5cͤm| |Sx31 ̼Ԣb_qݝ|Σik,
z x31 Ē̲T/c*<:,V	 ROx31 Ԥr\5cYuԳ 9x31 ̼ԢbyazDoYg^  x31 Ē̲T4/;~<Ǖ{u> ڀx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	C{WWQz+.B|!;;,mQ59,ƎA 3_	x31 Լ̼T]Mqv\[!ₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNt=woaOQ \.<ҡx31 Ē̲To%owl>,|@aǯ 5Fx31 Ăxۭ0V|ܣ}S 9mx31 ̒bQ'_X))rIO, 6~x31 dg?lVY̿t[fW# _
x340031Qp
qKc~m~X؁p&Og^6kb 
y%fߘ}Iko\3bF~X^^J^Vq~k7}[n_}'kb5+ 3.ix340031QψO,/,H`'"tU3#pl=23$>71/1=:Co)_p;iړPZ2h=mg:J
;STD T12x340031Qp
qKcoԇ![jo9eW=59I9Eeřyzy)zYy`/G]7o{g ܬ) x31 ĂxYE0[x!IeKˡx31 Ē̲TD˔`r3C x31 ̒bFS_)~ho: x31 d1j'^83<]j  }	x340031Qp
qKc~m~X؁p&Og^6kb 
y%nʸ'M<ȾwTsB +K*cM[BApBϞ&? -ax340031QψO,/,H`'"tU3#pl=23$>71/1=6wsSѓ},)Buvje|r~
X;*x+)|NQ!Y 3ۢx340031Qp
qKc8vgUY&-#nb 
y9)JmO?u)>t',Sr22JR_Qo9asSRX~W09 &Z+Qx31 ̒bw3h[0J 3x31 d,fOg=XW x31 ̒byҳbVtmV|3
 
x31 d՛eMҿz@dAnK|j .
x340031Qp
qKc~m~X؁p&Og^6kb 
y%߻Q ΊS!fgde1inR]!2xϓS:+x340031QψO,/,H`'"tU3#pl=23$>71/1=Yty	ǸFd;qFwUn;VRB' rU3x31 Ԥr."z7SOg x31 ̼ԢbqKv[o" Hx31 Ē̲T¾?$dyV 	x31 Լ̼TeSYB+T\R;ںF&`E)9yEztbw?s>De^bA&ôk/WeW'@3Rz$5>a9|9; =gx340031Qp
qKc0.[*	<fw BbiJf~|rbAIiQjvϦ^rM +MKLsXic%{}cG}]=V@VW
2𱲪T'Us7Ճ(Lchi}y/4b]2azy)zY@$5d')мA
'? rJ]]x340031QK,,KO,M/JKI-J-`|7㣲b\sK}s  Եx340031QK,,KO,M/JKI-J-`9n(ͽ6Iz. 	x31 Լ̼TeҺ+vݬ(% '2>71/1=ARNl]wgn҇K,dVvJ{!oՊRfNHg9H?j޽}r?
svD &:x31 Ē̲Tkۊe2tX]AA u	x31 Լ̼T5&)^4WN.lVY\XZĠgzL'wݮ;_37CT%d2y+ɽjEXqzU3A3Rz$5>a9|9; *=x31 Ē̲TG
E~	% 	x31 Լ̼T}\#.lǼJ5&`E)9yEztbw?s>De^bA&C{P܋yVZ5sD<3/%nΉGQ/W#
 -6;x31 Ē̲Tr~F~*\l\_ /	x31 Լ̼T%?_g4acA{~4+J,.IMKLO-bгT=n;nם!*2݃^|["8tԪ y)psNt=woaOQ 1j=١x31 Ē̲TIN'\L.ݰy1_'od a	x31 Լ̼Th;ɰcN\fzE7MR2r+sS,UĶuk&}ʼĂL oe4V+]/j4tyf^J~9ܜ]',_0gG 3<x31 Ē̲T+tet2},;x31 Ē̲TEF>RSo,IȆkAJ yx340031Qp
qKcVbN[`m1L*K*c\)e],<[<	2?#<3/%\/~ViyAoCWT{A\*l*_'Z煡6,5$>-3$'kN-,Yj {jSx340031Qp
qKch~52.=3]_N{^,}q PK)MIexxJlύkkŤv8-1XY_Uǰw^h'۱vlU.8v 4x31 Ăx?͓Xx-Ie/o x340031Qp
qKcPWg|]<51 ̼ҔTq\US&v0e_!Ĕ̤ĂԲԼl<m>!a)© 3.1x340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`Pw⏧df~c.~T5y)zYy/4-4sᄳ^rƵ(JSR2SL|K\fortCUWPZTR$敜{.UepF?271/1=6㩌&?s}z]gO~^'!jRCsSKSKKK hQ͹9sao>-*./ɏK,,VgTΟ>Y*^KnSmS}VPtwB~OI"`@#}Vz]$4CWarr9s[j2SR*o0w̻$Lm_ mũx340031Qp
qKc|Y}^|!jr2
r+SR>liH~еkG۲v5M0 "Ax31 Ҽļ"7fձjHnyZd5s@	XSZZQ	"'?sß]|"p-Ԍ'6H#ٶ5N~=mimw#6x340031Qp
qKc֠UQmQE=Β-131 dUlWLr튮/{vY?-D//%[/8?aÛۿ.}{~KE o+Ģx340031Qp
qKc8vgUY&-#nb 
y9)I.<Y7ѡ'%C)9Izy)zYy>մpKRN 4F+ޯx31 ̼}U_mǉE:e Nx31 =Bhg>k)c ux340031QHI-LNK`08ϒvu^L)W3+,NN,K;ZY]荭"gme ^x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*;v\
z2W[]٫<̂
ޓgb~.setI $,x31 ԤrwMlpG'.UF R٥x31 ̼ԢbJɌGB6~z 
x31 Ē̲T&J<=>?ǇPx340031QK,,KO,MON,()-J-`p܉5ӝ7;ne 	x31 Ē̲T^盬} ܮ	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~CIͮl[2gkݵPy%e ƚSO^1)?)s-7 @	x31 ԤĢ<{Y
N(5-(5/9a_C5Gj-y;גּ &DUQjNbIf~^bN|qI~Q*Ãw.se* JKSr^꾇ߏ߿Q IFAx340031Qp
qKcXcr8$b[L@!3/94%AQzik>蜕!Ĕ̤Ҕ4l<us<2QvoGv) -x31 Ăx~fhfg޶iA-- #x31 Www[6췼Rqj1Z	C١)J;+kçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1S9{.}3>ё@Q__\$6ѲGt 2RM)9@͙%qI:7,S\I:A3_[h޳,Q]\|}Z}Qԥ%2,gO	'ޤ19kV\f<S9gìgoPAQVV\c|+W{.]IoNe@/3O{ca~$fz։Cԕd'1f3)ˍ],z ~]x340031Qp
qKcvscgծʂ0C$w2l<fr_nNd]w ` 
x31 ĂԲԼiqe3ETϵ)ݕoUʠ ȕ4=Gdb&閛`JRRJ5~Rݱ@nvLVT3]zݧ~0|L(19Pegt?y! "Ex340031Qp
qKcPWg|]<51 ̼ҔT~<!4J[9!d&ed&de18o[	-ON /x31 ĂԲԼb*6'q1 x340031QL,(H-K+`[f,#wݰGBbYWONK}.95!J&+U1Lf6oǣ w{0rT]X4;_e=^bמ ؚD+x340031Qp
qKc|;#7E&@S [PnsR{7bJNfRFfJjRi^^J^Vq~6970ޟ;v2n N0hx31 ̔Ԥt@ncwqޓ x340031QLIM*M`)FJ"y7=4DQ_RY
T^)lJ>N_/9 >ˬ	x340031Qp
qKcV/g)Qpʝy/*c6I`Ψų&K9?:;TMNfR^bA^^J^Vq~3*tf=uפjK2RA3ޝudܿ5)** @Ԣx340031Qp
qKcXcr8$b[L@!3/94%!&Ms>d͟&bJNfRiJn^^J^Vq~O~1p݈SQ 9,x340031Qp
qKc0z'^*0jDRb
~Bd&%de1\Ƽ}<8HU ޱx31 Ԥr|gP}áe x31 ̼ԢbΗ޴}WB~  ,x31 Ē̲TfVY~@wk? Px31 Ԥr0}ΆHɿ7= x31 ̼ԢbKԗwurw/{g[; x31 Ē̲TOV~ȘT-b+ N	x31 Լ̼T.S_RRz'}eLR2r+sS,UĶuk&}ʼĂLi7Y._*rQuNHg9H?j޽}r?
svD d=x31 Ē̲T[Zoב|>r ϡ	x31 Լ̼TӾ?;0:WM_3k	XQJfqANbe|nb^bzj1vw<ܤQX0&kKUb}! n	̼r9'IGͻOX0'_aΎ( .<x31 Ē̲TM
f.x%5ƭ	x31 Լ̼T]5ysN&`E)9yEztbw?s>De^bA&ôk/WeW'@3Rz$5>a9|9; ԓ=ݡx31 Ē̲TۛY~7I˶n]x] {	x31 Լ̼T-x&Ysz	XQJfqANbe|nb^bzj1vw<ܤQX0&kKUb}! n	̼r9'IGͻOX0'_aΎ( @;/x31 Ē̲TyJ+v,aA}oO  ,	x31 Լ̼T;&;.vt?9k#f皀d$V&%1YӉm7Myn]T^.6\ .K/stԼ{~ H>ʡx31 Ē̲Tgq'\V*ɧ	x31 Լ̼T?7nԄ.M埚Vₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNt=woaOQ =x31 Ē̲To8ϔjܟ7e  x31 ԤrMǺ,ڃvr)\>w]yO@ ¾x31 ̼ԢbxjX_+9a{֚" x31 Ē̲T[>~{wRhXĎώ ^x31 ԤrIݵ?~  7x31 ̼ԢbsDf:|w댻\' x31 Ē̲T3L\+w~\F$ 	x31 Լ̼T+a|uow$d$V&%1YӉm7Myn]T^.6\ .K/uv¢w"oM\*Ax31 Ē̲T1r<]aHpY+ QEx31 ̒bYٙp1:JxeҼ 8ݬx31 d˝OyHK ܢx31 ԤrS]?8xI֫ȥx31 ̼Ԣb!,]hr x31 Ē̲T#[x]z-Q.*  }d	x31 Լ̼T3Ȥ{Ųk	XQJfqANbe|nb^bzj1vw<ܤQX0&kKUb}! n	̼r9'IGͻOX0'_aΎ( Y<	x31 Լ̼Ty']Y"m.pd	XQJfqANbe|nb^bzj1vw<ܤQX0&kKUb}! n	̼r9'IGͻOX0'_aΎ( ;x31 Ē̲T/y.(U}vLfWUSv 	x31 Լ̼T%"*VYmѼ(% '2>71/1=ARNl]wgn҇K,dv5*w̾Utyf^J~9ܜ]',_0gG 0;ȡx31 Ē̲Tlub&-ikw[O 	x31 Լ̼T,-#o0+J,.IMKLO-bгT=n;nם!*2d_|],/Dm:"]_7D#y	+ ?x31 Ē̲T
΍7voz /
x31 ĂԲԼG"T>r1]TQ(9?''3tEߙl\nP~S:aJRRJ_CVU#ka*rf_u2fF:^^jɗ%&2tL)vztٓbKt :G	x31 Լ̼T-<'Z7ܼĴ*"锋	XQJfqANbe|nb^bzj1vw<ܤQX0&kKUb}! n	̼r9{$n+ν\dr '<x31 Ē̲T<wndI x31 ĂxiEc~{ #x31 Www[6췼Rqj1Z	C١)J;+kçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1S9{.}3>ё@Q__\$6ѲGt 2RM)9@͙%qI:7,S\I:A3.Oy˄'hn.0UoLNתˠ.-5/9!g?xfO8w&ɱ^Pe='4a?f]?</~[bʼd+^s2Nֿ~s(z!%A~[&_6ӳN4';16MC_nﺖc{ME ԡx31 Ē̲TO>V,>OҡߚD ۤx31 ļԼ??pݱ(WSO- Ux340031Qp
qKcutx[FiD Bf^rNiJ*-$&~6TRWW_XU[^8Iyƺ7&g+ I.Dx340031Q()J+L+/I,ΎO,`v:uҼ'R=Zq^3n5Ī AvBf|S ]%֢x340031Qp
qKcXcr8$b[L@!3/94%J̊Jۢ\sJZ8a1%'34%7M//%[/8?A87Ϫ~Կ[ǹ]J C-x31 ԊԢĜԲļ"~)O8֦#j3 Qx340031Qp
qKc8vgUY&-#nb 
y9)t]wbU=&GBLL(.K*cxF儍MIa]|X~  gY,~x31 ̼WE/sd"wk3y${x31 Kk^}^~Q lx340031QHI-LNK`W{R}oq&B	CĂl:&C4d]sLU7 C"x31 NO\.|qWis4eLɥ&}eڵѬBZ]/'Cs2Jl7\am̈́_%knCs3RRM#<}T/)-aڧ:owu^H姤2:9ԍmt/HsqfX޲]-{\3yY`rs̒>8aGٗ@d'f&3y8b~F>/VU@3g綄ї,d Mf ڈx31 ĂxNak']p>Ʀ6 4x31 ĂxG¢n^tJWw[	x31 Լ̼Tr/zw-^.UkVY\XZĠgzL'wݮ;_37CT%d2LɚvR{Xf_puD<3/%nΉGQ/W#
 B<kx31 Ē̲Tkm!kV-g^2km Dǥx31 ĂxO.쐟wم:%Y' Qx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*r3޺I=0!'e0KڴsgO].ذ2pU e0	x31 Լ̼THLB<uKD-cVY\XZ0!Dg5IiO.7#
QXɠ]6vݾ.bK.czn&tyf^J~9ܜ`ߪ;ß	e! w;\x31 Ē̲To.2\u[b)ϥ	x31 ԤĢ'UES墪3&EEiEyɩeӦ}v{U30>럁&DUQjNbIf~^bN|qI~Q*ÙC~~X{ʏz*n
)i
B;6f>p@5A J(;Nx340031Qp
qKcrbpw_͚0/@ PK)MIeՑ9ҕ[6p:>bJNfR^bIfYj|QJ^^J^Vq~Cvv7{^XeV8 0Ǣx31 ԊԢĜԲļ"U9_O5\X# 
x31 Tw,z^>x2S,0o\[u5s|Cd3R22RsD{u`I$h$;lշ4fe㋁ 7-,񁬯B+ԋ\ aE֤x340031Qp
qKcXRj;5rGړ_8&'388S//%[/8?fff{l˲?̝0AwT-Ha|AjQfAFjQbN|bA^çO&?]ٙph(,H-jQO^[nmݙjtڔ LI9x340031Qp
qKcspq\szW2ذ?6L*-N/N-LK*cJz#7Pq[EKטCu 'de0u*4[UuCujK*R/p{9{eg]E# Bx31 Ăx;CZ_~GY Sx340031Qp
qKc`?햧m]6r!DMRiZZjQ|Fb^JN^~@e񙺿8m=754$(/1'<3/%q̋VrlˏߨpF8( #39>((>9?d?1_8ks!GQ̤Ē̲Ty)zYy.yXm7XX̿$nH W}x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2|Pa|3?Gvο.wC)9Iey%zy)zYy3}B|uS<oS-2Qx340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj2V'߹LYx])#rdy@uw=?!-럱r+RRRA?}ӞU	(Lcp.'?{ES]38??:lbiwG}}raZ ^x31 Ҽļ"50<}@|dB&`MiiE%7|qǆme<m ҅C-xͭӱ_~[Z[~x 4x340031Qp
qKc֠UQmQE=Β-131 d;my,[},?-D//%[/8?aÛۿ.}{~KE .x340031Qp
qKc]4#`sYτO=DW- 2sJSRNV>Q[VoⵆMsA!Ĕ̤bl<['NO6E&t +	x31 Լ̼T3$ok:}C^[vₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNt=woaOQ :=@x31 Ē̲Tz'-%K px31 Ĥ̜̒ҼT5>mɚMqS=>4] gAx31 ̜bs~'s˅s	 $jx340031Qp
qKcpH"ç5p7LJI/(ON-.K*c=#VG׺T?jK,,KG՘\OfCLҎXc 6\	x31 Լ̼T|S?_ʹc^mW26+J,.IMKLO-b{ޯReDe^bA&zDC3yߋ8ͪ=lvD<3/%nN	މ=07q C:x31 Ē̲TnWt򴶈ؘ> |x340031Qp
qKcXcr8$b[L@!3/94%a٬gs<v}UZjS`1%'34%7M//%[/8?awvn)( +ĥx31 ĂxWTwY=)__  x340031Qp
qKc|;#7E&@SpQW;d8j1%'3)#3%54]//%[/8?I3dE6gzz  cK.)x31 ̔ԤtMmըQ'6% jLx340031QLIM*M``,?YYs>r3DQ_RY
Tp۲>ɰ`6 '	Sx340031Qp
qKc0.[*	<fw BbiJf~|rbAIiQjww6[s]jg!+MKL0};_g>ybERRRA)<&zYcpц=?@&1A"gK*e`(o6Fj7q ^x340031QK,,KO,MON,()-J-`)lO_gl;jU Sx340031QK,,KO,M/JKI-J-`q//S삣}셭;x31 ̼4:Dft% x31 mc8̮z_sV ,x340031QHI-LNK`08ϒvu^L)W3+,NN,K;#ye;&]Ooz|?K! }kx31 Ăxi]_x%Y.beγUf x31 ԤrG}߅P7^s ˧x31 ̼Ԣb̫9\v,6f76 Сx31 Ē̲Ty Tk_^Vo ђ	x31 Լ̼To(-Z(|PsFeₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)psNXNykח^o? (?ex31 Ē̲TmV˳gKwDx* x31 ĂxpW/_=G[x31 ĂxӟQ-RXs7ae{ x31 ̒b_{:c{=.£ >x31 d{Jߖf7c}pOK&Rx340031Qp
qKc~m~X؁p&Og^6kb 
y%aJy"D:ƹmhnXxbF~X^^J^Vq~C7MWi]j#x@Vl *͡x340031QψO,/,H`'"tU3#pl=23$>71/1=fR{V쬣k.xpӄ8ZFwUn;VRB' 3x31 ̒bk]*4㵼C Px31 d][<z_ovmo ֠x340031Qp
qKc~m~X؁p&Og^6kb 
y%<*e'_f#qMk/C`%zy)zYyA;O4]uYg+px340031QψO,/,H`'"tU3#pl=23$>71/1=%ty5IfjWPZ2h=mg:J
;STD 1x31 ̒bݞ2|VAV Υ {x31 dNӎ?.qM px340031Qp
qKc~m~X؁p&Og^6kb 
y%!OxrNjȿC`%zy)zYyA;O4]uYg,x340031QψO,/,H`'"tU3#pl=23$>71/1=z%<ʛ
9JFwUn;VRB' _2x31 Ē̲TS>hJ:X`zwl 	Rx31 Ăx3{ڿ/})u삐BpS *Ңx340031QK,,KO,M/JKI-J-`Q<]k%) ox340031QK,,KO,M̏O`a۸S2wWUB$bѐZX
ԵoROR#-s|V|Q⒢\e!{fדs'YAԔTZ+Aº&sBكc  wTrx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	ã{&M%&sp2D0aȶ%u:oOk+ f3Ʃx340031Qp
qKc5*q^~ա7ox4ڙ B2WIl>yZJiiE%zy)zYyVx/xK`n  r$x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	*cw-]*|!ۖ\{دg?nwd< 5Lx340031Qp
qKcPXTR$+sNǟ_^ B2WIl>yZJiiE%zy)zYyVx/xK`n  "%vx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	åy
tיzB(|!ۖ\{دg?nwd< ˯5qx340031Qp
qKcaIuLNY:L@!a}f+$6<O%\Cl<M<B<%Z0LӎZBD #_x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	CWwIB(}	khk!҅C-xͭӱ_~[Z[~x %6ex340031Qp
qKcaIuLNY:L@!e/JMY<g͂!ҊJR6_8h05O;j.A @4$	x31 Լ̼TɖwJ,{t1~oSGɷ&`E)9yEztbw?s>De^bA&ôk/WeW'@3R=U89oCsW @ۡx31 Ē̲TքI!g^o*p|; A]	x31 Լ̼T	Nze+N/hVY\XZP-UMIKkK,dd]cs_KFMtHg9hOKυEi f>x31 Ē̲T[k/?{v  <kx31 ĂxIaE_|ݶgO< `)x340031Qp
qKcy%/c{m[az[JUL@!4%3?>9(avg
,yiOļt|?wUԼUSw9 +JKIvX27)S
LN{NXW%09?77?as1ӯ"ϖضw! N//%[/%]![IoϽq ^ۣx340031QK,,KO,M̏O`0΢e^U]9˭[ʭdECJjYfrj|Rbq*Pn<̉oꎳۜ}EWqIQjb.L.k/U3jsqIJ3sRRv_Md8QϷmM&72 PS	x31 Լ̼Tmns
LM6uӇəd$V&%1YӉm7Myn]T^.6\ .K/uv¢w"oM\0uAx31 Ē̲TD}S7OL  1zx340031Qp
qKcp]=I"Yg)H PK)MIetnoz;a1%'3)4X//%[/8?6:7%wc ,^+x31 Ăxku60yyТ=' ۧ#x31 Www[6췼Rqj1Z	C١)J;+kçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1S9{.}3>ё@Q__\$6ѲGt 2RM)9@͙%qI:7,S\I:A3r7.bjyH˼,EzTKV3p39_~/>iyɩ9˯YS6{;7iLՀ,3!8T0y:uPW%3-_EǞ}q4E)^غ~0bෙuue9ىyٌnr׵tk* 1x31 ԤrK\xjM9 Fx31 ̼Ԣb;j%bsw yx31 Ē̲Ts\WֲeW ϧ5	x31 Լ̼T$uAO41~(% '2>71/1=ARNl]wgn҇K,dv5*w̾Utyf^J~9ܜ7?<6jGǢy
 	?:x31 Ē̲T,߀֦z^
y  \x340031Qp
qKcXcr8$b[L@!3/94%؛2gy(5Sr2JSrRʿ6˴\gዏSn  h-Jx340031Qp
qKcXcr8$b[L@!3/94%a-E6/j-UbHbJNfRiJn^^J^Vq~Cu[3|~j7 4+wx31 Ҽļ"7fձjHnyZd5s@	XSZZQ	CF!*Ưݚ%z+v,D0aȶ%u:oOk+ o4x340031Qp
qKc֠UQmQE=Β-131 d8<|tR?Is!ҊJRZܽK^>r*׿yd{v G[)x31 Ҽļ"7fձjHnyZd5s@	XSZZQ	ۍRqXxH7ta>mK=^st׳֟V|;2 !4ǩx340031Qp
qKc֠UQmQE=Β-131 dJm(7Efm$5N37OK+*K*chq.ymZl\p*8x31 Ē̲T?^[wS< x340031Qp
qKcXcr8$b[L@!3/94%OoxI?.=ԭk1%'34%7M//%[/8?ksLuh? U,Χ	x31 Լ̼Ti.6f}\LR2r+sS,UĶuk&}ʼĂLi7Y._*rQuNHg~˓OlV}t,j͞ @x31 Ē̲T|=תi*u|n%- z	x31 Լ̼T]ٸnw;ǧcN}(jVY\XZĠgzL'wݮ;_37CT%d2LɚvR{Xf_puD<3/%n\|bUʏcQ{n< CWx31 Ē̲T3v](pp[ ]ۧ	x31 Լ̼T֩r>'4嶊}Lₜļ"=Kc:fvyڟI2/ aM˗߫2B@T݆ y)ps۬U~gs) E?x31 Ē̲Tx՜KV\)H3qgJ Lx31 ̒bo:*/ü++M Ox31 d+Ϻٜ$&˲`ˉN jhx340031Qp
qKc~m~X؁p&Og^6kb 
y%Cڗ+v)KO0k1#?D//%[/8?!x雦.<x L6 +x340031QψO,/,H`'"tU3#pl=23$>71/1=2I
,Buvje|r~
X;*x+)|NQ!Y x3ux31 ̒b]w'oVf%[^C yx31 d[Z=x?Uzi Vx31 ĂxZy5%< x340031QK,,KO,MON,()-J-`8c֚t5-=zC-px340031QK,,KO,M/JKI-J-`Ⱥ*^u3ieW_Pf; x31 Ē̲T	7%?^5ga!Gw]  mx340031Qp
qKcrbpw_͚0/@ PK)MIeHx1KkeZ!d&%d$de1:
<hgwSUQ|n Ơ/x31 Ăx#U4[1H^P	 OAx31 Ҽļ"50<}@|dB&`MiiE%a{Ll>vf^mH#ٶ5N~=mimw#67 x31 ļԼz?XRfJ_ ͉ǥx31 Ăx_|7-o  Rx31 Ăx5|Cn[/n x31 ĂxWxq|Uvڝ
NV Tإx31 Ăx'QW>b7r?4 dx31 Ăx>7m5) x340031Qp
qKcvscgծʂ0C$w2l<W&f~_eS-_W !x31 Ăx#]yӭ6W9	x31 Լ̼Tgm9<WaFɵۺΉiכd$V&%1YӉm7Myn]T^.6\ .K/Sa"1<6kIM\&L y=.x340031QH,MLOOOK-J,/`fa4xk!	ۻV j[Kw?\7m.0:>)8h~8gU@]p=%)%%EZuaS,bYwWK-=050)ӘdჇ^w2ϫUc]Xv; T~Zςk+ILPy$c`n(bشqO9CdߡWz?*V^(59(lkUsQߎGgs\iy~N0esos݁59nsr`6ɩl}[/>~Eyɉ%E'\n?*S\\3PsK2RP i'iwv]e`.f8 w&Y9sLjG@gjQQ~Q1t=ߏ$>qKօ] 0x31 ĂxLo~{SCr, !x340031QK,,KO,M̏O`a۸S2wWUB$bѐZX
ԵoROR#-s|V|Q⒢\gv}mŕyGWԔTZkͅ}eξY_avk<{ WХx31 Ăx{^47>"$Yǆ x31 ĂxM7%{B/xl }ɥx31 ĂxeGM+zY%w 	x31 Լ̼Ti7~hr}^YysgMR2r+sS,UĶuk&}ʼĂLg
qU{tyf^J~9ܜy{`^o凗 Ax31 Ē̲T/=Ima+3 iox31 Ē̲TEVs^3'Nе8|l Uɥx31 Ăxۍ'Xn(x+:)*I} cx31 Ԥr)n:2*j{ ӏx31 ̼ԢbSOMZ+spwe (x31 Ē̲TXO=9nW~ͧ	x31 Լ̼TP:y=&6	XQJfqANbe|nb^bzj1vw<ܤQXɠLw>Nj] .K/uv¢w"oM\j>rx31 Ē̲TuK;}:~6ԭ %x31 ļԼ%[o*؞/sbׯy Ex340031Qp
qKcutx[FiD Bf^rNiJ*kuj`V+_b!a1%'3(1835$$8[//%[/8?A)z]3U!\],"S;m	 Ps,ӡx340031Q()J+L+/I,ΎO,`ؑ%~̘oU}IeA*PrzW%l{- &D	x31 Լ̼Tr+^%)XzUs/&`E)9yEztbw?s>De^bA&ôk/WeW'@3RDﭝz׮/?~ Ax31 Ē̲T	JNn~_/_ 	x31 Լ̼TY
/}󾧹ȉXₜļ"=Kc:fvyڟI2/ A="b}f6 "]_7'|oEDכv} h@x31 Ē̲TKqfV?}uUig :	x31 Լ̼TI._j~D?{q	a&`E)9yEztbw?s>De^bA&ôk/WeW'@3RDﭝz׮/?~ Ax31 Ăx#kj꣝T|p[% &	x31 Լ̼Tɵ2L5ħOuxoₜļ"=Kc:fvyڟI2/ A="b}f6 "]_7D>"4 >֥x31 ĂxUgVmvܾ\# Mx31 ĂxN&W%J8KH fQ
x31 ĂԲԼ֤[%;֍Coʡ	Lsr2S2f爬_$rs:_LIJjRi:Fܯ[J;h͎i1\c*tK_/44^uɗ%&2c[lԞ'#$> Hx340031Qp
qKcPWg|]<51 ̼ҔTI٧'VJLŷbJNfRFfbAAjYj^^^J^Vq~rWY1>Xxuu z9/x31 ĂԲԼa/RT\*eL .T	x31 Լ̼T+J
}Ɨܑ6zoϿ ₜļ"=Kc:fvyڟI2/ A="b}f6 "]_7'|oEDכv} ~@{x31 Ē̲TǓo^?
|Wrn< qx31 ĂxS\~dJ 	x31 Լ̼TC73Y/Z](1kf	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&[uQ+H\ٹ0q$D<3/%n$bL"y0S {[:x31 Ē̲TvWx6\^ x31 Ăx]5#|ksX~v \rx340031Qp
qKc]4#`sYτO=DW- 2sJSR)\xnCWO~U=!JSr22JR+}iv慥 ߛ-	x31 Լ̼T	,X35,j3LR2r+sS,UĶuk&}ʼĂLg
qU{tyf^J~9ܜy{`^o凗 0@e	x31 Լ̼T/q<&S<D+V	XQJfqANbe|nb^bzj1vw<ܤQXɠLw>Nj] .K/uv¢w"oM\>x31 Ē̲T]Y&\\]zڑ 0x31 Ăx="	"mo3=='6 6x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*Cu+=u3Jɢ}$BiqrQfA	whŉFy?E
=_1 -x340031Qp
qKc0z'^*0jDRb
~Bd&%de1zMo_ x340031QK,,KO,M/JKI-J-`\>'/*b Үç	x31 Լ̼TYmSVuRjy	XQJfqANbe|nb^bzj1vw<ܤQXɠLw>Nj] .K/uv¢w"oM\=?7x31 Ē̲Tu&-Iٸ+M R	x31 Լ̼Te?>E9Q&`E)9yEztbw?s>De^bA&zDC3yߋ8ͪ=lvD<3/%nN	މ=07q @ߡx31 Ē̲T F_FE] 	x31 Լ̼T5:ֽEoEe&reMR2r+sS,UĶuk&}ʼĂLg
qU{tyf^J~9ܜy{`^o凗 )>x31 Ē̲Tk3H/]+vdD2 Hx340031QK,,KO,M/JKI-J-`Hd;վ{u6)afM Ax340031QK,,KO,M/JKI-J-`o{W.,`Fe]%' ݡx31 Ē̲TD]ooX||ՅL4 ū>x31 ĂxEn|z6Ԁyx31 Ăx+WkavEO ~x31 Ăx#_ڬIO7y< x31 ĂxxT4WNnS, H	x31 Լ̼T֕5Kvd[7LR2r+sS<}TEzh>QXɠLw>Nj] .K/uv¢w"oM\Bޡx31 Ē̲T3])@ճFыW \x31 ԒK؏x{|M"LJSSK:E.N 2٫x31 ԒWMzղ	79J\5+)OM*ON-aPͺKBgq0; bkx31 ԒY,p=g2⮋LJSSK:E.N & 6x31 Ԓvy*2m88R憕^hbWRTZ )uɕ=.`\w
 ƻ	x31 Լ̼T/:dAaj	XQJfqANbe|nb^bzj1vw<ܤQXɠLw>Nj] .K/uv¢w"oM\q?{x31 Ē̲Td3ߡ`x31 Ăx[לS<rqwTۯ4 +x31 Ԓ%E<m.,Qr"E&p%I٩%jY\~IrP?u @]x31 Ԓz37fr1EZLJSSK:E.N j8x31 Ԓ/WO1l+khtS:<58?9;AS4+{/	] x31 Ԓ6X^r~񸣧Ռi嗏&'g0uf]re%A38ם ] x31 ԒW~}z=
OLJSSK:E.N  6x31 Ԓ5~|?Eҟ\~BY=|nObԤNѬKq$t9S 4x31 Ăxm]bZ߽|㞔my 	^x31 ҔlEOބYzl޶9cQY̰̮wiv9}k;<u:ZzLYmcL@%*JD21<S|So.lMfosDiJQ.Ųطtn}uii%eJ2ZN>.forBqQdejKƷԭ	='CT榦d_X垾dĄûTMdmN	)!+L*J,d:]ZGtj^_ydAD]ANbejwLs)i^ɼoM J2SRA=[&}K%3Z>;t- 翸x31 T.&wTaVWʕbch``fbQjAhHygw+^Y,>9?77?SUǬ0Cu31NEQ]Z5x͕[̭UufEjN|nbT5=YO[j\|<dJ9ЄCC^bA&A]_<cL鏳~lAQYw	wq5yvGj݌Q%Bc}wW>['>K n]	x31 Լ̼TWe3&l?緅d$V&%1YӉm7My}?x}/4̼r9Q{k',z'ĵ/ ǚ@Ax31 Ē̲TG<`Pps)7gb ?	x31 Լ̼TBV;so|{\wCPhₜļ"	1%:ܭNJ{wQʼĂLOeK1<dkDK'tyf^J~9ܜIș{M_7E2a, ;x31 Ē̲T{q^Q_|G&q 7x31 ĂxR^l9yy\#^Gy 	x31 Լ̼Tˏ*ŝegݖ]5LR2r+sS/r];g~֯	V*ܪO!*2<Y~|.뒭Qb- y)ps.({PNlUOS? p;x31 Ē̲T+Y.9vU' ƉUx31 ĂxIn(<a|y}
 kx31 Ē̲T,_xzc{غo T\	x31 Լ̼TnMURWX#	XQJfqANbe|nb^bzjßg߷޻~_*u] *2#"6~)^iVa y)psNXNykח^o? 	@<x31 Ăx8y-9֚>L 9x340031Qp
qKcXcr8$b[L@!3/94%\͒acMvBLL*MMK*cP7>ͳ*o'xqn ҧ+w	x31 Լ̼Tg%5w)=&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY 
<x31 Ē̲Tתjk6?q۪qnN% 6Ax31 Ăx\UL^ٳ]> @x31 <nd/ygfsaigL ʊSKjq_wf.\}b 05sy^0 ,x340031Qp
qKcXcr8$b[L@!3/94%!j}(85)L!d&de1gY~<8K	 X-x340031Qp
qKcXcr8$b[L@!3/94%aϥGV~_\)ӆSr2JSrRd۵W&ojW xX-Ƨ	x31 Լ̼TrCawsc:9'ₜļ"?Ͼow_**Uv^?AT%d2GDl0<SӬf@3RDﭝz׮/?~ B̡x31 Ē̲T_aTRr܄G x31 Ăx_+BwxЫs c	x31 Լ̼T]Ln5b=U3jtj>ₜļ"?Ͼow_**Uv^?AT%d2GDl0<SӬf@3RDﭝz׮/?~  Alx31 Ē̲Tó/"8|]n ʆx31 ԒC%Y-}Y[$"k>+<58?9;AS4+{/	] y
x340031Qp
qKc*ԼɤGzM/qC̤Ԓl<(Uz:Ppl'\99)%:gӁhK*RJ$_pIem @ܧ	x31 Լ̼Ty݋6=5&`E)9yEĮ3g~+nՀyGϦ}J<3<jC3RDﭝz׮/?~ @&x31 Ăxd͙'?kJ˟n Gx31 ԒoL_`>v	Fe0+)OM*ON-aPͺKBgq0; 
 ѥ
x340031Qp
qKc8huyխm^ڋBd&奖gde1D1kܟ}?X',Ձ+`P=e;QII,I9ES_RY
T K2-o; W>R	x31 Լ̼Tۂ:#M"%]*3hA	XQJfqANbe|nb^bzjE.k5J[5)De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' :x31 Ē̲T'}ߣ>/R:Ɣ mx31 ĂxioX|o,O x31 ļԼ)d/>͋˕ x340031Qp
qKcutx[FiD Bf^rNiJ*^XSm7/Odې!Ĕ̤ļԼll<jƙM7ֽ7=[ -x31 ļԼG[ܜAG/>Ƚ/s0 Χ	x31 Լ̼T׎??*wodMR&`E)9yE}zU~U"u~4K,dP`y;{qY.Hg͉:[;a;&]_~x Bx31 Ē̲TJ>.!`ɍҶ	x31 Լ̼T.UoNlX^uImVY\XZ+_W.r]G1ʼĂLg
qU{tyf^J~9ܜy{`^o凗 t_@+x31 Ē̲Tj~C~O<-^FE% x31 ĂxټkSZ'< 2	x31 Լ̼Ty݋6=5&`E)9yE-iy{ǚk6 *2<Y~|.뒭Qb- y)ps.({PNlUOS? .<x31 Ăxo8jMz#foo >ç	x31 Լ̼T&\={c	XQJfqANbe|nb^bzjE.k5J[5)De^bA&zDC3yߋ8ͪ=lvD<3/%nN	މ=07q (V>	x31 Լ̼T&\={c	XQJfqANbe|nb^bzjßg߷޻~_*u] *2Mxf=}yϝ7Hg͉:[;a;&]_~x ?B	x31 Լ̼T!"}O|q똷?cVY\XZpKl>{~MRVx
QXplڧ3˓0D<3/%nN	މ=07q 3Bšx31 Ē̲T/sR^plcy a	x31 Լ̼TϹ늄YUʟǴ(% '2>71/1="ص|o`­2/ ٴOgfӗ'yCatyf^J~9ܜy{`^o凗 t=סx31 Ē̲T}o醨YlWh +	x31 Լ̼T{w-WlJ8`$p(% '2>71/1=aBL6w5wkҞ]nz=G2/ uYRa;}.%6	"]_7gbGr^M|) :x31 Ē̲Tteܝw.wcz꒬ .K	x31 Լ̼T/DUwךZ˳(% '2>71/1="ص|o`­2/ uYRa;}.%6	"]_7ҋgZ
e(V%9+4 :x31 Ē̲T9\fۘ.ݳ. x31 Ăx$]4}[ucr"6H խdxU4TY -+iʶՖ	VֶɏBg~v$?Z'(*R83~hΉiIK~4IǢ{{?{{AQ2Ôf+;[W,cc@ԇYkh2˞]š(`yKp3&#VGg]7I(`
c0ΥS/j{m_򱺕o%3KKB'yOf@$o;-81fILZ|yvWVd
ٍo9vc~.ΫB~[*bߥ)QףS<Ntq]1w@Ls=#+?1ye>dzQ:Hkj?OFG#g\p K㔛p1g}1UnJ#	y(!!@Q=LLϻ6gvY6q+rzːb~xܨ
jSoҦFhmi+Ձ]vӽn&G%Lȃ˩1;?l9~n_bP(\W8:ybiWAg7	d	 chbEosv.ܨ6J'$qܪn;.ե$`"A$A)c&חŕGk82IX,QJQ=h(iA쇱99`4Ca,"}2	hʪ([D4n.H׈Ii\&-y%2bu@)HFx!2}hWNc޶Ts"Z%OâjSpr,zhے:BKs:q# AyVw˟u{hpA$$n;u1!q[ƚtT7s#,#C) u]í ۓdZm,)WG\H߇S"lʮ,:sAjHBQC=.h5Sf6JLI%ek6h䆂 I4LDQ>U٥U^pIr(R0L6ÃSG*ZqBi!,-Lκa*si>4
-maֵNӔSICVj[=w߸[F0?ίcQa堳wkxfy_=o^\JJ~ֳ+/9[VH1
`U_fuqsp,TZ[dآa4?s?{9x31 Ăx<~mO3z- 	x31 Լ̼TԌ3-bj;f|y	XQJfqANbe|nb^bzjE.k5J[5)De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' #I;]x31 Ē̲TSou|8ӏ6 ;x31 ĂxGϗZa{-gofW^ \x31 Ăx˶x:Pƴ 	x31 Ăx+K8Z[Y }	x31 Լ̼Te?N\[od$V&%1_v>_TUBT%d2x.\1l繯%[&Z:A3R\zQ|LK%ت$g~ %>Ox31 Ē̲T.=YfXb 9\	x31 Լ̼T	qQ":7/Ёq	XQJfqANbe|nb^bzjE.k5J[5)De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' ;:x31 Ē̲TJfÿOqnht\sxnqQ 1	x31 Լ̼TfKoogVY\XZ0!Dg5IiO.7#
QX>+VC{T+Wv.Lz 	.K/319ScHF^>̔ ;`x31 Ē̲T!R<'*II0ֈMڽ FU
x31 ĂԲԼ#.4 Y`NT@Y9"3I\ΗSTΠϷ׶8ZvY_S0K1+4BLjUL(19St<
iy Cx340031Qp
qKc|Y}^|!jr2
r+SRcd.hyڧ78/%	x31 Լ̼Ty6]*M}T|K]kLR2r+sS/r];g~֯	V*ܪO!*2<Y~|.뒭Qb- y)ps.({PNlUOS? <x31 Ē̲TgM$Pqݧ2yAa ֥x31 ĂxyUKD9;.._;K5߭Z x31 Ăx|ן{q֯kyM	x31 Լ̼T{>ܒȰ}N1bSₜļ"	1%:ܭNJ{wQʼĂLOeK1<dkDK'tyf^J~9ܜt>\XtM>6 :x31 Ē̲T"˖z֝Bl5x31 Ăxn}ʐR\x F	x31 Լ̼T2ɼ5g^xC9LR2r+sSʿ:Vxqyz?>byu(N̼r9^=R(CI'*Yaŧ ,=ax31 Ē̲T`O#&$_Y ;*	x31 ԤĢ<{Y
N(5-(5/9a_C5Gj-y;גּ &DUQjNbIf~^bN|qI~Q*mp	&!ƲS9s9)is}wm˜noP#T ?h	x31 Լ̼TGO,:|}Xₜļ"\bg3k
jSʼĂLOeK1<dkDK'tyf^J~9ܜK/i)[䬰O 7;x31 Ē̲T+ؿwiO ڶç	x31 Լ̼TekO?ܐ	Hd$V&%1T}uKuǽ' *2<Y~|.뒭Qb- y)ps?&sa7{  =Ρx31 Ē̲T.FZzTܫ֣} x340031Qp
qKc|;#7E&@SpD񾃞'2GIv!Ĕ̤̔Ԥtl<gS4&Q<9 1x31 ̔ԤtS/:џ) x340031QLIM*M`H4`nzppAOeZ%gQŗTUoq{/3Ι7Q 0w-	x31 Լ̼Tˏ*ŝegݖ]5LR2r+sSʿ:Vxqyz?>byu(N̼r9^=R(CI'*Yaŧ <֡x31 Ĥ̜̒TS/5{}Y(+*+Me(e'/f S"x31 \'<>_}| ܪx340031Qp
qKc8#pvG۽\um
01 ̼ҔT|ٚ4C	ʂ>0[bJNfR~Ff^AiInjIF~J^J^Vq~C?b{mѬR Z0x340031Qp
qKc|;#7E&@Sʠє:^B5-4TUl{\$><1 0̢x31 ̔Ԥt|XkW5,UR* x340031QLIM*M`H4`nzppAOeZ%gQŗTU?q^_1i. 8>	x31 Լ̼TY/m0KI/MR2r+sSʿ:Vxqyz?>byu(N̼r9^=R(CI'*Yaŧ N=/x31 Ē̲TC#=s8[{?-X -Ƨ	x31 Լ̼T	B57?1#j,>.7ₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' 	;`x31 Ē̲Tm^0j}bE%.  &J	x31 Լ̼TO62~j/aа~Jₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' Ib;x31 Ē̲Tk&_ԲT(Բ 1Υx31 Ăx{?v͐Yzyo 	y^x340031Qp
qKcy%/c{m[az[JUL@!4%3?>9(a黋s߭.s53{&%~o--Y]Qj^J*;'Ԅ?T/kN>аy<Z+vZisૻ! N//%[/vYăk|Xc0?-UOTbx31 Ăx|`fnu ^	x31 Լ̼Tg^?w\;S<.ޕₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' 0?x31 Ē̲TU뱁N)˅ [x31 Ԥr$73yrSI  Bx31 ̼ԢbgN:`fCӗW x31 Ē̲Ts"E'3>l2fYW @	x31 Լ̼TޖgWj|8RlozS=ₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' j)<<x31 Ē̲Thr;5eeƯ]x31 Ē̲TgoxtD|{N ֮6	x31 Լ̼Tfa{%73:^j+}rₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' <> x31 Ē̲TYm.Kfȴ> 		x31 Լ̼T}뻂^lWyɽlSyE	XQJfqANbe|nb^bzjCWT7]'y/~{"2/ 02j.`f_ͼ	u+!y)ps.({PNlUOS? :;	x31 Լ̼T3J&5)&F5=qy#	XQJfqANbe|nb^bzjCWT7]'y/~{"2/ uYRa;}.%6	"]_7ҋgZ
e(V%9+4 8;ȡx31 Ē̲T,sN.y=[1 Լ	x31 Լ̼T鏎fkt*qMR2r+sSʿ:Vxqyz?>byu(N̼r9^=R(CI'*Yaŧ =xx31 Ē̲TZj]㧞 M	x31 Լ̼T<?ΜpMak;9LR2r+sSʿ:Vxqyz?>byu(N̼r9^=R(CI'*Yaŧ <Kx31 Ē̲TwU(K}3a	Lf 	^	x31 Լ̼TgzS nok/mVY\XZP-UMIKkK,dd]cs_KFMtHg9BJ:UI
+>M L9Ρx31 Ē̲Tgz"w?'.=s^rC 	x31 Լ̼T3m:.⡡
ₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nwϴP҉JrVXi' "t;x31 Ē̲TM9Ҏi-d{)& Ī	x31 Լ̼T;n:-Jŗ]Wᢓ	XQJfqANbe|nb^bzjCWT7]'y/~{"2/ uYRa;}.%6jPyf^J~9ܜK/i)[䬰O ;7x31 Ē̲TiQonpI x31 Ԥr;&b5K5p2c]O /x31 ̼Ԣbkzlkf c޿v8 a~x31 Ē̲T2[lY_^{a.WcU '	x31 Լ̼Tn`(OJw&`E)9yEU_Rtq+oqʼĂLOeK1<dkDK'tyf^J~9ܜt>\XtM>6 =x31 Ē̲TyyOmmD?n sx31 Ԥrśw	h8ǏNz @0x31 ̼Ԣb-[o	hcYrT3_ /x31 Ē̲TԢhhUʐrx31 Ԥr^CS'eΟ}qъJ Jx31 ̼Ԣbm~r{Z2T kx31 Ē̲TC͋]s<˂=]OZ| X	x31 Լ̼T&}ԝyv絠"{d$V&%1L)ntRSMBT%d2x.\1l繯%[&Z:A3R\zQ|LK%ت$g~ Bv=x31 ԤrS\}5Vk|Yp ~x31 ̼Ԣb{s_.PJzǌ8x31 Ē̲TμhuP]ߨciA 1x340031Qp
qKc|;#7E&@S0-hLiHYbJNfRFfJjRi^^J^Vq~ó
sum(? P1ox31 ̔Ԥts_y8Mjŋ\ x340031QLIM*M`} yY"c;؝a( 25OuIs!ɧ	x31 Լ̼TooiL>Ww>LR2r+sSʿ:Vxqyz?>byu(N̼r9	a|ﹰ|~=m H>Jx31 Ē̲Tá'^0}zDn捽 x31 Ăx{g=xΧ|G !x31 Ăx.n.%W`>c= ȥx31 ĂxC'x:'ɦ-v oGx31 ԒrYJOYNYku	XMyfZ&Ú\~9#DOy <Aǥx340031Qp
qKcՌn񼫗MR7L*LK*cKKQUV`þ|5gZ8 +N	x31 Լ̼T?SIN»}d$V&%1L)ntRSMBT%d2x.\1l繯%[&Z:A3R'L¢o d>~x31 Ē̲T	g(=2y ɝx340031Qp
qKc|;#7E&@Sʰ*E]տ,mعu!Ĕ̤̔Ԥtl<gS4&Q<9 ;1âx31 ̔Ԥt<.'){[\sf33 2x340031QLIM*M`x]Ὰx:x7&ЭoQŗTU?q^_1i. i x340031Qp
qKc|;#7E&@SʰF{N{Pmi1%'3)#3%54]//%[/8?AgNQ!NDty5 4/x31 ̔Ԥt u/|`qZ,ޢ "x340031QLIM*M`ٷ@>%}/ذsFCE%@}O|}.fL }"b	x31 Լ̼T_1\gh%´&i	XQJfqANbe|nb^bzjCWT7]'y/~{"2/ uYRa;}.%6	"]_7x=a",=/ ;x31 Ē̲TWE-k_qE e	x31 Լ̼T	k7]qs$[do(% '2>71/1=[<o南X?= QXɺs)ư^lh.K/s<ў0 n>x31 Ē̲TE;Eg;ɸu[S)DЧ	x31 Լ̼T{gZ͖kθs?xr
/ₜļ"noN򸿕7^bD\De^bA&'ޏϥvz]5JlD<3/%nG{DX:{.,&_pO `<x31 Ē̲To6{9bg[| ؊]x31 ԒrYJOYNYku	XMyfZ&m2>^+TRp7hڽJ LJ	x31 Լ̼T?Ϳ$ummm*&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY <)x31 Ē̲To.p`SoJM[  P	x31 Լ̼Tъ:)%MMۙ6펜	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%nG{DX:{.,&_pO p:ax31 Ē̲Tϴ=-+㥦u әx340031Qp
qKc8vgUY&-#nb 
y9)9_gD;NhBLL(.K*cx$bW:oq R,Χ	x31 Լ̼T+%_eJr|h(% '2>71/1=aBL6w5wkҞ]nz=G2/ uYRa;}.%6	"]_7gbGr^M|) *@;Dx31 Ē̲T;vGbN+LSjz&
 	xx31 Ăx6m+I<aGJN x31 Ăx(y>oTdX֮c :x340031Qp
qKc8vgUY&-#nb 
y9){fq?x-Ko2Q]UInŪïc'su\ynd c!-?x340031Qp
qKc8#pvG۽\um
01 ̼ҔTW){':j]ۚz;F05zC)9Iy%%)y)zYySTN	
FzK# bS1Ȯx31 NO\.|qWis4eLɥ&}eڵѬBZ]/'Cs2Jl7\am̈́_%knCs3RRM#<}T/)-aڧ:owu^H姤2:9ԍmt/HsqfP=ƽ=w\ܠ$\nÜ#uNؑ;az%%e9ىy)EkWPٴN--EU@3g綄ї,d Mf A	x31 Լ̼TMN,ڟl?/ظx=Eₜļ"	1%:ܭNJ{wQʼĂLOeK1<dkDK'tyf^J~9ܜt>\XtM>6 0?x31 Ē̲T6Ag
򨓻[ <	x31 Լ̼T]ܫöE/{E8S&`E)9yEbJt[?r9yz?>byu(N̼r9	a|ﹰ|~=m 7;x31 Ē̲T玄+/7g,7 &*x340031Qp
qKc0z'^*0jDRb
~Bd&%de1lll!`%k @F	x31 Լ̼T9?t9W|.텓MR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps?&sa7{ %=x31 Ē̲Tl;W1ԫ ȪMx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*֮W38ܿ~,9auSX4̂ޛ5OYl,ck  ,ix31 ĂxM!{O8m_Pw x31 Ăx?W4b<'v|! 	x31 Լ̼TmWW|+:v mF'd$V&%1L)ntRSMBT%d2x.\1l繯%[&Z:A3R'L¢o ^m<=x31 Ē̲T&
Oӵ5b݉*; x31 Ē̲T݂!:7\q`d px31 Ăx>|I(?/w	9> x31 Ҽļ"50<}@|dB&`MiiE%5OR@	ghZCl[r[cޑ 4	x31 Լ̼T*uOZ}ވ	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S :x31 Ē̲T:<G^)raK;-b' N	x31 ԤĢߗ7}#9E{Jmin*R(2)(5-(5/9a_C5Gj-y;גּ &DUQjNbIf~^bN|qI~Q*mp	&!ƲS9s9)i
B;6f>p@5A U:Rx31 ĂxvK9~n⎨ʚ]# onx31 Ăx[ew#888kG Zo	x31 Լ̼T@O_9Vgtf5+J,.IMKLO-bS]ݚ餴|^K,dd]cs_KFMtHg9hOKυEi |=!x31 Ē̲T{ei~A;A nQ	x31 Լ̼TE#Ńzj2'	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%nG{DX:{.,&_pO :x31 Ē̲Tč]TyRJ,n
 ڧ	x31 Լ̼TWsh(K6=iG	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%nG{DX:{.,&_pO W:x31 Ē̲T(+jd
--_]M+ <	x31 Լ̼Ty3}ӎ_MR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps&&_{ gj5}ˇ <5x31 Ē̲TuWj|4r瑰G I	x31 Լ̼TO;ڜ\5gڊケ&`E)9yEbJt[?r9yz?>byu(N̼r9	a|ﹰ|~=m ;x31 Ē̲T-DOU=;S32" ͖	x31 Լ̼TOmͥ_-l˺yLR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps?&sa7{ Ζ=*x31 Ē̲Tݬ_᜿oRR	, ʧ	x31 Լ̼T=YlنMR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps?&sa7{ =nx31 Ē̲TXdop١:cBܚ2 [	x31 Լ̼T?&<.*g͸]ek&`E)9yEbJt[?r9yz?>byu(N̼r9	a|ﹰ|~=m <x31 Ē̲T'oɲiWW/y ڧ	x31 Լ̼Twއ&3I{ͽ]JLR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps?&sa7{ j3<Sx31 Ē̲Tϟݡ` $	x31 Լ̼Tkfnm/Tfy_pi&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY ~;x31 Ē̲Tg GWw-z`% 	x31 Լ̼T_84!ɏ7ٙd$V&%1L)ntRSMBT%d2x.\1l繯%[&Z:A3R'L¢o <ߡx31 Ē̲T.L4IjoZ!v|M ~,	x31 Լ̼T8=,νe|=&`E)9yEbJt[?r9yz?>byu(N̼r9	a|ﹰ|~=m `;ex31 Ē̲T}1?9be_2/-  	x31 Լ̼T]Z*')A`	2LR2r+sS&ĔlsWs:))sD!*2gjsʘ^yE΅I$!y)ps&&_{ gj5}ˇ h=x31 Ē̲T4OٿN1l]/ =x31 Ē̲TT0
q)eycÛe/3	x31 Լ̼T]}߾vú{LR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps&&_{ gj5}ˇ <٧	x31 Լ̼TS|'6|l֥%$d(% '2>71/1=aBL6w5wkҞ]nz=G2/ uYRa;}.%6	"]_7gbGr^M|) V"9px31 Ē̲T_wK[Vnʹ$ 5	x31 Լ̼TpVYx3MR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps&&_{ gj5}ˇ <x31 Ē̲T{?qi[{w x31 Ē̲TM'40lnUU3L ȸx340031Qp
qKcrbpw_͚0/@ PK)MIe8XaV3_g1%'3)/$,5(%I//%[/8?!QA;=/2s+ 0x31 Ăx"˴{:ɼ(d1 'x340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj{9En{*gfdy@uw=?!-럱r+RRRAV<r/{yw;*Ԫ2z09?77?eC=W~`<CBO!azy)zY@^\O-´ @^x340031QK,,KO,MON,()-J-`P%tjtw[
 Lx340031QK,,KO,M/JKI-J-`a+[^s:W<G ^ 	x31 Լ̼T߶lr\f3`]-eLR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps&&_{ gj5}ˇ y;x31 Ē̲Tc
>VD6ήV^ȩQB Iԧ	x31 Լ̼T7Jw۹%;3+MR2r+sS&ĔlsWs:))sD!*2<Y~|.뒭Qb- y)ps&&_{ gj5}ˇ };x31 Ē̲TcvϹwsU Pf	x31 Լ̼TͯOT^Hnלfd$V&%1L)ntRSMBT%d2x.\1l繯%[&Z:A3RLL(@k)3e ]<x31 Ē̲Tyr7~
kہ	 @x340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?o?Ts	Ch`XQ$U/=,0o4
	x31 Լ̼T>\fQ}&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY m<x31 Ē̲TBk/3|sh{;h߷g$ i	x31 Լ̼T_s'>lܺa	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S {r>x31 Ē̲TU_
 x340031Qp
qKc|Y}^|!jr2
r+SR2?GT|%>)  x31 ĂxE+R
?S}LF N-x340031Qp
qKcvscgծʂ0C$w2l<g-YkjW3_͋c {!H	x31 Լ̼Tv;lb蚶Y&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY up;ۡx31 Ē̲T	+خ  ~e	x31 Լ̼T6
gjSe2!lIa	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&[uQ+H\ٹ0q$D<3/%n$bL"y0S t;x31 Ē̲TcӾ?^q04tǚ9, " x340031Qp
qKcg$:^+FCԢĂLW>&~2yMԮIAP9I@-zy)zYy&߯9xllD w7٧	x31 Լ̼TW3
c]"UWrO🰖	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&[uQ+H\ٹ0q$D<3/%nN0oUcyO2f 2<x31 Ē̲TOv~;MX 6Ƣx31 ԊԢĜԲļ"pTMݘ@A[Â# ;x31 ĂxJ=ikk}`f $	x31 Լ̼TV8v~ZԸ=	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S /;Sx31 Ē̲T2_OK7[v Sx31 Ғ̜bǜȷ2{\ #x31 ̤ҢĤ\o^l|pA}a= V	x31 Լ̼Tkr	wS\Ϛ&`E)9yEbJt[?r9yz?>byu(N̼r9?=35ndLY `;x31 Ē̲Tz_hxO|/05 	x31 Լ̼T/r/ˉ^amq~ₜļ"	1%:ܭNJ{wQʼĂLOeK1<dkDK'tyf^J~9ܜIș{M_7E2a, 9x31 Ē̲T+'_]Eӟ#Q^ʲr ֧	x31 Լ̼TgQOZ_㥖sv	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S :x31 Ē̲TQ,?ȺX3 Bç	x31 Լ̼TlQ}+-N,I	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S :x31 Ē̲TEӋOj>wκ/efK x31 Ғ̜bN\-~# x31 ̤ҢĤ\m'~Ѹ[>;N[x340031Qp
qKc(.Z}Yo,B59IE驉I9񹩹Ezy)zYyL:W\~{i? 04e0^7+eHz~ fN5Vx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*C7?:pP/BiqrQfA	whŉFy?E
=_1 =.lx31 Ғ̜b;:[],?588# iɪx31 ̤ҢĤ\>h3j|j U2x340031Qp
qKc*<uW]+7I+>p&'3(=51)'5>757R//%[/8?ic<cQʓoO:'6T9;߫fu% I~ `<7	x31 Լ̼TSUPqxU<Dₜļ"	1%:ܭNJ{wQʼĂLYiܣ2W^saItyf^J~9ܜIș{M_7E2a, {<x31 Ē̲To/,}73+楨1'7d x31 Ăx
?|gz` K	x31 Լ̼TMǳz\VQb~(% '2>71/1=aBL6w5wkҞ]nz=G2/ uYRa;}.%6	"]_7gbGr^M|) 8ǡx31 Ē̲TEm*biK̍C5u	x31 Լ̼T?Lʿ6]7'elVY\XZ0!Dg5IiO.7#
QXɺs)ư^lh.K/319ScHF^>̔ g:&x31 Ē̲TO-'G~Z<c $x31 Ғ̜bZlwAzv $(x31 ̤ҢĤ\cWk?jEʪ
:טMT
 <8x340031Qp
qKc`&TqU']_'Bd&&&Ude10mg,ꔛ^yrI䃜ކД?g{l$=x  pH5	x31 Լ̼T_nn(n%ϭ6	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&'ޏϥvz]5JlD<3/%n$bL"y0S 9x31 Ē̲Tzbv|:Ѽs )	x31 Լ̼T	qlM3S9=(% '2>71/1=aBL6w5wkҞ]nz=G2/ uYRa;}.%6	"]_7gbGr^M|) C8=x31 Ē̲TM${DM)<% 	x31 Լ̼Te3N]|OѓM&`E)9yEbJt[?r9y%ocR(1;oHg	j̼3/<iY d>`x31 Ē̲T59	|rQyb## 1	x31 Լ̼T4[++ފe'f&&`E)9yEbJt[?r9yn5ԹGeL"qe¤	̼r9?=35ndLY ';x31 Ē̲T]K=Ћeq} x31 <nd/ygfsaigL ʊSK"wm2q.Y-!2B] ,yx340075Up
qKcxébv{Zn4];t` PKfiPw5ݎt%o+~bBNfRbqqj^^J^Vq~Ë5߳K6Mr)j_ 9 i/Lx31 <nd/ygfsaigL ʊSK3D6Vٸ)k1|Fiv1C?s|{̶PA;E=0 e+8x340075Up
qKcxébv{Zn4];t` PKfHOqT0p/n]uxir2SKR^m^9oꦐKQO J,x340075UH,.N-O,`x1^BoQ{0?i n6}(d&[ŵ= B x31 <nd/ygfsaigL ʊSKڦx(/=AǤ*#]uTLD>49X=]f[띢R )7x340075Up
qKcxébv{Zn4];t` PKfx;엀\Jk{BLLJ,.N-K*cx{z漩B.Em?$ f-ٯx340075UH,.N-O,`x1^BoQ{0?i (c2>v, kx31 <nd/ygfsaigL ʊSKK-*3]rOsWz(.fgov*z ,,Xx340075UH,.N-O,`Ht6~˃mo@0^!ʂT:{YJ宾dg:Mb    x31 <nd/ygfsaigL ʊSK&)f=96sߪ*{@3J:n۳e
)+-)Px340075Up
qKcxébv{Zn4];t` PKfXoiy?7yHn7X\ZUPji{9˴g "2Q	x31 Լ̼T{7t:65i`1	M/LR2r+sS&ĔlsWs:))sD!*2gjsʘ^yE΅I$!y)ps&&_{ gj5}ˇ <x31 Ē̲Tuy^k2;bou۴  x31 Ăxۑ+UCwM~|?V( x31 ĂxujO&M%l"c5 x31 Ăx2V
T	ش	 Pեx31 Ăx+>OK636纨T< x340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c0\6[}v>_b!jՃ!䑯ry|b"߅ ]4>x31 Ăxԝ[*2f_ܢmvү:^ G#x31 Ăxgz"g x31 ĂxDDԅvоy ix31 Ē̲TKݸt<S=8[)ކ Hx340031Qp
qKcP\ka%K-طQĈĢ]vM~_Zϓ]^	+@VX_\TCI	gmYY}qvjNjI~PiϾ_{ߺ6$%$s׊4((>9?%6J$;e9?X{5Hj3Av?m\uJM{jٛN2('3	l}bA^Vq~CdN5ѫEV]Y-0 jgx+x31 Ĥ̜̒ҼT[\H2VF9)j; ?oAx31 ̜b3K=7eO6  'ߡx31 ҢĜԒҼT3&q7z4߬#jox31 \҃
U6/6_[p. 
x340031Qp
qKcG"VMzz=s!DMNfRJ^^J^Vq~C0Kdj5=%v(4ψO,.IK`N,p]_d̃L%>3O`*MKLO-_oIѕ?I  0@~x31 ļԼvz)6 ¬x340031Qp
qKcutx[FiD Bf^rNiJ*򷿷Xu=dOSBLL*)J+L+/I,K*c?UW|\Mz m2ux340031Q()J+L+/I,ΎO,`(ْ~'_ޜ6r;CK*Rr_na8wEETժt, s*ƫx31 ҼleVڶDl[n- M;x31 ҼT^ODK.5r_gq x340031Qp
qKcj(wYk..K<NY3 2sJSRr[]cRf|dbJNfRRi^JN^^J^Vq~oFyXͲ %-Ǧ -Gx340031QK,,K+I-JKLNO*KI`9PК;FۃksGR cxx31 Ғ̜bMRW:hU$x31 ̤ҢĤ\[ENＸ#W_ MXgx340031Qψ/H,.IMO,J`:bP]bgl8o/d0Ģ4>(>9?%3~wm>rIqHR ?$~x340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%AD,ﯹ{++~r*U|!Ĕ̤ԴԢԼbl<9aA}mBXuLX 2x31 ԊԢĜԲļ""ϗqq6Xsт;+ Wyx31 T,ohFH83t	X:#3!IG?7.L--Nbxطz1?+0 W$	x340031Qp
qKcs=D~Ȭu1.bQXxmNuo'pZ4-%HJ*R^>:QjGߴUk:,'3))8U//%[/8?<"4'~: WB
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`zt!{dϼJ۹<v,:pXMaIeAj1P_#fmZ7@sɥP9I@zy)zYyG:>uu0( Et<
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22X--T\SvK/8)h
K*RJ[>"ĵߛ/Jx wB~x340031Qp
qKcl?K Bf^rNiJ*vDL$&xU!Ĕ̤Լ̢Լl<*:O9]!WJ #/x340031QψO+,M+`";t>_tY sx340031Qp
qKctH{e:/ۭ71 ̼ҔTI/_~tNvIΓBLLψOI/-K*cXk~/Z4Q5 :1x340031QψOI/-`X/#q{_&g E G*x340031Qp
qKc0vt܆ɏ'51 ̼ҔT3+=|}oBLLJIK*c)uF֫<yOsbX i,x340031QH-*/OOI`P,%4*Q7#,.?#>-3'53%z\Y6>1sp=\ רx340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*CwjYJ߯aM~!Ĕ̤̜ĢTl<͛&X1uHJ v.x340031QψOI/H,J`x18>>7'vL
	 @T#x31 ҢļԼK*mا&pw] #x31 ̜TگrU߳2}@T%&%1\M>n~SB"^  Bx340031Q(J,O,`2-l|n[\kUIC̜T*-Ӣ-fmfu˻hsSAf%?~/nN`Oa~ <2x340031Q(J-M/`=o!ןvyTay
&>9?77?Tx˴Sz>:rĹ9`#U
x340031Qp
qKcﴕWx또Q*&5--5$>-3$H/2BJhbBUZRYZTi~ǖ+OX6j,|2ʜ̤Ē̲xl<\*ߞ3Ҕԗ> =Dx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2캶G%K
?釻!Ĕ̤ĂԲԼl<>i~ټ_otH2ҥx31 ĂԲԼkzgbfQЗ_ 
Ѧx340031Qp
qKcjk׮ܦ.]ff PK)MIe?qYM)dn0{a1%'3)#39?''3U//%[/8?dW	4_UvM_wK% 0x31 Tj23lol #x340031QLL`']6Kio)"Q x340031Qp
qKc|;#7E&@S`X`bwݾ'ڿu?bJNfRFfJjRi^^J^Vq~Ch	{|*_og'V  .8x31 ̔Ԥte:7p.[gvux340031QLIM*M`XMuRa_}O0DQ_RY
TY6gy}RZg x340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)*3'h:t$|
L:h;C)9I%Eɩzy)zYy'یnŬ1~'j%ar 	,3x31 ̒T]󜤥5s7=jԩxx340031Q()JLN`x^(R coH Ѡjx340031Qp
qKc8#pvG۽\um
01 ̼ҔT8"pzIbJNfR~Ff^AiInjIF~J^J^Vq~S^ԩ8c ^.ex340031QK,,KO,MON,()-J-`]u4N)IX  x340031QK,,KO,M/JKI-J-`<?"tM6?d/ ɠx340031Qp
qKcoLYs|;`!DMNfR^bIfYj|njJfb|bYniEj^^J^Vq~gZWKZmzоJ  ' x31 Ԓļ"MSlZܚo*s~c2S	LQqq;#4 *V	F((ILfhzm9,&Ίy r*mx340031Qp
qKc ḓ>FTc Bf^rNiJ*Un3UYv;ыSr2RKRK2Rwv}ZZ&n	E /x340031Qp
qKcX/^Ԏ(d%甦2ݦX`ZΔ݅W@MC)9Iy%9zYy=.p. .x340031QK-/.ΉO`(sj5_ͫfi;Tg, WٺK};ɻ,6wB 7!Ψx31 ԒԤC5蛴Cwax31 ]Om.b?Ita~q|nb^bzjhx'>ky\Xoy 0x340031Qp
qKc{P!QBEǯ;&@`ve?CE;961L*/K*cQ<WۂQ9J +x340031Q(/`ؔv2;L |x31 <nd/ygfsaigL ʊSK>8y|?.jK/XC3JJ6(Yٻnܣɻn n,x340075Up
qKcxébv{Zn4];t` PKfX85?u_~=!&d&%de1ԭ|wĵZbځ/2٩E n4ԯx340075UH,.N-O,`by)ٵIsEy"++,HY~ܥ.uɤS͝ qVx340031Qp
qKc]4#`sYτO=DW- 2sJSR%UX6y!d&efde1:ݝ7pzڦ)6Qυ ,x340031QK,,K(.O,`vboV3;5nUq|bJbAIjPnPl,
sg|`~mj9}aQ^RY
T]{tEKe=p b~Oex31 ̼ꚲ)\r[ x31 6u?)l8q˦O 7x340031QHI-LNK`to.0yuŕɉy)@u\9e[jR4ujבK" +"x340031Qp
qKcX`R_yVL PK)MIexwVI.nNs0TUǠ2],_Bč-k -QxmPup)וfL![rtA(i`<{x/3_|e2Eu"%`p%(5]DRz)^^DGϮ{ڲ%9)I! 7#SϹW'k{2ʍT! iDJҭu3kVx:$$4dl p?A䳜ù7{sSs/xJΣ/?OݯRu! 2z%gnUmTH(2G!;;W^|Mw-ZJୈUJ\2掟$G"Љ_:.	VddľS.tX T8;]ʏ8:Kh1K` Ox?=<3\hdpnaGknӼC颟`E}O8߯hY{oG8Po5ۈC5hd&u<%ǅ[;OrEXMS5;4v_CAYxj},kΟgk0\ml[/Ġy?fɨ7!RWlT?H%X`"{e%W^=w# y%ᕴn0Z<9x]4,
&	Ɏ^~v>Z4mi883qg)Fo
2;}٫&-c 2)iS6UEUuTʳZPhT}cc3K:45<ɾY
"ҋ[6ukj?:!pq;e;}нlۺn Je(o{G)VNq;͸f`Â<\J׺ۍ.4VQ.gݐԎԩ%j.aJC$Mz`x;Mo:_CaCbʩMI&Vz n5$x31 ԜҜĢĒD,k?:hIuQ0/J/N-*LNezBoӺL9's  @x340075Up
qKcW73\|Kכg7;xq(d%甦2pޑLבT>kt;&BLL*II-ϫOI,I*c`>Soץ< )1"x340075U(II-ϫOI,I`hk:CECΉ M@x340075Up
qKcԠTFғsOMkJ"&@SpeHwxɸ}[!Ĕ̤ԜԂĔ|<9:7xp^ -x340075U(II-ϫ/JL`P+~}᛹55g/0Ī8 Cf68*A %Px31 Ăxc-#G+74\|Gޯw x31 ĂxΏXR@+1= >x31 Ē̲T݇ޝ:yg^/k ¥x31 Ăx&[b\61e'mO &x31 ĂxS_Nbd}py浪˷x340031Qp
qKca}~aQSfUpa~P%w-\-wyq [Vŧ	x31 Լ̼Tˈe]8dLR2r+sS&ĔlsWs:))sD!*2gjsʘ^yE΅I$!y)ps9|3Z'v1÷ =rx31 Ē̲T5?DU(|yƟJɩ< dx31 ĂxmM9]S x31 ĂxʤpvMƏ ¥x31 Ăxe9Pa*>wת Q)	x31 Լ̼T9O{2~=Wu3MR2r+sS&ĔlsWs:))sD!*2gjsʘ^yE΅I$!y)ps9|3Z'v1÷ K<x31 Ē̲T67| xKx31 Ăxc8q͂ɬw| 	x31 Լ̼T+{~ܑ&}qɺ&`E)9yEbJt[?r9yn5ԹGeL"qe¤	̼r9Uw慇?S;˘C =x31 Ē̲TG˔Z?JYxbx31 Ĥ̜̒TS/5{}Y(+*+Me4[JiXp  H 	x31 Լ̼T^}N1TvcVY\XZ0!Dg5IiO.7#
QXɠ]6vݾ.bK.czn&tyf^J~9ܜGxFsG\?;' 2:gx31 Ē̲TE{V՞ Ԇ x31 ԊԢĜԲļ"LgR֞g[^Rv|> ʥx31 ĂxT-irn mx340031Qp
qKc.c❕|}fݯ`b 
>3ld8u]ԭ!d&de1\_?0l]WKj^3 Z*x340031Qp
qKcrbpw_͚0/@ PK)MIexxJlύkkŤv8-1XY_U(MVE 4	x31 ԤĢߗ7}#9E{Jmin*R(2)(5-(5/9aLwڴ/γsjGu3Є*JI,K̉/./Je(X\x6Tva;DiiJnκ}:&$G)PMP ˓;C	x31 Լ̼Tװ
V݌U~)((% '2>71/1=aBL6w5wkҞ]nz=G2/ }Vڭ:W$\8A"]_7'÷1μujg3|{ ;gx31 Ē̲T7\A/5	 |ɥx31 Ăxĕ+ߒICYFN xx340031Qp
qKc]4#`sYτO=DW- 2sJSR<U\a7ɽ*ƟNyQ{bJNfRFiv^^J^Vq~z}~}5-Ҽ"S~ c0	x31 Լ̼TEa|ٱz݋/=W4+J,.IMKLO-bS]ݚ餴|^K,d.ynnB%Y~1=7D<3/%nN0oUcyO2f )
>x31 Ē̲Tׯ.|`sJg.y	 Q	x31 Լ̼Te6/NS(% '2>71/1=aBL6w5wkҞ]nz=G2/ AŪ|?D}].K/[՘yg^x:?= }>}x340031Qp
qKcrbpw_͚0/@ PK)MIe\(Q6>{zk1%'3)/$,5(%I//%[/8?!QA;=/2s+ sF.ӥx31 ĂxC$:{9=MdB S$x340031Qp
qKcg$:^+FCԢĂL	ϭZ򹚨qw&UgRLjAK*cH47~<Q#wef& W5wx340031Qp
qKc]4#`sYτO=DW- 2sJSRK{/ye8U.0C)9Izy)zYy>մpKRN ,x340031QHJLN//K/(ON-.MKLO-`mM*n~ I	x31 Լ̼Tb7{N__(% '2>71/1=aBL6w5wkҞ]nz=G2/ Am}]
Ŗ\4fyM̼r9Uw慇?S;˘C 3<x31 Ē̲Tfo[:ˬ)!C! |	x31 Լ̼T?1ȶ (% '2>71/1=aBL6w5wkҞ]nz=G2/ Am}]
Ŗ\4fyM̼r9?=35ndLY 3<+x31 Ăxl;weWv٦Pp? x340031Qp
qKcor/=,n5C$w2l<g-YkjW3_͋c  Bx31 ĂxsT>YmD x340031Qp
qKcغ8L2q%Q麗h9Bd&de1\_?0l]WKj^3 P>x340031Qp
qKc]4#`sYτO=DW- 2sJSR3Z]s7mJ<-Sr22JR+}iv慥 M.j	x31 Լ̼T:_Jޤ;ްS,06+J,.IMKLO-bS]ݚ餴|^K,d.ynnB%Y~1=7D<3/%nхE_("wcZ  7ADx340031Qp
qKcؐ5KdǊ&OV2L*K*c%_^\hx2?#<3/%\/k̕;u۞f}zSƗ7	ssj/KX=q[0Ԧħe攤-W2V0*9Jks VUx31 Ҽļ"1M!-)xs3?)-ai\j7ȸ9Mkta>mK=^st׳֟V|;2 2	x31 Լ̼T<;
O#rޜ6Ϯ2+J,.IMKLO-bS]ݚ餴|^K,d.ynnB%Y~1=7D<3/%nN0oUcyO2f !>Сx31 Ē̲Tz17o$]q0 żN	x31 Լ̼T:_Jޤ;ްS,06+J,.IMKLO-bS]ݚ餴|^K,d8 E2|_WC3RsV5fޙNO,coW>6	x31 Լ̼TK?)ɟ;cLR2r+sS&ĔlsWs:))sD!*2KƮ۷ۥPlEcwL.K/Ϩr{sgv  X<x31 Ăxlg !?MeB0 	x31 Լ̼T!0jtHQxnVY\XZ0!Dg5IiO.7#
QXɠ]6vݾ.bK.czn&tyf^J~9ܜ`ߪ;ß	e! <Ix31 Ē̲T%޽>4S B$	x31 Լ̼TI_6Z>$wk[WM~;MR2r+sS&ĔlsWs:))sD!*2KƮ۷ۥPlEcwL.K/[՘yg^x:?= >Ix31 Ē̲TWi^D[=ׂx31 ĂĢ"ۑLܰ1CH x340031QHOI,/.M/,.I*cs޻nawˬy'kO]vfR -x31 ĂxMKϼ>l'5-7 x340031Qp
qKcXSBݩuė=s&'3)/$,5>-5/9U//%[/8?aӴu!i
(u6EC9^mo7RS^e$ 3mx340031Qp
qKcg$:^+FCԢĂLi;&*uN<PPr\$l<GnkyeiH:x31 Ē̲T[:vf^xIn ԗ[x340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%aUdlawiIv=Gv!Ĕ̤ԴԢԼbl<9aA}mBXuLX `2x340031Qp
qKcX6fpt>><41 ̼ҔTKcd^c7%BLLK,,K/JIK*c-zQ9}_W>{" M1ƥx340031Qp
qKc|;#7E&@Sp)eϊ<nIx(BLLLIM*MK*cp7aS]'H:	 l.Hx31 ̔ԤtRw=UrMoh<( x340031QLIM*M`8;oUSҾTmBZ(K*R*3TԦ|6OjZw" 9cx340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj66s6mZ~ZļtG\}aIa,LRRRA6+~zb'
 
ssﶥS^Ӄ! N//%[/vLw*ҏ?v abx340031QK,,KO,M/JKI-J-`UȲ()7yg  x340031QK,,KO,M̏O`
o-,ہe\ZgECJjYfrj|Rbq*PW;9͘%?wXt&4:|sann'd|WYSSRifNJj.N\?v=[ni¼o̖ Tx31 ̒bݙR>Pڪo{5J𕋄 -x31 do~izvYM x340031Qp
qKc~m~X؁p&Og^6kb 
y%w_Fշ|_bF~X^^J^Vq~ׄ>^uNY ȳ/ox340031QψO,/,H`'"tU3#pl=23$>71/1=K;]lDی55Q	:;2>9?dڿ2%M +0x31 Ԓļ"a.Z_'}Gc	LQqqw@fYދ؞Qs$19!}3LXtw;+ *x340031Qp
qKc ḓ>FTc Bf^rNiJ*:e\n*,I_-C)9Iy%yy%yzy)zYy;>o-f-l7j"j C/x340031Qp
qKcX/^Ԏ(d%甦2,
	v04k6ۙĕ-6Z_\Uǰh*.~? %0^x340031QK-/.ΉO`(sj5_ͫfi;Tg, 8gVh㏌"\[w^  x31 ]Om.b?Ita~q|nb^bzjPE}Y*M'8n }\x340031Qp
qKc{P!QBEǯ;&@p16تޗY[]"4!s2
Rr6O'`oTg X,x340031Q(/`xױyqiKK̝nJ%1 x31 <nd/ygfsaigL ʊSKX̦`A}W<=gf3lQ~/w_Gw݊ BY+x340075Up
qKcxébv{Zn4];t` PKfXjmgwTr2SKRV;Z-1q?|" R.x340075UH,.N-O,`by)ٵIsEy"++,HMyr]?'8ML} dtx31 ԲT2Bme
hkVTW_ĠiQr#_眸 uڣx31 ̤Ē"Ϙzg=.	 Hox340031Qp
qKcBČ=őKtyK21 ̼ҔThi0\[/2YmR}!Ĕ̤̤Ē"l<];5'_nqq{2 o.ݡx340031Q(L*J,/`xxO\Hɜ;rdf/,H*ng#TY{M;x340031Qp
qKcޱۀ>Vg9G5 \}qNٕԉ/mnGE1w{q.CA.zyEɩnEHr9H?3+/#eÒ5Ƕ  #i4ݧ	x340031QH,(LN,ϋ/I,JO-/NɎ/K-*
e0W*=;g%.Be&'d"X"oM]KsKssSSFj]=c}?К =?=	x340031Qp
qKcP7
7b^\/ؕ!5J>*twTIAj^p~iQr*L険dsreX|Z P(.Jf`obem*cFރ/ 3	x340031Qp
qKc0PoK߼xM37	rutu/H/-JNeM+Ꙝ(eǗe3ߣQfu wJJsJޫW<4MKJ';P;)x31 Ԥr?1+7;Rm x31 ̼ԢbZ[uߐ x31 Ē̲T{vuNry[gX (x340031Qp
qKc(t_Ǿ7zύ\&-X	'!DMbQvyjR|jQQ~Q|r~J^{:5|d_;l_̼ԢdmE_+/iRKd xq}x|{80j)NHMHKI-iٲcsߨrVXUKIe9.3%fI[Bd&g }UǰRMY'd~bĒ̲xO!!ȟg;94vL:}% nϒ	x31 Լ̼T'	4
Y#[	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&vuv-h y)ps9|3Z'v1÷ <x31 Ē̲TGyA'2|c 7	x31 ԤĢ܃B<un(\UZ{YԴԢԼb2iӾD;̽@(5'$3?/1'$(!jJN"Z?	4%7AAhġ>& S8x340031Qp
qKc?cKV'5g;w PK)MIeH*\dn'cײ}&ISr2
KRRR#8_,)>-1ֽK I/x340031Qψ/H,.IMO,J`baP8U3+P߆w_bQZT
ӻ҂?Du	cX穿r c &	x31 Լ̼TKDw3t^xPₜļ"	1%:ܭNJ{wQʼĂL풷v)[rјs7A3RsV5fޙNO,co3<ޡx31 Ē̲T$'ﬃ=/.5 ex31 Ăx?s~e_QF 4	x31 ԤĢOExe?@%3N%yv`UUE9%y9%EQ;tPb8_w"I)i
B;6f>p@5A `:px340031Qp
qKc?cKV'5g;w PK)MIeP66g{?.;bJNfRAbqIjR~bQ^^J^Vq~CbD˙%>ߧ%ƺI  2!x340031Qψ/H,.IMO,J`سؿٓEMnUb2nEi|jQQ|r~J*PO.K^}&Yc (		x31 ԤĢj{|jL RRRStM<;0f`|T?MԜĒĜTGw(^|;ah$Ҕ4u3tLHZS .:x340031Qp
qKc?cKV'5g;w PK)MIexT	T"qοxbJNfRAbqIjR~bQ^^J^Vq~CbD˙%>ߧ%ƺI  g1ѯx340031Qψ/H,.IMO,J`QLxcԢT]!L}?O -)tx31 Ҽļ"50<}@|dB&`MiiE%NLfk|)CJ!҅C-xͭӱ_~[Z[~x $5)x340031Qp
qKc5*q^~ա7ox4ڙ B26<eѭ۾|SoџVTUǰ_N=E?%ӈ"G a,x31 Ҽļ"50<}@|dB&`MiiE%[c3YE"]0dےk: w4ox31 Ҽļ"50<}@|dB&`MiiE%W\kL7:H#ٶ5N~=mimw#5tx340031Qp
qKc5*q^~ա7ox4ڙ B25E8/\ڋ͊!ҊJR(dr%Xʿ 'x31 Ҽļ"50<}@|dB&`MiiE%ކ*fN~|`iy|!ۖ\{دg?nwd< 54x340031Qp
qKcXИdXw/O71 dk|i^/*p_2l?ǵBde1<>0eNlҳ: Vi,x31 Ҽļ"50<}@|dB&`MiiE%jX|iJ2-X¤ "]0dےk: 3x31 Ҽļ"50<}@|dB&`MiiE%[?86f<\?Ӛrgkta>mK=^st׳֟V|;2 ܼ5?	x31 Լ̼T#v?p>O~ZgfVY\XZ0!Dg5IiO.7#
QXɠ]6vݾ.bK.czn&tyf^J~9ܜGxFsG\?;' >x31 Ē̲TyE[}Ywo?T`% x31 Ҽļ"50<}@|dB&`MiiE%ͻ׳neݷFW!S!҅C-xͭӱ_~[Z[~x Ӓ5(x31 Ҽļ"50<}@|dB&`MiiE%YydF>Cl[r[cޑ "27x340031Qp
qKcP)m^g,ݼ&@p/mEK&v"Cl<=:7aɞc糀-7.x31 Ē̲T'Rw=.ԚY/.D ҡP	x31 Լ̼T5_-p;>?[3ϛd$V&%1L)ntRSMBT%d2h]oKؒ,?	"]_7'÷1μujg3|{ ?ڧ	x31 Լ̼Tb.O~U@9&`E)9yEbJt[?r9y%ocR(1;oHgiqgT=ǹxs}r;  E;lx31 Ē̲TW0an~>#$= U	x31 Լ̼Tzwwe)=٘jVY\XZ0!Dg5IiO.7#
QXɠ]6vݾ.bK.czn&tyf^J~9ܜ`ߪ;ß	e! ~;Vx31 Ē̲Ts\wۙI>y*BqI, x31 Ĥ̜̒Txj/LyfSU^eEy%1-͹~Hs`켯FG,!p	x340031QLJK-K+K*cX^aV횵9wE|tZ%?#YK!OoçtwKֽ2e럱/.-(/KXۢZ< 4=Яx31 \m"oN߿{k[ bx	x340031Qp
qKcٴ^;ˀvz	ʆ5YezL{Vn/aZ
i"/,H-{uu7-Nv.;}I$ay)zYy=Lh7Y] =1	x31 Լ̼T#,ftRh]q̴~MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/pև?g;:|E3Q 1<"x31 Ē̲To>COT^bce '	x31 ԤĢ{lzxv{g*2(*JMK-JKN-f	zqϜoA]rSS!RsK2sKR|vպu%kjе\)i
B;6f>p@5A *D9+x340031Qp
qKc?cKV'5g;w PK)MIe0y&V+g'HBLL*H,.IMO,JK*ctuqv
z "T/Qx340031Qψ/H,.IMO,J`aј[}o<׸bQZT
ӻ҂?Du	cX穿r q'ox340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%awU\-7TPZZU01,?mCKyҠ	u0x340031Qp
qKcPv{&xVӴ 2sJSR[mK8#͇:m<QwGBLLK,,K/JIK*c(⢩{E/'E|) c.x31 ԊԢĜԲļ"Ӳ>D,Vo_i'a  1x31 Tw,z^>x2S,°iN
W"~;UVnliqCr۬N)xJՌpԢ3wI;OjeH>%ݏW 8{
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`ٵ'BR 'yU^t.T^b1iט}{W,kUTUhuQճH^鿯( ,?x340031Qp
qKcspq\szW2ذ?6L*-N/N-LK*cdo`SdʛL|@<> S/={&ʟp^20T[RYZTdrgM}bv Bx31 Ăx5>^7v+Ը A
x31 ĂԲԼoZBRDm9(9?''3P)Ty϶>ޯibySTΰp{s_4WW;SpV1;7nK|IQbr*:.kM rFx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2po$kcmSr222
RRJR4IO|0e~ge` h.x31 ĂԲԼ,|_EݫL ՠx340031QL,(H-K+`8lw)dϾn.>9-unȂ+᛬^VT39a'甯U,SuAbQb.[{|ux]{K ~jEjx340031Qp
qKcjk׮ܦ.]ff PK)MIeqȢr} qZBLLLLK*cwmTNSm՞	 `.x31 Te+)6>b	9l{> Dx340031QLL`2ä;K7Tt  }x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIeNl*rÂ
2U+rUu?-|1K q+x31 ̜tޟzMjamXހQ. Qx340031QO`)`xˢ|bZӇڞ x340031QK,,KO,M/JKI-J-`Cߥ>{e- ex340031Qp
qKcYq=Z)lOt!jr2ˊRRRR~X'~uˍB^. 4x31 ̒bJʵfppr]l 2x31 dβ~=7) 
x340031Qp
qKc~m~X؁p&Og^6kb 
y%{J\<ONoӘe1#?D//%[/8?B՟Ԟ?<ó"/ O.(x340031QψO,/,H`'"tU3#pl=23$>71/1=]Swz;b~k=Buvje|r~
X;*x+)|NQ!Y 4`x31 Ԓļ";f|)=CyVy]	LQqqɗ:fYna(s/$19A|s!2?*,?k (x340031Qp
qKcX/^Ԏ(d%甦2(<7d)
[DBLLK-/.ΉO*cXuqd?kWty /wx340031QK-/.ΉO`|hѿDwbzMY|IeA*P寗{`t=R ?!תx31 Ҽļ"50<}@|dB&`MiiE%~%_Y[oy3xD0aȶ%u:oOk+ 4*x340075Up
qKcxébv{Zn4];t` PKfhytrݷSL6x&/j1!'3)8D//%[/8?n#~sΗiN-, c0x340075UH,.N-O,`8R}+bĿ-.g Ϥ#;l:oMa*6 x340031Qp
qKc]4#`sYτO=DW- 2sJSRά]f׶Oea1%'3)4X//%[/8?։6MѰ-}.|  >'.x31 ԤrwMa֟i+k4 &x31 ̼Ԣb[S"Bϊĸ}?{@0+ x31 Ē̲T$1_)w,;mw;=^_ Gx31 Ҽļ"50<}@|dB&`MiiE%-/m=`c{hǏu;>H#ٶ5N~=mimw#2;7x340031Qp
qKcPڙʨlkC{aJ&@p/mEK&v"Cl<=:7aɞc糀-)Jx31 Ҽļ"50<}@|dB&`MiiE%+|t|ѳtۘ@ta>mK=^st׳֟V|;2 5\x340031Qp
qKcPڙʨlkC{aJ&@̰ۻ_]ޢ9^Cl<=:7aɞc糀-A*\	x31 ԤĢûg>U̫_&EEiEyɩvcRWt3iw^ulA.DUQjNbIf~^bN|qI~Q*Q z{/z+ϛi%aI4%7%v','27yWXXk k8x340031Qp
qKc{2}?Esr&3f{kb 
y9)lJ6gZۤdC)9I)izy)zYy<;glRaOI= "L,Dx340031Q(MM`q]d^ЛwѿE+m!BE|jQQ|r~J*P@n'{n{{YinjI"Pg+b06jײm35ʊ
r8֓q%37括)(I*?4;Z2bXOZbپONGnx31 Ҽļ"50<}@|dB&`MiiE%[.8	MXw"]0dےk: <7cx340031Qp
qKcPڙʨlkC{aJ&@kpNyֶ=LgџVTUǰ'|[禼;,SW||y= MT(x31 Ăx_5[`_k Lx31 Ăxۯ|$ū>G;2UAx340031Qp
qKc(#m&ٻU8U_q*?59Iy%eiyɩzy)zYy9HseEUESP=(2n\Þ%,z  %1O	x31 Լ̼T:s֬0W.	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' l:x31 Ē̲T-AWrW6]wl᥉ 
	x340031Qp
qKcx|=au֔K!jss2~3|tIRiOUXUpjZ͔U[߽zVo˴jK2RA3T	6T[dו鍞" Dܨx340031Qp
qKc?cKV'5g;w PK)MIeXrX%VمBkZBLL*H,.IMO,JK*c`>{+,UZwܟ ع.qx340031Qψ/H,.IMO,J`8[s@ƅ;5
26	D7Ģ4>(>9?%wg/>Ƭ~S X'Ҩx340031Qp
qKcrbpw_͚0/@ PK)MIeo$*yjg+.6XY_Uǰ~%CǏ=\'l귻 1x31 ԊԢĜԲļ"˸^vT璆E;_ ڒx340031Qp
qKcXRj;5rGړ_8&'388S//%[/8?J,MdPwFBՂed%'de0l^~cdYJ풨¡ e䅻[<>k +Bx31 Ăx7aw݄?&ԝ ~
x31 ĂԲԼ'bvl`?⌔`^gMsr2S"&73X8mӛaJRRJ6nsnƣyz`*r6U^%^᭕i_Uɗ%&2]]}Sv_K %Ix340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2>B|MGXj{]a1%'3)#3 ,5D//%[/8?sߒWuxs HQ u0x31 ĂԲԼGȗ]+#  R&x340031Qp
qKcjk׮ܦ.]ff PK)MIe0lîE/HQJ\!Ĕ̤Tl<}'H58fN _ɝ  	/x31 TvmN>9ùʫ}G ޯx340031QLL`P[p_s.vkSWO  px340031Qp
qKc;Ɯ9.)ObSж6 PK)MIeqW
O\>!Ĕ̤̜tl<^F>jqhYǗ=0 >-x31 ̜tNIo:=A,rx340031QO`'5΋yӟ>,={~ =x340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj+Ϭn'j	WZYanb^b:PouHvg>
ԼT)ܜ;^T=Gq3!
ssN8F%huC3de>V̚m6-ڴ~z$"8 >cx340031QK,,KO,M/JKI-J-`tk$JzXZǩ ̗x340031Qp
qKcpywO8{Ŝ#O5Bd&%e&Ƨ%de14}>ųRk E %x31 Ԓļ";f|)=CyVy]	LQqq{b[ȫ)^x+wqBAIbr6zBdzU3Y~ )x340031Qp
qKcX/^Ԏ(d%甦24Ͼϑ&^C)9Iy%9zYy(Xs<`e~֫  @/dx340031QK-/.ΉO`r۵e:}g;o, _=0:@ol	 i"x31 Ҽļ"50<}@|dB&`MiiE%w%0K/wgD0aȶ%u:oOk+ 9x340031Qp
qKc8:%T¬sf]d>}kb 
wZt8Yjr"e|G;Cl<Ε
it j*ix31 <nd/ygfsaigL ʊSK^Wre3+yO*!Z{^l)4s>$cKW ?+Fx340075Up
qKcxébv{Zn4];t` PKfH<b7狸¾N͆r2SKRV;Z-1q?|" N.x340075UH,.N-O,`8R}+bĿ-.g |[cx]ߟ  s!qx31 ԤrZl:s	+g  ׼x31 ̼ԢbίpyTɻgo   
x31 Ē̲T²&O_4Lm=CW-	 x31 Ҽļ"50<}@|dB&`MiiE%חK/wHH8vgMg .Gmɵknzڊ{G 6x340031Qp
qKcPڙʨlkC{aJ&@^rLHkџVTUǰ'|[禼;,SW||y= -Z'=x340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj"+ (,=ļt;ߞX}duEy) G;Y?nf609?77?_j|kn$
;2Q\bq~~0lbZVk'U}0 s:[xx340031QK,,KO,MON,()-J-`x&_w+ox/>y x340031QK,,KO,M/JKI-J-`d5%v6t bT	x31 Լ̼TS_p3+J,.IMKLO-bS]ݚ餴|^K,d.ynnB%Y~1=7D<3/%nN#W<]9U#N =dx31 Ē̲Tnzu:+q Ѐ/x31 Ĥ̜̒TS/5{}Y(+*+Mexmd۽BGFQgR. [#x340031Qp
qKc|Y}^|!jr2
r+SR7>ʢŮ\ "x31 Ĥ̜̒TS/5{}Y(+*+Me᳉'*㶅  ?Y!ͩx340031Qp
qKc0r:|f3MɆ)	kQYR_TW0s[K^\7WJn{wdrLOAANfrbIf~P}^IjE	PË%t6eIؒ'Xg"<jǩmNL0ztU.iP9IhK*cZsTƧ<lṦhrQI|~Y@?2P1GimB? qux31 Ĥ̜̒TS/5{}Y(+*+MeXJ5,(f) bv"ڧ	x31 Լ̼T%yҧ=Լ打MR2r+sS&ĔlsWs:))sD!*2KƮ۷ۥPlEcwL.K/Ϩr{sgv  [<3x31 Ē̲TcgF-+s{/l^ Ȉx31 Ԓļ";f|)=CyVy]	LQqq	ç75;x;{u;
Jgo?"ӫI󷽶  [e+x340031Qp
qKcX/^Ԏ(d%甦2|W̼EY0Z_\U:ǣYVg<oZ
 
.	x31 Լ̼T7§dh/q>w[x/d$V&%1L)ntRSMBT%d2h]oKؒ,?	"]_7ő+Q'  =ux31 Ē̲TWXbusnhx340031Qp
qKc|Y}^|!jr2
r+SRclW7
$~ !?	x31 Լ̼TGw7WU]3d$V&%1L)ntRSMBT%d2h]oKؒ,?	"]_7ő+Q'  P>x31 Ē̲TRs&=8ժs x31 <nd/ygfsaigL ʊSKԛMv|-hŷpVc,\bl0碣'48/"_	 'ӯx340075Up
qKcxébv{Zn4];t` PKfiZ⛱i3-pŢ!&d&%de1ԭ|wĵZbځ/2٩E &.x340075UH,.N-O,`8R}+bĿ-.g sUi/Mhk |	x31 Լ̼T_o3*|3\&D}_d$V&%1L)ntRSMBT%d2h]oKؒ,?	"]_7ő+Q'  ,=ۡx31 Ē̲T3s#Xyn>l	 i
	x31 Լ̼TwY9 ԓQwHₜļ"	1%:ܭNJ{wQʼĂL풷v)[rјs7A3R8r3\u<ٹ> 2;͡x31 Ē̲T4ZJ扞}֟|Z{ܧ #ݥx31 Ăxs7>=Mf貸; [	x31 Լ̼Tߟ2}=s-f7+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/Ϩr{sgv  ?x31 Ē̲TA%Mf2&RO(^w ; ''x31 ĂxJ3JV|oHEk <
x31 ĂԲԼw]>%yQ&PE99?B,Svˏ0%)I9M}uż]^09Za{}|ﶄɗ%&2]]}Sv_K %Gx31 ĂԲԼiBOE;XI> IDx340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj+Ϭn'j	WZYanb^b:PouHvg>
ԼT)ܜ;^T=Gq3!
ss>j>JM&Z48g]UTꂳZ1k۴pj `x31 \_.xJ<zA̙ I	x340031Qp
qKcٴ^;ˀvz	ʆ5YezVUYQZxΧH*K*Rf\wπ:,r2de1~0M3du 	:v	x31 Լ̼T;gzdyxd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 @9+x31 Ē̲TN'\sڔ Ϝܥ	x31 ԤĢ=?O>[/i<&EEiEyɩ5a\O2-Kn*zz*DUQjNbIf~^bN|qI~Q*ΣZdM[mRˁ4%7AAhġ>& a8Kx340031Qp
qKc?cKV'5g;w PK)MIeH/&É$>Y)7!Ĕ̤ԤĢl<s7%;/]SZF
 f1.x340031Qψ/H,.IMO,J`8ɬ-B̶|3Ģ4>(>9?%g՟wNm}ov *x31 ԊԢĜԲļ"vw7m)̾ x]x31 Tw,z^>x2S,°iN
W"~;UVnliqʿ+t" (ߣ
x340031Qp
qKc|1!Rx^i;-75L*-NK*cZc#QX,7=SU
TXp6IX]K}V.ϴTSMaIeAj1Piq)WC27Yx-u\?x31 ĂxUWTUDҍXuD 3x31 ̒bJlFƗ\zd~ x31 d޾MWyqsW	 {-	ɠx340031Qp
qKc~m~X؁p&Og^6kb 
y%봥mn=I8qxw_C`%zy)zYyrfɞc|:n! ̕)|x340031QψO,/,H`'"tU3#pl=23$>71/1=3FcWrLS+S@m޹wVL[Ias
 40x31 Ԓļ"T5$/`޷e&0E9߲&_ve='̉ lυlg?m- +u	x31 Լ̼T<wiINlxG	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&vuv-h y)psZUzq:qr\ <x31 Ē̲T#ig6=4k-%Ŋ? px31 Ăxd{uhc' x31 Ăx)M2I, Dx31 Ăxk9$վ*`g=o x31 Ĥ̜̒Txj/LyfSU^eEy%^	\}v%,>h ˥	x31 ԤĢ'UES墪3&EEiEyɩ7l)F[׫ǳ(5'$3?/1'$(է֎ϛCNU5{SҔ4u3tLHZS G>ax340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%!}ڥۺx,"RUSr2
RRRSR8ma)_ԕ^0a= )@31x31 ҢļԼ9b/$q5.Mh1}s4 }߬x31 ̜TX$CKn?eߘ@T%&%1pL	xab\[ݟz!ơx340031Q(J-M/`}qnS6=gWeC*<R-:O-/G -#F	x31 Լ̼T]?E87	v{ى[ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn 2;x31 Ē̲T&V++PSI><! *	x31 ԤĢGۧ%̘6'ԴԢԼb0'^%7IZ==(5'$3?/1'$(gQ[_W6)
] QZƠ ncC	Qk
T M7~x31 ĂxS"YjʸYX̼( 	x31 Լ̼T>[?pfgMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/#?9^!yARSa] P:x31 Ē̲Tb~t}:7th* 	x31 ԤĢlj}~4ObQTZZP$9+߂2IBT$d%2<uaJִ&Ek8 JKSrvm|0!9jMj }:ۨx340031Qp
qKc?cKV'5g;w PK)MIeXY^hv^	Jn9k1%'3 $5)?(E//%[/8?29J7*;}32 A3x340031Qψ/H,.IMO,J`
*0o5eƳbQZT
ӻ҂?Du	cX穿r }&x31 Ăxi;﷿oX9F˖| 	"	x31 Լ̼Tku
o|\վcGL&`E)9yEbJt[?r9y%ocR(1;oHgiqgT=ǹxs}r; ;;x31 Ē̲T2vEls'?%d* 
x340031Qp
qKcrbpw_͚0/@ PK)MIe8ϨXmS
o'?c\uM!Ĕ̤Ē̲$l<+ͤ<~|᪼?fS 2<	x31 Լ̼TcOv&]|cYLR2r+sS&ĔlsWs:))sD!*2KƮ۷ۥPlEcwL.K/Ϩr{sgv  =Wx31 Ē̲Te[bԂ^}uksz- *	x31 Լ̼Tdfj׿Y1bCₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn 2<;x31 Ē̲T&Us3N|Z x31 ҢļԼO&J)騱wm V
x340031Qp
qKc*!jz"_+Zc+&@SꤢMXzUՂG1k_BLLK,,K/J-M/K*cHג$vk]ÖcZ~L@h*J,OIE(!c)3ԕ =x31 ̜TX$CKn?eߘ@T%&%1X9yݜSw.cw !x340031Q(J-M/`p4`s=%Dڃ]yKē! jssJL<S/O{:  x31 Ĥ̜̒TS/5{}Y(+*+Memi]@3g}5<
 U:#	x31 Լ̼TK?^9О"ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn =!x31 Ē̲T(?tiZz !͢x31 ԤrMY.nl=S3 _ҥx31 ̼ԢbKLLap6`_/  ZVx31 Ē̲T/ֺu*gԝ*: x31 Ĥ̜̒Txj/LyfSU^eEy%qhYrm6Je !x31 \]L='T6p׊Y. -	x31 Լ̼TWGFh^螻(% '2>71/1=aBL6w5wkҞ]nz=G2/ A_LJ+7HgiqgT=ǹxs}r;  9Ix31 Ē̲T-I../ZOϻ+ i0	x31 ԤĢw~F{UդdQTZZ̰nknE|jخy< RsK2sKR
5mr=o&+ӗ@1(ۘЧ=0`BrԚ5 <x340031Qp
qKc?cKV'5g;w PK)MIeX\Ȫ|F.>33d!d&$&'de1x=DmBUK-;O O/x340031Qp
qKcrbpw_͚0/@ PK)MIenul3Q[/[<^cbJNfR^bIfYj|QJ^^J^Vq~f?>pUޟLv 	2px31 ԊԢĜԲļ"7<',Ś_yew̪wxM x31 ҢļԼ?媷^yH1>h٧%x31 ĂxƌV$>av6kd
x31 ĂԲԼE\Mo`_p43TGR}81%`aJRRJ6nsnƣyz`*rf_u2fF:^^jɗ%&2]]}Sv_K hxFRx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2tk/L8UݞSr222
RRJR:-9+0q^wO?2$j D/x31 ԤruUw;o^쿒 x31 ̼Ԣb	=w
+8ĽF Nx31 Ē̲Tva)'tYr'i *	x31 Լ̼T@Ng3f$kV	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' e:x31 Ē̲T·Tmn.]9 љҧ	x31 Լ̼T7V?H?u^b+1+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/Ϩr{sgv  ,=x31 Ē̲Ti_tDogWrl MR	x31 Լ̼T>'mZ7<VGO.3fSₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn ;Gx31 Ē̲Ts_?d4[; 	x31 Լ̼TWeVU7?]&&`E)9yEbJt[?r9y[NuytK_!y)psZUzq:qr\ \=x31 Ē̲TƳD=b7*\+3 >
	x31 Լ̼TiYgjBx[fbrso	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' ;3x31 Ē̲T@5yյȘt	SlX^ ZK	x31 Լ̼T+/zyߊ9&`E)9yEbJt[?r9y[NuytK_!y)psZUzq:qr\ <ߡx31 Ē̲To%OgbĝhVq 	x31 Լ̼TemسV<jdHYgVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  o:Cx31 Ē̲T٫;nc	/y ͜z	x31 Լ̼TAb=&~ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn sD<Xx31 Ē̲T
J;OԕK=$ kݧ	x31 Լ̼T9c,N:lzI?ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn O;x31 Ē̲T.ۗ3l^٠~덤5 	x31 Լ̼TsY*^Rl&`E)9yEbJt[?r9y[NuytK_!y)psZUzq:qr\ k><-x31 Ē̲TΞwo.uX`- U	x31 Լ̼TNPR}le[&h7+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/Ϩr{sgv  =x31 Ē̲T^)V>m)9,O :	x31 Լ̼TuN6}}Q.LR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R<!َ=>_ѷL% r<x31 Ē̲T
[,׶{jY ڢ"x31 Ăx2ʻe׾4"7 E	x31 Լ̼TM77Ye]_Y(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%nN#W<]9U#N z]>Bx31 Ē̲T{
ueZmʪb& x31 Ĥ̜̒Txj/LyfSU^eEy%+B><fn塊JX? !	x31 Լ̼TG|~ϥuNw*	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' 
M;Gx31 Ē̲Ty
3J~[o3ƞW	x31 Լ̼T5zL+#*n.ܛxgM};MR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R8r3\u<ٹ> <x31 Ē̲TuSMI.4?;gK@+ x340031Qp
qKcrbpw_͚0/@ PK)MIe`<ԫomXcb4C)9Iy%eE)Izy)zYyW2$I?xUy2ͦ~ 793	x31 Լ̼Tfwʟ/cU/Zₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn X; x31 Ē̲Tb՛fO[r^N 	x31 Լ̼T{ܾJ?՞4囀d$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/HgiqgT=ǹxs}r; M=x31 Ē̲Tu\LO-0}> .	x31 Լ̼T7ަ_s&.buڣrMR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R8r3\u<ٹ> =vx31 Ē̲TLg:7n{ZJȷ ʝg	x31 Լ̼TK$Y /E.Wo3lVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  (9x31 Ē̲T;uu^sPd{5s;U  	x31 Լ̼T5	-ToҤ&`E)9yEbJt[?r9y[NuytK_!y)psN]lǞYGx& L>x31 Ē̲Too-o[x9 ިx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2|]3CmK'/iX1bJNfRFfbAAjYj^^^J^Vq~C4Ifl/l^ s1 x340031Qp
qKcrbpw_͚0/@ PK)MIe}ry_S5|AC)9Iy%eE)Izy)zYyW2$I?xUy2ͦ~ bu3	x31 Լ̼TiB6YgR9O$=.0+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/Ϩr{sgv  a=/x31 Ē̲T63t^n0f ƨx340031Qp
qKc| 2s\[Ċw-01 ̼ҔTM~gߪvrnC)9Iy%eE)Izy)zYyW2$I?xUy2ͦ~ Z0	x31 Լ̼T7L)vɸOI=MR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R8r3\u<ٹ> {~<]x31 Ē̲Tu7ZD|9l ʹϧ	x31 Լ̼T[oeb$S\l۞ܿ(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%nN#W<]9U#N H:x31 Ē̲TL3$ŧ$Z9z.(ŭ }
x31 ĂԲԼ˹,R!o޶_XݒMsr2S"&73X8mӛaJRRJ6nsnƣyz`*r8/&c>Fm	/)JLNe8Z^eVq I	x31 Լ̼TKՏ<l['shVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  <>x31 Ē̲T6lϩqoB|3ܛ	x31 Լ̼Tw*;v#*nVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  :Kx31 Ē̲Tv/ǭQf̿{d< ,	x31 Լ̼Tח*:眝.ihVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  :x31 Ē̲T#xl}[?bY ɫ	x31 Լ̼TE{E^	y1O⒦B	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' ;x31 Ē̲T.̨֢	kμiP YBx340031Qp
qKc| 2s\[Ċw-01 ̼ҔT:'=^-74XY_Uǰ~%CǏ=\'l귻 #3n	x31 Լ̼T3/tŲ&`E)9yEbJt[?r9y[NuytK_!y)psZUzq:qr\ s<hx31 Ē̲TM#7S-#n =	x31 Լ̼TVTeiz+LR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R8r3\u<ٹ> "<x31 Ē̲TG39KZ}Xz~SNΓ 	x31 Լ̼T"!rle\hVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  :x31 Ē̲TW
vY.ꈰI#X? Kܨx340031Qp
qKc| 2s\[Ċw-01 ̼ҔT'~:ib*g^2XY_Uǰ~%CǏ=\'l귻 2	x31 Լ̼TCXܧ^(BYD,jₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn [E;x31 Ē̲T-q ⋚O 	x31 Լ̼T]96uޖֿ&`E)9yEbJt[?r9y[NuytK_!y)psZUzq:qr\ i<,x31 Ē̲T-\>~ (3 *t	x31 Լ̼T'VX_߶ӂ]ϙd$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K @ax31 Ē̲TAv>≭u5 z	x31 Լ̼TSĭmTJmD(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%nN#W<]9U#N X9x31 Ē̲T1;|^U>o% 	x31 Լ̼T2K_Sw	x:A(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%nN#W<]9U#N }9^x31 Ē̲T):MhdU$ 7B	x31 Լ̼TOI+(:iC&ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn ;fx31 Ē̲T/Jw+<}?Uz~8 	x31 Լ̼TC|lخh?}jVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7ő+Q'  &9x31 Ē̲TgN0p]˵3Z &§	x31 Լ̼T_E4t/)Au	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' :ءx31 Ē̲Tw3%aT]i/ x31 Ē̲Tj}&v)]~n}. [!
x31 ĂԲԼGg׿5hnsn>w&PE99:Nq{~]epOsԤt[迾bށ^/t-ΰ|؁Q>w[KS֮)xpYUocx IAx31 ԤrM!6nSLb?]@ x31 ̼Ԣb,dؤ}928 x31 Ē̲T,*>7.ra!  	x31 Լ̼TƘ6\cqc,lₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn @<<x31 Ē̲TN[ڢS[  	x31 Լ̼TVI?7=OeakCₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9-\*w8W8~vOn f-<x31 Ē̲TP67Gҵ8=֚I 	x31 Լ̼T|۷l~)ӾY(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%nN#W<]9U#N q:̡x31 Ē̲T/K7[ո5U\kП3	x31 Լ̼T
fE7Ӟ߳sd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7vug,>x31 Ē̲TG/oVFJ ϏD	x31 Լ̼T/hh-t	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)psN]lǞYGx& c;x31 Ē̲T/5`ftإ Ͻ	x31 Լ̼T?q^,[jp%<޹(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%néX3}DY j>Gx31 Ē̲T@f+_GTx41 :x31 ĂxLZroj=9/ɺsKl  O	x31 Լ̼TKT]VaQn6ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 
?0x31 Ē̲T+{st9%\\ ʝr	x31 Լ̼T7?:u7#0iK	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜGxFsG\?;' <x31 Ē̲TO5JzB( ʒU	x31 Լ̼T?!/,}8cu+݅RBy2&`E)9yEbJt[?r9y[NuytK_!y)psN]lǞYGx& B?x31 Ē̲T]Otܽ* ^x340031Qp
qKcPv{&xVӴ 2sJSR,z'yӥ]ѯI,!d&%d$de1_ɐh&sWd7. 21	x31 Լ̼TŇSd+~_#y?{d$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K ]Ax31 Ē̲TKV]gFF=-.e [J	x31 Լ̼T.kً&e-vq	\cVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7vug,1e<x31 Ē̲T~[P&x_-Y}} ߷	x31 Լ̼TnJ{乫!aₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 ?mx31 Ē̲T劗+,>
s [x340031Qp
qKcPv{&xVӴ 2sJSRl&+plF1v"/BLLK,,K/JIK*cZA<0 )1s	x31 Լ̼T:
-69;?d$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K 3X@x31 Ē̲T537nH?֖:GW [	x31 Լ̼TGS_\[W7/=[Xu(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%néX3}DY 1
Bx31 Ē̲T_T,,xE =9; 	x31 Լ̼T/>RG-MR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R<!َ=>_ѷL% Fl@x31 Ē̲TU2EN?%x?R
 ;	x31 Լ̼TIA֙)妡S&d$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K j<=x31 Ē̲TK#7\2nf`PM> 		x31 Լ̼T^#;wXk.,׈LgVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7vug,=ѡx31 Ē̲T/=WgRH7M 	x31 Լ̼TG/7TH=[aW	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜS?>9۱g+6 > x31 Ē̲Tvn&뎳#sI Ϝ	x31 Լ̼T=oʮ[uoŦ,MR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R<!َ=>_ѷL% ?x31 Ē̲TMaX;y18mJq f[	x31 Լ̼T7-gny>&`E)9yEbJt[?r9y*Q^>o7TEr}rHgy8uC{f}o(K ;x31 Ē̲TǵwfF*y% šAx31 Ăx\{JK̬-ɹ[l Gɥx31 ĂxW9f
\pÜ҇~j3 	x31 Լ̼Tݾ?mpuY2+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/pև?g;:|E3Q Bhx31 Ē̲Tv\,o}x]O Χ	x31 Լ̼TV6[W(l_gb.d$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K ?ɡx31 Ē̲TUnbN{`&. 	x31 Լ̼Tω=`so{MR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R<!َ=>_ѷL% \?Zx31 Ē̲TG7r~'wL "	x31 Լ̼T|7W}"G|UNL&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9,x31 Ē̲T۽'Doc-]Ʈ x31 Ԓļ"T5$/`޷e&0E91o"lzE܁6%峷UA$~f^[  ܩ,1	x31 Լ̼T?[g,|Cmfd$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K |A7x31 Ē̲T96ۿ
Ӥcҙg i	x31 Լ̼T5jr/-Um܄OLR2r+sS&ĔlsWs:))sD!*2&h)=4͗C3R<!َ=>_ѷL% p@zx31 Ē̲TNcÿE;٘gq) S	x31 Լ̼T7npmₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 ?<x31 Ē̲T;f!]#/[vE+ 	x31 Լ̼TWJ'vbaɡhVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7vug,f=Rx31 Ē̲T7|F2rėU p	x31 Լ̼T+=xvVU?]7+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/pև?g;:|E3Q D@ܡx31 Ē̲T0f{瞟z;sN> u	x31 Լ̼T'oN/θCLR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ f9ux31 Ē̲T|A[YJO  5x31 ˯jeF-K淼P,]_Zİmɵknzڊ{G )x31 Ĥ̜̒Txj/LyfSU^eEy%2-KN<νM%oI;Ӣ 	x31 Լ̼TK6j*ggI&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z R9x31 Ē̲TdNjճJҢ^5 'x340031Qp
qKcX6fpt>><41 ̼ҔTC[D̟oIW*BLLK,,K/JIK*ccklWzI^"Ċ7[y.x340031QHI,IO,.N-`>MvЪhQ\ZT_T#M	[HC~LPVPXZTjtjBWl\+of8\65,145>?)+5dLm-Yw3.ׄ8>49ؙ~lzoQã;[؅"PE9%y9%E@})|~=o<o7PZT_ؼği'*(voN ݁x340031Qp
qKc{2}?Esr&3f{kb 
y9)
V_gvuESr2JSrRxw*<)rÞR%{/ F7,x340031Q(MM`jx%kg{s6X">(>9?%T pœ=K7=p뽆47$x1~_Xkٶpe@]WY8EV -vI'J-slߧ bG?x31 ԊԢĜԲļ")95~ڱwK qx31 Tw,z^>x2S,°e7o	JnY-D8AkRӘbTv  T'4x31 ĂxvVmq#>g Rx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c|oηW|'[MaTVSNS;-f7 N3{x340031Qp
qKc`?햧m]6r!DMRiZZjQ|Fb^JN^ML>PlTijEIjQ^bN|yf^J~9Pq:х2q3}\ĂԢ܇Jt8ؽ+#z\̤Ē̲Ty)zYyv^3SAu	, W
x31 ĂԲԼߝt[0k+kXyLsr2SuJ5l.'0%)I9M}uż]^09ful)|ss]EKS֮)xpYUocx IPx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦20ۙ{&'UL5XPZWUЧ4M}/<-; f0x31 ĂԲԼ!eߝc_/U$|& N1x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIevVK.'ڂŧBLLOK*cac9{|s *x31 ̜t[|7.ط,
׏  1x340031QO`3ޜS\i {x31 <nd/ygfsaigL ʊSK$?[ u@b5./n=l<7G/ (x340031Qp
qKc]4#`sYτO=DW- 2sJSRT[<[?t߭6)Sr22JRn8=mS(.Qx31 Ԥr|uE8po^pXKW Slx31 ̼Ԣby.-gn,i)l?X hɡx31 Ē̲T^ݼ;~[A/- >&	x31 Լ̼Ty<#̿ot;76ssd$V&%1L)ntRSMBT%d2Ll9׽Sr{i/U/Hgy8uC{f}o(K ??4x31 Ē̲TC"ov8-5>  ٧	x31 Լ̼T5&/wвXK4	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜS?>9۱g+6 >\x31 Ē̲Tr"z/H<ؾ'BV J	x31 Լ̼T3jKt*n:9m7&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9Сx31 Ē̲T
sx,yGp}= 	x31 Լ̼TVbXf|d*sk&`E)9yEbJt[?r9y[NuytK_!y)psN]lǞYGx& =x31 Ē̲TfO_u5Ge 	x31 Լ̼TYuun}Ŝ03+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/pև?g;:|E3Q ;7x31 Ē̲T@	miک;k[E "ا	x31 Լ̼T~J~O]ˀ#?iA6	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜS?>9۱g+6 q=x31 Ē̲T^bS:el ɪگx31 ̒b\u˼]M6WR7 3	x31 dΚ؛Wlo\T ix340031Qp
qKc~m~X؁p&Og^6kb 
y%|bT??!Čl<sQٱWite'bm *x340031QψO,/,H`'"tU3#pl=23$>71/1=F]g9oP%bRBuvje|r~
X;*x+)|NQ!Y ri3_	x31 Լ̼T9͟vKްkNvₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 {^?Bx31 Ē̲TeU.MMjcj Y	x31 Լ̼TWLnVݸZ
gI&`E)9yEbJt[?r9y[NuytK_!y)psN]lǞYGx& K	>x31 Ē̲T?f5K;h;g& ʠ	x31 Լ̼Te96L.锘$ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 Ht>x31 Ē̲T*&~>˴8b Ku	x31 Լ̼Ti߿P;B&&`E)9yEbJt[?r9y[NuytK_!y)psN]lǞYGx& X?fx31 Ē̲Ty?cNk?da  	x31 Լ̼Tׅ\zf3+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/pև?g;:|E3Q wA1x31 Ē̲T̻9Txcy;9}	 	x31 Լ̼T{\+[f?vzs`	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&Ė};%GRrtyf^J~9ܜS?>9۱g+6 ?>x31 Ē̲T~._Ҿyosmj ا	x31 Լ̼T])rx6:(fŶ&5/(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%néX3}DY !=Lx31 Ē̲TN!ʼy)}5}.
 	x31 Լ̼TQf]M{9v>4WTK3+J,.IMKLO-bS]ݚ餴|^K,dr{>ȣ4__.K/pև?g;:|E3Q ;}x31 Ē̲TqjC: 	x31 Լ̼TYSvrk<)(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%néX3}DY Aáx31 Ē̲TgO0y^Sǫ90	x31 Լ̼T<JZsNYN7|ï(% '2>71/1=aBL6w5wkҞ]nz=G2/ abˉ־|#N|9D<3/%néX3}DY Μ=աx31 Ē̲T5n)qvO<=qjU6-  	x31 Լ̼T|%`{f2+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%néX3}DY 9=x31 Ē̲T_d:+pRke* V]	x31 Լ̼T-Oü,nxwOsfVY\XZ0!Dg5IiO.7#
QX0Dk_N}>GiT"]_7vug,Ax31 Ē̲T8s	KWI|pQ} x340031Qp
qKc ḓ>FTc Bf^rNiJ*V?C5|߿!d&奖'&dde18(Mŋ A%1x340031Qp
qKc ḓ>FTc Bf^rNiJ*b$~vθS%!Ĕ̤Ԓ<l<ǝ]?}Bx?5 1/ 	x31 Լ̼T/Zneya5{^LR6ₜļ"	1%:ܭNJ{wQʼĂL-'ZwJq<:M/̼r9`}scϬWm<e	 ?ޡx31 Ē̲T'妜d$)A !Y	x31 Լ̼Tgk
~-ȹyNMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/pև?g;:|E3Q =x31 Ҽļ"50<}@|dB&`MiiE%jg
tLH<O;wc2a@l[r[cޑ ڊ5_x340031Qp
qKc8:%T¬sf]d>}kb 
IɗWYx]6	_4-j!ҊJR<O8W*zǗ6
f n+x340031QHK,ϋ/K,LLI`h)p{>L%ޯ[7/ 6ڢlb:/AU䖖V {ԾW.Ջd3J*),M-ٳi)Sio{ފXTEW2ފ<ng}y,7gC^P%%@Zuھ{W#?
M-*Y&[e3̵%)i@UZ?.~YS"c x	x31 Լ̼Tk!Gfꕁɢ#&`E)9yEbJt[?r9y*Q^>o7TEr}rHgy8uC{f}o(K ƽ;x31 Ē̲Tyɒ[']Xg t	x31 Լ̼TU>?}X͎j-MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/pև?g;:|E3Q =x31 Ē̲TI}Ŀ3[_W| x31 Ҽļ"50<}@|dB&`MiiE%IGf\U4fIرrta>mK=^st׳֟V|;2 4x340031Qp
qKc8:%T¬sf]d>}kb 
徿f=Z͚euGrBde1<xpU/mL$ +	x31 Լ̼T{͸t;qgܝ=:&`E)9yEbJt[?r9y*Q^>o7TEr}rHgy8uC{f}o(K )<x31 Ē̲TC)Lv?\KlQE x	x31 Լ̼TGk9y(3+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%néX3}DY f>;x31 Ē̲TVSvaB{ /x31 Ĥ̜̒ҼTmG~-Lg& Rx340031Qp
qKcxGC=w?5IL,/*+MO`xr>4ωze|y݂)(LN,+I(j:޵tCJ{~S!ri;TTHqqIbH$y6_W+yTuNfRܛ+_]_# 2c%x31 \7d~ёcgwa:{? 
	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez͜$_.4ow#,"H*K*R4{/WNp`d&7Pu9I`R^lTəE W$9	x31 Լ̼TEa3}-~xvₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M ;ɡx31 Ē̲T S.aSw`MOڥx31 Ăx+Or<Wr3;5	
 l
x31 ĂԲԼVi>u9fbsfTCRM=tz2	LIJjRi:}έux__]1@`WLEN~:CpB)^'M1P{L(19h{[Z? Fx340031Qp
qKc;Ɯ9.)ObSж6 PK)MIe(![dd!d&edde1,wMw7?6mW X)ޠx31 ̜tsg&jni7 7|x340031QO`_"bj8c}?E[N xx31 ̒b5;*<8zɂ'Z[  V;x31 d^3z){x֊+Gv}  
x340031Qp
qKc~m~X؁p&Og^6kb 
y%ʹ5#6MR \+33JRL+vU=m_ǔuB d)x340031QψO,/,H`'"tU3#pl=23$>71/1=]?^5?q+Buvje|r~
X;*x+)|NQ!Y V3(x340031Qp
qKc]4#`sYτO=DW- 2sJSR.:*h2m9;2_wmh1%'3)4X//%[/8?։6MѰ-}.|  A.x31 ̼қ3Ͽ|fYO9
 =x31 V&[UoYvMMtQ% tx340031QHI-LNK``Ҟ5Ozj̘L(89 >/%.ՖOIeL~psާE "Qx31 Ԥrg8V=2~ۣbj;x31 ̼Ԣb	V>|{HnF 
jʡx31 Ē̲T-1j-=w  Y	x31 Լ̼TWs2w0o{bLt߹{d$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 :3x31 Ē̲T)r{n(4~ָƬ< 	x31 Լ̼TOo-VSh[	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)psN]lǞYGx& ?x31 Ē̲T[37n>]cT<yoM c~	x31 Լ̼Tܶze$p{sbₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3R<!َ=>_ѷL% ,;x31 Ē̲T"̮[?ţ~ Yx340031QK,,KO,M/JKI-J-`}Hg
ߗ;Nh	 %x340031QK,,KO,M/JKI-J-`9ϷXZOشn} _	x31 Լ̼Tj]YM߸ӳZ1&`E)9yEbJt[?r9y*Q^>o7TEr}rHgy8uC{f}o(K x;x31 Ē̲T/3_YPڪ[eQ. 3	x31 Լ̼TOObO.l|;d셫&`E)9yEbJt[?r9Py*Q^>o7TEr}rHgy8uC{f}o(K =ܡx31 Ē̲Ty_M8ce^zWL?k [x31 Ԥr9ru:qw<] ϥx31 ̼ԢbGVLjTٿ0脽 x31 Ē̲TitU٭9u9I T	x31 Լ̼Tmi]q{ߓ
MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/pև?g;:|E3Q p=ԡx31 Ē̲TGeo^l#7nU ʧ	x31 Լ̼TO^3V_D	ښd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7vug,=Fx31 Ē̲TӬ[rFy&4?q$v |	x31 Լ̼TMmmET~?+O;(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9`}scϬWm<e	 S:x31 Ē̲T'N|b ýԄn>' 	x31 Լ̼TS9wtݐ[Ud$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7vug,=x31 Ē̲T6;fe"Sv [	x31 Լ̼T>[?pfgMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/pև?g;:|E3Q =Xx31 Ăx@
G8M?_%cF (x31 Ē̲Tzx~e ˱]	x31 Լ̼TD/>zxNloU?ULR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/2e|LnνP x:x340031Qp
qKcؐ5KdǊ&OV2L*K*c),TV<iψ/K/`'IsN-~+OݕE[PZ^6,5$>-3$'lZPQɁWr0X Qtx31 Ĥ̜̒Txj/LyfSU^eEy%!NzWͿ<ۗ'!F	x31 Լ̼T3'c&rEN2.{{K(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪGM=8x31 Ē̲TZ;S^.
eVR荸 -	x31 ԤĢ=?O>[/i<&EEiEyɩ5a\O2-Kn*zz*DUQjNbIf~^bN|qI~Q*Ctۥa]POҔ4mO^
-i趸z\k T>x340031Qp
qKcPv{&xVӴ 2sJSR}jenbS!d&%d$de1^0[R[i 3,3Sx31 Ăx9s^<Ljvǉ&x31 ĂxL߮	1;] -	x31 Լ̼T>/]n)W&&zUB^%ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- 9&x31 Ē̲TeC~_v,z<kTE 'x31 ԊԢĜԲļ"Ge⼐$z3' D
x31 Ԓļ"T5$/`޷e&0E9AO#&*\7g
Jgo?"ӫI󷽶  -)x340031QK-/.ΉO`XC̏UlV+j]k7DS_RY
T{nipz7E p  x31 Ԓļ"T5$/`޷e&0E9zBNز[]]oFBAIbr6zBdzU3Y~ +x340031Qp
qKcX/^Ԏ(d%甦25۹ !orbJNfR^jI|qqN|^Vq~zϯ%80\ ]2?x31 Ԓļ"@9L*gu,]bST\p-ke繎Yֳ}[ʜB((ILfP/\O
z&3 A'x31 Ԓļ"ΨD^W5j-#&0E9߲&_ve='̉ lυlg?m- U+?	x31 Լ̼TD/>zxNloU?ULR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/T$|Ï: 8mx340031Qp
qKc(GrjbcT^v&'3<W//%[/8?JS[ւs-:2?#<3/%\/bfqsHS+mݰ]Y|r~n.PӚ/L<j?ԲԼ̜"jAQJF%v_"t`m 4"Qx340031Qp
qKcX^xnFܺlwE3Bd&de1\rawZpEG~@Ugėge05g~&imU\ \K15e_ۉy~mey%i9%E@=aՂ<J쾒E H;R	x31 Լ̼TSTb7uxRwEwA}siₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M 9x31 Ē̲Tf=9ώ<v{иS ex31 ԊԢĜԲļ"kw,aahܚ QIx31 Tw,z^>x2S,°e7o	JnY-D8AkRӘbTv ._Zðx&.I,ɧj l63x31 TU":PvpB^bIfYj|biJf~|rFb^^jN|Nbe~i^<L䍾`unn>/4eIiiE@ElG>>_x0K&aWԱ9ێLY_s` Ԣb;n2J>|`$OtiE _{pFҹVMS%Uov-Mу xb[	x31 Լ̼Ts7V,/#⌊y|	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ ~8ѡx31 Ē̲TE z%õے5| Χ	x31 Լ̼T]ۦ~%ĔT3:ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- %P85x31 Ē̲TRlnؒ,A Y	x31 Լ̼TWJu+f-8MuLR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ 9?x31 Ē̲T:Sk$.]t}6 C	x31 Լ̼TD/>zxNloU?ULR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ 9+	x31 Լ̼Tݫe17LR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ s9x31 Ē̲Tݑ&^Yq5Rgk 9	x31 Լ̼TSwv
9a9\Ҽ&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9:x31 Ē̲T&$͍9nQ Ȩx340031Qp
qKcPv{&xVӴ 2sJSRĝ-`rw_N'm1%'3)/$,5(%I//%[/8?ab?ݲM[7 U3ܥx31 Ăx`{Iu[uY'潩mu x31 Ԥr9gT$nnv_. pkx31 ̼Ԣb˞"br}<$MQ ux31 Ē̲TwNl>;sn 	x31 Լ̼Tc{]s64UwᡨK0+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%nN}9J/H,Zϴjb F;vx31 Ē̲T3׎-}-qe	%[*uڃ 	x31 Լ̼T;þgI	^@;Q&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9x31 Ē̲TcjN<\l[=/k u	x31 Լ̼TW7L	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ [8x31 Ē̲TK-^KwsTZ n
4	x31 Լ̼TyJ0/۩$fd/wfₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- ,k8>x31 Ē̲T֎9owT_[0 ƃק	x31 Լ̼T;W4aקP+n
[/dVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri ;?x31 Ē̲ToN.v(j]a ǭ	x31 Լ̼T.f^6yG'k{߆d$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ::ux31 Ē̲Twmo 5	x31 Լ̼T%D?,c	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ b9ءx31 Ē̲TI'6J->. -	x31 Լ̼Tƾ//T\ʹxp0K&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z :%x31 Ē̲Tw
%tcg ԑ	x31 Լ̼TZkcQU-G&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9px31 Ē̲T.~٪vN+Kk G	x31 Լ̼T<-tv9Ȅyu?ₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M !<3x31 Ē̲TS	\^-&8Oߔ ?x31 ĂxOCS"2%oquJ  4
x31 ĂԲԼ_ݡV{?|[w)&PE99:Nq{~]epOsԤt[迾bށ^/tE3:]>۹}ƹ.C`%EɩGkWW<*71<n %$Jx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2{Úܠ=o32XPZWUЧ4M}/<-; z0Ix31 ĂԲԼmjt=ؤ^Q3 }	x31 Լ̼TejYk-ޟ-Vi(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪGH7kx31 Ē̲TBtlnP#|' ū]x31 ԊԢĜԲļ"4Ϯ-J<uɖS?x mx31 Ăx_͛$g|]5lT=' ͢x31 ԊԢĜԲļ"^?38֧ţm  #`	x31 Լ̼T8TkVo!"Kₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- "9_x31 Ē̲T]|xGݞ21S; ~	x31 Լ̼TSSh0h?M;hO+MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ 9x31 Ē̲TL!l1W>}uO Rϧ	x31 Լ̼Te9Mm}{;St	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ 8>x31 Ē̲T*Lhyb45 0	x31 Լ̼T^+/?iQBZ&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z f8šx31 Ē̲TqvYǚ[* 9	x31 Լ̼T}ykM-bkVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri 7x31 Ē̲TZ[//<<ٲxfuƒ+ G	x31 Լ̼T<᫫v?aZn&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z q9rx31 Ē̲TUUf1kxmWdd -	x31 Լ̼T{"}na?z!Um7kMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ ;Lx31 Ē̲TRNi<7IWv "	x31 Լ̼Tj('<1G&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9x31 Ē̲T`酋<_fN G	x31 Լ̼T+>q8lߚ60+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%nN}9J/H,Zϴjb ;[x31 Ē̲Tk6d3[>HGƻ n	x31 Լ̼T~7NMY<^>Nd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 +1:_x31 Ē̲TrL94S16r3 rx31 Ĥ̜̒Txj/LyfSU^eEy%w,۰0'}|MWB!?	x31 Լ̼T+?ޙz߂6oښd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ;kx31 Ē̲TmMKWZܬoɩx31 ̒b(__>Ad7Zs Qwx31 dGk3X}<Zʿ 	ݠx340031Qp
qKc~m~X؁p&Og^6kb 
y%·ޗp[NSB +K*c;yWDz0 Z-%x340031QψO,/,H`'"tU3#pl=23$>71/1=zG5%RGV\9i:Buvje|r~
X;*x+)|NQ!Y ~3	x31 Լ̼TE>O,/U35^(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪGr7.x31 Ē̲T{/4ݔ>Ei?c ٧	x31 Լ̼T_Oq=CUrWud$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1  9x31 Ē̲TI*f~e2; 	x31 Լ̼Tqj߬9Xm&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z #:x31 Ē̲TzKe8uwk m	x31 Լ̼Tw?sm'&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 09x31 Ē̲T}u7,zuR߁I
 }	x31 Լ̼T33<^n0+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%nN}9J/H,Zϴjb );$x31 Ē̲TYDY}㻟 	x31 Լ̼T:%6LW/ݡlqMkeₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- 7x31 Ē̲TL?,d4YXyD ş	x31 Լ̼Tɱ	aںOtF+ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- v8x31 Ē̲T%GSIu|rq 
]	x31 Լ̼T_uWͩ; maₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- k-8ءx31 Ē̲T*fHww|~rWmV  ٨	x31 Լ̼TcU&OL&UٻN&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z x8x31 Ē̲Tqjɂ&n6  Gz	x31 Լ̼T*sPxWMLR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ ;fx31 Ē̲Tk_~T=Ν\Kٗ 
	x31 Լ̼T+|qTZ<ش{&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9)x31 Ē̲TuO8{!8 	x31 Լ̼TUEz.SZ,WZ(% '2>71/1=aBL6w5wkҞ]nz=G2/ WD&#bbt%@3RN8xa]eg?Xdj 9x31 Ē̲TMy-ܚMOgy قլ
x31 ĂԲԼ\Jq;Yo4*JLe8q+D޳O*{X&3l<W7GvzT3O*{u"'KS֮)xpYUocx zI`x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2(_E{J?@})nDC)9Iey%zy)zYy}O$'>y̳{2 b.<x31 ĂԲԼsA47:J9>tz 'x31 Ăx#&+)*w.;=kC [ާ	x31 Լ̼Tܹn(_#߹`	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ I8x31 Ē̲T>4׳}s6 /	x31 Լ̼T?jN=Km3=&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 3:Wx31 Ē̲TI?c)ܩt%Ko x31 Ăx)ub;VFxǾؙ g	x31 Լ̼Tz]v*c&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z Q9	x31 Ē̲T'8cGH9 	x31 Լ̼T?zM)0Ye/Z	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ .9zx31 Ē̲T;zZ]ޛ-;3OSNF A	x31 Լ̼Twmg#nHvₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- j"8ǡx31 Ē̲T/rgܛy*M 	x31 Լ̼Tzu{ύWC
Nn*tO]XaVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri 

8
x31 Ē̲TC/mxcr<`Ӓb u4x340031Qp
qKc]v5̻OL?}'r!DMJQbz|b^J|JQ~^~hW]S{)6UT<1)'5>%8($a㗟k޲SLjLJLNK*c:|wfh9krUXY
tHfnbI*֞󋧩bK4U32ZMT)9@bG6||3Q7AIrJSKJ@ƺo:$"Lڔ ~Ty%Ei wg0z oNa[O;E7PZ\YR	{=*x>0޴b?.Vg-~4LXٜ)Kಯ"9? ?/5zB!K_As5+7?P5fVƧATɕqg#x7QU姀֗dYܭgJj_TX	T{YM-^$ UuIeإV^qoږ0wX˩U!s;eV\hy/}ʜԔ⒢<P鶘!4o?6`O|J33
JK!sX_iUj[>}
 e!J	x31 Լ̼T}>s덫kܯoVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri f<x31 Ē̲TG1\knڕjy|g ɿ	x31 Լ̼TuZgEmpi3ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- k8x31 Ē̲THz-Mc|; o	x31 Լ̼TMu'0O%Wߙd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ;f:x31 Ē̲TufdUgyI 	x31 Լ̼Tϭ/>ieN&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z ? :x31 Ē̲T_j/;~3*.{K ކ~	x31 Լ̼Tiz?=羸{WL4+J,.IMKLO-bS]ݚ餴|^K,d(Z||7ZFG4!y)ps}'0ಳ_\bf	 K=šx31 Ē̲T,Uf7aV6z톲 Ѣx31 ԊԢĜԲļ"i煉KU[⹦e +	
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22=i${ݼZ 'lQo:bk2~TȹY Ax31 Ăx{|4ĿaS<o
x31 ĂԲԼVi>u9fbsfTFlVqP$%54A遊/7+Zl\L"'?!~R^هd=y&_RpvuNڭ-} 1Fƥx340031Qp
qKc|;#7E&@Sʠr\Sv,~g~o!Ĕ̤̔Ԥtl<}Sx~ةm?5Uxԯ ͏0x31 T[vۃ.SZp4ivQf&&)zf}?^]!YH>I]Y|r~nn~P%z>%nן^hpc(Sf{,rz/ON|4HUufEjN|nbTÆؓ*~5AqhK,:ȌA#}jGYO}sEGQjrjfI?[q1
O<GQ__Z
u-[W߯R{ac I5Gx31 ԒԤ}g޸ٺC% % 2x31 Ԥro&N~Ϥ  x31 ̼ԢbS\z:sÄG\;~ 	T)x31 Ē̲TIq3$y2j] |0	x31 Լ̼T77vXڻ~m.d$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 e;x31 Ē̲T\ϳOoǟH~/_X% Ԥ	x31 Լ̼T'{RghdTS	&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  ;ءx31 Ē̲Te+$ߞס}di;tTu o[	x31 Լ̼Ta9:saMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ @;x31 Ē̲TᲓnOew￶-z[ȶ	x31 Լ̼TU.7`PgR͹xwƑ)9&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9fx31 Ē̲TNw풬W\iZ~yi= Tx340031Qp
qKcPv{&xVӴ 2sJSR~yo4QɄ;\O12XY_UP4ESI^NȋS -/|	x31 Լ̼T;+Rq9>4d$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 {;x31 Ē̲T
pN)-/ gx31 Ԥrϼw2~-Q^ä ؞x31 ̼Ԣb%ҧW	5sΫ7Q(y* x31 Ē̲Tg6FO]t[x.-	x31 Լ̼Tfwe3U^6CX&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9Ρx31 Ē̲T=;ߞc_?[<tʝ J	x31 Լ̼T樉zN*M;&$#}kA	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ 7ԡx31 Ē̲T[iO^_?+pAu+ ҥx31 Ăxڊ\xH2#Q6 k	x31 Լ̼T]bؾYݐ;rₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- 9^x31 Ē̲TYuz+koWgM[ޠ zx31 Ăx}VJf6=P ~f K	x31 Լ̼T*%ewp|)қxkMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~  9x31 Ē̲TM8'M" p	x31 Լ̼TH5m.CJwₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- t8x31 Ē̲TX߹ux'Ǯp|V $:	x31 Լ̼TX۱|-1E?-mVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri ;x31 Ē̲TՓS|":EMyM^ w	x31 Լ̼TEvMdzspbNw?~fd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 <:x31 Ē̲T+7rdA}ş _x31 \jGC׬ݿYLEM ()	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez_=x)8M$%@u~+l_uɭ.'3	lX^J^Vq~ri?U/V/X`V Ѽ:(x31 Ē̲TżM=N{1RS? # 9x340031Qp
qKc{2}?Esr&3f{kb 
y9)L|*W­Sr2JSrRd۵W&ojW 'Z,x31 Ăx=_NʕT|Ďg{, T3>x31 ҔdFmo~w?`]i	*"_:xySR TxOG_0-_,(3/-!#tMqS2]'lh``fbXvW<ԍyy99%z>{f_>ӧJr3>%5W㈇ҶC{aj *˜qf%)gZT%2fM[ũ5/Ck!J KJ,Nexle\xT
#/$,5ĂĤ̜̒JT`o?Y֣I' Vu=>麼:ŉ1m[5G4΀?ͳLXpq7_PHG#4
癿v j*x[T*^i22SRA^%+/[OPu}/Fmx4",5ˇiNz_IhpPcXAIwx-ܻ]58q ծq٨o9#Q}[JyB	P[A|?|2?jΓ?QÒ=P+^=[k~L3*prwhi;TYfkV"嶧ߵ}g/]s|c\ b	x31 Լ̼T_F˲\q7pUd$V&%1L)ntRSMBT%d2Hz$zXL׃N;<tyf^J~9v	/L++Ym =
x31 Ē̲T٢y$lZW6; vx340031Qp
qKcjk׮ܦ.]ff PK)MIenٜqouNNxLbJNfRFfr~NNf^^J^Vq~[ٯl?>i욾J &1ƣx31 TgWnZE-l _x340031QLL`:6a/~?=N/ x340031QMLOO`p>u?L}C]XTU%dUZZya]+xp45,HLN-BhQ(I+oh(JMN*Ed[{N9o8(Qu!;~nfeLk2 3IӻlJ[y0җj+RsrZzVtoz 1Jh	x31 Լ̼Tޤ^i;X*Z<W]'	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ <8x31 Ē̲Tޯ.;tqГgO- |x31 ԊԢĜԲļ"[Woyj|eLY \	x31 Լ̼TIU\׹	E9E~wwnVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri 17>x31 Ē̲TϚ?q*۝Xr,e gx31 ĂxC/R>i2uW Y	x31 Լ̼T?Oluu7yīgWd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ?;x31 Ē̲TS[}=r
)j; 	x31 Լ̼Tc~pvǱyuԟ&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z @:xx31 Ē̲Tk~c5x;Jz$	 +cx31 Ăxc?o~ծzn[ 	Lx31 Ăx&#sl(>br[JC( {x31 ĂxK~~[ާ>a53  ]x31 ĂxoLL2Yu2O x31 ԊԢĜԲļ"[/n+ɿ{/.s #6x31 ԊԢĜԲļ"Ґ%/Ҽ:t<\ ,ˣ
x340031Qp
qKc|1!Rx^i;-75L*-NK*cZc#QX,7=SU
TXp{J> wiТ+T޽kj^+d>	x31 Լ̼T穭?{=ys{JB&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z :(x31 Ē̲T%<ҒV  οdx31 Ăxb*{Yޟ%v] x31 Ăxγ^3n]td+/{ 	x31 Լ̼Tu>D8qi2gctMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ ;	x31 Ē̲T/:[0_# yç	x31 Լ̼TY/tN[]y%1Ҟܖۮd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ;x31 Ē̲T/se 	x31 Լ̼TIpM~N<k_d$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ~w:x31 Ē̲T'(/[R$MN'" ۧ	x31 Լ̼TiǾj(\tuJϮ2+MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M D;ۡx31 Ē̲Ty/EEv11` rY
x31 ĂԲԼGl;*.۴N27ֲs&PE99:Nq{~]epOsԤt[迾bށ^/tE3:]>۹}ƹ.C`%EɩGkWW<*71<n Ix340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2,4%v޴&}4XPZWUЧ4M}/<-; /x31 ĂԲԼG:y?o\0ͱ- Hx31 Ăxɱ'_f_^J짪3 dx31 Ăx}!nި%O 	x31 Լ̼TY^/H֕.pV`=	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\g͉߲ Y%WVM?Z 7.x31 Ē̲T]7v/^>soS 	x31 Լ̼T#zSZ/=9ł,MJₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- 9"x31 Ē̲T_IYttjIsPLx31 ԊԢĜԲļ".,zVl=dqq Vا	x31 Լ̼T=ZVm&'k^4+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%nN}9J/H,Zϴjb A;)x31 Ē̲T9V&ysY=<w\0 0x31 Ăx⳻_T<r)'f*^ 	x31 Լ̼TW;tx.s]7[uN	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ 9Lx31 Ē̲Tg߳ޟ Ei	x31 Լ̼T>/
ZuFbVY\XZ0!Dg5IiO.7#
QX+"aa1G\:x y)ps}'0ಳ_\bf	 P=x31 Ē̲TpvJz|ՔW x31 Ăx{o]i/Z  +x31 ĂxIoWj> է	x31 Լ̼TE߆׵
׍yx_֭ųd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7'~>fOx
$\gZ5h1 ;-x31 Ē̲T-ΝJcTj-&\n >	x31 Լ̼Tʮ-gY.6(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪG78x31 Ē̲TREG==J\~o{[G x31 Ăx3x?X9/L3޾_* 	nק	x31 Լ̼Tiے=.tDA&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z _V8x31 Ē̲TO^|$us#& !Үx31 Լ̢Լ.T,? c\L0[̜ҢL+U8e^
\q5|)O|cSsE*_$/n6-~& E8	x31 Լ̼T5}bm]*+(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪGX7ԡx31 Ē̲T?r{=-Ųݭ`sQ gx31 Ăx|N-%{367 [	x31 Լ̼TY'%YA[3MR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 <x31 Ē̲T3%_3:JQۻdyS gx31 \7WWXdwv1', x31 ̔Ԥt%6O+nirHuG= $x340031QLIM*M`W6d3͂'~vW!ʂT2?n>;_듚: ̧	x31 Լ̼TUN[/魿(2C:&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z 9x31 Ē̲TO7f5
}>jh. ȧ}	x31 ԤĢ=?O>[/i<&EEiEyɩ5a\O2-Kn*zz*DUQjNbIf~^bN|qI~Q*/IbE_~e4%7a[~xBK-} <ݨx340031Qp
qKcPv{&xVӴ 2sJSR~NYoޖy/,~8FC)9Iy%eE)Izy)zYy&?6eo" Ȳ5	x31 Լ̼T[WuK.eiKx)&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  ;Gx31 Ē̲Tq\缙',9|2 	x31 ԤĢ=?O>[/i<&EEiEyɩ5a\O2-Kn*zz*DUQjNbIf~^bN|qI~Q*	vvU>xFQU!JKSr>Tw0;֯%?1 .?x340031Qp
qKcX6fpt>><41 ̼ҔT]Mۓ..Oyեd1%'3)/$,5(%I//%[/8?!-\q%y_+t^n- +2-	x31 Լ̼T-cjhcJ.=>Sر(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪG*8=x31 Ē̲T9"KHm^鿯 	x31 Լ̼TB6,/j7Wp\d>9(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪGs8x31 Ē̲T-~<uvjh	x31 Լ̼T7zT:7`X[$fVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9ܜ-r^>)Xri ;x31 Ē̲TU"n!8 =1x31 Ăx}u}G\_QfT 	x31 Լ̼T"+[q|.(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9[0+|S j=ӪG+68Qx31 Ē̲T=yl<\ib ϥ	x31 ԤĢ$\~}nnԴԢԼb0'^%7IZ==(5'$3?/1'$(G;*g<\q*~)i*e;]{ג埘j?Kx340031Qp
qKc?cKV'5g;w PK)MIeٱKg#ݩ)_N2TX\XU`hCR.;.mo~w8^  <3lx340031Qψ/H,.IMO,J`qK4{eB
7͚kEi|jQQ|r~J*PϪ?;<kGwo *_	x31 Լ̼TV\'g^;78	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ ;-8nx31 Ē̲T_M=O Px	x31 ԤĢ$\~}nnԴԢԼb0'^%7IZ==(5'$3?/1'$(aLK+%ZعRz4%7C#~cZs9 ;	x31 Լ̼TKJ|~J3OoxLR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M 0~<x31 Ē̲T9n>ӽoֿ楼9 ˛x31 Ĥ̜̒ҼTږ%^^7EϤ՝ B~7	x31 Լ̼TO>>vcΕ:L{LR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/eA'<K3~ :x31 Ē̲TU&|fwdYS:x31 Ăx>wn)se* 	x31 Լ̼TgպLxfωǟ$6+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y =x31 Ē̲T3T:Wܹ h	x31 ԤĢ<(˔9IaԴԢԼb{o8|ݸ=<ge0CT$d%2M2/~;dR JKSr>Tw0;֯%?1 B=x340031Qp
qKcPv{&xVӴ 2sJSRjmwhe!d&%d$de1^0[R[i ҁ1x31 Ăx+KμZӠdZ3 1Q	x31 ԤĢl_zbBD9䟷]^`hQTZZP$9+߂2IBT$d%2ii<wDy;C[B1|ܗtad=v_Kb.7 ζ9Wx340031Qp
qKc?cKV'5g;w PK)MIe<Y|un!Ĕ̤ԤĢl<Oʞr~9#-2x340031Qψ/H,.IMO,J`&yxkR	&JFVbQZT
c_jW?6
]8O) b@%	x31 Լ̼Tӏ\bVZS"vG
{	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& (39x31 Ē̲T䵱
~m/2V2 ŀ	x31 Լ̼TJ[>ouU'/3U;!t	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps3aVz@bzUӏ W9x31 Ē̲T^.E::#v[ۏ 6	x31 Լ̼T#ίYN/G-ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- w9Ex31 Ē̲TM^\-y_Jym =@	x31 Լ̼T^sn({?ɲ|&`E)9yEbJt[?r9y*Q^>o7TEr}rHg͉߲ Y%WVM?Z ˪9x31 Ē̲T>,O5|g{q8  ē	x31 Լ̼T]];|Lₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3Rogì	OĒL- X8x31 Ē̲TU
9?5n`G ?	x31 Լ̼TUٵf^|{ki	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& :x31 Ē̲T59>qWޙ{#	x31 Լ̼T]WZ&hլn~;w~ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3RN8xa]eg?Xdj ;Cx31 Ē̲T؛7v\#g~Q)u Ӧ|	x31 Լ̼Tۿl92mƋ}~)5&`E)9yEbJt[?r9yE+8boT+H&D<3/%n&\vs[L֬6 <dx31 Ē̲Tu7.OPmx)`ҼH[" Då	x31 ԤĢ<(˔9IaԴԢԼb1Y+;U: (5'$3?/1'$(aLK+%ZعRz4%7C#~cZs9 -&:1x31 Ăx=ӨU%crq<bR 5	x31 Լ̼T>QdW͖i&`E)9yEbJt[?r9y*Q^>o7TEr}rHgap~raɚ& Cm<-x31 Ē̲TBY8CD Ǩx31 Ĥ̜̒ҼT_B;˛*	MtVe} C|Fx31 ĂxGt5_Xu% Cx31 Ăx%.N_/{R,5_g]+ i<	x31 Լ̼T7zT:7`X[$fVY\XZ0!Dg5IiO.7#
QXɠ"i6{>{CU$'g.tyf^J~9v	/L++Ym <	x31 Լ̼T/nS,zߟ6Y!v}nₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3RN8xa]eg?Xdj ;>x31 Ē̲TTb_gXm, "	x31 Լ̼TSu|~nߥX7h~	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps}'0ಳ_\bf	 kQ:vx31 Ē̲Ty[z:dIإZgm 
x31 ĂԲԼWS	/=*D鄚	TQr~NNf*áS\&m}:_W$%54a>ֿi<w "'?a̸-evnqK |IQbr*:.kM Gx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2Xf?а6Vb!d&ed&de1i<Mt`2f5~ /x31 ĂԲԼѷ'-æn #x31 Ē̲TCl9Nݟ^t㵼 ʧ	x31 Լ̼TyU8}s0fύ>&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  t:x31 Ē̲TN7v|>ފ}/ 2x31 Ăx+g%p.3yW Sy	x31 Լ̼TYEyOVc/]_bₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3RN8xa]eg?Xdj ;x31 Ē̲T5
adĿԚ	x31 Լ̼TYO+8ؼ*IoMR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M _<vx31 Ē̲TǴ-Q~V+6 ٧	x31 Լ̼T,>ri:1
Q_$MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M *;x31 Ē̲TQ	[ה30S i	x31 Լ̼TfsB/#&`E)9yEbJt[?r9y*Q^>o7TEr}rHgap~raɚ& k#<x31 Ē̲T0խOC5X7Ab9 	x31 Լ̼TT<<Gk]M#{LR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M !;x31 Ē̲TK<'>r_|yKUYbۃ 	x31 Լ̼T6K&˝?;^(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9^pWp/V.l1Y ?X:x31 Ē̲T|F[sDލ: _H	x31 Լ̼Tmٗ|VLlq6wEₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M :ҡx31 Ē̲Tc}m?IM|<YkcN;^$	x31 Լ̼TiuJOK.gWs\`	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps}'0ಳ_\bf	 8x31 Ē̲TLלlto{ox31 Ăxz]'?;EW͵7 x340075Up
qKcxébv{Zn4];t` PKf(P;.i|imrO!&d&%de1ԭ|wĵZbځ/2٩E S0x340075UH,.N-O,`by)ٵIsEy"++,H[$rpRw׏WϽ b	x31 Լ̼T^g5`7.7+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%n&\vs[L֬6 j<x31 Ē̲T)4їH<oO, x31 Ăxۉ=lQv0!)P X	x31 Լ̼Tm<;/cPzyw^CgNژd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7w
.;9ʅ-&kV  ;ܡx31 Ē̲T=,txU 
x31 ĂxOħE{=bx. x31 Ăx.yT]djOٿ 	Px31 Ăx;r
i",wD}c Cx31 Ăx/kYCw{ /	x31 Լ̼Ts5*Ԥ?Y/f#(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9^pWp/V.l1Y 9rx31 Ē̲T;{ϭ'޼R ɧ	x31 Լ̼T+*?L+;+ₜļ"	1%:ܭNJ{wQʼĂLe(NC">9sA3RN8xa]eg?Xdj gQ:mx31 Ē̲Ts(LˍcveO 	x31 Լ̼T>?]n^M5~tUcv	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps}'0ಳ_\bf	 :x31 Ē̲T3.^t(4̓ <ߧ	x31 Լ̼TYE_t̳_<+(% '2>71/1=aBL6w5wkҞ]nz=G2/ AYE2ʫm|HO\̼r9^pWp/V.l1Y ;sx31 Ē̲T>3v\$-< ʍ	x31 Լ̼T=,jL>5zŏ|>{Wd$V&%1L)ntRSMBT%d2(HFyu͞Pə"]_7w
.;9ʅ-&kV  ~<x31 Ē̲T3>FwߒjZ5ןgC} 6	x31 Լ̼T:wE^P=(ͳ,Fm	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&dWU\ y)ps}'0ಳ_\bf	 {:x31 Ē̲TU5w1(HJo 
	x31 Լ̼TRm5Te0+J,.IMKLO-bS]ݚ餴|^K,dPV4y=*3D<3/%n&\vs[L֬6 8x31 Ē̲T}W;>1}N4WIԚm tv	x31 Լ̼Tx_4bF9ػoLR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M f!<x31 Ē̲THe4zn޻A(%+T 	x31 Լ̼Tg?^uMR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 <̡x31 Ē̲Tߟd.wϵKI5̴ V	x31 Լ̼T=A^Iz`_gi7MR2r+sS&ĔlsWs:))sD!*2U$:}foo.K/;	wb5M m<x31 Ē̲TR5w,BS1 L	x31 Լ̼T'N=K~UjQe6&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  =\x31 Ē̲Tl9gزA5Q 	x31 Լ̼T=A^Iz`_gi7MR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 { <٧	x31 Լ̼T3K;RkkOŏ]LR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 <x31 Ē̲T˽f;] 	x31 Լ̼T"uRן6[&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  -;x31 Ē̲TZ}y$fLMdl ;	x31 Լ̼TSsON-'8(% '2>71/1=aBL6w5wkҞ]nz=G2/ WD&#bbt%@3RN8xa]eg?Xdj `:bx31 Ē̲TnaGJ;j;w (E	x31 Լ̼T7N\-ČQ>Sₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M ;=x31 Ē̲T߀{ar^aN %&x31 Ăx%N?}^fZ:Y]3y O	x31 Լ̼T떼,{ۧsc׃7_ܴ5+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y =x31 Ē̲T.~:oӋH pzx340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?AʡÓ}L4ECM,^\}' E7	x31 Լ̼TNeܟ:H[ߐk=&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  ;x31 Ē̲T-=\T|`Wc ?	x31 Լ̼T((fѢ T;Kd$V&%1L)ntRSMBT%d2Hz$zXL׃N;<tyf^J~9v	/L++Ym ^J8x31 Ē̲T$){jX,sM|"9 q	x31 Լ̼TG<:&cgo0+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y F=ġx31 Ē̲TW-x'п= 	x31 Լ̼T;+dprÜrv1+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y =Yx31 Ē̲TMuMvV= g
	x31 Լ̼T>M/<KΛL2+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y =Lx31 Ē̲T:?w É#~ǿ 	x31 Լ̼T&YoLWN;Dpplbₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M :x31 Ē̲TUY</}ϧ	x31 Լ̼T;?]CN{8_n6+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y @=vx31 Ē̲T'?<WWT)ݼe</KK J	x31 Լ̼TYsSV7)H\{	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& M:dx31 Ē̲TIwZO.?le 3	x31 Լ̼T残&nySe](% '2>71/1=aBL6w5wkҞ]nz=G2/ WD&#bbt%@3RN8xa]eg?Xdj :x31 Ē̲T[>,#SzM8+ |	x31 Լ̼Ts6'l-{mX	XQJfqANbe|nb^bzjÄmjO'=zTe^bA&MޫGq=KHgap~raɚ& ,:	x31 Ē̲T'?'vn@嶫 ϥx31 Ăx52蔨jNUm +ԧ	x31 Լ̼TzA]f,u 	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& >:Zx31 Ē̲TIzǿ~ƜE	 Ă	x31 Լ̼Tl_]"~~Y(% '2>71/1=aBL6w5wkҞ]nz=2/ WD&#bbt%@3RN8xa]eg?Xdj [9x31 Ē̲T^V56^qvF H	x31 Լ̼T%R{VlYfxt!LR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 <x31 Ē̲TZ	ϝO񿙻Pܗ%H<' P	x31 Լ̼T2fvmuT5V}>bVY\XZpo͒*/ȴj(~<3a>De^bA&C~[q<J6:h	.K/;	wb5M 0<]x31 Ē̲TaݲehvY˗Qx x31 Ғ̜bv_*柳aO?R 4c[x31 ̤ҢĤ\Ї2۵(3yi+:S Ifx340031Qp
qKc?cKV'5g;w PK)MIeTΙ=]O>[t!Ĕ̤ԤĢl<YKH;aPv_߽Q~ d4x340031Qp
qKcX6fpt>><41 ̼ҔThsbN!lSr2K2RRR^H%Mr /x340031QHI,IO,.N-`Xg
k<7oφuɥEE@e8V{ʴ=^'+@(+(JMLN,I-*-2uSՓňwfMҲĜd^5u>ㅚ"Dd).O*M;vYZ
1
gs	TuQjNbIf~^bN|qI~Q*P}O)7Ӂ=Ԣ]4h׉ZSTM "`x31 Ăx''%O.|Đ=اoI %x340031Qp
qKc|;#7E&@Sp䃻_5ܶ~ͫ\ie!Ĕ̤̔Ԥtl<}Sx~ةm?5Uxԯ <1x340031Qp
qKc8#pvG۽\um
01 ̼ҔT}_HR;S!Ĕ̤̼ҒԒl<lC3>Sq>
 //x31 <nd/ygfsaigL ʊSK*e\w`>yۖb9cV[+h~[ @+}x340075Up
qKcxébv{Zn4];t` PKfPP?́6A)sC4,8BLLJ,.N-K*c[kĴǽ_eڳS a.x340075UH,.N-O,`8R}+bĿ-.g %>uQsUڏ !	x31 Լ̼T׳'j:K^|y7-j	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& qk:x31 Ē̲T[燱vj˟)ռy~ W	x31 Լ̼T:q~Б|	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& ;x31 Ē̲T3ge2;-E܏ Վ	x31 Լ̼TYV3<SRjQ^y&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  U=:mx31 Ē̲TNLQ]eʺBWu Gx340031Qp
qKc`?햧m]6r!DMRiZZjQ|Fb^JN^ML>PlTijEIjQ^bN|yf^J~9Pq:х2q3}\ĂԢ2bw˞&{ڟuQqP9Iy%e0Rc혽Mg[~Y rWx340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)lsM{^Խ&sBLL,)JLNK*c8ft+fc>Q-A' ,#x31 ̒T士_jfG ܜx340031Q()JLN`jOW'.wݗmbZ Sx31 ̒b)ik5>(s>OP9 x31 d'{[?_/u )]x340031Qp
qKc~m~X؁p&Og^6kb 
y%1\o<Ce!fgde1pM~.lՊ]甊. +áx340031QψO,/,H`'"tU3#pl=23$>71/1=zNٚen`FwUn;VRB' f47x340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*ClK]^J2J޺w-Sg.. H0	x31 Լ̼Tk2kw8Xcm*sₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M ;$x31 Ē̲ToI*_T⟮HQ' ҲЧ	x31 Լ̼T狀^U%w$MR2r+sS&ĔlsWs:))sD!*2V3p8jVёDMtyf^J~9v	/L++Ym A=͡x31 Ē̲T]&~u>LK\
 gx31 Ҕl%Ra:2
Ir/K2,OOIMfX¢ئ?Ľ#8g19"dڍj7dj(hUQ"gatwڷwa~ JSrԹg}S`$rzrCe&Ƨ&0%*-/h9]		G!ti7*
ךd˷=	Q	tb~i^Jb	;:&֣^1o-_1d9IEE]R>\4,H '2;{wW2J"_Sj{YfJj~|AQ~2(0S3Rzg٤odfZggߜ mGc	x31 Լ̼T3{7\\MR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 Z<͡x31 Ē̲T?&?K?Oa{W{ L	x31 Լ̼T|9ϟ;[vt(% '2>71/1=aBL6w5wkҞ]nz=G2/ WD&#bbt%@3RN8xa]eg?Xdj }>աx31 Ē̲T;Wzʝ5->˸^i4 1	x31 Լ̼T}d] SmI[Od$V&%1L)ntRSMBT%d2Hz$zXL׃N;<tyf^J~9v	/L++Ym rd<x31 Ē̲T뢗Υl,XW[ cx31 ]Om.b?Ita~q|nb^bzjö%u:oOk+  Ь
x31 ĂԲԼ3F0?:^oW[B	TQr~NNf*[6Myxw
8(STΠ@ŗI{-g\S\?PJm׉CS2</)JLNe(nbP`輗廘wk [Dۧ	x31 Լ̼TVO:=sw/nSVGL	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& ;x31 Ē̲T,$yHސ9cY? JNxU{LWf1TAHxl@yB(K<Vf/083,( X &.
Ղ`A4@Za!`I@D)kgi䞜sg04L0Ƃ"eUugsMQӊ>;G)VC)QVFM}Z?E˺[mWjq>0oظuL_.?ePgg7>2$O! 'lsD,kcu)yoOތoq|LP|!?)pRhOEڠXͧv!H f.OClۮL}EU5׆_h6`	'Q\H"c#j|6O8~d5:(ʅmMKɪLnӅ$,F@nJrG#|ۯΟɧS2z*yGSM\(p+uϰ/A˂}}-EqH $igX_P;;*%)c4Be<[#Bi˘cXKP,FXHv݄nXK1q(le@ovxRTldwbK4\cZ.K=w/з/Ή$l$Yi<z~̛t)GR9K.DÕ3*CA#FlJ:j~-k)XI`!:R3'BᲺ+.Mr3ߜCH0j
<oz:ibHJƂ?,͘~sBy;VE$!.% (kM]Õn)hwLe$x-b[_[)TUMaKn-ͪo]_4w7hXC`>6YizJ3Q2zs
,Ï`&hYbQ-B2Rbg"&}>pf`N(esBPةåN;v8qYU,ǜӸ)o]xJ[DOmMNo~JչCS![Ɂco 57_RAx31 Ĥ̜̒ҼTkpYg| Bmרx31 ̜byoT=B.!ӍlR /Nx31 ҢĜԒҼTeV>ZP%  Rx31 \Qx%I7>I px	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez\	ň<,̭ᔸ<IIE|IeAj1P߮j/-H)z .'3	lX^J^Vq~wb:WJ/, ׸7Tx31 Լ̼T}ikػى'(/ *oVdH3}Z7"]_Z0=~2=y *x31 Ē̲TpMVYef ~*x340031Qp
qKc!fia+ڝ7~n?<Cļ+BY^+x]ճT\MnBiybRNj|JjqrQfAI~PC٦E6l1+)״0jLJLNK*c|r{Sg>9/Py%e@d&ϰxQds9|16%31'?4)	O:Wu8kn-DUZ\RZ2I˷*(~w̼Ԣ43RN=wT'-ܧpH-K+j]A4ˏh1/?d1.NS2`72Sa|^bA&PڧVyvHGx
K*@~x;|aiQ2í>aks[2,.IM/.)જw+uuVc^P)(-{GGNʽ;*;ojHA ,x31 ҼlMڷV/io;s! c%Hx31 ҼT{-	\^[0[na x340031Qp
qKcj(wYk..K<NY3 2sJSR7{/Qik\BLLJ*KIK*cTѹ+fNx ݁-ߥx340031QK,,K+I-JKLNO*KI`Hn.}:S1Bw
 `x31 ԜĒĜTE
äĭLJKSr&͚ԝX2${8gn  &Jx340031Qp
qKcX6fpt>><41 ̼ҔT'X^CwЉ5!d&%d$de1dthXrOz^H  a0x340031Qp
qKc{2}?Esr&3f{kb 
y9)K,_8]mqWȴqf{Sr2JSrR)1Om}+; '+զx340031Q(MM`͠|SVm5%o
b4DO-*OOI*xmtv2z!+M-I*s	,WE%ÕTڤ-q.WSPThvd&`+^	} "sEFx340031Qp
qKctH{e:/ۭ71 ̼ҔT{
cz{1BLLψOI/-K*c(jc1t:+wў  .ѩx340031QψOI/-`rI
8Ϥsb Cx340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*BU"5U߰UwfC)9Ii9Ezy)zYyZ7M|tKc$/</ -mx340031QψOI/H,J`\{ww̛j b5x31 ҢļԼ1vb'\8P ۪
x340031Qp
qKc*!jz"_+Zc+&@SʰvUmM==䄺8,BLLK,,K/J-M/K*c`gU2Nv?sOHeuVFh*J,OIE(7,{d֋ɦJ^;o礼A& =x31 ĂxW\vZLթNV   Xx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c8:q?CSUoT`PAѐpW!./*r2pm/! 2
x31 ĂԲԼ3F0?:^oW[B	TQr~NNf*!_*;op'BP0!LIJjRi:tئjnU/;ܐtekY	,T0	wke'V0JSlXFMq,/\Nc] 7FJx340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)7Lmf^а)#rGC)9I%Eɩzy)zYy'یnŬ1~'j%ar ,ix31 ̒T_Y^I\ͥ&y{ x340031Q()JLN`)Ln)eYο8 dx340031Qp
qKc0q]pB?|1اmb 
)ɉ%EEܚٴCkjo
sӁ&2j.ȑT|t%sZduEy) n}oϹEH}QZ+IԷsi-68??:lbZk޿ՋIHd_ڣ/ 9ax340031QK,,KO,M/JKI-J-`Pʞ3ug8'e9_>9 Mx340031QK,,KO,M̏O`8*^pkUKbѐZX
ԕ[>WU4NB?^(51)GLs?wY85%f椤dɵc׳+fl =Ux340031Qp
qKc|Ï7ʱkַeN5INM-J`8V]kf}YlT5y)zYyAaWeCT;(JSR2S^ɔ}RlNXoNv)EUWPZTytؼiaGUZT;i̛*LkU+l(5883?AQ֕O¾ZTqnjIbJbIb|~i	RVraUԾnOP%&(95Z|$LeB=GVVd*6z/xo{jmؾ+u x340031QK,,KO)ʍO`7LzWuoMfΆSjOOI*y˫khNYmH #ex340031Qp/֫().I-.˭,ȬHM,K+)frRvӐw&')E/=/?k-iz)_{1TMne<ؼxK%{zZjUq
P\g}2_]kƴ+ G	x340031QMMLO,.N-OJ,NON,`l.M EGnb^bzjÓƿ$ue1-*"bJLfqS_ :Gx340031Qp
qKc?v/4v4LMMLO,.N-KMLO-ON,K*c=ݕ=W1u; E2&x340031Qp
qKc|Y}^|!jr2
r+SRnr/y3[o Ix31 ̒bb_]Q<6 ׬x31 d-B9⚏2tf0 _Bx340031Qp
qKcH)ZXigwNJ 2
JK7&zmoͣ~B +K*c8HP_\f9B= 6.x340031Qψ+(-MKLO-`(e[?up@cY2p٩)@sk
\4?/ x31 Ԓļ"]Dۺ2_8jiST\p+OEŏ^Uv;lg_ܖ3bсmo﬘ a-x340031Qp
qKc ḓ>FTc Bf^rNiJ*gcE}Sr2RKRK2Rg^n|v6.}}WSj '3ģx340031Qp
qKcX/^Ԏ(d%甦2Hy~uy{.V4bJNfR^jI|qqN|^Vq~^[0o?Wj6FZQ .ڣx340031QK-/.ΉO`p>ԏ,mUǔhK*Rjw,`L}m n"x31 b?KttlMta~q|nb^bzjogr]zw5e}O i[x340031Qp
qKc{P!QBEǯ;&@]˜KO60X?'30X//%[/8?!Gg_qBloF?(}* P.x340031Q(/`byoU#_eUHu{ 'x31 N-9Zҋ'gL%sǬ]W])Ex31 ԲT2Bme
hkVTW_tI'\c8  }~x31 ҼT٧IaЛ_qT;
 \x31 ԤrIJ}յ
kx	 :x31 ̼ԢbSkS󆸞g3& x31 Ē̲TEv2=;D3 H	x31 Լ̼T?tk~WpZ.bo	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& 	h;ġx31 Ē̲Tk_BTgYk> r	x31 Լ̼T΀%?.ت~K	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&MޫGq=KHgap~raɚ& ;x31 Ē̲Tf}yZfFMw x31 Ĥ̜̒ҼT7^x!rβ R5M	x31 Լ̼T[k.?"ǜ^oOMR2r+sS&ĔlsWs:))sD!*2xE$l^==,&A_BD<3/%n&\vs[L֬6 I<Zx31 Ăx/kdl.:do߯p  x31 Ăx	;3Emq̕ 
g x31 ĂxPo{Y|8] sx31 ĂxìlR>/hǅv, 	x31 Լ̼TȰ7;^sOl>ₜļ"}lo.P{AUC	!*2V3p8jVёDMtyf^J~9v	/L++Ym >x31 Ē̲TIE>lMrnZm x340031Qp
qKcX6fpt>><41 ̼ҔT&Z3Pu}fuSr2K2RRR^H%Mr /Vx340031QHI,IO,.N-`((鿝cş?XBg'm Kts+[2
RS2KRJO8y߁&w];]?,145>?)+5d};#͇%^?dёhJU>y{"PO+.JI,K̉/./JVVfcR_1_#má:>((>9?qo.,w<ڼu&CNցx31 Ăx2Vˬ.)?=啘1 ݑ	x31 Լ̼TNY;-j~(>w_Fkₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M ;x31 Ē̲T߯{͏/,kG ̗bx31 Ăxw_Ҙtvݡ't`x31 Ԓļ"MSlZܚo*s~c2S	LQqqw@fYދ؞Qs$19!}3LXtw;+ 2h+j	x31 Լ̼T+gLa+1\?1+J,.IMKLO-bS]ݚ餴|^K,d{H#v~	y<̼r9^pWp/V.l1Y w=x31 Ē̲Tμ_L/L4]r )gx31 TU":PvpB^bIfYj|biJf~|rFb^^jN|Nbe~i^<L䍾`unn>/4eIiiE@žXd5n~k.Z+R2vyi@_?8qߥR7o?QFבZT_TTuNy
Tz1]qZ~Qn"	!OؾS@]YA6>tŹE@Imʷy*~Ajޓ2 ~ax31 TU":PvpB^bIfYj|biJf~|rFb^^jN|Nbe~i^<L䍾`unn>/4eIiiE@ŵZLi]o"Tŭέ+K2f菮#(,0I+H1VF	VoCW_rxjo#)G2tŹE@Ů&˯o}`³3+h fl	x31 Լ̼T{&y w 'd$V&%1L)ntRSMBT%d2gq>Sd#̼r9^pWp/V.l1Y Ç=ǡx31 Ē̲T7:ޗ}۸*ݣ" qx340031QK,,KO)ʍO`N5w֗>~2PZTTbkvW寋ͷoTe >%x31 ĂxkhL۩6@?Ղf	x31 Լ̼T9\>\vdykjVY\XZ0!Dg5IiO.7#
QX+"aa1G\:x y)ps}'0ಳ_\bf	 
9x31 Ē̲Tצ7X6=ʿix.əE u	x31 Լ̼To풻/}as@Rₜļ"	1%:ܭNJ{wQʼĂL^	WD=zi痐.K/;	wb5M ;yx31 Ē̲Tӌ:"SDڜo\ڷ g	x31 Լ̼T}S,74>stGU#(% '2>71/1=aBL6w5wkҞ]nz=G2/ WD&#bbt%@3RN8xa]eg?Xdj ;x31 Ē̲Tt9z	vw/U?i  ~ԧ	x31 Լ̼T_F˲\q7pUd$V&%1L)ntRSMBT%d29$+sMU
>\4"]_7w
.;9ʅ-&kV  9?ج	x340031Qp
qKcx|=au֔K!jss2,Mg[<\Wm̤ĂLl<c:YΤΩ뀪K,,K)`X|#_Njx䵄l<' oD	x31 Լ̼T/Zߍ%5ؿv:jVY\XZ0!Dg5IiO.7#
QXp7f^T)"pQDtyf^J~9v	/L++Ym UB6x31 Ē̲T3:.740*J °R0x340031Qp
qKc~7d/O빕&(1=>1/%>(@/A?f4ˮ=*\،PZZ\YP_Pc17e
i
5-Lr2SRd_7M&9wF<яJK2RM,I7f2c!i
B9^n=6%31'?teb7uOebŒިJSKJ@ƺo:$"Lڔ ~Ty%Ei wg0w
֭ǯfQtL̤̜̒JǯWqĻ}GMV$ 5jeO)oshoרS+S v5Z%3>.$`;Uu^~
/t\`Vaɻ0%dU}lni쎪 d쩦oݴ?^H-~3˾Bn}OK]gnȄj,.IM/.)EO69~s{s7JK33
JKѺ.ٿ>ƞ{ U86	x31 Լ̼Tۿl92mƋ}~)5&`E)9yEbJt[?r9y"6y{/!"]_7w
.;9ʅ-&kV  ;	x31 Լ̼T)5mmmn&`E)9yEbJt[?r9yE+8boT+H&D<3/%n&\vs[L֬6 ?<x31 Ē̲Trc{Vzw)t'I 	x31 ԤĢ<(˔9IaԴԢԼb1Y+;U: (5'$3?/1'$(Y-sS iÌy6xʚz
4%7%v','27yWXXk @8x31 ĂxQ'*v[y`<bst1 oc	x31 Լ̼T_~T;MJ&(% '2>71/1=aBL6w5wkҞ]nz=G2/ he?G8j%I4ЄHgap~raɚ& hA?x31 Ē̲T5g1Z95Jbu _6	x31 Լ̼T

RlzKĝ)&`E)9yEbJt[?r9yE+8boT+H&D<3/%n&\vs[L֬6 @;dx31 Ē̲Tܼ_ɅVQs%8S `2	x31 Լ̼TMgR68=6zC	XQJfqANbe|nb^bzjÄmjO'=z(De^bA&C~[q<J6:h	.K/;	wb5M v;x31 Ē̲TIΊvƾ!4{_r  C
ا	x31 Լ̼Thf|hg	XQJfqANbe|nb^bzjݾe6K7 Ӫ̄yE+8boT+H&D<3/%n&\vs[L֬6 A>x31 Ē̲T+JJzUV]z:z[5 ;x31 Ăx5*+O0*~" 
x31 ĂԲԼ3F0?:^oW[B	TQr~NNf*[6Myxw
8(STpHWwWc}T3,[J`AO[+>٧ɗ%&2,{U?@%UU\ Fx31 <nd/ygfsaigL ʊSKw?}<7Z痯o"Q]P!0GpuOu+ ._	x31 Լ̼T	{+2c4QҦS5gO7ₜļ"}lo.P{AUC	!*2V3p8jVёDMtyf^J~9v	/L++Ym >-x31 Ē̲Tg:[sS*yIzԭ x31 ĂxU1j\Bn0=M}Z: ޢx31 ԊԢĜԲļ"׿Z>hWZ^`G.  x31 T+9}|],p/V3Kgd0l!([qҦ۟t}q--Nbh7Vb/f,d &	x340031Qp
qKcp	s@*?&ZLܲ&%%;> S/akֽ'.⸭_h!in$E%@eʙ?ɖzPe9IIũzy)zYy7?0=g 6<x31 ĂxϷ9]q{%'<t( 	x31 Լ̼T˾q{<1x_Kgₜļ"	1%:ܭNJ{wQʼĂL1Ƿxlt$@"]_7w
.;9ʅ-&kV  [;x31 Ē̲T{2ykW 	x31 Լ̼TMsښ;K93jVY\XZpo͒*/ȴj(~<3a>De^bA&C~[q<J6:h	.K/;	wb5M @I	x31 Լ̼T|f},Y*Њ4+J,.IMKLO-b۷fdZ5?02/ he?G8j%I4ЄHgap~raɚ& R<x31 Ē̲T[=ȭSjP{7 Rx31 Ăx頻]_'L9c{ީj P	x31 Լ̼TwlRQ?)#H223:(% '2>71/1=n2%T^iPxf|ʼĂL1Ƿxlt$@"]_7(ئ??g1Y7й k;Vx31 Ăx[+73[0RwQocT dr	x31 Լ̼TNvr{MEܟsrMR2r+sS-Yr@Vŏg&<̇K,d(Z||7ZFG4!y)ps}'0ಳ_\bf	 (9?>x31 Ē̲T۞yo3I䷓ ґ	x31 Լ̼Ty[B[:vp(% '2>71/1=n2%T^iPxf|ʼĂL1Ƿxlt$@"]_7w
.;9ʅ-&kV  M=x31 Ē̲T럍?\~c 	x31 Լ̼T6&GgLy35<2+J,.IMKLO-b۷fdZ5?02/ he?G8j%I4ЄHgap~raɚ& |X?x31 Ē̲T'6랻{QQ\s9 x31 ĂxjIWn0\$' x31 Ē̲T}Ny+XrrsIS mx31 ̼ߛhno}_ Rx31 +&͊Z2u.ftP1 k	x340031Qp
qKcԳ:7DN5FiVB&@Sʐ![}u{凇9"EG!deW%e00Tz/v90Bd&e&fde1;2iEr$vi( 9x340031QHI-LNK``W=!d&'\v9BW''dP<8ͽOm%M4;x31 ĂxW|Gȭwd x31 Ăxoglϸ0Gsj7\ rx31 ԒԤ"+$L 0E{x340075Up
qKcR>YE?ÆeQTTZU}(bvf)Lf@5䥖#td0	"S~!FYsq:6%@b,8X0qS^W3 [A	x31 Լ̼TZ/wXdOWzk֮4+J,.IMKLO-b=PFq/[p2/ he?G8j%I4ЄHg5>ϏYlD>tn, bl>x31 Ē̲T7zpJ)ݓ Fx31 ĂxAFrzg?t x340031Qp
qKc`?햧m]6r!DMRiZZjQ|Fb^JN^m~˳^yGeJS+JRs3Rˁ?m--{b=%}IG^ܤU^XZT_2:̿P&!L""̤Ē̲Ty)zYyv^3SAu	, IYx31 Ԥrȼ'<N|4}r`Okͅx 	Rx31 ̼ԢbE/ْ;~_yZzK2 4"x31 Ē̲T6GVM6m ?x31 -kyB/8~&`ļ"mK=^st׳֟V|;2 x340031Qp
qKc8:%T¬sf]d>}kb 
h[ϗ)R^yiiE%zFK|u;yݧF&.Y"/%[/8?s宂w|ic y8]/n6 m8ͥx31 ĂxM*;d[X|u]t 	x31 Լ̼TO
/Uc&&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ $=Rx31 Ē̲T3O
]3hNw  	x31 ĂxTP n
x31 ĂԲԼVi>u9fbsfTC79Tv8tO@aCԤtMelLEN~:ò۬*{޻2}+|IQbr*òW3.18^ZU; RBx31 ԊԢĜԲļ"/Va[juv{\ 1x31 ļԼ+u՘=%dS] Zx340031Qp
qKcutx[FiD Bf^rNiJ*C	=lbJNfRIQb^qfj^I|Ibq^^J^Vq~d'xԽojw X0
x31 ĂxrO-=ϙv:qe; zT
x31 ĂԲԼ5l떝<_ wf1&PE99os|qA0%)I%ޛ#iب-~w76tekY	,T0	wke'V0Te*g\hcp$!w hCx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2ؼRYފ7>708[Yg1%'3)#3 ,5D//%[/8?Oi_6y6{[v 0˥x31 ĂԲԼ^cI	2u=_= jx340031QL,(H-K+`x|Blnu/!tZ.m;LOs]L0#b9+nzSuAbQb.Purg'%X1U' F	x31 ԤĢe߿f8x%wk-1(*JMK-JKN-f{IZ]cr!RsK2sKRR-{?Ն(-MMc`!t2v֚ 1<x340031Qp
qKcX6fpt>><41 ̼ҔTM/cՊ但Sr2K2RRR^H%Mr u%.x340031QHI,IO,.N-`Q@i[?&GeQ\ZT_T6OУU=aՂ&HXPVPXZT*8.W	oN@(-K)MOJMYV}vDzovN4I`~w'VɌ}?妟
TuQjNbIf~^bN|qI~Q*Puo4ϯg]RSS@73`X-)T  x31 Ăxk#8Z,>opi 
x31 Ăx_.zx>xԳ򚠤 +|xu}Xy7"we)uRjJ^:Bdܙff[KHaI\Ot<uzNt'zSypo|}Lsp%E烌;rfUg4AHX%1Z3ETݭr!˨U1:2t=;w#s
TqlVWßyV;7,SV=-_bnt:8P@,3wb8_CJgdCE	gNjSIČxiapD<n`;aˎs90"7p{\@A3UP$ˑmsl=Ne+$;@,F0nW>/5mj$Q"}>ls%z=c#jEt|L;W8K8G%d@bwYv{<*DvD3!՟[CߗtO^%'\TžRl*mٚzwe,8ig	IGzcQB!(FX	NsBVh_5\(PhG2#5獑RDE@
SP8QNz=0/eepp-ĜT+D!]6Ձ+'^ʨ3^!jʴ4~ÿs4M6L7mQ@BBZs:n<׀y!kKξt<6	qsN F+m.? (ﾰ<v/$>R3tQ@<t*߆c:Ԋ[$?;WXY_@HOx'6Fg\Ȍ7B+5qWt{"^QR+
pP3;~)H9Z8uljF{
SW6{U޿݌8c^"R]V>"i8f~x<4-*<墵֬##*h.7E;iT]ۖ$.eXnfruaEůN'"8ezBs"ZUptsY=f-eMd|>ƌN0?էω
}F}BͲKK3[&PH__fېK:%eIߝ)BC5&<9unX?އX45A }c%JEdh\4$4$^H/mx340031Qp
qKcX6fpt>><41 ̼ҔToWL?I+[7ol6XY_U8TE/o:/ 3j1bx340031QHI,IO,.N-`Xg
k<7oφuɥEE@e2ǥ7n(	Z+bOaeE)ɉ%@_N|z,PZS~5՞ǓS%Tjb~8>49}or_Wʊg]o	U]X_\_
T=AZcL}>a[uPZT_8зK;m:q\kʡ 	x31 ԤĢrԷzEyxXl;q(5-(5/9LVjn&ku-ȅ*JI,K̉/./JepV\;@0hޢ?f(-MMc`!t2v֚ m9=x340031Qp
qKc?cKV'5g;w PK)MIe||1t&>$:bJNfRAbqIjR~bQ^^J^Vq~C,%k0|(? 4a1x340031Qψ/H,.IMO,J`P3yTUͽ+jBbQZT
~~7CZ)a|MIR ^"x31 ĂxRM/.ߴuB5sf#x31 Ăx|n+o_Y'pI2 SLx31 ԊԢĜԲļ" [N&`j >x31 Ăxwگf[˥   dCx31 ԊԢĜԲļ"mUl<I3^~m0uڞ 4x31 ԊԢĜԲļ"KTsǫ^X	 x31 Ăx.W%K՞m_F9 hx31 Ăx{%Mc}[o ҥx31 Ăx+r|2sw\4' 6z	x31 Լ̼T	
C2?g	XQJfqANbe|nb^bzjݾe6K7 Ӫ̄yE+8boT+H&D<3/%n&\vs[L֬6 =x31 Ē̲TG5WS#PaQ Lx31 ĂxZ[_Oh59q.dz5 x340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c`za5naTuӟ>Y_\q5s֯i hQ3	x31 Լ̼T9Iaof\O)	XQJfqANbe|nb^bzjݾe6K7 Ӫ̄yE+8boT+H&D<3/%n&\vs[L֬6 J0=x31 Ē̲Tm6u^rڼ%& cx31 Ăx}s\?m)oW~   'x31 ĂxS*ɜ|8Lxg?\ \Ax31 ԊԢĜԲļ"uBw<Orb x31 Tw,z^>x2S,(iWcw-ytOȖ'1L]`![+mإ]e& :#N	x31 Լ̼Tn&Blïoe6+J,.IMKLO-b۷fdZ5?02/ he?G8j%I4ЄHg5>ϏYlD>tn, X:x31 ҢļԼ͙.SZ@]_zul  Z@x31 ̜T{O%$aq/R%M *RKSsSzϸ>vn;u>gCiRn `x31 ҢļԼmeQ}qu7v~6gGи LVx31 ̜T.rFO^M2ze&EɩyEg\Hy:4vr7w G;x340031Q(J,O,`9)zQoq{"eUI.&0S@_I+hsSAfzNwg^0;2 w0ox31 ԊԢĜԲļ"#ҋx󒕻yƗM{~ ާx31 Tw,z^>x2S,`ohxޯrii$@,Ds+x #'
	x31 Լ̼T)Za/~*3+J,.IMKLO-b۷fdZ5?02/ he?G8j%I4ЄHgap~raɚ& <9x31 Ē̲T<i7mw9nq lox31 Ăx+kVo(:?n  Ģx31 ԊԢĜԲļ"^@kU.o\bw x31 ĂxC{K-[oO;- 
Vx31 Ăx7_=p|&
C x31 ԊԢĜԲļ"Og[|#Kgu %hx31 ԊԢĜԲļ"
'<o5U'^yi/ "x31 ԊԢĜԲļ" G/=1Bo=F1 њgx31 Tw,z^>x2S,°iߊ뛳OR)ݚvS51"[ZY-ϳQ&W[y唷j &:
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22N(^t*.R\ݹ7h
K*RJԽSvq:o͟sDb?Tx31 ҢļԼ𶒐]ZsdX<P g
x340031Qp
qKc*!jz"_+Zc+&@SP/d#p˟9EBLLK,,K/J-M/K*cYRX;}SM=﮼TXP~CvSgM+ =x31 ̜TߞVzs.lin^"8(9571/1=i7ﶓ^s6.u^ FIx340031Q(J,O,`!~zʓǾfzs2D(JI]&Mpa gǽBWT&%8v?ϼXavd K/	x31 Լ̼T\^}pS~ₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9^c_FdC [`<x31 Ē̲TMʟ|®2Y b	x31 Լ̼TW2	g6Pߪ#N	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%nQM/~~\bf#nsed"<x31 Ē̲T
gW:>uc(); ô	x31 Լ̼Tۏ'B~:1ߟj^CN(% '2>71/1=AC7grZxo	ʼĂL1Ƿxlt$@"]_7(ئ??g1Y7й ;x31 Ē̲T,SkĢd]xY	e uL	x31 Լ̼Tg~0ř,0]ªₜļ"}lo.P{AUC	!*2V3p8jVёDMtyf^J~9^c_FdC F=Ux31 Ē̲TwƧ*jdP{a5* T"x31 ĂxF/(.@^9{ a̧	x31 Լ̼T5o_xnJ~fₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9^c_FdC s<̡x31 Ē̲TL8|Lײw $x% 40000 graphic_2d I;I_8.x31 Ĥ̜̒ҼTsHp/Ps Jx31 ̜b-*Zf9fisy7* +x31 \pSw1M>KiI}[S x31 Ē̲T-s͜.t.Q<dqP"G& sݦx31 ĂĢ"E2;4݃1r 2x31 lWY'NhĻ\440031QHM+/H,*N-*fR;lr]g7wjm3/߲vo{j"1a\7SXDͼ׼cOK '3<Wx31 ԜĒĜTQk
gU_lVZ \Guc2V o&x340031Qp
qKcX6fpt>><41 ̼ҔTu{n*cӷ	!d&%d$de1dthXrOz^H  F1ix340031Qp
qKc{2}?Esr&3f{kb 
y9)}M͵e7*3TUǐ \Owyj[Q .%x31 ĂxcUKVۺu)V  x340031Qp
qKc8#pvG۽\um
01 ̼ҔT˔ӭ-C@|kBLL+(-M-OK*ca>TPq\?:c a1
x340031QK,,KO,M̏MKLO-`P9\?e~.c8鸺V!E%yH:Em/lX0gQC-,N-.Cɱδ~yql%x4 Ջ@Шx340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`Sduyi|"K*c8pOU[Kז(OI-LNZ,ק`>@F|ID9q]ZGQf UX]9-ו}.Uenb^bzjPӞV41bx#k.gK)rje;lqEti@禖$$$痖@\ѢTsr}"[ZsEAF~I~|^bIfglw-[[ եZޖPc!*f7G@QoGj"`@#}Vz]$4CWarr9s[j2SR*/(;(j%ωO,Cx340031QMMLOLNN-.H)H-ON,`(>@bb.^4EWqqjI|Rbq*L˂S﵍n2ɩ-nhY֙*?duv;Ħ:#1/=5(4ruQ]O811 yE>Ƕ?s4'>\>UP0;c:O^婿HIXN ?{{x340031Qp
qKcX\q4Aěg'=&'3)>75%31>8$>/171=(>9 S//%[/8?!ӥ>22/4u)v{QZ N&x340031Qp
qKc|@s/$M|&'3)371=5(?983/]//%[/8?gkWޟ[gV" :!%Vx31 ̒b]oxx|j-k\ ox31 d಄\ |
x340031Qp
qKc~m~X؁p&Og^6kb 
y%S󸯬~auC`%zy)zYyʹz7͈Ooszs^ R*8x340031QψO,/,H`'"tU3#pl=23$>71/1=jfcJH4sk
\4?/ ?2Zx31 Ԓļ"wğ5h}qw60/NsX&/.ooE((ILfhzm9,&Ίy F.x340031Qp
qKc ḓ>FTc Bf^rNiJ*QNڻ=[Wmd1%'3)/$>9?//5$3?O//%[/8?R[#ϸЫVN /Rx340031QK-OKM.`(되87n;CljK*Rj;\Hrmx*3ZwOF #(x340031Qp
qKcX/^Ԏ(d%甦2|R⩦ _myjqBLLK-/.ΉO*cXuqd?kWty :,08x340031QK-/.ΉO`(sj5_ͫfi;Tg, m*֘btm! 5V![x31 ̒b/-]jVb弍0x31 d/nyO< ox340031Qp
qKc~m~X؁p&Og^6kb 
y%~Lύ;zÖyjm"C`%zy)zYyrfɞc|:n! &)x340031QψO,/,H`'"tU3#pl=23$>71/1=c{gS[=7)X^\:;2>9?dڿ2%M l2	x31 Լ̼TOe\e;==trK&&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ y<ɡx31 Ē̲TUY[\Sڊٝ9= #Fx31 ĂxyΜ{suUS]6֐3 }Цx31 Ҕl?w=VJWV#IU&e)nEu=p{5jep%ũřy5_l6d2ݾQ(J~qs,(M)ER纟N)ErMȱQ\=CeË^xͬY#+CȼQϫN%GeοԔLKRK@y(~ޮ944'3()PdnO"$93u)wp[-(-LI͏/(Of^z|j^zf^*Ci
gRVn8r'ˇx340031Qp
qKcxu%y9llg BbiJf~|rbAIiQj66s6mZ~ZļtjSs[E\:4DԼT	0=a\8s_ٳVYu!
ss,v(wnω7M{cC3deղ]_rUgVx$ LD[x340031Qp
qKc/d{NC+g'N-EC̤̼tl<a_U_)Xiu" v!	x31 Լ̼TZ\lp:5}z5LR2r+sSD>~\|?}&ǫ0K,d(Z||7ZFG4!y)psxmz3u/ =ӡx31 Ē̲T;n9?z?/nH Px31 Ăx5?fئ+Tw )Gx31 Ԓļ"wğ5h}qw60pq	oVx1
J"ڧ}1s[$E~	b e,Ҥ>x31 ҔdFmo~w?`]i	*"_:xySR TxOG_0-_,(3/-!#tMqS2]'lh``fbRrW<ԍyy99%z>{f_>ӧJr3>%5W㈇ҶC{aj *˜qf%)gZT%2fM[ũ5/Ck!J KJ,Ner;Ǟ^b:%;:"K,,Kz' 1)3'xg'U~&+Oh҉o14 fu=>麼:ŉ1m[5G4΀?ͳLXpq7_PHG#4
癿v jx11Ym6k(LIEr◭ݧv\躾P6<N|ôJ{U'is=v~t$T)awݿ/^.FWSe,[Gٶ*}n)AWI&@knwmMn\9ODUK@xqlG3Op{|6_;kwU3v(dEVmO׿k^aD (	x31 Լ̼TO7<=LR2r+sSD>~\|?}&ǫ0K,d(Z||7ZFG4!y)psxmz3u/ V=x31 Ē̲Tܸ@]NL>oxӣ :x340031QH,+IL-`8gɹXtk6<̔gb pE6ۼM89ٕFQOJ,NƴPQp^U	5JquL+N.JM͋ON,()-Je`Iщ},N&1=ҁXYhb_"<9_Qn*T3&erEs7I-d:EEE@{I}6ɗ Nx31 ĂxB+~]"xmGS7ox x31 ĂxOnV0mL*5JCY x31 <nd/ygfsaigL ʊSKä5>m߹dזigf3lQ~/w_Gw݊ @W+	x31 Լ̼T9aWO>yy^휗>U&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ =x31 Ē̲T-OK/\}^醝, Hx31 ĂxgͬJ\^/N) ?x31 Ԓļ"M~D[s)oأֈwYũxn+d%b%SϾ-gŢ\Y1 +-lx340031Qp
qKc ḓ>FTc Bf^rNiJ*Sn=MlTpy}ѕSr2RKRK2R*K>[Y	j\81ߥx31 Ăxs|qZslXQD) دx31 \Ή*Zy?r: 2x340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?A2ucZkB.AѐКTzb=Dޯ_{- {5x31 ̒bML2;ܬx31 dȻ\^1z|	^)| ` dx340031Qp
qKc~m~X؁p&Og^6kb 
y%7nd8ZBȯCevB +K*c8oջiF|R}ӛ5J] *2+x340031QψO,/,H`'"tU3#pl=23$>71/1=Z.Frw*2R:;2>9?dڿ2%M *1ɣx31 ԒewM*Ukf?\y	XMyfZ&]z̪ZCsn2|\~ @Z`x340031Qp
qKclYz2,y6ʖEBd&gede1-IlsY)'2cUV 'sI_=>Z  +Χ	x31 Լ̼T$kEڴˑLLR2r+sSD>~\|?}&ǫ0K,d(Z||7ZFG4!y)psxmz3u/ =x31 Ē̲TWENZ
mg) S	x31 Լ̼Tv̲Jl~蟷q&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ n<Сx31 Ē̲Tc+'57h`ZӻlzwI yx31 Ԥr3=ez0yyݮ<Kvi Bxx31 ̼Ԣb\d|q{BJsx31 Ē̲TkZsVZ͸u]%- x31 Ԥr*2GbK,3[-sgi Үܥx31 ̼Ԣba)/٬ ١x31 Ē̲TN3fOtEB8  x31 Ԥr^{n4^Yi^  Ux31 ̼Ԣb6ܟtP-ז*W&  O~x31 Ē̲T-voQ3Y,gGf n;x31 Ԥr}vz$z⣄Igx31 ̼Ԣb6>&Ϝ~g{[	2 `x31 Ē̲TW-W)*<:at x31 Ԥr<tI3&?s?5	%`x31 ̼ԢbEg9oqowɢ  ix31 Ē̲T)/CՄ:Y|o`_ M}x31 Ăx=Px˸p_ [Ǣx340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?UС9V2KϪAh`9a~v*  2Хx31 ĂxoU?U%$i Fx31 Ăx/w$A;E{^<^ x31 ĂxUM[qlOK  u	x31 Լ̼T:ӒK}=S\`n3	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%nQM/~~\bf#nsej<x31 Ē̲TS7wucMo[ Qx31 ĂxĘ;R9x7;\_do x31 ĂxRVi񽺫N	\[bv صx31 Ăx6U:bǝ?ݞ+_tMz! x31 Ăxů5oQpļM{*u _ͯfxU{8Ty_5zJ(EeK]6eE.+!tsfΙ9ٍqVV;6D)˓n҅HFH3}JZAO˫yo *5k.-bAnx	\q~ky׷1?008%c0=caWü`gC90hB48UkcE!㟹IJ4FaZBj/۬XNۍ.yn:bOOyZhĄEE]稁]S^W|U,lmeegkkno/ӄݡMaKw[81_d04ɲ,0coo{])NYߗQ;ѷFg/	 t5-ynq"!Hx}RƮ9|LeBCn~\6O⁄Q0U%OV{*=vjQ-B wk_ǟIWq.5{N-lDN^,f~b 4_rxY@LfF`~NǕHFD(d}@-Tp$7rl~ʱ꒏L=$!)b4_kиC:r//'H	&D,hRaeQ.z`3QSXÍ!*pigEW]j{7maLD."HKLYL>2<\\W;I,BBFJ#+f/Td#LLb=0b}i$T|.1in)V<i:#"ɳPB菕3MJ:ml9-a _HD@Bp`ao		֙v;]zX@>;w|;JFT"q[dt)g_{6Oeb%DSmgğ]Q"P=k5Vz7%EH@ϡ`ZOG
<Z.6;/DGi1PL]ξopl;~>-P?t,AF(ygH掂V0jTɎԎQE-eǗ%
wĚIC4,@)@q2%ǊATQwtNCrVC)2몘:;9iWM"Tv崤7L3U٥:O
1m}-qV_yk:/ٞ0H/'U!*CrXn9t}RM)ǽh #pt^oQ;F{V皗˨X4t-nA7'z8Xʍ	x31 Լ̼T»Q]f3&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ c<x31 Ē̲TN7x
x?o"`b 	x31 Լ̼TŻ-˼|hW5&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ ;=ox31 Ē̲T[W&=?1\W,1 x31 ĂxΒ&'zz2+ 	x31 Լ̼T>}.{gdYiWΚd$V&%1}(pƗLW-a8QXP#VoO$hB3RE,f6"f:7_ 6?Mx31 Ē̲TׯsΞ)޶7U7Ϗ  |x31 Ăx}-?Kg4~>P*$ 2	x31 Լ̼T$^>U_z韭&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ kA<x31 Ē̲T9& szC	]=D ۟x31 Ăxo_?UWstSzȖj tx31 ļԼ&Tܗ#k\ G*x340031Qp
qKcb9a0&̯ub:ab 
y9):EYm&Ί)}$&MڒSr2J3SJKRO'+<ES P3x340031Q()J+L+/I,ΎO,`n??mqQ1CK*R*ֿ+[qKݻ )x31 ԒewM*Ukf?\y# ]	x31 Լ̼T%֏^Le;uS0+J,.IMKLO-b=PFq/[p2/ he?G8j%I4ЄHg5>ϏYlD>tn, ?>x31 Ē̲T	Z^L`oxC 	x31 Լ̼T+z;\ȬwF&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ I<xx31 Ē̲T<ʭ㗪\3^ 
x340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%a,^;1}Ƿ&2TPZZU01,?mCKyҠ	C4x340031Qψ/(JMK-JKN-`84fQ8Лzbj%TO-*OOIj.W=wj77ǡ)$3?eŢ_]L6X6.>nu=e9 K.x>ʫ̈́5[rCʏ N	x31 Լ̼TĭKx*G,T2+J,.IMKLO-b=PFq/[p2/ he?G8j%I4ЄHg5>ϏYlD>tn, j?x31 Ē̲TCVRWD0d9+o xx340031Qp
qKc(?`lxlɵCo߼ٹaM@!3/94%Av/MI,xlU[e1%'3(5-(5/9X//%[/8?ᗗuAX<0{0Wy s3_x340031Qp
qKc.c켊CCj&@S0Ì{R_ҽ r$C)9IEiEyɩzy)zYyǢك߿ '/	x31 Լ̼T*E"U%,aeVY\XZ z_39^-De^bA&C~[q<J6:h	.K/k}l׳و}|Y :١x31 Ē̲Ty3W6޺:遮З7.aW ٥x31 Ăxo<`FND0 'x31 Ĥ̜̒ҼT&67:W`}=nc :
x340031Qp
qKcZ'*ZdGDaͯBd&''dde145z/zx:E'uՠ33n18qߏ3Iq>ʂT.[Kgv?_fm  zC	x31 Լ̼TkP`OEd$V&%1}(pƗLW-a8QXP#VoO$hB3RE,f6"f:7_ @>Sx31 Ē̲TG}gzl_ߞ.K(' Kx340031Qp
qKc?cKV'5g;w PK)MIe#Ta㟇VbJNfRAbqIjR~bQ^^J^Vq~FQmUǧ?' 3x340031Qp
qKc{2}?Esr&3f{kb 
y9)gp<2ìckΓ˗_4TUǐ \Owyj[Q y-`x31 Ăx4(}7OoL >Nx31 ̒bVGV=bڗ% #x31 dE~990i  U:x340031Qp
qKc~m~X؁p&Og^6kb 
y%smn}]׻L*KVC`%zy)zYy	l&(tq_ %+x340031QψO,/,H`'"tU3#pl=23$>71/1=.VL1|
NR[:;2>9?dڿ2%M >0x340031Qp
qKc64ZzBs.n4L/LLN,K*c477┮
Z4.Cuh`PN8|ՙ+7Wa; 62Ȣx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cpcgiOWs5߀Aѐ3Ⱪ1݅9 /x31 ԒewM*Ukf?\y	XMyfZ&Äc23v/}j bHx31 ̴L3'LX6iնig}_ ֥x340031Qp
qKc`51dYx'yn>p&'3<3-S//%[/8?mIzg[OH?q&xw#;۾޶Y!/	x31 Լ̼TM?\mYӵMR2r+sSD>~\|?}&ǫ0K,d(Z||7ZFG4!y)psxmz3u/ >+x31 Ē̲TÁ2~}nly :3x31 ĂĢ"N@S;{TmQ Af	x31 ԤĢûg>U̫_&EEiEyɩK5|ԒtBT$d%2p^S='j`Ҕ4.p)+c| G>x31 Ăx̿Y)ejWW*Ik˞ vfx31 ̒bW=Z7? [x31 d<wg?gzSo 	x31 Լ̼T8;ߍ&TS@e	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%nQM/~~\bf#nsegt<x31 Ē̲T+^ʞ++%eg`m׶  Җx31 Ăx[Ezn긴}ζ'qC? 4x31 ĂĢ"[&gz%Nξ Nx340031QHOI,/.M/,.I*cp9qG9w\x{ <ȥx31 Ăx)_j)H!mnѴAx S5x31 ĂxMfoo x31 Ĥ̜̒ҼT}+.8Rڥ= c9x31 ̜b}y_5Lcqvo+phx31 ĂĢ"09g	Oj{sAͿ GB
x31 <^ssE'2h2l7&z0o	ƳN,Z%540031QM+d(,ZPuaD3'RRYPr˒?J\K]<{2(-)fkk"?3yJo MFCx340031QHKL+d]+9?>Z!ʋ2KRsS@yG1In8/ ,?$x31 lWY'NhĻ\440031QHM+/H,*N-*fR;lr]g7wjm3pێ9=xoiB#؍566^l[u p9x340031QHLK+d0\bBVn]$>-3'NAson*mK^#+(ON-./OX"5FcLaQZY\]ߪk[^њLsGx340031Qp
qKctH{e:/ۭ71 ̼ҔT}z97s&ȵb1%'3)?#>-3'5(S//%[/8?<Gŏx\E{Ο: Y-x340031QψOI/-`xaSEs
Ya*ex31 Ăxpm}~`Oxz  Bx340031Qp
qKc8#pvG۽\um
01 ̼ҔTZiA?2Ncz왻L!d&gd䦖dde10ee*8A1V /x31 ]Om.b?Ita~q|nb^bzjogr]zw5e}O 	x31 Լ̼Ts<~,?u]|ʿ&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ =x31 Ē̲T׎U·16ɭ Ξf\xUyPWgcV
D1	!ܘ "E]=ȕ2jP)ZVRuu

#*mJ7t~yHXgqDXfg8"ZCǡt:b-kGEl&?עKhX(̪ismi]Y$·@,$)(bU86kӁ쑱1Ͼms:8![Bphqvҥ{42ktX&N"Y\Y~c-ML^L>)b¥AR:A&Qb;)ut@ԡ
+Y+HRJQjF4Ԣ^?ڜb.FI I#m%dN\<3T<5D9w| MXm<B{DB/<T$*0ó1wђ!WZRh5b
u/?x1ξ%yTHv\wO1 [Urn$'Sv˓ݎ[su9)hJM",Ĥ1`hSk!%WH}*x3V3W<4Xe2\bDpHHҠGGim9SA8&!ZgJs:SȰv!Ҙ\͢bn1Ba%S$mO$s#VLonJ[%;U_h-X:J3'*'~kRGp2'6ck'P8oS&+5~ϭ?U,v3zO&~-X|gАJ@7ODf(ں;814ٜ	$Q	s}8a@hK{iH%PVI!,0dz}cr5n@81^?
&vei=?_=ܦ8{|jN(Ai`<u}(}U1 H`xlj	[=ɯG|$JL(\;]szЉ4ʼ}s!j]I}v	rkxePXM[ދ{g6MVteՋ&jp#UゅhVY?+6ҾoהĢ(]st+<)wfCƫ8RR#:Hg6I2C٦Vh$EeH:n_(}6S_b!`2P90ւ;/rW	x31 Լ̼T$g^]\Ȅe'OF	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%nQM/~~\bf#nse;x31 Ē̲T'Oik, 3	x31 ԤĢûg>U̫_&EEiEyɩֆ`^ )pϩgD&.*JI,K̉/./Je[)zVEO')i3]><RV03j+V >:=x31 Ăx#i	/wyV܏9Auo -x31 ĂxG65oHxhUS?oL +	x31 Լ̼TqU_˙*~O	ĻO	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%nQM/~~\bf#nse&</x31 Ē̲T'DK2Km |KI x31 ĂxFY[4E5 ;sx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c8#\Fk卭|79n{"ECÚ52/[mrjLv< S25x31 ̒b޸Ma\S)w 18x31 do:jgnr qmց ٠x340031Qp
qKc~m~X؁p&Og^6kb 
y%yw&[po7l!Čl<[Zmol}8/e+nx340031QψO,/,H`'"tU3#pl=23$>71/1=z KE,󚮄<8v'Buvje|r~
XMe{C9ǵGd.KX S2x31 Ĥ̜̒ҼTSם_qUze珊	[y [x31 ̜biOHmq9|8c'xx340031Qp
qKcpH"ç5p7LJI/(ON-.K*cxhk<?~b6o#Ē̲xTM"aN/7.os3W}( *5	x31 Լ̼TVe^Ky'0*ₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9ܜY\6p,7o =mx31 Ē̲Tu/"ܔ!^s=k׵_)x31 Ăx{.86aۯVɻR x340031QK,,KO,M/JKI-J-`iVGugn
zJ|5 ݥx31 Ԓļ"۵ҙ[g͙ё~i.ũxn+d%b%SϾ-gŢ\Y1 f,x340031Qp
qKc ḓ>FTc Bf^rNiJ*M];j&jX2HBLLK-OKM.K*cHi{٩$t]MqS/Xx31 Ԥr1s?|>[F߳n7݃7x31 ̼Ԣb%gxXCp[x31 Ē̲TێY׽E]ZFK Qx31 Լ̼T7u';R]GĂL[Y1#UUj\~tyf^J~y|nb^bzj,.8yLׇ +x31 Ē̲Tǜwj; t~݅ ~x31 ĂĢ"\Nm<zM=kh( 
x31 <{9VhvۧjFݶ&`T܂þ>MR/rf&&
yz%Z
.V8lVy|hSJ*RSR\Wʑe7W{CTd35덵o<7 tCܭx31 l| L5e240031QHM+/H,*N-*fR;lr]g7wjm3Ɛ<_ͳUxw%i+4>|f϶uW o
3x340031QHLK+d0\bBVn]$>-3'NǇc[}:r/g#+(ON-./O8rpE)EWoIp:
Rr33@6sNP_|#/ PIؠx31 l)b<eRX3^*n|JfZg%.3Lmg_	.H,*N-bˉ&K*xx  `$x340031QHLK+d|A6_3.mbgf 7ժx31 ԜĒĜTE
äĭLJKSrמN=~̳XXYѪ , Ex31 Ăx.fJm.fW< x31 Ҕl˗>3L *SR.ORj|gL $hJQ"iol3(oisF8Ҕ\$u{_NSݝӋyܘ+wD]fnbzj|jZZjr	o&4O)}p+_z"27&.*e>zA0CdО)@'$d1\}uv፯WT"YiNfRQbQ%ګ3?)ZwF{9n<QWXZ䝥O7Z[seｈUw#k  Crx340031Qp
qKc|Ï7ʱkַeN5INM-J`oȱt_)3wfnx˳UM^J^Vq~CsUN{z=b2ԲTr}
dėD٥uPUif^Ai	P,sRY~]7QU&%NUYhgՌNA>^l-()-J/N-.*GV췓?]R87$1%$1>
ڜcoܯ=j+
2K*kM=xa+g&Ջk`*O-Gm&[W:M:R׫}cTmYfJ*󦸭x~| Mx31 ̒bwAh΋lpz⼽Z3x31 dS.>{l}5r נx340031Qp
qKc~m~X؁p&Og^6kb 
y%D%侭H$=bܟoB +K*c8oջiF|R}ӛ5J] 1,Tx340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-z~~Ͳ*3w|XBuvje|r~
XMe{C9ǵGd.KX 4Ux31 ̒b ýK\^Y]|~z TQx31 dVT2d> s
'x340031Qp
qKc~m~X؁p&Og^6kb 
y%3MWotelo!fgde1$ܲj|gq4/; 1;-Dx340031QψO,/,H`'"tU3#pl=23$>71/1=:홎5Sw{aÅ~٩) c5%n,ib_ 4x340031Qp
qKc_3wQƪdg*wgt}՗&'3)?#883?O//%[/8?a-ֹcx
M?A%d'妖$$$e0إ8բ,h~vfќ@Qt0;2trgr|}!g݂꾜pO-*/*Zp
S:L+NxV VWx31 ̒b}6;_Zϻ>WNs֩ x31 d)X,1O߰bΥ. 
סx340031QψO,/,H`'"tU3#pl=23$>71/1=Zû|6["sk
\4?/ I2lx31 ԜĒĜTQk
gU_lVZưe׋r<e{;ֵo 9!x340031Qp
qKc{2}?Esr&3f{kb 
y9)BnF܏޹3gdO!Ĕ̤Ҕ4l<2|Gw7GS}ʎ -)x340031Q(MM`O{68*(‥MqiEE)@p-YY[5d%@e3^y.s1j|dbS1=,ᤓ͎L$l9aS zCTx31 Ăx&笕i[תWsoe T'x31 ĂĢ"-?srPY&ǽcn! f
x31 <^ssE'2h2l7&z0~[{cBС*gJ(&fT2\h-(|XYiBL),HMIMc2GF ~֯3ey{yN(-)fkk"?3yJo E<x31 lZ7xk溗^'먡Br~nnj^I|AbQqj^V1a:W>Gn	ذ̴4jZ`[/M_A!F0HQ=:cmuFy۟7k Y(5x340031QHHM+d=qmٱ7~:HjSAf~i`撨w/雚)7_KM)zB:Y-)ib˥QW$V..'|	y?Nu^SW_XTZUvBo&&ϧߑfb 
E9guXڞ? aX
x340031QHOK-J,K/ILI-+dxȹeVny!j) W P,/.M/,.Ieȉy?C%{7~"i1 85>3/94%dhԏJ?
j8"o=?N{L +GAx31 loo}PbRfk[ۿ2˧d1|XҟQ<ôچy}lĢ"kRIپ y %>&-x340031QHHM+dX^AwLG~abg } x31 Ăx-3]ϫh#9 zϤx340031QK,,KO,M̏//-KMKLO-`Xտ!$WPzsb`fw4݆cXtg!4lkZr ,Ģx340031QMLOO`s7nmwkcCdy%e@yV^XbF7!j(*S+4nPC5/1Y(59h67'?sxyc-Eɩ;LyQS|p+|P%EHja
4춦~}3;*j+RsrG9]mh x31 ̒b꧂']zrԏ5\sj4|	 x31 d]lZhC8x[ x340031Qp
qKc~m~X؁p&Og^6kb 
y%s$NKpmB +K*c8oջiF|R}ӛ5J] >,sx340031QψO,/,H`'"tU3#pl=23$>71/1=kѲPŕ۽7:;2>9?dڿ2%M cM2x31 Ԓļ"ޕwD
x;[Xz/*~l?,!$&g3DO=b涜In|s}g< .x340031Qp
qKc ḓ>FTc Bf^rNiJ*qBٺ-u!Ĕ̤Ԓ<l<MKgo {>1Sx340031QK-OKM.`ⶳy"l_!6%@F+{SgD︛>ny F&x31 oQZMK5L҅yEþvuu1gה/> kox340031Qp
qKc8:%T¬sf]d>}kb 
[(ed՟4OK+*`0Zr櫓;>5241pdy)zYyo`p޴]
:^] z;x31 ԤrzI[ESfaY6B
; ѨAx31 ̼Ԣb/Ncq~ Bx31 Ē̲TO~Ϲ[55.O i٧	x31 Լ̼TأZܰI!?.6+J,.IMKLO-b=PFq/[p2/ he?G8j%I4ЄHg5>ϏYlD>tn, ?x31 Ē̲TbO/ysNW9  x31 ĂxfCř2ܓ&,6 T߯x31 ̒bB1~Ow1 x31 dZQWw<5;Cf Rx340031Qp
qKc~m~X؁p&Og^6kb 
y%G>^Zݶ2!fgde1E5W]MJ{5 (-x31 Ҕl˗>3L *SRX'q֋+ J%"6򖆹ۊ-<=oT(M)ERU˷NC+kFټbuii%Y^lHb<%P*qBVFuL7ax2
275%ҼĒ<o.].a_D2 +L*J,dZ{u=Eq<hz/!
r+SSZ6߄
?eLzQZ_PZ\`'u[E;q*ٯ"L ݫsx340031QH,+IL-`t}U]#=Yr kU]-*.s2D~CTSM
`pW;O{z7^V\XPRZАg>PZBS~**jj^bIfYj|b/'x{2Պ̄Cq3k7ԢL.N+/'3(hkmGg8GG  ;x31 ̒b6+oosǞ x31 dCQ-~}]*JѧU 
nx340031Qp
qKc~m~X؁p&Og^6kb 
y%&?[Ӽr!3we=H2VU >/dgy_| m-x340031QψO,/,H`'"tU3#pl=23$>71/1=z4a&ijLhT}Buvje|r~
XMe{C9ǵGd.KX I1x31 ̒bN9->9 x31 d3B.yOUcfO? tLx340031Qp
qKc~m~X؁p&Og^6kb 
y%ڿ~UO缯bM|M33JR煬Q<w3+r\ݑ h,Ox340031QψO,/,H`'"tU3#pl=23$>71/1=WJ-(]i˻x|S+S@j*J9;* sY 3x31 ̒buEiߔ_ *3x31 dA|Ӌwrk#SM? x340031Qp
qKc~m~X؁p&Og^6kb 
y%֦lS17gS*c8lh1#?D//%[/8?A}^s^9" r-x340031QψO,/,H`'"tU3#pl=23$>71/1=dFsoffT߄PZ2VSPvqQ˒&Vg 1-x31 ̒b)yQ'n0:ܸw x31 d)w'պܓ?6vG2 l	sx340031Qp
qKc~m~X؁p&Og^6kb 
y%G(2IݽZ"o!Čl<5aS6
|纻J *x340031QψO,/,H`'"tU3#pl=23$>71/1=zotO3Ѽ":;2>9?dڿ2%M 51įx31 ̒b'7$Zq7~s5Y[zN x31 dwe¿ٗc_ ̠x340031Qp
qKc~m~X؁p&Og^6kb 
y%!|6uk_W33JRքM+uo+ >+x340031QψO,/,H`'"tU3#pl=23$>71/1=Nw=}2S+j̍PZ2VSPvqQ˒&Vg 0x31 ̒bowVMo+t4 cx31 dk;W̞`|>\ gx340031Qp
qKc~m~X؁p&Og^6kb 
y%LsH|dC`%zy)zYyk¦lt:uwy  )x340031QψO,/,H`'"tU3#pl=23$>71/1=zn|fjɻ~]nȉPZ2VSPvqQ˒&Vg F2Hx31 ̒b9ՋjM% fx31 dgLkb~. `x340031Qp
qKc~m~X؁p&Og^6kb 
y%D/_ y30VUǰ&lFP_\w;W_	 ?+ϡx340031QψO,/,H`'"tU3#pl=23$>71/1=ZBy{3$|v`ۦ٩) c5%n,ib_ 3	x31 ԤĢ5Wj+fpc	DQQjZjQj^rj17X/J\k0ԜĒĜTQk
gU_QZsǉ\߱il 94<x340031Qp
qKc.c켊CCj&@Sʠ1)eUWr].R7BLL*(JMK-JKN-K*c%w]fx>'U IQ,Jx340031Qψ/(JMK-JKN-`Uhx=>[{ԢT&=m+㭳"'vM%y@-޺Sm}XVxٰ*ɝyص%攂,Y}z4ټKo_y ANox340031Qp
qKc.c켊CCj&@Sʰjoڊ[C6
};nntÆSr2
RRRSRt
{iOJ$;k-_uC-x340031Qψ/(JMK-JKN-`N
%91Z-ř[_3Ħ6>(>9?%7SmeGHsmQۀCS~AIf~PK#XlURk$ZsJA7M/Ϲ|k˵$Y M0x340031Qp
qKc.c켊CCj&@Sʠw6o9n\yǙSr2
RRRSRt
{iOJ$;k-_uz,x340031Qψ/(JMK-JKN-`~2*]+$n0Ħ6>(>9?%)Hd~|y#5dYM혔QD3vZk)K)[jE6KZ=;kT #ORx340031Qp
qKc(~&&,/ PK)MIe0Xnx~\tFӮ;՟6TPZZUǐ \Owyj[Q 4o-x340031Qψ/(JMK-JKN-`IqOVLN hx31 ̒bslsVړ<I}  |x31 d۟.| bx340031Qp
qKc~m~X؁p&Og^6kb 
y%WG[r}aSB +K*cHe6F!֧h2_v dl-x340031QψO,/,H`'"tU3#pl=23$>71/1=:ƯSy~8{ghg>Buvje|r~
XMe{C9ǵGd.KX n2	x31 Լ̼T=7Wx]ēU+8fGd$V&%1}(pƗLW-a8QXP#VoO$hB3RE,f6"f:7_ >x31 Ē̲Tt}	 Bx340031Qp
qKc{2}?Esr&3f{kb 
y9)3Uϗ	>m^w\!Ĕ̤Ҕ4l<2|Gw7GS}ʎ ˁ)֦x340031Q(MM`X+`cC	"Tħ'秤
N<~xRgiFgnא榖$n_d3fpe@>羽~gvyҫi͓fz -vI'J-slߧ SCx31 ԜĒĜTQk
gU_lVZsǉ\߱il 
Q'x31 ԜĒĜTQk
gU_lVZư@M<9
~8=- Gx31 ԜĒĜTQk
gU_lVZƠ~"&۷l. x340031Qp
qKc{2}?Esr&3f{kb 
y9)݊q^ /KMuϖC)9I)izy)zYy	exwoE *x31 ̒b}:~)uYۗ& fPx31 dϕWD5^oR  
nx340031Qp
qKc~m~X؁p&Og^6kb 
y%=>#Ӌl|b1#?D//%[/8?!ᖭV<[.0|A /x340031QψO,/,H`'"tU3#pl=23$>71/1=Yz^<wҰgS+S@j*J9;* sY 4Vx31 ̒bE46ݳ]O_ @bx31 dN,;ju` ݠx340031Qp
qKc~m~X؁p&Og^6kb 
y%y:WYҙAnik!fgde174#>⇾ٚ{. *x340031QψO,/,H`'"tU3#pl=23$>71/1=٢,v?xm K٩) c5%n,ib_ v3<x31 \E7e^v' Ox31 ĂxK:1;1FT*sax31 )§>X~P_yOeL%sǬ]W]ůx31 ̒b_NyoXwUpp~ ʌάx31 dev|봩)o x340031Qp
qKc~m~X؁p&Og^6kb 
y%>F[h=yZS>B +K*cHe6F!֧h2_v m.Jx340031QψO,/,H`'"tU3#pl=23$>71/1=ډ;虫$=9U*_٩) c5%n,ib_ ~3yx31 ̒bĸ%"sB0D<3y 
x31 d~-ξ·q9- y	x340031Qp
qKc~m~X؁p&Og^6kb 
y%at,z(_1貲|C`%zy)zYy	l&(tq_ &D-x340031QψO,/,H`'"tU3#pl=23$>71/1==R+krR]&N[:٩) c5%n,ib_ y\3)x31 ̒b%%<o \촕{J4 #x31 dӦ݊o^_}qRaRs%g yޠx340031Qp
qKc~m~X؁p&Og^6kb 
y%ysn	xT0ʼhOn&5C`%zy)zYy	l&(tq_ Ϊ+Ux340031QψO,/,H`'"tU3#pl=23$>71/1=*!=F˅cza2Buvje|r~
XMe{C9ǵGd.KX )3xx31 ̒bE٣a,1;1 Xx31 d{>+,583zں sZx340031Qp
qKc~m~X؁p&Og^6kb 
y%%_Z--?]$&C`%zy)zYy	l&(tq_ +x340031QψO,/,H`'"tU3#pl=23$>71/1=:Pt=R;/yPs4sk
\4?/ nw34	x31 Լ̼T^xxMW+\2+J,.IMKLO-b=PFq/[p2/ he?G8j%I4ЄHg5>ϏYlD>tn, E=xx31 Ē̲T*߹H$jvJM_	 @x31 ̒b[vG4j>_K⪑HIm 7cx31 d_[sWl꫔C 7x340031Qp
qKc~m~X؁p&Og^6kb 
y%&),32goXm!Čl<fZf'Uз99[sE 9)ܡx340031QψO,/,H`'"tU3#pl=23$>71/1=fknYd%SRS+S@j*J9;* sY zp3x31 ̒bOÂ,bv >x31 dʄ9jBkxD^/ֹ	 
 x340031Qp
qKc~m~X؁p&Og^6kb 
y%Eu^(=IkB +K*cHe6F!֧h2_v ~9.x340031QψO,/,H`'"tU3#pl=23$>71/1=z%3k&?yyq:N.'sk
\4?/ I2x31 ̒b->۴MwC> 8x31 dff\?ݛi3 
x340031Qp
qKc~m~X؁p&Og^6kb 
y%~޲wzǫB +K*cHe6F!֧h2_v W-ۡx340031QψO,/,H`'"tU3#pl=23$>71/1=/^\pgvabNw;J٩) c5%n,ib_ 4x31 ̒bpqI\70 ¦x31 dWqם!kO$x340031Qp
qKc~m~X؁p&Og^6kb 
y%&%!EL'PS]bF~X^^J^Vq~C-[7
y>]Ga 0*ˡx340031QψO,/,H`'"tU3#pl=23$>71/1=)K'=\-#˺:;2>9?dڿ2%M G1x31 ̒bf.llL=sC Ux31 dV'(_7*rfbֳjx340031Qp
qKc~m~X؁p&Og^6kb 
y%:ѡ4_{C`%zy)zYy	l&(tq_ 0,x340031QψO,/,H`'"tU3#pl=23$>71/1=zJٛݔL7?:;2>9?dڿ2%M ~X31x31 ̒b'48r'O+-o x31 dc[,
WڴɛF_`^0 
Ix340031Qp
qKc~m~X؁p&Og^6kb 
y%oOڽʓ}޻vR1VUp~Lwӌ67gk uM-3x340031QψO,/,H`'"tU3#pl=23$>71/1=AX@ĖcgY60l}T:;2>9?dڿ2%M V	2x31 ̒b[~+:VO=w75o Tx31 d<u_F_QE  x340031Qp
qKc~m~X؁p&Og^6kb 
y%oNS[ncui͆33JRinTClͽR*x340031QψO,/,H`'"tU3#pl=23$>71/1=PwЩ7|JGRsk
\4?/ |3ux31 \㼩(3D'fmL 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yeze>-pUsE^!/,H-~Q9TCj's3)OLUݠ%႘ΕҮi M;ʭx31 Լ̼T-_.Pr[ބurĂL[Y1#UUj\~tyf^J~y|nb^bzjK/-]q^n^?ӿ و,աx31 Ē̲T3z?ry #x31 ԜĒĜTGVq03=:暜34%7瘆L@R\x? WAx340031Qp
qKcX6fpt>><41 ̼ҔT$dJo|bJNfR^bIfYj|QJ^^J^Vq~CF%gT+ׯ[a W.x340031Qp
qKcLrϟ=ͭ+:Eo41 ̼ҔTcsXG2l1=!vSBLL*MMK*cH|.ç|tǻ{s<( -x340031Q(MM`8myNYɔ	oOԪWSkPZT
T>N&yuN&:Jj47$LuF팤"ˍf855k++*lcj\u>7S>	$hɴMb=Vjf> E#x31 ҢļԼ-߲Y)͖9 x31 ̜TT_un.(}Sz-V"8(9571/1=ӫ(߫I sx340031Q(J,O,`2-l|n[\kUIC̜Tϋ/VLb(:1-s׬3MKLO)9yC?}} 3\x340031Q(J-M/`ȟdm]88=]=U5y@|g^.3wG x31 ĂxeӷޓZQc x340031Qp
qKcyr>uZt9y!DMNfRYiNvb^^J^Vq~[g}햫Lʬ ;"x31 ĂԲԼm%|deR?+Oy	TQJjRi:tئjnU/{9LEN~:ò۬*{޻2}+|IQbr* 7kݩ_|1+ m7x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2Ưȿ}}QKLܻkf1%'3)#3 ,5D//%[/8?Oi_6y6{[v 1x31 ĂԲԼ_<)b>do 7,x340031QL,(H-K+`x}ٖt_ŋ?{͙qҁjr{>%V%*ڠfr._яe%;g-T]XTf?*{	(Y# ;FSx340031Qp
qKc|Ï7ʱkַeN5INM-J`h[?GGi=5w-\Pde1+saٶEMUW0ԲTW2e_럓'{qS]JQf UXiZwϾWeBUZT{mO3_m]c<9p%Eũřy@>Zɵ׶<cPŹ%)%%WH폊[eUR>UދCd#T,Z4= Ѹ;gpTZP;mSojN1Z2D~uTmYfJ*GO`w涬@ QePx31 r*އTtb	X08>71/1=sط3.;욲' Цx340031QHK,ϋ/K,LLI`kxbӃ7؞aȞkQ_ TWt
%Ssn1SҒ
efHg˻dvTIaij)ȞٹSC"V,TԘ\egUR
W?W][qy^|P%%@l)>e{VIF?M0E@%3,ҏZ^G_Cc7LIeAj|JjPU:ͽr%2H^R~ Apx31 i3߮ۑOvN:g(.f(^8feſr' KЯx340075Up
qKcxébv{Zn4];t` PKf}ko]y_Nk1!'3)8D//%[/8?n#~sΗiN-, 1jx340075UH,.N-O,``}gFe'.z2DVVRY
T7O\y6Ӌڶ}pQH 6x31 nqnR,{D	X63$s]ǭelKwt\Bs2JSihpTNϴ"R\_uץueQr7vt_ݪ.USZW%F>^2v{{_Z
OIeXpLQ~Rdr/<w`^W
1mm$JAJL^gNx?Kyʹli!_ JJst3RSRRewp9b{fk\
QX1]6܇N.~8$њ ɉ;x340031Qp
qKc0PoK߼xM37	rutu/H/-JNeM+Ꙝ(d'1*Ly]eQ7_x c-د	x340031Q(ˎ/I,I/`^fn殦Y70wBd'ո{@BdmժO/J*h?&I'OR̂^*/*޺w3^˪$<Ӗ x>Sx31 ̒b(ޏoOiFc+x31 dbݝIORy-k x340031Qp
qKc~m~X؁p&Og^6kb 
y%Bn^|:sUFO!fgde174#>⇾ٚ{. +x340031QψO,/,H`'"tU3#pl=23$>71/1=p߈=~[Opy!<6:;2>9?dڿ2%M r52x31 \be3W.Xޕuv>p })x31 ԜĒĜTGVq03=:暜34%7Xލ+߶dNf8  J 	x340031Qp
qKc{2}?Esr&3f{kb 
y9)S\$-f,3]!d&de1$>S>ݽ9bVv *"+ïx31 ԤĢ5Wj+fpc	XQQjNbIf~^bN|qI~Q*CQ8ZsMNQZtvA&wݣ;U k,͢x340031Qp
qKc{2}?Esr&3f{kb 
y9)|">vNa9F{Sr2JSrR)1Om}+; ١*9x340031Q(MM`fR?:!BE|jQQ|r~J*P;,'9*3ԒD2|<r|^DZ2\Y1PAAMk2nWr0%)@fGK]l	RK0) Gx31 ̒bKZ
ߗ$W;w7 .x31 dUS;<i9y*Uj Yx340031Qp
qKc~m~X؁p&Og^6kb 
y%ggW1SKR2VUp~Lwӌ67gk Y[,x340031QψO,/,H`'"tU3#pl=23$>71/1=zͣ/.XYsxXقS+S@j*J9;* sY l3	x31 Լ̼TmΛgeN!>[MR2r+sSD>~\|?}&ǫ0K,d(Z||7ZFG4!y)psxmz3u/ ډ=x31 Ē̲TǩΑk\5uVc fx31 ԲT2Bme
hkVTW_P,D]l:\2N ^I	x31 Լ̼T"9EԉuZ	XQJfqANbe|nb^bzjه7ڏo|x3yE+8boT+H&D<3/%n,.8yLׇ %<x31 Ē̲Tz<Y걿s|P\!' )ɥx31 Ăxˉ5]o~7#~vk x31 ̒blޥji[O 8x31 diGYOg:66Nn zwx340031Qp
qKc~m~X؁p&Og^6kb 
y%V>WܜOݘfj1#?D//%[/8?VI?mNo+u -ܡx340031QψO,/,H`'"tU3#pl=23$>71/1=zYܑ}Ϳwpw٩) c5%n,ib_ 3	x31 Լ̼T.IzJng
Myz[#6&`E)9yEg
h?.>{K@T%d2gq>Sd#̼r9F6q=Ⱥه͗ J<zx31 Ē̲To7oQyk]HEj Υx31 Ăx%>'֝joS	x31 Լ̼T,b;j*Y8ₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9^c_FdC +=/x31 Ē̲T9/򭸹Prgk ȫx31 Ăx]?Gdig3=i d	x31 Լ̼T[+,_~lI=nI_ₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9ܜY\6p,7o -=	x31 Լ̼T~W+3U|лY/ₜļ"ѳnOj%g *2V3p8jVёDMtyf^J~9ܜY\6p,7o =x31 Ē̲TyFXgע bgx31 ĂxA~m.i:3ЯW]lV V&x340031Qp
qKcXm;$+|ȶ111 ̼ҔTfkfx^7viǛSr232
JKrSK2SR2lL#Y:6}cŇB O/x31 Ăx׷3,_UϢm5 x31 Ăx).ʰTX qx31 Ăxͨ=[U2vtcQ 	x31 Ăx/3/
5𔸬ټO m?x31 ļԼEFn?ޟ Qx340031Qp
qKcutx[FiD Bf^rNiJ*eS|-]]OBLL*)J+L+/I,K*c?UW|\Mz 2Jx31 ļԼ;^׶yo[ x340031Qp
qKcutx[FiD Bf^rNiJ*C@een;bJNfRIQb^qfj^I|Ibq^^J^Vq~d'xԽojw t0vx340031Q()J+L+/I,ΎO,`\BݕF>^<ʂT57{\5_I;FUک 0%fx31 ļԼy6=7mϮ~ x340031Qp
qKcutx[FiD Bf^rNiJ*?a<lC)9I%Eyřy%%zy)zYyjqSˢ] 3/yx31 Ăxn҉;]Sup4 x31 Ԓļ"۵ҙ[g͙ё~i.[Xz/*~l?,!$&g3DO=b涜In|s}g< J.x31 Ăx4k?=V]EEqsAx340031QK,,KO,M/JKI-J-`8Yx==7k }*x340031QK,,KO,M/JKI-J-`&$^mv	[׉/^^ dPx31 ĂĢ"	b[ݤY2xV7 zx31 l
F.0],1z<D!9?775$ 8H/KuMLTO#lXJfZÅ3vl;ZrB!F0`7Px7n>
 v6x31 Ăx]Ez/a K x31 Ăxjg;4e]i}X Wƥx31 Ăxs_5Z <x31 Ăxk2ZZV*o8{
 fx31 Ăx><6co  :x340031Qp
qKcXm;$+|ȶ111 ̼ҔTI67ѕ[$u!Ĕ̤̼ҒԒl<.GbAoߘx ;-x31 ĂxZqX~g}  Nx31 Ăx[e~@P>/ &x340031Qp
qKcXm;$+|ȶ111 ̼ҔTk.>I~:i^?_UwBk?4WPZZUǐaeH,a/> 31x340031Qp
qKcXm;$+|ȶ111 ̼ҔT%ߛ\?+玝w!d&gd䦖dde1,n~_Xrv8/x340031Qp
qKcXm;$+|ȶ111 ̼ҔT7%4:D,5WPZZUǐaeH,a/> /Ǫx340031Qp
qKcXm;$+|ȶ111 ̼ҔT	g|_cz析FaC)9Iy%%)y)zYyxoi94N -Ϊx340031Qp
qKcXm;$+|ȶ111 ̼ҔTbYnyMz!!Ĕ̤̼ҒԒl<E͏Z}' \`-3x340031Qp
qKcXm;$+|ȶ111 ̼ҔTօIng5>+>yO'.`0WPZZUǰ~a_˹۝O A/x31 Ԓļ"NٛtbD	LQqqí?s??zQW
J"ڧ}1s[$E~	b v-Kx340031Qp
qKc ḓ>FTc Bf^rNiJ*f=F7?x%Y_C)9Iy%yy%yzy)zYy3m/7>;uwU>߾)n5 (3x31 ĂxѵVrz&s\u& <x340031Qp
qKcXm;$+|ȶ111 ̼ҔTՋRr[Y=bJNfR~Ff^AiInjIF~J^J^Vq~"[k~-nwZ> z-x340031Qp
qKcXm;$+|ȶ111 ̼ҔTSDlojⳗ!Ĕ̤̼ҒԒl<E͏Z}' /u,Rx31 Ԓļ"M~D[s)oأֈwY[Xz/*~l?,!$&g3DO=b涜In|s}g< z.wx31 Ăx߃En~Mk
>YQ x340031Qp
qKcXm;$+|ȶ111 ̼ҔTKE^^!.LznESr232
JKrSK2SRr7?^/,k9Wwri -x31 ĂĢ"3JZ/]y0YMW x31 lZkҮR\(/Br~nnj^I|AbQqj^V1a:W>Gn	ذ̴4jZ`[/M_A!F0HQ=:cmuFy۟7k  6ax31 \عĀU:b' 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez	{g/=ͱA1H*K*R]UonҒb#APu9I`RmgB}^ 3=
x31 \2GX-}ӒQrG ~	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez"u:҅{gkm'ub>ʂbmW%OUb?U6,/%[/8?{Y/8!_oO a@`x31 Ԥr]}?4>R9yNW	No x31 ̼Ԣb+}p;٦\>}^ x31 Ē̲Tߍǣ
>oRԳm;x31 Ăx?
$DɎq<5zU; x31 Լ̼T#?Oڥ$qʵuKZh%d2z]\͊|R+tC3RsSgqO?cܼ> =l,x31 Ē̲T7/x#Ld?} ux31 Լ̼TKewl
ͧoD%d2gq>Sd#̼ļ"Y\6p,7o 9-x31 Ē̲TRʕ\|D`P qx31 ̒b5'Ϝ1ѬW} x31 dK[vy7U>ͼW x340031Qp
qKc~m~X؁p&Og^6kb 
y%C$<v?R4VUp~Lwӌ67gk :,ux340031QψO,/,H`'"tU3#pl=23$>71/1=ڷvÒ1rpoX;sk
\4?/ nk3x31 ̒bRG}[<Yn& ]Gx31 dV	yU"#b v)
x340031Qp
qKc~m~X؁p&Og^6kb 
y%Jt}N1%?7VUp~Lwӌ67gk B-x340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-j9w陥VaJBÞ]$Buvje|r~
XMe{C9ǵGd.KX >4x31 ̒b^5|Uz chx31 dNvZzVQ9^Q Yx340031Qp
qKc~m~X؁p&Og^6kb 
y%>n:dmua33JRinTClͽR+Bx340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-N0>-އ/iPZ2VSPvqQ˒&Vg r3x31 ̒b\Vls3B\2O Mx31 d~ykm&}:#ɽ x340031Qp
qKc~m~X؁p&Og^6kb 
y%W:|v/^bN33JRinTClͽR"+x340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-s^Gβk5)#TgV'秀T7s\wT@沤 q2x31 Լ̼T;g(.X9czL2V3p8jVёDMtyf^J~y|nb^bzj,.8yLׇ ,x31 Ē̲Tk?ä|5~~Jkk 4˥x31 JN;1=ZJȅ&`ļ"at;:kV Y?x31 Լ̼T.k[o.OY?&̽(/ he?G8j%I4ЄHg&%1ⲁcL>$y}x; A*x31 Ē̲To+n~ٺ9vWI |x31 FkYGo8Ry!,]_Z9ۙn\^svMYj :x31 Լ̼T;g(.X9czL2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ ;- x31 Լ̼TwNQz\|uVwS0+K,dʛ3R%L_VHg&%1ⲁcL>$y}x; n-x31 Ē̲T6ky[2oN8Z: mx31 Լ̼TwNQz\|uVwS0+K,d(Z||7ZFG4!y)yE߳lX'Ӄϟ1	n^ K- x31 Լ̼TǎÕ|N=?&阀%d2z]\͊|R+tC3RsSgqO?cܼ> pb-x31 Ē̲T%f]:6ay) k9x31 ̒b%\S5>M8yb) x31 dBr۸D1 Πx340031Qp
qKc~m~X؁p&Og^6kb 
y%;V}Q
dxvgoC`%zy)zYyʹz7͈Ooszs^ +x340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-vyAyQ/;]PZ2VSPvqQ˒&Vg `2x31 "z3<?]"ANY&`ļ"at;:kV x31 {혓x!w&`ļ"at;:kV ץx31 '|^!v:{©{8Οb./MKLO-bL_K9o}	 Px31 Լ̼T%wS"ECzw	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=a{dz<&,x31 Ē̲T-Kus.e,Q/QO x31 ̒bΎ[X|&}. &d px31 d][{jG3 x340031Qp
qKc~m~X؁p&Og^6kb 
y%?9tvJs)cyxKO!fgde174#>⇾ٚ{. +x340031QψO,/,H`q5%Ƅ/֩!\wn1+(-MKLO-^r3>ˢe8onPZ2VSPvqQ˒&Vg Se23x31 Լ̼T;\p:g׆^m~1+K,dʛ3R%L_VHg&%1ⲁcL>$y}x; y-סx31 Ē̲T))?zxZU,) Nx340031QMLO/(ON-.K`h󶷪z/O%X b#glwP`'<CǗTwq|sٿ	?Twm{y1̔|T(U2^-73IBzZc3q*ƅ߶8i\V`cfʸЂ'Ĝ >sex31 Ĥ̜̒ҼTKflsmZ>{U 9ex31 ̜b'~k]Op3\ /x340031Qp
qKcpH"ç5p7LJI/(ON-.K*cHbf-L	KBK2RQ5f0$W|/t>'SL 3=x31 ҢĜԒҼTW.K[pT(Β# կx31 \~U2=Jحx31 Լ̼T$-+~rRQ1i	XQ^bA&C_ߝ<O,D<3/%<>71/1=.8a/p7r.Zx31 Ē̲TU~H}R=3 >x31 ĂĢ"RspҤa5ۣɩ  x340031QHKL+dAȝz5qrw*g!ʋ2KRsS@yG1In8/ J#ǭx31 l?>r?tїWLLssSJS\YDt;rLd116eRx2ً2yF{!#4=Gp=6S 7x31 l!{ۯKU?=,0PMU֥'2o}vJ3tAbQqjg"}-yކ+r\CJ 'x340031QHHM+dk\WP sx340031QHLK+d;	ߔޠ Kx340031Q(H,*N-+dšD]v q.x340031QH+.I+)+dYY8{Do6mMҍ M<x31 ҼlCw<uŶj,, Hx31 ҼT;g{7`|k- ۛYx340031Qp
qKcj(wYk..K<NY3 2sJSR]q.!fʼ0TU>4s[}W̜?E] .x340031QK,,K+I-JKLNO*KI`UTf3-pC|k]JS x31 ԜĒĜTGVq03=:暜3 Qx31 Լ̢Լ>5:ow*-3'5(A#kO/XzWmvc7KA(gЎ/n:v|k-=PPXʠ~?xuE^'֩am6٩x340031Qp
qKcl?K Bf^rNiJ*Cv,k9&]]YC%bJNfRj^YfQ~^nj^^^J^Vq~ZwVY秇@+_% -#x340031QψO+,M+`qD@yQQMYOLpx340031Qp
qKctH{e:/ۭ71 ̼ҔT&=`˒k:Q4!$uI־vC)9Ii9Ezy)zYy9b\-~,ƓNg.sA ..x340031QψOI/-`(*9KMOѢt ]_x340031Qp
qKc0vt܆ɏ'51 ̼ҔTmBc%:,?TbJNfRZfNjf^^J^Vq~M05^Y{}b h@+Dx340031QH-*/OOI`xmt{; ·2ui9@e?Y|6ɡm/d㭏 x340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*`h߂p>p>u跀!Ĕ̤̜ĢTl<͛&X1uHJ @.	x340031QψOI/H,J`j@Ʀ%zn.Sbv I x31 ҢļԼ$/o=,,t3 {x31 ̜Tn)K&o8:ᦐ	DEjq~iQrjnb^bzjîܒW#8?#j\F 6Rx340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*PUk+H^Zo3ļTN+ϱ޵>B|w+5Y `2Fx340031Q(J-M/`>?D-꾮Y:k!DDM|r~nn~PgJZJ*,f[R E"gx31 Ăx_Y|.7T 
x340031Qp
qKcﴕWx또Q*&5--5$>-3$H/!-ibQE|-+ APٽQZP^UXYѣUм؟BE۳z&3\ DCpx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c}bQ㏄5&
-yb/xQՃ!<NOϽ!_ˣ W3x340031Qp
qKcXw]=}KItOI&'3)/$,52/Y//%[/8?a;/`+NECrk)5oԛO 5cx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2v-ٓIQkwBLLL,(H-K+K*cx&>ek 04x31 ĂԲԼ;/>(}ux340031Qp
qKc|;#7E&@SʰCb>ÓK3&[:#_!d&ed&de1f`ǧEF}yyi ;/{x31 ̔Ԥt׃4wi x340031QLIM*M`P*9jJ6u z(K*R*e\t.wW
/W ILx31 ̜tٟj\g~Տ#=K-<  x340031QO`(	U?Txfgw x340031Qp
qKc`ȩ\q]@F+[WKygb 
y9).OHۭvswK_C)9I%Eɩzy)zYy'یnŬ1~'j%ar ,x31 ̒T{_m\cyO \x340031Q()JLN`H(YUW.V[  |x340031QK,,KO,MON,()-J-`(`,;zr]>zݙ3 x340031QK,,KO,M̏//-KMKLO-`Zt[.a)өڲq֙ hܢx340031QK,,KO,M/JKI-J-`8owkOY3Ė ͥţx340031Qp
qKcXņsO[|M!DMNfR^bIfYj|njJfb|bYrj^rf^Z^^J^Vq~þ^Ol؍d+`)x340031QK,,KO)ʍO`d}es}OouǦCyjQP;5}E$̀ b%x31 ̒b?nYqlVTB x31 dsgՈgl`z2# x340031Qp
qKcH)ZXigwNJ 2
JK<]zb[o5SUXB +K*c8HP_\f9B= .x340031Qψ+(-MKLO-`w}\,L5#!\uvje|r~J*P ޲ZXDɹ $ũx31 Ԓļ"Ey._ZL=&0E9K85U>+:"7_BAIbr6;O}ЩEe '*¬x340031Qp
qKc ḓ>FTc Bf^rNiJ*Ά}LޯH~چSr2RKRK2Rg^n|v6.}}WSj 3Ox340031Qp
qKcX/^Ԏ(d%甦2	HK&<?%%e1%'3)/$8'>Y/8?a[k+5zo#( y.x340031QK-/.ΉO`xa똘ˮEp-j0/MY|IeA*PM_38礙yW Ec"6x31 ԒԤk~ݻhSssG D x31 _\g?d#&o	X08>71/1=sط3.;욲' Gx31 i3߮ۑOvN:g(.fزyfe+ Ucbx340031Qp
qKc]4#`sYτO=DW- 2sJSRTm|d'?8tvbJNfRFiv^^J^Vq~íym
a[\@: _X/vx31 ԲTsY^pHӎ6Լ"*k_=ʔ2Z* p;x31 ̤Ē"o3o2;;+y[ǩz x340031Qp
qKcBČ=őKtyK21 ̼ҔTZ|Bs׮Ki<!Ĕ̤̤Ē"l<];5'_nqq{2 g/	x340031Q(L*J,/`h!ʭ̖q7{UU|IeA*PG5ޘcD+ !x340031Qp
qKc0PoK߼xM37	rutu/H/-JNeY$=5g׷<odb 
e9ىy
k^WjuY~MW,% J:-x31 Ԥr?h?YUQ(x31 ̼ԢbxWʨP"} :x31 Ē̲TZ3!ϖnd|Բ  x31 E>6U})XAf]ta~q|nb^bzjogr]zw5e}O x31 ԜĒĜTM/~u/ǷmVZ \Guc2V  6x340031Qp
qKcX6fpt>><41 ̼ҔT%oIlf_s,#Tc!Ĕ̤Ē̲$l<K<;VT_+	 /x31 Լ̼Txlϸ>ĂL[Y1#UUj\~tyf^J~y|nb^bzj,.8yLׇ \+ơx31 Ē̲T7Y;|	kh
 x31 Լ̼Tk?'y<+tĂL[Y1#UUj\~tyf^J~y|nb^bzj,.8yLׇ b,?x31 Ē̲T*j#`'[j- p<x31 Լ̼T%^3?V>?CD	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=a{dz<&L+x31 Ē̲T޽cc#lLw+ bx31 Լ̼T_ۋXG<묝rM2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ i{-Wx31 Ē̲Ts?w?ޞ9c* )x31 Լ̼TW6kɯV_U%&`Ey7^Wy"cF
P̼ļ"^X[XㄽȽ 	-x31 Ē̲TLe^	>[a؏/vd x31 Լ̼TYV{bMO0ne_&oVXpcuq7+2fJJ.K/MKLO-beo?|<Ipv m*cx31 Ē̲Tc|UwϒjXƽ 5x31 Լ̼T5qkw[-L2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ ?,x31 Ē̲TkYX
͚=
J	x31 Լ̼T|.Gij6x	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=a{dz<&ȿ+x31 Ē̲T7	CD/U ix31 Լ̼T/dq8mPDù`	ĂL[Y1#UUj\~tyf^J~y|nb^bzj,.8yLׇ Q,)x31 Ē̲T;o9xθ%l `x31 Լ̼Tɛά;r+\_0+K,dʛ3R%L_VHg&%1ⲁcL>$y}x; -x31 Ē̲T{,[)H{Ē 
x31 \n_iiՍ?x4 <	x340031Qp
qKcٴ^;ˀvz	ʆ5YezlɿOLz/qXsk /,H-Էl&qvE1seLU`-)9-~5=) -a=ax31 Լ̼T9i=Ku<+I)G(/ *oVdH3}Z7"]_ZtkktW -/x31 Ē̲Tе7wj:%OzOx31 ĂĢ"}nT/6Z\4 O
x31 <{9VhvۧjFݶ&`T܂S60޾`WWFC3<J\+6<>M4sW)%)i+W}ɗNUp@&`$%9^'OK\fZwo;=| CҪ
x340031QHOK-J,K/ILI-+d8;_|+5.t 3KK+KRsrz-sP,suލnHB.H,*NK)MI~:92A9Bo\CV[RtgOS^M]-L Cx31 l)b<eRX3^*n|JfZ3>_qv;3*tAbQqjg"}-yކ+r\CJ
&ӣx340031QHLK+d8E28WhN Lx31 Ăx+eLYϮ~d}9I lx340031Qp
qKcv.A4Cmݹ._fQRXYXoq׵YKh8#z*
]mQiqPiM,=v'S;	Mirb^Yb1P-MCJVw5jsJerX}3:bSS
ґO]z֯6=V.V@榦
0%/.HLNjp{h?YX9ЬH-*jHO/pg3{WO7ߟW~助t!iH8#*ݔix/a\ee7:"''5$3?I!;scKIMs tPlLq9i]5Y$ҽCTm+I _ww^֮ϬFh2sAV_Ské3/ɬx RD<n{؛m6ѢuahY4=	҂Tgd	?i*;
sbyרjnM//.)JMjo㔔&eѴ$aW=-^G,9ity,*SҀ10aݳk_/5oѽZ
ϏM7Aq	/nrfEjN<${FY]IILg<@W	N^<,OU,`!9_єA{q*)Ӎ:[G(V2xY9d۾6ߎEm10gƧAyLΑ+02su||Ҽxs4J}ﰴsyjW|_/N-[|*a.Mt|N-nFmPCוt<5	38M91WƢ%<>'\(2<:]sYn3}$bߎƄ(R͈Rl"ɽj9rH?>YYqJByؔ&$%B˃G맭vcڿ:44z(V]%E@t.p֓gsO>q\ݪʂT?غ3%B|MڇE5(䥦{g`l/ECd&]-R̃m>nebIgn   ux31 ĂԲԼm%|deR?+Oy	TQJjRi:tئjnU/{9LEN~:CCaS0*|IQbr* 7kݩ_|1+  8x31 Ԓļ"s%zY&|MN|,s[Xz/*~l?,!$&g3DO=b涜In|s}g< d/<x340031Qp
qKc ḓ>FTc Bf^rNiJ*IY.^.zgؙmSr2RKRK2Rg^n|v6.}}WSj ?3Nx31 Լ̼T-O|k)2XHǋM2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ ,?x31 Ē̲T)3&yXq+8m7C> x31 Լ̼Tcj4<Kċ&	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=a{dz<&g*Nx31 Ē̲T֗&~EGߘT=,x31 Լ̼T͆\[:xru5%d2z]\͊|R+tC3RsSgqO?cܼ> <-$x31 Ē̲T5n7JL\~C x31 Ԓļ"!rɘm{V{C	LQqqí?s??zQW
J"ڧ}1s[$E~	b -x340031Qp
qKc ḓ>FTc Bf^rNiJ*CBIdpÖ9P<κbJNfR^jI|r~^^jrIf~^^J^Vq~CLˍN&qեϷj[ >1Fx31 ԜĒĜTE
äĭLJKSr<X֙.h_]{sj $x31 Լ̼T?'x^n|5u2+K,dʛ3R%L_VHg&%1ⲁcL>$y}x; .x31 Ē̲TY}ӟ/1Oh" Ɓԩx31 Ԓļ"7o|ZO}f~/2)*.agV/*BAIbr6CDԳ/fn˙d67wV 0x340031Qp
qKc ḓ>FTc Bf^rNiJ*sWxk/X*9|Hs)C)9Iy%yy%yzy)zYy3m/7>;uwU>߾)n5 m1x31 Լ̼T?Qǔq~AĂL[Y1#UUj\~tyf^J~y|nb^bzj,.8yLׇ ,-x31 Ē̲Tκ]^Lo}w  x31 Լ̼Tmu=ޔm[WcciKm	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=.8a/p7r -]x31 Ē̲TYs]jnA  x31 ԜĒĜTGVq03=:暜34%7e
MG=>w x31 Լ̼TYb.3m>1ʮ΂&`Ey7^Wy"cF
̼ļ"^X[XㄽȽ ʟ,x31 Ē̲Tnm*"٤<y \x31 Լ̼T;/nX1[cg7-eM2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ b,x31 Ē̲T^~Pw+db.,z6WN\: x31 Ԓļ"qCSVGl~&0E9"̱^TEzX^eC((ILfhzm9,&Ίy 7.x340031Qp
qKc ḓ>FTc Bf^rNiJ*/hQY"ةTC)9Iy%yy%yzy)zYy3m/7>;uwU>߾)n5 3x31 Լ̼TNg#wړ`	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=a{dz<&+x31 Ē̲T
5sW| ͇Xx31 Լ̼TYb.3m>1ʮ΂&`Ey7^Wy"cF
̼ļ"Y\6p,7o +kx31 Ăx2
ݳ\KUW )x31 Լ̼Tc?л3A½[~I9L2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ h,-x31 Ē̲TS8ƖO<% g'X x31 Լ̼Tu}<=o٪m&`Ey7^Wy"cF
̼ļ"Y\6p,7o (,ۡx31 Ē̲T?&\YݑNl  x31 Լ̼TWaKT/8(/ *oVdH3}Z7"]_ZtkktW ,,x31 Ē̲TWԕ'+J<[rM x31 Լ̼Tu+~KvR&`Ey7^Wy"cF
̼ļ"Y\6p,7o +x31 Ē̲TwWqax31 Լ̼TeL7i¾?I5%d2z]\͊|R+tC3RsSgqO?cܼ> qv-x31 Ē̲T9;׉n:aAw5 Rx340031Qp
qKc|Ï7ʱkַeN5INM-J`Xu[g$B6mw95?l<ׄx'/	q27s(OI-LNz%SK9Y~b9ڥUif^Ai	P*?cj(˦Uenb^bzjPm{Wt}Df޿g^ڂҢ<뼓}q}vdWKTqnjIbJbIb|~i	RVraUԾnOP%h__YV0E@淪#v>uܕhp`Qg3-LIE2u/$}Ϫ'iz !ex31 Լ̼T>_9ռ0o_}ZL2nl.fEƌT	>W:|s!y)yE߳lX'Ӄϟ1	n^ M-:x31 Ē̲TCB^xOnk\ ٩~x31 Լ̼T42%H%d2z]\͊|R+tC3RsSgqO?cܼ> #(x31 Ē̲TN_.Ȥs72{%'zx31 Լ̼TUoNms}5ܨ5oL2nl.fEƌT	>W:|s!y)yEO/vA	{{E_L 	-ӡx31 Ē̲TWZQX-' Czx31 ԜĒĜTGVq03=:暜34%7g ѮCj?{z: x340031Qp
qKcLrϟ=ͭ+:Eo41 ̼ҔT>	gO;ߜq#=BC)9I)izy)zYy	exwoE R+x31 ԤĢn!?7Oߴl_*gy_MRsK2sKRBXdkrrҔ4uWg(|7ܩ M-x340031Qp
qKchjupw>~ަ瀉(d%甦28x=)Gٛ|'v4TX\XUǐ,s[Ǳq-g衢z'  n/1zx340031Qψ/H,.IMO,J`-Z-#ͤmF۔wbQZT
Br83σܲ\	"<x31 \59Y-weK0Ju }4x31 Լ̼T4F'tJ&U$gdVXp=>öWtyf^J~y|nb^bzjK/-]q^n^?ӿ  e.x31 Ē̲T*N[9
;_(%sO" x31 ĂĢ"},ʼ[9],u*F< x31 l)b<eRX3^*n|JfZêBj64y.H,*N-bL7V7pEnkwH" %x340031QHLK+d8;o-.oȴ x31 ҢļԼ͟+H2_yFkG	 <x31 ̜TOT_PEMw쳣wkD@T%&%19Ŝp֍ľCա+} !x340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*PϦgw
37)3KܿdR(MU|nb^bz*LXZ}{~޻H1x340031Q(J-M/`8,>C %LO2O*[Fx>[ !x31 Ăx߮ע} qx340031QK,,KO)ʍO`x\-]_ckgd.5PZTT{zJRX^]CwϪWlD
 #$-x31 nqnR,{D	X63$s]ǭelKwt\Bs2JSihpTNϴ"R\_uץueQr7vt_ݪ.USZÐ';iSJT>~՚'E_-R
/HsqfXnek>?y3/&J2	$d~G͖bU4';1O7#51%]Ev!"KiZov@V}hf`%#W|NV &4ĭx31 Լ̼TdKK2ٻcCYM2nl.fEƌT	>W:|s!y)yEO/vA	{{E_L -͡x31 Ē̲TOG݈(`T(NEM rx31 Լ̼T_[p*U3X6YƏyĂL[Y1#UUj\~tyf^J~y|nb^bzjK/-]q^n^?ӿ S,ߡx31 Ē̲T'ĽN7Ȼy\pc w:x340031Qp
qKc|Ï7ʱkַeN5INM-J`N={4WÖwGu
76K*c8Wòm5'V^sa)eɩ@SȈ/?'γKh<̼fv7/7u/&ndļ"ڣ1h+Z(5wR+\mAIiQj|qjqqf~P{ %nijVm	**M-ILI,I/-E6kυD: #$R5C8ꢡŎ͏+.v	탩,z?kMͅpksu¿,3%T1;W5be x31 ҢļԼE*7XtWszVoM x31 ̜TOT_PEMw쳣wkD@T%&%1:z^uū)Tw  x340031Q(J-M/`ؙ#zs_+
&>9?77?4ח?lejlYpP7 M!ʮx31 ҢļԼ-)dxd) x31 ̜TOT_PEMw쳣wkD@T%&%1\*2'|<!X1!H  x340031Q(J-M/`.#qnE&?BTA'orp㇭L{#<-  x31 Լ̼Tk]f=huIKG%d2z]\͊|R+tC3RsS_zama킎w# ޿0(x31 Ē̲T%~I]~V<G_xZ8 x31 Լ̼T+?!X2MM2nl.fEƌT	>W:|s!y)yEO/vA	{{E_L z.١x31 Ē̲T}E6u*X_]3uqħs Zx31 ĂĢ"%noԤ-g.N-+~ fЦ
x31 <{9VhvۧjFݶ&`T܂gE<[i]^K1D!713ODkAa
*O͜bJIeAjJj~rn{V6'nNtv(-)f:yZ2SwUr{[y$<+ 4Ax31 l| L5e240031QHM+/H,*N-*fR;lr]g7wjm3#tDKe޺tzqC!F0bvw22LUoU1x340031QHLK+dpfÎKe9n_oP
RvSuPm-ϷtAVWPZ\_ֱ*ǦVz^V(GB:
Rr33@6mP ̥sGz-._ F:Iʠx31 l)b<eRX3^*n|JfZg}Dzn|P-w"D 8a3Xվ<ou! 'x340031QHLK+dx`Co	 x31 ĂxsO^6܎XkLzn x31 ԜĒĜTGVq03=:暜34%7!Zl?_J6I^) x340031Qp
qKcLrϟ=ͭ+:Eo41 ̼ҔT+%GdZTpbJNfRiJn^^J^Vq~Cs>;ݛ#oeG? w,Yx340031Q(MM`^:)4bBzGOr6DO-*OOI*xmtv2z!+M-I*s	,WE%Õ]h̴[u-,za
JR
͎L$l9aS %YDVx340031QH,+IL-`|tM^TF^_ݱ`b pEŵ.p}9y"h!AIũ@k6?,pmh̅V\XPRZʐM}Oᶥ9	F퀚XYXh[K?rɈ3?Vw~@3~M0\~Rw,P[rӼz.EEE@[յ3S=jMߩI_Lx31 ҢļԼs-Cŋuo0A E7x31 ̜TF5$6NZhz_L"8(9571/1=!R9[ٞ9$4Ŋ	A Zũx340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*PU$k5Fs~ύ(*?珦*>71/1=dӊswϾ=_?uu 90x31 Լ̼TlٽGzV_rL	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=.8a/p7r-&x31 Ē̲TzFt2y0uQx31 ԜĒĜTGVq03=:暜34%7:9ogOͬ=V,; ¢x340031Qp
qKcLrϟ=ͭ+:Eo41 ̼ҔTuqZx1(l?bJNfRiJn^^J^Vq~Cs>;ݛ#oeG? -}x340031Q(MM`fR?:!BE|jQQ|r~J*P@n'{n{{YinjI"PLGK\LgGZ/"_-;%4-[2˦%}ڟ$hɴMb=Vjf> [Fدx31 \͵rW!O x31 Լ̼TVuxzߥ}xo6+K,dPVM}Uea+D<3/%<>71/1=.8a/p7rk3x31 Ē̲TϷ愝	Ι eax31 Լ̼Tw&NIۣ˵\0	XQ^bA&ÍUެȘ*g*Bo.?D<3/%<>71/1=.8a/p7r,
x31 Ē̲T+'ίfXxaD	 vx31 Լ̼TSl=a?ԏoVXpcuq7+2fJJ.K/MKLO-bx~酵:N܍+gw /x31 Ē̲Tf<Ckr_4U,q Mإx31 Ăx*bx\sҸS Tx31 Ăx鯘}c[|ষo  Ox340031QMLOO`8Ʒ|gmiZZ[/0DVXY
T]hᦽ?qt] 19;(!L	5GJis(59h6s
>%-+iOSEKq~iQr*'Bnk˶_ZD̊ԜbwL)긘 {zRhlӭx31 Լ̼TN+_*;ܠY/(/ *oVdH3}Z7"]_ZtkktW V+gx31 Ē̲TlCd߱=z x31 ĂxmU^h> âx340031Qp
qKcЪə>!|IЅwmZlQ__Z0/5i-]W39 P(+Nc5CqejĄH]27*}x31 ĂԲԼm%|deR?+Oy	TQJjRi:g{8}\%t)bW;aTٽ0Tֳqo׺SXctW< qg85x31 Ԓļ"]Dۺ2_8jiST\P[SS5ÿbS)rzs/k $&g3mW[.ۈ\ ](x31 4g"._yk_{,]_Z9ۙn\^svMYj {Lx31 Լ̼TIWe&`Ey7^Wy"cF
̼ļ"^X[XㄽȽ B-ơx31 Ē̲Tv́U%I$| x31 Լ̼T<dͱsx
<*kVXpcuq7+2fJJ.K/MKLO-bx~酵:N܍+gw *x31 Ē̲T	}=\3>HnS( yx31 Լ̼TKk1ۮ`(<R@M+%ĂLeWX_MB3RsS_zama킎w# T/x31 Ē̲T5ǪY)r C'x340031Qp
qKcp_`kuy'iܲK&BԤ%'&Ƨ'ee0p8m_h5Kߘh4ՐUu53ˬw.=2nbUXYX
4ʹfo]\ 6%31'?3{VvuJSKJ@7\4nŮuwΎ)̼Ԣ43X7޿w6ޔqH-K+j|pk=۹>jOivumM~\(ĂLssƓ~kK{., ۸kR|_M^d4UvBsS+S qfSI9CaϊP%9)%Ey`V9% zO2.EW܀*-͌+(-˺^{s]Jwit 
{wx31 ĂxUϜcJ /ex31 Լ̼T_MuMC#nxgVXpcuq7+2fJJ.K/MKLO-bx~酵:N܍+gw /x31 Ē̲T&ӻ}n(}s' x31 Ҕl屟nyu;KhI8iʲd^s%j^%@SL}tL|{"+˅(M)ERϹCI/Zrw>Q\>c)=7XLv:Yg]e3^_N^rQi>{ԔLKRK2ne83^r3$4'3(Ï̱\u8L>l^L1D]ANbejw+_J(f7G	 Ѯx31 TU":PvpB^bIfYj|biJf~|rFb^^jN|Nbe~i^ܭ|[FۗMcYRiZZjPO%*gYrܟSq̼|'Y<xzE:R򋊁ߵӄGjfn-4a:b/DvZ,|B/GTLY+M/*8Q#b>oj<i1	 Շ|x31 \=g*tk~w}QΩV o	x340031Qp
qKcٴ^;ˀvz	ʆ5Yezn5Ǯ#$;Kq$%@u2%3fRHoPu9I`R!߾IB% :x31 ĂxΫs?y0=HV ]Sx31 \XFuɇ4 o	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez˃y-|jϋcI.%1H*K*R
Ǵ[>ȫ޵.'3	lX^J^Vq~qH/ϧ #=Ex31 Լ̼T_MuMC#nxgVXp=>öWtyf^J~y|nb^bzjK/-]q^n^?ӿ O2˦x31 ĂĢ" ?:.i/x 
x31 <{9VhvۧjFݶ&`T܂w/3_LLr3
*
.K>p]pج4_!T12_#|fNVG-WCTd3x<-qk޽< Ex31 l| L5e240031QHM+/H,*N-*fR;lr]g7wjm3ƐqmcV(ZDb}WS]=A< 5Cx31 l)b<eRX3^*n|JfZôJLWo뜕p63tAbQqjg"}-yކ+r\CJ'{x340031QHLK+dHRNšoROޓ+ ݰڥx31 Ăx
Χtx.|_Y \|x31 Www[6췼Rqj1ZkçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1?ԏGM/M9z~eₜ}U~͚|./?SQ5%g3ի}AxetXP\0s'MSu<_NV=L!PW%3|[ҝi+-wI?=)Qb!2RV}\ĴsmBԕd'1I1T`ݥD뒺.x31 Լ̼T$-+~rRQ1i	XQ^bA&l	Ç:>_jl~9!+"]_ZtkktW -"x31 ĂĢ"]>:|ta>w ?%
x31 <{9VhvۧjFݶ&`T܂m.BEvl|p;D!713ODkAa
*O͜bJIeAjJjh2Q)7"+K*/P(-)fw_wWo  Brx31 l| L5e240031QHM+/H,*N-*fR;lr]g7wjm3p:FS=o|[,y}5DbCdE3{n<>36z
x340031QHOK-J,K/ILI-+d`}:GgRwYBך BvfI|qiR|qeqIj.CNTϳeNe.ٻ-ICEũy9) C&}@Jmթ٫&EV[R7WjJ%;*cXT	 D0x31 ĂԲԼm%|deR?+Oy	TQJjRi:FˎE'o:"tr)t)bW;aTٽ0Tֳqo׺SXctW< g48-x340031Qp
qKc|;#7E&@SttDeBlj/8bJNfRFfJjRi^^J^Vq~Ch	{|*_og'V  c,x31 ̔Ԥt5sbT&p  /x340031QLIM*M`cOgE[Y+'r(1DQ_RY
T)6\G]QUֲ}  x31 \qsqK /
	x340031Qp
qKcٴ^;ˀvz	ʆ5YezH\\dEP^+%ېTėTuWhzYw̓U?ޔ	U6,/%[/8?фO1sݵth	&sٞ 26=jx31 Լ̼T3f/rnյ{hĂLeWX_MB3RsS_zama킎w# 0`x31 Ē̲T5Ln}4[캣߲\1έx31 Լ̼Ty3"+x}+bN7+K,dPVM}Uea+D<3/%<>71/1=.8a/p7r1Sx31 Ē̲TxZuѷ?Ưx31 \|>?,pޚ[ ʭx31 Լ̼T;ptͷ/6&`Ey1}w^;7؂ٚN?̼ļ"^X[XㄽȽ y/~x31 Ē̲T,L.hW[Z 
x31 Լ̼T)zy߻'?2+K,dPVM}Uea+D<3/%<>71/1=.8a/p7r(2x31 Ē̲TOnit+
nho? x31 Լ̼T35TN.9|6:9L2.~S_c٧~{6
.K/MKLO-bx~酵:N܍+gw 00ox31 Ē̲T҅7K2,3ço
Z% ƥx31 ĂxϋKh(L]@Q x31 Լ̼T>;\!ٞ^{+u4+K,dPVM}Uea+D<3/%<>71/1=.8a/p7r.%x31 Ē̲TWV.,WGleu4 *]x31 Լ̼T;ptͷ/6&`EyJ{S=lHg&%1<]'F}3; M1x31 Լ̼TӫWurofKۻ(/ BY7U{o{<}m̼ļ"^X[XㄽȽ H2ϡx31 Ē̲Tn>[6/[Q+Ҽ ex31 \^sLmsO_  Kx31 Լ̼TV{nWĂL3mOYqOL1&%s"]_ZtkktW 	-Tx31 Ē̲Tv{Ǹx<	k 	x340031Qp
qKcx|=au֔K!jss2>=q䶻ǙdJ;]LK,K*c<Hڱޘ~:S^K,,K)`/X9nnU;Nݼ  &B*x31 ĂĢ"j<Gt;d޺"ӏQ 
x31 <us"t'Louc?Z]4uWeR=sr>NEo3rN040031QM+d(,ZPuaD3'RRYt"_vⴷ<ܖ
QQZS0=͍0N]c{ TF٭x31 l?>r?tїWLLssSJS\YDt;rLd1TyMuf樴Ju-Oܖ"1A*-C%7\̩< 95&x31 Ăx	sܰ^h-ةO x340031Qp
qKcx+}N;gd/>TC̤Ē̲Ҵ"l<z|/anKX4&T7|{ܦ#/L&ǸxT 7+x340031QK,,KO,M̏O`zCg_ǯR*!)eɩIũ@]'?UpeLجC}OEWqIQjb.L۲-cZ42oVT]*sw%NMI9)E@mNWaw3z .Y`x31 xVK?=?[Uk63Jw^2S' x340075Up
qKcxébv{Zn4];t` PKf8msv$y!&d&%de1ԭ|wĵZbځ/2٩E ./x340075UH,.N-O,`#f1w*\qYYIeA*P(oԳjy%՝ 4x340031Qp
qKc]4#`sYτO=DW- 2sJSR2.<Xख़UkC)9Izy)zYyNlw)lMos #,ex340031QK,,K(.O,`x(wx;'xĔĂ"&Տgnne,_`TXT~Ȥ/,SmD.2g%@ǃBYԦ(${Q L1M7x340031Qp
qKcX`R_yVL PK)MIeXxBai+œߔBLL*IMMK*cPh.o/p͵  +ͭx31 Լ̼Tg

-qi^&`EyJ{S=lHg&%1<]'F}3; h0x31 Ē̲TNEvN)kuٟԭx31 Ăx;,ix޽o: x31 Լ̼T~~.YrTǬ	XQ^bA&C_ߝ<O,D<3/%<>71/1=.8a/p7r G.x31 Ē̲TY)^y>JԬ/1y NHx31 Ăx*l,x«D mx31 Լ̼TS6vavuoq	1+K,dPVM}Uea+D<3/%<>71/1=.8a/p7r1x31 Ē̲TgjԖ8D=ټx31 Լ̼TUfTylK ʞKq^ĂLeWX_MB3RsS_zama킎w# P/x31 Ē̲T9x1ᶠ ѽxx31 Լ̼TF|ٚh}XW%d2:ۍ#GRd<T3C3RsS_zama킎w# p.x31 Ē̲Tt
ˢ߹uyR> vx31 ĂxN3r/7tl42 x31 Լ̼Txk؟oS\hVXp=>öWtyf^J~y|nb^bzjK/-]q^n^?ӿ ZJ3	x31 Ē̲T)~SWLe: ,0W]< qx31 Լ̼T춺7co\6+K,dٞ<t)Hg&%1<]'F}3; 0ܡx31 Ē̲Te[6Yuf x31 ĂĢ"?wVp-W<Ѱ 0
x31 <{9VhvۧjFݶ&`T܂"b%:W޵F\D!713ODkAa
*O͜bJIeAjJjCy:Œp%9sx5}M }Ex31 l߼T7xch``fbW_XTZUvBo&&ϧߑf6,%3-cဨh/pʧ!#{5Lw1 8<x340031QHHM+dȷ}GSD_<C$5) uA:nU\"(y(sSA
7]K#-h׼zŕy% چKU/"ݛ4?775$ 8H/KuMLTO# JsRNg=9~  7]x31 l)b<eRX3^*n|JfZC7UY\%ٝ+ EũE?ƪyȭs)] 6(2x31 Ăx2O^߬^)i %x31 Լ̼T4Cn_UdΕpz(/ BY7U{o{<}m̼ļ"^X[XㄽȽ UG/ܡx31 Ē̲TcYWwo+yG\0eqG u!x31 Լ̼TĚ;<ThR4_ ѸB(/ !kg{[?[|"]_ZtkktW Ⱦ-Lx31 Ē̲Tu+w\\]²xed6 H
x340031Qp
qKc24ս2{7M;$Bd&'&'de1<Ra<CjT9Ձ<A}x˽]e.>9?77?iK}o,_[p\$3 Ex31 Լ̼T_J)>Uv_(/ aLSw}S	tIs\5Hg&%1<]'F}3; o+dx31 Ē̲T} ُ1a; x31 ĂĢ"ϝsqE魺tkOd
x31 <9_wK)WME9
\}-Q{`!aC3<J\+6<>M4sW)%)i?Կ^klR!f˰%9sx5}M Gx340031QHKL+dAȝz5qrw*g!ʋ2KRsS@ʼvxۡEs5 <!^x31 l?>r?tїWLLssSJS\YDt;rLd1<bA'S #3}*dYǜ #/8x31 l!{ۯKU?=,:tov!EũEw{>ɹН1ƻ'7_ ;U*ax340031QHLK+d4\(&ׯޘ\Z^ jx340031Q(H,*N-+dZ'5dZe_m]x31 Ăx	O{i=22U ς! x31 ĂԲԼrTt&\q&PE)IdNnhaq>`*r:Vsv\Qg.KSB4a/'xO} M;x340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)_)NU<0u)BLL,)JLNK*c8ft+fc>Q-A' C,x31 ̒T2/iH_qj֭ ţx340031Q()JLN`1zElyk? Ix31 Լ̼Tca?[*KʒnYkVXw絳=}-xS>.K/MKLO-bx~酵:N܍+gw D-tx31 Ē̲ThϦ]tq)O x31 Լ̼TǞ	չ}u	yq'\L2bv籽o5~g!y)yEO/vA	{{E_L /x31 Ē̲T>|q1fK
 Fx31 Լ̼TloCj{dXK.>_iVXw絳=}-xS>.K/MKLO-bx~酵:N܍+gw -x31 Ē̲TWXԠQ9갡$ ɖx31 Լ̼TsӛVnxpNNwM2bv籽o5~g!y)yEO/vA	{{E_L ;0x31 Ē̲TIb|c:[x31 Ăxi|c~93-Wz^z 3x31 Լ̼TF|ٚh}XW%d2\(+*mǲOm"]_ZtkktW 1߭x31 Լ̼T_shP٨aL2bv籽o5~g!y)yEO/vA	{{E_L S0x31 Ē̲T;]_xskTv> u]x31 Ăxyfek+8\nVSo ĥx340031Qp
qKcP\ka%K-طQĈĢbćqfKY8¢ke?)dkSd٩9%y@{
.Թ2tKQqLj$EEE)@Z&]^k[ar҇Sfg~۸7*)Բ7Eݝ0eTQNfĂL<ɲjW/.Za~! ux31 i3߮ۑOvN:g(.fmQr.K| Jx340031Qp
qKc]4#`sYτO=DW- 2sJSRvս+ww!d&efde1:ݝ7pzڦ)6Qυ .x31 8^,ܭP]P,]_Z9ۙn\^svMYj ޯx31 i3߮ۑOvN:g(.fֻ%%~4ǲER~[ '
x340031Qp
qKc]4#`sYτO=DW- 2sJSR2O-}DǙkBLL(.K*cub;oMaS4lxKH -Wx31 Dl9[,M҅yEþvuu1gה/> +x31 Ǳ>/)Qc|3,]_Z9ۙn\^svMYj x31 Y+d"a9*L҅yEþvuu1gה/> <x31 }N*>V1f{ta~q|nb^bzjogr]zw5e}O x340031Qp
qKc8:%T¬sf]d>}kb 
E\	i4woo@O~/!ҊJ2d1wO>M\ YE^J^Vq~OE4]^1 7x31 yO^ЛWc9=VsS>};cή)[m_| - x31 5ۦiuf]s<W=,]_Z9ۙn\^svMYj ^gx31 :gWQ3ZA%i&`ļ"at;:kV ̞x340031QHK,ϋ/K,LLI`JZ7{=sv>'? mt'bbT뺶@U䖖V xDM<rCφiSGk{Cq[b}kצw'JsRSAmX\&sʍU}/L҄*)I,pѭ{fTddj,QT!gnܜ 5>%5.5V: qsx31 skAbgy6}&`ļ"at;:kV %~x340031QHK,ϋ/K,LLI`M}pDd'-/fKfB Uc)==}Ғ
[KRBZP% {
p*]U灸5GJsRSAտ}6:씺cc[W@$gU,EʌsO_nv"*u&G2>? 5>%5*4c~`ùiFz
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%`	D6n׮zSzNE%]v=쬱 @x31 ҢĜԒҼTKe̏thʘx31 \	N|*2E]ZO 3x31 Լ̼T"/;5wo&~1+K,dxvZ3jk}tsg  x31 Ē̲Tc1[\7?a=^ 8Ʀx31 ĂĢ"hu~.گjb~Kf ֦
x31 <RVNu7^羆:r	X69(3 '^k<_~}ֿnh``fbWPPpY0bfǧfN
1 5%5aJ=ڞWg48{}UDEiIfN1|;-ӵW|fWP_b Cx340031QHKL+diQkmSd:ι! x31 l\7>>ԧ}陡Br~nnj^I|AbQqj^V1a:W>Gn	ذ̴49O?rݳc\.%4	9z`1Nx340031QHHM+d0g:/qkjٽu\Vħ'k>̙5sy<N"uy feY:7]v(,+I )-6\Ux.0y%EũEzY\jM,_mb|m&@PTZp:|V_PXI| 8]٥x340031QHLK+dkwGi_CL1սhP
R+WINXsVduEɩEy)`wrȿqKlêufg35a/}U'|7{ ^Ix340031QHOK-J,K/ILI-+dhX17=:+}瞛 CĢ̼ҔTڣM1V/I:'|Fj?dE EVzat M69x31 lW}Kw̝sgЩ/oN0˧d1ȼ;wE۹~o_.H,*N-bX'}XHdb&~L &*դx340031QHHM+dx̖&qm  ңx340031QHLK+d032x@_B}\))%m 1x340031Q(H,*N-+d蓫8aWXUZ  Fx340031QH+.I+)+d8I
9륣 -rx31 Ҽl"e7D\4.& FBx31 ҼT{5?mN}r~T Iqx340031Qp
qKcj(wYk..K<NY3 2sJSR|21yѳy17o1Y_$m1%'3)4/%'U//%[/8?S}hF粷:99~ R/Хx340031QK,,K+I-JKLNO*KI`d딼[C]l!G=x31 ԜĒĜT`>/4ދ?, X(x340031QHI,IO,.N-`XjnjjɖQpo*_S!D]~F|riQq~Pٙ	O\8c#bmgk4
RS2KRJK"2+_"%攦'e&qLI"KY,^b|?v-lcߟW<K_&$N4_U]X_\_
4u~}D앝T7!.EEE) yuDw& ~x340031QHN,ȌKKMaXa>_1{>nCʌĔ:-Sk˜g<qs7JSK3SRA
o^:Z߬z x0x31 ԊԢĜԲļ"9?C?|-reCDp ?%x31 '*s/;MI3̹/v˚>-z?4Үx31 Լ̢ԼhK4Z?:\/M2sRK2}\TlT4RJ2_I$b5Fx`1E[0&fxSW C:Fx340031Qp
qKcl?K Bf^rNiJ*on*{q7C)9IyeEyy%zy)zYyjUuZesB| /x340031QψO+,M+`S[Jpݸx Zx340031Qp
qKctH{e:/ۭ71 ̼ҔT	u'~>ΐ2_K!d&għeƗede1qO:k|ûhSN0Sx340031QψOI/-``^=(?bk !äx340031Qp
qKc0vt܆ɏ'51 ̼ҔTI,o-'6-\/Sr22sR3RnJ'ѷ*jӜ +x340031QH-*/OOI`xmt{; ·2ui9@eӹ,8v*u~UYL35?D  x340031Qp
qKc0P?{GŅ-Z5 Bf^rNiJ*ïjω3]6}+T-NvφSr22sR3RR~f_{㳋<fx 1x340031QψOI/H,J`h6^$!PsJ /nhx31 ҢļԼ9m^mr2 ~x340031Qp
qKczjg{&ߝt#m(d%甦2,]w]L-ɷa1%'3(<-3'U//%[/8?!ǁš9EXw<x=mC K]/x340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*P[q>$}hsSAfN`dұ{Yv&C 4[x31 Ăx߆1/t$IKZ8H  mx340031Qp
qKc\]x-.m_`QUQ޲݅,?&v
 (x340031Qp
qKcǿ3&afY{o}Y4C̤Ē̲Tl<a>ܬi+̈́Aѐeљyƫ7>ČMf&?Ya6x340031Qp
qKcXsSc,e7t2LK,,K/+KK*cδB=;J)SkAѐ\ZxE[-"œz 3wx31 ĂԲԼȦ6Nvc]+!&pm5*JIM*Mg{wb\Y}i~%"'?!cu0ǩoaN~}vL(19A!'rŔ%~2:^֭ fm6x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2t=bZ̳㙖ozս+bJNfRFfbAAjYj^^^J^Vq~c˝2~O~s'v); 82:x31 ĂԲԼhW>	<M׾ c/x340031QL,(H-K+`ж53w:t7/(9Vj.>9-Ѳ߯~_O&ja&
b?qki;slT]XTݤ3.<I3' F'x340031Qp
qKc|;#7E&@S%r!d&ed&de1\/U% .lx31 ̔ԤtS54):ɋ.|1p6 [x340031QLIM*M`8b,6VSS='EQ|IeA*Pu=jSSa%Js x340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)-3,e+ΞVSr222KSR֜sKNw&'p n-|x31 ̒T$~U\>iF%GۻN  x340031Q()JLN`t-qGD~E кx340031Qp
qKctܑV=UysL@!4%3?>9(!羿܏[fNYaQj^J*H=l1~(`"$Y{jq=<Uٟ*N+:!]Xuzy)zY@FSV4Y&x fKx340031QK,,KO,MON,()-J-`ȸZ4Zމ2_, cx340031QK,,KO,M/JKI-J-`ɵNUQ}^\ x340031QK,,KO,M/.)JM̍OJ,N`01i}b9`ltC\J3sRR\6>Yu_eZ\ojDuG(x340031QK,,KO)ʍO`f#S1IUTZCyjQP;5}E$̀ %px340031Qp
qKc|Y}^|!jr2
r+SR)I1Ztׁyj8V  D x340031Qp
qKc0!*cr+oQXYXV\XPRZUpVOӌA'y4;j kk'x31 Ԓļ"+bnE<lNa3)*.a^©_թ95
J6Y}b+EN-rmDf. v=&x340031Qp
qKc ḓ>FTc Bf^rNiJ*CǝSߴў!Ĕ̤Ԓ<l<\)|}{ˊ0.x340031QK-OKM.`pv.sOʵK+gMm|IeA*PJ>yܯs'=lcFl g*$x31 ')ϸd\˾mUHy&`ļ"iM^ɕ145: ǡx340031QHK,ϋ/K,LLI`)=Vَٓ^8xB>$d_\{"K.Np^JR)|/ZC!Mv^|8'5 DHjv̘Ju2嫥}ר*)I,8Moa/$JfLEeAj|JjPO~XrD]Rx340031Qp
qKc{P!QBEǯ;&@0{޺]vJ.-xo!DNfRa~^^J^Vq~CIqPlU #-'x340031Q(/`8uGjņmYEL<3 ]kx31 g[ύQn758anV|Fiv1zy~QFߨvfS 5x340075Up
qKcxébv{Zn4];t` PKfM6cˊ/Rs?i1!'3)8D//%[/8?n#~sΗiN-, 1wx340075UH,.N-O,`hߔ{.ƈCtfRVJJJ*R<H][>~? x340031Qp
qKc]4#`sYτO=DW- 2sJSR/Kۼ>>LǊ)Sr22JRN:o3Nu)h, 0Dx31 ԲTק+_A`e9Gt[nVTW_pRi;k؛K휽  x31 ̤Ē"RO5<fk%z/H6y 0x340031Qp
qKcBČ=őKtyK21 ̼ҔTG'?]UWBLL/L*J,/K*c:ٵC]3xf- 1:x340031Q(L*J,/`x H٭^N}=UU|IeA*PL쏾*:  ?
x340031Qp
qKcio?V$$voj0L*N+/K*cX|ŏBgw+LUU|Hb_p{,v.CW_RY
Txh}ΤZ^>laf Z @[x31 ҼT.f㹿E{B%k ݃x340031Qtvve!ۨoWֿb
0(	rutu/H/-JNe؛S^|\~?j*2L@!;2kRP k(Rx340031QH-H-`rYO%>oE!J2s̀J-1:?ՁZAہ6xAyJ?w<oܴhT U
kl<|m2>۫T̞R̲6wL5<mE\>$ODL?+C/`@LtOi_`\Y5ħAީu∱KXrKZ| i[X6<ּ.**I)]//BPF=
JS@
VUlڙ-962FN BxU{<T\3K&+'lV":Ƒ19v2-.Ԭ-&k+B-^6hoΘ3ٿ9|?Fah֨[rte?mm	,.V">K^ԣn&]JA.2AhQ RЪ!($1JX@8=r%k!<;_G' \ɖ_;ˠ[u톺.gݡ12AG$@P+Z,+}ϋ4D8h:&rp*~eA[a C:gw!  FFHۭK+;@^TH Qz$~(
֮+Op2j,*It>}yw9h̬B%"8]֢iOO7Az!FtvLwy#7:M ˋFĪ w9Y)!n`6?C{UԴֆXR3*Hao&3	¢IUX/,*PΞ=雖aj0B{r_S'[gtXqffD%z.bGe	2x/pX.:}G8& ID;@EUfJq!`C^614>:
Ks lCIɕjb#g 5OL5qHG55M@ DsZk)0QߜyxA@Cl,Af5 5rFp)9MZB][ ќRHCӱ|ZCzN9iI+Tϻaob~00(	B,wx(Vf
e8b83-2C]K(	L^8_\  g	1tY]ap;vss&_(Q,ީTQJh3ǟ}48W9`"=mGbA2^y!{&Sl0|{UE遲|F&r!o!-*I}Guu+q$Pll2WKW\pDDQ6ʪ/YcY[@?&	DRrZMhfH/#'N],O닐.6d\z@( S>XdMxt8gWqr7zՉ!cQRP ߨ!)ETCk}Y쭴׹eB7#=khkl+lYfbȇͣSw6d)R2:Y(Jnmwp^L.7&`IJk|_~|/G)Bp4@:7啝*DEt$%P$>.
6K^'͔+yMgt=gh:7;Rգ՟!0^vhyUCAӽd ¤K_ġ=+бcХ :Oy\k3A-	Cg97A[oG֯٘aǛ@oZ%ȁe({EuI*Eu_p4I1!Km"J~ת7Te$NB(YwxN&;쿳|K+y,FX5'IuZwiDj/j˒~#*IZ_?tb珸Ih0qx]3G<?/%+'v<eG<j3/N@@4XgK-GAv{fl3kKx1>xkvq}gS?7gdh)N}P}"g˟fS% ?Hf]ŤaS9ilХW_a5{ox"(^*PmY;bCH`Ǟ\!톢x340031Qp
qKcX;2Ö+rfg/! SJR>MZ#z#'\ is>l740075UH/--Ή/,./+`qa6,Ħz#h;(lĔԢbd,ws;ȶP=%9y ugӳ=Ҥ| Ux340031Qp
qKcwonWFH?ebQU\?rfӗ=tܶ?kå M	x340031Qp
qKcP7
7b^\/ؕ!5J>*twTIAj^p~iQr*kKU|nG'\;|(%3O,ek[4}g{vtWK 85x
x340031Q*K,,KO,`xrJr%W,;rC,JK*Rv%6ʹCw3gDTC^~
Xc57]*ԖdXMU϶MĈǤ;7|k B:x31 ԤrD?0AW5I?N  cۥx31 ̼Ԣb6ٹܾ%[
Mc dx31 Ē̲T6	˳OlZdַK x31 Լ̼TYv:_Y0@pĂL;ylllMYtyf^J~y|nb^bzjK/-]q^n^?ӿ :}.x31 Ē̲TrM->?]ˇ#$ ex31 ĂԲԼrTt&\q&PE)I-;K\oбu`*r:Vsv\Qg.KS/kʮOgVyuV 8tx31 Ԓļ"):R=V""q&0E9K85U>+:"7_BAIbr6;O}ЩEe t(*"x340031Qp
qKc ḓ>FTc Bf^rNiJ*#;w|:ξ0Z\Uǐ>rSwI_uV n5~x340031QK-OKM.`H|eC'RղK3Ħ6 AlƲH+Tu V#\x31 Ԓļ"aN̸~ǓU4)*.a^©_թ95
J6Y}b+EN-rmDf. ?+'x340031Qp
qKc ḓ>FTc Bf^rNiJ*'Mx:4ꔬ!Ĕ̤Ԓ<l<MKgo >1ѩx31 Ԓļ"CB3Sl"NSń#8z	jڇVR^@((ILf|g5:u] yL&x340031Qp
qKc ḓ>FTc Bf^rNiJ*Ô(sz[7n?!d&奖'&dde1ϴmW]:| V4x31 Ԓļ"J_rL1}pr%i[Jӛ/xY$19n'Rt"wFd2 fr)x340031Qp
qKc ḓ>FTc Bf^rNiJ*5Og4H1L8?bJNfR^jI|r~^^jrIf~^^J^Vq~CLˍN&qեϷj[ 2?x340031QK-OKM.`ꟳƕŘv=+oMm|IeA*PdF)/֜w[].{ Pf$Tx31 ĂĢ"Uڟ[ӯEZ" Mx340031QHKL+dٱ{zɵum7t2H3 gx31 la7}j;W,iOLKcXs)vn尿۞"]XTZpw瓜#?kxr.= =,Yx340031QHHM+d8xÙZ/<qZy x340031QHLK+dKV|@pn ]~x340031QH+.I+)+dXw۷9?ϾZ +x31 ԊԢĜԲļ"Y~1F$= pҫx31 Tݺmݓ&[oWjq8, 1ΘBɱD
V/X--Nbݜ4ɷwbݽ }!
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22:䚵B#?Brv:4%@W2vDEOn E@x31 Լ̢ԼAF3(rmQ%Jr	XUZfNj|iQ&Ң^ޗf[yT*BIf>v|q[סeSs\[4-oĢT'ͧ'{q#6w: y9x340031Qp
qKcl?K Bf^rNiJ*ɴsOnn*jUoL4WYWUǠVq]U?+>W	 P1Kx340031QψO+,M+`\wIZ_;m: pٮx31 ҢļԼ3CJ/=JKۈ x31 ̜Tn)K&o8:ᦐ	DEjq~iQrjnb^bzj??ſKv_* Jx340031Q(J-M/`f3/3O.cSEU5y@~:_}hcZq_"F-tG	 fnx340031Qp
qKcǿ3&afY{o}Y4C̤Ē̲Tl<'0H\cr<'P=(2?܋<9 [h6Lx340031Qp
qKcnxxbxӻ,`{&'3)/$,52/Y//%[/8?a;/`+NECrk)5oԛO y4x340031QK,,KO,M/JKI-J-`8fjCl3\z Ʃx31 Ԓļ"=ӵNz]o亴b\&0E9K85U>+:"7_BAIbr6;O}ЩEe 9)>x340031Qp
qKc ḓ>FTc Bf^rNiJ*ㆵ}z?~ռi;Sr2RKRK2Rg^n|v6.}}WSj y5Nx340031QK-OKM.`X8i9ˬWn֞j4ʂT5}j_Nz6 |%fx340031Qp
qKcPiKﹴ/ؕ洖?VNmF&%3TI+RE_ET?GQ__Zx3mtY|
4k
־w˝0o	~0%9I@l30]R_抛V.ˑUde1x[~dn[A̽oǋ f?x31 xVK?=?[Uk63Jlޠ:qc7󾬷
 7ux31 Լ̼TF|ٚh}XW%d2ylc{`gk:B3RsS_zama킎w# 0\x31 i3߮ۑOvN:g(.fp;ȲwM{oLq
"b -x31 Լ̼TO~(?yQBg&%d2i{{b6.iN뽦̼ļ"^X[XㄽȽ *-x31 Ē̲TY9j
OY $
x31 ĂĢ"Bgj>"Far q
x31 <9_wK)WME9!מyUYԃ=koͼjh``fbWPPpY0bfǧfN
1 5%5AvJB`ı;jǄ$Zg$3a{/a~٣^	 $H\x31 lW]_:ݭ)ztC3ԼĢ"b.&uzs61Q}>6a)ii|o8514L
f2Yo1gysw 8zx340031QHHM+dHZ/hZߑZħ'%ز/|yGL:݂./17pK7ڲjvͫ@QX\WXRZmdZ޽".ҽ]OaJssSJS\YDt;rL@4'tv.^ۓ ]Mx31 l=\ʢ&Sds&`̴4o٦;}Gv-.H,*N-b;I΅5<
 +x340031QHHM+dH}-<N%/SSi -x31 ҢļԼŌY3_8P%ڷ tx31 ̜Tn)K&o8:ᦐ	DEjq~iQrjnb^bzjåz6nMMX Bsx340031Q(J-M/`h'Mptqz%U5y@_sg)i)m_^@J{w  
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%ӧJw&kz̂Nª@	o+5s9ަrI3 =_x31 Լ̼To+Zb/-%M2bv籽o5~g!y)yEO/vA	{{E_L h/Ux31 Ē̲T<w_+`])?E owx31 Լ̼T:N\5*:7VlM2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw o^/x31 Ē̲T]TH9su~ 	x340031Qp
qKcx|=au֔K!jss2>=q䶻ǙdJ;]LK,K*cX?C$Q ՃƯ6j7e7Tm^bIfYj<HyC^k~wKk:S A{x31 ĂĢ"n/w=B>D'6 V.
x31 <0{
/ܛA51	X69(3 ^kbvBnbf^A%CeւU&9+ĔʂԔ4)	ت/hnnvҒ̜b9on|~qU~g>{& pFWx340031QHKL+dAȝz5qrw*g!ʋ2KRsS@d3z'ݾPѥoϣq!Ax31 lW]_:ݭ)ztC3ԼĢ"b.&uzs61Q}>6a)iiw=cR.-g3EHC`([`*esf/7w 	9x31 ĂxMSnNH<pbܖ 	x340031QMMLO,.N-OJ,NON,`\jd|^׳$Փ.&@#71/1=I|_kKKe톘@(,OҞe<\: Y:Tx340031Qp
qKc|Y}^|!jr2
r+SRbtn_̄_+T)Ho# ѨAx31 4g"._yk_{,]_Z0cW/2FrpF _%x340031Qp
qKc0z'^*0jDRb
~Bd&%de19Ƹ2cZ7͏+ $x31 xVK?=?[Uk63J7T#Ox340031Qp
qKc]4#`sYτO=DW- 2sJSRM`6cQu*'ܽ@bJNfRFiv^^J^Vq~íym
a[\@: -x340031Qp
qKctܑV=UysL@!4%3?>9(a|͢3/uڍ071/1Npisw<K~{=	ԼTEڛv2i߮B&1؄Hk=b! UT>kӃ=,tZ4w [x340031QK,,KO,M̏O`zCg_ǯR*!)eɩIũ@]'?UpeLجC}OEWqIQjb.LxXo7ǯ}s
J3sRR$3uK<VSe/Yx31 ҢĜԒҼTam}w_5/v( Lx31 ԜĒĜT+M<j՛:~; u5x340031Qp
qKcX6fpt>><41 ̼ҔTCJ9o"g(b1%'3)/$,5(%I//%[/8?!CĒ3N~׭ʰE 1-ݮx31 Լ̢ԼwbTޕ{3wKe&`Ui9EJ>{	.*6z_*m}S%m!^NqmѴg
3R4ōkLŻ @y<x340031Qp
qKcl?K Bf^rNiJ*
\f
gzm1%'3)5,(?/75D//%[/8?AJNCNW}  `-x340031QψO+,M+`:qj;R19+N  eUĭx31 Լ̼TV{nWĂLu5W'qqDSjjbftyf^J~y|nb^bzjK/-]q^n^?ӿ 4.!x31 Լ̼TJ?>me+{|x	XQ^bA&ʙ'nk
.K/MKLO-bx~酵:N܍+gw -Jx31 Ē̲TI6g?p{IL Ux31 \U9n'v(m sx31 Լ̼T'ӭ$3:?ӷb<!&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; X/Gx31 Ē̲T|^7x*șћ 
x31 ĂĢ"I,T4vj 
o
x31 <7+%l{{&`T܂3.4WmQU3O4Bnbf^A%CeւU&9+ĔʂԔ4%ϋ9<bo5}J9DEiIfN1=km%p~Ѧ ƽAլx340031QHKL+dr'ZE\Vό}3(*/,IM)AS,˥"W  6׭x31 lyerLcq
7wLLssSJS\YDt;rLd1<z:C&eV?MoQq"1gSpZ.9G-be D6;&x340031QHHM+d?cf{wiI2lK:F"OOeii{_c)7pܿleP%概Vt]1c~yVo@Gŕy% چKU/"ݛ4?775$ 8H/KuMLTO# JsRNg=9~  ]x31 l=\ʢ&Sds&`̴45V妞38rg|ܸ<"]XTZpw瓜#?kxr.= L'}x340031QHLK+dUܛV^wf^? #x340031QH+.I+)+d!9-Ej\:x ?x31 ҢļԼ?zJ{ltFOMg'ΏM x340031Qp
qKczjg{&ߝt#m(d%甦2n0/Hi{!d&%ede1<[`wI0޿ s0x31 Ăx#yQ6hv bɥx31 ĂԲԼufelPKYeb\ FGx340031QL,(H-K+`xqSs{vz}\CBmeCtui@~r~J4T3yѲ,>^hQS.&LE@T{E'yVDS Jx340031QK,,KO,MON,()-J-`P1%Cw9ڼ *x340031QK,,KO,M̏//-KMKLO-`(]s3lĳ(
 s>x340031QK,,KO,M/JKI-J-`ܑU?wZy]W;N &x31 xVK?=?[Uk63J{|t5al!L(nx340031Qp
qKc]4#`sYτO=DW- 2sJSRJOXk+!Sr22JRn8=mS(3-x31 Ԥrq<&p/s|̘\ 2x31 ̼Ԣb|nH_2=w#sq[ Gx31 Ē̲T{[+^ݷĳ? xx340031Qp
qKcqmOh3>aeݯ7#&4--(>#1/%'U/aT;RΛSBdֆ6h2M*M(I-K̉/K/*ƾ	f'bd5}m0Y̤Ē̲T꼔l<7IJλnoKtí9 +Gx31 Լ̼TV&HqkMJ4+K,d.m}QX澕E+,|yKD<3/%<>71/1=.8a/p7r-x31 Ē̲Tw/2䳫i}Lc fx31 ĂĢ"k_87>2:f̵ĭJ !m
x31 <m,zC/X&`T܂m&W*a/)/D!713ODkAa
*O͜bJIeAjJj7mf9}LQQZSW麀#4؟+Zq Bx340031QHKL+d[q@b`(n x31 l?>r?tїWLLssSJS\YDt;rLd1N|sk~z"zn,HC`0Ñ!ٙo_ʷ -7x31 l!{ۯKU?=,ư8M{`ٷW|O!EũEw{>ɹН1ƻ'7_ p+%x340031QHLK+dhd 1x340031QH+.I+)+d4:5Jjoq/w6  !>x31 Ăx=|m|b x31 xVK?=?[Uk63Jdo<wɭtד5R˄ 3x340031Qp
qKc]4#`sYτO=DW- 2sJSR#|K[,kƑYFq-!d&efde1:ݝ7pzڦ)6Qυ ,x31 ԲTק+_A`e9Gt[nVTW_a4s+ۭKr 
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%A\ԧyyLe,PZ\YP0OjSղk9&{ߓ)T=̦x31 ĂĢ"[n.{Z K
x31 <us"t'Louc?Z]4uWeR=srOWI٨Jx-Y8yC3<J\+6<>M4sW)%)i6D,`۷+oP?DEiIfN177^>8u*Gz QG|x31 lW]_:ݭ)ztC3ԼĢ"b.&uzs61Q}>6a)iiUS]9*R"]eHC`Jːgkɹ<;9s*O= w4x31 l=\ʢ&Sds&`̴4}b5o.=$|K;WASf8Uk6\[R 6(x31 Լ̼TW%eE|;"(/ aGIbVMU,̼ļ"^X[XㄽȽ y-x31 Ē̲T7w=hM7 x31 Ăx+3B<&] x31 Լ̼Tꏾ)_+vԂ*3L2\ͣNi2a!y)yEO/vA	{{E_L $^-x31 Ē̲T\Ǫ3PMEbR_  թ'x31 Լ̼T+:J{C'U9(/ aLSw}S	tIs\5Hg&%1<]'F}3; c+rx31 Ē̲TMNպQZLޓ#p 6@x31 nqnR,{D	X63$s]ǭelKwt\Bs2JSihpTNϴ"R\_nRDN^{wvęCjjJs^?`#xQ!osQ"ʠveBCɼekܪCR}\V?zٚO^)LB(	)Y3y;,+zX|Ճ()+NHMLI-*fhwa]i%+HRZ2U@3<:xI}U/ y
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%HY̛.U!'e0Wt'0n8A~NƷoZ
" 9֭x31 Լ̼Tꏾ)_+vԂ*3L2Vδ=e}=1p@4'^Styf^J~y|nb^bzjK/-]q^n^?ӿ }-x340031QH,+IL-`\\洛w^Cξ11 "2S
lcǒ;W>5D5(>)8hZb&=/e>0ӊRSJJR	_!ܶ""PSK2Rѵ gsbuMShgmz1;z7`.?Q`,V5\c-:S򋊁zO!* =x31 uxX9kïz>6K&%1LmKܤ9yE x31 ĂԲԼ#+줺ᙛ\@&39}a΋e\OgHxX"q*[qF_ݻ /)JLNeXj{tR^=- 8;ϯx31 \7*^?[+e[9 	x340031Qp
qKcٴ^;ˀvz	ʆ5YezNk1gSn' /,H-{
+nfx0!{{֗Pu9I`Rzu9_fD X<x31 Լ̼T8[7*>,튏\&`Ey߯nNAkSc[ bx31 Ē̲T#Ќ626- ;	x340031Qp
qKcx|=au֔K!jss2t*)rڣ>nONCd&%dde1Q|zG$LZ<
6/$,5<o˽'LwrG O@@x31 ĂĢ"/LI§otкw(Y  ^
x31 <RVNu7^羆:r	X69(3 qg+GS̲040031QM+d(,ZPuaD3'RRY01)h|P'쯙G$3aZ+z+r/ _A˭x31 l㻘?X'+ֲ˩ef&&
y%EũEzY\jM,_mb|m&`R2,L`>Iw;%s #x
_7cV?m<ވ6x340031QHHM+d{L#>GMoz|C$5) uK^[.0:fSǙK3_qKM)<5+t׹YXEaqe^IbHiAᒭjwxƋHfvy<)M+/H,*N-*fR;lr]g7wjm31 Ҝb峺z,_zmO~ e_Vx340031QHOK-J,K/ILI-+d8p%u#b>ޣaQ_XTS
R8~c=՚.=-YmHQ=3*+]؟)>}> S[2Ϡx31 la7}j;W,iOLKcywnʅ۷s~4."]XTZİNɶLF*8 +x31 ԜĒĜT%ۿN=}NvG Q@x340031Qp
qKcX6fpt>><41 ̼ҔT]~T]S!d&%d$de1,ux@R:;ʜ,  o0x31 ĂxL56+_RtKXv5h" vx340031Qp
qKcxΖ+sikT_xL!DMNfR^bIfYj|RiZZj^^J^Vq~\_]=^Yϗ]`~eTG}^Žg) ,3`x31 ĂԲԼ#+줺ᙛ\@&32n)fEr?NT3$<tN8-	ү]ɗ%&2(DDw֏_f^+ۺ c+;zx340031Qp
qKctܑV=UysL@!4%3?>9(AM_y1E
T3z(5/%?.\.4Wgo#
 
ssB?rP&ަ$|!KɆggmK*Xա+za[LV<0 9Jx340031QK,,KO,M/JKI-J-`($5ڠO[RW	xx! Kx340031QK,,KO,M/.)JM̍OJ,N`͠rP>k&ҔTZVw Cx +Bx31 ̒b}ŋ49ɽwco Ŭx31 dm=,Z=*Rx340031Qp
qKcH)ZXigwNJ 2
JK̙gn+&|!Čl<3˥mƚs+ =1Ux340031Qψ+(-MKLO-`(V]Җzb᪳S+SR
OYp,|"O  x31 g[ύQn758anV|Fiv1ñ~ӻy↘j! !Xx31 ҼTnEft~a0y x340031Qp
qKc0z'^*0jDRb
~Bd&%de1<׏Ye?폥{p) ʢx31 Ԥr.${AJG"A& Rx31 ̼Ԣb'+Y{#sla?^ 0x31 Ē̲T9?s+&Y2dd>TS  ǨBx340031Qtvvetר9+]k|#1^Co.~tJA:%2l4}6SNs*NMap{eSہefUܮנ*:wŏ7{iD? 3=jzsb~8/T(;4$37AU}_frK:4a'$15+g"T[Sb*{3[!E=`RrRsS{y<i_It٧pC%d&%U2L/Xwr߿⒢̤ҒԔĒ"Pҍ
>Ul]d?8?ɋQ3'B+7S47N.,K-*fPOpcŻOJH<ڝVQ	s{nj^	A~mzƩ[$nVxU=o\^|VS~ٗBG<8
22l˻y^Z''cS̲
5˺p<nǭZY!jrKs@0wLv%Mz"t2LsȊSs2
JK-J9++ޛ: *RKn^P7{mBU@[Abr60v-YvemB6ɱBL*H,IH-f/w^Ió-|+QQZ@u)9?z*yyONp(-NM.-,d3Xɺ!a+[$"wdaJQutr՟=ƿKQ/`TEIbQIiCol2طS$#(% $sا|F$3=:w]sBֻy x31 Լ̼T9?V.ɹᵡPĂL3mOYqOL1&%s"]_ZtkktW -Xx31 Ē̲T5Q,?u)ۏE(>5 Ux31 Լ̼TЅByr(/ aGIbVMU,̼ļ"^X[XㄽȽ 4=.x31 Ē̲TYe}vt\313Qx31 Ăx?BSgGĸ+{x x340031Qp
qKctܑV=UysL@!4%3?>9(AM_y1E
T3z071/1{kͮbn	x?z״Y]Qj^J*@%k}WhV##s?<i[Y1dCģmgK*M˵j:h-J	 [Yx340031QK,,KO,M̏O`if`g?q/~thHI-LNOJ,N:3.Kdf{b7,KRsal5Ȇ_ۮW_SSRifNJjPm٪9e| @#Vbx31 TF+G,rpAE+340031(M`8-LsqBKVǡ+ON.Ӓ0&gGld(SfsyVN+fkPh:"5'>7 a+';k_<}Pvse2:|^vaR$g)r(:RS3NYQbeӫ>џ.{v//-Jsؚ_|-λFW  9Zx340031QMLOO`X$19ė
7DVXY
T)r~ڡ-~&J=KN٩EIbTt^9ؕCTR$-|WKZV0+Ңd$G>oΎw]_Ғu'B5dV& 4չSiKCm !k4x31 ĆLO(b&^B^|Fiv1ñ~ӻy↘j! x340075Up
qKcxébv{Zn4];t` PKf?"Zaʾ'|KYr!&d&%de1ԭ|wĵZbځ/2٩E v/Gx340075UH,.N-O,`hߔ{.ƈCtfRVJJJ*RhHjjs܌Ґ, ix31 Ԥr=	+m)H1d Yx31 ̼Ԣb]G2>cZ}cs 
x31 Ē̲TS*5zwN=N xΤKxUyPW3զRk\x GH4Q(&$lv3,gCARj)ؙZ"rhb[mUR6Sg~ϳ~Q89LMOGuB)9J'K_Pڼ}>OV"a`o wmJS<r6CW9ڈ82!0Kg?i5oVgs&ld 2f PňxRG)07r+J'Rb=^#5($_c
A0.9L/;+TCes3+Jﻋ6?!lΊ6NJt"\Ij>>ޥoe)`U3w"vrq|?@8>+[FǮ\8$NMv(}`v}u8XE8ADQ&_)698}N7?ў&)H$p(*G,_7kC3Y#CC!PPc0ED@Si]@KARą
ȆI2vi}ᶥ
Er͆N[LApܑwk8/n__i55B+Η4tXI9ڜ;~nˊn\xmB* ƃ	"n<c
f@,M{֬҉y<K8';>_
Øٝ!v
De"8$:&b}y^wJc2IJRKK&9SglEji >o2_06iFhˏŶDN5=Ⲃo:Tccoa8W#/=lIc
ߓke=*),˾m1&vs2ӃHmY<A(Fa}EC	!UA^nb;\Ã1v-UA
i%٠pvow'kK*<Psz__x31 Լ̼Tꏾ)_+vԂ*3L2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw l/x31 Լ̼Tj1soQ}WM2Vδ=e}=1p@4'^Styf^J~y|nb^bzjK/-]q^n^?ӿ --ҡx31 Ē̲T+
Gkw{v nx31 Ăxo
LXqͫ7Eγ		\s(x31 Լ̼T7Zog#ZĂL3mOYqOL1&%s"]_ZtkktW +x31 Ē̲T/92Z.yWy =$x31 Լ̼TU^SENu3ɂG:*&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; D	/4x31 Ē̲Tƿg1{+ rx31 ҢļԼ	_z\;ms 
x340031Qp
qKc*!jz"_+Zc+&@SprzVk?[*^f1%'3)/$,5(87H//%[/8?~O^yͲMEi9Vowz%smoE~<" ASx31 ̜T]w[Mf%)]}OA	DEjq~iQrjnb^bzj??ſKv_* ͦx31 ĂĢ"|w=[߬c zx31 l=\ʢ&Sds&`̴45y|l˾oW+}f.H,*N-b;I΅5<
 &x340031QK,,KO,M/JKI-J-`8{U^'7Y  Kx31 ĆLO(b&^B^|Fiv1W.?=.zfYj #˭x31 Լ̼Tճ"Xn^<YiOxEĂL3mOYqOL1&%s"]_ZtkktW s+wx31 Ē̲TuJJޫ9-<i= %x31 Լ̼TYw|wX4hɏ&s%d2L>(I,sʢɕS>"]_ZtkktW 0x31 Ē̲TWOW=r<m! W mCx31 Լ̼Ti%5;Ú&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; +0x31 Ē̲T53rXZtmb\ x31 Լ̼TFYuTrJ;M2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw W0ԡx31 Ē̲T[Hy%QsJ_o 1x31 Լ̼T7T&l7ga@*ĂL%e[Y4rGWT@3RsS_zama킎w# X.@x31 Ē̲Tf
w^-zR`  ıx31 Լ̼Ti%5;Ú&`Ey+gڞ㞘bMKz)D<3/%<>71/1=.8a/p7r=.x340031Qp
qKc|Y}^|!jr2
r+SRlxڼoXIJk/   x31 Լ̼TdgY2mMMiĂL%e[Y4rGWT@3RsS_zama킎w# x-yx31 Ē̲TT||wr󌉙Wj[}@ x31 Ăx=1[Cr	 x31 Լ̼TB-n}rOZG𙷛L2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw 0|x31 Ē̲Trη/n24_7C x31 ĂĢ"*jI/ZqI~ mx31 Ăx>;7ܬwE;v, hx340031Qp
qKc|Y}^|!jr2
r+SRN"Z]]SNؙ|&  Jx340031Qp
qKc|Y}^|!jr2
r+SRVtş+(|&c 2x31 Լ̼T+v~[xCFzL2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw d/xx31 Ē̲TQC2E.UfwE x31 ĂĢ"YSBWGͲzKgM 
x31 <0{
/ܛA51	X69(3 a8[>޹Ϫ\xBnbf^A%CeւU&9+ĔʂԔ4)	ت/hnnvҒ̜b9on|~qU~g>{& #Dzx31 lyerLcq
7wLLssSJS\YDt;rLd1I\8xڞbRG"1l=ӧL[*̙`] 8ѯx31 ĆLO(b&^B^|Fiv1CYAmM /x340031Qp
qKc]4#`sYτO=DW- 2sJSRN
r:k>˭?NSp!Ĕ̤bl<['NO6E&t +1x340031QK,,K(.O,`긱9y}훒Dm1Ī8>1%$Ic["[~.X4$%]?~~nٙ},`%@󮿉j_5@}Wh {Px31 Ԥr~cN_Nd<.N ɊVx31 ̼ԢbrCYz
> $x31 Ē̲T#Jk҂" /x31 Լ̼T-%vu~khW&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; 0x31 Ē̲TqMBjKSh 2Mx31 ԤrxĶϰ_  ʒx31 ̼Ԣb7q\9=o n7x31 Ē̲T~Y5yǏYŦ px31 Լ̼TQX/iM2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw 0x31 Ē̲T˧)tfy:sy x31 \bZB޵1 )V	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez?x(QiKͻjzy(IE|IeAj1Pݵ",p?{}$ay)zYykI[2SesGb^K ?@x31 Լ̼T߻v=5v\dbc&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; L]/Ex31 Ē̲Tl7[Et?B}<2x31 ĂĢ"_sɾ$S9Q ۦ
x31 <f%mF묥WeR=sr*[ ÓHέLxG(&fT2\h-(|XYiBL),HMIMcآ~@W;w:u/\QQZS+-epjo;\ lEx340031QHKL+dꔘFcIt_Yڼpb hڥx340031QHLK+dkwGi_CL1սhP
RVbVTDVY]AQ~rjqq~Q|^~
Xe;ݩ*1izmXVuԢ<M9T'(/si\>{  oIx31 la7}j;W,iOLKc9~)!m)y.H,*N-b8\dƧ5fy) +*x340031QHLK+d8z#UEWPy/ ,x340031Q(H,*N-+dlq?g2a bx31 ԊԢĜԲļ"a]g, :<R ,x31 TJycxvƳ1v7s432S\z4GPȖ'1Tp`q-6͏;&0  's	x340031Qp
qKcs=D~Ȭu1.bQX uĉ_ll
T5-9Ū>yr2SR#o(Ks`zr ֝:=
x340031Qp
qKc|1!Rx^i;-75L*-NK*c6v/v⾄ė}JSR22,xwW?{NKk[ vo7..p7 Aϥx31 Ăx/1S&o>|J zx31 Ԥr:v"cm ʄx31 ̼Ԣb
6y{r?;yb_)S Q̡x31 Ē̲TDm$^1]Oi> x31 ԊԢĜԲļ".!"oN5p˖ ].x31 T5.6gnj̰E#+.32S|4nl/}LΤ7$Gꎉ}78>.abiū'Hx31 Ăx^Ut\0[z (x31 ̜T]w[Mf%)]}OA	DEjq~iQrjnb^bzj7NDΊyHkSi lDx340031Q(J-M/`f3/3O.cSEU5y@޷vDݮctPz'< zx31 ҢļԼ+.).(3 
x340031Qp
qKc5̧UmU56x(d%甦2^.fC],^<6,BLLK,,K/J-M/K*c߭Sko0}`ml=BSQbyZfN*B۝^	Ɯ~j[ Dx31 Ē̲T%gs)Mh3kP:W&3 x31 ĂĢ"/ov;*<}v|M  )
x31 <AUW^Δ.q֥&`T܂3c4iQ˙oih``fbWPPpY0bfǧfN
1 5%5a_q|{vֽpDEiIfN1ϵm?o8ün  Ex340031QHKL+dxd5!fΆǓv3O\z otx31 l㻘?X'+ֲ˩ef&&
y%EũEzY\jM,_mb|m&`R2~>5?;|O[C!F0|~8w2"nY;8g
x340031QHOK-J,K/ILI-+dH5Խ':k:znb 
ٙ%ťIŕ%9Q=ϖ9g(dRX$!$g%甦]{ռSaH!-)Zx2|5A;2ae2.  @8x340031QH+.I+)+dW;ŪϾi~IK(~l  -ʫx31 ԜĒĜToO4l\V!ugkѨx340031Qp
qKcX6fpt>><41 ̼ҔTجE/)`Z:C)9Iy%eE)Izy)zYy'yvzS^nW- 0x31 ĂxG2RDp Hyx340031QK,,KO,M̏O`if`g?q/~thHI-LNOJ,N=~.e)ԛ%nx\⒢\5gh4/_Ըu85%f椤Mn[&uHΙ,\~ Ucx340031Qp
qKc8Ww}1$ngQ\`ae{Y5Tg;9O-*/*jr={nsn]4hMCZfNIjPCMY9NvV\P9I(K*c*ҵ8!oܹ+ p[x340031Qp
qKc0z'^*0jDRb
~Bd&%de18彳|Y歓_a שq
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%U3Ϯkͻ2+_"'e0v_Ių,x%8 jC>x31 ҢļԼ˵K^nfzg  0x31 ̜Tn)K&o8:ᦐ	DEjq~iQrjnb^bzj7NDΊyHkSi 7+x31 Ăx%)2{&` 'x31 Ăx;췯Wqp[*/ȡx31 ҢĜԒҼT6;I.US U;x31 Լ̼T8/كwHO|Fz(wC	XQ^bA&C;^S6gS;~ט Z/x31 Ē̲T&m3ξ6yÝ݁+ \k	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde166\;1+쀐JóPy%e 2ny8ei<L53 xs?Ax31 ĂĢ"RNݸGʻ߂"bx31 l<_:G=Z%LLssSJS\YDt;rLd1$Z>6Ȧh5Fi'ŕt%;_xO |5Ix340031Q(H-*.ϋ/*I*ch{ɀml2!+>YmT7[EQ 1 )`&x31 l%1?$v-\s-Gm+M)ii}'V>)wx <m)Ģ"u҇ŏH-f2W 4(Hx340031QHHM+dh57+zz% nx340031QHLK+drcrG_g5Xie x340031QH+.I+)+dptz+bǢf ֫x31 Ҽl_Kd4~VHY Snx31 ҼT	"^f뼙lP Xx340031Qp
qKcj(wYk..K<NY3 2sJSRywI
tZNaWJBLLJ*KIK*c8D0E^$;Q˻ &-	x340031QK,,K+I-JKLNO*KI`8#0gbkNs x31 ԜĒĜTO!'Flk' bdx340031Qp
qKcX6fpt>><41 ̼ҔT>	8,A6!d&%d$de1Hf$nPǣ[ 1x31 ԊԢĜԲļ"kѕL<-9'-= ;x31 $W}v]b\<[MliqÌFA6sn鋬ݲOx Dp
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`tw!rFjM=.h
K*RJfmobLl}+kAd&Ude1Hj0יȢ E7:x31 ҢļԼk6QR3^Y^y@Y~ hx340031Qp
qKczjg{&ߝt#m(d%甦2|8Bl[6vnbJNfRQbyZfN^^J^Vq~Cm3xCUY /wx340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*PUO{ΥosjFn4Uy 3g%j_;wQ 2ϥx31 ĂxKW:2T3Qjfwc ix340031Qp
qKcxΖ+sikT_xL!DMNfR^bIfYj|RiZZj^^J^Vq~OF&nQyɂݞPud0K"Oo:j!ӷl 6x340031QK,,KO,M/JKI-J-`VߒYǱW̲Xѹ s%x340031QK,,KO,M/.)JM̍OJ,N`9bVݟ*[qdoKSRifNJjP̛NOi -qx340031Qp
qKc`:N2%SDDC̤Ē̲ԔĔdl<iՖ_8V$=t sw%Ix340031Qp
qKc;ybJ9uWBd&%d禦d&'%de14s	XUܴ2{W/2~. [!x340031Qp
qKcydvkwZ&ojQXYX[ZZUǰ;SZU	]zfm (Ax340031Qp
qKc`Z@2w7!DMNfR^bIfYj|njJfb|bYniEj^^J^Vq~êm
X.$ތ{ %}x340031Qp
qKc?%Be߇p3YhQXYXV_ZU`dOsY'8}d & x340031Qp
qKcrÇfّ:jK0LK,,KMMLOOIMNJ,NK*cmxR9Od- &#x340031Qp
qKceEHG>x^fQXY_Uۑd5L4T> c$ۭx340031Qp
qKcx+2)9ʃuBd&%d禦d&Ɨ&de1_(GbG	 #٭x340031Qp
qKcx|Y[Y"!DMNfR^bIfYj|njJfb|Yj^^^J^Vq~ƿ]KB%w{k1f  b$x31 Ԓļ"]Kڗ*D`Xs \x340031Qp
qKc ḓ>FTc Bf^rNiJ*fՇ/w·I!d&奖'&dde1]s,~ȶ5&\"? 2x340031QK-OKM.``iZ:Xc/kMm|IeA*PC~^W|ePJ n%x31 ')ϸd\˾mUHy ~Hx31 b{L^:O>H:';뭟 px31 ԲTۿ;e6۹mG&>s&`EũyEn>	Ëϔ/,<1 x31 ̤Ē"/?t߃Rb @x340031Qp
qKcxl~լzsZ%m?
 Bf^rNiJ*OL/Jp)`bZkaC)9IeIE%Ezy)zYy\6v(kO,e /Сx340031Q(L*J,/`cd5_To14|l* tB^{Ҝ[m	 * N
x340031Qp
qKcio?V$$voj0L*N+/K*cX|ŏBgw+LUU ;	n"G떯\2ʂTZ13N^>15eV%v ӘC
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%aUVωhlV)BiqrQfA	]dTTL#9 >	x340031Qp
qKcxhNQH͌y7]L@5؈!Aͬ2Q}S8[%!o̰eJ;>ak̺QCA.zyEɩz/k3QHz4  n4x31 Լ̼To:9z%6n	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L &Y.x31 Ē̲TE\ݩ?hat jx31 ĂĢ"~N~'$_>3 
x31 <m,zC/X&`T܂UoOq|kUf&&
yz%Z
.V8lVy|hSJ*RSRB2Tcy9Ζor-YQQZSW麀#4؟+Zq GBŭx31 lyerLcq
7wLLssSJS\YDt;rLd1Z۱ug>h-oHC`0Ñ!ٙo_ʷ 
e8x31 l=\ʢ&Sds&`̴417O`nڋO!EũEw{>ɹН1ƻ'7_ ?)¥x31 ĂxM*H]5o=7  x31 Www[6췼Rqj1ZkçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1xsH'WS
.(<3/{^,.Ty%3޿<qb[>kAQP׶ٲd;^5lEYYqe^2Ìc!O~gS 2R,8ɪs7Ϛil& JsNuazrfG x31 xVK?=?[Uk63JZ%~T7+{,mx340031Qp
qKc]4#`sYτO=DW- 2sJSRwKwK	pyHYJ~!d&efde1:ݝ7pzڦ)6Qυ ,Lx31 Լ̼TֺMIޢ~	n2+K,d.m}QX澕E+,|yKD<3/%<>71/1=.8a/p7r}-Px31 Ē̲T_7i5V Ǧx31 ĂĢ"Wt^DR\B 
x31 <]G$83	X69(3 ;hbJՎSNܮ;cwf&&
yz%Z
.V8lVy|hSJ*RSR:~.iQLu/> *JK2s^>U] ОEۭx31 l܏h?U~?($$e3p6Л;|w䶙KLKcc7WΈ}4/Zgy?$)-O(X 9@
x340031QHOK-J,K/ILI-+dP68qbVG^gb 
ٙ%ťIŕ%9Q=ϖ9g(dRX$!$g%甦ewdiei

/(F,mi2{ tE x340031QH+.I+)+dx6oƅiubtM x31 Ăx%{O^zts۞x340031Qp
qKc|Y}^|!jr2
r+SR,g}~}fnzqmĭ< !x31 ԲTNwOy$vp{LS^_eyv%n ~_x31 ̤Ē"FK?Z~+ -x340031Qp
qKcBČ=őKtyK21 ̼ҔTEOmHj*7n+Sr22KR<<lvP|/|YE %0fx340031Q(L*J,/`2jÃ};bBj1DU_RY
TQ7=ѽg*fp犃b !¥
x340031Qp
qKcio?V$$voj0L*N+/K*cX|ŏBgw+LUUT{_?|˝v+]Y|IeA^i=ἆ_vc
 y@zx31 ĂĢ"~/v˘7UMJ @=x31 lW]_:ݭ)ztC3ԼĢ"b.&uzs61Q}>6a)ii8^ebۮ) #pd;|*kv[ėiy 7cx31 Լ̼TU;b3'*kxO	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L .*x31 Ē̲T*O^װ< ?Cx31 Լ̼T"yT(zִėii&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; N8/qx31 Ē̲T}:rJʜ- ޭx31 Լ̼T;{& <߾o%d2L>(I,sʢɕS>"]_ZtkktW O/ox31 Ē̲TqYqFΩqOUS Zx31 Ăx[y;pS/ 
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%!|Iiqv,s{J2JvU]l`򁕢?=/ M?ҡx31 ҢĜԒҼT#+伵W?eVUn ̊&x31 Լ̼T#B\yp}ƬĂL"9.7..  x31 Ē̲TRf)78=5] x340031Qp
qKcY(xn';U|&'3)19U//%[/8?z;b='zCR4/$,5>3$()"9? ?/5D/YM#쿿COP5"gVƧA4fj$Kt|!İgO vP	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1۾g~J%OilݞMUXYR`>;zRL|?9 Cx31 ĂĢ"o-}s:zG_lC=9:; 3>Ԧ
x31 <RVNu7^羆:r	X69(3 a۾j'~+m7Vf&&
yz%Z
.V8lVy|hSJ*RSRBo^:3]/b&(-)f8X-XlXY/|<v /J@x31 lyven]ޑBr~nnj^I|AbQqj^V1a:W>Gn	ذ̴4Sϟ{$_xu[\"1AEc˧Mʩnm "9x340031QHHM+d8Ա&uy|	9;rħ'k>̙5sy<N"uy 'ldNsgT<M3AS$ʼ
I=ۄM%ҋٮLSW_XTZUvBo&&ϧߑfb 
E9ymX>qm"<Zơx340031QHOK-J,K/ILI-+dR8dNmQ_XTS
R(:`g,Vw-mDV[Rz53WZ,+ 2x31 lR'U.Λ%G4L)ii2έ]Qyv./BSI?R"ٶ_g c})|x340031QHHM+dh+nHp9/ZpGO <x340031QH+.I+)+d\rz"!:n{e؎ Yx31 Ҽl?6?RwDI uAx31 ҼT`ʅt: x340031Qp
qKcj(wYk..K<NY3 2sJSRwSnfʔfzM77+BLLJ*KIK*cTѹ+fNx ؍-x340031QK,,K+I-JKLNO*KI`	ZCvSS/VvVvr x31 ҢļԼV7?m5yo 3x340031Qp
qKczjg{&ߝt#m(d%甦2(Jx/9ߝ;4n111TXUӢ,;!r M/Yx340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*PՑ))jV$.kȗڏ*>71/1=dIV(eog:>d '2^x31 Ăx_1*I;n x31 Ԓļ"ܤouҿU,tWlwVXJѡSwe{ x340031Qp
qKc ḓ>FTc Bf^rNiJ*ä\;M}ftN!d&奖'&dde1hU]JeݧEnߓ_V 
/x31 bL:r}s(s˿7x340031Qp
qKc]4#`sYτO=DW- 2sJSRpĹhF6*U*m1%'3)4X//%[/8?aA;\כr b-Hx340031QK,,K(.O,`hrfJ⿆OV~ĔĂ"&Տgnne,_`TXT}'$儶+UɱʂT5ZxN
,	unp rMx31 Ԥr~ok{N,#eY zkx31 ̼Ԣbrzbe.s		x31 Ē̲T?jﵗ>;ٷ}e ӟx340031Qp
qKcxxF/;s[K2L(OMK*cX7t3כo?~۱-Py%ey%EiɩE "5NN6TvQ"kW
 H:6x31 ĂxTLu.S{h1 /x31 81gvKη/w,Q]pl&/;x!Ze ͯx340075Up
qKcxébv{Zn4];t` PKfԽ'E>m-}Y=bBNfRbqqj^^J^Vq~CwG\%8/ӞZX  p2[x340075UH,.N-O,`^jݭ/+:=ԟAJ*RDy˘U{.q,T5  Ax31 Ăxo5|4猗QW/_ 9x31 Ăx1gn<?ezx31 Ăx.yE66[=Z;=_/ ʀx31 S/K]fe-Jf	&`bc39~yw1*C )x340075Up
qKcxébv{Zn4];t` PKf=ꔇִ'8C	9Iũ%zy)zYyu+qv˟sL{vja *2ïx340075UH,.N-O,`c8~OFکS1|0DVVRY
TwFFUVffmU `Sx31 Լ̼Tͯ>*a<kU]M2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw xg/Сx31 Ē̲Tmd\z&ˎ~ Ґx31 ĂĢ"yEOZK.y|Ge' 
x31 <m,zC/X&`T܂Z0df]lh``fbWPPpY0bfǧfN
1 5%5an҃/w1Hƶ%9Z?(;HuCox31 ԲTސ5~ӞgWԼ"e,PZ3eby' x31 ̤Ē"yd5)<>O>  x340031Qp
qKcBČ=őKtyK21 ̼ҔTx/T٥qm;&Uf!Ĕ̤̤Ē"l<];5'_nqq{2 d.ˡx340031Q(L*J,/`3KL,ه]wYnxqUU|IeA*PG5ޘcD+ "7x31 Լ̼TC7{mϰbyĂL[z յש@u-Y? ox31 Ē̲T-kfzƨW6> Gx31 Ăx*iQKn 6x31 Ҕln繟*l~Q(,&e)%WC=R>EÚ7'!J%"v՗3s^竳gtܝLGҔ\$uO}2vJתFAe&Ƨ&0\oGdDU/}"deػzl7 *sSS2N/KI,c690N_/~v@VTXTho^K!
r+SlO~,%Rբ752  nx340031QK,,KO,M/.)JM̍OJ,N`XsƭA=	M/z]gKSRifNJjPt_vɼ5iRɲ'\,Ӧx31 ԲTjP>rO]W?O
س858ankL9fX7E ux31 ̤Ē"L%^Л}qI ߽yx340031Qp
qKcBČ=őKtyK21 ̼ҔT-dr\/l+`H~!Ĕ̤̤Ē"l<];5'_nqq{2 k//x340031Q(L*J,/`3KL,ه]wYnxqUU|IeA*Pi?Cc[/
եR{v 6hx31 Ăx՞k-Xx}]*gf 3x31 Ăx39-tަLY x31 Լ̼Tެ17;]5t_>ĂL%e[Y4rGWT@3RsS_zama킎w# t+/ҡx31 Ē̲TLeܥ#WS^x31 ԊԢĜԲļ",˭۶KUqC x31 TkZx!{Gb&`هv̖H] Pz^liqC椹Ltw \$ƭx31 Լ̼TuVXKôxW[{&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; 5S/	x31 Ē̲TF]/|kw_ݖ__/ ڙ
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%ǯ(oOix	BiqrQfA	'{GIE%ܵzz]  A>x340031Qp
qKc0z'^*0jDRb
~Bd&%de1t	{<{]<v x31 Ăx;
i=:-ac$	: Rx31 Լ̼T<%;lnne]9X%d2\}'{ldn5C_ Сx31 Ē̲T'jjt~5mV7WW F>	x340031Qp
qKcx|=au֔K!jss2t*)rڣ>nONCd&%dde1\uBg	EC%dƃg0+TDܴ14 >x31 ĂĢ"a	w3np|љY l
x31 <RVNu7^羆:r	X69(3 ♏/S?$qzzi҆f&&
yz%Z
.V8lVy|hSJ*RSRN,ƿg{BnNWQQZS0Nt~_9 E٭x31 l^+>']ƹSBC3ԼĢ"b.&uzs61Q}>6a)iis&0䤻g{Ź\Ji]|S5sX+2 !1x31 l?^;HޘeOLKcywnʅ۷s~4."]XTZİNɶLF*8 'Xx340031QHHM+d0'pӋV=p5 1x31 ĂxTx-S_easfXN  $4x340031Qp
qKctܑV=UysL@!4%3?>9(AM_y1E
T3z(5/%h+?nVeqZ 
ssD3gH\;dn;J겿xB6L//%[/r>gY*;՛v: Mux340031QK,,KO,M/JKI-J-`b\"wc8ѶF1 Ax340031QK,,KO,M/.)JM̍OJ,N`xp;uӦjgă6l|cfKSRifNJjP'Ժk~L-W. -+tx31 ̒bYeuy't9qծOx31 dC3ZԤ_a+YҼ Bx340031Qp
qKcH)ZXigwNJ 2
JK}&H-TpB +K*c.J*4O]|^ )x340031Qψ+(-MKLO-`ez%bmuOwkUgV'秤
7-;YE4 Z!ǯx31 g[ύQn758anV|Fiv1ÎILIz|sx31 Ԥrߞ	Vxkj)~ .ex31 ̼Ԣb9,n姦.q? .?x31 Ē̲Tؕ~!K ex340031Qp
qKc(t_Ǿ7zύ\&-X	'!DMbQvyjR|jQQ~Q|r~J^HJn&,M$GUWZR=(KL"gkL/~Uu^j	ԂUj}^uڥ-tgT-y)9E@-3}XΙ1WR9OPT]g!&ln^m΋[ՠ
s23K*c0$9ܷF<sg1UXYi<$6L89P9sG勬}^+ hÎx31 Ăx)^鋞bQ2Q 7x31 Լ̼T닂G|c&ƽ|L2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw ^u/gx31 Ē̲T~h+~oڙ x31 Ăx={GprwKFL/ x31 Լ̼Tw2ϟd1]~#_E5M2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw 0͡x31 Ē̲TG?_~e.=o ;0x31 \='V52^MOqLYپ 5)x31 Լ̼T53i`6;Uy6lu	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L #8.ӡx31 Ē̲Tu1m-sfYv0 _x31 \s>\sgNvs
 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez'nM?Äd9g" NQԽ].'3	lX^J^Vq~}S{-
(/?  >x31 Լ̼THۜ|66o?ĂL%e[Y4rGWT@3RsS_zama킎w# E/Mx31 Ē̲T+&8ʺ	o+  RΥx31 Ăx-xɮSM{x31 Լ̼T՚']j]gEw	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L p.Ax31 Ē̲TGWtƿy[eǅO fcx31 Լ̼T/>e!_tL_&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; +0Hx31 Ē̲Tsce}_P~f cx31 ҢĜԒҼTU>voj:aǧ{W9 هx31 Լ̼TfU<~E,1ϼ
ĂL%e[Y4rGWT@3RsS_zama킎w# -ޡx31 Ē̲T7/iYO 8x31 Լ̼T~OϟQۺV(/ aGIbVMU,̼ļ"^X[XㄽȽ 1x31 Ē̲T5 әzl,˰'- ex31 Լ̼Tb_*M~v|	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L M$/x31 Ē̲TƋ}gޮe#(oc (x31 ԊԢĜԲļ"`;>y(pI/emf x31 T6Yq2{&v˼FtFf
5One1"[Zл9i-o89睻{# {#J	x340031Qp
qKcs=D~Ȭu1.bQXpMb͹m9EwI+ ʂbgҶN<b퇠r2SR#o(Ks`zr >
x340031Qp
qKc8ԩ3I[Ql.=R6LOIɎO,`8:oo~jPNCSXRYZT2O.dђyB^wDgҜ$zy)zYyG:>uu0( </=x31 Լ̼T+~kwޥ;M2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw 0áx31 Ē̲TnA
vFvWQRZ(rn x31 Լ̼TvgJOm}	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L /.x31 Ē̲T{ۣgY^[Rh ǜQx31 Լ̼T)KnxWb"לeLL2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw .x31 Ē̲TGJiFZ Uحx31 Լ̼TYVc呑c(/ aGIbVMU,̼ļ"^X[XㄽȽ ]-hx31 Ē̲TԉRj	ntVJss	 rx31 Լ̼THBJ/ZܽQXL(/ aGIbVMU,̼ļ"^X[XㄽȽ -^x31 Ē̲TN+/n?/N~OHT x31 Ăx~E&n0s1WF?n  x31 Լ̼T6/l[juv;O4+K,d.m}QX澕E+,|yKD<3/%<>71/1=.8a/p7r1x31 Ē̲TbIJ.Yxr6Qx31 \߫6gc 
x31 Ăx5/}]q
U _
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%J]e1Vq}?0ߥPZ\YP0w֙|	 B@=x340031Qp
qKc0z'^*0jDRb
~Bd&%de1V_bqi^7ji~ *ԭx31 Լ̼T%kߏ߿{sʔ&&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; k/x31 Ē̲Tz٘x=Mjo ­x31 Լ̼Tik0{{mG)~&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; b/wx31 Ē̲TE?VM:vٽ={' vx31 Լ̼T3v2_[wC[n/GDt	XQ^bA&k[nSX: Ux31 Ē̲TٶC_] <x31 Ăx]ccm=8; :
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%a'T?ZSWݺ8(nmIΓOʋz?5 #=Nx340031Qp
qKc0z'^*0jDRb
~Bd&%de1p&|g"k x31 Լ̼Tn+O>amgSĂL[z յש@u-Y? x31 Ē̲T=ݎwZ1ۺg	 x31 Ăx8^F'w?tuJ :x31 Ҕln繟*l~Q(,&e)1i<lʹ^{rXq+DI2ДD$Ӯsf|uv.3ֹQRobRݮQZߔ(T$K8'tUUeb Q	;4/%$3?c@u~?Әx#koGVTXTho^K!
r+SlO~,%Rբ752  >x31 ĂxemTZv x31 \
3ISM5gUqF %8x31 Ăxxֳ7+T,; 3ox31 Ăx˶=]k7Fy?ci 'x31 ĂxjΔho+1Z5د x31 Լ̼T$?7:Ծ@괱	XQ^bA&ti냏2,\9eϫX* y)yEO/vA	{{E_L 5-Kx31 Ē̲Tr	W2|RoeW Vx31 ĂxZv6R  Hx31 Ăx%jkaюU_|t Läx31 Լ̼T)k˖/P0+?*wg`(2+K,dxvZ3jk}tsg # x31 Ē̲Tޫ~:(/u* hx340031Qp
qKc=r-r[s8=76g!DMNfRbr^^J^Vq~CjKwF
}KXv),Ti^bIfYj|jYj^^FL7?h zy>̼Ԣ4ntͫ|aPy2kqH-σXx({ݎ'~%eTy) xl65*r8tzȳ"E
2(ξ!ROg., ks7S|qFft*D87>;>!l*]5w1Y43>3VMv_3-ġ 3x31 Ăxb{N|}sZZig$T L
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%aQ޷.i[ozc쿡J2J-]WsWz  ٣Bx340031Qp
qKcwonWFH?ebQUlhr8}֐ Jx31 Ăx9GMw<& Wx31 Լ̼TR=Ud;6?ODec	XQ^bA&ti냏2,\9eϫX* ':Xx31 Ē̲T];`Qb: x31 Ăxg;Y~fyMUn ֥x31 Ăxj8Gae~M x31 ĂxN%U_DRd  Ix31 Ҕl߶q{X*? Fi&e)%WC=R>EÚ7'!J%"v՗3s^竳gtܝLGҔ\$uO}2vJתFAe&Ƨ&0\oGdDU/}"de?qNp~_-$> 275%ҼĒ<o#Z7q<!a
d9IEEa6y?NL=P! '2R'Y-{^_. Θx340031QK,,KO,M̏O`if`g?q/~thHI-LNOJ,N2ad"ᴰ+9NŢ(51i˗'45nwNMI9)E@[zOI:eLU.?
 Tx31 Լ̼TC7{mϰbyĂL%e[Y4rGWT  _x31 Ăx)MLzq? x340031Qp
qKc`ȩ\q]@F+[WKygb 
y9)O]A=PtvTO!Ĕ̤̒Tl<9\!;5 ,x31 ̒T'yRڪ?7 ܣx340031Q()JLN`XhԳ홪Ny
{% uVx31 Լ̼TfOeT_ZcVX0]$}+&WNY*
tyf^J~y|nb^bzjK/-]q^n^?ӿ .9x31 Ē̲T
M7W#6(Ko 'Rx31 Լ̼TbWiiΞyL9M2K[|$oe)}^R.K/MKLO-bx~酵:N܍+gw Q/<x31 Ăx[5~ckiuӓ ϥx31 ĂxO'f;ȋ΋x_ ޭx31 Լ̼T"GWm̽eM`i&`Eyӥ>Jܷhr唅>bHg&%1<]'F}3; d/x31 Ē̲Tr}aZ] BVx31 Ăxn	a	J	69:9 x31 Լ̼Tg]8=#dCV&ĂL[z յש@u-Y? -Fx31 Ē̲T/]n!). @ȥx31 Ăx_{S"]{v [x31 ԲTק+_A`e9Gt[nVTW_`Xxͳ=[wﳻi. x31 Լ̼T{ŝ>*oWG=<6VĂL[z յש@u-Y? 1x31 Ē̲Tsy]T|i:+)Rg  [x31 Ăxmw9_5޽ﳯOˢ0 Φx31 ԲTק+_A`e9Gt[nVTW_~\VU?4[LEd 1ax340031Qp
qKch}\dVr߯g5((+`\tiE|"X(/%[/8?|}ћ3Kʝ<s( -<.x340031Qp
qKcP3Mrgls̚Oș Bf^rNiJ*9?4K*oPdzbJNfRIjj^^J^Vq~Bs6vx	7h ZK+ӡx31 ҢĜԒҼT7*.\}̏3%}ǥx31 Ăx8_aߟ()`*F ݢx31 Ԥr"-][E Ux31 ̼Ԣb^w'^mʊz?$/ x31 Ē̲T:}2M,{ּ ]
%x31 ĂxiXH5?_2 ڞx340031Qp
qKctܑV=UysL@!4%3?>9(AM_y1E
T3z071/1nr>
,.ߓ]P-(5/%dv]Jz]*hδFA&1+ޫ!)2Bv^^J^V1P㫳ְOm~[];| Zx340031QK,,KO,M̏//-KMKLO-`8sĠH3G^C}T}r>g ^ Ux31 Լ̼T3v2_[wC[n/GDt	XQ^bA&ti냏2,\9eϫX* {*x340031Qp
qKctܑV=UysL@!4%3?>9(!羿܏[fNYaQj^J*HE>q|XTL͈{y3$2kSu_<! UT;9lO\)^<)g|
 .Lx340031QK,,KO,M/JKI-J-`'csLm] ̢x340031Qp
qKcP3Mrgls̚Oș Bf^rNiJ*tӭo}_[}I@ꕻ6!d&&de1(4oco8q{Z  -kNx340031QON`u+hyfؕܝo 7)>(,(<> 瞬*lӷEY}Zr^IP)U7;O4]	$55>($j7J
]V~)~;
IirNfj^	T[Ƈ/oR~;Smr~^qIb^I1P-<g2^z1<Cr/ʂTX\6	h;4]V〬8(bO:Ϳ/m׼^ ,,(ɇ=Ze53f2|SmF"(ܺ'zuǺ#=|6%5-3//[QYÓsYs:>N¢2߀jo~e]֬}k/wGS?ʼ2bHFIO7xIqj,.rۊ
wx	V}#kMf#[VYseYMdP2i{WL:3̼ԢĜbXt6n]sV;'=FҐTTӻUeKJtTqH@RsvbKw+zt?vL3ty%EyآN4tŜ/Hv⌛HzRak#\ sǔ)( YoG]¢HIuQIr|If.,86jjA~ދ"[!.N-*LQT)(ʦsY:3.EĢT@OmbViC)ǯ[pOREE׼{x&fnw#,*-.IM/bb:LSEdY;9}5BrsV|:ၬ43> 6)vj./\J|<xıT Rbx340031Qp
qKch}\dVr߯g5((+`>2SQZcrgDSUp^qWw .x31 ԲTק+_A`e9Gt[nVTW_+S{Y͜;
__ x31 Լ̼Tn+O>amgSĂL[z յש@u-Y?̼ļ"^X[XㄽȽ s/x31 Ăx~ܾb]Ù%f x31 ҢĜԒҼT	bŞ/޾ (;x31 Ăx%ohyj;_}8#4+  x31 Լ̼TL6a'μfi{HgM2>=^62կF x31 Ē̲TT3n(;yh^ Tۥx31 ĂxfCMG?t:wtx31 Լ̼T٥ͬ	lEnt0g&`Ey߯nNAkSc[ Zx31 Ē̲T-+2v3?ğS x31 Լ̼T]uSv}iVHuQĂL[z յש@u-Y? Px31 Ē̲T_6dS!GxB7 ܤx31 Լ̼T?/\$6q5jf+&`Ey߯nNAkSc[ sx31 Ē̲T+/YJ<2ޣ^W}6v ~$x340031Qp
qKcҾ1ySEܣS%s&'3)19U//%[/8?ᛒi,{>o):MSxҼĒ̲ļĒT!N
-q\h	Qզd&?֛|ʲ2t)S*M-K+\g lSyGUZ\RZrS3`pj`6 Ty%Ei f0l]o2ﲩm)UP_[quk)D`|޵S@6G6M5P7f?8VsLy@ջ5QAݒ7]PUTVAܩg\vU!¹٩qfSI9CaϊPy%p\)MF1F33-7ͺt |k̪x340031QK,,KO,M̏//-KMKLO-`xȇMjN=`-u> {rkx31 Լ̼TSٽe[zخ.)qˌC?L2_;lr띂T^d  x31 Ē̲TQsv޾<syRǧ ʤx31 Լ̼Tڅ[^?y~烳_%gVXa[:5ο% ax31 Ē̲T+]r"]U	1w]em9 Sx31 Լ̼TLGJDՔ\S(/ -)Huuj,PKV #h!x31 Ē̲T6Q.<|hyۉRoɧx340031QMLOO`:?=kY)&o7\K"K,,K9?ЖZk|`[%|'ʢT"s
>%-+iOS A5'x31 Լ̼TSl>-kLs௕%d2|vغ;No x31 Ē̲TaI&VkR' x31 Լ̼T	L_^?}kFݞM2_;lr띂T^d  vx31 Ē̲Tqc5ignm߭n	 Gx31 Լ̼TY./R?{.sF_ĂL[z յש@u-Y? cx31 Ē̲TOuN2/^u ͗x31 Լ̼T҉UߤvWm=E7%d2|vغ;No x31 Ē̲TaSC^LZ<דo qrBx340031Qtvvetר9+]k|#1^Co.~tJA:%2l4}6SNs*NMap{eSہefUܮנ*:wŏ7{iD? 3=jzsb~8/T(;4$37AU}_frK:4a'$15+g"T[Sb*{3[!E=`RrRsS{y<i_It٧pC%d&%U2L/Xwr߿⒢̤ҒԔĒ"Pҍ
>Ul]d?8?ɋQ3'B+7S47N.,K-*fPOpcŻOJH<ڝVQ	s{nj^	A~mzƩ[$nVxU=o\^|VS~ٗBG<8
22l˻y^Z''cS̲
5˺p<nǭZY!jrKs@0!I-w<}aȊSs2
JK-J9++ޛ: *RKn^P7{mBU@[Abr6zYy;,貶{b_!&$$g3;/X$ٖUW(J-bҜTG=O<YyƏ''vA&eT2EHdyD{a0%y:p9OEoߥ $ZcwB֋7B6s۩QQY_ TVsdE9Sa#DUyjϻ_Ů9!]< q<x31 j/{[-Huu	X08>71/1=afh_re&p- Lx340031Qp
qKc8:%T¬sf]d>}kb 
E]]Iԡ|֝s5xR!ҊJ2d1wO>M\ YE^J^Vq~Ú+[lm\8S]l:'x31 kd5~SK:Fta~q|nb^bzjô^&M[ Sīx340031Qp
qKcc/["xQl]-Z,M@!h⡫ٻ]6:ϺszO!DZZQ^ђ3_,fN޹@K K*cX~e~WMg*?C- 7x31 =y"!=jZdިl./MKLO-b+\#Is8\z ]x340031QMLOO`0r_`ro͞L6DVXY
T)r~ڡ-~&J=KNEɩ@Ep-m=ң.I,YΜ& c6x340031QMLOO`hOg}08]ن*K2R*EO;e/Vɹgb)߉(59ʏYݕ7c7~U޾ 8x31 Լ̼T	/zcstgVXa[:5ο% Cx31 Ē̲T։Zjf1{ Ƅzx31 Ăxg9NڼzJ ҥx31 'T+~K5'sS}l6y%WHn" Tx31 ]=Ji.}yƜ=gsS}l6y%WHn" >8x31 <4xOhNw	X08>71/1=afh_re&p- ڥx31 WNV{Q啊Fe[osS}l6y%WHn" Rx340031Qp
qKcx<oIMfEn	O^51 d/|vSZeiiE%zFK|u;yݧF&.Y"/%[/8?L9DdGe%]+ 6x340031QHK,ϋ/K,LLI`)=Vَٓ^8xB>'? F<ZhYmk&P CL?},gUR
2%$kG[g̘l\[lU8Wq71G{RLEfnjPI`DZfc3N>"q 5>%5jn<OV%FDW8M @Zax340031Qp
qKc/|TƜ5FkoEBx:2=sK|,* WG_W=ԼҢT7<5{ `smP9Iɥzy)zYy5ι3lf޼^A)&@ TZT̰Xr|JW8L 5|Ilx31 CZ\Nip?__AE&`ļ"iM^ɕ145: 	x340031QHK,ϋ/K,LLI`)=Vَٓ^8xB>'? bU7Cy6aTEniIjPIKYes]кs֜P% {\̵%2c6x7%8'5dQI CN1ʷP%%@qNnc6Z[nm"6?y?;Ms),HOIMZ\]ʬI+/9/ y9wx31 y2?{o`m$?L҅yE>6{E+c$7ikt^o x340031Qp
qKch}\dVr߯g5((+`ty^å
·vx8vDSUp^qWw ..x31 Լ̼TLW(EVĂL[z յש@u-Y? {ax31 Ē̲Tr[L_
# Ѥx31 Լ̼T+,Lrw%~v*h)fVXa[:5ο% x31 Ē̲T9bvS?|5o695 Ex31 ԜĒĜT+q5O2[oi aXx340031Qp
qKcX6fpt>><41 ̼ҔTn?,]^;a[-EG{SoBLLK,,K/JIK*cYt7l[+v^9Y&  !1_x340031QK,,KO,M/.)JM̍OJ,N`X0!\'5/NVߩdKSRifNJjPt_vɼ5iRɲ'\J,&x31 \K'1ere x31 Լ̼Tfy-Z/}nL&`EyN?YkRYmy; ex31 Ē̲Tn%o
d۹;L x31 ĂĢ"#>7il? #ĭx31 ljMI{7|{wsԴLC3ԼĢ"b.&uzs61Q}>6a)ii~yG3׼V46ʕn%$.xx :x340031QHOK-J,K/ILI-+d'^bB\˩'6/H,*NK)MI9j߻L-Ev\YS0"ӋlW鏰Pm}	 4\x340031QH+.I+)+dHjw|c65"/gy|  (%gx31 Լ̢ԼhK4Z?:\/M2sR3~h,xuO$Ǥx340031Qp
qKc0vt܆ɏ'51 ̼ҔT=]w|Fh^:C)9Ii9zy)zYy7^zg5iN-x340031QH-*/OOI``qvtט!32sR3RsYpUfj~ BFYx31 Ăx7[n[cz$ :x31 bJ[3Q;̦ (	x31 ԤrǾzmFZ;]x31 ̼Ԣbլ+^g/d~I5 <x31 Ē̲T~?b"O:ym  x340031Qp
qKc0K&|*O_&(<5)>((>9?%U/S	SA%7[kR*K-j,.jh>.+gļ"OBAqT}	b_%%'3)?I//%[/8?-nN[0"IPy%ey%Eiɩ6L89P9sG勬}^+ oʤx31 Լ̼T%F)YrxNW&`Ey߯nNAkSc[ {x31 Ē̲Tf.>&8鞥m ָx31 Ăx+Ů\ɻü#]x31 ҢĜԒҼTʯ	_йhȹy] x31 ҢĜԒҼT#r͂/luy ١x31 ҢĜԒҼT	~ծ![< ЏTx340031Qp
qKcb>=g̾^&?(3D/ny*8[+PrMQ^J^Vq~7{g];#xQ L/Wx31 Լ̼T<%;lnne]9X%d2|vغ;No x31 Ăxsz'<3{*tv3  }x340031Qp
qKcb>=g̾^&?(3D/ugR󔝜}i˗BhRk>ӽ4S> 0դx31 Լ̼Tw.m]|Z̤}]M2_;lr띂T^d  ˚!x31 Ē̲TiwmP=VRW* Vx31 Լ̼TnϏky'nhSsL2>=^62կF nx31 Ē̲Ty:3o~H1*fiŲyj^ nx31 ĂxkE%W^f!8ߪ!|c5 "x340031QK,,KO,M/JKI-J-`x{
┅; x340031QH,+IL-`xqmy\i'ZfTmb pE'T\wB0QOJ,N&ԼSEhOM%VˀV\XPRZ0}.J\Ǉek%zL?xuXYXhxGZoq:Sklb{r[\֟+S"oЙZT_TS|;=6ߋvߑh /x31 Ăx]L
	U)X x31 Լ̼Tw.m]|Z̤}]M2>=^62կF sx31 ̒b'rwPV6kJQ L_x31 d}_ޝ aDx340031Qp
qKcH)ZXigwNJ 2
JK6v-Wv܁g&!fgde1xuh}_.m3֜[ hE-x340031Qψ+(-MKLO-`p9JŖc,yu36rM6NOOI*<do[Swh>9 8"ux31 ҢĜԒҼTu%oݞH~|d	 Ӥx31 ̒b=O]μ[..z5 ߬x31 dwO;nWt;~|O -x340031Qp
qKcH)ZXigwNJ 2
JKBԚkeGj~ݹJh!Čl<3˥mƚs+ j-x340031Qψ+(-MKLO-`0*8nr%k\=Q:;2>9?%T~ο	woYLw,\ Z#x31 ̒b=?^G{ۨ>Uڧ x31 dP*[=^s$Rx340031Qp
qKcH)ZXigwNJ 2
JK$ۮr/}6/ֿ3VUǰy,ؕho .x340031Qψ+(-MKLO-`kqQy[T؝TcWZ
Tx*z?߄,d;|r. #ix31 ̒bg<LGlڔ{Ǜ px31 dśFYbavolx340031Qp
qKcH)ZXigwNJ 2
JK>.䅰Mʚ72֞R{bF~X^^J^Vq~<?4]OcWy /#x340031Qψ+(-MKLO-`p]nƃs$LzmWZ
Tx*z?߄,d;|r. l"x340031Qp
qKcUX]\q+}!JBgee08Lb>|A(MQ^J^Vq~7{g];#xQ F/åx31 ĂxwoT}2MVO>{	
x31 ̒b6Ń]5L}ؘw wx31 d%˹룐ok& *Cx340031Qp
qKcH)ZXigwNJ 2
JK*pq̈́X~Ndi1#?D//%[/8?a.YHM+f< /Hx340031Qψ+(-MKLO-`г;{vI./U&᪳S+SR
OYp,|"O <!'x31 ̒bin/lzׯl }x31 dmʿ˴Zg 
Ux340031Qp
qKcH)ZXigwNJ 2
JK&MͲ{}˴!fgde1Cx%)4v%ڬ U-x340031Qψ+(-MKLO-`df֮%VUgV'秤
7-;YE4 }"ܯx31 ̒bރ̽7`*oQ|b# 
x31 dISئ5>acm`1 v	:x340031Qp
qKcH)ZXigwNJ 2
JK^-+.0jxrk1#?D//%[/8?a.YHM+f< 0=x340031Qψ+(-MKLO-`r|Բ'n7_yw!\uvje|r~J*P ޲ZXDɹ %x31 ĂxxM$nne^ ϯx31 ̒bq"sn'] x31 d%fZ}6YCL> 	x340031Qp
qKcH)ZXigwNJ 2
JKR[(/nqog2VUǰy,ؕho .Ix340031Qψ+(-MKLO-`'Oد\йiCTSA9&ܽe1~'߱sW$ԯx31 ̒bP{e{3N[ tx31 dGLxǎ_X? x340031Qp
qKcH)ZXigwNJ 2
JK>9l<+?uaغk_Za1#?D//%[/8?a.YHM+f< g.dx340031Qψ+(-MKLO-`y7q#JR˴᪳S+SR
OYp,|"O _9!x31 ̒bi̓oۖ˩?{Hp  j;x31 daiSY1шx~x ox340031Qp
qKcH)ZXigwNJ 2
JKt]S3p+I!fgde1Cx%)4v%ڬ -x340031Qψ+(-MKLO-`\u>(/^v4NOOI*<do[Swh>9 =#x31 ̒b>/ԅ_.: !&x31 d)/~uoYխWS  O\x340031Qp
qKcH)ZXigwNJ 2
JK":~2*OS	B +K*cFKRSiJY7 J/3x340031Qψ+(-MKLO-`8pեM8,ovCT ޲ZXDɹ q$x31 ̒bwb?9. Cx31 diΜ{O^
­ͺ _
Ҡx340031Qp
qKcH)ZXigwNJ 2
JKܮWr{MOkebF~X^^J^Vq~<?4]OcWy 
0
x340031Qψ+(-MKLO-`7yIėVJ}_&qm!\uvje|r~J*P ޲ZXDɹ $ɤx31 Լ̼Tc4/(Tf9)v	XQ^bA&'?FV3<tH  wx31 Ē̲TiA]Zȴ|6֞I['Хx31 Ăx.Y|_Yf+]q%[ x31 Լ̼T37T65lbAOȳ	XQ^bA&'?FV3<tH  kx31 Ē̲TU5xo:n㇔
$sx31 Լ̼Tݧk.dfߠ!3ƣ&`Ey{c/[W# x31 Ē̲T:+Y?ٟd;h ®x31 Լ̼T3`i6Ϙ%d2\}'{ldn5C_ oKx31 Ē̲TPm.ܽ%gO(  ͰҤx31 Լ̼TK֮6<5mPIV&`Ey{c/[W# x31 Ē̲Tec/io\5 x31 Ăxk157~<޿,M,7 ax31 ̒bfVC>7qtD
\#zx31 do3
fYL:x3WH Mx340031Qp
qKcH)ZXigwNJ 2
JK	\gϺ'|QGiYY!fgde1o)s{Z>6Hm .x340031Qψ+(-MKLO-`8<g埃Ww/MdT`K:.CTSA9&ܽe1~'߱s\$ix31 Լ̼T,`Ovo;-{}is7L2~̥lZ?>Yw6 L5x31 Ē̲T|_d)K#zi )x31 ĂĢ"gy%wb_x> ?x340031QK,L/Je`8Mhv	S.nQUUǰwlq̲.k*N(51%7U/7@S5<e
K3RsSJJ*JHD:gnj7{U P(.Jf芨ڷyMa6Kx?lIjq	NFsXvXI	 OV
x31 <RVNu7^羆:r	X69(3 E?ٰ7=D!713ODkAa
*O͜bJIeAjJjÔ{=hHoyqdr+Ғ̜bvZkίȡV "Eͭx31 ljMI{7|{wsԴLC3ԼĢ"b.&uzs61Q}>6a)iis&0䤻g{Ź\Ji]|S5sX+2  1x31 ĂxV3&|`ů HSx31 ĂԲԼȦ6Nvc]+!&pm5*JIM*Mgx#g37+߽2MᄩOgHxX"q*[qF_ݻ /)JLNePȉ\1e/8W|u+ sR6x340031Qp
qKc|;#7E&@Sʰ"mO{塳d6oWp:bJNfRFfJjRi^^J^Vq~1̅iJRXb_ /x31 ̔Ԥt'|{Y;ŒyB x340031QLIM*M`iGi/δ7DQ_RY
Ty:ТyO"s/8a [Ax31 Ԥr܎_*_Lқs x31 ̼Ԣb1/{;o>լD@.߲F ߡx31 Ē̲TdoXþmDw2 KHx31 Ăxt-D{)[G=  #ax31 Լ̼Tm;'s_Ϻ`| &`Ey{c/[W# Dqڡx31 Ē̲TEL
7#}w ɤx31 Լ̼ToxmG&`Ey{c/[W# _7x31 Ē̲T?-1kLga x31 ̒bgz+yslaV,x1 NNx31 dԭHyYî x340031Qp
qKcH)ZXigwNJ 2
JKN.厹ޥ&Sb3VU7Nko  .ox340031Qψ+(-MKLO-`hZl+55Go}`iWZ
Tx*z?߄,d;|r. ܺ$-x31 ĂxIoM{0r_ x31 ĂxNeL4[  ,ex31 Ăx:ks kx31 Ăx.\͓ҹD +sx31 ĂxLUwV%~:+kՁ-X Ax31 Լ̼T܌U>'goI.&`Ey{c/[W# Jx31 Ē̲T_?\MJ vx31 Լ̼T)k˖/P0+?*wg`(2+K,d4L)Iڭ=SK/ vd	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1ܼT{߿]6祤L^{ATm^bIfYj<HyC֢">{nML; ?~Bx31 Ăxm)S^:)F]$y Zqx31 ĂԲԼ#+줺ᙛ\@&3;~,߾m?lSΐб:ET췰j'J>w&_RʠbY?^~qx[nV 7k:x31 Լ̼T
qe>)L2>=^62կF Sx31 Ē̲TލJTcd<6| ^x31 ĂԲԼγ[̏sy׳gMRRJzmޝi?Wo_ڶGE|	灩OgHxX"q*[qF_ݻ /)JLNePȉ\1e/8W|u+ :x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦247>۟gMC!Ĕ̤ĂԲԼl<ǖ;KejuORw r3Bx31 ĂxVm: a)x31 Լ̼TL6a'μfi{HgM2UӴu· n	x340031Qp
qKcx|=au֔K!jss2t*)rڣ>nONCd&%dde1مb!m7Uvrgͅ<ZˡjK2RA3F|5OzdS <=x31 Լ̼T.?/r*ĂLoߟ5s)۬O<w֝ njx31 Ē̲Tڼۢ\<`qo&G =x31 Ăx_YzUa/} x31 Ăx3>;aٵ{{h  0hx31 Ăx+C	
T=>a2g x31 Լ̼TN
߶b9'|tq<ĂLegn4m`~6 JFx31 Ē̲Ty&Ubq< _Px31 Ăxk|fWb% rNx31 Լ̼T{9U7~=Y_IZ&`EyJ˪iںt
m gVx31 Ē̲T)߫'5ެn96 )x31 Ăx7+Y{ºo~٤x31 Լ̼Tܷ濘[kNEigĂLO~ḓfxp Qx31 Ē̲T7?Om+M |x31 Լ̼Tܷ濘[kNEigĂLegn4m`~6 Mx31 Լ̼TN
߶b9'|tq<ĂL_OÔ~ڳN10*^ Ix31 Լ̼Tܷ濘[kNEigĂL/?n6㙒UçCVGfZ* fv	x340031Qp
qKcx|=au֔K!jss2t*)rڣ>nONCd&%dde1ps޺sLU7>UXYRP~jwA7r>Wx31 Ăx7b]KLTpZ5>/ hx340031Qp
qKc)Ӳ;@VZrC̤Ē̲ʼdl<L/ޣ;v_E\8ײ+RoL[< e7x31 Լ̼Tܷ濘[kNEigĂL_OÔ~ڳN10*^ Mx31 Լ̼Tܷ濘[kNEigĂLoߟ5s)۬O<w֝ c6Fx31 Լ̼T)k˖/P0+?*wg`(2+K,d>eeA͉ӽ o	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1$f~/g>rnK*.-ڼĒ̲x_w}Хply J@^x31 ĂxO6n=3WaϒJ x31 Ăx2'Z)sǌu	 [x31 ̒bۊZ5fj3۹=^8' 
Rx31 d;ιgwӼ5  x340031Qp
qKcx,jТ9g~ Bf^Ai	*aυV4S?bFNfR^bIfYj<X^^J^Vq~pQVYx7 a,"x340031QK,,K+(-MKLO-`X.|ڗwLyEGvje|r~J*PqC%+س9< $Cx31 ̒b2-oۼ(  ex31 dm{$zIs x340031Qp
qKc~p$.{ղ-bvp31 ̼ՙU'86fi~6!Čl<)bK.
$uo:' (<x31 Լ̼T.?/r*ĂL#U
w})L c	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde133A6O7@%dƃg00-Wt]ȲYQ ?Tx31 Ăxqs647ζ6+ 	x31 ̒bF̟R_[\ x31 d'7ޞ@zJscr fx340031Qp
qKc~p$.{ղ-bvp31 ̼l[^,}}()c!Čl<)bK.
$uo:' O'ïx340031QK,,K+(-MKLO-`yᬛxPY;ܗn#;2>9?%b{uܕM~r $կx31 ̒b׮Z+ǲ8po)p3 /x31 d=SuW9	&S m	àx340031Qp
qKc~p$.{ղ-bvp31 ̼	cǧK_33JR̔]fq/~iem )ۯx31 ̒bN7Bؚ=b Cx31 dٿx9#3{݃a}Ū Lx340031Qp
qKc~p$.{ղ-bvp31 ̼g%j.m:ϸ|ǯB +K*cp>3SvOUIu  Q+گx340031QK,,K+(-MKLO-`點vfփ躭	g7NOOI*ds;O/عСY& #(x31 ̒bՒGUmgmNʺ ox31 d[Vo%_s5 }x340031Qp
qKc~p$.{ղ-bvp31 ̼fܙdCkybF~X^^J^Vq~c𱘙,~eޯ2M ,x340031QK,,K+(-MKLO-`t&V!3G>:EGvje|r~J*P62wn5vϰgs Á%{x31 ̒bS
;z;oqy;s ax31 d;-f*N Mx340031Qp
qKcq3![x3SL@!3a/٥%.w.9ڥd0VU |,f2xL.k  +x31 ĂxLQ-|}:9F32 nx31 Լ̼T)k˖/P0+?*wg`(2+K,dSm3)Y5|:dud Px340031Qp
qKcɒ6dZw3!j|<]]me%vDe`wTIAj^p~iQr*I=09G{6̤Rl<"O惡]<QnM>- P *HMLI-*fRϞVtF)P Hx31 ҼT_OxM6n,үi {Ԣx31 ҼTGrM{\a; ,cx31 ҼT}qWM/lIZ4E$b`  Gx31 ҼT#xcG g,x31 ҼTlU3]c;{XS/S Px31 ҼT[2x77} '[x31 ̒bN<nqgHG &
x31 dIWޗRV*6w 
ޠx340031Qp
qKcq3![x3SL@!3Ocnor.x>e=`j1#?D//%[/8?A1XLew?2W&] H>'x340031QK,,K+(-MKLO-`TAhYzSflEGvje|r~J*P!Lm^u|U9 "ԯx31 ̒brSϞzBk jx31 d¨::JwDT1 9
x340031Qp
qKcq3![x3SL@!3a%Suo\,w!fgde18)'^*Ӥ: !++x340031QK,,K+(-MKLO-`p֖%350݅*rrQtdV'秤Xǧ\-j fP!`x31 ĂԲԼ#+줺ᙛ\@&3yǳE^pT3$<tN8-	ү]ɗ%&2(DDw֏_f^+ۺ DP:Ωx31 ĂԲԼv\ysΩls"LRRJ∼"CxwLS8a*r:Vsv\Qg.KSr"WLY;/3cm
 :1x31 Լ̼T4$%^:@"ĂL_OÔ~ڳN10*^ Flx31 Ē̲T6KΕ2H>' <x31 Ăx6,żm70u> ݹ'x31 Լ̼T+Yw',rF|ĂLoߟ5s)۬O<w֝ d1x31 Ē̲TE;(>گhEk x~x31 Ăxc?lcbYi7 Ax31 ĂxÅ?x1SKò tx31 ԤrbDB/~`[~1Bu' Jx31 ̼Ԣb>ux6s/  x31 Ē̲TeJ^M[_M<|7 Oۤx31 Լ̼TRU=|ZE)&`EyN?YkRYmy; Lx31 Ē̲Tܧ[8\7,^5G Tx31 ĂԲԼγ[̏sy׳gMRRJ∼"CxwLS8a*r:Vsv\Qg.KSr"WLY;/3cm
 :x31 Լ̼TwJ__Y_֫?%d2<~;dKf|:繳l ١x31 Ē̲TrzdzIgM` x31 ĂԲԼ%?x]4gbS&PE)I?qDl|!fW)09	S9N~;v¨{`%Eɩ
9+,ѝױn C:ިx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2|g_.}q3L1XPZWUrrg~̼ߓ\] n0>x31 ĂԲԼfI	w7+m'  .x31 ĂxpkMG>wˡ2{Sv  x31 ĂԲԼUr3E޾,Rn#Q**nUTGgnV{e	Sΐб:ET췰j'J>w&_RʠbY?^~qx[nV ;T8cx340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2?<Jp`̍+Q=~L5XPZWUrrg~̼ߓ\] Y0x31 ĂԲԼS7_*ep?wS; %7x31 ĂxMﶙ0k >x31 Լ̼T4$%^:@"ĂLoߟ5s)۬O<w֝ \x31 Ԥr-wx8m'[l d&x31 ̼ԢbZ,R| +ys lޡx31 Ē̲T,ǵݟXΥwi\KtnhQh x31 ĂĢ"[ӘִZtϻw x31 l\7>>ԧ}陡Br~nnj^I|AbQqj^V1a:W>Gn	ذ̴4yνvǠV="1MFr[	~z$8< f4x31 Ăx~UI]KDTe  ϥx31 Ăx3Nbnp~OY3 qx31 Ԥr<胿J;.Q1լ px31 ̼ԢbC)5FJw:s~? x31 Ē̲TN,=:h~}, 	x340031Qp
qKcX7miԉ+Ҙ_&(<5)>/$>((>'D/Y{F_+[]oARZbɹuꮝG^G_'}TKNfR~P^^J^Vq~C=\1fi
!Ē̲̼Ԣx@D&jl㹣E> w[xx340031Qp
qKchU4t[22i'6~욧cQ n(K-%,sxJ\]|]RKSطNԜi97@d&e&de1d&9`sגZ.&@ TZT0ٍ|{;Oj= Jux31 ĂԲԼm6>es2߯m&PE)I?qDl|!fW)09	S9N~;v¨{`%Eɩ
9+,ѝױn ':x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2(/ӽrO[^ |<ߦBLLL,(H-K+K*cp|l3TfoV.e| S0x31 ĂԲԼuI?|a*YO )Sx31 ĂԲԼ\ig+
o^7Eqy&PE)I?qDl|!fW)09	S9N~;v¨{`%Eɩ
9+,ѝױn 6:x340031Qp
qKc?	ӛ+n|ޥ"y^m(d%甦2urqL׋\,Sr222
RRJR\.[/{=>K 06.x31 ĂԲԼq
E^,TKy =#x31 ҼTN9:'5^\1ThU= ]x31 ҼToqozN` idx31 Լ̼T3qfsE<tZ^J/yfVXf.eκCx31 Ē̲T;ߛg}2wXu} ϣx340031Qp
qKc4K/J}I;&'3)19U//%[/8?a£^EެΒ߹ Py%eey%zno`qޥ[4FUWZ2>?/קrMYr^J4UP_[&!U+>WǩL*}Uc^~
ȆuYݸw~GSC=*,, )~/9?+2NsZ}-<
N85SM%Y!?+~ 6"x31 ̜ĢT-	wu~nAD+U ]x31 ĂxOgN▘&b6}_V x31 ҼT=ǂYu^t'^ x31 ҼTէZ[8vO x340031Q(MKLON`ޙ1[۳Y=w(e&秤2hΪE[ߦs&st۾ !)x340031Q(MKLON`ޙ1[۳Y=w(e&秤2lk}mԢlfj-'  !Wx340031Q(MKLON`ޙ1[۳Y=w(e&秤2*jC70 nx340031Q(MKLON`ޙ1[۳Y=w(e&秤2\8ӟgECu $
x340031Q(MKLON`ޙ1[۳Y=w(e&秤2﵍O4R; x31 ̜ĢTSRp:o?<!'L8 *Ԩx340031Qp
qKcxxbi&-f-K Bf^rNiJ*ïjω3]6}+T-NvφSr22sR3RR~f_{㳋<fx 1ͥx31 Ăx>76dyR-UR# x31 Լ̢ԼhK4Z?:\/M2sR3_I$b5Fx`K {6x31 B%?LQw/2gf3hhweTںjWa6% q[x340075Up
qKcx({EKrtbэ&@ЛmǖO_8$7>`bBNfRbqqj^^J^Vq~CwG\%8/ӞZX 62_x31 Լ̼T[1:k3JI;ܕ.n/W0+K,dxvZ3jk}tsg lѡx31 Ē̲T?;ӯm[w  x340031Qp
qKc4K/J}I;&'3)19U//%[/8?a£^EެΒ߹ Py%eey%z*VJ31I0oy*3JR@g0eA6UBZ}ǡ:"9? ?beoI'2c]6S@60LvI͠iwJhiGUXRY Rx:Ȟ{ cw峉OBUp@|vj%!l*]5w1Y uޑx31 ĂxM/8=I!޿7߲(~s wx31 Ăx^,u75Ko5 x31 Ăxg=r%% ]ޯx31 \qS&mvYKp3OV 	x340031Qp
qKcٴ^;ˀvz	ʆ5YezZuӍOUMّs>ʂbOS$oyj|uNA/gAd&K*cP%+=,GB<; %=x31 Ăxge+TDL{54[ڷi x31 ĂxWA/]]Z^\ɢ ٥x31 Ăx{Mkc<ٶp9guw rx31 ĂxyYspz3:: x31 Ăx͝~hR״>I_ x31 Ăx#7w~yrBнCr x31 ĂĢ"o.yF;sQ x31 Ăx͈N-&"g4qL Ix31 ĂxjϜxSc5ͅJe3{=x31 Ăx{_WfUXz)w >ߥx31 Ăx֩a>vTz`am/ x31 Ăx=fw{WgUp Ѥx31 Լ̼T׏	v8[+N(Mc	XQ^bA&O֚mV[ǧs; f%kx31 Ē̲T?ͼ2&n{ڎJx31 ̜ҢLEu/Ͷ>T vx340031Qp
qKcPt]Sؖ,21 <?	ޕdav!Đ̤Ē̲\lb86%lt^xl,)PP幩)٩ũřyz3g-7{a|AG9SY\f`d>. Sfx31 ĂĢ"ǽU/9^å	,`x31 Ăxyo{OOd! {x31 \ۘmGq	Z;Owͦ  7x31 Ăxgy߻ʹ-Rx31 \s#N$xխ FO	x340031Qp
qKcٴ^;ˀvz	ʆ5YezKK..>|0w$TėTmw$kԅfWk$c&XCd&K*c+sK},S7= S<~x31 Լ̼T#B\yp}ƬĂLoߟ5s)۬O<w֝ 8x31 ĂĢ"<=sԱ 	>"x31 ljMI{7|{wsԴLC3ԼĢ"b.&uzs61Q}>6a)ii{U't.3ϼ?Uxu #,b_p`nm i6x340031QHOK-J,K/ILI-+dhX17=:+}瞛 CĢ̼ҔToZ+7|~gɓ,f -):ȶzkޖgؐ  hG6x31 Ăx~+[\`|*^.h{ 4x31 ԲT!Kֿ{V~M{ʓM&`EũyEH7jp]렔ߘ Jx31 ̤Ē"[׵Ϟ.Zӂ{Bzŧx340031Qp
qKcBČ=őKtyK21 ̼ҔTǟ6^_Rn`6ÆSr22KR<<lvP|/|YE k0=x31 ̜ĢT~	:jW5*= zx340031Qp
qKcxxbi&-f-K Bf^rNiJ*Ca۷p易=.BLLJI/H,JK*c-l}ǃ.8ʯ 
3mx340031QψOI/H,J`ogqp7U5	 Oӯx31 \-3b|yt< x31 \~=Ǥa;3ˍCĎU 	Ex31 ̜ĢTbū;ܭ\q({
 x340031Qp
qKc߹wLe؝"p 2sJSRVܗsWIL,m1%'3)-3'58#(U//%[/8?ᷰm>>(o{ ^[3x340031QψOI/H,J`U^w0) `Ux31 Ăxmk~tj Hx31 Ăx/.c6\Ǿǖf~ گx31 \9j#obƸx%3 O	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez}2K.1G<}62"/,H-KKk>e
(ޅ~FvAPu9I`R=x{h֊mx]RO <x31 ĂxuUw&
?r]޿^ x31 ĂxRz3G^f0E x340031Q(MKLON`ޙ1[۳Y=w(e&秤2Xz^ґ1Vi77 !ƥx31 Ăxr?rvxTL x31 ĂxS]/^lv]bUV|#R-1 x31 Լ̼T#B\yp}ƬĂL@;ma!˧ɕp	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1|q<z0vÎ%_lBZ/A%dƃg0d+l<xN/}6X Bzx31 ĂĢ"gG̟[*fsFJ,x31 ls*:)5D!9?775$ 8H/KuMLTO#lXJfZéO=fe_]	pԥ>S쮼=[3 !:Xx340031QHOK-J,K/ILI-+dR8dNmQ_XTS
R+rWվwZ6츲`dE EWrNZq^LN 4x31 bvfQ/sw 88x340031Qp
qKc]4#`sYτO=DW- 2sJSR9'-W~9J/U!d&efde1,(t`cgV9?zSX 0x31 Ăx	!Y2zn
$\v19p fNx31 Ăx>}-*|eZX dx31 Ăx;k\.^th;W6{ x31 Ăx<I,x#AomF x31 Ăx&&bW'gZ  x31 ĂxDeg66͟?rkf Gx340031Q(MKLON`ޙ1[۳Y=w(e&秤2HY&I+{rύr~ f^x]yPwpP@"QIhQģpBETB6!$͆C2NT1d(H8PDZ
b3!RTm	c	p]aQhT*)-)4oJ_@"k8Ԧ$Qf cJoY)y4AFLc?@BX?:yF$U3(F&;wzTAdݬ#0EWa.2@Ӫ|@Y*Iy l>}[gưdS\|T8hvg9<"':5/g(-%苁bjx@WB/w)3JeyޗnYHWG?(!V߮0<"XQ)Esbs9(z. }nK]K  239`)ΖE*|Fyːc-S)/&"+H=羝)eI<ѾE!`6uL`ۮ'^&sۚIjKmssҾ|7wV|H(" VܢB_(YWʸc,AT>: L^	Mo=
HL/pT.[uu=^>xk+#V^U7+8P1о!MI.KKveŸ i\ʿcӢFjue_J:⊱gOjVo\q|EӱDZBv8|GC bDEEo=|~k4D7g[JTwTƓ 8Xojj]VF k <}j&B	s0IU %=R>m~qaSr}}x&]LB|=M)ߐD<zŷQ[۲|nPqU]VvOa`1pGJ
gӣR>f|Ph(ҵ|i]ޮs>6GQ|Hӓv_FڜHY(y5ڪLz;D[kV43F]-*)>89:M&ϴufJ!~Q=q?<<<$F$j^NũxÔNmN\x31 ̜ĢT[.{^y|lf  Ix340031Qp
qKc0YLELq5yM@!3/94%^iJӜΆ4;8yBLLJI/H,JK*cx9U^57G W-x340031QψOI/H,J`x=jͲWu- I4x31 ̜ĢTǅV٘3K.(-B6  c֨x340031Qp
qKc0YLELq5yM@!3/94%֊aj'l4%!Ĕ̤̜ĢTl<lSZx(L} /_x340031QψOI/H,J`U]zoLsr|} [x31 ̜ĢTcf&0HwWյ@5&e x340031QψOI/H,J`$%ۏy1xhB Pxx31 ̜ĢT{7g27F79 ?x340031Qp
qKc0YLELq5yM@!3/94%K˝7tLfKLMg1%'3)-3'8>#(U//%[/8?+Tz4ޤ/
S g-ѥx31 ĂxgȽOƽ=Ux31 ĂxޞM\\6@O Ex31 ĂxEb9OIY_5 @x31 ĂxkfmQcq5Ww% A7x31 ĂxK?s]7Qa\Eוx31 Ԥr#9i0 >ťx31 ̼Ԣbjśs^X751 x31 Ē̲Ts*m^n] ҄ɥx31 ĂxmnmXjx-n^oTF %x31 ̜ĢTj;{ãIS-o  Bx340031Qp
qKcXt,!]Yfvpf&@Sʠfs3uaoG>BLLJI-H,JK*cx9U^57G 2-x340031QHI/H,J`1ώ2'sԠӁo "x31 Ăxn֊%>}ߤ _x31 Ăx}%Tx%XfW ~;x31 ĂxSϾRT8?  x31 ̜ĢT3huW x340031Qp
qKcXt,!]Yfvpf&@S-NT0nMT(cC)9Ii9Ezy)zYy?\<ӫ7&}Q 0x340031QHI/H,J`0,ry-ʵiYމeR;,2 hux31 Լ̢ԼG˙Bydѕ_D^ x340031Qp
qKcX[v~TuL4v]L@!3/94%!`mÓ%[ON2WYWU wEm7LD9 /x340031QH+,M+`pw֒lG;Cl9 4x31 ̜ĢT	UwϙaAM}' ϧx340031Qp
qKcZRXYy7^Kg'eleb 
y9)Ir^Usk~C)9Ii9Ezy)zYyFo]ǟj2D# 9-بx340031QHI/H,J``|ο^^ջ> 00x31 ̜ĢT3~c[M xx340031Qp
qKcZRXYy7^Kg'eleb 
y9)Gݾ?:I2VVyB,.C)9Ii9Ezy)zYyFo]ǟj2D# --x340031QHI/H,J`u%7u'[;gzʥ  x31 ̜ĢTo;pȘ#q< qjx340031Qp
qKcZRXYy7^Kg'eleb 
y9)Ns\0;YrS!d&eg$de1sW	sXtMzzɤI -px340031QHI/H,J`2ʹr'!Jv, !x31 \ym۰gDR }x31 \r97v|? 	x340031Qp
qKcٴ^;ˀvz	ʆ5Yez|SU.1Jz^+H*K*R.9swB_P8[=T]Nfذl<i5b3bS7/m  V?ox31 ԜĒĜT}S7ۯJ-  Gnwx340031Qp
qKcX6fpt>><41 ̼ҔT5+eu{Y8<8v!Ĕ̤Ē̲$l<I^dޭJxTz n;/x31 Ăx+OtA}<FKS Jx31 ĂxMvvS|c? 2x340031Qp
qKca{ˆO=WK)Iw ssfi0M8Rұ
/hS5XYRU q٦3E1:>75%31;883?O/ww>m0+5K5p,.IjɶzyKw^Α tZex340031QK,,KO)ʍO`1U6/7xCyjQPg6l(1b	O,#4M B#x31 ҢĜԒҼT4wΎ5,ڦ	:dxK<W x340031Qp
qKchM{,gl=C̤ҢĜԒҼTl<"~(70+x%|'+t׫8%s.^=% ~&]{$5&o1c Px31 Լ̼TsSeY?SL2Nİ% x31 Ē̲TB'u5-{|9 tǬ	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde14K9'azOӄחφK,,K)`ذhF&z+DRJJc?
x31 <`]tѸ0o	X69(3 G^w0)-S_540031QM+dX(<T)ZRRYöf&Z5_p$3aQ*z3_}	 ?x340031QHKL+d]rh+nm x31 l#WӰOdo(St}hRC|AbQqj^gRF)Co	ݔ  ox340031QHHM+dX}mƮ[;͆HjSA.(\].f*/mMS~KM)*Vd] pL
ŕy% _.vɚF;cՊaJssSJS\YDt;rL@4'a='.-"@d3 gW\x340031QHOK-J,K/ILI-+dXKժI&LRA'?d2WB$g%甦>6й/LLs5q8uy>JSr&߼w 1x31 la/[1_qq jx340031QHHM+dPKrMRZ/^\` _
x340031QH+.I+)+dq+>Mru >0x31 Ԋ%6Quu\M<6&&`%8'2JMQ/E;>ﴒ;5x340031Q(*͋M+d؞0Xa}xc-
 x31 ԜĒĜT)υNϺև=L8- nx340031Qp
qKcX6fpt>><41 ̼ҔT}'m+YKhaXΚC)9Iy%eE)Izy)zYy6<ɼ[%_ D/٢x31 ԊԢĜԲļ":s3Ը,dWUƺ ʣx31 $ˍlYeMm x31 ҢļԼi)8c=۫kt*n] njx340031Qp
qKczjg{&ߝt#m(d%甦2itʦ	?死$mSr22sRRew_qO&2p̩]S 0x340031Q(J,O,`([&ǣqO%ͳ=z!BQZfN*Pu!˖HT
U`;MU|nb^bz*Ysz>nڰ)]T  BR1֥x31 Ăxq/,1vim "x340031Qp
qKcerUnFS׷)1I)J,KO,M,`wLΓE'v$-@W[TZTSTa('\˲o.ļbn'3\[㥛toGW_T*[=s׽ƚ}9MiZ~^	H}NjrIf~PVEuwY;)4h
K@3YP7_|{]CjW*SAFvaRɪ
V$$>%59'(ꐟ3.uqS}MWIeA~zQbAF%PhE2uٛnyځeTP@]<B?.^64'3)茲x&l<î^=iY{Kpz Yx31 Ԓļ"VZt%ٳ[8U	  x340031Qp
qKc0b/+ߑӣb],OK PK)MIe(^ wJ^C_fO>g1%'3)/$>9?//5$3?O//%[/8?A'p4#k-_}y8a h3x340031QK-OKM.`X!zﮤ_>h) {|dx31 Ăx5>Ϳ8tEq-Փh|x31 Լ̼T#B\yp}ƬĂL"2詞';Ltcs
 k	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1<=)ë'_i=UXYR5,6>C_|݌7Em@x31 ҼlύT9=[oOa ^ܡx31 ҼT]kbw ?ɤx340031Qp
qKcj(wYk..K<NY3 2sJSRZIZsWz<bJNfRRi^JN^^J^Vq~çЌeo]u_1srlu V0Kx340031QK,,K+I-JKLNO*KI`0_pÝȻ_a+} x31 ԲT?{S3X~:tԼ"mvW5.uP^o +ux31 ̤Ē"M]Xn1 &Ax340031Qp
qKcBČ=őKtyK21 ̼ҔT=Klx]`GĽ!d&ŗe&%de1pxxڡ_<rۋ \0x340031Q(L*J,/`8.0sk;;UU|IeA*PFĥ9k{& 9 ax31 ')ϸd\˾mUHy&`ļ"!h9=y(t^ Mx340031Qp
qKc0өzjl
k^61 d&!e<f||*39o!DNfRa~^^J^Vq~C~/[r8u +x340031Q(/`PX{#arCWK  ,x31 ')ϸd\˾mUHy&`ļ"$>ssyv4= ΀Ix340031Qp
qKc0өzjl
k^61 dsg|k}C̤bl<b_|qxcK+*x340031Q(/`˽:dc¥6Sx
 {x31 Ăx^mnze& x31 Ăx7#w\xDEmy x31 ĂxkRjH|8{6O ix31 ĂxHk<|z"t=HT7 Y&x31 ĂxxíM	O=>W #'x31 ')ϸd\˾mUHy&`ļ" Xb]3:{k^=\q 3x340031Qp
qKc0өzjl
k^61 dH)3wd+4|rC̤bl<b_|qxcF*x340031Q(/`8qum}K_7 Ęx31 Ăx0oT̘}x3+ x31 ҔliX]=u>n2	DeY|r~Jj2ük77ѿ+ ˵G_Yy JRrޚGw1B+_	.371=IJLDSW0|V '2IiH7sUnȬaֿfQ xU?x340031QK,,KO)ʍO`9O%Nf<3mv6'V~& "&x31 ԲTk+wb2A[}e	XQqj^q~Ikco.YsjsS wqx31 ̤Ē"h"ت-	
( Ƿ3x340031Qp
qKcBČ=őKtyK21 ̼ҔTR:vkN9yV{5!Ĕ̤̤Ē"l<];5'_nqq{2 \.̡x340031Q(L*J,/`(9&_W)An0DU_RY
T:S*3G$3m>+N&n  Dx31 ')ϸd\˾mUHy&`ļ"WΉİ<\`U  ^x340031Qp
qKcx^hQ챨p_R($3rgEG~ەt>=!DNfRa~^^J^Vq~C~/[r8u <-\x340031Q(/`=%yv̄U'Ĺ _x31 ҼlL泴$owbf7Q8(x31 ҼT û[R.|a 4x340031Qp
qKcj(wYk..K<NY3 2sJSRJ.XYM˶T%slOSr2JRrRR>Շft.{뺯Cg+^ {,x340031QK,,K+I-JKLNO*KI`0,c_ܛ{5 (lx31 ĂxoSXoH).}Gb%3 ^x31 Ԓļ"ܤouҿU,tW%i[Jӛ/xY$19n'Rt"wFd2 {)x31 ĂĢ"%OZFuMw xx31 ԲT,vz#~<˨RWjVTW_pRi;k؛K휽 $2x31 ̤Ē"7YWb\x5i淍v Ix340031Qp
qKcBČ=őKtyK21 ̼ҔT]Ҭw08nx!Ĕ̤̤Ē"l<];5'_nqq{2 V.x340031Q(L*J,/`w&(Gꇢޭn* tTG_gIfrۂ}VrL - x31 ԲTާn<wʔa9_gVTW_pRi;k؛K휽 $gx31 ̤Ē")"DcOeܟ%pX"C &x340031Qp
qKcBČ=őKtyK21 ̼ҔT;Gߙ_#6C)9IeIE%Ezy)zYy\6v(kO,e H/cx340031Q(L*J,/`#5m+ݲYeOzvUU|IeA*PL쏾*:  4x31 ĂĢ"O.=Ƭ()` u
x31 <RVNu7^羆:r	X69(3 -՛Kȿw"f&&
yzHDk}mva^'ĔʂԔ4nW'gηǬε%9K_HryD:T!]S)R v(Ex31 lLDN]yt'wo?\2˧d1Ԯ)0a	/e-]#	.H,*N-bX'}XHdb&~L VP(x340031QHHM+dh3x6 @x340031QHLK+d'sB]3ټ b)x31 ԲT,\FhU}1TZZm6E;g697 x31 ̤Ē"|Wv-x340031Qp
qKcBČ=őKtyK21 ̼ҔT;3I|S'77_TX_Uuakf~2.n/Z 0x340031Q(L*J,/`Zw煀k%!>z4DU_RY
T:S*3G$3m>+N&n ɂx31 ԲTF9%W$~}W$	XQqj^q~Ikco.YsjsS !x31 ̤Ē";-]jC&~tڱ"J x340031Qp
qKcBČ=őKtyK21 ̼ҔT{?zγk[돮w!Ĕ̤̤Ē"l<];5'_nqq{2 )3x340031Q(L*J,/`u[_llIO4DU_RY
T:S*3G$3m>+N&n ۤx31 Լ̼TsSeY?SL2:rݙ}$FrVtދ  	x340031Qp
qKcx|=au֔K!jss2kJ,U3/Cd&%dde1>b|b^@;5&<(K,,K)`ⱍ9F3}M7 C@x31 ҼlŲ:\\~ۨHmk >0Nx31 ҼT]bjMxy_U mx340031Qp
qKcj(wYk..K<NY3 2sJSRJv޸1ҖM;8}!Ĕ̤ҼTl<#}OSwMroپV0x340031QK,,K+I-JKLNO*KI`,#Sw<|M/ x31 <e-|>	O~C94,_[7$nk^LHn(&fT2|߰Kr^LΫj@L)-)f<ɱhIc}|Mu ~2x340031QHKL+dm=~Ws:co x31 Ģ"7K)ʌkwN ;&x340031QHOK-J,K/ILI-+dP?s5>uճ"!S3sJSRAj͢6}4_"Cw^"-)ʊ_(W+z 3x340031QH+.I+)+dw[	2Jۏwm| %Nzx31 ĂxbקLv鼯 Px31 Ww3=sfE,:{)g̽J&`Yw`#Ok(ͫh]>!o?"&g$YD#&ЫFrM֥̓9 K,,KO*MKK-bi*}u-9ǦW;ŚK)J,Kg9S;o7	Գ蘲VEafnbz*C{/{gַgwDQVV\`^Ts]W_@Q3%aYЍw/:&}سƿ5_@ԕd'1I1T`ݥDx31 nqnR,{D	X6'3I3[fNmQRdy-̼T"uo'~oyRCV4jJs:~J)[\-穮mA?9TS*wԥ=>f'm: y>>]-v ~sB,Ad'f&3.䴒Z$v)-_*<-zԠ?f٪sL "yq
x340031Qtvve!ۨoWֿb
0(	rutu/H/-JNePM6M=f_]-mb 
ٙ%~1K$(=1jVnf^JqA~Qj|Nf^^J^Vq~Ñv-PzuNY+ $:x340031Qp
qKc:t+rᏕ~}K.xv&9?$D/yNɹr׷,c:[(%$1 ,i?	,*K/MŻ6h	&Ik̸|&73/ (5>'3I//%[/8?aKΑ+mvCTmvV0)9@Cw`QDߓ9)kbJKKJj4k^+HYUSW_T+ِ_cE1Qt<揩L=^g2 U}x31 b,Sch?uw zx340031Qp
qKc]4#`sYτO=DW- 2sJSRztRܦjBLL(.K*cXP:άr8# =.1hx340031QK,,K(.O,`x30;g̰YS0ĔĂ"&Տgnne,_`TXTcgXΉCʂT三~[>p3c.[  DOix31 bӜOeZr͇v *x340031Qp
qKc]4#`sYτO=DW- 2sJSR8/oiGҳR!d&efde1,(t`cgV9?zSX e/x340031QK,,K(.O,`{2j<.uMXpĔĂ"&Տgnne,_`TXT~,yaK֥?^Oz|V%@Ջ2?;uQXM~e6 jpOѯx31 b[Wg<PtG U) \x340031Qp
qKc]4#`sYτO=DW- 2sJSRv`-%i~9&/!d&efde1,(t`cgV9?zSX 0}x340031QK,,K(.O,`ҽANoZ`Uq|bJbAIjP3VE}2\/h*H,J*'ߗN\<T,K*RjrJqs;8^ DPx31 bfvx	+7S= x340031Qp
qKc]4#`sYτO=DW- 2sJSRmK?o!\$Yy(`~C)9Izy)zYyJ'طؙU'O|ޔs4 .x31 bW>;xcZPq("{v 3x340031Qp
qKc]4#`sYτO=DW- 2sJSRj^rƫ=X=jZDn+Sr22JRN:o3Nu)h, C0Hx340031Qp
qKc0y_z'B}c1INM-J`3R}{ wë=~۠K*cԈ-in=BrLw(+(-?,a6k
TyE@߶/$k<5/3W[PRZ_Z\T!d	ښI+TqnjIbJbIb|~i	RVraUԾnOP%6F;M>u4xsN0Ee6<4[%J_WAՖe"pvgnˊq
d _9x31 ĂĢ"/gnX2#)= 
4x31 l2kQ{iq}g~ޗnC3ԼĢ"b.&uzs61Q}>6a)ii>?aH.:~v'DbǖO*כSې :x340031Qp
qKcXDl~Ԃ߹&'3)/$,5>75%31>9(U//%[/8?mxXߧr3dZ<}< 4F#x340031Qp
qKc`M#tD$SW!jr2K2RsSS2RRئhgXj}*7Cӷ ~&x31 TjY6Wlzޝ^ᗡB^bIfYj|biJf~|rFb^^jN|Nbe~i^-nrNܟAUh˒JR%h?8U8jΊ6O2+KxSc׽>c^|As?DבZT_TT˺WXn:MS~{c&lz9c9_n˻6sOqtŹE@1VÖ :xUkPLaW.JtaM	J$ml9=skYjH("3X[2l5cGM&ֈ4gY<_y>G8&&x]jD))sKjYHi)6QNÈߧNvt(CәQ`_ko+9A+{21N(H6_M[XF\黽%;:iM?!rM0BXݫ7B5O ⑹>&PPT<AbÐ,Sh|8!X8Ј}3;{4ݺ'W+CDf,@p(CQMr@bu诇CpraP
ZdꂇUb6$gܘAYgȏxBl{CbYзȯWA+*K; 9BUϚiKtǅpyn @H󅮛KzۣƔقP<ۡhyxu^]*N0Orcj{>lDfIɍV8@5Gz{,q,kTYbX䱹u!Ey&¡JXYRݑ5
\d_g>"rO@x|?Uwׁ/n	Q
6UMsrN>Ghq}`mGw5AmXnQt_ӲH|^G%,5R6qNoY[aV=T>.7Yί	>;Wpx340031Qp
qKcذ'2Oe>tM!DMNfR^bIfYj|njJfb|r~Q^^J^Vq~LK-Ofxy |$rx31 ĂĢ"IMO]^66h#ek)$x31 leK<x/g|p%LEũE9ttpܰ.ri J3x340031QHOK-J,K/ILI-+d}2-yLBY&oQ_XTS
R{~k"Yzo"b?=p+ ~3x31 l%1?$v-\s-Gm+MEũE)xl[dt=x31 Ăx
L1Z[cbCPw }x31 ԲTۿ;e6۹mG&>s yߥx31 Ăx}HX|{5?x31 ҔliX]=u>n2	DeY|r~Jj2C}~T{S>4k!DIfnbz*a*Y3M^IYo㫢vԔҼĒ<'W=Lc:fc8n;҂"$SCBrCf5=  `>T9x31 Ҕd`ፚW'N8_44>w&o	*"vOzM)"\T<:Gfik}"b;oF'LLVCHK͉I/-`0jJxA5PRRsK+xk__Ŷٝ[ظ*SQ1;n{a1o~gwxsgYq~iQr*C"+MN/^^!%%2m憻Oi4cwWdCXYNbAbRfNfI%,f6Xo.Nr6INAC(![v,sE˙^Cwr0+&m*x4Bq#uÎ])#`;5aS!WG1DͶ3߁]CYfJ*ȋvu{mUkx)x4"kߊp[֒g
̻]Ѕ$ԝS(tTq$!͓&yr"ZH2*W?omҽ;
!	xXx\UY4k>G~j7w_Zb)] Vmxx340031Qp
qKc88/=/^'s]&'3)/$,5>75%31>15/Y//%[/8?K妕ٻzD1s S@"x340031Qp
qKc8ɵV{oQXYX[ZZUS\NGWwLr V(8x340031QK,,KO,M/.)JM̍OJ,N`9M5mf_:2ĥ)43'%MX#{ԁ*s]w7) Z*x340031Qp
qKcx" {%x G59Iy%e))zy)zYy-BfWۅϹ[EA˫3  $x340031Qp
qKc_)/=ҫڥaC̤Ē̲ԔTl<)Zb5Z|͐i- Cn#x31 ĂxCǍY^xң/u  /x31 ҢĜԒҼTWJMlڭt"-m7= (x31 Լ̼T#B\yp}ƬĂLv{ӧlΒߧv^1 )x31 ĂĢ"wneMTB.& $
x31 <RVNu7^羆:r	X69(3 AKAۢmx~};tD!713Oouhmﶿt.̫RRYP+ŮI/#gYM(-)f(P#Ϟ" Cݭx31 l2kQ{iq}g~ޗnC3ԼĢ"b.&uzs61Q}>6a)ii>z6wR*9s #Jue;ͽ.ȢTȼC?z9 ^8x340031QHOK-J,K/ILI-+d}2-yLBY&oQ_XTS
R@I{?NWza{YmHoxY,mSki% 5Ƞx31 lW}Kw̝sgЩ/oN0˧d1Ԯ)0a	/e-]#	.H,*N-bX'}XHdb&~L p)x31 Ԓļ"ܤouҿU,tW 	x31 bO.7;ܦҘ ؊x340031Qp
qKc]4#`sYτO=DW- 2sJSR>ZusoKW>bJNfRFiv^^J^Vq~ÂI-<vfI7 2x31 ĂĢ"_8RO]q#;U	: %
x31 <RVNu7^羆:r	X69(3 FLu	|C(&fT2m.#ۅy5SJ*RSRJZq<zr"q%9K_HryD:T!]S)R kFx31 lg5VEbj-&d՜740031QHM+/H,*N-*fR;lr]g7wjm3Ɛf|hq;"^B!F0WMw󣖔|S? W3x31 lN?^\x}js,PtÄ%|l>viP$D 8aa#/m.U!0q6 Ƶ&x340031QHHM+dzb'	]^F^Y-
 `x31 Ăxa+kM*n^ x31 bsxxt}vy (x340031Qp
qKc]4#`sYτO=DW- 2sJSRv5T(g=CӞBLL(.K*cXP:άr8# K\1
x31 ҔlԘC-ʲdΟN\Tp{_0,]$371=0%{=EXֶĤ}.9EHJCBrCf5=  ΦCNx340031Qp
qKctܑV=UysL@!4%3?>9(!羿܏[fNYaQj^J*HckT|p֡%)#;09?77?!+?Jh['ZJ38+?l^^J^V1P6mZ5ib}13N iKx31 ĂĢ"Άihaf &
x31 <RVNu7^羆:r	X69(3 w]-xt:gf&&
yzHDk}mva^'ĔʂԔ4_7<XQVU<{ZG%9f*O}4Do Gx31 lyven]ޑBr~nnj^I|AbQqj^V1a:W>Gn	ذ̴4o_=;)pǅyzJi2^|dQv*dޡ 7Ax31 lR'U.Λ%G4L)iikJ7LXKAyyc&EBSI?R"ٶ_g 'x340031QH+.I+)+dqË7%&J>	 3٢
x31 ҔlԘC-ʲdynzwo>Wk@d&"dow}B}ڶ '2IiH7sUnȬaֿfQ XAx340031QK,,KO,M̏OHK͉I/-`SkU+y"Ix31 Ԓļ"]Kڗ*D`XsnST\P[SS5ÿbS)rzs/k  4x31 Ҽl)o4H_S>;?  c[x31 ҼT?>hZ 2>׏- زۤx340031Qp
qKcj(wYk..K<NY3 2sJSRٱ\H֙uڵ_BLLJ*KIK*c8D0E^$;Q˻ 	.9x340031QK,,K+I-JKLNO*KI`زG}铕ߩK;X ߡx31 l*-9j2Hcs||AbQqj^gRF)Co	ݔ  Rx340031QHHM+da R{]3+k2"OO{xy+all놢./17PXYuޓ¥n2+l
`
ssSJS\YDt;rL@4'a='.-"@d3 1pHBx31 lӬ9kl#k= Yx340031QHHM+dx0ϔ3?YOJuOdb6 cx31 Ԓļ"VZt%ٳ[8U	$&g3mW[.ۈ\ O˨x31 Ԓļ"VZt%ٳ[8U	$&g3̌W-v!-Yf;q? P x31 ԒԤ+5;;<<rMeO 7ۤx31 Լ̼T8/كwHO|Fz(wC	XQ^bA&MSrXqۿvd  UШx31 Ԓļ"VZt%ٳ[8U	$&g3o{V^W^n꿄߶ E)x31 ԒԤFךg}fyF .L&x340075Up
qKc;1eܗd)],7)7L*OM*ON-K*c6\#iՐZБp6AYJ>OV9æ4 ~]
4<vwg bCNx31 Ԓļ"]Kڗ*D`XsnST\Pc9K}w3o}ןе  Vx340031Qp
qKcX/^Ԏ(d%甦2;ݎ?^wqTXSr2RK⋋sߺyR#~6Ҋ ,1x340031QK-/.ΉO`xa똘ˮEp-j0/MY|IeA*P핔'V_v%mل [y#x31 Ԓļ"VZt%ٳ[8U	$&g3mgߍ'Vx ] kx31 ԒԤ$	l'o1Oeh~}T بx31 Ԓļ"VZt%ٳ[8U	$&g3,9R[u'U_ ^Ψx31 ԒԤonMQ'q/l-J >èx31 Ԓļ"VZt%ٳ[8U	$&g30\6ժ׌f[ԨM  K,x31 ԒԤ]Tb&0ncRaZƵ, !x31 Ԓļ"]Kڗ*D`XsnST\pU1_f{tV٣/&    ˣx340031Qp
qKcX/^Ԏ(d%甦2VK-yʻa;u~!Ĕ̤Ԓd<oa~Hm a.x340031QK-/.ΉO`p0w=&AZ>s
?7DS_RY
T{%s'tI[6 !ަx31 ĂĢ")V;-jQp묻#  x340031QHLK+dkwGi_CL1սhP
RgnK_.(?98(>/?CYR1'
3Yz͏]GAjQnfqqf~&wͮs-~1m[vW' !Ix31 Ԓļ"]Kڗ*D`XsnST\࿱dAǌ'WuDJ(| x340031Qp
qKcW9]oj*^;탐(d%甦2VK-yʻa;u~!Ĕ̤Ԓd<oa~Hm /x31 Ԓļ"VZt%ٳ[8U	$&g3Ji:[~z" #bx31 ԒԤ2)AfO62mkY Tx31 Ԓļ"VZt%ٳ[8U	$&g3xK;}5 ?x31 ԒԤ#+|b˾Oq-VҚe58jx31 ĂĢ"[ny|Y[9ǒ}X  ݦ
x31 <RVNu7^羆:r	X69(3 ߦkt6}V0eBWNv+040031QM+dg]>G"Zo+j<!T1(z˿-w>hz6Ғ̜b3^`̀'>_U"7	 Jx340031QHOK-J,K/ILI-+d}2-yLBY&oQ_XTS
R{MaV<+޲)s<N[SCۻ-lݹּ 3Ex31 lW''1Yyҫ7S2NW}R,AxRSNe!EũE)xl[dtK(ix340031QHHM+d~Ww]3N  ?x31 Ԓļ"VZt%ٳ[8U	$&g3x׶\$o)rv 86x31 ԒԤSuOt>[G}
W Gfx340075Up
qKcبmtFHͶk.5'yBd&&'gde1<t.gI>;KznojK-G`8c,%XG\q'ٿaS_RY
T?%LLi?,g6 ûBިx31 Ԓļ"VZt%ٳ[8U	$&g3l-j-{4?S}& KH'x31 ԒԤ98ĿbU5t (Sx31 Ԓļ"VZt%ٳ[8U	$&g3|+uU9#}ޟX> ^ x31 ԒԤsG7?yjҨ+NQ 5m߯x31 bϗߵz%۟ue XDx340031Qp
qKc]4#`sYτO=DW- 2sJSR/L4۳~n1%'3)4X//%[/8?aA;\כr ?1fx31 bggXҖ	 x340031Qp
qKc]4#`sYτO=DW- 2sJSRPy)še:q!Ĕ̤bl<[x*'>r]o9 -x31 Լ̼TSNE?j(ډ7θ4+K,dpz:~fÎzΗv QYx31 Ē̲Tj_n{Eotp
/Yp !ܦx31 ĂĢ";wIhڛ6 )
x31 <`]tѸ0o	X69(3 SN0kYQ+KJն}340031QM+dg]>G"Zo+j<!T1H=qC/2|x=(-)fXr"GW'*

J ?{x31 leK<x/g|p%LLssSJS\YDt;rLd1lH?u*ϡjY<sNGK	KL.' Qj8mx340031QHLK/(ON-.//H-,.+d!|}:nӶewu ?mx31 Ԓļ"VZt%ٳ[8U	$&g30;N͌֘uz .x31 ԒԤ/
3dy__ 6"ޠx340075Up
qKcS8vlLĳ59;^/`&'3<58?9;D//%[/8?s9K1^s;TC^jI<BGe):w?YʂTifOl/wdbMf?Dx31 Ԓļ"VZt%ٳ[8U	$&g3֚zinS.^+zM  G>x31 ԒԤ^n{zxx) x31 Ԓļ"VZt%ٳ[8U	$&g3-fa[ߖeD Vdx31 ԒԤ<V~t])ifByӚ?  .sx31 Ԓļ"VZt%ٳ[8U	$&g3?^w!s_ZKUx31 ԒԤ/]g064fߞW6$mx31 Ԓļ"VZt%ٳ[8U	$&g3|tZ"?늛<q Q] x31 ԒԤ\9W{S~E\ -bx31 ҢĜԒҼTF+^Jge3a] 'x31 Ԓļ"VZt%ٳ[8U	$&g3	}m[kNw<\ʸ U ;x31 ԒԤAhԩ*br!)U x31 Ԓļ"M'bZu3|O.ѫOs ɬx340031Qp
qKc ḓ>FTc Bf^rNiJ*> ޙ-bߧ鮬4Z\UǠWu+eu}O~Y1 2.x340031QK-OKM.`Ji>Z;bS_RY
)fzW? }=&x31 buk/.<s.92A =x340031Qp
qKc]4#`sYτO=DW- 2sJSRv$,V]A뱦߉9ol1%'3)4X//%[/8?aA;\כr ]1ۦx31 ĂĢ"M/ש?X;Zۿ
x31 <RVNu7^羆:r	X69(3 ]ew8뷘\w[D!713Oouhmﶿt.̫RRYX?"z|n(-)fXr"GW'*

J +Cx31 lM+.Hz|h|JfZEΠ7.	_p)ȗ[ EũE9ttpܰ.ri &~x31 l¶-ls|DIͮ5$1>,~Em1х
?& x340031QHHM+d]sd`^RX nx31 ҢĜԒҼT7{L&vnѳƂ楫n Uզx340031Qp
qKcp>A xo5LK--J̉K-)/ʎO/JK*chg`һ4"+;?N{SkQi^If.[/Ex1~rdTDz`ve0H9f?ߵ}slY e%@.)]~TSTt[RFQ\زꀐ ϖax31 Ԓļ"VZt%ٳ[8U	$&g3#^3%NdMZ Kt٨x31 ԒԤ[kdM}hz٪ x31 Ԓļ"VZt%ٳ[8U	$&g3X
؞pԾ*_u# )x31 ԒԤ6钢BTw x31 ĂĢ"E?˔]|ܷW #x31 bME/|4.{& j[x340031Qp
qKc]4#`sYτO=DW- 2sJSRm9Swo7Rvl^s4C)9Izy)zYyJ'طؙU'O|ޔs4 3x31 Ԓļ"VZt%ٳ[8U	$&g3\6:ek%n?~  H	Lx31 ԒԤ6ve|>zM] 9x31 Ԓļ"VZt%ٳ[8U	$&g3dytQ+ !Mmx31 ԒԤWw8Tᕈ:ա_f ;(@x340075Up
qKc;1eܗd)],7)7L*OM*ON-K*cxdIlLPy%˾~tZ7OV4 ~lYa^َZޯK9 ̛Dx31 Ԓļ"VZt%ٳ[8U	$&g3c+i[{k鎩Je Hx31 ԒԤ֓v~M[EB 4x31 Ԓļ"VZt%ٳ[8U	$&g3n"礱DٱqUA ;4Wx31 ԒԤF̥뙺ʍS.<! Dx340075Up
qKc;1eܗd)],7)7L*OM*ON-K*c0w]lo[?2{n.ՐZБ듟y>mzcS_RY
T(psJ
b fAͤx31 Լ̼T8/كwHO|Fz(wC	XQ^bA&c3)3vԳp^wd )pNx31 ĂĢ"yR̋e^e|m^
x31 <RVNu7^羆:r	X69(3 AaNN:~=Ur#f&&
yzHDk}mva^'ĔʂԔ4g?|[&S6%9K_HryD:T!]S)R O]Ex31 l<_:G=Z%LLssSJS\YDt;rLd1ړJ"kb;!#sa)a] S6&x340031QHLK+dkwGi_CL1սhP
RpEmA5^Lw(?98(>/?CV4pYjBB(H-,.W4E"rOrT, Gx31 Լ̼TsSeY?SL2._qbM9K~y ӏ ix31 ĂĢ"Lϝ?O2*j+{9 8x31 ĂĢ".2d[x"Ѽ3Y 
<
x31 <`]tѸ0o	X69(3 G>0nj{JBnbf^A%?9|m[]W	1 5%5!£}cdį;=QQZS̰E$~NTO<" ?x31 lSޭ>y˟{/x<uD|AbQqjLG'':ncZ& .x340031QHOK-J,K/ILI-+dHuR\|$S4/H,*NK)MIun?z$-7!-)/v1kSk	h Ԡ3x31 lAdSxM_Q}h/H,*N-bW
#eu(#7 &x31 Լ"Q7EgJjk զx31 ĂĢ"eۺ?d-?¯UF vx31 ĂĢ"3K{ϫ_-Nt7,@^ vx31 byghxk۩7Q .Rx340031Qp
qKc]4#`sYτO=DW- 2sJSRf71[-29`0]lst r!Ĕ̤bl<[x*'>r]o9 Z--x31 bz[X4Ÿ/oK;K Kܢx340031Qp
qKc]4#`sYτO=DW- 2sJSRyr
R[;[)Sr22JRN:o3Nu)h, /ۯx31 bks=R`^JK. 6Fx340031Qp
qKc]4#`sYτO=DW- 2sJSR~mБz}}_Wh1%'3)4X//%[/8?aA;\כr u2\x31 ĂĢ"׃΢O.l g_r
 ORx31 leK<x/g|p%L)ii9.޸'|;~#_nH$1D\qR	^(x31 bE}/nx wx340031Qp
qKc]4#`sYτO=DW- 2sJSR~X>ydKG!d&efde1,(t`cgV9?zSX 0x31 bwްZO8xlbߥ?L x340031Qp
qKc]4#`sYτO=DW- 2sJSR
7rH;涠~bJNfRFiv^^J^Vq~ÂI-<vfI7 ^2٥x31 Ԓļ"x}|_&MAO (x340031Qp
qKc ḓ>FTc Bf^rNiJ*;Nl_>(Tqd!Ĕ̤Ԓ<l<\)|}{ˊܔ0x340031QK-OKM.`xsKީzj%Y`Mm|IeA*PCc\k|_}?|WpW >'rx31 ĂĢ"+ַKtF&ș^6ۘ$ x31 Ԓļ"K%%VDI29}& tx340031Qp
qKc ḓ>FTc Bf^rNiJ*2o6xE*Hy{!Ĕ̤Ԓ<l<\)|}{ˊ
-Tx340031QK-OKM.`h[5R\JG͋`Mm|IeA*PCc\k|_}?|WpW Xm&;x31 Ԓļ"+|/n*Rձxaf  jx31 Ԓļ"ɺ{t	B-Vl x31 Ԓļ"Y]UW;_S$u' x340031Qp
qKc ḓ>FTc Bf^rNiJ*l[n5og9|Ҫ;<Sr2RKRK2R9I?dۚkvt. 1x31 Ԓļ"A_X^}ͤ¡ x340031Qp
qKc ḓ>FTc Bf^rNiJ*_x~\!Ĕ̤Ԓ<l<kr}ٶڄ5K 1Ox340031QK-OKM.`M_c}UegJʹ3Ħ6 AuՂî}"3ɧ U$x31 Ԓļ"N,_m琈} :x340031Qp
qKc ḓ>FTc Bf^rNiJ*ÙwWE͟g(|4u_iBLLK-OKM.K*c&X'mkMHQӹD 2hx340031QK-OKM.`}+e7Xl;ʂTyW<N&F %sx31 ĂĢ"+;vqk!J] 2x31 ĂĢ"'in{l2$?] .lġx31 Լ"v'*<iW7^ ݢx31 ĂĢ"ESJm5-7zm4&* i
x31 <RVNu7^羆:r	X69(3 a{__lo2yX?uBnbf^A%?9|m[]W	1 5%5!£}cdį;=QQZS̰E$~NTO<" _FOx31 leK<x/g|p%L)ii|z3Dp=] EũE9ttpܰ.ri Yz(x31 ĂĢ"׷_s=zdw6&|  x31 lSޭ>y˟{/x<uD|JfZC.Si[lOY֚z"]XTZ/+c$ɭۘ	 )<x340031QHLK/(ON-./OI+d}~VT̉LV^ .x31 Լ"ClltTI  
x31 Լ"_u8oQ{pB ̥
x340031Qp
qKcX@'梌Huo~\&'3858H//%[/8?ucM<U70qq:?#:oűAwRD-_9vete%@t,BU->~E<A>x31 ĂĢ"XO+{P.fҢ$  ҡx31 l<_:G=Z%LEũE9ttpܰ.ri 'ۡx31 Լ"ڢG	1u|Rw@ 
x340031Qp
qKc0UlAg<<!jr2SR^:NsXuGꡪ3⡪3V[t'!MhkWAW_RY
T.I"Teޒ+^ dG?x31 Լ"/^:[~}~wKӗ hnx31 Լ"]/;ԗX=] ¥
x340031Qp
qKc0UlAg<<!jr2SR?~nؖb	*Y3$~x:?#:aZ7w-xPFLBK*Rj3\]2#djNv?=P Bڦx31 ĂĢ")m.y!)yFѡx31 leK<x/g|p%LEũEi
D~=}\S;? lx340031QHOK-J,K/ILI-+d}2-yLBY&oQ_XTS
R>G:'%ݹ^dE EN5fM<{}o-V m3x31 Լ"{yV=EW6<p ׁ*x31 Լ"C6x,k 9x31 Լ"?=6}W!&Us|{ ;
x340031Qp
qKcHߗ9ݘ
l\2).6L*N+/K*c*޼Jx}=߻|%C@U%dCud0l۳I;J/6%@/S1b{%|_ Cx31 Լ"R	szSٗ>Mܺ ӡx31 Լ"ܺ#].dt.e>} x31 Լ"+GN?hbɝ&⦟ 
x340031Qp
qKcH8qI}sW&'3858H//%[/8?Lz*x~VUXYՑ0Zϳ%,X_O)/,H__\|ˊI-º;Wkw 0Hzx31 Լ"]U"}>2tⴷ" űx31 Լ"նytJ:_ :x31 ԜĒĜTU:]iuh&D ex&x340031Qp
qKcX6fpt>><41 ̼ҔTb32uk{q|!Ĕ̤Ē̲$l<I^dޭJxTz ]0x31 Լ"_L~4Vz`Uۧ  x31 Լ"=.pw(5ۥ+ +x340031Qp
qKc8qg6BvJ{L@!9?77?yC٧l%i=[Ya1$'3)/$,5(W//%[/u~o~vNfX>s
g)Ԕ<BE,#?w?]/wauz*KRsZ
\VYV|;ߝ[d' |Vx31 Լ"`\_f>BQ Ǹx340031QK,,KO)ʍOJ,N`p?9gdeۅb(N*7?m!kS}TYus֘Sjs5}d9y!ޢ[cOJM.*-v%,U`9& uKx31 Լ"Yn$QW<V 
x340031Qp
qKcH8qI}sW&'3858H//%[/8?aω=aڼV,u\aĒ̲xq^JKZ|7[lJK*Rob:}dOIZ7Dx31 Լ"}IvF[5$mMi=>  
x340031Qp
qKc(Zsû:7U&'3858H//%[/8?aω=aڼV,u\aĒ̲xq^JKZ|7[lJK*Rob:}dOIZ7DN
x31 ҔliX]=u>n2	DeY|r~Jj2ük77ѿ+ ˵G_Yy J2sSZ-񖧨GAT$V!)	]f5"J||> xDx31 Լ"?nvG̙ަ7d 	bx340031Qp
qKcX}*}ύniO~G, PHc8! ,vɛ_}bQS:AW/:6 -x340031QK,,KO)ʍOJ,N`H@Ow/<[8V]m<j89?77?R^~o>-wgM1jr)BE%>tT\T>qHTғ+CN Jx340031Qp
qKc٣q+vХL<&'3)/$,5>(W//%[/8?NΙTv|20TTynjJfbvjeqjqqf~^C~eʿO.0:=%@-NToR!YΔf 9'K^x31 Լ"WZMm/^2ɫN]uTáx31 Լ"Lb/ZyjRD۬ @B
x340031Qp
qKc(Zsû:7U&'3858H//%[/8?a߅>}*)
'f+v{AU%dCud0\e=kŶ-'bzN[r4¦4 ~|헥6,=0 (kDT
x31 <`]tѸ0o	X69(3 akKRFqBnbf^A%ÒEAGx$zH)oc%ĔʂԔ46<ѭ%n#Ғ̜bEvV&Xh[v\eJY& xqAnx31 l)U8V0ޭo#|AbQqj^gRF)Co	ݔ  x340031QHHM+dx-';{j=+"OOc!>>WdT_GQ
RxMzJELa~nnj^I|AbQqj^V1a:W>GnTqJbI"PI~۬;ywQe:&@PTZ̰랇ۆQH_  6Xx31 Լ"g\ʘpH 

x31 <[F'0.]BOQiǍ+ME9RI!N[5տ2,X-*lch``fbWP}.3S˙2zY29"1 5%5\o8}Z%`!|q Ғ̜bϓ|1VwTW* t?x340031QHKL+d؟Dg±YQ6p0 x31 l -wPg&`Ģ"~C>řI<U> עx340031QHHM+dh2swG̅/LdY^!TŎd[Z{
SK7ts~tM=pIڣ ʫ+:x31 lm9g?}5ݱ 	Ӥx340031QHHM+dO!?y̜*T><9 x31 Ԓļ"VZt%ٳ[8U	$&g3(68?̴Qfr=rUe 4x31 ԒԤπ;6{(4KIP+ $Zpx340075Up
qKc;1eܗd)],7)7L*OM*ON-K*c%UUwl|鷔5TC^jI<BGä?$\M*?)/,Hsc*뷻R] Hx31 Լ"G^xfWYm x31 Ăx;hjbBE x31 Լ"ose}[t956GE x340031Qp
qKcX}*}ύniO~G, PHc趿iq։7/%(K)MIey^0Á$IgމW%7 z*x31 ԒԤk}'q(  KBx340075Up
qKc8[~-eLmB=J Bf^rNiJ*C]u
6vm>C)9II٩%zy)zYyĿ0sM/ F/x340075UK-/OM*ON-`|۟V89~븩_!%@sn쟓]q~RevSJK ')x31 Ԓļ"VZt%ٳ[8U	$&g3D-Q#|^.K<L BӨx31 ԒԤ(-v&@它:ߵ @Sx340075Up
qKcXDc)ioъ6L*OM*ON-K*c%UUwl|鷔5TC^jI<BGä?$\M*?)/,Hsc*뷻R] G
x31 ҔlϓLP0\fgs,>9?%5a޵ݛ_{ڣ<%HdTJ4e{%}ng!*r+S.}3Wvmk%>{> @Cx31 ԒԤYb[uzW̐ 7dx340075Up
qKc8[~-eLmB=J Bf^rNiJ*â]:o.r1O;Sr2SSKRfU?av}+/_-e 
.x31 ԒԤ5u<,/5 Ix340075Up
qKc8[~-eLmB=J Bf^rNiJ*C~Yw-y"8_!Ĕ̤Ԥl<Y_O]_ep|&˗~KY -Ϋx340075UK-/OM*ON-`Rn=ndsOTʂTWl^#{D|^׳܂o 'x31 ԒԤfͷJ\У
 25x340075Up
qKc^ZP#Ww瞌4(d%甦2귻ubwL!r>BLL*OM*ON-K*c%UUwl|鷔5 0x31 ԒԤ;>xnOl(L "fVx340075Up
qKc^ZP#Ww瞌4(d%甦2<OqN]noWm+b1%'3<58?9;D//%[/8?aWfnW߱IR N1x340075UK-/OM*ON-`p6k҈.6TbQ_RY
T?kdOk?z[- 5&9x31 Ăx:W<+\6,O 9x31 Լ"Ωsl_cbKW"zx31 Լ"[{8J\^˘Oh} T3x31 Լ"A-Y|n+ W
x340031Qp
qKc)iZs33ƄϙdQTW_UǰBR=ؠK2R:2N,\umr/A;E{)/,HgTru?.jx! QBx31 Լ"6_={:]QKoK"&ץ bݭ
x340031Qp
qKc8esŗW{Н[&'3858H//%[/8?a߅>}*)
'f+v{AU%dCud0hc`oa<,tƄu>s>aS_RY
Tye4]ԖhC ZBnx31 Լ"5ZD2/nM x	x31 Լ"CnKoޚ8J_ ԶM	x340031Qp
qKcNM٤I*++hQTW_UǠ~Rצ)Oe/nZ͐&~4EhSϯfjVǾEM|IeA*P̜	\|^ y>;x31 Լ"i~>d;68;_A2 x340031Q(N+/`P(SܗW܉3DV_RY
T=MyO^v?x; yt Ʀ
x31 <`]tѸ0o	X69(3 ^rK%?xjk'nD!713OaɢX#<b~S=KjbJIeAjJj7Sp$W!*JK2sYb7)nq)g uBx31 lj^w.Iw{|C㣹	X 8A3^)tuס7nJ  ݨcx31 leK y= |x340031QHHM+deDOG~/]. <ʨx31 ԒԤ3ƞu!o-9YY~m 7x340075Up
qKc^ZP#Ww瞌4(d%甦2|fnSmU0Sr2SSKRfU?av}+/_-e /x340075UK-/OM*ON-`h)sTu!ykYy(/,H5'J}=- @%(
x31 Ҕl27>
-U1W+G	DeY|r~Jj2ük77ѿ+ ˵G_Yy J2sSSɚh`J
}_CT$V!)	]f5"J||> @x31 l*9Sl(%!Hɟ&`Ģ"xЍ>R]2<z#ۻ) Tx31 ĂxռK/>Axb x31 Ăxj-qbc[Ǥ `Ux31 ĂxǊ7ן>TT% x31 lq&pOΆǔ>6$1u+n:M	 N4x31 lڥ&[/N}JB|AbQqj^gRF)Co	ݔ  >x31 ĂxKj0rկ[ A̥x31 ĂxS.ZY.E[5~ Ux31 Ăx+N	~H\ Sx31 Լ̼T▹H[WWaᎱ	XQ^bA&C\;H {qS MNvx31 Ē̲TM5S-5Ӳ8ʆ N	x340031QK,L/Je`8Mhv	S.nQUp4>ދ-o&}Pɱ+*,,JM+)+(axo[]o'/({0 4?eWzW-z <x31 <61e-'t\v%s{	X69(3 WaszWL~cƝ͆f&&
yz7?3i)*)2SJK2sJ2O|zz(NOS7 p7Jx340031QHKL+dp#֟mRcr;Սۗx31 Ģ"3UoU[ܫBvNq N
1x340031QHOK-J,K/ILI-+dɽI~[\L{5B$g%甦9zᨤ$dE Eyxfdg$-R  y2	x340031QH+.I+)+d`#v̲g2.[/ [x340031Q(-`YV99ű411 4Ó,l6Zݤt[)wL2>/%Aks"Wyͤs
 g]%mx31 l2NG}xao	X 8A3^)tuס7nJ  %?x31 l#>oԻg)Ȧ,nS:B7HYwxHl Dx31 Ăx_{1;8NXE2c' 
x31 <`]tѸ0o	X69(3 !jo릻|wo"f&&
yzKŚ!^R돕SJ*RSR}WU7'o(-)fXkgeތeWte O&Cx31 ly1*ӒJ.UD0Nt6$1u+n:M	 x340031QHHM+dh2swG̅/LdY^!d{KE<50|TŎd[Z{a
ssSJS\YDt;r۠SKJ7ts~tM=pIڣ JsRvp۰|ۂ:9
)D6 *Vġx31 ҢĜԒҼT>2SGfiOZO8 ůx340031Qp
qKc=KAfL&}kfQZZZR__TWUVAfoAuКLug]7wDdս7/, i޽?N<plB T[x31 Ҽl"7|r2;?`KL P=̡x31 ҼTUK/eq|tDd r{x340031Qp
qKcj(wYk..K<NY3 2sJSRsOk7M~BLLJ*KIK*c8D0E^$;Q˻ 2.x340031QH*KIM//(ʯK,,K`xĝC,~֬BnLX޳	&>3$(-195b
Pe\ykz w+x31 </brG[&w}k7&z0Ewh/ZڟԵᦡBnbf^A%ÒEAGx$zH)oc%ĔҒ̜bEvV&Xh[v\eJY& 3Dx340031QHKL+d6YcR>gsW|x {fx31 Ģ"xЍ>R]2<z#ۻ) x31 ԜĒĜT:<)dua(늏 [mx340031Qp
qKc`4}4) Bf^rNiJ*uv͚E5L(ƿeC)9Iy%eE)Izy)zYy-:x^ynvt -hx340031QψO.-*/`].gZÀ5Ey
RS2KRJ5vk%#Hjߊ[շJsJSRKܽ,SRR3:ߏ]8>49;e%U]\xhEOsRsK2sKR=kR3Wp.لCu|jQQ~Q|r~
Hc/G+mo09iz T]px31 ԊԢĜԲļ"rf룰e_翍3 ۡx31 $xl0siʥ=%W 1m
x340031Qp
qKc0仱;G{ެm~4Bd&'de1g6}Wx#T9ؠJSR22o
^<[u-[Tcsc=n&  %>x31 ĂxSssQ!m+  Zx31 Ww3=sfE,:{)g̽J&`Yw`c/79#qu͊ A5^4lZͰ.e1l^bIfYj|RiZZj>wy}vt	(R3nNMeB3l-:AQzMǦ-Gy8dgDQVV\#1[
?8__#WhgJ~9+نLpJ}F%*=S!JsNuazrfG *^x340031Qp
qKcxΖ+sikT_xL!DMNfR^bIfYj|RiZZj^^J^Vq~CE+.{1Q^&Te64#i{>=uc|3 T8ߢx340031Qp
qKcǿ3&afY{o}Y4C̤Ē̲Tl<Oe:-oR
p8Ճ!!K0WSgr 4-x340031Qp
qKcXsSc,e7t2LK,,K/+KK*cxtwUĢ}3zƦ]P=(2~x^a W 4x31 ĂԲԼȦ6Nvc]+!&pm5*OgѦPzp?4e^4}ɗ%&2(DDw֏_f^+ۺ f(x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIecӹ
Y0wC)9I9zy)zYyqz@D͋uW^IOB,yx31 ̜tSVauc6uJ hx340031QO`Pc;%BޖO  ;
x31 Ҕlo{^]<+`11*l:ImOhQY%|gO-<
$371=ɰYE2oyz9DeANbejsCVdZexɣ 3Bx340031QK,,KO,M/.)JM̍OJ,N`TpùPCnןP̾̜"7:=aK7FCO-zx31 ]kWbgx340031Qp
qKcx<oIMfEn	O^51 d3uslHi{O7OK+*`qC&N߅"/%[/8?L9DdGe%]+ 7x340031QHK,ϋ/K,LLI``	k˦XIr|7B疖V i]:qY_TIaij)?t:?2VrܭP%9@%oxNVZvMF#TIIbq6PŚ]'5d_?G*SqFآ0)i@U5G*+0d]U/ Tx31 bi?n-=9OKTx Š	x340031Qp
qKc]4#`sYτO=DW- 2sJSRZͿ\,XLyłSr22JRN:o3Nu)h,Ĵd5J~ŚN9 x<i	x340031QK,,K(.O,KfzV٩")C]kbUXPZTr1o_tӡUh*H,J*;,c/3P c8x31 ̼7lw/d{Yќir q!x31 ͟ejSrV$~קG}/  @}	x340031Qp
qKcԳ:7DN5FiVB&@SPmZd42X|Ze5sc1%3/$2/Y/ܻ,4	TYNfRJjYfrjf^Z^^J^Vq~*|^$L"aF" v<x340031QHI-LNK`8#CRMz*WCĂl:vϲ-5)?I% EF:x340031Qp
qKc=9WW3w71 ĔĂ"z.=#`yȼL݆榦
9ŕE%z73lf?ぅ_ovmEVѓZTpsyNBbٶ$??'9#13nVO{Z jRx340031Qp
qKcwonWFH?ebQUP4@E5I<A2Ǎ !x340031Qp
qKcxhNQH͌y7]L@5ؘwK+gZb-b$</bFAj^p~iQr*ㄦ^/K;ĚLR^/1 'ٮx340031QH1`X,`s:O^5<3B%FD	;Nn?uik BP0&5|I??]PQX_Tx|ַgzp}98az M:ͦ
x31 <o;~~`k
)a!7(0&z0L/~;'e9&~Ymf&&
yz7?3i)*)2SJ*RSR}WU7'o(-)f<ɱhIc}|Mu iBx340031QHKL+duúJטmٰƔ# 3x31 ly1*ӒJ.UD0Nt6$1X59^JyVf\u6  Nx31 ĂxFK|_N:xQx31 Ăx²s<9N 4x31 l -wPg&`Ģ"7K)ʌkwN Jɥx31 Ăx;m	Miihh YHx31 Ģ"~C>řI<U> '4x340031Qp
qKcpikķt_0@S!DMrbnjQ^c'lgs٦{K*cȝ{{fK^8O;]k0KO
̼I~ȾcG*GUZTynk	}-t΃-()-J/N-.*g"oJ'7[kTqnjIbJbIb|~i	xCZ}f7`}p{TqAF~I>B&ꙏwtQʴ /a*R2Sj5بm~mwUz3mCՖe"3UD&GTG^x31 ĂxC䶄~+b)P; åx31 ĂxU?uDVvC+ x31 ĂxWb^/̝ܥ1s  ܥx31 Ăx}FFm?6:ڝ[ ݥx31 Ăxo=f>ysݫ7 tx31 ԜĒĜT=?V|.4eΉ9| `
x340031Qp
qKcX6fpt>><41 ̼ҔTk'G><y@UNC)9Iy%eE)Izy)zYy6<ɼ[%_ K12x340031Qtvvetר9+]k|#1^Cqխo/|CG/^iV WG_W=ԼҢT>yJ^z ө~.Tũyz)|olj;WLuTu@EJm0E'ju;$M@!1᡹SjWH-L)_,.d uЊB0?O*KIMKLO-be?}.ںFOQX_XTT%"yYfM
UTXT0Mxb]kDn|Ҧ7 R2K2JKRSRKsӋVֈWhe={g*__`6ߐq񿫝WC2R~w4_Ϳ|-R"='?)1A%mOg
¶F( #3!^y?N_5;QYZVuoW}DMniNIfnjJf"+M_6I+ZbĒbpe=ě><۲jʷ"ESTR17
mߞsTDy߽	QZ\ZYRɰwVϾ;:͊2r<<URXTRZpgڏrwUג%E)"RbSqmʣE<f @F¤x31 Լ̼T▹H[WWaᎱ	XQ^bA&c3)3vԳp^wd HIx31 bq2(0k/ )ˠ	x340031Qp
qKc]4#`sYτO=DW- 2sJSR3(w-!d&efde1,(t`cgV9?zSXiE7kϕ5{mםrU?x31 Ԓļ";\_)h(io5iB x31 Ԓļ"¥r6jY>i}ٓo<e ̬x340031Qp
qKc1n\7u`}' 2sJSR.]P)ӭBLLK-OKM.K*cp߹8䑈cĄ( V.x31 Ԓļ"O;9gZn7e cx340031Qp
qKc1n\7u`}' 2sJSR?a)y621Z\U.soq#)"	QaW:.x340031QK-OKM.`'vl2SҮ]Xy/ XTx31 Ԓļ"އ.Y	ʿxT/? x340031Qp
qKc1n\7u`}' 2sJSRy%76pjdBLLK-OKM.K*cp߹8䑈cĄ( w.x340031QK-OKM.`;_2Ym o+x31 ĂԲԼȦ6Nvc]+!&pm5*Og4)o/s?&P|IQbr*BN)Ktgxeul⻭[@)x340031Qp
qKc;Ɯ9.)ObSж6 PK)MIe?R1oi*}d'Sr222sR>*.x/f뮼؃ .x31 Ԓļ"oY<ەg}s =x340031Qp
qKc1n\7u`}' 2sJSR|~:51xovbJNfR^jI|r~^^jrIf~^^J^Vq~ν!D&&Dņ_ 52;x340031QK-OKM.`Ⱦ{gz믬|B0 rYx31 Ԓļ"m	fFTW
 x340031Qp
qKc1n\7u`}' 2sJSR^?c8|b*_"9ٱ^o1%'3)/$>9?//5$3?O//%[/8?]|G"REZbï 0x340031QK,,KK-OˋO,`0/f꣺lϺ2^! x31 ԒļԢTI3*})V *x31 ԒԼ{_>+uڊ$t}? /V	x340031Qp
qKc0YƘirL]`b 
y9)1>_i^o/n7Z\U.soq#)"	QaW!%3Xe^_qjX>2 :Cx340031QK,,KK-OˋO,K.(`xڙqbU>_;a ?x31 ԜĒĜT*&O~jsߺ ]ygx340031Qp
qKc08'Nń!zL@!3/94%=V5&[՞)Z˔8BLLK,,K/JIK*cXn߫.{Lbs7{$ zW)x340031QHI,IO,.N-`ɽjOA+dܹ.?#>8elov>۰)M]
RS2KRJ5vk%#Hjߊ[շJsJSRA{qYQWg/1uMqq|Rir6ر	碯>=śLȾ(5'$3?/1'$(zp}F
"'&W}HԢƼ_|W`rZ .ᅴx31 ҢĜԒҼTsuuzze?a 6x31 Ăxm֚={E'O x31 #"dٽ44R< 
x31 nqnR,{D	X6'3Բ^aFwOJOX"R\_s˿m玲pI}W.u7TMiqC5/E1_5<dv@SRN_QG֯J3lrzmx˹͞'/PRf
?wYʣWfKQRVZT."JVhإ|-7;d 
>f(Re1UD 7yx340031Qp
qKc;!}CS%uoOXoQWZQp|ϑsL{*[#/ĒʂT^WX&QxLN3PeiE zv`{ǹ=NZo'_dC槤 0|pVs잭Y{o*).I,)-Y_ʇz2Ǖ3g_4$58&)s39?)fL:d범v4&[V `sӢ
x340031Qpta$sO\ClmNEgB:%2|Z(HҼ"+eߑ?M@!/%;>8'>3/94%a	JVY
ZXx
8(S3X]9k_e O>/x340031Qtvvetר9+]k|#1^Cqխo/|CG/^iV WG_W=ԼҢT>yJ^z ө~.Tũyz)|olj;WLuTu@EJm0E'ju;$M@!1᡹SjWH-L)_,.d uЊB0?O*KIMKLO-be?}.ںFOQTXT0Mxb]kDn|Ҧ7 R2K2JKRSRKsӋVֈWhe={g*__`6ߐq񿫝WC2R~w4_Ϳ|-R"='?)1A%mOg
¶F( #3!^y?N_5;QYZVuoW}DMniNIfnjJf"+M_6I+ZbĒbpe=ě><۲jʷ"EQTR17
mߞsTDy߽	QZ\ZYRɰwVϾ;:͊2r<<URXTRZpgڏrwUג%E)@e/"%6%צ<jY_1^cO.Z8x340031QHN,ȌKKMahY@~V%6xwN[kQ_^RW׫<kz!ZyS.++-N-O/LI)[n1fT} 	/x31 Լ̼T~zټD,O'L0+K,dugYUD{/z
 Ӈx31 Ē̲T
]Ww9~ٿBLo# +4x31 ԜĒĜTZ/['?g7 dGx340031Qp
qKcfd}@ɮޗU*[lb 
y9)5k0INJ!d&%d$de1L+{#Ezg/x31 Ăxw/::G;U8 x31 Ww9WϷWt	X5ؘA/-S֟ުzGEFg>rL뭖EAdK2RJRψ`PKslMQu)EyKm}.u	*9ؠ(MLOe`D ʊ+Zg
D(++Kf=(؜Teַ*A!gًs(ʀv3Z;S1ue9ىy_s\?.qocMj bx340031Qp
qKcxw֞8>Bd&de1xcwa~?ŏI >"qx340031Qp
qKcXVk{ <YK!jr2}\ˌReeX8E]E#0 x340031Qp
qKc@oW%ikcw [x340031Qp
qKch}/#^s:_*<֢O59Iy%eIiiEzy)zYyE7]ƨF{i"|x340031Qp
qKcx7wֱ;7n#[aQXYRXUrU;ޫ'4ksrN<  #x340031Qp
qKcY$3t׷zߣZBd&%dg&de16_~.iyc7VÑX !ʨx340031Qp
qKc3fv%z{%>dkQXY_V\Ux愈Ef`OM4 Sj#x340031Qp
qKce]вŗ\m&!DMNfR^bIfYj|yf^J~^^J^Vq~ԇt9ΐy`i~j' ɿ#x340031Qp
qKcH^Q^/&'lmQTVU֙uc_|/2k?v  !
x31 ҔlG.+}65o	DeY|r~Jj2_lׯvs{3+)%H}z-xS#I\? *r+S"Z$*ŋN `Aͣx340031Qp
qKcH-WlM)M@!4%3?>9(!羿܏[fNYaQj^J*HckT|p֡%)#;09?77?a1m}vynlqV~0lbZ#\L4,9z֜` K?x340031Qp
qKciʰ6lY| KS2SRSR>)/zboaw;R $C9|(s:^pѽ;@J!3Rss+KK2̼-˯8/yz矘ػPRRsK+[I'zaj *.i\UtPmv/`*KS&v;fM:{<y<rkC@ܗXʠATn<gj}xT{_LEiOLV~/ԛy%e@&$&edT}bVju24;+il14 @^8]~ Fh< 5L6qQS˝t`0Pþ{Om
PY6L?5e"9hxuq~00'(:덢}yr"ds5B]=ݝ%*bguԢbL_ֽZr[iϸ,^8-(7M=6gL0myfi:8757S/MXMmA0C.<_Wsg䡫J6y즭SڗF=$9pۍ%{ElbVh_9:XV<-*|ؗSe ;6^x340031Qp
qKcal.{bpgONGLC̤Ē̲ԔĔdl<iՖ_8V$=t %x340031Qp
qKcgxl]Wp)$B!jr2K2RsSS2SRNZnZIts? . Ԣx340031Qp
qKcPd;-fy:cҿw/P_hQXYX[ZZUǰ;SZU	]zfm 2&x340031Qp
qKcx?㼖q\>3x}!DMNfR^bIfYj|njJfb|bYniEj^^J^Vq~êm
X.$ތ{ ȁ%áx340031Qp
qKcHTPQxWZLŮcBd&%d禦d&'%de1}aVh߽< &hx340031Qp
qKcXoZ[N$|w$C̤Ē̲ԔTl<;߆w+3Jb{) J'x340031Qp
qKch8}(}dhwnecQXY_Uۑd5L4T> oj$x340031Qp
qKca;59Iy%e)e)zy)zYyuׯ/|&jFwp#x340031Qp
qKcg#댭-h]VhQXY_UǠoגu	2ݳ=cZL  #x31 b.z&+3Mq_= cM	x340031Qp
qKcxt``\ϚI'Ma71 ̼ҔTE##c/W4S^(r!Ĕ̤bl<[x*'>r]o91(&M⹒_&{=SN4 :x31 ̼Ҍ%Iʟx|T8> x31 uVΟ[ay ugx31 ̤23t/0ܘ}9&`̼Tk'4ϗ徣P8j3kѭleeOIe8R|qG]c{Y۶"_̰f
?wYʣWfKQRt%GEW]',[u" qMRx340031QHN,ȌKKMahY@~V%6xwN[kQ_^Rڝ{XI3&=}8(>43%pozerQ]# L1	x340031QHN,ȌKKMahY@~V%6xwN[kQ_^Rǌd'ozYP|<8(>43%pozerQ]# y1Ԥx31 ̤2&&=WfMy)E|aE%]?L,zݶ^[J OIe]cn'sDͅW/ y>A.JsSR۸D8 Jd(8.&i"7_  ;KCx340031Qp
qKct9ߖm/ؕ!$e5M^tԮbuD)UnJ~r1SFb^>}cTc^EnÕo-R[sQSJuC:%2,ӘG򆐛_k
 Bf^rNiJ*˅o?+txlٛPr2JRg$	ȗ fx340031Qpta$sO\ClmNEgB;U0>xsC_O+>gkJ\]|]RKS>kX$xi^V2&@[ZSƯpge]B(-N.,(ayeNl}a1 ~<Lx340031Qp
qKcP7
7b^\/ؕ!5J>*twTc^EnCӪ&-7_8s;0cx TIAj^p~iQr*[ieg<fOEBI '2-f}糽u;%k Ax340031Qp
qKc%9}6[ygĈ3tve0iy)bw?j9K
܈姓rOc\P%A.zyEɩzoW]\spnW2;M@! hӌ3cfaa'5*dk^^J^Vq~C49V'Z\Z|yyC~ eSux340031Qp
qKc(lVݗOsxNq&Bx:2\tIKK.E{DB;U0&n<9/׼u3 WG_Wu?D6FQ__Zʰe2J~i1
*9?/M/!N6cs__}$'3	k>M~_~2*R<-]?27_- 7EGwx31 ̤2ekMz9+N53{uo#+Ly)EO[މYg}Sfl]8!G]_5!f37Tt"FQv+Uګ~qD: 5/5a6۱#[~Γ+X&.P~6DIЕ?B5	S֚pcv _Vqx340031Qp
qKc;!}CS%uoOXoQWZQAY狣3b=567T.UX_RY
T&wީWfM	L؟07TYZ~Qn"(͡^p6]qڎjr3RRs2R/=oLwZa:SRss~@@HU:FgO]UR\XRZT#SPhІ+z?)I+/Y=9iWY7λXE16:ؼdݵrSU)I ۈx340031Qp
qKci-fu߾d݆[Wޮծ21 ĔĂ".ߚcמaǸeFUS*sKs+K3l"K_UF[^{[dCd&n_2ӢTѶnn^A\SfμQ.%uTH5$??'9#13dRݬs0,&ٵ`! %`x340031Qp
qKc+HUANԍ۸Bd&%de14siYĹ'6{}^	 ͭxUy  QBVe1Z$(9h))Z^30cf1#GYthmsM(iHni*($U49tجyG~>kjbbnf! ́=6vYؼ}o1LrLŀJ lcORp`C#;}ٰ (L<?5Up#)y«vy<7WL8±
E,f	3 ̥s
$Ʀ3{9Y,ɆCi<rJwAkY3gBc/B 0/dK)ION7;r+DcPP%	ox#\_`EQr9px}c؟|]T0zd5Q5y}!MPd&iץ{ROye	Hp]+ҥX>
#	U/dJ"a\4 kS{dxbRI0i9%H'$F}^w uC5L䈲*̷-K>} .:@EPLr{eF3\L0 >y`7F#wnYs D*sǵϹ-V*6Op-%?Ebs&Q! \ZrF`٪q4?lz߂R4ت2S\N؄ }qm\l:ʿ/9]'9C`P%cL_iӗ{Уِv6w,sW%7aӀZj,As^(HXܵ:QT0N<k`u\}NS2훺^n~z+K "d.*ׯͯ9":[|k1@%t{	!Wۢ*dnf]UIya*t2ű+2/]fޟMj3(
!'HșyjBMzJ\}("HFixV /zeC^0
#|fFjD|b'uSldo#VMq3"7%hM!*ٸotPAUR&)k/Wsrņ&jJlʾ*.co"1l{pН2esAHamB>;<|OՍŜ|<5vd5j :D
nN2!H	ϬDU ?|N>ҫo؝dnR3`;=c(`xEA:#H%=)r'B #AJ^)B}䇃յH x:񃖮gR6lETL#^Q2F]_p`X1#0pIz<%CF?s5m0i8Ma0T @QB֧'7q.J䶏pL).LwW#ֵqa
BGqIR4Td*{OSt!L_4z6Kގx>bPBXIRKr>_29Utذ 2IjaXKrإ,2F{cQOhLVPԻdUߋF /oFTɛ#K`@LXHk	#	ƦАƥ\9׹J^e){SP !oQhF¥ZnOc3J?U{A/j@"x{1puaCD +Ɵ?vT7?ٙ3GHC¹~ƨ/[U%J-?BVTUgrպeD0d0A";oRbh2\2=c3*)BgRJɦeCr~Z}C̤q;|cvNjVU|GONDבHϿ49_|<Y{eeSؔ6(g5s<lpIe֪'NwiVb|@&$t@]vƩg'[6.32⒀ݔcAW.)Ք^:hٔƟ st2d8o4FCލqRmTcJ&gKsbTΩAOG}^Bl^VKq;qXKn(6lѷ_'mr}gRz" F75Zn*.>g]zd'ňZSDJ7I25)$6Өny'*iȍÔ]/"tiM-!@(/GKO}pᇽ{2GTA
 8@#l#ZLw(>r\|aBn!(UZA:."hjM`$tGMj`<dJQ#^SSYI]Az].Qh/8fyMP7魷S?`nuެSRֽi1-`?r󣗶TGu>׬QlB юtC5nͮYб"N;8?'9:}$D_Mcˡ*պyhْjftP1`(éGl~~cݺKyhx340031QH+)`iG[ZfBd楖 UUXD){6M""I%$<)6g6TE ֨Xzi+vSo}-ÍXht
}UA{M87aj ILz||kw )Y&x340031QH-H-K-`8qERŦY=#%KBTe}IrY`DpĢ}g^v{4J2}jKKRJx r.ASϺKגc| ]8wx340031QH-H-`xw͒K8>?4;q&C3Fy^w\faȐv{%0%i0L*
Wvvv0U@_(d	6):^zrO9z6<ĕG|殾qHGxC||qeqI.P-E:v;9Z LFK[[M>y\A!Npyw-fyXp3
A*~Ey2|3dUTR)3387oTAi
HO̾ǵ V|x340031Q(HLN-`؜ǩuw+lV}JSy# Ϫx340031Q(N.`0_mR-_j׏U"Tg' )ݯ
k\G>0u@kTݓR(>(y4o}3 \4(xUy<yI&iJYGZw6Ze̵ϘyJ؊Pɱ"FUj]5qѡ4ΈN^yd_~}#D! D'6rLky;<T(Fޝ|%ҨbAD<DԢg~S7Yf~|ʬXL!eg;dezb@dTQEg7ߧH~v!L&x[ 	%!AN.aOtMM$zK\t>-F$BdGծr1ê"
O5YМA-w
CJ
P_Yt1aoܝ`p5kՋ:)2nȐ8$&bȕqFݹʲF4
0]8yACvIGlV=Y}=QEBx!6DHf$\t',ΔrĀjUﲥ :{zp S߄Dpms=4)XЈ4dR[+Yܗ){dq4.2:7=:Q+Dl:L;啢8xF,
3Qޒ*ᴃ%x_{yKF{<n/l}Y` L&$
And3e7 b"*'dm3!CTABZo%W㛡,ܷn9i"3l0w
%a
sqkēXBc>-6Po|qa 1ñZK~Pٲ?e؄A~ا`N"߼<&0:{)[
+`MG"1Ij_X0	=f1܂:7NS4#Mni@6ST1&;{nXD*QnVF8A݈쎬M=QZ3pOe%S-^:A&?'xHhT.aCc#*3#Dq԰rJ3@M8qFH~|5%3M351ɸ,Zl@<wEkx)TpXN?rḢWkM'&|U@a!M.qro[VE5(=)J]?8̇Cc=>U֙P$W'(Bq3Z(U_\CL߿~ǔM
KfYqI3+`.JQ{ۡ0y=
OwNl2	>$w"I;0SW|Ez6'WU?_	_MYy14 Ქg[W[<Sl=3(fI#лsMсMkTR&LDߏ|]>IW8!E[3sѮ4IOc<u)
jHRRY略t^Cp1ܿКi4=g1aL:.$񶑪MvUW*x6R!@$lhh3}gt2Mᝏ0G0D?osN5J7j'\a1aA:DP:hTiq6`ZQՊ` :F~fatTܸ
pcI=%H映]4GĢ9s~1Xm3y7)FY.ڃ3`I68]ɋ=n5].@ 2,U??%HVs-0SB@\fhNæ Xx340031Qp
qKcP7
7b^\ '2-f}糽u;%}8x31 ĔĂ".ߚcמaǸeFU %ox31 Լ̼TՓ%d9<\:xaC	V&`Eyœ<NϐX1nfs7 ]Jx31 Ē̲T{FFNˋ
[kl  x340031Qp
qKcy)upâk((Z{!DMNfRbr^^J^Vq~ÞVrկ=s
N*K,,K+I-JjH-K+K.(`?<zLu{=/"E'W=2It T٩e!l*]5w1Y $	e	x340031Qp
qKc'\^[]!jss2kJ,U3/Cd&%dde1>b|b^@;5&<(K,,K)`ⱍ9F3}M7 Dx31 Ҽl
	g5yl Eztx31 ҼTm7Í%םνyRtaE bǢ	x340031Qp
qKcXn)]L<n)xyJ PK)MIe=rO4dv7k1%'3)4/%'U//%[/8?y]\[nG-zyET9~<W; E< x340031QH*KIM//(ʯK,,KK.(`_e,׮`R,87C6̼Ԣx9`m=ɳw<V̾ˢJU /(ޯx31 ̼AIc+1H)3I 	x31 t'Ae;h& x340031Qp
qKc("p6F%il?w(d%甦2T[Y/Vy眣'BL,/K`89K.B=}ǟUZUpʤ){21HإѢ(A p%+[
  0G0x340031QHI-LNKKfXbvNͯCEm`s9]E89 >/%Wwe<wS?"
 c
x31 ̤2ekMz9+N53{uo#+Ly)EO[މYg}Sfl]&/?%aJn~?"_b=1'Xnq%*3~\ykZ5gn- HFrx340031Qp
qKcP7
7b^\ 2$yZ˄2? xy T KdO$Kd+JdII(k0̘[DdRٗdٗBeM%"Q3G}9,CdP=!i BfѬtۢx$f`iI8n۵3(5O9X$Ph[-1yKb:^x@CK3ד2uR/Z8a%䯭m[\	y7\" [tF7'l9cQLoW_m?|˹.h%?wTSE>uI_g%-, ۏhzwXWG'Oۖږ& `O#A;0kE` ;sdg>ARSg;Su.)L3]Xhu.@KծU1Fn_<o:/Ŋbc>ݽwHirZ@}m; qh]2	VECv }E`V_߿Cv
+įt! ,>Kgp1	Ҽ1qV'ʖ~Jʾw804MM_%TZC礢^]FJ Wbw?l+8$WSy?м|Lg^ezinsHs+e'l{ bj}o}1NI\V*s]9s˩Hhz>jrWNGBc%-V61_T|[i1"T$uD;QSmO)JɄwF!b<bw:3
f=J55zF_&fHQOKx2c
7j\eّ-G#l+Hnlԧ\қv*%羍~<MWpζh[3MsW8CB'`pp;r&Z^^'3f:̑1s\i-%l5yC%H)$gpGpg n݋c9a8"
B#ԷzKoW0^Jk
/9
$>/&/_M_6@ A+vv5./	pFayߕU}7kR јQ<>ʼ~'Wu*71qu[d8أ:u0$_S'.G.w{D@]vJOҤ[$	(I
>3?Ā=oR"KnuUe8Eoax$q'F":r:!uwѭCoӠ.#0ZPo#ԩ 0LlrGVwߨQ$Vg_TB*-c2rӢ(Gl[(B[Mp@MFBǋ^lʋ`<s_pC	HN*m~L܌cT+'rDĿ8h\kqiQCY999wlykts@`W*˙_S(<4ݿ"ҿR8"87|WYA@j(,P>"}'_-ga	ta<,v	[ڔqs~$gCap.0Z{WP)K2k}ܼ5XTUO[gˋ{F4?[`~lbki`15ղ<_Q ğH>槢,UBA \'N7%3יi'~贚 cF:ǙY=rjb`j	x _dO:j'`ZVCrea2˥NVIGrrHew2hߋ{=+^l;-r]E1Lc<rDl]~_qZ<ό_).
LֆwneW\mQh
mEll+[ZQgFA-ng(Q6
i1'f#]-,ᖏX@NdئYT_Sˤ`Kr<,QpJNˢ]*Yc.g(r>myHPjhAn"@jll>"s8FD:_t|$O1ڋjl^k$ GH3V~x6SVs^H]#(zdu>baE<%oQ63N˜$2_a:KHV^Bt!6
[(1\fkS*X>VJLgЗ>ozhEGR6hy7ޤa{Kods(@Z.#Dq;c{tHhW;voџrAFDЧtJ&7  p7,XFo*D	ϝ~FrTQHXc^LkMFHjߐD>"lt2;(!ゅ9GUnlàIWdTư_ZѴ6 
^xm'gWZ>T%M`)ߺ!C6U:=EaU62N:;CtJe  kqMru2x+|WxBRAWR<rG+R P`ECsufo'14lD엪<cdܢ8G}،!x$ɔ3fQ wmaܦolbVC֐<hnsW#çCk)ٜ)fق%QfdAggD]JVJ=b}=9zH `<8x /Z퉅:z9ÇQ.uYr/^砪	'[Rl!.Bҵ<ȿ߮;fu8jGԋxdFjS]fz:K;޳9w,mw5q5G#͖/.Ռ#n2~
\N3>R(%-Jn~<X!kODC"=:^'Ibaߚ#y6f{uPb⢰4*DzfgyT.KT7fOa莇hlwmȯ"Sk*!a
,?]#!5QsVy;+k^>ה
[7L\\/_і+BhuZY`1̦TJK:(-8/>Ijav0&+4cl\2)ANnf37Ե( %Y`u?'d,C"#n 'e[J{,Pwٮ]oa;䔃ʵi5
-dywA P*[)N3W,]-o_q(}e慾F	o)KnZA|{pAއpsۗN2hbӏ]acͨ(0B(TߥVÏB}R>^1&XQܨI5v"qD'y6mnvwQstܓm|fkm:l-Wx[THFmKt y;jFBgsͻKXޝyRFA1xt" (#n(obOX@3΄R4:;t<}NECr[1wÄă*|N"H/ľ]*BnwܔH-j=ABP_9ҍoxrPțeU΅ZHܪZw:@̩.M?_B@%.:G妳s:`;|sjCb$&}c7C▬/"_R 3FJVhE?[O
Cԋ+`y
*+kcr&o
fu%Ul)#ǒ|w?}QF>m-!, K|9
aMtѺZ?[|/CK$Iz6NիW43?Mh8BFs,Yf0j9]8|O0mh?:MEs81"7x UwNEWRz+ +e00㧠О'@:R#:i%I.sq0kB{mA}cd8tu}n)9fnbw33_jJ㗿X@P˸Znf'¸4vQhv˳UV8iu6oo/YPxٞxf	n3;bB7j&~70w!Z"=c7M߬^Rh-i4}nw'%ĻTa-pw2;z"kt<.FA`nP/Yn`oblӖgShhf
izs`E>iccxež>'ka!{.( \Fz99q~ܿuh,G؎{Si)5yZCp("8<6H>T!GqqI?Ǟ1P/߷]\eܒ;i\[&[%(C_-em 7!-?OՂ@`s!K^KE8RPZF$8SrGɍ''4Y˿i[ʂZiξ'(`MlY`jvx3~;`חbul20:㶶$Fhd8%qR .s{p67cknU[Em*ohΞ]^c(I%wJG+'NDs r?ɟ
7,"lu׷Vl-ي.ߖ7l~Ǩr)-E{djLHHyR{é4]&}YtًC⁚[)K<Qg~)ȖÖ7xtxYipyVFnX駳?p'4t4U}<w>mAVަ!x'Mf<+;)[;˲#]Èߍɿ@v.Sx/z	c]03}',qWO*RAt?3rT<	fSB$Mv|2S+֧kfP  sΌVw86mꋡ˽8w%'=w}R
PN|T$KK|߼S['lJ
\ܶEd?G9YvE1:IjO8
'?MGϸwQJx	<*l?`{zb3Spɤԭl48{:U4ۥ;})-	Y}7%ι)C-
,5>'DHzR;.DAZ@x,)+@XƖX4,:ӊFnjCͲG!q+țeT!S +gQ!tU+od-T)k<jGzs99r/O.l*xlU;h0a4^	|9Gwi qu5ptsGYa9ͮ!:
3y.+SٵŁUṙXՀ<!LxU*15n[/%Ux|L}{]]#k8$isQ6}Peg:=y%n/~5*OfW)hx35#ծ(j7f\x|~G{,HGp TifM7
QnnN֘TsݲX?c[?08cPbt8aWQ|"Vk͔P~Jx340031QH,K/J-/-JNKNf߻vM?+[hQRV٥oPbYNZPey)y e߼=6!"2peeEyy% AǪ'`L*--{3n?LeErjAIf~^1H!k{[o$rel_Y/e:e\D$3CW޼0do
PZrLk /j*x340031QM̋/(JML+I-JKLNKNfe.)z>yύ{_5ħ'vbV=%/?% 5$H/ AIhօSߙּ9V-7h9yQйaSU"a {f{}`@T\Rώg>;p*քm2wXL^=cPEy%y% CoiBIq9Eڱ`QMU|ߍ+,YUZRaX5ߧIk<fGkM9)@`5ϖ=JS6=s{ei-;]~;~L0U%"[-e|2RҊhR;??T/qȩ7 K+x340031QOII,JO/HLOKNfx!%$./byE`H0iu+\tSxY$$$D/R9><!hV% Ua6
x340031QOIK ᒢDļ̴G/?yһ|ld&3|bw淉 >iɤ;l}jD1t	l?9xħe,gp[gu0#/ WBѭx340031QHLO+KNfy:4ssO~![ď_ϜawЗX1Ҵ"^iy֏;Eakq`x:*ϦOHh8SyyQf	~Vg"z#3N-:R]l]R T9Dej4(wzg3}۷(Ee>%˥,1{(HDSa|r~nn~HLuڬ}.9k}ܻOĜTҴNfm|Ђ9C6ݷ\:ྭy K,x340031Qp
qKc%9}6[ygĈ31 ĂLM:g?0|m!ĄԼ``l<ΕisN?$d<  (x31 C==CG6FE<kC~x]s&ϰYaU﷞8k*o>!ô_ծ<)t_Z>晏/ ")
x340031Q/Hq`ej6C\#tWJ2i*E/yNyҕrt6ov]e@NbIZ~Q._jVFǧV{xn*rutu+(a|bLŇCc\/d β?$
x340031Q/Hq`}2
Rk?).i*E/ak\n_w*rKrK<]4]i߃\L}]PA.z%%e;/Z>mZJz? As
ox Xtree a10ac41be524180ec4d38f4ae10927b3d6a2f540
parent 7b0b6755a7cf117f529a01ff6e5d974cda2cf8eb
parent 1dab1a3cddcb5c625f52c7e089a2fd9bc83de3f525196;5197e 1
'x Xtree 49a13d3c32a97c34c7472844e2f00ccb803ee717
parent 2d71d232edf0b2bcf2aad07dc7cde14cb8e3367b
parent d81c6f9dd559fa0125eb61f0ddbd734d68dd17d624523;4526S/1N
_x Ttree a6b04a67d8c81049af7a58b1a159fb82b0ed9ec0
parent b7573fe9c79ea7a88bb8bc29af8a6aec354ebf47
parent 893aa3d1965ca9b8fb5d7bc4eaddd338f7e663bf03471709347173ŉg3G
x Ttree 9310c6a08b29b5d3e4e79c07528d9ba3b0e5fda3
parent 49b4a7b48fd1fdea9d9ae8257604cc8189629cdd
parent 75b6ec0caab8c309ce2b08405b08f6896e207a7a01840079184008"&1xu ]tree b7508408c0c765c593f48760493c3ed5c771af5a
parent b4d45176337862f69a1fcf9d3a502f5d0e5f0afe]55606>5606p"xu ]tree 1174b30a1016e1791f065e23db4149e0583a555b
parent 3580e84fc44115d7a36d4a14d7c42beb521a6676]41052>1052q xw ]tree 1e6f7dcae87a12cabdde993c39551af97208359c
parent e7d5532c4b59a71079341cddbee66f4e265ffe9e]408073=08073pw#"xy ]tree 246d5493c42abee670dff23f79f9a7708cd0f45f
parent eefcd4fb2e2bb63ead5f33feafda358cbd2b451d]3317987<317987p-%`,xy ]tree 5115f649b2341fbab55cebb2e3eee46047a1dc82
parent 70d3f2c591a20e6328713d72e9ae7e361ca6f4b2]3169013<169013pn#G6xw ]tree c98359b082bfb39bc2e9a8fc0603ae8bc9fe19d2
parent 849978dae43cb6845031f8154bc8b20398fe4eee]316875=16875q_#Z>xy ]tree 7d83def8723aebf7e048cd12988f8f253cd8842b
parent cb99133b86266e5d8dd70f117220d52a6dc754ee]3167708<167708p#_Hxy ]tree fb8a43102638e3b3ddd2f90f606e46eac4697378
parent 53ea4c78ff03ffac6088d3bbd450b0f297223cb2]3144538<144538p#fRxy ]tree b5f25a8d4eb0ab07e16461738ade5632fdd52815
parent 109fb4fec97f2684787770497f2589b3cf3eae59]3075735<075735pxZ"\xy ]tree d65000719b538ea84806fd59ebf0b27e24796a58
parent 6b5e6b8867c46192ebc0e8d158a80e8a9f7d3c5e]3073370<073370pS]"fxy ]tree eecbb28cef76f2758bb540e6cc99b219c10f78bf
parent ff4e24d1e4d37ad44946f4bacfcb1917f3f4a66f]3072937<072937p$x{ ]tree 8dd8c8790322f8eaf756b080c36b2cc728ccf2d7
parent 974e4b4b08f8ea5039bc54b1d15650458a746622]40921603=0921607ܒx#rxy ]tree add971ea3e411700ee24e1a2c2dd9189115fb43d
parent 1506835f8c203b4a570b3f537334027a7f1ca5aa]3317936<317936nd"|xx \tree 437018d8e7562014f865a6dee291a2ebfbd3c895
parent f1890d11100de67e3a150ac02e0049714b1e1f9\4168411<168411n#"xw ]tree 7513410a67a85c1457af130d7c567892286b5c17
parent be57cc059a53c95a1d3508d9bbd13bcb31267119]316360=16360oػ!xy ]tree 59ad540a12b75ee3a2b8eaa3c3c32f94033a2326
parent 452790f67bce2ea408d73f9b34852c65ae0f2a6e]3163589<163589nt#)xy ]tree ea15bad15572c395a387b7ec4990fc88cf6e023c
parent 7bce0b6b6cab5ebe761148a04b8203f1e5bf2657]3143027<143027n#!xw ]tree 4ec19cf883f9ad6d9b39d7585b65114ba56ddb27
parent fdd496c4ee69376ca84dff4249207b68550cf94e]307367=07367ob6#/	}x `]tree 299dedc74eafe0fadae5086e2cac06577dbcd804
parent 030c5689c2277cf245a23ddf721099cff618c7ef]759177A026݉)c8031c5b2b2d1ef9be6e71f8774f30a395819325
׳-
-x _]tree daf3edacc349d139af0f4786098a015d8a777a30
parent 06fa7f29fccd016f5ee2997a0b0fea37fe4ae596]750549A0073ވ)a9e077c94490ab97867062604fec926afe800898
-	^x a]tree 5439a3f6df516dec15bc69254e09add5b760878d
parent 9d71d1e096fc9564b2177048b1ca9083f2754ad9]7502B50288މ(306fc711f3474cd4f5b6bfabfcb30a49e5ec086
U-
x \]tree 9754762f12ab7202bbac363b22ccb2cca2757c67
parent 6974fe6dd69f92bef86d8d05f60254974cb3ea9d]6079545?079545ވ)8f12d862358bc65f466c84816a42673841d8fe30
h-	x h]tree 326c526f3dc009f530c43b8aaea099f9bf328103
parent e2a560310828fb0aef2232a60adf4420559cd451]82150)dbb61041ca00bf6ee343feb9de3dc176097ca4eb
+ 	:x f]tree a3cbb08af0446cb49d85afd36f0c28a4e2bd78af
parent 555b3a6ad3830d6ed194c01362d6a1415b528db4]6166260)bce361f0744148be9cd04d98292165fc7a2afb9e
,	bx f]tree b23dc15877c71f83c4b881ec2c5d52adcd422af6
parent 6303cc55d847c5c0912c48a5057b6833fa280aa5]6061158)00a8b4a2d93eefbe2019ebcf31940bc95398640d
@J+Q	2x g]tree e27da9d769b51d6aeda9c1ed3cc9a7cdf83204aa
parent f0e06905915f74c68e0d4ee614c14dee8b044a0d]87926)bc923f38869a9cb9cd8d4e6c448f5d14da7c0af9
,	[x g]tree 9b2f7286ccea3945bc48c506f9704a9c71b94550
parent 75e21c667b18459cb4a786830baf70c2499d745c]81119)7a0c01751f92b28603b968a0234b1e01442a4762
(	x f]tree bbe8ebfd6b3105ea1239f62fe5747b81914ea53d
parent f02d332311d2297cbd2f2cd1b0b9d5d4c4389874]762668)a7796c1c6cfd8ded9494e59879dde595785218e5
+,	.x f]tree 007c61101f4db3d0d6c0a090b1fec32328af29f0
parent bafa2b86d75a782d83460c836563a27fab68e32f]760671)bc2a6009a1d12382c401b037cd78ee96f97fb5e9
D*
Xx \]tree 602a0900c3f42f759889af16c6ebc8a01ded7640
parent abf8a33c77763e1f277e299839139b09d468c2fd]6165099?165099޽)13a01fbb313f86e55e8b13520f2b4440ce161441
	@-
x ^]tree 1d0298ee385c682be6d4afb2420d66566033f73a
parent 5dfe34d746cb9dc64c9b6ac9b87212f2e4d59e3b]781430?081430޾(20a7655ecb649802456aef5ee31818d7714eea7
?.'
>x ^]tree 721ee2ac202922b1f91b041d51bd348e3efa234a
parent a2dfcd5419e002f1b4cc22db229c73b9c61d0a15]89452?079452޽)1273a3fdd276b9b3bf7ad35c3f4a69e573952bae
.Cxu ]tree 5dd325fde2d4e02b41e9929eb7311401e02ca052
parent 015f810a072f2cddf05f56ee7804ed6ae445fb4d]52327>2327k"cIxw ]tree 337d4584771a5bb7f8dd6b6990f870270120d581
parent 68f008ba94db8a27220f4890b4bb1bc9e07a9130]442950=42950k!Exu ]tree 8afb86e55006798c965de1629fa18fbd14b27d83
parent 38845d819473027a5a6496beda4837cd9ebd9d0b]55845>5845k"*Kxu ]tree c6e3c9fb9a8ab21b1c0402eba1593577c5a15090
parent c6267f7a970ab69694601a412751277dac708567]51782>1782k!2xu ]tree cd31b1c64a556676bdcb6f356d0bea43e5a8f6fc
parent e386efc7a3c7c990de5b3455fd83bc8b27f47135]53413>3413e<x#9xu ]tree eea39578f8ef5495bddf2c1dabc1dcef5ab96f58
parent e3935f1bfc22e37dae99f7bf4f258cf149cc710a]53011>3011e$.4wxOtree 29269d534464f984c01d674b8ecdd1033507e7ce
parent 51fa5c310e0f27dccec501b81782065f1df7bf89
parent 6272ff4a07a030a3f09339fff931caeca70384d4>75874152G75874152 +0800

!4830 merge master into master

【录制框架】AVRecorder补充NDK接口

Created-by: liuxiang-7014
Commit-by: liuxiang-7014;liuxiang)## 相关的Issue
 xts_acts/issues/27480

##:*#AVRecorder补充NDK接口需求

##<-W新增接口 OH_AVRecorder_GetAudioCapturerMaxAmplitude、OH_AVRecorder_SetMetadata

##
xx] 是否更新json文件
实现代码合入链接：
 &multimedia_player_framework/pull/7524
 &multimedia_player_framework/pull/7558
 )multimedia_player_framework/pull/7580

##Y/8（Y/N）
- [ ] 不兼容
  - [ ] 是否经过评审

##( xI/
 ] 否

##<x$ (&-sig/interface_native_header/pull/321714830G0^x3 **t>igΑ&1^j1p!"~Q}Q6!x3 ?GXVqfѦY&˕`n4YɈ=dx3 ?GXVqfѦY&ZAsPa
v3Xkx ZEℚN&&>xSVVVpI-N.,({g>(EKRJRSJSa2EEE@Ҝb NxSVVVx~^.lg}Ovv<3g3^>lҗĞu-}9e5
 (̺x]MN@9l!`Xnb̸t~!vߛ=<BeiZaaGJ<zKDmZpR(U!qfhM7x#@ H@RcCѨ<F>ڬ}H()+Su	p1⢳3/j#afYa RH.?Gk+}xWj>}GN[Š	5wQ"Tj~˰$ dvl%~  Ox5A
0D]	aP/#)1ڄOI^Ay:cxﵜWt
Hj̭<!h)P!B?r4{\pũ݉2jx;i¯Q u.xmnPE
KY#l**
U,(aQvNIb;MlK.!ې4꘦nm܏<{_`'$B=ܙ3|>/pˇw*.7zPC?R9PKeW':	ՙu=~pI@bw$lFf2K%=I!*`EP209GZA"uy=]?D
(+Dtbq[2ngre{5t0Dwv,0
XtjeDn߉wwKoJv1_{ ɇd]OTCpP`6Qux΋ԎieEfot>'))Jvsa6(wg/Q	62%՘N#{5'/6@?dřuEVV>3B|arNzנxo5=*ҿݔW_x{ʶ(3$(-19U8%;>y)O}u-h KSK25722 l+x{źuC&y> !rckBx{zyC&y vg-xʺe& 
CxX[oF~W9} 5}$ZMI]V5Lc{ܙqxl 䲼<g;߹8g0ZRA|..cFV%}`Ew *t{gpICȒ
PK
Ǟ/*$	\{䜿GkAL֐pI}h%8I1ch'X|JOU9 wT*e8\V.1κ\,Q^{Gt\DTJߌ	u?Y@ߕ`%H>W+"(T2UFsU "	8)xS~M u|>|ϣλ-o&ޝw3_h~&>BN2#5Ru&-S90d"p "fR'S{!:)̓EjzhwYƢpȗ\9罞' bwKiT8_@Tڐo36c1藷H\#y%f	a"ݟT)?!1|V*Ax,R"31BSp\<s"b2zwy_R5"*ןa\7+.o㔯1@gUv↘)?dB
~>l7n(z_7K(ik}bNr(vo2VxKV+	
{nI&;3lD@۞&R$bԢ	ds%d'\D7KFu2$P!eF6$e	ّ[yur4FsB|Kr:UЧGJ#4Ьjvz>[l	Us:1rɣ!<qK(urܞX{L7;ZF0z	j `
P3-z4x.[/ɶf:iPz:,^Fk(ox0/\iMoSCf]/[b5j^y!.ۮB|?wR*[i|iE(a_˺P޼ޗxVK6gKQ{RwU]sV!Tx=LoֲeKm߆
{D|-^av%߰OpT*y`s
^0S3&5[7#f;xitC
wb'_WܓY$'qqNvfۼ9} km|o+Ḽ Sk2<L:=x,L;?3\ \<Qp _**/xipoFP&܂%}̜blKTҜ,  XY?YÆ '2hd=(CTe(šKS222SJ%ᓋKGS
UZT_ⲴrE<Z4YQ_	8(9XV!Gyy9/-CNݠɂ<*XD_pY`Z $;YՄ$2فYe;1aHǧ%榖e#

H"p 0AB"hT-k@Ne\\ >Lxi_od7A{cD 5*xwOY9(3=DA#y#_!SdJjYfrjf^Z~|^JB5BrZNbzBnZqIbrnAQ~IjrI~nbNB,PY~iIAiI|^bn*PQ
*r!&qiN~*&\XTRZ\Y\	z(,:=B^	r^П,,-" 5$ VbxSDY9(3=DA#YSdH6IjNjAF~^e|QbJfd?a11;e17rN~*&s/JN-*LNU|Cd{>h>d||1D>qzJ:\
@Dʂ	r(_%Eɩ

2sJSbj *Yxn0%4,%[J5m3AL-%m!!$
MMWviW@p5/o \`'ο@h;~q9#/mz;/.аm`O6X M!!m
]Lo=ڃ=.bqh L.x) egignFj=syhN-ckyWl.e;?U3"pwk
ԯWeoKjP{IܷZcn@*+~H=ߍ+wso.07˱Fv˄4H&gk.LO1aa]5Kq5cSiPcmP0זjs })sy7NN'.MrNP{ɱ䤲(rުz3E.v-	-W$G؅!&D]+LeZҪo sGDvWċ_)S5j:,bw!p;:s!S4~e/KxCDY9(3=DAYSdH(RfnA~Q~RifN~~F~~^J6e*iN(&ʞX7YĥP_ZZ`)((ρ*P"_RY:9]t Lt6gr\51X&YcL^ϢcBPXZ. K\&$	xwGRY9(3=DA#YSHHofK--J̉K-)/ʎO/JKɞ',&En	b9IؤT'?w+dD'[/CIK$ zK*R''N¡x10KbKђ/Xc7X_(blP]Ңb[h]r"TU,W- zVҕkxwOY9(3=DA#y#_SXr~^ZfRRi^JNj|^Jv<DHISKA!3/94%5>%XV!ZA	*U˕_֔ZT5h";HxK2R3JRSʄY!<lT-v痖%FrW- CGEx}N0ǵ	-+m@b!$ }.@\"ωkGԋh1x=I?℮*|?Osx6l+(:vOlq s\);vJ;Si@T<@Ф'H*.+0@d꣘ކ"AB߂z!f=	=~QɅv?v̯LP"6ĸH	JAK<f^Ӏ;ւIј`} wQ!@'T{ e x(8 Eg 
)v۫i~kQqw=N8!KN
j򺸲o_ҥsT꿍eX?N`sP*lO:qq\d-VRN}k.sT[<\).|2Zfi|ѭytxxç_PYQ(<-3g~Mv3u+Sl f燲t|Jfdnd1B`|nb^bzjvzy%eEŹEhqN~ *_ZRPZ`\(,?{N~Rb^Pjq~iQr/Ԗ¢	YAšCe(p) 
TtQ@M1(H$pY
'AU qxCTY9(3=DA#YSPw@>_FfbAAjYj^I|^Jd?a1t\~\
xdeEyd:%xys2_G֝,/#(pHbONKJcV._XåU a*x]DY9(3=DA#YSpH6gFfN~z|^Jd?a1$BAEV0oje.nz>@q^qP^iA0K2bj _*	~x]DY9(3=DA#YSxH6wFfIQbrj|^Jd?a1BAEv(je.nz!`^q6ɊpxEl}0U /	tx]DY9(3=DA#YSxH<;b<y)eIE%E/
OfK(p8%E'	5M',ƕ׶PPa*W- 2.2'sxJ0M'/肂477p/0$fmjÚqGv!Q|_aO[N|{rH N	\&!RyG-əY\3YD(9 ͨsHRŧYE;^1#0g5J(yghr()戀c RƛꒇXsEʷA;hhFα:q.-|^lU%{7!W	pǼOڠOfTkm%4k>yv^Ex]}x'W1NVe9Y[l-VB6q)R )/	C5]'	&cr( 
x[ycC'KJbI>&c3+);5'4'ďeVVP*II-ϫOJƃT\Ϙ XY#URP(/-JN-VUVPK)MI4C! :Hx[*}Cz0n,:\
@XZTZY2YY}Zv5, 'y#xPJAQ<\6E4xj
;elrkvޞ1X[  XT7cuf#i";.PW(pKph.,җIbIe;dΪY$9[Y,M$LVli .4ӽ͚M5E`vpCl Nld!]pFu$Lͣ`vaq"HIT\>[\0JGԙd-cYwY0]ۛᇖk9j;Psb*9kpF+y^;:ý#wߢDݸXx[*SDY9(3=DAYSpH8W~F~q|^Jv|NfRQbQ<y>cl P^Vq~BrZNbzB4[X5J(5%59'(Ԫ<43$34(X7#51%EMf^Y"ФݼԒҢ<4Y9%ũ%Yvrr!{$Տpɍ<bH^ ݪ<x}J1`@\Z
׌Vk""B+7*C	NI2v9ν| |	KInrw8/-*ɴ,h8wBBGd г!#y!yFyݘ%G,#gN~/R)x{8*RƏ[?<i8Hb?'c[ʊ+-%.Q8ʶ!E.0;WNɥ2*IjʔUl5^U3Qa
1iQ;Aw2HsA(o/Yڏg?x{CDY9(3=DAYSdH8 sxŹE'?9$3?;D??#>PR %$Xd 0'xqc|&ΤԒ˙RK22K*3KJ\

Eɩ


JzpiɚH0k jexSŝssK2K2rb,jXLW ?y	'xq]DY9(3=DAYSxH7[qj^q~L6fBq~iQrjB4Q!8YYfY,Ñ,a6c5T -*ux;c	LI9%%zJ
\\ D"x;űc|&̴+@%.Ңb[h%=x^B,W-W~F~q|^Jv|NfRQbQ6ĊYbZ61#<-S/8q HD CR,px;űc|&̴+@%.Ңb[h%=x^B,W-W~F~q|^Jv|NfRQbQ6ĊYbZ61#<-S/8q 7I M)Jhx[±c s~^^jrIfYfIwfd 	Nx[±c ~~F|yfZ^B,W- bB3
Wx;cizĂĤ̜̒J[`3\L/858J+qaZTWPP*hψ0K*R2t`Rh
r\\ 8]+x;wZfҼT'`U`߼Q$l09> fx;sCDY9(3=DA#YStd.[I|FIIdA	ӖŌWO?'3)/*":y#s~nni^frbIf~_jIpIbr6PJtrUIy~Q>PW1HX]/CIK"ؕL,%ZTRf5C0:S"%PXZ _Si.xqcC8# Fx;~c~zĂĤ̜̒J[`3\Lϩ4/%'71/1=s+JM-/s/JUbV|FjbJjQ1h$6Ē̲̼ɲ" V3<	x;/Dp\fʂĢɉ3ni46gTXX/CIK@bғcم'+LŮ2ِCD$98DLK8'? cɖb f)%x;/KDY9(3=DA#YSd&˂ԤĢ}S/=/SI+?#8>/%;>#51%XC	fO&.$227Y΋O-"=FISKA!$>/17UV%djEIj^qf~HEquZ
J@ΉI9%zEeɩzp)"̈́Mxr3⑔%	MQ|r~J^Ѝ\\ C}+px;/t[DY9(3=DA#YSd&Ҕ4}ŕ_ZTɆ̰`V0ExAԢT'X$7$c*M,\Z29U$Pͥ_ZRPZ` C	!ZQW+ΟU|iV-P_,lj2Mbsᘃ|aBp!+q!%Sbj hk`x;/tY`C#ilJϲ4w^Ĥ'ǲOneW]e!d <9CmXv% 3x;/oLJ*(g%甦$$'e(mNd-e^: ?sxadfY " ["x;}kWYT'*$$&%ꗦ䦁	%. PB+)U zmcx;}kF
&ĔԢbĤ̜̒Ҽɷ!bޙ%hJ\

Eɩ

@<%Ē<l^IjE	4T$U\""Y\XT_ \<y5"?/0abvzDJA<Y02OɢO+ @֧%h!U YoXxŵkFP̗/x{MpLfļɉg2,0yfĒĜT4';YR!YTZRåy9K)HZ??#$; &6-)L0#''LVfp\6.  6XKx&xNh~fʂ̒3'ٵ&米OV
 +xkûf4̜T"%. P,5ydV? kxk&_PYQ`d`dQĊi/9Iy?2k1)5ɷ9SAJY%@B,`XՒss2t@IO?/$,5 *U .&Pixky)_PYQ`d`dQ$I)3 DCI_?43'E??#X?/%24'_`+K/MKLO-ŤT;YR$/$,5E4Wp^pjqqf~],z jPR %\*ssPZWSZUUVdV^^TCE&w`q.7 <9xkǶi+S~dAfXEK22RJ*SRK2R22t@%6DQfp,W- zFp#xk!_PYQ`d`dQ$i+'Kqrqd!f}# ( #(1GVQ#4ĂL%. PB,,H-|Y='3	ln
5U	3%ҒҒT[YD]2R􂝃=\+JR3&dQEw)NPv"Ty,W- =Ob Xxk!_PYQ`d`dQ$i+'WiqR|qjQfbd!f}nWVQ?> S/CIKK*R'cLB2It5U%3%ҒҒT[R'7hIe'%\+JR3&dQDr#a飻( Fa@	!x3SBqeqIjn|rbAbRfNfIR0X.X	%2HMLI-*WPP*OPAK,,K2?1u <:3x{9k,2XI+((gėg2tbj xOx{ys4,)9XbĂҢT%. PψecMKLO-rNfFUT,	VYmn&Y\lɍ̢Ùr3sKR3lj Zponx{s
SX|&+ 3	x{c|&̤̜[Tؠ[Lpqf)7 71/1=575DU@js
!Z3!,2,pN,b5MgK)MIO-*/OOIå JYd@\\ YLKx{˹a,Yj&o`1  Ko(xǵAe2+dwk #}x;s,ob^bzj^xf^J~9_:YE,ן,.49EC
 T"Kxen0%`(QbyV]R1Y&*.Ķr*B=xc}OgyN\PZ(rWͩ~.BU&l'ƈQ][L/Y@~v|W6kq\%NDBt4V*r_?h *ۄ!sJu2*l&~X
iƽQڶz(pSW}̡_Tvx{ϱsf.SUtu@,̜ļԼ}73_?((>9?%U/C	r s+x\Ϲa#3d?kL i*xǶma&dĒ̲ĂL%. P¬(OAJd mkxqcC3J[ $?mNxqcC53 $+fxqCDY9(3=DA#YSxHv&SSRK*R2t@8)$X!8;6s`VƬ"m/-)(-KMUy,:y,S&^K9cj 7Ekx;±cd 8	/x;!_PYQ`d`dQ$9%%{r=>$&22t@id~f1LRbqdf0#YEH	.$>/17UVA	2..ޓ1VLVdQ Z.IxkhpY7%%[22t@	&XRYZ 6x{1kBqeqIjn|rbAbRfNfIe|FjbJjQB4(M>,Ģ1im0"كY '*kx[~}.BqeqIjn|rbAbRfNfIe|FjbJjQBRFfN~>e()Na uM@x})BqeqIjn|rbAbRfNfIe|FjbJjQBRFfIQbr>PRl ۺ'
x[~c2zĂĤ̜̒J[`3\L/858X78%,39UĔԢb@ybF̤ĒʂT%<T* ,8xĻSDY9(3=DA#YSdHEBI9%Iũy%y)ٓ70;Bd3K)q)(%+*Dy

Jz(Jss2t` XZ.bM9IEEJ@ -J
@-%@%Tp,2h@ݬ@΢ e"dkV%\<
 cx7AUt?&ԔʂɊ2{Y6k3JOflͦ:y7 %
xۮ>CDY9(3=DA#YSdH6V~FFfr~NNfB5B~iIAiI|^bnB~~k8Su^mA̲r=Lg\J
J00^Bd~1xdEfҒصqr {CAxۮ%_PYQ`d`dQ$I)3 DCI_?43'E??#X?/%24'rH'g%3RSR'qe#)HKK.f$å Jz%œP-<OP.2G_nrH!pqW3&2.B#\[SOPͱ\\ 0"{xuJ0 ADknʦ(bhdzm])iu5ir"/ՓWw	]u	~Z6`WNG6u.ު[MMob91>n(8j2FPX+h(Th8]sv˩.[~B>YFjePd s)iR\ƅx Ѵ+GU\=1$b˿@~qofKDD)w_]Lvb7vSJɱ7N1/_gzLL[|{e:2xۮCr3\lM2of ^NTxۮX}IڛҢ9'oVfGO^$,
 Oxۮ~R}IҢ9'oVfGO^$,
 URmx h<Y /x0,3%5J%0+(?983/]/CIK!왍ʘuP-k0uϲI02 !+=-x@a3(dUƝUD4
AO'_=ڤݤn!^7Qu2	05_Oe޻zasQ5JNP',-\^f٣YԾ& 5?]Qu[*!'GG#$yn<5sӐ])@~J~:k֢@xF|JTmW{8ۋdq#"0ΑḏϨ3m`\;uF6Z	Xx9bS$j(7t;Ck[r}є`y<@k4YԦuph uf<g7ZjJ"L{>ЋkEc?[xjlru'9+v' (eJN'T1[lQx[+t@p͚,,  g^x!yKp- px!9Y}3L3pdV&LApt&'ss(Ds) @f))}t|^bIfY^Bz?Nܬ2e9s2fc\,:y:K\z0?df+/-JN:EP1!MLOMũ*tW&,Ɋ̑{yS'[HN~%,6d/. 19;N(C@Nr+bqDAk>XZ. "x%Mr-9lbJ
ՓK+q)(䗖ħVg)*(+MgR`,âiR\\Y\XYR	Rtd榦d&y9bZT`hɁR`!d|^bIfY^Bd~v1ɲ~l*Py߱H
kR](59(Ra69zJ&`6pc̫*0Lb;VOX ձ+U wgx[>G}I

OQ, l%x_o{AfrIiQdA68;G痛òě,˝5>|a!yxؒssFjy<J0&ɶ|	q2)N6LMLOi.,9Gq33E$@lNd s>~vxTю:}+FKhBiU]DRmlU"LjsmUw݇ =3̙^-G\7l93)2F:*ͥ37֠8bCe!4)P
spgwܬ[CƯC49Դ*2YSvn簖#ʭ:SB?>8݉
6\Q=HlIT+ҙNqjZf0Fec.4;RH5&}a:A~n?$E'4\qDE&C@RpV6ɭU0EPʎ1%)5j
a%e5׶6L70n=;h0rdSC<0֓X\-/:z\pXV46JHbS6Éqޏ/Y-&u:ӌzl#0;i؎
HxP;G/S{ey!ߎon<OQٹ7AujHƧ\򊛽sLRܮxIڗ]6U+!>{f_uh=KO
E˓x8h6!I!tgճ0H~"eR>9>ԛMN`,Zﳄ$
a`wD7ǟAr)MZ60x)dhTSui"H"of4_ÈgaLk~xpͽĻ6~QC[!;wp?s{;%p$}B3<; Sn-p?'*cx{woֳ	O/vLN/+yַiZyںOu?]7^o͛dǾSfXMX\9uLx5Ļ;<M|6	 ,QOZ_6h՟<USϦv,oz6uD*IŖeO?t팧sV@L1\f:\^U z	.x{ηoFsL0%$*d*$)TO$9ٖQA!(H ($ X49984Gor<3,0y%Ey9
`.D~2B,1'3E (17d_,FF. 7zx[÷Y_k"ˋo2s2K*S'2!&70ADPe3SM}..}--hZfNB"Di|ԿLHz*s2*4ļ|ɵ̊D9E93-/%5M3$215/ރK(";=svDwIeA*Hsj^iB5 ZT_ f联Pp
)*LdU,&'17/PVɳ@'cWPNKLSK ~%x[}{'3UN~?Y@'$#U!-3'U!%59'(X(ZT_䧤e楦($Un.bgWOSpL,tJ,Nɢcť Z
E%y
ťɩi9zPI̼TCSc,0)ϼĜĢԒ"zX <?x[
    { "name": "OH_Drawing_BitmapCreate" },
    { "name": "OH_Drawing_BitmapDestroy" },
    { "name": "OH_Drawing_BitmapBuild" },
    { "name": "OH_Drawing_BitmapCreateFromPixels" },
    { "name": "OH_Drawing_BitmapGetWidth" },
    { "name": "OH_Drawing_BitmapGetHeight" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BitmapGetColorFormat"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BitmapGetAlphaFormat"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BitmapGetImageInfo"
    },
    { "name": "OH_Drawing_BitmapGetPixels" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BitmapReadPixels"
    },
    { "name": "OH_Drawing_BrushCreate" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BrushCopy"
    },
    { "name": "OH_Drawing_BrushDestroy" },
    { "name": "OH_Drawing_BrushGetAlpha" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_BrushGetAlphaFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_BrushGetRedFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_BrushGetGreenFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_BrushGetBlueFloat"
    },
    { "name": "OH_Drawing_BrushSetAlpha" },
    { "name": "OH_Drawing_BrushSetBlendMode" },
    { "name": "OH_Drawing_BrushIsAntiAlias" },
    { "name": "OH_Drawing_BrushSetAntiAlias" },
    { "name": "OH_Drawing_BrushGetColor" },
    { "name": "OH_Drawing_BrushSetColor" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_BrushSetColor4f"
    },
    { "name": "OH_Drawing_BrushSetFilter" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BrushGetFilter"
    },
    { "name": "OH_Drawing_BrushSetShaderEffect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BrushSetShadowLayer"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_BrushReset"
    },
    { "name": "OH_Drawing_CanvasCreate" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CanvasCreateWithPixelMap"
    },
    { "name": "OH_Drawing_CanvasDestroy" },
    { "name": "OH_Drawing_CanvasBind" },
    { "name": "OH_Drawing_CanvasAttachPen" },
    { "name": "OH_Drawing_CanvasDetachPen" },
    { "name": "OH_Drawing_CanvasAttachBrush" },
    { "name": "OH_Drawing_CanvasDetachBrush" },
    { "name": "OH_Drawing_CanvasSave" },
    { "name": "OH_Drawing_CanvasSaveLayer" },
    { "name": "OH_Drawing_CanvasRestore" },
    { "name": "OH_Drawing_CanvasGetSaveCount" },
    { "name": "OH_Drawing_CanvasRestoreToCount" },
    { "name": "OH_Drawing_CanvasDrawArc" },
    { "name": "OH_Drawing_CanvasDrawBitmap" },
    { "name": "OH_Drawing_CanvasDrawBitmapRect" },
    { "name": "OH_Drawing_CanvasDrawCircle" },
    { "name": "OH_Drawing_CanvasDrawLine" },
    { "name": "OH_Drawing_CanvasDrawOval" },
    { "name": "OH_Drawing_CanvasDrawPath" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawPixelMapRect"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CanvasDrawPixelMapRectConstraint"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawPoints"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawColor"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawPoint"
    },
    { "name": "OH_Drawing_CanvasDrawRect" },
    { "name": "OH_Drawing_CanvasDrawRoundRect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawSingleCharacter"
    },
    { "name": "OH_Drawing_CanvasDrawTextBlob" },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_CanvasDrawGlyphs"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawRegion"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawBackground"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawVertices"
    },
    { "name": "OH_Drawing_CanvasDrawImageRect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasDrawImageRectWithSrc"
    },
    { "name": "OH_Drawing_CanvasClipRect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasClipRoundRect"
    },
    { "name": "OH_Drawing_CanvasClipPath" },
    { "name": "OH_Drawing_CanvasRotate" },
    { "name": "OH_Drawing_CanvasTranslate" },
    { "name": "OH_Drawing_CanvasScale" },
    { "name": "OH_Drawing_CanvasClear" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasSkew"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasResetMatrix"
    },
    { "name": "OH_Drawing_CanvasResetClip" },
    { "name": "OH_Drawing_CanvasGetWidth" },
    { "name": "OH_Drawing_CanvasGetHeight" },
    { "name": "OH_Drawing_CanvasGetLocalClipBounds" },
    { "name": "OH_Drawing_CanvasGetTotalMatrix" },
    { "name": "OH_Drawing_CanvasConcatMatrix" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixGetAll"
    },
    { "name": "OH_Drawing_CanvasDrawShadow" },
    { "name": "OH_Drawing_CanvasSetMatrix" },
    { "name": "OH_Drawing_CanvasReadPixels" },
    { "name": "OH_Drawing_CanvasReadPixelsToBitmap" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasIsClipEmpty"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasClipRegion"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CanvasGetImageInfo"
    },
    { "name": "OH_Drawing_CreateDashPathEffect" },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CreatePathDashEffect"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CreateSumPathEffect"
    },
    { "name": "OH_Drawing_PathEffectDestroy" },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CreateDiscretePathEffect"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CreateCornerPathEffect"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CreateComposePathEffect"
    },
    { "name": "OH_Drawing_ColorFilterCreateBlendMode" },
    { "name": "OH_Drawing_ColorFilterCreateCompose" },
    { "name": "OH_Drawing_ColorFilterCreateLinearToSrgbGamma" },
    { "name": "OH_Drawing_ColorFilterCreateLuma" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ColorFilterCreateLighting"
    },
    { "name": "OH_Drawing_ColorFilterCreateMatrix" },
    { "name": "OH_Drawing_ColorFilterCreateSrgbGammaToLinear" },
    { "name": "OH_Drawing_ColorFilterDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ErrorCodeGet"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_ErrorCodeReset"
    },
    { "name": "OH_Drawing_FilterCreate" },
    { "name": "OH_Drawing_FilterSetColorFilter" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FilterGetColorFilter"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FilterSetImageFilter"
    },
    { "name": "OH_Drawing_FilterSetMaskFilter" },
    { "name": "OH_Drawing_FilterDestroy" },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_FontArgumentsAddVariation"
    },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_FontArgumentsCreate"
    },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_FontArgumentsDestroy"
    },
    { "name": "OH_Drawing_FontCreate" },
    { "name": "OH_Drawing_FontDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetEdging"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetHinting"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetScaleX"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetTextSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetTextSkewX"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontGetWidths"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsBaselineSnap"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsEmbeddedBitmaps"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsFakeBoldText"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsForceAutoHinting"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsLinearText"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontIsSubpixel"
    },
    {
        "first_introduced": "15",
        "name": "OH_Drawing_FontIsThemeFontFollowed"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMeasureSingleCharacter"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMeasureText"
    },
    {
        "first_introduced": "19",
        "name": "OH_Drawing_FontMeasureTextWithBrushOrPen"
    },
    {
        "first_introduced": "19",
        "name": "OH_Drawing_FontGetWidthsBounds"
    },
    {
        "first_introduced": "19",
        "name": "OH_Drawing_FontGetPos"
    },
    {
        "first_introduced": "19",
        "name": "OH_Drawing_FontGetSpacing"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetBaselineSnap"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetEdging"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetEmbeddedBitmaps"
    },
    { "name": "OH_Drawing_FontSetFakeBoldText" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetForceAutoHinting"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetHinting"
    },
    { "name": "OH_Drawing_FontSetLinearText" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetScaleX"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontSetSubpixel"
    },
    {
        "first_introduced": "15",
        "name": "OH_Drawing_FontSetThemeFontFollowed"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontTextToGlyphs"
    },
    { "name": "OH_Drawing_FontSetTextSize" },
    { "name": "OH_Drawing_FontCountText" },
    { "name": "OH_Drawing_FontSetTextSkewX" },
    { "name": "OH_Drawing_FontSetTypeface" },
    { "name": "OH_Drawing_FontGetTypeface" },
    { "name": "OH_Drawing_FontGetMetrics" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_GpuContextCreateFromGL"
    },
    {
        "first_introduced": "16",
        "name": "OH_Drawing_GpuContextCreate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_GpuContextDestroy"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ImageFilterCreateBlur"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ImageFilterCreateBlurWithCrop"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ImageFilterCreateFromColorFilter"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ImageFilterCreateOffset"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ImageFilterCreateFromShaderEffect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ImageFilterDestroy"
    },
    { "name": "OH_Drawing_MaskFilterCreateBlur" },
    { "name": "OH_Drawing_MaskFilterDestroy" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_MatrixCopy"
    },
    { "name": "OH_Drawing_MatrixCreate" },
    { "name": "OH_Drawing_MatrixCreateRotation" },
    { "name": "OH_Drawing_MatrixCreateScale" },
    { "name": "OH_Drawing_MatrixCreateTranslation" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixMapPoints"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixMapRect"
    },
    { "name": "OH_Drawing_MatrixSetMatrix" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixSetRectToRect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixReset"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPreScale"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPreRotate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPreTranslate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPostScale"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPostRotate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixPostTranslate"
    },
    { "name": "OH_Drawing_MatrixConcat" },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_MatrixPreConcat"
    },
    { "name": "OH_Drawing_MatrixGetValue" },
    { "name": "OH_Drawing_MatrixRotate" },
    { "name": "OH_Drawing_MatrixTranslate" },
    { "name": "OH_Drawing_MatrixScale" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_MatrixSetPolyToPoly"
    },
    { "name": "OH_Drawing_MatrixInvert" },
    { "name": "OH_Drawing_MatrixIsEqual" },
    { "name": "OH_Drawing_MatrixIsIdentity" },
    { "name": "OH_Drawing_MatrixDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathBuildFromSvgString"
    },
    { "name": "OH_Drawing_PathConvertToSvgString" },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PathGetPointData"
 	},
 	{
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PathGetVerbData"
 	},
 	{
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PathGetConicWeightData"
 	},
    { "name": "OH_Drawing_PathCreate" },
    { "name": "OH_Drawing_PathCopy" },
    { "name": "OH_Drawing_PathDestroy" },
    { "name": "OH_Drawing_PathMoveTo" },
    { "name": "OH_Drawing_PathLineTo" },
    { "name": "OH_Drawing_PathArcTo" },
    { "name": "OH_Drawing_PathQuadTo" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathConicTo"
    },
    { "name": "OH_Drawing_PathCubicTo" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathRMoveTo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathRLineTo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathRQuadTo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathRConicTo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathRCubicTo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddCircle"
    },
    { "name": "OH_Drawing_PathAddRect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddRectWithInitialCorner"
    },
    { "name": "OH_Drawing_PathAddRoundRect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddOvalWithInitialPoint"
    },
    { "name": "OH_Drawing_PathAddArc" },
    { "name": "OH_Drawing_PathAddPath" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddPathWithMatrixAndMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddPathWithMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddPathWithOffsetAndMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddPolygon"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathGetBounds"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathGetLength"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathAddOval"
    },
    { "name": "OH_Drawing_PathContains" },
    { "name": "OH_Drawing_PathTransform" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathTransformWithPerspectiveClip"
    },
    { "name": "OH_Drawing_PathSetFillType" },
    { "name": "OH_Drawing_PathClose" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathOffset"
    },
    { "name": "OH_Drawing_PathReset" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathIsClosed"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathGetPositionTangent"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_PathGetSegment"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathOp"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PathGetMatrix"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathGetFillType"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathIsEmpty"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathIsRect"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathSetPath"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathApproximate"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathInterpolate"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PathIsInterpolate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenCopy"
    },
    { "name": "OH_Drawing_PenCreate" },
    { "name": "OH_Drawing_PenDestroy" },
    { "name": "OH_Drawing_PenGetAlpha" },
    { "name": "OH_Drawing_PenSetAlpha" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PenGetAlphaFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PenGetRedFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PenGetGreenFloat"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PenGetBlueFloat"
    },
    { "name": "OH_Drawing_PenSetBlendMode" },
    { "name": "OH_Drawing_PenIsAntiAlias" },
    { "name": "OH_Drawing_PenSetAntiAlias" },
    { "name": "OH_Drawing_PenGetColor" },
    { "name": "OH_Drawing_PenSetColor" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_PenSetColor4f"
    },
    { "name": "OH_Drawing_PenGetWidth" },
    { "name": "OH_Drawing_PenSetWidth" },
    { "name": "OH_Drawing_PenGetMiterLimit" },
    { "name": "OH_Drawing_PenSetMiterLimit" },
    { "name": "OH_Drawing_PenGetCap" },
    { "name": "OH_Drawing_PenSetCap" },
    { "name": "OH_Drawing_PenGetJoin" },
    { "name": "OH_Drawing_PenSetJoin" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenGetFillPath"
    },
    { "name": "OH_Drawing_PenSetFilter" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenGetFilter"
    },
    { "name": "OH_Drawing_PenSetShaderEffect" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenSetShadowLayer"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenSetPathEffect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PenReset"
    },
    { "name": "OH_Drawing_PointCreate" },
    { "name": "OH_Drawing_PointDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PointGetX"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PointGetY"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PointSet"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PointNegate"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PointOffset"
    },
    { "name": "OH_Drawing_ColorSetArgb" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ColorSpaceCreateSrgb"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ColorSpaceCreateSrgbLinear"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ColorSpaceDestroy"
    },
    { "name": "OH_Drawing_CreateFontCollection" },
    { "name": "OH_Drawing_DestroyFontCollection" },
    { "name": "OH_Drawing_CreateTypographyStyle" },
    { "name": "OH_Drawing_DestroyTypographyStyle" },
    { "name": "OH_Drawing_SetTypographyTextDirection" },
    { "name": "OH_Drawing_SetTypographyTextAlign" },
    { "name": "OH_Drawing_SetTypographyTextMaxLines" },
    { "name": "OH_Drawing_CreateTextStyle" },
    { "name": "OH_Drawing_DestroyTextStyle" },
    { "name": "OH_Drawing_RectCreate" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectIntersect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectJoin"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectSetLeft"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectSetTop"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectSetRight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectSetBottom"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetLeft"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetTop"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetRight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetBottom"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetHeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectGetWidth"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RectCopy"
    },
    { "name": "OH_Drawing_RectDestroy" },
    { "name": "OH_Drawing_RoundRectCreate" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RoundRectGetCorner"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_RoundRectCopy"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RoundRectSetCorner"
    },
    { "name": "OH_Drawing_RoundRectDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RoundRectOffset"
    },
    { "name": "OH_Drawing_SetTextStyleColor" },
    { "name": "OH_Drawing_SetTextStyleFontSize" },
    { "name": "OH_Drawing_SetTextStyleFontWeight" },
    { "name": "OH_Drawing_SetTextStyleBaseLine" },
    { "name": "OH_Drawing_SetTextStyleDecoration" },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_AddTextStyleDecoration"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_RemoveTextStyleDecoration"
    },
    { "name": "OH_Drawing_SetTextStyleDecorationColor" },
    { "name": "OH_Drawing_SetTextStyleFontHeight" },
    { "name": "OH_Drawing_SetTextStyleFontFamilies" },
    { "name": "OH_Drawing_SetTextStyleFontStyle" },
    { "name": "OH_Drawing_SetTextStyleLocale" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShaderEffectCreateColorShader"
    },
    { "name": "OH_Drawing_ShaderEffectCreateLinearGradient" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShaderEffectCreateLinearGradientWithLocalMatrix"
    },
    { "name": "OH_Drawing_ShaderEffectCreateRadialGradient" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShaderEffectCreateRadialGradientWithLocalMatrix"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ShaderEffectCreateSweepGradientWithLocalMatrix"
    },
    { "name": "OH_Drawing_ShaderEffectCreateSweepGradient" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShaderEffectCreateImageShader"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ShaderEffectCreatePixelMapShader"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShaderEffectCreateTwoPointConicalGradient"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_ShaderEffectCreateCompose"
    },
    { "name": "OH_Drawing_ShaderEffectDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShadowLayerCreate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ShadowLayerDestroy"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SurfaceCreateFromGpuContext"
    },
    {
        "first_introduced": "16",
        "name": "OH_Drawing_SurfaceCreateOnScreen"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SurfaceGetCanvas"
    },
    {
        "first_introduced": "16",
        "name": "OH_Drawing_SurfaceFlush"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SurfaceDestroy"
    },
    { "name": "OH_Drawing_TextBlobCreateFromText" },
    { "name": "OH_Drawing_TextBlobCreateFromPosText" },
    { "name": "OH_Drawing_TextBlobCreateFromString" },
    { "name": "OH_Drawing_TextBlobGetBounds" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextBlobUniqueID"
    },
    { "name": "OH_Drawing_TextBlobBuilderAllocRunPos" },
    { "name": "OH_Drawing_TextBlobBuilderCreate" },
    { "name": "OH_Drawing_TextBlobBuilderDestroy" },
    { "name": "OH_Drawing_TextBlobBuilderMake" },
    { "name": "OH_Drawing_TextBlobDestroy" },
    { "name": "OH_Drawing_MemoryStreamCreate" },
    { "name": "OH_Drawing_MemoryStreamDestroy" },
    { "name": "OH_Drawing_TypefaceCreateDefault" },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_TypefaceCreateFromCurrent"
    },
    { "name": "OH_Drawing_TypefaceCreateFromFile" },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_TypefaceCreateFromFileWithArguments"
    },
    { "name": "OH_Drawing_TypefaceCreateFromStream" },
    { "name": "OH_Drawing_TypefaceDestroy" },
    { "name": "OH_Drawing_CreateTypographyHandler" },
    { "name": "OH_Drawing_DestroyTypographyHandler" },
    { "name": "OH_Drawing_TypographyHandlerPushTextStyle" },
    { "name": "OH_Drawing_TypographyHandlerAddText" },
    { "name": "OH_Drawing_TypographyHandlerPopTextStyle" },
    { "name": "OH_Drawing_CreateTypography" },
    { "name": "OH_Drawing_DestroyTypography" },
    { "name": "OH_Drawing_TypographyLayout" },
    { "name": "OH_Drawing_TypographyPaint" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyPaintOnPath"
    },
    { "name": "OH_Drawing_TypographyGetMaxWidth" },
    { "name": "OH_Drawing_TypographyGetHeight" },
    { "name": "OH_Drawing_TypographyGetLongestLine" },
    {
        "first_introduced": "13",
        "name": "OH_Drawing_TypographyGetLongestLineWithIndent"
    },
    { "name": "OH_Drawing_TypographyGetMinIntrinsicWidth" },
    { "name": "OH_Drawing_TypographyGetMaxIntrinsicWidth" },
    { "name": "OH_Drawing_TypographyGetAlphabeticBaseline" },
    { "name": "OH_Drawing_TypographyGetIdeographicBaseline" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PixelMapGetFromNativePixelMap"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PixelMapGetFromOhPixelMapNative"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_PixelMapDissolve"
    },
    { "name": "OH_Drawing_ImageCreate" },
    { "name": "OH_Drawing_ImageDestroy" },
    { "name": "OH_Drawing_ImageBuildFromBitmap" },
    { "name": "OH_Drawing_ImageGetWidth" },
    { "name": "OH_Drawing_ImageGetHeight" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ImageGetImageInfo"
    },
    { "name": "OH_Drawing_SamplingOptionsCreate" },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SamplingOptionsCopy"
    },
    { "name": "OH_Drawing_SamplingOptionsDestroy" },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetShadowWithIndex"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetIndentsWithIndex"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleClearShadows"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleAddShadow"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetShadowCount"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetShadows"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroyTextShadow"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CreateTextShadow"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographySetIndents"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyHandlerAddPlaceholder"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyDidExceedMaxLines"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetRectsForRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetRectsForPlaceholders"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetLeftFromTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetRightFromTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetTopFromTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetBottomFromTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetTextDirectionFromTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetSizeOfTextBox"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetGlyphPositionAtCoordinate"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetPositionFromPositionAndAffinity"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetAffinityFromPositionAndAffinity"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetWordBoundary"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetStartFromRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_GetEndFromRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetLineCount"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleDecorationStyle"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleDecorationThicknessScale"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleLetterSpacing"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleWordSpacing"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleHalfLeading"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleEllipsis"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTextStyleEllipsisModal"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTypographyTextBreakStrategy"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTypographyTextWordBreakType"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_SetTypographyTextEllipsisModal"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetLineHeight"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_TypographyGetLineWidth"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_RegisterFont"
    },
    {
        "first_introduced": "11",
        "name": "OH_Drawing_RegisterFontBuffer"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_UnregisterFont"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegisterFontByIndex"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegisterFontBufferByIndex"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetLineTextRange"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CreateFontDescriptor"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroyFontDescriptor"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_MatchFontDescriptors"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_DestroyFontDescriptors"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorsFromStream"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorsFromPath"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorByIndex"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_DestroyFontFullDescriptors"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_DestroyFontFullDescriptor"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorAttributeInt"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorAttributeBool"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_GetFontFullDescriptorAttributeString"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontFullDescriptorAttributeArray"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationAxisByIndex"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_DestroyFontVariationAxis"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationAxisAttributeDouble"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationAxisAttributeInt"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationAxisAttributeStr"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationInstanceByIndex"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_DestroyFontVariationInstance"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationInstanceAttributeStr"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontVariationInstanceCoordinate"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetFontFullDescriptorByFullName"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetFontUnicodeArrayFromBuffer"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetFontUnicodeArrayFromFile"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetFontCountFromBuffer"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetFontCountFromFile"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CreateFontParser"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroyFontParser"
    },
    {
        "first_introduced": "14",
        "name": "OH_Drawing_GetFontDescriptorByFullName"
    },
    {
        "first_introduced": "14",
        "name": "OH_Drawing_GetSystemFontFullNamesByType"
    },
    {
        "first_introduced": "14",
        "name": "OH_Drawing_GetSystemFontFullNameByIndex"
    },
    {
        "first_introduced": "14",
        "name": "OH_Drawing_DestroySystemFontFullNames"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontParserGetSystemFontList"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroySystemFontList"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontParserGetFontByName"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetLineMetrics"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_LineMetricsGetSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroyLineMetrics"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetLineMetricsAt"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetLineInfo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextEllipsis"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLocale"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextSplitRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetTextStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetEffectiveAlignment"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyIsLineUnlimited"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyIsEllipsized"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontMetrics"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTextStyleForegroundBrush"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetForegroundBrush"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTextStyleForegroundPen"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetForegroundPen"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTextStyleBackgroundBrush"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetBackgroundBrush"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTextStyleBackgroundPen"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetBackgroundPen"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DisableFontCollectionFallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DisableFontCollectionSystemFont"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextFontWeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextFontStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextFontSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextHalfLeading"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextUseLineStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleFontWeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleFontStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleFontFamilies"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleFontSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleFontHeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleHalfLeading"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleSpacingScale"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextLineStyleOnly"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroyTextShadows"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionCreate"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_RegionCopy"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionContains"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionOp"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionSetPath"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionDestroy"
    },
    {
        "first_introduced": "22",
        "name": "OH_Drawing_RegionEmpty"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_RegionSetRect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextFontFamily"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyTextFontHeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleSetBackgroundRect"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyHandlerAddSymbol"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleAddFontFeature"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleAddFontVariation"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_TextStyleAddFontVariationWithNormalization"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontFeatures"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleDestroyFontFeatures"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontFeatureSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleClearFontFeature"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetBaselineShift"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleSetBaselineShift"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_CreateSharedFontCollection"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_ClearFontCaches"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetColor"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetDecorationStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontWeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetBaseline"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontFamilies"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleDestroyFontFamilies"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontSize"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetLetterSpacing"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetWordSpacing"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontHeight"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetHalfLeading"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetLocale"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrCreate"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrDestroy"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrGetFamilyCount"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrGetFamilyName"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrDestroyFamilyName"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrCreateFontStyleSet"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrDestroyFontStyleSet"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrMatchFamily"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrMatchFamilyStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontMgrMatchFamilyStyleCharacter"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTextStyleFontStyleStruct"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleGetFontStyleStruct"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyStyleFontStyleStruct"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleGetFontStyleStruct"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleIsEqual"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleIsEqualByFont"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleIsAttributeMatched"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleSetPlaceholder"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TextStyleIsPlaceholder"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleGetEffectiveAlignment"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleIsHintEnabled"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontStyleSetCreateTypeface"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontStyleSetGetStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontStyleSetFreeStyleName"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontStyleSetMatchStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_FontStyleSetCount"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyTextSetHeightBehavior"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyTextGetHeightBehavior"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_GetSystemFontConfigInfo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_DestroySystemFontConfigInfo"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_SetTypographyStyleTextStrutStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleDestroyStrutStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleGetStrutStyle"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleStrutStyleEquals"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyStyleSetHintsEnabled"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetLineFontMetrics"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyDestroyLineFontMetrics"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyMarkDirty"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyGetUnresolvedGlyphsCount"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyUpdateFontSize"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyUpdateFontColor"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyUpdateDecoration"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyUpdateDecorationThicknessScale"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyUpdateDecorationStyle"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyUpdateDecorationColor"
    },
    {
        "first_introduced": "12",
        "name": "OH_Drawing_TypographyTextGetLineStyle"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetFontStyle"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetFontWeight"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetFontFamilies"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleDestroyFontFamilies"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetFontSize"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetHeightOnly"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetHeightScale"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetHalfLeading"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineStyleGetSpacingScale"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyTextlineGetStyleOnly"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyGetTextAlign"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyGetTextDirection"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyGetTextMaxLines"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyGetTextEllipsis"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyDestroyEllipsis"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyStyleEquals"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_TypographyDestroyTextBox"
    },
    {
        "first_introduced": "12",
        "name":"OH_Drawing_SetTextShadow"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_CanvasDrawRecordCmd"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_RecordCmdUtilsCreate"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_RecordCmdUtilsDestroy"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_RecordCmdUtilsBeginRecording"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_RecordCmdUtilsFinishRecording"
    },
    {
        "first_introduced": "13",
        "name":"OH_Drawing_RecordCmdDestroy"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CreateLineTypography"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_DestroyLineTypography"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_LineTypographyGetLineBreak"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_LineTypographyCreateLine"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_FontGetBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_FontGetPathForGlyph"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_RectCreateArray"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_RectGetArraySize"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_RectGetArrayElement"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_RectDestroyArray"
    },
    {
        "first_introduced": "22",
        "name":"OH_Drawing_RectContains"
    },
    {
        "first_introduced": "22",
        "name":"OH_Drawing_RectInset"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CreateTextTab"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyTextTab"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetTextTabAlignment"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetTextTabLocation"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_SetTypographyTextTab"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_FontGetTextPath"
    },
    {
        "first_introduced": "14",
        "name":"OH_Drawing_GetDrawingArraySize"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TypographyGetTextLines"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyTextLines"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyTextLine"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetTextLineByIndex"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetGlyphCount"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetTextRange"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetGlyphRuns"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyRuns"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunByIndex"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLinePaint"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineCreateTruncatedLine"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetTypographicBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetImageBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetTrailingSpaceWidth"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetStringIndexForPosition"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetOffsetForStringIndex"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_TextLineEnumerateCaretOffsets"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_TextLineGetAlignmentOffset"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunStringIndices"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunStringIndicesByIndex"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyRunStringIndices"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunStringRange"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunTypographicBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_RunPaint"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunImageBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyRunImageBounds"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunGlyphs"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunGlyphsByIndex"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyRunGlyphs"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunPositions"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunPositionsByIndex"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_DestroyRunPositions"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_GetRunGlyphCount"
    },
    {
        "first_introduced": "20",
        "name":"OH_Drawing_GetRunTextDirection"
    },
    {
        "first_introduced": "20",
        "name":"OH_Drawing_GetRunGlyphAdvances"
    },
    {
        "first_introduced": "20",
        "name":"OH_Drawing_GetRunGlyphAdvanceByIndex"
    },
    {
        "first_introduced": "20",
        "name":"OH_Drawing_DestroyRunGlyphAdvances"
    },
    {
        "first_introduced": "14",
        "name":"OH_Drawing_GetFontCollectionGlobalInstance"
    },
    {
        "first_introduced": "20",
        "name":"OH_Drawing_GetRunFont"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CanvasQuickRejectPath"
    },
    {
        "first_introduced": "18",
        "name":"OH_Drawing_CanvasQuickRejectRect"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CanvasDrawNestedRoundRect"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CanvasDrawArcWithCenter"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_CanvasDrawPixelMapMesh"
    },
    {
        "first_introduced": "18",
        "name": "OH_Drawing_CanvasDrawPixelMapNine"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTypographyTextTrailingSpaceOptimized"
    },
    {
        "first_introduced": "19",
        "name":"OH_Drawing_CanvasDrawRecordCmdNesting"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTextStyleBadgeType"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTypographyTextAutoSpace"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTextHighContrast"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTextUndefinedGlyphDisplay"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_SetTypographyVerticalAlignment"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_TypographyHandlerAddEncodedText"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CopyTextStyle"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CopyTypographyStyle"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CopyTextShadow"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_CanvasDrawSingleCharacterWithFeatures"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_FontMeasureSingleCharacterWithFeatures"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_FontFeaturesCreate"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_FontFeaturesAddFeature"
    },
    {
        "first_introduced": "20",
        "name": "OH_Drawing_FontFeaturesDestroy"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_SetTextStyleAttributeDouble"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_GetTextStyleAttributeDouble"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_SetTextStyleAttributeInt"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_GetTextStyleAttributeInt"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_SetTypographyStyleAttributeDouble"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_GetTypographyStyleAttributeDouble"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_SetTypographyStyleAttributeInt"
    },
    {
        "first_introduced": "21",
        "name": "OH_Drawing_GetTypographyStyleAttributeInt"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_LatticeCreate"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_LatticeDestroy"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_MatrixIsAffine"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_MatrixPreSkew"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_MatrixRectStaysRect"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_MatrixSetSinCos"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIteratorCreate"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIteratorDestroy"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIteratorHasNext"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIteratorNext"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIteratorPeek"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathIsInverseFillType"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_PathToggleInverseFillType"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectIsEmpty"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectOffset"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectOffsetTo"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectSetEmpty"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectSort"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RectUnion"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionGetBoundaryPath"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionGetBounds"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionIsComplex"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionIsEmpty"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionIsRect"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionQuickContains"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionQuickReject"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_RegionTranslate"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_TypefaceIsBold"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_TypefaceIsItalic"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_SetTypographyStyleAttributeBool"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetTypographyStyleAttributeBool"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_SetTypographyStyleAttributeDoubleArray"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_GetTypographyStyleAttributeDoubleArray"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_TypographyGetCharacterRangeForGlyphRangeWithBuffer"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_TypographyGetCharacterPositionAtCoordinateWithBuffer"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_TypographyGetGlyphRangeForCharacterRangeWithBuffer"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_ReleaseRangeBuffer"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_DestroyPositionAndAffinity"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_GetFontPathsByType"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_IsFontSupportedFromPath"
    },
    {
        "first_introduced": "23",
        "name": "OH_Drawing_IsFontSupportedFromBuffer"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_TypographyLayoutWithConstraintsWithBuffer"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_GetRangeByArrayIndex"
    },
    {
        "first_introduced": "24",
        "name": "OH_Drawing_ReleaseArrayBuffer"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_GetTypographyAttributeBool"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_SetTypographyAttributeBool"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PathGetLastPoint"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_PathIsEqual"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_BitmapGetRowBytes"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_CanvasIsOpaque"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_Drawing_FontGetTextPathWithFallback"
    }
]lxY_hE'6Vkmrңb Z&սl=Zاٗ("(|>Ђ}sfwnۙ٘ofr{]x-{Ԏ笖:z3V:6U}t*;xawޟf}^#E0Z}&k/U޽;IM쮽ZaK}یLnOf)FCNɄ3(j iZ5LgΘS.E86Hl$#bR9n.vh't'ߔ&"V~(VBw}%)\pBgwj_ga(!Xe~:`!KxʤNlTEWi7ZVaq5^!7+B8Hz8I6GSy#:F,렱YdN|ا_P>UL?	MyYMPsԾxpsn>>y6	Ce5L8v;t)cϛn8CbÍXK&^Agw.xV(?X1JV1	ljIЦ]v{Ǉu9\?Ɯou\ o]~{<%PZC`櫍15~jeP#s]nNr5x`v_5x`g]#ܸJ%PIA>9Tx*쏻a>|u,ם?O'^G}8.xtRMl4Ǐ7n=giz,[ƙrk؊OϞwq{4)R!\`y]Ψ<[!X4	fZ#~sɲ`M\?~^^<:9oN`w+o*ҹ\-T(pb[-y*;ITUan1h5e{@yPoF\
jTLlHŢ&dZ˅T0mjHc&~ǄCcPďEA)M9g%Rٛ=3{+tOpYNÍXoTqo
a+#ĂTl⤌?IN\&ڦ&=,b;6V< "rfâCV]vdY|6<:db\DcDԹd(ÈDp@YŐ[yS!&Tu.l`i+FU"~biQNUgG}XxLeUϢi*E)Rb0R
Q,Up}lQv1^ڇǫW`"-cU.u6dT)O;KA\hi;_nܰBnJ=Eo&%M%25m%O6I.bY>A@U%xMvR6/@߾u#8ѣ87U>7$i2g2j']40Y)S,a8ñ*PC-.?eHTv]6[\AMsnP_\=$aes'8Y+zStoYhQ/Y"r,f3+F2&t]9&1
_nG4+LN><?LA$Ր{/H*"w;jj"BBʗiiTP7Y{v%.9XalxW3Nes/F&X 
7xuNA6cAdQ~+c@Ih	&PXҚk,c jCb),~'{<N<<9
U:
jMcr'Qk($"(Tf|PN-ƘcLpj4L	?r4Pl1}J9wD9riɤIQ#ߑeDPSX]λ*&}AKpc;	QTUvA
M㦨:n	楈{ mD%F5tcHA1μ5G#KophZYqTtO:31i'Z\Q!])˘z{OxZ]l\GVT!PPqq$7)BTd^;Km	ؾp8u%VBHFT""xhA'7T	g̙!I|w̜9t7ۇlI''mE1[՟̟DçT 	٧i?qp4ʿS-ETMwSc/|xO?E܉#%~u3hcuzd?n?|^pΩk4w?jX"Z(ldBGtY;,t8NI2!(Wp^'YnfӁ+`kG	LbVɎ{ՑK[|xËtush<>- w$StD+$_"d|I&M;jH|SmEpf卟4,JBz;X?jp0]_wbpn'O.v=~A[,fj))\B;,w9yTץGe )9䌍kƤKbRȞ-wE[g9QG\[9U<]ņ,DpFMijQ@9~Xz`IB$x3L @MԢ#-3ZbLmc4NZd* &A`.FX(U*B0̬U;Eq+Ah+$Z	ſFb$b²n/!	9m~"bY1,sXQ OC/bgl Ϋj-$$*,bn=2hGn.e pĘ)C$mQ
T1A(yS1xo$	t(6bJŕ
!J+90R71j
dOdbAdv)1sP'N=N~fQg'Bf_XBA75DMo	sU-(XR\	J0Ԯش4*U4g`Ov-%SAWbf*e6I!x~svq6L)J\Ev{="[9	_IBc$G.GsHKA"lߚɎOe-ȅrQU5 sAl%0c~KơuSIhC|妘cmHE䏪"9lƚƞ6gߔ>/fl?Gj%ti\Ņx/'iH245#,e|NxJ:/	^2VͨM
@e߾2Qb@d36*0)Ô1cot9;t4R-|NDS;VU?[bD%AVTvzvc֍%k'wfG4fOיj +8_#eŠ+,OGA ^#B/S"^AxP!{YǸY3e<s$f	;^ρmtr#t"A7pzb$uW"f[B/t)FO4\&o6qu%Z,p03GO2=i!nT5
70Y 
$Ynft$p M
qBA,,}B95懇w~$uz@>	dtQb8HyC`8d~ICڪKþt> =`i(3>;IT|R>}J	gKv|%<ţ	yV>rzђl?sn1uKg <$z҉Iнug~JP<:O2^͚n4=,lyMc5ΪG,NZfҔg8c{mt]?^8pMq?_hwF/mJ]i}iӥ	"ddQvP::<K(@*
:8)5il)UqLN$j6%=9@]?|ըτ  b/Yt IyAۋBI,[Ii%07Ð@|՝|EXsylw`WP0jhm
Dq6eU [,(]SjKKji߿'9랞ʇQPvLKERvgżPv,4wW	.U2]J3=1ZR
*#Fvl"5hXBD)>&~㆓ ܥd(9If+Ky?gO;rv;6QC2}:];x^bBZVj`@}KtS67?%b;=M*oP~xuXMlEV 4-H$pj;.Iƥ=vwݵH 	$ՠC *3NHH qH8 đ73ovgf7f{ݡC+G>.tb6WxCwEjL6pN{tT߫1oK/*{^[fղ6h,F"avЅ`3$?/
\BߥaFØ5w!O 6~'KkG}	R,tHBy}m
͑%k&9HN],V2&h!{h[.:*8;l*g0u:GŚ_v%R,pkFAܓ_3BNO:H;VZ	{*  S\mB]sVCQ3("dB)G_bHtH3EBJb
>\ fLDF58Ԁo߽Sr\)V^`ц#jVIcXgցi-4}NA)@7T	^Cp庖
6o!M3"~0겗8"͟[ĵIBoQLߞC2M'jiʜ	;)(pͣ2\Rr;ʔ._YŎ#sj4%<0M(Rl?C㏿^mz.l8#^)/XJB,p"knR'hնɆ2L#:bf1=p5*`|iW$pjeiP-}K
l0bX0_Jޔ(5ǘ}ǴGc\); 9Ж)\Uyє`#>	m(/!o)4/Uym1$j)i"p{?Ky-i<Y(2_citW٠Z)MۯbhV:0VbB-]c]0P둦XS̔>"NO
}T'w/= mrJln3t{5ByR͑{O:. UZ$b7'&2pƑ巾]x{"!% {'V0}bX`	H cVl,$"l&ߢ$p$4v-h9T2IvAHӒrd}*#|BchC]E	@:aK֧'hRu'DyP.g_'<:$R4]=e\u	2j+9%6!t2{M=-$U=gC9WWN_	a^qWqju})RqMWt%t1]qMWrLW]Ut5]1]uLW]t16	4,|VS9PO5_O5_OB2H| _F?4hbΖw1sVVrVbXJ6n&P($tGa	l%Vv v+I7AuhJxƖF0.1zӜeNAkpBfNYbj5"T(}ȥp#賎/L!9z9|f
eD~ZBjHHZ.tg* P6c}5%Zs|kIr>*&ő۟P/Mg0Zv̆I4z 0&k$%ƛtKj7+8DUx5# o^g>4_]xoEVD*)qJil%&1A5ޝ*IpB|8 $		UBBf^݌CN~k޼;v:#zbf9L6BW!<YD0t[05k0Tޣ5}Jp5#CaO"dS_lRgvo9K^D"0C	Saֈ =	:>ݢ>ueΘ|FSBAmh],>wqnv]cbE
aZ%F5d]@kTGJ'GTdk̵;Q8Y@$(!39dԆnКE!MW,u6$MĵN= .p
SiaBF^/C?u㎄ǿ_eK_r0:aۂ;jU9m[zs೯WtMG=N.u5T?5llj#O,jƑ$)
)$\2e85W?vLзp*AG$tAdH=!g[**"lIkNw-:pCIۼ71^c^m:OqU~g,?&nW)#79O,̳%UZÓ
˦rj+TG57_$|XRmw|.34෻q<ԡtsi[P7ݮGBz:_E-eM4ަK>@fЊWL_r萺"MLe#mi,,7!i$
	WNCfa|(HU,/̡w~{?d#{14~A҆O)_*s;>>\KE)) Vn/}g 3m
3y!Xʋؗ8+L*l/IhY/8Y5
ĵ_GEmqѫ$H} ;edc˪~V@*mu8<O}]}# uGwvcyBK5zJR,cso:LxYocb[(J4?Ȓ :J,݈ř=1A8+GY
 E Icl*A? Hg$FMLE˛ٙ۽%,~~o_zfIoI^87Bӳ9|QH,Ep߼VBE zܜX#q]uqhcһ ԇ8~#w!7)Ӷsj0G7oP'94r&DO"TMйj9kjrPƮB>N?P.K6BΓgJPKZW
+PM^f+kl:}z
[kP]| SOX&ގ37 q,0DKU%GpK BlÜ*k	{5++fԿѳx'a򢵚?o	ଙf6rpZ[=!L뇑(/k3[©>}udw^7oK'8B,NwL	SrɂGӋa5y"-t`ULpJ3U_m#or@E#9mVѰ
iri
YExnNyMa2y"8^D\?#+п=bn~:b:=lGm:CkNKl$bs6hSXk(LswidvxcJ'fli&&./V& 03EǜܦBVؒƮk/^y&v0+!q]pnAҲ%q!!JZWz<%R:Ϥ+O6[f\+ =:Ѵ6,7."_.ֆk%`ų*3dR\G61gx#8DYau4t;:vhyEA[f
p>ғ>ԅl#pc'tHS8p'`fؓߦHN:<x,LJ|՝J& )/f͐1UP*_[˂+]毗r8W<LJdA{G+$mx@(kHU=ͩ*MV|wPD7ǎQdˌBQՃ/U2e]#j	l\ݢ(W]	0J(m~S[c5t!gA|)Mc=1$8DQ᳓D&I,lbӱ|bf#x2A(3z@N	u[tVݑQiZcʂ,YwH/F'|2$5\*:)eZ9/pj|dK!e"i)NYMyR	0\0I4 Qwg#RnRKr`8UԹĒ/<^ pcJ/ v/K*Om>
b'8,)zbI~o?W6mnxiB n:)H}29*pe;XYibj7b&J`h{{'?llqu%ܰon渪9<sL}	u?Zxb3q~]4(oP$9.췫U6[m[c72/Wq!E;A yLKP߬(~?L>uJ=8L>X.gG|&3Z9zzG |Q,&I7JG*4liG;%/}P`wOe?+Mu'Zr|?MgN3DG;*?JfUkVd2]shoGx7=JnHLBᣑƼU/FdT')0ca6Qc%=?..MeF27!D8d\c\#?x!S>jT1Obx꤇1i`3k"}3?wAdНҸ8adȭ,GGÂ_:J*<hW**suLtzJūkfda>ƖU`mBw?OW3UwbT왤Зj^xERcNߙnv}96<L#x_hEIVPDTZV6wWQ\zQ\s1}-s{uvD

B-XGh}%>/
O  bߜٛvv6)MfGpe/9LI\zKH+w.q#W=/y*i9;?a>+L1Z[]Y2mk} `vW_EVqUU`l9Pxl:ūbIOYo%LfpZj#m)7{Kzg	kG]J7hEZ@tPV)f	,ZO2ēmLw]ԫҺ`G:O,'lϔ$ŭw9zl:GF66Nݟk-$2A\8H@{
	H<ԁ05Q3YۚEkA=mSaS1zǠݾ@<Xn t142!)1)r2ٞmS[˯V?ks-#.7:BO­l4BiE0qb`DhkM[u]~ǇIZ.S^cNhW[7,_y%}nd)`竎Q5\~pd'F*<J	AUM[mmKrdx=}g$HI>n9wwxEuʮ{"Þ?]GBx.6_K2~ncige|-2JКLpq{,NR.ˢP6TY.;CBF-q5wgE\̬J5;YZ7O+/H^d/8KEWW/,ܮFy=
?q8u0_:Ĺl ʢ*⚘T
WTageUtВ:^ I5jޏ~oG$|yC:,
 {(H2b0?gt@jD?9<WmA2/Bg\~+%7khXD
x*1s˽.c30= Jǆ	"^qeRZD@K߶q'e(%~2QJ,3!D5Q3;`qKVY q7ayi}ZpnVp(2]@X|cGQ7҃0WZ>Y4vlWCⰬ~xEZf-aR.H
&*z6eɰ^8RZn7)0GeJ3b7ih0RʣB-'MYR}beJQ{4eAYɼ"ZWib,tE,s>+t+XnS1)[q*Kwk@0\IAgN]l:"1ruC~rŵRJf}OLo|1
3WP7.Tf3KVǲm]SX#=٘ۿXtA!]g7hȩ}H(JTYOHm0LKh"4sf;IJMQ{޾ vlVxyw3q *oxXMEf<A7M4cvf'*
7;Y7ѥvS]3=g/QD(<B"fUwuOuO3Wu߭WڲM|5-|Zw]45_6s&4{xuтco낳_3=۷ort("[/lve<pAӴ7Tt8s.Vӡ	^FR~N/򨖥G)GZea9~@y[j؍&ÔYo]!]2P b%t7a3TbaygM)ܮ|)b<Ү-V!̏KxAuk?Ґ%<'q+4keaqzlz,{utd?>+5$zi9P	H>5>y m~s4쨪mT)˲iE}A5;_GCxϪj*T\@-ӆ/vԁ.#اG@J#<Ocz6:^vqY鶄='n$Şb/Hx	o#K|HZJV0/zljEЦt@WCbLκ\.,_cN;\:nήQa?y^M-0B;_@hi@&<J	 p'`wk(Я֊U Yej+TыrߙCv2e*Xw8<{0NݲN\޲}$.ubul$	nd=gm-LR%؊>ai4C]bcFnMEȕ\1;|0&q<GϹ*b'˂6qNxbsEW@ax0=CGySʭ }MEU
chGA`WqF4xcVњ^LyP@Z N	75J&{vZ8"dZRƋcG0)P>&=A>MnE|, kHNſlU?a*^[={eLeL-^(pᆥj7o
~7PR֑YJpXEo(duybѲV;s*N\RDLd.\)x2&MG.H4h)t8[-=<0}T^Y0eg!/Ak[\R5Ӿj'aOAL:o(n飯lKFŝY*ґNX
q/rK/ÉbҊrYOlV4#XpcȣHҔfI'l?K-e@ BGimJtCoPxiQy"B|VO?IҦ4:)uBp}sJ*+R~aKIv헊-Vu/>(cL`F1)Jؐz/j5Zȸhae`td8q9 ,̿W覀뼾џ_=,ĖeWyW^#\B8@n)f.JODZ's`,TM7{yddqqOU2|zXW!aX^8:").M*x)::4%{RÝ|=x sh
>xMLA$ACPAфփ&RZ+]dldSS/&$^ `4M8zEorD	&]
87oߦg;J,VIfqژ!Pkyr~&t<
e,]ûtVjyq>8cgQé8Kr1;^`11lㄶu<P@Mx$IN;oe/vzhwqQ8ۭVAUkn[ W'qTVBBQvIJ
SH*!tN(luIUL :JxC'N(Lo߲#fa*#;LJSTj(P"AtxA567U^nl;}&uk`腞@8U"ɺNtֈƥ\B=rgDM;UX'N1+-N
A +tp7oc7ubeu7O!RBʷпʔ2_}n!3.f'6K	U܀N[=䍛}=Vus4GslE\tA!+}UpV5

V(qpi.;mk?W&sjKX.-ihy|R^'KԺ®7<wST(pc`Gn/",K{|WγKxR /*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provides the definition of the C interface for the native ability wrapper
 *
 * @since 26.0.0
 */

/**
 * @file native_ability_wrapper.h
 *
 * @brief Declares the native ability wrapper APIs.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef ABILITY_RUNTIME_NATIVE_ABILITY_WRAPPER_H
#define ABILITY_RUNTIME_NATIVE_ABILITY_WRAPPER_H

#include <stdint.h>
#include <napi/native_api.h>
#include "ability_runtime_common.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines the AbilityRuntime_NativeAbilityWrapper structure type.
 *
 * @since 26.0.0
 */
typedef struct AbilityRuntime_NativeAbilityWrapper AbilityRuntime_NativeAbilityWrapper;

/**
 * @brief Get ability instance ID from NativeAbilityWrapper.
 *
 * @param nativeAbilityWrapper The native ability wrapper pointer.
 * @param buffer A pointer to a buffer that receives the instance ID string which is UUID format,
 *               an amount of 37 bytes, 36 chars plus an ending '\0'.
 * @param bufferSize The length of the buffer, must be at least 37.
 * @return The error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the nativeAbilityWrapper or buffer is null,
 *         or the buffer size is les9s than 37.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode !**
(
    const AbilityRuntime_NativeAbilityWrapper* nativeAbilityWrapper, char* buffer, const int32_t bufferSize);

/**
 * @brief Get ability name from NativeAbilityWrapper.
 *
 * @param nativeAbilityWrapper The native ability wrapper pointer.
 * @param buffer A pointer to a buffer that receives the ability name.
 *               Pass nullptr to query the ability name length.
 * @param bufferSize The length of the buffer. Make sure the buffer has at least one more byte for '\0'.
 * @param writeLength Outputs the ability name string length.
 * @return The error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the nativeAbilityWrapper or writeLength is null,
 *         or the buffer is too small for the ability name.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_ABILITY_WRAPPER_INVALID} if the native ability wrapper is invalid or
 *         incomplete.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTER@NAL} inner error.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode !*(
    const AbilityRuntime_NativeAbilityWrapper *nativeAbilityWrapper, char *buffer, const int32_t bufferSize,
    int32_t *writeLength);

/**
 * @brief Get napi_env from NativeAbilityWrapper.
 *
 * @param nativeAbilityWrapper The native ability wrapper pointer.
 * @param env A pointer to the receive napi_env value. napi_env is valid until the process terminates.
 * @return The error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the nativeAbilityWrapper or env is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_ABILITY_WRAPPER_INVALID} if the native ability wrapper is invalid or
 *         incomplete.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode *(
    const AbilityRuntime_NativeAbilityWrapper* nativeAbilityWrapper, napi_env* env);

#ifdef __cplusplus
}
#endif

/** @} */
3#endif // ABILITY_RUNTIME_NATIVE_ABILITY_WRAPPER_H
M+Z7bxݹ"F /*
 * Copyright (C) 2023ѱsaVPlayer
 *
 * @brief Provides APIs of Playback capability for Media Source.
 *
 * @Syscap SystemCapability.Multimedia.Media.AVPlayer
 * @since 11
 */
/**
 * @file avplayer.h
 *
 * @brief The **avplayer.h** file declares the AVPlayer APIs. You can use the native AVPlayer APIs to play a media
 * asset.
 *
 * @kit MediaKit
 * @library libavplayer.so
 * @since 11
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H

#include <stdbool.h>
#include <sJstdio.h>
#include "native_averrors.h"
#include "avplayer_base.h"
#include "native_avcodec_base.h"
#include "native_window/exterSnal_window.h"
#include "ohaudio/native_audiostream_base.h"
#include "avmedia_source;The MediaKeySession struct describes the media key session.
 * 
 * @since 12
 */
typedef struct MediaKeySession MediaKeySession;
/**
 * @brief The DRM_MediaKeySystemInfo struct describes the media key system information.
 * 
 * @since 12
 */
typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo;

/**
 * @brief OH_AVPlayerVideoOutput field.
 * @since 26.0.0
 */ 
typedef struct OH_AVPlayerVideoOutput OH_AVPlayerVideoOutput;

/**
 * @brief Called when media key system information of the AVPlayer is updated.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mediaKeySystemInfo Pointer to the media key system information.
 * @return void
 * @since 12
 */
typedef void (*Player_MediaKeySystemInfoCallback)(OH_AVPlayer *player, DRM_MediaKeySystemInfo* mediaKeySystemInfo);

/**
 * @brief Creates an OH_AVPlayer instance.
 * You are advised to create a maximum of 16 AVPlayer instances for an application in both audio and video playback
 * scenarios.
 * <!--Del-->The actual number of instances that can be created may be different. It depends on the specifications of
 * the device chip in use. For example, in the case of RK3568, you are advised to create a maximum of 6 AVPlayer
 * instances for an application in audio and video playback sceOnarios.<!--DelEnd-->
 * 
 * @return Pointer to the OH_AVPlayer instance created@; nullptr otherwise.
 * The possible causes of an operation failure are as follows:
 * 1. The execution of **PlayerFactory::CreatePlayer** fails.
 * 2. The execution of **new PlayerObject** fails.
 * @since 11
*/
OH_AVPlayer *OH_AVPlayer_Create(void);

/**
 * @brief Sets the HTTP URL of a media source to be played by an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer iYnstance.
 * @param url URL of the media source.
 * @return {@link AV_ERR_OK}: The settingQ{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, the input parameter **url** is null, or the
 * execution of **player SetUrlSource** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetURLSource(OH_AVPlayer *player, const char *url);

/**
 * @brief Sets the file descriptor of a media source to be played by an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param fd File descriptor of the media source.
 * @param offset Offset of the media source in the file descriptor.
 * @param size Size of the media source.
 * @return {@link AV_ERR_OK}: The file descriptor is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player SetFdSource** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetFDSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size);

/**
 * @brief Sets the media source of the AVPlayer. The data of this media source is provided by the application.
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @param datasrc Pointer to an OH_AVDataSourceExt instance
 * @param userData The handle passed iWn by the user is used to pass in the callback
 * @return {@link AV_ERR_OK}: The settingQ{@link AV_ERR_INVALID_VAL}: The **player** or **datasrc** parameter is nullptr.
 * @since 21
 */
OH_AVErrCode OH_AVPlayer_SetDataSource(OH_AVPlayer *player, OH_AVDataSourceExt* datasrc, void* userData);

/**
 * @brief Prepares the playback environment and buffers media data.
 * This function must be called after **SetSource**.
 * 
 * @param player Pointer to the OH_AVPlayer inst%ance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Prepare** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Prepare(OH_AVPlayer *player);

/**
 * @brief Starts playback.
 * This function must be called after {@link OH_AVPlayer_Prepare}.
 * In other words, you can call this function when the AVPlayer is in the prepared state.
 * V
 * @param player Pointer to the OH_AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Play** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Play(OH_AVPlayer *player);

/**
 * @brief Pauses playback.
 * 
 * @param player Pointer to the OH_2AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Pause** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Pause(OH_AVPlayer *player);

/**
 * @brief Stops playback.
 * 
 * @param player Pointer to the OH3_AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Stop** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Stop(OH_AVPlayer *player);

/**
 * @brief Restores the AVPlayer to the initial state.
 * After the function is called, you can call **SetSource** to set the media source to play, and then call {@link OH_AVPlayer_Prepare}
 * and {@link OH_AVPlayer_Play} in sequence.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Reset** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Reset(OH_AVPlayer *player);

/**
 * @brief Asynchronously releases an OH_AVPlayer instance.
 * The asynchronous function improves performance, but cannot ensure that the surface buffer of the playback window is
 * released. You must ensure the lifecycle of the playback window.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Release** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Release(OH_AVPlayer *player);

/**
 * @brief Synchronously releases an OH_AVPlayer instance.
 * The synchronous function ensures that the display buffer of the playback window is released, with a long time.
 * Therefore, you need to design an asynchronous mechanism.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player ReleaseSync** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_ReleaseSync(OH_AVPlayer *player);

/**
 * @brief Obtains the media source information for the AVPlayer. This function can be called when the playback resource
 * is configured and the AVPlayer is in the initialized, prepared, playing, paused, completed, or stopped state.
 * You must manually release the returned OH_AVFormat pointer object when it is no longer needed.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return Media source information obtained. If the operation fails, nullptr is returned.
 * Possible cause:
 * 1. The **player** pointer is invalid.
 * 2. The playback resource is invalid.
 * @since 22
 */
OH_AVFormat *OH_AVPlayer_GetMediaDescription(OH_AVPlayer *player);

/**
 * @brief Obtains the media source track information for the AVPlayer by index. This function can be called when the
 * playback resource is configured and the AVPlayer is in the initialized, prepared, playing, paused, completed, or
 * stopped state.
 * You must manually release the returned OH_AVFormat pointer object when it is no longer needed.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param index Index of the track.
 * @return Track information obtained. If the operation fails, nullptr is returned.
 * Possible cause:
 * 1. The **player** pointer is invalid.
 * 2. The playback resource is invalid.
 * 3. The track index is out of the range for the playback source file array.
 * @since 22
 */
OH_AVFormat *OH_AVPlayer_GetTrackDescription(OH_AVPlayer *player, uint32_t index);

/**
 * @brief Sets the volume for an AVPlayer.
 * This function can be used when the AVPlayer is in the playing or paused state. The value **0** means that the
 * AVPlayer is muted, and **1** means that the original volume is used.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param leftVolume Target volume of the left channel.
 * @param rightVolume Target volume of the right channel.
 * @return {@link AV_ERR_OK}: The volume is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player SetVolume** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetVolume(OH_AVPlayer *player, float leftVolume, float rightVolume);

/**
 * @brief Seeks to a playback position.
 * This function can be used when the AVPlayer is in the playing or paused state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mSeconds Position to seek to, in ms.
 * @param mode Seek mode.
 * @return {@link AV_ERR_OK}: Them{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player Seek** fails.
 * @since 11
*/
OH_AVErrCode OH_AVPlayer_Seek(OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode);

/**
 * @brief Obtains the playback position, in milliseconds.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param currentTime Pointer to the playback position.
 * @return {@link AV_ERR_OK}: The playback position is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player GetCurrentTime**
 * fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetCurrentTime(OH_AVPlayer *player, int32_t *currentTime);

/**
 * @brief Obtains the video width.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param videoWidth Pointer to the video width.
 * @return {@link AV_ERR_OK}: The video width is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetVideoWidth(OH_AVPlayer *player, int32_t *videoWidth);

/**
 * @brief Obtains the video height.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param videoHeight Pointer to the video height.
 * @return {@link AV_ERR_OK}: The video height is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeight);

/**
 * @brief Sets the playback speed of the AVPlayer. For details about the playback speed, see {@link AVPlaybackSpeed}.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param speed Playback speed.
 * @return {@link AV_ERR_OK}: The playback speed is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed);

/**
 * @brief Obtains the playback speed of an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param speed Pointer to the playback speed.
 * @return {@link AV_ERR_OK}: The playback rate is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player GetPlaybackSpeed**
 * fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed *speed);

/**
 * @brief Obtains the playback rate of an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param rate Pointer to the playback rate that can be obtained.
 * @return {@link AV_ERR_OK} if the playback rate of the AVPlayer is successfully obtained.
 * Otherwise, an error code defined in {@link native_averrors.h} is returned.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_GetPlaybackRate(OH_AVPlayer *player, float *rate);

/**
 * @brief Sets the audio stream type for an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param streamUsage Audio stream type.
 * @return {@link AV_ERR_OK}: The audio stream type is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or **streamUsage** is invalid.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo(OH_AVPlayer *player, OH_AudioStream_Usage streamUsage);

/**
 * @brief Sets the audio interruption mode for an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param interruptMode Audio interruption mode.
 * @return {@link AV_ERR_OK}: The audio interruption mode is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or **interruptMode** is invalid.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode(OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode);

/**
 * @brief Sets the audio effect mode for an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param effectMode Audio effect mode.
 * @return {@link AV_ERR_OK}: The audio effect mode is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or **effectMode** is invalid.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioEffectMode(OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode);

/**
 * @brief Sets the bit rate used by an HLS player. This function is valid only for HLS network streams.
 * By default, the AVPlayer selects a proper bit rate and speed based on the network connection.
 * You can set a bit rate available in the valid bit rates reported in **INFO_TYPE_BITRATE_COLLECT**. The AVPlayer
 * selects a bit rate that is lower than and closest to the specified bit rate. When ready, you can query the selected
 * bit rate.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param bitRate Bit rate, in kbit/s.
 * @return {@link AV_ERR_OK}: The bit rate is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player SelectBitRate**
 * fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SelectBitRate(OH_AVPlayer *player, uint32_t bitRate);

/**
 * @brief Sets a playback window.
 * This function must be called after **SetSource** and before **Prepare**.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param window Pointer to the OHNativeWindow instance.
 * @return {@link AV_ERR_OK}: The playback window is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** or **window** is nullptr, or the execution of **player
 * SetVideoSurface** fails.
 * @since 11
 */
OH_AVErrCode  OH_AVPlayer_SetVideoSurface(OH_AVPlayer *player, OHNativeWindow *window);

/**
 * @brief Obtains the total duration of a media file, in milliseconds.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param duration Pointer to the total duration.
 * @return {@link AV_ERR_OK}: The total duration is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player GetDuration** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetDuration(OH_AVPlayer *player, int32_t *duration);

/**
 * @brief Obtains the AVPlayer state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param state Pointer to the state of the AVPlayer.
 * @return {@link AV_ERR_OK}: The AVPlayer state is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player GetState** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetState(OH_AVPlayer *player, AVPlayerState *state);

/**
 * @brief Checks whether an AVPlayer is playing.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return Check result for whether the AVPlayer is playing. **true** if yes, **false** if the AVPlayer is not playing
 * or the input parameter **player** is nullptr.
 * @since 11
 */
bool OH_AVPlayer_IsPlaying(OH_AVPlayer *player);

/**
 * @brief Checks whether an AVPlayer is looping.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return Check result for whether the AVPlayer is looping. **true** if yes, **false** if the AVPlayer is not looping
 * or the input parameter **player** is nullptr.
 * @since 11
 */
bool OH_AVPlayer_IsLooping(OH_AVPlayer *player);

/**
 * @brief Enables loop playback.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param loop Whether to enable loop playback. **true** to play in a loop, **false** otherwise.
 * @return {@link AV_ERR_OK}: Loop playback is enabled.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player SetLooping** fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetLooping(OH_AVPlayer *player, bool loop);

/**
 * @brief Sets an AVPlayer callback.
 * The callbacks {@link OH_AVPlayerOnInfo} and {@link OH_AVPlayerOnError} set by using this function can transfer
 * limited information. In addition, it is inconvenient for the application to distinguish between multiple AVPlayer
 * instances.
 * Starting from API version 12, {@link OH_AVPlayer_SetOnInfoCallback} and {@link OH_AVPlayer_SetOnErrorCallback} are provided to set the callbacks {@link OH_AVPlayerOnInfoCallback}
 * and {@link OH_AVPlayerOnErrorCallback}, respectively.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param callback Callback used to return the result.
 * @return {@link AV_ERR_OK}: The callback is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, the input parameter **callback.onInfo** or **
 * onError** is null, or the execution of **player SetPlayerCallback** fails.
 * @since 11
 * @deprecated since 12
 * @useinstead {@link OH_AVPlayer_SetOnInfoCallback} {@link OH_AVPlayer_SetOnErrorCallback}
 */
OH_AVErrCode OH_AVPlayer_SetPlayerCallback(OH_AVPlayer *player, AVPlayerCallback callback);

/**
 * @brief Selects an audio or subtitle track.
 * By default, the first audio track with data is played, and the subtitle track is not played.
 * After the setting takes effect, the original track becomes invalid. Set the subtitle track to the prepared, playing,
 * paused, or completed state, and set the audio track to the prepared state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param index Index of the track.
 * @return {@link AV_ERR_OK}: The operation is s|{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player SelectTrack** fails.
 * @since 11
*/
OH_AVErrCode OH_AVPlayer_SelectTrack(OH_AVPlayer *player, int32_t index);

/**
 * @brief Deselects an audio or subtitle track.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param index Index of the track.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player DeselectTrack**
 * fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index);

/**
 * @brief Obtains the currently valid track. You can set the track to the prepared, playing, paused, or completed state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param trackType Media type. The value **0** means audio and **1** means video.
 * @param index Pointer to the index of the track.
 * @return {@link AV_ERR_OK}: The track is obtained.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **player GetCurrentTrack**
 * fails.
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index);

/**
 * @brief Sets a callback to return the media key system information for an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param callback Callback.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** or **callback** is a null pointer, or the execution of **
 * player SetDrmSystemInfoCallback**
 * **SetDrmSystemInfoCallback** or **SetDrmSystemInfoCallback** fails.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player,
    Player_MediaKeySystemInfoCallback callback);

/**
 * @brief Obtains the media key system information to create a media key session.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mediaKeySystemInfo Pointer to the media key system information.
 * @return {@link AV_ERR_OK}: The operation is su}{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the memory is insufficient.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo);

/**
 * @brief Sets the decryption information.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mediaKeySession Pointer to the media key session with the decryption feature.
 * @param secureVideoPath Whether a secure decoder is required. **true** if requir8ed, **false** otherwise.
 * @return {@link AV_ERR_OK}: Tk{@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or the execution of **SetDecryptionConfig** fails.
 * @since 12
*/
OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player, MediaKeySession *mediaKeySession,
    bool secureVideoPath);

/**
 * @brief Sets a callback for the event indicating that the AVPlayer receives a message.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param callback Pointer to the callback. If nullptr is passed in, the listening for AVPlayer messages is canceled.
 * @param userData Pointer to the instance set by the caller.
 * @return {@link AV_ERR_OK}: The operr**AV_ERR_NO_MEMORY**: Memory allocation fails.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or the function fails to be executed.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetOnInfoCallback(OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData);

/**
 * @brief Sets a callback for the event indicating that an error occurs in the AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param callback Pointer to the callback. If nullptr is passed in, the listening for AVPlayer errors is canceled.
 * @param userData Pointer to the instance set by the caller.
 * @return {@link AV_ERR_OK}: Tk**AV_ERR_NO_MEMORY**: Memory allocation fails.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or the function fails to be executed.
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetOnErrorCallback(OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData);

/**
 * @brief Sets the audio volume mode for an AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param volumeMode Volume mode of the audio stream.
 * @return {@link AV_ERR_OK}: The audio volume mode is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr or **volumeMode** is invalid.
 * **AV_ERR_INVALID_STATE**: The function is called in an invalid state. It must be in the prepared state.
 * {@link AV_ERR_SERVICE_DIED}: A system error occurs.
 * @since 19
 */
OH_AVErrCode OH_AVPlayer_SetVolumeMode(OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode);

/**
 * @brief Sets the playback rate of an AVPlayer within the valid range.
 * The supported states are prepared, playing, paused, and completed.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param rate Playback rate. The value ranges from 0.125 to 4.
 * @return {@link AV_ERR_OK}: The playback speed is set successfully.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The function is called when the AVPlayer is not in the allowed state, or it is called
 * during live streaming.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **player** is nullptr, or **rate** is out of range.
 * @since 20
 */
OH_AVErrCode OH_AVPlayer_SetPlaybackRate(OH_AVPlayer *player, float rate);

/**
 * @brief Sets the loudness of the AVPlayer. This function can be called when the AVPlayer is in the prepared, playing,
 * paused, completed, or stopped state.
 * The default loudness gain is 0.0 dB. The **usage** parameter of the AVPlayer stream must be {@link OH_AudioStream_Usage}.
 * AUDIOSTREAM_USAGE_MUSIC,
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MOVIE, or {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_AUDIOBOOK.
 * The latency mode of the audio renderer must be {@link OH_AudioStream_LatencyMode}.AUDIOSTREAM_LATENCY_MODE_NORMAL.
 * If the audio is played through the high-resolution pipeline, this operation is not supported.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param loudnessGain Loudness, in the range [-90.0, 24.0], in dB.
 * @return {@link AV_ERR_OK}: The loudness is set successfully.
 * {@link AV_ERR_INVALID_VAL}: The **player** parameter is nullptr, or the **loudnessGain** parameter is invalid.
 * **AV_ERR_INVALID_STATE**: The function is called in an abnormal state, or the **usage** parameter of **
 * audioRendererInfo** is not one of the following:
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MUSIC,
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MOVIE,
 * and {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_AUDIOBOOKs.
 * {@link AV_ERR_SERVICE_DIED}: A system error occurs.
 * @since 21
 */
OH_AVErrCode OH_AVPlayer_SetLoudnessGain(OH_AVPlayer *player, float loudnessGain);

/**
 * @brief Obtains the statistic metrics of the current AVPlayer. This API can be called when the playback resource is
 * set and the AVPlayer is in the prepared, playing, paused, completed, or stopped state.
 * Note that you need to manually release the lifecycle of the {@link OH_AVFormat} pointer object.
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @return I
, the statistic metric information of the AVPlayer is returned. (For details
 * about the key values, see {@link statistic metric information}). Otherwise, **nullptr** is returned.
 * Possible failure cause: The input **player** pointer is invalid.
 * @since 23
 */
OH_AVFormat *OH_AVPlayer_GetPlaybackStatisticMetrics(OH_AVPlayer *player);

/**
 * @brief Adds the subtitle resource represented by the file descriptor to the player. Currently, the external subtitle
 * must be set after the **fdSrc** of the video resource is set in the AVPlayer.
 *  
 * @param player Pointer to an OH_AVPlayer instance
 * @param fd Indicates the file descriptor of subtitle source.
 * @param offset Indicates the offset of media source in file descriptor.
 * @param size Indicajtes the size of media source.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_AddFdSubtitleSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size);

/**
 * @brief Adds the subtitle resource represented by the URL to the player. The external subtitle must be set after the
 * URL is set for the AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param url URL of the subtitle source.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_AddUrlSubtitleSource(OH_AVPlayer *player, const char *url);

/**
 * @brief Sets the start and end positions of the playback. After the setting, only the content within the specified
 * range of the audio and video file is played. This API can be called when the player is in the initialized, prepared,
 * paused, stopped, or completed state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mSecondsStart Start position of playback. The value must be in the range of [0, **duration**). The value **-1*
 * * indicates that the start position is not set, and the playback starts from 0.
 * @param mSecondsEnd End position of playback. The value must be in the range of (**startTimeMs**, **duration**]. The
 * value **-1** indicates that the end position is not set, and the playback ends at the end of the stream.
 * @param closestRange Whether to seek to the frame closest to the specified poTsition.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetPlaybackRange(OH_AVPlayer *player, int32_t mSecondsStart, int32_t mSecondsEnd,
    bool closestRange);

/**
 * Mute the media stream. This API can be called only when the AVPlayer is in the prepared, playing,
 * paused, or completed state.
 * @param player Pointer to the OH_AVPlayer instance.
 * @param mediaType Media type. For details, see {@link OH_MediaType} in {@link native_avcodec_base.h}.
 * @param muted **true** indicates that the audio is muted, and **false** indicates that the audio is unmuted.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input parameter is invalid.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetMediaMuted(OH_AVPlayer *player, OH_MediaType mediaType, bool muted);

/**
 * @brief Obtains the playback position, in milliseconds. This API can be called only when the AVPlayer is in the
 * prepared, playing, paused, or completed state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return Playback position, in milliseconds.
 * If **player** is a null pointer or invalid, **-1** is returned.
 * @since 23
 */
int32_t OH_AVPlayer_GetPlaybackPosition(OH_AVPlayer *player);

/**
 * @brief Checks whether the media source supports continuous seek. If this API is called when the AVPlayer is in the
 * prepared, playing, paused, or completed state, the actual value is returned. Other, **false** is returned. For
 * devices that do not support the {@link AV_SEEK_CONTINUOUS} mode, **false** is returned.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return @returns **true** indicates that continuous seek is supported.
 * **false** indicates that continuous seek is not supported or is uncertain.
 * @since 23
 */
bool OH_AVPlayer_IsSeekContinuousSupported(OH_AVPlayer *player);

/**
 * @brief Selects a track in the specified switching mode when playing a resource that contains multiple audio and
 * video tracks.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param index Index of the selected track.
 *i @param mode Switching mode.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input parameter is invalid.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SelectTrackWithMode(OH_AVPlayer *player, int32_t index, AVPlayerTrackSwitchMode mode);

/**
 * @brief Subscribes to the maximum audio amplitude update event, which is reported periodically when audio resources
 * are played.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param callback Pointer to the callback function. **nullptr** indicates that the callback is deregistered.
 * @param userData Pointer to user-defined data.
 * @return Execution re5sult of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetAmplitudeUpdateCallback(OH_AVPlayer *player, OH_AVPlayerOnAmplitudeUpdateCallback callback,
    void *userData);

/**
 * @brief Subscribes to the SEI message reception event. This API applies only to HTTP-FLV live streams and is
 * triggered when an SEI message exists in a video stream. This subscription must be initiated before **prepare** is
 * called.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param payloadTypes Load type array.
 * @param typeNum Size of the load type array.
 * @param callback Pointer to the callback function. **nullptr** indicates that the callback is deregistered.
 * @param userData Pointer to user-defineTd data.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetSeiReceivedCallback(OH_AVPlayer *player, const int32_t *payloadTypes, uint32_t typeNum,
    OH_AVPlayerOnSeiMessageReceivedCallback callback, void *userData);

/**
 * @brief Obtains the number of items in the SEI message array.
 * 
 * @param message Pointer to the **OH_AVSeiMessageArray** instance.
 * @return Number of items in the SEI message array.
 * @since 23
 */
uint32_t OH_AVSeiMessage_GetSeiCount(OH_AVSeiMessageArray *message);

/**
 * @brief Obtains an SEI message form the SEI message array by index.
 * 
 * @param message Pointer to the **OH_AVSeiMessageArray** instance.
 * @param index Index of the message item.
 * @return SEI of the message item.
 * @since 23
 */
OH_AVFormat *OH_AVSeiMessage_GetSei(OH_AVSeiMessageArray *message, uint32_t index);

/**
 * @brief Sets the video window size for super resolution. This API can be called when the AVPlayer is in the
 * initialized, prepared, playing, paused, completed, or stopped state. The input parameter value must be in the range
 * of 320 × 320 to 1920 × 1080 (pixels).
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param width Window width, in pixels. The value range is [320, 1920].
 * @param height Window height, in pixels. The value range is [320, 1080].
 * @return Execution result of the func%tion.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input player is a null pointer or the parameter is incorrect.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * {@link AV_ERR_SUPER_RESOLUTION_UNSUPPORTED}: Super resolution is not supported.
 * {@link AV_ERR_SUPER_RESOLUTION_NOT_ENABLED}: Super resolution is not enabled in {@link OH_AVPlaybackStrategy}.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetTargetVideoWindowSize(OH_AVPlayer *player, int32_t width, int32_t height);

/**
 * @brief Dynamically enables or disables super resolution. This API can be called when the AVPlayer is in the
 * initialized, prepared, playing, paused, completed, or stopped state. You must enable the super resolution feature in
 * {@link OH_AVPlaybackStrategy} before calling **prepare**.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param enabled **true** means to enable super resolution; **false** means the opposite.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is success\{@link AV_ERR_INVALID_VAL}: The input player is a null pointer or the parameter is incorrect.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * {@link AV_ERR_SUPER_RESOLUTION_UNSUPPORTED}: Super resolution is not supported.
 * {@link AV_ERR_SUPER_RESOLUTION_NOT_ENABLED}: Super resolution is not enabled in {@link OH_AVPlaybackStrategy}.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetVideoSuperResolutionEnable(OH_AVPlayer *player, bool enabled);

/**
 * @brief Creates a playback strategy instance.
 * 
 * @return Playback strategy instance. If the operation fails, a null pointer is returned.
 * @since 23
 */
OH_AVPlaybackStrategy *OH_AVPlaybackStrategy_Create(void);

/**
 * @brief Releases a playback strategy instance.
 * 
 * @param strategy **OH_AVPlaybackStrategy** instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is sV{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_Destroy(OH_AVPlaybackStrategy *strategy);

/**
 * @brief Selects a stream with width close to the specified value.
 * 
 * @param strategy **OH_AVPlaybackStrategy** used by the AVPlayer.
 * @param width Preferred width for playback when the AVPlayer is started.
 *J @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredWidth(OH_AVPlaybackStrategy *strategy, int32_t width);

/**
 * @brief Selects a stream with height close to the specified value.
 * 
 * @param strategy **OH_AVPlaybackStrategy** used by the AVPlayer.
 * @param height Preferred height for playback whenf the AVPlayer is started.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredHeight(OH_AVPlaybackStrategy *strategy, int32_t height);

/**
 * @brief Selects the preferred buffer duration that is close to the specified value.
 * 
 * @param strategy **OH_AVPlaybackStrategy** used by the AVPlayer.
 * @param ms Preferred buffer duration for playback when the AVPlayer is started.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The executN{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredBufferDuration(OH_AVPlaybackStrategy *strategy, int32_t ms);

/**
 * @brief Enables or disables the preferred HDR mode.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param enabled The value **true** means to enable the preferred HDR mode, and the value **false** means the opposite.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredHdr(OH_AVPlaybackStrategy *strategy, bool enabled);

/**
 * @brief Sets the preferred subtitle language.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param lang Pointer to subtitle language code (for example, **zh**).
 * @return Ex?ecution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredSubtitleLanguage(OH_AVPlaybackStrategy *strategy, const char *lang);

/**
 * @brief Sets the preferred audio language.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param lang Pointer to audio language code (for example, **en**).
 *J @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredAudioLanguage(OH_AVPlaybackStrategy *strategy, const char *lang);

/**
 * @brief Sets the media type to be muted during playback.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param mediaType Type of the media to be muted.
 * @returCn Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetMutedMediaType(OH_AVPlaybackStrategy *strategy, OH_MediaType mediaType);

/**
 * @brief Sets whether to display the first frame during the **prepare** state.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param enabled **true** to display, **_false** otherwise.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetShowFirstFrameOnPrepare(OH_AVPlaybackStrategy *strategy, bool enabled);

/**
 * @brief Sets the threshold for automatic quick playback.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param seconds Threshold for automatic quick playback.
 * @rGeturn Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetThresholdForAutoQuickPlay(OH_AVPlaybackStrategy *strategy, double seconds);

/**
 * @brief Sets whether to enable super resolution.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param enabled **true** to enable, **false** otherwise.
 * @retuDrn Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetSuperResolutionEnable(OH_AVPlaybackStrategy *strategy, bool enabled);

/**
 * @brief Sets the preferred buffer duration during playback (double type, in seconds).
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param seconds Buffer duration, iWn seconds.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredBufferDurationForPlaying(OH_AVPlaybackStrategy *strategy,
    double seconds);

/**
 * @brief Sets whether to continue decoding when the audio is muted.
 * 
 * @param strategy Pointer to **OH_AVPlaybackStrategy**.
 * @param enabled The value **true** means to continue decoding when the audio is muted, and **false** means the
 * opposite.
 * @return Execution result of the fun&ction.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input strategy is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVPlaybackStrategy_SetKeepDecodingOnMute(OH_AVPlaybackStrategy *strategy, bool enabled);

/**
 * @brief Sets the playback strategy for the AVPlayer. This API can be called only when the AVPlayer is in the
 * initialized state.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param strategy Playback strategy instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The executN{@link AV_ERR_INVALID_VAL}: The input player is a null pointer.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetPlaybackStrategy(OH_AVPlayer *player, OH_AVPlaybackStrategy *strategy);

/**
 * @brief Obtains the statistics of the current AVPlayer. This API can be called only when the AVPlayer is in the
 * prepared, playing, or paused state.
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @return Pointer to the **OH_AVFormat** instance.
 * If the **player** is a null pointer or invalid, a null pointer is returned.
 * @since 23
 */
OH_AVFormat* OH_AVPlayer_GetPlaybackInfo(OH_AVPlayer *player);

/**
 * @brief Sets the **OH_AVMediaSource** to the AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param source Media source.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execuM{@link AV_ERR_INVALID_VAL}: The input **player** or **source** is a null pointer, or the **player** fails to set the URL
 * source.
 * @since 23
 */
OH_AVErrCode OH_AVPlayer_SetMediaSource(OH_AVPlayer *player, OH_AVMediaSource *source);

/**
 * @brief Obtains the number of tracks of the media source of the AVPlayer.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @return Number of tracks.
 * @since 23
 */
uint32_t OH_AVPlayer_GetTrackCount(OH_AVPlayer *player);

/**
 * @brief Obtains the track information of the AVPlayer by index.
 * 
 * @param player Pointer to the OH_AVPlayer instance.
 * @param trackIndex Index of the track array.
 * @return Pointer to the **OH_AVFormat** instance.
 * If **player** is a null pointer or invalid, or **trackIndex** is invalid, a null pointer is returned.
 * @since 23
 */
OH_AVFormat *OH_AVPlayer_GetTrackFormat(OH_AVPlayer *player, uint32_t trackIndex);

/** 
 * @brief Method to set audio pcm data callback. This API can be called only 
 *     when the avplayer is in the idle or initialized state. 
 * @param player Pointer to an OH_AVPlayer instance. 
 * @param callback Pointer to callback function, nullptr indicates unregister callback. 
 * @param userData Pointer to user specific data. 
 * @return Function result code. `*V_ERR_OK} if the execution is successful. `RV_ERR_INVALID_VAL} if input player is null or player SetPCMOutputCallback failed. `V_ERR_OPERATE_NOT_PERMIT} if called in unsupported state. 
 * @since 26.0.0 
 */ 
OH_AVErrCode OH_AVPlayer_SetPCMOutputCallback(OH_AVPlayer *player, OH_AVPlayerPCMOutputCallback callback, 
    void *userData);


/**
 * @brief Method to set video decoded frame output callback. This API can be called only
 *     when the avplayer is in the idle or initalized state.
 * @param player Pointer to an OH_AVPlayer instance.
 * @param window A pointer to a OHNativeWindow instance, see {@link OHNativeWindow}
 * @return Returns a pointer to an OH_AVPlayerVideoOutput instance, released by system when avplayer was
 *     reset or release. nullptr means failed.
 * @since 26.0.0
 */
OH_AVPlayerVideoOutput* OH_AVPlayer_SetVideoSideOutput(OH_AVPlayer *player, OHNativeWindow *window);

/**
 * @brief Method to get one video decoded frame. This API can be called only when the avplayer is
 *     in the paused or playing state.
 * @param videoOutput Pointer to an OH_AVPlayerVideoOutput instance returned by OH_AVPlayer_SetVideoSideOutput.
 * @return Returns OH_VIDEO_OUTPUT_OK when got a frame.
 *         Returns OH_VIDEO_OUTPUT_NO_IMAGE when there is no frame ready to render.
 * @since 26.0.0
 */
OH_VideoOutputResult OH_AVPlayerVideoOutput_GetNewestVideoSample(OH_AVPlayerVideoOutput *videoOutput);

/**
 * @brief Method to set audio pcm data process callback.
 * @param player Pointer to an OH_AVPlayer instance.
 * @param callback Pointer to callback function, nullptr indicates unregister callback.
 * @param userData Pointer7 to user specific data.
 * @return Function result code_V_ERR_OK} if the execuM'V_ERR_INVALID_VAL} if input player is null or player SetPCMProcessorCallback failed.
 * @since 26.0.0
 */
OH_AVErrCode OH_AVPlayer_SetPCMProcessorCallback(OH_AVPlayer *player, OH_AVPlayerPCMOutputCallback callback,
    void *userData);

/**
 * @brief Sets the maximum amount of data that can be returned at a time during audio post-processing.
 * Allows some PCM data to be cached and returned with the next PCM data
 * @param player Pointer to an OH_AVPlayer instance.
 * @param maxProcessedPCMLen the maximum amount of PCM data returned at one time.
 *     OH_AVPlayerPCMProcessorCallback ensures that the returned pcmBuffer's Capaci?ty is not less than this value.
 * @return Function result code_V_ERR_OK} if the execuM'CV_ERR_INVALID_VAL} if input player is null or maxProcessedPCMLen isQOH_AVErrCode OH_AVPlayer_SetPCMProcessorMaxLen(OH_AVPlayer *player, int maxProcessedPCMLen);

#ifdef __cplusplus
}
#endif

#end4if // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_H
Ŀmxp K[
  { "name": "OH_AVPlayer_Create" },
  { "name": "OH_AVPlayer_SetURLSource" },
  { "name": "OH_AVPlayer_SetFDSource" },
  { "name": "OH_AVPlayer_Prepare" },
  { "name": "OH_AVPlayer_Play" },
  { "name": "OH_AVPlayer_Pause" },
  { "name": "OH_AVPlayer_St\op" },
  { "name": "OH_AVPlayer_Reset" },
  { "name": "OH_AVPlayer_Release" },
  { "name": "[" },
  { "name": "OH_AVPlayer_SetVolume" },
  { "name": "OH_AVPlayer_Seek" },
  { "name": "p+" },
  { "name": "," },
  { "name": "l.n" },
  { "name": "OH_AVPlayer_SetPlaybackSpeed" },
  { "name": "OH_AVPlayer_GetPlaybackSpeed" },
  { "name": "rface" },
  { "name": "<" },
  { "name": "OH_AVPlayer_GetDuration" },
  { "name": "OH_AVPlayer_GetState" },
  { "name": "OH_AVPlayer_IsPlaying" },
  { 0"name": "OH_AVPlayer_IsLooping" },
  { "name": "F" },
  { "name": "K" },
  { "name": "~=" },
  { "name": "OH_AVPlayer_DeselectTrack" },
  { "name": "p+rack" },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_STATE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_STATE_CHANGE_REASON"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_VOLUME"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_BITRATE_ARRAY"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_AUDIO_INTERRUPT_TYPE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_AUDIO_INTERRUPT_FORCE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_AUDIO_INTERRUPT_HINT"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_BUFFERING_TYPE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_BUFFERING_VALUE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_SEEK_POSITION"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_PLAYBACK_SPEED"
  },
  {
    "first_introduced": "20",
    "name": "OH_PLAYER_PLAYBACK_RATE"
  },  
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_BITRATE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_CURRENT_POSITION"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_DURATION"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_VIDEO_WIDTH"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_VIDEO_HEIGHT"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_MESSAGE_TYPE"
  },
  {
    "first_introduced": "12",
    "name": "OH_PLAYER_IS_LIVE_STREAM"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SEI_PAYLOAD_TYPE"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SEI_PAYLOAD_CONTENT"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SUPER_RESOLUTION_ENABLE_STATE"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_TRACH_CHANGE_INFO_TRACK_INDEX"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_TRACH_CHANGE_INFO_TRACK_SELECTED"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SUBTITLE_UPDATE_INFO_DURATION"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SUBTITLE_UPDATE_INFO_START_TIME"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SUBTITLE_UPDATE_INFO_TEXT"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_SERVER_IP_ADDRESS"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_IS_DOWNLOADING"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_BUFFER_DURATION"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_DOWNLOAD_RATE"
  },
  {
    "first_introduced": "23",
    "name": "OH_PLAYER_AVGD_DOWNLOAD_RATE"
  },
  {
    "first_introduced": "12",
    "name": "0H6"
  },
  {
    "first_introduced": "12",
    "name": "J6"
  },
  {
    "first_introduced": "12",
    "name": "T)6"
  },
  {
    "first_introduced": "12",
    "name": "(V!6"
  },
  {
    "first_introduced": "12",
    "name": "X6"
  },
  {
    "first_introduced": "12",
    "name": "v5 "
  },
  {
    "first_introduced": "12",
    "name": "OH_AVPlayer_SetAudioInterruptMode"
  },
  {
    "first_introduced": "12",
    "name": "9"
  },
  {
    "first_introduced": "19",
    "name": "OH_AVPlayer_SetVolumeMode"
  },
  {
    "first_introduced": "20",
    "name": "\u8te"
  },
  {
    "first_introduced": "21",
    "name": "h"
  },
  {
    "first_introduced": "21", 
    "name": "OH_AVPlayer_SetDataSource"
  },
  {
    "first_introduced": "22", 
    "^name": "OH_AVPlayer_GetMediaDescription"
  },
  {
    "first_introduced": "22", 
    "name": "$"
 },
  {
    "first_introduced": "22", 
    "name": "OH_PLAYER_MD_KEY_HAS_VIDEO"
  },
  {
    "first_introduced": "22", 
    "name": "OH_PLAYER_MD_KEY_HAS_AUDIO"
  },
  {
    "first_introduced": "22", 
    "name": "OH_PLAYER_MD_KEY_HAS_SUBTITLE"
  },
  {
    "first_introduced": "22", 
    "name": "OH_PLAYER_MD_KEY_TRACK_INDEX"
  },
  {
    "first_introduced": "23",
    "name": "k'"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_PREPARE_DURATION"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_RESOURCE_CONNECTION_DURATION"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_FIRST_FRAME_DECAPSULATION_DURATION"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_TOTAL_PLAYING_TIME"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_DOWNLOAD_REQUEST_COUNT"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_DOWNLOAD_TOTAL_TIME"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_DOWNLOAD_TOTAL_SIZE"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_STALLING_COUNT"
  },
  {
    "first_introduced": "23",
    "name": "OH_MEDIA_EVENT_INFO_TOTAL_STALLING_TIME"
  },
  {
    "first_introduced": "23",
    "name": "OH_AVPlayer_AddFdSubtitleSource"
  },
  {
    "first_introduced": "23",
    "name": "OH_AVPlayer_AddUrlSubtp
6"
  },
  {
    "first_introduced": "23",
    "name": "\u"
  },
  {
    "first_introduced": "23",
    "name": "OH_AVPlayer_SetMediaMuted"
  },
  {
    "first_introduced": "23",
    "name": "+z6"
  },
  {
    "first_introduced": "23",
    "name": "|%6"
  },
  {
    "first_introduced": "23",
    "name": "~6"
  },
  {
    "first_introduced": "23",
    "name": "d&6"
  },
  {
    "first_introduced": "23",
    "name": "Ʉ"6"
  },
  {
    "first_introduced": "23",
    "name": ";Count"
  },
  {
    "first_introduced": "23",
    "name": "6"
  },
  {
    "first_introduced": "23",
    "name": "$6"
  },
  {
    "first_introduced": "23",
    "name": ")6"
  },
  {
    "first_introduced": "23",
    "name": "<Create"
  },
  {
    "first_introduced": "23",
    "name": "=Destroy"
  },
  {
    "first_introduced": "23",
    "name": "'6"
  },
  {
    "first_introduced": "23",
    "name": ""<Height"
  },
  {
    "first_introduced": "23",
    "name": ""6"
  },
  {
    "first_introduced": "23",
    "name": ""9Hdr"
  },
  {
    "first_introduced": "23",
    "name": ""6"
  },
  {
    "first_introduced": "23",
    "name": "/6"
  },
  {
    "first_introduced": "23",
    "name": "DMutedMediaType"
  },
  {
    "first_introduced": "23",
    "name": "6"
  },
  {
    "first_introduced": "23",
    "name": "o6"
  },
  {
    "first_introduced": "23",
    "name": "G6"
  },
  {
    "first_introduced": "23",
    "name": ""@ForPlaying"
  },
  {
    "first_introduced": "23",
    "name": "k6"
  },
  {
    "first_introduced": "23",
    "name": ""
  },
  {
    "first_introduced": "23",
    "name": "OH_AVPlayer_GetPlaybackInfo"
  },
  {
    "first_introduced": "23",
    "Xname": "OH_AVPlayer_SetMediaSource"
  },
  {
    "first_introduced": "23",
    "name": "O6"
  },
  {
    "first_introduced": "23",
    "name": "6"
  },
  {
    "first_introduced": "23",
    "name": "3;"
  },
  {
    "first_introduced": "26.0.0", 
    "name": "/	;"
  },
  {
    "first_introduced": "26.0.0", 
    "name": "1;"
  },
  {
    "first_introduced": "26.0.0", 
    "name": " G"
  },
  {
    "first_introduced": "26.0.0", 
    "name": "OH_AVPlayer_;"
  },
  {
    "first_introduced": "26.0.0", 
    "name": "T!"
  }
]IxcK/*
 * Copyright (C) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup AVPlayer
 * @{
 *
 * @brief Provides APIs of Playback capability for Media Source.
 *
 * @Syscap SystemCapability.Multimedia.Media.AVPlayer
 * @since 11
 */
/**
 * @file avplayer_base.h
 *
 * @brief The file declares the structs and enums of the AVPlayer.
 * 
 * @kit MediaKit
 * @library libavplayer.so
 * @since 11
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_BASH_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_BASH_H

#include <stdint.h>

#include "native_avformat.h"
#include "native_avbuffer.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct OH_AVPlayer OH_AVPlayer;

/**
 * @brief Defines a struct for the SEI message array.
 * 
 * @since 23
 */
typedef struct OH_AVSeiMessageArray OH_AVSeiMessageArray;

/**
 * @brief Defines a struct forL the audio and video playback strategy.
 * 
 * @since 23
 */
typedef struct  ;

/**
 * @brief Enumerates the AVPlayer states.
 * 
 * @since 11
 */
typedef enum AVPlayerState {
    /* idle states */
    AV_IDLE = 0,
    /* initialized states */
    AV_INITIALIZED = 1,
    /* prepared states */
    AV_PREPARED = 2,
    /* playing states */
    AV_PLAYING = 3,
    /* paused states */
    AV_PAUSED = 4,
    /* stopped states */
    AV_STOPPED = 5,
    /* Play to the end states */
    AV_COMPLETED = 6,
    /* released states */
    AV_RELEASED = 7,
    /* error states */
    AV_ERROR = 8,
} AVPlayerState;

/**
 * @brief Enumerates the seek modes.
 * 
 * @since 11
 */
typedef enum AVPlayerSeekMode {
    /* sync to keyframes after the time point. */
    AV_SEEK_NEXT_SYNC = 0,
    /* sync to keyframes before the time point. */
    AV_SEEK_PREVIOUS_SYNC,
    /**
     * @brief Seeks to the frame closest to the specified position.
     * 
     * @since 12
     */
    AV_SEEK_CLOSEST = 2,
    /**
     * Seeks in continuous drag mode. This mode provides a smoother drag experience, but the device must support
     * continuous seeking for the current stream. Before using this mode, check whether continuous seeking .is supported.
     *  For details, see {@link N%}.<br>**Since**: 23
     */
    AV_SEEK_CONTINUOUS = 3,
} AVPlayerSeekMode;

/**
 * @brief Enumerates the playback speeds of the AVPlayer.
 * 
 * @since 11
 */
typedef enum AVPlaybackSpeed {
    /* Video playback at 0.75x normal speed */
    AV_SPEED_FORWARD_0_75_X,
    /* Video playback at normal speed */
    AV_SPEED_FORWARD_1_00_X,
    /* Video playback at 1.25x normal speed */
    AV_SPEED_FORWARD_1_25_X,
    /* Video playback at 1.75x normal speed */
    AV_SPEED_FORWARD_1_75_X,
    /* Video playback at 2.0x normal speed */
    AV_SPEED_FORWARD_2_00_X,
    /**
     * @brief Plays the video at 0.5 times the normal speed.
     * 
     * @since 12
     */
    AV_SPEED_FORWARD_0_50_X,
    /**
     * @brief Plays the video at 1.5 times the normal speed.
     * 
     * @since 12
     */
    AV_SPEED_FORWARD_1_50_X,
    /**
     * @brief Plays the video at 3.0 times the normal speed.
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_3_00_X,
    /**
     * @brief Plays the video at 0.25 times the normal speed.
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_0_25_X,
    /**
     * @brief Plays the video at 0.125 times the normal speed.
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_0_125_X,
} AVPlaybackSpeed;

/**
 * @brief Enumerates the types of messages received by the AVPlayer.
 * The enum can be used in **OH_AVPlayerOnInfoCallback** and **OH_AVPlayerOnInfo** (deprecated) to indicate the type of
 * information received by the AVPlayer.
 * Starting from API version 12, you are advised to use {@link OH_AVPlayerOnInfoCallback} instead. Different
 * information (**infoBody**) can be obtained for different **OnInfo** types. **infoBody** contains the key-value pairs.
 *  For details, see the following enumerated value table.
 * If you are using API version 11 for development, use **OH_AVPlayerOnInfo (deprecated)**. For details about the
 * mappings used in this deprecated API, see {@link OH_AVPlayerOnInfo}.
 * 
 * @since 11
 */
typedef enum AVPlayerOnInfoType {
    /* return the message when seeking done. */
    AV_INFO_TYPE_SEEKDONE = 0,
    /* return the message when speeding done. */
    AV_INFO_TYPE_SPEEDDONE = 1,
    /* return the message when select bitrate done */
    AV_INFO_TYPE_BITRATEDONE = 2,
    /* return the message when playback is end of steam. */
    AV_INFO_TYPE_EOS = 3,
    /* return the message when PlayerStates changed. */
    AV_INFO_TYPE_STATE_CHANGE = 4,
    /* return the current posion of playback automatically. */
    AV_INFO_TYPE_POSITION_UPDATE = 5,
    /* return the playback message. */
    AV_INFO_TYPE_MESSAGE = 6,
    /* return the message when volume changed. */
    AV_INFO_TYPE_VOLUME_CHANGE = 7,
    /* return the message when video size is first known or updated. */
    AV_INFO_TYPE_RESOLUTION_CHANGE = 8,
    /* return multiqueue buffering time. */
    AV_INFO_TYPE_BUFFERING_UPDATE = 9,
    /* return hls bitrate.
       Bitrate is to convert data into uint8_t array storage,
       which needs to be forcibly converted to uint32_t through offset access. */
    AV_INFO_TYPE_BITRATE_COLLECT = 10,
    /* return the message when audio focus changed. */
    AV_INFO_TYPE_INTERRUPT_EVENT = 11,
    /* return the duration of playback. */
    AV_INFO_TYPE_DURATION_UPDATE = 12,
    /* return the playback is live stream. */
    AV_INFO_TYPE_IS_LIVE_STREAM = 13,
    /* return the message when track changes. */
    AV_INFO_TYPE_TRACKCHANGE = 14,
    /* return the message when subtitle track info updated. */
    AV_INFO_TYPE_TRACK_INFO_UPDATE = 15,
    /* return the subtitle of playback. */
    AV_INFO_TYPE_SUBTITLE_UPDATE = 16,
    /**
     * Message returned when the audio output device ch*anges.<br> If **key** is set to **
     * $**, the value type is int32_t. The system uses int32_t to transfer the value,
     *  and the application uses int32_t to obtain the value.
     */
    AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17,

    /**
     * @brief Message returned when the playback rate is applied.
     *  If **key** is set to **OH_PLAYER_PLAYBACK_RATE**, the value type is float. The system uses float to transfer the value, and the application uses float to obtain the value.
     * 
     * @since 20
     */
    AV_INFO_TYPE_PLAYBACK_RATE_DONE = 18,
  
    /**
     * @brief Message returned when the super resolution changes.
     * 
     * @since 23
     */
    AV_INFO_TYPE_SUPER_RESOLUTION_CHANGED = 19,
} AVPlayerOnInfoType;

/**
 * @brief Enumerates the types of buffer messages of the AVPlayer.
 * 
 * @since 12
 */
typedef enum AVPlayerBufferingType {
    /**
     * Buffering start message.
     */
    AVPLAYER_BUFFERING_START = 1,

    /**
     * Buffering end message.
     */
    AVPLAYER_BUFFERING_END,

    /**
     * Buffer execution progress, in percentage. The value is an integer in the range [0, 100].
     */
    AVPLAYER_BUFFERING_PERCENT,

    /**
     * Duration that cached data can be played, in milliseconds.
     */
    AVPLAYER_BUFFERING_CACHED_DURATION,
} AVPlayerBufferingType;

/**
 * @brief Enumerates the track switching modes.
 * 
 * @since 23
 */
typedef enum AVPlayerTrackSwitchMode {
    /**
     * Switch tracks smoothly.
     */
    AV_TRACK_SWITCH_MODE_SMOOTH = 0,
    /**
     * Switch tracks by segment.
     */
    AV_TRACK_SWITCH_MODE_SEGMENT = 1,
    /**
     * Switch to the closest track.
     */
    AV_TRACK_SWITCH_MODE_CLOSEST = 2,
} AVPlayerTrackSwitchMode;

/**
 * @brief Result of Video output.
 * @since 26.0.0
 */
typedef enum OH_VideoOutputResult {
    /**
     * @brief Output one decoded video frame.
     * @since 26.0.0
     */
    OH_VIDEO_OUTPUT_OK = 0,
    /**
     * @brief No frame ready to render.
     * @since 26.0.0
     */
    OH_VIDEO_OUTPUT_NO_IMAGE = 1,
} OH_VideoOutputResult;

/**
 * @brief Pointer to the key for obtaining the AVPlayer state. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_STATE;

/**
 * @brief Pointer to the key for obtaining the AVPlayer state change reason. The value is of the int32_t type.
 * The value **1** means that the change is triggered by user operations, and **2** means that the change isE triggered
 * by the system.
 * 
 * @since 12
 */
extern const char* ;

/**
 * @brief Pointer to the key for obtaining the volume. The value type is float.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_VOLUME;

/**
 * @brief Pointer to the key for obtaining the bit rate array. The value is of the uint8_t byte array type. When this
 * key is used to obtain information, you need to:
 * Use a pointer variable of the uint8_t type to store the bit rate list and use a variable of the size_t type to store
 * the byte array length.
 * Then it allocates several storage spaces of the uint32_t type to receive the bit rate integer of the uint32_t type,
 * which is converted from the uint8_t byte array.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_BITRATE_ARRAY;

/**
 * @brief Pointer to the key for obtaining the audio inteYrruption type. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* nTYPE;

/**
 * @brief Pointer to the key for obtaining the FORCE type of audio interruption. The value is of the int32_t type.
 '* 
 * @since 12
 */
extern const char* nFORCE;

/**
 * @brief Pointer to the key for obtaining the HINT type of audio interruption. The value is of the int32_t type.
 '* 
 * @since 12
 */
extern const char* n;

/**
 * @brief Pointer to the key for obtaining the audio device change reason. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* $;

/**
 * @brief Pointer to the key for obtaining the type of the buffer update message. The value type is {@link AVPlayerBufferingType}.
 * When this key is used to obtain information, you must use a variable of the int32_t type to save the result and tghen
 * convert the result to a value of AVPlayerBufferingType.
 * 
 * @since 12
 */
extern const char* ;

/**
 * @brief Pointer to the key for obtaining the value of the buffer update message. The value is of the int32_t type.
 * For details, see {@link AVPlayerBufferingType}.
 * This parameter is valid only when the buffer update message type is **AVPLAYER_BUFFERING_PERCENT** or **
 * AVPLAYER_BUFFERING_CACHED_DURATION**.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_BUFFERING_VALUE;

/**
 * @brief Pointer to the key for obtaining the playback progress after the seek operation. The value is of the int32_t
 * type.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_SEEK_POSITION;

/**
 * @brief Pointer to the key for obtaining the playback speed. The value type is {@link AVPlaybackSpeed}.
 * When this key is used to obtain information, you must use a variable of the int32_t type to save the result and then
 * convert the result to a value of AVPlaybackSpeed.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_PLAYBACK_SPEED;

/**
 * @brief Pointer to the key for obtaining the bit rate array. The value is of the uint8_t byte array type. When this
 * key is used to obtain information, you need to:
 * Use a pointer variable of the uint8_t type to store the bit rate list and use a variable of the size_t type to store
 * the byte array length.
 * Then it allocates several storage spaces of the uint32_t type to receive the bit rate integer of the uint32_t type,
 * which is converted from the uint8_t byte array.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_BITRATE;

/**
 * @brief Pointer to the key for obtaining the playback progress information. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* OH_PLA;

/**
 * @brief Pointer to the key for obtaining the media asset duration. The value type is int64_t.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_DURATION;

/**
 * @brief Pointer to the key for obtaining the video width. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_VIDEO_WIDTH;

/**
 * @brief Pointer to the key for obtaining the video height. The value is of the int32_t type.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_VIDEO_HEIGHT;

/**
 * @brief Pointer to the key for obtaining the type of message received by the AVPlayer. The value is of the int32_t
 * type.
 * The value **1** means that the video frame starts to be rendered.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_MESSAGE_TYPE;

/**
 * @brief Pointer to the key for checking whether a media asset is live streaming. The value is of the int32_t type.
 * The value **1** means live streaming.
 * 
 * @since 12
 */
extern const char* OH_PLAYER_IS_LIVE_STREAM;

/**
 * Sei message key for payload type.
 * @since 23
 */
extern const char* OH_PLAYER_SEI_PAYLOAD_TYPE;

/**
 * Sei message key for payload content.
 * @since 23
 */
extern const char* OH_PLAYER_SEI_PAYLOAD_CONTENT;

/**
 * @brief Pointer to the key for indicating the enable state of the super resolution feature. The value type is int32_t.
 *  The value **1** indicates that the feature is enabled, and **0** indicates the opposite. It is used for information
 * callback when the super resolution state changes.
 * 
 * @since 23
 */
extern const char* V';

/**
 * @brief Pointer to the key for indicating the track index in the track change information. The value type is int32_t.
( * 
 * @since 23
 */
extern const char* "INDEX;

/**
 * @brief Pointer to the key for indicating whether the track is selected in the track change information. The valu>e
 * type is int32_t.
 * 
 * @since 23
 */
extern const char* *;

/**
 * @brief Pointer to the key for indicating the duration in the subtitle update information. The value type is int32_t.
( * 
 * @since 23
 */
extern const char* p';

/**
 * @brief Pointer to the key for indicating the start time in the subtitle update information. The value type is
 * int3-2_t.
 * 
 * @since 23
 */
extern const char* p
;

/**
 * @brief Pointer to the key for indicating the subtitle text content in the subtitle update information. The value
 * t7ype is string.
 * 
 * @since 23
 */
extern const char* pTEXT;

/**
 * @brief Pointer to the key for obtaining the playback rate. The value is a floating-point number.
 * 
 * @since 20
 */
extern const char* OH_PLAYER_PLAYBACK_RATE;
 
/**
 * @brief Pointer to the key for obtaining whether the media resource contains video tracks. The value is of the
 * int32_t type.
 * The value **1** means that the media resource contains video trackSs, and the value **0** means the opposite.
 * 
 * @since 22
 */
extern const char* ;
 
/**
 * @brief Pointer to the key for obtaining whether the media resource contains audio tracks. The value is of the
 * int32_t type.
 * The value **1** means that the media resource contains audio tracks, and the value **0** means the opposite.
 * 
$ * @since 22
 */
extern const char* AUDIO;
 
/**
 * @brief Pointer to the key for obtaining whether the media resource contains subtitle tracks. The value is of the
 * int32_t type.
 * The value **1** means that the media resource contains subtitle tracks, and the value **0** means the opp/osite.
 * 
 * @since 22
 */
extern const char* SUBTITLE;
 
/**
 * @brief Pointer to the key for obtaining the track index information of a media resource. The value is of the int32_t
 * type.
 * 
 * @since 22
 */
extern const char* OH_PLAYER_MD_KEY_TRACK_INDEX;

/**
 * @brief Called when the AVPlayer receives a message.
 * 
 * @param player Pointer to an OH_AVPlayer instance.
 * @param type Message type. For details about the available options, see {@link AVPlayerOnInfoType}. For details about
 * the mappings between **type** and **extra** values, see the function description.
 * @param extra Other information, such as the start time and position of the media file to play.
 * @since 11
 * @deprecated since 12
 * @useinstead {@link OH_AVPlayerOnInfoCallback}
 */
typedef void (*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra);

/**
 * @brief Called when the AVPlayer receives a message. If this callback is successfully set, the **OH_AVPlayerOnInfo**
 * function will not be invoked.
 * 
 * @param player Pointer to an OH_AVPlayer instance.
 * @param type Message type. For details about the available options, see {@link AVPlayerOnInfoType}.
 * @param infoBody Pointer to the message. The pointer is valid only in this callback.
 * @param userData Pointer to the instance provided by the caller when setting the callback function.
 * @since 12
 */
typedef void (*OH_AVPlayerOnInfoCallback)(OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat* infoBody,
    void *userData);

/**
 * @brief Called when an error occurs in the AVPlayer. This callback is available in API version 9 or later.
 * 
 * @param player Pointer to an OH_AVPlayer instance.
 * @param errorCode Error code.
 * **AV_ERR_NO_MEMORY**: No memory. The value is **1**.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed. The value is **2**.
 * {@link AV_ERR_INVALID_VA}: Invalid value. The value is **3**.
 * **AV_ERR_IO**: I/O error. The value is **4**.
 * **AV_ERR_TIMEOUT**: Timeout. The value is **5**.
 * **AV_ERR_UNKNOWN**: Unknown error. The value is **6**.
 * {@link AV_ERR_SERVICE_DIED}: The service is dead. The value is **7**.
 * **AV_ERR_INVALID_STATE**: The operation is not supported in the current state. The value is **8**.
 * {@link AV_ERR_UNSUPPORT}: The function is not supported. The value is **9**.
 * **AV_ERR_EXTEND_START**: Initial value for extended error codes. The value is **100**.
 * @param errorMsg Error message.
 * @since 11
 * @deprecated since 12
 * @useinstead {@link OH_AVPlayerOnErrorCallback}
 */
typedef void (*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg);

/**
 * @brief Called when an error occurs in the AVPlayer. If this callback is successfully set, the **OH_AVPlayerOnError**
 * function will not be invoked.
 * 
 * @param player Pointer to an OH_AVPlayer instance.
 * @param errorCode Error code.
 * **AV_ERR_NO_MEMORY**: No memory. The value is **1**.
 * {@link AV_ERR_OPERATE_NOT_PERMIT}: The operation is not allowed. The value is **2**.
 * {@link AV_ERR_INVALID_VA}: Invalid value. The value is **3**.
 * **AV_ERR_IO**: I/O error. For API versions 12 and 13, the value is **4**. Starting from API version 14, it
 * corresponds to more specific error codes ranging from 5411001 to 5411011.
 * **AV_ERR_TIMEOUT**: Timeout. The value is **5**.
 * **AV_ERR_UNKNOWN**: Unknown error. The value is **6**.
 * {@link AV_ERR_SERVICE_DIED}: The service is dead. The value is **7**.
 * **AV_ERR_INVALID_STATE**: The operation is not supported in the current state. The value is **8**.
 * {@link AV_ERR_UNSUPPORT}: The function is not supported. The value is **9**.
 * **AV_ERR_EXTEND_START**: Initial value for extended error codes. The value is **100**.
 * @param errorMsg Error message, only valid in callback function.
 * @param userData Pointer to user specific data.
 * @since 12
 */
typedef void (*OH_AVPlayerOnErrorCallback)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg,
    void *userData);

/**
 * @brief The struct contains the set of the **OH_AVPlayerOnInfo** and **OH_AVPlayerOnError** callback function
 * pointers. To ensure the normal running of OH_AVPlayer, you must register the instance of this struct with the
 * OH_AVPlayer instance and process the information reported by the callback functions.
 * 
 * @param onInfo Monitor OH_AVPlayer operation information, refer to {@link OH_AVPlayerOnInfo}
 * @param onError Monitor OH_AVPlayer operation errors, refer to {@link OH_AVPlayerOnError}
 * @since 11
 * @deprecated since 12
 * @useinstead {@link OH_AVPlayerOnInfoCallback} {@link OH_AVPlayerOnErrorCallback}
 */
typedef struct AVPlayerCallback {
    OH_AVPlayerOnInfo onInfo;
    OH_AVPlayerOnError onError;
} AVPlayerCallback;

/**
 * @brief Called when the maximum audio amplitude is calculated.
 * 
 * @param player Pointer to an OH_AVPlayer instance.
 * @param amplitudes The pointer to the maximum audio level values array.
 * Note: the amplitudes array will be released after callback automatically.
 * If necessary, user need copy the data for the further use.
 * @param size Size of the maximum audio amplitude array.
 * @param userData Pointer to user specific data.
 * @since 23
 */
typedef void (*OH_AVPlayerOn)(OH_AVPlayer *player, double *amplitudes, uint32_t size,
    void *userData);

/**
 * @brief Called for obtaining SEI messages. This function is used to subscribe to SEI message events and returns
 * detailed SEI information.
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @param message SEI message array.
 * Note: the message array will be released after callback automatically.
 * If necessary, user need copy the data for the further use.
 * @param playbackPosition Playback position.
 * @param userData Pointer to user specific data
 * @since 23
 */
typedef void (*OH_AVPlayerOnSeiMessageReceivedCallback)(OH_AVPlayer *player, OH_AVSeiMessageArray *message,
    int32_t playbackPosition, void *userData);

/** 
 * @brief Describes the handle used to obtain the decoded audio PCM data. 
 * @param player Pointer to an OH_AVPlayer instance 
 * @param pcmBuffer Decoded PCM audio data. The pcmBuffer is valid only within this callback, 
 *     and released by the player after the callback returns. 
 * @param userData Pointer to user specific data 
 * @since 26.0.0 
 */ 
typedef void (*OH_AVPlayerPCMOutputCallback)(OH_AVPlayer *player, OH_AVBuffer *pcmBuffer, void *userData);

/**
 * @brief This callback provides a PCM buffer for processing.
 * @param player Pointer to an OH_AVPlayer instance
 * @param pcmBuffer Decoded PCM audio data.
 * @param userData Pointer to user specific data
 * @since 26.0.0
 */
typedef void (*OH_AVPlayerPCMProcessorCallback)(OH_AVPlayer *player, OH_AVBuffer *pcmBuffer, void *userData);

/**
 * @brief Pointer to the key for obtaining the preparation duration in the statistic metric information. Thea value type
 * is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* j;

/**
 * @brief Pointer to the key for obtaining the resource connection duration in the statistic metric information. The
 * ]value type is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* 0;

/**
 * @brief Pointer to the key for obtaining the first-frame decapsulation duration in the statistic metric information.
 c* The value type is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* *";

/**
 * @brief Pointer to the key for obtaining the total playback duration in the statistic metric information. The value
 *X type is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* P;

/**
 * @brief Pointer to the key for obtaining the total number of media resource loading requests in the statistic metric
 S* information. The value type is uint32_t.
 * 
 * @since 23
 */
extern const char* 	;

/**
 * @brief Pointer to the key for obtaining the total media resource loading duration in the statistic metric
 * informatfion. The value type is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* TIME;

/**
 * @brief Pointer to the key for obtaining the total size of loaded media resources in the statistic metric informatLion.
 *  The value type is int64_t.
 * 
 * @since 23
 */
extern const char* ;

/**
 * @brief Pointer to the key for obtaining the total number of stalling times in the statistic metric information. The
 B* value type is uint32_t.
 * 
 * @since 23
 */
extern const char* ;

/**
 * @brief Pointer to the key for obtaining the total stalling duration in the statistic metric information. The value
 *X type is uint32_t, and the unit is millisecond.
 * 
 * @since 23
 */
extern const char* P';

/**
 * Playback info key for server ip address.
 * @since 23
 */
extern const char* OH_PLAYER_SERVER_IP_ADDRESS;

/**
 * Playback info key for downloading state.
 * @since 23
 */
extern const char* OH_PLAYER_IS_DOWNLOADING;

/**
 * Playback info key for buffer duration.
 * @since 23
 */
extern const char* OH_PLAYER_BUFFER_DURATION;

/**
 * Playback info key for download rate.
 * @since 23
 */
extern const char* OH_PLAYER_DOWNLOAD_RATE;

/**
 * Playback info key for average download rate.
 * @since 23
 */
extern const char* \;

#ifdef __cplusplus
}
#endif
#endif // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVPLAYER_BASH_H
\$x4"ݑL/*
 * Copyright (c) 2024   QoS
 * @{
 *
 * @brief QoS provides APIs.
 *
 * @since 12
 */
/**
 * @file qos.h
 *
 * @brief Declares the QoS interfaces in C.
 *
 * Quality-of-service (QoS) refers to the priority scheduling attribute of tasks
 * in OpenHarmony. Developers can use QoS to categorize tasks to be executed to
 * indicate the degree of their relevance to user interactions, the system can
 * schedule the time and running order of tasks according to the QoS set by the tasks.
 *
 * @library libqos.so
 * @kit KernelEnhanceKit
c * @syscap SystemCapability.Resourceschedule.QoS.Core
 * @since 12
 */
#ifndef QOS_H

#define QOS_Hv*QoS levels.
 *DQoS_Level {qCMeans the QoS level is background.
     */
    QOS_BACKGROUND = 0,
q9Means the QoS level is utility.
     */
    QOS_UTILITY,
q9Means the QoS level is default.
     */
    QOS_DEFAULT,
qGMeans the QoS level is user-initiated.
     */
    QOS_USER_INITIATED,
qGMeans the QoS level is user-request.
     */
    QOS_DEADLINE_REQUEST,
qMeans the QoS level is user-interactive.
     */
    QOS_USER_INTERACTIVE
} QoS_Level;

/**
 * @brief Sets the QoS level for the calling thread.
 *
 * @param level Sets the QoS level. For details, see {@link QoS_Level}.
 * @return **0** is returned if the operation is successful; **-1** is returned if level is out of range or internal
 *     error failed.
 * @see QoS_Level
 * @s3ince 12
 */
int OH_QoS_SetThreadQoS(QoS_Level level`Encels the QoS level of the calling thread.
 *
 * @return **0** is returned if the operation is successful; **-1** is returned if level is out of range or internal
 *     error failed.
 * @see QoS_Level
 * @since 12
 */
int OH_QoS_ResetThreadQoS();

/**
 * @brief Obtains the QoS level of the calling thread.
 *
 * @param level QoS level of the calling thread. The parameter is an output parameter and is written to this variable
 *     in {@link QoS_Level} format.
 * @return **0** is returned if the operation is successful; **-1** is returned if level is out of range or internal
 *     error failed.
 * @see QoS_Level
 * @since 12
 */
int OH_QoS_GetThreadQoS(QoS_Level *level);

/**
 * @brief Session id
 *
 * @since 20
 */
typedef unsigned int OH_QoS_GewuSession;

#define OH_QOS_GEWU_INVALID_SESSION_ID (static_cast<OH_QoS_GewuSession>(0xffffffffU))
/**
 * @brief Request id
 *
 * @since 20
 */
typedef unsigned int OH_QoS_GewuRequest;

#define OH_QOS_GEWU_INVALID_REQUEST_ID (static_cast<OH_QoS_GewuRequest>(0xffffffffU))4Gewu error codes.
 *
 * @since 20
 */
typedef enum {qQMeans the result is OK
     *
     * @since 20
     */
    OH_QOS_GEWU_OK     = 0pJNo permission
     *
     * @since 20
     */
    OH_QOS_GEWU_NOPERM = 201pFNo memory
     *
     * @since 20
     */
    OH_QOS_GEWU_NOMEM  = 203pJInvalid input
     *
     * @since 20
     */
    OH_QOS_GEWU_INVAL  = 401pKAlready exists
     *
     * @since 20
     */
    OH_QOS_GEWU_EXIST  = 501pFNo entity
     *
     * @since 20
     */
    OH_QOS_GEWU_NOENT  = 502pUSubsystem does not exist
     *
     * @since 20
     */
    OH_QOS_GEWU_NOSYS  = 801pdAll other faults
     *
     * @since 20
     */
    OH_QOS_GEWU_FAULT  = 901
} OH_QoS_GewuErrorCodeP*return results of the **OH_QoS_GewuCreateSession()** API.
 * If the operation is successful,
 * the created session is returned. If the operation fails, the corresponding error code is returned.
 * @param session The created session id
 * @param error Error code of CreateSession
 *              - OH_QOS_GEWU_OK will be returned if the session is created successfully.
 *              - OH_QOS_GEWU_NOMEM will be returned if the system does not have sufficient memory to
 *                create the sessionS.
 *
 * @since 20
 */
typedef struct {
    /** 
     * @brief Handle of the sessionb20
     */
    OH_QoS_GewuSession session;
    /** 
     * @brief Error code of creating a sessionE20
     */
    OH_QoS_GewuErrorCode error;
} OH_QoS_GewuCreateSessionM!return result of the **OH_QoS_GewuSubmitRequest()** API.
 * If the operation is successful, a handle of the request is returned.
 * If the operation fails, the corresponding error code is returned.
 * @param request The created request id
 * @param error Error code of request submission.
 *              - OH_QOS_GEWU_OK will be returned if the request is submitted successfully.
 *              - OH_QOS_GEWU_NOMEM will be returned if the system does not have sufficient memory to
 *                submit the request.
 *
 * @since 20
 */
typedef struct {
    /** 
     * @brief Handle of the request
     * @since 20
     */
    OH_QoS_GewuRequest request;qError code of submitting a Gewu request
     * @since 20
     */
    OH_QoS_GewuErrorCode error;
} OH_QoS_GewuSubmitRequestResuQ!Callback to receive response of the request.
 *
 * @param context User context handle specified when the request is submitted.
 * @param reponse The json string of the response, including the following parameters:
 *        - message: A message that contains the following fields.
 *            - role: string. Must be "assistant".
 *            - content: string. The message generated by the model in response to user messages.
 *        - finish_reason: string or null. The reason the inference stopped. Possible values:
 *            - null: Not finished yet, only present in streaming mode.
 *            - "stop": The model stopped natually.
 *            - "abort": The inference request was aborted.
 *            - "length": The generated tokens reached the limit.
 *
 * @since 20NQoS_GewuOnResponse)(void* context, const char* response);

/**
 * @brief Creates a Gewu session. The lifecycle of the session object starts when the **CreateSession** function
 * returns and ends when **DestroySession** is called.
 *
 * `const char* attributes`: JSON string of the session attributes, which
 * supports the following fields:
 *     - **model**: String. Path to model directory for the session.
 *
 * An example of json string of session attributes:
 * @code{.json}
 * {
 *     "model": "/data/storage/el2/base/files/qwen2/"
 * }
 * @endcode
 *
 * @param attributes JSON string of session attributes.
 * @return Result of creating a session.
 * @since 20
 */
OH_QoS_GewuCreateSessionResult OH_QoS_GewuCreateSession(const char* attributes);

/**
 * @brief Destroys a Gewu session.
 * You are advised to wait until all requests are completed or aborted before calling
 * this API. If there are ongoing requests when this API is called, the requests will be aborted,
 * and no further response will be recevied.
 * Note that after this API is called, the session object can no longer be used.
 *
 * @param session Handle of the session to destroy.
 *
 * @return Error code.
 *     <ul>
 *         <li>{@link OH_QOS_GEWU_OK} The session is destroyed successfully.</li>
 *         <li>{@link OH_QOS_GEWU_NOENT} The session is not found. </li>
 *     </ul>
 *
 * @since 20
 */
OH_QoS_GewuErrorCode OH_QoS_GewuDestroySession(OH_QoS_GewuSession session);

/**
 * @brief Abort the specified request.
 * After this function is successfully called, the client will not receive any
 * response to the request, and the request handle cannot be used.
 *
 * @param session Handle of the session to which the request is submitted.
 * @param request Handle of the request.
 * @return Error code.
 *     <ul>
 *         <li>{@link OH_QOS_GEWU_OK} The request is aborted successfully.</li>
 *         <li>{@link OH_QOS_GEWU_NOENT} The request is not found. </li>
 *     </ul>
 *
 * @since 20
 */
OH_QoS_GewuErrorCode OH_QoS_GewuAbortRequest(OH_QoS_GewuSession session, OH_QoS_GewuRequest request);

/**
 * @brief Submits a request.
 * @code{.json} {
 *      "messages": [
 *          {
 *              "role": "developer",
 *              "content": "Your are a helpful assistant."
 *          },
 *          {
 *              "role": "user",
 *              "content": "What is OpenHarmony"
 *          }
 *      ],
 *      "stream": true
 * }
 * @endcode
 * @param session Session to which the request is submitted.
 * @param request JSON string of the request.
 * @param callback Callback for receiving the response.
 * @param context Pointer to the user context to be passed to the callback.
 * @return Result code.
 * - OH_QOS_GEWU_OK: The request is successfully submitted.
 * - OH_QOS_GEWU_NOMEM: The request fails to be submitted due to insufficient memory.
 *
 * @since 20
 */
OH_QoS_GewuSubmitRequestResult OH_QoS_GewuSubmitRequest(OH_QoS_GewuSession session,
    const char* request, OH_QoS_GewuOnResponse callback, void* context);
#ifdef _/_cplusplus
};
#endif
#endif // QOS_H

/** @} */x, N"P	F# Q23O
];x;&7)M 
_x;7&O;-<Hdq&X oNxTN@1.d!<gbbbt_P#(@3RR$/wƍ1)PlwG;?oNpZ)eSGkEM(V,]"rhX^JeY@K*`zܠ%T@ّ"_$Bh\(drJ¢rhX:v
$~Ux^/zPb^1Tw;:1琇<nT~N!nȟ64|05lٶA̠hbi+[>Pս|Ul=ĴzIPkD:	y1 h</riDByZIO%-8r~$%"ZSH]I>.{@g<~&w<	GWlL+2on&mi6ƥI,./IsvZYwb[xy'͟'byLV g?
zxBN<&psnųuv'(LWܦlNwU7QcAXqA6dm۴M1His;'/S|>oszl1dd97&7LЛǲYn#Ew~0W}3Lt7/Ә|A\mB?+N{o		"7l YW, 7RzxYMlk61``RS3S\U=EY(c1H9)R-K6he+Err69WU==]ӓ	ޫ_5?A[EԶ:#o8j:#8N/]*N re/5HqܼAgnfLz15qt;^%r*esLۧax7
A|0@.<
ё~i7j57c1.'kؕg	wbٌ`yQ	:!2RX_|/Y~&W 51k_0&}:.jfk)> 
Qr&ގ,Ƿ7 ,j2D.Ka!^{K L^!eO@CܪMޖ?W.YVVWtɣOW5 Ϊmߜʽ6w#in]2F|lWUgׄS'}x8Tn
/^ykVsOfq]o˟nG%lLɱ*x8@Ӌa5IK&Y37Sl=*Yӷ_"q9`"Ƒ|%刢`e`.9E."et|SQ!E>n:vѝxA#FQR-}uu¤:DCkK
Ls*iPa(LFXn!ǔ0NY)pAl=RCvpgjڠ3eEI=vȅo^8ra灋l?On+2Q\FN1iuN&T;K%d"<oq}&kkBx>9-uжfpv,
DLbmAFy#,3@A#Sq!	0Cڨz!T7N ' <uk^"
ݢpTw4rxR&h=amJ^t9P!1)	Tʙ䀤Qjϥ\ɊR̘\]%8dJNGI}6y䅮;G,"ĿjD=ʸ:1WJȂ|N"vRݜsP!˰܆*nbJ%]
ŝo
>#lȰAGB,/sdq_xabII	|"Gc.QHRIx.iĶTp,@ 98U&ԙRWo"kӉWvGFGmLӂ/82+^.{ԓYĂ]d(Ɲ6<-RHt`uee4qdy=;#"}PnJUԀ\0$NZw !,@J}p
\OũQIKR♜@b1@Խ^ءgQ8MkL
b0%8(ƶ=[w;|~DK2{<z)H|43,x6U!Ưhruvߥ|MiPEN|;ycKKɆI#jw55gdї gK+yizHo"6=TH݂Igj*CpVN|7jCKX	%3gJaNqW4<"[O7^u@f݃AﳒX7$EmnaRFA|Ǌ,[>e0!{ɇ|⽻`{.`lȣ\]O}6MAWho`vn4EK~wE$:3XW00h5	ӗf߽Vdt]7Ԋ/NvO6LBZqƜ7zōj݌Mip)0KK2tJkq2#+s3B4NUPbY܃xxRj'ċre:{@1?꤇qtӠ3k"}3?wTɠ;ׅ8adY<WR#c~iN(  s?{fپk˷Xߎ!0j	_O"ߗGgx.N{zKgߝC֚e5d|GYv$FieEϽ|jQߞʘ-n
N5Z-ss3O8k_Tϊr)_"zrkBѲS	4QT:Q),$R"C;"eu-4X>THZ- 7K o[3f!0Zة(
7vwn!d_Tyb<Syώ xo@ǅ*.BC6JUUbqHRN(Be'%w}C'$Nl0P	1#/* pNq	wK-9Q	]DQ6`[+cw,E8_gهxD\cjJPtYi?4)
Qhg95_٧gǔ(Oqgښ$zc&lj.f4˾=K Kolg.p!5a7kWVNB.[^)>4dߏZ	ZJ0ǭǨG-$klxOK,b,I
9zMxʊ'ȁ!EM`^K{'Lm}C75a(RmQm^P*hLRWk5S(UVJLL	u(5UkT783I殲cIX3bRR315^,},Ѧw<B#>eslWfQ:ѡh QDavԒhj`~%`XA{Lǜ,GQk /HjA}mu۰hDZ@ߐoNzNxuuB4k
Ʉ)c/G&ߍѭC:077h>tnUxZ͏G!!'{{?̎@Hvڙ݆X{#!%_B@JRDrȁ"_9!b\UUwOի^WWjhh|3-ңi4ymqB_?GG;a}Ξ?yQ?9U_{I
X̟LaS|xs(;$P_7"	I|%Ov5G9r&.RsÉuMa$${4:f*]uSʢξIc	P&>͌p9Oh	vӍ4mHϷ>ߝ%GdАn};~N~~]2\z4ۓwލ˽R$m>5Rt=}y*?kwG/KtF_A	u§w}c,aj͸)b1TB;,v:X)]Ke )9㌋j&KR-wAN:ЎU*^ x$j hRfrV!:{t F5G8B	c,cv$r)'x3͜CfneQ1Xl-9kog !WۄFd &A`8hUʤL0̬;͛Eqb+˅,-o^XmXeS94
C<roAű%vcRC,1s(F~-@Wj>JH 눊i(X'BB#72P Fxb!ضI~*kNd0BY:tI2tI<VqsH2*7,MǡRČ\*b.	R@OW`{|藫KHFy}U&u#4?T(߿6DEsEm88:RF4ntt**h8)3%Lr-ʔk%SܗîTQ\V"4\Й
)I\|ܼr="8	_J#b$E͹FsXS ns.!PErqaV sAl$(L~O֡MЗEEJ׌P!q/?a3b>X5Uv)֦P m3kV.-uKpt'ދl	G-ƈ;7#M<KYUz'N~$HóyqȸKI.&: CT9r|ֹ	}ب~@u	K6ƝњGW<D}r+1/ANe&|aN 1De%NDCt#71xYn(?lg<a}H+tT6_)RK}3M޻' J*L;;k;ɢ?R"f"? .5z'`&|n53quf-v(oL'L?`u51]­K{?l.V't$Bop{ACkPв63GW#GGX )Plrx ǢuZ4hpOVI77^L"4B귖wwi'y/FI.FX6EW7SrR"oŵ=Kh>X,O8iC7ՊlSٓW%Z;fH <dkfҎIؽwg~8EFEߞO3f?
e)"]Rfk\wϣN]ua3\r=3ot:A*[6
;mo^G }-j4>ou&Xq5Hb'ϬG1/@7,:
$-=i(ι$<FK{rvsZ`"'6$)?8ßP{>+m?A3QoQ݉WTu ZJI^,Ȇ"|go**юHmoC ~aFYx3V#bX>r/)zet$%H|oW~| k1@swu R,C~ڥY9QѲjPbxn>/&Rxߎ7ڞ#$0NT"WܚyNbpkW$ٞWO~՝v|Dwl҃9
a@ߞqwUE3%W	ǁpGbdl'u%˼3\u,8?eH8x[;>}?b NlVx[L\ & nmx[>}  7	x;JlU\]BB\=\\C&+xlnf\49 srTp%\B@47POc| Hm*gXfJjSbqסq,`F`X,XT\Rĥ \\ l60x
6ح Rm:x[{Rp3W, @y x|qIV%y%%y%ΉEU/zMn2 oP1,pɀ$1&/H !Im\x|	)\\ )x;kB*mN7{r  d]	1x;ywM0eٜn  w	nTx;k"͞  :nx$ x"D5g6eJ>pu-xOAǃDh"`ڊ XZG#e" v%&N3UJB11ᅃ'/z'F?c.rL[hٝv3X@gv3hĠIϦ"x|#eIE-	{t/I-?C^'QJ8IRZvAi$1N_6qgs*B3PKQ%L֦mQOnz6	`V=uFq^8!Z^[	q3z*AU
V0BI.MIcXؐō(b<p1 {6	Us(	%cwǌR4 S2EBċ$!bug.I*}=</F()d{+~׌"u'VZ +^l]u	sºN/"g^{8* Qᑖ[ˊF>zm"*s\kN++2N@+3nqBz	C-(l}ÙgYRsmg:J%܄N*=55錋5t]LU+>3]0O]Dp	_+DA	 y%ӪoMx>+epPsY:L+bsz
R6V5]C۩MlN2_|nU##a@-ZfrJJUl0iLk{߄sVkN\)FI1;Y3xXoڛN,َ#E	u:qOcjfȵZ,$W]AzˡhC)ɱK=o3KrGy1oOYZY|㭥[?Ϭ^DMlpP !	QvZx0K-!vLK
2y{8,B黥[0eYrcܗ6co-BTK^ܚ 7E*wyh	"\Dl#F؊Ȓ/Z`h=5%ɌIz;6#EEkЖ J<'R{'9xO+BIDĵN	,CG"kA8ܼ6ON͟ll>J&ìkFykS쳝wadͮIpĻvzsRuS=p{PjK!ewgA42WnDs!6쨫g~8@] |ަ^xeooO@մeMÔ0((J%	B3d	3,jBs4}D1,<?rq2	9a퀝XM>ńyAdfb/; &35|XrH\ȅ U#iy/a{|wV!}MCƄ3meՎU JC@"Η"/YTUJ̦~̥sax/\cSeWӰ(q dXcc"˚-fV@AcGح(@ A9#z8aFQ`hVU*6i<1CvpBסȵBn:11s"/J b7c}V`W
l PSq.xzmF=*. leÐO<0տ^i^\9˳J:|zTZ-b?,Ȭ|UTȊ+Ɏ PH7aPbn0WW0ݕ&Y{eU,{_id*q"e^Պjdj~({5ޕ|Fؐc\HF\lAT=^mJ,^<ŢBP <}<ɔ8>Wqe0VkB\܌5e˴LJZUt% >.5z/EM'~"r^.
9(w6jȐJvA JlYPURYX	 ;DZ҅1X>+f1_J/ۛ p0pDhuBLr~}1JC0&A|4\@=ؙ(ʉ8JJg@rIјg:~u{]/B.}	C0Jժo|߷7$Zz/,A竍aMP8t6X#¦>	Oj]ņ~Чŭ	}ů^(AB%>ۑw+9>H?NNǇiv$D|b=izxb`VPcpL~LgR!lӞ$l	^򘟞O9z8V~Q⣏5N#~͎*ʃZz.{<1rhN9rǕ3[u$:=>D2dv/ߣ{hb'GG}|z45_#Az<Lgo<dݟfiWڇRxftZ1뵬+ra?IqWafMB=::(jݨH{0~P(-':{7(|pT29;>455WMAb0cJ\tZ1.Od&$֕k<I'qpS_-'^| x;+L7?R
 ]	x{yC3&x0٠}sF| "x1&7*N0g= w
}l!x;L\ '.7x;G_O6x0/So MAYx;]o&_әAqNUz#>bͧ:32q l#}xXOo"7\'dǖv:eNܓX$rDW])CKz7!P5_o3K
 a%{ޛ^NESwoOGMlpg/^k! BQv-v woЅPGv;&?K2Y8,Be[0eYrgs6co-BU|;;^*Y/RkCKLHF;Hnm0ۏ ZzHVOcZo.20m=tÀQĻx?\jB@/˽Eg $8Z"ď$-+ĵX{D|҂p"ymiClN?|ɧ˿me_oV+E٦twL7nِ68@LL[7˫Ж<ó91|$T'ߧ2n^[݇.֞eqDs;mΣ	-ܞñEz:W;sPɋAm^~}Ǘ TR7-i|JA;;ixVV\2'dHꗒ7%`SL?Eϧ?>qD|~äy@c7P!aV9C>Tɹ"&8`0y!ȌpAwE0rNb*?ŀpCPj6,/5e!L^c:\eN	VK'd0ɲiOpn
D{I|HHY:0*r:jW"ȳ
	0DS<[M){!x`&njox]OÂq kǄE헴[<Z)B 6]a~$dFf<p, MfC~_@VvouJ$bOi=Lu(rЫ;NYR9Șgb3=΅6^<s@ϧJH.X*(S0O*,0ryuV!80:u"CςWXi0$
v#2,*gSuuӝij7Ȃ(C|Q@wi`Fv
a`يoTjj#Pj+ڝ.!z-!P68߂z{"*ū
AesBwT+"Cq|"pirR\܎bj0)*kiTDqiK@R?.4z/$/'~E[Kdr^.
9(6jʐ*z tYPUyXW
 ;Dze^8b?zqVm%/]p X8"4䚲Q:%yo(/XH*)ɣ4/hiHtSrZ'NaB"S@D<1Ӄ_̈1Tv qX
l'QhT;-oeK2{XZ#,wu6
MjnEtI-wB|z1_tI^|慅!t[hP{BsrOpȶ߆AYM'vr|:8L3϶RN&I/|+rE˿ۑͺK㣣xI2̾5}Pom?yvؽGg9bWHt|0QD*d}lڵwQJd8Lpb?_GFtLemXGy݌+ƽ7QG^cπA3C/yƬ* |W8yl5QL/)&Wiq<Z5W>h<(}0x-|?m3ƣCC87}>J̎+ss2fP۽X+O'M&㩌tR?\CQ:'jzKpOx|󆣯'<T}Ό$V旖gd8%Ng0kYS*'}TR ZX .(<7x[xqړX*L䂲5dfV e |NxkAǉK$ըZ<'Z4PmA:}&C֝uvm֣Ы@wWГ7wvel6|}/NF'HNMRz9U!p9qfA߅]5"zGON$K	X;#zH)/]ʡ!ٙO%aԀ$&gZSSKQ!A6$s!^ץ15sfӃ١˟So4%y?+k8u&p=3ɿz5Z$D8*G!
Xĕ]f QS _/g~Tu5 +k2VxAxהBmjpINq9.?MkB\W	LŹE$Ћ~/o#j}413/AqœEuxGc>=^t9^s`^,{aHtD@k1d[XiBi\>RÎ=,KeeX6Go&}=jW 0<"Vf;/dSfĽE<;U[d.+o$poӚk
.W0z&Ԥo{ˆ8{=Zlx{~7L\ (t5x7N^HqA;{@bIFSdny%E%)nE*aw*MKK-RR ZX +$mx|wU/|z'oML\ @*xWoEWv;IT;m8ŏԉ'A!w;uwF!.4wZPĹ#ofwqҜ7|ߌϷ3O|8ܚi\atay\&=Md%Y>Z|D2Ӕ([UiOKLD;9vr-:&ޟ'wCzNHxշUW_uw'^Lt5&z,=ZTU nv)"D=ƦNʱkd[H̺lrQ-r\0i1I/4DnW0#@tRuavX3?tzhݹvd]#/riJ73p5my3-8J&
+d]b{%rIԠa>doi$wIWfpǇizi&%Z@0WuM{lOYJ(XVU)Ԝ^dɄ,F}gtk&
܄'*[~Π5hlG2&hAtUȥsX:8۬pMۀc=3#_(6Gq#/˧Gip<5Flf=YP!bY&%S*Mv;CldMkV#kr#rR!Hr6TGs#Br
n6d[zK#|pZ~Aqcbj*>vuv603vLn:֚CeE(3>Pcd0PُX<xu,ޥIr~ m߲γzB +ui:~XQr:()vt^lrN|_	%ٚp s*A,S 5%@X  D&U0PWs|C*oFp<iɜm\|	.$OYANJ{)$2?&{/I0<$6B鋟H}%%WLx!Ō(%!٣(K`2ZDHOEw'9aY%OQbRhQ19Ɣd9T5LI"H^Id~MYcӱ
״
 ŋN%:@T82\0)Į
W,vXHtGӓ.SfR9He]SfEd!llzTw==D H<kvMsyqiP￨gN+(<2ك¨
!FDtAߴ4Y6T:FX]e 垦s8#=%#";Qb:q׏epCxFXH G[']͇9ޣw'@yx߿ȋ|)5ϡ7D=>0w*k}A"/<A^~u-	]x
 }P2M<SK,vh>K`/CxEwد$=;7&p:#x.8|'>bcexXOoFEBI Pzc{Ir	+%fCC%*PU|8TjoR?@/=OPތgސ&7o/蝫>K91{fhMi`7ҍ:HHn&]c{&א809]BCl}HI1l(cVB'pAX(NiG1:QglUgpm=\d*3[傱X`#<yduPI.]N	J^?YQ$q;6
V"	B].QW0>:5pr&Yb$ 6{IͺӮLCk{{jU2fbs:1)c5Q:CM8-V8)adp B8_c(Sĉ:t
у8CF>O*Cۘ<?VyRq=90`eq&riQ`Ky844"1%3|< m$&& 02CKAnR)+FlQai#xԡǚr#32]1af,1DYIHr.OAt4.2B$cxǌ5=aM}LjM
B^,D~b&+@HX<Al 1qh [+!
'P%2@PΨi9s߫LpiK`y?~S֬JoVAƓ>mJLEeaIiA2-Ќ{*zT 	芳}Xmk`fRTpMy+ktbyEr)fLd..P
*ݠS~׸M:m@fNSTA(41>ŢP$2+uN񭊱A۞K%	DV)[ub2,zAU+Z)TaR%QjJ.ι>ÚPHbax\`rW<xn1\] xfpSz:;+Xs"e,]3{LK	(T
,@sqPox'ĩ#Qiڿ@fU
C6;^q2|YKbȐL~vARhYPĊu)XM	!3D?-]W1(̂rS}c6=pq}J5aւo%(fH{:I%b#FfG'I`n ,=7TʧB`ҐQ!Ea -+'N<b:l-63`}4Iv].ba^J>ߨ^uK(ymց:	{*a+^Uw;LN.bxjFx?дehH`hz hWce̎^0HoZӦL I^$mdJe&8ĉV{fwvÔr'e&:3X$ɟh
Ш'?//W$Qް;ݭcɋ+yَۏoEJMoX@FjoTnsT	ºU Diki}*t4Qo+*ZRaWF?oϭLpaIl<zJew;Y-IZDJ,2Ji`}|bƽx0WԗSo &]x;zye/'ԫMnx0/L@~qfIf~c^cZZf^fIr <1x3 K2-2$bN#e*@&0m	
]L0]x;zynk/o򒓉+ RK{x;z^&N S	X<xXOoFEBI Pzc{Ir	+%fCC%*PܪJ>s{GފP?@/=o7{7~?oۛ/*޻zQ`l61pvC8N^/ݨ#!Afr܅=[k|%iθ=F-xΑ2i/p%bp_T q#u&ih]]}pfp@B?NP.6ΓK_gEߵP 5k5oO
c`( ucа\s'-g-fOphśZ':e5P)3c@XiW&͍CkڝQ%jʼ\䧜$_鸟'51O4X!HM)lD@%S	ǱHa"N\'G>%D@'9 =<d;긍Iiu
.׳Q[Nf6|g2,K	faMLC 2S813NІMbjRZ#'3&Eb;":GI`.7B88,fF(ʢ@ā/DIO#
"q.:M2*7|̸]Ǻʴt0.BO.^kfO)Tf.UpU"0:GN7eͪf*:n<&Cv0	Td]6PN9T!s1͸2I 8Z܇f&%M,ДH'`[.W$bD\R/WwdVMXJ0
N#S,:
oM*jqRߪ>ͱYATkBzz\/P)*âT⫕B/UEDB3jN)El6!+!wgA7.q<]2i5,!^e1ǴtrK0B4'p2N;2[
dV9<nCA'\ͷ*dgP.U)EX
Ht`2AܵI|,x!Gq8;շn.gTQf-Nb_qD]"6b<ptp*º{Kũ|*&qXFnLro k	٢ol1'4j7"$05[W2`m7܎ܦj jW;%|KTlN<0~׉V0lC3ڋte^Oho6~;l}$<]Ajl!;kڔi;5랤-L)l=՞<ykڍHhkhfwo'>LɯN|Vfn?sEB
n zqrAR|z?kM[q>F;n8"W*xNTTل鶠dDJ>OЩ9K )Q yAfIi69~@G82%Ձ
;pns9Yd'vG@˭T\~ǠR-ъ;UJ$~?-{R }fy@W+h܋nej~M}=?ORaxXNGҊl6VITPklxw0[ֻlE]`o^&yIggw3s~wuaފWןOE0GX^^%rC|:[4ھU*кĜ߹{ΘG?=**piQ4Bn;D%P4>paг"طC .ig4j<#}?lġ5vՁnk}fƏNj :V׳UC{moh@	(GAb!
밽'4=h&Q{'ֈuJNثG} VT<GVx~YԢ5i=N?Ắ`DԺH\bj#ʬrPsܹ[5=b@W7gCrյռuXi݄hoH :~6u!L-2qJ_z&8k_5p>K+J&^46 Ͳ8#G{FhYux6+s|6txW72mLrk\̳j)R6^H@t9=MjxC;˸U7 AcBpSa-)ѹ5v3s#s;72s|F=c3[IQrԙ<MhpX^8dT/zp#@sߺXj3*_mIhOqHWn|rK~z\uZ, ϓ_ ʯ*1r!6]ĥ@zA{~
@].h_V 1j&ޡ+A5	s抳3iL\Ɋ{.@4o$k+E庿ȳ^% W{b
X8,j%~	݉T!V`U&8I\
!#5?S6(!bB1TH+C"XJP#Oe9*nB(`
JVLIV-88k>HHCiJpuMF$)7ڑ'7td 9PˆrrH+3k~Z ^iEXXt_|+^7`3\O,lډoˆ\@C>?6t,<Gg'>}\d^PJ6׎7VMCZcdV.Hy#	 K1A"f"	txs]2cWaNź^໡~zW͉Z}ʃkMt˚@ǣWMI71eQ)EEFT-r{-hSVGgq4m̡Nu]d~%jn/#Bc=@b}mjYf/31*
2|XKvlsl(g݌O"hq*UOO9tkJy]yCc+MDMGS#J͖h] om!~@\_Qo\xk]\h&M :!nvxk=\a	
6;IO>$ɸ 
`xk}\!{[x F:x[͏G]·"ᵧ$iQ@Ԍ+=鏉WE"h$8P.p@ opB;HWUWޫW^?s[}qrsPU^rswՄ{;;\a\';8 ϾV/љN5m
-iBmrbtLAQp?']xoA{(.)(/ѣR*'DBORK}뽪~*58K4WS t@՟ߘ 0jR\62UĎ,=9T˪&jo݇hpڦrⲪ?پ&ē4ʗ7sM~\hFEl@A}i}*9*1n"`oŸ<:cpY5'\	S&S"o:#GE4b/أU/[Q k6tx<5[٘X^ځb#U1{dlq"bדPe%D76V4/@+X$)Л5eʟ,'-~ID?cCEw3S9Xy2r̉o0FtCc\	-!?dԏK_@%F VҢIz[MAqIC@ S 
Jտf,dݬ2&mu'2\Raug}P8E7e^ I}G*8M^+fRYZ%A>otǚR6_fJ;I<e;FK:&
%J
ox C✤,#n/e~aL)QgZtm4aa_aQ:լƘ=^Z1a@aLV!KGY??Q⭭C**UF!{lM- pAv}2xq7v{D;Ay	 Zk$f/T@l 5õE4q3L%l/	r +[@#FDQq,;)zN !n
/w&Y~dd\		osC+Ū>C=?ďPB.dw~',<{ ;̦l{gTO0d1b/Rl|H|)8{(6Im,{d&"B)W;_qٶ !d"b#f3$ꑙvDVW|Y5lakCkNNHo<bƪQ@,
;ԛSa|m$yg{`Ɵ&]f 3#QҐp3L)YdFbX8- 9ؖgB6^`u/8Rvӡth7:Ctd7YMGvӑj:Tӫ
;~HXu	{*c5`+'rˉr,'A5/xb߳PUl2|eLzh*:F4&SMJ;uHr$8?r*?2beu>4S!Hf/E.	&Y\7[2J,!1NϏ;uoBq^|>l1-#sF1r0nKVhӻRqZEаϓb2X#|.cJP*C!$7''}t5N<~rz0chyT)3{"`Ƀ8?4T;m(]D(mԈ|5"d&eJt9Xg
h_@!6WDmLfVq(%VFMLby=t5{U6' :!c=LBUY6%IHm$4x	}FBO#ndu짰jXa-\1"://zaa#a#*a+a:~Atފg~Qf"U9@bņ
|.o.Dv3r51;,:i7$e^˄^&1Ò
T"?N^B?y-\µ^]=nN3gxYT\9X 
.yt`L1{D':=*7zU5o1t V)8/{i]t;]Vȴ+)ьkXroPǷ/{d-,;!1/Y$w`n|#.?ђ,e :0l7`pG#8ay؜4CrBlDcRs3R.ޢUEf37w&;7Cu݌MZ*zI:~j{w- t&fHAhF{xEȵCW9ՂjZR-WL~>zXK[0×Dpo[ b^˫.|Ũ4'*BFjs}o##?jFm5#!ph8Ϫr' aÒU:ѨնbrwpIsZH-2G%u`^ҍ`5.s"	yR|.GU$b+}/FGe	eسTA:T&$ƭ?Rq.rOJxZwf5
%8nn\9U	9xU%'MTZՆ3?WA~킶j~vAvAvAv__EЯ]آ]آ]ئ].j.j.khhn$b[љ%᙭YኧWOjY&z939Fsg>3ty~k Ӿ7W&ެxMv|}?S2N+7&mnɢuC D Mړn'+&_S
\GwzG*:Ǵݭ2*3GJ*?qBgv\bM4;FlP:e֩=(|Lx*S{^Ӷ!^"8h>*n&LVMi~/ȬY4:ǔLCh|DItۂ,iQcj,l'@~4+ei̢gyz\RmS32d%Vf[stm˶#7I
Nf*h,-,d\G.H'(>p=,s
jHW+DxXMo5V(HM&Ͷ_¡&\c	*ή71;qJVPTʱ*8 !$T\)9L	`{O\y~g}r>ckonmlTr VuI=SQe_Lݸ7HD$hg3ZhA~l|tp⭲bC(	b/d\oz¦xgF3<='bHHÂJśp>(F~ʩi۹#}z.|?hּ{>Պ}d{l`Íjw%XJwC+ems)7Pn2UA_j3M(x& rP&iO=`=*PUʤr#[.fuJ:5F zM鋇qK9)05M||"Fڶ{c99AyNt2괗0lXZ#1Pl"KrۯO8yǀ
ӪJ{9Ğc+&QhQ<R2a̊Q.((Gd}ÂYB>QEz%Szbȭy~D8ntGX$@2!lÇΏ/OMk{%2#e~ NqkH'F{ơ%ۚJSqmoET
d̤<"[m%}Ek&FTg
D<(r1zup@?LWzURJмU5[HY41! .ҭc+YE Pv!x{Ŀr%&`-eZ2u|
`Iw3dH{,Hyv'87v+YӔj1GAUKqC4CvQ**9Eo?uN):tաc:tա#Wҍ0P83uV]7;=J%yCTK(Z!kJZyGI~P:=9=z\S$_QVI.)/51O"6^lzEr@jLwNc 02VLCOƹ, zWXk:h,oou[\PK'(!-͋qz$]}"L0/%7Ɂ?ğV1'zɭӈ2e5FQΰi^MOsi0 [Qx'zN]/_]dҌgِڤyue߯4r֏t&z|0S8tFN'D6+Qoc:8^ 8VU"6H'kUK&}yaEԊI3 X̩l]x۶j5'ڼ#+ 
xXOoDWZqIBB[JiB+ngfi@2iWJwͦ$ 7z8	T |xcx쵽I/M~{{of>LcfK=z6ma;tŶiaﵫM ]!Ag">c``]ܳe0E\] ;rÓj;E6zYK\˓*[
Ej
\zQP[9)yH;n (ܨכj|X~`B"V[	|4&V򫍛UOwM0M֡(}-3NVxo@!(՘**{[s,rJ\t?$
}D|~E}b
}^}}m\$̨``
P!mBJ^`>D6	Dcʴ¡)<	A̭*[qɆh~C~3&Ndxf+P,y,* QY(!*Fbj$&zmR7̅> t]r6*]iP#G^׵#;$<D-Q2ryA ơ{ة]]Q*3oPVeyvVւF%hiKvH
Gdzgd,⺔:c\Z	ʤpVf/KS@pkl7\i\v7׀-tm=\ԺmzkeH$
@@s6F"`X<\lWvKVo,#f_`ק9E˵N9C}◠l|֩&ZkkN`5l	j >Xi@4}*mJ(RbQ!!P5:VX5i=XwPߡί݉äɸ1C`t-՛t;Y6D*ᢡ-3kH?,<`\26[_4Tl7me]YAjf#;]OkK=^'_zC/AK%=ǰ8XGh\Qo~$'Cكp}%݊\.1IL 90=L~ՓeBF0iOX/仵pbf/.{0u.ЏS1mhëE0Hrm|۳"Ze7E,@iWkawOϻh-Yϗʡ=HkO>߀Ywa'^q?Nf\Ϭgv4G n44%`pɋ72I={{8!q4x<z0ƃGͩW&*c]YtH̓H~)lO59ZN~;6F;a^*PzrGgEUJG`Ã\$߉[cRTQݸѸ gS6ne'_S5覦DnBA)=&aK+S.6WSPn6y"hUR{N4ޅsGɏ1QR%xt'>V.uC@:g'o`T(
1Ѹ_]?_~4?V*6kxkAǉK+(TѨ1IS<ۤ-mAa؝$C֝l={w<x#dc`}:uK=tz G3[ua)EкKh!EF1lVeG/&ûua R^5݀0l6A	hm!"6ְ_1Q=	^/EszA.ioQM]>nܙ&]XYBѥ=(Ff~̥5X&1  j1¨Rɰ..7𲘾<#ؼ"+5OթU6J3mڴۿ1'/0<)6S!^=d"Iuh?
Cq~f
ƘH'`>'yIo
s9'(q.DSwIRc]ԥ5!eVBCx%`mqY5^7l#~YJ(PH$6faNA*NPǡhu8n?kj?G=G !/-]ѤQˮE8,L«`VcOvJ*	[@	kvsY;{@qx" |1!K
\p~[|
]Bhx% XP/w`Xw	 UEbSBE'yx&N>>ydR^ǒ̤ҒTҤɂ'(VTbJ5qE=''^,U)4VʂĂJVf> \x(q) A-W, btix۶yVF?O0.g@Qs~^rbdA#ͩFz/T5rbmoiE&JM.j)I̛PO&̛|_`]7a yp1zex۶yVFOPꜟX2YHss^kTNV߼m--b<A%@-%y@yL>K~=}2L\ 
.5xuOK0u:7d "S/~7WA""q[#Crk'DOM͛y\}]'}
gl?&ufoI`)UsA'Ly7YUv4!9b͎-q
%<EM *G H%hSPeI,<Y> [Sx:/+\n/!w!J17e!錖Qd{ NMmÛRDH~Ah.?;U
:k,b/iO?iGQZiozǼTߓ"!*zِ𕙛yТqK7>.AyxAkAQoCV,-*HĊAw'۝uwDq|ۙ$bAiO޼Ǌ+<'xMZQg8a}/?.|_>°׺|2Vr eל|s%ulՈ+s҂bRܪ6A!Kݼ:ܨ?VL-$Keygm&^M)tް9ڮBLoY?r-2wڗ%2bt12W,=5rs1$+%{~{ݬe&fM{naBㄸ8MȧY/%!Ih#wr8I9F8]΃3f9乳Q8Cqh6ǫ8AHqAŌ'+Ccj궁{3Yù<k\"u&5epZS~Tzx8or"rCxkAǩނ VkК41ƪhqYw6)XGw^sA/OI'nn2mn;}/{?O<Crj.OM:.&~ܒF/V-Gyy73z*L%8̎.&;0^Ɍ"%K9\2$KAq:5 		9Qm%(|A$s>^
||7AQ3,_L6FmPn%ѱ)YYĩ3?ܟ<Q+b"HpxR*,s%~a	wie^ ,3Un]EpZ
(7Gj8$zoXk<']4N^Ae
1;Vȶop/:Iz	cM0սMԭ6ԡ^VOc=8^q9Z2Q(RnF2ᣒWD'$sq:ҝGڍ:X#&ےeWk.(^a{6opU:jلT,ݫ_K;k~b˄z+b=ΔR۰hmb]w
;X zq2$wpJI5708~oR,9(Lxnk/3M(0G78cseq. <<(uxk/3M(0G78cseQ@>%%ɩAE&OVMY옖6es@Q5\A%%A%yB?8%!lAD'CrP#/bC}$rPkuaŞyeEũn99!7,YDBsRq(82y	"2>̝@Ԓ|}Y\sJ&Vձ2}p+P#ShDXOewO-q/KI,H,ɀcM>lPY윟[39=(ܭ =(1a,LΞ&	JBU8)Y씟wPHгس$1'3YKjbٜ:xXoGAiL&?0CDtޗgfph9>[;b"R"m2uԩR$%ENofgug<2߹v3sPtlbcC8~r[kn}I56.Hs!6jw"sNw1M+|qAX(Ni'1Qglֽugpm=\'Ug	傱\byw_6y^
$xIXuwmY?!u GI&=IDe'wRWnd79rmoܽl)`ɞRؔ°rq,7>TXçɐbs"`q<|Sx4x;;~_1iyv>=[Aӥ6z8h)r`Hl0{(L×p8i`DcJ'fʻ)ypIL&%E s 7)#$qlc<PMb@Lwr&(ʢs@āt5^df
%dN-3kX{#m}HbmO1+>x"pJ>"3 ,@uJA̠h.ut8p[+!G'P2 Pi9s߫LpiJl_)kR/D Qtcɡu[.Sev@yX8@R0Al<nF;4N\o(Z؇f&%^شKhZU$.	<̗
)K1c"sIvPh?vfC]6yARnBYĈBcNe^-NUcod@rl{.E,'d;zPn5TʰUZP+Dѫ	򦐫7:kRQ mqr:_MJ]|qp9wEqM8K0Hb1@ӗtG,]&Lr)P,!>+C"GL-2rV
!a
z[nŐ!lʥ|YPĊu)XM!3D?_W1P/9=(NyZb0p>Sjշ3$=᫓D]"M+,ptvv7Qu"SYTHLRb!96s7&x~ǷCp>iz/upZBjvd$Mwy	I|:x6U.XEIj/.N(hEC3<U^p4mh)v8&Ŀ$<SAkl1ڔi75뾤L)lh_p{ڭQ(N+54`p/:NKg>-3hwB!@ſފ/z[wjAR|ўy0kMvnogvQ5ZlG'÷J&DOwu, 9+ҩѭ}ZSs.*ARXۓ
@p?ɒv}2-uFQz;REK;0~jd'Fh*{.cp𸷗J-ъF{GUJį~?){R }fG, 4Fa/::?ϧ+Qx{{k/o5w;|'7<RP2q^%.  	xA[a$#AVCODEC_MIMETYPE_VIDEO_AVC,#AVCODEC_MIMETYPE_AUDIO_AAC-CAVCODEC_MIMETYPE_VIDEO_MPEG4-CAVCODEC_MIMETYPE_VIDEO_HEVC-CAVCODEC_MIMETYPE_AUDIO_MPEG-CAVCODEC_MIMETYPE_IMAGE_JPG-CAVCODEC_MIMETYPE_IMAGE_PNG-CAVCODEC_MIMETYPE_IMAGE_BMP-CAVCODEC_MIMETYPE_AUDIO_FLAC-CAVCODEC_MIMETYPE_AUDIO_VORBISoEAVCODEC_MIMETYPE_AUDIO_VIVIDoEAVCODEC_MIMETYPE_AUDIO_AMR_NBoEAVCODEC_MIMETYPE_AUDIO_AMR_WBoEAVCODEC_MIMETYPE_AUDIO_OPUSoEAVCODEC_MIMETYPE_AUDIO_G711MUEAVCODEC_MIMETYPE_AUDIO_APEEAVCODEC_MIMETYPE_VIDEO_VVCEAVCODEC_MIMETYPE_SUBTITLE_SRTE AVCODEC_MIMETYPE_SUBTITLE_WEBVTTA}EAVCODEC_MIMETYPE_AUDIO_RAWAEAVCODEC_MIMETYPE_AUDIO_G711A~EAVCODEC_MIMETYPE_AUDIO_ALAC~EAVCODEC_MIMETYPE_AUDIO_AC3~EAVCODEC_MIMETYPE_AUDIO_EAC3~EAVCODEC_MIMETYPE_AUDIO_WMAV1~EAVCODEC_MIMETYPE_AUDIO_WMAV2~EAVCODEC_MIMETYPE_AUDIO_WMAPRO~EMD_KEY_BLOCK_ALIGN~EAVCODEC_MIMETYPE_AUDIO_GSM~EAVCODEC_MIMETYPE_AUDIO_GSM_MSEAVCODEC_MIMETYPE_AUDIO_TWINVQEAVCODEC_MIMETYPE_AUDIO_ILBCEAVCODEC_MIMETYPE_AUDIO_TRUEHDE8AVCODEC_MIMETYPE_AUDIO_DVAUDIO",
        "type": "variab/4AVCODEC_MIMETYPE_AUDIO_DTS",
        "type": "variab/5AVCODEC_MIMETYPE_AUDIO_COOK",
        "type": "variab.17AVCODEC_MIMETYPE_VIDEO_MPEG2-7"AVCODEC_MIMETYPE_VIDEO_MPEG4_PART2-7AVCODEC_MIMETYPE_VIDEO_H263~EAVCODEC_MIMETYPE_VIDEO_VC1E4AVCODEC_MIMETYPE_VIDEO_AV1",
        "type": "variab/4AVCODEC_MIMETYPE_VIDEO_VP9",
        "type": "variab/4AVCODEC_MIMETYPE_VIDEO_VP8",
        "type": "variab/5AVCODEC_MIMETYPE_VIDEO_RV30",
        "type": "variab/5AVCODEC_MIMETYPE_VIDEO_RV40",
        "type": "variab/5AVCODEC_MIMETYPE_VIDEO_WVC1",
        "type": "variab/8AVCODEC_MIMETYPE_VIDEO_DVVIDEO",
        "type": "variab/9AVCODEC_MIMETYPE_VIDEO_RAWVIDEO",
        "type": "variab/6AVCODEC_MIMETYPE_VIDEO_MPEG1",
        "type": "variab/ 8AVCODEC_MIMETYPE_VIDEO_CINEPAK",
        "type": "variab/AVCODEC_MIMETYPE_VIDEO_MSVIDEO1~EAVCODEC_MIMETYPE_VIDEO_WMV3~EAVCODEC_MIMETYPE_VIDEO_MJPEG,#ED_KEY_TIME_STAMP,#
ED_KEY_EOS,#MD_KEY_TRACK_TYPE,#MD_KEY_CODEC_MIME,#MD_KEY_DURATION,#MD_KEY_BITRATE,#MD_KEY_MAX_INPUT_SIZE,#MD_KEY_WIDTH,#MD_KEY_HEIGHT,#MD_KEY_PIXEL_FORMAT-CMD_KEY_RANGE_FLAG-CMD_KEY_COLOR_PRIMARIES-CMD_KEY_TRANSFER_CHARACTERISTICS-CMD_KEY_MATRIX_COEFFICIENTS,#MD_KEY_AUDIO_SAMPLE_FORMAT,#MD_KEY_FRAME_RATE,# MD_KEY_VIDEO_ENCODE_BITRATE_MODE,#MD_KEY_PROFILE,#MD_KEY_AUD_CHANNEL_COUNT,#MD_KEY_AUD_SAMPLE_RATE,#MD_KEY_I_FRAME_INTERVAL,#MD_KEY_ROTATION~EMD_KEY_VIDEO_TRANSFORM_TYPE-CMD_KEY_CODEC_CONFIG-CMD_KEY_REQUEST_I_FRAME-CMD_KEY_QUALITY-CMD_KEY_CHANNEL_LAYOUT-CMD_KEY_BITS_PER_CODED_SAMPLE-CMD_KEY_AAC_IS_ADTS-C
MD_KEY_SBR-CMD_KEY_COMPLIANCE_LEVEL-CMD_KEY_IDENTIFICATION_HEADER-CMD_KEY_SETUP_HEADER-CMD_KEY_SCALING_MODE-CMD_MAX_INPUT_BUFFER_COUNT-CMD_MAX_OUTPUT_BUFFER_COUNT-CMD_KEY_TITLE-CMD_KEY_ARTIST-CMD_KEY_ALBUM-CMD_KEY_ALBUM_ARTIST-CMD_KEY_DATE-CMD_KEY_COMMENT-CMD_KEY_GENRE-CMD_KEY_COPYRIGHT-CMD_KEY_LANGUAGE-CMD_KEY_DESCRIPTION-CMD_KEY_LYRICS-CMD_KEY_TRACK_COUNToEMD_KEY_AUDIO_COMPRESSION_LEVELoEMD_KEY_VIDEO_IS_HDR_VIVIDoEMD_KEY_AUDIO_OBJECT_NUMBERoEMD_KEY_AUDIO_VIVID_METADATAE6FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNTE0MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITYE&MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZEE0MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODEA-6&MD_KEY_VIDEO_ENCODER_TEMPORAL_LAYER_IDE$MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNTE'MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTRE&MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTREMD_KEY_VIDEO_PER_FRAME_IS_LTREMD_KEY_VIDEO_PER_FRAME_POCEMD_KEY_VIDEO_CROP_TOPEMD_KEY_VIDEO_CROP_BOTTOMEMD_KEY_VIDEO_CROP_LEFTEMD_KEY_VIDEO_CROP_RIGHTEMD_KEY_VIDEO_STRIDEEMD_KEY_VIDEO_SLICE_HEIGHTEMD_KEY_VIDEO_PIC_WIDTHEMD_KEY_VIDEO_PIC_HEIGHTEMD_KEY_VIDEO_ENABLE_LOW_LATENCYEMD_KEY_VIDEO_ENCODER_QP_MAXEMD_KEY_VIDEO_ENCODER_QP_MINEMD_KEY_VIDEO_ENCODER_QP_AVERAGEEMD_KEY_VIDEO_ENCODER_MSEEMD_KEY_DECODING_TIMESTAMPEMD_KEY_BUFFER_DURATIONEMD_KEY_VIDEO_SAREMD_KEY_START_TIMEEMD_KEY_TRACK_START_TIMEE'MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE-0"&MD_KEY_VIDEO_DECODER_OUTPUT_ENABLE_VRRaEMD_KEY_CREATION_TIMEA}E0MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_FRAME_AFTERA}E.MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_MAX_COUNTAEMD_KEY_VIDEO_ENCODER_ROI_PARAMSAEMD_KEY_ENABLE_MOOV_FRONTAEMD_KEY_SQR_FACTORAEMD_KEY_REFERENCE_TRACK_IDSAEMD_KEY_TRACK_REFERENCE_TYPEAEMD_KEY_TRACK_DESCRIPTIONAEMD_KEY_MAX_BITRATEAE1MD_KEY_VIDEO_ENCODER_ENABLE_PTS_BASED_RATECONTROLAEMD_KEY_ENABLE_SYNC_MODEAE#MD_KEY_VIDEO_ENCODER_ENABLE_B_FRAMEAE!MD_KEY_VIDEO_ENCODER_MAX_B_FRAMESAE,MD_KEY_VIDEO_DECODER_BLANK_FRAME_ON_SHUTDOWN~E!MD_KEY_VIDEO_NATIVE_BUFFER_FORMATEMD_KEY_BUFFER_SKIP_SAMPLES_INFOA- ;MD_KEY_ENABLE_BUFFER_SKIP_SAMPLES",
        "type": "variab/ )MD_KEY_LATITUDE",
        "type": "variab/ *MD_KEY_LONGITUDE",
        "type": "variab/ )MD_KEY_ALTITUDE",
        "type": "variab/6.0.C:MD_KEY_AUDIO_VIVID_SIGNAL_FORMAT",
        "type": "variab/6.0.C6MD_KEY_AUDIO_SOUNDBED_LAYOUT",
        "type": "variab/6.0.C7MD_KEY_AUDIO_SOUNDBED_BITRATE",
        "type": "variab/6.0.C5MD_KEY_AUDIO_OBJECT_BITRATE",
        "type": "variab/6.0.C;MD_KEY_SCREEN_CAPTURE_WINDOW_RECT",
        "type": "variab.1CAVCodec_GetCapabils0CAVCodec_GetCapabilityByCategorQ. AVCodec_GetCapability`1CAVCapability_IsHardwar. AVCapability_IsSecur.CAVCapability_GetNam. AVCapability_GetMim2 AVCapability_CheckMimeTyp.C#AVCapability_GetMaxSupportedInstanc/CAVCapability_GetEncoderBitraten2C*AVCapability_IsEncoderBitrateModeSupported-CAVCapability_GetEncoderQualityn2C!AVCapability_GetEncoderComplexityn'AVCapability_GetAudioSupportedSampleRatG,AVCapability_GetAudioSupportedSampleRateRang/C!AVCapability_GetAudioChannelCountn2CAVCapability_GetVideoWidthAligna?1C AVCapability_GetVideoHeightAligna?1C"AVCapability_GetVideoWidthRangeForP3C&AVCapability_GetVideoHeightRangeForWidQ.1CAVCapability_GetVideoWidthn2CAVCapability_GetVideoHeightn2C!AVCapability_IsVideoSizeSupported-CAVCapability_GetVideoFrameRaten2C&AVCapability_GetVideoFrameRateRangeForѼ1C.AVCapability_AreVideoSizeAndFrameRateSupported-C)AVCapability_GetVideoSupportedPixelFormat.0AVCapability_GetVideoSupportedNativeBufferFormatqo.CAVCapability_GetSupportedProfil/C'AVCapability_GetSupportedLevelsForProfi.1C(AVCapability_AreProfileAndLevelSupportedEAVCapability_IsFeatureSupportedEAVCapability_GetFeatureProperti/6.0.C<MD_KEY_AUDIO_MAX_INPUT_BUFFER_SIZE",
        "type": "variab/6.0.C7MD_KEY_AUDIO_ENCODER_PTS_MODE",
        "type": "variab/6.0.CKMD_KEY_AUDIO_ENCODER_ENABLE_SAMPLE_FORMAT_CONVERT",
        "type": "variab/6.0.C)MD_KEY_VIDEO_DECODER_FRAME_RETENTION_MODEA-6.0.C*MD_KEY_VIDEO_DECODER_FRAME_RETENTION_RATIOA-6.0.CMD_KEY_VIDEO_DECODER_SPEEDA-6.0.C/MD_KEY_VIDEO_ENCODER_PREPROC_DOWNSAMPLING_WIDTHA-6.0.C0MD_KEY_VIDEO_ENCODER_PREPROC_DOWNSAMPLING_HEIGHTA-6.0.C%MD_KEY_VIDEO_ENCODER_PREPROC_CROP_TOPA-6.0.C(MD_KEY_VIDEO_ENCODER_PREPROC_CROP_BOTTOMA-6.0.C&MD_KEY_VIDEO_ENCODER_PREPROC_CROP_LEFTA-6.0.C'MD_KEY_VIDEO_ENCODER_PREPROC_CROP_RIGHTA-6.0.C9MD_KEY_VIDEO_ENCODER_PREPROC_DROP_TO_FRAME_RATE"
    }
]
s[xp+[a%CAVScreenCapture_3CAVScreenCapture_IniA.CAVScreenCapture_StartScreenCapQ01CAVScreenCapture_StopScreenCapQ01CAVScreenCapture_StartScreen6CAVScreenCapture_StopScreen6CAVScreenCapture_AcquireAudioz21CAVScreenCapture_AcquireVideoz21CAVScreenCapture_ReleaseAudioz21CAVScreenCapture_ReleaseVideoz21CAVScreenCapture_SetC4CAVScreenCapture_Releas.CAVScreenCapture_SetMicrophoneaL,AVScreenCapture_StartScreenCaptureWithSurfac1FAVScreenCapture_SetCanvasRotat/AVScreenCapture_SetStateCLAVScreenCapture_SetDataCLAVScreenCapture_SetErrorCLAVScreenCapture_CreateContent+2AVScreenCapture_ReleaseContent+2+AVScreenCapture_ContentFilter_AddAudioConteGAVScreenCapture_ExcludeConteG,AVScreenCapture_ContentFilter_AddWindowConteGAVScreenCapture_ResizeCanvaqo.AVScreenCapture_SkipPrivacy:1`!AVScreenCapture_SetMaxVideoFrameRp00"AVScreenCapture_ShowCurs/0"AVScreenCapture_SetDisplayC3C$AVScreenCapture_CreateCaptureStrategF%AVScreenCapture_ReleaseCaptureStrategF!AVScreenCapture_SetCaptureStrategF/AVScreenCapture_StrategyForKeepCaptureDuringCal-C)AVScreenCapture_SetCaptureContentChangedC3CAVScreenCapture_SetCaptureAreaAE&AVScreenCapture_StrategyForPrivacyMask:0C,AVScreenCapture_StrategyForCanvasFollowRotat0[AVScreenCapture_SetSelectionC3C&AVScreenCapture_GetCaptureTypeSelectedAE$AVScreenCapture_GetDisplayIdSelectedAE'AVScreenCapture_StrategyForBFramesEncod/C&AVScreenCapture_StrategyForPickerPopUpAEAVScreenCapture_StrategyForFill:0}#AVScreenCapture_SetCaptureAreaHighlН0}#AVScreenCapture_ExcludePickerWindow.AVScreenCapture_SetPicker:0}AVScreenCapture_PresentPick.-AVScreenCapture_GetMultiDisplayCaptureCapabils/*AVScreenCapture_GetMultiDisplayIdsSelectedA- "AVScreenCapture_SetPrivacyProtectC326AVScreenCapture_StrategyForPaus.6AVScreenCapture_PauseScreenCapQ16AVScreenCapture_ResumeScreenCapQ16.0.CHMD_KEY_SCREEN_CAPTURE_CONTENT_RECT",
        "type": "variable"
    }
]
!tCn\xykK >)wx l1@U0x   /*
 * Copyright (C) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup CodecBase
 * @{
 *
 * @brief The CodecBase module provides variables, properties, and functions
 * for audio and video muxer, demuxer, and basic encoding and decoding functions.
 * 
 * @since 9
 */
/**
 * @file native_avcodec_base.h
 *
 * @brief Declare the Native API used for audio and video muxer,
 * demuxer and basic encoding and decoding functions.
 * 
 * @kit AVCodecKit
 * @library libnative_media_codecbase.so
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 9
 */


#ifndef NATIVE_AVCODEC_BASE_H
#define NATIVE_AVCODEC_BASE_H
#include <stdint.h>
#include <stdio.h>
#include "native_avbuffer.h"
#include "native_avmemory.h"
#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Describes a native object for the graphics interface.
 * 
 * @since 9
 */
typedef struct NativeWindow OHNativeWindow;

/**
 * @brief Describes a native object for the audio and video codec interface.
 * 
 * @since 9
 */
typedef struct OH_AVCodec OH_AVCodec;

/**
 * @brief Defines the pointer to the function that is called to report error information when an error occurs during
 * the running of an OH_AVCodec instance.
 * 
 * | Use Case| Error Code|
 * | -------- | -------- |
 * | Audio encoding/decoding| **AV_ERR_DRM_DECRYPT_FAILED**: DRM decryption failed. |
 * | Video encoding/decoding| **AV_ERROR_NO_MEMORY**: System resources are insufficient.<br>**AV_ERROR_UNKNOWN**: An unknown error occurs. Analyze the error based on specific logs.<br>**AV_ERR_SERVICE_DIED**: The service is dead. |
 * | Video decoding| **AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION**: The current input does not support CSC. |
 * <!--RP1--><!--RP1End-->
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param errorCode Error code.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @since 9
 */
typedef void (*OH_AVCodecOnError)(OH_AVCodec *codec, int32_t errorCode, void *userData);

/**
 * @brief Defines the pointer to the function that is called to report the new stream description when the resolution
 * of the input video stream being decoded or the output video stream that has been encoded changes.
 *
 * Starting from API version 15, this function pointer is called to report the new stream description when the stream
 * sampling rate, number of audio channels, or audio sampling format changes during audio decoding. The decoding
 * formats that can detect these changes include <!--RP3--><!--RP3End-->AAC, FLAC, MP3, and VORBIS.
 *
 * Note that the lifecycle of the pointer to the OH_AVFormat instance is valid only when the function pointer is being
 * called. Do not access the pointer to the instance after the function pointer is called.
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param format Pointer to the description information about the new output stream.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @since 9
 */
typedef void (*OH_AVCodecOnStreamChanged)(OH_AVCodec *codec, OH_AVFormat *format, void *userData);

/**
 * @brief Defines the pointer to the function that is called when new input data is required during the running of an
 * OH_AVCodec instance. The function carries a buffer to fill in new input data.
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param index Index of the new input buffer.
 * @param data Pointer to the data to fill in the new input buffer.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @deprecated since 11
 * @useinstead OH_AVCodecOnNeedInputBuffer
 * @since 9
 */
typedef void (*OH_AVCodecOnNeedInputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData);

/**
 * @brief Defines the pointer to the function that is called when new output data is generated during the running of an
 * OH_AVCodec instance. The function carries a buffer filled with new output data. Note that the lifecycle of the
 * pointer to the OH_AVCodecBufferAttr instance is valid only when the function pointer is being called. Do not access
 * the pointer to the instance after the function pointer is called.
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param index Index of the new output buffer.
 * @param data Pointer to the data filled in the new output buffer.
 * @param attr Pointer to the description information about the new output buffer.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @deprecated since 11
 * @useinstead OH_AVCodecOnNewOutputBuffer
 * @since 9
 */
typedef void (*OH_AVCodecOnNewOutputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data,
                                          OH_AVCodecBufferAttr *attr, void *userData);

/**
 * @brief Defines the pointer to the function that is called when new input data is required during the running of an
 * OH_AVCodec instance. The function carries a buffer to fill in new input data.
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param index Index of the new input buffer.
 * @param buffer Pointer to the data to fill in the new input buffer.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @since 11
 */
typedef void (*OH_AVCodecOnNeedInputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData);

/**
 * @brief Defines the pointer to the function that is called when new output data is generated during the running of an
 * OH_AVCodec instance. The function carries a buffer filled with new output data.
 * 
 * @param codec Pointer to an OH_AVCodec instance.
 * @param index Index of the new output buffer.
 * @param buffer Pointer to the data filled in the new output buffer.
 * @param userData Pointer to the data on which the caller depends when executing the callback.
 * @since 11
 */
typedef void (*OH_AVCodecOnNewOutputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData);

/**
 * @brief The struct defines all the asynchronous callback function pointers of an OH_AVCodec instance. To ensure the
 * normal running of OH_AVCodec, you must register the instance of this struct with the OH_AVCodec instance and process
 * the information reported by the callback function.
 * 
 * @param onError Monitor OH_AVCodec operation errors, refer to {@link OH_AVCodecOnError}
 * @param onStreamChanged Monitor codec stream information, refer to {@link OH_AVCodecOnStreamChanged}
 * @param onNeedInputData Monitoring codec requires input data, refer to {@link OH_AVCodecOnNeedInputData}
 * @param onNeedOutputData Monitor codec to generate output data, refer to {@link OH_AVCodecOnNewOutputData}
 * @deprecated since 11
 * @useinstead OH_AVCodecCallback
 * @since 9
 */
typedef struct OH_AVCodecAsyncCallback {
    OH_AVCodecOnError onError;
    OH_AVCodecOnStreamChanged onStreamChanged;
    OH_AVCodecOnNeedInputData onNeedInputData;
    OH_AVCodecOnNewOutputData onNeedOutputData;
} OH_AVCodecAsyncCallback;

/**
 * @brief The struct defines all the asynchronous callback function pointers of an OH_AVCodec instance. To ensure the
 * normal running of OH_AVCodec, you must register the instance of this struct with the OH_AVCodec instance and process
 * the information reported by the callback function.
 * 
 * @param onError Monitor OH_AVCodec operation errors, refer to {@link OH_AVCodecOnError}
 * @param onStreamChanged Monitor codec stream information, refer to {@link OH_AVCodecOnStreamChanged}
 * @param onNeedInputBuffer Monitoring codec requires input buffer, refer to {@link OH_AVCodecOnNeedInputBuffer}
 * @param onNewOutputBuffer Monitor codec to generate output buffer, refer to {@link OH_AVCodecOnNewOutputBuffer}
 * @since 11
 */
typedef struct OH_AVCodecCallback {
    OH_AVCodecOnError onError;
    OH_AVCodecOnStreamChanged onStreamChanged;
    OH_AVCodecOnNeedInputBuffer onNeedInputBuffer;
    OH_AVCodecOnNewOutputBuffer onNewOutputBuffer;
} OH_AVCodecCallback;

/**
 * @brief Defines a function pointer used to provide the capability of obtaining user-defined media data.
 * 
 * @param data Pointer to the buffer to be filled in.
 * @param length Length of the data to read.
 * @param pos Offset from which the data is read.
 * @return Actual length of the data read to the buffer.
 * @since 12
 */
typedef int32_t (*OH_AVDataSourceReadAt)(OH_AVBuffer *data, int32_t length, int64_t pos);

/**
 * @brief The struct describes a user-defined data source.
 * 
 * @since 12
 */
typedef struct OH_AVDataSource {
    /**
     * Size of the data source.
     * @since 12
     */
    int64_t size;
    /**
     * Callback of the data source.
     * @since 12
     */
    OH_AVDataSourceReadAt readAt;
} OH_AVDataSource;


/**
 * @brief Defines a function pointer used to provide the capability of obtaining user-defined media data.
 * 
 * @param data Pointer to the buffer to be filled in.
 * @param length Length of the data to read.
 * @param pos Offset from which the data is read.
 * @param userData Pointer to user-defined data.
 * @return Actual length of the data read to the buffer.
 * @since 20
 */
typedef int32_t (*OH_AVDataSourceReadAtExt)(OH_AVBuffer *data, int32_t length, int64_t pos, void *userData);

/**
 * @brief The struct describes a user-defined data source. User-defined data can be passed to its callback functions
 * through the **userData** parameter.
 * 
 * @since 20
 */
typedef struct OH_AVDataSourceExt {
    /**
     * Size of the data source.
     * @since 20
     */
    int64_t size;
    /**
     * Callback of the data source.
     * @since 20
     */
    OH_AVDataSourceReadAtExt readAt;
} OH_AVDataSourceExt;

/**
 * @brief Pointer to the key that describes the MIME type of the AVC (H.264) video codec.
 * 
 * @since 9
 */
extern const char *!AVC;

/**
 * @brief Pointer to the key that describes the MIME type of the AAC audio codec.
 * 
 * @since 9
 */
extern const char *!AAC;

/**
 * @brief Pointer to the key that describes the MIME type of the FLAC audio codec.
 * 
 * @since 10
 */
extern const char *!FLAC;

/**
 * @brief Pointer to the key that describes the MIME type of the Vorbis audio decoder.
 * 
 * @since 10
 */
extern const char *!;

/**
 * @brief Pointer to the key that describes the MIME type of the MP3 audio codec.
 * 
 * @since 10
 */
extern const char *!MPEG;

/**
 * @brief Pointer to the key that describes the MIME type of the HEVC (H.265) video codec.
 * 
 * @since 10
 */
extern const char *!HEVC;

/**
 * @brief Pointer to the key that describes the MIME type of the MPEG4 video encoder, which is used only for
 * multIiplexing MPEG4 video streams.
 * 
 * @deprecated since 11
 * @useinstead !0MPEG4_PART2
 * @since 10
 */
extern const char *!MPEG4;

/**
 * @brief Pointer to the key that describes the MIME type of the JPG image encoder, which is used only for multiple<xing
 * JPG covers.
 * 
 * @since 10
 */
extern const char *!,	;

/**
 * @brief Pointer to the key that describes the MIME type of the PNG image encoder, which is used only for multiplexing
7 * PNG covers.
 * 
 * @since 10
 */
extern const char *!	;

/**
 * @brief Pointer to the key that describes the MIME type of the BMP image encoder, which is used only for multiplexing
7 * BMP covers.
 * 
 * @since 10
 */
extern const char *!IMAGE_BMP;

/**
 * @brief Pointer to the key that describes the MIME type of the Audio Vivid audio decoder. <!--Del-->(This
 * Zspecification is not available yet.)<!--DelEnd-->
 * 
 * @since 11
 */
extern const char *!VIVID;

/**
 * @brief Pointer to the key that describes the MIME type of the AMR-NB audio <!--RP4--><!--RP4End--> decoder.
 * 
$ * @since 11
 */
extern const char *!AMR_NB;

/**
 * @brief Pointer to the key that describes the MIME type of the AMR-WB audio <!--RP4--><!--RP4End--> decoder.
 * %
 * @since 11
 */
extern const char *!AMR_WB;

/**
 * @brief Pointer to the key that describes the MIME type of the Opus audio codec. <!--Del-->(This specification iNs not
 * available yet.)<!--DelEnd-->
 * 
 * @since 11
 */
extern const char *!OPUS;

/**
 * @brief Pointer to the key that describes the MIME type of the G.711 mu-law audio codec.
 * 
 * @since 11
 */
extern const char *!G711MU;

/**
 * @brief Pointer to the key that describes the MIME type of the APE audio decoder.
 * 
 * @since 12
 */
extern co
nst char *!APE;

/**
 * @brief Pointer to the key that describes the MIME type of the VVC (H.266) video codec.
 * 
 * @since 12
 */
extern const char *!VVC;

/**
 * @brief Pointer to the key that describes the MIME type of the SRT subtitle demuxer.
 * 
 * @since 12
 */
extern co
nst char *!;

/**
 * @brief Pointer to the key that describes the MIME type of the WEBVTT subtitle demuxer.
 * 
 * @since 12
 */
extern co
nst char *!	WEBVTT;

/**
 * @brief Pointer to the key that describes the MIME type of raw audio streams.
 * 
 * @since 18
 */
extern const char *!RAW;

/**
 * @brief Pointer to the key that describes the MIME type of the G.711 a-law audio decoder.
 * 
 * @since 20
 */
extern const char *!G711A;

/**
 * @brief Pointer to the key that describes the MIME type of the Apple Lossless Audio Codec (ALAC) audio decoder.
 '* 
 * @since 22
 */
extern const char *!ALAC;

/**
 * @brief Pointer to the key that describes the MIME type of the Dolby Audio Coding 3 (AC 3) audio decoder.
 * 
 * @ since 22
 */
extern const char *!AC3;

/**
 * @brief Pointer to the key that describes the MIME type of the Enhanced AC-3 (EAC3) audio decoder.
 * 
 * @since 22
 */
extern const char *!EAC3;

/**
 * @brief Pointer to the key that describes the MIME type of the Windows Media Audio (WMA) V1 audio decoder.
 * 
 * !@since 22
 */
extern const char *!WMAV1;

/**
 * @brief Pointer to the key that describes the MIME type of the WMA V2 audio decoder.
 * 
 * @since 22
 */
extern const char *!WMAV2;

/**
 * @brief Pointer to the key that describes the MIME type of the WMA Pro audio decoder.
 * 
 * @since 22
 */
extern const char *!
;

/**
 * @brief Size of the audio data block, in bytes. The value type is int32_t. This key is used only for WMA (V1, V2, and
9 * PRO) decoders.
 *
 * The allowed MIME types include **!WMAV1**, **!WMAV2**, and **
 * !
**.
 * 
 * @since 22
 */
extern const char *OH_MD_KEY_BLOCK_ALIGN;

/**
 * @brief Pointer to the key that describes the MIME type of the Global System for Mobile Communications (GSM) audio
 * decoder.
 * 
 * @since 22
 */
extern const char *OH_AVCODEC_MI.GSM;

/**
 * @brief Pointer to the key that describes the MIME type of the GSM Microsoft variant (MS) audio decoder.
 * 
 * @since 22
 */
extern const char *!GSM_MS;

/**
 * @brief Pointer to the key that describes the MIME type of the Transform-domain Weighted Interleave Vector
 * QuKantization (TWINVQ) audio decoder.
 * 
 * @since 23
 */
extern const char *!TWINVQ;

/**
 * @brief Pointer to the key that describes the MIME type of the Internet Low Bitrate Codec (ILBC) audio decoder.
' *
 * @since 23
 */
extern const char *!ILBC;

/**
 * @brief Pointer to the key that describes the MIME type of the True High Definition (TRUEHD) audio decoder.
 * 
 *" @since 23
 */
extern const char *!TRUEHD;

/**
 * @brief MIME type of the DVAUDIO (Digital Video Audio) audio decoder.
 * 
 * @since 23
 */
extern const char *OH#VAUDIO;

/**
 * @brief MIME type of the DTS (Digital Theater Systems) audio decoder.
 * 
 * @since 23
 */
extern const char *OH#o;

/**
 * @brief MIME type of the Cook (RealAudio Cook) audio decoder.
 * 
 * @since 23
 */
extern const char *!COOK;

/**
 * @brief Pointer to the key that describes the MIME type of the MPEG2 video codec.
 * 
 * @since 17
 */
extern const char *!MPEG2;

/**
 * @brief Pointer to the key that describes the MIME type of the MPEG4 video encoder, which is used only for
 * mulGtiplexing MPEG4 video streams.
 * 
 * @since 17
 */
extern const char *!MPEG4_PART2;

/**
 * @brief Pointer to the key that describes the MIME type of the H.263 video codec.
 * 
 * @since 17
 */
extern const char *!H263;

/**
 * @brief Pointer to the key that describes the MIME type of the VC-1 video codec.
 * 
 * @since 22
 */
extern const char *!_VC1;

/**
* @brief MIME type of the AV1 video codec.
 * 
 * @since 23
 * */
extern const char *!^AV1;

/**
 * @brief MIME type of the VP9 video codec.
 * 
 * @since 23
 */
extern const char *!^VP9;

/**
 * @brief MIME type of the VP8 video codec.
 * 
 * @since 23
 */
extern const char *!aVP8;

/**
 * @brief MIME type of the RV30 video codec.
 * 
 * @since 23
 * */
extern const char *!`30;

/**
 * @brief MIME type of the RV40 video codec.
 * 
 * @since 23
 * */
extern const char *!
^;

/**
 * @brief MIME type of the WVC1 video codec.
 * 
 * @since 23
 * */
extern const char *!WVC1;

/**
 * @brief MIME type of the DVVIDEO (Digital Video) video codec. Supports DV NTSC, DV PAL, and DVCPRO HD.
 * 
 * @since 23
 * */
extern const char *!b;

/**
 * @brief MIME type of the RAWVIDEO video codec.
 * 
 * @since 23
 * */
extern const char *!_;

/**
 * @brief MIME type of the MPEG1 video codec.
 * 
 * @since 23
 * */
extern const char *!cMPEG1;

/**
 * @brief MIME type of the Cinepak video codec.
 *
 * @since 24
 */
extern const char *!CINEPAK;

/**
 * @brief Pointer to the key that describes the MIME type of the Microsoft Video 1 (MSVIDEO1) video codec.
 * 
 *" @since 22
 */
extern const char *!MSVIDEO1;

/**
 * @brief Pointer to the key that describes the MIME type of the WMV3 video codec.
 * 
 * @since 22
 */
extern const char *!WMV3;

/**
 * @brief Pointer to the key that describes the MIME type of the Motion JPEG (MJPEG) video codec.
 * 
 * @since 22
 */
extern const char *!MJPEG;

/**
 * @brief Pointer to the key that describes the surface buffer timestamp. The value is of the int64_t type.
 * 
 * @deprecated since 14
 * @since 9
 */
extern const char *OH_ED_KEY_TIME_STAMP;

/**
 * @brief Pointer to the key that describes the end of stream for the surface buffer. The value type is int32_t.
 * 
 * @deprecated since 14
 * @since 9
 */
extern const char *OH_ED_KEY_EOS;

/**
 * @brief Pointer to the key that describes the track type in a media file. The value type is int32_t. For details, see
 * {@link OH_MediaType}.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_TRACK_TYPE;

/**
 * @brief Pointer to the key that describes the MIME type of the codec. The value type is char *.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_CODEC_MIME;

/**
 * @brief Pointer to the key that describes the duration in a media file, in microseconds. The value type is int64_t.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_DURATION;

/**
 * @brief Pointer to the key that describes the bit r7ate. The value type is int64_t.
 * You can call {@link ADA} to obtain the value range.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_BITRATE;

/**
 * @brief Pointer to the key that describes the maximum size of an input stream to decode. The value type is int32_t.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_MAX_INPUT_SIZE;

/**
 * @brief Pointer to the key that describes the video width. The value type is int32_t.
 *
 * For video encoding, this key sets the target encoding resolution.
 * For video decoding, this key is a resolution hint used by the decoder to pre-allocate internal buffers.
 * The actual decoded output dimensions are provided via {@link OH_MD_KEY_VIDEO_PIC_WIDTH}.
 *
 * While this key primarily governs memory allocation,
 * the recommended value range can be referenced from {@link OH_AED/E},
 * which defines the codec's supported decoding width range.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_WIDTH;

/**
 * @brief Pointer to the key that describes the video height. The value type is int32_t.
 *
 * For video encoding, this key sets the target encoding resolution.
 * For video decoding, this key is a resolution hint used by the decoder to pre-allocate internMal buffers. 
 * The actual decoded output dimensions are provided via {@link =.}.
 *
 * While this key primarily governs memory allocation, the recommended value range can be referenced
 * from {@link OH_AVFDHeightRange}, which defines the codec's supported decoding height range.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_HEIGHT;

/**
 * @brief Pointer to the key that describes the video pixel format. The value type is int32_t.
 * For details, see {@li=nk OH_AVPixelFormat}.
 * 
 * @since 9
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the original audio format. The value type is int32_t.
 * For details, see {@?link OH_BitsPerSample}.
 * 
 * @since 9
 */
extern const char *Z;

/**
 * @brief Pointer to the key that describes the video frame rate. The value type is double. The value must be greater
 *! than **0**. You can call {@link ADG} to obtain the value range.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_FRAME_RATE;

/**
 * @brief Pointer to the key that describes the video encoding bit rate mode. The value type is int32_t. For details,
 * see {@link OH_BitrateMode}.
 * 
 * @since 9
 */
extern const char *!0_BITRATE_MODE;

/**
 * @brief Pointer to the key that describes the encoding grading. The value type is int32_t. For details,
 g* see {@link OH_AVCProfile}, {@link OH_HEVCProfile}, and {@link OH_AACProfile}.
 * You can call {@link AD]I} to obtain the supported profiles.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_PROFILE;

/**
 * @brief Pointer to the key that describes the number of audio channels. The value type is int32_t.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_AUD_CHANNEL_COUNT;

/**
 * @brief Pointer to the key that describes the audio sampling rate. The value type is int32_t.
 * 
 * @since 9
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the key frame interval, in milliseconds. The value type is int32_t. This
 * key is optional and is used only for video encoding.
 *
 * A negative value means that only the first frame is a keyframe. The value **0** means that all frames are keyframes.
 * A positive value means one keyframe every (frameRate * value)/1000 frames. The default value is **1000**.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_I_FRAME_INTERVAL;

/**
 * @brief Pointer to the key that describes the rotation angle of the surface, with a clockwise direction. The value
 * type is int32_t, and the value range is {0, 90, 180, 270}. The default value is 0.
 * 
 * This key is optional and is used only for video decoding in surface )mode
 * 
 * You are advised to use the **(** key to set the rotation angle of the surface for video
 * decoding.
 * 
 * @since 9
 */
extern const char *OH_MD_KEY_ROTATION;

/**
 * @brief Key for video transform type, value type is int32_t, see {@link OH_NativeBuffer_TransformType}.
 *
 * This key is used to set the surface transform for video decoders (surface mode).
 * If not specified, the default value is 0 ({@link NATIVEBUFFER_ROTATE_NONE}).
 * 
 * This key and {@link OH_MD_KEY_ROTATION} are mutually exclusive. If both are provided,
 * OH_M, takes precedence.
 * 
 * Note that the degrees specified in {@link OH_NativeBuffer_TransformType} represent counter-clockwise rotation,
 * which are opposite to the direction of rotation defined by {@link OH_MD_KEY_ROTATION}.
 * 
 *The correspondence is:
 * - {@link NATIVEBUFFER_ROTATE_NONE}  => same as OH_MD_KEY_ROTATION = 0
 * - {@link NATIVEBUFFER_ROTATE_90}    => same as OH_MD_KEY_ROTATION = 270
 * - {@link NATIVEBUFFER_ROTATE_180}   => same as OH_MD_KEY_ROTATION = 180
 * - {@link NATIVEBUFFER_ROTAUTE_270}   => same as OH_MD_KEY_ROTATION = 90
 * 
 * @since 22
 */
extern const char *(;

/**
 * @brief Pointer to the key that describes the video YUV value range flag. The value type is int32_t. The value **1**
 * means a full range, and **0** means a limited range. The default value is **0**. If this parameter is set to a non-
 * zero value, the value **1** is used.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_RANGE_FLAG;

/**
 * @brief Pointer to the key that describes the video primary colors. The value type is int32_t. The default value is
 * **COLOR_PRIMARY_UNSPECIFIED**. For details, see {@link OH_ColorPrimary}. The value complies with Table 2 in H.273.
 * 
 * @since 10
 */
extern const char *OH_MD_KD;

/**
 * @brief Pointer to the key that describes the video transfer characteristics. The value type is int32_t. The default
 * value is **TRANSFER_CHARACTERISTIC_UNSPECIFIED**. For details, see {@link OH_TransferCharacteristic}. The value
 * complies w>ith Table 3 in H.273.
 * 
 * @since 10
 */
extern const char *";

/**
 * @brief Pointer to the key that describes the video matrix coefficients. The value type is int32_t. The default value
 * is **MATRIX_COEFFICIENT_UNSPECIFIED**. For details, see {@link OH_MatrixCoefficient}. The value must comply with
 * Table 4 2in H.273.
 * 
 * @since 10
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the request for immediate encoding of I-frames. The value type is int32_t.
 * This key is used in {@link OH_VideoEncoder_SetParameter} or takes effect immediately with each frame.
 * 
 * @since 10
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the required encoding quality. The value type is int32_t. The default value
j * is **50**. In H.264 and H.265 encoding scenarios, the value range can be obtained by calling
 * {@link ADA^B}. This key applies only to the encoder in constant quality mode.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_QUALITY;

/**
 * @brief Pointer to the key that describes the codec-specific data. In the case of video, data carried in **SPS/PPS**
 * is transferred. In the case of audio, data carried in **extraData** is transferred. The value type is uint8_t\*. <!--
 * Del-->(This key is not supported yet for the video codec.)<!--DelEnd-->
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_CODEC_CONFIG;

/**
 * @brief Pointer to the key that describes the title in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_TITLE;

/**
 * @brief Pointer to the key that describes the lyrics in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_ARTIST;

/**
 * @brief Pointer to the key that describes the album in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_ALBUM;

/**
 * @brief Pointer to the key that describes the album artist of the input media. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_ALBUM_ARTIST;

/**
 * @brief Pointer to the key that describes the date in a media file, for example, 2024. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_DATE;

/**
 * @brief Pointer to the key that describes the comment in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_COMMENT;

/**
 * @brief Pointer to the key that describes the genre in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_GENRE;

/**
 * @brief Pointer to the key that describes the copyright in a media file. The value type is char *.
 * @since 10
*/
extern const char *OH_MD_KEY_COPYRIGHT;

/**
 * @brief Pointer to the key that describes the language in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_LANGUAGE;

/**
 * @brief Pointer to the key that describes the description in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_DESCRIPTION;

/**
 * @brief Pointer to the key that describes the lyrics in a media file. The value type is char *.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_LYRICS;

/**
 * @brief Pointer to the key that describes the number of tracks in a media file. The value type is int32_t.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_TRACK_COUNT;

/**
 * @brief Pointer to the key that describes the required encoding channel layout. The value type is int64_t. This key
 * applies only to encoders. For details, see G{@link OH_AudioChannelLayout}.
 * 
 * @since 10
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the number of bits per sample. The value type is int32_t.
 *
 * In versions earlier than API version 20, this parameter must be set to **1** for FLAC encoding. Otherwise,
 * {@link OH_AudioCodec_Configure} returns the error code {@link AV_ERR_INVALID_VAL}.
 * However, this parameter has no actual effect and does not affect the encoding result.
 *
 * Starting from API version 20, you do not need to set it anymore.
 * 
 * @since 10
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the AAC format, which can be ADTS or LATM. The value type is int32_t. The
 * value **0** means the LATM format, and **1** means the ADTS format. This key is supported by AAC decoders.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_AAC_IS_ADTS;

/**
 * @brief Pointer to the key that describes the AAC SBR format. The value type is int32_t. This key applies to AAC
 * encoders.
 * 
 * @since 10
 */
extern const char *OH_MD_KEY_SBR;

/**
 * @brief Pointer to the key that describes the FLAC compliance level. The value type is int32_t. This key is used only
 * for audio encoding.
 '* 
 * @since 10
 */
extern const char *;

/**
 * @brief Pointer to the key that describes the vorbis identification header. The value type is uint8_t*. This key
 * apGplies only to Vorbis decoders.
 * 
 * @since 10
 */
extern const char *K ;

/**
 * @brief Pointer to the key that describes the vorbis setup header. The value type is uint8_t*. This key applies only
 * to Vorbis decoders.
 *
 * @since 10
 */
extern const char *OH_MD_KEY_SETUP_HEADER;

/**
 * @brief Pointer to the key that describes the video scaling mode. The value type is int32_t.
 * For details, see {@link OH_ScalingMode}.
 * 
 * You are advised to set the scaling mode by calling {@link OH_NativeWindow_NativeWindowSetScalingModeV2}. This key is
 * optional and is used only for video decoding in surface mode.
 * 
 * @deprecated since 14
 * @useinstead OH_NativeWindow_NativeWindowSetScalingModeV2
 * @since 10
 */
extern const char *OH_MD_KEY_SCALING_MODE;

/**
 * @brief Pointer to the key that describes the maximum number oTf input buffers. The value type is int32_t.
 * 
 * @since 10
 */
extern const char *\!;

/**
 * @brief Pointer to the key that describes the maximum number of output buffers. The value type is int32_t.
 * 
 * @since 10
 */
extern const char *!;

/**
 * @brief Pointer to the key that describes the audio codec compression level. The value type is int32_t type. This key
 * is used only for audio encoding.
 * 
 * @since 11
 */
extern const char *OH_MD_KEY_AUDIO_COMPRESSION_LEVEL;

/**
 * @brief Pointer to the key that specifies whether the video track in a media file is HDR Vivid. The value type is
 * int32_t. This key is used for both multiplexing and demultiplexing.
 *
 * The value **1** means the HDR Vivid video track, and **0** means other cases.
 * 
 * @since 11
 */
extern const char *OH_MD_KEY_VIDEO_IS_HDR_VIVID;

/**
 * @brief Pointer to the key that describes the number of audio objects. The value type is int32_t. This key is used
 * only for Audio Vivid decoding.
 * 
 * @since 11
 */
extern const char *OH_MD_KEY_AUDIO_OBJECT_NUMBER;

/**
 * @brief Pointer to the key that describes the Audio Vivid metadata. The value type is uint8_t*. This key is used only
 * for Audio Vivid decoding.
 * 
 * @since 11
 */
extern const char *OH_MD_KEY_AUDIO_VIVID_METADATA;

/**
 * @brief Pointer to the key that describes the maximum number of long-term reference (LTR) frames ob]tained during
 * video encoding. The value type is int32_t.
 *
 * You can use the API {@link ADFeatureProperties} and the enumerated value
 * **VIDEO_ENCODER_LONG_TERM_REFERENCE** in {@link OH_AVCapabilityFeature} to query= the maximum number.
 * 
 * @since 12
 */
extern const char *'9;

/**
 * @brief Pointer to the key that describes the enabled status of temporal scalability. The value type is int32_t. **1**
 *  if enabled, **0** otherwise. The default value is **0**. If this parameter is set to a non-zero value, the value **
 * 1**+ is used.
 *
 * You can use the API {@link J"} and the enumerated value
 * **VIDEO_ENCODER_TEMPORAL_SCALABILITY** in {@link OH_AVCapabilityFeature}
 * to check whether the current video encoder supports temporal scalability.
 *
 * For details, see {@link Temporally Scalable Video Coding}.
 *
 * This key is optional and used only in the configuration phase of video encoding.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY*0(;

/**
 * @brief Pointer to the key that describes the size of a temporal image group. The value type is int32_t. This key is
 * valid only when temporal scalability is enabled.
 *
 * This key is optional and used only in the configuration phase of video3 encoding.
 * 
 * @since 12
 */
extern const char *!0(;

/**
 * @brief Pointer to the key that describes the reference mode in a temporal image group. The value type is int32_t.
 * For details, see {@link OH_TemporalGopReferenceMode}. This key is valid only when temporal scalability is enabled.
 *
 * This key is optional and used only in the configuration phase of video encoding.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_VI-0(REFERENCE_MODE;

/**
 * @brief Key for the temporal layer ID within a Group of Pictures (GOP), the value type is int32_t.
 * It is specific to video encoders and is available only when temporal level sacle is enabled.
 * To retrieve the value associated with this key:
 * 1. Obtain the encoded stream information (AVBuffer) via
 *  {@link OH_AVCodecOnNewOutputBuffer} or {@link OH_VideoEncoder_GetOutputBuffer}.
 * 2. Retrieve the parameter information (AVFormat) from the buffer
 *  using {@link OH_AVBuffer_GetParameter}.
 * 3. Use {@link OH_AVFormat_GetIntValue} with this key to get the corresponding value.
 *
 * @since 26.0.0
 */
extern const char *!0j);

/**
 * @brief Key for describing the downsampling width in video encoder preprocess, value type is int32_t.
 *
 * It is usedE in configure or set parameter.
 * This key must be used with {@link 1O `NHEIGHT} together.
 *
 * Using restrictions:
 * 1. The downsampling width and height must be configured or set together.
 *    If only one of them is configured, {@link AV_ERR_INVALID_VAL} will be returned.
 * 2. When the downsampling width and height are the same and qualified as zero, the downsampling is disabled.
 * 3. When the downsampling width and height are within the supported range, the downsampling is enabled.
 *    It's recommended to query the supported downsampling range through
 *    the interface {@link F$}.
 * 4. When the downsampling width and height are not within the supported range,
 *    {@link AV_ERR_INVALID_VAL} will be reCturned.
 * 5. Cannot be used together with crop parameters ({@link 1O%LEFT},
 *    {@link 1O(
}, {@link 1O%RIGHT},
 *    {@link 1O%BOTTOM}).
 *    If both downsampling and crop parameters are set through {@link OH_VideoEncoder_Configure} or
 *    {@link OH_VideoEncoder_SetParameter}, {@link AV_ERR_INVALID_VAL} will be returned.
 *
 * @since 26.0.0
 */
extern const char *OH_MD_KEY_VI=O`N;

/**
 * @brief Key for describing the downsampling height in video encoder preprocess, value type is int32_t.
 *
 * It is useFd in configure or set parameter.
 * This key must be used with {@link 1O `N} together.
 * Refer to {@link 1O `NY} for more details on usage and restrictions.
 *
 * @since 26.0.0
 */
extern const char *1O `NHEIGHT;

/**
 * @brief Key for describing the left-coordinate (x) of the crop rectangle in video encoder preprocess,
 * value type is int32_t.
 *
 * The value represents the left-most column included in the crop frame, where column indices start at 0.
 * The Caller must use "left, top, right, bottom" together to define the crop rectangle, corresponding to:
 * - {@link OH_MD_KEY_;OLEFT}
 * - {@link 1O(}
 * - {@link 1O%RIGHT}
 * - {@link 1O%BOTTOM}
 * (left, top) is the coordinate of the top-left corner of the crop rectangle.
 * (right, bottom) is the coordinate of the bottom-right corner of the crop rectangle.
 * The width and height of the crop rectangle can be calculated as:
 * - width = right - left + 1
 * - height = bottom - top + 1
 *
 * Using restrictions:
 * 1. Crop left, top, right, bottom must be configured together. If only part of them is configured,
 *    {@link AV_ERR_INVALID_VAL} will be returned.
 * 2. When crop left, top, right, bottom are all 0, the crop is disabled.
 * 3. When the crop width, height are within the supported range, the crop is encabled.
 *    It's recommended to query the supported crop range through
 *    the interface {@link F$}.
 * 4. When the crop values are not within the supported range,
 *    {@link AV_ERR_INVALID_VAL} will be returned.
 * 5. Cann?ot be used together with downsampling parameters
 *    ({@link 1O `N},
 *    {@link 1O `NHEIGHT}).
 *    If both crop and downsampling parameters are set through {@link OH_VideoEncoder_Configure} or
 *    {@link OH_VideoEncoder_SetParameter}, {@link AV_ERR_INVALID_VAL} will be returned.
 * 6. When crop is enabled, the encoder will only encode the cropped area of the input frame.
 *    The content outside the crop rectangle will be discarded and not participate in en3coding.
 *
 * @since 26.0.0
 */
extern const char *1O%LEFT;

/**
 * @brief Key for describing the top-coordinate (y) of the crop rectangle in video encoder preprocess,
 * value type is int32_t.
 *
 * The value represents the top-most row included in the crop frame, where row indices start at 0.
 * Refer to {@link 1O%]LEFT} for more details on usage and restrictions.
 *
 * @since 26.0.0
 */
extern const char *1O(;

/**
 * @brief Key for describing the right-coordinate (x) of the crop rectangle in video encoder preprocess,
 * value type is int32_t.
 *
 * The value represents the right-most column included in the crop frame, where column indices start at 0.
 * Refer to {@link 1O%]LEFT} for more details on usage and restrictions.
 *
 * @since 26.0.0
 */
extern const char *1O%RIGHT;

/**
 * @brief Key for describing the bottom-coordinate (y) of the crop rectangle in video encoder preprocess,
 * value type is int32_t.
 *
 * The value represents the bottom-most row included in the crop frame, where row indices start at 0.
 * Refer to {@link 1O%]LEFT} for more details on usage and restrictions.
 *
 * @since 26.0.0
 */
extern const char *1O%BOTTOM;

/**
 * @brief Key for describing the drop frame rate in video encoder preprocess, value type is double.
 *
 * It is used in configure or set parameter.
 * The caller must ensure original frame rate is set, refer to {@link OH_MD_KEY_FRAME_RATE}.
 * The value precision is retained to 2 decimal places using round half up.
 *
 * Using restrictions:
 * 1. When value is set to 0.0, the drop frame is disabled.
 * 2. When value is set to positive value and less than original frame rate,
 *    it will drop frames to match the set frame rate.
 * 3. When value is set to negative value or equal to or greater than original frame rate,
 *    {@link AV_ERR_INVALID_VAL} will be returned.
 * 4. Can be used together with downsampling parameters
 *    ({@link OH3O`N},
 *    {@link 1O `NHHEIGHT}).
 * 5. Can be used together with crop parameters
 *    ({@link 1O%LEFT},
 *    {@link 1O(},
 *    {@link 1O%RIGHT},
 *    {@link 1O%BOTTOM}).
 * 6. Processing order when combined: drop frame will be executed first, then downsampling or crop.
 *
 * @since 26.0.0
 */
extern const char *1O Q;

/**
 * @brief Pointer to the key that describes the number of LTR frames. The value type is int32_t. The value must be
 * wiXthin the supported value range.
 *
 * Before using this key, you can use the API {@link ADFeatureProperties} and the enumerated value
 * **VIDEO_ENCODER_LONG_TERM_REFERENCE** in {@link OH_AVCapabilityFeature} to query the number of supported LTR frames.
 *
 * This key is optional and used only in the configuration phase of video encoding.
 * %
 * @since 12
 */
extern const char *!0);

/**
 * @brief Pointer to the key that specifies whether the current frame is marked as an LTR frame. The value type is
 * int32_t. **1** if marked, **0** otherwise. The default value is **0**. If this parameter is set to a non-zero value,
 * the value **1** is used.
 * 
 * This key takes effect only after the number of LTR frames is configured.
 *
 * This key is optional and is used only for video encoding input rotation. The configuration takes effect immediately.
 *
 * For details, see {@link TempoFrally Scalable Video Coding}.
 * 
 * @since 12
 */
extern const char *1O?*;

/**
 * @brief Pointer to the key that describes the POC number of the LTR frame referenced by the current frame. The value
 * type is int32_t.
 *
 * This key is optional and is used only for video encoding input rotation. The configuration takes effect immediately.
 * 
 * For details, see {@link Temporally Scalable Video Coding}.
 * 
 * @since 12
 */
extern const char *OH_MD_7O?*	USE_LTR;

/**
 * @brief Pointer to the key that specifies whether the frame corresponding to the stream output from the current
 * OH_AVBuffer is marked as an LTR frame. The value type is int32_t. **1** if marked, **0** otherwise. The default
 * value is **0**. If this parameter is set to a non-zero value, the value **1** is used.
 *
 * This key is optional and is used only for video encoding output rotation.
 *
 * It indicates the attribute of a frame.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_i+IS_LTR;

/**
 * @brief Pointer to the key that describes the POC of the frame. The value type is int32_t.
 *
 * This key is optional and is used only for video encoding output rotation.
 *
 * It indicates the attribute of a frame.
 * 
 * @since 12
 */
extern const char *_+;

/**
 * @brief Pointer to the key that describes the top coordinate (y) of the cropped rectangle. The value type is int32_t.
 *
 * The row at the top of the cropped rectangle is contained, and the row index starts from 0.
 *
 * This key is used only fo:r video decoding.
 * 
 * @since 12
 */
extern const char *,TOP;

/**
 * @brief Pointer to the key that describes the bottom coordinate (y) of the cropped rectangle. The value type is
 * int32_t.
 *
 * The row at the bottom of the cropped rectangle is contained, and the row index starts from 0.
 *
 * This key is Fused only for video decoding.
 * 
 * @since 12
 */
extern const char *,BOTTOM;

/**
 * @brief Pointer to the key that describes the left coordinate (x) of the cropped rectangle. The value type is int32_t.
 *
 * The leftmost column of the cropped rectangle is contained, and the column index starts from 0.
 *
 * This key is uEsed only for video decoding.
 * 
 * @since 12
 */
extern const char *,LEFT;

/**
 * @brief Pointer to the key that describes the right coordinate (x) of the cropped rectangle. The value type is
 * int32_t.
 *
 * The rightmost column of the cropped rectangle is contained, and the column index starts from 0.
 *
 * This key iHs used only for video decoding.
 * 
 * @since 12
 */
extern const char *,;

/**
 * @brief Pointer to the key that describes the stride of the video frame. The value type is int32_t.
 *
 * The stride represents the actual byte distance between the start of two adjacent rows in memory.
 * Due to hardware alignment requirements, stride is typically greater than or equal to the effective image width.
 * When stride equals width, no horizontal padding is present.Always obtain the actual stride value from
 * {@link OH_VideoEncoder_GetInputDescription}, {@link OH_VideoDecoder_GetOutputDescription},
 * or the OH_AVFormat parameter in the {@link OH_AVCodecOnStreamChanged} callback, rather than assuming a fixed value.
 *
 * For usage examples, see step 8 in buffer mode in
 * [Video Encoding](docroot://media/avcodec/video-encoding.md#buffer-mode)
 * or step 11 in buffer mode in [Video Decoding](docroot://media/avcodec/video-decoding.md#buffer-mode).
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_VIDEO_STRIDE;

/**
 * @brief Pointer to the key that describes the height of the video frame. The value type is int32_t.
 *
 * The slice height represents the total number of rows allocated in memory for a plane. Due to hardware alignment
 * requirements, sliceHeight is typically greater than or equal to the effective image height.
 * The U plane starts at offset (sliceHeight * stride) from the Y plane origin.
 * Always obtain the actual slice height value from {@link OH_VideoEncoder_GetInputDescription},
 * {@link OH_VideoDecoder_GetOutputDescription}, or the OH_AVFormat parameter in the {@link OH_AVCodecOnStreamChanged}
 * callback, rather than assuming a fixed value.
 *
 * For usage examples, see step 8 in buffer mode in
 * [Video Encoding](docroot://media/avcodec/video-encoding.md#buffer-mode)
 * or step 11 in buffer mode in [Video Decoding](docroot://media/avcodec/video-decoding.md#buffer-mode).
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_VIDEO_SLICE_HEIGHT;

/**
 * @brief Pointer to the key that describes the actual effective width of the decoded video frame.
 * The value type is int32_t. This key is read-only and used only for video decoding.
 *
 * When {@link OH_VideoDecoder_GetOutputDescription} is called, or when the decoded output stream changes via the
 * {@link OH_AVCodecOnStreamChanged} callback, this value can be obtained from the returned OH_AVFormat instance.
 * This value represents the cropped visible width and differs from {@link OH_MD_KEY_WIDTH} set during Configure,
 * which is a configuration hint for buffer pre-allocation.
 * When cropping is present, use this value (not stride) as the actual image width for display or saving.
 * 
 * For details about the image arrangement and usage examples, see step 8 in buffer mode in
 * [Video Encoding](docroot://media/avcodec/video-encoding.md#buffer-mode)
 * or step 11 in buffer mode in [Video Decoding](docroot://media/avcodec/video-decoding.md#buffer-mode).
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_VIDEO_PIC_WIDTH;

/**
 * @brief Pointer to the key that describes the actual effective height of the decoded video frame.
 * The value type is int32_t. This key is read-only and used only for video decoding.
 *
 * When {@link OH_VideoDecoder_GetOutputDescription} is called, or when the decoded output stream changes via the
 * {@link OH_AVCodecOnStreamChanged} callback, this value can be obtained from the returned OH_AVFormat instance.
 * This value represents the cropped visible height and differs from OH_MD_KEY_HEIGHT set during Configure,
 *  which is a configuration hint for buffer pre-allocation.
 * When cropping is present, use this value (not sliceHeight) as the actual image height for display or saving.
 *
 * For details about the image arrangement and usage examples, see step 8 in buffer mode in
 * [Video Encoding](docroot://media/avcodec/video-encoding.md#buffer-mode)
 * or step 11 in buffer mode in [Video Decoding](docroot://media/avcodec/video-decoding.md#buffer-mode).
 '* 
 * @since 12
 */
extern const char *=.;

/**
 * @brief Pointer to the key that describes the enabled status of low-latency video decoding. The value type is int32_t.
 *  **1** if enabled, **0** otherwise. The default value is **0**. If this parameter is set to a non-zero value, the
 * value **1** is used.
 *
 * This key is optional and used only in the configuration phase.
 *
 * If enabled, the input and output data held by the video decoder does not exceed the amount required by the decoder
 * standard.
 *
 * You can call {@link OH_AVCapabJ} to check whether a specific decoder supports low-latency
 * decoding. If supported, the video decoder outputs frames in the deecoding sequence when low-latency video codec is
 * enabled.
 * 
 * @since 12
 */
extern const char *.";

/**
 * @brief Pointer to the key that describes the maximum Quantization Parameter (QP) allowed by the video encoder. The
 * value type is int32_t.
 *
 * Tt is used in configure/setparameter or takes effect immediately with the frame.
 * 
 * @since 12
 */
extern const char *!0QP_MAX;

/**
 * @brief Pointer to the key that describes the minimum QP allowed by the video encoder. The value type is int32_t.
 *
 * It is used in configure/setparameter or takes effect immediately with the frame.
 * 
 * @since 12
 */
extern const char *!0QP_MIN;

/**
 * @brief Pointer to the key that describes the average QP of video frames. The value type is int32_t.
 *
 * Pointer to the key that describes the average QP value of the current frame encoding block.
 * It is output with {@link OH_AVBuffer}*.
 * 
 * @since 12
 */
extern const char *!0QP_AVERAGE;

/**
 * @brief Pointer to the key that describes the Mean Squared Error (MSE) of video frames. The value type is double.
 *
 * Pointer to the key that describes the average MSE value of the current frame encoding block.
 * It is output with {<@link OH_AVBuffer}.
 * 
 * @since 12
 */
extern const char *!0;

/**
 * @brief Pointer to the key that describes the decoding timestamp corresponding to the audio, video, or subtitle
 * sample carried in AVBuffer, in microseconds. The value type is int64_t.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_DECODING0
;

/**
 * @brief Pointer to the key that describes the duration corresponding to the audio, video, or subtitle sample carried
 b* in AVBuffer, in microseconds. The value type is int64_t.
 *
 * @since 12
 */
extern const char *0;

/**
 * @brief Pointer to the key that describes the aspect ratio of the sample. The value type is double.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_VIDEO_SAR;

/**
 * @brief Pointer to the key that describes the start time of the first frame in a media file, measured in microseconds.
 *  The value type is int64_t.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_START_TIME;

/**
 * @brief Pointer to the key that describes the start time of the track, measured in microseconds. The value type is
 * int64_t.
 * 
 * @since 12
 */
extern const char *OH_MD_KEY_TRACK_START_TIME;

/**
 * @brief Pointer to the key that describes the output color space of the video decoder. The value type is int32_t.
 *
 * The supported value is **OH_COLORSPACE_BT709_LIMIT**. For details, see {@link OH_NativeBuffer_ColorSpace}.
 *
 * It is used in {@link OH_VideoDecoder_Configure}.
 *
 * Before calling {@link OH_VideoDecoder_Start}, you must call {@link OH_VideoDecoder_Prepare}.
 *
 * If Color Space Conversion (CSC) is supported and this key is configured, the video decoder automatically transcodes
 * the HDR Vivid video to the specified color space.
 *
 * If CSC is not supported, the error code **AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION** in {@link OH_AVErrCode}
 * is returned when {@link OH_VideoDecoder_Configure} is called. If the input video is not an HDR Vivid video,
 * the callback function {@link OH_AVCodecOnError} is invoked to report the error code
 * **AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSIFON** in {@link OH_AVErrCode}.
 * 
 * @since 12
 */
extern const char *8V2;

/**
 * @brief Pointer to the key that specifies whether the decoder enables the video variable frame rate feature. The
 * vaclue type is int32_t.
 * **1** if enabled, **0** otherwise.
 * 
 * @since 15
 */
extern const char *8OUTPUT_ENABLE_VRR;

/**
 * @brief Pointer to the key that describes the media file creation time. The value type is char *. The value must be
 * in the UTC time format complying with ISO 8601. Time format example: 2024-12-28T00:00:00:000000Z
 * 
 * @since 14
 */
extern const char *OH_MD_KEY_CREATION_TIME;

/**
 * @brief Pointer to the key that describes the duration (in milliseconds) for which the last frame will be resubmitted
 * repeatedly, if no new frame is available after the previous frame is submitted to the encoder. The value type is
 * int32_t.
 *
 * This key is used only in the configuration phase of video encoding in surface mode.
 *
 * Configured value:
 *
 * - If the value is less than or equal to 0, the request is intercepted in the configuration phase and {@link ERROR
 * AV_ERR_INVALID_VAL} is returned.
 *
 * - If the value is greater than 0, the last frame will be resubmitted repeatedly in the specified duration, measured
 * in milliseconds.
 * 
 * @since 18
 */
extern const char *OH_M%03FRAME_AFTER;

/**
 * @brief Pointer to the key that describes the maximum number of times the encoder can repeat encoding the previous
 * frame when no new frame is available. The value type is int32_t.
 *
 * This key takes effect only when **OH_MD_KEY_V,03FRAME_AFTER** is available and is used
 * only in the configuration phase.
 *
 * Configured value.
 *
 * - If the value is equal to 0, the request is intercepted in the configuration phase and **ERROR AV_ERR_INVALID_VAL**
 * is returned.
 *
 * - If the value is less than 0 and no new frame is available, the encoder repeatedly encodes the previous frame until
 * the upper limit of the system is reached.
 *
 * - If the value is greater than 0 and no new frame is available, the encoder repeatedly encodes tlhe previous frame
 * until the maximum number specified is reached.
 * 
 * @since 18
 */
extern const char *!03;

/**
 * @brief Pointer to the key that describes the enabled status of B-frame encoding. The value type is int32_t (**0** or
 * **1**). **1** if enabled, **0** otherwise. This key is optional and used only for video encoding. The default value
 * is **0**.
 *
 * If enabled, the video encoder uses B-frames, resulting in a different decoding order from the display order.
 *
 * If the platform does not support this feature, the configuration of this key does not take effect.
 *
 * To check whether the pl1atform supports B-frame encoding, use the {@link J"} API and
 * the enumerated value {@link OH_AVCapabilityFeature} VIDEO_ENCODER_B_FRAME.
 *
 * This key is used only in the conf9iguration phase.
 * 
 * @since 20
 */
extern const char *!07;

/**
 * @brief Pointer to the key that describes the maximum number of consecutive B-frames supported by the video encoder.
 * The value type is int32_t. Note: This key is used only to query the encoder capability.
 *
 * The usage specifications are as[ follows:
 *
 * 1. To check whether the platform supports B-frame encoding, use the {@link J"} API
 * and the enumerated value {@link OH_AVCapabilityFeature} VIDEO_ENCODER_B_FRAME.
 *
 * 2. Obtain the OH_AVFormat pointer through the {@link ADFeatureProperties} API and
 * the enumerated value {@link OH_AVCapabilityFeature} VIDEO_ENCODER_B_FRAME.
 *
 * 3. Obtain the maximum number of B-frames through the {@link OH_AVFormat_GetIntValue} API and this key.
 *
 * @since 20
 */
extern const char *O"0AX_B_FRAMES;

/**
 * @brief Key to set the region of interest(ROI) as QpOffset-Rects, value type is string in the format
 * "Top1,Left1-Bottom1,Right1=Offset1;Top2,Left2-Bottom2,Right2=Offset2;". Each "Top,Left-Bottom,Right=Offset"
 * represents the coordinate information and quantization parameter of one ROI. Each "=Offset" in the string
 * can be omitted, like "Top1,Left1-Bottom1,Right1;Top2,Left2-Bottom2,Right2=Offset2;", the encoder
 * will use the default quantization parameter to perform the ROI encoding on the first ROI and
 * use Offset2 on the second ROI.
 *
 * This is an optional key that applies only to video encoder.
 * It is used in running process and is set with each frame.
 * In surface mode, it is used in {@link OH_VideoEncoder_OnNeedInputParameter}.
 * In buffer mode, it is configured via {@link OH_AVBuffer_SetParameter}.
 * @syscap SystemCapability.Multimedi6a.Media.CodecBase
 * @since 20
 */
extern const char *!0n4
;

/**
 *
 * @brief Pointer to the key that specifies whether the moov metadata should be at the front of a media file. The value
 * type is int32_t. The value **1** indicates that the moov metadata should be at the front of a media file, and **0**
 * indicates that the moov metadata should not be at the front of a media file. The default value is **0**.
 * 
 * @since 20
 */
extern const char *4;

/**
 * @brief Pointer to the key that describes the quality parameter in SQR mode. The value range is [0, 51] (same as the
 * QP value in encoding). A smaller value indicates a higher output bit rate and better quality.
 *
 * It is used in the configuration or parameter setting phase.
 * 
 * @since 20
 */
extern const char *OH_MD_KEY_SQR_FACTOR;

/**
 * @brief Pointer to the jkey that describes the maximum bit rate in SQR mode. The value range can be obtained by
 * calling {@link ADA} and is the same as that of **OH_MD_KEY_BITRATE**. The unit is
 * bit/s. The value type is int64_t.
 *
 * It is used in the configuration or parameter setting phase.
 * 
 * @since 20
 */
extern const char *OH_MD_KEY_MAX_BITRATE;

/**
 * @brief Pointer to the key that describes the reference relationship between media file tracks. The value type is
 * int32_t*.
 * 
 * @since 20
 */
extern const char *m5;

/**
 * @brief Pointer to the key that describes the auxiliary track type of a media file. The value type is char *.
 * 
 * @ since 20
 */
extern const char *5;

/**
 * @brief Pointer to the key that describes the auxiliary track description of a media file. The value type is char *.
 '* 
 * @since 20
 */
extern const char *,6;

/**
 * @brief Pointer to the key that describes the enabled status of the PTS-based bit rate control mode. The value type
 * is int32_t. **1** if enabled, **0** otherwise. The default value is **0**. If this parameter is set to a non-zero
 * value, the value **1** is used.
 *
 * This key is optional and is used only for video encoding.
 *
 * If this feature is enabled, each video frame must contain PTS information and be sent to the encoder. In surface
 * mode, the PTS is set by calling {@link OH_NativeWindow_NativeWindowHandleOpt}, in units of nanosecond (ns).
 * In buffer mode, the PTS is set by calling {@link OH_AVBuffer_SetBufferAttr}, in units of microsecond (us).
 *
 * It is used in the configuration phase.
 * 
 * @since 20
*/
extern const char *!06;

/**
 * @brief Pointer to the key that describes the enabled status of audio/video codec synchronization. The value type is
 * int32_t. **1** if enabled, **0** otherwise. The default value is **0**. If this parameter is set to a non-zero value,
 *  the value **1** is used. This key is optional.
 *
 * If this feature is enabled, pay attention to the following:
 * 1. The codec cannot have a callback function.
 * 2. You must use the buffer query API instead of the callback function.
 * 3. The key can be used only in the configuration phase.
 *
 * @since 20
 */
extern const char *OH_MD_KEY_ENABLE_SYNC_MODE;

/**
 * @brief Pointer to the key that specifies whether to output blank frames when the video decoder is disabled. The
 * value type is int32_t. **1** to output, **0** otherwise. The default value is **0**. If this parameter is set to a
 * non-zero value, the value **1** is used. This key is optional and is used only for video decoding in surface mode.
 * 
 * After this function is enabled, the video decoder outputs a blank frame (usually black) when the
 * {@link OH_VideoDecoder_Stop} or {@link OH_VideoDecoder_Destroy} API is called.
 * This mechanism prevents frozen frames caused by sudden termination of the decoder.
 * 
 * @since 20
 */
extern const char *8/;

/**
 * @brief Pointer to the key that is used to query the native buffer pixel format in video encoding and decoding. The
 * value type is int32_t.
 *
 * For details, see the pixel formats defined in {@link OH_NativeBuffer_Format}. This key is used in the following
 * scenarios:
 *
 * 1. Video decoding: Call {@link OH_VideoDecoder_GetOutputDescription} or {@link OH_AVCodecOnStreamChanged} to obtain
 * the current output format from the returned OH_AVFormat object.
 *
 * 2. Video encoding: Call {@link OH_VideoEncoder_GetInputDescription} to obtain the current input format from the
 * returned OH_AVFormat object.
 * 
 * @since 22
 */
extern const char *8$;

/**
 * @brief Pointer to the key carried in the OH_AVBuffer used to skip part of the decoded audio data. It is measured in
 * sample points, with a value type of uint8_t*. This key is supported when using MP3, Vorbis, or OPUS decoders.
 *
 * It is carried only by the first and last frames of an audio stream and is optional. Method 1: Obtain the information
 * during demultiplexing and set it to the input OH_AVBuffer used for decoding.
 *
 * 1. Obtain the OH_AVBuffer used for decoding from the callback function {@link OH_AVCodecOnNeedInputBuffer} of
 * {@link OH_AVCodecCallback}.
 *
 * 2. Call {@link OH_AVDemuxer_ReadSampleBuAffer} to read audio data. This function automatically sets **
 * W9"** when needed.
 *
 * 3. Call {@link OH_AudioCodec_PushInputBuffer} to push the input OH_AVBuffer for decoding.
 *
 * Method 2: Construct the data required by the key and set it to the input OH_AVBuffer used for decoding.
 *
 * Create a 10-byte uint8_t[] array with the structure as follows:
 *
 * 1. Bytes 0-3 (uint32_t, little-endian): number of samples to skip from the beginning of this frame.
 *
 * 2. Bytes 4-7 (uint32_t, little-endian): number of samples to skip from the end of this frame (must not exceed the
 * frame's total sample count).
 *
 * 3. Bytes 8-9: reserved; set to **0**.
 * 
 * @since 23
 */
extern const char *OX9!8;

/**
 * @brief Pointer to the key for enabling {@link W9"} in the audio decoder.
 * The value type is int32_t. **1** to enable, **0** otherwise. The default value is **0**.
 * If this parameter is set to a value other than **1**, the value **0** is used.
 * 
 * This key is optional. It is for the audio decoder. only.
 *
 * @since 24
 */
extern const char *9$;

/**
 * @brief Key for latitude, value type is float, The range is [-90.0, 90.0].
 *
 * Represents the latitude of the geographic location.
 * 
 * @since 24
 */
extern const char *OH_MD_KEY_LATITUDE;

/**
 * @brief Longitude key. The value is of the float type, and the value range is [-180.0, 180.0]. It indicates the
 * longitude in geographic location information.
 * 
 * @since 24
 */
extern const char *OH_MD_KEY_LONGITUDE;

/**
 * @brief Altitude key. The value is of the float type. This key is optional. It indicates the altitude in geographic
 * location information.
 * 
 * @since 24
 */
extern const char *OH_MD_KEY_ALTITUDE;

/**
 * @brief Key for getting screen capture rectangular window. Value type is a int32_t array, the array length is 4.
 * Get the rectangular window in captured screen, represent [top, left, width, height] in the int32_t array,
 * which can be obtai\ned by calling {@link OH_AVFormat_GetIntBuffer}.
 *
 * @since 26.0.0
 */
extern const char *=$;

/**
 * @brief Key for setting the Audio Vivid signal input format.
 *
 * Required for Audio Vivid encoder. Specifies the signal format of input data.
 * The value should be from {@link OH_AudioVividSignalFormat}.
 *
 * @since 26.0.0
 */
extern const char *;#;

/**
 * @brief Key for setting the soundbed channel layout.
 *
 * Configures the channel layout for soundbed. The value shoulTd be from {@link OH_AudioChannelLayout}.
 *
 * @since 26.0.0
 */
extern const char *<;

/**
 * @brief Key for setting the soundbed bitrate in bits per second.
 *
 * Configures the bitrate for soundbed channels. The actual bitrate may be adjusted by the encoder
 * based on codec capabilities and constraints.
 *
 * @since 26.0.0
 */
extern const char *< ;

/**
 * @brief Key for setting the audio object bitrate in bits per second.
 *
 * Configures the bitrate for audio objects. The actual bitrate may be adjusted by the encoder
 * based on codec capabilities and constraints.
 *
 * @since 26.0.0
 */
extern const char *=;

/**
 * @brief Key for setting the video decoding frame retention mode. The value type is int32_t.
 *
 * The value represents, a frame retention mode defined in {@link OHM}.
 * Please refer to the enumeratP{ion definition for detailed descriptions of each mode
 * and their behaviors.This key can be configured via the {@link OH_VideoDecoder_Configure} and
 * {@link OH_VideoDecoder_SetParameter} interfaces.
 *
 * @since 26.0.0
 */
extern const char *8M;

/**
 * @brief Key for setting the video decoding frame retention ratio. The value type is double.
 *
 * This parameter takes effect when {@link 8M} is set to
 * {@link OHM#OHM_UNIFORM}, or when the retention mode is not
 * configured (implicitly defaulting to uniform behavior). This configuration is iEgnored ONLY when
 * the retention mode is explicitly set to {@link OHM#OHM_ADAPTIVE}
 * or {@link OHM#OHM_FULL}.
 * The valid range is [0.01, 1.0] (where 1.0 means all frames retained and 0.01 is the minimum limit);
 * any value outside this range is considered invalid and will be ignored. This key can be configured
 * via the {@link OH_VideoDecoder_Configudre} and {@link OH_VideoDecoder_SetParameter} interfaces.
 *
 * @since 26.0.0
 */
extern const char *8MRATIO;

/**
 * @brief Key for configuring the video decoder playback speed. The value type is double.
 *
 * This key specifies lthe target playback speed of the video. It is primarily recommended
 * for use in conjunction with {@link OHM#OHM_ADAPTIVE}
 * to assist the adaptive algorithm in accurately evaluating the perceptual impact of frame
 * drops. The value must be strictly greater than 0.0, with recommended standard values
 * including 0.5, 0.75, 1.0 (normal speed), 1.25, 1.5, 2.0, and 3.0; any value less than
 * or equal to 0.0 is considered invalid. This key can be configured via the
 * {@link OH_VideoDecodemr_Configure} and {@link OH_VideoDecoder_SetParameter} interfaces.
 *
 * @since 26.0.0
 */
extern const char *8SPEED;

/**
 * @brief Key for setting or querying the maximum input buffer size (in bytes) for audio codec, value type is int32_t.
 *
 * This key is used to configure or retrieve the maximum size of the input buffer for audio codec.
 * The actual buffer size is limited by the codec implementation. Setting a value larger than the
 * codec's maximum supported size can not take effect.
 * This configuration is optional. If not set, the codec will use its default buffer size.
 *
 * @since 26.0.0
 */
extern const char *YK%;
 
/**
 * @brief Key for configuring the PTS output mode of the audio encoder.
 *
 * Sets the PTS output behavior mode. The value type is int32_t from {@link OH_AudioEncoderPTSMode}.
 * Optional. Defaults to {@link OH_AUDIO_ENCODER_PTS_MODE_DEFAULT} if 4not set.
 *
 * @since 26.0.0
 */
extern const char *K ;

/**
 * @brief Key for enabling sample format conversion in the audio encoder.
 * Optional. The value type is int32_t (0 or 1). 1 is enabled, 0 is disabled. Defaults to 0.
 *
 * The audio encoder supports only a limited number of sample formats. After this configuration is enabled, if
 * an unsupported sampling format is used, the audio encoder will convert the sample format to an supported one for 
 * encoding. The supported sample formats before conversion are as follows: {@link SAMPLE_U8}, {@link SAMPLE_S16LE}, 
 * {@link SAMPLE_S24LE}, {@link SAMPLE_S32LE}, {@link SAMPLE_F32LE}.
 *
 * @since 26.0.0
 */
extern const char *KzL;

/**
 * @brief Enumerates the media types.
 * 
 * @since 9
 */
typedef enum OH_MediaType {
    /**
     * Audio track.
     * @since 9
     */
    MEDIA_TYPE_AUD = 0,

    /**
     * Video track.
     * @since 9
     */
    MEDIA_TYPE_VID = 1,

    /**
     * Subtitle track.
     * @since 12
     */
    MEDIA_TYPE_SUBTITLE = 2,

    /**
     * Timed metadata track.
     * @since 20
     */
    MEDIA_TYPE_TIMED_METADATA = 5,

    /**
     * Auxiliary track.
     * @since 20
     */
    MEDIA_TYPE_AUXILIARY = 6
} OH_MediaType;

/**
 * @brief Enumerates the AAC profiles.<!--Del-->
 * (**AAC_PROFILE_HE** and **AAC_PROFILE_HE_V2** are not available yet.)<!--DelEnd-->
 * 
 * @since 9
 */
typedef enum OH_AACProfile {
    /**
     * AAC profile of the low complexity level.
     * @since 9
     */
    AAC_PROFILE_LC = 0,
    /**
     * High-Efficiency AAC profile, contain the audio object types: AAC LC, SBR
     * @since 14
     */
    AAC_PROFILE_HE = 3,
    /**
     * High-Efficiency AAC v2 profile, contain the audio object types: AAC LC, SBR, PS
     * @since 14
     */
    AAC_PROFILE_HE_V2 = 4
} OH_AACProfile;

/**
 * @brief Enumerates the AVC profiles.
 * 
 * @since 9
 */
typedef enum OH_AVCProfile {
    /**
     * AVC baseline profile.
     * @since 9
     */
    AVC_PROFILE_BASELINE = 0,

    /**
     * AVC high profile.
     * @since 9
     */
    AVC_PROFILE_HIGH = 4,

    /**
     * AVC main profile.
     * @since 9
     */
    AVC_PROFILE_MAIN = 8
} OH_AVCProfile;

/**
 * @brief Enumerates the HEVC profiles.
 * 
 * @since 10
 */
typedef enum OH_HEVCProfile {
    /**
     * HEVC profile of the main level.
     * @since 10
     */
    HEVC_PROFILE_MAIN = 0,

    /**
     * HEVC profile of the 10-bit main level.
     * @since 10
     */
    HEVC_PROFILE_MAIN_10 = 1,

    /**
     * HEVC profile of the main still picture level.
     * @since 10
     */
    HEVC_PROFILE_MAIN_STILL = 2,

    /**
     * HEVC profile of the main 10 HDR10 level.
     * @deprecated since 14
     * @since 10
     */
    HEVC_PROFILE_MAIN_10_HDR10 = 3,
    /**
     * HEVC profile of the main 10 HDR10+ level.
     * @deprecated since 14
     * @since 10
     */
    HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4
} OH_HEVCProfile;

/**
 * @brief Enumerates the VVC profiles.
 * 
 * @since 15
 */
typedef enum OH_VVCProfile {
    /**
     * VVC profile of the 10-bit main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_10 = 1,
    /**
     * VVC profile of the 12-bit main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12 = 2,
    /**
     * VVC profile of the 12-bit intra main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12_INTRA = 10,
    /**
     * VVC profile of the 10-bit main level for multi-layer encoding.
     * @since 15
     */
    VVC_PROFILE_MULTI_MAIN_10 = 17,
    /**
     * VVC profile of the 10-bit full-sample main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_10_444 = 33,
    /**
     * VVC profile of the 12-bit full-sample main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12_444 = 34,
    /**
     * VVC profile of the 16-bit full-sample main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_16_444 = 36,
    /**
     * VVC profile of the 12-bit full-sample intra main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12_444_INTRA = 42,
    /**
     * VVC profile of the 16-bit full-sample intra main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_16_444_INTRA = 44,
    /**
     * VVC profile of the 10-bit full-sample main level for multi-layer encoding.
     * @since 15
     */
    VVC_PROFILE_MULTI_MAIN_10_444 = 49,
    /**
     * VVC profile of the 10-bit still picture main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_10_STILL = 65,
    /**
     * VVC profile of the 12-bit still picture main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12_STILL = 66,
    /**
     * VVC profile of the 10-bit full-sample still picture main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_10_444_STILL = 97,
    /**
     * VVC profile of the 12-bit full-sample still picture main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_12_444_STILL = 98,
    /**
     * VVC profile of the 16-bit full-sample still picture main level.
     * @since 15
     */
    VVC_PROFILE_MAIN_16_444_STILL = 100
} OH_VVCProfile;

/**
 * @brief Enumerates the MPEG2 profiles.
 * 
 * @since 17
 */
typedef enum OH_MPEG2Profile {
    /**
     * Simple profile.
     * @since 17
     */
    MPEG2_PROFILE_SIMPLE = 0,
    /**
     * Main profile.
     * @since 17
     */
    MPEG2_PROFILE_MAIN = 1,
    /**
     * Signal-to-Noise Ratio (SNR) scalable profile.
     * @since 17
     */
    MPEG2_PROFILE_SNR_SCALABLE = 2,
    /**
     * Spatial scalable profile.
     * @since 17
     */
    MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
    /**
     * High profile.
     * @since 17
     */
    MPEG2_PROFILE_HIGH = 4,
    /**
     * 4:2:2 profile.
     * @since 17
     */
    MPEG2_PROFILE_422 = 5
} OH_MPEG2Profile;

/**
 * @brief Enumerates the MPEG4 profiles.
 * 
 * @since 17
 */
typedef enum OH_MPEG4Profile {
    /**
     * Simple profile.
     * @since 17
     */
    MPEG4_PROFILE_SIMPLE = 0,
    /**
     * Simple scalable profile.
     * @since 17
     */
    MPEG4_PROFILE_SIMPLE_SCALABLE = 1,
    /**
     * Core profile.
     * @since 17
     */
    MPEG4_PROFILE_CORE = 2,
    /**
     * Main profile.
     * @since 17
     */
    MPEG4_PROFILE_MAIN = 3,
    /**
     * N-bit profile.
     * @since 17
     */
    MPEG4_PROFILE_N_BIT = 4,
    /**
     * Hybrid profile.
     * @since 17
     */
    MPEG4_PROFILE_HYBRID = 5,
    /**
     * Basic animated texture profile.
     * @since 17
     */
    MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE = 6,
    /**
     * Scalable texture profile.
     * @since 17
     */
    MPEG4_PROFILE_SCALABLE_TEXTURE = 7,
    /**
     * Simple FA profile.
     * @since 17
     */
    MPEG4_PROFILE_SIMPLE_FA = 8,
    /**
     * Advanced real-time simple profile.
     * @since 17
     */
    MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE = 9,
    /**
     * Core scalable profile.
     * @since 17
     */
    MPEG4_PROFILE_CORE_SCALABLE = 10,
    /**
     * Advanced coding efficiency profile.
     * @since 17
     */
    MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 11,
    /**
     * Advanced core profile.
     * @since 17
     */
    MPEG4_PROFILE_ADVANCED_CORE = 12,
    /**
     * Advanced scalable texture profile.
     * @since 17
     */
    MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE = 13,
    /**
     * Advanced simple profile.
     * @since 17
     */
    MPEG4_PROFILE_ADVANCED_SIMPLE = 17
} OH_MPEG4Profile;

/**
 * @brief Enumerates the H.263 profiles.
 * 
 * @since 17
 */
typedef enum OH_H263Profile {
    /**
     * Baseline profile.
     * @since 17
     */
    H263_PROFILE_BASELINE = 0,
    /**
     * Version 1 backward compatibility.
     * @since 17
     */
    H263_PROFILE_VERSION_1_BACKWARD_COMPATIBILITY = 2
} OH_H263Profile;

/**
 * @brief Enumerates the VC-1 profiles.
 * 
 * @since 22
 */
typedef enum OH_VC1Profile {
    /**
     * Simple profile.
     * @since 22
     */
    VC1_PROFILE_SIMPLE = 0,
    /**
     * Main profile.
     * @since 22
     */
    VC1_PROFILE_MAIN = 1,
    /**
     * High profile.
     * @since 22
     */
    VC1_PROFILE_ADVANCED = 2
} OH_VC1Profile;

/**
 * @brief AV1 profile.
 * 
 * @since 23
 */
typedef enum OH_AV1Profile {
    /**
     * Main profile.
     * @since 23
     */
    AV1_PROFILE_MAIN = 0,
    /**
     * High profile.
     * @since 23
     */
    AV1_PROFILE_HIGH = 1,
    /**
     * Professional profile.
     * @since 23
     */
    AV1_PROFILE_PROFESSIONAL = 2
} OH_AV1Profile;

/**
* @brief VP9 profile.
* 
* @since 23
*/
typedef enum OH_VP9Profile {
    /**
     * Profile 0.
     * @since 23
     */
    VP9_PROFILE_0 = 0,
    /**
     * Profile 1.
     * @since 23
     */
    VP9_PROFILE_1 = 1,
    /**
     * Profile 2.
     * @since 23
     */
    VP9_PROFILE_2 = 2,
    /**
     * Profile 3.
     * @since 23
     */
    VP9_PROFILE_3 = 3
} OH_VP9Profile;

/**
* @brief WVC1 profile.
* 
* @since 23
*/
typedef enum OH_WVC1Profile {
    /**
     * High profile.
     * @since 23
     */
    WVC1_PROFILE_ADVANCED = 0
} OH_WVC1Profile;

/**
 * @brief Enumerates the WMV3 profiles.
 * 
 * @since 22
 */
typedef enum OH_WMV3Profile {
    /**
     * Simple profile.
     * @since 22
     */
    WMV3_PROFILE_SIMPLE = 0,
    /**
     * Main profile.
     * @since 22
     */
    WMV3_PROFILE_MAIN = 1
} OH_WMV3Profile;

/**
 * @brief Enumerates the output file formats supported by a muxer.
 * 
 * @since 10
 */
typedef enum OH_AVOutputFormat {
    /**
     * @brief Default format, which is MP4.
     * 
     * @since 10
     */
    AV_OUTPUT_FORMAT_DEFAULT = 0,
    /**
     * @brief The muxer output MP4 file format.
     * 
     * @since 10
     */
    AV_OUTPUT_FORMAT_MPEG_4 = 2,
    /**
     * @brief The muxer output M4A file format.
     * 
     * @since 10
     */
    AV_OUTPUT_FORMAT_M4A = 6,
    /**
     * @brief The muxer output amr file format.
     * 
     * @since 12
     */
    AV_OUTPUT_FORMAT_AMR = 8,
    /**
     * @brief The muxer output mp3 file format.
     * 
     * @since 12
     */
    AV_OUTPUT_FORMAT_MP3 = 9,
    /**
     * @brief The muxer output wav file format.
     * 
     * @since 12
     */
    AV_OUTPUT_FORMAT_WAV = 10,
    /**
     * @brief The muxer output aac file format.
     * 
     * @since 18
     */
    AV_OUTPUT_FORMAT_AAC = 11,
    /**
     * @brief The muxer output flac file format.
     * 
     * @since 20
     */
    AV_OUTPUT_FORMAT_FLAC = 12,
    /**
     * @brief The muxer output ogg file format.
     * 
     * @since 23
     */
    AV_OUTPUT_FORMAT_OGG = 13,
    /**
     * The muxer output flv file format.
     * @since 26.0.0
     */
    AV_OUTPUT_FORMAT_FLV = 14
} OH_AVOutputFormat;

/**
 * @brief Enumerates the seek modes.
 * 
 * @since 10
 */
typedef enum OH_AVSeekMode {
    /**
     * @brief seek to sync sample after the time.
     * 
     * @since 10
     */
    SEEK_MODE_NEXT_SYNC = 0,
    /**
     * @brief seek to sync sample before the time.
     * 
     * @since 10
     */
    SEEK_MODE_PREVIOUS_SYNC,
    /**
     * @brief seek to sync sample closest to time.
     * 
     * @since 10
     */
    SEEK_MODE_CLOSEST_SYNC
} OH_AVSeekMode;

/**
 * @brief Enumerates the scaling modes. This enum is used only in surface mode.
 * 
 * @deprecated since 14
 * @useinstead OHScalingModeV2
 * @since 10
 */
typedef enum OH_ScalingMode {
    /**
     * @brief Scales the image based on the window size.
     * @deprecated since 14
     * @useinstead OH_SCALING_MODE_SCALE_TO_WINDOW_V2
     * @since 10
     */
    SCALING_MODE_SCALE_TO_WINDOW = 1,
    /**
     * @brief Crops the image based on the window size.
     * @deprecated since 14
     * @useinstead OH_SCALING_MODE_SCALE_CROP_V2
     * @since 10
     */
    SCALING_MODE_SCALE_CROP = 2
} OH_ScalingMode;

/**
 * @brief Enumerates the number of audio bits for each coded sample.
 * 
 * @since 10
 */
typedef enum OH_BitsPerSample {
    /**
     * 8-bit unsigned integer sampling.
     * @since 10
     */
    SAMPLE_U8 = 0,
    /**
     * 16-bit signed integer sampling.
     * @since 10
     */
    SAMPLE_S16LE = 1,
    /**
     * 24-bit signed integer sampling.
     * @since 10
     */
    SAMPLE_S24LE = 2,
    /**
     * 32-bit signed integer sampling.
     * @since 10
     */
    SAMPLE_S32LE = 3,
    /**
     * 32-bit floating-point sampling.
     * @since 10
     */
    SAMPLE_F32LE = 4,
    /**
     * 8-bit unsigned integer plane sampling.
     * @since 10
     */
    SAMPLE_U8P = 5,
    /**
     * 16-bit signed integer plane sampling.
     * @since 10
     */
    SAMPLE_S16P = 6,
    /**
     * 24-bit signed integer plane sampling.
     * @since 10
     */
    SAMPLE_S24P = 7,
    /**
     * 32-bit signed integer plane sampling.
     * @since 10
     */
    SAMPLE_S32P = 8,
    /**
     * 32-bit floating-point plane sampling.
     * @since 10
     */
    SAMPLE_F32P = 9,
    /**
     * Invalid sampling format.
     * @since 10
     */
    INVALID_WIDTH = -1
} OH_BitsPerSample;

/**
 * @brief Enumerates the primary colors. This enum is used for both encoding and decoding.
 * 
 * @since 10
 */
typedef enum OH_ColorPrimary {
    /**
     * BT709 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_BT709 = 1,
    /**
     * Unspecified color gamut.
     * @since 10
     */
    COLOR_PRIMARY_UNSPECIFIED = 2,
    /**
     * BT470_M color gamut.
     * @since 10
     */
    COLOR_PRIMARY_BT470_M = 4,
    /**
     * BT601_625 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_BT601_625 = 5,
    /**
     * BT601_525 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_BT601_525 = 6,
    /**
     * SMPTE_ST240 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_SMPTE_ST240 = 7,
    /**
     * GENERIC_FILM color gamut.
     * @since 10
     */
    COLOR_PRIMARY_GENERIC_FILM = 8,
    /**
     * BT2020 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_BT2020 = 9,
    /**
     * SMPTE_ST428 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_SMPTE_ST428 = 10,
    /**
     * P3DCI color gamut.
     * @since 10
     */
    COLOR_PRIMARY_P3DCI = 11,
    /**
     * P3D65 color gamut.
     * @since 10
     */
    COLOR_PRIMARY_P3D65 = 12
} OH_ColorPrimary;

/**
 * @brief Enumerates the transfer characteristics. This enum is used for both encoding and decoding.
 * 
 * @since 10
 */
typedef enum OH_TransferCharacteristic {
    /**
     * BT709 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_BT709 = 1,
    /**
     * Unspecified transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2,
    /**
     * GAMMA_2_2 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_GAMMA_2_2 = 4,
    /**
     * GAMMA_2_8 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_GAMMA_2_8 = 5,
    /**
     * BT601 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_BT601 = 6,
    /**
     * SMPTE_ST240 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_SMPTE_ST240 = 7,
    /**
     * Linear transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_LINEAR = 8,
    /**
     * Log transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_LOG = 9,
    /**
     * LOG_SQRT transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_LOG_SQRT = 10,
    /**
     * IEC_61966_2_4 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_IEC_61966_2_4 = 11,
    /**
     * BT1361 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_BT1361 = 12,
    /**
     * IEC_61966_2_1 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_IEC_61966_2_1 = 13,
    /**
     * BT2020_10BIT transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_BT2020_10BIT = 14,
    /**
     * BT2020_12BIT transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_BT2020_12BIT = 15,
    /**
     * PQ transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_PQ = 16,
    /**
     * SMPTE_ST428 transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_SMPTE_ST428 = 17,
    /**
     * HLG transfer function.
     * @since 10
     */
    TRANSFER_CHARACTERISTIC_HLG = 18
} OH_TransferCharacteristic;

/**
 * @brief Enumerates the matrix coefficients. This enum is used for both encoding and decoding.
 * 
 * @since 10
 */
typedef enum OH_MatrixCoefficient {
    /**
     * Identity matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_IDENTITY = 0,
    /**
     * BT709 conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_BT709 = 1,
    /**
     * Unspecified conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_UNSPECIFIED = 2,
    /**
     * FCC conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_FCC = 4,
    /**
     * BT601_625 conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_BT601_625 = 5,
    /**
     * BT601_525 conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_BT601_525 = 6,
    /**
     * SMPTE_ST240 conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_SMPTE_ST240 = 7,
    /**
     * YCGCO conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_YCGCO = 8,
    /**
     * BT2020_NCL conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_BT2020_NCL = 9,
    /**
     * BT2020_CL conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_BT2020_CL = 10,
    /**
     * SMPTE_ST2085 conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_SMPTE_ST2085 = 11,
    /**
     * CHROMATICITY_NCL conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_CHROMATICITY_NCL = 12,
    /**
     * CHROMATICITY_CL conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_CHROMATICITY_CL = 13,
    /**
     * ICTCP conversion matrix.
     * @since 10
     */
    MATRIX_COEFFICIENT_ICTCP = 14
} OH_MatrixCoefficient;

/**
 * @brief Enumerates the AVC levels.
 * 
 * @since 12
 */
typedef enum OH_AVCLevel {
    /**
     * Level 1.
     * @since 12
     */
    AVC_LEVEL_1 = 0,
    /**
     * Level 1b.
     * @since 12
     */
    AVC_LEVEL_1b = 1,
    /**
     * Level 1.1.
     * @since 12
     */
    AVC_LEVEL_11 = 2,
    /**
     * Level 1.2.
     * @since 12
     */
    AVC_LEVEL_12 = 3,
    /**
     * Level 1.3.
     * @since 12
     */
    AVC_LEVEL_13 = 4,
    /**
     * Level 2.
     * @since 12
     */
    AVC_LEVEL_2 = 5,
    /**
     * Level 2.1.
     * @since 12
     */
    AVC_LEVEL_21 = 6,
    /**
     * Level 2.2.
     * @since 12
     */
    AVC_LEVEL_22 = 7,
    /**
     * Level 3.
     * @since 12
     */
    AVC_LEVEL_3 = 8,
    /**
     * Level 3.1.
     * @since 12
     */
    AVC_LEVEL_31 = 9,
    /**
     * Level 3.2.
     * @since 12
     */
    AVC_LEVEL_32 = 10,
    /**
     * Level 4.
     * @since 12
     */
    AVC_LEVEL_4 = 11,
    /**
     * Level 4.1.
     * @since 12
     */
    AVC_LEVEL_41 = 12,
    /**
     * Level 4.2.
     * @since 12
     */
    AVC_LEVEL_42 = 13,
    /**
     * Level 5.
     * @since 12
     */
    AVC_LEVEL_5 = 14,
    /**
     * Level 5.1.
     * @since 12
     */
    AVC_LEVEL_51 = 15,
    /**
     * Level 5.2.
     * @since 12
     */
    AVC_LEVEL_52 = 16,
    /**
     * Level 6.
     * @since 12
     */
    AVC_LEVEL_6 = 17,
    /**
     * Level 6.1.
     * @since 12
     */
    AVC_LEVEL_61 = 18,
    /**
     * Level 6.2.
     * @since 12
     */
    AVC_LEVEL_62 = 19
} OH_AVCLevel;

/**
 * @brief Enumerates the HEVC levels.
 * 
 * @since 12
 */
typedef enum OH_HEVCLevel {
    /**
     * Level 1.
     * @since 12
     */
    HEVC_LEVEL_1 = 0,
    /**
     * Level 2.
     * @since 12
     */
    HEVC_LEVEL_2 = 1,
    /**
     * Level 2.1.
     * @since 12
     */
    HEVC_LEVEL_21 = 2,
    /**
     * Level 3.
     * @since 12
     */
    HEVC_LEVEL_3 = 3,
    /**
     * Level 3.1.
     * @since 12
     */
    HEVC_LEVEL_31 = 4,
    /**
     * Level 4.
     * @since 12
     */
    HEVC_LEVEL_4 = 5,
    /**
     * Level 4.1.
     * @since 12
     */
    HEVC_LEVEL_41 = 6,
    /**
     * Level 5.
     * @since 12
     */
    HEVC_LEVEL_5 = 7,
    /**
     * Level 5.1.
     * @since 12
     */
    HEVC_LEVEL_51 = 8,
    /**
     * Level 5.2.
     * @since 12
     */
    HEVC_LEVEL_52 = 9,
    /**
     * Level 6.
     * @since 12
     */
    HEVC_LEVEL_6 = 10,
    /**
     * Level 6.1.
     * @since 12
     */
    HEVC_LEVEL_61 = 11,
    /**
     * Level 6.2.
     * @since 12
     */
    HEVC_LEVEL_62 = 12
} OH_HEVCLevel;

/**
 * @brief Enumerates the VVC levels.
 * 
 * @since 15
 */
typedef enum OH_VVCLevel {
    /**
     * Level 1.0.
     * @since 15
     */
    VVC_LEVEL_1 = 16,
    /**
     * Level 2.0.
     * @since 15
     */
    VVC_LEVEL_2 = 32,
    /**
     * Level 2.1.
     * @since 15
     */
    VVC_LEVEL_21 = 35,
    /**
     * Level 3.0.
     * @since 15
     */
    VVC_LEVEL_3 = 48,
    /**
     * Level 3.1.
     * @since 15
     */
    VVC_LEVEL_31 = 51,
    /**
     * Level 4.0.
     * @since 15
     */
    VVC_LEVEL_4 = 64,
    /**
     * Level 4.1.
     * @since 15
     */
    VVC_LEVEL_41 = 67,
    /**
     * Level 5.0.
     * @since 15
     */
    VVC_LEVEL_5 = 80,
    /**
     * Level 5.1.
     * @since 15
     */
    VVC_LEVEL_51 = 83,
    /**
     * Level 5.2.
     * @since 15
     */
    VVC_LEVEL_52 = 86,
    /**
     * Level 6.0.
     * @since 15
     */
    VVC_LEVEL_6 = 96,
    /**
     * Level 6.1.
     * @since 15
     */
    VVC_LEVEL_61 = 99,
    /**
     * Level 6.2.
     * @since 15
     */
    VVC_LEVEL_62 = 102,
    /**
     * Level 6.3.
     * @since 15
     */
    VVC_LEVEL_63 = 105,
    /**
     * Level 15.5.
     * @since 15
     */
    VVC_LEVEL_155 = 255
} OH_VVCLevel;

/**
 * @brief Enumerates the MPEG2 levels.
 * 
 * @since 17
 */
typedef enum OH_MPEG2Level {
    /**
     * Low level.
     * @since 17
     */
    MPEG2_LEVEL_LOW = 0,
    /**
     * Main level.
     * @since 17
     */
    MPEG2_LEVEL_MAIN = 1,
    /**
     * High 1440 level.
     * @since 17
     */
    MPEG2_LEVEL_HIGH_1440 = 2,
    /**
     * High level.
     * @since 17
     */
    MPEG2_LEVEL_HIGH = 3
} OH_MPEG2Level;

/**
 * @brief Enumerates the MPEG4 levels.
 * 
 * @since 17
 */
typedef enum OH_MPEG4Level {
    /**
     * Level 0.
     * @since 17
     */
    MPEG4_LEVEL_0 = 0,
    /**
     * Level 0B.
     * @since 17
     */
    MPEG4_LEVEL_0B = 1,
    /**
     * Level 1.
     * @since 17
     */
    MPEG4_LEVEL_1 = 2,
    /**
     * Level 2.
     * @since 17
     */
    MPEG4_LEVEL_2 = 3,
    /**
     * Level 3.
     * @since 17
     */
    MPEG4_LEVEL_3 = 4,
    /**
     * Level 3B.
     * @since 17
     */
    MPEG4_LEVEL_3B = 5,
    /**
     * Level 4.
     * @since 17
     */
    MPEG4_LEVEL_4 = 6,
    /**
     * Level 4A.
     * @since 17
     */
    MPEG4_LEVEL_4A = 7,
    /**
     * Level 5.
     * @since 17
     */
    MPEG4_LEVEL_5 = 8,
    /**
     * Level 6.
     * @since 17
     */
    MPEG4_LEVEL_6 = 9
} OH_MPEG4Level;

/**
 * @brief Enumerates the H.263 levels.
 * 
 * @since 17
 */
typedef enum OH_H263Level {
    /**
     * Level 10.
     * @since 17
     */
    H263_LEVEL_10 = 0,
    /**
     * Level 20.
     * @since 17
     */
    H263_LEVEL_20 = 1,
    /**
     * Level 30.
     * @since 17
     */
    H263_LEVEL_30 = 2,
    /**
     * Level 40.
     * @since 17
     */
    H263_LEVEL_40 = 3,
    /**
     * Level 45.
     * @since 17
     */
    H263_LEVEL_45 = 4,
    /**
     * Level 50.
     * @since 17
     */
    H263_LEVEL_50 = 5,
    /**
     * Level 60.
     * @since 17
     */
    H263_LEVEL_60 = 6,
    /**
     * Level 70.
     * @since 17
     */
    H263_LEVEL_70 = 7
} OH_H263Level;

/**
 * @brief Enumerates the VC-1 levels.
 * 
 * @since 22
 */
typedef enum OH_VC1Level {
    /**
     * Level L0.
     * @since 22
     */
    VC1_LEVEL_L0 = 0,
    /**
     * Level L1.
     * @since 22
     */
    VC1_LEVEL_L1 = 1,
    /**
     * Level L2.
     * @since 22
     */
    VC1_LEVEL_L2 = 2,
    /**
     * Level L3.
     * @since 22
     */
    VC1_LEVEL_L3 = 3,
    /**
     * Level L4.
     * @since 22
     */
    VC1_LEVEL_L4 = 4,
    /**
     * Low level.
     * @since 22
     */
    VC1_LEVEL_LOW = 5,
    /**
     * Medium level.
     * @since 22
     */
    VC1_LEVEL_MEDIUM = 6,
    /**
     * High level.
     * @since 22
     */
    VC1_LEVEL_HIGH = 7
} OH_VC1Level;

/**
 * @brief AV1 level.
 * 
 * @since 23
 */
typedef enum OH_AV1Level {
    /**
     * Level 2.0.
     * @since 23
     */
    AV1_LEVEL_20 = 0,
    /**
     * Level 2.1.
     * @since 23
     */
    AV1_LEVEL_21 = 1,
    /**
     * Level 2.2.
     * @since 23
     */
    AV1_LEVEL_22 = 2,
    /**
     * Level 2.3.
     * @since 23
     */
    AV1_LEVEL_23 = 3,
    /**
     * Level 3.0.
     * @since 23
     */
    AV1_LEVEL_30 = 4,
    /**
     * Level 3.1.
     * @since 23
     */
    AV1_LEVEL_31 = 5,
    /**
     * Level 3.2.
     * @since 23
     */
    AV1_LEVEL_32 = 6,
    /**
     * Level 3.3.
     * @since 23
     */
    AV1_LEVEL_33 = 7,
    /**
     * Level 4.0.
     * @since 23
     */
    AV1_LEVEL_40 = 8,
    /**
     * Level 4.1.
     * @since 23
     */
    AV1_LEVEL_41 = 9,
    /**
     * Level 4.2.
     * @since 23
     */
    AV1_LEVEL_42 = 10,
    /**
     * Level 4.3.
     * @since 23
     */
    AV1_LEVEL_43 = 11,
    /**
     * Level 5.0.
     * @since 23
     */
    AV1_LEVEL_50 = 12,
    /**
     * Level 5.1.
     * @since 23
     */
    AV1_LEVEL_51 = 13,
    /**
     * Level 5.2.
     * @since 23
     */
    AV1_LEVEL_52 = 14,
    /**
     * Level 5.3.
     * @since 23
     */
    AV1_LEVEL_53 = 15,
    /**
     * Level 6.0.
     * @since 23
     */
    AV1_LEVEL_60 = 16,
    /**
     * Level 6.1.
     * @since 23
     */
    AV1_LEVEL_61 = 17,
    /**
     * Level 6.2.
     * @since 23
     */
    AV1_LEVEL_62 = 18,
    /**
     * Level 6.3.
     * @since 23
     */
    AV1_LEVEL_63 = 19,
    /**
     * Level 7.0.
     * @since 23
     */
    AV1_LEVEL_70 = 20,
    /**
     * Level 7.1.
     * @since 23
     */
    AV1_LEVEL_71 = 21,
    /**
     * Level 7.2.
     * @since 23
     */
    AV1_LEVEL_72 = 22,
    /**
     * Level 7.3.
     * @since 23
     */
    AV1_LEVEL_73 = 23
} OH_AV1Level;

/**
 * @brief VP9 level.
 * 
 * @since 23
 */
typedef enum OH_VP9Level {
    /**
     * Level 1.
     * @since 23
     */
    VP9_LEVEL_1 = 0,
    /**
     * Level 1.1.
     * @since 23
     */
    VP9_LEVEL_11 = 1,
    /**
     * Level 2.
     * @since 23
     */
    VP9_LEVEL_2 = 2,
    /**
     * Level 2.1.
     * @since 23
     */
    VP9_LEVEL_21 = 3,
    /**
     * Level 3.
     * @since 23
     */
    VP9_LEVEL_3 = 4,
    /**
     * Level 3.1.
     * @since 23
     */
    VP9_LEVEL_31 = 5,
    /**
     * Level 4.
     * @since 23
     */
    VP9_LEVEL_4 = 6,
    /**
     * Level 4.1.
     * @since 23
     */
    VP9_LEVEL_41 = 7,
    /**
     * Level 5.
     * @since 23
     */
    VP9_LEVEL_5 = 8,
    /**
     * Level 5.1.
     * @since 23
     */
    VP9_LEVEL_51 = 9,
    /**
     * Level 5.2.
     * @since 23
     */
    VP9_LEVEL_52 = 10,
    /**
     * Level 6.
     * @since 23
     */
    VP9_LEVEL_6 = 11,
    /**
     * Level 6.1.
     * @since 23
     */
    VP9_LEVEL_61 = 12,
    /**
     * Level 6.2.
     * @since 23
     */
    VP9_LEVEL_62 = 13
} OH_VP9Level;

/**
 * @brief WVC1 level.
 * 
 * @since 23
 */
typedef enum OH_WVC1Level {
    /**
     * Level L0.
     * @since 23
     */
    WVC1_LEVEL_L0 = 0,
    /**
     * Level L1.
     * @since 23
     */
    WVC1_LEVEL_L1 = 1,
    /**
     * Level L2.
     * @since 23
     */
    WVC1_LEVEL_L2 = 2,
    /**
     * Level L3.
     * @since 23
     */
    WVC1_LEVEL_L3 = 3,
    /**
     * Level L4.
     * @since 23
     */
    WVC1_LEVEL_L4 = 4
} OH_WVC1Level;

/**
 * @brief Enumerates the WMV3 levels.
 * 
 * @since 22
 */
typedef enum OH_WMV3Level {
    /**
     * Low level.
     * @since 22
     */
    WMV3_LEVEL_LOW = 0,
    /**
     * Medium level.
     * @since 22
     */
    WMV3_LEVEL_MEDIUM = 1,
    /**
     * High level.
     * @since 22
     */
    WMV3_LEVEL_HIGH = 2
} OH_WMV3Level;

/**
 * @brief Enumerates the reference modes of temporal image groups.
 * 
 * @since 12
 */
typedef enum OH_TemporalGopReferenceMode {
    /**
     * Refers to the nearest short-term reference frame.
     * @since 12
     */
    ADJACENT_REFERENCE = 0,
    /**
     * Refers to the latest LTR frame.
     * @since 12
     */
    JUMP_REFERENCE = 1,
    /** Uniformly scaled reference structure, which has even distribution of video frames after drop the highest
     *  enhance layer. The temporal group of pictures must be power of 2.
     * @since 12
     */
    UNIFORMLY_SCALED_REFERENCE = 2
} OH_TemporalGopReferenceMode;

/**
 * @brief Enumerates the bit rate modes of an encoder.
 * 
 * @since 10
 */
typedef enum OH_BitrateMode {
    /**
     * Constant bit rate.
     * @since 10
     */
    BITRATE_MODE_CBR = 0,
    /**
     * Variable bit rate.
     * @since 10
     */
    BITRATE_MODE_VBR = 1,
    /**
     * Constant quality.
     * @since 10
     */
    BITRATE_MODE_CQ = 2,
    /**
     * Stable Quality RateControl.
     * @since 20
     */
    BITRATE_MODE_SQR = 3,
    /** CBR for High Quality.
     * @since 26.0.0
     */
    BITRATE_MODE_CBR_HIGH_QUALITY = 4
} OH_BitrateMode;

/**
 * @brief The video decoding frame retention mode.
 *
 * !@since 26.0.0
 */
typedef enum OHM {
    /**
     * Full frame retention mode. The decoder operates in a transparent passthrough state,
     * retaining 100% of the input frames and effectively disabling the frame dropping feature.
     * All underlying visual perception algorithms are cfompletely bypassed, resulting in
     * zero algorithmic overhead.
     * @since 26.0.0
     */
    OHM_FULL = 0,
    /**
     * Adaptive frame retention mode. The decoder dynamically analyzes video characteristics to drop frames with the
     * least perceptual impact, preserving visual smoothness with minimal degradation to the playback experience.
     * For optimal algorithmic accuracy, it is highly recommended to explicitly configure
     * the current playback speed via {@link 8+SPEED}.
     * @since 26.0.0
     */
    OHM_ADAPTIVE = 1,
    /**
     * Uniform frame retention mode. Retains frames evenly according to a user-configured retention rati o
     * (configured via {@link 8MRATIO}).
     * If the retention ratio is not explicitly configured, the decoder limits the output to a maximum of 30 fps.
     * @since 26.0.0
     */
    OHM_UNIFORM = 2
} OHM;

/**
 * @brief The PTS mode of audio encoder.
 *
 * @since 26.0.0
 */
typedef enum OH_AudioEncoderPTSMode {
    /**
     * @brief Default PTS mode of audio encoder. Different encoders may perform differently.
     * 
     * @since 26.0.0
     */
    OH_AUDIO_ENCODER_PTS_MODE_DEFAULT = 0,
    /**
     * @brief PTS starts from zero.
     * 
     * @since 26.0.0
     */
    OH_AUDIO_ENCODER_PTS_MODE_ZERO_START = 1,
    /**
     * @brief PTS starts from the first input PTS.
     * 
     * @since 26.0.0
     */
    OH_AUDIO_ENCODER_PTS_MODE_FIRST_INPUT_START = 2,
} OH_AudioEncoderPTSMode;

#ifdef __cplusplus
}
#endif
#endif // NATIVE_AVCODEC_BASE_H

/** @} */~M\x =`>.4>KexU㫧=/*
 * Copyright (c) 2025   t
/**
 * @addtogroup Native_Bundle
 * @{
 *
 * @brief Describe the functions of AbilityResourceInfo.
 *
 * @since 21
 */

/**
 * @file ability_resource_info.h
 *
 * @brief The file declares the APIs for obtaining the following ability resource information: bundle name, module name,
 *  ability name, icon, clone index, and whether the application is a default application.
 *
 * @l,ibrary libbundle_ndk.z.so
 * @kit AbilityKitBundleManager.BundleFramework.Core
 * @since 21
 */

#ifndef ABILITY_RESOURCE_INFO_H
#define ABILITY_RESOURCE_INFO_H

#include <stdbool.h>
#include <stddef.h>
#include "bundle_manager_common.h"
#include "../arkui/drawable_descriptor.h"

#ifdef __cplusplu	%&athe ability resource information.
 *
 * @since 21
 */
struct OH_NativeBundle_AbilityResourceInfo;1'NativeBundle_AbilityResourceInfo OH_NativeBundle_AbilityResourceInfo;

/**
 * @brief Obtains the bundle name of the ability. After using this function, you must manually release the
 * pointer returned to prevent memory leakage.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param bundleName Double pointer to the bundle name.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetBundleName(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, char** bundleName);

/**
 * @brief Obtains the module name of the ability. After using this function, you must manually release the pointer
 * returned to prevent memory leakage.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param moduleName Double pointer to the module name.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetModuleName(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, char** moduleName);

/**
 * @brief Obtains the ability name. After using this function, you must manually release the pointer returned to
 * prevent memory leakage.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param abilityName Double pointer to the ability name.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetAbilityName(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, char** abilityName);

/**
 * @brief Obtains the application name of the ability. After using this function, you must manually release the
 * pointerreturned to prevent memory leakage.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param label Double pointer to the application name.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetLabel(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, char** label);

/**
 * @brief Obtains the clone index of the ability.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param appIndex Pointer to the clone index.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the **
 *     abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetAppIndex(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, int* appIndex);

/**
 * @brief Checks whether the application to which the ability belongs is a default application.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param isDefault Pointer to the check result for whether the application is a default application. A default
 *     application is the preferred application set by the user for a specific file type or operation. **true** if the
 *     application is a default application, **false** otherwise.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The query is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The query fails because the abilityResourceInfo
 *     parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_CheckDefaultApp(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, bool* isDefault);

/**
 * @brief Releases memory allocated for ability resource information.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param count Size of the ability resource information array.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The release is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The release fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_AbilityResourceInfo_Destroy(
    OH_NativeBundle_AbilityResourceInfoP* abilityResourceInfo, size_t count);

/**
 * @brief Obtains the size of a singl`a?ndle_AbilityResourceInfo} struct.
 *
 * @return Size of a singl`andle_AbilityResourceInfo} struct.
 * @since 21
 */
int OH_NativeBundle_GetSize();

/**
 * @brief Obtains the {@link DrawableDescriptor} object of the ability icon resource. After using this function, you
 * must manually release the pointer returned to prevent memory leakage.
 *
 * @param abilityResourceInfo Pointer to the ability resource information.
 * @param drawableIcon Double pointer to the {@link DrawableDescriptor} object.
 * @return One of the following operation results:
 *     <ul><li>{@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR}: The retrieval is successful.
 *     </li><li>{@link BUNDLE_MANAGER_ERROR_CODE_PARAM_INVALID}: The retrieval fails because the
 *     **abilityResourceInfo** parameter is nullptr.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetDrawableDescriptor(
    OH_NativeBundle_AbilityResourceInfo* abilityResourceInfo, ArkUI_DrawablseDescriptor** drawableIcon);
#ifdef __cplusplus
} // extern "C"
#endif

/** @} */
#endif // ABILITY_RESOURCE_INFO_H[L"fx"=/*
* Copyright (CڱGs the Native Bundle.
 *
 * @since 21
 * @version 1.0
 */

/**
 * @file $$error codes defined by BundleManager7BUNDLE_MANAGER_COMMON_H
#define BUNDLE_MANAGER_COMMON_H8Enumerates the error codes~Mtypedef enum {
    /**
     * Operation success.
     * @since 21
     */
   1H = 0,

    /**
     * No access permission.
     * @since 21
     */
   1WERMISSION_DENIED = 201,

    /**
     * Invalid parameter.
     * @since 21
     */
   1(	 = 401
} A;}BUNDLE_MANAGER_COMMON_H=x`1x0C/*
 * Copyright (c) 2022Ա9#native_interface_bundle&APIs for obtaining the application information, including the bundle name, fingerprint
 * information, and appId.
 *
 * @kit AbilityKitE$|E9#ifndef FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H
#define FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H

#include <stdbool.h>
#include <stddef.h>

#include "abi8lity_resource_info.h"
#include "bundle_manager_common.h")/**
 * @brief The struct describes the application information, including the bundle name and fingerprint information.
 *
 * @s}D9
 */
struct OH_NativeBundle_ApplicationInfo {
    /**
     * Pointer to the bundle name of the application.
     * @syscap Sys2    * @since 9
     */
    char* bundleName;

    /**
     * Pointer to the fingerprint information of the application. It is generated by calculating the hash value of the
     * signing certificate using the SHA-256 algorithm. This field changes when t)he used signing certificate changes.
    x@    * @since 9
     */
    char* fingerprint;
};

/**
 * @brief The struct describes the elementName information.
 *
 * @since 13
 */
struct OH_NativeBundle_ElementName {
    /**
     * Pointer to the bundle name of the application.
     */
    char* bundleName;
    /**
     * Pointer to the module name.
     */
    char* moduleName;
    /**
     * Pointer to the ability name.
     */
    char* abilityName;
};

/**
 * @brief The struct describes the metadata information.
 *
 * @since 20
 */
typedef struct OH_NativeBundle_Metadata {
    /**
     * @brief Pointer to the name of the metadata.
     *
     */
    char* name;
    /**
     * @brief Pointer to the value of the metadata.
     *
     */
    char* value;
    /**
     * @brief Pointer to the resource linked to the metadata.
     *
     */
    char* resource;
} OH_NativeBundle_Metadata;

/**
 * @brief The struct describes the metadata of a module.
 *
 * @since 20
 */
typedef struct OH_NativeBundle_ModuleMetadata {
    /**
     * @brief Pointer to the module name.
     *
     */
    char* moduleName;
    /**
     * @brief Pointer to an array containing the module's metadata.
     *
     */
    OH_NativeBundle_Metadata* metadataArray;
    /**
     * @brief Number of elements in the metadata array.
     *
     */
    size_t metadataArraySize;
} OH_NativeBundle_ModuleMetadata;

/**
 * @brief The struct describes the applicatVion information, including the bundle name and fingerprint information.
 *
 * @since 1typedef struct OH_NativeBundle_ApplicationInfo OH_NativeBundle_ApplicationInfo;

/**
 * @brief The struct describes the element!Name information.
 *
 * @since 13typedef struct OH_NativeBundle_ElementName OH_NativeBundle_ElementName;

/**
 * @brief Obtains the current application information, including the bundle name and fingerprint information.
 *
 * @return Pointer to the OH_NativeBundle_ApplicationInfo object. If the attribute of the returned object is NULL,
 *     the creation fails. The possible cause is that the application addresEs space is full, causing space
 *     allocation to fail.
 * @since 9OH_NativeBundle_ApplicationInfo OH_NativeBundle_GetCurrentApplicationInfo();

/**
 * @brief Obtains the appId of the current application. The appId is the unique identifier of an application and is
 * determined by the bundle name and signature information of the application. After using this function, you must
 * manually release the pointer returned to prevent memory leakage.
 *
 * @return Pointer to a new string that indicates the appID. If the returned object is NULL, the creation fails.
 *     <br> The possible cause is that the application address space is full, causing space allocation to fail.
 * @since 11
 * @version 1char* OH_NativeBundle_GetAppId();

/**
 * @brief Obtains the appIdentifier of the current application. The appIdentifier does not change throughout the
 * application lifecycle, including version updates, certificate changes, public and private key changes, and
 * application migration. After using this function, you must manually release the pointer returned to prevent memory
 * leakage.
 *
 * @return Pointer to a new string that indicates the appIdentifier. If the returned object is NULL, the creation
 *     fails. The possible cause is that the application address space is full, causing space allocation to fail.
 * @since 11char* OH_NativeBundle_GetAppIdentifier();

/**
 * @brief Obtains the mainElement information of the current application, including the bundle name, module name, and
 * ability name. After using this function, you must manually release the pointer returned to prevent memory leakage.
 *
 * @return Pointer to the OH_NativeBundle_ElementName object. If the attribute of the returned object is NULL,
 *     the creation fails. The possible cause is that the application address space is full, causing space
 *     allocation to fail.
 * @since 13
 */
OH_NativeBundle_ElementName OH_NativeBundle_GetMainElementName();

/**
 * @brief Obtains the compatible device type of the current application. It helps you optimize the layout and font
 * size when distributing mobile applications to tablets or 2-in-1 devices. After using this function, you must
 * manually release the pointer returned to prevent memory leakage.
 *
 * @return Pointer to a new string that indicates the compatible device type. If the returned object is NULL, the
 *     creation fails.
 *     <br> The possible cause is that the application address space is full, causing spa#ce allocation to fail.
 * @since 14char* OH_NativeBundle_GetCompatibleDeviceType();

/**
 * @brief Checks whether the current application is in debug mode.
 *
 * @param isDebugMode Pointer to the check result indicating whether the application is in debug mode. **true** if in
 *     debug mode, **false** otherwise.
 * @return Operation result. **true** if the call is successful, **false** otherwise.
 * @since 20
 */
bool OH_NativeBundle_IsDebugMode(bool* isDebugMode);

/**
 * @brief Obtains the module metadata array of the current application. After using this function, you must manually
 * release the pointer returned to prevent memory leakage.
 *
 * @param size Pointer to the size of the module metadata array.
 * @return An array of module metadata. If the returned object is NULL, the retrieval fails.
 *     <br> The possible cause is that the application address space is full, causing space allocation to fail.
 * @since 20
 */
OH_NativeBundle_ModuleMetadata* OH_NativeBundle_GetModuleMetadata(size_t* size);

/**
 * @brief Obtain a list of ability that support opening files in a certain format.
 *
 * @permission ohos.permission.GET_ABILITY_INFO
 * @param fileType Indicates the file type.
 * @param abilityResourceInfo Indicates the ability resource array.
 * @param size Indicates the >ability resource array size.
 * @return <ul><li>Returns {@link#;} if the call is successful.</li><li>
 *     Returns {@linkC} if the caller has no correct permission.</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetAbilityResourceInfo(char* fileType,
    OH_NativeBundle_AbilityResourceInfo** abilityResourceInfo, size_t* size);
#ifdef __cplusplus
};
#endiZFOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H:͘@xuC85I the functions of AbilityResourceInfo.
 *
 * @since 21
 */

/**
 * @file !;following ability resource information: bundle name, module name,
 *  ability name, icon, clone index, and whether the applicat ion is a default application.
 *$kit AbilityKit
 @?	E21
 */

#ifndef ABILITY_RESOURCE_INFO_H
#define ABILITY_RESOURCE_INFO-:#&#include "../arkui/drawable_descriptorY,:
/**
 * @brief 表示组件资源信息。
 *
 * @since 21 ;@!  $;

/**
 * @brief 获取组件的包名。在使用该接口之后，为了防止内存泄漏，需要手动释放接口返回指针。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @param bundleName 获取的包名。
 * @return 执6结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v GBundleName( ) abilityResourceInfo, char** bundleName);

/**
 * @brief 获取组件的模块名。在使用该接口之后，为了防止内泄漏，需要手动释放接口返回的指针。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @param modduleName 获取的模块名。
 * @return 执行结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v GNName( ) abilityResourceInfo, char** moduleName);

/**
 * @brief 获取组件名。在使用该接口之后，为了防止内存泄漏需要手动释放接口返回的指针。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @param abilityName\ 获取的组件名。
 * @return 执行结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v NName( ) abilityResourceInfo, char** abilityName);

/**
 * @brief 获取组件的应用名称。在使用该接口之后，为了防止内存泄漏，需要手动释放接口返回的指针。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @parafm label 获取的应用名称。
 * @return 执行结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v GLabel( ) abilityResourceInfo, char** label);

/**
 * @brief 获取组件的分身索引。
 *
 * @param abilityResourceInfo 指定组资源信息。
 * @param appIndex 获取的分身索引。
 * @return 执行结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v HppIndex( ) abilityResourceInfo, int* appIndex);

/**
 * @brief 查询组件所属的应用是否为默认应用。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @param isDefault 组件所属的应用是否为默认应用，默认应用是指用为特定文件类型或操作设定的首选应用。取值true为默认应用，false为非默认应用。
 * @return 执行4结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v DCheckDefaultApp( ) abilityResourceInfo, bool* isDefault);

/**
 * @brief 释放组件资源信息的内存。
 *
 * @param abilityResourceInfo 释放的组件资源信息。
 * @param count 表示组件资源信息数组的大小。
 * @return 执行结果。
 *     <u!l><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v 7AbilityResourceInfo_Destroy( )
!2 count);

/**
* @brief 获取单个结构体{@link $6}的大小。
*
 * @return 返回单个结构体{@link $9}的大小。
 * @since 21
 */
int OH_NativeBundle_GetSiz@获取组件图标资源对应的{@link DrawableDescriptor}对象。在使用该接口之后，为了防止内存泄漏，需手动释放接口返回的指针。
 *
 * @param abilityResourceInfo 指定组件资源信息。
 * @param drawableIcon 组图标资源对应的{@link DrawableDescriptor}对象。
 * @return 执行结果。
 *     <ul><li>如果获取成功，返回*/。
 *     </li><li>如果获取失败，返回!EPARAM_INVALID}，这是由于abilityResourceInfo为空指针所致。v GDrawableDescriptor( ) abilityResourceInfo, ArkUI_DrawableDescriptor** drawableIcon);
#ifdef __cplusplus
} // extern "C"
#endif

/** @} */
#endif // ABILITY_RESOURCE_INFO_H]E`u#x>8/*
* Copyright (CڱGs the Native Bundle.
 *
 * @since 21
 * @version 1.0
 */

/**
 * @file $$error codes defined by BundleManager7BUNDLE_MANAGER_COMMON_H
#define BUNDLE_MANAGER_COMMON_H8>枚举错误码，详细介绍请参见{@link 通用错误码}aJtypedef enum {
    /**
     * 执行成功。
     * @since 21
     */
   	#E = 0,

    /**
     * 权限被拒绝。
     * @since 21
     */
   	UPERMISSION_DENIED = 201,

    /**
     * 参数无效。
     * @since 21
     */
   		 = 401
} ;}BUNDLE_MANAGER_COMMON_H:NMx`?/*
 * Copyright (c) 2022Ա9#native_interface_bundle.h
 *
 * @brief 提供查询应用包信息的功能，包括应用包名、应用指纹、应用appId。
 *
 * @kit AbilityKitE$|E9#ifndef FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H
#define FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H

#include <stdbool.h>
#include <stddef.h>

#include "abi8lity_resource_info.h"
#include "bundle_manager_common.h"#K应用包信息数据结构，包含应用包名和应用指纹信息。
 *wJR9
 */
struct OH_NativeBundle_ApplicationInfo {
    /**
     * 应用包名。
    x@    * @since 9
     */
    char* bundleName;

    /**
     * 应用的指纹信息，由签名证书通过SHA-256算法计算Z希值生成。使用的签名证书发生变化时，该字段也会发生变化。
    x@    * @since 9
     */
    char* fingerprint;
};

/**
 * @brief elementName信息。
 *
 * @since 13
 */
struct OH_NativeBundle_ElementName {
    /**
     * 应用包名。
     */
    char* bundleName;
    /**
     * 模块名称。
     */
    char* moduleName;
    /**
     * 组件名。
     */
    char* abilityName;
};

/**
 * @brief 元数据信息。
 *
 * @since 20
 */
typedef struct OH_NativeBundle_Metadata {
    /**
     * @brief 元数据名称。
     *
     */
    char* name;
    /**
     * @brief 元数据值。
     *
     */
    char* value;
    /**
     * @brief 元数据资源。
     *
     */
    char* resource;
} OH_NativeBundle_Metadata;

/**
 * @brief 模块元数据的信息。
 *
 * @since 20
 */
typedef struct OH_NativeBundle_ModuleMetadata {
    /**
     * @brief 模块名称。
     *
     */
    char* moduleName;
    /**
     * @brief 模块的元据数组。
     *
     */
    OH_NativeBundle_Metadata* metadataArray;
    /**
     * @brief 模块的元数据数组大小。
     *
     */
    size_t metadataArraySize;
} OH_NativeBundle_ModuleMetadata;

/**
 * @brief 应用包信息数据结构:包含应用包名和应用指纹信息。
 *
 * @since 1typedef struct OH_NativeBundle_ApplicationInfo OH_NativeBundle_ApplicationInfo;

/**
 * @brief elementName信息。
 *
 * @since 13typedef struct OH_NativeBundle_ElementName OH_NativeBundle_ElementName;

/**
 * @brief 获取当前应用信息，包含应用名和应用指纹信息。
 *
 * @return 返回新创建的OH_NativeBundle_ApplicationInfo对象。如果返回的对象中属性值为NULL，则表示创建失败。
 *     <br> 失败的可能原因是应用程序地址空间已满，导致空间分配失败。
 * @since 9OH_NativeBundle_ApplicationInfo OH_NativeBundle_GetCurrentApplicationInfo();

/**
 * @brief 获取当前应用的appId。appId应用的唯一标识，由应用包名和签名信息决定。在使用此接口后，为了避免内存泄漏，需要手释放接口返回的指针。
 *
 * @return 返回一个新创建的字符串，用于指示appID信息。如果返回的对为NULL，则表示创建失败。
 *     <br> 失败的可能原因是应用程序地址空间已满，导致空间分配失败。
 * @since 1char* OH_NativeBundle_GetAppId();

/**
 * @brief 获取当前应用的应用程序标识符。该应用程序标识符在应用的整个生命周期中不会发生变化，包括版本更新、证书更改、公钥和私钥更改以及应用程序迁移在使用此接口后，为了避免内存泄漏，需要手动释放接口返回的指针。
 *
 * @return 返回一个新建的字符串，用于指示应用程序标识符信息。如果返回的对象为NULL，则表示创建失败。
 *     <brb> 失败的可能原因是应用程序地址空间已满，导致空间分配失败。
 * @since 1char* OH_NativeBundle_GetAppIdentifier();

/**
 * @brief 获取当前应用入口元素mainElement的信息，包括包名、块名和组件名，在使用此接口后，为了避免内存泄漏，需要手动释放接口返回的指针。
 *
 * @return 返回新创建的OH_NativeBundle_ElementName对象。如果返回的对象中的属性值为NULL，则表示创建失败。
 *     <br> 失败的可能原因是应用程序地址空间已满，导致空间分配失败。
 * @since 13
 */
OH_NativeBundle_ElementName OH_NativeBundle_GetMainElementName();

/**
 * @brief 获取当前应用适用的设备类型。用于将手机用分发到平板/2in1设备时，合理适配布局和字体大小。在使用此接口后，为了避免内存泄漏，需要手动释放接口返回的指针。
 *
 * @return 返回一个新创建的字符串，用于指示兼容设备类型。如返回的对象为NULL，则表示创建失败。
 *     <br> 失败的可能原因是应用程序地址空间已满，导致"空间分配失败。
 * @since 14char* OH_NativeBundle_GetCompatibleDeviceType();

/**
 * @brief 查询当前应用是否处于调试模式。
 *
 * @param isDebugMode 表示应用是否处于调试模式，取值为true表示可调试模式，取值为false表示不可调试模式。
 * @return 如果调用成功，则返回true，否则返回false。
 * @since 20
 */
bool OH_NativeBundle_IsDebugMode(bool* isDebugMode);

/**
 * @brief 获取当前应用程序的模块元数据数组。在使用该接口之后，为了防止内存泄，需要手动释放接口返回的指针。
 *
 * @param size 表示模块元数据数组大小。
 * @return 返回模块数据数组，如果返回的对象为NULL，则表示获取失败。
 *     <br> 失败的可能原因是应用程序地址间已满，导致空间分配失败。
 * @since 20
 */
OH_NativeBundle_ModuleMetadata* OH_NativeBundle_GetModuleMetadata(size_t* size);

/**
 * @brief 获取支持打开特定文件类型的组件资源信息列表。在使用完该接口之后，为了防止内存泄漏，需要调用{@link OH_AbilityResourceInfo_Destroy}进行释放。
 *
 * @permission ohos.permission.GET_ABILITY_INFO
 * @param fileType 表示待查询的特定文件类型，推荐使用{@link UTD类型}，比如：'general.plain-text'、'general.image'。目前也可以兼容使用{@link MIME type类型}
 *     和文件后缀名称，如：'text/xml'  '.png'等。文件后缀与文件类型的映射关系参见{@link UTD预置列表}。不支持传'\*\/\*'。
 * @param abilityResourceInfo 表示返回的组件资源信息列表。
 * @param size 表示返回的组件资源信息列表大小。
 * @0return <ul><li>如果调用成功，返回{@link#H}。</li><li>
 *     如果调用方没有正确的权限，返回{@linkc}。</li></ul>
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetAbilityResourceInfo(char* fileType,
    OH_NativeBunSdle_AbilityResourceInfo** abilityResourceInfo, size_t* size);
#ifdef __cplusplus
};ZFOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_HX}	5dpxI?3# Copyright (c) 2024-2025 Huawei Device Co., Ltd.
#3A#vB#)#
#0#
#E#dC#J#E#< 
import("//build/ohos.gni")
import("//build/ohos/ndk/ndk.gni")
ohos_ndk_headers("ability_runtime_ndk_header") {
  dest_dir = "$ndk_headers_out_dir/AbilityKit/ability_runtime"
  sources = [
    "./ability_runtime_common.h",
    "./application_context.h",
    "./connect_options.h",
    "./context.h",
    "./context_constant.h",
    "./extension_ability.h",
    "./modular_object_dispatcher.h",
    "./modular_object_extension_ability.h",
    "./modular_object_extension_context.h",
    "./modular_object_extension_manager.h",
    "./start_options.h",
  ]
}

ohos_ndk_library("libability_runtime") {
  output_name = "ability_runtime"
  output_extension = "so"
  system_capability = "SystemCapability.Ability.AbilityRuntime.Core"
  ndk_description_file = "./libability_runtime.ndk.json"
  min_compact_version = "13"
  system_capability_headers = [
    "AbilityKit/ability_runtime/ability_runtime_common.h",
    "AbilityKit/ability_runtime/application_context.h",
    "AbilityKit/ability_runtime/connect_options.h",
    "AbilityKit/ability_runtime/context.h",
    "AbilityKit/ability_runtime/context_constant.h",
    "AbilityKit/ability_runtime/extension_ability.h",
    "AbilityKit/ability_runtime/modular_object_dispatcher.h",
    "AbilityKit/ability_runtime/modular_object_extension_ability.h",
    "AbilityKit/ability_runtime/modular_object_extension_context.h",
    "AbilityKit/ability_runtime/m\odular_object_extension_manager.h",
    "AbilityKit/ability_runtime/start_options.h",
  ]
}
+Xx'3/*
* Copyright (C$ *3A *uB *) *
 *, *
 *E *]C *J *E * limitations under the License.
 */
/**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provide the definition of the C inteBrface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file 
 *
 * @brief The file declares the error codes of the AbilityRuntime module.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap ,
 * @since 13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Enumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
 */
typedef enum {
    /**
     * Operation successful.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_ERROR = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_STATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_WUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_INTERNAL = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_MULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_INVALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_START_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_MAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_RUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The property was not found.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND = 16000173,
    /**
     * Type mismatch.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH = 16000174,
    /**
     * Sending request to the remote failed.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED = 16000175,
    /**
     * Caller and target are not in the same application for {@link OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS} mode.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_APP_IN_PROCESS = 16000176,
     /**
 	  * @error The type library metadata is invalid, e.g. missing or duplicate main interface.
 	  * @since 26.0.0
 	  */
 	ABILITY_RUNTIME_ERROR_CODE_TLB_METADATA_INVALID = 16000178,
} AbilityRuntime_ErrorCode;

#ifdef __cplusplus
}
#endif

/** @} &*/
#endif // ABILITY_RUNTIME_COMMON_H
2shx~ρ03﻿/*
 * Copyright (c) 2026+Kd%License at
 *
 *    싓{_>Rdefinition of C interface for modular object dispatcher late binding mechanism.
 *C26.0.0
 */

/**
 * @file modular_object_dispatcher.h
 *
 * @brief Declare common types and interfaces for modular object dispatcher_|26.0.0
 */

#ifndef OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H
#define OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H

#include <stdbool.h>D
#include "ability_runtime_common.h"
#include "IPCKit/ipc_cparcel.h"$8Forward declaration of OH_AbilityRuntime_MoDispatcher_TypeDescriptor structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_TypeDescriptor;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_TypeDescriptor.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_TypeDescriptor* OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle;

. /**
  * @brief Enumerates variant types.
  *
*/
typedef enum {
    /** @description Empty value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_EMPTY = 0,
    /** @description Void value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_VOID = 1,
    /** @description Boolean value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_BOOL = 2,
    /** @description 8-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I8 = 3,
    /** @description 16-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I16 = 4,
    /** @description 32-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I32 = 5,
    /** @description 64-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I64 = 6,
    /** @description 8-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U8 = 7,
    /** @description 16-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U16 = 8,
    /** @description 32-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U32 = 9,
    /** @description 64-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U64 = 10,
    /** @description 32-bit floating point. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_F32 = 11,
    /** @description 64-bit floating point. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_F64 = 12,
    /** @description String (UTF-8). */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_STRING = 13,
    /** @description Array. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_ARRAY = 14,
    /** @description Vector. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_VECTOR = 15,
    /** @description Set. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_SET = 16,
    /** @description Map. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_MAP = 17,
    /** @description Struct. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_STRUCT = 18,
    /** @description Ipc Remote Proxy. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_IPC_REMOTE_PROXY = 19,
    /** @description Ipc Remote Stub. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_IPC_REMOTE_STUB = 20,
    /** @description Enum value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_ENUM = 21,
} OH_AbilityRuntime_MoDispatcher_ValueType;

/**
 * @brief Defines the parameter type descriptor for modular object dispatcher.
 *
 * Describes the type of a parameter or return value using a tagged union.
 * For map types, use u.mapType.keyType and u.mapType.pValueType;
 * for array/vector/set types, use u.pElementType;
 * for other custom types, use u.idlType.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_TypeInfo {
    OH_AbilityRuntime_MoDispatcher_ValueType vt;
    union {
        struct {
            OH_AbilityRuntime_MoDispatcher_ValueType keyType;
            OH_AbilityRuntime_MoDispatcher_TypeInfo *pValueType;
        } mapType;
        OH_AbilityRuntime_MoDispatcher_TypeInfo *pElementType;
        char* idlType;
    } u;
} OH_AbilityRuntime_MoDispatcher_TypeInfo;


/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher* OH_AbilityRuntime_MoDispatcherHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Array structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Array;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Array.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Array* OH_AbilityRuntime_MoDispatcher_ArrayHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Vector structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Vector;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Vector.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Vector* OH_AbilityRuntime_MoDispatcher_VectorHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Set structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Set;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Set.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Set* OH_AbilityRuntime_MoDispatcher_SetHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Map structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Map;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Map.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Map* OH_AbilityRuntime_MoDispatcher_MapHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Struct structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Struct;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Struct.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Struct* OH_AbilityRuntime_MoDispatcher_StructHandle;

/**
 * @brief Defines a variant structure using union + type tag for ABI compatibility.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Variant type.
     */
    OH_AbilityRuntime_MoDispatcher_ValueType vt;
    /**
     * @brief Reserved field 1 for future use.
     */
    uint64_t reserved1;
    /**
     * @brief Reserved field 2 for future use.
     */
    uint64_t reserved2;
    /**
     * @brief Reserved field 3 for future use.
     */
    uint64_t reserved3;
    /**
     * @brief Variant value data.
     */
    union {
        /**
         * @brief Empty value.
         */
        void *pvoidVal;
        /**
         * @brief Boolean value.
         */
        bool boolVal;
        /**
         * @brief 8-bit signed integer.
         */
        int8_t i8Val;
        /**
         * @brief 16-bit signed integer.
         */
        int16_t i16Val;
        /**
         * @brief 32-bit signed integer.
         */
        int32_t i32Val;
        /**
         * @brief 64-bit signed integer.
         */
        int64_t i64Val;
        /**
         * @brief 8-bit unsigned integer.
         */
        uint8_t u8Val;
        /**
         * @brief 16-bit unsigned integer.
         */
        uint16_t u16Val;
        /**
         * @brief 32-bit unsigned integer.
         */
        uint32_t u32Val;
        /**
         * @brief 64-bit unsigned integer.
         */
        uint64_t u64Val;
        /**
         * @brief 32-bit floating point.
         */
        float f32Val;
        /**
         * @brief 64-bit floating point.
         */
        double f64Val;
        /**
         * @brief Enum value.
         */
        int32_t enumVal;
        /**
         * @brief String value (UTF-8) pointer.
         */
        char* bstrVal;
        /**
         * @brief Array handle.
         */
        OH_AbilityRuntime_MoDispatcher_ArrayHandle parrayVal;
        /**
         * @brief Vector handle.
         */
        OH_AbilityRuntime_MoDispatcher_VectorHandle pvectorVal;
        /**
         * @brief Set handle.
         */
        OH_AbilityRuntime_MoDispatcher_SetHandle psetVal;
        /**
         * @brief Map handle.
         */
        OH_AbilityRuntime_MoDispatcher_MapHandle pmapVal;
        /**
         * @brief Struct handle.
         */
        OH_AbilityRuntime_MoDispatcher_StructHandle pstructVal;
        /**
         * @brief Ipc remote proxy handle.
         */
        OHIPCRemoteProxy *premoteProxyVal;
        /**
         * @brief Ipc remote stub handle.
         */
        OHIPCRemoteStub *premoteStubVal;
    } u;
} OH_AbilityRuntime_MoDispatcher_Variant;

/**
 * @brief Defines a parameter structure for method invocation.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Array of argument variants.
     */
    OH_AbilityRuntime_MoDispatcher_Variant* rgvarg;
    /**
     * @brief Number of arguments.
     */
    uint32_t cArgs;
} OH_AbilityRuntime_MoDispatcher_InputParams;

/**
 * @brief Clear TypeInfo resources.
 *
 * Recursively release any heap resources held by a TypeInfo struct
 * (idlType strings, child TypeInfo nodes for map/array/vector/set types).
 * After clearing, all pointers are set to NULL but the TypeInfo struct itself is not freed
 * (it is typically stack-allocated by the caller).
 *
 * TypeInfo_Clear must NOT be called on a shallow copy of another TypeInfo.
 * If TypeInfo t2 = t1 is performed, only clear one of them.
 *
 * @param pTypeInfo Indicates a pointer to TypeInfo to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear(
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pTypeInfo);

/**
 * @brief Clear variant resources.
 *
 * Release any resources held by the variant (strings, container handles, etc.).
 * After clearing, the variant is reset to VT_EMPTY with all fields zeroed.
 *
 * Ownership rules:
 * - When a Variant is passed to a function (e.g. Array_Set, Map_Put), the function
 *   performs a deep copy. The caller retains ownership of the original Variant and
 *   is responsible for freeing its own resources (e.g. free(bstrVal) for strings,
 *   Release for container handles).
 * - When a Variant is returned from a function (e.g. Array_Get, Map_Get, CallMethod),
 *   the function performs a deep copy and the caller owns the returned Variant.
 *   The caller must call Variant_Clear exactly once to release the resources.
 * - Simple types (bool, i32, f64, etc.) do not hold heap resources and do not
 *   require Variant_Clear, though calling it is harmless.
 * - Variant_Clear must NOT be called on a shallow copy of another Variant.
 *   If Variant v2 = v1 is performed, only clear one of them.
 *
 * @param pVariant Indicates a pointer to variant to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Variant_Clear(
    OH_AbilityRuntime_MoDispatcher_Variant* pVariant);

/**
 * @brief Create a modular object dispatcher instance from an IPC remote proxy.
 *
 * @param remoteProxy Indicates IPC remote proxy handle obtained from connectExtension.
 * @param ppMoDispatcher Indicates a pointer to receive modular object dispatcher handle.
 *. @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkJPARAM_INVALID} if remoteProxy or ppMoDispatcher is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_CreateInstance(
    OHIPCRemoteProxy* remoteProxy, OH_AbilityRuntime_MoDispatcherHandle* ppMoDispatcher);

/**
 * @brief Release modular object dispatcher instance.
 *
 * @param ppMoDispatcher Indicates a pointer to modular object dispatcher handle to release.
 *                   After release, handle will be set to NULL.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Release(OH_AbilityRuntime_MoDispatcherHandle* ppMoDispatcher);

/**
 * @brief Check if type library is supported.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param pctinfo Indicates a pointer to receive support status (1 if supported, 0 iBf not supported).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkEPARAM_INVALID} if pMoDispatcher or pctinfo is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_HasTypeDescriptor(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, uint32_t* pctinfo);

/**
 * @brief Get type descriptor.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param ppTypeDescriptor Indicates a pointer to receive type descr>iptor handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkNPARAM_INVALID} if pMoDispatcher or ppTypeDescriptor is null.
 *         {@link+} if send request failed.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_GetTypeDescriptor(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle* ppTypeDescriptor);

/**
 * @brief Query member IDs of names.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param rgszNames Indicates array of property or method names.
 * @param cNames Indicates number of names.
 * @param pMemID Indicates pZointer to receive member IDs (MemberIDs).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkQPARAM_INVALID} if pMoDispatcher or rgszNames or pMemID is null.
 *         {@link8PROPERTY_NOT_FOUND} if name not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_QueryMainServiceInterfaceMemIDsOfNames(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, const char** rgszNames, uint32_t cNames,
    uint32_t* pMemID);

/**
 * @brief Call a method.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param memID Indicates method member ID (MemberID).
 * @param pInputParams Indicates parameter structure containing arguments.
 * @pairam pResult Indicates pointer to receive result variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkUPARAM_INVALID} if pMoDispatcher or pInputParams or pResult is null.
 *         {@link:PROPERTY_NOT_FOUND} if method not found.
 *         {@link>TYPE_MISMATCH} if parameter type mismatches.
 *         {@link} if send request failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_CallMethod(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, uint32_t memID,
    OH_AbilityRuntime_MoDispatcher_InputParams* pInputParams,
    OH_AbilityRuntime_MoDispatcher_Variant* pResult);

// ========== TypeDescriptor Interfaces ==========

/**
 * @brief Release TypeDescriptor instance.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_TypeDescriptor_Release(OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle *pTypeDescriptor);

/**
 * @brief Get bundle name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrBundle Indicates a buffer to receive pakckage name.
 * @param cMaxBundle Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrBundle is null, or cMaxBundle is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetBundle(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrBundle, uint32_t cMaxBundle);

/**
 * @brief Get version.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrVersion Indicates a buffer to receive version.
 * @param cMaxVersion Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrVersion is null, or cMaxVersion is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetVersion(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrVersion, uint32_t cMaxVersion);

/**
 * @brief Get total number of interfaces.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcInterfaces Indicates a pointer to receive interface count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pcInterfaces is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcInterfaces);

/**
 * @brief Get interface name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates interface index.
 * @param pbstrName Indicates a buffer to receive interface name.
 * @param cMaxName Indicates size of b7uffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Check if interface is a callback type.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates interface name.
 * @param pIsCallback Indicates a pointer to receive callback flag (true if callback, false otherwise).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pTypeDescriptor or pbstrName or pIsCallback is null.
 *         {@linkPROPERTY_NOT_FOUND} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceIsCallback(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrName, bool* pIsCallback);

/**
 * @brief Get main service interface name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates a buffer to receive main service interface name.
 * @param cMaxName Indicates size of buffer.
 * @return %Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0.
 *         {@linkPROPERTY_NOT_FOUND} if main service interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMainServiceInterfaceName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method count from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pcMethods Indicates a pointer to receive method count.
 * -@return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pcMethods is null.
 *         {@linkPROPERTY_NOT_FOUND} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t* pcMethods);

/**
 * @brief Get method name by index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param index Indicates method index.
 * @param pbstrName Indicates a buffer to receive method name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@linkPROPERTY_NOT_FOUND} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method MemberID by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pMemID Indicates a pointer to receive method MemberID.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkoPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pMemID is null.
 *         {@linkPROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodMemberId(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pMemID);

/**
 * @brief Get method return type by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pReturnType Indicates a pointer to receive return type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pReturnType is null.
 *         {@link ABILITY_RUPROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodReturnType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pReturnType);

/**
 * @brief Get method parameter count by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pcParams Indicates a pointer to receive pa?rameter count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pcParams is null.
 *         {@link ABILITY_RUNTIPROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pcParams);

/**
 * @brief Get method parameter type by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pParamType Indicates aT pointer to receive parameter type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pParamType is null, or iParamIndex is out of range.
 *         {@linkPROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, OH_AbilityRuntime_MoDispatcher_TypeInfo* pParamType);

/**
 * @brief Get method parameter name by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pbstrName Indicates a buffer to receive parameter name.
 * @param cMaxName Indicates size o:f buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pbstrName is null, or iParamIndex is out of range.
 *         {@linkPROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, char* pbstrName, uint32_t cMaxName);

// ========== Enum Queries ==========

/**
 * @brief Get enum count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcEnums IndiWcates a pointer to receive enum count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pcEnums is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcEnums);

/**
 * @brief Get enum name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates enum index.
 * @param pbstrName Indicates a buffer to receive enum name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get enum value count by enum name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pcValues Indicates a poSinter to receive enum value count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkYPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pcValues is null.
 *         {@linkPROPERTY_NOT_FOUND} if enum not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValueCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t* pcValues);

/**
 * @brief Get enum value name by enum name and value index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param iValueIndex Indicates enum value index.
 * @param pbstrValueName Indicates a buffer to receive enum value name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *     
    {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName is null, or iValueIndex is out of range.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValueName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t iValueIndex,
    char* pbstrValueName, uint32_t cMaxName);

/**
 * @brief Get enum value by enum name and value name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pbstrValueName Indicates enum value name.
 * @param pValue Indicates a pointer to reBceive enum value.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkiPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName or pValue is null.
 *         {@linkPROPERTY_NOT_FOUND} if enum value not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValue(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, const char* pbstrValueName,
    int32_t* pValue);

/**
 * @brief Get struct count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcStructs Indicates a pointer to receive struct count.
 * @return Returns error code.
 *         {@link ABILITY_RUN/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pcStructs is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcStructs);

/**
 * @brief Get struct name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates struct index.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return %Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get struct field count by struct name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pcFields IndiXcates a pointer to receive field count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pcFields is null.
 *         {@linkPROPERTY_NOT_FOUND} if struct not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t* pcFields);

/**
 * @brief Get struct field name by struct name and field index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param iFieldIndex Indicates field index.
 * @param pbstrFieldName Indicates a buffer to receive field name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName is null, or iFieldIndex is out of range.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t iFieldIndex,
    char* pbstrFieldName, uint32_t cMaxName);

/**
 * @brief Get struct field type by struct name and field name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pbstrFieldName Indicates field name.
 * @param pFieldType IndicatTes a pointer to receive field type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkoPARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName or pFieldType is null.
 *         {@linkPROPERTY_NOT_FOUND} if field not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, const char* pbstrFieldName,
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pFieldType);

/**
 * @brief Create an array instance.
 *
 * @param elementType Indicates element type.
 * @param size Indicates initial array size.
 * @param ppArray Indicates a pointer to receiAve array handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link4PARAM_INVALID} if ppArray is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType, uint32_t size,
    OH_AbilityRuntime_MoDispatcher_ArrayHandle* ppArray);

/**
 * @brief Get array element type.
 *
 * @param pArray Indicates array handle.
 * @param pElementType Indicates a pointerJ to receive element type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_GetElementType(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Set an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 *         {@linkTYPE_MISMATCH} if element type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_Set(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t index,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_Get(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get array size.
 *
 * @param pArray Indicates array handle.
 * @param pSize IndicatTes a pointer to receive array size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_GetSize(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t* pSize);

/**
 * @brief Resize array.
 *
 * @param pArray Indicates array handle.
 * @param newSize Indicates new array size.
 * @return Returns error code.
 *         {@link ABILITY/} if operation is successful.
 *         {@link3PARAM_INVALID} if pArray is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Array_Resize(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t newSize);

/**
 * @brief Release array instance.
 *
 * @param ppArray Indicates array handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Array_Release(OH_AbilityRuntime_MoDispatcher_ArrayHandle* ppArray);

/**
 * @brief Create a vector instance.
 *
 * @param elementType Indicates element type.
 * @param ppVector Indicates a pointer to receive vector handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNT/} if operation is successful.
 *         {@link5PARAM_INVALID} if ppVector is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType,OH_AbilityRuntime_MoDispatcher_VectorHandle* ppVector);

/**
 * @brief Get vector element type.
 *
 * @param pVector Indicates vector handle.
 * @param pElementType Indicates a pointer to receive el<ement type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_GetElementType(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to vector.
 *
 * @param pVector Indicates vector handle.
 * @param pValue Indicates a pQointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link>PARAM_INVALID} if pVector or pValue is null.
 *         {@link<TYPE_MISMATCH} if element type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_Add(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a vector element value.
 *
 * @param pVector Indicates vector handle.
 * @param index Indicates element index.
 * @param pValueg Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_Get(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get vector size.
 *
 * @param pVector Indicates vector handle.
 * @param pSize \Indicates a pointer to receive vector size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_GetSize(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, uint32_t* pSize);

/**
 * @brief Clear vector.
 *
 * @param QpVector Indicates vector handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Vector_Clear(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector);

/**
 * @brief Release vector instance.
 *
 * @param ppVector Indicates vector handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Vector_Release(OH_AbilityRuntime_MoDispatcher_VectorHandle* ppVector);

/**
 * @brief Create a set instance.
 *
 * @param elementType Indicates element type.
 * @param p`pSet Indicates a pointer to receive set handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link2PARAM_INVALID} if ppSet is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType, OH_AbilityRuntime_MoDispatcher_SetHandle* ppSet);

/**
 * @brief Get set element type.
 *
 * @param pSet Indicates set handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @r+eturn Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_GetElementType(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element val<ue variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link;PARAM_INVALID} if pSet or pValue is null.
 *         {@link<TYPE_MISMATCH} if element type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_Add(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Remove an element from set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @retur'n Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_Remove(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Check if an element exists in set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABIL/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_Contains(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue, bool* pExists);

/**
 * @brief Get set size.
 *
 * @param pSet Indicates set handle.
 * @param pSize Indicates a pointer to receive :set size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_GetSize(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, uint32_t* pSize);

/**
 * @brief Get a set element value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pSet Indicates set handle.
 * @param index Indicates element index.
 * @param pValue Indicates \a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_GetAt(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Clear set.
 *
 * @param pSet Indicates set handle.
 * @return Returns error code.
 *     
    {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Set_Clear(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet);

/**
 * @brief Release set instance.
 *
 * @param ppSet Indicates set handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Set_Release(OH_AbilityRuntime_MoDispatcher_SetHandle* ppSet);

/**
 * @brief Create a map instance.
 *
 * @param keyType Indicates key type.
 * @param valueType Indicates value type.
 * @pardam ppMap Indicates a pointer to receive map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link2PARAM_INVALID} if ppMap is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_Create(
    OH_AbilityRuntime_MoDispatcher_ValueType keyType, OH_AbilityRuntime_MoDispatcher_TypeInfo *valueType,
    OH_AbilityRuntime_MoDispatcher_MapHandle* ppMap);

/**
 * @brief Get map key type.
 *
 * @param pMap Indicates map handle.
 * @param pKeyType IndicaStes a pointer to receive key type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKeyType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_GetKeyType(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, OH_AbilityRuntime_MoDispatcher_ValueType* pKeyType);

/**
 * @brief Get map value type.
 *
 * @param pMap Indicates map handle.
 * @param pValueType Indicates a pointer to receive value type.
 /* @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pValueType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_GetValueType(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, OH_AbilityRuntime_MoDispatcher_TypeInfo* pValueType);

/**
 * @brief Put a key-value pair into map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key varianti.
 * @param pValue Indicates a pointer to value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if pMap or pKey or pValue is null.
 *         {@linkATYPE_MISMATCH} if key or value type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_Put(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a value from map by key.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey or pValue is null, or key is not found in map.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_Get(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Remove a key-value pair from map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_Remove(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey);

/**
 * @brief Check if a key exists in map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pEexists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_ContainsKey(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey, bool* pExists);

/**
 * @brief Get map size.
 *
 * @param pMap Indicates map handle.
 * @param pSize Indicates a pointer to receive m9ap size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_GetSize(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t* pSize);

/**
 * @brief Get a map key by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pKey Indicates a pointer to rDeceive key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_GetKeyAt(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pKey);

/**
 * @brief Get a map value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_GetValueAt(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Clear map.
 *
 * @param pMap Indicates map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Map_Clear(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap);

/**
 * @brief Release map instance.
 *
 * @param ppMap Indicates map handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Map_Release(OH_AbilityRuntime_MoDispatcher_MapHandle* ppMap);

/**
 * @brief Create a struct instance.
 *
 * @param structName Indicates struct name from type metadata.
 * @param ppStruct In\dicates a pointer to receive struct handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if structName or ppStruct is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Struct_Create(
    const char* structName, OH_AbilityRuntime_MoDispatcher_StructHandle* ppStruct);

/**
 * @brief Get struct name.
 *
 * @param pStruct Indicates struct handle.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates s?ize of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pStruct or pbstrName is null, or cMaxName is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Struct_GetName(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Set a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 *k @param pValue Indicates a pointer to field value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@linkFPROPERTY_NOT_FOUND} if field is not found in struct.
 *         {@linkTYPE_MISMATCH} if field type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Struct_SetField(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, const char* szName,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to receive field value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@linkPROPERTY_NOT_FOUND} if field is not found in struct.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_MoDispatcher_Struct_GetField(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, const char* szName,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Release struct instance.
 *
 * @param ppStruct Indicates struct handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Struct_Release(OH_AbilityRuntime_MoDispatcher_StructHandle* ppStruct);
#ifde4#endif // OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H



yA[x4/*
* Copyright (C) 2024-2025+theEethe&the License at
 *
 *themT=^the definition of the C interface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file L
 *
 * @brief The file declares the error codes of the AbilityRuntime module|I13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H8IEnumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
A
     * Operation successful.
     *
     * @since 13
     */
   Q2$W = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
   .]ERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
   .)\ = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
   Q2T_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIM`2jSUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
   .INCORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *
     * @since 26.0.0
     */
    .VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 26.0.0
     */
   .STATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *
     * @since 26.0.0
     */
   .CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILI.CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
  	   */
   .fWUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
   .CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNT.CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNT.EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.$
     *
     * @since 15
     */
   ._CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
   .^ = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
   Q2T_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
 
    */
   .VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
   .MULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILI.INVALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
   .UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
  	   */
   .MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
   .APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
   .GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    AB.START_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
   .MAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
     * @since 26.0.0
     */
   Q2RUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
   $  *
     * @since 26.0.0
     */
   .UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *
     * @since 26.0.0
     */
    AB.UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The requested property, method, enum, or struct member is not found.
 &    *
     * @since 26.0.0
     */
   ]. = 16000173,
    /**
     * The runtime value type does not match the expected metadata type.
     *
     * @since 26.0.0
     */
   .9 = 16000174,
    /**
     * The IPC request to the remote service fails.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIM.=X = 16000175,
    /**
     * Caller and target are not in the same application for {@linkpELAUNCH_MODE_IN_PROCESS} mode.
     *
     * @since 26.0.0
     */
   .CROSS_APP_IN_PROCESS = 16000176,
     /**
 	  * @error The type library metadata is invalid, e.g. missing or duplicate main int%erface.
 	  * @since 26.0.0
 	  */
 	<#TLB_METADATA_INVALID = 16000178,
} O;
-/** @} */
#endif // ABILITY_RUNTIME_COMMON_H
!I[kxۥY{CJQG a]Ex$ ]"g6K`uu.Kf0x;y"-''*M~db2LV60&Uև27',ssLuT'h+N^5yD.׼ԔԊ%.  #u x;y".LmR8yA2D\SRSBR+J+ [x;y,';N6d6FRt l\&q>wbj7 /_x;';N6d6FRt l\&q>wbeE䆉ړl6[BfNOn?1y.n; "&l0x[1yL0q %?x:ydJ&?՞}s}iwW, -,x:Tŧ&k,w+ZT㘓Wĥ \ +cx\ KZ$("?5\t8P|1u1+*'q3 NoGlyphShow"
    }
]$Hx  $("?وoFvx8yd-'TAk{P^y,:E#*YGIrݸps	KF ]<x' KZ$("ϥoM+rxu KZ|	$("@!)*xo/*?@N*#OVS'U V3bV
]E,.x<{"g
(N6:yoxfISQiqQ@dE)]y?l4YSK'+U0E&3N7s+Y29`l8YxRRsSRK&*CM~t: I7[2x|y77a{ h	bUx3 œPp	RecordCmdNestq!/`!M4>x˼ug
(N6:yoxfISQiqQ@dE)]y?l4YSK'+U0E&3N7s+[
 s%txļmr	ϰ<Ytr8fn4'Ԩ!Atr&;5&+X)mVuޛsD0u*M>Yj|E[&X e_+;Fx<g"K'/T5g	\A|{RdM<cL(q,JM.ȣ$SYRZ<YpLYfNc9'N_*q\&,&',s؂ HxlbiCJ7,) X	.l|x;/ӆ}L\ +sx;R;UɷY&sW\ &ᓙQ>#~Qb`5AVu")Eii;L<.4A~u!vv̜ʂɊub,Ů`"Lœ75q'iټX@)h PBd^O<X'_HY4WprfI?k@|R<g2*&;1;ÍVl,d m 	x;ig3t&sW\6:ܯ!`RY0Yq.Tճ5`BLɳxƽ07!wX(xp1 *WhQɱXΡ.٦Y 6:R	x;yUɷY&sW\ &ᓙQ>#~Qb`5AVu")Eii;l>B
8cx7KY3N>dw-Ky_l"7 @70xk˴ylɷY䘌&'OZS薓8y.P.(5H{Qjj9nSNi*XJM(RYXL&Rq7fYn
SbhM@q,pPƪ'ذN:Hu5laNxk˴y,rLFe'	rdgdOȥ2_T`X LA ZZqκAQĔ"״&TkAa zs:H|[fNNHedŉ!eVb܂
izP&@y4la/U4!MoB"G)`3&
N,g838s~nA>7'O&b09Jq1c:U$64[OA*]T$p8$&3D=AꜟWRX\ĥ \ xk/o䘌&'O>.PXYY86 _+Wx{y\cfA/䲈Tdg+q) A-W, _4x{yÍ#ry)iy)9.9J\
@P nax{'VxKDhL]RSRSKK'`Inb Q<Lap5%E%2z$v1(~|Pjq*\~7s2R`Y8y&Ly@ʿ%$d[693-DmcK Q yr,99-&GI#,,(sKL,Ȧ;y6'89dNܨ7ٟU`y8AT>g:) thx{'|ZtkZjfzz?2H8&e&Ugd'O>ȨfWQTVդĥ \ x!VPx{+1z!-ciJfs~JjDOl""Bx⒢Ɋ: )a$Ԣ&ryiE2Y29	\ IypIbQ	~8Ff`S+. ϼ
~NndDt<=vɾ(VCv{j	tStu|	3sr F$n/x;-zJtkΉ*v -QxNAcb!-
(*㕘nI_!@G3Py7<833n۝|9svf>?01VgE#KwŻA"K?i!+ǿ9}D*Cm.놸a:Fp`
ꑑxUB/	oOIf#Nc>B#\Zg78sk.HJtM,G4#_WzZN1v0@2Lq4-:Q}Sph]UeۑHƌ41hXV}P;F1rt
lKq70"*`!T{/>&3йd:8f]BdI4D	Cjif+n4^0z&֕xVlJFsO9Bqh0+}j.%=JiDI|ۼ9; 5ilJ_%Eä
&	7Y	q4(')ԡub&<n{hUP8B:YTDBeq-Z2Z,\~>GpƗ	%/%u	[q{=ƨɳ$ˊJ0+mZTz[qzJ6*[`YjEp01.Rulوi_cӐDN$E]{ڮ2j<lɨ+@؛1J|$]5RLRPܮJۺ1Iv|5}䲫Ĝ3l_ߣ`	:L4Tr8N	|.r=Sv\jfL녈q`|F̏Sj/hp:Z0+\V:5rmx}9YsB2JS&'r0aRMgL$S[ "3x}qV%y%%y%ΉEU/zMn2 oP1,pɀ$1&/Hl2y!M)^`z^xfIOjYjrr ,1x}ㆉɓ
M/1pqO';N^Ȭ:yS30rr`6`S Lx;tq'gJNv33yfԓ@*r o7xwIV%y%%y%ΉEU/zMn2 oP1,pɀ$1&/H, a%!^xxQ='`|m:F ׉
xx='`|m:L

'Ǉ@B!mC!̈kBy`<af2LL$dc0",j<Y B,P 1?&M.\	y+Ar@y0uB0m1UJpAcD#Aۥ($3?O	|ɡqձB v|03-aN)(0A!p$.f$?{;e&%C;6\[AKjb MExwqr?&{$93)(LN2&MVPR ZX. M,TxZn7UH\T'R 	]B
nRӤ~Jrfv^/]o"x@=xcw9g?Zkv{N] Mp4a(cG+9}FvޝEOv\a $i:K=!eP־{㓘(Ow#CtT;k rՁ	cl!ȵm?5+Vh=$xk5V0p`rytJ#GX/M};(T&{KҞ|8%ac!ޡ#%6f]OB0?'D1*S3qZ!UL߳BWhL酣g'SfLJ{>&X'6;Cȧ!9FSFu]F0IWə_h':L/lbv86IC23/BǊA>xzQP:Aj<8K%.[H=cT*&4dEz.ݛPS:v\M6eߺMho4eLl]0:f ?k*	=(,WݔB-xp:Jа`ϊ悁"зmm@1)yA?Wꩬ̛<)};&fAt`FBٰ 
KQ `=.$HxGIN
FOP-9xp	WS??psJ@5HFNȪ~v6k#cEoĝ{I _$,g4( KJJgQ+l5uƧF$pu'$ʦ L
|#sQL kGyS[&)A8\Gg`4̒vh.x06al~)פ
u]\^q']3	ֿ &0m͢k;wo0nUՍV6Fܢo+fdE7Hu@cل0<	SVgcDt`V8%~ؠ/&$,fg(nV50!Q_9fv+mK="UTY"zH嬹!eu7`MqfϠnT΄ňO6yM|ax2Ki\;Oy zn|WEHľeO!^cWu.&G*vܴ/@/@A- #4@'޶*4EmPWM
uFy9k5Z "5B&oXEےHQH7 X\ڌg5ߪ/6xƹ++[yUD	颩0ju~M|fvloɏ^¨\0%k<Uh>`ʰ2]w{aGSބ("^w;)xUb1k
[q.{@C?"FJIBޗ>?y~#?;ǖV^32}}9&QBߘbaF4Xk*L<	@JK{by'	?4l>`#J$ awE4ǵzolb'"bGJiQ~{gZr)<%.}`dYX#pw1W[m68=/@}r߾aL3;]-uˁC}^-4K"Z2fՂ%AK8^^yJh80&&`6x7 ԏispatchComputE 1DivisoEBEa
]qbex}Vn@U%<Ҽ)myg[6*'MJ)j*י&q)Y	IVl;4眹{=cۅk{F0~s2Ѭ0
N E5SOQA#G`xJ7:as4{%#GB0gѷve"tv.2$r|pNdwGFU ;=z̘ گF)r$u |7S$.G4@MI7!*2z\apb$l&9J! &L@RObaiYUS:řFX3tC'&izl% EYR<i`IVe9oc]f~$Z[JY~#rNs^&#&ҀelG_+
O3UeDȶ\x/ϡ5FL#!ȣQ$V&KVA^`l$ 	]<K\92~oH9:h	JQݞ<͕:iEeӱjXײmj_hp({}8_I6NߟWvzC.ZYyKP@``%
N&q ͔
l7e`?]M/Ts@^{sGe&#9DC)laE:3)j4;ġӭ<qZдNŏ!1CPi<fF}:B];_jcbd<*,w? 4CJ(eeqtz$o#yJyEAB7q6"$'Orz|>\A,~Zq=xn1@lRP%6,Fm`)t%kyz衟PO$Nmd)fgsw=r8p
^b>eU3:r_pX$xL4*,ܒ>Pgm=LT  8~)cjg4	|}}6NE̒Q+(|ʿ/+
Yml5,d7l߾By˒}+:>+6$?ADhm@	wKĄŦ:mQjZk"Jܳ 8b)Iձ-oe=~Q9c5E<uz;=a'fSH~Gj_e8x.Y6n,UqNS{Xqh)l82)@~eN9ŎQOGlecM;z?ї*Ix}J@<h/C 6MSh-Nj%Ae}|Ëh}33t)^
Mfsp^pccU=/ RZL ~ҟap[!jc+qr	7:¶z)m1Y	49b_ jA|r; Irh2߃P:%i\EI!/-io^[x9=ıCPbl8\C!
žy39e0t F9f[Dgս )3CעǬz8uXLVn"ҢYsRsWv$,x]n@U*B$m|j6*I!IVRoP\ `׉]{C󗱯^o72-lL14{H1vk<Mv=OJ:	F&y*.;NBا;f@4B6?Y~VRYIGyUׂ#@拙W
P,gk;촴U?;g/#V*_]*$ou!ZOAI셇ra*ᤡ*~UFCW*
U]$:He-7;?NHp@:KCj98L萲uk5'44|܋
6xXc/yX?ZPss	j	n-scH;Ӎg݈cxPX{1Dv5bPhآRn?eː}08w9%څgrz~AYԷ[h>)3D`MAfU5	{'bbG11QW<v!MQ3-U 1rZ~t7٘ E!RJ	ۆJ&<lm6y|¿{BRXAN'r|dy8ML	h,XAyA3H:X2=>r>E>$SHiύKz6Q`M76s:Oh3s`(ŧOy`7=Tc"XO̢590q!0xX[OG-QԒHbCpiŘjqbNԪE^X4TTA/?O}OH~@o޼3O֜93;ٟχi9]+;:6h
u'*lN)tG}C7y`1	
rLrza5[ 9+FLitg'}x9% 	)RIA0P`P$7Ҭ}ܝw*<UzR,{N%Y&YH襺$>[l|@>ܾ[ !Z!kEu:o}".Ӌq0ݱ~9H9ូAJ͕hbAB%:DQɡZ{X[|SM$"CI22"BLDI>ฐ!	B3gW~E	B!G⑪$f$?g'@P$_]_!!C]PztfjW}tFY#_#*T0.2|>=g%R<QYȆ;}RN&z=Gc3:]`wUW>+aWN.bN}nb!xRl׀^Gtbo#;oHTPǭn2V}sf!RY0,ƨ̓H]YNTuoQyEI@eV9:D
 ZXU`
Fڣ̧'CǀVizo38 =Ymn率]oC|6
`%si f|"Щḡ:\Psy  U҆U4K2*2eNÊz{\[)_쫱+ސʊ@tg{F"ٕ~2Mъ~Ք 8ک#RTeZ{PCWw;)]bel.c9
5MiC J	A54ͮHo%	5VJ7=`: 0<Mjm"U(d/s!z0?BJJ)24rkͱ2tdUvnNT׃fL.U1m>
$Mx5#ut5$n#˟(\x~Rtu@aڔ, gO~Zg@~~@nq]%G-7)<MNץ\7*-s:ghP;N{oְ{;JƧ{B2NOΥCCw$^Vٞ؈+VE 7ZVt`2("f:DJo%<`)+A*ॷy"=.auΈ<pJ 9E/'ZeXطG;ڦ)1)JdOCq@=q$aX6`:m&zL^aȥ'7B%!~-{Iė.E9I;K&;-LBVCVtG.F4èy!1 \ڧ/K)?a{*DֆG c	-#q9({  `.kǴB~v0ܬޥ'EPs~vmSGl&==g/ߏ?/qpx"&W/9mrTPjzfqIjrrNiqf~KjIjr	1trL\*sr+ &&QxqLF/hn3>dHMgλ"ȑ6Ϟks%?.7$rNW,?+ "xWnF.ql-pMlv$PrA4fpTrD$@]u'elya29>gWo=2		iZ=p-3G%HX3I|33ϸ~7eº&sO"6&d]^Ļו'cKҫVRaoEi,,3G2rlk:MC)] &qxތ.Ye4Lqi)MDiJl;>=E.Y5Czz^Bm_rA_F=fc7H$ܐkquȠp<
H%A3M໻e\A^TCzzǦ)^W7PS!	\d!*R" J[=SکV;| 5 5=<C)Α$??8j"ţ=šOhm'py-P) 
eq40H/)z/g_fXRU8l{2N"3;		<66֖̲yWoq̖1A1-czպHꍶϽ.˰+!TlUt:PnGruӑh~q
vxȥWIff>K7zƩnЯrg<@&A%7Wn+=6qe;n4O_|Uχ^u }}Ͼp'>5?QUSN"<O<6P yPq鹌21?k|(߇Qi
avvtFI';񋬧ۻݎ:ks?Y:clg@Z5JsȦ|X){SWv} *(ʤxV%(ZNݗ<$5/S{-h&KaB.p3⒄Kݡ{&}׺q	BSvTu90vj5Ku* F\yǏq$Ixn@er ".\BAjˡ\GAT4ƞ+^!ϰ}	oPfɲ٫kfCix~8qr)."WD
.U˼ \n뚳Ja	L/=O#?>0Oז<|gmהЋ!)T)a	6,"oRt3p?!E'JN2AHstDnc׮*ȿ|<R.܈>,
x`G5ܫxxsvY[>?QĔ8ib4KFmhfƩ֎1A8 ~e2is_嵡:3gOx>)=Cs.bEq-O_T6p
әTϼRd3vK˖$ϩ c!8:9S;&ּf{2ozy3mS]>;)w1$"^v	zQv(@&FixVr5aڤ&406+h&v|4K3vWLlג+ɞ. x =+y7;ү7]/9@c	ˏ&
])E1j"/W	anaqNQ#a`n⪭\0*+|'z[uL<IǨ{L'\ 6StR,7$ ZD\Ti$9?CJNbmipyq+(v,bXѤ#E؛y<pq|]i8eE˜缢凙4ؖvb$V-ڜv$}4@feyٶڛJ3,<tm?@rR$y$u.r#2
sue@V<APXnk:HuzQ %țSwvEur]ƅ4}ކ3U; a`SJ-ěꫪxi%Egy)6!Qf;ŀX*Srp\JW@Yy=gжkcUC锽-9qn~4jCMڄldDo˫+Zƚ̛ߧbzg=cxdM/2vJ̐kk=8hkgUNճJm(/<!5޼hPb{ aћ}6ϨAWLTcՉPsCbAdՑmbXEoߛBisR cyy<-T=uq"{}۪͗~\=T=_N@屓+]Cku	(BWˉ"q)~"o޺k0JQ G1+E~<ZLK$51NMDS']LTjTPMsZ2 P~[ibxm)?ictureMetadataMictureMetadata_GetPropert-ictureMetadata_SetPropert-19"ictureMetadata_GetPropertyWithNullFictureMetadata_Releas1-ictureMetadata_Clon1.6.0.0ictureMetadata_SetBlobData!-6.0.0ictureMetadata_GetBlobDataSiz1.6.0.0ictureMetadata_GetBlobData!-6.0.0ictureMetadata_GetMetadataByTyp1.6.0.0 ictureMetadatas_Release"
    }
].^>x)&2ackingOptions42ackingOptions_GetMimeTyp1-19!ackingOptions_GetMimeTypeWithNull-2ackingOptions_SetMimeTyp1-12ackingOptions_GetQualit-12ackingOptions_SetQualit-12$ackingOptions_GetNeedsPackProperties-2$ackingOptions_SetNeedsPackProperties-2#ackingOptions_GetDesiredDynamicRang1-12#ackingOptions_SetDesiredDynamicRang1-12ackingOptions_Releas1-`ackingOptionsForSequence4P&ackingOptionsForSequence_SetFrameCount-P&ackingOptionsForSequence_GetFrameCount-P)ackingOptionsForSequence_SetDelayTimeList-P)ackingOptionsForSequence_GetDelayTimeList-P)ackingOptionsForSequence_SetDisposalTypes-P)ackingOptionsForSequence_GetDisposalTypes-P%ackingOptionsForSequence_SetLoopCount-P%ackingOptionsForSequence_GetLoopCount-PackingOptionsForSequence_Releas1-12ImagePackerNative42*ImagePackerNative_PackToDataFromImageSourc1-12(ImagePackerNative_PackToDataFromPixelmapE&ImagePackerNative_PackToDataFromPictur1-`/ImagePackerNative_PackToDataFromPixelmapSequenc1-12*ImagePackerNative_PackToFileFromImageSourc1-12(ImagePackerNative_PackToFileFromPixelmapE&ImagePackerNative_PackToFileFromPictur1-`/ImagePackerNative_PackToFileFromPixelmapSequenc1-12ImagePackerNative_Releas1.0%ImagePackerNative_GetSupportedFormats!-6.0.0!ackingOptions_GetNeedsPackDfxData!-6.0.0*ackingOptions_SetNeedsPackDfxData"
    }
]F4:xJAY
!!p3j&X%Bfף323xEoPt#CoLnkޝ-rn".Z.,\o.QBJAԐ@VX*!VέEm.vfco[;ގFT|X̺ЦƜv#L,3Cתb^2*a%jvSЈAL3qt0AzC2=\t
})<rX2/S15la|짶b
LJP<, "<̕
:G.b@~Oه/V0=\xON@Ń. V1
X2dZ>a4ө@2WqiCKAi'y3K6t0z׀wN]Z{t	y#\pwcc$+,AY@&]Z@v(tAoPFtt۟@5?ľQafغlu\]n5SD{R:=%dcgmulHZJ%xo:WSD+H`<Sق<L0!ZN$kkRyo6AT\ٔ7,CQ<W$֨Q'te2r-N\{~ay~-DyAi\x[·qdGFq̴xb嚗2YU,ZZꛘ옒RZ\ĥ \ h	|x[k1N371=/$,5=ά&&土[WRYZ<@UMSeISiZZjHV],1InF 49ؼ	M-.I- 
PȊhE	t9Eu!*TLg6(cuKbIrr n)x[kl3y'/
,)J+N/M,ϛ\ 3yd~¢Xix[ktB~\yLsܛ,gsu&	XYꓯB6	ä8@EYFXKY@Y#xn@UqH$
%P*T7k1'1vD{Ү$c"xVM-gvfg}!seE.avD8hP?wO͛`S~'a&#;>NՆl8]	ˌtm>I=t<ˌy\sJDXo`KNd}QJݑSzu.\{GQRXsbsIOb[C,j8(33XRt
_CWK*$t$xπkti3W0uuLhNJ@fu;<w5X3	U^B>ycpɔ@PEtS2c͚BI[렑1{(dmV15[SM2mwUdĞPڤ7Jih<΃byV1f)@}ťٓ v,.࿍؁fp¨G.,Wed߯Kz|I.n!ӷIwv3!Ꚅ;g^B<(ިgOO^ЯHr@!ޚ([DLB*~VXwX\!xON@#P&Ec螝\,XL3N-@n+NK3S.~ߛ}}˴&4-魆Qہրr</e\BlJ/Z @/Ru6fC
M5
W9&祏x'
&ݙA?EA|R?HlQ~,bPd8"=C8Q])*'	a9FqZSK!{>n_/Fw?vق 6cf*;*̺gӪA5UhjXG^s@ڙx5Aa$+cЉB1 ձĜ"9w8$n=ޥ,W?N8x{8~:cf+̓7h+n՞  	4ax}O/AS"ĩMdmEBmqJDw/;t$\|7'temZyzcW"lXoǑj/v6b-9E׍(ʅj}<GM#=81j8y6G$xKYI9yD(or;H00Q,40ۃpju]]Uցj$kS}JA߃=,Ցm;fx.pӺ Vk,RsþS9/LBr{jZωnYoRñYz{!ʚ)*ebO:K7|~#Qڤ~+ωd+:iScY-F*jڏ?j'Rxn@h&-$IÁilLqlDxV2^#		!'@xG};3;VZwHkIL9`2Xڝʩ46sAG`;]x,wC(E%)F@X:Nz b<.I1}NUgƱJEi1Iu O~F;ߪdۧ)/CɈ>[95u?<;Q&w/k(bF:"<s`ro;G%hR<)l8ǮO?6*,4yhJ5H3GuRʜ=WoRK&9R7?ĺ֏/Fб.y)Ǉ\C$2_-LC.ߚ8e"B:23c_Y:vʜBqk2ݑPPKAosx{xqdCɫ=K2R|SS2r+3''N~%<YClr  5xWnGVRU)-@K)muv=k-3kRn;8J*
}J<P=3;{!;f뿿1,.fG!ia/B~f-d脵Roq/;84křq.8zO4S[vj8Ap3O Fq+z~ll8Ab7Ǎ>!G!&tF9D|k)DQ7}D
[R1HNA6c tn|fSc*z
ӊȰ=B1ɴs@D?OuiDG>mwWf58dsbSuQ1`!Y%+)p6p\N)Y+-$_jK*A#$?]+u:clGGaa5E.DXzbc<ۣOaaR]((pidv1%Sb9%
,bu(aG&H(UdYi+<F|d"vIX!q] |	Ʊ DEI\ #DdǳGsv1=")0ڪ,
|G.ѱhdaWb/t\ajqYYu*.aA#. ]N29h=´#<MHmgł%8/,_끐8У 
ZA8@A	WQإs:;T0^<:ķ03)uCpmHmUGbYe TnE	Ng<&1: ^V[H'[b1Q\|gbͩ,|~ft)|"c(e{ ^WWksgkr
b",ZvRRؐ͵ZНD.WZB-7|ON@L\=_K'ǹh$V¤8%~e6rֹOLu:1e^CZ-Ͷ/xqb*@-	fZbWJTcFħԢa
(fΤ22prd`>2y+}xu^"T>&^gW
^S4,$/`1-T?JUl.5[#	U]Fy!290R8Z쟌nҒW*5(ě1Cp1mL0'{SZ؎kUfP/]os^9߬G
տ]Yȟ&Ov22^oZfυiD;pxn>UvzvfعbG(%QOߩCehFxиLX
rt-jXhsWQ``/yU :FGAG򍏃g-HG~?3G|<s{Ouar=C,
5J=lY㥲hSM֦[j%lXx\?%"Iwsr^q*"巧*21>MJ8WioOwxrLf̍o +GGDKs` zً쯳mx{8q3W, #7x{xdڊkDb bgXx{81}7j` hvx[.cpE^{jIHfnjT~^jPidw-[fQqIpIbQ[Q~.HcQQb%N7uJs"Cʱ	SZAjXU78(xQTc5`e`K&rʠ{E&)q) A-W, 
x[.7A~

NYbԐʂ҂%.  *Oxn@ePɩU%DRS>ҨI *9!'
kk8t%<K߂ǠoQ5v6|3~eY{ԥbxzc]jAg0Oh0@ry}<bLܭʒ=˕,#\8p7D$kڧ0O Lԅ FE b`v8g&Lށm/P5_p4\ ?`
g?ғW܈F(#Q%l}HLXХžDkNMN~wPYh%U%0G걮LXS+f7@m6"Qt%ۿ @J.3Й)Hl{$Sj%X=b~9&\63RXۅ
ɡP}hNT%/Td;,zQO
~H*EG-+!JՕ긺ƔxER澼E{m/\]
!rHBt:/!mK03Ԣ۔K$fޡVԒЍ>@Yۑl7o_\FebkZh_$vBxXnT'#[WŵĖ-J;P3C`WzoPW[_!Pg3쒔g99s.9sVyOΒkM{؎=a8"=LcjG q6-x?f Gv87.եxn>]Z^qa]jGYCn IyطNCCf//?}'hE<.]i	^N;miQ,q;^ZkIӐH/CEg0-L~][.w!O	ϽSn D6!=	hIq-KxГH}nZ6onN&l Iňi`ـMn$7;=`1 1Q{o-@ ntzQ;Grޚr\@01٢a+
! 4</+/.eiY/dHꗒOM;)**Cc9"?C}<?>ce0!x䓂X\RtLb{ 3f]0`!6ҀrrH>Q\RD]ղؗ7y=c>0V2߇4+.,W ˺+@ćdDȝ/?"/BrbAjZy1f)20Zž<2L2hJ8L`5@11	%1spm8n
X D=̪1r, ܆@~^P8_'QT%̓RIlF3o\+
%*,x~]La`CZ0ͭ6#"M]V3|"˵撅as2 Y;b#l=⍚Xi0i$U̷F"dXvKu+Srӝ67OdA
!WYDq]+hT,44Gi=58",yX7*Ds,{.ÀݕA*AY+T@|bbCbA#]ZT<NyqZTsx=t]Я\xկ̤\ͥChL(X@t+0(L΁Ƥ2Y)|ɌEaƘPfgϝyy3X|3z;.EĘZ87O7JsW3 ?rf{ɥ;|7Q"d$`SFGi@=Iئ(_ōZ* >Tnէqn k8`ԕZ+oQhpךi.A*[<*A(ztXYu>%¦aQD-$Ыmá%" }ө'?GӷR$f~ eabT LY׮͜{~r||4dj.mBpebddLsA٥v-Nyb]oFG/7%p-棳7f`tTDÒiny+;wo硽[#0ұ'qzhAz4LѳtviKlBѳYlQymMllJYN2$d^|ࣿ\I3XTMN4>(t7!X~~SOשui:z]QUyаi@M_Ϧ%2LV!] NLO&~=st26uex[nLD87oprd&_0aR Mx) ym00,j"1(	3):KZ)Jx_yqC7dEf=pOu,>N.[HPB@%1_IK
J*R2r&ZBs		&N7~zOqotG=90C"$Zq*VjB0g"=0OWbbZ91x1yfyJ\
8C|'/5ATaQirNnnAޞ>~nM=6Ks '2?oPx_9lIu 6jx3 yvi

,lP
 o*	TRANSFORM-1 &x{{d/fғN`G𘜍'oTׅrEX\QX}QD&;ra
#br,(=77xCk`QIʼ~!aNnnAnA&+0KOT? =%x{r/fғN`G𘜍'oTׅrEX\QX}QD&;ra
#br,(=77xCFD1FD,Q(\gda.b@#}\'/ѝ-ٗ3K	l$e^a?0xP77נx7 _Ɍz'm~ clix{۞a -l[x{_y|C&6L} ,<.xkϝL2/hm fs	:lNxkϝAWl $pux[Rl>wuU7?vT Gqx~}7jOKr ObIj^rrr 1xXOoEW#@!(š঍4qTv]YjJM!4_U;%HE\Gȝw.	/:;wfMNy{ͼӌ}
Tmj`:6߯+w{-膳<, E =L]{kEmD{\B2N5*"9N(uDHٷG1ؕՍ[əB`oG| <nS U"~⃦d:&ʥMJ\L+(dԧp$1
wqUaKnVɥBIG1? MwUbe\)x"|د-alU^*6)iޖ׼&֣rP	r?O d;;|>u޸3ꞳPFJ*4[ȫG:5R(mv1"}	}]M`U5?;pgTf1ې^D_,lA؇]ԁ'DwhU(wL#;̥vM3(EeSj>2żjNJ->o2t5ܾn[6jd4#zimNvd/T16*T/7D+CC-&ҹ5t`8-鐻}6];:VxL0#+GgJ+VȰ EDKYv8~\,Y tاP @̐&gP%gskٜ~YsLj+Z[l޲69Ԅ.kȌL
/q$3ɏb?vl9v_r_B4j)2;fnVIWxBWrYMTT#˃xuܳC`na>߹λCsB:]Jco:(,w3+ϛ<@>0H祁v^op9菐9֩YBJ8:_o9AZRxiPFVP'"ᬈ˞]|xF~P
>@|EJ^Q$	m>9S]݂y[,L΂<9^";)*V7qeaB}@0-l؋cE|wS[yl,x;SrtLFu&+ILO+,NJM)M.sKLIMq/r.-*Je&*q) A-W, %x;Srd)O>dg+(٧U&U9T2$	q%z9&_UM7Vm %v#x8 [&01
udioStream;01
udioStreamy<01udioStreamBuilder_SetSamplingRQ001udioStreamBuilder_SetChannelCou.101 udioStreamBuilder_SetSampleForma-101udioStreamBuilder_SetEncodingp-0101udioStreamBuilder_SetLatencyMod-101!udioStreamBuilder_SetRendererInfo-01!udioStreamBuilder_SetCapturerInfo-01udioStreamBuilder_SetRendere&5111udioStreamBuilder_SetRender	H101udioStreamBuilder_SetCapture&5101 udioStreamBuilder_GenerateRender
.101 udioStreamBuilder_GenerateCaptur
.111 udioStreamBuilder_SetFrameSizeIn"4101udioRenderer_Releas-101udioRenderer_Star-101udioRenderer_Paus-101udioRenderer_Stop-01udioRenderer_Flush-01udioRenderer_GetCurrent201udioRenderer_GetSamplingRQ001udioRenderer_GetStreamId-01udioRenderer_GetChannelCou.101udioRenderer_GetSampleForma-101udioRenderer_GetLatencyMod-101udioRenderer_GetRendererInfo-01udioRenderer_GetEncodingp-0101udioRenderer_GetFramesWritten-01udioRenderer_GetTimestamp-01udioRenderer_GetFrameSizeIn"4101udioCapturer_Releas-101udioCapturer_Star-101udioCapturer_Paus-101udioCapturer_Stop-01udioCapturer_Flush-01udioCapturer_GetCurrent201udioCapturer_GetLatencyMod-101udioCapturer_GetStreamId-01udioCapturer_GetSamplingRQ001udioCapturer_GetChannelCou.101udioCapturer_GetSampleForma-101udioCapturer_GetEncodingp-0101udioCapturer_GetCapturerInfo-01udioCapturer_GetFrameSizeIn"4101udioCapturer_GetTimestamp-01udioCapturer_GetFramesRead-11udioRenderer_GetSpeed-11udioRenderer_SetSpeed-21udioRenderer_SetVolum-121udioRenderer_SetVolumeWithRamp-21udioRenderer_GetVolum-121udioRenderer_SetMar621udioRenderer_CancelMar.21udioRenderer_GetUnderflowCou,"121udioCapturer_GetOverflowCou,"121)udioStreamBuilder_SetRendererInterruptMod-121 udioManager_GetAudioRoutingManag
.121udioRoutingManager_GetDevices-21udioRoutingManager_Register	@121udioRoutingManager_Unregister	@121!udioRoutingManager_ReleaseDevices-6.0.017udioRoutingManager_RegisterPreferredOutputDevicesChange"56.0.019udioRoutingManager_UnregisterPreferredOutputDevicesChange"56.0.016udioRoutingManager_RegisterPreferredInputDevicesChange"56.0.018udioRoutingManager_UnregisterPreferredInputDevicesChange"4121!udioDeviceDescriptor_GetDeviceRol-121udioDeviceDescriptorf-:121udioDeviceDescriptor,8121udioDeviceDescriptor	-:121%udioDeviceDescriptor_GetDeviceAddress-21)udioDeviceDescriptor_GetDeviceSampleRates-21+udioDeviceDescriptor_GetDeviceChannelCounts-21(udioDeviceDescriptor_GetDeviceDisplayNam-121+udioDeviceDescriptor_GetDeviceEncodingTypes-21udioRenderer_GetEffectMod-121udioRenderer_SetEffectMod-121udioRenderer_GetChannelLayou-121!udioStreamBuilder_SetChannelLayou-121*udioStreamBuilder_SetWriteDataWithMetadata"4121$udioStreamBuilder_SetRendererPrivacy-21udioRenderer_GetRendererPrivacy-2&udioStreamBuilder_SetRendererWriteData"412*udioRenderer_SetSilentModeAndMixWithOthers-2*udioRenderer_GetSilentModeAndMixWithOthers-2 udioManager_GetAudioSessionManag
.12$udioSessionManager_ActivateAudioSess/12&udioSessionManager_DeactivateAudioSess/12*udioSessionManager_IsAudioSessionActivated-2+udioSessionManager_RegisterSessionDeactivat"612-udioSessionManager_UnregisterSessionDeactivat"70udioSessionManager_SetScen.0udioSessionManager_RegisterStatq	<0!udioSessionManager_UnregisterStatq	<0udioSessionManager_SetDefault820udioSessionManager_GetDefault820!udioSessionManager_ReleaseDevices-0"udioSessionManager_RegisterCurrent	G0$udioSessionManager_UnregisterCurrent	G1&udioSessionManager_GetAvailableDevices-11udioSessionManager_RegisterAvailableDevicesChange"513udioSessionManager_UnregisterAvailableDevicesChange"51(udioSessionManager_SelectMediaInputDevic.1-udioSessionManager_GetSelectedMediaInputDevic.1@udioSessionManager_SetBluetoothAndNearlinkPreferredRecordCategor.1@udioSessionManager_GetBluetoothAndNearlinkPreferredRecordCategor.1$udioSessionManager_RegisterCurrentIn	D1&udioSessionManager_UnregisterCurrentIn	D1udioSessionManager_ReleaseDevicAP	8udioSessionManager_EnableMuteSuggestionWhenMixWithOthers-21GetAudioManag
.121GetAudioScen-121&udioRoutingManager_GetAvailableDevices-21udioRoutingManager_GetPreferred921)udioRoutingManager_GetPreferredInputDevic-12udioRenderer_SetDefaultR/udioRoutingManager_IsMicBlockDetectionSupportedF$udioRoutingManager_SetMicBlockStatus"4151"udioRenderer_GetAudioTimestampInfo-91udioStreamBuilder_SetVolumeMod-191udioManager_GetAudioStreamManag
.191)udioStreamManager_GetDirectPlaybackSuppor.01&udioStreamBuilder_SetRendererInterrupt"501udioStreamBuilder_SetRender&<01%udioStreamBuilder_SetCapturerReadData"501udioStreamBuilder_SetCapturer	A01&udioStreamBuilder_SetCapturerInterrupt"501udioStreamBuilder_SetCaptur&<011udioStreamManager_IsAcousticEchoCancelerSupported-014udioStreamBuilder_SetCapturerWillMuteWhenInterrupted-01udioManager_RegisterAudioScenq	<01udioManager_UnregisterAudioScenq	<01udioManager_GetAudioVolumeManag
/01$udioVolumeManager_GetMaxVolumeByUsag.01$udioVolumeManager_GetMinVolumeByUsag.01!udioVolumeManager_GetVolumeByUsag.01udioVolumeManager_IsMuteByUsag.01%udioVolumeManager_RegisterStreamVolumq	<01'udioVolumeManager_UnregisterStreamVolumq	<01udioVolumeManager_GetRingerMod.01#udioVolumeManager_RegisterRingerModq	<01%udioVolumeManager_UnregisterRingerModq	<01udioRenderer_GetFastStatus-01udioCapturer_GetFastStatus-01)udioStreamManager_IsFastPlaybackSupported-01*udioStreamManager_IsFastRecordingSupported-01-udioStreamBuilder_SetRendererFastStatusChange"501-udioStreamBuilder_SetCapturerFastStatusChange"501udioRenderer_SetLoudnessGain-01udioRenderer_GetLoudnessGain-01!udioManager_GetAudioResourceManag
/01#udioResourceManager_CreateWorkgroup-01$udioResourceManager_ReleaseWorkgroup-01udioWorkgroup_AddCurrentThread-01udioWorkgroup_RemoveThread-01udioWorkgroup_Star.01udioWorkgroup_Stop-016udioStreamBuilder_SetRendererWriteDataCallbackAdvanced-11CudioStreamManager_IsIntelligentNoiseReductionEnabledForCurrentDevic+&udioSessionManager_IsOtherMediaPlayingFudioRenderer_GetLatencG'udioCapturer_RequestPlaybackCaptureStarG'udioStreamBuilder_SetPlaybackCaptureMod.41.udioRenderer_SetIndependentAudioSessionStrateg.41.udioCapturer_SetIndependentAudioSessionStrateg.4udioSessionManager_SetBehavio
.4#udioSessionManager_SetCaptureMuteHi/4udioCapturer_SetMuteHi/6.0.011udioStreamManager_IsMultichannelPlaybackSupported-6.0.01+udioStreamManager_IsDirectPlaybackSupported-6.0.01,udioStreamManager_IsOffloadPlaybackSupported-6.0.01&udioManager_GetAudioDeviceEnhanceManag
/6.0.013udioDeviceEnhanceManager_IsEnhancedRoutingSupported-6.0.01udioDeviceEnhanceManager_Select826.0.01)udioDeviceEnhanceManager_SelectInputDevic.6.0.019udioDeviceEnhanceManager_SelectOutputDeviceForAudioRender
/6.0.018udioDeviceEnhanceManager_SelectInputDeviceForAudioCaptur
/6.0.012udioStreamBuilder_SetCapturerLoopbackEffectEnabled-6.0.01"udioManager_GetAudioDebuggingManag
/6.0.01!udioDebuggingManager_PrintAppInfo-6.0.01&udioDebuggingManager_PrintRendererInfo-6.0.01&udioDebuggingManager_PrintCapturerInfo-6.0.01&udioDebuggingManager_PrintLoopbackInfo-6.0.01%udioDebuggingManager_PrintSessionInfo-6.0.01-udioDebuggingManager_PrintSuiteInfo"
    }
]
WHx6LG|&
1sr D fxY[sH.\&{Isq.ELۺMwKSE	m$5*? Uz'?wӭn4#(ϲZd6c8Efk"AfkoKpz$6Zr.\E-Ө7jm'7j=9Afn `7@.=c+AȦ! g 7"D2$b"p~\n4؈-<Nun[U(KnvDn!iХhgi`+\+>BZcZ̝q bI_&/hP[c-zZ"sMos47ɠ|uΖA gs0?g6}wSukJDy	>lDsG;u'[|*a~m3p?z.xu,ιHCQw^	I6ӂo-04 3s*?Qs;U[K8P1^낶hg%89E8IcEB8出K,WEc!ewۣ6&6/<NlEfȃy&1ǧq@a3A1rlLcS81%fНS`&&/Rv+&jS!z覢Şpc^7&N:RBy
%ҲǊ%r&O}_r?.UR=TCq'ČI[	YHgA~(u|,D,"m A(13sPL;8N
@: YmdAݹ	x<p磚0B[<AȺh(t
[ ݲ"P״H.^&8@Pg%PvII yi`ޑt1<2 Y$Dmb=l]
Yri81}uƈJeNUh%vMyS@ȑ"s]1ީe,8Z~[{*p!kPgJʛ>7i-Xi/x[=*Zo@VT &:~Tw5`y`$Mҗ*tύU!Y< f\.Uc.]< 	QN 6xMa*GӋRcWŷDs*Q4HŪkQ0aK$R3X|a2sc>WTl(˺RAv`P :2明Xb..%рaTƸ~.ptj/S]XRF%%7J7D;
;t s#V{+~<MFݪOs^6߫}MHw*ڃ|5krQI'#r\YkbR&,w5 g5OkfFZ{'E J2 c1uz^3wf9X;ZKyr[LNzGass+;]ŖRGvzgYbB#\XcrNKz^RY| |v_s}yݩW| dޅ[[v~zz26LHpS_	oV\=CqDhqԣ̓ӣkc`t~;)zWdw.gS,ҩO_
U<O̓P<nY;LOkt{?N:6pzQ6OO?mYĸ۪EקKj%~n	 峙(9ȝ4H;Q^'x{dx-mOaMj|4#rS'/{G:SMzt~`fNFJ4p{ii2<:"t0^[E+rbթ`vjPt$4<v*P_0*`,^_!dͲ^-~kّf,FiDO|jgQ2B69аzKnNpW}c_˗Έ}6[OAjl[17Z|*>Z&Jy,0L6jP,@bCI9WsSf?qmix6,n\\ &nxkZo	E-U'N ajN`19?P&4Pƌ c_xVzt)O>dg+(٧U&U9T2$	q%z9&_UM7V á%mMxVzt,+ɳ1(dxVzt+aҢԼԲT׼Ĥs$+ |xVzt䏆N$7g%&Nc%ɣ \\ u$kxTtz+^Ǽ"%.  `|Vx;QztʓmЫ e[ x;^ztC{\XiL>9C!73W, oWx[8tAL˽%&7M.`
CbM~Μ [Smx[8tb (%x[8{&Ta>X&8qe&O;9G$.쒚ZꜘZoݜ mx;4Tb +Ix7qdLOV±; 		'x;4q<NLFƓ2NqdwI-LN-|U,*쒚ZꜘZmݜ9Lғ'1{O|I
(;4?LhFcUabļ̔܂vޖYq׼ĤTL0Wn`aq+ə.6%HNM:4/:5371=UKjb ^tNlx;4NLFƓ2NqdwI-LN-|U,*쒚ZꜘZmݜ9Lғ'1{O|I
(;4?LhFcUabļ̔܂vޖY׼ĤTyJ\
@P ]?H!x;6,|&Uw PLfx[1+{JiU&#'k2yL>hh8QFailC&YTJײԼTI9Ē䌐|Ԋļ"%.  &TxVR@`
ZGQKi*آ>9LhnɎa$>2>%	~6	&iis͹wnw{fSJ	s{\a?Id .6؃	5]@U=e;l)&9^9I"wMB]{U&x}ADW9%h}(j%$&|,U"J%,糣aO4W/P0p(CtYG]cQ7P{ZEU
/%(%hE$_Os:nd^Fkf>XxXYr
u>HJ
 #nJ+#43SBll,q|U)Lihs|/b?ÎVnR;Mڇ`u&!6Fvvm~>}&zե[QX00*/65>Ǥc|¬c=[aXi2$֐hjCLDSMeHɐ(!Q6CDMmH4VбzrV^xr>ËjӃJȆeq{7rRѭH͞j]E$G$MMI2=H"LǇׁ@cuHw!Fq-a!Q3fv}1-0=9FȯﭒzŐqԱ%*'l?7tfrWM9GA&&Ghz2,~f$]Vtx[11zDC+WWxϼ̒Ĝ̪TԊDRny`	Լ'_0:"@m(2D,Y\ZX⛚_TuON,IEIM,ƐTJ8'%$d)q) A-W, ]Bj#x[1;n>W, nn9x[7vsɮzWb6B5jSx[4zb]&X ix* heK!FRbo"'?"H/gl##x[*zKn?Mb$29_I}R
7;p Enex6mC?	-\ %I,Oxx=""pq'%L(;d{.^t!y^vP:0ebϵ0r`Ua*AzS
C]L1QϼTײԼBi]$ِTY&#'k2yL0(L> ⑟{$+_Z	6MV% $9#$/#1/%'u.dFEހ̼Ԣ̤Ɍ qC&EnxpI%LGAy\Ңxԉ!.%E AdőeSK2+Rs|*T8%gL($f-RȲn99%PE@:#Yĥ \  jx[Q1zDC&J9).A%Eyn9)Ey驓t'J TW+PZCBQpj[fN*HapIb	UHqdE=e:J1$,C].Ո8ԹHN)Hzù$?1'3XKjb ;Tx[Qx>&rifP>9fF`3(;9vӹPw8̞`) y(j&x fCW, Z;x'vCDF't'ȳL^' lq8x{ fKn?Mb$29_I}" tx;F{Obi^rF@bQbnjIjpqN>(?-PEIjq	nUdkV1̔Ҝ:X N6!Stx;qHsdnv5&[	d(q) A-W, &x;Sk}6>yE%EJ\
@P9 ^a[\*	 \nfEx۩Sk/El&[X" 
'jx}MK0p(=NmǠAыǹ(؋E$mj0KJ<K>7'o})O/}E9S|=|Ѷǒaf4$p1t%	t(Ō4b/>Vt*|*i;~g#B{u<Y.elfP⼓OpdZֶLV?XEz*F0#ABiBw먡P'0gY%zծbU"Xk0-!<1tZ-hw]drHa[l62S =7Rk'x9sfX. k>xym23W, kx[ĳgC85,Ōwxɸ%'&夺'e)q) A-W, u'#x[k2ća%)%%E%EE%!j䰩	N-qs	/-JF(TĦ-$9&<ِIZǜ\ɂ Rؔ&a4QŦƿ$ (1'ry'f5+T#d.03+PuSeHBF&##T)`iYyɩ999H:ԱpO-	2]R2J2dqhp.-.ϝILGMMLT%.  Ãpxs'T'?TVQ,vL.,KOMrKKu-K-J/JMSR ZX. J-xZpPjs~^^{jcJJg^Zăn"PQTҜ Ԓb bԴDJɊR3IJA<2%%E)HkCHԢT@C2s2&{L)JM,ɍ aQ. wK	O:]&@'WTN~*n+A.L,bS%fdtCރ<*	
L';K(i?CN*ɓ9EaġE@_'ҞHZY:(195($UKjb
qx}$'_<uinI̜̒ע0#%.  k1x躡N+ kGxvi"3W, jCx{-/+ 8K"{xeMK@I6~hxP4*mm6I*ߠ8g'o'W'=:3Ñpz&ߧ& 7ZuZa"eтyx8ўbn75Cs$dlqPiy@DmZ:Ӽsf6bN\A%X9.܆ӡUzŜ+f)׀6bܝqtn*:tn6`iieULkɜ*I-ZEZuԀUAP	wHW&HXo@/7dW~.b]fi¤lr=VL.(VńTv A=:nSS /JY_\*݃aeϡ	&+x9q%'*=sS'cfq/mbVLor{jK~iRNdEKW -'?r3JR@\ ',5' (17$ڍIb2| 64bF5Wb׼DE) cLœX}3&LJom]\Ny&ɻ.M{EKjbZYhx;|5`Gj]dP(-;9@ξ kg!YMb7>y-1{PrܩdeŚm	OR1GMQD{MQES,'KbB!lm&X qNjx;<_gW, 5-j'x;VmC0W, =x;sC5,6e
&٬t+ 	oUx|w,LFƓ/ZdU$:g$楧LNa22U9?$$~b9d)&3.&Lu0m1Ğ1`Ű8Ańab%AEɩ1`p8aB/\χdO~,Py$bT%.  s~/xjlF߈q CLxgldAqɥbP10+_)ne	KXCYVP	(+N%e,1Uot),9%- "_x{vO}C0䃌LF?Mg	J-/-JNu,RR ZX isxsC5#LjB%E%9iI9%X2'og,<)	 Wl=xŹAild& b)QxsCFFX'2@YLP?&(zleų8Y jNxδ!+ bx:A`E&	0ҊԢxĒu!BPԒĒ<$?T1%%(19!VXTiZxQfIjpbnAUp=Q>KjqIQ~%X$iSiZZjrr %Lx6"䋌
%nE%}|7~ 3.x:A%5"(޹(5$5<$#8(y3PjRpe9%!EN.}%aRy<0ɠĔs}fdN֛\$281 'թ4--HKjb  ?xkgζi*lpjojJfwjepeqIjg^ZsbNNRbrd9&ywl*+ *Nxkg=<A$8(95޹(5$5<$#4s:waq70Dx21-(7F!RPR ZX. q,'xkgͥ 58ju`qA⒢J%dPMfBeB"
 Mxti@PjbJpbnANSiZZjD=@a 	8x8}*	vzM0sr ek\xb4/*
 * Copyright (C) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AVCapability
 * @{
 *
 * @brief The AVCapability module provides functions for querying encoding and decoding capabilities.
 *
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 10
 */

/**
 * @file native_avcapability.h
 *
 * @brief Declare the Native API used for querying encoding and decoding capabilities.
 *
 * @kit AVCodecKit
 * @library libnative_media_codecbase.so
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 10
 */

#ifndef NATIVE_AVCAPABILITY_H
#define NATIVE_AVCAPABILITY_H

#include <stdint.h>
#include "native_averrors.h"
#include "native_avformat.h"
#include "native_avcodec_base.h"
#include "native_buffer/buffer_common.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Forward declaration of OH_AVCapability.
 *
 * @since 10
 */
typedef struct OH_AVCapability OH_AVCapability;

/**
 * @brief Range contain min and max value
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 10
 */
typedef struct OH_AVRange {
    int32_t minVal;
    int32_t maxVal;
} OH_AVRange;

/**
 * @brief The codec category
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 10
 */
typedef enum OH_AVCodecCategory {
    HARDWARE = 0,
    SOFTWARE
} OH_AVCodecCategory;

/**
 * @brief The codec type
 *
 * @since 24
 */
typedef enum OH_AVCodecType {
    /**
     * Indicates video encoder.
     * @since 24
     */
    OH_AVCODEC_TYPE_VIDEO_ENCODER = 0,
    /**
     * Indicates video decoder.
     * @since 24
     */
    OH_AVCODEC_TYPE_VIDEO_DECODER = 1,
    /**
     * Indicates audio encoder
     * @since 24
     */
    OH_AVCODEC_TYPE_AUDIO_ENCODER = 2,
    /**
     * Indicates audio decoder
     * @since 24
     */
    OH_AVCODEC_TYPE_AUDIO_DECODER = 3
} OH_AVCodecType;

/**
 * @brief The enum of optional features that can be used in specific codec seenarios.
 *
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @since 12
 */
typedef enum OH_AVCapabilityFeature {
    /** Feature for codec supports temporal scalability. It is only used in video encoder. */
    VIDEO_ENCODER_TEMPORAL_SCALABILITY = 0,
    /** Feature for codec supports long-term reference. It is only used in video encoder. */
    VIDEO_ENCODER_LONG_TERM_REFERENCE = 1,
    /** Feature for codec supports low latency. It is only used in video decoder. */
    VIDEO_LOW_LATENCY = 2,
    /** Feature for codec supports B-frame encoding. It is only used in video encoder.
    * @since 20
    */
    VIDEO_ENCODER_B_FRAME = 7,
    /**
     * @brief Feature for codec supports downsampling preprocessing. It is only used in video encoder.
     *
     * @note This capability can only be enabled for encoders created via the
     * {@link OH_VideoEncoder_CreatePrimaryWithPreproc} or
     * {@link OH_VideoEncoder_CreateSecondaryFromPrimary} interface.
     * @since 26.0.0
     */
    L" = 9,
        /**
     * @brief Feature for codec supports Crop preprocessing. It is only used in video encoder.
     *
     * @note This capability can only be enabled for encoders created via the
     * {@link OH_VideoEncoder_CreatePrimaryWithPreproc} ior
     * {@link OH_VideoEncoder_CreateSecondaryFromPrimary} interface.
     * @since 26.0.0
     */
    M = 10,
} OH_AVCapabilityFeature;

/**
 * @brief Get a system-recommended codec's capability.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param mime Mime type
 * @param isEncoder True for encoder, false for decoder
 * @return Returns a capability instance if an existing codec matches,
 * if the specified mime type doesn't match any existing codec, returns NULL.
 * @since 10
 */
OH_AVCapability *>(const char *mime, bool isEncoder);

/**
 * @brief Get a codec's capability within the specified category. By specifying the category,
 * the matched codec is limited to either hardware codecs or software codecs.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param mime Mime type
 * @param isEncoder True for encoder, false for decoder
 * @param category The codec category
 * @return Returns a capability instance if an existing codec matches,
 * if the specified mime type doesn't match any ex=isting codec, returns NULL
 * @since 10
 */
OH_AVCapability *>>
(const char *mime, bool isEncoder, OH_AVCodecCategory category);

/**
 * @brief Obtains a list of codec capabilities for a specified codec type.
 *
 * This function retrieves all matching codec capabilities based on the provided codec type.
 *
 * @param codecType The type of codec to filter by, refer to {@link OH_AVCodecType}.
 * @param count Output parameter. A pointer to a uint32_t variable that will store
 *              the number of matched codec capabilities found.
 * @return Returns a pointer to an array of {@link OH_AVCapability} instances if matches are found;
 *         returns NULL if no matching codecs are found or if an error occurs.
 * @note The memory for the codec capability list is managed internally.
 *       Developers MUST NOT manuaElly allocate or free this memory.
 * @since 24
 */
OH_AVCapability **>List(OH_AVCodecType codecType, uint32_t *count);

/**
 * @brief Check if the capability instance is describing a hardware codec.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @return Returns true if the capability instance is describing a hardware codec,
 * false if the capability instance is describing a software codec
 * @since 10
 */
bool OH_AVCapability_IsHardware(OH_AVCapability *capability);

/**
 * @brief Check if the capability instance is describing a secure codec.
 *
 * @param capability Codec capability pointer
 * @return Returns true if the capability instance is describing a secure codec,
 * false if the capability instance is describing a non-secure codec
 * @since 24
 */
bool OH_AVCapability_IsSecure(OH_AVCapability *capability);

/**
 * @brief Get the codec name.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @return Returns codec name string
 * @since 10
 */
const char *OBDName(OH_AVCapability *capability);

/**
 * @brief Get the codec mime type.
 *
 * @param capability Codec capability pointer
 * D@return Returns codec mime type string
 * @since 24
 */
const char *ADMimeType(OH_AVCapability *capability);

/**
 * @brief Check if the mime type of the codec of the capability matches the specified mime type.
 *
 * @param capability Codec capability pointer
 * @param mimeType target mime type string to check
 * @return Returns true if the mime type matches, false otherwise
 * @since 24
 */
bool OH_AVCapability_CheckMimeType(OH_AVCapability *capability, const char *mimeType);

/**
 * @brief Get the supported max instance number of the codec.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @return Returns the max supported codec instance number
 * @since 10
 */
int32_t ADA(OH_AVCapability *capability);

/**
 * @brief Get the encoder's supported bitrate range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Encoder capability pointer. If a decoder capability pointer is given,
 * undefined behavior occurs
 * @param bitrateRange Output parameter. Encoder bitrate range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability Jis invalid, or the bitrateRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADA(OH_AVCapability *capability, OH_AVRange *bitrateRange);

/**
 * @brief Check if the encoder supports the specific bitrate mode.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Encoder capability pointer. If a decoder capability pointer is given,
 * undefined behavior occurs
 * @param bitrateMode Bitrate mode
 * @return Returns true if the bitrate modQe is supported, false if the bitrate mode is not supported
 * @since 10
 */
bool A-(OH_AVCapability *capability, OH_BitrateMode bitrateMode);

/**
 * @brief Get the encoder's supported quality range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Encoder capability pointer. If a decoder capability pointer is given,
 * undefined behavior occurs
 * @param qualityRange Output parameter. Encoder quality range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_IfNVALID_VAL}, the capability is invalid, or the qualityRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADA^B(OH_AVCapability *capability, OH_AVRange *qualityRange);

/**
 * @brief Get the encoder's supported encoder complexity range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Encoder capability pointer. If a decoder capability pointer is given,
 * undefined behavior occurs
 * @param complexityRange Output parameter. Encoder complexity range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, or the complexityRange is nullptr.
 * @since 10
 */
OH_AVErrCode OH_AVCaHDAB(OH_AVCapability *capability, OH_AVRange *complexityRange);

/**
 * @brief Get the audio codec's supported sample rates.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Audio codec capability pointer. If a video codec capability pointer is given,
 * undefined behavior occurs
 * @param sampleRates Output parameter. A pointer to the sample rates array
 * @param sampleRateNum Output parameter. The element number of the sample rates array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the sampleRates is nullptr, or sampleRateNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * [{@link AV_ERR_NO_MEMORY}, internal use memory malloc failed.
 * @since 10
 */
OH_AVErrCode ADC(OH_AVCapability *capability, const int32_t **sampleRates,
                                                          uint32_t *sampleRateNum);

/**
 * @brief Get the audio codec's supported sample rate ranges.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Audio codec capability pointer. Do not give a video codec capability pointer
 * @param sampleRateRanges Output parameter. A pointer to the sample rate ranges array
 * @param rangesNum Output parameter. The element number of the sample rate ranges array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the sampleRateRanges is nullptr, or rangesNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * {@link AV_ERR_NO_MEMORY}, internal use memory malloc f%ailed.
 * @since 20
 */
OH_AVErrCode ADCC(OH_AVCapability *capability,
                                                               OH_AVRange **sampleRateRanges, uint32_t *rangesNum);

/**
 * @brief Get the audio codec's supported audio channel count range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Audio codec capability pointer. If a video codec capability pointer is given,
 * undefined behavior occurs
 * @param channelCountRange Output parameter. Audio channel count range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_dVAL}, the capability is invalid, or the channelCountRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADC(OH_AVCapability *capability, OH_AVRange *channelCountRange);

/**
 * @brief Get the video codec's supported video width alignment.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param widthAlignment Output parameter. Video width alignment
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, or the widthAlignment is nullptr.
 * @since 10
 */
OH_AVErrCode AD&(OH_AVCapability *capability, int32_t *widthAlignment);

/**
 * @brief Get the video codec's supported video height alignment.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param heightAlignment Output parameter. Video height alignment
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, or the heightAlignment is nullptr.
 * @since 10
 */
OH_AVErrCode ADHeightAlignment(OH_AVCapability *capability, int32_t *heightAlignment);

/**
 * @brief Get the video codec's supported video width range for a specific height.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param height Vertical pixel number of the video
 * @param widthRange Output parameter. Video width range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability iSs invalid, the height is not within the supported range
 * obtained through {@link ADJHeightRange}, or the widthRange is nullptr.
 * @since 10
 */
OH_AVErrCode AD/E(OH_AVCapability *capability, int32_t height,
                                                         OH_AVRange *widthRange);

/**
 * @brief Get the video codec's supported video height range for a specific width.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param width Horizontal pixel number of the video
 * @param heightRange Output parameter. Video height range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the width is not within the supported range
 * obtained through {@link AD/E@}, or the heightRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADE(OH_AVCapability *capability, int32_t width,
                                                         OH_AVRange *heightRange);

/**
 * @brief Get the video codec's supported video width range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param widthRange Output parameter. Video width range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, or the 5widthRange is nullptr.
 * @since 10
 */
OH_AVErrCode AD/E(OH_AVCapability *capability, OH_AVRange *widthRange);

/**
 * @brief Get the video codec's supported video height range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param heightRange Output parameter. Video height range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@linok AV_ERR_INVALID_VAL}, the capability is invalid, or the heightRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADHeightRange(OH_AVCapability *capability, OH_AVRange *heightRange);

/**
 * @brief Check if the video codec supports the specific video size.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param width Horizontal pixel number of the video
 * @param height Vertical pixel number of the video
 * @return Returns true if the video size is supported, false if the video siz)e is not supported
 * @since 10
 */
bool F$(OH_AVCapability *capability, int32_t width, int32_t height);

/**
 * @brief Get the video codec's supported video frame rate range.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param frameRateRange Output parameter. Video frame rate range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, or the frameRateRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADG(OH_AVCapability *capability, OH_AVRange *frameRateRange);

/**
 * @brief Get the Video codec's supported video frame rate range for a specified video size.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param width Horizontal pixel number of the video
 * @param height Vertical pixel number of the video
 * @param frameRateRange Output parameter. Frame rate range
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the combination of width and height is
 * not supported, or the: frameRateRange is nullptr.
 * @since 10
 */
OH_AVErrCode ADG(OH_AVCapability *capability, int32_t width, int32_t height,
                                                           OH_AVRange *frameRateRange);

/**
 * @brief Check if the video codec supports the specific combination of video size and frame rate.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param width Horizontal pixel number of the video
 * @param height Vertical pixel number of the video
 * @param frameRate Frame number per second
 * @return Returns true if the combination of vid[eo size and frame rate is supported,
 * false if it is not supported
 * @since 10
 */
bool G1(OH_AVCapability *capability, int32_t width, int32_t height,
                                                       int32_t frameRate);

/**
 * @brief Get the video codec's supported video pixel format.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Video codec capability pointer. If an audio codec capability pointer is given,
 * undefined behavior occurs
 * @param pixelFormats Output parameter. A pointer to the video pixel format array
 * @param pixelFormatNum Output parameter. The element number of the pixel format array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the pixelFormats is nullptr,
 * or the pixelFormatNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * {@link AV_ERR_NO_MEMORY}, i@nternal use memory malloc failed.
 * @since 10
 */
OH_AVErrCode AD}H(OH_AVCapability *capability, const int32_t **pixelFormats,
                                                           uint32_t *pixelFormatNum);

/**
 * @brief Get the native buffer formats supported by the video codec.
 *
 * This function provides information about the native buffer formats that the video codec can handle.
 *
 * @param capability A pointer to a valid video codec capability instance.
 * @param nativeBufferFormats Output parameter. A pointer to the native buffer format array,
 * refer to {@link OH_NativeBuffer_Format}
 * @param nativeBufferFormatNum Output parameter. The element number of the native buffer format array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the capability is an audio codec capability pointer,
 * the nativeBufferFormats is nullptr, or the nativeBufferFormatNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * {]@link AV_ERR_NO_MEMORY}, internal use memory malloc failed.
 *
 * @since 22
 */
OH_AVErrCode AD}H	H(OH_AVCapability *capability,
                                                                  const OH_NativeBuffer_Format **nativeBufferFormats,
                                                                  uint32_t *nativeBufferFormatNum);

/**
 * @brief Get the codec's supported profiles.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @param profiles Output parameter. A pointer to the profile array
 * @param profileNum Output parameter. The element number of the profile array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, the capability is invalid, the profiles is nullptr, or the profileNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * {@link AV_ERR_NO_MEMORY}, internal use memory mal*loc failed.
 * @since 10
 */
OH_AVErrCode AD]I(OH_AVCapability *capability, const int32_t **profiles,
                                                  uint32_t *profileNum);

/**
 * @brief Get codec's supported levels for a specific profile.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @param profile Codec profile
 * @param levels Output parameter. A pointer to the level array
 * @param levelNum Output parameter. The element number of the level array
 * @return Returns AV_ERR_OK if the execution is successful,
 * otherwise returns a specific error code, refer to {@link OH_AVErrCode}
 * {@link AV_ERR_INVALID_VAL}, lthe capability is invalid, the profile is not within the supported profile array
 * obtained through {@link AD]I}, the levels is nullptr, or the levelNum is nullptr.
 * {@link AV_ERR_UNKNOWN}, unknown error.
 * {@link AV_ERR_NO_MEMORY}, in?ternal use memory malloc failed.
 * @since 10
 */
OH_AVErrCode AD]I	I(OH_AVCapability *capability, int32_t profile,
                                                          const int32_t **levels, uint32_t *levelNum);

/**
 * @brief Check if the codec supports the specific combination of the profile and level.
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @param profile Codec profile
 * @param level Codec level
 * @return Returns true if the combination of profile and level is supported,
 * false if it is not supported
 * @since 10
 */
bool J+(OH_AVCapability *capability, int32_t profile, int32_t level);

/**
 * @brief Check if the codec supports the specified feature.
 *
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @param feature Feature enum, refer to {@link OH_AVCapabilityFeature} for details
 * @return Returns true if the feature is supported, false if it( is not supported
 * @since 12
 */
bool J"(OH_AVCapability *capability, OH_AVCapabilityFeature feature);

/**
 * @brief Get the properties of the specified feature. It should be noted that the life cycle of the OH_AVFormat
 * instance pointed to by the return value * needs to be manually released by the caller.
 *
 * @syscap SystemCapability.Multimedia.Media.CodecBase
 * @param capability Codec capability pointer
 * @param feature Feature enum, refer to {@link OH_AVCapabilityFeature} for details
 * @return Returns a pointer to an OH_AVFormat in%stance
 * @since 12
 */
OH_AVFormat *ADFeatureProperties(OH_AVCapability *capability, OH_AVCapabilityFeature feature);

#ifdef __cplusplus
}
#endif
#endif // NATIVE_AVCAPABILITY_H
/** @} */
=#z x>q4lU\]BB\=\\C&+xln w>x>qv
&8M>dg5'Wع &nnx>"
 ,`F%JxuJ@[%E񦥨&E"ғ6n;<
Rأg73[1Fߙ7c{q\|GPf@r+%B5KO<<ƺ5`]rap_^J hAgFhc" j.UٚA0 D&x$ R:qy@cPPf9;oZ}9d OFveؐԕB㰻t@чO_H6)rs=ⲕH-gxS>HkE) xxd
kV#3=Ɏ&uyx=}|C&+xEC]<C\\]}#CQ)q	rqEQ3/;6	` WWxgǀ pO? Wg%0L~g-4yɯlmC&٘7q{&Mvk`;yT7375 (74HsFjr6Bq-`ҕ
rw/7Zuanr1(vgMX Da9t_Ix G_xP+q) A-W, azKxn@8TC4 AmZREMQ[Bƞkx27.<3/:[WN\n)]]`ᑭS܇s04,# :@
tJS1$@I&}8LJmD-[W48@}s<,ܔ1E&=%9ߞ	@WQ]{k` ( B`M lt9b@tm"bcSP^i##_Ӆƍr:p97.w;5XQHúm`k |$uu:9}#"ߝL*khhRGɗ2rh78H,dAB{Х}bz8!XbE/ T!}3P$Zbw^vbrvqN--qh]io{&aVh|Sv"md9E}r>z9K>Lz\>"VbKCwEP_sJkDFė,bZ@=dF&Cٓ"LkbU䧹V[辶#fs@(ۨ=POsP cypE2C^;W<W<<W<yK@k9~]f/j8&ˍh&ϝmPu-GhNҴ=-K؄Xq6ح5dvހLCx`fIh/ >
}iPPGsgqk;U~gc˄/{-n`9m϶`Uo[̿+xǸqd-W5dB:x8qk95'/d<SDGu 

x[ʻ=K'_`(3#^y>5٘QLik0ەIj"&Eg&=0l73C,`ELYfV-0}bDM ϓ9)sx[}a94qx;2ql6	  L;x7֓lMpR|HkN7 ћ'8 3N/x;4q'Ot `G ?YK EEx[0aKjqIQ~cNd}e2XKS*'ɷ0N^/'ꙗT陗Zĥ \ xs5'p`c'-)!M7;qi	QabˉKgLΟ3/'+>>''=Io?~:Aǵb֦̓ܔ}swJmi;$l4 U;8B*
a$s؃;Qx@/KI6I4<lݔ=	q9	c1aGSgO=y9%<iYHY{´Vf;WqV[/8\ˋ88i47',ڟE;e6؋B||,6l\QqGGc:IqdsS)'T*6 %j3oIB3ymҸ y`KB;1Ntz|Q_Ɛ_Ee>'Q@;T܍IL@ i.$Qv-

		
Z5isvu57.h@`yζ))))E*[SƔsvOI'b07p
ROEڳqbp>LV 0Brɲ)7M&Ϫ9AQ@EX1ɴ|Lв͠Sȹ[b@.Ԭ04
3qI޵5e8n3'eaG(w6jlljGo8?M3=Ja'ZQ1bWKXQd#2^$Dc2LɮJUp4k<ÃBP%cxzY"9?
BωQSbޅ'1> XN݋nQ./_v(V]9 #֖gYqFSvޖ'}?'j&9R;
dN󐚹W-֌@>E1dǶla'<[>[pX~y6$!?[[вEuov}EgW+h!ZCy(fT|ܽIp U(vhz׀'414-4%daݟ@ H~ݮ钑X<p(h'Ba.I>UDa[#1٢s}Cw^<^".`1-!S.;&0}ZG5JQޔNVy!}Nfy $&z>yZH/^(}o_أxċNWK=4:2" 6wTX۴S(;;./~4=MFX5[AUAr0^[6!\*V)~Ecɶ`'uצ}1d,f3~el4Bcl5%</(oOEY|g1)G(L/6ʭ7롉L1yýgWi/?q
R_xȸqd-W5?ov l	~x;θqf=ɅRxSKKK2s2+''ylu᛼Cz=Iͦ2P2HrԧfgN.џ|AXf\*<\H:zLV̫C -$zxZr.*dRR)\HqiܵBG?T\,ȝxvsyA>\ &`~`A|_n4?NSZj$S|:"n0_/i"FoԦ-WAh.!\?<tB*&=ICH|%úbZW٧$J3uU7:#%|zz4I5	=rg*Kyn'_jW\аbk:иfi/Y(R6fYXg40=&i>̴c1'>Ű-2$?$`)g7^w\#+f
ꃧ*nX:ROcpmFQ4mTzV50OEwfK~XNu'![1Iesj'iϬ!!Jg{C#E) j,^dL%b#𜸅3ye
}K&I$lw)7|,]=I嫵VrtfuCcm7$FmKIK&?Kiy΀k-\;gq`u ^Os+xa蠅\jZl0bYR(KcBP!xPum Dx$[6E1ʴ?n-QH$:NO~!a!6͞{:bcmXƛV`sy` z	[VyF߾GS\\II +PŬuESx'2I$i @<W:i]Z7aD[QX^Y#P3;qE*T/i*3FsJg3yvy{5)xNfQvkLI"ێ瀕`>!q
aʔpx eccBegvTKYUH*ՎF4dUf͒ځ"IَMn5mbvSk# In'$b?oW0*4?7V땺&(D˂u0
E\S\Ǵ*@Y7)$5/3j<0a'lGlSQ5Ns<M*J<D1$"u[oA}ٍ0xl/gTD;JIȜ2]'!;|Y46	U3hNX SZ AЋ0B5m6:Tj$&&LG{a0-\AD8lƂIT	)4f-%D@NL}2Nn;4n&VeTnvJ5Ef9iﱹn칲憦jh;3(lr
()#0'6HE'hV)z,F=g	4^Q+Gδ.3b0D=٠3d
VgXs39n96^Jy LIm\?	=z1[b)7\JU1Z!P5S'jîX$X<[I!XTQ
jL^>6di`7}/'5 7T91KTf	ʠО)<pdD<oA"]9
75P[ZEi>?nǿޏr&-4j/l-xUO!6N7yiLҎu*Zz"7U*E~VJ+*IsUS=-/n\|jA0
j`ʵ%zv?hv*\^&D`q<QN @hK8cd ō:PvtZX,`݈݈p-<LsdSO[>	zo0Vt\3qw_^/MoCӓ&3SAQ*pShO@)NF#[cG|\1/PDÓ@-, xH##RKޘx-,SBD܄qyHwI|Z`int.OS	nII{(:9kVRnfe;o0byL29b Tà.E^y.wcai}\2EzC2Vf9?!< a(u[zS:A3lZT`>~9NAWd˔oF0CrLx"iqmAr_aHJ-H!Zi)UW
ߔ(&±+Tt 团EIiVo5g`T[E~y~Ail7::-elbN22m"/-58̧K'f6̇$׷S9B{-uwKU7WN:ňn,ܵ~DEOr笸̗?6pα0ܢ0/%G\֌Pw3}b╈;ԥ:RaW咫P,y6K-;$d%:෰4~R[nX
5N:'֛׫˸gѢ++ b}6.be!.<16J
vNsfwST5KQ&?}\%n=uQ>=j4\4Ox\6oUAF)}uψ:q{Lz}aHhXZDMn|byG	MqZ\͵-0ֳ+xZr.*dRR)\HqiܵBJR!vEl ,u%O7H^ U~\k^"A3݃iT#Аt(^xQL3~46Sآ
{V
<εO0(iݣ͟4TXgQB>CL*DtF'qOb{,xMBJF^UDmrG$ 4X4.rYK}6TMoV,i/}4ffZֱ`DbX_Ov~03/;.NyEs:#kv[GBJba(J淍!3J^\oUDOXqn䇕msD=	GߊI(S;Is}f=4iQ:ۓưz ,8.JQ,fz5 `/Ǆ-kG'(S@]2hLz$&eWgK;`4TZkՐnάvhx#ptҨmgTe#䶲I+BE3`,A78g*c*ΙGX_zs. nZȥ/ƨ!2[Z:f,03H P۽xJL&1	޲aaDO$$xP¦aOgbPrLҸwCx
qq DC/8a^rr}*ψ6WHtJ+)	`%4ؑWq"(M$zsq}pSQۥu[6!Oe0r1ñ3:8HP[%(-2c<t=ú[gWٚgPdeG&t>IC\}ќRQg3$nV5L	gRn]P>F9&Tv&iJUqU'[H*iIJ]KPa,n,)];X$8)۱ɭVz*tr0턐;QGM
Z槔*xR|$ހzYFk*y+P{LR4:&ĳ%|rSUf5-(mj44WӤCDC"bYԗC'b{FETS_$d_#!xy.yşiC<eicmj'i,m)?sХ"@0LP@:jbCiIքh/#1Kr#HmX0*>EW@sbtTT{'cIΗtӥҸ:TX?R+ӺǦ^BdbJJ﷓h*x@È(F 1"<OfҪbs3FWxe'3̿A-<Q`~/mk
rԙT2+3KS9Y:n96^JyyA46ڸ O}1"z,b(SnVbFq^PCjN,B.]Hl!xBዱޣ<6԰2}ldi`7}/'5 7T91KTf	ʠО)<pdD<oA"]9
75P[ZEi>?nǿޏrZ^<iɳ_ZBl,7yiLԵ-U4y"7U*E~V\pOK[*=or _Zm7Z-6ڤ%zv?hv*xX.sM/"jv͆(T  z%2m kF(;apYfnn	8h9h^\KX+:+]3qw_^/Օ{f쫆;v)6}^TD$q7?>Xj9_@OO:ԋ߂!J/g{c⵰hN	1r!F%!jOHP11!?MI{$0%
'Qţ<P2  kZIm;701h #_ȼe1J@5Q炋xg!)K<f8޷%-%{Gf7ynϯDxkDĬۯN7iaS6$]X&<"):ۍa23643DdqmAr_aHJ-H!Z'4딪+oJpxW*:\hQR}['sꙶa&X9VQe_F>/(-F]ǸWKD|mS6]u@ЖYAx̧K'LmTy17HogkLdgأla]1_9YZ]NX8;!7yΊ/|^zAAckp[s0-	^qMÚnfXCqR^gT*tj*+'>KM`ˎ>	;o 9p-l~7ͼoǖV=¡|#gzzu,ZyeDoEߠ5ܥS3FIAiNLnfa%\c^QЃٻLE#EY8捰_*h:eQ<nA5To!	Eaqe.˕k?K.iqx[ϸqBw hx[ϸqk95'/d<S onQx 2X:2sx=<&2ImageSourceInfo_;212ImageSourceInfo_GetWidtha-2ImageSourceInfo_Get32ImageSourceInfo_GetDynamicRang.ImageSourceInfo_GetMime`<012ImageSourceInfo_>312DecodingOptions_;212DecodingOptions_GetPixelForma.2DecodingOptions_SetPixelForma.2DecodingOptions_GetIndexa-2DecodingOptions_SetIndexa-2DecodingOptions_GetRot C/12DecodingOptions_SetRot C/12DecodingOptions_GetDesiredSiz-12DecodingOptions_SetDesiredSiz-12 DecodingOptions_GetDesiredRegiona-2 DecodingOptions_SetDesiredRegiona-2%DecodingOptions_GetDesiredDynamicRang-12%DecodingOptions_SetDesiredDynamicRang-18'DecodingOptions_SetCropAndScaleStrategya-8'DecodingOptions_GetCropAndScaleStrategy-#DecodingOptions_GetDesiredColorSpac.#DecodingOptions_SetDesiredColorSpac-19DecodingOptions_SetCropRegiona-9DecodingOptions_GetCropRegiona-2DecodingOptions_>312ImageSourceNative_CreateFromUria-2ImageSourceNative_CreateFromFI-12 ImageSourceNative_CreateFromData--ImageSourceNative_CreateFromDataWithUserBuffeq.2"ImageSourceNative_CreateFromRawFil-12ImageSourceNative_CreatePixelma
.{+ImageSourceNative_CreatePixelmapUsingAlloca-/12#ImageSourceNative_CreatePixelmapLis.ImageSourceNative_CreatePictur-12!ImageSourceNative_GetDelayTimeLis.2ImageSourceNative_GetImageInfoa-2"ImageSourceNative_GetImageProperty-C&ImageSourceNative_GetImagePropertyShor-B&ImageSourceNative_GetImagePropertyLong-C'ImageSourceNative_GetImagePropertyDoubl.C*ImageSourceNative_GetImagePropertyArraySiz.C(ImageSourceNative_GetImagePropertyString-C*ImageSourceNative_GetImagePropertyIntArray-C-ImageSourceNative_GetImagePropertyDoubleArray-C&ImageSourceNative_GetImagePropertyBloba-9*ImageSourceNative_GetImagePropertyWithNulla-2%ImageSourceNative_ModifyImageProperty-C)ImageSourceNative_ModifyImagePropertyShor-B)ImageSourceNative_ModifyImagePropertyLong-C*ImageSourceNative_ModifyImagePropertyDoubl.C-ImageSourceNative_ModifyImagePropertyIntArray-C0ImageSourceNative_ModifyImagePropertyDoubleArray-C)ImageSourceNative_ModifyImagePropertyBloba-2ImageSourceNative_GetFramq5212ImageSourceNative_>3DecodingOptionsForPicture_;23DecodingOptionsForPicture_GetDesiredAuxiliaryPictur-.3DecodingOptionsForPicture_SetDesiredAuxiliaryPictur-.DecodingOptionsForPicture_>4%ImageSourceNative_GetSupportedFormats-&ImageSourceNative_CreatePictureAtIndexE$ImageSourceNative_CreateImageRawDataE&ImageSourceNative_GetBufferFromRawDataE,ImageSourceNative_GetBitsPerPixelFromRawDataE%ImageSourceNative_DestroyImageRawDataQ0I/DecodingOptionsForPicture_GetNeedsDecodeDfxDataQ0I/DecodingOptionsForPicture_SetNeedsDecodeDfxDataQ0I6DecodingOptionsForPicture_GetDesiredSizeForMainPixelma
- 6DecodingOptionsForPicture_SetDesiredSizeForMainPixelma
- .DecodingOptionsForPicture_GetDesiredPixelForma- .DecodingOptionsForPicture_SetDesiredPixelForma- 2ImageSourceNative_ReadImageMetadataByType"
    }
]i x= N"P	F# Q23zƓsN
]FGx.3ړ﻿/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with License.
 * You may obtain a copy of License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provide definition of C interface for modular object dispatcher late binding mechanism.
 *
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

/**
 * @file modular_object_dispatcher.h
 *
 * @brief Declare common types and interfaces for modular object dispatcher.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H
#define OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H

#include <stdbool.h>
#include "ability_runtime_common.h"
#include "IPCKit/ipc_cparcel.h"

#ifdef __cplAusplus
extern "C" {
#endif

/**
 * @brief Forward declaration of =9TypeDescriptor structure.
 *
 * @since 26.0.0
 */
struct =4TypeDescriptor;

/**
 * @brief Defines a pointer to =7TypeDescriptor.
 *
 * @since 26.0.0
 */
typedef struct =TypeDescriptor* =TypeDescriptorHandle;

 /**
  * @brief Enumerates variant types.
  *
  * @since 26.0.0
  */
typedef enum {
    /** @description Empty value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_EMPTY = 0,
    /** @description Void value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_VOID = 1,
    /** @description Boolean value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_BOOL = 2,
    /** @description 8-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I8 = 3,
    /** @description 16-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I16 = 4,
    /** @description 32-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I32 = 5,
    /** @description 64-bit signed integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_I64 = 6,
    /** @description 8-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U8 = 7,
    /** @description 16-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U16 = 8,
    /** @description 32-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U32 = 9,
    /** @description 64-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_U64 = 10,
    /** @description 32-bit floating point. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_F32 = 11,
    /** @description 64-bit floating point. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_F64 = 12,
    /** @description String (UTF-8). */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_STRING = 13,
    /** @description Array. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_ARRAY = 14,
    /** @description Vector. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_VECTOR = 15,
    /** @description Set. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_SET = 16,
    /** @description Map. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_MAP = 17,
    /** @description Struct. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_STRUCT = 18,
    /** @description Ipc Remote Proxy. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_IPC_REMOTE_PROXY = 19,
    /** @description Ipc Remote Stub. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_IPC_RjEMOTE_STUB = 20,
    /** @description Enum value. */
    OH_ABILITY_RUNTIME_MO_DISPATCHER_VT_ENUM = 21,
} = alueType;

/**
 * @brief Defines the parameter type descriptor for modular object dispatcher.
 *
 * Describes the type of a parameter or return value using a tagged union.
 * For map types, use u.mapType.keyType and u.mapType.pValueType;
 * for array/vector/set types, use u.pElementType;
 * for other custom types, use u.idlType.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityR=* {
    = 6alueType vt;
    union {
        struct {
            = alueType keyType;
            =*) *pValueType;
        } mapType;
        =*2 *pElementType;
        char* idlType;
    } u;
} =*);


/**
 * @brief Forward declaration of =+ structure.
 *
 * @since 26.0.0
 */
struct =&;

/**
 * @brief Defines a pointer to =).
 *
 * @since 26.0.0
 */
typedef struct =* =.Handle;

/**
 * @brief Forward declaration of =:+ structure.
 *
 * @since 26.0.0
 */
struct =:&;

/**
 * @brief Defines a pointer to =:).
 *
 * @since 26.0.0
 */
typedef struct =:* =:.Handle;

/**
 * @brief Forward declaration of =%+ structure.
 *
 * @since 26.0.0
 */
struct =%&;

/**
 * @brief Defines a pointer to =%).
 *
 * @since 26.0.0
 */
typedef struct =%* =%.Handle;

/**
 * @brief Forward declaration of =.Set structure.
 *
 * @since 26.0.0
 */
struct =)Set;

/**
 * @brief Defines a pointer to =,Set.
 *
 * @since 26.0.0
 */
typedef struct =Set* =1SetHandle;

/**
 * @brief Forward declaration of 1E"+ structure.
 *
 * @since 26.0.0
 */
struct 1E"&;

/**
 * @brief Defines a pointer to 1E").
 *
 * @since 26.0.0
 */
typedef struct 1E"* 1E".Handle;

/**
 * @brief Forward declaration of =OI+ structure.
 *
 * @since 26.0.0
 */
struct =OI&;

/**
 * @brief Defines a pointer to =OI).
 *
 * @since 26.0.0
 */
typedef struct =OI* =OIHandle;

/**
 * @brief Defines a variant structure using union + type tag for ABI compatibility.
 *
 * @since 26.0.0
 */
typede;f struct {
    /**
     * @brief Variant type.
     */
    = alueType vt;
    /**
     * @brief Reserved field 1 for future use.
     */
    uint64_t reserved1;
    /**
     * @brief Reserved field 2 for future use.
     */
    uint64_t reserved2;
    /**
     * @brief Reserved field 3 for future use.
     */
    uint64_t reserved3;
    /**
     * @brief Variant value data.
     */
    union {
        /**
         * @brief Empty value.
         */
        void *pvoidVal;
        /**
         * @brief Boolean value.
         */
        bool boolVal;
        /**
         * @brief 8-bit signed integer.
         */
        int8_t i8Val;
        /**
         * @brief 16-bit signed integer.
         */
        int16_t i16Val;
        /**
         * @brief 32-bit signed integer.
         */
        int32_t i32Val;
        /**
         * @brief 64-bit signed integer.
         */
        int64_t i64Val;
        /**
         * @brief 8-bit unsigned integer.
         */
        uint8_t u8Val;
        /**
         * @brief 16-bit unsigned integer.
         */
        uint16_t u16Val;
        /**
         * @brief 32-bit unsigned integer.
         */
        uint32_t u32Val;
        /**
         * @brief 64-bit unsigned integer.
         */
        uint64_t u64Val;
        /**
         * @brief 32-bit floating point.
         */
        float f32Val;
        /**
         * @brief 64-bit floating point.
         */
        double f64Val;
        /**
         * @brief Enum value.
         */
        int32_t enumVal;
        /**
         * @brief String value (UTF-8) pointere.
         */
        char* bstrVal;
        /**
         * @brief Array handle.
         */
        =:SHandle parrayVal;
        /**
         * @brief Vector handle.
         */
        =%QHandle pvectorVal;
        /**
         * @brief Set handle.
         */
        =QSetHandle psetVal;
        /**
         * @brief Map handle.
         */
        1E"QHandle pmapVal;
        /**
         * @brief Struct handle.
         */
        =OIHandle pstructVal;
        /**
         * @brief Ipc remote proxy handle.
         */
        OHIPCRemoteProxy *premoteProxyVal;
        /**
         * @brief Ipc remote stub handle.
         */
        OHIPCRemoteStub *premoteStubVal;
    } u;
} OH_Abil=ariant;

/**
 * @brief Defines a parameter structure for method invocation.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
  4   * @brief Array of argument variants.
     */
    = Yariant* rgvarg;
    /**
     * @brief Number of arguments.
     */
    uint32_t cArgs;
} =InputParams;

/**
 * @brief Clear TypeInfo resources.
 *
 * Recursively release any heap resources held by a TypeInfo struct
 * (idlType strings, child TypeInfo nodes for map/array/vector/set types).
 * After clearing, all pointers are set to NULL but the TypeInfo struct itself is not freed
 * (it is typically stack-allocated by the caller).
 *
 * TypeInfo_Clear must NOT be called on a shallow copy of another TypeInfo.
 * If TypeInfo t2 = t1 is performed, only clear one of them.
 *
 * @param pTypeInfo ICndicates a pointer to TypeInfo to clear.
 * @since 26.0.0
 */
void =*(
    =** pTypeInfo);

/**
 * @brief Clear variant resources.
 *
 * Release any resources held by the variant (strings, container handles, etc.).
 * After clearing, the variant is reset to VT_EMPTY with all fields zeroed.
 *
 * Ownership rules:
 * - When a Variant is passed to a function (e.g. Array_Set, Map_Put), the function
 *   performs a deep copy. The caller retains ownership of the original Variant and
 *   is responsible for freeing its own resources (e.g. free(bstrVal) for strings,
 *   Release for container handles).
 * - When a Variant is returned from a function (e.g. Array_Get, Map_Get, CallMethod),
 *   the function performs a deep copy and the caller owns the returned Variant.
 *   The caller must call Variant_Clear exactly once to release the resources.
 * - Simple types (bool, i32, f64, etc.) do not hold heap resources and do not
 *   require Variant_Clear, though calling it is harmless.
 * - Variant_Clear must NOT be called on a shallow copy of another Variant.
 *   If Variant v2 = v1 is performed, only clear one of them.
 *
 * @param pVariant Indicates a pointer to variant to clear.
 * @since 26.0.0
 */
void OH_Abi=ariant_Clear(
    = ariant* pVariant);

/**
 * @brief Create a modular object dispatcher instance for mainService interface from an IPC remote proxy.
 *
 * @param remoteProxy Indicates IPC remote proxy handle obtained from connectExtension.
 * @param ppMoDispatcher Indicates a pointer to receive modular object dispatcher handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if remoteProxy or ppMoDispatcher is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =+%(
    OHIPCRemoteProxy* remoteProxy, =Handle* ppMoDispatcher);

/**
 * @brief Create a sub-instance dispatcher bound to a mainService dispatcher.
 *
 * The sub-instance shares the mainService dispatcher's metadata but uses its own
 * IPC proxy. When CallMethod is invoked on the sub-instance, method metadata is
 * resolved from the mainService dispatcher and the call is sent through subProxy.
 *
 * @param mainServiceDispatcher Indicates mainService dispatcher handle.
 * @param subProxy Indicates IPC remote proxy for the non-mainService interface.
 * @param ppMoDispatcher Indicates a pointer to receive the created sub-instance dispatcher handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if mainServiceDispatcher or subProxy
 *         or ppMoDispatcher is null.
 *         {@link ABILITY_eRUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =CreateSubInstance(
    =>Handle mainServiceDispatcher,
    OHIPCRemoteProxy* subProxy, =Handle* ppMoDispatcher);

/**
 * @brief Release modular object dispatcher instance.
 *
 * @param ppMoDispatcher Indicates a pointer to modular object dispatcher handle to release.
 *                   After release, handle will be set to NULL.
 * @since 26.0.0
 */
void =Release(=Handle* ppMoDispatcher);

/**
 * @brief Check if type library is supported.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param pctinfo Indicates a pointer to receive support status (1 if supported, 0 if not supported).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMoDispatcher or pctinfo is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTOERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =c,(
    =Handle pMoDispatcher, uint32_t* pctinfo);

/**
 * @brief Get type descriptor.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param ppTypeDescriptor Indicates a pointer to receive type descriptor handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMoDispatcher or ppTypeDescriptor is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.!0.0
 */
AbilityRuntime_ErrorCode =,(
    =Handle pMoDispatcher, =TypeDescriptorHandle* ppTypeDescriptor);

/**
 * @brief Query member IDs of names.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param rgszNames Indicates array of property or method names.
 * @param cNames Indicates number of names.
 * @param pMemID Indicates pointer to receive member IDs (MemberIDs).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMoDispatcher or rgszNames or pMemID is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if name not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =O-&(
    =Handle pMoDispatcher, const char** rgszNames, uint32_t cNames,
    uint32_t* pMemID);

/**
 * @brief Call a method.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param memID Indicates method member ID (MemberID).
 * @param pInputParams Indicates parameter structure containing arguments.
 * @param pResult Indicates pointer to receive result variant.
 * @param pMethodErrCode Indicates a pointer to receive the error code returned by the remote method.
 *                   0 if the method executed successfully, non-zero if the method returned an error.
 *                   This is independent of the framework-level return value.
 * @return Returns framework error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if IPC call is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMoDispatcher or pInputParams or pResult is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if parameter type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =-
(
    =*Handle pMoDispatcher, uint32_t memID,
    =InputParams* pInputParams,
    = ariant* pResult,
    int32_t* pMethodErrCode);

// ========== TypeDescriptor Interfaces ==========

/**
 * @brief Release TypeDescriptor instance.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle to release.
 * @since 26.0.0
 */
void OH_Abili/Release(=TypeDescriptorHandle *pTypeDescriptor);

/**
 * @brief Get version.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrVersion Indicates a buffer to receive version.
 * @param cMaxVersion Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrVersion is null, or cMaxVersion is 0.
 *         {@link ABILITY_RUNbTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$Version(
    =TypeDescriptorHandle pTypeDescriptor, char* pbstrVersion, uint32_t cMaxVersion);

/**
 * @brief Get total number of interfaces.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcInterfaces Indicates a pointer to receive interface count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcInterfaces is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /-Count(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t* pcInterfaces);

/**
 * @brief Get interface name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates interface index.
 * @param pbstrName Indicates a buffer to receive interface name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNALJ} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /1(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Check if interface is a callback type.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates interface name.
 * @param pIsCallback Indicates a pointer to receive callback flag (true if callback, false otherwise).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName or pIsCallback is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROWPERTY_NOT_FOUND} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /-IsCallback(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrName, bool* pIsCallback);

/**
 * @brief Get main service interface name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates a buffer to receive main service interface name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if main service interface not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$0(
    =TypeDescriptorHandle pTypeDescriptor, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method count from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pcMethods Indicates a pointer to receive method count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pcMethods is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface not found.
 * @*since 26.0.0
 */
AbilityRuntime_ErrorCode /$1Count(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t* pcMethods);

/**
 * @brief Get method name by index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param index Indicates method index.
 * @param pbstrName Indicates a buffer to receive method name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *         pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since $26.0.0
 */
AbilityRuntime_ErrorCode /$1
(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method MemberID by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pMemID Indicates a pointer to receive method MemberID.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pMemID is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not 5found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$1MemberId(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pMemID);

/**
 * @brief Get method return type by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pReturnType Indicates a pointer to receive return type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pReturnType is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method 9not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$1ReturnType(
    =kTypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    =** pReturnType);

/**
 * @brief Get method parameter count by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pcParams Indicates a pointer to receive parameter count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pcParams is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} Pif interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$p3Count(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pcParams);

/**
 * @brief Get method parameter type by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pParamType Indicates a pointer to receive parameter type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pParamType is null, or iParamIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode /$p3(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, =** pParamType);

/**
 * @brief Get method parameter name by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pbstrName Indicates a buffer to receive parameter name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pbstrName is null, or iParamIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @s)ince 26.0.0
 */
AbilityRuntime_ErrorCode /$p3
Name(
    =TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, char* pbstrName, uint32_t cMaxName);

// ========== Enum Queries ==========

/**
 * @brief Get enum count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcEnums Indicates a pointer to receive enum count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_EnRROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcEnums is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 4(Count(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t* pcEnums);

/**
 * @brief Get enum name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates enum index.
 * @param pbstrName Indicates a buffer to receive enum name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error 6occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 4,(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get enum value count by enum name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pcValues Indicates a pointer to receive enum value count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pcValues is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if enum not found.
 * @*since 26.0.0
 */
AbilityRuntime_ErrorCode 4(K5
(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t* pcValues);

/**
 * @brief Get enum value name by enum name and value index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param iValueIndex Indicates enum value index.
 * @param pbstrValueName Indicates a buffer to receive enum value name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName is null, or iValueIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal e;rror occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 4(ValueName(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t iValueIndex,
    char* pbstrValueName, uint32_t cMaxName);

/**
 * @brief Get enum value by enum name and value name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pbstrValueName Indicates enum value name.
 * @param pValue Indicates a pointer to receive enum value.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if enum value not found.
 * @since 26.0 .0
 */
AbilityRuntime_ErrorCode 4(Value(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, const char* pbstrValueName,
    int32_t* pValue);

/**
 * @brief Get struct count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcStructs Indicates a pointer to receive struct count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcStructs is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode a8*6(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t* pcStructs);

/**
 * @brief Get struct name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates struct index.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if interna>l error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode a8*
Name(
    =TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get struct field count by struct name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pcFields Indicates a pointer to receive field count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pcFields is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if struct not foun1d.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode a8/Count(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t* pcFields);

/**
 * @brief Get struct field name by struct name and field index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param iFieldIndex Indicates field index.
 * @param pbstrFieldName Indicates a buffer to receive field name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName is null, or iFieldIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal= error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode a8/
Name(
    =TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t iFieldIndex,
    char* pbstrFieldName, uint32_t cMaxName);

/**
 * @brief Get struct field type by struct name and field name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pbstrFieldName Indicates field name.
 * @param pFieldType Indicates a pointer to receive field type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName or pFieldType is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field not found./
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode a83(
    =cTypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, const char* pbstrFieldName,
    =** pFieldType);

/**
 * @brief Create an array instance.
 *
 * @param elementType Indicates element type.
 * @param size Indicates initial array size.
 * @param ppArray Indicates a pointer to receive array handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppArray is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @s)ince 26.0.0
 */
AbilityRuntime_ErrorCode =:8(
    =*" *elementType, uint32_t size,
    =:Handle* ppArray);

/**
 * @brief Get array element type.
 *
 * @param pArray Indicates array handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pElementType is null.
 * +@since 26.0.0
 */
AbilityRuntime_ErrorCode =:	ElementType(
    =:Handle pArray, =** pElementType);

/**
 * @brief Set an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if element@ type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =:	Set(
    =:)Handle pArray, uint32_t index,
    const = ariant* pValue);

/**
 * @brief Get an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_oINVALID} if pArray or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =:	(
    =:#Handle pArray, uint32_t index,
    = ariant* pValue);

/**
 * @brief Get array size.
 *
 * @param pArray Indicates array handle.
 * @param pSize Indicates a pointer to receive array size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =:(
    =:Handle pArray, uint32_t* pSize);

/**
 * @brief Release array instance.
 *
 * @param ppArray Indicates array handle to release.
 * @since 26.0.0
 */
void =:Release(=:Handle* ppArray);

/**
 * @brief Create a vector instance.
 *
 * @param elementType Indicates element type.
 * @param ppVector Indicates a pointer to receive vector handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppVector is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ='reate(
    =* *elementType,=%Handle* ppVector);

/**
 * @brief Get vector element type.
 *
 * @param pVector Indicates vector handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pElementType is null0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =&<(
    =%Handle pVector, =** pElementType);

/**
 * @brief Add an element to vector.
 *
 * @param pVector Indicates vector handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if element type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTENRNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =&	Add(
    =%Handle pVector, const = ariant* pValue);

/**
 * @brief Get a vector element value.
 *
 * @param pVector Indicates vector handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRun=	Get(
    =%$Handle pVector, uint32_t index,
    = ariant* pValue);

/**
 * @brief Get vector size.
 *
 * @param pVector Indicates vector handle.
 * @param pSize Indicates a pointer to receive vector size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =&GetSize(
    =%Handle pVector, uint32_t* pSize);

/**
 * @brief Clear vector.
 *
 * @param pVector Indicates vector handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTI_ME_ERROR_CODE_PARAM_INVALID} if pVector is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =+(
    =%Handle pVector);

/**
 * @brief Release vector instance.
 *
 * @param ppVector Indicates vector handle to release.
 * @since 26.0.0
 */
void =&Release(=%Handle* ppVector);

/**
 * @brief Create a set instance.
 *
 * @param elementType Indicates element type.
 * @param ppSet Indicates a pointer to receive set handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppSet is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_Abilit=Set_Create(
    =* *elementType, =SetHandle* ppSet);

/**
 * @brief Get set element type.
 *
 * @param pSet Indicates set handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pElementType is null.
 * @since $26.0.0
 */
AbilityRuntime_ErrorCode =3?(
    =SetHandle pSet, =** pElementType);

/**
 * @brief Add an element to set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if element type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if intBernal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =Set_Add(
    =SetHandle pSet, const = ariant* pValue);

/**
 * @brief Remove an element from set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =Set_Remove(
    =SetHandle pSet, const = ariant* pValue);

/**
 * @brief Check if an element exists in set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRunti=Set_Contains(
    =SetHandle pSet, const = ariant* pValue, bool* pExists);

/**
 * @brief Get set size.
 *
 * @param pSet Indicates set handle.
 * @param pSize Indicates a pointer to receive set size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =Set_GetSize(
    =SetHandle pSet, uint32_t* pSize);

/**
 * @brief Get a set element value by index.
 *
 * The returned variant is a deep copy ow.ned by the caller.
 * Caller must call {@link = ariant_Clear} to release it.
 *
 * @param pSet Indicates set handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null,J or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =Set_GetAt(
    =$SetHandle pSet, uint32_t index,
    = ariant* pValue);

/**
 * @brief Clear set.
 *
 * @param pSet Indicates set handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALIBD} if pSet is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =Set_Clear(
    =SetHandle pSet);

/**
 * @brief Release set instance.
 *
 * @param ppSet Indicates set handle to release.
 * @since 26.0.0
 */
void =Set_Release(=SetHandle* ppSet);

/**
 * @brief Create a map instance.
 *
 * @param keyType Indicates key type.
 * @param valueType Indicates value type.
 * @param ppMap Indicates a pointer to receive map handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if valueType or ppMap is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E$reate(
    = alueType keyType, =* *valueType,
    1E"Handle* ppMap);

/**
 * @brief Get map key type.
 *
 * @param pMap Indicates map handle.
 * @param pKeyType Indicates a pointer to receive key type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKeyType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#GetKeyType(
    1E"Handle pMap, = alueType* pKeyType);

/**
 * @brief Get map value type.
 *
 * @param pMap Indicates map handle.
 * @param pValueType Indicates a pointer to receive value type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pValueType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#C(
    1E"Handle pMap, =** pValueType);

/**
 * @brief Put a key-value pair into map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if key or value type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#	Put(
    1E"Handle pMap, const = ariant* pKey,
    const = ariant* pValue);

/**
 * @brief Get a value from map by key.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey or pValue is null, or key is not found in map.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_Ability;E	Get(
    1E"Handle pMap, const = ariant* pKey,
    = ariant* pValue);

/**
 * @brief Remove a key-value pair from map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#Remove(
    1E"Handle pMap, const = ariant* pKey);

/**
 * @brief Check if a key exists in map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_[INVALID} if pMap or pKey or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E.(
    1E"Handle pMap, const = ariant* pKey, bool* pExists);

/**
 * @brief Get map size.
 *
 * @param pMap Indicates map handle.
 * @param pSize Indicates a pointer to receive map size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#GetSize(
    1E"Handle pMap, uint32_t* pSize);

/**
 * @brief Get a map key by index.
 *
 * The returned variant is a deep copy owned by the ca!ller.
 * Caller must call {@link = ariant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pKey Indicates a pointer to receive key variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey is null, or index is out: of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#GetKeyAt(
    1E"!Handle pMap, uint32_t index,
    = ariant* pKey);

/**
 * @brief Get a map value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link = ariant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pValue is null, or index @is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E#GetValueAt(
    1E"!Handle pMap, uint32_t index,
    = ariant* pValue);

/**
 * @brief Clear map.
 *
 * @param pMap Indicates map handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALIBD} if pMap is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1E$
lear(
    1E"Handle pMap);

/**
 * @brief Release map instance.
 *
 * @param ppMap Indicates map handle to release.
 * @since 26.0.0
 */
void 1E#Release(1E"Handle* ppMap);

/**
 * @brief Create a struct instance.
 *
 * @param structName Indicates struct name from type metadata.
 * @param ppStruct Indicates a pointer to receive struct handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if structName or ppStruct is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =OI$Create(
    const char* structName, =OIHandle* ppStruct);

/**
 * @brief Get struct name.
 *
 * @param pStruct Indicates struct handle.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if_ pStruct or pbstrName is null, or cMaxName is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =OI

Name(
    =OIHandle pStruct, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Set a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to field value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field is not found in struct.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if field type mismatche1s.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =OISetField(
    =OI.Handle pStruct, const char* szName,
    const = ariant* pValue);

/**
 * @brief Get a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to receive field value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field is not f>ound in struct.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode =OI(
    =OI(Handle pStruct, const char* szName,
    = ariant* pValue);

/**
 * @brief Release struct instance.
 *
 * @param ppStruct Indicates struct handle to release.
 * @since 26.0.0
 */
void =OIRelease(=OIdHandle* ppStruct);
#ifdef __cplusplus
}
#endif

#endif // OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H



Vbx &O * for array types, use u.arrayType.pElementType and u.arrayType.size;
  * for ' * for struct/proxy/stub/enu3Qstruct {
 	       0++	        uint32_t size;
 	    } arrayType;
'Q3&G2ix4/*
* Copyright (C) 2024-2025+theEethe&the License at
 *
 *themT=^the definition of the C interface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file L
 *
 * @brief The file declares the error codes of the AbilityRuntime module|I13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H8IEnumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
A
     * Operation successful.
     *
     * @since 13
     */
   !3$W = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
   i]ERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
   i)\ = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
   !3T_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIM03jSUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
   >CORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *
     * @since 26.0.0
     */
    AB$3VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 26.0.0
     */
   !3STATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *
     * @since 26.0.0
     */
   !3CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILI'3CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
  	   */
   !3fWUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
   !3CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNT.3CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNT.3EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.$
     *
     * @since 15
     */
   !3_CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
   >$^ = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
   !3T_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
 
    */
   !3VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
   !3MULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILI>VALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
   !3UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
  	   */
   !3MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
   !3APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
   !3GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    AB$3START_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
   !3MAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
     * @since 26.0.0
     */
   !3RUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
   $  *
     * @since 26.0.0
     */
   !3UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *
     * @since 26.0.0
     */
    AB$3UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The requested property, method, enum, or struct member is not found.
 &    *
     * @since 26.0.0
     */
   n. = 16000173,
    /**
     * The runtime value type does not match the expected metadata type.
     *
     * @since 26.0.0
     */
   C) = 16000174,
    /**
     * The IPC request to the remote service fails.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIM03:X = 16000175,
    /**
     * Caller and target are not in the same application for {@linkpELAUNCH_MODE_IN_PROCESS} mode.
     *
     * @since 26.0.0
     */
   !3CROSS_APP_IN_PROCESS = 16000176,
     /**
 	  * The type library metadata is invalid, for example, missing or duplicate main in,terface.
 	  *
 	  * @since 26.0.0
 	  */
 	>#TLB_METADATA_INVALID = 16000178,
} U;
-/** @} */
#endif // ABILITY_RUNTIME_COMMON_H
*>qx"4﻿/*
 * Copyright (c) 2026+Kd%License at
 *
 *    싓{_>Rdefinition of C interface for modular object dispatcher late binding mechanism.
 *C26.0.0
 */

/**
 * @file modular_object_dispatcher.h
 *
 * @brief Declare common types and interfaces for modular object dispatcher_|26.0.0
 */

#ifndef OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H
#define OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H

#include <stdbool.h>D
#include "ability_runtime_common.h"
#include "IPCKit/ipc_cparcel.h"$8Forward declaration of OH_AbilityRuntime_MoDispatcher_TypeDescriptor structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_TypeDescriptor;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_TypeDescriptor.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_TypeDescriptor* OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle;

. /**
  * @brief Enumerates variant types.
  *
:*/
typedef enum {
    /** @description Empty value. */
   qCMO_DISPATCHER_VT_EMPTY = 0,
    /** @description Void value. */
   qEMO_DISPATCHER_VT_VOID = 1,
    /** @description Boolean value. */
   qLMO_DISPATCHER_VT_BOOL = 2,
    /** @description 8-bit signed integer. */
   qKMO_DISPATCHER_VT_I8 = 3,
    /** @description 16-bit signed integer. */
   qLMO_DISPATCHER_VT_I16 = 4,
    /** @description 32-bit signed integer. */
   qLMO_DISPATCHER_VT_I32 = 5,
    /** @description 64-bit signed integer. */
   qMMO_DISPATCHER_VT_I64 = 6,
    /** @description 8-bit unsigned integer. */
   qMMO_DISPATCHER_VT_U8 = 7,
    /** @description 16-bit unsigned integer. */
   qNMO_DISPATCHER_VT_U16 = 8,
    /** @description 32-bit unsigned integer. */
   qNMO_DISPATCHER_VT_U32 = 9,
    /** @description 64-bit unsigned integer. */
   qMMO_DISPATCHER_VT_U64 = 10,
    /** @description 32-bit floating point. */
   qMMO_DISPATCHER_VT_F32 = 11,
    /** @description 64-bit floating point. */
   qFMO_DISPATCHER_VT_F64 = 12,
    /** @description String (UTF-8). */
   q@MO_DISPATCHER_VT_STRING = 13,
    /** @description Array. */
   q@MO_DISPATCHER_VT_ARRAY = 14,
    /** @description Vector. */
   q>MO_DISPATCHER_VT_VECTOR = 15,
    /** @description Set. */
   q;MO_DISPATCHER_VT_SET = 16,
    /** @description Map. */
   q>MO_DISPATCHER_VT_MAP = 17,
    /** @description Struct. */
   qKMO_DISPATCHER_VT_STRUCT = 18,
    /** @description Ipc Remote Proxy. */
   qTMO_DISPATCHER_VT_IPC_REMOTE_PROXY = 19,
    /** @description Ipc Remote Stub. */
   qNMO_DISPATCHER_VT_IPC_REMOTE_STUB = 20,
    /** @description Enum value. */
   qMO_DISPATCHER_VT_ENUM = 21,
} OH_AbilityRuntime_MoDispatcher_ValueType;

/**
 * @brief Defines the parameter type descriptor for modular object dispatcher.
 *
 * Describes the type of a parameter or return value using a tagged union.
  * for array types, use u.arrayType.pElementType and u.arrayType.size;
  * for vector/set types, use u.pElementType;
  * for struct/proxy/stub/enum types, use u.idlType.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_TypeInfo {
    /**
     * @brief Type tag that determines which union member is valid.
     */
    OH_AbilityRuntime_MoDispatcher_ValueType vt;
    union {
    O    /**
         * @brief Map type metadata.
         *         Used when vt isjMO_DISPATCHER_VT_MAP}.
         */
        struct {
            /**
             * @brief Key type of the map. Only basic types are supported, 
             *        Container types (ARRAY, VECTOR, SET, MAP) and complex types
             *        (STRUCT, IPC_REMOTE_PROXY, IPC_REMOTE_STUB) are not supported.
             */
            OH_AbilityRuntime_MoDispatcher_ValueType keyType;
            /**
             * @brief Pointer to the value type descriptor.
             *         Must be released by {@link OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear}.
             */
            OH_AbilityRuntime_MoDispatcher_TypeInfo *pValueType;
        } mapType;
        /**
         * @brief Array type metadata.
         *         Used when vt is {@link OH_ABIxMO_DISPATCHER_VT_ARRAY}.
         */
        struct {
            /**
             * @brief Pointer to the element type descriptor.
             *         Must be released by {@link OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear}.
             */
            struct OH_AbilityRuntime_MoDispatcher_TypeInfo *pElementType;
            /**
             * @brief Fixed array size.
             */
            uint32_t size;
        } arrayType;
        /**
         * @brief Pointer to the element type descriptor$.
         *         Used when vt isj,MO_DISPATCHER_VT_VECTOR}
         *         hMO_DISPATCHER_VT_SET}.
         *         Must be released by {@link OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear}.
         */
        OH_AbilityRuntime_MoDispatcher_TypeInfo *pElementType;
        /**
         * @brief IDL type name string (heap-alloc)ated).
         *         Used when vt isj,MO_DISPATCHER_VT_STRUCT},
         *        j6MO_DISPATCHER_VT_IPC_REMOTE_PROXY},
         *        j6MO_DISPATCHER_VT_IPC_REMOTE_STUB},
         *         hMO_DISPATCHER_VT_ENUM}.
         *         Must be released by {@link OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear}.
         */
        char* idlType;
    } u;
} OH_AbilityRuntime_MoDispatcher_TypeInfo;


/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher* OH_AbilityRuntime_MoDispatcherHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Array structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Array;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Array.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Array* OH_AbilityRuntime_MoDispatcher_ArrayHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Vector structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Vector;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Vector.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Vector* OH_AbilityRuntime_MoDispatcher_VectorHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Set structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Set;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Set.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Set* OH_AbilityRuntime_MoDispatcher_SetHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Map structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Map;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Map.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Map* OH_AbilityRuntime_MoDispatcher_MapHandle;

/**
 * @brief Forward declaration of OH_AbilityRuntime_MoDispatcher_Struct structure.
 *
 * @since 26.0.0
 */
struct OH_AbilityRuntime_MoDispatcher_Struct;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_MoDispatcher_Struct.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_MoDispatcher_Struct* OH_AbilityRuntime_MoDispatcher_StructHandle;

/**
 * @brief Defines a variant structure using union + type tag for ABI compatibility.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Variant type.
     */
    OH_AbilityRuntime_MoDispatcher_ValueType vt;
    /**
     * @brief Reserved field 1 for future use.
     */
    uint64_t reserved1;
    /**
     * @brief Reserved field 2 for future use.
     */
    uint64_t reserved2;
    /**
     * @brief Reserved field 3 for future use.
     */
    uint64_t reserved3;
    /**
     * @brief Variant value data.
     */
    union {
        /**
         * @brief Empty value.
         */
        void *pvoidVal;
        /**
         * @brief Boolean value.
         */
        bool boolVal;
        /**
         * @brief 8-bit signed integer.
         */
        int8_t i8Val;
        /**
         * @brief 16-bit signed integer.
         */
        int16_t i16Val;
        /**
         * @brief 32-bit signed integer.
         */
        int32_t i32Val;
        /**
         * @brief 64-bit signed integer.
         */
        int64_t i64Val;
        /**
         * @brief 8-bit unsigned integer.
         */
        uint8_t u8Val;
        /**
         * @brief 16-bit unsigned integer.
         */
        uint16_t u16Val;
        /**
         * @brief 32-bit unsigned integer.
         */
        uint32_t u32Val;
        /**
         * @brief 64-bit unsigned integer.
         */
        uint64_t u64Val;
        /**
         * @brief 32-bit floating point.
         */
        float f32Val;
        /**
         * @brief 64-bit floating point.
         */
        double f64Val;
        /**
         * @brief Enum value.
         */
        int32_t enumVal;
        /**
         * @brief String value (UTF-8) pointer.
         */
        char* bstrVal;
        /**
         * @brief Array handle.
         */
        OH_AbilityRuntime_MoDispatcher_ArrayHandle parrayVal;
        /**
         * @brief Vector handle.
         */
        OH_AbilityRuntime_MoDispatcher_VectorHandle pvectorVal;
        /**
         * @brief Set handle.
         */
        OH_AbilityRuntime_MoDispatcher_SetHandle psetVal;
        /**
         * @brief Map handle.
         */
        OH_AbilityRuntime_MoDispatcher_MapHandle pmapVal;
        /**
         * @brief Struct handle.
         */
        OH_AbilityRuntime_MoDispatcher_StructHandle pstructVal;
        /**
         * @brief Ipc remote proxy handle.
         */
        OHIPCRemoteProxy *premoteProxyVal;
        /**
         * @brief Ipc remote stub handle.
         */
        OHIPCRemoteStub *premoteStubVal;
    } u;
} OH_AbilityRuntime_MoDispatcher_Variant;

/**
 * @brief Defines a parameter structure for method invocation.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Array of argument variants.
     */
    OH_AbilityRuntime_MoDispatcher_Variant* rgvarg;
    /**
     * @brief Number of arguments.
     */
    uint32_t cArgs;
} OH_AbilityRuntime_MoDispatcher_InputParams;

/**
 * @brief Clear TypeInfo resources.
 *
 * Recursively release any heap resources held by a TypeInfo struct
 * (idlType strings, child TypeInfo nodes for map/array/vector/set types).
 * After clearing, all pointers are set to NULL but the TypeInfo struct itself is not freed
 * (it is typically stack-allocated by the caller).
 *
 * TypeInfo_Clear must NOT be called on a shallow copy of another TypeInfo.
 * If TypeInfo t2 = t1 is performed, only clear one of them.
 *
 * @param pTypeInfo Indicates a pointer to TypeInfo to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_TypeInfo_Clear(
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pTypeInfo);

/**
 * @brief Clear variant resources.
 *
 * Release any resources held by the variant (strings, container handles, etc.).
 * After clearing, the variant is reset to VT_EMPTY with all fields zeroed.
 *
 * Ownership rules:
 * - When a Variant is passed to a function (e.g. Array_Set, Map_Put), the function
 *   performs a deep copy. The caller retains ownership of the original Variant and
 *   is responsible for freeing its own resources (e.g. free(bstrVal) for strings,
 *   Release for container handles).
 * - When a Variant is returned from a function (e.g. Array_Get, Map_Get, CallMethod),
 *   the function performs a deep copy and the caller owns the returned Variant.
 *   The caller must call Variant_Clear exactly once to release the resources.
 * - Simple types (bool, i32, f64, etc.) do not hold heap resources and do not
 *   require Variant_Clear, though calling it is harmless.
 * - Variant_Clear must NOT be called on a shallow copy of another Variant.
 *   If Variant v2 = v1 is performed, only clear one of them.
 *
 * @param pVariant Indicates a pointer to variant to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Variant_Clear(
    OH_AbilityRuntime_MoDispatcher_Variant* pVariant);

/**
 * @brief Create a modular object dispatcher instance from an IPC remote proxy for the main service interface.
 *
 * The type library metadata will be lazily loaded from the remote service on the first call
 * that requires it, such as HasTypeDescriptor, QueryMainServiceInterfaceMemIDsOfNames, or CallMethod.
 *
 * @param remoteProxy Indicates IPC remote proxy handle obtained from connectExtension.
 * @param ppMoDispatcher Indicates a pointer to receive modular object dispatcher handle.
 * @retur'n Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkJPARAM_INVALID} if remoteProxy or ppMoDispatcher is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_CreateMainServiceInstance(
    OHIPCRemoteProxy* remoteProxy, OH_AbilityRuntime_MoDispatcherHandle* ppMoDispatcher);

/**
 * @brief Create a sub-instance dispatcher bound to a mainService dispatcher.
 *
 * The sub-instance shares the mainService dispatcher's metadata but uses its own
 * IPC proxy. When CallMethod is invoked on the sub-instance, method metadata is
 * resolved from the mainService dispatcher and the call is sent through subProxy.
 *
 * @param mainServiceDispatcher Indicates mainService dispatcher handle.
 * @param subProxy Indicates IPC remote proxy for the non-mainService interface.
 * @param ppMoDispatcher Indicates a pointer to receive the created sub-instance dispatcher handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkkPARAM_INVALID} if mainServiceDispatcher or subProxy
 *         or ppMoDispatcher is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_CreateSubInstance(
    OH_AbilityRuntime_MoDispatcherHandle mainServiceDispatcher,
    OHIPCRemoteProxy* subProxy, OH_AbilityRuntime_MoDispatcherHandle* ppMoDispatcher);

/**
 * @brief Release modular object dispatcher instance.
 *
 * @param ppMoDispatcher Indicates a pointer to modular object dispatcher handle to release.
 *                   After release, handle will be set to NULL.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Release(OH_AbilityRuntime_MoDispatcherHandle* ppMoDispatcher);

/**
 * @brief Check if the type library metadata is available from the remote service.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param pctinfo Indicates a pointer to receive support statuXs (1 if supported, 0 if not supported).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkEPARAM_INVALID} if pMoDispatcher or pctinfo is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_HasTypeDescriptor(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, uint32_t* pctinfo);

/**
 * @brief Get type descriptor for querying interface metadata information.
 *
 * The type descriptor provides access to type library metadata including interfaces,
 * methods, enums, and structs defined in the remote service's type library.
 * Must call {@link OH_AbilityRuntime_TypeDescriptor_Release} to release the handle when no longer needed.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param ppTypeDescriptor Indicates a pointer to receive type descriptor handle.
 *. @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkNPARAM_INVALID} if pMoDispatcher or ppTypeDescriptor is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_GetTypeDescriptor(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle* ppTypeDescriptor);

/**
 * @brief Query member IDs of method names in the main service interface.
 *
 * The returned member IDs can be used as the memID parameter in
 * {@link OH_AbilityRuntime_MoDispatcher_CallMethod}.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param rgszNames Indicates array of method names.
 * @param cNames Indicates number of names.
 * @param pMemID Indicates pointer to receive member IDs (MemberIDs).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkQPARAM_INVALID} if pMoDispatcher or rgszNames or pMemID is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@link&} if name not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_QueryMainServiceInterfaceMemIDsOfNames(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, const char** rgszNames, uint32_t cNames,
    uint32_t* pMemID);

/**
 * @brief Call a method.
 *
 * @param pMoDispatcher Indicates modular object dispatcher handle.
 * @param memID Indicates method member ID (MemberID).
 * @param pInputParams Indicates parameter structure containing arguments.
 * @param pResult Indicates pointer to receive result variant.
 * @param pMethodErrCode Indicates a pointer to receive the error code returned by the remote method.
 *                   0 if the method executed successfully, non-zero if the method returned an error.
 *                   This is independent of the framework-level return value.
 *                   This parameter can be NULL if the caller does not need the method-level error code.
 * @return Retur*ns framework error code.
 *         {@link.} if IPC call is successful.
 *         {@linkUPARAM_INVALID} if pMoDispatcher or pInputParams or pResult is null.
 *         {@link(} if method not found.
 *         {@linkQ)1} if parameter type mismatches.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_CallMethod(
    OH_AbilityRuntime_MoDispatcherHandle pMoDispatcher, uint32_t memID,
    OH_AbilityRuntime_MoDispatcher_InputParams* pInputParams,
    OH_AbilityRuntime_MoDispatcher_Variant* pResult,
    int32_t* pMethodErrCode);

// ========== TypeDescriptor Interfaces ==========

/**
 * @brief Release TypeDescriptor instance.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_TypeDescriptor_Release(OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle *pTypeDescriptor);

/**
 * @brief Get version of the type library.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrVersion Indicates a buffer to receive version string.
 * @param cMaxVersion Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link A/} if operation is successful.
 *         {@linkaPARAM_INVALID} if pTypeDescriptor or pbstrVersion is null, or cMaxVersion is 0.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetVersion(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrVersion, uint32_t cMaxVersion);

/**
 * @brief Get total number of interfaces.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcInterfaces Indicates a pointer to receive interface count.
 * @return Returns error code.
 *      	   {@link/} if operation is successful.
 *         {@linkLPARAM_INVALID} if pTypeDescriptor or pcInterfaces is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetInterfaceCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcInterfaces);

/**
 * @brief Get interface name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates interface index, ranging from 0 to
 *              (interface count - 1) obtained from {@link OH_AbilityRuntime_TypeDescriptor_GetInterfaceCount}.
 * @param pbstrName Indicates a buffer to receive interface name.
 * @param cMaxName Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link ABILI/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_R7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetInterfaceName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Check if interface is a callback type.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates interface name.
 * @param pIsCallback Indicates a pointero to receive callback flag (true if callback, false otherwise).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pTypeDescriptor or pbstrName or pIsCallback is null.
 *         {@link3TERNAL} if internal error occurs.
 *         {@link/} if interface not found.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetInterfaceIsCallback(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrName, bool* pIsCallback);

/**
 * @brief Get main service interface name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates a buffer to receive main service interface name.
 * @param cMaxNameK Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMainServiceInterfaceName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method count from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pcMethods Indicates a pointer to Freceive method count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pcMethods is null.
 *         {@link3TERNAL} if internal error occurs.
 *         {@link/} if interface not found.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t* pcMethods);

/**
 * @brief Get method name by index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param index Indicates method index, ranging from 0 to (method count - 1)
 *              obtained from {@link OH_AbilityRuntime_TypeDescriptor_GetMethodCount}.
 * @param pbstrName Indicates a buffer to receive method name.
 * @param cMaxName Indicates size of buffer in bytes, Oincluding the null terminator.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *         pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link+} if interface not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method MemberID by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pMemID Indicates a pointer to receive method MemberID.
 * @ret)urn Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkoPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pMemID is null.
 *         {@link5} if interface or method not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodMemberId(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pMemID);

/**
 * @brief Get method return type by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pReturnType Indicates a pointer to receive return type.
 * @,return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pReturnType is null.
 *         {@link ABILITY_RU5} if interface or method not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodReturnType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pReturnType);

/**
 * @brief Get method parameter count by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pcParams Indic[ates a pointer to receive parameter count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pcParams is null.
 *         {@link ABILITY_RUNTI5} if interface or method not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodParamCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pcParams);

/**
 * @brief Get method parameter type by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pParamType Indicates a pointer to receive parameter type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIM/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pParamType is null, or iParamIndex is out of range.
 *         {@link5} if interface or method not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodParamType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, OH_AbilityRuntime_MoDispatcher_TypeInfo* pParamType);

/**
 * @brief Get method parameter name by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pbstrName Indicates a buffer to receive parameter name.
 * @parVam cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pbstrName is null, or iParamIndex is out of range.
 *         {@link5} if interface or method not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetMethodParamName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, char* pbstrName, uint32_t cMaxName);

// ========== Enum Queries ==========

/**
 * @brief Get enum count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcEnums Indicates a pointer to receive enum count.
 * @return Returns error code.
 *         {@link ABILITY_RUN/} if operation is successful.
 *         {@linkGPARAM_INVALID} if pTypeDescriptor or pcEnums is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetEnumCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcEnums);

/**
 * @brief Get enum name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates enum index.
 * @param pbstrName Indicates a buffer to receive enum name.
 * @param cMaxName Indicates size of buf5fer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_R7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetEnumName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get enum value count by enum name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pcValues Indicates a pointer to receive eAnum value count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkYPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pcValues is null.
 *         {@link&} if enum not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetEnumValueCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t* pcValues);

/**
 * @brief Get enum value name by enum name and value index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param iValueIndex Indicates enum value index.
 * @param pbstrValueName Indicates a buffer to receive enum value name.
 * @param cMaxName Indicates size of buf5fer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName is null, or iValueIndex is out of range.
 *         {@link&} if enum not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetEnumValueName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t iValueIndex,
    char* pbstrValueName, uint32_t cMaxName);

/**
 * @brief Get enum value by enum name and value name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pbstrValueName Indicates enum value name.
 * @param pValue Indicates a pointer to receive enum value.
 * @return& Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkiPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName or pValue is null.
 *         {@link,} if enum value not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetEnumValue(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, const char* pbstrValueName,
    int32_t* pValue);

/**
 * @brief Get struct count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcStructs Indicates a pointer to receive struct count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkIPARAM_INVALID} if pTypeDescriptor or pcStructs is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetStructCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcStructs);

/**
 * @brief Get struct name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates struct index.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates s?ize of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_R7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetStructName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get struct field count by struct name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pcFields Indicates a pointer toF receive field count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pcFields is null.
 *         {@link(} if struct not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetStructFieldCount(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t* pcFields);

/**
 * @brief Get struct field name by struct name and field index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param iFieldIndex Indicates field index.
 * @param pbstrFieldName Indicates a buffer to receive field name.
 * @param cMaxName Indicates size of b7uffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName is null, or iFieldIndex is out of range.
 *         {@link(} if struct not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetStructFieldName(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t iFieldIndex,
    char* pbstrFieldName, uint32_t cMaxName);

/**
 * @brief Get struct field type by struct name and field name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pbstrFieldName Indicates field name.
 * @param pFieldType Indicates a pointer to receive field 6type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkoPARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName or pFieldType is null.
 *         {@link'} if field not found.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_TypeDescriptor_GetStructFieldType(
    OH_AbilityRuntime_MoDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, const char* pbstrFieldName,
    OH_AbilityRuntime_MoDispatcher_TypeInfo* pFieldType);

/**
 * @brief Create an array instance.
 *
 * @param elementType Indicates element type.
 * @param size Indicates initial array size.
 * @kparam ppArray Indicates a pointer to receive array handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if elementType or ppArray is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Array_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType, uint32_t size,
    OH_AbilityRuntime_MoDispatcher_ArrayHandle* ppArray);

/**
 * @brief Get array element type.
 *
 * @param pArray Indicates array handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABIL/} if operation is successful.
 *         {@linkGPARAM_INVALID} if pArray or pElementType is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Array_GetElementType(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Set an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 *         {@linkQ)3} if element type mismatches.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Array_Set(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t index,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @retur'n Returns error code.
 *         {@link/} if operation is successful.
 *         {@link\PARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Array_Get(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get array size.
 *
 * @param pArray Indicates array handle.
 * @param pS_ize Indicates a pointer to receive array size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link@PARAM_INVALID} if pArray or pSize is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Array_GetSize(
    OH_AbilityRuntime_MoDispatcher_ArrayHandle pArray, uint32_t* pSize);

/**
 * @brief Release array instance.
 *
 * @param ppArray Indicates array handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Array_Release(OH_AbilityRuntime_MoDispatcher_ArrayHandle* ppArray);

/**
 * @brief Create a vector instance.
 *
 * @param elementType Indicates element type.
 * @param ppVector Indicates a pointer to receive vector handle.
 * @return Re#turns error code.
 *         {@link/} if operation is successful.
 *         {@linkDPARAM_INVALID} if elementType or ppVector is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType,OH_AbilityRuntime_MoDispatcher_VectorHandle* ppVector);

/**
 * @brief Get vector element type.
 *
 * @param pVector Indicates vector handle.
 * @paralm pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pVector or pElementType is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_GetElementType(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to vector.
 *
 * @param pVector Indicates vector handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIM/} if operation is successful.
 *         {@link>PARAM_INVALID} if pVector or pValue is null.
 *         {@linkQ)/} if element type mismatches.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_Add(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a vector element value.
 *
 * @param pVector Indicates vector handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link]PARAM_INVALID} if pVector or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_Get(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get vector size.
 *
 * @param pVector Indicates vector handle.
 * @pafram pSize Indicates a pointer to receive vector size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkAPARAM_INVALID} if pVector or pSize is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_GetSize(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector, uint32_t* pSize);

/**
 * @brief Clear vector.
 *
 * @param pVector Indicates vector handle.
 * @return Returns error code.
 *         {@link ABILITY/} if operation is successful.
 *         {@link8PARAM_INVALID} if pVector is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Vector_Clear(
    OH_AbilityRuntime_MoDispatcher_VectorHandle pVector);

/**
 * @brief Release vector instance.
 *
 * @param ppVector Indicates vector handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Vector_Release(OH_AbilityRuntime_MoDispatcher_VectorHandle* ppVector);

/**
 * @brief Create a set instance.
 *
 * @param elementType Indicates element type.
 * @param ppSet Indicates a pointer to receive set handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkAPARAM_INVALID} if elementType or ppSet is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_Create(
    OH_AbilityRuntime_MoDispatcher_TypeInfo *elementType, OH_AbilityRuntime_MoDispatcher_SetHandle* ppSet);

/**
 * @brief Get set element type.
 *
 * @param pSet Indicates set handle.
 * @param pElementType In[dicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkEPARAM_INVALID} if pSet or pElementType is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_GetElementType(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, OH_AbilityRuntime_MoDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to set.
 *
 * @param pSet Indicates set handle.
 * @param pValue ^Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link;PARAM_INVALID} if pSet or pValue is null.
 *         {@linkQ)/} if element type mismatches.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_Add(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Remove an element from set.
 *
 * @param pSet Indicates set handle.
 * @param pValue IndicatWes a pointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link?PARAM_INVALID} if pSet or pValue is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_Remove(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Check if an element exists in set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Re#turns error code.
 *         {@link/} if operation is successful.
 *         {@linkJPARAM_INVALID} if pSet or pValue or pExists is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_Contains(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, const OH_AbilityRuntime_MoDispatcher_Variant* pValue, bool* pExists);

/**
 * @brief Get set size.
 *
 * @param pSet Indicates set handle.
 * @param pSize InWdicates a pointer to receive set size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link>PARAM_INVALID} if pSet or pSize is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_GetSize(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, uint32_t* pSize);

/**
 * @brief Get a set element value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pSet Indicates set handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkZPARAM_INVALID} if pSet or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_GetAt(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Clear set.
 *
 * @param pSet Indicates set handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link5PARAM_INVALID} if pSet is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Set_Clear(
    OH_AbilityRuntime_MoDispatcher_SetHandle pSet);

/**
 * @brief Release set instance.
 *
 * @param ppSet Indicates set handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Set_Release(OH_AbilityRuntime_MoDispatcher_SetHandle* ppSet);

/**
 * @brief Create a map instance.
 *
 * @param keyType Indicates key type.9 Only basic types are supported, such as
 *              j(MO_DISPATCHER_VT_BOOL},
 *              j'MO_DISPATCHER_VT_I32},
 *              j.MO_DISPATCHER_VT_STRING},
 *               andjMO_DISPATCHER_VT_ENUM}.
 *               Container types (ARRAY, VECTOR, SET, MAP) and complex types
 *               (STRUCT, IPC_REMOTE_PROXY, IPC_REMOTE_STUB) are not supported.
 * @param valueType Indicates value type.
 * @param ppMap Indicates a poiLnter to receive map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link?PARAM_INVALID} if valueType or ppMap is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_Create(
    OH_AbilityRuntime_MoDispatcher_ValueType keyType, OH_AbilityRuntime_MoDispatcher_TypeInfo *valueType,
    OH_AbilityRuntime_MoDispatcher_MapHandle* ppMap);

/**
 * @brief Get map key type.
 *
 * @param pMap Indicates map handle.
 * @param pKeyType Indicates a pointer to receive key type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkAPARAM_INVALID} if pMap or pKeyType is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_GetKeyType(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, OH_AbilityRuntime_MoDispatcher_ValueType* pKeyType);

/**
 * @brief Get map value type.
 *
 * @param pMap Indicates map handle.
 * @param pValueType IndicaUtes a pointer to receive value type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if pMap or pValueType is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_GetValueType(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, OH_AbilityRuntime_MoDispatcher_TypeInfo* pValueType);

/**
 * @brief Put a key-value pair into map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if pMap or pKey or pValue is null.
 *         {@linkQ)4} if key or value type mismatches.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_Put(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a value from map by key.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to recDeive value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkcPARAM_INVALID} if pMap or pKey or pValue is null, or key is not found in map.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_Get(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Remove a key-value pair from map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link=PARAM_INVALID} if pMap or pKey is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_Remove(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey);

/**
 * @brief Check if a key exists in map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pMap or pKey or pExists is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_ContainsKey(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, const OH_AbilityRuntime_MoDispatcher_Variant* pKey, bool* pExists);

/**
 * @brief Get map size.
 *
 * @param pMap Indicates map handle.
 * @param pSize IXndicates a pointer to receive map size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link>PARAM_INVALID} if pMap or pSize is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_GetSize(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t* pSize);

/**
 * @brief Get a map key by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry indexm.
 * @param pKey Indicates a pointer to receive key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pMap or pKey is null, or index is out of bounds.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_GetKeyAt(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pKey);

/**
 * @brief Get a map value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_MoDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pValue Indicates a pointer to receive value variant.
 * @return& Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkZPARAM_INVALID} if pMap or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_GetValueAt(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Clear map.
 *
 * @param pMap Indicates map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link5PARAM_INVALID} if pMap is null.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Map_Clear(
    OH_AbilityRuntime_MoDispatcher_MapHandle pMap);

/**
 * @brief Release map instance.
 *
 * @param ppMap Indicates map handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Map_Release(OH_AbilityRuntime_MoDispatcher_MapHandle* ppMap);

/**
 * @brief Create a struct instance.
 *
 * @param structName Indicates struct name from type metadata.
 * @param ppStruct Indicates a pointer to receive struct handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if structName or ppStruct is null.
 *         {@link7TERNAL} if internal error occurs.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Struct_Create(
    const char* structName, OH_AbilityRuntime_MoDispatcher_StructHandle* ppStruct);

/**
 * @brief Get struct name.
 *
 * @param pStruct Indicates struct handle.
 * @param pbstrName Indicates a buffer to recoeive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkWPARAM_INVALID} if pStruct or pbstrName is null, or cMaxName is 0.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Struct_GetName(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Set a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to field value variant.
 * @return Returns error code.
 *         {@link ABI/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link4} if field is not found in struct.
 *         {@linkQ)1} if field type mismatches.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Struct_SetField(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, const char* szName,
    const OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Get a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to receive field value variant.
 /* @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link8} if field is not found in struct.
 * @since 26.0.0
 */
 OH_AbilityRuntime_MoDispatcher_Struct_GetField(
    OH_AbilityRuntime_MoDispatcher_StructHandle pStruct, const char* szName,
    OH_AbilityRuntime_MoDispatcher_Variant* pValue);

/**
 * @brief Release struct instance.
 *
 * @param ppStruct Indicates struct handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_MoDispatcher_Struct_Release(OH_AbilityRuntime_MoDispatcher_StructHandle* ppStruct);4#endif // OHOS_ABILITY_RUNTIME_C_MO_DISPATCHER_H



횖	xBS[
    {
        "first_introduced": "13",
        "name": "OH_AbilityRuntime_ApplicationContextGetCacheDir"
    },
    {
        "first_introduced": "13",
        "name": "OH_AbilityRuntime_ApplicationContextGetAreaMode"
    },
    {
        "first_introduced": "13",
        "name": "OH_AbilityRuntime_ApplicationContextGetBundleName"
    },
    {
        "first_introduced": "15",
        "name": "OH_AbilityRuntime_StartSelfUIAbility"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetTempDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetFilesDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetDatabaseDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetPreferencesDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetBundleCodeDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetDistributedFilesDir"
    },
    {
        "first_introduced": "16",
        "name": "OH_AbilityRuntime_ApplicationContextGetCloudFileDir"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_StartSelfUIAbilityWithStartOptions"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_CreateStartOptions"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_DestroyStartOptions"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWindowMode"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWindowMode"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsDisplayId"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsDisplayId"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWithAnimation"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWithAnimation"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWindowLeft"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWindowLeft"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWindowTop"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWindowTop"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWindowHeight"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWindowHeight"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsStartVisibility"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsStartVisibility"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsStartWindowIcon"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsStartWindowIcon"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsStartWindowBackgroundColor"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsStartWindowBackgroundColor"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsSupportedWindowModes"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsSupportedWindowModes"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsMinWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsMinWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsMaxWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsMaxWindowWidth"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsMinWindowHeight"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsMinWindowHeight"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_SetStartOptionsMaxWindowHeight"
    },
    {
        "first_introduced": "17",
        "name": "OH_AbilityRuntime_GetStartOptionsMaxWindowHeight"
    },
	{
        "first_introduced": "20",
        "name": "OH_AbilityRuntime_ApplicationContextGetResourceDir"
    },
	{
        "first_introduced": "21",
        "name": "OH_AbilityRuntime_ApplicationContextGetLaunchParameter"
    },
	{
        "first_introduced": "21",
        "name": "OH_AbilityRuntime_ApplicationContextGetLatestParameter"
    },
	{
        "first_introduced": "21",
        "name": "OH_AbilityRuntime_ApplicationContextGetVersionCode"
    },
    {
        "first_introduced": "21",
        "name": "OH_AbilityRuntime_StartSelfUIAbilityWithPidResult"
    },
    {
        "first_introduced": "22",
        "name": "OH_AbilityRuntime_ApplicationContextGetLogFileDir"
    },
    {
        "first_introduced": "23",
        "name": "OH_AbilityRuntime_ApplicationContextNotifyPageChanged"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetCacheDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetTempDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetFilesDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetDatabaseDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetPreferencesDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetBundleCodeDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetDistributedFilesDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetResourceDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetCloudFileDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetAreaMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_SetAreaMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetLogFileDir"
    },
    {
        "first_introduced": "24",
        "name": "OH_AbilityRuntime_Context_GetProcessName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_ReleaseAllExtensionInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModularObjectExtensionInfoLaunchMode"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModularObjectExtensionInfoProcessMode"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModularObjectExtensionInfoThreadMode"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModularObjectExtensionInfoElementName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModularObjectExtensionInfoDisableState"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_GetModObjExtensionInfoByIndex"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_ConnectModularObjectExtensionAbility"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_DisconnectModularObjectExtensionAbility"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_CreateConnectOptions"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_DestroyConnectOptions"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_ConnectOptions_SetOnConnectCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_ConnectOptions_SetOnDisconnectCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntime_ConnectOptions_SetOnFailedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "odObjExtensionAbility_RegisterOnCreateFunc"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjExtensionAbility_RegisterOnDestroyFunc"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntidObjExtensionAbility_RegisterOnConnectFunc"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntidObjExtensionAbility_RegisterOnDisconnectFunc"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRudObjExtensionAbility_GetContextFromInstance"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_AbilityRuntndObjExtensionAbility_GetInstanceFromBase"
    },
    {
        "first_introduced": "26.0.0",
        "name": "idObjExtensionContext_GetBaseContext"
    },
    {
        "first_introduced": "26.0.0",
        "name": "mdObjExtensionContext_StartSelfUIAbility"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjExtensionContext_StartSelfUIAbilityWithStartOptions"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OHhdObjExtensionContext_TerminateSelf"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ndObjExtensionContext_CreateIPCRemoteStub"
    },
    {
        "first_introduced": "26.0.0",
        "name": "odObjExtensionContext_DestroyIPCRemoteStub"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjA0F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjoF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObj8$F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObj<F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\dObjDispatcher_Release"
    },
    {
        "first_introduced": "26.0.0",
        "name": "fdObjDispatcher_HasTypeDescriptor"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjFF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjK1F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_CallMethod"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S(F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!V
F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!\KCount"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!\F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!\PIsCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!wcF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!fF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	JName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	?oF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	s
F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	_{KCount"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	_{	F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!f	_{JName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!KCount"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!\
F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!<	F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!KValue"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!	KCount"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!JName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "S!JType"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "^dObjDispatcher_Array_Set"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjpF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjQF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_Vector_Add"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjQF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjQJSize"
    },
    {
        "first_introduced": "26.0.0",
        "name": "adObjDispatcher_Vector_Clear"
    },
    {
        "first_introduced": "26.0.0",
        "name": "cdObjDispatcher_Vector_Release"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_Set_Create"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\dObjDispatcher_Set_Add"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_Set_Remove"
    },
    {
        "first_introduced": "26.0.0",
        "name": "adObjDispatcher_Set_Contains"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "^dObjDispatcher_Set_GetAt"
    },
    {
        "first_introduced": "26.0.0",
        "name": "^dObjDispatcher_Set_Clear"
    },
    {
        "first_introduced": "26.0.0",
        "name": "`dObjDispatcher_Set_Release"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_Map_Create"
    },
    {
        "first_introduced": "26.0.0",
        "name": "cdObjDispatcher_Map_GetKeyType"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\dObjDispatcher_Map_Put"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\dObjDispatcher_Map_Get"
    },
    {
        "first_introduced": "26.0.0",
        "name": "_dObjDispatcher_Map_Remove"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ddObjDispatcher_Map_ContainsKey"
    },
    {
        "first_introduced": "26.0.0",
        "name": "`dObjDispatcher_Map_GetSize"
    },
    {
        "first_introduced": "26.0.0",
        "name": "adObjDispatcher_Map_GetKeyAt"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjHAt"
    },
    {
        "first_introduced": "26.0.0",
        "name": "^dObjDispatcher_Map_Clear"
    },
    {
        "first_introduced": "26.0.0",
        "name": "dObjF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "bdObjDispatcher_Struct_Create"
    },
    {
        "first_introduced": "26.0.0",
        "name": "cdObjDispatcher_Struct_GetName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ddObjDispatcher_Struct_SetField"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ddObjDispatcher_Struct_GetField"
    },
    {
        "first_introduced": "26.0.0",
        "name": "&dObjDispatcher_Struct_Release"
    }
]e=xX﻿/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with License.
 * You may obtain a copy of License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provide definition of C interface for modular object dispatcher late binding mechanism.
 *
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

/**
 * @file modular_object_dispatcher.h
 *
 * @brief Declare common types and interfaces for modular object dispatcher.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H
#define OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H

#include <stdbool.h>
#include "ability_runtime_common.h"
#include "IPCKit/ipc_cparcel.h"

#iKfdef __cplusplus
extern "C" {
#endif

/**
 * @brief Forward declaration of >#9TypeDescriptor structure.
 *
 * @since 26.0.0
 */
struct >#4TypeDescriptor;

/**
 * @brief Defines a pointer to >#7TypeDescriptor.
 *
 * @since 26.0.0
 */
typedef struct >#TypeDescriptor* >#TypeDescriptorHandle;

 /**
  * @brief Enumerates variant types.
  *
  * @since 26.0.0
  */
typedef enum {
    /** @description Empty value. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_EMPTY = 0,
    /** @description Void value. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_VOID = 1,
    /** @description Boolean value. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_BOOL = 2,
    /** @description 8-bit signed integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_I8 = 3,
    /** @description 16-bit signed integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_I16 = 4,
    /** @description 32-bit signed integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_I32 = 5,
    /** @description 64-bit signed integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_I64 = 6,
    /** @description 8-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_U8 = 7,
    /** @description 16-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_U16 = 8,
    /** @description 32-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_U32 = 9,
    /** @description 64-bit unsigned integer. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_U64 = 10,
    /** @description 32-bit floating point. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_F32 = 11,
    /** @description 64-bit floating point. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_F64 = 12,
    /** @description String (UTF-8). */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_STRING = 13,
    /** @description Array. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_ARRAY = 14,
    /** @description Vector. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_VECTOR = 15,
    /** @description Set. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_SET = 16,
    /** @description Map. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_MAP = 17,
    /** @description Struct. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_STRUCT = 18,
    /** @description Ipc Remote Proxy. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_PROXY = 19,
    /** @description Ipc Remote Stub. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_STUB = 20,
    /Y** @description Enum value. */
    OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_ENUM = 21,
} >$alueType;

/**
 * @brief Defines the parameter type descriptor for modular object dispatcher.
 *
 * Describes the type of a parameter or return value using a tagged union.
  * for array types, use u.arrayType.pElementType and u.arrayType.size;
  * for vector/set types, use u.pElementType;
  * for struct/proxy/stub/enum types, use u.idlType.
 *
 * @since 26.0.0
 */
typedef struct >#cTypeInfo {
    /**
     * @brief Type tag that determines which union member is valid.
     */
    >$alueType vt;
    union {
        /**
         * @brief Map type metadata.
         *         Used when vt is {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_MAP}.
         */
        struct {
            /**
             * @brief Key type of the map. Only basic types are supported, 
             *        Container types (ARRAY, VECTOR, SET, MAP) and complex types
             * b       (STRUCT, IPC_REMOTE_PROXY, IPC_REMOTE_STUB) are not supported.
             */
            >$alueType keyType;
            /**
             * @brief Pointer to the value type descriptor.
             *         Must be released by {@link >#-TypeInfo_Clear}.
             */
            >#TypeInfo *pValueType;
        } mapType;
        /**
         * @brief Array type metadata.
         *         Used when vt is {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_ARRAY}.
         */
        struct {
            /**
             * @brief PoinVter to the element type descriptor.
             *         Must be released by {@link >#4TypeInfo_Clear}.
             */
            struct >#TypeInfo *pElementType;
            /**
             * @brief Fixed array size.
             */
            uint32_t size;
        } arrayType;
        /**
         * @brief Pointer to the element type descriptor.
         *         Used when vt is {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_VECTOR}
         *         or {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_SET}.
.         *         Must be released by {@link >#%TypeInfo_Clear}.
         */
        >#TypeInfo *pElementType;
        /**
         * @brief IDL type name string (heap-allocated).
         *         Used when vt is {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_STRUCT},
         *         {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_PROXY},
         *         {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_STUB},
         *         or {@lbink OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_ENUM}.
         *         Must be released by {@link >#?TypeInfo_Clear}.
         */
        char* idlType;
    } u;
} >#1TypeInfo;


/**
 * @brief Forward declaration of >"+ structure.
 *
 * @since 26.0.0
 */
struct >"&;

/**
 * @brief Defines a pointer to >").
 *
 * @since 26.0.0
 */
typedef struct >"* >".Handle;

/**
 * @brief Forward declaration of >#0Array structure.
 *
 * @since 26.0.0
 */
struct >#+Array;

/**
 * @brief Defines a pointer to >#.Array.
 *
 * @since 26.0.0
 */
typedef struct >#Array* >#3ArrayHandle;

/**
 * @brief Forward declaration of >)+ structure.
 *
 * @since 26.0.0
 */
struct >)&;

/**
 * @brief Defines a pointer to >)).
 *
 * @since 26.0.0
 */
typedef struct >)* >).Handle;

/**
 * @brief Forward declaration of >#.Set structure.
 *
 * @since 26.0.0
 */
struct >#)Set;

/**
 * @brief Defines a pointer to >#,Set.
 *
 * @since 26.0.0
 */
typedef struct >#Set* >#1SetHandle;

/**
 * @brief Forward declaration of F&+ structure.
 *
 * @since 26.0.0
 */
struct F&&;

/**
 * @brief Defines a pointer to F&).
 *
 * @since 26.0.0
 */
typedef struct F&* F&.Handle;

/**
 * @brief Forward declaration of >#1Struct structure.
 *
 * @since 26.0.0
 */
struct >#,Struct;

/**
 * @brief Defines a pointer to >#/Struct.
 *
 * @since 26.0.0
 */
typedef struct >#Struct* >#StructHandle;

/**
 * @brief Defines a variant structure using union + type tag for ABI compatibility.
 *
 * @since 26.0.0
 */
Atypedef struct {
    /**
     * @brief Variant type.
     */
    >$alueType vt;
    /**
     * @brief Reserved field 1 for future use.
     */
    uint64_t reserved1;
    /**
     * @brief Reserved field 2 for future use.
     */
    uint64_t reserved2;
    /**
     * @brief Reserved field 3 for future use.
     */
    uint64_t reserved3;
    /**
     * @brief Variant value data.
     */
    union {
        /**
         * @brief Empty value.
         */
        void *pvoidVal;
        /**
         * @brief Boolean value.
         */
        bool boolVal;
        /**
         * @brief 8-bit signed integer.
         */
        int8_t i8Val;
        /**
         * @brief 16-bit signed integer.
         */
        int16_t i16Val;
        /**
         * @brief 32-bit signed integer.
         */
        int32_t i32Val;
        /**
         * @brief 64-bit signed integer.
         */
        int64_t i64Val;
        /**
         * @brief 8-bit unsigned integer.
         */
        uint8_t u8Val;
        /**
         * @brief 16-bit unsigned integer.
         */
        uint16_t u16Val;
        /**
         * @brief 32-bit unsigned integer.
         */
        uint32_t u32Val;
        /**
         * @brief 64-bit unsigned integer.
         */
        uint64_t u64Val;
        /**
         * @brief 32-bit floating point.
         */
        float f32Val;
        /**
         * @brief 64-bit floating point.
         */
        double f64Val;
        /**
         * @brief Enum value.
         */
        int32_t enumVal;
        /**
         * @brief String value (UTF-8) pointere.
         */
        char* bstrVal;
        /**
         * @brief Array handle.
         */
        >#XArrayHandle parrayVal;
        /**
         * @brief Vector handle.
         */
        >)QHandle pvectorVal;
        /**
         * @brief Set handle.
         */
        >#QSetHandle psetVal;
        /**
         * @brief Map handle.
         */
        F&QHandle pmapVal;
        /**
         * @brief Struct handle.
         */
        >#StructHandle pstructVal;
        /**
         * @brief Ipc remote proxy handle.
         */
        OHIPCRemoteProxy *premoteProxyVal;
        /**
         * @brief Ipc remote stub handle.
         */
        OHIPCRemoteStub *premoteStubVal;
    } u;
} O>#ariant;

/**
 * @brief Defines a parameter structure for method invocation.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
  4   * @brief Array of argument variants.
     */
    >$Yariant* rgvarg;
    /**
     * @brief Number of arguments.
     */
    uint32_t cArgs;
} >#InputParams;

/**
 * @brief Clear TypeInfo resources.
 *
 * Recursively release any heap resources held by a TypeInfo struct
 * (idlType strings, child TypeInfo nodes for map/array/vector/set types).
 * After clearing, all pointers are set to NULL but the TypeInfo struct itself is not freed
 * (it is typically stack-allocated by the caller).
 *
 * TypeInfo_Clear must NOT be called on a shallow copy of another TypeInfo.
 * If TypeInfo t2 = t1 is performed, only clear one of them.
 *
 * @param pTypeInfo ICndicates a pointer to TypeInfo to clear.
 * @since 26.0.0
 */
void >#TypeInfo_Clear(
    >#TypeInfo* pTypeInfo);

/**
 * @brief Clear variant resources.
 *
 * Release any resources held by the variant (strings, container handles, etc.).
 * After clearing, the variant is reset to VT_EMPTY with all fields zeroed.
 *
 * Ownership rules:
 * - When a Variant is passed to a function (e.g. Array_Set, Map_Put), the function
 *   performs a deep copy. The caller retains ownership of the original Variant and
 *   is responsible for freeing its own resources (e.g. free(bstrVal) for strings,
 *   Release for container handles).
 * - When a Variant is returned from a function (e.g. Array_Get, Map_Get, CallMethod),
 *   the function performs a deep copy and the caller owns the returned Variant.
 *   The caller must call Variant_Clear exactly once to release the resources.
 * - Simple types (bool, i32, f64, etc.) do not hold heap resources and do not
 *   require Variant_Clear, though calling it is harmless.
 * - Variant_Clear must NOT be called on a shallow copy of another Variant.
 *   If Variant v2 = v1 is performed, only clear one of them.
 *
 * @param pVariant Indicates a pointer to variant to clear.
 * @since 26.0.0
 */
void >$*(
    >$ariant* pVariant);

/**
 * @brief Create a modular object dispatcher instance from an IPC remote proxy for the main service interface.
 *
 * The type library metadata will be lazily loaded from the remote service on the first call
 * that requires it, such as HasTypeDescriptor, o-&, or CallMethod.
 *
 * @param remoteProxy Indicates IPC remote proxy handle obtained from connectExtension.
 * @param ppModObjDispatcher Indicates a pointer to receive modular object dispatcher handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if remoteProxy or ppModObjDispatcher is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @s)ince 26.0.0
 */
AbilityRuntime_ErrorCode >#+%(
    OHIPCRemoteProxy* remoteProxy, >"Handle* ppModObjDispatcher);

/**
 * @brief Create a sub-instance dispatcher bound to a mainService dispatcher.
 *
 * The sub-instance shares the mainService dispatcher's metadata but uses its own
 * IPC proxy. When CallMethod is invoked on the sub-instance, method metadata is
 * resolved from the mainService dispatcher and the call is sent through subProxy.
 *
 * @param mainServiceDispatcher Indicates mainService dispatcher handle.
 * @param subProxy Indicates IPC remote proxy for the non-mainService interface.
 * @param ppModObjDispatcher Indicates a pointer to receive the created sub-instance dispatcher handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if mainServiceDispatcher or subProxy
 *         or ppModObjDispatcher is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRunt>+SubInstance(
    >">Handle mainServiceDispatcher,
    OHIPCRemoteProxy* subProxy, >"Handle* ppModObjDispatcher);

/**
 * @brief Release modular object dispatcher instance.
 *
 * @param ppModObjDispatcher Indicates a pointer to modular object dispatcher handle to release.
 *                   After release, handle will be set to NULL.
 * @since 26.0.0
 */
void >#Release(>"Handle* ppModObjDispatcher);

/**
 * @brief Check if the type library metadata is available from the remote service.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param pctinfo Indicates a pointer to receive support status (1 if supported, 0 if not supported).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pModObjDispatcher or pctinfo is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TLB_METADATA_INVALID} if type library metadata is invalid.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if iDnternal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#{,(
    >"Handle pModObjDispatcher, uint32_t* pctinfo);

/**
 * @brief Get type descriptor for querying interface metadata information.
 *
 * The type descriptor provides access to type library metadata including interfaces,
 * methods, enums, and structs defined :in the remote service's type library.
 * Must call {@link 1!o.} to release the handle when no longer needed.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param ppTypeDescriptor Indicates a pointer to receive type descriptor handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pModObjDispatcher or ppTypeDescriptor is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TLB_METADATA_INVALID} if type library metadata is invalid.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRun>,(
    >"Handle pModObjDispatcher, >#TypeDescriptorHandle* ppTypeDescriptor);

/**
 * @brief Query member IDs of method names in the main service interface.
 *
 * TGhe returned member IDs can be used as the memID parameter in
 * {@link >#-
}.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param rgszNames Indicates array of method names.
 * @param cNames Indicates number of names.
 * @param pMemID Indicates pointer to receive member IDs (MemberIDs).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pModObjDispatcher or rgszNames or pMemID is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TLB_METADATA_INVALID} if type library metadata is invalid.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if name not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRu>o-&(
    >"Handle pModObjDispatcher, const char** rgszNames, uint32_t cNames,
    uint32_t* pMemID);

/**
 * @brief Call a method.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param memID Indicates method member ID (MemberID).
 * @param pInputParams Indicates parameter structure containing arguments.
 * @param pResult Indicates pointer to receive result variant.
 * @param pMethodErrCode Indicates a pointer to receive the error code returned by the remote method.
 *                   0 if the method executed successfully, non-zero if the method returned an error.
 *                   This is independent of the framework-level return value.
 *                   This parameter can be NULL if the caller does not need the method-level error code.
 * @return Returns framework error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if IPC call is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pModObjDispatcher or pInputParams or pResult is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if parameter type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED} if send request failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TLB_METADATA_INVALID} if type library metadata is invalid.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRu>-
(
    >".Handle pModObjDispatcher, uint32_t memID,
    >#InputParams* pInputParams,
    >$ariant* pResult,
    int32_t* pMethodErrCode);

// ========== TypeDescriptor Interfaces ==========

/**
 * @brief Release TypeDescriptor instance.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle to release.
 * @since 26.0.0
 */
void OH_Abili1o.(>#TypeDescriptorHandle *pTypeDescriptor);

/**
 * @brief Get version of the type library.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrVersion Indicates a buffer to receive version string.
 * @param cMaxVersion Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrVersion is null, or cMaxVersion is 0.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @sinc&e 26.0.0
 */
AbilityRuntime_ErrorCode 1$.(
    >#TypeDescriptorHandle pTypeDescriptor, char* pbstrVersion, uint32_t cMaxVersion);

/**
 * @brief Get total number of interfaces.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcInterfaces Indicates a pointer to receive interface count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcInterfaces is null.
 *         {@link ABILITY_RUNbTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$@0	Count(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t* pcInterfaces);

/**
 * @brief Get interface name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates interface index, ranging from 0 to
 *              (interfa#ce count - 1) obtained from {@link 1$@0	Count}.
 * @param pbstrName Indicates a buffer to receive interface name.
 * @param cMaxName Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since% 26.0.0
 */
AbilityRuntime_ErrorCode 1$@0	
Name(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Check if interface is a callback type.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates interface name.
 * @param pIsCallback Indicates a pointer to receive callback flag (true if callback, false otherwise).
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName or pIsCallback is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface not found.
 * @s)ince 26.0.0
 */
AbilityRuntime_ErrorCode 1$@0(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrName, bool* pIsCallback);

/**
 * @brief Get main service interface name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates a buffer to receive main service interface name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @si(nce 26.0.0
 */
AbilityRuntime_ErrorCode 1%0(
    >#TypeDescriptorHandle pTypeDescriptor, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method count from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pcMethods Indicates a pointer to receive method count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pcMethods is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_A1&Count(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t* pcMethods);

/**
 * @brief Get method name by index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param index Indicates method index, ranging from 0 to (method count - 1)
 *              obtained from {@link 1*Count}.
 * @param pbstrName Indicates a buffer to receive method name.
 * @param cMaxName Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *         pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1.(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method MemberID by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pMemID Indicates a pointer to receive method MemberID.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pMemID is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1*.2(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pMemID);

/**
 * @brief Get method return type by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pReturnType Indicates a pointer to receive return type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pReturnType is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1*ReturnType(
    >#kTypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    >#TypeInfo* pReturnType);

/**
 * @brief Get method parameter count by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pcParams Indicates a pointer to receive parameter count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pcParams is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @*since 26.0.0
 */
AbilityRuntime_ErrorCode p3/Count(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pcParams);

/**
 * @brief Get method parameter type by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pParamType Indicates a pointer to receive parameter type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pParamType is null, or iParamIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link AlBILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode p33(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, >#TypeInfo* pParamType);

/**
 * @brief Get method parameter name by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pbstrName Indicates a buffer to receive parameter name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or pbstrMethodName or pbstrName is null, or iParamIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if interface or method not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occur1s.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode p3/
Name(
    >#TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, char* pbstrName, uint32_t cMaxName);

// ========== Enum Queries ==========

/**
 * @brief Get enum count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcEnums Indicates a pointer to receive enum count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcEnums is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if inter@nal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$EnumCount(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t* pcEnums);

/**
 * @brief Get enum name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates enum index.
 * @param pbstrName Indicates a buffer to receive enum name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error 6occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$EnumName(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get enum value count by enum name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pcValues Indicates a pointer to receive enum value count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pcValues is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if enum not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_A1 k5(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t* pcValues);

/**
 * @brief Get enum value name by enum name and value index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param iValueIndex Indicates enum value index.
 * @param pbstrValueName Indicates a buffer to receive enum value name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName is null, or iValueIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if enum not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$k5	
Name(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, uint32_t iValueIndex,
    char* pbstrValueName, uint32_t cMaxName);

/**
 * @brief Get enum value by enum name and value name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pbstrValueName Indicates enum value name.
 * @param pValue Indicates a pointer to receive enum value.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if enum value not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRunt1k5	(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName, const char* pbstrValueName,
    int32_t* pValue);

/**
 * @brief Get struct count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcStructs Indicates a pointer to receive struct count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pcStructs is null.
 *         {@link mABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$08Count(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t* pcStructs);

/**
 * @brief Get struct name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates struct index.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if interna>l error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$08
Name(
    >#TypeDescriptorHandle pTypeDescriptor, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get struct field count by struct name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pcFields Indicates a pointer to receive field count.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pcFields is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if struct not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$08Count(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t* pcFields);

/**
 * @brief Get struct field name by struct name and field index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param iFieldIndex Indicates field index.
 * @param pbstrFieldName Indicates a buffer to receive field name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName is null, or iFieldIndex is out of range.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if struct not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$08(
    >#TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, uint32_t iFieldIndex,
    char* pbstrFieldName, uint32_t cMaxName);

/**
 * @brief Get struct field type by struct name and field name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pbstrFieldName Indicates field name.
 * @param pFieldType Indicates a pointer to receive field type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName or pFieldType is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field not found.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode 1$08
Type(
    >#cTypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName, const char* pbstrFieldName,
    >#TypeInfo* pFieldType);

/**
 * @brief Create an array instance.
 *
 * @param elementType Indicates element type.
 * @param size Indicates initial array size.
 * @param ppArray Indicates a pointer to receive array handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppArray is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occur1s.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#Array_Create(
    >#*TypeInfo *elementType, uint32_t size,
    >#ArrayHandle* ppArray);

/**
 * @brief Get array element type.
 *
 * @param pArray Indicates array handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pElementType is null0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#9(
    >#ArrayHandle pArray, >#TypeInfo* pElementType);

/**
 * @brief Set an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} ifH element type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#Array_Set(
    >#.ArrayHandle pArray, uint32_t index,
    const >$ariant* pValue);

/**
 * @brief Get an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_oINVALID} if pArray or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#Array_Get(
    >#(ArrayHandle pArray, uint32_t index,
    >$ariant* pValue);

/**
 * @brief Get array size.
 *
 * @param pArray Indicates array handle.
 * @param pSize Indicates a pointer to receive array size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pArray or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#:(
    >#ArrayHandle pArray, uint32_t* pSize);

/**
 * @brief Release array instance.
 *
 * @param ppArray Indicates array handle to rel ease.
 * @since 26.0.0
 */
void >#m;(>#ArrayHandle* ppArray);

/**
 * @brief Create a vector instance.
 *
 * @param elementType Indicates element type.
 * @param ppVector Indicates a pointer to receive vector handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppVector is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >+reate(
    >#TypeInfo *elementType,>)Handle* ppVector);

/**
 * @brief Get vector element type.
 *
 * @param pVector Indicates vector handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pElementType is null0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >*`<(
    >)Handle pVector, >#TypeInfo* pElementType);

/**
 * @brief Add an element to vector.
 *
 * @param pVector Indicates vector handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if element type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CVODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >*	Add(
    >)Handle pVector, const >$ariant* pValue);

/**
 * @brief Get a vector element value.
 *
 * @param pVector Indicates vector handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRun>	Get(
    >)$Handle pVector, uint32_t index,
    >$ariant* pValue);

/**
 * @brief Get vector size.
 *
 * @param pVector Indicates vector handle.
 * @param pSize Indicates a pointer to receive vector size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pVector or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >*GetSize(
    >)Handle pVector, uint32_t* pSize);

/**
 * @brief Clear vector.
 *
 * @param pVector Indicates vector handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTI_ME_ERROR_CODE_PARAM_INVALID} if pVector is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >/(
    >)Handle pVector);

/**
 * @brief Release vector instance.
 *
 * @param ppVector Indicates vector handle to release.
 * @since 26.0.0
 */
void >*>(>)Handle* ppVector);

/**
 * @brief Create a set instance.
 *
 * @param elementType Indicates element type.
 * @param ppSet Indicates a pointer to receive set handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if elementType or ppSet is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_Abilit> ?
(
    >#TypeInfo *elementType, >#SetHandle* ppSet);

/**
 * @brief Get set element type.
 *
 * @param pSet Indicates set handle.
 * @param pElementType Indicates a pointer to receive element type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pElementType is null.
 * @since $26.0.0
 */
AbilityRuntime_ErrorCode ># ??(
    >#SetHandle pSet, >#TypeInfo* pElementType);

/**
 * @brief Add an element to set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if element type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNALJ} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ># ?	Add(
    >#SetHandle pSet, const >$ariant* pValue);

/**
 * @brief Remove an element from set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ># ?Remove(
    >#SetHandle pSet, const >$ariant* pValue);

/**
 * @brief Check if an element exists in set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRunti > ?ontains(
    >#SetHandle pSet, const >$ariant* pValue, bool* pExists);

/**
 * @brief Get set size.
 *
 * @param pSet Indicates set handle.
 * @param pSize Indicates a pointer to receive set size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ># ?GetSize(
    >#SetHandle pSet, uint32_t* pSize);

/**
 * @brief Get a set element value by index.
 *
 * The returned variant is a deep copy ow.ned by the caller.
 * Caller must call {@link >$*} to release it.
 *
 * @param pSet Indicates set handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pSet or pValue is null, or index is> out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ># ?GetAt(
    >#$SetHandle pSet, uint32_t index,
    >$ariant* pValue);

/**
 * @brief Clear set.
 *
 * @param pSet Indicates set handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALIBD} if pSet is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode ># ?
lear(
    >#SetHandle pSet);

/**
 * @brief Release set instance.
 *
 * @param ppSet Indicates set handle to release.
 * @since 26.0.0
 */
void ># ?Release(>#SetHandle* ppSet);

/**
 * @brief Create a map instance.
 *
 * @param keyType Indicates key type. Only basic types are supported, such as
 *               {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_BOOL},
 *               {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_I32},
 *               {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_STRING},
 *               and {@link OH_ABILITY_RUNTIME_MOD_OBJ_DISPATCHER_VT_ENUM}.
 *               Container types (ARRAY, VECTOR, SET, MAP) and complex types
 *               (STRUCT, IPC_REMOTE_PROXY, IPC_REMOTE_STUB) are not supported.
 * @param valueType Indicates value type.
 * @param ppMap Indicates a pointer to receive map handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if valueType or ppMap is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F'Create(
    >$alueType keyType, >#TypeInfo *valueType,
    F&Handle* ppMap);

/**
 * @brief Get map key type.
 *
 * @param pMap Indicates map handle.
 * @param pKeyType Indicates a pointer to receive key type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKeyType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F-
Type(
    F&Handle pMap, >$alueType* pKeyType);

/**
 * @brief Get map value type.
 *
 * @param pMap Indicates map handle.
 * @param pValueType Indicates a pointer to receive value type.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pValueType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F*PG
Type(
    F&Handle pMap, >#TypeInfo* pValueType);

/**
 * @brief Put a key-value pair into map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if key or value type mismatches.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_E	rrorCode F'	Put(
    F&Handle pMap, const >$ariant* pKey,
    const >$ariant* pValue);

/**
 * @brief Get a value from map by key.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey or pValue is null, or key is not found in map.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityF (
    F&Handle pMap, const >$ariant* pKey,
    >$ariant* pValue);

/**
 * @brief Remove a key-value pair from map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F'Remove(
    F&Handle pMap, const >$ariant* pKey);

/**
 * @brief Check if a key exists in map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_[INVALID} if pMap or pKey or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F'E(
    F&Handle pMap, const >$ariant* pKey, bool* pExists);

/**
 * @brief Get map size.
 *
 * @param pMap Indicates map handle.
 * @param pSize Indicates a pointer to receive map size.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F*
Size(
    F&Handle pMap, uint32_t* pSize);

/**
 * @brief Get a map key by index.
 *
 * The returned variant is a deep copy owned by the ca!ller.
 * Caller must call {@link >$*} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pKey Indicates a pointer to receive key variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pKey is null, or index is out of bounds.
. * @since 26.0.0
 */
AbilityRuntime_ErrorCode F/(
    F&!Handle pMap, uint32_t index,
    >$ariant* pKey);

/**
 * @brief Get a map value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link >$*} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pValue Indicates a pointer to receive value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pMap or pValue is null, or index is out of bo4unds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F*PG(
    F&!Handle pMap, uint32_t index,
    >$ariant* pValue);

/**
 * @brief Clear map.
 *
 * @param pMap Indicates map handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALIBD} if pMap is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode F'Clear(
    F&Handle pMap);

/**
 * @brief Release map instance.
 *
 * @param ppMap Indicates map handle to release.
 * @since 26.0.0
 */
void F'Release(F&Handle* ppMap);

/**
 * @brief Create a struct instance.
 *
 * @param structName Indicates struct name from type metadata.
 * @param ppStruct Indicates a pointer to receive struct handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if structName or ppStruct is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#+Struct_Create(
    const char* structName, >#StructHandle* ppStruct);

/**
 * @brief Get struct name.
 *
 * @param pStruct Indicates struct handle.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALeID} if pStruct or pbstrName is null, or cMaxName is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#I(
    >#StructHandle pStruct, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Set a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to field value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field is not found in struct.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH} if field type mis7matches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#Struct_SetField(
    >#4StructHandle pStruct, const char* szName,
    const >$ariant* pValue);

/**
 * @brief Get a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to receive field value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND} if field is not f>ound in struct.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode >#I
Field(
    >#.StructHandle pStruct, const char* szName,
    >$ariant* pValue);

/**
 * @brief Release struct instance.
 *
 * @param ppStruct Indicates struct handle to release.
 * @since 26.0.0
 */
void >#Struct_Release(>#oStructHandle* ppStruct);
#ifdef __cplusplus
}
#endif

#endif // OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H



H38x9**
ularObjectq%>
ularObjectq*!i<Y"8ularObjectDispatcher#>
ularObject/E*
ularObjectDN
ularObjectQ*
ularObjectO
ularObject
S*
ularObject) L
ularObjectx M*
ularObject!L
ularObject!M*
ularObject"O
ularObjectQ#%!i<)I
 *         W{
 *         qГp[	C_b!f4|	_
 *         1xhT
 *         [p
 *         5t
 *         Gx 
 *         g|
 *         
 *         qГ}f!f8#
   ?L
 *         
    uint32_t iValueIndex,<
 *         QuValueName, int32_A0S
 *         0Gb!f8@!
   =
 *         M
    uint32_t iFieldIndex,2
 *          or pFieldPtR(u	FieldName0(
   ~
 *         .
   $u	/** @} */q:ÓIx4/*
* Copyright (C) 2024-2025+theEethe&the License at
 *
 *themT=the definition of the C interface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file ability_runtime_common.h
 *
 * @bCrief The file declares the error codes of the AbilityRuntime module|I13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H8Enumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
 */
typedef enum {
    /**
     * Operation successful%.
     *
     * @since 13
     */
   !V$W = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
   S]ERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
   S)\ = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
   !VT_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIM0VjSUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
   aCORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *
     * @since 26.0.0
     */
    AB>VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 26.0.0
     */
   >TATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *
     * @since 26.0.0
     */
    >CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILI>CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
  	   */
   >fWUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
   >CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNT>CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNT>EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.$
     *
     * @since 15
     */
   >_CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
   a$^ = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
   !VT_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
 
    */
   >VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
   >MULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILIgVALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
   >UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
  	   */
   >MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
   >APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
   >GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    AB>TART_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
   >MAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
     * @since 26.0.0
     */
   !VRUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
   $  *
     * @since 26.0.0
     */
   >UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *
     * @since 26.0.0
     */
    AB>UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The requested property, method, enum, or struct member is not found.
 &    *
     * @since 26.0.0
     */
   p. = 16000173,
    /**
     * The runtime value type does not match the expected metadata type.
     *
     * @since 26.0.0
     */
   >o = 16000174,
    /**
     * The IPC request to the remote service fails.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIM> Q = 16000175,
    /**
     * Caller and target are not in the same application forELAUNCH_MODE_IN_PROCESS} mode.
     *
     * @since 26.0.0
     */
   >-CROSS_APP_IN_PROCESS = 16000176,
    /**
 	  3C
[, for example, missing or duplicate main interface.
 	   *
 	   * @since 26.0.0
 	   */
   >C = 16000178,
} QDM;

#ifdef __cplusplus
}
#endif

/** @} */
#endif // ABILITY_RUNTIME_COMMON_H
uMx4﻿/*
 * Copyright (c) 2026+Kd%License at
 *
 *    싓{_>Rdefinition of C interface for modular object dispatcher late binding mechanism.
 *C26.0.0
 */

/**
 * @file modular_object_dispatcher.h
 *
 * @brief Declare common types and interfaces for modular object dispatcher_|26.0.0
 */

#ifndef OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H
#define OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H

#include <Nstdbool.h>
#include "ability_runtime_common.h"
#include "IPCKit/ipc_cparcel.h"$8Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_TypeDescriptor.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_TypeDescriptor*
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle;

 /**
  * @brief Enumerates variant types.
  *
!@brief Empty value.0"rBMOD_OBJ_DISPATCHER_VT_EMPTY = 0,
    /**
     * @brief Void value.0"rDMOD_OBJ_DISPATCHER_VT_VOID = 1,
    /**
     * @brief Boolean value.0"rKMOD_OBJ_DISPATCHER_VT_BOOL = 2,
    /**
     * @brief 8-bit signed integer.0"rJMOD_OBJ_DISPATCHER_VT_I8 = 3,
    /**
     * @brief 16-bit signed integer.0"rKMOD_OBJ_DISPATCHER_VT_I16 = 4,
    /**
     * @brief 32-bit signed integer.0"rKMOD_OBJ_DISPATCHER_VT_I32 = 5,
    /**
     * @brief 64-bit signed integer.0"rLMOD_OBJ_DISPATCHER_VT_I64 = 6,
    /**
     * @brief 8-bit unsigned integer.0"rLMOD_OBJ_DISPATCHER_VT_U8 = 7,
    /**
     * @brief 16-bit unsigned integer.0"rMMOD_OBJ_DISPATCHER_VT_U16 = 8,
    /**
     * @brief 32-bit unsigned integer.0"rMMOD_OBJ_DISPATCHER_VT_U32 = 9,
    /**
     * @brief 64-bit unsigned integer.0"rLMOD_OBJ_DISPATCHER_VT_U64 = 10,
    /**
     * @brief 32-bit floating point.0"rLMOD_OBJ_DISPATCHER_VT_F32 = 11,
    /**
     * @brief 64-bit floating point.0"rEMOD_OBJ_DISPATCHER_VT_F64 = 12,
    /**
     * @brief String (UTF-8).0"r?MOD_OBJ_DISPATCHER_VT_STRING = 13,
    /**
     * @brief Array.0"r?MOD_OBJ_DISPATCHER_VT_ARRAY = 14,
    /**
     * @brief Vector.0"r=MOD_OBJ_DISPATCHER_VT_VECTOR = 15,
    /**
     * @brief Set.0"r:MOD_OBJ_DISPATCHER_VT_SET = 16,
    /**
     * @brief Map.0"r=MOD_OBJ_DISPATCHER_VT_MAP = 17,
    /**
     * @brief Struct.0"rJMOD_OBJ_DISPATCHER_VT_STRUCT = 18,
    /**
     * @brief Ipc Remote Proxy.0"rSMOD_OBJ_DISPATCHER_VT_IPC_REMOTE_PROXY = 19,
    /**
     * @brief Ipc Remote Stub.0"rMMOD_OBJ_DISPATCHER_VT_IPC_REMOTE_STUB = 20,
    /**
     * @brief Enum value.0"rMOD_OBJ_DISPATCHER_VT_ENUM = 21,
} OH_AbilityRuntime_ModObjDispatcher_ValueType;

/**
 * @brief Defines the parameter type descriptor for modular object dispatcher.
 *
 * Describes the type of a parameter or return value using a tagged union.
  * for array types, use u.arrayType.pElementType and u.arrayType.size;
  * for vector/set types, use u.pElementType;
  * for struct/proxy/stub/enum types, use u.idlType.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModObjDispatcher_TypeInfo {
    /**
 B    * @brief Type tag that determines which union member is valid.0"OH_AbilityRuntime_ModObjDispatcher_ValueType vt;
    union {
        /**
         * @brief Map type metadata.
         *         Used when vt isj MOD_OBJ_DISPATCHER_VT_MAP}.
    1    */
        struct {
            /**
             * @brief Key type of the map. Only basic types are supported.
             *        Container types (ARRAY, VECTOR, SET, MAP) and complex types
             *        (STRUCT, IPC_REMOTE_PROXY, IPC_REMO$TE_STUB) are not supported.
        1        */
            OH_AbilityRuntime_ModObjDispatcher_ValueType keyType;
            /**
             * @brief Pointer to the value type descriptor.
             *         Must be released by {@link OH_AbilityRuntime_ModObjDispatcher_TypeInfo_Clear}.	
        1        */
            OH_AbilityRuntime_ModObjDispatcher_TypeInfo *pValueType;
        } mapType;
        /**
         * @brie9f Array type metadata.
         *         Used when vt isj"MOD_OBJ_DISPATCHER_VT_ARRAY}.
    1    */
        struct {
            /**
             * @brief Pointer to the element type descriptor.
             *         MuUst be released by {@link OH_AbilityRuntime_ModObjDispatcher_TypeInfo_Clear}.
        1        */
            struct OH_AbilityRuntime_ModObjDispatcher_TypeInfo *pElementType;
            /**
             * @brief Fixed array size.
        1        */
            uint32_t size;
        } arrayType;
        /**
         * @brief Pointer to the element type descriptor$.
         *         Used when vt isj1MOD_OBJ_DISPATCHER_VT_VECTOR}
         *         hMOD_OBJ_DISPATCHER_VT_SET}.
         *         Must be released by {@link OH_AbilityRuntime_ModObjDispatcher_TypeInfo_Clear}.
    1    */
        OH_AbilityRuntime_ModObjDispatcher_TypeInfo *pElementType;
        /**
         * @brief IDL type name string (h2eap-allocated).
         *         Used when vt isj1MOD_OBJ_DISPATCHER_VT_STRUCT},
         *        j;MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_PROXY},
         *        j;MOD_OBJ_DISPATCHER_VT_IPC_REMOTE_STUB},
         *         hMOD_OBJ_DISPATCHER_VT_ENUM}.
         *         Must be released by {@link OH_AbilityRuntime_ModObjDispatcher_TypeInfo_Clear}.
    1    */
        char* idlType;
    } u;
} OH_AbilityRuntime_ModObjDispatcher_TypeInfo;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher* OH_AbilityRuntime_ModObjDispatcherHandle;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_Array.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_Array* OH_AbilityRuntime_ModObjDispatcher_ArrayHandle;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_Vector.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_Vector* OH_AbilityRuntime_ModObjDispatcher_VectorHandle;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_Set.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_Set* OH_AbilityRuntime_ModObjDispatcher_SetHandle;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_Map.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_Map* OH_AbilityRuntime_ModObjDispatcher_MapHandle;

/**
 * @brief Defines a pointer to OH_AbilityRuntime_ModularObjectDispatcher_Struct.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectDispatcher_Struct* OH_AbilityRuntime_ModObjDispatcher_StructHandle;

/**
 * @brief Defines a variant structure using union + type tag for ABI compatibility.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Variant type.0"gOH_AbilityRuntime_ModObjDispatcher_ValueType vt;
    /**
     * @brief Reserved field 1 for future use.0"Juint64_t reserved1;
    /**
     * @brief Reserved field 2 for future use.0"Juint64_t reserved2;
    /**
     * @brief Reserved field 3 for future use.0"=uint64_t reserved3;
    /**
     * @brief Variant value data.0"7union {
        /**
         * @brief Empty value.
    1P    */
        void *pvoidVal;
        /**
         * @brief Boolean value.
    1U    */
        bool boolVal;
        /**
         * @brief 8-bit signed integer.
    1V    */
        int8_t i8Val;
        /**
         * @brief 16-bit signed integer.
    1X    */
        int16_t i16Val;
        /**
         * @brief 32-bit signed integer.
    1X    */
        int32_t i32Val;
        /**
         * @brief 64-bit signed integer.
    1Y    */
        int64_t i64Val;
        /**
         * @brief 8-bit unsigned integer.
    1Y    */
        uint8_t u8Val;
        /**
         * @brief 16-bit unsigned integer.
    1[    */
        uint16_t u16Val;
        /**
         * @brief 32-bit unsigned integer.
    1[    */
        uint32_t u32Val;
        /**
         * @brief 64-bit unsigned integer.
    1Y    */
        uint64_t u64Val;
        /**
         * @brief 32-bit floating point.
    1V    */
        float f32Val;
        /**
         * @brief 64-bit floating point.
    1L    */
        double f64Val;
        /**
         * @brief Enum value.
    1`    */
        int32_t enumVal;
        /**
         * @brief String value (UTF-8) pointer.
    1N    */
        char* bstrVal;
        /**
         * @brief Array handle.
    1    */
        OH_AbilityRuntime_ModObjDispatcher_ArrayHandle parrayVal;
        /**
         * @brief Vector handle.
         6    */
        OH_AbilityRuntime_ModObjDispatcher_VectorHandle pvectorVal;
        /**
         * @brief Set handle.
         *7    */
        OH_AbilityRuntime_ModObjDispatcher_SetHandle psetVal;
        /**
         * @brief Map handle.
         * @sinc=    */
        OH_AbilityRuntime_ModObjDispatcher_MapHandle pmapVal;
        /**
         * @brief Struct handle.
         * @s:    */
        OH_AbilityRuntime_ModObjDispatcher_StructHandle pstructVal;
        /**
         * @brief Ipc remote proxy handle.
    1l    */
        OHIPCRemoteProxy *premoteProxyVal;
        /**
         * @brief Ipc remote stub handle.
    1    */
        OHIPCRemoteStub *premoteStubVal;
    } u;
} OH_AbilityRuntime_ModObjDispatcher_Variant;

/**
 * @brief Defines a parameter structure for method invocation.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Array of argument variants.
     */
    OH_AbilityRuntime_ModObjDispatcher_Variant* rgvarg;
    /**
     * @brief Number of arguments.
     */
    uint32_t cArgs;
} OH_AbilityRuntime_ModObjDispatcher_InputParams;

/**
 * @brief Clear TypeInfo resources.
 *
 * Recursively release any heap resources held by a TypeInfo struct
 * (idlType strings, child TypeInfo nodes for map/array/vector/set types).
 * After clearing, all pointers are set to NULL but the TypeInfo struct itself is not freed
 * (it is typically stack-allocated by the caller).
 *
 * TypeInfo_Clear must NOT be called on a shallow copy of another TypeInfo.
 * If TypeInfo t2 = t1 is performed, only clear one of them.
 *
 * @param pTypeInfo Indicates a pointer to TypeInfo to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_TypeInfo_Clear(
    OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pTypeInfo);

/**
 * @brief Clear variant resources.
 *
 * Release any resources held by the variant (strings, container handles, etc.).
 * After clearing, the variant is reset to VT_EMPTY with all fields zeroed.
 *
 * Ownership rules:
 * - When a Variant is passed to a function (e.g. Array_Set, Map_Put), the function
 *   performs a deep copy. The caller retains ownership of the original Variant and
 *   is responsible for freeing its own resources (e.g. free(bstrVal) for strings,
 *   Release for container handles).
 * - When a Variant is returned from a function (e.g. Array_Get, Map_Get, CallMethod),
 *   the function performs a deep copy and the caller owns the returned Variant.
 *   The caller must call Variant_Clear exactly once to release the resources.
 * - Simple types (bool, i32, f64, etc.) do not hold heap resources and do not
 *   require Variant_Clear, though calling it is harmless.
 * - Variant_Clear must NOT be called on a shallow copy of another Variant.
 *   If Variant v2 = v1 is performed, only clear one of them.
 *
 * @param pVariant Indicates a pointer to variant to clear.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Variant_Clear(
    OH_AbilityRuntime_ModObjDispatcher_Variant* pVariant);

/**
 * @brief Create a modular object dispatcher instance from an IPC remote proxy for the main service interface.
 *
 * The type library metadata will be lazily loaded from the remote service on the first call
 * that requires it, such as HasTypeDescriptor, QueryMainServiceInterfaceMemIDsOfNames, or CallMethod.
 *
 * @param remoteProxy Indicates IPC remote proxy handle obtained from connectExtension.
 * @param ppModObjDispatcher Indicaktes a pointer to receive modular object dispatcher handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkNPARAM_INVALID} if remoteProxy or ppModObjDispatcher is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_CreateMainServiceInstance(
    OHIPCRemoteProxy* remoteProxy, OH_AbilityRuntime_ModObjDispatcherHandle* ppModObjDispatcher);

/**
 * @brief Create a sub-instance dispatcher bound to a mainService dispatcher.
 *
 * The sub-instance shares the mainService dispatcher's metadata but uses its own
 * IPC proxy. When CallMethod is invoked on the sub-instance, method metadata is
 * resolved from the mainService dispatcher and the call is sent through subProxy.
 *
 * @param mainServiceDispatcher Indicates mainService dispatcher handle.
 * @param subProxy Indicates IPC remote proxy for the non-mainService interface.
 * @param ppModObjDispatcher Indicates a pointer to receive the created sub-instance dispatcher handle.
 * @return Returns error code.
 *         {@link ABILITY/} if operation is successful.
 *         {@linkoPARAM_INVALID} if mainServiceDispatcher or subProxy
 *         or ppModObjDispatcher is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_CreateSubInstance(
    OH_AbilityRuntime_ModObjDispatcherHandle mainServiceDispatcher,
    OHIPCRemoteProxy* subProxy, OH_AbilityRuntime_ModObjDispatcherHandle* ppModObjDispatcher);

/**
 * @brief Release modular object dispatcher instance.
 *
 * @param ppModObjDispatcher Indicates a pointer to modular object dispatcher handle to release.
 *                   After release, handle will be set to NULL.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Release(OH_AbilityRuntime_ModObjDispatcherHandle* ppModObjDispatcher);

/**
 * @brief Check if the type library metadata is available from the remote service.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param pctinfo Indicates a pointer to receive support status (1 if suppLorted, 0 if not supported).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkIPARAM_INVALID} if pModObjDispatcher or pctinfo is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_HasTypeDescriptor(
    OH_AbilityRuntime_ModObjDispatcherHandle pModObjDispatcher, uint32_t* pctinfo);

/**
 * @brief Get type descriptor for querying interface metadata information.
 *
 * The type descriptor provides access to type library metadata including interfaces,
 * methods, enums, and structs defined in the remote service's type library.
 * Must call {@link OH_AbilityRuntime_TypeDescriptor_Release} to release the handle when no longer needed.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param ppTypeDescriptor Indicates a pointer to receive type descriptor handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkRPARAM_INVALID} if pModObjDispatcher or ppTypeDescriptor is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_GetTypeDescriptor(
    OH_AbilityRuntime_ModObjDispatcherHandle pModObjDispatcher,
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle* ppTypeDescriptor);

/**
 * @brief Query member IDs of method names in the main service interface.
 *
 * The returned member IDs can be used as the memID parameter in
 * {@link OH_AbilityRuntime_ModObjDispatcher_CallMethod}.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param rgszNames Indicates array of method names.
 * @param cNames Indicates number of names.
 * @param pMemID Indicates pointer to receive member IDs (MemberIDs).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkUPARAM_INVALID} if pModObjDispatcher or rgszNames or pMemID is null.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@link&} if name not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_QueryMainServiceInterfaceMemIDsOfNames(
    OH_AbilityRuntime_ModObjDispatcherHandle pModObjDispatcher, const char** rgszNames, uint32_t cNames,
    uint32_t* pMemID);

/**
 * @brief Call a method.
 *
 * @param pModObjDispatcher Indicates modular object dispatcher handle.
 * @param memID Indicates method member ID (MemberID).
 * @param pInputParams Indicates parameter structure containing arguments.
 * @param pResult Indicates pointer to receive result variant.
 * @param pMethodErrCode Indicates a pointer to receive the error code returned by the remote method.
 *                   0 if the method executed successfully, non-zero if the method returned an error.
 *                   This is independent of the framework-level return value.
 *                   This parameter can be NULL if the caller does not need the method-level error code.
 * @return Returns framework error code.
 *     
    {@link.} if IPC call is successful.
 *         {@linkYPARAM_INVALID} if pModObjDispatcher or pInputParams or pResult is null.
 *         {@link(} if method not found.
 *         {@linkQ)1} if parameter type mismatches.
 *         {@link+} if send request failed.
 *         {@linkQ} if!.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_CallMethod(
    OH_AbilityRuntime_ModObjDispatcherHandle pModObjDispatcher, uint32_t memID,
    OH_AbilityRuntime_ModObjDispatcher_InputParams* pInputParams,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pResult,
    int32_t* pMethodErrCode);

// ========== TypeDescriptor Interfaces ==========

/**
 * @brief Release TypeDescriptor instance.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_TypeDescriptor_Release(OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle *pTypeDescriptor);

/**
 * @brief Get version of the type library.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrVersion Indicates a buffer to receive version string.
 * @param cMaxVersion Indicates sizee of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkmPARAM_INVALID} if pTypeDescriptor or
 *          pbstrVersion is null, or cMaxVersion is 0.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetVersion(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrVersion, uint32_t cMaxVersion);

/**
 * @brief Get total number of interfaces.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcInterfaces Indi\cates a pointer to receive interface count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkLPARAM_INVALID} if pTypeDescriptor or pcInterfaces is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcInterfaces);

/**
 * @brief Get interface name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates interface index, ranging from 0 to
 *              (interface count - 1) obtained from {@link OH_AbilityRuntime_TypeDescriptor_GetInterfaceCount}.
 * @param pbstrName Indicates a buffer to receive interface name.
 * @param cMaxName Indicates size of buffer in bytes, inMcluding the null terminator.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null,
 *          or cMaxName is 0, or index is out of range.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index,
    char* pbstrName, uint32_t cMaxName);

/**
 * @brief Check if interface is a callback type.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates interface name.
 * @param pIsCallback Indicates a pointer to receive callback flag (true if callbGack, false otherwise).
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pTypeDescriptor or pbstrName or pIsCallback is null.
 *         {@link3TERNAL} if internal error occurs.
 *         {@link} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetInterfaceIsCallback(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrName, bool* pIsCallback);

/**
 * @brief Get main service interface name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrName Indicates a buffer to receive main service interface name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMainServiceInterfaceName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method count from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pcMethods Indicates a pointer to receive method count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkkPARAM_INVALID} if pTypeDescriptor or
 *          pbstrInterfaceName or pcMethods is null.
 *         {@link3TERNAL} if internal error occurs.
 *         {@link} if interface not found.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t* pcMethods);

/**
 * @brief Get method name by index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param index Indicates method index, ranging from 0 to (method count - 1)
 *              obtained from {@link OH_AbilityRuntime_TypeDescriptor_GetMethodCount}.
 * @param pbstrName Indicates a buffer to receive method name.
 * @param cMaxName Indicates size of buffer in bytes, including the null terminator.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *         pbstrName is null, or cMaxName is 0, or index is out of range.
 *         {@link+} if interface not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, uint32_t index, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get method MemberID by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pMemID Indicates a pointer to receive method MemberID.
 * @return Returns error code.
 *         {@link AB/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *          pbstrMethodName or pMemID is null.
 *         {@link ABI5} if interface or method not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodMemberId(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pMemID);

/**
 * @brief Get method return type by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pReturnType Indicates a pointer to receive return type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *          pbstrMethodName or pReturnType is null.
 *         {@link5} if interface or method not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodReturnType(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pReturnType);

/**
 * @brief Get method parameter count by name from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param pcParams Indicates a pointer to receive parameter coun3t.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *          pbstrMethodName or pcParams is null.
 *         {@link A5} if interface or method not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName, uint32_t* pcParams);

/**
 * @brief Get method parameter type by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pParamType Indicates a pointer to receDive parameter type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *          pbstrMethodName or pParamType is null, or iParamIndex is  out of range.
 *         {@link5} if interface or method not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamType(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pParamType);

/**
 * @brief Get method parameter name by name and index from interface.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrInterfaceName Indicates interface name.
 * @param pbstrMethodName Indicates method name.
 * @param iParamIndex Indicates parameter index.
 * @param pbstrName Indicates a buffer to receive parameter name.
 * @param cMaxName Indicates size of buffer.
 *. @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrInterfaceName or
 *          pbstrMethodName or pbstrName is null, or iParamIndex is out of range.
 *         {@link5} if interface or method not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetMethodParamName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor,
    const char* pbstrInterfaceName, const char* pbstrMethodName,
    uint32_t iParamIndex, char* pbstrName, uint32_t cMaxName);

// ========== Enum Queries ==========

/**
 * @brief Get enum count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pcEnums Indicates a pointer Gto receive enum count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkGPARAM_INVALID} if pTypeDescriptor or pcEnums is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcEnums);

/**
 * @brief Get enum name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates enum index.
 * @param pbstrName Indicates a buffer to receive enum name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *      	   {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null,
 *          or cMaxName is 0, or index is out of range.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index,
    char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get enum value count by enum name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pcValues Indicates a pointer to receive enum value count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkYPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pcValues is null.
 *         {@link&} if enum not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValueCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName,
    uint32_t* pcValues);

/**
 * @brief Get enum value name by enum name and value index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param iValueIndex Indicates enum value index.
 * @param pbstrValueName Indicates a buffer to receive enum value name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or pbstrValueName
 *          is null, or iValueIndex is out of range.
 *         {@link&} if enum not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValueName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName,
    uint32_t iValueIndex, char* pbstrValueName, uint32_t cMaxName);

/**
 * @brief Get enum value by enum name and value name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrEnumName Indicates enum name.
 * @param pbstrValueName Indicates enum value name.
 * @param pValue Indicates a pointer to receive enum value.
 * @return Returns error code.
 *         {@link ABILI/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrEnumName or
 *          pbstrValueName or pValue is null.
 *         {@link ABILITY_R,} if enum value not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetEnumValue(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrEnumName,
    const char* pbstrValueName, int32_t* pValue);

/**
 * @brief Get struct count.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @plaram pcStructs Indicates a pointer to receive struct count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkIPARAM_INVALID} if pTypeDescriptor or pcStructs is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t* pcStructs);

/**
 * @brief Get struct name by index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param index Indicates struct index.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrName is null, or cMaxName is 0,
 *          or index is out of range.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, uint32_t index,
    char* pbstrName, uint32_t cMaxName);

/**
 * @brief Get struct field count by struct name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pcFields Indicates a pointer to receive field count.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link[PARAM_INVALID} if pTypeDescriptor or pbstrStructName or pcFields is null.
 *         {@link(} if struct not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldCount(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName,
    uint32_t* pcFields);

/**
 * @brief Get struct field name by struct name and field index.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param iFieldIndex Indicates field index.
 * @param pbstrFieldName Indicates a buffer to receive field name.
 * @param cMaxName Indicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrStructName or
 *          pbstrFieldName is null, or iFieldIndex is out of range.
 *         {@link(} if struct not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldName(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName,
    uint32_t iFieldIndex, char* pbstrFieldName, uint32_t cMaxName);

/**
 * @brief Get struct field type by struct name and field name.
 *
 * @param pTypeDescriptor Indicates TypeDescriptor handle.
 * @param pbstrStructName Indicates struct name.
 * @param pbstrFieldName Indicates field name.
 * @param pFieldType Indicates a pointer to receive field type.
 * @return Returns error code.
 *     
    {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pTypeDescriptor or pbstrStructName or pbstrFieldName
 *          or pFieldType is null.
 *         {@link ABI'} if field not found.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_TypeDescriptor_GetStructFieldType(
    OH_AbilityRuntime_ModObjDispatcher_TypeDescriptorHandle pTypeDescriptor, const char* pbstrStructName,
    const char* pbstrFieldName, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pFieldType);

/**
 * @brief Create an array instance.
 *
 * @param elementType Indicates element type.
 * @param size Indicates initial array size.
 * @param ppArray Indicates a pointer to recCeive array handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if elementType or ppArray is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Array_Create(
    OH_AbilityRuntime_ModObjDispatcher_TypeInfo *elementType, uint32_t size,
    OH_AbilityRuntime_ModObjDispatcher_ArrayHandle* ppArray);

/**
 * @brief Get array element type.
 *
 * @param pArray Indicates array handle.
 * @param pElementType IndicatVes a pointer to receive element type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Array_GetElementType(
    OH_AbilityRuntime_ModObjDispatcher_ArrayHandle pArray, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pElementType);

/**
 * @brief Set an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkXPARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 *         {@linkQ)} if element type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Array_Set(
    OH_AbilityRuntime_ModObjDispatcher_ArrayHandle pArray, uint32_t index,
    const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get an array element value.
 *
 * @param pArray Indicates array handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link /} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Array_Get(
    OH_AbilityRuntime_ModObjDispatcher_ArrayHandle pArray, uint32_t index,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get array size.
 *
 * @param pArray Indicates array handle.
 * @param p`Size Indicates a pointer to receive array size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pArray or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Array_GetSize(
    OH_AbilityRuntime_ModObjDispatcher_ArrayHandle pArray, uint32_t* pSize);

/**
 * @brief Release array instance.
 *
 * @param ppArray Indicates array handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Array_Release(OH_AbilityRuntime_ModObjDispatcher_ArrayHandle* ppArray);

/**
 * @brief Create a vector instance.
 *
 * @param elementType Indicates element type.
 * @param ppVector Indicates a pointer to receive vector handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkDPARAM_INVALID} if elementType or ppVector is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_Create(
    OH_AbilityRuntime_ModObjDispatcher_TypeInfo *elementType,
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle* ppVector);

/**
 * @brief Get vector element type.
 *
 * @param pVector Indicates vector handle.
 * @param pElementType Indicates a poinMter to receive element type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_GetElementType(
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle pVector, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to vector.
 *
 * @param pVector Indicates vector handle.
 * @param pValue I]ndicates a pointer to element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link>PARAM_INVALID} if pVector or pValue is null.
 *         {@linkQ)/} if element type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_Add(
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle pVector, const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get a vector element value.
 *
 * @param pVector Indicates vector handle.
 * @param index Indicates element index.
 * @param pValue Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUN/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_Get(
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle pVector, uint32_t index,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get vector size.
 *
 * @param pVector Indicates vector handle.
 * @hparam pSize Indicates a pointer to receive vector size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_GetSize(
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle pVector, uint32_t* pSize);

/**
 * @brief Clear vector.
 *
 *Y @param pVector Indicates vector handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pVector is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Vector_Clear(
    OH_AbilityRuntime_ModObjDispatcher_VectorHandle pVector);

/**
 * @brief Release vector instance.
 *
 * @param ppVector Indicates vector handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Vector_Release(OH_AbilityRuntime_ModObjDispatcher_VectorHandle* ppVector);

/**
 * @brief Create a set instance.
 *
 * @param elementType Indicates element type.
 * @param ppSet Indicates a pointer to receive set handle.
 * @return Returns error code.
 *         {@link ABILITY_RUNTIM/} if operation is successful.
 *         {@linkAPARAM_INVALID} if elementType or ppSet is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_Create(
    OH_AbilityRuntime_ModObjDispatcher_TypeInfo *elementType, OH_AbilityRuntime_ModObjDispatcher_SetHandle* ppSet);

/**
 * @brief Get set element type.
 *
 * @param pSet Indicates set handle.
 * @param pElementType Indicates a pointer to receive element7 type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pElementType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_GetElementType(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pElementType);

/**
 * @brief Add an element to set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer toH element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link;PARAM_INVALID} if pSet or pValue is null.
 *         {@linkQ)/} if element type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_Add(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Remove an element from set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value varian3t.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_Remove(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Check if an element exists in set.
 *
 * @param pSet Indicates set handle.
 * @param pValue Indicates a pointer to element value variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_Contains(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue,
    bool* pExists);

/**
 * @brief Get set size.
 *
 * @param pSet Indicates set handle.
 * @param pSize Indicates a poiJnter to receive set size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_GetSize(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, uint32_t* pSize);

/**
 * @brief Get a set element value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_ModObjDispatcher_Variant_Clear} to release it.
 *
 * @param pSet Indicates set handle.
 * @param index Indicates element index.
 * @param pValuhe Indicates a pointer to receive element value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_GetAt(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet, uint32_t index,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Clear set.
 *
 * @param pSet Indicates set handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pSet is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Set_Clear(
    OH_AbilityRuntime_ModObjDispatcher_SetHandle pSet);

/**
 * @brief Release set instance.
 *
 * @param ppSet Indicates set handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Set_Release(OH_AbilityRuntime_ModObjDispatcher_SetHandle* ppSet);

/**
 * @brief Create a map instance.
 *
 * @param keyType Indicates key type. Only basic types are supported, such as
 *              j-MOD_OBJ_DISPATCHER_VT_BOOL},
 *              j,MOD_OBJ_DISPATCHER_VT_I32},
 *              j3MOD_OBJ_DISPATCHER_VT_STRING},
 *               andjMOD_OBJ_DISPATCHER_VT_ENUM}.
 *               Container types (ARRAY, VECTOR, SET, MAP) and complex types
 *               (STRUCT, IPC_REMOTE_PROXY, IPC_REMOTE_STUB) are not supported.
 * @param valueType Indicates value type.
 * @param ppMap Indicates Qa pointer to receive map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@link?PARAM_INVALID} if valueType or ppMap is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_Create(
    OH_AbilityRuntime_ModObjDispatcher_ValueType keyType, OH_AbilityRuntime_ModObjDispatcher_TypeInfo *valueType,
    OH_AbilityRuntime_ModObjDispatcher_MapHandle* ppMap);

/**
 * @brief Get map key type.
 *
 * @param pMap Indicates map handle.
 * @paramc pKeyType Indicates a pointer to receive key type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKeyType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_GetKeyType(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, OH_AbilityRuntime_ModObjDispatcher_ValueType* pKeyType);

/**
 * @brief Get map value type.
 *
 * @param pMap Indicates map handle.
 * @param pValueType Indicates a pointer to receive v;alue type.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pValueType is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_GetValueType(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, OH_AbilityRuntime_ModObjDispatcher_TypeInfo* pValueType);

/**
 * @brief Put a key-value pair into map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to value variant.
 * @return Returns error code.
 *         {@link ABILITY_R/} if operation is successful.
 *         {@linkCPARAM_INVALID} if pMap or pKey or pValue is null.
 *         {@linkQ)4} if key or value type mismatches.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_Put(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, const OH_AbilityRuntime_ModObjDispatcher_Variant* pKey,
    const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get a value from map by key.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pValue Indicates a pointer to receive value variant.
 * @return R$eturns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey or pValue is null,
 *          or key is not found in map.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_Get(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, const OH_AbilityRuntime_ModObjDispatcher_Variant* pKey,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Remove a key-value pair from map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_Remove(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, const OH_AbilityRuntime_ModObjDispatcher_Variant* pKey);

/**
 * @brief Check if a key exists in map.
 *
 * @param pMap Indicates map handle.
 * @param pKey Indicates a pointer to key variant.
 * @param pExists Indicates a pointer to receive existence flag.
 * @return Returns error code.
 *         {@link ABILITY_RUNTI/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey or pExists is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_ContainsKey(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, const OH_AbilityRuntime_ModObjDispatcher_Variant* pKey,
    bool* pExists);

/**
 * @brief Get map size.
 *
 * @param pMap Indicates map handle.
 * @param pSize Indicates a poinIter to receive map size.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pSize is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_GetSize(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, uint32_t* pSize);

/**
 * @brief Get a map key by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_ModObjDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pKey Indicates a Ppointer to receive key variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pKey is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_GetKeyAt(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pKey);

/**
 * @brief Get a map value by index.
 *
 * The returned variant is a deep copy owned by the caller.
 * Caller must call {@link OH_AbilityRuntime_ModObjDispatcher_Variant_Clear} to release it.
 *
 * @param pMap Indicates map handle.
 * @param index Indicates entry index.
 * @param pValue Indicates a pointer to receive value variant.
 * @retur'n Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap or pValue is null, or index is out of bounds.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_GetValueAt(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap, uint32_t index,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Clear map.
 *
 * @param pMap Indicates map handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pMap is null.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Map_Clear(
    OH_AbilityRuntime_ModObjDispatcher_MapHandle pMap);

/**
 * @brief Release map instance.
 *
 * @param ppMap Indicates map handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Map_Release(OH_AbilityRuntime_ModObjDispatcher_MapHandle* ppMap);

/**
 * @brief Create a struct instance.
 *
 * @param structName Indicates struct name from type metadata.
 * @plaram ppStruct Indicates a pointer to receive struct handle.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkCPARAM_INVALID} if structName or ppStruct is null.
 *         {@linkTERNAL} if internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Struct_Create(
    const char* structName, OH_AbilityRuntime_ModObjDispatcher_StructHandle* ppStruct);

/**
 * @brief Get struct name.
 *
 * @param pStruct Indicates struct handle.
 * @param pbstrName Indicates a buffer to receive struct name.
 * @param cMaxName IndGicates size of buffer.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkPARAM_INVALID} if pStruct or pbstrName is null, or cMaxName is 0.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Struct_GetName(
    OH_AbilityRuntime_ModObjDispatcher_StructHandle pStruct, char* pbstrName, uint32_t cMaxName);

/**
 * @brief Set a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to field value variant.
 * @return Returns error code.
 *         {@link ABILITY_RUN/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link4} if field is not found in struct.
 *         {@linkQ)} if field type mismatches.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Struct_SetField(
    OH_AbilityRuntime_ModObjDispatcher_StructHandle pStruct, const char* szName,
    const OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Get a struct field value.
 *
 * @param pStruct Indicates struct handle.
 * @param szName Indicates field name.
 * @param pValue Indicates a pointer to receive field value variant.
 * @return Returns error code.
 *         {@link/} if operation is successful.
 *         {@linkHPARAM_INVALID} if pStruct or szName or pValue is null.
 *         {@link} if field is not found in struct.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjDispatcher_Struct_GetField(
    OH_AbilityRuntime_ModObjDispatcher_StructHandle pStruct, const char* szName,
    OH_AbilityRuntime_ModObjDispatcher_Variant* pValue);

/**
 * @brief Release struct instance.
 *
 * @param ppStruct Indicates struct handle to release.
 * @since 26.0.0
 */
void OH_AbilityRuntime_ModObjDispatcher_Struct_Release(OH_AbilityRuntime_ModObjDispatcher_StructHandle* ppStruct);
#ifA/** @} */
#endif // OHOS_ABILITY_RUNTIME_C_MOD_OBJ_DISPATCHER_H

G̢xxX᭄31\#MUnion of type-specific metadata. The valid member is determined by {@link vt}#H%&v*.L
    *"6>	
    *"*.L/
    *"0*.+# 
.*.d\!`i090CleaQJ)x3CleaQJ)T8<ul>
 *      <li>bG</li>
 *      <li>y4;*</li>
 *      <li>EE</li>
 *      </ul>qR;<ul>
 *      <li>bG</li>
 *      <li>y4M?*;</li>
 *      <li>EE</li>
 *      </ul>qR;A@'<ul>
 *      <li>bG</li>
 *      <li>q6D#</li>
 *      <li>MN</li>
 *      <li>E"N6</li>
 *      <li>EE</li>
 *      </ul>qREp<ul>
 *      <li>bG</li>
 *      <li>q6H,</li>
 *      <li>MN</li>
 *      <li>E"N6</li>
 *      <li>EE</li>
 *      </ul>qRAJm<ul>
 *      <li>bG</li>
 *      <li>q6DiM</li>
 *      <li>MN</li>
 *      <li>E"N6</li>
 *      <li>y#N</li>
 *      <li>EE</li>
 *      </ul>qR>O`<ul>
 *      <li>b/R</li>
 *      <li>q6D9InputParams or
 *      pResult is null.</li>
 *      <li>y#S</li>
 *      <li>E"mT</li>
 *      <li>MN</li>
 *      <li>E"N6</li>
 *      <li>EE</li>
 *      </ul>qRUF<ul>
 *      <li>bG</li>
 *      <li>yF
 *Y0</li>
 *      <li>EE</li>
 *      </ul>qA]pZ@<ul>
 *      <li>bG</li>
 *      <li>yHj\</li>
 *      <li>EE</li>
 *      </ul>qA]A<ul>
 *      <li>bG</li>
 *      <li>yL`cĉ+</li>
 *      <li>EE</li>
 *      </ul>qA]a<ul>
 *      <li>bG</li>
 *      <li>yL`c/
 *      pIsCallback is null.</li>
 *      <li>EE</li>
 *      <li>y#r
n
</li>
 *      </ul>qA]dy<ul>
 *      <li>bG</li>
 *      <li>yL`cĉ.</li>
 *      <li>EE</li>
 *      </ul>qA]|g}<ul>
 *      <li>bG</li>
 *      <li>yF
 *     pi</li>
 *      <li>EE</li>
 *      <li>y#r
n
</li>
 *      </ul>qA]_sljy<ul>
 *      <li>bG</li>
 *      <li>yeAn></li>
 *      <li>y#r
n
</li>
 *      <li>EE</li>
 *      </ul>qA]_so<ul>
 *      <li>bG</li>
 *      <li>ye6r"</li>
 *      <li>y#r</li>
 *      <li>EE</li>
 *      </ul>qA]_s<ul>
 *      <li>bG</li>
 *      <li>ye6r0v</li>
 *      <li>y#r</li>
 *      <li>EE</li>
 *      </ul>qA]_sPw<ul>
 *      <li>bG</li>
 *      <li>ye6rNz</li>
 *      <li>y#r</li>
 *      <li>EE</li>
 *      </ul>qA]_sop{<ul>
 *      <li>bG</li>
 *      <li>yef~F</li>
 *      <li>y#r</li>
 *      <li>EE</li>
 *      </ul>qA]_so<ul>
 *      <li>bG</li>
 *      <li>ye6rF</li>
 *      <li>y#r</li>
 *      <li>EE</li>
 *      </ul>qA]_so<ul>
 *      <li>bG</li>
 *      <li>yH͆</li>
 *      <li>EE</li>
 *      </ul>qAЍh<ul>
 *      <li>bG</li>
 *      <li>yL`cĉ+</li>
 *      <li>EE</li>
 *      </ul>qAЍx<ul>
 *      <li>bG</li>
 *      <li>W{	#pcValues is null.</li>
 *      <li>y#/</li>
 *      <li>EE</li>
 *      </ul>qAЍ<ul>
 *      <li>bG</li>
 *      <li>Y(</li>
 *      <li>y#/</li>
 *      <li>EE</li>
 *      </ul>qAЍߑ<ul>
 *      <li>bG</li>
 *      <li>W{	!</li>
 *      <li>y#/"value not found.</li>
 *      <li>EE</li>
 *      </ul>qAЍG<ul>
 *      <li>bG</li>
 *      <li>yH#cStructs is null.</li>
 *      <li>EE</li>
 *      </ul>qA]fv<ul>
 *      <li>bG</li>
 *      <li>yL`c#ƚ</li>
 *      <li>EE</li>
 *      </ul>qA]<ul>
 *      <li>bG</li>
 *      <li>yL,
 *      pcFields is null.</li>
 *      <li>y#'</li>
 *      <li>EE</li>
 *      </ul>qA]۞<ul>
 *      <li>bG</li>
 *      <li>yL
 *=</li>
 *      <li>y#'</li>
 *      <li>EE</li>
 *      </ul>qA]۞<ul>
 *      <li>bG</li>
 *      <li>yL@
 *      pbstrFieldName or pFieldType is null.</li>
 *      <li>y#"field not found.</li>
 *      <li>EE</li>
 *      </ul>qA]۞¦<ul>
 *      <li>bG</li>
 *      <li>y4- Array is null.</li>
 *      <li>EE</li>
 *      </ul>qRArrayF<ul>
 *      <li>bG</li>
 *      <li>y5
</li>
 *      </ul>qRArrayQ<ul>
 *      <li>bG</li>
 *      <li>y5
 *bounds.</li>
 *      <li>E"m*</li>
 *      </ul>qRArraySep*޴/*<ul>
 *      <li>bG</li>
 *      <li>y5
 *bounds.</li>
 *      </ul>qRArrayGep*޴/߱<ul>
 *      <li>bG</li>
 *      <li>y5
 Size is null.</li>
 *      </ul>qRArray0޴/B*ݴ<ul>
 *      <li>bG</li>
 *      <li>y4-!Vector is null.</li>
 *      <li>EE</li>
 *      </ul>qREP<ul>
 *      <li>bG</li>
 *      <li>@</li>
 *      </ul>qR7<ul>
 *      <li>bG</li>
 *      <li>N</li>
 *      <li>E"m*</li>
 *      <li>EE</li>
 *      </ul>qRAQ<ul>
 *      <li>bG</li>
 *      <li>M,
 *bounds.</li>
 *      </ul>qRGet*<ul>
 *      <li>bG</li>
 *      <li>@</li>
 *      </ul>qR0Bj<ul>
 *      <li>bG</li>
 *      <li><is null.</li>
 *      </ul>qRCleaQJ)¨B*÷<ul>
 *      <li>bG</li>
 *      <li>y4-</li>
 *      <li>EE</li>
 *      </ul>qU<ul>
 *      <li>bG</li>
 *      <li>=</li>
 *      </ul>qU7Oi<ul>
 *      <li>bG</li>
 *      <li>C=.</li>
 *      <li>E"m*</li>
 *      <li>EE</li>
 *      </ul>qUA,OZˎ<ul>
 *      <li>bG</li>
 *      <li>C=.</li>
 *      </ul>qU _<ul>
 *      <li>bG</li>
 *      <li>V</li>
 *      </ul>qU<ul>
 *      <li>bG</li>
 *      <li>= Size is null.</li>
 *      </ul>qU0Oҁ<ul>
 *      <li>bG</li>
 *      <li>C=#</li>
 *      </ul>qUGetAp*OԖ<ul>
 *      <li>bG</li>
 *      <li>9is null.</li>
 *      </ul>qUCleaQJ)֫B*
׳<ul>
 *      <li>bG</li>
 *      <li>y4</li>
 *      <li>EE</li>
 *      </ul>U/>	<ul>
 *      <li>bG</li>
 *      <li>qM</li>
 *      </ul>UGetKey_-/W<ul>
 *      <li>bG</li>
 *      <li>q=</li>
 *      </ul>U=J<ul>
 *      <li>bG</li>
 *      <li>q@9</li>
 *      <li>E"m</li>
 *      <li>EE</li>
 *      </ul>UP<ul>
 *      <li>bG</li>
 *      <li>q@9,
 *!</li>
 *      </ul>UGe:<<ul>
 *      <li>bG</li>
 *      <li>q@	</li>
 *      </ul>U //6Ya	<ul>
 *      <li>bG</li>
 *      <li>q@j</li>
 *      </ul>UContainsKey9<T<ul>
 *      <li>bG</li>
 *      <li>q=</li>
 *      </ul>U<ul>
 *      <li>bG</li>
 *      <li>q@</li>
 *      </ul>UGetKey|`
uD<ul>
 *      <li>bG</li>
 *      <li>q=h)</li>
 *      </ul>U<ul>
 *      <li>bG</li>
 *      <li>q9is null.</li>
 *      </ul>UCleaQJ).B*.
<ul>
 *      <li>bG</li>
 *      <li>y4=</li>
 *      <li>EE</li>
 *      </ul>qS%<ul>
 *      <li>bG</li>
 *      <li>6-</li>
 *      </ul>qSGeta-<ul>
 *      <li>bG</li>
 *      <li>6u"</li>
 *      <li>y#</li>
 *      <li>E"m</li>
 *      </ul>qSSetFieldq) <ul>
 *      <li>bG</li>
 *      <li>6u"</li>
 *      <li>y#</li>
 *      </ul>qSGetFieldq)U#`0	AB*Y]I8x\4/*
* Copyright (C) 2024-2025+theEethe&the License at
 *
 *themT=^the definition of the C interface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file L
 *
 * @brief The file declares the error codes of the AbilityRuntime moduleq|I13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H8IEnumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
!"9Operation successful.
     *
     * @since 13
     */
   M$W = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
   ]ERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
   )\ = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
   MT_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIMMjSUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
   @[CORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *!"@VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 0N]TATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *!"@CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILI@CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
  	   */
   @fWUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
   @CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNT@CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNT@EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.$
     *
     * @since 15
     */
   @_CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
   @$^ = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
   MT_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
 
    */
   @VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
   OULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILIT@VALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
   @UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
  	   */
   @MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
   @APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
   @GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    ABNTART_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
   OAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
    &MRUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
     *!"@[UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *!"@UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The requested property, method, enum, or struct member is not found.
     *!" -d = 16000173,
    /**
     * The runtime value type does not match the expected metadata type.
     *!"r(. = 16000174,
    /**
     * The IPC request toC fails.
     *!"N.Q = 16000175,
    /**
     * Caller and target are not in the same application forA$LAUNCH_MODE_IN_PROCESS} mode.
     *!"@-CROSS_APP_IN_PROCESS = 16000176,
    /**
 	  9.V
=, for example, missing or duplicate main interface.
 	   *
 	
	   */
   O, = 16000178,
} !K;
.
/** @} */
#endif // ABILITY_RUNTIME_COMMON_H
yxe4h3	OV\>9WH1{b 㰈x# Copyright (c) 2024-2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/ohos.gni")
import("//build/ohos/ndk/ndk.gni")
ohos_ndk_headers("ability_runtime_ndk_header") {
  dest_dir = "$ndk_headers_out_dir/AbilityKit/ability_runtime"
  sources = [
    "./ability_runtime_common.h",
    "./application_context.h",
    "./connect_options.h",
    "./context.h",
    "./context_constant.h",
    "./extension_ability.h",
    "./modular_object_dispatcher.h",
    "./modular_object_extension_ability.h",
    "./modular_object_extension_context.h",
    "./modular_object_extension_manager.h",
    "./native_ability_wrapper.h",
    "./start_options.h",
  ]
}

ohos_ndk_library("libability_runtime") {
  output_name = "ability_runtime"
  output_extension = "so"
  system_capability = "SystemCapability.Ability.AbilityRuntime.Core"
  ndk_description_file = "./libability_runtime.ndk.json"
  min_compact_version = "13"
  system_capability_headers = [
    "AbilityKit/ability_runtime/ability_runtime_common.h",
    "AbilityKit/ability_runtime/application_context.h",
    "AbilityKit/ability_runtime/connect_options.h",
    "AbilityKit/ability_runtime/context.h",
    "AbilityKit/ability_runtime/context_constant.h",
    "AbilityKit/ability_runtime/extension_ability.h",
    "AbilityKit/ability_runtime/modular_object_dispatcher.h",
    "AbilityKit/ability_runtime/modular_object_extension_ability.h",
    "AbilityKit/ability_runtime/modular_object_extension_context.h",
    "AbilityKit/ability_runtime/modular_object_extension_manager.h",
    "AbilityKit/ability_runtime/native_ability_wrapper.h",
    "AbilityKit/ability_runtime/start_options.h",
  ]
}
xk<,d97w,cr'[IOV`'eO! PExk)_PYQ`d`dQҒIN+3 DCI_?43'E??#X/=/SIKaB1ԒԒ" CISKA!$>/17UVA	Y,rXeyPXU'/`,*蜟[XZ⛘Z
SUHe\||jE>zJ:@(@Hq|IeA*TG,W-ȣy))E c.Ƥ/Dq #w.x;KRY9(3=DA#YSLDlbM+I+OMJMX"
,GUIE$>9?77?O/CIKPuħ'UV 9ř)(ʯJOcDKɞ\"Et	RK\S2K򋔀ŧ'e `Ƭ*LF&#Yk	cj ᤟Jx;ý!yrf'ٌ&`  j
'x;ϻ!yr)sf}G]Ngn 	kNxǳ!y7`jEIj^qf~^|bRfNfItYU'۳bJelU:x3gCE2MndV̷y;~Fd66/X&_`5U 6x]msڸ_~IݷN)8O	0i<[cym9H$&uf[>9GeZ -c6	r |KrH2¨9	HPOc"f#׃_9HnHp>u?HbS2w$䂤	,!PBx4(`nL$MEIcp.$?ћVkX4])lV%1\MӿR%q#s f.;)^LpzN>7Hg8{bnHN1Sm91MnڣQoE#m邴='|(F@L{&\Dcj4uL-CЈD4=>	؜	WCBFVCOcF=fQ
6yU8ftx`%$="-v~Rw	ÀySAYK%"syXz80Q=41W(W-RHnC]+	#>32&s#b-ATu.kv
'?	xdB͞irF3W!2mi;'?PҊxOD,^<:V	m-է%Cs6g1DH
p(d)4q(HwC`)z}69bEE@J|O8,"7vdN&"CTQAŌy3Ă4Qt);qGn$EQJ>G/MchSݒ́:5F|EٜIعTa&WH3FBk8t։HP; r0|/K%6@Hd<
78 `x:If5j}UH:rpK̭RFC@n4r^C A9Qxcd3(#?x+XEMV؎i+masM,&X\(Am[%>ozx1|0l(Et8qp.ҹPGL.NPoƍ,!M~z\eh'Q./%uQ܁^~,FI/Slx꾨ί#W[Yy>",CK
Ys9oWk8^TRU[6UoocZcI%9z,!rD\K6rH $V7Ar1dMj4 hM %)УNrLLζVjX9 )M P?"<Ɩ[jl9ت,^mfA9ʶXj`9\hbnxzT`İRjH9SZ\&K y{;!ɜ]`uf&OS<<tj!(QNg#yWhtmj1W^8=ٮg<i?7eGctR1Nx<wub3D>/,/j!Owʴ,5!so-q?^UA N\$O!Ϻ# W[2QcYם˕WV!ް,ev5f3b؟F J	HVcժLM6,ĥ9ZǋR#1SKZ7?+,2$;nQJMSZl1U^H1nzMDHzDU+	0"yIFYǫZY=41]4܊2U@QCq!{=Ӣd; hV41rzi;#ݹDϐ3@;T*gŝ%a:u uqymb_|10D(8L51Ƨ2<.$)SՍfNq$[
vQVku%բ$R'߻	udk`ܻCl"kJ_V4<ٲISY'tu''/ߕAm!NVc)L%\_"ne 'KT/ieض	kZ wV<msiۀ~m(ej<JvgWtA;ڽڙ}ю ҎmvkiGOovwϑóB[ݵo]u+F|AnZDTpMwg*#Wa0K\1`/WߓrFot
8Y-WK[]eL{`z8^[h))f&fqKs6QבE+g3OOs}>%@wnYG/79MKǕð=1m~Cͪ
˯q3(K9_nςFJ8;Sw^L0ف^vӦZrQ;(SH=D6v00wՋ<[Z+ȩoi9=	d9o?Rs =ƪjTH@u}|-m/bvsrKTWݿ!pn(3*_Ͻ 33333GXگݳW>{<yDylIyS䪺9<:s"'fUm}8BWoc][\-KkO78i${5XM^>1gW/ , 3. -h$'7NĀZ)McH`iq7j8P/(qxa^*/a+f!7a`*gIC?^׾hIMM_sEj&ӄ$Ә88)?+*ՆM{+}M7+5^xW*b]U+6	,R^0)R!G\#,sYy
Dm: Sk)*n,6E⎴Zde P-uM;W&x% DD^[OEdCX]/E"H0Zxrq9<&l)k1N~D]66]>V<-( 'GxYOlUR@S?+vTQPn%@K](og>?̛֊M`0<`ţ5xD4ѓoM73MK}}_nK $@o Z1Æ}5SH2MṨygF@҈<k %4$@K\X?U6(HK4e~ƞv~hk(*
w%~HcڈehL^WC7'QFoVT0hwp]Mou46
0etܶ@ű:XêfLKA?e7, P5O3hC9cD[UDﶵ5k[oKIqz[O=:^92V傡mS+eb,e1+QCmz#		L@V%3/LvdwɌ$;?GR+gM-lz/rڤzStG_s@$1]NK[70{,'.$
2uː@*+YJ4R]R]n'_wOy@#l6"h8LV#Z\<%,ih(97xQfXs#pi\ܙ&Z<	5!&~Pĸ/o?4>#`~!s]g< &5-h<z9eK8bbm	*8Y ~9Z7M%SJG\3cdtgEKpйEcp`K6hǺ=sdh|h$m7[<Bçj{BG5bBz㛇~$V@djHpDa@Yd+p\Kn}t6͆s8z?QB=&P:R=dReUW6VPJ
~=E.X=<7}9,UIXLE6&Zou{,c7l_W|Pjv_u:TҮsRn,kc)JȺR=x&`@w+6]&vXd IlD)JlztN7[C:[r0<S}!X]iyJ,g[h;׭K5?-陱1?&<\LY/Ezcʀ)4)DDĎ@{ݶ/H)_?Ɓ <8,Aak# j3dAtyG=pR({M)xyDӠ],HIaOs$He2DDeE7umPmP.Cz,DNǅ#"[ťslۮ
Ebzlv?ۍQI?D;``w`+} o5+lXmBIڞܱ-2?DmkxMfb.aċʑ
lBm:qq;`tGLd@:/F#Ey9]xoE<gy0i(P 8j6थTM=꾺;8q@*BB?#GNHp3$]?q
$sIﱳ{7~nD}OGۖDUb"MUV&rN6?1GFUF4Qʒ$w3d4ylNͽA2Q,4I*&3-4,գH;B5~vrDޘe\^mGhfahJku-s<<{-GHLʠW1(#ghTK8 0:5P*RT0K&(|mH OOg鑻P)7rC.5#bC!q"jp{|EX\nKT)XԨc7`f(i`Sj#~au8m ΖUvs/R^Ks+><&ѨR{ՁgݠEz[:_R;o;otmT>bjQ1-"a&L0;Hg_oN$6W)*SmI-!k)De&ұi`nr~yl+<aft-&S
reIa<6_&mwLsQ~!aH'BMjRc<^SJ42T;K4"<s
k`":bQ\l,8>teFɋdRxDh76wJ;79:*\Oi
?)jߣ4{=\Vu'8jB!-=swqE^-VOba>}'b®LӘըnZ2?#=CLQJ͂g]JN*U\tNL%TMc=Ϻvq״__^]{._[JlN<_Y+D*w;I
WiE;zul`9{"'%]/bW˾q$khCtf1x=9&av}Ԥ.En$CM慁w.խ>w<ӥ֪M7_m_BWGKfKftUmkjmM,;w{%.uS}]R6yb_uŅ6橑J.T%j(S;D>xXoEV`Z#-mݩh8Bh4c['E z6  ܀? nܸrE	q8 npofw؎
D;<p=粽={_rDF:.0b*ʖ4"&NQ0*ZlXk
fؤbfm(딘0mz6'!
%^OP3s41o>,YMʍKͥ~<oOVYϧMgBpu"pO?;/EtdoWK[kX{	__;(Ud[9Ī6FC,])_
RH{dTS7pgԄ`Qk(Ĥ^TuuD!`z3Jq,*:VUGJ7aX&kǂ1uxv<_/O5%%9RFDiR3	p%k%QQA6xH2?yF#K!ЁIh;c(sMF*84)67Sl9^YўkܚdS<{m0>1ȳQyf)>Ե)ܝD+ͅA_yx% I~n%eL~2#w>9ԫ<#=py<*~[;e;>/CԵma>rԕ|>Z/9XEMSLr47*~ywexi^Hub]IiI֗ӳҼޗ̑Q`czD$)G^>%IK4s{1?us)ʿ=?a7I*-9]Qs+!%;x.0obBLXXk4脉J!9y`na>QX@"40
VyI{@T"%D:}M]`0-(myYeNC&1 A\7Yn9މTQn`Q5v 0K	!2VkF¤^Syj,MsLV5?U4Ƚk\pͪdec>"'Hʧ6&;][Lr\G@J<GBz`Uѩ"e*v3$9f뭆1QE4YqeGSY]GO.fٰ&zS*Uwe4qBU` %BaJ}.&/MatoƭuTq(:َ%WkZ{ZVF]nW>n*Q.9"D3Fk.RQE}Y>3Ѯ߸*"QA 8[O^Z˻RCx+n[ăQ+AD=[3kQIjb{zE]k0ߢlI[A[IE.rYwY@ hJ>Xvpܶ")z>نK_hNE_bgTx[F=at'`=ya)\
Z
p0yBqirBbBZbfNjBIBbrrjqBJjAj^Jj^rBn~JiN)R g!Lm;x[j=#R-|SxVkA&Mcӵ"MԄF[Dm!6u4fgA%	ţ^ٻyWfctf{7{3i/&c! !D U2#H*6cBQZAW!t/̲iNXP_*<,V)t720Cc^I׳kJJ#XnTe&"0QJQS3AU57rU^+EFz(gQhiB[*ym(@^0lG
D5 aU9!Mi߾q̢EtExw&{ɆUywl##A$懿9N0Ɂ[NBZttӇ
'|ל|sc&$k!z|{t)/ǓgmJC6@->uRtbl}v*TEߎ_vax0 6j 횽y;[QY'Pv rCMձ	1oT-ndЃt.ԅ~䥄n5Mس1&?@%N{,C og9--H]VSfwڲ+7NaaϜ
C9g`h]uǘoh]eǳ^Z[+[S0`v9nx~($X*	Պ}}?+.V @`x[q,Xn`
 p#Gx@Rfmanager.
 *Q'manager26manageroMANAGER/4MANAGER_H

#include <stddef.h>mnconnecLthe pointer`Info.
 *Q7Info*q".InfoHandle;

/**
 * @brief Defines the pointer`"AllModularObjectExtensionInfos.
 *Q!AllModularObjectExtensionInfos*q@AllModObjExtensionInfosHandle;

/**
 * @brief The launch mode ofPenumqLaunchMode {
    /**
     * @brief All extensions under the same bundle share a single process.
     * @since 26.0.0
     */
  M  OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS = 0,

    /**
     * @brief Allow ies to be started across processes.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_LAUNCH_MODE_CROSS_PROCESS = 1,
} OH_Abix.LaunchMode;

/**
 * @brief The process mode ofPenumq'ProcessMode {
    /**
     * @brief Alls under the same bundle share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_BUNDLE = 0,

    /**
     * @brief M!s with the same name share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_TYPE = 1,

    /**
     * @brief Eachginstance is a process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_INSTANCE = 2,
}q.ProcessMode;

/**
 * @brief The thread mode ofPenumq&ThreadMode {
    /**
     * @brief Alls under the same bundle share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_BUNDLE = 0,

    /**
     * @brief M!s with the same name share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_TYPE = 1,

    /**
     * @brief Eacheinstance is a thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_INSTANCE = 2,
}q	ThreadModlaunch mode from"info.
 *
 * @param extensionInfo Tq info from which to get the launch mode.
 * @param launchMode The launch mode obtained from the extension info.
 * @return Retu%MV&
1P8U='GetModularObjectExtensionInfoLaunchMode('InfoHandle extensionInfo,qLaunchMode *launchMode)process mode from"info.
 *
 * @param extensionInfo Tqk info to get the process mode from.
 * @param processMode The process mode obtained from the extension info%MV&
1P8U=(GetModularObjectExtensionInfoProcessMode('InfoHandle extensionInfo,qProcessMode *processMode)thread mode from"info.
 *
 * @param extensionInfo Tqh info to get the thread mode from.
 * @param threadMode The thread mode obtained from the extension info%MV&
1P8U='GetModularObjectExtensionInfoThreadMode('InfoHandle extensionInfo,q=ThreadMode *threadMode);

/**
 * @brief Gets elementName from"info.
 *
 * @param extensionInfo Tqg info to get the element name from.
 * @param element The element name obtained from the extension info%MV&
1P8U=(GetModularObjectExtensionInfoElementName('5InfoHandle extensionInfo, AbilityBase_Element *elemen+	disable state ofextensionInfo Tq; info.
 * @param isDisabled Whether the extension is disabl%MV&
1P8U=)GetModularObjectExtensionInfoDisableState('HInfoHandle extensionInfo, bool *isDisabled);

/**
 * @brief Acquires allinfos within the self application.
 *
 * @param outOwnedAllExtensionInfos Information about all extensions within the self application%MV&
1P.
 * @releas4ReleaseAllExtensionInfos {outOwnedAllExtensionInfos}QA&AcquireSelfModularObjectExtensionInfos(dAllModObjExtensionInfosHandle *outOwnedAllExtensionInfos);

/**
 * @brief Releases the specified all-infos.
 *
 * @param allExtensionInfos The allinfos to be releas%MV&
1P8@se&AcquireSelfModularObjectExtensionInfosQAReleaseAllExtensionInfos(1AllModObjExtensionInfosHandle *allExtensionInfos)exact count ofminfos present in the collection.
 *
 * @param allExtensionInfos The handle representing the collection of allXinfos.
 * @param count Return value to receive the count of extensions in the collection%MV&
1P8U=#GetCountFromAllModObjExtensionInfos(=AllModObjExtensionInfosHandle allExtensionInfos, size_t *counRetrieves a specificinfo handle from the collection by its index.
 *
 * @param allExtensionInfos Information about all extensions within the self application.
 * @param index The index of the extension to retrieve. Must be strictly less than the count.
 * @param extensionInfo The retrieved single#info handle for the specified index%MV&
1P8U=GetModObjExtensionInfoByIndex(>AllModObjExtensionInfosHandle allExtensionInfos, size_t index,(&2InfoHandle *extensionInfo);

/**
 * @brief Connectq	&>.
 *
 * @param want Indicates the service extension to connect	4param connectOptions Indicates the connection options.
 * @param connectionId Indicates the connection id that is a output param%MPconnecting modular
 *         H0DVISIBILITY_VERIFICATION_FAILED} - Cannot start an invisible componen11JSTATIC_CFG_PERMISSION} The specified process does not have
            the
;~5USER_OPERATION} Cross-user operations are not allowed+o lRThe number of instances with the same
 *          ability name is more than twenty+ kNO_RUNNING_ABILITIES_WITH_UI} if the target application does not have
 *          running abilities with UI+ `UPPER_RATE_LIMIT} The API call frequency is too high and
 *          exceeds 20 times per second+ UPPER_CONNECTION_NUMBER_LIMIT} The number of connections to
 *          the same ability name from the same pid exceeds five.
 5._IN_PROCESS} Caller and target are not in the
 *          same application for {@link OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS} modePB%ConnectModularObjectExtensionAbility((QConnectOptions *connectOptions, int64_t *connectionId);

/**
 * @brief Disconnecto	7.
 *
 * @param connectionId Indicates the connection ID%MPc*=<DisconnectModularObjectExtensionAbility(int64_t connectionId(^
MANAGER_H
i x;qFQ7Hnnwc RKx;qFQ7n. Sj?x/s8FLyɩ
F&՘1lfe`d4,Z $Y'Nvd g4y2Pdι`)et)} )̜ɂ|,@%,VY*v2:;2t9d6J3+`8Au5Xj	"WH+LED7w"$-&ngp_| @ x-sd#ɎlY&oH9,̕ϻ$șZZ<Y/!-.`BSt-XhB]rX$ V&& ⪫?UK7i02D6e+Y p`/%KG$3W¸f =dXxs%g cdA87`g,.-͔_4IKtsiN cxs%gC3mS q'	x-s*3d5{&YY$9 5(3z!g+0ʚ(̲\,*"PXe,5ܙ 6-q0b5zyy`7 /x'WrC''_fbL] PDxU=KPQ\I
I,)-Zj:krHn½7K'	`g8yǵEOΉB0@3FUu*Z9LcqV>;ͅ)b4}
,Zty`0QBfz<ߨ.1A&%TLAP	ba;8{<[sŶn}w|׽3N2!+vGՠvZsPT$IDreբP?"KfYoHwwL32`V z"pxMKQIT%-ZMFENh5Ї6|1BZ> ڴ*whٟDu.=ys}p5v[)ܼ"BB6BɽAn^&B03pٿ=I~ǉ%OGr~8;t0!{(@vзQ0+˓U.=Ys]k1[`
Rr+\ADJL{D_HtA`6BqbN+ұeԭeT  G6u`Mk^5*t52QJ܋]Bdi.SP("GRh,Iכ\oi_x[Yh5F'ا _g x[YqdSuIҼĢԒ"4Ģ̼
"sS阔YRh-w> ɉ	@{JRKڃ[v{@qb
 *Sx ͤΤ<5'<	2(FS
Ex_4jd{VnҢKSKrSJsRH (1*藘
*zE1gE&&#ɌʮAU.Ey%
EZHl/ 69Fx_t&vFJɋY6sF)3M^7y5;YP"a09VL229<=|\'Ӕ,V+,LIm4D^4(X8H!1)3'p\-ZƶL`Q*0<H2}t@,&Me
 Tx_toF\[X,7s*Me
 s")x_t)vFJɋY6s~U1I#)&oBM4L^O0GO  Gɺ	ɱ.f
LW%	:fBf^YfqfRNPGm`נ&EźũE
I9%%jY2eOV06Dzua{d49O[(4$375><1DAHNf	 O ^]<x;{3vDĤ̜̒Xl 
Fax;0tC+E,x؋RK'+؛Y˙&A%ELnP<EDtr^* FlixMksv'3 '<xIcr*dmE֓&M!f;jfD d,b۵rlt0Y ,'c7(k:FtY%cx5zWF\7[:2CD< Ĺ0!0f|<a5#v y8?xOkA)KOR{&`=mU&aw3i3<sGW+ՓWqMB,9a<}~,߮hv[>ݤ,11r>~t}u}uݳUpa +HH ʬˈIlJorZP{[s^Q^sGֶ7ud	c\CJ@		K6?vޛ;[pBAaj?L	ayWLӂ਺B^U[pI$/YY,Eȏc>]y2UhM41UIjvkWQ%2״1@%ZEJ!Fl7(z1--ɩYz_U~Mm'\Z*mKge|5YcVfyw1v%L{bfvwUY7Mh#0<_x_hd'D7G:29D<@]&Y()9ϩ
 T!!xxq[vnۜAɲn ^x  /*
 * Copyright (c) 2024-2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup ArkUI_NativeModule
 * @{
 *
 * @brief Provides UI capabilities of ArkUI on the native side, such as UI component creation and destruction,
 * tree node operations, attribute setting, and event listening.
 *
 * @since 12
 */

/**
 * @file native_type.h
 *
 * @brief Defines the common types for the native module.
 *
 * @library libace_ndk.z.so
 * @syscap SystemCapability.ArkUI.ArkUI.Full
 * @kit ArkUI
 * @since 12
 */

#ifndef ARKUI_NATIVE_TYPE_H
#define ARKUI_NATIVE_TYPE_H

#include <stdint.h>

#include "drawable_descriptor.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines the ArkUI native component object.
 *
 * @since 12
 */
struct ArkUI_Node;

/**
 * @brief Defines the pointer type of the ArkUI node content
 *
 * @since 12
 */
typedef struct ArkUI_NodeContent* ArkUI_NodeContentHandle;

/**
 * @brief Defines the custom dialog box controller of ArkUI on the native side.
 *
 * @since 12
 */
struct ArkUI_NativeDialog;

/**
 * @brief Sets the size constraints of a component during component layout.
 *
 * @since 12
 */
typedef struct ArkUI_LayoutConstraint ArkUI_LayoutConstraint;

/**
 * @brief Defines the structure of the component drawing context.
 *
 * @since 12
 */
typedef struct ArkUI_DrawContext ArkUI_DrawContext;

/**
 * @brief Defines the pointer to the ArkUI native component object.
 *
 * @since 12
 */
typedef struct ArkUI_Node* ArkUI_NodeHandle;

/**
 * @brief Defines the pointer to the custom dialog box controller of ArkUI on the native side.
 *
 * @since 12
 */
typedef struct ArkUI_NativeDialog* ArkUI_NativeDialogHandle;

/**
 * @brief Defines information about gesture collection interception.
 *
 * @since 26.0.0
 */
typedef struct ArkUI_GestureCollectInterceptInfo ArkUI_GestureCollectInterceptInfo;

/**
 * @brief Defines the return value structure for the <b>onGetIrregularSizeByIndex</b> callback
 * in <b>Grid</b> layout options.
 *
 * @since 22
 */
typedef struct {
    /** Number of rows occupied by the <b>GridItem</b> component. */
    uint32_t rowSpan;
    /** Number of columns occupied by the <b>GridItem</b> component. */
    uint32_t columnSpan;
} ArkUI_GridItemSize;

/**
 * @brief Defines the return value structure for the <b>onGetRectByIndex</b> callback in <b>Grid</b> layout options.
 *
 * @since 22
 */
typedef struct {
    /** Starting row position of the <b>GridItem</b> component. */
    uint32_t rowStart;
    /** Starting column position of the <b>GridItem</b> component. */
    uint32_t columnStart;
    /** Number of rows occupied by the <b>GridItem</b> component. */
    uint32_t rowSpan;
    /** Number of columns occupied by the <b>GridItem</b> component. */
    uint32_t columnSpan;
} ArkUI_GridItemRect;

/**
 * @brief Enumerates the selected indicator type of picker.
 *
 * @since 23
 */
typedef enum {
    /** background. */
    ARKUI_PICKER_INDICATOR_BACKGROUND = 0,
    /** divider. */
    ARKUI_PICKER_INDICATOR_DIVIDER = 1,
} ArkUI_PickerIndicatorType;

/**
 * @brief Style parameters of background indicator.
 *
 * @since 23
 */
typedef struct {
    /**  background color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t backgroundColor;
    /** radius of the top left corner. */
    float topLeftRadius;
    /** radius of the top right corner */
    float topRightRadius;
    /** radius of the bottom left corner */
    float bottomLeftRadius;
    /** radius of the bottom right corner. */
    float bottomRightRadius;
} ArkUI_PickerIndicatorBackground;

/**
 * @brief Style parameters of divider indicator.
 *
 * @since 23
 */
typedef struct {
    /** stroke width */
    float strokeWidth;
    /** divider color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t dividerColor;
    /** the distance between the divider and the beginning of the side of the picker (unit: vp). */
    float startMargin;
    /** the distance between the divider and the end of the side of the picker (unit: vp). */
    float endMargin;
} ArkUI_PickerIndicatorDivider;

/**
 * @brief Definition of indicator style.
 *
 * @since 23
 */
typedef struct ArkUI_PickerIndicatorStyle ArkUI_PickerIndicatorStyle;

/**
 * @brief Defines the <b>Grid</b> layout options.
 *
 * @since 22
 */
typedef struct ArkUI_GridLayoutOptions ArkUI_GridLayoutOptions;

/**
 * @brief Defines the water flow section configuration.
 *
 * @since 12
 */
typedef struct ArkUI_WaterFlowSectionOption ArkUI_WaterFlowSectionOption;

/**
 * @brief Define the configuration information of the Item within the ListitemSwipeActionOption method.
 *
 * @since 12
 */
typedef struct ArkUI_ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem;

/**
 * @brief Define the configuration information for the ListitemSwipeActionOption method.
 *
 * @since 12
 */
typedef struct ArkUI_ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption;

/**
 * @brief Defines the ArkUI native context object.
 *
 * @since 12
 */
struct ArkUI_Context;

/**
  * @brief Defines the pointer to the context instance object pointer definition of ArkUI on the native side.
  *
  * @since 12
  */
typedef struct ArkUI_Context* ArkUI_ContextHandle;

/**
 * @brief Defines the navigation indicator style for the swiper.
 *
 * @since 12
 */
typedef struct ArkUI_SwiperIndicator ArkUI_SwiperIndicator;

/**
 * @brief Defines the digital indicator style for the swiper.
 *
 * @since 19
 */
typedef struct ArkUI_SwiperDigitIndicator ArkUI_SwiperDigitIndicator;

/**
 * @brief Defines the arrow style for the swiper.
 *
 * @since 19
 */
typedef struct ArkUI_SwiperArrowStyle ArkUI_SwiperArrowStyle;

/**
* @brief Define the data objects of styled string supported by text components.
*
* @since 14
*/
typedef struct ArkUI_StyledString_Descriptor ArkUI_StyledString_Descriptor;

/**
  * @brief specifies the alignment rules for subcomponents set in relative containers.
  *
  * @since 12
  */
typedef struct ArkUI_AlignmentRuleOption ArkUI_AlignmentRuleOption;

/**
  * @brief guideLine parameters, used to define the id, direction and position of the guideline.
  *
  * @since 12
  */
typedef struct ArkUI_GuidelineOption ArkUI_GuidelineOption;

/**
  * @brief barrier parameter, used to define the id,
  * direction and components of the barrier that it depends on when generating it.
  *
  * @since 12
  */
typedef struct ArkUI_BarrierOption ArkUI_BarrierOption;

/**
 * @brief Define the ChildrenMainSize class information for a List.
 *
 * @since 12
*/
typedef struct ArkUI_ListChildrenMainSize ArkUI_ListChildrenMainSize;

/**
 * @brief Defines the image frame.
 *
 * @since 12
*/
typedef struct ArkUI_ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfo;

/**
 * @brief Defines the accessibility state for the component.
 *
 * @since 12
 */
typedef struct ArkUI_AccessibilityState ArkUI_AccessibilityState;

/**
 * @brief Defines the accessibility value for the component.
 *
 * @since 12
 */
typedef struct ArkUI_AccessibilityValue ArkUI_AccessibilityValue;

/**
 * @brief Define the information of the Custom Property class for custom properties.
 *
 * @since 14
 */
typedef struct ArkUI_CustomProperty ArkUI_CustomProperty;

/**
 * @brief Define the information of the HostWindowInfo class for window properties.
 *
 * @since 15
 */
typedef struct ArkUI_HostWindowInfo ArkUI_HostWindowInfo;

/**
 * @brief Define ActiveChildenInfo class information.
 *
 * @since 14
 */
typedef struct ArkUI_ActiveChildrenInfo ArkUI_ActiveChildrenInfo;

/**
 * @brief Set the linear progress indicator style.
 *
 * @since 15
 */
typedef struct ArkUI_ProgressLinearStyleOption ArkUI_ProgressLinearStyleOption;

/**
 * @brief The cross-language option.
 *
 * @since 15
 */
typedef struct ArkUI_CrossLanguageOption ArkUI_CrossLanguageOption;

/**
 * @brief Declares the Ability base want.
 *
 * @since 20
 */
typedef struct AbilityBase_Want AbilityBase_Want;

/**
 * @brief Define the EmbeddedComponentOption for the EmbeddedComponent.
 *
 * @since 20
 */
typedef struct ArkUI_EmbeddedComponentOption ArkUI_EmbeddedComponentOption;

/**
 * @brief Define the Edges describing the position of a component by distances to the container's four edges.
 *
 * @since 21
 */
typedef struct ArkUI_PositionEdges ArkUI_PositionEdges;

/**
 * @brief Defines the PixelRound policy of a component's four edges.
 *
 * @since 21
 */
typedef struct ArkUI_PixelRoundPolicy ArkUI_PixelRoundPolicy;

/**
 * @brief Defines the textField's counter configuration.
 *
 * @since 22
 */
typedef struct ArkUI_ShowCounterConfig ArkUI_ShowCounterConfig;

/**
 * @brief Defines the matrix4 object.
 *
 * @since 24
 */
typedef struct ArkUI_Matrix4 ArkUI_Matrix4;

/**
 * @brief Defines the text content base controller.
 *
 * @since 23
 */
typedef struct ArkUI_TextContentBaseController ArkUI_TextContentBaseController;

/**
 * @brief Defines the selected drag preview style configuration.
 * @since 23
 */
typedef struct ArkUI_SelectedDragPreviewStyle ArkUI_SelectedDragPreviewStyle;

/**
 * @brief Defines the event callback type.
 *
 * @since 12
 */
typedef struct {
    /** Custom type, data of a user-defined type that is passed as a parameter during callbacks. */
    void* userData;
    /** Event callback. */
    void (*callback)(void* userData);
} ArkUI_ContextCallback;
/**
 * @brief Provides the number types of ArkUI in the native code.
 *
 * @since 12
 */
typedef union {
    /** Floating-point type, used to store a floating-point value. */
    float f32;
    /** Signed integer, used to store a signed integer value. */
    int32_t i32;
    /** Unsigned integer, used to store an unsigned integer value. */
    uint32_t u32;
} ArkUI_NumberValue;

/**
 * @brief Enumerates the alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** Top start. */
    ARKUI_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_ALIGNMENT_BOTTOM_END,
} ArkUI_Alignment;

/**
 * @brief Enumerates the image repeat patterns.
 *
 * @since 12
 */
typedef enum {
    /** The image is not repeatedly drawn. */
    ARKUI_IMAGE_REPEAT_NONE = 0,
    /** The image is repeatedly drawn only along the x-axis. */
    ARKUI_IMAGE_REPEAT_X,
    /** The image is repeatedly drawn only along the y-axis. */
    ARKUI_IMAGE_REPEAT_Y,
    /** The image is repeatedly drawn along both axes. */
    ARKUI_IMAGE_REPEAT_XY,
} ArkUI_ImageRepeat;

/**
 * @brief Enumerates the font styles.
 *
 * @since 12
 */
typedef enum {
    /** Standard font style. */
    ARKUI_FONT_STYLE_NORMAL = 0,
    /** Italic font style. */
    ARKUI_FONT_STYLE_ITALIC
} ArkUI_FontStyle;

/**
 * @brief Enumerates the font weights.
 *
 * @since 12
 */
typedef enum {
    /** 100 */
    ARKUI_FONT_WEIGHT_W100 = 0,
    /** 200 */
    ARKUI_FONT_WEIGHT_W200,
    /** 300 */
    ARKUI_FONT_WEIGHT_W300,
    /** 400 */
    ARKUI_FONT_WEIGHT_W400,
    /** 500 */
    ARKUI_FONT_WEIGHT_W500,
    /** 600 */
    ARKUI_FONT_WEIGHT_W600,
    /** 700 */
    ARKUI_FONT_WEIGHT_W700,
    /** 800 */
    ARKUI_FONT_WEIGHT_W800,
    /** 900 */
    ARKUI_FONT_WEIGHT_W900,
    /** The font weight is bold. */
    ARKUI_FONT_WEIGHT_BOLD,
    /** The font weight is normal. */
    ARKUI_FONT_WEIGHT_NORMAL,
    /** The font weight is bolder. */
    ARKUI_FONT_WEIGHT_BOLDER,
    /** The font weight is lighter. */
    ARKUI_FONT_WEIGHT_LIGHTER,
    /** The font weight is medium. */
    ARKUI_FONT_WEIGHT_MEDIUM,
    /** The font weight is normal. */
    ARKUI_FONT_WEIGHT_REGULAR,
} ArkUI_FontWeight;

/**
 * @brief Enumerates the text alignment mode.
 *
 * @since 12
 */
typedef enum {
    /** Aligned with the start. */
    ARKUI_TEXT_ALIGNMENT_START = 0,
    /** Horizontally centered. */
    ARKUI_TEXT_ALIGNMENT_CENTER,
    /** Aligned with the end. */
    ARKUI_TEXT_ALIGNMENT_END,
    /** Aligned with both margins. */
    ARKUI_TEXT_ALIGNMENT_JUSTIFY,
    /** Aligned with left to right.
     * @since 23
     */
    ARKUI_TEXT_ALIGNMENT_LEFT_TO_RIGHT = 4,
    /** Aligned with right to left.
     * @since 23
     */
    ARKUI_TEXT_ALIGNMENT_RIGHT_TO_LEFT = 5,
} ArkUI_TextAlignment;

/**
 * @brief Enumerates text vertical alignment styles.
 *
 * @since 20
 */
typedef enum {
    /** Aligned to the baseline. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE = 0,
    /** Bottom aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_BOTTOM,
    /** Center aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_CENTER,
    /** Top aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_TOP,
} ArkUI_TextVerticalAlignment;

/**
 * @brief Enumerates text content align styles.
 *
 * @since 21
 */
typedef enum {
    /** Top aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_TOP = 0,
    /** Center aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_CENTER = 1,
    /** Bottom aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_BOTTOM = 2,
} ArkUI_TextContentAlign;

/**
 * @brief Enumerates the text text direction.
 *
 * @since 23
 */
typedef enum {
    /** The text direction is left to right. */
    ARKUI_TEXT_DIRECTION_LTR = 0,
    /** The text direction is right to left. */
    ARKUI_TEXT_DIRECTION_RTL = 1,
    /** The text direction follows the component layout. */
    ARKUI_TEXT_DIRECTION_DEFAULT = 2,
    /** The text direction follows the actual text. */
    ARKUI_TEXT_DIRECTION_AUTO = 3,
} ArkUI_TextDirection;

/**
 * @brief Enumerates the types of the Enter key for a single-line text box.
 *
 * @since 12
 */
typedef enum {
    /** The Enter key is labeled "Go." */
    ARKUI_ENTER_KEY_TYPE_GO = 2,
    /** The Enter key is labeled "Search." */
    ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
    /** The Enter key is labeled "Send." */
    ARKUI_ENTER_KEY_TYPE_SEND,
    /** The Enter key is labeled "Next." */
    ARKUI_ENTER_KEY_TYPE_NEXT,
    /** The Enter key is labeled "Done." */
    ARKUI_ENTER_KEY_TYPE_DONE,
    /** The Enter key is labeled "Previous." */
    ARKUI_ENTER_KEY_TYPE_PREVIOUS,
    /** The Enter key is labeled "New Line." */
    ARKUI_ENTER_KEY_TYPE_NEW_LINE,
} ArkUI_EnterKeyType;

/**
 * @brief Enumerates the text input types.
 *
 * @since 12
 */
typedef enum {
    /** Normal input mode. */
    ARKUI_TEXTINPUT_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
    /** Password input mode. */
    ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
    /** Numeric password input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
    /** Lock screen password input mode. */
    ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
    /** Username input mode. */
    ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
    /** New password input mode. */
    ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
    /** Number input mode with a decimal point. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_DECIMAL = 12,
    /**
     * One time code input mode.
     * @since 20
     */
    ARKUI_TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextInputType;

/**
 * @brief Enumerates the text box types.
 *
 * @since 12
 */
typedef enum {
    /** Normal input mode. */
    ARKUI_TEXTAREA_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTAREA_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTAREA_TYPE_EMAIL = 5,
    /**
     * One time code input mode.
     * @since 20
     */
    ARKUI_TEXTAREA_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextAreaType;

/**
 * @brief Enumerates the styles of the Cancel button.
 *
 * @since 12
 */
typedef enum {
    /** The Cancel button is always displayed. */
    ARKUI_CANCELBUTTON_STYLE_CONSTANT = 0,
    /** The Cancel button is always hidden. */
    ARKUI_CANCELBUTTON_STYLE_INVISIBLE,
    /** The Cancel button is displayed when there is text input. */
    ARKUI_CANCELBUTTON_STYLE_INPUT,
} ArkUI_CancelButtonStyle;

/**
 * @brief Enumerates the types of the <b><XComponent></b> component.
 *
 * @since 12
 */
typedef enum {
    /** The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
    ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
    /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
      * of the component.
      */
    ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
} ArkUI_XComponentType;

/**
 * @brief Enumerates the styles of the progress indicator.
 *
 * @since 12
 */
typedef enum {
    /** Linear style. */
    ARKUI_PROGRESS_TYPE_LINEAR = 0,
    /** Indeterminate ring style. */
    ARKUI_PROGRESS_TYPE_RING,
    /** Eclipse style. */
    ARKUI_PROGRESS_TYPE_ECLIPSE,
    /** Determinate ring style. */
    ARKUI_PROGRESS_TYPE_SCALE_RING,
    /** Capsule style. */
    ARKUI_PROGRESS_TYPE_CAPSULE,
} ArkUI_ProgressType;

/**
 * @brief Enumerates the text decoration types.
 *
 * @since 12
 */
typedef enum {
    /** No text decoration. */
    ARKUI_TEXT_DECORATION_TYPE_NONE = 0,
    /** Line under the text. */
    ARKUI_TEXT_DECORATION_TYPE_UNDERLINE,
    /** Line over the text. */
    ARKUI_TEXT_DECORATION_TYPE_OVERLINE,
    /** Line through the text. */
    ARKUI_TEXT_DECORATION_TYPE_LINE_THROUGH,
} ArkUI_TextDecorationType;

/**
 * @brief Enumerates the text decoration styles.
 *
 * @since 12
 */
typedef enum {
    /** Single solid line. */
    ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
    /** Double solid line. */
    ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
    /** Dotted line. */
    ARKUI_TEXT_DECORATION_STYLE_DOTTED,
    /** Dashed line. */
    ARKUI_TEXT_DECORATION_STYLE_DASHED,
    /** Wavy line. */
    ARKUI_TEXT_DECORATION_STYLE_WAVY,
} ArkUI_TextDecorationStyle;

/**
 * @brief Enumerates the text cases.
 *
 * @since 12
 */
typedef enum {
    /** The original case of the text is retained. */
    ARKUI_TEXT_CASE_NORMAL = 0,
    /** All letters in the text are in lowercase. */
    ARKUI_TEXT_CASE_LOWER,
    /** All letters in the text are in uppercase. */
    ARKUI_TEXT_CASE_UPPER,
} ArkUI_TextCase;

/**
 * @brief Enumerates the text copy and paste modes.
 *
 * @since 12
 */
typedef enum {
    /** Copy is not allowed. */
    ARKUI_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
    ARKUI_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_CopyOptions;

/**
 * @brief Enumerates the shadow types.
 *
 * @since 12
 */
typedef enum {
    /** Color. */
    ARKUI_SHADOW_TYPE_COLOR = 0,
    /** Blur. */
    ARKUI_SHADOW_TYPE_BLUR
} ArkUI_ShadowType;

/**
 * @brief Enumerates the modes of the date picker.
 *
 * @since 18
 */
typedef enum {
    /** A mode that displays the date in months, days of month, and years. */
    ARKUI_DATEPICKER_MODE_DATE = 0,
    /** A mode that displays the date in months and years. */
    ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
    /** A mode that displays the date in months and days of the month. */
    ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
} ArkUI_DatePickerMode;

/**
 * @brief Enumerates the types of the text picker.
 *
 * @since 12
 */
typedef enum {
    /** Single-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_SINGLE = 0,
    /** Multi-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_MULTI,
    /** Single-column text picker with image resources. */
    ARKUI_TEXTPICKER_RANGETYPE_RANGE_CONTENT,
    /** Interconnected multi-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT,
} ArkUI_TextPickerRangeType;

/**
 * @brief Defines the input structure of the single-column text picker with image resources.
 *
 * @since 12
 */
typedef struct {
    /** Image resource. */
    const char* icon;
    /** Text information. */
    const char* text;
} ARKUI_TextPickerRangeContent;

/**
 * @brief Defines the input structure of the interconnected multi-column text picker.
 *
 * @since 12
 */
typedef struct {
    /** Text information. */
    const char* text;
    /** Interconnected data. */
    const ARKUI_TextPickerRangeContent* children;
    /** Size of the interconnected data array. */
    int32_t size;
} ARKUI_TextPickerCascadeRangeContent;

/**
 * @brief Enumerates the effects used at the edges of the component when the boundary of the scrollable content is
 * reached.
 *
 * @since 12
 */
typedef enum {
    /** Spring effect. When at one of the edges, the component can move beyond the bounds based on the initial
     *  speed or through touches, and produces a bounce effect when the user releases their finger. */
    ARKUI_EDGE_EFFECT_SPRING = 0,
    /** Fade effect. When at one of the edges, the component produces a fade effect. */
    ARKUI_EDGE_EFFECT_FADE,
    /** No effect after the scrollbar is moved to the edge. */
    ARKUI_EDGE_EFFECT_NONE,
} ArkUI_EdgeEffect;

/**
 * @brief Enumerates the status of the scroll bar.
 *
 * @since 22
 */
typedef enum {
    /** Not displayed. */
    ARKUI_BAR_STATE_OFF = 0,
    /** On-demand display. */
    ARKUI_BAR_STATE_AUTO = 1,
    /** Resident display. */
    ARKUI_BAR_STATE_ON = 2,
} ArkUI_BarState;

/**
 * @brief Enumerates the edges for which the effect takes effect when the boundary of the scrollable content is reached.
 *
 * @since 18
 */
typedef enum {
    /** Start edge. */
    ARKUI_EFFECT_EDGE_START = 1,
    /** End edge. */
    ARKUI_EFFECT_EDGE_END = 2,
} ArkUI_EffectEdge;

/**
 * @brief Enumerates the focus wrap mode of components.
 *
 * @since 20
 */
typedef enum {
    /** Default mode, where focus does not wrap when arrow keys are used. */
    ARKUI_FOCUS_WRAP_MODE_DEFAULT = 0,
    /** Focus wraps automatically when arrow keys are used. */
    ARKUI_FOCUS_WRAP_WITH_ARROW = 1,
} ArkUI_FocusWrapMode;

/**
 * @brief Specifies the number of columns for different responsive breakpoint specifications.
 *
 * @since 22
 */
typedef enum {
    /** No responsive breakpoint configuration. */
    ARKUI_ITEMFILLPOLICY_NONE = -1,
    /**
     * Default responsive layout:
     * <b>List</b> or <b>Swiper</b> component: 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger).
     * <b>Grid</b> or <b>WaterFlow</b> component: 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger).
     */
    ARKUI_ITEMFILLPOLICY_DEFAULT = 0,
    /** 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM1MD2LG3 = 1,
    /** 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM2MD3LG5 = 2,
} ArkUI_ItemFillPolicy;

/**
 * @brief Enumerates the grid item alignment modes.
 *
 * @since 22
 */
typedef enum {
    /** Use the default alignment mode of the grid. */
    GRID_ITEM_ALIGNMENT_DEFAULT = 0,
    /** Set the height of all grid items in a row to match the height of the tallest item in that row. */
    GRID_ITEM_ALIGNMENT_STRETCH = 1,
} ArkUI_GridItemAlignment;

/**
 * @brief Enumerates styles of grid items.
 *
 * @since 22
 */
typedef enum {
    /** No style. */
    GRID_ITEM_STYLE_NONE = 0,
    /** Hover or press style. */
    GRID_ITEM_STYLE_PLAIN = 1,
} ArkUI_GridItemStyle;

/**
 * @brief Enumerates the scroll directions for the <b><Scroll></b> component.
 *
 * @since 12
 */
typedef enum {
    /** Only vertical scrolling is supported. */
    ARKUI_SCROLL_DIRECTION_VERTICAL = 0,
    /** Only horizontal scrolling is supported. */
    ARKUI_SCROLL_DIRECTION_HORIZONTAL,
    /** Scrolling is not allowed. */
    ARKUI_SCROLL_DIRECTION_NONE = 3,
    /**
     * Free scrolling in both directions.
     *
     * @since 20
     */
    ARKUI_SCROLL_DIRECTION_FREE = 4,
} ArkUI_ScrollDirection;

/**
 * @brief Enumerates the alignment modes of list items when scrolling ends.
 *
 * @since 12
 */
typedef enum {
    /** No alignment. This is the default value. */
    ARKUI_SCROLL_SNAP_ALIGN_NONE = 0,
    /** The first item in the view is aligned at the start of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_START,
    /** The middle items in the view are aligned in the center of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_CENTER,
    /** The last item in the view is aligned at the end of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_END,
} ArkUI_ScrollSnapAlign;

/**
 * @brief Enumerates the scroll snap animation speeds for lists.
 *
 * @since 22
 */
typedef enum {
    /** Normal scroll snap animation speed. */
    ARKUI_SCROLL_SNAP_ANIMATION_NORMAL = 0,
    /** Slow scroll snap animation speed. */
    ARKUI_SCROLL_SNAP_ANIMATION_SLOW = 1,
} ArkUI_ScrollSnapAnimationSpeed;

/**
 * @brief Enumerates the scrollbar display modes.
 *
 * @since 12
 */
typedef enum {
    /** Hide. */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF = 0,
    /** Display on demand (displays when the screen is touched and disappears after 2s). */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO,
    /** Always display. */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_ON,
} ArkUI_ScrollBarDisplayMode;

/**
 * @brief Enumerates the scroll directions for the <b><List></b> component.
 *
 * @since 12
 */
typedef enum {
    /** Only vertical scrolling is supported. */
    ARKUI_AXIS_VERTICAL = 0,
    /** Only horizontal scrolling is supported. */
    ARKUI_AXIS_HORIZONTAL,
} ArkUI_Axis;

/**
 * @brief Enumerates the modes for pinning the header to the top or the footer to the bottom.
 *
 * @since 12
 */
typedef enum {
    /** In the list item group, the header is not pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_NONE = 0,
    /** In the list item group, the header is pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_HEADER = 1,
    /** In the list item group, the footer is pinned to the bottom, and the header is not pinned to the top. */
    ARKUI_STICKY_STYLE_FOOTER = 2,
    /** In the list item group, the footer is pinned to the bottom, and the header is pinned to the top. */
    ARKUI_STICKY_STYLE_BOTH = 3,
} ArkUI_StickyStyle;

/**
 * @brief Enumerates the content clipping modes of scrollable components.
 *
 * @since 18
 */
typedef enum {
    /** clip by content */
    ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY = 0,
    /** clip by boundary */
    ARKUI_CONTENT_CLIP_MODE_BOUNDARY,
    /** clip by safe area padding */
    ARKUI_CONTENT_CLIP_MODE_SAFE_AREA,
} ArkUI_ContentClipMode;

/**
 * @brief Enumerates the layout modes of the WaterFlow component.
 *
 * @since 18
 */
typedef enum {
    /** Layout items from top to viewport. */
    ARKUI_WATER_FLOW_LAYOUT_MODE_ALWAYS_TOP_DOWN = 0,
    /** Layout items in viewport. */
    ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW,
} ArkUI_WaterFlowLayoutMode;

/**
 * @brief Enumerates the border styles.
 *
 * @since 12
 */
typedef enum {
    /** Solid border. */
    ARKUI_BORDER_STYLE_SOLID = 0,
    /** Dashed border. */
    ARKUI_BORDER_STYLE_DASHED,
    /** Dotted border. */
    ARKUI_BORDER_STYLE_DOTTED,
} ArkUI_BorderStyle;

/**
 * @brief Enumerates the hit test modes.
 *
 * @since 12
 */
typedef enum {
    /** Both the node and its child node respond to the hit test of a touch event, but its sibling node is blocked from
     *  the hit test. */
    ARKUI_HIT_TEST_MODE_DEFAULT = 0,
    /** The node responds to the hit test of a touch event, but its child node and sibling node are blocked from the
     *  hit test. */
    ARKUI_HIT_TEST_MODE_BLOCK,
    /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
     * considered during the hit test. */
    ARKUI_HIT_TEST_MODE_TRANSPARENT,
    /** The node does not respond to the hit test of a touch event. */
    ARKUI_HIT_TEST_MODE_NONE,
    /**
     * The node and its child nodes participate in hit tests, while blocking hit tests for all sibling nodes and
     * parent nodes with lower priority.
     *
     * @since 20
     */
    ARKUI_HIT_TEST_MODE_BLOCK_HIERARCHY,
    /**
     * The node does not respond to hit tests, and none of its descendants (including children and grandchildren)
     * participate in hit tests either.
     *
     * @since 20
     */
    ARKUI_HIT_TEST_MODE_BLOCK_DESCENDANTS,
} ArkUI_HitTestMode;

/**
 * @brief Enumerates the shadow styles.
 *
 * @since 12
 */
typedef enum {
    /** Mini shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
    /** Little shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
    /** Medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
    /** Large shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
    /** Floating small shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
    /** Floating medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_MD,
} ArkUI_ShadowStyle;

/**
 * @brief Enumerates the animation curves.
 *
 * @since 12
 */
typedef enum {
    /** The animation speed keeps unchanged. */
    ARKUI_CURVE_LINEAR = 0,
    /** The animation starts slowly, accelerates, and then slows down towards the end. */
    ARKUI_CURVE_EASE,
    /** The animation starts at a low speed and then picks up speed until the end. */
    ARKUI_CURVE_EASE_IN,
    /** The animation ends at a low speed. */
    ARKUI_CURVE_EASE_OUT,
    /** The animation starts and ends at a low speed. */
    ARKUI_CURVE_EASE_IN_OUT,
    /** The animation uses the standard curve */
    ARKUI_CURVE_FAST_OUT_SLOW_IN,
    /** The animation uses the deceleration curve. */
    ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
    /** The animation uses the acceleration curve. */
    ARKUI_CURVE_FAST_OUT_LINEAR_IN,
    /** The animation uses the extreme deceleration curve. */
    ARKUI_CURVE_EXTREME_DECELERATION,
    /** The animation uses the sharp curve. */
    ARKUI_CURVE_SHARP,
    /** The animation uses the rhythm curve. */
    ARKUI_CURVE_RHYTHM,
    /** The animation uses the smooth curve. */
    ARKUI_CURVE_SMOOTH,
    /** The animation uses the friction curve */
    ARKUI_CURVE_FRICTION,
} ArkUI_AnimationCurve;

/**
 * @brief Enumerates arrow styles of the navigation point indicator.
 *
 * @since 12
 */
typedef enum {
    /** The arrow is not displayed for the navigation point indicator. */
    ARKUI_SWIPER_ARROW_HIDE = 0,
    /** The arrow is displayed for the navigation point indicator. */
    ARKUI_SWIPER_ARROW_SHOW,
    /** The arrow is displayed only when the mouse pointer hovers over the navigation point indicator. */
    ARKUI_SWIPER_ARROW_SHOW_ON_HOVER,
} ArkUI_SwiperArrow;

/**
 * @brief Nested scrolling mode for Swiper components and parent components.
 *
 * @since 12
 */
typedef enum {
    /** Swiper only scrolls on its own and is not linked to its parent component. */
    ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY = 0,
    /** The Swiper itself scrolls first, and the parent component scrolls after it reaches the edge. After the parent
     * component scrolls to the edge, if the parent component has an edge effect, the parent component triggers the edge
     * effect; otherwise, the Swiper triggers the edge effect. */
    ARKUI_SWIPER_NESTED_SRCOLL_SELF_FIRST,
} ArkUI_SwiperNestedScrollMode;

/**
 * @brief Enumerates the page flipping modes using the mouse wheel for the <b>Swiper</b> component.
 *
 * @since 15
 */
typedef enum {
    /** When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by the number of
     *  times that mouse events are reported. */
    ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
    /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
    ARKUI_PAGE_FLIP_MODE_SINGLE,
} ArkUI_PageFlipMode;

/**
 * @brief Enumerates the animation modes for {@link NODE_SWIPER_INDEX}.
 *
 * @since 15
 */
typedef enum {
    /** Jump to target index without animation. */
    ARKUI_SWIPER_NO_ANIMATION = 0,
    /** Scroll to target index with animation. */
    ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
    /** Jump to some index near the target index without animation, then scroll to target index with animation. */
    ARKUI_SWIPER_FAST_ANIMATION = 2,
} ArkUI_SwiperAnimationMode;

/**
 * @brief Enumerates the accessibility modes.
 *
 * @since 12
 */
typedef enum {
    /** Whether the component can be identified by the accessibility service is dependent on the component. */
    ARKUI_ACCESSIBILITY_MODE_AUTO = 0,
    /** The component can be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_ENABLED,
    /** The component cannot be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED,
    /** The component and all its child components cannot be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
} ArkUI_AccessibilityMode;

/**
 * @brief Defines whether copy and paste is allowed for text content.
 *
 * @since 12
 */
typedef enum {
    /** Copy is not allowed. */
    ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_TextCopyOptions;

/**
 * @brief Defines how the adaptive height is determined for the text.
 *
 * @since 12
 */
typedef enum {
    /** Prioritize the <b>maxLines</b> settings. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MAX_LINES_FIRST = 0,
    /** Prioritize the <b>minFontSize</b> settings. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MIN_FONT_SIZE_FIRST,
    /** Prioritize the layout constraint settings in terms of height. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_LAYOUT_CONSTRAINT_FIRST,
} ArkUI_TextHeightAdaptivePolicy;

/**
 * @brief Defines nested scrolling options.
 *
 * @since 12
 */
typedef enum {
    /** The scrolling is contained within the component, and no scroll chaining occurs, that is, the parent component
     * does not scroll when the component scrolling reaches the boundary. */
    ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
    /** The component scrolls first, and when it hits the boundary, the parent component scrolls.
     *  When the parent component hits the boundary, its edge effect is displayed. If no edge
     *  effect is specified for the parent component, the edge effect of the child component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
    /** The parent component scrolls first, and when it hits the boundary, the component scrolls.
     *  When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
    /** The component and its parent component scroll at the same time. When both the component and its parent component
     *  hit the boundary, the edge effect of the component is displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARALLEL,
} ArkUI_ScrollNestedMode;

/**
 * @brief Defines the edge to which the component scrolls.
 *
 * @since 12
 */
typedef enum {
    /** Top edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_TOP = 0,
    /** Bottom edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_BOTTOM,
    /** Start position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_START,
    /** End position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_END,
} ArkUI_ScrollEdge;

/**
 * @brief Alignment when scrolling to specific items.
 *
 * @since 12
 */
typedef enum {
    /** Align the head. Align the head of the specified item with the head of the container.*/
    ARKUI_SCROLL_ALIGNMENT_START = 0,
    /** Center alignment. Align the axis direction of the specified item to the center of the container.*/
    ARKUI_SCROLL_ALIGNMENT_CENTER,
    /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
    ARKUI_SCROLL_ALIGNMENT_END,
    /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
     * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
     * item with the container, so that the specified item is completely in the display area.*/
    ARKUI_SCROLL_ALIGNMENT_AUTO,
} ArkUI_ScrollAlignment;

/**
 * @brief Define the current scrolling state.
 *
 * @since 12
 */
typedef enum {
    /** Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
     * dragging the scroll bar to scroll.*/
    ARKUI_SCROLL_STATE_IDLE = 0,
    /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
    ARKUI_SCROLL_STATE_SCROLL,
    /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
     * releasing the hand quickly.*/
    ARKUI_SCROLL_STATE_FLING,
} ArkUI_ScrollState;

/**
 * @brief Enumerates the types of the slider in the block direction.
 *
 * @since 12
 */
typedef enum {
    /** Round slider. */
    ARKUI_SLIDER_BLOCK_STYLE_DEFAULT = 0,
    /** Slider with an image background. */
    ARKUI_SLIDER_BLOCK_STYLE_IMAGE,
    /** Slider in a custom shape. */
    ARKUI_SLIDER_BLOCK_STYLE_SHAPE,
} ArkUI_SliderBlockStyle;

/**
 * @brief Enumerates the scroll directions of the slider.
 *
 * @since 12
 */
typedef enum {
    /** Vertical direction. */
    ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
    /** Horizontal direction. */
    ARKUI_SLIDER_DIRECTION_HORIZONTAL,
} ArkUI_SliderDirection;

/**
 * @brief Enumerates the slider styles.
 *
 * @since 12
 */
typedef enum {
    /** The slider is on the slider track. */
    ARKUI_SLIDER_STYLE_OUT_SET = 0,
    /** The slider is in the slider track. */
    ARKUI_SLIDER_STYLE_IN_SET,
    /** No slider. */
    ARKUI_SLIDER_STYLE_NONE,
} ArkUI_SliderStyle;

/**
 * @brief Enumerates the shapes of the check box
 *
 * @since 12
 */
typedef enum {
    /** Circle. */
    ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
    /** Rounded square. */
    ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
} ArkUI_CheckboxShape;

/**
 * @brief Enumerates the animation playback modes.
 *
 * @since 12
 */
typedef enum {
    /** The animation is played forwards. */
    ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
    /** The animation is played reversely. */
    ARKUI_ANIMATION_PLAY_MODE_REVERSE,
    /** The animation is played normally for an odd number of times (1, 3, 5...) and reversely for an even number
     *  of times (2, 4, 6...). */
    ARKUI_ANIMATION_PLAY_MODE_ALTERNATE,
    /** The animation is played reversely for an odd number of times (1, 3, 5...) and normally for an even number
     *  of times (2, 4, 6...). */
    ARKUI_ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
} ArkUI_AnimationPlayMode;

/**
 * @brief Defines the image size.
 *
 * @since 12
 */
typedef enum {
    /** The original image aspect ratio is retained. */
    ARKUI_IMAGE_SIZE_AUTO = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal
     *  to the display boundaries. */
    ARKUI_IMAGE_SIZE_COVER,
    /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the display
     *  boundaries. */
    ARKUI_IMAGE_SIZE_CONTAIN,
} ArkUI_ImageSize;

/**
 * @brief Enumerates the adaptive color modes.
 *
 * @since 12
 */
typedef enum {
    /** Adaptive color mode is not used. */
    ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
    /** Adaptive color mode is used. */
    ARKUI_ADAPTIVE_COLOR_AVERAGE,
} ArkUI_AdaptiveColor;

/**
 * @brief Enumerates the color modes.
 *
 * @since 12
 */
typedef enum {
    /** Following the system color mode. */
    ARKUI_COLOR_MODE_SYSTEM = 0,
    /** Light color mode. */
    ARKUI_COLOR_MODE_LIGHT,
    /** Dark color mode. */
    ARKUI_COLOR_MODE_DARK,
} ArkUI_ColorMode;

/**
 * @brief Enumerates the system color modes.
 *
 * @since 12
 */
typedef enum {
    /** Light color mode. */
    ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
    /** Dark color mode. */
    ARKUI_SYSTEM_COLOR_MODE_DARK,
} ArkUI_SystemColorMode;

/**
 * @brief Enumerates the blur styles.
 *
 * @since 12
 */
typedef enum {
    /** Thin material. */
    ARKUI_BLUR_STYLE_THIN = 0,
    /** Regular material. */
    ARKUI_BLUR_STYLE_REGULAR,
    /** Thick material. */
    ARKUI_BLUR_STYLE_THICK,
    /** Material that creates the minimum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THIN,
    /** Material that creates a medium shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
    /** Material that creates a high shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THICK,
    /** Material that creates the maximum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
    /** No blur. */
    ARKUI_BLUR_STYLE_NONE,
    /** Component ultra-thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
    /** Component thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_THIN,
    /** Component regular material. */
    ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
    /** Component thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_THICK,
    /** Component ultra-thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
} ArkUI_BlurStyle;

/**
 * @brief Enumerates the activation policies for the background blur effect.
 *
 * @since 19
 */
typedef enum {
    /** The blur effect changes according to the window's focus state;
     *  it is inactive when the window is not in focus and active when the window is in focus. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
    /** The blur effect is always active. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
    /** The blur effect is always inactive. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
} ArkUI_BlurStyleActivePolicy;

/**
 * @brief Enumerates the vertical alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** Top aligned. */
    ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI_VERTICAL_ALIGNMENT_CENTER,
    /** Bottom aligned. */
    ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
} ArkUI_VerticalAlignment;

/**
 * @brief Enumerates the alignment mode in the horizontal direction.
 *
 * @since 12
 */
typedef enum {
    /** Aligned with the start edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI_HORIZONTAL_ALIGNMENT_CENTER,
    /** Aligned with the end edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_END,
} ArkUI_HorizontalAlignment;

/**
 * @brief Enumerates the display modes when the text is too long.
 *
 * @since 12
 */
typedef enum {
    /** Extra-long text is not clipped. */
    ARKUI_TEXT_OVERFLOW_NONE = 0,
    /** Extra-long text is clipped. */
    ARKUI_TEXT_OVERFLOW_CLIP,
    /** An ellipsis (...) is used to represent text overflow. */
    ARKUI_TEXT_OVERFLOW_ELLIPSIS,
    /** Text continuously scrolls when text overflow occurs. */
    ARKUI_TEXT_OVERFLOW_MARQUEE,
} ArkUI_TextOverflow;

/**
 * @brief Enumerates the alignment mode of the image with the text.
 *
 * @since 12
 */
typedef enum {
    /** The image is bottom aligned with the text baseline. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
    /** The image is bottom aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
    /** The image is centered aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
    /** The image is top aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
    /**
     * The image alignment mode follows the text component's alignment mode.
     *
     * @since 20
     */
    ARKUI_IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
} ArkUI_ImageSpanAlignment;

/**
 * @brief Defines how the image is resized to fit its container.
 *ImageSpanAlignment
 * @since 12
 */
typedef enum {
    /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_CONTAIN = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_COVER,
    /** The image is scaled automatically to fit the display area. */
    ARKUI_OBJECT_FIT_AUTO,
    /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
    ARKUI_OBJECT_FIT_FILL,
    /** The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the
     *  original size. */
    ARKUI_OBJECT_FIT_SCALE_DOWN,
    /** The original size is retained. */
    ARKUI_OBJECT_FIT_NONE,
    /** Not resized, the image is aligned with the start edge of the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_START,
    /** Not resized, the image is horizontally centered at the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP,
    /** Not resized, the image is aligned with the end edge at the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
    /** Not resized, the image is vertically centered on the start edge of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_START,
    /** Not resized, the image is horizontally and vertically centered in the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_CENTER,
    /** Not resized, the image is vertically centered on the end edge of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_END,
    /** Not resized, the image is aligned with the start edge at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
    /** Not resized, the image is horizontally centered at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
    /** Not resized, the image is aligned with the end edge at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
    /**
     * Not resized, and is used in conjunction with NODE_IMAGE_IMAGE_MATRIX.
     *
     * @since 21
     */
    ARKUI_OBJECT_FIT_NONE_MATRIX,
} ArkUI_ObjectFit;

/**
 * @brief Enumerates the image interpolation effect.
 *
 * @since 12
 */
typedef enum {
    /** No image interpolation. */
    ARKUI_IMAGE_INTERPOLATION_NONE = 0,
    /** Low quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_LOW,
    /** Medium quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_MEDIUM,
    /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
    ARKUI_IMAGE_INTERPOLATION_HIGH,
} ArkUI_ImageInterpolation;

/**
 * @brief Enumerates the image dynamic range mode.
 *
 * @since 21
 */
typedef enum {
    /** high dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_HIGH = 0,
    /** constraint dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_CONSTRAINT,
    /** standard dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_STANDARD,
} ArkUI_DynamicRangeMode;

/**
 * @brief Enumerates the image rotate orientation.
 *
 * @since 21
 */
typedef enum {
    /** Use EXIF metadata for display orientation, with support for rotation and mirroring. */
    ARKUI_ORIENTATION_AUTO = 0,
    /** Display original pixel data without transformation. */
    ARKUI_ORIENTATION_UP,
    /** Display the image after rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT,
    /** Display the image after rotating it 180 degrees clockwise. */
    ARKUI_ORIENTATION_DOWN,
    /** Display the image after rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT,
    /** Display the image after flipping it horizontally. */
    ARKUI_ORIENTATION_UP_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT_MIRRORED,
    /** Display the image after flipping it vertically. */
    ARKUI_ORIENTATION_DOWN_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT_MIRRORED,
} ArkUI_ImageRotateOrientation;

/**
 * @brief Enumerates the blend modes.
 *
 * @since 12
 */
typedef enum {
    /** The top image is superimposed on the bottom image without any blending. */
    ARKUI_BLEND_MODE_NONE = 0,
    /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
    ARKUI_BLEND_MODE_CLEAR,
    /** r = s: Only the source pixels are displayed. */
    ARKUI_BLEND_MODE_SRC,
    /** r = d: Only the target pixels are displayed. */
    ARKUI_BLEND_MODE_DST,
    /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
    ARKUI_BLEND_MODE_SRC_OVER,
    /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
    ARKUI_BLEND_MODE_DST_OVER,
    /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_IN,
    /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_IN,
    /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_OUT,
    /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_OUT,
    /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
     *  the part of the target pixels that do not overlap with the source pixels are displayed.
     */
    ARKUI_BLEND_MODE_SRC_ATOP,
    /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
     *  the source pixels that do not overlap with the target pixels are displayed.
     */
    ARKUI_BLEND_MODE_DST_ATOP,
    /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
     * is displayed. */
    ARKUI_BLEND_MODE_XOR,
    /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
    ARKUI_BLEND_MODE_PLUS,
    /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
    ARKUI_BLEND_MODE_MODULATE,
    /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
     *  product of their multiplication. */
    ARKUI_BLEND_MODE_SCREEN,
    /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
    ARKUI_BLEND_MODE_OVERLAY,
    /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
    ARKUI_BLEND_MODE_DARKEN,
    /** rc = s + d - min(s * da, d * sa), ra =
       kSrcOver: The final pixels are composed of the lightest values of pixels. */
    ARKUI_BLEND_MODE_LIGHTEN,
    /** The colors of the target pixels are lightened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_DODGE,
    /** The colors of the target pixels are darkened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_BURN,
    /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_HARD_LIGHT,
    /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_SOFT_LIGHT,
    /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
       kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
       the lighter one. */
    ARKUI_BLEND_MODE_DIFFERENCE,
    /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
     */
    ARKUI_BLEND_MODE_EXCLUSION,
    /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
     *  by the target pixel.	 */
    ARKUI_BLEND_MODE_MULTIPLY,
    /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
     *  image. */
    ARKUI_BLEND_MODE_HUE,
    /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
     *  image. */
    ARKUI_BLEND_MODE_SATURATION,
    /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
     *  image. */
    ARKUI_BLEND_MODE_COLOR,
    /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
     *  image. */
    ARKUI_BLEND_MODE_LUMINOSITY,
} ArkUI_BlendMode;

/**
 * @brief Enumerates the modes in which components are laid out along the main axis of the container.
 *
 * @since 12
 */
typedef enum {
    /** Components are arranged from left to right. */
    ARKUI_DIRECTION_LTR = 0,
    /** Components are arranged from right to left. */
    ARKUI_DIRECTION_RTL,
    /** The default layout direction is used. */
    ARKUI_DIRECTION_AUTO = 3,
} ArkUI_Direction;

/**
 * @brief Enumerates the modes in which components are laid out along the cross axis of the container.
 *
 * @since 12
 */
typedef enum {
    /** The default configuration in the container is used. */
    ARKUI_ITEM_ALIGNMENT_AUTO = 0,
    /** The items in the container are aligned with the cross-start edge. */
    ARKUI_ITEM_ALIGNMENT_START,
    /** The items in the container are centered along the cross axis. */
    ARKUI_ITEM_ALIGNMENT_CENTER,
    /** The items in the container are aligned with the cross-end edge. */
    ARKUI_ITEM_ALIGNMENT_END,
    /** The items in the container are stretched and padded along the cross axis. */
    ARKUI_ITEM_ALIGNMENT_STRETCH,
    /** The items in the container are aligned in such a manner that their text baselines are aligned along the
     *  cross axis. */
    ARKUI_ITEM_ALIGNMENT_BASELINE,
} ArkUI_ItemAlignment;

/**
 * @brief Enumerates the foreground colors.
 *
 * @since 12
 */
typedef enum {
    /** The foreground colors are the inverse of the component background colors. */
    ARKUI_COLOR_STRATEGY_INVERT = 0,
    /** The shadow colors of the component are the average color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_AVERAGE,
    /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_PRIMARY,
} ArkUI_ColorStrategy;

/**
 * @brief Enumerates the vertical alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** The child components are aligned with the start edge of the main axis. */
    ARKUI_FLEX_ALIGNMENT_START = 1,
    /** The child components are aligned in the center of the main axis. */
    ARKUI_FLEX_ALIGNMENT_CENTER = 2,
    /** The child components are aligned with the end edge of the main axis. */
    ARKUI_FLEX_ALIGNMENT_END = 3,
    /** The child components are evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The first component is aligned with the main-start, and the last component is aligned with
     *  the main-end. */
    ARKUI_FLEX_ALIGNMENT_SPACE_BETWEEN = 6,
    /** The child components are evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The space between the first component and main-start, and that between the last component and
     *  cross-main are both half the size of the space between two adjacent components. */
    ARKUI_FLEX_ALIGNMENT_SPACE_AROUND = 7,
    /** The child components are evenly distributed along the main axis. The space between the first component
     *  and main-start, the space between the last component and main-end, and the space between any two adjacent
     *  components are the same. */
    ARKUI_FLEX_ALIGNMENT_SPACE_EVENLY = 8,
} ArkUI_FlexAlignment;

/**
 * @brief Enumerates the directions of the main axis in the flex container.
 *
 * @since 12
 */
typedef enum {
    /** The child components are arranged in the same direction as the main axis runs along the rows. */
    ARKUI_FLEX_DIRECTION_ROW = 0,
    /** The child components are arranged in the same direction as the main axis runs down the columns. */
    ARKUI_FLEX_DIRECTION_COLUMN,
    /** The child components are arranged opposite to the <b>ROW</b> direction. */
    ARKUI_FLEX_DIRECTION_ROW_REVERSE,
    /** The child components are arranged opposite to the <b>COLUMN</b> direction. */
    ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
} ArkUI_FlexDirection;

/**
 * @brief Defines whether the flex container has a single line or multiple lines.
 *
 * @since 12
 */
typedef enum {
    /** The child components in the flex container are arranged in a single line, and they cannot overflow. */
    ARKUI_FLEX_WRAP_NO_WRAP = 0,
    /** The child components in the flex container are arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP,
    /** The child components in the flex container are reversely arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP_REVERSE,
} ArkUI_FlexWrap;

/**
 * @brief Enumerates the visibility values.
 *
 * @since 12
 */
typedef enum {
    /** The component is visible. */
    ARKUI_VISIBILITY_VISIBLE = 0,
    /** The component is hidden, and a placeholder is used for it in the layout. */
    ARKUI_VISIBILITY_HIDDEN,
    /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
    ARKUI_VISIBILITY_NONE,
} ArkUI_Visibility;

/**
 * @brief Enumerates the alignment modes between the calendar picker and the entry component.
 *
 * @since 12
 */
typedef enum {
    /** Left aligned. */
    ARKUI_CALENDAR_ALIGNMENT_START = 0,
    /** Center aligned. */
    ARKUI_CALENDAR_ALIGNMENT_CENTER,
    /** Right aligned. */
    ARKUI_CALENDAR_ALIGNMENT_END,
} ArkUI_CalendarAlignment;

/**
 * @brief Enumerates the mask types.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_MASK_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_MASK_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_MASK_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_MASK_TYPE_PATH,
    /** Progress indicator. */
    ARKUI_MASK_TYPE_PROGRESS,
} ArkUI_MaskType;

/**
 * @brief Enumerates the clipping region types.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_CLIP_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_CLIP_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_CLIP_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_CLIP_TYPE_PATH,
} ArkUI_ClipType;

/**
 * @brief Defines the gradient color stop structure.
 *
 * @since 12
 */
typedef struct {
    /** Color array. */
    const uint32_t* colors;
    /** Position array. */
    float* stops;
    /** Length array. */
    int size;
} ArkUI_ColorStop;

/**
 * @brief Enumerates the custom shapes.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_SHAPE_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_SHAPE_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_SHAPE_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_SHAPE_TYPE_PATH,
} ArkUI_ShapeType;

/**
 * @brief Enumerates the gradient directions.
 *
 * @since 12
 */
typedef enum {
    /** From right to left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT = 0,
    /** From bottom to top. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_TOP,
    /** From left to right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT,
    /** From top to bottom. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_BOTTOM,
    /** From lower right to upper left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_TOP,
    /** From upper right to lower left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_BOTTOM,
    /** From lower left to upper right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_TOP,
    /** From upper left to lower right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_BOTTOM,
    /** No gradient. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_NONE,
    /** Custom direction. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM,
} ArkUI_LinearGradientDirection;

/**
 * @brief Enumerates the word break rules.
 *
 * @since 12
 */
typedef enum {
    /** Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
     *  only at a space character for non-CJK text (such as English). */
    ARKUI_WORD_BREAK_NORMAL = 0,
    /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
     *  <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_ALL,
    /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
     *  lines at appropriate characters (for example, spaces) whenever possible.
        CJK text behavior is the same as for <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_WORD,
    /**
     * @brief Line breaks can occur between any two syllabic units for non-CJK text.
     * CJK text behavior is the same as for <b>NORMAL</b>.
     * @since 18
     */
    ARKUI_WORD_BREAK_HYPHENATION,
} ArkUI_WordBreak;

/**
 * @brief Enumerates the ellipsis positions.
 *
 * @since 12
 */
typedef enum {
    /** An ellipsis is used at the start of the line of text. */
    ARKUI_ELLIPSIS_MODE_START = 0,
    /** An ellipsis is used at the center of the line of text. */
    ARKUI_ELLIPSIS_MODE_CENTER,
    /** An ellipsis is used at the end of the line of text. */
    ARKUI_ELLIPSIS_MODE_END,
    /**
     *@brief An ellipsis is used at the start of the line of text for multiline and single line.
     *@since 24
     */
    ARKUI_ELLIPSIS_MODE_MULTILINE_START,
    /**
     *@brief An ellipsis is used at the center of the line of text for multiline and single line.
     *@since 24
     */
    ARKUI_ELLIPSIS_MODE_MULTILINE_CENTER,
} ArkUI_EllipsisMode;

/**
 * @brief Enumerates the image rendering modes.
 *
 * @since 12
 */
typedef enum {
    /** Render image pixels as they are in the original source image. */
    ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
    /** Render image pixels to create a monochrome template image. */
    ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
} ArkUI_ImageRenderMode;

/**
 * @brief Enumerates the slide-in and slide-out positions of the component from the screen edge during transition.
 *
 * @since 12
 */
typedef enum {
    /** Top edge of the window. */
    ARKUI_TRANSITION_EDGE_TOP = 0,
    /** Bottom edge of the window. */
    ARKUI_TRANSITION_EDGE_BOTTOM,
    /** Left edge of the window. */
    ARKUI_TRANSITION_EDGE_START,
    /** Right edge of the window. */
    ARKUI_TRANSITION_EDGE_END,
} ArkUI_TransitionEdge;

/**
 * @brief Defines how the specified blend mode is applied.
 *
 * @since 12
 */
typedef enum {
    /** The content of the view is blended in sequence on the target image. */
    BLEND_APPLY_TYPE_FAST = 0,
    /** The content of the component and its child components are drawn on the offscreen canvas, and then blended with
     *  the existing content on the canvas. */
    BLEND_APPLY_TYPE_OFFSCREEN,
} ArkUI_BlendApplyType;

/**
 * @brief Defines a mask area.
 *
 * @since 12
 */
typedef struct {
    /** X coordinate of the mask area. */
    float x;
    /** Y coordinate of the mask area. */
    float y;
    /** Width of the mask area. */
    float width;
    /** Height of the mask area. */
    float height;
} ArkUI_Rect;

/**
 * @brief Describes the width and height of a component.
 *
 * @since 12
 */
typedef struct {
    /** Width, in px. */
    int32_t width;
    /** Height, in px. */
    int32_t height;
} ArkUI_IntSize;

/**
 * @brief Describes the position of a component.
 *
 * @since 12
 */
typedef struct {
    /** Horizontal coordinate, in px. */
    int32_t x;
    /** Vertical coordinate, in px. */
    int32_t y;
} ArkUI_IntOffset;

/**
 * @brief Enumerates the animation onFinish callback types.
 *
 * @since 12
 */
typedef enum {
    /** The callback is invoked when the entire animation is removed once it has finished. */
    ARKUI_FINISH_CALLBACK_REMOVED = 0,
    /** The callback is invoked when the animation logically enters the falling state, though it may still be in its
      * long tail state. */
    ARKUI_FINISH_CALLBACK_LOGICALLY,
} ArkUI_FinishCallbackType;

/**
 * @brief Enumerates the alignment modes of items along the cross axis.
  *
 * @since 12
 */
typedef enum {
    /** The list items are packed toward the start edge of the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
    /** The list items are centered in the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
    /** The list items are packed toward the end edge of the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_END,
} ArkUI_ListItemAlignment;

/**
  * @brief defi nes the direction of the barrier line.
  *
  * @since 12
  */
typedef enum {
    /** The barrier is the leftmost of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_START = 0,
    /** The barrier is on the rightmost side of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_END,
    /** The barrier is at the top of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_TOP,
    /** The barrier is at the bottom of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_BOTTOM
} ArkUI_BarrierDirection;

/**
  * @brief defines the style of the chain.
  *
  * @since 12
  */
typedef enum {
    /** Components are evenly distributed among constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
    /** Except for the first and last two sub-components,
      * other components are evenly distributed between the constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
    /** No gaps in subcomponents within the chain. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
} ArkUI_RelativeLayoutChainStyle;

/**
 * @brief Describes the margins of a component.
 *
 * @since 12
 */
typedef struct {
    /** Top margin, in vp. */
    float top;
    /** Right margin, in vp. */
    float right;
    /** Bottom margin, in vp. */
    float bottom;
    /** Left margin, in vp. */
    float left;
} ArkUI_Margin;

/**
 * @brief Enumerates the component units.
 *
 * @since 12
 */
typedef enum {
    /** Default, which is fp for fonts and vp for non-fonts. */
    ARKUI_LENGTH_METRIC_UNIT_DEFAULT = -1,
    /** px. */
    ARKUI_LENGTH_METRIC_UNIT_PX = 0,
    /** vp. */
    ARKUI_LENGTH_METRIC_UNIT_VP,
    /** fp. */
    ARKUI_LENGTH_METRIC_UNIT_FP
} ArkUI_LengthMetricUnit;

/**
 * @brief Enumerates the render fit.
 *
 * @since 12
 */
typedef enum {
    /** Maintains the content size of the animation's final state,
      * and the content is always centered with the component.*/
    ARKUI_RENDER_FIT_CENTER = 0,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top center of the component. */
    ARKUI_RENDER_FIT_TOP,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the bottom center of the component. */
    ARKUI_RENDER_FIT_BOTTOM,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned to the left of the component. */
    ARKUI_RENDER_FIT_LEFT,
    /** Maintains the content size of the animation's final state,
      * and the content is always right-aligned with the component. */
    ARKUI_RENDER_FIT_RIGHT,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top left corner of the component. */
    ARKUI_RENDER_FIT_TOP_LEFT,
    /** Keep the content size of the animation final state,
      * and the content is always aligned with the upper right corner of the component. */
    ARKUI_RENDER_FIT_TOP_RIGHT,
    /** Keep the content size of the animation final state,
      * and the content always aligns with the lower-left corner of the component. */
    ARKUI_RENDER_FIT_BOTTOM_LEFT,
    /** Keep the content size of the animation final state,
      *and the content always aligns with the lower-right corner of the component. */
    ARKUI_RENDER_FIT_BOTTOM_RIGHT,
    /** The aspect ratio of the animation's final state content is not considered,
      *and the content is always scaled to the size of the component. */
    ARKUI_RENDER_FIT_RESIZE_FILL,
    /** Reduce or enlarge the aspect ratio of the animation final state content,
      * so that the content is fully displayed in the component,
      * and keep the center aligned with the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the component.
      * When there is left over in the broad direction of the component,
      * the content is aligned to the left of the component,
      * and when there is left over in the high direction of the component,
      * the content is aligned to the top of the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the component.
      * When there is left in the wide direction of the component,
      * the content is aligned with the component on the right.
      * When there is left in the high direction of the component,
      * the content is aligned with the component on the bottom. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
    /** Keep the aspect ratio of the animation final state content reduced or enlarged,
      * so that both sides of the content are greater than or equal to both sides of the component,
      * and keep the center aligned with the component to display the middle part of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged
      * so that both sides of the content are exactly greater than or equal to both sides of the component.
      * When the content width is left, the content is aligned to the left of the component,
      * and the left portion of the content is displayed. When the content is left in the high direction,
      * the content and the component remain top aligned, showing the top side of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
      * that both sides of the content are exactly greater than or equal to both sides of the component.
      * When the content width is left, the content and the component remain right aligned,
      * and the right part of the content is displayed. When the content is left in the high direction,
      * the content and the component remain aligned at the bottom,
      * and the bottom part of the content is displayed. */
    ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
} ArkUI_RenderFit;

/**
 * @brief Enumerates the button types.
 *
 * @since 12
 */
typedef enum {
    /** Normal button (without rounded corners by default). */
    ARKUI_BUTTON_TYPE_NORMAL = 0,
    /** Capsule-type button (the round corner is half of the height by default). */
    ARKUI_BUTTON_TYPE_CAPSULE,
    /** Circle button. */
    ARKUI_BUTTON_TYPE_CIRCLE,
    /**
     * Rounded rectangle button.
     * @since 19
     */
    ARKUI_BUTTON_ROUNDED_RECTANGLE = 8
} ArkUI_ButtonType;

/**
 * @brief Enumerates the autofill types.
 *
 * @since 12
 */
typedef enum {
    /** Username. Password Vault, when enabled, can automatically save and fill in usernames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
    /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
    /** New password. Password Vault, when enabled, can automatically generate a new password. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
    /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
     *  street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
    /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
    /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  districts and counties. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
    /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
    /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
    /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
    /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
    /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
    /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
    /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
    /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
     *  codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
    /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
     *  fill in phone numbers with country codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
    /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
    /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
     *  card numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
    /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
    /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
    /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in address information without street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
    /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
    /**
     * Passport number. The scenario-based autofill feature, when enabled, can automatically save and fill in passport
     * numbers.
     * @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMBER,
    /**
     *  Passport validity. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  passport validities.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_VALIDITY,
    /**
     *  Place of issue. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  place of issues.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
    /**
     *  Tax organization. The scenario-based autofill feature, when enabled, can automatically save and fill in tax
     *  organizations.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ORGANIZATION,
    /**
     *  Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_TAX_ID,
    /**
     *  City name and state name or state code. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in city names and state names or state codes.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_STATE,
    /**
     *  Flight number. The scenario-based autofill feature, when enabled, can automatically save and fill in flight
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMBER,
    /**
     *  License number. The scenario-based autofill feature, when enabled, can automatically save and fill in license
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_NUMBER,
    /**
     *  License file number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license file numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMBER,
    /**
     *  License plate number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license plate numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_PLATE,
    /**
     *  Engine number. The scenario-based autofill feature, when enabled, can automatically save and fill in engine
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ENGINE_NUMBER,
    /**
     *  License chassis number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license chassis numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
} ArkUI_TextInputContentType;

/**
 * @brief Defines the text input style.
 *
 * @since 12
 */
typedef enum {
    /** Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
     *  font size of the selected text. */
    ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
    /** Inline input style. The background height of the selected text is the same as the height of the text box. */
    ARKUI_TEXTINPUT_STYLE_INLINE
} ArkUI_TextInputStyle;

/**
 * @brief Defines the keyboard style of input box
 *
 * @since 15
 */
typedef enum {
    /**
     * Default appearance mode, won't adopt immersive styles.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE = 0,
    /**
     * Immersive mode.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_IMMERSIVE = 1,
    /**
     * Light immersive style.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_LIGHT_IMMERSIVE = 2,
    /**
     * Dark immersive style.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_DARK_IMMERSIVE = 3,
} ArkUI_KeyboardAppearance;

/**
 * @brief Defines the entity type for text recognition.
 *
 * @since 12
 */
typedef enum {
    /** Phone Number.*/
    ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
    /** Link. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
    /** Mailbox. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
    /** Address. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
} ArkUI_TextDataDetectorType;

/**
 * @brief Define the navigation indicator type of the swiper.
 *
 * @since 12
 */
typedef enum {
    /** dot type. */
    ARKUI_SWIPER_INDICATOR_TYPE_DOT,
    /** digit type. */
    ARKUI_SWIPER_INDICATOR_TYPE_DIGIT,
} ArkUI_SwiperIndicatorType;

/**
 * @brief Define the pattern of element arrangement in the main axis direction of the Swiper component.
 *
 * @since 12
 */
typedef enum {
    /** In the folded state, when the ListItem slides in the opposite direction to the main axis,
     * the operation item is hidden.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
    /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
     * the operation item is displayed.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
    /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_ACTIONING,
} ArkUI_ListItemSwipeActionState;

/**
 * @brief Define the explicit and implicit mode of the SwipeAction method for the Listitem component.
 *
 * @since 12
 */
typedef enum {
    /** The ListItem can continue to be scratched after the distance exceeds the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
    /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
} ArkUI_ListItemSwipeEdgeEffect;

/**
 * @brief Define error code enumeration values.
 *
 * @since 12
 */
typedef enum {
    /** @error No errors. */
    ARKUI_ERROR_CODE_NO_ERROR = 0,
    /** @error Parameter error. */
    ARKUI_ERROR_CODE_PARAM_INVALID = 401,
    /**
     * @error CAPI init error.
     * @since 18
     */
    ARKUI_ERROR_CODE_CAPI_INIT_ERROR = 500,
    /**
     * @error Internal error occurs, such as failure occurs because of the internal environment error,
     * or operation failed because of the internal execution failed.
     * @since 15
     */
    ARKUI_ERROR_CODE_INTERNAL_ERROR = 100001,
    /**
     * @error The XComponent is in invalid state.
     * @since 19
     */
    ARKUI_ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
    /** @error The component does not support specific properties or events. */
    ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED = 106102,
    /** @error The corresponding operation does not support nodes created by ArkTS. */
    ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED = 106103,
    /** @error The lazy loading adapter is not bound to the component. */
    ARKUI_ERROR_CODE_ADAPTER_NOT_BOUND = 106104,
    /** @error The adapter already exists. */
    ARKUI_ERROR_CODE_ADAPTER_EXIST = 106105,
    /** @error The corresponding node already has a child node and cannot add an adapter. */
    ARKUI_ERROR_CODE_CHILD_NODE_EXIST = 106106,
    /** The parameter length in the parameter event exceeds the limit. */
    ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE = 106107,
    /** The data does not exist in the component event. */
    ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID = 106108,
    /** The component event does not support return values. */
    ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN = 106109,
    /**
     * @error The event type is not supported by the node.
     * @since 21
     */
    ARKUI_ERROR_CODE_NODE_UNSUPPORTED_EVENT_TYPE = 106110,
    /** The index value is invalid. */
    ARKUI_ERROR_CODE_NODE_INDEX_INVALID = 106200,
    /**  Failed to query route navigation information. */
    ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201,
    /** The buffer size is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202,
    /**
     * @error The node is not on main tree.
     * @since 15
     */
    ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE = 106203,
    /**
     * @error The node is running on invalid thread.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_ON_INVALID_THREAD = 106204,
    /**
     * @error Force dark config is invalid.
     * @since 20
     */
    ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID = 106205,
    /**
     * @error The node has already been adopted.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_IS_ADOPTED = 106206,
    /**
     * @error This node already has a parent node.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_HAS_PARENT = 106207,
    /**
     * @error The node cannot be adopted.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_CAN_NOT_BE_ADOPTED = 106208,
    /**
     * @error The node cannot adopt children.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_CAN_NOT_ADOPT_TO = 106209,
    /**
     * @error This child node is not adopted by the parent node.
     * @since 22
     */
    ARKUI_ERROR_CODE_NODE_IS_NOT_IN_ADOPTED_CHILDREN = 106210,
    /**
     * @error The node type is not custom node.
     * @since 20
     */
    ARKUI_ERROR_CODE_NOT_CUSTOM_NODE = 106401,
    /**
     * @error Node already has children.
     * @since 20
     */
    ARKUI_ERROR_CODE_CHILD_EXISTED = 106402,
    /**
     * @error RenderNode parent is existed.
     * @since 20
     */
    ARKUI_ERROR_CODE_RENDER_PARENT_EXISTED = 106403,
    /**
     * @error RenderNode child is not exist.
     * @since 20
     */
    ARKUI_ERROR_CODE_RENDER_CHILD_NOT_EXIST = 106404,
    /**
     * @error Param is out of range.
     * @since 20
     */
    ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE = 106405,
    /**
     * @error The RenderNode is obtained from a FrameNode.
     * @since 22
     */
    ARKUI_ERROR_CODE_RENDER_IS_FROM_FRAME_NODE = 106406,
    /**
     * @error The RenderNode is obtained from a FrameNode,
     * and its corresponding FrameNode is no longer in the adopted state.
     * @since 22
     */
    ARKUI_ERROR_CODE_RENDER_HAS_INVALID_FRAME_NODE = 106407,
    /**
     * @error The node is not adopted.
     * @since 22
     */
    ARKUI_ERROR_CODE_RENDER_NOT_ADOPTED_NODE = 106408,
    /**
     * @error The node requesting focus is not focusable.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150001,
    /**
     * @error The node requesting focus has unfocusable ancestor.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150002,
    /**
     * @error The node requesting focus does not exists.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 150003,
    /**
     * @error The snapshot taking is timeout.
     * @since 15
     */
    ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT = 160002,
    /**
     * @error The provided color space or dynamic range mode is not supported. For details about the error codes,
     * see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).
     * @since 23
     */
    ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED = 160003,
    /**
     * @error The isAuto parameter of the color space or dynamic range mode is set to true for offscreen node snapshot.
     * For details about the error codes, see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).
     * @since 23
     */
    ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED = 160004,
    /** The component is not a scroll container. */
    ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER = 180001,
    /** The buffer is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 180002,
    /**
     * @error The event is not a clone event.
     * @since 15
     */
    ARKUI_ERROR_CODE_NOT_CLONED_POINTER_EVENT = 180003,
    /**
     * @error The component status is abnormal.
     * @since 15
     */
    ARKUI_ERROR_CODE_POST_CLONED_COMPONENT_STATUS_ABNORMAL = 180004,
    /**
     * @error No component hit to respond to the event.
     * @since 15
     */
    ARKUI_ERROR_CODE_POST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180005,
    /**
     * @error Input event type not supported.
     * @since 20
     */
    ARKUI_ERROR_INPUT_EVENT_TYPE_NOT_SUPPORTED = 180006,
    /**
     * @error invalid styled string.
     * @since 14
     */
    ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 180101,
    /**
     * @error The gesture recognizer type is not supported.
     * @since 18
     */
    ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED = 180102,
    /**
     * @error The uiContext is invalid.
     * @since 18
     */
    ARKUI_ERROR_CODE_UI_CONTEXT_INVALID = 190001,
    /**
     * @error The callback function is invalid.
     * @since 18
     */
    ARKUI_ERROR_CODE_CALLBACK_INVALID = 190002,
    /**
     * @error operation is not allowed for current drag drop pharse.
     * @since 19
     */
    ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190004,
    /**
     * @error Parameter error.
     * @since 21
     */
    ARKUI_ERROR_CODE_PARAM_ERROR = 100023,
} ArkUI_ErrorCode;

/**
 * @brief Defines the playback status for the image animator.
 *
 * @since 12
*/
typedef enum {
    /** The animation is in the initial state. */
    ARKUI_ANIMATION_STATUS_INITIAL,
    /** The animation is being played. */
    ARKUI_ANIMATION_STATUS_RUNNING,
    /** The animation is paused. */
    ARKUI_ANIMATION_STATUS_PAUSED,
    /** The animation is stopped. */
    ARKUI_ANIMATION_STATUS_STOPPED,
} ArkUI_AnimationStatus;

/**
 * @brief Defines the status before and after execution of the animation in the current playback direction.
 *
 * @since 12
*/
typedef enum {
    /** Before execution, the animation does not apply any styles to the target component.
     * After execution, the animation restores the target component to its default state. */
    ARKUI_ANIMATION_FILL_MODE_NONE,
    /** The target component retains the state set by the last keyframe encountered
     * during execution of the animation. */
    ARKUI_ANIMATION_FILL_MODE_FORWARDS,
    /** The animation applies the values defined in the first relevant keyframe once it is applied to
     * the target component, and retains the values during the period set by delay. */
    ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
    /** The animation follows the rules for both Forwards and Backwards,
     * extending the animation attributes in both directions. */
    ARKUI_ANIMATION_FILL_MODE_BOTH,
} ArkUI_AnimationFillMode;

/**
 * @brief Defines the state type for the accessibility checkbox.
 *
 * @since 12
 */
typedef enum {
    /** The Checkbox unchecked. */
    ARKUI_ACCESSIBILITY_UNCHECKED = 0,
    /** The Checkbox checked. */
    ARKUI_ACCESSIBILITY_CHECKED,
} ArkUI_AccessibilityCheckedState;

/**
 * @brief Enumerates the animation playback modes.
 *
 * @since 12
 */
typedef enum {
    /** The animation plays in forward loop mode. */
    ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
    /** The animation plays in reverse loop mode. */
    ARKUI_ANIMATION_DIRECTION_REVERSE,
    /** The animation plays in alternating loop mode. When the animation is played for an odd number of times, the
     *  playback is in forward direction. When the animation is played for an even number of times, the playback is in
     *  reverse direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE,
    /** The animation plays in reverse alternating loop mode. When the animation is played for an odd number of times,
     *  the playback is in reverse direction. When the animation is played for an even number of times, the playback is
     *  in forward direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
} ArkUI_AnimationDirection;

/**
 * @brief Enumerates the hover effects when a component is hovered over.
 *
 * @since 23
 */
typedef enum {
    /** Default effect. */
    ARKUI_HOVER_EFFECT_AUTO = 0,
    /** Scale effect. */
    ARKUI_HOVER_EFFECT_SCALE,
    /** Highlight effect. */
    ARKUI_HOVER_EFFECT_HIGHLIGHT,
    /** No effect. */
    ARKUI_HOVER_EFFECT_NONE,
} ArkUI_HoverEffect;

/**
 * @brief Enumerates the priority levels for focus management within the application.
 * These levels determine the sequence in which UI components receive focus during user interaction.
 *
 * @since 23
 */
typedef enum {
    /** Default priority. */
    ARKUI_FOCUS_PRIORITY_AUTO = 0,
    /** Higher priority. */
    ARKUI_FOCUS_PRIORITY_PRIOR = 2000,
    /** Previous focus priority. */
    ARKUI_FOCUS_PRIORITY_PREVIOUS = 3000,
} ArkUI_FocusPriority;

/**
 * @brief Define the rolling source enumeration value.
 *
 * @since 12
 */
typedef enum {
    /** Finger drag. */
    ARKUI_SCROLL_SOURCE_DRAG = 0,
    /** Inertial roll after finger drag. */
    ARKUI_SCROLL_SOURCE_FLING,
    /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
    ARKUI_SCROLL_SOURCE_EDGE_EFFECT,
    /** Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
    ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
    /** Drag the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR,
    /** Inertia scrolling after dragging the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR_FLING,
    /** The scroll controller causes unanimated scrolling.*/
    ARKUI_SCROLL_SOURCE_SCROLLER,
    /** The scroll controller causes the scroll to drive the painting.*/
    ARKUI_SCROLL_SOURCE_ANIMATION,
} ArkUI_ScrollSource;

/**
 * @brief Define accessible action types.
 *
 * @since 12
 */
typedef enum {
    /** click action. */
    ARKUI_ACCESSIBILITY_ACTION_CLICK = 1 << 0,
    /** long click action. */
    ARKUI_ACCESSIBILITY_ACTION_LONG_CLICK = 1 << 1,
    /** cut action. */
    ARKUI_ACCESSIBILITY_ACTION_CUT = 1 << 2,
    /** copy action. */
    ARKUI_ACCESSIBILITY_ACTION_COPY = 1 << 3,
    /** paste action. */
    ARKUI_ACCESSIBILITY_ACTION_PASTE = 1 << 4,
} ArkUI_AccessibilityActionType;

/**
 * @brief Defines the translation options for component transition.
 *
 * @since 12
 */
typedef struct {
    /** Translation distance along the x-axis. */
    float x;
    /** Translation distance along the y-axis. */
    float y;
    /** Translation distance along the z-axis. */
    float z;
} ArkUI_TranslationOptions;

/**
 * @brief Defines the scaling options for component transition.
 *
 * @since 12
 */
typedef struct {
    /** Scale ratio along the x-axis. */
    float x;
    /** Scale ratio along the y-axis. */
    float y;
    /** Scale factor along the z-axis (not effective for the current 2D graphics). */
    float z;
    /** X coordinate of the center point. */
    float centerX;
    /** Y coordinate of the center point. */
    float centerY;
} ArkUI_ScaleOptions;

/**
 * @brief Defines the rotation options for component transition.
 *
 * @since 12
 */
typedef struct {
    /** X-component of the rotation vector. */
    float x;
    /** Y-component of the rotation vector. */
    float y;
    /** Z-component of the rotation vector. */
    float z;
    /** Rotation angle. */
    float angle;
    /** X coordinate of the center point. */
    float centerX;
    /** Y coordinate of the center point. */
    float centerY;
    /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
    float centerZ;
    /** Distance from the user to the z=0 plane. */
    float perspective;
} ArkUI_RotationOptions;

/**
 * @brief Defines a struct for the measurement information of a custom span.
 *
 * @since 12
 */
typedef struct ArkUI_CustomSpanMeasureInfo ArkUI_CustomSpanMeasureInfo;

/**
 * @brief Defines a struct for the measurement metrics of a custom span.
 *
 * @since 12
 */
typedef struct ArkUI_CustomSpanMetrics ArkUI_CustomSpanMetrics;

/**
 * @brief Defines a struct for the drawing information of a custom span.
 *
 * @since 12
 */
typedef struct ArkUI_CustomSpanDrawInfo ArkUI_CustomSpanDrawInfo;

/**
 * @brief Defines the state of the NavDestination component.
 *
 * @since 12
 */
typedef enum {
    /** The NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
    /** The NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_HIDE = 1,
    /** The NavDestination is mounted to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
    /** The NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
    /** Before the NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
    /** Before the NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
    /** Before the NavDestination mount to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
    /** Before the NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
    /** The NavDestination returns from the component.*/
    ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
} ArkUI_NavDestinationState;

/**
 * @brief Define the state of Router Page.
 *
 * @since 12
 */
typedef enum {
    /** The Router Page is about to be created. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
    /** The Router Page is about to be destroyed. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
    /** The Router Page show. */
    ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
    /** The Router Page hide. */
    ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
    /** The Router Page returns. */
    ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
} ArkUI_RouterPageState;

/**
 * @brief defines the enumerated value of the extended security zone.
 *
 * @since 12
 */
typedef enum {
    /** The default security zone includes the status bar and navigation bar. */
    ARKUI_SAFE_AREA_TYPE_SYSTEM = 1,
    /** Non-secure areas of the device, such as bangs or hole holes. */
    ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
    /** Soft keyboard area. */
    ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
} ArkUI_SafeAreaType;

/**
 * @brief Define an enum for the areas of the <b>ListItemGroup</b> component.
 *
 * @since 15
 */
typedef enum {
    /** Outside the area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
    /** Area when the <b>ListItemGroup</b> component does not have the header, footer, or list item. */
    ARKUI_LIST_ITEM_SWIPE_AREA_NONE,
    /** List item area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
    /** Header area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
    /** Footer area of the <b>ListItemGroup</b> component.   */
    ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
} ArkUI_ListItemGroupArea;

/**
 * @brief defines the enumerated value of the direction of the extended security zone.
 *
 * @since 12
 */
typedef enum {
    /** Upper area. */
    ARKUI_SAFE_AREA_EDGE_TOP = 1,
    /** Lower area. */
    ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Front area. */
    ARKUI_SAFE_AREA_EDGE_START = 1 << 2,
    /** Tail area. */
    ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
} ArkUI_SafeAreaEdge;

/**
 * @brief Define an enum for the focus movement directions.
 *
 * @since 18
*/
typedef enum {
    /** Move focus forward. */
    ARKUI_FOCUS_MOVE_FORWARD = 0,
    /** Move focus backward. */
    ARKUI_FOCUS_MOVE_BACKWARD,
    /** Move focus up. */
    ARKUI_FOCUS_MOVE_UP,
    /** Move focus down. */
    ARKUI_FOCUS_MOVE_DOWN,
    /** Move focus left. */
    ARKUI_FOCUS_MOVE_LEFT,
    /** Move focus right. */
    ARKUI_FOCUS_MOVE_RIGHT,
} ArkUI_FocusMove;

/**
 * @brief defines the enumerated value of the customDialog's keyboard avoid mode.
 *
 * @since 15
 */
typedef enum {
    /** Defines avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
    /** Defines not avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_NONE,
} ArkUI_KeyboardAvoidMode;

/**
 * @brief defines the enumerated value of area in hover mode.
 *
 * @since 15
 */
typedef enum {
    /** Layout top half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
    /** Layout bottom half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
} ArkUI_HoverModeAreaType;

/**
 * @brief Enumerates the expand modes.
 *
 * @since 15
 */
typedef enum {
    /** Not expand. */
    ARKUI_NOT_EXPAND = 0,
    /** Expand. */
    ARKUI_EXPAND = 1,
    /** Lazy expand. Expand the children of node if needed. */
    ARKUI_LAZY_EXPAND = 2,
} ArkUI_ExpandMode;

/**
 * @brief Defines the navigation point indicator style of the <b><Swiper></b> component.
 * @brief Enumerates the UI states of a component, used for handling state-specific styles.
 *
 * @since 20
 */
typedef enum {
    /** Normal state. */
    UI_STATE_NORMAL = 0,
    /** Pressed state. */
    UI_STATE_PRESSED = 1 << 0,
    /** Focused state. */
    UI_STATE_FOCUSED = 1 << 1,
    /** Disabled state. */
    UI_STATE_DISABLED = 1 << 2,
    /**
     * Selected state. This state is supported only by specific component types:
     * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>, <b>List</b>, <b>Grid</b>, and <b>MenuItem</b>.
     */
    UI_STATE_SELECTED = 1 << 3,
    /**
     * The hovered state.
     * @since 26.0.0
     */
    UI_STATE_HOVERED = 1 << 4,
} ArkUI_UIState;

/**
 * @brief Enumerates the edge direction.
 *
 * @since 20
 */
typedef enum {
    /** Set all edge direction. */
    ARKUI_EDGE_DIRECTION_ALL = 0,
    /** Set left edge direction. */
    ARKUI_EDGE_DIRECTION_LEFT,
    /** Set right edge direction. */
    ARKUI_EDGE_DIRECTION_RIGHT,
    /** Set top edge direction. */
    ARKUI_EDGE_DIRECTION_TOP,
    /** Set bottom edge direction. */
    ARKUI_EDGE_DIRECTION_BOTTOM,
} ArkUI_EdgeDirection;
 
/**
 * @brief Enumerates the corner direction.
 *
 * @since 20
 */
typedef enum {
    /** Set all corner direction. */
    ARKUI_CORNER_DIRECTION_ALL = 0,
    /** Set top left corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_LEFT,
    /** Set top right corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_RIGHT,
    /** Set bottom left corner direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
    /** Set bottom right corner direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_RIGHT,
} ArkUI_CornerDirection;

/**
 * @brief Enumerates the PixelRoundPolicy.
 *
 * @since 21
 */
typedef enum {
    /** No Force round the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_NOFORCEROUND = 0,
    /** Force ceil the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCECEIL,
    /** Force floor the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCEFLOOR,
} ArkUI_PixelRoundCalcPolicy;

/**
 * @brief Menu pop-up strategy.
 *
 * @since 23
 */
typedef enum {
    /** Determine whether to pop up the menu according to the underlying default logic. */
    ARKUI_MENU_POLICY_DEFAULT = 0,
    /** Never pop up the menu. */
    ARKUI_MENU_POLICY_HIDE = 1,
    /** Always pop up the menu. */
    ARKUI_MENU_POLICY_SHOW = 2,
} ArkUI_MenuPolicy;

/**
 * @brief Define the direction to expand the swipe action.
 *
 * @since 21
 */
typedef enum {
    /**
     * When the List direction is vertical, it indicates the left in LTR mode and right in RTL mode.
     * When the List direction is horizontal, it indicates the top.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_START = 0,
    /**
     * When the List direction is vertical, it indicates the right in LTR mode and left in RTL mode.
     * When the List direction is horizontal, it indicates the bottom.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_END = 1,
} ArkUI_ListItemSwipeActionDirection;

/**
 * @brief Enumerates the input tool types supported for response region configuration.
 *
 * @since 23
 */
typedef enum {
    /** All input tool types. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL = 0,
    /** Finger input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_FINGER = 1,
    /** Stylus input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_PEN = 2,
    /** Mouse input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_MOUSE = 3,
} ArkUI_ResponseRegionSupportedTool;
/**
 * @brief Define the types for expanding the safe area in layout.
 *
 * @since 23
 */
typedef enum {
    /** Default non-safe area of the system, including the status bar and navigation bar. */
    ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM = 1,
} ArkUI_LayoutSafeAreaType;
/**
 * @brief Define the edges for expanding the safe area in layout.
 *
 * @since 23
 */
typedef enum {
    /** Top edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP = 1,
    /** Bottom edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Start edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_START = 1 << 2,
    /** End edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_END = 1 << 3,
    /** Vertical edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_VERTICAL = ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_BOTTOM,
    /** Horizontal edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL = ARKUI_LAYOUT_SAFE_AREA_EDGE_START | ARKUI_LAYOUT_SAFE_AREA_EDGE_END,
    /** All edges of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_ALL = ARKUI_LAYOUT_SAFE_AREA_EDGE_VERTICAL | ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL,
} ArkUI_LayoutSafeAreaEdge;

/**
 * @brief Enumerates the localizedAlignment modes.
 *
 * @since 23
 */
typedef enum {
    /** Top start. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_LOCALIZED_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_LOCALIZED_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_LOCALIZED_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_END,
} ArkUI_LocalizedAlignment;
/**
 * @brief Enumerates the graphics rendering strategy.
 *
 * @since 23
 */
typedef enum {
    /** The current component and its child components will be drawn directly onto the screen canvas. */
    ARKUI_RENDERSTRATEGY_FAST = 0,
    /**
    * The current component and its child components will first be drawn onto an off-screen canvas,
    *     then undergo some graphic rendering operations, and finally be drawn onto the main canvas.
    */
    ARKUI_RENDERSTRATEGY_OFFSCREEN,
} ArkUI_RenderStrategy;

/**
 * @brief Enumerates the LayoutPolicy.
 *
 * @since 21
 */
typedef enum {
    /** The component fills its parent, which means its size is as large as its parent */
    ARKUI_LAYOUTPOLICY_MATCHPARENT = 0,
    /**
     * The component fills its content, which means its size is as large as its children but it is constrained
     * by its parent.
     */
    ARKUI_LAYOUTPOLICY_WRAPCONTENT,
    /** The component fills its content which means its size is as large as its children. */
    ARKUI_LAYOUTPOLICY_FIXATIDEALSIZE,
} ArkUI_LayoutPolicy;

/**
 * @brief Defines parameter used by the system font style callback event.
 *
 * @since 12
 */
typedef struct ArkUI_SystemFontStyleEvent ArkUI_SystemFontStyleEvent;

/**
 * @brief Defines the options for taking snapshot.
 *
 * @since 15
 */
typedef struct ArkUI_SnapshotOptions ArkUI_SnapshotOptions;

/**
  * @brief TextPicker single column selector, supports mixing text and images.
  *
  * @since 19
  */
typedef struct ArkUI_TextPickerRangeContentArray ArkUI_TextPickerRangeContentArray;

 /**
   * @brief TextPicker multi column selector, supports mixing text and images.
   *
   * @since 19
   */
typedef struct ArkUI_TextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArray;

/**
 * @brief Defines a two-dimensional point struct, with coordinates stored as float type.
 *
 * @since 24
 */
typedef struct {
    /**
     * x-axis coordinate.
     */
    float x;
    /**
     * y-axis coordinate.
     */
    float y;
} ArkUI_PointF;

 /**
   * @brief Defines the options for selection operation.
   *
   * @since 23
   */
typedef struct ArkUI_SelectionOptions ArkUI_SelectionOptions;

/**
* @brief Creates a size constraint.
*
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Create();

/**
* @brief Creates a deep copy of a size constraint.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the pointer to the new size constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Copy(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Destroys the pointer to a size constraint.
*
* @param Constraint Indicates the pointer to the size constraint.
* @since 12
*/
void* OH_ArkUI_LayoutConstraint_Dispose(ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the maximum width for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the maximum width.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetMaxWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the minimum width for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the minimum width.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetMinWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the maximum height for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the maximum height.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetMaxHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the minimum height for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the minimum height.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetMinHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the width percentage reference for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the width percentage reference.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the height percentage reference for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the height percentage reference.
* @since 12
*/
int32_t OH_ArkUI_LayoutConstraint_GetPercentReferenceHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Sets the maximum width.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the maximum width, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMaxWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Sets the minimum width.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the minimum width, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMinWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Sets the maximum height.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the maximum height, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMaxHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Sets the minimum height.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the minimum height, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMinHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Sets the width percentage reference.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the width percentage reference, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Sets the height percentage reference.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the height percentage reference, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(ArkUI_LayoutConstraint* Constraint, int32_t value);

/**
* @brief Obtains the pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
* in the <b>Drawing</b> module.
*
* @param context Indicates the pointer to the drawing context.
* @return Returns the pointer to the canvas for drawing.
* @since 12
*/
void* OH_ArkUI_DrawContext_GetCanvas(ArkUI_DrawContext* context);

/**
* @brief Obtains the size of a drawing area.
*
* @param context Indicates the pointer to the drawing context.
* @return Returns the size of the drawing area.
* @since 12
*/
ArkUI_IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* context);

/**
 * @brief Creates <b>Grid</b> layout options.
 *
 * @return <b>Grid</b> layout options created.
 * @since 22
 */
ArkUI_GridLayoutOptions* OH_ArkUI_GridLayoutOptions_Create();

/**
 * @brief Disposes of <b>Grid</b> layout options.
 *
 * @param option <b>Grid</b> layout options.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_Dispose(ArkUI_GridLayoutOptions* option);

/**
 * @brief Sets the irregular grid item index array for the grid layout.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index array.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be null.
 * @since 22
 */
int32_t OH_ArkUI_GridLayoutOptions_SetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t size);

/**
 * @brief Obtains the irregular grid item index array for the grid layout.
 * When <b>OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback</b> is not set,
 * the grid item specified in <b>irregularIndexes</b> occupies an entire row of the grid that scrolls vertically or
 * an entire column of the grid that scrolls horizontally.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index array.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be null.
 * @since 22
 */
int32_t OH_ArkUI_GridLayoutOptions_GetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t* size);

/**
 * @brief Registers a callback to obtain the row and column span for the grid item at the specified index.
 *
 * @param option <b>Grid</b> layout options.
 * @param userData Indicates the custom data.
 * @param callback Callback that returns the row and column span for the grid item at the specified index.
 *        itemIndex: grid item index, which must be within the range set by
 *        {@link OH_ArkUI_GridLayoutOptions_SetIrregularIndexes}.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback(
    ArkUI_GridLayoutOptions* option, void* userData, ArkUI_GridItemSize (*callback)(int32_t itemIndex, void* userData));

/**
 * @brief Registers a callback to obtain the starting row, starting column, row span,
 * and column span for the grid item at the specified index.
 *
 * @param option <b>Grid</b> layout options.
 * @param userData Indicates the custom data.
 * @param callback Callback that returns the starting row, starting column, row span,
 *        and column span for the grid item at the specified index.
 *        itemIndex: grid item index.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetRectByIndexCallback(
    ArkUI_GridLayoutOptions* option, void* userData, ArkUI_GridItemRect (*callback)(int32_t itemIndex, void* userData));

/**
* @brief Creates water flow section configuration.
*
* @return Returns the water flow section configuration.
* @since 12
*/
ArkUI_WaterFlowSectionOption* OH_ArkUI_WaterFlowSectionOption_Create();

/**
* @brief Destroys the pointer to a water flow section configuration.
*
* @param option Indicates the pointer to a water flow section configuration.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_Dispose(ArkUI_WaterFlowSectionOption* option);

/**
* @brief Sets the FlowItem block configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @param size Array Length.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetSize(ArkUI_WaterFlowSectionOption* option, int32_t size);

/**
* @brief Gets the FlowItem grouping configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @return Array size. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option parameter is abnormal, such as a null pointer.
* @since 12
*/
int32_t OH_ArkUI_WaterFlowSectionOption_GetSize(ArkUI_WaterFlowSectionOption* option);

/**
* @brief Sets the number of items in a water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param itemCount Indicates the number of items in the water flow section.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetItemCount(ArkUI_WaterFlowSectionOption* option,
    int32_t index, int32_t itemCount);

/**
* @brief Obtains the number of items in the water flow section that matches the specified index.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the number of items in the water flow section.
* @since 12
*/
int32_t OH_ArkUI_WaterFlowSectionOption_GetItemCount(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param callback Gets the spindle size of the specified Item based on index.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndex(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float(*callback)(int32_t itemIndex));

/**
* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param userData FlowItem Custom data.
* @param callback Gets the spindle size of the specified Item based on index.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndexWithUserData(
    ArkUI_WaterFlowSectionOption* option, int32_t index, void* userData,
    float (*callback)(int32_t itemIndex, void* userData));

/**
* @brief Sets the number of columns (in a vertical layout) or rows (in a horizontal layout) of a water flow.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param crossCount Indicates the number of columns or rows, depending on the layout direction.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetCrossCount(
    ArkUI_WaterFlowSectionOption* option, int32_t index, int32_t crossCount);

/**
* @brief Obtains the number of columns (in a vertical layout) or rows (in a horizontal layout) in the water flow section
* that matches the specified index.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the number of columns or rows.
* @since 12
*/
int32_t OH_ArkUI_WaterFlowSectionOption_GetCrossCount(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the gap between columns in the specified water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param columnGap Indicates the gap between columns to set.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetColumnGap(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float columnGap);

/**
* @brief Obtains the gap between columns in the water flow section that matches the specified index.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the gap between columns.
* @since 12
*/
float OH_ArkUI_WaterFlowSectionOption_GetColumnGap(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the gap between rows in the specified water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param rowGap Indicates the gap between rows to set.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetRowGap(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float rowGap);

/**
* @brief Obtains the gap between rows in the water flow section that matches the specified index.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the gap between rows.
* @since 12
*/
float OH_ArkUI_WaterFlowSectionOption_GetRowGap(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the margins for the specified water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param marginTop Indicates the top margin of the water flow section.
* @param marginRight Indicates the right margin of the water flow section.
* @param marginBottom Indicates the bottom margin of the water flow section.
* @param marginLeft Indicates the left margin of the water flow section.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index,
    float marginTop, float marginRight, float marginBottom, float marginLeft);

/**
* @brief Obtains the margins of the water flow section that matches the specified index.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the margins.
* @since 12
*/
ArkUI_Margin OH_ArkUI_WaterFlowSectionOption_GetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
 * @brief Creates a navigation indicator.
 *
 * @param type Indicates the type of the indicator.
 * @return Returns the pointer to the new indicator.
 * @since 12
*/
ArkUI_SwiperIndicator* OH_ArkUI_SwiperIndicator_Create(ArkUI_SwiperIndicatorType type);

/**
 * @brief Destroys the pointer to the indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the distance between the navigation point and the start of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the start of the swiper.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief Obtains the distance between the navigation point and the start of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the start of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the distance between the navigation point and the top of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the top of the swiper.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief Obtains the distance between the navigation point and the top of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the top of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the distance between the navigation point and the right of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the right of the swiper.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief Obtains the distance between the navigation point and the end of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the end of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the distance between the navigation point and the bottom of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the bottom of the swiper.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief Obtains the distance between the navigation point and the bottom of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the bottom of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the width of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the width of the dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief Obtains the width of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the width of the dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the height of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the height of the dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief  Obtains the height of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the height of the dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the width of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the width of the selected dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief  Obtains the width of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the width of the selected dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the height of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the height of the selected dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float value);

/**
 * @brief  Obtains the height of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the height of the selected dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets whether to display the mask style of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param mask Whether to display the mask style. True means to display.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t mask);

/**
 * @brief Obtains whether to display the mask style of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns whether to display the mask style. True means to display.
 * @since 12
*/
int32_t OH_ArkUI_SwiperIndicator_GetMask(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the color of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param color the color of the dot navigation indicator, in 0xARGB format.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t color);

/**
 * @brief Obtains the color of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the color of the dot navigation indicator, in 0xARGB format.
 * @since 12
*/
uint32_t OH_ArkUI_SwiperIndicator_GetColor(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the color of the selected dot for the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param selectedColor the color of the selected dot, in 0xARGB format.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColor);

/**
 * @brief Obtains the color of the selected dot for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the color of the selected dot, in 0xARGB format.
 * @since 12
*/
uint32_t OH_ArkUI_SwiperIndicator_GetSelectedColor(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the number of maxDisplayCount for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
 * @retu  rn {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} indicator is null or maxDisplayCount less then 6 or
 *         maxDisplayCount more then 9
 * @since 12
*/
int32_t OH_ArkUI_SwiperIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCount);

/**
 * @brief Obtains the number of maxDisplayCount for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the number of the maxDisplayCount, span is 6-9.
 *         0 - indicator is null
 * @since 12
*/
int32_t OH_ArkUI_SwiperIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
 * The default value is 0.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator, int32_t ignoreSize);

/**
 * @brief Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns whether to ignore the size of the indicator.
 * @since 19
*/
int32_t OH_ArkUI_SwiperIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Sets the space between the dots of the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param space the space between the dots of the navigation indicator, the default value is 8vp.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float space);

/**
 * @brief Obtains the space between the dots of the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return the space between the dots of the navigation indicator
 * @since 19
*/
float OH_ArkUI_SwiperIndicator_GetSpace(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Creates a digital indicator.
 *
 * @return Returns the pointer to the new indicator.
 * @since 19
 */
ArkUI_SwiperDigitIndicator *OH_ArkUI_SwiperDigitIndicator_Create();

/**
 * @brief Sets the distance between the digital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the start of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetStartPosition(ArkUI_SwiperDigitIndicator* indicator, float value);

/**
 * @brief Gets the distance between the digital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the start of the swiper.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetStartPosition(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the distance between the digital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the top of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetTopPosition(ArkUI_SwiperDigitIndicator* indicator, float value);

/**
 * @brief Gets the distance between the digital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the top of the swiper.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetTopPosition(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the distance between the digital indicator and the end of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the end of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetEndPosition(ArkUI_SwiperDigitIndicator* indicator, float value);

/**
 * @brief Gets the distance between the digital indicator and the end of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the end of the swiper.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetEndPosition(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the distance between the digital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Returns the distance between the digital indicator and the bottom of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetBottomPosition(ArkUI_SwiperDigitIndicator* indicator, float value);

/**
 * @brief Gets the distance between the digital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the bottom of the swiper.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetBottomPosition(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param color font color, in 0xARGB format. Default value: 0xFF182431.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetFontColor(ArkUI_SwiperDigitIndicator* indicator, uint32_t color);

/**
 * @brief Gets the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font color, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperDigitIndicator_GetFontColor(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedColor font color, in 0xARGB format. Default value: 0xFF182431.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicator, uint32_t selectedColor);

/**
 * @brief Gets the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font color, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperDigitIndicator_GetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size font size, in fp.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetFontSize(ArkUI_SwiperDigitIndicator* indicator, float size);

/**
 * @brief Gets the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font size, in fp.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetFontSize(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size font size, in fp.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicator, float size);

/**
 * @brief Gets the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font size, in fp.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param fontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetFontWeight(ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight fontWeight);

/**
 * @brief Gets the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font weight {@link ArkUI_FontWeight}.
 * @since 19
 */
ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetFontWeight(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Sets the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedFontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_SetSelectedFontWeight(
    ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight selectedFontWeight);

/**
 * @brief Gets the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font weight {@link ArkUI_FontWeight}.
 * @since 19
 */
ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetSelectedFontWeight(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Destroys the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @since 19
 */
void OH_ArkUI_SwiperDigitIndicator_Destroy(ArkUI_SwiperDigitIndicator *indicator);

/**
 * @brief Sets whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
 * The default value is 0.
 * @since 19
*/
void OH_ArkUI_SwiperDigitIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperDigitIndicator* indicator, int32_t ignoreSize);

/**
 * @brief Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns whether to ignore the size of the indicator.
 * @since 19
*/
int32_t OH_ArkUI_SwiperDigitIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperDigitIndicator* indicator);

/**
 * @brief Creates a arrow style for swiper.
 *
 * @return Returns the pointer to the new arrow style.
 * @since 19
 */
ArkUI_SwiperArrowStyle *OH_ArkUI_SwiperArrowStyle_Create();

/**
 * @brief Sets whether to show the background for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showBackground whether to show the background for the arrow.
 *        The value <b>1</b> means to show the background, and <b>0</b> means the opposite.
 *        The default value is <b>0</b>.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetShowBackground(ArkUI_SwiperArrowStyle *arrowStyle, int32_t showBackground);

/**
 * @brief Gets whether to show the background for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return whether to show the background for the arrow.
 *         The value <b>1</b> means to show the background, and <b>0</b> means the opposite.
 * @since 19
 */
int32_t OH_ArkUI_SwiperArrowStyle_GetShowBackground(ArkUI_SwiperArrowStyle* arrowStyle);

/**
 * @brief Sets the display position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showSidebarMiddle the display position of the arrow.
 *        The value <b>1</b> means to display on boths sides of the swiper,
 *        and <b>0</b> means display on boths sides of the swiper indicator.
 *        The default value is <b>0</b>.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle, int32_t showSidebarMiddle);

/**
 * @brief Gets the display position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the display position of the arrow. The value <b>1</b> means to display on boths sides of the swiper,
 *         and <b>0</b> means display on boths sides of the swiper indicator.
 * @since 19
 */
int32_t OH_ArkUI_SwiperArrowStyle_GetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle);

/**
 * @brief Sets the background size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundSize the background size of the arrow. The unit is vp.
 *        The default value is <b>24</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>32</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetBackgroundSize(ArkUI_SwiperArrowStyle* arrowStyle, float backgroundSize);

/**
 * @brief Gets the background size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns the background size of the arrow. The unit is vp.
 * @since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(ArkUI_SwiperArrowStyle *arrowStyle);

/**
 * @brief Destroys the arrow style.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_Destroy(ArkUI_SwiperArrowStyle *arrowStyle);

/**
 * @brief Sets the background color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundColor the background color of the arrow, in 0xARGB format.
 *        The default value is <b>0x00000000</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>0x19182431</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetBackgroundColor(ArkUI_SwiperArrowStyle *arrowStyle, uint32_t backgroundColor);

/**
 * @brief Gets the background color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns the background color of the arrow, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperArrowStyle_GetBackgroundColor(ArkUI_SwiperArrowStyle* arrowStyle);

/**
 * @brief Sets the size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowSize the size of the arrow. The unit is vp.
 *        The default value is <b>18</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>24</b> when the arrow displays on both sides of the swiper.
 *        The arrow size is fixed to 3/4 of the background size when the background is shown.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle, float arrowSize);

/**
 * @brief Gets the size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the size of the arrow. The unit is vp.
 * @since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle);

/**
 * @brief Sets the color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowColor the color of the arrow, in 0xARGB format. The default value is <b>0x00182431</b>.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle, uint32_t arrowColor);

/**
 * @brief Gets the color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns the color of the arrow, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperArrowStyle_GetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle);

/**
 * @brief Create auxiliary line information in the RelativeContaine container.
 *
 * @param size The number of auxiliary lines.
 * @return auxiliary line information.
 * @since 12
 */
ArkUI_GuidelineOption* OH_ArkUI_GuidelineOption_Create(int32_t size);

/**
 * @brief Destroy auxiliary line information.
 *
 * @param guideline auxiliary line information.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_Dispose(ArkUI_GuidelineOption* guideline);

/**
 * @brief Set the Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value id, must be unique and cannot have the same name as the component in the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* value, int32_t index);

/**
 * @brief Set the direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value direction.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value, int32_t index);

/**
 * @brief Set the distance from the left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param value The distance from the left or top of the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float value, int32_t index);

/**
 * @brief Set the distance from the right or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param value The distance from the right side or bottom of the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float value, int32_t index);

/**
 * @brief Get the Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return Id.
 * @since 12
 */
const char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guideline, int32_t index);

/**
 * @brief Get the direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return direction.
 * @since 12
 */
ArkUI_Axis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guideline, int32_t index);

/**
 * @brief Get the distance from the left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return The distance from the left or top of the container.
 * @since 12
 */
float OH_ArkUI_GuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guideline, int32_t index);

/**
 * @brief Get the distance from the right side or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return The distance from the right side or bottom of the container.
 * @since 12
 */
float OH_ArkUI_GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guideline, int32_t index);

/**
 * @brief creates barrier information within the RelativeContaine container.
 *
 * @param size Number of barriers.
 * @return barrier information.
 * @since 12
 */
ArkUI_BarrierOption* OH_ArkUI_BarrierOption_Create(int32_t size);

/**
 * @brief Destroy barrier information.
 *
 * @param barrierStyle barrier information.
 * @since 12
 */
void OH_ArkUI_BarrierOption_Dispose(ArkUI_BarrierOption* barrierStyle);

/**
 * @brief Set the Id of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value id, must be unique and cannot have the same name as the component in the container.
 * @param index Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);

/**
 * @brief Set the direction of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value direction.
 * @param index Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetDirection(
    ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t index);

/**
 * @brief Sets the dependent component of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value The ID of the dependent component.
 * @param index Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index);

/**
 * @brief Get the Id of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The Id of the barrier.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle, int32_t index);

/**
 * @brief Gets the direction of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The direction of the barrier.
 * @since 12
 */
ArkUI_BarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyle, int32_t index);

/**
 * @brief Get the dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @param referencedIndex dependent component Id index value.
 * @return The barrier's dependent components.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetReferencedId(
    ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedIndex);

/**
 * @brief Gets the number of dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The number of dependent components of the barrier.
 * @since 12
 */
int32_t OH_ArkUI_BarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyle, int32_t index);

/**
 * @brief Set the types and parameters related to content transition effects.
 *
 * @since 21
 */
typedef struct ArkUI_ContentTransitionEffect ArkUI_ContentTransitionEffect;

/**
 * @brief creates content switching animation effects.
 *
 * @param type content transition type: 0-identity, 1-opacity.
 * @return content transition effect.
 * @since 21
 */
ArkUI_ContentTransitionEffect* OH_ArkUI_ContentTransitionEffect_Create(int32_t type);

/**
 * @brief creates alignment rule information for subcomponents in relative containers.
 *
 * @return Alignment rule information.
 * @since 12
 */
ArkUI_AlignmentRuleOption* OH_ArkUI_AlignmentRuleOption_Create();

/**
 * @brief Destroys the alignment rule information of subcomponents in relative containers.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_Dispose(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Set the start alignment parameter.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @param alignment Alignment relative to the anchor component.
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetStart(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);

/**
 * @brief Set the end alignment parameter.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @param alignment Alignment relative to the anchor component.
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetEnd(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);

/**
* @brief Set the parameters for horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to anchor component
* @since 12
*/
void OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);

/**
 * @brief Set the parameters for top alignment.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @param alignment Alignment relative to anchor component
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetTop(ArkUI_AlignmentRuleOption* option, const char* id,
    ArkUI_VerticalAlignment alignment);

/**
 * @brief Set the bottom alignment parameters.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @param alignment Alignment relative to anchor component
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetBottom(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);

/**
* @brief Set the parameters for vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to the anchor component.
* @since 12
*/
void OH_ArkUI_AlignmentRuleOption_SetCenterVertical(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);

/**
 * @brief Sets the horizontal offset parameter of the component under the anchor point constraint.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param horizontal bias value in the horizontal direction.
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetBiasHorizontal(ArkUI_AlignmentRuleOption* option, float horizontal);

/**
 * @brief Set the vertical offset parameter of the component under the anchor point constraint.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @param vertical bias value in the vertical direction.
 * @since 12
 */
void OH_ArkUI_AlignmentRuleOption_SetBiasVertical(ArkUI_AlignmentRuleOption* option, float vertical);

/**
 * @brief Get the Id of the start-aligned parameter.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return The id value of the anchor component.
 * @since 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetStartId(ArkUI_AlignmentRuleOption* option);

/**
* @brief Gets the alignment of the start-aligned parameter.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the parameters.
* @since 12
*/
ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetStartAlignment(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Get the end alignment parameter.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return End-aligned parameter id.
 * @since 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetEndId(ArkUI_AlignmentRuleOption* option);

/**
* @brief Get the end alignment parameter.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the end-aligned parameter.
* @since 12
*/
ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetEndAlignment(ArkUI_AlignmentRuleOption* option);

/**
* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The id of the parameter of horizontal center alignment.
* @since 12
*/
const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdHorizontal(ArkUI_AlignmentRuleOption* option);

/**
* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the horizontally centered alignment parameter.
* @since 12
*/
ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Get the top-aligned parameters.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return Top aligned parameter id.
 * @since 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetTopId(ArkUI_AlignmentRuleOption* option);

/**
* @brief Get the top-aligned parameters.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the top-aligned parameter.
* @since 12
*/
ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetTopAlignment(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Get the bottom alignment parameters.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return The id of the bottom-aligned parameter.
 * @since 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetBottomId(ArkUI_AlignmentRuleOption* option);

/**
* @brief Get the bottom alignment parameters.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the bottom-aligned parameter.
* @since 12
*/
ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetBottomAlignment(ArkUI_AlignmentRuleOption* option);

/**
* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The id of the vertical center alignment parameter.
* @since 12
*/
const char* OH_ArkUI_AlignmentRuleOption_GetCenterIdVertical(ArkUI_AlignmentRuleOption* option);

/**
* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the vertical center alignment parameter.
* @since 12
*/
ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Get the bias value in the horizontal direction.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return The bias value in the horizontal direction.
 * @since 12
 */
float OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Get the bias value in the vertical direction.
 *
 * @param option Alignment rule information of subcomponents in the relative container.
 * @return bias value in vertical direction.
 * @since 12
*/
float OH_ArkUI_AlignmentRuleOption_GetBiasVertical(ArkUI_AlignmentRuleOption* option);

/**
 * @brief Create a configuration item for the ListitemSwipeActionItem interface settings.
 *
 * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create();

/**
* @brief Destroy the ListitemSwipeActionItem instance.
*
* @param item List Item SwipeActionItem instance to be destroyed.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content of ListItem SwipeActionItem.
*
* @param item List Item SwipeActionItem instance.
* @param node Layout information.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* item, ArkUI_NodeHandle node);

/**
* @brief Set the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @param distance Component long-distance sliding deletion distance threshold.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distance);

/**
* @brief Obtain the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @return Component long-distance sliding deletion distance threshold. If -1.0f is returned, the return fails.
*         The possible cause of the failure is that the item parameter is abnormal, such as a null pointer.
* @since 12
*/
float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the event to be called when a sliding entry enters the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());

/**
 * @brief Set the event triggered when a sliding entry enters the deletion area.
 *
 * @param item List Item SwipeActionItem instance.
 * @param userData User defined data.
 * @param callback Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)());

/**
 * @brief Set the event triggered when a component enters the long-range deletion area and deletes a ListItem.
 *
 * @param item List Item SwipeActionItem instance.
 * @param userData User defined data.
 * @param callback Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActio  nItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event to be called when a sliding entry exits the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());

/**
 * @brief Set the event triggered when a sliding entry exits the deletion area.
 *
 * @param item List Item SwipeActionItem instance.
 * @param userData User defined data.
 * @param callback Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event triggered when the sliding state of a list item changes.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
*        swipeActionState The changed state.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* item,
    void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState));

/**
 * @brief Set the event triggered when the sliding state of a list item changes.
 *
 * @param item List Item SwipeActionItem instance.
 * @param userData User defined data.
 * @param callback Callback Events.
 *        swipeActionState The changed state.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(ArkUI_ListItemSwipeActionState swipeActionState, void* userData));

/**
 * @brief Create a configuration item for the ListitemSwipeActionOption interface settings.
 *
 * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create();

/**
* @brief Destroy the ListitemSwipeActionOption instance.
*
* @param option List Item SwipeActionOption instance to be destroyed.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeActionOption* option);

/**
* @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param option List Item SwipeActionItem instance.
* @param item Layout information.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param option List Item SwipeActionItem instance.
* @param item Layout information.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @param edgeEffect Sliding effect.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeEdgeEffect edgeEffect);

/**
* @brief Get the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option parameter is abnormal, such as a null pointer.
* @since 12
*/
int32_t OH_ArkUI_ListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeActionOption* option);

/**
* @brief The event called when the sliding operation offset changes.
*
* @param option List Item SwipeActionItem instance.
* @param callback Callback Events.
*        offset Slide offset.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChange(ArkUI_ListItemSwipeActionOption* option,
    void (*callback)(float offset));

/**
 * @brief Set the event triggered when the sliding operation offset changes.
 *
 * @param option List Item SwipeActionItem instance.
 * @param userData User defined data.
 * @param callback Callback Events.
 *        offset Slide offset.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* option,
    void* userData, void (*callback)(float offset, void* userData));

/**
 * @brief Create configuration items for the ListChildrenMainSize interface settings.
 *
 * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOption_Create();

/**
* @brief Destroy the ListChildrenMainSize instance.
*
* @param option The ListChildrenMainSize instance to be destroyed.
* @since 12
*/
void OH_ArkUI_ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize* option);

/**
 * @brief Set the default size of ChildrenMainSizeOption for the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
 * @return 0 represents success. If defaultMainSize is less than 0 or option is a null pointer, return 401.
 * @since 12
*/
int32_t OH_ArkUI_ListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
    float defaultMainSize);

/**
 * @brief Get the default size of ChildrenMainSizeOption for the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @return The default size of the ListItem under the List is 0, measured in vp.
 *         When the option is a null pointer, it returns -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSize* option);

/**
 * @brief Reset the array size of ChildrenMainSizeOption for the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @param totalSize Array size.
 * @since 12
*/
void OH_ArkUI_ListChildrenMainSizeOption_Resize(ArkUI_ListChildrenMainSize* option, int32_t totalSize);

/**
 * @brief Resize the ChildrenMainSizeOption array operation on the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param deleteCount The number of MainSize arrays to be deleted starting from index.
 * @param addCount The number of MainSize arrays to be added starting from index.
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
*/
int32_t OH_ArkUI_ListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
    int32_t deleteCount, int32_t addCount);

/**
 * @brief Update the value of the ChildrenMainSizeOption array in the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param mainSize The actual modified value.
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
*/
int32_t OH_ArkUI_ListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
    int32_t index, float mainSize);

/**
 * @brief Get the value of the ChildrenMainSizeOption array for the List component.
 *
 * @param option ListChildrenMainSize instance.
 * @param index The index position of the value to be obtained.
 * @return The value of the specific position of the array. If the function parameter is abnormal, return -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetMainSize(ArkUI_ListChildrenMainSize* option, int32_t index);

/**
 * @brief Creates measurement information for this custom span.
 *
 * @return Returns a <b>CustomSpanMeasureInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void);

/**
 * @brief Disposes of measurement information of this custom span.
 *
 * @param info The CustomSpanMeasureInfo instance to be destroyed.
 * @since 12
*/
void OH_ArkUI_CustomSpanMeasureInfo_Dispose(ArkUI_CustomSpanMeasureInfo* info);

/**
 * @brief Obtains the font size of a custom span.
 *
 * @param info Indicates the pointer to the measurement information of a custom span.
 * @return Returns the font size. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(ArkUI_CustomSpanMeasureInfo* info);

/**
 * @brief Creates measurement metrics for this custom span.
 *
 * @return Returns a <b>CustomSpanMetrics</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(void);

/**
 * @brief Disposes of measurement metrics of this custom span.
 *
 * @param metrics The CustomSpanMetrics instance to be destroyed.
 * @since 12
*/
void OH_ArkUI_CustomSpanMetrics_Dispose(ArkUI_CustomSpanMetrics* metrics);

/**
 * @brief Sets the width for a custom span.
 *
 * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
 * @param width Indicates the width, in px. The width should be greater than 0.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
int32_t OH_ArkUI_CustomSpanMetrics_SetWidth(ArkUI_CustomSpanMetrics* metrics, float width);

/**
 * @brief Sets the height for a custom span.
 *
 * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
 * @param width Indicates the height, in px. The width should be greater than 0.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
int32_t OH_ArkUI_CustomSpanMetrics_SetHeight(ArkUI_CustomSpanMetrics* metrics, float height);

/**
 * @brief Creates drawing information for this custom span.
 *
 * @return Returns a <b>CustomSpanDrawInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanDrawInfo* OH_ArkUI_CustomSpanDrawInfo_Create(void);

/**
 * @brief Disposes of drawing information for this custom span.
 *
 * @param info The CustomSpanDrawInfo instance to be destroyed.
 * @since 12
*/
void OH_ArkUI_CustomSpanDrawInfo_Dispose(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the x-axis offset of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the x-axis offset. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetXOffset(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the top margin of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the top margin. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineTop(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the bottom margin of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the bottom margin. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the baseline offset of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the baseline offset. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetBaseline(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Create a image frame from the image path.
 * @param src Indicates the image path.
 * @return Returns the pointer to the image frame object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that
 * the src parameter is abnormal, for example, the pointer is null.
 * @since 12
*/
ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src);

/**
 * @brief Create a image frame from the drawable descriptor.
 *
 * @param drawable Indicates the pointer to the drawable descriptor.
 * @return Returns the pointer to the image frame object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that
 * the drawable parameter is abnormal, for example, the pointer is null.
 * @since 12
*/
ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
    ArkUI_DrawableDescriptor* drawable);

/**
 * @brief Destroy the pointer to the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Set the width of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param width Indicates the width of the image frame, and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width);

/**
 * @brief Get the width of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Return the width of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
*/
int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Set the height of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param height Indicates the height of the image frame, and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t height);

/**
 * @brief Get the height of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Return the height of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
*/
int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Set the vertical coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param top Indicates the vertical coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top);

/**
 * @brief Get the vertical coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Returns the vertical coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
*/
int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Set the horizontal coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param left Indicates the horizontal coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t left);

/**
 * @brief Get the horizontal coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Returns the horizontal coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
*/
int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Set the playback duration of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param duration Indicates the playback duration of each image frame, and the unit is milliseconds.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t duration);

/**
 * @brief Get the playback duration of the image frame.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Returns the playback duration of the image frame, and the unit is milliseconds.
 * Return 0 when the imageInfo is null.
 * @since 12
*/
int32_t OH_ArkUI_ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Create accessibility state.
 *
 * @return Returns the pointer to the accessibility state object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
 * @since 12
*/
ArkUI_AccessibilityState* OH_ArkUI_AccessibilityState_Create(void);

/**
* @brief Dispose accessibility state.
*
* @param state accessibility state object.
* @since 12
*/
void OH_ArkUI_AccessibilityState_Dispose(ArkUI_AccessibilityState* state);

/**
 * @brief Set accessibility state disabled.
 *
 * @param state accessibility state object.
 * @param isDisabled accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled.
 * @since 12
*/
void OH_ArkUI_AccessibilityState_SetDisabled(ArkUI_AccessibilityState* state, int32_t isDisabled);

/**
 * @brief Get accessibility state disabled.
 *
 * @param state accessibility state object.
 * @return accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled. The default value is 0.
 *         If the function parameter is abnormal, return the default value.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityState_IsDisabled(ArkUI_AccessibilityState* state);

/**
 * @brief Set accessibility state selected.
 *
 * @param state accessibility state object.
 * @param isSelected accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *        The default value is 0.
 * @since 12
*/
void OH_ArkUI_AccessibilityState_SetSelected(ArkUI_AccessibilityState* state, int32_t isSelected);

/**
 * @brief Get accessibility state selected.
 *
 * @param state accessibility state object.
 * @return accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *         The default value is 0.
 *         If the function parameter is abnormal, return the default value.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityState_IsSelected(ArkUI_AccessibilityState* state);

/**
 * @brief Set accessibility checked state.
 *
 * @param state accessibility state object.
 * @param checkedState checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
 *        The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
 * @since 12
*/
void OH_ArkUI_AccessibilityState_SetCheckedState(ArkUI_AccessibilityState* state, int32_t checkedState);

/**
 * @brief Get accessibility checked state.
 *
 * @param state accessibility state object.
 * @return checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
 *         The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
 *         If the function parameter is abnormal, return the default value.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityState_GetCheckedState(ArkUI_AccessibilityState* state);

/**
 * @brief Create accessibility value.
 *
 * @return Returns the pointer to the accessibility state object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
 * @since 12
*/
ArkUI_AccessibilityValue* OH_ArkUI_AccessibilityValue_Create(void);

/**
* @brief Dispose accessibility value.
*
* @param value accessibility value object.
* @since 12
*/
void OH_ArkUI_AccessibilityValue_Dispose(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param min minimum value based on range components, The default value is -1.
 * @since 12
*/
void OH_ArkUI_AccessibilityValue_SetMin(ArkUI_AccessibilityValue* value, int32_t min);

/**
 * @brief Get accessibility minimum value.
 *
 * @param value accessibility value object.
 * @return minimum value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityValue_GetMin(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param max maximum value based on range components, The default value is -1.
 * @since 12
*/
void OH_ArkUI_AccessibilityValue_SetMax(ArkUI_AccessibilityValue* value, int32_t max);

/**
 * @brief Get accessibility minimum value.
 *
 * @param value accessibility value object.
 * @return maximum value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityValue_GetMax(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param current value based on range components, The default value is -1.
 * @since 12
*/
void OH_ArkUI_AccessibilityValue_SetCurrent(ArkUI_AccessibilityValue* value, int32_t current);

/**
 * @brief Get accessibility current value.
 *
 * @param value accessibility value object.
 * @return current value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 12
*/
int32_t OH_ArkUI_AccessibilityValue_GetCurrent(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param rangeMin minimum value based on range components, The default value is -1.
 * @since 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeMin(ArkUI_AccessibilityValue* value, int32_t rangeMin);

/**
 * @brief Get accessibility minimum value.
 *
 * @param value accessibility value object.
 * @return minimum value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
*/
int32_t OH_ArkUI_AccessibilityValue_GetRangeMin(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility maximum value.
 *
 * @param value accessibility value object.
 * @param rangeMax maximum value based on range components, The default value is -1.
 * @since 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeMax(ArkUI_AccessibilityValue* value, int32_t rangeMax);

/**
 * @brief Get accessibility maximum value.
 *
 * @param value accessibility value object.
 * @return maximum value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
*/
int32_t OH_ArkUI_AccessibilityValue_GetRangeMax(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param rangeCurrent value based on range components, The default value is -1.
 * @since 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeCurrent(ArkUI_AccessibilityValue* value, int32_t rangeCurrent);

/**
 * @brief Get accessibility current value.
 *
 * @param value accessibility value object.
 * @return current value based on range components, The default value is -1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
*/
int32_t OH_ArkUI_AccessibilityValue_GetRangeCurrent(ArkUI_AccessibilityValue* value);

/**
 * @brief Set accessibility text value.
 *
 * @param value accessibility value object.
 * @param text The textual description information of the component, which defaults to an empty string.
 * @since 12
*/
void OH_ArkUI_AccessibilityValue_SetText(ArkUI_AccessibilityValue* value, const char* text);

/**
 * @brief Get accessibility text value.
 *
 * @param value accessibility value object.
 * @return The textual description information of the component, which defaults to an empty string;
 *         If the function parameter is abnormal, return null.
 * @since 12
*/
const char* OH_ArkUI_AccessibilityValue_GetText(ArkUI_AccessibilityValue* value);

/**
 * @brief Destroy the instance of Customs Property.
 *
 * @param handle The instance of Customs Property to be destroyed.
 * @since 14
 */
void OH_ArkUI_CustomProperty_Destroy(ArkUI_CustomProperty* handle);

/**
 * @brief Get custom attribute value information.
 *
 * @param handle Custom attribute object pointer.
 * @return Customize the value information within the attribute structure.
 * @since 14
 */
const char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty* handle);

/**
 * @brief Get window name from HostWindowInfo.
 *
 * @param info HostWindowInfo object pointer.
 * @return Window name in HostWindowInfo.
 * @since 15
 */
const char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy the instance of HostWindowInfo.
 *
 * @param info Instance of HostWindowInfo to be destroyed.
 * @since 15
 */
void OH_ArkUI_HostWindowInfo_Destroy(ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy ActiveChildenInfo instance.
 *
 * @param handle ActiveChild instance to be destroyed.
 * @since 14
 */
void OH_ArkUI_ActiveChildrenInfo_Destroy(ArkUI_ActiveChildrenInfo* handle);

/**
 * @brief Retrieve the child nodes of ActiveChildenInfo with the structure index.
 *
 * @param handle The ActiveChildenInfo instance for obtaining information.
 * @param index The index of child nodes.
 * @return The child node pointer corresponding to the index. Return nullptr in case of exception.
 * @since 14
 */
ArkUI_NodeHandle OH_ArkUI_ActiveChildrenInfo_GetNodeByIndex(ArkUI_ActiveChildrenInfo* handle, int32_t index);

/**
 * @brief Retrieve the number of nodes within the structure of ActiveChildenInfo.
 *
 * @param handle The ActiveChildenInfo instance for obtaining information.
 * @return Number of child nodes. Default value: 0.
 * @since 14
 */
int32_t OH_ArkUI_ActiveChildrenInfo_GetCount(ArkUI_ActiveChildrenInfo* handle);

/**
 * @brief Create linear progress indicator style information.
 *
 * @return Returns a <b>ProgressLinearStyleOption</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 15
 */
ArkUI_ProgressLinearStyleOption* OH_ArkUI_ProgressLinearStyleOption_Create(void);

/**
 * @brief Destroy linear progress indicator style information.
 *
 * @param option Linear progress indicator style information.
 * @since 15
 */
void OH_ArkUI_ProgressLinearStyleOption_Destroy(ArkUI_ProgressLinearStyleOption* option);

/**
 * @brief Set whether the scan effect is enabled.
 *
 * @param option Linear progress indicator style information.
 * @param enabled Whether to enable the scan effect. Default value: false.
 * @since 15
 */
void OH_ArkUI_ProgressLinearStyleOption_SetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);

/**
 * @brief Set whether smoothing effect is enabled.
 *
 * @param option Linear progress indicator style information.
 * @param enabled Whether to enable the smooth effect. When this effect is enabled, the progress change to
 * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true.
 * @since 15
 */
void OH_ArkUI_ProgressLinearStyleOption_SetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled);

/**
 * @brief Set linear progress indicator stroke width.
 *
 * @param option Linear progress indicator style information.
 * @param strokeWidth Stroke width of the progress indicator. It cannot be set in percentage.
 * Default value: 4.0vp.
 * @since 15
 */
void OH_ArkUI_ProgressLinearStyleOption_SetStrokeWidth(ArkUI_ProgressLinearStyleOption* option, float strokeWidth);

/**
 * @brief Set linear progress indicator stroke radius.
 *
 * @param option Linear progress indicator style information.
 * @param strokeRadius Rounded corner radius of the progress indicator. Value range: [0, strokeWidth/2].
 * Default value: strokeWidth/2.
 * @since 15
 */
void OH_ArkUI_ProgressLinearStyleOption_SetStrokeRadius(ArkUI_ProgressLinearStyleOption* option, float strokeRadius);

/**
 * @brief Get whether scan effect is enable.
 *
 * @param option Linear progress indicator style information.
 * @return Whether to enable the scan effect.
 * @since 15
 */
bool OH_ArkUI_ProgressLinearStyleOption_GetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option);

/**
 * @brief Get whether smoothing effect is enabled.
 *
 * @param option Linear progress indicator style information.
 * @return Whether to enable the smooth effect.
 * @since 15
 */
bool OH_ArkUI_ProgressLinearStyleOption_GetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option);

/**
 * @brief Get linear progress indicator stroke width.
 *
 * @param option Linear progress indicator style information.
 * @return Stroke width of the progress indicator.
 * @since 15
 */
float OH_ArkUI_ProgressLinearStyleOption_GetStrokeWidth(ArkUI_ProgressLinearStyleOption* option);

/**
 * @brief Get linear progress indicator stroke radius.
 *
 * @param option Linear progress indicator style information.
 * @return Rounded corner radius of the progress indicator.
 * @since 15
 */
float OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(ArkUI_ProgressLinearStyleOption* option);

/**
 * @brief Create a cross-language option instance.
 *
 * @return Returns a cross-language option instance. If the result is a null pointer, it may be out of memory.
 * @since 15
 */
ArkUI_CrossLanguageOption* OH_ArkUI_CrossLanguageOption_Create(void);

/**
 * @brief Destroy the cross-language option instance.
 *
 * @param option The cross-language option instance.
 * @since 15
 */
void OH_ArkUI_CrossLanguageOption_Destroy(ArkUI_CrossLanguageOption* option);

/**
 * @brief Enable the attribute setting in the cross-language option.
 *
 * @param option The cross-language option.
 * @param enabled The attribute setting in the cross-language option.
 * Default value: false.
 * @since 15
 */
void OH_ArkUI_CrossLanguageOption_SetAttributeSettingStatus(ArkUI_CrossLanguageOption* option, bool enabled);

/**
 * @brief Get the attribute setting enable of the cross-language option.
 *
 * @param option The cross-language option.
 * @return The attribute setting enable of the cross-language option.
 * @since 15
 */
bool OH_ArkUI_CrossLanguageOption_GetAttributeSettingStatus(ArkUI_CrossLanguageOption* option);

/**
 * @brief Creates an option for taking snapshot, the returned value must be released through
 *        {@link OH_ArkUI_DestroySnapshotOptions} when it's not used anymore.
 *
 * @return Returns the pointer to the created snapshot options object.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 15
 */
ArkUI_SnapshotOptions* OH_ArkUI_CreateSnapshotOptions();

/**
 * @brief Dispose a snapshot option object.
 *
 * @param snapshotOptions Indicates the pointer to the snapshot option.
 * @since 15
 */
void OH_ArkUI_DestroySnapshotOptions(ArkUI_SnapshotOptions* snapshotOptions);

/**
 * @brief Config the snapshot option with scale.
 *
 * @param snapshotOptions Indicates the pointer to the snapshot option.
 * @param scale Indicates the scale property to take the snapshot.
 * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 15
 */
int32_t OH_ArkUI_Snapshot  Options_SetScale(ArkUI_SnapshotOptions* snapshotOptions, float scale);

/**
 * @brief Sets the color mode for snapshot capture.
 * By default, snapshots are captured in SRGB mode, which may lose visual effects for components using wide color
 * gamut display modes.
 * If the target component's color space is known, specify it through <b>colorSpace</b> and set <b>isAuto</b> to
 * <b>false</b> to achieve optimal snapshot quality.
 * Since determining the exact color space used by a component is often difficult, set <b>isAuto</b> to <b>true</b>
 * to let the system automatically select the appropriate color space.
 * If <b>isAuto</b> is set to <b>true</b>, the <b>colorSpace</b> parameter value is ignored.
 *
 * @param snapshotOptions Pointer to the target snapshot configuration options.
 * @param colorSpace Target color space. Supported values: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b>
 *                   (DISPLAY_BT2020_SRGB).
 * @param isAuto Whether to auto-detect the color space.
 *               <b>true</b>: ignores the <b>colorSpace</b> parameter value and auto-detects the color space.
 *               <b>false</b>: uses the color space specified by <b>colorSpace</b>.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 23
 */
int32_t OH_ArkUI_SnapshotOptions_SetColorMode(ArkUI_SnapshotOptions* snapshotOptions, int32_t colorSpace, bool isAuto);

/**
 * @brief Sets the dynamic range mode for snapshot capture.
 * By default, the system captures snapshots in {@link ARKUI_DYNAMIC_RANGE_MODE_STANDARD} mode.
 * To use a specific mode, specify it via the <b>dynamicRangeMode</b> parameter and set <b>isAuto</b> to <b>false</b>.
 * Alternatively, set <b>isAuto</b> to <b>true</b> to let the system auto-detect the appropriate dynamic range mode.
 * If <b>isAuto</b> is set to <b>true</b>, the <b>dynamicRangeMode</b> parameter value is ignored.
 *
 * @param snapshotOptions Pointer to the target snapshot configuration options.
 * @param dynamicRangeMode Target dynamic range mode, specified using {@link ArkUI_DynamicRangeMode}.
 * @param isAuto Whether to auto-detect the dynamic range mode.
 *               <b>true</b>: ignores the <b>dynamicRangeMode</b> parameter value and auto-detects the dynamic range
 *                            mode.
 *               <b>false</b>: uses the dynamic range mode specified by <b>dynamicRangeMode</b>.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 23
 */
int32_t OH_ArkUI_SnapshotOptions_SetDynamicRangeMode(
    ArkUI_SnapshotOptions* snapshotOptions, int32_t dynamicRangeMode, bool isAuto);

/**
 * @brief Defines the parameters for visible area change events.
 *
 * @since 17
 */
typedef struct ArkUI_VisibleAreaEventOptions ArkUI_VisibleAreaEventOptions;

/**
* @brief Creates an instance of visible area change event parameters
*
* @return Returns the created instance of visible area change event parameters.
* @since 17
*/
ArkUI_VisibleAreaEventOptions* OH_ArkUI_VisibleAreaEventOptions_Create();

/**
* @brief Disposes of an instance of visible area change event parameters.
*
* @param option Instance to be destroyed.
* @since 17
*/
void OH_ArkUI_VisibleAreaEventOptions_Dispose(ArkUI_VisibleAreaEventOptions* option);

/**
* @brief Sets the threshold ratios for visible area changes.
*
* @param option Instance of visible area change event parameters.
* @param value Array of threshold ratios. Each element represents the ratio of the visible area of a component to
* its total area. The visible area is calculated within the parent component's bounds; any area outside the parent
* component is not considered. Each value must be within the [0.0, 1.0] range.
* Values outside this range will be handled as 0.0 or 1.0.
* @param size Size of the threshold array.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
*/
int32_t OH_ArkUI_VisibleAreaEventOptions_SetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t size);

/**
* @brief Sets the expected update interval for visible area changes.
*
* @param option Instance of visible area change event parameters.
* @param value Expected update interval, in ms.  Default value: <b>1000</b>.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
*/
int32_t OH_ArkUI_VisibleAreaEventOptions_SetExpectedUpdateInterval(
    ArkUI_VisibleAreaEventOptions *option, int32_t value);

/**
* @brief Sets the flag for controlling if the child components can exceed the parent's bounds.
* if set to false, the part that exceeds the parent's bounds will be considered as invisible area,
* set to true to allow the exceeding, the part that exceeds will be considered as visible area.
*
* Please note that if the parent component set clip(true), the measureFromViewport configuration
* will be ignored.
*
* @param option Instance of visible area change event parameters.
* @param measureFromViewport When this parameter is set to true, the parts of the component
*    that exceed the parent component's area will also be included in the visible area calculation. However, this
*    only applies if the parent component does not explicitly set the clip property to true. If the parent component
*    sets clip to true, regardless of the value of this parameter, the parts that exceed the parent component's area
*    will still be treated as invisible in the visible area calculation.
* Default measureFromViewport: <b>false</b>.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 22
*/
int32_t OH_ArkUI_VisibleAreaEventOptions_SetMeasureFromViewport(
    ArkUI_VisibleAreaEventOptions* option, bool measureFromViewport);

/**
 * @brief Obtains the threshold ratios for visible area changes.
 *
 * @param option Instance of visible area change event parameters.
 * @param value Array of threshold ratios.
 * @param size Size of the threshold array.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be null.
 * @since 17
 */
int32_t OH_ArkUI_VisibleAreaEventOptions_GetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t* size);

/**
 * @brief Obtains the expected update interval for visible area changes.
 *
 * @param option Instance of visible area change event parameters.
 * @return Returns the expected update interval, in ms.  Default value: <b>1000</b>.
 * @since 17
 */
int32_t OH_ArkUI_VisibleAreaEventOptions_GetExpectedUpdateInterval(ArkUI_VisibleAreaEventOptions* option);

/**
 * @brief Obtains the value set through {@link OH_ArkUI_VisibleAreaEventOptions_SetMeasureFromViewport} .
 *
 * @param option Instance of visible area change event parameters.
 * @return Returns the flag for controlling of the visible area calculation. Default value: <b>false</b>.
 *
 * @since 22
 */
bool OH_ArkUI_VisibleAreaEventOptions_GetMeasureFromViewport(ArkUI_VisibleAreaEventOptions* option);

/**
 * @brief Creates a TextPickerRangeContent instance.
 *
 * @param length The length of the picker array. Value range: [1, +∞).
 * @return Returns a pointer to the created instance on success. Initialize each item of the array
 *         as a null pointer;call {@link OH_ArkUI_TextPickerRangeContentArray_SetIconAtIndex} and/or
 *         {@link OH_ArkUI_TextPickerRangeContentArray_SetTextAtIndex} for each index as needed.
 *         Returns <b>nullptr</b> if <b>length</b> is not in <b>[1, +∞)</b>.
 *         When the object is no longer used, release it with {@link OH_ArkUI_TextPickerRangeContentArray_Destroy}.
 * @since 19
 */
ArkUI_TextPickerRangeContentArray* OH_ArkUI_TextPickerRangeContentArray_Create(int32_t length);

/**
 * @brief Sets the icon resource path or URI for one item in an {@link ArkUI_TextPickerRangeContentArray}.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextPickerRangeContentArray_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param icon Null-terminated C string for the icon (path or URI). The content is copied into the array; the caller
 *        keeps ownership of <b>icon</b>. If <b>nullptr</b>, this function has no effect.
 * @param index Index of the item to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextPickerRangeContentArray_Create}. Otherwise this function
 *        does nothing.
 * @note If an icon was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_SetIconAtIndex(
    ArkUI_TextPickerRangeContentArray* handle, char* icon, int32_t index);

/**
 * @brief Sets the display text for one item in an {@link ArkUI_TextPickerRangeContentArray}.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextPickerRangeContentArray_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param text Null-terminated C string shown for the item. The content is copied into the array; the caller keeps
 *        ownership of <b>text</b>. If <b>nullptr</b>, this function has no effect.
 * @param index Index of the item to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextPickerRangeContentArray_Create}. Otherwise this function
 *        does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextPickerRangeContentArray* handle, char* text, int32_t index);

/**
 * @brief Releases an {@link ArkUI_TextPickerRangeContentArray} created by
 *        {@link OH_ArkUI_TextPickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_ArkUI_TextPickerRangeContentArray_Create}.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_Destroy(ArkUI_TextPickerRangeContentArray* handle);

/**
 * @brief Allocates one column level of an interconnected (cascade) TextPicker range. Use with range type
 *        {@link ARKUI_TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT}. The returned pointer addresses a contiguous array
 *        of sibling nodes; each node may carry display text and an optional next-level range from
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex}.
 *
 * @param length Number of sibling entries on this column. Value range: <b>[1, +∞)</b>.
 * @return Returns a pointer to the first sibling node when <b>length</b> is in <b>[1, +∞)</b>; returns <b>nullptr</b>
 *         otherwise. The sibling count used for bounds checks equals <b>length</b>.
 * @since 19
 */
ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI_TextCascadePickerRangeContentArray_Create(int32_t length);

/**
 * @brief Sets the display text for one sibling node on a cascade TextPicker level.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param text Null-terminated C string. The content is copied; the caller keeps ownership of <b>text</b>. If
 *        <b>nullptr</b>, this function has no effect.
 * @param index Index of the sibling to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. Otherwise this
 *        function does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, char* text, int32_t index);

/**
 * @brief Sets the childs info of items in a multi text picker ranges.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param child Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create} for the child column.
 *        If <b>nullptr</b>, this function has no effect. If a subtree already exists at <b>index</b>, it is destroyed
 *        with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} before the new <b>child</b> is stored.
 *        While <b>child</b> stays attached under the parent, the caller must not call
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} on <b>child</b>.
 * @param index Index of the sibling that owns the subtree. Valid values are greater than or equal to <b>0</b> and less
 *        than the <b>length</b> argument passed to {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 *        Otherwise this function does nothing.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, ArkUI_TextCascadePickerRangeContentArray* child, int32_t index);

/**
 * @brief Releases a cascade range level allocated with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 * @note Do not call {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} on a <b>child</b> while
 *       it is still stored in a parent's {@code children}.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handle);

/**
 * @brief Create an object for the EmbeddedComponent option.
 *
 * @return A pointer to the object of the EmbeddedComponent option.
 * @since 20
 */
ArkUI_EmbeddedComponentOption* OH_ArkUI_EmbeddedComponentOption_Create();

/**
 * @brief Destroy the object by EmbeddedComponent option.
 *
 * @param option Pointer to the object by the EmbeddeComponent to be destroyed.
 * @since 20
 */
void OH_ArkUI_EmbeddedComponentOption_Dispose(ArkUI_EmbeddedComponentOption* option);

/**
 * @brief Set the onError of EmbeddedComponent.
 *
 * @param option Pointer to the object option by the EmbeddedComponent.
 * @param code Common error information about the API invoking failure.
 * @param name Common error name information about the API invoking failure.
 * @param message Common error message information about the API invoking failure.
 * @since 20
 */
void OH_ArkUI_EmbeddedComponentOption_SetOnError(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, const char* name, const char* message));

/**
 * @brief Set the onTerminated of EmbeddedComponent.
 *
 * @param option Pointer to the object option by the EmbeddedComponent.
 * @param code Result code returned when the EmbeddedUIExtensionAbility exits.
 * @param want Data returned when the EmbeddedUIExtensionAbility exits.
 * @since 20
 */
void OH_ArkUI_EmbeddedComponentOption_SetOnTerminated(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, AbilityBase_Want* want));

/**
 * @brief Expand the swipe action.
 *
 * @param node List Item node.
 * @param direction expand direction of swipeAction.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_ERROR} The component type of the node is incorrect.
 *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node not mounted to component tree.
 * @since 21
 */
int32_t OH_ArkUI_ListItemSwipeAction_Expand(ArkUI_NodeHandle node, ArkUI_ListItemSwipeActionDirection direction);

/**
 * @brief Collapse the swipe action.
 *
 * @param node List Item node.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_ERROR} The component type of the node is incorrect.
 *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node not mounted to component tree.
 * @since 21
 */
int32_t OH_ArkUI_ListItemSwipeAction_Collapse(ArkUI_NodeHandle node);

/**
 * @brief Create an edge object for position attribute.
 *
 * @return A pointer to the edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Create();

/**
 * @brief Creates a deep copy of an edge object for position attribute.
 *
 * @param edges A pointer to an edge object.
 * @return A pointer to the new edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Copy(const ArkUI_PositionEdges* edges);

/**
 * @brief Dispose an edge object for position attribute.
 *
 * @param edges Pointer to the edge object to be disposed.
 * @since 21
 */
void OH_ArkUI_PositionEdges_Dispose(ArkUI_PositionEdges* edges);

/**
 * @brief Sets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of top edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetTop(ArkUI_PositionEdges* edges, float value);

/**
 * @brief Gets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of top edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PositionEdges_GetTop(ArkUI_PositionEdges* edges, float* value);

/**
 * @brief Sets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of left edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetLeft(ArkUI_PositionEdges* edges, float value);

/**
 * @brief Gets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of left edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PositionEdges_GetLeft(ArkUI_PositionEdges* edges, float* value);

/**
 * @brief Sets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of bottom edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetBottom(ArkUI_PositionEdges* edges, float value);

/**
 * @brief Gets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of bottom edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PositionEdges_GetBottom(ArkUI_PositionEdges* edges, float* value);

/**
 * @brief Sets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of right edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetRight(ArkUI_PositionEdges* edges, float value);

/**
 * @brief Gets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of right edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PositionEdges_GetRight(ArkUI_PositionEdges* edges, float* value);

/**
 * @brief Create a policy object for PixelRound attribute.
 *
 * @return A pointer to the policy object.
 * @since 21
 */
ArkUI_PixelRoundPolicy* OH_ArkUI_PixelRoundPolicy_Create();

/**
 * @brief Dispose a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object to be disposed.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_Dispose(ArkUI_PixelRoundPolicy* policy);

/**
 * @brief Sets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of top edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy value);

/**
 * @brief Gets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of top edge.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PixelRoundPolicy_GetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* value);

/**
 * @brief Sets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of start edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy value);

/**
 * @brief Gets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of start edge.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PixelRoundPolicy_GetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* value);

/**
 * @brief Sets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of bottom edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy value);

/**
 * @brief Gets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of bottom edge.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PixelRoundPolicy_GetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* value);

/**
 * @brief Sets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of end edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy value);

/**
 * @brief Gets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of end edge.
 * @return Returns the result code.
 *      Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *      Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the parameter is invalid.
 * @since 21
 */
int32_t OH_ArkUI_PixelRoundPolicy_GetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* value);

/**
 * @brief Creates a configuration object for textField's counter.
 *
 * @return A pointer to the configuration object.
 * @since 22
 */
ArkUI_ShowCounterConfig* OH_ArkUI_ShowCounterConfig_Create();

/**
 * @brief Disposes a configuration object for textField's counter.
 *
 * @param config Pointer to the configuration object to be disposed.
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_Dispose(ArkUI_ShowCounterConfig* config);

/**
 * @brief Sets the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField hasn't wanted to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_SetCounterTextColor(ArkUI_ShowCounterConfig* config, uint32_t color);

/**
 * @brief Sets the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField wants to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_SetCounterTextOverflowColor(ArkUI_ShowCounterConfig* config, uint32_t color);

/**
 * @brief Gets the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object.
 * @return Returns the color of the counter when textField hasn't wanted to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextColor(ArkUI_ShowCounterConfig* config);

/**
 * @brief Gets the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object.
 * @return Returns the color of the counter when textField wants to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextOverflowColor(ArkUI_ShowCounterConfig* config);

/**
 * @brief Defines the text menu item for edit menu item.
 *
 * @since 22
 */
typedef struct ArkUI_TextMenuItem ArkUI_TextMenuItem;
/**
 * @brief Create an object of the text edit menu item.
 *
 * @return A pointer to the ArkUI_TextMenuItem.
 * @since 22
 */
ArkUI_TextMenuItem* OH_ArkUI_TextMenuItem_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @param textMenuItem Pointer to the ArkUI_TextMenuItem object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextMenuItem_Dispose(ArkUI_TextMenuItem* textMenuItem);

/**
 * @brief Set text menu item title.
 *
 * @param item The text menu item.
 * @param content The name of the text menu item, which defaults to an empty string. The string will copy to framework.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_SetContent(ArkUI_TextMenuItem* item, const char* content);

/**
 * @brief Get text menu item title.
 *
 * @param item The text menu item object.
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The name of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@link ARKUI_ERROR_CODE_NO_ERROR}.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} is returned.
 *
 * @return The error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the node, buffer or writeLength is null.
 *         {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_GetContent(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item icon.
 *
 * @param item The text menu item.
 * @param icon The text menu item icon resource, which defaults to an empty string. The string will copy to framework.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_SetIcon(ArkUI_TextMenuItem* item, const char* icon);

/**
 * @brief Get text menu item icon.
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The icon of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@link ARKUI_ERROR_CODE_NO_ERROR}.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} is returned.
 *
 * @return The error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the node, buffer or writeLength is null.
 *         {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_GetIcon(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item label info for keyboard shortcut.
 *
 * @param item The text menu item.
 * @param labelInfo The text menu item shortcut displays, which defaults to an empty string.
 *      The string will copy to framework.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_SetLabelInfo(ArkUI_TextMenuItem* item, const char* labelInfo);

/**
 * @brief Get text menu item label info for keyboard shortcut..
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The shortcuts of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@link ARKUI_ERROR_CODE_NO_ERROR}.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} is returned.
 *
 * @return The error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the node, buffer or writeLength is null.
 *         {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_GetLabelInfo(const ArkUI_TextMenuItem* item, char* buf  fer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item id.
 *
 * @param item The text menu item.
 * @param id The text menu id.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_SetId(ArkUI_TextMenuItem* item, int32_t id);

/**
 * @brief Get text menu item id.
 *
 * @param item The text menu item object
 * @param id The text menu item id;
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
*/
ArkUI_ErrorCode OH_ArkUI_TextMenuItem_GetId(const ArkUI_TextMenuItem* item, int32_t* id);

/**
 * @brief Defines text menu item array.
 *
 * @since 22
 */
typedef struct ArkUI_TextMenuItemArray ArkUI_TextMenuItemArray;

/**
 * @brief Get the size of text menu items.
 *
 * @param items The text menu items.
 * @param size The size of text menu items.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
*/
ArkUI_ErrorCode OH_ArkUI_TextMenuItemArray_GetSize(ArkUI_TextMenuItemArray* items, int32_t* size);

/**
 * @brief Get text menu item at index.
 *
 * @param items The text menu items.
 * @param index The index of text menu items.
 * @param item The text menu item at index of array.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItemArray_GetItem(ArkUI_TextMenuItemArray* items, int32_t index,
    ArkUI_TextMenuItem** item);

/**
 * @brief Insert text menu item at index.
 *
 * @param items The text menu items.
 * @param item The text menu item at index of array. The item will copy by framework.
 * @param index The index of text menu items.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItemArray_Insert(ArkUI_TextMenuItemArray* items, ArkUI_TextMenuItem* item,
    int32_t index);

/**
 * @brief Erase text menu item at index.
 *
 * @param items The text menu items.
 * @param index The index of text menu items.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItemArray_Erase(ArkUI_TextMenuItemArray* items, int32_t index);

/**
 * @brief Clear all the items.
 *
 * @param items The text menu items.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextMenuItemArray_Clear(ArkUI_TextMenuItemArray* items);

/**
 * @brief Enumerates the text menu item id.
 *
 * @since 22
 */
typedef enum {
    /**
     * Indicates the TextMenuItemId to copy and delete the currently selected text.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CUT = 0,

    /**
     * Indicates the TextMenuItemId to copy the currently selected text to the clipboard.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COPY = 1,

    /**
     * Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASTE = 2,

    /**
     * Indicates the TextMenuItemId to select all text in a text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SELECT_ALL = 3,

    /**
     * Indicates the TextMenuItemId for collaboration service menu items.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COLLABORATION_SERVICE = 4,

    /**
     * Indicates the TextMenuItemId to recognize the text in the picture and input it into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CAMERA_INPUT = 5,

    /**
     * Indicates the TextMenuItemId to help with text creation by invoking large models.
     */
    ARKUI_TEXT_MENU_ITEM_ID_AI_WRITER = 6,

    /**
     * Indicates the TextMenuItemId to translate the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_TRANSLATE = 7,

    /**
     * Indicates the TextMenuItemId to search the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SEARCH = 8,

    /**
     * Indicates the TextMenuItemId to share the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SHARE = 9,

    /**
     * Indicates the TextMenuItemId to open url.
     */
    ARKUI_TEXT_MENU_ITEM_ID_URL = 10,

    /**
     * Indicates the TextMenuItemId to open email.
     */
    ARKUI_TEXT_MENU_ITEM_ID_EMAIL = 11,

    /**
     * Indicates the TextMenuItemId to call the phone number.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PHONE_NUMBER = 12,

    /**
     * Indicates the TextMenuItemId to open map.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ADDRESS = 13,

    /**
     * Indicates the TextMenuItemId to open calendar.
     */
    ARKUI_TEXT_MENU_ITEM_ID_DATA_TIME = 14,

    /**
     * Indicates the TextMenuItemId for asking AI.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ASK_AI = 15,

    /**
     * Autofill. For example, the account and password can be automatically filled.
     * @since 24
     */
    ARKUI_TEXT_MENU_ITEM_ID_AUTO_FILL = 16,

    /**
     * Password vault.
     * @since 24
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASSWORD_VAULT = 17,

    /**
     * Inclusive begin of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_BEGIN = 10000,

    /**
     * Inclusive end of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_END = 20000,
} ArkUI_TextMenuItemId;

/**
 * @brief Defines the text menu item for edit menu options.
 *
 * @since 22
 */
typedef struct ArkUI_TextEditMenuOptions ArkUI_TextEditMenuOptions;
/**
 * @brief Create an object of the text edit menu options.
 *
 * @return A pointer to the ArkUI_TextEditMenuOptions.
 * @since 22
 */
ArkUI_TextEditMenuOptions* OH_ArkUI_TextEditMenuOptions_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextEditMenuOptions_Dispose(ArkUI_TextEditMenuOptions* editMenuOptions);

/**
 * The text menu create callback function.
 *
 * @param items The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance.
 * @param userData User defined data.
 * @since 22
 */
typedef void (*ArkUI_TextCreateMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text menu prepare callback function.
 *
 * @param items The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance.
 * @param userData User defined data.
 * @since 22
 */
typedef void (*ArkUI_TextPrepareMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text menu item click callback function.
 *
 * @param item The menu item click.
 * @param start The start offset of the selected content.
 * @param end The end offset of the selected content.
 * @param userData The user data.
 * @return bool Return True, the event is consumed, false otherwise.
 * @since 22
 */
typedef bool (*ArkUI_TextMenuItemClickCallback)(
    const ArkUI_TextMenuItem*    item,
    int32_t                      start,
    int32_t                      end,
    void*                        userData
);

/**
 * @brief Set the event to be called when text menu create.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The create callback function.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextEditMenuOptions_RegisterOnCreateMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextCreateMenuCallback cb);
/**
 * @brief Set the event to be called when menu prepare.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The prepare callback function.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextEditMenuOptions_RegisterOnPrepareMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextPrepareMenuCallback cb);

/**
 * @brief Set the event to be called when menu item click.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The menu item click callback function.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextEditMenuOptions_RegisterOnMenuItemClickCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextMenuItemClickCallback cb);

/**
 * @brief Defines the selection menu.
 *
 * @since 22
 */
typedef struct ArkUI_TextSelectionMenuOptions ArkUI_TextSelectionMenuOptions;

/**
 * @brief Defines decoration style options.
 *
 * @since 24
 */
typedef struct OH_ArkUI_DecorationStyleOptions OH_ArkUI_DecorationStyleOptions;

/**
 * @brief Defines the configuration of text entity recognition.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextDataDetectorConfig OH_ArkUI_TextDataDetectorConfig;

/**
 * @brief Defines the text selection menu options of the text editor.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextEditorSelectionMenuOptions OH_ArkUI_TextEditorSelectionMenuOptions;

/**
 * @brief Defines the hint text options when no content is entered in the text editor.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextEditorPlaceholderOptions OH_ArkUI_TextEditorPlaceholderOptions;

/**
 * @brief Defines the attribute string controller of the text editor.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextEditorStyledStringController OH_ArkUI_TextEditorStyledStringController;

/**
 * @brief Defines the paragraph style of the text editor.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextEditorParagraphStyle OH_ArkUI_TextEditorParagraphStyle;

/**
 * @brief Defines shadow options.
 *
 * @since 24
 */
typedef struct OH_ArkUI_ShadowOptions OH_ArkUI_ShadowOptions;

/**
 * @brief Defines the text style of the text editor.
 *
 * @since 24
 */
typedef struct OH_ArkUI_TextEditorTextStyle OH_ArkUI_TextEditorTextStyle;

/**
 * @brief Enumerates vibration effect types.
 *
 * @since 24
 */
typedef enum {
    /**
     * No vibration.
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_DISABLED = 0,
    /**
     * Vibration.
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_ENABLED = 1,
    /**
     * System vibration.
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_AUTO = 2,
} OH_ArkUI_HapticFeedbackMode;

/**
 * @brief Enumerates the span types of a custom text selection menu.
 *
 * @since 24
 */
typedef enum {
    /**
     * Text span.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_TEXT = 0,
    /**
     * Image span.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_IMAGE = 1,
    /**
     * Mixed span.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_MIXED = 2,
    /**
     * Custom layout span.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_BUILDER = 3,
    /**
     * Default span.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_DEFAULT = 4
} OH_ArkUI_TextEditorSpanType;

/**
 * @brief Enumerates the response types of a custom text selection menu.
 *
 * @since 24
 */
typedef enum {
    /**
     * The menu is displayed when the component is right-clicked.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /**
     * The menu is displayed when the component is long-pressed.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_LONG_PRESS = 1,
    /**
     * The menu is displayed when the component is selected.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_SELECT = 2,
    /**
     * Default response type.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_DEFAULT = 3,
} OH_ArkUI_TextEditorResponseType;

/**
 * @brief Enumerates text menu types.
 *
 * @since 24
 */
typedef enum {
    /**
     * Text selection menu.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SELECTION_MENU = 0,
    /**
     * Preview menu.
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_PREVIEW_MENU = 1,
} OH_ArkUI_TextMenuType;

/**
 * @brief Enumerates line break policies.
 *
 * @since 24
 */
typedef enum {
    /**
     * Greedy mode.<br>Places as many words on a line as possible and moves to the next line only if no more words can
     * fit into the same line.
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_GREEDY = 0,
    /**
     * High-quality mode.<br>Fills in lines as much as possible on the basis of **BALANCED**, which may results in a
     * large blank area on the last line.
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_HIGH_QUALITY = 1,
    /**
     * Balance mode.<br>Without splitting words, the width of each line in a paragraph is the same as much as possible.
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_BALANCE = 2,
} OH_ArkUI_LineBreakStrategy;

/**
 * @brief Enumerates the text span type.
 *
 * @since 22
 */
typedef enum {
    /** The span type only contains text. */
    ARKUI_TEXT_SPAN_TYPE_TEXT = 0,
    /** The span type only contains image. */
    ARKUI_TEXT_SPAN_TYPE_IMAGE = 1,
    /** The span type contains both text and image. */
    ARKUI_TEXT_SPAN_TYPE_MIXED = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but TEXT, IMAGE, or MIXED types are not registered,
     * this type will be triggered and displayed for those registered types.
     */
    ARKUI_TEXT_SPAN_TYPE_DEFAULT = 3,
} ArkUI_TextSpanType;

/**
 * @brief Enumerates the text response type.
 *
 * @since 22
 */
typedef enum {
    /** The response type of right click. */
    ARKUI_TEXT_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /** The response type of long press. */
    ARKUI_TEXT_RESPONSE_TYPE_LONG_PRESS = 1,
    /** The response type of select by mouse. */
    ARKUI_TEXT_RESPONSE_TYPE_SELECT = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but RIGHT_CLICK, LONG_PRESS, or SELECT types are not registered,
     * this type will be triggered and displayed for right-click, long press, and mouse selection actions.
     */
    ARKUI_TEXT_RESPONSE_TYPE_DEFAULT = 3,
} ArkUI_TextResponseType;

/**
* @brief Enumerates raw input event types.
*
* @since 26.0.0
*/
typedef enum {
    /**
     * Touch event.
     *
     * @since 26.0.0
     */
    ARKUI_RAW_INPUT_EVENT_TYPE_TOUCH = 0,
    /**
     * Mouse event.
     *
     * @since 26.0.0
     */
    ARKUI_RAW_INPUT_EVENT_TYPE_MOUSE = 1,
} ArkUI_RawInputEventType;

/**
 * @brief Create an object of the text selection menu options.
 *
 * @return A pointer to the ArkUI_TextSelectionMenuOptions.
 * @since 22
 */
ArkUI_TextSelectionMenuOptions* OH_ArkUI_TextSelectionMenuOptions_Create();

/**
 * @brief Dispose an object of the text selection menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextSelectionMenuOptions_Dispose(ArkUI_TextSelectionMenuOptions* selectionMenuOptions);

/**
 * @brief Sets the recognition types of a configuration object for selected text recognition.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param textSpanType The span type of {@link ArkUI_TextSpanType}.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_SetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType textSpanType);
/**
 * @brief Gets the span type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param spanType the text span type {@link ArkUI_TextSpanType}.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_GetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType* spanType);

/**
 * @brief Set custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param node The custom menu node.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_SetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_NodeHandle node);
/**
 * @brief Get custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param node The custom menu node.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_GetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_NodeHandle* node);

/**
 * @brief Sets the recognition types of a configuration object for selected text recognition.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The response type of {@link ArkUI_TextResponseType}.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_SetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType responseType);
/**
 * @brief Gets the response type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The text response type {@link ArkUI_TextResponseType}.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_GetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType* responseType);

/**
 * @brief Set the event to be called when selection menu show.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param userData The user data.
 * @param callback The callback function of menu show.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user data.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_RegisterOnMenuShowCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
    void (*callback)(int32_t start, int32_t end, void* userData));
/**
 * @brief Set the event to be called when selection menu hide.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param userData The user data.
 * @param callback The callback function of menu hide.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user data.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_TextSelectionMenuOptions_RegisterOnMenuHideCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
    void (*callback)(int32_t start, int32_t end, void* userData));

/**
 * @brief Create selection options.
 *
 * @return A pointer to the selection options object.
 * @since 23
 */
ArkUI_SelectionOptions* OH_ArkUI_SelectionOptions_Create();

/**
 * @brief Dispose selection options object.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options object. to be disposed.
 * @since 23
 */
void OH_ArkUI_SelectionOptions_Dispose(ArkUI_SelectionOptions* options);

/**
 * @brief Sets the menu policy for selection options.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options.
 * @param {ArkUI_MenuPolicy} menuPolicy The menu policy.
 * @since 23
 */
void OH_ArkUI_SelectionOptions_SetMenuPolicy(
    ArkUI_SelectionOptions* options, ArkUI_MenuPolicy menuPolicy);

/**
 * @brief Gets the menu policy of selection options.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options object.
 * @return Returns the menu policy.
 * @since 23
 */
ArkUI_MenuPolicy OH_ArkUI_SelectionOptions_GetMenuPolicy(ArkUI_SelectionOptions* options);

/**
 * @brief Create an object of the text content base controller.
 *
 * @return A pointer to the controller object.
 * @since 23
 */
ArkUI_TextContentBaseController* OH_ArkUI_TextContentBaseController_Create();

/**
 * @brief Dispose an object of the text content base controller.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the controller object to be disposed.
 * @since 23
 */
void OH_ArkUI_TextContentBaseController_Dispose(ArkUI_TextContentBaseController* controller);

/**
 * @brief Delete the character before the caret of the input field component in editing state.
 *        Otherwise, delete the last character of the input field component.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the configuration object to be modified.
 * @since 23
 */
void OH_ArkUI_TextContentBaseController_DeleteBackward(ArkUI_TextContentBaseController* controller);

/**
 * @brief Scroll the input field component to make the specified content visible.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the
 * configuration object to be modified.
 * @param {int32_t} start The start offset of the content to be made visible.
 * @param {int32_t} end The end offset of the content to be made visible
 * @since 23
 */
void OH_ArkUI_TextContentBaseController_ScrollToVisible(
    ArkUI_TextContentBaseController *controller, int32_t start, int32_t end);

/**
 * @brief Defines the motion path options for path animation.
 *
 * @since 23
 */
typedef struct ArkUI_MotionPathOptions ArkUI_MotionPathOptions;

/**
 * @brief Create an object of the motion path options for path animation.
 *        In the newly created ArkUI_MotionPathOptions, the "path" value is an empty string, the "from" value is 0,
 *        the "to" value is 1, and the "rotatable" value is false.
 *
 * @return A pointer to the ArkUI_MotionPathOptions.
 * @since 23
 */
ArkUI_MotionPathOptions* OH_ArkUI_MotionPathOptions_Create();

/**
 * @brief Dispose the ArkUI_MotionPathOptions object.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object to be disposed.
 * @since 23
 */
void OH_ArkUI_MotionPathOptions_Dispose(ArkUI_MotionPathOptions* options);

/**
 * @brief Sets the the motion path for the animation using an SVG path string. The path supports using "start" and
 *        "end" as placeholders for the starting and ending points, for example:
 *        "Mstart.x start.y L50 50 Lend.x end.y Z". Refer to the SVG path format for the path string.
 *        When set to an empty string, it is equivalent to not setting a path animation.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param svgPath The motion path for the path animation.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_SetPath(ArkUI_MotionPathOptions* options, const char* svgPath);

/**
 * @brief Gets the motion path string in the ArkUI_MotionPathOptions object.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param svgPathBuffer Buffer pointer to the motion path string.
 * @param bufferSize The buffer size of the svgPathBuffer parameter.
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@link ARKUI_ERROR_CODE_NO_ERROR}.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} is returned.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 *         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the buffer size is less than the minimum buffer size.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_GetPath(const ArkUI_MotionPathOptions* options, char* svgPathBuffer,
    const int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets the starting progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path. The value range is [0.0, 1.0], and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param from The starting progress in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} if the "from" value is out of range or the "from" value
 *                 is greater than the "to" value.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_SetFrom(ArkUI_MotionPathOptions* options, const float from);

/**
 * @brief Gets the starting progress in the ArkUI_MotionPathOptions object.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param from The starting progress in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_GetFrom(const ArkUI_MotionPathOptions* options, float* from);

/**
 * @brief Sets the endpoint progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path. The value range is [0.0, 1.0], and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} if the "to" value is out of range or the "to" value
 *                 is less than the "from" value.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_SetTo(ArkUI_MotionPathOptions* options, const float to);

/**
 * @brief Gets the endpoint progress in the ArkUI_MotionPathOptions object.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_GetTo(const ArkUI_MotionPathOptions* options, float* to);

/**
 * @brief Sets the rotatable parameter in the ArkUI_MotionPathOptions. It indicates whether to rotate along the path.
 *        True means rotating along the path, while false means not rotating along the path.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_SetRotatable(ArkUI_MotionPathOptions* options, const bool rotatable);

/**
 * @brief Gets the rotatable parameter in the ArkUI_MotionPathOptions.
 *
 * @param options Pointer to the ArkUI_MotionPathOptions object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 23
 */
ArkUI_ErrorCode OH_ArkUI_MotionPathOptions_GetRotatable(const ArkUI_MotionPathOptions* options, bool* rotatable);

/**
 * @brief Enumerates the MarqueeStartPolicy.
 *
 * @since 23
 */
typedef enum {
    /** Start marquee in any case. This is the default policy. */
    ARKUI_MARQUEESTARTPOLICY_DEFAULT = 0,
    /** Start marquee only when get focus. */
    ARKUI_MARQUEESTARTPOLICY_ONFOCUS = 1
} ArkUI_MarqueeStartPolicy;

/**
 * @brief Enumerates the MarqueeUpdatePolicy.
 *
 * @since 23
 */
typedef enum {
    /** Reset scroll position and restart scroll. */
    ARKUI_MARQUEEUPDATEPOLICY_DEFAULT = 0,
    /** Preserve scroll position, just change to new text. */
    ARKUI_MARQUEEUPDATEPOLICY_PRESERVEPOSITION = 1
} ArkUI_MarqueeUpdatePolicy;

/**
 * @brief Defines the marquee options of text.
 *
 * @since 23
 */
typedef struct ArkUI_TextMarqueeOptions ArkUI_TextMarqueeOptions;

/**
 * @brief Create an option object for marquee animation of text.
 *
 * @return A pointer to the option object.
 * @since 23
 */
ArkUI_TextMarqueeOptions* OH_ArkUI_TextMarqueeOptions_Create();

/**
 * @brief Dispose the option object for marquee animation of text.
 *
 * @param option Poin  ter to the option object to be disposed.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_Dispose(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param start Flag of is need to start marquee. True means start marquee, false means stop marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetStart(ArkUI_TextMarqueeOptions* option, bool start);

/**
 * @brief Gets the start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the start flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetStart(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param step The step size of the marquee. The unit is vp.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetStep(ArkUI_TextMarqueeOptions* option, float step);

/**
 * @brief Gets the step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the step size of the marquee. The unit is vp.
 * @since 23
 */
float OH_ArkUI_TextMarqueeOptions_GetStep(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the spacing between two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param spacing The spacing between two rounds of marquee. The unit is vp.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetSpacing(ArkUI_TextMarqueeOptions* option, float spacing);

/**
 * @brief Gets the spacing between two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the spacing between two rounds of marquee. The unit is vp.
 * @since 23
 */
float OH_ArkUI_TextMarqueeOptions_GetSpacing(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param loop The rounds of the marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetLoop(ArkUI_TextMarqueeOptions* option, int32_t loop);

/**
 * @brief Gets the rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the rounds of the marquee.
 * @since 23
 */
int32_t OH_ArkUI_TextMarqueeOptions_GetLoop(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fromStart The running direction of the marquee, true means running from start.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetFromStart(ArkUI_TextMarqueeOptions* option, bool fromStart);

/**
 * @brief Gets the fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the fromStart flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFromStart(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param delay The delay time between each round of the marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetDelay(ArkUI_TextMarqueeOptions* option, int32_t delay);

/**
 * @brief Gets the delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the delay time between each round of the marquee.
 * @since 23
 */
int32_t OH_ArkUI_TextMarqueeOptions_GetDelay(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fadeout The flag of whether the text is faded out.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetFadeout(ArkUI_TextMarqueeOptions* option, bool fadeout);

/**
 * @brief Gets the fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the fadeout flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFadeout(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param startPolicy The start policy for marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetStartPolicy(ArkUI_TextMarqueeOptions* option, ArkUI_MarqueeStartPolicy startPolicy);

/**
 * @brief Gets the start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the start policy for marquee.
 * @since 23
 */
ArkUI_MarqueeStartPolicy OH_ArkUI_TextMarqueeOptions_GetStartPolicy(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Sets the update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param updatePolicy The update policy for marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetUpdatePolicy(ArkUI_TextMarqueeOptions* option,
    ArkUI_MarqueeUpdatePolicy updatePolicy);

/**
 * @brief Gets the update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the update policy for marquee.
 * @since 23
 */
ArkUI_MarqueeUpdatePolicy OH_ArkUI_TextMarqueeOptions_GetUpdatePolicy(ArkUI_TextMarqueeOptions* option);

/**
 * @brief Create a configuration object for selected drag preview style.
 * @return A pointer to the configuration object.
 * @since 23
 */
ArkUI_SelectedDragPreviewStyle* OH_ArkUI_SelectedDragPreviewStyle_Create();

/**
 * @brief Dispose a configuration object for selected drag preview style.
 * @param config Pointer to the configuration object to be disposed.
 * @since 23
 */
void OH_ArkUI_SelectedDragPreviewStyle_Dispose(ArkUI_SelectedDragPreviewStyle* config);

/**
 * @brief Sets the color of background for selected drag preview style.
 * @param config Pointer to the configuration object to be modified.
 * @param color Background color.
 * @since 23
 */
void OH_ArkUI_SelectedDragPreviewStyle_SetColor(
    ArkUI_SelectedDragPreviewStyle* config, uint32_t color);

/**
 * @brief Gets the color of background for selected drag preview style.
 * @param config Pointer to the configuration object.
 * @return Returns the background color.
 * @since 23
 */
uint32_t OH_ArkUI_SelectedDragPreviewStyle_GetColor(
    ArkUI_SelectedDragPreviewStyle* config);

/**
 * @brief Creates a decorative line style object. When the object is no longer used, call
 * {@link OH_ArkUI_DecorationStyleOptions_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @since 24
 */
OH_ArkUI_DecorationStyleOptions* OH_ArkUI_DecorationStyleOptions_Create();

/**
 * @brief Destroys the decorative line style object.
 *
 * @param options Pointer to the option object to be destroyed.
 * @since 24
 */
void OH_ArkUI_DecorationStyleOptions_Destroy(OH_ArkUI_DecorationStyleOptions* options);

/**
 * @brief Sets the decoration type of the decorative line style.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param type Decoration type ({@link ArkUI_TextDecorationType}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_SetTextDecorationType(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationType type);

/**
 * @brief Obtains the decoration type of the decorative line style.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param type Pointer to the decoration type ({@link ArkUI_TextDecorationType}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_GetTextDecorationType(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationType* type);

/**
 * @brief Sets the color of the decorative line.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param color Color of the decorative line, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_SetColor(OH_ArkUI_DecorationStyleOptions* options, uint32_t color);

/**
 * @brief Obtains the color of the decorative line.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param color Pointer to the color of the decorative line, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_GetColor(OH_ArkUI_DecorationStyleOptions* options, uint32_t* color);

/**
 * @brief Sets the style of the decorative line.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param style Style of the decorative line ({@link ArkUI_TextDecorationStyle}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_SetTextDecorationStyle(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationStyle style);

/**
 * @brief Obtains the style of the decorative line.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param style Pointer to the style of the decorative line ({@link ArkUI_TextDecorationStyle}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_GetTextDecorationStyle(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationStyle* style);

/**
 * @brief Sets the scale factor of the decorative line thickness.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param thicknessScale Scale factor of the decorative line thickness. The value range is [0, +∞).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_SetThicknessScale(
    OH_ArkUI_DecorationStyleOptions* options, float thicknessScale);

/**
 * @brief Obtains the scale factor of the decorative line thickness.
 *
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param thicknessScale Pointer to the scale factor of the decorative line thickness.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_DecorationStyleOptions_GetThicknessScale(OH_ArkUI_DecorationStyleOptions* options,
    float* thicknessScale);

/**
 * @brief Creates a text entity recognition configuration object. When the object is no longer used, call
 * {@link OH_ArkUI_TextDataDetectorConfig_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @since 24
 */
OH_ArkUI_TextDataDetectorConfig* OH_ArkUI_TextDataDetectorConfig_Create();

/**
 * @brief Destroys the text entity recognition configuration object.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @since 24
 */
void OH_ArkUI_TextDataDetectorConfig_Destroy(OH_ArkUI_TextDataDetectorConfig* config);

/**
 * @brief Sets the types of the text entity recognition configuration.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param types Pointer to the types of the text entity recognition configuration. The value is an enumerated value of {
 * @link ArkUI_TextDataDetectorType}.
 * @param length Type quantity.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_SetTypes(
    OH_ArkUI_TextDataDetectorConfig* config, const ArkUI_TextDataDetectorType* types, int32_t length);

/**
 * @brief Obtains the types of the text entity recognition configuration.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param buffer Pointer to the buffer of the type array.
 * @param bufferSize Maximum number of types that can be written to the buffer reserved for the types.
 * @param writeLength Pointer to the number of types that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *     <br>Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_GetTypes(OH_ArkUI_TextDataDetectorConfig* config,
    ArkUI_TextDataDetectorType* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets the callback for text entity recognition result updates.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param userData Pointer to the user data.
 * @param callback detect result update callback.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_RegisterOnDetectResultUpdateCallback(
    OH_ArkUI_TextDataDetectorConfig* config, void* userData,
    void (*callback)(const char* result, int32_t length, void* userData));

/**
 * @brief Sets the color of the recognized content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param color Color of the recognized content, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_SetColor(OH_ArkUI_TextDataDetectorConfig* config, uint32_t color);

/**
 * @brief Obtains the color of the recognized content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param color Pointer to the color of the recognized content, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_GetColor(OH_ArkUI_TextDataDetectorConfig* config, uint32_t* color);

/**
 * @brief Sets the decoration style of the recognized content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param decoration Pointer to the decoration style of the recognized content. The value is an enumerated value of
 *     {@link OH_ArkUI_DecorationStyleOptions}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_SetDecorationStyleOptions(
    OH_ArkUI_TextDataDetectorConfig* config, OH_ArkUI_DecorationStyleOptions* decoration);

/**
 * @brief Obtains the decoration style of the recognized content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param decoration Pointer to the decoration style of the recognized content. The value is an enumerated value of
 *     {@link OH_ArkUI_DecorationStyleOptions}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_GetDecorationStyleOptions(
    OH_ArkUI_TextDataDetectorConfig* config, OH_ArkUI_DecorationStyleOptions* decoration);

/**
 * @brief Sets whether to display the preview menu when the recognized content is long-pressed.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param enablePreviewMenu Whether to display the preview menu when the recognized content is long-pressed. **true**
 *     means to display the preview menu, and **false** means the opposite. The default value is **false**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_SetEnablePreviewMenu(
    OH_ArkUI_TextDataDetectorConfig* config, bool enablePreviewMenu);

/**
 * @brief Obtains whether the preview menu is displayed when the recognized content is long-pressed.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param enablePreviewMenu Pointer to the **enablePreviewMenu** parameter indicating whether the preview menu is
 *     displayed when the recognized content is long-pressed. **true** means that the preview menu is displayed, and **
 *     false** means the opposite.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextDataDetectorConfig_GetEnablePreviewMenu(
    OH_ArkUI_TextDataDetectorConfig* config, bool* enablePreviewMenu);

/**
 * @brief Defines controller for text.
 * @since 26.0.0
 */
typedef struct OH_ArkUI_TextController OH_ArkUI_TextController;

/**
 * @brief Create a controller object for text.
 * @return A pointer to the text controller object.
 * @since 26.0.0
 */
OH_ArkUI_TextController* OH_ArkUI_TextController_Create();

/**
 * @brief Destroys the text controller.
 *
 * @param controller <b>Text</b> controller.
 * @since 26.0.0
 */
void OH_ArkUI_TextController_Destroy(OH_ArkUI_TextController* controller);

/**
 * @brief Set the StyledString of the text.
 *
 * @param controller the controller of the text.
 * @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> object, which will be set to Text.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_TextController_SetStyledString(
    OH_ArkUI_TextController* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Creates an option object for the placeholder text used when there is no input. When the object is no longer
 * used, call {@link OH_ArkUI_TextEditorPlaceholderOptions_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @since 24
 */
OH_ArkUI_TextEditorPlaceholderOptions* OH_ArkUI_TextEditorPlaceholderOptions_Create();

/**
 * @brief Destroys the option object for the placeholder text used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @since 24
 */
void OH_ArkUI_TextEditorPlaceholderOptions_Destroy(OH_ArkUI_TextEditorPlaceholderOptions* options);

/**
 * @brief Sets the text for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param value Pointer to the placeholder text.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetValue(
    OH_ArkUI_TextEditorPlaceholderOptions* options, const char* value);

/**
 * @brief Obtains the text for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param buffer Pointer to the buffer for storing the placeholder text in the memory. You need to allocate the memory.
 * @param bufferSize Maximum number of characters that can be written to the buffer.
 * @param writeLength Pointer to the number of characters that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *     <br>Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetValue(
    OH_ArkUI_TextEditorPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets the font size for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontSize Font size, in fp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetFontSize(
    OH_ArkUI_TextEditorPlaceholderOptions* options, float fontSize);

/**
 * @brief Obtains the font size for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontSize Pointer to the font size, in fp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetFontSize(
    OH_ArkUI_TextEditorPlaceholderOptions* options, float* fontSize);

/**
 * @brief Sets the font weight for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontWeight Font weight. The value is an integer multiple of 100 within the [100, 900] range, for example, **
 *     100** or **900**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetFontWeight(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t fontWeight);

/**
 * @brief Obtains the font weight for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontWeight Pointer to the font weight. The value is an integer multiple of 100 within the [100, 900] range,
 *     for example, **100** or **900**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetFontWeight(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t* fontWeight);

/**
 * @brief Sets the font family for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontFamily Pointer to the font family, containing the font names to be set. Different font names are
 *     separated by commas (,).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetFontFamily(
    OH_ArkUI_TextEditorPlaceholderOptions* options, const char* fontFamily);

/**
 * @brief Obtains the font family for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param buffer Pointer to the buffer for storing the font family in the memory. You need to allocate the memory.
 * @param bufferSize Maximum number of characters that can be written to the buffer.
 * @param writeLength Pointer to the number of characters that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *     <br>Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetFontFamily(
    OH_ArkUI_TextEditorPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets the font style for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontStyle Font style. The value is an enumerated value of {@link ArkUI_FontStyle}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetFontStyle(
    OH_ArkUI_TextEditorPlaceholderOptions* options, ArkUI_FontStyle fontStyle);

/**
 * @brief Obtains the font style for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontStyle Pointer to the font style. The value is an enumerated value of {@link ArkUI_FontStyle}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetFontStyle(
    OH_ArkUI_TextEditorPlaceholderOptions* options, ArkUI_FontStyle* fontStyle);

/**
 * @brief Sets the font color for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontColor Font color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_SetFontColor(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t fontColor);

/**
 * @brief Obtains the font color for the placeholder text options used when there is no input.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorPlaceholderOptions} object.
 * @param fontColor Pointer to the font color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorPlaceholderOptions_GetFontColor(OH_ArkUI_TextEditorPlaceholderOptions* options,
    uint32_t* fontColor);

/**
 * @brief Creates a styled string controller object for the text editor. When the object is no longer used, call
 * {@link OH_ArkUI_TextEditorStyledStringController_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @since 24
 */
OH_ArkUI_TextEditorStyledStringController* OH_ArkUI_TextEditorStyledStringController_Create();

/**
 * @brief Destroys the styled string controller object.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @since 24
 */
void OH_ArkUI_TextEditorStyledStringController_Destroy(OH_ArkUI_TextEditorStyledStringController* controller);

/**
 * @brief Sets the caret offset using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param caretOffset Caret offset.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetCaretOffset(
    OH_ArkUI_TextEditorStyledStringController* controller, int32_t caretOffset);

/**
 * @brief Obtains the caret offset using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param caretOffset Pointer to the caret offset.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetCaretOffset(
    OH_ArkUI_TextEditorStyledStringController* controller, int32_t* caretOffset);

/**
 * @brief Sets the selected area using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param start Start position of the selected area.
 * @param end End position of the selected area.
 * @param menuPolicy Policy for displaying the menu in the selected area. The value is an enumerated value of
 *     {@link ArkUI_MenuPolicy}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetSelection(
    OH_ArkUI_TextEditorStyledStringController* controller, uint32_t start, uint32_t end, ArkUI_MenuPolicy menuPolicy);

/**
 * @brief Obtains the editing status of the text editor using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param isEditing Pointer to the **isEditing** parameter indicating whether the text editor is in the editing state. *
 *     *true** means that the text editor is in the editing state, and **false** means the opposite.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_IsEditing(
    OH_ArkUI_TextEditorStyledStringController* controller, bool* isEditing);

/**
 * @brief Exits the editing   status of the text editor using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_StopEditing(
    OH_ArkUI_TextEditorStyledStringController* controller);

/**
 * @brief Obtains the preview text using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param offset Pointer to the preview text offset.
 * @param buffer Pointer to the buffer for storing the preview text in the memory. You need to allocate the memory.
 * @param bufferSize Maximum number of characters that can be written to the buffer.
 * @param writeLength Pointer to the number of characters that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetPreviewText(
    OH_ArkUI_TextEditorStyledStringController* controller, uint32_t* offset, char* buffer,
    int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Obtains the caret-selected rectangle using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param rect Pointer to the caret-selected rectangle information. The value is an enumerated value of
 *     {@link ArkUI_Rect}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetCaretRect(
    OH_ArkUI_TextEditorStyledStringController* controller, ArkUI_Rect* rect);

/**
 * @brief Deletes characters using the styled string controller. If no content is selected, one character before the
 * current caret position is deleted. If content is selected, the selected content is deleted.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_DeleteBackward(
    OH_ArkUI_TextEditorStyledStringController* controller);

/**
 * @brief Creates a paragraph style object for the text editor. When the object is no longer used, call
 * {@link OH_ArkUI_TextEditorParagraphStyle_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @since 24
 */
OH_ArkUI_TextEditorParagraphStyle* OH_ArkUI_TextEditorParagraphStyle_Create();

/**
 * @brief Destroys the paragraph style object.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @since 24
 */
void OH_ArkUI_TextEditorParagraphStyle_Destroy(OH_ArkUI_TextEditorParagraphStyle* style);

/**
 * @brief Sets the text alignment mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param align Text alignment mode. The value is an enumerated value of {@link ArkUI_TextAlignment}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment align);

/**
 * @brief Obtains the text alignment mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param align Pointer to the text alignment mode. The value is an enumerated value of {@link ArkUI_TextAlignment}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment* align);

/**
 * @brief Sets the PixelMap for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param pixelmap Pointer to the PixelMap for paragraph indentation.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, struct OH_PixelmapNative* pixelmap);

/**
 * @brief Obtains the PixelMap for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param pixelmap Double pointer to the PixelMap for paragraph indentation.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, struct OH_PixelmapNative** pixelmap);

/**
 * @brief Sets the width for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param width Width for paragraph indentation, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t width);

/**
 * @brief Obtains the width for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param width Pointer to the width for paragraph indentation, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* width);

/**
 * @brief Sets the height for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param height Height for paragraph indentation, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t height);

/**
 * @brief Obtains the height for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param height Pointer to the height for paragraph indentation, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* height);

/**
 * @brief Sets the word breaking mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param wordBreak Word breaking mode. The value is an enumerated value of {@link ArkUI_WordBreak}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak wordBreak);

/**
 * @brief Obtains the word breaking mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param wordBreak Pointer to the word breaking mode. The value is an enumerated value of {@link ArkUI_WordBreak}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak* wordBreak);

/**
 * @brief Sets the line breaking strategy in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param lineBreakStrategy Line breaking strategy. The value is an enumerated value of
 *     {@link OH_ArkUI_LineBreakStrategy}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy lineBreakStrategy);

/**
 * @brief Obtains the line breaking strategy in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param lineBreakStrategy Pointer to the line breaking strategy. The value is an enumerated value of
 *     {@link OH_ArkUI_LineBreakStrategy}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy* lineBreakStrategy);

/**
 * @brief Sets the paragraph spacing in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param paragraphSpacing Paragraph spacing, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t paragraphSpacing);

/**
 * @brief Obtains the paragraph spacing in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param paragraphSpacing Pointer to the paragraph spacing, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* paragraphSpacing);

/**
 * @brief Sets the text vertical alignment mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param verticalAlignment Text vertical alignment mode. The value is an enumerated value of
 *     {@link ArkUI_TextVerticalAlignment}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextVerticalAlignment verticalAlignment);

/**
 * @brief Obtains the text vertical alignment mode in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param verticalAlignment Text vertical alignment mode. The value is an enumerated value of
 *     {@link ArkUI_TextVerticalAlignment}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextVerticalAlignment* verticalAlignment);

/**
 * @brief Sets the text direction in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param textDirection Text direction. The value is an enumerated value of {@link ArkUI_TextDirection}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_SetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection textDirection);

/**
 * @brief Obtains the text direction in the paragraph style.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorParagraphStyle} object.
 * @param textDirection Pointer to the text direction. The value is an enumerated value of {@link ArkUI_TextDirection}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorParagraphStyle_GetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection* textDirection);

/**
 * @brief Sets the typing paragraph style using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param style Pointer to the typing paragraph style.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetTypingParagraphStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorParagraphStyle* style);

/**
 * @brief Creates a shadow option object. When the object is no longer used, call
 * {@link OH_ArkUI_ShadowOptions_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @since 24
 */
OH_ArkUI_ShadowOptions* OH_ArkUI_ShadowOptions_Create();

/**
 * @brief Destroys the shadow option object.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @since 24
 */
void OH_ArkUI_ShadowOptions_Destroy(OH_ArkUI_ShadowOptions* options);

/**
 * @brief Sets the blur radius for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param radius Blur radius of the shadow, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetRadius(OH_ArkUI_ShadowOptions* options, float radius);

/**
 * @brief Obtains the blur radius for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param radius Pointer to the blur radius of the shadow, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetRadius(OH_ArkUI_ShadowOptions* options, float* radius);

/**
 * @brief Sets the shadow type for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param type Shadow type ({@link ArkUI_ShadowType}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType type);

/**
 * @brief Obtains the shadow type for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param type Shadow type ({@link ArkUI_ShadowType}).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType* type);

/**
 * @brief Sets the shadow color for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param color Shadow color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetColor(OH_ArkUI_ShadowOptions* options, uint32_t color);

/**
 * @brief Obtains the shadow color for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param color Pointer to the shadow color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetColor(OH_ArkUI_ShadowOptions* options, uint32_t* color);

/**
 * @brief Sets the shadow offset on the x-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetX Shadow offset on the x-axis, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetOffsetX(OH_ArkUI_ShadowOptions* options, float offsetX);

/**
 * @brief Obtains the shadow offset on the x-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetX Pointer to the shadow offset on the x-axis, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetOffsetX(OH_ArkUI_ShadowOptions* options, float* offsetX);

/**
 * @brief Sets the shadow offset on the y-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetY Shadow offset on the y-axis, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetOffsetY(OH_ArkUI_ShadowOptions* options, float offsetY);

/**
 * @brief Obtains the shadow offset on the y-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetY Pointer to the shadow offset on the y-axis, in vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetOffsetY(OH_ArkUI_ShadowOptions* options, float* offsetY);

/**
 * @brief Sets whether to fill a component with a shadow.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param isFill Whether to fill a component with a shadow. **true** means to fill a component with a shadow, and **
 *     false** means the opposite. The default value is **false**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_SetFill(OH_ArkUI_ShadowOptions* options, bool isFill);

/**
 * @brief Obtains whether a component is filled with a shadow.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param isFill Pointer to the **isFill** parameter indicating whether a component is filled with a shadow. **true**
 *     means that a component is filled with a shadow, and **false** means the opposite.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_ShadowOptions_GetFill(OH_ArkUI_ShadowOptions* options, bool* isFill);

/**
 * @brief Creates a text style object. When the object is no longer used, call
 * {@link OH_ArkUI_TextEditorTextStyle_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextEditorTextStyle} object.
 * @since 24
 */
OH_ArkUI_TextEditorTextStyle* OH_ArkUI_TextEditorTextStyle_Create();

/**
 * @brief Destroys the text style object.
 *
 * @param style Pointer to the {@link OH_ArkUI_TextEditorTextStyle} object.
 * @since 24
 */
void OH_ArkUI_TextEditorTextStyle_Destroy(OH_ArkUI_TextEditorTextStyle* style);

/**
 * @brief Sets the font color of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param color Font color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t color);

/**
 * @brief Obtains the font color of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param color Pointer to the font color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t* color);

/**
 * @brief Sets the font size of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param size Font size, in fp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontSize(OH_ArkUI_TextEditorTextStyle* style, float size);

/**
 * @brief Obtains the font size of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param size Pointer to the font size, in fp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontSize(OH_ArkUI_TextEditorTextStyle* style, float* size);

/**
 * @brief Sets the font style of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontStyle Font style. The value is an enumerated value of {@link ArkUI_FontStyle}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle fontStyle);

/**
 * @brief Obtains the font style of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontStyle Pointer to the font style. The value is an enumerated value of {@link ArkUI_FontStyle}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle* fontStyle);

/**
 * @brief Sets the font weight of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontWeight Font weight. The value is an integer multiple of 100 within the [100, 900] range, for example, **
 *     100** or **900**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t fontWeight);

/**
 * @brief Obtains the font weight of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontWeight Pointer to the font weight. The value is an integer multiple of 100 within the [100, 900] range,
 *     for example, **100** or **900**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t* fontWeight);

/**
 * @brief Sets the font family of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontFamily Pointer to the font family, containing the font names to be set. Different font names are
 *     separated by commas (,).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontFamily(OH_ArkUI_TextEditorTextStyle* style, const char* fontFamily);

/**
 * @brief Obtains the font family of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param buffer Pointer to the buffer for storing the font family in the memory. You need to allocate the memory.
 * @param bufferSize Maximum number of characters that can be written to the buffer.
 * @param writeLength Pointer to the number of characters that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontFamily(OH_ArkUI_TextEditorTextStyle* style,
    char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets the text decoration options of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_DecorationStyleOptions* options);

/**
 * @brief Obtains the text decoration options of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param options Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_DecorationStyleOptions* options);

/**
 * @brief Sets the text shadow options of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param options Double pointer to the text shadow options.
 * @param length Length of the text shadow options.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    const OH_ArkUI_ShadowOptions** options, int32_t length);

/**
 * @brief Obtains the text shadow options of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param shadowOptions Double pointer to the text shadow options.
 * @param shadowOptionsSize Size of the shadow option buffer.
 * @param writeLength Pointer to the number of actual text shadow options in the text style.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_ShadowOptions** shadowOptions, uint32_t shadowOptionsSize, uint32_t* writeLength);

/**
 * @brief Sets the line height of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param lineHeight Line height.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t lineHeight);

/**
 * @brief Obtains the line height of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param lineHeight Pointer to the line height.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t* lineHeight);

/**
 * @brief Sets the letter spacing of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param letterSpacing Letter spacing.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t letterSpacing);

/**
 * @brief Obtains the letter spacing of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param letterSpacing Pointer to the letter spacing.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occu  rs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t* letterSpacing);

/**
 * @brief Sets the font feature of the text style, such as monospaced digits.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param fontFeature Pointer to the font features, containing font features to be set. Multiple features are separated
 *     by commas (,).
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetFontFeature(OH_ArkUI_TextEditorTextStyle* style,
    const char* fontFeature);

/**
 * @brief Obtains the font feature of the text style, such as monospaced digits.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param buffer Pointer to the buffer for storing the font features in the memory. You need to allocate the memory.
 * @param bufferSize Maximum number of characters that can be written to the buffer.
 * @param writeLength Pointer to the number of characters that are actually written to the buffer.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetFontFeature(OH_ArkUI_TextEditorTextStyle* style, char* buffer,
    int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Sets whether to evenly distribute the line spacing to the top and bottom of each line in the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param halfLeading Whether to enable half leading.
 *     <br>**true** means to enable, and **false** means the opposite. The default value is **false**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool halfLeading);

/**
 * @brief Obtains whether the line spacing is evenly distributed to the top and bottom of each line in the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param halfLeading Pointer to the **halfLeading** parameter indicating whether to enable half leading.
 *     <br>**true** means to enable, and **false** means the opposite. The default value is **false**.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool* halfLeading);

/**
 * @brief Sets the text background color of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param color Text background color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t color);

/**
 * @brief Obtains the text background color of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param color Pointer to the text background color, in 0xARGB format.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t* color);

/**
 * @brief Sets the radius of the rounded corner of the text background of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param topLeft Radius of the rounded corner in the upper left corner of the text background. The unit is vp.
 * @param topRight Radius of the rounded corner in the upper right corner of the text background. The unit is vp.
 * @param bottomLeft Radius of the rounded corner in the lower left corner of the text background. The unit is vp.
 * @param bottomRight Radius of the rounded corner in the lower right corner of the text background. The unit is vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_SetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRight);

/**
 * @brief Obtains the radius of the rounded corner of the text background of the text style.
 *
 * @param style Pointer to the text style of the **TextEditor** component.
 * @param topLeft Pointer to the radius of the rounded corner in the upper left corner of the text background. The unit
 *     is vp.
 * @param topRight Pointer to the radius of the rounded corner in the upper right corner of the text background. The
 *     unit is vp.
 * @param bottomLeft Pointer to the radius of the rounded corner in the lower left corner of the text background. The
 *     unit is vp.
 * @param bottomRight Pointer to the radius of the rounded corner in the lower right corner of the text background. The
 *     unit is vp.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorTextStyle_GetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRight);

/**
 * @brief Sets the typing style using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param style Pointer to the typing style.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetTypingStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorTextStyle* style);

/**
 * @brief Obtains the typing style using the styled string controller.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param style Pointer to the typing style.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetTypingStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorTextStyle* style);

/**
 * @brief Creates a text selection menu option object of the text editor. When the object is no longer used, call
 * {@link OH_ArkUI_TextEditorSelectionMenuOptions_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @since 24
 */
OH_ArkUI_TextEditorSelectionMenuOptions* OH_ArkUI_TextEditorSelectionMenuOptions_Create();

/**
 * @brief Destroys the text selection menu option object of the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @since 24
 */
void OH_ArkUI_TextEditorSelectionMenuOptions_Destroy(OH_ArkUI_TextEditorSelectionMenuOptions* options);

/**
 * @brief Sets the span type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param textEditorSpanType Span type. The value is an enumerated value of {@link OH_ArkUI_TextEditorSpanType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_SetSpanType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorSpanType textEditorSpanType);

/**
 * @brief Obtains the span type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param textEditorSpanType Pointer to the span type. The value is an enumerated value of
 *     {@link OH_ArkUI_TextEditorSpanType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_GetSpanType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorSpanType* textEditorSpanType);

/**
 * @brief Sets the content node of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param node Content node.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_SetContentNode(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    ArkUI_NodeHandle node);

/**
 * @brief Obtains the content node of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param node Pointer to the content node.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_GetContentNode(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    ArkUI_NodeHandle* node);

/**
 * @brief Sets the response type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param responseType Response type. The value is an enumerated value of {@link OH_ArkUI_TextEditorResponseType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_SetResponseType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorResponseType responseType);

/**
 * @brief Obtains the response type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param responseType Pointer to the response type. The value is an enumerated value of
 *     {@link OH_ArkUI_TextEditorResponseType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_GetResponseType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorResponseType* responseType);

/**
 * @brief Sets the type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param menuType Menu type. The value is an enumerated value of {@link OH_ArkUI_TextMenuType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_SetMenuType(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    OH_ArkUI_TextMenuType menuType);

/**
 * @brief Obtains the type of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param menuType Pointer to the menu type. The value is an enumerated value of {@link OH_ArkUI_TextMenuType}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_GetMenuType(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    OH_ArkUI_TextMenuType* menuType);

/**
 * @brief Sets the callback triggered when the text selection menu is displayed.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData Pointer to the user data.
 * @param callback The callback function of menu show.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     callbackUserData The user data.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_RegisterOnMenuShowCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData));

/**
 * @brief Sets the callback triggered when the text selection menu is hidden.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData Pointer to the user data.
 * @param callback The callback function of menu hide.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user data.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_RegisterOnMenuHideCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData));

/**
 * @brief Sets the callback triggered when the text selection menu appears.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData Pointer to the user data.
 * @param callback The callback function of menu appear.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user data.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_RegisterOnMenuAppearCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData));

/**
 * @brief Sets the callback triggered when the text selection menu disappears.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData Pointer to the user data.
 * @param callback The callback function of menu disappear.
 *     userData The user data.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_RegisterOnMenuDisappearCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userData, void (*callback)(void* callbackUserData));

/**
 * @brief Sets the haptic feedback mode of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param mode Haptic feedback mode. The value is an enumerated value of {@link OH_ArkUI_HapticFeedbackMode}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_SetHapticFeedbackMode(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_HapticFeedbackMode mode);

/**
 * @brief Obtains the haptic feedback mode of the text selection menu in the text editor.
 *
 * @param options Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param mode Pointer to the haptic feedback mode. The value is an enumerated value of
 *     {@link OH_ArkUI_HapticFeedbackMode}.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorSelectionMenuOptions_GetHapticFeedbackMode(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_HapticFeedbackMode* mode);

/**
 * @brief Closes the text selection menu of the styled string controller in the text editor.
 *
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_CloseSelectionMenu(
    OH_ArkUI_TextEditorStyledStringController* controller);

/**
 * @brief Obtains the selected area using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param start Pointer to the start position of the selected area.
 * @param end Pointer to the end position of the selected area.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetSelection(
    const OH_ArkUI_TextEditorStyledStringController* controller, uint32_t* start, uint32_t* end);

/**
 * @brief Sets the styled string displayed using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param descriptor Pointer to the {@link ArkUI_StyledString_Descriptor} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetStyledString(
    const OH_ArkUI_TextEditorStyledStringController* controller, const ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Obtains the styled string displayed using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param descriptor Pointer to the {@link ArkUI_StyledString_Descriptor} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_GetStyledString(
    const OH_ArkUI_TextEditorStyledStringController* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Sets the placeholder text in the styled string style using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller Pointer to the {@link OH_ArkUI_TextEditorStyledStringController} object.
 * @param descriptor Pointer to the {@link ArkUI_StyledString_Descriptor} object.
 * @return Result code.
 *     <br>Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *     <br>Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_SetStyledPlaceholder(
    const OH_ArkUI_TextEditorStyledStringController* controller, const ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Scroll the text editor component to make the specified content visible.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param start The start offset of the content to be made visible.
 * @param end The end offset of the content to be made visible
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_TextEditorStyledStringController_ScrollToVisible(
 	const OH_ArkUI_TextEditorStyledStringController* controller, int32_t start, int32_t end);

/**
 * @brief Create the ArkUI_PickerIndicatorStyle instance.
 *
 * @param type The picker selection indicator enumeration type.
 * @return  ArkUI_PickerIndicatorStyle instance. If the instance returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may be that the address space is full or
 *         the type not supported.
 * @since 23
*/
ArkUI_PickerIndicatorStyle* OH_ArkUI_PickerIndicatorStyle_Create(ArkUI_PickerIndicatorType type);

/**
* @brief Destroy the ArkUI_PickerIndicatorStyle instance.
*
* @param style The ArkUI_PickerIndicatorStyle instance to be destroyed.
* @since 23
*/
void OH_ArkUI_PickerIndicatorStyle_Dispose(ArkUI_PickerIndicatorStyle* style);

/**
* @brief Set the parameters of background style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param background The parameters of background style.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this error code will be returned.
*         This interface only takes effect when the type is "background".
* @since 23
*/
ArkUI_ErrorCode OH_ArkUI_PickerIndicatorStyle_ConfigureBackground(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorBackground* background);

/**
* @brief Set the parameters of divider style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param divider The parameters of divider style.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this error code will be returned.
*         This interface only takes effect when the type is "divider".
* @since 23
*/
ArkUI_ErrorCode OH_ArkUI_PickerIndicatorStyle_ConfigureDivider(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorDivider* divider);

/**
 * @brief Defines the scale options for matrix scaling.
 *
 * @since 24
 */
typedef struct ArkUI_Matrix4ScaleOptions ArkUI_Matrix4ScaleOptions;

/**
 * @brief Create an object of ArkUI_Matrix4ScaleOptions.
 *        In the newly created options, the default values for the scaling coefficients in the x, y and z directions
 *        are 1, and the default values for centerX, centerY are 0. 
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4ScaleOptions.
 * @since 24
 */
ArkUI_Matrix4ScaleOptions* OH_ArkUI_Matrix4ScaleOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4ScaleOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4ScaleOptions_Dispose(ArkUI_Matrix4ScaleOptions* options);

/**
 * @brief Set the scaling factor in the x direction in ArkUI_Matrix4ScaleOptions. 
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful. 
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_SetX(ArkUI_Matrix4ScaleOptions* options, const float scaleX);

/**
 * @brief Get the scaling factor in the x direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of x is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_GetX(const ArkUI_Matrix4ScaleOptions* options, float* scaleX);

/**
 * @brief Set the scaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_SetY(ArkUI_Matrix4ScaleOptions* options, const float scaleY);

/**
 * @brief Get the scaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of y is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_GetY(const ArkUI_Matrix4ScaleOptions* options, float* scaleY);

/**
 * @brief Set the scaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_SetZ(ArkUI_Matrix4ScaleOptions* options, const float scaleZ);

/**
 * @brief Get the scaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of z is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_GetZ(const ArkUI_Matrix4ScaleOptions* options, float* scaleZ);

/**
 * @brief Set x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x offset relative to the transformation center. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_SetCenterX(ArkUI_Matrix4ScaleOptions* options, const float centerX);

/**
 * @brief Get the value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The unit is px. If the value of centerX is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x-direction offset relative to the transformation center.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_GetCenterX(const ArkUI_Matrix4ScaleOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y offset relative to the transformation center. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_SetCenterY(ArkUI_Matrix4ScaleOptions* options, const float centerY);

/**
 * @brief Get the value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The unit is px. If the value of centerY is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y-direction offset relative to the transformation center.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4ScaleOptions_GetCenterY(const ArkUI_Matrix4ScaleOptions* options, float* centerY);

/**
 * @brief Defines the rotation options for matrix rotating.
 *
 * @since 24
 */
typedef struct ArkUI_Matrix4RotationOptions ArkUI_Matrix4RotationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4RotationOptions.
 *        In the newly created options, the x, y, and z values in the direction vector specifying the rotation axis
 *        are undetermined; The default values for centerX, centerY are 0; The default value for angle is 0.
 *        If none of x, y, z are specified, it is equivalent to x=0, y=0, z=1, which means rotation around the z-axis.
 *        Once any one of x, y, z is specified, the remaining unspecified values are equivalent to 0.
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4RotationOptions.
 * @since 24
 */
ArkUI_Matrix4RotationOptions* OH_ArkUI_Matrix4RotationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4RotationOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4RotationOptions_Dispose(ArkUI_Matrix4RotationOptions* options);

/**
 * @brief Set the value of the direction vector for the x-axis direction in A  rkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetX(ArkUI_Matrix4RotationOptions* options, const float x);

/**
 * @brief Get the value of the direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of x is never set, its value will be undefined, so the function will return
 *        ARKUI_ERROR_CODE_PARAM_INVALID.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetX(const ArkUI_Matrix4RotationOptions* options, float* x);

/**
 * @brief Set the value of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetY(ArkUI_Matrix4RotationOptions* options, const float y);

/**
 * @brief Get the value of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of y is never set, its value will be undefined, so the function will return
 *        ARKUI_ERROR_CODE_PARAM_INVALID.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetY(const ArkUI_Matrix4RotationOptions* options, float* y);

/**
 * @brief Set the value of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetZ(ArkUI_Matrix4RotationOptions* options, const float z);

/**
 * @brief Get the value of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of z is never set, its value will be undefined, so the function will return
 *        ARKUI_ERROR_CODE_PARAM_INVALID.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetZ(const ArkUI_Matrix4RotationOptions* options, float* z);

/**
 * @brief Set the value of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptions. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetAngle(ArkUI_Matrix4RotationOptions* options, const float angle);

/**
 * @brief Get the value of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *        If the value of angle is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptions.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetAngle(const ArkUI_Matrix4RotationOptions* options, float* angle);

/**
 * @brief Set x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x offset relative to the transformation center. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetCenterX(ArkUI_Matrix4RotationOptions* options, const float centerX);

/**
 * @brief Get the value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The unit is px. If the value of centerX is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x-direction offset relative to the transformation center.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetCenterX(const ArkUI_Matrix4RotationOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y offset relative to the transformation center. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_SetCenterY(ArkUI_Matrix4RotationOptions* options, const float centerY);

/**
 * @brief Get the value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The unit is px. If the value of centerY is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y-direction offset relative to the transformation center.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4RotationOptions_GetCenterY(const ArkUI_Matrix4RotationOptions* options, float* centerY);

/**
 * @brief Defines the translation options for matrix translating.
 *
 * @since 24
 */
typedef struct ArkUI_Matrix4TranslationOptions ArkUI_Matrix4TranslationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4TranslationOptions.
 *        In the newly created options, the default values for x, y and z are 0.
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4TranslationOptions.
 * @since 24
 */
ArkUI_Matrix4TranslationOptions* OH_ArkUI_Matrix4TranslationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4TranslationOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4TranslationOptions_Dispose(ArkUI_Matrix4TranslationOptions* options);

/**
 * @brief Set the translation value in the x-axis direction. The unit is px.
 *        If the value of x is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_SetX(ArkUI_Matrix4TranslationOptions* options, const float x);

/**
 * @brief Get the translation value in the x-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_GetX(const ArkUI_Matrix4TranslationOptions* options, float* x);

/**
 * @brief Set the translation value in the y-axis direction. The unit is px.
 *        If the value of y is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_SetY(ArkUI_Matrix4TranslationOptions* options, const float y);

/**
 * @brief Get the translation value in the y-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_GetY(const ArkUI_Matrix4TranslationOptions* options, float* y);

/**
 * @brief Set the translation value in the z-axis direction. The unit is px.
 *        If the value of z is never set, its default value is 0.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis direction. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_SetZ(ArkUI_Matrix4TranslationOptions* options, const float z);

/**
 * @brief Get the translation value in the z-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4TranslationOptions_GetZ(const ArkUI_Matrix4TranslationOptions* options, float* z);

/**
 * @brief Create an identity matrix4 object.
 *
 * @return Returns the created identity matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateIdentity();

/**
 * @brief Specify each element of the matrix to create a matrix4 object.
 *
 * @param elements Pointer to the array of expected matrix element data. The length of array should be greater than
 *                 or equal to 16. The parameter must not be null.
 * @return Returns the newly created matrix4 object.
 *         If the pointer of elements is null, the function will return null.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateByElements(const float* elements);

/**
 * @brief Disposes a matrix4 object.
 *
 * @param matrix Pointer to the matrix4 object to be disposed.
 * @since 24
 */
void OH_ArkUI_Matrix4_Dispose(ArkUI_Matrix4* matrix);

/**
 * @brief Create a copy of the matrix4 object.
 *
 * @param matrix Pointer to the original matrix4 object.
 * @return Returns the newly created matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_Copy(const ArkUI_Matrix4* matrix);

/**
 * @brief Perform an inverse matrix transformation on the input matrix.
 *        If the matrix is invertible, this function will modify the input matrix; otherwise, the matrix will remain
 *        unchanged and an error code will be returned.
 *
 * @param matrix Pointer to the matrix4 object to be inverted.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if the matrix is not invertible.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Invert(ArkUI_Matrix4* matrix);

/**
 * @brief Combine another matrix with the original matrix, and storing the resulting matrix in oriMatrix.
 *        The resulting matrix is equivalent to first applying the transformation of oriMatrix and then applying
 *        the transformation of anotherMatrix. This function will alter the oriMatrix object.
 *
 * @param oriMatrix Pointer to the original matrix4 object.
 * @param anotherMatrix Pointer to another matrix object to be combined.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Combine(ArkUI_Matrix4* oriMatrix, const ArkUI_Matrix4* anotherMatrix);

/**
 * @brief Apply a tranlation transformation to the original matrix to obtain the translated matrix. Each translation
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be translated.
 * @param translate Pointer to the translation options.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Translate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4TranslationOptions* translate);

/**
 * @brief Apply a scale transformation to the original matrix to obtain the scaled matrix. Each scale
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be scaled.
 * @param scale Pointer to the scale options.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Scale(ArkUI_Matrix4* matrix, const ArkUI_Matrix4ScaleOptions* scale);

/**
 * @brief Apply a rotation transformation to the original matrix to obtain the rotated matrix. Each rotation
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be rotated.
 * @param rotate Pointer to the rotation options.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Rotate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4RotationOptions* rotate);

/**
 * @brief Apply a skew transformation to the original matrix to obtain the skewed matrix. Each skew
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be skewed. It must not be null.
 * @param skewX Skew coefficient in the x direction.
 * @param skewY Skew coefficient in the y direction.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_Skew(ArkUI_Matrix4* matrix, const float skewX, const float skewY);

/**
 * @brief Calculate the new coordinate position of a point after it has been transformed by a matrix.
 *        The calculated transformed coordinate point will be filled into the ArkUI_PointF structure
 *        pointed to by result.
 *
 * @param matrix Pointer to the matrix4 object.
 * @param oriPoint Pointer to the original coordinate point.
 * @param result Pointer to the result point. It must not be null.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_TransformPoint(const ArkUI_Matrix4* matrix, const ArkUI_PointF* oriPoint, ArkUI_PointF* result);

/**
 * @brief Map the vertex coordinates of one polygon to the vertex coordinates of another polygon, and calculate the required
 *        matrix. The resulting matrix will be filled into the object pointed to by matrix.
 * 
 * @param matrix Pointer to the original matrix4 object. The result matrix will be filled into the object pointed to by it.
 *               It must not be null.
 * @param src Pointer to the array of original polygon coordinate points. The array should be at least as long as pointCount.
 * @param dst Pointer to the array of polygon coordinate points after mapping. The array should be at least as long as pointCount.
 * @param pointCount The number of polygon points, which must be one of the values 0, 1, 2, 3, or 4.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_SetPolyToPoly(ArkUI_Matrix4* matrix, const ArkUI_PointF* src, const ArkUI_PointF* dst, const uint32_t pointCount);

/**
 * @brief Obtain the 16 elements of the matrix and fill them into the array pointed to by result.
 *        The array pointed to by result must have space for 16 float elements.
 *
 * @param matrix Pointer to the original matrix4 object.
 * @param result Pointer to an array that can hold 16 floating-point numbers. It must not be null.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 24
 */
ArkUI_ErrorCode OH_ArkUI_Matrix4_GetElements(const ArkUI_Matrix4* matrix, float* result);

/**
 * @brief Defines the font weight configuration of text.
 *
 * @since 24
 */
typedef struct OH_ArkUI_FontWeightConfigs OH_ArkUI_FontWeightConfigs;

/**
 * @brief Defines the font configuration of text.
 *
 * @since 24
 */
typedef struct OH_ArkUI_FontConfigs OH_ArkUI_FontConfigs;

/**
 * @brief Create an option object for font weight configuration of text.
 *
 * @return A pointer to the option object.
 * @since 24
 */
OH_ArkUI_FontWeightConfigs* OH_ArkUI_FontWeightConfigs_Create();

/**
 * @brief Destroy an option object for font weight configuration of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
void OH_ArkUI_FontWeightConfigs_Destroy(OH_ArkUI_FontWeightConfigs* option);

/**
 * @brief Sets the enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supported. The default value is false.
 * True means enable VariableFontWeight, false means disable VariableFontWeight.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableVariableFontWeight Flag.
 * @since 24
 */
void OH_ArkUI_FontWeightConfigs_SetEnableVariableFontWeight(OH_ArkUI_FontWeightConfigs* option, bool enable);

/**
 * @brief Gets the enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supported. The default value is false.
 * True means enable VariableFontWeight, false means disable VariableFontWeight.
 *
 * @param option Pointer to the option object.
 * @return Returns the enableVariableFontWeight flag.
 * @since 24
 */
bool OH_ArkUI_FontWeightConfigs_GetEnableVariableFontWeight(OH_ArkUI_FontWeightConfigs* option);

/**
 * @brief Sets the enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The default value is true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means font weight will not be automatically updated when the device's font weight category changes.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableDeviceFontWeightCategory Flag.
 * @since 24
 */
void OH_ArkUI_FontWeightConfigs_SetEnableDeviceFontWeightCategory(OH_ArkUI_FontWeightConfigs* option, bool enable);
 
/**
 * @brief Gets the enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The default value is true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means font weight will not be automatically updated when the device's font weight category changes.
 *
 * @param option Pointer to the option object.
 * @return Returns the enableDeviceFontWeightCategory flag.
 * @since 24
 */
bool OH_ArkUI_FontWeightConfigs_GetEnableDeviceFontWeightCategory(OH_ArkUI_FontWeightConfigs* option);

/**
 * @brief Create an option object for font configuration of text.
 *
 * @return A pointer to the option object.
 * @since 24
 */
OH_ArkUI_FontConfigs* OH_ArkUI_FontConfigs_Create();

/**
 * @brief Destroy an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
void OH_ArkUI_FontConfigs_Destroy(OH_ArkUI_FontConfigs* option);

/**
 * @brief Sets the font weight configs of an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fontWeightConfigs font weight configs.
 * @since 24
 */
void OH_ArkUI_FontConfigs_SetFontWeightConfigs(OH_ArkUI_FontConfigs* option,
    OH_ArkUI_FontWeightConfigs* fontWeightConfigs);
 
/**
 * @brief Gets the font weight configs of an option object for font configuration of text.
 *
 * @param option Pointer to the option object.
 * @return Returns the font weight configs.
 * @since 24
 */
OH_ArkUI_FontWeightConfigs* OH_ArkUI_FontConfigs_GetFontWeightConfigs(OH_ArkUI_FontConfigs* option);

/**
 * @brief Enumerates the tree operating status for the cross-language option.
 *
 * @since 26.0.0
 */
typedef enum {
    /**
     * Undefined, the initial value of the node tree operating status. Nodes in this status do not support cross-language node tree operations.
     *
     * @since 26.0.0
     */
    OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED = 0,
    /**
     * Enable, which means that when the option is applied to the node, the node's tree operating status will be enabled.
     *
     * @since 26.0.0
     */
    OH_ARKUI_TREE_OPERATING_STATUS_ENABLE = 1,
    /**
     * Disable, which means that when the option is applied to the node, the node's tree operating status will be disabled.
     *
     * @since 26.0.0
     */
    OH_ARKUI_TREE_OPERATING_STATUS_DISABLE = 2,
} OH_ArkUI_CrossLanguageOperatingStatus;

/**
 * @brief Sets the tree operating status for the cross-language option.
 *
 * @param option The cross-language option.
 * @param status The tree operating status to be set for the cross-language option.
 * Default value: OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED.
 * @since 26.0.0
 */
void OH_ArkUI_CrossLanguageOption_SetTreeOperatingStatus(ArkUI_CrossLanguageOption* option, OH_ArkUI_CrossLanguageOperatingStatus status);

/**
 * @brief Gets the tree operating status of the cross-language option.
 *
 * @param option The cross-language option.
 * @return Return the tree operating status of the cross-language option.
 * @since 26.0.0
 */
OH_ArkUI_CrossLanguageOperatingStatus OH_ArkUI_CrossLanguageOption_GetTreeOperatingStatus(ArkUI_CrossLanguageOption* option);

/**
 * @brief Defines linear gradient options.
 *
 * @since 26.0.0
 */
typedef struct OH_ArkUI_LinearGradientOptions OH_ArkUI_LinearGradientOptions;

/**
 * @brief Defines radial gradient options.
 *
 * @since 26.0.0
 */
typedef struct OH_ArkUI_RadialGradientOptions OH_ArkUI_RadialGradientOptions;

/**
 * @brief Creates a linear gradient options object.
 * The returned object must be released by calling <b>OH_ArkUI_LinearGradientOptions_Destroy</b>.
 *
 * @return Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @since 26.0.0
 */
OH_ArkUI_LinearGradientOptions* OH_ArkUI_LinearGradientOptions_Create();

/**
 * @brief Destroys a linear gradient options object.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @since 26.0.0
 */
void OH_ArkUI_LinearGradientOptions_Destroy(OH_ArkUI_LinearGradientOptions* options);

/**
 * @brief Sets angle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param angle Start angle of linear gradient.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_SetAngle(OH_ArkUI_LinearGradientOptions* options, float angle);

/**
 * @brief Gets angle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param angle Pointer to the start angle of linear gradient.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_GetAngle(const OH_ArkUI_LinearGradientOptions* options, float* angle);

/**
 * @brief Sets direction of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param direction Direction of linear gradient.
 * The parameter type is {@link ArkUI_LinearGradientDirection}.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_SetDirection(OH_ArkUI_LinearGradientOptions* options,
    ArkUI_LinearGradientDirection direction);

/**
 * @brief Gets direction of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param direction Pointer to the direction of linear gradient.
 * The parameter type is {@link ArkUI_LinearGradientDirection}.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_GetDirection(const OH_ArkUI_LinearGradientOptions* options,
    ArkUI_LinearGradientDirection* direction);

/**
 * @brief Sets whether colors are repeated in linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Whether colors are repeated.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_SetRepeating(OH_ArkUI_LinearGradientOptions* options, bool repeating);

/**
 * @brief Gets whether colors are repeated in linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Pointer to whether colors are repeated.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_GetRepeating(
    const OH_ArkUI_LinearGradientOptions* options, bool* repeating);

/**
 * @brief Sets color stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           The number of elements in colors and stops must be the same.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_SetColorStop(
    OH_ArkUI_LinearGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSize);

/**
 * @brief Gets color stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           The number of elements in colors and stops must be the same.
 *                           It should be larger than writeLength,
 *                           otherwise the operation will return ARKUI_ERROR_CODE_PARAM_INVALID.
 * @param writeLength Number of color stops actually written.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_LinearGradientOptions_GetColorStop(
    const OH_ArkUI_LinearGradientOptions* options, uint32_t* colors, float* stops, int32_t colorsAndStopsSize,
    int32_t* writeLength);

/**
 * @brief Creates a radial gradient options object.
 * The returned object must be released by calling <b>OH_ArkUI_RadialGradientOptions_Destroy</b>.
 *
 * @return Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @since 26.0.0
 */
OH_ArkUI_RadialGradientOptions* OH_ArkUI_RadialGradientOptions_Create();

/**
 * @brief Destroys a radial gradient options object.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @since 26.0.0
 */
void OH_ArkUI_RadialGradientOptions_Destroy(OH_ArkUI_RadialGradientOptions* options);

/**
 * @brief Sets centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerX X-coordinate of center point.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_SetCenterX(OH_ArkUI_RadialGradientOptions* options, float centerX);

/**
 * @brief Gets centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerX Pointer to the X-coordinate of center point.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_GetCenterX(
    const OH_ArkUI_RadialGradientOptions* options, float* centerX);

/**
 * @brief Sets centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Y-coordinate of center point.
 * @return Returns the resul3t code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_SetCenterY(OH_ArkUI_RadialGradientOptions* options, float centerY);

/**
 * @brief Gets centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Pointer to the Y-coordinate of center point.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_GetCenterY(
    const OH_ArkUI_RadialGradientOptions* options, float* centerY);

/**
 * @brief Sets radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Radius of radial gradient.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_SetRadius(OH_ArkUI_RadialGradientOptions* options, float radius);

/**
 * @brief Gets radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Pointer to the radius of radial gradient.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_GetRadius(
    const OH_ArkUI_RadialGradientOptions* options, float* radius);

/**
 * @brief Sets whether colors are repeated in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Whether colors are repeated.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_SetRepeating(OH_ArkUI_RadialGradientOptions* options, bool repeating);

/**
 * @brief Gets whether colors are repeated in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Pointer to whether colors are repeated.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_GetRepeating(
    const OH_ArkUI_RadialGradientOptions* options, bool* repeating);

/**
 * @brief Sets color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           The number of elements in colors and stops must be the same.
 * @return Returns the result code.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_SetColorStop(
    OH_ArkUI_RadialGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSize);

/**
 * @brief Gets color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           The number of elements in colors and stops must be the same.
 *                           It should be larger than writeLength,
 *             otherwise the operation will return ARKUI_ERROR_CODE_PARAM_INVALID.
 * @param writeLength Number of color stops actually written.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_RadialGradientOptions_GetColorStop(
    const OH_ArkUI_RadialGradientOptions* options, uint32_t* colors, float* stops, int32_t colorsAndStopsSize,
    int32_t* writeLength);

/**
 * @brief Enumeration of the policy for mounting child node to the target node.
 *
 * @since 26.0.0
 */
typedef enum {
    /**
     * If you want to mount a RenderNode as a child node, that RenderNode must be the only child.
     *
     * @since 26.0.0
     */
    OH_ARKUI_NODE_MOUNT_POLICY_SINGLE_IF_RENDER_NODE = 0,
    /**
     * Multiple child nodes of type Node or RenderNode allowed.
     *
     * @since 26.0.0
     */
    OH_ARKUI_NODE_MOUNT_POLICY_MIXED = 1,
} OH_ArkUI_NodeMountPolicy;
#ifdef __cplusplus
};
#endif

#endif // ARKUI_NATIVE_TYPE_H
/** @} */
xGx}	tu} x CୃI@ "%Y3`h`LL6vbٖ(*qD9Fqhc%$1ěuX+0>b9GUuL i]>?Wկxw]o!/ĕp$
I9S<-xwOj"('T*Sj4%/ĢT,A(ѐ˽UwJ+ňN2e<&GXPʜgc	g0E1*ҁH8zRN-sr8QS198rlhzS@*)UNCVA`fӾ'&FpT5SCOH:)PB9h:IM`DIbѭm-Y[!bs	%>ԈorNM	]4"/j,o0_};TJE$rCJJc3b}:%ۙEf;z9f~/&ë3R-_^9GSHHGOH2805uRPH_0%T%
m%#/ =DH2<@,3s'F2"GeERVd<}tʻsh8
5 c
	yF*i%JITJRMG"]3_olc&|P1ٸ3yA5?mS޺
¹$w G@(%,ޭ#S#շ$T낺K,ʱ`0D4hs[|y^;&V#.-v5͒F(-8UO>:pDicq96K}M:dJ	Wj9L}& uq|BVM/=Nm(=
LZ"!_qwDL\-MPce+<﯑0pm1	$SHuR&bf"NL蹔zIX,w?K M ͷ`>EP)%D_#?^f3Ɓ?_xL"S?G>U@Mcn<4##"!5a'}UOLV0f~7Gb94ƭ1`:òbGG" <S?FAOU?DW$mt&^Hfp_T9sdlE*#Dj]!2gnEO*ImnQX10b'6
>_$Ftc3VyjIPП4
ATDi6KG!vxADѷ-3tl3輥gfԨɑXqQUa!맾w?G$[SG	N-D/.!j"Dg9B`",Fd+;3J?0>̤ggzMȨ	\MѮC甯~XΥ~my`SYaPe[1t,$m#pt8M#oN4Pz`I[`]xu\!1+H\	-\hw:`$9!oz{#_|.	O@,jM-	߉d6O!PzLbO0(o-; 9NR&C53!v5۱.21a;KXlAB.'U4X*9lPiKK*cFd5#!'hKdX0vM #cw	JN";6t'Wpb1SIUVphV(q<n  KsdgKF({,dqqdMh~C4-pIEa+%*ڌR%AYIe52rA*-B[SM46#)K¾`,%Ж\p'}$|7uzB'QˣUIjr3(7Awmg	3%Fy[\V_}}e¨e|U1Vpʈ:y'|u4Cs;G>6:9740HUUHƙT2v/:D0GGP{xuWp~ŷ6C}G'zNIbX};GEx{'FLc4v8 )pZ0F-_9?5?1=9ۇ ;@;;̀ACG#8PôΫya^C1<9QE1!rc@`XfTYhb󰯶֤e2lg|	_{B]}dD?Vm
_UD7z'z'zd'VҰHWbˡAN,+$l$MNdbEVKb!V{'.2߶33u{񟢙4!uu*L>O#rPzeo]m3](>Cvd80@?X0!K+#xQ/0;qwmLh:";l`ux?'s4פ:ñ_c#Of'<ߎ'zhr$zÞR~y''%aٸ~c^4STiIĺy%O)4<cPQZ
2ڹc:M>:JY'P^&DkrjՌkd'z]iR^6\6$ feXvG:f)n0gb|qix+jʱn*Al%qTʷn{SEӃ|F.5}ah^Ǻ^Ŭo4Ip,\ݱg{@aQN:G*dd1YH/Iz:@h$D$w0ш3k9(~_)"`!:mP.֜f4J֤>46/ͫI3!3{q`Iby#R911ZOքXsQWN/*T:NdDKgÉdȈkR=|eBڂ^Ev0/NH;Jt @/5hS5I%*]%:Kc?+"*$v᤺B)dX'ѥvSkR`N<EtMHn^ٌ+(=cHk]=,h.zphh捏n7ALX(F	ӪJ[2҈#%@gW(Qw&Q\i 3ا`{L4һ0^&o܄S"y4-xDkipP*Ӝ_tl&%hxGڳ^qYEb\.Dރ?!9Z=5Kݭmz0дniɆ|;cYdRܺ"1yϼ4g
 lyfpiII<@%f5F.MԂfHe+̕j 96G=ԱIYyB%mI}GJdi3Nfhh`{#psȭ!t]eU5XE)v6R&#	/KI_f".iȖ!H&9k@#^uΝwE;-uvq?nCFΠ`#	*)9oHbo_usz\Kl𡣠vaM-ڛf.(}aN՜q*n5o6#ޓ?ɼ&o.E{]<neIjlY=ϰ
R,]ron\GO;Z_:e&&L@(OLt'd#ApF}UI 03#Qߺ)(&.
ں%i_*3b4"gWiBڳ2p^ԘؘU4¨KqF>	CoFŰr1"w^o<FC0Fg=b)vFiME4]Mym``q"	R70=eV>pQ)>ܛp\m2Cj+,aVޚ|gzŦV#+)гԶA%>0|D8";1_{C2W4[FkGkὗ|edC(cc}CcSdQuzHﰾUv/=hi<.SOꈉpnsrMLSFKίEگEaQ
VlMpT[* YЀTvÊ~JA,aƑйVJR Qt.JZґ#VMb	-8GB$}(
R:} @c\Ɓxi(88`¯Ebv"1,vx<a렱\D^&_4$K
]*~8ླྀ"7	?`h?Y*>p0#᭯>W+e;OR/
;]}n*l$P8K}e{V_ 7bLtnѼϾ~="_~NiP+ufEh'eSK
hTrbo}e'd+'Nu'~	rg	t Z5ǃI!;[/5$e0x핓fJ-G<|Ӡ	1,ֹX<fE{ZIۑH(kqaM63+G6ckr>)9"{a=Dw/.d|l6/BTxrAVS~d1tA6FkeejÍlA Iȓ)`cxs˱,s{ap _VPShRIgI#nld;-Dud_@z'b_R@TʦxI N7:@-<-ufMb]c/c(hEY'ZxIy>\qy+u8RyY:YW,2ܣJR`{jp7%r6#]2uuĮk'<G( op_^w"wi;5fvHsԐ̍K]r265POea)>*Uۧ݇\}uX&xͱW3qj&g۵ܥyxjGAMci=:9L7r47+?ODȖ$;Hs8'|nTH`YFssLZء݂Nl-̫O2Z_D3~> hVA{G0`JT@2(1%ߕ En.f1Xc)cODA89 \ƈla$Oz^һ6""!f=jK4,ҏ'&L &>}py2RX/1,@ntSz yh'_͙FϕtE-\P#nt4pbEܚ첐jPȆ';wև.qxtz]f$xF	=d!DT"(VBX`Ѓr%]y<'`{54#cP*|P	)64[3${j/_f,l(kϦH-5nZq7T^QXϷl0Rb*<w*uHhI)R"m쫥Gi^ӭ~uk%FPUn?(j_Y-DX@SOP	$Dyik}nu-ʼ':_m7|4: Fƞ8?J^pX"  v]X#k.LE¾#vh ֛PJb@p/_#	re3|u);m䬁kԸtؐl
O"%<a5ɜؠH,H";iԾ\ד	kPIviQ{
LAϘģ@li);=XkCa?@KETfF+R}f?(-ʙVxb;9Ѕ-RM}䝻5g0%sMw>
Y$">#l=ۙQ'RIvǞ۶nG51FpFޝ'rZ߇q\ZE4efs?E9oQE+,a?}쵼	 0'࿣9r@4AqNֺ"Q`yƞ"3
QCawvi4oF{7h5&戍<\!	n*1r @g>IwrʩmJaf9eg1LWN"΢bke:;tҬHBy;[:K*i2ݽǼmH!mvΜL(p:0DH	aRHDB`=k$og}ЕH7|#<t9ñREx?[_m|Ǌ(%SMM4fpɴC-9aY';T7j#Cb1NZmf&%&tumoU7z;N\+Ox	qݪ:^NqB.Ӟү2Ζ6HWMݬdɩ9
Y'BQTL '|[ѐbΐCsww2pz|uzhQ"-36_]i];sJRN@Lc.Bz)]lS
7.6d6O@P#3*Ws#Jb.C٘zjMǑ Πs.gLW݃4.q
PtPDT8DhU	H\L:@LJ::WHK̝1cQ9Ħ{>Tf`3*ˌbKꝚd	ehcCϭљyd{m~HG|a'Nde_Gvhp7woBϴj<\pZ:kT>#%g}%'$3\k9P?rƜY'yY|ٖZNf0AIK*-?Cr^ԴhmԱQ?UCsU[lH
>zL|)PPozOFtvY8H2{w%7FʽkĹ:-$񢦉:?]gb)̦,E6]GѠyS6s6R$䦗&35^ag9ECP5BF=JUekhk}mX]αb;ot炓[ߗYqW ^yܭqtwxl6/p9f7tZ8=2;LrפBx{s+_M.~4	z)Ͼj֚H5	SaMR=ԴEe7Gӕ
ns8Rd:c;?ʅf*?y"65P4؞̙O@<TmEY!9HetCYpns߆:0R^!tfP-8`M2;lI.έ%qtbfj6{ND{@3 r[(R)k#l3ry_k /ȇ],!P(Pv4nG<@<EJFb|g%	Bqܱ4GqE<fn,c*?l0	pð顅D hѪ]5!O"n8hj<v4 ,"҅IXb?(l"<`6eB'Z֦ϝ\B-ѽl6wRvho67ʰjh&#CRw_E3*)IѬ0nP%v|1iňȽ$K^{\Uu+@GG^L0Qr5q*pz7}!R}°/7!xW씚@ZpZ>N#ʢ
j,sVdԠ^Q6#P`JAr';Vm1x[Tg1 Ƶ&]꽉4`7E𷏁σMz>K/lswct</3	p0V>	
>l-99
K>
r	|<|<rØңZ+^3FxO|1=>mT#w~UPc[/o,h֩@~j%'邐榋ÿ	mtOԷ%Q"!E=["QLDL钫.*__h/(	CI᛭мl5orfrtgз/1斵[0	q'ޠM ?eP˿NPه?I2}}e!#s^xFB-:5FQ_meV$r>[q*u(jS+y|'ݦm˰ڭ(H)ٙ݃
c4I8$¢CX{3f-mfgFfH{r@qլ' GBgG,g x53fuW@g&#Sctg缍mWߐSp9C:vU2t5|Fg_F&SFecÖZl6|y[m
"ErEh9FK0xtKY>t  fobNpf2@]G".i>1Nxgyntj2|E1B3ȤOe>7Mth'KTSHO.&|n'|o'
=}5lE g_1vkLcsӅ^C_xU-Y(b*Yk][/jlkvxAu~-SѐL}7'ζ.|EjIz}6w-`S{c'qœ?;<i]h/ >n	Dj0[Zwgi
Hxv|!g9@k9TŹjv#LTf_ht3nPv(@d*4v3hs"DyGZ@y1ĸR+	^l;V\J_#wp/]p|ED[ǿ'lDʼӓ0K8qSJ
%} (bj#UZjA լ_	ì#ndjQY5kLQ+Axpx⻠riGT	gZl7'pM6^fU}MbB! 4bj̬jNP"K@/`/[:8ջS-[|T A'Bi7sC;'8rJlJ0EZp-ʇ+tu)C[@ܱu})IYPmMn>+^9,VXzhUf"*GXjQTAjҸe	e6)̂nM/̆4P0{rpRܑY.d` =]R|_A%;;|=\3'§b_&#a_`2ؿaΌ0\Pha>ڟ/qK$p66hh-a)Zgܗ9~Ƈ3'mezu7RTGxtd"¹9,Ѵ[`}ڌgTu	+Nz7=Z`Yn35+TgsO|[Sb]4g-WϽVXk+疩eG%K1;GYёou`1WqRzuƮdX-Q3wVƽ90,uKL)-6q%auaKD|TaU{pV~
2"o AK5ǮVg\1 ^7ΰ2Bjӫ|N/^TjoVM|E.Qyo
KqEd׉r:npu@DO-jRR,;!zQGyضr#.t}"JNZRJ:'D'H{<x4zSFT_xYzI:"}`Bڨ͸\CS1kSJF:xqPdPL`R[,ȑH#<&& v19,TSU5JP.-Rc.1Ԍ"M.=?vv3Ѵg<	+vtY8@5M%Rr0t*%K*gZF"IoKh䢕6wlJa}y~]FX
*yLq<FBy7c#M3x4Ety<MoH͗-bcaM+reqftDBxpsTjqM2&n8l-ꗲtpJ,:4(!\$
dL*-&Lj9:@Po2*㭲=F#$WG^oTV"G$(W&MlI;GOq">hBY$9 ͫ@jZ3aQA@S

W:V^+׫ByI+2ZZX׮jjn4)`JMnJ(;Ù΅3gͫmk{_]Ɩ94E6-62ґqv=/-홅wz='pQr@֯=bi?ߓ#ɿt=ފKynE__w<FO0lK(pXΙoWK8۷?XH6# yZ?{BAEYUDZ><el_u(e,UI59T1)m\<77=z+R%0VjDR8Y#U$"Ň
͉zf6tG;7:dvrc;f`:V`h:-JQutXRSo;=]641mU/pp^IKYx3"+WAw~óµӾ}
	pNF<	tרŌ:rM'LEV	~W
?q@h]o^J!&/5[mqXʳEWUޮ}\rP˒:)ሦF3|cu-vvbh_O~Y^bW,^SXgHU{;bi9$ނ5v1Fb0"n/2`⻡66ƴ&<|Q_'p)o1l⧦B7q3zŭY57vvֵ7t~[X`(5Z:`Fmn&'T m	<A?Vh2X"\ci[ tw%)֭y7B,]HLs^#7#w,E]QbtB)'Ѫ2^L/{~=;X&#'"ț,]𞴧U8JWP-@qyNB,/,V[j;v:S*y@Ra;	L+{t8l{ I6wAsuv|x[]@DƢd,|F(q؟jO{dK5N|BHRB!rkդ .|6К :.׻4w4{S̃l):Hl<b`sk3]"?brQ:د|%5$pY!͖6z8DkO䠈t͉~!9Qs\Ljruz$
˨RyY5UU!ew8ILkLQKDwȢyE+<
5'֑Xʊ%ulk-ۗ*?	yr- __Jk_j4fcc&yx	\ǣ{D>zh=֭UGyX>0>UZq,l`g&	.\j+ml93|S+5!_{i\4Zѕ;6g#6X-GbT:QdIֆWKdiȀ߸$`xBEXxZǆ֚p -l7H[T2x&u,<*R}<j)][#$PʞXfuDTI7x8O.(\gF}QOpW<H5bzZg'sF92)`NYŰASYOQ}⧽/]uUZL&qL9f0 v[?ȳEr߉mY\Z ^'vS:ʤZːkCx!%mˬ,Vkt^eTJۦ:q&g|abAbY'bX:Y\=w0a܅q)~I??{K>06ihn-:iFqIZk~7i֩1KdyedF{3lli̋([vzLΙQ:jtnɓ)e$fU9[}>"X"5yj֥].r-vmrMu0K݋n|5v0r ҸF0JIFIˊMMldM|Ƅ(A^g~譥H=?x	(ïh<"֣bWv;x_\{pQυ$,TlbР{ѯl,vq @ˣR&r/h(TJ	ww{:*uU`|~|k#ꩰzQoi{H@yTڒ{kk#b,v F'-?WY_h&ߌh*A~Y_]j6 |I}p|#z1{`Èy WSvo<2+g~!յx_~_,7"r Kë^Go`gH[N	өVrୃM:`*I2/Gn\t"WaSۧ'J2=+&Id-u=dxRdz	'7'lgxǞUwB\>;cŨ(fEm{}_&jsĢ6$8NCFxR#p3>yq9[@#fŜ[^?"q\;3&JsX""MX.qxT^QТC;6EXŰ72Dx,mƴ&>ApwIfgq :cɕvQzggpj
n,Uޣ^@j;?'>[²G;ˎ,_Lp7 ^ 5BG	,o}7-C6vZ3(ްJ,'#:&= 8󖷒X^F	(=߹<گU6}zwJ>2XI5t:P:H6jg%`x4f*Ya68j  W1?60!'95&p	tP+%Y>ץY9K!D2эfdh`}YrtL(ȸ^dy&_hLF ԜB`3A;@?h:^AL(:BP[LA /+a?zSVIS.(>qքM*(g9*2+ і>N;mTW:ZBP2V-'VD.7;Ѷ;u3:̦t!3`Jgк>2Yc/zH"%!D@նb)P5 A>_g.a\es-{Q#[o^!RZ?I%8CF<W^P"?JZ(fX)x&9zxUldēNFmo	ˋ>M!˄+#f	B4؛L*JgSx	&JBIy{Y _ِؤ0L}1Ivi/eЏZCB 3FFO':z'I]f"5	uA	O{7,|	mٜ2ٚt-u8*|wL#\>e26T8d
@*<eu6>9|⺯Y^Te;tK ][LZ89upɩ8'!8'z
p*Bx]{TW?XԐQAAcd/YMQԌd2Bi&khlT.
hAMgf&9gwϞN&IWuLvwL֣Fp~~qw!%] ̼TbYVvRQӨrfk-I9J8}5΢ix)(f  =o"0E?m\(`|TƟXj*x3j+Ra>_4޻PPZqiE3S`ES7vB(.\{4RI\?H^'tFPbn)@0#1zlncߚF/[;̝ݎdl!DES9Ŗk]QHhjec1Y:lzb>OJEjp'WFOijF툌}bіG1pK2>×o`|HB'.SWknqpy3"64uwi#W|>!uN`wa꣫le-zn{C?};"͖y"
<oքYJUe&s qr7/Wc!-DhOubKMSfEg<L\zPy̒le KO6Ø.,tqi\^J?j?H-sx.l[B[#xqePh&Wuh/RX:6gCD W:x6ՏU
`KA3rW,f%'
22l":;0*2j0_O :nz7Q?k%:S'	*&/ 'Z/ҾxCUKDY5m$zzD1Ȋ/&PARlQtpoĂB#oymZD4=^><`kM}6(MQ*T-٤%jkѮ}RZMkhT逹H͍È,,&v{+de	eJ1UMD2!`S6r!CL9L\7_CMd?D]"X~0SzTkOiC.je0R]'VKO[괤IT JRUDY2rːrn0Ζj,b#,1Ø8,S?lׇ5A;*=]t^s8fQS9*n%⤧FKW̃ -iyAD4=""	:Cى~=mFVEFR5FB/ߢO	hMTm1Y]ʚV8sBm>/!lb=[}~`@~"|9P.՜T)9%OsQv06oC`y!uh%5S2TSD#	UUH\5J+OIcAE*&|yܗp|y8GXyh*W>.BR	Pl fţnU4N$m;a@?ݯBπ2E$ş֣-%VqmJp˘əiAƖ<@Oۆ<ƙ41[%>G\% W7fOmp^#yGԜ-q.`s<Qr+= ңKm1B-y_WJg0^#JkFQ9L$#r^b31UD4P:]Ř$eUvgR
dC*^wx:Qjfl 6<4&m\OFYP0D1f>JgLsI`rQݳ}=yĴ?x,t"w'(ǁ墦w`bkܜ&O
z
삁N	'=Av$_.g:OEZ
H\=9 )i		 ckqiNHrp uDvH񥗙2Uxt?S_c`K85V_#8#G^+\nUjt=Pf!w
6xr	ayLؼ[):e;,Ҥ5ur{.D-'髝}[ϮHe\uKhkLLU1\[`oY/{G4>P|p	"mp4;KC7QgC+4\Mw[9ccI3_/pYla<1¹ȘUW䲾8BˡBBRX\ .!Wl_g=BdC(y^S
#eu#H1{M.=:g?Hh!3Cd5'~u̔KL&IrpTj
/&La1 <u9z:xj[ҏfBqgŲ=!"dgme7||LP68$۶v[V'Rjeϙ$ϙ Ws&=qg@t7! 6av+~-{cpy\D.rzh6u4oޫ=a7_OXn|	p<֍Č?ZY vSG<Q3[DsDF(<E;F\*$A,F|\7;?3=].QRPLfJvv4{;vB&=M:goKj+,=w{j&=+M!ß$7qKq>@+/in`hTx@	MXjq|#>z4Wڑr9z]``~W@ŠCNA_6RU)ק3,Lz :!zyAsx? #5^DY}ʑdS9k՛lqyoC'6.<<M&S$I m/ΏGƼYGf0{k(}vȜVøDF{A=al͒_nld~p-oUiY
QvKj@ؤ-T`R8 {U?C%)ԙ{[K#9'UǕ9
|<w<gՁhQk7@`Fx]<fS5ǜP`8OxB	c! D1Y4*K #ܼ=4Ti4BlX'8s#cD8ksl7E˝oMթj2C!`&>F8h%Tk	۠E.w0)aBOAi{,L6uP a!A|KX{)eo47M9?GB6y$1}0B" Cd`c]9CgOE`r26xb26x<&>R)	sO,8zAh5#޾R_@ Ww"Tr/Ǝb/W+@N*r-sA"4jĻ \rô!mnT5;C@|&4MSATW#Eb,N(Sr,OI4So)m(n\Eݡ1>B&nF?u>卅?ɮ+̽'<|lӷHBWZRK'
'ORý
z	LV+\q[tW
|oF,,Z)߁&Ζ`]v	uU"]R.陙
O8۷sfwp>Wb^?[7|?&?Ev:_E8[p{(CN_<1QοalqٶoW3*Nj}jVr!&+a I[pvs];,O8<Ƿ]~J(^	Hpx5yy<~2~>~xg>K3;xFK\iˎ~]`lJx.<7Cѓ};H0} hS}zxaWO5YQ68EFj]ֵ;K/Z܍dTv(e{pzf
	;]W3/^`.]b)|!&6o\nm+
|&orܼEGR:r3|`MrSP/dZz:j 4YPpb5s1fˇT~;ÝRI7Զ/C,HCiխrsWJ$5mR_Z06I7iT$otrbcrK@,ȫ)O~OS Ofy*C2D*afߵjz:'	bnwǳ,Œ|rѺfUu!3i{?Z9Vah31-,njQ'(c_+C׹֬tTBmě?}ψ0^7U FHxcQ]E;ZAQ~JdA؛׶Nφu.C~kus26s`Ӿαlc~ڣx4E;-Ƶ);`_:wಗG"5k)r+b9`ԈmX/xYJ^~-x-Cf~g#5"VM֍OCAXXC>s
؊o{~OnQJ/$˂;{qSU
I`Ց+dԅ$+l8"TWuhj<$DPDn½y}߾͂Wy2O Jw%d<T~
:%O3'*<{,$z>PFG]'tgQMht)$ݓ )Q:(y8>l$!s0,w}ؑ&Z6k+ooKjrӆa:/Wަ(R/ &n;%CU]5~ʱQlƻ2{㘕r
X#VN-vGMh(wLŏө(#h׀-T/e~V"n'{,Vbi8+bspiK 3?kn9lJAkɦrn֐zآ4uk̝zsm	qRZ1cn_mynb"b&b|wi(|y|Hhuz^-d|r2O<8ݨCjZֶE	)/;Sxd/jcAplZƔx1lˡ
@for auto fill϶1
ߕ@for password vault϶1
o5?Q.AC of data detecN57=o	f"Z/@'[A"prompt options when text editor haQXZ0Pe)?tfor"Z/sCparagraph style for"Zext style for"Z/	9PlC`΍No haptic feedback϶,yDefines always haptic feedback϶H%Defines automatically haptic feedback϶,EGFeditorp΍The span type of text϶в
1The span type of image϶в
nThe span type of mixв$The span type of builder϶в
^The span type of default϶вSFeditorp΍The text editorжв>'text editor response type of long press϶в#text editor϶в(The text editor response type of default϶вKE	menu typeQ΍$The text menu type of selection menu϶в_#"The text menu type of preview menu϶вµ:
line break/:`΍^*
     *5 fit into the same line϶H3'BALANCED,
     * which may results in a*׶56f׶иKb"n decoration line style object.
 *"in use, invok@$(OO:fon line0 >A_
decorationlpT ᗐ%6'~!K4	
decorationlpT *G~!u
decoration"tdecoration linel%#S4	l:	
decoration"tdecoration linel%}
decoration"eStyle of decoration linel%'v4	style of decoration"eStyle of decoration linel/*thickness scale of decoration"e+thicknessScale Thickness of decoration linel%,g4	thickness scale of decoration"e+thicknessScale Thickness of decoration linel.data detector config object.
 *"in use, invok5(/'O:snB0Hdata detector config!1@071Sdata detector config0;_   s Types of data detector config..typesl0u D 44	types of data detector config0;_=5a5!~type%(5]5V1f/
typesmٗ(V#bufferSize is less than writeLength0 D7data detector work8i'9,l0u DK:detect@=ol"	detected cont,0zח0u D<R4	l:	detect@=ol"	detected cont,0zח0u D>mdetect@=i?!Decoration style of detected cont,0zח0u DzA4	?detect@=i?!Decoration style of detected cont,0zח0u D%a preview menu when the detected cont/E%a preview menu when the detected cont/֗z'0u DHGk%a preview menu when the detected cont/E%a preview menu when the detected cont/֗z'0u`J a placeholder"in use, invokPeO'Of1P	`1	s
jyOP&placeholder~<b>TextEditor</b> placeholder o0aPPeQLhint text of placeholderQ0<b>TextEditor</b> placeholder`,]
hint tM0*PeSb`Ohint text of placeholderQ0<b>TextEditor</b> placeholder`=5o9to which hint text writes to the memory,
 *              uObuffer sizeQpGw1)OWfont size of placeholderQ0<b>TextEditor</b> placeholder`fontSize The font sizelPeOdYZ4font size of placeholderQ0<b>TextEditor</b> placeholder`fontSize The font sizelPea<\^ font weight of placeholderQ0<b>TextEditor</b> placeholder`<
 The font weigh z痠PeOdaDo/_`Ofont weight of placeholderQ0<b>TextEditor</b> placeholder`<
 The font weigh z痠PeamvplaceholderQ0<b>TextEditor</b> placeholder`fontFamily The font familylPeOdl`OvplaceholderQ0<b>TextEditor</b> placeholder`=5o;to which font family writes to the memory,
 *              uObuffer sizeQpGw1)OaWd=phJfont style of placeholderQ0<b>TextEditor</b> placeholder`mi
The fontql񗠘PeOdemJk`Ofont style of placeholderQ0<b>TextEditor</b> placeholder`mi
The fontql񗠘PeaemjplaceholderQ0<b>TextEditor</b> placeholder`fontColor The font col z痠PeOdo_`OplaceholderQ0<b>TextEditor</b> placeholder`fontColor The font col z痠Peare at  for text editor.
 *"in use, invokR2s'O(Q	 t[#tKps>@NLU)w&pLosP/aret offset witht@NLU/	x
caret posiv`Ocaret offset witht@NLU/	x
caret posi y selection area witht@NLU5gselection area start.
 * @param end selection area end.
 * @param menuPolicy selection area menu policylv$U|`O!editing state of text editor witht@NLU/isEditing editing statelv!k" editing state of text editor witht@NLU) zv"W`Opreview text content witht@NLU/review text position15oDto which preview text content writes to the memory,
 *              uObuffer sizeQpG՗z' y$`Ocaret rect witht@NLU/rect caret area infol y)i character witht@NLU) zv!aext editor.
 *"in use, invok*6'OF<b>TextEditor</b>Qu'0	Hext alignment inQ% @param align text alignm,0zחDd`Oext alignment inQ% @param align text alignm,0zחk pixelmap of leading margin inQ%* @param pixelmap pixelmap of leading margiѯ)l`Opixelmap of leading margin inQ%* @param pixelmap pixelmap of leading margiѯQɖ width of leading margin inQ%Vwidth of leading margiѯ}`Owidth of leading margin inQ%Vwidth of leading margiѯɘ<Oheight of leading margin inQ%& @param height height of leading margiѯ)OV`Oheight of leading margin inQ%& @param height height of leading margiѯj word break ofQ% @param wordBreak word breaklС`Oword break ofQ% @param wordBreak word breaklUj line break strategy ofQ%0 break strategyl֦}`Oline break strategy ofQ%0 break strategyl{ paragraph spacing ofQ%" @param paragraphSpacing paragraphl񗠘ëj`Oparagraph spacing ofQ%" @param paragraphSpacing paragraphl񗠘qs&ofQ%!)0zח`O"ofQ%!)0zחBsdirection ofQ%Dtext0
o`Oext direction ofQ%Dtext0
̵8|$ preset paragraph style witht@NLU1
yle presetQ{lv$	 a shadow"in use, invok~'O`1	ZL~"@0{ϼ>blur radius of*Ҭl}blur radius of the shadowlI4blur radius of*Ҭl}blur radius of the shadowlJ shadow type of*Ҭltype shadow typelP`Oshadow type of*Ҭltype shadow typelQ shadow color of*Ҭ shadow col z痍J`Oshadow color of*Ҭ shadow col z痍\ offset of the shadow along"Ҭl-offsetX offset of the shadow along the x-axislK`Ooffset of the shadow along"Ҭl-offsetX offset of the shadow along the x-axislL offset of the shadow along"Ҭl-offsetY offset of the shadow along the y-axislxK`Ooffset of the shadow along"Ҭl-offsetY offset of the shadow along the y-axisl{L whether to fill the insidwithҬl isFill whether to fill the insidwith shadowlF`Owhether to fill the insidwithҬl isFill whether to fill the insidwith shadowlJ a text style object.
 *"in use, invok
>O@0

@2<b>TextEditor</b> text style zPK`O1<b>TextEditor</b> text style zO16<b>TextEditor</b> text style.
 * @param size font sizelP}E`O06<b>TextEditor</b> text style.
 * @param size font sizelsI2<b>TextEditor</b> text styleaifontqlP^`O1<b>TextEditor</b> text styleaifontqly3<b>TextEditor</b> text style0I zP4*_`O2<b>TextEditor</b> text style0I zU3><b>TextEditor</b> text style.
 * @param fontFamily font familylP+d)`O2<b>TextEditor</b> text style15oCto which font family content writes to the memory,
 *              uObuffer sizeQpG՗z'{s9<b>TextEditor</b> text style.!9P`O=<b>TextEditor</b> text style.!9qs5<b>TextEditor</b> text style.!>length the length of=?P5GH`O9<b>TextEditor</b> text styleQ=2buffer size forѬl5)the actual size of text shadow options inls27<b>TextEditor</b> text style.
 * @param lineHeight text lP0T`Oext37<b>TextEditor</b> text style.
 * @param lineHeight text l3X6<b>TextEditor</b> text style/lP.^`O5<b>TextEditor</b> text style/lDb1@<b>TextEditor</b> text style.
 * @param fontFeature font featurelPZ`O2<b>TextEditor</b> text style15oDto which font feature content writes to the memory,
 *              uObuffer sizeQpG՗z'|  whether half leading is enabled'<b>TextEditor</b> text stylewhether half leading is enablۗz'PS`Owhether half leading is enabled'<b>TextEditor</b> text stylewhether half leading is enablۗz'ns'&-<b>TextEditor</b> text style.
 * @param color! zP]`O#&-<b>TextEditor</b> text style.
 * @param color! z7+r'<b>TextEditor</b> text style	radius of1ext backgroundP	radius of|ext backgroundSradius of the lower left corner of text background.
 * @param bottomRight radius ofext backgrounP`Or'<b>TextEditor</b> text style	radius of1ext backgroundP	radius of|ext backgroundSradius of the lower left corner of text background.
 * @param bottomRight radius ofext backgrounpreset typing style witht@NLU1yle the preset typingqlv${}	reset typing style witht@NLU1yle the preset typingql y$
TextEditor"in use, invok#0OO#C'6a	sp:K"&
TextEditor~"Z(1
@'a1TextE%mp(I#	span typel$$Ru"%4	<
of1TextE%mp(I#	span typel$of1TextE%rL(l$'l4	'1TextE%rL(l$"`-'F)21TextE%m*], typel$,u4	,1TextE%m*], typel$".1TextE%m/		menu typel$C1r4	type of1TextE%m/l$"3y1P S;	5-l$
6!1P S;	user8l$
6J:";user;l$
6=z>userO?7l$
@1TextE%mD0AD&ANC|4	C1TextE%mD0ADᗐ3A
F# selection menu of text editor witht@NLU) zv!JH_4	selection of text editor witht@	NoNLU5^zoffset of selectionzoffset of sel y$<Kof"RoNLU/RaMM,j zv$ N4	Qof"RoNLU/RaMM,j z y$QQ	placeholdQzNLU/RaMM,j zv$ N'TcJ2x]{TW?Z!QMbdb`fq4|`DGfLF;*#dѨA]H!&3fgOf7ջ;3;393{Fp~~qwMaW>5tMJj*\eR+߾^C%-ta8e*EWO]W FuPp(~R	kEዶVk[+YF550v[]JoiFFBmbỉ`>Scj
7P%9\[/[ۄ2bJ@;tն`2P̔zT^o3
ẝTy_F%$a`#;t_amXimspp۷BC3o\d*QmJgdSߏV[9肜P}\Ԋy|Y.4lgoP/+ȱ߁7nP#l*"R]*e.]	41`0L̓'ڨbe_Q"@t@m91TDb}ggj[m-o§!kq!y(Բ~K͆Ӧ3ݨ۩;zPADt[yɥ;qΕ*ņGB@#X6;@/**[OvQ3ܤ4QBa[ӝ"zp,=7"m(
9p-ꡙ˧"7+OoQ#ˬzZ}Eu^cZLy9I0c6Zz8jDF37Ȝ.ˁ2k]*jgkybKO.8fu)9jB4_f!N75vS9ٮ[ѥEv&4j2XzJp+mQ72\-So@|k_̳Cy
B×*Viuv2yhpkWjq#rT-KO)D,\#6$DAwZ׃.kn=T)$2&\
:U8|ƭ`l{	ߊ K7E'mUƜ$&$K?a
QB=gHd*+-""Jo-cx>h('&12<M@w}iٶ!ܿIKjܝ5'X6K{D?ӈY,v"Azv
]#Q3Zi
sC[U-GBhwbd<TSI|K("WRh~Q ҟO
f+&Xx,|/Byb3rxu_FZFƝnC]IL @DH$Q3ʽңi:;'Q5vnc2"c׮sFMh/2UC
Pgi%Ȳǀ# [,=}/-,ң-vѵ1BJ<H8\^-NzXucz
,޳A8-J	Pl 'nY~4k;x0o\2t7?x{GGJ 9)A+c.g&ui5L?^iv$	Hܕ,\ǃY<1lG`_>z.K%aVn?MxC7QYSqǨ)h@F|2_ȐD\Wh_A(bL*4KddǢXṆL:nUmLYtq#LB!)Sӎ0&=w&	!EݸL97vr\ bV4	BOɆ
Q[K(̧,QYր]Blo$رXV|_L}1={.iA81J)ૉ )oBIAΛQU~RN:Y2{79j9볎XS14)~e8Mޓ<͍sfO9<M6'ëxHvCZ+"[.)2dPECtzJC7t/úe;@
!W#NjH>Cfҝ!*'~n@=wǴiGu	jx<n=^NQÞϋy5):2}6e7X:=**p1jJ{5,_n{)mU٬ْ݉SS_r/edDi
ρB1CԌkQo
21j`92G+SFg9aپL}M-f͏톟35;=/G#))[I{IH.CD ߐi%jHb\Z~hAiş_m觋nIM;0]S58k,6H^&~(l0@dfJ+OҘ.֙>	`P\n?X3d&&c'ȭIH?Mv>O-|n4;uB
1Uo7|@أڶvf=KOvժ3L<g=͙x&SOdHذ̀M`
5~M^"Juɦ\_&}i_^;] ,p8EbΟx%m	[a	7+|Q3[AN\"[k<Ȣn\
OK/%&\l#>K?##'-u	R(o(&6{o'N(*7b{[Kn3\
K޸?U~P##$7qKyV^zf0`SQnȣb-˧-=%(s#$lvkWnr>*d4{؇Y^V5SC+ok>ca61fйӫG)s<ㅊmMs\ibysd/_>(ϡr޾O,r<I\D,yH49?g1%%0"wZ-V	;,Ev(;@fV25\Nz0]#ι[ba7%jL4B
rpau#=NՈ3SҎh35
0RCy"x Niql$5U"m3wO ^Iݯ?Qx5J8y[>%*L'@Oc~hRKYl[%HeE~ \n-\|^c/?)K=0#<g'Wk	,v{90`BϚ0Iig<42 WBdz+Qv߃YCdjF1π37#
TH$C8|N,|ɹ$3X'̼	Okd8IOvRJ<
.&)턠k|l7o,#( H= l6x4f*dË,opI>PY<*\K,2.TA}gx0y |O<m%vpPt1Bbv4tZ	ԣ8ioM)	ME^C01h|[
|"ʛ ~vzү~26Ο$^Nb<iyJ )[]2*Nv~+5,
l~DlF,~lZƉ`$v:~*`kiKmTokQHjԴ4/[<йdxdr>`gEz!<?ytl7_4Lz(GN.QsLr|Z^6x7h⫂n
p9ud_iFInPO
sI3 `񿂔-ُVOxV'{hwX俁T?!	Hx5uy<~2~>~Dg1>3;;,x=Spiǎy]`vc:,`)<<7Cٓ}x;I0}`hS}zίQSsW5cdmpJ՜GVֵ;>K#[^dd*z2?8#=V?͞/fϓ/_-.]䞄1orȇ0[*T=_MLe]¶YWN#zj )n^nJ՟ TLpO_͛b_<aխHxw2fecY9a_(Fm$^q4f:->tRJ}y5a5mV[QdJ`uɉy.cˑ/qC~Ow4}~BN?	^@B2٨Cv_nZ,=ھKJ;z~u%3~$G|nY{=~tfw:3+cj#\qg5Qfz/t0A0:=~.}_!Xb.m>+$7 =gj)9;gs];},<z~[>z}Ƒ]ym
[8<>Cov|VŦ} lڗp
P9M=H6	wGh>0/}pϣQrؾ]L+by0U
#U17uB2DQ#FkĬ?K#å%p(zڸ94i=3;.x!;J[?.OQeAT½x@u	qPh5eB+j&dxSi*Q_:/ZKI
:Mc}.o`{t8e}T	@[t*Uƣߣ	eQ1=*x:c*lﯠ]bጎmgp-}xt+$͑'}bJ(.;>I>,>a'>l'ov%+Н"D;蛊ڰ]dq>ڠk5R/ nYM)*U]>zqY4ە"1q_Y9H:\G$UƑm.Fr"$Q&2숆;Ԃqm2IUhmS7ц(oHo%VsA)77rk[6{`-1~>'ibS_,rr	UL֪~rMtzd,@gl%S*W&6Vz+"j"!	h+ICIv%VfբGeJԓBgGƓ'ȍ:l']QK:H>!'JqgY6½_O}9zoQlXxZy|Tս̜ߙ$&d!&,$A" I 
$7l"H~WJV@*'nh?)i[rg2 ? 9MOwZsYY]Y/qS,+KNǎm,SlY>ri?-{.OTn"]Yb6-;J_
fF[ %(j'K5O[Y	n	L%axqVVy
~WlRr}^^qJ>eORjl>R^{a8v+A#Cm^Rl-{:쮗&"bw}^G@,"Zaxl27pVrٻ~]Y-*JM\$lƲ˔ZSJQn^x C&no8lZkTn\Y{ t?O~U?^nVPN#/,#!)?4҅a[|@8ˠ.U6{`veQjag6WT]uiA|}HybM	
u{GddC#4*"]pN6<OCq6Z5U*W+j~Z̋G-)ѸbZg)**"/i-?`7'?ݬ$O9%rvLd8οmҬI'O)+P۪%ܤ<%4I:cAՆ=J<ͬsW]YxC嵫j1hd#e'pW) K]Kp Cajc tX[HC8/
/IC{%*_@)lcT˅O7c)4y8LS9<%Eع倝p`Rq@ɰ3qUܔ>W_mcuɼBەP|Kz%/UhP7I
yAnuY uBk"F#9{YkDJ()|-ڽ 輍"s_⩘TmYB]Ol^-Fg+$H^i7E(dVf\Q^;;M؄R!@.o Q6śоl_n{NER\XwIsnU_jU<smzO4zl>eo4"UTMclK!5Kff	[1,;?3u8xϤq	B{&hP7
h9?{g<	%#?JǷB|nY(tIv)mO64j`9s3*ᜅ/'M5CvO.:#O%xOw.!Q" \ԻԱ&R᩼҆уZ>'㻵,E`?jŐMXgSt+`H|4~y䌯*G|&V굒\X$8rifa/ku*_JOVpC
LcQDUاDbcix~mp(R~㵪!yltV4v>kL<Ȋ0k)h"]AH?X6Wӓ_W?ILQ_j%
Dl GE2S	y!r	TP|n-(Ve"ENb(5n	N5Hv]]32
+a>BGD %4~EZ|qxDvNvi	Jˎ̨iES&W؛HdH)ꉈ~{Iv>
Swa(e[$|  ^WӰg/(=gϢ ˺b1>=x]$r*B_,_g,{TzF^7#cA߸jAvymr0"NrUHM1E0J">#Dl!)ΚH,zPǗ
VI(x2p޹oet6g*<
K\4w/?(!ZK+Ag,ZTn[we3Ӛ@Qg3Ҽ Is$vr%j2Y,ѡ^>|}0u-<'HCtQS[PYK`[T]OOsjO]>2^xr{ 7h m$<:JjC:'aY muNIS%mKF jknKAǊeFuh%ْ۶L;d8S5<S+HQs0)CֵO̪J|r2) j|wuSSWiCW}iٙQ!/¤}pPI,N8$5MQ+&X-4Lrȝaq:K{u)?BŠh@RY*>_^N-Wc>@6O|9 0rY4hZ2tqp,dq?d4Um%91L56STPXg<Π۵\JsN~_rnƕ{`U^KEHqRj4
qbݯ%Vɥ^q5^w(P?3h4YQW=h8>(M7x$jz܈ɇ_}f@C\*dhBG-bO]{0wIǁ0x#Axɸ54U>XBn*uSQJ1~üDóiZ2B`yͫԣa֭d\6֦FKiiٻ=Wd%#0kzIo= Ajszm5L%OG ;$Oy2ƫ]`6_G0#
/tV<yUzTK'¶; D<v{D)F+lҥ,S GǓAe2ɏ9ccoŹbq`@MwCU~VR{ĥ#ۨEZsĥhM_Y>x{]i/Ih_\ʜhpbN4FԳ.!ӾǆƓ+닳06a{Ye>Եu,L<^|_CIO JI8nk+ߠ}55PPȨ$ϴ`1{|Z}bi ۃVD甪R J?׬m>niڦH%@[ZP2yFpFwwp6cw܅!F_B|%ůXƫ5xYiȾO_#216v2zevM2+`+)Nʮ&߽91<=[\s}IN:ԇɹқSːDjM|Ȉ.17hh	^L{ZI|:O7Mx[= OꁓNyJlhSߘ)N/
<gV$:k$<mnj$ەZ0T*ħsDI	{5[:[1&#q/by`.yi/UØt˯W5clZoBВ`~F;,0EؑC%ɔcdn	~+qU3amy<_C>imJɲ
.>.&A2~Pq-CyRlSwH9ؐkҌũAsKOvveଡ|n$ssy0i6"O}(Guy_F	xo#:637h. _Dɟ<6Nb2A8tZ_͛\{4!7SB~EE㭇yY_ r (=r0@O  ;5[:}Q9'RX[G5O{x2αhmٛ'|`G'K4&__].Θj𺃊+t:吒rA+)gV?|ߘS2q`bTwJy+yU|%_c4ipߌ1K:q4L-3xXF٭O;'t1LQ|Kf]f.+D.fOS+.IKNTbή,=W!(35M!8X$#U!39?O!?M!$5S!Q$D 39;H(1/=d9$%*d$*dN?0K&9Y8ORX;]Y|z\&3l-!t4T5D SWY;R`Vc H:@g]tsf7Ђ9,6`&zB+M~%:JGaziL=LIAX(n4~$ƀ ]뭘Ke{5Y }Ax[@؆	,y9)
Jy)%%EI%yH";YNo-+|Oړ*`ܾ .dNѩY<gr\ĸ"&ֈ@̲<k Lw6Cx[@؆	,y9)
Jy)%%EI%yH";YNo-+|Oړ*`ܾ .dNѩY<grm?qF1D|ݔԼ̼⒢̒̼D@bʂTW2LWR -
Ċb$z`}yv0E)hi\
E١ /an=<3l? Ϛz s0WxtKN-̫Q`6DYKAkWL?(1	')d$%$K+3)d'0K	9$%*d$*d*~%,T239?OD$&͝,>k.:yԙ|2SSKJV(X*LN-R(JKO-D\"@ה`q3fܺӹMU>c4lW,3%@Lh,+nZ\cąCq&`h	dsMhĬ1]ÀW[M1aA 1_(LoXXL5aVnhedrFfN
XBI_,`:,bBn')?u6bka,gXVm Onx! [[[[[bWx	7/*.0CsD+
 *2
 *GaELG9"7
 */

/**
 * @addtogroup OH_BatteryInfo
 * @{
 *A&definition of the C interface for the BatteryInfo module.
 *
 * @since 13
 * @version 1.0
 */
/**
 * @file ohbattery_info.h
 *_ battery APIs that are used to obtain the current battery capacity and power supply type and
 * define common battery events.
@ * 
 * @library libohbattery_info.so
 * @kit BasicServicesKitPowerManager.BatteryManager.Core
 * @since 13
 * @version 1.0
 */

#ifndef OHBATTERY_INFO_HEADER
#define OHBATTERY_INFO_HEADERQD
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/**Q	common event indicating a battery capacity change.
 *
 * @since 13
 * @version 1.0
 */
static const char* COMMON_EVENT_KEY_CAPACITY = "soc";
/**Q	common event indicating a charging status change.
 *
 * @since 13
 * @version 1.0
 */
static const char* COMMON_EVENT_KEY_#CHARGE_STATE = "chargeState";
/**Q	common event indicating a battery plugged type change.
 *
 * @since 13
 * @version 1.0
 */
static const char* COMMON_EVENT*_KEY_PLUGGED_TYPE = "pluggedType";

/**Fbattery plugged types.
 *
 * @since 13
 * @version 1.0
 */
typedef enum {
    /**
     * No power supply.
     *
     * @since 13
     */
    PLUGGED_TYPE_NONE,
    /**
     * AC charging.
     *
     * @since 13
     */
    PLUGGED_TYPE_AC,
    /**
     * USB DC charging.
     *
     * @since 13
     */
    PLUGGED_TYPE_USB,
    /**
     * Wireless charging.
     *
     * @since 13
     */
    PLUGGED_TYPE_WIRELESS,
    /**
     * Reserved.
     *
     * @since 13
    E */
    PLUGGED_TYPE_BUTT
} BatteryInfo_BatteryPluggedType;

/**urrent battery capacity in percent.
 *
 * @return A number in the range from 0 to 100.
 * @since 13
 */
int32_t OH_BatteryInfo_GetCapacity();

/**battery plugged type.
 *OBatteryInfo_BatteryPluggedType#PLUGGED_TYPE_NONE} if there is no power supply;!=PLUGGED_TYPE_AC} if the power supply is in AC charging mode;!BPLUGGED_TYPE_USB} if the power supply is in USB DC charging mode;!IPLUGGED_TYPE_WIRELESS} if the power supply is in wireless charging mode;!PLUGGED_TYPE_BUTT} if the battery plugged type is unknown.
 * @since 13
 */
BatteryInfo_BatteryPluggedType OH_BatteryInfo_GeqtPluggedType();
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* OHBATTERY_INFO_HEADER */

/** @} */	xS-;ۣ	e{twX [(MxS|8&?`ciܞɨȘ:}bZͨ:gm(c7w3B0!F7 ;"$6}n/=j(ܽ(ѽHHlv>F fǜ0fi,{;E,?=~#,ocn٨}5֬E'au T'fxWoE3Md)ˉ8AiJH6BQ"Bޤn]
o\"x5	QCE zĭ℀B"ud-3{/o}9)ֱm\%)RY'KL)I_aÍ3ֆ39~Ww~MHGN61w~fR}RWa7)DW̬*:Y&"t=Br-1|Za#X%f k)TtbjĤw cs}7\~sTX__&%倅#XSfFPc#!4ZUaY]J+D['P
3;";x_)30l>FMxYg{yQQkD$|0]Itzi*n*"N.4YFe"QH bt<!`qlXB<A܃6qP
~v܋s"},5|̙v	b
}Uix>5f"tԽ0n	346:묓P9U"ﴒ+&mi~p!-vۚbDCB)m]=Mp_]V$:((y+(ّd]W.o>t2[vf&B^.19}Si2Snl&m|8LKu#mTѩ
ﵕoy[aZM0,f?ѥYJgG.\Lk2]r#M|@iaӨfJzpCj]jp)|\a-z2'UN}v7un/0}z4gm'´}NbmmcfQᢔ7Ҁ,K-V,DqsTββ,lgE%Ɯe 	QeK@E._	Mӓ)>!B29ũ2*vbª1w05"9gNSNv/q|ޝC*snQl͹&\yI$qJvSeNJ^8MD3`YR5:djb//Wѳ5H9$$f⨂#lK	#bw^Up0.ct.v{rbݶRpWǅsЅυՀSJ:>/jAxBl-N 	%x~Gl8&?`ciܞx1uSdw11NfT>Q|(f:A&~;Q*Ft^F=j===)ѾeNS~f)3W{z	Y IW>x~Gl8&?`cildb̫L?=a=, qxx~G-8&?`cildb& fb  *'x~G-8&?`ciܞx1uSdw11NfT>Q|(f:A&~;Q*Ft^F=j===)ѾYeR  }ExwCy-,ܦX9+O_k={	@5{K,Y GYEx{x^lN-˅Oľ+[' [ox{x^`Fio0NO9'uMNg6ѹ}m.LLxIxcLҌpt Wa	p4}I&kT@!z<!2m?}I^af~4Lb_d
<d5=*tLT_ARMkLO*_g@QQd2}=&*-̱N+s (D`ޞjY /(x+ N܅w`~bx۲Sl-au z	fx۲Sl-̆3OX,m{,oxYTN?b<ܼ,ҙpA,"әX$OW`e0TX.
LV`n9y	طDɃd+a.
[>yD0ev&1@R|{`v>"̅EY~81L?:"!Yض}`g3B>lbmwb1M/5}B3kYԑ[XY!*eY*Yau zu9zxnjojhalajaU7ݰEz{e$F 	Cx[<EuXCcS-y<b֛pu,58IL?±3F{{;gfw>[Y	a~uS,,۳ﰜd>k{,l"
i9%Z
%>i%:\


g>a7i,}0!Ӂ|;<gd~' WG?xk"<EisҒL{	 wx/`FemOOf|ʹ]'&dV,1:eܾ6I3Qg:	&<Ǚ~3leusJS2R2KRSsRKRStf~$ہ
t?4)gABہBWdn7IxM&ܗXgrLlc/3]CS}ҽW.)=~)o0sL7Ϥ QS{L6N;=d %Dx/Os>L|fX  2x x":#:#4XQWyY3a45 ~X;;0R
oT v
%p
4F0CgGoFR!3HxL F
oT v
%p
4F0CC+ x1 F<3(0CC+zWx* .2.VBVB+{Tx] ":#%2&*&.&&/+WSV#X3Ћ, ԢԢԢZmF'9&@x~GpO畚[)3άk_Y2j\7 RqxM $%2&*&.&&/+WSV#X3Ћ,   2Mxht}$L%2&*&.&=
126R 'UplWKMODEHW<Ћ
]D^npb&pe<1X'kDNbNRV+WSV#XY6=h >dQ|4
 G_mFLaxmͱ0Pd+bI(#%XHT)"ѱIVpj(z8eO]	m!2JRIWG@18dNrR=)24u>rIuThŐ`2.cdͯ.ϒ?@4}A,-߃XV)=xePMH[a)5BLHD-Ƌ"\BAz("Zm"أFS)in%"(BDJ !z0 T$߇=|;;~TtyjE<5e+Jy:aU#zZNmqS]+L%41݌NƺlyD?d'Hd8ycŚ|o|
yS(`c\9cjACe]z)&vf8Fbp=ORbM>X~:G<0%xp2P]>$_wRKOߣ,FҨAĉT%kK(<2֨:>$pv@GJ_몦hUEwb,%\IM[M(}xePK(a4j6$S,XH"eW<BD0c&kj"V$%R$,X(,F)|3bwϽ{nabSw஢\btnGtTIU6(^"
ka\*N
} Kj<1fE=T4ֈ$[$ҺU1w`W	BHbtƤ>h¬J8{9'QiejV=i'.OF(%VnV\KnNgK
V$*37cMB©%O9 Ȗq
t|p̢?R9͉^5XRۼ8q<wU8_C/.$rڅeXxރW-1ļISTVLU%qF߀_jhT B x|~<Xy6ۼǀyiSF f>XWO Q
'x7~<Xy6lT..?ʗQ~vgʅ1re~Ѕ1
έ _te<>N87!ǋ1iU-?vMK0ql^d~$5f7 pn;4x.-۶N.~"s: 
Zx|~<Xy
dbwo.\Ef>~0  xV~<Xy6lT..?ʗQ~vgʅ1re~Ѕ1
έ _te<>N87!ǋFh%d}'Smἂ^F5ɛŷf\>#3m?w_vI?`v  A_4xSMLAHӒ")d"*& 
-KXnw"!w L	!	"īGhLLT@.\pct/ޛoh}jHumj&[΀7QUYus*ףJIIHt8;Qep1d5I2ZW]OX1-GZ效J#	as"G$U2~eNBTQ¬ p2	rWN)'U1,ҋD(wmd9X/q8c,5mWǳydKFpv_YLqpy=]ƕ&wj;l$d
az5+n_?V;,jVARWAttcCݙq4ܘ@s, #Y|BPcna	7	qLخ{sRk0ݳ `, ΅lq{pv^bs mIqXl!Z|	ږٕTiLDR->,0?/3/>UE8^z	}:Drae6L rA.hAED>B~n8ylA$qjQ_*ù8xQH26XPiOt[Ooϰʆ(UAAr.%CEn7ҷ'?jov^T]Uj	|[~D1xo>/ee䳞^Ƚ"V¼4YcILcoWƸ]uדd$d&+$%&g+槤NfԭW@SR  PxǀOx7WW'Ggx_x`G'W[b}--Դ̼bĜb⌭G5b,\C
pKKs&TlF:\
E@e|`SܠL.H{f?Ki1KL,=yLlTyo@qTtׂ5()T;deC]のw{fiFTo7 x~
#`V#	M,;ZQqXK!wZ/03M"kObaο I!x-fv bBx,-#2roaU00L~fj-U11viL90m_79y:nf7 ,x?oE3r)$d')$Lf/Rp,.IT0TH)S(HsRJ3SJ2bPJBIB/hLR(MI-RHI-LN-Q0U!RnIEsḟܽ(3r?<$-',w-nl}dG(=4XDi`y`_ʂTa)|<NxtgGlg,``:߅Q3#3m z4/-x?>2%%
y%y%
Iũ`NQ~NNjYI'3\J(;3>dAfvYF f#[0= I|z>(V?TcVcY.,2]&3-N[=	d}f\>R"Ģ\jfi"U)R(W(@	 Mo,լxTBv"pKjNjI*AnHJM/
&(䧁9y%
i9)@sr@YP\X

(j+*,NQHAؔX\Nl3I2L,:y&3/8q)NE)$Y5 [72x]KP9Vtr®$.7qeN:г U}gtv$vs~{r|"5=	DRl]o>RV'Av%c`!_.CXxա<L(?Y+u#veՈeCٳlPowfw.?Z `i<Y
(=<0m!4p56j֛JKb̡<w<&*]L,sӣ&9crCcATn!]>b[ftIPW
7\D,hSVywbd_9d=hO\O]ix'Al)?8?^ZZY2ѽxU{Yux}tՙ橺-z[ܴdـ0~wK%YRwI*Ԫj%0L捙L$xw53]9L6Cv$@`dٜ!'a2wW[I9U}~j?[{v}Ʋa±hB*Jh""p7xD
QUH-k\U"tJ(ۚ4mqEJu0?%D"B$c$H-Ue((e)$eH="O2W.1ǥh|)Fꉋa^ҋ&dy~#rHEbbx.$ɸp6ɝ$.DHb\b1<"bnXEpB)"|e=4-+<8~
7#"pa92qA	SSf޾޾5mҢi!cZcC!7R;]aŁ>KuMe t냩2x`'S~3Ԥ"\Dg","ƗAiZI(yxçw]K'c	eu~)ŕW#~.yNx.
JjXg8'\WUWQ$Q|4:Ň_]d2[FtTFLK3=1A-DyGK+`%ԉiE%.!@`.K$`/}6\_;S'_Ͼ˦joYѷJ_t^xn"&Ͽ7;.7+joa-/2S72W	ѿ1_1SڳJZ~g,>ϬobɃ|E0SD& "wmVV8,I^y$9ΩXLVrŨ	'8U[&$>"AR *Mw^K;U+;C{>xfo>2FF'CF'n/s7|qᒢڟ@5
")'T!"$5mVA#~ts)xru/f,;3OصLfofqY~$3`~|i̚R;R}`Q>U[&:ߞejS[h/1u7gjFmJgfR]w^X~%Cun=n0*]zꙻ?6nWn*7fz_0;ei8"H	.&z1Ԭcf
`;Gn[~cTC%|8,+쀰	)"(%91>sQyFrD㇑G<9J=2)9", nF

iqE~I̓ġ.9zhCg#>&̒
{΢PiQ\_JZ@Gv2z|5$uI~
|f'e\ǃScĩ*9PC@dI0mW`;ʕԭ?42_fRzdf{DWK}Sf[R$S_LGtmzl CǃC$TFMbMGROu54e1ёɴ:'&'<GVkVN3?l2yU1fvnUQIK^Wsã bmhpX7\k>u.w򋹪=E!5ص-XW]_/>՞Uƺ-Q _ߓ>Y1rn(Vsm8W+zE)E8YyiWS}蟘
OL":$O*iQQfE>
Pc¯%hgP,&&E2R$JE})
	EKZtQyQtѩeH3:00qp<1fג#0,0_9sE'""UT5j4D0'q?(gQOzJIҒĻ;"_)pI9SgQaQE꩟ܮYr/w=<cɁ=$גl.j'T&xLu*y
9~u#u7kj	hoKpp,}VO1lwgTןf+ic?=^9v$2{5c/vs/=O~n?:ecP*u-w~]`1? }~}~Yf%}ˋ7翱f	޾̿?TpϱxeZ(bsCeSOQwZصl9| .N >TMf~T,O\~O_jX?w><\,w2g ie]UQrcwC_.sl`e)/3GnH,hYm:͂=MQb/:}Uf#	w>kݤҢwaDhhd5豃 jGdAR֕ґcA{4/aփHr|m9 &4@	%}o$ODeCZAi`~~W7X}mq oW8}=r7fxؒF@O㏁4b8n4z}4zSLS}:S2|<bxmdsO>zsRi~sH(O&::R8YB+niFSK:Uï!1(vKR6zCa8hS<'Ȯ	{AC}V/[f5`-1=^Zif^?m޺{A:KF8h"
jLV5A9|i
<6	fiԣmd&L
zl .n^.p>bEgl֜C0Z?lc뇽̃+W}(cdQKN"} pQ<@>*nw@L{:RftC:2Dk1=JlR87KvJB	E!ԗ8/;G5pcԝ)[T}|iT#"_A+%ŠZȯos`J[SDLRqP.|R8Mxh|KbvXN(6Ps	ջBq첢Ov2k)PMƖE>,i\kNPv&uut[Zp[JpV^ntQt;jG"NgB$QlS'Hyԯ{nMr/L(Wrwx<ZjР;<7v4%4s)󥡼9u(KH"U!ꦵ*]?uh<Er$WZ Klv!^ԍ3A8QN8ۻ	e0B"kQAr9wg'u x5Y4%.3u,ĝzLB(rxJtDxl5|< *HKMQ.?msTbzڜ&%(4=ʔV_#}M	ܢ" ,4I@W"{@gmng{ok(_]χ-$H*m4$#zm#$.&1D`lP~g %oϬZ_BEpv# ɁB:x\m>6U[UGPVV\!e)-ƅQEuJmH]j`QmmdY^iS|2[XWzȪl#\r4G{@[^ak}#v7N#Z3u22+$ez""ek4lƶnP°\+⽹i1<ɿyt[5ُe9\ cw_@F~ܵ4h	rx=?`@K&ًxvHҕx"^*D>E47	?1Lt鄹6)"(DΗuzQώKj&t*>^ئfY`ԽI)Y{ik1y9Lݾiщ|iEP@fR&Z9IEUWA$AFjZn
|<Wyfzh})bm'-?2+I[Z1D
^Xh}S	vUÊAoڧMNXBG/~㎩},(nkrXDm8h[@faEQy/}8@h==AZr4"hѵ>JH붥hK\;<_f 5H⏙=vର {Ոq:;1Ę4ܹe_Ep*df}LCբ˝$(81$wzEè2]=SZ's^{Ӡ0(xs l52uʻZnOKr鞦KXq0k1|%hkrts3Oh,-uCLs~	,,KdȖ ,HNO96h\teg_YS9[o?w}[_[ϣ
"|?O
U>bރ&6%4B5pӅ*CsѮ-k*>{fҸy1Ajnr9	e(y'Ld4"B}RZ uԺTW8Wng[<eԛظggO϶rK+uYy}HWLHw:o(q]?r ]A\2EN\oUuޭ[ 5n4ym&y`ڐ׀C.H!Z!> guuɓ|uC`&U<~.m[֨c|≝]@a9["R9h2O	:Q'[?	NJFN.rڀ1Xf" 9:PxCvLuyڠ׶qBc;n癶R)sNv%q,9>0ȶʓͅQx+4UBke>_X6j]X: ԝTvs2mJ9ckJQa8vt=<Ѝ|<Zg-8z4jZ5vҦWLwi'	HaXeEєxfYA 4( dd[VfQ(fT-QgŸ&ncsF P;X>mPzԒ6W$Rbs],7֮~	MY֍Yk&J}vڠ&36u7mV`6lq5p/cc^A*5\rrG; p]aEdGD7&yv
_AY4N,-tp,	&5ԂcG;5C_I,Sxͅnta8hl\q~+tx{Twav1M5mQп#.Ǉ5O|n
9ᫀ1LE;|eTnli7>
?3

N[m&^4\@+􃥅G.DV
#|t&(E*M^i0'~skLG.Pd<>̈Iz4G$!3^aE@NL!ZҨt1Һ0]+\(F	An!V9͓]9]#$bfWˠ)ϒ7Whʻ@y6]fmL?
aNϚk5VHk|Ndp_m#fҨlǳ`qՒ.6וG!?JyxQV"ܔ"s8gޮ@5߄+NP@T~B#~Nv.OL͙Ғ CON%KE@19ݐY?/sTk'L^ag-ŬHԐ76x#xdC8G[rg/fjz\I=p+"7h)Ƈ1Pũ/sesrRxPw1oQDL]ɡ
1߱Hi_a2]Z+xTCR#oMZk-dXuS= :tWF<u?pO{xVPA>CD7;ܚ 3I[JJ()j˲ KY5	`[R\>Gl%=_Nҁx3_Nkc.RȢ&r5뉜V_};EjۖdMk-)>@a?ȸ (Y!>Jnw)oNyf^~.SB
^Uvj6\4¿jejWHz$[zUXm|vfr
Z-3	q`g鈼6Ǭ
l)[,(x}mxqor6R糏7{X		OOo|[K:]	=a o[I|4o,pSIs׶愺es{40wmM*-t`mj[jVLe[.Tt|llGyP\Y԰г|D^Vz,̐kvk'VӍvl,>cQVsh 򽎵e7ply~*+bje3Gu\mDOge{zc|Mzׁ_=dkCiS6Z8%|}/N.LPiyPՖ|teRb̥AsWiJ	ExY8bFb᳂]n$*1l5rI~[ *!7V{2sjӀEv7*
-.l)ImG9_iɫܼ,vgĸZ
06M5ET[f{cюYffjS
KnJh ,}PG, ӡb|M@S|@}IkaQnTTBޗ9#]rlDq)jszu|tZ[c[ ?@އ< Fyb2GOC&n	n=f
QMu!܄,=l]uI
YR1Xf}6.r@<tFZZ.Q̨>GJ}Yu8p5%^4:zz~椂<%+`̂g	r@aa:΍g%[d;6И@IޔR׏ 0k3&W7hğN4uͮ4;%C>O'J4g1P\x4F;fuct|M6>ZBz$R`Wy|Nޤ}ҕzJ:c/dG_~*\Xkᡸ֔hM&emmO>[![C1{m_iw+J/:C9vu\]@;+QB5_VB ߘPJ40t^'D9iYʫS}2ZrB jZ"E2EzaGM;mӷMav9P֥sigsA5_#$ɑthi;h!S@/ᴘ2nP]%43_86gkw4H866LYTï=o_p5@(]^d6zlܮ}MS =F
S"1(θ(0p; ;2? @8P=tyYMkR#n)wl+KCzBa:&-Pa{ʎZO.p7l\A*?x͞.ý?k9ߞFq޹Oc>;6W5e	9+FPqU}| +l2_^"҉Tam'2\_]
a+B^ D>b[\DDn/iA>\UPGr2AڻBRYx"25mHDɏ ŚQYTlm3&\::+dܙ0oqk:yI%9.p("ns3Tn>>s?|̫t]87PZCwQN'!ǟFg:w,oĜ1Nҟ 5&`~J64md,_q_B}ʗɫfʤk*QTtcF^y+S,KL^ەpܓyQerQigjfc]M0.*)x<	ڀE=*NM=Z"fQe;MLWAMdz xrzqq	v\"?UL;͖OeP_mm}URх>iB:`Dl2{Z5
/#c._`/DcLD`79VѰSawCD RX ڣKd'jZ~悢a#CCz8hܛUMΒ\Өmp2^eGf(LOk[(C-Uo@wR8Ps{mb&EN{YoB?-".ثatV`a6W4s.J.џ09M}C8%͛z}gZ^,۔$UIaZpE%Q3'i1q7ҽz-WK
#2Qd =Q^I[oTjKXF7~`04:MLO	Fn/G#PقںY1<kШ'X_7ڦo]R[HM55P^<rV/ R=_ޟ7	$@`{m]U
a&vwntl\~O{}GM5vǴ}iҧz80ի 5vpUv'SS?DX[7k)iīPW*UV-椣/3rK+y~ZhPzZ	2ӷN]"8)InUIFG35լq<1(t,m( (R^Baepjc=+1®5a_\цwg:.W^;Zƽ&a	}4gP"\ɉKc}zw]W5bR~L)+]Gkr|8];:&'4|:S,@av:Q#xZˡYāt3W>-
RrLeŴ@HFiBazk9vѐt;X@| ؊]	tk"dwX'=8÷iOcש'R+ܻRyδ]ς=neQrL]A	Ｄ+
d<̤r9,%/Eͩc_%
Ѽ$'#C(-hA^d[cfS<Uc&N`v3Yԗj_:0.sOʭo;pcy(Iخ\}OxTUPP#(B3z$ԍ#3D4Dye%'X'kOdEU2gm4;?v2ti[eGDp\)%NlP~ul ɑ:yr
M\eL\fnSFp<L#	3bӝMK0d'Q:S'nEdOX(t++F;.(vÔjvY)	3r}XYaw(M(ܼ@NXpLrjMwjLTa&qj9^IrD!Pd3Sś)b>̨,qz!F܌a,L{=MAáK`5[]!QTm"j6H
VWpJzNl5eIaU>#[͢Re+l\U}AI|5C)&_M]9Q1D6/'$Eó"B.FжkcX͝I]ЁMsKr[䵵g*)"(x>RTVe"p#`豑S`hh 4	Iƹv&[<NxB !D^<:IVQW3UiH}nzx;|>/eeܗ2`n^AiBI~~BIeAjBqiAA~QIjBZ~BQjqA~^q*7y̲99
hz1;3>58/p
quwQU0kRpKO-`&j_kP!BspIeNi1H	~~@Fũ >5p*8e< p. $711MǹLbv q~!xgkv{en) t
`_xvo:-#2roaU002Q]u#3mWƜ4}usW0 x{?ot-˛&+r01 mh.xTKkQe2Vb>GiӂĆ65mDPtr\̝Σ!HE(u!ҝA!A\(3yE:p'37|N'_ܿZ~y3.Ud bP."dPHI',&AW"Qz<\	Rb	{ffbSl4NyvBRdՑ>6\&E-^o
KlyRGBo[|NLlU@EH5!OۄTUXEX-Lp' ]D&sBF	kȅhFQE!#5\2@
:WQU/gX+m2k
Ɋ#;D#bwݽ5DzC) a"7UÏ(IbbՆ԰"%2)ƞpk5ng'%=qNFpdlЉ~BJ#uX,޶E8;YtYQ/吡VNe[@%!4]gΣycT_dbVZdI1#jY('rMO>/⬂8<Gt./&Rc@tj B&M5>^|_"dM?`3)؎o8Qנ~IYvh8p<$D<,qC<ݷC:%YB?Na::"?TYtpXɋ;;=XtKͥ{'uِKp{&]573c >&c7iVn6O6Ͳ>Up/$"/=T"5
1/5&ݒK?^7D]<3x{?M旲_2KL[EXk2 x	x[2-#2r[01v<+ 
2x[oB-toa|6Jx{i#3m/a`όYlI+AL/x6l-&_9D >	
Ux6//e1Owd`:Ҏ1ǎ1k1Ξ1
U	sf< gOwqn?4d#ROK=6-~_L;.L8 D93&x* -GɂII@p.t
_x7YFQY[1#q1!s93F#ۃ0AqΌ,..0A']Slbo_ɸ}'Ӧbbpe{/& 4U1x[߆}r}r@̴OYm vx}ytՙ喙![Z-K%ciɲn,6]-nqBOO|3d;I(<f	r&I0ɼG83]jE?{}OV{-[ߵ~1PUN#
ɐK)_'Dd!}`QuB,$¢usZxHIIH%yB!!4GKvL-wN.KB.7sUv1~Z"#)Mv@s9kZ1O17A͞$!go'J
'p)X"&/	s|tB;,C`JNƣZYⓒ c_~\xbѪEb,?M
r2%	\0A dN2mח7nФ]4e
9t`߸C5M.`%]E l=EpfmoewTB\H'$L''g#XXXLIDx^P?j
FYiQd9}Mse7x㹔,H!!,Ɛل%$'\eQ/QƅR|$2mͿZdP8;p$M'ZnҾL)56$S
-3ƸT.϶e=\bO>\u}MWԒ{>x=6i+.|(7rȏF^{/X%JK{KHL3WOw0﯀+f鯺=!=̄n/#_edY_]}s)|l92{L3qf'2a0Ӄ))\*?$s BKeEMgҜbTHrtҭw7'J='+ïi맙fiLoz:LzJ:bDS_E6oN1WOpgӡy'S	$)>э1SJ(8!#~)2 S$OλC#7"43xp<Pܠ0H[ڥ:2m^g<H:Hli0?z73߻TC'@#Q0*)"-8gߒ\,k?OI!hMQf~cp<4>*,<G?"0	vJKneiI畋X%1`Z/?X;$YMnk+%٧ꡩG=xOwgg۵۪ %ETٓI#zԠƆOgMq@VO s248S1X!0FPTŹeB+R,d!|Xbp%W#w
!p3|}WW?Ӎb6x֓iӷrns'?<@*GO'ZW|uSӿj5r\RݯAM;[WOJ|bJʜ$)cyI0%Ot+gDd	31.$JrRAIbюMr75ѱXOxt٪S37P69",JrRgDf9X"$jQST3hGQ6qdB|b%5pWUʥsIoUfwkgPw%{M;|s\r&2b;U̩`͈)Ԙ.0D$!!ɨ-פ]BGoO'P$!"sު?ONMa,dNSw	a7-cyƧE9Gp|^R`L[\8V^U%rc622~e+ྯKia[6C,w<V_=rg`G/f?Sq#[ۿ~>揝g# rlW]-_7/?BD~6ɖ)ٞ.W_]2Z:پE|%`A%smQ}k>p>T{7yG>?y[߻(8o$=tͰ[q}tϿp:滏?<wU6|-	P6/[GjK)v	<u[5u𷳠q~[
֗fN|g#&8ҋPrl^]yݖjS)#t=Vzǈx0jzF0nvϬ.8R֖Q%Nj*~kCw2ohP7PjϛWǍoϛ=My=oԞe@y<q_(Ż*cCxJk[k`ں
\|vFZI;iɭ>!t:e:MgL)ݠ!J{18K[]iԭ%?b<' ~=E 7ijaਕ6bў>ʖrlD%gD]jӬ*0j^o#T-&-V'u%av?\a@f$m
!w:dff3~ehl65u qnQNe-;?2/̬.@.R<#$)Dyzphz`<k8ʆ\'v%NۛeW#ZgA\Z~'yfit菌m)}zZ"bL԰5gv&=Us'uֈ2TSjExt[x)(1DRO{ѧ6RLI1nE&=8@x-_M_e`w!{13yP
>jWaES(~YQJ^:cʅ9Pl^&R;MJ+ngk\
;ϳV\x8RoKDgb̮%Q(kqB!p?Cǥ['q=`W}5t(ata4d,WE!S:ch/fsFE̫,v9#e|0X;1x<&rI0ר֣ABi>.%p<NwO>dqOeo4q__(cQk[]ߝ<w nHq^-]VN$Df2&<5gm|3W.:<tGWL	b}So<ajNj 	#Bl29őOcsZZZ*M>WNfQK3Z%@4
\6悾.иpXМĤ$.Pw`?!FSQ.N(T{IL&$Ȃ4-NJZ7:yIn-+7sKt x8PCl^*xb"(s\

ĵӠ9qT'qws`|qw]/2((gSȐ4q* phXӠh:إWHZ3=m%EQ,d݈0)H0B$\y>x:608K^EsYKNʬ×ڕ
w
x Av}mf_%S@ck"KnAFwͤϼ,/D9;$ffoF͆2籦6ŭ5p0k%t$m<eܲM=<۶B
`^OC~g	|$Ie`ga*W@ɸǐ4qr/eBz{c?!Q|갾>*$ʉ?Kx+эHUOJ)Aoۣѧ^o(Xzlm(Ge<->G2/X:>v15z3L_)Bb,LAU*DᮺoN1EwC4Z9T'_VGD+Rx%j簚F&?Wa31|^3,)hɣrPIs"]{]֨R4Gq'2CTp-ueޥKQ-_/ͯj^Uew4IXv_ŃT<x[%k}U?H}}d|X>-ʱjw!:=lqކ(Ҽ.`ߥ%y(3C1iƥH<p2A1֝".zŴsZit@^oo8!K]˦)`ĸ^xLM![qUxV"*vH.r]!g~oBag5⨮#UB NN%97C~g]M&T$)&hgsg'YTzGѳ޹St(PQBT=o^vf(zLl3aR}FBm8`1fC-5&t%3a/R|T~F"JG$/Ԉ|>aҨq+%	PSZO0Sib{%yk5Q[Q6,/D}$s$]|X\Fg	4!}%ty:D^MIuj"sFdDAe"ÕR
3]MԶVVU=Rk:MϽ4ʝ.\nX[h4J<`%0-='cӀ<$&	0];Z2ܢ^J6⒱;lC/5T
㐟>Hg3cNCQkQz8_2IsutEcn2*YOx2v0$/P ~~^xkm?]8sY][ӍቸLWj[BgPB#!ðMgXL]o|h栢`0W!ҶӸwmJ oxFfh+| 'Sqg\NE	4퓛3E9"?F]QLbFXfO5
H
vYd7e>2NiX(bRгԎZ{՘|^D[%_mL&IMȧ1Vfc/\ۍD]|ʐUƇj嬏=p~q>Ҋk->-Met;6pW/ji0+lDf!T5|r 
_3Yta/B%*>.tjYZD9C@ITExu	vti0pM{_gx)G=J*l29dmDA͈gS	/d{øƌ@1Źv~)zND"e)j$#|@i*~a`Ɓ+JIn*[̹A"3Ɍ1]"/3_d4)T򅟞	3+=K^M{3tSV4ր+5C`͠فI9#S[+Ps*t*WNa-¿ym!bat̔B!-J\+/Jp-St-~}UǂmkTpxmsvOf;ҔB5,|.(4w`Hn&.	I
sg0u3xX_\`':F?OX-zxtG	}_%P2qఁlB״Uu̎pU9
`?pΪ~+̶gV>yZY`2+x9DFr]gRDqkkB)hMXHzIm<-7SP[Y"q,jX&TTjpT-@@@2|9[VkL]eɳGٸltY/P[Vb
D=&΅b5X6f=y~~ 6ye ƣ`u-M: ٴ$ss,\?J~~v	Z=tᓩ_iZ*ܣ|$b1IЫ|Yrxmezxujc_$^N*P[V(]A R*ϼ5,5,)^UuȪsV\21ke%g\ҽ%!ݘvo~vҒS-xhIݪJwz_e`aB)ڳ#rORƼL%KWK.x|6qur`r互9ⷝ྇n}0nт\;m-f~G/ u:6˒VsS7ީ{+$]An!W^8'~7P0/n;`,IwTVkǔҢ1-m|^gAuq7+X	BBJL)>*Ue`jmYtϹiYR֘<{i_C,
dd.mՔCS75U{+_T=Ֆ[PIј&4G9 6 -ލL|e+BL<b*
wq8~R6PK *	7F$Y-iRgUQRWdMтb݌uJ1;)
*+hd̍#u@_\4cg⤘-}Sdo;fbc#>)L*+vSW
oodsTK|RzovQw~ף]~ ͊z!M(Isօ	z"LYN㐤ư)>VB?T79Mq>X{̦ץvg*rQW|jVzD9+OƜA̓s˜՗Þm^A[VgVccf>0%Tթg5q%t5r 6d	qCP\25\WB@奘`BeInIn$$Wls͍l&uiL<1BzK9(O|bKhzE|l-&SΖf8EEs?ی'3\ͦBMjxR(wm#ZgL9dt^,j#[ǎM%A"ɗC.AeEɔH\=Dpn~U`!
ƂJbÊkT%)jΣ$n5TX
\S"Si/g_`<W24:.Vpvɛ,$d6ԫ0_TNd4m䓀	w#+hGJ.im"(GU/1<Q5|X^?jj#v2ՀKKwf߈RrzP66:1Dn02p+2pXYM(xӂ]7<[ ޟS!P+) <"	uڅy-[AP%7~@#cI	(TS6G&5uvS!+H.ËEå]XJ`:ؔJK[ͥlzdqeA-ܨy5hKESdFm}-0P||q OՅN
/ZU?u3z>0S~}PL+
f(AJWg5ߖ<\ދ)xKŪOhe:4*%J#`M
F[NclGQu"pEK16\k4ks e,nӂQMt6 ;6R&	>Z@Qf/1ccx5k,eA_8dಞS=u̅p=zc#zs&RPhJNꒇ1~b~WSC:̀B:`{@fG,[fe{5-g{Ctї161I9˘Lpf|-DȒy7sRg]8ި=tLy5UD# e*])b>`/Lcx"cӢ,NDFC kb.
zZxmT)UQ
;Uپ{\2\"b#BڤW&Ý4E?{e7jhSDroe۰<.H}tI~i7|a1~
Y냉_su'B/^m2A4ADx@Gfɂ^T|
I%r(|n߯" 8^7D(kB(G@ۜaq2%	lu36-t2^1-,G`iWEJ#&g[+z7M]^zCg`IQHEQ`\3~aC\M[Ms}0b7fXE1u>iw¤n}Sq2(PDN%qԉ@U,Gd
5J=dtsU$ۤuFnuHOpψo00>:;8:~pouR*Te̔2^AYTX{D/RTui6kE׾֢gC?5x*/9DYKLO銽y7A6+?d+LG	Ox'Lj{qTlBʒ'\ygvhٛo+w=ô~YMsAl&%]Ͻ.f|DUD6xl.nz=}]HkDfʱ)7zH@\JzIUǷz__t)/d~N*Z+OTg$<B96}F w[>g[߼GcSzծ:_gfv[@b|E={(SD9Q<tSfu@>vr⵨sّ׻Qc7{"ӖK{M=
5$VG@ݙb"᭮$Wb:l\n.(PoW~?[Cu.zPRl;\/7CP!tL\RslC~<c.0
CgѝVK{X`v[8;N }<?sJzܿ3ey (DifstIWÁK*&~,cF%!B:puXWǀ[]qDJ#4i .S1(RnD&GP9KNѫtpb5 uen}񄜳lusT[/IyNsh$BkR?738Ͱ(z .^7AiݠݤmDkȗM͈L|hÎMaaq-Sx9̕>v+"K7;}(U[W:qKՔYQAǕb0AQsH"{OQ4:mN>$p/Mݱ|=>H7B
?#ʂVhǖe[{F11Ye8<=~R^iK +?dm?dI+?dK,k6סheGơ?]Dc(+2m4Ơ{\8ˈku
ɛۃcq+XJ5^^B-
I{^]wW
GJo#ܑ0~h*E!i1z!2~AL]`S#lvu;K2R"vܳR[=@ѿ X=fւ*\h{\ )QeX:{tnz9Uc=u{TWf.O9ځUgӁLвtذ7Ybh<#epJDh)e<UGj9	xuʽ/S,TQlD	G&>:mH`7YAZ083>0tppl|xh`gw|gg$]'ED&R!O 2%@df_) Fjc'<1^B\xRkHa695/mi:*rsL]dh5Tt*Dt/@?t	#A~A oI; ?/9gt5fy<JںۛW{܁BrʨVWgNe)--G|R1NQ#gbė9$}/[*ح6XGԢL7y/ŋdIU]O%l#Y|H6VigI%.=􄳩,4&V)_IaRGQ9+M(%u %( Q4A}fj	|tȈ"t58HZZ~0@tHe
js>H.ZD	h69hB2(!E[ xqj!2TŽ\2TqQ#|cݳ"0@Ff*03bt7\tjcp1;WP&Lò>	4"$!kh.@$4  ^f$9$Ajױ4ųS%|징,Ȏ<[6Z6ĳ1<&Z3k9}B_|6~hp#VݿHutSt_LckkK;7d"PI"gIK.SGpI$Q}>ڱPah;;`.đp*'|*gص7.]@x[gkN{;e) 
xcx( btt5]崃CCC]yc>x4X؊s2SR&?dHHMNʯ qXJKJ'oŒ-]]ۻ. 9WRx{8׆,EEE)zJX1*LNLL,IQH./S(N+,,,.8ɂ'E1QEYAKKC=㝃]=C<<C"}'7
db&3WVPN_KL+h)xdg`D@OwqF:\
E 5 #PQx/J4&oc|8}}buLOm!	8x b	layou \0~L,$)p	n=q Ji"n[Mwpuւp	2
UKGAA<|
dx<kp\yeÒ,YXCcYd&j^ʻ+;WW]{4maxuIIHI5)$@36IIhhM`Iwι}i{~s/GZO47#i}%9'{?壍OדGNW91MW	,	*)I84XNJzPU|ZTcǥlRBBLę&aP~Ru[ 4ukɣ4|f^ReAP%MP|Ny#BR!P29%+eaapo y97XNl	%dA`n|@Q~Q)[2颪EdY)J|CP,ȌU	̍Zx.C}UU,D/C1j@}붓GꛗDh_HF5)Qh}s=95܉`N	x };+-xgȆQʵ?%,ZHf)(4PQyNή&o(02J|sSȦ;`(Yn
YyЭ	y4!&)(iUYjRR~5IQ=o.Ni\qaQ%1˩h߰p> mhEHbV( t^&m0/"
I΂/ij'Yr>DVbꨠ+y  &*|)	@Z,~# ؄V͐a&&܄o<G1I
mϋ*șJHqPH@. zVbG7vk5&A*i=|ѹXE&&[Hv()eP|sŭx{&'QJtp0g6$Lr3uH1]0}k2hӚѸh22|u{z`|2TFn$gsY <<nZC-BXdG6oͬ&CT
K^\0󅂓@8NؾوIS:n&X1eb g/O:4zJ!vH4O1giPOcs"2c 5r	NK9U`Z}L'*6}}c.cF!_ yawG#x0
F䞝/"H8ٔ2VPo߱-3MiUAQY
>Mff; 6
rv"xwPe`L;~rILˋL# YȨuVj0''0(8XUI9YZB4tac&"Fnt9w|B(B1'aH75n|rgbY.EX!X+@ȇ24hdP*˫qNG}!cZ	ppȱPy< cbN,C)H<y3A897/YZ4; V	]V"IH1DCxߧ̟6+t+$3$%Kj|bY,1@	ZP~ IW2X}kg^NP S$V]Y ]DA@rcWp.\S(ۢZ[$ePY*%XN&"8i;AS3Otf9.'ΜYh%r.b]z.l5p>V?Y93tH8t& \Xd6<[,&Qȉ$2o83~ lRdmPx`ne=-d^	
Sr98.xdfn<r"`sJǃɹ0@9g]n5$5&U~}3)W	QSV/zLf79'*D+@hnJ*DmDAs5#s8ƹ	jrVAXAĘ8e]Hɺvy9Aڰ0.YZ
f$kξ0Bx{d򄼀SsVk6sS!aX9тYaNlTt-"ښ$k/(se0LrB\6PZLZ$!g$>/M[J Y\KTal:-Z5zV/
0@2la% =(7gka)!y7GIpfxcs3[f2-XRpV~s}6<nteq	s%`{pU>gkci;J֘C.#rq;y۵:]x3+kk7:uAFXswu<a,e3Kf-V>^t-1#d(B%#M]5	lH(jz*g2సLA&--ӅP	]qxLn)q4s9:_Msۺeo+6U]BV (a!ʋʜ$XFS
nv:ZAF'/ jG9p1H?坍h㡢Nw.$^8qF˴wPV^H*.2kʄy03 s1غRcVIBDj)R
&?;| %e촒8CxobvOP"c1ca[qdD>A̖d sid91)H/ZJ̕Y8~ؔoqn !o)7vlZD6ފKi򀺥'І~W9n(YѺtt=6ɓ{Y̣(3˸)>mru	SwtQ]٧))q6}j1QTl,!90/j̝̓T6
Y(61Tf3@I	Ư]=I7,go5(H67Q&hJ۹nu/l cIT$.%}-GI
=,ehQaiqLfWuGQ@aDK;{{~V0*9?J-WqⲲI=!i:4,JjSRk,FJaNpDrs#%?('geg~1fj08蔘^0UjCfCʜc18Xrd:#VbvE~`:!G_x̕Iwb|zrMbU<b3Fh5P
g	٨?07MJ|zP#4nmR"KT/9ykbfexkSkzɯ*]590IcDzj<y"J/AB:uWD5")1O0<3kQa
〩$,DUԕoTokɑ.ibh 9,\|N39:*)ztrMݏ#φ}X~X33l2T|h'qtO{H-H^[Ϊտs1	>CGXĠ<pYrSkH؉0x~H3)zb)E6 ;AANsldVaBKOk|U{:zwxw~/([@
zr35W|mu;5<ޜv]_Ob8҂ ]jnZln+OSӳnl^To{@LJUhMO):nQaz-''" 2Ӌ^CX	VB+ hx^{ܗ<cUN(y^68j<@y:Ë_rBuCIh[$Mm4RԳ \}6N_iKz.0ਸ׺j9X"H@+<`^:1K-"=*-Hj~k@L̀jEJJcC3D!˨Jf0ݍ`)܊{S*x\MOQٱ.|Ԥ?wLj=HC2 /9!ij+H4y]IPBuUXSCXDI0up%GB*@ϊ6l!_iyT&ũh\Fbs	GP5X	z?8ڙ2yZ sέo-zZ ؛=<7	AS{47w5XxIkbZR-j,N]鬆f6,mgfYtUpVTrme^{=!uw#˛7|-{zʂўD-Py^u!=H
Wn3u} fd<ܝ&4z}c+:݀y%m 0#a1fS3=,='f3Zv+F$97[<z_*7YREZo8.omR@倛Wu[]K18<n@ehůrAӕ4T[i%ptub|{-'SێV$VыdKFS3ǟQŴ_D{WeiCV?@Da%+5bdOkj%h_ŤhG|D $,D`FxZݐ+ZN!3SӞ= T^qQm. 
_*R	g9κ374Oy';Y.샛%_dAW:ݜbq}G!wUt^=XXҼBRIYzQ׺	`㷐V]&ySTuW	hK%kpnp¬qBo^s.Kl,kF$PTv"ytt[3!`F}7\EMd3}U*sZ׍NkDU+J55*n#=+J]bTI$=m*ӾTIfKj]fbW&>n0q0F58쪇Q(~	k^3ՐU@Cܰʀ0WR=FR^'?ibaI_񗦜!Lc
Ner>Sd#c(?|>X\G^{qﱿgn׿G^Gg-iMf~R7D_)l">o~tzi=G>yiC^t>gGg?S|g߳a3-g5DxN!?i![?`
Oxz˝nn'-?7$~>Unȅ_u|M[_ד@</M,/wi._<qC7qp`Mt&R7x ~e']Wwpm<0:%_4su_=TZp@}y]Νus1"]n&h"Smrs\ïhn>ϘN\=LC>%?}ddݵP_[A)sO)|<͔]Z/_;8/5kFuR;36^G^O}G9HLzáh5cE3'e9|jƅ/
myy.iQȑv%l lqbd&D9WHWŀ}nDP%	ꃖO$$M3b<iKUX-Fg
9E2||hAxv*kc܍tSN:INҺ9JalFlˡյ[=
=1hOUj6J!њ_K]LsDP0<B
9iܪttV`K|R3W+<
,/w++CRqX(~	oIpSmWL&k
a%i]ьmkLйE?i!![׌\R]qWռJ}'3,&f&w}luZdXU,-gQpr]ux(G<b Bf*ڶި,T<\"hz]E!/o*ǳln7{ _WIOy+x{u׆J6_Ti¸
m xk 9.,=Ka<WZS3Y3YC!1^|eCp
;eh#2FW*xg=|'72n	d} u6x2~
~
Eyře
IEy%
yi饓XN>`kå ZZ`ZAK%5-4ٜ+
$;$;ɹEV
@+rJs4}
Ź99E:
FPb_ q)I,JC2߽(3j>XZ䖓_K,5
f-0t{5eڌPQv/& 抬lLk6l7dnt! l:x[ /<WZS3Y3Y:Cp
;eh12F2&UxX]lSU=d566`l&2j#p8ڱhv=7޲M/&1F/bx1$!! 1O&ds{ۮ(%K?_oxXIl0MM`'X`:m'b3!AsrOx05-J]Mjɵ$65῞R3&q^onRYj]lM!:soc+]M%[	iZ8\
a`e682EV߀Q}}	On G&C{F00vZjܩ:)wuޫۈ-j*ӱePpXS-۪$muiy~1v6.wGшLʘƦ?uzcr`a1y=ɝ'w*;:oFqz^0<L`o.wgĜGL:mUhqhCd,qw8dHtO/
G¡}c@t$/ϩs6X:*tXjCHX2|mR66=?|A-q`0+mQXU*)< :	$mT}"Ԣ"E^< vnUi4RńVb B,}@ԸF11#`*MfV( P aXĢXg6urUq Oh%׹@iΘtd'T:e0ͯjbB@JZK]h9r_uLbKs흠: 1Tȇ
( Owgwb2IpEebgp:&I=x间\k3R9o۔dй!Äj{Ya2o-|jqy&'fRV^A/Q<SH+Ҿ$)J{oosaˆ6M5mVPﶕ7OUmty|cPÊ8cZ$1we[Dn@KV$zXf'0'99:[cԮ {>B-]qi0oxHs̀vFhȃwBq?	-?4+#IY%Cq=XFΡ_[U}}Q}P\0SqF4=7S<zc}p,`ƒ?U>&ǩ{𪑍
В[s':_	u.2ʌ*l0_Q_u5gU=61ΔYF/LX$s`dQb!Г/QE
,\Ug҅V(vSc]zn|%t.1_|Ny .`z֙r\w!Qs5STgPGbg]9 #Ћٲw%Vq2{lvz]1-IwNvh=xO)cY_WP;`0JzoLӻ OK_k)&)Pɴ΀	p$75[Il%Քrd6yO5J@_n*L܃Q@		Uc{_ j-مu&}d#5jFᢖD{|x;.G়7PFF'
῕־2CEnMnA
bOCU|^{*
lSxY}lGIܘB8>}i9>R͝lwb.$j:|(EUMEQ7=bY:~{fv7z'{.Չgej̱3
fLp,fRGpf5ڋ_Z95r'tj:$orjçѳyho"Erg@|-GcGZzji,cXţ_ڊu`3#QudouNxޑ"'=،CGLQ)ގ~`s|t~<PϡP4G@ݴXYġCit4@:Q=7sӐS[c303n=Al6pwMC1יҴ3Ɔp'ڽ3CϵS-fDb3Gnli}}D|:KևW0/OK'"}_zj)d_lM5Gs_a	fz[]qR{M©9:TYӒkԝ\htzt66=5pb&6WUy.xST7v*
=:>5]7h`N*`)H]V]D?+~eA`sXbTVHn,bb
3cH:Kb84d'h6^傕Rr8@Ibb(	C/ T~C֯z(8@Ybq:UW)c<eV?ʁuަ6}ZK)CYA\qKhEpI.CԄ@TP&\ꀥSCdAwb
2iPE7Jep
*&o(>$[V4V0,CNzpA傆S:
DbfbOo$;vڕH4KAĀ*P_*ԣycQ%8FZ1!y%|4y\XZ7Բz舆",ڟzϬuЯֹs+>u5w&3"e*~F۳zEtȫhJm64{QhWŏQGDG?uŗFa1C]C[kNko]sOp"P*N6kMxu}`?#qmhv71:׳e:3bzJBDCZO3t-Ѿ%2jڿwlDgVz;>&jٲ_׺꺹i9ZP9JJ< )qiմR6$E̺Y$,WN|@ZN(-e}PCS70?H6nRg&6-ҁt^Ccj% q&k!wֶ#f:Rb]~਻)fwjց:=8=@-$;5u C7ڰ)f bȤN>@ KT"*G\, {N6õD6zF^$y5C%}ZD:VTX<D
s~q{*K[^u76,Gīk]gi!m6/m@&XOrEk60>Q$"5F>BnENt\NCnlC7ƕQ]Ywc
H|;<PjwuUlCX=i&MAms./~hZKȻ-Ba.T:3xzJ`VuoZ6*sA#	iO_F]ytxCk$l:BYd6u>eyLϨW.-Nލ:?m{4DB<:_bRx{|{-Lo`ؾI 	wx2 ./0.3f:1unw.ڗFCm'x; .,`FHNHNHN@~
1Fqxbܾ~~=N h
x1 ΅o
1Fُcxg$͒풒%%B>Ldv 	1
x( գŔK˗
YO:R^x[8cφ.\Ϲ2n?| u
 nxzT	4_WkƸӾ xz{y-+&7~Bq	=; űt@x9 ¦&?z&&Q,< kk
lOFx{-ӭUڧ2ntb 
ox;{Rrsi:q9Lf 
x;r-Zӻ1ɕT*d+(($U*d*M~#2st}FPЀ Wx0W W[C3CCv-ZLR+;"Zx[L.nqL }#x6%@_KD+h)+$MwTcT.u1kj2nd: [Mx;:T-/U1rf+e+)d%d(d&MVpSί( ``h`f4QQ*L1K 2\8x;:{[ÁAۅ9&+re5)  ex;:d/\ǻ1=k w@	Px{n|η˫1nWc_  "@yxý{xx7nLs	Jx{a[~QrBJbQBr~^ZfBfBf^YbNt{FdY]]<=}<]l̌L*3/  2P$xZMl6"ce+?qb)dqĎIII&);.0Kr(newa%H]=$6KMNz( Aޟ7??,ݙ7߼yr@KbEĤp/tXEQQYTeX+&^ǨbaT3fpk^L=W<5t<r}`S{E.	hQZwS=kbYoPX֐\zTj$a0_KX,Q:I_SIPW2,X,:V$e=uӶCdWN;mdo2H%SR*JVC#D~.4@owcnc
L:~"5fI?,\O6qgtdjx":xrqmN$rzK^:4w>[-s7c5,7^\ud?g'MK8ٺg=C
SY2FH)K:R*Hbx_KrӃAhiL.8'ҝd(W ֐t_/&C']EN9h(>dS?̍FmuQ0{-+]uAj`T:JjWÇ(MWEy$:𚢮\xɑ%\EE&"E	UUԘRXrXv:O-R5:ɼ sN8@Hؠ4\3A`_5E] d>+bkR)OQqM%U'؆#{#G5\"UIf,$P`: [9gvcbTԛ$Q^E|rw;4Ҝ0mIMZriG*@`%jJFRѻ6{;Lfډ6>C>>J'2dYRԐ *h pIXN#<H,}4z ?2E@*'OtGJۈ|(y-ntؓ_H}l]ĺCP(^~ <wh[/ 	Hsv#KCǽk@Xpx*ԟUEK-Tw`2TD"9c۩i6Iʲs"ws?䦾sXjߒϣM>QR.3
+1l(P^r)w}W.`'h+Y~	g/C].s}#8zmz})d&:K T 4g5#wȅ/=nܮGS6 {=&p$\7hDF}#gܓLV@vXN4 d3gGSErz?qvp5*
UKfl 2fe4}.#`'T65_%70_mpxw\N>Eg$KO%TALXpkeesml6WQݍ$>7D9'@]8&˴bIe,a)5TzEK~OBB:\B2^-+xtQސ.ڬB$uV̚wА׈UVX]i+VUx@6&	ݯ5 FQD(<D,_S)PyOPR$8=(@,PiMLҴYЀT]"Q^٨.B)bOrqJb|:SVRJdb1uQ3X4m,\,bF kud׋Fѭ1s)ͤ]ao>:	]Pw,QgW/	2j!7疻kif _wN$vzUݨ,ʹ?Krze&xQx<~`,_uˏyOihgeh#4=.*I$5Kw"&PS1EHd
\3 었fEFw8rb4E[p=ڒvtd4Lr1ݏ^(5gzK~~+ttcgǎՎ{fSՎdf˾(VQ!#sq;s}0jlTdcjOeK~}wzS<fX;GQKoJpu~3JQXaE|&]&dE1Fl3t!ʡ+:.!"ɶ15%f1q,ه0*0_2o qA;Ƹ:\A&ȷ}fd>ц"XdxXWITݼ)mRGtGa_tN#ynYB]BeiB.*f;Ym(ႃF"HpW୺&jA_+TL3T΍D3\vD?_q? |y2enhm}$B]gbc~DSdAMtGoaֲPi`'LὠEMx-&xs,V׸0sN[forgoCR/Y{1@A
z|pՓݗjKa{ޕWt=3I j![݃5v(
"ǩ5.wn}scZ;5l1jA,=Geu֭r~IWv FcĚ&Gi~>B#\TV-,QͶtDÙz*+~BM+ߨCD֊4?.-:򋐊^b!i358^Co.QĜca[[3yS`j]WVXֳ5>cƹW*Z;U3)hL<1/Fyj̭ק'6>	0ZeuU-PDh$b.a&X*O,IV#	ZZ/dFDQf_ݚX]ԇ,M{?Y0EQO891w갸cmo~M1GAB8:KʚAzHU r*
eFvefEyO{A'cD">.Kq"gSl,+LaքumcbnEC;l]p%&Ko.0)s֭wG7|`ýOz/4`&x0!sC+m#jAV"GgfӘLg.s?>"w&¯n9|ԳKVo}\L|2'X~[G(:8vdL틚N:[v~K}o$2]$.C.54`G~e})׷L;-үNj~6i0%RR"t[AC,@q A.R<j`Ur6IJ;z:lY:5l	)9}|xlvl ܈?l:=HOs|4*.mAPetogδx¬8o[ ?IlksЪ섬7`uH
׳MޥZloN5ժCGj́B<F
7J7pĸB譇gMXvV:XtX o5o p{T xS-F/:2ʵ2n7e:Df7 ھ.xD =2A7=7=]+		Nbool!"/x5 ꗑ+		Nbool!"AExg=|'72n	d} udx!%MC'	s/gܾ$y7# TxO-%ae{I7dViy̷b x[{HjEBYjQIfrbBbNfz^nDYAr(r+d*$%dMVs
tv|Wq"bY'kuJOf.2,CyrvUXtdNVg'dR -2sSa+QOIUH//;܂<z1Z=aU&6٪_?<>1=1c3kiy%
e %ԁ-:2#_@hHk~!A!.

f'0JVeZi, z~[Xxa %Input event type'Z+#'INPUT_EVENT_TYPE_NOT_SUPPORTED = 180006$%%j Ix[Ƚ{q|Dx'M]?;O"`9Fff^ͼLrMx[{HjEBYjQIfrbBbNfz^nDYAr(r+d*$%dMVs
tv|Wq"bY'kuJOf.2,CyrvUXtdNVg'dR -2sSa+QOIUH//;܂<z1Z=aU&6٪_?<>1=1q;k?C +cLx[}׆UM.(,.̸]ޙ V/x9 


,)+\ƗG^RRGfF,vx;kwFj616O>QqJ r 
#x/ 


,ڗG^RRGfF2xK&Naf.%o[$=?c7P,Ծ,q kkW1E32ZLQxLY0t G~F]뀬L:߯e)Y$ T}zsԶ5 K+O_Ih Fz8na '&KZxKO(a;+G Y~xToP-!H-$JhHDz/#{KN ` $'Xؙ[+V.vBZe߻~w￬/g
CuM\B6Ea#EX5H~NNl,ʁ4@MͥTqy53έmNŞsM]Z~meXY㳕5Gl	ttdL0,Sn)MɅFB瑵4#량Ȟ[7ѝwl,+s}4剑a>:1i)J$#̛sRHtȄ ǿtǕcZ.S1̑-LvNd]1&R7bLĖEdl!۝ Ϛ`b;s~3Z==]s<u`mDO{b,H)s/iKUcw` ]Gq
S)k!6s!?yrDghH[ŸBYKvxK--&odm,@P EN<ȳcS EY͔aN2{oj޵Ȥ3ZNuL+3eBĤ'jRbUr63qL	 :]GgxK-oT1ʷs2nVe: 	:xK-')lg 1FvnUܪL1OtxK-oT1ʷs2nVe: 	|xkOFJ
@RJ2sSSR2
JK?ee22Qvrk|kfF TiWcQvg|HjEBWF/_h1nty Xv8$	x}QN@F)&Ń1sTR4AKhI,i66d_<h- 5ٝw{H*ntM2;@  ̲]cteKm% ="7!=pvs{bϞ:^h8sE<i+Mȏ>q
lɚ&
 Ip(yA:ue,$,֚Uh d yqz4q#M2FF%nm:@m)oŘh]LH'i>A@nhůtg6"wߎmM|ֽmu|ѱDixC/*.2CvD+
 *2
 *"GjELGE"0
 */

/**
 * @addtogroup OH_BatteryInfo
 * @{
 *Q(
 *
 * @since 13
 * @version 1.0
 */
/**
 *<s!
 * !
 * @kit BasicServicesKit="
 * @since 13
 * @version 1.0
 */
w
#define4
#include <stdint.h>
#ifdef __cplusplus
extern "C" {

/**I$
 *
 * @since 13
 * @version 1.0
 */6
/**1$
 *
 * @since 13
 * @version 1.0
 */&R
/**9$
 *
 * @since 13
 * @version 1.0
 */%

/**40
 *
 * @since 13
 * @version 1.0
 */
typedef enum {
    /**
    * No power supply.
    *
    * @since 13
    */
    PLUGGED_TYPE_NONE,
    /**
    * AC charging.
    *
    * @since 13
    */
    PLUGGED_TYPE_AC,
    /**
    * USB DC charging.
    *
    * @since 13
    */
    PLUGGED_TYPE_USB,
    /**
    * Wireless charging.
    *
    * @since 13
    */
    PLUGGED_TYPE_WIRELESS6,
    /**
    * Reserved.
    *
    * @since 13
    */N	e	"

/**A
	$
 *	0
 * @since 13
 */
&

/**A
,
 *r
ay 
/y D4y[y -
 * @since 13
 */
h	U!
#ifdef __cplusplus
}#

/** @} */o8Sx*提供BatteryInfo模块的C接口定义。!%+声明电池API以获取当前电池容量和电源类型的信息，定义电池相应常见事件。
 *
 * @library libohbatt3标识电池容量变化后发送的常见事件。!%ND3标识充电状态更改后发送的常见事件。!%N%+3标识插入类型更改后发送的常见事件。!%N$-定义插入类型。!B电源已拔下。g/电源是交流充电。g/*AC,
    /**
    * 电源是USB DC充电。g/B电源为无线充电。gG预留枚举eO返回当前电池容量。
 *
 * @return 返回介于0和100之间的数字。	G返回当前插入的类型。	H#如果电源被拔下。
 *        	4)AC} 如果电源是AC充电。
 *        	4.USB} 如果电源是USB DC充电。
 *        	4
)如果电源是无线充电。
 *        	4BUTT} 如果类型未知。x	/*.0CsD+
 *2
 *GaELG9"
 */

/**
 * @addtogroup OH_BatteryInfo
 * @{
 *
 * @brief Provides the definition of the C interface for the BatteryInfo module.
 *
 * @since 13
 * @version 1.0
 */
/**
 * @file ohbattery_info.h
 *
 * @brief Declares the battery APIs that are used to obtain the current battery capacity and power supply type and
 * define common battery events.
 * @library liboh
 * @kit BasicServicesKit=F
 * @since 13
 * @version 1.0
 */

#ifndef OHBATTERY_INFO_HEADER08
#include <stdint.h>
#ifdef __cplusplus
extern "C" {

/**
 * @brief Defines the common event indicating a battery capacity change.
 *
 * @since 13
 * @version 1.0
 */
stat!(
/**
 * @brief Defines the common event indicating a charging status change.
 *
 * @since 13
 * @version 1.0
 */
static :
/**
 * @brief Defines the common event indicating a battery plugged type change.
 *
 * @since 13
 * @version 1.0
 */
st"k

/**
 * @brief Enumerates the battery plugged types.
 *
 * @since 13
 * @version 1.0
 */
typedef enum {
    /**
    7 * No power supply.
     *
     * @since 13
     */
    /**
     * AC charging.
     *
     * @since 13
     */
    PLUGGED_TYPE_AC,
    /**
     * USB DC charging.
     *
     * @since 13
     */
    PLUGGED_TYPE_USB,
    /**
     * Wireless charging.
     *
     * @since 13
     */
  /C
    /**
     * Unknown type.
     *
     * @since 13
     */
}	;

/**
 * @brief Obtains the current battery capacity in percent.
 *
 * @return A number in the range from 0 to 100.
 * @since 13
 */'	&

/**
 * @brief Obtains the battery plugged type.
 *
 * @return <ul>
 *         <li>{@link PLUGGED_TYPE_NONE} if there is no power supply;</li>
 *         <li>{@link PLUGGED_TYPE_AC} if the power supply is in AC charging mode;</li>
 *         <lie>{@link PLUGGED_TYPE_USB} if the power supply is in USB DC charging mode;</li>
 *         <li>{@link0} if the power supply is in wireless charging mode;</li>
 *         <li>{@link PLUGGED_TYPE_BUTT} if the battery plugged type 7is unknown.</li>
 *         </ul>
 * @since 13
 */
	!
#ifdef __cplusplus
}#

/** @} */ox/*.2CvD+
 *2
 *"GjELGE"
 */

/**
 * @addtogroup OH_BatteryInfo
 * @{
 *
 * @brief 提供BatteryInfo模块的C接口定义。
 *
 * @since 13
 * @version 1.0
 */
/**
 *
 * @brief 声明电池API以获取当前电池容量和电源类型的信息，定义电池相应常见事件。
 * @librar/y libohbattery_info.so
 * @kit BasicServicesKit=@
 * @since 13
 * @version 1.0
 */

#ifndef OHBATTERY_INFO_HEADER 
#ifdef __cplusplus
extern "C" {g

/**
 * @brief 标识电池容量变化后发送的常见事件。
 *
 * @since 13
 * @version 1.0
 */z6f
/**
 * @brief 标识充电状态更改后发送的常见事件。
 *
 * @since 13
 * @version 1.0
 */z&Mf
/**
 * @brief 标识插入类型更改后发送的常见事件。
 *
 * @since 13
 * @version 1.0
 */z%


/**
 * @brief 定义插入类型。
 *
 * @since 13
 * @version 1.0
 */
typedef enum {
    /**
    * 电源已拔下。
    *
    * @since 13
    */
    /**
    * 电源是交流充电。
    *
    * @since 13
    */
    PLUGGED_TYPE_AC,
    /**
    * 电源是USB DC充电
    *
    * @since 13
    */D
    /**
    * 电源为无线充电。
    *
    * @since 13
    */Q
    /**
    * 未知类型。
    *
    * @since 13
    */
    PLUGGED_TYPE_BUTTd	"

/**
 * @brief 返回当前电池容量。
 *
 * @return 返回介于0和100之间的数字。
 * @since 13
 */
int32_t OH_Bat!
A

/**
 * @brief 返回当前插入的类型。
 *
 * @return <ul>
$#NONE} 如果电源被拔下。</li>
(如果电源是AC充电。</li>
$(USB} 如果电源是USB DC充电。</li>
$-WIRELESS} 如果电源是无线充电。</li>
$<如果类型未知。</li>
 *         </ul>
 * @since 13
 */f@
#ifdef __cplusplus
}#

/** @} */x16I aAbilityRuntime
 * @{
 *
 * @brief Declares the connection options for extension ability, including callbacks for
 * connection success, disconnection, and connection failure.
 *
 * @since 26.0.0
 */

/**
 * @file connect_options.h
 *
 * @brief Declares the connection options for extension ability, including callbacks for
 * connection success, disconnection, and connection failu8re.
 *
 * @library libability_runtime.so
 * @kit Ability Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef ABILITY_RUNTIME_CONNECT_OPTIONS_H
#define ABILITY_RUNTIME_CONNECT_OPTIONS_H

#include <stdint.h>
#include "ability_runtime_common.h"
#include "AbilityKit/ability_base/want.h"
#include "IPCKit/ipc_cparcel.h"
_'

/**
 * @brief Defines the OH_AbilityRuntime_ConnectOptions structure type.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ConnectOptions OH_AbilityRuntime_ConnectOptions;

/**
 * @brief The callback interface is invoked when the connection succeeds.
 *
 * @param connectOptions Represents a pointer to an {@link
 * OH_AbilityRuntime_ConnectOptions} instance.
 * @param element Represents the element name of the extension ability.
 * @param proxy Represents the remote object instance.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnConnectCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityBase_Element *element, OHIPCRemoteProxy *proxy);

/**
 * @brief The callback interface is invoked when the disconnection occurs.
 *
 * @param connectOptions Represents a pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance.
 * @param element Represents the element name of the extension ability.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityBase_Element *element);

/**
 * @brief The callback interface is invoked when the connection fails.
 *
 * @param connectOptions Represents a pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance.
 * @param code Represents the error code of the failure.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnFailedCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityRuntime_ErrorCode code);

/**
 * @brief Creates a ConnectOptions object.
 *
 *
 * @return Returns a newly created OH_AbilityRuntime_ConnectOptions object.
 * The caller is responsible for destroying the returned object by calling
 * {@link OH_AbilityRuntime_DestroyConnectOptions} to avoid memory leaks.
 * @since 26.0.0
 */
OH_AbilityRuntime_ConnectOptions* OH_AbilityRuntime_CreateConnectOptions();

/**
 * @brief Destroys the specified ConnectOptions.
 *
 * @param connectOptions The ConnectOptions object to be destroyed.
 * @return The error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the connectOptions is invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_DestroyConnectOptions(OH_AbilityRuntime_ConnectOptions *connectOptions);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnConnectCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onConnectCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnConnectCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnConnectCallback(
    OH_AbilityRuntime_ConnectOptions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnConnectCallback onConnectCallback);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onDisconnectCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnDisconnectCallback(
    OH_AbilityRuntime_ConnectOptions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback onDisconnectCallback);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnFailedCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onFailedCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnFailedCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnFailedCallback(
    OH_AbilityRuntime_ConnectOpt_ions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnFailedCallback onFailedCallback);
_7

/** @} */
#endif // ABILITY_RUNTIME_CONNECT_OPTIONS_HBx41RWProvides the definition of the C interface for the modular object extension context.
 *P< modular_object_extension_contextY modular object extension context^MODULAR_OBJECT_EXTENSION_CONTEXT_H
#define ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_CONTEXT_H
5$contex.(remote_object.h"
#include "start_optionsOCa pointer type toAModObjExtensionContextHandl!P	ModularObjectExtensionContext*AModObjExtensionContextHandle;

/**
 * @brief Gets the base context from the modular object extension context.
 *
 * @param modObjExtensionContext@ modular object extension ability context.
 * @param baseContextD {@link AbilityRuntime_ContextHandle} base extension ability contextq%ModObjExtensionContext_GetBaseContextq^ModObjExtensionContextHandle modObjExtensionContext, AbilityRuntime_ContextHandle* baseContextgtarts the self UIAbility.
 *
 * @permission ohos.permission.NDK_START_SELF_UI_ABILITY
 * @param context modular object extension ability context.
 * @param want The arguments passed to start the self UIAbility.
 * For details, see {@link AbilityBase_Want}q7-if the call is successful.
 * ,>ERMISSION_DENIED} if the caller has no correct permission.
 * :/"arguments provided is invalid.
 * -HT_SUPPORTED} if the device does not support starting self UIAbility.
 * .7SUCH_ABILITY} if the target ability does not exist.
 * +=INCORRECT_ABILITY_TYPE} if the ability type is incorrect.
 * +?CROWDTEST_EXPIRED} if the crowdtesting application expires.
 * +AWUKONG_MODE} if the ability cannot be started in Wukong mode.
 * +)CONTROLLED} if the app is controlled.
 * +4EDM_CONTROLLED} if the app is controlled by EDM.
 * +DCROSS_APP} if the caller tries to start a different application.
 * +*INTERNAL} if an internal error occurs.
 * -4T_TOP_ABILITY} if the caller is not top ability.
 * +]MULTI_APP_NOT_SUPPORTED} if the app clone or multi-instance is
            not supported.
 * +AINVALID_APP_INSTANCE_KEY} if the app instance key is invalid.
 * +ZUPPER_LIMIT_REACHED} if the number of app instances has reached
            the limit.
 * &EMULTI_INSTANCE_NOT_SUPPORTED} if multi-instance is not supported.
 * +WAPP_INSTANCE_KEY_NOT_SUPPORTED} if the APP_INSTANCE_KEY cannot
            be specifiedf+)ModObjExtensionContext_StartSelfUIAbilityqBModObjExtensionContextHandle context, const AbilityBase_Want *wanttarts the self UIAbility with start options.
 *
 * @permission ohos.permission.NDK_START_SELF_UI_ABILITY
 * @param context Repr modular object extension ability context.
 * @param want The arguments passed to start the self UIAbility.
 * For details, see {@link AbilityBase_Want}.
 * @param options The start options passed to start the self UIAbility.
 * For details, see {@link AbilityRuntime_StartOptions}q7-if the call is successful.
 * ,>ERMISSION_DENIED} if the caller has no correct permission.
 * :/#arguments provided are invalid.
 * -HT_SUPPORTED} if the device does not support starting self UIAbility.
 * .7SUCH_ABILITY} if the target ability does not exist.
 * +=INCORRECT_ABILITY_TYPE} if the ability type is incorrect.
 * +?CROWDTEST_EXPIRED} if the crowdtesting application expires.
 * +AWUKONG_MODE} if the ability cannot be started in Wukong mode.
 * +)CONTROLLED} if the app is controlled.
 * +4EDM_CONTROLLED} if the app is controlled by EDM.
 * +DCROSS_APP} if the caller tries to start a different application.
 * +*INTERNAL} if an internal error occurs.
 * -=T_TOP_ABILITY} if the caller is not a foreground process.
 * &CVISIBILITY_SETTING_DISABLED} if setting visibility is disabled.
 * +]MULTI_APP_NOT_SUPPORTED} if the app clone or multi-instance is
            not supported.
 * +AINVALID_APP_INSTANCE_KEY} if the app instance key is invalid.
 * +ZUPPER_LIMIT_REACHED} if the number of app instances has reached
            the limit.
 * &EMULTI_INSTANCE_NOT_SUPPORTED} if multi-instance is not supported.
 * +WAPP_INSTANCE_KEY_NOT_SUPPORTED} if the APP_INSTANCE_KEY cannot
            be specifiedf+9ModObjExtensionContext_StartSelfUIAbilityWithStartOptionsqlModObjExtensionContextHandle context, const AbilityBase_Want *want,
    const AbilityRuntime_StartOptions *o;Destroys the modular object extension.
 *
 * @param contextG modular object extension ability context.
 * @return <ul>
 *      <li>"
,if the call is successful.</li>
 *      <li>81arguments provided are invalid.</li>
 *      <li>"RWUKONG_MODE} if the ability cannot be terminated in Wukong mode.</li>
 *      <li>"CCONTEXT_NOT_EXIST} if the context does not exist.</li>
 *      <li>"9INTERNAL} if an internal error occurs.</li>
 *      </ul>PA$ModObjExtensionContext_TerminateSelfq$ModObjExtensionContextHandle contextn <b>OHIPCRemoteStub</b> object with callbacks running on the extension's designated thread.
 * The requestCallback and destroyKCallback are invoked serially on the thread determined by the
 * extension'ThreadMode}. AfterP%ModObjExtensionContext_DestroyIPCRemoteStub}, no new requestCallback
 * invocations will occur, and any in-flight requestCallba6ck will complete before destroyCallback is invoked.
 *h+ModObjExtensionContext_DestroyIPCRemoteStub
 * @param context modular object extension ability context.
 * @param descriptor Pointer to the descriptor of the <b>OHIPCRemoteStub</b> object to create. It cannot be NULL.
 *                  The string is copied internally during creation, so the caller may release the descriptor
 *                  after this function returns.
 * @param requestCallback Callback used to process the data request. It cannot be NULL.
 * @param destroyCallback Callback to be invoked when the object is destroyed. It can be NULL.
 * @paramd userData Pointer to the user data. It can be NULL. Must remain valid before the object is destroyedqthe pointer to the <b>OHIPCRemoteStub</b> object created if the operation is successful;
 * returns NULL otherwise.
 * @since 2IPCRemoteStub*A*ModObjExtensionContext_CreateIPCRemoteStubqModObjExtensionContextHandle context, const char *descriptor,
    OH_OnRemoteRequestCallback requestCallback, OH_OnRemoteDestro)yCallback destroyCallback, void *userData6an <b>OHIPCRemoteStub</b> object.
 *
 * @param context modular object extension ability context.
 * @param stub Pointer to the <b>OHIPCRemoteStub</b> object to destroy.
 * @since 26	voidA+ModObjExtensionContext_DestroyIPCRemoteStubq;ModObjExtensionContextHandle context, OHIPCRemoteStub *stub1E"MODULAR_OBJECT_EXTENSION_CONTEXT_Hi$DxGRfmanager.
 *Q'manager26manageroMANAGER/4MANAGER_H

#include <stddef.h>mnconnecLthe pointer`Info.
 *Q7Info*q".InfoHandle;

/**
 * @brief Defines the pointer`"AllModularObjectExtensionInfos.
 *Q!AllModularObjectExtensionInfos*q@AllModObjExtensionInfosHandle;

/**
 * @brief The launch mode ofPenumqLaunchMode {
    /**
     * @brief All extensions under the same bundle share a single process.
     * @since 26.0.0
     */
  M  OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS = 0,

    /**
     * @brief Allow ies to be started across processes.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_LAUNCH_MODE_CROSS_PROCESS = 1,
} OH_Abix.LaunchMode;

/**
 * @brief The process mode ofPenumq'ProcessMode {
    /**
     * @brief Alls under the same bundle share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_BUNDLE = 0,

    /**
     * @brief M!s with the same name share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_TYPE = 1,

    /**
     * @brief Eachginstance is a process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_INSTANCE = 2,
}q.ProcessMode;

/**
 * @brief The thread mode ofPenumq&ThreadMode {
    /**
     * @brief Alls under the same bundle share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_BUNDLE = 0,

    /**
     * @brief M!s with the same name share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_TYPE = 1,

    /**
     * @brief Eacheinstance is a thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_INSTANCE = 2,
}q	ThreadModlaunch mode from"info.
 *
 * @param extensionInfo Tq info from which to get the launch mode.
 * @param launchMode The launch mode obtained from the extension info.
 * @return Retu%MV&
1P8U='GetModularObjectExtensionInfoLaunchMode('InfoHandle extensionInfo,qLaunchMode *launchMode)process mode from"info.
 *
 * @param extensionInfo Tqk info to get the process mode from.
 * @param processMode The process mode obtained from the extension info%MV&
1P8U=(GetModularObjectExtensionInfoProcessMode('InfoHandle extensionInfo,qProcessMode *processMode)thread mode from"info.
 *
 * @param extensionInfo Tqh info to get the thread mode from.
 * @param threadMode The thread mode obtained from the extension info%MV&
1P8U='GetModularObjectExtensionInfoThreadMode('InfoHandle extensionInfo,q=ThreadMode *threadMode);

/**
 * @brief Gets elementName from"info.
 *
 * @param extensionInfo Tqg info to get the element name from.
 * @param element The element name obtained from the extension info%MV&
1P8U=(GetModularObjectExtensionInfoElementName('5InfoHandle extensionInfo, AbilityBase_Element *elemen+	disable state ofextensionInfo Tq; info.
 * @param isDisabled Whether the extension is disabl%MV&
1P8U=)GetModularObjectExtensionInfoDisableState('HInfoHandle extensionInfo, bool *isDisabled);

/**
 * @brief Acquires allinfos within the self application.
 *
 * @param outOwnedAllExtensionInfos Information about all extensions within the self application%MV&
1P.
 * @releas4ReleaseAllExtensionInfos {outOwnedAllExtensionInfos}QA&AcquireSelfModularObjectExtensionInfos(dAllModObjExtensionInfosHandle *outOwnedAllExtensionInfos);

/**
 * @brief Releases the specified all-infos.
 *
 * @param allExtensionInfos The allinfos to be releas%MV&
1P8@se&AcquireSelfModularObjectExtensionInfosQAReleaseAllExtensionInfos(1AllModObjExtensionInfosHandle *allExtensionInfos)exact count ofminfos present in the collection.
 *
 * @param allExtensionInfos The handle representing the collection of allXinfos.
 * @param count Return value to receive the count of extensions in the collection%MV&
1P8U=#GetCountFromAllModObjExtensionInfos(=AllModObjExtensionInfosHandle allExtensionInfos, size_t *counRetrieves a specificinfo handle from the collection by its index.
 *
 * @param allExtensionInfos Information about all extensions within the self application.
 * @param index The index of the extension to retrieve. Must be strictly less than the count.
 * @param extensionInfo The retrieved single#info handle for the specified index%MV&
1P8U=GetModObjExtensionInfoByIndex(>AllModObjExtensionInfosHandle allExtensionInfos, size_t index,(&2InfoHandle *extensionInfo);

/**
 * @brief Connectq	&.
 *
 * @param want Indicaten		
to connect	4param connectOptions Indicates the connection options.
 * @param connectionId Indicates the connection id that is a output param.connecting modular
 *     56674MVISIBILITY_VERIFICATION_FAILED} - Cannot start an invisible
 *      component5QSTATIC_CFG_PERMISSION} The specified process does not have
 *      the permission5~4USER_OPERATION} Cross-user operations are not allowe6;45%&h4lNThe number of instances with the same
 *      ability name is more than twenty5gNO_RUNNING_ABILITIES_WITH_UI} if the target application does not have
 *      running abilities with UI5[UPPER_RATE_LIMIT} The API call frequency is too high and
 *      exceeds 20 times per secon6UPPER_CONNECTION_NUMBER_LIMIT} The number of connections to
 *      the same ability name from the same pid exceeds five.</li>
.~	_IN_PROCESS} Caller and target are not in the
 *      same application for {@link OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS} mo#E%ConnectModularObjectExtensionAbility((QConnectOptions *connectOptions, int64_t *connectionId);

/**
 * @brief Disconnecto	7.
 *
 * @param connectionId Indicates the connection ID%MPc&QA<DisconnectModularObjectExtensionAbility(int64_t connectionId(^
MANAGER_H
+Hx   f4-2025I/**
 * @addtogroup input!C interface in the multi-modal input domain.
 *
 * @since 12
 */

/**
 * @file oh_input_manager.h
 *
 * @brief Provides capabilAities such as event injection and key status query.
 * @kit Input MultimodalInput.Input.Core
 * @library libohinput.so
 * @since 12
 */

#ifndef OH_INPUT_MANAGER_H
#define OH_INPUT_MANAGER_H

#ainclude <stdint.h>

#include "oh_axis_type.h"
#include "oh_key_code.h"
#include "oh_pointer_style-Gstruct OH_PixelmapNative;
/**
 * @brief Pixelmap struct
 *
 * @since 22PixelmapNative OH_PixelmapNative;

/**
 * @brief Enumerated values of key event action.
 *
 * @since 12
 */
typedef enum Input_KeyStateAction {
    /** Default */
    KEY_DEFAULT = -1,
    /** Pressing of a key */
    KEY_PRESSED = 0,
    /** Release of a key */
    KEY_RELEASED = 1,
    /** Key switch enabled */
    KEY_SWITCH_ON = 2,
    /** Key switch disabled */
    KEY_SWITCH_OFF = 3
} Input_KeyStateAction;

/**
 * @brief Enumerates key event types.
 *
 * @since 12
 */
typedef enum Input_KeyEventAction {
    /** Cancellation of a key action. */
    KEY_ACTION_CANCEL = 0,
    /** Pressing of a key. */
    KEY_ACTION_DOWN = 1,
    /** Release of a key. */
    KEY_ACTION_UP = 2,
} Input_KeyEventAction;

/**
 * @brief Enumerated values of mouse event action.
 *
 * @since 12
 */
typedef enum Input_MouseEventAction {
    /** Cancel. */
    MOUSE_ACTION_CANCEL = 0,
    /** Moving of the mouse pointer. */
    MOUSE_ACTION_MOVE = 1,
    /** Pressing down of the mouse. */
    MOUSE_ACTION_BUTTON_DOWN = 2,
    /** Lifting of the mouse button. */
    MOUSE_ACTION_BUTTON_UP = 3,
    /** Beginning of the mouse axis event */
    MOUSE_ACTION_AXIS_BEGIN = 4,
    /** Updating of the mouse axis event */
    MOUSE_ACTION_AXIS_UPDATE = 5,
    /** End of the mouse axis event */
    MOUSE_ACTION_AXIS_END = 6,
} Input_MouseEventAction;

/**
 * @brief Mouse axis types.
 *
 * @since 12
 */
typedef enum InputEvent_MouseAxis {
    /** Vertical scroll axis */
    MOUSE_AXIS_SCROLL_VERTICAL = 0,
    /** Horizontal scroll axis */
    MOUSE_AXIS_SCROLL_HORIZONTAL = 1,
} InputEvent_MouseAxis;

/**
 * @brief Enumerated values of mouse event button.
 *
 * @since 12
 */
typedef enum Input_MouseEventButton {
    /** Invalid button */
    MOUSE_BUTTON_NONE = -1,
    /** Left button on the mouse. */
    MOUSE_BUTTON_LEFT = 0,
    /** Middle button on the mouse. */
    MOUSE_BUTTON_MIDDLE = 1,
    /** Right button on the mouse. */
    MOUSE_BUTTON_RIGHT = 2,
    /** Forward button on the mouse. */
    MOUSE_BUTTON_FORWARD = 3,
    /** Back button on the mouse. */
    MOUSE_BUTTON_BACK = 4,
} Input_MouseEventButton;

/**
 * @brief Enumerated values of touch event action.
 *
 * @since 12
 */
typedef enum Input_TouchEventAction {
    /** Touch cancelled. */
    TOUCH_ACTION_CANCEL = 0,
    /** Touch pressed. */
    TOUCH_ACTION_DOWN = 1,
    /** Touch moved. */
    TOUCH_ACTION_MOVE = 2,
    /** Touch lifted. */
    TOUCH_ACTION_UP = 3,
} Input_TouchEventAction;

/**
 * @brief Enumerates keyboard types.
 *
 * @since 13
 */
typedef enum Input_KeyboardType {
    /** Keyboard without keys */
    KEYBOARD_TYPE_NONE = 0,
    /** Keyboard with unknown keys */
    KEYBOARD_TYPE_UNKNOWN = 1,
    /** Full keyboard */
    KEYBOARD_TYPE_ALPHABETIC = 2,
    /** Digital keyboard */
    KEYBOARD_TYPE_DIGITAL = 3,
    /** Stylus */
    KEYBOARD_TYPE_STYLUS = 4,
    /** Remote control */
    KEYBOARD_TYPE_REMOTE_CONTROL = 5,
} Input_KeyboardType;

/**
 * @brief Enumerates the injection authorization status.
 *
 * @since 20
 */
typedef enum Input_InjectionStatus {
    /** Unauthorized */
    UNAUTHORIZED = 0,
    /** Authorizing */
    AUTHORIZING = 1,
    /** Authorized */
    AUTHORIZED = 2,
} Input_InjectionStatus;

/**
 * @brief Enumerates event source types.
 *
 * @since 12
 */
typedef enum InputEvent_SourceType {
    /**
     * Indicates that the input source generates events similar to mouse cursor movement,
     * button press and release, and wheel scrolling.
     *
     * @since 12
     */
    SOURCE_TYPE_MOUSE = 1,
    /**
     * Indicates that the input source generates a touchscreen multi-touch event.
     *
     * @since 12
     */
    SOURCE_TYPE_TOUCHSCREEN = 2,
    /**
     * Indicates that the input source generates a touchpad multi-touch event.
     *
     * @since 12
     *5/
    SOURCE_TYPE_TOUCHPAD = 3
} InputEvent_SourceTypkey information, which identifies a key pressing behavior. For example, the Ctrl key information contains the key value and key type.
 *
 * @since 12Input_KeyState Input_KeyStat)key event to be injected.
 *
 * @since 12Input_KeyEvent Input_KeyEvent+mouse event to be injected.
 *
 * @since 12!Input_MouseEvent Input_MouseEvent+touch event to be injected.
 *
 * @since 12YInput_TouchEvent Input_TouchEvent;

/**
 * @brief Enumerates axis events.
 *
 * @since 12Input_AxisEvent Input_AxisEvent"hot key structure.
 *
 * @since 14Input_Hotkey Input_Hotkey#cursor information.
 *
 * @since 22Input_CursorInfo Input_CursorInfo;

/**
 * @brief Enumerates error codes.
 *
 * @since 12
 */
typedef enum Input_Result {
    /** @error Success return code on success*/
    INPUT_SUCCESS = 0,
    /** @error Permission verification failed */
    INPUT_PERMISSION_DENIED = 201,
    /** @error Non-system application */
    INPUT_NOT_SYSTEM_APPLICATION = 202,
    /** @error Parameter check failed */
    INPUT_PARAMETER_ERROR = 401,
    /** @error Device not support */
    INPUT_DEVICE_NOT_SUPPORTED = 801,
    /** @error Service error */
    INPUT_SERVICE_EXCEPTION = 3800001,
    /** @error Interceptor repeatedly created for an application */
    INPUT_REPEAT_INTERCEPTOR = 4200001,
    /**
     * @error Already occupied by the system
     * @since 14
     */
    INPUT_OCCUPIED_BY_SYSTEM = 4200002,
    /**
     * @error Already occupied by the other
     * @since 14
     */
    INPUT_OCCUPIED_BY_OTHER = 4200003,
    /**
     * @error No keyboard device connected
     * @since 15
     */
    INPUT_KEYBOARD_DEVICE_NOT_EXIST = 3900002,
     /**
     * @error Authorizing
     * @since 20
     */
    INPUT_INJECTION_AUTHORIZING = 3900005,
    /**
     * @error Too many operations
     * @since 20
     */
    INPUT_INJECTION_OPERATION_FREQUENT = 3900006,
    /**
     * @error Authorized
     * @since 20
     */
    INPUT_INJECTION_AUTHORIZED = 3900007,
    /**
     * @error Authorized to other applications
     * @since 20
     */
    INPUT_INJECTION_AUTHORIZED_OTHERS = 3900008,
    /**
     * @error App is not the focused app
     * @since 20
     */
    INPUT_APP_NOT_FOCUSED = 3900009,
    /**
     * @error The device has no pointer
     * @since 20
     */
    INPUT_DEVICE_NO_POINTER = 3900010,
    /**
     * @error Invalid windowID
     * @since 22
     */
    INPUT_INVALID_WINDOWID = 26500001,
} Input_Result;

/**
 * @brief Input_TouchEventToolType
 * @since 24
 */
typedef enum IZnput_TouchEventToolType {
    /**
    * Finger
    * @since 24
    */
    TOOL_TYPE_FINGER
* Pen
    * @since 24
    */
    TOOL_TYPE_PEN = 1,

    /**
    * Rubber
    * @since 24
    */
    TOOL_TYPE_RUBBER = 2,

    /**
    * Brush
    * @since 24
    */
    TOOL_TYPE_BRUSH = 3,

    /**
    * Pencil
    * @since 24
    */
    TOOL_TYPE_PENCIL = 4,

    /**
    * Air brush
    * @since 24
    */
    TOOL_TYPE_AIRBRUSH = 5,

    /**
    * Mouse
    * @since 24
    */
    TOOL_TYPE_MOUSE = 6,

    /**
    * lens
    * @since 24
    */
    TOOL_TYPE_LENS = 7,
} Input_TouchEventToolType;

/**
 * @brief Callback used to return shortcut key events.
 * @since 14
 */
typedef void (*Input_HotkeyCallback)(Input_Hotkey* hotkRey);

/**
 * @brief Represents information about the input device.
 *
 * @since 13UInput_DeviceInfo Input_DeviceInfo;

/**
 * @brief Pixel map resource.
 *
 * @since 22(Input_CustomCursor Input_CustomCursor;
 ,custom cursor configuration.
 *
 * @since 22%Input_CursorConfig Input_CursorConfiga lifecycle callback for keyEvent. If the callback is triggered, keyEvent will be destroyed.
 * 
 * @param keyEvent Key event o^bject.
 * @since 12
 */
typedef void (*Input_KeyEventCallback)(const Input_KeyEvent* keyEvent)a lifecycle callback for mouseEvent. If the callback is triggered, mouseEvent will be destroyed.
 * 
 * @param mouseEvent Mousel event object.
 * @since 12
 */
typedef void (*Input_MouseEventCallback)(const Input_MouseEvent* mouseEvent)a lifecycle callback for touchEvent. If the callback is triggered, touchEvent will be destroyed.
 * 
 * @param touchEvent Touchl event object.
 * @since 12
 */
typedef void (*Input_TouchEventCallback)(const Input_TouchEvent* touchEvent)a lifecycle callback for axisEvent. If the callback is triggered, axisEvent will be destroyed.
 * 
 * @param axisEvent Axis eveent object.
 * @since 12
 */
typedef void (*Input_AxisEventCallback)(const Input_AxisEvent* axisEvent)callback for device addition events.
 * @param deviceId Device ID.
 * @since 13
 */
typedef void (*Input_DeviceAddedCallback)(int32_t deviceIcallback for device removal events.
 * @param deviceId Device ID.
 * @since 13
 */
typedef void (*Input_DeviceRemovedCallback)(int32_t deviceIevent injection callback.
 * @param authorizedStatus Authorization status.
 * @since 20
 */
typedef void (*Input_InjectAuthoriz2eCallback)(Input_InjectionStatus authorizedStatus)structure for the interceptor of event callbacks,
 * including mouseCallback, touchCallback, and axisCallback.
 * @since 12
 */Input_InterceptorEventCallback {
    /** Defines a lifecycle callback for **mouseEvent**. */
    Input_MouseEventCallback mouseCallback;
    /** Defines a lifecycle callback for **touchEvent**. */
    Input_TouchEventCallback touchCallback;
    /** Defines a lifecycle callback for **axisEvent**. */
    Input_AxisEventCallback axisCallback;
} Input_InterceptorEventCallback;

/**
@a listener for device insertion and removal events.
 * @since 13Input_DeviceListener {
    /** Callback for device addition events */
    Input_DeviceAddedCallback deviceAddedCallback;
    /** Callback for device removal events */
    Input_DeviceRemovedCallback deviceRemovedCallback;
} Input_DeviceListener;

/**
 * 'event interceptor options.
 * @since 12Input_InterceptorOptions Input_InterceptorOptions;

/**
 * @brief Queries the key state.
 *
 * @param keyState Key state.
 * @return OH_Input_GetKeyState function result code.
 *         {@link INPUT_SUCCESS} get KeyState success.\n
 *         {@link INP)UT_PARAMETER_ERROR} keyCode is invalid.\nlMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetKeyState(struct Input_KeyState* keyStatA+Creates a key status enumeration object.
 *1"n {@Input_KeyState} pointer object%$WOtherwise, a null pointer is returned. The possible cause is memory allocation failure.MultimodalInput.Input.Core
 * @since 12
 */
struct Input_KeyState* OH_Input_CreateKeyState();

/**
 * @brief Destroys a key staMtus enumeration object.
 * 
 * @param keyState Key status enumeration object.iMultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_DestroyKeyState(struct Input_KeyState** keyStatASets the key value of a key status enumeration object.
 * 
 * @param keyState Key status enumeration object.
 * @param keyCode /Key value of the key status enumeration object.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeyCode(struct Input_KeyState* keyState, int32_t keyCode);

/**
 *Obtains the key value of a key status enumeration object.
 * 
 * @param keyState Key status enumeration object.
 * @return Key +value of the key status enumeration object.lMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetKeyCode(const struct Input_KeyState* keyStatASets whether the key specific to a key status enumeration object is pressed.
 * 
 * @param keyState Key status enumeration obje3ct.
 * @param keyAction Whether the key is pressed.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeyPressed(struct Input_KeyState* keyState, int32_t keyAction);

/**
 * @brief Checks whether the key specific to a key status enumeration object is pressed.
 * 
 * @param keyState Key status eWnumeration object.
 * @return Key pressing status of the key status enumeration object.oMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetKeyPressed(const struct Input_KeyState* keyStatASets the key switch of the key status enumeration object.
 * 
 * @param keyState Key status enumeration object.
 * @param keySw5itch Key switch of the key status enumeration object.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeySwitch(struct Input_KeyState* keyState, int32_t keySwitch);

/**
 * @brief Obtains the key switch of the key status enumeration object.
 * 
 * @param keyState Key status enumeration object.
; * @return Key switch of the key status enumeration object.nMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetKeySwitch(const struct Input_KeyState* keyStatAInject system keys.
 * since API 20, it is recommended to use OH_Input_RequestInjection
 * to request authorization before using the interface,
 * and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
 * When the authorization status is AUTHORIZED, use the interface.
 *
 * @param keyEvent - the key event to be injected.
 * @return OH_Input_InjectKeyEvent function result code.
 *         {@link INPUT_SUCCESS} inject keyEvent success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} keyCode is less 0, can not process.\n
 * @syscap SystMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_InjectKeyEvent(const struct Input_KeyEvent* keyEvent);

/**
 * @br"ief Creates a key event object.
 *1'n {@link Input_KeyEvent} pointer object%$WOtherwise, a null pointer is returned. The possible cause is memory allocation failure.MultimodalInput.Input.Core
 * @since 12
 */
struct Input_KeyEvent* OH_Input_CreateKeyEvent();

/**
 * @brief Destroys a key eve2nt object.
 *
 * @param keyEvent Key event object.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_DestroyKeyEvent(struct Input_KeyEvent** keyEvent);

/**
 * @brief Set^s the key event type.
 *
 * @param keyEvent Key event object.
 * @param action Key event type.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeyEventAction(struct Input_KeyEvent* keyEvent, int32_t action);

/**
 * @brief Obtains the key event type.
 *
 * @param keyEvent Key event object.
 * @return Key event type.
 * @syscap SystemC
MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetKeyEventAction(const struct Input_KeyEvent* keyEvent);

/**
 * @brief Sets the key value for a key event.
 *
 * @param keyEvent Key event object.
 * @param keyCode keyCode Key code.
 * @syscMultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeyEventKeyCode(struct Input_KeyEvent* keyEvent, int32_t keyCode);bObtains the key value of a key event.
 *
 * @param keyEvent Key event object.
 * @return Key code.MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetKeyEventKeyCode(const struct Input_KeyEvent* keyEvent);

/**
 * @brief Sets the time when a key event occurs.
 *
 * @param keyEvent Key event object.
 * @param actionTime Time when the key event occurs.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetKeyEventActionTime(struct Input_KeyEvent* keyEvent, int64_t actionTimAPObtains the time when a key event occurs.
 *
 * @param keyEvent Key event object#the time when the key event occurs.MultimodalInput.Input.Core
 * @since 12
 */
int64_t OH_Input_GetKeyEventActionTime(const struct Input_KeyEvent* keyEvent);

/**
 * @brief Sets the windowId for a key event.
 *
 * @param keyEvent Key event object.
 * @param windowId The windowId for a key event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetKeyEventWindowId(struct Input_KeyEvent* keyEvent, int32_t windowIdaObtains the windowId of a key event.
 *
 * @param keyEvent Key event object.
 * @return windowId.MultimodalInput.Input.Core
 * @since 15
 */
int32_t OH_Input_GetKeyEventWindowId(const struct Input_KeyEvent* keyEvent);

/**
 * @brief Sets the displayId for a key event.
 *
 * @param keyEvent Key event object.
 * @param displayId The displayId for a key event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetKeyEventDisplayId(struct Input_KeyEvent* keyEvent, int32_t displayIcObtains the displayId of a key event.
 *
 * @param keyEvent Key event object.
 * @return displayId.MultimodalInput.Input.Core
 * @since 15
 */
int32_t OH_Input_GetKeyEventDisplayId(const struct Input_KeyEvent* keyEvent);

/**
 * @brief Get the eventId of the keyEvent.
 *
 * @param keyEvent - Key event object.
 * @param eventId - Get the keyEvent eventId.
 * @return OH_Input_GetKeyEventId function result code.
 *         {@link INPUT_SUCCESS} Get the eventId of the keyEvent success.\n
 *         {@link INPUT_PARAMETER_ERROR} Parameter check failed.\n
 * @since 21
 */

Input_Result OH_Input_GetKeyEvent9Id(const struct Input_KeyEvent* keyEvent, int32_t* eventIdd a keyEvent interception hook function. Before using this interface,
 *        the user needs to authorize it in the settings.
 *
 * @permission ohos.permission.HOOK_KEY_EVENT
 * @param callback - Hook function, keyEvent will be sent to the hook function for priority processing.
 * @return OH_Input_AddKeyEventHook function result code.
 *         {@link INPUT_SUCCESS} Added hook function successfully.\n
 *         {@link INPUT_PARAMETER_ERROR}  Failed to add the hook function. Reason: Parameter check failed.\n
 *         {@link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\n
 *         {@link INPUT_PERMISSION_DENIED} Failed to add the hook function. Reason: Permission check failed.\n
 *         {@link INPUT_REPEAT_INTERCEPTOR} Failed to add the hook function.\n
 *                 Reason: Repeatedly set the hook function. A process can only have one key hook function.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the hook function.\n
 *                 Reason: Input service exception, please try again.\n
 * @since 21
 */
Input_Result OH_Input_AddKeyEventHook(Input_KeyEventCallback callback);

/**
 * @brief Remove keyEvent interception hook function.
 *
 * @param callback - Hook function, Same as the parameters when calling OH_Input_AddKeyEventHook.
 * @return OH_Input_RemoveKeyEventHook function result code.
 *         {@link INPUT_SUCCESS} Hook function removed successfully.\n
 *               Even if the hook function has not been added before, it will return success when removed.\n
 *         {@link INPUT_PARAMETER_ERROR} Failed to remove the hook function. Reason: Parameter check failed.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to remove the hook function.\n
 *                 Reason: Input service exception, please try again.\n
 * @since 21
 */
Input_Result OH_Input_RemoveKeyEventHook(Input_KeyEventCallback callback);

/**
 * @brief Redispatches keyEvent.
 *        Only keyEvent intercepted by hook functions can be redispatched,
 *        and the event order must be maintained during redispatching.
 *        The hook function intercepts the input event and then redistributes it for 3 seconds.
 *        If this time is exceeded, calling this function will return INPUT_PARAMETER_ERROR.
 * 	      Re-dispatching requires event pairing, usually starting with one or more KEY_ACTION_DOWN and
 *        ending with KEY_ACTION_UP or KEY_ACTION_CANCEL.
 * 	      Only KEY_ACTION_UP or KEY_ACTION_CANCEL is redispatched, the function call succeeds,
 *        but no actual dispatch is made.
 *        If an event is dispatched that is not intercepted by the hook function,
 *        the function call succeeds, but no actual dispatch action is taken.
 * 
 * @param eventId - keyEvent eventId.
 * @return OH_Input_DispatchToNextHandler function result code.
 *         {@link INPUT_SUCCESS} Redistribution successful.\n
 *         {@link INPUT_PARAMETER_ERROR} Redistribution failed. Reason: KeyEvent does not exist.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Redistribution failed.\n
 *                 Reason: Input service exception, it's recommended to reset the pending distribution status.\n
 * @sincCe 21
 */
Input_Result OH_Input_DispatchToNextHandler(int32_t eventIInject mouse event.
 * since API 20, it is recommended to use OH_Input_RequestInjection
 * to request authorization before using the interface,
 * and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
 * When the authorization status is AUTHORIZED, use the interface.
 *
 * @param mouseEvent - the mouse event to be injected.
 * @return OH_Input_InjectMouseEvent function result code.
 *         {@link INPUT_SUCCESS} inject mouseEvent success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} Parameter check failed.\n
 * @syscap SystemCa	MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_InjectMouseEvent(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Inject mouse event using global coordinate.
 * since API 20, it is recommended to use OH_Input_RequestInjection
 * to request authorization before using the interface,
 * and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
 * When the authorization status is AUTHORIZED, use the interface.
 *
 * @param mouseEvent - the mouse event to be injected, set up effective globalX globalY.
 * @return OH_Input_InjectMouseEventGlobal function result code.
 *         {@link INPUT_SUCCESS} inject mouseEvent success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} Parameter check failed.\n
 * @since 20
 */
int32_t OH_Input_InjectMouseEventGlobal(const struct InLput_MouseEvent* mouseEvent);

/**
 * @brief Creates a mouse event object.
 *1)n {@link Input_MouseEvent} pointer object%$WOtherwise, a null pointer is returned. The possible cause is memory allocation failure.MultimodalInput.Input.Core
 * @since 12
 */
struct Input_MouseEvent* OH_Input_CreateMouseEvent();

/**
 * @brief Destroys a mou<se event object.
 *
 * @param mouseEvent Mouse event object.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_DestroyMouseEvent(struct Input_MouseEvent** mouseEvent);

/**
 * @brief Sets the action for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param action Mouse action.
 * @syscap SysMultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventAction(struct Input_MouseEvent* mouseEvent, int32_t action);

/**
 * @brief Obtains the action of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Mouse action.
 MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetMouseEventAction(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the X coordinate for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param displayX  X coordinate on the display.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventDisplayX(struct Input_MouseEvent* mouseEvent, int32_t displayX);

/**
 * @brief Obtains the X coordinate of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return X coordinate on the display.MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetMouseEventDisplayX(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the Y coordinate for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param displayY Y coordinate on the display.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventDisplayY(struct Input_MouseEvent* mouseEvent, int32_t displayY);

/**
 * @brief Obtains the Y coordinate of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Y coordinate on the display.MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetMouseEventDisplayY(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the button for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param button Mouse button.
 *MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventButton(struct Input_MouseEvent* mouseEvent, int32_t button);

/**
 * @brief Obtains the button of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Mouse button.
 MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetMouseEventButton(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the axis type for mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param axisType Axis type, for example, X axis or Y axis.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventAxisType(struct Input_MouseEvent* mouseEvent, int32_t axisTypAObtains the axis type of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Axis type.
 * @syscap SystemCapaMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetMouseEventAxisType(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the axis value for a mouse axis event.
 *
 * @param mouseEvent Mouse event object.
 * @param axisValue Axisd value. A positive value means scrolling forward,
 * and a negative number means scrolling backward.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventAxisValue(struct Input_MouseEvent* mouseEvent, float axisValuAObtains the axis value of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Axis value.
 * @syscap SystemCa	MultimodalInput.Input.Core
 * @since 12
 */
float OH_Input_GetMouseEventAxisValue(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the time when a mouse event occurs.
 *
 * @param mouseEvent Mouse event object.
 * @param actionTime Time when the mouse event occurs.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetMouseEventActionTime(struct Input_MouseEvent* mouseEvent, int64_t 	actionTimAVObtains the time when a mouse event occurs.
 *
 * @param mouseEvent Mouse event object%the time when the mouse event occurs.MultimodalInput.Input.Core
 * @since 12
 */
int64_t OH_Input_GetMouseEventActionTime(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the windowId for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param windowId The windowId for a mouse event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetMouseEventWindowId(struct Input_MouseEvent* mouseEvent, int32_t windowIObtains the windowId of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return windowId.
 * @syscap SystemCapabiMultimodalInput.Input.Core
 * @since 15
 */
int32_t OH_Input_GetMouseEventWindowId(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Sets the displayId for a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param displayId The displayId for a mouse event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetMouseEventDisplayId(struct Input_MouseEvent* mouseEvent, int32_t displayIObtains the displayId of a mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return displayId.
 * @syscap SystemCapaMultimodalInput.Input.Core
 * @since 15
 */
int32_t OH_Input_GetMouseEventDisplayId(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Set the global X coordinate of the mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param globalX Global X coordinate.
 * @since 20
 */
void OH_Input_SetMouseEventGlobalX(struct Input_MouseEvent* mouseEvent, int32_t globalX);

/**
 * @brief Queries the global X coordinate of the mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Global X coordinate.
 * @since 20
 */
int32_t OH_Input_GetMouseEventGlobalX(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Set the global Y coordinate of the mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @param globalY Global Y coordinate.
 * @since 20
 */
void OH_Input_SetMouseEventGlobalY(struct Input_MouseEvent* mouseEvent, int32_t globalY);

/**
 * @brief Queries the global Y coordinate of the mouse event.
 *
 * @param mouseEvent Mouse event object.
 * @return Global Y coordinate.
 * @since 20
 */
int32_t OH_Input_GetMouseEventGlobalY(const struct Input_MouseEvent* mouseEvent);

/**
 * @brief Inject touch event.
 * since API 20, it is recommended to use OH_Input_RequestInjection
 * to request authorization before using the interface,
 * and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
 * When the authorization status is AUTHORIZED, use the interface.
 *
 * @param touchEvent - the touch event to be injected.
 * @return OH_Input_InjectTouchEvent function result code.
 *         {@link INPUT_SUCCESS} inject touchEvent success.\n
 *         {@link INPUT_PARAMETER_ERROR} Parameter check failed.\nMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_InjectTouchEvent(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Inject touch event using global coordinate.
 * since API 20, it is recommended to use OH_Input_RequestInjection
 * to request authorization before using the interface,
 * and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
 * When the authorization status is AUTHORIZED, use the interface.
 *
 * @param touchEvent - the touch event to be injected, set up effective globalX globalY.
 * @return OH_Input_InjectTouchEventGlobal function result code.
 *         {@link INPUT_SUCCESS} inject touchEvent success.\n
 *         {@link INPUT_PARAMETER_ERROR} Parameter check failed.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 * @since 20
 */
int32_t OH_Input_InjectTouchEventGlobal(const struct InLput_TouchEvent* touchEvent);

/**
 * @brief Creates a touch event object.
 *1)n {@link Input_TouchEvent} pointer object%$WOtherwise, a null pointer is returned. The possible cause is memory allocation failure.MultimodalInput.Input.Core
 * @since 12
 */
struct Input_TouchEvent* OH_Input_CreateTouchEvent();

/**
 * @brief Destroys a tou<ch event object.
 *
 * @param touchEvent Touch event object.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_DestroyTouchEvent(struct Input_TouchEvent** touchEvent);

/**
 * @brief Sets the action for a touch event.
 *
 * @param touchEvent Touch event object.
 * @param action Touch action.
 * @syscap SysMultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetTouchEventAction(struct Input_TouchEvent* touchEvent, int32_t action);

/**
 * @brief Obtains the action of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return Touch action.
 MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetTouchEventAction(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the finger ID for the touch event.
 *
 * @param touchEvent Touch event object.
 * @param id Finger ID.
 * @syMultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetTouchEventFingerId(struct Input_TouchEvent* touchEvent, int32_t idObtains the finger ID of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return Finger ID.
 * @syscap SystemCapaMultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetTouchEventFingerId(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the X coordinate for a touch event.
 *
 * @param touchEvent Touch event object.
 * @param displayX X coordinate.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetTouchEventDisplayX(struct Input_TouchEvent* touchEvent, int32_t displayX);

/**
 * @brief Obtains the X coordinate of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return X coordinate.MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetTouchEventDisplayX(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the Y coordinate for a touch event.
 *
 * @param touchEvent Touch event object.
 * @param displayY Y coordinate.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetTouchEventDisplayY(struct Input_TouchEvent* touchEvent, int32_t displayY);

/**
 * @brief Obtains the Y coordinate of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return Y coordinate.MultimodalInput.Input.Core
 * @since 12
 */
int32_t OH_Input_GetTouchEventDisplayY(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the time when a touch event occurs.
 *
 * @param touchEvent Touch event object.
 * @param actionTime Time when the touch event occurs.MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_SetTouchEventActionTime(struct Input_TouchEvent* touchEvent, int64_t 	actionTimAVObtains the time when a touch event occurs.
 *
 * @param touchEvent touch event object%the time when the touch event occurs.MultimodalInput.Input.Core
 * @since 12
 */
int64_t OH_Input_GetTouchEventActionTime(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the windowId for a touch event.
 *
 * @param touchEvent Touch event object.
 * @param windowId The windowId for a touch event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetTouchEventWindowId(struct Input_TouchEvent* touchEvent, int32_t windowIObtains the windowId of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return windowId.
 * @syscap SystemCapabiMultimodalInput.Input.Core
 * @since 15
*/
int32_t OH_Input_GetTouchEventWindowId(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Sets the displayId for a touch event.
 *
 * @param touchEvent Touch event object.
 * @param displayId The displayId for a touch event.MultimodalInput.Input.Core
 * @since 15
 */
void OH_Input_SetTouchEventDisplayId(struct Input_TouchEvent* touchEvent, int32_t displayIObtains the displayId of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return displayId.
 * @syscap SystemCapaMultimodalInput.Input.Core
 * @since 15
*/
int32_t OH_Input_GetTouchEventDisplayId(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the global X coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param globalX Global X coordinate.
 * @since 20
 */
void OH_Input_SetTouchEventGlobalX(struct Input_TouchEvent* touchEvent, int32_t globalX);

/**
 * @brief Queries the global X coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @return Global X coordinate.
 * @since 20
 */
int32_t OH_Input_GetTouchEventGlobalX(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the global Y coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param globalY Global Y coordinate.
 * @since 20
 */
void OH_Input_SetTouchEventGlobalY(struct Input_TouchEvent* touchEvent, int32_t globalY);

/**
 * @brief Queries the global Y coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @return Global Y coordinate.
 * @since 20
 */
int32_t OH_Input_GetTouchEventGlobalY(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the pressure of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param pressure Pressure, the value ranges from 0 to 1.
* @return OH_Input_SetTouchEventPressure function result code.
 *         {@link INPUT_SUCCESS} Sets the pressure of the touch event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The touchEvent is NULL or pressure value not within range.\n
 * @sijnce 24
 */
Input_Result OH_Input_SetTouchEventPressure(struct Input_TouchEvent* touchEvent, double pressurAObtains the pressure of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return pressure.
 * @since 24
 */
double OH_Input_GetTouchEventPressure(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the window X coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param windowX Window X coordinate.
 * @since 24
 */
void OH_Input_SetTouchEventWindowX(struct Input_TouchEvent* touchEvent, int32_t windowX);

/**
 * @brief Queries the window X coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @return window X coordinate.
 * @since 24
 */
int32_t OH_Input_GetTouchEventWindowX(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the window Y coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param windowY Window Y coordinate.
 * @since 24
 */
void OH_Input_SetTouchEventWindowY(struct Input_TouchEvent* touchEvent, int32_t windowY);

/**
 * @brief Queries the window Y coordinate of the touch event.
 *
 * @param touchEvent Touch event object.
 * @return window Y coordinate.
 * @since 24
 */
int32_t OH_Input_GetTouchEventWindowY(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the down time of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param downTime Down time.
 * @since 24
 */
void OH_Input_SetTouchEventDownTime(struct Input_TouchEvent* touchEvent, int64_t downTimAObtains the down time of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return down time.
 * @since 24
 */
int64_t OH_Input_GetTouchEventDownTime(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Set the tool type of the touch event.
 *
 * @param touchEvent Touch event object.
 * @param toolType Tool type. refer to Input_TouchEventToolType for value range.
 * @return OH_Input_SetTouchEventToolType function result code.
 *         {@link INPUT_SUCCESS} Sets the toolType success.\n
 *         {@link INPUT_PARAMETER_ERROR} The touchEvent is NULL or toolType value not within range.\n
 * @since 24
 */
Input_kResult OH_Input_SetTouchEventToolType(struct Input_TouchEvent* touchEvent, Input_TouchEventToolType toolTypAObtains the tool type of a touch event.
 *
 * @param touchEvent Touch event object.
 * @return toolType.
 * @since 24
 */
Input_TouchEventToolType OH_Input_GetTouchEventToolType(const struct Input_TouchEvent* touchEvent);

/**
 * @brief Cancels event inj$ection and revokes authorization.
 *MultimodalInput.Input.Core
 * @since 12
 */
void OH_Input_CancelInjection();

/**
 * @brief Requests for injection authorization.
 *
 * @param callback - callback used to return the result.
 * @return OH_Input_RequestInjection function result code.
 *         {@link INPUT_SUCCESS} Success.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Service error.\n
 *         {@link INPUT_INJECTION_AUTHORIZING} Authorizing.\n
 *         {@link INPUT_INJECTION_OPERATION_FREQUENT} Too many operations.\n
 *         {@link INPUT_INJECTION_AUTHORIZED} Authorized.\n
 *         {@link INPUT_INJECTION_AUTHORIZED_OTHERS} Authorized to other applications.\n
 * @since 20
 */

Input_Result OH_Input_RequestInjection(Input_InjectAuthorizeCallback callback);

/**
 * @brief Queries the injection authorization status.
 *
 * @param status Injection authorization status. For details, see {@Link Input_InjectionStatus}.
 * @return OH_Input_QueryAuthorizedStatus function result code.
 *         {@link INPUT_SUCCESS} Success.\n
 *         {@link INPUT_PARAMETER_ERROR} The status is NULL\n
 *         {@link INPUT_SERVICE_EXCEPTION} Service error.\n
 * @since 20
 */

Input_Result OH_Input_QueryAuthorizedStatus(Input_InjectionStatus* status);

/**
 * @brief Creates an axis event object.
 *
 * @return I\, a {@Link Input_AxisEvent} object is returned.
 * If the operation fails, null is returned.YMultimodalInput.Input.Core
 * @since 12
 */
Input_AxisEvent* OH_Input_CreateAxisEvent(voiDestroys an axis event object.
 * 
 * @param axisEvent Pointer to the axis event object.
 * @return OH_Input_DestroyAxisEvent function result code.
 *         {@link INPUT_SUCCESS} Destroys axisEvent success.\n
 *         {@link INPUT_PARAMETER_ERROR}The/ axisEvent is NULL or the *axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_DestroyAxisEvent(Input_AxisEvent** axisEvent);

/**
 * @brief Sets the axis event action.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param action Axis event action. The values are defined in {@link InputEvent_AxisAction}.
 * @return OH_Input_SetAxisEventAction function result code.
 *         {@link INPUT_SUCCESS} Sets the axis event action success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventAction(Input_AxisEvent* axisEvent, InputEvent_AxisAction action);

/**
 * @brief Obtains the axis event action.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param action Axis event action. The values are defined in {@link InputEvent_AxisAction}.
 * @return OH_Input_GetAxisEventAction function result code.
 *         {@link INPUT_SUCCESS} Obtains the axis event action success.\n
 *    Q     {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL or the action is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventAction(const Input_AxisEvent* axisEvent, InputEvent_AxisAction *action);

/**
 * @brief Sets the X coordinate of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayX X coordinate of the axis event.
 * @return OH_Input_SetAxisEventDisplayX function result code.
 *         {@link INPUT_SUCCESS} Sets the X coordinate of the axis event success.\n
 *         {@link IN-PUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventDisplayX(Input_AxisEvent* axisEvent, float displayX);

/**
 * @brief Obtains the X coordinate of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayX X coordinate of the axis event.
 * @return OH_Input_GetAxisEventDisplayX function result code.
 *         {@link INPUT_SUCCESS} Obtains the X coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER8_ERROR} The axisEvent is NULL or the displayX is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventDisplayX(const Input_AxisEvent* axisEvent, float* displayX);

/**
 * @brief Sets the Y coordinate of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayY Y coordinate of the axis event.
 * @return OH_Input_SetAxisEventDisplayY function result code.
 *         {@link INPUT_SUCCESS} Sets the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETE!R_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventDisplayY(Input_AxisEvent* axisEvent, float displayY);

/**
 * @brief Obtains the Y coordinate of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayY Y coordinate of the axis event.
 * @return OH_Input_GetAxisEventDisplayY function result code.
 *         {@link INPUT_SUCCESS} Obtains the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER8_ERROR} The axisEvent is NULL or the displayY is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventDisplayY(const Input_AxisEvent* axisEvent, float* displayY);

/**
 * @brief Sets the axis value of the axis type specified by the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param axisType Axis type. The values are defined in {@link InputEvent_AxisType}.
 * @param axisValue Axis value.
 * @return OH_Input_SetAxisEventAxisValue function result code.
 *         {@link INPUT_SUCCESS} Sets the axis value of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\n
 *MultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventAxisValue(Input_AxisEvent* axisEvent,
           N                                 InputEvent_AxisType axisType, double axisValuAObtains the axis value for the specified axis type of the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param axisType Axis type. The values are defined in {@link InputEvent_AxisType}.
 * @param axisValue Axis value.
 * @return OH_Input_GetAxisEventAxisValue function result code.
 *         {@link INPUT_SUCCESS} Obtains the axis value of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL or the axisValue is NULL,9
 *         or the axisType not found in the axisEvent.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventAxisValue(const Input_AxisEvent* axisEvent,
     U                                       InputEvent_AxisType axisType, double* axisValuASets the time when an axis event occurs.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param actionTime Time when an axis event occurs.
 * @return OH_Input_SetAxisEventActionTime function result code.
 *         {@link INPUT_SUCCESS} Sets the time when an axis event occurs success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventActionTime(Input_AxisEvent* axisEvent, int64_t actionTimAObtains the time when an axis event occurs.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param actionTime Time when an axis event occurs.
 * @return OH_Input_GetAxisEventActionTime function result code.
 *         {@link INPUT_SUCCESS} Obtains the time when an axis event occurs success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axi+sEvent is NULL or the actionTime is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventActionTime(const Input_AxisEvent* axisEvent, int64_t* actionTimASets the axis event type.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param axisEventType Axis event type. The values are defined in {@link InputEvent_AxisEventType}.
 * @return OH_Input_SetAxisEventType function result code.
 *         {@link INPUT_SUCCESS} Sets the axis event type success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventType(Input_AxisEvent* axisEvent, InputEvent_AxisEventType axisEventTypAObtains the axis event type.
 *
 * @param axisEvent Axis event object.
 * @param axisEventType Axis event type. The values are defined in {@link InputEvent_AxisEventType}.
 * @return OH_Input_GetAxisEventType function result code.
 *         {@link INPUT_SUCCESS} Obtains the axis event type success.\n
 *         {@Link INPUT_PARAMETER_ERROR} The axisEvent is NULL or the axisEventType is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventType(const Input_AxisEvent* axisEvent, InputEvent_AxisEventType* axisEventTypASets the axis event source type.
 *
 * @param axisEvent Axis event object.
 * @param sourceType Axis event source type. The values are defined in {@link InputEvent_SourceType}.
 * @return OH_Input_SetAxisEventSourceType function result code.
 *         {@link INPUT_SUCCESS} Sets the axis event source type success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_SetAxisEventSourceType(Input_AxisEvent* axisEvent, InputEvent_SourceType sourceTypAObtains the axis event source type.
 *
 * @param axisEvent Axis event object.
 * @param sourceType Axis event source type. The values are defined in {@link InputEvent_SourceType}.
 * @return OH_Input_GetAxisEventSourceType function result code.
 *         {@link INPUT_SUCCESS} Obtains the axis event source type success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is" NULL or the sourceType is NULL.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_GetAxisEventSourceType(const Input_AxisEvent* axisEvent, InputEvent_SourceType* sourceTypASets the windowId of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param windowId The windowId for the axis event.
 * @return OH_Input_SetAxisEventWindowId function result code.
 *         {@link INPUT_SUCCESS} Sets the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 15
 */
Input_Result OH_Input_SetAxisEventWindowId(Input_AxisEvent* axisEvent, int32_t windowIObtains the windowId of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param windowId The windowId for the axis event.
 * @return OH_Input_GetAxisEventWindowId function result code.
 *         {@link INPUT_SUCCESS} Obtains the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent i!s NULL or the displayY is NULL.\nMultimodalInput.Input.Core
 * @since 15
 */
Input_Result OH_Input_GetAxisEventWindowId(const Input_AxisEvent* axisEvent, int32_
t* windowISets the displayId of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayId The displayId for the axis event.
 * @return OH_Input_SetAxisEventDisplayId function result code.
 *         {@link INPUT_SUCCESS} Sets the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\nMultimodalInput.Input.Core
 * @since 15
 */
Input_Result OH_Input_SetAxisEventDisplayId(Input_AxisEvent* axisEvent, int32_t displayIObtains the displayId of an axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param displayId The displayId for the axis event.
 * @return OH_Input_GetAxisEventDisplayId function result code.
 *         {@link INPUT_SUCCESS} Obtains the Y coordinate of the axis event success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEve%nt is NULL or the displayY is NULL.\nMultimodalInput.Input.Core
 * @since 15
 */
Input_Result OH_Input_GetAxisEventDisplayId(const Input_AxisEvent* axisEvent, int32_t* displayISet the global X coordinate of the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param globalX Global X coordinate.
 * @return OH_Input_SetAxisEventGlobalX function result code.
 *        {@link INPUT_SUCCESS} Success.\n
 *        {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\n
 * @since 20
 */
Input_Result OH_Input_SetAxisEventGlobalX(struct Input_AxisEvent* axisEvent, int32_t globalX);

/**
 * @brief Queries the global X coordinate of the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param globalX Global X coordinate.
 * @return OH_Input_GetAxisEventGlobalX function result code.
 *         {@link INPUT_SUCCESS} Success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL or the globalX is NULL.\n
 * @since 20
 */
Input_Result OH_Input_GetAxisEventGlobalX(const Input_AxisEvent* axisEvent, int32_t* globalX);

/**
 * @brief Set the global Y coordinate of the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param globalY Global Y coordinate.
 * @return OH_Input_SetAxisEventGlobalY function result code.
 *         {@link INPUT_SUCCESS} Success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL.\n
 * @since 20
 */
Input_Result OH_Input_SetAxisEventGlobalY(struct Input_AxisEvent* axisEvent, int32_t globalY);

/**
 * @brief Queries the global Y coordinate of the axis event.
 *
 * @param axisEvent Axis event object. For details, see {@Link Input_AxisEvent}.
 * @param globalY Global Y coordinate.
 * @return OH_Input_GetAxisEventGlobalY function result code.
 *         {@link INPUT_SUCCESS} Success.\n
 *         {@link INPUT_PARAMETER_ERROR} The axisEvent is NULL or the globalY is NULL.\n
 * @since 20
 */
Input_Result OH_Input_GetAxisEventGlobalY(const Input_AxisEvent* axisEvent, int32_t* globalY);

/**
 * @brief Adds a listener of key events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback used to receive key events.
 * @return OH_Input_AddKeyEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Adds a listener of key events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the monitor$ because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddKeyEventMonitor(Input_KeyEventCallback callback);

/**
 * @brief Adds a listener for mouse events, including mouse click and movement events,
 * but not scroll wheel events. Scroll wheel events are axis events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback used to receive mouse events.
 * @return OH_Input_AddMouseEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Adds a listener of mouse events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddMouseEventMonitor(Input_MouseEventCallback callback);

/**
 * @brief Add a listener for touch events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback used to receive touch events.
 * @return OH_Input_AddTouchEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Adds a listener of touch events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the monitor bec ause the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddTouchEventMonitor(Input_TouchEventCallback callback);

/**
 * @brief Adds a listener for all types of axis events.
 * The axis event types are defined in {@Link InputEvent_AxisEventType}.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback used to receive axis events.
 * @return OH_Input_AddAxisEventMonitorForAll function result code.
 *         {@link INPUT_SUCCESS} Adds a listener for all types of axis events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddAxisEventMonitorForAll(Input_AxisEventCallback callback);

/**
 * @brief Adds a listener for the specified type of axis events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param axisEventType - Axis event type. The values are defined in {@Link InputEvent_AxisEventType}.
 * @param callback - Callback used to receive the specified type of axis events.
 * @return OH_Input_AddAxisEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Adds a listener for the specified types of axis events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_SERMVICE_EXCEPTION} Failed to add the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddAxisEventMonitor(InputEvent_AxisEventType axisEventType, Input_AxisEventCallback callback);

/**
 * @brief Removes a key event listener.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback for the key event listener.
 * @return OH_Input_RemoveKeyEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Removes a key event listener success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL or has not been added.\n
 *         {@link IVNPUT_SERVICE_EXCEPTION} Fail to remove the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveKeyEventMonitor(Input_KeyEventCallback callback);

/**
 * @brief Removes a mouse event listener.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback for the mouse event listener.
 * @return OH_Input_RemoveMouseEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Removes a mouse event listener success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL or has not been added.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Fail to7 remove the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveMouseEventMonitor(Input_MouseEventCallback callback);

/**
 * @brief Removes a touch event listener.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback for the touch event listener.
 * @return OH_Input_RemoveTouchEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Removes a touch event listener success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL or has not been added.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Fai;l to remove the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveTouchEventMonitor(Input_TouchEventCallback callback);

/**
 * @brief Removes the listener for all types of axis events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param callback - Callback for the listener used to listen for all types of axis events.
 * @return OH_Input_RemoveAxisEventMonitorForAll function result code.
 *         {@link INPUT_SUCCESS} Removes the listener for all types of axis events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL or has not been added.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Fail to remove the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveAxisEventMonitorForAll(Input_AxisEventCallback callback);

/**
 * @brief Removes the listener for the specified type of axis events.
 *
 * @permission ohos.permission.INPUT_MONITORING
 * @param axisEventType - Axis event type. The axis event type is defined in {@Link InputEvent_AxisEventType}.
 * @param callback - Callback for the listener used to listen for the specified type of axis events.
 * @return OH_Input_RemoveAxisEventMonitor function result code.
 *         {@link INPUT_SUCCESS} Removes the listener for the specified type of axis events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL or has not been added.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Fail to remove the monitor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveAxisEventMonitor(InputEvent_AxisEventType axisEventType, Input_AxisEventCallback callback);

/**
 * @brief Adds a key event interceptor. If multiple interceptors are added, only the first one takes effect.
 *
 * @permission ohos.permission.INTERCEPT_INPUT_EVENT
 * @param callback - Callback used to receive key events.
 * @param option - Options for event interception. If **null** is passed, the default value is used.
 * @return OH_Input_AddKeyEventInterceptor function result code.
 *         {@link INPUT_SUCCESS} Adds a key event interceptor success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_REPEAT_INTERCEPTOR} Interceptor repeatedly created for an application.\n
 *         {@link IYNPUT_SERVICE_EXCEPTION} Failed to add the interceptor because the service is exception.\nMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddKeyEventInterceptor(Input_KeyEventCallback callback, Input_InterceptorOptions *option);

/**
 * @brief Adds an interceptor for input events, including mouse, touch, and axis events.
 * If multiple interceptors are added, only the first one takes effect.
 *
 * @permission ohos.permission.INTERCEPT_INPUT_EVENT
 * @param callback - Pointer to the structure of the callback for the input event interceptor.
 * For details, see {@Link Input_InterceptorEventCallback}.
 * @param option - Options for event interception. If **null** is passed, the default value is used.
 * @return OH_Input_AddInputEventInterceptor function result code.
 *         {@link INPUT_SUCCESS} Adds an interceptor for input events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_PARAMETER_ERROR} The callback is NULL.\n
 *         {@link INPUT_REPEAT_INTERCEPTOR} Interceptor repeatedly created for an application.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to add the interceptor because the service is exception.\n
 * @syscap SMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_AddInputEventInterceptor(Input_InterceptorEventCallback *callback,
                                               Input_InterceptorOptions *option);

/**
 * @brief Removes a key event interceptor.
 *
 * @permission ohos.permission.INTERCEPT_INPUT_EVENT
 * @return OH_Input_RemoveKeyEventInterceptor function result code.
 *         {@link INPUT_SUCCESS}Removes a key event interceptor success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {@link INPUT_SERVICE_EXCEPTION} Failed to remove the interceptor because the service is exception.\n_MultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveKeyEventInterceptor(voiRemoves an interceptor for input events, including mouse, touch, and axis events.
 *
 * @permission ohos.permission.INTERCEPT_INPUT_EVENT
 * @return OH_Input_RemoveInputEventInterceptor function result code.
 *         {@link INPUT_SUCCESS} Removes an interceptor for input events success.\n
 *         {@link INPUT_PERMISSION_DENIED} Permission verification failed.\n
 *         {c@link INPUT_SERVICE_EXCEPTION} Failed to remove the interceptor because the service is exception.\naMultimodalInput.Input.Core
 * @since 12
 */
Input_Result OH_Input_RemoveInputEventInterceptor(voiObtains the interval since the last system input event.
 *
 * @param timeInterval Interval, in microseconds.
 * @return OH_Inpu`t_GetIntervalSinceLastInput status code, specifically.
 *         {@Link INPUT_SUCCESS} if the OM\n
 *         {@Link INPUT_SERVICE_EXCEPTION} Failed to get the interval because the service is exception.\n
 *         {@Link 2INPUT_PARAMETER_ERROR} The timeInterval is NULL.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_GetIntervalSinceLastInput(int64_t *timeInterval);

/**
 * @br ief Creates a hot key object.
 *1%n {@Link Input_Hotkey} pointer object% [ Otherwise, a null pointer is
 * returned. The possible cause is memory allocation failure.SMultimodalInput.Input.Core
 * @since 14
 */
Input_Hotkey *OH_Input_CreateHotkey(voi>Destroys a hot key object.
 *
 * @param hotkey Hot key object.MultimodalInput.Input.Core
 * @since 14
 */
void OH_Input_DestroyHotkey(Input_Hotkey **hotkey);

/**
 * @brief Sets a modifier key.
 *
 * @param hotkey Hotkey key object.
 * @param preKeys List of modifier keys.
 * @param size Number of modifier keys. On%e or two modifier keys are supported.MultimodalInput.Input.Core
 * @since 14
 */
void OH_Input_SetPreKeys(Input_Hotkey *hotkey, int32_t *preKeys, int32_t size);

/*HObtains a modifier key.
 *
 * @param hotkey Hotkey key object.
 * @param preKeys List of modifier keys.
 * @param preKeyCount Number of modifier keys.
 * @return OH_Input_GetPreKeys status code, specifically,
 *         {@link INPUT_2_SUCCESS} if the opera;\n
 *         {@link INPUT_PARAMETER_ERROR} The hotkey is NULL or the pressedKeys is NULL or the pressedKeyCount
 *         isR NULL;\n
 *         {@Link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_GetPreKeys(const Input_Hotkey *hotkey, int32_t **preKeys, int32_t *preKeyCount);

/**
 * @brief Sets a modified key.
 *
 * @param hotkey Hotkey key object.
 * @param finalKey Modified key.$ Only one modified key is supported.MultimodalInput.Input.Core
 * @since 14
 */
void OH_Input_SetFinalKey(Input_Hotkey *hotkey, int32_t finalKey);

/**
 * @brief Obtains a modified key.
 *
 * @param hotkey Hotkey key object.
 * @param finalKeyCode Returns the key value of the decorated key\.
 * @return OH_Input_GetFinalKey status code, specifically,
 *         {@link INPUT_SUCCESS ;\n
 *         {@link INPUT_PARAMETER_ERROR} The hotkey is NULL or the finalKeyCode is NULL;\n
 *         {@Link INPUT_DEVICE_N)OT_SUPPORTED} Capability not supported.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_GetFinalKey(const Input_Hotkey *hotkey, int32_t *finalKeyCodeCreates an array of {@Link Input_Hotkey} instances.
 *
 * @param count Number of {@Link Input_Hotkey} instances to be created. CThe count must be the same as the number of
 * system shortcut keys5pointer to an array of {@Link Input_Hotkey} instances%  If the
 * operation fails, a null pointer is returned. The possible cause is memory allocation failure or count is not equal
 "* to the number of system hotkeys.MultimodalInput.Input.Core
 * @since 14
 */
Input_Hotkey **OH_Input_CreateAllSystemHotkeys(int32_t count);

/**
 * @brief Destroys an array of {@link Input_Hotkey} instances and reclaims memory.
 *
 * @param hotkeys Pointer to an array of {@Link Input_Hotkey } instances created by the
 * {@Link OH_Input_CreateAllSystemHotkeys} method.
 * @param count Count of the array to be desEtroyed, which must be the same as the number of system shortcut keys.MultimodalInput.Input.Core
 * @since 14
 */
void OH_Input_DestroyAllSystemHotkeys(Input_Hotkey **hotkeys, int32_t count);

/**
 * @brief Obtains all hot keys supported by the system.
 *
 * @param hotkey Array of {@Link Input_Hotkey} instances.
 * When calling this API for the first time, you can pass NULL to obtain the array length.
 * @param count Number of hot keys supported by the system.
 * @return OH_Input_GetAllSystemHotkeys status code, specifically,
 *         {@link INPUT_SUCCESS} if the operat;\n
 *         {@link INPUT_PARAMETER_ERROR} The hotkey or count is NULL, or the value of count does not match the number
 *         of system shortcut keys supported by the system;
 *         {@Link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_GetAllSystemHotkeys(Input_Hotkey **hotkey, int32_t *count);

/**
 * @brief Specifies whether to report repeated key events.
 *
 * @param hotkey Shortcut key object.
 * @param isRepeat Whether to report repeated key events.
 * The value <b>true</b> means to report repeated key events, and the value <b>false</b> means the opposite.MultimodalInput.Input.Core
 * @since 14
 */
void OH_Input_SetRepeat(Input_Hotkey* hotkey, bool isRepeat);

/**
 * @brief Checks whether to report repeated key events.
 *
 * @param hotkey Shortcut key object.
 * @param isRepeat Whether a key event is repe^ated.
 * @return OH_Input_GetRepeat status code, specifically,
 *         {@link INPUT_SUCCESS ;\n
 *         {@link INPUT_PARAMETER_ERROR} otherwise;\n
 *         {@Link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_GetRepeat(const Input_Hotkey* hotkey, bool *isRepeat);

/**
 * @brief Subscribes to shortcut key events.
 *
 * @param hotkey Shortcut key object.
 * @param callback Callback used to return shortcut key events.
 * @return OH_Input_AddHotkeyMonitor status code, specifically,
 *         {@link INPUT_SUCCESS} if the o;\n
 *         {@link INPUT_PARAMETER_ERROR} if hotkey or callback is NULL;\n
 *         {@Link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported;\n
 *         {@Link INPUT_OCCUPIED_BY_SYSTEM} The hotkey has been used by the system. You can call the {@Link
 *         GetAllSystemHotkeys} interface to query all system shortcut keys.\n
 *         {@Link INPUT_OCCUPIED_BY_OTHER}0 The hotkey has been subscribed to by another.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_AddHotkeyMonitor(const Input_Hotkey* hotkey, Input_HotkeyCallback callback);

/**
 * @brief Unsubscribes from shortcut key events.
 *
 * @param hotkey Shortcut key object.
 * @param callback Callback used to return shortcut key events.
 * @return OH_Input_RemoveHotkeyMonitor status code, specifically,
 *         {@link INPUT_SUCCESS ;\n
 *         {@link INPUT_PARAMETER_ERROR} if hotkey or callback is NULL;\n
 *         {@Link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.\nMultimodalInput.Input.Core
 * @since 14
 */
Input_Result OH_Input_RemoveHotkeyMonitor(const Input_Hotkey* hotkey, Input_HotkeyCallback callback);

/**
 * @brief Obtains the IDs of all input devices.
 *
 * @param deviceIds Array of input device IDs.
 * @param inSize Size of the array of input device IDs.
 * @param outSize Length of the list of input device IDs. The value cannot be greater than the value of inSize.
 * @return OH_Input_GetDeviceIds result code, specifically,
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if deviceIds or outSize is a null pointer or inSize is less than 0.
 * @syscap SysteMultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceIds(int32_t *deviceIds, int32_t inSize, int32_t *outSizAObtains the information about an input device.
 *
 * @param deviceId Device ID.
 * @param deviceInfo Pointer to an {@Link Inputm_DeviceInfo} object.
 * @return OH_Input_GetDevice result code, specifically,
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if the deviceInfo is a null pointer or the deviceId is invalid.
 * You can use the {W@Link OH_Input_GetDeviceIds} interface to query the device IDs supported by the system.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDevice(int32_t deviceId, Input_DeviceInfo **deviceInfo);

f/**
 * @brief Creates a deviceInfo object.
 *
 * @return Pointer to an {@Link Input_DeviceInfo} object%P;
 * a null pointer otherwise (possibly because of a memory allocation failure).[MultimodalInput.Input.Core
 * @since 13
 */
Input_DeviceInfo* OH_Input_CreateDeviceInfo(voiDestroys a deviceInfo object.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @syscapMultimodalInput.Input.Core
 * @since 13
 */
void OH_Input_DestroyDeviceInfo(Input_DeviceInfo **deviceInfo);

/**
 * @brief Obtains the keyboard type of an input device.
 *
 * @param deviceId Device ID.
 * @param keyboardType Pointer to the keyboard type of the input device.
 * @return OH_Input_GetKeyboardType result code, specifically,
 *         {@link INPUT_SUCCESS} if the ope;
 *         {@link INPUT_PARAMETER_ERROR} if the device ID is invalid or keyboardType is a null pointer.
 * @syscap SystemCapaMultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetKeyboardType(int32_t deviceId, int32_t *keyboardType);

/*HObtains the ID of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param id Pointer to the ID of the input device.
 * @return OH_Input_GetDeviceId result code, specifically,
 *         {@link INP
UT_SUCCESS Q;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or id is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceId(Input_DeviceInfo *deviceInfo, int32_t *id);

/**

Obtains the name of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param name Pointer to the name of the input device.
 * @return OH_Input_GetDeviceName result code, specifically,
 *         {@link INPUT_SUCCESS S;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or name is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceName(Input_DeviceInfo *deviceInfo, char **name);

/*HObtains the capabilities of an input device, for example, a touchscreen, touchpad, or keyboard.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param capabilities Pointer to the capabilities of the input device._
 * @return OH_Input_GetCapabilities result code, specifically,
 *         {@link INPUT_SUCCESS [;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or capabilities is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetCapabilities(Input_DeviceInfo *deviceInfo, int32_t *capabilities);

/**
 * @brief Obtains the version information of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param version Pointer to the version information of the input device.
 * @return OH_InpNut_GetDeviceVersion result code, specifically,
 *         {@link INPUT_SUCCESS V;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or version is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceVersion(Input_DeviceInfo *deviceInfo, int32_t *version);

/**
 * @brief Obtains the product information of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param product Pointer to the product information of the input device.
 * @return OH_Input_GJetDeviceProduct result code, specifically,
 *         {@link INPUT_SUCCESS V;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or product is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceProduct(Input_DeviceInfo *deviceInfo, int32_t *product);

/**
 * @brief Obtains the vendor information of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param vendor Pointer to the vendor information of the input device.
 * @return OH_Input_GetDFeviceVendor result code, specifically,
 *         {@link INPUT_SUCCESS U;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or vendor is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceVendor(Input_DeviceInfo *deviceInfo, int32_t *vendor);

/**
 * @brief Obtains the physical address of an input device.
 *
 * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}.
 * @param address Pointer to the physical address of the input device.
 * @return OH_Input_GetDeviceBAddress result code, specifically,
 *         {@link INPUT_SUCCESS V;
 *         {@link INPUT_PARAMETER_ERROR} if deviceInfo or address is a null pointer.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_GetDeviceAddress(Input_DeviceInfo *deviceInfo, char **address);

/**
 * @brief Registers a listener for device hot swap events.
 *
 * @param listener Pointer to an {@Link Input_DeviceListener} object.
 *
 * @return OH_Input_RegisterDeviceListener status code, specifically,
 *         {@link INPUT_SUCCESS} if the oA;\n
 *         {@link INPUT_PARAMETER_ERROR} if listener is NULL;MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_RegisterDeviceListener(Input_DeviceListener* listener);

/**
 * @brief Unregisters the listener for device hot swap events.
 *
 * @param listener Pointer to the listener for device hot swap events. For details, see {@Link Input_DeviceListener}.
 *
 * @return OH_Input_UnregisterDeviceListener status code, specifica$lly,
 *         {@link INPUT_SUCCESS ;\n
 *         {@link INPUT_PARAMETER_ERROR} if listener is NULL or no listener is registered;
 *         {@link INPUT_SERVICE_&EXCEPTION} if the service is abnormal.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_UnregisterDeviceListener(Input_DeviceListener* listener);

/**
 * @brief Unregisters the listener for all device hot swap events.
 *
 * @return OH_Input_UnregisterDeviceListeners status co1de, specifically,
 *         {@link INPUT_SUCCESS J;\n
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.MultimodalInput.Input.Core
 * @since 13
 */
Input_Result OH_Input_UnregisterDeviceListeners();

/**
 * @brief Obtains the function key status.
 *
 * @param keyCode Function key value. Supported function keys include capsLock, NumLock, and ScrollLock.
 * @param state Function key status. The value 0 indicates that the function key is disabled,
 * and the value 1 indicates the oppgosite.
 * @return OH_Input_GetFunctionKeyState function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if keyCode is invalid or state is a null pointer.
 *         {@link INPUT_KEYBOARD_D.EVICE_NOT_EXIST} no keyboard device connected.MultimodalInput.Input.Core
 * @since 15
 */
Input_Result OH_Input_GetFunctionKeyState(int32_t keyCode, int32_t *state);

/**
 *LQueries the maximum number of touch points supported by the current device.
 *      If -1 is returned, the number is unknown.
 *
 * @param count Maximum number of touch points supported.
 * @return OH_Input_QueryMaxTouchPoints function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if count is a null pointer.
 * @since 20
 */
Input_Result OH_Input_QueryMaxTouchPoints(int32_t *count);

/**
 * @brief Get pointer location.
 *
 * @param displayId The displayId for the pointer location.
 * @param displayX The displayX for the pointer location.
 * @param displayY The displayY for the pointer location.
 * @return OH_InpuMt_GetPointerLocation function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null pointer;
 *         {@link INPUT_APP_NOT_FOCUSED} if the app is not the focused app;
 *         {@link INPUT_DEVICE_NO_POINTER} if the device has no pointer;
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 20
 */
Input_Result OH_Input_GetPointerLocation(int32_t *displayId, double M*displayX, double *displayY);

/**
 * @brief Creates a cursor info object.
 *1(n {@link Input_CursorInfo} cursor object%,Otherwise, a null cursor is returned. The possible cause is memory allocation failure.
 * @since 22
 */
struct Input_CursorInfo* OH_Input_CursorInfo_Create();

/**
 * @brief Destroys a cursor info object.
 *
 * @param cursorInfo Cursor info object.
 * @since 22
 */
void OH_Input_CursorInfo_Destroy(Input_CursorInfo** cursorInfo);

/**
 * @brief Obtains the cursor visibility of the cursorInfo.
 *
 * @param cursorInfo Cursor info object.
 * @param visible Visibility of the cursorInfo.
 * @return OH_Input_CLursorInfo_IsVisible function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor;
 * @since 22
 */
Input_Result OH_Input_CursorInfo_IsV1isible(Input_CursorInfo* cursorInfo, bool* visiblAObtains the cursor style of the cursorInfo.
 *
 * @param cursorInfo Cursor info object.
 * @param style Cursor style of the curisorInfo.
 * @return OH_Input_CursorInfo_GetStyle function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor or the cursor is invisible;
 * @since 22
 */
Input_ResWult OH_Input_CursorInfo_GetStyle(Input_CursorInfo* cursorInfo, Input_PointerStyle* stylAObtains the cursor sizeLevel of the cursorInfo.
 *
 * @param cursorInfo Cursor info object.
 * @param sizeLevel Cursor size level of the cursorInfo.
 * @return OH_Input_CursorInfo_GetSizeLevel function api result code
 *         {@link INPUT_SUCCESS} if ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor or the cursor is invisible;
 * @since 22
 */
Input_Result OH_Input_CursorInfo_GetSizeLevel(Input_CursorInfo* cursorInfo, int32_t* sizeLevel);

/**
 * @brief Obtains the cursor color of the cursorInfo represented as a 32-bit ARGB integer.
 *
 * @param cursorInfo Cursor info object.
 * @param color Cursor color of the cursorInfo represented as a 32-bit ARGB integer.
 * @return OH_Input_CursorInfo_GetColor function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor or the cursor is invisible;
 * @since 22
 */
Input_Result OH_Input_CursorInfo_GetColor(Input_CursorInfo* cursorInfo, uint32_t* color);

/**
 * @brief Get cursor info of the mouseEvent.
 *
 * @param mouseEvent The received mouseEvent.
 * @param cursorInfo The object to receive the cursor info.
 * @return OH_VInput_GetMouseEventCursorInfo function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor;
 * @since 22
 */
Input_Result OH_Input_GetMouseEventCQursorInfo(const struct Input_MouseEvent* mouseEvent, Input_CursorInfo* cursorInfo#cursor information. If the pixelmap parameter is specified, and the cursor is user-defined type
 * currently, the cursor's pixelmap will be returned along with it.
 *
 * @param cursorInfo The object to receive the cursor info.
 * @param pixelmap The object to receive the cursor pixelmap, null value will be ignored.
 * @return OH_Input_GetCursorInfo function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null cursor;
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 22
 */
Input_Result OH_Input_GetCursorInfo(Input_CursorInfo* cursorInfo, OH_PixelmapNative** pixelmap);

/**
 * @brief Sets the visible status of the mouse pointer.
 *
 * @param visible Whether the mouse pointer is visible. The value true indicates that the pointer
 * @return OH_Input_SetPointerVisible function api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_DEVIC(is not supported.
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 22
 */
Input_Result OH_Input_SetPointerVisible(bool visiblAObtains the mouse pointer style.
 * This API only supports getting the mouse pointer style of window within the current application process.
 *
 * @param windowId Window ID. The value is an integer greater than or equal to -1.
 * @param pointerStyle Pointer to the pointerStyle.
 * @return OH_Input_GetPointerStyle function api result code
 *         {@link INPUT_SUCCESS} if the o;
 *         {@link INPUT_PARAMETER_ERROR} if parameter is a null pointer or window ID is invalid;
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 22
 */
Input_Result OH_Input_GetPointerStyle(int32_t windowId, int32_t *p
ointerStylASets the mouse pointer style.
 * This API only supports setting the mouse pointer style of window within the current application process.
 *
 * @param windowId Window ID. The value is an integer greater than or equal to 0.
 * @param pointerStyle Pointer style.The value should be a member of the {@link Input_PointerStyle} enumeration.
 * @return OH_Input_SetPointerStyle function /api result code
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if window ID is invalid or pointerStyle is invalid;
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 22
 */
Input_Result OH_Input_SetPointerStyle(int32_t windowId, int32_t pointerStylACreates a CustomCursor object.
 *
 * @param pixelMap Pointer to a {@link OH_PixelmapNative}  object.
 * @param anchorX Horizont\al coordinate of the cursor focus.
 * @param anchorY Vertical coordinate of the cursor focus+n {@link Input_CustomCursor} pointer object%$returns a null pointer otherwise.
 * @since 22
 */
Input_CustomCursor* OH_Input_CustomCursor_Create(OH_PixelmapNative* pixelMap, int32_t anchorX, int32_t anchorY);

/**
 * @brief Destroys a CustomCursor object.
 *
 * @param customCursor Pointer to a pointer to an {@link Input_CustomCursor} object.
 * @since 22
 */
void OH_Input_CustomCursor_Destroy(Input_CustomCursor** customCursor);

/**
 * @brief Obtains the pixelMap of the CustomCursor.
 *
 * @param customCursor Pointer to an {@link Input_CustomCursor} object.
 * @param pixelMap Pointer to a {@link OH_PixelmapNative}  object.
 * @return OH_Input_CustomCursor_GetPixelMap func1tion result code.
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} The customCursor is NULL.
 * @since 22
 */
Input_Result OH_Input_CustomCursor_GetPixelMap(Input_CustomCursor* customCursor, OH_PixelmapNative** pixelMap);

/**
 * @brief Obtains the anchor of the CustomCursor.
 *
 * @param customCursor Pointer to an {@link Input_CustomCursor} object.
 * @param anchorX Pointer to horizontal coordinate of the cursor focus.
 * @param anchorY Pointer to vertical coordinate of the cursor focus.
 * @return OH_Input_CustomCursor_GetAn:chor function result code.
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} The customCursor is NULL.
 * @since 22
 */
Input_Result OH_Input_CustomCursor_GetAnchor(Input_CustomCursor* customCursor, int32_t* anchorX, int32_t* anchorY);

/**
 * @brief Creates a CursorConfig object.
 *
 * d@param followSystem Pointer of the config whether to adjust the cursor size based on system settings1+n {@link Input_CursorConfig} pointer object%$returns a null pointer otherwise.
 * @since 22
 */
Input_CursorConfig* OH_Input_CursorConfig_Create(bool followSystem);

/**
 * @brief Destroys a CursorConfig object.
 *
 * @param cursorConfig Pointer to a pointer to an {@link cursorConfig} object.
 * @since 22
 */
void OH_Input_CursorConfig_Destroy(Input_CursorConfig** cursorConfig);

/**
 * @brief Obtains the followSystem of the cursorConfig.
 *
 * @param cursorConfig Pointer to an {@link Input_CursorConfig} object.
 * @param followSystem Pointer of the config whether to adjust the cursor size based on system settings
 * @return OH_Input_CursorConfig_IsFollowSystem function r+esult code.
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} The cursorOptions or followSystem the is NULL.
 * @since 22
 */
Input_Result OH_Input_CursorConfig_IsFollowSystem(Input_CursorConfig *cursorConfig, bool *followSystem);

/**
 * @brief Sets the custom cursor style.
 * This API only supports setting the custom cursor style of window within the current application process.
 *
 * @param windowId Window ID. The value is an integer greater than or equal to 0.
 * @param customCursor Pointer to an {@link Input_CustomCursor} object.
 * @param cursorConfig Pointer to an {@link cursorConfig} object.
 * @return OH_Input_SetCustomCursor function re*sult code.
 *         {@link INPUT_SUCCESS ;
 *         {@link INPUT_PARAMETER_ERROR} if window ID is abnormal or customCursor is invalid;
 *         {@link INPUT_INVALID_WINDOWID} if window ID is invaild.
 *         {@link INPUT_DEVICE_NOT_SUPPORTED} Capability not supported.
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 22
 */
Input_Result OH_Input_SetCustomCursor(int32_t windowId, Input_CustomCursor* customCursor,
                                      Input_CursorConfig* cursorConfig);

/**
 * @brief Bind the stylus to the display.
 *
 * @permission ohos.permission.INPUT_DEVICE_CONFIGURATOR
 * @param inputDeviceId Input device id.
 * @param displayId Display id.
 * @return OH_Input_BindInputDeviceToDisplay function api result code.
 *         {@link INPUT_SUCCESS-{@link INPUT_PERMISSION_DENIED} Permission verification failed.
 *         {@link INPUT_PARAMETER_ERROR} The input device does not exist or
 *         the display does not exist or the input device is not a stylus.
 *         {@link INPUT_SERVICE_EXCEPTION} if the service is exception.
 * @since 24
 */
Input_Result OH_Input_BindInputDeviceToDisplay(int32_t inputDeviceId, int32_t displayId);2+/** @} */

#endif /* OH_INPUT_MANAGER_H */
fTaxNw: Starting from API version 26.0.0,
 * callers that hold the ohos.permission.CONTROL_DEVICE permission can also use this interface directlyK$CONTROL_DEVICEB:6Z#< Starting from API version 26.0.0,
 * callers that hold the ohos.permission.CONTROL_DEVICE permission can also use this interface directlyK$CONTROL_DEVICEbp\ z\
{?YZ Starting from API version 26.0.0,
 * callers that hold the ohos.permission.CONTROL_DEVICE permission can also use this interface directlyK$CONTROL_DEVICEbp\E Starting from API version 26.0.0,
 * callers that hold the ohos.permission.CONTROL_DEVICE permission can also use this interface directlyK$CONTROL_DEVICEz㓲Z#| Starting from API version 26.0.0,
 * callers that hold the ohos.permission.CONTROL_DEVICE permission can also use this interface directlyK$CONTROL_DEVICEz \>|
~#d Starting from API version 26.0.0, once the
 * ohos.permission.CONTROL_DEVICE permission is granted,ޡ is no longer required.
 * The behavior of this interface is independent of the ohos.permission.CONTROL_DEVICE permission.
 *
 	L Starting from API version 26.0.0, this interface returns only the
 * dialog@:. It does not indicate whether the caller has injection capability due to holding the
 * ohos.permission.CONTROL_DEVICE permission~й|нxYmOH_1_ 
IV']{'\\%~6:plԪofwm h;ϼ<NM8K\ō} _9EV\@	v:hӖ> .ApR{ӂT"i{wDIKChGBA("S"?Y`1¯18NQ㳓57-.q):YVmfm'rщ2zIv+	s`)*9$Br|Rx%*	INbLUVWX{=M	O/FWSco8&0hO!~;o>p/$PMA6zk*UIѴxEreAR(BLG"N4<eALY\
"ᔏQfVWm8UqtRC2rfMarFD]uDCʰL,2K&stǜم3iWUbV
](=W>Ka+͗gHG?d,Tx%B{އ?<_!3>fHi)}NȖE1RKRg3?2Ek6J[l%Λx<%@xJy	cdOC#"]J_'ٴ	`` (oYU[pO4~_wh`țIX(J&&F|L4bI%"8fKa78:I4ˍya(l*V IRDR	0hh%A|٧Q7C]7xZ %q?BPxmV-R0_q 8%O1.iEQEDQh j($(lLD((ՒKMκ%QFV7<|1!J[bevgQBt7u-3r4X<nR="r"PfEVFV!_k]]Hӹ*@y-	(a"fجxfq:yUu5
\.SamZI'+p^f
̸|[K0E-VgkVo*xopYvYvӳl4yxOǤCN8}Y҆hb_71F)Gu,pɺsv'dۃ0(cZ~s,M	2<HLcwsZEԤBX'fۛ϶7m'ͻ	Zq![J?+o;ǜ.NK(	w?@=Sx Xbzae&Tˇ!i.dYK+f23Xsl%E->!lۆ~hQw-pZmQ8W<Ʒ`Q_4{iq+S6quGIi~hoKDdd)eK~u-օ7ƷSC>%gϹێw,f#`%b[\̙A7Нra4<_mc!Ol"ݡ	Ems/:g7n<vbt]Wh&>Ag!qlZz{ܺ~_,]6Oq~U`69z-A%$KD]]k~0)YbW}އ*"v#(oA3|I~țn<)ӢͤCXmłn8*?wrM6VfR7z:? 7y'O+\p#=ebӒqn)~k7
&~ }okgvهe;oEsNN	-{5q;3x=oAe;$)NP(@ 
 REh(6=,!$TWKA׬4;Ｗ._Z7_\?>YPmD(Zm	2=wA %pUlZm漿2:A	&ִcLXૐU`{8[)%[&!tNoIaa_w;QTpج	t	LJ# 룡)ύ螥RjĀöEe?:XjKԤ,lu
i2mS^x%
EdM:?Xϙ~j.:qp_X#pC7vuKq V^C.TI\Z!~_0˥3Gs@(N]ų$_w	k{F^j̂\(TVݱ#6!i:$/6GIǦzW HM=x;(Y`F6&^Tļɛfoc`lƪ[\P_^Y TX3 dF6g6Ɂl0nNz K@@äĜT3&ϓ ,;x6xOK@/k.FTR(Z-amu[8#KDtD3DnuS5&X+
3?_z\z.ή$Ia}̮6įAe[L
*qc3Dlol;C|c(0
D)47waX50k-&R	UA{ 8;5jYD+&%;rŉ`~iǰlrh`
$`";U9ɉkRW5E*\S+'Biɛr;uhXaKQE8>1"RIdW!̀H܇1 lA0NHx(yYrvLE-~{ngqzlfr*̗6r*7jG:o|O:&5xJ@
^$A4hIj(,fcݰzCH=Bģ;i ^\jБHfl[K']),B1DWTFd@!2g(6`وY04}Z&²`x Xt0"H,^%tOYNs]K?K[+>M_V|SITf0RfVqh

bH_; [~ƞYGCT!!4qbǻ0;N;3m^Ysj,B(ϙn|08K{=ǵb[2Ә~xh>9Kg#4+|.& m	vx}gC!ki)8)d*$畤V(+(VdL`UvqwQU043 yX zx* /*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provides the definition of the C interface for the modular object extension ability.
 *
 * @since 26.0.0
 */

/**
 * @file modular_object_extension_ability.h
 *
 * @brief Declares the modular object extension ability.
 *
 * @library libmodular_object_extension.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_ABILITY_H
#define ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_ABILITY_H

#include "AbilityKit/ability_base/want.h"
#include "ability_runtime_common.h"
#include "extension_ability.h"
#include "IPCKit/ipc_cparcel.h"
#include "modular_object_extension_context.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines the struct for OH_AbilityRuntime_ModObjExtensionInstance.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectExtensionInstance OH_AbilityRuntime_ModObjExtensionInstance;

/**
 * @brief Defines the pointer to OH_AbilityRuntime_ModObjExtensionInstance.
 *
 * @since 26.0.0
 */
typedef OH_AbilityRuntime_ModObjExtensionInstance* OH_AbilityRuntime_ModObjExtensionInstanceHandle;

/**
 * @brief Callback invoked when a modular object extension is started for initialization.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param want Indicates the want of created modular object extension.
 * For details, see {@link AbilityBase_Want}.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ModObjExtensionAbility_OnCreateFunc)(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance, AbilityBase_Want *want);

/**
 * @brief Callback invoked before a modular object extension is destroyed.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ModObjExtensionAbility_OnDestroyFunc)(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance);

/**
 * @brief Callback invoked when a modular object extension is connected to an ability.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param want Indicates the want of created modular object extension.
 *
 * @since 26.0.0
 */
typedef OHIPCRemoteStub* (*OH_AbilityRuntime_ModObjExtensionAbility_OnConnectFunc)(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance, AbilityBase_Want *want);

/**
 * @brief Callback invoked when all abilities connected to a modular object extension are
 * disconnected.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ModObjExtensionAbility_OnDisconnectFunc)(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance);

/**
 * @brief Registers the function {@link OH_AbilityRuntime_ModObjExtensionAbility_OnCreateFunc} with
 * {@link OH_AbilityRuntime_ModObjExtensionInstance}.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param onCreateFunc Represents the onCreate callback function.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_RegisterOnCreateFunc(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance,
    OH_AbilityRuntime_ModObjExtensionAbility_OnCreateFunc onCreateFunc);

/**
 * @brief Registers the function {@link OH_AbilityRuntime_ModObjExtensionAbility_OnDestroyFunc} with
 * {@link OH_AbilityRuntime_ModObjExtensionInstance}.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param onDestroyFunc Represents the onDestroy callback function.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_RegisterOnDestroyFunc(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance,
    OH_AbilityRuntime_ModObjExtensionAbility_OnDestroyFunc onDestroyFunc);

/**
 * @brief Registers the function {@link OH_AbilityRuntime_ModObjExtensionAbility_OnConnectFunc} with
 * {@link OH_AbilityRuntime_ModObjExtensionInstance}.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param onConnectFunc Represents the onConnect callback function.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_RegisterOnConnectFunc(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance,
    OH_AbilityRuntime_ModObjExtensionAbility_OnConnectFunc onConnectFunc);

/**
 * @brief Registers the function {@link OH_AbilityRuntime_ModObjExtensionAbility_OnDisconnectFunc} with
 * {@link OH_AbilityRuntime_ModObjExtensionInstance}.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param onDisconnectFunc Represents the onDisconnect callback function.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_RegisterOnDisconnectFunc(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance,
    OH_AbilityRuntime_ModObjExtensionAbility_OnDisconnectFunc onDisconnectFunc);


/**
 * @brief Gets the extension context from the modular object extension instance.
 *
 * @param instance Points to an {@link OH_AbilityRuntime_ModObjExtensionInstance} instance.
 * @param context Represents a pointer to the modular object extension ability context.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_GetContextFromInstance(
    OH_AbilityRuntime_ModObjExtensionInstanceHandle instance, OH_AbilityRuntime_ModObjExtensionContextHandle* context);

/**
 * @brief Gets the modular object extension instance from a base extension instance.
 *
 * @param baseExtensionInstance Represents a pointer to a {@link
 * AbilityRuntime_ExtensionInstance} base extension instance.
 * @param modObjExtensionInstance Represents a pointer to an {@link
 * OH_AbilityRuntime_ModObjExtensionInstanceHandle} instance that is an output parameter.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE} if the ability instance is not
 *         a modular object extension.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ModObjExtensionAbility_GetInstanceFromBase(
    AbilityRuntime_ExtensionInstanceHandle baseExtensionInstance,
    OH_AbilityRuntime_ModObjExtensionInstanceHandle* modObjExtensionInstance);

#ifdef __cplusplus
}
#endif

/** @} */
#endif // ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_ABILITY_HQ8x[aC3bRfNfIe|Qi^IfnYd z]`x)@Aa acontext1'context16contextnCONTEXT74CONTEXTr\context(remote_object.h"
#include "start_options-Ca pointer typeO%1"/Context*";

/**
 * @brief Gets the baseu+context.
 * Represents a pointer toPUparam baseContext Represents a pointer to a {@link AbilityRuntime_ContextHandle} baseE)_GetBaseContext	' m%, AbilityRuntime_ContextHandle* baseCVStarts the self UIAbility.
 *
 * @permission ohos.permission.NDK_START_SELF_UI_ABILITY+P;param want The arguments passed to start the self UIAbility2c3-if the call is successful.
 * ,>ERMISSION_DENIED} if the caller has no correct permission.
 * :)if the arguments provided is invalid.
 * -HT_SUPPORTED} if the device does not support starting self UIAbility.
 * .7SUCH_ABILITY} if the target ability does not exist.
 * +k'type is incorrect.
 * +?CROWDTEST_EXPIRED} if the crowdtesting application expires.
 * +AWUKONG_MODE} if the ability cannot be started in Wukong mode.
 * +)CONTROLLED} if the app is controlled.
 * +4EDM_CONTROLLED} if the app is controlled by EDM.
 * +DCROSS_APP} if the caller tries to start a different application.
 * +*INTERNAL} if an internal error occurs.
 * -4T_TOP_ABILITY} if the caller is not top ability.
 * +]MULTI_APP_NOT_SUPPORTED} if the app clone or multi-instance is
            not supported.
 * +AINVALID_APP_INSTANCE_KEY} if the app instance key is invalid.
 * +ZUPPER_LIMIT_REACHED} if the number of app instances has reached
            the limit.
 * &EMULTI_INSTANCE_NOT_SUPPORTED} if multi-instance is not supported.
 * +UAPP_INSTANCE_KEY_NOT_SUPPORTED} if the APP_INSTANCE_KEY cannot
            be specifiaS_StartSelfUIAbility	' context, const)Starts the self UIAbility with start options.
 *
 * @permission ohos.permission.NDK_START_SELF_UI_ABILITY
 * @param context RepP;param want The arguments passed to start the self UIAbility2D @param options The start options passed to start the self UIAbility$Runtime_StartOptions}_7-if the call is successful.
 * ,>ERMISSION_DENIED} if the caller has no correct permission.
 * :*if the arguments provided are invalid.
 * -HT_SUPPORTED} if the device does not support starting self UIAbility.
 * .7SUCH_ABILITY} if the target ability does not exist.
 * +k'type is incorrect.
 * +?CROWDTEST_EXPIRED} if the crowdtesting application expires.
 * +AWUKONG_MODE} if the ability cannot be started in Wukong mode.
 * +)CONTROLLED} if the app is controlled.
 * +4EDM_CONTROLLED} if the app is controlled by EDM.
 * +DCROSS_APP} if the caller tries to start a different application.
 * +*INTERNAL} if an internal error occurs.
 * -=T_TOP_ABILITY} if the caller is not a foreground process.
 * &CVISIBILITY_SETTING_DISABLED} if setting visibility is disabled.
 * +]MULTI_APP_NOT_SUPPORTED} if the app clone or multi-instance is
            not supported.
 * +AINVALID_APP_INSTANCE_KEY} if the app instance key is invalid.
 * +ZUPPER_LIMIT_REACHED} if the number of app instances has reached
            the limit.
 * &EMULTI_INSTANCE_NOT_SUPPORTED} if multi-instance is not supported.
 * +UAPP_INSTANCE_KEY_NOT_SUPPORTED} if the APP_INSTANCE_KEY cannot
            be specifiaS#_StartSelfUIAbilityWithStartOptions	' context, const AbilityBase_Want *want,
    const AbilityRuntime_StartOptions *options);

/**
 * @brief Destroys the modular ob+.
 *+PF-if the call is successful.
 * :*if the arguments provided are invalid.
 * +AWUKONG_MODE} if the ability cannot be started in Wukong mode.
 * +5CONTEXT_NOT_EXIST} if the context does not exist.
 * +%INTERNAL} if an internal error occursQQ_TerminateSelf	'
 context);0G	CONTEXT_Hv1(axJ@iԍڊ74G]XjEtR -h2M'f0H2WW\vGGpRp.3 >譠cdw'>̦)MϬG!*h|@`%	¤;-%p04r>,Xlb;cAˁ'\_KCi{"&dWUp9hkQE1MF"y>E*L"=M
INlI
GF=AD_i<W'{:kIɡƞKeӁBM]~0	oY4/"&qAkBlweR6f#`	f9e?7&90 &cF2*mku?]Jr-kgx/.0AlM͚b 2e9x/_`>3dOƛYX P͘KAKkAVɛ{ xO0dg/zȢ"Ɛ=&	1mi_9l~ڗ}ޫo$ʢ-dh]^E?( E&EªLe
z~bvY4{%`!ZqR&rx a.S0cH;-Rl[-q{
+|!b/i/g)Эah9sa0##;^ 0:svщZs atզ*Tctݵ:D˭SHh:j&9mhxAҼEjӷI]q-vlnV4^k>P%J **M3s( BJ2gI:%giqfVIng;N5osہqe8"hn:]tHXOT5yPC*> /'Xx[PktNFY&ⴃ졬|̑x,x1܆p*[(|k^ڹ.P
ecl}#%S*epLMnA(땠#'1Su&!;a"a'-amDbD`b, gx\s8_>T}<]q̅p
lˇ)wSInISZR+_.4.!U>7BbFxC|+gqI Q0Rbχo%
=$%4B7'pY.?ĺhC$Eb_}gDȧ8$^oI㔽p1><݃12"/V,vx\Ma^P5l{l4B($b jmML02ʄ&$#
tmnf	Ym"*̚KF}n[X'O31gzR,K1Mii4G3mk
a1	C b6РqM-DJcZ̽%FKIP5IVS0`݄dM2/5p/.AF	cdN!]inpqo'/4ര2¬Jqsof'?EWnєt<iVCֆZE/HT ]a/2 B2tķ{R ~|/F6nV9'!vfL|rUnʥ#Z Y.|͇PUqtjZ; ]D~-0Vn]׏<e_5@Kw8
8żj!(uYleӠp2昙Z3-[	 y?ޒ0DqB}\tRf~?䯼Ks-!Of|2e^8(>ppK g=X(_$EޜElpDK1|ֳ;(Ɲ::yBv/6GtҭuK^ Ɋ_IVdl+]23Z?l-lN|R-p
EwDH?H!-! BX\wb\CKU@"j 8lKt{"3S~xM? |M[2G=qBs^R9gQEg/,뜉j=(ïz׎M4ڃ
b	rDLX֮Y%2g_𞓼Jv%	K3OXNEw\B{2WTWZ*U`@ytd8㥳ڧlj<HY.=:K}0dAsHsC>U4@ۙ1;ש~%8sڄXc;+6*.~3͜kt[6Qc5Cgy'v_=Sci?*F1SNn N?11k)VAA'*'Ʊ<hx>8lGbS~Hd)uUTyX2RNo1XM)?g)C<qHهlמSއ+`xx>EL+yZH;3ނ%BiqnyשbiFy	BD&`4i
Zz~#?l'#n~~$+̣!¡M;~Z`s^k>H^}#峝vtɂici3P]e84gh؅*d+QuvF_@tэD/$BMhǼWW3]]+oC 'x	$&)SOq&M=z|"ߏIqXu

%FAbؖ,ȠBbJv<]2ahȰ!x$d CpǚٓkB$K~kW]Bɲm-a=f:Ep,Tiئ0vp܎d+1U}EQ guMLǞ5>YA+<E"_؁SLjָЊLگ@!{lWb)y
0<Lu͸G؝gb%AA	t,O\RW`Ud5ˠ'J7ӏ50M|W|$PnC6iMaw0:CP&u7UU~#U[ٰ҉d'к'kP^y>Q,\i@P*jlw9{JmᕠRxѧ8H!V*#e쳅.xZe1ZE$LrUHuZi*%!Z,C߇/tϝf4NuR5LlȺӌS4^ɗKlY2G|fd-ju..>z VTA5u[IлT]|Bj*uE<,~f]b `y:߻sprQwh[MԺÁ2vE/:XT>vLaoL7}~$p彂TW4k+yScz,MdhT*bW^Jeq{XDg_\e:>LwNgKQ7EXYy~@M4+L 
wW5clHi@OTv\Y9]=6+:/CQa9	E!e+2[4+j- op:tby
!Q*~~.ٖ&/}CuL<VpqQE/\97XzB)F	#]5'd9rK"Ogʮ_wlYԣ<ֿ;_O14ĖG݋/GB˚D49PefͣéQ2niB5թ=x&tY!){FQKTmZU;ٞY'(gP(VP\F$0_*Rಖ_?g,MZӖ@yPZy${d·X'g֟glfa皍Rj[mdfx{耇#D- dN ju
`c,ڵ5ڧl
.z
K~4$<Cܨg
@6~}0L1x8qnw6ۨ,(/IM.IMfYȪYDKAkNɯ]N6`U aXIx8qne9&Osd'Y	N"̥JF ˨xXO[Unͩ{9uSdx'蘸MMuH4M#j[(*+UlJBLEcv9lv^01Y?{:)zatQ(±>#5v,^KdR]u/i&"4b+8MS88ũ^,ttI莓rNi'!fM!_&hOXmW6;<W'm?}CФ?n;!>=	lRbDw%L	uSe27%4ݧmUX>UH 3V]F$nJǋ>`~N>c48n%K5؈El|:̧/9ש<qau;L?8C"8+KDlPi=F#gPiG4ݐ2t [
&h6@j-iC+׷5V[/c.aA8v;t?oߌ~<%)d.	㢑^]ϸl/d`xb3vGs7G?km;1PZ9,F ><7Em3fMF|Y#_
YRʯ;W8@NIsѾyg΀F*vR6.(^= t*AƬ$ʁ]0xhV&$p@Rc4oy?߱-1 CJٝ #&e]&b09[wCH5 eUBӌC!zmt
6:eOzD\[wRF}^avJ@T"H<Q{|3:YȡagNv
K3طL9b=!lcrϋOjb?|ݷ\dp8uC$ZW#3=/:D_=nA6m0l$_|֠@JcSR{\sbB!/Ix?j,8m5̙lh
g4пGfelȭB>Uw=y)P ؤ>sR8YOSZЎ@Sim;~]I'/AFsPA#+i5KIde[*olSנ."݃OW1,Xg˕;/5wa]Rd XG++mo@ΪԉkMҢkӏ$ɔ\M8V`ۥ.x8.po_	d$T_CG،>ZY®}]߰(g%yTK#ˏlPc|{
qC u&W+~LxǙQF G:JԺt0|[
$$ddIyfuU7B4WT8uIp]\	DӞEB6線9Wc8쑗^moէdV	ԁRVM%fޓELK+L*l34&ԟ9c36!6)9H4\ibx!NҼu@%Gm$cp_'l?pҜMeRbi~@+6;ԫI9|;|l낣K:b1#M,ߵy酅NmW֚{ASJO.Y'MhL}G`FU3'!&yr)sMZOpJ:<{CE2n4}Eąd5'>2xX]LUUj˶, [_
l-PC8;swwٹܻlFIi4DR5&>ilF/>h_y0MMZϹ3t4{ιsy|s~^ѿ-[diw)4Ĭ,c0ew46yi
BПZr)(X,TVJIj&9ݚ%ۭɬ砃[6c.p>Y*[j4155Bs=pr,"l⺔̛)wW+W+#$@kt!#O/@8rO_84'#3$)9	Bx{,g4L`\	RtW%ҙ	vŎEr4햃<膴f{Jj+j=_)+<Gd5єm?/A$X.9LZI[#yt,\[+_L"QFW~;
Zҕ=n]L$o	+)E嚝-jiۦ<mk=In$+Q^#eԢ
;L2{~ë6lH\h\u5Bcb7+)R:mUiQ978R55EڲmX=WUxz0l#ҤCj R9r@S!7wDx\o@=*J>)ѥrY2Ǆ޻ɵ{s5u,fuzfh*}(ln6o׍>EC3s˴rhf[4WoY UZ-C~DgmTdJbh9129,#`Tj11pδtư^<+U	7E\'{Dֆ+htE~l|EfjzX0?uU5@IGkdbrr,?fH𵶧N	!?"@4DK܂-HHL[=-{rGv+=L\P9u-Hp ǴloqYg݃$svÍ6լ,8>Iq]KQ.>JuUYg]Ր:^s4aзL<<}/	Âۚ8"nH#DX!ޤL1!K^ͅ2,Ba^00yi3-|&Tl>QBQy}fC"]%tA+bwP^"-ORNp:@CT|{[-㞺\c+"Җ<}r0=9g4[ra1ˆ=5W5T+QQWa	Q[}|~|Oj$qva%BݦC~S+ O<֝ %|+`m&IcqL^N *!5R$Od-#sJ$!9Ì"色i7w<VS	ulwj}K<Z	#bȦj71%cG3`cRkBxxcW=nN!|KKuvO~0׷d3~+Nsz~#&Ch#NLj틼1x~Z%uSR z
~T+&sK}g,9?9HPܹp w~4A^?ܰdzԍC-9^ЙU>I>-]1q}`Qp>gɔ.Rkyh-S/eIތXQe8_÷1&"_@O&'.>噴u+2\~ fζ1x씍w	*提供系统定义的公共事件常量。?"H表示设备正在关闭并将继续直至最终关闭的公共事件。;2N表示电池充电状态、电平和其他信息发生变化的公共事件。<?'表示电池电量低的公共事件。<03表示电池退出低电平状态的公共事件。<M23表示设备连接到外部电源的公共事件。;@3表示设备与外部电源断开的公共事件。;@E表示设备屏幕关闭且设备处于睡眠状态的公共事件。;	6E表示设备屏幕打开且设备处于交互状态的公共事件。;
4?表示设备即将进入休眠模式的公共事件的动作。<J?9表示设备退出休眠模式的公共事件的动作。y'表示设备热状态的公共事件。;L*表示系统时间更改的公共事件。;4*表示设置系统时间的公共事件。;9:*表示系统时区更改的公共事件。;B6表示设备上已安装新应用包的公共事件。;4`表示已从设备卸载已安装的应用程序，但应用程序数据保留的公共事件。;
6c表示已从设备中卸载已安装的捆绑包，但应用程序数据仍保留的公共事件。y表示已从设备中完全卸载已安装的应用程序（包括应用程序数据和代码）的公共事件。
 *
 * @since.LZ表示应用包已更改的公共事件（例如，包中的组件已启用或禁用）。;12<N表示用户重启应用包并杀死其所有进程的普通事件的动作。;D<表示用户清除应用包数据的公共事件的动作。;69表示用户清除应用包缓存数据的公共事件。;7*表示应用包已挂起的公共事件。;Q?*表示应用包被挂起的公共事件。;?*表示应用包未挂起的公共事件。;N3表示设备区域设置已更改的公共事件。;>0表示设备存储空间不足的公共事件。;cN]表示设备重启后解锁时，当前用户的凭据加密存储已解锁的公共事件。;<3表示分布式账号登出成功的公共事件。->KT8表示分布式账号token令牌无效的公共事件。->+f-表示分布式账号注销的公共事件。->K*?5表示Wi-Fi状态公共事件，如启用和禁用。}A表示Wi-Fi接入点已被扫描并证明可用的公共事件。9表示Wi-Fi信号强度（RSSI）改变的公共事件。@ ;5表示Wi-Fi连接状态发生改变的公共事件。A!{>表示Wi-Fi热点状态的公共事件，如启用或禁用。@o"A>表示客户端加入当前设备Wi-Fi热点的公共事件。@L#BM表示客户端已断开与当前设备Wi-Fi热点的连接的公共事件。@5$DD表示MPLink（增强Wi-Fi功能）状态已更改的公共事件。@%M3表示Wi-Fi P2P连接状态改变的公共事件。A%I9表示Wi-Fi P2P状态公共事件，如启用和禁用。A&G6表示Wi-Fi P2P对等体状态变化的公共事件。A'O3表示Wi-Fi P2P发现状态变化的公共事件。A(j9表示Wi-Fi P2P当前设备状态变化的公共事件。A)c6表示Wi-Fi P2P群组信息已更改的公共事件。As*T0表示设备NFC状态已更改的公共事件。;,]+W0表示检测到NFC场强进入的公共事件。;,;,K0表示检测到NFC场强离开的公共事件。;,b3表示系统停止为电池充电的公共事件。-s3表示系统开始为电池充电的公共事件。;.29表示系统待机空闲模式已更改的公共事件。-<H/Q6表示设备进入充电空闲模式的公共事件。;0R0表示系统节能模式更改的公共事件。;0J3表示USB设备状态发生变化的公共事件。;31DB表示用户设备的USB端口状态发生改变的公共事件。;32RH当用户设备作为USB主机时，USB设备已挂载的公共事件。;3\H当用户设备作为USB主机时，USB设备被卸载的公共事件。;34Q3表示设备飞行模式已更改的公共事件。;t5D表示分屏的公共事件。;"6;*表示快速修复应用的公共事件。;6N*表示撤销快速修复的公共事件。;7P-表示用户信息已更新的公共事件。;w8?*表示SIM卡状态更新的公共事件。;59D^表示呼叫状态更新的公共事件。
 *
 * 要订阅此事件，您的应用必须具备:#	权限。;o:F*表示网络状态更新的公共事件。;3;L*表示信号信息更新的公共事件。;<H$表示屏幕解锁的公共事件。;<@$表示屏幕锁定的公共事件。;x=<=表示HTTP代理的配置信息发生变化的公共事件。;8>D0表示网络连接状态变化的公共事件。;?H0表示未成年人模式开启的公共事件。;o@?00表示未成年人模式关闭的公共事件。;o@>'表示浏览器托管策略已更改。;4A^T表示可感知支架开合的设备，其支架开合状态变化的公共事件。AQ表示可感知开合盖子的设备，其开合盖状态变化的公共事件。A;F~FxqC,#%œ6pom txqC,#%œ6pomȺ=# 4'x> HB-@FB-
   your application
 *4B-`AJCpCtx C-?	lA>CpC
	xq<#'p
dLnt TFxZ!kML\<I<xW[lW8v֮w}$ƱNb'^'6ib!)9{f.1B$ZOT4*oB	o@%Psf:Pɒe߭=ӏ^t7Ggwױ	+1lϧ%awnV`22& 35qd%n0=et6I#J-\>.s"E1,^R\ܐL.vqwᕆD)1
pE%G,XN#	#
T@v6|gI"
yfMCY2Ţ2J\E^":R,V3\lAr:ZڛF>:$gK1P%&PG]d<"~2b%F"h^PݡİDcV(_
\
y>@]^EUZ1_.*`{5kRK1xx">R/(ְ,Lp#tN
@g6K?kI}J\Sl*rl`Ukk-JY R$lxYg?oH*j$BKb>*TzjZx,"B^
cp$aYF+Rc櫢l(6{Ӿ_>6xRBeh+{a}1$jW"iԛwM0UQ%a1VH7tl%5qXDCjsUȠ#D=eGFk׎fX鸬'	c؎(l9Vw~0tg8ʞ\#6Lfpp\Sw(bJrQQF"q2ZW;jLIVX"˳PL	D=x8 \`amYN>/j rwv@$1a{y@f,+[.ۣ~fcGˀجJ	+P? dk&d'\8Aq]Ű6qIeYl`'[?1yۑk{'.A⣭$JK'? oȂ{E\Qc6S}*-3DzU*3eI>=Ƨk_Ega&Byu2"VhYȖc\C;I(qxp2n[u
lN
ņm6ӛȰNT=<VGुSjZDub<KaOTᜪa6֖	5)W-燛C}dk/Ffjoeu}Ԣg!Y}E[VQ.BU^5
P&g|HI
6{Q}dK5$Ҍ\qö+#u%GW -	}rئdD,5U>/gru.Wa,u[uJ;,G1['Z=$(8W >gn~}~~:}rhQ	~+ڏE'Ea22ŉvxa{7v+X_,+J.9ğLoSM,|ޒ}m5üt^Mya:f_y<7o%ߵpz|wӽ7^A87fSvFHϝSnmetOnUۯB_vܝ*_%۾mx2<2d-nZ\Հl凵"`gc)xn+Jb*"-Y|ж]y\|~,nV@{)xbgȕW `YwxxXklSU(&LA!a̕mClH+ HH0!nnqUث۪ƶm~'=5C=rLL=8u-Nzi:||?(7C}|NMvhTlqݶ4L=mY0 MAfʍS.HgiP=6t'y8#Y25m6@"bmgW9/0Daꤞ䊊%-dU裇L/*1ł[& eeJI(n~Hn++TX>ڡDo',:خUU*xʅc]|#oZO*TG(|"{UliaFD'(DC8ʂKO⹒yC͒f1h^}PΆTe=Cg'	)G?6fDdH	ԁ4ϖq)_WICvaF8 vt*|3<בITH&3\>E8-oH$qk@wk_/8ut8<#eWe{D˅s#t["1ܭ>@IݲMYtH@fXA2?ߎn85I}uNZtza T/e'[ '2!,$A$v١4۽!ҧQ*ȕ<f6+I&35F5&ڰn5fzĀ&hc;VTG0;Y>/φ	[f3\T}0jXC%/a>q٤{pC~GBdZG`wT]!+4)۝OKPJAnf@5v^KJAʆepk36BfưkrЄIh`;Щ4|t჋<v$]$kяO桛OVi]N/:ϚP~ҠY2hS!ZQYd .!l%=%qh"05>uDh^cNF!S_V"CȦ2`54G!h2K46r%][7?hRYhjjxA)(Иz6sAIdM*kO^Yp8Fv>v~|{.l6@J%/dwm Kcmx?g)U<^~MhviLF,d6nc_Rm|3Gutߺ-G|T}jIԸ/dU\LM~uB@2B<
@5&B[lal2**G'<dx_PI5>(Qyd5dV PQfFIyH&5	F5	U;8r]r,\>_|.SizY-Bt\~J.$BU2jf7(>,;RCrփHrV%ԙ	ccV!4,HПiФ!8{kb;-_U줜o	JNOl3oB}zlW
IP8ԧ{)_KdZn	^TrŤz%1x?:va26rCG1
&}ދ[ݟ̺V A/{WP=-{&Mt`xz$f:\MCe[Y2ߋ,̣Gzx B4B6Y_Tx' ?B=!A3?4BדB=0C0wL[xq=dNIZ: Q
Gnxq͇, 8xȸq;ĤTBLF8''ًL.bL,g&=/7L֡ e [xnCsNfd93ɿx'+pjOu0 7msx[8qW)Gx{Twnd;BwN.Ғatwg |(xkXS!krifBbR~iBIBj^IjBIFBFfRjQ^bIBn~J)8g%*NnvqtrsqUUP*-.MK-,=IK|, K5S+2KH53=Y$k6seNaRHdSnb^bzjBRQ~y1Л9ɕ
œbM'Z:9;9Q]BTPxNk ǥlxk[!krjfBbR~iBIBj^IjBIFBZ~QrBqNjjBn~ҶF~!AnAή>

Jť9ze@z
&,L,)ekg^saƚbw{FfRjQ^bI*ȂT=.- Rp(lh6G[TO' ?W>HOGj 7RM_Hv d̵ bjxkQAm,8&g	NY=֞ Yktx[S]vr'  x[7n2dA!< ͼF vlxQ|y%%
E
yz\
Z=BB#"=]lJKsRRJ
&ߖZR_\YYRnsgg.@VS )&+d$yE
)

yI9t}=}]\FHNRP'hjJf1Xdcp| ^yO
xR j VJ,*.+)O)MNMQRP24R T%+%xbҼx?0XU~4ҩ'?913j6W, A0hex[8+ IxR j VJ,*.+)O)MNMQRP24R T%+%Ԣx7*?/U	+ !ZŶxR j VJ,*.+)O)MNMQRP24Rҁ(T%+%xĒԢJϼxĂ̒J%Z*SRY
3+ 2hxƸq"* چ P%x]oƲHcN4D䘉,4(revtwfܥ(Yvvf3ghMۻz1:u$!pzb3Ó(%G>IXH4u~_x.zڸ[+0Z!WęDG7qtdw,0*suiho]ſ=>>SܞllFgn/y ë@简}hb	2D?&AD'VJ٣4KUUd&I@jnd=;<. '{q5YXyG5[dh/>]Zg=X$q Jp:THXSNR/X-nI"ȊI	Rj
 s3vtYIMh[$2!緫$ k>>IOA  dz%1bY!둡͏Ã0V;pzWdHZ@EE샱EPרyS%'ɖDnd
d
m{p
nl`$)euᦁk!NƖM3ѯ0ȶL!4 5ymM=Y,}DGZ䅹OϤ!>D@[.8S
 <x`]kg$ t3l tu?=k#62]挎|9NF[?afxl`TqеV.g80vXy.gyz\fwhn}{|3G_~ &$;AF?MWFiE)q;9mSP}mtϘOtu~zQDghMwIMtǝʾ|L?<	`@1L3|FBA8<RG^kWyշq>jG8- 7G0R"e5 Jd7ai}=Fhw&iO4mٴ #MF=yƶć@al*?$* A,w'!1;G36 ΢-W;cCړ˩1
J,Ieexv%v5L
kV΁Wl+Gj4<"\G*DI֜	&z=$M^g]f'l{3ں'ZBqLc9ѵb_QQ+gU$i[eתiY>?@hL0gT?GM(sa~7y$cֹq[S&V)oL֙@:A7A	+F&5h(rA2в.h~x+FJu{*M;lnu> #	ߎ ѽ-?(掠:𗕱iWpqHb1PցiUD7G-֥caI/ я)&mӔC6yߍaDk?)sGt=+C*`_}|0ChNZ_.?*[oӪdX]^*,(3qLCtn&+B6i*}{؍|i.Hd3	|SnF:ރm߬ULh& (JSKOKUv</2|0z&Z-p޿4
9A(ץd:95+p] wW S!_y]"a<XL@}QH=0YwSx5vy|.Xn0l`9=&FU:bݎ0^@&zIg;p ws{hekvnC,F-_O=M]dqNWCk6ΰ<Rk$d3Ӳa0rgszt{O}ҹFm=\6b՜3LWC'XJUH`/h!DfF(We+ZiY@jSHp9\tcχ3"	Ô17f%<LeXM,mDJfwETAhs~Ⱦ@*`Ƀݙ"Ӳ &&nw*1O֘ȽwYlG]jY\c6ޣ:5$&"_ESj
qVy$wxFNMTѸ#Vg% tY*,S)ėѾ&#Ju$cZ^jM7]5YQ8{	0*5]yM~u	ìzP`y>I xT	-p
_g)' Vu둒7C$tV>8Vm^zn| q
+f_jA .E +SM86κ|UYr૏Qu{\RvWq5y٭P^7ˌW::#Q]DߌҐԗqVpsCepȸ}`ېLKD"P{Dƥ(6B@#T?]zتqI?qFZnv$n@|(J{Sʰla@%rq7dVO7~"&\8Y}H쀔CŗO[>ȧ`
-:f-saUq>7!(RaNP S؞!  GDolV6t,'5vbi){Roaิa~j^S(0+Ps-ZPXZIIֆjQɡ3Фɩt4F-uk 1F{lMk3g63s*+e{Rii *1pb~g妓D)ِ|#,ֳ̕i.ӛT"h4CڒkHRĭXce˯  AZL-)&T )7[Ǻ4ptsZq7`dMЈ"VƢBSܗT:M308S_P(Bm6&mvWDWȈf\/l⁆QּWW6iLڱ|غLĘ.XA؈h\ba28#Έ	'tlf,)K,pC/SuZ }[`v3-Ozk7LPA mڏڶy*dƑ	e`c}w.sێ|@)jAb<L&~xZ\-;,O"F$*y^()0DB5$ ?O5x/zOnZ߿@Y:}}!=H&lؼ>EkLXB}>j0rNQDQ .l7X0v2MtǇD%ވ&VOHpR#F^US4KVjdhVli}SCr+sX,68Y1ʃ[5c33v_O y85cYDd&ZSYB$5z^λ58-i8W9"]4 P}vc8!'<A-WC.	8Hҕ3ŗGx2>2c`0`+;V׏4EX-~MOǧlo7)q_@zlcm\ 0jP.&~6=\NC
,SfTMbj<
@Bnt%Tyh#HBBaF驰(}'	+W_!zޙhGa93y9|uo}A>)V7mA{ucNCK^hB>FxͣbJ^Oak:˦/gruF4t_9WuʅNWOxߨA5a{ )Dx>$*"i7*LO0PK1NfPEi6GxH#Mmq Pkcoa^B0}w+J{"/x͓~6|O.'b04'M9t.c%K9r7UG0/A_wN*=htK(v%Q@oX]]S_!rD꧿(
R:%w([J30b}%*nZyZC*7 p'ͩ  _'6^݆ V*nJu>X)^lȆ[KqzRm(zgrhs	c>Qjt=fkm<1W܂&*Kx0GɉB^"ohV]@#.8?Pq#@XdOrjj}gw'u͐vE1;k:Ʉο9PN?FbL^W)Qy.L^%Jiu(<'$ߩC'o;+LX̀JLO]T{|2|$aM7n59d#%Zfk.A6b9Bpиo@X-~df|RˎcVhmqj3c)7֊~=klg?bXU>3UVZ>cOL]c|յ~ iBw1GMuPsi;}]WhO/WﻫoWA)k'O{]F_Ǯ/G).i!m)݉tXU}ɧUW7>a3Y)žf2PbGnKloH?ϵJ)[e|"h~Œv
2~XÌ	|Aow,m7]?f4bd?huv6<Q7*xZ{PX5!!YYx&. !FS"Qa5c+l᱄b.l@i?δ3uֽmTL_qo=s={/\r%7c}f_i꾬}|	|Wq:ygY{<9igϞ`˭5~D}J0xZtv=Cl]e-]{:㞵z_m9|'Fx	U;T2KV{c"6x]q"g߅׺z`8例b[
:4(ǃĨ ~)]xnznaY^Tt+\;GnY:w&[+;s>X0N&+az<j2DˉHwqL%*`E#SHG`/j B(1 {E^I?TL[COVUTh Q1&1F"aOT0(:f,|48]N!A=h(!@59S+pk9O=&.I+HK2S?0CyϯZ.jgS4lTȘJ=8HСK'y=k)rö.l#ڛ3H^?7:+*ogZ	gX'
\mN\jctL,^,њsO!8)!;"R';ڸKo"	,t%"}WzC"F/*D78ጃ$:4S"7|]hܼ*Φ`nrҚ878 aѵ|u8t2 :FSWFtwH=;oߋQ:vf!=t	cZJ^*RkY26JQ䈸ɷ5s#d0D?T2Pg0F85kIONl:ϣ-ٹQ^>5hdeG4ƂhIM.=VxĒUf0F5j-/-.VVdYK^5B +mUVhY~n˲V.3mYRdɢ}o<~6h\=Ο':kYW$k*Țj_0b	3ŨPtWP1jiWU_:|13Cd:tM.#Ԛփ㱱@{ϴ5,v:ďDrA\JP\`@n<,C3w{
N|T̊"tWdid:o/CtĊAұ%>[U$.		qUZ	yӊ={uwHHL^,K3H\wR}ޱ P/U&0is  e[rZpy(arKJ:)ܦj>O/?vA[X$m#~+#SJ,Tt!*fݟ'>ӃR%ڪKI*Xgg!s .QK.ܰ>Q6zE(fYD/EhznI#L?Cib1&li3*G"A6*=G:HRq;;'(@
O"C-eј`Z}*ʻ9O<}9CEÙ*[jj[UijO+hhlo܂Zf;ۏLFl~RQRYl}AMxuɚJKp	ZUYrض8}kUW܉eHnQ,~tRJK#EF\jR2ޠd"(5ݝ(<ER`>xQ2ʭ%iaՕG-6jeτK?tq8vde&h32qԣZ:/=*sl0$ù2UW·Tʆ3}A0U>,6CIh]B?Ԑ	À)Di4&E^
bblRrٞ!e47C=>\F
ؘ#Z3k5fsfZyU﷼f*T2p$fMg ua_m#t;~"fQPY^^h,4;W.89O}gǷg&UAYTgI7iT"pSxGH{X7).B $]f|ɬ҉gN:Za5`xsx0P_6'-aaI-&o9Zت[Jh"J/WKS끬2q
A\2|=\8N#pW~C+e|fa~ݩcΖໜek4Bb[e~xf?g&y>fk	!,G	=ZXUx),0
tY5燃[=8Sk*15yAɁs[Y^fFw9
Xay #BzURPX^^TX|	j-U=ĤZ׻cVPaH_Rfuh	HH_ؾ)5Ae
MHwjT8&V,U;+^dhsܤ9hcXQ`R/LR4/AQ	hkOdE8}miFV
bv^;oqW\4}zPJAvmgڝb;^U`Þ(>5_Xk:E0'i~1"QFNROej8J?FZ8~<n/gW_Ns7I$9[pҊزgc'^NygL%-D6+kքb)|Cף ^iwsfigsAȻ9mKSu`߮IoCɃlݮ7hݮP;%C;;;s&;k
<~<xl*ܝDxĖU_aǡ+:9MNOyVk:mJm9I)O)*{uƐC>tjε`a`i gP6)ӤAM]Ẩ̩ە~c\ &F`ckS^N-@*I:I^㦄2rC'Az"
t.d S I;rwVv8g/&QH s6mAvOބٮGŃKB2}nʓHj$1oI؀,gg=7E8U\h%{$Wv46j*-ʧOHSʯ/,LiƸ]~R@ w 4VDl$gU\"/~C9ߘdlPLpru<nyiIܘh.@`Yh_@J<DL0BW;bE1U2^%PB*H(s/.K1၀	J)cocFfyitNQ"xMEzU@u*(opg)3TRa] ?n#oC '("Q9nv,bz(0<sz4^rd"6o(֝CnD1!>l
k@%6ј`[[ԑ,:8]gYg#>ʭlkPgd4w3d,..jkI3UpՂ^/`2ATuiE_X׃_?Q.(5ξFiYp05ho7~4ܾUf/> r:
`bt=VBu(0m2Dѷv}bC_)DT1LYeW
+XJ
>Z1'J.I4,ÃzM"Ó=b-D6%}x:ily7K\嵼$J,/%dG4;H8;3C4
R?E$#jpKPNk#@i$A
4N7.ʵkGV޴^xCxxx~v}kyXdSRDDMUhݐUE6edвD6I?q#"6 ITqزYԌ`ɚJvek[Vlr8S#oq8RÉjADklG]dY]GNlEj;%r#7g Uњq^+(2-B"OZF<ǇG19"
\p(x~8RRip\SBjAqd]y&rZae&};Bf@'Ƶz[˰$P
]Cceå-Q|CQ]5LKUIvji\RhemR6p_R5w!_+PF|8tTSL+P`]˖խ4|<* ^1#VLpueTAcʮTB&-[lRe4`;ʹT><]Ol[Li+k.1!TϫE=Cv5/Y˨k;%[Bu	
G?u4448
׌jjJ$]&*[ph :k7by`l*<:VE.ᗵ]d]udM`^!4`{ݹ=T#r %d/RqF_쀨y@l)lW4w}{Mij8	u>ImT7"y,8J|dq;!$
J[XZaʶfXFj4E3ԑ%Mm=ut]A&m	6I{ŐjFބl^k"wSDq1hQtdGDc5ՐeNEySfiݱl ӆ&x2G^]ǈ?e|оzr5Է44CTb!n4΢RbxjYa)FWc]3sq
1Kuzp.MѐuJ͐cG9KxCҍRHO&`^lk22D1i<η+-UNdXlm2qK)h fn("U<h~Fĝ OZAtޕ.#l
G91,qp4mm$lY;euY$0k-5AD-Fcb{ 74q=@AD\gX '2$&M>In$zihHʸtMv= 	r%vl=xtc>tRtaz{kkTj:%.~G7:cYXv'!ґ;+G4[2)e	gDW#е64'oQ#dn
b.;oqnw,84ͬj=97g rDB]H	hm\G-S)V>#A&*s뫇XS[aM7iݯ[䛆_2JK=7#$FyAhNtԇJWrv_
;7FLaJsJËU>!H!3ʷCBQ,`@-۠rJT(зp{1Hvz{# qA:UQGk#d)d3Bj< &sK5ncz0:sRq6-iLC=yuԇkoYu>@#qszs-i1H*ɴkN&Nc㝵2U%wqs<]	
UXT׾]_6޴	j+,ؚBm8(_=|7%{D1vPϑ#GA(aY:<Ngɦ"`t̝A+lAQ2Di\d7Fca\S5l1gHD E^ΝOϵէ{{Owįezr,5EDGv"`\NDT0s;O<N(ΝӊV&)kmfg +(lOL0Wݎ#:ǔcɧ㡺/&`	YK0KQxB;Cp`^sxB+#~CLEvY[MjܕEiHxyƿ]M!*m9:Tqf(&u(w-,}"ۨGh*-Sg(*P589RS衝k7gVni=";ThRa	XyK(_3T$XYB6T67umň}ieh	ID E3&1/g[`ƺs81wuC58:w>d@xO'MYL{F#igY|
"/ˇc;y:l'ZVgͧQ+B[iV}g3(5=_秿RSo-N#,	dVxEl1?.~yURgي	7{1)cԐ`Fӱ' kCJ?2YC`]7[\=U^[I&m!_9q T{C/;}TRIU4(^/<#wvؽίom-TWx V#օ<I|Fד>Cz K޻VG6F	1`rC777J4Yx.?uSaxCh^ol;}Ůis]ac=En`rx*ݫ'}m$YՌ=y&V<;w[T{֟ާpIuvKщ^n«7Z|/s˹'gދ,\[jx2>FѳutB
7g>LBRä cM%tDP!*nn00(dS&<_'ܱd萐|VPgabԩ}pҨ9]4zotaNf@s@{5]	I~.|D{ióKu>0NB{\pfJ;CKNZ᝕H6+N1_0IZiUr~dSͧWWv)XiWA9[a2L[P`q\^XOdG/`<_B&ML{#;bD㞔P>xFOޡ'%!_D]Y@do4<3bE<=ټl~HN6[oP*wƨ7Xg~_e'gC,Gz/|]NV٣w{!<@}v_}h{	/{ϯ;ueQv?eo]-<"ǡqD_FF~V^ylt~wk=߱Io<PאTC[ӫ@x|
y96gJ	L0`$A{, H,xVnDV.hJK),K]!\'+6$;'ǌ	Y< Ws+pRpW ހ $fqj<sw7~}UXϰLl hB"<
)AO<1cחitn u˶ȣO꠶UZjJC=k~jha<yMU,
SB"@?Ǫl68N!Zvjs4X@3 ^MUԦ+LNqzZ;~!ZAEvH_*<WW(zO@Y:}6_euJ}|mK|$GOA җ,9jӳ.?:Ԍ9c 	`#gDiUxi#`.f-y0c	`tRb>E("$ϋ5D2\&Y_!vk/n{_?dd%R;#ⱟ޹JwmVorqW6&ih}#Z0ַ,?;`b}:g@w.vi`am8J;q)?q1hO^ʬE2yCpB,O26eT+3l-RC2D{n%	<gP@B""y:qɳ8ǖQ3m$
m[iuѰOenao鍳Qa r KHCǶ)6v =4uE"T0EḦbczOn0nڒ"ǭT"YNAW0Wѹxp/|q2}{oY$$nյҚ4>*VB80XQoXe%x]~IDZ޸X>-Q
Q?+|45;=j%vƓ*w;ga3འc6"lK}t(zN}]_[oiN Q24ŕcBB^(PضtxYilHEqEDU;aI$uE$%J".4"-#FA3	Pn?͟"EE@kiPܢov]RV$#Qh0y-4!xu$gGk<oT`a`Ĵ!0Sz!oHƆ St&#rgxXaEy2=.H3iY`4jY&(n@2v$ٽ,AYub1L9<`X{F$tAԄ f$SF|1qRB(czVD<KyC^
Clɖ,{wU@<`&xc}(YYGx""$52TޅP/RtP	~paID#HP58+6,WkUJJs|eҴHA<ɨҖ6|ɣnYC<X^)7t#M;P%eJTX8b`I\1%Q,Q׫>^=]R7X:|MئSA_4;R` ";g.A_͡L1$RȐ&SUOnݣrT!ÞN5F8A&_KBJAB/K_opMToNs,"T#X$Vajl={)JF+V˩',GdĊg7[`4uV{9r6xI::DiQ3Lo䶔]ޤyjp0
MuKyqX"y/um]LZx
Jڧp$Tw +5-ҹ"S^Urf!wͶ}:FS"s+ҹp@í@+
y'R{\"32Fq%vB\7]<sfZc(rҒe-֖G1y.H_fLfRR<+b_[HYrVmf&q3hyNWͣb!BsͼF
m`8> #jN|EJ
j68~?˦F9Ko\Qyد._!G`CxTi#j5Z%%MBXF)qg֓q0
ott
ݎ_=&4Yɩ|~|g?Ҽ;F5DJ(4eJE 8pv-ӣVgOru,$	(K'D-nfX5EhOxe,^:8Ga8aΫ1	C'3I)0@iJh,Ys_%ks+!"Cr-+_nβg I[~jl$?[V>B+`퇽ݢߴdy|f1=Z|BbWg Z:ekpBaC'0^o'j}ev+Nao:IsB\.yP}*C	p=*I$L?uBZt<.τ(VѸ4ix}?:I_ǝ+['@Zsz\01ᜧޭ0Ŝ_);!/̓Lw%pfd{,EE2%yԉMuk.m(yRx4i~%HܓJ/1%̖$H[|7
1{K:ۋ=cvLWte׮KLAnv|nv5ot jyF>rRkcz",WSMnnuw'76EP1[Ef3r;	(!UZOŊ͐[b~D"<Y[4;CC*#K^M'ױEȕT͕(wZ6pPI.gEtGr3[sH*rr 4.uf!{?s)_8tOdIU;tV{mnn=ٌ28<jSGG'/!½9!	ǉXYK}GZ2#`9 r;m=헾1KU-2b;1S}NY- =9f^_h
?~'v|ʄGǴ|!ݝ.}]:>csk5WH.>zx;ъ4ɘI} cM՝/)n)g&TNsLޛc,bgCz~;;T˩P^BoMjm\T<67^'SlwBuFl\
?}cyI`/jcs.:):Q1ņ12㳱Pj$	rgOW0<%Eo᠙{/]ڟ~?#M?7v'$xk<x8I6hVP_XYRPP\XTPPW>af/L +xkθs&-Ģ\ԲԼ8%%RJ2
dIjBJfqr~YjQF[ITLf^Z~nbIf~BbB	P$37U!?̆7PXv-Z]"LHKOJgd椂͂Ie&*d+	r9B6*  Sd.x9qLʼzyg3m \2#x=qLy&;Joϳ OKxn0UfS4ʴnZb"V+Ħlͦ		mot\DIsplώox^QlVJ;kd[>Egp~vJeѫF;c735RT?o̚tIsJ ~7@Bob
Q[ܵx:4vÞQDvmH+eϬЍ(2+%q~p '<m蜴	}Ȗ U3+)|ȨP]\p`Υ|>"|Nb?T؂*uQ}\;bgr`|j9?3 /!\H v=[`|ٹ9F;/cq狓ӓӷIߪFx'bŧ5Ds|>'C{uH3wPо`[ ֯ pPΝe!|і%FpP>l0H=o`z?
O%Ȁ&ͽ=s`y01DcxN@CԐ`DM$KE.JbԀƅ1f#Nl;d:G0}977P3Ios2~|wZэ3\j0-ߕ]^
1pOga˝	!Hi9/S4VrY l)y4\&GS,h@M]#iƀIT5FOU( sMU0%C8"~jk\k]`}麎5ψ|iLD~HڀL˯"F8E|&dw.\UԷ:qij}v<:?nΉtIxiJ#&% J`GԄI㏓B4cC*-Ɉ9lPˍ	A z@WèЦTJ:4<YUwHO-rV9U^xNA#		JňQצvX@Zxa=e'.3l?.L|IG-xgvvg;]w*gwD
3~VlͬA#zú0>!	&HZ0Zq0 EnIYW\:>'kHGvyz/hU8Dՙt=	5A45%Ghz"*=p4.& R]ҵ*e_c.qfyuF|)6ZaxA	~'IW˺+wc}^MA|BjxKIj=qٞBMlLɢ]$7rt'xSg'rpcp?/̝mfA."M/76gG
2&wp0A(!Q.CD
4$eHTȐ!Q1CD6$0Bt8Tq:	0]QO=̥2ג0ğǼ&켺S(;%"Mw7~aYjx+DnQ%7ߕJ=.]ںvzd|=F[2El`agz\%vWsG[0>)3rA<J{]\cB~LQ|W:԰̷6X}ضxxn0ǵBۀ!:q_tP
Mn|Z8ۊo =/pqjR/?߻?mEo޾<k!_[F-^^_x$mί(0Q/98V1^Y̓MSH84CLXc"`(@KRtHDQ:D$+ZPآ%.gyxhHKة-oAO;yg(3W;fAHY.h	36!suݥ-	DP<挒%3mCP''=Fr.\b֟/;"foH@>*r89Cp⁕Wƕ5E6GOyu1L+9dN	|ZWvVF.9U֣ [6pBڌ{!'(̢{v6k<)`82ܥ)˴<ͺc K
<sF[g[x?AE&N$lOlmb\/J2kE	?+SBHX=; 1_yTPr}bH)6*dʂwC*l4W1bvp,zfۂri3!qGƛ8r/mCare1	0 {Li߬ϗ?v5Sx!sTvC(jfzzYRJ܊sS}Ssss*+ 9q9VxN@e "j 	~ďآ`+RhĹ<a<EfVl8}ހ8Czg}so.o]ȇђͨ͢u@ޤU3Ag>2rk`GOtT7|.o#/2%~y`#&n/oz8~8sPG+?Ls|qjrڕʧwnDRBkcvN>Y\(!gx=vj
aRo!#Zk3#M`jqCM1#H*6N`N{-iKDJ_Lpav{{%9
}e3dɌ#@Ӆ!g6d.=ׇGaCV#;a5d'	W2kLWGLx!s1z6&#Ɏ%%))y%Eɩ%xr TlҒiǜyuj$@jKJp*Q(/@Sĥ \ S?=,)x$4Ax#PxfZfg1rKLIM,* vO-qI-LNMf:9CB&ᓙ♗ĥ \ j x$rBh'W, Ijx
 	
]d2hxe 79k@x;!^pC x{/8UpChPjaijqIHQbrr j	\xuE'TY&'*(8zVO>ȤW&.ĥ \ UxVNADc 11DR$CTZXh%\CwZ&S&{'| >o;;E.m~yG'hv]ADAآZLRWm=@rrIgˏC0<&<HswAV64Ӿ5lTe9,[@;]@xiQMH|T|ir	h(N5b_ZyAA2@\lx^ӨQ'2
n@&s!he-jEvJj2 V0~G'qqJҟ[P'.:i ~[ҀOApHMdX#d>5X眊)?\LZۛX7F	EX%wy
2dD<A*~ؐٶ[@T1"rYi&|c` O\g`Vd1 5y͒d[
JƊAP}L-SrmCC@cdvB	&4ϡ޼jyQBULctmuHɷO.a&}Y
ʭ&i:_1+zilbxq2mݟٌtz6Jd2#L` Ay'-
`%lbGgZśغ
v4Sz0+E]B8[M:S=LDQ0ӗ+ZktgJ`~VO,"V\ 4V3ZMj xXvD>1Թ'vzH&p遶CPGQi"h4Jb8,x¬Y`Ś`œtfF#i~i䴫hwif4C6's;?f6}db
*8be@2!5>
dӿJR@RվrH<B2iP_^"DXjM)&`@ (ȃ323w#"!brZu %N˲ :I<:&y<\-'V;AH:V(a`4$>)q+X͵ГV0ywl"̥1,繱A4R-נzΐ߲Q*7"Jg)T=Sٴ.rY[=Lf)c$nfr,Ъe=d46BN))=x0ALj,Î* F~ɏ jܴ;C0ey~kUΦO'+Oocu	<GWƒI֤8;zjMmc#u|qE녤X3)X+Z"_p].?3m.v0yKxe(% UUAQsQ~b٦e2`ǋ6toyk:Ҵ=bX!V!q1Km;۷"%tR'-ttQ UN(&pH#%V;T=[;5ĩ Fim#i+#V:u\80@~@J	wc;¶L-1fc%0řNi}_{E?=q[ǛsCH6t0X1C#`Q\]G!ڭ8Iq5WGԵH>`	|S]Lk^(>'[Uu-r;ĎGe9Ef!9Ǿ"j(p}ܵ45GdrY8 @sNC:4r9T`t:>o߹^qF#ɖ%5jLvS+HW2A^Q5/#]˳]vݧwN/{Dtfا}*aN	Z|EYmW,N>DQ.W/sUxiGo?[~*(ޤbYV#ozM$!:=zJh랫&CgJH59SB.g.1%S	%IKETcaOqth4~:'O
jf#]*5T1Xp|^8aYf~e8xNA#%Q*Rh, !6f	JĊ,3df1wLe#$jXjBn9sS@d-M(bƁs$^JP7D,ZɠfUc)o8spqWiM43=T&ܯmZ_È$pv`D-:aӓqQJe5:G;z3̈́1n1J&qg2w6pώdt:a1.K
Df\\aTJĔ8#%=DJ#vT/x*hUXvЃ}u@tP,onsѫ` zs~8{B7i݇;PCDxN<>HiDebug_GetSystemCpuUsagaFHiDebug_GetAppCpuUsagaFHiDebug_GetAppThreadCpuUsagaFHiDebug_FreeThreadCpuUsagaFHiDebug_GetSystemMemInfoEHiDebug_GetAppNativeMemInfo--#HiDebug_GetAppNativeMemInfoWithCachaFHiDebug_GetAppMemoryLimitEHiDebug_StartAppTraceCapturaFHiDebug_StopAppTraceCaptura7/4",
      "name": "OH_HiDebug_GetGraphicsMemory-1 HiDebug_GetGraphicsMemorySummary )"name": "OH_HiDebug_SetMallocDispatchTabla 0"name": "OH_HiDebug_GetDefaultMallocDispatchTabla -"name": "OH_HiDebug_RestoreMallocDispatchTabl.-HiDebug_BacktraceFromFp--HiDebug_SymbolicAddress--HiDebug_CreateBacktraceObject--HiDebug_DestroyBacktraceObjectaEHiDebug_RequestThreadLiteSampl0HiDebug_SetCrashObj-HiDebug_ResetCrashObj-4HiDebug_RequestTr04HiDebug_StartProfil.24HiDebug_StopProfil.HiDebug_RegisterMemDumpListen.HiDebug_UnregisterMemDumpListen.HiDebug_AcquireAsyncContextIHiDebug_PushAsyncContextIHiDebug_PopAsyncContextI$HiDebug_ReleaseAsyncContext"
    }
]0$lxjkd%|`ڐDoïfL3&6l r".v x)2udAvqLxϼ̒lԒ9\),M/-Յ)+1D*~Ԃ"~WAXpj	"\91/95&3>21y%N9J\
@P wVi%px7+(3$3/dGaW7(5'5x2#4D $L-r,N/K-i`H;&C(&nW~HbYP#3S}@By`*eyEAUY%T4I,<qIJB$}K3ry`HcP_ZT:QIo&	Ylc@AJb	NEpK򋰩rGJĒ2`Nm#.Y*@IsbNNRbrrr [ xȸ1zDC{l$<JJ
SRRSr*'˘Om#J/KI"9x敤%MvT .I,*@  SL@oE#	2KrRT*q) A-W, ԀIxYr7@zQHhq~ $vR(Il)&檓h.L/nߣW^7AyxN+_?6\=wt$}:HǱ~{-O}RL	tǳl]_3t	Fg"I mHo[Nz&@{y>8`Ss> ˁ5@&Y+i\>:Y CAtP4mt􉗃.~ >5~G2 [.8PfҀtyAiD} XQᾓc2`D<nA7ڙM &Rvv)OCX=٦]<cc>-"71f1 bc bD]_02I_P$
=!1^/S>mQHHRmF6b-$Fl1+0yüqTdsE(w=3$-
(͖3$"ϵւ'C2sM4}lN>'7#Z<<O&'ȵ't.ǀ61{~vl5:>#@ V:M.w#Ari~_?h^j}njCjAV9xm^>0Avi#.C;tY.nn7xmG{{0RtHΪ#qG+ih`OPj[NR,0(ŻueH <hFd:dUD!=9%VZ)&cL\<gT	lGyq=@ ˉMHIO= "jהIڮ]!.żLlZbc6lqZcrL'6t]9q$Jq t6Uz~]w_XARŉRO9L==I6o*s*lPaʓqvɧ3k"ۃ$O
PoKJCW?lH57E:1̏Uju ,<S5հs4WЇl(4-J""f<Q͎ADL;0=v>7Jx9a
<WaRXp-Wph_P橚v]zt$z(1'mGqɦsE].lGqC%1ļR#iǽ6-cF$TtM^pĮ,!D6+\t-sS!TbπT]l<ZN_,p4GdmUϩap_ҿkCߪ$gqٔ%+Lyl5͕XRȲmvHьbfJ2H
#YF.wKz%<iKo3tdZ Gˠs(=t-	.ivp$KHǕEǚxO ;.KfĦc^K_K__BM5RbeIye	Ì+FA&v?g:|6G|ODE6rgQbDۑ#Oy}ޒ$Zjaٳ 0-x0O&'c{ghvv_lҸ#˅-hzAi-YGaEBu}.hkޓ	=[tY|DhBzH }d'kU?oT$a,l6yCfBClLHǕ`WFylҖ23,$OwkR1RAc#`7<z1a'<fRظ3l2.=V|cNxq'%#^Y1L+73(cD)7.|{Rl"xxqCW,  :9xXKop1B!,pfzGBPS3.SթĂ V,`_puHGWթ6D9ߩSo3y.%o}E)m=K	ή<yA)ǽAbf澢/!	p#znM)USAUK^
l6MI1'%['qdBg/-hpŧrDjW4y.1 Bpm(1FO9}Izxb,{ 	Z\Q.fn )kC-Y|`׭U騝`ĵu.cߜR<kVCE}LGNZ.h#:Rѱ-QIk 2j2x9qup*8|C(ؒ5xX9jV4yDXxkMP.LP5E6PCf4)ȹ]fWYxNE=T|0D*G>	|
GP[BƋ=.S)në5H>nr?	-2R3 QTEs&JCkH{
sӺ
 $$Ǐ \r'<SwzC ~Yx5:z
e1ibYmi;	Y^^]I1xTyY̓˧CWjZV3ϴd1W*atjO/MP$ 1~/|^,gc9R
"zؾwi9/^4Gu2Sb+ܧr4vб`S7 QV`kb
JQ3󷨔ۈ[QW/luNr q<WJJR1.p4 QtsZ,:RVN|{	{,YfqQ r2sy]Ie+;J0G.(!TU0ϊK{륐s5[ꢜm,9cI 
)1 g,95{q_WnY3'uMGQMu#qZќ7r1F@6	k'1kwhh,W'inXҍCt<p_%e8.yHO4O];xO&ZJ fj*ilofgڨQ0pȞx ehOӞt8HĿirAٙєsVe'Fw$>yΪ$}0w.۝w̦Y;+w*g*{e\t^C&o:2`'`9ʟ{^R#D:tjisK렐Uo :5V*	D7hF'V_0	$a]aϤweq zS37 V6	ʦ=6u,HPvw~`Rx-2I<MSs%\$.y_!+pQTfdЕ iM^מkluC+Js ؛,r&۰l,:=dRi)TYg?nB8 	w,XxH	l)K,f*e*xXr͎ﳄ Ly9(ƺzd",7{o_|v>EbBo_0$`ڨ3	蕦.tffvk9	m]
.5N
 KTg3]$PMVHꄳ:8Ü	UJ}atZ'/4?x8rg,>0OVtW, 
^x:qTF^7NpӘ\`,,_횖\⚗ĥ \\ Namx:J@wfX. &j6x:|&,6'Hl ,9.źD&;zM^o(0y4=YCH qd/nv%. s'O+Ov\n ˊkou1h\4DG>!. 0xǸq	R  F)8xrdau96/֝  )	:mEx[xqQgfX. 'w\xNAǃ!0TP(H+lZ4pep؝;P/5^ |o xgv&Ms~3s:qtcsrar{e{&p<̈%xs 1Gg&cqu(0ȂEXѫ`w5$Nd1ȽX'dtzïݪ$=BLΜv(8E.-"!=z?*l rי@hPw^yftS8"dBf^>ci0[`[K3].X߰`UZ<+&,|L^&EloFug
zIĩr"-"s"}8/?r5d&wSu(j=٬^?^BF7JTa1'[%_ck Jaw4h bMՔ,V
rGt7ul/iui2av;q)e p7`}Pg\4IrE7m2(gYb612}dX=ZC~ )lWWIAONTϬz;*08]SaU]i@	tRV<*HX϶v%}kو?A)p`*gB;lF%?X&x[Ÿqɉ2&˸xØ]\aLWyX. Ux[8~}7jOa iDm2x;Ƹ3W, 'XJx;θzڊk'L>hbg7y#N}iԲT׼ļTļ"%. EU f,޳*_Z\ZP_T4SsR'`TǦ3d\VX`_Z_XZۻV 39aW, W~yx;Ƹ#DAIV<9%yy9E2D'+[rSr+K
JRS+ 5?x~1zr Gs~NNfjg^fI|pIirKjIjq)),M/-(3YMRUWbDO~\PjA~X!Tpj	!8'%$
WPZ┓?Y]oy!IAd݊RS&;d42ə%Eɩ+ gm;x[Ÿq+3W, !$x\q}-&#ɆZyI9%%yy}'pNؤ=Ad2PA+ɫ=K2R|SS2r+3''2O(X\	IT
J-,RXPRZ\X4.d]Y4iT%.  @0xYKoT7VHM!IH !	(!LcRUq2s=Gh*Uj=-xEW7R@U]V_`.j3 v>{n#T;i&ӷq(LNԑռ7g_ۃkGu@5 1}pLOM8ia"P(ub-vcaQgAqFg(yE]mAKTӖSN!--.ӟs$YXSĲ{iC7ޜBW'~0UQ=?ez'?iyW/P1)7&a$,R#:^qXXI\ށ喇b7	f-d$Νj[$!Jl/|}FIm!7_ɵc+E8wXr	j)S'.io7Ɲ@)GǯqR+<x{8RY˲5w'b-u3i2f=,`*Uf&$i=%]*CgGXWZd 촐^14@+lͰڍ\%5m5nfiE]ji)0nagVQ(Ov)ͅ,@'(o1h:V)X@6:Q%Ae$Xjvh#=}!1`k(`2quʌaS(Dᶲ/ܢg@U+ QNcC#W!s`Nrxͤnz]ykg-Y7-_Uδ m^\X(VX2"J`Ia!ƹomdwp_:wq%n̒W(GT;wp0xC{Z*i[T%_߆Kʞ@C@2Iˍ-?{zqE@ 0;es5UYYglT=9e%W<풷6k	qAhQsWj@]2o#q_i$Jb*eeS.5ķY3r%ğ'`7Ix~)2j]?H$hQ'|u	zD@Y!0
T ;3i,#~nlC⺔sA,sO]f5H[jA׵c-kCpɮ˄1c&e)KP(u뒤>Ʃ29 {St@~	Юdr	KOs1+h#iTͥtIyc\-!NRt;SǲQB\ c V&d6 (a>e 6?z5C7!?
ӠNռP.N$hfny^7|!g&$ہO1rC:c`)͢e`c#+̃in=I'Ü7pG^E0<m
1[֚T%a#"UޛKfAgw,KP#N+֠@f<fIO

PP3{{}y^G/Z:J*AqݱAPk.o0njɛϟL)HPe~¼Rsvmk7VL6z*,<4{]Ss9f0B8Vp㡯,RO,ӗKgvO3w׮(&ds{8sB)\YA!pO=966_Miv'؅UL&]*.7 @'?]PNsQؐ
8ro4edCޟgnԴZ"#gecuXclQ;H+P"e:ɑ X/n4xxqUCX. -'xSrbƓ%9'<Q&GHM e9Aj ~x;ze+&*Ni-=o6y'۰M,r}r:2TW<S, 
onTx;xqB  2_D	xMԀ[1%6.0.2"OH_Archive_Reader_OpenFil-26.0.2-"OH_Archive_Reader_SetProgressHandlerWithData3-6.0.2 "OH_Archive_Reader_ExtractAllFil-26.0.2"OH_Archive_Reader_Clos-26.0.2"OH_Archive_Writer_OpenFil-26.0.2$"OH_Archive_Writer_SetCompressMethod3-6.0.2-"OH_Archive_Writer_SetProgressHandlerWithData3-6.0.2"OH_Archive_Writer_Add3-6.0.2"OH_Archive_Writer_Clos-26.0.2$"OH_Archive_BufferWriteCompressBound3-6.0.2"OH_Archive_BufferWri.26.0.2"OH_Archive_BufferRead3-6.0.2"OH_Archive_StreamWrite_Cre/26.0.2"OH_Archive_StreamWrite_Start3-6.0.2'"OH_Archive_StreamWrite_SetCompressLeve!4.6.0.2"OH_Archive_StreamWrite_Cance!4.6.0.2"OH_Archive_StreamWrite_Upd/26.0.2"OH_Archive_StreamWrite_End3-6.0.2"OH_Archive_StreamWrite_Destroy3-6.0.2"OH_Archive_StreamRead_Cre/26.0.2"OH_Archive_StreamRead_Start3-6.0.2"OH_Archive_StreamRead_Cance!4.6.0.2"OH_Archive_StreamRead_Upd/26.0.2"OH_Archive_StreamRead_End3-6.0.2'"OH_Archive_StreamRead_Destroy"
    }
]O|XNx{2l3U&r(pMv䐝le/ZQZ㛚_Tĥ \\ Jxn@"8RҦCFAB88	u[N(BbOήk+Cqmx ;ݍ;;;gweѢ	f`SLG;f^mYDyx"3@lB	?{+&.CU	GC34!7M6,NQ%"X0ۧ>tuWLď1p%ސ[(Ĳ8O$ۈ!g}ᚵ]JvRɑzaz*;Q&q,GW@1<6e,6N	S0qt,=-v"0<AEV.[&ǫJg^K'5]ϥ	;x"jЪtG٬dd)(aC47gLJdiVph{ю^޻BYvZ9w{,#\kVNyh;JY,3<<P9-sMx|u&aH#/k^Tv`<_61Ô(BlP:7XONtAg|e@k		׃AH5ۘygIUdg'&J?CB~Y*<`xdS|YonaK=-K5-@%(MK_mGԃ8ޜH?P6Nx{2;axǔ"ϼɎ"0qTҜɉnrrɊnp.i9%~ 0	OxojI:"HfC ѩ%yEE% %I9PY1L=JJ
&:MV`JM,.I-x2?lrм",J'7J8e'gO~`.PA^ztK@UT:'$%X쪆i9.fBX{J1mFWȨh<YY\_CHFFS*0HL-QLM!;9GR&XZT	TX*ˋȇ%&N6c3233 zΥ%NDV4EJ\
@P 9mPx{2qL|b )x 	;	?	$xBx[<a>Uٌ&+2p$f%{&Lvd2ItW
dg8'$%&gOve間HM,d^_ZZY59[,?] !Z\39QUlr9('5J:\9d'[KV%U*q) A-W, TmExyx[< DRKKSJR22'MN4˺dyLGV2$MP]1XKjqIQ~%Z	*
=sRJR+JRr3KJ&_Qƣ&5ũf1dEfqlҝ*sRJ+ gh5xYnG1@I!q c6)!Eаīwqh*U#ګ^V#]{uĞ93go?&C^4(H8$U\5/,#]?[???fa"<cW9Y>;oR3HDh]!ٿ|ybqǉS$û&PG#s϶ݨvmcGN,aO\8MFM<m|Lު>|'/>|=֗{
136k/ɾynuMmǔp#.£I*s"%7Znh%XԊO۩c\1=[ݍY "^$|GF l"Yq["7"!}:Ì)\c٣	'9gM5Khj ]jZHu+e >Qu: yQn 4UmѹjFц5#uEM0xWZ+Cfr-% joXBqԞ$" p)#WA^ؗ71ͩW]F|z[()hZV0
c:*ǁ]$H#6?j 	I!IX:4IDw`aR${6È%b*H)
"!CAtςpxFȰc; f#`/P@qr
g"slE耈8l&k!7/)//#?JX\rUH +懋H75q4i*x@e(cľU2F},U ="_霾l5:H?؉59ޤE,FW
D0p[BZ"=ٽfui|j >m] Iwwֳhλ{͸Bⳟ	+a"lD}R`ry1~^±Rb%|v~Ix0$jDS\ǱjU&㧸"1MV6fZk $oBjQ̰^,?IDa<eJp.ewT͓<ڐmU^ar/X S6,\4QHڱ)itaԁX^Y@z8In)s[t0gdyƆ}nmY]"Ԛ@26WleGQ/;=b,؆89zdUsPقj؏& ֜	cummfMRQ,F Т+Ƣ_Lb*[MYךl	Ajգ~x,8FieW 	K=@bz8S&-JQoHrϛi|u/YÖ}jʚfUƙ;q55Lo{p6PrZ	+΀p du@6/7gc"ssʗZ՚:g\Pn,q,2Kz[
]SY\Z
ZďCH`ĦݎӗmOt{5Dx
(d(0{(:{"v1aq|QTxvD,lX8l R??Qj_0_.CàttNmִ]ϊWOG쫳w
xYn7<XԱK%unCe[VZ*%S0zrwݸ@|@
4עh'
:${#R'g眙p83^:/?-D^@1:ꗫL\шP~^c:JM<n0Bs+8[z"4_+Q,b''?VJ(u&v{\cUb´>\B ,@?)4\e0ǎY'J,HgR.Ma
mHMfPt{奶8V.Y2煽 QQfʠOE;nR^քHb/2]Uв˪%ݯ3]UUK[Uz\TM|?}&z ( 1um%!UPMD&FULDIDK
D݊)fjHI/Ր)y5ɂL[3)d9~S2CIX#Ɣz*8z{Y`%z7kG|[@<}'tsoN7.(s**6;5#gavd=e;#zIޱ5UpȴDn#Z	@^U$ OsCbZz2=^^/C'6W{7{cLc%F!!͢0 }7
fh\@BMĞ?j͏mb%HQPwzi:-^#ێ?t	sy괐+jOl`+{/)DU"^.:Y-am V8@6-hts,>iM.UxV8q*vdprqCpݳ` sZ]Ci'b]aw7ud@[7,hq<c#giٯ͸MXşSPy wL̴w#owre{earz9:ڝ2!.`"nc2~N
 SťFV5o^UKæ舔xsnVJqs7:#zmwMuYĶȶG^XAŶ(ɤM7! jc(IbP{RO(QO1|L>;*9,;gLU2pu  {,ֹ[Ղa-|2PP(k,'`).j&D/tFZ~۱6]bn BCBygy]^b&+py{jm+]HqV8ov6yMj93CUءh8W
7]V`+cމr:}ߠP](bcxzpL5}}z{y	&L	lYk@E:j;5;Feǔ;Sȓ]1Ts.Nmhҍhӡz:مq\:$}|4V4dbc<	L^-xu+I}2;^A>0)ڄg|H /x[`ʫG⒟_&Wcn$=M數ꟀOBj͜*!C	=Snc^)-n|d@nrGɂ<~曮1s.K}Ր3:}p1q|vۯ^"'ƗNWy?\QQgc_Tw?:Y0ȟ.6ier%.++J!5N62R^?&ojltD7ky)'Bsp9!d`^f3O-bDuKBYR\lgQ{ԀuH~ v<%jR=x;NP_;ardQ.V\Zy%d6C.tݰ!ycتFuH	{w=/@?||Tɱق*>u}D=#_u?lK+F#FB? *bpm}+m	x;;l}b +)8x}J@	HADj~51Z"e6Iwl|W#8J˽~3{U{1*V/OtVKIv8nbnq: zУR[j}yJ<;ASaxDk	ć[pAK1,g9#o.R yfȨr 5mZyvD.&i#[VQт&P.+ͫ_P[fcmjqY,uf4q%rV<p>Ɔd&M:Pڋ%Si8i	=UP=yM
xNGRjh!$!T$bll,bl(R
&XfgP!z՛6/Gi&;kr3~v!NhjAg5L2o&S ngQ@mHڠcu58fWYF.fa|jvҐB78 vClxlAn]hR2+,6׳=vIvmtfyimE֠1ᅾ}Ȃ])UŠ/nE?j9zLȿϚuJ(}qҗ#k;&CIoʘ22mCUW=*>a2erOH:y'ͤxb01	<6GG$+@NIIȕI*%$TR$I$y	Cf)m\*5$cD*HXZό9hlX$L"2$1oʥbCagh^ϏH? ЙoS%xj0ވ8T _7cY\y4NAA4W,=?/L8Zʍ[}ؕ'F6iJhXR t8| ?U0oɩ.N,2aB 16hذ	
#`z-F?}LE&f/9`%]С>(eՖQs؇m?>t-ol˨{P3lT*b*_R	jYMa+ ^H~95],Mlt謂Sj\=?6a@:,Yzx̓?$WlJ
ZP%Ym8KJ}XFwSb\LS@JG:l3M)h38r[5T@QA/"9݁X̥4R&xeI5eG|R䵱On5.(/k{D4mDuVޏ|CQwa>|;v %6v"=-NY)oh
hm׶"R|9'F]3'VF-n|O}d!!]!qam0͆KX]qMi#nw,mEY l*EU*tJBdV\kXShTGhgT/g#(>FU%2^e.q{@$ers,ARϦ-!=|4tv8@nTrp{!A.I <E#L+a.utձ҂ԅP|=7x*']һ鳃߯?:xNGEp3.&$U@EĠplCTf;TUG]P7IߠAs]|gΜۜ{Krqiw|0lFbrpBxZRRAB?_؊?.*=Ͻ@Cl >|ȫlrd,ů=;3kmnGxxB'.[I'hgP=98:tmx}#'AⶎPK0P?ZKZlͼp}`lWY>~+&fNtQX^hp `@,q&gKdL`R f}Ovt{$2b&yB(),V*!U_u3"7 9N-wYI~؆%sw_]׵0+	ֵek'E7[2&)G>I%)jdv>683^"&	]ۨ/̋pbqEn]KqM|n@Qل3t30TS|#ÜI _
xWk$x*Ħ-N YԳ#>:>2z"ţ'C#*	>N`4̩$K.G[{]"es(56<~6Fީ99r:9g3x2~9~Ҟ?Gz(G@i7!д'M45(u%%xxiOaDu'8OKǇAfD5#l"N83l"7Þ18~4"H*!	벱tdAb-_\vIXLi.+%%mEoq%iF=n0~b}ވYZs[{R=$M߬Ff5U KdVLj|,1~B
¤2aR 3M3M&L38Hқ#E)SG9NXr%Q<WX\|
sBvݐśVn[8hzQIv^zII-yҚ%	-+3ib~G[{{oUYeVUW,ٔvfUmW^?ײN>t{tұPJo	Zgee^%Px.%񦊟5.
*f&~D1iUҒ1):b]HKAXMXe_h0a^8ޅ*ti郇@dxN(6Iۓt.j/콐t+; >q&o8!y,<.]~O]uI7VM DK2	?Ӕ1IxVnEV"
miM^%jY{ڽefvS#e±@oH}
oٙx[|9swΙϛ'J،`>q."w?_AA ):im4{p|{(xf#9M6p-;KR3z ȡk'	K"8A_V;/ed	<Qۈ'܆kR6B!;'li'7dY!t
Ֆ֌|DyM<"=Ń)bA'؊°J2|	uطN+Pĉ
1%
pг~#F)G_,X?}ۑQqȅYiW\lF>I3m42Ɖ)99%,b򒖚5T`5Q-DU(,,vZȁ?u}Y.E"qL/pK!(*jk@T1BdO=4:Wis-R 3
Hg X]cda/"_	6':/dFEeV23	v&lbrA.ߴnB"n/+w`w#dr($끐XУ fl#pʁȅC=%AWaJΙ>Xԕaw13)uCpmHF%ެ(Ō	 SnKW'3`GnP7*E RGF<XL4&ZٜWF72`8v|"[2uex0y~vLSS]E_.T7ds,f.#Tض'QzAX|O_'/T(&T.➯:jx{&	6rp6
?W~e6rqsk\Ue&X]_49]_A!h=VS.	+JVɞ*ʨ0b(LUZ7ZٹSǫ.#ձ=LqEI~jR*o}y^gW
^Sًsy)0w8qKI="akc!U=)Jh"s$xo  Bߎx`%`  A'-t\S=6z js'2Ҭ9&ϣ^27x4%&xed:aDφĳt2NՅu'~Ɏy2$y<I_ēg'b+$~n>jq{F3˜~ީ[dt<MlX,lh<OX'"X-x2Ix2A,to4@ /.51h|lTlXә=k4]pյhݛU)lI5y;|V֊fI'se2P[RŜlhbQf'?'#2B"d;Si%xht{aCd6%GV緕oWkxۗ{(g3W, Rx[%cy&9n)N>$39^[hv -|x[,cy&9oҜ e+Lxq5s꒓'O`bt=a): lvxq#mT5s .ax(}d&h	m~ j}bx<u7B0l6ך i:Xxv#mL2wi暬:Y^]ar83W, ۏ
,xv1ynd6i I:xWR7EZHfƽI3Crѩ{
AлN*lvuvE/zhF[xMJV6~$I~u귯ޛ=_{ >$l4$؜7d[`X)铈]r-eATkEB{K/<!:kT{岤5	4o(	b/48Dw\Ӥ{#ӟ˦Ib,Q ҉	ۨf϶wy%?k"8#D#>#/jS@\/PPda@ُM4.x~iM/4^ ''Mlb3LlƓ:(p|tPmx:SSto^Ԍ,iEa,cH;Q
Q&jDF3@6ڒe7VblG	h2{AOѓnqd08ah04A	59`TDSFwJa$2ΧpKL6:!boDZ!JC͈8$h4)%Av
GSMT/j5&5I.BLX(!(k:5/!@%S<Ru]ሼJ#GFN@OpIS+SJl| t 4IhHOlG^mdKcz$Jr1ϊziНe\(><+(zxT٪(£~:ѣBMXy}p2j2sMo'7H2e|h!tMbfM
n ]AҖi&C4QztF%3C9?8AՄkg5X.ꦦEKhp dzmϙҰb9h5mS"H@[a4Pi>4#^YrU{u=P*y^+URneۋ;q^u?ʁţ;ģ;ţD_1[r+o5X9ѥ/# Y7<ﰠVBVqZ*bI*kydNؠ*EՐ7V6SxG-Y_×WV:|V-%ށ{|
=Ӣns|KFYӀQ
/YX^R%>%
:qJb<Ϊ٩>ԶaS<EBeIg$ ^FK_)FG!e$湘gt?v8_mV݆
QBfË]5/ ,*沔3@a
~@?ln+䰪Xu{UIc?G? {wF.z"s;XOS,'sQ>i iMst&Cy-4#ƃfACO |'j{1}y<kvNn>|G-uQhd<_f~q7lxQ9r	ܛZ.dlg)f&X S.x}N@ÖԸЄD%l\`i$W:ڡtp|R(9	>[?7Q'i`f2F>뜧2a⥄q pW@7LoU?5 R.R"hSFS^A AE>XpBX,+'WmSÚM7^te+5} Mr𽪜n4Qvq\ҠIXδD8RC&=zU	.KDyEob<¼p,ס>º:E qе8(Q4V%5lՏTjS&0H*>dx1Au-sN~iKfqv|PjzfqIjQpe^[~NJjsFbdAF=B%м"JJSKPդOdqF(	N-qI).I,w&/ rR"P\Y*dKj"8	v*)@g;:d&+q) A-W, $xZsKD*z	5@AtOdJ°31e
	<Ȯ1Qys>/3 3)׻*ysp rITPk>$a^@=%!À6tVgI\#(RyLpaiCyI8nDdՑc'ĈDC
J<`2
1|BABšDLu4*C)`B"Nd$1<<QaEi#Ɔg=.7
&xYFcR@ P1n$)"xX!>Іd1sO`"HB(TK6 qqtDt3s}g yA i^@{=mk:D4 1bIy/U"DE&BTj$7/A#!A&A	C)Q^dIXqPsAͼ'CG_XJFNG=da.^01,13'*V ц~LH(!m2P'qCHtQ].&$N5CH_\tpHh
}!

?A9,JPqI.?HDdAJxI>*=\@O5ʅM&#i\B\3-Gb	 Ē}#+Bc?%e򯅿RB +-GxDV,4
幅R.W|xVF<Y' %?ޚ.-Y|sY{AS܁/y_nR*~k=F Uۯ;ۙ'kTs/'f;O[<γ~3uq5˩{Ź5<>Vkx\"ǿB] \8Xi	-8o&݁@=iu.N]-޻8`z<}
q)
|F>gX*'U|nصY\Ƴ3t)w}6S*86hn7-Rls݉&쪬7Ub~<W࿝f)^q7 ­
V a8\f;ϊ nfne<D؇
U6/QKo*,8N$QrDm-՜EJPUa"H*Aa$nOl( C\<	8K8i&58J][Y[N浅gqN#Yd(u79"
i2S껙|8\OEA2$>Ny	ۅw83`Rv7DtaggWQLARn׳0. ?2hP@WY<r4hbrpS̨U7P՟\U0O[ֳJZ"H,(&+tC8VˏVС
t<u֦6UgX9H0ŽuΩ[+ 	͓f YK҈T+1M&d _*Bt]A^NR@ՒȨ*)Vx'"78^\c8
wna-os[ise</ "I3w:uӨ~n5;\juT%!]7c9m3`X_>O}RW:9QmJ=i2/xj^pfy;֌yK̪aKuEWN!WC#*7JK<)H]SV]lߤ> ?߄oLտ
{PM@r}T2@uv5rZ@%r.X@jd٦|BɍRa{|!?	,[G͢~ _G*q8X|selm ÍvLccQ"v!?Ö0ФAOIa?1Lj}Xx~RڿVG)M^lԨfoi`~vL:fKq-Z+BF `cow^׌_5ƃ:
-X¤J|nL'WLC񉑗MrU=+EV:t0$<$ҍ-J{*z}YPF!JgPMT	9迴Z -(igO@cZ+fxڥEu0of	R>ř̀x~MdRͅqSU2IZ5Z4חrn+2T5;6Ċ'c"sK8~;_w<8*vmMĪyyכOC
[©L-e,(==f͢3LY3JOD\qwBҁ2Nj-0
u3l0ԗŒŪ		<̄og ·m̍/[CaBc=>]iC-:$ڪx	}b8mJ=	#)ArSYʎ5@Е~5.H_vcX_51رA/!Tnr?X	Z!&7{vI^Na7%&?q>JL|u,fOueMoyF
+-HZud=#02ً/r*L.hg.,.hJ:Ɖ|%&lM7^n[&4hFy&Jt0Õqui]os)^\3oL?w9ݘ(޾Y|rT%PG˚(+|?xXoTEB7Ж~0.@RtlJ!vGܙRH-F#&>c⳾h93wmĨ@_3s/e=!Oֿ镧NaT1IT~@e2}aTG)0)+laAK
w
s͹wE_(qi@kL O΂-viu.U<ᒈ&wGG񐠞k7Z(,ݍ9 дcu?P%u؈o:CԦFʡ\2td]u`%kgtxe*	& Tf( /c.xgޮR_j뷛mu9>>m9ʊKt_@9XbrbgUDI0
pMDi.uE^pV"PG{D
Ͽ*pA/i7%dq*~ظŪ*H]ԣu`bQR)/5kO3,9nu~`<˓*D;d$b,VF哣G@uGuYRܾr B`ƦQ	-J7m7UAȲY@bkzv?YQ# U'W @H d1/FELM4m"%Dqakk/	G"Ao?/v^!ώ/*|>t鬱;gS(IWi83IwW3{6%NIٿ\-rp
P	Ҥf Lk
t<\{g4%)F[:0\
F:9ʚ5M!hez>c8(I$(|Fo$-,촦|BG[wo4Ѧqw07cgGwwA'389435Z<Ͳњܤ6`҄*jR/ѭSɭg<.N_frK:g#'F߅^VBoL4gLGsЌN60	(KWfgKuwpOfzj42jh1Đw|t"n꾜??=R*+
7L)Z!XNU_LqTҕoWP8 	5z(u1Uޒ___>(ؖovjcG%j&qUXuI1?0kh>YNN~q4/r	ʪsSIi]1`WkN1B~ŜU\ppy++IK<=KsLٙIbq]	ˀS;W5y
621SӇ">V^,-/L\ðޑܚҞ5˒oEhڲ}VLTA{nozA똱Y*:yl4@9i$6G楉4zwpnM/hc^AHja%*~y l|̳M矽<!|5Ya.>/}*N/W堇Uz5@`/5YN?1Z]-=a1zeaZ%9dj9HO :8̃KtGngnP/ExVOH~_1
:=!Lb"(UdmuuwׄٵH%F"dדoof2}Dl6pdAK)Z=5_W4gTS*I>Sp1趏KQCIZQ䬠@SZi`RQV#/8kCL5As_ohjkuWX,\bBEc`A_zU
$^3	O@*)B-2ia@/$ӌzDDR&cJK6g+F8t^=K0&p1DcD0Q+¯pPdJ&3lFh ,g)g5Q'*9f%SFU 3`%D۫7y@NX&/Hi1 R^kb*^'523ΌXSt#'j3P(l	t|hRՔ}lE
6V'3sbh &+-a%r4Kx*aKXSizLݲT) ^*ML/Uzyr!Gl7D$X%򴨑33pwгuJ[\]'7$Z}F]xP|@Ctd{VtԞiŜM㧤(*)03f"0s<dַk8:"{VÈoE4ᷓc&$ϬK((2mqFu&w'w?(/ؼG} Mq"8_6`-m8n_-d}m+נU.3tz#sƯK9)J49Q0L1҅4BT v$QS榱ۉ 8ىc4Dp-Pɷ[)v;tݼ/@`_E7xІ٬]"+ΎDΨ.)Q

pI1b.9$EzT0*V)[Al׿[v	[?u+oԷp1̯0?Lk9&~6iw
e?؏'`07~q#m35˦ipiJ{M~7N?'vI~@\ꏧ8!уf5}5fY0^
x+^s΢6=Gx=KAHI!D?*5hL
?¸xw{qNMk;+iLBh[1;<K>yP6zƲu58H8ؕ^dKWF\*4gSN(g	-JlAeṰ<q#eR|1+
v [by
WK|wݿ5e8cܡjx͂~/M	\)[IxeX[:Ba/k̢O<K2+-#LT\oe,N;T!=E&zj}S6c9'X`CAPO41	]Pؕx]m_dT%5fB;1>L*x;$yPbFL,9E%ՙK2R'1KOa.|Y{f,+&a\2HZiMRL咘,˥Ï)n5y.lҢ
@sSuLh=y2dUUьY&sZlĴj1Q8E9ѩ@MnѐRNKLSWwtv N1vx/*
 * Copyright (CF_common.h
 *
 * @brief Defines common types used in **OsAccount** APIsU$COMMON_H
#define OS_ACCOUNT_COMMON_HC7Enumerates the error codes.
 *
 * @since 12
 */
typedef enum OsAccount_ErrCode {
    /**
     * Success.
     * @since 12
     */
    OS_ACCOUNT_ERR_OK = 0,

    /**
     * @error Permission denied.
     * @since 26.0.0
     */
    OS_ACCOUNT_ERR_PERMISS	
D = 201,

    /**
     * Internal error.
     * @since 12
     */
   L = 12300001,

    /**
     * Invalid parameter.
     * @since 12
     */
   i!W = 12300002,

    /**
     * @error Account not found.
     * @since 26.0.0
     */
   =!X = 12300003,

    /**
     * @error Restricted account.
     * @since 26.0.0
     */
   " = 12300008
} OsAccount_ErrCode>COMMON_H<x<0声明访问和管理系统账号信息的API。V$获取调用方进程所属的系统账号的名称。
 *
 * @param buffer 名称字符数组，其应具有能够存放名称G最大长度为LOGIN_NAME_MAX）和结束字符（'\0'）的空间。n名称字符数组的大小。:表示成功；	;表示内部错误；	-{g表示buffer为NULL指针，或名称（不包括结束字符'\0'）的长度大于等于buffer_size。,2根据本地ID获取目标系统账号的名称。S目标系统账号的本地ID。
 * @param name 名称字符数组应包含名称及终止符（'\0'），最大长度为LOGIN_GNAME_MAX（256）。
 * @param name_size 名称字符数组的大小。:表示成功；	+	表示权限被拒绝；	;表示内部错误；	-{P表示name为空指针或名称长度（包括结束符'\0'）大于name_size；	+M表示未找到账号；?$表示账号受限，无法查询；,!яQ,@x;(˿Ae.)d&{ +A?,xj@A)"x(J1-ɥLbkx
}>AS&**]3Cvg6#"J#PBZp2B ȭ
4d~
]jsIX ~D3YE.ҩ4["rw~{mǹw]aV!F#Td"(|nצYGs'F:VI	D3!&
D#I0s^L%E9aJ:H2hADoaмZ[JӒSqsHp?]2!\^GL]<8q>7VhL$4~[:En\ܒ#xmJ@ơ* MAT0ĀEztjMM"ҳOy0>8V:a}J^cP'NZSv+o(U^Z_t0!'hf~N{U8
_
qx,'"AZǚ}4	T!BEM6$pcaTZ;$;Tɦ(tI!3F_\1mVhK?-mLhmP5#ه$Aٶ+}".l];AW[i^xŷ!iEfɉL3u2Osp_HkPPfVXeszhJ<}<]}]C\t<R2KRJ2Rl2J&۰2N^v 5+xodCNf^p_HkPPwxV5U첞~!A~> P%zl/*J*xd&'+d*d%Md+dL\v v*vxmJ@!*
"՞E$m<H,ڮCHSln" x$}-g.2Yc}ll,(=Է*>mi'<%r@/CUzzuC&I*L<'}qMdq$,8C?tQ$(4RҤMqjusq`4P1")}=SmOOClbf6W
Pa;}%ieJϠ}obsj
Uf]d4lٽ[zta᪓:֛ek/v?{2x{o,fͳ2 CxÿaHvfSbqfrpjQYfrjwf̗oxý{C6CjQQ~AjQbIf~BfBqirrjqqZi,j0Ey%Ey9
`.HNl+e)|YbNfBAbQbn*P-D3k% O'scx[Ž{Lf3 9Qx[}{RfԢb̒ .~x*提供OsAccount接口的公共类型定义J枚举错误码。PE	成功。&没有权限。<br>**起始版本：**P#,)内部错误。+无效的参数。.)账号不存在。<br>**起始版本：**PQ&受限账号。<br>**起始版本：**P#w$D	x{-vPl&l~OϓS&pNb-69:&<i=kOZ_6x9eajlJq<];e1t>]|s?[$#, &r(L6(jags_ΜdGm	(<y>3g9%a"\"[=4O笀<4Xr\6ɇ~-"Υ ÇӵxV]oF}W\M"jҧn6@٬{Q;3akM[)sϥ}ܠcƨaxDίtT4*8EmeD!D?ՓIcU!hVG9&)ҩJP*$C9R4b%4ү[y(E߫	x!P$ᐎ3g\[^=QfَvlG]UZ2\4<ߐPT((5kJxR.zmSz".Zɹ#eQܽ¬y PI{87z9:oɤ7ÀGGBwGI ncfMY2H|-m&CP!Z\,%-i4:LDYfբKUpŭ-8j7j,hgprgSZn"\4iT%2uIO]37
2-p8K?R\`2>$9G!U,w3[ޭAR RxIc57l 꼞e{ϦEgaUXa˛vc/dvnݝt=8$[)E6Y[iG%PߤƁԑZ4vTuH#\E4 i$-6dHWy64אn,z?aQm55Lf+D'k_, LHnD4NFc>	N&U*]n{_vZ!qqazUM4h<)hf.oF`"xٞjGcMUwJ^uTZױ,$sJUt!0>yXj
]LR̔൭@B/`0F1WZmY:m֩GE`^JnK8b*[XVKa]VS,U٨.N??gR*LQ3\M"h%)("7DLkYα7Eʺ=o/A:c*WLr!^v®;!saC62ዀypP2rI%+ :U3~wQ8:xJrYgrwߺ~Mg^k-ÿ%A?x*2UdC"	L%t73 Olax*GxZǘ #.9xa/at#
     * Operation successful.
     ]
     *$
     ](. 
     * Invalid parameter.
     ]the buffer for one time zone ID string. If the time zone is obtained, its ID is written.
 *     Otherwise, an empty string is written. The string ends with **\0**.
 * @param len Capacity of the buffer pointed to by **timeZone**, in bytes, including the end character **\0**.
 *     There is no maximum limit. You are advised to allocate at least 31 bytes.
 * @return Returns **TIMESERVICE_ERR_OK**;
 *     <br>returns **F** if the system parameters fail to be obtained;
 *     <br>returns **z!** if **timeZone**': time
 *     zone name (excluding the end character **\0**	the value of **len**B	ӑ.}x}RkA>4Ŷ!^BOJ&RSXDh+lPωIvkI;ICkmR4UtMDmP73{ʿL'	eXf޼}<
Z X_\e{{W2n q:Ξc B[.u+Og&sƃ\%%KFfhBan"rRFR^gf/cQUHװG݂2vQAm/'EcI_X/=vkOSu vžoW6ѓ$ROgQ[HH.O8y_HRwOinu'CpX}T=QuXZO,kidƏEǣs1dhBFnSj$2u4ܦ{|::uZ'?#/:p9AvF}seh+n[mOö!owN¡%5`O/Awu#&G
.CxR j0	JyJV
JN9%%%pNpyfIrFpIbIX[-W, xV]OJ}ϯECi}(!b57Aqhէhcή&X(άB@	!۳gΜ9CG祑ә~B,P%) hB%G荲@4f\҄h
N8 3(usQ
!-2CsRAy&f>Oi1	
 t;P̹kX,	L[Yj[GݏD^t2.'%HbBT3 m@L7H'մ	Vn!2L"3rR'(RPpЎ QA~~vv#3_pЧ+h$(>+ Ī
(cʘJSBL G3j`0K'.Nj4Z^s$NO.r
tZXk}>1S1^&DPq~hJfYRr'+$dx;='ͥgJ'[)lҕߥbsT"Ф"6kjLN0%4YǍUrX],m,rJp!CNdFEXr2%S\/z`0_7k8γ_:\ nVUgkėNЕ9rF$MǑ_y, (#
'љEFrӀQyhuǃ+NۤKa?Z5y!ۆ3{"Ț;{]kڍtЉI)J$IYjwc߳gaBp9N	7m_a;g 4,5L:_奚m)e"gv:(zSvPost<?9M?<23+|
|nA'TekhO-{AEZ?yrPuZn/Q?ڽr|eІ\UY֑R##.wc/hcU"gfZQzT5箄S5A _Hèt"a'v=˯
B%(#v^HvhBNSi&^VCބl-Iir
uՕkCx/-~sػayߓ[ퟆ}tO3W/elx%~M|C>bt #1xZnFXj
-9i8"$DdI亹AX+idKjafv%8E*;ٙٙ9?;"gF3GcINSrQxCn:e#w|`HCz~݀'A<D#?MDÀ\XerWǧ,LȄHJh{rY$	N" \lhIs
"5~HOkK]OS*P}i|pf
61[<S. >P:
.y0*8)x<E<h{L-!wۺӱ=%5級Ӭ{J lr&;elaY#!wA`# $"d|>JhM.:?::?SH=O#&y wِE=&	\M01C ĸS Bb0wDsk*
}gjl} R`eLK `#O\>*f.W+5_إb&UaU'$ SBQ~ͭn^;>I\;ۣ<	|~ɍb~ߍ$U=&}[5C`
4
'>I&g|Oa^]s:/%Eѧ$#GǊxǗ1D?~R|EJJ;>B&yuRW;J:S?I_mpbWإUzL+ėpxLyKYpVѬQkv	`Ɖq'&e>=W*j%#R< 5!Y
МVx
)Ed_t.}};jkSJ.T	x&oCcT0C$3Dh= fPhq!HDi+F2R8_iw |	[i1N(5}4>Yz~/aPӹʾV9jzvS:}QknNfuPqA;M6pЂ1_NCoJk&ld07Zee~WYK}xk5σraM4XrX Ѐ5=xa5J3 Y'	eY@W{9 P4N}~  ;wMK5QpV a}6L&Hwhبπ#ˊEoc0m0\Br
w95&PG;~Fowv	c]80DǼ%v4>?$M
JolnPUN{7](Jg;ӶknSfگT<`EyJw8ߕ?WzձsI̍ƶ}S\įyh) }\.e=8m|wO7B1C!3PAe?H~q}v("w )(2V156=
kfVfkڽM92|o_o}o	EI7{x̻BiҼKɤElpF5Kr-eA%جٝ	`vNSՃ}ªTX%"`\FD%8y}qߘ*6q~p5jA{~pԛ\8'Pj^.VYR$LV^+44ǡPfץu@*aKIܙ-VPؼ0lvaG1oJy,~9hsJ	UGb=	rMt5KK!1%qWKLGBA%6`Y,M2hZ7^4_.3ےZ2@ɢ׉>CBu{{}7TAHS|5VNo~Y2L%9˫jV/oU.T}y:eo2b>
T$퇾 N:-</;Kg< RU Jw(.HWvqa.B鋧V;s3望ޯ4OݔRo/) wp?pg+6o+>'s@4pak }V}G%%T]|E)x̿E!3sˁŲ~ {2nk:ۙ3gnrU*<Y¢F+{k1bk	օLNC"I#VVV!Ǐڡڦfmmj1}[Pl7]SDxki[y9]N74͔Ya,̏ڻh$DC7歯oNA_\K$Kqf_NtQVT h魲^ҧq!Ab&pPN6u0BX u	˜rL&LNMuár)9L!F"~ M"9[nMƧzfe1cw1ߵơR!TUFH}{KQb[o(+Wue6Zx8<Iه&'ZFVҢ؉Dytn̤"+ P/uQj*UY:"1E :n^z4OXj5磣)++L;4X1~4[VAsyOS޼kf]aGtS׽P٨<晢Ty<=QD   :[fwTVLUYKzpZ2Ȍ0S:K
8Gne|i>]`x[фƱa׿+?Z2-!ՠ?U͟%0%>Rv^UC21@OԼDM@'oS+-KF=MbIQꉧiMmiYMe5Z#jm^sB_+_)sBrHOwrB0ΫC%(z#IdP1+xє3GqIJf^^zV.)C̼Ēb#=w(k#$1SFy<ʂTbC̢:*\Eřy7  &ax%V'ORܦ<Uxr Mxє3GqIJf^^zV.)C̼Ēb#=w(k#$1SFy<ʂTbC̢:*Eřy\
 , t'tnCxq1u'l\ 7\x7u'ld&{ofS)`  xq0u[&&Nol3KRK22K*3K86;13m~vAff6 JxFt'?1d&%U* ̴Q[XM&gsJ-.)qO-2فms^&nCZpY\қ4N0N:8슓9T'hKL6*<9D 4)N-.xmR݊@P覷"x¹fYP&]iHo0L2
U{7	\|}}/Ȯnfsow?Sx[`FPTd2jv<}+	Q8;ucm7yop4~:NnYpr7(lF JSD2X:4<`3	DJna ϐQi4<¯d+5e,r$MERT4eSPp۷yDO,/Y *;fqu+n>=>ʀoڀY0tyl;sױ/!Es?ÏA/hBd){"e[!,Bgfŕ6Ƈ6ƻp	.=ZS4W!,vYWyk!%BxS 0'DxkJkLp=$%3d-f} [< xkLkL۠ĜZ\@  5PLx;'u[l'2Klvg e)mx;#u[ɺ3يp)h)8d&%U* ̴I J!x;ړ-Lu%&3wl~/>9PIitdOɊȦ*$%L^(+?YStr\CrM'olƜW2yBV/Ɣ7ybР\yřy)
yŕ0mfWeܪk
 1xXOlG`;14-~8;m(Y%x	64dIAKr=zX/=t٩?=RON|}ON~.=z=!Z]^F"p44H~:qKu\1̃D|,kssXԒrSәbJ`l~*#/NdMZΞ5ZFwfIcB+fAŦRDQW-ʒoB}@c$glt|ֹ?>׺ѹW)i3ǗyAaE,\@@6^:]jeHbx>zc!Ү{2IPWuqvM5]Gܳ!!˩0tan&`^	$uX+q"*O<L*YMCU)xamst!i.kE.zs	8T "I<AY-g#USwAH)IZs{,s"޾m`4vMj){, O̎ UJ1]v<0#fMC1&q!h?J+	=Uho&E&jD&Q׶m8ib*D9^HAX1Z1lîg٪}k8VE*dVP` i0 D d	TswXI	5d@t̂]迬Oprƞu@fQը02iRBKݳq81K{iFIdZ(~AKe
|%C\AF ip(vw;cė2]ڂd6Z"v,;(	V6',H+vҼ&[=)Ju
m-VUpkA5NviAEKB4J|<*քc|Yj͊ Qa@Mlebɰ U|yM"u\O{0(GLJ'MACSdD;U4u]thSVa7"eԨTYkV/o .TR#bQ)$k!k ވ,	,En5h3M!{;_l}@^n޺Y-?Io;DDb}.B"!*kl1-	R|wW>Yg^ڻ~9tMP;ASjAG3QPvn 2x:?x߲PmRzz'f5Rtb%8H/V݉AucAڢMm-l;df˲Q͂OۖtɶtT(YH0t-&6v ?9l?3wXR)57G:րJU
ZAp0&=tyy2 <8f¡?_6N%r3S r4v3u3Ham(;;+"XPբ̨t6vp%íd0b}͵1dL
C,]&*A]]upk7kpzÃ@-9('2ϋ8DOy~$&ߌ3é3w.RQV:]#~/".&Lp,$*X=Dft	>3(-L(0CCIԵbEH5:ϯ\6R9HF_^8ti<:Evpui\Lßo~2x-jC+{^+ HOx)j'?1d&%U* ̴Q
쓯p
nz >xX ZZ_	DISCONNECT = -1, y		8	2
,T
+
-

#	device IP(ipAddr,Uoxu5j?ﹸ7f`˵	JO2ٓS39DVAPGK\RKsJr2`8٠{0:cri@p]KqZ4FFB2s'soޫ|ЂɽZ2hqCAbQbGxfZ)wiy]UWsl	phMvE-0PHLI)J-.B|6@^|]x	ʙ@


y99
y%EmԴ83/9UD@ jғt l(x9jC># &FWXxWi)fҔT̴̼Ԕ̼|ǘ1o^ nx[#%!%>/%{rk͎,Lj327?fdyP?51/եvC6iɘ<.-̼TCc Gu#W6 Rv]x[#&1~#&~#SCZ̴:'sprwsquMZ2&KAK83/9Ukȕ 6UxuRMA7F$x	9ƃH2IFv$3L+el'CO'leꉛ)^W>վ;W)	"w$)RXBPs
@xbB*H,љXBL8,Z+@"MJ6jrEtP38(zl88	=]$Ap\?_Yn)CM1NDbh	U
ǭeu)葂*W,1Se!c3I$=x8bڭU}j'8d|'DnF}FGVoϽrt_y^'VU?_+z<&țL<l8B[?>z|E2f ɂ*|cXQ4w<z1tF멱ɌeLUS/UqVɍp;xʣ7(\sI_lʶ.	X'AyRXO7
7'x{ʷCh$VpJ̜TD ǥ Z
řyɩ
P}0``hdi X%R&*+$(dG@{kpp|pcPE@$*Vd+$&&TgKwSK\K	)wאxx7G`p64, rj x{ʷY`DݼҔT̜ļԼ}7(S?((>9?%U/nr/I W' xנxo[cr7%(|F~"?
(O?? A@,DZ(1HFC#K 0R $	,'˱ TOx!GhC*;kPtR0}LGs *x[Ĵi򩵯*ϧ1s5=?Ni#vađmaS,>-b͹׬-I|}ܻӭ "3왗~}bua3%x[Ĵiȶ羢̓[.zg~)bGщٜ";m.l8-lj^0ۜ'@RsE26.fYG@(E[K>\O~͍ٺ q-x6 tTFzY=ؚ3q+!q7CWʾ@KvAx[ĴID)E/=|UD]%i?f:W'7~G k1<xW ^Ix\Z|ņ extension.h $񡅞'_>\*7P\|wBmT˷XSz;&hx[Ĵi{p?z5;t* 3xW[S8~ϯ8C_Z&n;MOV-2!#9W4&3|;߹߂}b&xm?"SʠGYBѪ} JWxISxJ%	 	~͟7*K&86؛?{Yo1d\(J{F,@Z(`#O?]b|_uC 
ML*tim!ǝ6-;ӵ~/]%Hb<)TB5#SXR|=L1>>RԔHIY$VjD<F8Y!8[M;ѥw+,/r s"W[rPdЇB L٤uCJ7 D,hF,qEJ'ʜ:%L6˙",=9vi:3J
W+;R9gFI8y*oO&CedHW[\#{᪽"cCI7}]
csWLrV&pV*wQEC15ko8D)SBo1Ӛ7ld^s}ߋ/[oЀqnēJ)|)UʸjO\5Q;ȪR^w~PtM6W!9y`yCF*([qAMN/vm"Ghzzn{UTo㋂(݇qG"+~/GA3LZSRb!!F7VNB|wؿzG^
0tڙT,Hu`}'19v=5"INQ0ٵ>
~x,ѮO,us@YjW=8 2|jX"1XxyeP#*w]n< ]|89Oc\k-ˆ0C1*w%:Ht-=WpBDg;ns^IRI7wD݀7X͌nISJSi*6!2G2g	o~l{~зp)0ua>&[zr}hHRO`c?cS8Wt?iz%Xk(4+3q溃8޹)%,ׂaqZ5Ly;x?w*1ן-Q_і;*4z\biZ>.9
ZJ1~d#ZVBk(/UcpĴVc8p^2/gw}iiTnm(QNoz\O\[DH"^ajvbBpL ߞqXeA<es=^ Z)zm,ZÂs
>DQ|uY<n8)7H\ף]
,Q}IJXD6г᥯i9/_@BSs@Ϗힳ$(L}z}Ogkny?mP;QxkW9-)#w
OXE'nffɾ+ xkWiQސ:Ut;ff6 5x]ks:_IL
g;Þ:@[2<X^Ka:Jq¥f<z%YTCM,]:
teGEITuUUpBm)AM'}'.F+Y2_%/86(Gc:#<dsgFTLϠ6cq 3WX,X)\g1FlP:to%;G/s~L*pq6ٌEp	*5lKMGhzG6ha 5Vgg~o^!O+- 5&#Pa|CL:&fO<<!hkE!rU
ZSfԸhԔ'?al20قآ=̧_?)	HiXjR2dMTA
ZUA]j3:rGIPLy"7*u&v̛ QS-*ע{ƨa74ڷ7E;K4g3"\Xĵˤ@eV7׳ʩFh{њJ(\
9
W[k0'Uņa:3?RqռD.ۢcԨŋ0cKA+aLo.tLPfbw.{`rNĔY\*h dr̫]ԾG䍭X׽
0Պha(!U:PV7aY(;/fI
7T 4ڎza ||-TB;JAfAc7h̕vd%0ȧr4P-0yNȈ}ݾN,#	H0g0,ׅPnhF3g0^)s[u;-Y\&Lha gw]#0:pClo6Ss]0l+d-N	9sEkmcz0ޚ9G쩾dgXA4 _^#4OZ[}.A
n		|,.	6n<g|D\%h61l[6i&'@S,CKi]8ݽB>v\[E^>%ZuN5Sb-Jט.g5G;\;3gҡ׈wE
B]L]MAq)'߳2PӷJ YR˥ MeJ*©nhgW.Ԝ;W%UO|Q]w
e_jҠr0-q+wz)1J9B
8UI1bşkJ]3euVi?e6yHUSjTX-g"OT{Nc"%%A3!(+vVLfҜmY 1!522p )=oE?Lp|X+[I :~,c\@t  q3Ա-̤v`+ YE$XZ5w,:Px{S,4̃/(k4blj+DBJ3MIGhԉ!yDHj
9<X`eaz|46.
w]Q,bgTNU¸N}њqw$ԴX)k%$[}ٖRE-I40.k{o! Lg2,Kd:L.Rjҽau;YIPx#}UeDdmG|ahlͱd
M]l)_ⷷɒbƝF&~Y&K^eQ,udiV.Pli-zsLپڜ,8V"3flt堮de8ʦۗkHx0bQn]MwbH΅iM{ynPbcޚs.Z39,-͊qXRH@WL4:#b&M{1S>yLƪ$br[|ܧtR9b)Y;{Q=t~zIƲ(k2Aj؏QwF*v(4|8cx6ybSvo7AKG|b QVFms>EG݁YHNOO)QJ<$	m*Lm3A28m#;)Qg+XU=zNĊ/gb";=6&ug*#*R.eNl+§ÃL}'2Zر gM. dr}iG༻@/;H
*94RAw'a4Ny$*	{8}GK>ǻF4'7^N9S=
-3Cīk=msnj\/\*, vlΡs]%MR2M`B٦4T
Ok?/rf|/87ӷNIK[lOlT]^]`dHw	Bvp	Pbw!r)"QEM$Zs,*&獯OB"-/?NrxwZ6Gj2Nc8(-&VMǿ90M(]"'Os$8 Kb5@';(L35|WNM0ch͞HU,na5tAٛKsl9&҉	zI [cqxVmo8ί_h꭮fC*A:"8`5Sʭo섶PVK<b:-8O+GvO>9+dzSVN:q̑%P	ܒPjvIENAu@D9YA!4T!W{"/3N
_r<u3MМҗ@4kZh],KX!睬6UAN7n)Āg+ %:E]20N/%׼AT/d&JK>fk1) Qۀ|f
M?p^8 [F60TyC)M&7j:c.vISWd`.,0"(̹2YU`b`2sM]z!Zc%I-RT%xrUj<[r~$g)֜SZ;JL	R{Y	KVDÕɒuF|)MlqM,6<IyT	0Sjd &%Qan(JQRBRVߌg\J(Wl)=$r:Ģv[w\7:.f֥kw{SLN
v<c/Qo&6WxY0KwoAfp2y&;CV$<}V{KYҫڦ9L6YL:O[vc+sظr\Ɗ^NEq݋mM4eސ᡽UQ3v[7n<Ϗ"져'OJCILb7w;q{PUY
ifaʈ;eFYcSk<'SY.ɞ:RSa885^xл=T]TV<Ob{ll_.
j$^q;]g':y;<c`]S3sS#)_JUKǵ6xi.~\S40ouU.C`5x6.J-O} ጪm63<bjSD١{NZ}ǿnǧF)C?R/)nxeOKARK$$DECAEA@
6
"t+M3V5$H-=nЩOQ;ήI]<0 ߊ3[+Iz۽+X!&*
R 5,$d!saxD5XE@xV؄\(H}WZmlmp,4Mٴ+'p2;B$%[>kTRԤvP6vLN%
Fa , Wwxł:n"X ջ\>Ϥ|b:iaISx(u*Qÿyѩ[w:UP.b<!Wv!듀汶?r
Btң-tM+!
9&66՝UJR[6˔kͳ@AO|_5;je~ u.&xuRk@Ew۵TP|PkD C[d=b$l2?2),қw9G/<ѣ^F7r/Bmf$/￿9ƷaeJ"A#R!ҿPK0D53)B2ٛ7N9s07xݺTz0dARq+s@5yF[$<zQ#ۄM(ee~.o6Bʂa$%V,vO7MTl"&asY~1,zk :o㪎dܷγ'/M.-LRg8w5om*:2݃8A_KaȖyx/tRODn4TݝVo}Q0xdo2www_Gx&|XhF^ɳ8'o`e|M|;6K8?UpNvY& \M1x;,@hR66.MCRp(KNU02 l>V 9 axj0!4B#<t`	\wdĒ(ŏ}C>P_JB{;{'aM-#{K	pQB+kGTjox^"0(%RE0,Z<-)hKSz|&jMbfEuW墪$(F(UuS8H49䴬fi7.4 ڠ̩42J⯥iy	j`4Vlvx;,XpV͢zL "J4,x;u{LX'Oa`NI\"ʛZ^WaML,Ey) 3, px;ukC%),+Y'od Ju!dxĽ[V_KAK9(3=DA#YSDHM2SJ22SSRJ*
3J*J2RSR2sR)e9@ԼԼTb6T5!VX'eUSRp yNRxk|&';v=⋆gkmOly6mg<=ɎK/~49623 NZx[mo8_A_@o%bi&a e&*K:&7CR/䗼n4ږD<>Ol?|<d#xKc:cw2r!&v;^Ć$,$bP\0Gj!w"~LtN<_8b Gd]FحAGz~DR$Z?S(ߐPM5MlfR	qUMEn\u Zw,H< ( Kg		AB.76HČy$B>ł0|HfBNnk/ys|:ltICUkXW_ɧU ,zm &Gk2.cF#мqLǌz0"p#j (S.
BE՝꾴t88<~w>y  wsr60t@đ؂#@ oP0SߛaiIrFCꨶO#A__i1'F4<ljC2'YHle'B /}B
	q>qQ2W|k_/v}w^HJAGq!LYm`MsR)>BC*D}q[Ĳ]!w;7Ej+!0+sG]̋ 3=cA862f'/oT巶O_zE+TZ!Ge%4y#rH%Uߓ1i5:C.3&h_Ķ/D@#: @:F4c"5HAYa֌o3d98$ӡ,˘7plM47uSbM(au_Trk34(>OA2h3yF/?Hۗ܆\L
V̤C=\\}0Ⱦ?20Gdƿ.pd}FoQ*!϶vWk
(vX#=,ۼ.~XJkD$W@n[^.^u?;aMOtٸluN#Mԇ5%1}uZF3xl!^wJVxCN BN/\@Z~YJ	 ONair~+rJ s{߈]hHIV숤ZY.8#&n.icϑW"{'uʿ!5$Ch;03KJ& 6kB*|QEfؐ)!BǤZp7Q2<}l)>wb2N^:Bc2{l~3Yla~g$$5T^:eyud? 24YSqyopmȀFj㌓no r~\
򸥎A΀8z|}߆.$y#>vI1dݣ;C~&ko{/QOkp¿ڡA:v-U~x4Vg)91H/Ǒ|'?`
-A
ھ;?I ɕQ_0I7eԦ8uW!	c*d>CK$P#C6n).zQj^C^{/V<:d=znm+32f&ԒS`o d1U$@t4hJr3 >Ǿ֦c?Rn=1Jtv.IfH"\:X]5BuÕ0
09H~'R*u$
eߚa6in6ᕩ̓)i0 9c^7$x\Y:;!F-Ph*O/SPɝ tu&]CB/#	,ӁKZ]$
WpPuyw8SiKY' 7Lq/iZPδݣc.jh*AnTncU^Y^!
Je,	Ȓ9MFLZ	mx<)gBfZCB\9);MŽ_p>}pD
)rʁE璎-/LU:v-Z!Cz'.-r@ay&3g0mFo7O3y+RKGX0_k~\V? 19)P8=U;; O9ɟRKjv0)a9$n}ŭB_ҭirvJ#3uUfȒ|O<\R'{kS
R9N$dC_$У_ ѐI5nOP֖YÅH$&z"r͆Ael=X}C!^ S*"eaq~eD}E=,C.Hv&,-Ԝq ]w;AAnzF^-(-s{Xi
>k_s|-_ʹb9W}j		r8=	QXBP͖$Q%(;|V LȝG]mGh`Cf_q)8/V1\Wt܁/iSF·07KiB	A\N10HNt^`_VlVoF1
_!svh'%ݏe_<̿1pI"i5z:Qٳ>ĲFbh'Sاv[{KJ2XYNzuV7^Ժ"5_Sk3?wr1OYZ}װˏhȯ픂Us DzkD.
klU?2ab*y'd]q5/hK.H_)Wߤ_F;*?:K?&xWKLW@b1310HCpFgF3c-.>RR,H貋Vg.*꾟RwU@:̛=81i"+<NQϦФ8bBSiKeW᧗*jN.))'H³7#s3G.pauo"}XDcB-i!bXRW3Wca-J~rJ4!Ns>"Zvl4bjY$c%khT1eH+	r\8epvZ7,Wh\dcTZ&1514]^}%"ѫ!a<34L 3hA\8/hy	Wǁ!{p0(HaZ9UoݴWw*jEcqx:6xmBk	fZwδ1ZbAXdA=>F7uL8@tx{a;ǁƆp`XV&"wr,eU4$68h}>8 	\A+el.2Gy?E򧨻u\}@6kkH6"Jxh߰'jAhDϤEYVX"vo\IY2$1%JG}?s8}'䘴gT$E55%JA qB:fZ\ҙ4S)e$`)˿"}sº
e:Ŝ dђ丢i$np&|ͨcl){k\bf@׮NZ&nd4BEg
Xxo@>i%YLIyѸI%zL8Sr5!;A7Z}UAۅCha#رd*KI).m1 ToL续3ўKQ-4t=IXFIRI#:wA:,8zPL
ܕ5,M:>~|?[Icscsp06/B~sVlADCy?AB42,/䦈Į<Q_UV{ˌ :7aaᏱH!T*3ә^c&c%Xg2/2IFTOtkD^dБ˻JSUX||vFx8ȻY/fPtz4ٱ+B],?J1X2l3v1cjLl+ĲE!hJ^c6b{˵Ęn̒C	?J12O5u+C6E]I)K%e%1Cv?qiUmY$8ƫqs:M}3J@)P_OQgч}rXSxDwv{70|y;oӽp]:ZMʦi9 DZfmøp{x LeALbɌ4Wj]_؎%$؉.|zvVl,@?ǘwYL_ם=S1O6{	 CY.,?{Oz˚1>9.C<So?e\	6ppދmM'@/ԉ%jzKauV]6COI#TZtǝY?:NpXovPAc|ӼMWlU)?ZګxWMlEVbu`UDe4&Uj Tdw;ڝZd
'ʜAHpgNpW{ą3vbo$Ep(fy;D>s2PK˕4
zCw50>kR35Z6mײ,\mLu( jC@(îtHv|V4D.s=#%::qr}<,c[p'@DG{*LX< O_!a3Ԅ_P&ۅk`#[hgπ:mCJ.o.f$x{޴]%F%z55Z]&X1ۑc3*Qsc+'E)A# 	i\a	is<m9{LSxU(QK|rP5	DZL⺏kg3+byQE.j#[DImxqT(tC)b| AT<"@K|3v)*
}|JDX<O8aVS.T9QW9~c,akZf+:Pnذ
rWduLe.H^+ͬ=d9MWܭRپ,#'D$ {*p/VUUgz5xH]JNngߧf6٥ )(Bn!x!>
DWNN\e7j_@Z073o8PghN9l{wϻBf5CʪĲAbC]L\0I )z~Zpn"M펨-6&{KDv$g]<tdGg^=5hPvJrŭ[M]zpSrogo|&ο,Z7tڢ8){K	zM^xkra慜̓rznd8m>*xy9Frbl&Hl l y#& $x]s:BCB<nsKm<`qΎ1x6I{-mm&&Xts~:::;humg;5ޡv}B&QGA\@1ZXc"LBF%jUHK{Y:LMFLܙMP6nxCv
843"݇$7}ǆNntƲzr*{4/ɚaC.tK;3.ҧ.wM~tMߴuQw1flzk.|b5BjvԾZ'ٿ>|FvFu_Q`^?suW:c@?9.iilU%&6csaNLfM]ZMI53snO"wvwiOǾ=u텃펷e1k	g@w`֧C91=^B'؝u\q8:ݹm-is8QhL"J:rJhILLNaԥyD֜bc\}m.3o;Hó{:5L禟Ҟ7F`@7ڹrB1[A=yA6jBRl;	٭;o56'QGނEnzA٭!QP{%eT	QV4|uH*'-N~f	3U`j&m='pEDD|KH0lL\O(iE@[91LZ38	v> wF7&ӿ\6zz5uqPY?d,: tMbebYDyYz.<$ȚCxT)'2x63x X|}OL<@vCYrt=L<M5Le<L:S mk,Ѿ]L;S:O{mc"I9wlд<tqIeYؕL8TuL_]SR}ǦDeh7߯ Fl;)q-JLNVo,|f6X`1(3\뛡#J<Ndak
%Nu"Se+ߺ--,tgE\F=ȜS.RdDGg1("+A"j,lxM=xfsvHI[igt;l,av/vuӵ}e{	}4 8sX Vs )a)0A"8͵3f^u,
ƚ~M9:9p1U9_zz|YYhC	1sJgI˰dLΕר%u\#H)*UGÊ(MJm~G^OC X}XKKow]21Bn$:5(+A\_xĊn-FW..3cͻGgDb=Iڿ8jkuS>ae4A$yr_okt&T0Q!]o8qƴk8_*v6xu(Q#)Hf!AQMkh۳⺵0ut[R9o	M=i:i)ВܐCZ8A;Cz34 ti!ٗ^`bGHRGW	H{ԋUt::lǰF%<n
Td2B9Y'M*BitIUɇF	gO_7t+!l3D|ZԐPvI|EHi&pL~~cfZkv1~ç1S32`;oaoPOzW;6:z;ٵ	Nڄ\`tBY*'=jT.FSFjf'4ي}4*#'hQȪ~5Wlk?sz{<M	x9O?`5j([@e*hNH`Ipjּ5ltYϱvKIZ/`AuqG(YXNOr0~,ڣ6pb~bH[rHG5Mtmד{Ļ\X96KK+e-Ѝf焱x4T̒>Ym$uH5fPꐽWIA3uqyt#btkwWu)Tf9N"l4"C-Z6"-0~{Q gP-C_x6l]8]~GE6f=Ɲl`ctxt{ޣY|E<]y@R9{@h!.H,lboF[O=e>~@/S;WeqOו,\8qL]R־ŤT<.Z+^L
ј	BNlѩ@<9$I&w9J*[qxSIfk*agmRC(a>qy5р\¨Og$ KjJXx]Lz5B9ä>-'ZH8n5E;.`?^.2=M9({w\<좑]qyg"3}
#Ob׺0!kn<Ĳ1"Hej_'<H_ypZ\ 3eQdt-e&q0`*|\Ptq{evh`sI]H+}Q^sEGkv/xfTh} 2T0VlbC-sEE*1 qKY ?BUa{",p3}<O5) {X 	7"4+@-E5WrDP$0%3>Caa pB`$^	KlT{INu6cMVr5зdd`.<*ƠsΥo?55=ڹ* dmHg6+
k"eCf.CF<E̎Mj}HWl1OcАKBBjXYA"ʵ2ҺgJ\_ͿH"4 ޓa,+U	ʱf:aemN-jfb0oA[žI"Xde*:~LH
^8|#c凞2Ht[G* ǟ;
=\uGwUs0̰j5Dktȱoٍ\̓yLsgj=ESz^K":jOc>%hպ !6֎ ~|Dkm\lSVfEnQJ*{fP|<*|%ڂi34*3+HuA(Y|}}p#bÞZW],*Th+kV!XXgCY)n~`J;%鑂ݢ}%qϻ[Fm.	$PhYvUY$IRL4%.mdJrr{`d^=X;b/fG+tV;${Ra/u-tśXh/q<ll &b >%w\2o
Sޫ'KGUxx<ixcwpy	Ƕ5ut8n.\4\EOH1 xq-zf?
$ ⣥zCP(hHX.H[}w[MSY Ҿhm^>:~'I'<$[B挒:,kM$^rnpm6Y	>ѽZE&NΨT躊tGSujSX b0g:Ir<sL]y{gŉ˰]&ys	yO{H"8J(~[qzw	| WXAl+CM^D=ImNrw;;:Gl_C{);W˄P
fDWlFl˽_%}%D+],#]	v:=Iy.W$':
>ҍG_	V!M3vs5b,#f
ܓ)8LJY.xXG%ؕwjyz?^˕Jըɻg]$JAM=5)Hmy2/z7B3r[9?AMR9y׶{ޯkM&Cqݔ%ŜkfF9=odtjSgا;]z%7FKp!}2ksvmtYst-RKB!+A\sNh)u̥ڙz`ܫ2{\L/r**͞v*}u3!kGMR4B1)jMgwR4Z̓hrsQbl
NJZƙsJI9,$+Ŝ?9&1	y[85b`;l|Dǥ诿$6F72j}^:ԟCݹ/S8$nb9S:)=&&@ӟ6ȿ̴B70۷:H04ٕ.rS$%m*i?_tUϒK҃^qGKi{Y+ʝz)Bd;Tl2&]>:M²,Xγ3){kIt32
SQ':7/_7~~B%,`NI"eN6R,{S(9z$ڿ݁kڷЧiC~^\z!L;i,ّbR._B'ۢ:o M/_9)$ӣr8Tz![A>)|cq/|c'vڎlpS]Q~]Q7ܝ2f#$,llH.uM"wơsBf8G<؜h7q?ɧ7T3x[kTG>&
j@ѐaA@`j|A7QffpDyBQD(=9ݓɏ=1ݳU]=5=Mh6Nw[֭{kSܡ6rs]rVyFرNog?yp]7u*;856Lu^a뇹lǏksǱݞѳBd$FD0uDZ	ggo|;Ji%{o(RvD!<MQN;?lڄ:y~JlC-xArD >x>9{|rޱ)+G4__@ٰ ua{˟{&W[LIX$W2	i۞j'q&tXa,,EG;=i=P	J;wF OBXH8LJ8u)z_b/A	M0d"@4VOEkD*r`\drɋ^KԎ,([od8]:?Ɏݤ^HcjŔe4 r~.
Y(qנut@u<0?b^N5%~5
X)NqLPUy&gdbklgOE|zM 4+Id.t*Zb'ex@o$TļD]d1;;#/Rè@ %Fߧ񫥆 `/N\1w`'E0%&:"*.s0JX	,KYr-KP44?vlev\Q;w3;}y;lmJ؛'dKy[7n+..NTAyxm]%;è\]9s%<Yb{aHes3P{ ލ V?TArp׶(SZhBc6=4ER.|1i132s1#4-nYrT$6fXT{Cw 1a7l*	*+Fe2EPUDˣWȿC<Eg[e([EaJx7?rB0#L!L!,"Z3߭~+J33ϝ!s2h:CJ޵93 I-4SDT
0	^\-9i4(jM6LW\yBwumI9Fuwd{ARa;Y?umvoݖx zݜa|sl];lev?HfCa%}y6Գw.S-|wvK4ܑ/7&JC2.4ǧd05H)ГZ>B׏Vh/K_ٱ_
:}I逌bw`\Vz^eR0n
n[#-"BhѶz_P2Fz.]gT=:Bɜ|uCM~`*h-w;ްWm6B|,D\90iW$OId, cUvGBU啮"Up) KA~4Qu3C¶B ^@Gi䏆^iK.-1oQ(<s}B{m}Q9._=K#٧7tžNiީjiog~9RAO8Tg57Xö"zOBbhS.
IɎBEe!8hOY_2[A|it?%ぜVC~v<Ta強6WdlHDOhA릧߯`07|Z<u*4㩋<7SK^mR|}ךDFOÞ6.A q|,eC	㱀3֊D'qߍ"uP<2OPxg
GbHmo))ݬ{XH}N@8o9Kl$Xm>V-tdڇ	v`';QNBJ%=g50ddnE^$9pp0{#`ό]I"ZrVzԮD
$yrpm,S۔y#'Ys	}gYx?K-3,@@xhQkw:wa Җ[
<۸膌m]h"N&w3$ @/{mMl0~"YG|jŴ4d ¹D

Ry?i
BvO2G3QG+v,AP4c$'[|D6kd.훞Ǟ@Tuog<_:Śj1[2SM[L|Zc3l0ލ9]$mബUr)DxCJ<Jᛖ+ޕ5|i ̯VS	J/1ﳃe!^~:A)|/kV#	?OCKǎ 0\W4omT;>
O/qT<;デtmVjT4?X5Wv4O|J{`c҉Ba?]t<~;4}PG:^Cҙ`3үp=h%D[:ggmg?$H]~Ns7P(VDϴEdL&XqE-RCұV4	xzEJ}{S"Hj+J͋~8v
g^b,&xee6FTDm+;+vby2(ڗWc,*w;0f;C\,=
0bO7E\&-8Uۋ*NxZ0qN؆5u#@bv,F_yPQ.6!eg0yM;·Z7wh}'ghֱZD㳖n/YȤ3֑պmUjL{ś'Up~:OZ2;B]5TGuX;rlK /;?LTѫ,h5x&HQ<֡f|Çܧ}cIqN%͋d #Op؋Y:\y.H*qH8+U=-vʯb>Uڡ$Ȑ0j(T=( DʣnnQPn	?mTS[q`e_)_Wv|	Abq@T"H9 &_8u<C:wND;
k,䍑yL
)cؙvmt
9On_{)يaHq7<&L=̝%]0oT:xhd,ɬ_;^b:S~-Th;`BlE@֪ZGrv~Y߈<^W5nTn.C>{F}g
F~ .`߃E/K~yoN./5
	<#kGD0-%B$?!F5b/(xCY'u'п*7L̈)Ӏ\c-) vM2cJ1'r8I6Jt.EUJ̤S:RN7#՘ٌc1ɨMl{~|ICw	uWzr.&T"#G0XQu2FTA+m!bxbڒ	*Ur!KgVM+d50\٨HY 78G+f3JΌ*&&<7u7{/f$H wZ!bP|t7n1PC.wdK=;L;
wYV/S7JBqWEWe_%J X`_S֩Hh֢eIUt~Bg*bI$* o`xjxZ]lYVc'nMmuBm5I[6.x|g3$Ϣ!BZP.I+!Z⩀$X- e;uK+kЪs9sg[~PHS0	y_7{~}bHY,HY(%)aEqER b#%>9H`EXt	B$9^RaAB(9Q8}d;uGrp>wvN1uؘ	WKӰX9w+?cENB"%Y*A2ʹWuh%nk";#Ni;	>.t!НfgD\K՞>u9j2}jOL1Z5&toL}uDDBe뵍<GL8Zՠk[8xbMJkXxde
|8ü"d+f531/+RuQ E}dkk{+_LuP_qX"HPaqmQ^Ghx*Ǯ"NG'\(۵<7|lj"l!fHGJJĔyn01IhYm^2HiE<CaYhq.42RTV\&>BRJTWSh^.MƓ2.@g+)	\nCMs17D{EMu=#F=6ry`vczV y,1$J=y>`IMUX_P+*Jj*BS"u[ܵyP1$NoIlCk[YX?n	ߵÄ=8Q_N%8V9?XjS0
Zl埔z;E5(𡣯-Hvب
`MGƜpcېiʴl	->x|hnIqL4HG|+2@aGPgVRɣES09yȋIŲKUxX]c:vD	)\Ԡ1⯙ġJC˾ħGNRJLh?@FjpYI`yM4/CLt)ywQs~*rv9j8fҌ4IiS*荑A%O3r4L[RQ2~<VC@Iy5F>r5>HmԺ/͹R֔4MY#Km;69﹠c$Mn[Τn{OQ)zۅV}bwwguud-&rp&0R^:k$OH*/л(&P>0?5Ǭa/LFi<RkypCJ*";[ ?j2>G%'!jY^'=\d46khK
t¿Z,&KWo}v{a]=2_k AONFh$1׽pc?y.I5ftPJ%yol%ã!%"AX5.%|+Hf$C35p7Tܝ(>xGehj{ꐵ]ya|pQO4|+dwNOOH8`<PWO'=mك8ų'OzE,J	IЉϒؘx+PyUHҩڲfշ*g=5U1:&S	UqWR[7LUV g௴SD"bOgZPXboi܆º{O;޹ft"$c>NIait2,g'F=ݼ,&Hf$"ē7IX؛j}:[`;T^#o.+y]/:uDtK
d+QpJ7A G_Ra24Ű`bew~QlkZΓ[oW)=A2/"0mV$$i[o7}4][6puCm-MhTLf}Y`f&6k~5L{ʂVpollY2+/@_AF2u]
\]/7S\y]Vdٴ]aݭH7fͿeuDQիh]iN!cֈf0 T֜Z6ֹxE0lt(+A@ÝkSknrֹ`ZCԜ7=oS(Sz=ZRT	0ktg,<2/zGlRgZ#|аo.>cplI/*)p	,be~+>F:cpl"D2.ZX
9<tj1jTxU NKg^JmK7! g&"$A$@(WjF!hxzq5D7o`Qk3d.yeU'OTq,a8@g|i oEJ'xSNAN
qhP,Hٔmh"uYӦr!1ffvc⥚8/x8mbM63|w`zgl.cnmaPMtp3Ǚ7y-OrY9623i\(%K#\V5Ѵ$V,d'eX{dCKsqhXO'k7!aNKx&QxhA_GCu*_Gx7<3Mݴ
ga@S2	e4.F̀e4$	C.]gY̗
ga[UasZ;'sl,fZ&]GPy.T)kcʰ=	~x?x-zPHG6m(N.S}X; +:̎py V%N'}¯RC--g))*zoZJ7T tOeë<w?뭡fNChm9MOzHWS2!vko7$V!_!?c=xSoABea(?ڮXImcHRPindw2myG&xݘLԓ'gw)vI0}{}vN+onW^3[G=T3PPUt餋iX'}h=(m8soCv*Psƾ\.5=oM:FPx*s@yDZ{rA7zߛ3(]ivFt̨~E4jKNv>kE<수eׄ5~^wJ_B'b6R6C~ӻ	I 'K?ﴲF"|ޝlU3R4ӏIVL +3L=fRrc<bE>C}9Q iD$7KU~uDd-E>듘W8[yMY.a}^PG*7ixi34Cµ?[tidi&4~ռM'Ȁxf1o=`XL)|^ǩl[7I>3q#kN+[~nIwjRNdxkAiKl~vfV"4&kʺٝM0;s_MxHݙ]7{y{y󾘭(qPN&SV5ՍO﾿XiHl#~4#
5C08!j&	%{,`TUѡGS1ףLhBy/Lˎ-dC]Z[9ؽd_.G*oJmu:0"OiSG`c
W*l>8w37z5vzY߬\z%Xc$LṡKI:pFȺ౸
%sAQL Ndo	 Jąahc1X!&
|vա
xBjѼM|d)[rʂFoVz2(şQDAy$eBAA	RVHGb̩|o]-AB	H$PG	-{?7f>(kmaeLMG]_ϖΔ0̆Ybf73x]O#U@6)фE
塭,[Nw]n)e[.e8̜ڙfB1\y^'w^}r7oyy_1@2ze*e	ohl2Udc@dU#b`CZdTdAЏT :{S`et8MXLVh*@_ݑst.&ފ`M5Ua+ ]jѥ:Lb44PDL1P9l2pZ ̣4LxRtFЗ7?k7M	"':$(~p>+>͔a;K;lK޿Vx rA<+RgC6:P!tL/7^Itgt)]fKR&<9$'&@"<*Rsߒbȸx?k:pb
k`B~rp	+2C|4u]E[uى̤=,5+Vl `uH>
AoChy՜5y!.{AL!؏%YϦF\l$ď^슣. h5Tȼ:.Xst= x'l Y#W|z{8hW9$dߨk K&bIoh]7UOwݢl>8Vo+庘XAǓd"x>+LPH*7j7jм6fp'|B&yGe.slޮIJ{	*҆bWk.}&
dG%2+%fB^LL18,Hʌvy^́>0g}-AE72 Wi`³*c5jj|:(VjHx`.Oݜmˮ J6\~+DW t#4OY>މ.$<õ  gA3cYnDvųoq}ǂGo<<b?5m7M:4j
,[~3
颋^ات߾W[Qz4t"Jvv_Ktn0h(){|ί$_xY[oGVB `lp-c;$$ *T-^yOC^ޫϴ/U_ڇJU粶fiH99ߌˏ;:g:9fEq'V5	zYUUKILIUP/"4R0F'wۜ.z-g\p<A2RnoHl\RD`LԫQ-a5R65ʑet"o](zu׋sC(B0A$HT7SBfrYp	ĢQ ,AP32NW1wA!T5f5VBl*E9"V\"3~~!G&pfWk Zlb>Lj5]UC8neϞOD.q-xΟ
$yt%ztC&`qg"5ha8AQepY<}{YWh/W~(5,Eӏn$#n.9+"dP(HP{{;w3pa6~b0x* ,yE2],
UVdI7`10zb#wdCFUs:B&_؜13<+)Y/.+͇S͹KKaƼl<0U h)1K	1Xw&''[/)I{8*:rYB?wDJ{=DW|
C&+ ,)Ib@BPȦ!x\S8at_%C{d@{@%Smiݮxta\q}^֣n;EEo,џmr	:]x#2_,Fb=l߇Coz#.V?ת֨?9|nu	.`scCϏ8h2j4(Ҫ!:rhc3qSRO휷@Eeǥ;IRCa&ԺZ;ӝ]ti@}xM*GNNÅVX%uHL`eӻ #ZԹǦX:?+ߧq|_,%G\:y%=FI0_ՀX}C1OՐ Pǒzj{VJ,}dfq]?ui]<ЧۋI-՗!@ǜ2(q006aZ!!B+%1}jӆv_p̾!+8+߮qjRT@I0>,C$vYXdС#9~ddlkfjs@ߌa߆uՎ%YMQPl]
c9'mIFS9XF[ȡ;Uoitɒ}ZS͒p⭲~>l:uogp*];ȣVDWvǱXP{/EG<ݮ~ xPQ4U7w34h@jٗr5Bc'S,,%:6; ixSd`Y3> II{i06@D;obfgl>!{-3HHuq꛱M4ime&WG1!|hYT?ل玷!Ufex	uu`	/)Z)Z	QkT8oNbjxktu>롛:ax͡godN?brjBxVoEV];8n]bC,S
4q]PEu(6zVݱ=ݝYdo+QHpB	#7ffi%y?7̳kqd2i?󤃠ek
faXE*4 zi|;y YSAE%AfKVHiJq'j}_$5k}pOrhn
֔"Xurzr|nl= AH{UطCUS"dI"V: [_i(momX[]-&*](lA#X]d"3^yzFSJ[kr61lDnC{bmH>2eW!6`lhDQҽ Bk(NϝYZj}/&/W팿M+kt7h--Yv07Lq;X]
yuy#`=I&F-#pn#	p܂5qEf=6n!"J,{t|g
2\Dւg&Mp.Fj<|ѓTF-dSw&gm>]?>JF?K>I^
aH]'lvY2-N/DT*(h+~&T5LXgĤ#vi}.`b'ßV! =x\adK._eB&VفĲq>8n#r̥/ap+}^-pCyBwmjv>Τbc9oX"hVRVzfU̀fo&C>|Zð\V"zN@S'hX?,:<}CiwQrƶ:֛qRksMg.zQEdН4><~J}ˋNߥ/$Fߥ=5Zd4|q&䏔.45;xuN@VD	^9FZčLL0WMNRXfčK7.\XVN7Oc7'KJ٩3Q|t,d|$YJY XI.~w-3ҚިPܴ]PEu1vD[	X劊 ]I'س0]~gYKB̒Bdpiv!yUkhmDXȺ\L`(`W+ߋ#PaLdg
f/l@q%)mԒ;+M"4-.A3ZS)V~ZoC"	c&H ъZZ2bp0'z)VnG`%a%#Z	OYa<1-賱͜:ְǬk4Xbn qK+BsxVoD]4o+vԨ_(cĴiӭim4m$b_۲/mCO<"O  g;M1	\Ϗ}7o|#ҰmXq2A%9.al"e[$8.Qb[@,:ұkٹͥ(4݌׉#is
;%zPk҂! [yXkjW ywwbfQffɜT6{yYb_ONluz}#iyY	Y˪崒j-O̳.N !	4ݠ](!Y!˲%A.ja^chO8Vu3쫣=dR0ՠMP#ԋ#Rj|I+(CdqW<u1}30ՊR(+v!_uomPuoU;P9b!唪Uku;gQ+v^$wX+'bZ#I\S	ϺKaI/.)tߞc1j9&͹|/fzLrڱMj |X"N|+T)!WS#·ANfa|;r{<_,O7/Fܿ_Ϧo#`~` xHS<{FoEFMDZԗoFBN~33zh1)-(2-?܃1!"H4 }}u6e	.T{m~ E}1we9qnVA16.EF[wnsGB*uNۃ0TEG"D
ǡJf)h<=
X62CC2Mf(bSl%҇
aS8=SpnmnJ&"]+TLE"iೋJ¥%2Qwmc翰TRFߑkwRאi0{X=NGx[{qyk2M<]s# kٰxYmoH_Qb$΍"P  VVc7Њq{66dHw{wH	[=Uv õ`C'5w(c.]Vzҳԑ <*@.(!q+Y¯TDаNPm$K_5aIp	qD`|
ޥ˗H+&'ٸIh$GF 곐2PV+h-.ulnktr:i_c&PHLdd\ k+WI̫\AERi,:KYDPk$=;*"u'~G#?0Asou'AG`ooUއBIl2Mj,8l\-dNaP"XHY5B=EgK&S;r)AXk3<!4:қ!kT0:C\T4[4
?/[GoIŌ9yD"<Xki>#qRdQsn(5cA9S	uHem|&֘P?,銋[}gSAU:Ãqtd2[&+cA/,f'tx$n\?041Pe֢(*~zR_6+pe3:B~k5hSuu/K !U<:K
_@CtE{^PJvIS4T49CgCIxڡٖu3ei78I`Ҙӗ$v/J7/yQ&.]RCϑFhi ^ gg5d^<;׈v?oߋ8awܳ%Ò.9~eqW?U=܉馠Dntzğ>,c+&IUL){=~U}H+T:HRqZˈP(C.T`]K+G?N4B&cTM.U+=dq2LR%( >[OxYuB4G$_7)xy.`K#n^:vni]HEZM˘GQVܠtArWSu}8&	[qδs:$iFJb>w0z#U蛺#'>_|J|V߽,!kx0F{ܾyq61#ɲ,;b1wA~R-+09A{؎ݝ$)e)Kjn)	J6&wK+s4&j`LBSITd&N1@jc˖K1T8IA3	elTTk*-ꐶf}p6M2ڿPosRV^HaY0nP-+M1 -sOXnHR+Ǯ|wk}B]ªD!r9vdzsNyc̔bmVankYqbM_>vOk
ig։U U8$n<&PQwĄ~`6'M*bxjeᶱZe2!~Um򨚭=Zs kڨmUfxu鿱]n/?cx$Lfϲ]#J`2$KQ6ڽӫFEɓ?WRdy516_m66U	|U<Ny* q^C'Z5\:_K
>r4w6oi{io@GB$k0ߡSt&+ #BZ=AbvPZ-_D)m<̪ n蚟~DH_m=A"S2	tZ}#*ue-	f9e^,9M0= ea1i3I멆c;=-.>lnmJHSk;͋1K7G/BxVMOG8$c>bcCPbbJPC1JmDzlbﺻiʢ굪f=RQ$9Tz롧4R@sH/؆P	<y+/?9lu%T,5O@Yj*%0X_[Ǯ!*#7]o:͒	>LEQkES4RfFڪI.-MX̴5fDMbzT3^i"؍c2@<+Z\-B?\;Z"` yb1ٺ&D0x@U|HM) 
@-zBZ4uff.|T/8g|tFbIχNIép$I{{y4 _Ho%6ҩ=X?B0jr4i8lm3!"(6o5UU7}Mݳk}$edD=!Qj?.̎Z[]^uc2g@E>$ܭ&h;FZh4GI0Ar]l8Knt8,l5cRh\2pMr=g%=/gx\j`Jn(Hk\m8 U"im2eMGoxooISVM"XO繮9J#m4i_)`?wO*_`p:9'xAc7 wdpE
i!ҢaY4S$?EJ$+=dT7Ti	G ֊ٙ9»hS
1'QԽVwhuAԝrVe
v-NG*%FV!tF)^cq`Kc>	~E{qQ޻TWUZebDc=KiZTN@gD0]Ova}|("~")2HNDQ;aqh^gfJ:Y-s׈).9l*;BD AJYA|+Sy4|BLSjT&a;U mٙ4@ʙ@:_FEu"7{{
]Z gxWSWK`8JaPi;v"P3:eRv5Nɇ	lPIkZ atH	L<QܽM蘇dﹿs=wgH*HSVgbus?̭MP792 N7Gn67dZx@%k˖b>{Uv=>(0E S[wo F2ЭB^[c |TၟrȳRZjPa˻ezwv.®0E٥1HH,rx!$Yv
i9sl`+[2:3:C3Mϡ8U93b$t?E>~.pQps@"fz||SƐO9ņΫvc6@u2܉821k̜ZuwX:-W*s~m%8X&G<$%(R&. Q'emw`ǭNb0Odn;br
u&[mI>=20ER*kȾ)RRμ[OoǇG3-oV>UOڵe
c2_XZW45дs*Ӗҗ+sv^ }\|\\Y$qo%!1!e<XxttMhXL49OUD MCC@ɾ~Xuˆ|~MI\K؀Lqط.K
C&C!Udߙ£X*\1W98qإ07z^>{2Szc@{%MQ+mBӿIP2Foc¬*!eG0h>'dm6$ٶjc=FrBiL+g85^.9]VSiDACrZ.eZ/T%%E\7ZV|8'϶imnm;y~_O26&,MǽjdhSc9OP0Ƹ5Rlбa3_	<-r}6xʺnTm~R
U%SҢޒ"G?LwGʐF.QR~*!}:m҂lSvjʊu?}mҋ$PT.T#{ܼdnT ;B;9@+iJ&`4!1SF.{[-(Wn5W1t"/	H/CPSh0L?KYW[4rEI#?;X(<eR4[(pE/|!WP6I'ɞ|G0icE~(" XO vRb$mso2ϋJxVO#Uݺ6("u(P$:PHRggnab;LYD_ɍ}4&/>o&>m}}0&;X?Bν|s_{Ǟ\SOħWK%lhއ<WϘ'87zGe3)	=ݻd[43	;D	UˆRIU;}+|9"HeX1d	%n#H3v:ϛ1
G]M[ckj/aњC~cܨ;mK~Бa{4@";z[\"B<8/S7"nFXKz%0Z}3IҩDصͤ0׋&Y[x[	.sa\ïAWeyz=6fKIz7'qqm1fYތvQW*5x-vT/#U)VMdDU9Ś.H֑^)UHP$ j\Q2
9\零LI(;B	SO;noO^NlhqR"+W7ȏ#/	Ţ*Uݨ_@}>(ֶ:YmW%\CZjz7+gԐ-m֒`Pɓkkmޕ;2<qi.?DiwpPCb]UVApDl'7ضN
ܟqVlל̧MUPQD*"GeT(y~}2TlRɡõ&.Q'3 n/",u^f&VȬAA ~Ȋn`AZtbX}cfoхwYEicoC̍q3n١(ԙmOEVi{zTr?Յ+3FUeLlE!\\wrΉJsҿ \px>I(#oG<eAJfDe1؊ޥnQ`b`z#[`4ݪiD}j4$ 1B*Yq]n D6R~ˣ0~NUe% H
#\m-Lt. gA!@&Jn9Kg y低53{K'SRAhcF[Vq(JBaY_u>'/xj#ݪQoĆCeWxTMLAEhYJ<Iu@V)?LͶ҉eٝ&`Ԙx󠙫xƫWOzEƳD,mc̛{{~^]8.XޑdLKVPK01*B1A
KOŅ+B+覐*z㦕iE{t^1jVH*iHZF"UEgºaE]ފ``ZETX,aIɔ)/Zd4I˙Xgnf6as0X3>:4e+4~h݀H*٠T+I?Ր=s}e-K{x|^Q50HfĘ6+bQ/bտސlyvF鞽B?>Tt@K&a{7mzbѴYULr+#+U,R,I*Ta #Zz#|kHzP	-z"q6i4=!-mVT
"e|7VvOylg֬;m8`a=^.#CK EZ@})Ń)X,IF*i(J2HE2 ,IIA4^	Ǆ-$, kս,}Y~`?;{ї"3wBgO?dBFei]'ֆ>94/tWxUOA?MiE@1FU?-hno&ٺ;E!ՐjQo^/:Ԟf^g}͵Ne]d=CƷ[Gl
@Kڰm3S D'hT,`F7L.ȋBݠ #ղjaC<Xͮ(rJkn(kו_?eb.4Ǡ*T: sʜtn	8
~zKC' VR:(ɹtrA_LA}f].uȔ:̶\e[\~C{C;RwE(xC#ԡt<Y&AA"wz{HǨԻ0[fb`-#+HRAabbPB?z=^ edL%(7ё#VDL`+t'):kԜpլJqXUQ}d=~u`D:tOP3rvpg=<ퟯ3x'C}>^0׭eR8d^	אyoA@,Xm\idByDU92SGC,rE#9BLSTT:fjhY0zJ6u|1w+'1^~Gfw^ozcnξnbrVYJ1]:P+nEG()Q}ִrUFV?䉭=%6R1;UU<4ݦ&>Ik做!=DFPijf2~)7(\>}U5l_/qxVO[ULH+L$RZ@|2f:hIWTQ(o&20b9~9p{[ZK$i=<9=F_zY؅iyhgx%@~0{1]ȹ<{lp{]ݑOd IYl>"{	*dO*]~n^Fqqx{vuNݹwWC,\AhsM 62=Fq1^2f21'^qq>><@o9R WI%#&Iՠ=X(vuC':|U#!4a*NuB|h;ݠKidfRQmet򔄬8>]p3v2UWk%07AYl,W{5U#4^ʏ~IOY|/&_^zw#x%
eZA_.dmp(A+W^Wl2-3qG]YZA v^,\s(m%<;KM2y^؅]kX$vlKBY8BA⪺YOȵszнG⪷E	<ds{qUբc/֟dƺ6^fCM'U3N]/	'N}\4eMBd<S˳%VLCDkT)J4AZL梵M;ƫ$vY^ɼw)MiH|2ST>p;Z'3VP*_#I2d8s	oyuD}luTGycr #aVmjfL ˏ*B pn>,P'p{a?(p|>i{㽃M<ʙipIqp)KD<[ gj,*G IGP^z2Ad ·TrӅ+zlLXvg@5@E{Tg?/T)z<"lWWdRAsӾ ZyMxUKSa'DԚr?`	E$0 &kBM{9t/܋Ix)}9;ٯzx8)ү>VtA!O-+l!H8Iq7I^niQr!aQ ϋyӧ)LXvKӋl0FH8Fh3mFA<SW};C7`d{IDɎ*?+gP筭اө\6{	SN$+og/4\A^ehXs5جUavEZ%xZZY18e.<R]eJe<^We:zCYHTU0FFahq?E~ߠz6zu߅¶0򁃕&۰a 7~@hμYbMi׭.3Qxv=C;0kx|F  bāߍ
~l^l 85
YBeŅxZF`lh!Ef4V<LVyI|[xT&L$fńLKM:)%fGZ`!=hUQĐrC	6)NHD;);&M
qmHk%;%s"ΆK.`W(mtƽK}p(%	N};mWњo0+!Tsa'$[HK/~]+|WUO5xc(8,EWܵY?]Cuʒ!k@~$sxOSW#`RugqʯTMLNhƯLcp-)2gDy"bd7ګ%9-/'{n˥m9y>ϏKnz=K۹n:fĿNb8?Fw}xyf;kWmʋnPpRZ}^BT+BVsMYmYNyhd?JE ~xSZkё\!SE9g?415k]~?WL2c$M$Ş,)QaiJdź٫lw5W9p.mT(-7Vpz O{ZtRV?e@N˹y@=BxdRg7?yR<ڎ&IE978l`5gtfIsf-JiĭeFg=oǋzi7Vd	N<X7Dz&%Ra🭽:4.7+#<wGm
RlZfZrؔ)Hr^?s>q`-1Xl7G.X9|g(Ȩi BI;haԄ^ƃ2JQm33&HyA%"`P]+a7|i^`;Q9I+򰽆VX3*,K`J51Vdt]&^:m _-s>KaM 38W(O˅d[E1YؓWn:'[7??fM=L@ǇI"MBV
'$;Ke}edUy-:"4"M2]r+DIۦL-'sBؑ
5캔	+mL֠MVLh)`(=\fа:U@OaU{]|HYݮkiw+HOɏI>`QP`'xVYOW@C eq\LiP--I
P J-\LQ`"	`]$TB6"j܇JUKsg1[ڇsg|wܱήPIF-V}wQ]RUhoKhcg<}9PWHӚAu6\SS$)	i^hf\-;L'Ih?zqAߏ+YVkR!VwX|ͰOk81JWy ŏNd}ӌo^9gZMoy7&яIbݜW(oLfPaJe}X<{6-&d7AO%-Z^ߠ).W7ԡKSĮR4qEҿ@=+zP,baJ+k+SfIh3aVϨ$/,}aHIi6iMx⒅¸Ҁonj4-er%r!ߝ)<Ex\I>9`{	y@q{\d/5`/X)Jt'jHB}Y$(A2l'JDXuG(@**=Bw5
Nqm4VU28ÁƤ~j:s<TX'P{Yƞ.O#fz3"{;7gglXɓ2802	},vFp+28֠op̙o	BL΁	dPVT2]@&K@;|togbl,{\C\lճ5@-Ԧ"l9AY@M-3|liw3TV6cDs~	&fkq
 -_egR(qE=ieGK"?OQI+^3"*LðdSuŗ:`Gg(qH:8_QhgcbY{HYay%_R%jxc!vxIJ	(#~	iNC/x	=/~pbuw88O4h{񎯊}nbcl5h#9zQEi]e*!8jU97%߆/2k3t&
\"b#]
xW[oH~ϯ8"/)"ҐMҪ*5NAI i7V`0xgogno+-Rs9\\<"<JLxVO9bt<*$JCTRhDïߨP*p/»EcB y0	cPO<>FB`jjd\>R$p5޼DU}[JEWbQbRҫ|۶9E30RLHJydd\ gk)NJ X-Ϥl-̖*5B1 _|o[!|oΰinW<M,EP} dMzp@
c$#1дp		SEQ1cR{UfSD=QhL|_qH"ohh3`t'=ĄJ&):#O}Ӎh"bĘ(h,Ze[7xEAJ5Rh7ɤ$#PP/G 3l$HXG22E=zTMl6ѱo8t>&lf!iMGD&3>rX >!,viӛ-1	bcZ	SN.n#;x{R9.UID)'`-(QaDd:&lN1o	GNggS"^6'܃,k*IBւo$ZSpf$E-%7zm/Kn

mjgR~zܫתkuy6swuW=ju{[Re-貦rє۸:~'}-
~EKtq'^͵Ֆ/9U}@Qąny$VW/8jj	lY]l,Wm`U.7iΫggtu)`i<SjֆzuHέULWO=Mq}/KA^+lubybc|Zԟ-!|\W+>=j޶X:pЦס#>p|{~:}n9{h:M#fUưj{pt1Nw6z0cXWCd\y9wݾ23mOG&VݞY;吔rzbODʹ=I	3:eǼ]PG` r=Jss{0`Lw@q9=^~Ul)anPF͵u(J;Ux&G8`Ej_P2<D/G 3Jͷ?$`ХX\y9Z&p:RaIqGm	i)sTIת~j%kS~z|+!Z%~d~h#piKD14׭dG
R:45,c|u!uU=!WDmғe΄L]ˠ=&QzEn(Jͬ/UN?U?!s@!Zۜꅘ~Cx5@s/AKxUKSa'+E-@XHp	2mn	!Ą
0ꬑnctswjiҋmЇ<wйݼs~wޞ8"2g`|3rf42^_hX/`6-Leoblh܋GQ~hJqxfWۨ\˯k#xbH@[KB9@$^GAiˍfufˠͯffG	Įwn>UDURWEѺ&gZ(hau(Ɛo0/Z뒎z':WbVGz;cZ=TiqV5)9ז_i+UUBrrS9W~^ViEjb&s+8̹[א]D>B.F_Mf'Uj9_w:$F;&gI w-	2}גB[$܉ggv:	Jˮa
=UՠJ` :31JMOUlnslaS	YQRTE*soBrlQI0PheA!7	+/)\CqiyBwlϨg~9, QYu3Rcgz)iQV`amv~\ л: Hat>:*ǽh9vys#=	$^(3uM{	`HBĽs%^."DT'K$a>7"?
.C;:`71?p!xX<YnB
gxCzlV?Kxٕk2p#3[(x\msH_1|ɺ0]6Z8pR-J"$FCw,T if#rBt/v^NB2Ҥw̢ЪZ!`\.p:&3>	f=ӂ7BS3!9yգ_!nH8n@BNaɄٔbsfY0t(jw܄\M@SlYx/﫦`3[6gv5Ztؔṡ	)yO\S³E}0gZ!ܝOq1Faffl R3r\7H8&oFۨ W׻v >i%w?wnB(HϞ3 6J4(M0q%Kܣ0LCsJԽ3"r`pl3rBBgGGg'BqN}7H_xkcO-#	@ K) d	
 ӂvޱ\G+ӟBLM`TOP.jiZ!Ug)&Y+El-#Ƃt 1AR 9It7x$OUGXdX|cAԞ	,̄4n~ۭnѳL#Xv8U cqVgG&_̇"#׵ׂ	a8<;wD?@3$^ "
P-ZJa`4z1(ā4bNPlJy@&cjV1!qL+9֯[Cc'!RR`e2sx.EZGo *u 	n3퐮OѨwN;lweT`>@OmЯ;4#@ݔs0׸Skz Ytzo,opu`d-}`
T`]:4Y.`ɁHj(9T3r>4P;_ʑo mKF&{3.ٔQ'^4aƒaIIM#sNK9Ӊ4L}%N*Ւ)ura=c\1&k
#>=:&WڋAދqU	=N/Po>/}/5b057ą""ZGU`87$Vj&.Bĥ/s'zV֗MJ6n)9jR.î{e`zo50H㉵xTu#-[%L,Sx+S]-g*޶%}3M	v\{ߩfquf}tor
/O%X6UJaQU'<1P	>vȫ~^cgzm4Z@܁]O<,8O+8m<nށmޯ_xиG.1Ht{`b`QJKĵua{}AdN.Lv:NiRLVO7Xr܉,4|KYUÂi/UQ@n^8crђNsTݚ>9:S94'0~3m
>8z0;}o{<3FQ)E4 TZ#58{{Љ>!	<;P*Âն(dƫQ`];`[ypyLܦFNTjX1e4='z C2 X,ʟ@47R[Obma̑?}LyGԨw:u;F11&X{z#־?XeDU}@0'oK TAB
 =&w\I{lAp*śm0KS0ߨH9B
hϥhq9gu̐S$f>T!x/PiP9	G YlA'3c5a#1<
f)HB.z},W1e9B#R\d?߼7EG٬ x &-a+S ɯAa*iB<XX>ZVL{R
[UP#PZur 	 <B;DB78`|^F5I:Bu12b0>Np̞$xN2IW
.lƠ& hwcTA嵥
s|80s,1A+ Gv)Ҡ!ˑA,[k&2E SȩʉmaDe6t
&SJN'SQ/
V6T/q`5'8IMCiquPg'}R 黡Iy&Iѻ\i үlr[#"|J.y= nN0l+in&R,2XSCG2Jk%͡d3WSVNA*VZi3sAAKoklq!Lf]s(N

_0<
S^(/}j_~VRĢ%S"OE83A?l\X*idz^xW`7"T\cqKARF^!(=:66
T|vW&Rӥ*jyqdoU+L;OS\yir,ֳtmLeR%y\1M ׬ylP㤭oVh٪sʐ՜<n_$=pw;G]:d7=B<p*Ԧ=	A9|5Jdt4&7׻ }yita~Y0	zrZ	t0%?[By5~85ı&	X\'eR[&o';AlR	wIO=Xw3kBF>Ϻ>dlaJUa޵\V8_YβnA˲"0F\r^Hn¼NԔ'%Nj#*M Df	:E$,p*Bmy٪i"O'&I( E;7pTͣ*(GL ITỘRr7DڟݒPYN$j̈́Tn@~._;1հA#"hTgJ9*sk)r=v\A%_5Pi6M-U9>|^uQQC|hE'3Ɵ/A/9KvO~B4&:^xz"Cl`|[7qg2J=Şno0t>)D5=T>U,R:Zɟ2̼D.uNYSEG+j#$mKo)٦B{fVNfs(Ǘ;9;)Ahd@|OXF>FxZoPTc)Y2h4M 
QĸI:0,@Rط,z"FK?t:[~j}.ˊ:Os;əjқ|GGpWVc.۪St39wxsK9i}|D~xשt?yEwaʽ+hG<}Lɷ/#;S-sv3xIg%<vacz;9j~/0t-,_ezYJe;^PTb>zG:2z=1tFjSkNE2s*P\c`I;k~aDsi*ɴ3<.)	5&e`}7nF+gBjq=$6mzǔZ)$D[,͑JwuF43*0g#t (52@0c"]9y38
X΁&4wngFia d҇7䏢<͑7E^mឥJBa$Y򅯊CIw8黎]ŗiƤcr'V{ahDjGlŖڏQ3 'ަМvd
W<B_g}XP_=XU+sVͥE\N^^/u*~n9oxV_wȻ
`1tؑ'V&\^O]#gJx4qe(IU^hШ!qn+0.:z\GClg[E:~ٝJ~Z@?埝!7u}>D[nVցnKɆăR.De)J
H]q:,[QЂa	ⰘOP02@ݓ`YX8u9DmvpH2X6'[UēFlIkg:Ӥ\St 
94HFDw`Z ao(<Q|gذ-L$o)>{}VY]^0X 6nAEjFMK}w<z3ڒVҥߠ&]B}y+}Uo&%m5pXD5S+{Y
vt^mBK5Uő[|'zlU@kE5rFWg*R+=,Ua;@k890Tj̷[f0iSJ$t>u@.P ;tU)^	%jIENY;>&I=gD~{[8yvIFjlwlgA蕶A}O͢2
˺ lϤu>IMs_c"Б	J )<891%rvBbD"{w#,)a:EsPE>E)^vo+8p68tBW9آPwRO;PPqfǴa:#OZjʗ"8i,-U"mpPאx~I?1*Ctp78?[b&YhP"p?=D	Җ59̚"R#|(=9OBmgmTH(۹9.%HWarL1CrpgpQ%yj 2XPϊ 	Ew膒ɵ%u5"1gm0{<1uC0 ,d)Y?$By}UV]Z+KroW*<%'ԈYUԁ'VQ*{8"dm<*p$ҎXѫNŘ&S0b 6ڟ{<UNb:Hk4[*mnNTLO9S`ة3fZnJY.CotT*)DQHYR
yuϫV] ]O)|/*̀bf/r#J3rRuݢk~u.E4R3{˞8G?d^P@Aoūj Ur5U\(ze0,K^bi;>!6!*sǈLa=\bI^$njIsCMҲtRf&4! m~e_Ć6l.y?×Pju%P`5DS*"&7k5+q]i\a1,2o0O&-])WA*yv<,T:),mVF GMe~yp6籖n}H]s_.\䁙n$w	d;?KdD*-DPNk_Iueauϙ$e'c=e,Sy>
#IpP,!vn(c54,_rT1"Fп!j"?c%C;2*AlaBEצk)}yn+3U@%kC{{#"gJ5fnM_zxز>W(_ŒbAgS4sXtTU|_;k?xXOpUe)Ц򯒔Hm)JB}ټ$+ݝݗBaq8oŃ8'G9:e?jf{_p3
.kb&KVoj!E%$rt1#c|	yQZVUI0Y@`p7Mj"Iqe#%(QtGc''
O:R
b]VayqܭmnBq9	[pgwī4C2A2Xnշm6Uw1C2;wٌt,Q$9CHQRzن얰/eETâD4
6>ySp'fP-/p|
2Fu56۶n5&:.	LE (ZJ3*pA	5mX,3D&㜇Y}BsD@`҉HȒr|"8:)2V7;Q/sVQHԑdph<I(3*6іEr
eTU(90d+֭vB?7*ݏBM~vA|Bt,z^fFXxwKb98UQT'p,&hfr1-Ty@mUQC;~fN')^9evΰ#Ʉtn,.y*gu؈dkd6b3U§⩇ѱ"ft̝^'sfD>ƹm"W-H#zM"6(PRQ$svX_Rp҈FTC|o5|!lWVZag^y4I4yvuΙ(=fkN
ˢ4݃3^
$oƻ7=JV5{}5%쓐F,>qÕ>ϐe:8L'7I"?(G<JJQ/l ;tbb9nTM\bZV?輩UdL|/Ω56M5B/(uŵ_":Us7<5ןd86?qYp8~uwJ'hYה=HL;bWK7YƆ5,rj|z?U{z#gr-;BsNkM1J}<UTQ]{/wo|*4ƕcp+qPSrKɧx:N᎟6.kk}+ gg|/^aBQW/.[
"&b1˥'aj42Wrߎ禦zx,#S2|oFDI]K9J{ni`fzg?+nϩ6lUsD-[y
a-ueUn4ɍǱ(̑S	sL>:w<VH|z\Bqm tqM}Af.
A1sxƸqS6qOa|@[nr x6o2gKiq 8x[xqF'm.l`2'|UK` 6"8xPJ@Ŷx~ehn-В%ăeݝM62A@g/K7Ejy޼ǽc>(lMkA n~[Ҩ`A坖X7R#j%(rU4eJ)?R۳]$ftɔ<_!JnUl}9dlƝ:ʥ{6bUK/j)U3B,=q#;bT:3j
evZu A谏Fja VxVoEVH&r/N;?BZשčH.6q<kN,r	q08RUDTR
'$NvM/ɞ}O~oޙH%8H@Q*iK0D*l(rKD 6"* ɒwVd:ԑ4ۀeԆ(!]\Gu 
}:45M&_223<w<l՘YܐƚPmUJ\Z,2#oӍC/?U2G9.0o(CE"AiinO3	ʞy:Z7BZeBڭ7t+73=CVvk\4I鿧ܲ}LLlA/ASӯnȘ`?D>ʀi>wfh+u.	航ȢG+_h!"ױdJg@: kιRTX%M$f~G6vIB>{yԩD${)=	`Y("}s#1O\ς\mtDt+>U"4|d=6@~|qeŝƀ&4p?Qy_s7FTEL8^9hZI}vx|Sc+ LPޡ"Ǒv˚`[ra(f |ald!3&,A70? ܀[0cE>, :Ph s1CYOf+Lɏ8y pEm /fw̍QCtZMWRg/Og'/e}\9xl[]k|9283Da0zx5@/u:B00:V8'R<Jc/瓳af_9y<sKL߿<FA%2ג4}xRV
iw)|ŃLdQ=]teq@BE3'0&?߅Gx}kAI$W}I*l~ARZ/&^z
d!	m^,^yw-xD/z=zһlR!i7}||0
1(@FtV^~}y(0'aK-ۄCPM2
.;E`&6)rMҍQU#`@af!|!q`>:&Gw~,'\JfNe0zC@vd~r7͍9HQ3?Z]P2Upb
WUFRum9H'WnåӍLo6pڮ?VG<.0xFK]=V?~~gI4<-q\Rc&oQYbbrڎ.VL2K,ontF)ƴ+3k|kD4e'HW ndMx]MNPEV͟PhAǼ	ioFzy^O>W_N<]>ծ40'J77xn@ƀJ5!j⛦i򧂀&iJiI+k'%{cHW] A7Y{@ [@b{JP^_{so/b)j){/Jf(ěBf&\zwJm`>|J"&oK]p%$kYhrY׫}g#)'kA~Pܣ%X!kcho#iOF2Wg3i!ܢ0E}>2}*0twzcΟңP]ފf'E}EF<6䇮Cs`ru"'Bv`c#E^ȉ6>;-% հ"݀By{`X><l4pmvn46.,;0&ȳ\U}seQ>p=LҗU]t|UoOJj\x1g3-搫GI &w\\8#~_-xYms6_}1ʹ^9
NS&צ_<9#7ݕ`¥wm$ҳgw;	WOg/IѼ$odt؂ԪkYH2ĚVLݩwLi.ifN_FLȜ$d#FCbC /Y;u>ÐcCa91|l/$R\17rQpMi=Jzm;=9Mw"bZ~IWT@jDD*B=#↋ih91K\ǉ)l"|{D
r띒ZUGw7"?Vo:I#߃o7ջ'?N0az\%Ox GӄNSNDb\cV58"LPc/ON74*ĤŃs{C7cل\i@<fQAG!5D1L+dҵ5HˢOpa4Yїpچ+P`<Le~ͩȂ*Ƭj#\b+ibfR_msW#>VT c9+:W.y!Hns4x+mؼ Qn<^%y'M8xwy0=yp߄"+m±Qmv]ȅkhm~GƟ`l}J>`"M\8"3EMp002<obXPT`dH(FLp]x4XXЈ$ŷ޵n[g|.,l9D hX>Sƨ}c~{ue=ؓ[P懅l˽W1L*XH52s[sOmg17sQ9K(8L'8.mxno$`V A/[*<Fu`t6N<ڲtjC9>R<M'SF=ph!:N4Jkhhx.E+bVǒ	>&|& g&"h'(ón~~Nٲ=c/}MvBӞ
`^m'wP%q^(z֡mN":d E<TYL'?v8CWobj+C#T*pˁa)fKpΖc@c@.>8"
 US᲌Gh`@ @
=FͣzF9^x08\X UG:'x8QkGY/G@]KPYvFBbA*@EQ"=9'd%<]0Rz̅PhĦYʄRn\F6u@f|D';0~c{64U`6F]x&m6763ez|UK-p{f
ϋ.γ%싦oHOePcS.h6X"	zhg̤ ˙ԥX>f;i<C^Y[h2ICmH ؕ]f+)g^{Y%`cJ}W;^jhEQ1*a@|D iDe2ݤߟVr1l%`&|˥.=줻](.|"DWR46(Yټ/yn!AedUӊpyoi}w'6?>ٰ2v")b#FGϋe{D6q?5#bWHR_"X)tlxMLAǃH"%Cv	$SIAawNlffjLŋg/wML<yЋw{ɃWgl[>*9{=kƸ , q@ tS}8eޘjPOO7Csθjh2t9qs{kz+\sD`$S.&^i(6R42,i"/$ yf;x9NP#Z-b"Y8s!82`:!4M z<4ѽ:dSm-mj[Y)F}MoZ"p"ۏ9JCVzJoM+`mtp`;hS@bm߰bf|]87pbBG
%F-\3FRHG͔(]F
G1H&ǘ,uS";5p zd:? )&s be:Jrr;.uAS@hо9foNS&ͱ8U}nw=:)1tdj}WhYF$9ӓi-K2,zxlU"uWm;{ϲ*tCmgJ=;gV؁YŻ6
9֗\)[Y)@`;~BDTIד>Ys0m2k~ĆåF$B68]`\c&lj>zKA,~u'z Ow'.[PC&HN-*9&?յ6xbiJL$#U! '39$3?O!X!/D!$#(*5er#]bLD),'iBRɓ t2xb~hf."6k D_1 xb~h;&Fw̧$/k,f̌ƛy91NvY7kl aJl^&%S '<I:	 E"{-{xM
Pu.
:CŅ'w!BI!?^<w&
r0a!BHRgre ,ೲknHFxL5i3sM!3}/V
)v]"12)np.B*5SZζ:bO;<Hwp#p!Ei36+J﫳q>
'ﰬxXQo6~8({p We8[+a(,qDbiQaX GxI:~.ZȲr0//7;#E3uE<[:Z,k4*9#3%L}@t.#^uЈZ堳HVQ;-ѵ--9xo*sk}M.(Uodb +S&!&nkICf=M|rZ@Asd[	RH:wV;q Kװ\G|\rfwp}Z,7˻櫷rRhkIˈÅ[#ت!1[S^mىThZJ4FZ1-+tg>J*LhAe4JuJٸletɡ-1dϥ;PF--iaĎtx.	@֥4=D_Bla09hUҴ_'!^uh"NFJ?Wį}vX?6+ ϧer"I}XԡLXV*E  1	3٭j]oNMɔl;bHL9ˆ5#륭sn}ʮQOi/G@jGJqǂv8#Wj:e۾\`LMƬddƾnLt(=X&k4Cўnw4UW`^#uIUFj5 <nk5@bF'S8sϬef}ybN1GcGMkE}F.dK
ʏxmLƄF	xzoU{jY)-2IN^?t(xW|
t2,4ϯ/'wf=u]ǘ5Кα2+&j?
>\MaEٌntI8=B>M`GIP.lGkgpa,*`e3%=i9:x;`:pf;y7R  Dw!xN0E'd
L,L\mL۲_#z#XӡR{޻aY:)\و5܅l:6ג	.|g-҃y&Ak%-kDZFaFj!ˋT9q>7Li<koy6#$w$OMWyܡm,(ZUeZ%h4got\ k1nY3-_JA4,n~wi]㲒0xlSDY9(3=DA#YSdd,Ģ̲T%M"zy)zYyJ\

y%eEřy

JFfzz %%y 	)MfTrIMKLOM+qdwA4 3.խsN%JSS`Zbj'O`B(I_13g%甦`w 6YL;yRxl8[oF|sE'L>!,0y6`:eIl>e,@՗79U 7&KxQ1N1$
$B */u9or&oQPH@

v.tDڝ?7x9X	&cyu#FeN#]43`P#+-ЃA(mw"j°@+,2zP`UXl{kfIͼ0w`l\&b5h^D^6'=d<ǩ:0-?	o;U_tݣj>[5,7_7I -y$|n[jbGd
vt>1-JEO9ڠ֛
m+g &xuN0],wh+ULL&&Hx,</ã0*!l>\#&3F]HRG%Y]n&0z`*+Le F*P.k-AA><o{b0<!4a,waJ+BDAV<Q5rpLVz<۷tI^} \\(;ET#e<62kV|YYk/U3}iy$xg|1? kF#ټO	Z>cS|ӂk<xuk)% RxƵk:['aPRP O*wxJ0az֋"-Hw̓{'	i3ڰmSZT!$G_Ǵ,e-ݢd&M_'K9	\/}s:X(52ռDARU_-7ih/V ɓ)6BJ2Ѓ9!=oA6D12H1B{1FOsmB&8=5PRY9l7ckT$ylʽiB`1YrWOoծA7wk>o01}`Lcu ~rGx7C1^ĜɊޓ&k:iqb"/n[1d>VAZ%.XZ. ?
xׯ!w>{{D&  SO!xךf.c͋r >=6x9K}d^,6Wv2N' 
LlYf^GLe+2=x>ScC6y,9rC;61 Ao
mx) '$E<Pp{I7x[rRan|Yl&GΟ@nخ2Ni7gr0iHC	l'+-0 bx[2[m+WzAi|r~^IjdFN'<-h=n,&{3L~źل 37Bc$~؁S'oU*Wa 0(h/Nx;pGDY9(3=DAYSxHyfnA~Q~Z~i^JbIf~~niNIfnjJf~ANbejQ|ZQbnjy~Q~r~^ZfV&EĲԼĂҢkURP(/-JN-VUT|]]<|#]C]<3JRJ3Kn+KGT/CIɤz
OJ,F7TK-*/KS*%MɩK*Vn&P<? 1$,7S2嗖$Ke&TG/tt*|ʭ/?ܕ#a\5$ < x;SinY7aY̔7ّmsTwLʷY8OyrdyZ7{2 '!.xE  f<BL=}X@<	&}{\WkXx;CDY9(3=DA#YSh$&ֲʼkD,%.Ңb[Dy%e`^\J`N|^JB5Pg~iIAiI|^bn*P^NP&s{YOQ[U XCmx;pSDY9(3=DAYSdHSBfnA~Q~Z~i^JbIf~~niNIfn~JbNf^Ai>DKT/KɎHMLI-*P I?MBq~iQrjB4%脲xyEzJ:XUeV'秤N̥%Mj@bn*"%d'{q[8XFOt/J[==H;js
cj Vgx1N0@J$CeZS$vĀ:??T8D8@8-L,[OYQ&r
}0꾣;R[\)D 2/-<Kr,ڒG&,<_7Qa`7'S/qjܦ+}ŗa879ZKT`'Vȕ0Y?b-rm<\H;PXi%Uh&}|΢}"MVp"IF]gA਱q|w|zx >~xUJA!UR˰@̑",%,ޘ]s{쟀J_ak7A|w	\ofK3ËU[a.*hn}InvG*xXn4Q&@4l)ȢK<ӼG)Eaq9ImsR/ǩ*g]hGJďZoGj2y@Wt)m4Vr
y7iux)  f<BX@<	UW<_x;s{C03~	%. PO߬" Ax;sSDY9(3=DA#YShH(d;ҢĜԒҼl%Mj. /-)(-KMUUPêCJ	YqjEIj^qf~HGq>HnrZNf@J7HZYBҎz~`M~=A-`Vzv5%\\\Š0HMLI-*PhpMbV>Eɩ`&. Ux;s[DY9(3=DAYSh&ĲdtL%ɧ8rSS2?1%	ħdMdQJ-*/*PR %rK)cM/l̢;EY|f`u/JU,*29՜լ\[A\APGrr E[(xsɋT&en6dOf=J71+ <3Mf)/-JN-VU暼Y% c[xJ0f
Jqa+H(Jn"%&&!M*2'_'Le190JF܂8K 9"/IM3Qiel17̱2
)`~91L3ҍ6bZ5&c58Wn "\<+ͤGEI؃ftI2Պ*P5'~^UcucSI+?{p!"omdw:ߞЪK81`4| Fox9wF*&S&O0-̬dh8ْl)-9? dv@T%ɳm qx;=CDY9(3=DA#YSxH(L̥I2 i̢J@F|JJv|bA^K*R'aVddOVcQ͢"cT_ZRPZ`	T4 KQfYj^hkEIj^qf~HFd0)	lGqT* G1x;1[JjrRb'L
e@n|biJf~|rFb^^jN|Nbe~i^d;fĂĤ̜̒JDД_`&Q,0bH 	Xi¬s! r	9KA! >Hxy)_PYQᬩ`d`dQ,{bYq~iQLQݙ'fe(Maрpa1X3,9%EuX9 zr :(XZ. x7,bx۩Iy8kfEjNd;fb`nnbD>b7{c wx۩SDY9(3=DAYSdH}fnA~Q~Z~i^JbIf~~niNIfn~JbNf^Ai>D˜ʤ
N^ˤDKA8(9XV!SPP҃,5jVb^bzj^VU٩)'pk@9ec,w'HLB:NnQ@~gPsTa,W- cxۤDuwVԊY0M=\eE7jfFV9!:&ZA5 dd  x{ysS&oT33
JKsS2t@IO,TXRYDgQb, j)АTXZ. "bx;µ7"8 U/CIg%#'\h^g ox,sAvCWbIF|jZZjrdGfͽllpy&&[so3 " *x,sEv3onjn~Qe|qIQjbdGfl܊Kx3 BO
x{cg&6.) FBx{Ʊsg&6h.ɿYu,=̼rĂԢT%v oXxys>fG3axxsC53_jQQ~Q|r~J^,/B,i W+xyk,f̼Ԣ-̡܉EI%O3EHxHe WwFx;c2&Ģ&2 KT xĹas~FELF0yi9EJ17&dg&痖ħd&%敀`-(e(p)(rrqg#S:ٌقaLf5tc@f  p?xk<ƹa	KZfNULy FqFbQB~iIAiI|jEIj^qf~RqfefF>~f^rNib >Ȅ|x~jQQ~Q|r~J^PW,W- #Q%ux;ysC 3L`N0'dvf,5,,\\ 65x;͹sNfh7? 29x(7[DY9(3=DAYShH^&IԔksKsJ2b9EiEEٓ_1+#'&%d'Ovd.-(7A\|g*i*TO>¥K*SRP
$&]T`d/-)(-$)VrLå)w/tɺp	 PZD&HФFP]\\ IP@x(wZn2VY=&`=Ylglc/eO-K/(+69O|7^>a0Ojs*fn/^%Ps/(
	 @30#-5x(WDY9(3=DAYSh$&ԔksKsJ2b9EiEEٓ_1k#Ct$dĲҴԢɎ2$Ki"ΒԢbէ&>757rr"4'RFde)q)(fsK.,`d/-)(-'HjR䒙KS<=_0uV;衩TAAM(VHDh$6H$XZ. 'Yx(wUh#3WZ~i^JbIf~df<Ҝb}Ăb̼ҔTd̼̒%. PG5L&/!KIfi.2%׾%4I>^1[ǧLƅ*d8t<,gL~2ًWi^Ry# W}TZx}{Z&ڤ˒ҔļԜɍV|ɉI9%zJ:9M N>l 3	cDN@)_d\Á\5u<n)ΥU E
xk03䵬*

Jzzy%eeɉI9%zJ:\

`֬қ1f FA/x[{{?3df)UDb@X & 
	[x[{s&9 zfyĲx~^bIfYj|bXfe(M.fр0Ƽ
cʲq98k.K`1T! R4mxƽgpiJf~|rFb^^jN|Nbe~idEf͊&gaQåU Cx3 ^
7Ot_common9:zgsx;͹s'3B,JNc?Mx*Up#3f^IjQZbr~qJv|䉬"K(d&e(p) >vjd'qu#!Gv6xdpH5g$@s
l^ö	 ܋k@xJ@1)ka(D-8l,NXxYLvD=D|I+XoCr77O3!s8mTĠ,8yN>ynlTVFwEm9^ӂDuE6@  xY)_A+V.krZԤZgŭ_2^z"̕؃ФU5Db8mdgAϯ
YPݨmx!;w,ЃtPx*CDY9(3=DA#YSh$&ֲʼkD,%.Ңb[,Jy%Ei@!̼ԢĂL܂"Ē̲xnٔ^`S~9AYެa dvEe%dF)rr L,B2x*xIzC&Or~N~Q|ZfNIjdGf76%-?Ę|]r7wnbq6Ē
},Y3!XRҼx8#1%(>5-$͒bL:%-19(/9FTgWdC0!23@qHiٕ&gauH'=@\4E8KR+JnY
qU  swh2nx*OhCHfnA~Q~Z~i^JbIf~䋬"|Eyi[U`bF)E%Eũy)9@Qb̼ҔTd̼̒%. P"0&9#91,Rga0!X(sAbI%?en(JM,.I-O+!1Xs(X8Cr3RlRU 9!Nx{ŵ!ir-@}r~^ZfRNfRkp|AiRNfr<DXISKA!3/94%5>%XV!ZA) SI!+( +6B/KɎHMLI-*P*I-Il.ҢTi@zzy ezJ:AĢJrKrPEQbQ%0-80fcQҜԔD=Ҕ|=E'۲$BR(.Ð! yh[x{cO&̼ԢTdĂL8o?ٛEq'2# +x{)_PYQ`d`dQgj&z ĥP_ZZ`)((dd$TU'd%"VRiUZX_UUŕ_TXTdܝ,vDfk0}L?dl
í\z 2U\Hx{1MDY9(3=DA#YSpH7GL@ZKA8(9XV!ZAI_$#(% RG? SR?; '$-(W/CI! X9x{c2&ɫ̠gLn"ťEiɩy%e	GfUlfE(k"uٛz,:ٖET
,b^B,W- ++L	x5S}f^IjQZbr~qJv|~IFfQJ|AbQI~jzPR %}}"V	׶ٟٖ 3,Vxʹa>kELP&e<O? S,c<ـYB!9#.#Ù5@2l%Mj.ҒҒT[%lP=fWkXe( +@@EXANbIZ~Q.T* zMQ	xʹk{&̼ԢTT}\s2t@I_YDʨ0"dM]/x6ms&̼ԢTd̢ĢJ}o 쌢Ē\%XZ. hx{UWY9(3=DA#YSP4<5S%,39@OG$Ew#<g QKw]C0=Yэwr$Eyx25r2}\Jr2!J
ռ\

y9))E


JJ
\ 3ҋKF4fl Q QG*x{cO&̼ԢTdĂL8o?ًEq2# +9x{sW&._Yu,=̼rĂԢT% InxTێH}^yIF^pd2ko{yBm(pkt7aN,m:uԡka*VboUƣ[i9H	&sm4"Cf,12Qi.	chhekAHFr^"}. U]r&}Ѹ=bȝaΨe"0C6^{cww8\v*O<8HDA׆+xTvDd
XbFZ́)0F]cN4{HL ՘C/?nnV|_n UrnՒ>r6$ŨN@4Uƈ'rS5<)&C%h"QU\ۭj"YW0}n.sSr²BɦO©FɲDEJ5Pw
?AJ},Zeog*[<W'ݿh8ÜGh(
U7\)wd֔'psM)N1Ւ^;?jo5MqV,N9m O"Hh5Q]ɍsu^
SH&CC0-duh{;xo0s"ԧRRY*?ǰbۖvgb&us^&M)bv:>hMzc%Ϡf7XH(>zsGFMXYReHGLՔXIouc~b;߄̟'r<m<ud(tQvVR?CbJb>~C'><ϻ`n&#Nx{{w;utOMu+)I-zbӹӟjy0zc󍻟~дٍQ%qvxoӎmOg 24Le|1i|OU{OMϦnx9w޳S!/}~%xo֥Ov}lNu.iOl|e)̰V٧mOxŶ0* ZF4x==
@`$]QGzK5Bf&O!E掠x{1IP	0CFVN_Y&h=?4&J襁"BᓮcɷNԪ͝w-3!ծ6wEipXѕFv@Hbs>@xXo9~ї4K/{FQ8TV}Zyw`[7]Zr.R^3|ͬiN󅃓%><[q=~'R]!>QgUNRfZ+5Ђf5|L%[hCXȅS^8
R,`
ݯ[? ceC'r
9\Jg\kZ" G۲\jA?_!jӭZ0N
Jm9	'ԼVn'3ΈĻgd)hv06t0mv:Ig40@w<fGCgFpdPS\lSCSsARXʪEb)sA\hO,˜x˖3ZJn엊Íw":7q&x	RL`"ph
OuAT;΂Ŏυ:pS.O~'\"1̬D/-"V5ٌ0Qȑvq_5^dS\R3eBhq} wُ㴐o;L94MxU&-u():Q}Aj'__Au,k'8X>-y>=f8t]Kw$y%^1q$)!2)_AoҿT<aӑmLQcL8(/ec啠ƊJMuZUe9s//Υ}Cz1$vD4=O}`["62:yvoƃ,O&ɣ%D,u$O7(JO뼍ʣ^.q_ɓ8=M3vIC?$',7Py{(rJVUZ+ܫ4PDc;:YUu3?n:Ӈ>Bx Mkl4rqܡny>UUiz|7mۘi2~[|쓰ZpDZ 5aCmz۟wkҦ+kg,*ؕ7uCe7o%2(+wl1o']bxg}M|2O֞m.Pxxna4 nл!H4s#GGL ^騷!ECIՅ#8|y7z΂hCqEO4ÿ_XުJZP	;VJTG+.?YU,$xJAQL
.(&˸7q
5=3UMW9^CP\ AYAc}KEgB}eV=9S!$4.=]&э3gzHqdJ'cWԨ1;2+RGFж <c8*\i*Ku=/(f|*wpXV}΀Yx[t_ !
o	ޒ-?<73be<
ϮqXGqXF׬bg<R+XdH.X@˄LD~)>IwCUnZF!2;9I9Iv9׬oWB5ibO5"kc3V"
<Tܢ^5TMxJuC5zئ1N>þ~dA͛8&p/
MNss(6w&L|s2_#Hp3 #T}s`4# A<8`[xoASkX,xPMۤ^<oLĊmmTҮ,u(T*40m&70ΰAlV=Lmޛf^|ruQE7~\*a^TsUH}Hۻrͤ`(TSJ(ǈ?~B1nC,H˵cZE@'K"e?
9h9\&ȥTE.IsL´ZBCO5!`>3$HE_/3ȜbKzbJ/A2	Zピ\ZhJ4|F;ÐdaZc²4+0$WwY:5|E~rz3`6fuwtI6Ų?E"Whʤ	c68b8Ygs{o36=gnA4dԥ]MD]Uѵ-(jP9m7174_@ZTKm~_'~kiFL.w~Nә-~Va>ܨ
,Ąde?YNzc׃e\rxԩ#毬BL9^1Mf❾ywf&
Oc2rF -`xYQoH~WKt/\H>Y^*f׷]`0!KsG9ػ3}7jA'sAG1|8.RF(-.UWw$Dh&~I38>^PU?jsԟ
RIј H24[1a|mqp^?lf&`q#ΖFӲ7]H	RGs*Gjπǂ3u3Ae:H/6RjE YTgsԵ{5~; >\v\}tv2~]"4j6I!+!D<I&$$DLY`tJ̭.Q4js?&ٟgJ8&<~>DDBב&1/6A	ј*/~n/4R-aʚIDYYriX;j-/T'1	_̑oX-ɳ\*2m-hVVrkTg_лp#4$p*UH5Z'ĚT?$N;jj
+idzLH%TJ]jsRW@u)aPo`pпh[j0Q/1khS|Wvv16W"E=.b7 /̊&{=
_3ϰ4l!h|w'W\	{Ea덏JDn JY)Чf{^lD!"zU\ܛ[h	w&(s>11%$U`tf`[[ĺ>o9j9V1_+8.i"c |2_=WnSޑ
k1N&iDqlՓD^CӮQ`%KtdXliohq@n{V[6;FL<d)dg;5Kݾ]$-ZVٚfo
>U`ȴ}WϚ䖣VNv>/߈je'/U;O|*tmp-ZKV^HKZ!e)	zsGf|p9b*7\F;5/YgnA^H坮LÎ퇊`%Y; zEg{w\ҾtFS2brRG_cQux 1L,$}$`7P*ǿ-mp
@>"q+H^텑hv6+>fNo'y6dUu.ӜHy覓S3c22 *WO>χQOYP;|?0؞~ E=]>-o^	gWh46F&fL6LxORaPҙ"g[eZY.msZk]tÀ@ݺpP|0J$+^1`޷?к<9ZQ8@D.<i^	#h33QZ
3p~Nj9螡"1Q=#O~	(/VZ/b8"bIr}~ICJtgkIJ,Zpv߬Sq4CWu9Td-ihb S8|\gn&4LQ4R@ຂ	lN1A/7Fo#*rwe:yLS+T}*mD D5e5PK,"`ȸuY@i}cyT̊<R1f(JEHzD1ӬӸy_qN3 JY&c	IM1n`tMJ&NUiBqͧ5V<iFqnq$j{5T:gѸ|+r*<3OEh#Y4 \/]-""99jVnډνmuyx3Ѷ개m`C)qB:UON+#%qjϝ:$eBv.{%<)Ex16Jtưc
\+T
;)$_yg%)cZu]^EO:w5g'odV ]

Oӫ| ;+xndKzD{Pu{W+VRt}79Rm,/^\kƦkWkVSxkAƉl|tJBDJz*L6ff6lv-$B{łxRrу? ɣ<NRĈǝw=_x\}'Bu\.QMn[ެ-)"hZeOܮ_o.Ҫ,aYf#3##KmRE$%gy۠v)pU
b5C\n0%o]	y#	+JKx^Ȯ֙A%]V)Ȭ*	Ea'.
:1*vb_oHT'L:茐<jhC@s:~Ϩ5K餆`=g};R濉-/5Mm"cG>}ը(eTl0<:>cFvŤg@[x[A!!0,'&|_Qz0b!g^+<ZL%a.DX\IR:2q&3<ɸ11ul~$lHhms~#A24<"d2 eNXȞ}iЈ@A>?lF+/ؙ$
@xe2	<>q.r-&	<b [\	J&o~O(nrC6
k0*,TTr!/N$>q2$ *&J3n #.6쾜-d{k/?xŖOAcJ A^LD1hF0j41Jk$BZJҖZZD!umxĻ`ܙ]N.mK_ihlofvW 8
='
J{Bp@frO͏eh}G7$8r/!<)l0&HYh6ӌSギҭz3E5gB}n"xG-,GERV:2~OJ?DsĳUD4M"6|)<9Ld0LbBC=4\g8ZG3-w}¹ŒZ'+z{C
ՠh u@{*:FHUmrc*I삞I?^
1b|fOh{mxzdȌIz4Hjжs˰޴^/Jķ:ۄ&Q+jE({pe9-hLH']|<Nk9x<ۍc	UiJnap$qmUpfF6yo+ "\4
ov깂X[^ʶxr@s]vg0ho
7[KVsN$ˡj̒U[v
[sJ>8gLGYqnP]>{,=ph\<AW	Ŭ3WJ$@h {@/n9?Lת(9>E\SCK"CDQ*e|Q"j3_90xH#SjFԻ3}PRɟ@^]?*x	xQOH'5nk/X{% '2SXfө;%51vz=[j'8O3Fc8z\dJ)pNGn RP	jL/#	ΜpT燪_!f"	
҄b@"
٧8bSfy<*	V:¡z+^MS!G(ZM5~'&	Hw$.x8cR>b@F1%tSSHDDR&`l5)WjCAW+ ?]~ݮ7=t~ƭ?m?f~
ys,
0MդY{,$>K㣔(W1&`DlQf׻ujJ(yI@iȄz+)Jse.P2­O,	d7sYY0m_5gb8I4d|s.;SHĆ.(&[b?N"tf	&	Y{KWtHQ7[\W.(('*`\9㋷}ŲcUW8J[
KU
/#ɗIե#t(2m
>!jPAo,H&\L$ 'qngJHob&L=/44EE\h-:.O)4h6L_5*%f(J%srmy]Gk6efH`iA+"D0p>sלE{Ľu͠v&Vp
:պrO/s=XȬK`QWtk5Yl<6'D|[˱7p]ӵKLt̭˘'t
̣b"+8/pJ`#Ϙ'bM1,9C,{{'ߧ|,Y)3%leK;$li-1vCyZ6"ɬge+X6\ZLhVqeZF<rK˕k%T,eQn8]8++qf){pto%N,eNPT\i!WY6Kك}u&4JHW=Gm%e{86_%}@5k[3O Ⓘ..yBWS^bwRZN)soE{Hy{b=esݗ=t0N'D1_2fXg6!dϑ	R6ÀΖ_V3ee+4q٣v=fyRVwpv:n>v[uX+j+_
_d\ftxOLP 	Jb C`C6ʟEÈ-[[[\L.1xЋwīFG/ī-Cmyo[{<ew`sHf(슐TSPjRARfeMbQ^UnSyU)\~Sh2<O\?`sHE$+C!('$Ma~B`qjߜ3
^_ND32RKUfyv)ۀw׌g>ep{[PպZ f(u0ZiI3Y(nQj.=5l5)vE۰7Q L5$:Mλ]B1}K+AJ<WCYiP]pǌ".SE WSJPxdTjԅs8jPS.q6#;;Ӯ(l3%3\یG&	qes1ƊؙljKvPMvIՃgmJK#p8h7+*H"۝Iq5_bp
<@||O}e2녉+*dn9{[qXZibNkQ}.FVnBqC]˕fSцL
`+
:B[|vNB aSx;9q\Y&)ĺ	Ę:ai.ɗgmja
Nl19Gc37/aVnQonv|ҝyEQdBpf q^#q,!͟tCDN60P&0ms!\vCm'bZwֻ	oul^fY/#d$6 ^|Gx9~LrOzَ:uv?|V˳O?nh,,hlm=>i%9)Ez:_NYdWۀϞt5}ﳩ&rkdGOvzrt²3nh{
P)3__|A#Ȉ@e˚͛s=:&<Q;yP~N =O@:
 m+A<9Ie2[Qi϶uEE%Ey
	lFg+mc؍!vegt|u.lqJ_I؋fPkmR>L5drgbz2%ʇR|V:ּػPAPTDERqc$ 7OprRLprɜdi.!mK+]L>qRiNb"E&8j@,M+	
a69Q*/9,	{`<[|(Ȣa|,T!;cQB;~#',L4[5W\İ	8S3Q	c66j#7h(PIm!]
SAuҒaw& I^$W`(0	up
RɯMJ1h@[y&tvM(X<InA.y+L/X`zP`J+zAaI2(Ǝ2JsK2A$:YMhrgb< %}B-C=IB2s!c0A#c:e&`(eBǜZ5',D9&2~Kt
	R)`Zg qT7x9qo&f=lǎg:oy>Yҧ74med4xyӶԴҜԢg=/{m@gO|:a^lh|A_{ھtyE';v=_}:aӎO7?唙/֯dDeMyֹgvjF^F?'ӎKAKHC?oY(," )4'렲23P$|lEO=A@9)p"ȲqNa761|a/8'e!)	$5P/jAGD`HQfz0Ґ]1ɓ(ߑ:'Y`XbCp
8B:ɑH	~$BPf)J&&Ŵkh'IXxD
K*MD@ӧ2Լ.5&'J"#a6gK[@#?7uYԠ#5r*|an,AF_)4МIyh@1yz&J9vLh"&BMiEzByj9,DbKAbJ<TZR7ăp#{4
&626At.:Ii"FGh+d5[ЂEqJ6y%<o|Oܠ4r(nTBi(47$39{'I܄&z&csIG*2"$1GZ1F>	4%0ySfR$d UC;YBc?X,cHQq~ P|e`x\[s6~n~&0M3 MM dG21+!t'G1\]찶sw,&*
GY/*CBQ<RR]KF_OM8}[=)O<tZzԀJĈhGc*C]ȓE|,6]=P?DR֕cÕ39a	ChKV.p(_+FvFG<87(wT8g)JH0G1'JMfcСF!0vQ	\\5:jNF4zl՟hܣF zȓϕ`&Uh0mBR&8,4IĢ5A=H!*RߚK)*ض%qHy3%\?)q-g&ux ]R9*
rcZ&m6#d?JMkHTNYJĥ]貾VY$XhH=*Jf)+:ҸFլ}5:;[? x	iSyrpNS|RjMJiZ<I  :/gS'7`4p$~OrOWJ4ȷ'<*}V),Jt8hڐ%v2z_ǥ	x68BRaڟsuws+AᏫ*+[˫)/8J/k-P[JWZs~c-T]j&LB^eJDeI{%H!k*?䓲OD'.d݆l{η8q.Gf3g%t3-T\	RVU$seЩ컹J,]l= 'B*h)d0a8~A/hX3}"#X/C`DAt'DH?H? PKڕȣ/yY|#QajV7̣JNBaQaW ;Q^+K?l4.18`6-̈́%Sƴ]\5ghcYXqqDv=WeОΑis$@ĄTہҸW%Џ[S.A^%Tӄsh,fXʀ{Q/zR3#qONcu[Nc=?syK_AղAi5k-}Wmp2\zMDWn+c{kj5[Z$H5hѸ*4oj7rN*E2`|>+ ,N7fMūռ23`^Yl_V%y6?Cf;6yr1dBchxvWdx ._͇m'~KYtUT6TO&T1XZlʑ@lk#8[k$١<t-1]5qwo k̭T#mIu[Qm=XLG+<G
cglEfɧ~K4[F"ΝB>n}X:`pM;F vu_"V9l?%Vf
LYq6YydVΌhv׃Q".?9*לgJZ8ɲv2|^/[T~_fcfTڪW5n/o}~۶s%u3F}VnNoLf;Yա>sE#p/YU$>Ȝ>>ܝdsM`߶̘/_+\NO䀘&lor/
gSvz!V'Ҟ#]US4N#2X"=?b7Zܟ6bwc6P]7bV<{"w"'N=wSqU.^aw*ԛKowWgdOɝ䪤bOɝ$DrE:.:#.;5w?Ŝcό3@(><+兏xOGǅ(SV@4FqPhTIZH$V((U+D_)`(?L @ n1J='Tz캪sobX{w1bQ˻~}̛Iklqݨˆ,=CC,#Q4=}17VS^7fK=rN#n!몐?)O|j9?ZZNg8Rh]I~i]߬5{q|m^`($uu!*>/W+߲(.%=KyNe/=	/Jx/K(Y0Q-:#{Q (Ca	r_p&pl-N+=/Rswvbptqu@t38ELlhU+07Ns3
X.m&YGy<NlV=g{z~3rvVni.f*dE9Xj>5鎒Z㧂1}/m_S
:If7]68?N`Rn̃)fŭ;\cYX'
υh<V39#=>mGc2LZQv?bY{)9aEX 2͍6LkI	ujZ5YzۮbyiW(5Mxy/"&Ʋey,J_bu{YB &mWM""%}5h!A΀@و!FݨQ -?hg\RHZ`1~62x4՚
3Gw ?D&5fI,yq#V7o/H1㳎^zWP듨mUV!(=ت@̟b0̓yq']6G85sfux|,NTh-D6Gv''vs% q;sEOX괐?4q3
ޱwpx-8T>#*Qu]-Imui#㤁Nuo[LDVt7 hmΎ.msAvA]ܱtgSwM/׭R٫İOf

Yt8ϢFSh(qqH%aʽCviTHTnORf HB3_u<6ʆy6b<SLjN+
l\NxKlUe'q\!'NBń
l=xf4s'} @H`"u] !`Q	TEBeR%سA?ⱓ&Z=|9[*
A2#EDٌ
RrXLaQ'j=CE)]I8kP,#ySv"UPWGyIĂN?}CRR@Ts?<E%sήX8
e5=S^qu,6ܶ|BTH* -<NU}[f#*G[ciJbn![~vb+o5/"I	q<WňÂ\iz4/I)+,ZvAKLVAm@^R"bؖlab8gn?-oXF/|d>dȈF_|p!I$D]ɊKi-%yyI	ċH(F祱>Nڬ$kh~^gOIAbd mkCɤS!TSDt 6Ԇ-46v5,jkk6'9?..;p_§ރ:3t5Po-Al:瓍m[rU&_͓'DCf|b`s_aHb2 <vļ-'C>*Qfrl>#h-2X0@>a	{S5I7^˶IcR-xzdRu6PB[Vgw  q"XJW{M`G\1,/(#j~/|0W3L&`\tSu֪ܑ5azZ2Xkz%k#￐HoL{W4Զ+l{L~01]my<˷`=3&PJeҫ:5aW&1Sp7}_,Q_&x[qNI>hnx^E7;gKLJLn'l؊,1OPt3$Dj$l1)7<.	'A2ܸ2͋dnAZW>lr%ETKM>"4gs;/e9s#R(NޫН`2>ILa`h?M%?G
N,b-݂A	Uओ4&$&Gi(L`4k FxmL[UC2e	8h)I$C15!b|#ӌ%P5OlR^
-^B)k)d_MMyϹfqf=r{nť_
}9sZqp~~؅\.iA]=h&=M7-om_Ү%~cֻۣi2x/ϝS~}h!#so`w*9Kǁ\->7\b꺆EAmJ'qSS21`,P_'	t$f~ S9y]+ X
%)^$D7$8{M/&pl64Zf@h30@uހ&/tb7p~30j{ER0}XƮhrCK;GdbrKPmp'B&4f%xZ.Q +R)iO_hX ZU8e:﯁죩l}Չ?q\spvz{]/r3wZN aG[PNk:J*J͌{&4Xze0RpY#a'ͨ
'8LD^^SvQ6`FI5Jk@C=81D/v|	,/:
<GE6U,F\$暝1WM_4SBd	HlELIX7< 0W2gDD&`Ñ:ܻhef{T0$)PP#I٣|,@;L1;n0wDRq(&cn4$j[CS34j.?:lNhp?ħկ:-xB+pjuq&^&{/%ZB@6q=,ONnt4,ތĢYG$1?W6{g0G%Y?5`'1y:~esO)ea޾%Jnp>گH;.bf=H}{6𶎗M8[d} ~(6ENe]K6
%d
5D".A9BuLaxrfXASMDLl/ATT,>;^@$qN%#d9y׆ݙw!u[vxMo0Qν{a.]UQ`#t|dD'&6(W\iqad E/Wkpgpl`;p悏[<o&RаSɀݝۗ>U50ON V?+>ݜh9adF|M995HP]QZU|Aµ"sDܟDxŸASy7 brMDF25͠ڀߡ7LF*\'fX
zrћ+^I*<t$C?sΉ
in<r,@U	&11#cIcIc=w_B?RY cZΞ6l=oՉT*z	{?k_+~Նoӛ_W#IԹTNT]w*fe-Ԋ}l|Xw{qvLMzbZ{2m:)hhɽx.R(?}D/j^uJᡠo^>VIWx 9j>EҔaw{M:Lx 3㹌w[D+G0ꦑ}={x3 9>^sd*L/M\v&rnqVԫ qgO"x 9QK(D|Խ~v6)M:w-x 9Ќǎjy.u%׋tu?ؑM|Yx 9pAX}zQO <MتXx 9^ޏ (*y	Mz$x3 9>^sd*L/M\v&rnqVԫ qgO纡+x   #!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os
import sys
import re
import shutil
import json
import subprocess
import tempfile
import argparse
import time
from pathlib import Path
from typing import List, Tuple, Optional, Dict, Any, Set
import logging


class SystemApiRemover:
    # 需要检查的 AST 节点类型：
    # FunctionDecl   — 函数声明
    # TypedefDecl    — typedef（函数指针、前向声明、struct/enum typedef）
    # EnumDecl       — 裸 enum 定义
    # RecordDecl     — 裸 struct 定义（C 模式）
    # CXXRecordDecl  — 裸 struct/class 定义（C++ 模式）
    # VarDecl        — 全局变量声明
    SYSTEMAPI_NODE_KINDS = {'FunctionDecl', 'TypedefDecl', 'EnumDecl', 'RecordDecl', 'CXXRecordDecl', 'VarDecl'}



    def __init__(self, input_dir: str, output_dir: str, napi_dir: Optional[str] = None,
                 verbose: bool = False, log_file: Optional[str] = None,
                 force_regex: bool = False):
        self.start_time = time.time()
        self.input_dir = Path(input_dir).resolve()
        self.output_dir = Path(output_dir).resolve()
        self.napi_dir = Path(napi_dir).resolve() if napi_dir else None
        self.force_regex = force_regex

        self._init_stats()

        self.verbose = verbose

        # 日志配置：控制台输出 INFO 级别，verbose 模式下文件记录 DEBUG 级别
        log_level = logging.DEBUG if verbose else logging.INFO
        self.logger = logging.getLogger(__name__)
        self.logger.setLevel(log_level)
        self.logger.handlers.clear()

        formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

        console_handler = logging.StreamHandler(sys.stdout)
        console_handler.setLevel(logging.INFO)
        console_handler.setFormatter(formatter)
        self.logger.addHandler(console_handler)

        if log_file:
            try:
                log_path = Path(log_file)
                log_path.parent.mkdir(parents=True, exist_ok=True)
                file_handler = logging.FileHandler(log_path, encoding='utf-8')
                file_handler.setLevel(log_level)
                file_handler.setFormatter(formatter)
                self.logger.addHandler(file_handler)
                self.logger.info(f"Logging to file: {log_path.absolute()}")
            except Exception as e:
                self.logger.warning(f"Failed to create log file {log_file}: {e}")

        # 启动时检查 clang 是否可用
        self.check_clang()


    def _build_clang_command(self, include_paths: List[str], fake_include_dir: Path) -> List[str]:
        compile_args = [
            '-x', 'c++-header',
            '-std=c++11',
            '-Dbool=_Bool',
            '-Dtrue=1',
            '-Dfalse=0',
            '-D__bool_true_false_are_defined=1',
            '-D__STDC_VERSION__=199901L',
            '-D__cplusplus=201103L',
            '-D_GNU_SOURCE',
            '-D_POSIX_C_SOURCE=200809L',
            '-D_Bool=bool',
            '-Wno-unknown-attributes',
            '-Wno-pragma-pack',
            '-Wno-ignored-attributes',
            '-Wno-deprecated-declarations',
            '-Wno-typedef-redefinition',
            '-Wno-incomplete-umbrella',
            '-Wno-implicit-function-declaration',
            '-Wno-c++11-compat',
            '-Wno-unknown-pragmas',
            '-Wno-unused-parameter',
            '-Wno-missing-field-initializers',
            '-Wno-initializer-overrides',
            '-Wno-builtin-requires-header',
            '-Wno-incompatible-pointer-types',
            '-Wno-int-conversion',
            '-Wno-implicit-int',
            '-Wno-nullability-completeness',
            '-Wno-everything',
            '-ferror-limit=0',
            '-fms-compatibility',
            '-fallow-editor-placeholders',
            '-fdelayed-template-parsing',
            '-target', 'x86_64-linux-gnu',
        ]
        compile_args.extend(include_paths)
        compile_args.append(f"-I{fake_include_dir}")
        return compile_args


    def _check_and_collect_node(self, node: Dict[str, Any], source_lines: List[str],
                                source_text: str, node_kind: str,
                                to_remove: List[Tuple[int, int, str]]) -> bool:
        """检查单个 AST 节点是否匹配 @systemapi，若匹配则添加删除范围。返回是否匹配"""
        if node_kind not in self.SYSTEMAPI_NODE_KINDS or not self._is_from_main_file(node):
            return False

        node_name = node.get('name', 'unknown') or node_kind
        self.stats['functions_found'] += 1
        comment = self.extract_comment_before_node(node, source_lines, node_name, source_text)

        if not self.has_systemapi_tag(comment):
            return False

        self.stats['functions_with_systemapi'] += 1
        if self.verbose:
            self.logger.debug(f"  Found @systemapi in {node_kind} {node_name}")

        start_line, end_line = self.get_node_location(node, source_text, source_lines)
        if not start_line or not end_line:
            self.logger.debug(f"    Skipping {node_name}: no location info")
            return False

        comment_start_line = start_line
        line_num = start_line - 2
        found_comment = False
        while line_num >= 0 and line_num < len(source_lines):
            line = source_lines[line_num].strip()
            is_comment = (line.startswith('//') or line.startswith('/*') or
                          line.startswith('/**') or line.startswith('/*!') or
                          '*/' in line or
                          (line.startswith('*') and not line.startswith('*/')))
            if is_comment:
                found_comment = True
                comment_start_line = line_num + 1
                line_num -= 1
                continue
            if line == '' and not found_comment:
                comment_start_line = line_num + 1
                line_num -= 1
                continue
            break

        to_remove.append((comment_start_line, end_line, node_name))
        return True


    def _check_macro_comment(self, lines: List[str], start: int) -> Optional[Tuple[int, int]]:
        """检查注释块后是否跟 #define 宏，返回 (comment_start, decl_end) 或 None"""
        comment_content = []
        comment_end = start
        while comment_end < len(lines):
            comment_content.append(lines[comment_end])
            if '*/' in lines[comment_end]:
                comment_end += 1
                break
            comment_end += 1
        comment_text = '\n'.join(comment_content)
        if not self._has_strict_systemapi(comment_text):
            return None
        j = comment_end
        while j < len(lines) and lines[j].strip() == '':
            j += 1
        if j >= len(lines) or not re.match(r'#\s*define', lines[j].strip()):
            return None
        actual_start = self._find_contiguous_comment_start(lines, start)
        decl_end = j
        for k2 in range(j, len(lines)):
            decl_end = k2
            if not lines[k2].rstrip().endswith('\\'):
                break
        return (actual_start, decl_end)

    @staticmethod
    @staticmethod
    def _find_block_comment_open(lines: List[str], close_line: int) -> Optional[int]:
        """从块注释结尾行向上查找对应的 /* 开头行，返回行号或 None"""
        bk = close_line - 1
        while bk >= 0:
            bs = lines[bk].strip()
            if bs.startswith('/*') or bs.startswith('/**') or bs.startswith('/*!'):
                return bk
            if bs.startswith('*') or bs.endswith('*/'):
                bk -= 1
                continue
            return None
        return None

    @staticmethod
    def _find_contiguous_comment_start(lines: List[str], start: int) -> int:
        """从含 @systemapi 的注释块起始行向上回溯，找到紧贴的连续注释块的最早起始行"""
        actual_start = start
        k = start - 1
        while k >= 0:
            s = lines[k].strip()
            if s == '':
                break
            if s.endswith('*/'):
                open_line = SystemApiRemover._find_block_comment_open(lines, k)
                if open_line is not None:
                    actual_start = open_line
                    k = open_line - 1
                else:
                    break
            elif s.startswith('*'):
                actual_start = k
                k -= 1
            else:
                break
        return actual_start


    @staticmethod
    def _classify_comment_line(stripped: str, found_comment: bool,
                               comment_style: Optional[str] = None) -> Tuple[str, bool, Optional[str]]:
        """分类一行源码，返回 (动作, 更新后的 found_comment, 更新后的 comment_style)。
        动作: 'insert'=插入并继续, 'insert_stop'=插入并停止,
              'stop'=停止, 'skip'=跳过并继续
        comment_style: 追踪当前注释风格 ('block' 或 'line')，防止跨风格收集
        """
        if stripped.startswith('//'):
            if comment_style == 'block':
                return 'stop', found_comment, comment_style
            return 'insert', True, 'line'
        if '*/' in stripped:
            if comment_style == 'line':
                return 'stop', found_comment, comment_style
            return 'insert', True, 'block'
        if stripped.startswith('*') and not stripped.startswith('/*') and not stripped.startswith('/**'):
            return 'insert', found_comment, comment_style
        if stripped.startswith('/**') or stripped.startswith('/*') or stripped.startswith('/*!'):
            if comment_style == 'line':
                return 'stop', found_comment, comment_style
            return 'insert_stop', True, 'block'
        if stripped == '' and found_comment:
            return 'insert', found_comment, comment_style
        if stripped == '':
            return 'skip', found_comment, comment_style
        if found_comment:
            return 'stop', found_comment, comment_style
        return 'stop', found_comment, comment_style


    SKIP_DIR_NAMES = {'third_party'}

    def _collect_header_files(self) -> List[Path]:
        """收集输入目录中所有头文件"""
        all_header_files = []
        for root, dirs, files in os.walk(self.input_dir):
            dirs[:] = [d for d in dirs if d not in self.SKIP_DIR_NAMES]
            root_path = Path(root)
            for file in files:
                file_path = root_path / file
                if self.is_header_file(file_path):
                    all_header_files.append(file_path)
        return all_header_files


    def _collect_missing_headers(self, compile_args: List[str],
                                 input_file: Path) -> Set[str]:
        """预处理头文件，收集所有 'file not found' 的缺失头文件名"""
        preprocess_cmd = [self.clang_binary, '-E'] + compile_args + [str(input_file)]
        preprocess_result = subprocess.run(preprocess_cmd, capture_output=True)
        preprocess_result.stdout = preprocess_result.stdout.decode('utf-8', errors='replace')
        preprocess_result.stderr = preprocess_result.stderr.decode('utf-8', errors='replace')
        missing_headers = set()
        if preprocess_result.stderr:
            matches = re.findall(r"'(.*?)' file not found", preprocess_result.stderr)
            for match in matches:
                missing_headers.add(match)
        return missing_headers


    def _collect_output_headers(self) -> List[Path]:
        """收集输出目录中所有头文件"""
        output_headers = []
        for root, dirs, files in os.walk(self.output_dir):
            root_path = Path(root)
            for file in files:
                file_path = root_path / file
                if self.is_header_file(file_path):
                    output_headers.append(file_path)
        return output_headers


    def _copy_non_header_files(self) -> None:
        """将非头文件直接拷贝到输出目录（保持目录结构）"""
        for root, dirs, files in os.walk(self.input_dir):
            dirs[:] = [d for d in dirs if d not in self.SKIP_DIR_NAMES]
            root_path = Path(root)
            rel_path = root_path.relative_to(self.input_dir)
            output_root = self.output_dir / rel_path
            for file in files:
                file_path = root_path / file
                self.stats['total_files_scanned'] += 1
                if not self.is_header_file(file_path):
                    self.stats['non_header_files'] += 1
                    output_file = output_root / file
                    output_file.parent.mkdir(parents=True, exist_ok=True)
                    shutil.copy2(file_path, output_file)


    def _create_basic_fake_headers(self, fake_include_dir: Path) -> None:
        """为基础系统头文件（stddef.h 等）创建 fake header"""
        basic_headers = ['stddef.h', 'stdint.h', 'stdbool.h', 'stdarg.h', 'limits.h']
        for header in basic_headers:
            fake_file = fake_include_dir / header
            if not fake_file.exists():
                self.create_fake_header(header, fake_include_dir)


    @staticmethod
    def _extract_enum_and_struct_names(content: str) -> Set[str]:
        """从内容中提取所有 enum 和 struct 标签名"""
        symbols = set()
        for m in re.finditer(r'\benum\s+(\w+)\s*\{', content):
            symbols.add(m.group(1))
        for m in re.finditer(r'\bstruct\s+(\w+)\s*\{', content):
            symbols.add(m.group(1))
        for m in re.finditer(r'\bstruct\s+(\w+)\s*;', content):
            symbols.add(m.group(1))
        return symbols


    def _extract_exported_symbols(self, header_path: Path) -> Set[str]:
        """从头文件中提取所有导出的符号名，用于判断 #include 是否仍被需要。
        提取：typedef 名、enum 标签、struct 标签、函数名、全大写宏名。"""
        symbols = set()
        try:
            with open(header_path, 'r', encoding='utf-8', errors='ignore') as f:
                content = f.read()
        except Exception:
            return symbols

        symbols |= self._extract_typedef_names(content)
        symbols |= self._extract_enum_and_struct_names(content)
        symbols |= self._extract_function_names(content)
        symbols |= self._extract_macro_names(content)

        symbols = {s for s in symbols if s not in ('Copyright', 'License', 'NULL')}
        return symbols


    @staticmethod
    def _extract_function_names(content: str) -> Set[str]:
        """从内容中提取所有函数名（排除 C 语言关键字）"""
        keywords = ('if', 'for', 'while', 'switch', 'return', 'sizeof')
        symbols = set()
        for m in re.finditer(r'^\s*(?:extern\s+)?[\w\s\*]+?\s+(\w+)\s*\(', content, re.MULTILINE):
            name = m.group(1)
            if name not in keywords:
                symbols.add(name)
        return symbols


    def _extract_local_includes(self, lines: List[str]) -> List[Tuple[int, str, str]]:
        """从行列表中提取所有本地 #include "xxx.h" 的索引和名称"""
        include_lines = []
        for idx, line in enumerate(lines):
            stripped = line.strip()
            m = re.match(r'#\s*include\s+"([^"]+)"', stripped)
            if m:
                include_lines.append((idx, m.group(1), stripped))
        return include_lines


    @staticmethod
    def _extract_macro_names(content: str) -> Set[str]:
        """从内容中提取全大写的宏名（排除 include guard 和以下划线开头的内部宏）"""
        guard_macros = set()
        for m in re.finditer(r'#\s*ifndef\s+(\w+)', content):
            guard_macros.add(m.group(1))
        for m in re.finditer(r'#\s*if\s*!\s*defined\s*\(\s*(\w+)\s*\)', content):
            guard_macros.add(m.group(1))

        symbols = set()
        for m in re.finditer(r'#\s*define\s+(\w+)', content):
            macro = m.group(1)
            if not macro.startswith('_') and macro == macro.upper():
                if macro not in guard_macros:
                    symbols.add(macro)
        return symbols


    @staticmethod
    def _extract_typedef_names(content: str) -> Set[str]:
        """从内容中提取所有 typedef 名称"""
        symbols = set()
        for m in re.finditer(r'typedef\s+.*?\s+(\*?\s*\w+)\s*;', content):
            name = m.group(1).replace('*', '').strip()
            if name and not name.startswith('('):
                symbols.add(name)
        for m in re.finditer(r'typedef\s+(?:struct|enum)\s*\{[^}]*\}\s*(\w+)\s*;', content, re.DOTALL):
            symbols.add(m.group(1))
        for m in re.finditer(r'typedef\s+(?:struct|enum)\s+\w+\s*\{[^}]*\}\s*(\w+)\s*;', content, re.DOTALL):
            symbols.add(m.group(1))
        for m in re.finditer(r'typedef\s+struct\s+(\w+)\s*\*', content):
            symbols.add(m.group(1))
        return symbols


    @staticmethod
    def _find_brace_block_end(lines: List[str], start: int) -> int:
        """查找 struct/class/enum 花括号块的结束行"""
        decl_end = start
        brace_count = 0
        for k in range(start, len(lines)):
            if '{' in lines[k]:
                brace_count += lines[k].count('{')
            if '}' in lines[k]:
                brace_count -= lines[k].count('}')
            if brace_count == 0 and k > start:
                decl_end = k
                if k + 1 < len(lines) and ';' in lines[k + 1]:
                    decl_end = k + 1
                break
        return decl_end


    def _find_cross_file_unused(self, lines: List[str],
                                include_lines: List[Tuple[int, str, str]]) -> Set[int]:
        """检查跨文件 include 是否仍被使用，返回不再使用的行索引集合"""
        lines_to_remove = set()
        include_indices = {inc_idx for inc_idx, _, _ in include_lines}
        body_content = '\n'.join(
            line for idx, line in enumerate(lines)
            if idx not in include_indices
        )

        for inc_idx, inc_name, inc_line in include_lines:
            inc_output = self._find_output_include(inc_name)
            if not inc_output:
                continue

            symbols = self._extract_exported_symbols(inc_output)
            if not symbols:
                lines_to_remove.add(inc_idx)
                if self.verbose:
                    self.logger.debug(f"    [cross-file] Remove include: {inc_line} (no symbols left in {inc_name})")
                continue

            if not self._symbols_used_in_content(symbols, body_content):
                lines_to_remove.add(inc_idx)
                if self.verbose:
                    self.logger.debug(f"    [cross-file] Remove include: {inc_line} (no symbols used)")

        return lines_to_remove


    @staticmethod
    def _find_define_end(lines: List[str], start: int) -> int:
        """查找 #define 宏定义的结束行"""
        decl_end = start
        for k in range(start, len(lines)):
            decl_end = k
            if not lines[k].rstrip().endswith('\\'):
                break
        return decl_end


    def _find_include_file(self, include_name: str, current_file: Path) -> Optional[Path]:
        """在输入目录和 napi 目录中查找被 #include 引用的文件"""
        candidates = [
            current_file.parent / include_name,
            self.input_dir / include_name,
        ]
        if self.napi_dir:
            for root, dirs, files in os.walk(self.napi_dir):
                candidate = Path(root) / include_name
                if candidate.exists():
                    candidates.append(candidate)
                    break

        for root, dirs, files in os.walk(self.input_dir):
            candidate = Path(root) / include_name
            if candidate.exists():
                candidates.append(candidate)
                break

        for c in candidates:
            if c.exists():
                return c.resolve()
        return None


    def _find_macro_removal_ranges(self, lines: List[str]) -> List[Tuple[int, int]]:
        """扫描源码行，找到所有带 @systemapi 注释的 #define 宏的起止行号范围"""
        ranges = []
        i = 0
        while i < len(lines):
            line = lines[i]
            if '/*' in line or '/**' in line:
                result = self._check_macro_comment(lines, i)
                if result:
                    ranges.append(result)
                    i = result[1] + 1
                    continue
                comment_end = i
                while comment_end < len(lines) and '*/' not in lines[comment_end]:
                    comment_end += 1
                i = comment_end + 1
                continue
            else:
                i += 1
        return ranges


    def _find_output_include(self, inc_name: str) -> Optional[Path]:
        """在输出目录中查找被引用的头文件（处理后的版本）"""
        for root, dirs, files in os.walk(self.output_dir):
            candidate = Path(root) / inc_name
            if candidate.exists() and candidate.is_file():
                return candidate
            candidate = Path(root) / Path(inc_name).name
            if candidate.exists() and candidate.is_file():
                return candidate
        return None


    def _find_raw_comment(self, source_lines: List[str],
                          start_line: int) -> Optional[List[str]]:
        """从声明行向上回溯，收集原始注释行"""
        comment_lines = []
        line_idx = start_line - 2
        found_comment = False
        comment_style = None

        while line_idx >= 0:
            if line_idx >= len(source_lines):
                break
            line = source_lines[line_idx]
            stripped = line.strip()
            action, found_comment, comment_style = self._classify_comment_line(stripped, found_comment, comment_style)
            if action == 'insert':
                comment_lines.insert(0, line)
                line_idx -= 1
            elif action == 'insert_stop':
                comment_lines.insert(0, line)
                break
            elif action == 'stop':
                break
            else:
                line_idx -= 1

        return comment_lines if comment_lines else None


    @staticmethod
    def _find_typedef_aggregate_end(lines: List[str], start: int, decl_line: str) -> int:
        """查找 typedef enum/struct 类型的结束行"""
        decl_end = start
        if '{' not in decl_line:
            return decl_end
        brace_count = 0
        for k in range(start, len(lines)):
            if '{' in lines[k]:
                brace_count += lines[k].count('{')
            if '}' in lines[k]:
                brace_count -= lines[k].count('}')
            if brace_count == 0 and k > start:
                decl_end = k
                if k + 1 < len(lines) and ';' in lines[k + 1]:
                    decl_end = k + 1
                break
        return decl_end


    @staticmethod
    def _find_typedef_simple_end(lines: List[str], start: int) -> int:
        """查找简单 typedef 声明的结束行（找到分号）"""
        decl_end = start
        for k in range(start, len(lines)):
            if ';' in lines[k]:
                decl_end = k
                break
        return decl_end


    def _find_unused_local_includes(self, lines: List[str],
                                    current_file: Path) -> Set[int]:
        """查找内容中不再使用的本地 #include 行索引集合"""
        lines_to_remove = set()
        include_lines = self._extract_local_includes(lines)
        if not include_lines:
            return lines_to_remove

        include_indices = {inc_idx for inc_idx, _, _ in include_lines}
        body_content = '\n'.join(
            line for idx, line in enumerate(lines)
            if idx not in include_indices
        )

        for inc_idx, inc_name, inc_line in include_lines:
            inc_file = self._find_include_file(inc_name, current_file)
            if not inc_file:
                continue

            symbols = self._extract_exported_symbols(inc_file)
            if not symbols:
                continue

            if not self._symbols_used_in_content(symbols, body_content):
                lines_to_remove.add(inc_idx)
                if self.verbose:
                    self.logger.debug(f"    Remove unused include: {inc_line}")

        return lines_to_remove


    def _generate_fake_header_content(self, header_path: str) -> str:
        """生成 fake header 文件的完整内容，包含基础类型定义供 clang 解析使用"""
        macro_name = f"_FAKE_{header_path.replace('/', '_').replace('.', '_').upper()}"
        parts = [
            f'#ifndef {macro_name}\n#define {macro_name}\n',
            f'// Auto-generated fake header for {header_path}\n',
            '#include <stddef.h>\n#include <stdint.h>\n#include <stdbool.h>\n',
            '#ifdef __cplusplus\nextern "C" {\n#endif\n',
            self._get_fake_bool_types(),
            self._get_fake_size_types(),
            self._get_fake_int_types(),
            self._get_fake_napi_types(),
            self._get_fake_arkui_types(),
            self._get_fake_common_macros(),
            '#ifdef __cplusplus\n}\n#endif\n\n#endif\n',
        ]
        return '\n'.join(parts)


    @staticmethod
    def _get_fake_arkui_types() -> str:
        """返回 fake header 中 ArkUI 类型的字符串片段"""
        return (
            '// ============ ArkUI Types ============\n'
            'struct ArkUI_ProgressLinearStyleOption;\n'
            'typedef struct ArkUI_ProgressLinearStyleOption ArkUI_ProgressLinearStyleOption;\n\n'
            'struct ArkUI_Node;\ntypedef struct ArkUI_Node ArkUI_Node;\n'
        )


    @staticmethod
    def _get_fake_bool_types() -> str:
        """返回 fake header 中 bool 类型定义的字符串片段"""
        return (
            '// ============ Basic Type Definitions ============\n'
            '#ifndef __cplusplus\ntypedef _Bool bool;\n#else\ntypedef bool bool;\n#endif\n\n'
            '#define true 1\n#define false 0\n#define __bool_true_false_are_defined 1\n'
        )


    @staticmethod
    def _get_fake_common_macros() -> str:
        """返回 fake header 中常用宏定义的字符串片段"""
        return (
            '// ============ Common Macros ============\n'
            '#ifndef NULL\n#define NULL ((void*)0)\n#endif\n\n'
            '#ifndef SIZE_MAX\n#define SIZE_MAX ((size_t)-1)\n#endif\n'
        )


    @staticmethod
    def _get_fake_int_types() -> str:
        """返回 fake header 中固定宽度整数类型的字符串片段"""
        return (
            '// ============ Fixed-width Integer Types ============\n'
            '#ifndef int8_t\ntypedef signed char int8_t;\n#endif\n\n'
            '#ifndef uint8_t\ntypedef unsigned char uint8_t;\n#endif\n\n'
            '#ifndef int16_t\ntypedef short int16_t;\n#endif\n\n'
            '#ifndef uint16_t\ntypedef unsigned short uint16_t;\n#endif\n\n'
            '#ifndef int32_t\ntypedef int int32_t;\n#endif\n\n'
            '#ifndef uint32_t\ntypedef unsigned int uint32_t;\n#endif\n\n'
            '#ifndef int64_t\ntypedef long long int64_t;\n#endif\n\n'
            '#ifndef uint64_t\ntypedef unsigned long long uint64_t;\n#endif\n'
        )


    @staticmethod
    def _get_fake_napi_types() -> str:
        """返回 fake header 中 NAPI 类型的字符串片段"""
        return (
            '// ============ NAPI Types ============\n'
            'struct napi_env__;\ntypedef struct napi_env__ *napi_env;\n\n'
            'struct napi_value__;\ntypedef struct napi_value__ *napi_value;\n\n'
            'struct napi_callback_info__;\ntypedef struct napi_callback_info__ *napi_callback_info;\n\n'
            'typedef enum {\n'
            '    napi_ok = 0,\n'
            '    napi_invalid_arg,\n'
            '    napi_oom,\n'
            '    napi_pending_exception,\n'
            '    napi_cancelled\n'
            '} napi_status;\n'
        )


    @staticmethod
    def _get_fake_size_types() -> str:
        """返回 fake header 中 size_t 等大小类型的字符串片段"""
        return (
            '// ============ Size Types ============\n'
            '#ifndef size_t\ntypedef __SIZE_TYPE__ size_t;\n#endif\n\n'
            '#ifndef ssize_t\ntypedef __SIZE_TYPE__ ssize_t;\n#endif\n\n'
            '#ifndef off_t\ntypedef long off_t;\n#endif\n\n'
            '#ifndef ptrdiff_t\ntypedef __PTRDIFF_TYPE__ ptrdiff_t;\n#endif\n'
        )


    def _init_stats(self):
        self.stats = {
            'total_files_scanned': 0,
            'header_files': 0,
            'non_header_files': 0,
            'clang_processed': 0,
            'clang_modified': 0,
            'regex_processed': 0,
            'regex_modified': 0,
            'regex_no_api': 0,
            'modified_headers': 0,
            'apis_removed': 0,
            'clang_timeout': 0,
            'clang_errors': 0,
            'functions_found': 0,
            'functions_with_systemapi': 0,
            'fake_headers_created': 0,
            'includes_removed': 0,
            'empty_headers_removed': 0,
        }

        self.clang_files: List[Path] = []
        self.clang_modified_files: List[Path] = []
        self.regex_files: List[Path] = []
        self.regex_modified_files: List[Path] = []
        self.failed_files: List[Tuple[Path, str]] = []
        self.validation_errors: List[Tuple[Path, str]] = []
        self.clang_error_files: List[Tuple[Path, str]] = []
        self.public_ref_errors: List[Tuple[Path, str, List[str]]] = []
        self.all_deleted_names: Dict[str, Set[Path]] = {}


    def _is_from_main_file(self, node: Dict[str, Any]) -> bool:
        """判断 AST 节点是否来自主文件（而非 #include 进来的文件）。
        只检查 includedFrom 字段：
        - 有 includedFrom → 来自 #include 文件 → 跳过
        - 无 includedFrom → 主文件中的声明 → 处理

        注意：不检查 file 字段。因为主文件中使用外部类型的函数声明
        （如 void Func(const ExternalType* p)）的 loc 也会带 file 字段，
        但它们确实是在主文件中声明的，不应被过滤。"""
        loc = node.get('loc', {})
        if isinstance(loc, dict):
            if 'includedFrom' in loc:
                return False
        return True


    def _log_processing_start(self, total_headers: int) -> None:
        """输出处理开始前的日志信息"""
        self.logger.info(f"Starting processing...")
        self.logger.info(f"Input directory:  {self.input_dir}")
        self.logger.info(f"Output directory: {self.output_dir}")
        if self.napi_dir:
            self.logger.info(f"NAPI directory:   {self.napi_dir}")
        self.logger.info(f"Total header files to process: {total_headers}")


    def _parse_clang_output(self, stdout_text: str) -> Optional[Dict[str, Any]]:
        if not stdout_text or not stdout_text.strip():
            return None
        stdout = stdout_text
        json_start = -1
        for i, char in enumerate(stdout):
            if char in '{[':
                json_start = i
                break

        if json_start >= 0:
            stdout = stdout[json_start:]

        try:
            return json.loads(stdout)
        except json.JSONDecodeError:
            return None


    def _parse_comment_text(self, comment_lines: List[str]) -> Optional[str]:
        """从原始注释行中提取注释正文文本"""
        full_comment = '\n'.join(comment_lines)

        if '/*' in full_comment or '/**' in full_comment:
            match = re.search(r'/\*+([\s\S]*?)\*/', full_comment)
            if match:
                comment_content = match.group(1).strip()
            else:
                comment_content = full_comment
        else:
            comment_lines_only = [
                line.split('//', 1)[1].strip()
                for line in comment_lines
                if '//' in line
            ]
            comment_content = '\n'.join(comment_lines_only)

        comment_content = re.sub(r'^\s*[*!]\s?', '', comment_content, flags=re.MULTILINE)
        comment_content = comment_content.strip()
        return comment_content if comment_content else None


    def _print_error_stats(self):
        if self.failed_files and len(self.failed_files) <= 10:
            print()
            print("? FAILED FILES:")
            print("-" * 70)
            for file_path, reason in self.failed_files[:10]:
                try:
                    rel_path = file_path.relative_to(self.input_dir)
                except ValueError:
                    rel_path = file_path
                print(f"  ? {rel_path}")

        if self.clang_error_files:
            print()
            print("?? CLANG ERROR FILES (regex fallback used):")
            print("-" * 70)
            for file_path, reason in self.clang_error_files:
                try:
                    rel_path = file_path.relative_to(self.input_dir)
                except ValueError:
                    rel_path = file_path
                print(f"  ?? {rel_path}")
                print(f"     Reason: {reason}")

        if self.public_ref_errors:
            print()
            print("? ERROR: Public API references @systemapi type (should be blocked upstream):")
            print("-" * 70)
            for file_path, deleted_type, refs in self.public_ref_errors:
                try:
                    rel_path = file_path.relative_to(self.input_dir)
                except ValueError:
                    rel_path = file_path
                print(f"  File: {rel_path}")
                print(f"  Deleted @systemapi type: {deleted_type}")
                for ref in refs:
                    print(f"    Referenced by: {ref}")
                print()


    def _collect_deleted_names(self, input_file: Path, deleted_names: List[str]) -> None:
        for name in deleted_names:
            if name not in self.all_deleted_names:
                self.all_deleted_names[name] = set()
            self.all_deleted_names[name].add(input_file)

    def _check_public_references_across_files(self) -> None:
        if not self.all_deleted_names:
            return
        skip_names = {
            'bool', '_Bool', 'true', 'false', 'NULL',
            'size_t', 'ssize_t', 'ptrdiff_t', 'nullptr_t',
            'int8_t', 'int16_t', 'int32_t', 'int64_t',
            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
            'intptr_t', 'uintptr_t',
            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
            'intmax_t', 'uintmax_t',
        }
        output_contents: Dict[Path, str] = {}
        for output_file in self.output_dir.rglob('*'):
            if output_file.is_file() and self.is_header_file(output_file):
                try:
                    with open(output_file, 'r', encoding='utf-8', errors='ignore') as f:
                        output_contents[output_file] = f.read()
                except Exception:
                    pass
        for name in self.all_deleted_names:
            if name in skip_names:
                continue
            deleted_in_files = self.all_deleted_names[name]
            for output_file, content in output_contents.items():
                input_file = self.input_dir / output_file.relative_to(self.output_dir)
                refs = []
                for idx, line in enumerate(content.split('\n')):
                    stripped = line.strip()
                    if not stripped or stripped.startswith('//') or stripped.startswith('/*'):
                        continue
                    if stripped.startswith('*') or stripped.startswith('/**'):
                        continue
                    if re.search(rf'\b{re.escape(name)}\b', line):
                        ctx = self._get_declaration_context(content.split('\n'), idx)
                        refs.append(ctx)
                if refs:
                    self.public_ref_errors.append((input_file, name, refs))

    def _get_declaration_context(self, lines: List[str], target_idx: int) -> str:
        start = target_idx
        while start > 0:
            prev = lines[start - 1].strip()
            if prev == '' or prev.startswith('//') or prev.startswith('/*') or prev.startswith('*') or prev.endswith('*/'):
                break
            if not prev.endswith(','):
                break
            start -= 1
        end = target_idx
        while end < len(lines) - 1:
            curr = lines[end].strip()
            if curr.endswith(';') or curr.endswith('}'):
                break
            end += 1
        snippet = ' '.join(l.strip() for l in lines[start:end + 1] if l.strip())
        if len(snippet) > 120:
            snippet = snippet[:120] + '...'
        return snippet

    def _print_file_stats(self):
        print("?? FILE STATISTICS:")
        print("-" * 70)
        print(f"  Total files scanned:        {self.stats['total_files_scanned']}")
        print(f"  Header files:               {self.stats['header_files']}")
        print(f"  Non-header files:           {self.stats['non_header_files']}")
        print(f"  Fake headers created:       {self.stats['fake_headers_created']}")
        print()


    def _print_modification_stats(self):
        print("?? MODIFICATION RESULTS:")
        print("-" * 70)
        print(f"  Modified headers:           {self.stats['modified_headers']}")
        print(f"  Unchanged headers:          {self.stats['header_files'] - self.stats['modified_headers']}")
        print(f"  Total APIs removed:         {self.stats['apis_removed']}")
        print(f"  Unused includes removed:    {self.stats['includes_removed']}")
        print(f"  Empty headers removed:      {self.stats['empty_headers_removed']}")
        print()


    def _print_node_stats(self):
        print("?? NODE STATISTICS:")
        print("-" * 70)
        print(f"  Functions found:            {self.stats['functions_found']}")
        print(f"  Functions with @systemapi:  {self.stats['functions_with_systemapi']}")
        print()



    def _process_header_with_clang(self, input_file: Path, output_file: Path,
                                   ast: Dict[str, Any], source_lines: List[str],
                                   content: str) -> bool:
        self.stats['clang_processed'] += 1
        self.clang_files.append(input_file)

        to_remove: List[Tuple[int, int, str]] = []
        self.collect_functions_to_remove(ast, source_lines, content, to_remove)

        output_file.parent.mkdir(parents=True, exist_ok=True)

        result_content = content
        removed_count = 0
        deleted_names = []

        if to_remove:
            new_source_lines, clang_removed = self.remove_ranges_from_source(source_lines, to_remove)
            result_content = '\n'.join(new_source_lines)
            removed_count += clang_removed
            deleted_names = list(dict.fromkeys(name for _, _, name in to_remove))

        result_content, macro_removed = self.remove_macro_systemapi(result_content)
        if macro_removed > 0:
            removed_count += macro_removed
            self.logger.debug(f"    Removed {macro_removed} macro(s) with @systemapi")

        regex_content, regex_removed, _, regex_names = self.regex_remove_systemapi(result_content, input_file)
        if regex_removed > 0:
            result_content = regex_content
            removed_count += regex_removed
            deleted_names.extend(regex_names)
            self.logger.debug(f"    Removed {regex_removed} conditional-compiled API(s)")

        result_content = self._cleanup_orphan_semicolons(result_content)

        if removed_count == 0:
            shutil.copy2(input_file, output_file)
            return False

        result_content, inc_removed = self.remove_unused_includes(result_content, input_file)
        if inc_removed > 0:
            self.stats['includes_removed'] += inc_removed
            self.logger.debug(f"    Removed {inc_removed} unused include(s)")

        if deleted_names:
            self._collect_deleted_names(input_file, deleted_names)

        with open(output_file, 'w', encoding='utf-8') as f:
            f.write(result_content)

        self.stats['clang_modified'] += 1
        self.clang_modified_files.append(input_file)
        self.stats['apis_removed'] += removed_count
        self.stats['modified_headers'] += 1
        self.logger.debug(f"  Modified (clang+regex): removed {removed_count} API(s)")
        return True


    def _process_header_with_regex(self, input_file: Path, output_file: Path,
                                   content: str, clang_errors: List[str]) -> bool:
        # 第三关：Regex 正则表达式回退（备用路径）
        self.stats['clang_errors'] += 1
        error_detail = '; '.join(clang_errors) if clang_errors else 'unknown'
        self.clang_error_files.append((input_file, error_detail))
        self.logger.warning(f"  Clang parsing failed for {input_file.name}, using regex fallback...")
        self.logger.warning(f"    Reason: {error_detail}")

        self.stats['regex_processed'] += 1
        self.regex_files.append(input_file)

        new_content, removed_count, found_systemapi, deleted_names = self.regex_remove_systemapi(content, input_file)
        new_content = self._cleanup_orphan_semicolons(new_content)

        output_file.parent.mkdir(parents=True, exist_ok=True)

        if removed_count > 0:
            result_content, inc_removed = self.remove_unused_includes(new_content, input_file)
            if inc_removed > 0:
                self.stats['includes_removed'] += inc_removed
                self.logger.debug(f"    Removed {inc_removed} unused include(s)")
            else:
                result_content = new_content

            self._collect_deleted_names(input_file, deleted_names)

            with open(output_file, 'w', encoding='utf-8') as f:
                f.write(result_content)
            self.stats['regex_modified'] += 1
            self.regex_modified_files.append(input_file)
            self.stats['apis_removed'] += removed_count
            self.stats['modified_headers'] += 1
            self.logger.debug(f"  Modified (regex): removed {removed_count} API(s)")
            return True
        else:
            self.stats['regex_no_api'] += 1
            shutil.copy2(input_file, output_file)
            return False


    def _process_single_cross_file(self, output_file: Path) -> int:
        """处理单个输出文件的跨文件 include 清理，返回清理数量"""
        try:
            with open(output_file, 'r', encoding='utf-8', errors='ignore') as f:
                content = f.read()
        except Exception:
            return 0

        lines = content.split('\n')
        include_lines = self._extract_local_includes(lines)
        if not include_lines:
            return 0

        lines_to_remove = self._find_cross_file_unused(lines, include_lines)
        if lines_to_remove:
            new_lines = [line for idx, line in enumerate(lines) if idx not in lines_to_remove]
            with open(output_file, 'w', encoding='utf-8') as f:
                f.write('\n'.join(new_lines))
            self.logger.debug(f"  [cross-file] {output_file.name}: removed {len(lines_to_remove)} unused include(s)")
            return len(lines_to_remove)
        return 0


    def _regex_check_in_aggregate(self, lines: List[str], comment_start: int) -> Tuple[bool, int, Optional[str]]:
        in_aggregate = False
        aggregate_start_line = -1
        aggregate_type = None

        for k in range(comment_start - 1, -1, -1):
            line_check = lines[k]
            if ('enum' in line_check and '{' in line_check) or ('typedef' in line_check and 'enum' in line_check and '{' in line_check):
                aggregate_end_line = self._find_brace_block_end(lines, k)
                if aggregate_end_line >= comment_start:
                    in_aggregate = True
                    aggregate_start_line = k
                    aggregate_type = 'enum'
                break
            if ('struct' in line_check and '{' in line_check) or ('typedef' in line_check and 'struct' in line_check and '{' in line_check):
                aggregate_end_line = self._find_brace_block_end(lines, k)
                if aggregate_end_line >= comment_start:
                    in_aggregate = True
                    aggregate_start_line = k
                    aggregate_type = 'struct'
                break
            if ('union' in line_check and '{' in line_check) or ('typedef' in line_check and 'union' in line_check and '{' in line_check):
                aggregate_end_line = self._find_brace_block_end(lines, k)
                if aggregate_end_line >= comment_start:
                    in_aggregate = True
                    aggregate_start_line = k
                    aggregate_type = 'union'
                break

        return in_aggregate, aggregate_start_line, aggregate_type


    def _regex_collect_comment_block(self, lines: List[str], start: int) -> Tuple[str, int]:
        comment_start = start
        comment_end = start
        in_comment = True
        comment_content = []

        while comment_end < len(lines) and in_comment:
            comment_content.append(lines[comment_end])
            if '*/' in lines[comment_end]:
                in_comment = False
            comment_end += 1

        comment_text = '\n'.join(comment_content)
        return comment_text, comment_end


    def _regex_find_aggregate_end(self, lines: List[str], agg_start: int) -> int:
        """查找 aggregate（enum/struct）体的结束行"""
        return self._find_brace_block_end(lines, agg_start)


    def _regex_find_decl_end(self, lines: List[str], comment_end: int) -> Optional[int]:
        """从注释结束位置向下查找声明的结束行号。
        跳过紧贴的后续注释块（无空行分隔），遇到空行后的注释则视为不关联。
        """
        j = self._skip_attached_comments(lines, comment_end)
        if j is None or j >= len(lines):
            return None
        return self._resolve_decl_end(lines, j)


    def _regex_handle_systemapi_comment(self, lines: List[str], i: int,
                                        to_remove: List[bool]) -> Tuple[int, int]:
        """处理单个含 /* 的注释块，若含 @systemapi 则标记删除范围。
        返回 (下一扫描位置, 删除计数)"""
        comment_text, comment_end = self._regex_collect_comment_block(lines, i)
        if not self._has_strict_systemapi(comment_text):
            return comment_end, 0

        in_aggregate, agg_start, agg_type = self._regex_check_in_aggregate(lines, i)
        if in_aggregate and agg_start >= 0:
            if agg_type in ('struct', 'enum', 'union'):
                if self._regex_should_skip_struct_field(lines, agg_start):
                    return comment_end, 0
            aggregate_end = self._regex_find_aggregate_end(lines, agg_start)
            for k in range(agg_start, aggregate_end + 1):
                if k < len(to_remove):
                    to_remove[k] = True
            return aggregate_end + 1, 1

        decl_end = self._regex_find_decl_end(lines, comment_end)
        if decl_end is not None:
            actual_start = self._find_contiguous_comment_start(lines, i)
            for k in range(actual_start, decl_end + 1):
                if k < len(to_remove):
                    to_remove[k] = True
            return decl_end + 1, 1

        return comment_end, 0


    def _regex_should_skip_struct_field(self, lines: List[str], agg_start: int) -> bool:
        agg_comment_has_systemapi = False
        for k in range(agg_start - 1, -1, -1):
            line_check = lines[k].strip()
            if line_check.startswith('*') or line_check.startswith('/*') or line_check.startswith('/**') or line_check.startswith('/*!') or line_check == '' or '*/' in line_check:
                stripped = line_check.lstrip('/').lstrip('*').lstrip('!').strip()
                stripped = stripped.rstrip('/').rstrip('*').strip()
                if stripped == '@systemapi':
                    agg_comment_has_systemapi = True
            else:
                break
        return not agg_comment_has_systemapi


    def _resolve_missing_headers(self, missing_headers: Set[str],
                                 input_file: Path,
                                 fake_include_dir: Path) -> None:
        """为缺失的头文件创建符号链接或 fake header"""
        for header in missing_headers:
            real_header = self.find_header_file(header, input_file)
            if real_header:
                fake_header = fake_include_dir / header
                fake_header.parent.mkdir(parents=True, exist_ok=True)
                os.symlink(real_header, fake_header)
                if self.verbose:
                    self.logger.debug(f"Linked existing header: {header} -> {real_header}")
            else:
                self.create_fake_header(header, fake_include_dir)


    def _run_ast_dump(self, input_file: Path,
                      compile_args: List[str]) -> Tuple[Optional[Dict[str, Any]], List[str]]:
        """执行 clang AST dump 并解析结果，返回 AST 或错误列表"""
        cmd = [self.clang_binary, '-Xclang', '-ast-dump=json', '-fsyntax-only'] + compile_args + [str(input_file)]
        if self.verbose:
            self.logger.debug(f"Parsing: {input_file.name}")
        result = subprocess.run(cmd, capture_output=True, timeout=30)
        result.stdout = result.stdout.decode('utf-8', errors='replace')
        result.stderr = result.stderr.decode('utf-8', errors='replace')
        ast = self._parse_clang_output(result.stdout)
        if ast is not None:
            return ast, []
        if result.returncode != 0 and result.stderr:
            error_lines = result.stderr.strip().split('\n')
            first_errors = [line.strip() for line in error_lines[:5] if 'error:' in line.lower()]
            for line in first_errors:
                self.logger.info(f"    {line}")
            return None, first_errors
        return None, []


    def _symbols_used_in_content(self, symbols: Set[str], content: str) -> bool:
        """检查符号集合中是否有任一符号在内容中被使用"""
        for sym in symbols:
            pattern = rf'\b{re.escape(sym)}\b'
            if re.search(pattern, content):
                return True
        return False


    def build_include_paths(self, input_file: Path) -> List[str]:
        """构建 clang 编译时的 include 搜索路径列表"""
        include_paths = []

        include_paths.append(f"-I{input_file.parent}")

        if self.napi_dir and self.napi_dir.exists():
            include_paths.append(f"-I{self.napi_dir}")
            for subdir in ['include', 'inc', 'public', 'base', 'utils']:
                candidate = self.napi_dir / subdir
                if candidate.exists():
                    include_paths.append(f"-I{candidate}")

        include_paths.append(f"-I{self.input_dir}")

        return include_paths


    def _try_find_clang_binary(self, binary_path: str) -> bool:
        """尝试检测指定路径的 clang 是否可用，成功返回 True"""
        try:
            result = subprocess.run([binary_path, '--version'], capture_output=True,
                                    check=True)
            result.stdout = result.stdout.decode('utf-8', errors='replace')
            version_line = result.stdout.split('\n')[0]
            self.logger.info(f"Found clang: {version_line}")
            self.clang_binary = binary_path
            return True
        except (subprocess.CalledProcessError, FileNotFoundError):
            return False

    def check_clang(self):
        """检查系统是否安装了 clang，未安装则自动切换到正则表达式模式"""
        self.clang_binary = None
        for binary in ['clang++', 'clang']:
            if self._try_find_clang_binary(binary):
                return
        if sys.platform == 'win32':
            for path in [r'C:\Program Files\LLVM\bin\clang++.exe',
                         r'C:\Program Files (x86)\LLVM\bin\clang++.exe']:
                if os.path.isfile(path) and self._try_find_clang_binary(path):
                    return
        self.logger.warning("clang not found, automatically switching to regex mode")
        self.force_regex = True


    def collect_functions_to_remove(self, node: Dict[str, Any], source_lines: List[str],
                                    source_text: str,
                                    to_remove: List[Tuple[int, int, str]]) -> None:
        """递归遍历 AST 树，收集所有带 @systemapi 标签的声明。
        对每个匹配节点：
        1. 过滤非主文件节点
        2. 提取上方注释，检查 @systemapi
        3. 向上回溯扩展删除范围到注释起始行
        4. 加入删除列表，且不再递归子节点（避免 typedef enum 等重复匹配）
        """
        node_kind = node.get('kind')
        if not node_kind:
            return

        matched = self._check_and_collect_node(node, source_lines, source_text, node_kind, to_remove)

        if not matched and 'inner' in node and isinstance(node['inner'], list):
            for child in node['inner']:
                self.collect_functions_to_remove(child, source_lines, source_text, to_remove)


    def create_fake_header(self, header_path: str, fake_include_dir: Path) -> Path:
        """生成假头文件，包含基础类型定义，让 clang 能在缺少依赖时继续解析。
        包含：_Bool/bool、size_t、int8_t~uint64_t、napi_env/value/status、ArkUI 类型等。
        """
        fake_header = fake_include_dir / header_path
        fake_header.parent.mkdir(parents=True, exist_ok=True)

        content = self._generate_fake_header_content(header_path)

        with open(fake_header, 'w') as f:
            f.write(content)

        self.stats['fake_headers_created'] += 1
        if self.verbose:
            self.logger.debug(f"Created fake header: {header_path}")

        return fake_header


    def cross_file_include_cleanup(self) -> int:
        """第二轮扫描：所有文件处理完后，检查跨文件 include 依赖。
        读取输出版本（已删除 @systemapi）的被引用文件，提取剩余符号，
        如果引用方不再使用任何符号，则移除 include。
        返回总共清理的 include 数量。
        """
        total_removed = 0
        output_headers = self._collect_output_headers()

        for output_file in output_headers:
            total_removed += self._process_single_cross_file(output_file)

        return total_removed

    @staticmethod
    def _remove_empty_conditionals_pass(lines: List[str]) -> Tuple[List[str], bool]:
        """单趟扫描移除空条件编译块，返回 (新行列表, 是否有变更)"""
        new_lines = []
        changed = False
        i = 0
        while i < len(lines):
            stripped = lines[i].strip()
            if re.match(r'#\s*if(?:n?def)?\b', stripped):
                endif_line = SystemApiRemover._find_empty_conditional_range(lines, i)
                if endif_line is not None:
                    changed = True
                    i = endif_line + 1
                    continue
            new_lines.append(lines[i])
            i += 1
        return new_lines, changed

    def _cleanup_orphan_semicolons(self, content: str) -> str:
        """删除由裁剪残留的孤立分号行（仅含分号和空白）。
        典型场景：多行声明的分号独占一行，regex 路径的 _resolve_decl_end
        默认分支只返回当前行，未向前扫描到分号，导致分号行残留。
        同时也处理 ;; 或 ; ; 等写法。
        """
        lines = content.split('\n')
        new_lines = [line for line in lines if not re.match(r'^\s*(;\s*)+$', line)]
        return '\n'.join(new_lines)

    def _cleanup_empty_conditionals(self, content: str) -> str:
        """移除删除 @systemapi 后产生的空 #ifdef/#if/#ifndef ... #endif 块"""
        changed = True
        while changed:
            lines = content.split('\n')
            new_lines, changed = self._remove_empty_conditionals_pass(lines)
            content = '\n'.join(new_lines)
        return content


    def extract_comment_before_node(self, node: Dict[str, Any], source_lines: List[str],
                                    func_name: str,
                                    source_text: Optional[str] = None) -> Optional[str]:
        """从 AST 节点声明的上方向上回溯，提取完整的注释块内容。
        支持 /** */ 和 // 两种注释风格，也处理注释前的空行。
        """
        start_line, _ = self.get_node_location(node, source_text, source_lines)
        if not start_line or start_line <= 1:
            return None

        comment_lines = self._find_raw_comment(source_lines, start_line)
        if not comment_lines:
            return None

        return self._parse_comment_text(comment_lines)


    def find_header_file(self, header_path: str, base_file: Path) -> Optional[Path]:
        """在多个搜索路径中查找被引用的头文件"""
        header_parts = Path(header_path).parts

        search_dirs = [base_file.parent]

        if self.napi_dir:
            search_dirs.append(self.napi_dir)
            for part in header_parts[:-1]:
                candidate = self.napi_dir / part
                if candidate.exists():
                    search_dirs.append(candidate)

        search_dirs.append(self.input_dir)

        # 向上遍历 5 层父目录
        current = base_file.parent
        for _ in range(5):
            search_dirs.append(current)
            current = current.parent

        # 去重，保持顺序
        search_dirs = list(dict.fromkeys(search_dirs))

        for search_dir in search_dirs:
            candidate = search_dir / header_path
            if candidate.exists() and candidate.is_file():
                return candidate
            # 只按文件名搜索（忽略路径中的目录部分）
            candidate_name = search_dir / Path(header_path).name
            if candidate_name.exists() and candidate_name.is_file():
                return candidate_name

        return None


    def get_node_location(self, node: Dict[str, Any],
                          source_text: Optional[str] = None,
                          source_lines: Optional[List[str]] = None) -> Tuple[Optional[int], Optional[int]]:
        """从 AST 节点中提取声明的起止行号。
        优先从 range.begin/end.line 获取，若无 line 字段则回退到名称搜索。
        """
        start_line = None
        end_line = None

        if 'range' in node and isinstance(node['range'], dict):
            range_info = node['range']
            if 'begin' in range_info and 'end' in range_info:
                begin = range_info['begin']
                end = range_info['end']
                if 'line' in begin:
                    start_line = begin['line']
                if 'line' in end:
                    end_line = end['line']

        if start_line is None and 'loc' in node and isinstance(node['loc'], dict):
            loc = node['loc']
            if 'line' in loc:
                start_line = loc['line']

        if start_line is None:
            start_line, end_line = self._find_node_by_name(node, source_lines)
            if start_line is None:
                return None, None

        if end_line is None:
            end_line = self._find_declaration_end_in_source(source_lines, start_line)
            if end_line is None:
                end_line = start_line

        return start_line, end_line

    def _find_node_by_name(self, node: Dict[str, Any],
                           source_lines: Optional[List[str]]) -> Tuple[Optional[int], Optional[int]]:
        """当 clang 未提供行号时，通过节点名称在源文件中搜索定位。"""
        if not source_lines:
            return None, None
        node_name = node.get('name')
        if not node_name:
            return None, None
        node_kind = node.get('kind', '')
        pattern = re.compile(rf'\b{re.escape(node_name)}\b')
        for i, line in enumerate(source_lines):
            if pattern.search(line):
                return i + 1, i + 1
        return None, None


    def _has_strict_systemapi(self, text: str) -> bool:
        for line in text.split('\n'):
            stripped = line.strip()
            stripped = stripped.lstrip('/').lstrip('*').lstrip('!').strip()
            stripped = stripped.rstrip('/').rstrip('*').strip()
            if stripped == '@systemapi':
                return True
        return False

    def has_systemapi_tag(self, comment: Optional[str]) -> bool:
        for line in (comment or '').split('\n'):
            stripped = line.strip()
            stripped = stripped.lstrip('/').lstrip('*').lstrip('!').strip()
            stripped = stripped.rstrip('/').rstrip('*').strip()
            if stripped == '@systemapi':
                return True
        return False


    def is_header_file(self, file_path: Path) -> bool:
        """根据扩展名判断是否为头文件"""
        header_extensions = {'.h', '.hpp', '.hxx', '.hh', '.inl', '.h++', '.hp'}
        return file_path.suffix in header_extensions


    def offset_to_line(self, source_text: str, offset: int) -> Optional[int]:
        """将字节偏移量转换为行号（1-based）。
        某些 AST 节点只有 offset 没有 line 字段时使用。
        """
        if offset is None or offset < 0 or offset > len(source_text):
            return None
        return source_text[:offset].count('\n') + 1


    def parse_header_with_clang(self, input_file: Path) -> Optional[Dict[str, Any]]:
        """使用 clang++ 解析头文件，返回 JSON 格式的 AST。
        处理流程：
        1. 构建编译参数（抑制所有警告，允许继续解析）
        2. 预处理收集缺失头文件列表
        3. 为缺失头文件创建符号链接或生成 fake header
        4. 执行 -ast-dump=json 获取 AST
        5. 从输出中提取 JSON（跳过前面的非 JSON 内容）
        """
        try:
            fake_include_dir = Path(tempfile.mkdtemp())
            include_paths = self.build_include_paths(input_file)
            compile_args = self._build_clang_command(include_paths, fake_include_dir)

            self._create_basic_fake_headers(fake_include_dir)
            missing_headers = self._collect_missing_headers(compile_args, input_file)
            self._resolve_missing_headers(missing_headers, input_file, fake_include_dir)

            ast, errors = self._run_ast_dump(input_file, compile_args)
            if ast is not None:
                return ast, []
            return None, errors

        except subprocess.TimeoutExpired:
            self.logger.info(f"    Timeout parsing {input_file.name} (30s)")
            self.stats['clang_timeout'] += 1
            return None, ['Clang parsing timeout (30s)']
        except Exception as e:
            if self.verbose:
                self.logger.debug(f"Parse failed: {e}")
            return None, [str(e)]
        finally:
            if 'fake_include_dir' in locals():
                shutil.rmtree(fake_include_dir, ignore_errors=True)


    def print_stats(self):
        """输出处理统计报告"""
        elapsed_time = time.time() - self.start_time

        print("\n" + "=" * 70)
        print("PROCESSING COMPLETE")
        print("=" * 70)
        print(f"??  Script execution time:     {elapsed_time:.2f} seconds")
        print()
        self._print_file_stats()
        self._print_modification_stats()
        self._print_node_stats()
        self._print_error_stats()

        print(f"Input directory:  {self.input_dir}")
        print(f"Output directory: {self.output_dir}")
        if self.napi_dir:
            print(f"NAPI directory:   {self.napi_dir}")
        print("=" * 70)


    def process_directory(self) -> bool:
        """处理整个输入目录：遍历文件、分发处理、保持目录结构"""
        try:
            if not self.input_dir.exists():
                self.logger.error(f"Input direZctory not found: {self.input_dir}")
                return False

            all_header_files = self._collect_header_files()
            total_headers = len(all_header_files)
            self._log_processing_start(total_headers)
            self.output_dir.mkdir(parents=True, exist_ok=True)
            self._copy_non_header_files()

            for idx, file_path in enumerate(all_header_files, 1):
                self.stats['total_files_scanned'] += 1
                self.stats['header_files'] += 1
                rel_path = file_path.relative_to(self.input_dir)
                output_file = self.output_dir / rel_path
                if self.verbose:
                    self.logger.debug(f"[{idx}/{total_headers}] Processing: {rel_path}")
                self.process_header_file(file_path, output_file)

            cross_removed = self.cross_file_include_cleanup()
            if cross_removed > 0:
                self.stats['includes_removed'] += cross_removed
                self.logger.debug(f"Cross-file include cleanup: removed {cross_removed} include(s)")

            self._remove_empty_output_files()

            self._check_public_references_across_files()
            self._validate_output_files()

            return True

        except Exception as e:
            self.logger.error(f"Error processing directory: {e}")
            return False


    def process_header_file(self, input_file: Path, output_file: Path) -> bool:
        """处理单个头文件的主入口。
        流程：
        1. Clang 解析 → 收集删除范围 → 删除 → 清理 #include → 写入
        2. Clang 失败 → regex 回退 → 清理 #include → 写入
        返回 True 表示文件被修改，False 表示未修改。
        """
        try:
            with open(input_file, 'r', encoding='utf-8') as f:
                content = f.read()
                source_lines = content.split('\n')

            if not source_lines:
                return False

            self.logger.debug(f"  Parsing: {input_file.name}")
            clang_errors = []
            if self.force_regex:
                ast = None
            else:
                ast, clang_errors = self.parse_header_with_clang(input_file)
            if ast:
                return self._process_header_with_clang(input_file, output_file, ast, source_lines, content)

            return self._process_header_with_regex(input_file, output_file, content, clang_errors)

        except Exception as e:
            self.logger.error(f"Error processing {input_file.name}: {e}")
            self.failed_files.append((input_file, str(e)))
            return False


    def regex_remove_systemapi(self, content: str, file_path: Path) -> Tuple[str, int, bool, List[str]]:
        """正则表达式方式删除 @systemapi 声明。仅在 Clang 解析失败时使用。
        返回 (新内容, 删除数, 是否找到systemapi, 被删名称列表)
        """
        removed_count = 0
        found_systemapi = False
        lines = content.split('\n')
        to_remove = [False] * len(lines)

        i = 0
        while i < len(lines):
            line = lines[i]
            stripped = line.strip()
            if '/*' in line or '/**' in line:
                next_i, count = self._regex_handle_systemapi_comment(lines, i, to_remove)
                if count > 0:
                    removed_count += count
                    found_systemapi = True
                i = max(next_i, i + 1)
            elif stripped.startswith('//'):
                next_i, count = self._regex_handle_line_comment(lines, i, to_remove)
                if count > 0:
                    removed_count += count
                    found_systemapi = True
                i = max(next_i, i + 1)
            else:
                i += 1

        if any(to_remove):
            deleted_names = self._extract_deleted_names_from_lines(lines, to_remove)
            new_lines = [lines[idx] for idx in range(len(lines)) if not to_remove[idx]]
            return '\n'.join(new_lines), removed_count, found_systemapi, deleted_names

        return content, 0, found_systemapi, []

    def _extract_deleted_names_from_lines(self, lines: List[str], to_remove: List[bool]) -> List[str]:
        import re as _re
        name_pattern = _re.compile(
            r'\b(?:typedef\s+(?:struct|enum|union)\s+\w*\s+|'
            r'typedef\s+\w+\s+|'
            r'(?:struct|enum|union)\s+(\w+)|'
            r'(?:void|int\d+_t|uint\d+_t|char|float|double|long|short|unsigned|signed|bool|size_t)\s*\*?\s*'
            r'(\w+)\s*\()'
        )
        names = []
        for idx in range(len(lines)):
            if not to_remove[idx]:
                continue
            line = lines[idx].strip()
            if line.startswith('//') or line.startswith('/*') or line.startswith('*') or line.startswith('/**'):
                continue
            typedef_match = _re.search(r'typedef\s+(?:struct\s+\w*|enum\s+\w*|union\s+\w*|\w+)\s+(\w+)\s*;', line)
            if not typedef_match:
                typedef_match = _re.search(r'typedef\s+(?:struct\s+\w*|enum\s+\w*|union\s+\w*)\s*\{[^}]*\}\s*(\w+)', line)
            if not typedef_match:
                typedef_match = _re.search(r'typedef\s+.*?\(\s*\*\s*(\w+)\s*\)', line)
            if not typedef_match:
                typedef_match = _re.search(r'\benum\s+(\w+)\s*\{', line)
            if not typedef_match:
                typedef_match = _re.search(r'\b(?:struct|union)\s+(\w+)\s*\{', line)
            if not typedef_match:
                func_match = _re.search(r'\b(\w+)\s*\(', line)
                if func_match:
                    name = func_match.group(1)
                    if name not in ('if', 'while', 'for', 'switch', 'return', 'sizeof', 'typedef', 'struct', 'enum', 'union'):
                        names.append(name)
            else:
                names.append(typedef_match.group(1))
        return list(dict.fromkeys(names))


    def remove_macro_systemapi(self, content: str) -> Tuple[str, int]:
        """删除带 @systemapi 注释的 #define 宏定义（含续行）。
        Clang AST 不含宏节点，需用正则补充扫描。
        Regex 主流程中已处理，此方法供 Clang 路径补充调用。
        """
        lines = content.split('\n')
        ranges = self._find_macro_removal_ranges(lines)
        if not ranges:
            return content, 0

        to_remove = set()
        for start, end in ranges:
            for k in range(start, end + 1):
                to_remove.add(k)
        new_lines = [lines[idx] for idx in range(len(lines)) if idx not in to_remove]
        return '\n'.join(new_lines), len(ranges)


    def remove_ranges_from_source(self, source_lines: List[str],
                                  ranges: List[Tuple[int, int, str]]) -> Tuple[List[str], int]:
        """从源文件中删除指定行范围。
        处理步骤：
        1. 按起始行号排序
        2. 合并重叠或相邻的范围（如 typedef enum 同时匹配 TypedefDecl 和 EnumDecl）
        3. 从文件末尾向前删除，避免行号偏移
        """
        if not ranges:
            return source_lines, 0

        # 排序并合并重叠范围
        sorted_ranges = sorted(ranges, key=lambda x: x[0])
        merged = [sorted_ranges[0]]
        for start, end, name in sorted_ranges[1:]:
            if start <= merged[-1][1] + 1:
                merged[-1] = (merged[-1][0], max(merged[-1][1], end), merged[-1][2])
            else:
                merged.append((start, end, name))

        # 从末尾向前删除，避免前面的删除影响后面的行号
        merged.sort(key=lambda x: x[0], reverse=True)

        result = source_lines.copy()
        removed_count = 0

        for start, end, name in merged:
            start_idx = start - 1
            end_idx = end - 1

            if 0 <= start_idx < len(result) and 0 <= end_idx < len(result):
                del result[start_idx:end_idx + 1]
                removed_count += 1

        return result, removed_count


    def remove_unused_includes(self, content: str, current_file: Path) -> Tuple[str, int]:
        """删除不再使用的 #include "xxx.h"（本地引用）。
        系统头文件（<xxx.h> 形式）不会被清理。
        判断逻辑：提取被引用文件中定义的所有符号名，检查这些符号
        是否在删除 @systemapi 后的剩余内容中被使用。全未使用则移除。
        """
        lines = content.split('\n')
        lines_to_remove = self._find_unused_local_includes(lines, current_file)

        if not lines_to_remove:
            return content, 0

        new_lines = [line for idx, line in enumerate(lines) if idx not in lines_to_remove]
        return '\n'.join(new_lines), len(lines_to_remove)

    @staticmethod
    def _skip_block_comment(lines: List[str], j: int, stripped: str) -> int:
        """跳过块注释，返回注释结束后的行号"""
        if '*/' in stripped:
            return j + 1
        j += 1
        while j < len(lines) and '*/' not in lines[j]:
            j += 1
        if j < len(lines):
            j += 1
        return j

    def _skip_attached_comments(self, lines: List[str], j: int) -> Optional[int]:
        """跳过紧贴的后续注释块（无空行分隔），返回下一个待处理行号。
        遇到空行后的注释则返回 None（表示不关联）。
        """
        crossed_blank = False
        while j < len(lines):
            stripped = lines[j].strip()
            if stripped == '':
                crossed_blank = True
                j += 1
                continue
            if crossed_blank and (stripped.startswith('//') or stripped.startswith('/*')
                                  or stripped.startswith('/**') or stripped.startswith('/*!')):
                return None
            if not crossed_blank:
                if stripped.startswith('//'):
                    j += 1
                    continue
                if stripped.startswith('/*') or stripped.startswith('/**') or stripped.startswith('/*!'):
                    j = self._skip_block_comment(lines, j, stripped)
                    continue
                if stripped.startswith('*') and not stripped.startswith('*/'):
                    j += 1
                    continue
            break
        return j

    def _resolve_decl_end(self, lines: List[str], j: int) -> Optional[int]:
        """根据声明行类型，查找声明结束行号。遇到预处理指令返回 None（不删除）"""
        decl_line = lines[j].strip()
        if re.match(r'#\s*(if|ifdef|ifndef|endif|else|elif|include|pragma|error|warning)\b', decl_line):
            return None
        if re.match(r'#\s*define', decl_line):
            return self._find_define_end(lines, j)
        if 'typedef' in decl_line and ('enum' in decl_line or 'struct' in decl_line or 'union' in decl_line):
            return self._find_typedef_aggregate_end(lines, j, decl_line)
        if decl_line.startswith('typedef'):
            return self._find_typedef_simple_end(lines, j)
        if re.match(r'^(struct|class|enum|union)\s+\w+\s*\{', decl_line):
            return self._find_brace_block_end(lines, j)
        return j

    def _regex_handle_line_comment(self, lines: List[str], i: int,
                                   to_remove: List[bool]) -> Tuple[int, int]:
        """处理 // 或 //! 行注释，若含 @systemapi 则标记删除范围。
        连续的 // 行视为同一组注释，一起删除。
        返回 (下一扫描位置, 删除计数)"""
        comment_lines = []
        comment_end = i
        while comment_end < len(lines) and lines[comment_end].strip().startswith('//'):
            comment_lines.append(lines[comment_end])
            comment_end += 1

        comment_text = '\n'.join(comment_lines)
        if not self._has_strict_systemapi(comment_text):
            return comment_end, 0

        in_aggregate, agg_start, agg_type = self._regex_check_in_aggregate(lines, i)
        if in_aggregate and agg_start >= 0:
            if agg_type in ('struct', 'enum', 'union'):
                if self._regex_should_skip_struct_field(lines, agg_start):
                    return comment_end, 0
            aggregate_end = self._regex_find_aggregate_end(lines, agg_start)
            for k in range(agg_start, aggregate_end + 1):
                if k < len(to_remove):
                    to_remove[k] = True
            return aggregate_end + 1, 1

        decl_end = self._regex_find_decl_end(lines, comment_end)
        if decl_end is not None:
            actual_start = self._find_contiguous_comment_start(lines, i)
            for k in range(actual_start, decl_end + 1):
                if k < len(to_remove):
                    to_remove[k] = True
            return decl_end + 1, 1

        return comment_end, 0

    @staticmethod
    def _find_empty_conditional_range(lines: List[str], start: int) -> Optional[int]:
        """从 #if/#ifdef/#ifndef 行开始，查找对应的空条件块结束行。
        如果该条件块内部无实质内容（只有预处理指令和空行），返回 #endif 行号；否则返回 None。"""
        depth = 1
        j = start + 1
        inner_non_empty = False
        while j < len(lines) and depth > 0:
            s = lines[j].strip()
            if re.match(r'#\s*if(?:n?def)?\b', s):
                depth += 1
            elif re.match(r'#\s*endif\b', s):
                depth -= 1
                if depth == 0:
                    break
            if (s != ''
                    and not re.match(r'#\s*(?:if|ifdef|ifndef|endif|else|elif)\b', s)
                    and not re.match(r'^(;\s*)+$', s)):
                inner_non_empty = True
            j += 1
        if j < len(lines) and not inner_non_empty:
            return j
        return None

    def _is_content_effectively_empty(self, content: str) -> bool:
        """判断文件内容是否只剩空行、include guard、版权头注释，无任何实际代码。
        版权头判断标准：文件开头的连续注释块（含 Copyright/License 等关键词）。
        """
        lines = content.split('\n')
        past_header = False
        for line in lines:
            s = line.strip()
            if s == '':
                continue
            if re.match(r'^#\s*(ifndef|define|endif|pragma\s+once)\b', s):
                continue
            if not past_header:
                if (s.startswith('/*') or s.startswith('/**') or s.startswith('/*!') or
                    s.startswith('//') or s.startswith('*') or s == '*/' or s.endswith('*/')):
                    continue
                past_header = True
            if past_header:
                return False
        return True

    def _remove_deleted_includes_from_file(self, output_file: Path,
                                            deleted_names: Set[str],
                                            deleted_basenames: Set[str]) -> bool:
        """从单个文件中移除对已删除文件的 #include，返回是否有变更"""
        try:
            with open(output_file, 'r', encoding='utf-8', errors='ignore') as f:
                content = f.read()
        except Exception:
            return False
        lines = content.split('\n')
        new_lines = []
        changed = False
        for line in lines:
            stripped = line.strip()
            m = re.match(r'#\s*include\s+"([^"]+)"', stripped)
            if m:
                inc_path = m.group(1)
                if inc_path in deleted_names or Path(inc_path).name in deleted_basenames:
                    changed = True
                    pass
                    continue
            new_lines.append(line)
        if changed:
            with open(output_file, 'w', encoding='utf-8') as f:
                f.write('\n'.join(new_lines))
            self.stats['includes_removed'] += 1
        return changed

    def _clean_includes_of_deleted_files(self, deleted_names: Set[str],
                                          deleted_basenames: Set[str]) -> None:
        """清理其他文件中对已删除文件的 #include"""
        for output_file in list(self.output_dir.rglob('*.h')):
            if output_file.is_file():
                self._remove_deleted_includes_from_file(output_file, deleted_names, deleted_basenames)

    def _remove_empty_output_files(self) -> None:
        """删除输出目录中内容为空的头文件，并清理其他文件中对它们的 #include"""
        deleted_files = []
        for output_file in list(self.output_dir.rglob('*.h')):
            try:
                with open(output_file, 'r', encoding='utf-8', errors='ignore') as f:
                    content = f.read()
            except Exception:
                continue
            if not self._is_content_effectively_empty(content):
                continue
            rel = output_file.relative_to(self.output_dir)
            self.logger.debug(f"  Removing empty header: {rel}")
            deleted_files.append(rel)
            output_file.unlink()
        if not deleted_files:
            return

        self.stats['empty_headers_removed'] = len(deleted_files)
        deleted_names = {str(p) for p in deleted_files}
        deleted_basenames = {p.name for p in deleted_files}
        self._clean_includes_of_deleted_files(deleted_names, deleted_basenames)

    def _validate_single_file_syntax(self, output_file: Path) -> Optional[str]:
        """用 clang 校验单个文件语法，返回错误字符串或 None"""
        cmd = [self.clang_binary, '-x', 'c-header', '-fsyntax-only', '-Wno-everything', str(output_file)]
        try:
            result = subprocess.run(cmd, capture_output=True, timeout=30)
            result.stderr = result.stderr.decode('utf-8', errors='replace')
        except (subprocess.TimeoutExpired, FileNotFoundError):
            return None
        if result.returncode != 0:
            errors = [line.strip() for line in result.stderr.strip().split('\n') if ': error:' in line]
            if errors:
                return '\n'.join(errors)
        return None

    def _validate_output_files(self) -> None:
        """用 clang -fsyntax-only 校验所有修改过的输出文件，语法错误则阻断构建"""
        if self.force_regex or not self.clang_binary:
            return
        modified = set(self.clang_modified_files + self.regex_modified_files)
        if not modified:
            return
        for input_file in sorted(modified):
            rel = input_file.relative_to(self.input_dir)
            output_file = self.output_dir / rel
            if not output_file.exists():
                continue
            errs = self._validate_single_file_syntax(output_file)
            if errs:
                self.validation_errors.append((output_file, errs))
        if self.validation_errors:
            print("\n? ERROR: Output file syntax validation failed (build blocked):")
            print("-" * 70)
            for file_path, errs in self.validation_errors:
                print(f"  File: {file_path.name}")
                for e in errs.split('\n'):
                    print(f"    {e}")
            print()

    @staticmethod
    def _find_brace_end_in_source(source_lines: List[str], idx: int) -> Optional[int]:
        """从含 { 的行开始，查找花括号块结束行号"""
        brace_count = 0
        for k in range(idx, len(source_lines)):
            brace_count += source_lines[k].count('{')
            brace_count -= source_lines[k].count('}')
            if brace_count == 0 and k > idx:
                if k + 1 < len(source_lines) and ';' in source_lines[k + 1]:
                    return k + 2
                return k + 1
        return None

    def _find_declaration_end_in_source(self, source_lines: Optional[List[str]],
                                        start_line: Optional[int]) -> Optional[int]:
        """当 clang AST 未提供 end_line 时，通过扫描源码查找声明结束行"""
        if not source_lines or start_line is None or start_line <= 0:
            return None
        idx = start_line - 1
        if idx >= len(source_lines):
            return start_line
        line = source_lines[idx]
        if '{' in line:
            result = self._find_brace_end_in_source(source_lines, idx)
            return result if result is not None else start_line
        for k in range(idx, len(source_lines)):
            if ';' in source_lines[k]:
                return k + 1
        return start_line


def parse_arguments():
    parser = argparse.ArgumentParser(
        description='Remove APIs with @systemapi tag from C/C++ header files (Hybrid: clang + regex)'
    )

    parser.add_argument('-i', '--input', type=str, required=True, help='Input directory')
    parser.add_argument('-o', '--output', type=str, required=True, help='Output directory')
    parser.add_argument('--napi-dir', type=str, default=None, help='NAPI top-level directory for dependency resolution')
    parser.add_argument('-v', '--verbose', action='store_true', help='Enable verbose output')
    parser.add_argument('--log', type=str, default=None, help='Log file path')
    parser.add_argument('--dry-run', action='store_true', help='Dry run')
    parser.add_argument('--force-regex', action='store_true', help='Force regex fallback (skip clang)')
    parser.add_argument('--extensions', type=str, nargs='+',
                       default=['.h', '.hpp', '.hxx', '.hh', '.inl', '.h++', '.hp'],
                       help='Header file extensions')

    return parser.parse_args()


def _run_dry_mode(processor: SystemApiRemover) -> None:
    print("DRY RUN MODE - No changes will be made")
    print(f"Input directory:  {processor.input_dir}")
    print(f"Output directory: {processor.output_dir}")
    if processor.napi_dir:
        print(f"NAPI directory:   {processor.napi_dir}")
    print("\nFiles that would be processed:")

    for root, dirs, files in os.walk(processor.input_dir):
        root_path = Path(root)
        for file in files:
            file_path = root_path / file
            if processor.is_header_file(file_path):
                print(f"  - {file_path.relative_to(processor.input_dir)}")

    sys.exit(0)


def main():
    args = parse_arguments()

    processor = SystemApiRemover(args.input, args.output, args.napi_dir, args.verbose, args.log,
                                force_regex=getattr(args, 'force_regex', False))

    if args.extensions:
        header_extensions = set(args.extensions)

        def custom_is_header(file_path):
            return file_path.suffix in header_extensions
        processor.is_header_file = custom_is_header

    if args.dry_run:
        _run_dry_mode(processor)

    processor.process_directory()
    processor.print_stats()

    if processor.public_ref_errors:
        sys.exit(1)

    if processor.validation_errors:
        sys.exit(1)


if __name__ == "__main__":
    main()

IP-x,운!。
        支持单行块注释 /* xxx */ （/* 和 */ 在同一行）。"""
        close_stripped = lines[close_line].strip()
        if (close_(close__&close_*!')) and close_stripped"@
close_line7+i。
        支持：块注释 /* */、JSDoc /** */、行注释 //、单行块注释 /* xxx */ 等。"""
m1~!*#.9//!0 P#"'1B
opy_skip_dirs(selfX将跳过目录（如 third_party）原样拷贝到输出目录"""
        for skip_name2/:
            skip_src = self.input_dir / skip_ skip_src.is_dir(1 Hshutil.copytree(skip_src, self.output_dir / skip_name, dirs_exist_ok=True4strip_comments_from_line(line: str, in_block_comment: bool) -> Tuple[str, bool]:
        """去除一行中的注释内容，d回 (去除注释后的代码, 是否仍在块注释中)"""
        scan = line
        if in_block)9close_pos = scan.find('*/')
            if close_pos >= 0/n_block     scan = scan[close_pos + 2:]
""'', True
        cleaned = ''
        idx = 0
        while idx < len(scan):
            if scan[idx:idx + 2] == '/*':
        ,        close_pos = scan.find('*/', idx + 2)!\close_pos >= 00idx = close_pos + 2"+8cleaned, True
            elif scan[idx:idx + 2] == '//'W$Y(cleaned += scan[idx]
                idxp>leaned, FalseDin_block@<|]+ccleaned, in_block_comment = SystemApiRemover._strip_comments_from_line(lines[k], in_block_comment)
<F+= cleaned.count('{') - cleaned_F\XL$    P    V    ybi7, use_crlf: bool = False8*            removed_flags = [False] * len(_ in @]! - 1, min(end, len(source_lines))1 pmoved_flags.2extra07source_lines, removed_flags)
            for n in extraif n not in ?C	.append(n, macro_namesK2.extend(n for n in macro_names if n not in deleted5\T^+line_ending = '\r\n' if use_crlf else '\n'
4, newline='^0line_ending.join(l.rstrip('\r') for l in result_))
/KV	use_crlf: bool = False?ؠ9.    line_ending = '\r\n' if use_crlf else '\n'=;%ά, newline='!-line_ending.join(l.rstrip('\r') for l in new_)PDis_comment_or_empty(line_6%一行是否为注释行或空行"""
>(	1#6X'!D!match_aggregate_keyword(line: strD匹配代码行是否为聚合体声明行，返回 'enum'/'struct'/'union' 或 None。
        匹配规则：行中同时包聚合体关键字和左花括号，或 typedef + 聚合体 + 花括号。"""
        for agg_type in ('enum', 'struct', 'uniDline and '{Eagg_type
            if 'typedef' in line and agg_type in line and '{agg_typeM	ҭ_is_comment_or_empty(lines[k]1 _5matched_type = self._match_aggregate_keyword(lines[k]~ed_typeϲmatched_type!ݳ
de_kind in (!)1=C
sԩ	
    def X
skip_dirs(5@B快速扫描是否含 @systemapi，没有则直接拷贝
        25写入
        3P$q36=;input_file, 'rbraw = f.read()

9rawE+['    use_crlf = b'\r\n' in rawMif '@systemapi' not in content5i1@
y@JT, use_crlf)
*h	4, use_crlf)
;|^	(macro_match = _re.search(r'#\s*define\s+@
	if macro_macro_match7*.enum_val_match = _re.search(r'^\s*(\w+)\s*=\s*!@
Nif enum_val_match and _re.match(r'^[A-Z_][A-Z0-9_]*$', enum_val_match.group(1)1 enum_val_match78        enum_val_match2 = _re.search(r'^\s*(\w+)\s*,\s*$!@
Pif enum_val_match2 and _re.match(r'^[A-Z_][A-Z0-9_]*$', enum_val_match2.group(1)1 enum_val_match27*gvarxtern\s+.*?x!@
if gvar_
gvar_match7*, '__attribute__0 , List[str]02：(处理后内容, 删除数量, 删除的宏名q7$d, []macro_
C.min(end + 1, len(lines))1 /m = _re.search(r'#\s*define\s+(\w+)', lines[k])!\z>macro_names.appen?D
#Wo'F, macro_names"kD"s	+*+R+1:+Oif ';Z'+	semicolon+%D	semicolon Z!2 U start 行开始向下查找包含分号的行，用于多行函数声明等场景"""o]\NMP,h`6#注意：此方法只应用于被裁剪修改过的文件（有 @systemapi 被删除的文件），
        不应对未修改N文件使用，否则可能误删只含 #include 和注释的聚合头文件q<92<.@47{|includp83?8ifdef\s+__cplusplus~4_ if s in ('extern "C" {', '}', '{0 _82裁剪修改过的输出文件中内容为空的@0。
        只检查被修改过的文件（有 @systemapi 被删除），不检查未修改的文件，
        避免误删*含 #include 和注释的聚合头文件aHz@input_file in modifiedHLNA^Bi '-std=c++11E(S;PWEYմ҇x H@HgI
5<xM]Ha9{_݇Mͭ՛ID
$4?w[MtEƩHM(GVDEIbBˢ9sܜ<p>c91]\BZ5T5YxbQZ-7W,?{=>MXg^1m%.q[I ӹVFt12	mb:<]/g3j2A;`rhbWVjrz|Gm6Rp2XQ	jhF ҕ)ݭԴtwUVT! tMG99ot(ܬl9̵FZ킫=])[iUOa%^.ޜih-A{JqC|.kŋrpU҅I{.ۛfxau]{<nlrH#XGt6 GmAjBZ@GG|%m@4E.Ő	1I5kIt#d|<c*v>mP<	RV
Vѫ/ohx:NQߙכ?v"8's?K~V2<#ǁ;JQ*V҃:)}s2vv#*hDhGe?[\#,C"sԒKdβ_B>(H&yّI%VGnBLxi8/*
 * Copyright (C) 2024-2026 Huawei Device Co., Ltd.
 *]A *B *) *
 *, *
 *AE *C *J *E *\  */
/**
 * @addtogroup OHIPCParcel
 * @{
 *
 * @brief Defines C interfaces for IPC serialization and deserialization.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @since 12
 */
/**
 * @file ipc_cparcel.h
 *
 * @brief Provides C APIs for IPC serialization and deserialization.
 *
 * @library libipc_capi.so
 * @kit IPCKit
 * @syscap SystemCapability.Communication.IPC.Core
 * @since 12
 */

#ifndef CAPI_INCLUDE_IPC_CPARCEL_H
#define CAPI_INCLUDE_IPC_CPARCEL_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
* @brief Defines an IPC serialized object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
struct OHIPCParcel;

/**
* @brief Defines an IPC serialized object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
typedef struct OHIPCParcel OHIPCParcel;

/**
* @brief Defines an IPC remote proxy object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
struct OHIPCRemoteProxy;

/**
* @brief Defines an IPC remote proxy object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
typedef struct OHIPCRemoteProxy OHIPCRemoteProxy;

/**
* @brief Defines an IPC remote service object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
struct OHIPCRemoteStub;

/**
* @brief Defines an IPC remote service object.
*
* @syscap SystemCapability.Communication.IPC.Core
* @since 12
*/
typedef struct OHIPCRemoteStub OHIPCRemoteStub;

/**
 * @brief Defines the type of a memory allocation function.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param len Length of the memory to be allocated.
 * @return Returns the address of the memory allocated if the operation is successful; returns NULL otherwise.
 * @since 12
 */
typedef void* (*OH_IPC_MemAllocator)(int32_t len);

/**
 * @brief Creates an **OHIPCParcel** object, which cannot exceed 204,800 bytes.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @return Returns the pointer to the **OHIPCParcel** object created if the operation is successful; returns NULL
 *     otherwise.
 * @since 12
 */
OHIPCParcel* OH_IPCParcel_Create(void);

/**
 * @brief Destroys an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object to destroy.
 * @since 12
 */
void OH_IPCParcel_Destroy(OHIPCParcel *parcel);

/**
 * @brief Obtains the size of the data contained in an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the data size obtained if the operation is successful; returns **-1** if invalid parameters are
 *     found.
 * @since 12
 */
int OH_IPCParcel_GetDataSize(const OHIPCParcel *parcel);

/**
 * @brief Obtains the number of bytes that can be written to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the number of bytes that can be written to the **OHIPCParcel** object; returns **-1** if invalid
 *     parameters are found.
 * @since 12
 */
int OH_IPCParcel_GetWritableBytes(const OHIPCParcel *parcel);

/**
 * @brief Obtains the number of bytes that can be read from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the number of bytes that can be read from the **OHIPCParcel** object.
 *     Returns **-1** if invalid parameters are found.
 * @since 12
 */
int OH_IPCParcel_GetReadableBytes(const OHIPCParcel *parcel);

/**
 * @brief Obtains the position where data is read in an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the current read position obtained if the operation is successful; returns **-1** if invalid
 *     parameters are found.
 * @since 12
 */
int OH_IPCParcel_GetReadPosition(const OHIPCParcel *parcel);

/**
 * @brief Obtains the position where data is written in an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the current write position obtained if the operation is successful; returns **-1** if invalid
 *     parameters are found.
 * @since 12
 */
int OH_IPCParcel_GetWritePosition(const OHIPCParcel *parcel);

/**
 * @brief Resets the position to read data in an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param newReadPos New position to read data. The value ranges from **0** to the current data size.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 * @since 12
 */
int OH_IPCParcel_RewindReadPosition(OHIPCParcel *parcel, uint32_t newReadPos);

/**
 * @brief Resets the position to write data in an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param newWritePos New position to write data. The value ranges from **0** to the current data size.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 * @since 12
 */
int OH_IPCParcel_RewindWritePosition(OHIPCParcel *parcel, uint32_t newWritePos);

/**
 * @brief Writes an int8_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteInt8(OHIPCParcel *parcel, int8_t value);

/**
 * @brief Reads an int8_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadInt8(const OHIPCParcel *parcel, int8_t *value);

/**
 * @brief Writes an int16_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteInt16(OHIPCParcel *parcel, int16_t value);

/**
 * @brief Reads an int16_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadInt16(const OHIPCParcel *parcel, int16_t *value);

/**
 * @brief Writes an int32_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteInt32(OHIPCParcel *parcel, int32_t value);

/**
 * @brief Reads an int32_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadInt32(const OHIPCParcel *parcel, int32_t *value);

/**
 * @brief Writes an int64_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteInt64(OHIPCParcel *parcel, int64_t value);

/**
 * @brief Reads an int64_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadInt64(const OHIPCParcel *parcel, int64_t *value);

/**
 * @brief Writes a uint8_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_WriteUint8(OHIPCParcel *parcel, uint8_t value);

/**
 * @brief Reads a uint8_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_ReadUint8(const OHIPCParcel *parcel, uint8_t *value);

/**
 * @brief Writes a uint16_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_WriteUint16(OHIPCParcel *parcel, uint16_t value);

/**
 * @brief Reads a uint16_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_ReadUint16(const OHIPCParcel *parcel, uint16_t *value);

/**
 * @brief Writes a uint32_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_WriteUint32(OHIPCParcel *parcel, uint32_t value);

/**
 * @brief Reads a uint32_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_ReadUint32(const OHIPCParcel *parcel, uint32_t *value);

/**
 * @brief Writes a uint64_t value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_WriteUint64(OHIPCParcel *parcel, uint64_t value);

/**
 * @brief Reads a uint64_t value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 26.0.0
 */
int OH_IPCParcel_ReadUint64(const OHIPCParcel *parcel, uint64_t *value);

/**
 * @brief Writes a float value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteFloat(OHIPCParcel *parcel, float value);

/**
 * @brief Reads a float value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadFloat(const OHIPCParcel *parcel, float *value);

/**
 * @brief Writes a double value to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Value to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteDouble(OHIPCParcel *parcel, double value);

/**
 * @brief Reads a double value from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param value Pointer to the buffer for holding the read data. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadDouble(const OHIPCParcel *parcel, double *value);

/**
 * @brief Writes a string including a string terminator to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param str Pointer to the string to write. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteString(OHIPCParcel *parcel, const char *str);

/**
 * @brief Reads a string from an **OHIPCParcel** object. You can obtain the length of the string from **strlen**.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the address of the string read if the operation is successful; returns NULL if the operation fails
 * or invalid parameters are found.
 * @since 12
 */
const char* OH_IPCParcel_ReadString(const OHIPCParcel *parcel);

/**
 * @brief Writes data of the specified length from the memory to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param buffer Pointer to the address of the memory information to write.
 * @param len Length of the data to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteBuffer(OHIPCParcel *parcel, const uint8_t *buffer, int32_t len);

/**
 * @brief Reads memory information of the specified length from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param len Length of the memory to be read.
 * @return Returns the memory address read if the operation is successful; returns NULL if invalid parameters are found
 *     or **len** exceeds the readable length of **parcel**.
 * @since 12
 */
const uint8_t* OH_IPCParcel_ReadBuffer(const OHIPCParcel *parcel, int32_t len);

/**
 * @brief Writes an **OHIPCRemoteStub** object to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param stub Pointer to the **OHIPCRemoteStub** object to write. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteRemoteStub(OHIPCParcel *parcel, const OHIPCRemoteStub *stub);

/**
 * @brief Reads the **OHIPCRemoteStub** object from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the pointer to the **OHIPCRemoteStub** object read if the operation is successful; returns NULL
 *     otherwise.
 * @since 12
 */
OHIPCRemoteStub* OH_IPCParcel_ReadRemoteStub(const OHIPCParcel *parcel);

/**
 * @brief Writes an **OHIPCRemoteProxy** object to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param proxy Pointer to the **OHIPCRemoteProxy** object to write. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteRemoteProxy(OHIPCParcel *parcel, const OHIPCRemoteProxy *proxy);

/**
 * @brief Reads the **OHIPCRemoteProxy** object from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @return Returns the pointer to the **OHIPCRemoteProxy** object created if the operation is successful; returns NULL
 *     otherwise.
 * @since 12
 */
OHIPCRemoteProxy* OH_IPCParcel_ReadRemoteProxy(const OHIPCParcel *parcel);

/**
 * @brief Writes a file descriptor to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param fd Pointer to the file descriptor to write.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteFileDescriptor(OHIPCParcel *parcel, int32_t fd);

/**
 * @brief Reads a file descriptor from an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param fd Pointer to the file descriptor to read. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadFileDescriptor(const OHIPCParcel *parcel, int32_t *fd);

/**
 * @brief Appends data to an **OHIPCParcel** object.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param data Pointer to the data to append. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the concatenation fails.
 * @since 12
 */
int OH_IPCParcel_Append(OHIPCParcel *parcel, const OHIPCParcel *data);

/**
 * @brief Writes an interface token to an **OHIPCParcel** object for interface identity verification.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param token Pointer to the interface token to write. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_WRITE_ERROR} if the write operation fails.
 * @since 12
 */
int OH_IPCParcel_WriteInterfaceToken(OHIPCParcel *parcel, const char *token);

/**
 * @brief Reads an interface token from an **OHIPCParcel** object for interface identity verification.
 *
 * @syscap SystemCapability.Communication.IPC.Core
 * @param parcel Pointer to the **OHIPCParcel** object. It cannot be NULL.
 * @param token Double pointer to the interface token to read. The memory is allocated by the allocator provided by the
 *     user and needs to be released. This pointer cannot be NULL. If an error code is returned, you still need to check
 *     whether the memory is empty and release the memory. Otherwise, memory leaks may occur.
 * @param len Pointer to the length of the interface token read, including the terminator. It cannot be NULL.
 * @param allocator Memory allocator specified by the user for allocating memory for **token**. It cannot be NULL.
 * @return Returns {@link OH_IPC_ErrorCode#OH_IPC_SUCCESS} if the operation is successful.
 *     Returns {@link OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR} if invalid parameters are found. Returns
 *     {@link OH_IPC_ErrorCode#OH_IPC_PARCEL_READ_ERROR} if the read operation fails.
 * @since 12
 */
int OH_IPCParcel_ReadInterfaceToken(const OHIPCParc{el *parcel, char **token, int32_t *len,
    OH_IPC_MemAllocator allocator);

#ifdef __cplusplus
}
#endif

/** @} */
#endif
Y$yxD
, 'unknown 	6a!;*I$G0>Lފ#new_0q`@_check = lines[k]
            if ('enum' in line_check and '{' in line_check) or ('typedef' in line_check and 'enum' in line_check and '{' in line_checkx9'enum'#if ('struct' in line_check and '{' in line_check) or ('typedef' in line_check and 'struct' in line_check and '{' in line_check)x9'struct'#if ('union' in line_check and '{' in line_check) or ('typedef' in line_check and 'union' in line_check and '{' in line_check):
x9'union'1j$G-header%!_xZ ,4W6\s.s40z4W6\]3v4`4W64:|4W6\;=v4?>+$kjx y,C2%@.nCY*i20}C2CY*i205wC2%M7qCY*i29C2%;qCY*i200>>+17>x,K`Ao<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>IX<li>
 *         <ul>;0=.nK`A[<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>QGV<li>
 *         <ul>;'>0uK`Ao<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>IX<li>
 *         <ul>;02qK`A[<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>QGV<li>
 *         <ul>;'>5wK`Ao<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>IX<li>
 *         <ul>;0>7qK`A[<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>QGV<li>
 *         <ul>;'>9wK`Ao<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>IX<li>
 *         <ul>;K`A[<ul>
 *         <li>'p[(<li>
 *         <li>Z<li>
 *         <li>QGV<li>
 *         <ul>;'>F+߁4qx~c-/-:P?4/-l/li>
 *         </Q33.}/-:P?4/-A&(</li>
 *         </Q3*1X/-:P?4/-l/li>
 *         </Q3/-:P?4/-A&(</li>
 *         </Q3*16R/-:P?4/-l/li>
 *         </Q338/-:P?4/-A&(</li>
 *         </Q3*;Z/-:P?4/-l/li>
 *         </Q33=/-:P?4/-A&(</li>
 *         </Q3*10@>+hi4x^5/*
* Copyright (C) 2024-2025WAbilityRuntime
 * @{
 *
 * @brief Provide the definition of the C interface for the native AbilityRuntime
 * @since 13
 */
/**
 * @file ability_runtime_common.h
 *
 * @brief The file declares the error codes of the AbilityRuntime module.
 *
 * @library l'ibability_runtime.so
 * @kit AbilityKitAbility.AbilityRuntime.Core
 * @since 13
 */

#ifndef ABILITY_RUNTIME_COMMON_H
#define ABILITY_RUNTIME_COMMON_H

#ifdef __cplusY * @brief Enumerates the error codes of the AbilityRuntime module.
 *
 * @since 13
 */
typedef enum {
    /**
     * Operation successful.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_ERROR = 0,
    /**
     * Permission verification fails.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED = 201,
    /**
     * Invalid parameter.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID = 401,
    /**
     * The device type is not supported.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED = 801,
    /**
     * The specified ability name does not exist.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY = 16000001,
    /**
     * The ability type is incorrect.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE = 16000002,
    /**
     * Cannot start an invisible component.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_VISIBILITY_VERIFICATION_FAILED = 16000004,
    /**
     * The specified process does not have permission.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_STATIC_CFG_PERMISSION = 16000005,
    /**
     * Cross-user operations are not allowed.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_USER_OPERATION = 16000006,
    /**
     * The crowdtesting application expires.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED = 16000008,
    /**
     * An ability cannot be started or stopped in Wukong mode.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_WUKONG_MODE = 16000009,
    /**
     * The context does not exist.
     *
     * @since 13
     */
    ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST = 16000011,
    /**
     * The application is under control.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CONTROLLED = 16000012,
    /**
     * The application is under control by EDM.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_EDM_CONTROLLED = 16000013,
    /**
     * Redirection to third-party applications is not allowed in API versions later than 11.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_APP = 16000018,
    /**
     * Internal server error.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_INTERNAL = 16000050,
    /**
     * The application is not on top.
     *
     * @since 15
     */
    ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY = 16000053,
    /**
     * Setting the window visibility during startup is not allowed.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_VISIBILITY_SETTING_DISABLED = 16000067,
    /**
     * The application does not support clone or multi-instance mode.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_MULTI_APP_NOT_SUPPORTED = 16000072,
    /**
     * The multi-instance key is invalid.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_INVALID_APP_INSTANCE_KEY = 16000076,
    /**
     * The number of instances has reached the upper limit.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_LIMIT_REACHED = 16000077,
    /**
     * The application does not support multi-instance mode.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_MULTI_INSTANCE_NOT_SUPPORTED = 16000078,
    /**
     * Setting **APP_INSTANCE_KEY** is not supported.
     *
     * @since 17
     */
    ABILITY_RUNTIME_ERROR_CODE_APP_INSTANCE_KEY_NOT_SUPPORTED = 16000079,
    /**
     * Failed to obtain the application information.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_GET_APPLICATION_INFO_FAILED = 16000081,
    /**
     * Starting the UIAbility times out.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_START_TIMEOUT = 16000133,
    /**
     * The function cannot be called on the main thread of the application.
     *
     * @since 21
     */
    ABILITY_RUNTIME_ERROR_CODE_MAIN_THREAD_NOT_SUPPORTED = 16000134,
    /**
     * The target application does not have running abilities with UI.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_NO_RUNNING_ABILITIES_WITH_UI = 16000170,
    /**
     * The API call frequency is too high and exceeds the rate control limit.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_RATE_LIMIT = 16000171,
    /**
     * The number of connections exceeds limit.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_UPPER_CONNECTION_NUMBER_LIMIT = 16000172,
    /**
     * The requested property, method, enum, or struct member is not found.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_PROPERTY_NOT_FOUND = 16000173,
    /**
     * The runtime value type does not match the expected metadata type.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_TYPE_MISMATCH = 16000174,
    /**
     * The IPC request to the remote service fails.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_SEND_REQUEST_FAILED = 16000175,
    /**
     * Caller and target are not in the same application for {@link OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS} mode.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_CROSS_APP_IN_PROCESS = 16000176,
    /**
     * The native ability wrapper is invalid or incomplete.
     *
     * @since 26.0.0
     */
    ABILITY_RUNTIME_ERROR_CODE_ABILITY_WRAPPER_INVALID = 16000177,
    /**
 	 * The type library metadata is invalid, for example, missing or duplicate main interface.
 	 *
 	 * @sincee 26.0.0
 	 */
    ABILITY_RUNTIME_ERROR_CODE_METADATA_INVALID = 16000178,
} AbilityRuntime_ErrorCode]k0 // ABILITY_RUNTIME_COMMON_H
!lxZYs#~ׯ@I/fk!m1K
IٵD4W (fK=^+yWvUgF_y4F+EN3ruqqaa$}pu$\&Z0Ҏ%og&$rպ 8yu|v$VaL|"AH,̸{rXi /Zs*O	p(,!oBB,Y(|\fg~ݿ ɦcRsOWFCG$w*D+̛D3!K%4V%,57n"_zڃI;&Noۏ=D>&a18=E% 69j+0K2bqD132@"1sVd<sE~&t~ttК@]WsCņ0G
fNeXVČ:uc
%
vB $$J@Θ֥j=p*xȰ˨K$KON+KC#2^I| 4W~ &P-{yUV91A:lƃ O+0TsO#ޒ~?r::3ӌXXN׆5']{?ľ9:qX	Dǋ]FIN[Z
yűYKwĞ1|tόY׌.n^#Z"|>3rX"#-ZS@~`UJXE$]1[4sh0 ,5\Wğ"JGWaM%nfq۹Y":1Q׉ 	DJPK" xV,U>2q&&DfFutq$b?
d5w(% =E`221Q1xLNŁ( X֏QgfI=<*:fhru:Hhvj&V|Ltj45הQNF	! *dȎV<I-;?nҦ6 z,ZRO0Z>/mW]z1Wb_rH3vp:;pd[N7AJ+G	)h6a`"pJV&dw:6FSz1$!wI#5&Wlm2!]&b5fR^_ZiJFs+rv#/t)JE9Sl	%T~Isk1CnY9] 9E/}R<iQ_3*ᎨL`VJaJji5;.@HBM6;5>, g$Bպorv@5jג:B4CćFiGHqNih֕b]YC2unh@8a,HbuyO[ȳ"'͌B[Hиl=g̾[YI#׋{	:)Xwg
<WmB5sl]ZaYi24ţ;6A7oh)PgPdG)DLPd16%jd\jMjM]rV:EY%7ڑZlIRjMF­]i8S6)׵P%aO.UFTImEY_AպZ}kM?̝@8p<mw&`{vԥ=8lnhڃNgjvUϦqtu'kÌjB䥭Ua=zN1F*vJC9izn:d^3 ܠ`]OWy "3WӏIHjxY6Pnh74Rqu`PXCAJ\3?R+Kr~>lt,{qҤck"UF觨[LX8M"֋s-k$%5xv Ü?C=rwB!0mnC=
2%ۢf{@)q@vؤ pHˇNxq2;T/,[Zft7nbB|Y,OԾNʗ6(dUdX5;vKYE_o>$;Ǆ-1ل|d:,?M'[&[u&[.W_k]n(7na]Ey]q<l6e2)wsMFG (іţp*7m͟meo.u fwjzoO#{~+Ǳp!KWV^.}Mx6*Xrz!uVT\k`5)CpHd=d̟!8ΙG?#|. ̓j:OxZKoUUI[vNHzcmbbѐWIqg{̌D+~ UջBъ%J,UHذ*D@r_yN{s}n<4 ^0 ߭!SyCMr!
	H^4zGwŋ1DeE%uC#1nP!fw%fޅ~kjA-Ǎ 3+K،}>f:(Uܶ9?ϓ1Pٳ@4Z)/WbhLj#ñ80fs9U<630ߟ
ucY`l@60T p{B>@Gwj:y?b+Ki7}	y U썏'GO$EQ os4621452281"i}',
 k`S%iiCR#S%z4~2nhM GtX6&`@TCL33$0*.j72uh짇33Q5Ps{)aЃӠm0FQSt'>JO!K\7A hU3400z%'^o\	PNkا9+Z@VSGF5$u"]b2]6',ݐx,)|SD$aL2\:Y97IC88CJE6^\-0&)XKݎPihbQӠbX-6!dEr0gX&=ㄳ<Zq>&u)^/:Oakw?`
1WM\rϑbz1ZI}d TPcƬ PLMg&?t޾bItV(X0Z.a`+'h}cSϋDKID ȪXNVO?:Y~ۊ. StvodA_s#b/+˿UTemc1nia;rb?9Qۊc W Tdsɿ@'VRYuh ktzπ ' T^R>_o/<wB?%z~op=/ ʾnhXk|*=Ieꮊ.0\C.Pt2i	QUtbF{9S oEڱa]4~W;qQ-z IuW,,t?2h9!:;Ic!_ *#Iv\+cTdRjiٺb6h2^Vw6'e=W9R%:˭a@{>hI^OMrqOR$}x6eF|9>
,03R*/NYD-͑gؼ[@zSI|i)=ھ;oV^><ْ&MO5DwoM*Pb^b?fl=k9yyإ7>tV-	=U6|Ζ4.jra7NY	\ƨU_(ypJ4+0ЏѥZĈ.	OB*^f;mBKi$>^/K0?y⺣ {eޢ ݶ1C6&-U:'Βpɱ뜻ABH4G>h?EG6u<׷SBEM1_tN&f4aExHP9xVO[eN[`-۞60ZK6#9%̍޷{oE/h2r}2q/	ͯF3r;1:y9qӷQ2̘+uKg`<7>1̟&c[Y.T ?W>|LGZ]92GVk+Mc'"B(PZ%+XuyDbw׎fDլT*L7bhP3fr U"y.ƲsDp
گ!_t
UC?om*]Gkx*ʹYT^o]߸)vW2w})Y{-??:dKDe;P?ڡO=Vgޜ"2<á곮pSہIezoCp3 gY#n%jfjÍ`?3䔵ts#xzJqcG"܃oTŀe"\D=rMR',b0ʿ*T}te`&k;h<MmVmnG?;6YwВq<sRZJl tg[8$"_H4Z-mPrقR^|=e]=љ8vCjZTSPB'InD,v;R((zBȺc,%©`GҩRRj6w9@H툴8'cIYtߢ0L+V"dԱtwEӵ-]"Z5֊p?l2]9|Lp#7-?n314>`Apı쫇6S3dT$n g-;֊ihQf>i½:ԖqYz)nI񥨔:Nsll1<MdğHpb?=Rx!it͉L'8o~ǲH 	?x5=j*y	gI >xAeK<##dGa	lϰ&y?M>#,ٜ}
3Z~9Y	-&hmLVe[Mמ\/=!@6oĊd&8S{4q4$'kO¯1SeTbsjB	,43(ؼB; PwxkaWvfgwfdCvY6i  	xݚoG!@ vBJ)$&1yP<	Тt;Nػ*UVKCU-D=^C꡿	Nqwg~3;ɝ{uq|(t4:#)/z..͟[^٭/5dbC[4)s<EюٔHKr$Oj+4uk``8+HOe<\$Cu%͒u>PL$L*NR5lB02pF05c}]_2x]PYMUB!nc%imAY/ .<tZ% {XC籶l =!KG=Lcm-|#t5P_]3S5ktdB`<ɓ1^SvhuEW,in!|KPߑCC(2>sxXC14m`瑩*!gWu6íջzy3ش}OgZ#"Yu͒
R)h"yJKт*`JIg[Tr?N7ԑHwȇ=ݭke[9C3a6{[DCvRg56DkZDz'\&	!BLnTh=PUC,P<%:Bth58@aW`WJ, 7=S}m(뻪$leuSeOlĪ&l3E;uyұoobCyˡqkϭh3HlfYknMa2ofp]ëv=E<R:K2pCpۛ3YkP^U5ÀB(YnFni}uiXx2I:ͼp^~`	,X?TnU:S8wevi6xEԳo)IMN}XpBLI)`=Q=i,g{˻΃8t#l-f)+! 4awљxIF!(O	1:EaV	{ڔ|ʈDM0AP$oEDM0AP$o9DP*K32>:ei#"dXypE)Ds\!!:ea3"&YPB~؊0bg\2Tm:r:п >(zvm?61v|\KU !:+bYili^sh6x'EtE[`~}&Sѵȉnl 3fkV 2E?]
Z4w[gh؀"9	gT8B{iuUK5JR)@Vnd$O!BR"8kO)W9狓:B<<]{}ѠCK`쫒4DII z}TV̺aΊG;m+xCՎlki:7onD=Vbx!Q_o//MsB 	Hixt(nKĎ_kD>I+DmٜQ7өӺ^YMP1ĚaGJAsNE>f.$)%˦ րMt~,s|JQ/24Jfyl$7y-pȽCZݶ<rSCmd`uO)IU7J`"95KMl/; ϼAE4 7YU>P_Yd-&O>mz5uV؇Rܟm'E
gk0w\n1Yœ(*sߝ`?/xUnEBʤEZ6?~ko6NVUQ
qiS*Rxwewǝm!dUH[4wH'@pG+.Ywur9s9T񳙓oܺY?RiղJ`&q]ɻ}ݮ7ԧꏙ  !鲰GA}BGPwhiTYu8"9k3 q%.9&,Op_ÛVt9D5ˉ|
ﴝ(sՏ
fgE=:<;:oG0MBR"n8PXvm.^3RɒdlJK0).T//Ҋ Z>5q8t$!q$3z8<Pjm`m>GQ	*cR7SRhLqXKs}r[~@z{r=#P1|1joLEБ!hܞ}<^lyJ&bA؞N,܋.*Ksfe3'uZxJ&o9\^$7$vC<%{~mªvnk
ʋJB=#a7OLq atph!ӱ!wq&d=o?Z+
.HKx@j2H] a8ܻhåOy3a=Y_G%F⪠>NRnG5:~vY=RM>I ANf%aE@t/13]1-,QՇMgrQp|p.>Wg&:|trN0;wfY>Qbxw§Ⱥ1hJ^XqzDel-ݥu|ROC[=v wk^׺A$m81=cn2@hB'q2Yצ3դ)tPBBCE1Ή*=*)bVe=^mm{_\DM#08xZIlUV&'NHbmbJ"DTx9g8ih	̥Gn@UNH nƳƁ_{?<y19_><=L/x k$꺦`ei994諛lo5Y	*@P$ Aǳc﬜@.i@'v	8h!f%fކ4\ndɢƮFac(EdAASolۜIID`KctY -bSݔEh`F1CU4_g-~3`6SE:c#=}9PY76dﶁۣd4" }CEѾ8華,qETm_VIw](bF&FF@f'Fs%7?BJkտ4vʴ!va|YD[6	83c٘8H! QUAVp2(Μ%pTqP#цCe?=9u;Fl?Rs)h5E'~tt)_bN`GF)p=\` >@Ɇ'4׻,X081z"UPP}
#P\)%	d55_$WC]7 ReY F
.vkj\|RP<E;HQ`.%Jc%1YSx3t3İ
iYdC`.Xk
Kp?Xþ6\TPֱrP*MM,jTkCھ!88HF}AP4+DvpG4$x9S0܋}Lf)z{N.u?Z^[L/R+lajjʝ1Ѡ/1Aۗ[=^5g=!
z01/c:tyh)B(dYu/
iG'oU[~[c kn v?],%ce̿}??-lGONW''oU[jlN#IJ*KmǦB~	@U%?ʳ(}'_b3{69|@UuCuPD*=IeꮊN0\.Pt2i	QUt⺁F{9S oEڱa]4~ONR$+pac̈́{&"tL>cpT%p$ЮTpeQz̔
P2LXJ--[7z>Sf}MFfd%jyq'cBx椬j5GS¢yYc[7`5h/}/)U.Njm,EOg-*m	[Ji/GGfFB_<_)9Vw"LwAxcvY|*=m>@5cix_=_ɖ4Ym+6%|oVC3fY1ӎX.}[/meeNYs6+A]n(8Q׫vP^ᐕ*\9\iV8`cK"2q!;;W' D=?$fHziﴽ
+ynOz{y,e/_"hk^
ԲHn<j;@wTPm9	kOu\jD~	U8R@c)qiKsk u+2u NN;DS5NLdbJ@S@I
U)xUoEB"$:R86q(jM6A5ޝGYϸM"q:NH'GW zx딪U/w7|sʣ^m}pvcO=dE\n\Ρ2z;}j֛;əs2b$ao![0I#mz[t'"\5yq!LZDCrANcjPQ?R :'Tf,uoRN{b55nOP[2C#"ǧ`bP_uSMusÉ	/ҍD%h
o:8Q5-~ ZmyDTP[ufKDɮ͙$GR+(O,q  28Ǖx	uQmTc=@7ueDйS]*N{$'1YL/"E'%iBEI]嬘ꇕ-oTؤ	KeISR߮lk|ƹ7VgU,J@_@=Ϋ//c̺[Ę#:8(ap0 9'RCC\x^@tfmmC-Yٰa'Jz81"Ƞ"҃(]?"~=Q8"{16C6[Q
p@r@	L@(sb=q;bR/RyfM=n05ҵY)7N39V/읡)X\RkւzTC{zPުuNg*+,PebWpsa/_jeݱmSI(X%d
S~z3Z=iO?Q&6 #fXr/ z#7yƇb?xZ$Q#k5S~w(C/V֋p粲xZmo8_A.5\g{8CU\v`;@KCDu$[IY-;N9g! m$_ir~Eo4KIV鰅JXH$d+FiK&	y#w;YI&b +vT@,Ҙ_r}eqR1S¯<PCq4~Nߞ,5
v:9뷻I5(&]$1SHߌK0x"4:Uc$B:iJ/%<7^RPLȕ|r Mȑ7!M&
ԟ.7{i;!1i?¯$<T&Go2	c"aUR)x0-gt\0E$erFU!kͥ-p/NƓij1"Kw9`T4B!_$g9ↇLＯ07^,LD&V
Jih'Yg̼.mU3Lқ\sZWU;,	()ƓxcU\(7f~aZnCIԛ3]'ba;!3\[>rm.|&\A>j]DG_R&"i=7~?CoڿHwuwt4O_B(q2ÙqՋ<DQbbSRJ7<( 2l-#!_P]X/ ~$-OR~M}+f[ED+qð~ƙ/.(}DxɒGbp S&8FիPa@ҠM3ڒQͰ@OGN3}N%MS f*7c[_mY:f1걦(xM`	{xo1 bu|JncaZEDZ;J[v!H+fXP21<1^ 6/O&E\3]7A#3$Y)xӉ	-IV4KxoO5gַJ+.`y!rX-!8 .,)lE(A}qf8t|5Deiw6"LZKs.X!t7@adqjY] xYP@ 7wszm3=
/TW9&rKUKqkb25ۂ,	cE )91FF>vQLŧ`ZZm~eQ5 @c֬k37KR($<ԫZ4$"5Ȗ,d,17$HW? |\.?q:-aHrXayk$Yr=u6{2N0Yd5U*V璕!wLKe`3yx{`e0^5ܱ.Kk
ޢ~j(]]{]v簐q^z9r ;`8ݲ 3S!g]x;w|-64^<}w޴GSS#Kd9/ %'b88?ݎҕfUei*+f_]v6ẢHY̙:IxA4pȖ4%,4[m+WRR)=L)T՞45
V[k
úJ5!` ךFɍ:Hy+F+~5j2{6qfJ?X1<(Z9h6	P9Wu%x\ZnM2# c2vwԌ^,75fqcW=WrMRQꀀ~<m5RAAU8"%]}CD&֍Y2}ݒ?9Ƴ"Yç2kv][^1<ԶyQVe?xsbM
 ohP~lL026!&W|:x: a+|Q٨Rms\:V7<:_V [i{Rl1Esh-jpwaYI7!Q`0]:ÂkjΈް=;v\IA)<Wr.ZO>SSo;Rbk5@r~ybj(79&LzhÓݚ,\ݶH#`MuWjK$Iu蹂F]L*k3מg[ĉ޻};|ٲ٫;7҉E!NCJd噘[G%~ddsTklB$9Z1pbYI0
[d(Hazo,lH%uc^0w)|Bb}Q%;4.5,=;-@U<=^;]lN&d=#5X@rCz=w>uOqL
y%b]{WepQH@0ښiy[h{(BW绋ӐnH<~1jA
?Aw0v:$4@q~._zUQx3
-͓7{qNf%ȟ(9ו{7tn- 
u
)KtNT圭ϟn{6!)nȂ`6JB9iC<7LȧY3k>C	gGbhcr<9_bO/ݚ~$x2Xݟ暗oۿ+<"Pw{-DxWMlUNAPN+-ѐ'"JBR{soyss
+W*ƍBHL?L`ƍ$.Q$FsyW}3s9ι}P_DnգS%F<?`eŀFL	oTg"OiHb'|K$' 2ԥ/exr}JL|qȍ'V58>/D>2btXXG
Ӧƙiŀ-YyHG(V=]vAMv I7ȌQAWiDߎ7fW2Tv,0*sNϠ}Bݢ܀ީ!Yeug5AGe o};&M\x</E!l6SD]?92qf3.s;saa\uov~qn!iX4պqg[TCQ?)EH۲;Z&4Ņ丧`Vܷ!7y vns,*VJi\ؒ_/tۚ76Q3l{I&:\|Hi'{>:3qT8LΗbyXkRDRܾ_jYkۖAu}jƊ|EZW!sBB\~윧kC<.@m+Q	xxNM${nga#
ݯ~B4hRHl#yeU~s]y3S0 HqD()8_$2xK$IH8)OXjc{tIn4t9V,@c9eLǲKRxDʣ5@˕ PggՁ[_$5cx$ iȟCaZX y"l\a߫uǫHDF
X@ʴb?%)~ǜ#"mjuϫO+̋Kdپܕנ}H.@Gl׍6조E+,
Ek]#"P_5RIq}j28Nӊ1*}]MHJV͓<ǚT`o{Bifڥ>nTYFrH:dYyKy,*-ۋgcƈPwYYJE%dID!Y7tS5-`}^\J70y=L^b!ܖx|KS>u{^u:=R%K[zS5?iGgIb 3$; u#DmL*!o38KxEIDڵo!ORZ[5EK ѶA3L#]Cv io
Slۺ"JĽo3"fu&KSw&#^5.xĹ4:Ҷ~O;6LczyhٹqQf>[#XMKz˜lluaĠdݻF{ǘ-:yߕ%`gKz&Hzv/ѣ6C#stZp8s$ѽb'zZ
9 
pX0jѲ."وQ !_ұ +w/wN(-v-/0cShjd{Nܺ]Sc+ *aFx) ff		b
E2rd	A{X}~xJ@1Łi-`tS,$
Beo3K$a)K+A[>+9Aog8Nf{ݏfc ]&i`tfVY,uAUDǉVIάԊ8Ib7Rq+47YsZHK!fX͑xޱ+ÜڽޗZF&f#)TeJyHy9&\>:+p,7 HKgPeR_ix( fas"5"K
G07,$Q xT}"3f%@F U8ydWfEmW0Ļ88ƻM6Էt(KNU04`/U(6ïjs^FBhNn3 d< /xx/{C1dSQ~T+"ԜT̊Jj̼l hnb_bIfYjKjqIQ~eBbZ	 )@ brZQbng^ZByfNBR*̆Ғ\Aɉ99P#@l3KsR7W/371=U!71lн\X_T 4;Xoslt9| anE@wLKL죠9F.cPۆ>
n\
3&M#:Y_xͭ'M&дy
 ~gxJ@E"",K,RQj%./2	3 bm_PHd zW~A{
sÒ2rqrD%RgWQ#'F<8d.A O3&-91$K4x
IrhµZVr&1}
E7EY1xV2v4"bM	Om~^yY޷.ypy>(Zb|̝cnCT_3x[:uC52'
Kn^+$ ]q]x{~VkCt}]}"k22JRsrSs*srK23s&HV_ph@PHc؄bҼ҂Ԕ\$d mڼ[@i.ɾ3 f4vx{Tkn~


9y
aAA~񾮾A:
)y%

i9E
y@TZ_TX7yW\&pՇĻ:*d)&(d+q)hQ%@'wpP8f;&
  ]B?Yx;uQkCdF0ٛ|hx;uJk?.F7Ws03rn^iؼBh) TxWkCgK</8{ܾL񂾌P0贛.r
 q?x۫Wk"3f%@F UbUx
:@B˸K L͒ B<LKEf  ߳wx[˹sC5Lu4hxZ[s6~ϯhfgFI}RcU73>B$(aC,@Z=(Nu=֢swJ|gr]ΩW//e6vn(}g퇡͛0ݛro^X݈wwnas[;|\[7z>!ōuP_ymfD3iDd'8l*QU6VNªޚj,qEổvD[JlbJȷfA{[z{Xiջ ̡SVJPG!ao\Z1 `ӝKj'qKϔ;< i,IJ z1^
jxk0`MSiUА]JӶ⠇=⽱G?@$Fͼŉ+}KAgKBFy)'Np_7{X!{EӾd9h&rAr%պkʖ(pU.H[ՁJHL.Ì3qk7;ν&Qy|x	[<',6[	)՞FZoUך,hMh*8Xwe3) 	EgVGghCpJG~_hFeq7¹;3pP~ִr/;:$DEM4c-`bz@/䘐6Ƅ2?" 'NPn*-pc2(!iL8R@w1tX Hn	RhXJJ2B@70-/k2-dqPOagXaE+	1de#XQ	4F q^ (Q*VF?DcnE\8u 5@̴Q+14>O><0rA%lfJ
Xw]}~I|zw$WZc~^ZUV5Gȃ3nтqV]k "[˒Dh3:}).Ҩ
bL$H2lZN"KQMm7n;<xAEz>h#3ZLjDe}5yu^f^˰H5 腭l(uD>[_`FWPhd!R+% u -+Y
Tr;*,!%H+ȵrL 68n9:cKxi'BTS0!(hFJ&v(rzC(Ȱ#j{K|v':;d)On@dSe
	("$}R:ඥ{sFѷs*]<~`Vb3rqz,GeURd!38@z5eB5A#L<5e3_V'єga`Xq|t	qk}#!ЙK'X}[N#Y>B9'la5sG+XZ!P$PqCt-z>k= l/ѦAP/؁qe
	f죰MӁʈ]^f+ܺ7;^Ք	ҡ审6IdtA8wڂL-PbYc/ 0ScN	|~
V8(͈?hz6jE ,O_8	vS&ñ?Zb 4e
ͨϔh%/*+V|Ѻ Ċ໹X|24[yLvB:p	%Ha@Ċ<m?dEj )Z˵i'Pg5tHۡVGDʩo젒i'Ѱ6ۓ7Jc;u,8e#ŐFغLw. pqfXaRțLP)xqASHş=R2Dh1ќqvHOr^F}㇮ng|O;'Ϯ.dʙe_zJ𡬨LA.AI7ABG(ƮhW
6(鰝ʧ~IV FAMtLND{Qr0Yu,T[[YM|opJImyp>3%	sunDC>!Re-Bd6ˆ*bGd&%-5P8"?S8ި*Uch$bpyid0 3\L&VA<ǆy⢉RWAL N_+P?G24	˽hL}A"MMV$T"yu6K
VMpd8K&*q4N8{jvM x蠊:rzJ/I.H|x"aV6zvt>x:aͧKki`ZG^2.7T_2LwXFH57B9pR|io`?L=2xhviPCXxte9ٍ_1}	ŹYd48Rg#c_A4T='XɥPMӨXxG	MNj!|5PRuKZ|	v9$nR-V"5/i
V$wI+-j6/'νƹ@lL,7=܋Oz_n:{/??;op:I4JISќT:BKȞC,~y ^/W/߮ݯB}`e|\akansՖoY {TӭpW85H5DB79Dx ;S&3{V,?9}r<_b@`a'v6j	7Y@C>2ԮJu]b2ʍ/7zK<"[-9)8	.k4m'ZtWҗ\n=}bW	H`xr^h@h8|gU<j5>mtɚcĘ;3|bpx
؝1A73e	FT-W#c[ r8HOq^FQ%is0kZ! /H:KO{t=,|-roOAi9l+Z ԑ+1G#ŝj;jIY0OAAW-p_造V2	NotMv9!@`%nQIQ~&=196uMjhWx0\ږ(hŔΣO+fx{d#H6dEcF._{_B,x
0{OM@PDJeإux[!|m<쪈hF5(V(byT.	2y?'m{T .B9]ٳ<r,xiXQ!Jh)C/hS;hu{i=e`B䘥b2~h̐j<x;ʺ+ 
xke]<A=>(3db
/Y쓟

8'$%&gE`}'
 xN>y@@0|3L̗H,*.+.)O)MNMQR22TҙQLZKjb ;#xke4A=>(3db
/Y쓟

8'$%&gE`}'
 xN>y@@0|3(q) A-W, :+^
xke<Aӱ8$1%eb2_$|~@Qj`ijQ%P"C%:!q+JMuO DRKsJSK+  =jjx[<qB?3W, ixĘ0!+ Uxy-x`ijQepe^rPjqiNLdTlX	 4xXMo8WKrSvmXN0hʤJRq}g[h/ ?of<һ8|*pחM6\ߋ#{z#
s6,_L6BI^9-TS*`Ͷ p!$""["3$6uTVO3ܐ[rťml< {JzYFA8tVfK!4:TĖ5cPJs@oB`Tb7Ls2cX"z~ $t0dc0?y0a2d<do?`<ǈ9!M^f0!Q%$H$"B`++uϵD z-e db-,n_tPw"yتVE#Mnkꫥ<V"FDJÄK@8xda(Ye$J4)_TKLWFT-z,l8<s'-	#d5SP3Lo1K6Ќ*ؚn>y)2a^wG_4l~B$&7Ѥ7g/ҳ(.QV`b:QZmνl"ʳ zX${6A<;Rnㆵ%ۚ3(*K2+WG\?6]e7?/h%7J[2-|ҕmmM
E,DQ1%gXN$nn킢n)ɸYK(*^JEYјW&R?mB P|Eύ죽݁zҋ0AXDXH&)VuJЕ;m16`3΅UȼÉ5y$Y	pvv7_JWܨo-e.kO]=Q9WQARZn9b?(A2+iUGTM
hn7I:atGY!kI"7NdA#\zCEd.ifj;<W22QnOXD8YnXŻ6ѝ&a?RC`8L6
TݝJ85)w4zо?$b"ڲ%OOt2N4ENtlhP?eVcx[\]FJ+ZNv\_Y>qoXTolwGǵIc-V2])7>'K)%Vy[l)5O}y5mŲ08̴ׂE]4"-ϕʆGwJ,Cݸ"A_h>ve7<_S?1۷]5W;:^/Y,<xJ@ơzu(Z0A<l	\awPy _g={D*Ieaof}|lp4vong쎆Kc@G&Kk!B!K-BYYPNGۂv؟WvdTsƓ!Loν.<dQZ4+223'Zm4\&UA&KE R0	7
f~%	_l\$IE5(ꏆDLz͗`qBp2#5AmF8=3ck*u͉q?fh*(8򷝽8vڦkH=)xFy%ɟYMv㊚ĮGqd7^\j8e+g敤)$(dq)hMМuB~?Q2KbոYiws F. x[Ny
fĒ͛ 
lx[koF_1H-ٶ.JVQN0"Gd{8|ȱ]`M$rܹh8٦bO%*FR܆6ȃ=7Q&VDHYp'H0i瘽G~zM$q|ˢ8gE&@#<\	&|,U#l	GSl|4Y:ǂd"92ϓ_6MK;q8ZdGEo^tDTU)<2)oX2H11I<,,OYWdprHGYc}{؟\n&cw<'Fcv1^'޲?<`n]	fHJ [}9,~8}-Z|!"iD0#f`0 V:y.*hoh_A/ҸH ""q4E+_HĄd[8Ҝ4! ByJ'!N^UNP/^NiMDg)W|s!a+/3 O==_[nfޙFN+m\/ Y
mgY"V:y8Ij:]t	ɧj9#hht'"U
(_~a{Xey,I6:.~سg}`BIk\VV)>%"Wu b\Ut,]`$?4Xh	C2}ɼXAQ#wsq<;5O5!3R~-M d Ɖ.4Gciwj%Qֽ7~<Reo]㓝ĤX::kK`迲w%E>DYT$8DȰ
:[*pL#!wÀp1c~xHifE)\m',eg|

;V\*om(&Sz4H+r&RF!"`Qbػ(N|<|f)jNyĲͰtzNV,#5yHW۷8ݷ2TM@#D Cj0~dú{1kÅ2J9T Obye JY -ukԍ1F("@*%<2Wp0@,rf( :
nrX\(^ŋ-
yH`v !xڋu"(-kjzSRo
t  hUY`2Ҩᇤ28 _s(JG# s/&Ihh>(Mh[;1<mRȷNAIUkx2(^r~*3$D6BP!"j̷"E[p[foQJ8陷#C8*a*M`g$G+JJH	`SBfV8|}+
I
p ܐNgp@i:迅wP@nd$NZTtm^{kk^wB"aXEZOm2p6"G#dSPUige.	'xr@EQUa}&!	V.5/ΎaN# GUZkBf
?=GH,yP!M@\Hӕ"Pyw5}썧T	)<jI̠\9ryY l?GR@(aЌsCA=>pd?xaG]鳐G-HteWS\/RQ4QN!<xriH: Ԁ7>[|?#Wѓ4!
x8ov)DNbj8җ퐊77,Iw쎎
~GxG?M>48(5>֌,\=I ֍CyHeofd<!Tu4/e7IuJۊ+&| r
M,XDeR:SK*,9PauhtQt1	;6kmAƐHP5غ,Se$dSqY݁w/QZP^rA4|*;%Gqh㣙γQV/:x
-WgyxUNolzg[E;kWq"G=HS֠%βeӢVWAȕł<L
q+ s	(oP7q=<밡ͰHXQȤ<*Q}rN~gmk4^挺omx׺&E1Cm10=@e+_nΣXU=ˀG7 3^ZauoPsPQ	T/*+|~?2vnHA?҇P&rќ$dAy}PTIFU]Lc_v)@v*:sN4TF*G,,H%<@Tm䎲^rlSxHYrb(N#>"EnOLt&af=[SKa6۽\%l,sgɜ:_+gumk"a0`0%;:zyzUebߓ.-{:}zy~3j;TkK1%p*mzjO	T? Ӓx!p&>
tYV}[e裞XX]I}WHfB /BJwWjLd,d"$KPD]4,-æ>FY`^@on$?ʈ8#^&П`s3jrlQz6{-j,[:RZ$}嚴:Sr]ѰT;,mlԈGiȨ̳SHL;vsYuew#>{FFn(_K:{8U0gmXaNi_s?
ϻ|ɸk<`vl%9o+:'pk+πʨNnJ򿇈r"@G@295o*Q!iYl=?0[0,C%u@zzԫ;P`E?6<"Q5s>
6^!C7`z	¼ 4Z $2S[Uz3.(yKܣA˺y1n*Ahy]UĚ6b U*Ӭi'B-ۗ}N:.J]l{QvBؐ¢rr2m|2PYWfHJUp61pD9.9T<"?7ШoZ]1$頾qom5ٔ&qqg0A))POWuBB!GK;L]ŒOn6Uү@ &d{< kJj,u-juRQZ)q-UN4ȶ#ZAM/JMiI7	O ͐Rftv[׸A`}uqN0"$L, j $#gOP+8	Zm=@5 rg9)%|dP/.zH%DsNzMФ_1%#d18EUULԮ	u6QAT[khjY/٫nDb(?Fۂ\4Efq&AkLfEno՞ [XJNjj\@6s0B*ԨLֹw2D&$Rj19$*A:~D2ُQ.ұ1/<\f}Z
rH\TZ4ʏ
PFN[ycӧ)ځ[GZ%QDxKHq	 }b)WNk7Q}T݇u_d;U妐Ҕ6qkzmե4*Q%P61c[4Ֆ>ܛ_)` "Qˏ' $xN jcy
ohlocationnclude <cstdint>K~&	8#w?# &54EL]x}JAEIg$) `Ceu?@4B:N3lR`g
[TB:A	ݍ|pFoFwKhr	aXm8S\Z* HNJB)f>ؘ(,/1,./&xY@tHp9;^>&B	ϱ:xV}(yk}|wj˅۬4T҂e4hFp9İDkg>_Z1j5=a~o5y?7Ә\wJ慝fϭ-_V*q.S^ކPb!9xP̓X 
	xR j0	JiE%y%E)ɩ)JV
J&J:y Qx̴Ēxbdk^bRP;X_-W, %iTxʚh<Q xVmo9|9t.HHU9\O5^/7~ 	[E
Ǟgyfv%`tɕ	&3stJ~tB拥7[8=9 0}CGod9T2g̒A+m{XۏZU5He*Ksm3V2*1lY:Oȟ-f[|	1şql"PGJ/bc*Azq9_vy5%h@ĕtJ]hkFY݆R͆j4*s@]0}H 1cq:nct_{$.F~:IGC]Ao~IbB(*2̦c,9ZqYyEE
$1.(^JD?H7Ըɝ0&6gdJnϼa@
&^)Yh<^sD
(j%'uBXf@+U1+2~^i6rUwtl^Q^];V+9w'hX%bm
V6~$].	o1YnVȑ10um 3.I8
=\[v	eq9Fj,)Sa294Ҟ3iDZ=xیY펈Ė#e@Oh5._^UvV5>S?ZUElN+a>qr-<+7p-	UxUbdm{fv53HrKbHp@}ف ڡQ۳S)"iNjSǫ{.3Q,~owc%lP;^E`)3@!,>~:~Rg<m=Yy.ES7\t;Oe7^c\qgkcB41`_)z4F>Ǘ>{1mU@+,9lXY7CWʿ P?M_t	[dt؆mMia$X56|&i_>]e;I|@U5fx$ޭ!IOkr#ܓϦ|w۞}/xڿ-׳9qd&
X;; 5/5h8sg|UNJst3RSRǩ6y++&Per*Jcfx#B1<FDaqE")D;[е3	 {.7x$Qt#D5f^.މ@7 H$0YL1z2Ngt
H$I,?iյQ6yiE%y@! O,NNdV
s2+s2KrFa&&wY	#tuOdQRR(H,ɰU,jX39CTi랧vO+NUҷfCfa(a(ч8I&uVI6䍬8'`6s)I-*VH/RHڑYR~Oe
)E
`2S0Rt0L.'_jB^iN'rJ:GE)E%,jN)y$BmFeFjӏ8UR{<Q	
J
)ɶJ`d5&'r+aQШ.I+ iL)q裦C .L|xV!53$ylPloM~& 7o
 b%fx(+2Am#(׉&>e,h
$='dto*&Bj\\v\\6yiE%yv\
@`X\Ƭ"
Kd&WdMl4d 6y1^W֡bǅ.6k 0+<yj@$edTd&*x&)x%d(Ma7.,J/H,*--KɎ13sJSRssR2&bˇ1MIͱi9@\Zrs~AeQfzF	VsH_!%8V	a`.03&(w<;9d'_6SefNA.N P1*å0y=$qe #AxSˊ@+fo;qfDB.n?Buuf._II@0tԩSsH8DヺGA(SF>[J֕SNhD
UfM*vDN3=1'%3V*߁oW9	(O  |`z#{,WMqre*cl}Z<bi\*CI,h )6oT2˪9^L]lU3y{i3ym6HKSRLZaƺb
n8}v	P<meѱdq_B_%vfOMvW֭:3!6oyXphK$4C.\kKe݈P(s'snVdHo'A<q`Kr/~Y|)Ux}R=A6_PLbtF&nQ]3[5T2,	Ŧzg.s{z]LxޫW;oNtI#?,qLd 5!Dj+HZ q1-ґbdu*lB-
uL0Ƣy9_C8u(qTF|T4*+"/+Kpl&ЮEOD k6L>BQ${	!ڠTQY 5"c16#Lv[F)dgw̯/^zqsqzs|3{Te]-Pc;Ch4K(WIh)Qg+]_9˴߆Sܞt>n}:{y2.e?f{||	U.ŁP?"gP3h/bxTnF+x 	t]MJAA8#r`0mKqV)/˩/E"/)dVh$Qh.lι3YR;O_/#k&q[QԬ%SEyPoXM31EhkxnvM
0UʶW=# 1D9/w=jfQzIAUvm~$&=bw보8{䲛oذi-i[iuziΆl.3Jp.K2Jmwlx|=WoaW&}ُm\?^Þ=`4:MOH,ٓ$kgzoK9{VOzY/Sk|Jma<Y&(EYYYQ}D +Tsg($]D<ХA<d5\!FpH)z 	VζxZ	 AGjzH_:%R!1 {.P̚W	Z!_<ęy&_N`h/$s\:b[(Ӏ",\hVGU2 ۞~S'ń {=gU Z	;|VmPnqhb?frB0QQR!32BpUM0E"v,Z@瀚"SJw{y/w9ul2;XOys[xr)Xw]S5md+o=_dyZ;QZ!l&?si!K{Mx(w^}F=@($\dGlb.n2~ĩ"7`Ktw.^x[gC.XMne] bx[9a=̓[YS =x[=AY1Sab=깔B/i~t.h)+uljD'ŧf(ڮ_XW鮟WZ_YQRRPlh	Yҧ|A#90K2s3Iud	V8=Zl]@'#$?>1%<[2irMa	 x4 'C API %文件。

## 目录

```
lU$SܶxQo6) {)Pb:K$#Oqb}GUM쭕0"~xueE0Wp{sm5V@{*	X@k
@I~C5p<`J졳-4c	ڀB8:m@Z~Ta'QI2-wv8@W7Yv<SًM/jݭd_jށtGɜUփ,=l{)쁎#{)t ΊU|
pd._.f>,fGX=l6Ö~#l\*G,R2bp;3EPpA+˔,Jp:7:,`/n4IWT:q@idYleCZ\fYOQK~ D\mɵ$l~.3qWl6ZEEo"8e"t}%EF(n\ךht+onJJb%;yJ+NP1އ#j(pB>ӷWxliHdE<sʳ!\^	֓e74
f,Jm e=N2sd/*9Xm0"ihQi8%DU']cc%_)Qc)U7kC<d-AԶ37|Ǜǟ4}8	qf6jҩ0	Γ\U6JV%/auw2-B$jQjtЩ=;3=?cuoƗ^Rv'ߜ٪:]OS<wx, [{$ "4ݓ8#G{N?f[Rx2x}AK0Y+z`+ҍކxqWADBڦmX4Q!$a0~Ke?3l-J	4$?͚}RrZ0Q,b ei22*p ;<{/y]*	ΈhCzNNɱg#Њ	p%R(˹^޸D欛SJ"rlv4*	ֹ+, cП8-\NYJ.D@kǽw&l5F"qAԽT=1A?n?#Vx[&2{B.ƼߌE%JI9)y) ɅP_XY\RTZXRXZZƅ hx|FjbJhQD!THnf}e"l)/*<y#H=h|jQQ|r~J^B,W-cr2*5(i*Tu䗖%**`Z	&uJ&lj._x@}uv&E^&a,4SԆP*ԇ
9=1 [X D+ͯnx[&sB.<A&Ԣļ"%Mj.ҒҒT[%T52I0UMʤ̔;
dffMҢ̒J=g̴ĒT_.KfԲd>5X?9heIfYj|bA^)

J|(./-JN-/bMf^rNiJ*.W`JTBcj ojv;x[&2SDY9(3=DA#YSpH$<A&l%Mj.ҒҒT[%LLUz2)&aRa6T̬)\ZYRs/JlɬRXY6' S/CIhdقĢ\1CϬahrs#hd0qFidђʂT5\\ `;x[&_DY9(3=DA#YSdH$<A&̼ҒԒ%Mj.P|^bnsyQE2)3MfbR,NN-*LN-q+U_=ْY^OI;2;>9?(?''(>9 S/CI%ZKJ3J2V8(>3/-hED,(,K,Iz07>1/h%%e)9izkJM,i+,H*h?>72_S^_MN`&@(ȱ'_ 5b1*0 (
,
R%U h-`!%xJ@E1IZIHH$bc2ɸM̬2_X~`o΂dbw.q;|ռ\d/I2X(`ʙ4(c1|}+ qzzlo!A]ьr\d/'^jbw*a3~F%j^1-K	+Z1!nisLgw׼&`QL;2F&Lt%Ahytb恱ʊܘaߘxhnKY-#KiAuiEQ?ݣo_gx[ιs2 x[?C	̆@,16,&	)X̀Xv(N`ҒYݙ m]x[Ŀado6lzlc`\j 	 xVQo8~WTJrwZ5ڃ[Sd6sC	hw)
3xe.a"Zmjz|KV!)xd0IfJ"xծ*ͥz֠.u뢖%!װ>XbgWܤ.NkȜцFcC`LFUU<j;S='E0"֠+"*fk
UHkFZЕ↋ ܘ)nҜhH̏H5&]ICj-BrbrA[|[1 b
eLn&	l c1QےmrJ#(P\۬jX7ϹaMe:ѥS%[%BPȺ7kqlka=Ď+)r޽X+	j{1u3hS`LO#bU5qC'o1<oi'p{a&kg)}WۅI$bƨazJ@Jhei  /3ï0_+jXxn-7Z9TP%
<pyU4\x>M"ϖ0XQY'CeIw.P$|M#ԅq"4hأ3{\lנʦ4pՔ~[ϒdD	FfeχYMѿN(QF6JήN |C]}zoOpY>+ȟ۹d)P:eލaQ0G?}zDbSO)a,(^TMF]Sx}4mIkDPXN%6Z[k\9UgtL;=nu%ZmU;RxreU~UΧBݙBV);@.3qV&]@!ۍwfA:H)!bpuG?:"K w2gMB3hjwqhn~P7x/k8D(Fŕߖ0Ngћhrs)F\
Z
eEřy
z@>d6>gpOg d}X'+l`ڝ]WU95/%3 w"ȻxWm8bD? 
תZ
eWSd&vj;\f'ȶ{vĞ3<3He{-.79qcqv7rsva?J>pmpmKN\U)ۃTrч0	~̂4KxN؍;{q0>yjinghӪŭ~6fݮARl5wh2O"hot+nh5^e*bK(l9YEwZX!=0jewLsrcX"F^߀1	y^Q1X]l6.g0Ep=ŧ0~t9.&/28JL#&9[sX-#TʪA1ID*,Y\tbuL^8jUVyZ,&_]{ȭJ\oōV[sG9Ӻ	p!6XX1*GFz9ļ|tTӫĊ_x8ۘoy2/0{8|my%KEo#q5O-tm0ND,5{aɷCHGK}LP6"V+p>	/qe1heфYDB;ΝFYwQ]<2ocUyds]d ՉPns
OY
C2DLe䄐)!-_'r<V.-tSv'<K-c%	OcS9_.CK6|bs)Gt=@LQl7'E#ĥ|4E_Ts;Cy쁊KzPqՆ<}mX
Qv}mƨU:>;VߌYUJQ8 5k&9A͕$ZrȴoXtq"=U5nm擰gzu\UVK-cW2vDZN2{а9$]uX\+V_ F͌QpJsDi@ʷ`t'$\W~lߟm0>ӿ 
2g+|HKyiSQ.ĞcAXx׎s"a>|6cjh2߃(ԩ"+N[dʓ~9IOlv=_p6|?YLfBfTe7"Ϙs5v=MFk7WLH'F8b>^/׷ӱCbݨ(Χʊi9Oُs2̂~(#iɌ<E܆pCM;!:3CT.F2z퇕sM3qDTىD,&V<U8z	ph|).sd-^*jzƆS6s,*|p9K
p%P(R՞Psbj=uʶCǴۧ??h\T`dPb!a54حj˫e{ v}!xʢlK[>ʺAUOM9\?82n:L87LC"[2F!:JeKAc,Ȯ@ xj1[Q^eYJtW\*e"bN Iv=md3N+JuO/?ۍ"LI~g0}L)j<"p+Wh!%7p>[rj6=G!5olGj\WKsW"B"o<Jji+invy.{e5[MkalA4a *rfs0U6oW4v9`sr(jd1c-xVlK:iIxs*i q\$"9h°6t2C2?e(;{O fD%Ow`(

1+K8
NdWg}5INP|Q]`'j%*xO'yWfz2lƟV27~xJ@Ճ-"g$zR{PհM&fczEyJd6J
B7;~nxȄ|ʭDv"f'rfa՚+Ӻȗt)Ce^ pP&LM ZՅ|;*I|\a fݤ0V`HH|]:DND@q6&unqQ~.4
27}"h <RJ+icb^F;<D--?ȈiLyW\oSh448)Yo昰UcwKXJ20yj/~kT u1hWzf$!D'lߞA;s?gN6-Xah\1	x;tUn8D(Fŕߖ0Nghrs+bF\
Z
eEřy
z@02ϒ̼̒Ĝ̪̼\;?M$#U!2/173Y8,39Uh̼Tu¬X&+NK)ԛMiy|⒢⢲Ēj. (+16rsS7kq0	b8}s95#<FT?㛌E*œeRNKL ix.]xRIjj|JjZf^j^H8V E	jl6x*wEn8f	[n Q MxeJ@EP\]Tt-%E,MQs&`:Sf&-Dl\
~;_b#B6Uy~w{uT\Z_8{_xФт#tBs:&TA0ç ZfԫK5!/!yj\,%_3F@srBq9`np80"R`).q@%X9?	"5ȳ-
9 -k[)tr&,N>g	M?<8@8~ٱ{Y-ƒQnxFmӣ
h:)s?&xMk1i-T]*/.JE.Ud"bd'I$B/!rŞ=	G'133L+<oOْBs0Wdd|0%OK|>Y\ٱsDiV9sP,Fڃ5Ȥ6YZh!i\TTGhalF4{+DE!Mm<|
F"-fj=T2ڕ]X.7:-5k#U;
9?KPU	S#Z^'`L
EA<ZׄPEFr.p߻V=*mAJ\*CǬ}4$P	neV#3YF5/qWiYx0zIwyKpSaRnnW_V*xUjA*h>( rmhI 6PR١2;6?X
;I-ۧH,d{ν1Κ?c&n5ؓXac $q©pa^$X;?(X<lklic49iPqhYά֢ǾRc^bkwsg<"箿TB"i
3ԝ	"Zuցj7hiӟse
F!@݈B2G%Z&WZot~x޵IWփmzVfu_IN3bg.׵
ۆKD7
V&H`PomV2}<C$4'(+AREDƕ\Hdx3ОLf<fefn埚lkt./fefM{yh+fFWʤ#LLej¬zFt@c<+xCO'44`xwj ?'~ء58KUk꙰D]0탾$G܏Il.bnxݕ1o@EADr` ^M%*"Fj 	uܝ[%_`eC :0'aBٍIR=6RV7׫kZ~ܴ׭y= }z5uDKt	lrׂA- 6<-Y\d@߉qt!wϓWti ݊5OǏ\5h'~tzsjI3*偙p҃(.:DjKnU-%
j/
뎺X$2m
p[BKB[Y"֩<lol-w*zl_@Y P_
-̰2&ыB<r$xV{I,IEbSͲqX9 pĸ8*	nݠ?f"E+7}\w\ܸn'C		*Yq[;zN"efܱM83W+~F;$hu0/D<#\!lQ.l}bVZk:fBs4C.:&ts%	%wi闄BuL{8vǲKo{עî'op8Χ˂'8eH6aSҙey	m'#a.uo;k!lxeJ1
RE@/v)[T"7Oqw3II-{||Gg׮
a`QA.&D*J|li=,t	=-80B'4DБjX>ihEZl:.ąה*N3%-iVJ-C2RJqnp8]Q$TӦ
jfNNVE^dmTXptonCSIf.l6&E?9f"aʆ/h99}$T[9qzs4PylT7ۼ\Nx"kCj@GKcHHPrJjZf^L%E)%%Ez\
Z@TP_ZP R_Z⨐[S;sA=ԊW`߀xd=}\\53DAC0T`xO<bx8{8+TUP	t0PjSR2 snA!xk1iJ<ȃBiekQRm\*e"c$$i9gO/0mQJa /}dqg]
Qx8$ǧodL^$!*5^ykg)zÏV:3P'³7suO9j)ˑI!72YCA"f~F4ލN8mࠓX۬ꈾ*-ͨ找" *8jE0)Q(/+&i,SA>!ծQ1c-0dnj<6:W3lJxs*RZ7W,w7v1q$9h灥Bׇ::3C 0[[IjAu&o
Ct܇T:YƉ29H~el/,-*.pyê}c&#2;#kƝB_=	xkAǱ
$ <[)Zb) 6THJq6;4]fgF=y^
<ox٤jaogfkjl1=i:_|)[e0+З
n䡥`a<m+A;--чu@R>0N.DUGiC>:tkG\.ļc7S7Pgŋ/:&wJ.xl<ㆺ3B`+@u c
!%ڲbie^ $6B7b2٥ѝsREm%/jI_KKӥӮ>TmH専V#ePQ݄deXolyoյ8B|\V$b\fpCt}'搛I EqE6.<WG6m?>G*Ӆάv ٬qރN፞Fwg2	3C'mu{G4n',ygL
;Mic1w%nZG{04^B3)Ǜ
vhBMI2r]*L'DFq>fE$oUa'|EùmxݕkAi=(UˋRCA#l:}K7;lj􏘃z<_AO^gv5٦^<}~||rSgrY'ږmoX.z4@8x],E{mNуg= 6<,D.@2 ax݈yUHԩX4pE(KD;ѣgUOϜr[		']"B=pC$;V0PQM]eB꾣>..0VQC⒐8VەGjQ/./, P_g{LK-2&ѫ%B<r$X|=@ :K b8YlY6 @݇1q8uyhI@aNF7nF}> N=/_3LBW&r󆝘0=SK		UU?.]gz,"Kp6ጷPwe2Cj/#CIOC\!MEЏjYilPS[1*G?R`B֒Pr&yI(\Ǵkw-k8O`X=糣peteH6QSҙem'#a.uoKHb3xSMkQņvJ@)見[EC*Ғ*m ٴb*
"̝{}T,;fʐnw=sqjhnaݗ=}cݠcB\en^=tH\!NoBg4@@"EU+{a4azr
"LDHPZH.ttȇzYv^(JFrx}[Q^//	'([%5	#HTk-LY͆!wz _z7A]Ϸ$aYy)BOPXR]se4}{Ǐ1ϤY|E\؝jbu&2b,'0bgܤwz<AoV,8)uqP("Wq{%ϥ	gZSΠ±nwl&hvcU5JOYvR8=1'xmRMKQbqqm4("J`@\)ݽ$wh)nݹ/{3eH{ν7_W/݌fO:}:OCL#?gV}(qz`8}4<>$RY7h"I,0˻Zd$	JH$>D1yu8THovL^ep%wVH9onnjӬzih+MW/}-
F2	dKwb*Ť""aWfJKמ쉮 GmocVf]b+bwkMVk~ߤQfS=Va<θIbNAMIFJuvq}<H:GioSȴk}[PX79u:%L;wQX2Y
x\moF_ váȊulCR$W"$!ݦKnfwIM%Yn@ܗyW#}ȧ3I!i?kO^q͹͠q\JK_?b}DԆ̗&yxb>=91=$qĠ	waw6$>-3ՏiEiCXBq
xd*(''T{,鉫KF'njd6u."O1A_ di(m%M!fɐ[̙, Q<I\tay~;";Ajt^G+xzE:WW/vјL8d,'Dh|mP͟tTYF$`#5lTW%|_&d;aܹ_<g'G/H1Ec0:oVu!=C{̗ZVj߄b1 uOl]
؞iڋ`O4(O<*lURErԼ0Qu6gPD#[mmD}1AgcY^T%9( ##%
ixO:#h;3ZA Ms_%&/[k#(9:+. c;p;`wEt2ᓃy0,
c%OqWoެ`;h&56浊!+KCbJܜ1u Z纳<5}@CAAAمpXil3P52Jrɺni4<o򼍿wVpb _|eTnbT*gA􁎭{Y ]i`rL@*9
̟B*r!fҕfFɋ[|--!;l	L44|KŸccP"**T,`@`0K-n3́1
mecxWvLufBz&d&h,ɑֲIAʲݺԵ>a	Xqy-^/v%_dTLM`gC`g^Ġe6nfJwrd$DsFY7"GF~Dר4|C	ג!q.B0c37R?I+BMLN)՟P$2`r=qnE\6_AlKMi2Cqkrc	X$ïk}C"l$9-E-Ko-z0l6ϓ3*L.*eldY٬)Sh+R&3*wYB2z4clՈO˜@qFvaΊ>28d/ôw
Q>!=(Cl1,|
*r2$/E2<#l4
֫	7=V7@1_FoasE,X.!%T7gs"wapb8x4?"Wz\9gIrKbw6D*j	{al9Ijs;Bcz_3wԭ%>'N1ĸR[&,avW6	b\C*c]b[&2ִdhnҦ6! IqC`¥Zj)Cr A< *#HLE"vSzvf~_N 5_˄ jW׌(d.Yb̕Qff|.:9VQ^zAlmh
 PyV%N7%@cIz(PnLIAN
$3grF>39?ϯ>Xf|r\DMv"hfM?bz[!itZawh|
ZT3fѢPQL&8S1Ҡ`j:ھ@N
ajW0N%9VC_u\Nd3uњL}OdZ5^LU}V?gY h򟘼Ab?Qe5!
sA)܎GM=`}{|F5f]Pxk)6n*+cԨuE/qz
8ޗwC7dHHƣe<h.3N=MVcH7F[Ѕ.C\_g+ ]oMqnRZpi8+6K0oY0Wr$*4*[\'BŜ'#iC@Ԁn#/qhXNf҅
 pr7_V99ZiBAy&<V̱bZ{ikE걝<)&ӌԜ_l0 ~ bLXPc[,1W0+6Uf$ HZ]WrogGй1h?<BĶ7aEa7frSL-Y;Tuw'I0K'S2GSWӎ)\k0k@Qgͷw̞/xz'h15zwy9:oz mJ37>(1w-.{/D&)pR9Ռ&g0o( H6LU;f|տkJHŸ4dT&vA\V<FN*!{Ąa.s]`7>/=L,P菊0RoMa@G`x,_םmgÅKj؄/1	;`̭?Z}PLmSγ_tw&WMWj8Ha|\`nB]%Nlj<tkWo2wZB^wAl2vqF?u]nI_aKN2aOv>. Yq/Kd2>|B<^R׹#mxUw_[/@`<9%6޲ \t%ވ/fcE1r %O6y<<Cb8H]!Dea>*.f285b,[#PuGj3>t6kh|W0a=R~tpW}7$Gx}1(RaDۀX=S}9+1w]̍f/Y1)tE9h˯@br:+TKBDV\8-ԢG&l{>Bo`nlx`ɵH}(`˲%ݒ<1_9vߚ]N6OL.۷ҭׯ`童B8>UN̗EU<~Wl	ZejB?^]2b@\kF<ֻ*5&Hkoo-p4w*2	x	⌦%u&Wn|]8y"w&#]哙X,@(&A,NZZ\
Z
IEi
.iy
%
y)9
%
EEũy%y

I
y%Ez@`3SXdꭹjBZ~[bqo~JiNboiNIfANfrbIf~&V;@MZS
4(~"]L'U@뫐_Z/p02m~ػ vY7r
D'lmqg$'ėWƾYH`"DRi5eR .S *J1JJzԌU@A"vmީ8hD72'GhMV+<o95K`FVk+uaL=i(sr5z.&
`̛Wa+a̓`zS6Uv37[;y৳DDf9SagLgosf	r)dC-0 P,nxq,X} &91x]JATAkZlY˘;%hcm'	8Bpq}~}d_e^LiqMm}>&io`S6dSFh;Xϕ2qxQXh4vg@XL"6Ńs+h״TK=,j0cV3(%MJ_>LW~E7C1Q8;J%rNn>\^fX+xTkA-RكJQI)CAmBrQbD){0}Iemrݓg+^7M`my}37O]Ƃ~=٣ĻHHW덵˚BFb|R[͏/{Zz9!pH0L5:\
L55fH MбeP,*Fm!٫݆2f # Ie(ҭw[kƕ`NO¾nB}F5m[׭Cz	)_mTvel6e׊Tv^VŸ<$gגD#wv4  Hu<dцx)07]Dg\R%?+@X(3USpF8XiM5${y"ke!RJ[.T
Hu)ŵJj2oMe""WlSqUgX5?ۖl&x;q\>,%)I9zv\ʙy9)
J%)iyzJX HYdxŔn@! 	Do#zIB\A"
T6I"5qOi\-n<xNU7ڗjuG =lQ{pKlB!C.QbE@	vA8w3&%
ELJL_f{%!H1L& ZH:9/bQ1!@SURPl99J~q;.Ev>OeX3K * qY@iYA%!
<"v
zϧOhCgCZk}G0rǰ1Y^)}VU^WirgI\En|[ټ(\g!V&Hm<-8au9Zgg\j?oI|EW_CKY@8GoBq˂!oq;:_yFA(#>ܚyYQ	pH'rebqzp3yzwֹb/ZTjf: qYx]=KA"Vc`oXssw{;!ZZ?G\!A}xxy]?T4L<ͦ<%{CQ6id{<

w縐}s_OjZ'**km(,Id~{vy +p5-!FAFL`.URwIQTWdѿi.PsH^ wHu'KfZSxAkAiKR 6VK/Jh=;Lv_df}[/e <+~?MJ(3o/+?}	o	-^鈓{J#T|\^ٰR#t_vȮIx
)~}?xkeQbQyM$s׍cP,X&V2zNgEdMK
ek*-M/M0@a0#T/rwܟ{q=Ǆ(Dz4<T߄ٜ3:njUJM#&yoKRQ椔W/; P͹Gw=l
4 &wƛnϐ8?$Vnz +CƏƢ./$6 }GqM(p[P1piJCֆ͍>g/D+r<آs-+M'>Kt*sl2.kܨq~>ZxV]o6}p^lOkQDUDhjhL$e(w/)+nl$Hs=<dW0PVB'׿m6\EqAw6;PɜkKA2g;F(	׽Сz}BlU+,Tca`.
>!!SLbK`|ce%>Vgimklz)~Ep?!,1JhwV"i648gaha\t0)L.bV#X$Ih1Dq~(RQr;&1LQ1'0QG'x]H
 2o`L31&[pX5+0T s
S̺uQ~u!834M0'a|
NWV-JH8Ote7L:4YE k\qi/#?h97`xVaf'l	̀4LoKˇ7;4ԼbŪ5$X
#H/ú9/
AhprfJ󔕢<aWd9($D"|Ow`
1LoaNXuk2n5ؑ 5&٢"[b`EB{І.s1i16½O7z>[<$AιN[v[rBP	iNO*ܺ8''L`lIo3
i,Y.e4[e|EH/K\]^a;׼_+iR[+">PpSvq@MCkvWDwAK$(zOuw2[i-fHIo(4-JA~}UN;9,nkd/
k^(ê'(m=^(TN][N"ܹ,H֬Y;;j.OPM4C(*$iU ihhLwl<.3N.\I4Ƕ1^>ĳ2-Ue>O!vG'4ӔvY	|N'$}:'t4<Dx(|(vāCQeY\TPcd'x> [~ZEn8m):ݽ	~3,+O>ލ}3]zPh]lP(ǂ=;bb	{QgZ\uuEDr>*jż7*n8]{pNpQg< b5A(tbp54T=?pTwx&wW?ps&
C`}?\sig	}S;sw@+QQ+=)x-C~8D(Fŕ_2Nhl,LF,'W8N0;~PjAQjqj^IBIFBFb^JNBZ~BBHQiqIjcAANfrbIf~dYVq>#.-}.Դ̼X$&cnƺh3Gf A|쌂\ʩy)i\ZZ
@C 9lQx-K~:f $̾x]ks6_I8ױ$;M6MD[ےFd;-A67x;/ &MךEsP/_<A/P/^%uvfQ{}o&{4))R<Gh]c]3E8I8B}Oy qo*CQM	FEuz6̮i?cėY@`M-DBdse|y{{P咑/Oݞ3Ӽyi0!C05.		
LM,vQ/  3,	/7$E2rH-Ӯ\)z\Ww:Oѯɤ;Fɷ#~D'0^'0fL,\32j\at$"#Bk WadHtɓ/$	,JM1&e:F݄Ip=GݱKG1NpSن͈Z/%)8^	O4Kq&Y h9xlHC<|j>(uw-edWI&:fXa7m
H-He$whإ_?$pR"Uݑz|OT,\{''Hia4fuB!HM^U3zI9#?<<\|OOm1D.^^lu>0B;;7q8G/?/2mˬjBZ*ޅ`rfiu_ ĳ{ݩGiHϫ:g՟x]pX`",4zEL#W?\,B /+b;s́*#*ё?	j:H&CfI·SQ{q
wdstM<vi!&ļQQnQ/\@I(cg҅Ic"Een37
uʦ]ܒZ-N3s{xSoz"K4F>9Ӊ2yUdby;=88w'SLkCov|y9˫L׫j;綼O"`int,IIQ-2==&.y=uF/Z;p4U di)x=;^YikixӉi:֑<3WQ>>"E"@Jco2>yUya*2/
ul:zq;32EHƔI_OԒoO<&=X10N ;VI
(UXE)HX%J(JM*Q(*=Xq˿hY_5	?;Uޠ۪T2p)xh;_5&t"A=tu3N>>lA 	:<ZK쩡%k;VUK@H({S]˸L[fu֭2NUZ:h_g*-?l6tjR<TR? )QWڊ2'jV9|!V9|V9|V9
o
ç0}OL(AщiiPj`#nv 
ف{NoL5dY-lQ]LD1)*|-oԑt[ H@2JC	;BP	$ 35h(Au4&&ՕXmˠ?
c@ӕ(VUhMUUh:AbUNCNXר@عeچmj	F>	}wxl' gkm 3رTgk[tClp3:܁`RP[o4$^lHf#*xD&]6(~J139[o,5vwlqucݱr	rV*-Ok`*&M25lؤ_`iؤ?	Ҥ?	`}	`&KAhiQ^n:Sǳ6KT2mCm|☐^jSwv`߮+x|@ǃG<\ikمҀw+/j?R9;zj63gk_3<ʋ:P7!Aq5ҡ)/CR=
QI`$gHy#-?5N?8U*R!lVt+e(eP;P^Ip܁2GBLO4(D9*_LO?[
*ff&~x![c8Us.R1?G7AßFc8t=SNI:pja8eMrQ<qvH:͠8q5O)]ohWߕ)Hf*Hi |v_D*%SA}m7CR0C3|f(݇G[<U#H_dS?gA	(?|vf?;( 4Ytat'Yqh[[r; mpȬqT0-p`r8N* ls vg_O8\e&f5ZAun'y֙r6<@Q8eHK]Sz$Ebh%~f`@y=MCXshMҋYZT>yձT hnrfӪ%rQ~rQI~%A%fShl@1ԹT|<P{ . XOOE怢a]nKg	M`y'l7-O	xFn$<>0Ȑ~~ZM֨*U+ORԊ6&x%55d-z">̀
on:pN}AeA E9>;0cW&Je*vN(|_Q]-}G;))8N3.at|6-M=]' 0ܧ0I U) qnTLoŭ77#}7%#DʒzUX$AA6$u~4lʍquoa)T?eL&<xO(- 0ݼpDec7K"D4@)7A̬̉=XKwػhލԏ1cSa>ܗ9 IJ^t1\)6}rܓ*j.qSfʛCKR[?/_g0xz<_m' Fo[	t3ˈR
v)XW
9vP%L6(lvRԟTI~ؤpXm߲&@P6{plӚKrɜqBvt{9Td0YVR5 @_f"0W%(uUtvb7Q}Ĥ:hqeɐƈ{V-<v{Oɩ]JrLXLflj ۊL\ -IhWge<6#ӶI-T>Ͳϙzha*	݋n2O*;,Sq6'=.LOXEU_zӲԛ^h^DȲ|~Ӎ*9VuGaʗ˴gjJQ:|.^2qR"/iJnVe<w_6@:SS,@eAǖqtD[WӺo.4'FߥHL )UZh 	<tp)c|铅*^w6S&g/0x5`f^qCh؂bt/0ZmH3 }(ToHF9D;;Kiniλc /QV(렐m-;RQDh$J>-%?4"eUMe'X`C
6mIxvM5E@BU:[\iKu֟[1z3+{,yb(
vZ`⣻$˖+	5}PFpV쀯T&|1c~)mh,OA$"Ua/ыA&B?)hzQu q#.Gֶ`9hΧw服&܄E1QF+;7R#-x4:}u8,ۅvɧᏝ3q{f,pN)"Nؖ( dǎq9.crEwEڮbD*?sU&xOyf9DD	5KF}QkdR`뜏.SmX3izP\gVvhM	v޽4)8ëv|ozt¸vL'fH_8i,n͙:tBmpW
ʵLLw`Noۘm5f*ZJ}[oV
a~b7nЋaiCP@\UY lPZB'WeyGcfAˉY.^Tϊł|DplFs/`|%`sfz"3
8ן<Rݪc
$|}GYusJ
}CJ6"uVݕPk 8s_,ff1qnV֮E+þd#[]5kcj_7CBp&TmX8*v9Ȱ7%ٓ#.tPSe1oxrDa[~
ms\X#|hFșABXB~:la`BX 6	\@?fB$OBOr UY-8/%e?C A	lV9|k׊r|YrSsg+r95fC"J8W"Ǥu,),Ti2\k7tPȎ~OR<pNSzOۯƅwߵES31lM
QVň>It@oh$>пj,"X~G,+b FNoZa?U(Vqʛ/Pz#u_Ax%=b`5o+Xt;b"zeï}4zOQXY'Dp!	VAɋ -5:jમ![tDGzn'.`uR
+ir0W޴	v6·v\]Pn3rDs,M=(7߿0l?`mQw}4?oy2gbXw7'r.)+/>cҩvy*flj~i_;z8NĿq-'̮%ޏV`'ɯ$8=59wѱ'߿cëࡀr0/	H+}n.C
;KNfl[e/}o`砾.,pd?Wu墝~A͉^Zͣ'~#٫}=(MQ}t/okpvjN{\)jo|}A4&V{fPkڍ~^ͪ)Ge^HfdygRt{iQH/[Y'!r1Rg ,ss7ʻ4qs6@Ѿ^wė<s!rxM
|y,h~BzA8x;2XtJRSSR2R23sJSR%@E7aI NNcx}Tmh[ec#Yei&uM6ɲB&mGפ\Jݖ-b4IZ[6\-4y80&8E:M_"ÏM~\<sySrqݟJ;ѨD{J)3 X22ǟO+b$_:TPRiQ7Ѿ̾Œ$6{1R6Lga5Q*7Pk_O%L"Ziwbĉzw:QK:u4#m؄V	حU|wNT]qYh@s;ZN,;bޣCFˎyWE+ vKc[&m)b [7qE<Z $ &=vPl6馺ɇ}-K[N'V&ն~܀~7!8%3ʿ%mĊ=CSJ~oۢK+8k\^}u$2QY$S>;Y>R%H1>MPNlB><-'\Dc囔s-<';d:냵f\\||Y\;)+^-_1dKJA,ȁe}eF,:ƵpZPz·~Z$u?0ԫ-ɛNN`W!CWYv[qlI]NZí۳R~4 cc%w}V$ Edu"!+/9EO\fE>!p}9z%v87âucwmKqVi|VFVUuå?ffՕ#pf.-/{UNu~?.\u*I#MJ61nxi7f 2++1xHhC1OrJjZf^BksPd@<Pbs?4#sFb?JRS㓋*J22&eњl.+URYZP Q4qBg9{*Ts) A[:[# x_N]8UR6d)$(¹+J'f sRa/H-J+:8DKAK (1dϼ	@@'Oh4IcdYW_ +KL~gɎ
y%F%P'u'w@d'DZ0@
Y`
!0:A!Jkԅ`zi1d Gb*xPhC1OrJjZf^BksPd@<Pbs?4#sFb߅JRS㓋*J22&aњl.+URYZP Q4qr.PS]=\ -jXEacPDv[)<y
y)
)p.b|&@TRʀn+N-RRp(H,J̅3/%39dP4Ml')d+()  $2s2S&_3N-qK$OW/+16/=a.(? h@\a K0A 60?X(4@Q@-\ sCx[[oF~8|I6Bt#65fCqem̅7-[-regGDMr\_$2a\{2X[5[K6'Y<g)Q+F鐏,\{Nc{G؊BL2,x{YI(Ii7\4d1LQXN-	UWgTfRoW˳Ȭg?I1)Im	M΀ӈnH	])<oRx)jCS0s.UgqhL1鏏ɕ7;s?x7go4A~C(谇$E	Mdƀc*,,aI&,h2KF➥1HDDJ`p0_sE#:;:zpgAë`u[Gg o|2YBƂ4#}Wk7>@<f{xbuB Y{>gHf`-	f<_a('HA8L9s_{DU`F?;g,	uRH~~qiٿX4UU\Z[Pc>n'g1Ⳕ[2\{[	$-{J`7U]Vfuc02Pp#:־d\)LL#?qzs(gtmȫw֟&f;d`jL3H&8L2
%+0nĚD?O%?,
2	.s}fyuhh, l0 % "`$ <EHKi0u"{O_[THs1'5"0pѧ /q.pjq^6ନ\Ga^O	0PHXEvxqހp̸m\~GOu&L)`~߆uX:&,(PРшGCvLQT-1"fj$~MnO"L:AayK	Z 7]>9:Ok}00])K%P11XCeSJ[P GcmRNt?*@SvZ<Fxe*JGzZoAyX/r@{/(ÞvS
c o/F%Tlې\A
d/ZV,\q]f-,=f<9ʔOsTzE.O		LrdδugL[]<$nbn4ECf	iEq/+nwVS8[b]δiz4Ôh؈o#&5[ 71bkh_LIB1myLW@U14ףZ䝆Ҧ%4kxz0oL_Y-=+]{.ا
ZfS-rEWu.@ 
4bC%cvZQ7vUAZ@i?l%!VPĺljE*NIV	6apaȢ4B`Lou@8Ρő mhn8
l:/cq'\cl7jH*9{:eו&KV/.r/84vXq?Ov
z-]\z{Y6+nIDCN<̇%w,#s4g%o
?X1	yZ8~#Q%>0ejS#F)-&^$NE*lZDƒG{~!rw"uG8-lSۮ(1W%+qcjgͧ l;c>c7\R+kqjZRxQ38b]mS*ԱT;jt_gkgXlnni-U6ֲ>y`:~?GʈPE5C	= 8AW3%H[{矁/ylS
;d'Na"FM^#:
;kF=R˝-S.6\.VB"CgӐbhB9pvt3(,g`J&eM}eP S5)ò YG`٨p ӁjXt\GwR(5?c,&'&RLV/Dj|vD=5DG=ITJ3F4wU	Z`J-]حkFQӦ@)->&뭾lHiJ)ԎKٞCh:4u9:Wf,PWy'iKzټ⣅9Q`J|7ʵTk7^̓L~A]ّL󆢾O9`c^Fs/7eQz2mUѫadԷn_#nkj	rkVo>0qnY2žqa$fxw4l{j[ۗ (7kCj0)y_kKe_Z!mKC!4:4ڰskٱ՞)kd~oy_lU-a寲5յ.磟5UQqNY Bݺ_82gF?+vjxiaa0թÜ*̔PS։|y-O}y+abΌ(kOkoF?'G_cAS
{T\HzzvP$ޝU<奔}Wl3eBCf<6N>35^U D9\o8MfkP
,S{jcãH(3`818ü^66'_v}R|cM *LrS,t1aV;{ZxS@s$MZۻ(u"a.P.X2s]-mr&DmU-.D*æ|l ,7>׮"@#lԹGe:'g\x%ZRʭ`尲|mT+4-RbgH	=JF`x/Z)ErDK˿~'9>NrϿ=MSǦw*Qw<&J,".;tTk׼78lS_OJ,.򇅩A^٤;~sс/Mh.xۖ-{8D(Fŕ_2N`捓X,@(&ɓXVv@jQVfׇ2NJԒ9%'q$S+
RKRSJ2RJ
peU
'O0&n1g4ØƼ0s,FD7{
1%ŕ6JcL~*-CHT[DuȽJnhdn~Ծ$4%`80f^3bg rj^JfC> il"xۖ5w#f'# %6h9xT]O@*@$#K݀ј@T% Fv;֙)O&>%Twq	1ifsϹ~>|egZ[Ҽ.q]Ƕ]yxjhT/#uS$%.:Dwqd4}̼TX[q	M*U%ϑ2$)&T2E @ac7R" *DJD!*i~d&f=x|yVvi%dRc1lKr@e"0&L'qאuÐ+Wũ&[_U\?1y3jᬵa5Y2GB`WD  GI4˲bIso$*\+.VW͝SCD~reܑɊcU{0;5(5ϲAsܖ:[KAEmQL'fm `b)g
bM	y0>c;;{o拝^|Fm5Y;s%|\kFht-akOKti5SC/:^MAcJǒv7+lJGZNvRir{jºxm/bLEpu.\	DT]?\ƭӳtnFEUgIGwyiQ𓿂[ZV.^5ST5H7Goxo@ǇPVQ$TFHIS(uIa.K|`]\:dg* '33sv8.?Jܽ{{O>8Pf`z>
oS<©z	Y[ g[0jTh4<6J!e2eYkHv.K|c$@6L\-NE.DyTKUT'SlXIkP'	TFUD)drvǄސ/`r2F$Gs2d#j:\co,_.PAeo0㫭ǻuĉO=X*58ic6¿r#M*_d$3]«&N
.*;̢&8{}F[]%@u{op0@C`dlJ(PK[~(>WYa+pѓxε-+U([**<Q?(~-yh𢡊Ň1d36$qOגq~|w^S*}xW"xT]OA}h塭-	HJXHt;
/0̟}vnk
4s9>9]lxqin;I	ELA2mXF3å _J	C|-5ܳXLBĈpuW));|7%$R*ApI45)Q8GJ;9638pb/Pâr("8$±2#Lquԑ8Q)zLc23#:twcG}[斿嗱JehG!,8ä2IcfX~K:NI/ﵩqaVC3촺n3ۃ&5w~cmA$McԄW:>q0n<)6"ϓTaLfƞ<e[ hT*KE;źQ1UD{{˽Q|%W
a繑PƺE8|ШZQ63zS;/:^MJ}7lx[HEz#c#K8;dZZ.@Sj}ܧO /ߢaxT]OA}h_$D!)`LL WB@J<LgvgY@_<L|gRRGҤνsmǻRYailP*SA[\nTjs,\
AhRgKsc{NAD!3)PbR\6^:/?>Lq, 2|p>MZ^vA)l81u9|yPEySO?@@bT̲=<6@)*5N["7b[M!$"#M[{P\D9,()0)`2dCK|,ђZl4Q^sVy3F|Z6TEH+;C8:`14]rR#YBxםIOLKm˫O6&Ip7+^mw&ý`~׬v]yMS
 $+7K 0T䣋 'źnh*tkbۍ/i0Byn#+jsQӍܷvNY.货S[/M"Mݩ9Z*׎2rG+8}48k_t6½h:ϨNz29jBxTNA@6F0"XKPXдyLwgۉ̬/&>0_OB%4fsϹ,˩6Y\08e9xĥ!Cf>W!L?$hfĖ#>s#A,HLhR2I!~. Y@1gT')7s
º D
aR)9J<+FR3T!sT~R(,eMəO(יLbrݘIy$Syd TbQɦzU
BtDB?`nm,6W	d%\
̫#SeLΖD.F q4K#(Mq<&6n&FHyxŖ.eGwHc8ašw"M2[%Z?`WtvvmaOkSEPV1AG6N:;IĸtTxHh8\Y
"b0lʵw_Zۻ{eD6!uCDپ˘mP3WyzkZ;*~}o0-{/SFj8V^_rl#I[iπ3cMnuOӬv7{-,Kpu
LDITj`;uSύ0/_9	3 ^do6t;'v?XjC˒ۦ2UPrtXTQ72Fx]s8=jNeK~$N-MQ/zI9n(yH-vs߯ sԌm
Fh<+9Rr9%ó%dޓl|H۷z
Oߒ,1I|ȿyCn8	ߞLK/o9{&a,#H.)	B}@'Gb|1uAr2x)$yH㿽{֣w{4y75ucnLp'	gA^?Bm5H>4B 7$v4Y*J' y!EiB5۴ʾdrͲc6YXD_Gc.טh9!>hxK bMՠM6P>}r=q%"G?>	jnfKZݫW^SMn>#q|߉
K=Wqc'cGS-MZe=[?!@dպ+$/xIP*POB~'U5>*!O 7 w?b-Jh3ԶSw.X{L^zG磟0OlfPh㠥qc/~&s-HAyN@-~zPF
JwucsnX	j!Cg[ 4lEC@gH6})E~vXw˅T:f|4y(SBZ@F벰/D]Ei+B?j&N"2heR*lG#UnHN[c:pF_=糖0;90%G/>Tmlw鴙#,nnSdINN`촡g^	"sB|+<zӜq*33?ܤSg
N4t,"pcph4m§џ9	YʆN͑9E&;_HC>ulqAP.>ǂړ%n2Rt݅J<LyU)tv(*,^` ulXES;]G2lu.9#pSWZ᯿7}ZQ+<4^먉m[*աKtEK0Ӳ)7rr)rl\+o6Do4r77`^aЖDA
xlϤ;ڦ%B#,)wZwC);eѣ,RKv>U⏄o$)؇3AoA~8OF# 0aG+@	l'J_z7WiO_1?kDnySɟ$	~
n[gZ]d>އ'Uu|FRUVj'loT^ށ1K[AopF%4~0.`u!jS/yP̘YƘ_R\/@,W\{(R0?aB#	 I{7Svrؠ jf\C50o7et]˰MOSp͊Ql{KMe!b!7~bbc9%[e/mD~Wk[<'18'gFZh	A8꛺O``j.=ǔAef GO8I8Ō`P`4(4tKhxѕMAg%!';ژK%Q>SaibôfuԌnDMH+gQ]50+ kS6I(X J'KTcQ2qla\!f1$5~xU[bJوuOV?H9Ѭ[4C%o2r3?^Q؛"~_¬9UZ(	y$X8ke8,=~>\Whkm}AB2w+#KlNU~vA/WSSsct<c[xs@")"^(JK(wEuЫ&NIa.=*I_㱩2f<~(y4XHN4{":zjRid^Z-12K:5[xy+t(rNk2nDB.^xң&:+i(:!;h!D;Vw51	wO5WP5>QT8_C/4cIwvLNkc*kBMo_:ٶ][:Ԙ8Ngm躨6dH-ؽU|1hA"ܷ(ps{=7Y	ۺWڽ GG}oR)Zyo(QbWbVp.(UI/	TA5|#޽Lw*EpWw*=TxxH&3LOQmf]L.5Fo;WcSEg2[nD&^	cDދx,Gq>1r2L97:-uqJExq%T'9/ԀW6>2o~)_T^Kk^hD?ɮLl|um?bYlJ;aCd+fv]HVt	u9j<e;5L;HpDTx:pxc˫xQG<SFLXG#^1aJ&_+(7PCT@;zA܍PKʹ12bZŔz)Nd<3?c(t¦ZAoaA\2qν]>ш;n]H犓9L1uij+X1]S%N$$J}͈Gݲ#U7G$m;	K[{	{Wg9'H/;(N:p/qTn%EBqET"q!}ETyyƇa0MD0n
S4A]hPLp .g]J+"7JQ J#v$K.)5=HO Z-c.g3[*~>y'.;4,[+;f3@0ڽxv!_dgH؀gBsCi#2ɗ`˷t>zqV!C*TИCE}jWj y	h@+M*V[xU+l -W?|m}2[KšՉsT-~ۊ.h\,Eȿ]|m(a'9Ғsތ>[.캲yWxZ~*^ bD|hi٫h6੦,ڭ4z­i!E3vۨl{\yggJA{dU@@V57*=[Y<oiR(o~	Zi9,9zO>zM.E<t$lK H]]/(eE<XJ 7.$ۃ"<ۉ{H]jG;;,
m6F܇`Ild핮vmj]DZ@F5,kaV#W)jYT~Lao#?A*mú5un4LQ`elzm6s:$􀷿͝ na֜fJ]5%d!mqK=Ǐ}UUXðXy
D\ʡ'~cϴdq@v4pܑܱhSE؃"G8%<{(KPX8~Po	с4;jT?jҁ}7q׹ޅ}4sD{_Yu4l5!@낥Fj\U4\X},Ҍ+<)M%LH[8V΃Na9--ԑ.=
m.<Ɲ/q,,cFԅMMSQ^
Цfr~u8!TE-\vSC=|P׌J"YXW]N9R2G0yơh\!u=U_zm΢lnMjDB?b86Gi#Oy	Z&3ulN-U9e/#,10QtfNY[j-B1EC|kgN5僂_-8ٌԜ	tM]S*!BvIf+xR'Hu@{4^յ31&+g!=HC80bWP<yT.,Ɯ"l;ӎ:i{YF)S_>kW\@ŞX̩vZ-!byd溹c9^~SH&*dq0!!+@b3ˌli-jBgPWEY9D"n[x,cT.*lyQ,>ǜܹ7@g:aWuu=Tb+/,T|ҧQD<j<6, <yJ)`~d_4knod#8;,*:_&O}{NesW2)*{}WmKjC!p̥8Ɓk.<hˡ%7qUCwTOmQp6jnt5BrQ㬆cXyU@1,n&Ɏ.FہqsK*G /.Y<V0gwH/Cx7T1t:>x4L5g˩13oF\Cjwp5)MRIRɝ%r"@VG_H;tIB]谡20:xzu]rdp3q5rf|f5ho(_}eN𸩟$+[{vmuƣC`eXsmZsAä0-eб2sS^QgҘrҨa`>QiKBDRU$)U 5O4(hM>D\f#kJ()^敛 j?R̆DgBфk/5P\HHwUQj4!-=
ۼk2d"Bj]q96̶ϡqDc-o0aD)J էxHE[)l3Nը@:`ȂgNf\89\zٽ|#XUyh\M^J!=;z%nU할	++M[հ*쭟i< c-:rEY1W!rMJkN*IT;K1\IQzF؎c~Z<:0[ɂLUe;"j֞:TR<Dx/.6Yri8RŕEA2a_ֱ˥ТoIŖYυ q	RQxZPPWr1,fw[^,DO+ ]͍%47鯢VTTWk1O^O?sg;u*71~bwgy:@'M\Ȥe":ymN<W&_t?󅽔8
DEPHj["+tmU+Y̻Q&ޡaB>,C+:q8FoNSt+I+QكVG ҶX(2_LGDϵiepAnY!洊QGIwlq[]CccPg!T/j#:hR=PO!qgܕ׾r΀1b@2O	K6[9PnYlVUE6JW9 c֝H -:;46/Ӭn:itb^ ;9O0c|<q5,7cYXxC~,A|}P[Rƀ:Ig#E=`9Jʓd-t٫a6DC}:	SFl6B\%r>agE<җsj8QJr;o~J<FA˶Aڬqm52U6ãq^6ͻ8|1=/74.Bb4'uNr?5/cMζm^5P3)Xa3~%o<B>k@kө^+yU5Mr4fʶI.#NBà
ε;]@)A\gW<U\΋&2kZo1T8q(9+G8l/\oƼMyks֧r.h+P좽xĢ8>E[{ENWz^%x8?]^TP5ABGxeI:IpA `A8*7<*pC5{quoxy\ȣт+oJqq)u:2aoJ;tʳ],yqҦYVa_[Y]4ݱlƈnWFZCa^YqTV:?Q S앓jVrupɁsy볦KmD<}ۣt@xF^N='Gy:m>qG NyӃt~+i?G!O'.-{
x
Nt0{U
{WΕmX}3eGkZr,&Ȏr9-6C5K$/!ap!e*Lxh4{	6Qyjw12x*Ȇsʷ˗ݚ?U<L.|-N!oPpz=y3V쯐١+
՛tw?Ou8{$=y8:棩ѢTv]x):V~oP,Oqw@{LZvuAeU^xP/=(u[<-zb\haAH۞/a_|iM 'wƏ5'K7D$e
;>Hz?HJߑe+!K_^fDH/y雛&V9Gs|[凾b*Wߋ{|^9c\sN1[;J709T.Πi7{/Q\Ò/ŎX{vsMYh=q|X(*|='smqx[/]u 24u
xmmLSWNdTF7J[.܂X*R웥([z3(-P!̲7#ceS0Ͳ斘M>,[11˒-ΝR/sZ;":U/"dl~D~b sAB)nb,SI
X6S:>pAm{)na\4eJG2|MNj2[Yi7,$n4LNc%h('Iv$sAd<+IveIV1>@K*K$:."	S*$8'JhrMI"$U^dF	.h|&s/iݽY-J8;a	rJf)K5DK	r|YATTJљiQY*Y42KUf麟Y*}Df~e*|&XwR\KfBǋMRxd5:u}p,XUQNãl)їgԅxfaaVs9R9sr5DYOxD8AБbpT+.@MڄFX
x/2:'	PH/f/̏q%LLطUfh=_#\"Vt$%$zB[iiRJs
^&Nj_q,Ke~&ԕ3xpP0%|KU0&\#Еb"8x(vUCpJK{U(fpMm,5ymX^S^XWŜ(?wF&Ñ*/BD<i'=Z]nX3@]V4/&ETޟpFC-ڻ]#NP4L3R5da\6pa:qM<4P܋Wݸ쁡SKL^e
;q<6?2b=Z^! .up 	LXGpjc󠫳
mE}.i؇/>8pًaǅa8=W .N v[pǉ7<.ǻ1Ntcǆ=C0Po^-z#ۯ»>7~ĕ@;;,|,E<anb`ɟ\iЏ!m7)R#T'DdEZlu[>i_tLux-l][Q~?GƆ0-RSéE;-wyi3E05cǾ17b'-w83;sN%y4Yͣ?iʼMzg=k#!#N>f!JwT%?7s@ax5.F\,.2̎A!ln	 {0x8g_{GǼLݠu6O QxXmo6_qH$k'>KQTUHjܮh,j$#%Gv/)f ;s/<}ڀS|tf8>]\@/D̑ՄW2(+03^b*)M2QI::$kY!
Q0)yn@dy
03bTʐcÐ&uF`Y?3crbޖTv8u&m.kYr)fc4eK
TqI6/0"6AˉY2IL"Qb\-*:287M1G!|{ =|	^	C=|+ &wreD:tc11M602rBSP5T̅a.=b	wD/pId|g>aIbT"PedތpRK2 [Bl3s(ٺ|B$\qAZC90)D&$SF* bέht^=ڸRňy	fPfݛOeNf*/>pXU:0G|e"l/HngTSkyNBqw6Po`dfFx(ֈoENh0[;sd"<-43:GDzbȀ)8h]gMKNBdS$Ԃq5}nn4g+R5|߁sb.~X	Ui gO~XAϿC*_B}5b2갖}U4~ᇋCJbȰx\7S`,bEngD;1OX?\D+ݶ6]:RFS_!4aKE!-ۢ:O	bf&8/",`^6<(đqD!"Psr܍/XcThK`U`R*ͥNOÞ`b,+өdIy]ZP>uֶލjMc`4I?tU{'LsYOFMOi-ARSlZz==D	3yv)Ϧfv7e'G1vB<@8Ȍ98ݼݢJ.xiC$[v,͔./͌QdtbȻr^uBHqp=)]Z3>h8xEbNhؑҞΈ+	1ǰu\;^D8ǈ2FjŬV9o$..(Bv|>yfLvg6#Gi%̵9b)^e
Ti=[H7gm)nw*ٿcD1Fo`C'o":V[Lpqbs$MYM	Dg^xy:/qj C2Mr_ݺ^k/3o_.o;$S>GEH*^0}Gx,icb<)b<ƸEq<Â^?@%WW?S5pԻ?]U}m]e=|+;;]>%6]f<WM={H5P=xeTkA&m`&Ŷj偕amBRVAeMnvl(^xMP EUAo^'7@oɋ̗#Cm5^#Aן|NW4&tOA<I>'-GSѓҼ&ߣe(۳P6*FQ'ɊϱiM4bpZyH~"lQ-x3RG`vc^X\9LMU«?pia(CskpxȏA~0a?oJ쩗n]pY#oͥ֩mC'5SՀJzk[EU`R" q?o^ȬI|}o<#kNtuW\N.Jɳ9Biw2
,I /hJlzt кmp<õV	RX̞/.u:p^EpC'\(\|g2fs|$Dt늽(SK3(#WLLL5W,e/ێ}|)W#T7]BGEqbFpfؼ3YggچUh`lȵ?z75qRQp 'albinN8!::@unJ`TZB@y)dKd|ɼ[h`vv2ZB?Jj0̓)te:L`j6;6+!o-ɀLx[uIu{'ۜ)x hUnx[uYu}|33 6*Nx1Ui'T<Et5bklxJ~C #,վxXao6_qPP	<;I/-<DMV+b
(,iew$%GVD3@Њ<{wx;i	\FB@=w%%kKѠہz#aB=HCr
fL\'p=40)tRX4%ೀui,F8`$D5yQ4|D3AМ!!zŷy/ЖIo`_Z9gkÀ&	pO8; Kf4 k898'"y͙`I5TX"8b'e9ChI#!ͱ=H'?ɗ~Llk\+{b|'|PLۘ&ɤcJw(e>s1p9y<Ĉ |Y	zML%zqƇtbYKXHwZy"(aB鄧	fEeUqqm;M%Q8Σh	uS,\h %">1t&V1hhj"%-DfRZhŒV7"aRg:OyjJA4.v#Ɓ+)e(,XGJ=S52	،T3|eB$/o06s],DY\pB@Ƨ5tֈi"ZVҀ=?$IJ{PF#Ls&LAusNL%Lp9@sPix rpׇ} }5xhDp!IqpL lp#oQ3N\HլZUJe\5v <beq`˨	TTc] Ƹ,F*쯺@z?7,8-.\%ֆ*@zqC9c$+L)I$Rx~KlmN;	s:}8/OmyBCG>NaC9Y	h"~87cKuW'g1.𼓮Ǳ wA8t4ݛWv(¡b{aQۅ~h[6WM}5.lWT~93Ɋ깈Qm
g剆|hi+.Ujd〚w1WmXCRtiϝox7T=:x؎5vH -lY͑"Sz'%*/"BOh/g=>
}\чTsM}duRQ%]S&
Nǫ+DWx<\PG>ЦuQfQ!PmTյj4v#sRG k
DHE@@MRWH^5RxqW!űjkI`Ionݝv\kMtbMťh.ȪWH2wH#{2n$}6ǥG?һVky>;.5mᓻ}y`xTMLANT~JhmL P`k+J!NvnFcb8у'/oDQEN4?b{Λ;xUwx{NYtN!t%\ I-=,NU؇uҬ'0	/dtiC/zoGFZs	N5x	Q͹fT߶܃B
Jt-Ip	AZL*Y:q0):$Rnhr	^*)0&B{r҂(
trXKQozŋM^G^GO[ɕPsf% Ypx0c2/!Gf=0[-=m(jG{T5t6ۀ1:<"ENMH׮hjI!((7ѳv-7/ͺ:_,}hJT@:u^S͍b^V'k҂wԂu_6UN63 5uq97w=m>.e&0p$^WĎp%8\xI9{{cPF<ðYEao݅aVLf@22PDc<CN('I\$`R@L=PBUk/ɒoUu7v2 (f`Y}'!+= + I56&OKJEL=PHI|0eV?~2lZxgxfiǢ %k_x4vC{
 xYn: ?I:fݶv]=X@eVy$;CRw9rϮ f3Ex|U½$N-yq2`Oe"cj1<	""qb-#˾i0qnC.p}u~BO$5a{=NPjXm7!r
!|[`)VWWݮMm!7WY]Gd>|F[/ǢHKpxy 4\S=#B)F$W<شH$jG%CX8KL5ޜh):Z<L,l֛,F9H:ݑ4ZcCd&s
&1)
ׂML7lxDB&}aT#0p0J?ή^j&?JqH-doKٚ,nd<q)>x+1~ .u=e"%$x<|!+|TDDqcв+<Yċcv;Eun+CC]OƣRX-< j<^MzwO\#pA0溺zC&|qApkE0jo5 9zq?gl yv+NyZ@hqnj	yjJKUɝ=|rEyF>@,t twhRa5c."PdtB/ԙ~:,&3uP+W&ūH(8\I. x|E^^^\unU]L=02?;B:AyNA7ȿ'%>{,Z;0ɡmeA3iJz1+$=<al>Ef#yӾ0, 0P
[wHxQ$'V*8+<#?.{rɿy<(H'ϐSGyjvAܞq[xA\ߜq}Sxa[xaܜDM/SUd ݷ0* -$
LjMdM>	ۘ^Tp
nc{S9N 
psN `ȳ+w̞ d#|C1錅4ȻxlviTBAdeʮ-UwmaIgTzaNe^Rܖf9dԟh8}szp>wf4.Z}x0`¯bXTx*}xG삦	d8)뽃Ȼ ;C>DmA!OhGTm,n&HKz嘺z*1b	`.'U%Jc%v:3Hv:[Z.+np
Po
f+YdwxUXLgΘAtS7xo,&={pgI^ٳ,V,\-b*]㌙RҚ.Χ9 jXfAc&%CǖI[wT"%-$윧Ep_hB)yz˕=40ù>4cXǶd*`;#qc֔{Gv&Y}-p&9Ey2Ɂy417֕Vp'iW+􆴵cR/:)Cng,hceOKfo%y6n-]Q)}-f4Ldk2n(bF:-}`I7F!&GMܖ|%'!RGim(ȔXu\u]4|-[9S˷u~87T؆F^;Y$6,KGfEY9R--lP]y\d&s\+	ar{r7H3bj} AiEU7!e1A~:'#Ƭj<J3XPǵi8ԥw}AL&yj`H6L"%4vݖA]l[M,W=Qݼ&*ʕ\grravTP!/ԓ9yfYr'l^~=:iBg"rˊ3%,YQE+ֆd </6`(v֪ӥٹQkUb8l%A/*,D8YTgGΣ)0 q|LA=X-ᾆ@?2?һzo> s+<xosl8D(Fŕߖ0Nchrs)!F\
Z
eEřy
z@>rf^rNiJRIjj|JjZf^j^Dnjn|n~^fI~Qf^z|bA&PY'wͪ9-rA6q( U01Clu&k*8)$dL^Ǯ9d;M@|y8B2R 3Lt*KR!RSR2
T%
UEœ8&T,ĥ894 ͭ1كGcnɼ|RxEz0m` 	 x0WM55WV17ҜlY#'۱*ה16/QQ(zQ\ʩy)isY1m.Exr)%B1g"]6$2N)T=6OɺkjA	~ 9Lx;kvlfv슓-&Go>G 		sxx;kvl;v삌#7od# xZmo6_qH!	\M~X,F;~(ʤJQv}wdˎf7ÆFaǻyHBV*k1k8،8SrlP¹jȔGɈk0c?\BI8}j?;xK&*	TPUBB&I,g8Ɨ܆
;$x5,7f)clLk>j[SzT]˴~jz}d4	s`	 =6E>ϴ0B1L$RE
1rIkۃFիOYgЇOntOZVWhI8DS 0#C\J149؈HM$\ODJ`Dfb1{Z\4PRy&d}/K7.[YozTZ>(2jU@R>;C?*+Th%'\@6K")<̐9@tA`r{Q@Te5@ċK*1ao亱}#>JȭZE*H/jE6#~`>KDmz]Y0!!Xh1T,{U0Γy@o~Ohj?"i}<_0"L}
q{V$	8KWWu{=HR v3rw]Zp3OHGL3*YS4mbGIwOKD}18e8;T Ώ*_OfAQ3O,KȧG+"Cz^?;|/yܻjwuꎓn'Ej;\<)9"LH7ZUL;cY"8jRFDm"A(FߔXQS<aC;]piC˦ϟ!>[me.lE_zkq%z*ETSZ=7T%sE"jD`ZY;RCn,h9ΆX;n8pm(U*n|~>9%rdƋdX/w{½7h6^]=xJ*lqfq+^w;}3hMGE!TXo;t [0cFRNX]]ɉ.Oe\ijgZm$*I_D+wcqRX)ݬI~S-f̌^z/Ss!m!ΕHu<[&S1E:IORWbT;>ν?X^`q?:xy)Grț׻țq[\חI(D~-llؐT6ofx6c	;U"z_RZO̔,4?w?o[o(#myVފ4̟_h7VnT~#ƩrQ>˚5M&CǨ,ʔId}CzEr;9/NKɢn]P,4OUC9X7KR7P:]P+71yɽTp[=Kc*Z0%02a__o`Ahl.st=%54I^UDIeM	ρ9\ v[jX|,yLш5>k|æq9pϸ*[CY֘F)#9}^o/؈]WmqGp%nqE
w$2 +m0kz!$Y6||N HMhxw8D(Fŕ_2N`\, f(ɮn n/Bh^v^~yBAQ~AjQIBqjBIeA U
iE
!
9y%%y`M'Xh*HUH.-*jQHR`M?Y͜RTZ\XPVA#QlYl|.iy`(^HKIKA3S%l~̌F׋)m	T,ŻT"09Rg5y)76S!h/Ì`rOn[6++(
TTʫ'
r)dqơ> lKx￁e3K2 GxVnF}WP$MFXY8aD,ɡe"YRЗݹsvPNONK'V(2A2ʦ}`
HQ#HTOV!*`!*(gbH>҂, Q2+i>Oŗ񹉡b+\CIOٶ!Kl͟oj_p_ M*Ɠ*q+r44夦
DIE%"RsA4ҞU\JK+YJh04V%R(L t`N<d>x&p}E8g/zRsTd4fpSBLdB3'f3D]PGP^Hì*00\H+_/N4tw"MiJ"N3Ԭڀ.3F6aT,V{M軸j)S4`0q{	˜%#p3Vi)]>4)=Լvr,4).1W%_wa$+d}m9bH?m}P]=gm2qbqʯ0)P M\Z
Ɓ"-Aں@0pUQؖdFzfep;8]L۶ȭHr"JBh~XΆ78	爢̝o-i.|` UB*gI)Xs2Bs0.q1[F{~+<
R+o('CyWĠಅBsF@y%v:şglo4)27\*䘉0CmhX/\1큣l?FCs{;+FS uJt:{/`&~ǋsasit/{k쉇?b4LE]\ld	5MxjVrrYantd%\#g/vYz3z|SYzPC\ }ӣO	e- ~<!˯om4KմFlYzhm.G-ψZk՚UJU6BJkyIy3k~IUF-jx-s[fCRIjj|JjZf^j^v+ {
x-{C%ZfI b8'cΞl".ťS`S\W2ź>=D!1,1/95E85(R!7?%KA
sAj qhАX|:RuRrRRsPU7+J-)-SquuvvVMM+V(.MNN-.Q/H-*%f椦Mv+IMO(z!<R׌K\u d|x[s6~I2(:Ud:E<4QE Rv@4Iz#}v=~@n
XfaUN'l#N[Nqu>I$<1A%#5y"o<MH<'ɣئ9Y-IҌ.ɜǌ3uixT|%;C#fSxa	`)Ɵe8;;JT,bT{`0KI̤$76<":QczGRAB0x(O-"yvGC23.3yVҙv. фtƤ7>!/;Xmor5Ѩ31Hw8MztEhɴǌDZ$f,r`dnH`GdĊKgH&+L}T2:{/t6҅H506ͪ'e2$$r$OdEX="ōH7|$,A[Y<?a<ȣ%dR$خi1OjȾя8zw6,N(֩݅ogLhD	隟.(U[AQt0*/C3,(dTP%{_Ld+Ad"nSwJ2Ϟsp9	C NFIp'QUՃo`OX Dq>쁚oIA:2^sq.>/&'ۃoX2i/4uY++CX3Qx$]O4rBKaP"ͻ?M}Bܽu@짳d'rK%-Cg>i)[DɈH ݋Τ	'9obNzkpގF:^`pLu Nҍ2+XQfԯWT#l%U~5tݜ'vؽ$%# WHz̪IdΧMBhɒ#)蓑]ftN1;];_+Nt&y0&4p;Q0è0*ȩT.-7/ݠ^;+we#=#ZW(0UJ'MAMVGHxJEx2/;.姭Q*U%\"6.]1+zW͑x'2b1׆a̒¢T':OR:Y=}]w~ocᔪ.OkkC^g.'ֹDA' fP.=v]( Yxv*V٠)SS+Ul_gZer@V(:_t!Uy-:Uߛ!LMj;S5(@78h	ϫq8
:{ؽwWNLf,fb^ yqjaiYk GR,pi3

|ry=iaZh:/6{wNQuӔaPNA;)UML(;DL!uٳ\ӓ?ZVX^L3CT}[	~oǽ7n}	F!=-ɔg:HƐ[:kHӌg[G?\v8<_|egzu>ptq渒@IZ	Uv~`/js)PF+bФM w`ޅA{[l΃qL8xO~T;<j]zt/%j2ѓߗ퉙HGг1ӹ`s&4x{Xo*0}zǇp	)%*UQwkgz`V bkNXt&z/	GU "Y`NA5+* Jt'r~tpd,iYiHrFh=La_SW@"LKPN/uhs\sM˰q냻zA=Iqd	;*LgeZșN]ޑ&(#T^=@NCPO5@<w%3ABH\+@>*Cb_u )`wIt'Qf2uəxl{Cr<35Ggf&^ Ҙ9\pRؿr> =%®5 Zyj;B%`u8N%k9/J$:30;\{݉eg"x<4,SN%;w+E|2y'AQVafv1N7p	Ybi&PEn;!JMeڷ-=!aM-"!Rͣ,Q7T]IKeN˱,
T0" P~lrM2gOqFf_8wU8*(x$.a`<)$/(3=f/ rGΤz <<k$AyL:AK#MMZ11DOEm7$ko<'lIjz{ *Er^m_#:6TpuE-1?Sqn;Xm	@m"w'
G 
5TQS)x8ȳ_Z)4D[<V.j94#gkO]K-BظєmDqnDquAj:Gf\s\19az$l"մ=*#쎣TXvO'_Ju!41DQcČYf󮹻๱ >-ݚ^܇(]ZWK_dcBqS;uJFA#2QtL*6y#G,qiZAIS7^ގT~ځhaʝwumlmVFQ1=RHGOKB	.4ehw;B(xSfRg-oet<P}җ:<}jLӣ-皥'inh)2KvǄ56G)\b@-ՋqD` .ThpXDcA\m^uXFP<	"txԤCٻyCsؽ>Gݮc}Sw{:P#soD'ч\-6۪l{0ڳ>_];yVU3.ϫAl1fTIeÜѱ6cMZn1FGzq
I |3OAF0H<bWRO9=ʚr!lJ5sT{ûaؽ4]%0SN@ÔQ;$@:RJ#|E;yE Ibn-f W=iS_}hev_[	}"嗦=U枌Kv!g]Ԧx[w^l?$: W;3cCbD8Z*>-ѝ\8cCx.Lpފ{{ω-PKLbwm9cF?1-yXcǊ,SQGq0}HwY5ny{TTGEDѱVLR@%+y8U֣v[*;\mݹgTm"-$}dY㨄d=	;o:~e?'ŐTXw%%Z<081GwwIfU|4P|7^WwmPxʸ:oL 0)-hxq8D(Fŕߖ0Nahr.F",bF\
Z
eEřy
z@,AfOa|	Hǂ3L'˰[qg敤)Oo%ï685U!>~,\(3/9Ul>WIeAjJjY&-B&k= 9';sL1Y3|Aɛx&q値piMV箚9DW>d p
-&	*LNyH#SVfEPVANNT#mT1yߊ5dtLV,.ɌU7u~`)ba?E`39oW{KuHu'v[E7gRq.(x06X(cѱR8i_p`9kkA	F95/%3 ;an$xqCX6 2#xZao8_A6JvC/:jklbsEw0hʒVx{73$V7u"9Ùy8Cs:'T.kmvvzFHv)0uU8
DJ,l)X7>1#H#v枲N86Cm߲(XȐe(E11?^%lIzG##esX=l̲fq9׍Ig~_`fm
X*e
ζ''`!߰8e|
b&S<T@,<!nO wǬ?>foA!	I?;~.&aG%)Z ۔L8y˹h`x-,bHWRaPl0@1\Ɍgh.TtrtLad&7]dڽO=2'kYH<a!z(&:g7iP{lQ	#/w'eG+\ԊtCц2H\HeOl&f`p-LPM<' 
WPbdBLUSHwY%yr؊4:ϓ8Ws# .-WÐ.KoZ(wBc\ɮza"!\h׎HVm$ G.X?  m]$[({H`|XwU[OB_J[lVwM!W[޾ʨþN(g)O3 *BO2i7sEm6"W=`eu!zV}`4Α[̶pǔөG`	;Gr^ac4w>X'<+`0$l#Ii0ifYԛtG7n	hϭguKe?;??U-/=/,vQ칥 o}Lh)B:J`;|M&JHlk..Xeo힉(MA'l
(\'*4F4yRL(<3sPrb(~f(IRCXK~MFE{o0%+eD:b!D-[R_<>C~WB1l$9lK%l),a+Y	7?}~Éc9rٜy1pk;5%kFMRěx#-0! [dpx~0SvP8O} #ϡctÌ5-=`_uJGO4ìcwt݀U4 {T4(x AT&%N[2`MY@`YH <*3W6YZKއR[$IŕXO%aJ&]g΄>"Ş Ӡ/b(%N)xmW;RYqJ]?	j̩L/YC^P-ZI;O(dsό"`^P1{LZI-F.8ڄㅌ@̃6q\׫8wMxE&uzW4eo!a3T}']W1Noux}0K1"8[QUE? bg;CW۱7yX6Woov&6XW%RrP{(`V^M9U支E`OŐP@P j곑QҁywIMM.&ӚD5@r.	z]+J[/LMŎURcjyPtɐ7{U|T)H\A÷kz8Ԓ =x]b@qUv'; /ycgq$]uKbgW423sXDaJA:F: =*TVu2y)Sܩ$v||ݫRʔNPA1Ӿi5dx{Aܲc-V4K,bSLx\O}4V.U$q$7L1>(}(<I`w;/vJ~<ÝNBV=kC'862j73cs8߁Gb!]m%Ǧr%VqmK˦bԬG	^zH_%[,,ÖF񒉇*.}?
0VBc֠˱DW-X*K?pe$QwzRǭ~zP;}
UL\{U8-HevQ*ɶO̼B+rueM,5QSSj? lŝSCJ "f/?A^D@31 L AѰ(A4/g0tZ6E6!HLTQ3~%T=/c"ǃ^GX3_q!Gqk#~6681IŽ=)/NNVS$\!)m*@TC.W'mJ-n)lVn]m{e>44ۇᏙk1g[덇	KA3`)P]|}@n =ӜH OББBFE{Hi=Xc~p_Tb^[qw
xg8D(Fŕ_2Nh4fY-&G1YLVc;h4YCv$k&;)z܌@/`Z #b,@T&3T^.\Yd*f] Ҫsj\ʩy)i\ZZ

Z 	3l.xo5YS)xY[sH~ʼ$)/vd23;EG(I$'tEn3S{N|UK}wi.^΋˕"X5nx9y_2Lb*hUOg&$3rջ$gգg/~C$)ݐ,WdpI<aƬPg$"4kVZO%EZgi|PRzQEbޔCv`LIIm- SLg4kB3#gs"ZSP̜K%T-4gVH`nxBG/VX^:!b^ߍ\߃Oby_'=hLf2ւ$Y/xe˒.Y7Ld`)HĠJ 8G1	OJ.Ttqv_gj]ǋ9p'x3vKt>WReA"l0$S?U-c9rkV߯Cg>-#/<^%>$NvExy&$8FI%JQkˎ*ٔD#1_]7U]D165VMcШhdoE_{V42b@~gsVƅ|r#cZp6TЌ'\mz^;*Jڞ)SL~1CO'>$7>MɈ9	YTRd*lA _ԑdjQ&=<Ķ0$!nvCLSkO>8쬲,\(ӹКjv=ꟷEbФNN:FmY[fL3f[:)>KŦsɊbܰt:gd&GQKp78׀	Q;!f:Lu	k'?X5܉Ph	z ! m%6nDpǻNb'	9zza-(xRuKdnWar>#(7Y6uԏgA"q=kt
WQY u1qJjӡa3P5}xNںk~vaNm7^[h%ϡ@˂bOa!Cd]Z\Fhm)хm2s~v-fPCA5>RNsGff &I各.ږg;&ʫJ;Ϡ*Hlp(V÷!Ƙ|'5ɐ*@TɄfȀxá}^`W Q놃%!M0T"ӯ f.
52=*;ӄ
Ms9!VF9fU.UCh
hV~0Zֿ=[F;ϊR5k$UǴi>u: MS:ZN%9_t%6O%0 UmУZն1{GNwmSwSE^f"aڌ~9&w'?J!!W6L.j6ɖv$Ah<tFִ[گw&a-<s:S03jftc&ʜ,sTk4ev9~ꊀuN`=p2'Sعsu[9⛓y}Cډ^g@KW3Y.`#
?|mȯxgHlORl&dKB-I2uMiOK/Lm.uIF츩Ad-72:V |Ξ l4sbYbaگ1%WP
4KMz	'<hZӮUQ0M^qC;DQGHc`ܯkdX%4Ozx޿^_{uĂU7
ݠ!M;/Irw4-И￝ڇԭӮǾKHf+2f0ucݶ~^0lW[G鬶fm$}PG@κ,}S>D=@uBn{ NC`@VϞŽ:ei.6MPV^"~3ci[tG}AW-62b.tIJL\;*NWj^UɇF@_Eprmlژ{Qjٟ~'.x#I~&=ؓNFẋ(7ӧK{TiHF\^=^,WjKDtY[g{XZt6/ps|s6 =<@ uP~	ulH)̍7d7ϗM xi/..Փx@ۛ8vYU,^5Y߶U# @bOKE*$wM3_>C'1Kwlk?-GpQiJyպwL$G֬=uk\Hml/n7{{#O>+ݐAg" ]x5WwhNpǩ:j ͽH'M:]^;@G`ڳ8uHca,XD@vtsmnl^;x
Vxu8D(Fŕ_2Nh",LF\Թ3RRrJA+$(OAYIK95/%3mr!K
P3XF!|@XĄ	H+dRVY6ϤZY\0Z_KKVAK M7lpxzufer ${ɽxY[o8~ϯ җ$HNfvPl^'ENEQDD%Q%"}9dɷ&[`1/;aU.-;w_.ŝ蝲k5F$*/y)Kh#U{/8[ǧTʲ2L|Ei,X2Bl|*s (W>ȸxͭ-yvX,z)=;Qsv'0iT#`543-`*dzaiQe;:Y@k`1Ƈ_q0&}&n?jnFlp3&~e'>^2{RDm
gRX2e*cU|&L	]D:ja2K--mȅ&$jUU`MH٭Vw2o0ZƣAHsv]nNjUHtT(*`&1)꽋=؜MqH]ɯ"R]/E*:ԟp#U!Ul+0gs]&#|3$ۛ2`t
6K󒍗 F> Ǐd&fuMeL)Bj8	'nwvqV%2"\iu{&R"@nnaK1XG0.gfC(ԵzF&`. S[`P(+zHxp,	aN.,;*<$8'`Yrԫ(`hߦ{BBZ1<˖*!BqȋD?~;?gϿP
 ke ~fjJm]E!9J%^+硥k 2I ۟Ls(;(*dH|%^g*5ATr$wK(tVK@%T_~rVG[9D>d
SN]v'~8>҄o1B툵,-TzL$Җo9v.l_U,8<,psJ`9(|4FŒ#jxeVO"\
_7I8ʘ:ͅ?~C`Ytzò ʒJΐ;;Q#7TmC|,xZՁ⧥S;RqG6S2a'nbj\Hd:_ emנE:\g /:z~d5}}Y{#;?2+\5ni3CAN T+J}4lu&Tza@LA;ʇ@7҄qH^e.xk~j\vD$yEF"nzA_;Ug[;5;koa<e9N'1<%Odq=	vSfH|O@nm¤HԈ7,kBQs0#JHjDQ`0Pl_'&'1I4dO`+V`yht
3O=p[)`3[|$'edq6IoT,aݤ{[%k>j8q cj39ip]l	A_Ei
u~ J96kTp#$y
[;hqVnzDM)ql7.mym7BHL8T kLx7"7uM/};œqֳ¦+GtȾsJ\](HMvZ%1.G6N iV/?.K9M7LBE{۶3W$ig¾w[k*miuylH((ƞ>UYB:@;A4'VB"C:P :"xCiʌ/!GgN3WK]4W,pMw7(𑀵
Va<-TOմ<L
r}>t
1~sR%QVtB񰠏1}zK\[wNbXЂ[1δ֜>>nI5LMk=i8eg][b[lSaaIcڴ='5`}g$L8[S.~o>ƛ{7}Elgx}df\& %*~x=4AdDʍoK'KLNd,hhĥPZT`79Qamf19 _Kdcq	<,eXa*3䙬`%#UlN䑞l.6ϳOVhǮ;3(D!-z4&36.RܢMm7Y']y$'JM>* SPZt!8t]&/ p$[O>  -YX
tb#(p!K
܏CQDdd1ѹ8Db8<T g$Xsx$1YB<:qU'M֒quuK)MU(֓gIDOV1jRd'?l-*TSLT\ʩy)i\ lx;tZify]^ 
vxffP.cb͜EWg?>UPxTJ1W,9{ۃ[bX i;L"{w[+۲%aޛ7OQ8b9E:-z$o+o?GI%b)7+4zL.E^YA	+⳱طrMmiٰ2Kwd쥙JGlwY2[R|>{M'CL>;XRCQF8|]fȫ6m4`fjTgl+9l,QИ20z{
xzŵub,},bfzzJ:\Jz%d:gd'(q)(rr kWxιa3W, /kmx:ϱ+ hjxŴA+ anx4imF* (.xy#DF&#:A%E~%e9)EɩŮ%Ή99IJ\

]yE (oxŴqBD%seb,;kx͸qB=k b
x\oFuGN4}+rbKd V2/]%%nhJ˝ٙٙgfgy|'E/ֱNŁx+>sn'NJtޡg$H\d\"9.~o2N0/;_M3r"S%sxXx+TxpU{N ^zt,G=G8Kw@("\i0Ý0^j9٠N~*eX+b,xN\gV}VpwiHL^#։%ў{I{,-LE` H	~w"};Lh_GWx^1hx:w;(>GBBbЍŴ4Ds}O"z҂e,X72"x%Ή%[yG-X::;>d8y.0Dq3?f'_xs0K݋a-ҳ"R˄L։DbNRA3u[=΂[N/T9I</1,[b)SjkCPz*]JX5-tR	TӔ'
0#/&}.zLRx?y+ŋߛNf$#
+oɴvp68_<tؽ?NQ?L}G@WЕL -؋ܩ	\aC?K=9޾ޢI~de)-8npC2@V&6=Z=yKvGeSJב$^$&7٢zOq)0G7*>FvDar<{h_<?kj8JB,y0t0{69&|E=2rrfF>ɢ()Gh|?[(ҧO|e<aftE o76mg6bŴJvpb3FÙ(	E,9P-)#4ZY)İ[Ǜ hRa01C2&ψ}B#47S^b2?i+ɤwmXϯ.:Lo4SꚐC0=T/ٸ=b!o0Af1NP$Ky[ezλ/d
zm!nel9:fYg&]G<<$AH{2'Q7'uI4\!"b8MK9ߦﺃ{]Q԰D7 ,Tb|8'=923L8hx~@^e-߷L(`s# 7bF$\aZ:t{	ȑggoO˧sDt}&}gIhAy֬,θ2w[ ^*{l	Ԁt^AaB-sDHs  Wv~f-qiʺ>~>:lkBB0<sS*IO2&Dv),$$`-9vCbԫ	gK*z8ʚ*|1UO1lCA!#vr߉G1g5MYK	iԬT=^%M@2|bRdĘ*[<CqAY;MЬ%(CvdC~Ѕkl\󌵇KYe-uhJ\4ܤ[r،z(M%=$Izȓ$̐v7'VŅoZܭ40PۉOt5DAyҌ)B¯&,I%`*JX/W	 yb̭2@5@=ra94TKF,3v|jDb2
X1D%i-6SL¹&;h5>m,UTr\k-DFAsq#@2iGPhFl_4͝vxF~Lde셆M,з_Z-n0hDmcLGBS$6+.q-
a&3R\\,^6kZiܑ߀akel` 3~]A˥MQ!xUu^TKL!Ky.#&b
Zy&qe$.Zb-\r<T[B<36R],-[v) ]WHB5[C,ĦvdOR\E`4{%:?y0[GeXʧ	
sU68j~hJKϲ%vXZTZX"q=L4b/3%k].6nfe꿏uӉ#Y:!l/phTrhL3T-H:rc.RG-[	[\=Dqf%ox\TTc׫Tvؒ!aOJT2Ӏp5ߐQ[Ts|PfF`G19j1gCvQR:UZiJ^8}%UyFDlPS`Rm$jğC2GL
\f3jvqʸߙ뽬j<40*zaI1tQ~LQ%>l/ThKE' lufm
l&]#sS@EA֣`l>IH(6̹H'zl=-5>t5UN-*J7dt@;CKUQT8JZ8ʝ\HX58Tc!9u^af	G-q-<K:Ì¥Ta2f;09lQn  ž&Mߊ3\pV|^pj_.3:W3T4>ad2,vŪyg$oEV.w=ɗV9'=H L%7tHn*=
Dfa(fS̳U(0z;t˗سÚM	k\f!`J{qzUFvBἍN/!^wfdt4
 -3ʛ5J{KPpݚ桓G9Ye$U8ʱOT&-ĘUҎ! iQSx+5"vawPM+U	h.pQ*:<:H[hPS}oAs
5UP)@\㪹j+IT/%c֟S	`;u&aPztNaeDհQ"U-2uFy= :? k-0M`Cy0Wq) G
a(~!l[Zr{Ԁ#*kmSD6\sm%3wr`&jؓ7$OMQI4]0RAC7Qm"~,l$cB2O	[>$MY֥A۽P^#l4aOtDeGB^M^>Ѓ^h""cR:_n]X5y'S !tV9%hߡp9V.4=)zOafu.
:4m9DmsC};hnv#6Mn?#
5U=x*oik*l%."(.bVdaV%[(GzֲPN~b_|$ɫntL5*l(nXlv{0G	LF(nͷ,BjHJ¦x
<۠-Z8
BPA^Oy[qL`֡{AyK.#쵝nNv6'Bប׶ϒD*J7JeotcdWQkG=#g΁sn:"\4+8R'I>Ad⸨t!4r NxynG*oV+w8םTS\Ò}bABβXNCJ.R/,nU+zMO7n9&P_b WGاMI7$v%rSݜDZyycK'/*v1+r&<UawnH;Ѹo_vڭfwE'HZkOR|ʬSMhLC 9PID*{TEvP2JǪ?^%Oʵ!*>۬.7؊dl/k5F5Ԫ|ST92i(Z3Q-&txSfb(`~LzCJ2b1T]>(ʶݨ
1ŒHQDd'1_k̷Gvc7WKa%m;hxahdSmC3P7p_iACޔz.Q_AM,&ߺH#eC}h	dGJPzwv7nuZ..PbpzkUֱ v"	?7ΣWy'zX$ߩ$%^o,!]dx%bjE6z{6Nk=-72F?;E'e}V	4Τ^cښ.= U-tUtU.O+5N`{'׹Io{~b7Ny1*2ش8)DFc!jCC*,0rFW/-BMZ1*g?G?i
:Qd_r@ULڼkq{/0ɹdwO,M/ b~Q%qdnAxu-*m|[Denxm ՗$xAiA$o|^hr_eg9xł֎2]j^w'O~g8#Gv{ jZxm=
@I~$	֑4ڨ`<\qZ!r
/e%\ck3ͼo<.5<<rIXB\!C[P`֒kDhF!ԙ#B#Clr	o=T6-x(th@q=AQ3?Cn."ctV"^l~giXsr 8R-Nx{i%AϋrnV> Rmx{q

N>/ʹY1# }p	mx2 T}@#;
k47
}I~Tm-?nLx{qjzq  3x۱qB5<?:(o.<tp. !
z#x۱qJAAaήAAA
i
ŕ%
ũEeɩ
EEE
ɥE:
9ũ
%E
鉙y
9%E3 ,/ix۱"5<?:(o.=R(q	ɛ'"qH%y7ŲKn/=_o|/G'J$%*d+d%dLvR_wr|sqܼ?q\ BBx[lG')槤*T*$f+&(d)T;deOfc|P؝id9 ݔ)AxJ@!`:;a B\ecDp"Wٝ%nlrC'|+-l;BFo_<h3Stp"-<w+BP0~2Zkt-),܍oђZ%T+YaU1dBsv</J8l)umXB7ťC1+*N48!^#LVnX(1&?w_q+P=ó4Dyt'h5RxWoEWB?6ib'W|8--4PŸQ
aMglR"#q8 '.
"p쮽|{o~{o?P%f^PaQ~HlGEVv}Sdx-\@̂uiB}кA:/mBu罅9u]nzΌeVWdnmxg3E$c#A(Ӑ-G`3j6k6.`wIxy;KtlYg"7*T<S\m糇-Dl`.1j%8T1+8Z; (_VX:\=tmm׽hq}F
*#k{9ą
&DY8>&#]>1S+Pi%-5f"lY1uǲQn=\ 5NEFv*+#icO,Bsɤ
.#O.=PuAzClYZt8-uX"%Ҋ5r!dV<yj$~*EREQΊ }Y%cs|ʱ( RVTMf`逘t ;ABI,b%lu]_ٿ Ah6(І"w8uih5TT`[F[MlRW9ޱ{6+lMmL7"+'։A j[_BpmZzyL;@4'+#4ɵ&ec)~;wM.L
jrcޡynL&INv1EKwh[ʇ
_C]%\34O<i@bY\,|QކAK*orsF
pZ%ܭ5!):E;|Wj~$t[w19) rגL8ae.G7GdCfyjlD$ dPRUG>]xJDL݋n2ko~	.Fx`4MRGG6X78?0"bk`N7dȏ{=}p7͑6"FۏަJLǫjX77?^ڂ-23c˯mElBz_v>tţxW䛑vdLbLUV	 `-2T"\^MiId_V{eԄzj:2} {jّ'Cbyf|33bjC3pޘ

Pߘ>ɔ~OwE{D0v<GY9#fǆMsv\QXJp29GEiݶ؋p
&m.çuo}>= g(?O\yf:D%MI3*A[|5USQvi2@10	F;빕#yfk{npT.+>no8RKY6EN0V>$W3ٖ#\^>1uN(@ L>2kxr'h{\Z &ux=dAM63.-}ɂ2Y&Ӝ	 	8FExSAkAF+"n%&[M)6jXK]df6N9?b=xѫDg6tEչ̛|r>7#a'"ƢTLȐL8!r!*	9:;gF0~Lдz2;|W\mQy:϶p6nYeu,kb [PO0D0?DJ- 
do\SorƄZ`F_%cAtHe/K'|fQz2	}ofVpnjY	ycɻ1ejqD𒆊S=ıZᑇqI{?]_+OcpI$|RKcqBB5봻A\Jy<>rYZj*Jks#"!;u{I@j{tўz=r$Yd5cc\ r|e'VxdC"d{͉Lo2gn&:S+ 
*xhrdC_vfcRfNfIwffG 
OPxUMOSA@@Z	M
T-nM}t	mLƭٸp]pl\w7ѾE=sϝٛyUuhl)(l&SLw?t؜^L<ɤTpRVT܂Y=>|ķɭL2)uڠ<wAo5)*	#%%8INyu
դ T]WDjw$۴L9aȀKJN擱٦g)Dߌ{1 JyHɤ:@Y! ,솄4QJb;TBVM'$BFHO/S+ ,Oyy-=q:^-,FDzEiB_0'4T$ʠf/lMGL5	=
vjo/J卵*Z!Gևf&	J
N`.*g~'>07J/(q+EmEʎj{iBQ	Q*v0(&sQJڨ2)oKlAofqfXkĴc#-liL݂EǘM6u)nRm_xxvdF?VQPzl<l/Zdn\z˹JQջ6°17tDЮpWMcD=R"n/]4-h/<5gb >#A4`	qFޛy{7,9؉bְ/-"I0mHLRwSc֡zoBwj_g%Su$rU6=Ȇ㛞	E%<Tr^? ?}x[x)`Cݬ3S7) -	%x[x0`CݬZFd47K02mN1QSe2%7O/1ـuj <jxE1K0AA8ErpW)AsQPpA\Dɵڤ$^Gg(	gw[]LsBH{/g\mY'\]##Ӊcy@Y.rj* DcbBi'A:9*G׼F{!qNAwu^y]/`cr-˱`\N
 MlX{=s뿴J)Hi7_[r"I'"l"]>4TG4F.EDj"óNm
OvQ=/T?1x| $100644 BUILD.gn %24DIxmq 
q_=}
N,. =:ڬL	FA5 "oHc
*PW_type.h pK<Bvh3v>1)x| $100644 BUILD.gn f=&r<XYŖ[_=}H]\YmZ,ymM *'0^kZ<@0ّ_type.h \ ;
 \tdi4Y5x| $100644 BUILD.gn f=&r<XYŖ[_=}a?ռXWZݤ
#)h %'8|ڹ%(IEк鴑_type.h 7ԠKiN(MHe:5Ax vadA f)OΨ(FxʹID)E/=AK,m(dXUibD hN{xO es)3ݡ!u )K6/\uv΢6"AOrU$zY{t~<i!TxO VC'	gj3"ӑ )K6/\uv΢6"&Ժ*q@jև3C$^xʹi:÷BUFͭ.yu GNxo jj̪0;r"ݑ !_=#gJbZ.]
s`gscGLX!Ց_type.h  I$~&AJb2Y~x| $100644 BUILD.gn f=&r<XYŖ[_=}:9t(q-?W R-;X}_type.h J%\-d>7@
xO ڱ]
gؽ^[< 2pnDlN?XRƑybkxgVkg	iM$t 'hx: xo3z'婪(x ג+D<ok]z'xʹi:o~G-%a"s' )xʹi:9iwo?w}g !(xʹi:k7Us96L^ x(xʹi:b[s\]p6h wF(xʹi:ĻJ'_~xsZ_i (xʹi:H#U2}r_J:8 6(xʹi:GYJl!i5w:d2 (xʹi:H+n?˼7a=_T ]x=O0*3[@JU&;rԀX|'2Tϓ)>"-*n~\ƦNnmOVeIWmޖ%X~XzG60XTc̚YeۥGW)9dAI>-.dX:i SF2=oڑ0s&ΧH؂pa\PL1t?;s't5Gj~,Izy&S
*.6A.)cD=,l!8n!>mRQ! #=B:;B0b^uuKX@#KKF앉Ub[{B~V'FsJ$9(w8TfM(5\r=3f\R/š!pxn0<EܥKn4Cj"u5a9GEU߽d#w?s#1y8`:IɸaV	L\eVBIׂT~oZG]jґ1"lQ] rĞAҫPZ|kv =L$ĐuF!*Uh-/V'6┮16? e:c6cϳpAxnh8nuTk`<LE 7#+L~(#<6 2>rZEϙhS?;:xk=AN041$ (17޹(5$ub0`pjIprbNdAF51TԢ̼hZJs2A\ɁlSRBRB}SRs&&&ODV(Ȩa	, F{q
,<1gm BAx=koG+·NŮ/BKrLĖtzvbD6ِ3<$sWEJyOfe=;jWU_
tLntu<0SoIGO\OTLtVe4_MO<NzWONJKV*IUs5Zc,TqX(obF,/2GzYD0<h777 9͟E2y2{g˕ 8PэJ3]e+R&8<7QqIY|Ys `-Jԓ=QgóN~x\·gTχGk58E4<:)ue; 0cĦf
i0M|4֒2*Y;RK-f/"*ھp;;w	?DI^eiTG̢INˤpzN:\N9ҕ_>Q>\g➀X=LufU>
~z\pb}VQ+Nx1oBSc$Y=ٲ'r_d.46 |%cyb#	:Y9.$o	Bi]x%aybE(-K_fd1_XQtrJ2
(EW2|?N|O'aËӟF <Gov!x^N@}5SvT@'52vDG=J'x؅9a6V !#˯yA
O?SoFGGpĭ
)Iy̾dJF0^i &Ҧy t49mzܢEL.I7r4LAm㥰@d邧8V-t1K'9-P"$)M
$IQt^LڰrFs5L@4A29.ꊦi CHrBti74zJq3Zoz'<H`	,Mt"Qd)_ w 6,|h:'E\G8_Ȗiж&9[=mۧ!aBI,kfY97L|r2Bw(:9"2+xM 3!8؇ V~w=ԾSn)aIX0'OuK8Pĉyt#-R&uFԹJo{LR!ÓU-g2x(.׬'xW1u4gi8K{w{D)z8r<m|2۳_ nDJ/J+>&? L٧+qp-F1@Hlev<a!%2-Ut$	qpj42}5R<` & ^y]}isbJg >F6Gǩfp\W{P-{4K&/ eו8'pnѨA9J
q\H	0xըcV%뤖H$ir3A 'jU1㙿xqL:f1f:	vew>l޿?Ur
Qs:-2zU%M(ww7^	Ũ`RY$n@ѐͷJ^:f qs#0Tz.@t	7C΃뉝]py\SÇp!NL7ț0#U g!jr;%NQI)Qo-uL(Ɨ vCNF.A	5״߬?=|
TP#Аbs`_mly!sχg/u6RbpS$Ѩ"|pL!w6Lbãog
qce&&z6wŅog4.;.YPjB[*KAt`Vjpֵ	٫6b~eъ'c'N`d@g_F?ɒ£q7޲e6i`q&		Ԯ/ۘmuCD3!ΧrQ6"݃_3pQm28J0+,eޜ<B`̕rњvH(DR r)/8^HR$WxIZ}n9{4 -IQj-(},]JܐUg<tgNȜoM5&Q*x"^oi֔TQ|\W`cOpwY
oteǧGXgNB[~$	k@
tNzg.OĆlI1?T5T]O\Gy~S:e4'Mp SW\}u71`yGϻH+IO}QI	l||@1I'<ݙ¨xoױva]Va -%ݮg!ʃϿic-u.LS')Þ&{ZtBkLM_);	AR|\9*4dY'.sv,Oe
A:4s	s18:0]og8?DxWÃ<QujEakw

J9{!'؜{%E\l(')1OGͱc6\
%ep@ʻc.YDItUF,OAl À:nDVE'QU*f9J¿XNb51!xN)צ2
q/A|Ã mGbRhTF?`fe Ww#{ѩzMo[ӌݣ[[n)#D#a6]̞}
Oo;wztsmCPGO;j幧Rw Lmn WVM[0"+ۺ7S[asO\#m*p}\]Ա\RaI8~ap>==`o#4*b^4܅ӽ(*n;q#7x@fa5o꘵3kjyI0Xg}JFP۞xĺPS*.%f.@G/jZ9}b.g䝓9lM߸0TBAЉw][zޢ
q"u|?QQfi] =BQc#
]X!rKH Vp'sgq"kH5F.݀RkE-d1 
s ?,]xu$
](;|-ZP~7%Y&/en*)%k7PƈeVn[y.C[.*=5<Na{<%S OBe52MYǙ%Ҹaܗ=(GIӆ)ήpLm{=W)~TaұsY{JˬQ `lT9s:dgȵ$={W$+ե7C?- ;7>ȁ4'7-lӶNPȳQ8`f;E2a.Ib4/s]uT$SקjQwN6kd`Wݡiqb?x0Ν]_{r?EjV\ hK<c`pzقM&-Hg &
&F!lx̼@[T.
[ U?1*X*ͩH'OGGG,\re
iQŬ)vUg檭ۭ%<lNu*[sYM6ȏ._:N`w&DIE""NDvyrr$w*<j&WI:TdUibm
ci6&)+@mI#	fd{䅤Ν$\r0.&ɴLL Ij6UN=@u$S$*]J]i21)هEԗF}ٖuwn'*uI~io_pkrXD9$	d#\j"tH'ؖ9'B\7y#)?PCRb6Vd%Sҳr]/ mX-Y,PIq IpNx@Cj!ؙWCI40e0}1|YɖJCfejnhs69?DREmߕTGůoeT1T3tfIyOr_sh)tnO.z~K}lP ,a1to"*}RwVٳ*$e+s0
RֆJ~5<O1q[4.țBLwYnw%Qt}j:^Ʃf>|_`uc+6u4^vNLD?Z v>O^LVulC٩z7TAԱre:w6o5èCrݛYkz-!5rbLZ2FH{~EkG}M:w:W#ߘ;8k#y]a6K-ixM$+ni-J4 >fw3`/7 ѨKI|</A۰846GCh|6J=fm:"^d3
qT^Gt{|`(>:_zCt<\2f.b;ι(a wߜsǜV83ȨEAI`G?jFy$H<覒꼮`Ų'`-"uBQu1J;o
Z+i򿀒g͝Bhy`{x$c~NN-ZZj\UUI` #wO>6@<92艺v9&6=2{
RZ6vlvkǯkqr>LNל/u^_<#?sm}ۙPZԻ%H_0<+^zkmL1axK<kJ{-lٙD%Pl=S'#aJ/^!t{l4=؜*?@5%1bO9hx9LF]őL?4bsa4i^ʆkwo-_ ekɆ]d+P/77+s{]:14e>Ib7.!mq3Y={-p8@
6=L&c#\5v;>{p'zwxf?^^|W%|9oz>:ny@bж/-uR%^jȦx-lb.TD!%,+hdI\Js.zRPxXYHs4RJ^-=Gi:&EB
ؙ
@V9D*y^D[I󑆉~lۄ])-Չ2~0myJ]XYAv5_σS.O.8
G/;	#5|I~0.\_DZ&M [=Z6ǩ}JwuzA~N38A¬ܤլw_/|E<#4rཱིx,)-&R%&m=13ӆ*EA!1' M}`JAi!&z`jo=$H&0"ƺw)SGw}& ~lV٥1?)H\2:iZ %hq/u]fi}~O+>d'jCo/1G[`V h|!7վwa{>зORmö2@ilVBp:M\ў!eV? J,iHWe"V+HvPfi].׻e_$oZԭcʯLo8M|Wۚ}4˱q4ijoY`/){'rVͣ;R"9UMlǕ-=n{ڊaB_m+|)}\؏{4jWٌ{VϽ0=sGGa@8۠gY|+q,h1VHMսM"/}9i,V
T.C³iL,cL{:f% vL0KY?-A+y꓎JUD%`@ǼOQ2J;=r.LFe 95f6rǨV͂NQBr&%5&1e'sTm2<֙os)5 2_>QwJS1{ID5&|nc8p}4˴_cA+h?s#zy0n]/Ϸ둲d?A'R.ªʻ+D3}̻?]Uj{]M0\ҞIZwzI3{y<mĔ)2EKtV_g2t {bDS8e\Fô\' h:d ́xpY|XlN<R\@xK>Ds]06rU< F۝@Sy9ʬaq/NoGGO^t+xZiLl܇SL\nlӬμ1390딬qǘ6nTHCR7RzJCJi֕Uj73{Cv?~;w;.Xlpܽ +>lq솽˃!xۜ0\PBzO0"dUa+\`keefT41WNAer/4l,e:"<s6)\pq)3H_
Ҧ1Z~=U+ӰF<D}hrx8crkcdGy2kNaEEI(#"Y4XC;4M}U7$
 قrxnsCqbVL!Kxb4uNz@@V5Ep`8[ӟFan$+h <?'TzEaAzwDM}fŦ*հdzBS<Jd}Ԥt}dcNe)ՓaϔS3)QiNp tN{Vڣk9#pa3أl@]@8EEsO@XF8KCy3d8M)E`;whll!/n9Fʘ<VUDQ 7=:N
ɪ*̨q_WMf6w*H>d}{MHdHu[}BmM@|cdHHu*F.TZ/`Bdb1Vsԥ&ClvΑ`xHRw`TV*\De{vhC!Ϙl0Vլq6N0d0ӘW-ɿ0[IY%f$zKLr[jղ=XܜEqP>fNaդq{߆
/.$;fI!~kݧ=P|&3&re9kB2#Nxi^l"F tv4-=wh7vŷ/yr$,MaKgH[ٸu^'K?p6=nE(B@}^ԦaieSW4r[-jiđi.D yH486d!E	EjHQB#^& p@4(H$0PҖYUc.DL)j<q7[	Ab.  Qァ aLah^Vw̱昱c&"!j7#]N}:#`Ԏb.С㓇FGΣ`kC(d:AÙ;:|EA
ׄ	TîQo[hjALH8.	[B_8s㍮r-fCzl˨ejL wP؊ Xfh訬k4(	_	re;R9ҡ(2"J\@5iw+mO]YKO,?p0Xcui%89Y{5Yq}  k|
ܟ9VJnT[. r5Ih˃0%dr)`&b"tԛH-l0ǐ*I@n[֡G٭<b>YI]n6S,dfSP\UQXN8R	nm5?W+FgT38AQ"fZ-F΢XZS8]9"fوbYV$5'KrCoB"!)ۦCιU2cY(Rjؕ0/*iZ>jl!tV	mdp1jIo)LZ\_zSgx Z~hh xyL񕗃_25	jC&H/|&r_C-B>ȩ1wQwN8j(]nlb'ԗ/sa'|@W/S,9Mut!7l~LrvDuLdEÂz$k	V0ف.bd;x?ޑj<KV8cKw{Wz6x{W,Z₧P	!AwGq{$V\dwt;r f}ʖ8abCD[y:哟t堀C
OP2&t+!	pv0ΕQp|ԈVݓAfF?X=\,cSDYu;Hj<©1 ]k;c< |8F}g<_^8Ug?~|m읉AzJ䯲l3L4Kaٶ9wV+"i7ړ$f\.8N4S/-X
'Q]K<T[sY A;!ğguU=%\rs$XT	(Hw%8YgEpY_ß=P. 5j Iqf$fŚc4b͛4W7B Rni/!_H~HR7S8~Kl1+qgO&=cu~|AnsCޚ+/muxJW?=Տ2kӱ͟=,jc<tkӎ[b}nL?[K᫏1IV.?Yyb0;<%lDwJ#p+|9J%6R"78}OM{u".`~F|p犧 t_^x=na0}_eoF6
}u44hThsȅI6!3"J8z-)ZO&b?.I1[c*1F2̯fh+XG=cc˞/!@}Hܬ˺bq!`qߌlCY\@S͚
{!B6~K9IVH6+h^kATys/AxZiLl_|e;001ycvg6s`.Y;	G*(U(RD?ԍڪR~kuFڦ}., yz{y-;vz}ݯÖ*N؝4 دzJP3|ٹ
X_*B䓌6254ubL&Qc*{69yYEBPBtN҆8"QR5N1eniXA$FGxs܈c;G6BqXu/V!Y42z8 uH5D#NѫkXu#N -(*6`g'iXRe#uR)r쀻$FU=)FO#Gq_'ZjۡzjD7oߢRHV(H0lwt[&OMJKzK	16/^4Qb;9=Lxؾ5$	Oǻt.b%<3	Nv1c=Y&8ׄMtIS.DY4| 
E?Ԑg0J{ӔR
GFfbc:cU~Ha
~SSㄫ׏J:u[df#xDahCf1ڻDDjۜMTɻL!Ԧ8['1F&Yb4LJ2YLEݡ	&DfM>>q!Sm~aJ:GMr29fqv\!{7DwY¥JYk'Rp(.lcU
gDfC8Zp9޲ܻ
əUbNG4~2iݶz1HS-KRΰiYP dZcn
q)XM~Z ͨϗZVdp۫;a޽'vBYKÙT	X0e
4drHCc,1X&^{=ahk_xY(:.>.l9**IF~Y
TO۵v=N~ଇWS0cM"-ԫS y٧h3R [Ԇ#\t9DNs#88ڐyZ$v$tAYDiu18jDU%"ޒ6Ȫ"/s!bgjHP1/=@#Sz	f`C
4d6ǌ3!xEjPFJ DvXϟ)l]ȵv;Ov?8<|tx}f8ĊB<Qc3W$$qMC.A0:QsLɄ!QaXᒠπi ŵQ7^:A|f:)*Yg˶ZT@Pzt+ciBHf
ʺF'ǯK#Z"#4EZ}IxlՖ䅚0ZMWӈ̘!:Z&Pck9S ˰SaG
,̽'1iD"@R*@!4{yvL26DlQ]ўziAí#=xrZ=Fe*pdzi,3 &&x
LԬ7	pbq+	GýpݱjhjƖ[G"@# J$yCL #<[EiTVp~K5G2+Gd,Q,ÊD9AnܑO$!+,m*[&Y&Ѽh/FXxk+xz/KrzPoEHM~FV*"iKm6rdEc,u6Fp񇎆76O_y9@(XXjH0bBJ"
%o)"gRE:"䒋2{gvۘ\uˍ0_脡҅wv7#}p.:AlMs9*H4Ф+|WH?'rÝ'̴+m7hqiYTG`PV4,K'Hwaي	Mz:ҕPIrU.NNY^'pn4J	*#$WR/9xh	7nOfĪnlu+o߬[2tg-i?Ha+M\pP<iTkلbz%9֔ٮfY¹^6/2
s20ZFʘy,q(nh[	Pu4;5Jt5p;͑;Nͧ3ow&3AxepkSpov맧emi3,ۖ<y]3J}E8e;B$qY;ȆL/±+dNv(xXFB?巻u;U?:6Y]`UkqW	'",^jM&`	N`o\FqcF=B}DIԌ̸Xq9A ݝ6{oSHpvMSoz(]ڋn<_ %8PT^aJ.SKI'e_P+}=gPmf6˛ՇOetldmsx.ܝ#*ƙ(_g<]z?FAxjſ3&]JNg?COP{g'D>3Ni8ڸi/Gi԰ _p]L$bӽD
n;-|$ap55.Xu}=]u|y{\	o ?pfiШ]3 g6lBgPFZBL6D6A!]7!$cT|[ĥٿ\J-WV=>|xkEfu{S\d lNxj֬ؖ+ٰq[IB4̆3ycXA^g	څEyiڂJxZil^`lYm對6Ɔμvg63u1#چ6JU)J|S(Q[**-Uj73{xwu>4yzrfk[[n{W9asm+}PU]Ũ	<@nmY#nS|њbUfgEN5£ɟi^
.Y400v8I pi$JI<+HhHT`NÂ^h@t0ֆ<y֜<(FQF/ddb4Et4:'	T 
GI34,hPP uBx$`US 8JID!CpW'ZtjڠjjD۷	.]NVIn98">`*.gt]-=Ԥt<!&Rt';'''®qfP"$a/x.e~4auJ2Ngtgj[D۞ꐡN	q)ƐD00Q\RrxrR
<6|k4C^r15XU=7k$LPɩ_VUň`F%Sdf#xkCfڵ@DkӘT['ě'1F&9@hҙp"eL3æ$i4$HLY;KՉP8sq1T<E
,Q.dٶ?PH3'g$8Y5KM*894bx|t*L'Vi8I %HˆUCjYX`՞jKtVnNʢ|'sgNaդQGO߄z=k_:Kv rA!nk˱~r{[67JpE}ZLA&54e"쵚׭3<6֖5#r?Rzx'$yei+PQxuk!M+aG9Q@ZЏW'ANQ_8g>l귨'G>'8?r}Dqq!+HH(
V$8ep(>	jQY*D2=ůUEnBԐ"cq%_B#6Qz{	F`Cò{yTB12GcƎl"5ZvN;	[O	.ꌀ	ZDR+C'`:44^#bE!e3W8$pMENA:QST΄!QaX⒠OѮ#7^8	~l_z:)*gӶZ6T@Pz{V3q[Ҹ6I0
GWn\/Tdh=$iw&Ңu5se`Ա5+1Ct.?y<#k/0KB"a! ݢ
̽'0iݻD;%?uIC[hraF5B	fl
X؂6-15҂-F0sRe0z,4Gd*pxz)( $UxԬ5
5w|qw*	+Wp]jEojƒ[G"@'J$L =\"?j;7m#2i(fE"| 'tVl% nVH6r,_=<K~Ͷ9Oc^_PY?}IUBN[Rx'Ӷ/ኺyZ'M,0ipsfφ7֐ vê+/"eKZ	nLWG-ILp[lrQcPjlQXv){w;|}O5<7M$9DMvd!'Tve-&m7p	~ad¤n޾}юt)T+I{-16)|nwlg .WF\.FtD;+*	*Xэ.k5}e23[bMw7l%@M~+?m@p^	aNե+ip̤z1c6uRfqK"ʪ8ҚCT	fN|!z9YcɝN[y	>~jxD9[p͖wG)cL0Ct&mib0tp8c{_Jڎ&z=Ia5!#݋P4dK'݂%q,.
HA;]sNs+ᡷgC;
~kZ+k| raf7c5pv'0wAo\DpSz9B}DC	̸Xr̷YA ݑ6sco-H}pz`QRfi/![P\5S9,hcTVQOIZM:G,ZZmS?jm-ܛZ͞.JW~r&ͥfעc=k?;&jy<=wӶ#mjT?K+Θ$v&+໗:ߟ>7UMRWlp:$D;AvzxJ㞅oRÜ|qu!qJIm_z⨇WlTÛ(ϞKփ4=n/}`V꯿>^+4z¸K!%V 'M|H{w$->pCgfW31iHo4R7_6˞$@¾qM$nV=y]mf6?H0AzTFŶ@^rȆ䤐bnN귅a6;,cz!h`ꕑmlzHxxAXs2*d?fqu7b> 128x[iJL?n$=	 LqPxVoE;uCIDT/
q $ TM$D1Txw/YػIeBOH"T>PQ	JR^nɥJ{͛yc>
LNV,^[شoD3:Ei>vp<6q3% L׋5d\	b3D4ATAbaX'VA0bXLܺ/ڂf"RL@آk ]y%`l@<b22EmvfETt7Z*7Ңdp,T3;~zx/FN˪9J_jm7=% 3Yr	,ʶJˈ8UҲb^p|'jK+˴,"%PXܵ2-J*`;
?ORu% BӶ(-,"]1$%E7U^`?XkxRsi1cb:c`8< rW;3*_$2:̓Sh)fx'@xf}8SNM/V~
)U-]̈́!ץz=n!&F6Q0	HGԨUK)J#%Oq".XoL<_?״|o-xbY^/MZ|OF~Fk'LJv烻拓a`o/B lHRVj;a`Y`y,m5IMss]Բ,㘴h!u萷螡tqűD7$VHӰ6X!MA-]\Er9pkCFz (Q6D5"uwv~,tp^Rk(7Vw*|;~IUnXe.w6eYysɫ2}[&C=BT+eg9.rKu__tGNv/O_íN8yVԧ7Ԡ&2V9[e_8ṾW{_~pIuuO),!ca6V9tV]NF?'e@i/ػvo?=T1hX*,,ya+gá2#`9?ImiD~G#%?O='Z~0ࣩ!~|v p]nx;q8da~RyE9y%EEy%zJKYJ'Q^G!H/G!3M!D!-13X$_!(5$u\.ɫ&	qLg"5@3/\`o>f(5&KAk)Lkؙju&jmE	&s$42N~`%1_lsVf]`-_͚FY-Ƴ3 dexZKlUm3&ĎM:@[\?DssnYTU;vQuMjVbU즢U&UU]8P!X3Î?/}+vw];/}1ʫ{z{1Jq']F/?yoNg&dLGvwvկ~oyw7xt60/pornpTG,`^W_/11+#/5r!{_.g{atY<ZNKr|isM\G7.C繫,xdh`:Q+'1~q?~m#MVAf8N}f9~ɿwOgǺ':7*dD#YJa%ed6z[	 $!\9+A4h*:S~QhFE	+B@<feVv*qb<tLUИe<
ç5!C/UvL@c&g.2 "%BDhZLT'H_tw`|j̪C˖Am@.Γ7EkÖeԂP`,ׇ-S·8Ĵa	HsCRqm v(yv)|4<B гiw\ % ^ ȹKm
7ctq+oSID}j]y7Ym
%>q@z4G`	L!d5oc #RcR\:XcH=e B(Ht#!{ɭs0Q8GnUw쪄VJ壊'QǼl2C921?O'u\ni+8}0<(Zx2ր_AK~%CNjݔE8/@?׷!R(.xUn3{Z֘f_3>}F	W2N&2J7I낢&
ADr7ǿE`53˛鈠 :	0pw!h9kkpIf`6P0TzǱL;JT^B:LI1+{rD:rҨlMo\i eҡ\f,Uc
(h(:LFt:za{{gb(/q-y)?<ĀVaȶ(Hy'^U\	|]xQǢT!q;!UzUڪZD~!G@+X<DAc4֯W TUp_>AHzKX-.]*3%LN@ K*QXdp EkDIK7./-2i VCm2==%̓e2Πi|Ya( ]AHBŒI+ʷ0Aޒ19Wip*r=TS9r[s^.UI'ғ\eZpxǩcR1zqn,y{lOLg"yy	l4a_cW
[eX,S4WkX91kiK`Gyo3@Oc@dq#2vV]*w,Sp*0
laaR:;ax2[UŭjmU()ʹ]=nMMGF	Ŀ=TA)
"v͊nRg^(&6x>)?W*(0/> /l&6a<3&qGĬIDqg	Eb[STNiʣ$fr@d;||;֝nEB:*=H+]@|~[[IˣBn֨Am֩|@\22鋯MU}1)/k}4`("}f-hs\㪋ZI*ʍT͜1Sgwc6xX_y'[n)Q}/6Zϐ" 
PUfR2W?.lҗ䎈C8d_}lueIFצR Gv6vՖ`c/	ei#! ģ|nCR_OU|zG@Z-mPzI95%	dϯy|S8swI)/>9ԡ+RN=#fr5.}=sN۸[5T'B&5~'7\ЍߛoGЗش>'g '\JaU^cSSYx^fZ׾X^Ǩgi>Ty2J|lwQV#^82Y~$'Q_R/yW\ fU%|;piӭ2w=9p!NԿo_RwkTz<-f\VSM1Җ ArTuNMN4-HU
}S';JھMBs+D6`&N8/<୘@c4iٍ{ħk$.֒ХREx;tieWX >bxWoEV֩̏5!
b
H
*-MR)
Q4 Bv=Ά%Zq7n U5ʕzu%|b7߼џ~\&[`-C*2VSCk"b Ô$deSU؋,?yPgX ;Ut0 A0(kx x 
)gs^}aB$4K>Q`xwFEN8"VWbH,! fx-'uCl]ˋ6kLH1. ΰ7Xrф#Jz'tI4S㔐b J&.oO}Je@6XFH	*ZZr8ҳ컛zcgAqu{{s30h5TH BZMLB/#9_]Z柱w^zg7s)F@H"+0DpY.#PЪo*XF_5@\AJrөAU\oꈨi{ZV'OYЋC"<_zP"Ĝd'K/~8C]I7[S!Mwy2&
<PTaٻpuYT|&o17a2ZU\EP LۻPGOڙIJ&G y8GK]muFdtrLݝkSsjKS ̵ُi3>AVc[)NY(2q!pHHk	{KcS +܉F47ZtD*m_rW*L8"!z:bS)v9[k"}Vo.ifbqF)!(ha'w"muUU88_ڻ+z"hOJ9.,UdVr9	k:&bnN\B zH2P> XQd@yY`3q[cZq&x֎ϵooscS!Gg1Up@	%|>xh<3ĉ~l[*ߗZ2m>5KPجz|s3sYQ95OZJewS`_{Mjnx1w@kGw0Et}(f}Qi[}T3r%BKbbzƚ;x*)JYsRsݬ ߜEx[s _W5J6K'Nm,N(R!8=,E| -))W횧>8?l^xrHݫWჯN#^$<s&ѣ#t]<pXs:oԟ:h'N6wM_jί~q>rO_ C+g8Q9'c3B'2sșċex*83<L}2(<Y|ա Ð>>u@f/]DN
-	PoL@+'N2oY@_%AD5'gٕ04H$2m8dd׼8α;hj0w1t^[wn=lӉvw~nw5';F	n0)Hҟ`B]K߹IDV,dp)p
Ä"ȼʭ&zWN͛N2WK/U믢,X6/'?sΓ}0S=o7x8ac9l0gOO|?|4 l~/QT0GxЁG?`6Y(qd5V[j >'xX:8k/!??} AFw&xKgpfAn8mQG0#X0su[׽ϣA׳hyktLq<XdR/ޏ4_2
|凩@=Gh̬}_9%#'(_Zvuip01w:v}?Md2;P2('\[hJcoSRoI;=Od	$p76b5pMbfWs/Ah6\ H%eTN7N9O"[^6Znr^:jbN|,+¦V%"
X8HQcӀpV}qF9j!NۯN  !^AZ3ؑ'_}˷GKߑs-ϗS|v^t}KXZɕǏKn3{p$)	H>)!9xɤ%t
uXFk0wR}gjw;SIpw_N9:wYk;z/ 	o!"/nE%<#r* rYgD(s|32&Dڢ#O`1A]<f y:^_j|ybg7{䒹 uU;n7.19@wpPi mE3:OSZ'<KKdƖ6;N'M/m'p!yg02ߛ:3z躿p;Q+Q>wT);*eB,z-GU&`@R%(N/bJk5\t5('x-~ITnX:`lP{5iK[͛[U/{KAwݳvc48u+ҽ7&+jPfV&){a8&*(Pq,s5#Ko<x2I:c<3#!\eO$MB~|8	SBłMx`"&<g3RrItI9KSj}P/'GDwsat1 `4!Er[?0/.R293023UFEKte}#&&:V
)$~
3UW`2{Dvb8h0[7cXǵ;O֟7A@ iɽ/<E]=ǍjiS|J|6E&?Nl׹ 9=ve anx)`c|jQ?P7[GLݛr{nTrJ$ Dl 8LWI]*XܴU8%L̨8*0u}$?[#|3&GN=Q)aNL8^|9ƵO$׊.E5=#fe2Hչ+egی,!Q!لz33#9j|ا;9aS}r=΁z	qP'涃ichweF_%DAk١u4];N_7JG5ut&kQOl'8@13Ҍ6F2T5>"&Ntyx62QW΍kW8V 6w.rE%|s8C^o<S><S{L{|=SϞ"_i&U3)ws&hs&p:20c/7IҙU5GqrUGQ.6pJtXǹ(WN9šҤ@`}Jg"a86v+p}+'e|60} 
WY34Fɏ	^4`ӵ:CDj$J><&bE2@hC6teIGX ns!%sFd Z
9|q>@C<˥a*Pi0)Zd_}m*EԸ.7%n9ڙnzXL$/X
}@0vLyp	1`RŒ[v#ɬ=q9j:DI :bIВ_1D78YBv2`h7ZkdCқqқGbs#ʑ)|G'%҃Aum{/\>Q$fxC;!L[2[ͨ9c#&e\l:9ZV>#H_	"js:'uSw% $[ǲ

 88E~@[z1ڴXL? &d?ƈۏpS@~i
t'B l	,w
lBe^ht*\7̸RR$`<*Ieg^C at|޲ym	1mɂ	#`ƈU/kD̲xQsBF 3084^bʮ#P*C8)aY/:B7[;;g]l?_XB!У'wC!*2TBnBOpx
eA|=1.4v/%*>A!1 G<	*|j{QNPy@$Gdf/bߑE\E5}Zn(;v3JGd%(6vh="B V;+Lk2{ѼM:S.Vӓ~}5:6Rge'MWDKʨ~ryTG的 `	,g
HqvC:x؏Oя@Nei6zn9<<9iCEXFCHx#V%A~&Sכ8v.84Yb1~fN#2F\eDeb] tH`|et{	&X}PsC9_AGܔv\Y59a[Ja{-DYy4l$6ȇ^MhHw"{qgla<yBY2~`ق^{hN$f&8q@EC1'@REG*(i~Av/eMXD=d"*=r gV*11g0z
Y[OxRA;Khizj]4O	Z70ݣA%D(ÿ[musL̹wTsO*BڼvU	{r|77ojo_oFߐ9=y<zK~W>95"/vOSeN"ިkOyLJа7tФ^0ZMD`9ҮNB3t\X7܆X1<v/(IqN[>T䷪#]n?FuL91ȋv}?3޼ `ɡ)Mi!Z67SBrlyv0TeA|4.7G(c
xDi Q^wH}n G+&ލG)F+pپGbFpCC}k?=9bo2(_5Ta8jE(iHSQT<]R2EY[.ƏH"(1}Ӟ~~6+fFᏪ\Lv{Ep ڧ"`Ś6GtLg_ZNaNz6X5,S#JasgZIQߏ244y>>\gI0`$|)vVs~+խt:V.:9$nܞ߁NCsIoLo"(QY2b,!ɤjt؇wcRZ@eΣ򯳫oh^_w^_A[P'/TU^{j'JSwK\w[gu,+;lb@SXF8˗՗/%EZ?%E<w>+K|X8 uIt%ף&/P3Tu1ÿ
5D^sL`6~N&<RZ 搻X]^艝{PjYA$f,x_l1xP2T	&(LJrA)[`Q`DR_ eY2+:>/O\7bU'ˠzo>4ս q/@{tW)fv;hwޠEkX,rB>0\,h?XTzYR9 :$L.b˭н$oE7މ-.o~'b$%==_ӗEh·ۃW+kUb4J+J҂J*\9kCk*53Z)>?0Z˶ZP<,2Z/Ql
"x-էV,]@XN ΢(}irhL$9ڏKC5/ d_2АloJ5_=.#NW,pZ@# #t_;r{:`ה!B]Z˛MÿU0s32J-8 3^9kGc";RYTkҀKÓKDM[->MDSK<H@e%Enb$-;oADE.Lj#	hҕK4۹m{6`~j%(DO(Ʈ֊詁J;nh`9ǔxBĠeӣrV7K?bPO/>([Nϕ[˜ꔆlgz`pKhZ6AVfkQKVφ9=: UtB.@56'_˴(?J<*S^A:Bjze*!pPU-Y_ DA%W%"q9Cq;& Am ~uþ&DK~0Nޒ}7ou@9r]Je)eno^_uPo:%A>9v(*JQ=a0}<\-mgsT
Q7`;⣉[gPD՗7ɉ3)ftQ%q]~T"JXo`E^_G΃FZ q$l]μw^ЙPV58:MtNə`"rkۍ4[-,_m7i.QmR=脲}ޒkQnVbCz%}IBYk	Zd|Bŷ8nVP>ΡƍmxRU>)fjKY~lj(KkD1?	/BxӁ»%n.Q64tu[JZ$ mo	kdYNr_YjvӘlF鋮X5Z\ZRCu%lDi3քr<9d1}ot|Z.!M~f_55oeqG^)'Lo/ezT:/.j_|/hr!LPB^Yd.Kf^3wxvg*7brl ui̽wzE7c0		
_X>?;_ID4H6F!<dGʭnn@&A1YRjE;/ׅR 洤߼	h2gM<+]T"[s*Z<Pm.}#xr~Kڲ}
ZüX-wrsmr#>_*ϝ6AϨ5=.ٝS-#>H穦I)%Qp#\(ڼybU	c[i0~Uk4"BՎNٜl\Q;	*o 2u|'}wҮyt6soGHW,&qcsY"چ!y-	7aq+;F2)5jm͊3^3" JcD{=-]+as{:B)yŏpu"TAeѠ_	c"),&-"t &{HrJ/a433	nRڵ2<4
jL?͚ӵt,~D47q*=Nۚ
"%H%"~LJ^^5:Aӣ#KP8Ԙ1<:GTFltZrTGÚ˿H6bٰFai=~Cd#NFx 0Ћ΢BGQ5 ~*fx[p6odR! #Ԁ #rN	
cDMY!1bH%UR׍P"J@g{0ULbt[B4Ԑ:ŷ~PȒ`x|	t7Ԅ_Q5lZU0_\`,|_:殧)&Ar'pNυqUFK|BSeLn/7bŶcZz:fփ,Cf#=@WFͣ$JTV^í-`Iia4fxMA9_TQ]c7CC%gŗ]BˎfƺlXyIGei^aM6̓(P; $\a̧HVۡSw̣4CNELdb&jddu7E	:J"Z8K1F:18Sj%>0WpѮc2`fR.`%7Fg#C5
FTSZZ#?Hdp[nrl*XjrjdT
0K>jyΈj婴ںaDvtNQ:ųl]Tt n[l-+pI.I]6V/xE([՜h:bk3bU_[%Ķw2<s#<iJT<^@aqOQ|/ܼnaNBR`TSi aٔrGZ1X,lKlq<ĉ,s_zr$,"9ƨr(0H"^%#51aM푰F!*-9D<Hk-7zpm慭+mJ 
MumPҭ'y-ZV"f{ְ][0 jcC43wPRǨ-K.8&Jc9IפFk4썎a|c[,BQ%oHVGY|5̲1uW9@u0j-;d n2	b:똁uJKGЧET\,r<l S Qy@v	47i.7fAණPxlL:_̔Ii2"IѺUX`,J=A3eߚp9+s%x'Z}URynǖD(GIwn'ݖ5Hq{mͬ+й	T~v僿EuD _6ӊdh\I&<q*YڐT<PFJ2zaD,	ZOquLe?GJ1ic$!VdBlN'KYMXȠdѳl@vNkLt7BY6*cgjM=CCD T<c|+[E/jf8G_]1E}CllôAћi.߂''~&'z߇flY6|]JQzm)0=7jpElm)uz uD׈"DۣZ"kR)c0B4(	W"tiarԏ-K۬ԛh 4o)\c*b+s1OD[8V8hօ5)0#gnƇ8T	|42na3@h!1sek0-ԗ$2dd͢*d6EkToD%!9>C|agV5\7En"ۮU3Oޙnwm &=;\}IMB9X5+cM͟gܽOўQ"Dd=rCvI7ZC|!ަ_nX={
-]?exg^$s㉥M(gqADd+W
ЇXd;^$B
-bj_Au=B<˔ሳ""Yȑu7-;)6ا+fC}R/$Iڷ/erע+橀1=m2jd[
遱UWM~nL"

#!_n2Hf?O+A}x}<	w4kF+5#TcGAŝc8k\	͕IL{|<dyh֧v!zXEp7[/f)"d[kgfj/'[eYl;=V<pgR+zmŻ8{j+fJ+Μc²:gZ&߄CUI@՗uU9#;nIM79jN%# ȅY6e$.6Ƽ8eFR!a&cQU$Mn%R9i/	/w(toY\ђCG!ְ <DKn`aFqTQ7զϙiYpe(`F*!myb	YZ3mEǀ3WhZ9fQxH72Q%c*&:*hSmyIi+ֱ~"xXnwpzO,dNj]zK&8wJD	/(B~ƴ0CT	%|`$Yh*~ߑm!D	^(I11wiNd+&zCj7ᯭ'OR@N7^VbmJ1[^>ֳw-R<YRd2Yha\ߞIf\E8ۖf	Ԭ,p-nY$6/~?F[xP=鷚B'5@  0r/7zQgAvISׄr52)_^~3k(Xi@f,+XL@fxEթҖ%vIc_3ĻXRU[&wwd}%bAȃ 8mxi/N8(@YkCHZ(C20Ƌ7,V BJXYL<ggaݐNUwO[(_O'T&6Ph=qfaL[l,clr]>nܴՆ5XXï%Ho@,`x~|5NHPn`ށ4hZbp&'yFNr֓1`Y&<HA
6_(iJIgzT,5V/zA8[1*};v"^Yd-J_jmbXb[t;6t6+Fq>QnRnTa*Yiqhe[J\бMZ! յUY~I}{}@nKz5P֨>:D}xpZ;<B-W7
,]f_!<Ȅ6}Z>R\"J}\a}|V\S@h»޻9kγ}3kMɝ38OW !"\"en[xgQ(ǐ!.+1$d>gr/jJ#<Y,w33[z_o5.x edHƾF_Amf%/8ނhXX&b!
8>"3K$.nhÖZyf9:X1kXtzSAԂs!G;C'zj:ѓH-_A1on3YY;{_FAI'Aюj`ih}D+wRߋ|-mgڢb9wc0qAO{Bwޙꝁz1"1^S)-|i22R,-KmM$l]ʩ(R.ns9ևԶ>&36"vOAUm y<'ѧO3hM.?PpkE$K3b,VeUYj;-\ˌIVKrv֨E}`4uX_BAw	UO@9f]TյنXr%$N1n/ֲ-UAG7L)ZzڞďhGLgsh]B2Sk|AvL+^~#
zU,'hbYYqB[Z>fd?xP3eRPQ7
7Ib"BcY5%k7ǠFŕvmq^Lݶ%\/k4I6t6Q(m'pog޵ҖbhPw]x]NOatEg+Fk'dʍnՈ~j	FpE`:[\	SEP%Efz2Zq+2V&m)j\teUW*M?IȺX*"%PN*2fzçf^4.G;![PW8(IL.!p9JY|x
qdH;^QS"Zbe"soڪf͚ Fa.EIy2KVQo[^|КQ(tt'ܚsL(@6yyD+5~7AyAwjh!dy%Q}, r9DN+(eVUݰ'FϕSd"7fWNGp)nEy]'[A-+YhI{ێ(ı4Q1fZb2T]q|K LV|-7MGH@Y:3̂\Pac5\]X	n^;XRb5òϔsf`xXyggw1}8vS2MӺ^Rjb<c1rO<^MoUkg'E%kZ#z
:_<VooFp\*.i
5٢?5s-c=VUʲMsvcm3Trd>p00ZPTkO`Dl(.UH	=8Oւb5)oAGFYK
&2af,s3FblJPq4M!@,ʉض --Q6&yC X˹*>$=Bċ 9p̒^(IM!Hx#` :l0j= aZ23:uP/^%ԓyljD#md)ry?ujEq#5@slp9״K^E.}Qy@P60:o@O_c5FӅPS,<V8k4`8LJʷ/>Z}"u#X.o@W֮oW2SV2rMi5IlBW)p?gxGoXv`:!;	XsIpM2' bf:"wѾ"g!:=a@46ƿϐ/򶏊Q2ʣ,-[ƶ6E9%gOO+話6to}_S=DcX40r+'ZcL@MnAZTvE422gIf.d`}|jC]8ߋ2tYZM͇`M@dj{S
[>5g}.PǬ4Wc9Ò,i.?,,Ub7s&?
4p+Sv_ 7 =,lP(&[lE%U7~VH $3?D9&Z:"Id8\-DTI|{R	$ytO_7uMOkp9K^5n;,	hGPEcocrD]Zp{hNu@O;Iv~F((R+RF`m]=IeZ\1L"_/N-]k·:yz	Le
EnbxƌXFQb%	f N]HDAIuU?~zkXg@u*@L܍|<)I/]6Tdᄃ8Vb
lcK߷IDAKKS}bnBx<ISOKAL+FYlbF0x v7D_?g$>WA@XZ@50u\~Mĵ:?4*@)kQsV撵QAkfMȂ'؀S,Y9Bi	A/EUԄNOSoKC]s6|,xbP-w&)k
T7rs>%,/mxF3w:iPWQ,;"u(t4P"blS0bP&ׇ|ÚSt,}/c45.Iߍ9&Fqd8Ꝍxg(.	(:
T%(HA,ls6 vk|Eu~mB @,i/?_ZS2g9Wg_.\H;toGix!qca]~gq^Wt=}/~tU߿WD.t|ĤeQv
/.5*SHfe/M<0~wOxw_~߁El%(<~{np+%iC.߃0涃T[	&VM.;2nm7I:-y,sv?*:!xV֖sҘ?!" T+_&K2I?:~Ts8VWm֠55KoEө5jE gOk4b<E @o"i_?aj|h 5. 4MhGEQ4:J&ِ)VB
^*ŤDy8Vu9 s=H(2`4Ot:h=Rۋb{oxWU˽"U_j2w/̩Do&mLxsԤ0F6@eF_)zI+APy%-Ʊ͢%R7?<f
7dTvn$h#`oB$eLCOglgWJ{ao5ilRH,L$	 Qº)%@lCTIQ)4Ax;(JZ	.^)3 F*/Kiig$K*. n)ZI޻ЄH&`sQ}{w$x׶7=kϏ9c`pXzOKHeMh]-5*-uQ'_,	%c1V#:*yhy%/e{DFuYboęm JxfG ۗ+[SuK|3LV74oG%%jM3SHvmYz׭=W@E'
\3]Oi8<Qb9'VO
LJChsp>DGr),6wq~g	OqӔdEd| (͏ƬJxQ0H3<`>X-~(%:<!"_6pʆzXaȪ:Zf$mm)/Pb #]S[2^R/xiLmX?	RL`^_jK9Z8:\Xťk2LTץQtNJW>	W[_A:r9
ŅM%6^~y\`7fJ([h<eFɾc0	0?Q%VxiGB$:>Wxf64.io7BРjWeR>N	-?XkPsma)/:g>ikzҥˊCHRF!Z*"؂y1D$Cehov!%a5y=u$froC:AD"úyRN*<ȶYdqTWbm'Tcy?]TZ±Uwc	yY"-K RSPD1hiUeٜD:9v/vV6T]ӯxU~7wF.L7"	iZ[,0/H
' }2Y%D$o[Z{k5[f.Vqt1?_K,|(m(jsQ;\Q_&q6jF</k|U/nK:hC+T^NIVۖ
 01|ۉ6?Bv*L'
aI3!C4dqne>H!բu;+d.sf}F|Buzj;6QV5ibE%~:rޒק-,֑wRbժ;S؈AȡsTM[)l~,f>5lQ/`Ζn*Y:'DkPŜ֘l #A*fi>H[ֽS*fX@7q
̅hI:d(m)u ozs{}o^3)ގ3>7=iyn1i kBuЏ!Ȱ}{TۻV6,I4֓$reО5ul[3$]y	WrENPkz6.菲jK\ڮ-ƴeo|0|o18e>ǒsi d%4\!^L|%̞xEY8ƆI)8T&q"b];4x&D-{ݳޣPУ54pYa5T|k {k_tM|9ylOjq|mֹ""&VBF-I'd _4sQFsYZ%;xIIMΐuA
7SZ9#L hѕ)4"m9yN=
)xUnYLZ:d+x	z79zP34R\ ^<\F&|@ʿ'PoB%g[B7/	þI䊤k@+A듃h_xU}"֬ېjj5p$X,/̺Iu/xG`
Rq^jqR>Ȧv;:ƼAhoY6vm iaן6	ڥ*g;GdzrzDYnMmJcbNlMGXC9\ij8ƴG(hWѺ[sEkuh8kSL0J(rXM/rna1XVRQzL[OGXekL>HYF؆pZbYWjBd9 ˫a7A4=ͷFhǝQ)oߠV̧j۽U@z'C{CV*a-l;U}G-˩ibvꅳ^MhS9z{^灦-8>nI4L[|_8_D-mu%~郳{0-X¶qjH]>>D56ۆ %Um8".bmxn+FB[A#pX#:up`*%OY eNyP[ve'Go{۴DQ{Bp[cH Rˍ"+Uq)L$.Xa@I!*ZHv<:hN3^]m;qپۅn߯p,T2ZLWFEN9LՅKїfR TuFH~`O//dȩUյ5y0<`!rMT>&
Kz(0ov[:Y{ӍifOc"f,b%փG[7/H(Ek53WIgU\T/_R(p-rب
[J!V oBB^Ngej^4Z#,>Yh|}L={jvOͨ,ORD3'j=A'hmDEg3&G@OML?1hȗ(sX$n_o:QK̙RP`FhaP=1)N4AG npƟ1AK{g+LZNd"E@Avt
&zAfc¨ΤĚi1J
g4/JjlyRM GduU[6dvF)~k]w/햔)⻇\Y*ϛ:9(Y@H䷂/-9I5/F|q}Z꧗N.
]nף0)= jxyOzq^tei)@5Ҧ`
C>2颐T4OsmX4EQ<ߘɽ(!6뇐%qIB1 u=/ 72Yz^c)Qbq߮oG^ŝA&ۓts? \@=!<4S ]/IgYySگzm*.Y1v xfZFTN&,RPMrRd}^
8
7N'8D6$5-At{$x4A^'	iy"Kyكo5ד 	l-Fbz&C&YwCZ'ߴ)gٌ@l
xPhpjY$y9ie]=j~Ъ},pV㕈I.aU['DLIM9JL7ņX6XJEy,):_"$\+%hn7a::|\(ؘ?Ch8	rGACFSqE5Xw;׀m6GncՅ0ؿ^!$C~Ss"4yw[£0V)iE@v{\|UH9ԬT
miumuK6R^/*/~,A= {?jڝxL0,ORh=f6Gǝ^gvǟWVĐ?UxZ]6((0;(@VkJv5(D m?
4F
6 ?6_t8SWU'
YeWd׫*[\!d1-[vAKM
\v+d+\UMus+bf.Cf
0'\;a	'fGQBߪ'<ism0[Al*<KN`DB>QxB=ĦBdټBۿm^GU*npZ!v-2dx\0M{v
Cr+T Ee/q6Q[q~eU]tTpV	0+D
F㧟}]l&rMlޛB)m*Y*\q_i 
unfP/͓O:+JVUqUmN{,JK`9#pAp۹Ri-Ps'Us2vU<yh=Tct0Bne,	N]zL_­ؼTHB38%驐Ѐjnǌ]LyZ$1Qd0'*J?	/
JRTM4tɥ U@ :wk &ks4=nj3$O+d#hzVhkaLN@t@]& Wn5 B4'A ݟu+EHsq!yIi8->^'ȷ.[fHܳ*5ȿ:ŬuBq%#:nwݖGd>m_BOgԯ!A쮀~nbӳ
]YKVڅ|/Z}0[xKД'ˆyݖDu-j;(3fWyV!
<0ӵFVѹhz@mWϪ @^^2x7~Rq j*LzV!#UW?|V!Ľį.vr{+4
7:ku=9!(*6ząv&FFnnZ&n5 f5  _.rjpD_7F鿫21&/B[8_B1w>y4-0䣺dذ_w*]MwƓa>(bU,7YV4֓
D[zҁ"<*цb#\d?B
mH[џWʺ2/hӧEö x^!
EP9Y{W^Vʯf3t>ٷeEdo6_#{'	4jCuWޯwVb}^iz_1?\q6QVrϫdmƬkF f]]9}^%/F^-nv>:viC
v]U0ߛYh!Ysw7}?\m	{;E;n7}_oLRzᚵg.2:n7}vX'{1UG]>uhwzIU֗mnwD+d`:lC^mu^Q{܀&w֚*IW|WybWqP~xG?{{hu:v[%UuZ2y?8Y*^2~`[1iX2bY*UJQXU3Ff{`b%Kۤ)4B3qR=XXW[B{{- ,WP2 ˪Uf-w(ϳ*3X[XxT!ۻ:yQޯWZ*m3uLQU.!׻+]@=*$:Xޅyw.\+PskC
*\FЋt.WY/e|K\%?]҈{lF]/7Jvj .p%aq-\QBNNJYvǩl_D\yヸ"AUə<{%4'wUlnyr4$KVkۅl&Hƫ@A@?w֏6(kEBTdzF0
7ZJ'1m;-aߨJaHf'wO{f/
gdB3A%X6tLɗߝiFxm3dJy\7@w
ի,b1'}e	
#Eڎ/Oq21hw9hxoN{oC9ĉS"t[Z+d_nOHWYwMO~u5[Qj+t5Zqdq-d.Z0['g|
c߿\^]~whTBP&'Q`NYu{^9=Ӗ'J3eUA?P|٦NU'/]mB}$5l|Yi`~w[<6
ňqqNrٓ
.vO]Tբxw50Vrc%kE PkL S65\SO?UDza	ydB6V=7f	_i(ՃhT-fy4nFYD*۠`m@H*[ѭG*VmFZDOU4sDѐYA["-C*3mBX@ (["kZ\S%IJb)w<8ȜU]3^x7}@FP:ϣoG#Qz0|'k_0(s@b:hGD4"E?Qm3цADBjv>NK8!lfaA׃%,Mv`}1%/΂k{<׳ya|_ d{\&Xa$g7+W?kA]؇W )j(Kw5&suLk'!$76Zc	!o'̡@n5lK!KO!2e} 
w`r^]v'y9|OfOqt~gaF@)VRk~n9ȃن Kɓ%ݏbvָH4dM"J:v\}̜ε;AY{nxε|$cK[>?AJHk'z4ޔ#;9BM;CZJS9xhoq(!LeBȫ"Va$6 Ǧ1<S$ù	$aL^!>X^:e8!Ug_6Rzp8t3}1>/9ԁK_E 78L Ak3^yP(C`Gƫ1y[82`𛍇U{6¤$$\3LB@xS%`5e-燴GGywǛIqK0ᚂZ`AoM	X#DlG ɎTP0)ꨨXC%sb0y]cMV}%K#7-7i;gKtnr	HH,N)--%P$ B'wLۖ!(#U]f.Ws0!ޖ|֐1[Aͳ̥D;>Av/c=uB1,Bwg-Ei.4aGzpFA(TO{T"M'@o6,ygz4	` ˸}PxlA&S㪀Gn-}U]19fdRW"+aC{8Co`|@uw;nkyԿg-N 4x;=5Lkf02eM~,ҬҮ¸]IE &0x;w=5L%5L@z{% 	IRx;wǆ̓0	N̼b:fvvvVLZ .xvcSf>ԒҼoߘcf 6=_xX	TTW>}G&ڀ"F[Q1q!.i' MwKX3\q F$$$D(Hbt898^MCsf}uVZ[nhƹ.8\@w"g~7BO'(n(dz	&\V
=Y']Z<5SmlrGpq'>i^޿	XWO*XjL1|S0	UEc2 S$%");ȋ7E%oaFdsgMQoSލ_'g >6fK\傮ܒW&PaSctZAd⅍]]<>*,A oރ'Xs
kr_7u@<xdFiXJiCSRPce"Gz[TC r\#T
UbNMBNx/5jL:EI:Ka.X4)HGFfi|rO\cHO;ݏ|,uI"Z%ȲL#ٳKMRmhL+!$L /Kw\p̐x׮ۆd'C&X͘|]fTeq4dA|9{z#qmJnξQIpKJ
9צZخ"ª8lZ`
d<K QKǔ۶{jssR[n掕(=?Mzz^)ͼ=/%EI^2B'L4dY(\`}*V׏vD<VT%(|7uutzƢw"	XQtT*COdGyz\1ɼ̷-.3jY5^лU\3?~+͛~S~ΗFJil*2xWT*Cѿ0U[Iob3=klC^e1Y?>XOW<zjs97jZf\:]Se
ekQz mfx_'#b\rb}<:"PifhuInaM7sѲ 	t&z[-`sQ</g,8?+ɶ֡OhxwܞZ_m/#c{z-J1qޒvvBo0+וV#!ba>[Sحgs c_.䂗}_#_t0"G9fK5Kٽ(wSz
jHF䧢NEJAS;~E,J?gPw:{K纁]mQlVfkqKmJk!J([5&
TmΠWY.ZMeF^`iFd'	'ţ.8}֮44/W:	M;EοrZ~qkqxXFSaNf\ސT.$+.ߕ7vUxy\ȅj	kpЂVgN(=mFP|ܙLpyS'+ǀ	O:R$yUr,i1`vGŕG@
a;nr5
4h=+5
Z@n=>N8 <w+8{b_!5v/U33I}"qՈŲ*%t~̻>}O;q%Nr5|%v^8@Ϣг_EO0LKwb]/wKDE6XD-2idh9&zچj]ٗ>J'UxR0niI0ٮQu.>KNkk7>1>̨ ^7J]opC`ʎBtODWO?Ek	HW^)k]4ƇI_m?ߞƇ;U$;߳p
PdP@pT4[gJb 	0NwDD_-B`J홸ί-Huy=s>Cر'TL'x=; dh&7W#:`Ǻt0W`;+Mqr& cţ*_yNhLQ*/$")AZ.5? ~)N;3ʏ1RN;~*эL!vl)+tc 5n=fUtd$_0Wa$ӇXtra1}e;OϵݰFT7w$IԛkN`ݬ^6h.0W6lre~:9J!sV"B&3@$H!_	u`nW9+tO8^Jl/SkK| f?g0AK`Smj4[<LZ)8ū,p76i^bW3.z.HI\?Kx6}\JE0+lmL:4A2g5u9k^n*+W&W5guAk_R=g5 Vf	
RΎSDlv-p-DEx$;q}Pi# M0A% eVUaKxoa݋7MK&:ЃTjط`,[zȺLeJxvT(<+NZc/8&w߶B
z?[uYBxLn.x68YML.>3FsI,=CuE'k$CWO$V3y~}TYr2}އXvĩ bZJ.n_ .րw?;Y9Yco_@#{_ktt@jm6YgvP6fXXt'WڠKJEm~<gM[m1if駤Pܲ`pSS-5a3aW%$8w~_D6v]ȷAկ9)Hȉe7k~,󧌅e͞;OsoRe +a7yt1ّst	Y-뢸&`#,26,OEӐ˝XY *=6sYZ<w 	my?cEq-rCfWh2:ݜ͂< x[r2*t^jiQbN|^jIy~Qv|Qi^Ifn^qdAo33 KzMxVAoEIV64$*XncTٮb)ĎHeƻxT{fMe	rP$rGĕڍcJX3;7}y~3د>L>cQoLd`BOu]C(ROpD$i/i-M%
9&b˔+!sÑӧ\Ћ9g㙱RmHj9})ʸr)˕㏠ZEJAk53&'n&C{Y
]St9n+e>0<9W
RQ6sM-F`CpN-	usXFP0rXf)x
R&٧`NeoUC7VA-wIYġi^mQ\KfOSɳAxz¦wl"FX`:y+.zvRNy8KRp)Z^Fq-x*]&DyM]ymEe$S f{0jc`S)y&4mcCb!׃[V R"bVC$tkgH8i6Gj=@.PWDFe#ƬҴGh3T>3tC|m?l=B9ToʏMܧHi8 C/Cpl̱ٝ>/FV`2<$/ӇI`M/Uyۯvt%dTbpf${t/U.b4& H;???avXADlv1jw#1L}uO4һrMoS7rt4=޾v|4pt󙯟̜<2C;.>pEi7.ϟQDw"#MѾe^ٲ+3xɺa	3gf^rNiJb # U/Ci:FĒY6'&s6B:*`lԼ"<ĢJ47Lt3J2RsS!ĢԼ$ҒnQړNN9y$>2EoeL 
H@xkd=ú-L"Mo3ggL$_0me3;g䳢^1y N$$:^X4"1/E&.94F?N!(U$#U!3/-(5/9U(4XG<#39C!,_XZPX\P`rdEaeh (I8X^v!ǅŰjW,#f8Z7@A8%$QG#/>((9?%U!D(g(hA<W_\Q|5'd|F$adud-x	r7 %+ŶW1r NPLx;zuf&m,N Kax}	x[ՙwvKuB%c9c;qb˱l9kھ *Zb:O	tZʣp
}(ShtJy-ӍBZZ&0^[ ]rY}|| ]o?vsKnrw8XXZ̍+6qK跏mjɩO'J.!w7T\[rId	2WX^&ǿl'R_<Ӓ"."ZO+Hp&·HC]@R$BI[Wg6'o$÷${kHljiij_U^;$`!yRm4?#&f̳,t
NHpDt.&Ď3@ H#0)> D"rhHL|)M&)QH$c"6#tLXRĈA>Z(πو%
+d|v`^羏|^;ӚCbg#O6Y+%ei7v~D[E~љ!O藐Ӟ|כ+vu6~V
&fvo;x0ބKx	^esIt'OƷwXH*۲yG伙m9٢Do}d<}~a~p[DwwGw<=G
5KH;vSL*򭱓Iw8cY1lV4KK$đN>t
GM2o7@^n<\[OϿoFn+Iq"r)IF,$c@_W4 &"A㮽vQP4< Ej@fhϞEBrJdqx-Ww8VOl8 ;igիldew8V߹o_@T2xK
F[?p Ӟ9zu#e$%W)F>	9V\0{fcL^d}쇝rrqqQj}25߭$H9Yk$D-EM,z#;)OmE^DN3&Orf!L1BL O&݆j!KVeMo>O~O4]Hҿ\U!ꘓ` W/Տ/ް \$~3wC\Gok.!_̇nȮ+K<~rTW[gnK%dMu{M-+75SF7 ,%bݼԶ<09oIʈ:d9qU}@V%\L\O~y(s-g?*M,{a)L >xQku#KG~Z.{UH
J_'G]K	Hג/+!wݕzÿ{6J|;mY$LǷZΦ'H}mq:XZK]>~4>O%;zr5f! jIOՒӿ/$+g0\H^/H|-юBHAو!Ocb4&H"NWpJ$+vaGfHSv<l*G~ԇ
ѡ5+9}#q	ɏ|5?sz1iv1UkgJ>ϋ}%y3d׉jxDN^]˻g'J."k#`9W>Ɠ	hj'5d/_6hŇvcﶙť~u3y9Up8OU1!
V>˲w򙻟O 2Cw)|uyeB{3e,!Mhorqܣߪ ˟I,QiAƷ+,~ϑɉo"_xR˯_"EVMJhH8Gz9ǭ%WfJџpr{*}+٩Es_KO&_}ntu1|,{UvEP
Ij#ȶpmș5ԩN̠:y~
ns5>+-4K5޽mTfcLJi$p? yuZz9R<3h_91>	9	N,7L7l/GŘb0N)xdX4'#	)D;$9Ā,NMߚ[32̨"_{½x^*2hVy|6ͶoRzf9uV̳gaRCg,LbűS5?[nERd' Y.RD6w_eJ q瓗']e0H(ZWq~XVquw?)LRdsc.!		G`D`ͅt=UYRB-pX$յ5ڠև~@(z}yſ%}kt%'/Y%~),!flLeƯ@zB+Al#5/W- Lw`/%,i(Vpa[y]]	2xoóaS)!lqQY@ИgXYLEȷt|k{NB^ƄcŨ1,)yrjw~38"8A!x(9L9HO%1ev)ed|o|iKzg3wZ+&׿s]0Xј<'%ࠍAuBrLJ̄UӒtOn2lSk.n e&i0$RQuL*AQN旷OB5#E쀐+Ga ^l
,kv]6~lSg|
TQ)A#)))[ꃒc^e3>D!Ĭ
A
zXTRIJg"HbwOe
M3aK'Gr\JJƶgѼӢbJ	ԒjC;?n|MbBdZ$N+jH¢R+ĴإtSʑ<yHP=юBo%XˡdB9\%yW5RL?wȗd)k_Nne%y%TwMбˋzHٯ+K#d<΋|*Őh"yc
5FPeH:ذTҍ4-&7қ&%nX_VgqBNzƔ8#@{Ōĉ1ιPd\ѹ8ttɐhb?'W47JjeZX쎮Zr`@5 :HVl	Y":N_folƽov	Q#60
Jnf#^,ژ}/4:Z\+H$)Ȭ%$
4`NB/id&`U'OM!DB0:T\sdL䧪ȇˇ]:z`A=z Γcwq}qc>,k5$}˒}1@μPhPXP;FxTb1athPZY9a!Gk`'*&SBȰciY|&&*~-;ڰQ4
pEhxY;q6x#CVux8Rvۡ
HpO|o뽫4!)MևŒluXsUeMg ф	=+
C`5s-u#z5t@&$">\;2K0HU_wZvP:J5܈N<QXpFA|jCjc܉7g|C`|VЇ2W(4׎26j(CXtCE	Pl8[܌qQ!p']&4ݝNDsm!H6I<FJ2:Zdi'K\ nb='q$$N>]59+務k;I"`UDP!w9*N>Be/ '0PNs`'Xd'.UW<nfXάŉi!UU	Ԁ?uOU{,ՄGj]ي9(F3>#B,<r3da1Zh1Lc'ZxTNn,$78~A(ZLhGd65;%j=V11ѵ1,T75aFiX5f)~Ջ
Hmp`$SLtogUV1݌hrJL5@gC!yzXP1 tGlj,c,ݘGʧ039Go1LxORS:kՇ3hhhd@}q\6 J1ycqo.ٸKӓL`m*}eC+@	7+KB0l3ɀ!:`t>-
N!MymԳكj+o nf񗖫(.*]&ngn
tX3T[>}w1@}~7lZV-O* A	POǎZFXcŐĒ 0H (=Sb(!Ig!),%CoJژR^+! QZATp69fM 
bt@U0@+d(:ӋK;1߲ ieE:c75trTFȲ 3UR
1Hsw-;)Мήm#L4IaINƕګfry´H^n0́r[l`p
F.l0~^`&HR#^"jJtPhHz>htR:<J-cy8g.Ȗަрq(0-!FqܼTzmO㻽~ѸҎa%e	"WDŘZ^H8 74:zGPcwֵfV`8qh좉FiDH.}z䥐vT|
]v2nbklH5=SuX/D-K:2{)#quJÎ1{񶊖,ACiÍɐS&fbyò>%3XbYb)'UXWkpx}0^crl[ Ƈz%S;!5rhwN;.5,fKD27_{9Ǒ2,;3G'TʊG=>&N\ŨㄥHvݢpݑq1j۲)v5IZBhL>):SZ,
F]8o7C0B40+-JM}Xnj(	7$fh 5X(t\vmRc#b;v{}#,R/'1;R@a	<9$V)pD2;B@!K/]#xىͺf30uCg(f`PS3`Z[1u7ؑ8Ad \]I"U5v]Q ݓc"2efIbyvdBބƠ&lFdl[@(,5&:5_a[04 ӄPt J&_}oiRIDT4F8GR#bbV]g$+6mTig盪 R,CY19
&Uid_NBG\i8n]
+M*9&-D&mSnAi*
a*f+uR	$q)^}'=6VR#vqZ̎#ho mpп@H!%kX.,%
-HnR.l捉Bhx=sDi9x7L lpNrD=D%d2ƆfaJ 44t5۸ #GԔG?.N	trM[CL1exm@u0g+H)aN
M[Mʇ쓤	rGw%M	lօ%QZ̫p RĈcA,EbTt+Ԁۅ'[sT``#c
XWMq%݈i$Lv66R[7bJ&_,)63E0#!Z8X4gMTjȭKAͣR+cmحu )Gmi'}sD=kcMAZ|jk>ALB!E4WvQh	sb,=[2.C_pI`Ɲ^E#$3o2c)yvlMuJvLM6`WVxsA\FD8EBLswC0WI\gə860vm286~NxzPal4v:v+6 58n;fl?U/(<KRU<MҞ>"VEܷ/%p pzCc;[Bg7@pEjk,q:r>ֽէ{t*6`|ǩVb)f"t<޺):ؠ3F͟M0<p+  5p39vLӛ.QOS<uz2aAފ%ѪDvo9haEKq-Sӯ4d{7@ɑGԩ2G"GqCť#2Ϩڥ0kvH@J>a	H|VhQj)D};=Q}TkY_;p'T@<-Z#)m,xz5蚄iF;6dj@)h]@&"3?_P~w\L-ۢMQԁ@2&h>iVV@k<tnE0U+r .^4l%mʉ\8ꤶK`N$ȩ=Z;WOjظg({h~kx9gϨpyX𺰅'G6K6(MjTKX+5zs5zW;<,mD\sMR0+-4uZ2̯`kl`^)vǊˌ ʂ1N#coZrP+MS{rv)>J[r	Etm_Woo-\%`X1hArJursSy	?f	l 0U`HƀJ̚bxӒ6\mv$5AA4 [2R;ݩZ;p78V	aV`sz4u[0$_m}	#ɕ,ƿ+w{01EdcV@#v1ɖ?OT!zz!߬aHvE2cW#q^	0UȀ(X?2t	UZs &G-t &{{W=sO>\RURXal\ًKW}t<ATNkJwuT:lS2qkSs3d8>Wu
B-h%m@haH iA$ Ls(qVdePZ
11DCr]	+<LݢEW;du@@0}Ƿ7vD0%EÚ8{՜Ylvsv/&:ߌ4S gʁZ03̓ Zp:6Ƙ +d9ladoU^SL{-/=+u ,]
FQ.ט4UY4,Gq<ȡJbgʰv1q%L,xD/<&^2ČqVd>OiE) :(ݠqs**گNcBc#y"BȂCb2`)A9,rpRB`*8j8q\3[NdebpE<CƪSL1jH*9(ʍυ@.F v+fbE̕-WNs<^sKAd!gp-M5<KgN`o3Y:P/ݻYi~vi$㪭̿ѥ_3u.+lTQH}D)F.Vkw띳[J!d&Mz\V>.uo#}xM^ g>RA=7+Eci|.ޣW;ic.E~Vs鶸< Cw RH㔡[^RYi{S5ߪ &!VЃmRdbQfhw*:Z_wsi* 8r#6Bz|#(-픾)D3p&t{i[BSmj[&oR %2c=sY76e{#ڷSf1r8&bFG{bkyQ{-FMTb8Vz ίn{JmHɕdCHʗߧk$dSZEXv)مr0¶Ζnn࠽jQu'2%鰍4JH31'$3=U1:2רkd^{/]1օL7?MƺWSx(]t(%Sӡ~^C+LWaS;6^`sҾicj.w]VE/X%%_sfuؤ^n-UJ+zzu_\ɿ|JAμj?Γ/{*2Y ȏ[O3o v7#DPMQm&`oÒn枔>`0b :_=dH'nH7I]9ބөjϴw~_p֜$bbVh.+doVgWpքPmZ)車[+gI34*[$	Ėq|֯	j.N~Ɨz_YO*S.cuO~tzа=ۤHf2CePyS.luW^An[v5b=a\^ǀh]쮥\iLў^0صtA{EXcCҎ~W?>ٖ[S?_jvj+əw}G	CylrUR4GxRG~fB;Zd-T)-X1}55:zf[OCS̵'hoH"&+@:0lMNe􎨡$JaDxp+}ewb+6T<P%]QqWd9?X+Me|']VQh,zrP-#wSkа;^=oVUPt%λzn"Zc,h!}W-jKv;|úYI_q_[Ʒm1בb׾."@)~W~?]]y2u,MK[rC |.\h~TPO-ʵ'Z.rqk)w\Coi:S˹N_EF褿+4<Z(-FKˣߖG.ztey֣
鑁*l?<e*#kh,j.juJ/,(tP:~9RrL\%uBwz#-}ϥ'`VqBEO%V=cH\}kW .ޠV'4`wB:nA/^Ɠ48on2ƅG̹<ʽGV鷷%ݱjXj6g۹^we~856:]RЀڸytقvNn8 .<NHו~aqk,2=ڒ~ΉYx;9byF'wmgl6)x]n=N2=z_lŃs󺼉H<nUr:》6mZ97g/BTy>l=[Ycڴ[Rw|^V]Hp{җB40齭eKKOsՋ!SJU!'}f3/:=q02t}|EwRg+ӀzCu1?9-TDۉs _|=AwSjw>Jh2wV
0UXA(i1ٹU~1yB<=[看REc]օKc0bɞ\0ZBG2n5ln.,.֠_G:!qs{Lzvsoʺw^[\qvFzby's+k3af9[F\c>u25] *Fkp
ewtNݎ˝ŭԦ; Fɘ ~lkqϘgS6u@B3H'a`z)@5Ad20VA{fP*+B?JR=Aya)bT)Ѯ',}p˜1X/6e)gWYa V8Wg`9,^2ٯYHL:TLpjϻ7Ji]QY5N&ݞ]t`LY Ql0v;]=?sVфש:xfy¢-'~׈GoWP1[e A<4*O!n*sFw(4Z9C\],M?Z¹xCCL֨EB\踲y5tĥ]Y:B#dH!m]['S:9@b_F>V	",}Yh6i)"u	sb:&]5]Gl8:!I!p\nf:xn1V2c}Nd 5P2gc:IF];ךxbJRM;u߾V1"0-4"wp|6:y&qwdKջN;΁;wZ33"Po\ 5յ,xǜ`]AD9
mË޼CX`XP3S"P@|ܹ{Ghu1u6^$u;)&]u͊.;Stm.fyh"y & z"	aՐmo8\*	=MRrtd- 6%]1獏)	Trr OSZlNj5TuX	sǆtSe9}lXڿΑ)(@*A\*뼸͵3\mz:To҄l]D 2W>/1[.u79* m
f;GthhΣkchZ@yTg@LvIo2M^R˭ť	Jfϻdaj|_mR.J`lSZc7KG#ja7/C#by'	}ҷrs>mטQ}}Dm|z~;MzDӭrθ\Y=>U\=r~X8x}K(Das6hnW&%$#c&<I#Q.(رKJlB6Puns_st-5e86:8_}<WCNKg0hfԄM/3VE=FQ(2E%N_8Pp7|<,bI[* 6h +v8kB3PLD-٨Ş:Rƨz
/P~Wuw/dD%ejzҩ<Ez4D	Ioo<7!ˇֆ
J;I]7]иK҃{.j}x^o# y×Ϻy WPv]("j?a&#zbuLc&xWƍ].Adexő=*,Z=d/lVؘGC=x]OSQmV;ٰ2qcIO $.lA<z*D-!7!Qc
B*R^v\u}3sΙsr/v|g2|3ivY?N):%1GԡN<xLg1}"t5L`2cA:Qy9t:mCXG`cA"n2e/YAx	LCKtnMLN~ToWХ6XV\UOH1][C:/b?KS=)uS^ЃVԖzlKݖvd9Qd7hfjؓg}L%T@6A/&zn蚩D!0'x虡~/]RCM)GG3UE伟m,H+]Fn;RN=Kdī )C/P+*~rv{î⡰0Ԯpe+d/t(%}fx=xUOSQn<Jk$7vFMܺЅ&.
>P<b5jƨ	Y(Ex=/;Μ93Y{\:,T|p-Vᏸ.߇sOFy`ec UR"t؞x`(Eh52CxduÈT_q_RhDǾѥJᖤmRh:+8
bzIڜEC:mO",yw}6zsJؔ@t:G?Q+u/4r\nT{V"¡?hY<͡ѐ7I/
"u45jrꑇE&\+såK'kK/\ڝG.}O.C,$M>] l-WE~Oꝼ[nKO/6v[<ZeŢ օަ=5|g(ȡ#(brL%&ٶ$.ӻzmT}9U2%x}S=hAfKQ$j^@ɑ$6b!Ɵʠvfg]s Xظ&zŕXXZXXXX[YYۻ):L|ٗǯgomPe`moLd
xۘ@4`I:i2~[Dp۔a@Ggem U8J'R[|[-n=܃HҰ~"Kp'Gee!J4jC_1:OBaQ1EJ|r	χųl@2Uqf,!#=1_ݜ@҅N:\"`QWUe3lelӲMf#QD* 9ǲѤȟo661yph,H0Lf};7-jCc':s?H̹_I7x)@tT\b`_,WgXr{|q:JxhHx;y]XX0 lC>"xUkHQyu4g۬Cf6.ls%t˩]TRhק<.AYX/v!"RFC~TDm]<ֿoa=!C/)vbI{Y4^Gy4ɚUfv[#+.?hyܠ0"BG
!#jz*Y2M1GE<j<(=.)
;`jx؍	n%?bkyJ}<67jnS SBntgZK9Хa-Wr.7Dz*}O,tɑ~Zc׾Ll=C(iyW;f+'{Z;3ШSv\Ʊb>n869ݜ >UЄgt\|.^^Gya|ԃ)u/[6/O+Y[	*k!y
Pʖz&9!Va;Sm~=x!$eddis>-`N^c4
ګ+͙i)8~xG 1}4:>Q{\0j+,ʷXt  ɕd88"I DRyX'Bl[
RbOb_;p߻hHD]	PiME炊@MEbc˓;Y윳|\
J9 [kKCH !'xH8T3ҦV=ϓEK?~$r1xj-%:0x{sɑ/|39}Ϲ(qq 5ڻ&5pFwztUhI$НGe?98)_ӻubm)tR߽,ޮoç'UySl7Xߗxo^j|7|$u)_b]lV%И,_'㺘΋q6ϡ/=h,cx|/<~-xa㟿˗/ߍ˻g,go_0^y>+WbYfaG`h26g/bY%|^ _t~X-n_۽fmKQUqqK$=<}U8ǋE	ڂ~)}\5Yr][_=t6㻲[|.sx,
AfӇz4o~;ѿF~K/x{7?^wl?@f>mn7q>܏5|TV,ݽ0|>r~3(ǧ7Wox||nv<)c^Lo't4'}q~Mq)/%}Z8ASY:LZBҋG2tQO.~qr_i/*&gb6[|A|6ϖB~OoގO?uU} M,߽~7њDB==Eys@ yz}'b1+X_G-|ZE~\[_5xS}1[7Ře7:-HD؍F:}}2%<Hx&{z^\g9YǐO]a4].%xHGc E>:^._7Ao`3;yAPrԠK q>P=;RFÄܞW:l7=؆>eX<&y6+oy_KȀK@/B]N5uM_ǽBܫHĽGܛ^ĽLܻ8/JӁrxQ+Nv!~uShg	EW9=s5ތAYt~K=d|>=?OpG{5~ˮ@s||s\L@>I2nl1}ϢOZɘ񠝜Oq:FaIlKbG=Ve#=wuaԝg6x?lxP%oW]kЎd_O_~Вk7 `È|#RmƜ~࿮6fk)wiw<qv_:_}<\gqwuRv+ƪH}6J	p>}{G\+=S*5mԫx]ۚVP?\^	?þ
?M}[ɾXk2}?dybW|7(XOn*V;D&DSc+,N (a+߱=Eȃ늴|)3#yͦ	JLI~7s@H$2k;g+&S+e3;g0ґT'MNO`Lt5כO*Ǡ9\z냕^rU
RaV??ƏSIϣLZ᪽t4ZXgXaRßЬx8O?Ooꟾ~suvywg./ߜ}]9flaj6z3:oahܦ>{݇$?\ջӷo"_{u~V
}榘cX~-x7+)W
SQzy|]2U/䆲FFK~8k|U.rɡ|?>gPB
yRzqa_?~t'I,oͧ^8AqvXZqrmfkfk6K(?ҍMUݪ]j&KVl?}?^<]M$ͷ~ ӗo~>So!gF7gu݋ci}.Vn>[Uȁ]ao~7mOzzoq`Y\9̫Du17|<^/^k,ptaY	.gϼ7Ǌ;NL{\^N!_ ;i]串/e>д7A住Aerl``74`Ŕ;$<m8^B<?

߇cB"z{YdQÌ-"Ic6+a 
H_AfTXE/XQ&f+܎3L)}bǮqyQJoOz37=p0*"M];d=x3U(P;@7KEKX	}7+.\CPh*,9d<0Z+ *XڲA]d1{t#pRJe TZ/ݺ4o~w'+ iQp"/DD$Iӟs@/	Aͺ4GJh#':ٺw=e}ߊە1TȐf0^\4AH*Nd+<f1 ޿t>sNPﻶ'qOeV/ǣBED4(-sOYl
o@opJ*WI1av4졀	Nt~m1-R?~_thC	0j$<HKw(H`ADpB
؞~ߗ\Z_dĘtE	lT^	P@/O<[qYo#!E(X1q&%"|jC%}'N2O/`@}
B^WS<)/UY=B?ܶA&K(d+Vmj$dthF9+ч/	YTNZ"`8G8-7{ɽ>B]!Wg8"zb'9P=0sע
β'ȦD~(Ns! X
QaPA<n0ebjY=" `Џ!($h[BLڨI%Ts$|]N?!V)k""n9(Oj=,lDaX,P]6[@}`A>@ءb4BidUJ	n`#Y|2_w{mqÃUZvpRS	FjnaLCAbێQ!d=MUM@6X)3JAx3tpA,B
|7 3_dW!.sbp	ZslD(L_U"S"/+o<
F
	B"OUKO$f!rl,EX%XtiL+lOգC43e(7a>p{+%5mIC]h="wuȎ z[Cͅ=w{N`
@"Urx"9I	ڲP.CMt\XN+\	ĩJ+9HֿEPU@Z?[
ؘ-TNZzIΊ"ޥx1^Ix#@Ojl@c8C9yjXs@㝁'U8brl4ޜDS}2f⻢<la0r2<WXĀX8Ž-OZk.h]=R!42aB :E.sh' J7be4dBq{s$Hab@?DHLS8N*]@7vZz,R)ͧa	ni/\[2Hw +R~Pa'?Tۍ^b>*~"_Y vkz_V-ݥTj0laYڽy+sI?jo5F|MtY}\g%HsU%Ti(:N8[RRHJo^iBweGGl
aܗ&!uQ$ʫ-
r/✷N*NDl%\ƶznypߖ1wїS^-_cS;:뮩qtVqԦV}rqA.f3XЭ\^5!@=BbiAUl+1[7r)}Uzd|gO`bswvn'T>Sq?ܘBTpD]`VCNqJhJyuRH6*Z{7п,OK|QCꥪv/ebw)웁wbA=>LO07MN8H~:}Ep M;܀+ViCX쳫kޢu\'xքR&nI'`w.úoS<0x	8!P@L~@GϷ*ͅ:!֮`L0hVy=)2)aPhAYz1-z;cЦ,:j}oBu6^S!$@@G	 .9e+]軋Ф7Yb6:i$7.|JvEP>ݸr!o"?+er	8p.̼I"U{t?'$h $=i"%AB,784 -&g3x#[kmJ=fUG3),7ސzi!ˑWm'R΋ұ`D>-o96̭.αM<ewK~xG"ϟe	޲D1ӃX2,ߴ+OWҕnGMuto\aIg
 :Q=$ҫ}:SPkG褜;Qyp4.B/puOX'eh+CEHv	=PA>}l !ZaX[y,˶rp*/UJ
u3sEb*l::sp@495HHyK.KOD;r߃fnuTbmtќ|]\f;к2s,$wYuof^%ƶ٪CBx~tg.osAAK1ŪLYGg0.Z[n45i #$#LW|cwŬEu:\Gk]$$r,%DB{Ox{($ /q<ANhRòrtC+EDB4'PˉS<.W*qZ(mK\QQzmUBjk$>èxYvwJ
.o?Ph)JTLi.5Mke?05جK~xw@@^<㱬=_77X
fty?R|ɐ-ssmS+KI8RC )CD4tx3x>wE- t".#P.\lj=)G+L}Q}Dc?Pxau˷Rtۄ|6D*!1F>c\$m(	Gk~ #lT\@i%0L?w)v#=TͪhUAT#l62(ib Qx1ɯJP=#K
9w"nYK)Uo_kr O^dq]_Ȋ1]e̪jl ohTg01\r 56Fhq{zeEM}DK	T/F}L"|0ȫ5heV6:="u~}[>L|ѭk>iuCsS\O˙Ԙk>kՁR(UEO Ik
"ѫXGsQ8/IK^$A9D /EeZГCR39'9O@g*!:~[ө8QL^o$_@-E$ U5_Vor^W8"&B`F{ȽÈ70mYZ	[]Lf̙A6ʬuk-
O*pmvߦU]l P'OW`{"jφʌ-%MS1ouaq<1(	#@ƀrjW/P*ą"WGsȨPzf=N	091zXj4`M0H@g4ZuFEWԨu6ܘ!񭴭q]fxlxn VY@azޛ\Ol;`Xyy@41/@c +nH*Tep1 ?S,e70IE.hk.Rl1Fp]T@,6pRDI-0:`+("Sf3W3P)yJzMD#>lUn4-,+z@ayrV.|(8Q0L4VM\	ԃRX$D5T	fԲ
]~U4w0X/mn1%YG03ah#}YvhhD9P1v}U8Ȍ"\ّ0̎Q^'`QeGWj!ۀF)\t3Ug2gmOՒ6va
C*);dv3OY4{Ndq4]@y34".pv`GK؅%7<Tg0(GbgEh0`	3l
&r"kWx)~W9qC:7=4Y{Q]005뭟;J5PuV[X]tŜR*WC"(%
/d[VKSf4d2G[	zڠ}*V~1u8">f?;jvʜ#;9VW{
Аg$v991q6M.1*׼b#bRmE~mdoߨS;s<%V]8Pop`z_{|XVǷѯ,x,$i1Z1=ul[_\!@?wJǄJ|C1CjGgNj8̔~HR0*+`BN\"P|^uXd_`n%,N/.S_F<"zn?	upwu)۔;?)AS*+@.'tfz[]nsO ƗZ\2_	_7
$߄!E?%((ݚ"AWbbOkS.Gz'b7/m
!rAwm;׈;0c^
W`Q"eb^B/NAB$.8Tly (ZCz*}-*tzcfp69FWǛ	lݠo'x_,A#7EET|oXf)+^71@39_qj$ Jmg#+/̗	͌/.l]DA7q_ V%gSi7	*vGxN59<jC `vETG#'&E7=Er4p9\נrb{?-IwMS<oDc4@Ze@B{ϋdu[Iozݩ࠹bU+~P8ݔ(O0c6˪H3"V5M51`y1AD MRS
zV͸>:j.SW
ѵ8l&8@6}	s"	]@wc)*pO3/X^H*.oXXڬBSpYgjZ.Q!Sb	_,\C6푱0]`Ƥe`.ZG؄^j]`\vfr{"&s]Kvk0^քYq2nװi\&tr.orM3!/̫pIUmלKram*Em\ls=G5l.QkT)\ex,]b]yYMqKFդF:SH	F[dfSHi>
+ͫC3.L&TʆЀP3۷bvc'ԀDva"F/kۻu
5Fάw%\bN0q0r0bwb"~vwB4!ے&z4]y`օ @L0t̲<݄!X,ebvkL,nٗYލpZ'G;م(އ'-#f|'&B6Uߍ&bf3zr0v:g_aXXJVQ+X[%7%u(M[kz{;`g!gT0Ldp<,D7 #KFVUgK[Y^; ƁjFm=QecpG\Z0m
9M4$2zf[`Gct/eVg<lv<MU
0sh 'KxfZ8ZF>˰;LxIm!aV3>E>:k`Ig0A-*|g6	EhlOWhP59\rY']6kQ;gDRY"ph+G8~:hE{MQ@KS5E_wt}GLIpG5iQ>(cv"Op?YHfC4J'Ollg}Fe)3wF{ƛ([Z*ۓ!$oVŋ'kE`sQ`Ɔ9yˇ." ?7?TgݡF!Lǫb2K>>4G6,JLK8ht}ￊ7I;*U 	RRF&BQS/{zyrtAjy&WM0[EE5[LY`Lh[_oMBв\c#!VWgCiE_Ukbe.}i_D!Uy8Si:)tNBbSEg?fqkkRy#o@##Pr|5H<@r	@+rf9FB(VsFE8'<!~OCEb$WAԳ%	q##gHY@uM+zEX,4C!0uoiEzr?bf4E}97h!&S!RD%5X! bE3L8!"оrє!l$ϋv3?IuL//X,bgp$Q 㸙nC{dDv67s;{MX*HҴ$|c݄k
gb~
Ƞ:y^5nM[8qy7 dTaQ<fgn|1w.J/? 4:H| +n眡y9	D_oPE3-Cwm))"[.1{IN5D.H%\gi?(\|!'_~R0Da0Z#/|"aB,$G[~ `s>O}-7ͧu?P^	Ж "nT,%8xh jh2U GF|D|e
k<,LJ%)0rFCqѳ5qh0	!!<J: C\	!}(x\)VE!q	x	U @m9^vKK|fhnn
0F{VuF4S5W^bZ7VY%t7%TZaCW)AnES1a! 
F"2UR=BܒRZ$Ry:
W@FTTU4DXW!>`Rc)ժV0AF8Ca<x
f#uOl ZV+XP%t7|\.mmE2*jǉYWK\~wi/Yfk	
w3k5mYeE~d_/x6+>'[rh$ThJ=Z7j(	ղ=^!%
.[Zz7ŤZY<.7B UqZ<.p𴤉-c9Б9:cS9tu+|f ­:r=cl`U7OiUv*ե_&ˇCS5˦U^ˌN(o<ܘȌ66sGs ŋ{C<'w݇Cุn8SP	T?(v1>ǉhkG7Csӵ(Nrk Cmbdض;lH68:$í"P9@BhRF73h^⏙;MQ5xhZf+ujk69 cׄ+\Y"sjS&KOqkxN8-/mv`f-jn3l/݀m2sv1]q%E ɧ;-	iչ!Z&MѶ}F&>\##ۄ0y|ᙠmf
м#3wkN ͒gҦMFġxcׄs~Y"sjS&KO\gƅk-[nlo˯3-d7br݆֖&-Nz51xq5퐎J,sGnK	OOh㢷L[g-okrA<ĲC-q=Ӵ6l{.3C,0<P~YFqPFf z qbKD~}>	q݂ob8(<.mLU<_H!i1ٺݘ9c퐑rA%&8m G,.`tشa_Y
_e5,~Sz{*)H
LR l3_qz48#48úc`"fQA]yKBJ#aR2b(a&\x@MN;CG(/r@U/vF/0>rIZí(aOQl)r	_W(cF-~Qw[t;{ձډ)b/&Ԙ4%c {
+Կ)L+Ww~^r,m"ںTj84+Oh>iۢC?N(nl+hQ@̀mHֶ-]YTp>L},ŗŪ,p= vi*eopAkG,8r69%\SpMzV6nLUH$T-4Vd&^Rؚ.)Ac(Ff#+bTHv$OsuOcHTT)d:#-IY̼S/ӌlTߏP;PZj+w֎`% u-VjXCSE[Dz ި*<+t!:m>YKwT5, i:&e̛ھFfGm0T`GZf'7eX6_0o$Xm&.0t;ΌQkŋ/n2%˱8&2Lܠ4G@9*YvErcѤzcW}#=#8]wPyIQ6X^|$.Zih=b1
Zc[8ݦI6ޱ̹hR=1
ʑњejG7/7 -GDF!` :xs$&T@YʞCЌ{t$4Ay$LɘwFpbEVzI/E
\KXLoj;kR#:&e2Bg+sug94*9V8mGCΣV`wMVsn6g4[٫8,(s={9ήԤ3moV,zX[rs@hz4[R$Qfc`N-G!9dF2zf>,%8,Ps	>{
^g*)2fAG'eYK̚b)ɢw(Uf\90VQ{	EnQNaW_ñ ˪=tC\2sO˪ׄy~zGڂ7(Gԧk&4֨!+M[;GdZ#
~4Zd0+Rjpk`c*~ĲLm ַwZb|mZrW/1GqFqx758µ\"Ո$QbxjZ`VxWCl\,S+ZݸX#hTP5njnrDo:NRmi[/7Ox,Vwu&WLzSSOUk7y\Uq@:B4fڮkj qحCVX5W)!ݶ<ni{>CIYbok:^.8ٝMD?m-5~3jٶ9F+H#Ѩ!v9EP-ďp ]~hʷ=:?ҏK	˭q6]Ղ|u^
ʁ!j,2,s2`_&D7E&nP 7
.d=wP+^+>,`KϚ'	vw"V|^XaB.Eŧr:#JCY/vt+j|;.r5N=],Hc &9_>ytJL[c]ϳsm5qu8|-ob uJpA\8A%qw' uq>ڏa*^M(('*I0!)ڲՌ83?<TivmDkghf*tOvPKѩfiBbK@#?(G$744$p7|&:3C7A30I!`YGk簒4-dhN?ijʰq>0!Ba@5VjE*_$cN gҳ0F)3PF)v:Hr/C3>8Uvr$oڥɰSƀN'8bBOwbA6aY`Ydɐg~-ii񑹸qQ>8T+fqs8IlKi-iٰcťaS5>+9
@zrC2;:b\YK]Ut	=ǬCfffwe1ަKe6gاD#/E6<Dl4#wLNLQ,l0$f7N8[IO(J/Će=ɃiH:8F}$[a%ch8ɩXg鞆H`Ҕau|>A"\M9"X%9hK6lηD8dmcJ[`rN}LD	Og[`2YDK2J(&2.S"i:sBsŊIL:l1FO閴lX1FS5>+9LϸZBD#S+Dta?uˤK0HWp=65sX-6+dȼ+^Ucim=T	`c	&a-))UV%UuGzê3B]:Πt㳕^Rie3978VeXx^Әt!sz}K"e;{cB5)>>l01S*	v䋧k2fDrj>v`bFvCܖr>)|r^zٺa&Y<`z|reyusfGV$d4瘘[ax9%/$Љ/?t8+>Kwt{Yb݀dcífc|.	0s]<ɝe'LV>*5g14{6diKMWu"rOZJ7F|k1?E/'Cc5`̩3PLa&D?1c:ǐ1om<s:Vb޸PuSr`5Q0>wIZk(R,F=ꉘxnML{þkLMR[L7;dJ)c@=H\3ՠ?)p¦`4M(-#e4:&KUl}̰oj2,j<Xexa48љ1VeL.h\+۬SL<v̧"[i42hCqޡE[iB"+6P%W8IDfwVj;&+6܌:B
tn
4MH7j}2+8{߉/7cԒA0փҚI_>@>E#Bk.ߺJD?5PuL|q6_2$fL|*JOJQ+k_,KJ%%SϢ'!$d*8e_VqWɽEB11Ε gWQpN3&fsE,ip=UfAP1 #fmLml}%-mTX_٭t玓aݲ6Ri8\p|:lkZ4db8(m:5,q8

lrQuU6dXQc:dg_D\bfa"=ip=kv鰭vB|q%iw=oTX^$;*
C2j}2[m
f:ƽdh6鯡k|6nL3PwMwr,0zp1;X+=)nGG`_,_SϢ'U
$MAU\g%*K+\- gOMe3˂ء$=xW/+sE,ip=UfY뿦ö{y9o_ph19VzSRUDźpy:&ɰhQɆ"~&UZ"l2WlgO-msq6eK[-ǟ+jO"`=0OWh/pL&ԖÖ2RƟ5|O%Q^mU{cjZ]>"iZL.%JcP^=6{̽&'u;=SkW>c=2LIƙUkErlaW~l2"gM]%-ˈL0idi2lgjBO3%7Ia0mJc^lh x9L'ğzVﺺMYUquIq7+o8},_0/~)sh`f2)bY܎3X%Nԯ/Nfl<]w~q4t25uL5b315|G"mL ^sxgԅiUVpGoߚfݬ&6wwbSC=/nB:lj&F]ܶck!/gu\ȽTl|x;-g7tm޼X\g9Ylۉ! ]<&)z,'S{SKsjHqvqbPzCLWBՏtrA曬,ҋ(K%0xcNSݧjG?sb1+s_Qi[X[ڳo!A_:(ZIZ2'FCPԴóU#1 $IR8ɏh{4$@Mk|8;$I+V!h|4EBPxGFc`HI>q,vFEnx~Aʴ1#zO!ioGO $iyEF8MQ; 6֔Ԩ̲¡Z'DKP4iEw*4ШdKc3,C@bLiW^҆m6LWO^bX-^9l+eʵ^h<9m5oT0KTz]֮IENKQ] gSzxDPztH;ZØ.vŘMIbc֣Cث8ή sH=I26~v8^aCU습'6WfOqjqheˮP)=IY"6zt{۵J1*d'2[fgqH3]zXslP:G7oN5+<$r6Pw٭ujPڈuqouKPudYcM-`we?/}fF̵UtÄ ܘQ]vٱ[C4-}`/W=++JªQ͎UĪXմWqi?VIVX5kjh55*,
v56;fm:"7^D1G_Fy7;d:URƕP%ZyXF&VSj^#~HkC֢<1k3hMjAi ?lPp֩CmyBg ;˨?A9mMR{*:?𤗏g52	0!p6NFδ65t0ȴ$PgC3&@BM9ђ֣] s?F9'	̀6"20isF9E}.u58'(m	p6vǡ(愣C9Fy
|&ZnNPt*ٛa<<l\RcCS	NϺ??l^vo.DC+y\.utx|N
?FjFǯ45_Rx̻<_^@mxh<df}xm2w{nn /e5
˻ A6YY DgkZپW2&jSMSx:aQ&:CWt_ufznפk3zbUV kջ30
gZبpg_Ci
o;OAYvM*: 6(gh`j[<s[aڠ@:yr#7Vwk3\v;
Mf;Opd'Dg{* Ll"lc-&Nj
>Nsf#Oޖ
4,nimi
Ձ}&$Ϋ+Di~TçBDS >_uçQ/PD0DgW4Pj3FY"B3Vݧ'.␪ߙaj~TPC@γq4ۙP~uQCy)80uI?K:Jh! u<mJ:FԜu=4!z6هr})scx~Sm0U,*v0!6:%sf5t|3桜ㅺAVm|+@1_{**xQ\Y7z#,MV?bP6JUN-jX66S]@jH;l^B#ԍ^E	\H%yggVSàGG.Gb\z*oum$P<)o)Y/5Z(b-m "hr1G`.7زS]xbbP]ǀ@t=GU߈F߾@+;@(o)4']V=`䵰lZSuюxx	J%-k)}ڛ))ܡ2YR*QxK걜L`}ZљjmAśrx9[ly a#UK/lXMCI
L,9ƌZτơ%^gе].RcqxZw/l)n;:4Cl8+ZLJ,$ή"z+RD|UM׃ɮ]zdWkdWdWkv9Ǝ]tȮ'v`^	FDr:͚=+vr bHXɗb=X{IVoNuY16y.]LK9ʵ|:$['%[9pihٟZu&rZŌ3>e%dKx4)t!D4)5Tkʥ:N:-4IWOhk-󳐠s4hRd$UPҬ9\9ͪөkajZX,jպk	;VECnl8+UJx~6"/cEJXsN}3^{hes<Khg2Ѫw^3-aFJXblu0:)eVJq='r)Hɗsy4>y{YwNlKޥ#V*e鶽^?ǈ8~ɗ2W'#ʟcL<?1jXyt,5\~u%m,R&y|n?ED4YWr;lY1<sЈ:$bF=2]Yx
HћEXڴɇǵni1I;H.\, y*`T3́C03kj*1CC<pCRZp1WGa*ϐ@S8ZņVӻ:<4i9%1aG澓1iwoeurs>sٰG4j/j3Nlu}X=G8|mQiV-óof23lgFbvyÍlF$nr0YJq81]JQ;ٜJ:Z38Q<bX3Z$ts#,c:6|8y4x7d6bo'V74ȯkd&+6݀6z>S:6q<62@B}e'U-rX^SmλˠkSKJ6=`3:ztB
NsM;S2-rh+M,R3Ce]iAVC]agЊݣ-cABsm2h9{+?ãv\QbB}dm΁5XŻˣ]x8hh;CNɎFiNGɢ6f)naԻ˩QښV<-k5ֻ)dQe)l̰eà഍Q;|w8Yh=!g`=զ/pJԖ-SkyYhѽYfhձFvꃺ^`+=RpGJ:O.M%j*Ե;TZ~nE{I;zp鹲Z;Vm[>̹9=Aywʠ⟇XZ8<Zn%ֻÇ/pIɢ[ `WgQUzN"-mx6|ȩ4qO6C6-ih=Y&l=eM)5C
л˩61-X<oX觐Vj-pg֞n<ԺbhɻCNٚ{ˮ"k=וhW=bh}ʴʱۘl:mCKM.MEֻ)ۗmJ;`-K۸TU<DhɽX!`=Y[mYtYi#I;6y>uv}6v?vi˲}+;dvYܡ\ey:69B2n2~ϐ>ebF_W3L8$a$1@ D"_
l<_* xN~@6(gDcLSWއwc}10^V~κu,|XS=Xog?OY7 b=(◫r27MԳ]J(׃_++%]t+ʍ)CF!hSSPW2ftt5
ܖ&,~Aw_q3]L&jU,x:mkŋwƳM9\p{+D2~V.xPFSq\<I.:~$5*E
^`t'Kw	0g!xҴA^eLlZ^ڈ6!JQLLWd/9b7~MxBdҾ
L($:GFЯT$a+`Ȅ8a@U"<<z=@y-.u2VHܠ]8Cr)H;3 aCA܈$a@λd2	qÀ]1:ZV [E܆t5.>M
JA_ivĎ@pbXlJr{*zUqA*Ϲng^/A)uϭ8|V+&ԒhhD\"O
jpԤ79^m}g٪q3gS;" Ox4X7<z#{V:W)Q4rn !He T6F6ljGlwogk3@!wa`w޵<Nאvkʮ; e|<k34WS7[Y3@CZBG3e},kw5;t$VىcoYߓŤ\EǬk?	*(&aoH:G.@I,rA^	l{]Pܨm.^7r¥_ \Lb,alhC|\$̿]u=M"YI)îg\~kls)%sPMKbc^G+yگ`b
𥵹ЉäͼcGb\<ب
tiayX'~\oh7mmes]_rU,x'uap)o<8-X&\":dbv6ɽdv3PlVN .yۂ6Z/St+qLQDm''(SKb\כ[hB?9Qì} =+w{a";KӐ@>9x=v[φzGLJmh4e-8ZeI [iCgQDz- KdO&Q]{Eq!;tGk8914r\i(IKca_V~y:],`v_øiRtv(D6tN+Pn69ڍΰ]$^D]Y[plbnSdܝ~xqBP|:Bʉ0mld]~ڮ_!<Z`DHyw]zWeQ@pV&a'N,q22yRiJaKu}Ň)Rv8Q`_}uڑY.;!_ -Pv_Gq^ex:]fl S@R@%iv=JpZǊS#5"ÿW6-s
S^hzg</")űbB	)rf|9~bWpq~hk_	)	.&3Cau	(K8s0H#>@#keY*Exv_'*˯Os8
 <x |ii/A\as>򖼉vo!b^h$81wp̪J#ڇrKrw		P8zh&-HSv=:wtpGGM8L}IЀWX:Đ5+V4hsn0JrtP*a"0/3/XnZ	l2rzeHh(ԨI`" I~W;ZV*{LB
a
aLTh|tR ӞD|Gp̎YPIhEx*OԩflJ"`6Fj\m<?џa I:Fzsܙmug@tK޻W낰(SK[i
D66dN9B{n+KP),:9f'<ulTU
WK.Lö\g uB{G%nTgcDv3jwyhwՏPD	cy|DۓB?CsE=͜tfǉLfhyoUw\MWu"_6*HAJ!(C~lb
r &c@zNpc{?%`iުqOAl൉_2"	4oDIvV	%QdE8Ao9cJErΰdpEd<hVȢIjڑAA	8Pl02&CLg$zo!w^X*8}[ ;
F+`:߻ax{&3(8&P'j/=ҼA¨#|e
.LJJ<왗(Q7=+6,GByNx@
``}OHam>)'e*pTtUj^C_Qt;b4§??'p4<6+CoR|,~z[I#O~n}?[ԠZf `Z4y9T"ؘ"-*QpަOlek]<8Q?,kuY|[g߰%\r[!V^K`cEt'6؞Y͝{"[JgQ#Ce}Iw987;bB0ç-C -{^ѫ%<Pv}RRbw!5ZP{ʖSeFčO͒|њ)Xrm97Dƺ1 aR:Zwe\'\1EJȱWBFnb:hfZQdNy_m`ƛ=qJJl-G)Cbj\N0=:N54Ww'&Zc̬R@3"[lf
<}F7j>V	<\hf23硹0*^='6{8VOkV3`>+2	t-P:dZv@nm	ԘUF4fk#L-!`H+#Yz۸	ΗTΫ-wy&:*Ǵhc_q|?Ï<fF<s5@~UD/rXETۍn	KqI!q[6~/NDBY
%|7Ae|i1F֙:<VLX^Pڬ+Z5:[-iؤFmS#KCY^;{F+j%h׶<Z&n/ڬmze#%95Lq;И|s/(E4.Va]UYÍ*ϼjS7CJ4@`ar3z`,҅	hZCRn2/Qeժ$Br^HJ}YR+4z)3#>XD3GMf ffWo	Us"+8,ѷxM^jTUV?̈́t<YMƏфi*u F</2k7KTBPfŗ79:7Dz7?avVZ0x%8T|<MQ
iYfE"ݐPV.cH6Q=)>+3j}{*Grz)F=05P r7cn9\@ɚomsi&?ԪKseM`m`ןﵯ~PQL3+`_d[&6ڲ/p?Q-0{Y0O*)YP.Cz .M2vC&f]+jh(Dh`q<W2BS>\Q65nPw)BB5,pkr5O|Vjs͏Gq$$pvr+ц#)Laͨ7_n)lR 'ç[V'.?kmX򁚫$QsSSV}0?zKm҈&ֹJ筬?i~wQڄCh1L칚;Ιt!!߆s.9Y|b;V>y!Zrafʤl	X`]tS*EqFsD4y6C5RLc`joWjSMbKl+0 sb/xGK3tLK4v֎&~B14&ԥ-yRt3>񲼃囖?b0~3|d-TuN0hނ]	^ᘥV\
sb	6@)W>A./VT`g'i+VySg+v8/,V)A6ӍQ\<`:ANXRQhh%r%`:ddZR S8#t*^Ŋ#0DH$+,vWlvBγ$eVڬ-d5.!3
za{bpuxͯ.
ðVA0vQJ0,"5bBqp9㶦%nGuV@bwx߻"|&ZyMd@"9%XN,oiD[LTJa2(H fV~l%.Zs;g`]b+_ßAжԮH!m$1T +:ZWT)cvJr5]LRZŚJng]wޕ?mV~ZX`
f[Ȏt>Z0ɑ[(n3g4vpȚ+Ѽbs)٪G$0H;pWOEwƀ"IwzĞc')}{'03$U)yoL'0G;(NgM,7?3MR6q(gD%YsT zF jI,ŭ65oP
yv/zWPA+%Ұ}B)BF!=*%Ì*U{X EszQbƯZfCYvP0
2(vfrW}1:Bt64:JH'*31Ȯ#i0Ԣr#)HWXH&>]#옫5s.cƢ%ojɟh-Z3%f/.;L_ًJF${Ihtdw~3NVM|F[VS!+x	"N#,Xs]Ujnvӊ)g
2;cv|ճiź|x<(!9xt	O!=Sx'ejI"exVrӺèq*ߙ]n6bE#R]ŕi:-'R޶1)fmcT,AWĪGLO3ъ3Gޕ^BN-vq*DgYyhmbXΆx
|lo	dx^g{qi.ac&Y@ӸF8f:SO~`etj4LՄXWT#w '>#$u3ƷBN֝
	=p&Ǵ;Ow=%1G{BQPpTG$rGU=%g|zk#(PDXT;*R-%0$nk~BxR>S:0Rщω<z=t[\t"^'ݖH/ȢO1Q'smՉyu[#u"~ݖhege3i'2sɈ`#gˉoϕ*^U52\<a̈́˔xTBr\XlO/Wve*vp[EuQswס!g};cEghJ.lnnrYG"&2DSajࢡr{qgY\ot.[." m*T]ԙo]+^ȷ?E/n0 0G&usNͅإ>i_\ ]":c,֌70Zwq@5Sd.gBRMu˲M1ajA]Ÿ:bn"7 ƺ@L4u_é 6i{j0Yl3OHs5jUs0\SѦXԤnWR/Ѐ>Q f)3.bxݘj*~?-|:\50[P^T}nX@;*R;t"`KT^H*"tYco[VϧqPkBP g\1Wpt҂It/x5K]_Dh:6n	D<dm51noqAiqw\K>2|+Yj}xXcU?tv;Qg0nЏoEVmQA=cl;'bt	o8KkKy <2j=SQuE?A3K }۪ŝ^ީ,LAm"tl.TnùUI?ֹ,CF5ol,X]köYK8UlpnUX6ەUY؇qfލmX^3ţEMgu^ZI(@(juR$Jˡ0w(WwBJeڳR\'FTC=ɡ'`i{BIu"XKI
]QsNC/y cd nȽ/4;{C+YQ Oh?ՋwSG}!X̼:rU~oׂUG!/5Ϟ,B=hu,m2Ng#3n4
a~%x%]Z^ZFnV*-V7C'1󁈕}ՍsoJeƹ?V:Tuc>ROSETZn{CT߸/z<Z엚PwUR\	Px,%eMӆnsqOD`gQlO*441{K#i֚_E!pbKu11{55d}vF32K}pϼymhòkg~.[W._l"fi&Dv&bo_&%v(_1CM$bwhl#+W#!k%BK35N=j{^KNie*Fۊ0W4O%TWCk&@K#1uD%[uv#&
{,+u5[̘٫i 4r[sa%XجR_⠥qXkeb<}h=,mtB^%f5gj$~Yhi&IFCwHw[arZn罚_{Q<4G--&T絙gZŗZ<Ϋ4S-0_BZZVfo8\gPdj{ Brܭ_Kݕϓbq;sKֶrkbdP-L U2ǖ?AgWc;!XC'zm+g$sؖ,1L!ؚˮ2pO5[1{#{1fO͝a1
OBx=C]]:+vWؿv5rAqdLjpvA\]+?ƏFC!CzzJ&#&z2~&[LBƫUAnߚ/nLɝ,%+Kazòʝ.0!OSY>,	QzL^3_it)4;UL \rк@_[gG~4}4(f5e2$,KqB6nr{}ƞ=;+vj#{Z(;U-	d۾gʞ9}=E#׸ϣ}ՙ|@"6E^ң 9Kb_ٳ#P,	TT]c>YKTTm"&x9{j>= ڊك,ЮkPY&{Ob뉒=X4]RR}AT`u];#F얩$h2MCqny&&,'y7Xg,軂i]jGډ%u&zJ3c=Nf2b5۱Kd`&h]S2p5h~yvb#xźX4feLviͯUFh07cdDlu4dJm;vt^<nQ#6kMyn<ͥ>d$Kt}H5-Z5%X$p*Z6R$m&XVĈn"D+vDMmCè((qPr!Srb٧*9mޗo)zxRPUP꫸h8Y?:$&փ*yzV.~ާhףL:ߡXg|fHtY?")bP:HgƚI&?K{>zj(hUjY}2&:$dփ)̷ؔgÈI;)0%sK	JlbR	!)`@J;)%sF	'dBQ#Q2ߡ84?-rՉ#QzhbKɄM`\J !6u H
RDGDZGnBV"	aؕ(@R&B8%ʐȺIhѺ	
kQĉ5Vq9Ш/ń	A }BD}0qκfie]E4Ya,(օpK 1u!:~u>bXߕq7D
E;5\<m)iBUfܖȌf+ۚ[ha=~KFbCXd( XxquE 4
jEJ˂qCNIjQ_7A-V=P1c/\#5׶ҲZJ-.VM&8
 {e.}BhmGoY-\d6ގd]MH z;|`[k 'Ydhn8(K 3c!־ ,~HJ˂iCn$rԶX]`Mur\ ط*}!'6vENtj㝶#Y|K9
kr>18hrGu-*Y8?~Z9|GJN?PRޗ5 4lXm 'YnޒsR3ޙzMEsDɗzAWڍnZ|4HQUJCh@vS֍'4S]E褩8ԒSoOAk*-hjfpEn~Q5B{rvl趈gAz]Sw&UYUvD[hBxI~mE;K!x4;4vj;ƕ;TN
*|fj&kI.w2&ϑBt72w<Fќ;SꐶϪ&UdWFQn3=E(,ݧ.rPU0cIns@q7S?#Gnz4qrY"xMW:{щΗw6FLߧ]{
ϰ-Cfƭ-ͬEK[	C5т,@,wاKș>#\5\pPӱy)DNrrkAg^-+miF_udY+Qv.X1	16i>ݷRfƎhhf(El1vhn:YueV9WswP:wdGiST&W7h욭kLyƳMB<\aEՒg!j5RV5;I5gպʠT?,O7V!T+e9e=>3?Z]NRPE.m0he4!iVd^k!ь2%3UPEE{Ik!ьR pٌ@^
cZl0p8p0!7 !ĊnaI_pS\[\[;ĸ4|$vArtKc9eChKcK`k&VA-M!-xxe9e9V+:8@$k}.gPs_?po[%Z^z/8nW:	נPiqgea-ܪl59YxHا-JFbV/P,NNn%_WDi1mʢHvkua1Ft1]PӊUpJ%J_,՚%M> 0]@}.s;q+4z䷛e6<3R!h~R5zGY#_,8%u>Z6@#A֗z_Kguր0T40Jq*(3zl̤mԶfZDz*3)kL'ml~<m氣
UT5QIՊxe	:WqP9+Z4LhEXXXSh0A<ƹRf>a`EJH_?'Z`E)LmW>gbsU}DfA骞*Jyoz̮dluGw6VW`Wz:y}.Yndc#Qf	ThTu3J*lj ,-1-/Fl?/|7_c=wb/7?6		*x\	tTE>N!d#e'Aqց@IC(:"|(PGpdaQgwFǅe*G:{~խ޺UG.trMX%5+#k؛h#O#wǷY,.q9+ʒТ.v*_8VGfZO]ԙ]XRߕ/wwUuye[WT://()-\c܋0QS'xK\NGV]#vg6"8NʹrybFm	ۧj]QRWUmJai~EzO˫-dnLp\>YubčȈ`55%"H]1YXc]idmZW"gEY~aNT.k ب ό.L̲IOȣ^hDz٩`,C_͡3|@NN兕rOmVϰp-IC']PkᡁJ4vQQIwX;<y(U$2]=S &$wS3gmaG79~dY6hPY>8SK]cYԔ'и`O5Vr5sJ=ni{Nx\91#6=\γ߲p{~NJ\BOgl^&yR8wU-4VrgqXO1$o1_鸀PɨW S܉%.cu,4;%fh#UY(p]N]%]Blqk]nsrwy}WIQܡ1X_^v;_~kqnGdՓl$+ޓbyd[[WJfݓpDKڵ==$Kd!ɮ_̲u6=/l;dIz6Vo|dWd9Sul;<]YXiwhq,-(ǆ2GQ殨()΍H9OKm|]E*Vĭ?3vSP:]=ӞS#?+WML6|*ȉ3/]h#1MXs#!>.@zG(CSi3	ܽ%ZO&vLlI|g)f	Am<m*3Ӧ65w#ؿod4}o3X4pIQ+0itWk0EQz{Vh1d6D5okU5gl&şZq{5X{mc?ē;jbO3Q~}E^ZCaJ|Sk߄י
xz %&-=Շ&O5qΕr _!HH
LuM< 6SC_A	a{{dw 3hj㝡1ҋ̂Z0zr;u]zYL_d*+ۛNd@P"I`;5}GĿҞÕXcť|=D$%tE2"H XAL~R^v
O .i?$͒c,%u[U>@|wrx6 D(zUk_%Ǐ-36q@<xBpjMr̓ۗTJHHuHZt?Dj2.IYR耏tLAayIz]?}mgaC&Y!Akbq5 v8oE"/F?p϶ע@Xa:D_^H U5}ukqT2}{7,A1υP;n9jHz?l>Y9?oV3>Qh
9Fڶ8G{yd~b7u9b2,vDK0H7J@a1{"I<=[kM%vK\%v
*^*\N к/pnŊ}-$vnU1@An'o!1Aݕ6`""wKy;4gla=x$!1b坤Aƚ9|"Ky#YZ\@IRHKVl0b)ɂ3U\- Xs=R	擟ͨ^J:{c?췶KONwJp7@c_%PT=!h6
.qt	 pi"g9ɥd$ˏhh^O:4%gɕ躊.?
D(#T'Yдo%>eZŜuRדd,TMj R5@k߈'=@^	wUd ]bCf9| 06HI88yMBd,UOY$a'#I97iqi;̰E3F":=Oܲtd,eEf$Lx{qɪl%܌>-Vh,A%bΖ_,3ZQD	Ac;o?L0c=BnT)IC2N<J/4+'s2KY&KY+I!rTz)&|Di8~쐤P?ֶH8y$]JzXI.	'<'LЏE'degB.S>#rph;zNGA>Ka+$nTnb&ځH}t :PؕLcQ-l&5N&á+l,jAs ?椥Cd,>'5gS{ս~FFftE[ݓe˪f$om3R`:j=69 Yع'!pvZIS>aapl*4mw	e b o'kDsArp1wԗbNkACW@;OZ3UGpۿ.m0 赞zm	;ݬd9[dքz9n0u'i>pUB!̀lPkN7lMvu /oZfw۸D7Muv`'/-DJ'C`VA15e[铒@v@kl=NN
eD
CZ s44kzڶ4(⧡TaV@8Zd̥Y2 	)0mxkHhEXW1VO0jl@D }@MMbG8shifg*Sq5s%2RDm۩lBE2(A*c4LO/Vpm񬅚~5O[J8z,!t
T6v*! Vc	ıMLL:Ay4@tVLXgX0}ICFJ=JȥRE\FZ >DF[vߺw6n*4:kem]N
!rn<ޡC4TFo%иpp"Nm~g5i'WQjY:TlKE炚1 o`gwpn	EgЖn^.qwf:5%#tLln%p/á&9YHQ&.=xTpQ[44ͯ&whh>N-Mp)U
\<Kmc
|'ڥ,BxN!uIyQkpn扼hVYLB-ICy8#`95лKKdJ	6CjG``OHvzVSlXZ@Q.{p."RMy%40`Yrlj%zzf.|v~ٚ}Bo^UZP+r>&yu&EpbM +wn~vvV\M'7%J|Yna!=|(bn.7̆Agd$ ׉m1BÉH,ig4[ ۇǞalp+jfDx6^tђ6d`՗`4')W{0HHϺI_zVl׋=!OYӄ>f9_UKLR?*&Yk؄f\e@~%@ܰLfjjm'9ac {8h Hb`d1{(KcF2Þ,6b 5*ǹn~9vj)9{ƱO1ڄzB.ޯ[ee7h7(>$e4$<y?]nA7197p6	*ox_A?H`̠"69`6B4H8naM vOf^tF{ċNܯǶvClspɾ"*CI>{x(d?e!/>-f`4`"6Γnp}U~3C`i`'uɉ	^٫Ұ}p/JiM*R%"OnXWkeE,#J-ǢYv(b$) UaqlU2ʃװ	pG"Sil@CGHj#gAw!M<Jga,d@q6t,NǱUf~Me}eO>,?k%@U%I\mgj޳kɫz`<( co*v~;4=]?<bN"bl]nyL0"{lBB4tߔOB}4N}!<Ⱥȶfȶ^|y<x,Ti>Pq3P	)hwzǊSmj6eﲫr.*63ĉ=V&X>fL92*/ݫ1>1t׉e\Bꚿ0U ^^w)-6
M,py|&ie9h{1Nԇ7중<K|v2f߯ϯ]mxN>9ߪݖ"'byvu[/ ?#KCl|HMHhB^8֫ǭvnA\@Y 8[y$!x'BSNܸs8ٙ?+Ikx#|9O丣g[ҷ؊;^NYPq;RdRV<E;ZVMJNW+&3<?no7hivMw(o<_ETX+Cr fvM#^0~,{GA2`Eo5
	~O"@&SmEK@(D#iӭ#y-8^N4s)b7)| ~[B-tEq[4)V@bmVSvD8T_EDL<=4;KڶbDBkxM
;#6i{rp"%J)j;c/ď%P.uu_[88\6aف/[e[l',ZawDNtq%ގbюi+fb-X'2w#R^	Q0?cROzwp1Y+jK
C!,fSEǹ0D'O{7s#b ZoL>xZ	gK&XxG^,KW+d[_DKR#xl{p?7<i{3AF1耺x:0h2GޟI*ݰJa)H>Q1eeշ'.S3v-wVT˝REu3燶00-#-C<$dQʹDԐ@oSH;vIU`wZDR<DtV\m'ɑ+h2]M6b2am#֧=duzT+fcZ~tדn쏵wB+ߚD  QeI?-͠h'gtkxjs5wZ-_.J?zkgޢzn.j"63\LO-fjdzZeq՝}Zi>®k/e]m8ǱWidO,hc}gq&IpIY*8hS^jxsP+x+|Dk*#{NrBFEp,!6y@6	5CminkyX(
vv]{3dfX{ۘruF
5gg_zƪgrW3^Wv;>Oۆke]o,`c%^RUݭv횫+^q.xmX_j"n,$qLEk$fjDǷݾt^)v3U/Hu.uoe82;,D=ԣl%9ov(ݦc旹XE%BSa9nIl!(8tS?H MʄÒpomzJSK*@g*M&ax"faj
46M%#WCG+trM7-R"!E,~XzU;8Z4VƦp̃AQuM%3_q	./X'"nW;nVvɸH}"oW+_dE;nRV "zNR!g+ݤTigh֭`i[qm|G{'*)(XFIДex[yXڿ`FVQp#r,;2 3ej'SѷRqxxYOѾʎeZYzyg8W?^<-h~ܒc)XY
,E}54Dmg0UMFE5Q]zwViYEEӆO;6<Ӽc>؉GMF.zS: WMR7+G9Yּ)ls-}#-9NZך5RT5Yuz.Apc{Dh}|dhN+sx׭bF+v zڲ[	jZ'3ԍ$մ6	x78׋Ebb[<f'mٴCvNtB1ar/%<N[ite߯1$a9!s16ĨrˉNgɾ[1J&vMNToGNhGvhR4SŞ6I=:^>b'<HMd';$<Oz tʳgYiyP"BZ=SR^jTݖZrZC,J%y(=pkD{JB{쎶ϱjZe!ѶMԐ9'y<k9ȜmZsyֹiYy6ٖcΜf-]-LsAmn^%<uls~¬BH_iv6sk'Z毑켶`D[d{y}UI$[^/%!{aqe˞7WDo/oػ.knKx_	p7W+vǽnTn%Cf-0ۦΰL+6:O7⁋4s\`+*ʛo1b1OgeYr-*^	ĭhZ)3o̱"Ր
nh/D?7+ŜUl2͵X-ǎ'A@kH{(qf)1O]twP0hHͪOVOVm݉
5O+nx,o%ai6yG,Gm FndvǱک?.mk3^=q0ZQ;{i&/ߒnfnY +>4-|[&
CwatnF[č3C@nyg?^9Z˔$61J]Ȧ?2N:N6>'+'aX}@9wTWn?W5߆7W |˟<&%7D^ڇ|6To44T@UH#hj3-:҉L++ZZ5	zT3~̨ͻHf_t[aqs^""7mB@-;bV#_ǥͩ>V,OodGBQԮФL`5\6)jEgmlLLQ*-VTfԱ'J<mۑ'"LVET
ړMX*I;=_)M0Cxla> a#wDS9zēb	i"#'W?^Mz9](N-8d(c \	Lva$D=|M_au2Y({~=8F^n_ע@`?⦨0}J&^#UG F0摍)7w7OB:4yx!zTZ+Ws"9Oރ}&ck)nwt#\=}X(O^m8c{ޞ|è׭42MkdH>J!P#D	HFϜg1s'H;iqw6$.bS_ښHZRvT!P0Eϐ*kdrCZ2W25g**QkbH75"YOq9,X86D-lGNQ],Vt~e9YF'a]K ޳=:^Edw3B^c9$ICˋ$#\W/ ǊdDzu,W U1Ao,E]D{dWz¯]N8?:[dS4-%2H3BF*/'\L^Ar<J򂌅5B\VY{*PN2#l*!=a`F+/ޤEWU6'ӆ廦(wdb5?HzR$7bY/SJv^Hh*bI Wz[w*	b2rzdwjn@A^bYi7zϗ{I45B#49b9I^A2O^d EdkGl1J)Dq#K|HP$(SR'SԐej'dL̗8OIT@ȹ@NJd/*\"%*TPgSWkF@Wn"N5+x@BEūbi6<nTٸozݕw%!c/VZm1}Eái[1ұUemEeFH[>t0F3W2JDDR'<2K۲nP<$qwOZ"]#C =etǫSkwd'wm6Yvw2,Mf^G5P߫@~g,m͒CWP꾴^Ӟ`'WjW&(+	batg4N"L3u(`Wo;hdUMɘ7DqxC8dIe>QuUGR)tѠL(95#PCŞVJ_=JZQ!1GI*Sf;(R6Mov>*QL;ZܭS HIP=<,	&îc#C3}}8b_D>FɂNf`q#x	l0%Э#NJ?<aLeINGD$.P<;(P>ĒpˎsEz	r0GܺY+u609ORybyu,4vE iI g\YoNL0boe+$P=.a&<~Ŧ;hj(lNCE`IosO-qʣcfGPwGՑNɡbͧ?N
d)IzCz)*#QGͰLw%(1XQVܛ؞5f&=	a:^ٞ|[LГ'%AݹA^ԔYɁ8TkTBdRI?ӽr,{`
e~ه5tL|KWA[j	T86hXqq=zHO7~Ve7¶EW"(Z:P3;h qwhA^hH>Az	`~lB>/(5SO+6~?uXghXU$eؕU&[SrqpWޣD!z[NA4WI8'oχW:s(\2n.K{scNZ:vN{4 (vh]&2?	}V~/䨺X`MaVwPSp؉:`QM`fչ8p*^rE*q!	п/JoC?^Pv[5ZYlRP+~.bKvi!VS`_[,ipvSe{lMdjPw!aO g1&Hʭʬk^*6e{i*Chw23OYiqIޤQAvv+'z
{vg2e֔][ݸNF +w)c{D_ЉݘCSw+bJ k'WƪAwd  \6˘8E8Df}fb/͖jZ1jhˆf6HޯBX6Y[8K_nT")V]'\:+xVᶬ҉&1,Mixgl SMUDY BًX%AAqA0%K7	؇uP/f0Ť~lL4wX3	avXsd~~iFi9`Y;pCz'R+	vd!Na=wTE(Q,r2(耝}F_xh &Az6tSH	sK-A`3(S*"ҙE/OzAQ0?e!DYp2lۊ4	zM9a{"Y$0=%,,ki6S{޽ѓ]l4]#ml!	JfzGK%=FT>0Ҳ6쟒u@a[2j\%x;=Lx7CaGvLcֳLEF0T`lINKpx:EBB-lX@#%ޔ{cl*i?q%OXEe@8XЋ)]<*R<mqru23S߯3osm[%U/Ø7o$* [I^},iU\{-.+NxA	TSPlI^&l#^wU
_RE>^Cm( W	O?SDrF=aAk%n;~e})a? $̡i햐i˽oXxz!Q)'gbPJ9v{\`rVn)Pw1W=HrqPpYo[8zC׮9UG|^CCW6}Y
{;Aix35xXTJrn+88^"MPיܤ!`z*LzQa;eփ'ßpL8,g`#\OJ}lkq:z#%1H?d/)px>2M 9>n5r2D#.=#!j/Upr:gZC.EF-c-LƺEq 4F?z7 
yftusÙxP&1pׁ呥Hf8G[
cm08S)6Pp9p\Ɏ11=}yʶcG,ncCdy8%5ߪwIVSf3H7]D}K>S5Ա}!)6s[x9M{A8.%X,?Ӿ
{w\%)-fiެ1<:7D'k)Ozrjés労	
Dg`
ڴET&Y3X7SKVĸ_sxen"¯%\$i2uI>l\ޟAD(d>o'IzjG{î
ttgIqwh1n)"&6ff#<^^\/Ql(皷'/G}A 8
?
_RAb QK_r:RiOkyESQ⟕d8o/%x r|nV(92uNy P{bFy,;X,YAy"ڞ+s(E|oX|28͚ߜu9[_V`Iw3'&|b'E^-?yCSaUnH8/_"x'Y-x{,Yy˥VFLca#DDkzOV/3m`͈м9\a/V&1Lpk{~@կa
gM`)	nD$I@ض²XY6YHazά1
Ocy7G(S糱m=P(?1 @z~ux{,gɍrĽ@۵Y~7-eU-x,O3) 86@xZ{\T} A0LT20(32){Xm,_]MT1ֵRz?nW~٭LW;~}f@~>WkzuY'F7ع~_gX#e7, #|-# R*u$^dK/(\?.s!jy"5?U;J7a8V]QuCÁ1߯闔oo}9nLTMA>88|2~),o	
!˵!jPUNcnmĬ/@RW;	zP~5	q821A祎=Yb,r,LZ..sW--wDT]EN`B񈰮]^'EӬF̬#;$r/%CڻꨂO
!z;4Y.-VS
J9+z諩ŅU骤`|=k"+T_f:11CԑŪY䬬,XVVVUWEbgIVϰNĪ_ML1$O
i
j&C92V}Bc7{{0M͌&gv<G(
Z:C;O}r	ex*^|{<[ӖSIf"=۲@G{dJt:V
K7:Sy@;ow?3o5`0xv'GvWaJ>gl#[
++o:'Ԡ!1jYzKY1pq9	q#yUzb/ÀU<UEi螲aToˈu:t,vj3`"4<Z^XĳnTWzjHguWef/&xyT,<&_:QZs{$eth:l(6}>*MUӰo;*I6IX~[wEpǸH4}&ˏOj ٘wly绣x䅺v69:	8?GzV.\6(Ϟ|yY>Ou3,?/o#HϲR=s3%qmĈ2F&̳{+X3䉰SW;WZ=Ȩ˲$qA[\ЈDO@=V-<k͏0GMi,OG_ҹ/[xe+﹮8H!mNK wՕ1Wzeǃ<jpyw:X0_w{W*߹kvϦYt8ꡤzO3o9nEύ4l{1SY8H!~w_y Hz?0пgIPFR)(HNu64{>}Agn}4ѷl$~r~vT{%bZ'b:`>=&[\GB#4l(CߎDI:|1p˟ApkaҎEclvc:6=V%NxK:;Գ9:Pa>gY'm{ 34?-1W7$3u2ApCcR,<[;;yaCrT?^ iL7YDCDB#zhbVxH-g}ֿ4`2I哞TC[lA(:|G] "~\GO>H=GY4bGRH0hI?Xo}c^?8]oBc/z1=D3|B<ovL7oM6%:5*wdcI!/靕eQ9YuO6Dj$Cxf{q`=n2_8w4;v-bv_U%9]oiyTiozo{ivԏT;}m8>!|gL esyV~ⳁxmLygȒ3žY9JcI@S5v@Ym}4Oe*q/ }WȪdAo{fn.gc'}8Fy7!̯}[J'kI^S<Mn']zھKl5zP?AjI

Wh,clwJMqfHW}B-*,++6[*+~}*έjG$ 3}=Gw<.+SKKn\^Pw̄.$-ڒ=wh1/mSUZ>#]w%F__cbU*'	|!v1KUBt' $J
)ɂuQ
#!6.R0Uv]@EM]M~!~1'\7oœMwH֝0q=X%EM&:fMRNגk0eXJ"!"(Fj6lYj}N۟oIA&IdBFn"ph[aA05I%PSAPb +@i)yD|AMyRl6C	J.d- So#O۽ad"l2y̿>܆Id/qu%D%E\ΤzIԨO:@A!8,?"E|T@RF$)%|sn,$v
r$>YD:Sl}!Y<UA"M/YEFK2rd"+]ٶi+$U0AűGcd&'av_c6QFl'ņ({æXlO<Q#Rg&Rng'c)o%eh684_2aPwAKy,dTIDh}AX? Xn~X	lTpCR4y:Dn81ݶBtjL8!^m;Kj!|!FG
b>cMXxXfc
9(vkCd)ut
?3&ԓafέ't!^JMJ"Y<tw`tG	<qBݺPsж&ZzNrmYMb3o=d~H"$	&\k^!k_$ $Y1<nЈ8T&P6	>jνJu_?V-$E"9`G%@u-!M{
#QQ`mfWc$s` ߐXȜF)pCr;ԎRE[Ďُ3]>XE"K׾&k$a3ҞP78c߄C؋J,N
w$jLt <#{åPru	w(Y>'rhL̦)AA1Bc6X=U s(>6ӵpxL%HUw#-aLK*V,QJ2B2TvFH2ኡR;:	kz.+fX3TZ;hTF2Uܖu
N*4<hb!"%ӧW?bfarènH>]Hd&V1܊}HMv)Iݱ94'jigfWPV,JJ<Q7":j@SM8&vp%r.:.}tlGvPC|(GQi0)Z=>$yBCTs-wY<wQ<"]PS	+wfh.`&ߔbNGdC/|0VXx	n9#4z7]p=%
3Z>U*&-kRH[N#Y,GE<Sd%2Ш;| ouo҃4\8Aԇ`J?[U|m8mZG'_ZM
5R	00t^WpDd@?M`mo̓fY>:.#`-X7";QYM9mml_Ƣ#8r2-n<Y-=cY|4h},L>c:"cE	([CmÙ&t2J7yFpNIGtnf)xjfWˬ6Q2BJ/Ι-pˁ+L<Gӵw h|Um4ܓsĞ7sG/0NwlR5L9=Q踇`Q<IMLxgbw1]:J72m@)>y1a迺Ŭe$^b?tAq2:3VaxZfލ;<F-%4[\c(H \ajiQn0+]Vr{	8־R7,;&e&F
0G~o'I'ѩӬ<~1֤ዡe>A8nM	㷣ͮA)T5J/+6.X3(5Hmx_yoB;/zD_GцX~G?h#ܜX#Hvֻ[1_ԜaqUhl#`exQo6KLÔI* $TwI%GVN0s~d-WG+iqbLwJ>58eY%`ϥ6:TXtI<MX堉",f+K<EY0\\YqdhqzK	ז`M>z,&&LP.v1{㇗eGʺK<WHe}%-9ʏh
<O( 8VB39Y\(RKb;V"~>@d,R"o+ʕ_u7ꥇ{ΊǡorՐ׭T,"o/(P#~1D#&{;$ra >D[\صn,4O5JpT5FbZgc4ʗ~&cD|P}->oӚq'UuO)Ol)q~uZ$ph͆;0+{H>1Yu47(P>[=>YJet{wmD( OAMa\kz%<Z$vQ{P9#	8jg%PT̎W@3qi%ѧ<ZmL>l*ף +T&HcE? %m=8P|<v9egAK4E"WOQE(~WW+p]c&>RdEe$~(?@C)`=a'+`RMe2C`s~R:q$5^XN#?xe?+/`xn"}~83ͦn%vL߻ʌ	qSpd0;-b_`-Q ?oMs/b[{ݢ4Enދ/q*۫G{P">{6!dpоU*ޜ@IdhփSZI,Po:OOa$/h6NчPqcBЏml c.%XbvDewst3?3்bS$/o'b淌cM`!obS;Hi
3I)99l
dWS 3*ytvkù,8T,uWK'f(^#zKDͫ.)qVU
PYSUfN{qiX]HS)-+~~]A=.vMMm]ZܪvӉH|3O'>Xkʭ9yK!iKwnZҮQ8+Ay7z\

pS3To?Uyv1>NE(}MVjzUOPۇYʷaaSYN \tQ2k~ՂtUA[܃f/|ytA]įsX쫐" *`+d"{tbJ'q/]ժGY8\̄GY/F||2BaB7K&ëXW)n<Ʈ2D0.r3;'Y<ܿټP`Xò g.uE')ZPZ˪pZvnf^eúAa
ׅfCB}QBF皂ͷ`-kX6<," FFdZ92ܻ_/)&&0̈́oϵֳR=,=B`^'ĶXro,Zwc{^[^giRi ߴ+ϺbҥlG<⽾XgxB<n.>un`;⼃XrMw菔qcp+Bz|a
6Z"ԱPh:o8ߏw{´[̋LG:6QSB]uy[*pte^շMԳVɻQ&Yijs>Wd܇nL	Y@(<&H^`ݵ6?ḇj#L##^#jQ~_ބ&IGYgo}\@Y'Ǝ4"UB1NT3WBq6YW{vEJ=wk&݄L#RJ'>0!e'#&ѱ3wRAU75彀p-#bVu&ulôݮ9D~EHz&^ْ e2&6Ӡ;DY󼯫t{8]k0-uK 3yupbvPS-<,a[)Hx5;0D:] 44GHl6BCApĒ(jF3<3xma؃&)fB~ ĢLa.STҁJs?e7#:SQ3w]p;a *L`T$˧eF0WPHP+Z0 {Ztmu1n?GOjxTnF+2{sу*DAPr9$vݥe!wvEƒchuȝ7o޼t4Դn oq@{|$xv|,V0
a?cdo`n~d`/"S:|; Rrm(3xF
]:hs7bwIr8b4Iw!]|)Tւ2jyѳ)JVىh11ރ!GYյ;Ru]5lP-sH~^i`>.eK9ld.d,O.lx,..GP ۣ$A4~D˴,b'4f\P7j7P95$|AMLQ
/UM7܅>F<N03F7ePbD/0 |r܇]FY#B+\Ah|S,fl=1I~t٣u/$bIp,^[gޟWi_e߽BR*)g&sN@FWTd3xd
`$wũo߮x5\{+ֻlz[bfcUM-XgMԁQnRlZ#_@X>Tң4w.?_}h1&*opِ6ec[}V(-5JtťYRTN7w|Sᙣbη7PS;. <`wru릩㡋xT4Bo2x[ϻcC&W~F~q|^Jv|NfRQbQU\TT,ìŬ*aĥ_ZRPZ`dd\̬&X휟[Z;9Ytif$>ĢҼT}>0G: (ĔԢb$XݑL 98(9hzh6a Zwx[CDY9(3=DA#YSdH(W~F~q|^Jv|NfRQbQTPͥ_ZRPZ`lc{12Mg֒,L-wq(OI-2]E'fլ2tJėTBecjHMLI-* *	}KSNڪS~J] pWx[;KDY9(3=DA#YSdH<}RifN~~F~~^J6e*irq̤ĢJ% #371=5>5--5DISzd/fU#%.ҒҒT[%Er|KsJ2sSS2<Aj@r
@ħe(鐠)-3$&'cj'#51%#|&Kp(KSqD1K 7 	ΩLRx[{sC?_qIbr~^j	1y5{qqN|^JLR@dFf{VXd?v:%"O3s) Ѐ"A F<POP!Vm|IeA*D, ,FiX)-/-JN-VUXS~)$bj H_GqxEA
0D*B&Ep'^+H		MIRE*y{NfHx]T\܂,#/%JE(KJATIcGM@kF750pD|HGBPu1(݄LYr:#WG[@
Jڎ!A%x[ϻcC&W~F~q|^Jv|NfRQbQX\ZUTRP/-)(
$**('32K0UMdVfNbVǬ\ZYRg|hRf^>ČĂL%tʂTx,W-)E'L`*KS& #VXx[ϻsC&2W~F~q|^Jv|NfRQbQZ_TZ2.'lbN`.ILΞ,:43O=(M(/ i}#QyzJ:/,HjD蕌ĔԢb%;%XR48(9XV!
 w'x[ϻsC&2W~F~q|^Jv|NfRQbQZ_TZ2.'lbN`.ILΞ,:43O=(M(/ i}#QyzJ:/,HjD蕌ĔԢb%;%X48(9XV!
 
wnTx;ysC'3c.fF (gx[c\5,w0KO~Ȝ=9 nix[̹sbF. xx[ysC&SrfnA~Q~Z~i^JbIf~~r~nni^f2ZR\g'ee*irqgdd&%Uj(@9 =LR@L֜0ߙb8)q)(Ld#W3ˣ<dVf&󲸄 iҢb[h OAA)3/94%S/CIT|IeA*T> aqx}nI~`Xr73wh,Il.D,R5&Y*Rjbp/"3+UDHdfdd/A3]gf
]p$hŷ8ƀ7zrdǓ`Y*7oq'2x]1_}qnEt,ucH` uAb5O%K7"h|60u&t5f^ۻH>N۹n'{nAxͤ< ud}8.H e1[D.Kr&.b=Iu\o%ع? T7A|4F fj۽.~;v&A1&uq@3!5c &)*'d-gh6ΖQE9yHZ>*do_&u:*e?YO,M&qFM_h0D%8wts
A69a~G&*?5Xb`!*^:~`$)(+x(hl'x|?od`bY
%	&Kp_o}0R(!//U~΁R{Z}.
v1Z߯@CkNB=&ԅΓ,!$qR~Fe8buhZ?ƈ&[v̬%S4h?WPN8Pg22d/~L9Am]×H"MUyr\?}u=Nhor/߃Π9_O%Sݫq6@ݏu02H$Zl~IODf1]<Ua
A%-Y"c3^A*F,4o95mKZmZ0mɸ$bWnE|r,y϶7^\@4WE>;`ml5.X::>F'RUo94Zխۏn58^{*a(t.r>0p0\G/<De2ö!\Hlxh@mLv
{!x<-3á`?.Rk[V)"okhI';2K6.$ #WD)s+<M4!2{S?_m/W2~
C=FH
pM	/[{UvM.J{QSX/dluN z3ED%	ڧ	X(LVV!(-Q쯙{9m%؅`ŖXĝ
YݟlPÖ4fz -%Yċ4?@9%z	^C&!b H,Z C/󧻛Xc3EkAlbnNYz$5+|Y9卟-NR2M: o(,%Ea*#%yh# )S"d&bOPsŔ'(wE֛loc'xh_BԦ])$^ȧ:8B3#Il mYlB?'.߯,=U;Dߢ(;PgofTFsk0jݶ45v;H7	G-!$fdS"-݉7X<Pe.~)x4bCjAliGI"(L-&z͒%z*JQj\aQ9UŚr".u`/ZZ}A3&jO1FHo@o1&Ad5J Ttfj18f9$S$=A{ zLuäbR_&YI*oQa+ML/hFePJu|&leERX[eX^%"^nS@*Jh/x11Yu86.S
 er<S=l\.ӟ qBؽ}ƻHdɪ`Ph>m] / ]ue_(/ňryoR!±B$ hOhި66
>y@"qȭ@Ktr4/-X[uL{ CRb=^A(G2,]g۔CFȯo2w(|uoNQ\~7uSppt .t7aQZ%⋲ai'X,)uBC H$ۉw_JNdKŌK:dQ1KW[T/pOK쀆_H]_B]m/Izb<4k/]M16M]VlP	qƒjn:D c"UL*QkwV?	#W z:׻b(5C0'aص:p0췻g5Osaiį:wKmQ_1+UះaPf>衂Iol
/lbԣ qh i 6?ՠ\~sQ^ Z5EsWB~pPVh.Q߿:ص	:|:OzƮ	?PLmT~jgN!vNI*QTjed|-#⠈~^"7
{%FgXQL QuѲ}(4Y }
~E2cP Dl
Vb:KsHcNVU3y	6p*Y]`,jk&[w15P߶yTYcYE-9:m/a!Gjͺ!;gX^=q^Dn3C8!w[348nn68}4~m!@'Zׁ9ot[hD4ưy^ rɱETN;&F<eu^R0R߼J8"&~FL?WưND4Mq"'WH9h˒GClFv7A<O5?.ZVh]uD"%r3Vw4B{ƌ9!l#ůe<Hc=XbcgK>U~2x5l(@Uv[T# :/%ĕT1Z-r.~K	uRi%Q::uV9Su*DX~͋+l)԰Gry,N2A<CEai7(̷,\;u/>(C|TRv
lCVʯ4V<s/9i-Hl)ҳ5Fڭs",Hq* $sMv*G__-"\JJC!#gyyPlM]t?E:/
zńj@ ˑ(ܭԺI@ $r ~T[a>ck(TIj&ZE%:Yo $%_t+)0ipi֖%hPwЀ{nt҈P!͎	2E[_h'!`(ht~/PzR*Aه,D
ƐjQctWi/MUHɳ]o'(ff39PW*v1{䅺|zEҺt]xixA&:VـXvDNxV)Ye7{6YLIQl.=aFVÜO4xe5lT6X7V
l(8~vu$VQ~P=
Z Ylti_t%'	[Fl FFNWO:dm=6]G>Ch!ZzT!(5#E!t!YG7߬V8='J;]N'l`  j@-ҭnø?TJS~%OD
ss~=ZY${-XXtd]V{H`ZcRgy2tظZLN~M+~]k7rPX]ǆXMQ4s8TxE p;OZK|0u*8R1zk]GAx%ÓK/$|ݺfmxG)mDPVq:B:;PSm{M_'{.6naT20MA$' }&j55DzI+Hʘ3}9YF҇)$@4#8:o/2.w9K:ѰZ$gAuvLm(
Џ7a*6zb &e@i^^h!+!yEd#G>ˁ4s6J
/1SLrRQa$$Һ``X@F0Cn\Z'(	(5L:Mg4X0)%4-8ڧpүK5ǲwDЗ%$Alڤ1SeWh@oLj|j{e_19`chN$ܷŁ㠕ʱD`¥r:rǗ(&#A/~7LtqDP͆[.]m#gGF龔J7R:<NZJ}U՚))h?zҸJO܁h"7isRCO3%B{qvVjq3^%f,;MR89~0˼B*tAEy%/tRsynag;)N4lWqK̋餺#\W[̑K؅ʳHk|OA!]6ʹX钦Zs5(Sc1qvU*9B`)f+èRT\+yIVei|F,ѐg$ҿKKfKpyp5<eJ=@zo ޜi!UaaDuђtҏZuH߾'k7ҥ$j"XqAӇia)qZJ=8XwF]WeB	~M҅#
$DӬ4H]CLw^[=fhu02X4Eo>wUedP<Ŋ}r}c41['%" o7`)Z|Yi@:KkG U4s\xWԮk!v,;7@~d/7fDf͎팜ɺ$7

Аô P 3d؝^n1(Fghy/1qڷ.T,]]M>m)guo!*)]F<R6-Br0a	&z?it3h:sw)	ɓpAƘC)m6UҝWWފD9,۔C\,|CDnfg6)l2Ahq%O.7xPƉ6&D]!5*9xZFaԎ9so.s^pW-`wD -h̳6OSH|E4lg2(5g(,$n@^w7q65;v4![`zqezg$S!]˴16hd)$t,!3YE?*+ɫtuRtUo%hXFM>|M]eE.m(SBGXv<ź(ӵ 1>-,W[`tXJ=k+0k'+QYv0ΓCmK˸׾6͹}6{o}]y~DRe<ory!qz%.>#OPJ.D$֛5/a9v/Elդ5a$.)f5{ت5u9EFQX14{R?cž' MϦ@fAbkNI~@8q3olUChPVXգ뽍c#}Gj~-N:*C!-&('<"dDjML$μ͂}$A|ߓX*T}x\0b>6	lF7Z,=JߎY^7=0G@NE,_񕂴`Q凈#弯T"mp
WVX[T[<1͗Eځs%~'^˪6evzH~f7	"P|I呺ݔznI5n}xLֽ6_1ie!UfOD[H
@Vq=ծ~x{OP^$mLg]NB{D:hFxع^C7{1p/sx%:h峿{ tƣnw[b/8v0c_ ؾ%qLDvμ궩?vQ'麁Ι-ܛ;3izqns&7ۉ?q< ݳ\j&
vH0¡ky4"馧#QY7ݼ`pA:7`FF 0+OŮycReGlG]:O.Ơ3V=c q}vz f|Y`;PkIuqLo#P'[ɥ	ՅQ.^dKC~&u)d$*I:ʿ kFP>sw?:0z+)^)N-].)o/_댅Xvϊ[&9H[Cdp_PI=Dmw|_q4=G]%Ix_0pـktAp8S~8   NȬǳaRM	I+q8ᓢrUɐh:p-X1܌ըFLa	('DYeu]VFz],&!
,eG?+]؞",$yJ%[ka$x!
T3.h!r@#t1%7ޖ`3"E^M6&]6<rOBWq!@[HUaz\vۢZr n% gǈhq&^FWPoB̨7<~k.Z捚<h.-|I_HDO4̻v(u#g@ղGS<WzGAk9zg' 0ZW;X10$zCm<vq[G/.빭(l/JA-23[q^y2Q&XWbqKqt;y^~
ͣ ;uB{s8 Hc >O%f=%m[ 4GH£y͒\)a3]Q	iJǤBzΑXNfOJūQr3THnV/s͏F'9/P}Fu"g'o%r$t蚿uRVJ=<BGS=M3 ݗ%Tjn)PL!Gҝ<EI}LXUZ35φ[3`wE =3g	ѐMHks9TMwFk
,`DFXQ'(B vD)b^,"HAj|k`~+շҐ@ߺoDp=%zxL*Ϛ܊8F)!nXfnߑIz~@uC"Xy)/6F`k3#{6R=b='ʪU43H1P}ۚR9C~{΂J$E1nV)	TBA ǿUU:wQE_^sd.=?WUM)s8Lzs-O1m-Ca0
pg9TTF[8Y\t"n5	#U1zKpvQ
`~4SFb" n`d^lL'-f^2T	Pu#1؝6xRe\5r6eJsCb|7g|o$<Yb _GG1I[i5kly:Lyg0F7z".^Iv1W¦hn$G<~:N Z6l7ddSBhvzNm-h/MA,x_d#mS-	O7Y*Xuh06@"dz'0\B=^hWp5i5sB7J-u${zr89k46bux2ݔ- @s
`94:hy/,YmC{|@"ښκEҰb^H'>22	#~f^*^p.mwSr	L"
.o,t+X=nK	NAHK*%'P5o[AZȈ`AD(˨\y?A骰xH8ay8 CWjz@fXϽi_:clz.nmq-2hQ 'r+<ZKf;<nY
A	uו0OE;\ATB^&ejTv棳1[ SZ(.0i#2=sRa
ٟnIKӽGqҢwa'BLT+{Jp`Lnq=Z΃ZWV3_Vq>Cќ{C^FC^C_kh%*s"0 7\?5,\g'9Ux{V6<"rYKe&(dgL.̖\\-S_ ,-NLOU,VO*N-*KMQH,Q/RHL/KjMEhRRp(H,JE*dSH,IZw$!~5\z@!0^aa
e:
y%f&%t&KךOv[ +Ox" B8-_}W2K~5n7x{7N/	d <w	Qx{wN/	WHq)BcgBFbBqIQ~^B^jzbIfYBfnAbrByEiEyɩp\}}]\BSJ2RDBYbN)P^qIjbBI><B89#54'usnE  7gx=J@鵾!9cOR0	x5$ݰV"Oћ8)sgM^wx:n\Е&FhT!hնF,css]dl:QIRTHR5axUGr([	W$7y&LةY#ݡK.	t]1.<I/gVX Rx[qGM7T kO	msx[qGT 2:xq'\ZZ\
Z
IEi
.I
%yz@	\qf^rd$Tl=-}. 
vpwpu᪅79 %Oxg46\X;1Dts_ɚզ Ln,xg47| B%knExg57| Aex=ioH+
.v{Q,%H$',ISeu}QE/]ǶȪWWq(N*tX<_ׯ^">$R%/][Gq;G)|GP3)ˆ7Y+xz7b$bn"$FbzR+[.bϵ|~3GB`|Uc؂-xaMã4xr< {ht|9iw zdP_↰JX ʶ g-E
kJ.eƮ?m(K+8Fq莓83"| fYs :gms4p/P|i^_ΰoDU|t[!c0Z ElJ@Av'K5b\ЇnT @ܹ[1}TZNt|pp|H|c9NL YfxquK)p/7Еq#95?|։4"i,GzEu1q#pģY~ޖ>Lk[ sǡ c˖#߹8(
7f0Ud[1XE ]ύWG]yN GD\sf靍>|K)~bƇxxGg[c+ǉ3_sֱ;MBk.Ax/+ͭňq]^xIU&<$}ǝdDɜ(PDLH(HK\<bK=$jơG*& ,oZmITK+AA-xhE (@VCRͯH D-~ 	b8+2c bI(ĶA s@=8?''ոDfݠvkV$lT<ivO4-Om+~(~&IpZΤߣ )L&ҎYA'/<+PƖ3Q.5MFYD=:}$׿mb%X4rB<<n3ǀ?U&N>/`qWh0lnKVlMf$$K$#cKe6OG$/pcffh}s'1 a&?w_FwC?4j\ v]|ȏȽ?İ .+j8eZ޶w< #S4ȯ`c]r)`t."C
fRYI`@o%c$YKֻ3/|-pvUfpsQwiq$+%)48iGae8̅6>c8k4ߖ63~})gu٠RJbkoB*bĎ	%MeNmc`ho;L~^,*,* ~ 0_]ю$6ўݬvKzێ@(u
6Bvi8o>|vP!~'Lt߉c6AUZG~<Cs$v<}!L2Z;p
佅lAM韵cT-8`c>18Z+mʥ=/-uȷSe(=2a+ ѡ}V:z//3%!^2woTk㝺J挧		28[ 9R9h	a4`tJ\{[5jq&fr{zՊJ2l?$%iAH'ކW2͕7_(kp.nGv@E
z;hx;z7?:NF"?$*(Gq)F-Fbn?b~Wy3=
! yd")+oNP(5'oԄ.\Wr#
7dfܒi
O$Ԓ^9w|Х\6Y@ĂZH\DXERx<(`Jro0>=xQou$I"'("=GlS:Ҥ6f_gs0bLV<<bJ #慜L\ەiLb8 <MX c<`.^fx0gD~JNC8,H<?[Z+wcOa(mOa=\b͞|r
>C4FDFAV9F"˟KDMвR8Wn*<ip5rr|4
	"55Rk%#	Cg;&SX-,nyAqCj,2V.%|E*CL>ftB,I݆ݗׯS[9!~mtaa,O#Q|]4Fs:`ER:)z(sStSA(k?R2xن/šGW 7)/K^q+U]>z^@%'ZPc2s}3/PfZ0QzREif\,lQn2OS0AJMF GyJ6e`"«L4ΫB6[W8<E|_Cm}{]?t] z[8C;uKb#k)br=0g!u՞Y%+`E6X.x+Ia}*N<ymwGΡZHH9W1V9PmY,U̶$*m`@كf\ϐ CyKzgxy	VPQU%G4ʌ"FbD9d*a!\z|qJ{e:l/^HI?X h@M%`q:^-]	Q=a/٭lf{hh+"9tyȏ"pAZڝ}!7}8TxB"m%cN`V+ӸN˸Azm<9zqjzJ-.nhKʍHm䞨
\	떹/^G|"X9u(OagXbB:Z<p*%ruROO
r,]I+`>AVW@1oqPN\8,_TCWq
<ҍQ7H8Zo|/GnP贴	١~t6qζIZہ t*3@2(#hl4hmH[f]Q{sVKC)MflWWan$&*ĚYT^{xX?*#Q֧w:ݽ. \,?삇?&G:Q,QLsqšf)Υ *ҏܩOE"FY@NEKX$ quuv=b6&k4?O7j]vrK׏iZ&Tgj`7jkؾRUɉXɶMc(ǖ}!䕴X@zLe26~c_"ڥ`;35	0oIs; Xᖞ:hduLz\(!qV&v2f7wj1n7TN;\K1#,.0I¬ hӲP`sͱ)G$ӀQ V"Gn,v('Eu2s!(8꥔WjAUA`:Mu\)E-96o0f ?TXalگT+Џ6z>uJ!MYQp66:AH\B0
IK7JIys9D1K7TY5N@޿19~o1iHTWVE](n6"2왩GU0GyB 'KRkzpުi#FZ1=jB5DD
N)ui8PF3sytBE5^Ozff~?0:n=}6j'er_I?61۠%'n\O(bl:l2($H>|3bU]z
#muzĈ8`dsv`鯴E5$u7㞗v9BNUQnB9\-s+\i8y]Q1Xrxf;4·͒QOsBdYͶdwN̻f7jڗ3bb[5\RhxU4\s?6+yii|ɪl$ZfM[ϕk@̭#D<rne856+ *J\ת$
s5@;s/}<']^mUk噱;,9{y-R5ǜk9vwmǌt°ďQ<m561BcM[;҈3X)<8,T٠nLiO8Q@rڌLSh{>.ۙzΌP?1e)&3%]7s[jlv~]*XTxSv5K7Z'½E$gi*aq/K0t72s	<
2ͳp-x8^ɘHbNZ0k[tMԺk).\_o[n-z6ZRZuU-~'.Jeߕrxvvzn,SɘܑSps62W|xtʧoV*
e拖*}l<=Hy=.U6&wftzQ6PoӒgVjLd`g5H08S}X(ʝ|1+,O Qҹ0_ss/F^UCOU9.~!_I5p?ƍ`1`U+Y0#6Ahڔ`6반ЛFƢbǏ*~8CD~<*>
T5srI4I9O)'M*S_Ub*.z8RTn<Ju?z^+Ku(t:rHo(zKWNۼsJѥSnnkbpy(Z%/?xY7wTa]뮟?u.zqyFBUUTS+˓7sn/x|:=+׈=MgUWhϤ}{VE-B_!(-Nu,F[e3OeaZ{^$mh33#2mς]+1pO6q~&borc;K,0K#AhJδ$ɇ)orϞjyaSyHǟjX/*,h?BN=nnq%Rּog3faN[ 5Pͧ8eN{m+dGasx>w?v{_i"wS]Uďm~0#k[1#Fil|[Fyrf]AAz]XS8"tӬi؉ۅUT3MB)ߍ݊.	#.^6,nnQ-Sv@G٥AJbH6Zvx~`A0})&aܸق첋op|: {( f	|Il5tw Ab޻6:y䄂kW<y2ۅ^H<~Dr
cvaJ*K#*Qh?H5b/	 5 x9ߍf9%>yn;,~l;kNGޗ6O	IB}O3	8~Q07QS"/{xXgGͧEGLҀlǆl]5jI~N}8SED(]@W/|;v\?Q`%QCm>"#Q!&ξ,gU*љYA"t86,RjN"}363\{]ʨ*1eU`N=t"e0H=?Y+;^U^ɺFT`\g UNhgR}9\ū5JG	80Je;ra4@f=*dZRE':B甭b*4,ʥ?=u&ڦ%SGBZlX
*LtK])^-u9guX:G+n4~fީwԙ[f3<6N2}A3n! a:6촨ŝe#~9;5	ڡbnHYM5x$:n"ʉ9sp/,>>5_wQtSOѥ68<j	MK,ΤE+Wxs-oKx@Pqe2U¦j,'et|Ք?o0aQ"	Fϱ;RЖ ^7`ȊHVfB>dLBʦdvU?4ix46dr79)p6؃3tj9͐;8 Оkgjz0%\cR(9R>!& 4!=z\:nI,rKdvN9+r˫=yӃFe2>^Ώ#(P|?)#:Ǌ֠T]xYQѥãLji8O>>Ĥ[`|H,pR"߶4ׇk.uRgy"Iس2~LS1RY^ڞ:"'02_ѐojGӀ>Sԏr{1^E^.	YVXr(0ݹ¸"@IfTH;vYA!\E(Ƞ>I3¿ѤDdlmpCėMKʪ+c<U!ٵGOād4Qៃ~c@+պ>TbMw# N}xG'<RRJt2JK6-   %.x=W%ҢԼJ=.-$9Um9zV!~n>.
i
%
)%
ŕy

y%
99)
E
i9)lcalP^Bb^%Yy@Gݵyo+/1O,1 E0xk4!ӆ8&WO^ϲɇ= 4
7nVxkĴ6ӆ~%
69oxkĴ,ӆP77(	M/eWA #x% U?"?DCu #>exiCzJ\
Z
 (5$R(85Eos`ԥ =8xiK}'xoV+L T
x[v1!69y
E١)iEީ~m. Cx[viJvmz7'9pM o	}fx[vVvmz7'9L s	Fx۸iJ#Xs&_L-ϔbT\S66 Iex۸iJ#Xs&_L-b5 fx[r'+rl3#1yDə|]d 	x[iCd8|ŌM>ON 
m;x[iJ#&xKo V5		Zx[iSӆl0OXC38)5y=la	"K,3| -'5OD"T$rOsBf>b&^''L </-cx;r}f&\޷	l7k2_7fBM 88x;'O(g<mzWͅL oSX=& .tx;r'O(g<mzWͅL oSXo 7x;iJ}&\޷irW`av&umxC	 Zx# '4 @,*,+r]>Ar2x[qoK7 H5
%xNvxdR2r+<]J2RRS&oL]1`\
d=S\04(''+dM.T3t=#ǢPxtWR-cx fTvm1 h@mxiZY& 1x{ /*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup ArkUI_NativeModule
 * @{
 *
 * @brief Defines APIs for ArkUI to register gesture callbacks on the native side.
 *
 * @since 12
 */

/**
 * @file native_gesture.h
 *
 * @brief Provides type definitions for <b>NativeGesture</b> APIs.
 *
 * @library libace_ndk.z.so
 * @syscap SystemCapability.ArkUI.ArkUI.Full
 * @kit ArkUI
 * @since 12
 */

#ifndef ARKUI_NATIVE_GESTURE_H
#define ARKUI_NATIVE_GESTURE_H

#include "ui_input_event.h"
#include "native_type.h"
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines a gesture recognizer.
 *
 * @since 12
 */
typedef struct ArkUI_GestureRecognizer ArkUI_GestureRecognizer;

/**
 * @brief Defines the gesture interruption information.
 *
 * @since 12
 */
typedef struct ArkUI_GestureInterruptInfo ArkUI_GestureInterruptInfo;

/**
 * @brief Defines the gesture event.
 *
 * @since 12
 */
typedef struct ArkUI_GestureEvent ArkUI_GestureEvent;

/**
 * @brief Enumerates gesture event types.
 *
 * @since 12
 */
typedef enum {
    /** Triggered. */
    GESTURE_EVENT_ACTION_ACCEPT = 0x01,

    /** Updated. */
    GESTURE_EVENT_ACTION_UPDATE = 0x02,

    /** Ended. */
    GESTURE_EVENT_ACTION_END = 0x04,

    /** Canceled. */
    GESTURE_EVENT_ACTION_CANCEL = 0x08,
} ArkUI_GestureEventActionType;

/**
 * @brief Defines a set of gesture event types.
 *
 * Example: ArkUI_GestureEventActionTypeMask actions = GESTURE_EVENT_ACTION_ACCEPT | GESTURE_EVENT_ACTION_UPDATE;\n
 *
 * @since 12
 */
typedef uint32_t ArkUI_GestureEventActionTypeMask;

/**
 * @brief Enumerates gesture event modes.
 *
 * @since 12
 */
typedef enum {
    /** Normal. */
    NORMAL = 0,

    /** High-priority. */
    PRIORITY = 1,

    /** Parallel. */
    PARALLEL = 2,
} ArkUI_GesturePriority;

/**
 * @brief Enumerates gesture group modes.
 *
 * @since 12
 */
typedef enum {
    /** Sequential recognition. Gestures are recognized in the registration sequence until all gestures are recognized
     * successfully. Once one gesture fails to be recognized, all subsequent gestures fail to be recognized.
     * Only the last gesture in the gesture group can respond to the end event. */
    SEQUENTIAL_GROUP = 0,

    /** Parallel recognition. Registered gestures are recognized concurrently until all gestures are recognized.
      * The recognition result of each gesture does not affect each other. */
    PARALLEL_GROUP = 1,

    /** Exclusive recognition. Registered gestures are identified concurrently.
      * If one gesture is successfully recognized, gesture recognition ends. */
    EXCLUSIVE_GROUP = 2,
} ArkUI_GroupGestureMode;

/**
 * @brief Enumerates gesture directions.
 *
 * @since 12
 */
typedef enum {
    /** All directions. */
    GESTURE_DIRECTION_ALL = 0b1111,

    /** Horizontal direction. */
    GESTURE_DIRECTION_HORIZONTAL = 0b0011,

    /** Vertical direction. */
    GESTURE_DIRECTION_VERTICAL = 0b1100,

    /** Leftward. */
    GESTURE_DIRECTION_LEFT = 0b0001,

    /** Rightward. */
    GESTURE_DIRECTION_RIGHT = 0b0010,

    /** Upward. */
    GESTURE_DIRECTION_UP = 0b0100,

    /** Downward. */
    GESTURE_DIRECTION_DOWN = 0b1000,

    /** None. */
    GESTURE_DIRECTION_NONE = 0,
} ArkUI_GestureDirection;

/**
 * @brief Defines a set of gesture directions.
 *
 * Example: ArkUI_GestureDirectionMask directions = GESTURE_DIRECTION_LEFT | GESTURE_DIRECTION_RIGHT \n
 * This example indicates that the leftward and rightward directions are supported. \n
 *
 * @since 12
 */
typedef uint32_t ArkUI_GestureDirectionMask;

/**
 * @brief Enumerates gesture masking modes.
 *
 * @since 12
 */
typedef enum {
    /** The gestures of child components are enabled and recognized based on the default gesture recognition sequence.*/
    NORMAL_GESTURE_MASK = 0,

    /** The gestures of child components are disabled, including the built-in gestures. */
    IGNORE_INTERNAL_GESTURE_MASK,
} ArkUI_GestureMask;

/**
 * @brief Enumerates gesture types.
 *
 * @since 12
 */
typedef enum {
    /** Tap. */
    TAP_GESTURE = 0,

    /** Long press. */
    LONG_PRESS_GESTURE,

    /** Pan. */
    PAN_GESTURE,

    /** Pinch. */
    PINCH_GESTURE,

    /** Rotate. */
    ROTATION_GESTURE,

    /** Swipe. */
    SWIPE_GESTURE,

    /** A group of gestures. */
    GROUP_GESTURE,

    /**
     * The click gesture registed through onClick.
     *
     * @since 20
     */
    CLICK_GESTURE,

    /**
     * Drag gesture used for drag and drop.
     *
     * @since 20
     */
    DRAG_DROP,
} ArkUI_GestureRecognizerType;

/**
 * @brief Defines the intervention types for gesture and event collection.
 *
 * @since 26.0.0
 */
typedef enum {
    /**
     * @brief Continues the normal gesture and event collection process. No intervention is performed.
     * @since 26.0.0
     */
    OH_ARKUI_GESTURE_COLLECT_INTERVENTION_CONTINUE = 0,

    /**
     * @brief Discards all pending low-priority gestures and events. \n
     * The gestures of the left sibling component and ancestor nodes (parent nodes and above) are discarded. \n
     * Only the gestures already collected on the current node and higher-priority nodes are retained.
     * @since 26.0.0
     */
    OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_LOWER = 1,

    /**
     * @brief Discards all collected high-priority gestures and events. \n
     * The gestures of the right sibling component and the current node are discarded. \n
     * Continues processing the collection flow for lower-priority gestures (left sibling and ancestor nodes).
     * @since 26.0.0
     */
    OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_HIGHER = 2,

    /**
     * @brief Discards the gestures and events of the current node. \n
     * The gestures and events of the current node are excluded from the gesture tree. \n
     * The gestures of the sibling components (left and right) and the ancestor node are still collected.
     * @since 26.0.0
     */
    OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_SELF = 3,

    /**
     * @brief Discards the gestures and events to be collected from the left sibling component. \n
     * The gestures and events of the current node and the right sibling component are retained. \n
     * Continues the collection flow for the parent and ancestor nodes.
     * @since 26.0.0
     */
    OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_LOWER_PRIORITY_SIBLINGS = 4,
} OH_ArkUI_GestureCollectIntervention;

/**
 * @brief Enumerates gesture interruption results.
 *
 * @since 12
 */
typedef enum {
    /** The gesture recognition process continues. */
    GESTURE_INTERRUPT_RESULT_CONTINUE = 0,

    /** The gesture recognition process is paused. */
    GESTURE_INTERRUPT_RESULT_REJECT,
} ArkUI_GestureInterruptResult;

/**
 * @brief Enumerates the gesture recognizer states.
 *
 * @since 12
 */
typedef enum {
    /** Ready. */
    ARKUI_GESTURE_RECOGNIZER_STATE_READY = 0,

    /** Detecting. */
    ARKUI_GESTURE_RECOGNIZER_STATE_DETECTING = 1,

    /** Pending. */
    ARKUI_GESTURE_RECOGNIZER_STATE_PENDING = 2,

    /** Blocked. */
    ARKUI_GESTURE_RECOGNIZER_STATE_BLOCKED = 3,

    /** Successful. */
    ARKUI_GESTURE_RECOGNIZER_STATE_SUCCESSFUL = 4,

    /** Failed. */
    ARKUI_GESTURE_RECOGNIZER_STATE_FAILED = 5,
} ArkUI_GestureRecognizerState;

/**
 * @brief Defines the gesture recognizer handle.
 *
 * @since 12
 */
typedef ArkUI_GestureRecognizer* ArkUI_GestureRecognizerHandle;

/**
 * @brief Defines the gesture recognizer handle array.
 *
 * @since 12
 */
typedef ArkUI_GestureRecognizerHandle* ArkUI_GestureRecognizerHandleArray;

/**
 * @brief Defines a <b>GestureEventTargetInfo</b> object that provides information about a gesture event target.
 *
 * @since 12
 */
typedef struct ArkUI_GestureEventTargetInfo ArkUI_GestureEventTargetInfo;

/**
 * @brief Defines a parallel internal gesture event.
 *
 * @since 12
 */
typedef struct ArkUI_ParallelInnerGestureEvent ArkUI_ParallelInnerGestureEvent;

/**
 * @brief Defines the parallel gesture event. \n
 * used for the callback {@link setGestureParallelTo} of the parallel gesture event.
 *
 * @since 26.0.0
 */
typedef struct ArkUI_ParallelGestureEvent ArkUI_ParallelGestureEvent;

/**
 * @brief Defines a touch recognizer.
 *
 * @since 15
 */
typedef struct ArkUI_TouchRecognizer ArkUI_TouchRecognizer;

/**
 * @brief Defines a touch recognizer handle.
 *
 * @since 15
 */
typedef ArkUI_TouchRecognizer* ArkUI_TouchRecognizerHandle;

/**
 * @brief Defines an array of touch recognizer handle.
 *
 * @since 15
 */
typedef ArkUI_TouchRecognizerHandle* ArkUI_TouchRecognizerHandleArray;

/**
 * @brief Defines a callback function for notifying gesture recognizer destruction.
 *
 * @param recognizer Indicates the pointer to a gesture recognizer.
 * @param userData Indicates the custom data.
 * @since 12
 */
typedef void (*ArkUI_GestureRecognizerDisposeNotifyCallback)(ArkUI_GestureRecognizer* recognizer, void* userData);

/**
* @brief Checks whether a gesture is a built-in gesture of the component.
*
* @param event Indicates the pointer to the gesture interruption information.
* @return Returns <b>true</b> if the gesture is a built-in gesture; returns <b>false</b> otherwise.

* @since 12
*/
bool OH_ArkUI_GestureInterruptInfo_GetSystemFlag(const ArkUI_GestureInterruptInfo* event);

/**
* @brief Obtains the pointer to interrupted gesture recognizer.
*
* @param event Indicates the pointer to the gesture interruption information.
* @return Returns the pointer to interrupted gesture recognizer.
* @since 12
*/
ArkUI_GestureRecognizer* OH_ArkUI_GestureInterruptInfo_GetRecognizer(const ArkUI_GestureInterruptInfo* event);

/**
* @brief Obtains the pointer to the interrupted gesture event.
*
* @param event Indicates the pointer to the gesture interruption information.
* @return Returns the pointer to the interrupted gesture event.
* @since 12
*/
ArkUI_GestureEvent* OH_ArkUI_GestureInterruptInfo_GetGestureEvent(const ArkUI_GestureInterruptInfo* event);

/**
* @brief Obtains the type of the system gesture to trigger.
*
* @param event Indicates the pointer to the gesture interruption information.
* @return Returns the type of the system gesture to trigger. If the gesture to trigger is not a system gesture,
*         <b>-1</b> is returned.
* @since 12
*/
int32_t OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType(const ArkUI_GestureInterruptInfo* event);

/**
* @brief Get the touch recognizer handles from the gesture interrupt info.
*
* @param info Indicates the pointer to a gesture interrupt info.
* @param recognizers Indicates the pointer to an array of touch recognizer handles.
* @param size Indicates the size of recognizers.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 15
*/
int32_t OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers(const ArkUI_GestureInterruptInfo* info,
    ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size);

/**
* @brief Get component object of the specific touch recognizer.
*
* @param recognizer Indicates the pointer to the TouchRecognizer.
* @return Get component object of the specific touch recognizer.
* @since 15
*/
ArkUI_NodeHandle OH_ArkUI_TouchRecognizer_GetNodeHandle(const ArkUI_TouchRecognizerHandle recognizer);

/**
* @brief Send touch-cancel event to the touch recognizer in a gesture interruption callback.
*
* @param recognizer Indicates the touch recognizer handle.
* @param info Indicates the pointer to a gesture interrupt info.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 15
*/
int32_t OH_ArkUI_TouchRecognizer_CancelTouch(ArkUI_TouchRecognizerHandle recognizer, ArkUI_GestureInterruptInfo* info);

/**
* @brief Obtains the gesture event type.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the gesture event type.
* @since 12
*/
ArkUI_GestureEventActionType OH_ArkUI_GestureEvent_GetActionType(const ArkUI_GestureEvent* event);

/**
* @brief Obtains gesture input.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the pointer to the input event of the gesture event.
* @since 12
*/
const ArkUI_UIInputEvent* OH_ArkUI_GestureEvent_GetRawInputEvent(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the number of times that a long press gesture is triggered periodically.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the number of times that the long press gesture is triggered periodically.
* @since 12
*/
int32_t OH_ArkUI_LongPress_GetRepeatCount(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the velocity of a pan gesture along the main axis.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the velocity of the pan gesture along the main axis, in px/s.
*         The value is the square root of the sum of the squares of the velocity on the x-axis and y-axis.
* @since 12
*/
float OH_ArkUI_PanGesture_GetVelocity(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the velocity of a pan gesture along the x-axis.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the velocity of the pan gesture along the x-axis, in px/s.
* @since 12
*/
float OH_ArkUI_PanGesture_GetVelocityX(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the velocity of a pan gesture along the y-axis.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the velocity of the pan gesture along the y-axis, in px/s.
* @since 12
*/
float OH_ArkUI_PanGesture_GetVelocityY(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the relative offset of a pan gesture along the x-axis.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the relative offset of the gesture along the x-axis, in px.
* @since 12
*/
float OH_ArkUI_PanGesture_GetOffsetX(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the relative offset of a pan gesture along the y-axis.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the relative offset of the gesture along the y-axis, in px.
* @since 12
*/
float OH_ArkUI_PanGesture_GetOffsetY(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the angle information of the swipe gesture.
*
* After a swipe gesture is recognized, a line connecting the two fingers is identified as the initial line.
* As the fingers swipe, the line between the fingers rotates. \n
* Based on the coordinates of the initial line's and current line's end points, the arc tangent function is used to
* calculate the respective included angle of the points relative to the horizontal direction \n
* by using the following formula: Rotation angle = arctan2(cy2-cy1,cx2-cx1) - arctan2(y2-y1,x2-x1). \n
* The initial line is used as the coordinate system. Values from 0 to 180 degrees represent clockwise rotation,
* while values from –180 to 0 degrees represent counterclockwise rotation. \n
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the angle of the swipe gesture, which is the result obtained based on the aforementioned formula.
* @since 12
*/
float OH_ArkUI_SwipeGesture_GetAngle(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the average velocity of all fingers used in the swipe gesture.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the average velocity of all fingers used in the swipe gesture, in px/s.
* @since 12
*/
float OH_ArkUI_SwipeGesture_GetVelocity(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the angle information of a rotation gesture.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the rotation angle.
* @since 12
*/
float OH_ArkUI_RotationGesture_GetAngle(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the scale ratio of a pinch gesture.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the scale ratio.
* @since 12
*/
float OH_ArkUI_PinchGesture_GetScale(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the X coordinate of the center of the pinch gesture, in vp,
* relative to the upper left corner of the current component.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the X coordinate of the center of the pinch gesture, in vp,
* relative to the upper left corner of the current component.
* @since 12
*/
float OH_ArkUI_PinchGesture_GetCenterX(const ArkUI_GestureEvent* event);

/**
* @brief Obtains the Y coordinate of the center of the pinch gesture, in vp,
* relative to the upper left corner of the current component.
*
* @param event Indicates the pointer to the gesture event.
* @return Returns the Y coordinate of the center of the pinch gesture, in vp,
* relative to the upper left corner of the current component.
* @since 12
*/
float OH_ArkUI_PinchGesture_GetCenterY(const ArkUI_GestureEvent* event);

/**
* @brief Get the ARKUI component bound to the gesture.
*
* @param event gesture event.
* @return ARKUI component bound to the gesture.If Null is returned, it means event is an invalid value.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_GestureEvent_GetNode(const ArkUI_GestureEvent* event);

/**
* @brief Obtains information about a gesture response chain.
*
* @param event Indicates the pointer to the gesture interruption information.
* @param responseChain Indicates the pointer to an array of gesture recognizers on the response chain.
* @param count Indicates the pointer to the number of gesture recognizers on the response chain.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_GetResponseRecognizersFromInterruptInfo(const ArkUI_GestureInterruptInfo* event,
    ArkUI_GestureRecognizerHandleArray* responseChain, int32_t* count);

/**
* @brief Sets the enabled state of a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param enabled Indicates the enabled state.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_SetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer, bool enabled);

/**
* @brief Sets whether to enable strict finger count checking. If this feature is enabled and the actual number of touch
*        fingers does not match the set number, the gesture recognition fails.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param limitFingerCount Indicates whether to enable strict finger count checking.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 15
*/
int32_t OH_ArkUI_SetGestureRecognizerLimitFingerCount(ArkUI_GestureRecognizer* recognizer, bool limitFingerCount);

/**
* @brief Obtains the enabled state of a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @return Returns <b>true</b> if the gesture recognizer is enabled.
*         Returns <b>false</b> if the gesture recognizer is disabled.
* @since 12
*/
bool OH_ArkUI_GetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer);

/**
* @brief Obtains the state of a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param state Indicates the pointer to the state of the gesture recognizer.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_GetGestureRecognizerState(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureRecognizerState* state);

/**
* @brief Obtains the information about a gesture event target.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param info Indicates the information about a gesture event target.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_GetGestureEventTargetInfo(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventTargetInfo** info);

/**
* @brief Obtains whether this scroll container is scrolled to the top.
*
* @param info Indicates the information about a gesture event target.
* @param ret Indicates whether the scroll container is scrolled to the top.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
*         Returns {@link ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER} if the component is not a scroll container.
* @since 12
*/
int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollBegin(ArkUI_GestureEventTargetInfo* info, bool* ret);

/**
* @brief Obtains whether this scroll container is scrolled to the bottom.
*
* @param info Indicates the information about a gesture event target.
* @param ret Indicates whether the scroll container is scrolled to the bottom.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
*         Returns {@link ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER} if the component is not a scroll container.
* @since 12
*/
int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollEnd(ArkUI_GestureEventTargetInfo* info, bool* ret);

/**
* @brief Obtains the direction of a pan gesture.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param directionMask Indicates the pan direction.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_GetPanGestureDirectionMask(ArkUI_GestureRecognizer* recognizer,
    ArkUI_GestureDirectionMask* directionMask);

/**
* @brief Obtains whether a gesture is a built-in gesture.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @return Returns <b>true</b> if the gesture is a built-in gesture; returns <b>false</b> otherwise.
* @since 12
*/
bool OH_ArkUI_IsBuiltInGesture(ArkUI_GestureRecognizer* recognizer);

/**
* @brief Obtains the tag of a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param buffer Indicates the buffer.
* @param bufferSize Indicates the buffer size.
* @param result Indicates the length of the string to be written to the buffer.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
*         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH} if the buffer is not large enough.
* @since 12
*/
int32_t OH_ArkUI_GetGestureTag(ArkUI_GestureRecognizer* recognizer, char* buffer, int32_t bufferSize, int32_t* result);

/**
* @brief Obtains the ID of the component linked to a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param nodeId Indicates the component ID.
* @param size Indicates the buffer size.
* @param result Indicates the length of the string to be written to the buffer.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
*         Returns {@link ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH} if the buffer is not large enough.
* @since 12
*/
int32_t OH_ArkUI_GetGestureBindNodeId(ArkUI_GestureRecognizer* recognizer, char* nodeId, int32_t size,
    int32_t* result);

/**
* @brief Obtains whether a gesture recognizer is valid.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @return Returns <b>true</b> if the gesture recognizer is valid.
*         Returns <b>false</b> if the gesture recognizer is invalid.
* @since 12
*/
bool OH_ArkUI_IsGestureRecognizerValid(ArkUI_GestureRecognizer* recognizer);

/**
* @brief Obtains custom data in the parallel internal gesture event.
*
* @param event Indicates the pointer to a parallel internal gesture event.
* @return Returns the pointer to custom data.
* @since 12
*/
void* OH_ArkUI_ParallelInnerGestureEvent_GetUserData(ArkUI_ParallelInnerGestureEvent* event);

/**
* @brief Obtains the current gesture recognizer in a parallel internal gesture event.
*
* @param event Indicates the pointer to a parallel internal gesture event.
* @return Returns the pointer to the current gesture recognizer.
* @since 12
*/
ArkUI_GestureRecognizer* OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer(
    ArkUI_ParallelInnerGestureEvent* event);

/**
* @brief Obtains the conflicting gesture recognizers in a parallel internal gesture event.
*
* @param event Indicates the pointer to a parallel internal gesture event.
* @param array Indicates the pointer to the array of conflicting gesture recognizers.
* @param size Indicates the size of the array of conflicting gesture recognizers.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers(ArkUI_ParallelInnerGestureEvent* event,
    ArkUI_GestureRecognizerHandleArray* array, int32_t* size);

/**
* @brief Sets a callback function for notifying gesture recognizer destruction.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param callback Indicates the callback function for notifying gesture recognizer destruction.
* @param userData Indicates the custom data.
* @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
* @since 12
*/
int32_t OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify(ArkUI_GestureRecognizer* recognizer,
    ArkUI_GestureRecognizerDisposeNotifyCallback callback, void* userData);

/**
* @brief Obtains the swipe direction of a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param directMask Swipe direction of the gesture recognizer.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_DirectMask(
    ArkUI_GestureRecognizer* recognizer, ArkUI_GestureDirectionMask* directMask);

/**
* @brief Obtains the number of fingers used by a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param finger Number of fingers used by the gesture recognizer.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_FingerCount(ArkUI_GestureRecognizer* recognizer, int* finger);

/**
* @brief Checks whether a gesture recognizer has a finger count limit.
*
* @param recognizer Pointer to a gesture recognizer.
* @param isLimited Whether the gesture recognizer has a finger count limit.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_limitFingerCount(ArkUI_GestureRecognizer* recognizer, bool* isLimited);

/**
* @brief Checks whether a gesture recognizer supports repeated event callbacks.
*
* @param recognizer Pointer to a gesture recognizer.
* @param isRepeat Whether the gesture recognizer supports repeated event callbacks.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_repeat(ArkUI_GestureRecognizer* recognizer, bool* isRepeat);

/**
* @brief Obtains the allowed movement distance range for a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param distance Allowed movement distance range of the gesture recognizer.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_distance(ArkUI_GestureRecognizer* recognizer, double* distance);

/**
* @brief Obtains the minimum swipe speed recognized by a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param speed Minimum swipe speed recognized by a gesture recognizer.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_speed(ArkUI_GestureRecognizer* recognizer, double* speed);

/**
* @brief Obtains the minimum duration required to trigger a long press by a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param duration Minimum duration for a long press.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_duration(ArkUI_GestureRecognizer* recognizer, int* duration);

/**
* @brief Obtains the minimum angle change required for a rotation gesture to be recognized by a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param angle Minimum angle change.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_angle(ArkUI_GestureRecognizer* recognizer, double* angle);

/**
* @brief Obtains the movement threshold for gestures to be recognized by a gesture recognizer.
*
* @param recognizer Pointer to a gesture recognizer.
* @param distanceThresHold Movement threshold.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
* supported.
* @since 18
*/
int32_t OH_ArkUI_GetGestureParam_distanceThreshold(ArkUI_GestureRecognizer* recognizer, double* distanceThreshold);

/**
 * @brief Sets the maximum moving distance for gestures to be recognized by a long press gesture recognizer.
 *
 * @param recognizer Indicates the pointer to a gesture recognizer.
 * @param allowableMovement Indicates maximum moving distance.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is
 *                 not supported.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_LongPressGesture_SetAllowableMovement(
    ArkUI_GestureRecognizer* recognizer, double allowableMovement);

/**
 * @brief Obtains the maximum moving distance for gestures to be recognized by a long press gesture recognizer.
 *
 * @param recognizer Pointer to a gesture recognizer.
 * @param allowableMovement Indicates maximum moving distance.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is not
 * supported.
 * @since 22
 */
ArkUI_ErrorCode OH_ArkUI_LongPressGesture_GetAllowableMovement(
    ArkUI_GestureRecognizer* recognizer, double* allowableMovement);

/**
* @brief Sets the minimum movement distance thresholds for gestures to be recognized by a gesture recognizer.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param size Size of the array of minimum movement distance thresholds.
* @param toolTypeArray Pointer to the array of tool types for which thresholds are set.
* @param distanceArray Pointer to the array of minimum movement distances, in px.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is
*                 not supported.
* @since 19
*/
ArkUI_ErrorCode OH_ArkUI_PanGesture_SetDistanceMap(
    ArkUI_GestureRecognizer* recognizer, int size, int* toolTypeArray, double* distanceArray);

/**
* @brief Obtains the movement threshold for gestures to be recognized by a gesture recognizer for a specific tool type.
*
* @param recognizer Indicates the pointer to a gesture recognizer.
* @param toolType Tool type for which you want to obtain the threshold.
* @param distance Gesture movement threshold of the gesture recognizer, in px.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
*         Returns {@link ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED} if the gesture recognizer type is
*                 not supported.
* @since 19
*/
ArkUI_ErrorCode OH_ArkUI_PanGesture_GetDistanceByToolType(
    ArkUI_GestureRecognizer* recognizer, int toolType, double* distance);

/**
 * @brief Registers a callback that is executed after all gesture recognizers are collected.
 * When the user begins touching the screen, the system performs hit testing and collects gesture recognizers
 * based on the touch location. Subsequently, before processing any move events, the component can use this API
 * to determine the gesture recognizers that will participate in and compete for recognition.
 *
 * @param node Handle to the node on which the callback is to be set.
 * @param userData Custom data.
 * @param touchTestDone Callback for completion of gesture recognizer collection.
 *                      - event: Basic information of the gesture.
 *                      - recognizers: Array of gesture recognizers.
 *                      - count: Number of gesture recognizers.
 * @return Result code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR}: The operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID}: A parameter error occurs.
 * @since 20
 */
ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback(
    ArkUI_NodeHandle node,
    void* userData,
    void (*touchTestDone)(
        ArkUI_GestureEvent* event,
        ArkUI_GestureRecognizerHandleArray recognizers,
        int32_t count,
        void* userData
    )
);

/**
 * @brief Defines the gesture APIs.
 *
 * @since 12
 */
typedef struct {
    /** The struct version is 1. */
    int32_t version;

    /**
    * @brief Creates a tap gesture.
    *
    *        1. This API is used to trigger a tap gesture with one, two, or more taps. \n
    *        2. If multi-tap is configured, the timeout interval between a lift and the next tap is 300 ms. \n
    *        3. If the distance between the last tapped position and the current tapped position exceeds 60 vp,
    *           gesture recognition fails. \n
    *        4. If the value is greater than 1, the tap gesture will fail to be recognized when the number of fingers
    *           touching the screen within 300 ms of the first finger touch is less than the required number, \n
    *           or when the number of fingers lifted from the screen within 300 ms of the first finger's being lifted
    *           is less than the required number. \n
    *        5. When the number of fingers touching the screen exceeds the set value, the gesture can be recognized. \n
    *
    * @param countNum Indicates the number of consecutive taps. If the value is less than 1 or is not set,
    *        the default value <b>1</b> is used.
    * @param fingersNum Indicates the number of fingers required to trigger a tap. The value ranges
    *        from 1 to 10. If the value is less than 1 or is not set, the default value <b>1</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createTapGesture)(int32_t countNum, int32_t fingersNum);

    /**
    * @brief Creates a long press gesture.
    *
    *        1. This API is used to trigger a long press gesture, which requires one or more fingers with a minimum
    *           The value ranges 500 ms hold-down time. \n
    *        2. In components that support drag actions by default, such as <b><Text></b>, <b><TextInput></b>,
    *           <b><TextArea></b>, <b><Hyperlink></b>, <b><Image></b>, and <b>RichEditor></b>, the long press gesture \n
    *           may conflict with the drag action. If this occurs, they are handled as follows: \n
    *           If the minimum duration of the long press gesture is less than 500 ms, the long press gesture receives
    *           a higher response priority than the drag action. \n
    *           If the minimum duration of the long press gesture is greater than or equal to 500 ms,
    *           the drag action receives a higher response priority than the long press gesture. \n
    *        3. If a finger moves more than 15 px after being pressed, the gesture recognition fails. \n
    *
    * @param fingersNum Indicates the minimum number of fingers to trigger a long press gesture.
    *        The value ranges from 1 to 10.
    * @param repeatResult Indicates whether to continuously trigger the event callback.
    * @param durationNum Indicates the minimum hold-down time, in ms.
    *        If the value is less than or equal to 0, the default value <b>500</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createLongPressGesture)(int32_t fingersNum, bool repeatResult, int32_t durationNum);

    /**
    * @brief Creates a pan gesture.
    *
    *        1. This API is used to trigger a pan gesture when the movement distance of a finger on the screen exceeds
    *           the minimum value. \n
    *        2. If a pan gesture and a tab swipe occur at the same time, set <b>distanceNum</b> to <b>1</b>
    *           so that the gesture can be more easily recognized. \n
    *
    * @param fingersNum Indicates the minimum number of fingers to trigger a pan gesture. The value ranges from 1 to 10.
    *        If the value is less than 1 or is not set, the default value <b>1</b> is used.
    * @param directions Indicates the pan direction. The value supports the AND (&amp;) and OR (\|) operations.
    * @param distanceNum Indicates the minimum pan distance to trigger the gesture, in vp. If this parameter is
    *        set to a value less than or equal to 0, the default value <b>5</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createPanGesture)(
        int32_t fingersNum, ArkUI_GestureDirectionMask directions, double distanceNum);

    /**
    * @brief Creates a pinch gesture.
    *
    *        1. This API is used to trigger a pinch gesture, which requires two to five fingers with a minimum 5 vp
    *           distance between the fingers. \n
    *        2. While more fingers than the minimum number can be pressed to trigger the gesture, only the first
    *           fingers of the minimum number participate in gesture calculation. \n
    *
    * @param fingersNum Indicates the minimum number of fingers to trigger a pinch. The value ranges from 2 to 5.
    *        Default value: <b>2</b>
    * @param distanceNum Indicates the minimum recognition distance, in px. If this parameter is set to a value less
    *        than or equal to 0, the default value <b>5</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createPinchGesture)(int32_t fingersNum, double distanceNum);

    /**
    * @brief Creates a rotation gesture.
    *
    *        1. This API is used to trigger a rotation gesture, which requires two to five fingers with a
    *           minimum 1-degree rotation angle. \n
    *        2. While more fingers than the minimum number can be pressed to trigger the gesture, only the first
    *           two fingers participate in gesture calculation. \n
    *
    * @param fingersNum Indicates the minimum number of fingers to trigger a rotation. The value ranges from 2 to 5.
    *        Default value: <b>2</b>
    * @param angleNum Indicates the minimum degree that can trigger the rotation gesture. Default value: <b>1</b>
    *        If this parameter is set to a value less than or equal to 0 or greater than 360,
    *        the default value <b>1</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createRotationGesture)(int32_t fingersNum, double angleNum);

    /**
    * @brief Creates a swipe gesture.
    *
    *        This API is used to implement a swipe gesture, which can be recognized when the swipe speed is 100
    *        vp/s or higher. \n
    *
    * @param fingersNum Indicates the minimum number of fingers to trigger a swipe gesture.
    *        The value ranges from 1 to 10.
    * @param directions Indicates the swipe direction.
    * @param speedNum Indicates the minimum speed of the swipe gesture, in px/s.
    *        If this parameter is set to a value less than or equal to 0, the default value <b>100</b> is used.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createSwipeGesture)(
        int32_t fingersNum, ArkUI_GestureDirectionMask directions, double speedNum);

    /**
    * @brief Creates a gesture group.
    *
    * @param gestureMode Indicates the gesture group mode.
    * @return Returns the pointer to the created gesture group.
    */
    ArkUI_GestureRecognizer* (*createGroupGesture)(ArkUI_GroupGestureMode gestureMode);

    /**
    * @brief Disposes a gesture to release resources.
    *
    * @param recognizer Indicates the pointer to the gesture to dispose.
    */
    void (*dispose)(ArkUI_GestureRecognizer* recognizer);

    /**
    * @brief Adds a gesture to a gesture group.
    *
    * @param group Indicates the pointer to the gesture group.
    * @param child Indicates the gesture to be added to the gesture group.
    * @return Returns <b>0</b> if success.
    *         Returns <b>401</b> if a parameter exception occurs. Returns 401 if a parameter exception occurs.
    */
    int32_t (*addChildGesture)(ArkUI_GestureRecognizer* group, ArkUI_GestureRecognizer* child);

    /**
    * @brief Removes a gesture to a gesture group.
    *
    * @param group Indicates the pointer to the gesture group.
    * @param child Indicates the gesture to be removed to the gesture group.
    * @return Returns <b>0</b> if success.
    *         Returns <b>401</b> if a parameter exception occurs.
    */
    int32_t (*removeChildGesture)(ArkUI_GestureRecognizer* group, ArkUI_GestureRecognizer* child);

    /**
    * @brief Registers a callback for gestures.
    *
    * @param recognizer Indicates the pointer to the gesture recognizer.
    * @param actionTypeMask Indicates the set of gesture event types. Multiple callbacks can be registered at once,
    *        with the callback event types distinguished in the callbacks.
    *        Example: actionTypeMask = GESTURE_EVENT_ACTION_ACCEPT | GESTURE_EVENT_ACTION_UPDATE;
    * @param extraParams Indicates the context passed in the <b>targetReceiver</b> callback.
    * @param targetReceiver Indicates the callback to register for processing the gesture event types.
    *        <b>event</b> indicates the gesture callback data.
    * @return Returns <b>0</b> if success.
    *         Returns <b>401</b> if a parameter exception occurs.
    */
    int32_t (*setGestureEventTarget)(
        ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventActionTypeMask actionTypeMask, void* extraParams,
        void (*targetReceiver)(ArkUI_GestureEvent* event, void* extraParams));

    /**
    * @brief Adds a gesture to a UI component.
    *
    * @param node Indicates the UI component to which you want to add the gesture.
    * @param recognizer Indicates the gesture to be added to the UI component.
    * @param mode Indicates the gesture event mode. Available options are <b>NORMAL_GESTURE</b>,
    *        <b>PARALLEL_GESTURE</b>, and <b>PRIORITY_GESTURE</b>.
    * @param mask Indicates the gesture masking mode.
    * @return Returns <b>0</b> if success.
    *         Returns <b>401</b> if a parameter exception occurs.
    */
    int32_t (*addGestureToNode)(
        ArkUI_NodeHandle node, ArkUI_GestureRecognizer* recognizer, ArkUI_GesturePriority mode, ArkUI_GestureMask mask);

    /**
    * @brief Removes a gesture from a node.
    *
    * @param node Indicates the node from which you want to remove the gesture.
    * @param recognizer Indicates the gesture to be removed.
    * @return Returns <b>0</b> if success.
    * Returns <b>401</b> if a parameter exception occurs.
    */
    int32_t (*removeGestureFromNode)(ArkUI_NodeHandle node, ArkUI_GestureRecognizer* recognizer);

    /**
    * @brief Sets a gesture interruption callback for a node.
    *
    * @param node Indicates the node for which you want to set a gesture interruption callback.
    * @param interrupter Indicates the gesture interruption callback to set.
    *        <b>info</b> indicates the gesture interruption data. If <b>interrupter</b> returns
    *        <b>GESTURE_INTERRUPT_RESULT_CONTINUE</b>, the gesture recognition process continues. If it returns
    *        <b>GESTURE_INTERRUPT_RESULT_REJECT</b>, the gesture recognition process is paused.
    * @return Returns <b>0</b> if success.
    * Returns <b>401</b> if a parameter exception occurs.
    */
    int32_t (*setGestureInterrupterToNode)(
        ArkUI_NodeHandle node, ArkUI_GestureInterruptResult (*interrupter)(ArkUI_GestureInterruptInfo* info));

    /**
    * @brief Obtains the type of a gesture.
    *
    * @param recognizer Indicates the pointer to the gesture.
    * @return Returns the gesture type.
    */
    ArkUI_GestureRecognizerType (*getGestureType)(ArkUI_GestureRecognizer* recognizer);

    /**
    * @brief Sets the callback function for a parallel internal gesture event.
    *
    * @param node Indicates the ArkUI node for which the callback of a parallel internal gesture event is to be set.
    * @param userData Indicates the custom data.
    * @param parallelInnerGesture Indicates the parallel internal gesture event. <b>event</b> returns the data of the
    *        parallel internal gesture event; <b>parallelInnerGesture</b> returns the pointer to the gesture recognizer
    *        that requires parallel recognition.
    * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if success.
    *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter exception occurs.
    */
    int32_t (*setInnerGestureParallelTo)(
        ArkUI_NodeHandle node, void* userData, ArkUI_GestureRecognizer* (*parallelInnerGesture)(
            ArkUI_ParallelInnerGestureEvent* event));

    /**
    * @brief Creates a tap gesture that is subject to distance restrictions.
    *
    *        1. This API is used to trigger a tap gesture with one, two, or more taps. \n
    *        2. If multi-tap is configured, the timeout interval between a lift and the next tap is 300 ms. \n
    *        3. If the distance between the last tapped position and the current tapped position exceeds 60 vp,
    *           gesture recognition fails. \n
    *        4. If the value is greater than 1, the tap gesture will fail to be recognized when the number of fingers
    *           touching the screen within 300 ms of the first finger touch is less than the required number,
    *           or when the number of fingers lifted from the screen within 300 ms of the first finger's being lifted
    *           is less than the required number. \n
    *        5. When the number of fingers touching the screen exceeds the set value, the gesture can be recognized. \n
    *        6. If the finger moves beyond the preset distance limit, gesture recognition fails. \n
    *
    * @param countNum Indicates the number of consecutive taps. If the value is less than 1 or is not set, the default
    *        value <b>1</b> is used.
    * @param fingersNum Indicates the number of fingers required to trigger a tap. The value ranges from 1 to 10.
    *        If the value is less than 1 or is not set, the default value <b>1</b> is used.
    * @param distanceThreshold Indicates the allowed moving distance of a finger.
    *        If the value is less than 0 or is not set, it will be converted to the default value of infinity.
    * @return Returns the pointer to the created gesture.
    */
    ArkUI_GestureRecognizer* (*createTapGestureWithDistanceThreshold)(
        int32_t countNum, int32_t fingersNum, double distanceThreshold);
} ArkUI_NativeGestureAPI_1;

/**
 * @brief Defines the gesture APIs.
 *
 * @since 18
 */
typedef struct {
    /**
     * @brief Pointer to the <b>ArkUI_NativeGestureAPI_1</b> struct.
     */
    ArkUI_NativeGestureAPI_1* gestureApi1;

    /**
    * @brief Sets the callback for gesture interruption events.
    *
    * @param node Node for which you want to set a gesture interruption callback.
    * @param userData Custom data.
    * @param interrupter Gesture interruption callback to set. <b>info</b> indicates the gesture interruption data.
    * If <b>interrupter</b> returns <b>GESTURE_INTERRUPT_RESULT_CONTINUE</b>, the gesture recognition process proceeds
    * properly. If it returns <b>GESTURE_INTERRUPT_RESULT_REJECT</b>, the gesture recognition process is paused.
    * @return Returns <b>0</b> if success.
    *         Returns <b>401</b> if a parameter error occurs.
    */
    int32_t (*setGestureInterrupterToNode)(ArkUI_NodeHandle node, void* userData,
        ArkUI_GestureInterruptResult (*interrupter)(ArkUI_GestureInterruptInfo* info));
} ArkUI_NativeGestureAPI_2;

/**
 * @brief Defines the gesture module API set.
 *
 * @since 26.0.0
 */
typedef struct {
    /**
     * @brief Pointer to the {@link ArkUI_NativeGestureAPI_2} struct.
     *
     * @since 26.0.0
     */
    ArkUI_NativeGestureAPI_2* gestureApi2;

    /**
     * @brief Sets the callback for parallel gesture events.
     *
     * @param node ArkUI node pointer for which the parallel gesture event callback needs to be set.
     * @param userData Custom data.
     * @param parallelGesture Parallel gesture event. event returns the data of the parallel gesture event. \n
     * ParallelGesture returns the pointer to the gesture recognizer that needs parallel recognition.
     * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if successful. \n
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *
     * @since 26.0.0
     */
    ArkUI_ErrorCode (*setGestureParallelTo)(
        ArkUI_NodeHandle node, void* userData, ArkUI_GestureRecognizer* (*parallelGesture)(
            ArkUI_ParallelGestureEvent* event));
} ArkUI_NativeGestureAPI_3;

/**
* @brief Obtains the custom data from a gesture interruption event.
*
* @param event Pointer to the gesture interruption information.
* @return Returns the pointer to the custom data.
* @since 18
*/
void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event);

/**
 * @brief Prevents a gesture recognizer from participating in the current gesture recognition before all fingers are
 * lifted.
 * If the system has already determined the result of the gesture recognizer (regardless of success or failure),
 * calling this API will be ineffective.
 *
 * @param recognizer Pointer to a gesture recognizer.
 * @return Result code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR}: The operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID}: A parameter error occurs.
 * @since 20
 */
ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer);

/**
 * @brief Obtains the gesture recognizer from the gesture collection interception information.
 *
 * @param info Pointer to the gesture collection interception information.
 * @param array Pointer to the gesture recognizer array.
 * @param size Size of the gesture recognizer array.
 * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetResponseRecognizers(
    const ArkUI_GestureCollectInterceptInfo* info, ArkUI_GestureRecognizerHandleArray* array, int32_t* size);

/**
 * @brief Obtains the handle to touch recognizer from the gesture collection interception information.
 *
 * @param info Pointer to the gesture collection interception information.
 * @param recognizers Pointer to the array of handles to touch recognizers.
 * @param size Size of the recognizers array.
 * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetTouchRecognizers(const ArkUI_GestureCollectInterceptInfo* info,
    ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size);

/**
 * @brief Sets the gesture collection intervention mode.
 * @param info Pointer to the gesture collection interception information.
 * @param intervention Gesture collection intervention mode, which is of
 *        type {@link OH_ArkUI_GestureCollectIntervention}.
 * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 26.0.0
*/
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_SetGestureCollectIntervention(
    ArkUI_GestureCollectInterceptInfo* info, OH_ArkUI_GestureCollectIntervention intervention);

/**
 * @brief Obtains the unique ID of the component linked to a gesture recognizer.
 *
 * @param recognizer Pointer to the gesture recognizer.
 * @param uniqueId Unique ID of the component linked to a gesture recognizer.
 * @return Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 26.0.0
 */
ArkUI_ErrorCode OH_ArkUI_GetGestureBindNodeUniqueId(const ArkUI_GestureRecognizer* recognizer, int32_t* uniqueId);

/**
 * @brief Checks whether the node linked to the gesture is a child node of the passed component.
 *
 * @param recognizer Handle to the touch recognizer.
 * @param uniqueId Unique ID of the component.
 * @return Returns <b>true</b> if the node linked to the gesture is a child node of the passed component.
 *         Returns <b>false</b> otherwise.
 * @since 26.0.0
 */
bool OH_ArkUI_TouchRecognizer_IsHostBelongsTo(const ArkUI_TouchRecognizerHandle recognizer, int32_t uniqueId);

/**
 * @brief Checks whether the node linked to the gesture is a child node of the passed component.
 *
 * @param recognizer Pointer to the gesture recognizer.
 * @param uniqueId Unique ID of the component.
 * @return Returns <b>true</b> if the node linked to the gesture is a child node of the passed component.
 *         Returns <b>false</b> otherwise.
 * @since 26.0.0
 */
bool OH_ArkUI_GestureRecognizer_IsHostBelongsTo(const ArkUI_GestureRecognizer* recognizer, int32_t uniqueId);

#ifdef __cplusplus
};
#endif

#endif // ARKUI_NATIVE_GESTURE_H
/** @} */
#xk|}&ksnPX>9TtbA ͑>-xvnd'˳qlΖard[f -mWxs ״ kIbint32_t#2}Z`Mw+{4cy22=G+	KR!&TURE_H
/** @} */
u+>xM ފivdoublepv;
EvZtom!
\tpOx *uGx?}sqv"xKW]xɼ?ӆgrfm\ ^}x-ӆgrsN6C!Nͩ2?WeXxr{3k&'d6e|%v#^ !Vx6i399'Kn!6yNͩ2ll8,	f<\,<;~rL~7rf֋ !n]x[i387O 7wx[i?7'poN] W/,x[%7.˘FtrS|&	 !Lx[%76] QnKxio7'|w >-dx'O8Gc,]K3N^xh`]]hQx{[ᥓN^[Tټ EAxS1OA'XjL4O.)cb3;vtw朙=8
)4!1VZZl--9cVo͏J;13 !,"XF*Im5x#d2l
iB65玱Butj ,s{Ʒ0?`xG
%0>PڤSҊ1dRF6嘂WiKIΤMQyvq
BSQVn8^U$b
.Z"٥ 7h)EN<
nS~y!l54TΌW@I酶(oNMA",hs4K=ȱFW.!h3-a	M D!w?+jx߽upG!q9ep֪']'4YΫOm%Zn9fY}/r1wvqСMT 8O~}S:zV$#XԹ-@Viz{tCJZ4DtESXzOa!x('NQ3tr+&56&_CKq5DL$Ʃ(^T!F_qϹj-Q[[i97^uuJx{ilKհM^`aI0yr6L> !Yۼ lT
HxWKlG8d	1)4&D!@ZLHTzoc݄U%o}qTܖ+K4Tzzp -H̻7]V2UCgwȨJ"E5ҧM(;eqӿmwI>]Y[:s^X/WTi4QsB
@ev%CjnJEyQ(#9M-_THhLaOTӌ?|Xi`0N_^]U|\!>_NsVߪ̕%+2hGN$XRDͼI%SJTsTnqrAꆦwdEZ!n,4K{OR%k-KwIr4+18pwKb	sE:>pFo\bvy6wV@_	urؖo߇N<[3SEPO]Qݜ㸤HNSiȠ)yJE%jeh
n:sQYɪ((&2aWNK䢬Ҡ%Qǒy2
굠L-͒}yU-}2Z ˑh|ݮåO6M%J2.Ys w^?$	rzxa:2`}Ͻp@}ĔH-QMQ{fHe,gpk
@MXLK|;Z>b	0eZlql՞~Ԥ84Y|U$T |H豺`^dD\<^AWf<+Ljn~fT`VfJ3lA%,Qb'E2ᓖ>y'%?~dxHzTj =||4}r,:>2:p"40PJR!CSoc۪p^p;ێ)dPT'i$nvN()ɩڲ\[O]K&Y(nwlkQVQ$VY.lX++%kcYbzx,=L>hh%<o5z~к*BQk8
2NJ9	;	*(2yS 3K)3BMSu8e|5Cʔnhχ:,u80.;%!8,ǨՂ%GEHvGMhY$"mYWbkW69'W '3נϳɸ;[gd<VHO 3zV$M9nZ=O.)_a18C.~*(/"#p6p:5|-
6f}b6CQG]Y'UL \Oo7#Nsc9zyy1 S4=.xL2xGEg#{~Hnpv5T,FXf3F=?rNbxkti`9{Eb28xkzt"}͇j&/0IM }	\xkzio&;l椓 wd	x, /|0&7r7J:xkzi5D'?`e%dMΖE2ޜ-1y[
6稼gulnTk x$ /|0&"W@B,m(r@xkzt*kVN~69K2曜-%:d&9[c'ɷ$6K+02mQyRܨy^ 2P 
;xkziCVm.)2wg*%];o!fL6dٜP2[ %D&)|j4 7qB GC#xŔNABB: h!&~5҈M!raݝvw,KCȹ bxNw!I=ssfsͧwGz:i`P³mNXNahpUl'|HD9RApcDRtU3VuVR\XQ;%&|It m_=l5Tـ(|/qQ5lEۨZm~*]vR3b-6ATWR<&G:1d%,DrΖE==#quN	%&1qѠg8HxުE]eanO'ܛYoeLŋV2ri!S^̗KO
|CQ!FS4)&=I$̤s+Xj%AJAװkqT1qJvOܔp[:9M!'}^gFb6|Xebh$/ٹ+2#Gl_  Mpp=}@{5[rQH=*{1)bujPCm{7	7/ϖ<bbuԺ;~nWkj(5̸ma)MGLSBH:4AƄ7]uqouKǽ*9#5[AwMV˹? s+"x;pUJHMΒL⤔&d4'.>fi Fh{F.͍j- [x]JBQI@+
fBEE
*E1쇈zGȽbVlU zVAoв7\f9?|3osYZ崟%ц*@`QT,x0RAzBDFbp;iw;MCв]A](A5<[ᓛM޿^yMɘZE2<Yy{8Tb<#=Nh $0XW$N5]w]rh0RN9%
U>?|.'N]ms3E4 Z8_x) ƴ&.h$U)-څgir8x;vY%
i
%
ŕ%
%E
%
%E߉f.HOSJ!X!/D!M$'فRS
'KLV\ YZ4@Rb'Pew1YwL~Tx;f3Y&/d|%HL\ 29e5% SxiC2%
%
Aޡ
yy%
Iy)
%@e&R&U!=(U3M4'G!X((YWZKS+KLQ ĹSR=RrR'bq'7(+O.dU7A xBm'xk8a5̜ٙ%
E١3GG w!	&xXmo8_1H$Wn}f{:]i-6QIQ_~ϐ-9^иyyf晙.:tA:\Y:FU$q ҝ>}oBTf4dWQgi
3^8^a[]R*iKe!!CP$ܒ(i(AFٕSIqfQs+p\B%h$a5f	38fK;E.&_`tu!KdQ*-FEbS!mH,;QVe.za7H5/m@Mdt2P89pe!_Ôh't?M8GxzG!tI1F>=є>ɐE"ZeR,%-ZQ.M
jc6)QºЈQ]8"^]40_āVޟ%赊eA!E\%ψ@@Μ *pъљ,EF:+nHkʈvZDyKpѝ+ț*bTH#ʗ%dP8~8M__KhoLeVd/)PO 9fJ_ꐢةM'$ϲkޤmhu6pUߕIUփ꯶9U9@,Mws*	ts
I	
`/,v6,_G>$$	},V}yny@Bv=.p+V$2X&$%N%jN"wXX$CQO|w?T0_Kի̉dt3D7 V"KG8-	w_a(A?eDR_?op,
Qq0ݛ">Hsm8;2
	K-"K	p7gppSϨ q*нk
4*UQM.HW.#ԍ[Q#rOo::Rd}5>zLB̶#n{|YD*L+TeX HrԴ6bkjldHHVFc˵
L?l>ٺAr6+a$Kb$HgϜыv~Ľ[RsqTn/ٗ?1QZ܎Pk~ۙGRº?<{]DǠ&JsWElCX`~㑝EWG_muë	2ñK5KNPQ}￻VsˉS=ଵ///rV\оanpmep]qwm\ƠMp1֥R	vsvc$B7̹@U9:iT":ywul
é-b6rU 2s+NhvNy*BM j^6ZbS0YKr%:nyKFw8Lu1DB'yir(2l\`,w,>Jk
-L* 0ʠG$"}rcp/kDQw{&7N'WZ"Lj%eN-hr!:[DbzC
v ŅXk2p"F.sw,Yp/YWޯRihFb>Hggv==xv^Y/;yt^!'G_gk9"2e"@lm^A$W0LKa	girkS(mn:9OއLHڔEa=DU5箉cM^lɏzC{5,[ ޜj~\jxD_^ݩ6iQS^K<o'^<W>xqNqtvF3X7Wc Hyo7xTAOA>ؤtmBH$ KSJ
BVbQ4Nwfvw3[hH17o^=y_L-BՃ{{{{{osC:%RgڀtϨdLl`,j>OVçy!x@;Z=9Kbc8m"ڰqҹ0jS1^]]bRS<-c'"IzUk&=F*~fVN/!]nFMZH/3*{;5q.xsFլWkU]C#5Ekjq?!#ӭ6uZQmR_'Y*Bd [7o
CFC-]NG^,]R5T"E]|&SqEuI&PGXn6=eGԭ
\pזxea.c.xJgrQC#9Hno"'dOP]:3>C%.PYrYSr(!ڕ8i8!"dEL<(17ez$C%dt ].,V؜Y%#6⢩K䟇fxd@ޞe;cA-̀yĢre`/C'00J$IQ=ŕ@5t<V^f_vE^:yv->čK$r}\,ei/s)OFnx;xNqtvF38,n/x;xNqtvF38,	v(xOA[(`@ǡݬrRRGґvf;ˏғ7oɓޝ-S;~Foc#ANxIۉ/470m.]B	') (spQ O^ܲMıCPA WH2wZŬZښe_m=п@Pr](i!Uq&!̊aV%)ԌZw%B^lVbtq*$byGy0X!Dzա/1L}pIJjy򏒔HM>PV5K5$:r6 Qcircl3z}50B=cR;QҦ "BtAϏ@\ *cO"m?.Gš\.W'*xH,kuuSx>t^tUߦ88q;[jaJzp{.~6Z!fc<wI_H9h+R	JA*rG`hlz܏|Y-)c.jK>vџ-'=^׭/e9a[E6svO:F*oq?ut\x20'Q'\vgm"[I1WDjS!f<zpiH&?
t|41deEʽZQ%1=xR0` B+**Wi4dX*TCJ֎,#8	| 7'mgy3|kWgYЃ[M$(&0|Er0Ǆ2*)gq2"	cc+[2}>AOh2^}RpcF#!"sxUϝ0#QYGpaui´$g`=3q5Zqۅ4Ra,s$Ci۷ԏ;7c괺uУrҘc]V}o?3dl M>=vgr:\oWΣ-I?a̟~Öȍm)ʥ`>\**0BwE̅X!2ȹ*Xl:kx-b|`3mgO=}~"\mxTn@UR!hZn2	t&m !Di)i%#q3ԙq bɷ?;m ʞsϽW9w0/XN͊̓, sDЄc-!"sP	@(`?"89MoħԽ(j`q g=0*Q"`ҊSkˍnV+w^nV{8Q?CTӕ׍튙>q?2Kbu|6sAcD90&wVR@}sRJi0 Q&*%r(@mPl^Gm5[v=Qu'5ǪEg@3YLpMpW}($&+w
YI.	-bF,Q(@.dV68P"TN3;,mz7(*T{0X٠_qՄ%{z!WTQIab<QS(j/FpY]b\$!98Q*bXg^0JzMּqcSm.#d7!;{fn쀁Q;i&>&sU^^|Z*1}PV(\]δXyσĒ*⳶$;\Q8bn}%̉<\Sj\dc(_'1Rr0(şQ#QLI.]t{X5+^*1#JU#ׯ1M:aEʽfxۦ^a[IeAj~FlғL@_KK1S(5'$5E$_!%31'?]!)AAK1;3135]Van͋ئp ;ooWxkUhU𗝩hv6 1\x,,d}Ve$Ԁ=-}. pwuss1}]]Bt&뱪 ֶ4+/ #iWx"E~C6ki)<Z|w<mo7~:qC>Hcwgcgkc6N UUx"]~C1cBQjNbIjBIBb^fnbIf~dvVkn/U/Nos' %0txRAk@%V PKE`.ɲ!L6/2nIEyȳxp2Mb`2Wykq=#
>9 XPF%xa ((
2F(0#|1Ք(	Ϟg{KDL1K)SSkoq q+~UWc2u%4 3ђm
S<w.mL $<HQAmcxSLױqyMnzd[M;:@ZW ^76ae0ͮ 4@*Ͷkn]Rߺ/
rשׂjEs	,$oSaOg!e+9qaQcm'%?^,d423ּDP!em{jkuK9+!qo5},ݫ
YЃ[Ku݇
֞<v ϻaԿ^!&Jx{Qu~vl%Elw {'3Ng`0^g.-(IssswqOSHK'ջ4--ɴԴ̼<T⒢dB)d.n %|%@GWarD\lP(~	313PNe zF'|'PCtr.B;9:pN@|F$dAnk j8gxujAtSKmzBA\0{Ǝnf7z/^>>3^39sl~>2Q II*BOeH4"(cTQI%CJK3TpZu@(8-jMPo֒v(aJ#wSaGe}9ЌGٰ
|&,A`\$BYb|xpoІ'dHq4{]Lvs]R3m-y7[PLR.o-s\_EĎy9s^omG{7WK2O[+%DcB*|m:@|C&ib?E@d0
ދؑvD	LQ*p͊b1$w9!-2:xĐh^6DyІRrv$$ WLtv>O1w)>6}x?ɿmr%x)d*T*d+d%&($*(g敤$RKJRS&e; }e[xՓkA鏤mX>6.Z(-H+.ҤmAPŎ.3PJII)'ggf_MJ˰ϼ?r<:"赣z1HD$"@GUB$0N 9jȭpHi%ZciB*$2}eoc 	5ډIނZ{Q5	
[P~_F}NW95ZS:(Cf2ԏl7=8nQUAYDb\BD5R@AZc[hWfur1tרV1UQ_&zE7U,z~m yӑ5AY>U~sa 	ZHYEK_{h.QKFW*;r9Ɣ*P6P+><jEI;#4PMK=ńFam?gby=2*Y'hg6'o8}TpVe{2ܰRz$Ub NGVv\-^߿ݥϊ?j[%ak~I.j&!}YZ:;:u:vi♰	pnkH;(Ԭ{ٝj>hHLflt{.C驟^S~_(x]s8αdn/sYcnɥ$-EBöf*5^$@$(ϱht A2:jxe6޽}w{o$5r.rmUN!H|F@F{e}g|[.}GLb$Z~IsC*6\߰s-viQ!l3,V\,hX1ťgǫ>8޷AxqѢG744=EF~O:<[
YFE8L_n{Fk+DFqΒXgz. Y=2K=2G{Ws|21AkA:6s$U{ lXjp<,E+ds׆u
>XpFX0`2tc+&
xq"r8deN}uu@Łؠ	'ïEs cdPDM¹ f@0&@ex91{6x0O?4-,Zcy!mYk5U{q~ŌL1 Hb1")E^~X겊"%sgAy3Lw.؏:1ZG1ZvFf}-qyww~{l֛qox:/g~?L_ \Ֆ%2~bgŅIS{%'BvP;=(IeF^!׉;%BV7SKϬL̨az9U3|]]Kt<tNgPhڟ|9÷/^0hznBE;=q}w>*
o?fVB%
`FZH8P7F	0O}-~JA˰7I{)clѩ~6O{]0nW:
%F:Y{qy{Ab#Kt9a~ (ƈII	v ߾-޷'9mۧӦf	Sǈ]&ɮ9jQO)ď*c]ғhrv63ꇥ"1X	S}WJ5Jxpv Ai\|5
"@@ajf$@iΒptA{Nbe(iy\C{r֌ bC:@U6e[OѤ/&2 q\7tN8PZoUJhRDq1R-H+0~<ڼhdz5N,װ&5>jBQIWR@VprtT,L&dt&VO[t{~氂e a&/ɨ&F
D:J9Ø6̈́y$vh( ĿkMkz;LXMbX&^].jo4 a3UlY`ڗ[0hlv>SY`NcJ)AMH'x;?2s%lDӱU
djMT ̧}#3rg0;N{mn;Ŕ	2$w\EF9=7F4&2nYǻ
h2j97|ٙN*tdv=奏ڝReï`b÷j9"BSw5<F,MIn"jA|UMyyVqil4﵊JWVfb+(ZyU)/8"H
sG~iL(9t>ȣG5Ƣ8LX&{>́ܹ34 pa\cZaA>x;c!ΆB8 yhȹHӀ%mcPoY3IV+b,5x.մsbbTT=&$2!604׈Pz@Q$x)re$L0,2K8`~KrC1TJތ yVaoD\4^Yy|{sNgݸћg:vc[ΡM;aF%X2֝76YVq}ҢB|y{v5ޯgqgE٪M_De'`씂~hV 5rN?+㥟,g+IwaM`,JH2`PsJVukaYRK0H/U*/:jzlP]buL#+^00Kw|ZEG%/
R?~4D6qL<3	_hKx;G)y0uf}S
&+Ҝ+Iۯ1^_R42,yWl׮ׯ?j5IjUhp./		1&3uۋI4f@mZ5]N4Nyס
,#-pzoNpyM4T)՘BZ
~Fk6vn5ttP*5]K2/)F
٘94pp
Xͳz,@+ZKwRl%Y#!4^ylilOԺј*'R~$BA?rҀ'c|$"oJ%~t,L<M|Ni^"lBJ|1>z~{c !--|qAP3<&0h$8uڀՊ@oEy2A/bxIdT`X"%	haKT!RVę@e 30@!n$_B.1`Jȯ. LvDrjDG-"ו"J'Ug4~cѤ);&Ggfi܄[$@U%-Vfz}U6)qCRŀDDT|7xֺZE[MOa.zXIU5Tl« [Pt`Ig&+Huʆ	|Ym#A8vͭ?@AJփD.RT2z񷧀
yP8 -տsU[ZXo;}W&M5E {Q`؁DR.Ma)msDϟzqq	ňnHJ:]%(?9=K%~>/)+eb+KcLZq~rv~˶vlm;:r~{
nn=g2 ڨ~ݖUܫYu[;gXװn]<aU\iGvnf(aOiH>gZ:[Kj;olōy^˵jV11qcl&-)evY?RAee!?}>RJZ,a˙oU{'OZ{R.̤R%jfB_Rn0y5C%b" 'VHye׽8PnJF{R+͏j\;z`8w./(R	fnxh0A,sGq
ym4"+@PnMW,!qK%TUMF	kg`}e.xd8SZv_'IRg@R,☹?>F.X^D/,ZdP')E{9rH^3ZKzx1.xzrVUѻFݙQT
bד󎃠\ǘ vD"qx*? sݑzg^> ;@bC	/ɤ-bҳSy([T.*Q9˸*Z.%Ϙ˜="3STZL:vO$I{Dl̰
1af^^z(rTxaT_rNِ{D2ֵ5N'e|={DKLi.ݓ:林tL0k*uoqY{27v07l10啼9eaB$%j7k=$`~ʑqfɔP|(G 9~P+f UQыO571Mzݬ>*ӛ~|w#Uie7)'6O)\/Ԣ{;OķP^txMg*l;ۇ7^Q8oOLA0vH"q*=;5ET	eciyql*gv:(6w+jFzRD&>:Ak̶?kLqGAcEriɚ;!DELwiL)pٱg>C7Va'h\<!..YvzyٱU}\=U/D4o:!](S𫞃F\O|otހރ&o"
#{']8zPU%CiKqwDdJ[:͇
CHl&E<kl!b-=ဳ)_yMTQ.s:&#ywb_QAy XtKW+`|sѻ=/ߜD1ЉgF7]	0Z;IEcTސ+ˊGhY6JQV~_6sy2ba<.0>I<7vx+s>D٘k,~@nFϣ?]S"\<"7t`s߉%-J_[L'Jix=^8
Wj	F}4%}7c$%mmTRz%n0-_8PMfVDuRAgaIIɺj{ԼR%0?{UXks`^;seC~;Z7V܅ӥrԒbVZL^gdϔ`*$/!yNţtƵ/Xsi>i27#e˲KhVq'p)c
~YJ&_;\VV_Z]80gYH\F<\րa~vت8.c8%X0CM$'<Vwf-O+3 0?CN+.H`<Xm&mu_pVRЬ"ɒb:(RQzVDz+PVHl|7VOĉB}'NŤ0UsD>?E@r6E'GsH2SnHiJe|eݪk#ii#F!2&U"OŨg]lIU>3nt#!YAa<׏ӕlђpȏDr4	.k>ͅΟC'Lbz)xy(v"[Ml@W=fe`$U	[XNGqm_I_5\E#+f@A+,FnN:nn [y?W͒_Xa(U")Ws̥.: 73JfSöF&ךㆆkMoU %)](RT{)ia^tMPk9cpK=tt\ێ)m.[a^3] q7kP4PƠzЄjgrcBtIicOUd`QY!Iq<kc ۳
	 nv#Vկb=+%-1dq(ĖrA5ݯ6^uYZ&ص<+9%3Y;d*HM:) dnԇ/o"&|G >(gu,$b.)C*?@q[BGnӕTD HZQ%!3`4n{j%6~{37.U*Ûv*< 50gQtUyKrRҴ[oK)}SʛWRerZ'wԨ"cϨѸ#FF9Ll7)QsfX7O(yGHyRw%jQfm_w8Tg0Veg2W~M~N+V2g@SuiL@Z<yRIន;ߗķlIH=H\ӯm#fj[+J\K"-60O;P&dS'-ܽ 1܈Ky$\qvuj$yxhߖa,ZÆhA|#/v	&T6E,?7.?FqYΪ2	AyYW呾TdH5*e;2# 76X'A͗uRBmKlLe oҔPw8K="eUh@LowldВɺh^rYCNQ,j%xs%IL"-ݴwtj$^|6g?w;c;tZ15/xPAG"	X(DxU.ɪx;A@x3s3^;[S""hgg!`` ή5rz|볥G 51)wQ}owYlިA`0Cu:=chפ^PVu(uB)0I6!i(,HX.&`b Aۜ˗F]@bNsM&р+Eqk`HM!W[XiI{ܐq\ɹ̏d
rt1R?T2Y&MTa[(PuYz[h	}L-DްO!]h$,48/o26J-xz&aWb.6!V `yO(%.Iu"`щSi:!2A9DE99{Aw%+'gGW֯Ǐ1\loa>[޼9ᾼn>m8i_([x{5yt&N^ϑ\Xntd7ia1&iڼe' d
[x{5uqɊ͸U6/۬ ɼ9@&bfԟ\#Ó_XY^*~%Eɉ9y%œL0E(5DS:j<\7c|XdHa&-X^CT6T
 =|x{5g:Zx'H.JM,IM|Vw (x{5y\9'ql^Υ˷YANysL#̨?G'3/-(7$3?Oo#Ut22K2s3J'/<aXQQj^t	y}6OH`['Jl?KesAudpzMnL`͖(~#;eظR'WwjONr1a!Pdf]ARRrRJ2R$%&ge楃32KJR''3ids j1x{5n+ӆ̓/Dnv`Y<YC|\]lVd du13O.K/M,,/iu/x'H.JM,IM|V7BE #$(391' ?3x@&(`JG[MgY8ؗmpVqL_|˪T6TǰMf	۬bLْ1YSf_N6.-՝ړ\'onԨ4YestW䆤}ę'SQKKQHKLI-V(HU &')19dNJiQf^:X8#D$xr)&,u rx{5ㆯ̓/DNv`y99ufɌ9'ql^Źy!f9M2@V3B̼Ē<r&_W7y"gY&N^ϑ\Xn@FfqI~QfrbN@~f^I䅁2'L`+*J+Q<!vp/		|kUigl.a.Yɍ	Ę|%cxdVɑ2l\
Z
I;''O0Qi@3<I63O>ѧԣZP tMNRbr6ȜҢ̼tpFfBIjS3'MHc,u NӆG*xjA(H&#'8q*pa$$$QݧJzڪuV94Q3:(@t!Z}Ib{i]u?Ń珻6-zhqm), R|\RW.sjC\p~bZ-]ޘ5_
A"Kd#.Zٿ4 2b"H7Jt8Lm3\jkpp14b{bɇ=դ
,udt<Vn"^ڗ2K}]AHݮxwP bF^z!|3jۜj\<<Ầ54"<m5޿JzFi,)y`j~]c/OѧC+}@^g7[ch&5_2cH1HNs%FKCuS^xkżzO[>Aؼ L;x[xiB}9&-d\?E`"Ͷ}l\
Z\&'d8[
,3Ai.I60y!`zIM^4[br#`ʛ0Oc.ܜ8ly50&/\d清 %}I)o>6#=ƲgSW  [dsxMkAǱRӴ(E$m|Fi-=}Bd31Cvg`%A;x׋W+=xoA
3l e?ٷ߆:LTrv09ZeL0,BDШ5$ ި2p#+ <jbd'Sj&as2	[MGm_O`ˉi8cURlWvUq	1L,KtϭL$VY
̡W"FMDG<mvg]cJ! Ak9s-2)$aԠ eˀS\L[G}8&NQ0w) |-a`*XSy)`K4j!KSg.uX\)9 7W+T:R}؞n\|:mm!QߺYP/[/FZ~dzQV0	%HXg<dNMlbB.*|WߊW*~̘H{C0|q!CfiC:-);=1Vp8ӏ`n0Lצ'(9yURbxMJ1T^eR^ZGkvwڍ$d o Aě4ζ^a7y*|ޏi/5qJ~헠AiŴJ);f4JiدԎ㪿eq=Nyg{o$dlBk#>CcH0Q<(Y+c	TxgblPC
"dVFN*2ʓt).a?ma4;n/h7[gA6~$ieQLqZdq'v7jW'C1HCex[x%35'N#RX2y:y ,xWoTւqS0`1tQ`{q[8N	^V,;;ziɦR4(ʏCʑEREmշ6R>iwv93~/oJlf>q28j|lxLԖ	{t>EgMk̳W:+Jd0mFeHe1pG1'e#$}V \jLJfeNb,BB]7NLGa㋚H&I}JjÄ@`2ˣ~.i6`N[9˕,np%g.tpdP(Jm'b>yxV>Q/B[?ߎ%j[5EHR!֫eyN'#gg$w=-ĹN湳DlwדI!Ҕxd$s06
)	9bdRRΣ92f<rB-dͱg'Sߣ"lzs+Xb"E븶&6)\nRO'7G6G{3`[pLʩ<۷I}Eev .=>?
׿/^}(4?N?},a>'h?#rP&8+$:鼹챝⎺5̼.2γ<v`]/5y>O<G_igZnbQre[9hāQLVV61Z8!"x[ZLeuY)M1vjre3v-.g$Kzx Ia`v4ǵDpbg`GΗZi̖hC3}!X`[Aƒ_ԜCNȨ<>YWDO$@OTzB㤅Ai6E]."ɥ\_E2zzj(m2ve49mJe8Ve{MκV*8syrS3#q2z4Fdgz
+85yzO+Dle	2CIS݇]Ϥj|t.rcyիRM:>1CYm{"(lp|KB5VP4}ܛ*:q"{<=tf.Y[ɤӧ#Z'tedR؃4J|Bi2=%Llw`{m!?7\qa KWvo__]z,-nƉB8U_T~YSkW]E4AX}ZguƯ+w_>mџ:_E(yt^$FCOX~G~7Kg=:9FR0'`n{Շ zie߽+2O3T+[u@H8V:8Y[vT÷/%S{p xv aOwJa
ꙪxUj`f	\ -Px+
!W:Q3[_ZL[!ԄS׆46~`['69/l&w}SWbk*_<Υ+$; I蘼78,-Vo$Ψ.@lunSN'dnLuANp.Ls`NeӁs_RiJ5hRnž}U'!*bxmkAũ-iDHi"k
XPCP#lvgMl	۔"Ћ <hsXI!zً^7ή66y{3~Zyvc|E4f@ʆ|~q](EMb)	'ܐJ|NC,z˷}^+|:az#)QٔEdMǗZ`=NuB[h/Zzh$Vči̧9#8UK`Z(>{]Q?J_6,"Wz|HLH䬀]tɠfr7`q}Y2*5pR!Fe=Qr2'!BdgPb<9[iYS\ō^eUBL2fftΉ``Sw(<rai;KLpՉtFzD۷/AVΠQO7
x}KQűڄ4"\XRHR&NR%6>rzSｙ0ںhWݕ ٷm"A-JE;S{w=:n^$%1Ne5TC*C)Jlr#ZXIgVԄeƣe0Ľ⽝GLM+$z2{!	Nb((Rc k9w5V	<;k9?\p+
Xl5c>U"@`}ǀ M(fz1eĉ0u	GiY&k^pL%5	۴dzp&r9࿸Cdg뫚yA	@ySM'Ow0tHtڸCxxUoEV:!9RD+%b6dm(bƻc{zf;3'܀AHPk+ PUzq`fԮCW;z{~{=rѻOPOqQjdâ0XhvϓOa"h8s'_E^"T#'FaT".ʀaHE,` ^46VA }@`J 栂	5&@<;[Et%YkVd%2?MnZb> ]a{
̬imtJS&Kh|;)C)RLǃY98@=7;qۅ\>#	B)AD"[CuOSk QCA jā/!~D7aeֶleOʿ"[$uX3!']F6؅dyE{.4!@+}Uޭkȩ#PWO+	yAZȒ|[,(p#UC9mݗn:5<!%-=O-:9'5-Pj0Dm^Ju>MWYk?=jf**;Lԧ(S2S}P/͕q%#Ҩz<~ه6	Bs30|.RAŻԙd]C"(yLyZu]uӓg_
΁"Ѣt?N|m#@JԡT޸Ճ6ҹ ͒6+T!;oK=ZMxOcqW!D?۱#ڝfSϫ7CNAokuJ=xk8ic̼Ԣ̤̜̒JɧYLN`U`<u҂~!a~~!JlNV\f!5=KH_(;3ٸ̔"$;.-̼ļTc'oH7dHKI|1Tec䉱J')M>|vZ4'_4WK,,KŮsa2Θ mx4 `10NATIVE_XCOMPONENTc![
bxk8yV̼Ԣ̤̜̒Jͼ'YH(d$Ng//LI-|1TjdcQvg# ƓH%dbWJM)ZZ' 3L
ixkpq/ɹ̲UYqe(m>k>y1r,
i]E')`610|RerZf
FӲd@2
ťɩz\
Z
A%Ey
Uˍ6s`3${lw <hxtiCki)e(g)d**(d+$'%椦q(h)8gE@e&	9;9l+ 	PxWoEW~(iaqL4%JIZNJ,8JKjwgwmHFHV	r	8pqE\{vB}=7oů}?^cNídfh栆W~r9pSV3Ch4V$8&6,eoUf7>r& t@lf۾P+(Pb،9,bh3!vMh7+<>}4xmXja\0TJ1! ׋~-z|׍ђŧZhۄ%VlN6 v0kՀe4xڬNİl8Z-hpDAEnr
Єm|92"Kr;4`H*MloY\)r6DidǮӶ)m64wKOsUyji[}k,9b`vfjd@Cvr`\	;_S)4j=_5}I&E^^6%7V
Ez^qNM_ZԡW5.	z6 Ǝ!UU~R[߄_pF<v=k WHHl_,>iG{XD muc{C<䡱Jx;=,jtz\ -ꒃiP#c~.cؐ~1ۂflV^Muj{}=Eu`G!zZ?^~ܻOLU\짭uqf6u0P{hVu)E@wX (Dh+ "q$7
Hٲ<^z5$s|q_l3نǯ m&nSMBy'لogSk{	%e+/Vf1!Cˢqn2Y:ڴȁH[M%6BY[|gg:씈%*&P'WXWQEƅ<DG=ΚDҝ%1ij^Lg<+Bqvi@TVYϔr`Q0}C[ds:絙؎H')\߃C
Dzjme-L+'˟k!-D},=,cCbsx.rrBW5U<\Ē".;ݞ"v*)9@&DMDv:nlx[>iTw'Mڜ' g#x:iMӆG97q=  i	"x[4irf)
y
%
ũ
ey%

ɉyɩ9)z\
 P	Q04/ ?_gFN{%Axq?Y&˳NٛT% v	#xV 
}&v }
 * instance ofR]Fj1handl{}@0B"yw<7B*]w(34$k~AxՔOAشiKL	0XHQADHHl(Ͳ;m:!h<p7Ox4͘x5Ɛx$EQ~3o-÷mËWczxB J#)2ŸYg3r<)WY0e7ԅĈOS%qyNDI K(NObS( 	ZVե4XV)`}ࢵ/%JnvcղXMTaWL$m#݅BlP<MT.M߇,yE6.V=->ӏT;ҏ~
NvS2.ATv<'fksA
PUEnYBhdwPZKz=]@ZlA*䉀Oʄ/Obcp(	ł
si33J籢өZE{ʪN+@<0Qn0tMÁtӃٞO	ObMu8anͤHZ߃2%5 TQuu))IR1Tü$bx>x:iKƅ60hr_0hc	Sey,kPDx6zkog.-ޘ6vY+I`𶷣YNb='*GnݧC;YmO;pH$l03	/fv왦Π>~~:;^$!2Chɾt\xk:㆝&gp+%*TN1(+LQKLN,I-V(HUL<QJD<#39C(3==$	$Kbey%kRON2U<]dl6lUv` ((xD-6>4|E
ɩ%y
ɥE7&Oi;yid4^[K֙PHt~I'O>a VYGxk},X/i($lק5y3& nxuuWY6eaM =&
xu6ٓ?Hg敤)+$M~hXPP\	H-K+RК\
sSR'OΉr2=]ɲE';鋫%dF8p,HKI3/ ?#:/$x5QXSSR` ((X!'3/[1;35(?(5«ULS(HU/H-J,S,V(.MNN-.N+!dA~a>.`
sSKRN2j#tQb?QO\/1$]x1V (C;6x{{qg^6R
E)y%
i

əiɓd'SfIM+*K-RRTҢԼĂĒ<̼rr-RE(x楀u#?WY6d@6mK&߰eX4dy
6P'IUˑh^#x9e±lDRSPY\XI(ju'
8\#{f%JE|wel ;E$C0x͒AkA	MBKAV-%4ev;d3F{| OsՃ~WUlMoq~/Xx"r5Nc24JJ28U+8PZ=zS{_s8K}h+Eh	XpST"Q)҃
~0rs덺^}X_]ѓgzrz1()nrIJ)&I-39;]T	4뙄@L$B	b (M\o{K;+qykCxWխRiM<ijOK1HhB"gЮصn rGS6DO ȆhJFb`>M% q'73hz_ѓFL픷lHȶ\0jS 2|­w
?bgx,1ڞZ|V6M`9@Yj^We̚z#xV>nvKp,>xP=JA&JlFxGbalZ" Va2yIfb* 7 vu21C<{>R/ǨdZ\c]w#,Kϯ,(3	H%RN$'dByC6R##kԲZO,.2!){cgz;[RJñrv1#dcRE#	I(&cUJ*Drei ldU^7\5P:͝?o>6g.xWMgF2U[@ߊ[Ghzi{GiSK[ٚ1i^V x/ nclude <vector>% :P,'CY4]S$xsqQ	3,SK3RK2R&;HO`+RPVZX7yEH"(UKLN,I-F7!
E
y%z\
Z
KjZbiNBYbNiBfBZbNgFNCsjI9
. R_%x[q)WY8RRJ26eY;Y$LZ$?W,WZZP2Y7LoX	1.-Ң̼tTL'ą&c=YY~RQBK3<a҉%!%)7N~/ɢi5y$ aAKx[,ㆌ"a7yKS3'w2hG`D0H>^wWF̔Tl=@@Փ7:O"<: P-n=x;.6 84x;y7HǒQR%E
%
y%e

i
E١Lq2<%Pb!?DN^#=!JgA=Q4b=.-J-)-+V010)IT(H,JM-I-RHHN-(SON.-*1O%Hd%V;9Mw h4ymT lwNx۵RY4RRrJAK93/94%U,5$ȎK95/%3m"	? n*x۵&]Z.iy
%
%)
iE
E% "/=U4DKA3S'_䗝.)Xԝ[9?M!2/17391GsSR ̼c`}--DZO
TSyd檝MFTj	\h&y]u]pK*LMSN-7Lm&qPɂ~Όu%i?h%-'&v˞17İqQg'*;yg)f&@Od$( SKB`2\\>JM,.I-0cyEP	L噁M. ,镵
x\koF_1p8*ޢX4EaE"lHN.FH|V=%2y{c]XFt=8|sxkcu
7[4t)	c4T$t^iO*}G7KRK\P'"c1%ԍC"edVx68]RIF!tG=,I?\__%A`:^}"R~	B.0(W1@^	9%}N["֓ZF8qTdf"0ng(x:5ٹxB|笏O'M|p- 1F,"4Ps}	x\⻘Z8MTRQ~LZ1@s?	U`}DO#.D'xJ4`!i~4|5瑾=p@sAܐq3Ğ3!CU7R<J@I4jkSpc5&bOEB! b`!>̀6QP.,{Xpι&\BԩqI$窏<$M 3wbS'n+[V,C#-1t1VG;f~:%&>fX;I|G+yO4@ώ?z
W醝Wh0H]/d#ԍElt*E_H %˅؄F6 ߎI~ROr@흱E4FS\r`g im!+`L%1	#	퇘;#$ʳ3/r3FJs0nMkJRH̜Txoa[<
b7F]و?}	p$'ipF;/#ssRT,HQlSĿG8{?2&Jȍ՞Dz`? U{Z >]kԼ}ap	&nsYW.׼L
vv.o,.m?VwD,.CkEHXY
5^̄Rrwz46`Oz-k@oiDe[܄ߢM<|&6\+bv 15{=#{z/K3*/hM׊!h.)H":dDgipms'1e EugLAOZ&} sShlvr¹#7v^H|a\כ*wǷ$4rk5k{| >Mxٍf8#ʟ6.CP\1L$56ޙ^ی3dE]bu=AbDO,j% Y47A Dv+!;0h	h5>*(\x(*ګ-D5&)]Ad7k~ ajB_?[kکl<g"	A҅>ڃX2ǚfiT>^l%fc	,A#7Z|pScK t2)a^V5({X_N:iϬO8*?Q67f4
N&~+W|4 kӸpj:(W pt51Rpf%Perx{}iM+sw&}+hH3<R48Xr^HLÁr<sgX*0.3hr4[7Ʀnoʫ%WŗWiSP!n]C
\6{Exq"K-MSԮvEgB1 FQ^qaDAM42ژByTW >$rm\*߶~Җc#2߅kRć9]НDrkpu
^7-UYNu)tdƬ)UeɏP"G(C6mֱQKo_lliI}S_+f`X!WRkţ%-7.ʋuO,0J!?TtK-q#k(~D5$ږZ*(:ޞ]B>{DOfe6,-xe?hI̼'_++3Wo*iHiZ]EWEQrUInã% 0#4d,W7sӄ|m߈ܥfn+Q`*:$%Đ"D/eM1H~V/7Uс4iEഴmeãt9 zQo5cHV;P$|ܒ<xM|wvktF-JVw(*|,c-Slu<ޞ=w=n-0QOMf [M7qXϺa_~0=58R!=j몶*;[sqUu߳=yp5L
ǳexL
u^<xvg0;ņ mÞ2wnЫ޻yڔ~
Zg)@%	$@7u\aϳzi_nmCx#Puj)$3TCLtHJTq~9w%2,59m(D6DT#:\tӘN᤼kr,\]soy\M(C}q0YK #LCiA}uqB4j	As{޺ĚdR\x=@Y&j1EW:p_N)ɞ#WNZkJ%޹C<yg\	kk<o+{9* ~;^
j~V-cOYm:'@>"j:*i/eժoKFDlJ:MJCthv"L[x7EU[*m!UZ#͉Ra:}U#B!v+6\fbh[7[q2P%#B> Y
_%hER:
Q'[p7^G,	AԎ$w|YTM\"* #P$0<!̋=WPt`O"	mJ8q2A32[Vu:E+o\t}r5=Tks3룖B+$-D}a 1F
/ڴeFϋdCrgcm:Xٶg5jfje[D PJқ |TB(B Epy,q!6=	jcghSy;dߐ.e?ewNnyMm7\pCh7e-kXҫ1cMFAMy/od88h.V}4}!xbyيm&pN4ٍo1SQbcJOl(Qu  PbxbM5&)l>Q´ف{![Q~dn{Y&-f*|APq2yLi>M% kMmxq\%~Wz /uBmlxq\E~Wz /5:mxqv? +,txCbC$X2(d)&'q)h)+
sSKRR+SJ2&/%2FlhX7yz'/ Hj#x;q\&zPPVPOIML27lg ivmTxϸqC wo 'Olx%=jQr	6DXbxKfi\m 	dpΧ;Y+6J r>Q,uXp96%oVUfr{d;v;ۨӤP$f~^d4ol>iT׬PTyyN45x8qb7&3yD'r{ SKVxqC$@͍Ǚ39mҙ̓ܽ`2xƸqRj?&ocΛmiΌ"2 jk#xh`>y/7 !9x되a=XJQbybRNj|JjqrQfAI~^%,,ZZ\8Ņ\\j&Gr)h)$9ezƣ)ʷOSOJM.QS(H\8\88R0pc(ʟÖ=*anE~a9\
@0YSMS\\0s%Rc1dS?ac& 2Mjxk/]U_KKAAK!(35M?$13X!Q&.9?$d:푘jd\P
6%/$,U83%U$ 1 (1W!5La|V-PYbNig^JfrbIj1T{j"'CEԥqhL6]l řyɩ
F seŗ({;ezƻzɦvD
- #fD;4xԡa.[}IFBjQQ~Br~J+T;de+8yzƻ;Cx
i
 sRK22KSJsjajco_DĢԒ"S'spmb8$S	q:.SͰK}d?x4tW ,\*x]r8@e>ٝN";j'$rQ$dqC===u 	R-O$?n x{Fzd-׾}3ɞ[w&6)ϡ5?7YI8d4Ll%GG#"cM\/$; 3ۡޛt%X:Bwv8gDT"44L,Hbi7/cx7/^4xxtrvuLG~qħlLc
:|bޅ2}ۡI;çHƲз0E\, Z3\|xEWɛx	8M'WώǓ>ώƠzQ`FmRn+J3,<R=MͽY7xwA"Ъ0h!^ءGϞ1MdXVjI_חky%=OSߦ3r{E%&Xnj;exfPiش܂P	,2V)c @8W&PYX}V#됀hAg`#<2 s^}`,\/)p2]M3V;eb$M;75ajڵ>@Ojt150eErVr-J$Ξ˿Ά˓wϾcS[uͥ
?x
T?>:^9q-{,}<)*m0.mއ X|PÕl
P-!`/jr3c*GOͽcܐ!Yx ˈxx˙aG|_Dzyy\}|p|~<0B֑baBOjXnj6b(VV|	"BOlscvBB^Bz>
kAHpHj4g[0ܠF4,-ѼoX*ؤKNAX`E	O-^z00w"M!
8<TI-8|\Mվ0	OT
C|n=͔*t&U*
SgUr*zT S|@_@D@ٍpVl&\4\8e+aG]Kfל\`ᬻXʘ]d/0ݔirz7#pLW4X#CÿHawbL.x&[9*v?@]}}!=,_$͝\^_^ΏO__4ihպ^_>%oW.j&YrS=4u63&EzYa06Ϙ(^Dtaޘ3>Xr%sf-vޘU${=v|<t1gEf t/x6_b#Yd!? _aȧH9dDf ӣ+S	TAkqVYv g&6zȠGF>XВ©AЊvAV*qQOA,FPC
0BmʬBd2PlJ2sYsނ%hيPaZZ.=?yÜ5M%!RE.V} M
#:Ӱ߄evԋe=}Z藫	:sCg?_:ǧ.AlOMtueH nx[GLxKeфoǰ@l|KϵpJR8{yoXԁp!gSM2QF3 ^c$ݒI\8tRqG̵ìZЉ=ySiyx89ubpe!ּ+P(aШ`9Xpxoe:kOcpl3UcϨu\ơo@ŗF$FH3(O	V{d7!8F@$LsMpO
ZK؟[,:K8MaԎ,$fRЫX~dqlQ-.h>-@t-PSd+;gRB#ln6R;=5X׬ʍ݀aևYHA	͘:qI3LP6éQ>Dvƶ1N?6n~)_a`!`ss2O\N{m2ʄQH<`ZryP}eՔjSTG4a36йf`KVE-NFG7Sꠚ@V`z,
فS?X#dT
.ۇѱ0}@sGv] J" /*0;q,8@E:#̓=Y7ә}#ׇ(֔mK*!YP]~L^fnM1*I1BADL~GBO"ʶw0=[HQ0ۂrCf>q
yf,o$
ő	N2/R'1\ބTh9(aۜ
AQX_-|2 EF6BZiKpaRDpd1W7lw[;fJx^?`66$fЈD/Mh
YAGqKHo"V?`,
_o8rWY1Od.ur&o>96z-VEG^VL,WBg*Jk;Q|VW"zfP+[v1q*$v[Z]毑wr_MN؛y0|ñ\痝_nk=cbw7vH-OqH?p+qnO<M_y@ȇG&E7ux!}ve7>0)k)N`{,zdl*hB$'q  x>@Ө<^9,cҽiec _'!x
@~	8R'h`̐#{7xB=m ^FLL;\G36R?"2cVn GEQpmyd(fO{uS/n&PO}O䜲8҂ze0tr#,$i"_Ru9ÓCir)xS8X-e]ڎ~tSe	TE&P{Z2"X{/T`Ta|Z==Pkz!:݂,Z4.]g@-p&\lցn"Yifѻhh:}KYDA9Ta2"*Dweꃷ4x36F<⹡hTڦH"&Xm<"u)wTY#:y=o5z)^I-)t7
Vk+J@U@?*uMԞEfp0VJ21_{P L% +E+u@M0c;֋/_A:I2eV^'EFZ:M8&q:Yo?+Z;7f\q%#xv;As{6*i7JrL)0DNƿ0uj,dqp;^C|{oo=·Gٷ+|
߾z9>q@!gߙr^ g{ C{Mrgq`(=E\ΌWz^rqG}g:HlAWH6{ٌxt؆	[}t<1!"Z:[
_!^̼P>8es@2
 ۳
iPiu?<JȤ+Kbu%Fqp8HؒrҪKoW^,sD\sͭn/m7L/5@soPG²]D=Y|l2buI5iS9vJݵx8ξ辱qobo܋CqwEd<m^KQI5Ͳ@wIqΌV,LxQSĢfVij}0k!!a5u0f*o-`ZI<
;
}JzSmϔI[o6j& Љ	v*gCgJX>i&a0C}ò?/zt8f#'GN䐩[ū$ZNkc]r=qEp'~h2Mzi;(DԒ:c9cOC9xE@JBa'ӖY\dO:+DK~Td-%aUFK2ZFJ:iKЬf.\mK%.6&wI$K2JTO-Ap#Jl'jFiB،sO8wI܌A:"G)V2aaa]Vu\:kha'*?}aSlYF*[!GC箢"{UkɱF:jwͨP޷BF*[!GC/B]\T@{,^YXq
7ޛGE3y{%yy5\~Z݄;q=hdR6Mbzm#]@cY}3^Dօ3go<Pˋg>9̷?%z-,)[sOLx~SP_Eۥip=}r/l0ӛml&owZ<E*wzή|>\_2X7;.E9CÜ>vY̦~r$K!6,ŴcҌx"W~9{vqˁvZ	`ê)bDpXj%P*WZQc;Xz?JƮ˲嚑~ٖZp;	^<-}oIpF278j7Tɴ]DȶDF'b)GZ_mD%hxA	c2jRTtR oyP\nlI9&-v	lGQtR#4B[-UK&u:w	7~7U6?k_Q:lCwvzE@KJn:0W4ڃrJrwi҄/=a
2)Wz.fY쌖ø/dV\5KHL
2iZ$hjk:(8v;`讦n
bX'2F&$dRys'
#]-)/3I4I!TSC`DBO>n.d:HSmԽt(E_a%Ǚz+UnnSUH*vxz]@k"|n33&<l뒥+trXŅIV7ih[Ric46ĆG' d,],j/efTS&tab̘i):s<)kE˜Mc\[kR=t}φ)U#yIf)WZ){Fro.҄ `V&tm[ܰo{Uܣ#o(愴b*Kٴ#Vpil*v3Me65&)CP7-0%Pȕnحϲa.U١5O=6IQoGDVQ([#NS#(pa~+XzE*u(M5el/d90^/6 f<%#K]͍%͟v(f#`|B[)Wf%xr&Z"ϪB`ވ:.PF˵(?$kL]e~4<@Ӓ=lFA9lgKu\MY-qի7&u\qMא֪p
y@-ș/UG=ْw*}M+sRתzǓj$XtR;:IֆC~ݰj|F!Z)G2tHRu4uV%MKN<Go*:orOby&1}Ǡmcܵ>VcK}LcRyW!SM/UGSkU[c*:crOby>&1WKц]omB
G^nib5mWˤ*j:[rT[t̢Z7ʼד}z))<oĈVoz3=d{4EÑW/E5PJ/zyJ+"nYȭV& SRB<`ɧ'A'Zɧz:I> nE%~womP]X&lY[U-y6SZ7+T-4)^:Wy&j&v!f7C]ʓ%J<xgw*VGʬS]+Uo0õ.,b_PRTwؗQ5S_Ƞ<gX)zU;vSQ3B:уJ}bPR¼N#`rfezzWzWv;\o[>atiN5zcb%Ѫ]uG*p[(r.ta\Pj,:X*NhYAFq'0vx썖&u-UU;XBڣzD :EQlǉﱟiIɀ/#ͤ0F mFbR`BZ6aP JՕom]/.)ћkۜtI=v4ǗƧe_z47jGR{#hNwu*ny-Q\퍠%ݝ뵝5~xne\5GЩ[Tjߒe]x4xBoX	aijT
{
sF2|iyy^\?70ۚ3xv>_LN[ј@v ?Cф	~>+[+^:T۽/BýX_PKxQIM `EgK9u|ۄ	vB(N$XRӞ8߳5Xhr/Lϝ7+ZU	]}Z^ bq,^2]:rYVP	=	>i@0&7|熆N>cя}nn>M/
gL [z}mS'mN^_JXlZeW6X
l+o|U_\ܸ֭s}}<w+N;v-cE#J1sKĶ]
Gg!0KsY}/zzK̘d+7a>j3Y	Xņ(qRAG8J,gwv8T(AQPfbZZ}a8v6Q'̲~nc+^BMFŕD\]Iţ_&Ucb}5x|7T_b7'A'g,q,j*6^r\IĎ{Zl .='帚kq!$!8/`m2C2n>-.;x^4#T=vW)e+}7P3'-='Mh[)3e!4ˢj¬K5Tfng3VYx&F[oKco.W`pΆ 0$WDt
.):t8n1f:wg\: {By{,I^tp6?}+<x5x# ٭$!ʙ I	ÏVH=+2x 	=1l
Wx;<Z<>.A~.Aeu77k1n}&k*2 z=?l[6_?Pd{^t3aӤG?MWc4ެ2ĭQglf =Q*xkAٔ&nSQ֒`D0 zD=RItB*Ń!C
o^<x<YbųML-4?}Ov5N"Pbˇue ؐ
#y˧ulyc9vrM{E9ZimXD÷険$PLu]|W|V<?\-fJs=J-!y=t?GYJ.2Ba-%Zsm&[yixQ|'N¥.SXG62Ҧ_N/u4LHY5`*Ʀ]^N_]kPǷB"|&;a3m]mxvesck'<5'(	:iHT(,M) 4cpR.;X|xZܞnї#Sc{cN*?KЀ3<PsBj}ɾd?J#(3x;'3l $bʝ
0ɿgBTڼHU	O4ih`%Ync27$[lpX6y웝an5~u,Zln1gXl+S[=&
I27'&H l
S3/{#Lg{½\ OelX#ufAamg陼\	efrrS>Jb	s`af0PdƂ|.hϪ<z	0/16M1UzbuHZn# K-BAs57e  u1x;<Z'س:{xLܬǄ,kĝk|h=#Bf 9tx;j_2M^СDlfg27VfQ]
a|Pdhg`9vZkؘ;Yczl@*L
U&yM^5yfgP, mx2C{⬂ `+6sAݿ9B"R-aqB7 j&0\BO3 jfg01lȋO)tB8f:Dz]H qn.l~1!zCݯ |}p/hm0#\u_>Dv3Z^pܬBf"$H2?Dz1V-ig_Hoϲ9|8ěJ[ EPOelg&DM~7{l]_ 21*eg,`R~II~.X椦A !z31:kMQHO,@:'Z
oO`f'	F׀$5%}Ir(IFQf /{}Lx;ˆ'&8YF%Mf>AQq&tup@!FR۵Op c,x;ˆeՓ|o9 ^

:x;-gO W?נɲٛPD7>A5Bkۄ/i1:N'7=BwaIEyOeT(2G=\h;PEvm\ 2{x~Ʋ)Y=<}\&foncBm}5BN5|{j  _:x*%攦*d*x}(O$>y׻ǟ8sL.|9jliu#2Y%NX&4l;V
 9dx*rB\
Z
`2f9މњW'?X̶WFfMɽa۷] <$iSxkLSgGMNbmlQ3mlU	1P	Es!8!#>:/EA7lVF/Ȗ1FFY:zzz^aOy\FŸS/>i$J'Ոd^g[m6T~YYE()߸l=k	%*Xti(WJpn5<]Sgz3_7M]ϴ483~#K֓4uv>3+W>fkd1u52(<S
12bzb>Hٹ,_d쑊r.c7M`r\

>6{'"D*ogc@QM:Gb4[f1[6;8`=nDՉ#Q"l
qiODn/WbmK
"`
@S}Ƭp`Eb5mUGQSTl/BmDHzld4756%L)]{jnJ)U}/f6NPurC4"ԴII(#pIe]lSt1-7}+m$c;%vٲ$|zR,ꥤ%{x<Pv{A|Kߞ}	WG~Bbt(w6[_i>gbb/ӱ˽Pд#ɨKǒ,?_}{s⦛W<hKDaA}^wwtC,H	Q9%cc4m\fy6$s)l,vaE~N82e޿aGbcD`R#$j?zOW-\]P*ILJ$&fS}CN $"x]r۸`DGq.3{vn5,;-$glm(	H/SOOIj93(uN2Ch/:Owo]oB_4F-cvc-<u5F'`+#rV73z/]uG/7o$vndl͝ḡhXlf%BrltnBb\	"4qxi>h!<OMz?xq{{{dG/F|:xBF͂az \yka^~]ַB˹oM!ͤ XtozSc8xӛ]$pv|93~M&p05?>?Άstbί߆]ŀ| ĴКkxli%\G53;1kثB2B3rz!O%5Wн3zް3wd_%·ڸk
"6z͖[X6X~&bh4dM#vGZ`!^NCXÝ&-1[[0Bi9QN0ޒ61kZ;-%;GG1!R#G}6=
`z07jo6|7Ϯ.weo4QqvbOAhK%2D~ҳ ݅7ƿ|˜~:mJ#b& U3{RMaDKa>,Ӂmo7ؘ+FzQٜʑ:};`llfDތ.'O>	d1wv;%,ǒ)q:w9O:Om:=Q<c+oM8GrdZS(خsd4z~3@L{1q4EdSDOᙎ%o,#f):01'f r/'FAO?2tCahrlH1ơ_avoaqa^q-K0Mx!x=&sGPGNh·DqI FMu@~є4A>cXHR@;	rVeOzOG0*_1Ul%e.&]}.0OlLdp6 Ofc^N.lHN^fUbǳui}kX+'>7=Ia6we~ψ|2,M.&t-;,l|<'gQ@&>43mRi:;2~GO1w^,. ^H-$tE=.ѱЗ\}h-aSp m:i&\*jt۟	%[mO55a ZgP82߂lA	 ϵs®#КN/GG4[>Lk,}l-Xc<pk+8Md|y~LTm=/2azO-op
8wi\ x>>;\9w>! I'_Ao>&EJltm!+O-P߈i̵dpT$M
f|_λ>BXZ.eXFYBPAPB>x#4]ac\S?*d{}^Gd<t3&N-F\F{{WSeV`m%zDAa!LQPh;0
k"
7ݭxwBΎ3yq'
Ϻcv`,19haF>"~4}X@f_0Bw;|vkX_{V4icUПNZ+zMO9
gY:-|Dopꊼ
굖rHj%ҩZŢh'SO(ҖM/LkBD@#	f*-xVBd'ַʥ)df$[HHD7iYg{E&Lfoޛɵ`4&hsޖTTFfC\lc:\H7`-ck9#Xa'Uxb[g(ڇ\3ojF]NGRL[;`{oV9dWؿ\,kj6 Z@E3nQcRyki%ڟ,+,QЉun0<]mTKcvx5|8c(?-r@wab-7ͣ`U#-rЀkX,*0^Q6s6@ 4nL;%84Γ}a\E~T%u^dxs9i.RM`79ݠe.:ys@t|2+kg4X+I^T3G)ٿ0E>D<:!sb<_Nd05~VJR- {?-~IxbKXB&[(T)0W6)+
jAٜ&-˪L-9s	dʮ9Ԏ bT0IsmS,r2hD,{z\ڜ1i"7,#"FFjq[|#ȫrNF]Jͭ
[>YY/eWBS̃8b78o$c9}7WV0jVdK(E2A"zN5&Fх2
@ì!h
5|@{L)/&óD^NCueNvkE,ug:S2;BD#cr3.F(^Fae?XN"!񴨼Z@f:׶vHBɠ?띟Y/((m[^Pv0/4Uf)oy\5[+LƧt_UHK\֕å<
ͻ)i۴
CQ:}ۻ<̮
U74m)ګr}seyX-	t~6&[kCoQx:qxjD?'a)kFX#(#cQf4'EQ: nFx6kʷIXV^}#σ\lN5DْI2
Pux4CᮮdrJ"J0POxǒh?lkŞ[|	?jlMGs(cĥȧZ<*DO^3DS:6#5ܑ#Z B7;	vai@`[ r=/OYm&>ч)Ta/>f]%ZˍŨDj#btrʹ|ػ]YRB.6JIN߼u(z-`4S="M؝P-fIqONdj? AjEmSjr_ږE?	Asb9V
IJh[@DG7G4,FkJl&IBcc_Mp2<N+!;LD۽
|Q_A-ra7ޠxݶf_+4-h|:6;uXt+7~^yc;Wu'Ӕ63Xj?HiAاv[bZ%uJVN`)lއ)s?ubȵ
tg]/A?b{Rc@Ye0yu/O>;KwZ\oBnأJu-u?|>zH74h*\>0 V CzTKʃDHsgalӉJ7f2eatAcx糞1acuyBrT&>wO6T"ʳ}TА:S$r9\Ѓ@'Ϣ[k~ZPŊ="U bs[йgWJ׮r}]A8>q)/)\8*wi+ZtŬqu%6Ak̚\0tX52%h%}3\?=6bIh^qVIDc1]#ظ(@+EK_ ^J%u<b~~7'XW :Mn'VX7s3:2R|<"oL7cϕx3eyd	,s%B)lmb5`a/5 #(^1<>ɺO.j
m3aڭ}s֥$)vj;'qMi~\v-?@lvk2lIO֫|g(ݕ؊*:]"?"+OD\BcsCq$%JzՂ&˶DNAg[5W7CJUSWk(12.IwX6XFce7imQ2~Fj䋋7C\Wbn3=7﬌ZŅݏI
I횒/$ucz;AyĴ4iq<ŔYWOQ95824bg[)=2|}%5Z
aGh`##b6\+TsZӺJ Aׁ9?Wr94̕!<.>lm臿.Prvg]Čqwǉcy,}]\̗_T=IBLyoB*ԛx
fDoSS(p'7.cqGgFh>P!^:v%.PBb$W
|]o.LKq9EQJ.&X,*>'VAx"'SH| #s}xPn]|mkt:(Sf&"?(|[/ĔOsM	0	݆G<t^v:lXpN<H 0H'$GzGZ<rv:kQ{$06}s`	wOK{3a#a'qU HBy,̏&Ũ+c?q$n/"3ҁx!t:	f: Kqoa&K
ȥϰ;Z!wFMxӣ1oIu;
'x{Ua,:@ݮ0&\Ζz8?ZSsÆv7@<Wqp[7qjey{~_,Er`2O}>]OޯLz-֑}REo;ӅHRh-!4_Eaz1#?V.UQx~G>?Ƌ$o1yt`/!Q6Sz*qשD153mqb`Q*61cEBJtJpPA.(UެP4◀b&y^
IQɡH7xN;r(>KhLVlOQAw
:1F|\y8N w2f:J&t%2Dӡ>[Su7#Q1'ڄOm7oƄI?ʷ?DKi3*ţ#D'D@Fn LVnkhZa('A~}8')&yj~fJC+bUejAb'k .YyTeJR;+)}@G#JJ9 >-zE%nKzk>&,BQ	P)Q<kzʁUn()5.,J>ù6svY+\g:s|08RsGlfné&t'
'٦x$SSL~4`tE${3]7	h%IvqGw+%eҤd&\ĥ~V"Y%KL +H:~&.QYqs}(G7brn=p#"Q~V|qRƿ~+o-@و4U<t
oJ^mkE$?)fljtd[D!j|Zj"o쉔>}|zRS̿7W/w)lU"-_ȐY )D8NOSUO ȸ4K5$3Wdhp8d=[*i6xyכEAd|K]Hn~]ky?*MBC@tuxe!oo~<88D;s]:K ޠ:ŀ(wGÕ_ ;8CCXʻK+m~$\X*lVj!e'dw;t. &jV}>5h$o<H̐tjݽ厡+;ApѾh[i_YB&Ta[w1RAM lz)ObY~!sܝԠf鳎,؉%.[%/"kƎc^czqǦYWUT܀9L_VDj=}Kv
ۨgL#>:T.ZcrW))923\B,qc9n(>WqFU̒HOk!fSH@gsbt)7US
a\+Bo}~O~~򪝟J=t~r?3d>Uxu~򪥟,j'?|O~h'63z~'+䇖~ROi+K2et>%۰>~ǥPpq=rb3kab8ywk=vwlc- Q6g
"vd/8V%l{B.{Us\e7OI@eeHF6y\r8srcc9^N&F~?'feٸ^']D~
Vff*xL?]*r+6)|S^Bd.8G)?PF1	H>GjǖRX~~	D/"Z껑PJ5]ȵ/dg,%sҁȪ[=i/ <к 5 Zv | g
,Ju:wj&o9>|IAҡ]yPNs͆50"~[}5\41Y
ϒ"'|# wJs5$aaMQ)CfTk_]CY>Uwk=}uz]u&1*ݵfTk&_]sׇ}m};wW[2w]hnZ3jbwyf.\;קصsmASg;/	qeP3*@ar MJR[<n*͡}WIgfݜxxV{۫m\e(>(/S-XOɧjrQN@XN@U	hPD~vʕ>iP~ZDnۮm9,H^(H׶Qb0т
B{(R3Nԏk^h,2_7^X[#v վyFLg2 JqN3?j*6u3ȩ]ePk/*Now`Eh%hmTⷄPHZ5Cj'CjWwrKܻKj+j@uKrETXVR2]\%m-}bEA>|ڨOԠ*ެ7]Y+V{5_ҧRd&J>c"#CAN')P%XĹrdrc0mYrМ?ܨ0}ߤc$2C^͜pcl#|23If|	i\xOl;t(hdJ9mQJ:2^.XAYW|SZ٪S/v⎨JY[R%j':vҼ._f.g,k (.4IEvZMQzum9]a`v:gYln [BAΌ0xQw-ElC!٣qO^rŐ©(d89-!4!Eo.?=e|@y68q if pR
6PUU[wUV7kZqYtM
K.쑅Grݐ=e(,^@<lgT >G *ntEĖpn,7
bbh+\`-'-[hf1J ZM_oyShݛXztw }?v-Xt{To"Ca42jRjEThUXu@T*/j\=7wKnShbp%w|(W+ZUS޼UޕUaK^LUtq<F+M]ߴ72GzIXsuf,cuz
^Ԯp]VT~9?ʿD[@Ɏ'ۖ.?|&3 <z6%?@ϵw׉_?(a;,SC IsY]vcWQ0,̾@AI .tIߍPorVAn"lM]"@	{<.pmU%UIqˮkuq	/3;
 @?Dw҅{6=*tPƵW(M@|Χ?ԝ8dgNY*Ko5VKώOOeĽOĿƋBln0]]hqh	=5xZx+ѼҔTԢTf3f,W'	Qx<	tSוG`ɒeKe[#/`0mlb1Kȷe }	#g Kns<%iv&'	L9)L:'$%Y(iJe{K%	.}|4A)8YfkuΨB$qy|hgNDͮ ̅H=?Nz8Ct	S[XYzX;pG_jF&=IJؖ-x΀\F䎅 @b$T<ג!9Dt<8gSuhRӠ8Ja
/(xbʕZ	e")tn4w!5Wfҹ?**Ҍd-45SA閯{Z:^	_Jضt|jʬ5s5PNkAz*lUkTYWZh]:0:	
{|n
y=ƌhbގ3yìbByHܬUԚ"3'v6J4Q'owB[X::97eTfv$b|9:S!F82(Ч|uri{:sm4TKua;tAԗNu]!֧B>Ӭk:zvyX'r?$DQIp|#K,${Za_8k(4C,7u^
36#Fv#gͩ<UKwk@\U>sQ>y6ey,^OFq$槃1! p,_	y:@+Y`K@>.X_	?A+tlc>/NUTdऩ4l5'a\uq6<<<Q=2:!G(y%0`rUM]2'J*DDN
VJKr:~T]L?,.}eEpo˵pSyW.Hjx=qb#lD"T*<Yh8H9v.K
@nnkGPjJS7JBN妮k/"/Uj!mh٨GÜUf8gKU5(-f8XՄrk(kqa<ZhIF-&:=\/͌TkQ?#8鰨ɺf"<#>Go'*&շFS]k5Y{	CK 	dm	6mum'a4x,l	gks`A!tdẝbsZ'h-=IUO/JӉ.!%1qQX--bx&">/!OHߪ"X=U$;ciU&jeb|XK^J@VPk(ǗjP3%*<7!=uѠj?Stе,ףPoɩ"~'1ضZxk@#kqpyp 0Gq\l,+Zq@-&ӜWa7J4WxF4@B<΁U\)nt*o*s5><6uMD5-)KȪz@G;Zz(ZtѲl[`j=I'xoweu:*[K(]IUh['ABWD])0֦mMPۋFq{7í]тrKBA٣7y+d!4yM#ۙ':혘-Қozj"^g4-D-P3$C=rrn[T g=}ua7ca!ܳv'5A@4^32^:x'Ԭ3Nk&Ԭ7I34ǎ,e?tjC%+j/h>ͮCYxj 4m,FEI*f緀j8s
(7u{dwf	ԛA&
:m4h#Tub1
E6nM-[;o٭ӭ]?ئQ$3|	>u'm3$!):oݜLmhgB;WEwnľeAKDaO<e\@.̰; hVX!Qz8dTP, dT`gW(Pa1<:́f3Ldku&CL֑@𒭬doGD
Ņ-s<`adyo+dMaVyEgزa`2駈q*!F:^p1r	lXJ
YePwAXscT}m+cdK|c(2LɶdgsVG
`sJ疈R+[ƵGN%a3P#,輻~\m6KְmN.~'C˘'ȃor~^rа>D"4ʹ\hߝ^H(ɑ=0u8-=nv_p
#  |8acM
5߆bhp2|T"琣E5DB r_1WCz Voީ+PiFə,!ا3a2cu<ED2ƺ^srQwa[NcABc$y޽5oPòv#Nƈ=N!"(bP^WMM,5?5==eT7m1.xIOw[<-Wo+;(vVK|Xܯ+`>6: rw^ -E#~n]ik]<w:{;T_[rO?1FHl?r&<ǧO3r\S+Jh#X*ń9l4a
OQl*oWE;%c0n}LRF"N޾xu#rs;FVn!~5	N8So#X富kڕ?b{K]\0r~%E@p|GMN(e&g#?;`oEEw86Hd|,ާ{l,9h.s$<$&+lSwYPSpPnƿy删6"+'r`ۃJArIZ?i.M9r	}'V.G|aF.'#4BYO)kg*PU{b-f1Y!JdB]oh~X+%)u>T3ħ
>;KSbH(~<}O$GfSHSjchC!Z=vs>.BF3.r nHe\rЍ|2|ko"`U!i{a1z";$݆1p<x1=/#-BJ{iXPuȂV|X$8olW֩zʼWc^K?6={x644]!Uِ\v&:kF[a`sNT<W-d3
H^A2Y*956䤆~ԍҨZ2Yr`1
"Y\R|gq%j *^%u'ǱvE5!kn+ep(lxC2QYnN=de04.<3(d"T
Rx)N	1xOz)6kDNT7+Fۅ3EepJq?E_m}-.JϬ9ՙ_Ԋ#Pe-=Jpf犠Qca?N6xLiJ5`9LLwEsxHss2hd_L6xLiz5(s$5pV_hc+S\bi\L"ѳTQ4q&^v=D1Ӎe+uJT6É_o4X7|
g_j z\۹(#1D|n)5֗??ס9>JlzوO,|FG/j[M5J.CV8u!_xN :g1)-4.-rBlcjPٓqJ14gG/fᶨOɝ<S)8௤I
XMCHr#*
ܛL_z0"Iտ1Zɓڥi(y,Rɳܺv}$pvM9!^Vc#!t}+x/mNO)Ky:YD`mB@Qǖ.4io	MqNw/\1&>rő+p2%KL2bݴ!71f2ͤ/[S"Ű壬иC!KCP(T}?3G++%&3X#ܟᣆQHGΗo
ܰ%l/"p{Xҫހ R;90ٜA!Kz!?*\8	-):xϋ7P~Cd+9|CoV^YS^}#XEeZc:FSI7Bg\(at|z9ٔEZB'+zêFv=^3G"LΕf&®φS4}aBXMlN3ͯ^j;G7oNjCg*ntW'(_RՑQ~"vv$x<uwgƳ5NƏc$1WIvg#a.i+G${<>;ǓD(~:%/őLK=Xom|DaB_̈9N)\prYXGBW̴?W솻͎ .n/Dpdi$$C{",QIRlkڅ
Ŀ2㏤*z+&F@.|{	xRQ1ޯT܄dÐh)E,EďLX?.~ I@OdE>&KʪS@w2;sgcz RJ8J#TkO/&As4xklU3},lt}ҁ.}
fKcI-

NwgCggYڊTJ9&6CB$kFc4uL%	@Й-l߳?~;wn/Ϯ39:=6H"A{t:鬏K[LpRqrqFUv<%1\{G pm9JOR*ʄ	KMG)@ٛ9&ᾁJ	r[R'ϩ&@:34P@D5s<G~mλ=Il_0%>$-$*ʔLT\SBMDp.>
$j[UF?P8Wx7)(ǯEV__O-IMǈ.N?(^$'k&zźhAdaێ:˾BUki+phy2렋bH$NOWJ=쉘G42qT=\vǛ΂Ր͙y+#ԭyuRbq
~+H%14葇_wc'Lm n s;;}3n{;+X,Q+"Mc/FŪ\okmOHHj)K)~vt ))gD
(ك	:PԽ9w:EZ"ygA6by1𠥐ja`\:jY0x+Y="(>-sbԷS>"LVhx4=l5A	yyޔ=4,{tƞhc.Xp"d3#
xsg
R={2'e'[Y@ROritӔ\K7QQY2a{"ȭaDyliU.ZOֹvl7ziK;silƢyMQY/(34kp51N㞷۽XjT-jQz"xz"yjc+lFmɆ|'qb穿0a<lxNHd{9:yh7X:SdŞp;"}xO8Wڟ+L/ų?R&e11msQ#ZG%3{4u^;݈*d	{4F'+xuSLbpiAbX$=w1Qףg1X_#JV}H?w}'OFC'6'_XZ3x}S]hWf5Djw_nŐHlcԈ5FyѮ7w3םw{7iO+!cD|,>` )Xi!/R"OB;&.,s\Nܮ*\NVb#|_خvx=uV[QQKc<i8usanrs6wjDF6}ɽ~jTb[;dECXs|hn.EQ7( *FL ɑI-*4Qaxa`-3dHTĻ)l<kQǢ;I+
1EUKʙ9)W(?}Sr6D0	>jo\׋BrcYuMs $GlN=hRV@GNᓞl7%,{R!SFq(`[no@?9pV;"oksA="{xrGT(&RTWpM07q:d,RƷ{5{U%:ͳnXʹfVx1uxC󘄫q0ܱDP&_EPs9WҀ_\z7MNEvZ)N5N+}b5<D"Ot1y!ٹR3-0S4l5̕p~]bu8LeiK,x/Y4L0ġ`)30+uhr?c鴷\/MAʺm?>JAf24a=T"x:MaUQ6vE6aQKo>J7ʪtdpŨZUgV=}>?p'no+-Ox}SMLAF*#iHAE-"傖a;eά;SZICB<O^D׃11	x4ԃM6y5E!O8as;t-E"@Y3$G&D (Nm4'![6g:.QJSD	WGdEw탔[TĤ\DB2*eCT nk_rf=%$
lpio/X7/^mѱi`=dV=v$>p:N-)gd
InEFgaԓDcM`-AwiGF٠6(w]>WGD6>ۑ0~p	Yqe]1G3uVZ!VJۑ^&,=	wBe	L}Vs?nptېjeqFr>4se`U<D"<qwWb
o 0BR6:L8]~̽Je,+,ڊ%ATCRO23[}ryOåuUm߁<kTCY;*qg=T,"pj&Rkc[Dm2kXz6"rZ`iTȢPGVw9?lsUpx\	pՙ貎l݇u˖Keٖ%mrkGj9l$CfZHIXvM*[$`̲Ha$@{4ckUekwqbI"U:=	-)0PpnI2+`5֩.Nx.*Dq
F9d	q0ļFHd@rՈhg
qs5>KShjd,ͬYZhbΞPRRⷖRN# [tU
$P`D}MD)|_BŲ#ZZ32*>1Ua $Z`OBф$/u[!dm,^B<!C$'vSTv`[`fc5d4L,&arNz1KZ/ݟ &I9"ނ393޿-BVc 5)	%$bəq RIL{-jq VS6_7ժ]9E}_Im9<a)^"ݞR.oՄ$eJD]AU"%7QXm}-2ҊJ#55]bX.`o|5z B		f$T~sG|AxjG5eg3F|DY"e=N-K] (Y#s@hʢmT4">y,,n/~'R-}LϘl+~qnfR
1R9=JXeoT`~ƼUA4Hg+>+Qk׈ڳ3
qboZZd!fgJ`s^ZS]yJ,QoYT *]"䂷 ^$	BvZM!DK3z>-L
1{Q}[%RQkl`)	"4|LoQ$*	mxN۠2JoGgE%fO_$J./H|X1`Nr5[WHJxB2YD8A4m,A<U)ʝa*C&,xx(+SdstoۤS=DbuCEȥ)rS~&«?I'My4e_$.Pwj	br	n߮k˷fY^XMs:=.MI_^
(|gMdnBסMYd/iDA_CX"T>bD5tJۑ2a>rj$?j*VͬRz}e4ekJ:v39e663>iۤF(AMEytrgKYlΜBp)ʗK
Z-jur>m-9~$RR[Au%
1f<SaWêrh[!-M+H·WHpj&(%~
z}5n;6)mucmD[{zmm6sV)4JIݛUe
EyI?`4+5lQ5@V؃ף'ktWnYU,?[;XtlD[hD*C@+aPZʘ+eBe϶n66?	ؐ$Ģ-y@u	:dM5ke^\aά)e޽kƵeBo.g
Ҭ5(*Ը6L+$zY]	ڮHa:`lt>ط[W*hӞlXdh/ S*de+,#iT+*!LU6J[j	]i$ٮ;CI©r!g=G/Q['Ė&x7A`:LZwbρ?;}ei+ٵT1nD.vmNAԄTQVnk}|s=n׷5}5p=%,xlܸE)a} Weȥ0^6H rDbWOaR_6K$uNh^N'ã;b!Y/W0$*N*pJe].?H*v#Ṙ[E-3jQxMA4uIjަn?8Y#"nqCQD,l͇̖?*ṝ)Rty u3"**ՆT
>6Gw9T}5ô`xz0Gjhgc#vhO%"ѣadPw:h	ɰ7ȅ=SI~G5>gTmj
aR97	Fzew߻.Q5s<>Td	?8.?J;q=Zl`dAxab39p4hR*K+34qaTSYϤD5.Uj@#%MuH'+	CН+PiC~I,v2h8nв20l0Tll>̜dj5ubl&'lKUh*7'kPm.md5^?Jwƻc#q΅)T`$(x&<ZLO;~Ewɉpoi<8 ?5}L0rkb=s(_.gWlDȉ7N3	oO0y#OF14XΡJҏSGRn|4AF'7D?SYdJ.V]CNDq{p/L17{N@p3Z,\4SkSt nv[uTSuL&{`r9	r<Yscvؖ~E E}[.^f~$ }h>&1)ZpqV3kH1 Qm0P%y4Mr)N/Ԇ»Ͻ%uwyփ욋2(`EhNhXD+6iM<Kzh]ƿq=>!@{4DG/K+ΓJyo"4PA	RLȳ(Pn"'K?*:4EzJdxz*ǭr;_tKɃ+"	WYYMf%{RkXssRֳ{Z1|sTQȸɇdJgB@Wmr0
74#^ց¯D>	[*VUVZ`CxlF걎]Uvdkzn螷vOpkm4TzTolVN<~Lc%[kt<9sgͪy+u:Lp'`+쇫]	5җWX*8|4	٪E
^<t*:hJTĞ\3G;柹 >{c<=ZU"WB頟=HA<ܹg?a[P9#n-	QϘ?L
`p{%5-v=g&o9XdhDg269څ&{kuOBiu!r#* QT+A3ؽ)}:8\b	
4qpwR6
~,u{\Q5NAڛmr?|wqCa=&XGw0N:
gcku#)|t,Bk}GPxq#$X(y\.N0[4#\% z蒮"ՎōaDﯯՌZ|}@|u?ΛPh*eP=C ->8V-;;SRϊW!2qF *8wcBL 1۔Tgp*(]F8IxnN?G{|QxE[xQ6yAOK'6ƎXQᡘQ6({yPSOήh5z=w"BzPQH|
h΁ə	;9_z Q`<|f=s"(*ov{%XNbx=|>eic&:֓{iORCSJx'7r~}6NQ=j0;#Q(zELSD_D0S>W/>JpTn,	Z w<WҦ'[եSb̼[(ިØwbQ(3p,;9zx nKu-ZI3җA%Z%Jmypm%{ѡ\)UЉp"@5Tx_ʀN8VhZ#K]8	GzFǑVvp4QG>$pX#Dt 4`Shy/%ls%_j2/eQ3bήl>6h>"9h0ٗzPyl1:*^s:{Lǳ7fB\r>7ޘ^.]f^_3Nh{"sC/h
7B?M/$RoyIк._=ogKg[tI,=a0d%&ߜqn|d-?Am1xįqlQ*~,ӳpf0w#y?V2mG4}Xn2q9C#y>bie/cWcX?b8>ܰ:^:S)}Ǽ1;FNOpk`?=q#b$^.>XG.Nq]O7@HJ?Mm<'ݡ@{\.>fxLꌖ!H1 D:q"_߆'Ok:} o)KDyҚ	L&eDExϥe1~R_J;hz9*D$)Ol. cX/F*E!
w7i9_TQwÚoŚ!/lh`=Bu
*ăKf$MU|Ck6hp.y4;_&CB"<M_%+iʆ}֧qm]}ZЬ&~.(;w;apȰ|X5IzpAd|h"D3J7|Ht6HhǾ,31+5
֯?PXjfa	["ƧE;>70P|;PkmKmus+_#.;6}(Д8Eg8C"Pv8c_x~;rJ7L<;9N9yz!;J7&LML d&<KfK9.\Zxu ݗ`ȟN0!!T-*^wKӱyIrp wĦ`4;"yXUh{g,0\ bhĊŽ~~s3tyC7o]rT2NNC"q9|mN2l]B
H<NQ1ѐ+1v[v3o
2%ʻޏ%Mmwsdvۓ͗bam2|!+gW*LرԆC]vx s˖.the foreground..>4P 2
r1/=
ustom shap6K14r184U
onFinish callback4:`W>=\
render fit5MC[@`̴ 2"x\pX1.**0	Z,hRB/b=?^BBr$$.Gl;q:u錵jSMbg:L۩}o޻ݽ.	ꌙ}{okmϻ}1to^y0Z5נrMU	'\_K;_"59MPVU)~4yafFX;6%G}G}-mGZ.[ՉE=]!/{
Ϩm"x oHPZ#?ёQW=%E:Z^8Z,.D}5]=N/*Xjl>W#{Hg[]S_t{e4(ǳ=-x8gU@/),mr<wW3VfH5SОVBP ٫C0U]W/w<$聗NF<ڀ>/CuAŽjv͇Um5:Ϭ,W[LhkrywcV"6"OvX!el1%272Hs{{aosyEEdx~y.y鐥쫒[=j5F٨,]QҙbXsvH]9y&lno^Z8h<YCǎ4iڶw_B-uD%pջg:dD=E6zڃh'cf#2~'^Dw44 @"jb5x#s:Jx{)VŸSibhv)[6v:DXsBx'qP9u}*sW<۝i5!uߑ84Dصٳ)Kzt0IrdTGBm# Vp'Oހv,dtcVϱc^ZMOw[0h#l;L:oڿ;t+`iYQi컑$`#uQIC:PЯ"H+,x:q5ꝼᠷ?Fl^M^Q*3LjkȎ%zTe75]2#?Ox'жhOxݾ0iCGgiDl'o:RPQ%Y%Yz6r9AؿMЊSu>胴qcQV3
ŚY΢8^o_\<,]Y,,9`M_Eg7ebii\Ǵ4
&&&}bMYk5HiZKD衒4!CY酴cBvv/S]ipe.q1"3K2W׏l1NuP{23&Iúg:jb0I!?=>ZN»;ȩUʨKb<W&`?YLp
JfEqQq z(&z~cΨJR**:]"W	b`H]@nK 4.V"@fwL6XT+
bysi/EVLȮR_ 9	"DrNP1K1J'ش
[@1
l*{\gQs>x&zάʜ#,~CYly&&*d0hC=b:	`|YB'|[`9lahh6>0)n?~\o1掚?1|@:	>cy׮u3'u<K-IX_CX]E
X9*ya3bM3Y=1IuvzήNǊMXD
7 T,,/O4+C=cw܂yyTOem!N_Qa4<X~xW.fwWw0F[] ^h=r!8:xI8cM-KXn(ȸQvGύ٩/mHm|A!izl,/  1iʷ,V6E-xM-,T0̜oh(a&pn=ǖ/'ffÌ1j&?Jn VEX*:`o3mf4п;sHUi:Jz{8ll!sN8drSO}CBız<xD4ob~x,%[1X{Q,,V<2eX<0⭌We4\D3X_Ȕap[(}̵[O`rf&C>6Zl]vr]Z*X$}ag%_ٳ#,pfxL[b7OnҘ]41&Yd=^|K٧0wߟ?'+-?XGHZ}z0s#8(?Q,	
k^&@VpiJKODD<T*!T}`2F܂D	a]9LE :`[J?)<~B|8%[j+ olF$W#~ԛk"cac$l![ZBѬpE(`"=A>w
ʍf>4=ZV%uW}U)+e#SaY><?ZY(F쫀e¿NyPB#:NR:Š9O10¨/ؒ6moMsm!tJJS Lv3@7˨_	vSmb~z ~Q4M0NjG[O2(֤'8*>s$][7䥞6d[e!&˦R+>E]w)\p-LxE(i#w<bD9WH%RjS 5`[7ovahO=3|)Ok6ƻɅ8bKъ&=.pߟ r5[ݒ<:"p,|,?Joe1/^+B2kٳ.d߇LtZ3տ΅ѹεojMQm&bhgV
ǂqS'{-(J*	Dv%!M/fP͉ 67ɧz@Sl%B*G)[t%Q&6U')BY4p[Xaj#)hc41K~8<\|6doG+œOrwÁU+/tpOG諯)Ĕgڇb2.!B:7W5%$/Fe&YjYj KxL
 5EbqS]l*\29I8y}$j]i+_CJvbA؝K èFzt"Ć{L3&f;U7\⪼'0TO,Pk_X|$fK9VKn!J+0TfAyr16+IzXQG䛭{LpC+2nqXr&FlB,#OL#ha1@poyžH+[ׄwZ#/<Hcl}%tP?VɍS`}@ pMsKXJ|ޒ_c5IXkN8bz:"ҥD/DDt'CD<mؖۓƌoQGC*vE!X}2^	z v~;T.WKj劌e9^#Ƀ*Mpk|ڿyn9vtIK>
 2.~Q߭a}97IM[L>b""7,{X7iWbRܧ48[s-VɑVK̸j{iKI	Hۂ+?%-;#Ԓ!#H~w1[T a+4a
Lh'la<EF8%W	<:{&eR1_\T)ȑ9xxw`=6b2צ87_=xZTSg^@ $$B8M 6(b @[sXݲ8ʝ>殎uZk3ŹsWoG;N=䜓s ~|?^>gRzP3`uǌ̷;z,U%SeY1!*1"C;5udYnyrs
.E
.@()(BHS0i5 M=11>d91EHA`ؿ(^jFN*B⚂8`IS%H궆NaD˹Tp>XWb}Ą!8Z5'^hDp'BL#V}`3~9Bwi9$<@ęG $aPJ(ZBi
~<3UcJUBE*aaCؔWaCn47i­%TbXu7P\\i-lhԶpI0.$fm{gCB߇;WdSBOBфxr\x yɨ 7uk/VwunQ&NR6E&?*śF5.rPGD +"e`pdDչ/3i@ݢkj
$my8Wa@N@pJ
Ht(lcHEDtVӸC%!l=ϲlCo!VጭP1)HE
EuMF'#)-U?!G"m5z6NChH_TD:uƘtADEMy!.NQrQ\IflC#}%VMS:q5Df08rAj#ǽJRw2ZXxOR%+8K"`4h*ByBe4u;,ft%$g̺%':B 5KXF}}]8愺8H
PNb5mTFEZ`0I/r	W(caMy]B|YG
#H&8)_Nm{2q6'0ThVR :UL-=}(5h#F =5FvL~z&NNL	Ϥ^LvL5>0MZ2s(df$hYB2geP_Y:J(S"	
oF~tnAlqh3J;eK)x669JUEP%_F/\uγt-|#$]s*T_tejsEkh0.Z :~1{Fc.iQosSyh#`oBBN
I0ASGyXK&jH?;aҗ #>Y-W[!;y9@gr;\Sch4.ѩ;u5[<l*ŒE֠Y1'H	/j#Rd͞"(:xRėLHtFQ;l\V9kBb!I3̖j!c&dX/֒?8NIs_g%|fOʲ`B.Vk4j54lB	JK Mx{e4|݌0!pG_7l걘76q.sF!ù=atэZfÖyr1똵{~|$Z2	R7ʉIy)5zgN8JBYl*AYU RI(İ2<+k{peꬡUej.[/֫5褰-}UUGXɸAdv	w%JǬLBZ
5x yl5Dv*s>1'j(jyte*JAzꐑ3dP ÿ5i'ԩl0
VWS9A= Ҍq#|{ձpnHAGh846=2iw<zymZVCp"8,ۨ`v46'\PD.G15ƅalPq4V\TM~0[2ᄦgé)֫A]g@n.^Eilnu RF/߶FuY_𾬏z|[}{EYFwN!m2^3pè ٮ98(J\&K,!,Nvr#OU|yoWB gט%<1\*{<^d#kPpe	0hz6Y[N:sLk-vgZVijæA'Xd{LeйնqD(jtnZgXwwyxd5{ЮeRNMy]I{]IR*e(O>2P>_l}*MO83dy9:$ĔЮ`zte1
OqcDd%,¡9xz){$'3fMThwQ޶J!slf+7bv?̭0~ջ	Ru}7_nZ
"5"_Nz,pĢ{Vs=

U*'d5dZmꀘ|"v`-#P98#dt18x~x~H-~*$o|Te/'<_{[[:sJCZmg@?Ǡkr;f:ZoWEBcqS\]Oʑrq` ޽ۆB1#«DVMO[5޻E?lk}װ-O~ZK/Fqn/_-)@2`D;JHO2݄+* vQ1s©{&.(IE[hd-'WA7I&srSxf@T)94~b-"E>*|ooDPRgKuB;gXt/'xߺ$|8rj&<zY9Wg<}AQpq7%YLM?,>hT:`Tp0@F]pU|q.2$^1`fW]tV(aDcU%^+YL@l5_(p~$)Hob'Mmd|/>`@lshȵEv}jaSB S^OOv!0Ů#>p$dX]@r㫄G|
Inwtz|Psvulē˝R8M
2wc }`(s/'pt$	tv/?2ȫK{
&b} ''#|^0n5 NƬY)ue䇋E|	vUKGg׆t	Qk#P
];Ox`YWrNMG> Fv8
&Zk`r0[Vj-ǉ@X5gpj9#;ؑJ8l7o>MHGf8`KVcdTBE(Ǻ"ǅ0wL&f~+b:+J<iwD@ѿ.?(u5&3VHo{[Fx%bBbwLٗ2,83J\25jy^\D^ N\
vu)Zn=2b;-:%{zݒñk*1k=w>p3	x7Z{nnS,d+bnz%&G##yB> qko2"v;V`fN5͝\B1B]18CIDDܭʐ
ge{.$й768h ]4dw.{ϟ+	=(}Qz}	k:{CBq1D|B.'}y]BXSG.OZDbZ@p))bҧQeh0k`/㰺.qX:rb~;ȧ>cex	O"0$B"zKxZYpSL0	fI v:	qB!%nXƛd[9-o`#[%ї)$C&3ig4>?{}%]	JL>w9?0o~լ9xM莐AݧPI{.|T$7lw	bj<f%oE12\A[Cgg?q::6n{c*?Q]Ve,UYМWtߜ"ѐ$pCCRP~uڜJ(>\BQRo® Q%zP`FN5y}tiP6,=eM5pUfu8!태]=d6臹)DjPɣ	ڲH FK>Ɉ6`k1NuFvL,>Tz袇sgqŵ54ju\G%heD]&ª X 7-X)!&6E"dK+x=? MAA$"%/L5k*I^apUZ#ױ(E:M"sQ{
Բ.f\ULPQ4"λr	"}Z."l`Gina{'U!~v\x_.'0&po9 %sgΟ[>KJCdjrLnŒLH   =5+ِT\ZG4o'^!ȕR$ mLSNeS`آSs?NNC+Bvύp޸w:p+^npW\kZHnEBWZx̔MTDhiJz9c!EDȇ)ӡS:->c''HyErjO;uF
WD cA	4KUfzkiVe}6B8K YsNAS-3v6A`e,2l>]0}
8PW#%lvP]pN#@J^ݧbeod7NpVM@3ZPp/+F6Ǿ,gkPS!mZ^x60ˬUhF,6r0.۰qBǟ֫k1=^p?g&XZcΦX{gWʣg t!bhwop|-.b*`҄u7!lWOPn)bXJM*bTZŏ&@'ea?"eΰS7I4Ƀ'9XΝ|㻎sH=.v~1=Zf'qa	lG+Y$QLu ϩSlʽ!c0<DEJ<M	[[PMjYT4v\0HݡCd&EO瓰\nVsHIf7*K7?s""D}""eiAr2?&-=NOw;w2Wz+q$eayw""8SrJaK>i"l*D}O:է:(+,XTGD0M"藫bB]\sBK҃h!!ļ@Gj#ɻ*anM*u(6Bz+("6f^_,RM꺟J=#բݡ]kgcjoB+Hhv${']I$BV8H/YFJ!=j%KqwՆ$#P.T8:v90C8Eh>@fM#r68DV%	<\mTS^zxiI
Z@B$dIohwT(Yiq=CDe<+Ț5 Y	w&8XM!%,',JVabiXʸ}Re} -}DYi'a"=7>a퍹	7i+nfzl}ŶFv
 m]t38P/nNVz }9[A*GQoPDےju@}5m>y+ߖSB [\
HMl-rSmW@!E5
^z\9W^?<5=9.3AoWaL374]kw 2>/ڸ-,we,J"dGɥ?/$<FlDFps7xJJڊ?R?h33B[jWٓKv?/\<g./9g{͋?Uz^ƝpxP>Q0Npc{~Z6R*9[[*,"i~>HN Dh7ӦRIʭ0~3	9DqC_m1㪡=\agGUJYirWX&P K`nlCҖ:-h2Tе0sMB=WQt:}d2&iPjY覢ɞUM(lİЅg\蛀GM;gF5Pδ	AG8"dN~;h,n|/(Y{RgЇ(&3'Fб4y|{c%xQS756Iuh_NK)?ft`'1$uȿRK~.I?,NO}ϐܥ?Z@IMC]I>!)?TRbP4K˛6Yg}NyqLiAPq|ÍT{V?r9Ұ Zǧ[G=;3ܒlĳKwo5;*USt]6suAQFP}44t#"}}lCTyr Ń-Wg&VKMj瞓+&[!hffoSշ
$mTp;Vw2UH)՟B[IT {:n *c |[hrjw,TxT͛dA{'o+-Lzy#`V($/-)v0@N̻.Μ
ۧ:A6fcX7kp~,XDQ!qH|#|4B4>Gg/Dzw^<V/uƾMBݧ@CN'cI?FF]E+A{ɒvrMi#Gcb뵍Xlc/qfp<:r>D,95^*
KAҲ 7_D0x#BB
-jd+/tLvLˍ(FYɍ7Q&QYU$̌ Jpt [^XPy_O-Ať^_kkGGjv&lBwrH:tdj62~Q1!Ȕr/ߑonxZXSWD!<sxC@W	GU$5$4	RmZVTTJTvzNVq*N[=}NIAYk{}N?Νjshnnt ZgXjK̖VҞǷzHZZmDcN}h[&UEV]@ H`r90lZ"cC F]ݘr ;3\iC[\*-1lU]PՕ5ֶ7.FraB)A25:͞קΌ}շI y2R{yKX~9k Q[La7NX%IGÈ'c݃Yﴻ6y:ᜇg7ԶC|	Wҭ{cYF=CXC7[BA8,އoʚr2a]"emQNc]
E	yyE2lhyCcCƃ^	.
ތ[Ȩ-UTa.!m0r}aOT⚲BM2Y >Rt*e.ĠEP sD5Eˋjj0ex
Vx! VtPo0r>(	| Op%*!i~TXI,%0IK9")KT,X$6EtPJ1\yP_ODaN)b]f_!LSZVXnd:DR:mevsIDdB3#F·R]? &0 ~amj8v{aN|+F9u?K.,Hgw-f H\(wx#`P27s%sZ'|ac˯aԶRgTHe$xRj3k>CBU/cl.fBUP},G> 3'̧2UMCu{CѾBh)	aUlwY%?
XvD'EGhANR'ϖOϖ^k%3*U]-':zDEQ/Gz17#W"6*eƳ,j3R$_ݨ1.ǹhtj129n:{c}̨ENX43.E}"w(^lglH@KH0:aK6h&1Hg3IU4	oIZ@#{I*8qGywPR0Ʀ*4dے-]ͦ4~LCN+S%ѯ)i21vs4Ƨ鹡7_zyb'R!)3[l^?S#뼐x!Uiܰ(4mH<.g^׉0-q~@NIo$UJMi2٩fd0XEVsjpnë'V1D|dr93
:ҌA Pt_rB/,5fn
gАϊfu6ΎDw*{	~90\9!".6"T.zsY"de!`#*YRcj6uRQZn?/TZGrѰ6҆D8o0(;;Wn;k"ڢ$.2x%eJː$էvIc0_̓ZS1y.:^\:|w`~d慰^?cBT<**=|O"|ӳ_kTa!BW#S)rVE?T|T*,_
/gr!(y8S_*ʆel!#zzsl)Z?#5#CHY192_!ϊTPY?,C{z=Gؾz@y5O ~bB2ؿ)zF{iH7~]X.Av-W;~ey2@Ƚ@=5Q:NWȠ3Mol[73ٍ9{rxW*<&[}81S64F:kfΜ\#97Z"x5ZEkH I:AXbEYUwR[hf&gu8ikaz;ǖ4_,BA0A5TIm#it0ӟF&,p9U|C:$O2O$pb|"Vz3&dz튳кr~l%+s]ocCRP}E>p8hEŪ?V'®	)s-]=h8~1FbO
9>KZLyp{awK̟)tNz|Z'|V{JmXimp{m6bMic!Qͦdfs-gS1?SUjםHNeZG*wr
! zfl΁m*S1bxcP_5KBײ6ThҒ/$DM'Ɩk,TCk]lLhX5:e&50g{xS2b2v#Yd:PF50f	6]hF@1ߛ0uV55?hYV{nGV$_|Sr t=AO]~Vv=qĖm̋{d-PaB'~^
*쓃wbN/Ć.7fO7`E&6@{SihM߻ݭ/7-
̢'6ʽy".w0\*==`S`<NC%c+ȶl\ObamBh@
 xr,(^ cY*AB\P31l?L1WdȔ]jjJ#s.tJ ]rhphe/GNʠo,+[%5m=EUİPJLR2dUb/$B1ΔH19eeIr0?P}\Q@ظ/eCB /Fbq'ʜ<PaW$-8Sc)ȴ"gwP1Q({9dƮ]»}/ρ\6b4\vA?!Ⱦl?\HÄv㎋!C)\@1'~&l-!䟌\$դ^{{3N		G:r¹sݬzRz|;*>1smqm'أ]?>ei'u5^0Ĺɣ鹁=[gΆN:ees>_X~~GM`7"CUs!ogjr5ɡx/
YwxlMV(yɄV./rm\ozӥ)A? e7 ~dr%Y I_[A8JԎҹw\%?)!{( u0v,1ί5>uU>ey\Igçyd;̌ks$<`
w#n5~ʭq)Һjv:+?i6KԔ`5Z'3Ul<eT|Vj*/¦k`2E{^S}_AdW+._b"еX;>B06Of{7#au#ׯQ?+`*H%9~S=7!0Lg]5_:;y}lHFN~ȿ9G*-S]<_NYu44{`|z3tCv\9A3@x;ܝEՌhk*+b|Zw:Gw-7rWK^
AZx{y
B'xM~¶@j W
FxuUmL[9|
1	b77/DHZeݴT"Ui:״FݦMӾմcUj>ǔt{7Ơ?}y={|/=coZZJZsw,(,ɮ=Ԗ^K.!Z(``F~b!̄nSkd,laxьK-Cj|~ȻpCxxHMD+B 1i:
ւ'L:$LV[=41ź]fszyK/F٢Rr6*XZpW(%@CeŊwj&M=v6)&\=7/7IM^gu.`8aq,9*7m!P7L%&7`-<%ǵ3e	:l&F]vȲSAkaӕE}ín2YqkZuvAv|m=w9.zF.WkEBsezь^ʭQﵽ+^_")]f$v)iw^t^SJ:,Z`j.ϴ	o>Hx߁oa)r@G
IM.dT7i;g\qA̡d(V~^sJzSwMe9uDQ3siI,ʄ?M:K]nvweڻݳkw=oh+LdP|=/hQ\aEU1Id̒G}Gr^$ZKKGj#F|դE^ƫ^ N^х{5U=^Z-,抴X؞gߘY:g&.FO\\7uxWovp^|epp}Ch'1dyY^,d$e'؉ .c:nP.ܥ.%cyr6
F\Ʊ`]띠cKP.w^S4sX|)|'4Bx,?0ֈ}5| Kn!Fո6˪YrU[*B6*)bh"/b<Ώ	\czf=Gg[$Q5jE:D}m	}5> E0z<xTTх;x
gГXV,UBnm|>]>Ӭ}&S~ڈ/Ȝn4
&Gvn[ɷg6hmAwY\יr3
54j"q6eY4f˙b)Sy`,N+1<B}CѧSkOMಥࣚO:W|\ɿ[rR-Am<g.rɴpW˜|شʹqm8svƵog\}xYR#S./f4gV?>5Ͷ5=2xUQoH~9/m\ګBlrFqq$UX+]nwCƩC}ƪjX,0ٖ;spF0C3\P˂k+^roFpõJ©so(`ؿ}GaBm8bQr9,	T`®Zqc2g§@`C)՟n
v^ejY0EeɍƄXrԒmAi`KU$zr9v4'BEV=v10b!{qSL	|axN$t^xA8GǐW2@]c$,T'T<cjrY%ZbFPqjP`A0l]^Dq+
Zxz}!nUQIg_{2-77v;|6A>sVqVWZ|!R#wg:佛} *0̥4:X;_:UYqc,ߌ2Q
8mE]mZ.	D䟗7~'~%I_'~Ƴ`GtpԦ_MyUֆ~~o0B,z5ha?)DvTSV|yN.yO28")mKH1D
lWvm]}z2ۙNz_p2zwA{M tM}+Ru'WmڀY%zWЏWNTw?+]UY~ϳ*\xT{Eqn t7~covfS%Σ<Ls';մX<ǣ_LYHcpﳉ-n?tR!G~9u]Vw}I쁔Sr}x#w&6Ғ˘ؒ wL0Q^#lN!!~3k,\
%#͌rs%%
Ey))
EyE
I
)i9%׳CpuQU0R }--0XP\-nGIF*|

9i
i
 d+`9g%*N>.bgǀPWLd%Eg3MAP&$c8rAva=A~..A!~>Up,K0rxCxpmUpU <Xx#Jp=u|{ӹӟ]kㆦ1ƊO>e3^[6{:A6kO3#Twlׄ'{<ٱYu

DU!c`#pb׊gsBv>0V!PaYlg+VHqMf7QA}@Ƌ+|ɮg?BDsV@<1]i[+Dp?8ϳd8y%G1 -x;w=u|rҺg?lެ';=mir4ʳ^6̂(y/-yeO紽X>	 mOgw=Wr=dG.>-@O.hb|JY. Kx^xS]o0}ϯJ_*{ؗJ	UP;҅dݞKb6MYkCJ4s MzcMGGaֲr5/ MY9%Df4e24Cxcxd[ցZ5TF\@!M͙ 738?FpFzZ}64|yZuyFI%áQkP
;`*XNVk7#↋̎)4%F52H?PjL8H!Npq:$r6_-2X,dG)Γi	B8N )1F
&ibJtxAukyJPEРrm`iijW]V1+K#Jjg	Ưlkq8V=
WDkPۄpyQ;zs%B?J{)(ڌ>_z'?Ek+:%gf~{Z:]N܆4~9<Wֵ_qBQ{)řM1Xߣ,O,X.jY8³l6sEVgYԭc(ync$-*f(H7IZF=_lJ"q>}q\mp߭=ԗ΂(Exg8[f/Aj>bJ4KE4*~|w+Juϙ~x{}{'utHMvʯxmO.z޵qCcΧsڀ P~ IϦ턋YMam +ƻx[oF"ȏC+"KtLDQN%$)ʇ~.DNC{qg]5DCtjE"qw]yO%j5E/ZOXz"=d!E{N)(U(N[xbz%mVXkD~,f~ 8D*dt.$.w`jV~P	EY$ꧣT4?
8QX}z͢0q,"kGx
LM	X;"#ELE~,s#I=?N"&:3H^~ ZsCy"ڎ4ibp=a?-G3w=ݹh?vmUDM)I*%f+9gԝK1W2
!XhdzR/MJ6::88j_yҕhG7RyiJzQI˙ԭX\b
sM {Xw1F"P{:]W/PF$LtJ\^X~I "?77b"(-_ {JR
!)u쓛MIfvhR|øViAr懐dUD$6\d_,e^r6NܩMV4j/;B-֥}?|'ZztOF;ArO5DSlP80i-~lT@Q ߁)œSzL;,uj钌iԺ8xKƭAf0)HÞ,qLBXL~iAx8ɀ9%x@N^wDO5AfEj	]ZbDN	2[PzɂȻolJdx 9<n	;(!BaUqqL@m'hƗ5ZHC#reV1&5QQVjzDiYXFEYoy[p܏9)V^k%2߹jwU-k|i=~<A50^PxQ<@ݡ "_D9KB^(eG^4a{عOb|BQAdiynׇl*ޒ**A5X& Hq>j'#%ʽ|?Wjkq#5'KB#^lQU.r;۱=0=k#Qmo=ϱ*VjB}A VM^ݮ [
('
nA8&Y
깠.=Y KD,R#	pJnEK-ٹ5[Vg4n_E:vHB]OfE+$7t|AXs(9R]QLMMSXFMӔeȀʬ$Ғ	"F+#	RN^g1CXb*DK#Jpqw\͏j&PEε3ڃ!Eet,\
Wr)
"D*NLtz|\tN04P7H1 Ad <iˌ=khP\"-`.Nf7mu&"*ZD.W!3jq0l6
%tSjh9ŚU	
@BXȜ]?Vdvgbi 8X<!NkhsMZMO,f>6Mˑ_f~&=zEEѸDa1k4` ]rU;VyEYB~Yzӏ:,gbsG2=.SɌӐgM:d&ŠrbL	H#Rx6@{v-mMzW;xivRޗJ{R gULPZֳKťsTrr {l+t	zl3W("@3fWAPa
*k<s}u5µǣ7n*	g+c
9|)c"]e%R=!uܨrZu3Px V<gP1Zo;f@/ihd(-joy@eQʄ#.1_܈XO ZWX9|a#kFHz0$xJ1Ȇ<ģd2\B,D[IY g.`0̜ {)#n0	a-%5V"V[!<f܏Sn42;3hE;1ԃ|)[\*+xMh-Q:1Ǘf+NL3@SExmF-'}L?&C8V]op0,`>	_%ca
/ų4x̞ش/v]gwycf.FLErNӈjhi;Q̅]g&s!^<%4@ED8'TtK>	M19۽-*1\ОRq>|W01iuJtSq+Blb+q$1w6nBdM]|WnD#$*g g8;qx0RܯK2b'$l{zT)WLxv>93%=ZCz=0IV
jzzQLg=K쁤ٞBw{"ryP#shiH^k88Axpa%}X箲3LYF'GO<?O*VV$'|nT;!~=~ɇ*"gWDbKhIS0n\>BҰLpJ|S-)VqCsQ]>q4D_J}֡i08
3jHUղ9$$n3q&ӥ
,;7!9ctܔ0wOL$
`FNRƙWd)L93sr+~*緭@߾;c=f@4bu+(/+~Yr7Oӕbs鋢_5~:rs]-]dy9own%^;>g؟eCsF0iF],0?&)ml`!njjκæ{H(HzN	~?T/5UH>֢ ëX_1@g襼w]E'\_gel"D6"STQ31/k9saD|M}u}&-a+=tB"#I@jlc6(._.ǐG&Pɖӽ:#Wt%фďRzϨ-#`0Q	N}IDFVa-)NZmW|cHҝQQ5Woh`$Ba^xycLXj8>2ԛ͙vΙ8yӐ\r3ojhxD,\}au܌r%np9MДK%X֯0EB%N++4591~3G^fkvEd8hQ [7i@~S4%?,qHFKNx6;2y\9,g\('W2}ѧazg_!旟)h9"tr݅Io0.DyZ۹;4'`3GIzfZC+2T_=LeVI[bipI9+;tWC wdBW_+:l^bDUX	 X!_jwH4 !W=9=n,+)ɗ91⦻ܑvvGdW2z(}ǫg׸9;/VuwdlV	$_54N|[j94ՌG2$>BNCuFh`7Ք6BiH0fTy%eڇ]lKǸ|x/@eёЇXN	uxX]oH}r_RˋTڇ*4vG'4fؙ![_)%RsЂOwɌ2{R4p"K[T4Ԅ/6|B2u
'ڠY>j~CyS2+%LB
!BȧYHgLML2G9AW(4gTG3,b [\;Ia*;7Ez!i&TJ	,x4!jBfLqz&bjFa"&`\U8[@W5B|vЇ``?u|`_v@1C2+@LI=J+b^@YB,-dLaH"Ȩ2U0a6e(sk.htZsE3	\ty'o%#h߳JpNٔ(sQhRV$FM@MN ZDLwћ*$oLGHޚTAtu"Ġc?Nu` ֑K(uj	!a#A9itg}$/eH2R%L-SW2Oc|TQ^e@B4ö|nl8~pu㕡di?:{fӲ: 3=)
FaR6>E5^4b62G@b?T0jR$N|`^p4YUHb2̍toC$yo/8m?}Dafru0t]ǽ¬oϚ\-߭=z]Lwx:xb>ޚoۍc/xK먢sbA[:	*C}4{n[
OW`eDM}|R)	r3qH-_
, uga1aF6""ˈq&>jbbA
Z')If+JC6Tt>pM'ᄈFLVVE--#E1ǦݚV18U%̓b1O[Z6G+%D7O̒W U29$*DO3YG1g,£vy>|aw+q`3<$,qWoU$yH~}0As?FUMRwބ7#^3aڤ~wl6aGznA|UKo\;+5
%U9\$4V肛Xㄎ:h)ypwC6ϳݎunЖss!ŝ)Wx,k{|n0S%/U-#|}H{ʖŢ\W|ZYsކp0eI$yɧOEY2hwO3'h|\\ө5>sx][sƒ~wÔp,%٭7e$ThRBq|^X 1pp̜ߞ` ɗu-zn4/^=^AmbOo5wt!~ wQꝳgFp)H1J12"w?'g7'$ЛKzыf46aa%18J	"\G>q`l A3Q	D-;{}F}qx2xu󛓋50S50^<v8IPĞogw#
cb!1&)	Vg(	cF#Iy*| YҘZ3FLmcXMl4cM2ѯxx0 OQLe F	b09SIdI ]F"IB7=F'k)Vug8\KUf2?~C/9X]nDq@<0ҾRMZ3j%P]My}u!^`q}2x('`j,M7I9I9g2wARXDߑ%D+Epx24gcNg##hnl]o􃅟yMR/bX:l,?ßRb\~,KKx	]5R$S_p9A	fށM{3ÆNL,[gF>M"͟~N(k2'gԥ1_ ू<6_b|Zn?&SҬrr&>ha\r^rʵ-};rᖂj\[:(M\I_ֱhٚR3%>
<2i9^&n{s̜lp>
n40C@|1h~0&RӧD2>i6SU1-

ti&q&E)Fg(oYgyᯪ렡L/YsO#hVIg)(rNX!'Ro8\w3?dd,)iXEY
1KxwΤjiR,)5S =XՁ-ZCtP5]M4P.ve(8 "8ul>L2P` .!-aKh<VEg^!7Gؔ,FX_PPdUMffIF૑{U~<1n>kL5|gB\ceLprW4Ò1Ӹk?]DTF$X8n7Ħrv̑;mk:svi:LsxsKj!?T˲xy:]\B,ԯ^Ns^U4"j+V+fox0/a_S]MIͧn	$-`UT*%~vGr-В̞|Oc56vq/n%㘦t_@_J涃0AY쩹\^G$dMDڲcHYgpIVhM o<PS@!\"Z\q;O.Jۍ#%VgwFbp1DCԠNb7bt$sA-cH}LWUJ9vEGZ)@oj;d,.K!{-i'iZ2C	!//Oy-07TL]yHX@/N5u߭Tϱƨ2}Q1Cfb[c$W=@NrQDWEVkgU)QA¡D +daj5QEhQʁ+j}$I]q7Z2hxw5V(JvCզ&h\LX1us^N'K6*o:9.
ZGR:wc$=˫Em[-9Zm\Il*FK^IU*Xl=F#pPjx_[*H"s%f=(
&ö_*ޏnǑ	mÊ|gCe,ץk_Qx
|{~.gЇcfPNk!ZQ˧YsA)[h@M.AaAnl+ʫ@EjIs^TqAڕJ"%LOof)c{}Jn#Z{-Ca|#C@z_6ZcU?5ZCY@mN޻ebJu@䃐WzƝ 58hŽ6~5;2jŲ2A;/)k,3̃Z8KvSzn#[eJ/@rbN;,32z}t'[%6uѭv>:U_Hkèi]f?vvy]pwPq;cEnG|B̧DDʑ&#"+f6CWNJnQ;hbBFҹ\+ʥiT$jGveJpAQN+Z <t^q@ےCAT./}tynV~EꁭaNX3ѵTvBh˝nAuWR{je}+Mjt?MVT=6qJ<R-ݡs/>ɿ%ZQdtʔVDmM{kӐcm
&X=D_͇^)D[/I55q0"֝jSi)&חPG%R5]ij̭E%DQS,<LKÈ|zPj[V"4/h$}hDT)Җd2a;W>-'<8%OgUYKakuhZժ0ھԦFN3n$09|mYOExrO3g
4%PcYsϲIt:C7k[hV0>u$dձEM@uC_XIgs:Y:?LyxZ*!t\Uot`^(HvKOn︞^®Ɠ\ts	v%'4q]{hxNê MU
ʀCU?W5U<ز>kMWﵭl,p.>nz'Irbv@y_gو韖f]'1`;R{<5ĥ{r=޵v0g~ډViGv{YSQU_+N@kf>&YaC4tmOœznRۑD]YLkEth.xzrj\цN13צ Xt[UҺvE7JAi:=.KlӦҞ-jVS=E 8%Z<WO[a(a$עXf텶F.M4cf} +n&p8[|T?N~6 ZUjW*aKw٬ZÞܬtI9qCZꢲm"ڮW!ǾGcBwcm -mՎ\?:?qYkBp݊G9ܫWt]߱!:ISZG{wiӇ3LS1bwnBzڵK	ko.\8Muv EI`WNy֣NFnnudt<@]O-ΛFYӴ 0ݝpen84FSСoӔj2U/h?Lt-qkt"c`R_@zknXCVy<3*
~!>lijB%mܫdbK\ߝ &[a=\dǹl2i)Խ"?Kʸ\k_`jOH(Y^廉Ϗf;ߖAwjE/k9װ%̔Fw-ߴ?1DK<ZSQ	KKUEcaaX5~/ n^CtO/ELݹYbW*}Tbq.91x'´X)ꏙU;|W0EHD/_CKO~ǿ$CmOـ~xοԃ6\N߃$\5aAWzJ+ i0(U;ë(5xr(8I`WmUTYriLKl?q}e@~U1:!q2阇
oۺ:jb\-*K]ŲOQ@!ԚWer~\8P$eJ*mcT*C%IQ#.kdrfj YKwm_;\dn2opUrڧV]GMHd=?n߼H~'ׂkw4cs뛷_1Ȓ˞%g'd`CB1.1pۺsiz 5x8OıyUq> :
ָxVao8ί/,'.Q~Ll4(Dn$'<?]F<[à?nXD1ہ:z#1YL+'ޚS!`;n?/`M*ȸBR$$,@"+`D|d_228MC[/p/QR*+˲K.^ZٮoJ	]0/* 9.,95R0Ųe$OTIib&`Bhj$ahI`2<ۇ;vgopPTqS.tHi5i>^S9X",-[dIa7TdXTԫ*`ӤlQf.kzFǊ//r"5"|oDYFt^2X ˚[4]fRXk:=>&$2&d:<dɰSDT,~ӕfSɈWR`)SU׈|)?2Ut+	XޭV
{;tgc;swҾ=4bS[Ҵ40ӢO(ZyԆ+,yYCɍJt]S[_L^]UTAepuq>ew;}+}8q
POw@[^6q6}8ɚ{s(lU1s.Đ~s*c߱͐bWt?8_|r^l3`+(ToZ<BavL26Ckt=&[ϻCpy",q/nd ZPĉϪ9WP^\qI5¾N7}g7cėt_܇9i6q/LcG:pǝgk뉳ywwo7_⮏Vx!"%̖XXu6qnabԙS8y-7 
ڼx[[oF~k{9qba$%!ȁ$'0"GҬ)-sfH)QrkuH;N9kvꝱ?)_
ɺ^z[Zm\}wB%|H܃_I}Q./).xf=;B(ebaYАMe xD-@/KjiDa9b2a)ƟOIv.T]\^{Bۗn@(k*Pxb<<>QdQ,LG(2ZST/y"/N$%e"`5gΐg3t-$/`Gnons#Wo>n	q)BDFF$ONE"	A#d!zU>	Bj֖^,fIInq^#?HF=IOIt/}X,;$TpO% SR;#$eY!۞v0E Ƥ2s>leEBFrdpOC[[EFx̆+Ţ@U-ڨWr
Аo37p|O~ x/J2/^
;uO~/kct!=3lxo%y
 0~:3%1z Ԛ."xNUWē[ƕ	z(e66:5G^#z_{` NDy$Q2'Ґ\]+Hu:yjRLY4 )2^pXJzY%!덾~ꍇnu5>߃[Z=MLP4D-BC#-I:ΰt%zF f/8jr4ա&VC|nH3】fޜ'L&Qҵr}8YT
iPgrTcL*[~+w*?._PVg5$fr. YF;}y g*?z)i<@{	Kއ)M1ZLMmDq{.k]#$pFɼ#߈ޠ2h6l\;	N}U"0y\GVN?M0ظgt3q:nnIm'ҌEv3GeF4f#C'|! 6Ƭ^[sRZd(ifM'ìo߾|yy_#ͲÚU9m%2]wiQF/J¦b^6f9EX#>HhQ N:Y^E1yZ^mZFO,܏p2}IC?SRiڡ*ֻLML~^mM<MCb!xP`@3]#EuH;<(Ⱥ(h# V3ɱdپٶFĝJ8JbJ X-?aW7vuW(YFNl_pI&UbcdpmYƷig0v!ؿ^_an@ hu"`l	ـ~qD]8RK+R@Նt{0)j jH=L cqt~ݼEx(っ}z%E&R95J^ 0'3d`%	_&xxPt C_6<>/2), leA'x`pMumfC
9I /7caP|cj,f gon.9&%IgV׽R<nA98|FG@t-:)xr9'.Ds!V&켂Vr֦HPHRX8p@N:%4`j.cPPkE
O>ã@(%4{LB`32&j	x5.ǎ4NXPbPSc9:ʯ7xqպ׏dԇvYKnPW9^M
8OĽA`h@)F`G?biWXyjo§Uk;,؎;4Xjql0l f('2ǅ~8F-h
ռU۾cXnր6|w35k!ÈHm"knD׈ϬUr)8RAbGC	fm;]^╷O=3G39Vٯ\vZq!أI>~BW9K1J7'PBI/%3fAY.ύIb$ZAg$8R=4-|eLژgT&JƖ8l;uΕuT^6F(ƫ'/JCʧ9=n.;ej*˰sm<U;,w^m1bO)S
ܰ
=ۍB|F'irSչ	ZqG/hХckEo1e:nKPUh%ݾdcbTfl҉Na*m!UR^ݡlk7e Ϡ|Iì)OK;_ԬAB5~[d[Lwx"!
K4MBJOʑ%l]sd_̀X#ܱ)ՊV;i`M3m0+33Zg1/%f&	*-IK`$=9/͛;=ۥXEgͩ}3Z3AU45I|}#p6η%bAN	rh@EB҉ꙶͤT=K)-e쑨-Qs|HҸ0U=o}I8A]_:-'7xDہɆeW؅-R5:Z#Pf_<B`~ 6c1aa9x]msH_1|ɺN6lr)cmB8|`*BI#c6~=3#!]hf{z^#t:rlNѻ%&?	zwL3u :Ǩmk?iqe	z+beyhiQ .#<6EDkaD3A9a5`ohCQhZלRVk\65prf-C4u[JSAiӃi`EG0xBJM1jhKd9H9Q)t%欁\kJ0:qCaG j޴UoE[UQ={C uKe{j~ea@gaUc*L-k		f<mz	!;2Ά1ȂPv1A1G\uj˳Qz	Ygp)11B.̭$[0 m6xG0%sZssYcx{d꿚4]K_FʥxAoPDooT{z=aW}w09zs3$[tT\"8MlsGl&vޠGoij?vS{"3N@M@*REW6f@ xp.ݯyZd5
eJltrZVPN(cGn@#-`I`x@(Ëcc4\[َ%}x 
D$7ZoHэrEB'\=A?ʷLcslr-,[p=:MGw8zIr'Av,N0ؼt^?wi2I4lA20	.'	ȰԂW/2 Ht#{{H̤#t8.mp6ZӦwZ&"?`}A[iĹ!<	*{}E+1{4 ~G쯔:ܤ ͇J"7	AAl;`...wwXgoBԷ{H1)Ax|9@[= 2vੱjgPbBi}ͱހd2)SV6[YL7_d$Ftm9Wquwtu܏XqP=̘py%tZWoi&Y[FaU]vCW0sB5YAw?/eooa ֜I?uPAGrfTIZNep;=M,uEXo=30}VJ%`T.
f*8!:kQ$N{?ﻣ0^!<r$	:035@0-i?QPcй+g~H/7;<j1ߌR12B(UYP}ú'ٶ\BYj'Q1V].7cL؟kPA[f.6Omr

Шl{%LVt0Y0esPkB;%YuQ+c1WT2xhهo=8^s1W^fW]Sߍ.j&o+#آZbf)X| ߙŒHo'rAs$:,J}.Wb櫼E9PxdWI=bB`m<Z9lx(JТn*ƪ}BJ1TbO9ϫYr^VĲ؞ܖJ(.t~;8˨k|bPn9q9t.깊_و$s-]Ʌ>nSx5Ӎ*C;T:duFnUJ <^J'a9{d'-Q<,-ú%A;/@떿p)):<'˲]3tEUrjT`4-@y`,ϗ"	w,z-{ɋPLvU/1Gĩzw0Fv ՛L/̡=hߍޏr݋ TmF'xra9XRbDlBEg~+)jB$9	zaʣa23}> %Ra
UܣM~gMOOtw8OeLuv9$@HOJ"&4^$̮ٷ2L >g8vþR/Л'U&_zKkr$q̐.Ux.5ܑ|xê\3gyi&-ME	pa$h[dׯ
tS]Ns/e]:P:Ӿ	]ܻYgI2:*_|: ?r}SwΒT.tuT.twx%"tιoFׄ\eϡ2idb&Lɰ2&)[S
/xzuuҌy-n;K>(>=sQLBA[A>S y-~nogɷ4)CnDp[L|\Z<j*o~dM>$8Q
#9UCF*{\%G0i˧w밼(|rAmK㡢xԗg˱SNxF8wqLew-_kW [b"y>rA۝\&eq6|S0ßAE8~Q0oYv@"ΡIiZgE|W2#:f,+cޟ}
u[=~ \Kz8N"Tl91HSƌJt<֜;+y0t[tBo+2ClZ-g띿Y#Tي\[2:-'#y(Z4T*홄2vjGD
M|o;vge唊΋rR)yqs>ߧn.G`Ѻauêhq|RUVh!$
6=D}HOnfU-Wȅ{լȏwi:gE}xa-S~Ly}l/</#ۜ B#طBc
vsw9qU)ϕe d?Wmd|-+wN aB/ˡ9C5^CAD_l Ph?ȻBU]x[{qi'f6pʲc\L?0m7adUl((9U6TK_KKVAK >x[Qsڸ~ϯФf$MN`f	blXr(Gl6δ4X:;>I:E,\p:
t2z./^	ErOGk-l݆ox(<dxɓDxDY.D68N?#M,Xfx&PA#4>Aˈ ,)XQ0l(04!h*[?S!:VO|4:k.c@'OqgL9<\ TO8gIsN&5cNFa,2-!Bб堖s>XN˩I#-wѭYe;CN嶺irMG!$a4($#:#-xBЄ@D($|F#9 ΨB}ttvttv|=O	gq,t=f^+MH?䔌Ayc""䰺@$g=p-ETJE֯}:/ !|=ӾYD.A\CSPƟ~F@Y_%Gd:݆=\wmgڿg
R[0#m$<>}nȘX6Y8cA}zIh(H= t|y=#Gk560J8@TǘEb+"$ҍ	0*{)u\>4wwmIBj@K`\rѷDMo*In8?rk>^|46}nUƦ?66}nO?n/nveb2IC0a`A+%(ц/c4ҖX3k_Ho[ $=nULS6W{8
yDu+ jS.S&vngwrK~N:&aݨ|Ӆr7~;fw;_=cdZP	(J+|Fr$mA3q{V$8#-W+eJFA^K-CGX✌$2mN<\َa֠aܻہe9#^*\cٗ]kly*v8h`0kFqh2IUJo]C!)WA #W|K?cBBj˒n(#r`F\Hrg=qjaz۶Z=7i	 ͧ$@Sloonٽ;`jpFY?p#F>0))4b߀bmO7`pH.j85Mu/wt}c0MivF0[d~9L&ZnbABezy:^|o""]䦌ú 3?2<*u <HV6D>_k-U:ŉae.UJ\ƓUߖXtNc}8XOA#qdu0BlrH!DvϨg"zRLCVXcOgLzylH	YS'OQzစ``'54~~UP%G6zzJ&VT$&V>VeŨ8HVO.8 !Zk~ؓr#VgX(,F=&y=1f*PfXGtwHĜ@)q^K(,Bu{bmjBHA߇.}t2om
//Ba0{WUv!ȧA99MFͣ-}Y!䖍	]<Pr%
AyO@sXXUg >xU%x4s䩵UaNA2-ߞlV̋5%Fy]6J̧DɰUlN}OħcXRH*SzVZT;æ`sWSI|e#Zr:RTd֠X'bSWzcAwzԗ!EwU>>Å܅K7o y|tJBGnbBSޥ`0x54}|.04H$8[|{n]3lC5n!-JIR:h]+T%7+@oO19)eI,Pzvuc뿢K$V+ÂӢK]na{xI꥘lhmۼWm̧SýhHη{^َekr(H _9kᄬ74^r七aȸ .}~1?y>uŧX^y4*hwB'ASHjssRmaF?iP)"3ru[R@׿IrCt9}9p,e),=>T~OJg[jțb[Q4Srr$U(}3X$"l>x%^K?B_>p~ʊX+W_%BdN!9`u;q$6	i&o4&<ŗ
M%hr~':;+$wP0xZks_|ٝbc3Q1)l2 mfkv/dbxR5>紺[-'{ҋu"E'翐˔ } <b)-&'i'F<_[H{JG(%K&aH*9D	x-@WB-4NnEӸmDS`8b4H8J>9YV]	wd~dCE{? qp)IJEkb )P؊D	a5!U""Z_Hi|VPk,$ǆCsL.:4򉺗ñK>atpDzCO]:ӀvC8xpc)Л<A-
($c@Z8Oٜy'K!qV%L B1BړhDiL~L'6#?>;4|7!,"iua*t'3i0}/g:?hx@LSz]e4c1qRem*]-=|/T=
މ8vFp9}sb^]ә7cwryj@B/H}N#BidL8H%;@01}1|)&h?Ox	!;J,o_F>`iC5v*r
a"o~̙K&٠=ڠ(^LU9i8ꃙ_<PsMUVȻ'҃nLӞXզU-yccƵ	v6ワ^+-]PX1cff|VE3T!b@`_Hu9A@:G_"]BRTkX-w@`MSQxPڻw
ɂ[2mI=6whOB5B]f|!|[-ue>c$KV\j_&X0O|dA?3',U,~ocݪܲ4PL;ăna{,DLMQO>Lk{^ހP	ɾngC=GP-CMlV6PpUtuTJhX"[2 f4/pL-Yفl:ÃeACw'F?2r [pҰ@RDՐ;4NQ+}{JxQBC
S4>Dk̉'3Q&v07--Ǎ8I{;s8겑U9ߘ#?] p	h)TR
èZPeA-Υ]NkɅ/+Z&L[ EawĮRĔf:!55AJm[,qppz°`0לN߂~<mݷY/~C6]mG|`3çRSM6ޕ3i.&I9o+\-q^YM0;8JT+]S9tnGnꔎ*=@u%`(^Da>t{lE3"L۪-i3uM.{$Q2gsPT{ax_.9넸(%6X >FIkW;46 /C7\A-3R.^o`яO]])
U?[WBuȷ8BtotmX{=: oַOgomw	uJŵô^*=S+^E9<gk߀!<ބmlV~}YgwT9nu2=o)Ez ڈyq(y 72 &>;cl0tSQz-GMgQۂ0Of~}/Korrrk$?ù}xXao8_1Hk{:hj4XDۼʢg7RNҢD9y8zN/,=tVTt*oT$1٠s7y9ޤHci.$3WAɕNyDOya+6-ŚRm%lf*$?G2R2KHJم[ܸ.m.0![IX,+쟭jj
pSy+^v_r8Md)A5NEb
W"mH̍7QVzfWH^;V5jZ-XH=~i{]//Q;%uި7-?mbȍ n*FS%C^fy&#5SBK煘KiRDD4KsVs8KZ*+{BA빃DısӸ7c|"q Q~25J˜=J -ag;:Cc0`/	2t*SK氍	V)"~nEXFnP oʌQ.(C$o^JƅȟNrL}y lil.	Pm$|3D\/fǦ"4o3޵uiN`,[$Ɏ869|9kzntĹunIsfJ-۟L,)rw ?[p;jGKNY@ʿa"x+2ģya	KXJSW Veiw2'd\gzqPJHo^_K9
Q2]UT[lbx 4.x]	ln=/;@.@#؍2?u4w&e j.EC9nLw>Z(z;q>Z/V)A!=riP5vK̛͏xK퀧UX	VADˌV\q;"G)`!0UX팹Ϸ]_]{ׁC\*V*fG5=7ibv!,#mN;wop
#`;F$l?@PHoGͣl~Kp/BIwexa KƼ2m ź`IVXpbǭ-	Y&U#Z6)3Ws#tLPne9]J^~bڨ#9 fz@kt؄U#+1w!v;{8}GH]fxL70]->"}<D!.lTdu+zqp^pɷmawM]z+_^B1*çwzӄծ:hi;mi0S=uNʃ{L;Cˊjyq/0mMLO!mwmmrWܟ;By\jC ;Ä2" ?,YWxeRn@"'l6&psԪjnu.=u1~AVw7YpƔic1t.E|zRu1("A=x{|QTHf]9*iz5|q%[Fu,$z<np3/cՊc6ad"(31b	{\J!Cߠ3A˄\j\7Ηޥ_5-8&^Zެ+z&FViOk-R8x",,#­c?W#N̟=E%T,dLgu9-"GAqӶ WDJv`/Jѹ*_MjP7J*Ċ_.Cܬ-<_OzQ|֪h[>!q7 PxC9eCf=Wgjw
JoP331H8p("
(lݣ&,:p59p{*%p'ĖnS*K\lWEy *xEiѫnUƅ̋uYW) x˫wR^
#+JxQJA00qM6LEwugVmwB ޢUzfWM!a`Sfqؔ ,w칌0&>퇜 a&HIW5H\}Jl۔=m(="pZYQa1M\uWmݴ[MWR'[R] zN UWL#-%MTYaݱ23j!<jP`2c	& 0<ǜa:84g
.KP'V⒀,9|ݶUw.
P'2B:L9pw@Y)nߴ$ES{މlacOՄS[zbOJ-LxN0ҡ#ҝ"!"Ѧ%K,ҸʽaCy< B*^lsӏ7GP@sk fE!P( 2x1IA(#^I2rQK!g	~JK?RLj 1ʰZfWu?ep'TǆᬡpJŖ5dV+lB;ܭǷ{ٯ܍{^
TDc4)mf˽*lW׷ۡofwILt`9_s{xTKo[EVbGrm4ɤRi&Q@TS%QyJs{g.3s]Y"
	ء#v*!X`x=_(Vl8"Zss7f;_lz$|)0ġ>g	j1RD/>#Y-?A43'G:522ג%f3f.
~O-8ȞLao&A㳰t=|pCad2MQg(3?gNGt6\j*Ӽ
?f7Kw̑@_ +CvcRlJs>m^ZJ<V	
iŻ]qc^rcmP4|:L3&>^#}	mE;
ja!ڥoP;CCbtشnނWxrnS|jsɟk
?0\vD1ECw^i&$UϧEP0~PϨh_Z8O\ǓPw͒6*pLQx5w#1X5/Z=T("qJ]w܀KZ{l#[Ԫw8JS-{%np+O<92i\n[Z,FX4u^^	S`C+04T*ہgNGfkx0]pї{]vmY؞Y<|Бrrϔ&U=*7@˨fQ6yR=@ϸ.]\P.3쭷	FWmT&]0ըUkPUﬗA#U2£(XYAYrx-59L;偯3|l/hNq\[3;JQ)qjs~ZzÕܯmvApWN8aVx;lC
J$:xVMo8WKxĽmQ ^A&r9-z(	KJRV"}g(J7-!4yo|У\T7[_mj.`Ʒ"Φyix
L0)Yv!|%a]r8ۙ޾`He2c9	/-	*\0kh|Pe@Oٱ#0MߣQ]s=Wu5;:_HzwQ[%4&7J$4GUD
Q&jWD"f~쀪1	g~8 _q	_&`CX<t&W!pTqRSHS`	LLS8ԖkAu!U YY^4FNkVJ2V
cŖ߫ʝR?[X'"*ҽ+\ ;h5)^Tc3!U)o6¶vX3ݠ.1Kx$3%՘6b\/i avf&Th2Grpa'tqNe҃@8X&P7e"LwC)|ᩱ.Q\,UE˸p	h&>`em+bŨu%]bxv[.-J48i42Yk%U1֜~;B2B:ܤҚ OpZ ky18WĹj	{Θ;$<Vjtv/GݩhɌ>wkM;BXPl\x4V=Dz'paSjyY>j&l۾O}oBij~,'̆v},^>)dZ-GHo^߂K'w`@ZUy(-|cj2ΌݞŋX/
Fm%Xq\V؁I.Ebf~G~_<=~A^C-xu%j_|=KnJC_No[:7csyD_o	s'/s\l6x+2OhC"{ #xP;N@Rpr]AC(=Q--&#Z)Xvq潙Ǫ,(Ʈ=wh8nu7^#uczZ=qGTH!sNb&:V-fcUVKx-rM=@js=E7mcK{fE8mע]plx`D?U Dqiv7oHpx#WdCd}. Mx]mo8%5N{ᰮ&q`;A˴͋,()o~3CR&Wm,Q3p(qX`b#%{}G>k!٩6;fj~PẌ́bRniB	;/̭/"?f+a8@Dl.]gGsUJk-#CF3<ےR{,(zpbű`<ysE2%KÞn3O__("9_+Iof?\	3a4r|@xc/#`oMT>c;v/Yopy-^~b/OL#9P8`TPQHs_3sE-[<Z3ʕxDJC{|6}__pzQo*)Jr&tAhyMO3ΡϡDS{h
e1У63Ḡz0Օ"ֽ8tdቷ 8ɶ)>" 8dS07=~+$ݕS10hU'u	뾑&txF0X	yњ);h 9|>NE"=Q(p2q7?9n<N?pCttϛɹ~v/
WDp23؍ʟqWzACc#V,	4Ft^
M@
~##KUO>`4h_?l%[TZVKKXA*ǒ)<h@rgXZ6m84kiu~ד+L?f鯏`mi|z/2D6k0o[ǁ6c!F(0vy얞1P^vߝ'g`MFl}s9^tg
Lfjw!i4>-*BDMڇ?DdY<#R4d#mhCj8QI%`Om_{62{%倭'Y
)D50N[l .e<Pto}9cr
Oj&l3Lɵ]dG:6343
"D,[ͱԿ=N	PWYwQ0iOAնh*R87aow-A#Ex;ȟ0ӓ-UKiyz(õHxQcu|7½4it4=zȏ%"ca\EPU$3z.QQ]<nhNmom5hKʡ-|@ۓ-QQ=ڒ&'gܹ7K4GV#*b-0^_|&X39@2:<p词&]Ķ䪵-})mNze7VbFJ.7υ1s7'WuL0ݖ%7>k/#G	3RB9/ M-I^uNE{~!,Z?JQS`Ղ78L0StjBJvq78Ӓ[KHpm'0ofF]MntZRTƾYE i-hm~mdUXd[5©ɜJrgVz&5_a'޹?t{̎[ȎdK &Pm`ru6F]
%7zeΥk[ LNA!Oy{BF&_d/vͧl/>*Ij+Bҏ<Y<"g%6p0~A)`Xژ)0#.mn6؛szĔm[P(>5q	,uxj`
]v?7g^hX6ҁI`{x|+|<BH.dѹ:JqE^Bv+Cq޷Lڸ*()Z)u+mJa=e겜fB'6`I3cXK)WrC}`3$zg~i]jicIE|E$>H\°O¶-T)cT	'$4SFhJ
n2\jnС$7sAw'g=Ǔ`8>;m.UЇq*sSiAt]cqGx&ƶ-`VQYDJW7 +_8NHSoPښ `EݫV&Bӱ~!,kZTR"c$Y
%VJRK}}"f;rl5-0X-؈+d0n6Yl=DQ2D#$"ԫ>4ѱ(~'I2@~N3P#L}<5S|ƺ3JJy9<N DΨ~8U"tlieFJ+(<spgg^v3eT5aoQz``BX|:лK01}aCUG{0GYͥpg1rԒf~"\E_NZPCLy6~B*	錼&>+ts-8L$N:f숰̩̔d)2<O-S^f+ے.rMOչهOtrȡGOEzH6)QiZij)7OqGd'Æh<zóI{5r/2]昢8hjYr. 7B\,{,v4yTLEU">Ja}}ztpG۩e-p.^$lUJsv
0ZI6]ޡ$k0lEdnJ:TQDJOFr[Eb7$)JrlgHsd5Fd9T
8Fz!Ale'0Ji!yْʶ=Vw?2~HL%XLr`V#mmZY}<$Ot{'uy+c;ɔ]*ivjϓsؗybJje2zdR$>ɡz'V!}^֜zM3
:ũAC`.\J[zvVZ]h
{.pNk81J m|`)"!p?~V]GaI-	K~+3y`i%LFC]ZΪ f8eܒ׼*B%GIM~	洲3O	Mj4Kf0!p\T4(v_D4TEؖ7kϭ7ɕ瘸fBsTINیG!Sr6IP	DCx<d:Yol
zW0JT7ԟ;'9ZRӅV_P%Ab-hmT%>	ɕ f#75q6@Z?ZgvH(}PhqL17b@m(Oͱh%hidLE
V1׃81Qk..Z]〪VUPn} VS&| n<gl@l&ɵ-dcQY
*fUp3P-24͌ ߠ(*ccHmJ@"XkP)1#&qO(~*R×Q=je;9ơi;M:D_-׺|ǎPN3⡶[WRQP>U"@X)EG=Irzcj\_}#\cԨB4r]۵γ1pf3w(FO;Mڎgm[&^cKsNN$$~JymZr^m fvv"wR:
;xe7Mx?@?lBڃxg_^{܅ʻBSI{yvȺ,ns,8tTq
bt!T0<?բ5WjCb Ѳjį=6d;'#28z2ƺlCs.oFhtK^_p'xC1HgeΏ1w_d4qeI?e[>?O^E/  eacݴpzF-Vu5`?W_x+1x@wEu@4u u;ZpSkHa&JsdK~{51qOu%pTFJ)>=qŨI qW2;oݕAq#Kao{n[sm<|[۶7d>a⹢$7Jkךɻa_8kp?I2x{{'7b2qʮ919eۙ>0Ya770NP.W@Oa^,uZev1O^4y/dSZrQE{]7)A[&	mӼżB!՛ccg8fBFy{F3n^(T8\x;ͼ> 6[E@L$ zxW]l87cv}$gc')	1.6.?A	B`gxfhU*@:PU	!jT!UTPA/}h;;3kR=|weG`_+̰$^Kb	sF2\~>cY/|"bȀ%IV:K̥63I"_b2Kbrt9%eQ[(V\롞{1FkF:?(3whS토bsqW(K`=#ˇ`~x>qOw)8Dǒ-osgr!WL qAw[ím1si4754fw:jHƧ!0&^nc<-44Ҳhg>sfg̻&7hU i(ai;DbFI8{$y?uyo7Nu[*7"	$BV0:L@SfDx<c	8As{ a {r{ JFQ%lSKUXlb83%hl=FI*`+7W;3]Y`9}USstq{G#q5ogµkm>/IYg=zv*#F]c#5d#qlY-FWb13I.'e q"m]	(o1.AnZ^|zV9xT5ϙm3?Ts0(?PM8*]aRq:^G<)ҷ]*Y·GSr=V(%6ȂTйl	
Q8Ռx28\rUv9F_)uC>KMGS]A!@xiِn5`Zv8n=3J{7kDs-q=:ٳ?tsWuSl̔xPGH5}Yt'|~7Qcr;* '<=s i)\v-@MqL*.%U]9`Sz
{J9l*Yj}]66D4Xɟv%,59&Cл3De?Dwx<'_tVF4,z!׀9P-ǗObMiiuX\.E`q2f"6 pre1{874VkS-Spcj))oMXjT$w'7Er~L44s
.qɋpͰNVb|Nw@sCcABqF."b՜%lNn{(3-Gw&ѓ=<7g-$DiA'\hyU*_FmWQ(M+i
ģf%6puKۂ(XLz~㬌OQ:eVaNFi}[_664]MQ\q߶1TbȘE\$vTEzM>[Pr38vy"9~UtfYƋdZ[PpB*

fy.̀懟MU
ocp;f_=rpfߦ*OYUC8
1Q僮ekFlGlW\Y%Tpo9vW0ҍCI׬1޹#A[L.ΧOb}{_''"y+7D;77[+/$V:5:?]W[koOl<|\iZ(}]Ws2&[x{r2947{b2uV {
ax;rq&&ߜɄ}| LP2q9TQ\ wwdGm6Hw	o<?7#(ɧs+(m{x;rFa/	x;rmsJSRlKRRR6k0LS| sn'UF(wXF 3By,PEqeHNޑ &kߌpx8RsRS5&_Ȗ?m\O :Y6x;rqsJSRlKRRR6kpMfs 	LIx;rGy9)
6%))ivX ։Wx[qmsJSRlKRRR6k 1m%xa3/x۽qc3=
l)w+3NVv,0W# AOx۽q^IMi<g1R. yvx۽JJIMi<gs[6#g1NFF&wl4Y-ЌYk 	n<J&@T1IO -/>x̸qɽ|AaΑ~.7++)  
px̸dK'?,gzer# nx8qK 1g1xrK1M~ 6."`؁I6ۊ0B6'GٝOXal%P9k6P/Rt} d7 x&nK'9mnfQ`@gm\1E6p䷱؏mamN;%6
Ks6*m`雡.: W]6lx[Yd͟MX-h)k5x[Y2/a]/,%
x{Ry+uKBCdYy&)Ok 
*xz3ud')Oj
 {	.#xz0e<m0s7T M
lUGxJAƱ"؋V۔Ghi\JR% UMkɅ H8̬n|qnz7ۂOl԰Q^3}g?/M.<"GP 㑐}L]q2H",! oV1PKZ	Jg3'@lwmfwVa=Da_TF*DԇtJAZ68=5+77]3}knk6q6r쾕RWvו;~jkQֳֻڻ5Y_C.?K5Zf`vkӶWY" #۽&=BۉN"iTBA:EnX`8&NN)ncҁqGe2w\M3Uo@/rP.鳄BXؿޅ[1뮏ɠ7z*yh/O̺?7I|yzЀm!jnިx;r7iC?	ڌ8!/\L@F 'x41iJs'/3)" b  x-qF'hn.Ә c5OxQkPɓ:X;0ܬ]J:d#Z+Kpܤw亱=8}(G}}
/O͖bpO?8KwC,k,XNtEds[en4OmsYgs1RqO4Y$HW˕K.P^)_4x+w%qU3e㗪'պfOd܇>aw^4'Akw&67M-Yvg)馼-Me~@]`.,ڏ6-OC߯s#*ǖPy'ZsK	Z S5OdNJr$i$r#=Gp`B"щT&KŸ$w#zNC=WaqPMrɖ'P-Ǌ*R1v_82
V(&}DI2_ǇFf@PY.|ɿZ9zOW_,-Jx}JA5DT=֘FLFҀڂ1˸;G̒#*|Bo{Dg$*oww*ufS{76rhFn_ʛ!ÊGjdw%_X:3Xޡhz[śLɼRZea8TrxīrwT
 Ryf.2C_{>ŢIv?TW x%=bjf:?OvrۂF:TrOwMju{`ʀ*]jKyy!҃9Jx_<Hj	f0.)K>?;"Lߒ]EMPFii	'Z[4m>Y
N(725 	PLE{͎OtdK5k3Uk@t.ԇ/:/ +x}KJAэQJ|>b11Fb@Ņ
>ڙ5v6gDO d*{ @;q$Qq`h맫jlE Dk.)s`;̓xžx0GcqlD ]!qBlAwـnj0VQ	@*Kmq}{.èƻ]¸ߪdgW5=T#2S
ǍFNKpeav\d*?H>B3LJ*SjI|ܬZ06>M*5Q͏?;øLmkh-mS65UTQO]cpYN-sO)^z&~$>H4dM7xz7Fc-и~6|I[Z~`clx{UrC9[qIQirlN\dQ x; zz6:[L:5Size of<M;<l:;Np6>.<0gxSjo+FLك3R&?k #xSjό^3d*g 593-35E!3EKA
Rr33'?32Ncr9f'_ / AQxYriM_M'Lq~k22ˀ77ٴ MxUuj{60b1&0RNc?V O0x{w9erf^rNiJRniNIfn~JbNf^Ai~~F<ZYM{,bbABrbBf^VjrBBI~irkYj^	PXZP_J2KKKRRR3SStJKS2@͎E١߫!p懲ՌLF$<N	KN(/,	v>BP{ _=x{&lCG|xf^J~L.iy
%
)%
%E%E@"cgB~DUfqANbBn~JiN/fKļ"=0s~Q*HCqf^rWZT`g0SgvfcQvdfErن˦$%3D/n37=EM^&4 [OB%(=0	ىR(MY1J$+$秤0"5tEV`՝<@dNɱB<`OB U'>/J`Ż9-Uh_bv4OxtqjB9XBI~irFbRNď߫)"q(-Pb,ټWb#5$@'I_G9TW35'+ϫT6:,:(c7S538߯V (7&:4I]0V'mlsտmX,Z֓)=ʩy)i


 ?D%x{v?dCoxf^J~ob^bzj^&q〢̔bĤ̜̒L +?MN!?O$#U!/$,UKAkF1ɾ3ksfg(8ezN>0YBA$%)??G/CK93/94%,WܜrqB,..&)LSҞ*m؊.τ!Y&>|V'_P㜼B`1Bp38dT'+iN#6NNm(/Dh1}
&@:!I9
y)ɉ%*HQ8R32SS`ᗜP7^T@c7gIN`ondDh~ڬTT樾Jycϋ]4Bj.DG(e`=˥P `lGx{!EA$%)??G/CK93/94%,Wܜrqb&)%/@ڬ}C-d})8'X*R{q~%{DfB Ď"ɓ=$3C&gI`,{hE>ViA$&}J9N)TaJ樾
{.P!S5Q+JDy)i


~.\ZZ

Z E[zDx{0lf2AFɊ"ITs cbRx_ TSc.Sessionx
	Q
,gY
ϳ$L// OH_WINDOW_H
/** @} */nx+xuɉb0OgΞ]tf75 	c(x)gLMef$47_g?ee*l1E!LZb<Eřy
)
zpa 0GpO?ɅbΛ+-al.WЦPZX%f椦LN<U% !E-,x		ݐ/1y-L`UF0W6 ".a*}0Ue@ɹsAZ5 l+x{!Wel (bPx;J|3Yy&7M^09isAM&$ܐ ̢x;qJ;'O<ߍ{.&(KAAadyK56Io	n~ >x# f f fH+kmk22xvqÆ1'rOޖg,mAL rq_x͔k`a0	uݬ}mi'ecNiAl8667_O"<x<;.ѣo~$ȊCyx<O~Izk/eYB2pt[!&I45?[zHsV4ꘘBL"l7%a]"M!FDxJLJZqr9%*Iʰ/n]^Q*J?(,Shm]4b&X)KB{YQ?(3QhneČ0+2&EvX?=@"		Bv]Fͱ2w v/n`w_̈F*{jaϕV:D5׫q=?' Dz7a.l!ܹ:MnFΏK,Q%c}x*VdI`J/v %8]Wڋufs3;~U=Ѿw$hwQ7F	ArJ1SI~6yT,.ɬ!pU%xOkPBVJaǙ-+Nb覔Z)@wtBFwDK+W"~ ?BQݕ~_f2!S.B9wr}y	U:3n	yw|S4M@].I(xL=PnUFܣט??lE
MiNI=-5mZ[#>hv}旳?X(
nL7O="ե͇a&hoٱrО8Gg}ހ$ہ|6$2q7-y2L3hN*d]9썾y`K_كgNj&Ps+!e~uIo2]`^Nf
qPz>Js+VEqM:
y.
}?<?V'8T36E.'ZKs_:f˂ͺ5!WMRq_g:2žVxu%َs혹&wԝ|Kl'>9wrgB2@6nܓ8KL6T,8yG0b5$ E]'ouW,΁X`=%y&JOͱ?[ Cn(x{q2; 5xZKϯh/ K8	̑46Ƴ ZdKjErhćArHA.MsTu)RʳkУjiHqLi";q@猓;29fG7L&2ԀN<eWj&oz*N@ftAlGgd-F؅\AMgZ`~T	Hg$( §qr h7^:+T8ޤj~H7m 
}ã.2ZtNЉpۓ2񝱘S@bAϓ j&Z]r~ǝ9z==Л}zz>%OvLDC &h2>c)cGA]f175{	#y6xD\͸Yj,>
U/4T٩d$:ۦ3Brgi#1f2ÂR0;IpwmVJ6`RlVŢr"WLRbR#zpmdg,9ygǺÑ{ii
g9K	sMZL7OJ"9_0SB}r3qLM%y!acy<<tNN5|sC q+0a*䶨LwQ*
|.w;7m2"`{__0؉l60q&I$npQvQ~FݶɃUc/y^V׿>߮ڿ_g.Gg`W$Wp;$7K-^ujY#jݺRxg(Bff_cԛ[Nۇ)Le(`UFNG,z?j151lLKF|Uk٨:*@AƠ^Cdr*TLFn!F4:f&~aTZF	KNB$M}|E'84E`Ň_	mii%*_;OH#g??\
%+KBKXZZ[{^W4vgmZz-Xگoҕ&u[zv7]5V밎Sa~z#'7~Ԉ5jk_y~'AJ2W
nڠ9ڝ^K;B'I?hl߯3׊]`N!Ւ3^>o@6)?M,&"Y	EM.?W#ýz\oֹۄGov`N`z.&1@+@,P񕺱.Sp}v:\?G%~e;^HypzkpY3lz3^'+	WOiRppڍJ]C#[کv}>|kXܧm<itִMvS@ʆ^NQ}1: #[ľ曫H~hn!m|N:ã}'N~[];<Br>BqL#AV}:ι)8e,e]8,9؁sb{QϩTo*}j7r1l6X AvbԬd҃gX*av'jEћa8$:S'ÁB82bEMh͵9u$#=oSE#pQ) +*h"$KȮp!d;T[)cOؠF<ERDv"2z*cj(Up9ױԷJ
ūJ2ci'Щ)O11˱'~v2ܿ;[`n鍵am
F<t<}m۬PLP9TĄEFeBcqoǱ=M'ۜ
L,IgA<8?#6<)fLWB^k&w՚z<l,Ah4ULiw3
~Bѹ|Ea%Å*h&5]ݤh3Cj8ũq`Y>*kGH4Os -#F^r4"az;|6'bĶ@?l#1W.fITF|@AX	`n+*
+!E|n'鹲"cˡvd8{pyeGJL*˧u^BiJ0M3TQ`U(RKi%ݍgBVtŊ&OsU;9z9<1f<XC[OҒb>.d[l1!X<w7<X
<#}.!3|$`GjGddJ}Y>/w	T>E-O]#SZ׮rfbj]GJ|$U(k;P~,z!j?+Vx}T=lI	BB(.-&?aDfw23`QDH4 $;WHJ	=T'kovgeی}o~.]Ύw=wYdun.CERHQE` (AbGYi@"{H5L57MM	T5eށzv}"YU#H*B .Q`Ev#JRUcD "Xqo9t"e%,;3X( §RR,︞):l 8ofapu]R }UKhk|ڜ(~DmeI
V<򭅫ݕRx}nDDl6Z&N?c6ޖ~<UK??D2>,b<]jݲtn)]ȏLrK$7hwmd@BB`-aGB$i[=fۮ֨SkW@-f{a.P[J!>MzTBsat89x^,j1Jƀy`l{Xk%p!%(n
	UmjdWo|B!&zx8.q1l0"͓[zR_:2ف⡊OXT7$Ұ9n2j4Ndcx>r1QokZר͉}PjV2k[v2EcS6>_e3sJ͋cRJWTo'|?6~OLWx}SOA-(l4P#@bCģfwff؋?xPCW/&=?1E|4=}}o_~+|q;{}D>A>Q:
#n?!Ql^L{D<;OJNfOb_{IjOXh
ARa!wA
F\d\~|pTDLo퇎C,OSE"|*%gU_-*lF !8]
0PmQT8;ކBҏ}"!8}Lo،{Mh4_CWQw9О#	ѽFg/b2iљbSO9ԦqM=`>@qB!`-aG Pvw[a;A:	BaVW((gxd3e ?P5-G*y&Tn(aV=|ShÅkP	%hxcKN_J7:_3paHдSt*=߿_>OfxPKLO.Lg",*1X:ctd&Kj6]qD6];]v)vXmVө1pՕd}}SK:8V</7,W_\Gs_IѮB7xmMOQ8mبXL0b$jL4ʆH?io~j	Jc[Z?sY5&l9-Pd}s{2g>>Z[ѓzz }8;]ʥ<(~	Cc8Ҏ䊐W|"V7YhcA d$2CkʳT* 	c8*
eyC$շv^JW^O(9{'',eː<5e8`BUGc!AվG,u9YFskDn5ռ=8Xvx609"bBJVoOs}N帴HV	RQQ
dP-qF_YMNBňb'afG?# Kqj]|<RQY鯷6zzf͉ q_vW&LMkgŊb/bRKT5A.LeD/Lba^th2r4KfψFV3%ɿm|\sblGE=P<-\`+jHϜlu&IDx}OOACbVFDP1`RNݙlx11ѫ&\<ypNx7oՓWnI2"Fu}|uF~Ae鏉%96'+1J"{HbPIg#2a6·8}2~w>XAo$H*B.|DN2!3 $u)gtJI9ErC&W= @!*}Nk\!j%-jZ\$ۮjSC"侤gmƅem4\$#)7+z`Dq0!}}eū[6YL'Kh {͢}2́BWZh"m@$r-ݱгA.&u}:tYa@Rp_]@
GV?j[h-7Rg 3T:3ӥhMj恹N>z:2g#)	Ĵ	@[7\1h?*pía<o
u:4zؖr^_fNx:eqJ72\Ģ	"Bzm;v}z!W-XiRpS}ӿ5OT<U~oL=3 Ṇz/xekp.McM9TFbAeL\0".x<x_Et[tIYt6tIA!Yżmڵzy|}uc䲬%_V|SPhr]?Xn&_auSa=@ѳ}ª:wPf*	5+e&?m%T5/V:1/lgC!l~4b)rDs6/Mx-HkM7C܏sw2 JM4msIzW~>Ea|UF<{$.FS`ltI:<~ЂZL`vc{B.Sͩo_mȲ!Jy/|13%T4Iһj_8ڵZ%Īe4'F'acZ4+At i}M|֏+ZϮ*7ؠCem]A$%@=q&K=AL"CTkENK 4] >οʅCxOQ#Jet Ch.ՠBHqm܉]aaICRJny"BZ
c[hڍs$&5ƙޖiYL&;|'̗ɿϲ?.38,d*R?ntsŇh\z\	KG.gӳs|%]l]k&B蓐I	ܖJD!v7xD)ч|C/(n+W8ÊM j2r	l1<]ĚDy>ϩZТ%7KAWRK:J?U5OCjhϭ~!R}-EuVN<VqʮƩ1MRz|s^>JYYV Ċc& 7~{g͟LAW~RFD+
j9:xqQ;QV4e l0
ǛFzx"B+,~DrS9	ɣu,$<rLL-#wM$WE삿YIuϗRRۨ3Ga=ћxq	|:-E2BtY4 [{8j_jNF~4RH!qϸ9M4N{-}x5{3-4ba)i̼r=.Ђ;$,-⛟T]fayA n/hxkCK\pN<ssrK3R@@o~
PvEW h!xkCK\
D,'	@YM,Ai1Ĝt̼r=.R ! oEgxTKOQ JR|𲉢"(Hkĝʂ!1lajMn@+PthclK&ι3ԸrLoL+|'dV_y|pۂ^i4_L݉[fxG}CtI注w3Ss|)lQ}u*)B`X
bs!u+*_M]ߎ$6ǡ8"QR$wUN&1]$sZuh&5E~b<	(8*t]q*UV;ڡa-XTqܞv: M?m1U;=>\=
$WJ
,+ϊ /y?l?tpEXD&!/rN\><r5jS5J&D3d0bZN<D$"𯀽 z]> YAH?G0Mk<>35v2rDƉQ;A,FS]Fyy!Ӫ5^W1dDPSU#R1F0H^MD.$MO&3^m{lW<?dVQgͯDw_xklɅ
ikaS 	bo 	xusl/D'L*e;V	؛EDqxc=
%tt~'dYA8B Gnx1c=ɫE'
LҁwB f_amA x;ys#c&X9l|F d	NxY[oH~ϯ8J_RDM7U@+* {G1wfm$MZ38tpܕpd4"KʠKoEQhB_چ:_P"ߦK&\R.XñauR
"XHP8̣@o-J`>X"IWIh7':$(N@9EA ERZ a#Vt:9t{TqxSYB9=(Iϛ G.	J̈́lRR1 fp9>csTJbWѨ=1GhÙ96b d*4ҒN$Bj1Y?Ȝ<ǈ |@mc&KA3ض<Bb,ωˌ3700xe-SiR|48<\ 
a%HPqE.0U)7ܲ4mjyXew7S\u(P
`y-x{+*vF2އ+]L<nXwpBhG<j#V IpxUt"R@^H㕐tNUXq1((c3N
1p"rD__k9!AM+jڻ&?鍦Pߋl>Bڳ )+(5%jȂҎa:B/Ų`Cw+!BcY|K!U(Fzh!dV{$8Am61	lX2LYr.ȩtFJe=ͱQ`Elj!B"-WI*$NfI:SSe;!kh+HFZMrRUUu8j D~z}TNG#*rVb#:Agȴ/m%$_%kzȎ%:1JoRS}ή=9U gxv,> 1*D	u
spݴwn1
*dU[=hFQg!5=jg&*9и7BeH&׷M8:eE\T4q[gO:e ao;,x5A%3u_KS^-b[ꞿbzcmLv)gc;Y|F!rZڢ6^+Eg0mUXnӵp	/
Wyy"k?zQg9^c|uM2HryeTKrJr6+{YbG:R8VaUO?ՆCZA[̊[fVz\Oٿlu}	qd?SƱ͈uYg34d0ަz&FrHQdt#.0/mBϒy^B0s\L~{)3Wӹ}G>sFR4SyhԼ99>}<ƺ(6tP~i:vOtPͫHTw7E:h;Etjbxc
vI׹:[L~xq}1n\ɸ_*qv2LIyU([Y [:xOkF@͂̌
EX'1+$&edd+)Od4	~CYX]RJ&b[7V(5=$(5eV9KK2J`[q:g%*M(i2y Ӝ+MɜΣVb:e
srKS2s
n]`7H#LCp<'	EPBsnۆr8{ĭUJo@ ťxۧ]c#c&̳6'20Nc4ylތ@l!;8&2Es7g1NQ,i7y>?s|7oெ^f N"txۧWc#c&̳6'20NcͲ 	Qxۧ1Ay#c&̳6'2u0nf9Ũlm=z:_NYdW۞jy%O>qCd}	s^,kȠ)jŞ. wؤ.lB"LӸRKJ^t<>o)=eìSV<{znw/7V;de+L ,Rׁ}i϶u@|5sV[/VB3R}'Oq~a9x`rςgEK=r)GwxAbQbBn~iqkYj^[fNIj$[EdB""iqDq<-Ve&7.4ȹL=$Km&%ŻN/.16bs  Q9xۧ1Qy#c&̳6'2u0nf9Ũlm=z:_NYdW۞jy%O>qCd}	s^,kȠ)jŞ. wؤ.lB"LӸRKJ^t<>o)=eìSV<{znw/7V;de+L ,Rׁ}i϶u@|5sV[/VB3R}'Oq~a9x`rςgEK=r)GwxAbQbBn~iqkYj^[fNIj$[EdB""iqDq<-˞MAtBS~C"4lb^bzjQ0Omn#.p{V fPxۧOc#c&̳6'2u0nf igsxۧ1OmC(E}aC{ .M琰0/ހn\O;lRPhF㴓KAK((O.xjJ/￵H]^rfzx"޽'AvV<AX:-N'BfgA<aT#qEޖ7>o;N/̵?)hd2~ZX_ZZW▙SZ-`sP&-3,S5IH<8 @q<-,[,[ɿep,RZ%&v(`ztBtѯ$z QFxJQɿưED?_;	iUAEi36sT,BhAߦh{/MqԚ kw}m1?3yOV{R)H|&ubQ66L*ej0i:$u[Ld'DCd\4U**5 O[Fخ6{yMjIY3U:üKE*`#〷bg0x&[0`+4AmRP6H'ք2F"^A)rǟՄ@}1̒MVc`1<ikE
=>C_R?Gn~ 1bc7
fp.EϲYՁ,%_s/[,Eӿ,OyR8$So5;sx۫qUkC&fffFF,Փmb9(q}ѦsО[{.\< ԅV
l(}Mwۃ#ARRKJo}ao^k둳+.̚Cw'vV.\4ٞ}\ҽzTׅ\R݅p}\q@獯S=,
P\QX_ZZW▙SZ 
>lFrzN)DGex(
GAp88Yn<~gt&=x/
;lz]hOaZV OI#xܧgrf_ d_ #'xSRϲY%ir$l><<S83E[%lYxSUϲY wgxU}C#>&QVмԢbDҼ<"pf^BniNIfn~JbBvjBjYj^I-\R2RӚ_Z
|c.i:[oe!hob<Ak3;#aW&g b/?@3 PWlxѬisS  m6x~P}u9tS+RRJ's.<Si1vlAokg /!vxJpC#o_bIfYo~JiNF&QV"Ĝl"T̼oN^" Mx{%xVpCrfZ^JjJX&'0Ymϸٟe" 51x;+Hp'{R~~^fkI, NllPx;+_p"f}y, xxeJ@U)$"K$
DhiF#t!hv Rz>۠U0]C}4>ϒ<ˬn)\ K A8,hmXj|Qe$a40:5x-$a\seE,v(T[֪4T7}l^P ]i(Ӯ.9^+I^#,%+{{jS^ߋ0BM*[˔\||VqA$x[˽{KfǢPOO2 do x aaM*UdU4[050`	;
*x aaMuU=j :Rdu1	
'x1 aa;<Nk؂{qH0O1b<xGw@8Sˀd?x1 aaȕ]ߩ_u.0B+OВ{F@`CV%xR j0b*eg委&(Y)(+ T%概D=ӋKRB}SRKSKKRR\Rs+k!P:Ԓ̼̼te!@Bļgd@Rh瘓RWW
bb!x;|y2FļԼlϼ|%.  _jNx;|i#W, Txҏ/LNLHLIM [E_xMO0liWPJY!DDO!ʠ@hd9Yke#BM)(Z\X|!9	D1Pzqbv܁u5	^@](B+nSS"цͣj¿XAoiʃ, H׻]xuTnI}h/	O6NތZ"E`%x d	L[Z!%@8q.R(J̝m%S~iX,wU:tbxLN~쯶ˇtm_Y/&B^ԯ=zGiuߘ,9pbGʷGQ΍VtF	~G3֌;A<5y93Iut:3L7+׮ϤLG:@g]4D?x'k6-:;l
dٓ=ڳJN:9݀CI-{$x-7 clZwdr00pۂhU1b8!Ac$L
䉸@(!eʩb8ezHL'~K	%t7mnIU]%swq@E-_KR,⸍E	I--sLf8fΩMjpt֩iťk&=7h_7	m]tO׃5P[p'kA9컏w-!!s.!0Zp{4]u厊#9Y,9r!04qCա3+~fp&9=oGQm!h藀+t۞=ow'l9:25ĩYG7",j*Bs[t@k[ruV:^X;tsڂ{QRlH:gYx6NDxÔ⨣v:$Қ7:f7Yu% !1ց]CA+'PY"VRUA4V}GI=o6x=y
(xQKP"ԏۢftGc̙˥-CYdmJI"%)RHkZ/d.]~?SkO9)S|X^e[F댂!j܋ͬ]<<ܨZ[@M*Ӛ#Z]-7` TAs* [-u+tPLh0ڬ'R{Z'7 \>FP>I5ω!od<8]ۯ1Eqzʂ V9ɻ()HӰi^ }7h;ooWO{Cvʦ,=#Q45xINaDAMK1SH1NFݽ2s׎C'~QXS!o!0IJiNVrKǩܟ-y7x0 1.2.环境：V3.终端指令<dux{%Phbf>̜ɋф6_bb=
dk}!.{:b§ۗ>mݮ1ه/iӳ^үbMk{ۋky:YǴOv>Z|g j0	<&{f=ٳiR,s 1u5x{(Vl?}-X2sR'L,Ȍ,Olĥ`tҧ۟|ʊg=Ov/zyų{fbzq4&esviRIQx6}i@۞^tT:ݼrg6`Wxo]??OwMy>"QdϬS?dG R@7q	r^ENqꂄlޜgS7<]bgpAUT@Uף(C2x:6\Ef	٧z!z'7b=l۞XcڋּҜ4o^H<۴!@=\ 88]x1cDOEmG? zK2ҝKJ\|]\=C]'n)LJIKKəxa匲3a !Ox-K
0g-x֕7+ !Yd&/3ҳЩWj*vhYƨYdדa4#+%5\ind]xs $dxs` $OxWoEȻႂz0Z*viZc{zgc!n^Z(RP%$H/Ъ5qx3^;8͏{{{|;XR%nh$,]B6YUˮ¢DyVWG16	8ET`8dr}J<E	Ⴒ8(e>#I)@]Dv|IDC9C|He_o$Q -1DcFuK>})Ri8:XuS(k۬ X/Dg1Pj{px|"q>!x-"r9;THN۱<DVR."D>*7k"^km4fmժMDVk.<ܵ""@	ى kEuzLn,".A=Mx堈0 R[f
H&2.	A Np"KS&T:E<1
%Ʉwh;Vs`(Xi"WP*)*zZihgA@|kueTQ\q
Wb3^oVλ2z-U&N[{! $@uSApg1gg`Aqί8_yf<J2BVJ:,fUoj]T
.H	ftCO#,K2%0%'iN"NCOmm0%4˗uJa2L(&*"I˾N+M4Dж^4r:Ŵ̙9$Ù2h{c=J>J:g0gXJ6NZ=:AטnM{NMtr9Mz~̙L/(NW:C"ohNyf? s՝`6Wdo*à.Y623r;ecsT-נab]4pJlju_cݭUdٶX[?!b \V3A2nMA:t3jCL'|-&7uqL*O:_g_=W?ܙ={_|?<ϵVY)K_̒/ΰoRw5yyV7y&O/pouw_}io~mhqD>ދ*%HU4;+YSۺP³-য়_~o7Ϣ>QF:h=b1B>5ޛjxoZ߅Q>Y:.Wx*V~ɗ%&ne_ [rxx*Ivi7n(?$~sfvB<ǘbt%pp>[uONlg2y/?<; H!\]x$Lffo6}< :.yx$*&w,'fSgpuVĦ3	l{CJ'rNe+>97Lˣ7ًdVz2NQ'9?''5$>-3'OKb (Z xk_.yss77l'rs  Xf"xkoߐ9&&'qn.g\  
\Nx[.Fd8:{(*'&gl`eE[@}A9"Yd6_e sx[.ͯ\
2J4ix?Ɏ Hisq&v.  `<xcr3L?1rq%榆T(*DO~,*å
&0MώId^V,IgL<uU}R\%+%]]-`RbRRX+J-,,JME33Shʕ Y@" '%5-4IaOsR,PUFjNKn:JS@vnAbQqj*@qp v#;
f|̵\ q2qxcB_2ay R'&- xej@ƉP\N^Kb#4PZIK]eXV!yK):Rh^|~ڵZ.\;(*I"sdP}"J43ЏNat6zsJ0 &vH1*0W> Qi.3׊α9}Oeij$!9#,pA"Ls4)rc% f]'3nYkpR7jwOfA8q˅QkPxm
XA@fJ
XzF6; })B6oy<Jtqˋ5\zYL_ˀn@n}Mbx!#D#Բ!;TAjubrfIzlrG뎾?iZXnq܆iTNd¨Y寛֟ExsBx|^bnj|IeAj|qjB4Le/ᚸUkc^tiE%:\#u62.b˂@5J {tuAꂹ:JJeRK3RS!Ehɩ@ɒ|T/	HLngVGUS rKn:Jp%:=ZXTZJ2pz5 !L_q?7O 9̊ kx[woj&\T܂l܂0g* ixk?"!yss hAQf^FI~~N|^bn&La&k:%:
%yz٩EҒҒɆ|6ab-2#lD^YbNi<e}>ٽɎOv>m|Vˋsy{Ƌu@]`n_uy@L'sZ'秤tuK2&ddb//~6o\Vy) Pr/XrUA@x ʡf泽7i9[O#x;"RvC8:Ļy**'&ħenNaZ_?3:m8Y@j')H礖hd嗖la;a$dLnd$0O[7i﹭&sY¥̝ȱ`"g& xMQxX]oE}܇.`$jdKvBJ{giֻ츎UhK*ZZAi%BVBPZʯ_pgvi'D?ٙq̽gfseĺ1VZz}	umZ
rc-1˶3f-ONPB..ָX.	COP]gJ\j[zAޟ߆c{x,K uAMv8Q`b(4~px2v1>N\F*`Uʦg˫ .I\12Xjgx(M<B6Cq[1ʁrm0#E.g31tЅ-QGv	blO57fժ5mlfc^o6$5ΠJ	
Ґm	 
ܸ6!1 rҥº`9!l@].!Ic.GRRs9Hh3l7ob`"Gr:1/ƵXۢ &רeؚ	T.Vrb]!nQG Lv?ezxOjf4[CUtzU$V*/+J9Ct1jTCfST#$ȸjAGA+k*`Pr-xABA#&+Bf.Af&ݒ١KXŘ1ݬ-w>wxKyMQLy6>WhREBG'3s(VǼnkL6j3x<xA+@PDy$=#?O>#!![GCCb"'jer:-XPYfGic*Je{.@î/ɲLXa/z/=}1=.{<;{FkGn6zGw6O>O]F0H@׸j↭yw{?Oz>{4ytwrg{ݟ~dzw=ۏ?7RGWW Ia	0;P
IMVUb)V]p-Dvy04UU?}f-f6q~,
b6fډˁSJxMTbRݟL=L8ڦIơUFwIARJHyP]Γ̘9Dx)4ۑ ̯uhvW%VXV{R8u/2ښi9=0.^RT(@>mdUU4]e>;*Q*C.[0(%jtrkwW%]U1BVLtPXٙW*6fb$+$ގնVom~DDߏ?n{m($fX;iZ[[[C,0/w`襀@/1i¬epa5^爢s2\irǬ6qAL#n pjlx]}9&^ҒҒĒ
*?1@ݼ#V)Fa!M. Ȭ[7edILKS@$_\R49UPAIH	HFSs3`͓x&
B-$	 &JxۮMc$˘s
d$楧Ɨħ$$Nq/.)z>zq) HMLI-*VU,. i6N,+M,N/ϋ/ILITAu% 5Q$6#mBD+**h)"D1TQ!5'575D!3OY}^¦C3bv&8d76Nd\k [~dxۦqFcw~RV|jNjnj^f6=dlWsus z$xXmo_>*mBYF(a1E8Zޞ(mM;qAFQ Q_:ψ!3v3NA۝y[xa9r%4'i_vx2@~DBBrZz	G`|}I"9w܋<QF.}RjdSFo@шIDJ 3S#S1sREy359}pI
)!M%a	Mc$yɎ(A#0*xS |'U#[ YH,/z=/Pz\cJY_jl,j$YFU { 	VApA0'9L5ˤ`\e sY 
2 <yyQo@ǵ+nkkWmm7~iB}~i.7ȫ5B*	=HF25(BDZ0YJCb!MIS;$2fE`P̺LRpz3<@vkJ ,LZw	Ǭ(&d?mypOB1xXOZFԼ邙~GjdmkzHku@֏xhU Dֈ@`K2mZ e>iIQU`0#X]!VS	Lc	~S$z82y1&+(Ph𣷏{>|׻JγlQ)@6MF[\QԿU}Jcm?{Shj-)vF聤ITУ(S{qꚂ{jF eۣj %F*[p)eT5S]q;,]0Z ֦ҷ>j!PvTܛRR oF}wvSdNϲS["ygFP&+ .vF	5ui	֏TdWzSD-;cꆂX=ܞƥ@t.Դ̞(ROS2^ՙok3`awIDo5j1XUf:=<Tϲؒfaߝ`2na&=ጔ	m̫ig:3)t;TX'n }޼>d̀ Hā&QNd7Ƴ1.hv؁sB/2]FO`#uZozAJF5xA_S-,fn/ݱI)	>]牄ð!!7Y2[5t&ݧLZnZBRgپsPu$_&#?Y@KU] PiBޝS	>Z2ͥͭaaPХԻ^=SzX?{͝JC4~/$pKY_]*#4T2JTpp߷8=<ӷૣ7_9}xO|/*a ̺?<S&;o8zz['<[$^Z3PYt=tE?u?sO?wO/)u`]x,^Y젴&hfȑqju^ezb^˂}hJx+P|y GZ#%a̛䶿+!%^9$Nyw0q̰ZQ*xkV)۪MZ̆1(\Hф0{QM1wdpYn3
e+נG鯞{b# P-DgΟ|>:R8T	R}PH] FL"l*l֣'h!VL0,e̅WC(:_9,nkg:poo.Ӹ}g08DhM}{7?~vc;\+v4j'-Q((}V9EƋ(M+G'j; ,dg1)<-TÏ߇	9~~ce  s|jqN3mLG
nQ ~ +G͌B8k4j*4賗i&vZES\&"%9Sҏg"RBCбRm)RFWa>`AW7ʗX-#ZVj3BY}Al;jG1`	#U I0~,KrY`2羌UKA*lP:~YǆZ}VW.<U&I+UL˴';}FZ}壚bsp2xcA٭ 5%5M/9#59B'$d&edT*d(`rRs'2,,eHԼļ͏xEtRKR33msS7
V2+ ̚44Cr2Kl?y!Qz .dQDsRS2
չ@奖d)M)AF/%$[a5NG!j~k*J-.)Vh`Z9\l# 2t%x}TϋE7e1
Jn{5*.d/C.m]Sβ	QCO\dĪͮ}z{/_w3yk"2ܬԖb$N9Ի6_۬YmECQ$eQ[\M4{>eXwثp_϶5׸ذ,0| Xk.ak8|ݔfm )FaH ;84Ca+q0{af٢|۹`($vڻClzEBpNBKY"NUJS&l$o6|!BC}XVU|%}ƷJV^hJ8uᜩ+S͆ӯBw~~3Ox
3.,jW}
XEչs#_e5",YW»GB;$MSUK9ʨ0:x|΃/pǿ Oׯ>7޿{c|VyO~KŔH$ڢfH#S>fʪjκ󒘑Mק/O;O-{BM& ?OSF<1{+e˔nEJGkQn96 YOw>絝21W,r)@MU `,VK#OrnTE>#cf"鷳$dęXoDUX):t:zґ:,Y6pjJ(|atyL<qzB$SOhMLVL),vHjW\\$ẙDc/~wEb6ЋkDjB}4tцئv[NS3UU	?EFLt)S7˭Z]%xSmKQeuuJ(kb3c˖!BJ|ݻ:p.ip)T}p(4~I}~]f=<gw:%"sx,.щ1H	)$01}I(n/ߓjNguo.dAi^LAtRrKXm@o.,j/>39@,GyR 7HJ?k`7.]@u.&{u'%6>x1%0EF$]sԜm1  
Cڕ0(FmoUJm(@.W_JV,	;?}&aN8?sa+%
ߖ<i%l}=Y?;XVU; TCK567Z(]D!VM#5Ht(rUO}s_[ז6__6em1c<J L^'m.JR P"gaurO8B0q:v܈b/ǩLV(aY$Zc4No(Ĭ)GơA4
(N(7zm@Z{{6i*LA%^)̔Cl[KؒxKFL[y"I	|mB*p$mb:ϨאfB<6tt8.GXdC-d&V>.j\yMfAO{6!= Ź\N%xTkPevu0z$'X[e[&
'A6qn"/':0sMb'x!||7$?A[kQS4d롋|mךRMod.i7qͱrT=
ˆwW#C&XRSy䞠*&
	dN2R45wן<{}w΋׏Jqjkobİҵ+K-rEyj=qڒ$1nt	B&4#gLPK+pp82G>[}G:C]Dҷf[bSp>o(*09&tٔ獝0ɁÛӉ*GFm n,;x	C	$gNڄHdgLeX@&%yѦvl*('*70>46&޿~<PMCU(92gv={KA9E&^&)fs:njcZku)	Cy66Q(DP޳NEH$C8F`{
1(eЄwĺBOP[t3Sgcfm`$[Xx{W~CyLB,i
pj2rM~)q.nL<gMabKI*1P*RR X|NfqBt,<AE&Ԝ|M0x"Ai^:TMU&"xxkQa6d]NYYXtt7kp3էħe$dhT@xV
@bZ^,n}:gPٴ'=]}۟OˀBre%甦@TUgyyp[t&7pKfX@Z~BNf^*4$qtfh$&jMU+J-)-C6فGnr&d^ze˚͛bY_';mZlNgf^IjQd_.~OϓOg=[lk7i
hK^qNfqIA^qANfF~}'ũBq~~	,󡊳34a&PNA|r'"~niqU<K73 8>	x+]a,N̒85yҊ`	N͏8YA
y)i9%:
E`-@1^>@BNf^dG~7T&oR"
Rҩ_	1`8 6/x1K1iR7St	QN:hE)R\xk$\RJ"/"Qfxy}u߻/-+Y }jQ=f 2ޚSL &SEU@#3&JQ(W4@U1unf;@C&"ѼV\&0)r@A7^	[%||xNrjM&{rbEܦparג2Pܦ 0jROcGi88OvZUhtfTҸ/@oOw^xۮFaC>IQjqiN^bAf|qf^rA9$ z)x{ [~&cdm.Ơ͉\@$ ȥ2YG(lͳ $c^Im|;3qHx{ D~C7S|hn5 Vn=O0 Evx-?MvW()dD;dxZq)((LdWhU\K#իk5r2Rkus^Z~QnbFX^N~rbIf~P#s~NinfAnAFnL|Vq~d5'ҊlR4]J*J'㫧W]99i9 y%St <@/uJTj<	`MӞ+ŕZ1Z(Gd%E 9Asx&EfC	ORr,`aNI[49 Cx&{KrCIL76/`^üy-&;8U&?̝ȕ9Y[`9Mye$dhZq) AyfIB~Aj~qQ~r~QgnA~rFjr~JbI^Vq~Bb2j :_Z\S`;9CvrWQjIiQHdNɋyLs C1x{"L~{.7ssd o(Tx{"[fC9*y2 >z@x{&);-3'5 $Cj_L w	@x-Wf{.7ss0 qNxUoF~篘KN>T:jj\OBk-K82\~377"W3/^
@\s(tt})^8p{s=/XH υGz~$1B@9q7T9n9p~Y@ "G
sx_4pA4,LP}	bH|nBȝff-i뒰kg,=VgIgzpM+"<_
XF|#	+A*`B:-פtRZ]b>b.[Xm/vu)ƧgxzZW[<r_=6kzj}Tf'ȈU㶈	<%|A%P<7̉^HQrteY)R;((>DG*Ԁo2ʴӇC
P>K)Bfl܎'\Zϔ`_ga$c:T$Di S2 2ל)؀gnISDwдLI 3`<թy*QOkxxݙ'XK-EP#3x1j{"ls<K1C3N:il.+<IXEE(F;[db,8bc{UMZa0KX۷W$&kv$L+x{2Vra<4?nL,U{n6ʠ{s7R'B\_W	&	!紋|Cޮ<.`es/
[vwG7Ý7ʨa!38g(BXcYuP{DP?@-.Wۉ$_(sr =hע`4B<>x=oǕED)J]?W%*&HE0Tc"W&.,ܻ:h\.4A+qi}r)R[C6f{o׼\/6\o^5{ѶN-z[z@[ۑQl3gN?g={qEU Tl,G
X^贍v#vjnMx	B3y 3Lߡ=g{GF/t746ݎc8W[N72\f6;A$..h{vT8َٹ݊MV`kæ-j+kY@\:NÞT7c~`["P6B3ڵna(A,> lϘ|uV>_o^X4_m4+zmXm+f}u~-Օ+eRO $]$C[s1Mxîr7[L:"3C@u7#z"%@f<, ~~/ oao-J;FQ\85lB?<@^i;+_ަ_6@keckA/@h]EBY$?thvqHRm7~[bnT@m"Z^9;00ޝ۱a0+x z{V'Ǵ"{
z 9c՘rXmVͲѴf-mua\ {-MBQ,}++3DEfJa$Dͳ\wFbu+n-MbbTЬ]\﬛4
-|kx@rWM+s.+WJ`KJU"G#G }a) }cˉS
#;,X AAg;02c,(*t	90kDz	6ɱOW~̳JG88u.P[=hvA9;:{q~ܿoۘJ8jou gϋ<Fݹ`e8PSxфP\I*!M@A ΆxԈlاix PӝJ
ϼvk3hcGEރDRHa	56<6Il^KfOtL0nwhMvo~wW&j-Z	gE,mݤ\2fKہru""HdBbXg$Ρ4ي|>nQź`zl>]D$G&?>B_UbR5
]&(ad+h#p)KH.)VǿYXC30YHBB~&.ul٢@	6;TDo?tmږBe
5zgĒ	`ESO_N.DC3c;awȍ1],1JRX>{,R4gEI4ȩ3msX 1'ÎޔEQIkqDާԏ(FU&GewajhVBcڊmbu:U__N&b;'L~	O'[];wHez,BbƇ|_?g&A@@S^K+k$26%Tн	X혤[0 G"ܸG,)4L
v3.)T2H$S_8C٥"Q)GԲ=7F8B;Yz;fo%u<ӻ`~8#|d;MTɷ2qbC<tĲ)WbH*9$i+-h~"T5xCT+|¼x3FRStRAOV`)ya⧌0s,Q;j$SgM'+*NtM4j9=nXxZt<c{ϊ`̏ËseXAt}@Z;fdAB	!2!> ']jN0		sUl$e+z-[]Ό[3j[6"<Gne,s80S8Y(E=-+*uh5W.WXwPj6y|^[n@*bb \j\ˆGIW!l`wW/V)(UaeQ_^,A<嵅3sB/זLsXΩ.6S]pM+pN)N|xU{}g7WZAr%'IݘHRh}S5bc sa @P 7 uTC~}CVp8W\,Oo`@X&TǼnSg٩ѕWV"
⟸㠕a/a/؂d+p΍/'{a	LdU@D)1*J9YPs|@e/t)IN@{||O|ej<	L@{eU
Iaū<HQo!m%7H8*E%&1G|34r$򕺆"V0$
&֓auLgr(9#34 acbbi[;hv{Php45*m;c7jQVPQEYb2F"da=$2ZqDYabFk<X{ejl+gkжZɃ2ҏA<5Y[5k>v4RyWj{I"Q`xajl Qj?s/V-80ecII'Ɉ2mك&ƪѫ>)<8%%#O3̛3{ts:a>/^}O\?oa{ q<+V'^$	^ QY'(S>utD=%
N#
SNrU'IVA,8x?"ps# Py|"9cc;].IϤȞԒ"d8O9%j)ንhtFHG,zi4H,q|bSҢ*GGI =;cP˭	t$&G3S%F,|9fz[L481:-Чo?`bS8 9cF/dx:KjBo)3y-X?^{<ǿÛO>EDX?
(Ŏ7Kq|xw= wD`wM2WALգRb%.=j2EI);,;%@/oW.Q[tFa~'-|WeMM:*DaR*`xrV7a+nYˌ4KjLqЭ,@*| Jd/A^7	1=!FDp10vQ !>#*Rԣ<M2YvXW2z+9G⡒'x0"MXf=IK	4ITM,js<JcbM_pIY+m1U1xaxi̽WH-Ir-naA:$Qmz}Eښa:vRb#V?	iUndZuJaoU+Yy2;@>l"f? WVQZ2}c>x\MW4!n&H=P~' 6>	?LO)`p3qCZqiT[勵/V T_{)f,OsA*
-!	.oY̻w/\ܻɪ,YbB'`U6I2$1{[;xc:A$IW*	f
ѣfZ~/"ap+Zoͼ #rq/\W+=tFHqbEahҵp52	@-,&x~UESehbYx,g7fcޏ
Oi`h	>>w\W7x;Fw_2kdЎW(c#5:c{|n&JDx+=S+v%eclшLК\ڡ>Eh)lz|fL0bo(%8Z,\d7~7QnY?/zfv%=l<}"1^/AoӃ  1YW<қ'@h,^Y9P?	VkC@Yʴ_"
yj>Jă%U̕Elt)NESvNqu?JaExcLH$Rl~fЯ+̗A5=ZbE*M y z!˔$%~&];dSd4"~(_rJ	(ApOO5N h{L'uf	Z\!Ha)0d^Cyu2zwCРx[ 	K[5/8pI׋3MzZ!/Jx슶ӆPgm^P8a7%k# w_%ٰCuc,RZ{
/7O&
·y.b T	0.!l
 xkx2:f1ԼĢ׼Ĝu̖	jd\\C}B]\@"&O~̹9Ő[]]!3MA#'5OcL	F[3)lxXoLeO`0V^1@nZ0k{ۮlL?T4Y,ds	ͰOjfL}%;vH]	y~{t.n~ʇ"Ed1\Kڙ<HbQ9P&lBhP'vI.fT1۰Otrg8aܯsF9ax</0A1`5akJ+!ي^qH<Y?@HJ~5+sb2+J/ćל*7͏_X$."DQfؤ̤ͨtb$LmNG?MG"sQ(Pq:ш5i[ao=NH `6H䁟E (/)x¼Kd|WZ'i0GUõ}0RfVU%,N<@]/AH}Uax=['2Z\sE9L0RbM18us<q|:i53cF`1<X-7,pgg;j'!\_7W&j\bv==^m>
u{k9f-yMu~xOe%+ ӱ6uUB6ڼSLJ_3$-i};y:6k=c<6mTEc~*U)it+Z{5VV5­*/Lחe5t8uEEN
K"f~{CV"XSkk5"IH\ۧfOLc2	_S '$i'ew6|8&|1D7?NSEPeٔ㔈Qz&yĆHDϺ<=İF	r4r0a)rI`C (*(,:J#<I'SAбV6V}ONw9ܮU݆5!K
i(D.Vi4Ҕ+g'ʤs)Dz#6ßgյkpJrVY2M!Ml4-Շm]p1եY:N.ަ5 ^HĻܽ
'0^a>q,اca
h}&9}6I'k	t1Znд"EI`.?h.Zkmc̐ù#rK=T+8?;xARkm=
0`{j8Ѭf#([hJPXߣ6~-~Xa%}1_ލ2[gU!fc/@k~;Cc.Nx{z?w5q:tCސy7صF3ϑxݜf,Ǹ]Xܸc#v/BI|/JQr
aV>[Ja>΃{T	ɫK<74%R?+<>R\sۓ5\O$%VZaܴgh%Nxk:(j*v1cX1mv'E}S6x8uBpK<}oE
WT0"	=1K#̢"-ϳX*bGd>mt72߬FKhƈ`]U6
 72J6-M%Ӑj(OxNgs<Sx{e9y9%
y
yicx D<xVKlW8E	 _Ɍ3c&N']Fӱl3̸iUZ!R6(P;f.*Xn*ѲuU3Ό:	xͼyw}j[GK(eECWTY۲
knކᄜIJ9هW:|h2\TY9Uck(UfKCO^LX4SZ5/
Pڀg\"5MIp +ZFq_yđX̹䧓/uXV)l	A09ޱn!$YCVxebvC=UsrQNL\Lfl'v,y/t	RQoN@$.](Qc&ݦwK\.0f=a^H$Lo뎍9 )hq<lٻ0c"}C01_bedV"*o:_9xډ&`'P֓1޽#$$ݓEchC~@HaCVrk섛cKl/Bb
g=Hx*7kݽ+8xL÷@\LBƮP}o_B`n{ x.xpÝvsp1aFꄳmG#'8#dmN'Đ*Mq'[ba;}cƣtҟ]i}e|؜Ķ}ˉ1^0P$s*I9#
mO'ػ==
JT+YeMi?;:7QSjkf/fkf֪([>MK.W>lVNI*6}T2$%c*c iXL916fbKtY:V rkx; 3<?tem in result_json3bA5B5xMlGǵN 
$<iH_?q>'N|Cica=k	9PU%OH\7QqD="	Z]gvFL|xoͼw7<oGSdECӪL챬¢6u/!$+Ѩ(S~4|Ϗ(ê*5*jǋ~?GUyM%-D^,VP$HcGSC|(!ڶ~xܱWH~/sb<yf)\׶aZbؖ4]vYDdI"(($`K}D^46vg/wtb|t25nD2 (B^CH$|P6wzyɮ ~i9Qf 4[Ջs*Wsܴ,γl4;G[7@%`Ӱ_K6V.yC<ϻp`/\4v~	9KT]]ƲT}Y,w4yf=6 փڽuYozO +:Φ{ mtDDgA9R֬G݄g kjUo9eqÔ",^$/o'ڕ~4vyhC@ 5S.q;Y7}o3ZzOM$	P[Y5-q9FDE+ϳ5ԇx~HE`uBۡ&s,bgԣfF<7Zffr͗[9w!Q慂Տd^_0
ٹo9-xձw{J{j.sKP-G[[կU93ve5Y&V ɰhu8bT{<˖WmyίexYKlWC'qL>!v;qRɇh&Pؓ0#*(
@uTDb*Mj
D!V]vXTT*	tGCB{c=gCj2˞λ}_QY1(/$Ix	ACNvrnFtfap^ƞ{X>7*]8=! E|nv _C:W8=u=9@cl/
3AG\<7;l=;69s|ř=<ddvdҸM._ɝIE0!E1x ?*	}Mi"$1Ȁ/w! ɅC
1I	`xp:j,ZSa$E^"҃ۚat3ߦ̶Q5)e*hӥdi0Vbgr#Xϰ@SBf=uLjল%:wo+YZ:n玸X%EpHntzS(	3s0?[,"̝
k׬8ʊr*{,ʡ,rWMGs*حgw",gVT]S
t
6w䯜qěӜ	MZiTCo+ڽyYLt}wN'vN?USJ+tIg2]_9+UPG4s~r+nL̞C`l\%qGnLȯ vpR\nt.N5fEmhσUҎLJr6
t`k)grG1ݸ4("Wu
P'Z4Қ6}~8}$@tn(f\X/VAƋ{d/R{I^$c͝ERabR,BM P_)Dv5z,ExC Sjpr!D`N1StmҠ)2TģѦBrdԄ?aӶҤVH%cMlkl:x,DzcI:<~e\RICb11Jxd&*VSHTA~T"0#ƅg	*<0gٝ*Ծe*ru\Gmj//Uv	<A>4XzJ[/MTLmvU/B2MD'HO0x#r0ՔJ#.vT0 aٻ?k+ L*k3TF#LidOm6-WN)[oLGޣXdZ7(KنiF^Sξ׻{ݷ9T"±O`C`WH4ݵkaIRbv	I )';KlOOP6J`,f<jBLO/"'
GIؒ*|A!PQ	um/JmǴH5ݒw	ILv7aɻ@2'אchGx;ailY/XԱR8ZpNt&݉%D1;Le:ˠ흆	$Ɣ!P`$Y-;>-ڊjy\+\"0XEAw!?T8U[)!xʸqnvĂ̼T+3/-?Z<}1wIbz|nf1P }re K<]|d;^J"y%
y@ɩ&Kihf$CI(*%N3Ԙc(9H,ud)CP8|z-l">!>N>:
Os\-Ҽ<- +&3R[\ZT_^_^^bn*V5!A!U"EȁXs"`s?Pg7H*k7Z?fTKIQ,IEjj^injQbIFQjqiNI|Vq~d	FlMA	ң`kNSAWpr,H1r
\c
 -X֎6xxq_\0SRON,Ȍ/H,*N-/.JO/J-OHM֟EQ}2'b1ob̸YÏqrɛX2sR'wYsyiOarq+K)M\,.JQEr7)VLS(ILWUqtVprURτ&'rl0d9	a'@Ueob	jMn0e,:9ReeDd\ Iz x¸q_&܂ɿ&(pq%ħe**$dd%jă%5'2s&&h?+?3O$ҜbԢxW/8?OISs>;U\YXbˬ'/yG3=_OUQN( 99u?sLV'39DCn.B\
@^X_2y2d~!CT&[d*h+jN|QCx";~XZYyvRB!9?7XZP t۬dlo0#FE'{YM*^	 "x¸qCf6F⒢]!l1PqzFhǂ̠ҜϼXɂ|ʛd&OV=M|	m0Kh=vwo&2	ń&laT+H-,.ϋ/IL/*I-KI,ITU5+1Ul緔fA"|I	bq֠ :WkcfbV<!8YJhn.[\Iֿ0c~1 H*5x[xb f2,Ywldd\f?;v(oZv(is&ρD-9Ā,@O{1WJj8e)ś?3BrNIMp +A^dr`PAF|K18-DRr24Dt	PW̛	ɢF@/Rb[@jgJj+Tarn$M.2@^ (^M.$1=4'X/3/%B89@SVAprt[r:HFkT	$_A{* X$D&'pkMPAV;gz%d'[y䈂b.(<_|2-G k jl Za!1Mg&ţ)Q7
ΛkAV`Z;Z=/?%U]GA]oM" ٢Ҝhhuz,E?le2Xr30+H7O ,2DA
4<Ă̼hĢ\XMUe'L6ЮDcysakCM`	f0nd9,&XECk|Mv:u':A卭6(6.P}ƻĻL"p xĸqɗYE'HH}aB9
K2c55'/ TUiQpP=XT/)85/17U# 3>3/-?Z1Qkr26V[[: Z.1xYo_
)SigR@JR9KnO
8EON1 }sѤLM/:{'H|cvvfv>~38
Ooyg$6o'O8)rkk !{̱ԪŇ5 n/bC{C>a*=rCHpCQ5p1|N'"#eo1P6?wDl#H)@M>K@	p&Dۭf5@`sY>vBPtFh t9CB!wGyC]$G6:Ә% N aHw5{^x<>nl7=z<nvpO;7^00	{?Q~A32qp=N5Gc^8cF=P,:fA י:r$hJr¼xP>Q`QO	lF5p~:>(U"na臇X)JK1&4(oW}VI qo*KH].-Έ!xA~'Ͼ>H0"ww=[{zHx-	D!l[Ȩ
Qb+dB̣6Iy-k5N`z<OZ}rSS최b?tѣc[t?5~)2
7س1,-<W7Y}*\?ǿ:óϾSnDVܑ5dg!-Ŭ.2"3/
ۇ6ܞC~Of5(ͭnvlVnV6)0{AZn"'}ˏycΨ3RDv¸UaY@'?&o{,/a?P@YzRŖOz/z=6yU  f
US:&#)meYk4
wԥس1ȊFp}[ac]KJz|Z,׻]Eޚew8ZVY)XƦ?d{2
^,LUqi\RE<BtY6:QAirYƫʠ6XL  4)ϟ<Z:kVg ]YV:9:jtfOa˼+u%rWa[Zn_`sM7^IZݦyո.`<hJ]nR8n/̻Үcjw>twWǟU kWuu͏6Hz5}Ct݈R;s?+/!"\R8</o0AeAA~(W`6l7zlbKPbd+rݕZaS\shl%,odl]wCC4Z{[ԥ/E|xJſi/8AL`ZCtAS/c9e"].	f!1Y{$˗{auMN[О6 :ΩuL1]%`q nb2"UIL:Usbv 8ڒ'Z˧RYb~˲WnL,o\emYO#'f>{Cmp#̀ZЦ\i~IA`"Xh,Zd*<rJ'UJ)SwkbɗaڵBRI8?
AM^NSDM"[CЂM~0WaM/OkQ/]tpO[I5<ƑUso$}A?>H%еl/rEPw[*)[
>P~EP-97,^;	~P> Rx-zsOMrYfQYL?Gq-ڰoqd,-4].q9lYUx`uf4NԼ\*\
@:ٛM>3M! 3>3/-?Z=;3/E=VVA9?3O]!1/T/=DC=%5->4/9>/17U]
l2t-~-\ )E%eŉ@t%RrS5UTujNȹK	<PLR|	c}MѪ&ze9h6e@mQPW|ZL7@Bw fuqN6 |fnWrQx퓻oP}мjz&RS6Fnrrk۩̀ف?	$$$XXK`caDG4m"1֋Ͻs~smdlu]қFM0ز|t=h;dw'}L[ MrSG_,G2$tu̇o5 	a:YH7lT1t$
&58͡[hYםP˥ʒRyS3&-e]mkd-Mf76}t`6Qc36|LLO	b4T[3th:怡/>ksut&69s)myHYAZYRjMc+5W݉[DF6ݭV|WX"/1њHux6c_14d!aFt}/z[K2%JRVq,U'h#wo<_!D)MōC-([s]OOj:Xsp=>7۾P<EbeUkRjCsG.uRyx[WnI*MֳgrrC{óϼz*(
1УBg)=rld L!o]=.juq}p5xV]odlMҤN۱6/e-]t(dZђVi4%J4#E	Ԏ3ԋRBc	ؐHruWv=خى&҄ob;=xsIdO.bTni"LW0Rr	Tt
7T*hDӓ8Mq:9J<5F#LDY#Ndz^9O0Z|X~ށ=ٻ
]P8"gfS,~)FώlÎ-	)w
ooPOG]omĄvzK\JP:2<1LNҋV[j(T@	Ϲ)tW1f
F6Cv8h0(&p6L(2Ԙ;f+B"H)-V(,JQd4E.#8!{+_eXWmg=,z,	6e-bT[*e1G	A	
|#4#,&3aӧ%H>aݫUj/P-P%8<f<s,#H&3s~`vanj-ۧ&c+YNߤ 9uArGkr51"zߴwچaܤx$n{'	20L<g įVčHcMϋU3ȗ"^vYV2ۆq4X)Jy%ZeXu6E=,"X.ZwDP~%R[lw}@xr'ԔՕ2Qd%+DF]?S37#	7O7Tq5CSeUEHW:j/BU/tR( l]6eO~s_NWP]MW\ՈCfa4$ElcuR"<Wg&<3ẌC1*}f6v'|r%Wq&ݝ>5bnO[UF	Ϯ1Z@A De/RC=)?HNGS	58}eJKc"f`m3!Q%B+adXxwPvZ'	;{:{ǻ9x9N>!9#z$}$&eџ,k7ײ02M%7crEFF"9r
@<["8/E5k44ubut-c44'95y Kc䅢N#4hBNfqIcAfPjqiNg^Z~d{ mXCLx;(KyC):v+ԜԲԜԔҼҜ[TĒ"UusS5 (%3/NhGݨD*]X-M-TS28$j2KR'{iZM^!1f_-Ɂ|
73+p0qqM689rY  ^0x;(AfC+
/0O~ǥY{23 "	RlxDmC,^QjANbrB^bnfGu82rR''0f'(*$dgGc 3M&b|ݑH)N)MǮ9]	i9Ye7O\!s&F|ƌ0ƃ6{g pC$x[Rm&ע"ԲԜ2!z>ᓥ6c.>M~?LXO~ǖٕ>3 l%xV[o6~8M${X=x1.lw]t#6Q(*1l}琔-nbs#>閅	Y)z
!Qfq=koXI./._ےmk~/QF&Px)2̊C?g	;B(	$p?*aͶ hB܀sgItfex#7CiԢ.̴,=+c^l"fFJ/莆[2EY
m'aw2cPRs3n0ja6LsthqWF|10]LYԟga8;y??3Ld|='cp|\~)(n)ջ2y""dKKuϵp z-
*fR0ؕ}JBJL](rDZhyN^Rbʋ23CPh'ҽXYB`VRs93vE퐬8	|bH2(P:nm2&L/}> \	S1Q>7:uXp ݛNp^*y*pXnL.&gghECx.NH2v(P7MmRUề]ZAƊSfXݱrWRK]`_3)D_+^,2D#'+TZcQʑ8y؎
'ԛuW5mg1<X/\sjAͣ)˲0M%f]RH[42D6<ѴCbU:^QAKnb?<umR-޽aRVpu/nH6Q)Ai\HHf77T=t48d:YVNŧ]:ms4LeB8QY&ؔ1W*f
T%Gk"YT|CUc=x8L&oK#庺YEյL$ٚ?ߊBqX6SIבi^*z;6 n;j^dY򫮹]Pژ{!\ٶW2|G]gVlq4_)G-/j}eK*2gw1#ћ%5?|14&"4/J5폻{ʛA=Mrx}W{4pDדy4j؛)t:N4_X}w"}5*8
GNz]0!	c7AwfBb@2U~>jly{	
IWwZ;fdzx;F;DEP.\/_x:prű10XdzG|/LxUk$Eg3dfWt7iL!2Ջx0Njj'95aYP<
{3zt{X\=yK<{D~w:C=~~'|7	L'K\ǐ[6B[#A˷D93@|{jz?PG#BQuaF{W
І.'1`¥x0~uZ=mv)q c,@rmnaXc<	`nXp+Ƚ-ɗbHT!,lOa*k!RBj"=X
rdAK+KQ'Cj#+Dz8 ^l$u%J`6p7$dOa_{{!gGP\iΎ?'ɏGgs-$1}O:@eOMP8?~tw-E)o.W:j#[mflu?/`~('lh2=J$WYUF'FxA"e'3QDU_*5Dge>' 6v%[(Tfe3OD(	8mb]a=;k#)[2BxLQ`//rtżԧř@g/#̩;5L{8SWQEz쿾jܾ_ѷOowMmSgiP[N(J,tA6biꙴ_V!өl^uЗ7R"}y.o^lǰךN@)_4d>0b=<K3l*IҳOZ~wsBVv7cJch2(KSM{onl歰 (I$Q'8ǡp9$#ŊJFi]$0zyˮ	.6?q--y\m}yl'z9u/zugT;c7x#{VfC/LQ2(z*Wdg%甦Ƨe(&[Zn~h4CirP6 &s]`x;+Ffs&ע"ԲԜϙޱ#z>ze9ؕ7`e Px;+KffVN.ɲ\9I9
%\6Rek Múx\msוίhf\[[	9Q؞,Qp%TSͨ%&f
;ƀ8	!v6'N̻jF'}9Go
1s=sOvGQ`e59nh7Yոt,	J}炗ቨ^k#*B#&Չnk!XuZWhu( j,ANNhFAt$AWO4c<BH@&!z迲~Aڍ9$+=qD9ddxioSH읨W&g*#@n5N'_v1H=+DЎp)Ж	q#N{19&^htqxRT v06Tg
Of3ÀKSgMOMV+3t0>5y:[įWU'XD'WbH6n&"V1hߝXlAWk.ER(n`%f- fc	?`Epk	8;/:o^'TŸOJ2n-6Wލ;gd0Օ&f\wt43{k	c6tmqE$F\	Y+a܉b?^`$([iT[[ݵkWъjihpzجcF`-i,G<އnkPÌQ+)ՙC`wW˿Y?X.ZQҮz.wepQWܵէ?nEL*6h0nR~elv2>X|??=|ޗ.y3MC8J1lVt6|y?ꟿ{_o|#=jL)rObfg'jvSkM:,ۉ/tk(oN7+V(]ђC 2-:zMTZm˲QYڙ125`v' Y+(܈sծՏ5j	aB~s[߸77zhVXMTg+cZp,h5 \I8 #RY{HRZ}	esF+ZFy e8&ג5Ay4miP6<-j2JZ(P
_ta;k3O~lM]wSHQf-qVWܟcAE+2=Ņ!B=DhX"y!A1`zp]<e6J
Cv'ibvj܍urrFI}2b T?WkmeaҎs4l_^Z{rc/peYb?5$gApkaC?Qq8(><}П=go1gEb\-XCNUf9Z>qwa]|sޯ/n~w<sgZkWA&á]K|^BEzo	މ<,B.|YL Ar=wwpS;Eѻr&<0 UׂQc9H 3&2!6f]&Ѧݿxn#%<}{xz(bȘkآuXXq#L7TzH&ju$#o^_E:\57A7B9"ݹܻs}ۅ!5"H>ZCOyZh%wNsd嫌I`YX`fyf4 Ҫy}T'F'6_8T1i=wgbUY@!JWG53
	V!@1'XۀtXVsO;MZd aLk	 c7lPM_J,W7VJCz?Oh>-o|ƝdCO{?>g}@*}ƞHl)_!WW% VOizH܁9e-xz#6	Ee *QLUkӕOM1D`LLn#$<¸~#5̘b3\ꌢgɩLEJc)d9kN,-:.u?Ȥ,XƜaJV3QcGd7q5nu?t;pptˍLy7ǤrqȤ9DȞZyύrR`/OOժ3'k )㋃=i7mPYg}[ur|g+	n͹G * 7l1٥Cᡱi,fw[xnmD-	KCm$MEp$edٿ1(oē7[w$"z5)zؤX?ngbv3lbgKP	a%Wҙ7o֛9baHOv<bz#lBȩqL~C^ -n^b@Y=+/Tփ
gieFVe솚!eR2ݡ/ B2qf1YifF,iurlԴcd4;	:3_U;482:Gڹofp1z/tS5scX!Ff8XAڵ+ͩXFMxhN傒OOa֊dj|$KSGN..]:E$fT;?کGݨְIlP3ټ(Mo#S{v ׃tnyL:WYN"lP/ۋ@XwP'F6]H4S09+dl;ycư!%s[BT̘īvMӤLƭaN@毁WVHiy.^-NɀV\ rB6h`ªP(!Pg+ j"^Ñ
|b'欨O鿯"dqRHDtLnp_)DQh6(2lXkɦ[Yf}hj9,gLj7PW*1.;>E>OVl-CHy+|u}U\_+$\ ;7q|-
'Z '_=p|BՏ) ~pp<Z8_q=	޼qf/<y[6f/|PJ6>c&
se4qԎ%űf_@X4(3Jd_Lg!	ATAj.ݿLr+g40Nk+iYUݼ}:P&ӓۭ)_zw.E$alf1c
oJ,BOVpr@1v،.)噘IwV[IxPN֐0oK6N5:5za
0AR};f՝sy9fȉff+[bcs]sfUD;̳ݸ+$8˩;[[q ƯqRk/.v"::Q+EagƲ42P-1/ܞ\IIJBL#HIMkE?	QjW"O泮BgGr%XzT%vzw:BF顐!!GQ&eNl
;%#I@kJ}*aݲBҋ;؁f9?9C0vɊirbU]`UJvŊCƖg$˼ ˕YRh{Y(SŒ͒wC`(K>68\dYu+/.WxB!zFƝlA6x9i" *gA^RSc1VoOvI;zyj~`w$rUt-NN8^-5Gæ&STC	dK*ػ1w$1OJsdi)5h(FazQHQ%۞>i(z쨅撠lui;.4;?ʶgOsǞSV[۴m1F,,9l}ek_~Bܻ?z9sXN$<^^Ι/.4hCcg+mгlL)' ,;6->y!1$,w:2tp%	4ӫs].tO8E>ڼݻ"o_?ftkv"e6Q:@v޼ o-@«i9;~PEvWz'fאn,[.mʧy7OrvB5*`hUdG05/InTߍ0Rv*zNNxS (kKj
:Nz`lƗϭVL<dT 0H]qd"7_m!e6;~<=3}cuwd),(3qls&?%2,)t^܌go^Ad83lq+`}a;`pK興Zqo2j'tLcڥܙ_ނn*:&zAGGݷ"$qCD`Wg{oOxVC6}ݼZ<%h7rcp*eg}xljs~yG/((3/tΤP{d$5YhR&|Dc|e$Pd򇡊"?NgWAEa܅k(ݾSKC_msylvvZ+>2QT;oЖN	r"W%>%^g39n]S- q@N )GmCOF\K\1āT8ʷ\G@R|G	49XUdOz2Oxi+-fnWwyREdgeRZJu<Q$wvM\Iin3)~<z5$0a݊R>%"둭985;61}lu:YQj@5qӯtXt%R(K;')=Z*D/ #W
FPU_K~r)y	~wfҶU3_/ՂD8?RH#jbLH?o2T僶RwOIоdm']/WHNū{pY0PfPZԐǓkΞɓ廓r9v턞+|myaF,EFZ=x*L>w.C],>,%=WYliU%,)}.։%FXxjb鬚xb}wb`.|?T#M{*"O(هIv0GY(c x$xfZ%I䙃V0&ج8g"g[I2&, LCuG;|n[.x{R rk@m>-b%
ڞ送Rg.3,yJQit;˴fTODG&u^gDbke1Zi|f̙GGJdL RyROCbh$i -[ u;.ө!HD*5j 
-T]ϧlEsJeN
)LF BbǲO[yj\<V9ڴ|HK)	S)ё^Hf&EELx>Z3(*_
ċUW#N0'	4S*:#o1ksoV]&TQMæm ,xpa~FH|ګ}N1-tR~ '?_G#ܳ5}T#9X9y,c\XC!CJ׼;27MĽjor|8 kv)2@TV<*Ͱ)IjxSvzz:G(N)!)[{X.)MQbRJtp֣%[\b5s+*4mV8R>HOPR@5~J?C8bKT>=V6FむQ[Im}H%LwۼFXyʡpfs?O`LL3R7!iqq&C!Gaj`mj\Fe(f" 30=x֥\÷@?!wϞbqfvmOJ	ӐCk~)T1O
SN8g?38IpB%j u=[#fO&gT}mokdnD1pP nhwLkp-sJK+RSu }MdZ2{R}钷g/mz ƒn]Dр#FXIٙwv#-!5t]< 8]X.	w'ZOz%Z728(=oO"a:@KO+gFc5przN{={v_cM?S;P_=8[VM~sqq\WAE{*Mfk{xX/Y{	ĽyΰPکͶ]G1	#cid
V@B ݠ{plfvˏpq`":C	XUfOXTeǸo8%//-10^H)4RXNôG:h?TbF+tI˿ uO,w;M] $\g"]>Sc	,;+33ROM
D<ٞ-|qkDt}a shtMD>HOׯ;LI3
AÅ/`(dWJ-˶K8DLA?tsC~cC.1E~ka	y{xyKw߂֙-*͍=Q?]D\Ё5$/meBJMTzz4:Nٖqs{otPQTWe_tEb9y쒜e>Y*rݳHW GVVr@BĴm9ݾ7eiE٩Sl,B`K`Z;m~e<wzO3WB+6D3*tc5n-<3=]]6>bKX7fZ0gj*(;p=LA1t.3ױY{L!$A<k0pVq۝Tv91P\`xy 5U?S!"!%((c)
    } >3#l$KSdata.get('name'I6$V[T;-hhx[uqaD6*.I,*Kܨ%
bp) Aj^
XTV!8H/$5D(1BGiS%2sR@
sr&KփtFج`h1l?,	qlTI5\HyYߘ  [6xq:wyurKSK5&˛ofp ir&doYQr,))Co2=)Z_36G0K/ 5/El`fr{v-xڱz==źO;Xe{˹RR&7n>/?/u -U@.X$b9/D >NZ@xۼ*<bIyEy99y-y^3's$ŧV!MS\+!U/NMPx9d6|y)

7xL^5YTz,hYɥNP6d9bBHbJE&OUڼE΍/?/u/lPALPf`b9%@ǤmN+JMLq54uc7_d{ 1f6$mxRb,mY]2sRssSJlc 9?"_RS_X	VSh P$(orkpcP>rl$ءJ'p#:y3NM<e&*OLрЭR77$9#,=ZԔZ:M/9'8U"R\R1yzYy`E%EyڸRRpاnj@?+d) fr4{fZ,'7z
p~BNf^*Ȅ47&xYNp|ϋc283fgeRTʅb@ :ࢷop`e+*L>ﭼ9#9w.akxj;d8K*`?e'ɺiyYŠlɧdS+SJsJS]&ў҈oK	 f~ RZxSAkA&AO5`Rv7MăBB֤fiI7hDb*XPAR`gGov ";ew_/=Sސ`:Ip#5PQ"׍p^4]RHp#J4xFEuM/4̏(e}73N[
jڠH+ȢAܨ˚Ie6oUfIhsU9!3GΎF2c|]iMd\.%rAeBSsO)5Y]ЅtxLTv^>߸s^T~)U5DeT|w!@_񷃠ATl,.mkծn 9N-609,D@<bFb+J.<AP2owO+f]}g*|ї^Rw3{b3S
{wxQ3.5iB`s7>X6lvCŢ<Dt iTpAnR'Dl*A RI랚ݱwƋAXHBJ$!6ugYgY]y-\x}KSqvƴNVن;;-zSz1qؾuΙPyQjD%(;P7Eֵ݄^ml<>e.?nDM4=hFY,N$i`ڣbviue+kwfqf@SE{plta9Ei5UՔ()bXCsSxEVbA864˓{k&Q6<q~?7%ȻpT>tuޥIޖߘ5ƪ][ѳ`z:LX<Gc{SpE,iIwU,-D_Ǵh9ȶ+Dytaft(,K0t":#YrQI%/úItr~оۥ<zN9H!_V`kӏAF	&)WEB.TɰL|hRTugbF\⦁mrmpg%(jJFP#__{4[(TIP<"~R0x\}nNzjI|JjZbiNI|^~Jj|JbIFriQq~Bz^|AbI_~^)*u@);'17UJA]I4)$5IL),Z<9PkrQ\R|Yuvf c^`jS=Efn> /N\xUkG'ԲBCZ^TbNB4R˱{s챻WEADZ'km"Fߊ?v͙_:pǼy}ޛ>o|cyggX%,]kbGxV?IHjZtq=Ȁ!.!kڢ`$h7:XIѲ6Lڑ:[fQk)24d@LmCGmϐ'[DE ؆, i f%\<^;T[gŊ"gԼ.OB.D3/)VYHBʥ#<:V,:f82䂲y-8J%َ(
m6(ٖj9j5tx)Ҋ-<JsrC<ݠtjULn/E?Oׯޮ\|_a^Ԫ'~S ȬX_A\%_-5cBJ@N>6Nf'e'pU3~|ۥ	/D\9ynhxr/T(1Q#BlFS5ﳿY6,ΕtڿP{*4ϫ]&W_(ޠ'jeͿ!Ivmy:wz@PS·4y+7z-%{Xv
UM1RM7Ũ -g;+KkK'wZY[AĝAmݵZS^A(&}V:IǬrۂ}dbW?XzbJg|eB
Yvh"L`@ lhw3`/6ǳG,;}:99:fQ+A>28JKdWG<!h`=8c緯ab߅A(njQBebjz]̇Yzm?G}&v=O˟VB	t	pxW_lD׶Jղj"Ht@-Puj]Ry}iq|)*T:G !xx@ xG	xAbܝcqM?~߿/}ɱ;y%\tz
lw*t/)y{rMTLV60\TJ,^)	`C
`JD~;'?N`@>{d#sw.^^U-Ů r:bm,AA00FnIjKzwm8(ǰ؄?0uo" ޭ&Meв0⤚,)E΅u㶁K/96aCh>p"Z<Qw-躔TPhQnn.2,_MJq蛵kk5Y6:+J#Kkj"kxORF	Q[EkZWv:)ZiLI ̔E$X{m6!iAߠP_!_VտEIаr:()jӅ_RZ \څ{Zk,>6gn?J̎@g _ʹYW>CR  ڦ`hEp5	ZT^VfsdM?O>ҟxS3l4sǫb_Z[Z?TN	A|rĖ|Y9@`F#%
&VX:<%ze&*4[A/_`MLzbT.a^=	HeFCӊBb,tN-]?N~}iL,N54*4>׍QVǖ7"32rCI}q,M-dtFqgR-M,J=a&pyJCyNa??̟ Y|b~/>&$=@qReIt&顊ҫS"Y,<wUx]I_Dd+1*tj~VcP$T6ՌІLAɀcn{t5ܑ3^wDي3m2xP!JJ9.6t+)dQ$ 㢃hٻXL9t3n-VѲ"RssRQJ
 å0Kblq`Y&bZAlRWSif%zYTo	)[U=¸Qr|-&S5dZ|һW8nJU7M kVDE@,]ҿRĬ-?DepyPiw1lKzlF&/squw%'.M${sN]xk_8e>*}N=# :
(x2<^y%
yiz9))۽LX&_; )0x4qbo'sImHMO-O,Ȍ/,,MLH.-*/QOִR ĢԼx1y-\'PX]!3C$&(!lKM/.)<9]S"Ԝ̼tdKDյյziE%pV%Ry%J:
hii.dCRKJJIdQ~rjq1PY<P;ҍLF)%JpJ@r3$t!JA}{+E8lAr`ճ3!.VX\.7"Q\YX"YBJ a<x[TU_KAkb!lw'dFMVdF(+$D}eQL`6&z-}.jĢTZ[̢TԼ]T5TqK|c/P5F?7EWgx'?ٿY{zѼiO	.~M\`*8 -IU..)KU*NOI(K+T;%VrܞV\q;زb6Mj.RKsJn)UdU&%E EɩzEeĜTP ^~N^N~Wĳi`͚@E p)[(x[TMX_KK9(3=DAYSab,vG q҉Qk2&3PdF0
$2zI&HB>WfnA~QBfnbzBZQ~C~F~^niNIfnjJfXR+%59'(U!/17 19U! "5'7@KJK2JRKSK<AZ=5@
}
MzkLɩ`4GZ.ԊqSR^E5 (y(xUmL[UNm-|\(pE?QSdl`k/r[ooq($0,f̥?0L2uL<声aRί>Wp8$b%&z/џkiz[^yhb="!02\^/\Drl!ylbĽֶiyr,|i7j\VVsWs pH|sc</|F
LS!Bn&\N?IuUĦ`!4z
*2ߛeT%f4jbGc3pd/CQ^h7I:E""
S
PT"\+sE"aveP?4L%siDـwnqGقW;3vDe4|l<EV	zw4(.h6L'xZ|'ef|(p'"h`$3v,HVZ:id`vqm-j`
ЯmoYm̑eq~,=mQg'քs:U7_Ýf+k9uT&QKw7we6f>*0d3.#;4{>T,G:Ɗ#z1;!!ƇZøOj:0S9ptLAjYY	:?:}OI)9M)sO>Lg
T)019/?xJ"62>U|v.qe!-7__z#~m,lbv">7{z\}8Ѩ@}QYu69
Yfр3V[u(C6-rDmh˦C.f!H6Xwy)8E5`ZUM8ƾq<+XS<FR,qZ{N8Vgoĺuf>fXL?LOb#:g6uPiβXG]ssH}IV!5g ˛9t]-Xny8cCþީȕ}۷ w$v?Gm e_ x[Tztb̒ԢrK2@TrFjHIOM+K,(HK *K//-\k0 e;ZxSKhQebIYcm'66	J6E+a07ĝv)J).ƅ.֝DtӢ+|ǃ9^=Y\=啋F躧ZБQDl9hI7T=++Zw"S"rb^!S/>JtYɏv8+~dm<b& .rc޵مD8A-j̉R%I18E:c15 ƈ<i:UI3jTP$JJ+q['ˏIg3Z=Z}_tne 6]НxkA%Rҕ?Y.6mba)"O#&}<(1ݴ.K&IQ4#m)
=Y0OpP
s!
meʼȼnsL^4;&PN`{f>^}xVxY7udO
:N,T{XtU7
3rA+z%ݲJQIĖ{bm#aGx	 g0͎a,\.;ғ"2{4K"#+
%Qz?`p?ڗU'XO OOdrcc|$L*iCV׸V}gJU|xr?j0#WfnA~QBVq~fF};L'Wd8Il9T7s1nʹykVĜɭ
q*VOPY bE&guՓ۔X&K*MW9YYud.9&MɮFMޢ:9T|bMKjO6<Yh/mV[:'LIUU(RUK/M,K)MI/H,ɈΌR̼gڟtB=|GqrA?&6`d Uq<x;^tCUqIQ|ZfNj|r~nnj^zL^V~f&)tm.7
  NN!FxKA	"iM!MJx"1!%IK׺u覲uf`N#t:!.3fo/i\Ϛ||7סBGAѰ̃Uyͤh7,d.
crG@*HNsqqרVV$o2#ރ.ӬIבBФ$ol0b{X0$fjO 1x+`Z_]hd:!2չڢ7?WS6Q1_6mì-3,^.'a1P(.4%}.@@!LCR 'W㍣Kx;PfCPqANfI|JbIb|IFQj
z`q>R7&/2?/BKAb%%

Hr\
PnRf( X%Ko6R F,x{W~[|IFQjdYMN30va)2
@UWVX%k
bFg%clsSi

yPy@%y)
@zT	)*M+KI 
" کf̜x `:cq*H,J̅kk|QUfs u$HxP=o#f&J$ds) A^bnj|NjHI,IV	j")AR"SZQUW2f)µY%!
&3J+LbCpablfi#4@QfzFI|f^Jjdi%E=0SC]S]CmAbQb.H>`+$

@FSj5y9ɫ&|ANtBiq [b-ͩ@3 PXjC}7N^ ,=Oָ yD0@DC5@CSAAYiǂ3<ٱžg<];et=ź%f(x}Wz`=pS!
t&t#KSR&*Jo6V  9|xRo0V)P`J@eCGT)
Ć4uU%Nk8 4_w#8s߀݄E)}̾2k=!8<F@pyw8	{	ha"7M
ӫ-(	Z"<_o|ϚSS0(t@GYDD}*,~b=}c#QFτL-Si%sr⏩ڒQ5VaA5,߸Kj$K.,ThϠ }^^7W;f<9neݞM,i2]SQ@
M2ְRk9NuC.';IGVlk!\P_Jx?fQP¤g
v)0)R3.vb"Lg^Ca\~w)<z[,z0lZQ)gԤ9gΗk&-J߯	x{ZlCdzjI|r~nnj^FriQq~BJbIfa5&)  )),NN,/K)MՀȿ`*g\i5Y^*WJj.[*Tm] 7nxqZ<y^3m7l'6yxf+	)̜̼TEɎR*
1\DR(F(\eU,%-3'5>'3/5>%$QV!M(51$Rɥ i
*R X\.Z0v.i>d%{<+D@DH(eX}r r^PwxwT9S2RK*7P]ÈN^n$L=Irsf?+gzH%ȒMܐxxL]4I1!I:XԠ#3E*rG,H\cuH: TN #iL6eGNZό{sPjI .x][s8~_ѕǩ٪̛ F3[[*b	\ӛݚ`Ƿf[3qO:::~[,n~?aB>&~Ϗaӗ4牟z8ƑxOsx埯
?K$_ğY?߅~w%Kg?}n6>O |x&^7?o?ܔcݙ&o7_xYk%~&>^SG߂Mg7ofǳeWO/w#\<x?XlO7nX}Y%Vo͞% ? Z	hwai}';! j5J(K^n<P~="y
d6,omNźg`9w0k$^ŘY~O*of"ܙc@🋩VtE?azW%Δ߼0<2/J=lr4	YPڒw[7s\B1!Ad+b^VjO WUu7ޟ+SA0xY#˟[@lϪN~pɝ8{cZwh($'SAIGYZ7mn:́"k\1@wo/[΂~ߦ5x;>UM)"P-fci'氍5ul<ӡr}{3ef|#}}kTVBƏ+ڷD䄙Jqrͬ9GrUԽM]e4ڪ}cF2
hu
(<e~/腥Y9mwcCϢOL>ڱj;f5um.sDLSu<l>Gk֨rUR6*m;`+k~xfF@7Y4FpvH0&q9ԉ6n̐-nKUG܍	#Br<Տ$&1ǝcKErV7A[QGv:h̙JPg:WE|m6a3/җ<JnZC:pAj#_1)lnA4hԤxrm܋'ƞ`vv7ȆJ	È	&/_z˺dnG޻Ҹ0o">xjX7:jשϳBQͩMWd
{&(IL	&Qs
aY~Z	i;4&K-H0~w}kh̚m ~ӥTTfЛu=m4nLLH@VnԔx5)6fQF}Fo6&GpjZf%;P#ݪRq0nօiײ5BVx#QWln?ȔSR.i`WN`^hݴ5K(z[S;r@~(q:߹?Qs&sT^R7jƦDd>tY9=~4_jxޡdC>#)CdFg4ڽL$CfYC1s>Qsva;|F`Rؕo"-ka:Z{QVʢ5ePSj1FGqNs%'oq8M{,OЀ/+p~D>I=Ug=3T˂ {aneN-8@gc:<(S`OfOI.ZX䋜2|ZO|R!ĩ5@h1)#	59y+R
;`6[GkQp-jF7&k!Y(gՒ&=K6h0h!wJ뫡*5zMgw3?
f@yP[<S[M
[\sA!DeHjX֥ ס7~e#W9:Wjsw Q-Qǝnݗ#}N-T86QO~<V؝We2?J>u!` ܟwʑhJ$+j"b@MؾؙbV+B?~V+ݾ竃mU}y/jn۶bp>)S9TP^fcB5Ҿ.fAJ	M:
>=Go37:Ks) +"'?.\c#JҾ*=MY{U,2~Qו9IKY䠁!J +ys luVz_a,7j'v&IZvrlm"KW}UCO{:?Y@5Q\dB(pnKk:$^Pq)I,L\oH	uH}BPK-Ĺllm}N`a54.ŉDq|Jzjc}Ǚyעܪ1D	b#9*-ې.aY^"ĖSW_DF`uDB$6[UB!uJ^ QTEб2ێn΅\:,sQT /~:6ReBזnhɏ!6Vѳ6)]n1<sX	TP6uJ9F*!۵ŬcwQ>QW!$3AsN^qĳ3.4P1v
ؕ|yNWq"p7Ա2X(B`w@soh!B޹\W~Zcjɭ&T'mOa `i!6Ad: 2HW_F<6`<yrc<}YݛRS}GyUwPԑ*t܁4:;}Cvtn#*o:֨\u@;W-VPwnBDDܹX(P$`1H;|-V)O{iWҝ"<>*RD(!;% Lk\Å?Z}s9H8EO~"Qӯ ?2Q} wUӣ@.Ac@HBh.#ڑARʠվ%]!YmU#u
S 27'M|'5Lj1
N}{o4@tM"ttR{/WH9Z׸%\˕M+f^`ZE]UWGp	u t(&p®2vJ1
f`W"wu1TU.<L^us,C"taS	tuM:rl,6Yl~]b6B`q	)M"
CHʕ+	2 ;FLB{+ߛ`=̯sn\)d[΂dIǚknbft9}񏱵nߘBHw9"us&OZ]ٺ%Y<VAs_DOG4l%XL߽ԟ.9?/K/q'ƄʻwRͅ&֡!*]CqOwkG`=E+!Q\ʷȽcs '._݊R_{MP.cuԩE 0kY7k$cCWΘN}2mJ=^Y!XJt5`B$Ph3.boa2n1h:CySl~4yȝ^ZZG9,I<M[NqnuZXb?L9S[Q_=l)BՃ솷X,lGidngtQ(ҭؒpLAisBY&k MyUns?q3Vq{zX=7g&P@5$k5 Cjdt6B#<;D5z29`U&=.c~/G\rZޛǕ憸6{HHU\dTX=,Y賐^cv_mk8 3!XS4ѡc!23jEihKWhҊ{Z;wCTCr-o9j=kBS͞Wmm@*!*/J2#P!QDNܮK:kJ4]AӬ].X6rү}b[v)}nx;N\(O,<vtRq	>;vw	6u8y=d~H;⌡rTb!LTV.LC_u@	\-!cWGtF$鯻Z$Puh
	%lo"Q6RRUͅ~|?4HI5|M 9|ڭ$F@Һ7݁[2}G.WU8|%T4DcѦe)AA0qWz,J;DkKsy㒀I%
*·v$e
\.y6|m9]'$AǿC%FmYSO4)QEo+O`pPU7QǗ/L󳞒ԭ{ 'āMvc;1'6$
iX&O*>].'ăUVNGN0⌆;__!.4ӼϩeFD|04W6U)cLڗTcWk[I?'?Oj3#UxC {r 6TART_NATIVE_CHILD_PROCESf>	2q10PQ{ra+%xZrWfbUf-4VLYN[Y@dB |}|MYs@/?50	+؎n?(OJhȌ)Ϸy\% 
ڮ<gL}rJ	X1^A7OsrxW-3j슅l-(=jP\,;g4	*8FSسRXQ%+ez =0ԏ/y6?FQDI8?ANBV)a"o|#׬8F/_COP`[oLz@/\f=JQM$|D􃢭J˓m׿}AQH+9;!C	r5P,zz[XO(%w	'|0^ij"&>W|~sާ
lpp:bwtޫO
/f`>`1b$ݰև`'Lg#go^['s5l%frY|AL5T2׹I؃?YA52Y(OEnHbtW\eL,dQڨMA< Xvu])ɭAD35eWs`P֊KzSNs\TNB3|FjDn$23^ igEI}ZdE:ظ̸ZKJ=i3(3013LSmLT(>*Kc5(,2[v('7)v/#2tvn.\eܑ'pYP׳V	Jd$6vX[/	Ü!6ZozQckBmiݦq!ס~%iL@DLX| q[40ZmCHG\ܪU.R%k'	`I:XS^=o^mOpUK;0/qὺy2B혈ңƪs*uO}	3z>vǴݮv"z׿C%m9i@~^fXJVIz(>rECg9ly̗Tqo[[0i4l=U@o>z
l)"h	DK~>*E#]$j묺8+cloHW'UTd{r "r!<iA-dR](3ZGjr]aWsnnt`w!
`@K{Eb`j}\>CF'v=9A'2~@7',ªb2CKeZ[z!ZEѣi~кhWݭ7jk.5z3rMI2~(؃f猷Jv
.{\`~vkrXPg]9oOfJx\45)03ѻ-JBֿ4u&Sgw~˹xLofȵđ-V'@0&ڲ{C$ڇҤ%wKi= glykJnD[mY4%BU0j3.:}Y4q`ɇLh;9^fͫaߏ ]DfXKZAsZ2M#h% {#=ܲmBF;^sw5V<yR7EiS}I<H46(lyEXzD<WIRk/yoC0hy/sՖ[Q/eGWQl *?6I[2[%p],\|PY7~3sMO]Wm<Ndu+^{YRpYZkJ}Eb`$N)*^;@tfwBp֭V 1WS8?.8Rx'a9ɂqn.  
?wxp a9ɂqn.³8\ E
)x;$n/ܛ;Nm`|/qr$' Zx;Пm|N͝l5<{Cx i$Z][Tӑ}8-/x 7¼_5ԟi_Kj	*xZo_qq8]@[p7	mdWvhvzݙef6FBJPDT@BZ
<
?ux_9~j̝}s̱YЈ_f|'g󬙴y{II?:;9s3pG59uv&o@|⌷ n;&O<͢$f'E!|4;CX/gqAADv5y?gQf(An)xVHy!YҶXZ~vl[`b9wy?7Rp>`e7eINYiC\,KnrP܊<	6+[ۚe?ZZ۪kg8w_\]?vzmlήmluYӵSu!T0'|`da4q[C1g}ތQ;Y'a}'3Z`P7EyӈAP9MgW3 |d*A34u)J[f>{]o}ř5piSF3`Ń0$W+j}Ӥ	AK NZ\	8huz<Mu܁8a'y}BIT"6y"PLN)|>bQZL4nt[A+J
Xw$n:<z04Zܛ[,~
2c$lmt/7kl߫}g{ƿzpmڭ
2Gw7$%v<`с@;a)`x
}MQٜXiDW3L.i8؀֠ψ?)bE+OA'8؂,~HI㢇ؘ+ZLG¨',s Z'c$%OI:9<Z0
i8ƻS˳rF	|ײHRFmVVh5`[(6{Sh 


'/E˯fFg9ifh:{(-.-@dPZvArm@>.kIMyZ7Md̵G@}ICZ(D_z;Ǯ\0(haFɔi`f"=8tAKKai*3Ea4O Mqʱ07.ުXz"<}Ogm]6]msL)6̣oCY
-:v۫mfP۠ebLvͰ"Pg\AKZ$Ul+*eK%\gCRw8#I(v4Vl[tÆ&XVps YA%öU3Z+Y~&WfQr%JrX˰r94j!] 06h(qѰDbk1">`R)~~RKf͚rҀ<-1~dCWl誨T/:4r2^<&H>P)t:5&dJ{Li/ui9hJX#ŰE)G4l:83t.:`#gOn.B^pԉqSV$<5v4FnS"+h9Gr9!6!cp]hIpΑ	
i%&w`S;5dB|E`^. 4,F=u1b"$}Yzzf<!D~p	2ITRΜb@PTqɰrz< IcJ۝q6"͏kx^`%Xmx}1q:Uj
ib*	pژ"e%C)P)FԦSHCHTq:ݒ$Sˈ|K.]Di`BIz$nûyMnQ( `;/#lFxo}ѝ: 込}o~\Qa]kN<kn RkJ_~߯[8`AsZy#OQ/^_gb킘.z[AA(~ⅺZW'_t$W?WOꫧjڒPu	M z$8Rhfqp=GG}tvkpՃhaͰ<KP >_(btr?֞fYRԼ
q4\FSPR0f	,Y?CQGbJB +J]#SY=XZQg0HZ烽n~>`z_P5Gj	~^{$Vu hDY#ifHzR#7zCj:OpC&idj!`:Tӡ]k\ d2K*Z{Y-srdЯ9erڤ"?Y_醽F+d]?~@;A`^!K/;"|
м$_/|ok~eؽ=Gs2 Ɨ6AEo77<twrYusv:+R.#]v_}WܓnqSa!e,H+  Q7NR0Pk	n%LGD/B(8Q|/@/L6Tn"Tl8vaߥ$ϡt+9<\°
pxa\Ѓ8OQf0,9tMiUs\5	mLbd2DŖ.&TP̀ PBF5b'
#G&H"JeP(#Z!pı鰎8	[@5HECg$@5/Q6+(k\eI}͋pK{`<wQm;ݰ/cZ@9x$јYa!Q:U횄ʣFe}5xLDEo<Jhؚ~ד`W,n
7_f`
:uGR*KJ2*ZZ0B1 81F 8Aj/:le1fWR"7A@N |IzX2E `@[Z20[Y>:ؑEj].ثlu1*=xeF:!qp#kcOzgzCЗ`Vz
k5P}#|ANK LU2d3裭6b)zm¡WQAk`SYAEh$v$B74@#;HCճ(ZRk*ah
j(lz6:+v54D&Uvʍ!A ǡWod:
Ppy:WirV7SvBì@
H7eԋ38kWeR$_fǏ	y(4@^3|Ńyy"@|(>vC|Ճ/}:z*=J>0A%ж}< Ro%a=Wym,^:o]oa5*O\D!{)բm#6c08M YjZ*ơB NfȄI(A7s\/s*gx}J0q vH[(saŻ`)nR&L""o </S6n$?O=y!JFI4M2Q>{x
kM
`aAsdx~qL_&>Gdٺ6}LT\"[`JdHD@*~vt3Ҭ>;cAvv`HYnTnVCKi\隱V05ab۷Z{glhs3Fv!Y5朣@x;ٞ'(5$> 3~DrNbqq|^bnFjNj.PR,4<*!ԢĒ̴8'	o>8GD98$5d&{9]1͑ڬ}31/EPVar!f1̬D)o(89AHM($>:dEq˅|:ϫM!,{,%N.(ݬ i8\JMٌO',{cͻ9TdCiIү8ot^dfRz2pM. âiz&خ"&a։74Qe벥
'V=yzfQg/c`Xɤ9yf1L x;)c;OriQQj^I|bAffv;FTԜ\XhyvUB|E%y)iipO`|qrfq|qeqIj.L(r0b#Y
3gb^B6bY!R|QHqr/3s!̛|QH|uɊ֓u&W,)=C,ʥY,XJ՝\
PYAҎqrгNXdǮw?=1sɆ_qu=߸2	ͤ&_e\(#<AEQAAXM]iE
?M=¬+oh hCeK9&N>v{B͢쓣+7__8ISs|cbFʌ.x;y>s>ļC[[Ʌlbw 	BUx;9vC|fɗ]&{(Lq, *?KrF~^Jv|JfZ^IE&ehgm4YSw1ɋ$&K-|V{r8HKy^qbY:ب
͹r6(ZNW+|XꅛE5'GWnqra%P5&2|Xk2d- .7d4y8a^ $LdQx;uk|&̴֔Y 2
zJxU]lTVԔ1ЭuvfC jN, ڢA,/i9e**M{ 1^`/S&6/<o06	&}l{tS_e3}Uô!M5i'}}N@ʆ\&?}*=n@bi2Y:TR	ӂ\Mz66_qhMURlTд3#ۙĂs/|)~#gqk`.n|&sPdXhe6Qk)vUb5`n$*D< SGOW mӖ+qUA/UAXD׌2!GaXZ8HHC:$npq}¥F♭/n}QH
n}#A\Qrjnzy4s4q0eRLrHOڑzd="s[\!/,z[6>&[m]ּINeĈ{ajx½TNV@Ж5քw\&%}5	X$KdHcCX{aZ^u`)a^è?͹%noIFU?7ƂޘMߘx|P~lZ	2uUFMoT&8txZ$~6tu$WU5`˂ǂ?	|,;On8?]_&ceA0UM=c&SEv<73AHjf@:5a5
$GR),QwHu A{6ιn}|ie|x&C(+Gyod9փavHI0+Or,]Cq͒4 =\(L۷H"fd?~.W<nX9mrFGnRIHxW0(wǨ1BEB4==ZJ9y2mWqt-brP#{c9m|ބ_\9R&FPOUK]{-3|l*ou7viMUh=71g\xkȸa-gfnA~QBQ5L$T3RS2SJS5sR"E:
y dI;. (J-)-Rť9%yi9%r2sRK2l@,=R`kWn_^V@%@[m% MLdd&Wyƻyƻxŗ%攦BK)N[WZL5Tm1ZlqóK|(tĢPL%KF `\.xK8u?#1y毺N,E&72
hNmT0brqZLT'{l6`dR Ɇ:n`f7G[q  ܥ"f"x;y;s;OriQQj^I|bAffɺ 
-%xٛap~AjQbIf~^|JfZZ|IeAFNx7_`fCD98$57> S#5'575DEtINF>T&l}c!9^9E''εY_i4:EuԟXt²';v=߼oJMl -dh9Oڝq2z:\
 6c<"dhw1 Emsxcn &4&cL^!x*c+14RR&	Lɶ9H)XT%޼Aj#X L,0bBJbIb|IeA())iǢbX)hiiz52J4Mw%-'=߸MϦ?ٽٴO{1iǂ33@i'IJ<3a!Ud&On5Md'ߓ,,	 g-uxc{dC5&7?cz8]w=c 6Ăɂ,% 0V>͓Z\IiI+ɉ/I,6y)&(*24fee'$d&jZUM>*0#58
C5e@KMg.>:M=MO'>_A]GAEW7~:?-'>k\?ygDӶ֧vEm"uqkZ~BBf^BQb^zFNjFJbI&)@GĢ3cbulC$m6Eb//K,<gDnӰb@䗖:rRS2mKKt-ԡ(+/,IHHMΎ6\*9'8Uc]%gHN<Wsw~nKPHsN% 2[ j2	l3OOP\ 2sR&eVkh*(䥖Knfal&%δ9TƝ	 ?# xcbB7?cz8]w=c 6Ăɂ,% 0V>͓Z\IiI+ɉ/I,6y) C'_g*y::
/7|qy foA?ٿYz;; >],:mѧ{@XM. H/RT̫W(JKOIHI,IԴ˃@H,:36 V6Db!&HlS$Y,bĂnLMҊ ݑ_ZRPZ_Xtw9y)y%iP?ej$g&gsS56ba#c9yY|[)Y&'O~(.f ̜TAz٩
5
y蒛$t6I3mqg _Ӹ	<xd~;YĢ̜Ҝ̜(?7@G(?$>/?%Ukrdy/K.4JVod <]o[9) 7lxi?aCVZQ~BRf^yQfIj|nBfnA~QWR: fKc
5
z!A~Λs r%WxXoD$U!BؖIKhH q8mVMze=KE PEP	XHS|!PB QTHܸ;37ޏx~c{yM*͘eMdCӜPkҵ>4oxxBF+d"sP#DulH"?Ҹȶ|mpm?iSF5N,o?sVp%n8s/Nr%v+ؼ-Ԏ{Vpk=fh[Qwp[`CCCe"s)yٝrI7=G+c抠1v!N"YsW<՚@s&nr Rf9ojVK`ct.*`#,(Zr[d':ŊW,Ǫ8IR6GoWn ̱492fyk=79EYߝtcҀQi|zKO8Ye&=mq )_UMgtp3RIvD/$+*)a:ygB@ZsD1&aW
9Dq)q]\^\uLU)+I})oJSKRy+84Wdjf:7\6
W#IH{l c*[ྐྵY:tBGdܓ-\N2HL,)i(8cSN^W7m^b)mSӘΦ3(aۻus xSB௏D,FB<jt%绖;~A
έUQ1ǨpH&8V	jJGqN9I.Ӊ06A-iҲi0ل*$HIlrJF#J)\> \݊g`GhR2'Fgt, dӸ
QhPqIwbW ֳ2K#8nd芤⅝b6>
&yTk (i^|oiɮ[9rnK+OWGND~cP<Ybp"!1VׁXG((\u)Ug
khG/W4Qy;;saB}!|G{v-8.M>AΧpR2;g,F٧W`'auu#S.ɅT`ՕI2il<.x:8$(\5XG~[7W:ً(xaySDfgfG6_oﶾ^>k@
oܗjG1n;;>S-cqx WEmbyP3/mk0Nir|3y(jx֒a{fd>VqVɻY$95H2kZqM.Vw|ݳ);7[ 
5x;etC8rZQ~Br~NNjrIf~^BfnA~QQJjQjKfr0fmԢԔ-FNfq	">%

`̜Ҝ=M. HɉN)d]l ;=;x{akCL~	i9
E%
%E%)ii a..4"M+. ((+Pzi';)iiI,%1y6dnnw ?>bк"YE%Ey
J9)JV
JJ:
Jy`f-3pAtNndCA&r8@<Q`&ԒĢԢĒDނĒK` +.,P/NɎOV׌6E(ɃԪW#BBa-dFQa}Fh% ˖_
^x{aqrB&崢\b܂Ԣ7dz&䜛ZTEVY\_Z\SXY[ V39PLD&ɥ 99٩ yHl' >x;ezC3+KNf^dE6UĂ<ȝ<Wtz:Yba:c:lZ@]Mϛv>߸nu.0Y}{`JbIbtflim6Gb[ -73rts($nwa6_hg&&#ĄP#!;mr?5:?of> o}gOxd}fB&܂Ē֗d*d)$$Zq)@AX* V2,c8$V' ¦pfp9ecn!$W\ZXi떘S:۴>7?%&=#jP[@//H/-)(-/H,	ǇD5yA!:
 li ʕej($g&g%ih&m! ixrMxdh<$cBbBZej$g&gh7r
 
Cx;gsnC$;KbAfl FrFb^dev5.(4d"(X_RY:ٟ9*Pں麝:
Og<<ٿٔ7~:{r4%%%9ц:0 =x}kodu7ԇnʜ%[Z$G"<9M4znfP'8G*`$^XlZd7!91+Rҧ=:Us!V:sܺuKaqV)￑/<]|bvǗbNۣY;7K}'fNka:_0?üFyse-{%/A?f㹬V̥o{qvҾl<Dwu{y䧣4ON{v&ݦiDUbpkԆmz/~Y{t苟ۣKܹhAq|Ǥ/]ZݼӐ^>fEq RoڧO}d"k9\;Ew|]ˆѝvć<f*2Yw vJs7]^lnm|^Ns{oks7_ۺdWnmoe9
d=-@lIp9ڊ);{xwG?xF^4/NC;zݓ=V4`A1^ƙbe`	ȯ;^~A.]$YA]h8E47GGO=(ZjRWֲ%_2ѽ0ghRF5_]6`=߶GllČaɏǽvɢBv^E^i{t,퓼ޢa:lڭ`e/d.\ 4|jOׁ1a}4+xvsyek^mڵne}mmR}yk{]f пE>7C}F-ɠzp50#~R0+L!f5l.qwkL-Av_ ~Ŕ`㓾7pr\PZCAa4׻OeҘokNa8W^sj)AAՄ<^l!wi
>efF>} ,(b7vvn_m%`Eh564Fp^	Ʃu2!
A?gG8С .kd«@hYR6Av pA ֯{M/{XEOAO#|,E9hvk5t85,vOL C[ B0 KsMٻ?|o:><˳-Oڣ35M:l:,i녚=G^5+Bo  iq3YJ[Yxu:+QL=V&wu <9 sZ࣫Lu)Xᅯ!Yw[vLQj$vِsN9*L~x>=?9On3v,/`rVsPx3TBj`X /p"5 oC[??h$V
<Jkd7QS!n8̎=PbxS<tp^-봦I肀XOrzۋR̤m@3@#B;2"2!)Њ>=k-qιGkJ̷.o ڰoP fD!B*ǽ@p1M^C
p"JTE-7s|5ZͲgw?|p140y?BLP6CטGO^!hul8 9*'8с^` .z+7aͽ;ۭ/mΗD8hxƫ5f*~y%T%m	Znx.6*tX#Aj&LJzj 3b |vղZA,.!5sbMhfA䰶cd悳V,A*4>M	{ꟽVoqeQ[<݌U3rJpK kL]Qd4 <wfUBodgO4@PQ"fHTQ:#4^J	{͝֍9$>1V}zMՈdc8!hW`M/!H	`
t͍r
 EIہ4+Gd0d۴.
&tBRTX`l+"gwF³ʥ}dHmI.ٲj":jRx)J~죟/T:s.
i$@u6b>8HX\,
ln\3#:Y?V4WV',pѨ
?8ɯc}휈makΦX͍2)W@UX[NpLr/?ڷRtezf>I\e˴`4.3}Zs y,,_ҳ*A?^`w%BcP).LJBd3h#+Ud*nW9eJaZQ9~:mta \A$	ũ1=|b\	dR@34s; a]1ފg6
t	z\ae0{VFp;ĮCB4aԉ[OIcst5JPʿ1Jr,R)MC6+CI U~nVѴxm2 9L8q߳;%O z90L9%&V7	Fe#"pBlKp%yB+	Qr Q'$hIOM%UZxZJTsˆ`hBX̌1o7-K}-fl>b7ýX 7^6i_
r.C"Rkj#q;	$}I`4yjΠ2%L7?ك`H&{QVaQ^Kifk)Pd=VS)ɀEQ;]ؓ&
0ߦAd @^&Di.(	ۄ(6lo (Dx>ZQbxeT$v='R1ecրj;>L":D"CdaaX`)kUv@@TUaodn:'iFN(y:K%!\Lp5N?~.;o찈P>=/F\y	VS]Gݬ1Ho^sPd}Uˎtb9zYZP[@mA'R],jqەͫ]\՞>:ڔ
|VElZO>~H*13}D߄S%zRXkq5"plrvZd~ehS[׸PsZ7R*_!xو|&٫]Jc@T-*P!$s7ޣ-}w1OFxU?"CaѰŭqz#jOmpNІٳy͝Bwӌt0y]:S(a:Lsj._J+:*)
EA:4f몽*-Z~F&*[(S:("*'lm
#{2]LAk8+n :a^a.QXcnnzOX"rJo6jJ^]B%# Jȩm؏ZrjL[㈤R
)@O4!РxxQ%E-xV\54!u0ڊϿ<{wgo/>۟'ҤIJXòv%n(IBݴBXDN%(|wf" E_yE<v.g's}hߥD6R(Z9a|~ޔbF-ߡ"\ %puW</omV7(`EFX p-KAT8Q	]s5ӱԁȹZ'E䩂x)wPsSkңՍ,~R:-17A0za:e"CW		N|N(Fҷa{33gTRvu0f*/WYvPYeWTe4Db>vN߁.& reW*bEg]SEM%F?dߺfY4tOߩyVy8l65wz=M*3!aJOG_|Rt<(ʬ*UUd4ZKBc(Ыq~jeF.shJ+Z ?:2dh!r8_xy@RC6}	TLXa%.5dd<V;/r%D:^K*..$+*c%۵$TT1|pR*6_G61B[ Wg	-_KrB'lPǁ5ʐ'$wᅒt)UcTATXKŸr %8; Q{5.*YQ}\oN߮[sPUjv2V
3T	0UzNe[	bpc]mxs|RoƍWz_JZT:A4-<ϷKƬŉ毋R`S$ U&%WR$ެhW]8ÑE2ΕQד(*2aWs޸D][G
$RlXW[Όg1Rh^-9cVLbFg#xm\HS NaM趽dNqjɥvDQ_i^i	hS0Ѫb8ZBBt:"0futv-QhHZ[QÞ5..*Lk`A׫Q҂wAj$9Q]gx*AabzPQ)R0$DHTTv1o==ڿv/ῐۖyHk2d) BV`fCzOcA_u+N蠀b%Yf1J(ǂ^L9M E`mA$#ba%xJ$mVyRS
w"e9NdR/ԣWc*Z{[4w/^U&v0
~ZEpe4a $PTe,#%S!$jľհɄ[hLtc*NO$^*0V5%%	,Q8I]rz;@8^(^ [3Pm2I׭'p|9b(t[dW[QxO2>'RDRQM[wXvc{rNi=ҒB9\;KՓ 	"_<6{@ՊpCĉ%c;%Ik,/KVU"Px^u2ieTP^'tSydTrEQ.<LWe^,-L 
6Oߧ1xEr0HAEPef%κ$V"JV<Jb%^Vr+M:}T5+XL=W뽽VcW4d-[3$l5e&?Z+K>OR啇M`xڔ5eD.^,U*Kb˒&Dtঋr)-!DO'3'j1Xr>xB8o98'~ aT2JvTUv (Tw5~BczX _eFuo  B{jt9(ȉs b	%κl?]D!K,ͨ A7hk u2bM_C~4˵rklMHų4OQLz^P[q{%ͣV,oƄ_bFִ&#FDN$cy|\GC`! ab||Z%Y(?D37U!K)xfn8SS:;=A4x+6{'E`oV#۷I
XFVC<Q _u@=.v#
z;]E4#HZ܎/O1A[K`G;rng>b<c3?(Ybab\#bx6J-cSDB^ˮ\܇OX
[\u|}1;ݏou}.kp
-|zÍ;י5ݶ':gtlxB+j=BSL&vtk\ϕwO-L%QvfC˔{XZmsƌStt#i`/.h#5O[j8xPYBC-f?+¸h;:?w >oi}_3Z%4w64Zv1> 3lU1
z9耉h`eR@DJJ,[O)}c7/FmA[:Hs[Xg30/v|6Ty:4Q&7qAogC``_D]6xp[`#(l(j=5<PB$#/AT0MJI"rM> 1#9xMA>-LX~ZTg'875f\p><$TBc3(<Pl)?fF%MRl-X6:Zњ]G[=4fhn:F690̮\t .-K`%e:"i/'D]YUW,	dycMDpFNHV(5x.ma,dţyH;9KD,]`U4v=ٻn|nS,5p+ɶ[54'XX)ޥ /Ěs>վK1utdo_~ǻU_xx|9{g'7`Nt?O?8oExg+?8{g?7?<w/Oޣ	TJkD/-ʚ̺.̑+ZEkNX^Jqڜx'o 1hA >s$?w0;ιJ,xWca4K@4F*g45%j:%PA1(rnE
hJO Gʁ;@*O>Hi9YI
gqOMH
΃OX[	`pl8>.~
,I#q}|	ߑw7oF|+s?F5`4Ms @.H?aYBߊjߏ8h :IdݠIiϋk>(\хPҜ-VM(Gk%}qgn/nT8g|DVr jW0v)Wij2Ei+%n?~y-'
N';ĆਗjtNqSM@f *-mk	}*aÞ
{;Q~xrرycgs4%Vͧ1SmA:K s
eqܪeUٗlUyY:d2g>~SU5UWDPr	
/^qzY<k9"]ۅ^\(^V.=cyj~uŝΫ_MR*}e"Z)P_ }$zaݴVr.ڼCW-<
7;k_aBRas':mB=<W`=6+5uqA[+4ejS{8P>{<!x1smkw7G.&EOWw	P9H,,Y!\r)+Z{lkSJw-n! ߮/&BFpl8/d;eNll\<n)ܣ	eYի;|Q>oQBϵLǛ7c^.:xBAȮ=ع{^zF(eV~fPF̴[F1îKh%6[^lv=)U9iXvOәR@:`rEF<w&Fϗ0 gKzHpD_iav-ƊWwכٌkS}"SU϶vx~HnE#+	`wPx)+{-#'W."^ѓGYQ<"w`tѲ~*19dzJw^z!!+<B5|t~ځ)0)p{k><v@6}*zStOs4H7:q [ԣv6nlGнiݖI.To#\(LSɝ!;|`n^Ǡ&W!5Ӂ[O7?G/> a^|:A_~?!"yFa^-+x:#Jtc o!ѹw^oƣNTFkn.g f+%Jk6]p#CȞɘdӤj!3<0ޠ}844>U.)ln6CGqv8:N9*:6!+b:3:
~'k!pC#2}gQ.8F'$hxE*𩡀'BG!\t*s8|vۄg9 "^5I20yta A#Jd'8:p6dFF Gwq9_X(K pRѨ7@`ƼF(SB	JAW눶S*TxT
auǣ@ ) +RZml 9\ 9ȞsvĐZ1[= r SBpG19\^΅f$TK Iu#0vG2Q <?a`d\mg,n@g8*(LX.wg6WD$|fο|	7/;0x|sJ8a5A4e*U׭jx'ŜPJ^33s9W lJ,R>1.׾	ZDue-}ɴ(u&	]E~t`!<̡ r*ʭC	o͇ܐHqoBTrjjl'󕒸%P)3i	ODET3.	$nM>8Rp&<\"p F-tEL-ZN@XB,V)9Q!x8=И0XQ
o;}?~<ͳZ,>0,EL3X!qi'?]xP*Jҝk6^by"qq>	nvHWnmo*ނr 4T
ԡsO]_^C>_^HIj?j'Ť-[DiB!0P5
 -4mV(+Lb?yt{f^- ˚	tOhW]vP 
W}9͖	lZRk);;Mm!3~BuDqA/#))yB)VG+׊՜s3X8g1Y$?,fI=5Hy-~1!ı9X+ppoM6Q5du Cr_s| ӄ)ڒ >\Ȏ.LGJ"gv"a)$(
9kQXdu 
 w>.`rb8(Iu#:mtUpP49^Rm]4ʸaDjC4M uUJ]t#e-{ޤj:<&&:w*$p^et5ysڗpeXI%毳<QB.fȷCf.u"u0pWڐm`$0x1/f}VM7Ehsr1+x}=]&02qN~?ex&Oݬ7yJfZZ|IeAd9;xr) A~NJ|bAf|r~^Ij^	PR?̔,4Kc|@Zvr,i&g8'Ɇ~祖#	#3Mwq慳:7%|XA|ady
q]?:)k]Yv'ڼf0 jw}x}˼Yrٙy)

!A~>!~~!s'dƧ&$%j ة'_ŭ?/lYj&oq@eUGL%y'OМddGX;Rr2*RKsJ&O엜HK
SK2sRSJRJ2
RK&o$nz-
P&?\:ەhd=tpYCL%y걚Cm޾ÏE)ii`=V`d)ЁK
Cz%EɩpZ5EfA,D 47)H}4{~ĊdU8DaI&<,H-,.CN	9&|s/ޝ% 3dOX̆&QXV'>9:רNpevi!J<:Ou@#7XN;"EϏR!İ:RX}[\YX'7&SVҒ)yD!"
K8;L	$Kl%Gɧ
=J},a'$e/ klxW}TS>$"*H@т2v1	KpbˤsU9:Tjz=Z=nꙛ+:Vm֮{Mp_~yon&H~=	7uhƳe$<w`\LDq6nlLRX降~͛oў?	?d
PSO5u;	8C$Ipn\njڛ0R׵4Љ*D:Nڷy.zoG1l7З|</:Nod0zZE*Ȟgb^\)"<\$01%xg	qR9e(^ST8ŰFqXk]Jc_N*BrZISߋ#j"ќ?Hr1Bg	#j=^:~)(GO-dh)eIŋR8q&)f1;hD׊Pj4iV}*4]] QP"D%R()P	R!zn**[Iw._AGpAA	&>B=LR0
Փi]FNICPU֪*s2
NL{33*'вKK9PPc(7#UmLX)U$ fp@TQ؁cc^?<J/.񈓣R9KUOqKcz=ޭf4Ɋ&@m\H9e<+ɑ7%Ⱥu,d^pc\2L6*b23e8uv)cr$,
ڈļi81Y)DnIԈEyrVU4h/C(4q=
b`3흙W9+e(lQ+K3&x;?@V(w!5b>?ܛ6u\.dQfU.C[Y&;SXyI	Is<g=[ܭֵ3%W8R3K ]r֠VE:Mdv}NM-у1?SAT#e t+Zkureo
QpRJb%0
vJwtΣ31<?sT"Kdg~K+{+WUl syd<up)t!!jԅb}.ߝO:o5,?r-FĤ(ܲDp6Lªq>"7C]aiqDdgGї531WA~5/ƻmL*P@K?+ l[TVRvYWt!EEYIq&Fq>/E`f1_wFmj=w2kxqMkc.F&Zvdvm/TOs6[fPJB{1$!׻G2eeKn{}tzd/0أ,C9˄yTuwGYs=zwATcкx]0q^.^SI8v},DC܄i7	/ޗd^X]k|MD͟OQޖv/UEˈBvƦ"D;\/߀GUzNаLR"^$]m4l6dg6&iIjxδJG3yQB՜@@n*fN)+۰h&\ˤOY+MpzB./B<rCMDO
N5^=*b~"VȆ;v|'m!dqq*^Gnx;DXxNh"!a	`( pRB),$	Ua#[{<=oG8sT&QYkkKpL	g!%v60\`"(,蹐pb
s佷|RQH__b%m~Rt|u}~z8ΕtΧ]IH~OEU60G7V&|(ng}sW;&nbe?g#|d%$WmK֥ vpmp~&8?1Hxc롾'eUߝ{1MK<k"߂/5M%ߠ.Hx{~u1ӆZfNǂLϼɵړ'l7LS/QHLKe'd'g$楧j*$(gg楨+d)礀UM~/燐hW5@ VV!c5BJS'gzq3;&R]ZN%0%Ĺ'%y:) 5v姤B.]rr6g	;1MΓ4HJ\)l-'[Oc=tE'KOo99erBd'mz&prLNߐ8y6&,!kY]"':2'⚜b4~8-8yJ0TMaY7/#UWEyɩ5E',2yA QB..+t&K!MS@|v&'L՘3kZ96.4O3'.LO,.87OW21 3xm]HSq9sg϶8NÖ[60Fv"Fe7Y,I]$XDw݉E^Dey	]tv>{ޗ%EV6}g%A?Ta|FcB`T=%#	Ց$WdLMŰ3N|G#HYlh/1)1rECuNf-\Kˊɤ_ma)gz/O5O$,]2),#TYKQ̍Ј8O7 +q8KpEܴwHgb+!j[1"=x.7/yk
BޣBld)X6Kޣ8㤱Q[
;Y_՗y}+2-o]k?(#B9hl&{1"y΃%٤>oyt(ZVia3=-ҽ̫!t3Qaٓgeur(;b'Nf+1,>b!FL'քA!ՍT۩57c*݊dƄՔiOdƧ>csD~'K9' u&pxk]̴tӆ^\%eEI99vxlɝқ'x2r$$LvVQtǎ=޲
)i
Eɩ0RQu	O'ZY^k|d N!gG?wxgG:WdG6fd<C4K Sazcd)AJ:
)%%V\
@ҋ!" b ڇ* 7I#3DJz=]|B󍻟~dlZ۞Mt<gӞv,x9s=tn{{'t `d9Ļy*d!,UU0TH)NEU90)@	+&Ob\ n|K+q6@d~ jxOQ7&^DԊn%iDd2i3-pBc\xL+Dٹ@cq邅;ct
]t9}|zy~)p`K"/QfiN7ho0|%gq<3JlzH4cQ*Ad@]ݐY5k&s.}}?u-6vBmcn5ǖ$1t---iaO|PL:_BF:ɊS8!,2 Wγc*($$`I8PqrȎ8dQ5ICRDrCm`Ä/%$Gm>	f6+UaAYT<6`8肤^[Ly,LN'f9T?:af^)-pp
+(Fugɏ$XLVlh"26԰uOVC81p\,>smgiM3pB@vVQ@Yq:&'aڇ~th\vPЉ[pJi:/y;.nvFb160a+W>3\!@O)o|~<O^Õk'7=b:EqKp;F-glQPl^ di	ֽ|w(${g{eb=?VmSUmDUw_-*ng~T-c$xT[HQgk:M7wK羣.vqD1e6o	Q	KF#7oI!M(P ]ȧY|aEoEjCDJ!SY999~s
/w3a 8$!r}KR1ðW@Sa2^h$3c>>)!2+l2+,L>e)F%Ia?:p8YT%c}3W.sOI>̡^Vʓj`q(1a㛾
t$h̓#9/R*4qVm#!Ɉ:<I}-B-Sg&YUyIM/XH[9RN.kIv[kK*ӌ VZ\kZģe MJNF|xgRhztC
-1W8Ю$_^FŨiMWxxf/_ɘͧaxf*(m%@TA<r^":P}=1WJ˓.
tpg%s^4"h
١3FKc\Qi
+an)6`fu]KVl?z<:߽L=Qymq!fWPoyB:2%UJ
tFOwu|8פXO(5`L-\e.֓H+f=B_.C[X_$1?uxx=Ipv+l'KJ@s}[L1;|xk&_(e|c! ~
#xTNQ,VZiF p	Q7*400"!<, 1B@ݸҕ; 1&Ni6a9w99_68IL(8.b*dZdtEJ`	'Fizи2x,2~GXյ'J(T
ho*Ľ ؾ^g\Lq2ZqbO%+(2%RJ2^O"&<	9+Ǥu,P
^Jؖ=B31U5,/.DhϨN~^0ȋEjv	
!J4~2OިL6Owi6iQ/q1YXR|vY1A XcEW~bFSw3l WWbޅOA(mFZ'ĵ6? 2'DFt;`<ģ:ڏM֏/l#F]$HvUmy{IfCq(wXalWݴWҘC'"pP x1.o8`imrhk٭7^\rpi$`ܵ]6 -Sm*\;w3I!TdZϙfN^_Z^	ǂc5'Lz] W򦫗JNLXsP;ԲG{c|x[qo&'0M^´msN x	#x[^69y9)9)Ey걚
y)
 rT.4 T:d{wD8'GۆJ?y件*Эйx}5Q *>Mnx{Lӆ<ɶ,B9y9)yi9ɉ%yv<Pdy<B!&e$dR9ᦼrD@5V7vS
/=&/c8䷮b?MCۜl	 xi~xVMlEV~J-!U;N`F.BB
vli²{ײאP^PKDyGB9 E7Tq!nC/\ؙۻI(ޛyͷ?<켿ոӵ@GDv)XNgr{gd/qNJJNT%E+PbY(I55dOrHV/t]t,kjՒj.bz]-0O=8XB	˺((U$E.2U$rWE7%TdZkhk*qqI㭰阧%(V6N;u[Z*dg!0ܫݘ_f^Od_y74 Rr>fzUf59gyzVRM8u̚![he5dӬn;!e\G*ڸxpGDZj)ɑD
_\bnt-P*Q.
A|+(O3q+xe-w(8 WmU44/Mׂ}p>+I	!N[*d]q+pִ+U%k5PsV_ \=[%ۭE>	ic8>IOI5!55dnfUp 1Hᒗ*
UGO"t	}w<Y!!E_HJ {7<`QFa*_ఎwi|vF2O(tg>&$3>-FyȬˣp"8s8&w3a1=#Hϰ(Pq&\XT1WbUWm*7Hҝx		Xp,4cêaּibHb1d́mv543CbIްf7W,c`=飙׫XdSt"n HbHÖ$bFxtDb<cd\QAH:םvB8RކX;%]09&N5O˹VnP_eaoh9A')_Jz	jma*ޞtqǍ8HoN:;8XRtY.Nr%'Lɯ\ICof6I;
3yDR3דYg~N>z4buj˵uˉC]n;qjR~
O.X~A1ނDvuA:Ϡ;xE+3SSKKKslcRRSKK23Rs2K44 C,꾎A.n~!~: G`Gp_|(PY/8/]Oh0P0393U,&RKJ0dFqry/2Kic O~|\U#?'%>3/-?Z$E!ղɹKd'nb5bUK-'Zd)Vo&/P\}LKNvl :NS~2򞢓HN˹GL
O}r~NNjrI<FljV
)%:@2-ј_v+xCB
<1ZVkp^bAAj^6fcLZRY`k z..GU`Xqrcl]&N WPgWR

Y%@Is,dCjx{z%qNnfU,,,MLIKKO-PO٬ɊEK^j96-ky3f ub'$Ox}ieY&3Lblx}}rx}qjI|fq|bAf|rFb^zj|QjqiNOI,IQNO(I-ӴR "ԜԼ<$yLC҇V"#!T**%NʉtDfb:j 9Kqz.%3-->3/-?>'rzت`~NBb^
F"r/5!%J]q
3>m"	g IИx[seʙd
&'dƗegh$$F3':  >	>x{yiU6wp)$畤(*+egi$%M~#"EQ^j9BQ|Nfq&d)菇U@⚼WT~) 8x[7qs)iRd˵yִ xXKoFWLTS
5
N#Đ?@ĥL"Ғ`V魽譗^zȿi_tf$F {<, 5$KyGm^M{wjm?8Y`z%ذdڃ u0DDrMOҁW\A,ڰ/m_e-!%d)GA
~r	O$Z5KEx<W\)&%'K>`{s%eݝS:ڔtp48?A2
y@%1j9Tp\1;0t }9g^J3i8+t`k[y2^/^\^ENdpؿpoepE"HT2 7rsN.>.8M$	M360H)3E<T(fdRTB0zVY՚?C}[mQDO^m/Gm5syJ,ѣ	X^;.8`$Xq-;]IH	Y֦Ԝ}p 
Z)\5R9ZS`na"`bqZz_>?}S:^6	TF	mU7rGjm)X\TؘfP[:[z=w|y>Y|f9r)RE\U۷:eFl[k&>nUE`>~Ǐ?o}ߤKw!U	Pt Ә5,nȣ:QTu [F@%9m@ýH! մM6<+Wv _!rdfDTb\f"-ھŉZOx_U35Na4ˏeiH*x8%GWr5}?wZ*B}0g)Hu,aBJFY6ȽW׈~yKG	l7v8Y6hRFe,z#cKN-Cw(%*ؐ9ajp즜ѕJ1uՆ|j%6T"v9d+]y9cc1cRb>J[*?!*|m4Q]DP%N=<ʫ.HRRO$`]jLM.ϔ%eb*.w*vxjOK2yhj2Bҧy1F^&!p8PLusX:^fvètB*h%!(*pkX&L0/zԼXV5TT*T/򫱯QW[=.(Q4;Jr-+h#eJBFSYNcVB%yУ
|Nuw!2^*_xח~bK3Ѱcpsc62l_KySY7/HX%Zޏ"Mԁ	qN̸r!o[7kom!oɝ|kW>,RxXƮJR(6sPpRfԶTyP\auwj?\4gq#>6IaӑQ<5o,ֵh,i.tǿ[&}s;bJI^~yh"DRyjTh/:.ng,+	M4ɘ앭!XJ1V:ՆgJU55X)wɆJn鸂Eg)ZElON,Z={LDMsC?Լ@RWfCrsBğCx{Pkh7`_ `ex{Vk:Lْ'nd&y
|Bmy8 F9x{R}C3Y6wq3of1f/59p24~ǁ|e )?x{~RsC)gekiZq)@WX\X`*y(Vc&_Q|$$5>%<Ilp	g "_5SGx[ŸqH3K_rst7obd  tx[ŸqҼ"q~f掉 {!x[ŸqԮ )B
%_%2θm;12 ]Nx[ŸqHk?/5aHVv]H}bd  B{x E Xڒ$<[E YQ*x[Ÿqȧr,j׽^)m2]슖 Wx[ŸqHh\7#i-+;Z<pbd  x[Ÿq͛,XcDOz;l@ S[1x[ŸqRϱ-ȢhO@ z^x EjݗɤLǗ%v"1YQx[ŸqH]omj#:x[Ÿq5>w߂#sgx[ŸqHsYܮ.:w 1x E⺩2)ھ j64#YQCx EOU`(@f/BYQ 3Qx[ŸqHjU&}_).Iubd  '|x EpW̥̓(gsLQґYQW-x EX%/$ΫD$AYQ6Yx[ŸqȵiWS<84kɍ }Rx[ŸqH͉Wg'n@ ¤}x[ŸqL3ysK_cJ ?϶xXO篘r
XBeoXݝ8Y6`8MjqZܗh/-s3udlhL[QE?lwX/FFܓQK"#W&F>]t(P9r5
aJ6hB"%rB>IG!9%U*$i=FtR
"4ј?q!(lBgRD\v>i--2_v:Q)թ+ӳW. `r#h'`B1@]%m%Xx FMu
~
ΒV$ w!)M̒pbvj2nN]ڍ+6}yԵijjrPpĄ	>Rt
i6NcMVmQҊi9$IO1)k oe|EgpE	#Re+a[	FFFs<[G:}+W+ ʗ%G?d_e;;[??,PJ,[(ed%ΆU2΁:A6@D|ZT)VQ;!&d`iNfnˎ 'Lkܶ|W?[sN(n!3ԥPcz0>/0͠n>+wI@h6.*A3oŐqk]HBpU	D[5l	;r*!\$-*Ӯ<)L`pZ~IH
ZGbt*N4GVPIDqRZ}d\ dB%n 8wjmBoI(J*=wz75t!!^n>z̶rUG6t5tu^ F/8j
4XXlzHhc-H1 Zޢ4 -DulJ9_i4_x}k2`mWJK~(c[ݘ~UDC4N̈ma:]"evR1$@ms
ϲ\3!pW8%!b%?? 9^=ϯ'f>E!Z)&>n!Xl+gyEV
+4?A$}T壂#ӠmD[huKx^f7wzGwMC&*p{	-j0Z`t6äe(qޡUg8G8D abX	z	"4p1Vji$ xgk/{R釱srT]肊}Ɠ
r,
z'A@yeGG)_4qvUcV+/|?9l/
:0\s[j.+ʪt3*m21	qxV }NMaԠŠd_~m6^1R/(¶Sŏ<W`}p}#@Ġ[sVM+(C) נlBSvsu֍(Z8h\EJN9z_m֠pռ?r[,#j"lp?7248m)4 \[?ƛ+-z .j>ތ"Mejc?FqetR}lKZuJ#TUwWuaĵ
XvfGa[hrN@
l)]HB52Q4ǄU7SzqDID_綸i%erER< cufip-40h1nÇ(Z݈%Bd(h"GQ#/ThjDZf'[/h!OZQ
*Ҭ܊֬ZL4(QÓPr*09CH1`)pxU;JUւuT`uVdi>C|2S&⹀^/N=QTXaK>qC-|G< 8$yPx%p/PRVuogzձN:8:)62uL"r=^cMF%q<DY	_0xd ӟʸp=DBY\?p<>G?.F 0DdH;zr aE
Fqs^qX5֝7ֆHN!\o/=8tB֍uq*׀X>Wʀ=y_߆"V}}a2xUkASzT(mb75/<śxHeݝc7dB-{)=Ƀ_@<x2$e߼߼?vKs l`HS\W!2~Kj%,ݨdtzKTcm9vnM-q+0=ٵXV!BXIQ(M[.VsrPUwmU@19fSEiU=	P"Qo_N<Ǵ@M]FSrbW5Vl~&7[Κ,0ZٱLox݇(Ji8e"30E@;]{d7jYhb$
~.w LW4o1kVZ u~`{R?|csN={D*
-QHۓ__??d^*.^7:k Zacszb<Un`Hq,N.h'U?8>,%&1kS>ǖuMהGLx\wJ'K^%+!hٯyVBb!"#b)"Qb8Up>ҼiQ$l\.۠%rC&Dv617q]ؒe f&81nf;&1f̕9%"BUrq=OJyظx<ÍCT?De&.UT9ӮFz$~`}н3~tk$3q`Nk
ghA$Z6+̈́D	y@9,M#tXj@Mm>*3G5bxMP=K`Z*obcq?@pp+%&byTA$BAwttp"һy./c^orˬSE4Eog/oG{'g7C<䄶ã}XGdHȋŲ웁+WN,sӵJHveYQxhPE3R[y3ølbc,,AaeVB-gYlR"ÚaGo,>Ufl$oKc\T)ZhԜzRs#vRJXgJ6M^+I"Iq fͭ_z<zW _^PH!9 &]x]OKA)
MJ!4=Y/K))*ԓ"I4&16B"K&8aqvI<;3Mzc"  خz,Rt!OQPҧHB
ź,FDї4rS~hb߉(N-nMD4L)6t_J*1D AаPDqP;6AAO|e<}0ۨ	 9]	y[jΧs-no9_ȉv}̮b]	U*4}
n&ϟ\jvfW|yuw"Sh:_ֺ~aM.^JgAc'mx-^?bKNG	|^kbN&C
EH, 2ԩ^fo<Wc7CL{O>xuSk`f6HU6囎%Pc/.9%|6_4iS?p-|ӃA<aia7}ާv\I([+3E HQ +U(6oR5()P ujpt`>mtެ_wϬU|W"^ &NjRuA%{Ywew),"Qޞl^	3x&rvYopce>=_I7HڌcI8=̟ʫ2P?baև=8+(@Au	}*ZU];8qZ1Hw:NV~	hLr'b<`̍Oz]Y7n!Heiv<y7Ǧ?zCc3!d-Ƭ=b2U+AVb%x 79YΚS^,r'&#佔俅9<4@QPtЊn~jXD52(Uă%Eg;\dIqC ߶mxtm`AbQqjQ|Vq~^|JbI2:
Pq2v˰Ne[

Nbg&:l"4 @1`xggТT܂Լʊ\ʂԔ4Ģ"( U꒙ZX^XK/I>,X)%V
)%V\
@ KMUUGc33AՠZWS
֗___XRZf=g`W` gW WP $c@a W?\&CLS(J+NM,J :U:p($Uz:;Bp0` Z4$RKJalfVN6FY4#QdY.	̒\hudpP~qrL^/΃")d$tOó]_N_|6m]ܜ""© NqFk$p tcx{sgC1<|y9ũeK22RJ*AbD}<uԟXt2 9W\SG!%$1pl+\ %^"<x[o`jx&	tq) Tu+z/ߠOcAQ~rjqqf^z|y~QvqFjjI|JbI($ė%攦(BĀ:".i5y䗂9&(4ZHs!ɷwAbQbn|qI&daU YRsS'sڰpM%"rD11̜+x0dM#QwC[$IP/$5/E!tz" #Rl+=Z\SNsIq= ͕x5xUMHa>Ӫej-:Qv(
D`||#3̈ZBE(Y
)d"i=E:yFvvA.}.{yo|\U%e$rH_T:j6PRq)_Rf %h^$cF"`uL"H.j(8,t[Z*RY*ti-T;O̪^H1~9ώfJq)8b=88:קݝ7zPhcbB(7bP}0pKg>zCiuwTUFa}V$Cj U\O12Z^!{2`LjR4%Ǣ0U?WN?JM/e^|\ӧw~nͦ6@C}q#5Ing	;&O܆Xc$Qxv !absFH&л7xy3\+nhLI=e{*H;cK$$WưhFW'XPHƨyUSyza:\%m_n펞Ҥ6.@#kCzr!	eal/T۟HR75}y`p;OWf(RTH2aҨ2/V :.q"8̋Z"<9!b4j*nLݟy+s*V0v{kQ\-rvQVh~ e^5{Wz`'T<6&Urxbp)vԒҜĂLwf%G$ٴ̜ĒDdEV\
@R W< 8'w+a14cx{op<zuBu^Z~Qnbdy.qFv\øf DF4xagA[ %5G!$57Z89`z ފ?x۩6EA33 D!8?/
R e@L^\PZ\SXiť y

%sXT'{OgVHYqM>1sfd1VGnCĂԼlfd-H-H,JX4yP&oXM>j
qGJbI!	iE@SsAr@l?SKFj$t@LMS9e'?e)3Yr]sM<9KnrdMv]ʌqX`3kr'Wd_O'Kq+O5YG?9?478>7 .՛x'lqS~8LN	r6(>2sR&3	I(+<])Ov,ycHٴ'MVeCs|!Z x۩UlC}e]Y'3N~ä)ZZRZ[X_Z\S5)MarDN1̒\h%\Ɍ<zS^\/{ڰ<_d';z_ixKn>߳)IjrUBqH|bA\ILn1+/JI-RUVKMUQPK%`>Đx07vb³f=];ٺ/zlVAРhs,ɫT59HD$?>"95Gdж
[ĜTY&_qSF&Ll.d=y#	, x][ܶ~Xsb҇olq#$3qnjİ].`M6H
v[gv/JJ3<H>'666](7~76>`]6!z KY0Il2tfKG/m.Y[^=?q1`"8[#O3|)wޛM-Z&= AY_b: DQD ї "X&>;룿~_"18slcA+M
 B[GZ^
u5".dARd")qVCjfXBTa(öw%J *5EX)D u"p$ԟiH~swq@{BSOI}}L,l N 7	b}ؘuQFLAZMa{7	èW1v}WA@`kƝ(luFM0٫qkڕɪҪ ƂT&NyG?Y I/;z|gѣ',5L<\Ö@)gX8t3<5u'$v}Z޾?mO H=O؁d]m"ȷo3߶LzڑwŐhæG{f]h[;c>>|rmߍn>*ZfK<86ZJ2D"'\55m-_xev[KY  5W>Sڙ)fOgME!vs1V=?IOAm;zʶ2	<.0+r%^;In,
l>	'Y:i"r~t}?bxQhۙ슀~cx3u&rDo	$éTyeAv=jCOuDJh.pqڡ8xx{koK=\@&z/c3,|0\:Gea ޱ띩BL[gN׈UDX%Ze0aw:eyp>m'<x9|vkEifAAs9JcҵG`càr 	a'1^5JK1`f[C5Jק9j)A
RQidYh[B}(k!xz>zvHٳy3C-ԴChQPΓR궲'׼x-R'4VZQ]UmU\&(E,Zk{n)59dc45gkVcjLѮE(h2(4S24fęKTJۥVZ=8Yr>Nt>ׇ'wѡn;K=^pѮٳzAD7ɚ2b!qЖܼdܯm3֗A/Z.ew](oz̄<:KGf3p`ڙomUKO/Zw1t1Y?}ɴg;43vw^<~"J8lc}[6FkyzĞ[Eђa˜>MoHh(\:y	D!HE"_em^v1^V\G4cuZ*A\j+'*[uM="USwԳ-Tݼe"HCtMkS,u,͗UbHhR6uyУ6̐6̛vy|Mwf-Y,XMX[ؓ`NRL-b/8ZȔd 'wqﬤ,ʍuAnEZ2T1 4ٝ:bᴪ!fޏ1vtZ/,53l(hZFei|06M*La*wԇ3{ȼ4HO}#CLņz)[%rm:)_3B/S[
['hoV4콠fG/e3Лw-q`gK';8HW*$Yѿȷv/w̎>*Jb7|zxp{*NjLBE.9AZSsNytwanw׆O/.oB]!WztP-O#I!:R܊@{)	2Q_#dZtk BA\:bDyѩBZ*)fȑE0>gG?5ѵF*nstFؓ}~<	"@4+El157Jvʸ|̝8|
#8("M=9ܧAV-,KbGm_g5@*2!UdXX|Ոa,*։Wdxxӯ\-N,jfWkbGı,ؔqs4h=W"GANIB,lY,muqaH7gNCԤ]SwȰtJ0⯇d|d5JjdHtqTVCJ:شq3v3XhJ""[7FP#t&IS-Dw53n_
b`w'pPV\jlbfa[VzXfd֝x}e8q]ʅlK+MŤ0Y[Q~gӦPmoƅxsԩzB.2D)ЌRUK.K)ڤEËNΗ W1qy5{zvm$H0f?7]%aZ2)-JD.iR%ȞΨ2V"p;:ܳ8铧NgiK{./ )YTiF<>\~EiFvIV꧔'"Rz|ތOY_]}1BZhOW ů

N]t81oO|rb}o%xtiMlSRKJ3R&WH@ԲԼ$I^$Bd C#*pxʹm2雛ڹؒJKJ&Wp$g&g'W8l9)E f.E nn6xδifb '*xti"@^~Jj|bIIQ|riqI~dEWqW 1^xti"@^~Jj|bIIQ|riqI~dEWq(	T%dƃ8/pl- ?xʴiڙ6suV  SBmxt9Ɋ9g2n>W snxt/\O  7*xt/EĒ̤Ғ͆LO  (\xt7\Oe3nv^ ^nx;6o^ <cnx;G%lp6 <;3x;'-l+6l, YnQx;qw֜p6 8dPx{X7ŋN6P%: x	Q#x{籠RSK2RɅj6z Tw{nQx{;63. :jx{RSK2RA&'N7yf;5 =Wx;q'oJSR2J'3Mf+I(ϙ,"5A-*͛|Qr .gxfŴmrl D2YxômEY8Yr+''	8٦ dKxtiC3KNbeD?8'7	nnb$XRR_\YZ4YBȥ IB%"pLMhr +/xaʹma_DFL~xt79y)%%Eɥ%Wl^9Q X?/$,5ę]0y>+ <	x\sW13B>Le-&C&)vRV[+*R`1	!.2dw&)0n<Ϳ;׾`ZUb}w@'rl߳ש`'={wV{!hFNＹMNuk8ީFìr9XqЫ;N49jHyFw,w4O# ,:\u[	=ht9އ59T͵,o#KUo/8i{S\FQr- %8<2T¼	4:TV
La,jA#JNؚ櫁0
S(,I	`Wwǝ>珃#%GM8;GƜ###GF!gp}睑Ua; d=b3a;l{tNusfZ9N!	3zu l5jON V9eo3֔p5{֜CrEU?
\73Cqf:jP|!hսr^ ) G៼h;hd_r!`.XnV{0JV)hkNkf<Fƍp8{w[w~ڽrns~?2^wo=`=~ݝ]b:[ZB[{Yw\|jڽuϟ^?Q	D=#h:]ijdzlٮF%tWP,xQOF;|Kpjzeϯ}?9&*amL.CBA_xQ'"}{sΌ c5/G0Jl6
|brE1Խ񧋽g3O?ˋ\?ݥ+҉?*@'qOcY9]=dv/?id É<?֋f<05ccCj$.3WlQ+Mf9pdx@T噠io</]-wEX̼\ILPr
_m2xe_tj o3ؽePeBϑѡǆ+ۂX#\z-L
˳]ͦa~uaP/uLwy}a$dQ\8ʯ =~q?~ S}䟫aRx&$DiA-vQZ
NѕNNXHP8?CVm{$u	PM{m>	!2RQ&APId47^=.:5@iB1	At|3Fϖ'+.g$ڰ<[/my~73 &LW&Wkߤ[Z/(8Bbr
=I-7ikg#ޒPR%4y(40 Lد&:}hRO#c)GI:LKҘ t{LCH,Q˳#O%7vmIp-~vl}$sܸSng:xv\-$"T!Kx<z5<֌ߜWu>)($"h$OŞ\5omT#=:[]=S\
Jq]hL/e<R#QP+&7e*K
L?iXr`<ƽ[nQ#Ovݠ!Cvt)b)EtvMd;#w/wnԊM
	9l+tI7 Aq!izx3^űճ)a	mPR
+*/-IZ$A Rqbe{\_KO,$B+TDO6Pss1>:
3dE{K_R
"532k*ė/ݯVHg<1_?HsO	SeM=8;K9
bIɰ-+qx,Q}5xjT-9_]Z6'4Sp}o@_W/2I7 P##Q|y+8*'%0!$Tݯ<9-Tv`հh<TmH*S+TCERwn3b/[~4\̵mΡbQs	Hzm)IԤ|SaQ9X(;!SNPloQ$4흟EN<G6Vd=|Ɍ4\Rڷ`vm=|5Wk4w	y7O?.-~~q7_C)ؽ5=\̅b+	/ʃjKw2GŦFH,\qso osJ'޵{khƷ7[CjĨ4N.Kx^К|Mn	P R!\j m}$سXhsLWk"
]nҘ\բV+dv9;	/I>|4 V td0@`*Gq@d(ԃv)HKCV6+mpiĉP_Ĵo2ڄA6̀m)LJ!KYXHIf\viuKKL8gfxMOe4ؗ).oKr5jo].8e4O2(zdz
g藋vb
jn	IUt}E؝9[~JsfX+j&NX SǓ4Uq悙¹Wï6Ƹ[
dMBKń2JqK5'?Ñq-\M;n1j:w@GxL[EqXOH%eH /2D#C#epJv$xiPԨDN1SAJ={R'B~rKf2;ݵ9맱N[zHsSY峜^V:c!f>(GBU"&Ysv-5JB=yUŤNiUMI_S;I!,RlA	<KR>9
3,Z,Q_a~Eph	@@~۝,Zo).* N j)'G@Gyk(YB: tB9N1:Os pƒ+@nPv}@\CfUOz@@*Bvr٘ٮaD63Tj	Cao-JU"w)T^(1sU|ĥ|,NexFuUUm/Pr@]ImFARmBTCۺD4]سr3v
8lփ&I^mtIG5@8Jq1`7	~()x'2Dwrd fVOs@&G ='sQm\V|*(KcVFE8N\Eʊ,&bE""lįTAcT9ܟrY
UiĬ]67pa%-c
}&TVCY"nX)}zF6gPh;p_Q<"d%YƔ;j%2k1YB`Z?(BD2.n9i*MTҎvWj8Kg,*Yɻ\!J`c79:'JLjZ/  fSf&i#xRٹIx\YA/˟T[|O2Ngm.qq}GiYRlOD\WJCϥkͼBJ)u<V?vx}28[bV:wV.Y}#H<j]UmwXNvx^qDhzB:	IFu٘*f\/J܃)ScmJlPΈT8;<G!M1N*[rr(ˀ]jİ+YWbK F,N+p['2KG+A
tDY\te$F%I&%UD(|wzwpoSNT\H=:8!Zl9
V.-I	zhXѣ(b(yw~VbRAXv^$@+-^^$P
k:f}_j5B=3-_,,(OcI&G+ÕCpepɁQRN"x=bGv&:	'Ǝ&AW2TFka[ބAf{"RtR卼w8QSf}ءcXQ±㊻̥1JܩvQRtB@XT^ ^/qK,4x)Tɨ2M}' 2s-.,EJèjvKVyܥv3{8Ɩ&A[{x%EPge鷢+[Aރ"bAN+hxbgY#"+fbݯH$GC:2RϥxH<ʳb#8t{Gj }&ySDlIT9{,G=l~;xR]>n|dr*MYq1=r]	Քڬw`wZKBx^W"4ˇ|F rJl=*SA8;W*A#?טwG,*io9y"CD=D+i|DKӻWiY.q0F	)*Ǧr@H?m£9/ϭߙd_%2E^.S&z!*2Lx8=#4klRa2}ŐF/)(➅)/8`3qn~w-tJcAq7"ԫwƎ <42/֦[z
o;$Nѹ3g+n;1ke^l2a?Qo#[%ʦH@ktQmDڰ8޾s"f!<^u!hy@@7R5NƢ'B4=ZIm!w#IS+Gx\;qmZ)/ /닮n%>e7d-(swGɧ	n\IV 'D4IדC<2zȗ ȣҨHn n.=bW-+F9zƮiAFHKG2+3eɩ`(I&EKDm&)9-.1
5oJh6I:^WhV'jwr:ܪ4cAYTa*UGGAә$=myB<{/]+yLO/\^m뭬ەHWd0FT(HqA4P9FE0pX-E?Q:;[9lVzMԬ2'M ulؙ<IB\T_^
ٰh.5|e~ޮFC%K~uMz*zbfF`*a hJ*5BK(2(i򩜜al}r43|?1Ehs u3M/(XSh$!vSl#.h3
"\VBQT<jR>fV䝀F.YES|Ȝ ]!ms,Z0[)ZN]F4?ٚH[s__,~?ZHR)/gC/WnO쑛[-Y0y`Jfpܭ=Xb~eg#n0Ɲy	RbBw륜(A1dmɃTnEx0o6' 6@_x0q8urmu'35J/RHIM+QSH,KMR@ тĒd)eQ0WSS|\CV:3U!{'K[O1uWUVx9`i

`Albr̜T+'_2+69QOxaS&lLTTideg%甦@TU0Sna	Zf'(
X`fuTC°с˪L ]y15x;3q'M'7Zo60kal*.6y- N,x[5qlAn%)y)y%%99BV\
@ @Rd/RA(b@ 'D/ $Y((n<:
	nYZ	MfW'+3g)L.4t7Y]1~{b߻+Lt矬!tdAa@U=3 \>oUx& 0):90: list578EBx?&ϑdϊ,I՜|M?kONt0'!dkNWV$-
+I-JKLN)NɎO(e옜+%d Ռk2rlm`b=%=WxO?gPxĜTtjCQd-~-'/דB6N~^nbvjJfQFqIJ|f^rNiJ&ش"L|AbIB/6i9
y
 :>/175>' :P$R\Y^\Y\__2	hdAGo9X*&;(2ijNҞa 0YRz.d^J%[Mk{廟vlyI>z7MY'3{Lk"8ydOsYF旘&HN^iU  7x;3$6ke)**$[q)@ғLY&˚	Ln@[js LJ_xS]HQfS4iuuֺ38dô3N5#c$Cj6A=AB[ݙ]/s}~M^dmj#XߑۅOpBRU̆Z\)<d/r'TnŔ'Av?ĜIQ"sQIP ;oG3>,r]H's5U>. Z:0Cb,2E$htav(~R?H`~kĽgڮ;l˰9b^ެ[>3|w}}4pFDǔ %D16f%o->5jX80;VA)㯬IJD4ecGɩ7-M¸|{7ieϔtwdz, ȭ35rW1%DGldI>AwHQkY!/J7Nkݚdk_X徑ٝ*ݐd 833	\ʹ~nR`S;<ؕQEe1~#ϴVzäEQ5Vg0DR1 \8j=rfs(ΘfxNEY_{LDTb$*p5T|+a1~$Do "ȊJһM#ϰPwGo_ӃM> ư7x=qd5ŕE%,Du#x9qlr,9i*	O/-+_WXW\YTFjFN֕T&QcdK9^EũEYy)%y'Inffdϭ,NI(ϑYշKIM+QS[q) (--
0fMMi
ŕE%P{V*$楠>*+Y I-Ϧ?ٽO;6(CTUV!hVj|ZfN*X{^Nx~grFjrdvɥ
wxdR2&7ON5h*hYp]	\NP_{2E<L[,D}	ix[7o1ZRIOțMֻ9F ;
x[7W̛1Kl>   QVHx4qV#̢ۍAӍ'i9%:
i94js! dxWnDת%hĂݥ+mpmUiWThӪMD7GI'? R3 $n<wn<';)3OO~]Ys!%{aD:0/q@iJjd.0'g_M<8;-G!㨍F'pw8A%ܕOO	s!BbN,PEne|Ԥwlh?{]Zb6>qZQMiC	.Bzt̓|UKb,|j˗ s+<^S@If{\'_Qj	y*cgzy4`OgHl)QѤ6u#T[}BG|
KJ2Nap]hN&dx|it: 
`܍;tKys!$ X.Wnal9Y"N#2R\B"( >ɴ0FYgbJ|K6rQmY	56׶ڮ&5l	$Pn2JQR\p~雇Ĵ*v(~},{IY1Oz䊧'.W] JQ*iٌРN,BAf?^0ΘݤJ&xvF#z>1}" ˴Wya0l^=LT$R܄TOxҋnLǔ{{KQ;Ej"r8mk'-a&LK6hAIȉv7bFlw;ګMc4y"AXP_!,κB3/!2DUd[Unc:|%ԺwkȚֱ!֟*%Z\iبbTYb0?1xXe~F1	REE稩rfokdZI#*,(mQ΢#/!mm۷)@do@S䛢7'_di^ᄑDdO>\>r#Xl!m>*6Yj\+ΜB^cAP]#wZbyQŧ!SH)e"89ۖmĔ_oeO9;کS}>ޠMĒ"[[+2端:'==${v:[W2xVmL[UAihKZc"nӈΩDʺ^P]`a6}ܦY F6Ĩ?f_?+Q[E܂Qo瞞{ys㿏ĆDxv͌ȇgMJDrᩥ'SFؾ8߃e~65O{Sȡ-|$ۊ*oqK'./.ϤNɓO|Wn^_|mG=S;8ڤGs#s[is`:MizM&D-I?p@s	8mD,n 8tT/=.
Z!t+9^g9PX"ӊm0E}tZu,/5^ȲFFG2mw#~e$WK͂G0Ǻ3}3kHYwʷ:$VкaŠذ]]{nV8煅z6k%Y
ҿ5]w(Ssak8\xLZ3k*C4\? #<Ɛ$  &gVNϪ|q|KϬNg&X)1eCH[Itϱ^=o;I
*un*Ԙ<sA;pt!VH+/"F}uwja>|-Y
-0(PL7(fx[u׬rWM	l8+ڭ@CtFfxM"9Pj:'Bo>7BиpڸhÓI`)iFepK=W~l:pUxd7jJnDh> l󥃈zVmډ7}jΗ5Ug"DrP>]GiB@7]baj`!:bjy["@ʝ0kg^SE4?[|dsxIG{rzs[EN+M
|UN㩱8oC$?tW^R'Y:tt׼T9`M2MpFI4|X]FRهpF$^Fe@bmm*>^uq{)o/P
xPE4n]u`6ab"V.J09d\p ;BɢFYD~߰eLIEcM[&èO^xmAUڧ2x)g%	1^Zē{IoH1!5T5,:jwfT/ǸA(2(mmJ[
Fyaݦ+dЩ6çu',kz=JbsL߳	s:C=\=L~F1Ko9^HѣD	ծ+#+S ϞSv@P!H
T0NLt3R(䢃eըj͂K	QU
*):ct*ƻHIWT^p|н>XXgQVC|vV<~=|q׮&z	b1V;%!u(9yvno&}xB</A#$^@?P6໛mXAcfBN.7l	Y x{8k8KE̜ݒbu<̢Ēļͱ,]SK2sRŉ`tYMԂTuu}ul-7ߴgtQ/-)(-+UW״R 43  $`0AC
,W	/H@RY!YĒhu걛:ofݘW֜Բd@L^ekVXTZ4B>RԜli2*+HUW.Pk=U|E6Qd3_T\>m'?J hrM^`, 6,8xmOKAYE!p H%a,.莺3Ra7:t.c СOѡ>z?^sO`guNVQOSa^ƶ8Ze┨X#nauQ]G⸔7\#]MZL"pCBјrR?_P"j*u8視<?Ce+N<emX[8-fMO{h-RRA#m	!3E,[jbnǙ tuꘑ+vgK93j=dCb9>o 갆K1aˊ(_H&{ 1\̆c>:K=i&fU$! ܥV|RS4 iLvN\F]|kViOr!333}t!xUklSeNǮunksY/k6n"`06=[;s9gyfM`Bhb?4菵!hAΥ]ϟ彿G/FQ$ %O1ag,rɓ17a5װ?hgXlˠ1qqpqӒ0(8	P4z&Z:ӺQBsqO4Lphpf>ʱ\'nz߈<V^Absal\߼M^hYEЕ	.iiʜǻ/34m{|XN<6{H驃3Sӷ\T{P1){n%ٽ؜zq'%~˲(٧`
? FyiDζ^A1aʀ0ף9IfQq.Q(_k$@2?@
*rd:XPN@mpZ1P&l|WhK-&-b&oveޯAyRYsUQ2XMEQV!-nd>+_im-DiQE$fWY&VTNƎ\)KaZs^Qb [dbɌFPl0̩C!*J&"\3j)9@Py!5Jbȡ4RChGWOF-+I[L?Tu"'d6drj|#"M	|lX?g52kVc}-k7KעA2e[9|U[|"`mLHv`nQP/h|DdA&5)n'm-pfFݏ&{j<x{qf1j_KPPg{:;^ۊ2S{r5nNחBpD)GJ󆄁afynR>GByK˔ \LwO7=y5qy<qb$V
b1q5'o%Mj8 ces3UZL8J_:hOGgKmpYt.Y0aDDM|͓맱Ћgf+k*VkV2mi<3y2~쵋[{]<cc+FռXTrLjq3#$Gi3=JrC
?|N|Q<ũiA'"ԇ6_|x=NvS^kh86tU[pc}屫BB7l.3H:1;~>qFkuWdk.2UhGccsB
$y۶}Ul{
 +fn!\hl-{p؞Ǘⸯ|!o`oQKc3G:Y/ %Nd,
J3EI*)(\ɋ!G?]fNgRpPR6AxWmlW Jy'v}lgCǀKHRؾܹw1Y5	PUh}ak'UjVQ6ieS7mRiR?IS5i6US^8)c`==T(9|MHgP~dqHC}vXϫR&K;ɢapKѡXg$R|Cc$S1"k8
r
d1
$v8th#.శwyy$+4LMHJK9$$ɔ\>'2^HȊŔeC!"BQ	?YBAX,򢁖WԌ/g
jh82x)bCeRaMC*~ Liy()P9M舋Dh&8)iRULͤ$L
We]-@&h܁8Gm&MLx('8h4oPh|
rhQ?l^PIl.*iDqRJKIJLFVe:'i%=frҜDDb?l24т)3xAlH9xsC1)D5bra1iUCd>S8EUê,GİVȑX@BaAp S_񷳂^98]PXc^az,^
P?NƧuM^ˋ=?2pEBhH
||b23bhǛn쥿6hlqP(|qԱMFCx%nMU7£Õt+r$OGCc-);]zY,NQw[,8ڃ22ar~S_|΋\{w\[0#hfl,(MJqnp)]	)|,鶅IHdNѰ{eEŤV2TQaZHa)I]1m>\CrsϦ*L\޼YϿ@H<!Fc6n	-mLl߃1- #W6l5hLN_vmBW1(o}8? gFLv~^vÍQ:'Sm}^,{s'?A6#В[LB
5@~YcB|`X
=oԔ@J
45ҍ
f;'v;!nD䚞vAwOtO@7F;07ATc9:
7d2REcIsXemxe-%xžpc~S4=(#~	@ os;52YXo2srSKj"8&b4UE\) RWW D$QyA6c/\s;490}^dg{)qιYȋ;NsA'<f],؇5ٳʩXUUh,d\cZ޹ᜆW(UI&nGF^[/{mg	Z괠'^5j§u3A) w둝EY|W\tS>'ZK|TY962faD!b.peo4k{g/]ȔD| A[Qu+uX:p^Uk=HZ~½7/];Kn<ubj2ƈ^C 8ౡ۪I$b=S4/Nmpk7}х*YJ͐:J^`XNx-k]˫b΢괔Lo,Vmh3"5j8GyWVW}Oӻ2܀>F>jU u58`zG/X6Oq[y$􏀜	ke"ɱp(CG"pn}[6ܚ;#\.nM2rAji8S땫T9an7XK9+uaePPN;o	)[iwW8	%=h(Q۾p->wo/1m:#/_W}g7UrV2._~ŋo,pTff}OPFcN9A˅M-ܼ^Z~m{s1Ϟ=>s5y!d;.{[K/= \x{1fEj36N`d\E0qsS&<ٱ+=Eg>}ﳩN#M@]GA=&F]S
&O>/2KNVXP2yd>ٓc46d쥰f2O'5Ԟ_ubuEy%JyϦ?ٽYJ:
yi9%%9j1n*ddR'gw(+<[lʶg3?E{ bg<ٿY'ut'OV1Ύ&Lk !\tEs~^qIb^wOH-&e&0,a -xcBr~Jf^BiIPKY9(3=DA#YSxc%WrNbqfQFR\
@YQPZ\SY\
TƧeARKLM+5  2]ax}-]UU=@háH٨JA^ 	 xMPx]QJA-b!Zh#b1`q86X+$b Fp{q!*i[!`)~?mq61!:̛̾{ohʓTfZi)2X=.O:Q&23չhbz7=_TDL֌:1T?yNt-@^<=DIh0n24)̀k >Pi?rYm3[cy u"U6?HY~)ƣ{_ƒ,7,PjG̒@%^MHLPpJXHvLAe; !a" ʴkES?STgY<v ʡ2axRMO@x0rpImC?n$((t%rՓ'z],`9l2޼ٙu7%4'	2qt˪UWD#HẢixA0C=)Xj%	up 
L{-|x`GĐ͆}g]L&_}= Ӗc
60M6oU+VbU	UO B@~t戶99^	wf13nq=kYVyiӬ_^g$pD&h'fHȬgeQPNl͹Md\|'Qաd@9+%`ZJno=IA8|PQxȾᎮTfBqjNZ|f^rNiJj|ZfNLbgd%TnғeĪ?bBRR[R19GWQH,QZRZX j%ox}(gQ̼tļu2'_1ROIQHIL5ԴR 4Ddm5>.ze9`$j%\QV\S2BqjNLJ$e\(s!D&1\WdVA|v&ԒҢ<ĒD. z]1Gx;s>o1=ִ̜&gQ/Q gdhekZq)bT  $C/+?3O#%(9yTHdvfBNf^v|f^rNiJ*XbyX&7Mϋi2FSrl=1 ?x;712|յյziE%}$ucb5'P<M|< ^xRn0 Qilڪhdդ[%)wLHD^3o޼o開)7P{»L\qcŗ^H׼Y f׳WCZpo<CBE!<<shDaXFW	/jåYtL$I{@  Qp=CeVg2=SȭefWWqZtggN۶X'6V>&wOEƀvLmIeZXrV:mFbɹo{fQ<]Ldd=_u%<72z/7VOX-oMZ=̗;Yކdw~ɝnx&AFaQ_lXP7ԂӐX*^slTH.BhǡOdR</ǂ&EZ4"ssiO\M2~Z0Z.jMr t<4͚8'ͩ$iJvɨDO\l1Fl'k3F1ώI XN3sؽh6ՇGvX1H#)gOf7|	O$;v9!vcᱝCpJ׍H{d? G4848<,h<x{=w3&܂Ғ.(/+(?W!)3O*)-F(.I+)SdM+H,K,.)ր+.)Kw#CsJS5 ܒTbs NGx{:*d	fNۘ'd YT'L`<>"QXTZX^WTZl;YU1(4(5Q(,H:
)i9%PZG!#5Dhrqq)+ /VU@vkhrMgU N?+xke:QS2%5M!713/>4/$3?OCӊK&jMqa3'hsĢ[H쟪pd9F'Q~r)&B`#SXTZ/M+ )HLJ*+KMQHLN-@:\?2NbbST(J-,,JMK8:
%09\`MgRB7 V	x[Ys8~ׯzR+{KdNo-Ѷfd%ɦ!5Gn ޲'SơqDOCw#/7$/h}nbr:!_~CdH?+
=2>CQ$CC?Pb==򖆑u9G@a$dk$(p#v=Jv繶D{A"X6a>qĎ;Xycf`A9t< )wG=wge/g? $&1tckD:~C
T7CwĚRt : eȘ\Ѽ4ލӻygfd12d:#d8ZtI{h2
6.D E5Rf9uE;r
7d|nƌ T<wvZ
B;`1~t:+j~-}~w$ph-lzwK~%]q`ɮ/f#;K׼mh́0Psexhlb;o.f=6z2=o5fފ6sv3AC
{gnzB'h&2rSE`Ehei0|Attu~Ja64/a:s򬗵84Z].~M~LYCs0p"Wդ?x$]F5xkֻl8/!\GЉ4f4l:+ooё)*4*Sf<7zPt<	)5
ha9lTfSP1,s>(lFoYB&l/%D0da\j* 4n܎[cTCf9޹@˼w4W_BfG7|_<6&WfꚕhWCh^vނLPFf"]eɚ1tkWcs^4MC<L1`ܬp:ߢaӬwɲ@
!7"`lkAZʂ!դ]_
+>G@EԏYеx,psӺ,id PasX4<gD5K)8cIVApM.<ՋU@Bp-#	+Y,rmd	wx܏,v|`A}*Y,xBL,JV]7=`e 1a0,t J1YP.Srau,+(Vr2ŷ4ˡe@޵KaDqMNs .`%v#ړada6uMCxz,r-gˊ9+gPyb$Ћf~{ܳp-	W 2 k _kv0\M[{X8]=!hl/{D8##={E*fy)bp15QA)0;ԣ«8qfc1ژ[	X{
0kV2L e/^lH3"ENibjtRx`0*.Mԭsmj !#˻ bXx'EY:CBKwC펈KA p%ݸ>ۘ ?>{>Ȫ$aBYG$L|1,"UO s7yRƬ%h>[IL[	ԒxkZ6.Gx`5o.҂	w2#0Jф_CJ[xQL1?cGOU'J0&m) ꫎؏02.mt.k`1颚Ȓz ڽnFA
_.x=qC瘩h/	;ԕ-O7!Qlqu-9s}1}#}y!Tl8~ROc&PL%+1{2-[́	z)+Gymþ:Jq`Mg0Roe  >Y?<M(UBk\t\ 4[]MMD(ѷWOO+qQnm[ ɑxX(XI1&/Xj;&iLYSJAsg!hx$K4l(['K'w =!0gڍ
Yi:AvM +VY댖j-Rzx&26OZ5t`B*{Yu[[z[G0iٹG~T:ް˂Cб[LwӭRS$UR's!|ե9|'|W]j򴏟!,嫂X]>lT.ev_0MTƠNHſVxMa*8WvͷU J25'.%Ju򗂻*A'tݭITڮ	YKE@|˱=Cb+u,J0WAV9]yRg*"0d^tsVКy ƴjS.~
aɡ"Ru[vw9݁{w
;ba\|ĐiG?򑗡Չi^6VH߻U^[͗m'm4p)FQLٓ^yN,ZF4wjI|}4<NjD:l7\hk<O↷EOP}#D*n!Z[~5	+~FgU~w zJ7Vg;ev1F'm4o_~ھG	ţeE|8
:(0z_^0hWJ>Kͨ(ZFh綶_ F{ʊX뻱elaaLv H	 gXJO𞯧] [2HL\/upn}nsQiOcɾr,̩R/.NuW|dTq@zE*^(J_r=1 b<{W%9w&S$n!X
-gJ1T&InCcu1ךRiQ6:Ssz4NL-u _6Ggk5Lu94}8g&ev[I;mEhh"G[X5yDuNaYHl:Qع3A2xϳo_|[e)q\Fc|ֻ%ix%*=ҿl^^.v
4J$MR9u	V*4gJu`N&ݞԎlR
5\VPV(&3Dʆ
%ч*ץDƯnMde]Tz~qZ1|ࠒ!2	BY:&=5Z+BUl#Uf#9mTd24`!:&u^/]hկqH:FGRE	<O鑮:638ZFcDܚHMdؚȁE<:05Ԓ)EKm*9)Ҽ@'.%S*
-ZWeQ:V(bp2JVTVK= I,ʶ\'N)»C?+C<)Z<n~%L4H`uYCv$w1*o<\\Xc,k-ڋPWIZNJSIJxǸ/ZYr32sR'*)d*
y%

y%
%`̼̼t4Ɏbݕ12ZNh2yU*r)j
L6/6=! ^_Z5)HVA]}r̼T[bNq*14 ^nVxq4S /Box9 J%o6*6a7z7[D9C:;QBkF|$ xc5q8KJdNPc<`dɉ\COxt]#^XQ[0y_z0u 2 !yk Gr`+n
D2&+H+*Zq)  HEV`]Lړ癚[f)&f'Wdbщh|S͏MXySJRJ6sZo圼ҜUxrR26:%5M8$EFqjN&) Y=IKPŕX\.I,*qK	K)MH+sP]\C}BCB@>Avs	rq i٠x{5okPPpHWK~BIb	i9)z
9ũ
yiE
i
%
** 

řyXYd's&dƃR'!D(Mf"
(.	fqq) AJjBqj	DFqjNBXdrRRsP,ب(y&YK%!	+C
.L:YcY cv)wx{gkPPpHWK~BIb	i9)z
9ũ
yiE
i
%
** 

řys YɛK%X7˄&dƃy\\
@PZ(NIQ5@ $ ̪ !D$x{5kfP?o?xWg  +j.(L!*d`8/m,|h߳x+Cz>V9*zbuC
dsp9	lbZ@e50d,rU0<f >IXB#2utpBbtâ2YL0<S%<Sxg0"t7!8g ԕ	 oe1QxmfW7P[j.(PLQR5YJS],^&]}B"Cݱ.eY\PPS9(?,sHzćcS*ғHM>+E̜bXE)0*P|UZ2'
s)lش[%7lV\>QB44(U !:YO]/7hk^i.6U	9dbW"7',(31)&PXoryE%E%&&cqtq[▙RPP%\CojnȌ4d 3KsRJS
b`;9AXakaasF
(+$&ʿ)wOJCer9[&<6o sxukfW7P[j.(PLQR5YJ^],^&C]\Cl'eeR,A jB9`AV_e:nG,gZ8@78đ_Y8lcɎ<6[`|o36 &?/Kx. JIor is NA6VA9387x[iC'.l9'M~n}iy6L䝶& /|'&o~*h80f]avFƀf"&:
9e9@*?9$3?OG!-3'5 $CG!781=uZɧD'WURԜ4= 6E''CLfҴT /69Fs\	n$'_3:W\KEӊ3ģA&, 2YXs_bn*P:ؘĂLҜԊ $}2@u08O'Qei뗟ZT_o20>h4ʂ+%&+JO~' ڀEXh8\&T5@+Y>9MR:j6I~-/tp"?d.K`ݓDOfU#?y2r̛ə+nbdVy#m,")ȍ/	̞gFy#P/,bs|
ܓ'+XJ8!+NJ3 LHHx8 FEC	K		
9?5,A[xa FE:;U:46 `0?!K		
9?9"$gHx{tqC(󕻞-hvm,f̛8%l)xa8i %ex0iC(JnfqBIbBYbNiԂIנ Gɕ,zEEE`yY2هƇ)*(d*DĂf+)g(*䗧Y)mfw +-xZks6ίP;M!$tvfp6a0dd<ԯvX+<j)Xˇ$Ȓ9ҽ؎tDrE2~g(hpI<Fg9_՛!Am:ԪOjй~'('xZ6ʮT#&^BgIvWa$ȳbDp"4u\71r|酮c p9&$)qlAomYqyŢf1.ݴctZn@."DC@xXY3ZPİUxaL(&8sb;rY>:Q'N14
s|Ն}UEjzmmtv	*°T ]F68G`ԱA?KFωfF@oVZUT*a?*Sx(^x3MKEdmͱGv;/UB-@NYSmnփQMMo}euT}BgptF,4:aHE/mb:5ݠsS;e?}[
[NSښFQtoy8n8?<^@CxY旲Mp^r߈&M4"1*#NIBpTAr@6KZجԶ;y
S&xmE iB?ԥ]t7`}}%1d{	At]Đײ^-PRۆ8#m:H<EL!/<=]#C!_/j^#vQB֞ͨo^ȿ|_-7)XTĭw"t(CȼP}zmne@)dسl,m*B62*z]9<SݣօɇϦu!e=1)pKh,xRouf0JU"-_yI\a$wcrmQxʗb!rztY<yeSp>/CTw*gCȈ3CKXd2]Ȁkq2DܬTJ/BΛ\Z-K)gi
q*hSȦSNѦ=dU4m;J+M!C>ΘXd 줂PR=$KH$*Eȣ%J/B>l'n	ǖl'	M赶dmLnhVW!W"]af<σ	k)$M/;=gQіda3RK#ڙLL3La8ꁏO=FfnU7
s=zH[L	?ͭEg`Y=7iCIF614£'ZA!_~uTGz5ufqnhAzr ۂ(@ICB@ç=*M57Z=*P"N}yٵy8ͽz!Þ㖈܊ N=*eֈ.@2V5]b6չٔ߇rP꣮D%f]{$Bqc{J^Թ%*`3QKbIs)CkCyKfNGZnp(&m\GRo!ܸNAV0D7yr0B9,i[fR2QPEѸQFq(qbID
a&6*:(ǍIJi<-//L	&+Jnf@&#HnVfwx\ݏGr߿b"?W(KILVEb%yáA@>}9>c>3#	 AF\/??G$S]_UTwzwWյr~?Ȗ|}#/&zo>J@X^T::~={ͷ~/ϋ2/vwz IO*YgӲ]Tr1}3
WLӕ ,\,Y~u^`\erVd;bYgh-ge>AIvˋl1zY^o~]/_v~~+Lvo a9ϊ*
\=%'rg*O=⺓<
xR<YN, \<dFg쀍􆷏w:~p~wtf9qp'+ T0&;
Xjl
ZrZ:?-Ń;ٲ
MЬ<+V44[ᢪb>Z ^껣I9?nlwG7{_lǏ};?^sWMt>pӬѢG{7?l{P۬::vn1\~:Cډ=Nsgth0ڻ9³yo|?ˏs'Б~f;:
س(_~}h2iB|/dX-kZlq0@~6?{-'iS}w<H DW'1,y
Ճ{<ǗO鏅GFN΍nv}F`7 nN<<#tPqGwݘhTHF#a݈8p' 1:;p\>/-XBA$quم[*n{;^ASe"B2uwwWCD"}xGã,!l:z6_~	=E,F(ۮ7hFA7X7
(d+v&J7?z
=_:hb72<?:F0;oLdR/Nz.8a3omr<|R4NWbL[A>`{јN
snI
x鷀۠͋R]h@|jN^׬<"Nc^
sL(˼5(Fea+*9ɾw;@"ѩ;G]|y8nuG7znu".??[t|$M#zIѝAN?ܹ*Xł
G07b5r@âa{s8!TwvG$,[L,0?|m'ӧ[_6aw[ꃵW<Jʒ=F1G[[[Y԰X__W,&(Tl;ms?S/ӚddmGݮ
tNFzm[ͶgkpQsl;A&+<2{`t+NhiYcQhVG-WJՊddU"*u5R(QҜ*h)glyhKGr:^,Ss|m`BU5ֹ'ŬюH(eaeLQ+`M(,hkɠՠpO/YhX^$1߇cV%
z>*#DWSSr^d-\v]S.nR)tN'] 9ڝ^=rY`j 8tN#=35a<jn)):+NmmQ1pf@PՃ 㮭	C놕1^4RhG#Ѥ0,\EdU)bx	50~$F _ػ JEBć8hp "3KF$FHk_&RKc`AcaǬ1BcIB ;XT_q"4]5(,aj	r hp5%Ofy]z]pjݣ8[N	`Kb):ĽmHP)G%:q][
-uHBZQFڏHҾZ=J*P5`EܞUCoh2X7:$PUxE;_wgk,+x5*{
|EJqi%mCW-uFF@Nn)nWzΧ5 'i Of':khnRmL&mzF|ԩ3BȯIFiLȩAO90$S70%=
h'Xem	5{.*I"/¸rw	P[QuzVK.\R'NbH&y&l%.UeT4ށ+O\eThLcu]ﶅ%LbkbO)$ƂQ.Ov]4ZkZCiuXv-t{;LJ+ٛ^*:)YP6׊ZȐ&t[YհTn,+>6]5h:(cl,G✲Z (Z	),LYN؀y$#%`,E#aEXeMOK\fmkNdʩp6ٱy*g	:ց²c\֚ٸ%`zLQ
vsGVkk7|BN/Q~ϣ)ko,$\(U[}z @*	e&[y:'RiD*	NÜ,Mq,c\[XgdKm4NWM=UlXUQÄ+FI5^״
I[C"Q/%&6Mv꼺ͱ
PF/9@bگm n5,[-bg2ߐWB<j3Gn*lz-T[vYn^|˟UEsэ1}>'%7W/R?=βͧ}}\TKnU/C9*WWl?0s	37:`yfۧQڤ>P/j4u+]Ƅb{O3cjv
\J~?4,fz6Hfp:ԊZl}6XAD_`I$	0nYԭ'#.YgnyzhxO޺^WU3DD;=1`[QAd5QA<Q9@훢NvVLcYK'vw:.d*}z=Ԋ{v~`
]Za 
9}=fhg+#4dʎ@dui7UpaG6-~`{'l\|eCA"GТ5ن	EP+w0h(c"-\|6(.(7!!#>4YX)'vUK7X~':Ec-gF$S|/GC-[ifFz(@6hNQ}ށdF9hNv#:yfiJqtنRXǍ?mÏZ"@~(6e'|,CF2E<x7w6)Yqfz$ȩ2XOE~ScGWL-	pS6ԋM|1ƼCQBjIrxGܬ4E0p`ς[?=db4a ~`{Ȇ)6hh᠒4El&jJslGRÍ}^ 3B>$Nq!%ƪQqUao51-6Xdopd>x;._)Qd/v<ûgP.v6AP$K	aQxٓA> ­+vMCt*q8$5A$gj PSCm*kbN¦SSSB;#׎\SIߔDb^PlQuy3}7'{RJjtcoy⊐1n1!0#AfZ]j
CU*33'hVyjq \S @P=upVQf;GŮ|xhH*/ʟeNy'Suw8_Dŗғ}5G*Fh,S.3 gB(fkB}T1Zij:Y.JS#Á>n	S\Xƙ#99@yfiJsWƐcό[?=!b4Ԑg5 ̶	SDH***s%߆%>D006Ud!(W(#YJ$QɓtH"B-65'c	F62>R$ѹ(78IUdK*JR- 32]fR3mL>]d&[R̤[p^;.Z3۝!܏YAa_O-!cZUzRlY8<Rb,tj_RXx۵qQN":
@`)A$Ohy=u'g|R[`\{'W|kz+ԼĂL+"\ {3K22RJ*A
rn9ũ`ҢԼx|IeA6zɚ6<yj(
jZ ,T.4ԒxTɂ2θc$T|^
FST-ʏ 'LKPZP' 	OVESYE乞<7)L>vfߍluMȉz2XB|vh7YN&gM>`:W\ׇqNni,iH	Jz..bT̜T̢JHf%Ӏ2)%@CၮXWZ_nZ$Ģ3*J*,q +40#].Vբ:?P]ݗ\ ߽Kx( B&:+?V
;(<aM>-*x[wI
@XX8yJHVA]:-3'5>%?9>'3/J!3(g02PnsuHHMJjBqjI<ũ9i:iZ4tt;،2Nh\\nK-4cD-QDS03L#pj 9%РN@CIs`ɂ<ȒeQ6+XW
$&{ƻyƻxT M-RH,j+/IL,J03A0G40C惙5%55*eX,OCuKcb@r u"lx;gކN©Lw4S eg_,|oOv/}>OvzھO󍻟~6e2A?ɎUp}bE&b|^ܟ/8DVAy>xgG?w0 OG'Wfv}웥2oe>}ɍyjYc&lcTTi|[_t%HY);xB$4Zl|sLlb4Yf-ܛ<	>)ii%zyK73 ߇,x`;7OW[Ĕ̜Tu. ru	uvI椖7?ay6y@_p_HMU@a~@aANÒ77| la(y x}UmL[U(B)KhoiEQ?cb)P;z0L?n:ɄX.xXʜUfϏ_s9[hnyy޿&֞QssN&87Fzbx2'	Z@nD[(&JkAcVt^YG_D]A".R:vKp>%x^n J'=EuVt+:`{;p9S|fPG]=LsYFN]TJusJ[ e.@=+0JÅ%޶*R oU*wYjw}ioz'5>\{J| ?"
b8	x1PU:R"䘠0@8(!% en+^IrYmfX9MeMLj'PZ*'a}e"_m)=n^nΐk2-gP0M#OaM[^w9nAd#Fޚ|#>y6FWR08&+]J6 ui!IOţ)c#ZZ-@rqՏ!. -/V\䱊/Sa&BfJ8Υw&xAY3ߚ:IYͤ|h\LT<?Nɡ"Vk̤f-jX$y`io1(ѡ$;h3pO-rsVUt=92+nWrτV2+gC୛dY-D&H,<<PB*{<,_&C`.J5Ttbt.<ݤ~A~'ʅejvuK:75.gj+ReLyeag$
MGeVhhc{V[^ίwX#NңAeclLl<2~vV"x\0tR<6+d|W\91UVA=$#U!-3'U!#X!1%$?(@$1]W(ɘl'7/+}9%@z
.9%PC<}\qf ٛ:y![U1deoE١&MNSf:Ȗ
!)%LΗ,#4Er,w=$,b0W,dA͓  >_x_zqC&$d姤n\3	L$>/17U85'Mj?m)a-B\QGD5Qt(WrNbqcAsFb^zKbI겼ٙ%`sK&pY@c'sǧdŗT"Ĺ@nNU&? $3)ZdyɁ@,&__T疘S:I&ԧL~c0yx	$@C"2AGTIhlwJjBzjI<TGbV5 5phZU HJ
'/0BR̘|Z?_ZQu;.j(+կlծrtBeB
ic5	=`DwZJOާ## (N'x;xqb5{::uϦ|sF5}]˞͝Ӟi@Ԛx4/45>3e>MYDpJjBqjI<\Z85'M\ӊK
@2zp	["..YfM464eDuf5fdg#D7Z1bP\RT&-.B( Ex;qC$'doռ[MIMS(N-G-,,ML(NIQ*iť  UzX)b+<r.j<(Nu6 &H1mxq fw6^OE&[pO<}- #
;+xWoLed!
-tĖs2JvkBX%K..6m@MSRpip!,@ů~0c_^K?^~h
{~]ea}a{O$T4%h=&MgC+nMX`twnm[޷}j<L#>RM=D &@Ay_t(.s!onHZXB*q@/do6UiHHe+~m1]_*?,~'$cd("H2s54D=̉K5*&ߥqHhc!DZ"Ux#aʄpdU=
rvY\$&}aԑB-OMdV[Lሏ7'7Ttc eqeVdpKEj|]<BSo$ezu^_cPZp-u8ޡiy%#Z$	+.ow>
ty
8JB\!D8@f#VDKpTIhDĄb'jwwws_	`ȸWň4HBF'O8/q٨X3*']W%7T<eSȝb\f/u=h!f7h@K)#BɊC,@*
c)v:ac*wzV&9G'87֡`DFyAnL!|<<pR<IXL-D`4L/2ㅟbOhs`5k0b"l_!C,NKHMx\{Sh`|+>/KGW
YzvnowEK
P>ŖM6P.&EGdd>=E@
Q #.( <8ѯ"jQFxnH}/_Jwѥ~/LSNIܔP_>uAQ,ZKuL'vmTɥiv&9m,:flN:&Oo{+wΗ
G'ԓfg}zq`..cl}0z'Mi	YBg__sY͹1o
kb2IVKz4Wo\!Q9{ʆQ.6>y3>JxF*\<~ykNBM}OU/S1xVMlDVlI4iiQm'@[	'q@TYUZ,ǙĶlj'hNHp !@w		8m+;NH}{o{/_药>!zlGXDI8|3T(r!l~x[Sp⡻,ȇRw-t*ODPޖٔG"تn&}U& V+պ(ŋvPmpe^Kj.ՅtpCzz*;O2=65Rs*z,;e-Tc!#% i٦U0,GCX9Vl'O`G`49&~!zN-ZQlJh^Y>+d6<31ۧN}yƚC~ag>|9Y|:$ ٭@%@fç<0e?쌏Nme@fA.eSC@g \ۜS-E,[<]mLk
7)z8nkSd[FO7@xV0nl?עE[Ү$Sa1q|E(9;&Pd(Tp@Yt"r}1*4}fc2rm߱18Tl^;Cz[1]^s)v\Ʀ5l7<mG4<J/1{Vj&Փj	dx#\[u3&Z#yYVM8;#&荕ëKoG:uA_7ѥmtḇT徍 R| qFB 雑H[g?oq7xۄekKcK*37\!%u"ԓr;@=N(1y3VѺe"?$eo[}Pw ,׆9}l_׹#dz4hSO4TlVŊ4[+iKid)k.ˢ,7Œ7p*3q`%:΅P"曵jg<-MDU'[F[.{TzrFVŅ玘oNnc&kxuCubAf|Nf^Bf^DsJs02sRK2&9M^)1_85'MGfX=$`@`L.4Ԓxd^)Tb,=H@`'Pf%ܫHŰYcZdd)9N8=+%9N)S23р'PCCGQu@e㶼 ?[xk`QX˲\͚GU$N2
YJ,1Bi-PӺd 7yxe8dxʠ^0xVD&i&iMi/{>~'_v tgE	·\Y)rcx8HsLd8I:(V3Kia|= "u:<CtrA*HZ5q
*Qar:J,ISr`k= .]`=9t"$)]`v( zԿR-,C'	ŮIL*q$^/::oaD= [ZaqGsdq6K6cM\[cNGs4{kCPN=:HPa\㝁PM3AӼ Yt}O].XA)p%ppH_ڵz	zOu?~twex ʺGG@A',"|֣\myߕU7
Y>g%mdvE8IS&Xembi 3_s2V3N:]yʓխ?C\򛓿xUؒˏֆ0A|ZQG\aREk$AZ(PX2(r܈9m*!8U|0픶cFՈ'V ?`ɚSZxV.ikbG7fg\ʩ8}1o&sj*"͂lw-aMVds9ۺuGJ1`~2jv3%vQN2H%i$_0?fxnFz|В^
>)EXCjQj.Vko
O{q }ΒEw?٥ξυ|tՋ+X$:X>HҍR^^sFC|$Aςz$Af@.TvSy,x*k0n^~M6I+h3"Pn!	sƂK|-ئJb \sRsҧ
:sFZYj^~\
\tEELƘe\(*uςω2kHH!tbxJhY5WHYi%n5kKG57..k]ߢod60`0qԙ}׎; UK'Haڈ|@@Y%GQJR9Z3#b%4ׅ堨^C&J|t1'G2TP{属.t\̘YLSCp.L-LJT\#,f'Oc (<cB
Eqhv Lĭ#֑ݭ殗ec6/lI;ڧCc;hvgzwtT<СU\xr۷p~^~ATU,li\l<Nל-\dߪZ|V#phs[@>-ݢ-j[jP`]r5(Թ{y:+rXgZ<'#ΰOq-|'XEݼ*siFWM|-dpa^}Uqsml0%`lDe韹$ݻUY/JL-Cyc{{|^7a^FyAǑ0oj6=ʦοܳa{x{Q8Odό 9 SǿZhfzxCh{ӧ?_?Z<"Rx.H`*ɛ44r*2sRlc .f,ɬT_Z\SY\
#C0
$$V`A85'MpVNlT`4PD;PUTwWrNbq^PcAojqqbz,f%@`c3K!(.M
,.IE%dM~̒0ٍUor<cNVe {/P/te49l@5@2Rf&v] !S 4O x{$pLp*&܂Ģɫ4SRKRSKr*lc (3=3/1ЄԢɿad(d&%祦(`Z M+U P0'Og65LAT;SU<w!U|AbIPB]-;0Ҥ\XbAf|nDoY<>Vyz ^/HnzjTfsQl <AG6G1'e
 v%	&x{$I`C(U|AbI:dg%"DK+KRsbyY&eQ`X'*xA n 95HPDكT.gQA ) .[xSMoFWLL>!M" 0bEE]fwiY
@(&=IOmbƲ3:d׆N! R伙ygRވP,T"c|W']mb!daΗxہ)"삯33|͠XGJ*{Xa!JpTK0cS')-40fEsuuu	1oF%Z|>7IMrW@=Bw	)CS@%(u R eN $Ӣ;LXωX%cJK6*-ء p0ЀV]ċXDB v?p )<6$*i=[bEH4ec.>)ɄDSQTΘ^Ur6cˆ(S@y9k4iNv4ULoF5K߻7#+ڇ=Mg7v1(ױ?>9&3&,ˏ:$\,bP	ϾM(eԐȷl7A]CXAq̸rLR(H7>.~<]|g嫳W}vcyˋO/~D/~]ʭ^`CMЄZYRTy\$yfFNN^'B|RE\(w-*\2׉IN̉tWWD?8pfҋ;qevjǝު8;FPE(eJU:{GGht0JoPC3t1gQm4oZUUVT;]yIDYh6^mrxi5&, $B
x{C)|[OB^LqeqQ~~ILqjND F JPx{tq%DKe6>~~>.!

EV1y%Eiɩ)|X. Ix;xqd  Ggp W`W[̼Ԣdu. (u=x{gC)-"Lz1OM.d1vqs	uqqȢ(Υ (~ irtdpB^LqeqQ~~E,| u!<	%x{g|F~n~I~~N~NNY~Nf'$oc6gUI/f	VɅ,>n~>.>.YsRԹ E5$-ZQU(R׋),./ټ V-x³wC	y;(*hEjhki*e楪s Dx[;odz p
vwruwpvsuUUP/H,*N-O,JM.OI,Iԫ)Pitqqwwqq)R׋IIO,Ȍ*\\\9
A9EE O-nx7o3f)o (xo~AQjRifNI~rNb^~~F~~Nf^inYf7 nUx7o3f) Tx[ɷo3gbAf|vfI|f6IF Sux[ɷwUL@Q~zQb[fNjqOoLRf^LNfRrNb^^JN (lB %dx[woCw|neqjNZLqI,";Ydb*œWCoBp/u# !!7Gx;woC
~qeqQ~~I|neqjNL,ژY05Y0Y5'OeȨYM ,0x    zxUn6+!RAC7IBS],6F6%(FPr*Hy|fH}7ozZHu&j_ghFW#w{aJ"X.c	e1ZehH_4VjWB R@iErY kHfYR(ڼnnӓx{
uЂ1?{i&ZLݼv~ܭw$y
~TIŖTm@Қ^oc#_c:w0H,mN: K(kH\'8%7o7n\m5<<6$+
{-YƀdmI6b[5≀\wleJy]-v;FQ:P)Ŵ$/#B	LbٌvƁ=ޞ-a^+Z7#$Se*TYíYK52i(17QcsXQrKj	Yz;tdV]8^P9ⶒȥQ:i!	e6<
g~FXg24X/?2|zNISOiؒ"k
DUD$Mé06G9v>Y@O69rHD%+}}
iaEFb=Y:.<gчˏ3(~8zG	縵1[|jߨ0d1,<+;R1:QM¶r%tjPy| +b#!Y]V6؟+A!BLЕ|癤8MrC qwkQɉ(hdjFc,Ft[99/oa4ܥ~twx[k]54'Konef xX݊FSLR[
emqw]vF$Ό1i.
I!RJ˴WB^&M
=gFeY7|;l\̤<&OH:W$6HrI6T~W`}7I炏'ؾClKft8c'g Ⱦ
\އXdqQF:)#iϙ<ɖ{(ȷ`addJ$N$\G>K19M#Ncp>jF0XQ [X#TY Dt{ss6T&bA6UexNh
$б`w&LB5K%qVUDg.@hL!ΰ7l9=F>}B:^E
ܰ!HidpCVLCùqFǌ&b8IrŔ^ V">*v(ײa"IdRbR!r)o%`V()Q!aAcN&w׽N]vo7ia N-C'̋yZ&8"p\}3u}.+ڴh~qK^ހ<,`;7M#}fãReti~to'<4(>MN8ZǱ˲T$>dxx)Ug02Vk)0CX}B#(.?>zWξMG<fXX~sFǯ/ͫg>?}0;7b>9ӧ~컗 v7/~/'f3/>Zl`@^A裄aJheQ: ><TU%'6jT+, UD\04o9dJ֪/}h.M %JZ)iwf44hh:+Lu
@zzԤU[=VT(ד;f9$FH,)ș|"u4HJf౲â[>	)6Lo3~YU^etKwƖ6M^jU8ϷkGjp*8Q%NcVbI++=&*rUD394Z+$vӝ4koDNin?7/hY~(-1X:PvTz39T]!z t(yY슯Zg	*!q!g^e`,}pB?KJ`SR.99\Ǚз}/5yBqѬkKe:HεL\u6F	sˠ K_n0x	 @S(Z05'XNl))	с/kTS1,Sf9G3pe9<bm10pW"Aʼ;/ _«St@oA6M회Ͷ 1ڝ-d$K'3{9̢DҤfNbq?EYv8BN~0b.v݆	6UicU4aQӄz#rq49l/^x0To`&vmkB_..lr+}׏)gw2qi*q_mj)j=<y1d/4\ g]ydg4=yM"$_dwx{tCiNve^\lZ۸RRSRsRKR22sR5@ܒ8e'o4KHN-(Qv-*/,#;ِKqv9K&PJ++M\%:Sc9?8%'`\%+ɥ 
:wl66Z yjGkxA0'Omʶ&4ډ'"^xl89&^uYz^Me"}4M\l7JuJ4e!9w]\#k?S}2Cڎ3?ϑU,@LQWX|/yk]Cp?zۿɣ }6x{|YBY=5/($5E!R4//3/݊kB"SJ4c q8HAbQqj|^Jv|FjbJjQ^A% MLx|yBorNjb^|^Jv|b^fT;QD
* XSx[sGE!˛w:q*&[)R˞,fF
&!	G#ns`rHOd	J4yP3
cx^۾]loY^j3{X3h131˗ػ|M8^~,(qt(ؾ\D}xPx5kex_?0
5n,Or)70_o91kF$U*gD7b\5L~<g41"Q}ѿ1]K8n:~xPU.%7>:6196Ő*"k!:=)g3!G[\'~AXTcra0݌SR`Xk,72's7#Nߍ80215>6`'OG!*脟h?H\(nX;jRP	JXWmp6S?<"Rf`'j0a=407ZHG}>M:
loPI?4_-ڼ["n FxBRqhZZ%VƩ[6è~A65#!ZÊ_c'/pON.k],n-$_Xqօӭ_%t>y}bTW |īD7-x~<8jdߓOm-\n?@>DĒ!|鼋u<L_Mw{}9\{|bs_mHV.>g럷n|y٧3_$+Kny,\Z|h-i=^kE{HWlyJ;4KhzL`%ͥ oHɜ`q)n6O@(>Lu4%|֗7r]5ӑbH,1M;R.dlC#FH?xKw2Q\wAMuk1YzC#F~3o|a°UXj{wnof"9؁I@L/Lb%r|R%3#ǋCATmd=x+R?GjxI83$2Qq7VubjdYq͕f8kR;I],	ʻZ.EZUc"d@1拇7̀JN4#u']XŇ	uyb-C~°Yٓ=5xpb0?@wB?$Kln\KkHH_Y0d킰qϏ|Iฃ֙ɕ#Sp뛝$rRנ$b^(E6<\uMdaC>!cMPȯWW楪CaڧKBoɩG$£E1~غ~X8.vVٛñcｑpeP]kzuy?)kYk ´.m}ں8Y|IDdENIrb[?K&$W:NJfjY$½3<ĳg'iH]7
C!-3Fz}*j&LfƇb\ãˬq& X=MepF%yCʩ3&_͡!a;ĻHi1yJϔr)pd[2CqCJ	i	Q&1O&1rEZgVOCzTe͵ɍ{/׿ZyZ3<TgHYJܣ<G%ؠZljK{ ZHQւZy*#,#2|ςhwԎGw UDmXTLXo6K$a:r\[  (s_H	ɞ~ģ2׫ +VHb޶Z\;M{Q|֙da4ҵ[O[}HrQ+:>B0ġN7dҙ\j5MUg*`)}43=Q>YF֫	IP3%=GR(𡗢i`1ѳ1S?
]mvrm;"$h W*R2-U71Ztw~Qo/=$KF\`щaƓ巛u+f7_`r:,]nci%utzKv9	.9ang0|il>Re2gm<#8vPR,]+R6x7OP_+v#L`e@%ѶU
Qʒ$\8((gdև7
m'ӭo&+ߙ1όpM8i V;7f|ezWwg6H􁐌NȀ-3qo+fvlVZdR8<HzNѽŋ.KJgri5)U'%]2.	͑ƥ5HX{pc_.ꜝN޹%H]<:.7m4ޅ91* D{cf7έ(֘N?E'T	Pb^wmOu>/JT݅3ҌgUԂxO%0c\YO֝c	';ǹ֞˺"&k%>:XP6g"bNELt#4\x?]e(o*Y[C9[;O1\E?0257V3,/bX'Z)oŭϖPġ+p؁4k%u;&#88cQ?ׄJP6F!&⨧:hqU>pVZrʥLw1oѾɉ.Ω4s~.AmOfI+uEF%[ӱED."N;$1J@FE~S,5p/he(mTDv0SjğcN^RQ
#r_(SMw#:l(I޺ŴlkFĒ'ՕFrHm6vA密mkHw D6c1NfD:Z*=h5xC<]yU!g\92-gd	lڕ
=yC
kȷftGIP` 7<uϖu*Q%L%[ǃ8{Jo-.R2Fo9SFQS9-́9;ÀNax;CH:,,LLOq?}dtM7.MIkt<AuÇkXA:Ovyz$(co&D"NA/&kr]{urZzv@/"fP!l=BMlybįcsx2M>Ũ.ML/_E%C2IE⎀4onT)}LKQJ/n>\[o}r/Y:!R!	<d0UAY7z R򸲒uor&U[6 뙅grepj=G)eˢ&Ti3QcoWʺ3UQLp+` s뤻L`T[6p(Ł-j11]r0i;U]En AuQ̦91:)D]p6Q9񤉷UP:QKSRuDnKX8Ю_]Sqm^efB͛݃*o~[6e?t(<IԜuu˜Ϝ5Ë\l}C6"1h? JY%-٪a@T|u}xٙ^]0L
릤(n[p)N:RaQvZhi;ۺycsVpgy\SEo:/SdZPlIm_7\S9?n.#RGU_	gThɗ8 Vw(7w?ɅBjI0<AьQ_
fy14UF,KUlC/ RF˨GȇrBT?s "〜.ԙ>:C>L+׹
){9i	[iǨW2%'X,0jB$1d\";H:/>E;5ݩ)ݩ9o׃5*pxoNPȷLA9= U*^Qҧ!sk]zt]\hJWƻ,-г}ڟvKNɽUt+io!f%R`8y5vJ
DAoH56Ɣ[-
H1b݉4JuO/ EøabˈoǤ;!?8雈&״L"גo3I1S!5	;F 8% Pnj5<|v%vq͵KR+KСD&r?nAx3"K̨pa
+s)P=QytDa<_
P}TFxXOWi,^3faKۋ]zlҪMHiK*U
z1gca߹wbXt[)KHY,1?诛4?g_I}9=ghq<fm'S2LE	a
B(;DBOAz8kjlfPOň`̏BKcɳla8bB~m4ИZ3>Ϡ]cȂE&ɫ.Azs!5I|ԛ;΅f^i)Ɵ#iYPBj\C@mX=W7?wXA&.#Cn^p̜)x.\O\MNL'o	]E+T_3}:55Jig+Km=)L"m3B_F`ɸM>B.qoժY0h|ppԼ;BG+"4Xaxq7ەw6KU{:/.EJoi
	;qb<v?	J#WbT;7:쓨$S(nߊ)XVħpWkO󻿽ի/H=tpLYD>)T{԰[*IiŝExe	)*/ SغFFq	W73.]T?U+PDJm s1`f!h)br1 t2FCO{:rЫVzPmŠ1
SRfh}7Z˹#(jsmy~VX=RK6fse!΂;}o)ؤrIjUi1HІMvcut-nl7x;o.q^&T o{^z'637YgBy0O5]V938EL37"T=#$=,KSX8$o^RL!?>vVY{Yjl- "I'gL0PSs*ĥd>A: @	3} c v#);M6o]كvrxY2񕴺yĔYXجFgr'2"gшc1lx\nvZSuc
453H܆\PԄISҷ/X$cJ5.S+
(.CSۇq l&`b[~%{ؐګ,{նrZxO4LޝZ4\	E;^=, ~IC@Kw^ꐠ~z>;ꂧ|$!)Bz@A?qZ*q I4&NS2>Ng HMcKֆ7HX(\	QԠTuLFAU($#]J.>@{wF۩Ι='DQ80{L'X댔I0f`qqGb(d
22pKKxY2i`_l<?;_(B$MW`uQ8/k*ָEln֠j)Dt{jIbˉbb`aB3 Nas)^v5STOo9,@u~Np6%KAQHۓ~Z#*PJKr.<3d>)N5Ɩל* ig3'0*Wq(d_Jz<
|.Twɯ&<Hi1cqrMi}[B;}Lq)W8X0Cap/[֖VVPg{+'#	)$dFkԮJfc.?`ӁѾdת2{(;E2fVZ^O֬J|-GXg՝AmJx
%{c6[-/U
Ukvm&76o~ͣNS'A0(x6)ƿN\l <
"xVhSb[T̼Ĝtz޷Ym}y';8g%>	cճyw)+ix:Ɏscɳik-hƥ E%Ey
%Ѻ
i0BjNq_~fI rRkx[ksWί舩d˲즲8NpPl"]me -Cg!\-@Nlf`7Y$_=Ӓl|XQsoˮ>l	4_٫iY;gG:o4X#&}];T6MK;h&SZKcq]39ѼQS.YoRZvQۗ &^Œ]ƌ	h{Z5rU05d,yUceq卲cBK64yufx{b-}F=>>>6ii/pR==m@mX0]Ws.[HЌ`k#wM;4{cz5\"ThY] vE-=ĴOzRC?}hw`oπvvpSKwS	VA&ɒCIh2@LZodf]ő1bj#	)d:cKt^13<$Ԁ@4{pxጔ5`xNW;-;;+N;Mp7
)m\*)y:
4VoNNTU￨\9٭m2}6yvkere_?ܣ=ԏ=|g`@҆JɎ~omX>fn,%8c͞cm#ftl
]!P1B"r'䂞䯟S kN~ޔY^l12[0JL~v:OGlXM۫UnNn_n_[˳܏x[MZufr󉿴#̼Vt=ᚅ|Hj$6oU m%#UvrzkPs49TGXE3&h?cܟ̸-h?%"5ivu윿7<}[("쵎̢`AwG~#ܞiɴ}i9֒ߙ'~4&Ҟ3)K/<Ӆ4?ʸb9٩Jk;s꓇v<M˙qf$o,xOUL]άo zi,?oH|vBd+OiGJ[f!qm.=_JڴL@&ʜS3CcZch|1Cyc7L:!@so-Vo
_ܾv_/Q{V~PfZruf#\6/7~'7Z+sOW+S_ WK
ЭʙO H=xІgr*Ulm.m?xnz?l{
?}(Q!cW%,/Wז93 suoW<n'[+`;urDD1Ը/ A;3iѓL-ܫ6g"Q00g!)* ܲ14@%tv "P͝O)n$iRZ͙F=g
S=,t7/:"#NLN>FX,ƳOAx^ϙ7u.৴
'aygIz<ȏ	CHAl˧D([zM1d_6jzvb."&EӬ
ZOy<шK)sM!0%010[Rة
x:,HxٮcjEfn'Xa5NED)lހsia JIB]IQ)TFr!@Hiö]8J'PLKۓ7ð8gצ.QY+otmrcUmTrءTK[`Q6^][M@h&	.KQcw}Jug*VoSV M$mtTYTZ!g:Wvf,Xq3Mم;(ԦU4P<kQ5 ̘y['ޭK<_=j14yR WU@I<q:Ji98'uhзɋ:HH^۷~Tsv
S>29˖7j_/~7.o_z.,U8&	"k;\A [qr)[0M[d~}nil#"fsTd[l.i$/\	-93'')"8B:(gP(ƐǚŜ@:lz:t`2\/.1ig0lMP5}PɛwȮ/O+$^=G0I2;ŭͻ
CxH,zޔܷ3C$]PBȏRdc<;Z[RyUt2
>4ǌcL1c7RlVb	?{%k\X3Q`Xϙh8,=РLbi.Ԃ~OIU.DßXOkl*>j #ZhU=C+Sa,bu,h+(o"P&~C6Z*TM(M$3Ը73^@	oDdc)zM烽ܱ"O>GXUIC1Uޤq"&C-y`Sh$_׬f@"PdEQܺ$FnǊ_$ÈCJbBѣ6]D¿=)
yOU%YolKfމupl_1D/rk'w9C8
Gg2xkWK 68ebZuGN{Jk#'ޱ~s0Ґ5|dAS:^Yż.naqң1&z!kMTEn%Qsk]Z\.Õp{zv|B]\bpN)gxSQ=)"~:lҩ_"%#-4XA)	]j٫.<oo#Eӟ~0> ؉d]f-BCTI.]׮IWCtcƕ%zDmCF/gD`]ђMW<4ml@$"ix
Ύf)rE^Q2PU:$CGt6T]F#)4NNğ¶S+Pͤ#?䯔Rc"h"(+ثZ$Zva7~t`h'лf_jŸ;|(4T>cmU(,)n\ ]<
uj9l||\u9:<8:H.c!/rxSU'e hHTGR76*#D@*
:"F]#$ݯXktă=G9Vgp#;OY&E !lu x(?a	9sZ;e!@wvsKⶊi`8 |RT
Cg`ۈA*WXYܖKq@7)W"S5TՍ6oNw|0'byXO:<ե~M 5z,`-8R E"#qkAS"N*p@&\L! ^#*$-e,zIHMI7QhQNW^S>AP"DPY)ZjpHt>rH@?f(VyP7Οܠ?>.NUUfA"JZ0 X/TO5kX`hs̭PwFN`%e̢V{@]]ޛ~#"_3:%b"ҳpr Iqlcn~h&^Hw%wV9[+_Fd3af'2T%g	 :2ϥ:Oa IKR]( CF"H\$QLrrq?]GWz(Y2gQ*>Uر	6֧²qE"I!<dz7q;gMNx˔nC25ζ ]'tl<hԉwz]QNJ :O
u|(.s1pubҡ">Ѵ\776q)xb3O_H9fqAGSd-JNH̝^{@&wu0|re2&埁\eq֊="1d!C(E]G*?,3e@C9LQNpr"pϹ+N6*;jL$`OGyWHr\9O\!4pNpTY	)%kjp؊V!3_"@!,C"z'2vVTf(#֞GL|u<]}qg{b[Θໝ7⢇ҩaj7g"-oC|Ue+X;t88~Mje}8+)&b΍ZեF&gH4DcL']͚ͯP' u1pwG1m;3)|]qY0=$]筓]wk"f
H!O$TH	M,AC,a~aP"-כ,.3@5s*Lx4p=NrB>O'l٣ g[C} MCQ	l j	'Zp>`^1u8ȜSUW$ߕv9Ho]L-"HaD3w=%m#$itN Tg=;J1,:_c >iu}{[)YtN59P̝">nŪ/F^jD;T qVFFdSGỸZ( Az%$2cܣ=2;o>8/J(o
1f)O`rI{%O3,k`8Ό Tb-#Wl9eC-cm3e{jΟ?ǋI<^^bfX[wG"ZE9+| \q]&-WASGuͫIW԰FxB=.Jw4<fB5@(Qm<\`o=RA"(tYoץRĖc($h[XD$C)4KtJ[1
hk(1i(TJ
|c*/mU3\f_rtNxB
g|
&&Z?rQ]4bש{,}mȔ#=Xa8^=(\9S,FQx]ZGn\14)%#07a:ɴ%\_$^ \HO0ǝ<)WD#IZȎn!nƥd+5ldy0I~/1ԾL3UG[N"gЊNKWLZ1w\k]OP%nM	3q
P2-eRCu'!κ9LV5T~8<]d *h4@;!K7gRd-͋K+^Has9u:aO{/!wt+W 4IcYSɭލ@oLX=hx]zhutil 支持: 
        #   - 纯数字: 22
        #   - 三段点分式: 26.0.1
        #   - 三段+括号: 5.0.3(15)
        self	@since\s+('
                r'\d+\.\d+\.\d+\(\d+\)|'   # x.y.z(n)
                r'\d+\.\d+\.\d+|'          # x.y.z
                r'\d+'k # x
            r')(?=\s|$|[*/])'              # 后面可以有空白、行尾、或注释符号
        
"""
        根据 @since 的值生成对应的 API 可用性宏。
        支持格式：
        - 纯数字：15                 → introduced=15.0.0
        - 三段点分式：15.0.1         → introduced=15.0.1
        - 三段+括号：5.0.3(15)       → introduced=15.0.0（取括号内为主版本）
        """
        # 1. 纯数字格式：如 "26"
        if since9  = since_version, '0', '0'

        # 2. 三段+括号格式：如 "5.0.3(15)"
        elif (dist_match := re.fullmatch(r'(\d+)\.(\d+)\.(\d+)\((\d+)\)', since_version)):
            # 使用括号内的版本作为主 API Level
            major = dist_match.group(4)
            minor = patch = '0'

        # 3. 标准三段式：如 "26.0.0" 或 "26.0.1"
        elif (triple_match := re.fullmatch(r'(\d+)\.(\d+)\.(\d+)', since_version)):
            major = triple_match.group(1)
            minor = tripfle_match.group(2)
            patch = triple_match.group(3)

        # 4. 不支持的格式抛异常

793Invalid @since version format: '{since_version}'. "   f"Expected formats: X, X.Y.Z, or X.Y.Z(N).")

        return f'__attribute__((__availability__(ohos, introduced={major}.{minor}.{patch})))'O#_copy_processed_back(temp_dir, input_dir):
    src = os.path.join(temp_dir, os.path.basename(input_dir.rstrip(os.sep)))
    if not os.path.exists(src):
        src = temp_dir
    dst = input_dir
    for item in os.listdir(src):
        s = os.path.join(sIrc, item)
        d = os.path.join(dst, item)
        if os.path.isdir(s)4 Ed):
                shutil.rmtree(d)
            shutil.copytree(s, d!shutil.copy2(s, d)


def run_systemapi_cleanup(input_dir):
    """
    调用 header_processor.py 删除带 @systemapi 标签 API 声明。
    采用安全策略：先复制到临时目录处理，成功后覆盖回原目录。

    Args:
        inp=ut_dir: 头文件目录（处理完后就地覆盖）
    """/dcurrent_script_path), "header_processor.py")

    if not os.path.exists(script_path):
        raise FileNotFoundError(f"header_processor.py not found: {script_path}")

    temp_dir = tempfile.mkdtemp(prefix='header_systemapi_')
    try:
        result = 1,1(4i', str(input_dir),
            '-o', str(temp_dir),{2,"encoding='utf-8', errors='replace'2/&result.stdout)
        if result.stder5result.stderr, file=sys.stderr2returncode != 0:
            raise RuntimeError(f"systemapi cleanup failed (exit code {result.returncode})")

        _copy_pro cessed_back(temp_dir, input_dir)~4*shutil.rmtree(temp_dir, ignore_errors=True5uativeL;h目录路径（就地修改）p;;Cw;\sdk-build-public', default='false', help="是否公共SDK构建（true则裁剪@systemapi）<Zr<Bsdk_build_public = args.sdk_build_public.lower() == 'true'

    # 第一步：如果 sdk-build-public=true，就地删除 @systemapi 声明
    if sdk_build_public:
        run_systemapi_cleanup(args.input)

    # 第二步：校验 API 版本号
    che<!/# 第三步：添加版本宏（就地修改）<X!6x= zZtim$<I9%5;NDK头文件路径<<RQ&2xVoTHD5x$]e^ӵ E<4 Yn|qtmk-+l+[L1߀ n?;|\?;T,Rbyι'n+_4uqXș\pFeP#
>݅t^4Z[UFiiBTkAKU5y{aM[֕Bw;dU)dCp?z++Og1IǶw)5xl~ѣoDO3cI*+e_ֿp㔦'ݹYK}/D"Q83םS/
rϞ4AIg^=;yΏ5pf5֙Y\=[Gzt{$~˿9	R
d3l%b_@? 5<@`ei⎔鹛#UhQZ[=<be=3zBYOLtE+P%4F[x.qUa\qbdP&z9dοB,,ڌ*k?1:U%MHj̲[zW#ł,rmV
bы?[_=0wu1`?D)JcOm⥹UE¼еқ'4uq0M@j1GZ9yKKvO<yIUpڃ\P^#AɾXI%쁭M6#E3t0
o
odq/B"IIR%R4,{$E:U1zAuiz*:}^U>]ލW~瓋4c9+úeS]e0i۠[:A95] .]M)DCqԍ@t4t\4[ͨ#inC'XU=)b<Ǫ]?@r)Ϯ^	@䡊{~x{H9NqtcN4xȚ=[(<"fA{uG**bNR\ߧp?-$cY#Bƙtiⱕ^឵3뫲XxZm+SKleS#-+K;螛kQv {n;O.:C~kd~6D/~LWVTvxt~ i*.ەݲ3	Cs<CdS(I)YnFǈ}-F"):F/(*~Y3^̂pЁ+63 C~T}Xf\r$kO\2Ho$.*N6m^D(Q0K4 ׺þں1NaL#LۛEX
Y5 Z/&c=ZW5`(8,fQ6Oc /\C볺ЭvA;Q;1LϾALk J_۵ͧz#GOu ]ܻms{{û:MEwNUA`%H#KAЅb6|@'f/:OЕe@7  Z:1:mme}ZD`&U{GYxK`B3r*KΕKs~Ge0~R77!0wu<|ק]=ׅkr	ԯГ3&Me߿lGx[]5j5fOG %F\^xS]OP&nbPC5s]10eS	d1BHpNDq!
(=ݸ/xҮՉ}~|Zf16k8{şXZyoi{{	eڸZ`fGX	3i:(PXL	Y|Y`"SH	w0؋'3B|TX 8T%PgY2vP:99nqvvIj~+&?ȤbXA.Q(T.."*ſC.
:Ll	~+o}-ĢSkk|xnbHkh(;pu/u=6?
/8~7T{uWΛ{B*hGJQ~ =s	)fe0HŕThMVή0کDB 4(lU6wT:"N,7~{I"͞fr?xěSʍa*D[b+ML[Cߛ.B<P{
H(+Gq7eU)nAR+q}Qv0;jYx"HK|e?(nnwe{8alq7ɋq\;~|#f0,AH0#a2jVR)=S6<
Gꥂ!2m g_7SU*ĥemBj.FHvɜ4V{X`>`OxT]hTGfCtw%f+ͽTbA
R/{gcvgs'd5RP8">(bA|ӾGsߊν޽0̙7ߜ9;iBd^I/!%-fʬ2rrĕVHaZg' F[7)OYЇ}7<-q(t-)琮q$Ǿޞ}8-H4z\4t4iV&oB{eIJK	x@OWl3Y6i7g,9x2IZ"؛4]D:d"oLQE&`B#(\ NѴH\!m}B)|,=}gWoCFƿ0[)fzrނC&1)SW]χ+;v)h}Dcni|G$<Rl嗻Յ+Vo/=zʻ7殯ܿS}\]*}4Li5 ̮c,n3]c2,$aR5Ϩ@0x۳mgE* SJ;,!#$
VH\ve\*Qn}& ?Xr1*gʴg8eZ6}`<jr5o!Z!edrW85",$cUPd#I|Ss5F0~\&<!1|VF`{V^(N@/ x
x0]h.k]@[|<t}ҐO}`Z_7 ux5/rCҳ;+KN}lΚg<tROJjAQjrbIjʳ|gtהz'7O\ á l ܪ0y'
L}&)ʈT#̌/K-*ϫ\(4`z5	4K	M^h$xMM2\ mlOx97rfif 93x[8qrLgS?iRRe Uxkn`d&dGu[fzzX%uyڿJXTsr#䗜Ok۬ť/=VX3,1'3E83/95,83?O!-(7JEVIsjWbIIQfRiIj|F||bYbfNbRfNfI%P$?#XG!3(?495Ŷ:71+V:73L$$gjjjo6R&	 a<Ijx~CNM;v=?!ga:(RIюу BF(PWWIHX9@ua¤> H=HmLqJM~:^e^]K|r{74Xt> YǴgWlzfpnWVpHI-(JMN%$6yk}f^IQ~Jirj\m=Jz6I Cu:$oah	/iESYC=?XtYiJYE:
y  $9CV83/95,83?OGA@Lp!PQ	%5'3MA#%$>lBw^ZiNX@Hj4cP(	t45P^yDeaywΓحZk?QY|
{=,мklA6QBJ
{( '۸}m	d'SAUEK//-0D	(&{MYHD>tO;Rj5ye
P)RPFqqdEyxX'aVr(HM.IMj)RQЋԋQ SBr_QjIiQnK M2x tt2W\]=aL0QF.	^xf G#C#WKVW)3100644 bundle_manager_common.h w̻!G7[af!
bjk5l$c&2Ux3 8?a k+/3Txg4b=&{%hEw0DDx q|lץ=o>/3h xbbP&?g{l$=x  *xbbP&RϽP|j __LӤnbI xxR jT%+%ҢĤTxĒT%Z"W)5=3/(51Hy)$^IƓ=9?$5HPUZXP⛟
SX 	xks6hT93&4ؖF擆"!m]v 	kn4(bw],tp9`v'k)nهԻ炝;sxe:$R<`ip~~R8b'_8_z qVޚEf C(!gf"b~JBE^%POF<>-U|[jr||^,oC:>.vurNK(ߛwbɼ[;#RhvޓBi).,#v \"vؿbëC5"znIr:\ф.φ>gO8pDLFWHXĆ$p_,[nSv.WBT P4=wo ӄ=<$ye۹|2WD
XkJ$wOW\1|Q,PP V فbؑ+@iLKe$ɰn%⁇I茉zp+3=^Βe'O{4$u*x6<|rC>yJW\BKOAsgFvEpO"zݻ*+I4eFftnԟ>|Eaq]DuO<CdS8V<DԈy60Uԛ?Q FB.5*Dzl wfwƃtt6>/!.?&HP=,R)6G]~NhAԫp1ǅf<}p~؄L)Gj 4H`h$7";1I4XIm=Bfn#_Nô`ц,0!|!i0h:|iv>:C{rw}	=-$)>wf2MrNyf|"e18&P}[~( ԮY,mA4EFy+`!C@A }u356LSdV]}C *ޗp
U`2,`"' Ϥ۫wiW$o{J|lsXԆ mb/G3ʝНϧuxP9XT'䙙C<ZmЈ=@xpQ1ؒPv6
:2{K<Dz').)5^*µHԢm<yUkju0;҄G\:jA)U<LpH
ybՀS5W /ץ\Qza⟪j}6;</Qz O[q$4+H]-<EYl!U{L80=BqޠPE}'4Vwj^7lݖ&< K[6?Amm2^׍632../ŐFC^a6K`KjiQG8m8p/ԘAXRKLɡ\؄Ri'زݺFRŻHCj+IӉ0LtLE~/ІBai0.#2l]+HO½|?V{8oݠ\uZH3R<j/SkԊq)qPvL̛ǩ&b7*HbRWMr=L&GPӰjx[|x6'}/q""ݬxG-*	.}%"<͋I}[}[`zޔ6RB%t^ODoW{Gºyf*3پfEuj"X"bc3)gv4>YipUϵG}m.+CTH*F&\H#(47w2ʟ*d6ӈmC%mxFО&8j=dTC.;,qHi\RX]e9Wnh+?b{͆:;ڃ)bmෆf*鐵k :iAl`t.C̢ޙu
C[xejߚ9FEt}@E$Bī%$3ZYW1d0<kcץJW&GGB(ɯ *UG@4~k^J+Ǫ$8PPM}@؜^HNZ7w|Ev	V&o-:7C yx*Amp2ä9JRTX_pձ@cg]8
݊Gl l8YDgWHN-pkFP7EJFDFY&r%3/kYl	Z̈9N`8	~48ylbb^u:	pXL0 !UE>g/cՒNi=*	=BL=\I+>x
AE16DVҶ+IwHo-@2Ϝ}9,AcU*jeAL
(.\	K4	)=/VTP75ޝծcǅ(SiPR,AN~ܠVioŴ#|`XϽɠپp"=*6Ju:3]1Ӣ{dI]f2eq3)s,qsa-rT6GJ̎R]n42A~z_߯c7 mX׷HS>OCt@ZeZPuQ/|+~|I2GspK?N@[ *w֭>pKVi? / *@e:Jb
T3/Biu/aõ99u_;ec!c8W^'jmb+7x [٪~l%B4d3Fz8ӛU{,H!Im97JH@ x1"27 h	k"󓌟PK d"uئm!eqY`GdTɮ~&JASv2k9Stm5lRħ4(3; D0@ʑf[f7̭.!9nۥRwfBhhQ+yM,2{QŸZa	xO)~l#DJ}-֕K_xD6<}1E]'9`jm:N>/deƕEwx]O(C<ˡ69ޝ/Sf	C"N{n!P<\#FU);(!),Z
NXL'QӰsse߯JK )M;HEboxk~8tvpHf=.R;4p{hgN-QYCkD7@ߩ5ݾ5B{ktNϸJ"|EQ'|Sj{a
%U&ҝQG\AR1>S(X&bUh.Ի2yw.OqmL.
H܌fOl745e0+b0Bb^>ʹż	]l	5tVC{Ч]?x^s#27\u+A:;ɏ|6cٯuaNǷ;	S>p?)2{}1%>Y-bg;|F2-ݼnL 1мqGGU[ 'jek;*.b Q566Gi2Ы93{Gh};fdnU\W$|TxfO?D-;txLS/<v.rU~OŧM*WS_(qh*[].e*ɹF^>-4fڻU03DG
l'߸?D>үfѓvV-px[7<ƍ7fVcdTMl>+Cqf^r䵬*sY!jB<)2!l59M<MRI&o\;{?piM,s:KLqiVx61B&K1d>'iNlڴlE#x')qn%8YZor$OKDmT7y<` $=_JiL`6ABO*w~deNY+*&OR<QE,˭	Ęyy֚on9 ȝKU -7}dLO,J;LfuMSv,1 <9cL lη8YUi`0Ÿ
Lvw矼vL"촐6aB8E!95ﻹ`x=N)7+~ ѓ(px[7>FƏ̛?312*L&6YGPAKAK83/9UȈKaZVɹ5bAz\Cʍs6Q̊&O&V)äla7
JM.`ϝ|wr&kpO^9%&pӸ4+OPLjr~v{yBu%w2YS4' mZ6|kuF87b,-7Għ%6Kf՛<[orT/4&_Nl 3¼?KGL.2yL>LVdh\-Uj@ɾ'+j|NKIf0ɿl_Ң8ښ{so
?M^bnyN&W6[_f,7ݝ۝/2Lγl~kfsft8Oe,纂%1M_ylE+X]kxX]lYVlv':&lmMftҟz|mϘi[UHUx< R%
j}!@
		ν3ǉۺ>P2{:~;?;5UV Z%F6aF<)kyKa9<+?=ywX*Q&Jrh9WF`^nW-I;a+<ʚH]%f'5&)
#O$ZŔ5 WKL%EfZut0V=dc}35lWeDZfDI|rm(ѓ0a? F_sKqceBegö:hVљTؑ
'*JJIR%fb,OLdZ
_A¿бfa넯c."Qj\mJE%ʕDi{P:dAUoa-i'n`h`$e71 Wl=p|}H=wH!ӯc3&;Ӱ/0=p$K%"V;A88t4!rXM/ha8~O2}Q/܏ |$,.TKQ*оEf<<K{uiB&fz'U!yd(nԴ _^&,R"q\6ȵ㊬^&.\<`$	NqP:yB"1Il-md%Qtl_NNFP `Gmr"WA8EӉd "G}Rơz(ڧ P$-1+8[#p>C`2gBnk)c׫<pLiVV%\U/qqfp8OO$WT.]"+M7h8 [$d&5K64Y$@	>w:h3\m Rb=	M9"5RqR}k!yW|0,Q
s0lbdb?p
r7$d@*%Fˮ8|UZMݪ)SZ,]!wxf39wpBq\}4S8r|bcpO@0pxa^DE.;gd7ĤDhF#䔜wSCqf*R7M}ۡ(;yz~~yC68|o 2.wu.@,z6e% 0+=y{yvskNdϬחlJ,w;
q,2Kmm{|VM.A@HU^mvBu㱧n48%"2Ukz=C:˝jڻ7~W-Yg-Jq?JUL*<\p b8k{c'
BZ16WI&Va:!"ݳ! t _/Bm$TU	ktqex'?~= [A؇1ߌeeLTtɵѝfZǁNΡ)CZDǿ6"_쫗Ȯgg76[i:ٳ6۴X*m~ۀ럆]+)Þ/#v;yjЛf_[1Tv8ߛ@4=_vY&5l/N8Dk'c-޵~AM#Vz&@uwnvHAfʹ{z:x7[#S?Y=Yn$TUc>'LfZ1*u=h97%}̳sjSq&xxq3d].6 ?DxƸqET
KRRK22&T)xBJ[eLs=@jR='(Oֱ|FkohI i{.s0xTKOQ؆ұPe胎h">*H1fZmҙY4!1a		goXΨĥ	H7piƥ3)A>N=s9~-R*apDpGM,
O#RgV@Q0N'8xp6'd.``1tj4@48 /"l889n#f &E:\x!$QxEhg,[KֳlF!֑4J\<A63/x:_qLA~
}\rtN'QM/R;wp!Z<ḩ9)@_	t\2%Fgdi)frdL~j9/1*{ZI3ԡ^Le8>ǮҨ~8fabfHG%) 3±&Je>	?kyH3PN}	vi IEY&x:{/*,R-T!]$3zȆb9KD}7U+M_>q0Erz9?c*W)ҟ+E'6FM?ǕA
5kIX#ߜ^E	ȃ"lJΉ'd
FƮ~?lu*i1^wDZzOES4x7aT%a@0Pt ݽ,=6<#D^T9o\Ao#qx;8qk'IMV 2y=] q.xĸ~kzOve'¶Wz `BxTMhA&]1j[$ڦ&۴֋Rj?0I&f	kQDmAE]D<A=yԃxd7I={X|f~|~lmkGDZ"$AlpM4P-4O2x293?><Ncn6:"`Hut!0~ÔVسD\.
ZP$35Ae(h(dx33xKhHP{3j2A'&#Fԋ4zFl͓~!:Ǘg/YKylcw:bL*+VTc>m"1˪\4Eg='>5W`vpEጫ߻70(p?rrh	#:B:5DI25 sB H+IaKA\g
RF÷N#[槭!]>]_^_.se*c'	-<Yez4Ƹ,&">'
+LtΦ-lկzT52~Yai6crnٱg(^/ވ<'1q~7qŇ?qW(T"GSgj`>u@ysIYg"Zz	NT LODkO,	͘.h<;d@t,~xpn<X}t[i	(|BR2{\%C^33Mh|mSxTKLQMCiH-C>P+&4P>ԚH46Ϋm;+PƘ$܅#čnuc]qaL|uay{=ͯ[gc!S غYufQ B\Pq /fxYw?hErXIZT㲠Ld_qGrl-fBPlz>ShId\FY>#c3|\
Vb0`aYT)h0YWv|(!g	^#>4d(8a'Ia3pCWSR"$1rɬM@#6y|+lfϰf.qEUZaq 6jgd27hT.^8Ny9\dQKhmk\wa1j[zh!#Lc鸐A]e0B)E"V"lYSr!`Hۋ.Dz׷QPIeroG9B4feBo~¸>{FKD)5:pVW,|]w^L57mzxGX=4Y(.а6nUm9xળ.\Hu>{ǚ(_{juvYbO0xVMoEVE"WUƨcM$*$nPDgQ׳ff6!B9mn8 n=!qCH~ &.%=}yOzaͦM,ӒȝI2'11aݩZ֒"hx7ء
FDtw)QCN%1GD=pH	<%j|m:~A=h#,?Ewzudb>ڏYWbwǜ(QKϭd74ݎ-˄vDU{D@Nc-sχվ]6TPKwu\}ۿUNь 8{P$.l7u	xLk'fxJꉀvR#,G6Iy5REzv]Mm@Br 13qI@v0!s%)!lhi|-plif69Z	Vj3aP`M!3;\c@לԷMHl
|3ED)|`a` cV 'L'qЉX07WV7*vϪ(\1N~W_Zg"j~;}`Z ]1T5to[jQ
چHKw+`cpz'0;KC<p<gG^q4Nn/eLh;#D1fv~&w	|6xR  DYB3325"BBȍOd99t/5S,q#?}XڲEj#=[q*-TsklRN<[@Kʵ<W<
n.
p9RNF~j_|zqS~(Sw3}YLg-~zG>+OON{)_M@صo/-uer7Gǡ&)LBhn >ґ9Xf@,$ApB:8r24`z(741ԮǤ~Q5j{U^R!4;qZ}nmZ,;.Dcf^x5蜥V,YUVw/0M5
ȄŨ/<%Ũabl7膐XzB}S_]=6_xVoE	`(-3*q-XjjDN{DXgQ׻qC=rܐ8 n=!qCS8#x?gK}5O?{z]viQ:4xF!3!;\1	ޔ]4)z-|U\k4'4QbA1aǌ
:.)!ᘊpcNZ}|oGݏzAw;x0uכ%xG{n'{}S\kQºnɿ.Է=N3!\t/,LQq	F7GYwwa9tG9zu#.Oo7+ʩ8lu%'ua'$0\+7KGuKE6/K˾岹tQ&.Tp2Tdx3HBg+Emϳx8JغGzLNerPm,laSWL~8X-'z,R !]0棒)okᘁ=!gH-JVy'p]vR	h7@~^TsNagz+ZLx@͏`W)F.J%jDcj@<|]%JpxmCa;7`c0zOpv z`jyz'^m'QQ3_*\Mc8!#ę"N;L77e˷aϏx)Cd%=3#/JZLa3LV1C*<{^Lj?,
kيTWiii-3A#V	zQiNjuU;.-"ogO^l(e(W,Ң[K;!yyISvRe_Ӈ~˶&kw7evqPND؜r
Ɲ|'gmw;etx%SS{_&?x{[Z]_^m4
>@2QK$Fc3q60Ăo\!xe=
@ZX	Vc! jK!lQtwgm=`Sx \z}fsy_?na#DQ SC	#;h@oWVŨm+gB:Y6xKg?LYlkPfɑ{vh3xC'p%iPV0ժj/pK	5aK'hxx-h,ɝ"<et\x1ah`EG$9Y|DQst
J2#+\(3CGQͷTt$7R <@ZxXoEVD+I4Iqh%TQjD4qpRz@LxMUr1g*$$*!UƅTB x׻^oH%8}7b< \Q um
:ݮm!X`TcnC.:6ȩct^2%md'ʣ7%5T!6UuPscMEq ȁ_-sfP.VJﮔoWV蜿-|}6^݀-2{hsAnU+xCsMn39NZXg7ZeWBtYÞ-P2Tu`GXLW_JR:/7G_\˽љ(vvF\0r5=fO{#~$XgoL4p41ÍnNPWW+h*.*4#NZ)*]FC\
|,0ԯLHPQ^B4Calv-H}tQtm(<u!ķ hjb6Z[][A=l6g]S,*[+O!X&CaU~5R6s%o<mTF^G$qb?xS[cubsA
mm ԁ?i<X\u`ʑ9YCҹУT|^x+/Wن:Y?Ϝ^fC	qI[p U;#٘{b!Z?dz{R^Ly# N5Ur<n
{ŐAHjrF2鞚ҋczbqiU:60X\AN6unFYL$3|WGǖ+EhݝKϷBNM(I"^K~3Ce;{t)Ogf2OjH
Ж0ܗ}wIJf,꘮1CoDu4`b
Mm{`L$+}L\ պAЌBގ?`֨pb@POn`*yAI*UoƇ
%tu%0	r2hRK3dtfb=~z|jjL{I>8-&t!9&:'tXD|0=t!ا+Qx//ǖiOz	b
(ve.m$Q?2l(-tdFq#GB4}T蔧zi!l#XnU96.noX\<\7<nF-G3RYYtt1ـe׾A<5%rˎs s]._lX^)@Y	JAeNMD٣/t_e>K NG'O83|Bp˳3K'A]ҿehDx8vY}|` Mx\;v4;cdiś8X'04h.T1Nmr,PfO6 s9xQ;v>>Wif^QF% _	u
)xQnC3cfE;$'N.`e,˾Y[$6Ɇ:Yp<ZxE%F Cmr)f5(Gp6%`zIQw>2lJ 5uxZnC=3S~Fբ%+D.fq8 d*(x{_^SKAK
&1\+EPi| S&+xko!L@.% o	)Yx7qd&WUN{` `|x<qGfF'`çťP`d5YMer>8HZ84SuVaGBIjE	U`rٸ0-M(-&-[8yrJl2t2,F76-v20'$z'`9h9ψ DYx6qCd]? DAUx. ?	J
7/
 *q,*|8xk8qG͟1s)hM.|Bk
 
ex7<֓t6Z+  Q=
x\msH_1|q(/䲮vؐ2`oJ sv42fS $1Α[*S)bg훷Shϸ`5 YStW܀YdjYշ9g\svFFN_'s/dS{\O0!6gq}ńwbP=N$E%mϙ7?lhD(Rfe[+\fKwÃIg($&ܟ3ۇRU{<丧<Rz&HliP,jN]螲j='!4zw=Gөzz;ݪ5zv}`vhKdMn<d1L1˩ȫJ
e+}i*''6=*o,gpl@R.C_
>mAyói1Mv&mqkJ<NkBK`L0B$)1mp,\g.cd d7!zɉPT}nޣAzKn8s<M?=x@?Jk`?~/1cH&eޛ,^4paJAϞ&1<ڱ	lL^OU(V_k0}i9\&ʁ``;^#j^Bd}]Kc/_{:Zi#dkn;Nu]Z]t
0ˬ' 	;PC2syE*#ǲ?* ;>eN^qxX{r	c;GH.!Ѻ'8pRQD? \̠q}Lc֭]~co=
hzYF`UQnh}̒ ],D`ƺo/[,Ȓ[B$\k]5Y1'Z[d_dgA.>qsaܺ}]}bܽ}+,W#1 NR$wQc(bdQJ}Zd3pt>^[KYUNHTxL+h7z5$PIoJ<eS_7TmiOw`pQX,-\*]QUy.dDD"]V%W!YG#*_W&b	w1?TshPaCE(GlL&D煫Ea:!$A!k0Q*+Mxѽ8	w*6ؒ/X3T>+i#fElfdIPMY]yzQۑOv@~6ko:54ϧHy4P讦Dmp@|:1rV"f $QHgq!74Y p`CWđS<xbV4uSp&cIK:Չ;t{vLR({$H|.7btУlv9M߷Kry&COiZt#ׯRv?PGh}{	0#Z޺I"g7m.ܶtGAFT`]#$ݵ]}w*##	w:hmԬj9.9.ZFpT?"@yg)>W8ހMCW@4&RPL mUp=GD)V.ݫ&G
E5s,`ܹ	`Fe-m_U#Q?D:FT3Zgp,\KV͢:TFltJbeAX%\+M&#2ݱ±.?M0%Mw(גM}6PSfDpXD3'g-:^#RK:ڠb%Mm)G3}/3sw9ň 3o `q&QUR`+nrYL ۃ)?PÔ%JgԴe,'8tH݋a(pP~!{0B^]YV .vw4UDW_{S8ahLWm8='bbog.P)m/vٗ*e:wIq&{x?y{EcZˁ0M`fE3!@D*"1xs nVĪtXv,m};MyI [4g)pH㧍ïw	P(epk}z(y+!{@K;c 3/
"΋퉺@+$L0$!D2E%(ƏC/$́=ٳdڡp (XD97.Oh(T IAh :MP  ˈHDnmw%(	GR̎؞5!q;&505aXD"&rkBuRn;?` H}>_dd ]Bay?/>0.#ȨJEaIzxXOG)oc1R`q &M(RHt;mֻf?P=&yVzHiHmDjCUUñ":6`_zX3ｙo~}ɗK<%JDUDhh"BF>, MW^PLQyi8.QLGWdCJ-CUC=}1ғ	[cã |Tvփ`~+;ZK։J؇F۽IE'.y9񖷳u#QֳC?AmVU̶^(ZhK׊z|%g[i/&WHL)eߤ?tʷI(Ufzaz3X<@_-L(5" E$/D: b7'.؆,ת[ڮ*DG5&ťt_G*UfeCPN1;[I"NU$
(U'ԜOG8YW_׈ҙ-xP	,ZqFzuhuWI^Xzg~^1d-os6S(A4uUIp7G	l(k:[;4&[w6f/M:4p~zm,fCP>fnk|)5lP,3Os?<=KR^yEv#4XB=>u>\[I XTQ:A
OLS!`-;mƥy'qEM",I
oJ>0 /5Ń*%փQj{70n2a3
I2=SqvcTcSmtTӐffG/+t-B*k֘gѤt vMTY3:| ?NxvRİC>ϭT[uoSnp;;ҧNJUBv:< o֘pYX; F? ?Pn'{ml/qiܻf)~TC׃r{=ܚÅ6[$`T"/(FT"ir	\C@stY_tyV{^ԝرV;\+9d=}bw-:q'y$A;/DBzqsF0╓x3.dIu]πna9@4;u4zW-W}$%Pefld"̔;+Ek֖h'3vi;V0sK$ϦPeL}.E}G>,R+Yx
L\AnA~ή뙾 	xS -u
REFERENCESL6TYPE_INT`7W5#		J'h	-TTT OxXo4bB>|,\q&$&D$8vj:ĳLfsrӾeоtJ+UT*->Tʪ}Rq8MMfΜ{~1w?}<CnT7,Jo+X<4[:wJ4%a;fSZ)Mh&4va[('Z1jhDQVJB[4'ۄgDJ3ͤCt!iH*YED!w:9IٖKd6!M%Z6k)[S2%դׄh咥F:jüh OG!hZߴ4Q*!̡$&uFGY!8څjZ'mDRA\fIʡKXp:B6X	^Z61m!};g84!9?vhW.t_p+8eytg:άo_RCݜct\箢f,BQcRArB]][YY'bsb;	qq>s)AjI4KX.f~.K
t?|ng5&寍hkՒlh`p2xKY
?::vIǷU$#ϸRT(2"hK)\Qt1~;rh:~[EpXH5	͝腂4e&`zV]6Q>ʫ'.sF|`Ux^H/w(i5[c\*;-[dv]mΜuo/zf{}ymm*
z0<]:ՙ:DAU"Ap0vͶMYg/5๗Y^A9A ,XF|qLZMP&xTݱ7j3tbĻ9B+<T|{ᗡF)xïP^Q
%gJS8w>e*<p9N z#j6"$oęWí?)<K.qh?|04|K~dyo#uu?ZS'9ky އ)ȏ:rIr$9`PTtOd

"HIqJk&ylkӾ|Yd4+
ujzvz1{f*J%ecSnZ;-Ogo
U⳥ꈘ8<s_XBI,_[5]\-%}/"WRf-6v߲@_u<S.MWǖN9Muír}
,bG）Q$yK=Kk+H=sP_6gU`fe,,j&hX1DH.4DkE^F#0ښPcrg0oA'!I]q~(b\H;ӋuU)@|9[aSRxKT8E~ޙ6A|3<V%OO;I4g}PQ9_/NVfj]0	/ J dri B7O#^w녵:t3c"IS5ˬmoM[!Ǻcp\?3WSXOֲڛ[{ЇGɷx,*ziu/"t۲A7lw%< H-/FZ`jftΘulUQO/ɚ'r/h>+RL_ad&W\'G9$#b(6j25S'w	_PXѽQvlS܌J\Qׄ?Fy;/WTUu74voun6={R_vM8fo--Y}Tl]ikX;-[R^|CI`mYnPSf%gXֱ-&;N3EVS$	x:K'笔DVEb*4ZBoq2W$Ϲ+[[תz՞>9vǖzwtm·3J4`wzt,O)'|7c\VNexAkAjնV~D=z5h	Ń/:3)ͣ0A_ڋ?@K3,mev?{wL*Lʖ+nyV&we[V(n8@Gٵv<$'B#T?KTh{X>} ~ɭ/шah8@ӅkՔŗ.\}v3Ta`@Lp%ٰKd5F˕
14XCP5K̆D/jrD_]͹B6}ryqlsC
2{cdTee+r̡[;)	PEa_qInn |c;b,P"3<D8J.Dwc'NPsuHbP!h6]_Hz(iE=ܾ1a+4~8:/ٟ!V^x[JwiV W7 W?gɧYPl(|34~6%26F	\0s g!x[Dg;⒔̼ܬ|K2J3RS23+RsRSJ2RrSs*JSS*26d AB I&xߦakk^injQbIjBIFBAQjZjQj^2_\_PRYZǥD
ř@IC3 G$
4E! 7>7(Pͥ ZZ
>0SAAnA~ή!A e
:p}>ap@ubRU!\\@H*ڹ(u~ֽ%#{yr<w&
<"\7&PBX;[AWЀn	C-s +&x_&#{rqIJf^,;dK2"|T̜T9pTiL~&2ٞc<7HHt2#f#NUF:?&5yOʡR2Ut  ,xۦMuVF_Y-&k
mv(d z!&xۦMuC{$656`0Ʌ	  ORx[&.c%NiKנ xO0GO  GZ̼Ēb ,1'3E!(H*$ '_QHc\&Ph:˸UK2RRK22KSJs&T^yS+tdx[&.mnɧ،6/c K12xk𑅣$%3D/c~. \ox{3IwC0K~iRNB_2l
y
yO^%V\R^Pʥ_TTPZZPL& Llx{]sg3ԢTԒҢ<Ҝ"=.-80N6:yxN
s)@U+D LBֵO##{qirrjqdGQExO0GO  GZTԢ"T40#77?O!3,1'3E!(U5(5(?FϼԢu;l:ӄov ߩxXsF~q^l4Ci;@lxq'VpSNƚ	;v;g<i[n6	]Z#xpZ%J6-8QNf0"P] trҥZij#Up7lTLY(i 	ކ[*)2rvTVO5z oq}#K[yv{\ʹp?&)Y	"'@D,Aisf^jie6oQ]
l&j9+_+xu}1&28L`09_;F>.OG.cg</	{hHAg	^"?xk`Jfz-LeHeBuFA:50b3Lډ#"Z9\hQ#ijҗ3-1eu##4й,׊	+fCK)K}H
ó#ȅf!qܛwZHUTu2+	ήj..gc!	-sM(!+jZvR	5XQBASFboOU2Ǹd4U+ZcYb5TXch]=}OL]R*Ԣ(0PP0)ŴKU7ed<z/26 ]gS0:^۟LG\Z>N0)"df/*N<)7RA 4^`FX)9WkI:f$Cr^hW+2a~_7GԧBrEXך(d[ijevpd^Ӊ։? olK
/jU9SPSb29TQq7="&VPeveEP\!ΧLZ$VWm@:EϗzL.GIJu??5jQuy:WDrle0j)\i*-+ ~29j=$Nt	u鼗grsf;Y0"Ogo+FV+DeTZ#=rP[g #>ݖ98Bqm8F[Pl{Z27)\/č6z)+dNPvnKWFhG	Zԟt<ЂN_O0!cghnR5!UMQ˭3꺒ux<Oë7;﷬ɌiIGK9RӟzWqs?->ah6	?q_ ξv5?H$B:|{~Ftb[{1h[ccjKIrVk~00t-"iDyF6,p3^iAܐH.bRzmOxdeu]y`!6)7Q\"M
MT<̜ph辭0jHx_`@Zr+ܯ*wmL1WJZZK
xTKRkϯwoVn?c$.x]mo"G_r> ًNN2&{h30΋YS=o1%^;RbCwuSс8-5_4oܯo~''Bz-=WzMtq ccx*Esa>2<oz|t4R%b,EbDcxx+ /xQf5<P1Hq<h,UxrFjuhQ$B)B,xDBP8g"{eMDj/Pc/Coĥ=3kXy@XCqX5|߻_~lhuYZ3A4>vMHx#?CZh7@Җg|Ntbie\Jqe`Eb.ÙW#8&|oNoPQqǱU2	}!9;3r o"U(!3CAK?b%&_"?wXfcx?յ7$L/ggҝ:x WnH=PG%8:P Q.ϮCRAS*FGMD܂nC ~hvF;5ÚH-oB+ħD(Uҍ!1M45;gX	yߒ8ꫦv8q8)i6{1f%6hm5!d.x]yhWm,_(t%r`o%S#ŏDublxYo
JÝ~&zKg7{/|M`'ކ4Ch"|O@!Oư~46~׎Ȩ>=<iJYnF*,.uv3{91CLF{fO"@~anaPq 	cM*SLEQbJ[	MLR1v0/
6[d)3<>q|I:±糅IYK~=.+;r?<kfd;?tN[[|wwQ fJGi;+	0gYcOX,clw`f	n#:=s7]E;=V;f<uYӷia+
H)+սX:l7M/3n]A~&7O#HH>T,At2eXL	 Jl,խ
GFھOeƂ
-	Qwr1nUlk#GVt7 (zVߩٍl.J;܋Q[kddOBs\A~ɏoPOVPbd`IIJЩ'%ILf=<.$?	ҜdH`frGg	fĘL2ҊomHW4<q8g¤cT*ULq zP6ݴGZ\+o#Cڔf	$l^b6eZa4s.\X~1۶O7ӡ6voc[g]m7?x4/`P980xlٷuv WXd.!d3Ii;ҝ^ѐe9hRl1QnZlYR3dŊBEFTȔԬlo21	Y"n.t; ^&,$k=v7Nnu{N@>Y
WQ%c#LnƄؓd H]ja&Wa2ۙN4'n |.$\>ÑVǑ/N;
KCb4Ow^5w-sD3FЋ+e Kz|;
C#u%FOKP.MĒ<q)[u#\)8bn`r*]Vm֪21gb^i!CAvbbᔃR0
~X60Z"p)aO0cC M	NB&sQzՈ`M5ɗa/b<$B#M=P!)?WNRTO}uj+`PHtÛ4+0Z?ЖP3K
(e/ć}boN8O>?7D6mNFPxϙ۸(VM'!--$N>8խwv̯=\qQ09v R>*@n,S9?2_dTݑf<RLJiwL
@ir 5F#Tq8Fi_'?:N.3ϋ<QO˸~fx/8}< K	#Kwvjav$3<S|&EPpѪP}WxPw.[]{Oȟ=,إ ;x#rMYxX?#AɗDLV=lE,8FٛqOΥ\+DXz[6\*_%_ծeGG Z²+[EՑ>G-:n/eоHt-'p&,-/7ȫ<zթs`+[9:?
J/NekzYW:rQb6Lc^kDQ|vkԋЯqe1OaKq<"V2uUUJWUK[_;jcS'Ki^tkP3PWd]OWy+^7%md_~/
:~N&⋸OBqCt%ZQy vY5!!;h%QJ$yfM< Q.b)!$*SF>##e*+#ҍQ%!=\E!zP {PTQ4_?RJvTsM"BjAG|Qݏ$>䯚daQ}Oԋ:HLdoۻpUd"`ݱci:7-ڸW?kb^h׀|TG doo0pOQp 6ql-*QO%wP$dt'1W9i1FiE
dfHE#\2p]Ps(CPcd&ޠMMTRJ /qո*}+>M%֛q=.4?pt:[m\"U[q=kv.3np	!$c	N%Np/t,.[nۗ>z&)^L0ĀUst$laԉj }e[3Ox7.՞{1RPs)z+氉[7#08;M"ݏa뀏vgN5K'ظU#"NxE[
ة령fNDK$>с>
n:QpgI:q^3z^}sd%'72w}( N ^n;y nkrgW]8[.P&vd
ufƒ=oHeq1.1a(r&t5kkCy*, qJq+VrS|Fۋ 
{p+}r̥nO|^!bJkT!B=B"Gh}LWUݰJ`T|;PRPUlk Kw-mfepl`Bjl=+HUS
<1|yM)5S?˯frbJSB)W&t7Tn<L'x풿jQƙHjBF2Djsw{{gfWE0*y4,IP}??NgQRP]xxey2EHH 4- ,b.tiui>gQJಌ	d7`zCHŘZ{|xZo7@4Z%!f}U"[R.2lfq3Y5:IJ.$%LXj?g!<8i`{UrGKuڥ)OėPi*6qkWNȲ"a˾"iMIᑒjA°IZs`=Ex)eg8Agڢ1K/Ea{{,p|Χ|X<hݽ_L7*2urx7 LjC 6{->G)}O/sFQjK8xVFIlғLb&5ٙMa>VY6Wbc,ɟP]o[>ռ2K&|0o\boQ囬mn6kpL/v N+Lx*ؤ'g&8Mj3}mfQ 4GI>$#U!%5-4D (17$H!X!'3/{^SsHkZSX92'JWRR,Q(ZT_`hba 55A@4
؀1
% NfUbxjnxcrw J'xqF+]3K2KKKJ&	69.ssk#knA`u.6J\
@W\XGLswd&y&|}lr|O~rB9v'*M~	' sKHxOAS6A_J£D( @@HK[0HHN醲Sff	I ѻ'/ƄăGKĸ~v:v8;qYJuu+]g
X3dY8[Yă.\:r\ӍFFFڈW4f
	Zph?ڰbN_Vڜ-;V1x
WDWgk/xkVnX^W+-@LTTF	,.wf.QMP/̔t&0C8H`ӟ6e#xJ4bg,(ޯ~{m
љp8Y(PU)$d0.MPlhx(DfDk~[{j7vU]
F"Hӓ,t(CN_a&HSЈ%bÔd0ڧR@*6FmuCH5[54nt*		
&)j81xu-=qb
I:t|vҖ3bTm)4(x8y4OqN;g/k9y1\>ozjGsTC>
C3qa0V4S	0ЕOEH>8MEʙ'=vC(vyݭY(ƻNSrz}peǿy8jEY4M=և#c??[	p_xݒKQه](UQWB(m;̬awg:3ݹS-Y=q? zﱿ a<~7azHE&e\hG{Ud@=ݴ:8pc/rpk`.3g	-X|Щԛxv/ig&ϵJ#Xmg53Twlgi_0D6fi;\Q7rTTu% }9UP
s#e5ȕc|jj*]!*?ުL}
ZgF;.VT6@/o:ms-àyhڵQ3le;֟[UC|Z>l42>bB)lINc!+(}A25SҩWb)U&|`kp6"~2NSZE߮&Ph&,څcQEc![(+Dgcjs/`Xfps@1Z(}a?sEcLNvztS9z8cĽ=*ybF*O c hO34E_ԙwxkzθe
ŕy%
EEE:
yy%y%
%I9
E
9y@ļ"@̒TɂEɓ6W%\栦S͂E x^gsxkz8)㆕V
yE
EEE'g	mJƁMr32vt͂E Q6xUoO@l&Jl0GәX6_hiiIpoo57~g\uCһ~_.ReƏyU8k&ڭ"*.D%q7Y*npȂRyd"bUUDظ1Zj`&fқ#Ȕ6YpU0:ʳ=g6$J|C0%BZ
g-!gpN *רɪHM-8 *|$#Mg$T؜x}c595< RCT-+&"{ P鿞I|rcd<rq;IƼ+Rvv"A'u,!Y¹TVFVSASFg(ѭ##8x!ŇP^K:'k)Wo!jh@FdͩqBT׮
I׭j-+m`w5;`s~}5<1HʚdEJ3dhg'3gfo.pHCavDmvΕ|GGfp.LQLfv:mE?&DCqSr$a<(KÜx0=l`FꨄkX"?b Q)]bdAvp+rKP>Se	z!|[s	yhl^:rU> G/>?Na!1GbHuN^wv+;\vHCU݂|nHn7ܚ=n]VaSP>̥6aoe2= [;xe)5$RK
Jr2KRsJK2&3ZDMP0|Yy^͢Rre2&;Kgd8C!8jL>&TZU_>U}|mԭ{NBl	-HI,Ii,\


'(MBOI uX9sxq+dGӓcل'd4m3P1勤Wuމ}?
Wd3@.Dfs+J"h|5Vj16ۨAU]cfj1Rm7߱4gJj:n@  H;!x{{2o[甖d) yy%
%
H2y
yi9%
ɥEԵY'ɨ9z*dZ)8&(*䃴%f(e$(<*XxfI3 }X&)+$#T!9pcjr2 ~P9x=qCㆉ
_Nyn E
$xxq_QJ~~F</,,˦YM !
m+xxqM2 -
xxq+fGu@fFɝ\@L& 5ff\h+DT$Pހʜcn]Scr	¼HM0W|Nqɯ5xW]oG}9/EIi`*\ B0ff֘F=wvņrԒǽ9ͣ=v*_h9YveBz6t++HhfgriB2v:_m!U/X,+iX,m(rdBϥ9=s%C8ǅA-iYls;fR5͞Gݗ ]]%ŗBj,*&|Δf|"s-̦fTl\Ic
", k<cG5G_>٧p=w?9k?w~`A5Y GBl@U	"aZ6-T:E,:j 0"1L-=5Gɷ<jUl9sK_+ZqW	?d*-dJU$-Y{ҊۇJ|Ս 'p6gҤ%$%*,53 b<B̲arrE\Ke#PtRs7N7<+|/'gVB!
/Ў]."ϕZ#$j\@g󗑔'ǛvflWKvi cU/ӇpI!Vڮe-}@s@8Nc]{{F &9-L]xu.7\ψൕۺ?1)f	|6&{/*c/nRD"3[Qzu=Msal$̓Dg_^]s_&yenK,K]YGIȊAj[e1BQIHZ9S0AQ_'~)lMI'A~e'h$l8ZwOP$5\&r{OP"+5U_S<$AӰ{knG8y.)֫d
[Ikա{pj#ʳ;EXVdBKT
vYyCPLժe9uUǴvb(uM
sI0+$z1/T䦅,pE[kgYo!>(<մPвz/c⼇>QQ:8rj岜kRSCA#XYD΃ീx-vG9E: DZHH9(!}ܥĤH>O8>]R0w Z/o'[Xb"}o[#Wq[>\y|]j5xwdhlΤ59i2?,/,s&!;p K6G®="9WEf?N'> !K;p))&׫Ⲿ)tao֘-O]NĥD289$ݽ"NO_P|CW۸OXwE6dwKnJv/U袖c󂽑3PQIWe3~#hJpb#'6DiV,WgoRkQx[XmCv gx[Cp+dMVI"W9lrxRsJK2&	 l}Tx[Nu3d&l9!'3/{rWBf^qIb^rܙ%
%
E%Eyy
i9)œI#q)h)8$%BN^
aT1SbAyE|J0r+2sKs,K)MEQy%
y)ɉ%ś1J &甦+($U*%攠q0VNNCR#nqd?!]m%
99Pw+*d)C=S<y=BOE   mpx[XmC "rx!Mp[X&qX ?Sx&Mp+dM֥ϳ>g DxZYsX~<tq۱L*a58
+6bE}sY$$"#/{l{(^%1cowwrw}6Ͼ	Ӳ)=/aʧ,<a#gRzV~r¾$N?q_Uba<8O8=g-wC_٣S"x(ψ&]X4|Ez̲ry
Od~g*+˗aӔ%['xbn<wVwɢ,",[	'S?g0H Xjd	rwfiJ*3L&@UCo7LgU06{`'m'b3|N1Aps3OBHb,)?s3/lP'w:͢y13}z_0I|>c6Hx s6u3w7w,͢gBpCFN" q_9`-X!5/ٟ|r&OBK:)&vRVlf,sk\&~nskD?P
7cHElB -zœ{d.ޚN	
xP?#Of[_4(edR"uA3xI^OAyNQaakS8bO(q<ϋ{L<O94EB
Ȍ'?cR4 $nNB<̝d:q_i$IWZ^FOVu,qCPɩY;Ev*✆o0oLE($ͱlT4uÑ#~_xYAҿ#=Cc}􆇰:
#9Q*|5,bNy/qЙ$2i/{IYz3>R5(|~r}4zoq%=DigaOk`!\5sԚ'+U?^GN%XHaUX0me z?eCPZ 
P8o$BWS&VEԁ#-/vjy<O\%ӟ0X &,餽h يc*е^gx<ef\_87F>3=ҮːP.2CmǖҰI@0eG9"YvXN,V솴ם)ס~$Uw)rU0CX1vwgʤg'/
E2߉ҥW,x!R'=0jZ?.;.$k= k7"~by7e#ɾkh;ˑ,K0uEFj+e%ɔǔݚ#ǶTpN>f7;n=_T[֞+{S-+BGM\v:TMl`.-le 	 N
]t"o9K,XS}bfu8(WN'F"S4p?J5x:Rw0a+n4iSFFM70DK8`hj3{o	 ʔ\%&u>^T0pv@pɟ5 FwN \\wAhmi{Q}&FGJW9EoY
:­iGN{a1}54"JwLykѨA!SI-PT#afAQ5?i Sx^ȦaY}G@,{݁R9bD޽l#WLάKp\AlŠ:D$34¢4#yIOH7b:d5l;WY~?%SEkQʊ2ކj#pxD\?࡬0iF2m=z)Jo@&He4tMJ ЯM'5ڒ;
~;1zj6 MNQ{q|጗0 +fQWE͇|V@zqҔ<,9 _ڄ$Vqzɂ2plg[hMIv%Z[[xP61ǀ=WeSq8:Y
B3A#$DRwNmI#]gie#</m:Y(s |#Zl'`$Ly$d=<5;Pu0b	 $/J0cр11Vǈ?hubh\WnUȺs/bZ(֬3Y#ιgs1\Gͺ섭SӇE[F/nDxŀxyTVzXE
ж_`-8hJ6섦7,J h.*^gX4ڄMw:Y^IQ,JPnU
M@&5X7"X%S9!5+N`XiXJD5i˨!w4u-.;bzpZ36W4vj"+<}ln$4;UH_(Q(܅>	}v=xRNEpc[i2QQ<5j5/L<Zwp F]ֽps$X?J;X5

W{ЧbЏ)` Pٲ𩸐2*20{ʉvŝmZW(ΆjUX[O4.p剩gFz<Q{&dT$=T1mYPXkë=WE{}yrW\CW%#9fރ3զ?}2F9j#-5#{qGR5mW=Yq2@(G^P@|ZCɖ=*eh=b^p;)Fj;2w	ni]{D	nahg?*Yq}5:r2AIdHI%~\\+j]}NY@Y~QP)'m!Z)EذЊޣYvKWXo|/>UzUM垹$]1^DRuccmׄl]?n^b;ClSkux|8hS4&x1xw^ԼԢdԢ5$&'iN Ik@x;!p !]:Ux;a͗Xܤ'H HxpaC"d]V͉LW'`	RS`h`u ]:xn@ժ,RMpV7@8'NG"&Dq!H}
o< BꃰB	kf&iI%Ks9g~>7ųnŰR.Cl"ANüz-Nӥ1Z)[^٩"c@>Sg%h1f4ҵjǩfKS;e&_{Q!V5[S nu]mNu)c@̮VȨٺS1-ݴa ?u10, CrvBoV}
?c¸1>uWW$UI 
4$Hj /g6!4@{<m4̺~!L^!L~ji'♞ģlS=TM\-`S-xmf216_j5S/^mijcn;̊Թ	(ְ7RZ\iҀJ0ˀ?{81ӳxltʵih-jAHV]+/dգKN+>{Ӕ:Q-4ubZ]ސ?.+x;a佬#YI ;x0'pG'Ws<OC/8$/DVA51UA[tN4 =x8'pCFaE
9P'0Kd|UypHb<$$^rO@@%	'#!Z uz:5W=ɥru  C=)x8/pMuĒb⒢̼Ʌ:rLӨ Hu x.pe8JRJSJK3J2sK2&L1YN x][s۶~ѨNsTZHv;}$qB<V;g-\H (bձg[u :CxEF'oɇ~&gwO}rB	G]rM9<	S:%y8	bo7];MR?
ɇ_yXE9Yz+FS
m)%aB!D8ق06mD=çZxȲ޽?GQ2qbn)I~߮SX{%ě'"d>3?wIͲ{/OĿ3MgE\- ZB7"7˛kGo8]\#r9$Ǘ'|:%?IPСq >jr(XE4O@p{sJMB4Y)Z5L/أ\HtE$crs=[ħ3roBZ82|BaIÌ&ޒGCx2EO)?SfLSlb;$@	t.DdPāA%|ΟŹix%(\1{b	*LڋlIS]Mh+犱Eӂ'FeYjh&5@(1I&Eh/i¥/g|Emρx
,{˘H#*x1Ҍ.NJb^8b?g?u8	)%Yiz_iMo(ɧPk'q>d aNYy_,_KNFEBnEM?ǟnNOyӇ&N@3`G(tdVjX
eEÒ(6-@ςF4AK:yo~$
cɰ[ik #Զy]?]'[fh_䷲ݢ<Wɇ2{㳛O$]oEq'He<:͵OBiCjp?lL	FފΗMрG'j]-.C\qIM!>B\Ƶ w^OH]ƗWl~XAt[qQnpi{WWd<^FHVPQۄHyaHlxDgB)_Аi侀$Z:/۞BǢKѴƗ`E9q!L|DBFf?>eW?nMaypTtAɜr>_`xl6VUWAѮK㿩P(Ϥ6<,lrZUyN"'5j_*"iQX`)toieX; i/a8}. >>=f'P`;?<p+nä?`<^G#RNjpZ ]3(ILH$J~CޔBCN[SIk)@bZ#w024+W9s!(iΌ/k,.ҫg:. OTqkW~j}Xk1a D	զ=6lD,2M]*QQ zeq4Tc]AwDei&	9$iH6#v4j'k:Tx<_2?'V&cgm+c1P1}	"@m@=:M;Z#Ԏ>!o3fg$Ob$0(18ܠ%I;)	DCK<FD̮:Q!g[YUT
ㄊLm	ShɁcF!`&:@9,95˃n+>GG%yN` DULھ@ȣ[0f%J>RVlI4T9DR#U	 
7U{S\Z\X:nmV$m	Z5&p[FNrX[Ǻh?I$oN|"5D`|<&	85Ȍ\bzR+
4, 5i +sX0յ8oHNP8U q*g@
Bk
S8j,a(^R.	+rjS՚μnQ`/0f P*2gI*(3ſbGQyƣń$V^h<hw%|Tbij+x}|}R0!Ke.b#$[[1t:A'leU}tݳGJ?Yy-i2)1*;ajE7٪#h5L X 5f	ct]2%"nUta-ث727Vh1)牜Vd).tiPJNsW:F^QیKѶ	i/j27b
hTo6r)%PO1U*M,97$056-ܱ8kqfk2o6$I2Û5@vton|]73?IZhĤ $&mZL(R&
jEw &׹mk;{jU}s}]Kf=B'WY^NLĥ]gJ(׿9`7	3SfCbgM5ۙhٟ&R	4!uP_Di-iZ1ڑ >ge>hB1eVCpkr_tN8<'׮j¬̓?fV磮騞Mm?^cOi^4a[@ASZf- 	
'ZH~Za;T!l+Lk1UꔖYlvHBZ*C
tǃ.3l$r#GH{EnI=Aьs
ER EBԍ"QELGc}?	bN[ I
Ir}|-
u
ԀIpS>aF%ƾcD- ;@"n+`*MlrUS*鎰XC(ٗlRr
uDqݨٍ:~GTuTMM5Iɶə6	S6߄~^N\F5RZh8g[4?#Y	E
3kmkyf<[Գ^?yONn7`hI	 m0,W  ]Sץ݀Ze;kjnWYm0juaokaDQ#ۓNsf?
x K\517+RZ6QWfp Զő\սvS8U6u]퟈맭aPu5+bj?޿}5 nV_⁾m-d?=uڃA+L~_)GgL(W2a	^-r밣f媰Yb0sjNb,vϦf
cU%"C8y&'SL=6caKnxofumô8h)NZ~΍z=x	f=!λG`"
A9-^K/۔bm%RhӐ8l)(3̕9Ro9۾,OCenDl1\qͿ嗛5vx"Iϒ7Jt*gԊr`"X]PVԗMC*s%o.:cۉfW(6mgȨѮ0[f:`oqhF*Rt3-Sb5JTj,aSF
E ;]l*!JkG^ɿ5:J(&0H^KhɊƐc!2XY\&C2?d0z
@k*;{ǆv7܆#KMv3/Qţ8
	ul\ssƨ"r_՞.Dq^llqoN( BJTa.j;x#K\Q鎱<(=za;hiĨ.B4`v  pF2T [%ae#= c *S|Wg_1x 1G8mg(XDBk>R="WqEƠ5P
؎p516[eCrhc]VI@{ kV{[DcڮBv};$ ABuWn&@ǨSdkAX0%痰D)rn(|j/ϠN(u^3eRƺAbM6-.cC"͞s%*-"QPgXrG7*:ZPcS<"|1E^?ޛㇴ3~(ޏ~i ys-zh+JWUo5wRu,ɷ?%5iE/8Ibǃs^R۱@k)PːEvK;W7a/bxCzcyv#Xw8H,E*{VQ$U~/^R1z+7
>{`[/5wC,֊JY}@ wSO]J[>xY۫{^fSP\6O)ӓ&w4z%WDm{=[\	AA5Y[K+VRHXvw`-tH(!|k>76yan`*N"<řR#oWez?NSPQ!eHT^@$We:DXZL-#*n*5QdyqyUVT4ѫ)y=<rvxǸV	rî 7&qcʥoؕZ LoPAjs?/LnΩyº=[wG0+KʑZ[Hi3Ψyr}[t[99QQ.붤ӼSEW39!Q:=_ONqOn5
[cT} 7T^]gtuPOY4ճHZ}I~,	^*5^CtuÄF(IpJ3ac^CEHsy7'VبV48ҝ&:J%淹+F~H?wjQTeCm4I4Op6,IWA8*+HwFjV-	UԦWgF-OJm-u4j4'Ɠ}՛2UGs!޴0b;4*Wi;(`wR'vR#T5TZwW;EjEu=+3?Ki[S|:-J=s{Mp.^9b^e2IVL@Yr[ŃE&.A8(J:H"کy#]-ohJz TWECS)-,bs!A 
Y5[hl,M46^VX8qlǘlLX>Ŧ#oĲ̪V6U8^%-:ۋW%ovꔪk*huQፔbP[[Yx4!aRPZ)L0T(UJ)ԦTu\tM@rv5UéuYUn=|LVZ*v(ͻӭch"ɯ=ޡ:xggl̎ZfkVpËi7[Rj[j։k} YTeqCe*	yΛU{ɤ̶͆XSEEϦxy?@é?cf >";5:nx'ӆLœ5&7HqN.c|KD|sw {aj棅W8KK2
Rr33&.P
LTJ-(J-N+)V@Whum}dZ^==eAZ!j&o,.+16/Q@92q;x&_h<w1&7gE	n݌ 6a}_x|5ӆ^ؼR`;db*77Lg4Hrmn$t,0ͱ4+޼oN͓L'_3^c2 @O2V>x[[lVv;@n;]H|!챷sa8	&**V!j$*$ީJU/E-D3;;3{|Lj3s;
|<nE.@KʠVА]BB?OUlZHF[䐑MŔ3E`dmEO--嬫H޸-j>M%ɼY#zA{mFٔDF"~FZ@eQ^2mkYэ>[a
^tkh][ݽhFߥg̟/u5ZJip63S3h8įEM,+ @.-qQ(^mgkanaEzd0r-226n5Wꛝ @4ʛ- -mli/O	}c6C V]^Y	1"6i2&dE6G6EeבϛF҉S|`xMyiQ2hH]i4u2{zBI D}E^CJC:eC&h1FC>w>@M;uBUC,K[GtZD"UNd>D喿;P 
T=wc^f}doÃn sg"B,l>;|$B\_0v9?5y0muWn51 j]= ы11s"(bqHD=q *#L^1\-CWdȇe):QF5K=q1~c-戨X(eZQh|#j˚Υt1p <R=k:?򋫆=( +͸j6἞t`^BY}-Q3+Kx\j)[,1ھ{3ѧ887muBis	rp=0xd֡q;=K$g|k3μD0q+pq?p`Md<bեb*bU$bC8Lx{V\.URV	he"vɈK!c'-#_}~tiLpOc<GGb<
P&H	qEJxFefHB0#_Dî"֊H<X JT`|B'f?YH>!k*gm
˖! P6 fnd2h]Kc}R+f"2⣏vcАzC!@Jt0$Ƒ\<xpu_B\yrBD9LCIi/)^2PPu䅁W!X=`NBPuƗ?E|+ZC`
9+m85UUxUoab`[tWNۈF'BSnZG6cSeˤC$r1-//*j8K_93)b$M<fm_K	XV|.@+?`-.IsI.B 7-f]"쓤enr12GG=MClFa]>/ؒ{7>x	OP4HT)B'kRX+Qd/Ըi2$Z)v];Rh)%i?}%,u)دF_4	TH[P9E4fbɵ˲D5%$ XQ-Ct ,b4ʏܼRV-%v#lʼЍГi2Wk׏)n&tozS^q~}T_Y1_0? pMob^)2r|0O8y+ꭁfX.3 ^w%Gj]4Bj!^9D_^7C<HN
fr+!8ZD ?tU
\)FL3gn 'U'h$ӡB)PYЇT{$Trkq~3wwh."Sn#a`t`oGw3+!.'ܯaJ´R%h ք+W8VM9r#ڃ<+ʕ`ƽvj|EӍaEhv6T=x"^d ˧*E1wKr5ZV.
zbָ2$	@bb/{D(uhǏǈ^1WATIvXȚSO[E
+u&	Uқ^<ـ[ԱMZŚO&U:>p^7cttaԳb`iJIe<X$!2P8;YX)\ՠc@ˮTzO5:I1I.<`{Q7I" K T vG ${͗//(POD[ꚞtoMv-$KI1TUX-f)fvDqg(Ǵ[}mXqBx*&wgZ. w<`C/߸Sb		?
wvI
OAV뭭C.CϪL9;9NupZX5q{]l슪*)CD2n`Ld\\^(/Ŝ9UB	;@JYJY^`HArfHWl2e?''G|cXQ%r4,f7P}2wXƸ	tr,1n	 C2Z>]m8b:*;۔Hx#4ݟ1~x{ÛdV[XvY;έ𳶻DW!L+YYupxP3L~	ڪg 60^"\(v^Oi"檾85kw_ݿ
ퟎhoZQ*ȾC SITUoXRus9>91O}7{z&wM֜&seSw"f+J]jw|ta5iL/7o	vpW⏋	5@zi -0>TkQ\@QT磿!K7Pq$AJYĽ*4X.BBn ';Juz]qK7q]'=
	P`h[&o`:#<@*,B%iT1.fd">$-Xe84Mn[#j=3I xQKAňcŠ_
҂xH?z1 ͷfp3̦	ࡵBjBJE
^F{ٝ9sXf{{oJ.*ϥe!DT(A(("%EװE3)R"Sۛ^WFHYW2q+H(Qv/K͍
DukF*Z8Tb-,l\Y4rߞ}b7.?nk^;;Ll|HB:+gvZL2efџ	җde~`~ M~p. ,y&yܺ=qOlqnlUAIio[\]&kmW)ۂ  ݤ6,OOeRz)96VC]j$bU	[b;L-O>Urf/Dg+ΦÿϘExZ[l^^%6 .`DlƻefOm_ZyWyK"T/i!R҇RUoQHm?3sfs̲ %"ΜsnW/|o5mͧOV9M}L
ǵkywlafn;gUZh7Mm*E	4SjaZA'e`h;vEmߨWUnj\>QeËGr|լ9TJEFGɭ&*Tjg6iNѻ-^_?R)赦7e93[(DtU=NDnu5C[6ng@րlTEJ]XKDVM#Xp28S	xO2AS'5ۘH,y6ݑq^ OasRgHx뜳)<& =K\NvL?Jq.1;j-ZXgӢ7uͬ餲CǄ_Rs}83`Ot7PơۼvBF_O]ƸA\O!ns3:x4&w#!QiOKn尰&x\wapxMr[DĀihhFPSH:A"~+vMn$ߙ %T+$YV%:j&db5I{gO8	cd=:_2`rzJz9}ؒqy;!aȰ0y%ߩd"$eҾ2an2)|NL^JfrL~<
	:q2M?m뇢'
U o=ƓC ޅJH+!TBnPB 3ǳA^Fݼ7l"ڂm*L .DUBWsrNt1⠑eͷ<bwsjCzBvQ^=f@j~	ᙐ=)Oxꈾ&r1mOW
z"g0k딍oJ]JƸLЖūS\#B9ۑFFnPy!150
sotk@:C!8/qNo?@"!WՀBGP!]C#Q.Gnw}),[n-Òs0deU*$DHPwxcVM8Nk_'UAdWOd2o0ә`Ll$@BF8bpWF\AmP'
qVdi4{ZɪA5R!"܈!_cT5`YCmpdId6N#ոB4z+41ÌRW,-*m6NYvM{yMB|NP[P$'IVg(6)cUmy]^HUDaa
ICAoiS-{q.餒KM<&`1%=|fJ,:9;Av;Fg+mMҺ~B6	>ͪmG#G,mONt=4|:xy }]'{b>eHGzyuDfKjK3p$h2D
~ƥy\zĝZ8u¬I{x*<f?Djeǃ:lB]Gk3D	j[D"%|>G:ʌ(eG\J^=^(U+o}*WYj.b^īmRGAaݧD Tx'VJyE$'z(KdW[`C\Wn+Y՝	)!=&1}&#,dǳ/Xҵ_[++1bG.*eQ~F'HM~A<@PJNG:=5C
J]%(~!ۊ+QWR){~-ؤ:'/Lӵ޿8~vi=g+;Xu+cqzfww|9q62u%v}:ө꟒UbnNL[_"51Xz!^l<zh28PK;V+Ce鮩-jθ=TǑc*ų\s`׏}k M ,>8{1ʅ"PAF	f'f#lrZ/,>?a%l.ʋ١ޠli!Id*辣ݹ:2c[DP p(x8xyN|5u+% <?'zM}?򡟂@DZR}V)HVo7Vk YDlϲ&8Wr{).8yA7[V'x vKٻ;vI+.p1.Q?MK喤S0yM6+bLH[m<I}2M҆dsOj%.@Dg`|H+NHo鸘VUTiTg"vsvߺt3yz,%\	7?갞	^Keh{QmwkZv]z8U=o}g ϹB	zmΪ{׃WQ3)T`9 u4[5IQ|5Ý%sgjRnjssR_SxX?o=+uOhbZՊU#n D)hY.e+7<=mM4gk}	^UCÇ_ܲ즹RCt,l|o؆يOTYWlԐL'o>	.Qr/X| fVoM\zry/ǹu-י,j@)l)XH2}ByvY91j/@/@eъir()֬<[5<B}ncO&d#BP?x; 5P^<bp|ό8@	.	x;ij,;SSR2H!(35M%59'($3?O&HjGaK3RB]|]]\=yϱXL+HE5Ozr3d~~\EE@qj. @gSS _T\XU!{+*L^%>yNjErjSؔU L&B uQEzmCMZДܴx'j jxf Fkܨ6{|Tɞ||yߦzor>r\fܨ>	;0C]T]o^&-xU ޼^<cܨ6{|Tɞ||yߦzor>r\D. &kxG yܨ6{|Tɞ||yߦz3ܨ>	;0Cjqi;"Ax |5䓀^<Y	8(
repThisord2I.5#YmMZ@0A8l	je	 !7 7.,c5x[iC#.YK2J@@J)8g%*Ldtqquҙ%&Z\Y\PXW/opdpo|c+\|Afrvj>lޮAp-yxbu\϶ ="xG m`subscrib-mM  PKnI@bPy'.Kwxx9 m`9mM  PKnI@bPy'.Hx[q3'qnǲmɿĹ"&l7¸o* <nxAoGD
ITzUJQRT'ńVgjfLAVsE+.Tܑ|[NvfvzǛ^y<7;? :n8P|EТ L	"dڞg':.9z}Hvo@?qqϒ'pWժ#v(j#.0t<%EC@b|I=CFf/U	?,Щ?B}RSK^D֢عЀm8Lڸ	ʊiZa AQ(J՞h_ iw%Ȯ~Q(d:'ƽ-PyULg_8tiD7EWh2>e=ᫎ<1BwC,}zq!cbf+ڷ猺☴)Ey\TjEMIAeqJ5m((0$DYo.1H$0P3I[*Q jj|1$ӡAKiP⩔)GaM?= 6?gf]H r5eGNLYǷlq
Hl0DZ(Y1Ħɕ;I.<ֿt.&I;u#Wݶdߋh́p8ؓo7OgO?΃Jf$픹~|qaionʡ'sDlSeu1;g4`>Oɩ:_H$:R8S*dӥe5hh561-~1e)`%Q7v17Q>lDX]WNttŜFIXU Z:'k|&J:ϣ1nkroL&bLDRҤn\Ӎ'SɃ IDs}"Q_$hxmOK0!Eģv0nN%k3ґd&;z#xKyx26Q0ymc}V>+YطTH$c%PR.;)baI>eTH"'cg"7q8ʾ
'X{B]I=Wu͕Zg9AFjh]4!""8Ld9M巠3 <9Fј9"WPf/ơƫ69
R&1eB>0u,.3L߼uڎ,)=BtiO3lf^4p1o`{YKxKlZEVX7_8W+s}hZZݰyixlZ})yxVMlEV@DCӸѤqW
M"NDJHlnU>ǫwY\ʁ$ē8 ā9@Own͝;3]n8{o޼_}askO!ᷱ;mnVdW+BPh*-&QGe4ve؜5R_cs}ie_+؜Dj<T
ciY}r|iͽ*'6LӎcBv\jN}org'?]۾،K!ZmN:yX2t󞇼WvVLbZ h) n sL+i7)p3*Ђ4m]~p>>1%yOi)_j.)'-6^zJiZɀb?	! |1pݠ.n5͸;P

UjP'&5݀AS.ϿCKw2mu]]@Tr.,$~ե?G9Ԕ6Q-dR
38rX4F3YXblo3WLSi L[guc%P}]V b89;W
e!3ߛR߯+58g54:dlN'x>Q:'$4E2$ٕ]gZ-Uʼ>edt~͉!"0ˁa؀ ZK^{d#J}B7Cu@)zmvm#/,Ӷ!SL|4x.I\)Gࠚ[̒ ,-n2w@+G;+iE6V(130NY3ogunז-gfȬ~PVgZϮiצد/nOtw Q0m	O2hy_h첈='nw|
IFx(	̅Ku6	[ܣ[br
2
	}-chXݥ]zqh~d޷B߄jx
2jG2#xi&3O>0nk p	Dx ܼro>g.Ӌ# Mxi+"
%
eřI9%
Ey
i
)%;dERJsBSr&H&I-KXP\Z&U*d$()%d*$')$I*IKMR -}05y!x=TPP_ZTLE~Aή\R!wo	]$&OH_+ͅ*o2%&U`Vc8p*]a$%攦*OnȟʆldcսBN7C2FR
H83z X(xUMKAF	$4~ık衟P**~L̂P
=jZJ[z?[=fw6a/>>;Kb*L
 ʐL75g,/K&tp,rNEJddA
((j+*
 ,f.Lp9QS`, YL.ju"D$"hնB<xdJj@yI@@4- (q:A	*e[t2%6
@yp\6{r`yFG -dcHG|;茸h%ȯ.BּA~Y:Eff#.KfȌnڝ*;9юM'(%אݧ.~{SՐKԱni"f7o9g~Vk&gFf!ºE&ƏS\'.gGFX4Tf4j5}3M<'N*$VI5ap½[R_ۣpQZ3-#C4bg=h {,z8ANS󲶟!PꌼPvX"yѮ+/D`܈R^и@?2Z69b:պ[J7Wa#klabxRw(&׼;X\*[PDqw=5@'j_	{}so%V`iPB9c0۩ (x{BJM*fPduɻ6^;˹'/y| B
7x+4K2R2RrSs*
3JRSJ*@ɂ]b嗤%KDfBZi^rIf~Brb^^~BR*4( 5hVNBZ~ج\z\
Z
.,Nlr 29pdM<7MĹ}7+ *!Cs&x 	%\dд/0x[9qdnn/ذLN`V(ɟ|Ybs*3 A
[x[9md7Rc2$'JYo^l6dHM/gy[Gr=Q g3k]28z "NxKOQӄG#-ZRz !8XHbFظ;tfs#>΅1 aQ>m3SI$f{?90};㑦Q+pw98'c]s#12{:iSS7ѳ$غ	\j(T yP-WOQ^O~,
&<~O~ww}b;o<b}79+	5w M(0jNʠA3u]֛w2@ݸ[Qd?ɞI*|90sn{IWxtj< =;%R#-$8$Mq
d(w^Lb
$X_Ia7YI#.qx"@ BLgTfjtWj6㝂yjsPS8 >JtmJ/[ڷ\GfO&HҗFBˊgTB+s̄ [e `X*1@kL~ѳnX,ֈQC^bjuT"Y<M9QBCY]s)pIYm9LPu_Ri玫w\Kd)pxUNAN)D(P@TRkM5F?#^Lwg:3VCx'D&^z`nwm+rgӋݙ9|7;]çԻCHU	|D(tSRfTfCl;Z=كG}eLka׭`k9>)\j-5NA [OgUjUfBL]LGlNm@Bv3; N-f4fG&3EI!)nNz!.Nc+H 6q,}"R:@ L"滮DR#5.<
?;~"^TTt+;,kM"}m"u~(fΜ\, KzKG3F܊؂+T!Șq}RzDO)Z+/s]U- 9BkK+@vԑiGOILܞ#XNX=SDI:/om#kQj|@Jy0EWwB^]pmEWp{vt- v*BA01PvW">5:3c{4aLX_s,1caocA,'.qꂹvhBڠQDwRhQ/R~Oqf ίql^y1Tm	{MK4B9*ahN蹱1=z04!~3^ri\_XJ3IN1J|y]8\m&xVnGX!T!خlCn(*K$bErFYvl\d!+UVE#y/T'3,b's9w󗩿oqkw3??=.~MqިW@kq@l`6ĞKzu_qP{)=_34	qol\OsF*r6܁Gwo
q(@I1j.%*n%d4_R	Er5+^/>"*ʥKCqhjQqy*.WuV1ayBrC(/ө| P)V$vǢm鎓Τwʏ/UD1 Rں6TbGUu2dZ^`6i2)MSo%%51xv.2|d41_
ȳQ,CbYAv_M;jۧn0jAl{\J,hsIZw5DDie{V#szF~W4?`νZKg0BM3C	4]#gQS}T{(b6;-L7$˫ftE8OGzʩ,	0ٍBmwLmZ	#iLp^1,:f$q,2,dD\Uj[;޶\W+ajvp/sd4Q;萦XF|jJ\nF0@<"#vͅ+&(tU
Ga*.8oƨ09c5C?$brc	}veK@;1=1{=PVwpN~+!׿;5a*oJ˂ϝe֢rX1nɓXTk3e9rJo*^3Qv'u(ᴔ7]fxs9QE]BU}RTrVfSg=ޥd`#,pAl/[ۓ3K U~t(YxAK0zA;Unx\+;x
Y֔42tx((a<n{^|f-Kp<r_]8qJ07BP=C4ZfYiVR"IViSt78o&HU]Oo>I!x<򤵒_}`fii>I
#ܣ*n!d(b\&vEӱ2SݨE}x$JϢ9"Ԍ}#\*3Cy"i82nCm}{@uEˊMau!0@V5}mAxUjGFPZ	)IrT; +R)rbΝePB	b;k^,3NbLߠ<Bz(}B@ns3i%*t;3fpK׽Z8U|	DR1fqںmway'VkgMQ<ݢô	!+C )Mn&""I-AK0|E$2LM25Gâ>O8̇ZBmI՚ݩӚs⦤D#n[eGW`r[(Ef{KlxIX $UyT Tǒ+qFZ	ylsrt͏+;L¹MӫBr=e*(Ov5}'76ħJKqlM75MXZeeO-]A!sa{w?6@6LR[zuV}>`[cn>Vkn3*NtLd,:ȏ1	/hE5n/z5<#YAZ} 	£~x2~1np5d~$.uPe]TGJIZJ?gVGz	ZIƍՁ;JCLm "7#MƄfAt<HWK4^;aXtLqũz`q\fhha \S)R뤩n~>,-}&?֬θ!7oq4t=ĈYIC3;9~1r|jyxg'n'_:BT1xEsqEf|ctx4m:*y敤%($$*)&@KJR+SSSJ2Rr+2sKs'盈OPd<S5	d*"ʂTb<Ԋɍ6h؂іddetmN2ǣ#jrei2) 5O!#(7?R!@!$5ɲEAhL	uuSHLNZbf0hJ@ K֛l ;ږX:
E
%Ey/GdK)q h .x;7"'+Hm8AFrbd>b̜ТY iPAYSv\8OJxq)Y([K]PV# "57 f6GL h8B6Q);7!4^RtNd=!Qt86/QzߪqL`OJYo~lnrY6}	-L{,PrO-"@#<4Z@ P66zg#fmL0dm7= `_xTKOQNyY
-BQRB"Vܱ3)pV9ܙ -.0&F\<JeI&s;ߜ{qwvCmueÐ(HhjlnS)+<O(zV;]WX4rl=|?z㎄;-"L9QA,bӘ2H[QH噧oӢ'?_mHи*aqXÈP*S؎AIQ4	6hhPp\͕8GBĖ.p.SzU{ʩ!G٨dMuG ͐eP@nӝ<hg!wy6՘`i˝ib4pxxۅECgN+ATة
C6z?A
=@X3d+U!CđeP(DTî7 RmL/Bz1:`n:G/o\?.9Tdl+.WH*ZJC̎N޵'^POHYE%5uc4/"ZbͥM51
,LcY#HY2m	8E(*h][o\0NυW_-xwZ`grsN<tK&oLg	wK.A.7π	}LxUOANb
DT1Lζ,ZLLHynճz7ݶЃMfoЗ{eFHFenPLVl4f`dEz"uUu?ꍆkVæ62	j1DG'ċ[L"V+cKZ8VNH"Z7S&UxFTD'ڱ)w)&}A	IղʽHx, 6fgbDʓ]=e,7"lUqM#*oL̸p8sL,8˦DJ(0)|Q6Iw:ux)yP2@?=[p"_/.[FMȡHu9??8lPh"s>ܚW>q oߞIZz&YXy@<k+HyMTuPNmܚ]zLe6xbR +A Sxd=aBZS"n{: WP|ћSmw?t0njc: Hew%P?@=&8]mMG6fY	FrQޘ7È0iӳ-F6s->}M:`[<*Xj4
0VpnR	SGnM@2Հ~3cOԓcè-PcI>M)彣MSgqoA60 V}db=QKFiYt\
/rFT~ڽnSx]Yo~ׯ8/ij;6$AYsr=!9LICA,ksYfh<u^oлޣ`114Ч֟/n-Ph&'?pEokD|u:֋clE(1AB"6Fpal1
O1hn@>Ȉ)mMQtٌ&Om4<4=_ BNw1	@>eK66q`.ЛDĽ[E#tQ@q` 5E'9OЯt>|^^ݢ/lru;::NG4>:!<P@LB܂sV)IVظ{!	UCТ!?Cò">bݝ2 xn
Fdφ28؍p 8!+b`ċCF X!jeq3 a:&zRf/As>@,Jqi}^[fO:h
KbNOhmh>o;g%I@Acc	]?Safk(ZiC(ʅb3HoRMtn&`el9q=U
ȳ^W¤|vlqb;"qJtJ8?_`<^ЋqH[F'g'+ZduC fSd_:B 1Lz3S+NAw. 7@~aҟt+͹e,)h}WWH3xQ7t_f[*;ݰ74rQW0OcmLVԥuAc	8FqK,:\_.>DXMܯDLd?!r&Csvszsњ;]u#@OHܹ$;O?B@o 43&Ye8>K;I ,pVg1~e+|?$\WLl4(9O `7QgćA\w$"SJ(7孁OXQ8,_Y<t_9g+[#ƶGҁYjf4f{,|"F]&kTM!IFKY7(XB^/CYb?x),zC	7!JOcϩEԜqj%$қ5Cq>*2pގGF( Spl~h\nFЦZ	k,Apᭆw"j%B%bQ1`H:K7]hJ#Q"臿a3AlQ\3hEO~hX\ےVӫ?&狛l	 +8qS6iI7dQ
SYC:01XTs%=S*Bśd_834\Qυy!	4z2!"Gᵙ'BEHQ\L	}9jWNeu[:k_ٜΡ+l.杪:86^wuMU\N+K@Whk=v#T-3Oң[(@eZ2sL@r.%O:غg:QhǇю2F *y죚_ACTG͋><C&EhS« sb9r=1)X&
J:Zݟ$Qr^˂tiU:tP[A@TU z(dۧ^dRtR.MdG;3s/6]PNp>U=lK7|=×2->T<t*5g;MF5MLBtne4[~9E	[^HB÷jЊUE5vcg3H=:c9&zZP&6DX۫Yh=Q P}ixB?B{[N~e[.,%.]PmKc[0j,m${1).Fȑ[\ka̗	L4㉣MBd+)?Mu{mLTXbǵOF.cײqqg/;QCdwL~	 5:$ڨ*em+0J	Zvi;		L7s{ŵGob~mgX^yWVs!-5Ilh
(GѸret4,£ATl*v 
y]s	ji}SZmjo T^zn=5&gbB;^_Qa׋׵:揆S<kLtQQ-DQ1ErVo8jo8&Ǎu M-#ETԒcUjC>5fW\}2m]q3jjRٮxʂ^8*T b'X-t%`.PC&\#OڴyǓΜvģx°%pDk3'oi̡IfwD=<9^T='fb9u顟	'A5}ǱpÉ)])zqDadBuI`7O9O9yM=[GPv[Xe%ύemJ^N3{ܸԹ?:KJ]L{Lit9d]κdu㽔Vdھ[6eYvͥW[檌O
gMl;Ͷ?Gk:%yS!=oNhك5h襹S̯m&#(Y6ZM5f9lDHs!TD}4lR!5{uC*wa5]mMYq5*(<,Wx.Xu,́p#2ib$o`#NLx#RL]hJK3a)ĤZbCSJZދKzMl5=vEf I))O1daqN(4tcX]/׿:'dwaj;Ȏ'm]?Id;z,^fP:t:(մux?w:iv;b(#?(u%ՀJH停׎Fi!ǢU0ǡ4?l"w6\)-+<J6O1SzBQ	!X0Fl#dAǁŗ|,cG&t(hhszC\L@@ΈWddE }ۧ_JdDC~rycpg`!~'͂,]&!ώSԿy-ׅ'-ρv,^ bkM#Gx+Y]{:+քܦN#݃Ȱf6ȣ5DMWND|kc,VRnA#wgd;4a4Aq?0u	~!p̢$3>N ~KhzghS ˼>v&65az>6ZR\+~m'+Lv*v4e%~3Ķ!
5I=M~EVXf0};/W3H'$4XxyiXmKRs2&/`ij ggURYWXZ19UͶ (783?OKCqf^r>uup|U͋"\]lKll&f
/,IU W
lR)Eř%$=C`&+p"s,Lœ&??d,L&(pnnmc.Hh!RP?Y@|#9:E
@Ks2+RRSJ
`Ɋg&`c{bACL'X31#\G|hJGInBAHFfBif^Q|	5/d9WP ͱY4L|~fhw/mL"=R2KR2S,ic9l($Ņpd$qaN,ϹY;k:7բ'Wl*$ٯg }o	2*SxKKQ1AD BELE24bkpauE 8/к]QnZ'ƱԠwq9w~kBx!%IeTM^U&aCXJ)ca$OmF
FkN-dvl2{aio$K;Hq|%rAKt!٧ղbOd=oEdm'[{6z0lj7fuZiAaItb?SJv}?.=RX eAhRǢ
Z,jC&R>gYD/mhr٦cc]R޽^ir3KCz"]]xyj,i)i
9 <3	қ_0N'e>_x[n},}dɓm%ͼT!Xf
e.zE}2M+8Y;+HslV\)3yr= G6?xZqwYUC+JRH83/9U*,HMIMS(.)*M.QM)vis 1YGx{|?Hs#+PTKB(U*d+(嗦gLާP6f哄%ْ1CvEy6%m!Vea{K*0X+58jG R+$$N,E
) ZPZWRPn<t@4i`uM?SK\q_G483=/5E!9#(Id,!'(	bx`?8q$'&G7%Ԗ_ZRPZ? p!,VZR:ZfWwR[j\i=y>] .b`B*xZ`>'lﲪ
)d$U*N`w2=CSAɊ"*qe*e9E0uA
<+&ϴAڜhda}2`ECe@Zȶ$l5y]ǥPP	1[ %(R!o 7كSbqQj*D{jIHeA*FpX$-JRJP@j,A7y Rx@D5!F22Xy(`ag.!ekE0aʠ-b5TEYYY(=*dAA]8tq.Ih0	9ŉ1RH(T/
c"X*	gc?*b3zM^NF0iPvĊʂňB
,Ҵ<Et.[i nkbxTjA&l/B6iJC1P`I#Ji5T
L'm@Ts-yㅏK/e9g|s7f||N6`))/7摗70:`YWl4
9Jq\8&"p]G}Ggt;O~_u0PLG`	({v='YʎEAޛ+WZ9P-ݠIc.J-Yy#e3?~@OԋweƨeXb.x0?|X.}hwG&`3&).V]~%?UB_2noIaPBE{	-PGy7J߹̵vR>2yXZG
6ZrDaദVbM%ouEzs'A}$6ه4'ը=Bn`E1;p7BH(i*R:jtY^j nGuyc/رf}"ȕَ{:H(pwzkڐv꤈{&@~P+5u_Ӹ<R`xTMOQM!PbCP!TٴGitultB;3L5,'hX44Ht΅;%egNtZ;fk2sϽ|ݷU.ruփCI]#W(|U?DBVқ-追5nE
8)Ú	1%rwxӎ!y>[6lg[Z|zU;0@1Un50	G@װݖ-G-תQS94愵h*j\[nm,{~WF3:Z&	d40eQux21VմbZؖH+lWfPMPPh/\ȇN"N1گjy3tZix&rLIZrIl=Vn:238F#$yU |'L[&O3'vU"CGhhѯ(%+B1;#:ne$}R=ۭgOAEz(M˱)4CꬷK*Ot'8\h_b"v7']OuZ3QgN(}@;iiyBL#pp?=\dgDWqǡ
gCyz6Ab3nvtiLj'wSLRn !Ig4h&vcDAfDoNh^'x{0qzYsJSR
2+RsrK2R2&oݼEy]Vɜ켜`5
@Eص@<ДbwE57rO^fQPGpze00a8Z=.-TtMdax⒢J45ݹOB8 W9\BHa{jIHeA*ÐȏKc%l@cc)9er"uSXP ԂԼbDr"LS;#3
B22uKfuF +$CxۺqBYsKsJ2sSS23sSӊsS!|ɫY7_d	c]xAn0)9|W8&/p|MI$757R!X!/D!5/4=crdywa>cOƛ<<A(O<S{@1-3'5(S!((85X!Q!/\$PZ9y#?KM;,Hš(s3o#n Mo
TYs^@S(ȬHM,K,,C6DKSvV@T;96P˘KAK,?3e]:-T&ۊsEB'6`u-?(xmr^ dpP@[+9urs {xW]o6}H_ 4ݺr,đ<InDDdQ#8^KJ5*[{~wځSylTp[dMK(.X]zwrIS(
PK
VA*$9\tX/8Glx	++(%39(Ǆ
X	_#9_34vS>SPlϛ(4-.*~u].rEƮxyFA)@gg Jafd\ Y׀ׂ)/@ZAݔI%جT_Uus2Fr8Bp#
LэF4VX^:!ؾ7p#jw778la\c!i&ijw9>ײ	]%YPX*r
*VLJjH[1EA#>N0ETevt>37?f9L`)`M\c.)50W$''hdZ&}s6Xq}elvzwl@w5hȔY4I{@(ך=4++X̨Ag@el& o34[4jJn3&3iȄn+;cS^s׵VD{t^9&ع<ڹu(q؟ vb8噻qm;"+Gz#>w^<eNDD\QAǢK6X(WhhZ{S9
yaRUT,n^fo_]<y ڿ?S?ߚP:W+sRmac'uG<p<~-ˢ=ئGq8L 2޵skQ*( +$Xl>Xcw[5:?^<tc+v2'Zr}gC<pxbExYS,qFsƹǯVe;O@Ǿ|-L|ƛ6MRtiUI5j!4XuO.R9e%9;(}Įllu׭`r8*Dq4rؚLP	&?P_T=@CŃk7z3Wޯm`EtԕhwmPËz[6@MnLJ9EMj+M	y7Kq,ւQ2/XCDZßB2AIyxvxqXN%YR$څ!
8"g"3Խmt8t:Z#~m;o1.=0j=%'-
br=:oZ3o%m:dSz0*k<?65SS퐊\}^}zg.dMsxi)̽? ex뗿*!ir4S'CZfN/L{8MK2RRR22K2sKSR2rSRSRlNafdwiK-ǬP\QY21-5(Uo'WV)mX5'*Yͪͪ	dN.fSdS yĦgWı[AEE~CET8jx&shCEsE9"grJCE9'?TrAܖeǥ7'LMnaŭU'8Yf;Xt	T2čZ0y"yajX"%|0sE ֧;_xMoQCj[I&IDG\uc7(0c
vBd
R_9ƍie0.\ޜ}y=-%^=jܰͬ މ\(%"Q.~dx*)zA鮯jf˶:~ҏ+[+$.#'¨Yؐ.縊~##bdTPnV]=	UPU{Vf(ʝ{+/A}c	ά~1

=W1ʱ֦tq4?֬D	TA^G3"p%!zY!L
tl!$Z<ϜV#Ik_L '%]XMo{;Wlsgk5n!
e
4Ktv\e"_gVNj.>~0>nKa8PE-]ʆ_BLm6pa1B&],tޡFGQ>8B0rtTk?&{r;B2ugKqLxi? Hl xe'\ #~Q>7xRok@V ciJ];D10kn.ؤ%:KesH_@|ׂ/}%	&~u]~<=?_rBc,|Kj{-6d *Q @)r%nCHvϕ@q#R(prg
(IUT d$<i1u")n志VLă@DsL+IB!00	ᅴroyc瘪ٌDT	D(΀^'_ϰCO"&?eUamx!l~ DVE#(#׀v}2A@X9zMź)2Y^,OGQԃn7mX~+?xw#:g?Ww2Cޑ8*y5سt4zl7ݶcXba&?U>L/՛[[kFuF?N`aZ(~Nqw::ۿ/xuG͠&!L(a,kGkl.Ŵ43wxMkSAIkژ
+OAMpmvD̢s{v>ĥ")7BEp홠Rcpnfx3<	>͛q<35du[­A)tV-sЪ\I&J[׻
(|d<PUz̀yy-v*JXQG<FBlYI27&	֘$/rl/>== iPNxm|
 $bR&h㍆ߜ1V;UMzS+NKyLAcg@g4{ŷvCy=nP/K/DLV!HpL@$89"r$77Bd#UvܰiڸscDYiYd.԰dh8]{0ns=KcǗ:0({̡PC^VNdvwdA[)mfx۩EaG_702n kx۩]aC2^͟Xܹ>j0x[/Vn'f/RX :0Mx[/Vn8F	C^̥s Qpx[/Nn8F,s 66x['F`|'+ofgUg S-Xx['V`g,Yՙ3h6xX=!r% xXYOY~(uzf21j)Di:i:R T,64`;,,R6$lҩ[SB瞪r2ӑj9,9;|GP<6Ej䭽xNυBw((qmAC82૗щ7f6g
F}F0`/z[.kՔv"Ȯjhq6ugqrM%B9챀sl5 l^Dn-WjFXG"{-YyQɏBۆ]\Ol(Xi\R"\>ēɩC*'_F4\UsgnU?2Pug/ZK ~UdCIUb(TOJ$E"ם_&[k>'$-iig臶:go#FTsskb}|$=SVnQm1+D 9]Q3Y]ˢ55ͲNtRR"F}S'#~F0UNXK$zz?AnE,0z/n^к,ܽĥ._!044ju΋D\q/\QِveBa +XItgݨj$MX1zK˙<[k:3JC	HzJĩj;J/ɮ  & Iy"b*xP.4)+~5	`$'@@zݻN"2@7˯'Ƨ#/mύqyR>|`pKlQS";r"vD#K&BhN9?%Q9s(gYF`h^d+>rL,.J]m839qz`P2)K`	7o ?pM/kuCrN:D+O;E媅ZI'JBo=E7^yFW&[ThᑁZ@K.V37
"yFJWXبsnv"1S,(:Þ6x&F_U!)R.#.69`yɠyЅKЬl~ƈ27 1IH]&"
`	zwT]hcj;y2'7dzfniULF+pK!F3F%ӊK:l7}>O
DLhynYuk@7qL ԛGӝrn	'bn5&&ЌPbAx@vo5r󻘨uy'y|:=|447P܉n:	SOV2	I5_w3DlD%}sbگhWucIRqsuKHΈVTd]bѥc@Q]ɟz=(RWOF=zDaֲ/j7Xժ)ij(	>skr8:19e5Y<D H	N1W@)d ~= YF}MG}7(ߗ==܉Ğ%`"_9k֑ѬD@I)UKSxƂ={SG&LF`>+KϢD|2@%iΆ$<5rose5='_D#'\$q0~Va5O( v&+l'Y!|pR~ (zj",3|Lp|XAX#;2j+cԼErflӼ`dm|*q&)ଷiw"s%q$={F)[G
	YQ[~ҽTxi=(n=9v
M4oZ@ݽg=s̥GhʌRA˯p_Sm
_7e>'cbc%nI4PeebgwYÓQL(QiݪiZrG?K tnaDPC1j'#oCPVf8!*-ղRQwZv[^O|d65?@-ߞ?yVK7o. rT$3u_YTqiJaI̥):I̖9c&U$lyˠ{!3R@dyd@w3+1cţ%yv?Ϳ~[tQȐ cLCxB && ꓲ| H域组名(需要上APIV ZQxXmSY޿+2qtLS[VY6I-Iw6Ap $
BPD!0?ƾݝO=Nk$힗9x?/XbVĪϰ9͏.e-VrK{ٜ2K;KclUl,6^-~-	]S{斞ώyѩ/㍛֚Pk6)wcĪQJYK9+o8ntK; s-ot)fE4z2nHxzz!ESVW.][A`م{XՏv1gSlws\E'h]1XѨ.U@"ew½{ԓT/I͠&Q׍dD-m8qCLJ5Yᱛ.d4=}()z\DL׆6'=RL6L%!=5IǣjX6U]FAW!q`^ըK%|)=^hvc>w8M4=\ڥ9;|҇cZ8&(Ns-gՖWC	]7Q+aWK.C(hU.DB*f"j,.>T, +.>ŐqlJ\x3+̔UG3Gp3<'[d ,zlM]ht0ưdW0,ǻú֫D[O!sSF	rb4HcNP5Iɸ;9J Eh<ۡYe{%h۳SVW
 x:+4fOj?[? <ݗuUlDf.1,*9uP
{X
A-	9r+OJ%Y1*[,;T2+_0c/Z&>}A\<Aa[ipC}QNjOBNRO72yD,_#JtfO_V5CD15#˦]	v+lkq@1v	,KaR,쯊v1THY4R9o) dn?Ox,&>Z_C<wsԤ `c~
sxXPb? f Yq{k|ÐoSYxJUI"Nql6ݽW@H:ل1U$Ap!ůu3_D]%&8] |ZǀTx8s[gWnѬʳ6;5SK,9æ$SuF=jT5Qm~x?kh(tMO'ϭ6fDzA`@변XDPضJv~Nj&@/RC<I_\D	L.=KOo<cĮG-Y kZ$P:/%Uf` M\9I\[Y+!(K_	8I:t
:6fvJB: 	oq$o>iX{揿@lJm\bUDvª[xpO	odxÞLZ7<sWAL;8Ꙩ!`5V+DJ::w>TZҡ1_d@1`oBi&xxP7 éOekWR戇VcF{CPM|IC4JԒ{ej@zq^>{҇vjVm }wlX8mQ|({9k}{UQFf!1T:^tV^T	MZRi 2]m<_'Q_UU٭j&oH&p̧Sby蒘HC_8PpoFIFk7O`c:Is_	|2s8*D@^.@<zN2uhY#pv<0(CO&>=4bhewm9 IA,$9zR5Ȭ?X1RђRHH&#
"B0,pD{$fJZnR%Tt߽g>U4==lll88H͆lUg{:-
S4!O00@K;g=L*bm5P.,=tskʰw0]S'YܻxR4N뇷Y]?4,gnf'X[7wstDS4-V'I d=#E9nSM9={l
V"Y6mB
~F6Kn$jϓ<__)x{zEu!b+}ļ<̌R\}Cc3KS㍿qY?5g<]l';V=dl#c "do۳v> lΚͷEK:ixa %%!s://zhuanlan.zhihu.com/p/13695443
/某个提供23个NDK库，但是前一个版本#1gxzYuC?PL
E  Ll!xz@uC3i\ $"x;Ls^GBmkӎI9)7~{>ד]/.=|g_ixY輔':&VcFz~RN~~nbqIj~~F~>P1Ǘ$ej>d6Q ̤ĢJ3^lg>[L{~"W7P۞6J?}g֋E!NqC׳i.tYӓ\			\جRURPP:8-19U,Y858X?789%,(Q[_d4$24C@Z6GOO 46DhB@X
 	xX[SZY~Wҗj3)yNUORIDBәTA@x$	mb0phä۷ڤvmP2Ą&f%jnZĘNX݌ /ytۿ{#t'⻃ڽG"3_ݏ]wBЌ|Oo`*=흍aޙB~;wXOwޙ@08.)ryWd_nTz\ݥ	h-X_4.b-1g%ss^DLCOcY'<b.[:pmHfdϬ5:'*^0̏Woǁ^{FjU2|vxd\:ZshL4RjTƚQnˍꈅ?i2ދA9j)kswTYO`O^nIaHuL^j0y}Ͱ"t³f~)P<;I͖X!Gr.뒕:1:.I1w7<sStO/V1`?4֙=ؔH&^y0~Z֫Qo7H&њ|l~FsF^1XhE`DQ,/rB"6FQTE+dRjɈֲS&\yFČVJ}̬-4z}<Ň]`K mBU!"[ڟ2s
@%}C;氉<?!Ֆ,\[wx7@Vl5EV?)r22Y8%@@lA}F~$@L*p[H_Z͘(۔cS&jh-_qR4CCEi:x2*
3C$e"Ejͪd'Άt𙪹[Ӷ7hs5J.Di!AC$k"~Y PZ4pWdY<&B"1̝@}`)f.\5:HΖ	([zG'rKlvORԾ.΀9}rq<At n9W%٥"ElVWC3:I>&#mǬF,SH)ղ0B\oLf#O8f/rFnhq֪|5Zdxf\=4;
ӊZD{Ӵ?qxDBxf¡G/G#fwp`J7O]+m&8{_(?S!ߓyYȸ_E:f֐L!:bFQfm;VՆkD_ 	3  Ja8]$WSfKEˑ^  A <4]r%TE9\]OPv7'fݪE9m0d|3">gۡ-*̈́S8e8&FT<7@_My:I05?7OvN㛙z:Kҿqzxu˅>68Yn@.!=b6~ꋸi8p#U?Ud9ͻ1vq\cgȵv4Z-b*RǃBI
	׹I\}mU$׿M_&Ϻ)j?$,Rg?L<wRCVQdT$t{GS!+VPKrmf`pe q甤-նDu٢Ņ"jJ ~:AXUQ9f3!Zp+30
FUN< ]cܷlJUQ$jf2yWkyYD&2x쬠[cO`tjxj1ҘLG^L5<qmvaڂɡW<&@8x-3(lXMcE"aqg WƙDjgQj8S. CAJ͎W"@y2KmF/QF7Ḵ#V}2CT#-*/LX{F/9Do*.0}o<a0-sF
U]OثjG# bPΨ#ȴm<I,͠NFQl D2AEH,9dyw<-#c}M6N<<㨖ȯ_@N!]2Yg	+13sIP(AދvΙRу\KJcK/S=L!JRFUW*"gFt7~f
I<L~Μn A1xa17D\}v~G<ưHX/xиN@qUBwgq=]cGӤ"KډҰӳ(7ضzm
2'rl%R1]p$2BxRMoQ̓F+11$Ԣ)хJش_1qՍĒJӊTӕa,EhhmAu՝z!؜̹'{=N*N	N7yHO鈇QH!(_- ۖ?- [dP@Cßo0wE2i1BGegJ*/L^q,`h'c7z).UgS{intmh#ӳ}f*ZXlHoA?Е uCZ] crst͉@ր*F1*NM.H^l%G7d~՟hӼeY\˶'ͻʧ<u!F;qisP@x-ҷ}f/lc̀ Fr"1n\"h>
OXrV_J
uҡ֢ Llfwd-L7x*r#4#)ۅCi3; +!Hxh/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup Ddk
 * @{
 *
 * @brief Provides Base DDK APIs, including creating the shared memory, mapping the shared memory,\n
 * unmapping the shared memory, and destroying the shared memory.
 *
 * @since 12
 */

/**
 * @file ddk_api.h
 *
 * @brief Declares the BASE DDK APIs used by the USB host to access USB devices.
 *
 * @library libddk_base.z.so
 * @kit DriverDevelopmentKit
 * @syscap SystemCapability.Driver.DDK.Extension
 * @since 12
 */

#ifndef DDK_API_H
#define DDK_API_H

#include <stdint.h>
#include "ddk_types.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/**
 * @brief Creates an **Ashmem** object. To prevent resource leakage, call {@link OH_DDK_DestroyAshmem} to destroy the
 * **Ashmem** object when it is no longer needed.
 *
 * @param name Pointer to the name of the **Ashmem** object.
 * @param size Buffer size of the **Ashmem** object.
 * @param ashmem Pointer to the **Ashmem** object.
 * @return {@link DDK_SUCCESS}: The API call is successful.
 *     {@link DDK_INVALID_PARAMETER}: The input **name** is a null pointer, the value of **size** is 0, or the input
 *     **ashmem** is a null pointer.
 *     {@link DDK_FAILURE}: The attempt to create an **Ashmem** object or the DDK_Ashmem structure fails.
 * @since 12
 */
DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem);

/**
 * @brief Maps the created **Ashmem** object to the user space. Call {@link OH_DDK_UnmapAshmem} to unmap the **Ashmem**
 * object when it is no longer needed.
 *
 * @param ashmem Pointer to the **Ashmem** object.
 * @param ashmemMapType Mapping type for the **Ashmem** object.
 * @return {@link DDK_SUCCESS}: The API call is successful.
 *     {@link DDK_NULL_PTR}: The input **ashmem** is a null pointer.
 *     {@link DDK_FAILURE}: The file descriptor of the **Ashmem** object is invalid.
 *     {@link DDK_INVALID_OPERATION}: The attempt to call MapAshmem fails.
 * @since 12
 */
DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType);

/**
 * @brief Unmaps an **Ashmem** object.
 *
 * @param ashmem Pointer to the **Ashmem** object.
 * @return {@link DDK_SUCCESS}: The API call is successful.
 *     {@link DDK_NULL_PTR}: The input **ashmem** is a null pointer.
 *     {@link DDK_FAILURE}: The file descriptor of the **Ashmem** object is invalid.
 * @since 12
 */
DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem);

/**
 * @brief Destroys an **Ashmem** object.
 *
 * @param ashmem Pointer to the **Ashmem** object.
 * @return {@link DDK_SUCCESS}: The API call is successful.
 *     {@link DDK_NULL_PTR}: The input **ashmem** is a null pointer.
 *     {@link DDK_FAILURE}: The file descriptor of the **Ashmem** object is invalid.
 * @since 12
 */
DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem);
#ifdef __cplusplus
}
/** @} */
#endif /* __cplusplus */
#endif // DDK_APIS_H9XP%xSAk`in+yLO;	'U"Huڛ-mW8W]6i?Ƽo(_tiT֓y}'ЙɞShlv+֒tAH.@Y"n{B@~5x$lhldH9&nKh%aSkfqnm}ʾCч\%'+buƬ/@jY5 !CO8#c3iP34$a<9'3qAqW= T?epI!	eЕNŽ.ȉ{l*̿tGZo"f]+,5kl{+>Pb!U1 'Ś]$/$e^oq.EmtNA]_vfnA̕Xu%͐{~?x2P*|s3MpwKvΥ*ҭwk_a$ڱ0~߻O4fݺ)wi/G t CExS.AgYHWX &!!v6EwU°[ے{|P=шTusTt_w>T	K0tɈ"smv"aCթB (#IYM-y0UV}ک1ة8g@3A0ls麘8"`1ДSV_[uQF`B¨/mc!\E
@hHƁq@+|fxzCɣ fcΨJdaE*C+vB9آ>
~j|t.k{uD7!y,ԥ]N !EcUc:g!#7>,'+Uߩ_buuL:{5q*M=2p%Uk?z{]l4}NN_Aj8^Dh?x[  W**!**D a**OH_DDK_UnmapAshmem**B {
8 {
 {
.(o^lSx 9Ar8F
 |Jx"BtC̪'cvܬrQ6((X&;>858F?N!3moVk"DĒ̲TĜTԢ&Qˬ&p.qW&P8U| w,x{!Mb)Vj̼lPggI2z\
Z
0/%>155V!/17U!X/GG8
3P/RH,MͅI2'4ȵV!(5$U$#Z8#(5E=R!-13	US\RT\RZ
6bDdN;l9Ht7
i@ץ!i+KL% \C<jJƔ%d)&`jrʡn6Hܡ6+ dx&1YrQf̲"ԲԜԼ̒q  YV:xl`#ifndef DDK_API_H;#define DDK_API_HM,z9#ifdef __cplusplus
})创建共享内存。为了防止资源泄漏，通过调用{@link OH_DDK_DestroyAshmem}接口来销毁不再需要的共享内存。
 * 
 * @param name 指向要创建的共享内存的指针。
 * @param size 共享内存对应的缓冲区大小。
 * 5@param ashmem 指向创建的共享内存的指针。
 调用接口成功。@%L 入参name为空指针，size的大小为0或者入参ashmem是空指针。+A 创建共享内存失败或者创建结构体DDK_Ashmem失败。%iV映射创建的共享内存到用户空间。通过调用{@link OH_DDK_UnmapAshmem}接口取消映射不需要的共享内存O[要映射的共享内存指针。
 * @param ashmemMapType 共享内存的保护权限值。
N 调用接口成功。
 *     {@link DDK_NULL_PTR} 入参ashmem为空指针。+( 共享内存的文件描述符无效。@&OPERATION} 调用接口MapAshmem失败&
K取消映射共享内存。O'要取消映射的共享内存指针。
N 调用接口成功。
 *     {@link DDK_NULL_PTR} 入参ashmem为空指针。+( 共享内存的文件描述符无效。U销毁共享内存。O!要销毁的共享内存指针。
N 调用接口成功。
 *     {@link DDK_NULL_PTR} 入参ashmem为空指针。+( 共享内存的文件描述符无效。H
/** @}|<)5x+ _8
y~hox v

9Tx"~^|v0nŲi+[Ɯau8x"Tt Ɩ-{Wt[[-\|n\yԕ-vZx;n~d_:77rKAhRR aĢ\Tk;
d	B#v\}QU[Y vGv-/,T)M,M{@NvɝˀB9'
x]V
RxG@֜[e %;N(ʩZo p3O]\!Zr@mܪ.o>ͱ{/޽|=O./6)9O,<en .ziH!&T u둍w/9k[q0Bx_
aԹ#{~q]Xaɵb0c.@84Nrx-K`^[Aq2%dTG]Z=0qxa3/*
 * Copyright (c) 2023-2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup UsbDdk
 * @{
 *
 * @brief Provides USB DDK types and declares the macros, enumerated variables, and\n
 * data structures required by the USB DDK APIs.
 *
 * @syscap SystemCapability.Driver.USB.Extension
 * @since 10
 * @version 1.0
 */

/**
 * @file usb_ddk_types.h
 *
 * @brief Provides the enumerated variables, structures, and macros used in USB DDK APIs.
 *
 * @kit DriverDevelopmentKit
 * @library libusb_ndk.z.so
 * @syscap SystemCapability.Driver.USB.Extension
 * @since 10
 * @version 1.0
 */

#ifndef USB_DDK_TYPES_H
#define USB_DDK_TYPES_H

#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/**
 * @brief Setup data for control transfer. It corresponds to <b>Setup Data</b> in the USB protocol.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbControlRequestSetup {
    /**
     * Request type.
     */
    uint8_t bmRequestType;
    /**
     * Specific request.
     */
    uint8_t bRequest;
    /**
     * Value corresponding to **wValue** in the USB protocol. Its meaning varies according to the request.
     */
    uint16_t wValue;
    /**
     * Index corresponding to **wIndex** in the USB protocol. It is usually used to pass the index or offset. Its
     * meaning varies according to the request.
     */
    uint16_t wIndex;
    /**
     * Data length corresponding to **wLength** in the USB protocol. If data is transferred, this field indicates the
     * number of transferred bytes.
     */
    uint16_t wLength;
} __attribute__((aligned(8))) UsbControlRequestSetup;

/**
 * @brief Defines standard device descriptors, which correspond to **Standard Device Descriptor** in the USB protocol.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDeviceDescriptor {
    /**
     * Size of the descriptor, in bytes.
     */
    uint8_t bLength;
    /**
     * Descriptor type.
     */
    uint8_t bDescriptorType;
    /**
     * Version of the USB protocol.
     */
    uint16_t bcdUSB;
    /**
     * Device class code allocated by the USB-IF.
     */
    uint8_t bDeviceClass;
    /**
     * Device subclass code allocated by the USB-IF. The value is limited by that of **bDeviceClass**.
     */
    uint8_t bDeviceSubClass;
    /**
     * Device protocol code allocated by the USB-IF. The value is limited by that of **bDeviceClass** and
     * **bDeviceSubClass**.
     */
    uint8_t bDeviceProtocol;
    /**
     * Maximum packet size of endpoint 0. Only values 8, 16, 32, and 64 are valid.
     */
    uint8_t bMaxPacketSize0;
    /**
     * Vendor ID allocated by USB-IF.
     */
    uint16_t idVendor;
    /**
     * Product ID allocated by the vendor.
     */
    uint16_t idProduct;
    /**
     * Device version number.
     */
    uint16_t bcdDevice;
    /**
     * Index of the string descriptor that describes the vendor.
     */
    uint8_t iManufacturer;
    /**
     * Index of the string descriptor that describes the product.
     */
    uint8_t iProduct;
    /**
     * Index of the string descriptor that describes the device SN.
     */
    uint8_t iSerialNumber;
    /**
     * Configuration quantity.
     */
    uint8_t bNumConfigurations;
} __attribute__((aligned(8))) UsbDeviceDescriptor;

/**
 * @brief Defines standard configuration descriptors, which correspond to **Standard Configuration Descriptor** in the
 * USB protocol.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbConfigDescriptor {
    /**
     * Size of the descriptor, in bytes.
     */
    uint8_t bLength;
    /**
     * Descriptor type.
     */
    uint8_t bDescriptorType;
    /**
     * Total length of the configuration descriptor, including the configuration, interface, endpoint, and class- or
     * vendor-specific descriptors.
     */
    uint16_t wTotalLength;
    /**
     * Number of interfaces supported by the configuration.
     */
    uint8_t bNumInterfaces;
    /**
     * Configuration index, which is used to select the configuration.
     */
    uint8_t bConfigurationValue;
    /**
     * Index of the string descriptor that describes the configuration.
     */
    uint8_t iConfiguration;
    /**
     * Configuration attributes, including the power mode and remote wakeup.
     */
    uint8_t bmAttributes;
    /**
     * Maximum power consumption of the bus-powered USB device, in 2 mA.
     */
    uint8_t bMaxPower;
} __attribute__((packed)) UsbConfigDescriptor;

/**
 * @brief Defines standard interface descriptors, which correspond to **Standard Interface Descriptor** in the USB
 * protocol.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbInterfaceDescriptor {
    /**
     * Size of the descriptor, in bytes.
     */
    uint8_t bLength;
    /**
     * Descriptor type.
     */
    uint8_t bDescriptorType;
    /**
     * Interface ID.
     */
    uint8_t bInterfaceNumber;
    /**
     * Value used to select the alternate setting of the interface.
     */
    uint8_t bAlternateSetting;
    /**
     * Number of endpoints (excluding endpoint 0) used by the interface.
     */
    uint8_t bNumEndpoints;
    /**
     * Interface class code allocated by the USB-IF.
     */
    uint8_t bInterfaceClass;
    /**
     * Interface subclass code allocated by the USB-IF. The value is limited by that of **bInterfaceClass**.
     */
    uint8_t bInterfaceSubClass;
    /**
     * Interface protocol code allocated by the USB-IF. The value is limited by that of **bInterfaceClass** and
     * **bInterfaceSubClass**.
     */
    uint8_t bInterfaceProtocol;
    /**
     * Index of the string descriptor that describes the interface.
     */
    uint8_t iInterface;
} __attribute__((packed)) UsbInterfaceDescriptor;

/**
 * @brief Defines standard endpoint descriptors, which correspond to **Standard Endpoint Descriptor** in the USB
 * protocol.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbEndpointDescriptor {
    /**
     * Size of the descriptor, in bytes.
     */
    uint8_t bLength;
    /**
     * Descriptor type.
     */
    uint8_t bDescriptorType;
    /**
     * Endpoint address, including the endpoint number and endpoint direction.
     */
    uint8_t bEndpointAddress;
    /**
     * Endpoint attributes, including the transfer type, synchronization type, and usage type.
     */
    uint8_t bmAttributes;
    /**
     * Maximum packet size supported by an endpoint.
     */
    uint16_t wMaxPacketSize;
    /**
     * Interval for polling endpoints for data transfer.
     */
    uint8_t bInterval;
    /**
     * Refresh rate for audio devices.
     */
    uint8_t bRefresh;
    /**
     * Endpoint synchronization address for audio devices.
     */
    uint8_t bSynchAddress;
} __attribute__((packed)) UsbEndpointDescriptor;

/**
 * @brief Defines endpoint descriptors.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDdkEndpointDescriptor {
    /**
     * Standard endpoint descriptor.
     */
    struct UsbEndpointDescriptor endpointDescriptor;
    /**
     * Unresolved descriptor, including class- or vendor-specific descriptors.
     */
    const uint8_t *extra;
    /**
     * Length of the unresolved descriptor.
     */
    uint32_t extraLength;
} UsbDdkEndpointDescriptor;

/**
 * @brief Defines USB interface descriptors.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDdkInterfaceDescriptor {
    /**
     * Standard USB interface descriptor.
     */
    struct UsbInterfaceDescriptor interfaceDescriptor;
    /**
     * Endpoint descriptor contained in the interface.
     */
    struct UsbDdkEndpointDescriptor *endPoint;
    /**
     * Unresolved descriptor, including class- or vendor-specific descriptors.
     */
    const uint8_t *extra;
    /**
     * Length of the unresolved descriptor.
     */
    uint32_t extraLength;
} UsbDdkInterfaceDescriptor;

/**
 * @brief Defines a USB DDK API, which is a collection of alternate settings for a particular USB interface.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDdkInterface {
    /**
     * Number of alternate settings of the USB interface.
     */
    uint8_t numAltsetting;
    /**
     * Alternate setting of the USB interface.
     */
    struct UsbDdkInterfaceDescriptor *altsetting;
} UsbDdkInterface;

/**
 * @brief Defines configuration descriptors.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDdkConfigDescriptor {
    /**
     * Standard configuration descriptor.
     */
    struct UsbConfigDescriptor configDescriptor;
    /**
     * Interfaces contained in the configuration.
     */
    struct UsbDdkInterface *interface;
    /**
     * Unresolved descriptor, including class- or vendor-specific descriptors.
     */
    const uint8_t *extra;
    /**
     * Length of the unresolved descriptor.
     */
    uint32_t extraLength;
} UsbDdkConfigDescriptor;

/**
 * @brief Defines a USB request pipe.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbRequestPipe {
    /**
     * Interface operation handle.
     */
    uint64_t interfaceHandle;
    /**
     * Timeout duration, in milliseconds.
     */
    uint32_t timeout;
    /**
     * Endpoint address.
     */
    uint8_t endpoint;
} __attribute__((aligned(8))) UsbRequestPipe;

/**
 * @brief Device memory map created by calling {@link OH_Usb_CreateDeviceMemMap}. A buffer using the device memory map
 * can improve data transmission performance.
 *
 * @since 10
 * @version 1.0
 */
typedef struct UsbDeviceMemMap {
    /**
     * Buffer address.
     */
    uint8_t * const address;
    /**
     * Buffer size.
     */
    const size_t size;
    /**
     * Offset of the used buffer. The default value is **0**, indicating that there is no offset and the offset starts
     * from the buffer address.
     */
    uint32_t offset;
    /**
     * Length of the used buffer. By default, the value is equal to the buffer size, indicating that the entire buffer
     * is used.
     */
    uint32_t bufferLength;
    /**
     * Length of the transferred data.
     */
    uint32_t transferedLength;
} UsbDeviceMemMap;

/**
 * @brief USB DDK error code definitions.
 *
 * @since 10
 * @version 1.0
 */
typedef enum {
    /**
     * Operation succeeded.
     */
    USB_DDK_SUCCESS = 0,
    /**
     * The operation failed.
     * @deprecated since 16
     */
    USB_DDK_FAILED = -1,
    /**
     * No permission.
     * @since 14
     */
    USB_DDK_NO_PERM = 201,
    /**
     * Invalid parameter. The value is **-2** before API version 16.
     */
    USB_DDK_INVALID_PARAMETER = 401,
    /**
     * Memory errors, such as insufficient memory, memory data copy failure, or memory allocation failure.
     * The value is **-3** before API version 16.
     */
    USB_DDK_MEMORY_ERROR = 27400001,
    /**
     * Null pointer.
     * @deprecated since 16
     */
    USB_DDK_NULL_PTR = -5,
    /**
     * Device busy.
     * @deprecated since 16
     */
    USB_DDK_DEVICE_BUSY = -6,
    /**
     * Invalid operation. The value is **-4** before API version 16.
     */
    USB_DDK_INVALID_OPERATION = 27400002,
    /**
     * Device I/O operation failure.
     * @since 14
     */
    USB_DDK_IO_FAILED = 27400003,
    /**
     * Transmission timeout. The value is **-7** before API version 16.
     */
    USB_DDK_TIMEOUT = 27400004,
} UsbDdkErrCode;

/**
 * @brief Defines the device ID list, which is used to store the device IDs and device quantity obtained using
 * {@link OH_Usb_GetDevices}.
 *
 * @since 18
 */
typedef struct Usb_DeviceArray {
    /**
     * Pointer to the start address of the device ID array that you have applied for. To avoid excessive memory
     * consumption, the recommended maximum size of the allocated array is generally 128.
     */
    uint64_t* deviceIds;
    /**
     * Defines the device quantity. Device IDs are obtained by traversing **deviceIds** based on the value of this
     * parameter. If the value is **0**, there is no USB device.
     */
    uint32_t num;
} Usb_DeviceArray;

/**
 * @brief The list of non-root hubs, which is used to store the non-root hub IDs and quantity obtained using
 * {@link OH_Usb_GetNonRootHubs}.
 *
 * @since 26.0.0
 */
typedef struct Usb_NonRootHubArray {

    /**
     * Array of non-root hub device IDs. The non-root USB hub device ID is constructed by left-shifting the bus number
     * by 32 bits and adding the device address.
     * @since 26.0.0
     */
    uint64_t* nonRootHubIds;

    /**
     * Number of non-root hubs. If the value is 0, no non-root hubs are present.
     * @since 26.0.0
     */
    uint32_t num;
} Usb_NonRootHubArray;
#ifdef __cplusplus
}
/** @} */
#endif /* __cplusplus */
#endif // USB_DDK_TYPES_H*k6oxjf4\| Base(Vs, and\n
 * data structs used by the Base DDK APIs.
 *
 * @since 12
 */

/**
 * @file w"BASE(s, and!.BASE DDK APIs.
 *
 * @library libddk_base.z.so" <DDK.Extension
 * @since 12
 */

#ifndef DDK_TYPES_H
#define o%>DDK_CreateAshmemO&'3 can
 * provide better performance.
 *
 * @since 12bDDK_Ashmem {
    /**
     * File descriptor of the **Ashmem** object.
     */
    int32_t ashmemFd,'' addre='  32`'zbuffer'	specified&%(%G(,at of **size**(#
 is
     *(vdredLength;
} DDK_Ashmem;

/**
 * @brief Enumerates error codes used in the BASE DDK.
 *
 * @since 12)2ss.
     */
    ) /Operation failed.
     */
    DDK_FAILURE = 286+,7parameter.
     */
    DDK_INVALID_PARAMETER = 28600002,#
     */
    ,86-++/
    DDK_NULL_PTR = 28600004
} DDK_RetCode3DDDK_TYPES_H7Hlhx{v?m /	axmff Of q)*
eRequest comman(0+ q)*5	K q)*
	#"Pi q)*
P$
 q)*
+ q)*>q q)*j q)*W!  q)*" q)*
$P <b>OH_Usb_CreateDeviceMemMap</b>P&W q)*& q)Permission deniedK-'*v
 exception^,14,*U-3**OH_Usb_GetDevices**.
 * .Non-root hub listF1ׂI xUKoUV*I8q|v8m*D!qKm6
0i3f%)	6B<-+PU[(, 	!vâP	pvDl{ιwν&r>r>oQ$F
=jZ*0Nwy!E(KT6'SUC:1(QTM',RYt-4)H*T=i	(f742Tn%9W&C&)LهQ֕Y5M$7]7],/a;)4AyR5S+k
JTZc^L:2,"s(.RRPǵ,aV
 uòUj	ǅz!ޛ
Tb0h2K_x@zozcdo]:;L]6*;(`/a#h*+'-]4Mmtz4fzಀֿz6oNb.YnȮ$ugW֮kIu8n1;x2>xEդ,ҷ#w:WǺݒA-_ Io?f38Mw	|yc/E2Pj&k/":jڶow1fzЈ?㫡Q{<2ãG׆BH
őZ_),ӑ0?G01:_j-#3c{Ah
!<8fIk$cQۂWvm:B8О;2<XJ#P:Wxmm8#|vd{<yJ,vVwlqGanҬR$6kK	ǍN(oaZ=,ָMD|EoSDI2O<1@-f^g2l4+j1ɶ<ΦoSU/meoR=u UmQeEV#Ǯ|ߒK^aКؒSTFj|)wl3E5C"o|
2|4#sDZ+°eVlU\(JJB4ӞH{U0DUյhUbE"5QG:niFZ{%Ƭ]]
bOf"E;1D*6uuΚzq5CVBl	QLkܿκ+P^7iaB.г\0d?LJ5
%b 4bv.N`UMȤxϲrq֣bŁ}I{gŒe垝'&hzx$ **OH_DDK_CreateAshmem**CO4xXOWBPؘMBHH<0d4imB&Q<tRld@c|1	$`CH5՞V&w~6tcB޿O6B8 ~{u{+W.|rCwYP"=E뻛!J,!3ϳL`]Sضbn};,/\a/N7Pɽ
B-9|p#MR-KX%=֠lmUU"hYLDcp=OD{whP$;ڿ3C!;͎N={g,MEĘQE[sO79 *U#=!zg.01ȢN~[q+v9nf2cџ^ߛE{Ua(
0>܄ٛaS\U>%%ZQmv+ۖ[y灀}\.X:^tC 8ֶ}l\(h815nܬki!dLT jZym?@pCxLWivC#ۖlі3ܓ ױ,/"aHd܏G/SU؁ ؅^};Cw\OIdBOaԞJEЪ$HH νF"Im@T"4jdY(qI7ϝyUڃnlc6]9X jN̮n.9,mݿŊvon54KTa* 	ͺ&!i" }C߂^(2]p ΰ  bW7!@#?)f`cga(vl*߽\ʣwcUSz<c)% Qv>>MwcSTL.\+!\)ɮ<_"S)SHQZ3[On5Ze,it{Pu&c)K*VSsD4R2
Wɤ0QYKmV(!X(IDQ@!caagF}?4?	3CIBƱAFՊPNg5&7/Y(_(&%gSZ;on>42Gj!&vwI-c=ݽ{J]J;;|bXFKbg;1cQ8+7RQ|,Hc|y)7O9h,_3(&m.09UvyvFE/}Ti}Čj3B,̢\H{9v1n>OH&lce*at:tp*Rj3W\xIj3SQ:WWwb v8$BݴqJ0	KubPueJȤBmF2mEҶ	3EEڌ-L]CA~LƄv$w
(3	2 /l	7CekНbm!l4LHUlvZ ;sw[lƑpF*ڟREE|a1;vZS@[ۃW_W%vm(IKv0t*Hܓ\kQW_leTߎ_eR#`#@Z틾bZ˴pg0JAU40;\|0s]O݈kr(XVEratg쵣&v+vzr~xuQ锽LTԨ7U%ay"o ?Z~tDFqeX.کL!J @#ř)۽?8=cMvXIY:{fVǆ8~_!>>(y 9LôǨçTTm7~`fX|pX$Y7Ȼ7xꕖWϚ[c%ö9eKw(`V<?7J6{=HAp)dQ*
L,kojc8N(B{[pNXRC(`G݉]˵-ە~Z/:44R?; 	PSJGsPy ?<
:iJL4֗B{
\]jx'(xiie%Ob}*y-uAqEqzb<\#ÍM55}]+³VJ32SKf[xUOP$A}@ɀf0P$dF@%LڵPڦ`$$rbDhT.>kO&vÈϞi;~O܇cCi{WB_.׹J#I~X&JP7Y<Cbi'3^yy>O+ ,,i.iXm/'¡Z6ܧ%Ot>[~*|fWD9$:t"	#g>GX^^Г\>$4lR#Vya)S6<M;#KӑQ*@P@}W!$/CT}cY6¬S Ԟ-I@V<^7F:Ξǫ`SmǙPUs*\^Wؙk'*ia˸&"/{=r
%ixEDjR@	eYAeZE(A8ǘm&	T	-gDt P4cZbT⦦4$~ `4(cw'UFQ+!BD5Vk`hbI[xTfX''=qeOAym@yI>Dd5}7 ڷYT@*RP:8,)As]nK9cv~EE?>t4'slhhK
;9FC2%M
MjsFdQu{P5?ΪY
l7o_(<_[x;0a8FLu>lxx;,a(f#fA] !hx(sNfC0(ny,̛o3Mf7+ x(s@fl̔b'`Wo 71/E!%59')HUML./QH+R`ĒD⒢R̢Jz\
Z@TXT SR6s22޶^pj[ly{_^/\<9ńc7ܹl=0w&b18wMNj e`6ɽ^q7C6d  qOx0 ff4+.The list of non-root hubs1V?xw fel	4_		4[	4F	4/	5	5_	5^! 	5"	4$	:&	*)d	O&Urx[1+bd<x[&d46oUbL.PݼN݀iE@ :x[ b-^<.К|T+gZ /ex[,hF_L3NV`ߜlĨ0䭪z3rmg{&kO ;x[>d4UƔra3'Փ 3Fx[/x#?Uc6h` S@8x[1'b>m6Բ'# Klx19bG'ZpAx; RP%V(%(&6-2a&-3'G-4''_':'1(/-7(cdx[4;dF\ZZ\
Z
IEi
99
I
)eɩz@)lqf^r䅬.`YǢJj.  գKf敘ėx[&)mTLS(HU(K)V`3<"Xlc\kZ$dYO~"2 L 5xmR]kAI"}_.YKMR&(
e?flٵT(̛}gA3|&MqX9{zڗÔ<IAfD~H-bA<pN!
(*`6Р<VJQԴbapc]+xF=P2趷Sy-嵴FI>lSyWάγfmh:P2ᛑ)SU@"$ĎycunM)I	?M{DVV)OJm4ƅu.BZPihdE`'*5,ϲ0LD#XA޹'R+s'uz B>տMeo_((ka쵬3*{+Zp3~䝙.fN_+	2!."J?mw*W5趪 JZK{dY}l+VlN5&5_"wWna5;TZ$ưey緋W'n:x*䉬5T'۩:Zfg)e)hs) AhSw|kXJ_Kk1Usd~Yj΂F&@$_*jUWH-*/B?d%D1°NuN Y4Yx@ PNa0a/ГJ >%A%:%B&Qj&O&B	'=M'6'nx	r5T{ 8x*CjQQ~d3U'\
ܠc~V]cT1Ys D`:x{CgLhmNTka `mx{:d9 *Hx{AT]%,39US_! ($3?O!-13'5eE mBxmKA1=Z!<*RYIjLB6)
uef6-%tnzmBϞzS:3115ey>WO* P.9WMv*ZAwƯ2K[.E:s()
ЗrРiŢwÆ)zĿgr#y HgÍ>In8}`6T8Ebd-iA"e4@$atH}7X=[bxƱ`l46,RP)\"P/2|\6/6*DLޡZ2!"&`J^+o1k NLpaa*iPbb  f_31j P{瑨ZCJU\xi#"Ӕ^D''%1OL\]FcOF1
b@( uٝ˶ 66%7;5Ny-lϦT~5]@0vP4kղ4[նZ(cNɄLCj4ٮ6p<AE̪wj5ٞ){3bZ_1DFx7z6ԢT`*03ǥ Z$j|`.5sT k&k9\xmkAIzJ1V<-!m݊idC1	!²3Lv̦E*ޅ'/[7&{e{{4zf#],0?$ԇZ=xѵvC+?g4!!SqgLeL% (ϙ͜AiGvJ%'>Q &TU<c"S/'$0v<cY~%m
q	q\[q]"kwojzP(L=
Y'KY.gUñ옎#{:)`=4leJ52E;2)d;}	B)Lx>aTxMbDEe,V	,;'Iy8p9m~ˤ1_:`^ <lGȟξ>`⠬e?/-'*-K9G^,XYs1dmԒT1$t&
#1<* %?V~`w{Ed5n6[Þ	GܽՈfj3YwnΈt9hvڲUnVz&h,l5eV@,xmkAIz%FJeniK͆$ 6afS"BqnxsO^w7fey}O|fzvD'TˎճZ	hD;e=Cq]=cN|p!		ȫ/BРi2n |C#$:7NX|z
fu))uc!֭	8##er.\FeݪTavH1=FdZ	'4H]<ħJ%2agt'\\>*e	TҦx.T5eQqHӥ2Fɶa'(JͯéD|,ۆR&^ zXW~-}-}`&N}k톗0Pc%i?gc"1i;gQc#D'UYc#|z#׃=\OmXןka&oDg)a0gH4vh01շ(cAɌn!;V7-+P7QxXQAiw2mxY];s?ƚ6sxDvfKQfYjKjYjN~Anj^wff[H x[$_h
ɛ9'尞 T x/@x
n[#3 0o<95dg, BOx/4Gx.f̲"ԲԜԼ̒[O Ux2;dnUFD7_Tb LZx2;dCݪbK]A>L F	!x2;dnUFD7_Te0'Bϫ0 <*x2;d&4 :sfx0ct*a#d؛lE{j$< }m~$?Û^T^	\eBo|c4Ő+_Q҅g"!=WnUWR~+gnp쑸ٕpB
 S}$ZpP#JJQ"twcBdL')Ӌ76Y"# ffc	K=n$sxeMN06#B
**
Un<"V'Lv8g&vcޛ7?
>FU;3P(
Y-==B}Q,;_qZ-2wn!f$L<zG Bv=#Eve\rp8oz%]7qr0lko*qg
ʃ;4ԥxc{)艽X&xN	i#MI8= L0?;:އ
x{>A=8)3/sDFn;(5'58uEea$nPjq~iQ2H$ZZ<y:/T9?/-3}f]>[Qj*BH$䜓WZ6K
dq)x0P<.ZRYXZTM$D^
%E9A)A JɆe"`H²%%@K^,JM,IMojobPF$T__,ĥ \ ,axx{swC"iE%y%E)ɩ)JV
JFJ:0
z%d)q) A-W, Z"ln<x{̳}</b+|jbx˵+ j7x"ͥ `2K3JSJSS,t&_d*O:Lt/~݇tJ'=ْʯ`T+QU!T0&^|3/T2dV+ČxͷëWE?~pM#`>|Sz7X# bOfqcNfbqjdAF	%܊RSS+SKy+ %^x"Ch%ɒ쪓qȱ%xVN>ȪCD+ uxc?8A;޹(5$u2&;X bsءyZ\R_Xĥ \ 7j<xc6rL x}BXFvҢ䍁̓eSK\R2S+ g~8xmGfJsQjbIKjY䅌< !ײԼTA.%E0E@`K¿ \IldN UxxQf@MA)! 9`B m`[SKr'1%{僔"sA2*3sSRRAjjC2KS=SFSP@(=($HKjb$l;x[>m{hqRg^䉌* vPjNjbqċ< {jKjYfdof=^s~^Zfdf]>[Qj*BH$䜓WZ2Khdq)x0P<.ZRYXZTM$D^
%E9A)A IɆe"`Hb`&ꛚX M$Z4YJKjb}x[}L\Ayy>y%/O>
 	xN/*
 * Copyright (c) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup HidDdk
 * @{
 *
 * @brief Provides HID DDK interfaces, including creating a device, sending an event, and destroying a device.
 *
 * @syscap SystemCapability.Driver.HID.Extension
 * @since 11
 * @version 1.0
 */

/**
 * @file hid_ddk_api.h
 *
 * @brief Declares the HID DDK functions for accessing an input device from the host.
 *
 * @kit DriverDevelopmentKit
 * @library libhid.z.so
 * @syscap SystemCapability.Driver.HID.Extension
 * File to include: <hid/hid_ddk_api.h>
 * @since 11
 * @version 1.0
 */

#ifndef HID_DDK_API_H
#define HID_DDK_API_H

#include <stdint.h>
#include "hid_ddk_types.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/**
 * @brief Creates a device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param hidDevice Pointer to the basic information about the device to create, including the device name, vendor ID,
 *     and product ID.
 * @param hidEventProperties Pointer to the event properties related to the device to create, including the event type,
 *     key event properties, absolute coordinate event properties, and relative coordinate event properties.
 * @return deviceID (a non-negative number) if the API call is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_OPERATION}: The hid_ddk service connection fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. The input **hidDevice** is a
 *     null pointer.
 *     2. The input **hidEventProperties** is a null pointer. 3. The length of **properties** exceeds 7 characters.
 *     4. The length of **hidEventTypes** exceeds 5 characters.
 *     5. The length of **hidKeys** exceeds 100 characters. 6. The length of **hidAbs** exceeds 26 characters. 7. The
 *     length of **hidRelBits** exceeds 13 characters. 8. The length of **hidMiscellaneous** exceeds 6 characters.
 *     {@link HID_DDK_FAILURE}: The number of devices reaches the maximum value 200.
 * @since 11
 * @version 1.0
 */
int32_t OH_Hid_CreateDevice(Hid_Device *hidDevice, Hid_EventProperties *hidEventProperties);

/**
 * @brief Sends an event list to a device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param deviceId Device ID.
 * @param items List of the events to send. The event information includes the event type (**Hid_EventType**), code
 *     (**Hid_SynEvent**, **Hid_KeyCode**, **Hid_AbsAxes**, **Hid_RelAxes**, or **Hid_MscEvent**),
 *     and value (depending on the actual device input).
 * @param length Length of the event list (number of events to be sent at a time).
 * @return {@link HID_DDK_SUCCESS}: The API call is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_OPERATION}: The hid_ddk service connection fails or the caller is not the device creator.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. The device ID is less than 0.
 *     2. The length of the input parameter **length** exceeds 7 characters. 3. The input parameter **items** is a null
 *     pointer.
 *     {@link HID_DDK_NULL_PTR}: The input device is a null pointer.
 * @since 11
 * @version 1.0
 */
int32_t OH_Hid_EmitEvent(int32_t deviceId, const Hid_EmitItem items[], uint16_t length);

/**
 * @brief Destroys a device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param deviceId Device ID.
 * @return {@link HID_DDK_SUCCESS}: The API call is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_OPERATION}: The hid_ddk service connection fails or the caller is not the device creator.
 *     {@link HID_DDK_NULL_PTR}: The corresponding device does not exist.
 * @since 11
 * @version 1.0
 */
int32_t OH_Hid_DestroyDevice(int32_t deviceId);

/**
 * @brief Initializes an HID DDK.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INIT_ERROR}: The DDK initialization fails.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 * @since 18
 */
int32_t OH_Hid_Init(void);

/**
 * @brief Releases an HID DDK.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 * @since 18
 */
int32_t OH_Hid_Release(void);

/**
 * @brief Opens the device specified by **deviceId** and **interfaceIndex**.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param deviceId Device ID.
 * @param interfaceIndex Interface index for the API of the HID device.
 * @param dev Device operation handle.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: Memory allocation for the device fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The **dev** parameter or ***dev** is null.
 *     {@link HID_DDK_DEVICE_NOT_FOUND}: No device is found based on **deviceId** and **interfaceIndex**.
 * @since 18
 */
int32_t OH_Hid_Open(uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle **dev);

/**
 * @brief Closes an HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The **dev** parameter or ***dev** is null.
 * @since 18
 */
int32_t OH_Hid_Close(Hid_DeviceHandle **dev);

/**
 * @brief Writes a report to an HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Data to be written.
 * @param length Length of the data to be written. The maximum value is {@link HID_MAX_REPORT_BUFFER_SIZE}. Otherwise,
 *     the parameter verification fails.
 * @param bytesWritten Number of written bytes.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **length** is **0**; 4. The value of **length**
 *     exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}. 5. **bytesWritten** is null.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 * @since 18
*/
int32_t OH_Hid_Write(Hid_DeviceHandle *dev, uint8_t *data, uint32_t length, uint32_t *bytesWritten);

/**
 * @brief Reads a report from the HID device within the specified timeout interval.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @param timeout Timeout interval, in ms. The value **-1** indicates block waiting.
 * @param bytesRead Number of bytes to read.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**. 4. The value of **bufSize**
 *     exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}. 5. **bytesRead** is null.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_TIMEOUT}: The read operation times out.
 * @since 18
*/
int32_t OH_Hid_ReadTimeout(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, int timeout, uint32_t *bytesRead);

/**
 * @brief Reads a report from the HID device. The blocking mode (that is, blocking remains active until
 * data can be read) is used by default. You can call {@link OH_Hid_SetNonBlocking} to change the mode.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @param bytesRead Number of bytes to read.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**. 4. The value of **bufSize**
 *     exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}. 5. **bytesRead** is null.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_TIMEOUT}: The read operation times out.
 * @since 18
*/
int32_t OH_Hid_Read(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, uint32_t *bytesRead);

/**
 * @brief Sets the device read mode to non-blocking mode.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param nonBlock Whether to enable the non-blocking mode for reading data. - **1**: The non-blocking mode is enabled.
 *     When {@link OH_Hid_Read} is called, if the device has readable data, {@link HID_DDK_SUCCESS} is returned; if the
 *     device has no readable data, {@link HID_DDK_TIMEOUT} is returned. - **0**: The non-blocking mode is disabled.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. The value of **nonBlock** is not **1** or **0**.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 * @since 18
*/
int32_t OH_Hid_SetNonBlocking(Hid_DeviceHandle *dev, int nonBlock);

/**
 * @brief Obtains the original device information.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param rawDevInfo Original device information, including the vendor ID, product ID, and bus type.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **rawDevInfo** is null.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetRawInfo(Hid_DeviceHandle *dev, Hid_RawDevInfo *rawDevInfo);

/**
 * @brief Obtains the original device name.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**.
 *     4. The value of **bufSize** exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetRawName(Hid_DeviceHandle *dev, char *data, uint32_t bufSize);

/**
 * @brief Obtains the physical address of the HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**.
 *     4. The value of **bufSize** exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetPhysicalAddress(Hid_DeviceHandle *dev, char *data, uint32_t bufSize);

/**
 * @brief Obtains the original unique identifier of a device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**.
 *     4. The value of **bufSize** exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetRawUniqueId(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize);

/**
 * @brief Sends a report to the HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param reportType Report type.
 * @param data Data to be sent.
 * @param length Length of the data to be sent, in bytes. The maximum value is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **length** is **0**;
 *     4. The value of **length** exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_SendReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, const uint8_t *data, uint32_t length);

/**
 * @brief Obtains a report from the HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param reportType Report type.
 * @param data Buffer for storing the read data.
 * @param bufSize Size of the buffer for storing the read data. The maximum size is {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     Otherwise, the parameter verification fails.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **data** is null. 3. The value of **bufSize** is **0**.
 *     4. The value of **bufSize** exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, uint8_t *data, uint32_t bufSize);

/**
 * @brief Obtains the report descriptor of the HID device.
 *
 * @permission ohos.permission.ACCESS_DDK_HID
 * @param dev Device operation handle.
 * @param buf Buffer for storing descriptors.
 * @param bufSize Size of the buffer, in bytes. The maximum value is {@link HID_MAX_REPORT_BUFFER_SIZE}. Otherwise, the
 *     parameter verification fails.
 * @param bytesRead Number of bytes to read.
 * @return {@link HID_DDK_SUCCESS}: The operation is successful.
 *     {@link HID_DDK_NO_PERM}: The permission verification fails.
 *     {@link HID_DDK_INVALID_PARAMETER}: The parameter check fails. Possible causes: 1. **dev** is null.
 *     2. **buf** is null. 3. The value of **bufSize** is **0**. 4. The value of **bufSize**
 *     exceeds {@link HID_MAX_REPORT_BUFFER_SIZE}. 5. **bytesRead** is null.
 *     {@link HID_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link HID_DDK_SERVICE_ERROR}: Communication with the DDK server fails.
 *     {@link HID_DDK_MEMORY_ERROR}: The memory data copy fails.
 *     {@link HID_DDK_IO_ERROR}: The I/O operation fails.
 *     {@link HID_DDK_INVALID_OPERATION}: This operation is not supported.
 * @since 18
*/
int32_t OH_Hid_GetReportDescriptor(Hid_DeviceHandle *dev, uint8_t *buf, uint32_t bufSize, uint32_t *bytesRead);
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif // HID_DDK_API_H
j'xX]pU :VpDZ$P@)Dm~gtj f(iMSO8l֑YMv۴6YL4
+Fg7lH˯Ч{}{'So>dcLG՝Noi4ZWӭ[][]WE~!C5ɜyFYEOGlyhowHZy<2`${eu}U}jЪFYᩞy0Yjb$9yDpߡ]~zO`v]h]`O-'3-ë́lB)jZ\Pb(Z^w{kWC^wAckKg&d{sD>m9k0V	%<ђrԘ2ǧm^ӞX^*)rF
K%uըVDˤU*rlHԯ1ZKR>!vzqoCq_]]~g" VLts_b;!^_2$8G_O=#շܗwWcMdȒ(@:X6~楢!.%ТPVX
Vpݴ$yS-(1keUQ8`LWE4U`X偾N}SYӴCZG׷:Sp]lxPE=azRtж뜘8xnU	wir=V md
kTE 5 B%%YY)⇶__Wy^	&g0d+<\Ii-MUtc5p4w*2Jb%wfݍ܋	ppXD~ cm#A6<rBXjDǸxwk:F0x_ErQ3w|(A33ޘ0ԍ`ޮ,wˇ<)Xjb5SsQaRޠ]!^R)ZP6;)n zh[n1v0ʧro'7eXT:2sVs8\#Q]!Z!G]B2gN18F6=4,ڙgݦW9[r$1 $Q/o!Ъ
Kzv:XfB^'-EYȰ\FdEs+:̴xL*@)I:_|`冸_ԥdcLŸhh %_ǵkh;{DFFBo@,1y{|gU=,.[;7&
%Jq*@Ф n7(`/N(NSuZt6(˻Ai9xh!J>PÎ@VM#m	7RE_{|^E@gHڒVSiM}Î]Hw߮!)lRv.SizNl{ 4}Aznu1{ӌ+K3oa}Yc$pY3Y(@S+5W7u3^
v\{ڬokigR+|wcd|Bt#{9nf~]4;nBoim/Ǣۼz^Wl+QKbs6;OoM෡̋|L46/rY^fҏQY_fMVTkƽIڦ|v2|ܮUQjzGs^ރDIK!ʭz0Y٬TN#k>C-"yo8TLx 	I=LnxYMLWV~	IxHb
TӀbH6Mz?#EH=D;UC/i{ɩRnMZ+Rvym/!"*|wgfo?tϣ<p_Jmq$E6QL̔.2~{De2jRQ0s(\TZ\%b`9Cd4(/aME>S\)j9-tFNAyK]G,긖}̃x8t` e#~i&L̶7I(LZ(+ *7M:$4i]FEIsxx~.i:%Ծ@!͸lb>yǘfEIOȗN*Mk9eH\HozQM	Hލċn x/FQ+cyR]WL"P(u7""ܫ'*e˛r!HşjaKI&} i#jNT6m*˃	e	y<:-rNOj&mJAm;mI*$$}~RbA#3:)-E~ց*铌	+:eKY98ZRf<˼W	 XeDMNZPõ<JuS#F6LцI#:ImwQ3XO9U._I܊'
aPӨX<-=9-Α*.V*k+ѩ	/$5Jlۨ4lˌv nKT񰳡JSVy(dAZ;^ y$su5bK`eDܲ&)'7۶Jq(;\G_B"/M5dSgU;K'5`U(2t,p)Y'uۨN;Rs,L	 eԼ7U6]?wn6 _qdPbV&s񸥬lA%No!N~G&~4DYEdA9ʑ6dT>߷d㱁xawtbIRa0m1hJ\f?n/aqKr+dw	CYֳtŷ}u91ݡȮ#`:l5Td;SKHJ#BwraH0	Fw!BkcAƴ]@8,l>XT<Gg_ Rm5	,\r@ v᱃)>?ibar+"|X7L?P&ṮZ3Ehf4}łrevd$.l4AlĞ0ptB`>.Q#=r:xR_ݠC5oe^~0-¢{:p5i+ml6!J'1m]m/4oҋ6az	$w`GWAUNdJm*:Q4nuw|uS7{5-|5v痶mF|=+68z`_%?WԫZk<c=_ݖi-iNdU5jK-?&|HU%^F1Y]-=lr0 4/"bWbs/su	e?70vPߘ3jxTMOQASJ./L-%"(4&d>n'꼙ښF211,ܓt?΍7hԕj;~w{<>zB	 8B0,J080^|,{KZi<C3Fr[tvQlCMrV}Yz$AT8o"SWGt2$6ج!gt5O'fa.5:;Ǐ/LGd4>u`RVLpb0Șr,9Z>8ݲNÑڟjQ%6]$ېQv[L\Gֈ=zg#(b"w}a!p"Sf56TiLN`^m$y2Q	\s){ʋyP5W'ِnJUAUAG|`Yg\F'=vXo?KC|k\\eN[Hqa\a	Zz!P51@6x/+DKc$nQF(;0))!<#KMrCH%)ZR#H9/z:cLdCVpfLy[TALYC@qP}©3HČ5t~mFVp;Tb;6c>Vw2ۡkk;[m2DOm18~dn.Hs|f\OSO[\F{/\Oz ԧOm22&x[qd[^yC7	T c
	Ix[͸qYAF;Tp3:,h69Std+Pdr2,@DxuPU&SCƴyc1L>aLvs1=& 	0*x[\q+f7>fm-'Fx[NqC͉LqUY<7f)c,e] ̣Kx[BqSqdGN|1L @Mx[\b?wPjIiQ^BIFd?6Ʌl**EPDĒ̲Tܤ"|T,J7pcbM fM~0UL{N]2sJ#nAx[Uq*nFKX*px۪xIqkfI̲"ԲԜԼ̒ϙ  .x]ksGίJ>Âm˛"Kc<n0ٔw,FT9	!\R@dda؆'34gFy/UP<gN;vBQDjI?@]]h*M
SJ^{P(T-d2
W<}5]Q˨W}P̪UTfQY5PU1	(#y&/WQ^-UTca,C7$,.a@4Q/$ig0*1==.ю%wĈ{q(W.ʺ4"qS4R5$dFOkA:aLKLh
nhxhDzl5gy3bf!9$f,:NÉ(dP2"DT̊ihDLD [g*nB)[#&LVW&<ZhU:*ꔬqPEJNFU,RRɠEuձZ#P0ԣZa-qM'PJSa1lQC&Ҕ&Kx?2
NF-:[/nk<(){Z)a؈b/Y=/UPfV7R;˸RTvЎ.@!~
#K^Nm,h>rs_)>c"0\6!C5?Q쩭o-zYz,NRI1C9ٹgW3g	DŴZ4!7re뛇[mvqًl0&cp"O<4%a;[Fcqֶn7mm^hbtbX&+FF,^l6Wݩm^EDNghv}I&ۘߵ?(&J`AQ$dWqUIDjj	gV|UETeQO3jq1>aPZu墬%ێvcY_9|U3;mgkܷ])ˌ&qƚ{|0.7/ͥ;i!ƍ&Kn!i>60`C#)93/j-h̊FYP#JEL?%I)2LZJԄRyѥocƝvȱ7>ܸ<q|cRmkh`;iV܎bqm8`'sCLE]\]yR;<{£iv뀉`Qo>fV̵o@(>)n66]xӳ<8Y#eE^-O(G5="iOA| 
dw#9Vm%8fsk;2n6¤AGc Ād(6 4(i  d0	 H0@"q2Iج#    Ȳ5R%gH$<)" x>_͚$9}Ȁ `v dA ?Ys  G :q]8D:D< $4]#DBLB`% À+2廈sݠ|75()
X}|p <<ȀspOp92CP{'pߚYH&ЅO.e.Шgp7q6o~cV^G|@T&~3Q/|c$j!.F$Ya,N#޷#="x$$GG\|Fˉq
lW|Ǎ\<@< wp8fhuppfhjC5C= AÁI8ChyuIx&߫pghMV~`bXh"7/ܵjKw'o;ެ-xGŃb~?4_m.wsTkEdrYtn"	GɄⶃm$? Ǧ%E8f$/as{ 2*Ą,]%9YOE=ǐӭS&c{}(A%br)3G4&LnEb[QB[=J"@&h	jaB
sgb0(NP;0X7Az$"0w(&^Z	MaK`m
sG]`0hS;>ڝڝSֆ NAY$`^OGB@Ӿe}K\FcRJǭ,2&c-
$dq0Ɣżp\82L

*υ<$#",۬zeÙF8Ս\d'IJkqQIslo-=a>~0)7C~͏1\üO||XL׷ 
CgjgݻÐ8||<0Wn1!ah`W.[DQAky:
8g\P1ڌ4!/yhPhxlC<dn0&Y 0-/`ʦqZ$>}fA)6`rhX`N2"FԂ,[PA-*RQ*%xP!m*uooJmhP)oJ}uAF+ToJv&To;J% ToJ}@~[T*㷯@~	T*緃@mPC~{TRG9}TӯOB>~*SާB>5}*SȧB>{*SB>uz*4SB*T&Mɨ)SDI!m⭃3W>tAJ<ŌKczEj<eU<aq*@myT):|"*[^n:S+o7Cj)J$j;ErIɫE;EJLbwʭ[Z햴ճwR;ERIBm{\NYSjkwA*{wůD$kRG7ltrdL>PcE*,;4hMWK4ͅw%
CMs)ޡm&4jKKi.;4-4W}-4QXSɒl`d@meJ!g>h݃*v6znbSUEmzuu=J?ϨM*֕wPT+%<rƲ5`%!5Y.l"<	`=(TPݟ
h"*ӮVyJz-7K@Z!SʭhjxeNߖ5u~[Y(۲Ͳ@Eߖilo,Pee-,TmفfY4ok(FJ^`J(M/ JP=Z;(o$\^G@NI)OiI+pB:Cί3!8XdR[[#GxoQjUP'm+Ŗj(h8"4Kh2Nxenf*xu ײqVӬC-QƘ-Vuw㖭kN*6}Ҵ-
b4N*B$9hHjAƁWw&Z,IYvywŹh;I;z+VKx0CkY<#<}siڙ۵jK'7nG&ZmyF<smwATv8fzoVF{x׃ }ܳނ"ae?7OLGX]p}7,%q6n-z .b $r>]\}]Lx[.p4m7W_78<<}a f+#h/6بɆD0su-sŽkO˲xo49j/'^`>z%"!1ek*jEBu'/d\d/Nv&<gdsk0fa-=
[5*]JeoMs U9nppw'jE9pyvИzDyn(]:j7ƭ,t[1;Xtm`aيB_+VfQ\R\(&'hHEb9_$/m< 8N(E1i3+6Tdy^)#gBՌ@Z	d2rB9فxdO/rd@dίB=AFpմrBOgifΟ|p)?c"-	@̀y6r-x: !@~Ky[C8.Rqw4jjِHގ1:87#6yҲ.kSrg!#
Q 5ڋOr5	¯}<w1MbS	и/ۚڼ0ovn۷{M̕Es;s}r9a:C]dr|<O2X݌> dvnIksg87tw!-\[t?jF	Swj4+qlz6oMuv!@jmut@֍<(cHᾎg](ʁ쉲J	E*UZadܺ|}c<%v޼K_ݪ_0OߦMerNIsڭ7[/Y;z>Qo_/Urk_j7/tuxIrƇLWůkWxrtuw*3ȼ^ZC=bF[ҭM44׾64+7m;Vv73un۹\O 䥹YsO3kPGj/0k(ɿk~rwf%1bvLHu6[wnvwSЗ$bDh%'O\#u'UC,zD?ެݰ[jg^l>[﹯/7~YƸOGY<0f@%Xz$ksI`@-HfǆDt[>1A|_H4UCIzԈfi|^j1P	R} <#x<%Hc1PTtweBRx8#An8;}ߠ1iV1(P:[-Loۅ]eMPF:Yڵ82]zq uhHUtC捺{=29-KqTPz;"}^o_qjQjB}7kNחϯ/n<S{s?[K߬-XO@n @&g=;Y]C*&R,x`=
gBW&wՁbE/--0ƣ/hHӃ7J7S㒮moTuckټ?aO}ȫe@I	G!	,P.Hd68\4E.`JSq\d C"W1rxcp`Uݠ	7
LaYһQQ)kd˦=D\:a,Z\>jLoUáOul	%Xh-T*T1 
U 5ƾd7N`H4;lfߪ.˅amMaA'BM>tb?p[lwM}g?^3. ku0\j-,z#|YerV\[Pꔰs3_@krtCOIr(e/tvuޡףo?Bĥ^hs659v|P)>BH8Tٷ#&>eg.o͇5&I?>m-rJ؞Mf:˽]s!8=[V<ʬ͙[1+4~q9h4',Zնv&a.%ċ\
mFz6"ohɐ`Ԝ+-԰4Ҭ>Ms֩o;㼕qfg|K4diZבQc9gwX}g6c5|cq6Qc9DwX}g2Q.X)!365s?uh/A(bU'gY+"aO~u9\'BZ8P%iތNLߠ|ÇV`nhHHe#jaXE<NأQLo[4՗@:\V<:=a?xY[lTCxm^0	61{lŰ@hxL*j}IUUqC/MI>$J$/EBjڗ*U?svx,V93<i-mEQ1J*DbuʤJ#rڮaN5PeHȴ[Ld8Qډ(FC(Р,A?h.LTn!W¾&EU;!J(J)&WfIOBa)ӶxM!fJ
b:b#<Dlۄ#џ *'_-lk
ƶ}1[UQV-m9AW9텍Y5[.@ry5Dq!Y*69Blm!d򑫋;R%aBfUhDyǙvjiJL!xʱ?uM]-۳H[z.t3b>Q(@|I)|Q#'KJ9#\AH54tMv~RRZYBO3o8d$p_%v$ny"2AޢjAR)X;baF(WH2[z#bc 	Ke"ocLLkrrBd)OH8'Iϝ~B8,-c|&O30\!piÉ3B7"$0P~Yςug^gvR<?윓#q(%-eԔ}mv}UBX%N]| XV-{xT2P}gbp)Zx
$?D8whblrTD\w}aI^5ӒrQW|g6{w*ƌc#+H{eB¨2`
QD܀Q<64B;et05+L$ʞ(wgj /'@-!cM+ΈwB*7mFh[HC&E >wsd
"g$JtD$%hފ8½46w&s}yP'/|ӑ:I%>t*I!t手=qȄTU\~P4tovsĘ_źJݭiNi]̀wA5ZH{sp|^	-J~sR0<퍞*>Yl:O"Z6͍zO{XTP|S8c[\köe\4"V_4G~fx'}t/E)Һ|f2=exfSJ	B0*mJZfTFS.j?@cȁrY\Ka%ː62o7]cKaLaiZ, <1)ߟFɄݫɵ?$CM	(Ɋ
bu&)ZfwȽ18G666.4of-|9}"vNe[X/Vg5di1f)DYz_{E"[MǇj(upK;5U,p[vvI<:#ha:Fh ?B2yV=Zgxb24'r>i;¢7z_ߏz5r\rFR7X^*fc^"\|;G3`~bǣiI߼fբW7݌5xk'v?()+'5GjkDˆWٱn:v\[;[+/AyQD(;29gc]\"6$`C~>|:Y}jF\S)cU4-3{շ&@xeXO5W`1[51:شh=![uGFȓX])ДRiǧ6=.~wH CJJzG`?f<NA;RDw"+wUaЍwXSi7eVg>'xN=lުAhMRmI	qz
 tf3_M45{,KgdϘJ%Cr?_3%ҳE3Sq/|V$Eŉ|k$JN;W/|s&sc|.aKZ(kݶ^⦇sB7Of[87M`Qgy_KΝϯClz(T<'pJ72lk#$h5dI ΰ+ɂzAD.ۉy~ǁ%?nL=i=A񓆫WFw><KWBG8]NВZXiI^Ŗ,c"6">JJ> ]"т3ƚ"~6e[3fyK)#sBt\_+U_ L(Q܄ZhiINû% @~{ujx}PSWǇ!x!	`A(*-?l8jDCitGjhұ`Gmq"3-:?t:̎%ftܶtfb&g>ssw9`p\P!@f۬-斖vsgOil3W,ZZEk3?VYeM{уQ̼:?;~sgv#جMa5:R!@~I}BjouX"ggil+	uGaJށYp<֖ZVzG=s6,,;3@,JfBסFUK:uRVpBCS!u?dW
nEjLKHS.I"7wj|1eB:4rDRx@~sJ$X4aV+s>ufwb]$Wct[-u/9{wMOPh\&7CܕNNOE6jC#(ǷD+7qg$nkAGa[DF#xgHa:J:J盄T1"2(&8?̦z3>s{R1q>yJ51fay)Ϝ鱌X%tyTwk(ҡWԫ)/ߪY1ccq4ECsb"I
wxFkwM!r =	ՔV--h)11r,Jd眬{)OssU
Sec8Yq13_\ERJ~792WKOwE+i(AHI-S*'UM]Kb:V!/
Ҟĵ4|'D*%!7c*el(yjl(~<A.]å$l!~,EFY!
0Fl Gd]"0(kq&.{s1Ui<=I+C(DQuO'5?'Rhk
zkT$N OV)'C;ySdOG#zk@&8kKjOm&ĺ"[+gjqfs$)HJ+ϤRޯek*JӺV`WЩA|ԓIIR३qV#aKEUfgu%UT-m[_J%sqDolFzVzs{DҨ{Z"3\';3u&閛Wt< _:N_p]Fgd(_C=-qj'Zƽн
q1-7et#H^n{%ɝOȝ]%._8bGc]ܤ9ZҞZT"~U|.$mȖ2> ֽmΆ=g[8m;֝I5i4gҫC_^q˻"W}pOț#\WXwl;ii(loH,&]1tb磗6?a>AO^3{Tlnu9e!\ܗ_U^xO'3r8l̬˲'Ž`[bLl`2YEh2/䵞8<ـ͟Ma,\1Hb&; Ցʠlcn2N60|.Ί	̰K1&J9;9?E&pMI{gۤlqHh1mV2crUd4ɅE`z_I#K`Nw(}
͌:+?nd:ur_M g{\xmWkP`5xqdI`1ظIni;L;i36_4XJ @n1&.18ޣ
6{sϹݽzuԓ(/bRy]>6:ydF?ע)ofbE<bAʩLme:K=N>hvn[/#4I.?U^ˤx}cNS(r	܀sڬ|CmDFu&uSEFxMGMslUTrx$fv`ReoaH,w{t8Q)"<?H2AT18[%($ķB!GeH<bE?JpybJO MrU/NLА3x?lҪAQ0yoy IAKђOp_\B &EmWG+2)8#@o -ࣀu	~	{Ւ1kMb1ǀgzxYHY,̪9AAxSר14vtHOzM#s0 
`# \K  ཡAj]۝F:$ϩG%!=* =|Z,?fġ;YHH38ڥe87./K`K]HBI6t]2ϭMdeWdJ_;&hz$`?Gb'dq!ɊZy8 .hGbworF&ln?c[?)TOG!©E6П
ӓgDL`LMlia+`0yݎP*^k@וd{:& ݧ"~=[@Raɤ*Ӌ0$M|Y%H[j0=y _+eʩ̐_$-)<AfIP*LEh 5Bĭ2?W5ğF#}Y;flիB^g &aK$R%=);DϷb6~e(ä$n磎~bы2g/eTsTݘ>(De"fR}.Rw-8392\h7d芘GTq 񡽼EwoP3mbaԽA].G4p1~PfSߖ&O}NshnɫSQE4ܸ_-WnI}֜Ԁ+EޣrCnz*SQ!CBݹ z{:9)y:ꀒ=W(^gxtJ]U7{m	ȭ'jm?)2^Io>t7csA.BG3r((h`clr"25j`ј]|]#b݈sb5#ίl#m:HܻɁ\cxZ1ߪU@HWJd♅.Mm8,>5nƋ)1LQ-&gdq!㶁84r{9zv]pcH]`H缵?KhsȺ[X|N9Kq)5*w:~om@eCF_gnx[`bf]6!A:,e!ed;F,-)rk,PP©o7\7~ּeqSAHloVO:uL-ܔZiW[q̖)ERB\%t\%Stgi8;;}+5v&Puab{&j!*lz+t(#Kټ9ΟHN/ _>I[oHdw,u8탏lcUC5$wZ=L}*x%	u8!HHg䡹BL؇@4g4YFʙTr
t]ӗ=&ĳ|.^?xK J:;	M=!l:[=+=& Min_='=& Fuzzy=#F>' Fixed=#>G
YxHԑ  65! 6*3]a 65' 6*3[q 6*3R 6*3h 6*3J)N 6*3J)/ 6*3 65_;5 6 65j<7 658 65,=9:;	M=!l: 65_;[=+=& Min_='=& Fuzzy=#F>' Fixed=#>l 6*3O? UE G%E GF G=Nm0x}W{L[Wyyc0` 	<h 	$Yo׹Bh?moڴveK˔U[UmTCI]mJZUՔjʴi6!l}s}{_x]*"i^2̋DMS25=Ngb/JTbJqt/N\78nmIR%o|}SQMNdxuZ;%hc`[n)p[a묐j$TN;ɬċ*	G(^*l恳6>g#C[9W5ڲ*2JQRE,;w/-Wq<{ANRd2=r2+K\.j0PEVЃg'c9ؚ^GH(pkn2)Ҳ$XrMYߔ7&2HBNIxEhW1\L,M`
.VLjG4gx?UmdZT3ǭbT2PQ# U+Fe(\$`UC++s]?NTplpp,8'-8j~
pDĀ_X\!#$܊VMvÚ`ґJGP?^t45.c9dYxڂO<ZpjM83<-xnYmp֙pX4\k+3<uJ셤j>LBeA8e=𴫭J2N	s.+Ëa"/Wiƅ+(@4ԖԚeaJeP0g";%2.}:F7|v76v\iO)J0g#ņVhOIf3_7t6UL8=11]`w6,VJdXtFGsIY*GX{2k47Nm?d}MN9PEn7u&'|PðM[a|:_cl}mn5kBA1A	Z|#2)"Xi7a8~תfdko%L&'|V*Kјx;.(exAbw[k1/	oM2*d.%S*E	o-oݨX7PS+8:%!B-Z]6ƻ(N*H>jk߶FQST#2nP	{;<xJk <(@%|H9e] 㷈?TOG~L9	x9x,ɯ۔h\(F`,Xd゛z9[^619umtSgd<,6UhA_N%!Qѩi׊>\J ydNHBL)ׅpf
톅p͖bRoHۍO:2x~Xfq-RN.Uj) 	HS*'w6@؋'">Y43>mE|GzMH*Px'h8t\sGhۤ;
<N]FG{)/-Yp 4$G.BU0aE܅=+cd
t1v2+*+b1jcG-LBLlBrԴԺ%WN,j#' nOdٝ}y__5n^uz<p'Te?	nsd
sn8턿2`KhzmA$SlN;^gx	EٜD9yo_UhkV_Aj,훆SM?U<;/;뵤[evF7USvW<WƝR7<މ8|o
NJx'iۛl6?͏~r
_`Gڛm~Ks*D"MFt82ZXVN91 {ai=6$/6kEg83,޷vEt8[1v^	SqdΌtGBVai$`N.]ڄ;#Fț&Gp@w,m$V{?q-䀡uLEUQVr6Z
T5as 8-鴈9eex<`hagW6YM|hɲ3;-&c+X$qnmB8/Oh6x ԑӑkFEF8v	_`x{WthCds|
L,$'6eԝ\oΤk<Id9#&]6Lf9-Su-D)xOn@7UQOb8(B'#AƚceDC	C" n9XpƎS̼{oIA-рa,f`ET@#-?@'`;zZg/=klrہ:l7zmXO	Hd"u69[Cb)8`'zށ''.7xFV-d'`vrd낦uuڛ!mLRtXF5&*Jۮ7gc3 i{q)\{sFI'`$j03Qե҈Aql0@7!oR:zx|*	H>] XeI_Hlު!5"ϥ짾bA)2ѯI(b}Rx2s0f5[z=sf@pd[t#wJ*wk2}}᳼QgK×n_"(i$-/+wI}akgFwͼ0fWnfzX.^x\hds-yu@_Kks3djsmA#sc @0E'YJ{,8&:Y 95xA rqak0aOf%)vA<79|767A8AI8=8-8#,Px.]aKjNjI>xx{Fƻ**n#^ v^9x]p936Ԣgͬ`L6ss	ƬE0`L  58x{SYAY";D(,%,5' 75;d*qS b]x;Xsf%V,MIPU5̪ Qe@u.fKL n&xɸq8F. )xUF/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup ScsiPeripheralDDK
 * @{
 *
 * @brief Provide ScsiPeripheral DDK interface, including initializing DDK, releasing DDK, opening devices, reading and
 * writing devices, etc.
 * @since 18
 */

/**
 * @file scsi_peripheral_api.h
 *
 * @brief Declares the SCSI Peripheral DDK APIs used by the host to access the SCSI device.
 * 
 * @kit DriverDevelopmentKit
 * @library libscsi.z.so
 * @syscap SystemCapability.Driver.SCSI.Extension
 * @since 18
 */

#ifndef SCSI_PERIPHERAL_API_H
#define SCSI_PERIPHERAL_API_H

#include <stdint.h>
#include "scsi_peripheral_types.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/**
 * @brief Initializes the SCSI Peripheral DDK.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK initialization fails.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Init(void);

/**
 * @brief Releases the SCSI Peripheral DDK.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Release(void);

/**
 * @brief Opens the SCSI device specified by **deviceId** and **interfaceIndex**. The **deviceId** can be obtained by
 * shifting the bus number of the USB device left by 32 bits and then performing a bitwise OR operation with the device
 * address. **interfaceIndex** refers to the index of the USB interface to be opened.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param deviceId Device ID.
 * @param interfaceIndex Interface index for the API of the SCSI device.
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev** or ***dev** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND}: No device is found based on the specified **deviceId** and
 *     **interfaceIndex**.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Open(uint64_t deviceId, uint8_t interfaceIndex, ScsiPeripheral_Device **dev);

/**
 * @brief Closes the SCSI device.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev** or ***dev** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Close(ScsiPeripheral_Device **dev);

/**
 * @brief Checks whether the logical unit is ready.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **test unit ready** command.
 *     For details, see {@link ScsiPeripheral_TestUnitReadyRequest}.
 * @param response Response returned by the **test unit ready** command.
 *     For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, or **response** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_TestUnitReady(ScsiPeripheral_Device *dev, ScsiPeripheral_TestUnitReadyRequest *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Queries basic information about the SCSI device.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **inquiry** command. For details, see {@link ScsiPeripheral_InquiryRequest}.
 * @param inquiryInfo Query result returned by the **inquiry** command.
 *     For details, see {@link ScsiPeripheral_InquiryInfo}.
 * @param response Raw response returned by the inquiry command. For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, **inquiryInfo**,
 *     **inquiryInfo->data**, or **response** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Inquiry(ScsiPeripheral_Device *dev, ScsiPeripheral_InquiryRequest *request,
    ScsiPeripheral_InquiryInfo *inquiryInfo, ScsiPeripheral_Response *response);

/**
 * @brief Obtains the capacity information about the SCSI device.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **read capacity** command.
 *     For details, see {@link ScsiPeripheral_ReadCapacityRequest}.
 * @param capacityInfo Capacity information returned by the **read capacity** command.
 *     For details, see {@link ScsiPeripheral_CapacityInfo}.
 * @param response Original response returned by the **read capacity** command.
 *     For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, **capacityInfo**, or **response**
 *     is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_ReadCapacity10(ScsiPeripheral_Device *dev, ScsiPeripheral_ReadCapacityRequest *request,
    ScsiPeripheral_CapacityInfo *capacityInfo, ScsiPeripheral_Response *response);

/**
 * @brief Obtains sense data, that is, information returned by the SCSI device to the host to report the device status,
 * error information, and diagnosis information.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **Request Sense** command.
 *     For details, see {@link ScsiPeripheral_RequestSenseRequest}.
 * @param response Response returned by the **Request Sense** command.
 *     For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, or **response** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_RequestSense(ScsiPeripheral_Device *dev, ScsiPeripheral_RequestSenseRequest *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Reads data from the specified logical block(s).
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **read** command. For details, see {@link ScsiPeripheral_IORequest}.
 * @param response Response returned by the **read** command. For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, **request->data**, or **response**
 *     is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Read10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Writes data to the specified logical block(s) of a device.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **write** command. For details, see {@link ScsiPeripheral_IORequest}.
 * @param response Response returned by the **write** command. For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, **request->data**, or **response**
 *     is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Write10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Verifies the specified logical block(s).
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request of the **verify** command. For details, see {@link ScsiPeripheral_VerifyRequest}.
 * @param response Response returned by the **verify** command. For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, or **response** is null.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_Verify10(ScsiPeripheral_Device *dev, ScsiPeripheral_VerifyRequest *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Sends SCSI commands in CDB mode.
 * 
 * @permission ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param request Request. For details, see {@link ScsiPeripheral_Request}.
 * @param response Response. For details, see {@link ScsiPeripheral_Response}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link SCSIPERIPHERAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **request**, **request->data**, or **response**
 *     is null, or **request->cdbLength** is 0.
 *     {@link SCSIPERIPHERAL_DDK_SERVICE_ERROR}: The communication with the DDK service fails.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 *     {@link SCSIPERIPHERAL_DDK_IO_ERROR}: An I/O error occurs.
 *     {@link SCSIPERIPHERAL_DDK_TIMEOUT}: The transmission times out.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_OPERATION}: The operation is not supported.
 * @since 18
 */
int32_t OH_ScsiPeripheral_SendRequestByCdb(ScsiPeripheral_Device *dev, ScsiPeripheral_Request *request,
    ScsiPeripheral_Response *response);

/**
 * @brief Creates a buffer. To avoid resource leakage, use {@link OH_ScsiPeripheral_DestroyDeviceMemMap} to destroy a
 * buffer after use.
 * 
 * @param dev Device handle. For details, see {@link ScsiPeripheral_Device}.
 * @param size Buffer size.
 * @param devMmap Device memory mapping used to return the created buffer to the caller.
 *     For details, see {@link ScsiPeripheral_DeviceMemMap}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **dev**, **devMmap**, or ***devMmap** is null.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 * @since 18
 */
int32_t OH_ScsiPeripheral_CreateDeviceMemMap(ScsiPeripheral_Device *dev, size_t size,
    ScsiPeripheral_DeviceMemMap **devMmap);

/**
 * @brief Destroys a buffer. To prevent resource leakage, destroy a buffer in time after use.
 * 
 * @param devMmap Buffer to be destroyed, which is created by calling {@link OH_ScsiPeripheral_CreateDeviceMemMap}.
 *     For details, see {@link ScsiPeripheral_DeviceMemMap}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **devMmap** is null.
 *     {@link SCSIPERIPHERAL_DDK_MEMORY_ERROR}: The memory operation fails.
 * @since 18
 */
int32_t OH_ScsiPeripheral_DestroyDeviceMemMap(ScsiPeripheral_DeviceMemMap *devMmap);

/**
 * @brief Parses basic sense data, including the **Information**, **Command specific information**,
 * and **Sense key specific** fields.
 * 
 * @param senseData Sense data to be parsed.
 * @param senseDataLen Length of sense data.
 * @param senseInfo Basic sense data after parsing. For details, see {@link ScsiPeripheral_BasicSenseInfo}.
 * @return {@link SCSIPERIPHERAL_DDK_SUCCESS}: The API call is successful.
 *     {@link SCSIPERIPHERAL_DDK_INVALID_PARAMETER}: The input **senseData** is not a descriptor or is not of the fixed
 *     format, or **senseDataLen** is smaller than
 *     **SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE** or **SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE**.
 * @since 18
 */
int32_t OH_ScsiPeripheral_ParseBasicSenseInfo(uint8_t *senseData, uint8_t senseDataLen,
    ScsiPeripheral_BasicSenseInfo *senseInfo);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // SCSI_PERIPHERAL_API_H
/** @} */
<cxݘSSG'^#V ѩȈ :R+PؖVP3J$jÐ s@$UxLiݜ<9c	$mR_0.ggw4
;G:(^=߸6GS1cJw>4v*+ʨ/iܠJJ_E7䶌c263[PR6syS}M3<գy-H6mQ/`5PRA&!nУ~Ⱥ`~JeFBa cIbVngS]IߒIJt_/hE~+ﱾM=t?l&	pShf#,;?Ʃ3X\*@vv!u9d6VkYjg:Ԝ.evOun6~T.;oXܨO |_^@cDjW?})1]@ZEs>^0^!%=I;Ɠj%
I5BPDL#frQܤEFnL%bD	ꉛ|%I eOanGLD[h/M=`LnKY1؜\HR";o2? 0ذ^Fx~Hs>6i{'/<*
5?DW}a\<b2t"m~`CQ40B\WAݤ**̇+X`om*\;odL#5H.RoRȕtܾc׮̇j|rΩ˕ĭnVgc\NEQc65o	^8`GI&)S,RngL^UnsYP#ҊYDy,h!#c?a}2w!9*:x*NyVJTUFgBD6gCp2^yZMqYLU(V"b3\Ġ߆q
I Rw6e;JO/OiB_gx"4)YT
+w`ڍX_6]en5 ?6Ȥl:5BȬcsi
kd7r%b HpVRgs=9ݬ|[n p46LN,b
7~4a ^~/`E^>38+N8*qQ
*&t4>B,}*!Ox=>'0qVȪb߳K`#pj s8t%b؎TWKT	*d%Q#
9Mܣ֐]_8P9yZ_[VZy-Nu2^?Emaw;IPDd<a\ =#[	K4f<zX'(y3v;׸G`ݥS<дһ/%/;b' x/j`[YۙoaH
>X>[NnctbSZTڰDk ׈qQ@K?K|T
^Gf
	=^MZȡ,̟,=P;ʪdR4ٍ^E3o:(y[Wv!B%+ Ǻ _f㒛HQeJȦv	M,6l2qi(Pz!B6ԥS6S"S0?r-2Lx ՌԌ?v7KPHnxXKoU> %I]ӘQJA$N;ţAne<sm_3wrڬJt bxbÂ5bK@>tb#&A²9s}̹7>?ֱti`8h+NgtV-7)ZH*垗*9S9X
9C o?ot 6TȁY(
-y-E<?Q>,k 1 	d&ޞ'=RM!yPWR7Txq((dy`A)nlGBI@>pIJ3ء_̀dV	ŎEr$%C\s]L+``M\3Y{q9usRTW6.Xљ(zaɩQR8`c|7Q=
CuH	Qk'=AhꉚDՄߘO' iUqY<nFMpRM^|ozR&k£f$5aCAIL`R2(;XFfF& #Cki3dC챆,|Ǻ\l;,dSލ⚿ eqit_;"QU,+$XHuJ5F-N-!L]}O.Vͦa#5*34\D,VWŏ]3cG{xhb@rjƓ#:XR_jLP/`xTSsu~aTp^tur8%(h,tT!JN?eQ;̨ݛ;N{U,Zȳ"Naw'"/Be0@]hͭkeA7-[VYE?{˽ SB1bo!UL$Շ6Ź1m3^_!ueqiV ɛ@Oo_%(j"Q&So+1gx|eqPd8NO SlLO]eIuSP7W+E"3=_ru'0BUkNSv[fN٧u[ǒpϕ~PnAj2LRϠ[ܾu'j+ ޹:=/[XM1~7\w\x[xq8F	%,Oox6Ov=ٱٜ]O-n낝=_tIY- B@jQfAFjQbO?nhRКR5K"X'?,VbLe[; zph=6sa2:';YnrdU	@#Y6?bKA;5XJ5!CY8
aԳLQiɴf-L\ZZ

Z\ {4ry
x[8qCVE7˲eN>m2Z A\oɫNਜ਼+<CUcr@P|vHEXvNE0RMP0B-&,cC7GZv2m~lƴY? )AQxWkPWuA)`Z+SQS>R3B$ڎUhqgVi$kf1Ih:N`*M{w(ZL~es~(r\'m'A
YX!njk_A1ˌ&>1p:YfI9Uxa}kr	+\CcvO#U[̚oOحuE}ۂimzLy|:/;RLImn\+̃\
4b[Ppȇb֝=[cY_^5'[RVi@nݥa핐q#ǃN鲠RhsG7ׂT?"EE{!5 j1>L#r<`va:S0p6 Au~Z
qbu0kC^V:S/AE=~rq#̢r>5 IM4{^o{&mgo 	G.o@C' gs?.14cIǦ_
}0zqF	ji9h-6缙ږ=8_Ө`
:, ,Z	u5 gȖռ7CPtN^jhޱN@˗{|\|C
X,WP |Gu~Z;\c;oF/}"GH|_cILW
8xRt1xnW/VuVPX:OzhRJe 9YpfFv_Й@o@qX"S% )M/
7$l&
<I(L
KKe弹ζH0 Pf&&+r74INGZk,7?~Yka򲖭b-⭙Ky\"y	0*XЬ|< j5]FHT8曃s#-$3M!>Ûp8w"hPBhn!U>
	_=q6a殆OpzNB*9MV5՘I,BR̰fT,9ìuC | %)O	~I$wT<hdg8А6o(ր}Q&?mE;^NW93Lgɟcƞ:[	:)i[)8\'|胳&qeLB:>@CI>|WƬ)+h'aA|=?O+	W	C{;2dhg~6fI \+Wf5LkVs_pӵA&J,GXeT]BX"kIB&CUB2H8]\iԝ\rػ$ ;m0՟+eخY4j	I#=rz٤k:q3C>_\#HT8ʰ<n!x;xq8F	 (*Wx IԌ͌Z"޳HL
DS[5$)7.:).|3e8=@pCWCE}
 *     orJE}"-ECEx0 ͌ŌD

 *     **D*** or **5E%**'-Es"9xSPgFJ]y ZZ.ZxSbdvf5Fz̗63$29ض0#82CEsy`
D5@*!Lֲ\eC͉P<j10Z0*x)ԊBgYm72<b/LEQ ;x^b3dMK0'21ZLP\϶ĒcB&n6>hIDL"UeAYZPc*(x)QBZM^ž#SM7OUSd} pw8xXKoEbY/!q&8qYe!؄`kXc3ĉcW$@!'8'?{wgvc[$D`MwWWWW55O}/Y\]!_M8pUʁ6rID#VQ~ѐj
	g?Y EY"R[C b!Wֵfy73mxU`Ŷb%bO'/4WTzV9!.^`YT~6&msW׶迌ǕqbMSH.|P)R*R=#ȉ׻S3kAo!<yCvK.v>RKntx7܆LjqƇtb-5?M}>snNscs+CU"S`-Qk\j`>T"|]B}Or<rf1A	WŹRiPkĶ86'?{5A5$~ PU/<j<urn[cՑ{9b`us&9LkvGͅWl*Y'S0AXD庠\?!T6p8Znj([jˈBY
i4\`>[!p7Y5&bb$os%+ro\_\:8Aà r	,k3{̝QQG9	"Mk%SLl;TW1R/zQ74EF!BSUq$cX,:xj@>7їE8:ŗCUC})MVͤ6Rq+sdNKL]jlV^	UB:RU2Hx5lP͒jkR%Tэnk%Ly$;l h5#C1߾}6	vƅ3`5umj8=4H9DƼb'*icY G1\q@ۺT #0t\12L,5N:DȷtoZ05c]g.fu~cm<j3Oχuz CjW	ô%]IZaثQ6Pbit01>%k̋.0؃..U^U_bk $Y,wV0p5kE$E?H{TfAmnӸc9JŇMدHo,q+M8>K-7K:6Wr+gq:"ŐVcޟyjۭGcU˷z-\U[t֩W
YWh69҂i2 .i3Bv,:@fx></*
 * Copyright (c) 2023-2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup UsbDdk
 * @{
 *
 * @brief Provides USB DDK APIs to open and close USB interfaces, perform non-isochronous and isochronous\n
 * data transfer over USB pipes, and implement control transfer and interrupt transfer, etc.
 *
 * @syscap SystemCapability.Driver.USB.Extension
 * @since 10
 * @version 1.0
 */

/**
 * @file usb_ddk_api.h
 *
 * @brief Declares the USB DDK APIs used by the USB host to access USB devices.
 *
 * @kit DriverDevelopmentKit
 * @library libusb_ndk.z.so
 * @syscap SystemCapability.Driver.USB.Extension
 * @since 10
 * @version 1.0
 */

#ifndef USB_DDK_API_H
#define USB_DDK_API_H

#include <stdint.h>

#include "ddk/ddk_types.h"
#include "usb_ddk_types.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/**
 * @brief Initializes the USB DDK.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails, or an internal error occurs.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_MEMORY_ERROR}: The memory allocation fails.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_Init(void);

/**
 * @brief Releases the USB DDK.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @since 10
 * @version 1.0
 */
void OH_Usb_Release(void);

/**
 * @brief Releases the USB DDK.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 * @since 18
 * @version 1.0
 */
int32_t OH_Usb_ReleaseResource(void);

/**
 * @brief Obtains the device descriptor.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param deviceId Device ID.
 * @param desc Device descriptor. For details, see {@link UsbDeviceDescriptor}.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **desc** is a null pointer.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_GetDeviceDescriptor(uint64_t deviceId, struct UsbDeviceDescriptor *desc);

/**
 * @brief Obtains the configuration descriptor. To avoid memory leakage, use {@link OH_Usb_FreeConfigDescriptor} to
 * release a descriptor after use.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param deviceId Device ID.
 * @param configIndex Configuration index, which corresponds to the **bConfigurationValue** field in the USB
 *     configuration descriptor.
 * @param config Configuration descriptor, which includes the standard configuration descriptor defined in the USB
 *     protocol and the associated interface descriptor and endpoint descriptor.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **config** is a null pointer.
 *     {@link USB_DDK_IO_FAILED}: An I/O exception occurs.
 *     {@link USB_DDK_MEMORY_ERROR}: The memory allocation fails.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_GetConfigDescriptor(
    uint64_t deviceId, uint8_t configIndex, struct UsbDdkConfigDescriptor ** const config);

/**
 * @brief Releases a configuration descriptor after use to prevent memory leakage.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param config Configuration descriptor, which is obtained by calling {@link OH_Usb_GetConfigDescriptor}.
 * @since 10
 * @version 1.0
 */
void OH_Usb_FreeConfigDescriptor(struct UsbDdkConfigDescriptor * const config);

/**
 * @brief Claims a USB interface.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param deviceId Device ID.
 * @param interfaceIndex Interface index, which corresponds to {@link bInterfaceNumber} in the USB protocol.
 * @param interfaceHandle Interface operation handle. After the interface is claimed successfully, a value will be
 *     assigned to this parameter.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **interfaceHandle** is a null pointer.
 *     {@link USB_DDK_MEMORY_ERROR}: The memory to be allocated exceeds the limit.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_ClaimInterface(uint64_t deviceId, uint8_t interfaceIndex, uint64_t *interfaceHandle);

/**
 * @brief Releases a USB interface.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param interfaceHandle Interface operation handle.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: One or more parameters are invalid.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_ReleaseInterface(uint64_t interfaceHandle);

/**
 * @brief Activates the alternate setting of a USB interface.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param interfaceHandle Interface operation handle.
 * @param settingIndex Alternate setting index, which corresponds to the **bAlternateSetting** field of the interface
 *     descriptor in the USB protocol.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: One or more parameters are invalid.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_SelectInterfaceSetting(uint64_t interfaceHandle, uint8_t settingIndex);

/**
 * @brief Obtains the activated alternate setting of a USB interface.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param interfaceHandle Interface operation handle.
 * @param settingIndex Alternate setting index, which corresponds to the **bAlternateSetting** field of the interface
 *     descriptor in the USB protocol.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **settingIndex** is a null pointer.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_GetCurrentInterfaceSetting(uint64_t interfaceHandle, uint8_t *settingIndex);

/**
 * @brief Sends a control read transfer request. This API works in a synchronous manner.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param interfaceHandle Interface operation handle.
 * @param setup Request parameters. For details, see {@link UsbControlRequestSetup}.
 * @param timeout Timeout duration, in ms.
 * @param data Data to transfer.
 * @param dataLen Data length. The return value indicates the length of the actually read data.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **setup**, **data**, or **dataLen** is a null pointer, or the value
 *     of **datalen** is less than the length of the read data.
 *     {@link USB_DDK_MEMORY_ERROR}: The attempt to copy the memory that stores the read data fails.
 *     {@link USB_DDK_IO_FAILED}: An I/O exception occurs.
 *     {@link USB_DDK_TIMEOUT}: The operation times out.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_SendControlReadRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,
    uint32_t timeout, uint8_t *data, uint32_t *dataLen);

/**
 * @brief Sends a control write transfer request. This API works in a synchronous manner.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param interfaceHandle Interface operation handle.
 * @param setup Request parameters. For details, see {@link UsbControlRequestSetup}.
 * @param timeout Timeout duration, in ms.
 * @param data Data to transfer.
 * @param dataLen Data length.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **setup** or **data** is a null pointer.
 *     {@link USB_DDK_MEMORY_ERROR}: The attempt to copy the memory that stores the read data fails.
 *     {@link USB_DDK_IO_FAILED}: An I/O exception occurs.
 *     {@link USB_DDK_TIMEOUT}: The operation times out.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_SendControlWriteRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,
    uint32_t timeout, const uint8_t *data, uint32_t dataLen);

/**
 * @brief Sends a pipe request. This API works in a synchronous manner. It applies to interrupt transfer and bulk
 * transfer.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param pipe Pipe used to transfer data.
 * @param devMmap Data buffer, which can be obtained by calling {@link OH_Usb_CreateDeviceMemMap}.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **pipe** or **devMmap** is a null pointer, or the **devMmap**
 *     address is null.
 *     {@link USB_DDK_MEMORY_ERROR}: The attempt to copy the memory that stores the read data fails.
 *     {@link USB_DDK_IO_FAILED}: An I/O exception occurs.
 *     {@link USB_DDK_TIMEOUT}: The operation times out.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_SendPipeRequest(const struct UsbRequestPipe *pipe, UsbDeviceMemMap *devMmap);

/**
 * @brief Sends a pipe request based on the shared memory. This API returns the result synchronously. It applies to
 * interrupt transfer and bulk transfer.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param pipe Pipe used to transfer data.
 * @param ashmem Shared memory, which can be obtained through {@link OH_DDK_CreateAshmem}.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **pipe** or **ashmem** is a null pointer, or the **ashmem** address
 *     is null.
 *     {@link USB_DDK_MEMORY_ERROR}: The attempt to copy the memory that stores the read data fails.
 *     {@link USB_DDK_IO_FAILED}: An I/O exception occurs.
 *     {@link USB_DDK_TIMEOUT}: The operation times out.
 * @since 12
 */
int32_t OH_Usb_SendPipeRequestWithAshmem(const struct UsbRequestPipe *pipe, DDK_Ashmem *ashmem);

/**
 * @brief Creates a buffer. To avoid resource leakage, use {@link OH_Usb_DestroyDeviceMemMap} to destroy a buffer after
 * use.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param deviceId Device ID.
 * @param size Buffer size.
 * @param devMmap Data memory map, through which the created buffer is returned to the caller.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input parameter **devMmap** or ***devMmap** is a null pointer.
 *     {@link USB_DDK_MEMORY_ERROR}: The memory mapping fails, or the memory allocation of **devMmap** fails.
 * @since 10
 * @version 1.0
 */
int32_t OH_Usb_CreateDeviceMemMap(uint64_t deviceId, size_t size, UsbDeviceMemMap **devMmap);

/**
 * @brief Destroys a buffer. To prevent resource leakage, destroy a buffer in time after use.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param devMmap Destroys the buffer created by calling {@link OH_Usb_CreateDeviceMemMap}.
 * @since 10
 * @version 1.0
 */
void OH_Usb_DestroyDeviceMemMap(UsbDeviceMemMap *devMmap);

/**
 * @brief Obtains the USB device ID list. Ensure that the pointer parameters passed in are valid. To avoid excessive
 * memory usage, the size of the requested device ID array is recommended not to exceed 128. After using the struct,
 * release the memory of its members; otherwise, resource leaks may occur. Besides, make sure that the obtained USB
 * device ID has been filtered by **vid** in the driver configuration information.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param devices Device memory address, which is used to store the obtained device ID list and quantity.
 * @return {@link USB_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_DDK_NO_PERM}: The permission check fails.
 *     {@link USB_DDK_INVALID_OPERATION}: The USB DDK service connection fails.
 *     {@link USB_DDK_INVALID_PARAMETER}: The input **devices** is a null pointer.
 * @since 18
 */
int32_t OH_Usb_GetDevices(struct Usb_DeviceArray *devices);

/**
 * @brief Performs a USB control transfer. This API works in a synchronous manner.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param deviceID An ID for the device to communicate with
 * @param setupPacket Configuration parameters for the setup packet in control transfer requests
 * @param data A suitably-sized data buffer for either input or output based on the direction bits
 *     within bmRequestType.
 * @param timeout Timeout (in milliseconds) that this function should wait before giving up due to no response being
 *     received. For an unlimited timeout, use value 0.
 * @return on success, the number of bytes actually transferred.
 *     {@link USB_DDK_NO_PERM} Permission authentication failed.
 *     {@link USB_DDK_INVALID_OPERATION} DDK Service not initialized. Please invoke {@link OH_Usb_Init} to complete the
 *     initialization process first.
 *     {@link USB_DDK_INVALID_PARAMETER} The setupPacket or data parameters are invalid.
 *     {@link USB_DDK_TIMEOUT} The control transfer timed out.
 *     {@link USB_DDK_IO_FAILED} Control transfer request I/O exception.
 * @since 26.0.0
 */
int32_t OH_Usb_ControlTransfer(uint64_t deviceID, const struct UsbControlRequestSetup *setupPacket, uint8_t *data,
    uint32_t timeout);

/**
 * @brief Queries and returns the list of non-root hubs. Ensure that the pointer parameters passed in are valid. To
 * avoid excessive memory usage, the size of the requested non-root hub ID array is recommended not to exceed 128.
 * After using the struct, release the memory of its members; otherwise, resource leaks may occur.
 *
 * @permission ohos.permission.ACCESS_DDK_USB
 * @param nonRootHub Returns the list of queried non-root hubs.
 * @return {@link USB_DDK_SUCCESS} Query operation successful.
 *     {@link USB_DDK_NO_PERM} Permission authentication failed.
 *     {@link USB_DDK_INVALID_OPERATION} DDK Service not initialized. Please invoke {@link OH_Usb_Init} to complete the
 *     initialization process first.
 *     {@link USB_DDK_INVALID_PARAMETER} The parameter nonRootHub is null.
 * @since 26.0.0
 */
int32_t OH_Usb_GetNonRootHubs(struct Usb_NonRootHubArray *nonRootHub);
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif // USB_DDK_API_H+QxY]pLڦ;	0,$$nM&$'	2L3)%he-ӟlF+`cג%j&of}k'{>嵏=wjZ6?}=gscx]RhZLt$'ĕ)9R"rdLxAיǹh$	v{~س7L^
ɱvM:G^Z&F1q4 dbN^q+Jh@FM{st]7ttWW?{q;l?yw O,R4bLa|45_#ky%宻$؋`PNŤ/Ǖ-y|ZيRW&{djћRC"bGmwꬶܙ
 &kMY$m/<X0sٷ>aV'/UC* ~xZ". >.-mH}ĥA9QBoRp}Ma~MJ[--EH (G"&_b|U`sqKnm}dklϙ/ݤ{FD1'DLb^szfRbBV].0Q2g9HUdnB.kUQr+|]o'SJВkuԢ'm*ۅXBR>R! .yzǋh(_'K="D	[yqfΓ7.0ÇZ(* 
	 1"_\!ΥGMVo:oOZluY(AnMo!/}Ty^ tBJGhf|v4IAkʡi`ԤX;].z
VVБfHŃ.X0dk?9[N@: fO^$ra]FWg+횂%GPL\
INfmĶ/ICqZ?G:!ZőnZ
ڷ ySG\@4:#M]3Yxť1yE`m)w)AjD?JO$&ex*BdhD(n K|1+}UzrZc-wQ4T.;,/H(4wuĂp"^+2=M6-cWG(t	7W^W\Uj+ɯ5:<
5rd5"EƕV^jw,b
2XTASi_ƁR7GV6Z-115N[ݥ_[%x$?^5z`oaTjl<qZ}a'֋@퟇ \epQ,n?/+z^&J2I8^p}SniPsƨtt}bu1ʼ7ߔ!!L[C1Пzm)a}JIY*'qDV.h猋t;^s	JI Rr@+oN>ȥykN1sy=DokL$	vxfc%s[.syxfrRL66 Z

rC4A{|Ba.
X"%] 
h i765Ex* @##%:q
\	;#/?SG
ũ%}"u&QrK;axpZ+q4;8;`%MN ?nf\ԡV*vZ1M G[ 3{Z7=kc
8jb_g<V
.f|u9ڔ9R'w#7b£E}[gV1O;y	20af&aS_<]Q2	3<qeíѰ2{qQ^eiZnb4|@bD@x +n s=(ǁ=ZhljszqHWD|<?XWeL!n`Mv:y*mVe(,~WRskoja6OoЪp«ވ: 9z,jH@tlQH~Ȃj򖧲:?\|sS4ñz5pTaNګE4c=8lnhl6Ъ7Joud5x+ }}FAILED`pFAILED`p$|Rpx͗MlEU&Nl؍S4#5!iHuІ4=Dixw^_]MJ*. Ay+'nzh8p!Ux:ΗPMaO{o~wW+2)8]7
R9bCz0ciLIQ\"3Wd
nYQ0́zOHn୚z&m!*SusPEj˺mtͅѝFÇw[7a~8#ulYs=[%as-b$ǈyNԤT)(yYd~{oTO1Ҵx>ϝ`Ɨ:d;xt{@CgSnR$Zt2U
Tu3jElEX:^oMIa7fp(Ȣp;VGwö.v*pCYFkxd39F|ܹ`I7sY7ث5AG|=UQrYVm#bEn*-Ȫlsfc@E5$b˭~	t
!|\j"tqS|9l6ϸ].h\[Dt}@5,PO ْG`P1o1.0mj0+}rxzLeHaV<L.>agE'APt5]+n*W͹CO0b*_Ĩ(jwiqxf`3$`Mtoqpr!lN}-e_Z5Y)ؤH^IyW
Kv"F~uhFh؅sVn16肮
fp>f
|HZT/kD  R/f	5Sf}MN\AY:ԀG	;CǎU44^1dm2K(<xf/xz.Nb<𯰞,gM[:I_>~PԱB|'\.=6wi	iNSÁx.yެ4I,ݬvU9la'_3NXBn'C6<>~rwYVŕ7~n&o=W-,CQdPӤg8qax)`be45
qX45o lpx;[rd8FY+ $rKx]T_L[eϥm212٬IH`"NٜD35B.Aap?Imu`Kc4=⛼x &7M~߹s~s{{QUb!/	^$"_ȅ7O3s	HBqｸd"	T
u	Wxp:1IZX]p=b;W͙SFg`+E.9p.;~*hrDUl}u{/D^},yDoA<"QxI@Ry-znU
~`e#x'JYP,0sOC[Z~QQv[POԽ<oJK`d{0@M%;ߡ[9BG'2QU젖]-M/PF-5g?eu:[\gѴ,48q>'fzs})WX<7_kq}-41=86|l@˦]u;556j/򽤋yb3*M,2U&{S
+ߢ\3[|^SZ>b7ť4MBfٹ(Vq<`AQ:u K%HЍ[as,!B#PֲbjnLMgPG6־,._ײ4:6$Cyۤ!?][Ge6=3y71}hH+H#,4I4==4[ǌ|hz谞NkMd9\{uc=\-a74t.i$T89ʥR+wza.W@|b{ +4/bS2鍇Zp
-GA;Rk%g	\=?vo^h|R}/4vr?nw+w(m
7__U?(gl84p*\_3JZ=x;\hdGeY, Q`:{6gg
Znms$)ft&lQS2f1A݌pLn-e2nR`'3n?nͬ֌n7Glc,hn IClx }}9/xL}|YVOL  3v0B s W	{ Wm 9( | 9=0#SY 9=9p 9=9` 9= 9=#U 9& 9&+*x W. <&1] ?44[e direction of the transfer is inferred from the bmRequestType field
 * of the setup packetQ6OH_Usb_Init79y and return;3<w<|8E%8,OH_Usb_Init to complete theN9&2%=Bx |{Yv;9L"j6$x ?{{}!3	S'8<!3p_!3	̓t!9P	{!9P!9(ԓ!9P\	!ij!rx]Tp!rx!$/?!9&!9*!9P.!91f!9P@4	Ox" uu%%C&'+((P9Gx[ږ,n
˵jx'Z  r	Cix6udn,6HʼUSB DDK
 * 083ýӿڳɹ
 *!7'$ USB DDK ʧܻڲ
 *QȨ޼ʧܡ
 *Q#ڴʧܡ1ͷUSB DDK
 * 083[GͷUSB DDK
 * 083ýӿڳɹ
 *QȨ޼ʧܡ
 *!7' USB DDK ʧܡWȡ豸
 * 089	g豸IDҪȡ豸
 * @param desc 豸ϸο{@link UsbDeviceDescriptor}"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'usb_ddkʧܡ
 *!7(descΪָ롣1YFͷʹͷڴй©
 * 089config ͨ{@link }õ"-_,ȡʹʹ{@link1%}ͷڴй©
 * 089	豸IDҪȡ豸
 * @param configIndex idӦUSBЭеbConfigurationValueֶ
 * @param c[onfig USBЭжı׼ԼĽӿͶ˵"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(configΪָ롣
 *!7$
I/O쳣
 *Q#ڴʧܡ1krM;

use <b>;

release;

a;

descriptor;

* @brief;

To avoid memory leakage;

.;

* to;

after;

/**
 * @brief ӿڡ
 * 089	豸IDҪ豸
 * @param interfaceIndex ӿӦUSBЭе{@link bInterfaceNumber}
 * @param interfaceHand3le ӿڲӿɹ󣬸òᱻֵ"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7( interfaceHandleΪָ롣
 *Q#ڴ泬ơ`42dͷŽӿڡ
 * 089@ ӿڲҪͷŵĽӿڡ"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(
󡣒1&7Releases;

the;

/**
 * @brief ӿڵıá
 * 089@ ӿڲҪĽӿڡ,?ӦUSBЭнӿ bAlternateSettingֶΡ"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(
󡣒 ȡӿڵǰıá
 * 089@ ӿڲҪĽӿڡ,?ӦUSBЭнӿ bAlternateSettingֶΡ"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(settingIndexΪָ롣1\&Ϳƶ󣬸ýӿΪͬӿڡ
 * 089@UӿڲҪĽӿڡ
 * @param setup صĲϸο{@link$J}
 * @param timeout ʱʱ䣬λΪ롣
 * @param data Ҫݡq">ʾdataݳȣںغ󣬱ʾʵʶȡݵĳȡ"$ýӿڳɹ
 *QFAILED} ȨУʧܡ
 *!7'USB DDKʧܡ
 *!7(JsetupdatadataLenΪָ룬datalenСڶȡݳȡ
 *Q#ȡݵڴʧܡ
 *!7$
I/O쳣
 *Q-	ӿڵóʱ3b &Ϳд󣬸ýӿΪͬӿڡ
 * 089@UӿڲҪĽӿڡ
 * @param setup صĲϸο{@link$J}
 * @param timeout ʱʱ䣬λΪ롣
 * @param data Ҫݡq"ʾdataݳȡ"$ýӿڳɹ
 *QFAILED} ȨУʧܡ
 *!7'USB DDKʧܡ
 *!7(setupdataΪָ롣
 *Q#ڴ濽ʧܡ
 *!7$
I/O쳣
 *Q-	ӿڵóʱ3$Jִһ USB ƴ䡣ķð bmRequestType ֶνƶϡCD 豸ͨŵ ID
 * @param setupPacket ƴðò
 * @param data һ㹻СݻС bmRequestType еķλȷݴ䷽
 * @param timeout ˺ӦδյӦµȴʱԺΪOλܷ޳ʱʹֵ 0
 * @return ɹʱʵʴֽ
 *1
Ȩ֤ʧܡ
 *A#P96δʼȵ OH_Usb_Init ɳʼ̡
 *A(!setupPacket  data Ч
 *11ƴ䳬ʱ
 *#ƴ IO 쳣:%)|`use;

/**
 * @brief ͹ܵ󣬸ýӿΪͬӿڡжϴ䶼ʹøýӿڷ
 * 089/+ҪݵĹܵϢq5ݻͨ{@link 5}á"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(9pipeΪָdevMmapΪָdevMmapĵַΪա
 *Q#ȡݵڴ濽ʧܡ
 *!7$
 IO 쳣
 *Q-	
ӿڳʱ31-NXڹڴ淢͹ܵ󣬸ýӿΪͬӿڡжϴ䶼ʹøýӿڷ
 * 089/+[ҪݵĹܵϢ
 * @param ashmem ڴ棬ͨ{@link OH_DDK_CreateAshmem}á"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(
7pipeΪָashmemΪָashmemĵַΪա
 *Q#ȡݵڴ濽ʧܡ
 *!7$
 IO 쳣
 *Q-	
ӿڳʱ\1FٻڻʹʱٻԴй©
 * 089|5{@link 5}Ļ"-5>*ڻʹ󣬵{@link5%}ٻԴй©
 * 089	>豸IDҪ豸
 * @param size ĴСq5$Ļͨòظߡ"#ýӿڳɹ
 *QȨ޼ʧܡ
 *!7(*devMmapΪָ*devMmapΪָ롣
 *Q#%ڴӳʧܻdevMmapڴʧܡ`4ȡUSB豸IDб뱣ָ֤Чģ豸IDĴС鲻128Առڴ档ʹṹ֮eͷųԱڴ棬Դй©ȡUSB豸ID
 * ͨϢеvidɸѡˡ
 * 089<s õ豸ڴַڴŻȡ豸IDб"$ýӿڳɹ
 *QȨ޼ʧܡ
 *!7'USB DDKʧܡ
 *!7(devicesΪָ롣7]ѯطǸб뱣ָ֤ЧģķǸIDĴС鲻128Առڴ档ʹ4ṹ֮ͷųԱڴ棬Դй©
 * 08DFõķǸڴַڴŲѯķǸIDб"$ѯɹ
 *QȨ޼ʧܡ
 *!7';DDKδʼȵ{@link OH_Usb_Init}ɳʼ
 *!7(nonRootHubΪָ롣:\f/x[tdD ٫̪PYZcJKF 	_x[:-vC$dYa,W00n2PNY!hFalB-a|cNn6e2t7lINyPr
R79A{<˵*,q86gvMε
  0=7n1xkKJQGQ= /bxQ:t
kU1nnPf<2`3fyR j ^x8m<'jNN`P3b>Y>JĜĒɫ,7ff|@w0ds!qOx7GOWZĒDOԊ2x2D75X!'37d3uBZE%E
EEE6*3a(k9E|d^Y	iΓ
uUP_Zl53}t%̓T'բ<T2Q}ש` ax{4rFYFFT6;sLv  s5&x;#r?[Rlʓ٤&jOSle!(g!T]"0ę0<!8UQvl\,]{:*fYL m'AZ	x;9-vFXQ.}--.-4̼
,M$SR2SB lĢJ&W.g%h6j.Nb⒢xG>-zMk

ZYE&O1 
c1xy8r?7ϱYM6cp&ɧǥP`h2Y]tr$?OPjNjbqjp~iQfsPFdMɨL> فӂY[V"]n	&l?(N*ÿ7v}PUfK] n6xy:z?7ϱYM6cp&ɧǥP`h2Y]tr$?OPjNjbqjp~iQfsFU ZI-x9zC,>O.d>2y,
X˄RKJll2&_VHTKMO,,KU(K)MU/H-*,N@h269z<='R|d8oH9⌓7|ߊdƓ&	ېJFH|@l.%7C5sn^'%BzMW䞼G̔뤎s)h)86+0N4tP̮L9k%ՀWwh3 2, xi=aw͂Ԣ<b=_588;>4i2xbVt+M|ShM<ڛخ0c33ո7<Lf2?%4cC`.):^AVb7ۊ'Mf+
=yw-t0JL~-!0y# A :xeC#OJJv|IeAj^29&KI,MUH,JMQ 2*'+Kkx;&:'M^(h42WxfIDbwi!jWAbfcW -{x!b3xCNf^BhSw|pkpp2z\
Z
0եV (783?O!9#59[!-13'5E!H!9?//5D8I!%%[8,39IEf^IjQ^bBjQ P79KRs錴t$n'0/%?513߯O1-155V!%8Y!X!4'gr#쫙sS=e̃92`%&z$"d&908R3u&&Z?R8SKJ2=RR+P򩕈.i0 91%$I-.V(H̋C8*U!?(PւiAAA@WU_ZHߊ(ˣomNA$\Ye(!RJď&LDfef"Xp8,EvĠ˂4DQ'Ĝdf.!09]ZhsF 	xq6bCDvfKQfYjKjYjN~Anj^wfj !x;-vZ*9 ?x;-vZ*9 ?x;Y/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup USBSerialDDK
 * @{
 *
 * @brief Provides USB SERIAL DDK types and declares the macros, enumerated variables, and\n
 * data structures required by the USB SERIAL DDK APIs.
 *
 * @since 18
 */

/**
 * @file usb_serial_api.h
 *
 * @brief Declares the USB Serial DDK APIs used by the host to access the serial port device through the USB port.
 * 
 * @kit DriverDevelopmentKit
 * @library libusb_serial_ndk.z.so
 * @syscap SystemCapability.Driver.UsbSerial.Extension
 * @since 18
 */

#ifndef DDK_USB_SERIAL_API_H
#define DDK_USB_SERIAL_API_H

#include <stdint.h>
#include "usb_serial_types.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Initializes the USB Serial DDK.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK initialization fails.
 * @since 18
 */
int32_t OH_UsbSerial_Init(void);

/**
 * @brief Releases the USB Serial DDK.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 * @since 18
 */
int32_t OH_UsbSerial_Release(void);

/**
 * @brief Opens the USB serial port device based on the specified **deviceId** and **interfaceIndex**.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param deviceId Device ID.
 * @param interfaceIndex Interface index, which corresponds to {@link bInterfaceNumber} in the USB protocol.
 * @param dev Device handle.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. The possible cause is that **dev**
 *     or ***dev** is null.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_MEMORY_ERROR}: The memory is insufficient.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_DEVICE_NOT_FOUND}: The device or interface is not found.
 * @since 18
 */
int32_t OH_UsbSerial_Open(uint64_t deviceId, uint8_t interfaceIndex, UsbSerial_Device **dev);

/**
 * @brief Closes the USB serial port device.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. The possible cause is that **dev**
 *     or ***dev** is null.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_Close(UsbSerial_Device **dev);

/**
 * @brief Reads data from the USB serial port device to the buffer.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param buff Buffer for storing the data read from the USB serial port device.
 * @param bufferSize Buffer size.
 * @param bytesRead Number of bytes that are actually read. If the block mode is set, the number of bytes that are
 *     actually read is returned only when it is equal to the value of **bufferSize**.
 *     For details, see {@link OH_UsbSerial_SetTimeout}.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible causes: 1. **dev** is a
 *     null pointer.
 *     2. **buff** is a null pointer. 3. **bufferSize** is **0**. 4. **bytesRead** is a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_MEMORY_ERROR}: The buffer address is invalid.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_Read(UsbSerial_Device *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesRead);

/**
 * @brief Writes the data in the buffer to the USB serial port device.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param buff Buffer to which the data of the USB serial port device is written.
 * @param bufferSize Buffer size.
 * @param bytesWritten Number of bytes that are actually written.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible causes: 1. **dev** is a
 *     null pointer. 2. **buff** is a null pointer. 3. **bufferSize** is **0**. 4. **bytesWritten** is a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_Write(UsbSerial_Device *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesWritten);

/**
 * @brief Sets the baud rate for a USB serial port device. If the parameters of the USB serial port device are set to
 * the default values (the data bit is **8**, the stop bit is **1**, and parity is disabled for data transfer), you
 * only need to call this API to set the baud rate.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param baudRate Baud rate of the USB serial port device.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible cause: The input **dev** is
 *     a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_SetBaudRate(UsbSerial_Device *dev, uint32_t baudRate);

/**
 * @brief Sets the parameters of the USB serial port device. If the parameters of the USB serial port device are not
 * set to the default values (the data bit is **8**, the stop bit is **1**, and parity is disabled for data transfer),
 * you only need to call this API to set the related parameters.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param params USB serial port device parameters. For details, see {@link UsbSerial_Params}.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible causes: 1. **dev** is a
 *     null pointer.
 *     2. **params** is a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_SetParams(UsbSerial_Device *dev, UsbSerial_Params *params);

/**
 * @brief Sets the timeout interval (ms) for reading data reported by a USB serial port device. If this function is not
 * called, the timeout value is **0** by default, indicating that data is returned immediately regardless of whether
 * data is read. If you need to wait for a certain period of time or data must be read, call this API to set the
 * timeout interval.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param timeout Timeout interval for reading data from a USB serial port device, in milliseconds. The value range is
 *     - (0, 25500]. The value is rounded off to the nearest 100 milliseconds as the actual timeout interval. For
 *     example, if the value is set to **12321**, the effective timeout interval is **12300**. - **0**: Data is
 *     returned immediately. - **-1**: Data is read in block mode. That is, data is returned only after data of the
 *     specified length is read. For details, see {@link OH_UsbSerial_Read}.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible causes: 1. **dev** is a
 *     null pointer. 2.timeout < -1 or timeout > 25500.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_SetTimeout(UsbSerial_Device *dev, int timeout);

/**
 * @brief Sets flow control parameters. Flow control is used to manage the data transfer rate during communication with
 * the USB serial port device to ensure that the sender does not send data that exceeds the processing capability of
 * the receiver.
 * If flow control is required, call this API to set flow control parameters. If this API is not called, flow control
 * is not performed by default.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @param flowControl Flow control mode. For details, see {@link UsbSerial_FlowControl}.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible cause: The input **dev** is
 *     a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_SetFlowControl(UsbSerial_Device *dev, UsbSerial_FlowControl flowControl);

/**
 * @brief Flushes the input and output buffers after the write operation is complete. If a large amount of data is to
 * be transmitted to the USB serial port device, the data may be buffered in the kernel for transmission. If the
 * application closes the file descriptor or exits before the data is completely sent out, some data may be lost.
 * If the data is not sent out, some data may be lost. You can call this API to ensure that all data is sent before
 * subsequent operations are performed.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible cause: The input **dev** is
 *     a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_Flush(UsbSerial_Device *dev);

/**
 * @brief Flushes the input buffer. The data in the buffer is cleared immediately. During the communication with the
 * USB serial port device, especially in the debugging phase, disordered data packets or other exceptions may occur.
 * You can call this API to clear these exceptions to restore the communication.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible cause: The input **dev** is
 *     a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_FlushInput(UsbSerial_Device *dev);

/**
 * @brief Flushes the output buffer. The data in the buffer is cleared immediately. During the communication with the
 * USB serial port device, especially in the debugging phase, disordered data packets or other exceptions may occur.
 * You can call this API to clear these exceptions to restore the communication.
 * 
 * @permission ohos.permission.ACCESS_DDK_USB_SERIAL
 * @param dev Device handle.
 * @return {@link USB_SERIAL_DDK_SUCCESS}: The operation is successful.
 *     {@link USB_SERIAL_DDK_NO_PERM}: The permission verification fails.
 *     {@link USB_SERIAL_DDK_INVALID_PARAMETER}: The parameter verification fails. Possible cause: The input **dev** is
 *     a null pointer.
 *     {@link USB_SERIAL_DDK_INIT_ERROR}: The DDK is not initialized.
 *     {@link USB_SERIAL_DDK_SERVICE_ERROR}: The DDK service communication fails.
 *     {@link USB_SERIAL_DDK_IO_ERROR}: An I/O exception occurs.
 *     {@link USB_SERIAL_DDK_INVALID_OPERATION}: The operation is invalid.
 * @since 18
 */
int32_t OH_UsbSerial_FlushOutput(UsbSerial_Device *dev);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // DDK_USB_SERIAL_API_H
/** @} */
o_P4x[V_	gLO6f`<jqJAN2n!9O`u3όP䭢BX$3SRK2ʋ2KJRJ''
m6%Uɖ$d9Jl`6oh`(6O1 N'
Rx UwwP:u:C8C8CC8C8C8kC8a$iC8"+C82[C87aC8T@x ww*C8"+fp.xWMSE.&& " o ,P(ʖAI]L=OФ^,oF=x'sJ<Է{f]@v߯~/*?mԵܛPQJ U"T8O$>T0KCg?Tr&;}coC @IxN:[S~3l1T.1vx^z^B[GGA!0U+`]iwF?A(7j+&T,)p(_Rs@ĜȨ\BIbUpuzZwDfXY)8$TΘI#o	ܾ+ӽA׹>4&#c\T.Oi3t#tsye+ˋװF~ױտ?IzwҒD-{/*J	wČp({Ù3oMlis\5 #1	,qY,Fʶ.Q$V%mg1ʢA|t9GExn@V3w5fvg=j0eSQ`yz
>/eESGU_V%d.M&q]a,݉8MoX.%I"BVArg$:H^zs"<8{_ǈ/X؃"\0ӱ|aHU##tc:*]0*p87R)&䖆?W'V,Xj(}&)4z9m៴3b>C (tDގ{hV!@R4*؃+˯ȐjG	wb
uݼC.Sygz."ݗLنBKu! gW''(@쏑Vy<.j"SțDO-=d;L<糗Lɒ][{W-VrYm4^OLj)杁	D~=옞z>pff?#UkQxX]Lq4c8M{kǩkҦM+kiU)^'m"k?xŰ?g.l+UkҹwfS{avXA6vs=?ιwͶWPVVQ*h/߶{箈}hOE[BN:/qcb7+s,)饾qOVac]p/wtz^y㯢? u0Y|ubw},6~|ҁ|	P_TFBtOU JdL鷷:lVd#4/R8$贻I];3~)7D甙&ň<rP70.$8M.l@HI$L4ĪoWqk
͝QX"PS$uxҵHttBd#;<ȷVozgd	Bվs;K56oNhƇL@IUWp}gWJ2+ΞW	.0I!d5*uW-OϿ:O9⋄N~xa:),IQWH@HQ֔DgIM|H1^uM4R&mĐ i:=KS!MYvfm"4qKv\:>xYd"PFo(͇[ϰY<rC1?7ȼ)_	l@2!~[*PUwašZ"W#Yy\Wx/蘀P||V߳1Q.=]{=
>9RZnw8l:XqO3XTʿ&B~V	N<%P?){ Z憔4yAZ;7:",>>?,l'XW5"̀U1.ijeO<kMV<:'mϾ>u@6QFuEj$¨		#A{%jA %M[[쭿'\[z0P'~|MV%2>]BI`~8ɻM(;@dϺ4u/?]J^M@g@NiYЖQ63Ơ;]CqP5C417ԼS\Rk":_719WlmddI|g!ԒwQ09(AU<)
," BY,h7~y[p[Z.	z {K"?\.gNO?-=@Fr)
Jΐxt`S C"^.
Ejfg63*"8KE.0-`3<=Wk臟=`Y QMW<*Co־C)T[O~?91Ns(L [<uQ{e\f`
.<-ȸF"SV,HᣍImz;րǏsE]ڳb_]v6[?؛H'v
kjj^nH!Sȫlɻ<9qAؗMZ@;!  <&E'2PP%'jHZPz.ٸRn;i&]OI E.$6`_*Ҡx:&tŧSw͒&<F ܈(7pgwZ޾5FLJ5K.>)0b	Ӻ0fÐ}  cn)fRHA I=`ZC em4,9%-8=jkx-e )22
|Ofn4OrnVřwOARrR??;dۖӦiST~ {Z^F_'5-5xdEf,}x2N\pB{s{9Hy6g3& #y3<'Wr"H*ns6ѕg9Ko5#,bV /.xW}Lg\&(*#8gKܘA:݌)#J6?GI
4d5NTkig)^ǁcaEmXk .`fG{|~o.&#?;{Ң2:kߧJLem\6X|+c句	]!46u+MS)TcBL^o֧^˥R|`'5;-^4Rwэ^5Z=Q-Vᗊbtaa լsVQ%@PXHzW;^UJ&UEELsGie,1J+>&_;^~T[}r1%xMjGMX6.:PYI䔝FQocK7<珈dE#$7HV|`R0}vԻ'
N#12F -y+YcB)Isghߝ(^$!HP$_YEvzqHHt	ы?2k3IN:/)!(D_mNOYxauFT7g5coh	;e.,u]N6s5#Cd021C,åkm#Kla	n\fQu֤,[(s݋"=qy9
DSr"_qBԚ=Ďi^iLlWMY
F )ѮEj]{Th+VT$ł]4U}Z(LިjhIOfYѰ^$[1 
}:-$Ҁ 6+Ǹd(q}nmݱ,c-Ѽ~dE(9q5tA31ƥ	C\}nξR	nD0;5%fMbn;Q>!sҫD
@lBgP0p]~1kE$hʌʒ԰pZv- fNq,訟5HĞH'KNrY;'55Ĭt /dbMll#vhC6iUHrg/yxwkr6Sj4mAdh:D]qrl{BjV՜Ѩ'  ICDvm.~@?"e6 '7.Z=6[pYg_Y뚞z{QHf./X)[瘣K)	lY8_a1[[3=W[D.,3L5Zngӡ24sllO@G-To Rmv}B.)`eEMuet][6,x]^jP(Tw!b~Gƌ;Tk!K~ڃafLrfI(õj6Lܺ&SyQpM-á3I;FqZ!+7ӡ	-wk4m#.p`
}1EІvc+#NBa誥h:ya2	,z=Q|{SJ	ccQQimaaMul6s3bw;q$ۈ4my[b'O_6x- wwwhose data is written in.v3-k%]<x wwto.|-(k%	x3vf6[% 
l0x5vub$ +Ӹx7/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup USBSerialDDK
 * @{
 *
 * @brief Provides USB SERIAL DDK types and declares the macros, enumerated variables, and\n
 * data structures required by the USB SERIAL DDK APIs.
 *
 * @since 18
 */

/**
 * @file usb_serial_types.h
 *
 * @brief Provides the enum variables, structures, and macros used in USB Serial DDK APIs.
 * 
 * @kit DriverDevelopmentKit
 * @library libusb_serial_ndk.z.so
 * @syscap SystemCapability.Driver.UsbSerial.Extension
 * @since 18
 */

#ifndef DDK_USB_SERIAL_TYPES_H
#define DDK_USB_SERIAL_TYPES_H

#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/** 
 * @brief Defines the data structures (opaque) for the USB serial port device.
 * 
 * @since 18
 */
typedef struct UsbSerial_Device UsbSerial_Device;

/**
 * @brief Defines the return codes used by the USB Serial DDK.
 * 
 * @since 18
 */
typedef enum {
    /**
     * No access permission.
     */
    USB_SERIAL_DDK_NO_PERM = 201,
    /**
     * Invalid parameter.
     */
    USB_SERIAL_DDK_INVALID_PARAMETER = 401,
    /**
     * Operation success.
     */
    USB_SERIAL_DDK_SUCCESS = 31600000,
    /**
     * Invalid operation.
     */
    USB_SERIAL_DDK_INVALID_OPERATION = 31600001,
    /**
     * Initialization error.
     */
    USB_SERIAL_DDK_INIT_ERROR = 31600002,
    /**
     * Service error.
     */
    USB_SERIAL_DDK_SERVICE_ERROR = 31600003,
    /**
     * Memory-related errors, such as insufficient memory, memory data replication failure,
     * or memory application fault.
     */
    USB_SERIAL_DDK_MEMORY_ERROR = 31600004,
    /**
     * I/O error.
     */
    USB_SERIAL_DDK_IO_ERROR = 31600005,
    /**
     * Device not found.
     */
    USB_SERIAL_DDK_DEVICE_NOT_FOUND = 31600006,
} UsbSerial_DdkRetCode;

/**
 * @brief Defines the USB serial port parameters for the USB Serial DDK.
 * 
 * @since 18
 */
typedef struct UsbSerial_Params {
    /**
     * Baud rate, in bauds.
     */
    uint32_t baudRate;
    /**
     * Number of data bits.
     */
    uint8_t nDataBits;
    /**
     * Number of stop bits.
     */
    uint8_t nStopBits;
    /**
     * Parity parameter setting. **0**: no parity; **1**: odd parity; **2**: even parity; **3**: mark parity (parity
     * bit always 1); **4**: space parity (parity bit always 0)
     */
    uint8_t parity;
} __attribute__((aligned(8))) UsbSerial_Params;

/**
 * @brief Defines the flow control mode for the USB Serial DDK.
 * 
 * @since 18
 */
typedef enum {
    /**
     * No flow control.
     */
    USB_SERIAL_NO_FLOW_CONTROL = 0,
    /**
     * Software flow control.
     */
    USB_SERIAL_SOFTWARE_FLOW_CONTROL = 1,
    /**
     * Hardware flow control.
     */
    USB_SERIAL_HARDWARE_FLOW_CONTROL = 2,
} UsbSerial_FlowControl;

/**
 * @brief Defines the enums of the parity parameter used by the USB Serial DDK.
 * 
 * @since 18
 */
typedef enum {
    /**
     * No parity.
     */
    USB_SERIAL_PARITY_NONE = 0,
    /**
     * Odd parity.
     */
    USB_SERIAL_PARITY_ODD = 1,
    /**
     * Even parity.
     */
    USB_SERIAL_PARITY_EVEN = 2,
} UsbSerial_Parity;

#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // DDK_USB_SERIAL_TYPES_H
/** @} */
NVx;!DfϘm,8y>W,֓7JMv`-ؼ13# B.@Ab<QyZ,7&x}n@ƅ86)$M:U%m7	J$*
=+ٻfw4ƾHQ9q#g^7@ʉݴ)gowo54DBAZdu9S;zXڂÐ"iDA.N 	3mnu.J0~nA0JI93jU$؄ԅBaMY91b	9JE~"ZGaC<^M6ZӘ؜(IyΜ{]~)$vb Ze3{7L!g5uu橺_'4ƕяX[p&5B(,VB>:AIB| /=(33SWu/AYh%MA	d@~Tl<!g.	V'ALT̉)EٻX&n$A1ꤦny>6S7Y^rXdvKU
ψpDu{y+cg`WuC/TJ0 [lVN -Ex< ;@p@	"3ZqWx 3
G=bx}SKoaB*-1hƝT.]4M|$5"Ca@VV7C҄7~Ds{ϙ;hJ:>aYTzV/]̇Q+qoaYX^]yq:Xk8GbXR]5GU?CPS.bT7=ccn=^]Y~I$~\lAއ+RNE"v84Tld%ȇHvOfz
˹8^ʡ	(UX\4aC$fðQ7BIsO^J{l
v܄cRs&`=ێlɥy"x˔4JrL%MJA-@Qo;y{:>u8-`iؽfi?1Ge*Tu+.$U
	ࢨ!FAtIj0!pW>	$.Fgz<d{A:,+5uq:uRö_*үGs_&C;$޿ZkInPBXBpf=۳'f;KC[v{zy j/Fo~86I.Wdx{.Lz8F,Oq =llx{.Lz	'Y8''+x/u[j.3d=Ó2{ Yv,׀=dcx ˆGfz~;"%6<ʌ t0Ix-u[j.3f=fnFFV,׀ k-Pu53#9s6HUf  bx 
)Vk;ⴤx[ێF}hL2&sx7.6dHA(%Hˊ1~ɞnIQ)Mb GCvUW:ueD4D+XmBwřL\ݼ{-]і]G⁋sqO/;|Gr**C/hlߜ27W8տ:}XH"5H\O
ɑXpsmn`9zVF0m<nF!$.xzYً _zj+~dP!6;{{5={-PPwq@
C7vYCIrn$uXis(GshiH@5=/k	k/*@M,)̝J{9ZIǝ{.<(C;+.݈<A)K7c ˓[֞N`J -qLBWĻ0Ne$,#dB;'JVsiqh܇kD.!⌿kvQ!,Ƽ2X)eF"rЊĚ3Z L.e0M<幓7$X$57Fxdm{%(0;q=7\3o3qԢP[eow&]m|yoѸzܺ߷mkf~9oƯOQ85/D?Nsa 	 SzfFK"D~Rq:OԝdSRv}6#" X2ĶIYI'xw*$
a?<2Qrw
@0!%!7tYb/ !&~ɿwwq~:*8I^^ T'nKe^AuM[Rt.q@L6V͑JlD [´q !)qmG¡$vV(Ϗ,}'H|DLNџ!y88?y/D@NAA<$콡GpPpkV2,Pjki*C|^[ْbK|I3o"eXT2p.cU\ZOɞiDT R#>[%
be$F?ڞ{ڝoY	[1Q kPz	F%;퍏HiG믒[%=WT,`G`ζ j}	p=T@֕!?@kSY,`*ئܿԗ:]aeJW7*Փ~Q׿}VW-jñzd0H B(O9lD&NJ5JbͧJ'F2ffx$Y[)Q[A8HRhD?Nsvu&-'*q#}{lbQsK!`_$%s=
~rL#s{)9Rb^/zi6]_&Z`G&|zJ~䮴k3('K,l YfKo¾HԎm1>7\S^H͠XԈw RU(AES UM/uD

+4D(AJ.+p:\)Cv4bw)աxiq}ۦWed`҂(SDߪJf;T!,AuPBb&HO<Ә7Ba ٢tlXdEZ"Gw$GsK0Y%hxR{xg1+/rڝ}!P.1#Ok86Τq֪nvS>[*mnT.9.`iF1^ksJb߯ TUVƌvRfsTD쳜
	SsT;#O7!H-%:gjZ|j :
o ,h
ܓ(ώxLi+9sĤXFM&v24Ȉ.ݱ
4Xhq劕W&-e$ډMRH>fܨآ_o<{a o!&-s1엺Rvʟ
V"A8&	_Skg`̣s2XdUp&N=OQz>)x"Q
2NB߼Tؓ  >l/{	[Pe]n~c'l&CUWXgɃ <bRʌߊzJШpJ
SNEH)QT\)"TPF#,&тt?q/v(pV*S̲{qKXv5Y/64 cb!o,*kVF73ޡ`)Ve*.Xr12K괅N#	ED=8IDBL]"j27U
K`D!rWn >]M[0ڥƍ=(V9Pfp#h܀aDSj10{f}5ܮp3
3SL4lFՊ\RneMR4SZ5)<"Y=_1|sglG0?Dt&|:r6)y'<݂i{eJmbRٛɅYa8V$x<@DzޥBW:0D)[x.oͻH-PONIV4UsůWŋX9b:rᡘ#:GCrvF-,Qdn3biW"MTKUFDP2Tgn6U"&rZw02v>PWܸ.S ,Gr`W8r{ΧK*s^[kss}`ƺUf"^slYs恪"ܩ2:6/uhG[@LJ14QK380t)[.݈Xa<i lXSqH-5xKm+J3\ܺ)u5xTPeiPsʞWu0A"|Mb ߆4c0m.sVo)9?ċtmP'
Dy^\\_]᳕t6#/jpv*	A=Sbu
cJ-űk>/8U4
(X0|E׌:R-EW6,%t~mқ+.:m6Mgh(JEYI`Q
v/䔦>h	_6hD:FW9oEoРtJb:9FRk1/+oUm$-7o`*橱
O)yvATPDsL͏"EQf@}ԲZ=ñLXB`}?gNS!MG\t9<ڬR/T}@&N@tmCEĤu5ʎB|~H[YFP(A(JȁL	iKSfp=hL"5JgZBST80+tgy(C.4Gng;2:؝~,۾I\%-/g0w	*f+^m\_Bj;O?m;ᾯ^ܩ۩Re´PVdJlmP+Eb˔&|j\VDg!06C'Sq@Wf{KASeS9s܆;1c/ma尖1nc vP+qT.%9;5t}o;/iwx;¸q;2l@&efLn|ʈo7F@$Ҭ$&_`cٜ+|dr%a*7ϓy׶y:3Ț>v\Y'+JNSl0<K6eQ@՛.1N3Il!dDo^ea3{rLݬl G4xW[lW֚׷-7=k{w8vLn*sB89zvf3 TJ*?@H	*P!xJ JCz8TbYswxx6nh7$vICהoRK5bZb&ImȊk!K.0.2.~HI7MeSeem(|G=0UqH6&P^nq_Jf(-bմ>N+N*PmMQhgjMqoS2]S^lNg#iXiIB%oDS0Ѓk>o婢3Z3$&B8|m~ՖpfS$<;6X	12aXX??j_`G2xsRa#թ٪J,fZ}c:0RE/?#]]5MV$J{cbEpŁ[
zSQxе :nԢǰ% ȸvs,#̌ؑt͢
".3|LƣhD7uB?y%yIetMD֔k6#k+nDj!RdUװ"86W#p7BgjbB<ETތ׏=s-UߤS \[ɑV!ۚ\$a>Iƹ'Af9[>zRx~~lTCnqpM[*j	KBpd,z,/ܸ\k`(<?u?++|jL[xѮm?8rH肪EYR^
a^YU߂P$כ]~x~~0hF'AoGW.򥢭G;<ۣ9B5)"<|=
=VB'P$}῔{C+7ȑz=]q9.LMFE\qVRY	i뎚TZUAҋޏIO2`a!@g/He*2îWD1/ؒL,K˰]I!!/Dg?OUӣjH96_/- pW7L$fr!*UNŒJwE&ć۫k^_w3`r42ბtʴ-PFVMK/.
5s07z	&6CsuLWŲZou UQNGs(D'n)aJ*7)JxY6ӱ;E"٤vM޲&-ě|zmXN=t,އ7E܀L5%]fOarcIUmbU/WIxPLHOBTnd<uq 0J:S?[;t 5yg,s7%t.NGdp3KF#Qdɥ^mWg{~f0[}dKO xsfVAºOQ|0e?Ń6]|"B,&:lmwH^~}sWE0y07$u{<PC̽0<mUQ<mk_<V -7K)mafwG4<6fVG){ggF˗qu,0'DnSفՃRx$ۇDwZ>>wPEWhl}BbY/=<zHz?7ׅ Z:;bU;f`9;Rv/^g'xXYP[z_]c$cB`L:_JpMpCH,	,b,<!LePJ?ONϽWWW'3L<㱬,mKz֒NM*Y$zy ?7λ۹q`nz&9im٧/vؓҹA2uws|2gmfңj]QR=J4;Kyu8D[<Ec1@?Z3awe}DGfPOHS)JO8v>UщВOQu[K3O۟򏛥{Jtk,~:ڥ]G{5~>"g{A`,<4G^אOi7HO{t(Cۗk6a,H^ֈ`Vtep
K{RX,td~9MhpJ]-\`9P.1hN:;KrCst#:	^-phyQ<p0/%l>nׅ[gI:m9Qf$߃D qًA!isQ@!t?c*ʡ)OdrrF$7oA6	QdDR'SeޭĢ$_:Nv^K24Fidו0H!yXQJ:8էɷWA_ʫjuB+K*B,9eAbQzvETG}કۗ\cמUꕡjV6Wdbλnn`b21h,j=KysQ u4uqOEiBa=(;~}30N_3&?_@W%FBzIRqB%+M(&9a|C3Cnn>ປ]Rs4@UJFÈJ)Y'"cNE%"BcyN%*9<=_ө .ˢ_Yv:;$W$8}J[c	VMcT|Gk2P69(50+Sz>[01Ϊ..H7PYr@z Be%qcts uu*MoR~Mɩˋc~BP[Yr,AYbKSU_l<y$7bY0+=mlhtC3ŕ{YUgO:	K3Ҟvz^) 1my^IKv:-DJrk8_Q;b&Ho(:\[_M艌Lԉ
,c@t]V.._L8#۔˛qauGP!̂Vw}qQ#;݂.C!~.I)tC	,b%-a`hn6& nϾh 5T]]c6.s p.NzV`MʨP;꾝dr|g$EAyb۴rK~RՐiZQ?#Z`OGvrV
5
-CYs~cr-h	u<dvNBWkTELaφil/7.t'ٟ|=q:F+@'gFQ\|C2k >geAI wHENY	"zG.ۨS	Es=&[L7vʻ5D5?ҋGWK
ؐk珛nYeUCꪺ_WU֣3̦I^	t'|QAݡ>P$S-P~Uk&nc@x!ڼ^W"E~%$9\(Bb;kdXC4
E@ԚL\^b*'jNS}hG<n#33EEB	@{Nrk OKxFҌ1?9i)ʡ6:K
Xd)/,S;[VEjnV|zhֳ):|5{[QW[[VݝOɟO&[=;;_bk]^1FYAc޲\|'ؐ?ZbwE_:οguԿ=jjMu[/#Ui'춒.۟| ԏ^ؾ,*L(L6W2!dR?ӽ`+
XCSJs(^r!	_O/u?REyCb(p+)RU!	E!4.V%:HX*SVuW",I
x".AYs!2tEEpye_S&S)tTf*75]4}gU>9SWk?k\ו>#;Y>x;xq;2l@&efLn|ʈo7F@$Ҭ$&_`cٜ+|dr%a*7ϓy׶y:3Ț>v\Y'+JNSl0<K6eQ@՛.1N3Il!dDo^ea3obݜei2feE. McJu	x}TMlE&$84ƱqҐVmҖT7 5@'z;I*AԇTqAi9@8 	Kfy7ϗ7+W?30=m6x"\ڍ-Ay`j{"ʸ.l\ق9ˆx<lÇ:%EcBo[Hug| my&nsYJmBC|b4+qW;@.91>R<"b)VEziA1c@:[6tcbd/vI"ЬL-ֹAxB[	XkBG{5RTH~ܶIkY=/H.ڒ'R#"	#U\6[+rr͠x:Y ?wBOl~O֌p=<XcLO:6j3pղMQ<UJiB*Rq΄'L%ja^hg6Y IIRp:aQu"D!!vԉFZF,SMst̼yr06!mKOFY6ӣBG|w$VL ĉ$Ro{
TlY7`J]@cVGt)wSٱ׊uE	ɡP؎U3@&͓HW0z=PDUbT`A )|p
F
=lL~љ[ϰƀPץ(ٽ;/5N>:t'z!3bY
'8S.l]9=|$'lVGe4Np?G"Oԑu{4o55JɅgGy	5zGG<4VE+!E HoYEk5(HǑU.#+SO9w}nt.6j˅7+CŶ`_T5-Yl7=0Tz%>j#|&JMcVE3'[bXWg<րn#gNgsuߟz:Oqw*̵Հ3N-nF #{xqCXՌ2	ldbLnڬýƑǗln3obnRH02d10s)
W`6LܣƵ+\*u͎ 	}g9SCi57uJ?X5&@"#,r!
/ZPQ)W;p/s` D]]Qx{quIF%M~.oB" rIHxXKlU7cN$/mqlniB@i( xx' G	Q	)(+$@羙y;)A&9so|toz\oJ-ʋF9e!FδwEPe\ĲJΐp8q7<aV鼎59|wLVq<CšM)ryZZ.T|قHjK
J ~kpZI\@Z'˭n>h}xPer	ζCц\N6 hK\hkefFH-}*hPVXM N%}aV6ϋB꼡
{>w߈v9\O 6\'] . ~O,4j:5#,|I3$l2S%F.&9bȲ5c4Y	F#AT^бxݼHX%쳛Ll\	=SdᎱXQ%v,yr-|5!OwO2&uȮNwEx*EyeZ+`-KvF	3 UQtT5nYLuAGdlŧ%^5*tE-WݓAjH,VΫ.%wQF`4ȋ2uaD d='#ԃ,|]@BxŒ"/kk].a-m+شŉ(*%ZmQMyq13@HP1tE捄_^hYc= X"4\bB(@BGꀾ	0/+S۹HP1<듹en$a2ΌbdQ=S'?c.HEG?@|n'EBނIt  1SPY7bRJ	\kO-a7s:S1tZ\ZԨ,vڬ/wXfnq3PMUGk`'ngjԠ
yP'Rْ|AqT5S-ZoPG(YtZyInQŞ\=''$h26קuLOU] g D)`N AQmIs0r,K%ILMyAZ+s}MaH04])"^y-%*dwK5ut-#N,SLO'|$1L0=P3ya0q^GYJ͟OAW[94H0;һ6[rxtȻ, YZ XxI
az:K|4I*gtC$+\jD]k#0tskNb#9F?:}IJFvӱWb3Q3E*#&ӞQن "lXMjzChVyg	Jw̳l0EUwc8J%V,o~ 80tٱwoGbp*_f4NC54Y(L!FDK['+g.1TEZ
VˊMcbd|o+mrg_Mj,lwv/hޚxsbzTqaܸxQrO>OF3X8VZp^ORB,^V،ƕg2Z$//p: f҅hоa@ȅn}񟇖b*j  <UOln! h"إnW:e?VTPdmvP5kdJM#QϿPSd/x;xqCX],D7 n?+x;xqdͺ&r| BVnIx;xqߙB41bx;xqC9iZpILP0l( 	Wx8qfG5߱`Oj27+&cp\:~:[x"dVqm(
ؼZ\Nj+#X>0'+MWa*1#0ke͑c̹7U8Ft}v?16hLlYff3D!#bcv͌je\h˲; d x;¸qC_inRjB~BjNjnj^IBfBIFBaijQBQjqiNBbQQbFmSp  elx;¸q$䃪ړwInNdcrOpM,g#FU'sek'nުur:&fyE. xV]oJ}WKQCrp.jT}{](ήR+	g93K0Ay~׃pc9qs	AnMٷFh,BX.HQi.\8wPq B)P
spgsQ<m23ZP@>c~08jݯtt6E"@EwBA+Jxu Vj B3ҁ+nX@BwQ|e	gm.@O ֘nxх"^\o&[·p>e- (M2Nz@|q2c>e@0c(JwϺƜ<ڲ5ZP	jT[ Rŷ0_yH~ӿYQVWRlQ8q`Df8t^ŵ;^؊W,]Z3E#F*IMr$AUTtmW&(I>|]59Ꚑ=*7Ѯ|,ŋ&7TM
'd!+4]8}9aq#nCDbL 18"7Ȋ
4:錗T%L(I%F2x&>9y
.}:gqeTY.6BuevD
us嫋|A㥧Ρ`,8ϧ[3ŶTVRkjkM\au 
!׋J*7˦0(*FCysCe`5u J@uC?OÊ,Nxy8>b*^[`%WTV{dY.lΗ~u-ŉtM6ad9\<*ahNEJ?Ro5w㋌c~yG/G`dG[7*[|[{CpB<z9+:O	?ZGV(lx1K@	QT"N,-m69	j!^#oV`$S>737{8p_<UY)	^Y%%x:hcX~ngX"ݓ-L	2q)i=aGӑ!)agOяQ_7+%YB:He(l~Kde^*
f8{@]7fDgxk"a2S}j^YfQ~^nj^ɳΝoOz'{?YU'f?ՒXY
QToiO[<mlZ۞-|{?4/qCCqf^d9̪E&/egTH+(U䔦*('秤e(qqeRRrJAK!$(OAYI"5/%3KA_KKd]RQ&Pę.y9)p'bOA (1W(4DCDǳ:^tT`=]99zOwneZQj_,yٮ	/ۻMU(զ<=-3'71/1=E/|~`=9XlNc0-f TC#@u1l^8#8$ oh`	4]DE<فAЛ!+<KV H"Ƀ!?KZk֪FP
MLHvxZmo6_qH$k'Y?lK7DEhbۢZmRT\%RY@H$幻HCKs%͸6>	:\AM (
3oH>rYiA>tptN"2)C$5	G"9o>5|9C"T?zbRsrNg ƧQy"0Si6]ߛl`TfMMNxk4:_!
y_SXFllR+cZ3%uHHϘ$&Vb
fyy"8<pxgyW'!UC>YkuAׅVvNO`u>{ӮGP+ &"q^1a$3b$|t-la,o#	Thͫ5HQVk$/Xh9V2MI닡|}ʄR8VV<ό!>n(BGuTo\Ta84:\'9"Mm1⾖jnT	0acD	GT'yL==m,oLāBWAͯj"{V&+XLehKC뵸5*\Mṟ)GAS(&ˉAxy o"*t"L)߰x\4.ebm߀+1smn}cw,\^${ +%`macQO?ӄ7 ^{ţ@Q΢fG+MqH Xq`!RQ\1JkA[|$mP̦t6-kOӷ+BOkmv#f"KK,2rtqQ tacNf25.r1/k/Գ]diكˮia zKHPݲPQt>Z2g3쳏ӳWG)"-7atAi۝خ%\;ca"iqTe5[d%%Aaʦbfb*NLNkIXFtPʨaD(d>*c\p#e;ngi{eYvGJçΜbgfs-2*ܒ5ݩ&sXpOR<w6QPȣqFCUN%ba&
l}.kIe
/Fx[hׂO!}RZpTVzQmԨ"-*:9Ic0;ղ=l	SlŞNؕMqI'︋l4y%NX@&.dJyyuNT?Rl^H
hK\r348ǀuȹ»RI BitˡSOTH~ZErmk}]Sx(~=LmӶ?9ACu.W#*?$IX*6)T|9gFFGw]<ST\$wv	\>edvٝpJK)Ǯl8S:_ l}ٯ83 b7JCT3 4Jz-<qQM<骐ղ|*m68gxYGk[sϟ{gV/Cʞ?<̝vd>O_IV4G&Xȇ/Y4=L4je_H{#CwSO֊-˼dytϣ{x3sfGik/c连7r%{Mrd02n.Ģ;{; 0ZeB xin^m#l'TV"<lӷStիxyg;p lQ}xVOo5ݥRJ!mV	6*An*jʩgƻkG'i$9qbCЪ_ޏg{&z~?/϶_,|r=Tlw/Ո'0)%b*2%5v- (n{0rMQNMc߅E[kk9bQ
\˱>K0\C!Dk#~dd-ZU!^È g{C0YteRaׁLbLFIRǕމ>aڸo49ƭ'3)
 'C)bB+sn9Y}_US;2Hs{l԰3gWS
_k20!ُ?lAUL5T]Wr1ø:v+ L2MUx6
ɉ'B848ʟD\4>6p8%B}EisUIpSXN*_os_m~ʭNzUJI@52.TzSE^pq<@MQH!F,.ZA祵=im'4XWx&\+׾SSR@AD͊'9v:2sc~n1_%_)wCt\&Q<Sx ݦyS{yJӥ'K^~+UIg_߬,\9*zNI-t8~<#WO[$\	*!Ն>M]ۛ'%{먕c}w%:ϽGFtia*ssg$(V(psy8l2WǪʅ'Gq4ݲcoEW`bf+GV7cUh,銍/5.AY\{wd~Hx[&pC:?{|coj~'Jrz{M(29@~Dx?xנ R70S}X8%IG}AZJlS 'g?lx[8-pC",̙6NU \e!x:p)&̼ҔT⒔'Ϊ lNx!U &xk
iArfAf0ZȔ`ޜ`ᵫf 30xAkAqSlk76!AMKz҃-Y)7t3NYg&*|o"WUqD|߮xշ*nM6-ts6ݦ:h4RH|c5N ~6iօ\xh T_iTs)hOB̆:Nƍ<)ѓegvDP;:hk9)WEab։dNchq-{>Ud GO&>nO2~7{|]
)AṳK4=t*U.j#q.;gzݨ{^ZRgǠgycc1C|̣[\i,7'M?dsջ$Q\0"ݞrI\)ee|r쟙_Px[cjC>cB+,@?	8'G
\̿Mxs`=;X, +85x[c5ECLckrJjZf^k<Tp2fcf!,œX2sR3RR&Ogy15 pCVN mU ubJnʶQ2385>3?4DVjȈ *3IKaEnɏ8]A"\eZ
ŉ={@R*AT)wL	HGBIԀԟ+Q/H-J,O%;9] ~p2_Zuj*PM|@~Nfrg^ZZT_Z\S¥P`hsmʯ2.ATd*Y&lYd #ɏDid&e'%X
&'
AllRok!W\ P@!)??GAKIGa2bʩy)i
Y ,	jx[aurC%)L3I	{Ļy{8{p K
.xnb&Ԣ:Y2sR7ǰqzLlg/-3fBR'?Ql/H:i!EB6?q ʬWX͓DU7G#LB U>oxiq~0s)hmʼK&HnƳ$3rId4#CH<)n/hfDY rS\vD(OXci:ޜ`8?O4I7prtK2u;Zfdt|=.-ҜAl'u 㣐=xxd>n9E?lA-cB6gss2+]'odqIMKU(HU@aȑɉc7Hg3#O7k=/[RV!HZYPIInjQnfqqf~B~F~^2I`tyKArF1ɛx%|*q2@n \V.$Ieಛ"]+jB'PTL6 Y0*xYw3,ʓײnb`)MBz6;eq67h2E9Y\VBZ5e&ǉ 3gxlp*&vj.-ͫb'?˗fHBw3 b< }--Z-}.Լ4}}7O` x. 1.x۬JoC7;$V8'(g%*$'$&edTq)>p
qsvQU0;95dD~b xU]oJ}WK($/FW*V}{Uw?B(3k6sf{DU۝.FƉJ̐60w`Q!Үj#U	n}wr5ʂ3HFaeA}UHQAڝiQ|Z:Pՠ6AXcF쬭@JoE΢I/t{,^ *
*k
PV#YA=̝Kc\;fm.@neѲ _Mrbī(\BIOUtA>GH#mҜ)(D.^u~6fr#3J:Eت{%e4 s{iFNg<jt?үYkXqUV2G[CQQH`l$w`N蚭Rv仴9$RAp-B5eV(hj
POe!m=`({,?m֯C>\G0q)*(IMgkRFV:T]CKӬ*o,I;gXr\St{.|+
y%2ұV2kO^hx""'_hhth2I Jl诳dIϟfr<'Yr7%џXy\|uV~Z__T]Y	-ഄ%g,Ia(`fXn`ݾt:$2< qe%$kk\ϐk8CMْfeq!.i	f4<\'xq	){QȜܗI!%Κ<tL{
	\~>#Z3t?p~ĸ䰮-+ohFj=
 )w9vBCSղi	u7[t<pD'v xJ1-?/EOzTJѫnfmpMdM|P|/|BeZQe 7sԾ]!Fw\pDa&ɌF}RQPcÄҹJ$TL8lu%UA=w9f׌% ퟹZOChh(ii*R'ZȔc$Ztط`mI$GXw'y
v)!~wqS|$/u9W2v7o:·/ⳋj'v[6!x;&_pCS|ZfNjfΝoOzgoiϦ?ٽOV<|ZK2R!74q)h)8g%*9\\
/0	e*@Rpl\˨0y6ͬSԘS
TZT_4C93-%5M!>> R+JR*RR2ӀJ@H*jtyaؽ
Př0W0Ej`7pW߳9k 1
wvQU0ԁ	d'c7?hFB\r΍wsbTUbd)6zX$%*e*<i:aV`:h)(rR4楗d(>];eOvly9u]'Y~}3VZR
L/Oy:{0&%@)3__|A#GQ@,6]La7FMǐ?9CIkjAP@)8B4 J_нxR j0	JiE%y%E)ɩ)JV
JFJ:yJVJn9% O~rbIf~Xm-W, Tձxn/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup resourcemanager
 * @{
 *
 * @brief Provides the c interface to obtain resources, and relies on librawfile.z.so when used.
 *
 * @since 12
 */
/**
 * @file resmgr_common.h
 *
 * @brief Provides the enum types and structures for resource manager APIs.
 *
 * @syscap SystemCapability.Global.ResourceManager
 * @library libohresmgr.so
 * @kit LocalizationKit
 * @since 12
 */
#ifndef GLOBAL_RESMGR_COMMON_H
#define GLOBAL_RESMGR_COMMON_H

# include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Enumerates resource manager error codes.
 *
 * @since 12
 */
typedef enum ResourceManager_ErrorCode {
    /**
     * Operation successful.
     */
    SUCCESS = 0,
    /**
     * Invalid input parameter.
     */
    ERROR_CODE_INVALID_INPUT_PARAMETER = 401,
    /**
     * Invalid resource ID.
     */
    ERROR_CODE_RES_ID_NOT_FOUND = 9001001,
    /**
     * No matching resource found based on the resource ID.
     */
    ERROR_CODE_RES_NOT_FOUND_BY_ID = 9001002,
    /**
     * Invalid resource name.
     */
    ERROR_CODE_RES_NAME_NOT_FOUND = 9001003,
    /**
     * No matching resource found based on the resource name.
     */
    ERROR_CODE_RES_NOT_FOUND_BY_NAME = 9001004,
    /**
     * Invalid relative path.
     */
    ERROR_CODE_RES_PATH_INVALID = 9001005,
    /**
     * Resource referenced cyclically.
     */
    ERROR_CODE_RES_REF_TOO_MUCH = 9001006,
    /**
     * Failed to format the resource obtained based on the specified resource ID.
     */
    ERROR_CODE_RES_ID_FORMAT_ERROR = 9001007,
    /**
     * Failed to format the resource obtained based on the specified resource name.
     */
    ERROR_CODE_RES_NAME_FORMAT_ERROR = 9001008,
    /**
     * Failed to access system resources.
     */
    ERROR_CODE_SYSTEM_RES_MANAGER_GET_FAILED = 9001009,
    /**
     * Invalid overlay path.
     */
    ERROR_CODE_OVERLAY_RES_PATH_INVALID = 9001010,
    /**
     * A memory overflow occurs.
     */
    ERROR_CODE_OUT_OF_MEMORY = 9001100,
} ResourceManager_ErrorCode;

/**
 * @brief Enumerates screen orientations.
 *
 * @since 12
 */
typedef enum ResourceManager_Direction {
    /**
     * Vertical direction.
     */
    DIRECTION_VERTICAL = 0,
    /**
     * Horizontal direction.
     */
    DIRECTION_HORIZONTAL = 1,
} ResourceManager_Direction;

/**
 * @brief Enumerates color modes.
 *
 * @since 12
 */
typedef enum ResourceManager_ColorMode {
    /**
     * Dark mode.
     */
    COLOR_MODE_DARK = 0,
    /**
     * Light mode.
     */
    COLOR_MODE_LIGHT = 1,
} ResourceManager_ColorMode;

/**
 * @brief Enumerates device types.
 *
 * @since 12
 */
typedef enum ResourceManager_DeviceType {
    /**
     * Smartphone
     */
    DEVICE_TYPE_PHONE = 0X00,
    /**
     * Tablet
     */
    DEVICE_TYPE_TABLET = 0x01,
    /**
     * Automobile
     */
    DEVICE_TYPE_CAR = 0x02,
    /**
     * Computer
     */
    DEVICE_TYPE_PC = 0x03,
    /**
     * TV.
     */
    DEVICE_TYPE_TV = 0x04,
    /**
     * Wearable
     */
    DEVICE_TYPE_WEARABLE = 0x06,
    /**
     * 2-in-1 device
     */
    DEVICE_TYPE_2IN1 = 0x07,
} ResourceManager_DeviceType;

/**
 * @brief Enumerates screen density types.
 *
 * @since 12
 */
typedef enum ScreenDensity {
    /**
     * Screen density with small-scale dots per inch (SDPI).
     */
    SCREEN_SDPI = 120,
    /**
     * Screen density with medium-scale dots per inch (MDPI).
     */
    SCREEN_MDPI = 160,
    /**
     * Screen density with large-scale dots per inch (LDPI).
     */
    SCREEN_LDPI = 240,
    /**
     * Screen density with extra-large-scale dots per inch (XLDPI).
     */
    SCREEN_XLDPI = 320,
    /**
     * Screen density with extra-extra-large-scale dots per inch (XXLDPI).
     */
    SCREEN_XXLDPI = 480,
    /**
     * Screen density with extra-extra-extra-large-scale dots per inch (XXXLDPI).
     */
    SCREEN_XXXLDPI = 640,
} ScreenDensity;

/**
 * @brief Enumerates device states.
 *
 * @since 12
 */
typedef struct ResourceManager_Configuration {
    /**
     * Screen orientation.
     */
    ResourceManager_Direction direction;
    /**
     * Locale, for example, zh-Hans-CN.
     */
    char* locale;
    /**
     * Device type.
     */
    ResourceManager_DeviceType deviceType;
    /**
     * Screen density.
     */
    ScreenDensity screenDensity;
    /**
     * Color mode.
     */
    ResourceManager_ColorMode colorMode;
    /**
     * Mobile country code (MCC).
     */
    uint32_t mcc;
    /**
     * Mobile network code (MNC).
     */
    uint32_t mnc;
    /** Reserved attributes. */
    uint32_t reserved[20];
} ResourceManager_Configuration;
#ifdef __cplusplus
};
#endif

/** @} */
#endif // GLOBAL_RESMGR_COMMON_H
GXXx}OA-P%*P(,?	Q0;m7:;xU/j^AMz'=x0޹y`ŋ[z|޼7oA!B(TXΑe~z'%(P7BJ*j\[fkplW0NLj"В8?;B<2p@][6kJRpg_d$2RV݁ ʽE}^Ex(:Y*Gk(W6W.p-afFŋ?ӇCp$C=O,6EζL띦M72#ѓ\Ô%ѾpxO&7mQA'VŰSfаk0vF<B궥x.l߰-x[_ә +ĥQR|1bIX㯕rɶP/$&]uK^&&SMBo&ueQ|rItL*$YOkqI@4D֌n'7I8Lpn!c937 \]sܕkLePQ仠]_NN<Jv	To.{-l]AW~vO֤X_&Vu
|I@hy .-B^²2еDDVʘ2;R3!Nt_3
r*qGypGkD0b*|Lnxr (RRv*&.SLT.6O"v(N}^{=Bj[	U	<,
&;M;_)%hxTMo@mƩʥ
Ei@R4Q2V( dmMlձ_8qA\88 qqowǑpOoͼ+oo}5>oPUhm0,t5Y7)rr4އD6 alc,	9&!|3!p+yǛJGˣ~K!TBhLw#.~Z3K]󓗼
>&<[HH=+Arl-AX߹˫DGab}Zk	d*5ITZ$r|;fwVqj[(՞MzZM殭!FSnR40uQRbEP*ei_Cd8^۪CGi}I*30'6n[+BdGPvbSnwf]CBR@-2Mv!>g1rkV@!m4)^X(K˴U+֚@+\?_?s.G*FȪ 1	= Pmmt\\.T:*lـ8,~4tb,OeC"
Q8u	r:_Uh9|3JgIGݧzBG8ǧ#ә`K{mYL hFJW
QXlDi = 'F{gR[0p>YT/J
x%ZbtʂԔ4YR&`Q10f+kf:-1Ø0f&{i7Y	MȆ1r	C
%
i
@qv.ғgHM;~[
Ey.yř%֓X& sPj^$xk@ADC'¬v2P`]3BSp\`z)&RėjD?7]&%ܓ+_oG9(_w/~=1be%RZY>W@|*0$'LՍDꦦXѵ{iJO ^[ܕN7`Q@m_]k⮯W>I bl#)g|?`0+k "C"wCV_1:iof-\ˋy*L(ospV'[pT `DMUf[v4{mt5Q[pZ:dkw`JL`G)`PݦC`
zTo!xOȐ%Rk=nIkAãzXά˭3$Ad.U!g9Ba?1BS"4G,ixr2A$B_r#_lܵ6b*D4F?LVv{6N,?Ozzpڹ/<[˄CLx)76Q9OCa9"|R#4joʉk7KqB;xk֘<pvfO~rbNfUbIf~wf@nU oK=xk \8!ɦ7 
1xXn0?:TWɑMD".p^eU-Lbh?,ɯǇ55m-aJr"SbAҮ kE9DvE{V+p;6F6<;<lYx1-#lMl=l0<@s=ɧ|/UrXՈ{dsl
 {TՒFRG}!4_wORLٗ=R$M\*݄~Tcrupvݞ&Hb@-rRfb[sYa-vHګEs+.Ap K,?[j^jhơB7hbcbi9C9CCGWR93ySpA>xaE~gbX߼ĈS(zL&أ0$??f4*SII$BI&3l.
1Խ[^ҢTƈx#vaϕ{XKrԜetE|6ڥؼmۜ;{ڱ8/u/U\A~C':RK@i'U@w:lfoVgcdtT G`Nk,UwĵF$lgqLųyCcJ	`~_,U֮
%z|y(opGxJ0ǙcN?oוKmQI;>E_@D|_lI{Y~?$|Wʅ}o:.tzFu.!hCC6v}Xcr/4ίixh}90{{(#S[h1aKzN2zhZn6?"1Oqs״0ِu9ysm2rAɓ71x^A^EȨh1`Iewőp\?Sc5ӑUan+rEwD3d-Fr)VS33ＬFDM	X/]\ȒWiIQ^q"P-]:BX3!iL碦fM.ῄѭXrY_%SxRyC[IFQjb@xStr$Nx7 }5x<_i8&Io	 aL)x4 #N }T:0^	ylx=Om~qEҢTļԢxԔDT3yA*	tKMƣ(i`WRXZ\YP_`I=J\
@P 0hv#x  ['6.0.0TrafficFilter_CreateRedirec226.0.0TrafficFilter_DestroyRedirec226.0.0TrafficFilter_AddRedirectRulQ026.0.0TrafficFilter_ClearRedirectRulQ026.0.0'TrafficFilter_QueryProcess"
    }
]
U9Oaxԡoe&O`OIfOO-Oȭ s@'rO~þY 1dVxJ@B@_Dx4
V%E4C`V|"_F_lҬRw71ǝ/μw?:+ٛuus1u1sbM'`Cgٗ5ګPT@9^`FcLR[ێ)śR0RvԴ|d\Q&hF 46Ʉg[Mis<G,SPwS%5`RîsaIWKoI%Cu)KXݢ))JE\JVe̅U1"".%kjȦhjR9őn]3Vv7R_Yx..Ay0x7e W'}x.YaCߜ,FJ:%&ec/.M,[ğ]C'TQ\!(P6G9y"wnf *Wx9 rV-m
דeM]x;*Ӭom^Fٴ<&ⴅp\KrR'洁{%eO.`2(C"K:U%*r) A-/W, $^xkVhVؐh1"|~9BH|~W2 Qxk+A<'?9;>3oENh^&9(" .JAA&bR1cu'clͽ9Y B*Rx+Un4W?0O6`fx2/V^=#	Lhr3%gQAqpy9Lrpob	 +Yx*Un53,M=`dsX%LM~5y+T揬- 	/?x*7]nC,?p =&Yx .9/(eg委&(Y)()$&2%f(Aku tơ	68 JS4!i)@U&*JNv`do*I%Ⱥ$&ggVa8D$E^G7nCɋY0ɽlΙyEid'7I@Gmecf x Ud_Ē̼%&;0򂅊SKJ*RDӱWD6 # xkl>y.''벉lndf gk%xk{;fY71=be pz#xmM
0i-.Ѯ'B`ڴ+7E<ko xgt\>ޜi(Ӝ.3w/mgo>@u[╒0F%V(jTdCO㤠TZyɎlF8r 
Qm(IּMMG 'J0կʂhfk7|qndxn0<'؍ҭB&6*0BLha}pX!Wl}=#FaLNZwhU:
Ct;nB\!Lv{@C T/<ΐyWڡ튍!qQ.&'Bek%^+[H;.$\S% )\*G\ə`/SGj@|#ή=iyCСZNZJg8K9C}$$Rz~w%\;kK>³nb1)b g͘p-]pȴLzi®9kS_Ux;γ,"k'g%&FL(a3'e,pIMLȋ+8gdf8{ )%U$`Q$PZWXRR:d8Ajb R;JxKo9=f[GXkv bK&MRcM~jJGO21UuU]]O.?m~n^>ɏ4b[D&5\"3VZ4,lPMJQ0n׹rS%?[bf%+E6xk9ǽT4V+-M[Cp.%sjvX5XBlQ+KtZF˺v`V8CheZ_rk:emV14l(P{&#8xЗHް3#C=VBv*qj񚃽>K^i-7|er.Bfb5VA~vR<CsVE;YC ҮU
Pn0boվG(BmJMC=]f~brvu]Y=B8,Z#BЙNbhc{ڹjx^4r+5BSy)-#e, [R˵Mޚ"
_F&U2@5#1k㘪0<^6ck8斥2v_SѼFyW|N5c90^EeoK!USj ۲xlj	QiVG:.!^:v U.oʽ 3kpVΘ!>G N0Dzv9`0"8_ P# Y?'F#e`LY0&,SL&	eBMHx&N"Wy܍Kp !ȢG
D**5]lɃh'.t݉yva1U.7ק= y-)LٸN3/͂(e6GNέuAh=7!3\(tRU273n_f0la@ռZ+Ƞ6dB^d&oz{oG91=\,f ~W׻UFSz!K} Х&~W]q 00+7äfyi>s]Ic]̇8Efu(W%_Jy>C<?2q6'iaGQ7qj-6-?/AIgC 1_ImG{7TÁxʬݢ>?T6JjUyn4/FkpZQ&`_r8W=x"wQJ3+a`jL2<7x~s;1u7M栎WR(QWÑߑ%jpE]V IbTr
sf(a송CNm.(ENGv jZ踸iW%,຀_Zv$0le<D,hwiߏk\9`ĳL3E%?,v5+v(mRnQI8'-&n>q3]gwxz;-6*Xg>	+@7SF .,~fʸ'rO#y'C<)l1'}4{pEk'H8RPqeh
$gƭ;E78a]u8EUsMq >%92!S&r(8W\QBT~%G͗q8m$8,oeޅt$ HNf(l.^6"P\VW4RqGºPYRa״VN|q hFyASZ1tI !z߽C7 *GzCGtdL9kw>MQ45fD|}-C%l9e}.\"J1ɰx+SUukw掜X6=vȤ-F;e-_ʣ]"/Q 챽z ft+G[><Ö/.jWGlW(JwE_ҦxZr}FӨeRT;DS,H~?Piµ>y(i`T6FQnU%fF1M	hAȮؾ|AĶ(nxQqtV&l-nˡW3,Dϊ&zgst8!ֱ@w91!2my1~RNlMQzyW<g|A-Bq3sviRie<n	ZQqT\Ku	rRu
Sǒ<%zxkloeq;vČ(LE4v#87fqa}epjn7}0{\Ĝ+Js6Gr	ç>LDs0sl^YyƧ2w0؆󂬭IFLS5q11BD=ۿ2Xw`!d|P/?\ye!*=#DVu"e/E6$16`jv6hn=dYaUe-V<ܞ&)a?=FZj1@Jрgуnv%-ˊDzG1t#_c嫵	~Ie"uC,6iȐgrRo
?Yȱ
Q9:@J	ʙP`YKEl% ?2hſ
I^(n򮲽/6SM,7jµua_g+zd/ua3%RX<۳Le?'R<<>f&vpXi_YqP,&|V`Qf(?=p)Lr.Lru]jeOfa;u:hd鏳tg^Tms'ߎ7٨um$|	ƶ)bn;C6w؈QFla;lacv6`1$t8't؄a~M>$`$	6I	&	o~`Z~اuOIwOdnV@Yz
AǊA]N?l5?V#.j'SvDk `O	B$$k\G^p9Sk)tgH=s@#Cf K*HH+Hs	xP:okS"01u,봊2U(5TPIx(A낶nJ8|Yն9Zكo+F^cDR>q&BO;Y$~d]Eʆu7'Y}ȍ15U!oV7~!H>c^"'q\][|QN]ǮkeԈETqL4@Vh9@rGBw[67A(iF?'FFD#S7C$ٯh dtz@7}뢁uYtVdYbVJ$FYQV֒LH(3))ĄyNKqQ	_xwes~b.շgj#]t~>ZLd챎#@v
UF$tY2/&ԼG8Pte8'QEV~{ksD"cOgh?hVxMo6+{il졷uƍ(hȔJRE{Pv9;#
j_`^r-\uj}OB4]Do@؟~SLJ/kztfP*ܤl1ޙ'e4+lJFۍta,>iuT v@7~6ȭ)`j!۲()?5u>RS[PYms\0C3?mz#;$-
GB+d$n(E^YHM29lS]݆ Afaߕ	vb̕Gfo֫WД/Gv3#		GG[	XKn~p]ɰ"%Dv뢘q#S9<Vdi+#0A8I
ɑK:@l.*C#i&.N{xOIG9pxk̸j̍B<TssjZng$I+]U5O̮9vAmo-(5B!&	(Y~$;3T2`\w?{9zQxH"~Bp"3c!&MsUUϦWP >E\(ɌÂ9x {-yj* @ .m@с :&E@ ѽmIS՚رee
¿ETMEH[P5lRXc<,YܢܝsXYQwWmsv9;nT~	qީjgrTnlbA+4*)y]cћ`Y=P0눠?0A<FҜYGc|Xw*:=]n $sP8FaGosY<dLbf{`Dߍ=JwGf4Qc>)	SAi)dfq%Ԙ1yЯK+lRS\̩@o=;"90:utSگ'WqW0~l*Z*sW<Fof.Л+yAd	7_2O$̓L&'c0g?>|7B\Ul1a;_.z0VJ4"VBZMP:ܴ(öR5ս+kpfob:)khR"[hw[<HB|	&'X-kCF4DoDCL6DGd6L6ёpcDǲECG&X8ѹq&<&#.\e#]6ˆ2&&Zܟ"_TEm#@|{bXS L
Io|FVܖD/0Rx!Y6.4C^
{ J| ;?Q'G~fg\o&t1{3(9*<OYBRsZ'A,MO&V'D1/]	jFIsάhf2'}	cNReT/'w9
\FrѲ++[Rd|&2a+UR)+ӰR*U2*թRw2wDݷI6už9!@
alː4]!#hg)85)H}T1?s	&>甒4&@WIFJnfӟx[ks_1~IR^;[V5ukK5`,$$l{@![[5gqgF~|G>impR?}a32IǝUPOʘ1F$NLp JG?TpksEtM%+wȜ댰)\25Ωӿpw!QcÜ)(X<*H(?׵.OO_^^*T\1SuN;JS0W:sbV'kB-0jJ'`N_ih3sM4.71̸|rc1Lϣ5j4$ʰDPET4H]U7 ^JoJU&"WFLd^LIŦ|Χ񸢏<6#b1{̪FKRW<':}W:m,һѺb?_'6gsҷg>c ",!*ڂh!DWM#Uju˳OeA2OS+-6FK$ڦւOzK<Ħ44_1=ΔZdv\l#'\[pC6)fgԒƨݖZw{j7ڻ_ft!B$MZ߱W(AJ/̘&^x8nD"@1,O/L#PdnKO+MY!viMe(\jptM#%(7{`ؗur#V@yɿ
guorn%u<v.@ZڣNkHfoJ7͔K}U֚YĹl
e u5nM:!P!ѿ;<8VQVN
2 3YeAgFnS׍:[^@OZ,Oŧ'sgz5O%L7@.)A8yL dyӄt,n'g^Q4I$Tǭ^T0J]n;
Yq=E2XK;8_4֟By^	y	׿+=-m{7+T[\yBߏ}O9^CiȒtF]*^7	o8~֩h &>JKiL<VMÑ W`8QXO KeIJw^xBvV
P^wⰞ^
2%[i?4dً{l c1<!A k;^䤖PQ"eTbǒknr-?#{&u8>'pՋUc2-DŲ_qij/b8ר4WP468/2bp`h%7KJՒ'F	#nUFDaNaZ˥ʧOMaPLi^=3}'|MOJ>
!z"P%%O0P˺WHӟ&CaNЄ#݅o-iITԏccDZ]
)llIWM +{qaOS>Poh<@-yH3L8Ub'%x+
pĢHٺWy6X}_:J|,QfWm0_6'nڭJ-I|WprGS}Y7 !Jy"˖rM%C>1m؁-Iۋ0pݘLLoF^r}c{/gs<Sx9Y'ӿ$X7тixm.8VC9\WYw+/-@۝gd}`6r۟'΍B.5PYR&ZIDO۾l}_+9]P|7y/-ow$=C1Л;ݟ_V`[rvXpf̙Fnxy:M..EϟX,˄ӟ	W"ǋMG3NO$e9'đD 7X+C>d~a@qWMB
f%֮Ӂ`b=BoΨgԜ3+cx _	KVasv0]\{y2u!SeL=yU
Lq+T|OVϴd`6QJ|/Bad6~PJ~2ЩUp71x1^?LA6k=!,Oå
BڶFmh Jg3l̀jg̘\|N~z54rh.O˰P]"VÙ@	y5KrICq\/7+X=_W5MBn(v̆u-}f	]J.:.ùብT:tU*!gy${NWYƔ[c:QW/׼90+:Z69h7xS&C|)_`L~_:ײ¹KueS`Έ8ɜEGT<'7TWN2};óEu&ʘ!]D_~=T?{]w/:@?%_'{
+sǧ}/jtUy pHy!c۰i?s94;#7zd<f]Xe [y I
]K|(rgW$szzJq?ӁhP0	s=h'X'"pEZ8^$pR!8DKuz?ixW3BpZ"X.7XzrȦW
/HW
K'0
g. ui$A$e%q.ǣw>}}4Ӕ%dl48ÖҩaPPL6'6h6; MV=oߎ9۞5e);jRru4d	Jg4lӡ;zggD; Ǝ"Fl	jUsEr \:1)ޯvO"ЗM3H5AEDJ=InN.\AǣL:.ǉK<Trn7<?nzlT5x(x:2=}]3T65eEnS%U>n5mWuIQ{N*1xI]l# HH (}&%:´xbܧb@>] T*^[Qcx^{"Gl++,JgYݘ:\-dۜF6o6Xq_%1L~G xjdX|?(2sŗ(%攦n.TZXSC	Λl%-ƥ Z`21/E! 5/es U]xjdl/p[vqX9|SKSK7sj0y@@K!1/E! 5/es )$xjdl*p[vqb؅@@K!1/E! 5/es 48Wxjdl.p[vqf EuxjdUr݌
c0
r)h))d*T;deO~(;WqPzļ҂b|D H+$%&g'($$d&edTZq)Ojzbr%TBqf^zNBf^IjzjBQjAQjqj^	PD 
hX~Bh%[S+usJSF)h-MKIMѴRpl~tSyMZJ7o׺,
 Wjbxjdafgl7m)3mGəPvvU5Uļļ̪Ē<ĢԒ".RkR
y
Az

J0sJ2J2RK2Rs3KJRSt`df*(:LNP;ZIg4Ev>Jri)* <!yfvˢ ƸV
:xXrCkiqh؃<}''
KA3S$&?f*wgdN>"3z!u Q|*pxXSC)3mbm`ZZqj=Rj0dV%ļļ̪Ē<ĢԒ".RkR
y
Az

Jpc2J2RK2Rs3KJRSt`df*(:L>wo**MVV5S(-NU@8\f9ˢ PNxUwnEɗ7oaOS(HRК<AtrJ޲ bM_KxpD1 O_GwW`PG=.Rp(KNU02%&I뀥`PL(&mkT 	k$xuC $h:x)dFӴT?Z/Em 㘼QG(o}_X=y9Fq  #xyc^qO>k Pb(xC o=l3Wnative_bufferkeyO3m"ߓZ"!7-H
Vx[usQ00OoD'c,)ql. jkx[:n"٩Y&c^qr Z5x[yc.1*lNuc [Ux[yc.1*lNUcR

L *	 $x[:n"٩Y&c^qr Z	@xyF[dD2J2RrK@@ku9Zj0~FPBrbBRB~nfIIj20̜T)i9%WP|\!ΗQl +x|y&KɫOvTKUSpMLPP^>}L|5hxkfZIiiEyS	x\sH=U2?lB8ǎg2M/=J%Pck3}$x*&NP~ݯ+<c%VsfuwlNc-Vֈcn~l,M23mfK=)+zc
{AG_,0MGf;><cck43Y692l0{*go`9HfXgۛ细 zq&%oUk{W <6',l1e#cz'Ɯ9.3\gC]˷2?7\.7-wa'D8b?> 3l\V9;z^Y\A]kݮ=Z]o[6dZ2t?\Z$TT$HqlooG;.08sk)6HH4Qkj/>[XE\Y{;v핤";	fs11wKuZ|.]2'x6zZV!gy>gGbĉkѮ_]^ܳ>H p-,*"Ɇ0XI.ٽOS^cV{$DfK"o,\4"ۯK&5GIB<OO1`3ծ[Wxl6'V8~zis6 .=V*eOP-F(lx3ɞמ3XO61-6iSE$gPdL42#_C3r-*B;Z6n4@FdAO;iˁmhu{QCVyY!yKp(zwmqjhٔOAEB_hq\H`!VhhDaL,_b9jDyPd('q@kZ4K5$ޮ7qG<I5jN v)l[ $@7A7Ać3	)4
17qJo+;cl5""?R|4*B['FTkqE|͘Xw۾m
*+N)[+t=Cm~eƹ޼VQ֙Ưnfoj^X?x{ KzE0a z, ӡhOc4z>ލ?x7|}<m-Sw#n􃃃2k↞o
<m3<"ox>u7{,-inSw|%GÀl`^4`3bK&6<A_^}؊ї&7H<	7+R u ꭌr[;ui9OW3W9Z7͔R,ػ\[;,ZQXy+z]Q򘻢UX-*/{--4JE^KXfmiPakn$q~+=$-9V"0jk`kkXZx=`-l4Z$8bT`NjeV(%\\yB<+luqŻ(0oqvy8/LH#V߲q4Թ
Jow~J87A 7&@d4159{, BaͻfYV`xG1%-%ͬO|H)4VN|װ=(P܆5~Hdh̪}v;}wMb-!k;uHvJM(e/wùrPa&K:BOC-!aZPVBaH1Tu.9fq7& *^}ы!Nu)%:FFhAxUnS`AsJi^b)R":;)YMz$DMuykLi/]5DjNW?.}uc_EwTc#Ȋ9q"z}]׺uR,O0\guwa EVbk-50%]gVbB)g+z縡KXK h+`v+zFɌL4Wq. 
l%KWJ=!1<[8"r0l%N(5wCJ41֖cuTWcn;5Ƞ).|r&SV-฿1(uyo=#4AA/s;`ubou3Y]ӧ"H{NE9bʩ4oitCKڄmfr%q{DW\9;ӡEhlu,&Swct#lu/VEγ,!CȲSgbBء-4-D֔nC6tj}oRiMȢ#>$kTDR-IμCGgM4}:hlpa|JvrI2G66h<~"* "e˸$BEo:kN`$-Lh1-<"^aP*XB
jȿ&.RPb@9bQ_DY\EC6E颿{~-ǵm١I{lf a5{Uw*Cݱ>j@GInph\fL.GgQ~9wnC,\|abh9D"t9+z;^y|7"T %2J,5sr"23$rn(ّYWR^ QX_'R"R/w(hLazFǓDZMҒ~K@L֥vaE3ɪKd%O&O3Ҁ9V񃚦)fJ%	s6KrE9&/
Ee[@;Ud0ѻahxzJLs
f
u=\Y4sE$6#%xOQc~d;ˆ(CU휶E@kTcwr	RÒXd9FY2T`҃c4Lt#LKS'?ld=H\Ziiw<Q[_7H{\$t7]
%K~`LԦ0is)γuaSuLU]t}?kT
]Y_zF5?4<y:)+~*9Dd[8c	R/(C'T?>b9%	|Y8xD$΢iᬕQ"Jj6egT2kȏl[.~A¾Dv_cXJE8#&
,ŎOol=,Rd!",H=JHq	#]e!Anhrכ8xڠPeǙP*k+V6!OQXeeamҲ8̍=PGFMw{t8HbJ"R>ZU/Jd@^'_*~vZׄ)?d^D␥0nRIq4쏪Both}FMr_tY5վu]gtVЄ+WU%tT].FRh
`;	ֲG+m]3P!V7ϿZtiAQE!m:ǦCc**O"/,ҁ<t+:^v\e;r^DJA<sY}wBVݶkE1A7tgv@QfKG."lhMDJWtѾBwR9|'(8[L_!&%&Xg1S7t'Rʱ={e']Qߌ37Ϙ~҃Z-(j7g5qM/ۥ*AU&5V6&ᗨ|&Z&ɧ1]<T7$3K(dhIU//Uȵfwp3(iz놵s}`)_WM
äi&=]:dt	5Lףd>/!B,;,_7K2RxOASm1(0vւҒb1ĺݝJ[w\;#<xr7x`	<#ݖh"qμy;T:y^2R1K,*1ԙȮ6yňBiN:=X|><_]`4`=B<4kF=B1>g4uG*;~]C}r3wC%*3~8􋝯$=l2|n4DE߃4FmK<Scx0h}*H\7sMz¾z_ǳR#{k$L-/d&ZC^XAd8өtv*D@7hT#e,pu;(
)jb$xcɎrշM{`jLi@0(/kC!	|Si
>{BLYd"K!}^ DY{^{aoFbۢ2}*o\Qx솻BRFxiz	#T!oG˘]Ak˘h4!d\.DIᎧZhD9lڻ({?IIB_I KͻUao,V@9Q$j¨%_V5t,	ՈZ](eI@U3p5T騪[m"Ayi#XLNvｧ&55U9Ս@/v\m~x7^{| ,`x7H6; FL4xOQS LR"L vim-ЖPZRlHn-[bbpMw&p`b'&-D;}|+ˋg햑()RT@JܥT*}aWnM(41dE~y˻f<F%ܟZ\6#̼<:YMڛMͥKp7
~YXMu/
%ڐHAM6
WOO6OywS!$$&\YšZB*L`3\*,f33SX.ɤ3D*˘qԧV$w{K
]L;RFtX$ՈYnꙍS 
 EE.[
WiI~mR	
BU%0?(D`k*!p6<]]_~ĝmu]!7nb:ԃ#;on>7u&u 06C>K	;"+
+iPL!UAV*x;`)mgOkA!~L>	BUh^ah_o}ƅHԏU; /LmCBH~kY2"ЪޫF,#Y8lmjXL:7)6!߼}uTԻqWpg't|x7$쓻؄7`!{*_# ʄduxŸq/h)8g%*AD&3rM`l0y;?>{|8Hovl y"|BxR 2545U.59<LH)6.	@since 221068:ERRORF>!'Dm#xqdPF]/L/1Y@mt3=ɋY'Kl6pbsX39KXa. [1)1x{qXV` 	Ux{8q)SLd#PF'MVg3ydMfzmECjLXAW!7`r	zlly١6_JHd?+{
+iEx;2m"-&.	M}&
O Y[UQ: ץ#b	c ZX=9P~*]Sc6/И3yƦ&7od79P|M̌yM0n38yu)LX/ ]Bvx;2m"Ɏ,~.3nȢ3Ok_M 20|Agrũ9yP@%Bp]: v.<	,E
ٓ7Ź9UɊ1fYL1hl\`rxo,1Iv70̘<Xnbʹy^ G*
5x;25x|}3K23Ry@@K83/9U`r"l2@Ύ

>>
66
:9$7r;9)DZLgjwTg *7(.	54Cf '3

oNxb  ۚ(Nx;2qvɎ,~.3nȢ3Ok_M 20|Agrũ9yP@%Bp]: v.<	,E
ٓ7Ź9U>4'IM<OrzC
1yuN^	<e|{NP'/0dlajŘ7]fO'Ln0
|ڢxS,\5 Hf00	,̱9͉qa袟 N(xkxd-LE9N/1IPsl 2IM~"	RCh""/%2	ȓ`4ȥN	rwr44SHO,AC|CrJ7ɨy:Mj`d\Ƭd7Y!+7WY31nf"=̶0NַU|pun&8ڟ aVxkxj.3N.b"*4D.5w0OBZN~b	B*yW *xkxj%,N>NI0MNRp';9)' n>!'5  i1x5$"-&A9\#  (HExzu<^.-b̼ԢTԔb|TBr~^Vi^rIf~ByfIdGмԴԢԼT$;i%Eũ
E
9@]99
ɥEzحMj/Q(.-(/*	T2eQ
X7TdR߼qrɬʦ!8RLtQfY(5$ds#فLo>f$Cv7ט\&_f>g78&OR<rmfDv/Neo xkA6ն4jjZ%2U4(M74 m6n*zHMjkO</u͋ ѓx$;isۙÛo}xԏ#+s2~G1~j~9~|Twa}<f]:͕AlWCùjHy:"yW#&8ފvȩ[|чX-P}O阋7>>Y1xW񻅉27.#N&\VFmv7*(9moV|I*\,kGQbVMϕR3DYҚ'R(ASF1[VŻf(Xdcf!˂&I"?3`WrkV,Fv+ևF+*eASMN}5pkHO)
H.V`/fz$ʪ\WJbQ,VJ"`^
9apP$	b,tr8'Cp4L\;,Sԣ%n`@)J"~Aie
@m\s de*t9J!rX|LsQ@0Qe {vOOmfA *MG$BV!VCxw}=5;_ϺM?؎J:;jEW5Eޣ5[15F>ώ)s`1V?AR	akYǗ@4xi3՞jbx8<L:>4wύ_B.3LN?C0xSOkA'
-ij{O
	cmVjX<!Lu`:;4I=D'(
~<ݘ4{ڝy~zcVz~am
e$iI*|v @ `R`٥-x*unC}M~P	q*K{,*C-:ԐJf쒩1wtR0@l~#5@B!50:&,ڸoizgo)lC#/&q&jfԣqh<7nLf&`<"-q פ°<$[2GRSBAqM0$PoLWԏ̸R>sIQ2-^Jh hzO2h1A-%NDeu&T){PR4>f_zq	:LL$#5m*Pn֪^dWtʔ|four 2|b۝uvg."y<svs8KYu\*warxTOG$U,5PԼ(1$6lTcHJv%+nwgqPSoI^*襕#[z3섨V3fȯ6}BnPc0N]F[Llr~yGmVMXv",$ xRfģx-6حíf|<u)NŒV۪65S-
q.h4åm͓LRcRdd*6y:b̢'~Y[0xF#˦M<RƱ<D˹l)Ƀ,LpPE8TEB&28Q2Lz={`IxTP<j7~LX}I:'KN&=Orc65=x7)٧ s[*G7'uȞMAzi!MEogص;54Z?0<NXu׶?ဘO}*ImF%\@0cPpemӷةpKR@o`mYmau-|O!~jWlۆo+Uh<Ǆ%gCvs{Pkrʌwsϸ?]qlqm!
;7y0b+nC\bVfIp5i'D4KO	#Ȳ:/'0/ɓl	i~brAum9(mk
,Zň":NݛDe|	cY?_ޛYp-H3ؽw,1dͽH&[E	|QOex. {[NP
}
-0;F;=rx[øqC/dF~W8Mcrv?i` _(Ⱥ/$
H<Ax#IxL ZxUQKPp|h5$V,y,(QQuWL妬7λF!ߣꡗscG{h~w*F>Fa&2A5 ,`E1){JpѝaN\DS(	W]7(C]d#YT=)h)aRaqڿ/TkúAJ[e.ࡠ9it4)o-MHDKhk}GDu{I_q:%I5uۘHʨZ/ԽOzp	7x{;qdY'1<ir khqbzdF'&r4rrKAr,y;lnR43XE4n6w`	i^V2:`::`]  kx8xVO"W*bZ]Tnu7v튀Bk.8-̐a`%4[r>5/}>5C?}oa4齗qhIKB;uϙ^=n[:ėOep>{@<&_a@\.z:P|1:rǦG!7-HE2l(Hl$l,#d\pŢ,%Q(d	wf,ժ( UuP% P(S^365N秇&<y4_
b%puH"u Bp췅~`߇Aq`BҨP3|ƋG_Ѻ[7-J8$Vd'JA<9M.eh9JF־~Z槐f7])k#҉!lͣI*^8A/05Ǌԩ8`.BQxncXQ蟢mwqWOe,VxA&CG0^/;=HvRK,K?`E;(UEҿtL`,igٜ6خmu5P0M4p=j>2h	}2hGp}pzA߯6d=II>u[9:=ՓB"x긋.n]'FI=Su*ѥ}	kr8A_-s/΀*"'stX5rN(tY7`o FJ;#){gI*(yÈF16=MU˓WNAu8Zto+R0(蛵INsc"r28\V :vSWk2{=7eFia[&UNj	Hr~\Kk,Fe	BAce0'aҀ;nTAMYcVT&
]@QJWq4^[^ٌjg2ϳeh״0D5#DA4MX1dC*I\GÕaT2dԲGk@}
]2uC})qo5ustEʘxB}}s4N"ˣDϚnU[ݦ>djM:ȲMDp0dtGM:PQ%˷ppw!W%yFb g/BQ¹d0a,xy};u%^x6D;ZU̼ҔTĒ̲Ҵ"}e{&OUĥeKX7wcvVssw
U0PU.MNN-.RR l=}<]C}]BkLh=

~>>&y 
3h94ϼTĒTj[J𺧖8%'Oto+2y'BdC8xrSKSKJ*&_pڬNڗ4X$#UE2g_R$;
s3RJ3J,Kʀ^/BdL=VuE%EyXW"q"7"
4L#qyťE%)S+)B 8Sa9D!d
HѮt hӁGLh"2	JM`/-%`1#%9В"-YrMN4 xfsfqf1.-ǢlĂb#&3Glvb"	 R 58x;o3vkii-??WԒĔĒDCqf^r1T@L{ćyǃ*Nfެ! .x;ofW\KojIbJbI"LС83/9U*?QNz: hd19x{}-zsɶJ֓JM>)19Y	 
']x{bW2&o5 D'Vzx{}-z;?kdG1Y3 
'R+%5Vza^5%&'6 }oRbxlqml|9E
ɩ7; B5/{;8:`p
130wu
w$75z:sK|{TH5 xz@u2Bu '㓇zq+
rw crx(P']\v./]"F
;)suY]8b`OXUx8F:
݉M0)	ī)$L	چH(ں٘da~T䂇QR|~ᩓ߈rXϼĒbt
i
y%e
IiiE:
ũŗ~R&JM֗ZS1Y@XjF1Qp֓Y& B1kbxvm;BiwyE7;A2*m /xvmd?V2 7f9xn@tf\%)DTqR@$'qRK:T	Q@uHlyT%+ly`#0$cwg9gk8Vր+^Ҷҍ<yYMS4C7hR۬v*Bw!FW-;-cR/UДFWQ`YPvݥ*;[cH6@Ա
vLQ4+tHY(mIa:]&#H߉`|2HQܑѴy.rF} H)S;iK?7XEce3O):ʂiw6I`tQ@Yd@,<dЦWv!1y&)U<YcƠҳ`lЙ
?h:9JñYN;Ba0mQ
-!?xIUI4F^y'qmcDF[kHOе
΂.u.AK'h)=tt ?8~4-!&_a/X#6t9.b~!Q;a7l_2?Cm{ӂ<΂ـڅ)+Mx8qBȢskk.{Sm5 +:x8qBH'c.a7ANlz* m0dx8qBHͅ\mڳ;K_ 
~x8qBȓdowV=#cU &xZmSJ8|q(DĹzR ޹V	vMH$PS}NwH@@kF!~ss8P*dCHGG*Kf*fRQU>*[bA!OpP\q9;>aOt'OJ?PKBxat,bMi,z!M	*r$\Q3>}")}$ONfYAh8FQԚ1 Gܹʇ9	 ٢B|*w3KwWidHpܥzz7B{7}+w:f^RCVZ[MB=ެIZ1YTlIiוlW4}~Lʆjh*FFޣ]hDU p5V$R9988i_ F7P<ʊx~nV>KEWrHm{Tht~.~ f_9*sP1sz@ڱ)P:ڌXKdBAӋ#t m5S6F`;ھNFB\W31*e꨾/9l xFy ݩ;B9$VdjA[;24ޘ̶5Drb՛]f5˽5j:V]Ԭr|]X7,V.b؀[=q??BV051ac˵n!2qjR89ɀ,'VQ8gHqk:LH+2ƤEvGѝf̓ȉ8jT'h`&^_R
XRBUeH:MRݫQMNKǥbNzB`O/..VVyz(ߛV^\]rǴ)66Q(ie;t+|.>3U ΋˶Uo#Lݪ@^(sx|ͺi\C[k|&&#QT3z[^n0D/l0
=v^G<U#QQqquTiv~ח3,\1{l7Zj)WtQlF[6aoW:jYw2&k.@Z'Y`6VV@fA5y}Bg(l{<Øٴ)b]Ff6o	lr߂Y};̌EHf7Rcm.zcZ]	uf5)K__㺽O7Z\̵̻'-C{XU# i!0+VcЬZ_֜ Gs{jW2Ȃ ճ)v&W~%ePڼxwA6H}F<gl/T(Bt1Mzh,QPvZMpŷѺ	K{nXڛT9vSD?9L{KkY0狮e͞5]F8(ϋ]HOH_mV:D۞'LVbDH_'upp<]C26)as{gQA"d7$WM<r2_?ݠl,l/z+QG(J6 b^@K6ɓ@# 3ItO0v*_TwKce8EGYCIMcI\w?lol6[̚ؠ=}h C ϤZT&Wζ5ciWC5^̢l8f£4"~s&C3euE8rg402:j=.#va"<3c3CLtCS<iso=@
 <BW;jPX&Hޘ}TY"|0'cfOi .#1zo%0̣7LDa}R	;#ĄMAAڞK;blI1x+}D&^9,hvs0uB|S[͎=R0-q,fak?`iz}Alv:a<-0xt@K;!s6N>Yv:tN?^&Lĭ@UzTN8|IW7ʻW1L| #2<iy,NU}%k<$b&Nd0ƱX	̢f]MU58dyZˈLRdm|	gN<:,Y"¿l`{8ٱr3TzsY;,V7l!So^ˢ5XyJM.3 PzCxw{C3"VFFs7K	L/s&l*!_qru`JƹRf@/K0)wjiU&+(r7+[t0EJ'稽 'wx}{CbVXnbY3J&JNVЁn4c&U´yL5dŸiҲ7)nvP\ȝ|Gcs0 s$`xVKLcUo_^8 cJ)X:Btbsڞ2S9W&0&ƍ.LL&э+g1Rpeh˽07|wuyg+Q %MsQulu!Sj&dFB4LRcHYQ
o#c2SԬz?w]M]brhk!=a,YClr5.y.O rۺqۑ305BhV9Oi |ݰYdlÉy9Aj>ŴXЈ4uHI<EnM:]Q_]-1cKh5;]~7C?iiہX8gQ%6n{D{`[V(Sv^u0gXNMtCֺCU*FK1_uӬ]<n6~z
+`GV)~~;Hb;5ieI[kS]*/u[٨RR]=H@p+QFEP V,*|*+uEb+i{j%nw𷎑s7.LvM_t횘Q6Hfq~xreh;옳!Q5D򅓜<HfsXGPuVĐ	O{T𵅉fa(G2R-U7%M$`eTlL@;/z<=3@o%BMU|LKo%BVw[;쵾zZMf	Y&,a9JG{gdx2o{D "3/B!"H;ŁkƋGah]^#-n,/Ia!o9X`He3HfO^/X33,~94x#MC5p,pB<%L{^@wbMc~3הŬ2m)I%y&>Bw[*e>0)a2}n*`R)l+
	}Fl"Sq+}3؏UTI#dX$'dd^89Pmx}{X)  @@f2xWkSWpXCa8nQ)i)CuƎ!
RåJ@WM1l6`? /=˗2_г%,u+C&syy/ͻέ0_YG'_{'3'>j9ƈI/fiIpySDťigdܠ.㧙`<R)O4dw!W`:2(@7ҝW/[%&Dy0|DTSrz}TJ
\.oqF9U'Z}.OƒC}:^]gso3[CuzdQG_گ1j%&	i>A41z-Ql1)cvKWוO3NXl輼,:`<̭zLy'o}0e"wqمSFCx8_a&TB"UU
hK'2qd%foI]G]W.7l$&q ^ r/ɵc' yr$Wt<hO*JHԙWVTkLT)
n6\2%f[QC+l'eǩA!3NWUjЕzHUٻo:k6x:]ڱ^Bax@tb)sB+r[\\lM͚ {wvy} B%I#S
MJ{KrR )8yVdHt?9DutvY`'ۑfs	++M7,WU+^ť8⦇s3x[?˸!뵱)<r&B#LnX,VIӲ!;yzVuJXK}Oi>v)nNZO;2L?c͢9F{{ 3&ȒޗS[V|akӨ>M,M׬߅ed CXfn7KM3	7䒤_gq;fnhaYH')`r^DpWERƅ  ЉoUz! CNaW?:^As)dwh
ΪZqswC˦@dՐ%t]d[\t)v[t˭-AW-!V0T)]#`O$PڑX-7=9?}<1 qLB&ln{3Whpn0|
@~I~t#LxoHa&լp(Q{U/ջH
tȒ2F"zO.h6Pwyv$
"|Pu~[q.=zj[jڻ(Z=)L}`eg>~FVXICV{&'Xw%w/b5iAի;Xgv[}m{Axvd\Zw"!o׼Ļ0p9|$
%htJJoʵ̏jQP*LQ:D+0sMS_8:2K@H =QV?|oǈ>%_ņGi:Yѫ]^h+&L,fĈ8/G|AM;<81@M.ǳS?p3S!ɕwk!vAH{(;t=iV̮qYx>kmrB<  7elN۷[t5JrX֦3nQ*8PP;̧ )(juilϙ!Kձz}f21S<:=
sc139x;#=l W#E!$i|b6f-' ϽlMxkna+' $}x(/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup NativeDisplaySoloist
 * @{
 *
 * @brief Provides the native displaySoloist capability.
 *
 * @since 12
 * @version 1.0
 */

/**
 * @file native_display_soloist.h
 *
 * @brief Defines the functions for obtaining and using a native displaySoloist.
 *
 * @kit ArkGraphics2D
 * @library libnative_display_soloist.so
 * @syscap SystemCapability.Graphic.Graphic2D.HyperGraphicManager
 * @since 12
 * @version 1.0
 */

#ifndef C_INCLUDE_NATIVE_DISPLAY_SOLOIST_H_
#define C_INCLUDE_NATIVE_DISPLAY_SOLOIST_H_

#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Provides the declaration of an **OH_DisplaySoloist** struct.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_DisplaySoloist OH_DisplaySoloist;

/**
 * @brief Defines the pointer to an OH_DisplaySoloist callback function.
 *
 * @param timestamp Current frame VSync timestamp.
 * @param targetTimestamp Expected VSync timestamp of the next frame.
 * @param data Pointer to user-defined data.
 * @since 12
 * @version 1.0
 */
typedef void (*OH_DisplaySoloist_FrameCallback)(long long timestamp, long long targetTimestamp, void* data);

/**
 * @brief This struct describes the expected frame rate range.
 *
 * @since 12
 * @version 1.0
 */
typedef struct {
    /**
     * Minimum value of the expected frame rate range. The value range is [0,120].
     */
    int32_t min;
    /**
     * Maximum value of the expected frame rate range. The value range is [0,120].
     */
    int32_t max;
    /**
     * Expected frame rate. The value range is [0,120].
     */
    int32_t expected;
} DisplaySoloist_ExpectedRateRange;

/**
 * @brief Creates an **OH_DisplaySoloist** instance. A new **OH_DisplaySoloist** instance is created each time this API
 * is called.
 *
 * @param useExclusiveThread Whether the **OH_DisplaySoloist** instance is an exclusive thread. **true** means yes; **
 * false** otherwise.
 * @return Returns the pointer to the {@link OH_DisplaySoloist} instance created if the operation is successful;
 * returns a null pointer otherwise. The failure cause may be out of memory.
 * @since 12
 * @version 1.0
 */
OH_DisplaySoloist* OH_DisplaySoloist_Create(bool useExclusiveThread);

/**
 * @brief Destroys an **OH_DisplaySoloist** object and reclaims the memory occupied.
 *
 * @param displaySoloist Pointer to the {@link OH_DisplaySoloist} instance.
 * @return Returns **0** if the operation is successful; returns **-1** otherwise.
 * @since 12
 * @version 1.0
 */
int32_t OH_DisplaySoloist_Destroy(OH_DisplaySoloist* displaySoloist);

/**
 * @brief Sets a callback function for each frame. The callback function is triggered each time a VSync signal arrives.
 *
 * @param displaySoloist Pointer to the {@link OH_DisplaySoloist} instance.
 * @param callback Callback function to be triggered when the next VSync signal arrives.
 * @param data Pointer to the user-defined data struct. The type is void.
 * @return Returns **0** if the operation is successful; returns **-1** otherwise.
 * @since 12
 * @version 1.0
 */
int32_t OH_DisplaySoloist_Start(
    OH_DisplaySoloist* displaySoloist, OH_DisplaySoloist_FrameCallback callback, void* data);

/**
 * @brief Stops requesting the next VSync signal and triggering the callback function.
 *
 * @param displaySoloist Pointer to the {@link OH_DisplaySoloist} instance.
 * @return Returns **0** if the operation is successful; returns **-1** otherwise.
 * @since 12
 * @version 1.0
 */
int32_t OH_DisplaySoloist_Stop(OH_DisplaySoloist* displaySoloist);

/**
 * @brief Sets the expected frame rate range.
 *
 * @param displaySoloist Pointer to the {@link OH_DisplaySoloist} instance.
 * @param range Pointer to the {@link DisplaySoloist_ExpectedRateRange} instance.
 * @return Returns **0** if the operation is successful; returns **-1** otherwise.
 * @since 12
 * @version 1.0
 */
int32_t OH_DisplaySoloist_SetExpectedFrameRateRange(
    OH_DisplaySoloist* displaySoloist, DisplaySoloist_ExpectedRateRange* range);

#ifdef __cplusplus
}
#endif

#endif
/** @} */f6x[Ҫ.BIBQjaijqB^jEBYqe^ByfIBrbNNRbrXT ",[AxSkAFM6VJ}i)UDR 
ev%3;̶Yz<xūWWlҤaOd{{_3,
*TI<!Sμ]3p(`~0I,@Ic3J4*uKB}WwG454hLhCJlfG79)	T-(VO	,&l
I"jX2ٱj<zui`8T̯칉Óeonʃ]g9`2"(Yeb2AAlR+K$y/ژul"5-SJUc b#-]P@mU	*MocͽXCu7jI2qQ"I%rpLyhb$EWH9϶	3
ىYusEOQp-
᠛yK9mӭ$c͏ۮ8aͷ\asZ:1ô}' M&(ܲa^y?82Ait_7Pg^DPܦ3=UFgYKaRlotbx[iC"d͉LsJSRlKR2J60 "{1x4AyC=^rNiJMqIJR~~J&^ 5
 XxHiQ,.0kM~"9E У2x"pU@D)E/=A[^NAem* Уnx"E`CWM&|;沟YGi &gx= 6.3'/ʉl+{d8q!twd\ٴSKx: ?*Nzy,s$/.j|sZQOOx5!rWjۓ_mgr.h ؀Ur=VkųW -r$T3I`)-y8`P哑VEIVц0ÔGj	9Y%j}:kP"W}CTҋL]ΐ>;Z"|(މSͅ9铑run.h ͝nGP{g1I!WR!9"{_(ϜQ4.0B\=ӊx*pU`Fo>*XhOY;ޞ<QX:>7H/FChˢ=lXÚ,,ҲӴEOncٽ#d1'HQeWLH3m E&/a	';aXOq6',yS=k<XvUov%$?;ȩ߰8_	[܄`I;vAk(::z%HR4荳s-{@u/"@iEVA|mKJ͓Wt\/%vO~ NxM~j_L33y=5!rWjۓ_mgr.h ؀Ur=VkųW -r$T3I`)-y8`P哑VEIVц0ÔGj	9Y%j}:kP"W}CTҋL]ΐ>;Z"|(މSͅ9铑run.h ͝nGP{g1I!WR!9"{5W[LovL ?*x !rWjۓ_mgr.h ؀Ur=VkųW -r$T3I`)-y8`P哑VEIVц0ÔGj	9Y%j}:kP"W}CTҋL]ΐ>;Z"|(މSͅ9铑run.h ͝nGP{g1I!4epP<VhtEYx5 U}FWkoB{-){E$n)t>v)Ox*pU`#ȲqBfj5=șR@ 
xx4 Bk9Ad.¡Aձd;ŝ739]ڔ3;x! kn1uPc-	0x*pU`cfESvTn:]q, b]x: QUOW(na;je*P!sʹ1<yRvQܳ^!Hx% 7kJG~۵x^G7x4 ~j_L33y=`_<NqM7OԚnxYmo8_A_Rkp],n#\	lgdes+:-odRܼ{(r3D|$zMN D.JfvȥFrbR1D4_MΤ"'gSrݫoQF$MJ@W$)#s
MxN")9lzeqR['C,4	0g..5`B.{z`4~ nM2d.eB LIR2x^Ky%+-;qJ19Oi|gW73?ǳp4%W2Yx5?%
a`-؇}.$j 09ZYMہI,	@|Y%#KqdɌ+1Iy5fn;:ƒhk,P5H4_-$g	xPhE"gCX;kYJ 0PIn|őD09f1.YMҘE)Wp%KtV
2lLYפ/?}phXy-*aUڨdO7Jl ^Mɩ~c޷!s	7!y8\G1WGiCW6՛Ry$b"ϣ"-;G|9zɖ^w 8T1T,EgTc~3bWp^$RiDbEͣUT@ ǀ<-$s1 T]7g~_]̝.ݗ7*ݬrGs#zgd{L$ R,5%%xsb~9	kL"6t!fihd	n(6dKf/Ϭ>į=CTҬ0aQNXM<ҵ;o<e𿊵n4zK*AzĂ`Ke,`"*q
plBL6!@XHPC"oLaRA`N0O2<K;*|Apg1G2p8OfYZ,=rG38~'Vn)M~˺]TnZRB)pU#2[ 0[MuNj 9xnD|Har
Tn4ExݶCNӤϛfRdFV_[tuL!%lk67̡$5!L-+f~84-fU#oEeO{fI?] 9y g4]˜/j7<vopޯtܯ~+q윗<>t:"[JvGѪʓ`D͘2^|sn{3k4 ]M,<=K߻KE^g딇:5]v$t!JmK(Զny`ڊͻZ7m?+9$Hgkȟoekj #u';ڭj[|4ڱJnvOqA%)w߄K=k7C{վݽvɃ	n
% 2EFl~1ۭ2Iطe V2~0{w4dq@_xSkqk){b&yKFwЊAk4qRA授qV2L5/!-N$RdӢo+M\q@~#u_Ԇb8	-KtN|PoqbBS35Wii!Dڤ<&=-\{tjŠWA<6ۇjf(@1g
/_[BS߮8Z+/Re7h:x 
&ͷ#UYsp5m4 k>~6:ٷvѪ};:+}A#
;H

	xvtڠ:)@] 5j%xVoEc;%&ͷ"ecZǬBj%U(\ EY{zǚ]	80 n	'$.H qJ;̼y{o棭_֓v2LB;ˣ0VsD9"_'^RQJamOeY;4*{AoĒx&prra}lǥ`NP#uzj5]©v3.	JaYΫ&fK=Ԙp^r<I(㍘g۳-J<&qUfdP̺Àr ]h{j;#5QQJ<?tZBNtfHIȹarvd.YZOI1o:z.<ѶL[:ȃqBO'ǃq]LNebO>i4bSϊ]hSޓ?_ڮA	!ddVJ,i+hH5sH]+Z5P'ޮg3qU__Gԙ!${Q8knXfDqYPntg蛡GhY|0w_GgRr_zt,.$NkSiWEԩT1(~2&:'m5d|egЇν=WzcSţĢD5?:UgDʴ*eQ2[|L
|?Z7qUx(%~7f">f_i2w5
=Hu8̓>l'xan1nՠL6y;	SN*X Фx5*MsVQJzݞY8սkօ򯶻W].*
ť{ܨy+B|
3PGӾL, Z5UD"%NńvKN!Ukeybeِs,^YKq6OkQ՛F?L	/|Kt_k/JnxvrڐŴqrӒɢ,6{M|q} IxxVMoG| vIbP)	r+ qRRSqݝ];F9CosZhAU!c\9 ?wf.Qݙyxw}?cczS8'jԷ֍FQ}f#?qol%+_cy$~LĿ9ۅtbA\|n'颮x5D3YN\G6RXUۿos/?ezv_A<̊f	)f&r.ch%%!>Kأ&2e]՝ӓ:"Py$b>qp)֞;5D˵;
DzQHx;{LWR.eD<N_gg$pU "QgbPv]a3ؔ$exSϳ}L
'&2C-bQ|yqIr,o]~^MLlz%vy5
ZQ#Y\	?̠R!39%fNC%e+{p`H=JKP\"GYI9Z4j*9	BjHVrdW$D\6NOΡx/]ư	}M-dFxZ4w+,QZ|eGD?\eʊUbbQdCe7E"kFYK	Y/a!>ɐZf^<ʃYKTi & ͸'ilǀƩAnXD?U(({$I{pAz7&"ZACtRIJ9#_
R?]&"(E!Y<NG[-E)gG|[~r;6[i36ч֧MnXo/5GԴ*Kӯ"QZq8Gh힓j^&S.x-r-4)|}ר68?//n/˅[f.mx;ljiɫXY*'˲-l?Yվ^
<Jsr
J2RKJRStJ2RRK23sx`BřI9@ũ
i`] ťE J2Kbe@DJyljnAIB~B"
SS&_Wɪ̔_0Ӭ .Fl%x;l6x4Ͷll "53OxhzqvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Ο,(<y)f%I 'jxc|[w,F"W1NΒ4 \	!x{@k+3u쎛ۘ1*lnᚼR ]
IxZ[s~r^l
='l^;qp
ZHڙ1?=#	ۉ6nU 4s\c5֎a!kn>|.$[jم7p<4TV}#lfH^G8e3`QlX2L"1LF̏gI(yϥ>{9	| E1IF&ǡ%v?nu
Rނb|bD	xgbxѤt9Wٌ6JzYW&h' 7gaoXG&_{W/`_Cv9`~wջ÷3wL`q( ĔhIa7bM "D2>MR>l
F,j&5zTcdʙ4У^q,&8MXG9pߜ?xJ}VAN)5;lx2>:w#;qgr`(
&MBhdDϷ'㥌>kTOu?jRy%!7 .f8RiXKݜ;zJOq {V򆎭BڈYPE6;>[{d X{/;Qg럏NÏ{ൌD00CgJjcјoyo
G#?	S Cg^et&fZZBxXQK}CPӚEC,+gTm% )z)!ޟJD0)X`@I,#AgVJX'VXJŉ:;io >AdȦv
w=E1;Oc?u0ܲY@~.=1`*__\ԝ u>Oݫ[Y1I6syݎ-xot2RG^:q 
pfrE@*"St<LfbC'h⁽cTPA>(VEuDb;Tf9t}?R=
-Nޞ
FTP瑑GZ$.zjL%[&Z&y'B0#e0u S@6j1GFHQDd^ldjn j$KsJ|xqnvCa
HTA3d? M_$HRy}uQ	-&ޠ{T 5]	7u< Z[SPJPUgʥE]
cCVS|W)ךf:dtt#XJo#!DIck}8 w{=y~k)Ac3
 &wd	k{ʷS,wcz4 y㙇ɔ| }l(!6)Q "{KN
ZX=[ɡF4dʪd8+ )q?yRS'sUaC38
 ሎ,Jg]x]E$Y2 ;۳=z2h	glFM0y\ہnfoN޽ysԤO~?ydFMf voǤ`yerP:A?gu5nXl/yp\*ai{`@9ȑ׼
r~#@?[	;G0,z/m{'cz`czVvw8'{n,	_haqeEaRΕce+ ''}d*&E<\YoCMcP3qGCݯeg@IH(70P0c@#LWgAi=0y !I5ǳ!=ЎW1Zc!A?/l&`ѵv0ѭM3[,lAZYӻ
/<rؐ,dMxsBbyЯXQp(3׮@%-_v`͑=jw٫ @t[Mhd):^VH;9ѕ88PMpg\dtѳEg\ُjvˉd}宭PwGa\Ŗrцp)uduCq^H`)({}:]׋r$?/J	xk\BK5uAS;[ܺrl4hϻϊDtWSWQO3Bْz%VjزtPeI#yȴ#7X (G<ܸkx_h=H!UW ܈ϮA؇{mOaex|1y0f}\
ZOJ)o)vK
 }	tx|9yCf>fVILK6 ^x=ks8+P3(NTMlm"yL&EQErҶvKNGH FDtD?w3OđT8yY:ws%u\@ɩHE29.e0'/釧 eATI)1|)+DxpE{N yɜPh4p8"6_N$ݱC=>_g3n.R"^,\g;¹%8K+T8KX"؛I_fx0kzc1 ^ƃq\zJFl,.G9<\.\]![ЏbCLJXf!IEfSnRFVHD2^x
)`S{/qzTvɓ?4	o0iDzoLbO8 \Rw.%NNMDsE`oD'b80(PW2_̗D4k	nu</*cҩt}9Í$CAoXg~H3'`1ĩ3;A=s@"f?i*YB<b8Nl&X_@+|&Q:0[	()h|ы?є997x	2	qg~BRN$KEq^<p'Cjo*J>ћkDz0_;=>o}#7h~:-e@q_T=YFR6FGv}F~].C'?S{\b΂t!c`)f4%1DPFש0+1Dy˓Zt!N`PS+JDf	r	/0c9?WQzt@o`xm-9q=+PM]=_53]cw3RF~?yӱZI:Xw	2d2I#	 5#U`Kݱ^U~tzӧ)*Ȼ>1GX0\"V.NVSH]XAˮ㣺}k㧢gMBXEx$<gπxz/Ad (P|>0;|͉Nay[ Y3=2gSK&!Yp G-Ҽ2)LQI&SXX#044(E7
$l¨t4_EZm@E,+yŎ0tu2W9VViq,fFy$LbMD-TjYF"DOy<fxaiiD@V2u{; ^.Âaq2AR5rp72y  t܌<2`Zjl4{bpz7vvu6|CӊƯ͈wc/fjzlU%	Rvqv$$n=) #h9ߝH^^ڄu``Zc{됯8]5r!-vpsͰyg=ݪt4x&8X-u7VeHbQGWPh~54Z͸5b1gmd^{)|"dh !p^4L=}!&ykdK}S5U>e&jJɱskb4i
&N*q.$;	,~L9܅GE=;iWiMj\a蒃΀X1^ ې0g*={<):@tX$wZ>Ƣ!5F׷РiwsϝR}h/@UO)GυtE[ =͂qzl.0/N|pqAj͂ro[ X(E.% !,RIBIifV0TW"4a57Qw˄	D-^ ,ɕʐIo9|{)583dl3Nrco"7-/MCu:/;ؿef: A	Nލw[bnpk/	F9P` K8^9b&Qm8{U7j%~|DIqI^7HZz]®5gq-J'2Y-K̊@skI6̣
4Ka7'c@cNjGТN(| 8o /ͧe${v̒?[>Ѭchw+7Y{5ltj^%}0; NYH;sUl(xf8{#lc,hJ{A;;jn3{o
öVOA͓M'F
ԋ2_%eNngJ3H)co+7+*!Q?O5?zL9)~>zVhDZ6=
}=8O36#B/
q̄oBރ )q1bA3*QOtX,a~~xǑ%	-Xz?Q=sÂARf)#V/GUP3ej	 tPXSNhaNp%x
,ꐁP*g)TMItyUe@7cWI09uϘBfA'J][}3/rli5eԄY#Kh.R:6.0I>6
Oo]z!pZ
?7Z-j{NHa	&XLnwii
Bb}ӝʐvf:YGh-rUP&=!w3@&_!oAYngfp瓇~]Lpf PݏIŀiLU̜haVR ܳ:Vڒ`>0AYӘm؅9dCa9;3vPtdzsf:o}bA	2G
)-p;B7ę0s"o8`$
1mӇEw P%iڄbZGtjws<dRyfES_U]3|bWqSM神Qɺ-Ѹa6-(L#@[Nۏ%e+hfŃE,	ڤ:;&kgP>\P#1P]XP
BcRV+uJ35k~Cpi5rD{B	/n33QS=EUpȪGf{ ,0t>4tR,@{<*I[,n+^Ā(7xxGY#/o)Dţo/ë.OϮr<Uyf`xV:-^-aŠdŐ/>ιǡ(G6;|,3qzrW
5IAW$xdүww[~d=[Ks32i 1٢øҨũ1Q廫Qo
QӐ5t|=C1(O gӻbAuPciS4m։ПkOhhDrK/xr4Gm{HBvLuJ1Sܟow&SĞBYzV%8&-}I+g}'s/gImQ?%s
yuG@lG1(6YH8<&2:q~fãl2m=&v56Um:	ۡ;Пa(`Vɣj F[o7hM3a]/vb&οږlKurt}r0+t%/Uce]Bnh<I#Z1̃hRP7n'Sϛ{㧲^4꒹
Ds'}<y7H/.5iFo^?Bnx9%<JpBfyC(s&F`%g9q}dѹ:^6FB3,7FK@QeyD~%kδI	6~*@S,5Kar}/cOqkJ1a|L'؀!i=ErB:)s9eȚ,=P5VZn^+tsA9e57NHk	Fd,`b9>bN!zMSqњ1s`jTtAuRYr6vmPznwmr^͞dZw]5XQ
.s[äK |/쭃\{(XKd}lڼza/v8M&#f w-5>x+qT=ZGf/}=SA06R%c$*]A>}NZVA>/Ng
Me yflRLm6_b~D+j#Vxm+{!pю(E6#}fT+?kpqH6|M4@*Y._0r* Wfׇ݂7	SFd:7?{_yqf3Xc" V_<=X*+۸=*,*4&9fҬAƷ;pi&h	
~S*p00Ȅ]SNU3j
.R*0yyf$hzͷ+dwx!bX ܞ6b"!	_zwu/` {\&!v4᭺InxG0}ɆOo`e6COTP0SHҲOJ2IN-SĪ}iC\ؠ:mYi2J{=ĳ3 ƪ\Z]u|+#ɹv32o`٬ICۤh?W$
~T)_n90lό2Ӛ` +^|4z\umb"f"ݴ6IU-GRp
|B帬4xH9^ѪׅL`-}n3	2ne4׹y Jϱ\gzsFv0*[
yQ=4Ԇg2Tմǡt}$J5[&ø.Qk1bws~kjR.wV>zՍ/@ /hD8*6G K*_1?Y?Yꛡ4z?6еQ R*([uYZImƿx!fħd?xX[GE?Y~jP״{m2⦣ʬשfQL]6jMHnWCAVSֵYej>U1jkzѕBdLutp~~6:*Gg]`DbX:BSd~4׍R"gt0w aL4[-P%85;-L?iow<Aq6;VW mi
AIUI\.琼]oSvو<A%7&&fHokkrEE/eܡޗAXF5[2v'eelYvvڈA58ab_¬ʚ,+2FHvff揾m&&|Q *FQ}p,55Nbd5QM*odF]~q/Ni02GνW,\bgjͧ54c m=#ALQ{oG:4TU?;gX2A^}IP̬ʯ&>H6EYDQ-46i؆K$ǋg@K/|[.. 1Tt4Ήqoԋ9eٺXZ#^AzIaiNû`Y,Ө*SU/qf⧟ qplXMoŵt;˶W6$*	ߎ-QE^5x3xFUi:)ۜϬfpU/zcmϑOf-0B鶬Jf|*F[i^@EeUl|uKTD#90Y7z59a2=WUK;z
E6^R;F/(N'|?uֻ|!vs#cI΀NJ#zYIs蠙ހί;k{eR΍;`{%쥺udт]Lm;|}~{3^4ER	Q Ewը7K/wgJCt0'L/%hп^|W4l\
:ܟ19G0f"s#&H;rOp#k/E<njeZw*nd@3l]w?*NQ}+=:g]uLEҊ-!"Egftc^lި>CPa2vWj*bW]0,GP[`oWPYӴ-ʝo*WL_,WOGcqJV8'U&8Cs~9	;u҉(|٩ѝD Y1jbvB*~5umgmIRUp_ޫa<ޡ"2ˋ7jZ_&h7[PXa{ SvXgo̟Y]Ϻtf'gmBh6Fϕbքϩ)g}62nг*[SGTصW
=+	Vk>ez>2.b*O6-M|"/E1ItԸ]l)<X[0+XQJ+%;=8}0iWMD_6I8<Rq#ÅL%ow̗#l,0#.=$-j<EQ,OD3p[$>9rbKtEkݵiz$~}[6jWfL D?]E^ᛋK.ic<o0?{YL.Ｒ.Eݩt)rcX?}O1S}0KK8)?)_9J,ko.ՔaGGy9h\ӧ
(G?y~mSە}XR?*W};C;_eMo`i*ql<ݐqFO8 D۬TUd΢%uGnzU؋*Hm!BM>@`v(IC9j8/!'RW2̭{Jm&^*¢La7c0LoBohK;0΋fƁ$F2.
$N\Uf)?ɴzʹseq9)Mzyv̭,%V"ut!0Z_ܲօ-\*6+oB;16-qݬל]ݗ?_'DZ=j6s:ک8|IcGmGw:y22#=A0m/-ݤ{2|6xZ|06^Z%`\N;kRIqxGӝne?̃lxx(]fݗ~6m[
gY	5"4G

$Es*]ʽ#5yg4$"@5*N4^E\!!q
>ldtlmsr 	ןMu^rd8F*aWK+Hv
W9
\w= B"J!M/Mt*1<:c8ԎߌvU ִ*j.ɱpp.U9U+@&g áF_SVYֶb׬\bZh!T_e0uuqS66jį~L[cW;0~ON*75̴P2,這TC^y֢{TqcUk4yE6}'&n~ngG5.\Pk/oK|0EG,>]]C߹{x[!y>62OFvK٣Ǜy^AZPv.^PRM$1)I0rL*"f	O]R'<N[+0XtOo}}< ?z3Wv1>yx̐y?p/Q	+x<ilyLJ%!uIݗEDŔ%U9[3YDXaۯER}M4q@ԉEjq"	Ф-폦α3%%m	x={]}Co}kiMd?0
%Sdv緶/i~ ϟX{'=߲f^2_X(xrrq~9f21e4鬪O矔Zqp\YRufj7@VHГ
gyҦʲd)5EE]ELQem;#JY>}017bU/$odKzЧU3/SoP>ԴIVgؤ!i}%K2^lV5?۰}w}j SCCxݾ-;ظڡf3@RЊlfdvpSkH/IQ`:p lMRoo+Wcqm)*',dE/]+-5H(eA$yLʋx֏οFѮ e0|o0OmX-I1(K;kcɚF|jC3?cSۈ3ZAU2Pt	$4p\tvD@ p-(q)PIAc(-N== A#Y5`좩LBN@dYy@ )a+h1bd,\4sP5c,oք,_K0+DCzSlSaWTMm|m	3Hw)Vn ~chWwv0-,!%ju`pP0/Zz_niK=/.r7<>0jW&/LE1}+W{3qU6A@Q[vIcWj49ꚪ;\ʥ6i]YrHx(z{ϴA,^Zv{/ba;a8<MuP=CM-M=2(F>6LajUVrTBc'':V霤J/xJE<Bb;ZSlBz|88vܾ/-I+. m[E;eSe:=meeߖ7 upSԬ,
p8f,w u׋re;HzDA
zT;I`X)<9l/ZoRxBwnww]bPRv&wq j1XMB
{Δc0@Й^-@'2U糪60][:]8ܘq
 _x)QWdDKn([1F3+w] jOý[;/2,ٷ H*L1Se$g{8݄"U#N&Wo3u`jlb/XC30a4}iFCgH][8ټ?<4[]3k@_e?9}m .toؐP{z*^>k} HWg <E >	5JCD,&Γ$kMy׊iIw&t9\BLeiCwY'\ KF:dr>+FcV' S"lNa,#:
Xe naG֣E, $,ȸ
Tj8,ⶳH:+e?+CJE:Fg׾ͬ/퍵Ro/[JC[l4_kke<9f?RyUgc֔UqW<yXnFqrLn/]WPk*s`uߩb4*zV헃38JǛRUy`j&SpS7[׻x3-Y"W(YYa-6@[؀dS8(*S29dy<^Gbp?8{?Fk Zsטg5:Fb eεMl h`-a0!ƠNt=X_p?o+7cWF.OL^ " D!PT Sy&ёC P^nTBq+_?PsN.*c-+"":1.U'c=OI@lj`9%r!$lFuPw7	(:#^!sp-G$OBQBN]!d_*$fQqԺh{a٩H㢋1%r\	OX61#7pG|)3 6
!X1VX(xS祏4Kp̋XL"'Г`A=Kc|_Le~ePLbGb˪͕Ӟ2f]bjGfb87u:Z+HπɐnDn 9=zAf)3hyPsIo?<:'+Y2
1lc09ՊLpjd &<nb>l[Vvy}&yZaiFj=ߏCMM滮QS	Y
rDhjj<QUƍN'[;|c
^!UXS D+Z1|y;ǭS7jljVZ`E}6i<Xn>6yJ=@xep[BQ)G2'Sb6T[6-0n8ęJ	`2kKiOVxɶ@*
Wrge㒚i@06,Z4;*6Yme{ٝam
Zyqmbx@ﳆtvCFmaa<0̐QZ8éÁ3FM+:oʢߞxRm\^>|^i<{=)۫f=m%":&bS.$]|{#f֔_|Ow:\?m/56Ӛ8[]ky!--L*k-Ñ	BjNXŁ䵺fި(~Ff	C0N}<cPj|h`"uO+ۑYW%dNTG) ^P ~qol8LDVQM@uSMV*^x|sSck0 =Y$}E3f?CϝF$Sv3_4ъ~WNK&DUo	2R^LT춊`WH1@4q5|2l!tdؔɘ$c4' Yժ:e$I^Zc
wɀ}\7UcEmLh 7*' f>2cgRܝ YZsj;T2@oK&̡]s0D?r^g.Fuṅ ˚s{P|4Y%a4Ay"G TuViqn5?_}plS,XgV>/?&=;UkW}*PergV׷G9w-1\DoCACsI2h:`y!Vq<#u {2lFU؞.P.pT\.s([xy<)pwkS3,s]T]i7j"PV$r8HVbd/r4c<p~LnTA7r}rs'/_OMxD7X*3QjYѿ]RMC{ {$N{tQh
 
⨻YU0l:[Кxǘ҆lmt.+1/5)CrB~:>x51H*e8 Q:ya42VD֔Ŝ4=> |略u_J#)G:;K]b@֌{"JrWFՆnUN8d	s'vc+iVrU_nz<}+DO{7Q`_gЃ0=_ڌ)XP0=ovy);3Ql-5Uf|mZkǎ_rj^}đ^|dO^z5yZ儯SFry:Ūz@yǗ>	Ǌy(#xUL!fW<|XztM '_f";yϝg]5yVǀ5q0;Hǯ4}DttRTQ"&XSg#J` cͮz&7UD:60¶|Y?u:AUtkSJI\6F!zIHDv%)pe˩jSYC6$l|Q{^cGz.,8T9Jp|Coctyu90So}B4o#fd9DrѳHNƘ\$roAlRl昃`ʏa8̖}R~+C#'V/&17NQ| &7r=	܂gx
匢B
ΡK'x.hsT|4Ր;fn}'>{.¯Ow&;,,Ϭ8W>>`nQ}[cJJcޖȍ&IS귽Jy_yb`~jO1g֔{W7!UW?3g:1?ArLD~Or=3q~uc4
'ݶ7jG|[qs@,jp*)vs]U+hwhZjޑYBdS+:5`%#y fTx{o	F,
mX22*L~a,[BIZ.-Ɍj{&M~/1a7a*Z,iϢ2IFt? >`6s`U|GVoA;ɞu^fLuT)ɨ0)YiVѕP#89Yx_6AVE26nnXrM aE%)ln/ ztPx{nQjg'ZzowP 27KdmP{,w- ?x{i	+6jȔ.Yj|V 
cx{uɲޛ56 	<x[KlGzE%"%TKDR$ejH%E$Jkۜx{/챁 kQXc>^blAA=,C AyCbdvW_U/_ghpկ]7{*fP~[z?YHfdϐ=3ór:FӲl`J,#:[|Ӊ>}n̰ژc^02^Ldә	(: =m"SW@PEչ9TnV[oE30؎o[a\~u0u>bk2U`Fs}	8sg%h!0=?! ֶgeN<ԃJfvVhaCApj5n5@H?(2'ax_	9RS5%s2EL5WTScٵ Y0װ؎InXu(Oή̦Vy_$_f@޳ۢI7P#7K-g%]u80"s`%]|:*H`fw&|wr4.8E,iKI,a&'	koy\ttljorfgEBBء)2鹹bj~&LE͟}E(3fEr1R<(76+3'$mFf2NeW2Kiew29N) fs۩6FSV]A1bmE$dB\,׺::  ( O{?=?G)x؅5׶[;e^:0(hNowhN&_Vzocqv|Ă$@{n8w _<:mۀZǜa0!x!'NwON_z(v8)e>/пiO/G _
rX4؁"}CNA!`*aJsSH# Sc*Ca:0`(IZ&I︥QbDyAUѥ߭-Փ`ӶckA:#AISHI>a%
4P`z8McO+(xA7׆:S]o˺{|`$L?	=	)cx8S>l{:IϺ&@vDAtz9"D?"\XRzX(1+8 (+Tc܈e+
dMˢfyqD)1<Ygg!	k\J+⠊Qbl<.Nb-ƄFl$ӛ8ѬԏX*̚.zqwGRXlsgPxF(;Kv=:[rgTq[3BYV9~	X ǘPMDlb>#*/'x/:o$|oSKojZDiz]o+-s{)L[cZ`#?tv̠#HӠɠ##~?lL댼7!ц+y6ftK7<017\?5]]}%DhQ4ùoh˼84<7T|B|җm13Fػ-l{9aMf,\ZZWkn-6k9BRx1^(/Dsu.Ql#1X7vxwE>WQٷm@2sˆRXs^y Ic̾l~-IQҲp7H,pXw_hD-Xos]]Ll,۷ZMJ[$T^OIi_ےqa+e#D-:6szt~heN$eB4~8qޛ'VQqyr1[Bи҆ێfIgѾ>xgPbb嗝ǝIU+S+bN"^
fGMa?R3frcS-OpdQ11lMLQT;f@b=4X@.1x+fWXA(W4W1Ymԩ3_5τ* h0}T  0FVRKEi*IѠF6G2ɓ Kk$^i|&z]=+sŰ-o֩YSbl#	Uy]7+oM$#nګ7xsM(Svj5ޝ#,fzMdQ̴ZrF(@BA,,Ϊj[	FFmPtC$xXfNFS!ʚt63x T)})
M^?,T*|2L#^ijIעjV}ፔs>Tˊ]4{i׼8ǝޮs
k:_s?>Co}9SeH&ы~%Z{6sez~ǟoIVҡ!$)`51ܐoCy,9mC--cұsEtV6,dBSDG}|.xu*4J)VZ߬}:C<}z 2ȭ&Zd*U^dERC癛	uq]1ƌɋ#V<C[e"Pwa$.oDcslF\=,2qyHytqH/7p}*R͂(O#V	:@n^ND׎wؓcxICmi[lō/[!Q!RsiB{eWTgLW]+NY_҃&}xUzZK">褳1WK	yyUREsiD]_4= ,smYtUX;/ :m.'0e/?Y\w@G`'APn.'2lH"5+W=0YUTt%LÔ]DVm3=ym<*KfN<m&`(PJc떊lXg1ݾ^I}Gxt*0]yZF%
u]Q8C|ua'K70o*K5
qNfԵV!uU}|ŗ+5N3'閗`TVOH-eTz=sy]'V6(`zK*PHqϱMN60(8@v~J,`QJ7ݨa0_8߯:{K'N^h|3iҡjc23Ƭnk/"*╝&<;9jgB1tyE^I_n["3;Bihe⥖؞THF6^#*EDZ+t᭹7w2IajRP)?.Kz>;VH ؽ7XЮ_^.j[.0q۰ӊ:k=]I#WL%Ζ49tO>`XmXʶB?YqE`NDapHCN2cV6IaA2
yȺ#֍O)y{ow~¨V`1G=w	bӢmcjڹao-(nadx*ӛ~MY#҂OK,pƉM?ުPP(-uǘm̯/C6*٣4u1ߎ+ϱ;EOP轚[B?#!T	w~!Kjqk_}2<aUwB
<:<#>	/b[p.~:OǈS9۳t!(OV%lJ꺳נoT^_ǯޫVdаn/OF^><sXE
Uu~!:]g#R%+5'&4ufRdKoh#۳3h!U|ƨkJWVlb x)JRAه	Q lR̈́5%<n5O5׉q$i'1/1A|z&lpK<UQ|:x>6sE|H23W3ߣs):)fu
&{0-Xl!TlKэ7\!.\A[5FQva_mĄȵ_e]H.&零ŕJfne?Fݸ0Sѥ۴Ӽuer(_:jO1s`w,
6v*nI|I^OEdabA[b;F^DPʥL&5c0kFcÆU饯ZJ6qJP⾍)y<|w"aL>		ߧ_׶$PiF%@*GKbvpB-:jݯ9ڍ-MeG_D֫:[:DAxXT(UZd)W>h-qSQ@SȚ^)Lh@yL6 Ô'%X!5W/\f#ÏDӦ%fF?T$@9b'f&3 " 4H\Z;BS7;).T	q?zt:VzGԾTDYC6h 6w֑VΪ׏k~ˡW5jxR]KAAP)Tx
[!
Pdn3ۙI%>̃?PK
	κv3gν;s3W?> 4%y%#`yx )-h&dOC1Y3"psDR'Yx0f\4__?+"T.yVzv歨aE[W@ń6TWAjzPU6
6G.vI,4]K@,i֗US!@xL%Q6k'϶pzB1B bh/dfᖘLvG{g),nr1d7#b.QǺY:ȩjΎj/b5Om;G411O-ze{ߣKV+~(.f#? &1oNg37>r/:c|v
?(n,x}=n 0?nExk=ӆ>͏ut2x^xhӆ>͏u|T6<Wel 5x{m*ӆMm&;qd*e(T*d+*)=\]2Jx&;;e{敥d&'+dB4#¬#'+4;:89ՂL*H,P/R[4bBa!OЮ]zONb!KkAo1]Q\t2i0ü8E mR݆^0wNm23cmr aǁ!x{2{-'7:;M ^3nGx{BǺ6J 9xUoEM&aJp7AUUE͇ZjE$k;G;"'*
D'r,RN= {7x^:ޝ}~Α}~;p9^N1p{{7ợS	}[LGTEV6s2૬F©SIDParfiqř&"FmZkTO&A`;Ǝu\4MI>Ufܑ¡%Ƭ]^\th	쪎7{zs^bz;|LڻG̵pؼ8<?uw߂èd{8<K=&FruX-2I0$Y
UxT2TguB-aKlgn˰ xܖ&n|Wԡu|[b{>SP\Vjԩ04X/Na)?#UGԗpԫr?W).\rZ\ZܒUO*㕪>|~md?_7:`[ܤ2U~7p%sMGaT
\\t%#dx|縮|,՟zLaWO\>;|33O9 <J-$vTx;>In}117Xf,{:Iz}V[aT"Т:^z)~|&dS{:!=BK.m(ħʅl?0z'+ILj0A BT;&?kݱuvYxyL6U<B΂hpJf\RF	y;h~AN1:9+sXAm!	[5H27UHPPiӋ3d8s>>E(6\؞֘]Ոd0Zn[%rВ{D\ܬ
SryI `O?Fַz ̌T6<8r<LׯP;nDx{mӆq	 4]w^x2 !
=p4%&=^D0IA#Ð/Ix[suE"DY$kQBʖ)2@B,	QY`/IA2\ݗN'ҙv"}iN'y6L2gzιw AEnv={~~}Ͽ>}q>@YućoDć$3t\2e+fA4%gUXo2/_8˟wUmц0Ekc2q?d6ZJ&2ZAT<81+6H'ڡMĿᡭnԵE0+W>*3+h:,u(nQuS;.+.ȐRTŴm)N`;-uRJݹyo1 0ZAT,MSJ)lJra-=7䨖:DGlŭ*Qܑ[ddbO	♊JriiriM#W4jn醁/%KkxLZW7UeT ,	[KAC#C7[LKoMMY^r5#5h'eflQdnX6CdTO<󠄙1?,HzQH5KՁB}Wh_6YkGb5D%
AiWns[KɅDe& "[I)g6s-BĚ}Tb3PVuĜOf)
w㙥jŉތB&0\4%PQZ '	'm'TF+K6egay0>:׹Iw]Yd6S]6n!9Uo_E7;Hbq㮞͉q7 urz'ön|QdTxn"0F#BqcQR◮tvX	G LP~N޶JϞ~K%AC>v:=@ g.vfb'<h $V*[ŉO7$>VR !mVlSYW
xbt)DXƄ?D9(@ÇlVWTj|;~l"	r8KvpM>G=_&zjRҌOi\v:ogD47#|:#\d{8ݵYN9%7aCujt! el Lf1;$^ɒkO!~[$jL,`?2E, `-9Cc`wF(P|K|B+r&002]tKST(q8;*M,cxXgj$bRZ!U,L)<㎈	=ƸՊ~;P_\.zj8`Ƹcu̩
"b)2?oie~02ΰ1ڀW^({m6QVm$ԛc5Xs!dQ+0|Hvf5M=WGώz1,.9ȟv%*[zN>A\^gjȹ(`29p{|82i=2L"3\#H5|4kԞ$}A^m"`?,s$Z`0CG1Rsቴ7jK+]'	t-t㥫fFb9!ݍ݆<;p݀K.|:z7}fupwmOj1qqqKMr?j>qaKb"ivϐEZGLε1؃٦h6l*b^b>tUD2RrXBvL⶝{oS(_A]6'۞גte%#(4\o+qM36\?`U)Y"+,[b_l#-_2Vm5ѵmv%g-ׅ."]v@,8֋̿iEhZ`-#}H $H1~|a2Xx;02@)+]]5fY('DPt#=bJLJ?~VoQԚ<ta|6"˼:iݠr{x9{$<yL]v:Xq5t&DyY_+.R4"ȕG?~MPSɯ+6FU8Tq-,\؎aHMtA7AЕ莆,J#V\`TtAh0*dB(^+DjJJ/3:=ÛWZ)s/ec|P3䕫eLj,bXʵKtTBHA.HMeFi)i,N  bI%]qR_x`T+⤺^WmxBx&^3*ِQ`·@Wx
Λ`*,z[[vR{$RA%xt?;sǢr{) kwF[)d)euHѢ^rufgE+8!`y'RAxP;UN?2n{vk|m `l:hJ;{twņq9B`0؊ICf!y{Lsx!z߃^|@v<1rW6z(o%`Îծ1)mq(zy'{KD]"^lWv[ÝF=ĳ-"6O[3FSBe9iِjV!eR|>t6:pkUA"|&*u'64Gwa6A6JI 
Y/D}; ,l[ˬthȸI(Fz"Ogt;'nPj.Y91lm_8lfOPK4xB@ΖS5ⴝ-r ք_q 67H7V+4ӡ
5d+!]]Vr98̎W-/i!egPܛ8^X&V>狪=%qo-P"$ 9&:/:LWmO7ɁtY	5=;RJuEʸ3âbCW0>[CC[ e@ni`DuÄ5md놚G@LTWm ĵyK+".[*"bƸl_݈7I[RhP[Ŏh'`V8R)׆B֪5z)duDV$UJm6
H*#X3t)Eq].oN=']1T3f(+HKJ8BBLS=V	H=+$|&DM-k/;k<(C.j`.?yz81;~olC *'&o9%N1gM_P	9I~þtX2`gP7	"f-Brn*Sl^2j f~'ٰH4v\bYg]9wBYg+u/ro9HB8:״A~@]Dh=8lLՁEZgg]_[Ni?'܆ԠW	ZcztfK@80&.6Bږ5B0Ӛ{cݩI[հ~0mo{eWo&OD@v(dZdQqj׵}'n8	157wXF,s73BP),NMudw4OeApcd[jŎfaI`F=LKb@}/2__
1b46C\(5_<=v(!q
s,Oz-3;C),b^C~YwFHη׎H`/6h}g@fC_ xd#حO{OY<|S̄}n}ӹ̮mXCv|}PdF5.SI<x7? *nÉ^ ^W[AVoѻE׍jL_Q]1k#R\ t_e.~fOlOTpig<6	:?G;|exV]L[eNK[`Ж@H0,l8:hWjK6P]ͨ(œL&1-dNSR/fl9vگ@}}}ޟs-o]qFN>VmTp*u0>,eXm7TSj,R҂v)e:.䏎'lD	`V݀P!,`Wӹ-',^."K8md,DYdků3[d5M>nWӰ{i625ҒE*EAPR|\f%h!R"K@zi"v-9퐳5U	*0:v2&O_S=
XCjP0eaN$BG|8eB+#&,FcpxGAzw>\X+gX$0[,hAю7>Iio۞=%6y܍ej}ADaǺNj֦d,Ǜٌ!sfoQ<R˔8ހO\\;,6Gԩ}9q3oSrV3??_܁d*d0[io-@$:=D]AD*v('K9>d2zL7FeJm_i5G#L={oVua57:sٮvAԯ&QWHA@3W!|R4H<Ij6zUޥCkL;]Ƕk	P3v m(I\9ǐvGIF0l揽Lɀw-Z&}S3D+9k8ٺc{![zؤw6I}
V@ֶ׬Q+ZC%rp,E,(Tg-$[)Og=56wt: Ɗ6o;G*O'5<|*ȧԾ8#M_2dLB^$jpN$DP/Tv/	x{/{&7J-ITH)J,KWHMKor\?gQjr~QsnB+8Q$BV~v
8r|*8=] v%fhZOUe 9~x> &x!({
@m
6=?	Kual[B\z2Mx{/j&qMRS ]z	kx{ze'S,pB c	f	x{z4	X6Sݚi3[޶7oi` %1YlrKd-ʑ}'WGN 8dho"xɎS7ǧk12g;O~j%'L͜3GQjIiQBd8=7ԂԼbTҼ"4^.-ļJ̼ԢTĒ̊Ʌ".EyA%ZNnR!:!/5|Gw)!$`zy}sB]R2S'L<ǆu?OƓ?
jO.g6OSOZvt䛁TS9)h9@䤀̼c!9SYD&ϔ J#n#x͒o@%JD҄VjxP@
*AMHMj&Ӏ}INulsvZ!T1 3(+##8$z{SjPY1T|}'_mVV|
V|&+fr"ncp{e")?TIA#.T7u@zT MpSdCbUlYͮ'HRU=q]⦰-H=dutлfڔ=]92%g?/ƂG
쭒<`87xf/!pۄ~}b]S$Xh4*h;
Ѫ=o\!J9.wxr"^+|b[sGW˶G2g`Y5 rR"% ݌5x!`X ߭l":;{NVd.OpsKra'(FNc1Cb9:S>?n9Qr70R,"P ;F٫\\ۜ^0idSɆ:E^fSaZ8Ծ919ÑC-lEx3sR3KR&op_aR\RXZPL!5/9?%5E!3O!4MBoF>qfɎ:,@dTuE,`c]"Q\l򁢅~y
i
ɉye:
@'r)h)ļ4m

y99@i )Mb_a`}pO9@Mh$({ă4ăjL7_zc 9u x;<4&rl~l79D,bU y0x;<qKfFɂfٯ(;n9m\6Ќߖcc> <-sxuQkAf]c 4})BD[=IMH!xLd`3LA-xPIO=$	DO^`Z2||_jOo2@u(H6YQG	V1%.(dF	*EkN&4	=
8
zrPrG`KuLiS'	Db6ƗVxu6Ńry>ʜEJbɈAzM3pq\h"TZį4>דؘc"uW|+ޞ>X$:	/n٠jG(XVt!6m$l3ႯKn~;!?,jL1[I_95XwXK/^Ue!ʪ,*VyK٪cBe]jAb!3f1u08/lAeɞDAxGՌğջmΎ=PK]`2r㼠/7	=խ]b?U[*j~6xV[o[EB"(m% q&M⤶	9kgs$~(.Jy+2"G~Bj̹3盙o~Ox)}Zp|	ո$Q;#QD5<_f7ܩImXMFcJE(017t'}=<+|Z.嫥E0VLp=!_ހW'ըT}-b=&+%A ZF*.Yʌ.s˒İ1٥P(j<ԇ_Ej<LP|pEgtu̬`u$*B'1<JKn llcX34̭iPWfѺ,(AZz. &0 w$14S,AÀ}IW@\9c5ZI$;ԣ8ގMྺT)=B\tg #P"iB~)u^;pF:cPT~FcZR؄+LhhFԳ<D0Wc (b['n
Ҝ_"[a(O~l vĩTG'p(̹7SlO?xv\ag5ϥNdN+䅵LłA tV\5";L ஈ=B>9.{+@"ȍ$bꟲ)Qj5"sR%Q5/igJNO] 'HE7~	Qo"p:dMC|Q_FDv	&!z*n0On's!P4%u,.1.*9]+Y/}{|
dýS`_:+_ #yM|F-
Nw7x>$
7:7]=8yAR|2Qܴ	`HRaz	T
	c^1DWxJ2t#tBɟێ'*פhfcwQ`h~)a-6Z/E{w2mN%.ߏaXcW>ڸҚXoHuxWKsE.?blq\;W@el+~hwd^.;+QEpʅU\ 9R́vW+vgzٟ~wi7C]=61='|o6xzJ0}4;>!9dĢ:8'<:Vc6?K]kUviU lt30B!bAtT`AhPh8҈G\R@et@4ͭ";.rl2x!fLlN.#r[wL`ALDɛxt,,x
'|u(KAF:e9
GdOe2ОM4ZD~l	
3U# !	:86B@#˶-F]׀='A"|ŝBϪc]mxlvw3w 2 ]cr!0FhAwy4/(a埔OܔX]<-݌$c	ĄƺV҄[tWXBjYaKMyDtOMLj	^Tժb9F+seꂆ*-mm LMXB:qS)ա8Z0wBS	=${-%& r@t@1TҬXFJNaE>&% ¿Ǵe4d^NJLTSMD`erBtCc0h|k~m+$7x
7-}֍%¡j'EtSv-IbB".) ?Lȏ6%UІ<+#/:T$T FaId8to\QnkĊN(_PHhΣ\رG仆iuQ(>ëp.~P,l7õl)i
UHk&AV	WsFW	=ʔ CQpuegA7ۣ{xw{ת&5QG XHQS 	'1gDC39߻1l.|"=J+-.ۉSa3J{ˀ+f^N yxi26VlmAyӻX \[_xТW}kW]sY8GemEڔkyj؀&Ik?<pC܊m۱l8V-e:jXudBgiH[+q5!a{=|SnՉ_^N{%_~[4ؒ\|Q.I؄@i>I`(TtPŔC)9,+KshEOIO:q
܄L_R~EE6:3/SC6vX,^ks~K/(N&C & *NoCN
pqf)@ޚ_s(c΅楹v~gky!ܥpuqɪ̓l3װjNٸ6ѫ\˳W19HGsLF
_#k2@Kxpo3̋H/]Hq;ο֧D'ipxw<cY&gKd&ZYdVNTe^ԅ1դ&o( qs&XK\j~?v`C56 q*Xx0 $8round521F 9/5m297,ix{8}Yb7(M6t1 `x"xUMoRAMMĦbLZkJbtjq5"4@ctC}Йyu_`F/ΟᝏGiY={9޹[[^^EO!U.(loz:uі>N*lRkL&'+z?'W{MN0Y(fyʕ>X߻G)yErH	d	QQ6"B3JУ\R?" UPJPH))
)eMtp.Bʰ" lHF4 Yz6K8x٢&{0b)OO(> J?bH$GT*ޥ}{|yxpSa}Dg2ۊt +_d]r˫*,aeu#ܓjz!F>3t͝bZnkZ%7s$@(NbMbbVXkZ]/{JcNG@?/f]Jzn
il|Q41G0X/ٛW61N}P\. 0cLWCR*X
fMxpf`l/}+,=l'4Z\f>ocpbvc(ʙGAT,D>w}͉]LuEdoa3ZP+^I5G`6pHciQG[2=9=/.i@VV3{.yǹ>W,[j*qg #L	!>y9';a+l.G.?v9?s^ մw0VɧjڗsɲVXxQ}x[>/g{l%E
y)
9:`VbNN~rbIjBBRfInbBZ~BqiRqjaij^BJQbyf^/3P=PZ\_YXR4$_=)E|@T5l\=y")LFq'$VM~!:@VlFIɎ|ғEx7
) 6}K}NaxR=oAU`pbE	(	(D"sXn@@ATnmc;R \NC=[HB⪝};7&ԏ̓iOg'능~?edvB %`up1<@:u5S˗
d-A2ǜ~'DD\ZZ%+1lȘ4.Bli3wr \5C$P(u9!ipD78},iCrǰ۪<kAӰQLfU6ZH[2O}dTgZ5r	wVVЃv/CP,4g%;aAz@FS3g|ڃ~DSW+˛c0N8g !J{eJ"@CKB kctVBpUD5aBS5Zs;zo]#;DxWi8 "o̴'zmPc-b2b^n@K],Ts`4LT{Sچ=-B svBzxvsѻ,j7n^ܛ]\/XxYUd	BlHM~&I!d)fΌטGll<ٖ*P6 bxTOAΚD
	0#>ш4?L@2Nۑ2BbB9x1	\yofB11о޷<yqhgdE.S"U.s))r)$+]@Xb%敉\w. )L_6T)"µPy|Fy3wJahiF["*k@HH$@+YDsXC.p$Eek,u-vDIx=eQ|Wzo~?ԻKe:P"3L?G/c6E|+c0 \vbGkDZ4ӛguZj7')wnkyIL>f}{NoO@h(ؑy:>]>Ql&b&qI*BYWnę+Y!c'ׁ[63PA	=ScC~fՕK_ zs$ӕy):sW[ׁcWVVqpv~4!/WddX6umZea;D-h`FxnD4)0Ԑ#Ki,=L[_hn,i~v5i)y{:DхzO0+%b(D.81-0|zh1ta0)\NIdO0"<?T}u??wK&">Tw&sM3+ٿ('MI~JN?E)Hx=?Jsۜt_ h	mhxuTKkA&YcP$!B$$ {gkwflɋAAy^_w},2SUW_?=_zu_;sI"PHBuD(Q EɰuhZᖔBe^daӯuJ$fM) i\$ \uLO#d!V6UWB28`kE%I5	k8eƵ;Vz#y#	v Lݖ4+.h܈R,L_/VbEbNmwMshzr~N):J<Gg`#4~=`sc4-kS.Zp[o^_<<ۅR,t_nb@"Ed"b+xȷrhP
i&e.U`Hm+9r3?t!6~t3FjİTih: 3;RHu+ӸB=pўᚙ1DeضBs3W3ٖRy@YT[Tb<4s} ׃SH˂d#ݺ)is&7UR?RFരO(Ud.uswUk$۸vp㚟7ZqE!N"2(Ѽ)k˄ғk-rpZk	{KaA񧼛PvCqf9	cFf[:j6*-H3o[oڒ̛9LUW2{_I4?6п)L^]57g&jch	x;z*k,$l>Y
 b	0O xT[HSa;,xq^14ͱ]L:,	iH Kя'1!*!>zI07L"oc^δv~7@&G~C*;sZ/T*ڼoĸNVԟaM{WNxu6HQі8^}*"'gbfO53g0`鼠	_2zu'yJgg	cQ^*\0ΰKZIQXxn>Teo3U!=$Kfʲ$ɸ4$*;"T2'\Kn2t&e#\IX*><uV/^PU`ĲuP
4`rg]=r0dPNOB,8UQc09"3ܘ.ܗT^b/.77].@:(s ^XIk2W=9ؿQUbpd}/\M"|EHu1	wMDvKD*@BiHdkX_8@-~FS<lXk,E~Gqfgk{H8렞ca MG45).tڔ&ҚGUv e-	6vVqv|I%//fxVAoEV*R5(((-PjK[I!47Ic;[r]+gV3uR	̱T PoR73۵䂥y{{3_5ïߖީ§A$qd373H}
{f8|)Yb[z]/[rusjZhV
)Z8vje5wV懌NZ`Q0́ث7s GiU)j=;I m6u[
s$zm}2yHHPO)}LG!~^nw-`jVr8&]@Ch*V t(Dl3jV~AcJ[sǺ\q4MI8yáDЈ!a`E}'EdK"ZqhO[ǵ_K}mf1@N*$@xYo#6>(}`ɔCag\LN-Mn]J$
rxEն0aA{wlaP gN%*kUtԲ,ή|0&]?c/Gᾼ &7OISo{<$Ƽ('OOkЫ15_k틂דXvVL˕3˝\s#{QPD U/+s7&D{kS̔ӳYA9_=艵2lLѷ sD;t?_>﷿,9s\Ξ]ʂ˝˓M(иdg2I%3ĉ`E
d)ۺ qfJT8CR`.]\Gwk)`Զㄞ4.?vR&K"Cٝ)	EnjomǷwTCe;R⩛ֿLp4+0;J	!1ޔ!)a+YvH׈[&==2'$	l8_s6ğ]*ɟo-pl8aZ0(16¡#G6 T !:V3gng	${B|5ĎUBewq<K^`w3=5';8B$rA.0&][#+aVF;kjⴞS|Ӆc_df=n;aqgxsq5,ٙ%
EEF.\
Z
9IEE
@:/$,5>(<3/]8!
}X%dmeZ72 #Zx[ܱyf[7Ns<Mh	[ 3dNlA%E.<19RuC,gJ($Lf_2$PX<yb\@&9m5Mqrd$'O̞\]im0Ͷ&ZyKVMγb.c<9a;d5׬HdYo=+\Mܛo Ck\mx[ܷyCf>Ìlb{ l^	<
x\[sH~88هݙɖ1HfR[[.!@ZIfH-$dl3rn_s[Q#w}Ц~Ɵ̾u=j_<S;[IF;\;l:r#Jn\/UE()&?Jz71f44.b{K	ySrI{zɍG"Iۨ);?7I{{{c/ɉw;FƠUSߍcμdc1T߾ ":rQ<K8#yqyY㙢@ fOUO+:-nÀ~zAէ5./AQ/[c{FL17]),OEc8to9 mz=]QF/f{/q+CF5C{4J(Ԍ[-byQЅԑ3t@X.lqBy`is~<;<NIzwes eup_ KvE1s5!=Iau|Ia64꯻R0{26MwS>{	գϊ){Ȏp*hRw@da\ɐS}|hod5ʽ)e#щ?>4S(
+';7Jʓy\1	tao@UxƙJ4"`g9\\5j]i"It͢MfQO|BaM1LCFA4jQ$K ԩBg Ў	
6%jCbۂդ}.Beƌ Q(jA8@$L2'4̦`2fQ(YT#Ю1bֶйB/k,~	K]#54LwP΍ҹQvS
H^;b|a/H]?߉.cnBtD4}9NDb ƐT?V\&eS0}҉8	uH"{eߵNkKwm_#Sg^tݦCaxN52|]>/5P*g5r6[ʤj;1t	}dP݃ ٴY!=Bb}fQo' ke$uǢZiV_,Bi@zb?|#KHSKQ_Or~AqlMg7hط-(^4)9*t OD.B`eR6pbbE1rڝs|8 1}Ţc&~i].޵H^[khwpp+	zoZ hAZc+Af[HEl|5SrBxwN6(F~"rR4s#|=1#H1˔LVq$:LzZNf?NZו	{M">䍉Gt'a.)t#΅?s/sO{o?)Y7uMB Ԋy;o0Pcvof	w\5W:7'tޫ&±䐌5fMk؂	Ig:Ϸ^,HZ2xrʲV>T#j}Y!߻'м23ҠxI-zG[DM5.>K@LhfNCN]5?Us[BC	b=7,oY9(~Ko],ܧmBB?Z]oG\r0!Ŷ$(ɑu&+C(x(zl9ThnACUזI	MmcA3Z5w /tPy'2CرNql8tpPd֛tI=_Ւ&DCe_iJs!P%Ϛu%
N(N]4?  
f<:!LDCUAhMN po#-Rh{׿ Qb	@lTsZf>SM0:]	yOY<z[2d0.~̭p?`W}\!]׭"y6yiTQ.\0Yp¡6BwPj2#QBP-PzpK~g4eTay{%ӓ٫LZ+fgԊ1K~4'f#Q%wuheWId
O:~XQ,lP"a,D)Qc<(㣜e.t=H/PXfv|nj]rζ|ONg;ĥ[@J"eTq2g؊O-]E|f9b.堋yЅ#%JB\P>MGt0gve"!s} NC3YgyqOf [_ymCj`3}n4ISB]	Nj
 j|pu&W=G&pćHlJnS<i4k}
a~F/l'01A8,@?bQO1K|T{fuB|od!BlZ5<|Ãi󦊦7qiT.Qh6(@æ}+Vf]`V(ʙ&m%+3~g4Y2[e/`_^4s\[8szAn&xE|C7<ڄl<b-ZnC"q2ѽܳFptrd /
v.QJ*5A 6-LA4p}eI.J`Nsr
KpYEMY<I:siѹR:ޱ.FA_pukEj[<ZֻXK]l9urnt|f\XtܱN.jt.I\1]o>ƾnl2rŸ1mLLösi\X^ˇE3>f9Wۮڲ`f??Q: Z`JLؐ*ra8YaqvC`/Ad tuCߛ~W.Vj %lg3Ze6>;Uޫ{H؄D?~-zflVk9(,Tez';I1EezV9 Y&3D8$wPzwf5+X9g8P?%aП\RpFN4ߞzg<k5[=:Z	u1}d/_\m\z`nm>"8=\%zPir5sf3:%~Ddbwa;<w<衛ܺT2p[H.!İy9N>a\wGC#:ACnEp^WtcO۠3@Q@\"w=\Lqb!8m`sMRv758Jv}T^sV˔K[][Nc֟AE
iKo:/b߷8{SpVv/lSng1
WDCl)8ًM^^k8Qb	d82~KڕELi`
d4Z؝/w7ٷ\QB%s@x{XBBqz/F0c20Íy2AңP>fYg[ls/]Aˎp.f!~s8My74'ʓ|cN1ʃAtHl&ͪC#<*Pۡ|EH$X!Hvt	6{.WFԤ\Or_,~%TҠQ&IpDobq~:lC(6Ŕ(4?HSBr K AP CR~Q|:ɉL<BZ>@CxO&y/AOŘ^P6)(QxFz-D삃+PNo)
HnR#WpA¥y&]5a p.^!S#e$Z9_ɋeW펥XŕْGfLZ""c.
Q0_mN\ ͝xyV8M%-_-\Ͷo(+mYZY8N_o+9F"xSkAfAŪiҴD#`-=H)Ti@d3v;3L~)7oBaNziMW &Z\r}]J;;!#, R8$F!0$ͳcIE5U}AEX74#ށh$UZR߰>(-}Zi]a>17~gB!X}͸Oq>]UU-lVm!	ێK]h'Pk%5 m3 Y_W0n*I-ċ,ٺzّ! I9Ⱦ-/s-֗q}|>Lsm!j(8t ;Ls"Z»1c4P@;Jw"eqMR1y*{ [$ï`\B!	RO_Ȧ7{|mv,(*dg8[=x~In1b|쓸PJTO%zH!iy#lg<!RGRk񒷞;~pBuGzNI72=|j?VJ_ТГ,FKV  ;w} +Sex̬y%ӘMWY=B&װBYY9@6Iv#ق*<R2KRJ2R*t+2R2i`z\
Z
E
hZ+kTr	.S\
o*ʁyZ
.Ey`T	=8SKp8قl>PodӆR'GЋ"
f))T( UMfR{\3Q.@EhL!ѬN582S'|A0/"@vHAB q9?H )ax\ q~V )8D=A}?ٍS/5n!XT !9> Rqf^rn3uEr]؝3]?-vE!R!BG!
4R2KAN(\<S(ȬH)PQVJT.R(o+X0TRO
v&Vde ,A&	E\RK+q` `jxXoEW&R6u6N)-cҦ%QӤ%ҏ()i  l<z쮛? HΜ*!.\ q H+r余]{޵i<>~޼_vz>0Fuz`mq~]<;V|)H&ޫKK#rdElCN>%7KԡE٥δrV($'۩mϳd\?xw\֓,Ymnmmļژaԓ;5C	0\^뻘J|y31$d-9.\b'G\ckh.~8e<g.̉SNn}J4X?gΉݻgXdcY	GHzD 3&'KrKXUV e{*fɃ]ח+WXUfgPӭ۲|`%<)Lo0nͭ6=z46]-P< xZJA89gbAe;O84CZK$ҎX@M2ԄjZBC	J8lU,|tGk/,h;p:+=JRqv$ޓ	;"p?>l$ 9td,;Z  :$QDi@Q`ӥYm֘WlC=R8N&:Kiӆ#5%**sQ>љ끈D됗G9땃c⏻s_Di97	Q .W<:84yqheb/G\+Rvp]φX6=^2zOYf)W"~KWn&;	}"|AS_ea^ٱ<ePnj	r`P{0O`lmR,sap"P+7]niL^AW!FIMOQoEC
Jըz1X<|z=EJNdKM};^7W"~M?;*jEѫ@sDёUZRb78!Fb0isPv"jiW4j?ˮG1K`tGbYة\-B<"U{\oċhx.edEfyr h~uq1`pLXbeQoĭ-vY2r)xq#5"m+)
<	,ra=oj8UK60D=o!J9ڛfNHx5{"umeTz5ܯkc)of6d9nzc6alMM.[:=lgL;fciP]ǸW|ӨvsBVRǨ+b\ws%<^>iynX{'ћ]Dp:/L|E|>}ܷ'U_`<_A!W>,Qfێs8P
Bd!hv7܅KDlP*iEwdy%%LWe+bwjYLGw3uGS$$92YwcJn9.[ZKlH-ܜ0No,F<J]yy˺:|~rV}*2nE	w{2 ծ>ئ%8F}lɾnRRU!l]Jm%4]0}_	Hߜ
_`H;󒖼NL<?s-d73h>5ck/cgOLxϊPіQPauN,8,D)6T?Ho:$7ҕ{> .]iidy=_ϗ"+C	#;yIK<1ozMaۆO"o7YD(bp\/|WePj_^ZXCH r, cPj2]K3ZͮWFMQ@bEl0`ne}}6 fj\B"jQ4:h"
no##!໡0 '}$J|1lp)1Miz6=0fl*u,N&-7aP  ҭuzT}̑ S'Q-?]DOwys-q,ZOP,3;$`ugJߕW|`jߤ{+:ȵŏF·
++j8Ukˢb: x% Ԡɟ82B321!D6g:5x5Txq4l?po~.yrQ w	~VxXoEWInڤI
%uLP&I~Dmұw6vkvM\Uh p$*! q#z]>g{{̛]ott,
cL;\]O;jEgڍt\35.s[`DN,2I45M2JڴH\QÙVZ6(mwd+՜V17٠+F/<(>"Tjܺ>gMnnĬnXԕgKPmNvwd$Ɯ͙N6lF %hm]Jҷ˔<+q^W'eFN
1#`*[Ţx9xqin(XF{$1sؠD 0PeӋ&CMaU=XuZ6$l%#WXV&1bOز쐼o%<);7pDbk7.Į.P<"<`FZHA8nbAe/:4AZJI_Fi9#2J50RďTba;CG=tHml[HjɯCA,4xۧ[QID'ܼ߼mi#x #ٲc ;$ADԡ(|WYS7k[h˾.)*N&n4;k*Ҧ)&5d<Q6(̹Dc"IHJ,.C]?īSv\^_Ua90o[Dۦsi[lxGaBu\bpy`:"煜bJѰX t5.B	nxno3lLJsRSn8uj+ux 9
}([6⣊1R-eWje6lQ,r15zfыb`{ҳ&IuW=cGM2yl˙HU?";	)Yc
̀!-%>Y/P:0K3GK,u4`RI݆#9\ƶ"jéa@OT,;.)GyHBCIo
l$u7[_jGv.ت6|H?ሒr/y鶓p~!8*k{Td!9x3K'3GBkϗE3:T$ϧS=sb[&&;XӦ׵\fZyӥtFT
GQ
#IZl#ܙMtw:Vj{GTGkYW_T級LC'gYF&dlf4je4m!YeS6JYxh]'T.K)x361!daqp1p)gEMN.O/w-$my˛'kcwQ,wLnC`ϱ
5\u6r8L-膅T
ekد0G=V}=҉Q{:qZ<R	znɋ3=>,^/ƶ1X~ewO(3u=_Dg1VrB%y}lSmNdJY 	Wu0ϕXͩ
]Պ)ڧf[ͼTMjWw6iɩ?1B7decg*I)(:8"hF3ugAi&~m-[T wW|w]U]U۽HEZ?D-x?zxWoEVIL2%jp-ij:NBMiNޱ=zg'^	ܸ#*pCB' ^!x3ku~ zw{3|XKQ~<T&zEMwaxMndvuh;1sNPd\lZ &SaVK*4DBZ"YĈzSǳ7jv)_ZY^2kL׊ɰ"jkem#Iotk"o]6-7wumm'XpjÖGg({3dk;,s2Yk2'4u)xb9ɿ8VKnGikǷ)HwbU(6TG#cOp_Qe7|t!BsE?o)Ug.RZ(
y	CUe
iA9.:,S['&pt86wl*%ZUQ}_etJ*kX@J(D38"s~Y0`_Gmq08@<gg\c[x?
9s͗cuRH(YQWڠE
	LZ~PHUr"<%p= 7'{5PI_\6GyO/w0A	?O\ yu*CU+5fЈ
!Bb3$`e&.Ċ4n2rr]
vݥ.BTHkXYKܩXJފ}촾֋TsFIV}[3߫8H\R//:meU5SH[Rh*8rMa З>%@:\70b9ўtl5Qa*\$$mL3V'A9Pgu4߯$1?~G"?֎]rtt8΀*%.pl}^<=ZGҙNc~nz-/I_ "hD
֦D+}hf=p@͈k{גV{F52!8EI\%1C{
hkFu>QlhdƂOEL-"9O,o2)'~aw܍.]oBruն׺=wH"s#?V=W]=81}R=o6Rq~Fe'`+w2p.WZ+o; 7}bKsw^Y?k4|_PSwL~U.Bnn@:FvTweթܚ<ƼHp]|6ʿ/g{Wk	oQ]:bwkGx{w3of6oT"  f!B{xJqˍo2NdƬYXZPV\WPXPH/J
)g(dS3rSJsR6g`whi)'e&UCAbQbBB20~B$?6c&k'$fA\4D8lHjcy
9y
NdFRnd{Q<u0(KsJJSR@CD& %ϡ4LAE@q*@
~>>9PIV*<r |^s\"nOAqN1#O!K"`9ל{X!heB(jL _C	xJqˍok'1+Edd+e*&$+d*%d+$(%R2B
y%
y`̼tҜT=.-NNdꜬ,;9吞GDa| HB~RVjr	X;$%*T(DL!W*D߱`3f&[mRIbf.OSH8P퐓nI@vQi$L[|p C44%
d;A~ή@OLPaRJLSHTT^ -$Y39ߑ4l#(>%*S1]DtqH xYV&$> ]bN#x[DqCvrYt'lv̘lfهƉ! nbx[H~SV<cݻhxcӹ-h޴/6.|ĥ E

/n(Be*"1dRKJ}6uÓ=^t<Uz_NxY$NqY-.Ii7䣬PPCHn++QڀjdEzv#PTbKv {=\ba)3__|A#T%D#%1=>858yKvA=k>8Tz
g^4V<ٱ]v<KTR?h*QÂ4ASi u]zhBё$9 ^BϢTb FbYEM}wP)IDd1?\5jЍEY>֓xpzi꧍ϗNxИRw #wm)DJϦ&)`^wꓽ@?me~Xr%Rc\%|R$n=^y9Ft6PPttF+KNIb@
 )cx{$G~CvXD7e,:Ykdyvɯ9v %X )Vyx[xWfˇ/ڲeKw|c㫭]9yb.-v(H,JUP$V*D)Z۷2ڎvkM@&bVl=(=?X#Ȇ#Y[W 2Ɋ[AqbƷaTCmpasAu=]=C]Re*'?琖t_3wzܪWv<ŏTc%܏J$?rقxŵАuq0(Z V
XH2?pn?_xqiݛn^\Y^Nm\$P퐓 n>~y= d#A.|Ow2?d!^Lnñ՗T,\R s9Dm
$Q}O[L=K>7.AVJ|I
|RDF}((&"nZƩ;W\ȑ[[ai\	  x{73|FY2ƓߛHn^(<Iiz
cTMPd-KL[yr7HjS&И$=*Lj&N
le z'x{wcF	,ϲg4_tsWFsr&mb.KLRRp(KNU0DSɄod+s] !%%Mx~<t^ɩWsN^6yvg WɅjùD&Ta4((6A{@ɓioǈ|8Ru t$-xUOGZ~}*
1	9$KKTlk	kI`(*5CCz@rzf6;v7Sϩp#~?:ͭjkT绡З,>UCD%χFx@L@ɩMq~}vX>o1OC#vBN6EB._eBfc}]7lZO\ڰ|RbP'=6ۺvl|ÌvBs<y {9AXП
Nm+2[5o:%P!U!jYXd	ͫ9:&(5Sx7H#&#ѺC֕*vm|t!>rDf#TtO6S3קQ6TGǖ5MG3[-UtDlfRa]ReJ,4;Emslsi*6WRtMϬA A	[_)2HhG	b@}j%Ova2_6'Y~EE_%%Eكe-PZ^4c`I:.EKB$)_7EM׭^落Pqv˂W>Wy9qT ;[9Űq6fpkeWlfh-T_dP3YsȪ(68epMVe]^%	7̇b!,ҹrt&/
EݫeΚqPVS2d$ޏp_kRܝ֩ql%YoP,T:g}*SFjSǯձPlo>6~61t#>~5xUjAFI
F%M-"ZcieMF61x2W^(^^o# ;f6&e,3|9yۉ/sfjPk1	kr!IzY[TʻF:cZeX}Z*kn:뺇hӰa:?F6+%pj/&bP3}akX.dJ2;:#RlG1&D]LG_"vda2@?xQ3XI7p,Xѩ/,<IM%ʊ^ 
?^C0@&|MNS2,G3實3ŞV=,
z$%HM
j^FDK! )̫0]9$c
#~IU;@^a(MEYɺ*U ݭhY`.`Y1$JR̿ߚO.X
Rnp<(yU{C$=&zc>[rҴ||$_OgoTb`bhq	^VtڅW	{\'{[9ZoE0Aa$l'J	Ld	N|uo\lە%K2ițs<x>#|95FɎ,bd7P{όN&9YZ /Jx>#|72ܓ?IN֮ Xx;z9tB~IFjB~Bfs~^Ibf^}7/USb ]vYOtxTj0HlЌ&wcMeA=mi\g[id$9w.v{@wlXF`9tټh|[bb*PLW.v,u\t:T]	Po@u\˅Es$) 6mT	 vK헑N$3qaCi`!Fi}',ѵ4~^zlNba}yLǘ	J"QÙe~=?c߷imm"E$BTB8u"|&AcHzHFU,N9|2pc˳\nw:$dP
爞9l3|wޡykK1EEgW1SMntixawΔuWHJN&Sq2J>i0&	r+M9<ϵ_<׽>96<hkg.xUț)zŴg 9]8P(<sCzk㥩gP^ZHXCNDzV?*ObuYK\z->T-bv[{1S]n_jփkj˵Q:f$\SkguyxuFszɜ]řyɩ
FXD'/F$ }m&xu]szɜN<.EyA}'KN^=H6 .r:gx;%'}r'{}<L 8+x$9$#us{ 0slxyFsGe'/䞜# sdpxAoAchzibMͳ5
REH
z0vΖKxd:OM ^=x7qe˲@Ad{o۟_?֔؂F618fB$}"{GWuRmj960(jT_jU԰P|ag[#Zt0bDC;,DqvApH4#F<CPfWյDK|\Mi-d@
2^'oT.ECSg.]ٶA$<.UĲFKQ/~Hn,EDߖoI97
5mdMflo:`&c&Dٛ/mlqmP1NA^aGm]5A噻tϟҨA*un_c1 D{tGr%@"><Q/4U5J@}1uBI}YtN+$޾.dd]ԑ>>ކ:Y0le8P;^0ZpU\X\Ɏ]4nE2)o}=p;Dh;RvxTMo@J!A 6HCC,B
)tIT`6:]khNr?ȑ~	c;!v	U-̛7껥O+KsԷKWVfsȐ%GV>|T/rj/[׷7Mw{]+b.ԻOMﴍ\;0)fĤܠER}YӍ[*xyH$`p=8A}p5a"}]!"|B08xE쀂X@l!)
.N\tp6\tCaҬa0N|fC*Nt=d-%d"qBI,!o7mc7KǉxwD)-bO4HdqoT-x͡M~_}ϮN;D@FۧxhGɹBRɉ+97:S	4@@MReP9ӋDh_rWBg{BZAw='AWߥ	Y=],h=VoS7RĺAި|jI_wВoCxTOA4
%45vAmV@NmwJ'vcLyb'?7<xl[*
{~f|3yt(tݿCQi5C7^#ݑciLN]Rx'mr<jEpr[LȠЬ<Q'LT dU\UqT\( Yyv9x8+ߝMgkiU˪˚Z0֪E<iwZMk#-a'dbw[+;hk&<(9%w8HdUרbk;5D4g4C7>;З#Q5<NAIJ (kcsj^Yr.fQlJd;8ŏ<q#mCx	g3½Cf1\>mOωBn0[\X-`l6Yͳ+/%/`sU!%<Iw]	[\sYT28}^|^L_̵n,ac+@l0ElsRl`C}0&Oj:I\
bsL2	rodk
WH>oU/\	5_O!oPW	Wdk+=+ APŤYK9rbi){z>ganwX}d|"A}~8^~uH^tIX"Xr$BIOxRMN@ULT	 7%eQ Hx9əIǟE&bv-ǨMoQĆ$ZVo3Կ/\84(BXkC٩=l|:6NO$4ښ:J>zoOΑ9<0iǯ'^qq ,:W1ӌѢ[|-06Bbbn܇նM8@$& )ИxoA@H9'_5^cOU#f̗鳡갾`W3dDגTCV7(q( K/<ּ8`MQ"nჄ)Pk ͓KTHzL=e.f"18|	K8WXctӢ/|%J?'نYWs({
4ZH/'yP,;܉{i:$5S)*onPj(xTo@p/ׄm&hUU$iST Q΍g, nȈ`@b#+bBH!1$m,>~Vޥ?#	rGFA#?AŚ^QFxf;:P$i~_,;#L= :5mK<+庒0[x@+d	YqnFܕ&XZYA>WԪ[ުQDmg2N#G5&֩bǗ
ЁVR7,oMQd+;	2J=hkmS?A@{h۞6]G_\"+=fojsikAN6Y-R@.uy|욠I&հh!XM۲͈Bvur&wn#M$'N$n0Aҳ@c8rgotM2<ujc1lc&Hz}B}<F[As% "I
=__lWfc,VV2B}ٺs+/ϊ戮||f1ApC;5j8^SZL/j ܭNuڧ%Ɍ(v!\!F*7U@#?J;)HHR"=3Y.T	w[5>{37?=exn@8
FtD@(iP%@8Qꍜ]7ڬ7
bO'GN<
Wv_ٝWt~Q'u9;|~+m]lC Mheǔ!eݡZk:eݿ䷕&!rO`	DcO(!4TPwgRioCTFL)q}H&&xg3?4߇gP.!i阎rأYr&nt~"S[ae zx" *'-oYK8Lμ<oLY_L.oM0"qNɇ;~`L%ÁKZm35xڨg)? bp%>tk63nmTى<nB'(ǜcQd/*JF|wmyT*_嵣V&(Vf0'Ǣy}vzI+ܼ!#P4	xAk0Iӓi]cÄz6n鼸Ԇn9#I+t~^wq`}})v2]{Oh?sS50N詂9"K]4z-Q|j>kE!.򸾁і8]3ʯ+eeYc}`}:C.j+շC(:K0>	O`q%T0b
*'d)(lܱ](Q~</1v4N@ΤT)d*cEH!{OA|? 씨fL(Mc"J	YTQgc{X;s/M~5?3BgDPoհrw!Q<D$XG>5n/H`CVnU2>oXi>]cICRxVoEiT*6$eQeUPrjղb~xw֞v=:J/\zBH"qHH\pc7vv߾~o|R<j~ɃviaǍީThPFUR̿gd/$>vNm_yA	OYArW ǁDͭ;Zx]Ϋ/VOz_PFcL`Ij}˩W~--66o>&Di@XyCq-F 
E;Hg~-էoG+Em, iAl؇ާlĥ>%9aъ; 	dRj8Eqr!]%`q+h )3>dz\\l~b
<mzqqDP.lC@+MPC8B_({.¸=0=3KTII~pY<]OdHH@ 5Q9e]PG_SY:|r= GCWKs7	3Dh$mm`iωg/{n&0DǇ&ə~psU@H/I󷓦O\C=[K,HB8hPu'9H6(ψ4D<EVfwx ubF
j D?&HַH=Yr6% "]J~ќx L7TRٜk6s!7*=+Wx8"͙I/O^OP6M♭CrsqT</Ke0BS m3& 48L/#6uۖ]01ܫfbWaG<&VPڦ@IkrxFjBId>[aK%W8jhh&)*rlǌދBT
)1=.z?Xwx;cZԢTͳX 2
XxTAoAH SK1nT'Vhڛ3e4=Os3i@GorO?8ݥƸ}{_'L0Ej8
\	VvjQAtrjQo5ѻtYlA!Uo"wCX0/щ_?KABuwD"%76°vHh]ŌLM~~cĳ쨴:Z6-woZp>8^xՍknͯxkMg4hغ+Zgfwy"sWohƝp`ptl65Fv]CxwNe|%
lhLkBzC~Lt%.@KrHc]!	EqpKh08K/n5	}p!@&++ܓReGʕ
/ԀMu~go+NmT=ȋPv[v;ɧi(}]{pVQlJ`ؐ	:clV|Oñ8=MjgScNU83`-g~RK- 6-åoL!<w3v`w1뫿 	x}J@uQSĕZ1u!Y(.AK֢X]9N2v̄[>KA>obRh).V_z|N6rZvTFӪsUnfjF!FS>hiY+!{w(&8%a41yp%{4գb(,0ĭm@}._կB9R)h'B0v, ]7TE9G5TxxMx=2;	p8aV#P0%߾nC!lύ5}'3bߊ_)EK6w gLxT]OA . ZGnR0	H)H!EML\cBcL}'<&PD;swω4G|X;+w$*l<-XٝeBR^ϟ뒜H	Ľ>}焩fգz0#BWaH=o{;T{gj-q)+Z-wؒLԛY6y4f.#D2FJ@J."(J	!̃
sj*1U
nRD󁢭'Ls>FɅ4*]S?62}t:6gQZ[HKݭ7BIDӴ{4wwQZ64 bhZp7R'AD@	Ft K`Cl3Si#pVG!ھf={dsySz9|}n6lrdZI3a\7V8d.6b|efvbNԕT梡㜺iQfGifӇ+_yVV:+*/סa1/j7W8%j0uS5\wGdWGu ZK=~xJLuŖx6+x[4Sh8F	1fF̆ɩәXK2bXX]'w(CYYJLlRKJ2KRRSJT w'"X&6Zȥ Dtr.XLK#ޥ(<3/=,\X\4%%2s2SuJKr2R44ss';rq.Qiťť8M%(r" kv@0CS`h4yT	aӒѴ|Et !8hxnAE Q 
HAr`يm ?@n4Np(v4<{6Qͷ3;}g~yrQj!}~W(PD|,9\+]/0276cxv pk_6+ET[N!{Pl2lM@^ T=|557;ӧ-,q|vGvI]hf||H^fc	2mH2W̌fHN(1Tcd:'1$T"\Hu	D!A<>2@`4AHY)B*KSbi4gw|Έ#'wJ.\ωNЭ-HÊ;~[y{adjz!hףڌOmQ^ 9):x[)9AUd'$M,n>!ALNdfLY,ٓD':N>m0ِ}#[fNIjsQjbIFY~f5CRQfjBpjlھ6Iv
IY%
iE
y
6Iv.EyPܹżE
H2 A,`FK0;54@Dt$vQqdE6\gj真_ǁyE1wXZQ~.E(KNU04@@2w\6_gnn,(ATWb1BzyBR !Lx;,M|(QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+ΟlYŀ %ljx;,ov͇9$/x딼#a+gnbzϡP}V88'N-R2sJR6e RjHx#s^vQvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οqr	f. I|x{$Kue|%
%
Ee))

y)

iiũy|l*<R2KRJ+ r%z\
Z
E@jK&Of3|qv&#̢H5rK*t JɅB)E
%`2
JAq%YՐ
KJUH,(zfJnbzl<0s'qK!9̭(?YZ#ޥ(<3/=Y\K BF Ew$xܠc
Kr~AS8J@nkݘ&;NPe
kLd+JMl 
rx|EyC"0͉L)n΢Wbl_P_XǥPX l99dB>܌&:<.EyA#&tnvˌ}r 70xRj@;PСĔj2K@C ޸Zk$'=.ki,+vJ0y=ZkߠQ&efO>68$C<BѾ~iq$q09S_͝gK*/FA5_1HmϜmX.)Ppp#E`o`~luGu'.J υ,iZ1S*]fمEU!{c(U׽p=er*WLǵRJyfFzI&SN(q`eMBXь'EPPIvمc[dh9.sE΅ _:#Z>NLЛ
5%gj>&QW}VB_NP)>p8)kh.9K5}ʅ6ѓ8mu^G}ޘsbRx<_ynԒbT<|0 593-35(\2ـ{+n|` xkx<ShClrm~#̸9N 	3x.V``vfcQ{QbAFfrfN> p	7]x.0Yp`vfcQ{QbAFfrfNLxrSssrKR'w8;;xŻ9z(* l `x,Dp&;Cqf^rdV6;3 #x<MeQvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οq+fM76Ԣ&aۼ"yCV  #Ix)LpC5P|pF&Y9Eɩ3r`#Vp~B~RVjrBIFbBQjAQjqj^I1 ֭ 1/,\#&+:j#Z
.EyaĒɍkX$ݱ<$auAQfnbQfjBRiBBNf^jbBzbnn"'$@($)$a0y6Kds6Adش]vKjqIQ~vӞs ޥkx[&8Sh<QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο\8YCvK h	:!xmRn@EK9	#@$n-UM#)Z]kwB(+?	ܸrIڔַWfA#0_/=9!A!FY+:4B.f"\'VXHXYNTf)0)KP\fa	2H0NDX[2Oc[X^J	DE !auy}iUܹDk]~Z-R"wB]佰$65hiVZ5b$h(9TUߞPբM)R}DE[9^5|(yXq,xLf2ڑ)$u9dl8U:Y'	<	tQj(IGwx0?=Ãakh/յveDԃY`Oq28nؘ:GǺ[c=a~v7ZZ p)0p^Cg7:(H	r}ԨE\"./yN7JT(8s
`v;`<e./sEBSaAv{{-;bx{ VxC"dM͉L挓2mcy
 }q	3gx{.ArC0cljx& ^	x{.M~C&.-܎x&K)N{&>Y qn[x y@rb.Ɣ[d ,ox; Ar4lby.ix !;X'2D8#4'E!)U(591'4'$5E!-H!1'G ?( R83/]$#U4(5=$2D!-173g&܅ '$kx8Y@Y8#4'E!)U!%(25E!1/E(U7(5$5eF&ӹEx딚)a1BRBBr~nA~^j^I%\L 
x{+@d[fǢlĂb#.-̤ĢJ XYRXW?=`6\,Y˼Ol]xn@E"XDE1TBHDѴRQE{!Ό53ibXa[/Ru LޫK_n|P>nf_kO4\k=KD,P S۠qJ2v@Jbf'l8\_#
zVZ3_2aC"ٯխ'HrxXD0Q0s>M4 H<($r,UZݛ4h/w%D!xJ]1Oe^kbUY})Lɧ}=uvw*yf <&'~lq$2NA$G`ּ*,|[AԮSs^t*B,pI|!s:1dTT[̓Bo	LĘhv";Z8ж֠r82n7BPZQ@DrMMc2W:-2FQqQ5_Zd坱>;g 1	N=ġ) %);>_˅.Ⱦ_Z[)DxUMO@$&@ϯb,_	#.dھ43V\<y0x83]t|=DmIcnH>kmr1Ө<NfE"hHq@bj3ݛ|~\{,}ug"r69ѕi{jej6Є؁MDgn>(<!@CǌF9H#v&FG/=~v^8քQgz_7
2P
@1C\Sv/T
Nûfnoń*8
BM.Q//V14˶wƳ}sVdJB(XwF.Y!auyE[*X**j tB7HbB\7Y?PэGU* s~ťsK8f疪ا~d+jC+:*H)K꾬/I9ki>	We#[qE+	z~%YĵӁʬ(kk`Ko洇P3\"C*}Tkb\crK<C*JWc@$=Clm:Z~+FHj !9!'}bHs6TOJRj#tb-mw
IQ^ SpQ%cl	݀0Kv!	0=p}36lHEDʝi	Jx#¿9sr-<^< ?sfs0}y+s 4ٞ-B3/%39$X$#UB7"X!9?(%3,+RRp(H,JUDZI@,`EX@BZ
.Ey`TF
r<^3t.n|¾'
_  [x#*9yr(5yBf30}ys8ٞ>'5D3/%39$X$#U,T_Y-RRp(H,JU(/@!(3=ź(" !I%%hvB|UQV' ]RXp.JX
	vn<^gy'D>\⒢JT&3 :~hxkX$?er2y6#K~i^֬ F!B},QmS
s*S<R2KRJ2RRS23*t+2 *	kk|b7V`CRK=]3`E@4KPt('c\1Mbf;Q 3%(R s>\xK@Yk[<]DpkoUWԔa	dۙ03aErO^G/i;`[!BMoڗ㢜hҠ9X abъEuÎ P^`?Z,r/bd~d
]UulIӲ;5;Q[<ujABn5'O._qclm{߄]anta~ y57Qw<C<'n5fV}2e3z#藺X_].肈ʻ#=5aR?HUT#$>5+~uZlDajo#K *a,PCƠD7m2,Z)7;2z7`R6~cm_7ExAKARPD|%E{.RiZqg&ƝefOK{WnNx;}}^v?oTA(	mNfV+AZ)PJ&EC	qȤ.r*+S2/"<fHA2р	e4c͘+Q4FFV[).QHSKzA9^,om_L6\F5$,+Ҏ]z(wΥ	\}Y}!Q"DlTS<|_/,w{;,oztQچLHl {6)[(Fx;]i"QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οq23f;6 ^x[tNu?ɟY*'GP(W sy$'p2LfH+.Q%?9Oh? C'x.[h'KY~fdN} 9Cx.]h0'd}fɚ~ 6'<xuj1E).)xSȢKW1v%5Il]긥AyhAؙEG̏΢?E@qbh޻{ްj5J&],iϼ4AB'$m|b<uկƨj)Y$u(RQT*AL`Dlnڈp93yYlZ&A4DǗa4^DltO8jם=dQ+ï7tN3,Wy[-[a46Z;MN{zor;+Y¢@x6}+O7i d¯9RCs,ǴϙeΆKH|$>}:ƧaGtNp02%Q]jf+ٛ&x$z[tC;KkD>]#?'2#>45>-TVPV#ޥ(<3/=>$d Fk2<SY_zrW ;c&I
ix-:]l/hh^JjZf^j{NeAKfqANbf	ӌؤ&ǮiG Vx̼Ԋ[7 2AXx.TlC';gn(osvf b2'x[*Xl:}6fd8N^7# o(x[,6YlC"f /x,*D( <3 U	>x{cCd2Bd'Wܼ^r**
 D<x{cCd2Bd'Wܼ^r**
 EXx<Ky-72 8+x$ #"	S	?LG39^x@l8Fd&uO_Gwx.Դ̼TxO?gPx pO?xk.1MgfMLOĬQ`R 69EzrU,6`%_X,$;Ē=.-$D'/+Rw)J,Kj![ Gm9t0m/L0%(R]\KӚK_KlLRQfjBPjRifNJBbM$u32
E
 &oRfInbBAfEjNX}qA$i'^<MQ4U!3M499['`x	\YQKCdi^BfBjbrBQ~B~00BT3SJ20]Wbl_ -D+A:'%AqX&
  c3!txkUZ<pZ0NfRM1/եV!3M$#U!757R!X!dLj+py& w}*x{ Jr	_|%
@2/-{9/ry=AB\V3{j	X,0CY>! 
 Nx{%yWjQvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οqrf} !1xuJ@QA.AXJE-ZBܖfI+0+Btޥ>;H8۹'GOb<y.s_M#HR
  4ikn٠-Cc?}Ҍsi0
MRJ!U. R	ЇZ|F
!4b6SXHqD1_Nu?)Q{| (T1ô|SKH0	HuLe*%I¤{9VbT8Kն3K٣o7(":c"K
QdBھa_ó_x)F|8QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οll?yfVv sRx[#G|C2+GIeAjJjd	pϬ;YL&x#~O|C#BU96 :g,RaxkAif(FRQyE,ĤI64)Kf,&3afbZE׹GxXpv690e}orwۈ14^G iBɞ$@Q"05 3)Q=XNdZoE1d0}R=Jyh"4`Z']:kZ0ުhus~i*d[ٴĭ?70ijU:d{ќ8֖J$:%modCLOsD=^?ӎM_D}v[8շ%4QO~^*b+HLtg(0CnHr[3?},~FXIYZ3wJD<fN<JD?r6%m14gJkq:EXz5ZT:M 3q_it|sz"-RM͘&O.ZI/.pVУ]pAkJ$>}Ê7qK{ExC 52,
!/}2DA+Point2D</b> arrayO2D*WRxktFej%

yyUE
e9
y@*17?/]!1'g"~n|&ǳede)M5/QWbl_2!_(Obvqk9/#x{bzl,QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οq2AV, MYxTKqGL 0
3 $r2I]7ី؜͇mm^~H}vsiSl|\W8.o5`>dH;H7d額VP^@[0LFK?ThYF3O|C!T"^~xZyP&Q z喏Wk@Έٝ<
_LY	x*p9ZrƂR~1ߧv m
R~ޗEw"%E6*Յm
{Z|zRZLneoW873rZc5!EӐMkt(
ġ)ܪXE"ø|&.GM8Aeh88Tl%iZ"Y:GowV(d6̄4'ũJ1.0,5w:[Z^75.ޠ2nVmAU50{J\ )C+*3g+O^wޟ@{H8U'%(@&-TfP<GSi΋]Tn?*D
3Ӈxj/$`q;ȍy7	AboQxbE`9x`kܼ20dl|FawvcU1bckb2G6<YZbl^3zOqss]]c5_6+)5)Bݦq/(.vYl>}QouGI$xT]kA%p *}-8@6شl->.v2;I-
&[_|'$kcPj 03?_{E<sw !6	W>@:"Ա9(L6h	9O$UiNNgT|Ba>1+SX4bA|\ NPwhT6<"pUٝ䜹5umBꯅ$O,rY&}!&F5H>!
]8| 1;u1">=qB}(·lMc	:P[+;5H1EL	gRChMZQ8W I׉)ŏHGP|u"`N!RI4%MW'$,z
ͦv*J[mnoJc-a_g\t v驳]^mUIiՅ
ͪ7WxHSlL%c{!roromufΟCťRpR:޲mM.Xյ۱le!vGlJulwxj-I`̹7GgGkͩn0e%f3KxHq/ƀ/x+ [@TȳHfB
.
f>`@ixSMo@@UB 5"%mǉCdknE*,.sW0N	U,޼~WZHTm:4mX\[j0h◰Vܺ!a'|&LݲS}a>[T}H5PD[?+7SUR\IN`zƈŅڶA=xS!F.\ ^~21nhZ8b;`btBv"A:޳ct)a)Kub%"i
A'Tva$!}\cWJ#gF.Ȧ1m*R=	7>72rf],(PKՙ]ŝzq|S2(wG餧W{:sfg׏I8"FBVR!l1n fL"F#ՖI2{X||EGۚ1$0Jl4:z_>÷}h`L5x,Vjv;'?eR&79$9-i
y"7b  })rx,o8FLYE'3&Ma,HU
'oanefu\"e-e	>eœ]}O7<ٱit<h{ڱY^6?tײw-zѹ	ؽx:@=/y3Ɏ]Ov4 ]4(|Vѓ@ܝ!=nhR"Ģ\ĜD4{!u 槳<ޠΠh)E)P3 c@=vҋRS`fJ#rJS&@	I؍(J-)-Sxھ/Oy:{I
683/9U1y%F%
.EyΠdZXW 8H<p Ak  Mlx[÷oC=5 xM
@7E*U^mIꮇ@#:U).U&޻~Kk,V}*Bg!ra6!dHYQj1h9d\"2a=	䣞NtbLMS?Nq<x}0e"JdƺJҌpw{{ rl[x[7oC= g*Gx?K@Ʊ߱`:(
D(wͥM|.	x=}^{;=m˶ꏥ'"KB2>,D4n$,yՙMR/v|MQư	 #nDchh [ F	mR vF:4a5C*ɇfE,!îلbAjb	ֲ@5QFSJ=;87$f`0fT&ȕ|-䔘qBSRs	0!sG>Pm"kЍ*7ZMcac3%xPkp[7G6/;xMAԋ=RvxPOxlKHtߤqmpKĤm~P[|/%yyy,M:m(eE$X 96B>'ObYT;uw	*9QZٟo!0WǾA齔?s=`zWkHjTc5)z?EV}˵6_745bCGsTK	]Y&Mdĕ[)9>Y7mSA&d.oghp(n&O̤vaWs0<`C].⫯څC 'A&x=j@$ǎ=YCcdvߺXs8eWZծVJ=>.?Gܤ药=@zͰucayFm0U.k>\R]{pwdsȧgs,
<8F[Qk4\lW`?ðA~wx[wˇ/ڻdǷO_b8߷Xhכ.:t]gl;zv?@.^=zcsprwZd\
Z@PXS0w*O߾S**zaRS@@h¯'(55lڒrJS@$lWQjIiQ®nߺϬ8y
[ f]1x;9|-'JO=y;oE
%x9qLl
IY%'O!0ٖӕ`r@yœ	O~39@o(h}. *k0}x9q$iLcX712N%;y,*L<.EyT6a[ˈ.y%=Q\XԺh2m.aƐ\bmB,(қT'oWyN2OVjl)d5	t&rkN|Oa!3-f`qSp>QWb{WոO=\asɥ5v؛m͌QE-%A^\a5Hg]췬Al;f&b\:
E
i9ũT'绋Olh[lcԙ<Qz<gɳ/aS3Y9$8E'0%wU`: ɻbML='O܎~^ YOx>qdglK2RrK2+2KJsr
JRR2RJRS`((X!-1$M(1E S@#2ȡ83o6sYc:9ytr`fdTNo6})# mvOgn0x>q+%X0#:xJ@	teq%F]15bZxY1ә23Q2
E>OpL۝Ϋqߝ<R$]R﯌ƶN9֒-f9Q
]wz4;Q`)n>׎yً ZHܳL?x]z(롬":\>:Iyag#!XS*PyZ\P%a;ɉ(8P
[K4_;VkoKw̵35wayJڄ	'Kj\l}/ c&=,xke!ǢlĂb#.-̤ĢJ XYRXW?f,H8 xk8]vFd& Ox.Դ̼TxO?gPx pO?x+gL^l
e` fd	ƖYXZPPXY_OˀMRRp(H,JUDZWk8V\,6<7XDK#ޥ(<3/=,\
4Dc2v%Cu*^P.цuC\?1d$"3L19ILPbBZN~"+c
"]I0Hŕ`W
r>R$9M')TIK<|
uГ
`7hw'/aW%uj	P$O@,Z\R_aF +D%yx.%(;D(۽( #3ȅKAK!'3(RH%dƧ%gO~89Yn:K gsdxkbt Q6s)_K v&xuJAF*pqXN
m@cKv.hl,z>yAqa{/nV̿Sa|6Yi ]d_4a(贵:'G*5l>\DSwln]<YhMDcd:)Vn
W٤J8]%0-C\oϯ,m ~	'xtb_I!7(B!4$ '35E!&_Z4y3/DVFEUMF*+'nťD&ȳL+$ աQ`;9ɺO.O3(9?/9d9%7 ,5xbCPd|pHF&9T%L&벋MaI//.)JMٌ̝,?f6+bWIw)J,KERgd77,(k9%
sRK2sR
K2 R9y%

. %tr~A%XJȂ__2Y]?:-s%y%
e)Z`ct3RK($훜#yrQ:(|/!{-$K*0P+5pi!y# } xb%a&dQ͜<e̛W*x{G`QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο|qAVͮ,K x[_s9P9gSg=쾄 q#d<QbF.hNҀٔ}d?C\+qH.fFqQ:a%VWBĲU_U_ާ|.$kYۆ|Wb#BơN%<Hj;(bR6+R#@4l$#M d5M"cP?vBz2㋗p$mTȸ8zbm|>p2"rEUovz͗`c	cI'`P`fLiZ=๖V23jd\Jcv_y0 iZSk(Sc}uN챫._u~ޱZW(3=&80S'^OFʙdȑ`j8cj&t3bSi0QL$rK6慊.NN.J7<k&$ooZj&C8H	6i0aܰj5O&267Nb$J&HoїoHB60Jb4LV`EA}iYƜ0
^Ti$rSJj륟mAW#9\/|>x(7Å	xzcŴ HE>J/N#N4Ohvw&cqHQ-dD H'f ";o'/ rIt#:ija-+8"hD
ba B@`"L-)`LjsTe#6TLꊗ~Avuyb6T@-(,Y8DavU_yݬU!kQ喲@jM<Blv[lAG>6|(CjHZylزaăLDF́IŪAf.ܲG>u\ֵ d .K=2IJPؠ:qyU^EO 7	6QJ՗C`46r#؊ 썛9x; Ms}承vff4ɰZ#nn'\eD# wedUE;Vl*
'31X{+ńnM]5%| DoՁun?]<"
&\\9՘uV8>Pm& _28.0R[!1-J%c`m@>?1)J%Ӳǯ&&%_v1ukf׍b),wW}FXDEFȮ!lUhpn Bi~:'W
i	޸͠2pXeVtCrETp
Xf%	p_ְj̠?Y$1045u|*pID(HRŹ#L -ŉbW[N:Qt&iؙ\#d`HoE3miPNL%Ak<o~v|6ť'J'RpW$w"*|"d@zyK0HGz|.l57Mr{]HKhtbh&Ws^-F<O&  BҒFeOPNyjUMG[C(QDecݕfʐ4[t;KawqYYA LԠ^  gԁoXZRibմ(ԃ<MK-8cD%Wylj\b ò[p3Qie,ƮT-[(?a-=`&ϣzE°(ÿ0@HޏGJ~|lh)	u0'bVwv1;ڽz3"QJEU̽=pkc ;X[p5*l4
85T_￈?ݿׁg|_#wGek;q
LPn$*
}`8(襃b%oibٿ̫,FUm.0;l+a{H!""4}lI%9_˽˃n{ԗ^?>qvsЩh@$V
L;d<J=?#x󭐀'D<IEV1+44rOW.^0B3UwEEzIpX|yepjst0R»pݰ/y~Qێ5p~omq^Qn5K@X+#}&{N0]%UNs2eK:w;aF@dYLz572qG^;y~oZtK#fgwJyZT-;35Cus-O	זoOuԝyŝ02شz'8%Sϻ'c&c幼Nf.,@zWxE0 '67ߵΚOK\U=BT9?p,=szN64 `B74 #yW.Bx=C.BRsV$}D+D;@Av֣t)\:ؗ_]Mal0JRP)+[\@e/˩w
4% /o|MAdqsgJ<۵EM[~\ܢJw	-UxXoEqҤiԤԍ&HqZڂi҈FJTh@w53ĉT$*W8q ~$&4{yyon8B_wSIz:3!9O&2ӢMybid.뱃R"K"A%$ccj?
|ܞOD%\ hszf[Vaf+Kj1w:&:RHHDؼ$Z\ lUqM Ap	>x2>&UTH"H(P-d%LYq"+\qDY!dۈ(jp%=/.05v qP #2G6mX'J1Leb[*(WsFq_kw28Q¦Re%(%+|_?=[QQZ"w}!Ok
މ%#6eb<U'-۔I[G\\Ȑ}Ψ+R=Vؤ
ns4afې=GP2;rs]ɞ%$wVqskz`v_hp
B=Mƃ8e؞k[f۴@8ݐ:>ToIMAJXrz5c[e$v\|5)@ ҝhS-RRJYwXan/f@űMUxy;a3IW,xJoOMʚާ4YMz,MK3Zk7^5$m++b6u/o&
Rn(oz"BxQPuu|xd=vnzp߯$4<2I͓-[Uߏj3Ux@$\W9 C'O avvEBNG0>\6wu-/?|ċaSV#XS(kSb"\a{Z` |2;FKG^%:!,9Y5ۺ+|trZZ=>ZRWf={";w_Љ8Xfd~TI7MzH
;V5u6VnS뻸]z~1 ~?8g6~o7Nb.$BR%z%;a?nmKvor88Tyk4ڢ ĳc /S,|xϥBcc>u
Gx;qfF+&/QڬYnqXEəں$'̪+4NC_|7
O0^d/C6IB&[m݈n@z(⓿loTjLm#l a
H]I;#f̏\!%6]v3	 }]x;qCd~FFNNbZ:Y1@GikU&@Jc9&gjNlKo2ӼFLj87e\(<hz%͖P\'
l).YTv#++,|ǥ^ɘQbcMļT NKIU +PkloT97Ye4I0msPl +7s'$Y>f̏C&4'ۼv1H.ځO P>OxVKo1jhі*C!D>ESzSze)p+8#!!
.8"~Gfq$(l?νxrl%U>n*В
UfaʧG`zx{imZxrO7J4?v)LlRĥD=::([̖/?E3D$	,OƸ>IC"HD$pUD-m4P\标k$c
_`j@|߉/B֘IA%QГ 'bLn\HnJްb*ä	D<$C̢*	y>b7QṴUp.3^nzeu|)RZ=Q
l
$g_R})m5M)a@jx1CKO!⸐` &q21!u pEx-3]!0/hñwiH"$.yOf>܌N}e"&ZrYþdE˘>'W=%tp,uk%}_opdrNc	h$H QU]gRU2mLJzy1lމ#WWr.!*iU*=B,l[ntBMc$5QڎѦS}MM587E{N'՚MTX]F|:ck2{N.]ܗ.Vt^YuwhLsٶ,~νhwveΘV/X׳94xuRn@$* 6WJ(tD[u5ٛq{X="<!|kV$'vjt<9oUtkcFGØv>|A';l?4ހ+3Z&KqB#<?Ak3Jb!#ĩBD0-D0N Do<q)}[CıΉ16Ŷ"Ub2Eav@ ?J	>Iz(¥eds(cXWE:"/
Hav>@?n䋍  ]c=2Ve{eпyy]R~߮RdJu
kd8Ytx2Gێ_oqult,GsfI#AV"4PBScRUxq<`(i;)L?{)^րֆy9͹VFKO¿4KЯIVRµh9f{;7)u1xOAC@"O!JAL$bH3;ifg[;ɜM 
//xqfnK%;~|o޼nԦ\!6L8ٱ`a7|6;*˻NQ\t.|9O=͵^hnƮ	5.{Y1, _K?	fqok$]Ga^CNPHb9DBfhPrl=0x+#A>qZ!PŽZFaZ14w+CM@}m HnˊnB\MCK~=pk=&;lpQN* TîN0.iY&883r&"/~?x"|5=rlR]R)C@+ *CWI+Io	qަWN9gue5,$dK;'Vz@\X'딘EaP@[%2@/AjHnOI욅"	yTƮl趏#kO)~]7??V[KrHli	Ҕ|giJ\d-OvJ2fO3mre*9nE+kC҇jο;.bz\͓;r=#i"Dq:R|xuޛzy{dDexs-g3ԼU&몁uT7  5x!@n-yx7w*Glޡ-ɶ4F `x3CwCLiLEnimΛxE&|[qrdV͕¯2]`Q	ipɷWLUܩ\\"RX:Q@{MyRTyn^Ȫå0YWrw-ɂ'o2;9S|rɚf H	AExTOkA'/-蒦 6iHӒڞdw;]w&iOzx<~ O~ f3I״DA@v͛o޷owK2?_s&s)XtIH9ʗ[Elb'i'%w	جC=hhIM3E*gB#M}{=;>,"\tۦjs
vH"̿> 53@%|BMIR_;Ģ` @~[ćH7HS@_l{ۛ0Ϯ4VWhg^ˏoӍՁL'jzTZY(6[*z" S9S@:OX,Rftָ~lWewjE>+׿\y\4ED#<$ ;J'*5d^N:?Rn4o[u#Ȫj~yIF
rOǫk!LG~J6}{-"tC<kb3̀IP˫5(P.e1FiĪJ3PܓbPW*ەz8W*wrVnD*kM.<LHT3Y;jD*MRlr*DH<@GD+;P5H1phl:hC~3il,htFoĢnȢR#Ųz}۳g^SU{㲴Q+TT11'(~|@2Wb*~/䛹7O3sN>w \oxTMkA&ږ"z쒦?6MiTSN6ugh\Ѓ0x^ykUB!ݝyy}f巣r#0Si0uP鐀r*$GYT	ȣ|+I^ȅ5I.[`YPsZz"=`'igv Eyی7HsFsh}P	MfQJ@ hiZY*z|A,ּ 5	D!XN)<Zv 6׫c]h"Ho{f6osUQ+:sjsS'8Eb֡aBzKy8R%yk:'?]|s	.@qp NO@LPF\m.\AUf|RW(DQWVb0љ0WPlsAڜ^Ϣ)IPh.`h^l
L^VAVm,0"ε҈\UpA˙{b-7|n_2F-nDW:d儴=x<<H^Ω	q7K]Z#_I]DH3kVC5Zو$L]E4	[N7a-N-cꈝZB>*OMF^;}=D[O=B>/{v069}Z+\y`
`x[HwC3Lt7Wdlϕ 	tnlx>W}5~ƒ1 -gxTj@.ZY*b/TC)TXmwB`rM&I&L&R
k މ"
IiJ8swwïo.aM-N$A4,X|[;	;\>|,ԧNF8si ~F-=\ a]CS5I.Z$-+Q1jSEE椋` ń ^r?G]+Bxx#6ećgnɶf6z%&zU>H"cP)1ʓ/E8?ar7:HPt61Sl^OzHUǙHg{ws߬<mlojcO*VbVjkfҦU;7|Wh
$1}}.RK 'rSrlvYڻ{DIoi3/g
	[ɧ=YnQԬdkp 
@;f;#xxkߊ@u(r	g&ChnTC<.I-xR\3?3t@-QxWlԉG=\2FwDJz"/d1˓^gWceh4	Gy
fQm;<,Czz|Q_A>BQգX|'WsQHmpdT-XCmKK{5~}(<pn?brξ $hzxTMkA%Y"b*Jq]`vM\H6ːqig7Q"	x"<X=35	zU^z}ŘN,\uXM)DCUwڼs_3I0OüqZȁE_8a0ԕejI0 kSz.uj@q!鶦ϮIQJxG2A ~ y)竜yOaa}=!ZPnutnl [fdǇa5tZ\r HxXTL`OaXXM*cJ(;ޘ)6߈{HUǙeHSoWiJQq^vyl&	mZ3v<~Ph~NfBj8ȑ].ow{Fʙ@vCaq5z'
@;[7J樕R_HΒ,A.+m[AC٪Sw?w@/,vQˇڸlЉG$=FwTJz"ϨIcRj^^g-Gc4	ڄGyM+5-Cv{X48.)jyPCvsgi)믈% ԫR~*CuHudҶ..uA`y#~'~v'i1	xOvF	gɉ֌i1ߚĢ<y5K[fNIj~B~RVjrdGV&OvVp.JM,I(LѴRRpH*LMSN-M371=D"<$;x̼xl{W`]v9Q
sg%*MVڌdZ
i`ZGI
IB&x?N	f/l|	Y'A`	dNa]/6r-w+OaW#ǑÝ䜟_DM7
O_=(?D2#wr1WHjP7\pXO@եi=<fa) i1ixN@qjauh-4n@(ii%ǚeۮ }>C=3{νO3aOmvkň/ۅ8GÔ$t)L ʠmlI//@cA1c`th}ge!Ņف s[w&4>OB^VnڝN[]WUOQˮCCIF߄*MD惽_Xcz}2j$=D209HR]
AQ\d1@IBO`^ToF霈Do*T@0({p %Oj_ZU59SFLZg ,#I3plQg1G;7>Vӕ5sX,>Ͷ!kA]Wow<x퓿o@Ҵ
LD-,nԉXmZ,$ZX=QH#;TĤ(1B0ǽ~>|	ϿUnե@B`
HPg~U^.O%}oC#{cy~v	,U>d"'bS%R'Aߛv b@aTt2p6[)"τ&x|#un0tZ.ͽF:tڏWwݖ9͇vڶkow~R#Z)QFڒL%w4?ϮdjG"읥CeeIJS9f#gCG$Av^mr;-*[K!"ې%6VRr[ڝgyx#o8[WOo1iI*YYnC܌FJs3\-Y^8]<7Qݽroy6_wlx[\aCf<  gx[^~&dGÓ^l3W<]ƅH((O)Ogσhy>M=H&:=ٱMًu]tXmTx6gͳO?3ɮϧ9e/h|i'lbyg>WtiO@MK)I-/mOLˡdÂĢ\Z7/$Nɂv>Eҝi_'eB2.|pH+CɎ ϡljǳys@Ag1y6{< 1iΎ8<78KcjCNf^GKQbyf^z/\w-h b>dfQrќfTsE>qEdX}6y/9i4 }ܷ `qCcr~N~$5=ٽYK?PA-oz)7)y~gS]bRϧ yTq|N ~clxx{/N~Cf &.x}ROkAg]bRxBB1Bh{( Zz+=d$3af.+s^*~
~~o6=xtϿ>	{\wHdђ?1m/}GlH	|n&vI*0@,@)K^uvxA!(TFZGj4rkgr]*
Ѯ$絶5[(=~Yk/E|!ܺ {O}Gq8-~a'<77aeKtzKȍ/0ϟgѡ-G^|GɔTsW~i-iޢv|	3X~ń$!: N&˭- J-LӅEVdkٛ{5=abq\t|{ճFLoHNx[&DtC;xɂ\JX Q0pxuR=OP]DTuEt+Rnݘ !9@ܴPCDv#IѨ,<9-2{9skcAdk5-|$sc_Zz[FJ+-vD	'}!`GC\iTH<A\@b#PF4.j#χRQۡ˳If%嗷RtYMwV$X2u2 TrȌ$vPA`PZ6hu"ϥSjG#yo_,BUAb_){׳pYn$TIp; $l"=۰F{\&o2@J4s0~FS)BxM9³[$e<EOhwR\3ɦ7ޯ'2?Roz=Zx['FxC;L6b Ydl<xrOeC'.| &exSxU]OA cLԄф ʫA4j~D/
TK!ZBۭlBW(Rv[d|`gfEwKMaw;{쯋?_O!q,2m`ol Q&S#XV0Wh2m/*;TzUҮmS|,rN̊]!>j/qN|ᭆ.qs&xUZﶷ, ;CjDtH4XO.l	~zF^խѽhnЪ弽xfnWwvup"LR%vPKZQ3cEOyw^ ] uevx8y,csVtN
3w |aJH1eMxG<#Hqd)ڻ:Rnjm0jt% -Ǎx""}/~_' aFAM]ZsE%ѵmN'
=,c	.Z$x,L9Ib_kt-j).VY7g'l]K8&ė͋G0a	W@d+LJFN]bXؽB@'&/S6%LaA&ĀB	MWahÊWj@$0K
tJ" H2UG2BL,t!^H}$('iJɓFoK-Jچ0 P'	1x'qҁ	TC	wȽMgx1!i$2MF `r 0f͑i!+5v`gDEdV%1hB]RsUo,UrF,}|+lkx;tNiC'.棼 %0Vaxn@($inE!(#e	FpU*
Tj^[Z[)(P 7 koixoߖNzzfn_>zV\DYg|9wB4}jWPz{bau4b]q/;WZVR(Jry LFS@j@'$H	o9^(_a7L.Hmd^2֩6<!|ƓfHL.$?6LNbHҌW=XRYC3	<zI	/d0}7ǯgw0Mfo[O]i8H4~P4uep͜oHI>FIZ#IL^om;dP9*QPDz+_tp4Y8NeiRZ٤"+sUI*EaxjAiHAR ݡlאz
jZ&D2۝IFwg٦Ad}}/| DA3i9=7Z=!m1ۏhl^Oe1Ӧ"KIfH!3,)խP,kDY}wbNhG̸2.HM*5rg{l6i2Q~u4B<QKr1oj>v_.`i.4{X{>?2x[Ǖkyy>㱡Ao艁{'lj6)Q$q-y6|IZ.H~>ɴ"	$Mq$B
E	1lWQTt!EleEi!gbcz)E("4njRl zy$|ߨ~kZ=ta0gP X[p. FX|]_J-=ukSX%ӜbILlQƕ UnOZ价S׫v\ NjYxTOPA	p˔;QbPFO0bF& !$&t%2֖hWXa]26x}e[~%?0HԮO`3k{A鬺QhbX!^, 0+ȃ8{C?s`!KMya2,zC!M%APy+5dg` -WУ;VPztlo5OX<NmuIagdRAPgig&J !w)*syl/A]A.\/Úv+x121n&5%b36qç17Pw4vW.wɤ𻲎uZICC[Y Gl˯^S 2!GWu?FuVTZ/ t+lܡ68  c^M`POU#ǼK] T;(~#b
PlR^H5UNrw(D2vCc]Ή˜ӷHuq?H֤TLKS1[T¢./L	V.ArqEN"tfʸ)M48'sL%כf"IϪ$N/w@ŪBh1@ZMa3	hywCSvj#&bg]1oJ;?pY;ɿTOx[pUf&-[{ǷC78}ە.R"ԒҢ<[w )zhk;^xr d?VGs'_\;|vhf*lܷ[nuז>zx]yM/oHl=rbᵭmi9%EVrJw$%B)\qjߵ?!,,)is0T7T]gO~&g5l|{j"vawKrg(XKnbq6Z!'3/[#ޥ(<3/=B.P*d\=`jP9y/	1!І<[.#xb!9a/ .J/܉s
B]tvD/^iѩo8]s#GnmyFC`Az? #xp#WxuK`/Mkԩs[7OuZBҐM<'Hzml6XEdHhyȃPU5:y}ԛ+l*ÇSm~R}YAe
˹* fe>UdXf: i!`t$1B =]CP;:!P%/Nl'^>22ݤ=|C"@# z!:4Z#4IN߲c? yf^$^$I.-p=0Q"F>OӏQgwln_gcaR_ۇ$|~r;"h؃`^4f{NK*KW҆Tt2XF[#yQw/`dExJAF f7Y&B._PT2ٹ,3B*TB>cb!6߹߇)*44cc[5yc;_mۀ^`4;S`&7.%hN8+$BI/qL	iQ|Q4KmTG/*\>j!-=P52K0 IٟsFBW^=Uivk=} *݇ۋLn\;oocq4TxMOQcAڍc
mTJHLj+|֐Xw63ۙk2sK?A+.do;C$TΜ}=I.E\L,ǲ	:\j]ƾhw$6[oU"liARΎoM̶O,N#FKjxa㩩%T#NL!Q4ŵtz4`¦S҃7~2RG/AYFdhS>F0Ipj%$>О?R@WzVh  ]Ԍ6c$BgPȸ[KV3b]Nx5Ctzx	^(Ŧzk=.$KUg@;7{1o'Gqi=#a]<BEJ5dFqAtC
?5o73tߚQU4˿ &fx'0Ab8dY^bE%EsMy "uKJ3Xy}]}"C\}'O`E6y'MGKQbyf^z/y6Iv
IY%7ʸNަh,?GN2 (1W!%$QA!-3'U $CKAK"^R K'T,AE
y%4RPg QW\P6GG8*5jBR~~:ޙي:b8C@CyT-T6j	K:Ÿ{Z "fx'Oj8FYE^ /7x}Sj@nH+žȲl"
lvfd>d$0-"| }$vW[sν9y˝Ov<0굱ѠBdY"cǬhDW>ztr𞺽~-oN>I 0o		Mx%)lw52F4{	l5ճyP^Ҳk4OhA#0RƓ$9kWӒ|A{[o]ov ^B|DEʤ,O`1kF?WxM=-l/r	IXr"H'mKzJZPS3E)0	9/gk}gbwB<+.ԾG}LKՙFcطS.iB@$ۧv?[!<ܷܡӛv[ǪN"vJQ[iVfʡ`: jyu7zxݿϫ|uxnu~o&xۨ6Ablf) )A@xՓAk@qmj٭Aum!
-h&oٙ85'? H?B£O٣ xdÍ5-$e>PQƿ]]]D:^P8La\VZw_gwP*'ҁE*tPX$mE9?Ornc6!B0-,e8E[85qӜJ'~b#(aOuret2|Z3<}pNCDU	td 4C5@0	}[k}(_{t׷V 2d]nѡ2P09'(nmU
'!t*#pb*Ӫ /gcOjចood/w6igyц;'_0\i(b >+u؈N	?*ݮQQWW3^^xAkA!EIIiiƊTۤi)$hݝdGvw٤ͣ07?~&l7p̛Zjw͓V#>ggtjQc&~BC3_|>ج^V=n65xm	'AtıD7x25¡9:؂b{vP.bȆqИ8AADދ\F~7/cc:Ò(T}S[/fh=$EFg;Ue6ҩDe}y2>`/#,gI&KTK=\L)͕dA~Kxb~vϟF`#y Y;Z&)2ډaa;Xq@99j&ͥ59ux:ErVYȶ>ဩ+8eTn"P$뫥Y[h sqDO[$Sh;$!m% >kRd&+aE2l(0d;JxY>z{A1;HM]geQK~7X0׺=fxRjSA&i0ؕ!QIcOAP,Ғ E:ܑd&LR;
}q]tUQ7o~fJBβ97mQ-[><B<-0gbhms[lZQ#1/ݎk7~lE#^RIf`})#hIzxov7]Ǌ v	j}dBձQƎJ=JyJc03v=&hnFɡ,MTBh|zp`۩Z)ޫ<2u#*d:PoyQ*%Q̂5e( >P ̚[ĘkCvSǸ_Tᒃ_DB_gMua.i;ܔh[Tŋr4Զ-l&KsUz{ݻ#_rc6n5NpO7,LZ;%h9;^|*vS`x۪Bi
QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο|q
D 0.xJ@V[)J."zmբi-gbL(UC[w4.} w2Vfs~?//MtӻϏbE<iɇJ3JB$  q<T`Q}-KW`/ P%2ӵ|k=qvqsf|5jqZ/6}'AW<0zQ)`-ng	]OH@Y> Ò>9iu9G~͌Њ0=ev[mf=ؠ50HRug%BPYP8_霈XݶueY۩aSrj@f}RKz1g8hv9Q2n+p|e4mF.MK	oSZ3b0W^4ⶼnxnx۪AtC5F&ͫX'oafLy[fNIj~:~{y&sOH9&NN-)VHSIw)J,KM,F\_Ů'gkL q 1`B}50Q-Mk..}--.-4I'*Ob'eUut5nq/Ɏ\Eu&O xɵ E(x-|NdQvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Οl89Sv-<V XRxlbYX^X\l˥TXT K2RS3'dq (GmxRkA$I
6Fa(m6UQftd1[ A<VyR73eFS	޼y7WOL,٩+˭Fu|:>xt">YpY:	w8q:S-9Loْ=^wN~|>v~8|l` uC7YI""{x$9ll])Շ]hzhS7H)<][̉8t|H:0ǧ_KBe
>7m9=c#!<^*ݻ\"f	2G*zq
r	x(qLpcj%YaD56!mXM,_ֲ۾Cgwrş,;qj@P2OnR-bh*@䱰uOqjO` 0o-$DJBS
wgk#Ӑ ǯ83Wcg 8Se-DW{}x~ h!x.t煬2sҋS2SJ3RJ3sR'+({O~)6ykqIbQ2*l`VJPWª*cIKARK\yr`Hy~@~f^3䕌\Jt -'?"t^iB%
B@c
vKL
|@i
# sQ)px뒺#AE0;D(۽( #3e֛]Xq   ox[0l.QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο8YEKvK xWQo8~WKqen"6:Vj"5sEU ٶ ZU+xZB) pY%7t0I\<aWj?T\Ь4&֢!JW0)vGY@EVx=bYSMp;5Y}#ǙguGZ::rM]8;h2^SHO%<]))JjJV $dqz%JHfNҒOKfU,7 j$7p҄$r|}7^yp0qxWxw~_(hC07쮐&t4ȷ{U0gbh$ssd2ǈ`2dUq)DG;.rm4-$s)IVhX1K0BSgXtDA/$łS<fwgm@ia֊&kYc<zݹp67^aDKsҽ?~7eGKZ3dT$YYlpQHzYdy%Y;b7Vf:2)x5x
Imʧ5fk.WC}u>DÑ?qy7"8
b[_6Npϱ82jX:3KLJ!c*fqxǴHKF64&7NR|˔/ޤd|i6;ךm2^O8KK,eQ5PSd5ׂKӥ	7,Ǫ'/u3	䮠,z
l&XD++B$7հͤ%&6+$I}?żpb[uMHHk(G(0^}\"k
h>/Ӵ>?#=ϜYrVQJiJ% zQgS$qȰ/8*x΍i
ox}f'Kw92#5|۷КV?~8Nǎvo>TnF'Hj*p߳E*ñ-> *<lx!@kƑã]׺MUAT<ʍ	oJԻ|OPjXٹ:9.w鹴bdu{F}[bQ]B^!bSeTT6SGJ5&C#<a_zCZExS]KA&1RD
(jUJ*de?f$;afԧ⻰?}QPDD#;{s5u=bZVHèq=CV&Ԃ].lFxvXҋۧAY&=I*S.?<<)s*T+zmU|w#Wodn3oYPaBx'i}NF/UKټJ2t6	+],:ּcф&u)%??y02H`F#a(Lq,9ݤc=5R)r@<@cr6P'L:87&pjH<[Hh?]$5rW=T'\ 4kO$JdN"u?[_pڡ?DdtnxkAǉ%`Ӛ4zU).Z=-?
֦x*Nؙm=?Aċ'{_x$8o&!}ߛΏ+矌>4!ݺS	p>/AY!&--ߍNfӗjeɽbIgyV}B1t[-osa6* ֏|@ULS>c晾XT_<	8%|Z[kK+*JEUjb|qJE oL4aecyYgsaqhV L*kOjDu~_
Ѧvd]5n.]68vmM{@4D䪸 03Ҿy`\sc[ӖQ	PY헅2-7:ZS97MÓG2_c;LwȒBUp#8&VY7S|1Ke11)͉PhI{.S&bOuc:Gj-wdu|ZKhʽn Gf1\5u)1(0'C]y>5_pdBv>?5mq!$!A#xu(`|E:m6 E V9l{8>F'O=|#\rڎT袇=1
Þ9j9dbCp'\&sÀdRo]FF-6o*[cϊ;⹳:1}gq8j2g{Y\,mq/>epugxOAD
4)&/!nx&$BQH!ċd;ivfḮxO0</(y;miW¥ξ}o3;no5rpG&gp	8Q`	!LAlLa4 о4|v۠aBQd29 V}N,1T[#gK~FiV\a4$KzΣ*c@SemT<X&|G7+JEUjeob\aRE uoH,e^ay}iIȗ˳a]8UlbW*Ԉ*m*ܞ%ؑ5xg;mF*9`7vhԉ2Vqep؝DF%@e%/5e+-u)'(K;XenbEUEWZpLrL,ADP$&'J@M T7=d6S&bub:GѭєcܬИppU[֡pZkL6湄\<	5{iNm,l`x8Ԣ$1#{sMXǡ}Z{?ɝ>QuhsOQqJjUA+xb.=}ԲDWG>`v
-Nsܣdg2>,v%rwN\PzQ<?~/pd.wY'~asf^x/5KhFqfF8D'{1q%$&ONa6sAy׸}'W!sgX9Ԧ')'e&(d$(
AN
`@6N:9ՀnɬNF=]3E%EIe)֓hcwGyfIĢbD̼"C=MD2$Q>`3'b5D25 (1WtT<d7FZ\R_.-!y &x%tˍo2Ndl YXZP:Y;9?'H 19uzf)F']틃ܝH((O!L+$*g敤)Tv˞&X;ي=cR4xjb{bnn&5,Ȥ5YMFKK!?)+5D!1/E\?rSs*K2SS* 'q ICc. ʰp	x%*0Ʒ'k2KOve6,VHIUHIMI,J-V(H\,ŝ_P\:y=̖O;f?ݽɎ';V=[9/:7=_-H((OigS7?yP]=/'ua ɧ&B}>ٴwظ!'3/[#ޥ(q:?K-К6,Js&;8=177QP bƓ]hRߍ0GNV`Cv])7bz
hӝۀ=OYi[ӵ3 !&q Y[q-e ?x%tˍok'2kdd+e*&$+dNeN/R(.HLNYQaI橓:'k2LgYg_LKARKJTBBA~f^IjBI>xj̼
lb3&;)M&)h'&*hRÂLZZDmRKR@^{Y!757R!?9 35E!,QxH <Tkj8 asylxCvf #lCxkhƼ "$x?-[{ǷxW<YKARKJv?w7@
zymO [4nrdvY'wOMT03 ):yJ6ELa>kMdk6-}A{.zȭ-$%*$$&*,Bc9O G xMuC5.E6K1N~-	Ȉ̹Ȩ)#W\_Påy>.|;fxUKSQĜ	҇蛖IE}ʖ7ҕsjs/NtDD۝%s>	3;Rqa^ίk˥9'^@B"a|:mbp# mJkߙ3+M-&#-mpfNd??rNW`F8b pЏmpe~\,A Wln&1 nF=B\	vJ8ߓ$wo|R󨩾(!0tԅ⤦&]Ulh" Q74@hecH!\j!r	\ToaRH OKk187epRGљ]clMX@Wf 3cLaPПy5i.άIi2q/f[zs&<ǦYk|IF+Wt-5/-["DJ=
q/&edP0	? aw!\@Y"CKWY	MKQ;N9q"p0|Q7<x'Ne̢>as @\1f^Ϩ6V<S=+ 'zH@ K)VQ٠3Vf;ԟ5#
vwi m2\XT%z}RP/ǇX.߱Go
f)^8!2e\%@JM
FnPY|?yb~	SJQC%F`*,>uL~oy^x[ReC53jFFFXv͒lyL@v9,ɞ9	OTg{9%&MS]zs:P^λ`QxT_Hq409$Dꥷ@"9B-ʧAϾ7EźHownζKm"
E۹i*A0?M!ue5MjǓXtI5m'̩5{rR}Wzzq
sr8IJe]EU8IK)rXEa#n^mXڍ+-f^}DOՕD䴭b4ڭ/%Оb/,θԥL79Q5+  0uw'>+aN0"fRjb#Â6	(Z^5`
@BLI'+(rQHEY-qobhwسV>Jv?"{	f'y~(Eѳ˽D2H\#d䓲(GL|@d[|<'P
+$AKcȧT\PMq<L30-Ϋ򸤺K'ʅݠcF)Z.5g:\zw^K XBSC27H)Kwr+HOo}Ig	\q]ֽ6. tpؔsht7I,
4pt :io6DS.=/[yv{vt[N~e`ѹxW]o6}H_ r"ԱiѽDDeQ#8^{IYq;Y!v$<s?;Z+1_8^C.jFdtad.R2
̂W;+-d		҂Zְdk(ZsChxe@eUV+afk>PAζ3xH1j2+ռW8:7
` ZB!X26E[T=#	J	#1h93+8mf@P5V@G/	cK8'ŋco<	h<'a4§p<8alm&wL8IfxLdHla.o*T\-jB,a^VzNȹuV#pS%9G/e6u ?bBdr[!QV[Sz3VAֆ/}T¬nw#~=.ȇoTĚd5p%JIf2#9Y&xh"}s]iv낷	֐Xbj񙖖L<ұi1L[%Nx%fi8G׃ ޗp|qũ᥋+\#J+O/v[fUQc@kx#?Wh1s8(%W(R`֏m&YW,nLZ~O]D"LwW8a =]kLf</@Qf"(
0I)}+IY*y.[e[URxgcv)U,%zX8Aze0	bv?	Z9 pV&SjX0hb<HwfɗBg{Q{Tӡݱ}!!4-(6vF39/?2J*܆RHI~)=rM;XoD
1PxIb7>1j,qqe<BH9V5$Oŷpi $v.ئHKbo&uuȣ%}18z_cm&7}YqW	lf$SnW -1{51t>zT\݈)~hwopڶ\"xWR()k(ZG4WbmV9w4fSyE]yf2-G;|eh7	zg[6X=!"E[EvV2^ 941k̰oA,+ޙtYܮ)XJp˫Wfki>0P,^bwHPہ.5{d2v}5؄~ nvM}><g"kJ*&Mgd.)njb\df)pTϹ9%o1<<vbw.cA#.~H׎fd~ f7~Ux}TMoGmlk!ehYc ۀeF1`!wfU  rr B\%ս^f{g_?nvh-͝q)sPgCV0 T*	2	@Jh 4Qbh!ͱ^}⅍RqZ6K:|kOFQ\krڽvgkk@ZLkbiGWe.Zָ#~dF~%`$<1)n	75ºԊ8-
Qa)uec hPyA*qA6yGǯS5xYڦ)9
ڽ2AڢsVfkdD{G4NgR,ҸTKuuRlE4Mc;$]/Ǧp]^L׵+$<RE˔4	$Bh4"e9cf>_>My͝961ؑ<7O'^Um^ͻ˛Qca+C˰Sha{k2v.fJfџ^͹_]=.>cnAKƓxatKb;Tu%pU	s}"w<KgZ&|:.ԠַvGX(2d(ە<$E~hLOxLSyyZYz	6lZJz?0øU3x}TnAk|\`-X 3F춘^ak!"D  		!T&;3]U飯~u?|;uNkHy`1Lݳ/^1wkrAgL 
C*Tb<f g(P1	ԋfX@~>wf叹m֩Lk.b|kEP\kr}wOF@2[LkbiNe.Zָ7}<vu		,dL!\ޟ\Z93qr1->>	bXARW=)M	<ur:tc%{Q><S&>%fV{ƅic|@;Hڢ+w)OT$ohǁZPm0'!q+LwNnm>Ux0|?/1>_L$z)hH$u4 2Na[d~9}9W}-;gԑsi}A@/^U-^_}ien̕(D߰Sha{k2v.6&<θxA<b\4VJ湷'1-)T寣ukM@1j۴ A.,X&JPH[M#,E]CnFQؚA )*\Gdz`u
VӢߒuh^D}/]Y8x}IOSQ78lЍTBbҕ!A0⒘8čqɃI۾ t`"t{:.swfJE[zq$2%>qK/4Q5KXԖ{]Xrb;1
~asVsްhk^k{.>$J$}kycʤ$uEO)"2IT&k=5(.;9`7vUp44pnC0ۗ\YH^]xGSsCwR2EGO^Bk+ɩ_rrC1ag	lf	r!6%C9DR1KV[f씠 2>ͧ5JݙԂ	3!Pb(}ݍ)1g3D<',f$ %VEP9.zh0wM`Oi gѝUUTgHVvC2RC|Nw6*.9˗"բ|xkvT:Lc}5~9R^Fj(I^w`<D>XWұQ!D6QYƾ,cz lej̣g&LMLMq~&H.]xV6jm!y~%Gt@
C/j;l}pr ,|5B E^UltO,oQt0z_[(mm׺5`Vdb~,*L+I?҇kkx{Bq$?BCNf^6de3
EEE
)e'ON nEnx0CaC("'O6̿ A:x}RMOQ?B4ԐA$B`lqBѰ!5.	,20oюЩL:)4P Ty3-MLz9{|aěsֿDC2f3vتi{dHZ&+͢#rnʺ:ǁ <W:ti4T19ɲkUf!lrj0]fV},VK?ee1J}+u"Z}>9./na'AN>^ G01(n:2Jfg9?k%Jz&;1gӦCv^Aº򥰸fjLց1I'Qs,FhlLhe&'"##uܧKN#wpf'n!vFW
nM5֫:U[Mq	uS	![5`w/!) LénƹWzs&Kx94h)$A%2Teٛ#ݔ#EGЛ[Z>h4f[wuQ gOG:zm6CvL@0)IFr* /'UF$=Cj$%ᜊxsQjY^,@q{>s?:4zBfɍ?=Iю?KNxZ}/*
 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup Drawing
 * @{
 *
 * @brief Provides functions such as 2D graphics rendering, text drawing, and image display.
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file drawing_font.h
 *
 * @brief This file declares the functions related to the font in the drawing module.
 *
 * @kit ArkGraphics2D
 * @library libnative_drawing.so
 * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
 * @since 11
 * @version 1.0
 */

#ifndef C_INCLUDE_DRAWING_FONT_H
#define C_INCLUDE_DRAWING_FONT_H

#include "drawing_error_code.h"
#include "drawing_types.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Creates an **OH_Drawing_Font** object.
 *
 * @return Returns the pointer to the **OH_Drawing_Font** object created.
 * @since 11
 * @version 1.0
 */
OH_Drawing_Font* OH_Drawing_FontCreate(void);

/**
 * @brief Defines an enum for the font hinting types.
 *
 * @since 12
 * @version 1.0
 */
typedef enum {
    /**
     * No font hinting is used.
     *
     * @since 12
     */
    FONT_HINTING_NONE,
    /**
     * Slight font hinting is used to improve contrast.
     *
     * @since 12
     */
    FONT_HINTING_SLIGHT,
    /**
     * Normal font hinting is used to improve contrast.
     *
     * @since 12
     */
    FONT_HINTING_NORMAL,
    /**
     * Full font hinting is used to improve contrast.
     *
     * @since 12
     */
    FONT_HINTING_FULL,
} OH_Drawing_FontHinting;

/**
 * @brief Enumerates the font edging types.
 *
 * @since 12
 * @version 1.0
 */
typedef enum {
    /**
     * No anti-aliasing processing is used.
     *
     * @since 12
     */
    FONT_EDGING_ALIAS,
    /**
     * Uses anti-aliasing to smooth the jagged edges.
     *
     * @since 12
     */
    FONT_EDGING_ANTI_ALIAS,
    /**
     * Uses sub-pixel anti-aliasing to provide a smoother effect for jagged edges.
     *
     * @since 12
     */
    FONT_EDGING_SUBPIXEL_ANTI_ALIAS,
} OH_Drawing_FontEdging;

/**
 * @brief Sets whether the font baselines and pixels alignment when the transformation matrix is axis aligned.
 *
 * @param font Indicates the pointer to an <b>OH_Drawing_Font</b> object.
 * @param baselineSnap Indicates whether the font baselines and pixels alignment.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetBaselineSnap(OH_Drawing_Font* font, bool baselineSnap);

/**
 * @brief Gets whether the font baselines and pixels alignment when the transformation matrix is axis aligned.
 *
 * @param font Indicates the pointer to an <b>OH_Drawing_Font</b> object.
 * @return Returns <b>true</b> if the font baselines and pixels alignment; returns <b>false</b> otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsBaselineSnap(const OH_Drawing_Font* font);

/**
 * @brief Sets whether to use sub-pixel rendering for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param isSubpixel Whether sub-pixel rendering is used for a font. **true** means yes; **false** otherwise.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetSubpixel(OH_Drawing_Font* font, bool isSubpixel);

/**
 * @brief Checks whether sub-pixel rendering is used for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Whether sub-pixel rendering is used for a font. **true** means yes; **false** otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsSubpixel(const OH_Drawing_Font* font);

/**
 * @brief Sets whether to forcibly use auto hinting, that is, whether to always hint glyphs.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param isForceAutoHinting Whether to forcibly use auto hinting, that is, whether to always hint glyphs. **true**
 * means yes; **false** otherwise.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetForceAutoHinting(OH_Drawing_Font* font, bool isForceAutoHinting);

/**
 * @brief Checks whether auto hinting is forcibly used.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Whether auto hinting is forcibly used. **true** means yes; **false** otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsForceAutoHinting(const OH_Drawing_Font* font);

/**
 * @brief Sets a typeface for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @param typeface Pointer to an **OH_Drawing_Typeface** object. If NULL is passed in, the default **
 * OH_Drawing_Typeface** object is used.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontSetTypeface(OH_Drawing_Font* font, OH_Drawing_Typeface* typeface);

/**
 * @brief Obtains the typeface of a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns a pointer to the {@link OH_Drawing_Typeface} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_Typeface* OH_Drawing_FontGetTypeface(OH_Drawing_Font* font);

/**
 * @brief Sets the text size for a font object.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @param textSize Text size. The value is a floating point number. If a negative number is passed in, the size is set
 * to 0. If the size is 0, the text drawn will not be displayed.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontSetTextSize(OH_Drawing_Font* font, float textSize);

/**
 * @brief Obtains the text size of a font object.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns a floating point number representing the text size.
 * @since 12
 * @version 1.0
 */
float OH_Drawing_FontGetTextSize(const OH_Drawing_Font* font);

/**
 * @brief Obtains the number of glyphs represented by text.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If either **font** or **text** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param text Pointer to the start address of the storage.
 * @param byteLength Text length, in bytes.
 * @param encoding Text encoding type {@link OH_Drawing_TextEncoding}.
 * @return Returns the number of characters represented by the text (non-negative integer) on success;
 * @since 12
 * @version 1.0
 */
int OH_Drawing_FontCountText(
    OH_Drawing_Font* font, const void* text, size_t byteLength, OH_Drawing_TextEncoding encoding);

/**
 * @brief Converts text into glyph indices.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If any of **font**, **text**, and **glyphs** is NULL, **byteLength** is **0**, or **maxGlyphCount** is less than or
 * equal to 0, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param text Pointer to the start address of the storage.
 * @param byteLength Text length, in bytes.
 * @param encoding Text encoding type {@link OH_Drawing_TextEncoding}.
 * @param glyphs Pointer to the start address for storing the glyph indices.
 * @param maxGlyphCount Maximum number of glyphs.
 * @return Returns the number of glyph indices.
 * @since 12
 * @version 1.0
 */
uint32_t OH_Drawing_FontTextToGlyphs(const OH_Drawing_Font* font, const void* text, uint32_t byteLength,
    OH_Drawing_TextEncoding encoding, uint16_t* glyphs, int maxGlyphCount);

/**
 * @brief Obtains the width of each glyph in a string of text.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If any of **font**, **glyphs**, and **widths** is NULL, or **count** is **0**, **OH_DRAWING_ERROR_INVALID_PARAMETER**
 * is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param glyphs Pointer to the start address for storing the glyph indices.
 * @param count Number of glyph indices.
 * @param widths Pointer to the start address for storing the glyph widths.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontGetWidths(const OH_Drawing_Font* font, const uint16_t* glyphs, int count, float* widths);

/**
 * @brief Measures the width of a single character. If the typeface of the current font does not support the character
 * to measure, the system typeface is used to measure the character width.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param str Pointer to the single character to measure. A string can be passed in, but only the first character in
 * the string is parsed and measured in UTF-8 encoding.
 * @param textWidth Pointer to the character width obtained.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * **OH_DRAWING_ERROR_INVALID_PARAMETER** if at least one of the parameters **font**, **str**, or **textWidth** is NULL,
 *  or the length of **str** is **0**.
 * @since 12
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontMeasureSingleCharacter(
    const OH_Drawing_Font* font, const char* str, float* textWidth);

/**
 * @brief Measures the width of a single character with font features. If the typeface of the current font does not
 * support the character to measure, the system typeface is used to measure the character width.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param str Pointer to the single character to measure. A string can be passed in, but only the first character in
 * the string is parsed and measured in UTF-8 encoding.
 * @param fontFeatures Pointer to the {@link OH_Drawing_FontFeatures} object. If no font feature is set, the preset
 * font feature in the TrueType fonts (TTF) file is used.
 * @param textWidth Pointer to the obtained text width, which is used as an output parameter.
 * @return Execution result.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if at least one of the parameters **font**, **str**, **fontFeatures**,
 *  or **textWidth** is NULL, or the length of **str** is **0**.
 * @since 20
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontMeasureSingleCharacterWithFeatures(
    const OH_Drawing_Font* font, const char* str, const OH_Drawing_FontFeatures* fontFeatures, float* textWidth);

/**
 * @brief Obtains the text width and bounding box.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param text Pointer to the text.
 * @param byteLength Length of the text, in bytes.
 * @param encoding Encoding type of the text.
 * @param bounds Pointer to the bounding box. The value can be NULL.
 * @param textWidth Pointer to the text width.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * **OH_DRAWING_ERROR_INVALID_PARAMETER** if at least one of the parameters **font**, **text**, and **textWidth** is
 * NULL, or **byteLength** is **0**.
 * @since 12
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontMeasureText(const OH_Drawing_Font* font, const void* text, size_t byteLength,
    OH_Drawing_TextEncoding encoding, OH_Drawing_Rect* bounds, float* textWidth);

/**
 * @brief Obtains the width and bounding box of the text with a brush or pen.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param text Pointer to the text.
 * @param byteLength Length of the text, in bytes.
 * @param encoding Encoding type of the text.
 * @param brush Pointer to the {@link OH_Drawing_Brush} object.
 * @param pen Pointer to the {@link OH_Drawing_Pen} object.
 * @param bounds Pointer to the bounding box. The value can be NULL.
 * @param textWidth Pointer to the text width.
 * @return Operation code.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if any of **font**, **text**, or **textWidth** is NULL, **byteLength**
 *  is **0**, or a brush and a pen both exist.
 * @since 19
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontMeasureTextWithBrushOrPen(const OH_Drawing_Font* font, const void* text,
    size_t byteLength, OH_Drawing_TextEncoding encoding, const OH_Drawing_Brush* brush, const OH_Drawing_Pen* pen,
    OH_Drawing_Rect* bounds, float* textWidth);

/**
 * @brief Obtains the width and bounding box of each glyph in a glyph array.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param glyphs Pointer to the start address for storing the glyph indices.
 * @param count Number of glyph indices, which must be the same as the size of glyphs array.
 * @param brush Pointer to the {@link OH_Drawing_Brush} object.
 * @param pen Pointer to the {@link OH_Drawing_Pen} object.
 * @param widths Start address for storing the glyph width.
 * @param bounds Start address for storing the glyph bounding box.
 * @return Operation code.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if either **font** or **glyphs** is NULL, **count** is not greater
 * than **0**, a brush and a pen both exist, or both **widths** and **bounds** are NULL.
 * @since 19
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetWidthsBounds(const OH_Drawing_Font* font, const uint16_t* glyphs, int count,
    const OH_Drawing_Brush* brush, const OH_Drawing_Pen* pen, float* widths, OH_Drawing_Array* bounds);

/**
 * @brief Obtains the relative position of each glyph from the specified origin.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param glyphs Pointer to the start address for storing the glyph indices.
 * @param count Number of glyph indices, which must be the same as the size of glyphs array.
 * @param origin Position of the first glyph. The value can be NULL, which means that the default value **(0, 0)** is
 * used.
 * @param points Start address for storing the relative position of a glyph.
 * @return Operation code.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if any of **font**, **glyphs**, and **points** is NULL, or **count**
 * is less than or equal to **0**.
 * @since 19
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetPos(const OH_Drawing_Font* font, const uint16_t* glyphs, int count,
    const OH_Drawing_Point* origin, OH_Drawing_Point2D* points);

/**
 * @brief Obtains the recommended line spacing for a font.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param spacing Recommended line spacing for a font.
 * @return Operation code.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if either **font** or **spacing** is NULL.
 * @since 19
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetSpacing(const OH_Drawing_Font* font, float* spacing);

/**
 * @brief Sets linear scaling for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @param isLinearText Whether to enable linear scaling. The value **true** means to enable linear scaling, and **false*
 * * means the opposite.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontSetLinearText(OH_Drawing_Font* font, bool isLinearText);

/**
 * @brief Checks whether linear scaling is used for a font object.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns **true** if linear scaling is used; returns **false** otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsLinearText(const OH_Drawing_Font* font);

/**
 * @brief Sets a horizontal skew factor for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @param skewX Skew of the X axis relative to the Y axis.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontSetTextSkewX(OH_Drawing_Font* font, float skewX);

/**
 * @brief Obtains the horizontal skew factor of a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns a floating point number representing the horizontal skew factor.
 * @since 12
 * @version 1.0
 */
float OH_Drawing_FontGetTextSkewX(const OH_Drawing_Font* font);

/**
 * @brief Sets fake bold for a font by increasing the stroke width.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @param isFakeBoldText Whether to set fake bold. The value **true** means to set fake bold, and **false** means the
 * opposite.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontSetFakeBoldText(OH_Drawing_Font* font, bool isFakeBoldText);

/**
 * @brief Checks whether fake bold is used for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Whether fake bold is used for a font. **true** means yes; **false** otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsFakeBoldText(const OH_Drawing_Font* font);

/**
 * @brief Sets a horizontal scale factor for a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param scaleX Horizontal scale factor.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetScaleX(OH_Drawing_Font* font, float scaleX);

/**
 * @brief Obtains the horizontal scale ratio of this font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns the horizontal scale factor.
 * @since 12
 * @version 1.0
 */
float OH_Drawing_FontGetScaleX(const OH_Drawing_Font* font);

/**
 * @brief Sets a font hinting effect.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 * If **fontHinting** is not set to one of the enumerated values, **OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE** is
 * returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param fontHinting Enumeration of font hinting types {@link OH_Drawing_FontHinting}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetHinting(OH_Drawing_Font* font, OH_Drawing_FontHinting fontHinting);

/**
 * @brief Obtains the font hinting effect.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns the enumeration of font hinting types {@link OH_Drawing_FontHinting}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontHinting OH_Drawing_FontGetHinting(const OH_Drawing_Font* font);

/**
 * @brief Sets whether to use bitmaps in a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param isEmbeddedBitmaps Whether to use bitmaps in the font. The value **true** means to use bitmaps in the font,
 * and **false** means the opposite.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetEmbeddedBitmaps(OH_Drawing_Font* font, bool isEmbeddedBitmaps);

/**
 * @brief Checks whether bitmaps are used in a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Returns **true** if bitmaps are used; returns **false** otherwise.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_FontIsEmbeddedBitmaps(const OH_Drawing_Font* font);

/**
 * @brief Sets a font edging effect.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 * If **fontEdging** is not set to one of the enumerated values, **OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE** is
 * returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param fontEdging Font edging effect.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_FontSetEdging(OH_Drawing_Font* font, OH_Drawing_FontEdging fontEdging);

/**
 * @brief Obtains the font edging effect.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If **font** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @return Font edging effect.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontEdging OH_Drawing_FontGetEdging(const OH_Drawing_Font* font);

/**
 * @brief Destroys an **OH_Drawing_Font** object and reclaims the memory occupied by the object.
 *
 * @param font Pointer to an **OH_Drawing_Font** object.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_FontDestroy(OH_Drawing_Font* font);

/**
 * @brief This struct describes the measurement information about a font.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_Font_Metrics {
    /**
     * Measurement information that is valid.
     *
     * @since 12
     */
    uint32_t flags;
    /**
     * Maximum distance from the baseline to the highest coordinate of a character.
     *
     * @since 12
     */
    float top;
    /**
     * Recommended distance from the baseline to the highest coordinate of a character.
     *
     * @since 12
     */
    float ascent;
    /**
     * Recommended distance from the baseline to the lowest coordinate of a character.
     *
     * @since 12
     */
    float descent;
    /**
     * Maximum distance from the baseline to the lowest coordinate of a character.
     *
     * @since 12
     */
    float bottom;
    /**
     * Gap between rows.
     *
     * @since 12
     */
    float leading;
    /**
     * Average character width, or zero if unknown.
     *
     * @since 12
     */
    float avgCharWidth;
    /**
     * Maximum character width, or zero if unknown.
     *
     * @since 12
     */
    float maxCharWidth;
    /**
     * Maximum distance to the leftmost of the font bounding box. Generally, the value is a negative value. Variable
     * fonts are not recommended.
     *
     * @since 12
     */
    float xMin;
    /**
     * Maximum distance to the rightmost of the font bounding box. Generally, the value is a negative value. Variable
     * fonts are not recommended.
     *
     * @since 12
     */
    float xMax;
    /**
     * Height of a lowercase letter, or zero if unknown. Generally, the value is a negative value.
     *
     * @since 12
     */
    float xHeight;
    /**
     * Height of an uppercase letter, or zero if unknown. Generally, the value is a negative value.
     *
     * @since 12
     */
    float capHeight;
    /**
     * @brief Thickness of the underline.
     *
     * @since 12
     */
    float underlineThickness;
    /**
     * Position of the underline, that is, vertical distance from the baseline to the top of the underline. Generally,
     * the value is a positive value.
     *
     * @since 12
     */
    float underlinePosition;
    /**
     * Thickness of the strikethrough.
     *
     * @since 12
     */
    float strikeoutThickness;
    /**
     * Position of the strikethrough, that is, vertical distance from the baseline to the bottom of the strikethrough.
     * Generally, the value is a negative value.
     *
     * @since 12
     */
    float strikeoutPosition;
} OH_Drawing_Font_Metrics;

/**
 * @brief Obtains the measurement information about a font.
 * This API may return an error code. For details, call {@link OH_Drawing_ErrorCodeGet}.
 * If either **font** or **fontMetrics** is NULL, **OH_DRAWING_ERROR_INVALID_PARAMETER** is returned.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param fontMetrics Pointer to the {@link OH_Drawing_Font_Metrics} object.
 * @return Returns a floating-point variable that indicates the recommended interline spacing.
 * @since 12
 * @version 1.0
 */
float OH_Drawing_FontGetMetrics(OH_Drawing_Font* font, OH_Drawing_Font_Metrics* fontMetrics);

/**
 * @brief Obtains the rectangular bounding box for each glyph in the glyph array.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param glyphs Pointer to a glyph array.
 * @param count Length of the glyph array.
 * @param bounds Pointer to a rectangular bounding box array.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * **OH_DRAWING_ERROR_INVALID_PARAMETER** if any of **font**, **glyphs**, or **bounds** is NULL or **count** is **0**.
 * @since 18
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetBounds(
    const OH_Drawing_Font* font, const uint16_t* glyphs, uint32_t count, OH_Drawing_Array* bounds);

/**
 * @brief Obtains the path of a glyph.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param glyph Glyph index.
 * @param path Pointer to the {@link OH_Drawing_Path} object, which is used to store the glyph path.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * **OH_DRAWING_ERROR_INVALID_PARAMETER** if **font** or **path** is NULL or the specified glyph does not exist.
 * @since 18
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetPathForGlyph(const OH_Drawing_Font* font, uint16_t glyph, OH_Drawing_Path* path);

/**
 * @brief Obtains the text outline path.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param text Pointer to the text string.
 * @param byteLength Length of the text path. If the length is greater than the length of the text string, undefined
 * behavior occurs.
 * @param encoding Text encoding format. UTF-8, UTF-16, UTF-32, and glyph indices are supported. For details about the
 * format, see {@link OH_Drawing_TextEncoding}.
 * @param x X coordinate of the text in the drawing area, with the origin as the start point.
 * @param y Y coordinate of the text in the drawing area, with the origin as the start point.
 * @param path Pointer to the text outline path.
 * @return Returns one of the following error codes:
 * Returns {@link OH_DRAWING_SUCCESS} if the operation is successful.
 * Returns {@link OH_DRAWING_ERROR_INVALID_PARAMETER} if any of **font**, **text**, or **path** is NULL.
 * @since 18
 */

OH_Drawing_ErrorCode OH_Drawing_FontGetTextPath(const OH_Drawing_Font* font, const void* text, size_t byteLength,
    OH_Drawing_TextEncoding encoding, float x, float y, OH_Drawing_Path* path);

/**
 * @brief Gets the path outline for the given text with font fallback support.
 *
 * @param font Indicates the pointer to an <b>OH_Drawing_Font</b> object.
 * @param text Indicates the pointer to the text data.
 * @param byteLength Indicates the length of the text in bytes.
 * @param encoding Indicates the text encoding type.
 * @param x Indicates the x coordinate for the text path.
 * @param y Indicates the y coordinate for the text path.
 * @param path Indicates the pointer to an <b>OH_Drawing_Path</b> object to store the text path outline.
 * @return Returns the error code.
 *         Returns {@link OH_DRAWING_SUCCESS} if the operation is successful.
 *         Returns {@link OH_DRAWING_ERROR_INCORRECT_PARAMETER} if any of font, text or path is nullptr, or
 *                 byteLength is 0.
 * @since 26.0.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontGetTextPathWithFallback(const OH_Drawing_Font* font, const void* text,
    size_t byteLength, OH_Drawing_TextEncoding encoding, float x, float y, OH_Drawing_Path* path);

/**
 * @brief Creates an **OH_Drawing_FontFeatures** object.
 *
 * @return Returns a pointer to the created {@link OH_Drawing_FontFeatures} object.
 * If a null pointer is returned, the creation fails. A possible cause is that no memory is available.
 * @since 20
 * @version 1.0
 */
OH_Drawing_FontFeatures* OH_Drawing_FontFeaturesCreate(void);

/**
 * @brief Adds a font feature to an **OH_Drawing_FontFeatures** object.
 *
 * @param fontFeatures Pointer to the {@link OH_Drawing_FontFeatures} object.
 * @param name Name of a font feature. Common font feature names include **liga**, **frac**, and **case**. A font
 * feature needs a TTF file to work.
 * @param value Value of the font feature. You are advised to determine the valid value range by using a font viewing
 * tool or referring to the font document.
 * @return Execution result.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if **fontFeatures** or **name** is a null pointer.
 * @since 20
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontFeaturesAddFeature(
    OH_Drawing_FontFeatures* fontFeatures, const char* name, float value);

/**
 * @brief Destroys an **OH_Drawing_FontFeatures** object and reclaims the memory occupied by the object.
 *
 * @param fontFeatures Pointer to the {@link OH_Drawing_FontFeatures} object.
 * @return Execution result.
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if **fontFeatures** is NULL.
 * @since 20
 * @version 1.0
 */
OH_Drawing_ErrorCode OH_Drawing_FontFeaturesDestroy(OH_Drawing_FontFeatures* fontFeatures);

/**
 * @brief Sets whether to follow the theme font. When **followed** is set to **true**, the theme font is used if it is
 * enabled by the system and no typeface is set.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param followed Whether to follow the theme font. The value **true** means to follow the theme font, and **false**
 * means the opposite.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if **font** is NULL.
 * @since 15
 */
OH_Drawing_ErrorCode OH_Drawing_FontSetThemeFontFollowed(OH_Drawing_Font* font, bool followed);

/**
 * @brief Checks whether the font follows the theme font. By default, the theme font is not followed.
 *
 * @param font Pointer to the {@link OH_Drawing_Font} object.
 * @param followed Check result. The value **true** means that the theme font is followed, and **false** means the
 * opposite. It is used as an output parameter.
 * @return Returns one of the following result codes:
 * **OH_DRAWING_SUCCESS** if the operation is successful.
 * Returns **OH_DRAWING_ERROR_INVALID_PARAMETER** if either **font** or **followed** is NULL.
 * @since 15
 */
OH_Drawing_ErrorCode OH_Drawing_FontIsThemeFontFollowed(const OH_Drawing_Font* font, bool* followed);

#ifdef __cplusplus
}
#endif
/** @} */
#endifPchxt㆖'Yd&;Tn_6 }
9xYklY'w׏ď]ǏܬN$ppNı	ř;xvf3`9PQTRTF-J$ԇVQRUU4RğJsٝ
"essOO_+n+@!x?UcTV%$ikIJMK'VѤY#D?A[rrTwkQF{ߔTRJEm Hzv,-$iۖhy%-EptsdMH*	%d>OdZ-^,qnnKHJΔ Wu"	;fQw`HE3ZYe&AM	׫c'i	d@͞BV7 Z\9Mfj^iylIURx[ĭkӜΆ*d5
U&´1JPԅǵˡfSp>Bi(h`FW; Jx^kc*80mK`tȒ扔x6r2w|q`y>L;Mc{4v=4;fH9Tvv:IIg`B
PK5ă=a7-\6GwZ=rZ|]q.ڤ^}}A
z%{&L,b*ԣt[t|dR{[Ql;karڱy87$ᙝj$U1Gh3!ɘi醔S47{!j-JōÅPp{G'dtq7zP:*dh7V»BQʒ~_LX(^<_bo훤4s$TE,}(dHa`D?$C%6ĥ"1I,5ۘE@`99+vsJJ|9MlC+=oRbp 9Tu-ҠִWlf8ND/L?-,0#F~d=Ag/f``?IK1hfQ0f;Cp^ʅM.W/v7:=/PfwޞݲB__bOVÍ`YiYSk [Ym(ɕVO?+;%S6TX싡IZ#Wߍ[*%1콏RXC}d閣F_㛓mc뫎Q;8(v;)
Z\۸q6#Y]n;a@l%0Fw^xޢ_Kܢ*LRbB[s4$fdE`gOݷƭ+QPUNe޳0Kc|GLt-T
&f}v*4|9G{:SI9ڢR4Ed>Ke${'Ů"^-I0-ЍձUt=p}$k}xU
n.eϩz_6M2	VUS,P+GѽtCQnz&ÚSΑ(i~IML(%mŖ꩟'@hd |IEZ&?bt~XW'#cJJ4b{/ɣb-E%ܼOdW;SN14
tCsܐYC_PYd	CMp믰ԏYAvr~(qc!h#O`hhOC_<@D7?\[HWFÝ.{q|Mwg7zF]^YzhģZ+e7BnLeEK&lpYߙZ<7նe!xaa rV[bWeV2b0mE;DʑD#9)(^U3 dk¯f"p`o>|Ax#0鞍VMA榚nb3v6y73eM}VV.;˥|~T%AzYFlt}(*|meJ;@IUgEu\.L.<-hY': 
DE2,,=6AhZ "P Ej<D9Mip.xW.u-S6c`-XLgLo*MZ<EM$-_c}HTP)FdPxKR|=
,u)+NoXQmnTrv<DF̒JY#)wc."}k2i#XE'6AsXo-w1Ŵ>CPgĖ&215G1aЏckڗAQc4cN (\%f-A= &+uKC˷{ZZG*(<SތaܸfTjO"jM;!J<9CsUls;*\Ǆ.n9}Dبh)P$E+vŌ~#i?"̳Bw3{Bz]I6MA
muàfV9WpL2QD鐷x[>ZXT.*e.p[,_`+"طv>]@tixJG[{w+pɊ^G펺A}/}P	;dMw [NF! ؔ{gZ(LeYMZl%E͜OQft#6K['kx'Uط?OiRzj1%lM,l/Xs6YbUxLsŋŋ(ztk8]cTr'Zg1v3_<lOaj&Z۱A3h{Ԕ*.5o*wv/7KzH	IgTY(G= Wax;ruAQ=}x8 jb?6=Qf{U\
3~C[ xVoEV۴(R	xm&M[M@ƻgf!"sC4N'qG\8 flNvg|{{ܟ̟[{qP7l1x	8;DXRN$*vYÅ.ʪ9GiH#p|T\/}Ɔ6*RëeۙnfmEMWb<FRI080b-ɀSB,ϢuEץKISY%{;75R
 mS+tc{	uJ<b!xB8D1LZrRV&e@:z<:kNb&2;0A5xXtkưJSv'rm3R9wZC6`279ܡYc_l~ "̆mNfIݘG{¡oNp$յ9ǫ+N^z\!>8k{WV;6cwBXj )ˍ3}}yuT2>WrR_]^̈́*z6Db2YZO?Z4x*4^9NlHr֎`yxwxzjfp0ٜ~]ݺ31|NmX;B3dIBuf:K{lYTͩ/.^99PD׊Q`Q\[f`(BTױE<̻9h8#DeIMDNH@C^ؘ%QW?2[$=m*FHCfIґ\]!v>ڣXQB
?TR;I&vaӣaݖYtW<d/{zhC͙
HmM+;~,Rr{:G˃松w'}L%kě>'{
.P%bC]/Cx[~q}/Λl̾yH u
 /x[~*9ʛ9շ1oԜκBu Wx[~q)9ʛ9Փ'*M~#9Y@{FNE[7?7altt=2~b&"LNLlfX2\jg6v&қ,n06[ԜκBu W*1;x8xTMOANi5Z]["M2lvmAS9Ń9/&^1`{xOhbyvfwiZ@Gәy}ө>z0ȿGaC01f"m`:m}|;r0(= jp )0(!zʐ{-4`8R?j+7 g	i _LM	hPT>oXC˸ͤU9֜b},.އwSMb{j(K$ݳ?PIdbV)5"f˻lGbWz7YB9bXS`a݅EZ[*SY6ZHW4	膦BB0[J7 O].IC-^ǚ#h*dq=\]-t.'
z˺N:ĚP#F<Yiyg$㝺/M@o:'DRBg9QoEb*}؅XŮ؞U]^<))(#rQzE,[ӷ4)6ȴknRAs(享#;n>;T6қ 6(Ez7,q,9yjp6Y-B#OSjK^f2/	$AXK5	n'^zbeLW!)T`IQt(sNx~'}CgZ;r+#q&eJg`#y}`Ux
;<hë? 2COy[xTKOSAN"j C^	o%B"McS:z{[@tBȘʍ1&.{&ƝkgRh|4i:Μ|9	1e#9"r;v]l( 6<(lh(r,(ZСPF$\^_aQxt:;{3s	9 C,\V{LTõ)#R:x:ӦWNYt6IKeHͨ@]ؘ%Bo*)qf ( $m܃C+Y^@EtNPwIYY c	酕"RH	5
+dX́Ul;qmah7RܜiNr.]鶮a RP8]ZS~$(0ǵ퀶l%eWs1&dȷc^5%)KWg9qJ+aIzSZ2KhlZV릤l3\0rc~\mww.2D࿠Ѕ}-"b?c	CXzk8h0chMWoQA"y^ȑxiڅo-8;g+x(|=l5yc.~ 4>UKe	nߘj^̖ 7VU2_].c!"gCګw<YsWsc-2'ǻwSۘ.}./F>$
wv"m~ 	PFx9]sC)2潌MXK6dOg,uqD<L'c6c <xUMOSAHE	A4$H@,b
&bB1.ԐjJ0QJڇq+-Z-FU=Jw置N)JC]4mfιs9gc"( `&0 *<Ҽ X%G@G 6'Eb
#$
3?{ڼrh]yi#R*̫,B+OK|Z<<p-ˋB!$!)Ee	❄cvsG(*1*JL#k?U%bNhd[`vofS<j%4tkgnөĚ}({u%5%ޘGOof= 1#~JƖ`ă_ű=NZGߥSq}$pIƝ5lWmlTոH3<`Y`x0ĭWԤqd\dvfF0:=r朗9r
ˤ[ǲMXǂǇAHe{W-Ŀf7_ZS.n\fK1+"FGhDaԅSchѾ`߿"k,}6UЌyXSC
|YKe,$ᾔ43P6Pa[ 1,sVPZS$_[1I;6'K&	Ǻ.&;ܺ?Dl]GA(#/C08+Ƭx%m<DM	-?5}Ef\T.9fw.~P2Ͷl	cUI98)ku4cT{mO"<:p՜zS?svMm&%kDdQxѥysҬfLأ6<8Y/+n#Ͳ|KA& EPrx9IsCT橓cZ&?djقqk	L/rM3y;/r	DL~wEW$vBWdn^+ z"lPxTOP~),! Df2G_M@gʶFJ0ng$}}9#H}zkLN? Cb!*y?츭:,MbT`'&Ӽʂ3~Qeȫ%XN2 b.
UC0AԤ3:C3#P<<%D)U'%:geE5[鞽O(VƧc~
mV(,ℜ\Q'* GDۑܒG%R}*
+/6_9wBZ]y'3\?d#Yaɡ*aZ$6`fԄYP.4(?mkʿUcvuӣ\_(M_>TC?vBUEVzT N~pAdS%]%& i5Y͏1N#AchvjY8boM
0vMakRtQΐCvuz3[ej^;fM*vNQܒ]økl(jJ@ /;52]< 2s渺ۚ;#s_햃2GR's%E'xٸ}*1SҢȸrVzXռ[%boؗ۽}Z; D)wxqB=M&O9dDocBoL
 S0?,x"iLʙiy)iX&W(mNc¸y.+GKQbyf^z䍒Nu]y>B9&L. s}~xQ58{Oퟬ7IZL)4a>kqdw<L|Ulr	1$%!iɩZAff	;Ќ-@K&KNϟ|X|vmȚ*ٍ"y#Yjޓkѵ}l/ŶyS12ɽlr
1CCcX=?GsC0,,=uVtN,69Qw}z3&ۊ+Vx&l[n$0cX=Yhv$ѺƸS<v&:粋ONljڀ&h➜iя-N(@ŭZ1]):U|b;a7ʦn_,/N"$6ձab">Y!C	F6r
M&O9<ۘ([gG9BuRnEx۵*=&O9lDocBoL.|36_!-?''\$#sSy%z
i`ĜTbT4U <ʂԴdɊ&?0  T晗XZ 4HHHMީ8d5`kԸ!N~(%5	(¨$XJ# u~*ۄ=1ƨ,rBCg! "6x۵*Kń'WH/W(HT@^gX,14U!X4UMH85E<#5O 5-1:/D8u8@6 yd&'4 )R(nRw*f2yޚ"%! 5n@a|JI&@M0+`5R}_
6abL1*񁜦` Ώx۵qpLSQ m	Pmx*M'/|2H	Z  G9JxۼUnFYgfI`z6u Ox.Դ̼TxO?gPx pO?xSY&2 u,PKLN,I-V(HUM,WDhh^CAbQbB%JZ$&ʂ^ 2@K#ޥ(<3/=,\
4B#-'?DBG¨̨/>y5,	
E)y@
i`({OlCII]eș;g_P TWSPR4YZy!ة%y%VuB${J|$$DXܞNRZ kL}Zߧ)ڶh/>d~A1.%E` EVxUoEVZ]qɸm6(!%"iLqn;,lf6i@( qWܑZ13&6yo}~pdWk>x|˗UT|fhR'I	Znmҭv/!`UZy״tbÓ\]:hf`{&mT;l+6$2SOY gjK>$u2=62·	e&F!)&ֳx4	px)
D`}gXPDZ.
5Зcܪ.OF
Σ9ȌEȍ_Wx/€oG2!Fb4s؋1Vn>+Ll"bgN)O-iO
ąQ)ռmaHdėda.0Qc.INJt{%1xᛅE:A[x<
ky$C狞*J҇syZ$	F
6+`DOlb%ȥ;6,X[o+{SPGLPnDD1/^6R!Yg~u9X:vl2s~Y: o&'OdRdg4;_RX~~87,f\feuzՙr;/Է`.7԰^Jú:4Net )9')zrOTإy0T
jIlY36r8q7w"eڲi1әeQZT@2X@.G8K@ӑh눫ؐpd}?"^'ۺVak"rgn:ەڰTspՎﻣ+<Ůţ/W}m!!SK)HI~D9>UTܣ#15ݡm%/9gq?jr?N{pߎ2@DTh	SK QTC\xuRkPG{yH7dC6>歋m
R
m:m!_@ωVO>
yH<ڮM<?w'Jn<?O巘ML6-(~I}y>H߫ik/MugIG8=֚W-lup&aI
&c	KFڌ	B'@C"C{r1$c	w\S]/FcY'!1"zPyWYfP´ kbB`)J@?3[ԚF;6-Zɵ}P\|+.ԍ)q!@8ZbԶ6a]SEIsV)YcIx٨0$		dc3{Ηq"WAyt+){SfgA5Gf*?kR~1L41GtᆾRcjwl)֋X%^ij x[.\l8FY.n ,3gxWoEWbnI[4I8_M4%&%i%pb׳23ֽC% +@	zm)B7~??s_>;ǩtVԋ){S(u{/ʲoңkuS52efHCZu۪`hWl AhY7|%}{QfY>k9*Tn[&{[A,<.Y%#!AUjf:TձuT:U<{ozzjYRZ]Qٻ+s&"[f? ZXn舰&_ocr-sDv}Kv̠V&!H7ῸA."m|DFk56bmq]fEuAA"ֆZ YOBE9 Դ؏$-i4(alzSi@n,n >Ržx3u:SQE=@gLV-|]& ~ee&z/2cFU,|SOXosy.Zo?orWz|Bߊdaz)0UA~81vkEj73_AVQY&{I֗R]wK2Z& N|QvqI-3-hO<%maMIP\bf8DE0g}7qN0Km6zN(olT{y5b b͊ZBJIBP@UpԸ,gg,W?͕EkJk(0P
;$W4)m#o{H*u;a?LirгykϨXvt&t"ڨ0Mp[QUDۅx\<b]#@-aˌH<Cԟ<ǱA4Z4>pF&bMk׵q<$룬v$Ūc'v6\!HF-0$6Kʀ=zb`g_ #ٻ=u)E(w}TܾsCaqsބt!-VAj{x/D?V650"H^$K;EZp)(fFT{YyA|,]6C)9 SUORxVoEV8HQTjP\$MZH(R,;imV ;ޝGgYU>qP	1'NE\\*q@73uC8!yo
{sDx<%#C{=]XխJuq1{!.eUk[΅H~7so!<!'Vp>'ɔ%[K/7rbקΙ_3grG÷>,HDu9Jh3wewk~x-'//Y6;`\}
d1/iP>b.ϢMP8V!L@u :!S;OB|(|.4PsShsL4l%AhS-_TLHb3CbRpiVnR!rӣ3$q(WTʺuPĊ$"+]yqxי<}?</AԜ3XڏQ9z&	ׁ驄 5mĉBml]8ʴC:>!ꄈtѳҠ>GH&\'~$ X-u!Su!!e6Aټ|pDk_gU!ɇch@C&Xfܥ's0+鬼R/u~2`~rR/P(U+RH&kv	
,C+d0RVj	nr(YFWvaI5(cbꆾ)
<A'`A 9!0ej̛Jh=z,^q[CrNF]y#_BizQ[kB~ai6z<_2acF WTZ]wR^y>us_wL>"x;-J7rch{6R*i&E&06t['FȹO$0Ɩ>e6FuBF8ܨzb[ӫ1DsӨazj'K{xNLM9u)gŻ#֌;8?7`[	c_z<\Z|,Ln )b sN?olNNd}`sV뗯Wm1x{q56 ,Ix+ M$$KN& OAKOP(vI9Pɫ:xۻB2~6IvYl􁌇*&\g&w)J,KH, )ۼOqr/'tx1 
(-'SkFon/y?]P-K@x[[~{ɭ,b6+[t f2'`x[[߮3Abl!xe͛JRs*2rSK23KsR2R22J2KR&;zR~~B0~@䏜V>yE&Ol#Y],qrf)'2nW;ø9l#cdGKͳ,77j1 THFs#Mx=KA!beD"J DG<AGyw{v ,G%©vww01ؙŌQzǥN89k`c9|#_m9ȽK819԰H?$m#$+Zـ:*QMqJC60,b\'ym$9
G0v7
{yf7knZZ%]&%ra΃8Z?qY#1ֱhyDz	y@04(+r@:	\Ǥ&ʩ}Ce3ʯU+YAUm@1t[+u_$~9+?cӀ H}{	?g
x[8qCPBqf^zNBrFbQbrIj<ޓ7*x)xd&'+db(UHKOIMQSqӵVQOɅ͕V0͜XɀHi )ɲ`p'w+LR *RPPUYyB2 ~"DXUxT͊P.ĩ,\z6.iqYnpOE>@Oн|$53X
-;s<Yd}De %.,,LZT>3 ,矯|(!x0#F[F<3AhN
a )f%|*M/+R5}flٺpumcV%؈['OsO+Kk"<	t5hMҊ37/8{}o,kHI/Hς0;+ܿXvxajiQ+H8AA҅jقX#[D),j,eSu$EI?@-mdȉ?fMCitu Rv'g0dr_b3oTUT.npvvTsIjCňr%ѱ.y"[CoNw9QsWkK.~ Kt{FuV>X*~x
ճḭHҒP[f4XI7[2z]TgLyZ,m81outP+ru׹L7xmAJAEδkWFfp#DEAp~3꡻7Yz97.=GVZ؛=K>zhljֆN07UMXdOB.
+[`,S" Y_7s\A"ҏDFXoJ&N^Y.1]̤_you'XOѻB'Q=c336еҏ:>STnkw Sl5xk׹}sTn  zLxkY}s.ԒҢb]C4x̼x%x2Jsr
J&)M u0Jx;oztEɗe3S@Ԣ<C=VS~ @ xN@U\!Qr*h(Xz'y|ܖX>X[Ow{'8s)KKHK#` wvƱ~<{,~C8˜iS i9
.g,r/XMYSl]T6*lRTVTS 9Hp
KH1!&#vMK`*LҜ&QȌQfX&)8L<A.۩B5L-ѭa4+^SC1y6M]suC+Ψ1ڗ;c6la~y $Nx 3ҾQm\<Ɓ_گ4#ioa" OR{*!o; X?"x[czj
\
@2S&
+KÅ3S+дLVpƣEAKL'(X$'2JPDŝhRR,BKJsq5YDonCܫ"xQFע(_(\ZJk!ZWK4Ō
^\@cTlZPZ\τŅCQ{5-.)N/-!D	X,l+79mNf 3?Yxun@$Q2ƤQqRGuX6LRKu	\9*x !G@%NRi.~yyi5}c̱#rP,^V~F~6&D,\=^!+vUoyMKu'c?HBH^aޞ!oww(U \bG	Y3{
ŉ駎itgwOu{.iLdFf {>'d/R:ST=Xϝus'b#/X`	xQP?08tcmO"B1k5LͲ)	!9Chy.V4fwa.#*||o[%SrՎ)%gK5n/Zk%]XRhմ 'qR[_9O;jaB}P/b~mz:%oa?7pW&Jx[WtC5sZ&yx#sA~`&V  =%h='[vg^JfrbIjBIFBnbEfBr~~QJfX8?,ԝWǥPXPwYLv:=]3"E@i9%
:
Fy:`gx'>]0)<}ObTM60x{z:zIkL:ToAsdO~>ܖ!2^0F(` ciØ$Wj`X6 :Ӻx[-:OlQvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο8"p6 y	@x|q)紘-'NWӟ,9 5o5r܌u'gl_P2~H
9'G[L.RRp(KNU@RҸ ?3dP&7L<l +1jDx|q)R6fT0M	?9ژ ?3dP& !jxXQoH~0/mD{85U*"}{55:(0!J@ouWpMކzmKIFtBV:t԰kz(FJS
NBB*5uNbCZ>rTQtYL.Bh`B1KbF8&1=J7E"?K'"	Hin	D[ko~Z',&rҌcyn}?/{1U
$7ea93I$!L$E&L2JuF$~"dA7J`3oX/֭'otw8'g0p#;t7tN'|n(E"LҲCJ7")АY$%
1#(H1eګ0ٌilռh^!QD4W~HF ŜETYmBl^bja+MgWI)m\t-t]<K
*lT-5]h?aLAc'*KiSIW1u#ß5tG*A[cH"slA-*TW划acl:ݮ'u|9PӿCk4eim&q	N/o(x9˚H)|痸[uG1M>5uȰ S3*Z8pGC	5!k	.߃aF]9l#6k6ρpni%d=DnW3$>%- l߯+$P1=*"R(9wM*8TH/ZvKmԛw$Ž{*-^A[2{EUU@ZU 3<sxOD.>/x_uJ5*{ל閠s>w^%({'}W["nibJ"qX(kxAH*-dy2 H&|F)&?{%%rUFenG4\KΖKVm}2oʓ|ƱKU(Y<YO;Ҡ|s̸dix/k+N$9`/m6E`<рXՠ\~zkDp/D[kxŔNA#t˂d`0FfIMj'q )-\s#X`HqљLu|ԇgmU3a~T*gmhDTB2F"vmQ PnÄS~ S~/Kv6zhV뻻Lχ7v{RT<`iPΥ
ߩ"}*sވjO(?g71r6UpxiŎ\a~n1XϦ&E͍eBTuX:4\:woH<y=]C]OƎ!X$]Av.rkPh ,A@6n"1}]aHr)\;,͟B%Ď-x5HFF(2g&tTyQ5&Yڥ(.Ɯ~^#@CGI^ӧU$CW	"a1r 1u`4nY&,DSz#ݷq>)h(B	t-rY	BS%^ʷ)6Ϳl/VxhzK7怉ay^qDHC!JڌO
l+Cy[$FaCʘI`Fc3r̦|eJ3l-+kc_+_/5^x}=oAeEƉqķ(T  DA 0((tP}{ewh( i(@H)%$*:Z_bl%R7;|<{3u}(jG萴5l')qrT o}x3ZrPUq~8}?ȡXN Ff=jBvݔ5hY8mV.5qx4sM0s\=8~ZǡU{yW@]%U	z,"=j>iJye_T=<Yv^lPQg"t4۳qvn Oh'NWv E~Ͻ==w1=v#lyƓ:EVc|jgOn)9Htz8,elqBk!@y+Hu8DNcKFXk;lC6Ƭ^#b,EɞH	~QS:^xXqs6Fy6K/b3&kWC'O~!d  75xt"
~?uS\'用于加载字体。Cma.*用于管理排版的布局和显示等。w9用于从一段文字中提取单行数据进行排版。mD<'用于管理字体颜色、装饰等。D10用于管理排版风格，如文字方向等。Mr4用于创建。M?	)	0?用于接收文本框的矩形大小、方向和数量大小。QD
.*用于接收字体的位置和亲和性。QD
F3用于接收字体的起始位置和结束位置。Qn!用来解析系统字体文件。x用于管理文本阴影。D4用于管理文本制表符。mD{.用于管理文本行。mD, (!用于管理文本渲染单元。mj9用于描述字体的详细信息，即字体描述符。9w用于描述字体可变轴。uK用于描述字体可变实例，存放预设的可变字体样式信息。@K
/** @} */
#endifq$T8x[Xqs6Fy6K/b3&kWC' r|ix[8UfC)dOͥLO.ۼ>&/Ls'3/7(3x?RJjqrQfRjBIFBf^Z~QnbIf~B~BPqsJH=]3M+`v+A2}>JHb!+0 jOWx[Xqs97K/b2L&kӫ@cKv	Tx*3Mz qvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Ο8Mq>deVR<\'r
I(	HL/r'rpE!B]*=] f#{k
 5`x*s[bC<deVR<\'rϘ  _x*3]fC<deVR<\'r0 CQx&Xq\6̼ɇY
Rrr
9%z\
Z P`h2#DO RY^XQ9ّ]o<l5R+JB&e/W(./JU( $ĜԼʂTļ̒<vRw)J,K,4cA
MȭT4CN+Jut$ _l~*x-@j6dUV2<\'sOcJ(Q(HL/|U1s=]3֓uY$&  0Qx[ @jC0<\ؔ'7,  E+x[ GzS4SKK*s&2䀲S'rLc"Qw)J,KZOe+ 6xZmoI_Qrxk'"s'h2j3==&s==0F!6T=kqDIln$ο?No3FZMzg&->DPM&3ND_'Mԩ#:o}O'|XDg9E,RPĐ(ID/R28.$xZ=HqDt\UiIO:OtQ(Ӕ#Ss	
bI&1^jeT4kRORhϞh5f-˫=M7|{aHz@WԹw{U.~M@@MhJdW)>i"5ULfI7RG*ePp*j06,b21LYB]-._X+9_t|&\Ȣ	N`N".ʹH*`0,F~64qeibyyjULzdVRIu<<;/ e%JHB4h1ӭ8\q}"I-ZFJa'Y([4{g,9 &ʲ@ØZ"SR/@nTw-ks0`YFJ4vx=nHwbDM)uF~݇Q3G\=	!o:t
	uh#|ڡȴ毎)7IYzo"sL_jZ#EGKCQ1zt	׼Fe`D̩c0g8ssʍ?]hi2m9&1[>U5<|vw[NspjJ2ˮD`t9ٵ K,9s9f"X .Kp _.B}vAөys -'
hO=*([ش+[Q>(֜{h*ƈ<(pMq{[?Hsh@k&Ƃ<ג(19X˨q	25<.T'1<"A'܈0`.t][yMt`v8^{X}3C|6$"HM.?OH{KYOk};4V{[; }V6έ(475_׼5?{{=Ow3(RNfCV^hwk\iMZ֗{'TΎf૚s/.｢-^]rgTb	;{ǋ(^ld:
L$ɢǽǶb#%!&f-)VEaE`X8\>d<!&ŀY6+ŭhtC)|Erq1/24NwtIfKsbb-v''l$VMV(7AZJXdopE/ؤ~<BًOϘZ@;iSa4Píw"YRͪ,$xO':>I?Քcn+=d_?;Riv)`ņ~cC{Wi}BeNi|#U{Չܛơޔp?c"G*MvP؅J'h&*CRlXT#rƧEQOĥg[SAb݃s8-4P)'T0fXEb=uX<8[fCkz+,h;<"(_!1{>W1ܱv/t~d>K
kHoʞ
LgA!y3p*t;1W2Ӻաnp%ؤc͵b~~۱	{XWcnçW
8\Gw{!jEYx\l|ӮwT	;;MaG@n@5U&ͬK"JS*ơ,+R1=ވ=Vs⣭^x͵[jo|xUKOQUJiP9EB G|m;3h	K8хuRCt?&ʝMLN)RMeΣRw6_=B-''6u S2ufX6F,`9
\2Y!kώks`ikT{{އYAġO3!Sf9#Qa2j"|XEO&H¼f4)ppJI5TvHC(7IH)2@A+T.6UcbLM
`iz.㳔IHڟ޸&"8XI7ُG}ZyWf#YrnW8O,*l?I;wub7g"q`g:apoƲKXf-m67,(3qѰ2@M.0=G|Q<{($	%ÍiF٘<1kb=C6YOVųc=v w㒺WáߋBmP<IƶDM/No&eQ5Ol7r$$íGXU9G[1ndMyiaKttNW㣠;$Lb9 ܟ-xO=嘬\Ӛ.∲RnpG!pdG/^ /c_RIL;-NF'R@^37/'Csyˉ)+٦O6 ~?GGW\.aafU*x}t"z;YYʷ/ItxZHUre뻮vod/!P^sx[OA-ER/.fE(LX[*ARQBBLvdSgoFO?@;_pfvֽؗ={.9=gfޥ?-wߝ:P龝_l֣*cL!x]-dZA*?R|klZB}@QXⒹ8x">D#lT&ﯦ/(!<mx+N[F:*334\UP:11 $!5He&%YQ\TRL1RsŴ[TaACB֪QA
2	ge@O k-qy",E+R WV QSL@
M 5EJi $$x*hҌؒ \Ux 	(ZMx7(9a]
3!7gVV
]neaJ;%X&qu&jMxI92ͦ/B[/B ɿcV[瑿ۓf"Іnv0ȦNsJMᄇ`nֳq M*`s2A*~wtDd7o:>־ݦV W5!	0\mij6(O9ч~"m aMsx!&.jdwcTQIYGb3kXaU;KVRV'ZPu*3~"gbj@Q9С8/[N2ۓ೵RoRȤ%&2{>ݚZuc)LC3}6GX.+<qMmQt $U_9b_,"WFȎ`+/rxvAE)'3(RH%dƧ%gdUO(ِ%J r=xTNSAވ6%AESDioQ.Ƚ373sBL_A3[_+?̹93ߟlo+խ*J%F8HB'f	j2P-47$=ChDuB<vgbҝuwe h~,@	.V,OL	[^è\>bB9ۡθ<bھwGoDM1gka^y\RvB[HB 8%fͱtwEQUdvwg*a\dJq@S`FI!k_N)S(tyG!͐G8gp^I(;v^~]5O@<C]12<Q8OfDk6`?Tw[A5l6?"lZlLx\ݘrKfXMDiъ,[fҘbd:ĂֿmEq*B$(>J)96Me.uclｴK=8\Ke<\7{Ε>'9[KJM>TW8hj*W=:z-6n2Sdf/kv曂+tp?^MgCyќ?=Xu˿;uJY~}!LcVx[c`d#)ͳXY6?: Rx;xcC~9LJ[ AlxcfKEf 'NTx[adCjBQjrBIBIFBi^f~B~D01/E!(\4"zT!ĢTҜ"$bLjnAI5%*dB/BR3Yl /'`a̛\+Y7? EC8xq`vfcQ{QbAFfrd~9f28d7GD  zx\oFb~qׯw-Nv[\; EI Éؑ:O;\GU$c*Rҧ7HzHDcwvv淳3!;O W'iF§HOW_g	a\HxA
ЪkWb!XDTv^$v򅨨#=]NI$$&k$@CRɰ8b$,ţ%<Sl4!Mtٰ!4hkZ2!+#QLy}üXTTUMH
Lv(I80ͨ0Nd#4W$MUED2Ii(9e7 	1r IOOhG"_/=~g A?8xΑzۉ҂qĉ3 6%ȴE2cIaiX
b#	aD$#QH\T$5$$M襚y@'NtXD4yDqҫ@^K!EE EDA"fD<TKF!~^
Bp4*gMHQlG`84&}UBuwӓTӝ}XhL LtwrPQPJ']W7qdL$2)`O/AIb bPe6$T5qt{z;h
{0xxCo޾Po瞠U})&6jdbh"kߔ(
IZ2.xY@Bp<P	5$_x@ WS_-doSz.[Ȥ
?/UxYeeS%~=o,<(.wS̰e4l"B\)NK^Eش]=M
X2nVzh]\P1|F h-S49K͸Y_p=]X0<i.Zeg7K_w6ٯ2?v賷Y~}qm$O1Z/gzvZfW>-}>iV8B8WK+)-#4XPZZ->3奬qweO;BcG5{S	l	2Qo27sƓ0$IֹD9rl{jʂ"m'p<H6Fq1{`laȸ݌|'	'*-;7PeB~ѸON/$?H|.o/WW9kvDeTm&kñj.r<$. oCu ,DEiB4ֵxsx#rVr7%a#S6Ɲ(Lڿrl3jn
5lMo5Ln+$[a%wVD*BL:ژQݷ3[Z-י<8-я}+K7^S\i^p)?g`e &=}GOqj8	p?w:{>YU}W]|JOwZi.ɕ\=b8sc	!"_(ҥkuus7:յ;h7Z*:C'Lßs3&Ye9Qt1	I2\W:WVQ6*f@mol@th~''y>~#ޝ
>_{ ExBmWV=`L2krC:޾XM@!}[lb@ovэ:("i5K]%`k|m!%U	oD
q56GX)aNŸD߼jde-.!5(VZ2fUm51s֒bc|xwͧʧ3QUcgʘo<ҔDϳf&>=!O ʚ.P"h=_(fir}W	VƳ[ކl4
\֟'4.랃	hߩIh`yfѴC
ȃ/H0/nV
:4tYXB`xv' O䴒iiT2?µm_m"ݫ:ܫbi1hPgJ+"hdb	xl{ؘ/|sY:,7[qmC1K4if2f&"Zli'O,VY!sY	&:lViŰ7E;ϱtʪZWo`~-w;9G;*_$_{}zcy hPDl d5k2{ 9'OiT17
1FPpQW"C.D.^9\B%䒗5uZn
f3S>yRQhB4
WJ$p{Z0̂Y$RY/@{˪	q iҪcEc%͘SJM2	TudfGZ=a-ZD?.i%C,SCMVa,=׉+
xl/n7Çw]O➯\3a c{3Xߎ},~w# ;],Ji
Ģ]O{R,"Ngv]|5>]'e?	=,*qUoxгfh#)1]E}Wߒ?$Leoe( OolemGiwm~#ȧ5Gޕ46?0&f{Gޘ?DCNĪ\
 ;
S{*zגGdɯUb(FiJq~^7Vɟs;ft'V;5w/i@;Bf\RK=}%ԻZ
<[- w7x"]k }Ϙu	M=%
mAO<ˉ~%&*R3Wa!s-.d@qӥ7<U](wᎵR'
n7eU3}}oQHj[zZ%ɶen}b]K +; jgh2(Jl56B|Ҙrp@vV̝Z<%t.Cb_^Y[w>_j[n]bj`T
-x?%[̕e`$JW$DA֫X^Aծ{5 q[	v)բq̛p)JA]ۺZ"6od6^s1ÐroI}1Tޕp}CƝBeپG	<Y<r1]Ȭ~_d|"|IW7KWX6*6q6q[|[}jBG.aՎRu 8CB!ݤ~txqVE$^uWP㋈1Mxab ]<
,ŗ,nc%~iVUICLq+S/bls=NUEٹ}9˯f6H#kG
nڇEG2ņϳn1=ak#O[Zsu.reƖ{f̩t(\Mb+0]-䍚Ւ<K"骖fbY˸UIKrq:$kG0MQqyzrp^J.DpOlCck]nlüfkĘh'ˠ{e{]SDB8MnKZtvL"Q)TD,p58h גYa=[T93ͣ78;}H+AuC'K @`O9renߡ.U#GK1ZCc=(;gyA'k
u㽦,zUɜD- ż3GHԑk;<?)cRy#c~ǲ+Oihװ*x^^>E+"7]z*̚||`V}xfM̛}&SId? i7'<<{|usT9LB6T2M6W	|- #O`xKSaYfo#	 sFF%Y5I	xv{?2h!R=_mQv<9|Ϲdǖum7'lAW8j#˒_褩]S;TB~u]$?[kK@D+D4]5x!
ʆi@~vAVT#Z'v1x?n8.w'!̰*2pX! mjV"CϪxcPq`$iEYh9i<$0
k& ʵȚB+we9O8͢4|>@F*'//!鯭'ߪ.D-%oocro_㩅M%2EWg1M[ɽ\jyߓn(grzKbb'Hx8˱YS k nCâ	g6{**G+uyfwf&7]tz'9e3ߏLlTvNr԰D|8d:4W2[|'4&vZji7,x~bKEy 5?CcYLZke2h^uc'ZLX[(+x{)LtC7ɍX׳ bMxN0&D	$~UlH uAjF1%e ^y'agph+12Y>>3{n; q99ՌuTk`.h%T"XGpgmHj&TK^tYrp2b9\X*Got>"+
L>Wk	To#Sgq'QοΆ:B:߬~ɦmѶyk$
((W;7!rUeF7ᄚx#:StC7ɉXXTᾋx=nFy
"TPݶPURRa+;M ̯rHj۽Ogf8(YZ̙3oΜ98(^&2u^x_;GG}w::o~RL,I/Ӌ]~7]WH?
C6x^=2g.0JL
Kg7S/Zā^R?

I&] fvCM)L/\B J/n&_go a0R:=d1 @3p(qy"]!׉h^@0S_?4z0jP3gtw6:"_Nޟ;zq|4<sNNx0:_'?Gǃ#ZЏ#%ޙf$c3߃̝g]$9HOݔUƅ|e(;<$5@*J4I|1sNʟ
,̼KǕ'n|{8!973e]DI]puGFwJq+Ob@"v˃"M`%:G82C+"fи9?N/р$q%yą@F<9[T,?偂{h+9qb0}8r˳ "l
R)$J.h*.׼O~*7l"^d{ <?w|p?ُnfl
B&T( BEaeI>=LWGBcQSYz]$$%$Fa%\0Pg)u?p~T1HDvAרJåG~/	$A=W e&?%Q13z r*0L$!i:7t>Mj&Z-vDC>kй"z/TtCp$Z1KQEoAdFͨOS6A%I¦4Hqcd+L7b݄4_WC	/4{)(/
"4LW/F7$A7oLgFHףo/?/@O@UUȁ>R4JnguWЍ1l/q%®oJ㋓B3w!Lw:t88DOWS!t 䳤@TJTFǿgوPʩTQA"\gyVS.eܡ9>	8`'	~͸zŻqu )8Y\*"ʤamtَz񜺮:h#cH "^~@;Yݙ?M5;9qF_B֑)Z#+އma?ߠGXaU$ :Yf<d	T/e|FP,rB2cöxzQ=Bf,OXXfx~qzrFwcȫzHa'Ȑwfx||32Zm:3*=W&:p2}08۠;L?ALD
aL?dnWQ󘚡Ä}y<.FUOnQ!'ʀ>eitD5P -Zt3~|~&t:18~mWI-m_h q4gTh"[SaZN tTρi-װ(P|<g/Yi^V20rfe}h;3?CQ-#2P%(Wb:"mϕ,Eǆ7Hڌ^8}?<;CN"Wr/WȌ%o (>{1aGv˭;L}u)$G8Xr!u>>Yh& ҁa$>1Q2 0`PoP|Ls1&DQ3!7cJ-]]Z)b$p nWAPdEg8Q:2'.lǇ	q{AB3QD3Y=h
׀_7GO;ަv,؍Χ67(EW<jYs5ڔDU9_%s: ;GIƀ@8:_k3%BejM-ëp8ۙ/jojJ!2gBWTyOdJ*;,0
"<`Shcu*p9޾C%  ci{1`Ȁ-HSKW|/087b1="vUIsTPVtsq #dUe1sA"0EA_f@nj1	kڠrTʆPObda@_/iA̓WWnqo|Yy@z:0Rmt0ΩOQ\'sژw ,G=yjfnOQCrGâ{;Yb~wB%^>ɯR6g7=oEf{NqÇyYm96n 2K9 /M (ɧZoDNۻ |H?532x[d]f/kA& U1pna,/]m@32>*!@)bա*#8_.I-w4Qys{l!4nZټ#
{+&ϵw:YU{u
;gXoIKntN;O5އoz]
jzo}ݧvA]/_
VQQ{^=ms5ͺ,fV.݀z3)
}ѰɻrjP*P7N֍zitc1~Ƹ[5MB\][HXt8:'hy0/]*a,:}7m;poْiki2^m֮Wo6+޻d;c;v)ƎIx?նU.6~qU2>y\+U=B̍ƀ>V)귏?[PEAw v;`drt(O*UJqh])#_3)|nG$V))XYۯ1"L}(^g,Q%'A$JS;\*q]N,&LҨYXwwPFBuVj`߂ۓBjlo~Gfmg4?e@&Cjб֎cQeVx}B(>-%:7TUt:Wnjx; <
w>k @ܻNSхJkDM7>\SNM8~+n)o'a/%~u87Rfuր낈$6~REeBc˪ު0rtCW\zfMkU##BJQ 
,R@q[Oas=J	towhw-O{`ͬu8]8,+Y0~(MHZ\wBiuH_!r-o(g4ugF|_REؙ-~9"4Ic-_S'@Itj_(v*)Q+&5zEk"4%|F:g,X?>G6S?ڧzJsmu7\DTQ9WXZ6#b/P	ő;#gL2mޣP%(t̪	X+\@ ij" O
,?Z,#*BnՔ}Ў$_2GWRU|Pc|Ԋw_^H`z_(Woc Ix",oٮmWҊ2'Y6X>d4?Rx2g:!$7:j25NML9!ߋT?e)?Tifɢd7K(P:
$7VҊ4E=WÊ$t>_;R)"R;녒\!K!v⣘#mH֣*6J42'^}nwgJ^jG]8ûS<8cQh}A>!Т9h2h GODD5gqp~OW@wƞNtY].
ϛ"y9`aW%|HFsI8>Uw&"TW:
boeʤ/%PduJIU+on/	H¡%nNȲ7uKljLA͕	`O7XXsR5
Ayn Si!軃+8rkiA/ҎƧtob817VScM%w^q',C|e2J~ح Ū@sI``~{ez#)2"hBӚYH݄wx	={e OQ'i?zKD~x0]-4Qkc}S^B#%Z&UߘY*p/3PB]mvp/ܯnXlP;tgR6};:o~Hfv3;q<(7]M"Ng*Ss
pZD49ظqUͶ0:48u=nS`cFWq=jq"0+4GTmx{mSeUtp*TԻ+]RV!y7>/a}1Ҏ5a ѐZGg𲑬2	̏W+({Xw|Uy7}z;| 9fw`)<bV|w੭Y"h&Mh:@?X$Th3䚖k-4*&jVc/U$!ߘ~i Ʀ(3FnZHY%Um{(*mo!.dDSWڔWX&>"Jsa5v!<KX$RRTu+4JXTlˆ9y+Υk}m2-sU^WN4=:&3.#'ZUw)kwN+y
4SȦ Ik8qk{fE.G8{w9iTF B"z%^Թp%vK9|	EަI&Z&2X6Xi^H<Yqwh`Y8SnzPFTuNi-!kY1z)gΗL)ONRQx?L5--vzPݤQ.GVYz]U8IqB+)c Ks;Ozc[a(ֹfLEXH{>?mZMS`mZ}f8(| ˕C#Fq5NQtY#?>Ow$[_BMl?VY~"T/w%b%ײ4#ST](E Ipf[1c)MR]>+ZV
GkaW;[A[gz
ZrFvfQDHS=twSAlxRF12[-ެ_8ct\KKBp:fR龘Цkz.h
SJ4,i1b۱EVk&WDQv\Wy}ۻ2`O
]?gq')m.Hbpe&ILZ[ϫ/X?ɚ`1mH+#Z4/]'չԪ"[7dq!ONԧ
aa9s/Br櫝(w<3:VJ^ q"R6@hjnTG`(LkTp6URkkjTO3x>PwXBu?_Pgj$"'N.x"^wzoe [QثBZsCaK3maS1^
0QW R]	5ҟyB)1jp
x&OԑLsG{ȧ!K~YA^2(M,߄9c(70('%.(ԍp[U(~edV`': *HH42),T@cg&SKo#MDC!eUN.:7mh2D~c'FɄjEmϯv^18+bKO`MJ09ugZUjchi`;uwudqg(zF-G<2kYP!ZRjeFљQa/g'NJR8E-ݍ }gP4$y*6nT7J"Y{e#rD`⊬v*LTҽ]dA<Ɏe侽=-{NzoGD6	6n)hY
<C+vBoCzdQ=U'gL*!-vȉ5[j,\DWlN)brpcܑyUYxf[+8KWⰆS3:UalkqZhf^aj_$H)$X4+*sge%.Աb򾔰bԅi,лUZ^Cs*TNX^h_]Xb.F{AF_r*57:x'ytwF6UA.yG'pߜVt.GVS8P:[ Aw}:ZhBC7 ]fs*eu2C[.ÜZYdA&e?Qsbp}p}ӷ<gR<%͖+7X	RI8u(m빆!~T=LT!΁!<gS`/2=+<8Cnt~M0xȼ)3	771cܬȪ8Ya2/'l5LnCG?3PB`]x/C+nnOe|Bb3`.Γo)HO>'< sمƛDS''޼M4#X?h_L IK0AOo"3/Whsk,Po&o3ج6l7},]	fBd2b>88^m>Mvk`$f3&/\5,o	q,<	IYUa!&GʂO4?/`?eryz))RL(746yQ~s}&EsC6ob|nEL ƦRq0=osc;Ffe-$T]i3oQ'@v+<7A<9zr6w/tA=pq	M
5ۓ@*f,CvpW-,bJc 6ײ"p]h >y˿Br;<=qlcr7?Zɲ9qW&Λn` J~<x<Ypu^@$DqG	RMV$fwzfgV3 ֶ˲8Hťq",JqUN#HUQ%?9J{s. *v{_û/n?ݴc7V>6#51_Z?GNmGkk>&Vd=%hbKoCGϙLS5j775ICi2JSdPsZʂe&1*YT&N%Jg4t4yɛ4eEOd"rNqEg)́Q1*I8w*iMi\xbKfeOm!+>_nȣ541AkTt6݊A9$TSf9Ì3V>KB\7F--dnEaں՘Ӏj<niM!\jP'zOq	sYR
h$YCLEbnlU+'tsЉ	 SY)I	,
2mߟX{42@;ƮM-L8>'e(LrUѐWՃ[lzSS!KƖ6-K@OR0 	'a`8GXhז5MRA	.3Éãӣc33cS~N rQ rfr[-GWjBm:KI%
&dE.	N>|9_CNEw6yւX5D;`Tblvnl$+(Wsɩ hOֳ}侰 й7=
,CY$#t%:?/@q̜A3T6`"CE
qj$Jc鹉har81;1)E-Bbxj|l*Q`BR2L!0}o>#j; ?Xmܙ0,N[/%/Gr~O!>{YW䞰RҳysL߽Tx(Fe(i	`|=xZW$ze=B6q!Ɋ2C5yML-Q#oݍ3Y6LY	+V7v{x2W;&%zB[J3Y+_:+R&0OBrjj YG-vNUkиߠYhch	=jUD<1|f<ȂeksnCFvV~Y#G\"WY{ܿ#0XygVS}rOa55㳢cw͇GDl^spd1LҊaZZ1W(^<jpw8'-T+
d!mriiiutO;LK2QX4>0A8-WK%v9.̱ntMaG e|	3Kf=Uϖ5xb)un?[tMI5
U-=RE
":~dKGgUẈzK>~¦·RaT_ķo%wm6c>4R&챝
m0RԞce`lKw8SyZ[mg /Rx]SӕE!+6UIhE1Inz`˝k9y`>xy[Qqr҇1+%޺lA4G;mGO9Biiu=~GF[?^ĜP+nWJaE?
wbಢ4=_HtRiXqqȉҳESaĞm3~t0>De院bОm6b4KZ' zoؽ8ig7+IbJsCMIҢ&J
 o6|fea6vѫȀ(`ΚoʚuyvHKӗ*Ua\U#U7Q~g"sg>˫:(+-v]_	6>RHBGƇapĊ	?xGNX
0/XKK,<b{+,v_UbؿGygTsQH+*;ȷ3	mDڏ;x/Ft{t'=ؙf
Bsʹ$H4Vq K;ejhuc{!	naG3 P-WcPm,y!!W+DPlDfaՕPԃaU:&[KYI3%Z$Ne@پ$-cS\4,'Mq
Q⢪!ؚ"	n-2O'_J\$Q*Yi?'Jb/y#juY9U)	S?=ҥ,MSp|A8:Y{VI-+'ɾ-67f۳*} w=?tڤ֧9%
`+ݐVEAQm 7@d avܼ[j`v>S.r"f	,	I!cΥn~9qOĤv=Յq߬Oy^]Āõ ^O]wMͅ!t;eJ1R-ˊEǪ~ʻqHlFV_k!J,O_e7\NkN|ھ6syQh-b!1`xb%5sWm>X{Fɜ
-\*EM3Scv$iIxWw"R^+~[B)熫Zqό==.Ǵy =ʯevz&l*W6jrsmmm`W&pArpn,6wʡgVOmxߓ.a5Yﷃ]+gaWc$#jdaBs+L4 PimhhYci1jݬD"`mm_xSv]cǃF(nis_Z«PsPOabIKq,4J);CxYb<ZKb:tb5v2uIKOjlԆE$eho0&&@vx>zGU#G/AZν99p9SD9ixzK4|!^s_w({AZfռo]3:l;}4aŌ>?~Ov𔆬QIT.qJi~o	FM"F;^*'n3 (POn tT9^U_;v;|$p lkY&Kg7)bq	wZ.C¶&y}У-@"W/sA4N@*?8=_lw]\f1FcqU1aZxO,,I]WE6͞8Q]cpꛍm▆=g#p~5R "Cxbxnl(.AL4b6R3gSQpA*?T9ob`;͙BIRkR_%% BBh܌owaOU2@, ~+
$] =i}&vՠ8 `j|pYCw&;]qL4ۋp*#f3U"RDMTdShp坷}bN9eo}c0wXw_6%'	{` ϥZDJDCo	:85rQ>n;0,^[9;|Z7vW0Z2
ɓs]tp'qD1WI{r*"|/J*+|;_g~2llJUC9#Jp
&k-$,z֒P .& ]ls"W^ZH_@@`%np	?[{<t]Rs]s	@1DZ¸{aR)$VI *m
xaEvxB(L@שּׂ {6k3R&Gm1 U(/e[k|5C󷜲*le{dB"2?fuCvlfpTe޳_6*%Pqz%8^^E!0עZ/H\닑.ܵҪr7>4gخwΰgvA~s
s&>n2C%	:*4Uf
hPˑE>3R6=Mp??X ݜ~wN%M ^]㩊(}4s/^wzM}/xٮ	|-[
n@p#S#.tb3.q /I>Λ)̓*%?s2$QiɎkj~(I|;!4wTsQa+e|S@|tCÕ?}whқy%nQ:J31uY>Q֞)rR	T66X?<VK苋md/b  1ǖa_zRl0}.]G+7.?yߴ=#cgY'-7xȼ)3	771cܬȪ8Ya2/'l5LnCG?3PB`]x/C+nnOe|Bb3`.Γo)HO>'< sمƛDS''޼M4#X?h_L IK0AOo"3/Whsk,Po&o3ج6l7},]	fBd2b>88^m>Mvk`$f3&/\5,o	q,<	IYUa!&GʂO4?/`?eryz))RL(746yQ~s}&EsC6o_-[i3oQ@F*<7A9zr6/tA藺=pwqM
5ۓ@Bs;fͺY*qrh_ˊ	r9B.
1ld±1ʱ|k%] W8oۻ J7+Qxȼ)3	771cܬȪ8Ya2/'lb@B`^!
S'_(8ycdw
18ғI+O)<|vf6ɉ7o;4Wb+HsLP}Lڜ/&y/9ơ6wMC.9KW,zƠh7fOe2N1NcۼOӄq+D>+6L6{MgD[d7OeBRyUlI e37'Xe&qc\yJ>͹@^\	qPrynap6
-`~wrNެܡs])lyc%#ܝ}\ťmBx'*f,Cvp|V-,bJc 6ײ"p[h >y˿Br;<plcr7?Zɲ9qW&Λn` (UxȼyCf!fIL+623.n	$Àc{<!)7?V6ғ[&] i7xUxSOAFPhI%Ѧ@)LbiPbβNS%DQO^xػ'Oj!iٙ}}^srT,]8(tDhLtoR%Km13E<ZuyV^].W8"#M&EmhY{U	σf#&Jt  Q[I\5;0$X
3:`U	#+Vu2ňa{gC#ۧ޳fo%)'sIy?Dq߼7BT.MRN	`NS	T`Qdu\T	ך=Ǡ*zbJ|Mp}M@ u.YWe]6ef<޳KPCl~/Q3>uF;vrs2&JB+ǫRE+ׅ0oG#TXALfB@)JD>!`dٺ]Y8Sm;#$HT",isT0[C~6&6;XW.\=ڢy 7#gELZLPbUy)g ǑVk(9Jb߶E78NRU?[enBdES*J[,@&bqr$q!]БmqqCY7Rknxǫd#&iL6 w  xoߐ4QarILK7DrM6|mr/dC	 { UfhxUOA>Vh<aы1J$=qYBZ[hiŶnh"-T-OēG씲+O&n3{fÝ:ʥ Ĳ`dS! z}VTUYLi4*V&Lenjm|2;dt	}DqR]4qNO}4ԙXm2|RrViiBc%Rkf:z$?Q@Qѥ==$fl'0.Jn_Bd-maY'F`%fxR$]Zu梬T&hmTԴ5SJQ,MQĲp@+4Y fJ-S[9LՉY+VjIWg].Xϛ!uj;"yv}o`D#Iêzgi_\]Gnfp$%je{}7co}7g)b4+Dc0q {<@:(WK~f6/*ǹv/=i!:} vu'O\Ծ]pjMB2%A{orI-OC:$xy0#YAмD(EDeLG~GqZiZ	$'):h:ǔV5ٻXk G	l;x$QnCF 'LxTk`V700=
;8I%B7k7jx%AR.Y%MllMJ(cnAJżMST̛yy{xX|~qP	T4NGr!EZZ&
q^|ic7vH`^}̣".Eý @+6)1wcW'~ި7vdxG2(%n:<?3t
!Q<Q**6P)(Zd
:Bꠟԏ7b),NSN^hi	oxƘXV*l-Y*+ӪtR!N,8/;gUxE%n2x3 Iᛷ4#ʎc;|^̢ f 9ƯߤJko[Ϻjg-%'m#&SXhO67q}Td)SjᵲnQnkV;@|4bʖxN_A[K۶k#HR, s\kTa	-mHx\ML!Cbll9ou|YJM(t_5 ksx&uϴl)dM֍ެs٬ge v*x%ӆ	?to^;dF !
Zx}%ӆ	7L޼r
3 ~
"xk_xӆ6W7{M2,%4i0Cm8G&̦vc =x{
)m R`[x{,	lVe,l zxXao#5_1}镐EHjHrw!AIqBh:zMé7w-%D>\=y.<:HՋu%RPުTbCCuyO
+3Lr[IRW:4V邮/7ǥ_h'ThG,U.Iޥt
J̕(p^'Zn6	l8PHI8\7g\E;fC87Fc8R$J8\Ş!1kN{*6zH;Sb,(輿✾/Ƌy3^,M>Oтfs̦r<KOҷC!74T\Hοm)SV)B+6H[i
DD4;e9fRv	QwY誤{Xd2J{oU&Ha[[1ܪ8;y(;ei3۷9򌋇\8*tP9vH)gԾZ}~[}MzL=y1ZΪ\6Sݫ; `WpI<޵:Dq(iqN JNj؝O=ip7d_.Qgؠ
=gπk^eGi6I3@yĺ;Ce^!]=C67:gHZ92*4HPmQ,) o]ZHtt'1uŷ$HI
 g=dd:|ΈZsKT|4m圆éε;߹(1 |}ګGd0杳{N"].S04}<.I&jɝuV%UuT169/5b֣yŵOp3mL?׹*y\bm,nbqOe4D	BBkUٜkk67Z~X.</	q<e <Șbx=rաFzO"hszE˶cyVm]Jy%<0G-`(onA'ʠǩ*DNV?B0	1PlbdweCVDEk{98ik<nxǑ| x?ŜTa-A7,PZzXLA/ ?"dА\o	t+
 C-ndgpꞷ=w]A.q_A0$$?g?.6#Vp*klue0}S7ky7$ڮV\ =rwh?MME7/\tyS0Yd 9WcL<Vr:`q#ichyuo6NޅNX_r,ᵔbhTHp+Ql$ҋǱ=}?~h\쏃
7{:`λ-硕xZ4C=RmxR6:J 4_mAg-*ad:r~#gq0&S}^d jQyLǢ? uIxʤv0!5sQd2Tjtx=S00@iB+LKCh7$2dY?4POGAdZ@	Z"z{Hm<	ǻXj/7͍Ծq):s%^b};BɯU;J<xVMo#E8^!H4"8˲@e'l(lE+Bgnt{gz ~XQ3x80鮪WU߽?~}_|	d!isK'BZ1Ɍ'8z+q_Dnu:)<v =b4Hh&W'KSE?µ䚦/	yu؏&gWn\@1xLE`	]qfث7v%wBu2Y>tؔU-uQJX&١X6noۻ-L)+Ww[{bY3E>_B}JvocB/ؓ8Td{ZAQ,KJѻ^`kƭju +g4cb)I'I>}Ff7/YYxg=(jZx>,NcLJSv{{4:?Uc;3=i3CZ<nOn,ݫXrGW*M8ԡh$ZYe&:J^,`PԈ߮Gb2GLƜƑ BVŁ*}Jf.Lׁ!d]8̼ti0J2!Vp2QڜiiLi$2Z:N:]}lRdx &qolwKTm4#㚲^"CȔ㭳$8C\`eVMǸf;L@
,B/Nl`>׷s/\(:g1OLpAiQh)u7iaep8#,SK?ԩIև9t-9b`y։в.6&)ݑُh4`k`O`O6s9%MSǹaP?ܿq<x[1Y}C*m_3MNe6y#U,u :!{mxUKOQAM|Q:0HF&FM!FhX,´PJ[)-EҗR:-Ν[-㴴XvsW֫d1dYr"Wtn*RzR	
:m#KLq9-gDw~GڈU62 Hrv?`wԷ#jPxvdB\ٲPn;\"Dc)uLB||eU-Y`)~Wիgg=
>%7ozpZN&Sv=OڷJ"@4fDP'SWN9ZMhjz?)jJ͘q_Cj4j4a,>khӰ>x򨹽Bں^?h<>.ԇ5%SQ#ĭŤ|EcߋtX92 ^/hB8%xm#cOC_-1v .ݠw@%*CamVrm˫YIad,Bh KW?Y'ofP@VYւlc:x'TSfl>#7Sh,^"QՑ0eN>%)/,*r⼮#x4rgfw7[%^\*m5*3^^t¥ S&fb>I1`JG,^o<|ף*N	
^g3`wNYG
KϚF=Ri5q0bLԞ1uauD.ho:
\PSWoIXV*ܞ-#4'C1_1^{TxUORai1Ӧܸf[μrmn$
#@kcuUB=.^<x{~{]URLԯ[ZSE{n&aEhҳ?Ź'u^6ix~*X`I&3m}3V5!OBD"O7Rp0O51
6jZe=	>e/o6f$sN=K1Y-|^+@&#pQ
uĩ3݌ffrP):͹9v hQ0iH:0 s4؃{>D.I@[Ib4kA
h"@5)+­'bS#?jHYeUghq>k	t<)602|Cz%ʲFVGuDi"BW( 4r,wn@m`y.J\{Qf)M@BVCX^i	~mϒ?6>P+@䭒(Ix'A*8F=~?Le\xL&n&>%`54aPΒ#CV"*
SP֨({Q`!3l>
!k@BL%"
cN?`x`w*];	GzoH,_ZQjDIy0pc΢]h'*u2?JY1$pUQeŕ.]O?p{bF>kO|ekVCɎm_/xToHaG?1".HDAAИb}(ejkԶ!5}u2jܼM;r;ݵ۝sVRI{9mߎy繱N]z95sv&,?2Ι%n"0ΐ[bv(Pzw<𦁊+LC
[.fd->ZvRwk}FX؏`ZE"z)5de$L!<~Hx|d+`a7z~% V&EGٖZ[w;j4Mmm$e@A(E(a2{tzn~VFpUG`ڧL)p|T l ]Us[]ƮPcs|PsP7kƲ2'7D }(o}.?WDh'&,hM<e*=IO-V- *	K#=I	QaGF>ԯ7aٝ/ D3LUw<W")laqH'n;\cDy9<;^瘆˽t
rM.5{!Ny:=ND\⭎M{	ib`KbbF;ˊn`HB(9 <:t{CHRyyaw=`yr(RTRk짠*8&EѪ֪o7Օ$3	/ կJxks6&hq{3}]:I4Iyx:DA2%]~%zJi"b]<jZ2XZC9;9>&3ᲶuuvGro|%F,G"dZf~"TIbgӳ ؔ//5 bcLh̑s\}MX(ƕ!Csxg2):h658!ې3Yuz;}|O(BW0 rɐI(,tOLɱP t#W: (}c3fӫ#w}6y\+<bL `1B"%^O
ciPRpܱI'M}D8urT#SWsM
jDh$Q!DzRa1; *rW&!]k62L_4bE!znh$N%HY`)yM:7FO6Q&7f浝Iz0<̷b`74Z(PZL[ Csa?K9Ǭ5蜷޵OnCm|9X@c0#Ѹ~V]/NE
? ^4ggw 80ßV((Vx3S%>j`*#>:]03QV 794Ѭd-
o;;Y5XO㏗}ocSvCcc?d:9ޝL0CNWЯJ:/Jc{XL3*1t `|7E&>Xt%[uxGƚPzucp]{'O:73WSə/&<bF9D2`LÙ}d|lEe۫L=Uk~8$H:3?}$L'67l]!m	1w4xCs]*p|"G(Y0y8+>~4{ ɀ+]1~OV, }N0jԭ$()!xYRRt
9x0tm&bF% yKt}mg>)Qb)l ;*1s֎ -X4+`fg%d%BAf{O섆h"W)rE^.-Q&V^L@QIMSC|Q>^ {`5@۷k0Xawggu&'ERͳN{p6ߞOzeɔcτ*gm|#f^۔#(Ɛb7!ʆ*6EV9e|SAm~[r]NrLA2ZQ@K̏ʴ$q$2>~00~5N5sO/sO'EnS&ONVJAVXs
jRXi0}ИfXB%%8k# C#h,z3j^yv:_^u?Xm"o0எ'ƚh01@g+v7#2P;":=Sx,L1?3ޏ4]V|ꢗ2&ehx.`F+SVZ>J@j#6)|AޅNIPDJd}9ThXPF&j2-ɢTC1M ^VLԤ3;>W<&v(Wꀐb}rBv!S^-FvqAElU,&5'aYrqV(+05Wi-[ol:"l)H>'yX3qDraJUՁSO6+nug("ʸu%>Ϯ=GxBXn ֻ	h.;$u't8nSZ&I.٢}tirT	mZ|os/H/P܎ى\Yl{~1gƧFKG)6\ШE{fiK<Y<ŹOqS8ݮ
qvߠ"e5?3i9 YQξe!!gVx&4|X 1<yb:ܪpghIILKAb$>,m,]OLq!ݨ[09z 3g<ny*w&e$ğ2YkN{;\sҩ$55P*D;4#&Lيkzz#NӟE~8[9u~<n]t9yX2v׷F&IMы ]5 <Pkrc>18N|7yc(	Żՠ<}PfC	q(`#ntw;dGyC2=1i$W"@Gs:T|??K̽f/Uvdt.\>jVT(}}pAdq}VE1$'CһwYdL }c92ZPt jQu lO;L\7YyXlMFD{-FtkK,c2;20`)/lq|(kc"`ukrJhnZ7:K4I랬m\K|M#eeKqgBpe0+?<n0%eƑA,t1뎗6$ Kd<N*++$T`PCK푤BbIH+]/:)WZi[lB ޼ޢ/פֿEPWH?hCݒe'@8IJHR#֓X+SX^ؒԥ "ጏ
Fo{a%(Qbg#}J;G䚂D_r]u<YyQk
:b-pP3eץf#E-\Vva)u٠J0,@+=9Wrɵpn<!W@R/o-~Ne5/w[`noHB@:o<׊֚+QY,acL>g:jQ֪ZFˏDzmL
?C:6ۡMہyc1H^Mj[xfڴ<(fCIF59ԧeH4p0+pԅPkgͪ&.}07	*6d|ޟ8ג77RDaMRfC <p͜]oEQfkPrO͜}|Qcyo&| s7b:~VLPLi}y<;͒ChzKwXRDh_*#}UIxyQMrlɒqa6#lkM9M:&VȄ *9u̔Hv٦t{(1rQiCׇ̖Mz]6q^2J a!LVXuZ-l+f;paS9ak\ܮ:wV)T&'c}]TEwvB;ہ>;E&x9&U'rDOdQq8[yEL7gn4RisHHoD;Yz"780n({,f?j&oܜ^Rgʴ[{2#TqHYa@96QesL &^.c3خcqQ\ky|6z΁U`̠\
Z'JOn睼#$ɯM&wx	n.8Lb[t==&bC|+شV9Z \ъmE@xRQkA&mxJ@>Ti`$ThM}w7ɭ{PeEI%&h".7ُܷGkfnF<uzaqDwkݽr]ks{-mo&zUq[W,;F3aGGXfA79}\u;XA-d@7W3T\Z`q./Ɵ>/Sssc럅	\#tB${i/BB?lGH J-Kֿ`/"1h̆k|ݺl\"p	"ʰ:	iHD\Lh}QD[Ǵo($š>fyDbOZ"]6(,Enu?(U$N+ԝޫFʌcG|.J'6f-b,XTY 
4FHTuȔ :iXCF}1)L!)GI+l9;.1e)b'ds$J$KD]˄iJ
UPN~VEGD_'mjo~fwv؀x9sqCf~fNILK7K f3jx#zRdQˇ/ڲeKw|;a<wϭy齗z,;:wdە.!_PWr2'pɺ.\̥PZRZ} zymO g`ns-bN\lݎMG[|r'v֕.|qIY& '&6q = 8 %U@VaӴ!y f#Fx[sHw)šx!u2`'jȄ~@`ǩ`_MOvx jŋDOF{OoO+-N{
uqaϹ0UB_%Lh×{S$Q(N?cp^~k,LBYNXJСYh6S-c	-xBDH!mț
|<9D7drXғntހմ0Pi*W=Z2O@o "J$
LDmt84Lo$zG@x2Ǵysy˛kqng .ukw= ?Ŀv](qB<PMBUʁ"ѯci<='(1T)dS7>6V:9<8<8Y ΤhDY,ډcY^?e%ZUi_A7г맙72m1Id<aC"7]Ncb `ͱ;ԓ,Rf-hH,vTR&|g@<oevDc64N@Q&*+)ѯWTpYg1EL8~Ӷ0УD&idG|dYK*hEk.nڝa߼>:ÃWxCṀcYJ,b6Gg؁68 {@-u$e0z\IC+Q:i6	ӰmUixU}N%DT+eH 5{%cj1|q(E'3=c/kSI'ᄢ<4>'}pgO)f"EAlSʯ3AⰓ53 JÓ\ȢYh93Wwxȁff/,6s:y
b"(۽*=|7ǛC CbZi2rszf5qy^#$Q`%tw{v:ïlޒlM%nh;O(-,Ul	\P)ؖ2&a*(8e&@]{g)R;#"ujC@5`n&MCc6R#0t!!^R%)6$5uG2j３AJf
*̞ndG"6',(Ϸ'T=5ʬUăՊRe^@1 nP;V^$X2P$E:q><GY?!O=n?w28 "pbfP\`2ΐB|:ܴϏʴH4^ ~_:VO>Ba.h\^Rn0RcY4Sa,Xޱl3f۷UI I]4I5+\8##y(xźU4UqrXTZd4ؼ/!Wr~+<g͵DNCы-3V0 ¹(l[caEB1po-ĪKB̗XҏMyXhq^LjqbLF`B.\*)]P(GN5HӼ㕫D045+S\(%TvȃVr%2~Pa	G?`KtE+CVdG5[9O[ʽGNYެԅtlK,t_<
[gVR~CSF(R<-U
 A՟U%DqrMd{CXmˎac!ЦrP2^f@XeIn3pѼWo;Y;Nby-N_TBJ|YnFv*1aSc137oN7\ۉV3ģ.l]Yؗ"LD;Ӆ|ܿ鵉Ão	:\oH/*rkD;@"l;k|EjCT9c#J\j]1geݺlE}C&!Aq\a%<4UȘ?qܴ-)n</4 kˌhU+%p?7S$1 .TpB=!:(F;5׀7<f{2UuA=kj=T͔.sv#pSㆨuh)	0{w(ZI^\Ӿ-7Az]pMݳD#\_YEh*!H.uR6*8H.=πT v}D `17S:ZJ~͝*?F2+'_Rŗ͒ևAfU"SټP[r/`XXr0YP8!A[82U	BNav`ըB-<NAljǈq͞ўdO&$ˊ)$q]㚂:yU,&g1B7(̓LqZlǨnj+Ws-H+A4BJbNSʩPx|6TY &)ƶ!\˛>Ky9]b-ocxYm磦u:J\@ĕ+ghI4euy=na5j j)J:7WG'{U{tm<vͺ+7oL*#?#itzK+jP%SЕF`	c!ktr1ۈ>ȣ1eX[.ξqe_&a;xRMkQ%e,EJniqP*Ih@ۍei2o|ZMCʍ-u\ą+w$uRY{s9ϵ{u]$QnI;w[J:\68)ts^,gEuUj<F|JN#P-}	ߟ/%孖EӔ1&!y> 2>kQd@0W|,QU]K}TmvԴRyokU}hpOE!hm&
=+á8o2-gwhM}̜VB.3:}㕛g3@,0r
} tHVnْqȈ0cqԹ2tX<$r6Ylz68N^ʝySY6r5K"N^MEFՅx,J!9'b9^*xTMOQI"!1
*TD#1|dp1y3sg:qf|FB΅+[?`k?0SzL#YM;sϹoj^Էib73\7}kSsi $0&:e>O*LpߊL5HBH2u*\+M
*d?t̒e{A9tZl	$<2
P_EVx3Or27;uX~/gً[hV.CaaԲq EɌrR8䮑(=Cen WY
4DF\Ug	un}jUs*Qᅏ-P3NS\fTG 9tzL[,zo5;PNwqhXr8.JKlFEЋuL/:rgnT~6%@G^K˞)j'ղ^}\(WĵcA~ <YY02qC;z_KJQ_kFI`mܱf3S%b\N3}XD,-6c;	%zqZ/F	9D̦Me'ϧwC̼
cQLuˣ[2}TK ʄpՕY"eF8X)gҧp,-|X6L1}A4?Ĳ2!壣|<ƫ=+ǸL4viZpxXc58cr9.SPh,rPN
N'~YYX"%'?=]3!lPlqP;
bkT'b9Z
.
N␂сa
Z\Rߨ)zPfqd[j<bǼLǜb6\ȭ`Cɍ<5ɸ,1 B2Rs2JSS*J`y|̜̼yð/[sO-qDCZ:@bs'*`8dqR*@*,@ %6P2d(OJH'G	",1 #2
}2	1IMjB?,Lި֨368#1%5--5xe@B@O<S$&hWֆImyFav^cM5X%h~^/KL֋CԼT
FTQ>$AT:py g>I>xʘir5R|E7e)aű#ޥ(<3/=>`2d-E$')>)1㟼kdCiɅx$Lyɦ f^VI|=`N6dl߇ad)n`(;0VO~.bBLź6?bnDd#6KKb<Qt363P!W>Sɪ
)l	1*UiC%*
zcUu&?P|YeZ
dԖI( e$&h![?IeBxyi,QCI#Qh.@qA@bI'Պk\)"(Fe攤ACɽ:t%q^w2^c&hw,/;Q-j<yK hd]);xmjAY7O"9x(rQeQ!fbmhk2=ݡ0HC^ 0%W>w^<	tMSU_|uqxx>~_
[Es'8VƶP;}SX~"TF4
7:]2̝zhH-\c5phcئ/KU J-%[{M.g$Awꍓ;N<B_f@Fl)Gm26{a2ɦif %l4(<[ޏ26ݗUX.eL^u-0渝PK7{AH!Ai
םwi?v\b3.#JZાfq?!-BS7z84tq`Dg7A_~FOUkwCg((ؾ) xmn@uAT!ihu:A;q9Yw/w:TtV<%<o#S2H$fg?>|3O^)k(B+nW"Ν4;LPael+o
O>ʈF*0߆}Ώ\1oKxuH-yjZc!7:.U=+ԯ`Q6	ٴ? d(Gg=f
+C;t4>H;4Mw,ǳd-4~2ݛBExrv:k\ĺzYY((7GzpP"1W6HUu;~Điw%֝ǹሒ$,/!.#ioQD4AKߏޮ@W~E¡5_ߍ۠x[!Th6amf X@'0xuQKA$IQc
:<D'֩RfZDkTL-$5PUکSBfhtaf7ǀ!jbB]~|C/(ЌIS
+~5/aH 嶏[MTVJ^t!Rmjj5quhD̞ZM6s[*18nr{Χ^(20&QBvB`7)~lW$ھ7Ցjpq[k`۱Fau(bF\VH^ƞp`8.a`qL^zy4G8inrhQDh%>j"ameKG8³HIzUYj/4nӝ(ڸ3Ǩ>_zE)x;!xTpŘ6`a|3 [\B6x[!Q`9-[{Ƿ#<;}ە.RRظov?-o}>z'/]9bɦ^zk[!RKϭԼ'.28q7&*@TCQjIiQ®~R rʵWk;9pr2'׳KBLr(H,J[pﾻΡCټd	J?߻qH%EߞڇwCBL:xksT^۸򩝗ԁmҽpxfjвi8b_s0@62"PڭG@5u=G% z 2lx[Ƹ$jC53kRQiq:fs(k]V`3X ;YYlP}l`GKQbyf^z<D%T{@nmX p^09R]PKb>Ԅ ;z$&T\RK%:KjyXS0 G5%&^SKJ2s2q:*jB>i(GTbr'@YPV`,7YA奈@.P
ss~N~NGyN#'/J܁ASW\H7KSH/RH)d*@3srRJSS*J2=(#R㉈ZK#jʈ͜]b 䂠$PM'U5]bs@fLn9%JG!HK!)LΓo]opsA)7yغr7P7Y^GW+7E")4++O7oQV(L-כhެZ)>3他g0A$kQTwZ2XE5 u[,J!og:#7T|,%ZZ3@^9Y  JUb	/x}RjAF'$7krE< EP;SӡgYݓ"ޅsѫWq8hjꫪ&}+>az/5v.|rXyNUeʃ#]E H!+SAJͥ3xZ
&obq(TKK*5A< \w7mBOv_׏a39wUSVSTٻTڹ[4~TJ7H Qib+Myڊ|`a	F8fUMaǍsJ9.ڋ}0	[ZOyPA7

epyS#٤;tM^Պ-^p5EhBNSrfO#veeJ|Xg'XnV,vڢɰoHG۷	[]!ex1p,F͛57oncg 	sx;q$sqvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Οܨ<yfwv zxx2dC*WAbIkZZjrdC6K ;di}@U r9xo#3fGϢ
M$d9X!s$6O0 xXߓ8~BE^ٹ{}	$C) %lt-$PkIa&C*1[-W8hZ:zno'-^H6;	Hu;lb.2JnD<٭`G'FtkhG7*Y,WF@4,`>e2gʊTnŹ9Pk!B.ȸ(Io-.wvR/fz`4]~ᅏy*aZp(k=Sxf9|aF%vϵ 54VuiCu s/xbE|/ogS>Oтl0lw?3;L -$$B3]2d"#oJlvB爈BgPFIM*3iuK"C^!ǱUʂ5C[~R$NxPWlh˸a7CѼʈBV[{r〴H[7H덻j2;:
n+$"#UcȲq"֓*UIh)Xaԓ"-/C7Cʵ 9 ߉Uxk`"^XL=tz3N<+ V`q8ZO]y{7,WW $sM9(̣*m9cdk4
Ykb_^!29ʧc ܜAk!%*ܵ!]"_2ßJm<7~zz]-'NS\W7-/4GׇsfXnCn&-hSV4@PndS[TXᐢkgwJtEQC;lroWKI>`oe!h>kgkaK0w.	8r/8N$/IR!"t.SEBQh۴aZ!K-v۴Kn(Z2Zv\]γf]qyě.ϝ}޼.\Kfa\1>f&L%.&jT&j4W_trgj%?$(=6n\T˂?<XnrQ(M6.xJe[#Y*x}y61PǇC4aDd~A[*o6RIbO3M`CXt;rDy }RHulyȧ'_gᔄ@(Fl]d<Ķ1-GsbFG
r~0Pzq1]CE4ILZ>) [{l=%>e+o16-5PS&9r841ܫTj(Ya_`/-C!E>QC?=+]}د7SO-ZMݐSRФ4^|Cܡ4è po	Q%ӤqFS9v49)gX`#h	*I\K:QV3ZcG`يGIGľ7ψC4axC-R搠'@cT?j=ȵYkss{6yF	<Li# s܏5R`crmzYGN`.ف]Ԅpّ8Lq1cEzhB"'$^TO PPӐ_ur8(o^g%1SX~|oMd8e"STrpJZaEN=;Nh B83coȘ_?Pex7 //k"[	O"(!~'+xP]KA"5!K=$DPZ`!D˸lKK_JY2wsΜ{/	/JZ:U_z8UNTΩ\/M	OX e)j֥Vt(\avPTLj86HH
*J9USKAl*n$52fPnfJfcr5gچ&C'&qϑ=̡n&1,)q:ňjѿa.θx$;! gsCc(BXq.q{Cp':5bQ҉1#Yh )x[NCf~faILK7+ QKxUmoTVˊbZ6ZUBڴ/| iX4*#iR8EAꎖ4u:N͋KmN(6A
t
'Ċ+|{y}{Ϟ]|w#=ԻרO݊$Xe.v	ܖOO?};D讘0LϧOS}g,Jh->M;f	QGOa~e	f([k~Z,Y5%Brf~ܛ583%N0Mi}::.-m;q+
, n[.#+AxkQ
j;U&<s>pԔ$`/-ަFB|5n@`* ٞ'i88	qӢ6>c#ٝ^O#t0PlkjbVr\	/<g 8!fz_-ΤC'[ꕊixNs^bFɀѝoJH'KPWef7+n骒|am>Vr?]8w,]ȉwi \+.Uy$	Yil#^8>pyqIpH.!3+b\u^R.giuhk'_WKנA~`![ՑN@ :˘֔B>}3뢛L58[cl$Zӌ2Ws3L&_(('C.UF4&n-!٢4%P<lGa{Ue4Nt=^* |ɮP.ҟ{K,ؑ*qUvce}hF|s磾] f	GJH`.ykqE*aVHȽ%?vsI>z	p;
f.M^̳#Zh5W\}@2&|C?qlr1A@J[6c}XgQYZP=ȻFWף)^6st)AS.yoޘICxklļYi&VɻO O^"ex}OKQ+۶VAmBE-u SJISSpNPHj)Jd!4oޛU_F#w=Fpcu6-_L|7t@,RUJ!,bؼ>`GW
2+ts8&v (FYVׅ/eCYtthv:#vSWtǴW47݂N<BX.`He56<!&ASl'T]A
v&ANb*%Ah%䳕tocjAAe$8a-aت16#ByIuT9o`Hƹo3Gx!U`Cff!XO3NNb X	x\osHO{24{:BSv؋a:]lCf3w[+iJQc5X';߰'Ǉ	ĝP?K|GDLk܆?N}Q,޲$7|@ a_0?P,1HW0qoP13;BWrϥÅ,ŁÀM+ ERGGIVM\M{`=̀q"w"#`<ln. b|	TxI%iDy$#cI+Q{`1F=ꍚ[5ۃ^w.s98].kdΚL@#)ђB{o$DAIUCaˉaj4S|E=q'Wtim^(hoAG(HBv9pߍ?Zvwķ58gM#ΤAidg%s4&*E-͟Dq;}3<&_ejq(֬uRG.7j$\40!GNj[X;=7;9"-c3z&!-b%`ْT=9kh|uVENYw|6lW/pS>0m7q`FQDc;pDk_r_-B-c;t~g}.'KH@LN!Hbh\~k+t7F#Q`%Z:D[DUC4fTsêH HL7AKJ CW4*0$_]+|pHMl
;@ؿ]U$X,|ru7n2n	.w\bܛEB2HMc"px9~m{g}ѽ5،<ZWKo~Q;N"\zq2FE)1;$:$f\Ae.p209>6U3,X/	
.oi{yR'gvt`z2[3&ܙ	6f$}%991)e,Z]	x.X+؇rPB9S'Q%"_\I?H=ng.MY	+LbZEP(:lPE_q+.0}3Kk-ݢzD,1	|.A3PC),h*0#p*R*6)T"i]gIhbk(?q"D8Ђ=<?}$+T6<y79m~=0Ց gs!յUq@[L݄l,ASVyU]Yb3&+ጛX_]Moϸk?sx\};ynl^+WelvZy*1}[x"=+:B>x$'WF\>øL< t$86(igI"22@=n>*]k'  (dGAp>.T}]KYjuw߽;<!<r<Mxܒ>F
<.XJϠRY{zi-8+{4qwM3KXk^BCXN9"ṨkSgD՚/K{a'Ԙf!n:hs0=[I~[$qG䌵tϭm`e	~mRɏ4`5iBQ`ޗOҖrO; 5?FNZ}BԀJ
p^GOs0foX>L^Od~*-UʿxmV>m(vu77_+1Kiy/yksNfkݩOjՋ3ש
I]ZSovo$΋<neisvf`&"(j;6>PQ;ಉyE1نK|DIvȣ,v
%x2Q
nQPOFkn+E$P&p`޷x-~)T
[h;f,ԃڑ'-N}v$4ʖڵi^lrFqSz2o7?N*rD#ʥu݉Dwg6Mgܝ2|^&mfNgK=*<
O26cݼ.|HIegRfp=;<	wZ_B)IYEs<v;g%xS[qѲ}.>o]}fNyg-ORKEfƗ7Oa{p}]3䃰(:5J.IG|D،gFZ)EFԓYJ8l]x&)?
a+k3063 I|>%SABJBE7J$zVUAti,{ҌeJȁ5'KRNi!!}DJB5X	Lgsbb2=#ծ-Ն3f!!qfFs	R8=NyE6"$O(LxB9ö6=!E{͗wf/[OfZv[d.@u*?=T/V2kr|<~>h-CUF<6@K%6f&8U@`	l?*hFzMoӇFJ<fRRtvo8Eyړʜ/֢;v
?:&PX.jI^ƟWv󿤀 ?WĊ 	?SУ`u,}NSQ.9H"tGnb%t3VYh?fRWϓct@G6~ X<4[kL^^	P<؞GM5,T\ ÐHr</+E9	sJF: 6(V+NZ#ED"7s=8s]BK]z[H2ϵQC*0ѓ%,S3/!,\J*>vT,V\=TWc#0gJ~A! \JIx=TƯ'0Na퟼Tbr;ìyO*< R`Ϲ@D>|`7@ͿVD7q`dRК,#<[lPBvVcfiPf^D2AƲJV5Y'F&uJ7\KO~ͷy>-`et6[ Lizy䍶-E77o&;mpxQ$QsD[dG] bx=TYLMNbZ t	zxV]o6}p{֢gdYJ,.ȑ߽alK$/=K{DFEn4y	Wb5H8Nʦ}oJSʔk9b	#}k#d	+8	vhdK@)-Tca peAȥ*+qZFq0>1dlNg@5 ݉,nG;'V:u=`@ŰU89BƀUBcqL!`5Hl9YIk-(}025ӜNZĕ0	+;C8oy8Srvw㛛6<&iކ)>|A82G))Ms|d8NFDd"Eruz)j`J
Yjΰ?cijBJAY)gvb-xZDUJr`F,4SHHrG'`(GJUro0X(m>wъoA|8sv>)ȋh _c9<)9j^02zdxsqad'O\Mh,eZ|0m>f85J.]>0'üqgDdR(N(߇Ӌ:*8.;'8Ea9s[Udͯm7D^mI>wN-"ZV#	
AzvIa1cU,ctݕi}JT5#Se@"2<y89U`;^޸CZ|BZ'XL%
A*LJ)찭Us[n܏NȶRw
Hq}H^NxnZі}_+̠BY<B!KƂ[x0.1Qko(&]F7~Bs+)͙El3Z|:|]&5~o';,VmtPs[sw4zug}dU5 'J_bsu{j׺ֹEKh!JXͯ&CZac%_',?XvxTKkQw>Ņ 
n#T袶
r.:4i|@	4ћ4icc7 3(ݹAZit!b{s/'>i\3]8~.NC@.i,ORu41p	V4RcH _iSJ㙚eb*5Jw(:G}.˲
RZ=h-y@:[j  -!iW+XqĨNժZmsYNA;(fVg[=Q_&v!]x9[|,0켎%D~D{eL"Qƻ<$k/8#Ce6tV{kN3UXp=6|r5߄@ZMWN;l^.-JiYcCW9b-'[3_+49]$ۻorSh,艚QVZy_cDKL>c{VXڵ}~kgO]K/xSAOAMRG!Ԑ|A/õhR
!p2~;;Z!8'o/8pf֢hBL8{{{;ο?|`fëLA6	JRc2^CJ |*{VXSĸ!\\[;kCps"}j*V[Fsj*]k6"PPb
5{CiۂqM3k	мi)ЋYKCN1z̕o=o%ﴆ"7ӸXd^Dk4GJ[١$!KTvH\n+-
ݝ0K{5dըlHK8mfT/ſcJYZ_)`į:))ͫeN a*PCLli~7O<_6ٍSw^KyxSAkAncZ
*B
^SA!MK"ͷٱ3(x?ģ???Ыgg6ZMkξ7eW?>THDFУ8CMlJkxBX>1xx%xwݕ%B:<ґDOK^١~vYtrҀsNC<ZjAiˣ7xK	iIUc	cvS#9+&NJrnq(d;3^^dVXDIHPd;R#";h ZßC^.L+TzpccG[6wwfſ͇6o/^PN)`UԔM*
Ob	Gc\oʒQO?nt<mfbI~4-Sx.y]rC3&FFؕ&/`,͚m^*ؼ	Hs2M~!5<7y:MN`5s?  R/rxklļ9qFv+Y'+Aً72m^1i#B~49KQl
 ;wxk(aɟ_>yv?mť[x=ۮp1JWOV`5 Eߖ˸^㉅Y%! ˇϾx~k.ޜRx8k>w[ʧ/ݾȭ-.<ܩ3.&WmOP퐓XYYX_ȵW_CPZRZknߺƥ;n.Ey9ax7HPk6=o˖+N-pg'zKNGsԹU @?md8A: G#9y}	RG!j.P `w®8|ݞ'[@ma}vο8{#8jl[ぱ#-8SI Udqx[s6~_q^d*'sӼDDW~@$$B< f. IK|4Lc } iI_DkMZ	9{yOk>+9^~;b>CI"!T\ñk:>y""&K&$VdpEf<`=x,҄(4W\/8NQSM;"5w$TCW:tZuQ+4Ű?~a"'	@!NÀ%6-P䚇QbWT2s%ƺD=:<FCrqx|F˛`LFuy>^]¯I1<ނqC$P'EoXA*y|=0-t\3E$br"@A|5ֆ]8ix-}-R9toxboA"gd.i?ko%vP10F]w#^2?5_OS%d.ݤ ʘi+Y@e6p%n',F'IO~z,<;7w>T|&֪hDkٲuIw/y7zg?^/nQd4LV "؇O\ʤr	uz1M8<>xQ+*1|g,<}On_8s'#݆,oT"b1*1X0y<
S%!M5v]#Vµk8^S)%ER@5+oS1$.?so?|7'F}h64

ŲR%Ica	G`$696FY)ݰllAGv'ƚ䇵2jL&+Y1L&Ț)tV`9!KQYc5]4AJLg0 ݣA@>CR
?`>t#x8KTqic0] |]'׽Q_9D\g87F~rF,Q2f!:J+5tT,`N8P܌
VB0"%V98z:?)S!2I:K!=t)&U\>seds"p:'.Bq~QMޢ ,lL`HØx6\L$mNn}iWgq\zOBz.1!_"4v))/wj{2|H<} q4=_X5JKAxb16#0>> fmF(zrvV=kQ*inrf:,k9>ɹu`6̬G346`F^f5 
/RdCC.x>aP&s:xo/Ҽg&32ۥ:2[c$ڒo{#B-k"xFG'*$6__B]@pY-gd3в(gJ#=%5 ͭSPx破G3yɖB8r;x;gAgi^'![GAr?AMK@(`sKpF  ȩᾠN78\p8y!c~q~\_o9r,~y_r4p$S6C{hM{[|ؤ=A`*h1?>ur"bNBٳ~p#'=<`~'{Xg"&,+VslZD{āUe:k1NDd8t]ѩ9X^AM.:2c$sHeYEܩLLA)FOm?5Kn
jݍ'&ґEKU̴_ٯb6&R-:RY2HS<j@L]9i_v&SgscrKufI1ólXAlYy37,
tX^p`ZdކkH^=׮?R ٛ	Ok&Sxf+KzaA}cM.|A2ʃ㸭ļ6[MCjua\K˺fJ'oG C]9YB,j,M]U*_\n
f52EE֪NwevPݨ9~O&1i父zo5}q2q諪鯋fC2LbsMHGL-!_ԎurT?ݺU6zu}Gw.ʇb[T[֙̐5WJ>6X7aUV5Soty&=&OFbs]QN^
y{Xo)}ӵt63Jr'\?r&VH+*dS9TF2ͶځsEEwO`YC[
CEŦ9Ֆb',n`j_}b,JNb2W![]_(LL-wJo.R%ڍh)ֶ0*k%~S[}-]+e@vPb;fλ[[tU%tN_$c?i&yƢ8$^,%u1PI*Yv=/}ήhΐ-vo}:KU30jSRx[̸ys"dk>͟X3M~2YAxru}8o1"n^VٍoқYC/v'o>-l |ZTd$AylH䤑'/4ݼDz/3؀-U!*Ee')`RКh%>y,L3m84<brm7+dr4&d۬l؍*Lf>sT+w7))39ܾ,~+# E뀱}SxUOAR@嗯X+ 1J6kIL8f)S$ě'aG/<_`<{=xݖ4;;;}{o_?)lU[yH乡Z'*5Ts(17WHVqj2N (/)l)dͩ90w@@YIE{ p#"9jPGY	z5ͻ⑔ȩdEZށ^:gt2q'J$3X l,QDb. jvɩහb=[T*q;0BU)+EXT:nϧ<IzQG8My0ڲN?;*e˽ݻ@<l5/^Gr&P8p'n;ZХUQM]Y^V&Dzhk]V
|>T@
R-<_h9CдPXڎ4rH-ڪib$Yf2#dnPRyF]mWK`C	l}J,)$cQ9oӍ}{{'pȢiw&>IsjS/:dQ8Fybз+5$*p]Z}HȋTEζPV)[%!kӢ^jw-o{/H#EPCMTlY?kgao E36OT&ܱpb8A4ܯ0MJ}xR0.ך-kndڪ>d١;;736NEQ͈~} {rY=u#x[̸qCf~f.ILK7K `w~GxUMLAXDD\+ 5 m֒詙vga2Sv`5J7ODI^gOуgOmUыM|ilɚ&9,,2>sE[cH}5T[$IOOԹH"Xd#R)j3N= (/́-\
ԅd{ l ҂$|ơQ0@}"<C_HVUy)}}O_M3Ieә͑l2	\63+O8ls|tl'!w|#ͦ'C#WCbL-bCHRjk]Q#|DD..z.KLbY۞W5[woǼ^(`]xyqk?T$.O] =k]CD{{]Fb7.%ЧrSghlG(X}隷˧R_kSNttc{D$Wf5d3@V=62Tk.jȪzEZ`6=ULW	j5lVV^ߖ>L#98$)$F$HGէG= ͙zߓn @)Y8`$ۋ-}70C=hΗR@f,7U1oQ2˰FG^5SouRgQMzq˷0Gw]_Av'6c|b:Ul߱1њ	pJ40Z42De]='I|
To.2!er rʡ8*=Qk8D6hFNMOLgf<`<Ҹz9خ_O ySx~M}D͓g1N6U̥5[ar-{K'	N^Ź<YAPu dM+x6k_I6# b@xS_HqJECTyJTH	=ehMt4Qmf"|s %Gy77ۙ;rw5
e}nN칇q>?}?V3 DpAXSF	ҡ70$K:[ZZ[EvJqh<6^'ujd-<4F_D .E⪓tXK0I:N-EV'S㣳3Mtg0@
Yۺ#Z:(ۢ~c'h⋥pVL_DQHp*%]SN0+8##?]rd,'aI[.8 keA]{kQ]JM=CԀ#pWt3i2Ò775Hw0SnƞXkԖ=xF M.=֧~Fyie]h2	m 6>@?ixcէ$GYqelƁ{;`xYcbu%.wlwJGRt|TיlΞwL\nXӀ^!%fa#0?slxl<"Zu6ٌ͖7fU)M}VP4Ӄz
%Ih ZCK\lhlNKB bGxL$x_AOD.%[1xZ[s8~ϯP_Cz2US/̀vm&<QI-Cf`K:lNHD:|4,|O.>\'?N'mCur;bɒIǌ4SR'_T\$St#L$BL16Y	OH(&ii\Gňqhōj؊ZO56v:[^wI̔"'	MA@̘N$5-P':QbT2$q%dz^xuqX&#~:~ݒo hvn}Giu;mv4;_~]'|,ђz؊CaER)Z2舑xd2H+#$	T[%yX"-FRd)iK:gOِH#8ȒVY8&T6IyAnΚ4,:
`4FN_qѯCd#
x iKq%pKW6(!D@8N(E sŴgLL*	6R̋'g\|rh1H8^$8%*)͕fDȀ\NE?Z|Qiߓw|Vﴮ^4~]xO:Oض-@2I$&PD1>X)\BP~?LL'69m' R|īud&"T<#AeGl
ʆ"1gi׆[<7]7/]4y^i	(Aέm]?\(|yY:04$
6CrF&,{n"'w@uL0<	Jj5(f&BB
1?CK %$`90,XSy&	 y(K3)-]&k<{<zzǎfXJ%7yo;mI.><FRZ\a1)!&	RJȨg6y㛎@hr(19\¯X	 -['Cdn*`ҹ;K,A7y7͠Ńc[a]
3T,F6q~5jZf6|tZ!)wWAr< 2/}Mf˟
X 
0>"lKj|qpf1WGH
"t!D˻<8cقI~mw(f]7Þb&&41RAڟ	$s㸞]BYfu!40͜m|3z$eX;Bum11MUʑcZ.]A(kK(ZL\<k <H=}@BFhZ4	Κ0R!CwTN,Ra	}vUFu%? x(@oKzD1۶O7vH(D>)s`dF&lsdsÈ8	86qK)`3Y
PıZ;oxj%F{w-alW2gt2V7j|`<FW
٥lԺHLexHY.2U&_rpBlF|Re8Pۥ-oxBzkbk1)I2Pn_/`α&ٰ05NB!jb|dOꌹ:MC?e{d[{S2અ/،|[Hc:Uq&؞,{@dLM3qs0Q1Twc
[Oi6@Sfz8> >%۷dN0YK aN6| 7Wc*ߐ5ŉ5bM0܆/u勁,P~Mb9ZoK~S%!a@ŮDr J)MklNpod\JfRܣIGMxx+'(AҢ8Uՠ="2N$}]B*,,2,L[ӷ%M",ݿ*AXnp++K. |l :3놇wX
2ˡx!H;~ߢsբ3{XVw&`{<.WQ3ȌP>ɧ'/1
xu?j;'V\4}y8&LVTw|c+#!d& Cv$o d	)ށ'7*<ql%7Mh ~:a˼0nCĘ6+Ogrrao =x1jCf>ILK6pk exXko8_q~Iݺmv8En1ZlneQCRq<EKJ<]`$K>Ϲuh˭Q˕9__JlQ@.]eK<)L*Riȭ$J~sJ*]PNX~uoŖ
{(K%DTA^(Իx5~' .ܒbAr|m6
wY`]wP^ȥdϕ20x%QBD,j.6x4+1ʩbyJVgn#SeQ`y, SO`:&ƳWgip}=Sd4&vAOdtJClmi؛2Dp*xQݖ2QJ`ZRRHS"*Y+QP0erVN8ͅ(F^ǻLKFFl#p?dFQ^ J	Pr[_`OiNwF+t;7=5,WX/_/ѧKHks#4Lj	v$GYU$AF y®=PYcZU.w~Vsm폼ιZa¢]OvGLedxqt>]>'j2?z1U ?)yGU
h䭛o$뮎ږ+X<)v@=E]F]AERSRY!4;ȉեWIUp,;#pH:qPWlŧ+5]B=/=C'aX
9WjUl4 \Co#? 6BU^>kBe8$^Cu;*Xt^t:e\,ς/#AT965K.%Wxcya&TncWAH2,>,++i@eBi|UH^(n¿>kIKB]SM%\ 'L<[XGJ*ϛȃ8EeH+AA$a
k/Ev>|z};Z&_FVh,u鶱43\1]2(ǳ=
flWgwE  `Yqrݶ_ޟ rڄ[f'3wl)2ZY3>30֘=v=?Higy+0rDD$x. L!<7f&3Ğ!~h= ~_k1>{hO3E,:fmLUc	>
]}
n})Om慲U$qJ;-|<^Fl6n;- aJ
j!R#;MQ(㥩pơGERy*&rHFJ#a.FT߹n}v},fﻭt`*/VvR#p'8<=~k00	ޏ)+\AۖZ񎿬بQ%b;JW96%F0zbfw	DVx~;]O/\u 0.v,{*#@O-JӲr AfFY,&W70\䳥J35wz7	MRO|e,o9Fv^Yz;g*2qܲf7{5pB<nƖ=9mF?@lYSv-p쁯<F)WM+g@m^R|E~wb?';Lj7យhEg_zd_P`xS1oPV5J*n!@EPP%+4QU@#D$`ca ^=?2 uff$$FX@H,,,~N9IEժ}}|WtĘΙ;P`ʍN˙z].0&@4Y}ncHbt@E B	$VQwu՜(OlZO8fJgU<H"D)	D51WRlVl+_0PH9H-zHEWYCj2TԽ&uE^ (<4eӧikowrg8@F!(e2}}TDVq3MsջU<eL;H\nrSJ֙FK`t,+K.'ѿ1S_:}+A9FuHi!CysZ4WtaOA$PB;J[w\x(dǸk^r[A *Dd?&glt"N4_g<ՑZZ_xAO+.$x;rJe=|x&Og' 	()xJ@Q<oCJ{zEE&m0;!Kn6)"ev7t	a@1)palΐ3$p
(0Rpʂc:qfޯ$ElM^q`[/[ok"KX`_4"WHMlLZutgNid&F[$z,H\Iq?
p	Q[.C׻OGBi߭k5o}V ]T`7sEWX#=EG=L?9x{XsSfaɱB? b撌焥>xWmSWί_2m~1MdJ2M㲻K8ME@
HXPk+HǡK݄B/ 繛;P7
J錆ӨlWgר_X@A<*4% H*N"]JbF~៻A1QYB=޳t[9YG#\It bXѐ !^QD }V2N)㲋!'498Tc 4MS٬s$YBXDu@(PeL&4%&HiR唖0IAՈе&jA׍'Nc,PK!t#CPFQ`0##яHЃ0yUL2b7YIy!%Кֹ4Fiy	:B
&#J'BI
#
#iұh"_Ga<LjrȺ|e|8.yTHbЁ.XTDi)5|UCI衅ApT
TD:G]esŊ:Iq<f+4y:MKiLjuшE0	T%I1@s5M44ЙSAC~r%'謊Bp$3JH;nj*3Br*)(S5< ?$Qr^'8<Ӓ͎SB
ƓBx8R8G{Pn@;psԆ	I0ZN*ݢEq^uvR@˨3Љu		C}v蝹\FQm=6g]7J/1[o+fᘱ;go](vyɜٱW&̩Is45ajZ\ڲ9e75t]!} ژaޮy=7OZDav#ÝA|\(L _G?BQE7Ҁis9|@1V7s:ҘM4b,Zsρ9J+p:yZ2U6䆽w֫O'͇ 3lR58Q!FIQͥ87HXJڴoNEk|x/acvxؿ_C"XAlr&F	^D:u<WmIkk[`荃{<r8?-ը)JȲӚCi.3Jsv~<c+G_Ϛy rmX'&ff}7~fǁ/kF{4`Z,ۅvhLcltMms}f!1nk<57_||6{Av	;s椦n+sQEv[x(>ڵ8iSTb=<R<U^߀d>BXVfW+Dׅzץ[Fٽ.mk~]}B9k,4qp^)5#sM\k-mwxLlFgZi8c=^="szZ|m|^)^J:6b1\) 1ѼvҙlP0Cv'̇ɪZ[[#zCY*g[xv?ZLnk%zI0Ⱦ潯_dj^t~`*hx;|Ry>c&Lɼg0dAɮ܆0n9 ucwQxUn@>T$PizKŹ\ZD-mh*D{ػѮM3 _y qI82ǩJڔKMwfo&VUu,FCz%iV"}b
sn0=&X@8<*Apd5SN(l6(g Dr=t`y T5CH?-WL~'~R	?۫Q<-*E29zNFVS\j+])2E7LuḇYFBMC]P-l6>;!L4e2`|*ã|(t
Fi/dd+J@!yOa:<HK|6NgAJzm^ͮlfWQ[SQ&ݪU='=UnniM*n@E|vdpRz9/wmM8byVQtҳFW@rYICěV5.K1s|ոe{,,8gߩ/KY&͉ m1pDϪ[0.(Z~xLTrtس(r&3zB{(!c9<<Bk%-bqG:"R1O#[pD_I5HTIuN[-:SQOJ\pTSqJvNfnD7dA&&`U<H6x/xDxUOA k5r+u/"؀P)襙ζ[wg]G3W<hw%X(^J{V>Oo]Q^YPS	A)IZ"|bxMa[Grӗ1"H("8A^d@F9]4N
ӝ\`GoI!3K_dmwvwKW\!kC4~_WyυƊrn?)!D	-ш. 8iAg#4vC,MYD	Х|Jã|Hdԏ̭JiEdKLOAAy3t6yrl:3wOg6p&/O<~r56F	fҭZ3cZh0NQQ"!~el%3ܹTDwuz[ٯֺx9 fFyFyo U|-Lnir碽vVbԧŝ4礃) 8n10J=naønBRj"[ÞE98qB(̣_2Q5qaҢg==ҩH_@h689}s< Ae,rf`㸲]9GZn*X&KpTSqJw6).Np	DAݐ=஛tK ڠ_w^GxSKOa 	beAhG|l* >$N	67ٺ)C@}LRC3aIi0QH`HZ f2s{S<[ywIGS'SaCsۨbO𱈰J%w-Lw6?"9u+L¶mPT4HhȵI-<oPMetsCx:LP*L$?RqR쀎h*RQ5]Pk۱50 Ny޹	SJFg>HވGVF/gYwg6fw+Cg0	iHx.ש?(H3<aI(z"t/)d[Vvwc^Դꞩnz႒Yi=m%lZ:;K\vym5K11%q؉3=Wiv.GVraP-{xEqVX ~.	]{=stΞv,Qb\m"FqinXk?yޑ8BJg^^W;mqB`R}؃&tӡT
E/,	/0Iaq}Q~)QDb><IHi~v5I*Uea?Eb簷11>J=p$RBɫ	Z	xۧWi>36k0O`ݼ
rՌy&.á\7y!~>vf.-|@*]&gN" ޝxY[9~_qy 	Z6/N2z2T2U.+	slwh:7Fi)N}>]Tә94^6~yl9ZժгIixL;YN~%Q{	Wdpn]>MKU-A*!"?< $jgI~!̍P5>tESY^_,5札)=g{V?@w2ƀq%6YE/BN`TjLsIZL
Wz c.#.9ꎪ;~7p쏻qw_7	U?fn
bqBK&HESӂM9L=g9sahE:L&2.͋_\+7,IjUl<[EQ=)06L5g"ϖx*9%Ǒ<cZo+>H[I r4Ԥ6vrjظy]<cKn8	B0WIy!;BSxhhD"<
׌S[0Z-TDd.klk}&'ix&R$:VzwN6woqqt\G.+qV$V/snjK7Eq] i<l]g"]/DKs]&kR?5Ӛ/_$ahgB<Auhpս	&'Nf|%Epg`q֘
bහc^Lbe(?l!w2T*49AS%;ڿ㠓p8z~o9lw{HFxۑ%mni*1 .9.YVpspphpaz}q4i6Q}-f+WaYG]}oaSN  9( 7+l74菀]q87.
\Řg-P\TF#A9VM;Uc<lSJ#@1plC p(~Xv(:(Kߙ-tª>wy4h#"tY(_wOw*钢9d7^we$%L Z$a@$X*j7HٸvK3VKҒٟY)YV%^
7Ȋh˃MFpl3s-rؙ!6r\![1pg~1̘h~kD͎huyX zaVQ!#$0|erEHy4kWeZR;qZK,"l)T_\+ȶ7Rԁ|n!Cܹ$wy HP]*,fyyft8F}lQa#՚͓g&eHU`;v	ѷZ0Oտ#Էw+bpwrFgv8/M%3\ \9JIHD닇Q"MSI3T3¥ 12p,eAond8pLb
u	V*Ȕ"Zƀz< oPwɏ/{}=ӆ_t/
;c2bWmTV#.ƍn_mW9U\K/Wh<s\e|v
_rXh'b-qv{w,SǴ~CqoѫS2%XPL=	s>Wz	*\yӌkN7_{oCWH
P':ow*yt'xaCNL"DY&l//ف=fvgIqLffRR,co	b޼c"ޛ1m>&8)f3t$ݙ'ϓl%kT$?GVbN7'|_~> 
.,>xWOG(ACKҤ,EmEk7Xk~B^d`cPb)1#;;'TmxJz>ޛٿL&D\S<锜w)Jx\"*0v{lveYPwD.^~7ͲdaܘFjG467Nעo];P7WRYއPKx_$qB+eM*]ru2	MC*c!g
/]Nq/WN>ݭ6Z4{^&X[rrVVwp	ЗNQg2bJL-pkvseq8Pvpj4tr1uƖszi%W]}g5j[èhq<Y('cԯx"_)?5[߷O5(a	)1,D'7p|aJ%f(,ì#l3/Ibw㮜'n%'$m`_qFGV^[P/
TF]5C\^@|ݙ5% I#%5?sVa&f}\LznmHx3)`!ϋVG<:`E܌D9d	/T9`KQ9FQU Kp[gl,$2ΪSwۇ,Ĝ>d3rQoӠ\9RI$W2/aQ-fy7Le*Q!oi׭0V҆%7T)ǋh?h+6)
@D	L*PMRWh>Yq*lfUqKvXG)?To8;u-QT;p=,:$:WX!s	-8
}om61([FWOp3Q Z>>)=7_f99Q?/cl5ݶf7+^۫05QP$grI[Y܄3QBw)\s8'J9ToSk2u271yL&P W=/xaCf~f~ILK7˱,R<c2âLt ("VcxVmLg ALP̠}j[BF/X]I=!˾oy/ko/4Zz}lMڛB]$ \`u]RJݖs{幧_?+(+,{	;!2b	%u؃OE;Ya3DR -s%pPZtb@_mi|Gfsb8IO˞y~|@8:P֚3ab#vR/'"m'͜bET!i.a=eϸX}^'6 ,{@k[eH(ǘlmc	s?CTDB
&F֠ Xҍ;]VePuv&]ѣiۛy?*ޅ6ȼxcD:$0aRBȑ;yvAVN<ʥ3?Gh۷y.:Q׎JTzHw|ߧ?0'};iY?7Ԙ#/q)1*{KK._}:8XKcԿeeY_(5=O>|G7}TdYr@;bmGb]{(?;7nNka3wlR;Z#b)FKEʑpz"2@Ax>0cKnDgܑ弾g77Nk7._о+v꒩Yv~^tvhnϰI]ҩ\w=^#<-10/$->qetR.xJPp1"QnMݖS欝H/':8!3Vu
}[cX<˂QRW1]r[J	k}Q_Nͤ@}äHHzyٞ[75Oyk>ʟV(z^8Lk~ˢ@Pj+T[auDck=>Rg˄SQ
W!d~yi,@- ,^0xoys's7,L?]d-q2G3mg|F؍qS&ͦF̓'O`g[|IL#'M/s,Atdd E%x]msF_1|qXd)޽2EQ6*");/,EIy)} )Jۮ_o숆hU_Mt8|~xouS<0joW=z$y4deFGG}+EY8{.Ҁ''?FSҥ+Xs1g>E!Db	)fa2>9",V"EX`9ZLb{!fW3|4h;3HfQ,2ΰ˕ j^Yx-LWY"NvEN0hqY|,< x신D5A&yv/}kvA/=vA|]c8"̘Grs^b|I<֒exS%ؑXD<Ts8&f<.?~:*Kqטfx'h"γS<rf&,^pCgqUOEѼei<Su@.-I^(C:X=,Ő(Zq4A~1>̟3!4TE^Cyf:#Cg1.D36fef+e=)?3|#''857AV/8t{÷;?aLD	͖cw*ʽurX eh1[N2/?w~q<r,O	%EQ[bAܜàVgzB̟?aS?@|)z`γoڝv/hj/V59"?p_Q,N" uk	:>3R̋
p)1E=bFt%cN0 |ma;dqF8ri"H!!Py =O2هcIEUy%8EC`u+h4N.NO]5ia0|޼4d>͋v5⟯gqś F,gcM )nh+Nْ$C0!~MiQia1TW	ՍwRky7$5
q慴I8_bn liI蕙jUNoy~^^<_^NgЧÃgk\+kB'ucx9A=WYn^]4b	<R<
Yy7zA)z%h_Â 8cIïLәTc_dйrir.tϺ.-/4OCd?d?Y8RT-,Fjtc)BH '/4WK-xZ<ų'v[yj#zo ׅ	ecH|tPU*}JV` ~#L%a@-"W'.߂gI5YA r2R;9wSVC|2b B<>~q@׃T͗r#VZ,H*̲t?'iܹ]4)1li䠃bY#Ny `MRhu^X,Hu<$;G4a 袣pSWIxCV^I<G Q/t<<: b+~|j0ip9+lw)1Yg>
=lBΤ׸POqS1-",y"zZ͓OHL1DjK	'75֢\|Z?'*>xf[J[jWisM`ɵ#M-:-XzTyl{-鱼qJ\lb;&5ITEg`ZrT H	d.H0DdɻҎa41

;JhиtILaA5[),L,t57HHS)9TșS$6uCBNgUAy)y@, NQ&3C
!/%QV9|{L-ӈI@_$y/Ub#kU0mȴmD, 6"Չ*lv;IQGhUvE|Hۥxv!rņؼHz#9E汘LPE#pΥ#q.&$g>Sa lEQASs\<*? %r*o1]fy4䈜Wbf]	f̹/ԮŌ{-JO%]JG>rK=q%DeB7+E)qTj>I+1S"fH%E1ðhP6P ;O| %5Cab{sΚTH@S
t8YZѯY^qcXOLȰGV=2?'3Dα-{ѹ$,@P"Th1tUj0wP@"Dwf@L?P"&g!Y~ʳuN];AI,K`xďaêKz
t[Iu%8n 6OˣOLjz@[Ġ;Y@uc!XMޣ$7(jJG+(!=䅫l  jL;US[:*rANm3kxCy 9SZz3ҁ><H3cvlT/[@i!jBA~}Uᤊ7PVs >},ńfiRGpM8F?G/޺bZڀ:) X-RS	$1Y.i!;ZV[Wx8tpRr&4BU{C#B:}QYe{Q/}p!;^+EL\o0	(*"143znvB.ԣ
8yO`g0ZU)1en7y/76B۹
rԪ&YFQUGm#+9ujn [S>1a'n<-_OYBDe:#)Bkk;,Mp\k*A^R+e!x'0n	~Jʵ$>+f<<A]U$.iCw!cn3N͛ ?]ɝLG)JeMOc$F`VHǝ'V\^%2I^\L@	Ir	1'@[
.@PrF6/\0IGh.yˤ(r\q,qװDb-ɽ@ %lğh+5Qqi$p
4ȴWejk/+Ӭ5J=uazOne29C	ԷH,9e>V:(١&F6B\-_:%ipɸyr-cWO_$街z)%ړqc/Vs	IuTDE|J*pȺ4%4y>KR)bL1:ѓQ eg[|=c+PM2$(osGRg)yDH ~9-Y-D,=Yuj}ldC
$unM3{=:nnЋC#ݳssg]"O'Oշm:[qł<(QF<jRL~@/
ox("'y?ѕ4D]N%F<\u~(sߡBJ᳔^ZRivR]
q?jƙ.T:t	:v1Jb'%Ð,c{Iz=a@۰m|ūpsG9t)<j46s
&鿊	s~dq6	ی$BG0FYszkdk,GcanBK-܉%=W߱SOzI驱iCq-wqǢ:_NKIuJB_B+p+%	VziTMP?aF_An|Pݦ] ҍJ('TmT;^^ʋʤ0֐1+%Q<O--wAA]V1ld+loL`A&06u$0:	My_j*:͸fJu@*3ԕk3]CS~cèIYSMdG׆YL+;hK<w9Jଉ1QRrund$UCb/eE9w=_Y"x9x	7@s<a~TI-0˫ug.VILH4=ڳrES%=u]<:le`H'QkyQ_Td&!ndU+8i3',o#Fc!:Oቂ;T6S޹j$/FJXKɔKQ򚼧G=`Lh YQxx%&{0*֙Wju0?Pه2~EoE $^Jum(6ElP{N=DUs(<rn(.	ԫt$gi9r٫䶓]!pseE>=A_="7̾5*$tX>޿YkR\f1S"A۬6Pӫ-e[UCTwjW⋎v+r;$MYJ@ ˼]1 ޝr7dsBB2KɤDy1	2[x&19,b]fhg)[IYAo6(Ე
Z2A;2־F_ӵP~L^ó9_p06n6c+,,"6ػ| )֣oy	k+on5^37h_ ncNu!Dey~9%Gf2/WqlO$Y6w
]!¾kqHpr^j2.Z(̰/d=]jo_/^+(n7ոm62":v=
LܺH/1p_ndssDjZx@MY>NMoPrZb/5%}=b!v8zQ.oo׆ҭDlYݸ![Ay<nbJgC /H_VwEHN閉YJtNG{0t	AӇ#7ी#ȿ W@x   
/*35CxD+
 *2
 *GfELG>"c
 */

/**
 * @addtogroup Drawing
 * @{
 *
 * @brief Provides the 2D drawing capability.
 *<W
 *
 * @since 8
 * @version 1.0
 */

/**
 * @file drawing_text_typography.h
 *O"Rfunctions related to typography in the drawing module.
 *
 * @kit ArkGraphics2D!<
 * @since 8
 * @version 1.0
 */

#ifndef C_INCLUDE_DRAWING_TEXT_TYPOGRAPHY_H
#define C_INCLUDE_DRAWING_TEXT_TYPOGRAPHY_H

#ifdef __cplusplus
#include <cstdint>
#include <cstddef>
#else
#include <stdint.h>
#include <stddef.h>
#endif
#include "drawing_canvas.h"
#include "drawing_error_code.h"
#include "drawing_color.h"
#include "drawing_font.h"
#include "drawin^declaration.h"
#include "drawing_types.h"

#ifdef __cplusplus
extern "C" {
#endif

/**the text directions.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextDirection {
    /**
     * Right to left (RTL).
     */
    TEXT_DIRECTION_RTL,

    /**
     * Left to right (LTR).
     */
    TEXT_DIRECTION_LTR
} OH_Drawing_TextDirection;

/**the text alignment modes.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextAlign {
    /**
     * Left-aligned.
     */
    TEXT_ALIGN_LEFT,

    /**
     * Right-aligned.
     */
    TEXT_ALIGN_RIGHT,

    /**
     * Center-aligned.
     */
    TEXT_ALIGN_CENTER,

    /**
     * Justified, which means that each line (except the last line) is stretched so that every line has equal width,
     * and the left and right margins are straight.
     */
    TEXT_ALIGN_JUSTIFY,

    /**
     * When **OH_Drawing_TextDirection** is set to **TEXT_DIRECTION_LTR**, **TEXT_ALIGN_START** and **TEXT_ALIGN_LEFT**
     * are the same.<br>Similarly, when **OH_Drawing_TextDirection** is set to **TEXT_DIRECTION_RTL**, **
     * TEXT_ALIGN_START** and **TEXT_ALIGN_RIGHT** are the same.
     */
    TEXT_ALIGN_START,

    /**
     * When **OH_Drawing_TextDirection** is set to **TEXT_DIRECTION_LTR**, **TEXT_ALIGN_END** and **TEXT_ALIGN_RIGHT**
     * are the same.<br>Similarly, when **OH_Drawing_TextDirection** is set to **TEXT_DIRECTION_RTL**, **TEXT_ALIGN_END*
     * * and **TEXT_ALIGN_LEFT** are tFhe same.
     */
    TEXT_ALIGN_END
} OH_Drawing_TextAlign;

/**the font weights.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_FontWeight {
    /**
     * Thin.
     */
    FONT_WEIGHT_100,

    /**
     * Extra-light.
     */
    FONT_WEIGHT_200,

    /**
     * Light.
     */
    FONT_WEIGHT_300,

    /**
     * Normal/Regular.
     */
    FONT_WEIGHT_400,

    /**
     * Medium.
     */
    FONT_WEIGHT_500,

    /**
     * Semi-bold.
     */
    FONT_WEIGHT_600,

    /**
     * Bold.
     */
    FONT_WEIGHT_700,

    /**
     * Extra-bold.
     */
    FONT_WEIGHT_800,

    /**
     * Black.
     */
    FONT_WEIGHT_900
} OH_Drawing_FontWeight;

/**the text baselines.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextBaseline {
    /**
     * Alphabetic, where the letters in alphabets like English sit on.
     */
    TEXT_BASELINE_ALPHABETIC,

    /**
     * Ideographic, where the baseline is at the bottom of the text area.
     */
    TEXT_BASELINE_IDEOGRAPHIC
} OH_Drawing_TextBaseline;

/**the text decorations.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextDecoration {
    /**
     * No decoration.
     */
    TEXT_DECORATION_NONE = 0x0,

    /**
     * An underline is used for decoration.
     */
    TEXT_DECORATION_UNDERLINE = 0x1,

    /**
     * An overline is used for decoration.
     */
    TEXT_DECORATION_OVERLINE = 0x2,

    /**
     * A strikethrough is used for decoration.
     */
    TEXT_DECORATION_LINE_THROUGH = 0x4
} OH_Drawing_TextDecoration;

/**the font styles.
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_FontStyle {
    /**
     * Normal style.
     */
    FONT_STYLE_NORMAL,

    /**
     * Italic.
     */
    FONT_STYLE_ITALIC,

    /**
     * Oblique.
     */8
    FONT_STYLE_OBLIQUE
} OH_Drawing_FontStyle;

/**the vertical alignment modes of placeholders.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Aligned to the baseline.
     */
    ALIGNMENT_OFFSET_AT_BASELINE,

    /**
     * Aligned above the baseline.
     */
    ALIGNMENT_ABOVE_BASELINE,

    /**
     * Aligned below the baseline.
     */
    ALIGNMENT_BELOW_BASELINE,

    /**
     * Aligned to the top of the row box.
     */
    ALIGNMENT_TOP_OF_ROW_BOX,

    /**
     * Aligned to the bottom of the row box.
     */
    ALIGNMENT_BOTTOM_OF_ROW_BOX,

    /**
     * Aligned to the center of the row box.
     */
    ALIGNMENT_CENTER_OF_ROW_BOX,

    /**
     * Follows the vertical alignment mode of the text.
     * @since 20
     */
    ALIGNMENT_FOLLOW_PARAGRAPH
} OH_Drawing_PlaceholderVerticalAlignment;

/**
 * @brief This struct describes the placeholder that acts as a span.
 *
 * @since 11
 * @version 1.0
 */
typedef struct {
    /**
     * Width of a placeholder.
     */
    double width;
    /**
     * Height of a placeholder.
     */
    double height;
    /**
     * Alignment mode of a placeholder.
     */
    OH_Drawing_PlaceholderVerticalAlignment alignment;
    /**
     * Baseline of a placeholder.
     */
    OH_Drawing_TextBaseline baseline;
    /**
     * Baseline offset of a placeholder.
     */
    double baselineOffset;&
} OH_Drawing_PlaceholderSpan;

/**the text decoration styles.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Solid style.
     */
    TEXT_DECORATION_STYLE_SOLID,

    /**
     * Double style.
     */
    TEXT_DECORATION_STYLE_DOUBLE,

    /**
     * Dotted style.
     */
    TEXT_DECORATION_STYLE_DOTTED,

    /**
     * Dashed style.
     */
    TEXT_DECORATION_STYLE_DASHED,

    /**
     * Wavy style.
     */
    TEXT_DECORATION_STYLE_WAVY
} OH_Drawing_TextDecorationStyle;

/**
 * @bthe ellipsis styles.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Header ellipsis mode, that is, the ellipsis appears at the beginning of a line. This enumerated value is valid
     * only when the maximum number of text line$s is set to **1** by calling
     *QSetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_HEAD = 0,

    /**
     * Middle ellipsis mode, that is, the ellipsis appears in the middle of a line. This enumerated value is valid only
     * when the maximum number of text lines is set to **1** by callingQSetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_MIDDLE = 1,

    /**
     * End ellipsis mode, that is, the ellipsis appears at the end of a line. This enumerated value is valid when the
     * maximum number of text lines is set to any value by callingQSetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_TAIL = 2,

    /**
     * Header ellipsis mode, that is, the ellipsis appears at the beginning of a line. This enumerated value is valid
     * when the maximum number of text lines is set to any value by calling
     *QSetTypographyTextMaxLines}.
     * @since 24
     */
    ELLIPSIS_MODAL_MULTILINE_HEAD = 3,

    /**
     * Middle ellipsis mode, that is, the ellipsis appears in the middle of a line. This enumerated value is valid when
     * the maximum number ,of text lines is set to any value by callingQSetTypographyTextMaxLines}.
     * @since 24
     */
    ELLIPSIS_MODAL_MULTILINE_MIDDLE = 4
} OH_Drawing_EllipsisModal;

/**the text break strategies.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Each line is filled as much as possible during line break.
     */
    BREAK_STRATEGY_GREEDY = 0,

    /**
     * Text continuity is preferentially considered during line break.
     */
    BREAK_STRATEGY_HIGH_QUALITY = 1,

    /**
     * Line breaks are performed at the^ word boundary.
     */
    BREAK_STRATEGY_BALANCED = 2
} OH_Drawing_BreakStrategy;

/**the word break types.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Normal mode.
     */
    WORD_BREAK_TYPE_NORMAL = 0,

    /**
     * Breaks the words at any character to prevent overflow.
     */
    WORD_BREAK_TYPE_BREAK_ALL = 1,

    /**
     * Breaks the words at arbitrary points to prevent overflow.
     */
    WORD_BREAK_TYPE_BREAK_WORD = 2,

    /**
     * Uses a hyphen (-) to break a word at the end of each line. If adding a hyphen is not possible, it will behave
     * the same as **WORD_BREAK_TYPE_BREAK_WORD**.
     * @since 18
     */
    WORD_BREAK_TYPE_BREAK_HYPHEN =' 3
} OH_Drawing_WordBreakType;

/**the rectangle height styles.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Tight style.
     */
    RECT_HEIGHT_STYLE_TIGHT,

    /**
     * Maximum style.
     */
    RECT_HEIGHT_STYLE_MAX,

    /**
     * Middle style that includes the line spacing.
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACEMIDDLE,

    /**
     * Top style that includes the line spacing.
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACETOP,

    /**
     * Bottom style that includes the line spacing.
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACEBOTTOM,

    /**
     * Structure style.
     */
    RECT_H9EIGHT_STYLE_STRUCT
} OH_Drawing_RectHeightStyle;

/**the rectangle width styles.
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Tight style.
     */
    RECT_WIDTH_STYLE_TIGHT,

    /**
     * Maximum style.
     */
    RECT_WIDTH_STYLE_MAX
} OH_Drawing_RectWidthStyle;

/**the error codes that may be used during the obtaining of system font configurations.
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_FontConfigInfoErrorCode {
    /**
     * Operation successful.
     */
    SUCCESS_FONT_CONFIG_INFO = 0,

    /**
     * Unknown error.
     */
    ERROR_FONT_CONFIG_INFO_UNKNOWN = 1,

    /**
     * Failed to parse the system configuration file.
     */
    ERROR_FONT_CONFIG_INFO_PARSE_FILE = 2,

    /**
     * Memory allocation fails.
     */
    ERROR_FONT_CONFIG_INFO_ALLOC_MEMORY = 3,

    /**
     * Failed to copy the string data.
     */
    ERROR_FONT_CONFIG_INFO_COPY_STRING_DATA = 4
} OH_Drawing_FontConfigInfoErrorCode;

/**
 * @brief This struct describes the information about a font fallback.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontFallbackInfo {
    /**
     * Pointer to the language supported by the font fallback. The language format is bcp47.
     */
    char* language;
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
} OH_Drawing_FontFallbackInfo;

/**
 * @brief This struct describes the information about a font fallback group.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontFallbackGroup {
    /**
     * Pointer to the name of the group corresponding to the font fallback group. If null is passed in, all fonts in
     * the font fallback group can be used.
     */
    char* groupName;
    /**
     * Number of font fallbacks.
     */
    size_t fallbackInfoSize;
    /**
     * Pointer to the set of font fallbacks.
     */
   AallbackInfo* fallbackInfoSet;
} OH_Drawing_FontFallbackGroup;

/**
 * @brief This struct describes the information about a font weight mapping.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontAdjustInfo {
    /**
     * Original font weight.
     */
    int weight;
    /**
     * Font weight displayed in the application.
     */
    int to;
} OH_Drawing_FontAdjustInfo;

/**
 * @brief This struct describes the information about a font alias.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontAliasInfo {
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
    /**
     * Font weight. If the value is greater than 0, only the fonts with the specified weight in the font family are
     * contained. If the value is 0, all the fonts in the font family are contained.
     */
    int weight;
} OH_Drawing_FontAliasInfo;

/**
 * @brief This struct describes the information about generic fonts supported by the system.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontGenericInfo {
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
    /**
     * Number of font aliases.
     */
    size_t aliasInfoSize;
    /**
     * Number of font weight mappings.
     */
    size_t adjustInfoSize;
    /**
     * Pointer to a set of font aliases.
     */A]AliasInfo* aliasInfoSet;
    /**
     * Pointer to a set of font weight mappings.
     */AAdjustInfo* adjustInfoSet;
} OH_Drawing_FontGenericInfo;

/**
 * @brief This struct describes the information about a system font configuration.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontConfigInfo {
    /**
     * Number of system font file paths.
     */
    size_t fontDirSize;
    /**
     * Number of generic fonts.
     */
    size_t fontGenericInfoSize;
    /**
     * Number of font fallbacks.
     */
    size_t fallbackGroupSize;
    /**
     * Double pointer to the system font file paths.
     */
    char** fontDirSet;
    /**
     * Pointer to a set of generic fonts.
     */A_GenericInfo* fontGenericInfoSet;
    /**
     * Pointer to a set of font fallbacks.
     */AallbackGroup* fallbackGroupSet;
} OH_Drawing_FontConfigInfo;

/**
 * @brief This struct describes the detailed information Mabout a system font.
 *
 * @since 12
 * @version 1.0
 */
typedef struct ? {
    /**
     * File path of the system font.
     */
    char* path;
    /**
     * PostScript name that uniquely identifies the system font.
     */
    char* postScriptName;
    /**
     * Full name of the system font.
     */
    char* fullName;
    /**
     * Family of the system font.
     */
    char* fontFamily;
    /**
     * Subfamily of the system font.
     */
    char* fontSubfamily;
    /**
     * Weight of the system font.
     */
    int weight;
    /**
     * Width of the system font.
     */
    int width;
    /**
     * Slope of the system font.
     */
    int italic;
    /0**
     * Whether the system font is monospaced*X
     */
    bool monoSpace;
    /**
     * Whether the system font supports symbols*!
     */
    bool symbolic;
} ?;

/**
 * @brief This struct describes the measurement information about a line of text.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_LineMetrics {
    /**
     * Height of a character above the baseline, after taking the absolute value.
     */
    double ascender;
    /**
     * Height of a character below the baseline, after taking the absolute value.
     */
    double descender;
    /**
     * Height of an uppercase letter above the baseline.
     */
    double capHeight;
    /**
     * Height of a lowercase letter, specifically the lowercase x, not including ascenders and descenders.
     */
    double xHeight;
    /**
     * Horizontal space taken up by a character.
     */
    double width;
    /**
     * Line height.
     */
    double height;
    /**
     * Distance from the left edge of the leftmost character to the left edge of the container. For left alignment, the
     * value is 0. For right alignment, the value is the container width minus the text width.
     */
    double x;
    /**
     * Height from the top edge of the character to the top of the container. The first line is 0, and the second line
     * is the height of the first line.
     */
    double y;
    /**
     * Index of the first character in the line.
     */
    size_t startIndex;
    /**
     * Index of the last character in the line.
     */
    size_t endIndex;
    /**
     * Measurement information of the first character.
     */
    OH_DrawiA=_Metrics firstCharMetrics;
} OH_Drawing_LineMetrics;

/**the text height modifier patterns.
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_TextHeightBehavior {
    /,**
     * Enables the height set by callingQSetTextStyleFontHeight} for the top of the first line and
     * the bottom of the last line in a paragraph.
     */
    TEXIT_HEIGHT_ALL = 0x0,

    /**
     * Disables the height set by callingQSetTextStyleFontHeight} for the top of the first line in a
     * paragraph.
     */
    TEXT_HEIGHT_DISABLE_FIRST_ASCENT = :0x1,

    /**
     * Disables the height set by callingQSetTextStyleFontHeight} for the bottom of the last line in
     * a paragraph.
     */
    TEXT_HEIGHT_DISABLE_LAST_ASCENT =; 0x2,

    /**
     * Disables the height set by callingQSetTextStyleFontHeight} for both the top of the first line
     * and the bottom of the last line in a paragraph.
     */
  O  TEXT_HEIGHT_DISABLE_ALL = 0x1 | 0x2
} OH_Drawing_TextHeightBehavior;

/**the text style types.
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_TextStyleType {
    /**
     * No text style.
     */
    TEXT_STYLE_NONE,

    /**
     * All text styles.
     */
    TEXT_STYLE_ALL_ATTRIBUTES,

    /**
     * Font style.
     */
    TEXT_STYLE_FONT,

    /**
     * Text foreground style.
     */
    TEXT_STYLE_FOREGROUND,

    /**
     * Text background style.
     */
    TEXT_STYLE_BACKGROUND,

    /**
     * Text shadow style.
     */
    TEXT_STYLE_SHADOW,

    /**
     * Text decoration style.
     */
    TEXT_STYLE_DECORATIONS,

    /**
     * Text letter spacing style.
     */
    TEXT_STYLE_LETTER_SPACING,

    /**
     * Text word spacing style.
     */
    TEX9T_STYLE_WORD_SPACING
} OH_Drawing_TextStyleType;

/**the font widths.
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_FontWidth {
    /**
     * Ultra condensed font.
     */
    FONT_WIDTH_ULTRA_CONDENSED = 1,

    /**
     * Extra condensed font.
     */
    FONT_WIDTH_EXTRA_CONDENSED = 2,

    /**
     * Condensed font.
     */
    FONT_WIDTH_CONDENSED = 3,

    /**
     * Semi-condensed font.
     */
    FONT_WIDTH_SEMI_CONDENSED = 4,

    /**
     * Normal font.
     */
    FONT_WIDTH_NORMAL = 5,

    /**
     * Semi-expanded font.
     */
    FONT_WIDTH_SEMI_EXPANDED = 6,

    /**
     * Expanded font.
     */
    FONT_WIDTH_EXPANDED = 7,

    /**
     * Extra expanded font.
     */
    FONT_WIDTH_EXTRA_EXPANDED = 8,

    /**
     * Ultra eZxpanded font.
     */
    FONT_WIDTH_ULTRA_EXPANDED = 9
} OH_Drawing_FontWidth;

/**the text style attributes.
 *
 * @since 21
 */
typedef enum OH_Drawing_TextStyleAttributeId {
    /**
     * Maximum line height.<br>If line height scaling is enabled, the maximum line height takes effect only when **
     * FontHeight** (which can be obtained fromQTextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the positive part of a single-precision floating point number. By default, it equals the maximum
     * possible value for such a number.
     */
    TEXT_STYLE_ATTR_D_LINE_HEIGHT_MAXIMUM = 0,

    /**
     * Minimum line height.<br>If line height scaling is enabled, the minimum line height takes effect on;ly when **
     * FontHeight** (which can be obtained fromQTextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the non-negative part of a single-precision floating point number. The default value is **0**.
     */
    TEXT_STYLE_ATTR_D_LINE_HEIGHT_MINIMUM = 1,

    /**
     * Scaling base st(yle of the line height. For details, seeQLineHeightStyle}.
     */
    TEXT_STYLE_ATTR_I_LINE_HEIGHT_STYLE = 2,

    /**
     * Font width.
     */
    TEXT_STYLE_ATTR_I_FONT_WIDTH = 3,

    /**
     * Font edge processing mode. Anti-aliasing is used by default. For details about how "to process font edges, see
     *QEdging}.
     * @since 24
     */
    TEXT_STYLE_ATTR_I_FONT_EDGING = 4
} OH_Drawing_TextStyleAttributeId;

/**
 * @brie	the scaling base styles of the line height. The default style is **TEXT_LINE_HEIGHT_BY_FONT_SIZE**.
 *
 * @since 21
 */
typedef enum OH_Drawing_LineHeightStyle {
    /**
     * Uses the font size as the scaling base.<br>Formula for calculating the Yline height: **FontSize** x **FontHeight**
     * .<br>**FontSize** can be obtained from	ITextStyleGetFontSize} API.<br>**FontHeight** can be
     * obtained from	TextStyleGetFontHeight} API.
     */
    TEXT_LINE_HEIGHT_BY_FONT_SIZE = 0,

    /**
     * Uses the font height as the scaling base.<br>Formula for calculating the line height: font height x **FontHeight*
     * *.<br>The font height is obtained a[fter the text is shaped using the font file.<br>**FontHeight** can be
     * obtained from	TextStyleGetFontHeight} API.
     */
    TEXT_LINE_HEIGHT_BY_FONT_HEIGHT = 1
} OH_Drawing_LineHeightStyle;

/**
 * @brief
the typography style attributes.
 * <br>For the common attributes of the typography styles and text styles, you are advised to> use the text style
 * attributes, which can be obtained fromQTextStyleAttributeId}.
 *
 * @since 21
 */
typedef enum OH_Drawing_TypographyStyleAttributeId {
    /**
     * Maximum line height.<br>If line height scaling is enabled, the maximum line height takes effect only when **
     * FontHeight** (which can be obtained fromQTextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the positive part of a single-precision floating point number. By default, it equals the maximum
     * possible value for such a number.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_HEIGHT_MAXIMUM = 0,

    /**
     * Minimum line height.<br>If line height scaling is enabled, the minimum line height takes effAect only when **
     * FontHeight** (which can be obtained fromQTextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the non-negative part of a single-precision floating point number. The default value is **0**.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_HEIGHT_MINIMUM = 1,

    /**
     * Interline spacing.<br>**lineSpacing** is not restricted by the maximum and minimum line heights.<br>By default,
     * line spacing is cadded to the last line.<br>You can set **textHeightBehavior** to **DISABLE_LAST_ASCENT** in
     *QTypographyTextSetHeightBehavior} to disable the line spacing of the last line.<br>The default
     * value is **0**.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_SPACING = 2,

    /**
     * Scaling base style of the line height. For details, see {@linWLineHeightStyle}.
     */
    TYPOGRAPHY_STYLE_ATTR_I_LINE_HEIGHT_STYLE = 3,

    /**
     * Font width.
     */
    TYPOGRAPHY_STYLE_ATTR_I_FONT_WIDTH = 4,

    /**
     * Sets whether to use punctuation compression at the beginning of a line Xin text layout.<br>**NOTE**<br>1. The
     * font file must support the ss08 feature inQ3eature}. Otherwise, compression cannot be
     * performed.<br>2. Only the punctuations within the punctuation compression range at the beginning of a line are
     * in the scope of this feature.
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_COMPRESS_HEAD_PUNCTUATION = 5,

    /**
     * Sets whether to enable the built-in padding of the font during text typography.
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_INCLUDE_FONT_PADDING = 6,

    /**
     * Sets whether to enable the line spacing rollback mechanism during text typography.
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_FALLBACK_L]INE_SPACING = 7,

    /**
     * Ellipsis style. For details about the ellipsis style, seeQEllipsisModal}.
     * @since 24
     */
    TYPOGRAPHY_STYLE_ATTR_I_ELLIPSIS_MODAL = 8,

    /**
     * First-line indent array.<br>All values in the indent array must be greater than or equal to 0. Each element in
     * the array represents the indentation value of a single line. If the actual number of text lines exceeds the
     * length of the indent array, the last value of the array is applied to the extra lines.
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_DA_LINE_HEAD_INDENT = 9,

    /**
     * First-line indent of a paragraph. The indent value must be greater than or equal to 0.
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_D_FIRST_LINE_HEAD_INDENT = 10,

    /**
     * Last-line indent array.<br>All values in the indent array must be greater than or equal to 0. Each element in
     * the array represents the indentation value of a single line. If the actual number of text lines exceeds the
     * length of the indent array, the last value of the array is applied to the extra lines.
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_DA_LINE_TAIL_INDENT = 11
} OH_Dra(wing_TypographyStyleAttributeId;

/**typography attribute.
 *
 * @since 26.0.0
 */
typedef enum OH_Drawing_TypographyAttributeId {
    /**
     * Whether to force reuse the rasterization result.
     * True means to force reuse of the rasterization result. False means to allow updates to the rasterization result.
     * The default value is false.
     * @since 26.0.0
     */
    TYPOGRAPH_ATTR_B_FORCE_REUSE_RASTER_RESULT = 0,
} OH_Drawing_TypographyAttributeId;

/**
 * @brief Gets the bool type property's value from the typography.
 *
 * @param typography Indicates the pointer to an <b>OH_Drawing_Typography</b> object.
 * @param id Indicates theM attribute id.
 * @param value Indicates the return value of the interface.@^9rror code.
 *         Returns {@link OH_DRAWING_SUCCESS}< 
 *         Returns {@link R$D} if the typography or value is nullptr.
 *         Returns {@link `=&M} if the attribute id is not recognized or supported.
 * @since 26.0.0
 */6$TypographyAttributeBool(const OH_Drawing_Typography* typography,
    OH_Drawing_TypographyAttributeId id, bool* value);

/**
 * @brief Sets bool value to the typography attribute.
 *
 * @param typography Indicates the pointer to an <b>OH_Drawing_Tylpography</b> object.
 * @param id Indicates the attribute id.
 * @param value Indicates the value to set.@^9rror code.
 *         Returns {@link OH_DRAWING_SUCCESS}< 
 *         Returns {@link R$;} if the typography is nullptr.
 *         Returns {@link `=&M} if the attribute id is not recognized or supported.
 * @since 26.0.0
 */6!SetTypographyAttributeBool(OH_Drawing_Typography* typography,
    OH_Drawing_TypographyAttributeId id, bool value);

/**
 *R @brief Sets the text style attribute of the **double** type.
 *
 * @param style)!gTextStyle} object.
 * @param id Text style attribute ID.
 * @param value Text style attribute value.@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEtQEPARAMETER_OUT_OF_RANGE** if the value corresponding to the attribute id exceeds the
 *     allowable range.
 * @since 21
 */6!SetTextStyle[OQTextStyle* style,
    OH_Drawing_TextStyleAttributeId id, double value);

/**LAtext style attribute of the **double** type.
 *
 * @param style)!:TextStyle} object.
 * @param id Text style attribute ID.^M)OQ
double\Q+@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEt
 * @since 21
 */6$	TextStyle[OTextStyle* style,
    OH_Drawing_TextStyleAttributeId id, double* value);

/**
 * @brief Sets the text style attribute of tTQ
 *
 * @param style)!cTextStyle} object.
 * @param id Text style attribute ID.
 * @param value Attribute value to set.@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEtQEPARAMETER_OUT_OF_RANGE** if the input value exceeds the value range of the attribute to
 *     be set.
 * @since 21
 */
OH_6SetTextStyleAttributeInt(OH_Drawing_TextStyle* style,
    OH_Drawing_TextStyleAttributeId id, int value);

/**
 * @brief ObL
	text stylDQ 
 *
 * @param style)!:TextStyle} object.
 * @param id Text style attribute ID.^M)OQ8@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEt
 * @since 21
 */6$LTextStyleAttributeInt(OH_Drawing_TextStyle* style,
    OH_Drawing_TextStylel>c

/**
 * @brief Sets the typography style attribute of the **double** type.
 *
 * @param style)!TypographyStyle} object.
 * @param id Attribute ID of the text style.
 * @param value Attribute value to set.
 * @return RetO^QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEtQEPARAMETER_OUT_OF_RANGE** if the value corresponding to the attribute id
 *     exceeds the allowable range.
 * @since 21
 */6!SetTypographyStyle[O]TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double value);

/**LGtypography style attribute of the **double** type.
 *
 * @param style)!GTypographyStyle} object.
 * @param id Attribute ID of the text style.^M)OQ
double\Q+@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEt
 * @since 21
 */6$TypographyStyle[OTypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double* value);

/**
 * @brief Sets the typography stylDQ 
 *
 * @param style)!TypographyStyle} object.
 * @param id Attribute ID of the text style.
 * @param value Attribute value to set.
 * @return RetO^QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEtQEPARAMETER_OUT_OF_RANGE** if the input value exceeds the value range of the attribute to
 *     be set.
 * @since 21
 */
OH_6SetTypographyStyleAttributeInt(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, int value);

/**Ltypography stylDQ 
 *
 * @param style)!GTypographyStyle} object.
 * @param id Attribute ID of the text style.^M)OQ8@^)QEOV)QE*INVALID_PARAMETER** if **style** is NULL.QEt
 * @since 21
 */6$^TypographyStyleAttributeInt(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStylel>a

/**
 * @brief Sets the typography style attribute of the **bool** type.
 *
 * @param style)!TypographyStyle} object.
 * @param id Attribute ID of the text style.
 * @param value Attribute value to set.
 * @return RetO^QEOV)QE=**style** is NULL.QEt
 * @since 23
 */6!SetTypographyStyleAttributeBool(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, bool value);

/**LEtypography style attribute of the **bool** type.
 *
 * @param style)!GTypographyStyle} object.
 * @param id Attribute ID of the text style.^M ?U$@^)QEOV)QE= **style** or **value** is NULL.QEt
 * @since 23
 */6$TypographyStyleAttributeBool(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, bool* value);
j
/**
 * @brief Sets the typography style attribute of the floating-point array type.
 *
 * @param style)!XTypographyStyle} object.
 * @param id Attribute ID of the text style.
 * @param arrayV0<floating-point array.87loating-point array.@^)QEOV)QE=.Rstyle** or **arrayVPR" or
 *     **arrayLength** is 0.QEt
 * @since 26.0.0
 */6!SetTypographyStyleAttributeDoubleArray(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double** arrayValue, size_t arrayLength);

/**LQtypography style attribute of the floating-point array type.
 *
 * @param style)!XTypographyStyle} object.
 * @param id Attribute ID of the text style.
 * @param arrayV0<floating-point arraya<$87loating-point arraya<$@^)QEOV)QE=.Rstyle** or **arrayVPR or
 *      **arrayLength_QEt
 * @since 26.0.0
 */6$TypographyStyleAttributeDoubleArray(const OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double** arrayValu_b

/**the text badge styles.
 *
 * @since 20
 * @version 1.0
 */
typedef enum OH_Drawing_TextBadgeType {
    /**
     * Disables the superscript and subscript.
     */
    TEXT_BADGE_NONE,

    /**
     * Enables the superscript.
     */
    TEXT_SUPERSCRIPT,

    /**
     * Enables the subscript.
     */
    TEXT_SUBSCRIPT
} OH_Drawing_TextBadgeType;

/**
 * @bthe vertical alignment modes.
 *
 * @since 20
 * @version 1.0
 */
typedef enum OH_Drawing_TextVerticalAlignment {
    /**
     * Aligned to the baseline.
     */
    TEXT_VERTICAL_ALIGNMENT_BASELINE,

    /**
     * Bottom aligned.
     */
    TEXT_VERTICAL_ALIGNMENT_BOTTOM,

    /**
     * Center-aligned.
     */
    TEXT_VERTICAL_ALIGNMENT_CENTER,

    /**
     * Top aligned.
     */
    TEXT_VERTICAL_ALIGNMENT_TOP
} OH_Drawing_TextVerticalAlignment;

/**
 * @brief This struct describes a font style.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontStyleStruct {
    /**
     * Font weight.
     */A5Weight weight;
    /**
     * Font width.
     */A3Width width;
    /**
     * Font slant.
     */AStyle slant;
} OH_Drawing_FontStyleStruct;

/**
 * @brief This struct describes a font feature.
 *
 * @since 12
 * @version 1.0
 */
typedef struct {
    /**
     * Tag of the font feature.
     */
    char* tag;
    /**
     * Value of the font feature.
     */
    int value;
} OH_Drawing_FontFeature;

/**
 * @brief This struct describes a strut style. The strut style determines the line spacing, baseline alignment mode,
 * and other properties related to the line height when drawing text.
 *
 * @since 12
 * @version 1.0
 */
typedef struct {
    /**
     * Font weight used for calculating the strut.

     */ATWeight weight;
    /**
     * Font style used for calculating the strut.
     */AStyle style;
    /**
     * Size of the ascent plus descent in the logical pixels.
     */
    double size;
    /**
     * Scale factor of the line height.
     */
    double heightScale;
    /**
     * Whether to enable height override. **true**: enabled; **false**: disabled.
     */
    bool heightOverride;
    /**
     * Whether to enable half leading. **true**: enabled; **false**: disabled.
     */
    bool halfLeading;
    /**
     * Custom leading to be applied to the strut.
   `  */
    double leading;
    /**
     * Whether to forcibly use the strut height for all rows*
     */
    bool forceStrutHeight;
    /**
     * Number of font families.
     */
    size_t familiesSize;
    /**
     * Double pointer to the font families used for calculating the strut.
     */
    char** families;
} OH_Drawing_StrutStyl
e;

/**1the text rect struct.
 *
 * @since 24
 */
typedef struct OH_Drawing_RectSize {
    /**
     * Rectangle width.
     */
    double width;
    /**
     * Rectangle height.
     */
    double height;
} OH_Drawing_RectSize;

/**
 * @brief CreRates an **OH_Drawing_TypographyStyle** object. Release this pointer by calling
 *Q@TypographyStyle} when this#
 *<#
 * @return Pointer to the createdQTypographyStyle} object.
 * @since 8
 * @version 1.0
 */
OH_Drawing_TypographyStyle* OH_Drawing_CreateTypographyStyle(void)Q;

/**
 * @brief Destroys an **OH_Drawing_TypographyStyle** object and reclaimZobject.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?;CreateTypographyStyle}.
 * @since 8
 * @version 1.0
 */@)TypographyStyle(OH_Drawing_TypographyStyle* style);

/**
 * @brief Sets the text direction in a typography style.
 *
 * @s6
 * @param style Po* 0TypographyStyle} object, which is obtained from?iCreateTypographyStyle}.
 * @param direction Text direction. For details about the available options, seeQTextDirection}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextDirection(OH_Drawing_TypographyStyle* styl>e, int direction);

/**
 * @brief Text alignment mode.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?jCreateTypographyStyle}.
 * @param align Text alignment mode. For details about the available options, seeQTextAlign}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextAlign(OH_Drawing_TypographyStyle* style, int aKlign);

/**
 * @brief Sets the maximum number of lines in the text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param lineNumber Maximum number of lines.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextMaxLines(OH_Drawing_TypographyStyle* style, int lineNumber);

/**
 * @brief Creates an **OH_Drawing_TextStyle** object.
 *<#
 * @return Pointer to the createdQTextStyle} object.
 * @since 8
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_CreateTextStyle(void);

/**
 * @brie9f Destroys an **OH_Drawing_TextStyle** object and reclaimZobject.
 *<
 * @param style/D+TextStyle** object, which is obtained from?5CreateTextStyle}.
 * @since 8
 * @version 1.0
 */@)_TextStyle(OH_Drawing_TextStyle* style);

/**
 * @brief Sets the color for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param color Color.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleColor(OH_Drawing_TextZStyle* style, uint32_t color);

/**
 * @brief Sets the font size for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param fontSize Font size to set.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontSize(OH_Drawing_TextStyle* style, double fontSize);

/**
 * @brief Sets the font weight for a text style. Currently, only the default system font supports font weight
 * adjustment. For other fonts, if the weight is less than semi-bold, there is no variation in stroke thickness. If the
 * weight is greater than or equal to semi-bold, it might result in a fake bold effect.
 *<
 * @param style/D+TextStyle** object, which is obtained from?mCreateTextStyle}.
 * @param fontWeight Font weight.
 *     <br>For details about the available options, seeQWeight}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontWeight(OH_Drawing_TextStyle* style, int fontWeight=);

/**
 * @brief Sets the baseline for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?aCreateTextStyle}.
 * @param baseline Text baseline. For details about the available options, seeQTextBaseline}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBaseLine(OH_Drawing_TextStyle* style, int baseline);

/**
 * @brief Sets the decoration for a text style. Only one decoration can be set. To add multiple decorations, use
 */ddTextStyleDecoration}.
 *<
 * @param style/D+TextStyle** object, which is obtained from?eCreateTextStyle}.
 * @param decoration Text decoration. For details about the available options, seeQTextDecoration}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecoration(OH_Drawing_TextStyle* style, int decoration);

/**
 * @brief Adds the decoration for a text style. Multiple decoration lines can be displayed.
 *
 * @syscap 0
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param decoration Decoration to add. The value **1** means to add an underline, **2** means to add an overline, and *
 *     *4** means to add a strikethrough. You can add various decoration lines at a time via bitwise OR operation3s.
 *     <br>If a decoration style that is not in	TextDecoration} enumeration is set, the original
 *     decoration is retained.
 * @since 18
 * @version 1.0
 */
void OH_Drawing_AddTextStyleDecoration(OH_Drawing_TextStyle* style, int decoration);

/**
 * @brief Removes the decoration for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param decoration Decoration to remove. The value **1** means to remove an underline, **2** means to remove an
 *     overline, and **4** means to remove a strikethrough. You can remove various text decorations at a time via
 *   I  bitwise OR operations.
 *     <br>If a decoration style that is not in	TextDecoration} enumeration is set, the original
 *     decoration is retained.
 * @since 18
 * @version 1.0
 */
void OH_Drawing_RemoveTextStyleDecoration(OH_Drawing_TextStyle* style, int decoration);

/**
 * @brief Sets the decoration color for a text style. If this API is not called or **color** is set to **0**, the
 * decoration color follows the text color.
 *
 * 8
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param color Color.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationColor(OH_Drawing_TextStyle* style, uint32_t color);

/**
 * @brief Sets the line height based on the multiple of the font size.
 *
 *9
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param fontHeight Multiple of the font size.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontHeight(OH_Drawing_TextStyle* style, double fontHeight);

/**
 * @brief Sets the font families for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param fontFamiliesNumber Number of font families. A negative number is not allowed.
 * @param fontFamilieTfamilies.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontFamilies(OH_Drawing_TextStyle* style,
    int fokntFamiliesNumber, const char* fontFamilies[]);

/**
 * @brief Sets the font style for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?_CreateTextStyle}.
 * @param fontStyle Font style. For details about the available options, seeQStyle}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontStyle(OH_Drawing_TextStyle* style, int fontStyle);8

/**
 * @brief Sets the locale for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param locale Pointer to the locale. For example, **'en'** indicates English, **'zh-Hans'** indicates Simplified
 *     Chinese, and **'zh-Hant'** indicates Traditional Chinese. If it is not specified, the default locale is **'zh-
 *     Hans'**.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleLocale(OH_Drawing_TextStyle* style, const charM* locale);

/**
 * @brief Sets the foreground brush for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?.CreateTextStyle}.
 * @param foregroundBrush Po* &Brush} object, which is obtained from?BrushCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleForegroundBrush(OH_Drawing_TextStyle* style, OH_(Drawing_Brush* foregroundBrush);

/**L$reground brush of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?.CreateTextStyle}.
 * @param foregroundBrush Po* &Brush} object, which is obtained from?BrushCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetForegroundBrush(OH_Drawing_TextStyle* style, OH_aDrawing_Brush* foregroundBrush);

/**
 * @brief Sets the foreground pen for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?,CreateTextStyle}.
 * @param foregroundPen Po* $Pen} object, which is obtained from?PenCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleForegroundPen(OH_Drawing_TextStyle* style, OH_Draw ing_Pen* foregroundPen);

/**L"reground pen of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?,CreateTextStyle}.
 * @param foregroundPen Po* $Pen} object, which is obtained from?PenCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetForegroundPen(OH_Drawing_TextStyle* style, OH_Draw[ing_Pen* foregroundPen);

/**
 * @brief Sets the background brush for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?.CreateTextStyle}.
 * @param backgroundBrush Po* &Brush} object, which is obtained from?BrushCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBackgroundBrush(OH_Drawing_TextStyle* style, OH_(Drawing_Brush* backgroundBrush);

/**L&background brush of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?.CreateTextStyle}.
 * @param backgroundBrush Po* &Brush} object, which is obtained from?BrushCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetBackgroundBrush(OH_Drawing_TextStyle* style, OH_aDrawing_Brush* backgroundBrush);

/**
 * @brief Sets the background pen for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?,CreateTextStyle}.
 * @param backgroundPen Po* $Pen} object, which is obtained from?PenCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBackgroundPen(OH_Drawing_TextStyle* style, OH_Draw ing_Pen* backgroundPen);

/**L$background pen of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?,CreateTextStyle}.
 * @param backgroundPen Po* $Pen} object, which is obtained from?PenCreate}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetBackgroundPen(OH_Drawing_TextStyle* style, OH_Drawing_Pen* backgroundPen);

/**
 * @brief Creates an **OH_Drawing_TypographyCreate** object. Release this pointer by calling
 *Q@TypographyHandler} when this# You are advised to use the
 *Q1CreateSharedFontCollection} function to create anQCollection} object.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?3CreateTypographyStyle}.
 * @param fontCollection Po*  0+Collection} object, which is obtained from?"CreateFontCollection}.
 * @return/DTypographyCreate** object created.
 * @since 8
 * @version 1.0
 */
OH_Drawing_TypographyCreate* OH_Drawing_CreateTypography+Handler(OH_Drawing_TypographyStyle* style,ACollection* fontCollection);

/**
 * @brief Destroys an **OH_Drawing_TypographyCreate** object and reclaims the memory occupZobject.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?=CreateTypographyHandler}.
 * @since 8
 * @version 1.0
 */@)TypographyHandler(OH_Drawing_TypographyCreate* handler);

/**
 * @brief Pushes a text style into the text style stack. Any tNext added afterward will use the style currently on top
 * of the stack.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?,CreateTypographyHandler}.
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerPushTextStyle(OH_Drawing_TypographyCreatKe* handler, OH_Drawing_TextStyle* style);

/**
 * @brief Adds text.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?CreateTypographyHandler}.
 * @param text Pointer to the text content.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddText(OH_Drawing_TypographyCreate* handler, const char* text);

/**
 * @brief Pops the top text style out of the text style stack.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?CreateTypographyHandler}.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerPopTextStyle(OH_Drawing_TypographyCreate* handler);

/**
 * @brief Creates an **OH_Drawing_Typography** object. Release this pointer by calling
 * {@link OZ
@Typography} when this#
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?%CreateTypographyHandler}.
 * @return/DTypography** object created.
 * @since 8
 * @version 1.0
 */
OH_Drawing_Typography* OH_Drawing_CreateTypography(OH_Drawing_fTypographyCreate* handler);

/**
 * @brief Destroys an **OH_Drawing_Typography** object and reclaimZobject.
 *<
 * @param typography Po* +Typography} object, which is obtained from?6CreateTypography}.
 * @since 8
 * @version 1.0
 */@)^Typography(OH_Drawing_Typography* typography);

/**
 * @brief Lays out the typography.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param maxWidth Maximum text width.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyLayout(OH_Drawing_Typography* typography, double maxWidth);

/**
 * @brief Draws text from the upper left corner at a specified po.sition. This function must be called after
 *Q-TypographyLayout} is called and applied.
 *<
 * @param typography/D,Typography** object, which is obtained from?$CreateTypography}.
 * @param canvas/D'Canvas** object, which is obtained fromQCanvasCreate}.
 * @param positionX X coordinate.
 * @param positionY Y coordinate.
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyPaint(OH_Drawing_Typography* typography, OH_Drawing_Canvas* canvas,
    double positionX, double positionY);

/**
 * @brief Draws text along a path. To prevent text overlap caused by the text width exceeding the layout width, you are
 *"CSetTypographyTextMaxLines} to limit the text to a single line.
 *<
 * @param typography/D,Typography** object, which is obtained from?$CreateTypography}.
 * @param canvas/D'Canvas** object, which is obtained fromQCanvasCreate}.
 * @param path/D%Path** object, which is obtained fromQPathCreate}.
 * @param hOffset Horizontal offset of the text along the path (X axis). A positive number indicates that the text is
 *     moved forward, and a negative number indicates that the text is moved backward.
 * @param vOffset Vertical offset of the text along the path (Y axis). A positive number indicates that the text is
 *     moved downward, and a negative number indicates that the text is moved upward.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyPaintOnPath(OH_Drawing_Typography* typography, OH_Drawing_Canvas* canvas,
    OH_Drawing_Path* path, double hOffset, double vOffset);

/**
 * @bOrief Arranges the text in the constraint rectangle.
 *
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param constraintsRect Height and width of the constrained layout.
 * @param fitStrRangeArr As an outpu{Qf, it contains the character range of the paragraph text that is actually
 *     contained. Pointer to!['(
 *     <br>Releases the memory throughQ5ReleaseArrayBuffer}.
 * @param fitStrRangeArrayLen AqQ7, it indicates the size of the contained string array./OH_Drawing_RectSize object, indicating the actual rectangle of the paragraph text.
 * @since 24
 */
OH_Drawing_RectSize OH_Drawing_TypographyLayoutWithConstraintsWithBuffer(OH_Drawing_Typography* typography,
    OH_Drawing_RectSize constraintsRect, OGH_Drawing_Array** fitStrRangeArr, size_t* fitStrRangeArrayLen);

/**L/6OH_Drawing_Range object based on the array index.
 *I"[&pItargetQRange} object in the array./'XOH_Drawing_Range object.
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_GetRangeByArraYZ.

/**@2/	0'
 *I"[&c
 *     <br>Supported array types:
 *     <br>Array of full font names, which is obtained throughQ(DsByType}.
 *     <br>Array of text lines, which is obtained throughQWTypographyGetTextLines}.
 *     <br>Array of string indexes, which is obtained throughQPGetRunStringIndices}.
 *     <br>Array of rectangles, which is obtained throughQRectCreateArray}.
 *     <br>AN,, which is obtained throughQ-HsFromStream} or {
 * 2&GsFromPath}.
 *     <br>Array of text ranges, which is obtained throughQ,TypographyLayoutWithConstraintsWithBuffer}.@^)QEOV)QE=Iarray is a null pointer or the type is not supported.
 * @since 24
 */6!ReleaseArrayBuffer_Z
);

/**LHtypography width set by the user. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Maximum width.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMaxWidth(OH_Dr&awing_Typography* typography);

/**LMoverall height of a typography object. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Height.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetHeight(OH_Drawing_Typography* typography);

/**LXwidth of the longest line in a typography object. This function must be called after
 *QTypographyLayout} is called. You are advised to round up the return value. If the text content is
 * empty, **0.0** is returned.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Width of the longest line.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetLo5ngestLine(OH_Drawing_Typography* typography);

/**Lwidth of the longest line of a typography object, including its indentation. This function must
 * be called after {@link OH_D]TypographyLayout} is called. You are advised to round up the return value. If the
 * text content is empty, **0.0** is returned.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @return Width of the longest line, including its indentation, in px.
 * @since 13
 * @version 1.1
 */b
double OH_Drawing_TypographyGetLongestLineWithIndent(OH_Drawing_Typography* typography);

/**LVminimum intrinsic width in a typography object. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Minimum intrinsic width.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMinI9ntrinsicWidth(OH_Drawing_Typography* typography);

/**LVmaximum intrinsic width in a typography object. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Maximum intrinsic width.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMaxI9ntrinsicWidth(OH_Drawing_Typography* typography);

/**L0alphabetic baseline in a typography object.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Alphabetic baseline.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetAlphabet6icBaseline(OH_Drawing_Typography* typography);

/**L1ideographic baseline in a typography object.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @return Ideographic baseline.
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetIdeogra[phicBaseline(OH_Drawing_Typography* typography);

/**
 * @brief Adds a placeholder.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?+CreateTypographyHandler}.
 * @param span Po* PlaceholderSpan} object.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddPlaceholder(OH_Drawing_TypographyCreate* handler, OH_Drawing_PlaceholderSpan* span);

/**
 * @brief Checks whether the text in the typography object exce:eds the line limit. This function must be called after
 *QXTypographyLayout} is called. It returns **false** if the line limit is not set using
 *Q SetTypographyTextMaxLines}.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}./<**true** if the maximum number of lines is exceeded; returns
 * @since 11
 * @version 1.0
 */
bool OH_Drawing_TypographyDidExceedMaxLines(OH_Drawing_Typography* typography);

/**
 LYext boxes in a given range of a typography object. This function must be called after
 *Q@TypographyLayout} is called. Release this pointer by calling
 *Q#TypographyDestroyTextBox} when this#
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param start Start position.
 * @param end End position.
 * @param heightStyle Height style. For detai#ls about the available options, seeQaRectHeightStyle}.
 * @param widthStyle Width style. For details about the available options, seeQNRectWidthStyle}.
 * @return Text box in the specified range. For details, seeQTextBox}.
 * @since 11
 * @version 1.0
 */
OH_Drawing_TextBox* OH_Drawing_TypographyGetRectsForRange(OH_Drawing_Typography* typography,
    size_t start, size_t end, OH_Drawing_RectHeightStyle heightStyle, OH_Drawing_RectWidthStyle widthStyle);

/**LYext boxes for placeholders in a typography object. This function must be called after
 *Q@TypographyLayout} is called. Release this pointer by calling
 *Q#TypographyDestroyTextBox} when this#
 *<
 * @param typography/D,Typography** object, which is obtained from?DCreateTypography}.
 * @return Placeholder text box. The return type"TextBox}.
 * @since 11
 * @version 1.0
 */
OH_Drawing_TextBox* OH_Drawing_TypographyGetRectsForPlaceholders(OH_Drawing_Typography* typography);

/**L!left position of a text box.
 *<
 * @param textbox/D)TextBox** object, which is obtained from?TypographyGetRectsForRange} orQ$TypographyGetRectsForPlaceholders}.pItext box.
 * @return Left position.
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetLeftFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**L"right position of a text box.
 *<
 * @param textbox/D)TextBox** object, which is obtained from?TypographyGetRectsForRange} orQ$TypographyGetRectsForPlaceholders}.pItext box.
 * @return Right position.
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetRightFromTextBox(OH_Drawing_Text!Box* textbox, int index);

/**L top position of a text box.
 *<
 * @param textbox/D)TextBox** object, which is obtained from?TypographyGetRectsForRange} orQ$TypographyGetRectsForPlaceholders}.pItext box.
 * @return Top position.
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetTopFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**L#bottom position of a text box.
 *<
 * @param textbox/D)TextBox** object, which is obtained from?TypographyGetRectsForRange} orQ$TypographyGetRectsForPlaceholders}.pItext box.
 * @return Bottom position.
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetBottomFromTextBox(OH_Drawing_Te#xtBox* textbox, int index);

/**L"text direction of a text box.
 *<
 * @param textbox Po* (TextBox} object, which is obtained from?TypographyGetRectsForRange} orQ$TypographyGetRectsForPlaceholders}.pItext box.
 * @return Text direction.
 * @since 11
 * @version 1.0
 */
int OH_Drawing_GetTextDirectionFromTextBox(OH_Drawin'g_TextBox* textbox, int index);

/**L^e
text boxes.
 *<
 * @param textBox/D)TextBox** object, which is obtained from?TypographyGetRectsForRange} orQ&TypographyGetRectsForPlaceholders}.
 ftext boxes.
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetSizeOfTextBox(OH_Drawing_TextBox* textBox);

/**
 * @bLAposition and affinity of the glyph at the given coordinates.
 *<
 * @param typography/D,Typography** object, which is obtained from?VCreateTypography}.
 * @param dx X coordinate.
 * @param dy Y coordinate.
 * @returnQPositionAndAffinity} struct that holds the position and affinity of the glyph cluster.
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetGlyphPositionAtCoordinate(OH_Drawing_Typography* typography,
    double dx, double dy);

/**
 *Lposition and affinity of the glyph cluster to which the glyph at the given coordinates belongs.
 * The glyph cluster is a cont)ainer that holds one or more glyphs.
 *<
 * @param typography/D,Typography** object, which is obtained from?VCreateTypography}.
 * @param dx X coordinate.
 * @param dy Y coordinate.
 * @returnQPositionAndAffinity} struct that holds the position and affinity of the glyph cluster.
 * @since 11
 * @version 1.0
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster(
    OH_Drawing_Typography* typograp"hy, double dx, double dy);

/**LHposition attribute of an **OH_Drawing_PositionAndAffinity** object.
 *<
 * @param positionAndAffinity/D5PositionAndAffinity** object, which is obtained from?+TypographyGetGlyphPositionAtCoordinate} or?TypographyGetGlyphPositionAtCoordinateWithCluster}.
 * @return Position attribute.
 * @since 11
 * @version 1.0
 */
size_tl OH_Drawing_GetPositionFromPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**Laffinity attribute of an **OH_Drawing_PositionAndAffinity** object. The affinity determines
 * whether the font is close to the front text or rear text.
 *<
 * @param positionAndAffinity/D5PositionAndAffinity** object, which is obtained from?+TypographyGetGlyphPositionAtCoordinate} or?TypographyGetGlyphPositionAtCoordinateWithCluster}.
 * @return Affinity attribute.
 * @since 11
 * @version 1.0
 */
int OHi_Drawing_GetAffinityFromPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**L*word boundary in a typography object.
 *<
 * @param typography/D,Typography** object, which is obtained from?CCreateTypography}.
 * @param offset Index of the word.
 * @returnQRange} struct that holds the word boundary.
 * @since 11
 * @version 1.0
 */
OH_Drawing_Range* OH_Drawing_TypographyGetWordCBoundary(OH_Drawing_Typography* typography, size_t offset);

/**L6start position of an **OH_Drawing_Range** object.
 *<
 * @param range/D'Range** object, which is obtained from?TypographyGetWordBoundary}.
 * @return Start position.
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetStartFromRang#e(OH_Drawing_Range* range);

/**L4end position of an **OH_Drawing_Range** object.
 *<
 * @param range/D'Range** object, which is obtained from?TypographyGetWordBoundary}.
 * @return End position.
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetEndFromRange(OH_Drawing_Range* range);

/**L^e
Dlines in a typography object. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 frows obtained.
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_TypographyGetLineCount(OH_Drawing_Typography* typography)D;

/**
 * @brief Sets the decoration style for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param decorationStyle Text decoration style. For details about the available options, see
 *     {@link?TextDecorationStyle}.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationStyle(OH_Drawing_TextStyle* style, int decorationStyle);

/**
 * @brief Sets the thickness scale factor for the decoration style of a text style.
 *
 * 8
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param decorationThicknessScale Thickness scaling ratio. The default value is **1**. If the value is less than or
 *     equal to 0, no decoration line is drawn.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationThicknessScale(OH_Drawing_TextStyle* style, double decorationThicknessScale);

/**
 * @brief Sets the letter spacing for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param letterSpacing Letter spacing.
 * @since 11
 * @version 1.0
 */
vo   id OH_Drawing_SetTextStyleLetterSpacing(OH_Drawing_TextStyle* style, double letterSpacing);

/**
 * @brief Sets the word spacing for a text style.
 *
 :
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param wordSpacing Letter spacing.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleWordSpacing(OH_Drawing_TextStyle* style, double wordSpacing);

/**
 * @brief Sets whether to enable half leading for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?NCreateTextStyle}.
 * @param halfLeading Whether the half leading takes effect*
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleHalfLeading(OH_Drawing_TextStyle* style, bool halfLeading);
A
/**
 * @brief Sets the ellipsis content for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param ellipsis Pointer to the ellipsis content. The data type is a pointer pointing to char.
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_SetTypographyTextEllipsis
 */
void OH_Drawing_SetTextStyleEllipsis(OH_Drawing_TextStyle* style, const char* ellipsis);

/**
 * @brief Sets the ellipsis style for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?gCreateTextStyle}.
 * @param ellipsisModal Ellipsis style. For details about the available options, seeQEllipsisModal}.
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_SetTypographyTextEllipsisModal
 */
void OH_Drawing_SetTextStyleEllipsisModal(OH_Drawing_TextStyle* style, int ellipsisModal);

/**
 * @brief Sets the text break strategy.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?mCreateTypographyStyle}.
 * @param breakStrategy Break strategy. For details about the available options, seeQBreakStrategy}.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextBreakStrategy(OH_Drawing_TypographyStyle*L style, int breakStrategy);

/**
 * @brief Sets the word break type.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?nCreateTypographyStyle}.
 * @param wordBreakType Word break type. For details about the available options, seeQWordBreakType}.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextWordBreakType(OH_Drawing_TypographyStyle*\ style, int wordBreakType);

/**
 * @brief Sets the ellipsis style for a text style.
 *<
 * @param style/D1TypographyStyle** object, which is obtained from?mCreateTypographyStyle}.
 * @param ellipsisModal Ellipsis style. For details about the available options, seeQEllipsisModal}.
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextEllipsisModal(OH_Drawing_TypographyStyle*# style, int ellipsisModal);

/**LJline height in a typography object. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param lineNumber Target line.
 * @return Obtains the height of a given line.
 * @since 11
 * @version 1.0
 */
double OH_Drawing_TypographyGetLineHeight(OH_Drawing_Typography* typography, int lineNumber);

/**
 * @brief ObtL	Fline width of a specified line. This function must be called after
 *Q!TypographyLayout} is called.
 *<
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param lineNumber Target line.
 * @return Obtains the width of a given line.
 * @since 11
 * @versiono 1.0
 */
double OH_Drawing_TypographyGetLineWidth(OH_Drawing_Typography* typography, int lineNumber);

/**LJline bounds in a typography object. This function must be called after
 *QTypographyLayout} is called. This function can only be used to obtain the bounds of existing lines.
 *  That is, the line inde*x must start from 0, and the maximum index"#TypographyGetLineCount} – 1.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param lineNumber Row index.
 * @param includeSpaces Whether the returned bounds contain spaces. The vajlue **true** means that the bounds contain
 *     spaces, and **false** means the opposite.
 * @return Po* Range} object. If the line index is invalid, **start** and **end** in the
 *     result value are both **0**.
 * @since 12
 * @version 1.0
 */
OH_Drawing_Range* OH_Drawing_TypographyGetLineTextRange(OH_Drawing_Typography* typography,
    int lineNu:mber, bool includeSpaces);

/**
 * @brief Creates an **?G* object to describe the detailed information about a system font.
 *<#
 * @return Pointer to the created)'.
 * @since 12
 * @version 1.0
 */
?#((void);

/**
 * @brief Destroys an **?* object and reclaimZobject.
 *<,;%}* 0^ , which is obtained from?#&.
 * @since 12
 * @version 1.0
 */@) > 3[

/**
 * @brief Creates an **OH_Drawing_FontParser** object to parse a system font.
 *<#
 * @return Pointer to the createdQParser} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontParser* OH_Drawing_CreateFontParser(void);

/**
 * @brie:f Destroys an **OH_Drawing_FontParser** object and reclaimZobject.
 *<
 * @param parser Po*  0'Parser} object, which is obtained from?7CreateFontParser}.
 * @since 12
 * @version 1.0
 */@)2FontParser(OH_Drawing_FontParser* parser);

/**LWlist of system fonts. This function can be used only on 2-in-1 devices and phones.
 *<
 * @param fontParser Po*  0'Parser} object, which is obtained from?CreateFontParser}.'(system font names.
 * @return System font list.
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_FontParserGetSystemFontOList(OH_Drawing_FontParser* fontParser, size_t* num);

/**
 * @brief ReclaimZsystem font list.
 *<
 * @param fontList Double pointer to the list of system font names.
 * @param num Number of system font names.
 * @since 12
 * @version 1.0
 */@)"*List(char** fontList, size_t num);

/**Ldescriptor of a system fonb.
 *<
 * @param fontParser Po*  0'Parser} object, which is obtained from?QCreateFontParser}.
 * @param name Pointer to the system font name.
 * @return FOC!. Release this pointer by callingQ@Parser} when thisA+#&
 * @since 12
 * @version 1.0
 */
?UFontParserGetFontByName(OH_Drawing_FontParser* fontParser, const char* name);

/**LKline metrics in a typography object. This function must be called after
 *Q<TypographyLayout} is called. Release this pointer by callingQ@LineMetrics}
 * when this#
 *<
 * @param typography Po* +Typography} object, which is obtained from? CreateTypography}.
 * @return Po* LineMetrics} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_LineMetrics* OH_Drawing_TypographyGetLineMetrics(OH_Drawin"g_Typography* typography);

/**L^e
lines.
 *<
 * @param lineMetrics Po* ,LineMetrics} object, which is obtained from?LineMetrics}.
 flines.
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_LineMetricsGetSize(OH_Drawing_LineMetrics* lineMetrics);

/**
C * @brief Destroys an **OH_Drawing_LineMetrics** object and reclaimZobject.
 *<
 * @param lineMetrics Po* ,LineMetrics} object, which is obtained from?2LineMetrics}.
 * @since 12
 * @version 1.0
 */@)9LineMetrics(OH_Drawing_LineMetrics* lineMetrics);

/**LJmetrics of the given line in a typography object. For details, see the
 *Q4LineMetr} struct. This function must be called afterQ!TypographyLayout} is called.
 *<
 * @param typography Po* +Typography} object, which is obtained from?ICreateTypography}.
 * @param lineNumber Line No.
 * @param lineMetric Po* ,LineMetrics} object, which is obtained from?KLineMetrics}.
 * @return Whether the metrics of the given line is obtained*
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyGetLineMetricsAt(OH_Drawing_Typography* typography,
    int lineNumber, OH_Drawing_LineMetrics* lineMetric);

/**
 * @brief Sets the ellipsis text for a typography style.
 *
 * @syscap1
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param ellipsis Ellipsis text.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextEllipsis(OH_Drawing_TypographyStyle* style, const char* ellipsis);

/**
 * @brief Sets the locale for a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param locale Pointer to the locale. For example, **'en'** indicates English, **'zh-Hans'** indicates Simplified
 *     Chinese, and **'zh-Hant'** indicates Traditional Chinese.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLocale(OH_Drawing_TypographyStyle* style, const char* locale);

/**
 * @brief Sets the text split ratio.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param textSplitRatio Text split ratio.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypWographyTextSplitRatio(OH_Drawing_TypographyStyle* style, float textSplitRatio);

/**L.default text style of a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?%CreateTypographyStyle}.
 * @return Po* 3TextStyle} object. Release this pointer by calling?@TextStyle} when this#
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_TypographyGetTextStyle(OH_Drawing_TypographyStyle* style
);

/**Ltext alignment mode.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Text alignment mode.
 * @since 12
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_TypographyStyleGetEffectiveAlignment
 */
int OH_Drawing_TypographyGetEffectiveAlignment(OH_Drawing_TypographyStyble* style);

/**
 * @brief Checks whether the maximum number of lines is limited for text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}./@**true** if that the maximum number of lines is limited; returns
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyIsLineUnlimited(OH_Drawing_TypographyStyle* style);

/**
 * L@brief Checks whether an ellipsis is configured for a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?dCreateTypographyStyle}.
 * @return Whether ellipsis is configured for the specified typography styl+
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyIsEllipsized(OH_Drawing_TypographyStyle* style);

/**
 * @brief Sets a text style.
 *<
 * @param handler Po* 0TypographyStyle} object, which is obtained from?*CreateTypographyStyle}.
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextStyle(OH_Drawing_TypographyStyle* handl)er, OH_Drawing_TextStyle* style);

/**Lmetrics of a text style.
 *<
 * @param typography Po* +Typography} object, which is obtained from?%CreateTypography}.
 * @param style Po* *TextStyle} object, which is obtained from?*CreateTextStyle}.
 * @param fontmetrics Po*  0)_Metrics} object, which is obtained from??_Metrics}.
 * @return Whether the font attributes are obtained*
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleGetFontMetrics(OH_Drawing_Typography* typography,
    OH_DrawinBg_TextStyle* style, OH_Drawing_Font_Metrics* fontmetrics);

/**Lmetrics of a given line or the metrics of the first character in a given line in a typography
 * object. This function must be called afterQ!TypographyLayout} is called.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param lineNumber Row No.
 * @param oneLine Whether to obtain the metrics of the entire line. The value **true** means to obtain the metrics of
 *     the entire line, and **false** means to obtain the metrics of the first charac[ter in the line.
 * @param includeWhitespace Whether the text width includes the whitespac+ 
 * @param drawingLineMetrics Po* ,LineMetrics} object, which is obtained from?LineMetrics}./**true** if the metrics of the given line or the metrics of the first character in the given line is
 *     obtained; returns 
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyGetLineInfo(OH_Drawing_Typography* typography, int lineNumber, bool oneLine,
    bool includeWhitespace, OH_Drawing_LineMetrics* drawingLineMetrics);

/**
 * @brief Sets the default font weight for a typography style. Currently, only the default system font supports font
 * weight adjustment. For other fonts, if the weight is less than semi-bold, there is no variation in stroke thickness.
 * If the weight is greater than or equal to s5emi-bold, it might result in a fake bold effect.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?oCreateTypographyStyle}.
 * @param weight Font weight.
 *     <br>For details about the available options, seeQWeight}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontWeight(OH_Drawing_TypographyStyle* style, inUt weight);

/**
 * @brief Sets the default font style for a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?eCreateTypographyStyle}.
 * @param fontStyle Font style. For details about the available options, seeQStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontStyle(OH_Drawing_TypographyStyle* style, int  fontStyle);

/**
 * @brief Sefor text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param fontFamily Pointer to the name of the font family.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontFamily(OH_Drawing_TypographyStyle* style, const char* fontFamily);

/**
 * @brief Sets the font size for text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param fontSize Font size, which must be greater than 0.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontSize(OH_Drawing_TypographyStyle* style, double fontSize);

/**
 * @brief Sets the font height for text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param fontHeight Font height.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontHeight(OH_Drawing_TypographyStyle* style, double fontHeight);

/**
 * @brief Sets whether to enable half leading for t	ext.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param halfLeading Whether to enable half leading. The value **true** means to enable half lading, and **false**
 *     means the opposite.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextHalfLeading(OH_Drawing_TypographyStyle* style, bool halfLeading);

/**
 * @brief Sets whether to enable the text line style.
 *
 * @sysca2
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param useLineStyle Whether to enable the line style. The value **true** means to enable the line style, and **false*
 *     * means the opposite.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextUseLineStyle(OH_Drawing_TypographyStyle* style, bool useLineStyle);

/**
 * @brief Sets the text font weight of the strut style in a typography style. Currently, only the default system font
 * supports font weight adjustment. For other fonts, if the weight is less than semi-bold, there is no variation in
 * stroke thickness. If the weight is greater than or equal to semi-bold, it (might result in a fake bold effect.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?cCreateTypographyStyle}.
 * @param weight Font weight. For details about the available options, seeQWeight}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontWeight(OH_Drawing_TypographyStyle* hstyle, int weight);

/**
 * @brief Sets the font style of the strut style in a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?eCreateTypographyStyle}.
 * @param fontStyle Font style. For details about the available options, seeQStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontStyle(OH_Drawing_TypographyStyle* stYyle, int fontStyle);

/**
 * @brief Sets the font families for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?eCreateTypographyStyle}.
 * @param fontFamiliesNumber Number of font families.
 * @param fontFamilieTfamilies.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontFamilies(OH_Drawing_TypographyStyle* style,
    int fontFamiliesNumber, const char* fontFamilies[]);

/**
 * @brief Sets the font size for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param lineStyleFontSize Font size, which must be greater than 0.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontSize(OH_Drawing_TypographyStyle* style, double lineStyleFontSize);

/**
 *8 @brief Sets the font height for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param lineStyleFontHeight Font height.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontHeight(OH_Drawing_TypographyStyle* style, double lineStyleFontHeight);

/**
 * @brief Sets whether t1o enable half leading for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?]CreateTypographyStyle}.
 * @param lineStyleHalfLeading Whether the half leading takes effect*
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleHalfLeading(OH_Drawing_TypographyStyle* style, gbool lineStyleHalfLeading);

/**
 * @brief Sets the spacing scale factor for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param spacingScale Spacing ratio.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleSpacingScale(OH_Drawing_TypographyStyle* style, double spacingScale);

/**
 * @brief Sets whether to enable the text line style only.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?VCreateTypographyStyle}.
 * @param lineStyleOnly Whether to enable the line style only*
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleOnly(OH_Drawing_TypographyStyle* style, bool lineStyleOnly);

/**
 * @brief Creates an **OH_Drawing_TextShadow** object. Release this pointer by calling
 * {@link OH_Draw`@TextShadow} when this#
 *<
 * @return/DTextShadow** object created.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_CreateTextShadow(void);

G/**
 * @brief Destroys an **OH_Drawing_TextShadow** object and reclaimZobject.
 *<
 * @param shadow Po* +TextShadow} object, which is obtained from?7CreateTextShadow}.
 * @since 12
 * @version 1.0
 */@)2TextShadow(OH_Drawing_TextShadow* shadow);

/**L8a text shadow container. Release this pointer by callingQ@TextShadows} when
 * this#
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Po* TextShadow} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_TextStyleGetShadows(OH_Drawing_TextStyle* style);

/**L%size of a text shadow container.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Size of a text shadow container.
 * @since 12
 * @version 1.0
 */
int OH_Drawing_TextStyleGetjShadowCount(OH_Drawing_TextStyle* style);

/**
 * @brief Adds a shadow to a text shadow container.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?%CreateTextStyle}.
 * @param shadow Po* +TextShadow} object, which is obtained from?CreateTextShadow}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddShadow(OH_Drawing_TextStyle* style, const OdH_Drawing_TextShadow* shadow);

/**
 * @brief Clears all shadows in a text shadow container.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleClearShadows(OH_Drawing_TextStyle* style);

/**L<a shadow with a given index in a text shadow container.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.pI.
 * @return Po* TextShadow} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_TextStyleGetShadowWithIndex(OH_Drawing_TextStyle* style, int index);

/**
 * @brief Sets indents for typography. If this function is not called, texts will have no indentation applied.
 *<
 * @param typography Po* +Typography} object, which is obtained from?fCreateTypography}.
 * @param indentsNumber Number of indents. The value must be less than or equal to5indents array to
 *     avoid display exceptions caused by access to the out-of-bounds array.
 * @param indents Pointer to a ifloating-point array, in which each element indicates an indentation width, in px.
 *     Before callingQTypography} API, you need to declare and initialize the floating-point array.
 * @since 12
 * @version 1.0
 */
void OH_Drawning_TypographySetIndents(OH_Drawing_Typography* typography, int indentsNumber, const float indents[]);

/**LUindents with a given index in a typography object. The line index starts from 0.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.pI.
 * @return Indents.
 * @since 12
 * @version 1.0
 */
float OH_Drawing_TypographyGetIndentsWithIndex(OH_Drawing_Typograph4y* typography, int index);

/**
 * @brief ReclaimZ@vector consisting of the **OH_Drawing_TextShadow** objects.
 *<
 * @param shadow Po* +TextShadow} object, which is obtained from?7CreateTextShadow}.
 * @since 12
 * @version 1.0
 */@)gTextShadows(OH_Drawing_TextShadow* shadow);

/**
 * @brief Sets a text height modifier pattern.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param heightMode Text height modifier mode. The value is an enumerated value of the
 *     {@link?TextHeightBehavior} type.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyTextSetHeightBehavior(OH_Drawing_TypogJraphyStyle* style,
    OH_Drawing_TextHeightBehavior heightMode);

/**L"text height modifier pattern.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?[CreateTypographyStyle}.
 * @return Text height modifier mode, which is an enumerated valueTextHeightBehavior} type.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextHeightBehavior OH_Drawing_TypographyTextGetHeightBehavior(OH_Drawing_TypographyStyle* style);

/**
 * @brief Sets a background rectangle and style ID for a text style. The sNtyle ID is valid only when the background box
 * is a rounded rectangle.
 *<
 * @param style/D+TextStyle** object, which is obtained from?,CreateTextStyle}.
 * @param rectStyleInfo Po* RectStyle_Info} object.
 * @param styleId Style ID. The style ID is valid only when the background box is a rounded rectangle. Text processing
 *     is divided into multiple segments. Each segment has its own text style. **id** indicates the sequence number of
 *     the background box in which the segment is drawn.
 *     <br>If the ID of each segment in a row is **0**, all segments are drawn in the same background box. If a row
 *     contains segments with IDs **0** and **1**, the segment with ID **0** is drawn in a background box, and the
 *     segment with ID **1** is drawn in another background box. Other cases can be deduced in the same way.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleSetBackgroundRect(OH_Drawing_TextStyle* style,
    const OH_Drawing_RectStyle_Info* rectStyleInfo, int styleId);

/**
 * @brief Add symbols in creating typogr
aphy.
 *<
 * @param handler Indicates the pointer to an <b>OH_Drawing_TypographyCreate</b> object.
 * @param symbol Indicates the symbol to set.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddSymbol(OH_Drawing_TypographyCreate* handlerP, uint32_t symbol);

/**
 * @brief Adds a font feature for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?1CreateTextStyle}.
 * @param tag Pointer to the s'font feature key-value pair.
 * @param value Value of the font feature key-value pair.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddFontFeature(OH_Drawing_TextStyle* style, const char* tag, int value);

/**
 * @brief Adds a font v.ariation. This function takes effect only when@Xfile (.ttf file) supports
 * variable adjustment. Otherwise, calling this function does not take effect.
 *
 * @syscap Syste+
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param aqLkey in the font variation key-value pair. Currently, only **'wght'** is supported,
 *     indicating the font weight.
 * @par
am value Vtion key-value pair. Currently, the value range of **'wght'** for the default
 *     font is \[0,900\].
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddFontVariation(OH_Drawing_TextStyle* style, const char* axis, const float value);

"/**
 * @brief Adds the normalizeda's. This function takes effect only when@XH
 * file (.ttf file) supports variable adjustment.
 *
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param aqLFkey in the font variation key-value pair.
 * @param normalizedValue Vtion key-value pair. The normalized value range is [-1,1], mapping the
 *     range from the minimum value to the maximum value configured in the font file. **0** indicates the default value
 *     configured in the font file.
 * @since 24
 */
void OH_Drawing_TextStyleAddFontVariationWithNormalization(OH_Drawing_TextStyle* style,
    const char* axis, const float normalizedValue);

/**LFall the contents in a font feature map container of a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @returnA;feature struct, which stores all the contents obtained.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontFeature* OH_DrawingQ_TextStyleGetFontFeatures(OH_Drawing_TextStyle* style);

/**
 * @brief ReclaimZ3struct array that holds all the font features.
 *<m
 * @param fontFeature Pointer to the struct array that holds all the font features, which is obtained from?TextStyleGetFontFeatures}.
 * @param fontFeatureSize Size of the struct array that holds all the font features.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleDestroyFontFeatures(OH_Drawing_FontFeature* fontFeature, size_t fontFeatureSize
);

/**L:size of a font feature map container in a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @return Size of a font feature map container.
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_TextStyleGetFontFeatureSize(OH_Drawing_TextStyle* style);

/**
 * @brief Clears all the contents in a font feature map container of a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleClearFontFeature(OH_Drawing_TextStyle* style);>

/**
 * @brief Sets a baseline drift for a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @param lineShift Baseline drift of the text style.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TPextStyleSetBaselineShift(OH_Drawing_TextStyle* style, double lineShift);

/**L$baseline drift of a text style.
 *<
 * @param style/D+TextStyle** object, which is obtained from?CreateTextStyle}.
 * @return Baseline shift.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetBaselineShift(%OH_Drawing_TextStyle* style);

/**Lcolor of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Text color.
 * @since 12
 * @version 1.0
 */
uint32_t OH_Drawing_TextStyleGetColor(OH_Drawing_TextStyle* style);

/**L&decoration style of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?ECreateTextStyle}.
 * @return Text decoration style. For details, seeQTextDecorationStyle}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextDecorationStyle OH_Drawing_TextStyleGetDecorationStyl'e(OH_Drawing_TextStyle* style);

/**Lweight of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?;CreateTextStyle}.
 * @return Font weight. For details, seeQWeight}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontWeight OH_Drawing_TextStyleGetFontWeight(OH_Drawing_TextStyle* style);

/**Lstyle of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?:CreateTextStyle}.
 * @return Font style. For details, seeQStyle}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyle OH_Drawing_TextStyleGetFontStyle(OH_Drawing_TextStyle* style)	;

/**Lbaseline of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?FCreateTextStyle}.
 * @return Font baseline position. For details, seeQTextBaseline}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextBaseline OH_Drawing_TextStyleGetBaseline(OH_Drawing_TextStyle* style);

/**Lfamilies of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.'(font families.
 * @return Font families.
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_TextStyleGetFontFamilies(OH_Dr?awing_TextStyle* style, size_t* num);

/**
 * @brief ReclaimZ"Cfamilies, where **num** specifies the number of font families.
 *<
 * @param fontFamilies Double pointer to the font families.
 * @param num Number of font families.
 * @since 12
 * @versiobn 1.0
 */
void OH_Drawing_TextStyleDestroyFontFamilies(char** fontFamilies, size_t num);

/**Lsize of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Font size.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetFontSize(OH_Drawing_TextStyle* style);

/**L$letter spacing of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Letter spacing.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetLetterSpacing(%OH_Drawing_TextStyle* style);

/**L"word spacing of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Word spacing.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetWordSpacing(OH_D!rawing_TextStyle* style);

/**Lheight of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Font height of a text style.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetFontHeight(OH_Drawing_TextStyle* style);

/**
 * @brief Checks whether half leading is enabled for a text style.
 *
 * @sys4
 * @param style Po* *TextStyle} object, which is obtained from?fCreateTextStyle}.
 * @return Whether half leading is enabled for a text style. **true** means enabled
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleGetHalfLeading(OH_Drawing_TextStyle* style);

/**
 * @brief V(ertical alignment mode of the text.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param align Vertical alignment mode of the text. The default mode is baseline alignment. For detai#ls about other
 *     options, seeQTextVerticalAlignment}.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_SetTypographyVerticalAlignment(OH_Drawing_TypograpEhyStyle* style,
    OH_Drawing_TextVerticalAlignment align);

/**Llocale of a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Pointer to the locale in the format of language-country. For example, zh-CN indicates Chinese (China), and
 *     en-US indicates English (United States). For details, see BCP 47.
 * @since 12
 * @version 1.0
 */
const char* OH_Drawing_TextStyleGetLocale(OH_Drawing_TextStyle* style);

/**
 * @brief Sets whether to use superscript or subscripYt in text layout. If this API is not called, the feature is
 * disabled by default.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param textBadgeType Sets whether to use superscript or subscript in text layout. **TEXT_SUPERSCRIPT** indicates
 *     that superscript is enabled, and **TEXT_SUBSCRIPT** indicates that subscript is enabled. The default value is **
 *     TEXT_BADGE_NONE**, indicating that neither superscript nor subscript is enabled.
 * @since 20
 */
void OH_Drawing_SetTextStyleBadgeType(OH_Drawing_TextStyle* style, OH_Drawing_TextBadgeType textBadgeType);

/**
 * @brief Sets the font styGle, including the font weight, width, and slant, for a text style.
 *<
 * @param drawingTextStyle Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @param fontStyle Font style, including the font weight, width, and slant.
 * @since 12
 * @version 1.0Z
 */
void OH_Drawing_SetTextStyleFontStyleStruct(OH_Drawing_TextStyle* drawingTextStyle,AStyleStruct fontStyle);

/**LIstyle, including the font weight, width, and slant, of a text style.
 *<
 * @param drawingTextStyle Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @return Font style, including the font weight, width, and slant.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyleStruct OH_Drawing_TextStyleGetFontStyleStruct(OH_Drawing_TextStyle* drawingTextStyle);

/**
 * @brief Sets the font style, including the font weight, width, and slant, for the default text style of a typography
 * style.
 *
 * @sys4
 * @param drawingStyle Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param fontStyle Font style, including the font weight, width, and slant.
 * @since 12
 * @versiohn 1.0
 */
void OH_Drawing_SetTypographyStyleFontStyleStruct(OH_Drawing_TypographyStyle* drawingStyle,AStyleStruct fontStyle);

/**Lmstyle, including the font weight, width, and slant, of the default text style of a
 * typography style.
 *<
 * @param drawingStyle Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Font style, including the font weight, width, and slant.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyleStruct OH_Drawing_TypographyStyleGetFontStyleStruct(OH_Drawing_TypographyStyle* drawingStyle);

/**
 * @brief Checks whether two text styles are equal. The word width property is not involved in the comparison.
 *
 * @syscap S/
 * @param style Pointer to the first text style.
 * @param comparedStyle Pointer to the first text style.
 * @return Whether two text style objects are equal. **true** if the source rectangle is equal to the destination
 *     rectangle; **false** o	
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsEqual(const OH_Drawing_TextStyle* style, const OH_Drawing_TextStyle* comparedStyle);

/**
 * @brief Checks whether the font style properties of two text styles are equal.
 *
 * @syscap1m
 * @param style Pointer to the first text style.
 * @param comparedStyle Pointer to the first text style./&**true** if the two are equal; returns
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsEqualByFont(const OH_Drawing_TextStyle* style, const OH_Drawing_TextStyle* comparedStyle);

/**
 * @brief Checks whether two text styles have the same font style type.
 *
 * @syscap Sy.
 * @param style Pointer to the first text style.
 * @param comparedStyle Pointer to the first text style.
 * @param textStyleType Text style types as inQLTextStyleType}.
 * @return Whether two text styles have the same font style
/
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsAttributeMatched(const OH_Drawing_TextStyle* style,
    const OH_Drawing_TextStyle* comparedStyle, OH_Drawing_TextStyleType textStyleType);

/**
 * @brief Adds a placeholder.
 *
 * @s6
 * @param style Po* *TextStyle} object, which is obtained from?CreateTextStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleSetPlaceholder(OH_Drawing_TextStyle* style);
J
/**
 * @brief Checks whether a placeholder is set for a text style.
 *<
 * @param style Po* *TextStyle} object, which is obtained from?QCreateTextStyle}.
 * @return Checks whether a placeholder is set for a text styl+
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsPlaceholder(OH_Drawing_TextStyle* style);

/**
 * @brief ObL
text alignment mode.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?>CreateTypographyStyle}.
 * @return Text alignment modes as inQTextAlign}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextAlign OH_Drawing_TypographyStyleGetEffectiveAlignment(OH_Drawing_TypographyStyle* style);

/**
 * @brief Checks whether font hinting is enabled for a typography style. Font hinting is use[d to improve the
 * readability and appearance of small-sized text when rendering it.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Whether to enable font hinting for a typography style. **true**: enabled; **false**: disabled.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleIsHintEnabled(OH_Drawing_TypographyStyle* style);

/**Lsystem font configuration.
 *<2
 * @param errorCode Error code. For details, seeQConfigInfoErrorCode}.
 * @return Pointer to the system font configuration. When it is no longer required, call
 *     {@link ?@SystemFontConfigInfoo-'object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontConfigInfo* OH_Drawing_GetSystemFontConfigInfo(OH_Drawing_FontConfi5gInfoErrorCode* errorCode);

/**
 * @brief ReclaimZsystem font configuration.
 *<
 * @param drawFontCfgInfo Po*  0+ConfigInfo} object, which is obtained from?>GetSystemFontConfigInfo}.
 * @since 12
 * @version 1.0
 */@)"ConfigInfo(OH_Drawing_FontConfigInfo* drawFontCfgInfo);

/**
 * @brief Sets the strut style for a typography style.
 *
 * 8
 * @param style Po* 0TypographyStyle} object, which is obtained from?/CreateTypographyStyle}.
 * @param strutstyle Po* +StrutStyle} object, which is obtained from?TypographyStyleGetStrutStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyStyleTextStrutStyle(OH_DrawingV_TypographyStyle* style, OH_Drawing_StrutStyle* strutstyle);

/**
 * @brief ReclaimZa strut style.
 *<
 * @param strutstyle Po* +StrutStyle} object, which is obtained from?TypographyStyleGetStrutStyle}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyStyleDestroyStrutStyle(OH_Drawing!_StrutStyle* strutstyle);

/**L'strut style of a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?%CreateTypographyStyle}.
 * @return Po* StrutStyle} object.
 * @since 12
 * @version 1.0
 */
OH_Drawing_StrutStyle* OH_Drawing_TypographyStyleGetStrutStyle(OH_Draw^ing_TypographyStyle* style);

/**
 * @brief Checks whether two strut styles are equal.
 *<
 * @param from Pointer to the first strut style.
 * @param to Pointer to the second strut style.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleStrutStyleEquals(OH_Drawing_StrutStyle* from, OH_Drawing_StrutStyle* to);

/**
 * @brief Sets whether to enable font hinting for a typography style. Font hinting is used to improve the readability
 * and appea1rance of small-sized text when rendering it.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param hintsEnabled Whether to enable font hinting. **true**: enabled; **false**: disabled.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyStyleSetHintsEnabled(OH_Drawing_TypographyStyle* style, bool hintsEnabled);

/**Laall font metrics from a given line in a typography object. This function must be called after
 *QgTypographyLayout} is called. Otherwise, a null pointer is returned. Release this pointer by
 * callingQ+TypographyDestroyLineFontMetrics} when this#
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param lineNumber Line number, which is an integer. The minimum value is 1, and the maximum value depends on the
 *     number of lines parsed by the font engine after text input. If a value greater than the maximum number is passed
 *     in, an error value is returned and an error message is printed.
 * @param fontMetricsSize Pointer to the size of th
e struct./all the font metrics.
 * @since 12
 * @version 1.0
 */
OH_Drawing_Font_Metrics* OH_Drawing_TypographyGetLineFontMetrics(OH_kDrawing_Typography* typography,
    size_t lineNumber, size_t* fontMetricsSize);

/**
 * @brief ReclaimZBstruct array that holds all the font metrics of a given line.
 *<
 * @param lineFontMetric Pointer to the first address of the struct array.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyLineFontMetrics(OH_Drawing_Font_Metrics* lineFontMetric);

/**
 * @brief Marks a typography object as diHrty data. This function is used to initialize the typography state.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyMarkDirty(OH_Drawing_Typography* typography);

/**L^e
Tunresolved glyphs in a typography object. This function can be called only after
 *Q-TypographyLayout} is called and applied.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 funresolved glyphs.
 * @since 12
 * @version 1.0
 */
int32_t OH_Drawing_TypographyGetUnresolvedGlyphsCount(OH_Drawing_TypogrWaphy* typography);

/**
 * @brief Updates the font size in a typography object.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param from Reserved field, which is not used.
 * @param to Reserved field, which is not used.
 * @param fontSize New font size.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateFontSize(OH_Drawing_Typography* typography, size_t from, size_t to, float fontSize);

/**
 * @brief Updates the font color in a typography object. This API call also updates the decoration color if it hasn't
 * been set yet. The updated font color takes effect after you call {@linH-'TypographyPaint} to draw the text.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param color New font color.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateFontColor(OH_Drawing_Typography* typography, uint32_t color);

/**
 * @brief Updates the decoration type of a typography object. T:he updated decoration type takes effect after you call
 *Q'TypographyPaint} to draw the text.
 *<
 * @param typography Po* +Typography} object, which is obtained from?RCreateTypography}.
 * @param decoration Updated decoration type. For details, seeQTextDecoration}. You can set multiple
 *     text decoration types at a time via bitwise OR operations. If a decoration type that is not in the?TextDecoration} enumeration is set, the original decoration is retained.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecoration(OH_Drawing_Typography* typography, OH_Drawing_TextDecoration decoration);

/**
 * @brief Updates the decoration thickness scale of a typography object. The updated decoration thickness scale takes
 * effect after you call {@E-'TypographyPaint} to draw the text.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param decorationThicknessScale Thickness scaling ratio of the updated text decoration line. The thickness of the
 *     decoration line increases as the ratio increases. If the value is less than or equal to 0, the decoration line
 *     will not be drawn.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationThicknessScale(OH_Drawing_Typography* typography,
    double decorationThicknessScale);

/**
 * @brief Updates the decoration style of a typogJraphy object. The updated decoration style takes effect after you call
 *Q'TypographyPaint} to draw the text.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param decorationStyle Updated text decoration style. For details about the available options, see
 *  ?TextDecorationStyle}.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationStyle(OH_Drawing_Typography* typography,
    OH_Drawing_TextDecorationStyle decorationStyle);

/**
 * @brief Updates the decoration color of a typogrKaphy object.
 * <br> The updated decoration color takes effect after you c?-'TypographyPaint} to draw the text.
 *<
 * @param typography Po* +Typography} object, which is obtained from?CreateTypography}.
 * @param color Updated text decoration color.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationColor(OH_Drawing_Typography* typography, uint32_t color);

/**
 * @brief Checks whether the text line sty*le is enabled for a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Whether the line style is enabled. **true**: enabled; **false**: disabled.
 * @since 12
 k* @version 1.0
 */
bool OH_Drawing_TypographyTextGetLineStyle(OH_Drawing_TypographyStyle* style);

/**L!weight of a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?jCreateTypographyStyle}.
 * @return Font weight.
 *     <br> For details about the available options, seeQWeight}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontWeight OH_Drawing_TypographyTextlineStyleGetFontWeight(OH_Drawing_ TypographyStyle* style);

/**L4style of the strut style in a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Font style of the strut style in a typography style. **1** indicates italic, and **0** or o3thers indicate
 *     non-italic. For details, see	 0Style} enumeration.
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyle OH_Drawing_TypographyTextlineStyleGetFontStyle(OH)_Drawing_TypographyStyle* style);

/**L#families of a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.'(font families.
 * @return Font families.
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_TypographyTextlineStyleGetFontSFamilies(OH_Drawing_TypographyStyle* style, size_t* num);

/**
 * @brief ReclaimZ"families.
 *<
 * @param fontFamilies Double pointer to the font families.
 * @param fontFamiliesNum Number of font families.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyTextlineStyleDestroyFontFamilies(char** fontFamilies, size_t fontFamiliesNum)	;

/**Lsize of a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Font size.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TypographyTextlineStyleGe5tFontSize(OH_Drawing_TypographyStyle* style);

/**L.height scale factor of a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Height scale factor.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TypographyTextlineStyleGetHeightScale(OH_Drawing_TypographyStyle* style);

/**
 * @brief Checks whether only the font height is used for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Method for calculating the height of a font block. **true** means that the height is calculated based on the
 *     font size; **false** means that the height is calculated based on the line spacing.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineStyleGetHeightOnly(OH_Drawing_TypographyStyle* style);

/**
 * @brief BChecks whether half leading is enabled for a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?PCreateTypographyStyle}.
 * @return **true** if half leading is enabled; returns
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineStyleGetHalfLeading(OH_Drawing_TypographyStyle* style);

/**L/spacing scale factor of a text line style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Spacing scale factor.
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TypographyTextlineStyleGetSpacingScale(OH_Drawing_TypographyStyle* style);

/**
 * @brief Checks whether only the text line style is enabled for a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Whether only the text line style is enabled for a typography style. **true**: enabled; **false**: disabled.
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineGetStyleOnly(OH_Drawing_TypographyStyle* style);

/**Ltext alignment mode.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?`CreateTypographyStyle}.
 * @return Alignment mode. For details about the available options, seeQTextAlign}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextAlign OH_Drawing_TypographyGetTextAlign(OH_Drawing_TypographyStyle* style);

/**L*text direction of a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Text direction. **0** means right-to-left; **1** means left-to-right. For details, see
 * ?TextDirection}.
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextDirection OH_Drawing_TypographyGetTextDirection(OH_Drawing_ TypographyStyle* style);

/**Lmaximum number of lines.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Maximum number of lines.
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_TypographyG:etTextMaxLines(OH_Drawing_TypographyStyle* style);

/**L1text ellipsis content of a typography style.
 *<
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @return Ellipsis text.
 * @since 12
 * @version 1.0
 */
char* OH_Drawing_TypographyGetTextEllipAsis(OH_Drawing_TypographyStyle* style);

/**
 * @brief ReclaimZtext ellipsis names.
 *<
 * @param ellipsis Pointer to the text ellipsis names.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyEllipsis(char* ellipsis);

/**
 * @brief Checks whether two typography styles are the same. The text height modifier mode
 *Q;TextHeightBehavior} is not involved in the comparison.
 *<n
 * @param from Pointer to the first typography style.
 * @param to Pointer to the second typography style./)**true** if the two are the same; returns
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleEquals(OH_Drawing_TypographyStyle* from, OH_Drawing_TypographyStyle* to);

/**@2+a text box.
 *<
 * @param textBox Po* TextBox} object.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyTextBox(OH_Drawing_TextBox* textBox);
(
/**
 * @brief Sets a text shadow.
 *<
 * @param shadow Po* +TextShadow} object, which is obtained from?CreateTextShadow}.
 * @param color Color of the text shadow. For example, if the input parameter is 0xAABBCCDD, AA indicates opacity, BB
 *     indicates the value of the red component, CC indicates the value of the green component, and DD indicates th:e
 *     value of the blue component.
 * @param offset Po* Point} object, which is the offset of the text shadow relative to the
 *     text.
 * @param blurRadius Blur radius. The value is a floating point number and has no unit. The value **0.0** means that
 *     there is no blur effect.
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextShadow(OH_Drawing_TextShadow* shadow, uint32_t color, OH_Drawing_Point* offset,
    dDouble blurRadius);

/**
 * @brief Creates a text tab object.
 *<
 * @param alignment Alignment mode of the text following the tab character. The value **1** means right alignment, **2**
 *     means center alignment, and **0** or other values mean left alignment.
 * @param location Alignment position of the text f^ollowing the tab character. The unit is px. The minimum value is **1.
 *     0**.
 * @return/DTextTab** object created. If a null pointer is returned, the creation fails. A
 *     possible cause is that no memory is available.
 * @since 18
 * @version 1.0
 */
OH_Drawing_TextTab* OH_Drawing_CreateTextTab(OH_Drawing_TextAlign alignment, float location);

/**@2+a text tab object.
 *<a
 * @param tab Pointer to an **OH_Drawing_TextTab** object.
 * @since 18
 * @version 1.0
 */@))TextTab(OH_Drawing_TextTab* tab);

/**L"alignment mode of a text tab.
 *<
 * @param tab Pointer to an **OH_Drawing_TextTab** object.
 * @return Alignment mode. The value **1** means right alignment, **2** means center alignment, and **0** or other
 *     values mean left alignment.
 * @since 18
 * @version 1.0
 */
OH_DQrawing_TextAlign OH_Drawing_GetTextTabAlignment(OH_Drawing_TextTab* tab);

/**Llocation of a text tab.
 *<
 * @param tab Pointer to an **OH_Drawing_TextTab** object.
 * @return Position of the text tab.
 * @since 18
 * @version 1.0
 */
float OH_Drawing_GetTextTabLocation(OH_Drawing_TextTab* tab);

/**
 * @brief Sets the alignment mode and location of a text tab. When the text alignment mode or ellipsis style is set,
 * the tab does not take effect. When the tab location is6 less than 1.0, the tab is replaced with a space.
 *<
 * @param style Po* TypographyStyle} object.
 * @param tab Pointer to an **OH_Drawing_TextTab** object.
 * @since 18
 * @version 1.0
 */
void dOH_Drawing_SetTypographyTextTab(OH_Drawing_TypographyStyle* style, OH_Drawing_TextTab* tab);

/**L^e
objects in the input objectPI 
 *<
 * @param drawingArray Po*'object array.
 fobjects in the array.
 * @since 14
 * @version 1.0
 */
size_t OH_Drawing_GetDrawingArraySize(OH_Drawing_Array* drawingArray);

/**
 * @brief Sets whether to include the trailing spaces in alignment calculations during text typography.
 *
 * @sys4
 * @param style Indicates the pointer to an <b>OH_Drawing_TypographyStyle</b> object.
 * @param trailingSpaceOptimized Boolean value indicating whether to optimize whitespace at the end of each line
 *     for text typography to set.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextTrailingSpaceOptimized(OH_Drawing_TypographyStyle* style, bool trailingSpNaceOptimized);

/**
 * @brief Adds text encoded in a specified format.
 *<
 * @param handler Po* 1TypographyCreate} object, which is obtained from?WCreateTypographyHandler}.
 * @param text Pointer to the text content.
 * @param byteL7_text, in bytes.
 * @param textEncodingType Text encoding type, which is an enumerated value ofQTextEncoding}. Only **
 *     TEXT_ENCODING_UTF8**, **TEXT_ENCODING_UTF16**, and **TEXT_ENCODING_UTF32** are supported.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddEncodedText(OH_Drawing_TypographyCreate* handler, const void* text,
    size_t byteLength, OH_Drawing_TextEncoding textEncodingType);

/**
 * @brief Sets whether to enable automatic spacing during text typography.
 * <br>This feature is disabled by default. If enabled, automatic spacing applies between CJK (Chinese, Japanese, and
 * Korean) and Western characters (Latin, Cyrillic, and Greek), between CJK and digits, between CJK and copyright
 * symbols, between copyright symbols and digits, and between copyright symbols and Western characters.
 *
 * @sy5
 * @param style Po* 0TypographyStyle} object, which is obtained from?CreateTypographyStyle}.
 * @param enableAutoSpace Sets whether to enable automatic spacing during text typography. **true** means enabled; **
 *     false** (default) means disabled.
 * @since 20
 */
void OH_Drawing_SetTypographyTextAutoSpace(OH_Drawing_TypographyStyle* style, bool enableAutoSpace);

/**
 * @brief Creates a copy of an existing paragraph style object.
 *<
 * @param style Po* GTypographyStyle} object to be copied.
 * @return Pointer to the copiedQTypographyStyle} object. If a null pointer is returned, the creation
 *     fails. The possible cause is that no memory is available or **style_( Release this pointer by
 *     callingQ@TypographyStyle} when this#
 * @since 20
 * @version 1.0
 */
OH_Drawing_TypographyStyle* OH_Drawing_CopyTypographyStyle(OH_Drawing_TypographyStyle* stMyle);

/**
 * @brief Creates a copy of an existing text style object.
 *<
 * @param style Po* ATextStyle} object to be copied.
 * @return Pointer to the copiedQTextStyle} object. If a null pointer is returned, the creation fails.
 *      The possible cause is that no memory is available or **style_( Release this pointer by
 *     callingQ@TextStyle} when this#
 * @since 20
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_CopyTextStyle(OH_Drawing_TextStyle* style);

/**
 * @<brief Creates a copy of an existing text shadow object.
 *<
 * @param shadow Po* BTextShadow} object to be copied.
 * @return Pointer to the copiedQTextShadow} object. If a null pointer is returned, the creation
 *     fails. The possible cause is that no memory is available or **shadow_( Release this pointer
 *     by callingQ@TextShadow} when this#
 * @since 20
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_CopyTextShadow(OH_Drawing_TextShadow* shadow);

/**
 * @brief Destroys anQ'PositionAndAffinity} object and reclaimZ,object.
 *
 * @param positionAndAffinity Po* 0PositionAndAffinity} object.
 * @since 23
 */@)QPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**LUcharacter range corresponding to the specified glyph range.
 *
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param glyphRangeStart Start position of the glyph range.
 * @param glyphRangeEnd End position of the ghlyph range.
 * @param actualGlyphRange Returns the actual font range, indicating the level-2 pointer toQRange}.
 *    _D#
 *     <br>When the requested glyph range contains only a part of a complex glyph sequence, this parameter returns the
 *     corresponding complete glyph range.
 *     <br>For example, ligatures and combined emojis may consist of multiple atomic glyphs and must be processed as a
 *     whole.
 *     <br>If this parameter is NULL, the actual glyph range is not returned, indicating that the caller does not care
 *     about the actual glyph range information.
 *     <br>After use, release the object through	GReleaseRangeBuffer} API.
 * @param textEncodingType Text encoding typeQTextEncoding}.
 *     <br>Currently, only UTF-8 and UTF-16 encoding types are supported.
 *     <br>For UTF-8 encoding, the returned character range indicates the byte range.
 *     <br>For UTF-16 encoding, the returned character range indicates the UTF-16 code unit range./	cRange} object pointer that indicates the character range. When the object is
 *     no longer need,dReleaseRangeBuffer} API to release it.
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_TypographyGetCharacterRangeForGlyphRangeWithBuffer(OH_Drawing_Typography* typography,
    size_t glyphRangeStart, size_t glyphRangeEnd, OH_Drawing_Range** actualGlyp?hRange,
    OH_Drawing_TextEncoding textEncodingType);

/**L^character position information closest to the specified coordinates.
 *
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param dx Horizontal coordinate in the text layout area, in physical pixels (px).
 *     <br>X offset relative to the top-left corner of the text layout area, with the right direction as positive.
 *     <br>Supports floating-point values and accepts negative values, which indicate positions to the left of the text
 *     layout area.
 *     <br>If the coordinates are beyond the text layout area, the nearest character position is returned. It can be
 *     obtained through a touch event or click event.
 * @param dy Vertical coordinate in the text layout area, in physical pixels (px).
 *     <br>Y offset relative to the top-left corner of the text layout area, with the downward direction as positive.
 *     <br>Supports floating-point values and accepts negative values, which indicate positions above the text layout
 *     area.
 *     <br>If the coordinates are beyond the text layout area, the nearest character position is returned. It can be
 *     obtained through aK touch event or click event.
 * @param textEncodingType Text encoding typeQTextEncoding}.
 *     <br>Currently, only UTF-8 and UTF-16 encoding types are supported.
 *     <br>For UTF-8 encoding, the returned position indicates the byte offset. For UTF-16 encoding, the returned
 *     position indicates the UTF-16 code unit offset./Pcharacter index position and affinity at the coordinate. The return type is the?-PositionAndAffinity} structure.
 *     <br>W%", c?-PositionAndAffinity} to release it.
 * @since 24
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetCharacterPositionAtCoordinateWithBuffer(
    OH_Drawing_Typography* typography, double dx, double dy, OH_Drawing_TextEncoding textEncodingType);

/**LUglyph range corresponding to the specified character range.
 *
 * @param typography/D,Typography** object, which is obtained from?CreateTypography}.
 * @param characterRangeStart Start position of the character range.
 * @param characterRangeEnd End position of the character range.
 * @param actualCharacterRange Returns the actual character range, indicating the level-2 pointer to?Range}a<$
 *     <br>When the requested character range contains only a part of the combined character sequence, this parameter
 *     returns the corresponding complete character range.
 *     <br>For example, a combined cha;racter consisting of a base character and a diacritical mark must be processed as
 *     a whole.
 *     <br>If this parameter is NULL, the actual character range is not returned, indicating that the caller does not
 *     care about the actual character range information.
 *     <br>%After use, release the object through	GReleaseRangeBuffer} API.
 * @param textEncodingType Text encoding typeQTextEncoding}.
 *     <br>Currently, only UTF-8 and UTF-16 encoding types are supported.
 *     <br>For UTF-8 encoding, the input character range should be interpreted as a byte range. For UTF-16 encoding,
 *     the input character range should be in'terpreted as a UTF-16 code unit range./	\Range} object pointer that indicates the font range. If the object is no
 *     longer need,dReleaseRangeBuffer} API to release it.
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_TypographyGetGlyphRangeForCharacterRangeWithBuffer(OH_Drawing_Typography* typography,
    size_t characterRangeStart, size_t characterRangeEnd, OH_Drawing_Range** acKtualCharacterRange,
    OH_Drawing_TextEncoding textEncodingType);

/**@2/	%Range} object.
 *
 * @param range Po* Range} object.
 * @since 24
 */
void OH_Drawing_ReleaseRangeBuffer(OH_Drawing_Range* range);
#ifdef __cplusplus
}
#endif
/** @} */
#endifƄYx[uE<mxS&?ݼ<d%'>L$1t&BA~f^Ij䳪gL%_79PV{.YK _yrb;PHp	LE6-3&{zYm^c:9n@͙fp/=L0d[%{'ׅloSrvk'7O~iy{:.P:U]M04ɰbUy70!n1'ف-]6s|1Y@cqT ƘP宓l6 
x,
,3`?register_font[?he font managers)[:REGISTER_FONT_H
#define C_INCLUDE_DRAWING_REGISTER_FONT_HE;c用于在字体管理器中注册自定义字体，支持的字体文件格式包含：ttf、otf。qQCollection 指向[对象的指针。:y 指需要注册的字体的字体名称。
 * @param familySrc 指需要注册的字体文件的路径。
 * @return 返回错误代码，0为成功，1为文件不存在，2为打开文件失败，3为读取文件失败，4为寻找文件失败，5'获取大小失败，9文件损坏。&RegisterFont(* fontCollection,
    const char* familySrc3用于在字体管理器中注册字体缓冲区。qQCollection 指向[对象的指针。:y 指需要注册的字体的字体名称。
 * @param fontBuffer 指需要注册的字体文件的缓冲区。
 * @param length 指需要注册的字体文件的长度。
 * @return 返回错误代码，0为成功，6为缓冲区大小为零，7为&体集合为空，9为文件损坏。&RegisterFontBuffer(* fontCollection$,
    uint8_t* fontBuffer, size_t l}P使用ttc/otc文件注册自定义字体。
 *
 * @param fontCollection 指向[对象的指针。:y 需要注册的字体的字体名称。
 * @param familySrc 需要注册的字体文件的路径。
 * @param index 字体ttc/otc文件中的索引，非ttc/otc格式文件需设置为0。
 * @return 函数执行结果。0为成功，1为文件存在，2为打开文件失败，3为读取文件失败，4为寻找文件失败，5为获取大小失败，8为fontCollection为空，9为文件损坏。0RegisterFontByIndex(* fontCollection,
    , const char* familySrc, uint32_P使用ttc/otc文件字节流注册字体。
 *
 * @param fontCollection 指向[对象的指针。:y 需要注册的字体的字体名称。
 * @param fontBuffer 需要注册的字体文件的字节流数据。
 * @param length 字节流数据长度
 * @param index 字体在ttc/otc文件中的索引，非ttc/otc格式文件需设置为0。
 * @return 函数执行结果。0为成功，6为字节流指针为空，7为字节流长度为0，8为fontCollection为空，9为文损坏。0RegisterFontBufferByIndex(* fontCollection,
   -, uint8_t* fontBuffer, size_t length, uint32_通过字体家族名称取消注册自定义字体。取消注册当前正在使用的字体可能导致文本渲染异常，括乱码或字形缺失。所有使用被取消注册的字体家族名称的排版对象都应该被销毁重建。
 *
 *yICollection 指向[对象的指针。:y 需要取消注册的字体家族名称。
 * @return 返回执行结果状态码，0为成功，8为入参不合法，1为消注册失败。OUnregisterFont(* fontCollection-检查系统是否支持指定路径的字体格式。
 *
 * @param path 字体文件的绝对路径。
 * @return 如果支0持该字体则返回true；否则返回false。0&IsFontSupportedFromPath(const char* pa检查系统是否支持缓冲区中指定的字体格式。
 *
 * @param data 包含字体数据的内存缓冲区的指针
 * @param dataLength 字体数据的大小（以字节为单位）。
 * @return 如果支持该字体则返回true；否返回false。0:IsFontSupportedFromBuffer(uint8_t* data, size_t dataLength#
/** @} */
#endifNn
dxV,1-2024mtext_font_descriptor)acapabilities of font information, such as obtaining font information and searching for
 * a font4Yfont descriptor capability.E
 * @since 14P#ifndef DRAWING_TEXT_FONT_DESCRIPTOR_H
#define DRAWING_TEXT_FONT_DESCRIPTOR_H
<ext_typography@字体类型的枚举。
 *
 * @since 14
 */
typedef enum {
    /**
     * 所有字体类型。
     */
    ALL = 1 << 0,

    /**
     * 系统字体类型。
     */
    GENERIC = 1 << 1,

    /**
     * 风格字体类型
     */
    STYLISH = 1 << 2,

    /**
     * 用户已安装字体类型。
     */
    INSTALLED = 1 << 3,

    /**
     * 自义字体类型。
     * @since 18
    */
    CUSTOMIZED = 1 << 4
} OH_Drawing_SystemFontType;

/**
 * @brief 字体述符属性的枚举。不同类型的字体描述符属性，请使用对应类型的接口获取属性。如字体描述属性FULL_DESCRIPTOR_ATTR_I_WEIGHT为int类型，需使用
 * {@link OH_Drawing_GetFontFullDescriptorAttributeInt}接口获其属性值。
 *
 * @since 22
 */
typedef enum {
    /**
     * Font file path, of the {@link OH_Drawing_String} type.
     */
    FULL_DESCRIPTOR_ATTR_S_PATH = 0,

    /**
     * Postscript font name, of the {@link OH_Drawing_String} type.
     */
    FULL_DESCRIPTOR_ATTR_S_POSTSCRIPT_NAME = 1,

    /**
     * Font name, of the {@link OH_Drawing_String} type.
     */
    FULL_DESCRIPTOR_ATTR_S_FULL_NAME = 2,

    /**
     * Font family name, of the {@link OH_Drawing_String} type.
     */
    FULL_DESCRIPTOR_ATTR_S_FAMILY_NAME = 3,

    /**
     * Font subfamily name, of the {@link OH_Drawing_String} type.
     */
    FULL_DESCRIPTOR_ATTR_S_SUB_FAMILY_NAME = 4,

    /**
     * 字体的字重，int类型。
     */
    FULL_DESCRIPTOR_ATTR_I_WEIGHT = 5,

    /**
     * 字体的宽窄风格属性，int类型。
     */
    FULL_DESCRIPTOR_ATTR_I_WIDTH = 6,

    /**
     * 字体是否倾斜，int类型。1表示字体倾斜，0表示字体非倾斜。
     */
    FULL_DESCRIPTOR_ATTR_I_ITALIC = 7,

    /**
     * 字体是否等宽，bool类型。true表示字体紧凑，false表示字体非紧凑。
     */
    FULL_DESCRIPTOR_ATTR_B_MONO = 8,

    /**
     * 字体是否支持符号字体，bool类型。true表示支持符号字体，false表示不支持符号字体。
     */
    FULL_DESCRIPTOR_ATTR_B_SYMBOLIC = 9,

    /**
    * 根据系统语言配置提取字体唯一标识的名称。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_LOCAL_POSTSCRIPT_NAME = 10,

    /**
    * 根据系统语言配置提取字体全名。
    * @since 23
    */
   ^ FULL_DESCRIPTOR_ATTR_S_LOCAL_FULL_NAME = 11,

    /**
    * 根据系统语言配置提取   * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_LOCAL_FAMILY_NAME = 12,

    /**
    * 根据系统语言配置提取子品   * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_LOCAL_SUB_FAMILY_NAME = 13,

    /**
    * 字体版本。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_VERSION = 14,

    /**
    * 字体制造商信息。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_MANUFACTURE = 15,

    /**
    * 字体版权信息。
     * @since 23
     */
    FULL_DESCRIPTOR_ATTR_S_COPYRIGHT = 16,

    /**
    * 字体商标信息。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_TRADEMARK = 17,

    /**
    * 字体许可证信息。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_S_LICENSE = 18,

    /**
    * 字体可变轴数组。
    * @since 24
    */
    FULL_DESCRIPTOR_ATTR_O_VARIATION_AXIS = 19,

    /**
    * 字体可变实例数组。
    * @since 24
    */
    FULL_DESCRIPTOR_ATTR_O_VARIATION_INSTANCE = 20,

    /**
    * 字体索引。
    * @since 23
    */
    FULL_DESCRIPTOR_ATTR_I_INDEX = 21
} OH_Drawing_FontFullDescriptorAttributeId;

/**
* @brief 字体可变轴属性的枚举。
*
* @since 24
*/
typedef enum {
    /**
     * 字体可变轴的关键字标。
     */
    FONT_VARIATION_AXIS_ATTR_S_KEY = 0,

    /**
     * 字体可变轴的最小值。
     */
    FONT_VARIATION_AXIS_ATTR_D_MIN_VALUE = 1,

    /**
     * 字体可变轴的最大值。
     */
    FONT_VARIATION_AXIS_ATTR_D_MAX_VALUE = 2,

    /**
     * 字体可变轴的默认值。
     */
    FONT_VARIATION_AXIS_ATTR_D_DEFAULT_VALUE = 3,

    /**
     * 字体可变轴的标志位。值为0时表示该轴对用户可见，值为1时表示该轴应隐藏。
     */
    FONT_VARIATION_AXIS_ATTR_I_FLAGS = 4,

    /**
     * 字体可变轴的英文名称。
     */
    FONT_VARIATION_AXIS_ATTR_S_NAME = 5,

    /**
     * 字体可变轴的本地化名称。
     */
    FONT_VARIATION_AXIS_ATTR_S_LOCAL_NAME = 6
} OH_Drawing_FontVariationAxisAttributeId;

/**
 * @brief 字体可变实例属性的枚举。
 *
 * @since 24
 */
typedef enum {
    /**
     * 字体可变实例的英文名称。
     */
    FONT_VARIATION_INSTANCE_ATTR_S_NAME = 0,

    /**
     * 字体可变实例的本地化名称。
     */
    FONT_VARIATION_INSTANCE_ATTR_S_LOCAL_NAME = 1
} OH_Drawing_FontVariationInstanceAttributeId;

/**
 * @brief 字体变体坐标
 *
 * @since 24
 */
typedef struct {
    /**
     * String identified by the keyword in the variable font attribute key-value pair.
     */
    char* axisKey;
    /**
     * Value of the variable font attribute key-value pair.
     */
    double value;
} OH_Drawing_FontVariationInstanceCoofrdinate;

/**
 * @brief 获取与指定字体描述符匹配的所有系统字体描述符，其中!Descriptor}的path字段不作为有效的匹配字段，其余字段不是默认值时生效。
 * <br>如果参数desc的所有字段都是默认值，则获取所有系统字体描述符。
 * <br>如果匹配失败，返回NULL。不再需要{@link'RDescriptor}时，请使用{@link OH_Drawing_DestroyFontDescriptors}接口释放该I]desc 指针。
 *     <br>建议使用{@link OH_Drawing_CreateFontDescriptor}获得有效的!3Descriptor}实例。
 *     <br>如果自己创建!Descriptor}实例，请确保不用于匹配的字段是默认值。
 * @param num 表示返回值数组的成员个数。
 *	 @return !Descriptor}数组，释放时请使用{@link OH_Drawing_DestroyFontDescriptors}。
 * @since 18
 */
OH_Drawing_FontDescriptoOr* OH_Drawing_MatchFontDescriptors(OH_Drawing_FontDescriptor* desc, size_t* num
释放字体描述符!Descriptor}数组P%descriptors 数组。
 * @param num !Descriptor}数组的成员个数。
 * @since 18
 */
void OH_Drawing_DestroyFontDescriptors(OH_Drawing_FontDescriptor* descriptors, size_t num
根据字体名称和字体类型获取指定的字体描述符，支持系统字体、风格字体和用户已安装字体。
 * <br>字体描述符是描述字体特征的一种数据结构，它包含了定义字体外观和属性的详细信息。
LBullName 表示指向字体名称字符串{@link OH_Drawing_String}`oType 表示字体类型的枚举值{@link OH_Drawing_SystemFontType}。
 * @return 指向字体描述符对象!#Descriptor}的指针，不再需要!ZDescriptor}时，请使用
 *     {@link OH_Drawing_DestroyFontDescriptor}接口释放该since 14
 */
OH_Drawing_FontDescriptor* OH_Drawing_GetFontDescriptorByFullName(const OH_Drawing_String* fullName,
    OH_Drawing_SystemFontType fontType
根据字体类型获取对应数组TDType 表示字体类型的枚举值{@link OH_Drawing_SystemFontType}	对应字体类型的字体名称数组{@link OH_Drawing_Array}的指针，不再需要{@link OH_Drawing_Array}时，请使用D
 *     {@link OH_Drawing_DestroySystemFontFullNames}接口释放该ksince 14
 */
OH_Drawing_Array* OH_Drawing_GetSystemFontFullNamesByType(OH_Drawing_SystemFontType fontType
6在字体名称数组中通过索引获取对应位置	J=ullNameArray 表示字体名称数组{@link OH_Drawing_Array}数组的索引	对应索引的字体名称{@link OH_Drawing_String}的指针。
 * @since 14
 */
const OH_Drawing_String* OH_Drawing_GetSys<temFontFullNameByIndex(OH_Drawing_Array* fullNameArray, size&放通过字体类型获取的对应数组占用的内存QullNameArray 表示字体名称数组{@link OH_Drawing_Array}的指针。
 * @since 14
 */
void OH_Drawing_DestroySystemFont)FullNames(OH_Drawing_Array* fullNameArray
根据原始二进制数据获取字体描述符数组。
 *
 * @param data 指向原始二进制字体数据缓冲区的指8size 以字节为单位的字体数据缓冲区的大小	指向对应字体文件的字体描述符数组{@link OH_Drawing_Array}的指针，不再需要OH_Drawing_Array时，请使用E
 *     {@link OH_Drawing_DestroyFontFullDescriptors}接口释放该    <br>如果因数据格式无效或解析错误导致操作失败，返回NULL。
 * @since 22
 */
OH_Drawing_Array* OH_DErawing_GetFontFullDescriptorsFromStream(const void* data, size_t size
3根据字体文件路径获取字体描述符数组需要查询.指向对应字体文件的字体描述符数组{@link OH_Drawing_Array}的指针，不再需要OH_Drawing_Array时，请使用E
 *     {@link OH_Drawing_DestroyFontFullDescriptors}接口释放该    <br>如果字体文件未找到、字体文件路径无效、字体文件无权限或者文件非字体格式，返回NULLJ
 * @since 22
 */
OH_Drawing_Array* OH_Drawing_GetFontFullDescriptorsm.在字体描述符数组中通过索引获取对应的字体描述符。
 *
 * @param descriptorArray 表示指向字体描"符数组{@link OH_Drawing_Array}%数组的索引，索引值从0开始	*指向指定索引处字体描述符对象!FullDescriptor}的指针。
 *     <br>如果索引超出范围或数组无效，则返回NULL。
 * @since 22
 */
const OH_Drawing_FontFullDescriptor* OH_Drawing_GetFontFullDescriptorByIndex(
    OH_Drawing_Array* descriptorArray, size_t index);
放字体描述符数组占用的内存。
 *
 * @param descriptorArray 表示指向字体描述符数组{@link OH_Drawing_Array}的指针。
 * @since 22
 */
void OH_Drawing_DestroyFontFullDescriptors(OH_Drawing_Array* descriptorArray);

/**
 
	释放字体描述符指针占用内存。本函数可用于释放由{@link OH_Drawing_GetFontFullDescriptorByFullName}接口[取的字体描述符指针。
 *
 * @param descriptor 表示指向字体描述符对象!FullDescriptor}的指针。
 * @since 24
 */
void OH_Drawing_DestroyFontFullDescriptor(const OH_Drawing_FontFullDescriptor* 
descriptor
!字体文件中获取unicode码Src 字体文件ttc/otc文件中字体Oparam unicodeArray 出参，用于接收unicode码数组，当不需要时，使用free()释放。
 * @param arrayLength 出)，用于接收unicode码数组的长度a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示体路径非法或不是字体文件。
 * @since 23
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontUnicodeArrayFromFile(const Kchar* fontSrc, uint32_t index,
    int32_t** unicodeArray, int32_t* arrayL
*字体字节流缓存中获取unicode码Buffer 字体文件体文件数据长度ttc/otc文件中字体Oparam unicodeArray 出参，用于接收unicode码数组，当不需要时，使用free()释放。
 * @param arrayLength 出)，用于接收unicode码数组的长度a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示存数据非法或缓存数据不是字体文件数据。
 * @since 23
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontUnicodeArrayFromBuffer(
".,
    int32_t** unicodeArray, int32_t* arrayL
`获取int类型字体描述符的属性。
 *
 * @param descriptor 指向字体描述符对象!FullDescriptor} id 字体描述符属性id。从!FullDescriptorAttributeId}中可获取字体描述符属性。
 * @param value 指向int类型属性的指针。作为出参用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数descriptor或者value为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与调函数不匹配。
 * @since 22
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontFullDescriptorAttributeInt(const OH_Drawing_FonYtFullDescriptor* descriptor,
    OH_Drawing_FontFullDescriptorAttributeId id, int* value
a获取bool类型字体描述符的属性。
 *
 * @param descriptor 指向字体描述符对象!FullDescriptor} id 字体描述符属性id。从!FullDescriptorAttributeId}中可获取字体描述符属性。
 * @param value 指向bool类型属性的指针。作为出参用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数descriptor或者value为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与调函数不匹配。
 * @since 22
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontFullDescriptorAttributeBool(const OH_Drawing_Fo[ntFullDescriptor* descriptor,
    OH_Drawing_FontFullDescriptorAttributeId id, bool* value
获取{@link OH_Drawing_String}类型字体描述符的属性。
 *
 * @note The caller is responsible for manually releasing the internal <b>strData</b> member of the
 *     <b>OH_Drawing_String</b> structure when it is no longer needed.
 *
 * @par)am descriptor 指向字体描述符对象!FullDescriptor} id 字体描述符属性id。从!FullDescriptorAttributeId}中可获取字体描述符属性。
 * @param str 指向OH_Drawing_String类型属性的指针。为出参使用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数descriptor或者str为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与调用函数不匹配。
 * @since 22
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontFullDescriptorAttributeString(const OH_Drawing_FofntFullDescriptor* descriptor,
    OH_Drawing_FontFullDescriptorAttributeId id, OH_Drawing_String* str
c获取字体描述符的对象数组属性。
 *
 * @param descriptor 指向字体描述符对象!FullDescriptor} id 字体描述符属性id。从!;FullDescriptorAttributeId}中可获取字体描述符属性	对象数组。
 * @since 24
 */
OH_Drawing_Array* OH_Drawing_GetFontFullDescriptorAttributeArray(const OH_Drawing_FontFullDGescriptor* descriptor,
    OH_Drawing_FontFullDescriptorAttributeId id
在字体可变轴数组中通过索引获取对应的字体可变轴。
 *
 * @param array 指向字体可变轴数组{@link OH_Drawing_Array}%数组的索引，索引值从0开始	*指向指定索引处字体可变轴对象!VariationAxis}的指针。
 *     <br>如果索引超出范围或数组无效，则返回NULL。
 * @since 24
 */
OH_DrawinYg_FontVariationAxis* OH_Drawing_GetFontVariationAxisByIndex(OH_Drawing_Array* array, size)放字体可变轴数组占用的内存VariaAxisArray 指向字体可变轴数组对象{@link OH_Drawing_Array}的指针。
 * @since 24
 */
void OH_Drawing_Destro7yFontVariationAxis(OH_Drawing_Array* fontVariaAxisArray
f获取double类型字体可变轴的属性。
 *
 * @param variationAxis 指向字体可变轴对象!VariationAxis} id 字体可变轴属性id。从!VariationAxisAttributeId}中可获取字体可变轴的属性。
 * @param value 指向double类型属性的指针。作为出	参使用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数variationAxis或者value为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与用函数不匹配。
 * @since 24
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontVariationAxisAttributeDouble(OH_Drawing_Font\VariationAxis* variationAxis,
    OH_Drawing_FontVariationAxisAttributeId id, double *value
c获取int类型字体可变轴的属性。
 *
 * @param variationAxis 指向字体可变轴对象!VariationAxis} id 字体可变轴属性id。从!VariationAxisAttributeId}中可获取字体可变轴的属性。
 * @param value 指向int类型属性的指针。作为出参使用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数variationAxis或者value为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与用函数不匹配。
 * @since 24
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontVariationAxisAttributeInt(OH_Drawing_FontVarViationAxis* variationAxis,
    OH_Drawing_FontVariationAxisAttributeId id, int *value
获取{@link OH_Drawing_String}类型字体可变轴的属性。
 *
 * @note The caller is responsible for manually releasing the internal <b>strData</b> member of the
 *     <b>OH_Drawing_String</b> structure when it is no longer needed.
 *
 * @par,am variationAxis 指向字体可变轴对象!VariationAxis} id 字体可变轴属性id。从!VariationAxisAttributeId}中可获取字体可变轴的属性。
 * @param str 指向OH_Drawing_String类型属性的指针。作为出参使用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数variationAxis或者str为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id与调用函数不匹配。
 * @since 24
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontVariationAxisAttributeStr(OH_Drawing_FontVaria`tionAxis* variationAxis,
    OH_Drawing_FontVariationAxisAttributeId id, OH_Drawing_String *str
在字体可变实例数组中通过索引获取对应的字体可变实例。
 *
 * @param array 指向字体可变实例数组{@link OH_Drawing_Array}%数组的索引，索引值从0开始	-指向指定索引处字体可变实例对象!VariationInstance}的指针。
 *     <br>如果索引超出范围或数组无效，则返回NULL。
 * @since 24
 */
OH_Dreawing_FontVariationInstance* OH_Drawing_GetFontVariationInstanceByIndex(OH_Drawing_Array* array, size,放字体可变实例数组占用的内存VariaAxisInstance 指向字体可变实例数组对象{@link OH_Drawing_Array}的指针。
 * @since 24
 */
void OH_Drawing_DDestroyFontVariationInstance(OH_Drawing_Array* fontVariaAxisInstance
获取{@link OH_Drawing_String}类型字体可变实例的属性。
 *
 * @note The caller is responsible for manually releasing the internal <b>strData</b> member of the
 *     <b>OH_Drawing_String</b> structure when it is no longer needed.
 *
 * @6param variationInstance 指向字体可变实例对象!VariationInstance}#id 字体可变实例属性id。从!VariationInstanceAttributeId}中可获取字体可变实例属性。
 * @param str 指向OH_Drawing_String类型属性的指。作为出参使用a%
 *     <br>返回OH_DRAWING_SUCCESS，表示执行成功。
 *     <br>返回OH_DRAWING_ERROR_INCORRECT_PARAMETER，表示数variationInstance或者str为空指针。
 *     <br>返回OH_DRAWING_ERROR_ATTRIBUTE_ID_MISMATCH，表示传入属性id调用函数不匹配。
 * @since 24
 */
OH_Drawing_ErrorCode OH_Drawing_GetFontVariationInstanceAttributeStr(
    OH_Drawing_FontVariationInstance* variationInstance,
    OH_Drawing_FontVariationInstanceAttributeId id,
    OH_Drawing_String* str
获取字体可变实例的可变字体属性对象。
 *
 * @param variationInstance 指向字体可变实例的指针。
 	QarrayLength 指向OH_Drawing_FontVariationInstanceCoordinate列表长度的指针	指向可变字体属性列表的指针。
 * @since 24
 */
OH_Drawing_FontVariationInstanceCoordinate* OH_Drawing_GetFontVacriationInstanceCoordinate(
    OH_Drawing_FontVariationInstance* variationInstance, size_t* arrayL
根据字体名称和字体类型获取字体完整描述符对象。
 *
 * @param fullName 指向字体名称对象{@link OH_Drawing_String}`JType 系统字体类型对象{@link OH_Drawing_SystemFontType}的枚举值	!指向字体完整描述符对象!FullDescriptor}的指针。不再需要OH_Drawing_FontFullDescriptor时，请使用
 *     {@link OH_Drawing_DestroyFontFullDescriptor}接口释放该since 24
 */
const OH_Drawing_FontFullDescriptor* OH_Drawing_GetFontFullDescriptorByFullName(const OH_Drawing_String* fullNam*e,
    OH_Drawing_SystemFontType fontType
*获取字体文件中包含的字体数量Src 字体文件字体数釓-GetFontCountFromFile(const char* fontSrc);

/**
* @brief 获取字体缓存数据中包含的字体数量。
*
* @param fontBuffer 字体缓存数据。
* @param length 字体数据长度。
* @return 字体数量。
* @since 23
*/
uint32_t OH_GetFontCountFromBuffer(
73获取指定字体类型的所有字体文件路径Type 系统字体类型对象 {@link OH_Drawing_SystemFontType} 的枚举。
 * @param pathCount 返回的字体路径列表数量	一个字体路径对象OH_Drawing_String列表。不再需要时，请使用free释放该对象指针以及每个OH_Drawing_String对象内部持有的指针。
 * @since 23
 */
OH_Drawing_String* OH_Drawing_GetFontPathsByType(OH_Drawing_SystemFontTy"pe fontType, size_t* pathCount);
 Dn?!x   	/*37C{D+
 *2
 *'GoELGJ"/
 */

/**
 * @file drawing_text_typography.h
 *"9functions related to typography in the drawing module.
 */F!#<%
 * @since 8
 * @version 1.0
 */

/**:
 * @{
 *
 * @brief Provides the 2D drawing capability.
 *#<
 *
 * @since 8
 * @version 1.0
 */
#ifndef C_INCLUDE_DRAWING_TEXT_TYPOGRAPHY_H
#define C_INCLUDE_DRAWING_TEXT_TYPOGRAPHY_H
#ifdef __cplusplus
#include <cstdint>
#include <cstddef>
#else
#include <stdint.h>
#include <stddef.h>
#endif
#include "drawing_ca\nvas.h"
#include "drawing_error_code.h"
#include "drawing_color.h"
#include "drawing_font.h"&
#include "drawing_types.h"
#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 文字方向。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextDirection {
    /**
     * 方向：从右到左。
     */
    TEXT_DIRECTION_RTL,

    /**
     * 方向：从左到右。
     */
    TEXT_DIRECTION_LTR
} OH_Drawing_TextDirection;

/**
 * @brief 文字对齐方式。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextAlign {
    /**
     * 左对齐。
     */
    TEXT_ALIGN_LEFT,

    /**
     * 右对齐。
     */
    TEXT_ALIGN_RIGHT,

    /**
     * 居中对齐。
     */
    TEXT_ALIGN_CENTER,

    /**
     * 两端对齐，即紧靠左和右边缘，中间单词空隙由空格填充，最后一行除外。
     */
    TEXT_ALIGN_JUSTIFY,

    /**
     * 当OH_Drawing_TextDirection是TEXT_DIRECTION_LTR时，TEXT_ALIGN_START和TEXT_ALIGN_LEFT相；<br>类似地，
     * 当OH_Drawing_TextDirection是TEXT_DIRECTION_RTL时，TEXT_ALIGN_START和TEXT_ALIGN_RIGHT相同。
     */
    TEXT_ALIGN_START,

    /**
     * 当OH_Drawing_TextDirection是TEXT_DIRECTION_LTR时，TEXT_ALIGN_END和TEXT_ALIGN_RIGHT相同；<br>类似地，
     * 当OH_Drawing_TextDirection是TEXT_DIRECTION_RTL时，TEXT_ALIGN_END和TEXT_ALIGN_LEFT同。
     */
    TEXT_ALIGN_END
} OH_Drawing_TextAlign;

/**
 * @brief 字重。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_FontWeight {
    /**
     * 字重为thin。
     */
    FONT_WEIGHT_100,

    /**
     * 字重为extra-light
     */
    FONT_WEIGHT_200,

    /**
     * 字重为light。
     */
    FONT_WEIGHT_300,

    /**
     * 字重为normal/regular。
     */
    FONT_WEIGHT_400,

    /**
     * 字重为medium。
     */
    FONT_WEIGHT_500,

    /**
     * 字重semi-bold。
     */
    FONT_WEIGHT_600,

    /**
     * 字重为bold。
     */
    FONT_WEIGHT_700,

    /**
     * 字为extra-bold。
     */
    FONT_WEIGHT_800,

    /**
     * 字重为black。
     */
    FONT_WEIGHT_900
} OH_Drawing_FontWeight;

/**
 * @brief 基线位置。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextBaseline {
    /**
     * 用于表音文字，基线在中间偏下的位置。
     */
    TEXT_BASELINE_ALPHABETIC,

    /**
     * 用于表意文字，基线位于底部。
     */
    TEXT_BASELINE_IDEOGRAPHIC
} OH_Drawing_TextBaseline;

/**
 * @brief 文本装饰。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_TextDecoration {
    /**
     * 无装饰。
     */
    TEXT_DECORATION_NONE = 0x0,

    /**
     * 下划线。
     */
    TEXT_DECORATION_UNDERLINE = 0x1,

    /**
     * 上划线。
     */
    TEXT_DECORATION_OVERLINE = 0x2,

    /**
     * 删除线。
     */
    TEXT_DECORATION_LINE_THROUGH = 0x4
} OH_Drawing_TextDecoration;

/**
 * @brief 区分字体是否为斜体。
 *
 * @since 8
 * @version 1.0
 */
typedef enum OH_Drawing_FontStyle {
    /**
     * 非斜体。
     */
    FONT_STYLE_NORMAL,

    /**
     * 斜体。
     */
    FONT_STYLE_ITALIC,

    /**
     * 倾斜字体。
     */
    FONT_STYLE_OBLIQUE
} OH_Drawing_FontStyle;

/**
 * @brief 占位符垂直对齐枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 偏移于基线对齐。
     */
    ALIGNMENT_OFFSET_AT_BASELINE,

    /**
     * 高于基线对齐。
     */
    ALIGNMENT_ABOVE_BASELINE,

    /**
     * 低于基线对齐。
     */
    ALIGNMENT_BELOW_BASELINE,

    /**
     * 行框顶部对齐。
     */
    ALIGNMENT_TOP_OF_ROW_BOX,

    /**
     * 行框底对齐。
     */
    ALIGNMENT_BOTTOM_OF_ROW_BOX,

    /**
     * 行框中心对齐。
     */
    ALIGNMENT_CENTER_OF_ROW_BOX,

    /**
     * 跟随文本垂直对齐方式。
     * @since 20
     */
    ALIGNMENT_FOLLOW_PARAGRAPH
} OH_Drawing_PlaceholderVerticalAlignment;

/**
 * @brief This struct describes the placeholder that acts as a span.
 *
 * @since 11
 * @version 1.0
 */
typedef struct {
    /**
     * Width of a placeholder.
     */
    double width;
    /**
     * Height of a placeholder.
     */
    double height;
    /**
     * Alignment mode of a placeholder.
     */
    OH_Drawing_PlaceholderVerticalAlignment alignment;
    /**
     * Baseline of a placeholder.
     */
    OH_Drawing_TextBaseline baseline;
    /**
     * Baseline offset of a placeholder.
     */
    double baselineOffset;
} OH_Drawing_PlaceholderSpan;

/**
 * @brief 文本装饰样式枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 实心样式。
     */
    TEXT_DECORATION_STYLE_SOLID,

    /**
     * 双重样式。
     */
    TEXT_DECORATION_STYLE_DOUBLE,

    /**
     * 圆点样式。
     */
    TEXT_DECORATION_STYLE_DOTTED,

    /**
     * 虚线样式。
     */
    TEXT_DECORATION_STYLE_DASHED,

    /**
     * 波浪样式
     */
    TEXT_DECORATION_STYLE_WAVY
} OH_Drawing_TextDecorationStyle;

/**
 * @brief 省略号样式枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * Header ellipsis mode, that is, the ellipsis appears at the beginning of a line. This enumerated value is valid
     * only when the maximum number of text lines is set to **1** by calling
     * {@liWetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_HEAD = 0,

    /**
     * Middle ellipsis mode, that is, the ellipsis appears in the middle of a line. This enumerated value is valid only
     * when the maximum number of text lines is set to **1** by calling WetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_MIDDLE = 1,

    /**
     * End ellipsis mode, that is, the ellipsis appears at the end of a line. This enumerated value is valid when the
     * maximum number of text lines is set to any value by calling WetTypographyTextMaxLines}.
     */
    ELLIPSIS_MODAL_TAIL = 2,

    /**
     * 头部省略号模式，即省略号位置出在行首。该枚举值在SetTypographyTextMaxLines}接口设置文本最大行数为任何值时均有效。
     * @since 24
     */
    ELLIPSIS_MODAL_MULTILINE_HEAD = 3,

    /**
     * 中间省略号模式，即省略号位置出现在行的中间。该枚举值在使用{@lSetTypographyTextMaxLines}接口设置文本最大行数为任何值时均有效。
     * @since 24
     */
    ELLIPSIS_MODAL_MULTILINE_MIDDLE = 4
} OH_Drawing_EllipsisModal;

/**
 * @brief 文本的中断策略枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 贪心策略，换行时尽可能填满每一行。
     */
    BREAK_STRATEGY_GREEDY = 0,

    /**
     * 高质量策略，换行时优先考虑文本的连续性。
     */
    BREAK_STRATEGY_HIGH_QUALITY = 1,

    /**
     * 平衡策略，换行时在单词边界换行。
     */
    BREAK_STRATEGY_BALANCED = 2
} OH_Drawing_BreakStrategy;

/**
 * @brief 单词的断词方式枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 常规方式。
     */
    WORD_BREAK_TYPE_NORMAL = 0,

    /**
     * 全部中断方式。
     */
    WORD_BREAK_TYPE_BREAK_ALL = 1,

    /**
     * 单词中断方式。
     */
    WORD_BREAK_TYPE_BREAK_WORD = 2,

    /**
     * 每行末尾单词尝试通过连符“-”进行断行，若无法添加连字符“-”，则跟`WORD_BREAK_TYPE_BREAK_WORD`保持一致。
     * @since 18
     */
    WORD_BREAK_TYPE_BREAK_HYPHEN = 3
} OH_Drawing_WordBreakType;

/**
 * @brief 矩形框高度样式枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 紧密样式。
     */
    RECT_HEIGHT_STYLE_TIGHT,

    /**
     * 最大样式。
     */
    RECT_HEIGHT_STYLE_MAX,

    /**
     * 包含行间距中间样式。
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACEMIDDLE,

    /**
     * 包含行间距顶部样式。
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACETOP,

    /**
     * 包含行间距底部样式。
     */
    RECT_HEIGHT_STYLE_INCLUDELINESPACEBOTTOM,

    /**
     * 结构样式
     */
    RECT_HEIGHT_STYLE_STRUCT
} OH_Drawing_RectHeightStyle;

/**
 * @brief 矩形框宽度样式枚举。
 *
 * @since 11
 * @version 1.0
 */
typedef enum {
    /**
     * 紧密样式。
     */
    RECT_WIDTH_STYLE_TIGHT,

    /**
     * 最样式。
     */
    RECT_WIDTH_STYLE_MAX
} OH_Drawing_RectWidthStyle;

/**
 * @brief 获取系统字体配置信息列表果枚举。
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_FontConfigInfoErrorCode {
    /**
     * 获取系统字体配置信息列表成功。
     */
    SUCCESS_FONT_CONFIG_INFO = 0,

    /**
     * 未知错误。
     */
    ERROR_FONT_CONFIG_INFO_UNKNOWN = 1,

    /**
     * 解析系统配置文件失败。
     */
    ERROR_FONT_CONFIG_INFO_PARSE_FILE = 2,

    /**
     * 申请内存失败。
     */
    ERROR_FONT_CONFIG_INFO_ALLOC_MEMORY = 3,

    /**
     * 拷贝字符串据失败。
     */
    ERROR_FONT_CONFIG_INFO_COPY_STRING_DATA = 4
} OH_Drawing_FontConfigInfoErrorCode;

/**
 * @brief This struct describes the information about a font fallback.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontFallbackInfo {
    /**
     * Pointer to the language supported by the font fallback. The language format is bcp47.
     */
    char* language;
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
} OH_Drawing_FontFallbackInfo;

/**
 * @brief This struct describes the information about a font fallback group.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontFallbackGroup {
    /**
     * Pointer to the name of the group corresponding to the font fallback group. If null is passed in, all fonts in
     * the font fallback group can be used.
     */
    char* groupName;
    /**
     * Number of font fallbacks.
     */
    size_t fallbackInfoSize;
    /**
     * Pointer to the set of font fallbacks.
     */
    OH_CallbackInfo* fallbackInfoSet;
} OH_Drawing_FontFallbackGroup;

/**
 * @brief This struct describes the information about a font weight mapping.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontAdjustInfo {
    /**
     * Original font weight.
     */
    int weight;
    /**
     * Font weight displayed in the application.
     */
    int to;
} OH_Drawing_FontAdjustInfo;

/**
 * @brief This struct describes the information about a font alias.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontAliasInfo {
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
    /**
     * Font weight. If the value is greater than 0, only the fonts with the specified weight in the font family are
     * contained. If the value is 0, all the fonts in the font family are contained.
     */
    int weight;
} OH_Drawing_FontAliasInfo;

/**
 * @brief This struct describes the information about generic fonts supported by the system.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontGenericInfo {
    /**
     * Pointer to the name of a font family.
     */
    char* familyName;
    /**
     * Number of font aliases.
     */
    size_t aliasInfoSize;
    /**
     * Number of font weight mappings.
    W */
    size_t adjustInfoSize;
    /**
     * Pointer to a set of font aliases.
     */CYAliasInfo* aliasInfoSet;
    /**
     * Pointer to a set of font weight mappings.
     */CAdjustInfo* adjustInfoSet;
} OH_Drawing_FontGenericInfo;

/**
 * @brief This struct describes the information about a system font configuration.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontConfigInfo {
    /**
     * Number of system font file paths.
     */
    size_t fontDirSize;
    /**
     * Number of generic fonts.
     */
    size_t fontGenericInfoSize;
    /**
     * Number of font fallbacks.
     */
    size_t fallbackGroupSize;
    /**
     * Double pointer to the system ifont file paths.
     */
    char** fontDirSet;
    /**
     * Pointer to a set of generic fonts.
     */C[GenericInfo* fontGenericInfoSet;
    /**
     * Pointer to a set of font fallbacks.
     */CallbackGroup* fallbackGroupSet;
} OH_Drawing_FontConfigInfo;

/**
 * @brief This struct describes the detailed information abouCt a system font.
 *
 * @since 12
 * @version 1.0
 */
typedef structQ" {
    /**
     * File path of the system font.
     */
    char* path;
    /**
     * PostScript name that uniquely identifies the system font.
     */
    char* postScriptName;
    /**
     * Full name of the system font.
     */
    char* fullName;
    /**
     * Family of the system font.
     */
    char* fontFamily;
    /**
     * Subfamily of the system font.
     */
    char* fontSubfamily;
    /**
     * Weight of the system font.
     */
    int weight;
    /**
     * Width of the system font.
     */
    int width;
    /**
     * Slope of the system font.
     */
    int italic;
    /**
     * Whether the system font is monospaced. **true** means yes; **false** otherwise.
     */
    bool monoSpace;
    /**
     * Whether the system font supTports symbols. **true** means yes; **false** otherwise.
     */
    bool symbolic;
}Q";

/**
 * @brief This struct describes the measurement information about a line of text.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_LineMetrics {
    /**
     * Height of a character above the baseline, after taking the absolute value.
     */
    double ascender;
    /**
     * Height of a character below the baseline, after taking the absolute value.
     */
    double descender;
    /**
     * Height of an uppercase letter above the baseline.
     */
    double capHeight;
    /**
     * Height of a lowercase letter, specifically the lowercase x, not including ascenders and descenders.
     */
    double xHeight;
    /**
     * Horizontal space taken up by a character.
     */
    double width;
    /**
     * Line height.
     */
    double height;
    /**
     * Distance from the left edge of the leftmost character to the left edge of the container. For left alignment, the
     * value is 0. For right alignment, the value is the container width minus the text width.
     */
    double x;
    /**
     * Height from the top edge of the character to the top of the container. The first line is 0, and the second line
     * is the height of the first line.
     */
    double y;
    /**
     * Index of the first character in the line.
     */
    size_t startIndex;
    /**
     * Index of the last character in the line.
     */
    size_t endIndex;
    /**
  <   * Measurement information of the first character.
     */C_Metrics firstCharMetrics;
} OH_Drawing_LineMetrics;

/**
 * @brief 文本高度修饰符模式枚举。
 *
 * @since 12
 * @velrsion 1.0
 */
typedef enum OH_Drawing_TextHeightBehavior {
    /**
     * Enables the height set by calling WetTextStyleFontHeight} for the top of the first line and
     * the bottom of the last line in a paragraph.
     */
    TEXT_HECIGHT_ALL = 0x0,

    /**
     * Disables the height set by calling WetTextStyleFontHeight} for the top of the first line in a
     * paragraph.
     */
    TEXT_HEIGHT_DISABLE_FIRST_ASCENT = 0x1,4

    /**
     * Disables the height set by calling WetTextStyleFontHeight} for the bottom of the last line in
     * a paragraph.
     */
    TEXT_HEIGHT_DISABLE_LAST_ASCENT = 0x25,

    /**
     * Disables the height set by calling WetTextStyleFontHeight} for both the top of the first line
     * and the bottom of the last line in a paragraph.
     */
    TEXT_HEIGHT_DISABLE_ALL = 0x1 | 0x2
} OH_Drawing_TextHeightBehavior;

/**
 * @brief 文本样式类型枚举。
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_TextStyleType {
    /**
     * 无文本样式。
     */
    TEXT_STYLE_NONE,

    /**
     * 所有文本样式。
     */
    TEXT_STYLE_ALL_ATTRIBUTES,

    /**
     * 字体样式。
     */
    TEXT_STYLE_FONT,

    /**
     * 文本前景样式。
     */
    TEXT_STYLE_FOREGROUND,

    /**
     * 文本背景样式。
     */
    TEXT_STYLE_BACKGROUND,

    /**
     * 文本阴影样式。
     */
    TEXT_STYLE_SHADOW,

    /**
     * 文本装饰样。
     */
    TEXT_STYLE_DECORATIONS,

    /**
     * 文本字符间距样式。
     */
    TEXT_STYLE_LETTER_SPACING,

    /**
     * 文本单词间距样式。
     */
    TEXT_STYLE_WORD_SPACING
} OH_Drawing_TextStyleType;

/**
 * @brief 字体度的枚举。
 *
 * @since 12
 * @version 1.0
 */
typedef enum OH_Drawing_FontWidth {
    /**
     * 表示超窄的字宽
     */
    FONT_WIDTH_ULTRA_CONDENSED = 1,

    /**
     * 表示特窄的字宽。
     */
    FONT_WIDTH_EXTRA_CONDENSED = 2,

    /**
     * 表示窄的字宽。
     */
    FONT_WIDTH_CONDENSED = 3,

    /**
     * 表示半窄的字宽。
     */
    FONT_WIDTH_SEMI_CONDENSED = 4,

    /**
     * 表示常规的字宽。
     */
    FONT_WIDTH_NORMAL = 5,

    /**
     * 表示半宽的字宽。
     */
    FONT_WIDTH_SEMI_EXPANDED = 6,

    /**
     * 表示宽的字宽。
     */
    FONT_WIDTH_EXPANDED = 7,

    /**
     * 表示特宽的字宽。
     */
    FONT_WIDTH_EXTRA_EXPANDED = 8,

    /**
     * 表示超宽的字宽。
     */
    FONT_WIDTH_ULTRA_EXPANDED = 9
} OH_Drawing_FontWidth;

/**
 * @brief 文本样式属性枚举。
 *
 * @since 21
 */
typedef enum OH_Drawing_TextStyleAttributeId {
    /**
     * Maximum line height.<br>If line height scaling is enabled, the maximum line height takes effect only when **
     * FontHeight** (which can be obtained from {@link OH_Drawing_TextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the positive part of a single-precision floating point number. By default, it equals the maximum
     * possible value for such a number.
     */
    TEXT_STYLE_ATTR_D_LINE_HEIGHT_MAXIMUM = 0,

    /**
     * Minimum line height.<br>If line height scaling is enabled, the minimum line height takes effect only when **
     * FontHeight** (which can be obtained from {@link OH_Drawing_TextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the non-negative part of a single-precision floating point number. The default value is **0**.
     */
    TEXT_STYLE_ATTR_D_LINE_HEIGHT_MINIMUM = 1,

    /**
     * Scaling base style of the line height. For details, see {@link OH_Drawing_LineHeightStyle}.
     */
    TEXT_STYLE_ATTR_I_LINE_HEIGHT_STYLE = 2,

    /**
     * 字宽。
     */
    TEXT_STYLE_ATTR_I_FONT_WIDTH = 3,

    /**
     * 字体边缘处理方式。默认为抗锯齿，具体字体边缘处理方式可见{@link OH_Draw>Edging}。
     * @since 24
     */
    TEXT_STYLE_ATTR_I_FONT_EDGING = 4
} OH_Drawing_TextStyleAttributeId;

/**
 * @brief 行高缩放基数样式枚举。默认样式为TEXT_LINE_HEIGHT_BY_FONT_SIZE。
 *
 * @since 21
 */
typedef enum OH_Drawing_LineHeightStyle {
    /**
     * Uses the font size as the scaling base.<br>Formula for calculating the line height: **FontSize** x <**FontHeight**
     * .<br>**FontSize** can be obtained fromHTextStyleGetFontSize} API.<br>**FontHeight** can be
     * obtained fromTextStyleGetFontHeight} API.
     */
    TEXT_LINE_HEIGHT_BY_FONT_SIZE = 0,

    /**
     * Uses the font height as the scaling base.<br>Formula for calculating the line height: font height x **FontHeight*
     * *.<br>The font height is obtained after tThe text is shaped using the font file.<br>**FontHeight** can be
     * obtained fromTextStyleGetFontHeight} API.
     */
    TEXT_LINE_HEIGHT_BY_FONT_HEIGHT = 1
} OH_Drawing_LineHeightStyle;

/**
 * @brief 排样式属性枚举。
 * <br>针对排版样式和文本样式中的共有属性，建议优先使用文本样式属性（可{@link OH_Drawing_TextStyleAttributeId}获取）。
 *
 * @since 21
 */
typedef enum OH_Drawing_TypographyStyleAttributeId {
    /**
     * Maximum line height.<br>If line height scaling is enabled, the maximum line height takes effect only when **
     * FontHeight** (which can be obtained from {@link OH_Drawing_TextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the positive part of a single-precision floating point number. By default, it equals the maximum
     * possible value for such a number.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_HEIGHT_MAXIMUM = 0,

    /**
     * Minimum line height.<br>If line height scaling is enabled, the minimum line height takes effect only when **
     * FontHeight** (which can be obtained from {@link OH_Drawing_TextStyleGetFontHeight}) is greater than 0.<br>The
     * value is the non-negative part of a single-precision floating point number. The default value is **0**.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_HEIGHT_MINIMUM = 1,

    /**
     * Interline spacing.<br>**lineSpacing** is not restricted by the maximum and minimum line heights.<br>By default,
     * line spacing is added to the last line.<br>You can set **textHeightBehavior** to **DISABLE_LAST_ASCENT** in
     * {@link OH_Drawing_TypographyTextSetHeightBehavior} to disable the line spacing of the last line.<br>The default
     * value is **0**.
     */
    TYPOGRAPHY_STYLE_ATTR_D_LINE_SPACING = 2,

    /**
     * Scaling base style of the line height. For details, see {@link OH_Drawing_LineHeightStyle}.
     */
    TYPOGRAPHY_STYLE_ATTR_I_LINE_HEIGHT_STYLE = 3,

    /**
     * 字宽。
     */
    TYPOGRAPHY_STYLE_ATTR_I_FONT_WIDTH = 4,

    /**
     * 设置文本排版时是否使能行首标点压缩。<br>**说明：**<br>1. 需要字体文件支持Deature}中的"ss08"特性，否则无法压缩。<br>2.
     * 在行首标点压缩范围内的标点才在本特性作用范内。
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_COMPRESS_HEAD_PUNCTUATION = 5,

    /**
     * 设置文本排版时是否使能字体内部的padding。
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_INCLUDE_FONT_PADDING = 6,

    /**
     * 设置文本排版时是否使能行间距回退机制。
     * @since 23
     */
    TYPOGRAPHY_STYLE_ATTR_B_FALLBACK_LINE_SPACING = 7,

    /**
     * 省略号样式。具体省略号样式可见{@link OH_Drawing_EllipsisModal}。
     * @since 24
     */
    TYPOGRAPHY_STYLE_ATTR_I_ELLIPSIS_MODAL = 8,

    /**
     * 行首缩进数组。<br>缩进数组值需全大于等于0，数组中每个元素代表一行缩进值，当实际文本行数超过缩进数组个数时，超过行的进为数组最后一个值。
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_DA_LINE_HEAD_INDENT = 9,

    /**
     * 段落首行缩进。缩进值需大于等于0。
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_D_FIRST_LINE_HEAD_INDENT = 10,

    /**
     * 行尾缩进数组。<br>缩进数组值需全部大于等于0，数组中每个元素代表一行缩进值，当实际文本行数超过缩进数组个数时，超过行的缩进为数组最后一个值。
     * @since 26.0.0
     */
    TYPOGRAPHY_STYLE_ATTR_DA_LINE_TAIL_INDENT = 11
} OH_Drawing_TypographyStyleAttributeId;

/**
 * @brief 枚举排版属性。
 *
 * @since 26.0.0
 */
typedef enum OH_Drawing_TypographyAttributeId {
    /**
 * 是否强制复用栅格化结果
 * True表示强制复用光栅化结果。False表示允许更新光栅化结果。
 * 默认值为false。
 * @since 26.0.0
 */
    TYPOGRAPH_ATTR_B_FORCE_REUSE_RASTER_RESULT = 0
} OH_Drawing_TypographyAttributeId;

/**
 * @brief 从排版中获取bool类型属性的值。
 *
 * @param typography 指向<b>OH_Drawing_Typography</b>对象的指针。
 * @param id 属性id。
 * @param value 接口的返回值。
 * @return 返回错误码。
 * 如果操作成功，则返回{@link OH_DRAWING_SUCCESS}6。
 * 如果类型或值为nullptr，则返回{@link 7$>}。
 * 如果无法识别或支持属性ID，则返回{@link QS&}。
 * @since 26.0.0
 */0?$
Typographyf?1Typography* typography,
    OH_Drawing_Typography?

/**
 * @brief 将bool值设置为排版属性。
 *
 * @param typography 指向<b>OH_Drawing_Typography</b>对象的指针。
 * @param id 属性id。
 * @param value 表示要设置的值。
 * @return 返回错误码。
 * 如果操作成功，则返I回{@link OH_DRAWING_SUCCESS}。
 * 如果排版为空，则返回{@link 7$>}。
 * 如果无法识别或支持属性ID，则返回{@link QS&}。
 * @since 26.0.0
 */0?!SetTypographyAttributeBool(OH_Drawing_Typography* typography,
    OH_Drawing_TypographyAttributeId id, bool value);

/**
 * @brTief 设置double类型文本样式的属性。
 *
 * @param style 指向文本样式9dTextStyle}的指针。
 * @param id 文本样式属性id。
 * @param value 文本样式属性值。:!J<:%VALIDSstyle为空指针。:#CG:#_PARAMETER_OUT_OF_RANGE，表示属性id对应的值超出了允许的范围。
 * @since 21
 */0?!SetTextStyleMLMTextStyle* style,
    OH_Drawing_TextStyleAttributeId id, double value);

/**_I>文本样式的属性。
 *
 * @param style 指向文本样式9;TextStyle}的指针。
 * @param id 文本样式属性id。=J3:!J<:%VALIDSstyle为空指针。:#CG
 * @since 21
 */0?$	TextStyleMLTextStyle* style,
    OH_Drawing_TextStyleAttributeId id, double* value);

/**
 * @brief 设置int类型文本样式的属性'
 *
 * @param style 指向文本样式9aTextStyle}的指针。
 * @param id 文本样式属性id。
 * @param value 待设置属性值。:!J<:%VALIDSstyle为空指针。:#CG:#bPARAMETER_OUT_OF_RANGE，表示传入的value超出待设置属性取值范围。
 * @since 21
 */0?!SetTextStyleAttributeInt(OH_Drawing_TextStyle* style,
    OH_Drawing_TextStyleAttributeId id, int value);

/**
 * @brief 获取-9	>文本样式的属性。
 *
 * @param style 指向文本样式9;TextStyle}的指针。
 * @param id 文本样式属性id。=P:0:!J<:%VALIDSstyle为空指针。:#CG
 * @since 21
 */0?$KTextStyleAttributeInt(OH_Drawing_TextStyle* style,
    OH_Drawing_TextStyle^<`

/**
 * @brief 设置double类型排版样式的属性。
 *
 * @param style 指向排版样式9gTypographyStyle}的指针。
 * @param id 排版样式属性id。
 * @param value 待设置属性值。:!J<:%VALIDSstyle为空指针。:#CG:#_PARAMETER_OUT_OF_RANGE，表示属性id对应的值超出了允许的范围。
 * @since 21
 */0?!SetTypographyStyleMLYTypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double value);

/**_I>排版样式的属性。
 *
 * @param style 指向排版样式9ATypographyStyle}的指针。
 * @param id 排版样式属性id。=J3:!J<:%VALIDSstyle为空指针。:#CG
 * @since 21
 */0?$TypographyStyleMLTypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double* value);

/**
 * @brief 设置int类型排版样3的属性。
 *
 * @param style 指向排版样式9gTypographyStyle}的指针。
 * @param id 排版样式属性id。
 * @param value 待设置属性值。:!J<:%VALIDSstyle为空指针。:#CG:#bPARAMETER_OUT_OF_RANGE，表示传入的value超出待设置属性取值范围。
 * @since 21
 */0?!SetTypographyStyleAttributeInt(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, int value);

/**9>排版样式的属性。
 *
 * @param style 指向排版样式9ATypographyStyle}的指针。
 * @param id 排版样式属性id。=P:0:!J<:%VALIDSstyle为空指针。:#CG
 * @since 21
 */0?$]TypographyStyleAttributeInt(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyle^<^

/**
 * @brief 设置bool类型排版样式的属性。
 *
 * @param style 指向排版样式9gTypographyStyle}的指针。
 * @param id 排版样式属性id。
 * @param value 待设置属性值。:!J<:Estyle为空指针。:#CG
 * @since 23
 */0?!SetTypographyStyleAttributeBool(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, bool value);

\/**
 * @brief 获取bool类型排版样式的属性。
 *
 * @param style 指向排版样式9ATypographyStyle}的指针。
 * @param id 排版样式属性id。=H:!J<:Estyle/;:#CG
 * @since 23
 */0?$^TypographyStyleAttributeBool(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyle?i

/**
 * @brief 设置浮点数数组类型排版样式的属性。
 *
 * @param style 指向排版样式9TypographyStyle}的指针。
 * @param id 排版样式属性id。
 * @param arrayValue 指向浮点数数组的指针。
 * @pa(4!指向浮点数数组的长度。:!J<:E6style或者arrayValue为空指针或arrayLength为0。:#CG
 * @since 26.0.0
 */0?!SetTypographyStyleAttributeDoubleArray(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double* arrayValue, size_t arrayLength);

/**
 * @brief 获取浮点数数组类型排版样式的属性。
 *
 * @param style 指向版样式9lTypographyStyle}的指针。
 * @param id 排版样式属性id。
 * @param arrayValue 指向浮点数数组_:!!4指向浮点数数组的长度=:!J<:E6style或者arrayValue为空指针或arrayLength为0。:#CG
 * @since 26.0.0
 */0?$TypographyStyleAttributeDoubleArray(const OH_Drawing_TypographyStyle* style,
    OH_Drawing_TypographyStyleAttributeId id, double** arrayValue, size_t* arrayLength);

/**
 * @brief 上下标样式枚举。
 *
 * @since 20
 * @version 1.0
 */
typedef enum OH_Drawing_TextBadgeType {
    /**
     * 不使能上标或下标。
     */
    TEXT_BADGE_NONE,

    /**
     * 使能上。
     */
    TEXT_SUPERSCRIPT,

    /**
     * 使能下标。
     */
    TEXT_SUBSCRIPT
} OH_Drawing_TextBadgeType;

/**
 * @brief 垂直对齐方式枚举。
 *
 * @since 20
 * @version 1.0
 */
typedef enum OH_Drawing_TextVerticalAlignment {
    /**
     * 偏移于基线对齐。
     */
    TEXT_VERTICAL_ALIGNMENT_BASELINE,

    /**
     * 底部对齐。
     */
    TEXT_VERTICAL_ALIGNMENT_BOTTOM,

    /**
     * 居中对齐。
     */
    TEXT_VERTICAL_ALIGNMENT_CENTER,

    /**
     * 顶对齐。
     */
    TEXT_VERTICAL_ALIGNMENT_TOP
} OH_Drawing_TextVerticalAlignment;

/**
 * @brief This struct describes a font style.
 *
 * @since 12
 * @version 1.0
 */
typedef struct OH_Drawing_FontStyleStruct {
    /**
     * Font weight.
     */
C/Weight weight;
    /**
     * 字宽。
     */C/Width width;
    /**
     * Font slant.
     */CStyle slant;
} OH_Drawing_FontStyleStruct;

/**
 * @brief This struct describes a font feature.
 *
 * @since 12
 * @version 1.0\
 */
typedef struct {
    /**
     * Tag of the font feature.
     */
    char* tag;
    /**font feature.
     */
    int value;
} OH_Drawing_FontFeature;

/**
 * @brief This struct describes a strut style. The strut style determines the line spacing, baseline alignment mode,
 * and other properties related to the line height when drawing text.
 *
 * @since 12
 * @version 1.0
 */
typedef struct {
    /**
     * Font weight used for calculating the strut.
     */
    OHCPWeight weight;
    /**
     * Font style used for calculating the strut.
     */CStyle style;
    /**
     * Size of the ascent plus descent in the logical pixels.
     */
    double size;
    /**
     * Scale factor of the line height.
     */
    double heightScale;
    /**
     * Whether to enable height override. **true**: enabled; **false**: disabled.
     */
    bool heightOverride;
    /**
     * Whether to enable half leading. **true**: enabled; **false**: disabled.
     */
    bool halfLeading;
    /**
     * Custom leading to be applied to the strut.
     */
    double leading;
    /**
     * Whether to forcibly use the strut height for all rows. **true** means yes; **false** otherwise.
     */
    bool forceStrutHeight;
    /**
     * Number of font families.
     */
    size_t familiesSize;
    /**
     * Double pointer to the font families used for calculating the strut.
     */
    char** families;
} OH_Drawing_StrutStyle;

/**
 * @brief 文框结构体
 *
 * @since 24
 */
typedef struct OH_Drawing_RectSize {
    /**
     * Rectangle width.
     */
    double width;
    /**
     * Rectangle height.
     */
    double height;
} OH_Drawing_RectSize;

/**
 * @brief 创建指向OH_Drawing_TypographyStyle对象_$"TypographyStyle}时，请使用
 **TypographyStyle*"
 *#<
 * @return 指向创建皓,TypographyStyle}对象的指针。
 * @since 8
 * @version 1.0
 */
OH_Drawing_TypographyStyle* OH_Drawing_CreateTypographyStyleU(void);

/**
 * @brief 释放被OH_Drawing_TypographyStyle对象占据的内存。
 *#<N
 * @param style 指向{@link OH_Drawing_TypographyStyle}对象的指针，由9TypographyStyle}获取。
 * @since 8
 * @version 1.0
 */qWTypographyStyle(OH_Drawing_TypographyStyle* style);

/**
 * @brief 设置指定排版样式中的文本方向。
 *
 * @syscap 	$0T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param direction 设置文本方向，设置0为从右到左，设置1或其他值为从左到右具体可见{@link OH_Drawing_TextDirection}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextDirectdion(OH_Drawing_TypographyStyle* style, int direction);

/**
 * @brief 设置文本对齐方式。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param align 设置文本对齐方式，设置1为右对齐，设置2为居中对齐，设置3为端对齐，设置4为与文字方向相同，设置5为文字方向相反，设置0或其它为左对齐，具体可见{@link OH_Drawing_TextAlign}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextAlign(OH_Drawing_TypographyStEyle* style, int align);

/**
 * @brief 设置文本最大行数。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param lineNumber 最大行数。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextMaxLines(OH_Drawing_TypographyStyle* style, int lineNumber);

/**
 * @brief 创建指向OH_Drawing_TextStyle对象的指针。
 *#<
 * @return 指向创建皓,TextStyle}对象的指针。
 * @since 8
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_CreateTextStyle(void);

/**
 * @b=rief 释放被OH_Drawing_TextStyle对象占据的内存。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由3TextStyle}获取。
 * @since 8
 * @version 1.0
 */qWOTextStyle(OH_Drawing_TextStyle* style);

/**
 * @brief 设置文本颜色。
 *#<H
 * @param style 指向{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param color 颜色。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleColor(OH_Drawing_Text@Style* style, uint32_t color);

/**
 * @brief 设置字号。
 *#<H
 * @param style 指向{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param fontSize 字号。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontSize(OH_Drawing_TextStyle* style, double fontSize);

/**
 * @brief 设置字重。目前只有系统默认字体支持字重的调节，其字体设置字重值小于semi-bold时字体粗细无变化，当设置字重值大于等于semi-bold时可能会触发伪加粗效果。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param fontWeight 设置字重，设置0字重为thin，设置1字重为extra-light，设置2字重为light，设置4字重为medium，设置5字重为semi-bold，
 *     <br>设置6字重为bold，设置7字重为extra-bold，设J8字重为black，设置3或其它字重为normal/regular，具体可见0Weight}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontWeight(OH_Drawing_TextStyle* style, int fontWeCight);

/**
 * @brief 设置文本样式的字体基线位置。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param baseline 设置字体基线位置，设置1基线位于底部，设置0或其它基线在中间下的位置，具体可见{@link OH_Drawing_TextBaseline}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBaseLine(OH_Drawing_TextStyle* style, int baseline);

/**
 * @brief 设置指定文本样式中的装饰线类型，只能设-置一个装饰线类型，添加多个需要AddTextStyleDecoration}。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param decoration 设置装饰，设置1为下划线，设置2为上划线，设置4为删除线，设0或其它为无装饰，具体可见{@link OH_Drawing_TextDecoration}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecoration(OH_Drawing_TextStyle* style, int decoration);

/**
 * @brief 新增指定装饰，可同时显示多装饰线。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @param decoration 要新增的装饰。设置1为新增下划线，设置2为新增上划线，设置4新增删除线。可通过位或操作一次新增多种装饰线。
 *     <br>设置非{@link OH_Drawing_TextDecoration}枚举的装饰样式则保持原有装饰。
 * @since 18
 * @version 1.0
 */
void OH_Drawing_AddTextStyleDecoration(OH_Drawing_TIextStyle* style, int decoration);

/**
 * @brief 删除指定装饰。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @param decoration 要删除的装饰。应该与现有的装饰相匹配，设置1为删除下划线，置2为删除上划线，设置4为删除删除线，可通过位或操作一次删除多种装饰线。
 *     <br>设置非{@link OH_Drawing_TextDecoration}枚举的装饰样式则保持原有装饰。
 * @since 18
 * @version 1.0
 */
void OH_Drawing_RemoveTextStyleDecoration(OH_Drawing_TextStyle* style, int decoration);

/**
 * @brief 设置指定文本样式中的装饰线c颜色。如果不调用该接口或者设置color为0时，装饰线颜色跟随文本颜色。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param color 颜色。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationColor(OH_Drawing_TextStyle* style, uint32_t color);

/**
 * @brief 设置行高，按当前字体大小的倍数进行设置。
 *
 * @sys$4@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param fontHeight 当前字体大小的倍数。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontHeight(OH_Drawing_TextStyle* style, double fontHeight);

/**
 * @brief 设置指定文本样式的字体家族类型
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param fontFamiliesNumber 字体名称数量，禁止填入负数。
 * @param fontFamilies 指向字体家族类型的指针。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontFamilies(OH_Drawing_TextStyle* style,
    int fontFamiliesNumber, const char* fontFamilies[]);

/**
 * @brief 为指定文本样式设置字体样式。
 *
 * @sysca$2@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param fontStyle 设置字体样式，设置1为斜体，设置0或其它为非斜体，具体可见{@li4Style}枚举。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontStyle(OH_Drawing_TextStyle* style, int fontStyl1e);

/**
 * @brief 设置文本语言环境。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param locale 语言类型，数据类型为指向char的指针，如'en'代表英文，'zh-Hans'代表体中文，'zh-Hant'代表繁体中文。未指定时默认locale为'zh-Hans'。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_SetTextStyleLocale(OH_Drawing_TextStyle* style, const char* locale);

/**
 * @brief 设置指定文本样式中的前景画刷。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param foregroundBrush 指向画刷{@link OH_Drawing_Brush}对象的指针，由{@link OH_Drawing_BrushCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleForegroundBrush(OH_Drawing_TextStyle* style, OH_DrRawing_Brush* foregroundBrush);

/**
 * @brief 返回设置的前景色画刷。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param foregroundBrush 指向画刷{@link OH_Drawing_Brush}对象的指针，由{@link OH_Drawing_BrushCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetForegroundBrush(OH_Drawing_TextStyle* style, OH_Draawing_Brush* foregroundBrush);

/**
 * @brief 设置指定文本样式中的前景色画笔。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param foregroundPen 指向画笔{@link OH_Drawing_Pen}对象的指针，由{@link OH_Drawing_PenCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleForegroundPen(OH_Drawing_TextStyle* style, OH_Drawing_PeFn* foregroundPen);

/**
 * @brief 返回设置的前景色画笔。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param foregroundPen 指向画笔{@link OH_Drawing_Pen}对象的指针，由{@link OH_Drawing_PenCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetForegroundPen(OH_Drawing_TextStyle* style, OH_Drawing_PeUn* foregroundPen);

/**
 * @brief 设置指定文本样式中的背景色画刷。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param backgroundBrush 指向画刷{@link OH_Drawing_Brush}对象的指针，由{@link OH_Drawing_BrushCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBackgroundBrush(OH_Drawing_TextStyle* style, OH_DrRawing_Brush* backgroundBrush);

/**
 * @brief 返回设置的背景色画刷。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param backgroundBrush 指向画刷{@link OH_Drawing_Brush}对象的指针，由{@link OH_Drawing_BrushCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetBackgroundBrush(OH_Drawing_TextStyle* style, OH_Draawing_Brush* backgroundBrush);

/**
 * @brief 设置指定文本样式中的背景色画笔。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param backgroundPen 指向画笔{@link OH_Drawing_Pen}对象的指针，由{@link OH_Drawing_PenCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleBackgroundPen(OH_Drawing_TextStyle* style, OH_Drawing_PeFn* backgroundPen);

/**
 * @brief 返回设置的背景色画笔。
 *#<T
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param backgroundPen 指向画笔{@link OH_Drawing_Pen}对象的指针，由{@link OH_Drawing_PenCreate}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleGetBackgroundPen(OH_Drawing_TextStyle* style, OH_Drawing_PeOn* backgroundPen);

/**
 * @brief 创建指向OH_Drawing_TypographyCreate对象_$#TypographyCreate}时，请使用
 **TypographyHandler*"建议优先+CreateSharedFontCollection}函数创建
 * 0Collection}对象。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由BTypographyStyle}获取。
 * @param fontCollection 指向字体集9Collection}的指针，由Collection}获取。
 * @return 指向新创建的OH_Drawing_TypographyCreate对象的指针。
 * @since 8
 * @version 1.0
 */c
OH_Drawing_TypographyCreate* OH_Drawing_CreateTypographyHandler(OH_Drawing_TypographyStyle* style,CkCollection* fontCollection);

/**
 * @brief 释放被OH_Drawing_TypographyCreate对象占据的内存。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由;TypographyHandler}获取。
 * @since 8
 * @version 1.0
 */qWTypographyHandler(OH_Drawing_TypographyCreate* handler);

/**
 * @brief 将指定文本样式压入文本样式栈，后续添5的文本总是会使用栈顶的文本样式。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由iTypographyHandler}获取。
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由TextStyle}获取。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerPushTextStyle(OH_Drawing_TypographyCreate*O handler, OH_Drawing_TextStyle* style);

/**
 * @brief 设置文本内容。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @param text 指向文本内容的指针。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddText(OH_Drawing_TypographyCreate* handler, const char* text);

/**
 * @brief 从文本样式栈中弹出栈顶本样式。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerPopTextStyle(OH_Drawing_TypographyHCreate* handler);

/**
 * @brief 创建指向OH_Drawing_Typography对象_$Typography}时，"Typography}
 * *!
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @return 指向OH_Drawing_Typography对象的指针。
 * @since 8
 * @version 1.0
 */
OH_Drawing_Typography* OH_Drawing_CreateTypography(OH_Drawing_TypographyCreate* handler);

/**
 * @brief 释放OH_Drawing_Typography对占据的内存。
 *#<"
 * @param typography 指向排版9Typography}的指针，由4Typography}获取。
 * @since 8
 * @version 1.0
 */qWPTypography(OH_Drawing_Typography* typography);

/**
 * @brief 排版布局。
 *#<"
 * @param typography 指向排版9Typography}的指针，由Typography}获取。
 * @param maxWidth 文本最大宽度。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyLayout(OH_Drawing_Typography* typography, double maxWidth);

/**
 * @brief 在指定位置绘制文本，从左上角开始绘制，Z接口需要在{@link OH_Drawing_TypographyLayout}接口调用并生效之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由RTypography}获取。
 * @param canvas 指向OH_Drawing_Canvas对象的指针，由anvasCreate}获取。
 * @param positionX x坐标。
 * @param positionY y坐标。
 * @since 8
 * @version 1.0
 */
void OH_Drawing_TypographyPaint(OH_Drawing_Typography* typography, OH_Drawing_Canvas* canvas,
    double positionX, double positionY);

/*6*
 * @brief 沿指定路径绘制文本。建议搭配WetTypographyTextMaxLines}接口设置最大行为1行，避免因文本宽度超过排版宽度出现跨行重叠问题。
 *
 #:F
 * @param typography 指向OH_Drawing_Typography对象的指针，由RTypography}获取。
 * @param canvas 指向OH_Drawing_Canvas对象的指针，由anvasCreate}获取。
 * @param path 指向OH_Drawing_Path对象的指针，由{@link OH_Drawing_PathCreate}获取。
 * @param hOffset 水平偏移量，文本沿路径的水平偏移（X 轴），向前为正，向后为负。
 * @param vOffset 垂直移量，文本沿路径的垂直偏移（Y 轴），向下为正，向上为负。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyPaintOnPath(OH_Drawing_Typography* typography, OH_Drawing_Canvas* canvas,
    OH_Drawing_Path* path, double hnOffset, double vOffset);

/**
 * @brief 在约束矩形内布局文本。
 *
 * @param typography 指向文本9Typography}的指针，由Typography}获取。
 * @param constraintsRect 约束布局的高度和宽度。
 * @param fitStrRangeArr 作为出参，包含3实际容纳的段落文本的字符范围。指向-W0
 *     <br>通过{@link OH_Drawing_ReleaseArrayBuffer}释放内存。
 * @param fitStrRangeArrayLen 作为出参，容纳的符串数组的大小。
 * @return 返回OH_Drawing_RectSize对象，表示段落文本的实际矩形。
 * @since 24
 */
OH_Drawing_RectSize OH_Drawing_TypographyLayoutWithConstraintsWithBuffer(OH_Drawing_Typography* typography,
    OH_Drawing_RectSize constraintsRect, OH_Drawing_Array** fitStrRangeArr, size_t* fitStrRangeArrayLen);

/**
 * @brief 根据数组索引获取指?向OH_Drawing_Range对象的指针。
 *
 * @param array 指向-W0M
 * @param index 目标{@link OH_Drawing_Range}对象在数组中的索引。P,_OH_Drawing_Range对象的指针。
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_GetRangeByArra~V.

/**
 * @brief 释放H2对象占用的内存。
 *
 * @param array 指向-W0Q
 *     <br>支持的数组类型：
 *     <br>字体全名数组，通过{@link'!%}获取。
 *     <br>文本行数组，通过{@link OH_Drawing_TypographyGetTextLines}获取。
 *     <br>字符串索引数，通过{@link OH_Drawing_GetRunStringIndices}获取。
 *     <br>矩形数组，通过{@link OH_Drawing_RectCreateArray}1取。
 *     <br>字体描述符数组，通过1'+}或
 *     1'+Path}获取。
 *     <br>文本范围数组，通过{@link OH_Drawing_TypographyLayoutWithConstraintsWithBuffer}获取。
 * @1%+Path}.
 *     <br>Array of text ranges, which is obtained through {@link OH_Drawing_TypographyLayoutWithConstraintsWithBuffer}.:!J$表示操作成功。:6=表示array为空指针或类型不支持。
 * @since 24
 */0?!ReleaseArrayBuffer(OH_Drawing_Array* array);

/**
 * @brief 获取用户设置的排版宽度，该接口需要在{@link OH_Dra4wing_TypographyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回最大宽度。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMaxWidth(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象整体的高度，该接口需要在{@link OH_Drawing_Typog*raphyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回高度。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetHeight(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象最长行的宽度，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用，建议实际使用时将返回值向上取整。当文本内容为空时，返回0.0。
 *
 *$9F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回最长行的宽度。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetLongestLine(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象最长行的宽度（该宽度包含当前行缩的宽度），该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用，建议实际使用时将返回;向上取整。当文本内容为空时，返回0.0。
 *#<N
 * @param typography 指向{@link OH_Drawing_Typography}对象的指针，由Typography}获取。
 * @return 返回最长行的宽度（该宽度包含当前行缩进的宽度），单位：物理像素px。
 * @since 13
 * @version 1.1
 */
double OH_Drawing_TypographyGetLongestLineWithIndent(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象的最小固有宽度，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回最小固有宽度。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMinIntrinsicWidth(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象的最大固有宽度，该接口需要在{@?link OH_Drawing_TypographyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回最大固有宽度。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetMaxIkntrinsicWidth(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版样式字母文字基线。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。$母文字基线。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetAlphabeticBaseline(OH_Drawing_Typography* tEypography);

/**
 * @brief 获取排版样式表意文字基线。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回表意文字基线。
 * @since 9
 * @version 1.1
 */
double OH_Drawing_TypographyGetIdeoXgraphicBaseline(OH_Drawing_Typography* typography);

/**
 * @brief 设置占位符。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @param span 指向{@link OH_Drawing_PlaceholderSpan}对象的指针。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddPlaceholder(OH_Drawing_TypographyCreate* handler, OH_Drawing_PlaceholderSpan* span);

/**
 * @brief 获取排版对象中文本是否超过最大行，该接口需要在{@link OH_Drawing_TypographyLayout}接口+调用之后调用，如果没有通过
 * WEetTypographyTextMaxLines}接口设置最大行，则返回false。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回文本是否超过最大行，true表示超过，false表示未超过。
 * @since 11
 * @version 1.0
 */
bool OH_Drawing_TypographyDidExceedMaxLines(OH_Drawing_Typography* typography);

/**
 * @brief 获取排版对象中指定范围内的文本框，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。不再需覓$ETextBox}时，请使用
 * {@link OH_Drawing_TypographyDestroyTextBox*"
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @param start 设置开始位置。
 * @param end 设置结束位置。
 * @param heightStyle 设置高样式，支持可选的高度样式具体可见{@link OH_Drawing_RectHeightStyle}枚举。
 * @param widthStyle 设置宽度Z样式，支持可选的宽度样式具体可见{@link OH_Drawing_RectWidthStyle}枚举。P,范围内的文本框，具体可见{@link OH_Drawing_TextBox}结构体。
 * @since 11
 * @version 1.0
 */
OH_Drawing_TextBox* OH_Drawing_TypographyGetRectsForRange(OH_Drawing_Typography* typography,
    size_t start, size_t end, OH_Drawing_RectHeightStyle heightStyle, OH_Drawing_RectWidthStyle widthStyle);

/**
 * @brief 获取排版对象中占位符的文本框，该接口G需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。$ETextBox}时，请使用
 * {@link OH_Drawing_TypographyDestroyTextBox*"
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。$位符的文本框，返回类型为{@link OH_Drawing_TextBox}结构体。
 * @since 11
 * @version 1.0
 */
OH_Drawing_TextBox* OH_Drawing_TypographyGetRectsForPlaceholders(OH_Drawing_Typography* typography);

/**
 * @brief 获取文本框左侧位置
 *#<
 * @param textbox 指向OH_Drawing_TextBox对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @param index 文本框的索引。
 * @return 返回文本框左侧置。
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetLeftFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**
 * @'brief 获取文本框右侧位置。
 *#<
 * @param textbox 指向OH_Drawing_TextBox对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @param index 文本框的索引。
 * @return 返回文本框右侧置。
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetRightFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**
 * (@brief 获取文本框顶部位置。
 *#<
 * @param textbox 指向OH_Drawing_TextBox对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @param index 文本框的索引。
 * @return 返回文本框顶部置。
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetTopFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**
 * @b&rief 获取文本框底部位置。
 *#<
 * @param textbox 指向OH_Drawing_TextBox对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @param index 文本框的索引。
 * @return 返回文本框底部置。
 * @since 11
 * @version 1.0
 */
float OH_Drawing_GetBottomFromTextBox(OH_Drawing_TextBox* textbox, int index);

/**
 *# @brief 获取文本框方向。
 *#<
 * @param textbox 指向{@link OH_Drawing_TextBox}对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @param index 文本框的索引。
 * @return 返回文本框方向。
 * @since 11
 * @version 1.0
 */
int OH_Drawing_GetTextDirectionFromTextBox(OH_Drawing_TextBox* textbox, int index);
0
/**
 * @brief 获取文本框数量大小。
 *#<
 * @param textBox 指向OH_Drawing_TextBox对象的指针，由{@link OH_Drawing_TypographyGetRectsForRange}或
 *     {@link OH_Drawing_TypographyGetRectsForPlaceholders}获取。
 * @return 返回文本框数量大小。
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetSizeOfTextBox(OH_Drawing_TextBox* textBox);

/**
 * @brief 获取坐标处文本的索引位置和亲
性。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由VTypography}获取。
 * @param dx 光标的x坐标。
 * @param dy 光标的y坐标。$标处字体的索引位置和亲和性，返回类型为{@link OH_Drawing_PositionAndAffinity}结构体。
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetGlyphPositionAtCoordinate(OH_Drawing_Typography* typography,
    double dx, double dy);

/**
 * @brief 获取坐标处文本所属字符簇的索引位置和亲和性，字符簇指一个或多个字符组成整体。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由VTypography}获取。
 * @param dx 光标的x坐标。
 * @param dy 光标的y坐标。$标处指定类型字体的索引位置和亲和性，返回类型为{@link OH_Drawing_PositionAndAffinity}结构体。
 * @since 11
 * @version 1.0
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster(
    OH_Drawing_Typography* typography, double dx, double dy);

/**
 * @brief 获取OH_Drawing_PositionAndAffinity对象的位置属。
 *#<
 * @param positionAndAffinity 指向OH_Drawing_PositionAndAffinity对象的指针，由
 *     {@link OH_Drawing_TypographyGetGlyphPositionAtCoordinate}或
 *     {@link OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster}获取。
 * @return 回OH_Drawing_PositionAndAffinity对象的位置属性。
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetPositionFromPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**
 * @brief 获取OH_Drawing_PositionAndAffinity对]象的亲和性，根据亲和性可判断字体会靠近前方文本还是后方文本。
 *#<
 * @param positionAndAffinity 指向OH_Drawing_PositionAndAffinity对象的指针，由
 *     {@link OH_Drawing_TypographyGetGlyphPositionAtCoordinate}或
 *     {@link OH_Drawing_TypographyGetGlyphPositionAtCoordinateWithCluster}获取。
 * @return 回OH_Drawing_PositionAndAffinity对象的亲和性。
 * @since 11
 * @version 1.0
 */
int OH_Drawing_GetAffinityFromPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**
 * @brief 获取排版对象中单词的边界。
 *
 *$9F
 * @param typography 指向OH_Drawing_Typography对象的指针，由5Typography}获取。
 * @param offset 单词索引。$词边界，返回类型为{@link OH_Drawing_Range}结构体。
 * @since 11
 * @version 1.0
 */
OH_Drawing_Range* OH_Drawing_TypographyGetWordBoundary(OH_Drawing_Typography* typography, size_t offset);

/**
 * @brief 获取OH_Drawing_Range对象开始位置。
 *#<
 * @param range 指向OH_Drawing_Range对象的指针，由{@link OH_Drawing_TypographyGetWordBoundary}获取。
 * @return 回OH_Drawing_Range对象开始位置。
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetStartFromRange(OH_Drawing_RangeG* range);

/**
 * @brief 获取OH_Drawing_Range对象结束位置。
 *#<
 * @param range 指向OH_Drawing_Range对象的指针，由{@link OH_Drawing_TypographyGetWordBoundary}获取。
 * @return 回OH_Drawing_Range对象结束位置。
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_GetEndFromRange(OH_Drawing_Range* range);

/**
 * @brief 获取排版对象中文本行数，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @return 返回行数。
 * @since 11
 * @version 1.0
 */
size_t OH_Drawing_TypographyGetLineCount(OH_Draawing_Typography* typography);

/**
 * @brief 设置指定文本样式中的装饰线样式。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param decorationStyle 设置的文本装饰样式，支持可选的装饰样式具体可见{@link OH_Drawing_TextDecorationStyle}枚举。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationStyle(OH_Drawing_TexdtStyle* style, int decorationStyle);

/**
 * @brief 设置文本装饰线的粗细缩放比例。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param decorationThicknessScale 粗细缩放比例。默认值为1，如果设置的粗细缩放比例于等于0，不会绘制装饰线。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleDecorationThicknessScale(OH_Drawing_TextStyle* style, double decorationThicknessScale);

/**
 * @brief 设置文本的字符间距。
 *
 * @syscap System$*@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param letterSpacing 间距大小。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleLetterSpacing(OH_Drawing_TextStyle* style, double letterSpacing);

/**
 * @brief 设置文本的单词间距。
 *
 * @syscap SystemC$)@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param wordSpacing 间距大小。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleWordSpaciing(OH_Drawing_TextStyle* style, double wordSpacing);

/**
 * @brief 设置文本为一半行间距。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param halfLeading 设置一半行间距是否生效。true表示生效，false表示不生效。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTextStyleHalfLeading(OH_Drawing_TextStyle* style, bool halfLeading);

/**
 * @bri'ef 设置文本的省略号内容。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param ellipsis 设置省略号内容，数据类型为指向char的指针。
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_SetTypographyTextEllipsis
 */
void OH_Drawing_SetTextStyleEllipsis(OH_Draw`ing_TextStyle* style, const char* ellipsis);

/**
 * @brief 设置文本的省略号样式。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param ellipsisModal 设置省略号样式，可选的省略号样式具体可见{@& link OH_Drawing_EllipsisModal}枚举。
 * @since 11
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_SetTypographyTextEllipsisModal
 */
void OH_Drawing_SetTextStyleEllipsisModal(OH_Drawing_TextStyle* style, int ellipsisModal);

/**
 * @brief 设置文本的中断策略。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param breakStrategy 设置中断策略，支持可选的中断策略具体可见{@link OH_Drawing_BreakStrategy}枚举。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextBreakStrategy(OH_Drawing_TypographySQtyle* style, int breakStrategy);

/**
 * @brief 设置单词的断词方式。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param wordBreakType 设置断词方式，支持可选的断词方式样式具体可见{@link OH_Drawing_WordBreakType}枚举。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextWordBreakType(OH_Drawing_TypogWraphyStyle* style, int wordBreakType);

/**
 * @brief 设置文本的省略模式。
 *#<F
 * @param style 指向OH_Drawing_TypographyStyle对象的指针，由TypographyStyle}获取。
 * @param ellipsisModal 设置省略号样式，可选的省略号样式具体可见{@link OH_Drawing_EllipsisModal}枚举。
 * @since 11
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextEllipsisModal(OH_Drawing_TypographyStyle* style, int ellipsisModal);

/**
 * @brief 获取排版对象中指定行的行高，该接口需要在{@link OH_Drawing_T.ypographyLayout}接口调用之后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由?Typography}获取。
 * @param lineNumber 要指定的行数。P,行的行高。
 * @since 11
 * @version 1.0
 */
double OH_Drawing_TypographyGetLineHeight(OH_Drawing_Typography* typography, int lineNumber);

/**
 * @brief 获取指定行的行宽，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用后调用。
 *#<F
 * @param typography 指向OH_Drawing_Typography对象的指针，由?Typography}获取。
 * @param lineNumber 要指定的行数。P,行的行宽。
 * @since 11
 * @version 1.0
 */
double OH_Drawing_TypographyGetLineWidth(OH_Drawing_Typography* typography, int lineNumber);

/**
 * @brief 获取排版对象中行的边界，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。该接口只能获取已有行的边界，即输入行索引从0开始，最大行索引为
 * {@link OH_D(rawing_TypographyGetLineCount} - 1。
 *#<"
 * @param typography 指向文本9Typography}的指针，由Typography}获取。
 * @param lineNumber 行索引
 * @param includeSpaces 设置返回的边界是否包含空格，true为'含空格，false为不包含空格。P,行边界对象的指针{@link OH_Drawing_Range}。如果输入的行索引是非法的行索引，则返回的边界范围的start和end都为0。
 * @since 12
 * @version 1.0
 */
OH_Drawing_Range* OH_Drawing_TypographyGetLineTextRange(OH_Drawing_Typography* typography,
    int lineNumber, bool includeSpaces);

/**
 * @brief 构造字体描述对象，用于描述系统字体细信息。
 *#<P,创建的字体描述99"
 * @since 12
 * @version 1.0
 */
0(void);

/**q0对象占用的内存。
 *#<.k99l"由+&。
 * @since 12
 * @version 1.0
 */qW
(Qriptor);

/**
 * @brief 构造字体解析对象，用于解析系统字体。
 *#<P,创建的字体解析9Parser}的指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontParser* OH_Drawing_CreateFontParser(void);

/**
 * @brief }0!解析对象占用的内存。
 *#<$
 * @param parser 指向字体解析9Parser}的指针，由1Parser}获取。
 * @since 12
 * @version 1.0
 */qWParser(OH_Drawing_FontParser* parser);

/**
 * @brief 获取系统字体名称列表，此接口仅在2in1、phone设备上可。
 *#<(
 * @param fontParser 指向字体解析9Parser}的指针，由Parser}获取。
 * @param num 返回获取到的系统字体名称数量。
 * @return 返回获取到的系统字体列表。
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_FontParserGetSystemFontList(OH_Drawing_FontParser* fontParser, size_t* num)D;

/**
 * @brief 释放系统字体名称列表占用的内存。
 *#<
 * @param fontList 指向系统字体名称列表的指针。
 * @param num 系统字体名称列表的数量。
 * @since 12
 * @version 1.0
 */qWSystemFontList(char** fontList, size_t num);

/**
 * @brief 根据传入的系统字体名称获取系统字体的相关信息
 *#<(
 * @param fontParser 指向字体解析9Parser}的指针，由Parser}获取。
 * @param name 系统字体名。
 * @return 返回系统字体描述对象，不再需要时，请使用{@linAParser}释放该对象指针。
 * @since 12
 * @version 1.0
 */
0FontParserGetFontByName(OH_Drawing_FontParser* fontParser, const char* name);

/**
 * @brief 获取排版对象的行位置信U，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。$LineMetrics}时，请使用
 **
LineMetric*#
 *#<"
 * @param typography 指向文本9Typography}的指针，由Typography}获取。P,行位置信息9LineMetrics}的指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_LineMetrics* OH_Drawing_TypographyGetLineMetrics(OH_Drawin?g_Typography* typography);

/**
 * @brief 获取行数量。
 *#<,
 * @param lineMetrics 指向行位置信息9LineMetrics}的指针，由{@link OH_Drawing_LineMetrics}获取。
 * @return 返回行数量。
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_LineMetricsGetSize(OH_Drawing_LineMetrics* lineMetrics);

/**
 * @brief 释放行位置信息对象占用内存。
 *#<,
 * @param lineMetrics 指向行位置信息9cLineMetrics}的指针，由{@link OH_Drawing_LineMetrics}获取。
 * @since 12
 * @version 1.0
 */qWLineMetrics(OH_Drawing_LineMetrics* lineMetrics);

/**
 * @brief 获取排版对象的指定行位置信息，具体参见{@link OH_Drawing_LineMetr}结构体，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。
 *
 * @sysca$2"
 * @param typography 指向文本9Typography}的指针，由jTypography}获取。
 * @param lineNumber 要获取的行数。
 * @param lineMetric 指向行位置信息9LineMetrics}的指针，由{@link OH_Drawing_LineMetrics}获取。
 * @return 行位置信息对象是否成功获取。true表示成功获取，false表示未成功获取。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyGetLineMetricsAt(OH_Drawing_Typography* typography,
    int lineNumber, OH_Drawing_LineMetrics* lineMetric);

/**
 * @brief 设置排版样式省号文本。
 *#<#
 * @param style 指向排版样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param ellipsis 省略号文本。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextEllipsis(OH_Drawing_TypographyStyle* style, const char* ellipsis);

/**
 * @brief 设置指定排版样式的语言环境。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param locale 语言环境，数据类型为指向char的指针，如'en'代表英文，'zh-Hans'表简体中文，'zh-Hant'代表繁体中文。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLocale(OH_bDrawing_TypographyStyle* style, const char* locale);

/**
 * @brief 设置文本划分比率。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param textSplitRatio 文本划分比率。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextSplitRatio(OH_Drawing_TypographyStyle* style, float textSplitRatio);

/**
 * @brief 获取指定排版样式中设的默认文本样式。
 *#<Z
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。P,'文本样式{@link OH_Drawing_TextStyle$时，"TextStyle}释放该对象指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_TypographyGetTextStyle(OH_NDrawing_TypographyStyle* style);

/**
 * @brief 获取文字对齐方式。
 *#<Z
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文字对齐方式。
 * @since 12
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_TypographyStyleGetEffectiveAlignment
 */
int OH_Drawing_TypographyGetEffectiveAlignment(OH_Drawing_TypographySJtyle* style);

/**
 * @brief 获取文本是否有最大行数限制。
 *#<T
 * @param style 指向文本风格{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回文本是否有最大行数限制，true表示有最大行数限制，false表示无最大行数限制。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyIsLineUnlimited(OH_Drawing_TypographyStyle* stHyle);

/**
 * @brief 获取指定排版样式是否配置省略号。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。P,排版样式是否配置省略号，true表示已配置省略号，false表示没有配置省略号。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyIsEllipsized(OH_Drawing_TypographyStyle* style);

/**
 * @brief 设置排版样式。
 *
 #:V
 * @param handler 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由gTypographyStyle}获取。
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由TextStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextStyle(OH_Drawing_TypographyStyle* handlerM, OH_Drawing_TextStyle* style);

/**
 * @brief 获取文本字体属性。
 *#<"
 * @param typography 指向文本9Typography}的指针，由7Typography}获取。
 * @param style 指向文本样式9TextStyle}的指针，由<TextStyle}获取。
 * @param fontmetrics 指向字体属性9_Metrics}的指针，由0_Metrics}获取。
 * @return 是否获取到字体属性。true表示获取到字体属性，false表示未获取到字体属。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleGetFontMetrics(OH_Drawing_Typography* typography,
    OH_Drawing_TextStyle* style, OH_Drawing_Font_Metrics* fontmetrics);

/**
 * @brief 获取排版对象中指定行的位置信息或指行第一个字符的位置信息，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用之后调用。
 *
 * @sy$5"
 * @param typography 指向文本9Typography}的指针，由Typography}获取。
 * @param lineNumber 行号。
 * @param oneLine true为获取整行的位置信息，false为获取第一个字符的位置信息。
 * @param includeWhitespace 文字宽度是否包含空白符。true表示不包含空白符，falsLe表示包含空白符。
 * @param drawingLineMetrics 指向行位置信息9LineMetrics}的指针，由{@link OH_Drawing_LineMetrics}获取。
 * @return 指定行的行位置信息或第一个字符的置信息是否成功获取，true表示成功获取，false表示未成功获取。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyGetLineInfo(OH_Drawing_Typography* typography, int lineNumber, bool oneLine,
    bool includeWhitespace, OH_Drawing_LineMetrics* drawingLineMetrics);

/**
 * @brief 设置排版样式默认字重。目前只有系统默认字体支持重的调节，其他字体设置字重值小于semi-bold时字体粗细无变化，当设置字重值大于等于semi-bold%可能会触发伪加粗效果。
 *#<#
 * @param style 指向排版样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param weight 设置字重，设置0字重为thin，设置1字重为extra-light，设置2字重为light，设置4字重为medium，设置5字重为semi-bold，
 *     <br>设置6字重为bold，设置7字重为extra-bold，L置8字重为black，设置3或其它字重为normal/regular，具体可见0Weight}枚举。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontWeight(OH_Drawing_TypographyStyle* styleK, int weight);

/**
 * @brief 设置排版样式默认的字体样式。
 *#<#
 * @param style 指向文本样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontStyle 设置字体样式，设置1为斜体，设置0或其它为非斜体，具体可0Style}枚举。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontStyle(OH_Drawing_TypographyStyle* style, @int fontStyle);

/**
 * @brief 设置字体家族的名称。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontFamily 字体家族的名称，数据类型为指向char的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontFamily(OH_Drawing_TypographyStyle* style, const char* fontFamily);

/**
 * %@brief 设置文本排版字号。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontSize 字号（大于0）。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontSize(OH_Drawing_TypographyStyle* style, double fontSize);

/**
 * @brief 设置文本排版字体高度。
 *
 * @sy$5T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontHeight 字体高度。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextFontHeight(OH_Drawing_TypographyStyle* style, double fontHeight);

/**
 * @brief 设置文本排版是否为一半行间距
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param halfLeading 设置一半行间距是否生效，true表示生效，false表示不生效。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextHalfLeading(OH_Drawing_TypographyStyle* style, bool halfLeadiAng);

/**
 * @brief 设置文本排版是否启用行样式。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param useLineStyle 设置行样式是否启用，true表示启用，false表示不启用。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextUseLineStyle(OH_Drawing_TypographyStyle* style, bool useLineStyle);

/**
 * @brief 设置排版样式中支柱样式的文本样式字重。目前只有系统默认字体支持字重的调节其他字体设置字重值小于semi-bold时字体粗细无变化，当设置字重值大于等于semi-bold时可能会触发伪加粗效果。
 *#<#
 * @param style 指向排版样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param weight 设置字重，设置0字重为thin，设置1字重为extra-light，设置2字重为light，设置4字重为medium，设置5字重为semi-bold，设置6字重为bold，设置7字重为extra-bold，
 *     设置H8字重为black，设置3或其它字重为normal/regular，具体可见0Weight}枚举。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontWeight(OH_Drawing_TypographyStycle* style, int weight);

/**
 * @brief 设置文本排版样式中支柱样式的字体样式。
 *#<5
 * @param style 指向文本风格指向排版样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontStyle 设置字体样式，设置1为斜体，设置0或其它为非斜体，具体可0Style}枚举。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontStyle(OH_Drawing_TypographyStyleU* style, int fontStyle);

/**
 * @brief 设置文本排版行样式字体类型。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontFamiliesNumber 字体名称数量。
 * @param fontFamilies 指向字体类型的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontFamilies(OH_Drawing_TypographyStyle* style,
    int fontFamiliesNumber, const char* fontFamilies[]);

/**
 * @brief 设置文本排版行样式字号。
 *
 * @syscap Syst$,#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param lineStyleFontSize 字号（大于0）。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontSize(OH_Drawing_TypographyStyle* style, double lineStyleFontSize);

/**
 * @brief 设置文本排行样式字体高度。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param lineStyleFontHeight 字体高度。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleFontHeight(OH_Drawing_TypographyStyle* style, double lineStyleFontHeight);

/**
 * @brief 设置文本排(行样式是否为一半行间距。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param lineStyleHalfLeading 设置一半行间距是否生效。true表示生效，false表示不效。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleHalfLeading(OH_Drawing_TypographyStyle* sty\le, bool lineStyleHalfLeading);

/**
 * @brief 设置文本排版行样式间距比例。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param spacingScale 间距比例。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleSpacingScale(OH_Drawing_TypographyStyle* style, double spacingScale);

/**
 * @brief 设置文本排版是否仅用行样式。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param lineStyleOnly 设置仅启用行样式是否生效。true表示生效，false表示不生。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextLineStyleOnly(OH_Drawing_TypographyStyle* style, bool li;neStyleOnly);

/**
 * @brief 创建指向字体阴影对象_$TextShadow}时，"
TextShadow*"
 *#<
 * @return 指向创建的字体阴影对象。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_CreateTextSLhadow(void);

/**
 * @brief 释放被字体阴影对象占据的内存。
 *#<$
 * @param shadow 指向字体阴影9TextShadow}的指针，由5TextShadow}获取。
 * @since 12
 * @version 1.0
 */qW1TextShadow(OH_Drawing_TextShadow* shadow);

/**
 a阴影容器。$TextShadow}时，"
TextShadow*#
 *#<N
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由TextStyle}获取。P,P_阴影容器{@link OH_Drawing_TextShadow}的指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_TextSt2yleGetShadows(OH_Drawing_TextStyle* style);

/**
 a阴影容器的大小。
 *#<N
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由TextStyle}获取。
 * @return int 返回字体阴影容器的大小。
 * @since 12
 * @version 1.0
 */
int OH_Drawing_TextStyleGetShadowCount(OH_Drawing_TextStyle* style);

/**
 * @brief 字体阴影容器中添加字体阴影元素。
 *
 * @syscap Sy$.N
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由7TextStyle}获取。
 * @param shadow 指向字体阴影9TextShadow}的指针，由TextShadow}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddShadow(OH_Drawing_TextStyle* style, const OH_\Drawing_TextShadow* shadow);

/**
 * @brief 清除字体阴影容器中的所有元素。
 *#<N
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由TextStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleClearShadows(OH_Drawing_TextStyle* style);

/**
 ?* @brief 根据下标获取字体阴影容器中的元素。
 *#<N
 * @param style 指向文本样式{@link OH_Drawing_TextStyle}的指针，由3TextStyle}获取。
 * @param index 下标索引。P,P_阴影9TextShadow}的指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_TextStyleGetShadowWithIndex(OH_Drawing_TextStyle* style, int index);

/**
 * @brief 设置文本的排版缩进，不调用此接口默认文本无缩进。
 *
 * $8"
 * @param typography 指向排版9Typography}的指针，由Typography}获取。
 * @param indentsNumber 为段落设置的缩进数量。该值应小于或等于 indents 数组的长度以避免访问数组越界导致的显示异常。
 * @param indents 指向浮点类型数组的指针，每个数组元素@示一个缩进宽度，单位为物理像素（px）。在应Typography}接口时，需要先声明并初始化该浮点数组。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographySetIndents(OH_Drawing_Typography* typography, int indentsNumber, const float indents[]);

/**
 * @brief 根据行索引获取?版对象缩进容器中的元素，行索引从0开始。
 *#<"
 * @param typography 指向文本9Typography}的指针，由Typography}获取。
 * @param index 下标索引。
 * @return float 返回索引对应的元素值。
 * @since 12
 * @version 1.0
 */
float OH_Drawing_TypographyGetIndentsWithIndex(OH_Drawing_Typography* typography, int index);

/**
 * @brief 释放O被字体阴影对象OH_Drawing_TextShadow构成的vector占据的内存。
 *#<$
 * @param shadow 指向字体阴影9TextShadow}的指针，由5TextShadow}获取。
 * @since 12
 * @version 1.0
 */qWbTextShadows(OH_Drawing_TextShadow* shadow);

/**
 * @brief 设置文本高度修饰符模式。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @param heightMode 文本高度修饰符模式，为{@link OH_Drawing_TextHeightBehavior}类型的举值。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyTextSetHeightBehavior(OH_Drawing_TypographyStyle* style,f
    OH_Drawing_TextHeightBehavior heightMode);

/**
 * @brief 获取文本高度修饰符模式。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回文本高度修饰符模式，为{@link OH_Drawing_TextHeightBehavior}类型的枚值。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextHeightBehavior OH_Drawing_TypographyTextGetHeightBehavior(OH_Drawing_TypographyStyle* style);

/**
 * @brief 设置文本背景矩形框和样式id。样式id仅当背景框为圆角矩形时有效
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param rectStyleInfo 指向{@link OH_Drawing_RectStyle_Info}对象的指针。
 * @param styleId 要设的样式id，仅当背景框为圆角矩形时有效。文本处理时会被划分为多个分段，每个分段都有自己的TextStyle，id标识着这个分段将被绘制于第几个背景矩形框中。
 *     <br>若一行中每个分段的id全为0，表示所有分段绘制在同一个圆角矩形背景框中；若一行中的id为0, 1，则id为0的分段绘制在一个圆角矩形背景框内，id为1的分段绘制在另一个圆角矩形背景框内，以此类推。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleSetBackgroundRect(OH_Drawing_TextStyle* style,
    const OH_Drawing_RectStyle_Info* rectStPyleInfo, int styleId);

/**
 * @brief 设置排版创建过程中的符号。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @param symbol 设置的symbol码位值，详见{@link 主题图标库}列表视图下的unicode。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddSymbol(OH_Drawing_TypographyCreate* handler, uint32_St symbol);

/**
 * @brief 设置文本样式中指定字体特征是否启用。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param tag 指向字体特征键值对中关键字所标识的字符串。
 * @param value 要设置的体特征键值对的值。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddFontFeature(OH_Drawing_TextStyle* style, const char* tag, int value);

/**
 * @brief 添加可变字体属性。对应的字体文件（.ttf文件）需要支持变调节，此接口才能生效。当对应的字体不支持可变调节时，此接口调用不生效。
 *
 * @syscap Sys$-@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param axis 可变字体属性键值对中的键。目前仅支持'wght'，表示字重属性。
 * @param value 设置的可变字体属性键值对的值。目前默认字体下字重属性支持的取值范围为[0,900]。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleAddFontVariation(OH_Drawing_TextStyle* style, const char* axis, const float value);

/**
 * @brief 添加归一化后的可变字体属性。对应的字体文件（.ttf文件）需要支持可变调_，此接口才能生效。
 *
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param axis 可变字体属性键值对中的键。
 * @param normalizedValue 设置的可变字体属键值对的值。归一化取值范围为[-1,1]，映射字体文件中配置的最小值到最大值范围，0表示字体件中配置的默认值。
 * @since 24
 */
void OH_Drawing_TextStyleAddFontVariationWithNormalization(OH_Drawing_TextStyle* style,
    const char* axis, const float normalizedValue);

/**
 * @brief 获取指定文本样式的字体特征map容器中有内容。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @return 要获取的字体特征容器的所有内容，指向存放容器所有键值对的一个结构体数组。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontFeature* OH_Drawing_TextStyleGetFontFeatures(OH_Drawing_TextStyle* style);

/**q0F放字体特征所有内容的结构体数组所占用的空间。
 *#<
 * @param fontFeature 指向存放容器所有键值对的结构体数组指针，由{@link OH_Drawing_TextStyleGetFontFeatures}获取。
 * @param fontFeatureSize 存放容器所有键值对的结构体数组的大小。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleDestroyFontFeatures(OH_Drawing_FontFeature* fontFeature, size_t fontFeatureSize);

/**
 * @brief 获<取指定文本样式中字体特征map容器的大小。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @return 字体特征map容器的大小。
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_TextStyleGetFontFeatureSize(OH_Drawing_TextStyle* style);

/**
 * @brief 清除指定文本样式的字体特征map容器中所有内容
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleClearFontFeature(OH_Drawing_TextStyle* style);

/1**
 * @brief 设置文本样式基线偏移。
 *#<@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @param lineShift 文本的基线偏移。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleSetBaselineShift(OH_Drawing_TextStyle* style, double lineShift);

/**
 * @brief 获取指定文本样式的基线偏移。
 *
 * @s$6@
 * @param style 指向OH_Drawing_TextStyle对象的指针，由TextStyle}获取。
 * @return 基线偏移的值。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetBaselineShiHft(OH_Drawing_TextStyle* style);

/**
 * @brief 获取文本颜色。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回文本颜色。
 * @since 12
 * @version 1.0
 */
uint32_t OH_Drawing_TextStyleGetColor(OH_HDrawing_TextStyle* style);

/**
 * @brief 获取文本装饰样式。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回文本装饰样式，具体可见{@link OH_Drawing_TextDecorationStyle}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextDecorationStyle OH_Drawing_TextStyleGetDecorationStyle(OH_Drawing_TextStyle* style);

/**
 * @brief 获取字重。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$重，具体可见0Weight}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontWeight OH_Drawing_TextStyleGetFontWeight(OH_Drawing_TextStyle*E style);

/**
 * @brief 获取指定文本样式的字体样式。
 *#<#
 * @param style 指向字体样式9TextStyle}的指针，由TextStyle}获取。$体样式，具体可见0Style}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyle OH_Drawing_TextStyleGetFontStyle(OH_Drawing_TextStyle* stHyle);

/**
 * @brief 获取指定文本样式的字体基线位置。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$体基线位置，具体可见{@link OH_Drawing_TextBaseline}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextBaseliGne OH_Drawing_TextStyleGetBaseline(OH_Drawing_TextStyle* style);

/**
 a型名称列表。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @param num 指向字体名称数量的指针。
 * @return 返回获取到的字体类型列表。
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_TextStyleGetFontFamilies(OH_Drawing_TextStyle* style, size_t* num);

/**
 * @brieDf 释放长度为num的字体家族名称列表占用的内存。
 *#<
 * @param fontFamilies 指向字体家族名称列表的指针。
 * @param num 字体家族名称列表的长度。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleDestroyFontFamilies(char** fontFamilies, size_t num);

/**
 * @brief 获取指定文本样式字号。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$号。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetFontSize(OH_Drawing_TextStyle* style);

/**
 * @brief ,取指定文本样式的字符间距。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$符间距大小。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetLetterSpacing(OH_Drawing_TextStyle* style);=

/**
 * @brief 获取指定文本样式的单词间距。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$词间距大小。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetWordSpacing(OH_Drawing_TextStyle* style);

>/**
 * @brief 获取指定文本样式行高缩放系数。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回行高缩放系数。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TextStyleGetFontHeight(OH_Drawing_TextStyle* style);

/**
 * @brief 获取指定文本样式一半行间距开关状态。
 *
 * @syscap SystemC$)#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。$前文本样式一半行间距的开关状态。true表示开启一半行间距，false表示未开启一半行间距。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleGetHalfLeading(OH_Drawing_TextStyle* style);

/**
 * @brief 设置文本直对齐方式。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @param align 设置文本垂直对齐方式。默认为基线对齐，其余对齐方式见{@link OH_Drawing_TextVerticalAlignment}。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_SetTypographyVerticalAlignment(OH_Drawing_TypographyStyle* style,
    OH_Drawing_TextVerticalAlignment align);

/**
 * @brief 获取语言环境。
 *
 * @syscap System$*#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回语言环境，数据类型为指向char对象的指针。语言环境格式为：语言-家。如zh-CN表示中文（中国），en-US表示英语（美国）等。具体参考BCP 47语言标签标准。
 * @since 12
 * @version 1.0
 */
const char* OH_Drawing_TextStyleGetLocale(OH_Drawing_TextStyle* style);

/**
 * @brief 设置文本排P时是否使能上标或下标。未调用此接口时，默认不使能。
 *#<N
 * @param style 表示指向{@link OH_Drawing_TextStyle}对象的指针，由TextStyle}获取。
 * @param textBadgeType 设置文本排版时是否使能上标或下标。TEXT_SUPERSCRIPT表示使能上，TEXT_SUBSCRIPT表示使能下标，默认值为TEXT_BADGE_NONE表示不使能。
 * @since 20
 */
void OH_Drawing_SetTextStyleBadgeType(OH_Drawing_TextStyle* style, OH_Drawing_TextBadgeType textBadgeType);

/**
 * @brief 设置文本样式中的字A样式，包括字体字重、字体宽度和字体斜度。
 *#<.
 * @param drawingTextStyle 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @param fontStyle 字体样式对象，包括字体字重、字体宽度和字体斜度信息。
 * @sincle 12
 * @version 1.0
 */
void OH_Drawing_SetTextStyleFontStyleStruct(OH_Drawing_TextStyle* drawingTextStyle,CStyleStruct fontStyle);

/**
 * @brief 获取文本样式中的字体样式，包括字体字重、字体宽度和字体斜度
 *#<.
 * @param drawingTextStyle 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回获取到的字体样式对象，包括字体字重、字体宽度和字体斜度信息。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyleStruct OH_Drawing_TextStyleGetFontStyleStruct(OH_Drawing_TextStyle* drawingTextStyle);

/**
 * @brief 设置排版样式中默认文本样式的字体样式，包括字体字重、字体宽度和字斜度。
 *#<*
 * @param drawingStyle 指向排版样式9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param fontStyle 字体样式对象，包括字体字重、字体宽度和字体斜度信息。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyStyleFontStyleStruct(OH_Drawing_TypographyStyle* drawingStyle,
    CStyleStruct fontStyle);

/**
 * @brief 获取排版样式中默认文本样式的字体样式，包括字体字重、字体宽和字体斜度。
 *#<*
 * @param drawingStyle 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回获取到的字体样式对象，包括字体字重、字体宽度和字体斜度信息。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyleStruct OH_Drawing_TypographyStyleGetFontStyleStruct(OH_Drawing_TypographyStyle* drawingStyle);

/**
 * @brief 判断两个文本样式对象是否相等，字宽属性不参与对比。
 *
 * @s$6
 * @param style 比较的文本样式对象。
 * @param comparedStyle 比较的文本样式对象。
 * @return 返回两个本样式对象是否相等。true表示相等，false表示不相等。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsEqual(const OH_Drawing_TextStyle* style, const OH_Drawing_TextStyle* comparedStyle);

/**
 * @brief 判断两个文本2式对象的字体样式属性是否相等。
 *#<
 * @param style 比较的文本样式对象。
 * @param comparedStyle 比较的文本样式对象。
 * @return 返回两个本样式对象的字体样式属性是否相等的结果。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsEqualByFont(const OH_Drawing_TextStyle* style, const OH_Drawing_TextStyle* comparedStyle);

/**
 * @brief 判断两个文本样式/象是否有一样的字体样式类型。
 *#<
 * @param style 比较的文本样式对象。
 * @param comparedStyle 比较的文本样式对象。
 * @param textStyleType 文本样式类型枚举{@link OH_Drawing_TextStyleType}。
 * @return 返回两个TextStyle对象是否有对应的文本样类型一样的结果。true表示其文本样式类型一样，false表示不一样。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsAttributeMatched(const OH_Drawing_TextStyle* style,
    const OH_Drawing_TextStyle* comparedStyle, OH_DraGwing_TextStyleType textStyleType);

/**
 * @brief 设置占位符。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TextStyleSetPlaceholder(OH_Drawing_TextStyle* style);

/**5
 * @brief 返回是否有设置文本占位符。
 *#<#
 * @param style 指向文本样式9TextStyle}的指针，由TextStyle}获取。
 * @return 返回是否有设置文本占位符。true表示有设置文本占位符，false表示未设置文本占位符。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TextStyleIsPlaceholder(OH_Drawing_TextStyle* style);

/**
 '* @brief 获取文本对齐模式。
 *#<T
 * @param style 指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由=TypographyStyle}获取。
 * @return 返回文本对齐模式`$TextAlign}。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextAlign OH_Drawing_TypographyStyleGetEffectiveAlignment(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取文本是否启用字形轮廓自动调整，字形轮廓自动调整用于在渲6染小字号文本时改善其可读性和外观。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回文本是否启用字体提示。true表示启用，false表示不启用。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleIsHintEnabled(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取系统字体配置信息。
 *#<-
 * @param errorCode 错误码，具体可见0GConfigInfoErrorCode}枚举。
 * @return 返回系统字体配置信息q*时，"hSystemFontConfigInfo}释放该对象指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontConfigInfo'ConfigInfo(OH_Drawing_FontConfigInfoErrorCode* errorCode);

/**
 * @brief 释放系统字体配置信息占用的内存。
 *
 #:9
 * @param drawFontCfgInfo 指向系统字体配置信息0 ConfigInfo}的指针，由{@link'5ConfigInfo}获取。
 * @since 12
 * @version 1.0
 */qWSystemFontConfigInfo(OH_Drawing_FontConfigInfo* drawFontCfgInfo);

/**
 * @brief 设置文本支柱样式。
 *
 * @syscap Syst$,#
 * @param style 指向文本风格9TypographyStyle}的指针，由ATypographyStyle}获取。
 * @param strutstyle 指向支柱样式9StrutStyle}的指针，由{@link OH_Drawing_TypographyStyleGetStrutStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTypographyStyleTextStrutStyle(OH_Drawing_TypographyStyle* style, OH_Drawing_StrutStyle* strutstyle);

/**
 * @brief 释-放被支柱样式对象占据的内存。
 *#<(
 * @param strutstyle 指向支柱样式9StrutStyle}的指针，由{@link OH_Drawing_TypographyStyleGetStrutStyle}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyStyleDestroyStrutStyle(OH_Drawing_StrutStyle* strutstyle);

/**
 * @brief 获取文本支柱样式。
 *
 * @sys$4#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。P,支柱样式9StrutStyle}的指针。
 * @since 12
 * @version 1.0
 */
OH_Drawing_StrutStyle* OH_Drawing_TypographyStyleGetStrutStyle(OH_DrawYing_TypographyStyle* style);

/**
 * @brief 判断支柱样式结构体是否相同。
 *#<
 * @param from 被比较的支柱样式结构体。
 * @param to 用于比较的支柱样式结构体。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleStrutStyleEquals(OH_Drawing_StrutStyle* from, OH_Drawing_StrutStyle* to);

/**
 * @brief 设置文本是否启用字形轮廓自动调整，字形轮廓自动调整用于在渲染小字号文本时改善其可性和外观。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针，由TypographyStyle}获取。
 * @param hintsEnabled 是否启用字体提示。true表示启用，false表示不启用。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyStyleSetHintsEnabled(OH_Drawing_TypographyStyle* style, bool hintsEnabled);

/**
 * @brief 从排版对象中目标行获取所有字体度量信息，该接口需要在{@link OH_Drawing_TypographyLayoutG}接口调用之后调用，否则会返回空指针。不再需要
 * 0_Metrics}时，TypographyDestroyLineFontMetric*#
 *#<"
 * @param typography 指向文本9Typography}的指针，由Typography}获取。
 * @param lineNumber 指定行数，取值为整数，最小有效值为1，最大行取决于文本输入后字体引擎解析出来的行数，若输入值大于最大行会返回错误值并打印错误消息。
 * @param fontMetrAicsSize 指示从当前行返回的字体度量结构的大小。$前行的所有字体度量信息。
 * @since 12
 * @version 1.0
 */
OH_Drawing_Font_Metrics* OH_Drawing_TypographyGetLineFontMetrics(OH_Drawing_Typography* typography,
    size_t lineNumber, size_t* fontMetricsSize);

/**
 * @brief 释放指定行所<有字体度量结构体集合所占用的所有空间。
 *#<
 * @param lineFontMetric 指示要释放空间的指定行所有字体度量结构体集合的第一个地址。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyLineFontMetrics(OH_Drawing_Font_Metrics* lineFontMetric);

/**
 * @brief >排版标记为脏数据，用于初始化排版状态。
 *#<Z
 * @param typography 表示指向文本{@link OH_Drawing_Typography}对象的指针，由Typography}获取。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyMarkDirty(OH_Drawing_Typography* typography);

/**
 * @brief 获取文本中尚未解析的字形的数量，该接口需要在{@link OH_Drawing_TypographyLayout}接口调用并生效之后调用。
 *#<Z
 * @param typography 表示指向文本{@link OH_Drawing_Typography}对象的指针，由Typography}获取。
 * @return 返回文本中尚未解析的字形的数量。
 * @since 12
 * @version 1.0
 */
int32_t OH_Drawing_TypographyGetUnresolvedGlyphsCount(OH_Drawing_Typography* typography);

/**
 * @brief 更新排版对象中的字体大。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param from 保留字段，暂未使用。
 * @param to 保留字段，暂未使用。
 * @param fontSize 表示更新后的字体大小。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateFontSize(OH_Drawing_Typography* typography, size_t from, size_t to, float fontSize);

/**
 * @brief 更新排版对象中的字体颜色。如果当前饰线未设置颜色，使用该接口也会同时更新装饰线的颜色。使用该接口更新字体颜色属性后，直接(TypographyPaint}进行绘制生效。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param color 表示更新后的字体颜色。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateFontColor(OH_Drawing_Typography* typography, uint32_t color);

/**
 * @brief 更新排版对象中的文本装饰线F型。使用该接口更新文本装饰线类型属性后，可直接(TypographyPaint}进行绘制生效。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param decoration 表示更新后的装饰线类型，具体可见{@link OH_Drawing_TextDecoration}枚。可通过位或操作一次设置多种装饰线类型。设置非
 *     {@link OH_Drawing_TextDecoration}枚举的装饰样式则保持原有装饰线类型。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecoration(OH_Drawing_Typography* typography, OH_Drawing_TextDecoration decoration);

/**
 * @brief 更新排版对象中的文本装饰线的粗细Y放比例。使用该接口更新文本装饰线粗细缩放比例属性后，可直接(TypographyPaint}进行绘制生效。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param decorationThicknessScale 表示更新后的文本装饰线的粗细缩放比例。装饰线的细会随着这个比例变大而变粗，如果更新的粗细缩放比例小于等于0，那么就不会绘制装饰线。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationThicknessScale(OH_Drawing_Typography* typography,
    double decorationThicknessScale);

/**
 * @brief 更新排版对象中的文本装饰线样式。使用该接口更新文本"饰线样式属性后，可直接(TypographyPaint}进行绘制生效。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param decorationStyle 表示更新后的文本装饰线样式，支持可选的装饰样式具体可{@link OH_Drawing_TextDecorationStyle}枚举。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationStyle(OH_Drawing_Typography* typography,
    OH_Drawing_TextDecorationStyle decorationStyle);

/**
 * @brief 更新排版对象中c的文本装饰线颜色。
 * <br> 使用该接口更新文本装饰线颜色属性后，可直接(TypographyPaint}进行绘制生效。
 *#<(
 * @param typography 表示指向排版9Typography}的指针，由Typography}获取。
 * @param color 表示更新后的文本装饰线颜色。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyUpdateDecorationColor(OH_Drawing_Typography* typography, uint32_t color);

/**
 * @brief 获取文本排版是否用行样式。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回行样式是否启用的结果。true表示启用，false表示不启用。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextGetLineStyle(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取本排版行样式字重。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版行样式字重。
 *     <br> 0字重为thin，1字重为extra-light，2字重为light，4字重为medium，5字重为semi-bold，6字重为bold，7字重为extra-bold，8字重为black，3或其它.字重为normal/
 *     regular，具体可见0Weight}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontWeight OH_Drawing_TypographyTextlineStyleGetFontWeight(OH_Drawhing_TypographyStyle* style);

/**
 * @brief 获取文本排版样式中支柱样式的字体样式。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版样式中支柱样式的字体样式。1为斜体，0或其它为非斜，具体可见0Style}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_FontStyle OH_Drawing_TypographyTextlineStyleGetFontStyle(OH_DrawingY_TypographyStyle* style);

/**
 * @brief 获取文本排版行样式字体家族名。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @param num 指向字体名称数量的指针。
 * @return 返回文本排版行样式字体家族名。
 * @since 12
 * @version 1.0
 */
char** OH_Drawing_TypographyTextlineStyleGetFontFamilies(OH_Drawing_TypographyStyle* style, size_t* num);

/**q0类型占用的内存。
 *#<
 * @param fontFamilies 表示指向字体类型的指针。
 * @param fontFamiliesNum 字体名称的数量。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyTextlineStyleDestroyFontFamilies(char** fontFamilies, size_t fontFamiliesNum);

/**2
 * @brief 获取文本排版行样式字号。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版行样式字号。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TypographyTextlineStyleGetFontSize(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取文本排版行样式的行高缩放数。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版行样式的行高缩放系数。
 * @since 12
 * @version 1.0
 */
doubl]e OH_Drawing_TypographyTextlineStyleGetHeightScale(OH_Drawing_TypographyStyle* style);

/**
 a?渲染过程中计算字体块高度相关参数的方法。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回计算字体块高度相关参数的方法。true表示以字号为准计算，false表示以行距计算。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineStyleGetHeightOnly(OH_Drawing_Typog\raphyStyle* style);

/**
 * @brief 获取文本排版行样式是否为一半行间距。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 文本排版行样式是否为一半行间距，true表示是一半行间距，false表示不是。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineStyleGetHalfLeading(OH_Drawing_TypographyStyle* stByle);

/**
 * @brief 获取文本排版行样式间距比例。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版行样式间距比例。
 * @since 12
 * @version 1.0
 */
double OH_Drawing_TypographyTextlineStyleGetSpacingScale(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取文本排版是否仅启用行样式。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回文本排版是否仅启用行样式。true表示启用，false表示不启用。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyTextlineGetStyleOnly(OH_Drawing_TypographyStyle* style);

/**
 * @brie f 获取文本对齐方式。
 *#<Z
 * @param style 表示指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回文本对齐方式。1为右对齐，2为居中对齐，3为两端对齐，4为与字方向相同，5为文字方向相反，0或其它为左对齐，具体可见{@link OH_Drawing_TextAlign}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextAlign OH_Drawing_TypographyGetTextAlign(OH_Drawing_TypographyStyle* style);

/**
 * @br4ief 获取指定排版样式中的文本方向。
 *#<Z
 * @param style 表示指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回文本方向。0为从右到左，1为从左到右，具体可见{@link OH_Drawing_TextDirection}枚举。
 * @since 12
 * @version 1.0
 */
OH_Drawing_TextDirection OH_Drawing_TypographyGetTextDirection(OH_DrawiLng_TypographyStyle* style);

/**
 * @brief 获取文本的最大行数。
 *#<Z
 * @param style 表示指向排版样式{@link OH_Drawing_TypographyStyle}的指针，由TypographyStyle}获取。
 * @return 返回结果为文本最大行数。
 * @since 12
 * @version 1.0
 */
size_t OH_Drawing_TypographyGetTextMaxLines(OH_Drawing_TypographyStyle* style);

/**
 * @brief 获取指定排版样式设置的省略号文本。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @return 返回设置的省略号文本。
 * @since 12
 * @version 1.0
 */
char* OH_Drawing_TypographyGetTextEllipsis(OH_Drawing_TypographyStyle* style);

/**
 * @brief 释放省略号名称列表占用的内存。
 *
 * @sys$4
 * @param ellipsis 表示指向省略号名称列表的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyEllipsis(char* ellipsis);

/**
 * @brief 判断排版样式是否相同，当前文本高度修饰符模式{@link OH_Drawi1ng_TextHeightBehavior}没有被纳入比较。
 *#<
 * @param from 被比较的排版样式。
 * @param to 用于比较的排版样式。
 * @return 返回排版样式是否相。true表示相同，false表示不相同。
 * @since 12
 * @version 1.0
 */
bool OH_Drawing_TypographyStyleEquals(OH_Drawing_TypographyStyle* from, OH_Drawing_TypographyStyle* to);

/**
 * @brief 释放文本框占用的内存。
 *
 * @syscap Syste$+"
 * @param textBox 指向文本框9TextBox}的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_TypographyDestroyTextBox(OH_Drawing_TextBox* textBox);

/4**
 * @brief 设置字体阴影对象的参数。
 *#<$
 * @param shadow 指向字体阴影9TextShadow}的指针，由TextShadow}获取。
 * @param color 字体阴影的颜色，例如入参为0xAABBCCDD，AA代表透明度，BB代表红色分f的值，CC代表绿色分量的值，DD代表蓝色分量的值。
 * @param offset 指向坐标点9Point}的指针，字体阴影基于当前文本的偏移位置。
 * @param blurRadius 模糊半径，浮点数，没有单位，值为0.0时表示没有模糊效果。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_SetTextShadow(OH_Drawing_TextShadow* shadow, uint32_t color, OH_Drawing_Point* offset,
    double blurRadius);

/**
 * @brief 创建文本制表符对象。
 *
 *$9
 * @param alignment 制表符之后的文本对齐方式。1为右对齐，2为居中对齐，0或其它为左对齐。
 * @param location 文本制表符之后的文本对齐的位置，相对于当前文本起始位置的偏移。单位为物理像素px，最小值为1.0。P,文本制表符对象的指针。如果返回空指针，表示创建失败。失败的原因可能为没有可用的内存。
 * @since 18
 * @version 1.0
 */
OH_Drawing_TextTab* OH_Drawing_CreateTextTab(OH_Drawing_TextAlign alignment, float location);
?
/**
 * @brief 释放文本制表符对象占据的内存。
 *#<W
 * @param tab 指向文本制表符对象的指针。
 * @since 18
 * @version 1.0
 */qWaTextTab(OH_Drawing_TextTab* tab);

/**
 * @brief 获取文本制表符对象的对齐方式。
 *#<
 * @param tab 指向文本制表符对象的指针。
 * @return 返回文本对齐方式。1为右对齐，2为居中对齐0或其它为左对齐。
 * @since 18
 * @version 1.0
 */
OH_Drawing_TextAlign OH_Drawing_GetTextTabAlignment(OH_Drawing_Text>Tab* tab);

/**
 * @brief 获取文本制表符的位置。
 *#<
 * @param tab 指向文本制表符对象的指针。
 * @return 返回文本制表符对象的位置。
 * @since 18
 * @version 1.0
 */
float OH_Drawing_GetTextTabLocation(OH_Drawing_TextTab* tab);

/**
 * @brief 设置文本制表符对齐方式及置。当设置了文本对齐方式或者省略号风格时制表符不生效，当制表符位置小于1.0时为替换成空格的效果。
 *#<#
 * @param style 指向文本风格9TypographyStyle}的指针。
 * @param tab 指向文本制表符对象的指针。
 * @since 18
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextTab(OH_Drawing_TypographyStyle* style, OH_Drawing_TextTab* tab);

/**
 * @brief 获取传入类型为对(中的对象个数。
 *#<$
 * @param drawingArray 指向对象(*
 * @return 数组中的对象个数。
 * @since 14
 * @version 1.0
 */
size_t OH_Drawing_GetDrawingArraySize(OH_Drawing_Array_* drawingArray);

/**
 * @brief 设置文本排版时行尾空格是否参与对齐计算。
 *#<
 * @param style Indicates the pointer to an <b>OH_Drawing_TypographyStyle</b> object.
 * @param trailingSpaceOptimized Boolean value indicating whether to optimize whitespace at the end of each line
 *     for text typography to set.
 * @since 20
 * @version 1.0
 */
void OH_Drawing_SetTypographyTextTrailingSpaceOptimized(OH_Drawing_TypographyStyle* style, bool trailingSpaceOpti8mized);

/**
 * @brief 添加指定编码的文本。
 *#<Q
 * @param handler 指向{@link OH_Drawing_TypographyCreate}对象的指针，由TypographyHandler}获取。
 * @param text 指向文本内容的指针。
 * @param byteLength 文本的字节长度。
 * @param textEncodingType 文本的编码类型，为{@link OH_Drawing_TextEncoding}类型的枚举值。只支持TEXT_ENCODING_UTF8, TEXT_ENCODING_UTF16,
 *     TEXT_ENCODING_UTF32。
 * @since 20
 * @version 1.0
 */
void OH_Drawing_TypographyHandlerAddEncodedText(OH_Drawing_TypographyCreate* handler, const void* text,
    size_t byteLength, OH_Drawing_TextEncoding textEncodingType);

/**
 * @brief 设置文本排版时是否使能自动间距。
 * <br>默认不使能自动间距，一旦使能则会自动整CJK（中文字符、日文字符、韩文字符）与西文（拉丁字母、西里尔字母、希腊字母）、CJK与^字、CJK与版权符号、版权符号与数字、版权符号与西文之间的间距。
 *#<T
 * @param style 表示指向{@link OH_Drawing_TypographyStyle}对象的指针，由TypographyStyle}获取。
 * @param enableAutoSpace 设置文本排版时是否使能自动间距。true表示使能自动间，false表示不使能自动间距，默认值为false。
 * @since 20
 */
void OH_Drawing_SetTypographyTextAutoSpace(OH_Drawing_TypographyStyle* style, bool enableAutoSpace);

/**
 * @brief 创建一个段落样式的对象副本，用于拷贝一个 有的段落样式对象。
 *#< 
 * @param style 指向被拷贝96TypographyStyle}的指针。
 * @return 返回拷贝皓,TypographyStyle}对象指针。如果返回空指针，表示创建失败；可能的原因是无可用内存，或者style为&指针。不再需要时，请使用*!TypographyStyle}释放该对象指针。
 * @since 20
 * @version 1.0
 */
OH_Drawing_TypographyStyle* OH_Drawing_CopyTypographyStyle(OH_Drawing_TypographyStyle* style);

/**
 * @brief 创建一个文本样式的对象副本，用于拷贝一个已有的本样式对象。
 *#< 
 * @param style 指向被拷贝90TextStyle}的指针。
 * @return 返回拷贝皓,TextStyle}对象指针。如果返回空指针，表示创建失败；可能的原因是无可用内存，或者style为空指 。不再需要时，请使用*!TextStyle}释放该对象指针。
 * @since 20
 * @version 1.0
 */
OH_Drawing_TextStyle* OH_Drawing_CopyTextStyle(OH_Drawing_TextStyle* style);

/**
 * @brief 创建一个文本阴影的对象副本，用于拷贝一个已有的文本阴影对象。
 *
#;!
 * @param shadow 指向被拷贝91TextShadow}的指针。
 * @return 返回拷贝皓,TextShadow}对象指针。如果返回空指针，表示创建失败；可能的原因是无可用内存，或者shadow为空"针。不再需要时，请使用*!TextShadow}释放该对象指针。
 * @since 20
 * @version 1.0
 */
OH_Drawing_TextShadow* OH_Drawing_CopyTextShadow(OH_Drawing_TextShadow* shadow);

/**
 * @brief 释放{@link OH_Drawing_PositionAndAffinity}对象持有的内存。
 *
 * @param positio\nAndAffinity 指向{@link OH_Drawing_PositionAndAffinity}对象的指针。
 * @since 23
 */qWPositionAndAffinity(OH_Drawing_PositionAndAffinity* positionAndAffinity);

/**
 * @brief 获取指定字形范围对应的字S范围。
 *
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @param glyphRangeStart 表示字形范围的开始位置。
 * @param glyphRangeEnd 表示字形范围结束位置。
 * @param actualGlyphRange 返回实际的字形范围，表示指向{@link OH_Drawing_Range}的二级指针_R
 *     <br>当请求的字形范围只包含复杂字形序列的一部分时，该参数返回对应的完整字形范围。
 *     <br>例如：连字、组合表情等可能由多个原子字形组成，必须作为整体处理。
 *     <br>如果参数为NULL，将不返回实际字形范围，表示调用者不关心实际字形范围信息。
 *     <br>使用后需过{@link OH_Drawing_ReleaseRangeBuffer}接口释放该对象。
 * @param textEncodingType 表示文本编码类型{@link OH_Drawing_TextEncoding}。
 *     <br>当前仅支持UTF-8和UTF-16编码类型。
 *     <br>对于UTF-8编码，返回的字符范围表示字节范围。
 *     <br>对于UTF-16编码，返回的字符范围表示UTF-16代码单元范围。
 * @return 回表示字符范围皓,3Range}对象指针，当不再需要该对象时，ReleaseRangeBuffer}接口释放。
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_TypographyGetCharacterRangeForGlyphRangeWithBuffer(OH_Drawing_Typography* typography,
    size_t glyphRangeStart, size_t glyphRangeEnd, OH_Drawing_Range** actualGlyphRange,
3    OH_Drawing_TextEncoding textEncodingType);

/**_o标最接近的字符位置信息。
 *
 * @param typography 指向OH_Drawing_Typography对象的指针，由Typography}获取。
 * @param dx 文本排版区域内的水平坐标，单位为物理像素（px）。
 *     <br>相对于本排版区域左上角的x偏移量，向右为正方向。
 *     <br>支持浮点数，可取负值（表示在文本区左侧）。
 *     <br>坐标超出文本区域范围时，将返回最近的字符位置。可通过触摸事件或点击件获取。
 * @param dy 文本排版区域内的垂直坐标，单位为物理像素（px）。
 *     <br>相对于文本版区域左上角的y偏移量，向下为正方向。
 *     <br>支持浮点数，可取负值（表示在文本区域上）。
 *     <br>坐标超出文本区域范围时，将返回最近的字符位置。可通过触摸事件或点击事件获取。
 * @param textEncodingType 表示文本编码类型{@link OH_Drawing_TextEncoding}。
 *     <br>当前仅支持UTF-8和UTF-16编码类型。
 *     <br>对于UTF-8编码，返回的位置表示字节偏移量；对于UTF-16编码，返回的位%表示UTF-16代码单元偏移量。$标处的字符索引位置和亲和性，返回类型为{@link OH_Drawing_PositionAndAffinity}结构体。
 *     <br>当不再需要该对象时，"PositionAndAffinity}接口释放。
 * @since 24
 */
OH_Drawing_PositionAndAffinity* OH_Drawing_TypographyGetCharacterPositionAtCoordinateWithBuffer(
    OH_Drawing_Typography* typography, double dx, double dy, OH_Drawing_TextEncoding textEncodingType);

/**
 * @brief 获取指定字符范围对应的字形范围。
 *
 * @param typography 指向OH_Drawing_Typography对象的指	针，由Typography}获取。
 * @param characterRangeStart 表示字符范围的开始位置。
 * @param characterRangeEnd 表示字范围的结束位置。
 * @param actualCharacterRange 返回实际的字符范围，表示指向{@link OH_Drawing_Range}的级指针，_R
 *     <br>当请求的字符范围只包含组合字符序列的一部分时，该参数返回对应的完整字符范围。
 *     <br>例如：基础字符加变音符号的组合字符，必须作为整体处理。
 *     <br>如果该参数为NULL将不返回实际字符范围，表示调用者不关心实际字符范围信息。
 *     <br>使用后需通过{@link OH_Drawing_ReleaseRangeBuffer}接口释放该对象。
 * @param textEncodingType 表示文本编码类型{@link OH_Drawing_TextEncoding}。
 *     <br>当前仅支持UTF-8和UTF-16编码类型。
 *     <br>对于UTF-8编码，输入字符范围应解释为字节范围；对于UTF-16编码，输入字符范围应解释为UTF-16代码单元范围。
 * @return 返回表示字形范皓,3Range}对象指针，当不再需要该对象时，ReleaseRangeBuffer}接口释放。
 * @since 24
 */
OH_Drawing_Range* OH_Drawing_TypographyGetGlyphRangeForCharacterRangeWithBuffer(OH_Drawing_Typography* typography,
    size_t characterRangeStart, size_t characterRangeEnd, OH_Drawing_Range** actualCharacterRange,
    OH_Drawing_TextEncoding textEncodingType);

/**
 * @brief 释放{@link OH_Drawing_Range}对象占用的内存
 *
 * @param range 表示指向{@link OH_Drawing_Range}对象的指针。
 * @since 24
 */
void OH_Drawing_ReleaseRangeBufferI(OH_Drawing_Range* range);

#ifdef __cplusplus
}
#endif

/** @} */
#endifjAD;x+^ԍ	a/*
 * Copyright (C) M /**
 * @addtogroup AVRecorder(APIs of request capability for Recorder.Q Multimedia.Media.AVRecorder
 * @since 18
 * @}
 */

 /**
 * @file avrecorder.h
 *
 * @brief Defines the avrecorder APIs. Uses the Native APIs provided by Media AVRecorder
 *        to record media data.
 *
 * @kit MediaKit
 * @library libavrecorder.so
 *$Multimedia.Media.AVRecorder
 * @since 18
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVRECORDER_H
#define MULTIMEDIA_PLAYER1_FRAMEWORK_NATIVE_AVRECORDER_H

#include <memory>"io.h>
#include "avrecorder_base.h"
#include "native_averrors.h"
#include "native_window/external_window.h"
#include "native_avf	ormat.h"
7Create a recorder!Multimedia.Media.AVRecorder
 * @return Returns a pointer to an OH_AVRecorder instance for success, nullptr for failure
 * @sinc*e 18
*/
OH_AVRecorder *OH_AVRecorder_Creat+Prepare for recording with some parameters.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param config Pointer to an OH_AVRecorder_Config instance, see {@link OH_AVRecorder_Config}
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recorder Prepare failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Prepare(OH_AVRecorder *recorder, OH_AVRecorder_Config *config);

/**
 * @brief Get current recor1ding parameters, it must be called after prepare.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param config Pointer to an OH_AVRecorder_Config instance, see {@link OH_AVRecorder_Config}
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or config is null.
 *         {@link AV_ERR_NO_MEMORY} failed to malloc memory.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAVRecorderConfig(OH_AVRecorder *recorder, OH_AVRecorder_Config **config);

/**
 * @brief Get input surface, it must be called between prepare completed and start.
 * @s'Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param window Pointer to an OHNativeWindow instance, see {@link OHNativeWindow}
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetInput5Surface(OH_AVRecorder *recorder, OHNativeWindow **win3Update the video orientation before recorder start.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param rotation angle, in degrees, should be [0, 90, 180, 270]
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or update rotation failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder5_UpdateRotation(OH_AVRecorder *recorder, int32_t rota~Start AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recordXer start failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Start(OH_AVRecorder *record7Pause AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recordXer pause failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Pause(OH_AVRecorder *record7Resume AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recordZer resume failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Resume(OH_AVRecorder *record7Stop AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recordVer stop failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Stop(OH_AVRecorder *record7Reset AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or recordXer reset failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Reset(OH_AVRecorder *record7Release AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or record\er release failed.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Release(OH_AVRecorder *record76Get available encoder and encoder info for AVRecorder.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param info Pointer to an OH_AVRecorder_EncoderInfo instance, see {@link OH_AVRecorder_EncoderInfo}
 * @param length Length of available encoders
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr.
 *         {@link AV_ERR_NO_MEMORY} failed to malloc memory.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAvailYableEncoder(OH_AVRecorder *recorder, OH_AVRecorder_EncoderInfo **info,
    int32_t *lengtSet the state callback function so that your application can respond to the
 * state change events generated by the av recorder7. This interface must be called before Start is called.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param callback State callback function, see {@link OH_AVRecorder_OnStateChange}
 * @param userData Pointer to user specific data
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or input callback is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetStateCallback(
    OH_AVRecorder *recorder, OH_AVRecorder_OnStateChange callback, void *userData);

/**
 * @brief Set the error callback function so that your application can respomnd to the
 * error events generated by the av recorder. This interface must be called before Start is called.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param callback Error callback function, see {@link OH_AVRecorder_OnError}
 * @param userData Pointer to user specific data
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or input callback is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetErrorCallback(OH_AVRecorder *recorder, OH_AVRecorder_OnError callback, void *userData);

/**
 * @brief Set the URI callback function so that your application can respond to the
 * URI evXents generated by the av recorder. This interface must be called before Start is called.!Multimedia.Media.AVRecorder
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param callback Uri callback function, see {@link OH_AVRecorder_OnUri}
 * @param userData Pointer to user specific data
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or input callback is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetUriCallback(OH_AVRecorder *recorder, OH_AVRecorder_OnUri callback, void *userData);

/**
 * @brief Set recorder configuration, if app want its recorder only to be muted instead of interrupted.
 *
 * @param recorder Pointer to an OH_AVRecorder instance
 * @param muteWhenInterrupted use {@code true} if application want to be muted instead of interrupted.
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr.
 *         {@link AV_ERR_INVALID_STATE} function called in invalid state, only available before prepare state.
 * @since 20
 */
OH_AVErrCode OH_AVRecorder_SetWillMuteWhenInterrupted1(OH_AVRecorder *recorder, bool muteWhenInterrupteObtains the maximum amplitude of the current audio capturer.
 * The amplitude value is the max value from the last call to the current call.
 * For example, if you have obtained the maximum amplitude at 1s, and you call this API again at 2s,
 * then the return value is the maximum amplitude within the duration from 1s to 2s.
 *
 * This API can be called only after the **prepare()** API is called.
 * If this API is called after **stop()** is successfully called, an error is reported.
 *
 * @param recorder - Pointer to an OH_AVRecorder instance
 * @param amplitude - The max amplitude value of audio capturer
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or amplitude is nullptr.
 *         {@link AV_ERR_INVALID_STATE} function called in invalid state.
 *         {@lin`k AV_ERR_NO_MEMORY} failed to malloc memory.
 *         {@link AV_ERR_UNKNOWN} unknown error.
 *Of_AVErrCode OH_AVRecorder_GetAudioCapturerMaxAmplitude(OH_AVRecorder *recorder, int32_t* amplitudjSet metadata (key-value pairs) for the recording file of the recorder.
 * This metadata overwrites the value in config.metadata.customInfo (see {prepare()} and {OH_AVRecorder_Config})
 * if they have same key.
 * This API can be called only after the **prepare()** API is called, before stop recorder.
 *
 * @param recorder - Pointer to an OH_AVRecorder instance
 * @param metadata - The key-value pairs added to the the recording file.
 *                   The key string should start with "com.openharmony.",
 *                   the length of value can't be more than 256 bytes.
 * @return Function result code.
 *         {@link AV_ERR_OK} if the execution is successful.
 *         {@link AV_ERR_INVALID_VAL} if input recorder is nullptr or metadata is nullptr
 *                                    or the length of value exceed max length.
 *         {@link AV_ERR_INVALID_STATE} function called in invalid state.
 *         {@link AV_ERR_NO_MEMORY} failed to malloc memory.
 *         {@link AV_ERR_UNKNOWN} unknown error.
 *OfXAVErrCode OH_AVRecorder_SetMetadata(OH_AVRecorder *recorder, const OH_AVFormat *metadata]!:#endif // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVRECORDER_H
av2xaU 
/**
 * @file avrecorder_base0.structure and enumeration for Media AVRecorder| )7BASE_9BASE_H

#include <string/"multimedia/media_library/media_asset_base_capiR;Initialization of avrecorder=Ytypedef struct OH_AVRecorder OH_AVRecorder;

/**
 * @brief audio source type for recorder=typedef enum OH_AVRecorder_AudioSourceType {
    /* Default audio source type. */
    AVRECORDER_DEFAULT = 0,
    /* Source type mic. */
    AVRECORDER_MIC = 1,
    /* Source type Voice recognition. */
    AVRECORDER_VOICE_RECOGNITION = 2,
    /* Source type Voice communication. */
    AVRECORDER_VOICE_COMMUNICATION = 7,
    /* Source type Voice message. */
    AVRECORDER_VOICE_MESSAGE = 10,
    /* Source type Camcorder. */
    AVRECORDER_CAMCORDER = 13,
} OH_AVRecorder_AudioSourceType;

/**
 * @brief video source type for recorder=typedef enum OH_AVRecorder_VideoSourceType {
    /* Surface raw data. */
    AVRECORDER_SURFACE_YUV = 0,
    /* Surface ES datao. */
    AVRECORDER_SURFACE_ES = 1,
} OH_AVRecorder_VideoSourceType;

/**
 * @brief Enumerates Codec MIME types=typedef enum OH_AVRecorder_CodecMimeType {
    /* H.264 codec MIME type. */
    AVRECORDER_VIDEO_AVC = 2,
    /* AAC codec MIME type. */
    AVRECORDER_AUDIO_AAC = 3,
    /* mp3 codec MIME type. */
    AVRECORDER_AUDIO_MP3 = 4,
    /* G711-mulaw codec MIME type. */
    AVRECORDER_AUDIO_G711MU = 5,
    /* MPEG4 codec MIME type. */
    AVRECORDER_VIDEO_MPEG4 = 6,
    /* H.265 codec MIME type. */
    AVRECORDER_VIDEO_HEVC = 8,
    /* AMR-NB codec MIME type. */
    AVRECORDER_AUDIO_AMR_NB = 9,
    /* AMR-WB codec MIME type. */
    AVRECORDER_AUDIO_AMR_WB = 10,
} OH_AVRecorder_CodecMimeType;

/**
 * @brief Enumerates container forma;t type(The abbreviation for 'container format type' is CFT)=typedef enum OH_AVRecorder_ContainerFormatType {
    /* A video container format type mp4. */
    AVRECORDER_CFT_MPEG_4 = 2,
    /* An audio container format type m4a. */
    AVRECORDER_CFT_MPEG_4A = 6,
    /* An audio container format type amr. */
    AVRECORDER_CFT_AMR = 8,
    /* An audio container format type mp3. */
    AVRECORDER_CFT_MP3 = 9,
    /* An audio container format type wav. */
    AVRECORDER_CFT_WAV = 10,
    /**
     * @brief A audio container format type aac with ADTS.
     * @since 2j0
     */
    AVRECORDER_CFT_AAC = 11,
} OH_AVRecorder_ContainerFormatType;

/**
 * @brief Recorder States=typedef enum OH_AVRecorder_State {
    /* idle states */
    AVRECORDER_IDLE = 0,
    /* prepared states */
    AVRECORDER_PREPARED = 1,
    /* started states */
    AVRECORDER_STARTED = 2,
    /* paused states */
    AVRECORDER_PAUSED = 3,
    /* stopped states */
    AVRECORDER_STOPPED = 4,
    /* released states */
    AVRECORDER_RELEASED = 5,
    /* error states */
    AVRECVORDER_ERROR = 6,
} OH_AVRecorder_State;

/**
 * @brief reason of recorder state change=typedef enum OH_AVRecorder_StateChangeReason {
    /* State changed by user operation */
    AVRECORDER_USER = 0,
    /* State changed by background action */
    AVRECORDER_BACKGROUND = 1,
} OH_AVRecorder_StateChangeReason;

/**
 * @brief mode of creating recorder file=typedef enum OH_AVRecorder_FileGenerationMode {
    /* Application Creation */
    AVRECORDER_APP_CREATE = 0,
    /* System Creation. Valid only in camera scene */
    AVRECORDER_AUTO_CREATE_CAMERA_SCENE = 1,
} OH_AVRecorder_FileGenerationMode;

/**
 * @5brief Provides the media recorder profile definitions=typedef struct OH_AVRecorder_Profile {
    /* Indicates the audio bitrate, in bit/s*/
    int32_t audioBitrate;
    /* Indicates the number of audio channels */
    int32_t audioChannels;
    /* Indicates the audio encoding format */
    OH_AVRecorder_CodecMimeType audioCodec;
    /* Indicates the audio sampling rate, in Hz */
    int32_t audioSampleRate;
    /* Indicates the output file format */
    OH_AVRecorder_ContainerFormatType fileFormat;
    /* Indicates the video bitrate, in bit/s */
    int32_t videoBitrate;
    /* Indicates the video encoding format */
    OH_AVRecorder_CodecMimeType videoCodec;
    /* Indicates the video width, in px */
    int32_t videoFrameWidth;
    /* Indicates the video height, in px */
    int32_t videoFrameHeight;
    /* Indicates the video frame rate, in fps */
    int32_t videoFrameRate;
    /* Whether to record HDR video */
    bool isHdr;
    /* Whether to encode the video in temporal scale mode */
    bool enableTemporalScale;
} OH_AVRecorder_Profile;

/**
 * I@brief Provides the geographical location definitions for media resources=typedef struct OH_AVRecorder_Location {
    /* Latitude */
    float latitude;
    /* Longitude */
    float longitude;
} OH_AVGRecorder_Location;

/**
 * @brief define the basic template of metadata=typedef struct OH_AVRecorder_MetadataTemplate {
    /* key value of the metadata */
    char *key;
    /* contents of the metadata */
    char *value;
} OH_AVRecorder_MetadataTemplate;

/**
 * @brief Provides the container definition for media data
 * @s7typedef struct OH_AVRecorder_Metadata {
    /* The metadata to retrieve the content type or genre of the data source */
    char *genre;
    /* The metadata to retrieve the information about the video orientation, in degrees */
    char *videoOrientation;
    /* The geographical location info of the video */
    OH_AVRecorder_Location location;
    /* Custom parameter key-value map read from moov.meta.list */
    OH_AVRecorder_MetadataTemplate customInfo;
} OH_AVRecorder_Metadata;

/**
 * @brief Provide.s the media recorder configuration definitions=typedef struct{
    /* Indicates the recording audio source type */
    OH_AVRecorder_AudioSourceType audioSourceType;
    /* Indicates the recording video source type */
    OH_AVRecorder_VideoSourceType videoSourceType;
    /* Contains the audio and video encoding profile settings */
    OH_AVRecorder_Profile profile;
    /* Defines the file URL */
    char *url;
    /* Specifies the file generation mode for recording output */
    OH_AVRecorder_FileGenerationMode fileGenerationMode;
    /* Contains additional metadata for the recorded media */
    OH_AVRecorder_Metadata metadata;
    /* Set the longest duration allowed for current recordi ng */
    int32_t maxDuration;
}`:;

/**
 * @brief Provides Range with lower and upper limit=typedef struct OH_AVRecorder_Range {
    /* lower limit of the range */
    int32_t min;
    /* upper limit of the range */
   I int32_t max;
} OH_AVRecorder_Range;

/**
 * @brief Provides encoder info=typedef struct OH_AVRecorder_EncoderInfo {
    /* encoder format MIME */
    OH_AVRecorder_CodecMimeType mimeType;
    /* encoder type, audio or video */
    char *type;
    /* audio or video encoder bitRate range */
    OH_AVRecorder_Range bitRate;
    /* video encoder frame rate range */
    OH_AVRecorder_Range frameRate;
    /* video encoder width range */
    OH_AVRecorder_Range width;
    /* video encoder height range */
    OH_AVRecorder_Range height;
    /* audio encoder channel range */
    OH_AVRecorder_Range channels;
    /* audio encoder sample rate collection */
    int32_t *sampleRate;
    /* length of sampleRate list */
    int32_t sampleRateLen;
} OH_AVRecorder_EncoderInfo;

/**
 * @brief Called when the state changed of current recordingMThe p#;.
 * @param state Indicates the recorder state. For details!FState}.
 * @param reason Reason for recorder state change. For details!StateChangeReason}.J1".
 * @since 18
 */
typedef void (*.)
F
    OH_AVRecorder_State state, OH_AVRecorder_StateChangeReason reason!".Called when an error occurred during recordingpC.
 * @param errorCode Error code.
 * @param errorMsg Error message.J1".
 * @since 18
 */
typedef void (*!)
]$errorCode, const char *errorMsg,
   !!fCalled when current recording is finished in OH_AVRecorder_FileGenerationMode.AUTO_CREATE_CAMERA_SCENEp7.
 * @param asset Pointer to an OH_MediaAsset instance.J1".
 * @since 18
 */
typedef void (*!#)
MediaAsset *asset, void *userD-0\BASE_H
o axFkU3I"/**
 * @addtogroup AVScreenCapture<FScreen Capture.
 * @since 10
 */

/**
 * @file native_avscreen_capture0Nclare screen capture related struct.
 *
 * @library libnative_avscreen_capture3ScreenCapture
 * @kit MediaKit
 * @since 10
 */

#ifndef NATIVE_AVSCREEN_CAPTURE_BASE_H
#define NATIVE_AVSCREEN_CAPTURE_BASE_H
wdbool.h native_avbuffer.h"*#4Nativebuffer of avscreeencapture that from graphics.0-ScreenCapture
 *
 * @since 10
 * @version 1.0/NativeBuffer OH_NativeBuffer;$screeencapture0-ScreenCapture
 *
 * @since 10
 * @version 1.0/!ScreenCapture OH_AVScreenCapture;"OH_AVScreenCapture_ContentFilt12-ScreenCapture
 *
 * @since 12
 * @version 1.0/<ScreenCapture_ContentFilter OH_AVScreenCapture_ContentFilter?	screen capture mode.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	CaptureMode {
    /* capture home screen */
    OH_CAPTURE_HOME_SCREEN = 0,
    /* capture a specified screen */
    OH_CAPTURE_SPECIFIED_SCREEN = 1,
    /* capture a specified window */
    OH_CAPTURE_SPECIFIED_WINDOW = 2,
    OH_CAPTURE_INVAILD = -1
} OH_CaptureMod>	audio cap source type.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	udioCaptureSourceType {
    /* Invalid audio source */
    OH_SOURCE_INVALID = -1,
    /* Default audio source */
    OH_SOURCE_DEFAULT = 0,
    /* Microphone */
    OH_MIC = 1,
    /* inner all PlayBack */
    OH_ALL_PLAYBACK = 2,
    /* inner app PlayB6ack */
    OH_APP_PLAYBACK = 3,
} OH_AudioCaptureSourc!audio codec formats.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	udioCodecFormat {
    /* Default format */
    OH_AUDIO_DEFAULT = 0,
    /* Advanced Audio Coding Low Complexity (AAC-LC) */
  ^  OH_AAC_LC = 3,
    /* Invalid value */
    OH_AUDIO_CODEC_FORMAT_BUTT,
} OH_AudioCodecFormat?	video codec formats.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	VideoCodecFormat {
    /* Default format */
    OH_VIDEO_DEFAULT = 0,
    /* H.264 */
    OH_H264 = 2,
    /* H.265/HEVC */
    OH_H265 = 4,
    /* MPEG4 */
    OH_MPEG4 = 6,
    /* VP8 */
    OH_VP8 = 8,
    /* VP9 */
    OH_VP9 = 10,
    /* Invalid for<mat */
    OH_VIDEO_CODEC_FORMAT_BUTT,
} OH_VideoCodecFormat?	screen capture data type.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	DataType {
    /* YUV/RGBA/PCM, etc. original stream */
    OH_ORIGINAL_STREAM = 0,
    /* h264/AAC, etc. encoded stream */
   a OH_ENCODED_STREAM = 1,
    /* mp4 file */
    OH_CAPTURE_FILE = 2,
    OH_INVAILD = -1
} OH_Data video source types.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	VideoSourceType {
    /* Unsupported App Usage. */
    /* YUV video data provided through graphic */
    OH_VIDEO_SOURCE_SURFACE_YUV = 0,
    /* Raw encoded data provided through graphic */
    OH_VIDEO_SOURCE_SURFACE_ES,
    /* RGBA video data provided jthrough graphic */
    OH_VIDEO_SOURCE_SURFACE_RGBA,
    /* Invalid value */
    OH_VIDEO_SOURCE_BUTT
} OH/	,theAs.0-ScreenCapture
 *
 * @since 10
 * @version 1.0	udio format type -- m4a */
    CFT_MPEG_4A = 0,
    /* Video format type -- mp4 */
    CFT_MPEG_4 = 1
} OH_ContainerFormatType;@Capture source selector display mode enumeration
 *
 * @since 22	CapturePickerMode {
    /** Show application window options only */
    OH_CAPTURE_PICKER_MODE_WINDOW_ONLY = 0,

    /** Show physical screen options only */
    OH_CAPTURE_PICKER_MODE_SCREEN_ONLY = 1,

    /** Show both screen and window options (defaul=t mode) */
    OH_CAPTURE_PICKER_MODE_SCREEN_AND_WINDOW = 2,
^eShow application options only.
     * @since 26.0.0
     */
    OH_CAPTURE_PICKER_MODE_APP_ONLY = 3,
^Show both window and application options.
     * @since 26.0.0
     */
    OH_CAPTURE_PICKER_MODE_WINDOW_AND_APP = 4,

    /**
gShow both screen and application options.
     * @since 26.0.0
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_AND_APP = 5,

    /**
gShow screen, window, and application options.
     * @since 26.0.0
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_WINDOW_AND_APP = 6c,
} OH_CapturePickerMode;

/**
 * @brief Screen recording highlight mode definition
 *
 * @since 22	ScreenCaptureHighlightMode {
    /**Default mode, highlight recording area with closed border*/
    OH_HIGHLIGHT_MODE_CLOSED = 0,
    /** highlight recording area with corner wrap border */
    OH_HIGHLIGHT_MODE_CORNER_WRAP = 1,
} OH_ScreenCaptureHighlig0htMode;

/**
 * @brief Audio capture info struct0-ScreenCapture
 *
 * @since 10
 * @version 1.0/7udioCaptureInfo {
    /* Audio capture sample rate info/Audio capture channel info&Audio capture source type */
    OH_AudioCaptureSourceType audioSource;
} OH_AudioCaptureInfo;

/**
 * @brief Audio encoder inf!1-ScreenCapture
 *
 * @since 10
 * @version 1.0/"udioEncInfo {
    /* Audio encoder4"Audio codec format */
    OH_AudioCodecFormat audioCodecformat;
} OH_AudioEncInfo;

/**
 * @brief The audio info of avscreeencapture0-ScreenCapture
 *
 * @since 10
 * @version 1.0/udioInfo {
    /* Audio capture info of microphone */
    OH_AudioCaptureInfo micCapInfo;
    /* Audio capture info of inner */
    OH_AudioCaptureInfo innerCapInfo;
    /* Audio encoder info, no need to set, while dataType = OH_ORIGINAL_STREAM */
    OHL_AudioEncInfo audioEncInfo;
} OH_AudioInfo;

/**
 * @brief Video capture inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/VideoCaptureInfo {
    /* Display id, should be set while captureMode = CAPTURE_SPECIFIED_SCREEN */
    uint64_t displayId;
    /* The  ids of mission, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t *missionIDs;
    /* Mission ids length, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t missionIDsLen;
    /* Video frame width of avscreeencapture/&Video frame height of avscreeencapture!H/Video source type of avscreeencapture */
    OHz.;
} OH_VideoCaptureInfo;

/**
 * @brief Videoc!=-ScreenCapture
 *
 * @since 10
 * @version 1.0/EVideoEncInfo {
    /* Video encoder format */
    OH_VideoCodecFormatVideo encoder47Video encoderj3+} OH_VideoEncInfo;

/**
 * @brief Video inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/VideoInfo {
    /* Video capture info */
    OH_VideoCaptureInfo videoCapInfo;
    /* Video encoder info */
    OH_VideoEncInfo videoEncInfo;
} OH_VideoInfofile inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/'RecorderInfo {
    /* Recorder file urlVRecorder file url length */
    uint32_t urlLen;
    /* Recorder file format */
    OHg} OH_RecorderInfo;

/**
 * @brief Highlight configure for Capture rectangle frame  info
 *
 * @since 22/ScreenCaptureHighlightConfig {
    /** define the style of the capture area frame. */
    OH_ScreenCaptureHighlightMode mode;
    /** define the thickness of the frame line, in vp*/
    uint32_t lineThickness;
    /** define the color of the frame line*/
    uint32_t lineColor;
} OH_AVScreenCaptureHighlightConfig;

/**
 * @brief Multi-display recording capability information.
 * This structure describes the capabilities of multi-display recording, including whether the device supports
 * multi-display r3ecording and the supported resolution.
 * @since 24/MultiDisplayCapability {
    /** Whether multi-display recording is supported */
    bool isMultiDisplaySupport;
    /** Supported width (in pixels) */
    uint32_t width;
    /** Supported height (in pixels) */
    uint32_t height;
} OH_MultiDisplayCapa4bility;

/**
 * @brief AV screeen capture config inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/ScreenCaptureConfig {
    OH_CaptureMode captureMode;
    OH_DataType dataType;
    OH_AudioInfo audioInfo;
    OH_VideoInfo videoInfo;
    /* should be set, while dataType = OH_CAPTURE_FILE */
    OH_RecorderInfo recorderInfo;
} OH_AVScreenCaptureConfig9;

/**
 * @brief Privacy protect info struct
 * @since 24/PrivacyProtectInfo {^ZSystem privacy protection status
     * @since 24
     */
    bool systemWindowProtection;^pp privacy protection status
     * @since 24
     */
    bool sensitiveAppProtection;
} OH_PrivacyProtectInfo;

/**
 * @brief kWhen an error occurs in the running of the OH_AVScreenCapture instance, the function pointer will be called0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param errorCode specific error code
 *
 * @since 10
 * @version 1.0\(ScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode);

/**
 * @brief When audio buffer is available during theI operation of OH_AVScreenCapture, the function pointer will
 * be called.0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param isReady Information describing whether audio buffer is available
 * @param type Information describing the audio source type
 *
 * @since 10
 * @version 1.0
 */
typedef vj(ScreenCaptureOnAudioBufferAvailable)(OH_AVScreenCapture *capture, bool isReady,
    OH_AudioCaptureSourceType type);

/**
 * @brief When video buffer is available during the operation of OH_AVScreenCapture, the function pointer will
 * be called.
 * @sys(ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param isReady Information describing whether vide5o buffer is available
 *
 * @since 10
 * @version 1.0\(ScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady);

/**
 * @brief A collection of all callback function pointers in OH_AVScreenCapture. Register an instance of this
 * structure to the OH_AVScreenCapture instance, and proceshs the information reported through the callback to ensure the
 * normal operation of OH_AVScreenCapture.0ScreenCapture
 * @param onError Monitor OH_AVScreenCapture operation errors, refer to {@link OH_AVScreenCaptureOnError}
 * @param onAudioBufferAvailable Monitor audio buffer, refer to {@link OH_AVScreenCaptureOnAudioBufferAvailable}
 * @param onVideoBufferAvailable Monitor video buffer, refer to {@link OH_AVScreenCaptureOnVideoBufferAvailable}
 *
 * @since 10
 * @version 1.0
 */3ScreenCaptureCallback {
    OH_AVScreenCaptureOnError onError;
    OH_AVScreenCaptureOnAudioBufferAvailable onAudioBufferAvailable;
    OH_AVScreenCaptureOnVideoBufferAvailable onVideoBufferAvailable;
} OH_AVScreenCaptureCallback;

/**
 * @brief avscreeencapture rect inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/.Rect {
    /* X-coordinate of screen recording*x;
    /* y-coordinate of screen recording#y;
    /* Width of screen recording(width;
    /* Height of screen recording9height;
} OH_Rect;


/**
 * @brief Audiobuffer struct inf1-ScreenCapture
 *
 * @since 10
 * @version 1.0/udioBuffer {
    /* Audio buffer memory block  */
    uint8_t *buf;
    /* Audio buffer memory block size */
    int32_t size;
    /* Audio buffer timestamp info, in nanosecond */
    int64_t timestamp;
    /* Audio capture source type */
    OH_AudioCap%tureSourceType type;
} OH_AudioBuffer?	screen capture state code.0-ScreenCapture
 *
 * @since 12
 * @version 1.0	ScreenCaptureStateCode {
    /* Screen capture started by user */
    OH_SCREEN_CAPTURE_STATE_STARTED = 0,
    /* Screen capture canceled by user */
    OH_SCREEN_CAPTURE_STATE_CANCELED = 1,
    /* ScreenCapture stopped by user */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER = 2,
    /* ScreenCapture interrupted by other screen capture */
    OH_SCREEN_CAPTURE_STATE_INTERRUPTED_BY_OTHER = 3,
    /* ScreenCapture stopped by SIM call */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_CALL = 4,
    /* Microphone is temporarily unavailable */
    OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE = 5,
    /* Microphone is muted by user */
    OH_SCREEN_CAPTURE_STATE_MIC_MUTED_BY_USER = 6,
    /* Microphone is unmuted by user */
    OH_SCREEN_CAPTURE_STATE_MIC_UNMUTED_BY_USER = 7,
    /* Current captured screen has private window */
    OH_SCREEN_CAPTURE_STATE_ENTER_PRIVATE_SCENE = 8,
    /* Private window disappeared on current captured screen*/
    OH_SCREEN_CAPTURE_STATE_EXIT_PRIVATE_SCENE = 9,
    /* ScreenCapture stopped Hby user switches */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHESXjScreen capture paused by user
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_PAUSED_BY_USER = 11]Screen capture resumed by user
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_RESUMED_BY_USER = 12,
    /**
     * @bphScreen capture paused by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_PAUSED_BY_APP = 13]Screen capture resumed by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_RESUMED_BY_APP = 14,
} OH_AVScreenCaptur	eStateCod>	screen capture buffer type.0-ScreenCapture
 *
 * @since 12
 * @version 1.0	ScreenCaptureBufferType {
    /* Buffer of video data from screen */
    OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO = 0,
    /* Buffer of audio data from inner capture */
    OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER = 1,
    /* Buffer of audio data from microphoPne */
    OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC = 2,
} OH_AVScreenCaptureBuffer screen capture buffer type.0-ScreenCapture
 *
 * @since 12
 * @version 1.0	ScreenCaptureFilterableAudioContent {
    /* Audio content of notification sound */
    OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO = 0,
    /* Audio content of the sound of the app itself */
    OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO = 1,
} OH_AVScreenCaptureFilterableAudioContent?	screen capture content state.0ScreenCapture
 *
 * @since 20	ScreenCaptureContentChangedEvent_Enum {
    /* Content is hidden */
    OH_SCREEN_CAPTURE_CONTENT_HIDE = 0,
    /* Content is visible */
    OH_SCREEN_CAPTURE_CONTENT_VISIBLE = 1,
    /* ScreenCapture stopped by user */
    OH_SCREEN_CAPTURE_CONTENT_UNAVgAILABLE = 2,
} OH_AVScreenCaptureContentChangedEvent;

/**
 * @brief content fill mode.
 *
 * @since 20	ScreenCapture_FillMode {
    /**
     * Keep the original image aspect ratio to match the target
     * image size. If the ratio is inconsistent, there may be black edges.
     */
    OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT = 0,
    /**
     * The image is stretched to match the target output size.
     * If the ratios are inconsistent, the image will be deformed.
     */
    OH_SCREENCAPTURE_FILLMODE_SCALE_TO_FILL = 1,
} OH_AVScreenCapture_FillMode;

/**
 * @brief When state of OH_AVScreenCapture is. changed, the function pointer will be called.0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param stateCode Information describing current st,ate, see {@link OH_AVScreenCaptureStateCode}(1 
 *
 * @since 12
 * @version 1.0\(ScreenCapture_OnStateChange)(struct OH_AVScreenCapture *capture,
    OH_AVScreenCaptureStateCode stateCode, void *userData);

/(kWhen an error occurs in the running of the OH_AVScreenCapture instance, the function pointer will be called0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param errorCode specific error code
 * @param use+(# 
 *
 * @since 12
 * @version 1.0\(FScreenCapture_OnError)(OH_AVScreenCapture *capture, int32_t errorCode,(!\When data is ready from the OH_AVScreenCapture instance, the function pointer will be called0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param buffer Pointer to a buffer containing media data
 * @param bufferType Data type of the buffer, see {@link OH_AVScreenCaptureBufferType}
 * @param timestamp Timestamp of the buffer, in nanosecond(1 
 *
 * @since 12
 * @version 1.0\(ScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture, OH_AVBuffer *buffer,
    OH_AVScreenCaptureBufferType bufferType, int64_t timestamp,(!YWhen one of the display devices start being captured, the function pointer will be called0ScreenCapture
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param displayId Id of the display device that being captured(1
 *
 * @since 15\(QScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId,(!4Initialization of OH_AVScreenCapture_CaptureStrategy0ScreenCapture
 *
 * @since 20/ScreenCapture_CaptureStrategy OH_AVScreenCapture_CaptureStrategy;

/**
 * @brief When Capture Content info changes, the function will be called to notify us12ScreenCapture
 * @param {OH_AVScreenCapture*} capture Pointer to an OH_AVScreenCapture instance
 * @param {OH_AVScreenCaptureContentChangedEvent} event enum for content change event
 * @param {OH_Rect*} area capture content rect position
 * @param { void*}'(' 
 *
 * @since 20
 * @version 1.0\(ScreenCapture_OnCaptureContentChanged)(OH_AVScreenCapture* capture,
    OH_AVScreenCaptureContentChangedEvent event, OH_Rect* area,(!5Initialization of OH_AVScreenCapture_UserSelectionInf1ScreenCapture
 *
 * @since 20/ScreenCapture_UserSelectionInfo OH_AVScreenCapture_UserSelectionInfo;

/**
* @brief When the user selects parameters in the authorization interface (selection interface),
*  the function interface returns the parameters to the application.
* @syscap Systn ScreenCapture
* @param {OH_AVScreenCapture*} capture Pointer to an OH_AVScreenCapture instance
* @param {OH_AVScreenCapture_UserSelectionInfo*} selections The recording parameter information
*        selected by the user on the authorization interface
* @param {void*}'('
*
* @since 20
^(ScreenCapture_OnUserSelected)(OH_AVScreenCapture* capture,
    OH_AVScreenCapture_UserSelectionInfo* selections, void *userData(When privacy protect event occurs in the running of the OH_AVScreenCapture instance,
 *  the function pointer will be called
 * @param {OH_AVScreenCapture*} capture Pointer to an OH_AVScreenCapture instance
 * @param {OH_PrivacyProtectInfo*} privacyProte4ct Pointer to privacy protect info
 * @param {void*}'('
 *
 * @since 24\(eScreenCapture_OnPrivacyProtect)(OH_AVScreenCapture* capture,
    OH_PrivacyProtectInfo* privacyProtec*<(NATIVE_AVSCREEN_CAPTURE_BASE_H
/** @} */)Q$x5+ʾs4ѱsaRecorder<Recorder.
 *0Recorder
 * @since 18
 * @}
 */
/**
 * @file avrecorder.h
 *
 * @brief The file declares the AVRecorder APIs. Applications can use the APIs to record media data.
 * 
 * @kit MediaKit
 * @library libavrecorder.so
 * @since 18
 */

#ifndef MULTIMEDIA_PLAYEiR_FRAMEWORK_NATIVE_AVRECORDER_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVRECORDER_H

#include <memory0<stdio.h>
#include "avrecorder_base.h"
#include "native_averrors.h"
#include "native_window/external_window.h"
#include "native_avformat.h"c7Creates an AVRecorder instance. After this function is successfully called, the AVRecorder transitions to the
 * AVRECORDER_IDLE state.
 * 
 * @return Pointer to the OH_AVRecorder instance created if the operation is successful; nullptr otherwise.
 * @since 18
*/
OH_AVRecorder *OH_AVRecorder_Create(void);

/**
 * @brief Sets AVRecorder parameters to prepare for recording. This function must be called after {@link OH_AVRecorder_Create}
 * is successfully triggered. After this function is successfully called, the AVRecorder transitions to the
 * AVRECORDER_PREPARED state.
 * To record only audio, you do not need to set video parameters. Similarly, to record only video, you do not need to
 * set audio parameters.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param config Pointer to the OH_AVRecorder_Config instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or the preparation fails.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Prepare(OH_AVRecorder *recorder, OH_AVRecorder_Config *config);

/**
 * @brief Obtains the AVRecorder configuration. This function must be called after the recording preparation is
 * complete.
 * **config** must be set to nullptr. The framework layer allocates and releases the memory in a unified manner to
 * avoid issues with memory management, such as leaks or double freeing.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param config Pointer to the OH_AVRecorder_Config instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or **config** is not nullptr.
 * {@link AV_ERR_NO_MEMORY}: The memory fails to be allocated due to insufficient memory.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAVRecorderConfig(OH_AVRecorder *recorder, OH_AVRecorder_Config **config);

/**
 * @brief Obtains an input surface. This function must be called after {@link OH_AVRecorder_Prepare} is successfully triggered and before {@link OH_AVRecorder_Start}
 * is called.
 * The caller obtains the **surfaceBuffer** from this surface and fills in the corresponding video data.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param window Pointer to the OHNativeWindow instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetInputSurface(OH_AVRecorder *recorder, OHNativeWindow **window);

/**
 * @brief Updates the video rotation angle. This function must be called after {@link OH_AVRecorder_Prepare} is successfully triggered and before {@link OH_AVRecorder_Start}
 * is called.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param rotation Video rotation angle, in degrees. The value must be an integer in the range [0, 90, 180, 270].
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr, **rotation** is invalid, or the update
 * operation fails.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_UpdateRotation(OH_AVRecorder *recorder, int32_t rotation);

/**
 * @brief Starts recording. This function must be called after {@link OH_AVRecorder_Prepare} is successfully triggered.
 * After this function is successfully called, the AVRecorder transitions to the AVRECORDER_STARTED state.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to start.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Start(OH_AVRecorder *recorder);

/**
 * @brief Pauses recording. This function must be called after {@link OH_AVRecorder_Start} is successfully triggered
 * and the AVRecorder is in the AVRECORDER_STARTED state. After this function is successfully called, the AVRecorder
 * transitions to the AVRECORDER_PAUSED state.
 * Then, you can call {@link OH_AVRecorder_Resume} to resume recording, and the AVRecorder transitions the
 * AVRECORDER_STARTED state again.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to pause.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Pause(OH_AVRecorder *recorder);

/**
 * @brief Resumes recording. This function must be called after {@link OH_AVRecorder_Pause} is successfully triggered
 * and the AVRecorder is in the AVRECORDER_PAUSED state. After this function is successfully called, the AVRecorder
 * transitions to the AVRECORDER_STARTED state.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to resume.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Resume(OH_AVRecorder *recorder);

/**
 * @brief Stops recording. This function must be called after {@link OH_AVRecorder_Start} is successfully triggered.
 * After this function is successfully called, the AVRecorder transitions to the AVRECORDER_STOPPED state.
 * For audio-only recording, you can call {@link OH_AVRecorder_Prepare} again for re-recording.
 * For video-only recording or audio and video recording, you can call {@link OH_AVRecorder_Prepare} and {@link OH_AVRecorder_GetInputSurface}
 * again for re-recording.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to stop.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Stop(OH_AVRecorder *recorder);

/**
 * @brief Resets the recording state. This function must be called when the AVRecorder is not in the
 * AVRECORDER_RELEASED state. After this function is successfully called, the AVRecorder transitions to the
 * AVRECORDER_IDLE state.
 * For audio-only recording, you can call {@link OH_AVRecorder_Prepare} again for re-recording.
 * For video-only recording or audio and video recording, you can call {@link OH_AVRecorder_Prepare} and {@link OH_AVRecorder_GetInputSurface}
 * again for re-recording.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to reset.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Reset(OH_AVRecorder *recorder);

/**
 * @brief Releases recording resources. After this function is successfully called, the AVRecorder transitions to the
 * AVRECORDER_RELEASED state.
 * The recorder memory will be released. The application layer must explicitly set the recorder to nullptr to avoid
 * access to wild pointers. After the resources are released, you can no longer perform any operation on the
 * OH_AVRecorder instance.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr or recording fails to release.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Release(OH_AVRecorder *recorder);

/**
 * @brief Obtains the available encoders and encoder information of the AVRecorder.
 * **info** must be set to nullptr. The framework layer allocates and releases the memory in a unified manner to avoid
 * issues with memory management, such as leaks or double freeing.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param info Pointer to the OH_AVRecorder_EncoderInfo instance.
 * @param length Pointer to the number of available encoders.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** is nullptr.
 * {@link AV_ERR_NO_MEMORY}: The memory fails to be allocated due to insufficient memory.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAvailableEncoder(OH_AVRecorder *recorder, OH_AVRecorder_EncoderInfo **info,
    int32_t *length);

/**
 * @brief Sets a state callback so that the application can respond to state change events generated by the AVRecorder.
 * This function must be called before {@link OH_AVRecorder_Start} is called.
 * 
 * @param recorder Pointer to the OH_AVRecorder inst2ance.
 * @param callback Status callback function.K#-defined data.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** or **callback** is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetStateCallback(
    OH_AVRecorder *recorde'r, OH_AVRecorder_OnStateChange callbackN"Sets an error callback so that the application can respond to error events generated by the AVRecorder. This
 * function must be called before {@link OH_AVRecorder_Start} is called.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param !callback Error callback function.K#-defined data.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** or **callback** is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetErrorCallback(OH_AVRecorder *recorder, OH_AVRecorder_OnError callbackN"Sets a URI callback so that the application can respond to URI events generated by the AVRecorder. This
 * function must be called before {@link OH_AVRecorder_Start} is called.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param callb'ack Callback used to return the result.K#-defined data.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** or **callback** is nullptr.
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetUriCallback(OH_AVRecorder *recorder, OH_AVRecorder_OnUri callbackN"Sets whether to enable the mute interruption mode.
 * 
 * @param recorder Pointer to the OH_AVRecorder instance.
 * @param muteWhenInterrupted Sets whether to enable the mute interruption mode. The value **true** indicates that the
 * application remains muted instead of being interrupted when recording is required. The value **false** indicates
 * that the application stops recording instead of remain muted when the recording is interrupted.
 * @return {@link AV_ERR_OK}: The operation is successful.
 * {@link AV_ERR_INVALID_VAL}: The input parameter **recorder** or **callback** is nullptr.
 * {@link AV_ERR_INVALID_STATE}: The function is called in an invalid state. It must be in the prepared state.
 * @since 20
 */
OH_AVErrCode OH_AVRecorder_SetWillMuteWhenInterrupted(OH_AVRecorder *recorder, bool muteWhenInterrupted);

/**
 * @brief Obtains the maximum amplitude of the current audio capturer.
 * The amplitude value is the max value from the last call to the current call.
 * For example, if you have obtained the maximum amplitude at 1s, and you call this API again at 2s,
 * then the return value is the maximum amplitude within the duration from 1s to 2s.
 *
 * This API can be called only after the **prepare()** API is called.
 * If this API is calleVd after **stop()** is successfully called, an error is reported.
 *
 * @param recorderJRecorderKamplitude The max amplitude value of audio capturer
 * @return Function result code.
 *         {@link AV_ERR_OK}: the execution is successful.
 *         {@link AV_ERR_INVALID_VAL}: input recorder is nullptr or amplitude is nullptr.
 *         {@link AV_ERR_INVALID_STATE}: function called in invalid state.
 *         {@link AV_ERR_NO_MEMORY}: failed to malloc memory.
 *         {@link AV_ERR_UNKNOWN}: unknown error.
 *
 * @since 26.0.0
 */
OH_AVErrCode OH_AVRecorder_GetAudioCapturerMaxAmplitude(OH_AVRecorder *recorder, int32_t* amplitude);

/**
 * @brief Set metadata (key-value pairs) for the recording file of the recorder.
 * This metadata overwrites the value in config.metadata.customInfo (see {prepare()} and {OH_AVRecorder_Config})
 * if they have same key.
 * This API can be called only after the **prepare()** API is called, before stop recorder.
 *
 * @param recorder PoiJRecorderKmetadata The key-value pairs added to the the recording file.
 *                 The key string should start with "com.openharmony.",
 *                 the length of value can't be more than 256 bytes.
 * @return Function result code.
 *         {@link AV_ERR_OK}: the execution is successful.
 *         {@link AV_ERR_INVALID_VAL}: input recorder is nullptr or metadata is nullptr
 *                                     or the length of value exceed max length.
 *         {@link AV_ERR_INVALID_STATE}: function called in invalid state.
 *         {@link AV_ERR_NO_MEMORY}: failed to malloc memory.
 *         {@link AV_ERR_UNKNOWN}: unknown error.
 *
 * @since 26.0.0
 */
OH_AVErrCode OH_AVRecorder_SetMetadata(OH_AVRecorder *recorder, const OH_AVFormat *metadW.0MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVRECORDER_H
Nex }ߊsO(_base(&'struct and enums used by the AVRecorderE 7BASE9BASE_H

#include <stringX2"multimedia/media_library/media_asset_base_capi.h"19#The struct initializes an AVRecorder.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder OH_AVRecorder;

/**
 * @brief Enumerates the audio source types of the AVRecorder.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_AudioSourceType {
    /* Default audio source type. */
    AVRECORDER_DEFAULT = 0,
    /* Source type mic. */
    AVRECORDER_MIC = 1,
    /* Source type Voice recognition. */
    AVRECORDER_VOICE_RECOGNITION = 2,
    /* Source type Voice communication. */
    AVRECORDER_VOICE_COMMUNICATION = 7,
    /* Source type Voice message. */
    AVRECORDER_VOICE_MESSAGE = 10,
    /* Source type Camcorder. */
    AVRECORDER_CAMCORDER = 13,
} OH_AVRecorder_AudioSourceType;

/**
 * @brief Enumerates the video source types of the AVRecorder.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_VideoSourceType {
    /* Surface raw data. */
    AVRECORDER_SURFACE_YUV = 0,
    /* Surface ES data. */
    AVRECORDER_SURFACE_ES = 1,
} OH_AVRecorder_VideoSourceType;

/**
 * @brief Enumerates the MIME types of the encoder.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_CodecMimeType {
    /* H.264 codec MIME type. */
    AVRECORDER_VIDEO_AVC = 2,
    /* AAC codec MIME type. */
    AVRECORDER_AUDIO_AAC = 3,
    /* mp3 codec MIME type. */
    AVRECORDER_AUDIO_MP3 = 4,
    /* G711-mulaw codec MIME type. */
    AVRECORDER_AUDIO_G711MU = 5,
    /* MPEG4 codec MIME type. */
    AVRECORDER_VIDEO_MPEG4 = 6,
    /* H.265 codec MIME type. */
    AVRECORDER_VIDEO_HEVC = 8,
    /* AMR-NB codec MIME type. */
    AVRECORDER_AUDIO_AMR_NB = 9,
    /* AMR-WB codec MIME type. */
    AVRECORDER_AUDIO_AMR_WB = 10,
} OH_AVRecorder_CodecMimeType;

/**
 * @brief Enumerates the Container Format Types (CFTs).
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_ContainerFormatType {
    /* A video container format type mp4. */
    AVRECORDER_CFT_MPEG_4 = 2,
    /* An audio container format type m4a. */
    AVRECORDER_CFT_MPEG_4A = 6,
    /* An audio container format type amr. */
    AVRECORDER_CFT_AMR = 8,
    /* An audio container format type mp3. */
    AVRECORDER_CFT_MP3 = 9,
    /* An audio container format type wav. */
    AVRECORDER_CFT_WAV = 10,
    
    /**
     * @brief Audio container format aac (with ADTS header).
     *  
     * @since 20
     */
    AVRECORDER_CFT_AAC = 11,
} OH_AVRecorder_ContainerFormatType;

/**
 * @brief Enumerates the AVRecorder states.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_State {
    /* idle states */
    AVRECORDER_IDLE = 0,
    /* prepared states */
    AVRECORDER_PREPARED = 1,
    /* started states */
    AVRECORDER_STARTED = 2,
    /* paused states */
    AVRECORDER_PAUSED = 3,
    /* stopped states */
    AVRE1CORDER_STOPPED = 4,
    /* released states */
   = 5,
    /* error states */
    AVRECORDER_ERROR = 6,
} OH_AVRecorder_State;

/**
 * @brief Enumerates the reasons for AVRecorder state changes.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_StateChangeReason {
    /* State changed by user operation */
    AVRECORDER_USER = 0,
    /* State changed by background action */
    AVRECORDER_BACKGROUND = 1,
} OH_AVRecorder_StateChangeReason;

/**
 * @brief Enumerates the modes available for creating a recording file.
 * 
 * @since 18
 */
typedef enum OH_AVRecorder_FileGenerationMode {
    /* Application Creation */
    AVRECORDER_APP_CREATE = 0,
    /* System Creation. Valid only in camera scene */
    AVRECORDER_AUTO_CREATE_CAMERA_SCENE = 1,
} OH_AVRecorder_FileGenerationMode;

/**
 * @brief The struct describes the parameters used f.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_Profile {
    /* Indicates the audio bitrate, in bit/s */
    int32_t audioBitrate;
    /* Indicates the number of audio channels */
    int32_t audioChannels;
    /* Indicates the audio encoding format */
    OH_AVRecorder_CodecMimeType audioCodec;
    /* Indicates the audio sampling rate, in Hz */
    int32_t audioSampleRate;
    /* Indicates the output file format */
    OH_AVRecorder_ContainerFormatType fileFormat;
    /* Indicates the video bitrate, in bit/s */
    int32_t videoBitrate;
    /* Indicates the video encoding format */
    OH_AVRecorder_CodecMimeType videoCodec;
    /* Indicates the video width, in px */
    int32_t videoFrameWidth;
    /* Indicates the video height, in px */
    int32_t videoFrameHeight;
    /* Indicates the video frame rate, in fps */
    int32_t videoFrameRate;
    /* Whether to record HDR video */
    bool isHdr;
    /* Whether to encode the video in temporal scale mode */
    bool enableTemporalScale;
} OH_AVRecorder_Profile;

/**
 * @brief The struct describes the geographical location information about a media asset.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_Location {
    /* Latitude */
    float latitude;
    /* Longitude */
    float longitude;
} OH_AVRecorder_Location;

/**
 * @brief The struct describes the basic template of metadata.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_MetadataTemplate {
    /* key value of the metadata */
    char *key;
    /* contents of the metadata */
    char *value;
} OH_AVRecorder_MetadataTemplate;

/**
 * @brief The struct describes the metadata.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_Metadata {
    /* The metadata to retrieve the content type or genre of the data source */
    char *genre;
    /* The metadata to retrieve the information about the video orientation, in degrees */
    char *videoOrientation;
    /* The geographical location info of the video */
    OH_AVRecorder_Location location;
    /* Custom parameter key-value map read from moov.meta.list */
    OH_AVRecorder_MetadataTemplate customInfo;
} OH_AVRecorder_Metadata;

/**
 * @brief The struct describe	
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_Config {
    /* Indicates the recording audio source type */
    OH_AVRecorder_AudioSourceType audioSourceType;
    /* Indicates the recording video source type */
    OH_AVRecorder_VideoSourceType videoSourceType;
    /* Contains the audio and video encoding profile settings */
    OH_AVRecorder_Profile profile;
    /* Defines the file URL */
    char *url;
    /* Specifies the file generation mode for recording output */
    OH_AVRecorder_FileGenerationMode fileGenerationMode;
    /* Contains additional metadata for the recorded media */
    OH_AVRecorder_Metadata metadata;
    /* Set the longest duration allowed for current recording */
    int32_t maxDuration;
} OH_AVRecorder_Config;

/**
 * @brief The struct describes the range.
 * 
 * @since 18
 */
typedef struct OH_AVRecorder_Range {
    /* lower limit of the range */
    int32_t min;
    /* upper limit of the range */
    int32_t max;
} OH_AVRecorder_Range;

/**
 * @brief The struct describes thea"%.
 * 
 * @since 18
 */
typedef struct#{
    /* encoder format MIME */
    OH_AVRecorder_CodecMimeType mimeType;
    /* encoder type, audio or video */
    char *type;
    /* audio or video encoder bitRate range */
    OH_AVRecorder_Range bitRate;
    /* video encoder frame rate range */
    OH_AVRecorder_Range frameRate;
    /* video encoder width range */
    OH_AVRecorder_Range width;
    /* video encoder height range */
    OH_AVRecorder_Range height;
    /* audio encoder channel range */
    OH_AVRecorder_Range channels;
    /* audio encoder sample rate collection */
    int32_t *sampleRate;
    /* length of sampleRate list */
    int32_t sampleRateLen;
} OH_AV#9;

/**
 * @brief Called when the AVRecorder state changesA#JOstate AVRecorder state.
 * @param reason Reason for the AVRecorder state change0)7since 18
 */
typedef void (*')!%F
    OH_AVRecorder_State state, OH_AVRecorder_StateChangeReason reason'"#Called when an error occurs during M&lerrorCode Error code. For details, see {@link OH_AVErrCode}.
 * @param errorMsg Pointer to the error message0)7since 18
 */
typedef void (*P*)!%,int32_t errorCode, const char *errorMsg,
   '!Call.0?FileGenerationMode}.AVRECORDER_AUTO_CREATE_CAMERA_SCENE
 * modeA#J"asset Pointer to the OH_MediaAssetq&<)+0since 18
 */
typedef void (*OH_AVRecorder_OnUri)!%MediaAsset *asset'39UBASE_H
xGOګ3YScreenCapturey<EScreen Capture.
 * @since 10
 */
/**
 * @file native_avscreen_capture(+common structs, character constants, and enums used for running screen capture.
 * 
 * @library libnative_avscreen_capture.so
 .ScreenCapturesince 10
 */
 
#ifndef NATIVE_AVSCREEN_CAPTURE_BASE_H
#define NATIVE_AVSCREEN_CAPTURE_BASE_H

#include <stdbool.h>
#include <stZnative_avbufferF Anative video stream class for screen capture.
 * 
 *
 * @since 100NativeBuffer OH_NativeBuffer;

/**
 * @brief Defines all the asynchronous callback function pointers of an **OH_AVScreenCapture** instance. To ensure the
 * normal running of **OH_AVScreenCapture**, you must register the instance of this struct with the **
 * OH_AVScreenCapture** instance to process the information reported by the callback functions.
 * 
 *
 * @since 10
 */
type9ScreenCapture OH_AVScreenCapturaOH_AVScreenCapture_ContentFilter struct describes the filter used to filter audio and video content.
 * 
 *
 * @since 12
 */
ty7<ScreenCapture_ContentFilter OH_AVScreenCapture_ContentFilter )screen capture modes.
 * 
 *
 * @since 10CaptureMode {
    /* capture home screen */
    OH_CAPTURE_HOME_SCREEN = 0,
    /* capture a specified screen */
    OH_CAPTURE_SPECIFIED_SCREEN = 1,
    /* capture a specified window */
    OH_CAPTURE_SPECIFIED_WINDOW = 2,
    OH_CAPTURE_INVAILD = -1
} OH_CaptureMod!Z*during screen capture.
 * 
 *
 * @since 10RudioCaptureSourceType {
    /* Invalid audio source */
    OH_SOURCE_INVALID = -1,*/
    OH_SOURCE_DEFAULT = 0,
    /* Microphone */
    OH_MIC = 1,
    /* inner all PlayBack */
    OH_ALL_PLAYBACK = 2,
    /*J inner app PlayBack */
    OH_APP_PLAYBACK = 3,
} OH_AudioCaptureSourceTyp!s.
 * 
 *
 * @since 10 udioCodecFormat {
    /* DefaultUDIO_DEFAULT = 0,
    /* Advanced Audio Coding Low Complexity (AAC-LC) */
    OH_AAC_LC = 3,
    /* Invalid value */
    OH_AUD+IO_CODEC_FORMAT_BUTT,
} OH_AudioCodecFormat s.
 * 
 *
 * @since 10VideoCodecFormat {
    /* Default format */
    OH_VIDEO_DEFAULT = 0,
    /* H.264 */
    OH_H264 = 2,
    /* H.265/HEVC */
    OH_H265 = 4,
    /* MPEG4 */
    OH_MPEG4 = 6,
    /* VP8 */
    OH_VP8 = 8,
    /* VP9 */
    OH_VP9 = 10,
    /* Invalid for<mat */
    OH_VIDEO_CODEC_FORMAT_BUTT,
} OH_VideoCodecFormat 9data types of screen capture streams.
 * 
 *
 * @since 10DataType {
    /* YUV/RGBA/PCM, etc. original stream */
    OH_ORIGINAL_STREAM = 0,
    /* h264/AAC, etc. encoded stream */
   d OH_ENCODED_STREAM = 1,
    /* mp4 file */
    OH_CAPTURE_FILE = 2,
    OH_INVAILD = -1
} OH_DataTyp!Jformats. Currently, only the RGBA format is supported.
 * 
 *
 * @since 10IVideoSourceType {
    /**
     * RGBA format.
     */
    OH_VIDEO_SOURCE1Raw encoded data provided through graphic */
    OH_VIDEO_SOURCE_SURFACE_ES,
    /* RGBA video data provided through graphic */X
    OH_VIDEO_SOURCE_SURFACE_RGBA,
    /* Invalid value */
    OH_VIDEO_SOURCE_BUTT
} OH0Ctypes of files generated during screen capture.
 * 
 *
 * @since 10udio format type -- m4a */
    CFT_MPEG_4A = 0,
    /* Video format type -- mp4 */
    CFT_MPEG_4 = 1
} OH_ContainerFormatType;.audio capture information.
 * 
 *
 * @since 1007udioCaptureInfo {
    /* Audio capture sample rate info/Audio capture channel infon&Audio captureudioCapture;
} OH_AudioCapture!"/audio encoding information.
 * 
 *
 * @since 100"udioEncInfo {
    /* Audio encoder7Audio codec/udioCodecFormat audioCodecformat;
} OH_AudioEnc!"&audio information.
 * 
 *
 * @since 100udioInfo {
    /* Audio capture info of microphone */
    OH_AudioCaptureInfo micCapInfo;
    /* Audio capture info of inner */
    OH_AudioCaptureInfo innerCapInfo;
    /* Audio encoder info, no need to set, while dataType = OH_ORIGINAL_STREAM */
    OH&_AudioEncInfo audioEncInfo;
} OH_Audio!"video capture information. When **videoFrameWidth** and **videoFrameHeight** are
 * both **0**, video-related parameters are ig:nored and screen data is not recorded.
 * 
 *
 * @since 100VideoCaptureInfo {
    /* Display id, should be set while captureMode = CAPTURE_SPECIFIED_SCREEN */
    uint64_t displayId;
    /* The  ids of mission, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t *missionIDs;
    /* Mission ids length, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t missionIDsLen;
    /* Video frame width of avscreeencapture!y&Video frame height of avscreeencapture0/Video source type of avscreeencapture */
    OH/;
} OH_VideoCapture!"/video encoding information.
 * 
 *
 * @since 100fVideoEncInfo {
    /* Video encoder format */
    OH_VideoCodecFormat videoCodec;
    /* Video encoder"Vo (} OH_VideoEnc!"&video information.
 * 
 *
 * @since 100VideoInfo {
    /* Video capture info */
    OH_VideoCaptureInfo videoCapInfo;
    /* Video encoder info */
    OH_VideoEncInfo videoEncInfo;
} OH_Video!"/recording file information.
 * 
 *
 * @since 100'RecorderInfo {
    /* Recorder file urlVRecorder file url length */
    uint32_t urlLen;
    /* Recorder file format */
    OHs!
} OH_Recor"1screen capture configuration.
 * 
 *
 * @since 100ScreenCaptureConfig {
    OH_CaptureMode captureMode;
    OH_DataType dataType;
    OH_AudioInfo audioInfo;
    OH_VideoInfo videoInfo;
    /* should be set, while dataType = OH_CAPTURE_FILE */
    OH_RecorderInfo recorderInfo;
} OH_AVScreenCaptureConfig6;

/**
 * @brief Defines the privacy protection informA240PrivacyProtectInfo {>:
     * @since 24
     */
    bool systemWindowProtection;>N
     * @since 24
     */
    bool sensitiveAppProtection;
} OH_PrivacyProtect!"!#the running of an OH_AVScreenCapture instance.
 * Starting from API version 12, you are advised to use {@link OH_AVScreenCapturKe_OnError} instead.
 * 
 * @param capture Pointer to the OH_AVScreenCaptureH$*
 * @since 10&DScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode%an audio buffer is available during the running of an OH_AVScreenCapture instance.
 * Starting from API version 12, you are advised to use {@link OH_AVScreenCapture_OnBufferAvailable} instead.
 * 
 * @param capture Pointer to the OH_AVScreenCapture instance.
 * @param isReady Whether the audio buffer is available. The values include **true** (yes) and **false** (no).
 * @param t#ype Audio source type.
 * @since 10&ScreenCaptureOnAudioBufferAvailable)(OH_AVScreenCapture *capture, bool isReady,
    OH_AudioCaptureSourceType type);

/**
 * @b%a video buffer is available during the running of an OH_AVScreenCapture instance.
 * Starting from API version 12, you are advised to use {@link OH_AVScreenCapture_OnBufferAvailable} instead.
 * 
 * @param capture Pointer to the OH_AVScreenCapture instance.
 * @param isReady Whether the video buffer is available. The values include **true** (yes) and **false** (no).
 * @since 10&ScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady);

/**
 * @brief Defines all the asynchronous callback function pointers of an **OH_AVScreenCapture** instance. To ensure the
 * normal running of **OH_AVScreenCapture**, you must register the instance of this struct with the **
 * OH_AVScreenCapture** instance to process the information reported by the callback functions.
 * 
 * @param onError Monitor OH_AVScreenCapture operation errors, refer to {@link OH_AVScreenCaptureOnError}
 * @param onAudioBufferAvailable Monitor audio buffer, refer to {@link OH_AVScreenCaptureOnAudioBufferAvailable}
 * @param onVideoBufferAvailable Monitor video buffer, refer to {@link OH_AVScreenCaptureOnVideoBufferAvailable}
 *
 * @since 10
 */
ty7ScreenCaptureCallback {
    OH_AVScreenCaptureOnError onError;
    OH_AVScreenCaptureOnAudioBufferAvailable onAudioBufferAvailafble;
    OH_AVScreenCaptureOnVideoBufferAvailable onVideoBufferAvailable;
} OH_AVScreenCaptureCallback1*bwidth, height, and image information of the rectangle used for screen capture.
 * 
 *
 * @since 100.Rect {
    /* X-coordinate of screen recording*x;
    /* y-coordinate of screen recording#y;
    /* Width of screen recording(width;
    /* Height of screen recordingheight;
} OH_Rect;
)Vconfiguration such as the size, type, and timestamp of audio data.
 * 
 *
 * @since 100udioBuffer {
    /* Audio buffer memory block  */
    uint8_t *buf;
    /* Audio buffer memory block size */
    int32_t size;
`    /* Audio buffer timestamp info, in nanosecond */
    int64_t timestamp;
    /* Audio capture,udioCaptureSourceType type;
} OH_AudioBuffer *screen capture states.
 * 
 *
 * @since 12ScreenCaptureStateCode {
    /* Screen capture started by user */
    OH_SCREEN_CAPTURE_STATE_STARTED = 0,
    /* Screen capture canceled by user */
    OH_SCREEN_CAPTURE_STATE_CANCELED = 1,
    /* ScreenCapture stopped by user */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER = 2,
    /* ScreenCapture interrupted by other screen capture */
    OH_SCREEN_CAPTURE_STATE_INTERRUPTED_BY_OTHER = 3,
    /* ScreenCapture stopped by SIM call */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_CALL = 4,
    /* Microphone is temporarily unavailable */
    OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE = 5,
    /* Microphone is muted by user */
    OH_SCREEN_CAPTURE_STATE_MIC_MUTED_BY_USER = 6,
    /* Microphone is unmuted by user */
    OH_SCREEN_CAPTURE_STATE_MIC_UNMUTED_BY_USER = 7,
    /* Current captured screen has private window */
    OH_SCREEN_CAPTURE_STATE_ENTER_PRIVATE_SCENE = 8,
    /* Private window disappeared on current captured screen*/
    OH_SCREEN_CAPTURE_STATE_EXIT_PRIVATE_SCENE = 9,
    /* ScreenCapture stopped Nby user switches */
    OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHES = 10,>kScreen capture paused by user
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_PAUSED_BY_USER = 11,>Screen capture resumed by user
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_RESUMED_BY_USER = 12,
    /**
     * @bPiScreen capture paused by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_PAUSED_BY_APP = 13,>Screen capture resumed by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE_STATE_RESUMED_BY_APP = 14,
} OH_AVScreenCaptur	eStateCod!!buffer types.
 * 
 *
 * @since 12ScreenCaptureBufferType {
    /* Buffer of video data from screen */
    OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO = 0,
    /* Buffer of audio data from inner capture */
    OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER = 1,
    /* Buffer of audio data from microphoSne */
    OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC = 2,
} OH_AVScreenCaptureBufferTyp!!buffer types.
 * 
 *
 * @since 12ScreenCaptureFilterableAudioContent {
    /* Audio content of notification sound */
    OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO = 0,
    /* Audio content of the sound of the app itself */
    OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO = 1,
} OH_AVScreenCaptureFilterableAudioContent%!state changes during the running of an OH_AVScreenCapture instance.
 * 
 * @param capture Pointer to the OH_AVScreenCapture ins%tance.
 * @param stateCode Status cod&!;the user-defined data carried in the function.
 * @since 12&ScreenCapture_OnStateChange)(struct OH_AVScreenCapture *capture,
    OH_AVScreenCaptureStateCode stateCode, void *userData);

/%#fthe running of an OH_AVScreenCapture instance.
 * 
 * @param capture Pointer to the OH_AVScreenCaptureH$*&;the user-defined data carried in the function.
 * @since 12&FScreenCapture_OnError)(OH_AVScreenCapture *capture, int32_t errorCode,x%-an audio buffer or a video buffer is available during the running of an OH_AVScreenCapture
 * instance.
 * 
 * @param capture Pointer to the OH_AVScreenCapture instance.
 * @param buffer Pointer to the OH_AVBuffer instance. After the callback is triggered, the buffer is no longer valid.
 * @param bufferType Type of the buffer.
 * @param timestamp Timestamp, in nanoseconds.
 * @p$;the user-defined data carried in the function.
 * @since 12&ScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture, OH_AVBuffer *buffer,
    OH_AVScreenCaptureBufferType bufferType, int64_t timestamp,x%!When one of the display devices start being captured, the function pointer will be called
 * @param capture Pointer to an OH_AVWScreenCapture instance
 * @param displayId Id of the display device that being captured$# specific data
 *
 * @since 15&QScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId,x%!9screen capture content change events.
 * 
 *
 * @since 20ScreenCaptureContentChangedEvent_Enum {
    /**
     * The screen capture content is hidden.
     */
    OH_SCREEN_CAPTURE_CONTENT_HIDE = 0,
    /**
     * The screen capture content is visible.
     */
    OH_SCREEN_CAPTURE_CONTENT_VISIBLE = 1,
    /**
     * The screen capture content becomes unavailable. For example, the screen capture window is closed.
     */
    OH_SCREEN_HCAPTURE_CONTENT_UNAVAILABLE = 2,
} OH_AVScreenCaptureContentChangedEvent%!screen capture content changes during the running of an OH_AVScreenCapture instance.
 * 
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param event enum for content change event
 * @param area capture content rect position
 * @param user$ specific data
 *
 * @since 20&ScreenCapture_OnCaptureContentChanged)(OH_AVScreenCapture* capture, OH_AVScreenCaptureContentChangedEvent event,
    OH_Rect* area, void *userData);
Sdisplay modes of the highlight border shown during screen capture.
 * 
 * @since 22ScreenCaptureHighlightMode {
    /**
     * Highlights the capture area with a full square border. This is the default mode.
     */
    OH_HIGHLIGHT_MODE_CLOSED = 0,
    /**
     * Highlights the capture area with a corner-wrapping border.
     */
    O=H_HIGHLIGHT_MODE_CORNER_WRAP = 1,
} OH_ScreenCaptureHighlight^.style of the highlight border shown during screen capture, including its shape,
 * thickness, and color.
 * 
 * @since 22
 */
t6ScreenCaptureHighlightConfig {
    /**
     * Shape of the highlight border. If this variable is not set, a full rectangle is used by default.
     */
    OH_ScreenCaptureHighlightMode mode;
    /**
     * Thickness of the border line. If this variable is not set, the border is invisible by default. The valid value
     * range is 1 vp to 8 vp.
     */
    uint32_t lineThickness;
    /**
     * Color of the border line. The default value is black. Valid values are in RGB (0-0xffffff) or non-transparent
     * ARGB (0xff000000-0xffffffff) format.
     */
    uint32_t lineColor;  
} OH_AVScreenCaptureHighlightConfig;

/**
 * @bri"image fill modes.
 * 
 * @since 20ScreenCapture_FillMode {
    /**
     * Keeps the original aspect ratio of the image to fit the target size. Black bars may appear if the aspect ratios
     * differ.
     */
    OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT = 0,
    /**
     * Stretches the image to fill the target size. The image may stretch and distort if the aspect ratios differ.
     */
    OH_SCREENCAPTURE_FI6LLMODE_SCALE_TO_FILL = 1,
} OH_AVScreenCapture_FillMod!-display modes of the picker.
 * 
 * @since 22CapturePickerMode {
    /**
     * Displays only a list of windows.
     */
    OH_CAPTURE_PICKER_MODE_WINDOW_ONLY = 0,

    /**
     * Displays only a list of screens.
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_ONLY = 1,

    /**
     * Displays both screens and windows. This is the default mode.
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_AND_WINDOW = 2,
   
    /** 
     * @brief Show application options only. 
     * @since 26.0.0 
     */ 
    OH_CAPTURE_PICKER_MODE_APP_ONLY = 3, 


    /** 
     * @brief Show both window and application options. 
     * @since 26.0.0 
     */ 
    OH_CAPTURE_PICKER_MODE_WINDOW_AND_APP = 4, 


    /** 
     * @brief Show both screen and application options. 
     * @since 26.0.0 
     */ 
    OH_CAPTURE_PICKER_MODE_SCREEN_AND_APP = 5, 


    /** 
     * @brief Show screen, window, and application options. 
     * @since 26.0.0 
     */ 
    E OH_CAPTURE_PICKER_MODE_SCREEN_WINDOW_AND_APP = 6,
} OH_CapturePicker^dOH_AVScreenCapture_CaptureStrategy struct describes the screen capture strategy.
 * 
 *
 * @since 200@ScreenCapture_CaptureStrategy OH_AVScreenCapture_CaptureStrategy1$OH_AVScreenCapture_UserSelectionInfov!Sselected by the user on the
 * authorization UI (selection UI).
 * 
 *
 * @since 200@ScreenCapture_UserSelectionInfo OH_AVScreenCapture_UserSelection!"to return the parameters selected by the user on the authorization UI to the application.
 * 
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @param selections The recording parameter information
 * selected by the user on the authorization interface$# specific data
 *
 * @since 20&ScreenCapture_OnUserSelected)(OH_AVScreenCapture* capture, 
    OH_AVScreenCapture_UserSelectionInfo* selections, void *userDat%Defines a struct for the multi-screen recording capability. It includes whether the multi-screen supports
 * joint recording an.d the width and height of the screen for joint240MultiDisplayCapability {
    /**
     * Whether multi-screen recording is supported. **true**: yes; **false**: no.
     */
    bool isMultiDisplaySupport;
    /**
     * Width of the screen area that can be recorded, in pixels.
     */
    uint32_t width;
    /**
     * Height of the screen area that can be recorded, in pixels.
     */
    uint32_t height;
} OH_MultiDisplayCapability%a privacy protection event occurs during the running of the {@link OH_AVScreenCapture} instance.
 * 
 * @param capture Pointer Zto an OH_AVScreenCapture instance
 * @param privacyProtect Pointer to privacy protect info$# specific data
 * @since 24&ScreenCapture_OnPrivacyProtect)(OH_AVScreenCapture* capture,
    OH_PrivacyProtectInfo* privacyProtect, void *userData);

#ifde0'"(NATIVE_AVSCREEN_CAPTURE_BASE_H
/** @} */[7x ګ̫*"*:c*w+J"xJ;̫5YMediaSource
 * @{
 *
 * @brief Defines APIs for AVMediaSource.
 *
 * @since 23
 */
/**
 * @file avmedia_source.h
 *
 * @brief D)struct and enum of **AVMediaSource**.
 * .Core
 * @kit MediaKit
 * @library libavmedia_source.so
 * @since 23
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOUBRCE_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOURCE_H
l<stdio}	errors.h"
codec_base;TQHTTP header.
 *  
 * @since 23HttpHeader OH_AVHttpHead`]Qedia source.
 *  
 * @since 23MediaSource OH_AVMediaSource;

/**
 * @brief Defines a load request object for the media resource, through which the applicatioFn obtains the location of
 * the requested resource.
 *  
 * @since 23MediaSourceLoadingRequest OH_AVMediaSourceLoadingRequest;

/**
 * @brief Declares the media source loader type, which is implemented by the applic3(MediaSourceLoader OH_AVMediaSourceLoader?	 error codes of network loading requests.
 *  
 * @since 23
 */
typedef enum AVLoadingRequestError {
    /**
     * The resource is successfully downloaded.
     */
    AV_LOADING_ERROR_SUCCESS = 0,

    /**
     * The resource is not ready and cannot be /accessed.
     */
    AV_LOADING_ERROR_NOT_READJThe resource URL does not exist.
     */
    AV_LOADING_ERROR_NO_RESOURCE = 2,

    /**
     * The UUID of the resource handle is invalid.
     */
    AV_LOADING_ERROR_INVALID_HANDLE = 3,

    /**
     * The client does not have the permission to request the resource.
     */
    AV_LOADING_ERROR_ACCESS_DENIED = 4,

    /**
     * The access times out.
     */
    AV_LOADING_ERROR_ACCESS_TIMEOUT = 5,

    /**
     * The authorization failed.
     */
    AV_LOADING_ERROR_AUTHORIZE_FAILED = 6,
} AVLoadingRequestError;

/**
 * @brief Creates an HTTP header instance.
 * 
 * @return Pointer to the **OH_AVHttpHeader** instance if the operation is successful; null pointer if the operation
 * fails.
 * @since 23
 */
OH_AVHttpHeader *OH_AVHttpHeader_Create(void);

/**
 * @brief Releases an HTTP header instance.
 * 
 * @param header Pointer to the **OH_AVHttpHeader** instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The header is a null pointer or the instance fails to be destroyed.
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_Destroy(OH_AVHttpHeader *header);

/**
 * @brief Obtains the number of records in an HTTP header instance.
 * 
 * @param header Pointer to the **OH_AVHttpHeader** instance.
 * @param count Pointer to the number of records in the header instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The header is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_GetCount(OH_AVHttpHeader *header, uint32_t *count);

/**
 * @brief Adds a key-value pair record to an HTTP header instance.
 * 
 * @param header Pointer to the **OH_AVHttpHeader** instance.
 * @param key Pointer to the key name of the record.
 * @param value Pointer to the value of the record.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: Any parameter is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_AddRecord(OH_AVHttpHeader *header, const char *key, const char *value);

/**
 * @brief Obtains a key-value pair record in an HTTP header instance by index.
 * 
 * @param header Pointer to the **OH_AVHttpHeader** instance.
 * @param index Position of the record in the header.
 * @param key Double pointer to the key name of the record.
 * @param value Double pointer to the value of the record.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The header is a null pointer or the index is out of range.
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_GetRecord(OH_AVHttpHeader *header, uint32_t index, const char **key, const char **value);

/**
 * @brief Creates a media source using a URL.
 * 
 * @param url Pointer to the URL of the media source. The following streaming media formats are supported: HLS, HTTP-
 * FLV, DASH, and HTTPS.
 * @param header Pointer to the HTTP header attached to the network request.
 * @return Pointer to the **OH_AVMediaSource** instance if the operation is successful; null pointer if the operation
 * fails.
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithUrl(const char *url, OH_AVHttpHeader *header);

/**
 * @brief Creates a media source using **OH_AVDataSource**.
 * 
 * @param dataSource Pointer to **OH_AVDataSource**.
 * @return Pointer to the **OH_AVMediaSource** instance if the operation is successful; null pointer if the operation
 * fails.
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithDataSource(OH_AVDataSource *dataSource);

/**
 * @brief Creates a media source using a file descriptor.
 * 
 * @param fd FD of a media source file.
 * @param offset Offset of the file to be read.
 * @param size File size, in bytes
 * @return Pointer to the **OH_AVMediaSource** instance if the operation is successful; null pointer if the operation
 * fails.
 * @details Possible failure causes:
 * 1. fd is invalid.
 * 2. offset is invalid.
 * 3. size error.
 * 4. resource is invalid.
 * 5. file format is not supported.
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithFd(int32_t fd, int64_t offset, int64_t size);

/**
 * @brief Releases a media source instance.
 * 
 * @param source Pointer to the **OH_AVMediaSource** instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **source** is a null pointer or fails to be released.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSource_Destroy(OH_AVMediaSource *source);

/**
 * @brief Sets the MIME type to process extended media sources.
 * 
 * @param source Pointer to the **OH_AVMediaSource** instance.
 * @param mimetype Pointer to the MIME type ({@link AV_MimeTypes}) of the media source.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **source** or **mimetype** is a null pointer.
 * {@link AV_ERR_UNSUPPORTED_FORMAT}: The **mimetype** is not supported.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSource_SetMimeType(OH_AVMediaSource *source, const char *mimetype);#Obtains the URL of a request.
 * 
 * @param request Pointer to the **OH_AVMediaSourceLoadingRequest** instance.
 * @param url Double pointer to the URL for output.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **request** is a null pointer or the URL does not exist.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoadingRequest_GetUrl(OH_AVMediaSourceLoadingRequest *request, const char **url);

/**
 * @brief Obtains the HTTP header of a request.
 * 
 * @param request Pointer to the **OH_AVMediaSourceLoadingRequest** instance.
 * @param header Double pointer to the HTTP header used for the HTTP request.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **request** is a null pointer.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoadingRequest_GetHttpHeader(OH_AVMediaSourceLoadingRequest *request,
    OH_AVHttpHeader **header);

/**
 * @brief Sends request data to the AVPlayer.
 * 
 * @param request Pointer to the request for opening a resource.
 * @param uuid ID of the resource handle.
 * @param offset Offset of the current media data relative to the start of the resource.
 * @param data Pog7media data sent to the player.
 * @param dataSize Length of the data sent to the player.
 * @return Number of bytes accepted by the current read operation. If the return value is less than 0, the operation
 * fails.
 * The value **-2** indicates that the player no longer needs the current data, and the client should stop the current
 * read process.
 * The value **-3** indicates that the player's buffer is full, and the client should wait for the next read.
 * @since 23
 */
int32_t OH_AVMediaSourceLoadingRequest_RespondData(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, int64_t offset, const uint8_t *data, uint64_t dataSize);

/**
 * @brief Sends the response header to the AVPlayer. This API must be called before {@link OH_AVMediaSourceLoadingRequest_RespondData}
 * is called for the first time.
 * 
 * @param request Pointer to the request for opening a resource.
 * @param uuid ID of the resource handle.
 * @param header Pointer to the header information in the HTTP response.
 * The application can intersect the header field with the supported fields at the bottom layer and then pass the
 * intersection result to the AVPlayer, or directly pass all the corresponding header information.
 * @param redirectUrl Pointer to the redirection URL contained in the HTTP response (if any).
 * @since 23
 */
void OH_AVMediaSourceLoadingRequest_RespondHeader(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, OH_AVHttpHeader *header, const char *redirectUrl);

/**
 * @brief Notifies the player of the current request status. After pushing all data of a single resource, the
 * application should send the **LOADING_ERROR_SUCCESS** state to notify the player that the resource push is complete.
 * 
 * @param request Pointer to the request for opening a resource.
 * @param uuid ID of the resource handle.
 * @param error Audio playback is in the error state.
 * @since 23
 */
void OH_AVMediaSourceLoadingRequest_FinishLoading(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, AVLoadingRequestError error);

/**
 * @brief Creates an **OH_AVMediaSourceLoader** instance. If the operation is successful, the **OH_AVMediaSourceLoader**
 *  pointer is returned. If the operation fails, a null pointer is returned.
 * 
 * @return OH_AVMediaSourceLoader pointer if success, else return NULL.
 * @since 23
 */
OH_AVMediaSourceLoader *OH_AVMediaSourceLoader_Create(void);

/**
 * @brief Releases an **OH_AVMediaSourceLoader** instance.
 * 
 * @param loader Pointer to the **OH_AVMediaSourceLoader** instance to be released.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **loader** is a null pointer or fails to be released.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_Destroy(OH_AVMediaSourceLoader *loader);

/**
 * @brief Sets a source loader for the media source instance.
 * 
 * @param source Pointer to the **OH_AVMediaSource** that requires a network proxy.
 * @param loader Pointer to the **OH_AVMediaSourceLoader** instance.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **source** or **loader** is a null pointer, or the operation fails.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourcPe_SetMediaSourceLoader(OH_AVMediaSource *source, OH_AVMediaSourceLoader *loader)SourceOpenCallback function which is called by the service.
 * client should process the incoming request
 * and return the unique handle to the open resource.
 * The client must return the handle immediately after processing the request.
 * @param request Parameters for the resource open request,
 * including detailed information about the requested resource and the data push methodP7The data set by user in OH_AVMediaSourceLoader_SetSourceOpenCallback
 * @return The handler of current resource open request, the handler for the request object is unique.
 *     A value greater than 0 means the request is successful.
 *     A value less than or equal to 0 means it fails.
 * @since 23
 */
typedef int64_t (*OH_AVMediaSourceLoaderOnSourceOpenedCallback)(OH_AVMedia"SourceLoadingRequest *request,
   /8!**SourceReadCallback** function called by the server. The client should record the read request
 * and push data using the {@link OH_AVMediaSourceLoadingRequest_RespondData} and {@link OH_AVMediaSourceLoadingRequest_RespondHeader}
 * methods of the request object when there is sufficient data. The client must return immediately after the request
 * is processed.
 * 
 * @param uuid ID of the resource handle.
 * @param requestedOffset Offset of the current media data relative to the start of the resource.
 * @param requestedLength Length of the requested data. The value **-1** indicates that the end of the resource has
 * been reached. In this case, call the {@link OH_AVMediaSourceLoadingRequest_FinishLoading} method to notify the
 * player that the push is complet9QThe data set by user in OH_AVMediaSourceLoader_SetSourceReadCallback
 * @since 23@%iMediaSourceLoaderOnSourceReadCallback)(int64_t uuid, int64_t requestedOffset,
    int64_t requestedLength.8"**SourceCloseCallback** function called by the server. The client should release related
 * resources and return immediately afIter the request is processed.
 * 
 * @param uuid ID of the resource handl9RThe data set by user in OH_AVMediaSourceLoader_SetSourceCloseCallback
 * @since 23@%5MediaSourceLoaderOnSourceClosedCallback)(int64_t uuid.8"Sets the open callback function for **OH_AVMediaSourceLoader**.
 * 
 * @param loader Pointer to the **OH_AVMediaSourceLoader** instance for whichB is to be set.
 * @param callback Open callback function to be setP76used in.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **loader** is a null pointer or the operation fails.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceOpenCa`llback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceOpenedCallback callback.8"Sets the read callback function for **OH_AVMediaSourceLoader**.
 * 
 * @param loader Pointer to the **OH_AVMediaSourceLoader** instance for whichB is to be set.
 * @param callback Read callback function to be setP76used in.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **loader** is a null pointer or the operation fails.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceReadCa^llback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceReadCallback callback.8"Sets the clos for **OH_AVMediaSourceLoader**.
 * 
 * @param loader Pointer to the **OH_AVMediaSourceLoader** instance for which the callback	& is to be set.
 * @param callback Clos
 to be setP76used in.
 * @return Execution result of the function.
 * {@link AV_ERR_OK}: The execution is successful.
 * {@link AV_ERR_INVALID_VAL}: The **loader** is a null pointer or the operation fails.
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceCloseCaallback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceClosedCallback callbackiU;>MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOURCE_H
/** @} */
x
YxU0/*
 * Copyright (c   OHAudioSuite
 * @{
 *
 * @brief Provide the definition of the C interface for the audio module.
 *
 * @since 22
 * @version 1.0
 */
/**
 * @file native_audio_suite_base.h
 *
 * @brief Declare underlying data structure.
 *
 * @library libohaudiosuite.so
 &&Audio.SuiteEngine
 * @kit AudioKit
 * @since 22
 * @version 1.0
 */
#ifndef NATIVE_AUDIO_SUITE_BASE_H
#define NATIVE_AUDIO_SUITPE_BASE_H
#include <stdint.h>
#include "multimedia/native_audio_channel_layout.h"y( audio node type.
 *
 * @since 22
 */
typedef enum {
    /**
     * default input node type, this input node type support get audio data from application.
     *
     * @since 22
     */
    INPUT_NODE_TYPE_DEFAULT = 1,
    /**
     * default output node type, this output node type support provide audio data to application .
     *
     * @since 22
     */
    OUTPUT_NODE_TYPE_DEFAULT = 101,
    /**
     * Equalization node type.
     * The audio format output by the equalizer node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_EQUALIZER = 201,
    /**
     * Noise reduction node type.
     * The audio format output by the noise reduction node is as follows:
     * Sample rate: 16000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 1.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_NOISE_REDUCTION = 202,
    /**
     * Sound field node type. Support sound field type {@link OH_SoundFieldType}.
     * The audio format output by the sound field node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_SOUND_FIELD = 203,
    /**
     * Audio separation node type, it can only connect to output node.
     * The audio format output by the audio separation node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_F32LE}.
     * Channels: 4(First 2 channels for vocals; last 2 channels for accompaniment).
     *
     * @since 22
     */
    EFFECT_MULTII_OUTPUT_NODE_TYPE_AUDIO_SEPARATION = 204,
    /**
     * Voice beautifier node type. Support beautifier type{@link OH_VoiceBeautifierType}.
     * The audio format output by the voice beautifier node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_VOICE_BEAUTIFIER = 205,
    /**
     * Scene effect node type.
     * The audio format output by the environment node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_ENVIRONMENT_EFFECT = 206,
    /**
     * Audio mixer node type.
     * The audio format output by the mixer node is as follows:
     * Sample rate: {@link OH_Audio_SampleRate}.
     * Sample format: {@link AUDIO_SAMPLE_F32LE}.
     * Channels: 2.
     *
     * @since 22
     */
    EFFECT_NODE_TYPE_AUDIO_MIXER = 207,
    /**
     * Space render node type.
     * The audio format output by the space render node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 23
     */
    EFFECT_NODE_TYPE_SPACE_RENDER = 208,
    /**
     * Pure voice change node type.
     * The audio format output by the pure voice change node is as follows:
     * Sample rate: 16000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 1.
     *
     * @since 23
     */
    EFFECT_NODE_TYPE_PURE_VOICE_CHANGE = 209,
    /**
     * General voice change node type.
     * The audio format output by the general voice change node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 2.
     *
     * @since 23
     */
    EFFECT_NODE_TYPE_GENERAL_VOICE_CHANGE = 210,
    /**
     * Tempo and pitch node type.
     * The audio format output by the tempo and pitch node is as follows:
     * Sample rate: 48000 Hz.
     * Sample format: {@link AUDIO_SAMPLE_S16LE}.
     * Channels: 1.
     *
     * @since 23
     */
    EFFECT_NODE_TYPE_TEMPO_PITCH = 211,
    /**
     * HOA input space render node type.
     * The audio format input by the HOA space render node is as follows:
     * Sample rate: {@link SAMPLE_RATE_16000}, {@link SAMPLE_RATE_48000}.
     * Sample format: {@link OH_Audio_SampleFormat}.
     * layout: 1st to 3rd order HOA, as one of the follows:
     * {@link CH_LAYOUT_AMB_ORDER1_ACN_N3D}, {@link CH_LAYOUT_AMB_ORDER1_ACN_SN3D}, {@link CH_LAYOUT_AMB_ORDER1_FUMA},
     * {@link CH_LAYOUT_AMB_ORDER2_ACN_N3D}, {@link CH_LAYOUT_AMB_ORDER2_ACN_SN3D}, {@link CH_LAYOUT_AMB_ORDER2_FUMA},
     * {@link CH_LAYOUT_AMB_ORDER3_ACN_N3D}, {@link CH_LAYOUT_AMB_ORDER3_ACN_SN3D}, {@link CH_LAYOUT_AMB_ORDER3_FUMA}.
     * The audio format output by the HOA space render node is as follows:
     * Sample rate: {@link SAMPLE_RATE_48000}.
     * Sample format: {@link AUDIO_SAMPLE_S32LE}.
     * Channels: 2.
     * This node must be connected to an input node with the audio format set to HOA.
     * If it is not connected, an error will be reported in the {@link OH_AudioSuiteEngine_StartPipeline} interface.
     *
     * @since 26.0.0
     */
    EFFECT_NODE_TYPE_HOA_SPACE_RENDER = 212,
} OH_AudioNode_Type; pipeline work mode
 *
 * @since 22
 */
typedef enum {
    /**
     * The pipeline supports creating various effect nodes in suite mode.
     *
     * @since 22
     */
    AUDIOSUITE_PIPELINE_EDIT_MODE = 1,
    /**
     * If you need to play audio after effect processing, you should select this mode.
     * In real-time rendering mode, the pipeline only supports EQ effect processing.
     *
     * @since 22
     */
    AUDIOSUITE_PIPELINE_REALTIME_MODE = 2,
} OH_AudioSuite_PipelineWorkMode;
/**
 * @bri	 pipeline state
 *
 * @since 22
 */
typedef enum {
    /**
     * The pipeline is in a stopped state.
     *
     * @since 22
     */
    AUDIOSUITE_PIPELINE_STOPPED = 1,
    /**
     * The pipeline is in a running state.
     *
     * @since 22
     */
C    AUDIOSUITE_PIPELINE_RUNNING = 2,
} OH_AudioSuite_PipelineState; the!, execution.
 *
 * @since 22
 */
typedef enum {
    /**
     * @error The call was successful.
     *
     * @since 22
     */
    AUDIOSUITE_SUCCESS = 0,
    /**
     * @error This means that the function was executed with an invalid input parameter.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_INVALID_PARAM = 1,
    /**
     * @error Execution status exception.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_INVALID_STATE = 2,
    /**
     * @error An system error has occurred.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_SYSTEM = 3,
    /**
     * @error Unsupported audio format, such as unsupported encoding type, sample format etc.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_UNSUPPORTED_FORMAT = 4,
    /**
     * @error audio engine not exist.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_ENGINE_NOT_EXIST = 5,
    /**
     * @error audio pipeline not exist.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_PIPELINE_NOT_EXIST = 6,
    /**
     * @error audio node not exist.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_NODE_NOT_EXIST = 7,
    /**
     * @error the connect or disconnect between the nodes is unsupported.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_UNSUPPORTED_CONNECT = 8,
    /**
     * @error Unsupported operation.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_UNSUPPORTED_OPERATION = 9,
    /**
     * @error The application attempted to create an object that exceeds the system's maximum limit.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_CREATED_EXCEED_SYSTEM_LIMITS = 10,
    /**
     * @error Required parameters are missing.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_REQUIRED_PARAMETERS_MISSING = 11,
    /**
     * @error Operation timed out.
     *
     * @since 22
     */
    AUDIOSUITE_ERROR_TIMEOUT = 12,
    /**
     * @error Memory allocation failed.
     *
     * @sincSe 22
     */
    AUDIOSUITE_ERROR_MEMORY_ALLOC_FAILED = 13,
} OH_AudioSuite_Result; the audio sample format.
 *
 * @since 22
 */
typedef enum {
    /**
     * Unsigned 8 format.
     *
     * @since 22
     */
    AUDIO_SAMPLE_U8 = 0,
    /**
     * Signed 16 bit integer, little endian.
     *
     * @since 22
     */
    AUDIO_SAMPLE_S16LE = 1,
    /**
     * Signed 24 bit integer, little endian.
     *
     * @since 22
     */
    AUDIO_SAMPLE_S24LE = 2,
    /**
     * Signed 32 bit integer, little endian.
     *
     * @since 22
     */
    AUDIO_SAMPLE_S32LE = 3,
    /**
     * 32 bit IEEE floating point, little endian.
     *
     * @since 22
     */
    AUDIO_SAMPLE_F32LE = 4,
} OH_Audio_SampleFormat;
/ the audio encoding type.
 *
 * @since 22
 */
typedef enum {
    /**
     * PCM encoding type.
     *
     * @since 22
     */
9    AUDIO_ENCODING_TYPE_RAW = 0,
} OH_Audio_EncodingType; the audio sample rate.
 *
 * @since 22
 */
typedef enum {
    /**
     * 8kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_8000 = 8000,
    /**
     * 11.025kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_11025 = 11025,
    /**
     * 12kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_12000 = 12000,
    /**
     * 16kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_16000 = 16000,
    /**
     * 22.05kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_22050 = 22050,
    /**
     * 24kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_24000 = 24000,
    /**
     * 32kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_32000 = 32000,
    /**
     * 44.1kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_44100 = 44100,
    /**
     * 48kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_48000 = 48000,
    /**
     * 64kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_64000 = 64000,
    /**
     * 88.2kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_88200 = 88200,
    /**
     * 96kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_96000 = 96000,
    /**
     * 176.4kHz sample rate.
     * @since 22
     */
    SAMPLE_RATE_176400 = 176400,
    /**
     * 192kHz sampleV rate.
     * @since 22
     */
    SAMPLE_RATE_192000 = 192000
} OH_Audio_SampleRate;V the audio format info structure, used to describe basic audio format.
 *
 * @since 22AudioFormat {
    /**
     * @brief Audio sampling rate.
     *
     * @since 22
     */
    OH_Audio_SampleRate samplingRate;
    /**
     * @brief Audio channel layout.
     *
     * @since 22
     */
    OH_AudioChannelLayout channelLayout;
    /**
     * @brief Audio channel count.
     *
     * @since 22
     */
    uint32_t channelCount;
    /**
     * @brief Audio encoding format type.
     *
     * @since 22
     */
    OH_Audio_EncodingType encodingType;
    /**
     * @brief Audio sample formatY.
     *
     * @since 22
     */
    OH_Audio_SampleFormat sampleFormat;
} OH_AudioFormafine the audio data array structure,
 * This structure is used to get the processed audio data after acquisition processing dur)ing multi-channel rendering.
 * @since 22AudioDataArray {
    /**
     * @brief Audio audioDataArray mail.
     *
     * @since 22
     */
    void **audioDataArray;
    /**
     * @brief Audio arraySize.
     *
     * @since 22
     */
    int32_t arraySize;
    /**
     * @brief Audio requestFbrameSize count.
     *
     * @since 22
     */
    int32_t requestFrameSize;
} OH_AudioDataArray; the sound field type.
 *
 * @since 22
 */
typedef enum {
    /**
     * Front facing sound field type.
     *
     * @since 22
     */
    SOUND_FIELD_FRONT_FACING = 1,
    /**
     * Grand sound field type.
     *
     * @since 22
     */
    SOUND_FIELD_GRAND = 2,
    /**
     * Near sound field type.
     *
     * @since 22
     */
    SOUND_FIELD_NEAR = 3,
    /**
     * Necar sound field type.
     *
     * @since 22
     */
    SOUND_FIELD_WIDE = 4,
} OH_SoundFieldType; the environment type.
 *
 * @since 22
 */
typedef enum {
    /**
     * Broadcast environment effect type.
     *
     * @since 22
     */
    ENVIRONMENT_TYPE_BROADCAST = 1,
    /**
     * Earpiece environment effect type.
     *
     * @since 22
     */
    ENVIRONMENT_TYPE_EARPIECE = 2,
    /**
     * UnderWater environment effect type.
     *
     * @since 22
     */
    ENVIRONMENT_TYPE_UNDERWATER = 3,
    /**
     * Gramophone environment effect type.
     *
     * @since 22
     */
    ENVIRONME,NT_TYPE_GRAMOPHONE = 4
} OH_EnvironmentType; voice beautifier type.
 *
 * @since 22
 */
typedef enum {
    /**
     * Clear voice beautifier type.
     *
     * @since 22
     */
    VOICE_BEAUTIFIER_TYPE_CLEAR = 1,
    /**
     * Theatre voice beautifier type.
     *
     * @since 22
     */
    VOICE_BEAUTIFIER_TYPE_THEATRE = 2,
    /**
     * CD voice beautifier type.
     *
     * @since 22
     */
    VOICE_BEAUTIFIER_TYPE_CD = 3,
    /**
     * Recording studio voice beautifier type.
     *
     * @since 22
     */
    VOICE_BEAUTIFIER_TYPE/_RECORDING_STUDIO = 4
} OH_VoiceBeautifierType; the number of equalizer frequency bands
 *
 * @since 22
 */
#define EQUALIZER_BAND_NUM (10)

/**
 * @brief Specify equalizer f$requency band gains.
 *
 * @since 22AEqualizerFrequencyBandGains {
    /**
     * The equalizer supports gain adjustment for 10 specific frequencies.
     * Frequencies: 31 Hz, 62 Hz, 125 Hz, 250 Hz, 500 Hz, 1 kHz, 2 kHz, 4 kHz, 8 kHz, 16 kHz.
     *
     * @since 22
     */
    int32_t gains[EQUALIZER_BAND_NUM];
} OH_EqualizerFrequencyBandGains;

/**
 * Default equalization effect band gains.
 * Gains is {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_DEFAULT;
/**
 * Ballad equalization effect band gains.
 * Gains is {3, 5, 2, -4, 1, 2, -3, 1, 4, 5}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_BALLADS;

/**
 * Chinese style equalization effect band gains.
 * Gains is {0, 0, 2, 0, 0, 4, 4, 2, 2, 5}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_CHINESE_STYLE;

/**
 * Classic equalization effect band gains.
 * Gains is {2, 3, 2, 1, 0, 0, -5, -5, -5, -6}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_CLASSICAL;

/**
 * Dance music equalization effect band gains.
 * Gains is {4, 3, 2, -3, 0, 0, 5, 4, 2, 0}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_DANCE_MUSIC;

/**
 * Jazz equalization effect band gains.
 * Gains is {2, 0, 2, 3, 6, 5, -1, 3, 4, 4}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_JAZZ;

/**
 * Pop equalization effect band gains.
 * Gains is {5, 2, 1, -1, -5, -5, -2, 1, 2, 4}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_POP;

/**
 * R&B equalization effect band gains.
 * Gains is {1, 4, 5, 3, -2, -2, 2, 3, 5, 5}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_RB;

/**
 * Rock equalization effect band gains.
 * Gains is {6, 4, 4, 2, 0, 1, 3, 3, 5, 4}.
 *
 * @since 22
 */
extern const OH_EqualizerFrequencyBandGains OH_EQUALIZER_PARAM_ROCK;

/**
 * @brief Declare the audio engine.
 * The handle of aSudio suite engine is used for audio suite engine related functions.
 *
 * @since 22AudioSuiteEngineStruct OH_AudioSuiteEngine;

/**
 * @brief Declare the audio pipe line.
 * The handle of audio suite pipe line i=s used for audio pipe line related functions.
 *
 * @since 22AudioSuitePipelineStruct OH_AudioSuitePipeline;

/**
 * @brief Declare the audio node.
 * The handle of audio suite node is used8 for audio suite node related functions.
 *
 * @since 22AudioNodeStruct OH_AudioNode;

/**
 * @brief Declare the audio node builder.
 * The handle of audio node builder is used for audio node create.
 *
 * @since 22A&udioNodeBuilderStruct OH_AudioNodeBuilAition of the parameter structure for fixed position mode in 3D spatial rendering.
 * Left-hand coordinate system: Extend your left hand, forming an "L" shapewith your thumb and index finger.
 * Point the thumb to the right, the index finger upward, and the remaining fingers forward.
 * This establishes a left-hand coordinate system. In this system, the thumb, index finger,
 * anWd other fingers represent the positive directions of the x, y, and z axes, respectivelyq)/2pudioSuite_SpaceRenderPositionParams {
    /**
     * X coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float x;
    /**
     * Y coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float y;
    /**
     * Z coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float z;
} OH_AudioSuite_SpaceRenderPositionParams;

/**
 * @brief Space rendering surround Direction
 *
 * @s/2enum {
    /**
     * Rotate counterclockwise
     *
     * @since 23
     */
    SPACE_RENDER_CCW = 0,
     /**
      * Rotate clockwise
      *
      * @since 23
      */
    SPACE_RENDER_CW = 1,
} OH_AudioSuite_SurroundDirection;

/**
 * @brief Space !rendering dynamic mode parameters/2pudioSuite_SpaceRenderRotationParams {
    /**
     * X coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float x;
    /**
     * Y coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float y;
    /**
     * Z coordinate in space, value range: [-5.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float z;
    /**
     * Single-week circumnavigation time, value range: [2, 40], unit: seconds.
     *
     * @since 23
     */
    int32_t surroundTime;
    /**
     * Single-week circumnavigation direction, value range: [0, 1].
     *
     * @since 23
     */
    OH_AudioSuite_SurroundDirection surroundDirection;
} OH_AudioSuite_SpaceRenderRotationParams;

 /**
  * @brief Space rendering extension mode parameters.
  *
  * @since 23
  */
typedef struct OH_AudioSuite_SpaceRenderExtensionParams {
    /**
     * Expansion radius, value range: [1.0, 5.0], unit: meters.
     *
     * @since 23
     */
    float extRadius;
    /**
     * Expansion angle, value range: (0, 360), unit: degrees.
     *
     * @since 23
     */
    int32_t extAn0gle;
} OH_AudioSuite_SpaceRenderExtensionParams;& speaker gender in change voice option/2enum {
    /**
     * set female voice.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_FEMALE = 1,
    /**
     * set male voice.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_MALE = 2,
} OH_AudioSuite_PureVoiceChangeGenderOption;

/**
 * " voice type in change voice option/2enum {
    /**
     * Cartoon voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_CARTOON = 1,
    /**
     * Cute voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_CUTE = 2,
    /**
     * Female voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_FEMALE = 3,
    /**
     * Male voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_MALE = 4,
    /**
     * Monster voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_MONSTER = 5,
    /**
     * Robots voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_ROBOTS = 6,
    /**
     * Seasoned voice type.
     *
     * @since 23
     */
    PURE_VOICE_CHANGE_TYPE_SEASONED = 7,
} OH_AudioSuite_PurelVoiceChangeType;

/**
 * Use system recommended pitch.
 * Use in {@Link OH_AudioSuite_PureVoiceChangeOption}*#define OH_PURE_VOICE_DEFAULT_PITCH (0.0f) change voice option/2pudioSuite_PureVoiceChangeOption {
    /**
     * Define speaker gender.
     *
     * @since 23
     */
    OH_AudioSuite_PureVoiceChangeGenderOption optionGender;
    /**
     * Define voice type.
     *
     * @since 23
     */
    OH_AudioSuite_PureVoiceChangeType optionType;
    /**
     * Define voice pitch.
     * If using default pitch in system for best effect, set to {@link OH_PURE_VOICE_DEFAULT_PITCH}.
     * For custom pitch setting, specify a value with the valid range: [0.3f, 3.0f].
     * I@since 23
     */
    float pitch;
} OH_AudioSuite_PureVoiceChangeOption;! voice type in change general voi/2enum {
    /**
     * Cute voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_CUTE = 1,
    /**
     * Cyberpunk voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_CYBERPUNK = 2,
    /**
     * Female voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_FEMALE = 3,
    /**
     * Male voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_MALE = 4,
    /**
     * Mix voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_MIX = 5,
    /**
     * Monster voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_MONSTER = 6,
    /**
     * Seasoned voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_SEASONED = 7,
    /**
     * Synth voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_SYNTH = 8,
    /**
     * Trill voice type.
     *
     * @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_TRILL = 9,
    /**
     * War voice type.
     *
     b* @since 23
     */
    GENERAL_VOICE_CHANGE_TYPE_WAR = 10,
} OH_AudioSuite_GeneralVoiceChangeType@-/** @} */
#endif // NATIVE_AUDIO_SUITE_BASE_H8 _xdeengine.h
 *
 * @brief Declarey@interfaces.
 *
 * This file interfaces are used for the creation of audioSuiteEngine
 * as well as creation of audioSuitePipeLi+ne
 * as well as creation of audioSuiteNodeMENGIN*ENGINE_H
#include "native_audio_suite_basec9Request to create the audio engine.
 *
 * @param audioSuiteEngine Pointer to a variable to receive audioSuiteEngine.
 * @returnB {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #0} if audioSuiteEngine is nullptr,
 * or {@link #7STATE} if the engine is already created.
 * or {@link ##$} if m"* or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_Create(OH_AudioSuiteEngine** audioSuiteEngine);

/**
 * @brief Request to release the engine.
 *
 * @param audioSuiteEngine Reference created by OH_AudioSuiteEngine_Create.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #AUDI0} if audioSuiteEngine is nullptr,
 * or {@link #?STATE} if audioSuiteEngine has not been created.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_Destroy(OH_AudioSuiteEngine* audioSuiteEngine);

/**
 * @brief Request to create the pipeline.
 *
 * The pipeline is the unit within the engine responsible for executing audio editing,
 * the engine can create multiple pipelines, and one pipeline must include at least one input node and one output node.
 * When the pipeline operates in {@link #AUDIOSUITE_PIPELINE_EDIT_MODE}, itE supports all effect nodes.
 * When the pipeline operates in {@link #!!},
 * it only supports the {@link} effect node.
 *
 * @param audioSuiteEngine Reference created by OH_AudioSuiteEngine_Create.
 * @param audioSuitePipeline Pointer to a variable to receive the pipeline.
 * @param workMode It indicates whether the pipeline is operating in Edit mode or reaM.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #(} if parameter is nullptr
 * or {@link #!.} if the engine is not created.
 * or {@link #!-} if the number of created pipelines exceeds the upper limit.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out" before completion.
 * or {@link ##$} if m"* or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@k_CreatePipeline(
    OH_AudioSuiteEngine* audioSuiteEngine,
    OH_AudioSuitePipeline** audioSuitePipeline,O workMode);

/**
 * @brief Request to release the pipeline.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEbngine_CreatePipeline.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #R} if parameter is invalid, e.g. audioSuiteEngine is nullptr, e.t.c.
 * or {@link #N#} if pipeline does not exist or has already been destroyed.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out b efore completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_DestroyPipeline(OH_AudioSuitePipeline* audioSuitePipeline);

/**
 * @brief Request to start the pipeline.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #T} if parameter is invalid, e.g. audioSuitePipeline is nullptr, e.t.c.
 * or {@link #N#J} if pipeline does not exist or has already been destroyed.
 * or {@link #STATE} if the pipeline is already in running state
 * or the node connection is abnormal.
 * or {@link #AUDIOSUITE_ERROR_TIMEOU>T} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_StartPipeline(OH_AudioSuitePipeline* audioSuitePipeline);

/**
 * @brief Stop the pipeline and clear the node cache.
 *
 * This function will not alter the connection relationships between nodes in the pipeline.
 * Once the pipeline is stopped, {@link OH_AudioSuiteEngine_RenderFrame}
 * should not be used for executing audio processing.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #AUDIT} if parameter is invalid, e.g. audioSuitePipeline is nullptr, e.t.c.
 * or {@link #N#J} if pipeline does not exist or has already been destroyed.
 * or {@link #STATE} if the pipeline is already in stopped state.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_StopPipeline(OH_AudioSuitePipeline* audioSuitePipeline);

/**
 * @brief Request to get one pipeline state
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline.
 * @param pipelineState Pipeline state, which will be retuirned as the output parameter.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #T} if parameter is invalid, e.g. audioSuitePipeline is nullptr, e.t.c.
 * or {@link #N#} if pipeline does not exist or has already been destroyed.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out b efore completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@A_GetPipelineState(
    OH_AudioSuitePipeline* audioSuitePipeline,O* pipelineState);

/**
 * @brief The application uses this interface for audio data processing.
 *
 * The application needs to call this interface to retrieve the data processed with effects frame by frame.
 * After the application calls this interface,
 * the pipeline will sequentially fetch data from the output node forward, process the effects,
 * and ultimately fill the processed data into the audioData pointer passed by the application.
 * The pipeline will attempt to fill the data according to the requestFrameSize as much as possible,
 * and the actual size of the data processed by the pipeline will be returned to the application via responseSize.
 * The pipeline supports multiple input nodes,
 * each of which will obtain raw audio data from the application
 * through the data acquisition interface registered by the application.
 * When the application has handed over all the data prepared for each input node to the pipeline,
 * the application should pass a finish flag during the last callback.
 * Once all inputs in the pipeline have passed the finish flag,
 * the pipeline will inform the application through the finishedFlag in the OH_AudioSuiteEngine_RenderFrame interface
 * after processing is complete.
 * When finishedFlag is true, the application should no longer call this interface.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline
 * @param audioData Audio data pointer, where user should read, unit is byte.
 * @param requestFrameSize Size of audio data user specified, unit is byte.
 * @param responseSize Size of audio data the system really write.
 * @param finishedFlag This flag is used to indicate user whether all data processing has been completed.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #<} if parameter is nullptr or not valid value.
 * or {@link #N#J} if pipeline does not exist or has already been destroyed.
 * or {@link #;STATE} if the pipeline is in the Stop state.
 * or {@link # &} if in the last call, finishedFlag was set to true.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@L_RenderFrame(OH_AudioSuitePipeline* audioSuitePipeline,
    void* audioData,0, int32_t* responseSize, bool* finishedFlag);

/**
 * @brief The application uses this interface for audio data processing.
 *
 * For most nodes, a piece of data is obtained from the preceding node, processed,
 * and then passed on to the subsequent node8.
 * For nodes with multiple outputs, such as the {@link0},
 * a piece of data is obtained from the preceding node, processed by an algorithm,
 * and then multiple pieces of data are passed on to the subsequent nodes.
 * If such nodes exist in the pipeline, this interface must be used to obtain the processed data.
 * The size of the audioDataArray should correspond one-to-one with the number of data outputs from the node.
 * For the audio source separation node, audioDataArray should have two elements:
 * the first element carries the vocal sound, and the second element carries the background sound.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline.
 * @param audioDataArray Audio data array pointer, where user should read,
 * The size of each one-dimensional array should be consistent.
 * @param responseSize Size of audio data the system really write,
 *     The system ensures that the data size filled for each one-dimensional array is consistent, unit is byte.
 * @param finishedFlag This flag is used to indicate user whether all data processing has been completed.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #AUDIO<} if parameter is nullptr or not valid value.
 * or {@link #N#J} if pipeline does not exist or has already been destroyed.
 * or {@link #;STATE} if the pipeline is in the Stop state.
 * or {@link # &} if in the last call, finishedFlag was set to true.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_MultiRenderFrame(OH_AudioSuitePipeline* audioSuitePipeline,
    OH_AudioDataArray* audioDataArray, int32_t* responseSize, bool(* finishedFlag);

/**
 * @brief Create aB which can be used to create an audio node
 *
 * The builder is a tool used to create nodes, and it can be utilized to set the properties of the nodes to be created.
 * After creating a node, the builder can be reused.
 * However, it must be noted that if the attributes of the new node are inconsistent with the previous node,
 * the application must use OH_AudioSuiteNodeBuilder_Reset to reset the builder.
 *
 * @param builder The builder reference to the created result.
 * @return {@link #AUDIOSUITE_SUC*CESS} if execution succeeds
 * or {@link #I} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link ##$} if m"* or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_Create(OH_AudioNodeBuil&der** builder);

/**
 * @brief DestroyB
 * This function must be called when you are done using the builder.
 *
 * @param builder Reference created by OH_AudioSuiteNo]deBuilder_Create.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #I} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_Destroy(OH_AudioNodeBui$lder* builder);

/**
 * @brief ResetB
 * If the application intends to reuse the builder to add new nodes
 * and the properties of the new nodes differ from those of the previously created nodes,
 * the application must call this interface to clear all properties, such as audio node type, e.t.c
 *
 * @param builder Reference created by OH_AudioSuiteNodeBuilder_Create.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #I} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_Reset(OH_AudioNodeBuilder* builder);

/**
 * @brief Set the audio node type to be created by the builder.
 *
 * When creating a node, other parameters are validated based on the node type,
 * so this method needs to be executed for all types of nodes.
 *
 * @param builder Reference created by OH_AudioSuiteNodeBuilder_Create.
 * @param type Audio node type. {@link OH_AudioNode_Type}
 * @return {@link #8AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #I} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_SetNodeType(OH_AudioNodeBuilder* builder, OH_AudioNode_Type type);

/**
 * @brief Set the audio format supported by the node.
 *
 * For {@link INPUT_Nh},
 * the set audioFormat is used to specify the format in which the application writes data.
 * For {@link OUTPUT_NODE_TYPE_DE },
 * the set audioFormat is used to specify the format in which the application ultimately wants to retrieve the data.
 * Other types of nodes do not support this setting.
 *
 * @param builder Reference created by OH_AudioSuiteNodeBuilder_Create.
 * @param audioFormat audio node format.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #AUDIOSUITE_ERROR_I} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link # FFORMAT} if an unsupported format is set in audioFormat.
 * or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_SetFormat(OH_AudioNodeBkuilder* builder, OH_AudioFormat audioFormat);

/**
 * @brief Callback function of request data, Only {@link`} support this setting.
 *
 * This function allows the application to write partial data which ranges from 0 to the audioDataSize.
 * The application should fill the data according to the size of audioDataSize.
 * When all the data from the application has been passed to the pipeline through the callback,
 * the application should set finished to true in the last callback.
 * When finished is set to true, the pipeline will no longer call this interface to obtain data from the application.
 *
 * @param audioNode AudioNode where this callback occurs.
 * @param userData User data which is passed by user.
 * @param audioData Audio data pointer, where user should fill in audio data.
 * @param audioDataSize Size of audio data that user should fill in, unit is byte.
 * @param finished This boolean value indicates that all data
 * of the application has been consumed since last executu+.
 * @return Length of the valid data that has written into audioData buffer.
 * The return value must be in range of
 * [0, audioDataSize]. If the return value is less than 0,
 * the system changes it to 0. And, if the return value is
 * greater than au4dioDataSize, the system changes it to audioDataSize.#int32_t (*OH_InputNode_RequestDataCallback)(
    OH_AudioNode* audioNode, void* userData, void* audioData, int32_t audioDataSizTe, bool* finished);

/**
 * @brief Set input node request data callback, Only {@link`} support this setting.
 *
 * @param builder Reference created by OH_AudioSuiteNodeBuilder_Create.
 * @param callback Callback to functions that will write audio data.
 * @param userData Pointer to an application data structure that will be passed to the` callback functions.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #} if parameter is invalid, e.g. builder is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Result OH_AudioSuiteNodeBuilder_SetRequestDataCallback(
    OH_AudioNodeBuilder* builder, OH_InputNode_RequestDataCallback callback, void* userData);

/**
 * @brief Request to create audio node withB
 * When executing this function, the system will validate the parameters based on the audio node type in the builder.
 * The application can determine the cause of the error through the return value.
 * If more detailed error information is needed, please use the xx interface to obtain it.
 *
 * @param audioSuitePipeline Reference created by OH_AudioSuiteEngine_CreatePipeline.
 * @param builder Audio node builder created by OH_AudioSuiteNodeBuilder_Create.
 * @param audioNode Pointer to a variable to receivAI@return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #<} if parameter is nullptr or not valid value.
 * or {@link #!-W} the number of nodes
 * of the current type exceeds the pipeline limit.
 * or {@link #)",Z} if The input type is inputNode,
 * but no callback function is set,e.t.c.
 * or {@link # &} if the current constructor node type is output node but the
 * Callback function was set, or the constructor node type is an effect node but the audio format or callback
 * function was set.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times& out before completion.
 * or {@link ##$} if m"* or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_CreateNode(
    OH_AudioSuitePipeline* audioSuitePipeline, OH_AudioNodeBuilder* builder, OH_AudioNode** audioNode);

/**
 * @brief Destroy an audio node.
 *
 * Whether the node can be deleted depends on the state of the pipeline it belongs to.
 * If the pipeline is not in the stopped state and the node is in an active processing path,
 * the operation will return that deletion is not supported.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @return {@link #AUDIOSUITE_SUC+CESS} if execution succeeds,
 * or {@link #)} if parameter is nullptr,
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link #STATE} if the pipeline is not stopped.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_DestroyNode(OH_AudioNode* audioNode);

/**
 * @brief Request to get audio node bypass status.
 *
 * Only effect node support bypass,
 * When application call this interface with an input node or output node,
 * it will return {@link #AUDIOSUITE_ERROR_IN}
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param bypassStatus node bypass status, which will be returned as the output parameter,
 * When the value of bypassStatusfalse is false, it indicates that the node has not been set to bypass;
 * when it is true, it means the node has been set to bypass.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #K} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &} if audioNode is not an effect node type.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_GetNodeBypassStatus(
    OH_AudioNode* audioNode, bool* bypassStatus);

/**
 * @brief Request to set the effect node bypass.
 *
 * This command can only be set to effect node. when bypass is set true,
 * the effect node only passes data to the next node without performing any effect processing.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param bypass This parameter determines whether the node merely forwards data transparently.
 * @return {@link #AUDIOSUITE_SUCCESS} $if execution succeeds
 * or {@link #K} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &} if the audioNode is not an effect node.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_BypassEffectNode(OH_AudioNode* audioNode, bool bypass);

/**
 * @brief Set the audio format for input and output nodes, specify the audio format of the audio source for
 * the input node, or specify the target audio format for the output node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param audioFormat Audio Format.
 * @return <ul><li>{@linBk #AUDIOSUITE_SUCCESS} if execution succeeds</li>
 * <li> {@link #0} if parameter is nullptr.</li>
 * <li> {@link #J} if audioNode does not exist or has been destroyed.</li>
 * <li> {@link # &;} if the audioNode is an effect node.</li>
 * <li> {@link # \FORMAT} if an unsupported format is set in audioFormat. [since 26.0.0]</li>
 * <li> {@link #STATE} if the pipeline where the node resides is not in the stop state.</li>
 * <li> {@link #AUDIOSUITE_ERROR_TIMEOUT} if an op:eration times out before completion.</li>
 * <li> {@link #W} if the system has other abnormalities.</li></ul>
 * @since 22
 */
OH_AudioSuite_Resul@_SetAudioFormat(OH_AudioNode* audioNode, OH_AudioFormat *audioFormat);

/**
 * @brief Executing the connect command will link two nodes in sequence.
 *
 * Connect two nodes will alter the topology of the pipeline. This may result in partial data loss,
 * so it is recommended to perform this command when the engine is in stopped state.
 * Node connections follow a specific order: the input node is the starting point of the pipeline,
 * multiple effect nodes can be connected in between, and the output node is the endpoint of the pipeline.
 *
 * @param sourceAudioNode source node Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param destAudioNode dest node Reference created by OH_AudioSuiteEngine_CreateNode.
 * @return {@link #AUDIOSUITE_SUCCESS}% if execution succeeds
 * or {@link #Q} if parameter is invalid, e.g. sourceAudioNode is nullptr, e.t.c.
 * or {@link #XSTATE} if pipline state is invalid, e.g. can not find output node, e.t.c.
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link #  } if connections between two node types are not supported.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_ConnectNodes(
    OH_AudioNode* sourceAudioNode, OH_AudioNode* destAudioNode);

/**
 * @brief Executing the disconnect command will sever the connection between two nodes.
 * This command alters the pipeline's topology and may result in partial data loss.
 * It is recommended to perform this operation when the engine is in a stopped state.
 *
 * @param sourceAudioNode Preceding audio node Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param destAudioNode Subsequent audio node Reference created by OH_AudioSuiteEngine_CreateNode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #AUDIOSUITE_ERROQ} if parameter is invalid, e.g. sourceAudioNode is nullptr, e.t.c.
 * or {@link #XSTATE} if pipline state is invalid, e.g. can not find output node, e.t.c.
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &} if sourceAudioNode and destAudioNode are the same node, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times %out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_DisconnectNodes(OH_AudioNode* sourceAudioNode, OH_AudioNode* destAudioNode);

/**
 * @brief Request to check whether the current system supports a specific node type.
 *
 * @param nodeType Audio node type. {@link OH_AudioNode_Type}
 * @param isSupported True means this node type is supported.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #AUDIOSUITE5} if param nullptr or not valid value.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@^_IsNodeTypeSupported(OH_AudioNode_Type nodeType, bool* isSupported);

/**
 * @brief Set equali-8 of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param frequencyBandGains The eq7>8
I @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &7} if audioNode is not an equalizer node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_Setl8(
    OH_AudioNode* audioNode,= .frequencyBandGains);

/**
 * @brief Get equali-8 of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param frequencyBandGains Current7>8Z of audioNode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &7} if audioNode is not an equalizer node.
 * or {@link #} if parameter is invalid, e.g. audioNode or
 * frequencyBandGains is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} i:f an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_Getl8(
    OH_AudioNode* audioNode,=* frequencyBandGains);

/**
 * @brief Set sound field type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param soundFieldType The sound field type.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &8} if audioNode is not an soundfield node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_SetSoundFieldType(OH_AudioNode* audioNode, OH_SoundFieldType soundFieldType);

/**
 * @brief Get sound field type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param soundFieldType Current sound field typ[e of audioNode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &8} if audioNode is not an soundfield node.
 * or {@link #} if parameter is invalid, e.g. audioNode or
 * soundFieldType is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an6 operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_GetSoundFieldType(
    OH_AudioNode* audioNode, OH_SoundFieldType* soundFieldType);

/**
 * @brief Set environment type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param environmentType The environment Qtype.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not an environment node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_SetEnvironmentType(
    OH_AudioNode* audioNode, OH_EnvironmentType environmentType);

/**
 * @brief Get environment type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param environmentType Current envirodnment type of audioNode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not an environment node.
 * or {@link #} if parameter is invalid, e.g. audioNode or
 * environmentType is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if a7n operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@j_GetEnvironmentType(
    OH_AudioNode* audioNode, OH_EnvironmentType* environmentType);

/**
 * @brief Set5 of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param voiceBeautifierType the vt5I @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &=} if audioNode is not an voiceBeautifier node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_SetVoiceBeautifierType(
    OH_AudioNode* audioNode, OH_VoiceBeautifierType voiceBeautifierType);

/**
 * @brief Get voice bea5 of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param voiceBeautifierType Current5Z of audioNode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &=} if audioNode is not an voiceBeautifier node.
 * or {@link #} if parameter is invalid, e.g. audioNode or
 * voiceBeautifierType is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} ;if an operation times out before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 22
 */
OH_AudioSuite_Resul@_GetVoiceBeautifierType(
    OH_AudioNode* audioNode, OH_VoiceBeautifierType* voiceBeautifierType);

/**
 * @brief Set position parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param position `Position parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_SetG(
    OH_AudioNode* audioNode,F( position);

/**
 * @brief Get position parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param position Position parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_GetG(
    OH_AudioNode* audioNode,F(* position);

/**
 * @brief Set rotation parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param rotation Rotation parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or	 {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_SetK(
    OH_AudioNode* audioNode,FK rotation);

/**
 * @brief Get rotation parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param rotation Rotation parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_GetK(
    OH_AudioNode* audioNode,FK* rotation);

/**
 * @brief Set extension parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param extension Extension parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_Set=M(
    OH_AudioNode* audioNode,FHM extension);

/**
 * @brief Get extension parameters for space rendering
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param extension Extension parameters.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &9} if audioNode is not a space render node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@_Get=M(
    OH_AudioNode* audioNode,FHM * extension);

/**
 * @brief Setadjustment parameters.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param speed value range: [0.5, 10.0] for Tempo
 * @param pitch value range: [0.1, 5.0] for Pitch
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &<} if audioNode is not a tempo and pitch node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@X_SetTempoAndPitch(OH_AudioNode* audioNode, float speed, float pitch);

/**
 * @brief Getadjustment parameters.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param speed value range: [0.5, 10.0] for Tempo.
 * @param pitch value range: [0.1, 5.0] for Pitch.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &<} if audioNode is not a tempo and pitch node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@__GetTempoAndPitch(OH_AudioNode* audioNode, float* speed, float* pitch);

/**
 * @brief Set pureM of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEngine_CreateNode.
 * @param option Change voice option. {@link #R#M}
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &>} if audioNode is not a pure voice change node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@7_SetPureVoiceChangeOption(
    OH_AudioNode* audioNode,R%option);

/**
 * @brief Get pure voice change option of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEn?gine_CreateNode.
 * @param option Change voice option. {@link #R#M}
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &>} if audioNode is not a pure voice change node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@7_GetPureVoiceChangeOption(
    OH_AudioNode* audioNode,R$* option);

/**
 * @brief Set general voice change type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuit>eEngine_CreateNode.
 * @param type Change voice type. {@link #Y$M}
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &A} if audioNode is not a general voice change node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@8_SetGeneralVoiceChangeType(
    OH_AudioNode* audioNode,Y% type);

/**
 * @brief Get general voice change type of audio node.
 *
 * @param audioNode Reference created by OH_AudioSuiteEn;gine_CreateNode.
 * @param type Change voice type. {@link #Y$M}
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds
 * or {@link #C} if audioNode does not exist or has been destroyed.
 * or {@link # &A} if audioNode is not a general voice change node.
 * or {@link #} if parameter is invalid, e.g. audioNode is nullptr, e.t.c.
 * or {@link #AUDIOSUITE_ERROR_TIMEOUT} if an operation times out !before completion.
 * or {@link #M} if the system has other abnormalities.
 * @since 23
 */
OH_AudioSuite_Resul@8_GetGeneralVoiceChangeType(
    OH_AudioNode* audioNode,Y%* type);

/**
 * @brief Print AudioSuite runtime snapshot.
 *
 * @param audioSuiteEngine Pointer to the AudioSuiteEngine whose runtime snapshot needs to be displayed.
 * @param audioSuitePipeline Pointer to the AudioSuitePipeline whose runtime snapshot needs to be displayed.
 * If audioSuitePipeline is NULL: output all pipelines (all pipelines/nodes under the engine).
 * Otherwise, output only the snapshot of this pipeline and nodes.
 * @param fd is a file handle, indicates the location where the snapshot information is stored.
 * If the fd is less than 0, the snapshot information is stored in the log.
 * Otherwise, the snapshot is stored in the file pointed to by the fd handle in append mode.
 * @return {@link #AUDIOSUITE_SUCCESS} if execution succeeds,
 * or {@link #<} if parameter is nullptr or not valid value.
 * or {@link #} if the system has other abnormalities.
 * @since 26.0.0
 */
OH_AudioSuite_Result OH_AudioSuite_PrintInfo(
    OH_AudioSuiteEnJgine* audioSuiteEngine, OH_AudioSuitePipeline* audioSuitePipeline, int fd)YFENGINE_HLeK,xM.# Copyright (C) 2023 Huawei Device Co., Ltd.
#3A#vB#)#
#0#
#E#dC#J#E#< 
import("//build/ohos.gni")
import("//build/ohos/ndk/ndk.gni")

ohos_ndk_headers("camera_ndk_header") {
  dest_dir = "$ndk_headers_out_dir/ohcamera"
  sources = [
    "./camera.h",
    "./camera_device.h",
    "./camera_input.h",
    "./camera_manager.h",
    "./camera_notification_info.h",
    "./capture_session.h",
    "./metadata_object_ext.h",
    "./metadata_output.h",
    "./photo_native.h",
    "./photo_output.h",
    "./preview_output.h",
    "./video_output.h",
  ]
}

ohos_ndk_library("libohcamera") {
  output_name = "ohcamera"
  output_extension = "so"
  ndk_description_file = "./camera.ndk.json"
  system_capability = "(Camera.Core"
  system_capability_headers = [
    "ohcamera/camera.h",
    "ohcamera/camera_device.h",
    "ohcamera/camera_manager.h",
    "ohcamera/camera_notification_info.h",
    "ohcamera/camera_input.h",
    "ohcamera/capture_session.h",
    "ohcamera/metadata_output.h",
    "ohcamera/photo_output.h",
    "ohcamera/preview_output.h",
    "ohcamera/video_output.h",
    "ohcaBmera/photo_native.h",
    "ohcamera/metadata_object_ext.h",
  ]
}
|Bxsk/*
 *, *.A *pB *) *
 *, *
 *E *XC *J *E *-  */
/**
 * @addtogroup OH_Camera
 * @{
 *
 * @brief Provide the definition of the C interface for the camera module.
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file camera.h
 *
 * @brief Defines the basic APIs of the camera.
 * 
 * @library libohcamera. so
 * @kit CameraKit
 * @syscap '
 * @since 11
 * @version 1.0
 */

#ifndef NATIVE_INCLUDE_CAMERA_CAMERA_H
#define NATIVE_INCLUDE_CAMERA_CAMERA_H

#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief The struct describes the camera manager.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Manager Camera_Manager;

/**
 * @brief Enumerates the camera error codes.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_ErrorCode {
    /**
     * The camera is normal.
     */
    CAMERA_OK = 0,

    /**
     * A parameter is missing or the parameter type is incorrect.
     */
    CAMERA_INVALID_ARGUMENT = 7400101,

    /**
     * The operation is not allowed.
     */
    CAMERA_OPERATION_NOT_ALLOWED = 7400102,

    /**
     * The session is not configured.
     */
    CAMERA_SESSION_NOT_CONFIG = 7400103,

    /**
     * The session is not running.
     */
    CAMERA_SESSION_NOT_RUNNING = 7400104,

    /**
     * The session configuration is locked.
     */
    CAMERA_SESSION_CONFIG_LOCKED = 7400105,

    /**
     * The device setting is locked.
     */
    CAMERA_DEVICE_SETTING_LOCKED = 7400106,

    /**
     * The device is already started.
     */
    CAMERA_CONFLICT_CAMERA = 7400107,

    /**
     * The camera is disabled for security reasons.
     */
    CAMERA_DEVICE_DISABLED = 7400108,

    /**
     * The camera is preempted.
     */
    CAMERA_DEVICE_PREEMPTED = 7400109,

    /**
     * The configuration conflicts with the current configuration.
     *
     * @since 12
     */
    CAMERA_UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS = 7400110,

    /**
     * The optional property does not exist.
     * @since 26.0.0
     */
    CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST = 7400113,

    /**
     * The camera service is abnormal, for example, no camera permission, camera service restart, or abnormal cross-
     * process invocation.
     */
    CAMERA_SERVICE_FATAL_ERROR = 7400201
} Camera_ErrorCode;

/**
 * @brief Enumerates the camera statuses.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_Status {
    /**
     * A camera appears.
     */
    CAMERA_STATUS_APPEAR = 0,

    /**
     * The camera disappears.
     */
    CAMERA_STATUS_DISAPPEAR = 1,

    /**
     * The camera is available.
     */
    CAMERA_STATUS_AVAILABLE = 2,

    /**
     * The camera is unavailable.
     */
    CAMERA_STATUS_UNAVAILABLE = 3
} Camera_Status;

/**
 * @brief Enumerates the camera scene modes.
 * 
 * @since 12
 * @version 1.0
 */
typedef enum Camera_SceneMode {
    /**
     * Normal photo mode.
     */
    NORMAL_PHOTO = 1,

    /**
     * Normal video mode.
     */
    NORMAL_VIDEO = 2,

    /**
     * Secure mode, which is mainly provided for high-security applications like banking that require features such as
     * biometric verification. The secure mode requires the encryption algorithm framework and trusted application
     * services. For details,
     * see [Device Certificate Kit](docroot://security/DeviceCertificateKit/device-certificate-kit-intro.md).
     */
    SECURE_PHOTO = 12
} Camera_SceneMode;

/**
 * @brief Enumerates the camera positions.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_Position {
    /**
     * A camera that does not have a fixed orientation relative to the device screen.
     */
    CAMERA_POSITION_UNSPECIFIED = 0,

    /**
     * Rear camera.
     */
    CAMERA_POSITION_BACK = 1,

    /**
     * Front camera.
     */
    CAMERA_POSITION_FRONT = 2
} Camera_Position;

/**
 * @brief Enumerates the camera types.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_Type {
    /**
     * Default camera type.
     */
    CAMERA_TYPE_DEFAULT = 0,

    /**
     * Wide camera.
     */
    CAMERA_TYPE_WIDE_ANGLE = 1,

    /**
     * Ultra-wide camera.
     */
    CAMERA_TYPE_ULTRA_WIDE = 2,

    /**
     * Telephoto camera.
     */
    CAMERA_TYPE_TELEPHOTO = 3,

    /**
     * Camera with depth of field information.
     */
    CAMERA_TYPE_TRUE_DEPTH = 4
} Camera_Type;

/**
 * @brief Enumerates the camera connection types.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_Connection {
    /**
     * Built-in camera.
     */
    CAMERA_CONNECTION_BUILT_IN = 0,

    /**
     * Camera connected using USB.
     */
    CAMERA_CONNECTION_USB_PLUGIN = 1,

    /**
     * Remote camera.
     */
    CAMERA_CONNECTION_REMOTE = 2
} Camera_Connection;

/**
 * @brief Sensor color filter arrangement.
 *
 * @since 24
 */
typedef enum OH_Camera_SensorColorFilterArrangement{
    /**
     * Blue-Green-Green-Red (BGGR) filter arrangement.
     * @since 24
     */
    OH_CAMERA_SENSOR_CFA_BGGR = 0,

    /**
     * Green-Blue-Red-Green (GBRG) filter arrangement.
     * @since 24
     */
    OH_CAMERA_SENSOR_CFA_GBRG = 1,

    /**
     * Green-Red-Green-Blue (GRBG) filter arrangement.
     * @since 24
     */
    OH_CAMERA_SENSOR_CFA_GRBG = 2,

    /**
     * Red-Green-Green-Blue (RGGB) filter arrangement. 
     * @since 24
     */
    OH_CAMERA_SENSOR_CFA_RGGB = 3
} OH_Camera_SensorColorFilterArrangement;

/**
 * @brief Enumerates the camera output formats.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_Format {
    /**
     * RGBA 8888.
     */
    CAMERA_FORMAT_RGBA_8888 = 3,

    /**
     * DNG Format.
     * @since 24
     */
    CAMERA_FORMAT_DNG = 4,

    /**
     * Enhanced DNG image format.
     * @since 26.0.0
     */
    CAMERA_FORMAT_DNG_XDRAW = 5,

    /**
     * YUV 420 SP.
     */
    CAMERA_FORMAT_YUV_420_SP = 1003,

    /**
     * JPEG.
     */
    CAMERA_FORMAT_JPEG = 2000,

    /**
     * YCBCR P010.
     * 
     * @since 12
     */
    CAMERA_FORMAT_YCBCR_P010 = 2001,

    /**
     * YCRCB P010.
     * 
     * @since 12
     */
    CAMERA_FORMAT_YCRCB_P010 = 2002,

    /**
     * HEIC.
     * 
     * @since 23
     */
    CAMERA_FORMAT_HEIC = 2003,
} Camera_Format;

/**
 * @brief Enumerates the flash modes.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_FlashMode {
    /**
     * The flash is off.
     */
    FLASH_MODE_CLOSE = 0,

    /**
     * The flash is on.
     */
    FLASH_MODE_OPEN = 1,

    /**
     * The flash is auto.
     */
    FLASH_MODE_AUTO = 2,

    /**
     * The flash is steady on.
     */
    FLASH_MODE_ALWAYS_OPEN = 3
} Camera_FlashMode;

/**
 * @brief Enum for flash state.
 *
 * @since 24
 */
typedef enum OH_Camera_FlashState {
    /**
     * Flash is unavailable, default value.
     * @since 24
     */
   OH_CAMERA_FLASH_STATE_UNAVAILABLE = 0,

    /**
     * This status indicates that the flash is available.
     * @since 24
     */
    OH_CAMERA_FLASH_STATE_READY = 1,

    /**
     * This status indicates that flashing can be performed.
     * @since 24
     */
    OH_CAMERA_FLASH_STATE_FLASHING = 2
} OH_Camera_FlashState;

/**
 * @brief Enumerates the exposure modes.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_ExposureMode {
    /**
     * Unspecified exposure.
     * 
     * @since 24
     */
    EXPOSURE_MODE_UNSPECIFIED = -1,

    /**
     * Exposure locked. The metering point cannot be set.<br>After this mode is used, the exposure will be locked by
     * default for each photo capture.
     */
    EXPOSURE_MODE_LOCKED = 0,

    /**
     * Auto exposure. The metering point can be set by calling {@link OH_CaptureSession_SetMeteringPoint}.
     * 
     * After this mode is used, it takes effect only for the first photo capture.
     */
    EXPOSURE_MODE_AUTO = 1,

    /**
     * Continuous auto exposure.<br>After this mode is used, the camera system automatically adjusts the exposure based
     * on the environment changes each time.
     */
    EXPOSURE_MODE_CONTINUOUS_AUTO = 2,

    /**
     * Manual exposure mode.
     * @since 24
     */
    EXPOSURE_MODE_MANUAL = 3
} Camera_ExposureMode;

/**
 * @brief Enum for exposure metering mode.
 *
 * @since 24
 */
typedef enum OH_Camera_ExposureMeteringMode {
    /**
     * Matrix metering mode: Measures the light in the whole frame, ideal for shooting natural landscapes.
     * @since 24
     */
    OH_CAMERA_EXPOSURE_METERING_MODE_MATRIX = 0,

    /** 
     * Center metering mode: Focuses in on light near the center of the screen, ideal for shooting portraits.
     * @since 24
     */
    OH_CAMERA_EXPOSURE_METERING_MODE_CENTER = 1,

    /**
     * Spot metering mode: Focuses in on light from a specific tiny region, such as a subject's eyes.
     * @since 24
     */
    OH_CAMERA_EXPOSURE_METERING_MODE_SPOT = 2
} OH_Camera_ExposureMeteringMode;

/**
 * @brief Enumerates camera exposure states.
 * @since 26.0.0
 */
typedef enum OH_Camera_ExposureState {
    /**
     * Indicates that the exposure is in scanning state.
     * @since 26.0.0
     */
    OH_CAMERA_EXPOSURE_STATE_SCAN = 0,

    /**
     * Indicates that the exposure has converged.
     * @since 26.0.0
     */
    OH_CAMERA_EXPOSURE_STATE_CONVERGED = 1
} OH_Camera_ExposureState;

/**
 * @brief Enumerates the white balance modes.
 * 
 * @since 20
 * @version 1.0
 */

typedef enum Camera_WhiteBalanceMode {
    /**
     * Automatic.
     */
    CAMERA_WHITE_BALANCE_MODE_AUTO = 0,

    /**
     * Cloudy.
     */
    CAMERA_WHITE_BALANCE_MODE_CLOUDY = 1,

    /**
     * Incandescent light.
     */
    CAMERA_WHITE_BALANCE_MODE_INCANDESCENT = 2,

    /**
     * Fluorescence light.
     */
    CAMERA_WHITE_BALANCE_MODE_FLUORESCENT = 3,

    /**
     * Daylight.
     */
    CAMERA_WHITE_BALANCE_MODE_DAYLIGHT = 4,

    /**
     * Manual.
     */
    CAMERA_WHITE_BALANCE_MODE_MANUAL = 5,

    /**
     * Locked.
     */
    CAMERA_WHITE_BALANCE_MODE_LOCKED = 6,
} Camera_WhiteBalanceMode;

/**
 * @brief Enumerates the focus modes.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_FocusMode {
    /**
     * Manual focus.
     */
    FOCUS_MODE_MANUAL = 0,

    /**
     * Continuous auto focus.
     */
    FOCUS_MODE_CONTINUOUS_AUTO = 1,

    /**
     * The flash is auto.
     */
    FOCUS_MODE_AUTO = 2,

    /**
     * Focus locked.
     */
    FOCUS_MODE_LOCKED = 3
} Camera_FocusMode;

/**
 * @brief Enumerates the focus states.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_FocusState {
    /**
     * Focusing.
     */
    FOCUS_STATE_SCAN = 0,

    /**
     * Focused.
     */
    FOCUS_STATE_FOCUSED = 1,

    /**
     * Unfocused.
     */
    FOCUS_STATE_UNFOCUSED = 2
} Camera_FocusState;

/**
 * @brief Enumerates the video stabilization modes.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_VideoStabilizationMode {
    /**
     * Video stabilization is disabled.
     */
    STABILIZATION_MODE_OFF = 0,

    /**
     * The basic video stabilization algorithm is used.
     */
    STABILIZATION_MODE_LOW = 1,

    /**
     * A video stabilization algorithm with a stabilization effect better than that of the **LOW** type is used.
     */
    STABILIZATION_MODE_MIDDLE = 2,

    /**
     * A video stabilization algorithm with a stabilization effect better than that of the **MIDDLE** type is used.
     */
    STABILIZATION_MODE_HIGH = 3,

    /**
     * Automatic video stabilization is used. This value is available for HDF cameras.
     */
    STABILIZATION_MODE_AUTO = 4
} Camera_VideoStabilizationMode;

/**
 * @brief Enumerates the image rotation angles.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_ImageRotation {
    /**
     * The image rotates 0 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_0}
     *  instead.
     */
    IAMGE_ROTATION_0 = 0,

    /**
     * The image rotates 0 degrees.
     * 
     * @since 23
     */
    CAMERA_IMAGE_ROTATION_0 = 0,

    /**
     * The image rotates 90 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_90}
     *  instead.
     */
    IAMGE_ROTATION_90 = 90,

    /**
     * The image rotates 90 degrees.
     * 
     * @since 23
     */
    CAMERA_IMAGE_ROTATION_90 = 90,

    /**
     * The image rotates 180 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_180}
     *  instead.
     */
    IAMGE_ROTATION_180 = 180,

    /**
     * The image rotates 180 degrees.
     * 
     * @since 23
     */
    CAMERA_IMAGE_ROTATION_180 = 180,

    /**
     * The image rotates 270 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_270}
     *  instead.
     */
    IAMGE_ROTATION_270 = 270,

    /**
     * The image rotates 270 degrees.
     * 
     * @since 23
     */
    CAMERA_IMAGE_ROTATION_270 = 270
} Camera_ImageRotation;

/**
 * @brief Enumerates the image quality levels.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_QualityLevel {
    /**
     * High image quality.
     */
    QUALITY_LEVEL_HIGH = 0,

    /**
     * Medium image quality.
     */
    QUALITY_LEVEL_MEDIUM = 1,

    /**
     * Low image quality.
     */
    QUALITY_LEVEL_LOW = 2
} Camera_QualityLevel;

/**
 * @brief Enumerates the metadata object types.
 * 
 * @since 11
 * @version 1.0
 */
typedef enum Camera_MetadataObjectType {
    /**
     * Metadata object used for face detection.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_METADATA_OBJECT_TYPE_FACE_DETECTION}
     *  instead.
     */
    FACE_DETECTION = 0,

    /**
     * Metadata object used for face detection.
     * 
     * @since 23
     */
    CAMERA_METADATA_OBJECT_TYPE_FACE_DETECTION = 0,

    /**
     * Metadata object used for body detection.
     * 
     * @since 23
     */
    CAMERA_METADATA_OBJECT_TYPE_HUMAN_BODY = 1,

    /**
     * Metadata object used for cat face detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_CAT_FACE = 2,

    /**
     * Metadata object used for cat body detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_CAT_BODY = 3,

    /**
     * Metadata object used for dog face detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_DOG_FACE = 4,

    /**
     * Metadata object used for dog body detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_DOG_BODY = 5,

    /**
     * Metadata object used for salient detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_SALIENT_DETECTION = 6,

    /**
     * Metadata object used for bar code detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_BAR_CODE_DETECTION = 7,

    /**
     * Metadata object used for basic face detection.
     * @since 26.0.0
     */
    CAMERA_METADATA_OBJECT_TYPE_BASIC_FACE_DETECTION = 8
} Camera_MetadataObjectType;

/**
 * @brief Enumerates the flashlight modes.
 * 
 * @since 12
 * @version 1.0
 */
typedef enum Camera_TorchMode {
    /**
     * The flashlight is always off.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_TORCH_MODE_OFF}
     *  instead.
     */
    OFF = 0,

    /**
     * The flashlight is always off.
     * 
     * @since 23
     */
    CAMERA_TORCH_MODE_OFF = 0,

    /**
     * The flashlight is always on.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_TORCH_MODE_ON}
     *  instead.
     */
    ON = 1,

    /**
     * The flashlight is always on.
     * 
     * @since 23
     */
    CAMERA_TORCH_MODE_ON = 1,

    /**
     * The flashlight will be turned on automatically based on the ambient lighting level.<br> Since API version 23,
     * you are advised to use the new enum value {@link CAMERA_TORCH_MODE_AUTO} instead.
     */
    AUTO = 2,

    /**
     * The flashlight will be turned on automatically based on the ambient lighting level.
     * 
     * @since 23
     */
    CAMERA_TORCH_MODE_AUTO = 2
} Camera_TorchMode;

/**
 * @brief Enumerates the smooth zoom modes.
 * 
 * @since 12
 * @version 1.0
 */
typedef enum Camera_SmoothZoomMode {
    /**
     * Bessel curve mode.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_SMOOTH_ZOOM_MODE_NORMAL}
     *  instead.
     */
    NORMAL = 0,

    /**
     * Bessel curve mode.
     * 
     * @since 23
     */
    CAMERA_SMOOTH_ZOOM_MODE_NORMAL = 0
} Camera_SmoothZoomMode;

/**
 * @brief Enumerates the preconfigured photo resolution types.
 * 
 * @since 12
 * @version 1.0
 */
typedef enum Camera_PreconfigType {
    /**
     * 720p resolution.
     */
    PRECONFIG_720P = 0,

    /**
     * 1080p resolution.
     */
    PRECONFIG_1080P = 1,

    /**
     * 4K resolution.
     */
    PRECONFIG_4K = 2,

    /**
     * High-quality photos.
     */
    PRECONFIG_HIGH_QUALITY = 3,
    
    /**
     * Resolution that supports HDR preview and GIF photography.
     * 
     * @since 23
     */
    PRECONFIG_HIGH_QUALITY_PHOTOSESSION_BT2020 = 4
} Camera_PreconfigType;

/**
 * @brief Enumerates the preconfigured photo aspect ratios.
 * 
 * @since 12
 * @version 1.0
 */
typedef enum Camera_PreconfigRatio {
    /**
     * 1:1 aspect ratio.
     */
    PRECONFIG_RATIO_1_1 = 0,

    /**
     * 4:3 aspect ratio.
     */
    PRECONFIG_RATIO_4_3 = 1,

    /**
     * 16:9 aspect ratio.
     */
    PRECONFIG_RATIO_16_9 = 2
} Camera_PreconfigRatio;

/**
 * @brief Enum for remote camera device type.
 *
 * @since 15
 * @version 1.0
 */
typedef enum Camera_HostDeviceType {
    /**
     * Indicates an unknown device camera.
     */
    HOST_DEVICE_TYPE_UNKNOWN_TYPE = 0,

    /**
     * Indicates a smartphone camera.
     */
    HOST_DEVICE_TYPE_PHONE = 0x0E,

    /**
     * Indicates tablet camera.
     */
    HOST_DEVICE_TYPE_TABLET = 0x11
} Camera_HostDeviceType;

/**
 * @brief The struct describes the parameters related to the size.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Size {
    /**
     * Width, in pixels.
     */
    uint32_t width;

    /**
     * Height, in pixels.
     */
    uint32_t height;
} Camera_Size;

/**
 * @brief The struct describes the profile of a camera stream.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Profile {
    /**
     * Camera format.
     */
    Camera_Format format;

    /**
     * Image size.
     */
    Camera_Size size;
} Camera_Profile;

/**
 * @brief The struct describes the frame rate range.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_FrameRateRange {
    /**
     * Minimum frame rate, in fps.
     */
    uint32_t min;

    /**
     * Maximum frame rate, in fps.
     */
    uint32_t max;
} Camera_FrameRateRange;

/**
 * @brief The struct describes the video profile.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_VideoProfile {
    /**
     * Camera format.
     */
    Camera_Format format;

    /**
     * Image size.
     */
    Camera_Size size;

    /**
     * Frame rate, in frames per second (FPS).
     */
    Camera_FrameRateRange range;
} Camera_VideoProfile;

/**
 * @brief The struct describes the camera output capability.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_OutputCapability {
    /**
     * Double pointer to the list of preview profiles.
     */
    Camera_Profile** previewProfiles;

    /**
     * Size of the preview profiles.
     */
    uint32_t previewProfilesSize;

    /**
     * Double pointer to the list of photo profiles.<br> In the configuration file, **size** is set to the width and
     * height of the camera resolution, not the actual width and height of an output image.
     */
    Camera_Profile** photoProfiles;

    /**
     * Size of the photo profiles.
     */
    uint32_t photoProfilesSize;

    /**
     * Double pointer to the list of video profiles.
     */
    Camera_VideoProfile** videoProfiles;

    /**
     * Size of the video profiles.
     */
    uint32_t videoProfilesSize;

    /**
     * Double pointer to the list of the metadata object types supported.
     */
    Camera_MetadataObjectType** supportedMetadataObjectTypes;

    /**
     * Size of the metadata profiles.
     */
    uint32_t metadataProfilesSize;
} Camera_OutputCapability;

/**
 * @brief The struct describes the camera device.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Device {
    /**
     * Pointer to the camera ID.
     */
    char* cameraId;

    /**
     * Camera position.
     */
    Camera_Position cameraPosition;

    /**
     * Camera type.
     */
    Camera_Type cameraType;

    /**
     * Camera connection type.
     */
    Camera_Connection connectionType;
} Camera_Device;

/**
 * @brief The struct describes the camera status information.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_StatusInfo {
    /**
     * Pointer to the camera instance.
     */
    Camera_Device* camera;

    /**
     * Camera status.
     */
    Camera_Status status;
} Camera_StatusInfo;

/**
 * @brief The struct describes the parameters related to a point.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Point {
    /**
     * X coordinate. The value range is [0,1].
     */
    double x;

    /**
     * Y coordinate. The value range is [0,1].
     */
    double y;
} Camera_Point;

/**
 * @brief The struct describes the location where a photo is taken.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Location {
    /**
     * Latitude.
     */
    double latitude;

    /**
     * Longitude.
     */
    double longitude;

    /**
     * Altitude, in meters.
     */
    double altitude;
} Camera_Location;

/**
 * @brief The struct describes the parameters related to photo capture.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_PhotoCaptureSetting {
    /**
     * Quality of the photo.
     */
    Camera_QualityLevel quality;

    /**
     * Rotation angle.
     */
    Camera_ImageRotation rotation;

    /**
     * Pointer to the location where the photo is taken.
     */
    Camera_Location* location;

    /**
     * Whether mirroring is enabled.<br> **true** if enabled, **false** otherwise. The default value is **false**.
     */
    bool mirror;
} Camera_PhotoCaptureSetting;

/**
 * @brief The struct describes the frame shutter information.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_FrameShutterInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Timestamp of the frame, in milliseconds.
     */
    uint64_t timestamp;
} Camera_FrameShutterInfo;

/**
 * @brief The struct describes the capture end information.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_CaptureEndInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Number of frames captured.
     */
    int64_t frameCount;
} Camera_CaptureEndInfo;

/**
 * @brief The struct describes a rectangle. The coordinate system for the returned detection points is based on the
 * landscape device orientation, with the charging port on the right. In this coordinate system, the top-left corner is
 * (0, 0), and the bottom-right corner is (1, 1). Here, **topLeftX** and **topLeftY** represent the coordinates of the
 * top-left corner of the rectangle, whereas **width** and **height** represent the width and height of the rectangle,
 * respectively. When cropping or selecting a face region based on specific requirements, the x and y coordinates of
 * the rectangle must be multiplied by the width and height of the actual camera preview output stream to obtain the
 * cropped face region.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_Rect {
    /**
     * X coordinate of the top-left corner of the rectangle, in the range of [0, 1].
     */
    int32_t topLeftX;

    /**
     * Y coordinate of the top-left corner of the rectangle, in the range of [0, 1].
     */
    int32_t topLeftY;

    /**
     * Width of the rectangle, in the range of [0, 1].
     */
    int32_t width;

    /**
     * Height of the rectangle, in the range of [0, 1].
     */
    int32_t height;
} Camera_Rect;

/**
 * @brief The struct describes the camera metadata.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_MetadataObject {
    /**
     * Type of the metadata object.
     */
    Camera_MetadataObjectType type;

    /**
     * Timestamp of the metadata object, in nanoseconds (ns).
     */
    int64_t timestamp;

    /**
     * Pointer to the axis aligned bounding box of the metadata object.
     */
    Camera_Rect* boundingBox;
} Camera_MetadataObject;

/**
 * @brief The struct describes the flashlight status information.
 * 
 * @since 12
 * @version 1.0
 */
typedef struct Camera_TorchStatusInfo {
    /**
     * Whether the flashlight is available. **true** if available, **false** otherwise.
     */
    bool isTorchAvailable;

    /**
     * Whether the flashlight is activated. **true** if activated, **false** otherwise.
     */
    bool isTorchActive;

    /**
     * Flashlight level. The value range is [0, 1]. A larger value indicates a greater luminance.
     */
    float torchLevel;
} Camera_TorchStatusInfo;

/**
 * @brief The struct describes the smooth zoom information.
 * 
 * @since 12
 * @version 1.0
 */
typedef struct Camera_SmoothZoomInfo {
    /**
     * Total duration of smooth zoom, in ms.
     */
    int32_t duration;
} Camera_SmoothZoomInfo;

/**
 * @brief The struct describes the capture start information.
 * 
 * @since 12
 * @version 1.0
 */
typedef struct Camera_CaptureStartInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Estimated duration when the sensor captures frames at the bottom layer in a single capture. If **–1** is
     * reported, there is no estimated duration.
     */
    int64_t time;
} Camera_CaptureStartInfo;

/**
 * @brief The struct describes the frame shutter end information during capture.
 * 
 * @since 12
 * @version 1.0
 */
typedef struct Camera_FrameShutterEndInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;
} Camera_FrameShutterEndInfo;

/**
* @brief Enumerates the fold statuses.
* 
* @since 13
* @version 1.0
*/
typedef enum Camera_FoldStatus {
    /**
     * Unfoldable.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_FOLD_STATUS_NON_FOLDABLE}
     *  instead.
     */
    NON_FOLDABLE = 0,

    /**
     * Unfoldable.
     * 
     * @since 23
     */
    CAMERA_FOLD_STATUS_NON_FOLDABLE = 0,

    /**
     * Unfolded.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_FOLD_STATUS_EXPANDED}
     *  instead.
     */
    EXPANDED = 1,

    /**
     * Unfolded.
     * 
     * @since 23
     */
    CAMERA_FOLD_STATUS_EXPANDED = 1,

    /**
     * Folded.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_FOLD_STATUS_FOLDED}
     * instead.
     */
    FOLDED = 2,

    /**
     * Folded.
     * 
     * @since 23
     */
    CAMERA_FOLD_STATUS_FOLDED = 2
} Camera_FoldStatus;

/**
 * @brief The struct describes the fold status information of the camera.
 * 
 * @since 13
 * @version 1.0
 */
typedef struct Camera_FoldStatusInfo {
    /**
     * Double pointer to the camera list.
     */
    Camera_Device** supportedCameras;

    /**
     * Number of cameras in the list.
     */
    uint32_t cameraSize;

    /**
     * Current fold status.
     */
    Camera_FoldStatus foldStatus;
} Camera_FoldStatusInfo;

/**
 * @brief Auto device switch status info.
 *
 * @since 13
 * @version 1.0
 */
typedef struct Camera_AutoDeviceSwitchStatusInfo {
    /**
     * is device switched.
     */
    bool isDeviceSwitched;

    /**
     * is device capability changed.
     */
    bool isDeviceCapabilityChanged;
} Camera_AutoDeviceSwitchStatusInfo;

/**
 * @brief Enum for quality prioritization.
 *
 * @since 14
 * @version 1.0
 */
typedef enum Camera_QualityPrioritization {
    /**
     * Hight quality priority.
     */
    HIGH_QUALITY = 0,

    /**
     * Power balance priority.
     */
    POWER_BALANCE = 1
} Camera_QualityPrioritization;

/**
 * @brief Enum for camera concurrent type.
 *
 * @since 18
 * @version 1.0
 */
typedef enum Camera_ConcurrentType {
    /**
     * Cameras concurrency with limited capability.
     */
    CAMERA_CONCURRENT_TYPE_LIMITED_CAPABILITY  = 0,

    /**
     * Cameras concurrenct with full capability.
     */
    CAMERA_CONCURRENT_TYPE_FULL_CAPABILITY = 1
} Camera_ConcurrentType;

/**
 * @brief Concurrency capability infos.
 *
 * @since 18
 * @version 1.0
 */
typedef struct Camera_ConcurrentInfo {
    /**
     * Camera instance.
     */
    Camera_Device camera;

    /**
     * Supported concurrent type.
     */
    Camera_ConcurrentType type;

    /**
     * Supported Modes.
     */
    Camera_SceneMode* sceneModes;

    /**
     * Supported outputCapabilities
     */
    Camera_OutputCapability* outputCapabilities;

    /**
     * Supported outputCapabilities size.
     */
    uint32_t modeAndCapabilitySize;
} Camera_ConcurrentInfo;

/**
 * @brief Enumerates the system pressure levels.
 * 
 * @since 20
 * @version 1.0
 */

typedef enum Camera_SystemPressureLevel {
    /**
     * The system pressure is normal.
     */
    SYSTEM_PRESSURE_NORMAL = 0,

    /**
     * The system pressure is elevated but not actively managed by the system.
     */
    SYSTEM_PRESSURE_MILD = 1,

    /**
     * The system pressure may affect the overall image quality and performance.
     */
    SYSTEM_PRESSURE_SEVERE = 2,

    /**
     * The system pressure has a significant impact on the image quality and performance.
     */
    SYSTEM_PRESSURE_CRITICAL = 3,

    /**
     * The system pressure is too high, causing the system to shut down.
     */
    SYSTEM_PRESSURE_SHUTDOWN = 4
} Camera_SystemPressureLevel;

/**
 * @brief Enumerates the photo quality prioritization strategies.
 * 
 * @since 21
 * @version 1.0
 */
typedef enum Camera_PhotoQualityPrioritization {
    /**
     * Focuses on image quality, which may increase the time required for capturing photos to ensure high-quality
     * output.
     */
    CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY = 0,

    /**
     * Focuses on performance, trading off image quality for faster capture times.
     */
    CAMERA_PHOTO_QUALITY_PRIORITIZATION_SPEED = 1
} Camera_PhotoQualityPrioritization;

/**
 * @brief Enumerates the effect types of a camera controller.
 * 
 * @since 20
 * @version 1.0
 */
typedef enum Camera_ControlCenterEffectType {
    /**
     * Beauty effect.
     */
    CONTROL_CENTER_EFFECT_TYPE_BEAUTY = 0,

    /**
     * Portrait blur effect.
     */
    CONTROL_CENTER_EFFECT_TYPE_PORTRAIT = 1,

    /**
     * Applies a auto-framing effect.
     * @since 24
     */
    CONTROL_CENTER_EFFECT_TYPE_AUTO_FRAMING = 2,

    /**
     * Color effect.
     * @since 26.0.0
     */
    CONTROL_CENTER_EFFECT_TYPE_COLOR_EFFECT = 3
} Camera_ControlCenterEffectType;

/**
 * @brief The struct describes the effect status information of a camera controller.
 * 
 * @since 20
 * @version 1.0
 */
typedef struct Camera_ControlCenterStatusInfo {
    /**
     * Effect type of the camera controller.
     */
    Camera_ControlCenterEffectType effectType;

    /**
     * Whether the controller is activated. **true** if activated, **false** otherwise.
     */
    bool isActive;
} Camera_ControlCenterStatusInfo;

/**
 * @brief Obtains a Camera_Manager instance.
 * 
 * @param cameraManager Double pointer to the Camera_Manager instance created, if the function is successfully called.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */
Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManager);

/**
 * @brief Deletes a Camera_Manager instance.
 * 
 * @param cameraManager Pointer to the target Camera_Manager instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */
Camera_ErrorCode OH_Camera_DeleteCameraManager(Camera_Manager* cameraManager);

/**
 * @brief Camera device query information.
 * 
 * @since 23
 * @version 1.0
 */
typedef struct Camera_DeviceQueryInfo {
    /**
     * List of camera types.
     */
    Camera_Type* cameraType;
    /**
     * Size of the camera type list.
     */
    uint32_t cameraTypeSize;
    /**
     * Camera position.
     */
    Camera_Position cameraPosition;
    /**
     * Camera connection type.
     */
    Camera_Connection connectionType;
} Camera_DeviceQueryInfo;

/**
 * @brief Provides the check result for whether a camera lens is blocked or dirty.
 * 
 * @since 23
 * @version 1.0
 */
typedef struct Camera_OcclusionDetectionResult {
    /**
     * Checks whether the camera lens is blocked. The value **true** indicates that the camera lens is blocked, and **
     * false** indicates the opposite.
     */
    bool isCameraOccluded;

    /**
     * Checks whether the camera lens is dirty. The value **true** indicates that the camera lens is dirty, and **false*
     * * indicates the opposite.
     */
    bool isCameraLensDirty;
} Camera_OcclusionDetectionResult;

/**
 * @brief Describes the zoom range configuration.
 * 
 * @since 24
 */
typedef struct OH_Camera_ZoomRange {
    /**
     * Minimum zoom value.
     * @since 24
     */
    float minZoom;

    /**
     * Maximum zoom value.
     * @since 24
    */
    float maxZoom;
} OH_Camera_ZoomRange;

/**
 * @brief Describes the physical aperture configuration.
 * @since 24
 */
typedef struct OH_Camera_PhysicalAperture {
    /**
     * Zoom range specification.
     * @since 24
     */
    OH_Camera_ZoomRange zoomRange;

    /**
     * Array of supported aperture values.
     * @since 24
     */
    float* apertures;

    /**
     * Number of aperture values.
     * @since 24
     */
    size_t apertureCount;
} OH_Camera_PhysicalAperture;

/**
 * @brief Enum for OIS (Optical Image Stabilization) mode.
 *
 * @since 24
 * @version 1.0
 */
typedef enum OH_Camera_OISMode {
    /**
     * OIS is disabled.
     * @since 24
     */
    OH_CAMERA_OIS_MODE_OFF = 0,

    /**
     * OIS is controlled automatically.
     * @since 24
     */
    OH_CAMERA_OIS_MODE_AUTO = 1,

    /** 
     * OIS is controlled by the application.
     * @since 24
     */
    OH_CAMERA_OIS_MODE_CUSTOM = 2
} OH_Camera_OISMode;

/**
 * @brief Enum for OIS (Optical Image Stabilization) axes.
 *
 * @since 24
 * @version 1.0
 */
typedef enum OH_Camera_OISAxes {
    /**
     * Pitch axis: up-and-down rotation of the camera body.
     * Rotation around the horizontal axis through the lens.
     * @since 24
     */
    OH_CAMERA_OIS_AXES_PITCH = 0,

    /**
     * Yaw axis: side-to-side rotation of the camera body.
     * Rotation around the vertical axis.
     * @since 24
     */
    OH_CAMERA_OIS_AXES_YAW = 1
} OH_Camera_OISAxes;

/**
 * @brief Describes the zoom point info.
 *
 * @since 26.0.0
 */
typedef struct OH_Camera_ZoomPointInfo {
    /**
     * Zoom ratio.
     * @since 26.0.0
     */
    float zoomRatio;

    /**
     * Equivalent focal length.
     * @since 26.0.0
     */
    uint32_t equivalentFocalLength;
} OH_Camera_ZoomPointInfo;

/**
 * @brief Enumerates camera notification names.
 *
 * @since 26.0.0
 */
typedef enum OH_Camera_NotificationName {
    /**
     * Camera defocus notification caused by close proximity.
     *
     * The corresponding value type is {@link OH_Camera_ProximityStateForFocus}.
     * @since 26.0.0
     */
    OH_CAMERA_DEFOCUS_FROM_PROXIMITY = 0,
} OH_Camera_NotificationName;

/**
 * @brief Enumerates proximity states for focus.
 *
 * @since 26.0.0
 */
typedef enum OH_Camera_ProximityStateForFocus {
    /**
     * The device is within a reasonable range, and no raising action is required.
     *
     * @since 26.0.0
     */
    OH_CAMERA_PROXIMITY_STATE_IN_RANGE_RAISE_NONE = 0,
    /**
     * The device is out of the reasonable range, and the device needs to be raised.
     *
     * @since 26.0.0
     */
    OH_CAMERA_PROXIMITY_STATE_OUT_OF_RANGE_RAISE_REQUIRED = 1,
} OH_Camera_ProximityStateForFocus;

/**
 * @brief Describes the camera rect ext.
 *
 * @since 26.0.0
 * @version 1.0
 */
typedef struct OH_Camera_Rect_Ext {
    /**
     * X coordinate of the top-left corner of the rectangle, in the range of [0, 1].
     * @since 26.0.0
     */
    double topLeftX;

    /**
     * Y coordinate of the top-left corner of the rectangle, in the range of [0, 1].
     * @since 26.0.0
     */
    double topLeftY;

    /**
     * Width of the rectangle, in the range of [0, 1].
     * @since 26.0.0
     */
    double width;

    /**
     * Height of the rectangle, in the range of [0, 1].
     * @since 26.0.0
     */
    double height;
} OH_Camera_Rect_Ext;

/**
 * @brief Enum for metadata object emotion.
 *
 * @since 26.0.0
 * @version 1.0
 */
typedef enum OH_Camera_MetadataObjectEmotion {
    /**
     * Quiet and calm.
     * @since 26.0.0
     */
    OH_CAMERA_METADATA_OBJECT_EMOTION_NEUTRAL = 0,

    /**
     * Sadness.
     * @since 26.0.0
     */
    OH_CAMERA_METADATA_OBJECT_EMOTION_SADNESS = 1,

    /**
     * Smile.
     * @since 26.0.0
     */
    OH_CAMERA_METADATA_OBJECT_EMOTION_SMILE = 2,

    /**
     * Surprise.
     * @since 26.0.0
     */
    OH_CAMERA_METADATA_OBJECT_EMOTION_SUR~PRISE = 3
} OH_Camera_MetadataObjectEmotion;

#ifdef __cplusplus
}
#endif

#endif // NATIVE_INCLUDE_CAMERA_CAMERA_H
/** @} */
xp[
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Open"
    },
        {
        "first_introduced": "12",
        "name": "OH_CameraInput_OpenSecureCamera"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Close"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Release"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_IsPhysicalCameraOrientationVariable"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_GetPhysicalCameraOrientation"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_UsePhysicalCameraOrientation"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_RegisterTorchStatusCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_UnregisterTorchStatusCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_IsCameraMuted"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCaptureSession"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput_WithPositionAndType"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePreviewOutput"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraManager_CreateDeferredPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePreviewOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputWithoutSurface"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreateVideoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateMetadataOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_DeleteSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupportedByTorchMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_SetTorchMode"
    },
    {
        "firs&t_introduced": "11",
        "name": "~B"
    },
    {
        "first_introduced": "11",
        "name": "M"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_RegisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_UnregisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSessionMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_AddSecureOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_BeginConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_CommitConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_HasFlash"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFlashModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsExposureModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetMeteringPoint"
    },
    {
        "first_introduced": "11",
        "name": " ""
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBiasRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFocusModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatioRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsVideoStabilizationModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetVideoStabilizationMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetVideoStabilizationMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddInput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_Preconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_PreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetExposureValue"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetFocalLength"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSmoothZoom"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetSupportedColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_DeleteColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetActiveColorSpace"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetActiveColorSpace"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture_WithCaptureSetting"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_PhotoOutput_EnableMirror"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_IsMovingPhotoSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetPhotoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoOutput_GetPhotoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_EnableMovingPhoto"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetPreviewRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_GetPreviewRotationWithoutDisplayRotation"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetPreviewRotation"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_EnableMirror"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetVideoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_VideoOutput_GetVideoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraDevice_GetCameraOrientation"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceName"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceType"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_GetMainImage"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_Release"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_RegisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_UnregisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_RegisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_UnregisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_IsAutoDeviceSwitchSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_EnableAutoDeviceSwitch"
    },
    {
   E     "first_introduced": "14",
        "name": "OH_CaptureSession_Setx"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraDevice"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetCameraDevices"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_DeleteCameraDevices"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraConcurrentInfos"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraInput_OpenConcurrentCameras"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_IsMacroSupported"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_EnableMacro"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsWhiteBalanceModeSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceRange"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsControlCenterSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_DeleteSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_EnableControlCenter"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterMacroStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterMacroStatusChangeCallback"
    },
    {
        "first_introduc-ed": "21",
        "name": "OH_PhotoOutput_Isx]Supported"
    },
    {
        "first_introduced": "21",
        "name": "OH_PhotoOutput_Setx"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_RegisterIsoChangeCallback"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_UnregisterIsoChangeCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_IsBandwidthCompressionSupported"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_EnableBandwidthCompression"
    },
    {
        "first_introduced": "24",
        "name": "OH_PreviewOutput_AddDeferredSurface"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetSupportedFullCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoNative_GetUncompressedImage"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_RegisterOcclusionDetectionCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_UnregisterOcclusionDetectionCallback"
   U },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_AdP"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_RemoveMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_CameraManager_CreateMetadataOutputWithObjectTypes"
    },
    {
    G    "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensEs"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_IsLogicalCamera"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLogicalCameraConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_DeleteConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensFocalLength"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetMinimumFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensDistortion"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetIntrinsicCalibration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPhysicalSize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPixelArraySize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsEb"`Supported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_Geta"W"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_Seta""
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedISORange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedPhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_DeletePhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedExposureDurationRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsFocusDistanceSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetRAWCaptureZoomRatioRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsOISModeSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedOISBiasRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentCustomOISBias"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_Get/"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISModeCustom"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_IsTorchLevelControlSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_SetTorchModeOnWithLevel"
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetColorTintRange"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetColorTint"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_SetColorTint"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_DeleteZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetNotificationName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_Get"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_Destroy"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_IsLockMetadataObjectTrackingSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_LockMetadataObjectTracking"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnlockMetadataObjectTracking"
    },
    {
       "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetMetadataObjectType"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetTimestamp"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetPitchAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetYawAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetRollAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetLeftEyeBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetRightEyeBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetEmotion"
   g },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_Destroy"
    }
]
zuxjF:\\
@B2R2s2K*2KK
JRS&׫Jk郕;;9ƻ;;8:yxD(*lv6 $ux9/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup MetadataObjectExt
 * @{
 *
 * @brief Provide the definition of the C interface for the camera module.
 *
 * @since 26.0.0
 * @version 1.0
 */
/**
 * @file metadata_object_ext.h
 *
 * @brief The file declares the metadata object ext concepts.
 * 
 * @library libohcamera.so
 * @kit CameraKit
 * @syscap SystemCapability.Multimedia.Camera.Core
 * @since 26.0.0
 * @version 1.0
 */

#ifndef NATIVE_INCLUDE_METADATA_OBJECT_EXT_H
#define NATIVE_INCLUDE_METADATA_OBJECT_EXT_H

#include <stdint.h>
#include <stdio.h>
#include "camera.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief The struct describes the camera metadata object ext.
 *
 * @since 26.0.0
 */
typedef struct OH_Camera_MetadataObjectExt OH_Camera_MetadataObjectExt;

/**
 * @brief Obtains metadata object type.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param type Pointer to the metadata object type, which is an **Camera_MetadataObjectType** instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode p*m(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    Camera_MetadataObjectType* type);

/**
 * @brief Obtains the timestamp of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param timestamp Pointer to store the timestamp.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_mARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode pm(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    int64_t* timestamp);

/**
 * @brief Obtains the bounding box of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param boundingBox Pointer to the metadata object bounding box, which is an **OH_Camera_Rect_Ext** instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @si nce 26.0.0
 */
Camera_ErrorCode pGetBoundingBox(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the pitch angle of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param pitchAngle Pointer to store the pitch angle.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PR`OPERTY_NOT_EXIST**: The optional property does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode pjn(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    float* pitchAngle);

/**
 * @brief Obtains the yaw angle of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param yawAngle Pointer to store the yaw angle.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional p>roperty does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode pGetYawAngle(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    float* yawAngle);

/**
 * @brief Obtains the roll angle of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param rollAngle Pointer to store the roll angle.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST**: ThJe optional property does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode p8o(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    float* rollAngle);

/**
 * @brief Obtains the left eye bounding box of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param boundingBox Pointer to the metadata object bounding box, which is an **OH_Camera_Rect_Ext** instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode po(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the right eye bounding box of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param boundingBox Pointer to the metadata object bounding box, which is an **OH_Camera_Rect_Ext** instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode pp(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the emotion of the metadata object extension.
 *
 * @param metadataObjectExt Pointer to a OH_Camera_MetadataObjectExt instance.
 * @param emotion Pointer to store the emotion type.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_ERROR_OPTIONAL_PROPERTY_NOT_EXIST**: LThe optional property does not exist.
 * @since 26.0.0
 */
Camera_ErrorCode pp
(const OH_Camera_MetadataObjectExt* metadataObjectExt,
    OH_Camera_MetadataObjectEmotion* emotion);

/**
 * @brief Destroys an array of {@link OH_Camera_MetadataObjectExt} instances.
 *
 * @param metadataObjectExt Pointer to the array of {@link OH_Camera_MetadataObjectExt} instances.
 * @param objectCount Indicates the number of metadata objects to be destroyed.
 * @since 26.0.0
 */
void p(OH_Camera_MetadataObjectExt** metadataObjectExt, uint32_t objectCount);
#ifdef __cplusplus
}
#endif

#endif // NATIVE_INCLUDE_METADATA_OBJECT_EXT_H
/** @} */a_AEqx)9]/*
 * Copyright (C) 2023W	OH_Camerab11,utpu1utpuUz11-CCAMERA_METADATAOUTPUT_H
#define NATIVE_INCLUDE_CAMERA_METADATAOUTPUA@#include "metadata_object_ext};Defines a struct for the metadata output object.<br>You can use the {@link OH_CameraManager_CreateMetadataOutput}
 *  method and **OH_CameraManager_CreateMetadataOutputWithObjectTypes** method (supported since API version 23) to
 * create a pointer.
 * 
 * @since 11
 * @version 1Camera_MetadataOutput Camera_MetadataOutput;

/**
 * @brief Defines the callback defined in the {@link MetadataOutput_Callbacks8} struct and used to report metadata
 * output data.
 * 1Iutput Pointer to the MetadataOutput instance that transfers the callback.1utput data.
 * @param size Size	.
 * @since 11
 */
typedef void (*OH_MetadataOutput_OnMetadataObjectAvailable)(Camera_MetadataOutput* metadataOutput,
    Camer* metadataObject, uint32_t sizefines the callback used to listen for metadata object ext available.
 *
 * @param context Pointer to the context provided by user.1(utput data.
 * @param size Size	Jtypedef void (*OH_MetadataOutput_OnMetadataObjectExtAvailable)(void* conte!!sizefines the callback defined in the {@link MetadataOutput_Callbacks} struct and used to report metadata
 * output errors.
 * 
 * 5utput Pointer to the MetadataOutput instance that transfers the callback.
 * @param errorCode Error code reported during metadata output.
 * @see CAMERA_SERVICE_FATAL_ERROR
 * @since 11
 */
typedef void (*OH_MetadataOutput_OnError)(Camera_MetadataOutput*+ metadataOutput, Camera_ErrorCode errorCodefines the callback used to listen for error ext event.
 *
 * @param context Pointer to the context provided by user.
 * @param XerrorCode Error code reported during metadata output.
 * @see CAMERA_SERVICE_FATAL_ERRORXtypedef void (*OH_MetadataOutput_OnErrorExt)(void* context, Camera_ErrorCode errorCode);+llbacks related to metadata output.
 * 
 * @see OH_MetadataOutput_RegisterCallback
 * @since 11
 * @version 1.0
 */
typedef strMetadataOutput_Callbacks {
    /**
     * Callback to report the metadata output result.
     */
    OH_MetadataOutput_OnMetadataObjectAvailable onMetadataObjectAvailable;

    /**
     * Callback to report a metadata output error.
     */
    OH_MetadataOutput_OnError onError;
} MetadataOutput_Callbacks;

/**
 * @brief Registers a callback to listen for metadata output events.
 * 1 utput Pointer to a MetadataOutpu1'callback Pointer to the target callback	@since 11"utput_RegisterCallback(Camera_MetadataOutput* metadataOutput,
    MetadataOutput_Callbacks* callback);

/**
 * @brief Unregiste>rs the callback used to listen for metadata output events.
 * 1 utput Pointer to a MetadataOutpu1'callback Pointer to the target callback	@since 11"utput_UnregisterCallback(Camera_MetadataOutput* metadataOutput,
    MetadataOutput_Callbacks* callback);

/**
 * @brief Registers a callback to listen forM%events.
 * The callback can be unregistered by {@link OH_MetadataOutput_UnregisterMetadataObjectExtAvailableCallback}.
 *
 * @p	2utput Pointer to the {@link Camera_MetadataOutput}context Pointer to the context provided by user.
 * @param callback Pointer to the {@link OH_MetadataOutput_OnMetadataObjectExtAvailable} callback function/utput_RegisterMetadataObjectExtAvailableCallback(Camera_MetadataOutput* metadataOutput,
    void* context, OH_MetadataOutput_OnMetadataObjectExtAvailable* callback);

/**
 * @brief Unregisters the callback used to listen for metadata object ext events.
 	 utput Pointer to a MetadataOutpu1bcontext Pointer to the context provided by user.
 * @param callback Pointer to the target callback/utput_UnregisterMetadataObjectExtAvailableCallback(Camera_MetadataOutput* metadataOutput,
    void* context, OH_MetadataOutput_OnMetadataObjectExtAvailable* callback);

/**
 * @brief Registers a callback to listen for error ext events.
 * The callback caIn be unregistered by {@link OH_MetadataOutput_UnregisterErrorExtCallback}	2utput Pointer to the {@link Camera_MetadataOutput}context Pointer to the context provided by user.
 * @param callback Pointer to the {@link OH_MetadataOutput_OnErrorExt} callbac
k function/utput_RegisterErrorExtCallback(Camera_MetadataOutput* metadataOutput, void* context,
    OH_MetadataOutput_OnErrorExt* callbackN);

/**
 * @brief Unregisters the callback used to listen for error ext events	 utput Pointer to a MetadataOutpu1bcontext Pointer to the context provided by user.
 * @param callback Pointer to the target callback/utput_UnregisterErrorExtCallback(Camera_MetadataOutput* metadataOutput, void* context,
    OH_MetadataOutput_OnErrorExt* callba/ck);

/**
 * @brief Starts metadata output.
 * 15utput Pointer to the MetadataOutput instance to start;SESSION_NOT_CONFIG**: The capture session is not configured/CSERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11"]utput_Start(Camera_MetadataOutput* metadataOutput);

/**
 * @brief Stops metadata output.
 * 14utput Pointer to the MetadataOutput instance to stopCSERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11"iutput_Stop(Camera_MetadataOutput* metadataOutput);

/**
 * @brief Releases a MetadataOutput instance.
 * 16utput Pointer to the MetadataOutput instance to releas1CSERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11"Iutput_Release(Camera_MetadataOutput* metadataOutput);

/**
 * @brief Adds
types.
 * 1 utput Pointer to a MetadataOutpu1Qtypes Array of metadata object types to be added to the **Camera_MetadataOutput**size Length	
type arrayCSERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 23"Eutput_AddMetadataObjectTypes (Camera_MetadataOutput* metadataOutput, n
)s, uint32_t size);

/**
 * @brief Removes
types.
 * 1 utput Pointer to a MetadataOutpu1Otypes Array of metadata object types removed from the **Camera_MetadataOutput**size Length	
type arrayCSERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 23"Hutput_RemoveMetadataObjectTypes (Camera_MetadataOutput* metadataOutput, n
_s, uint32_t size);

/**
 * @brief Checks whether the lock metadata object tracking is supported	autput Pointer to a MetadataOutput instance.
 * @return **true** if supported, **false** otherwisebool OH_MetadataOutput_IsLockMetadataObjectTrackingSupported(const Camera_MetadataOutput* metadataOutput);

/**
 * @brief Lock cmetadata object tracking, can be unlocked by {@link OH_MetadataOutput_UnlockMetadataObjectTracking}	 utput Pointer to a MetadataOutpu10pointOfInterest Pointer to the point of interest;SESSION_NOT_CONFIG**: The capture session is not configured/5SERVICE_FATAL_ERROR**: The camera service is abnormal4utput_LockMetadataObjectTracking(Camera_MetadataOutput* metadataOutput,
    Camera_Point* pointOfInterest);

/**
 * @brief Unlock metadata object tracking	!utput Pointer to a MetadataOutputz
;SESSION_NOT_CONFIG**: The capture session is not configured/5SERVICE_FATAL_ERROR**: The camera service is abnormal4Jutput_UnlockMetadataObjectTracking(Camera_MetadataOutput* metadataOutput);_#"CAMERA_METADATAOUTPUT_H
/** @} */
#Lfx]9/*
 * Copyright (c) 2026WMetadataObjectExtxb+	bject_ex1&ext concepts.
 *Pk+	METADATA_OBJECT_EXMETADATA_OBJECT_EX-@7mera	+typedef struct		-;

/**
 * @brief Obtains metadata object typea	# &
, which is an **	Type** instance@$bjectExt_GetMetadataObjectType(const	 metadataObjectExt,
    	1Type* type);

/**
 * @brief Obtains the timestamp$	extensiona	(timestamp Pointer to store the timestamp@bjectExt_GetTimestamp(const	T metadataObjectExt,
    int64_t* timestamp);

/**
 * @brief Obtains the bounding box$	extensiona	boundingBox &9bounding box, which is an **OH_Camera_Rect_Ext** instance@bjectExt_GetBoundingBox(const	` metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the pitch angle$	extensiona	+pitchAngle Pointer to store the pitch angle HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5bjectExt_GetPitchAngle(const	P metadataObjectExt,
    float* pitchAngle);

/**
 * @brief Obtains the yaw angle$	extensiona	'yawAngle Pointer to store the yaw angle HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5bjectExt_GetYawAngle(const	O metadataObjectExt,
    float* yawAngle);

/**
 * @brief Obtains the roll angle$	extensiona	)rollAngle Pointer to store the roll angle HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5bjectExt_GetRollAngle(const	[ metadataObjectExt,
    float* rollAngle);

/**
 * @brief Obtains the left eye bounding box$	extensiona	boundingBox &9bounding box, which is an **OH_Camera_Rect_Ext** instance HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5$bjectExt_GetLeftEyeBoundingBox(const	k metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the right eye bounding box$	extensiona	boundingBox &9bounding box, which is an **OH_Camera_Rect_Ext** instance HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5%bjectExt_GetRightEyeBoundingBox(const	\ metadataObjectExt,
    OH_Camera_Rect_Ext* boundingBox);

/**
 * @brief Obtains the emotion$	extensiona	)emotion Pointer to store the emotion type HERROR_OPTIONAL_PROPERTY_NOT_EXIST**: The optional property does not exis5bjectExt_GetEmotion(const	 metadataObjectE	!5motion* emotion);

/**
 * @brief Destroys an array of%instancearray of%Yinstances.
 * @param objectCount Indicates the number of metadata objects to be destroyed+"void OH_MetadataObjectExt_Destroy(	:
objectCoun.:METADATA_OBJECT_EXT_H
/** @} */k$xKt9[
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Open"
    },
        {
        "first_introduced": "12",
        "name": "OH_CameraInput_OpenSecureCamera"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Close"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Release"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_IsPhysicalCameraOrientationVariable"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_GetPhysicalCameraOrientation"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_UsePhysicalCameraOrientation"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_RegisterTorchStatusCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_UnregisterTorchStatusCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_IsCameraMuted"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCaptureSession"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput_WithPositionAndType"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePreviewOutput"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraManager_CreateDeferredPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePreviewOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputWithoutSurface"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreateVideoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateMetadataOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_DeleteSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupportedByTorchMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_SetTorchMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_GetCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_DeleteCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_RegisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_UnregisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSessionMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_AddSecureOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_BeginConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_CommitConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_HasFlash"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFlashModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsExposureModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetMeteringPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetMeteringPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBiasRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFocusModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatioRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsVideoStabilizationModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetVideoStabilizationMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetVideoStabilizationMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddInput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_Preconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_PreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetExposureValue"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetFocalLength"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSmoothZoom"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetSupportedColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_DeleteColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetActiveColorSpace"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetActiveColorSpace"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture_WithCaptureSetting"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_PhotoOutput_EnableMirror"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_IsMovingPhotoSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetPhotoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoOutput_GetPhotoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_EnableMovingPhoto"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetPreviewRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_GetPreviewRotationWithoutDisplayRotation"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetPreviewRotation"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_EnableMirror"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetVideoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_VideoOutput_GetVideoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraDevice_GetCameraOrientation"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceName"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceType"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_GetMainImage"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_Release"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_RegisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_UnregisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_RegisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_UnregisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_IsAutoDeviceSwitchSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_EnableAutoDeviceSwitch"
    },
    {
        "first_introduced": "14",
        "name": "OH_CaptureSession_SetQualityPrioritization"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraDevice"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetCameraDevices"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_DeleteCameraDevices"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraConcurrentInfos"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraInput_OpenConcurrentCameras"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_IsMacroSupported"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_EnableMacro"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsWhiteBalanceModeSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceRange"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsControlCenterSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_DeleteSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_EnableControlCenter"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterMacroStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterMacroStatusChangeCallback"
    },
    {
        "first_introduced": "21",
        "name": "OH_PhotoOutput_IsPhotoQualityPrioritizationSupported"
    },
    {
        "first_introduced": "21",
        "name": "OH_PhotoOutput_SetPhotoQualityPrioritization"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoOutput_CreatePhotoCaptureSettingExt"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoCaptureSettingExt_SetCompressionQuality"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoCaptureSettingExt_SetImageRotation"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoCaptureSettingExt_SetMirror"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoOutput_DestroyPhotoCaptureSettingExt"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoCaptureSettingExt_SetLocation"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoOutput_EnableAutoExtendedGainmapDelivery"
    },
    {
        "first_introduced": "26",
        "name": "OH_PhotoOutput_IsAutoExtendedGainmapDeliverySupported"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_RegisterIsoChangeCallback"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_UnregisterIsoChangeCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_IsBandwidthCompressionSupported"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_EnableBandwidthCompression"
    },
    {
        "first_introduced": "24",
        "name": "OH_PreviewOutput_AddDeferredSurface"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetSupportedFullCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoNative_GetUncompressedImage"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_RegisterOcclusionDetectionCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_UnregisterOcclusionDetectionCallback"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_AddMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_RemoveMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_CameraManager_CreateMetadataOutputWithObjectTypes"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensEquivalentFocalLengths"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_IsLogicalCamera"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLogicalCameraConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_DeleteConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensFocalLength"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetMinimumFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensDistortion"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetIntrinsicCalibration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPhysicalSize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPixelArraySize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsExposureMeteringModeSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetExposureMeteringMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetExposureMeteringMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedISORange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedPhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_DeletePhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedExposureDurationRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsFocusDistanceSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetRAWCaptureZoomRatioRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsOISModeSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedOISBiasRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentCustomOISBias"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorColorFilterArrangement"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISModeCustom"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_IsTorchLevelControlSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_SetTorchModeOnWithLevel"
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetColorTintRange"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetColorTint"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_SetColorTint"  
    },
    {
        "first_introduced": "26",
        "name": "OH_CaptureSession_GetZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_DeleteZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetNotificationName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetProximityStateForFocus"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_Destroy"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_IsLockMetadataObjectTrackingSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_LockMetadataObjectTracking"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutpdut_UnlockMetadataObjectTracking"
    },
    {
       "first_introduced": "26.0.0",
        "name": "F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "		F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "
F"
    },
    {
        "first_introduced": "26.0.0",
        "name": " F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ORollAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "'F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "MEmotion"
    },
    {
        "first_introduced": "26.0.0",
        "name": "Destroy"
    }
]
H([x   ݛ/*
 * Copyright (C) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup OH_Camera
 * @{
 *
 * @brief Provide the definition of the C interface for the camera module.
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file capture_session.h
 *
 * @brief The file declares the capture session concepts.
 * 
 * @library libohcamera.so
 * @kit CameraKit
 * @syscap SystemCapability.Multimedia.Camera.Core
 * @since 11
 * @version 1.0
 */

#ifndef NATIVE_INCLUDE_CAMERA_CAMERA_SESSION_H
#define NATIVE_INCLUDE_CAMERA_CAMERA_SESSION_H

#include <stdint.h>
#include <stdio.h>
#include "camera.h"
#include "camera_input.h"
#include "preview_output.h"
#include "photo_output.h"
#include "video_output.h"
#include "metadata_output.h"
#include "native_buffer/native_buffer.h"
#include "camera_notification_info.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief The struct describes the capture session object.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_CaptureSession Camera_CaptureSession;

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report focus status
 * changes of a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param focusState Focus status.
 * @since 11
 */
typedef void (*OH_CaptureSession_OnFocusStateChange)(Camera_CaptureSession* session, Camera_FocusState focusState);

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report capture
 * session errors.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param errorCode Error code reported in a capture session.
 * @see CAMERA_SERVICE_FATAL_ERROR
 * @since 11
 */
typedef void (*OH_CaptureSession_OnError)(Camera_CaptureSession* session, Camera_ErrorCode errorCode);

/**
 * @brief Defines the callback invoked when smooth zoom is triggered for a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfo Pointer to the smooth zoom information passed by the callback.
 * @since 12
 */
typedef void (*OH_CaptureSession_OnSmoothZoomInfo)(Camera_CaptureSession* session,
    Camera_SmoothZoomInfo* smoothZoomInfo);

/**
 * @brief Capture session device switch status callback.
 *
 * @param session the {@link Camera_CaptureSession} which deliver the callback.
 * @param autoDeviceSwitchStatusInfo the {@link Camera_AutoDeviceSwitchStatusInfo} which delivered by the callback.
 * @since 13
 */
typedef void (*OH_CaptureSession_OnAutoDeviceSwitchStatusChange)(Camera_CaptureSession* session,
    Camera_AutoDeviceSwitchStatusInfo* autoDeviceSwitchStatusInfo);

/**
 * @brief Defines the callback used to listen for capture system pressure level changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevel Pointer to the system pressure level passed byC the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_On.I)(Camera_CaptureSession* session,
    Camera_SystemPressureLevel systemPressureLevel);

/**
 * @brief The struct describes the 4callbacks related to a capture session.
 * 
 * @see R
 * @since 11
 * @version 1.0
 */
typedef struct CaptureSession_Callbacks {
    /**
     * Callback to report a focus status change of a capture session.
     */
    OH_CaptureSession_OnFocusStateChange onFocusStateChange;

    /**
     * Callback to report a capture session error.
     */
    OH_CaptureSession_OnError onError;
} CaptureSession_Callbacks;

/**
 * @brief Registers a callback to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param callback Pointer to the target callback.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 11
 */
Camera_ErrorCode R(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Unregisters the callback used to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param callback Pointer to the target callback.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 11
 */
Camera_ErrorCode OH_CaptureSessiICallback(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Registers a callback to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode OH_CapR(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Unregisters the callback used to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode I(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Sets a session 0mode.
 * This API cannot be called after {@link 8E}.
 * You are advised to call this function immediately after {@link `ptureSession}.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param sceneMode Scene mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SESSION_CWONFIG_LOCKED**: The session configuration is locked.
 * @since 12
 */
Camera_ErrorCode 1etSessionMode(Camera_CaptureSession* session, Camera_SceneMode sceneMode);

/**
 * @brief Marks a preview output stream as secure output.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput Pointer to the target Camera_PreviewOutput instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 12
 */
Camera_ErrorCode !(Camera_CaptureSession* session, Camera_PreviewOutput* previewOutput);

/**
 * @brief Starts the configuration for a capture session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMEcRA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 11
 */
Camera_ErrorCode 8(Camera_CaptureSession* session);

/**
 * @brief Commits the configuration for a capture session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */
Camera_ErrorCode (Camera_CaptureSession* session);

/**
 * @brief Adds a Camera_Input instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to add.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode OH_CaptureSession_AddInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Removes a Camera_Input instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to remove.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not al)lowed.
 * @since 11
 */
Camera_ErrorCode RmoveInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Adds a PreviewOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput Pointer to the PreviewOutput instance to add.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode "(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Removes a PreviewOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput Pointer to the PreviewOutput instance to remove.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not +allowed.
 * @since 11
 */
Camera_ErrorCode R*(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Adds a PhotoOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photoOutput Pointer to the PhotoOutput instance to add.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode } (Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Removes a PhotoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photoOutput Pointer to the PhotoOutput instance to remove.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode RmovePhotoOutput(Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Adds a **VideoOutput** instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutput Pointer to the **VideoOutput** instance to add.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not, allowed.
 * @since 11
 */
Camera_ErrorCode D (Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Removes a VideoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutput Pointer to the VideoOutput instance to remove.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode R(Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Adds a MetadataOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param metadataOutput Pointer to the MetadataOutput instance to add.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */
Camera_ErrorCode #(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Removes a MetadataOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param metadataOutput Pointer to the MetadataOutput instance to remove.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is0 not allowed.
 * @since 11
 */
Camera_ErrorCode R(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Starts a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance to start.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 *  @since 11
 */
Camera_ErrorCode 1art(Camera_CaptureSession* session);

/**
 * @brief Stops a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance to stop.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal$.
 * @since 11
 */
Camera_ErrorCode 1(Camera_CaptureSession* session);

/**
 * @brief Releases a CaptureSession instance.
 * 
 * @param session Pointer to the Camera_CaptureSession instance to release.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service /is abnormal.
 * @since 11
 */
Camera_ErrorCode Rlease(Camera_CaptureSession* session);

/**
 * @brief Checks whether the device has flash.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param hasFlash Pointer to the check result for whether the device has flash. **true** if the device has flash, **
 * false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_CaptureSession_HasFlash(Camera_CaptureSession* session, bool* hasFlash);

/**
 * @brief Checks whether a flash mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to check.
 * @param isSupported Pointer to the check result for the support of the flash mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOTT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode @&(Camera_CaptureSession* session,
    Camera_FlashMode flashMode, bool* isSupported);

/**
 * @brief Obtains the flash mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Pointer to the flash mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode a	(Camera_CaptureSession* session, Camera_FlashMode* flashMode);

/**
 * @brief Sets a flash mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_CaptureSe=(Camera_CaptureSession* session, Camera_FlashMode flashMode);

/**
 * @brief Capture session flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param flashState The {@link OH_Camera_FlashState} which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnFlashStateChange)(const Camera_CaptureSession* session, OH_Camera_FlashState flashState);

/**
 * @brief Register flash state change event callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The {@link OH_CaptureSession_OnFlashStateChange} to be registered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALaID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */
Camera_ErrorCode R[(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Unregister flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The {@link OH_CaptureSession_OnFlashStateChange} to be unregistered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */
Camera_ErrorCode I\(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Defines a callback function that is invoked when the exposure state changes.
 *
 * @param context Indicates the pointer to the user-defined context.
 * @param exposureState Indicates the current exposure state.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnExposureStateChange)(void* context, OH_Camera_ExposureState exposureState);

/**
 * @brief Registers a callback for exposure state changes.
 *
 * After this callback is registered, the callback is invoked when the exposure state changes in the
 * capture session.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context.
 * @param callback {@link OH_CaptureSession_OnExposureStateChange} Indicates the callback to register.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter7 type incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode R0g(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Unregisters the callback for exposure state changes.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context specified when the callback was registered.
 * @param callback {@link OH_CaptureSession_OnExposureStateChange} Indicates the callback to unregister.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode g7(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Checks whether an exposure mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to check.
 * @param isSupported Pointer to the check result for the support of the exposure mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The captur?e session is not configured.
 * @since 11
 */
Camera_ErrorCode @n\	odeSupported(Camera_CaptureSession* session,
    Camera_ExposureMode exposureMode, bool* isSupported);

/**
 * @brief Obtains the exposure mode in use. This API directly returns an invalid value if you have not set the exposure
 * mode using {@link OH_Ca6
Mode}.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Pointer to the exposure mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode a(Camera_CaptureSession* session, Camera_ExposureMode* exposureMode);

/**
 * @brief Checks whether the specified white balance mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @param isSupported Pointer to the check result for the support of the specified white balance mode. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera s=ession is not configured.
 * @since 20
 */

Camera_ErrorCode @F(Camera_CaptureSession* session,
    Camera_WhiteBalanceMode whiteBalanceMode, bool* isSupported);

/**
 * @brief Obtains the white balance mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode Pointer to the white balance mode.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera se=ssion is not configured.
 * @since 20
 */


Camera_ErrorCode a-G(Camera_CaptureSession* session, Camera_WhiteBalanceMode* whiteBalanceMode);

/**
 * @brief Sets a white balance mode.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @return **CAMERA_OK**: The setting is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */


Camera_ErrorCode 1H(Camera_CaptureSession* session, Camera_WhiteBalanceMode whiteBalanceMode);

/**
 * @brief Obtains the supported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minColorTemperature Pointer to the minimum supported color temperature, in Kelvin.
 * @param maxColorTemperature Pointer to the maximum supported color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera sessio9n is not configured.
 * @since 20
 */


Camera_ErrorCode a-GG(Camera_CaptureSession* session, int32_t *minColorTemperature, int32_t *maxColorTemperature);

/**
 * @brief Obtains the white balance color temperature.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature Pointer to the white balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOVT_CONFIG**: The camera session is not configured.
 * @since 20
 */


Camera_ErrorCode a-G(Camera_CaptureSession* session, int32_t *colorTemperature);


/**
 * @brief Sets the white balance color temperature.
 * Befor8e setting this parameter, you are advised to use {@link a-GG} to obtain the
 * supported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature White balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The setting is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CfAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */


Camera_ErrorCode 1H(Camera_CaptureSession* session, int32_t colorTemperature);

/**
 * @brief Obtains the supported white balance color tint range.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param minColorTint Pointer to the minimum color tint.
 * @param maxColorTint Pointer to the maximum color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} is returned if an input parameter
                is missing or the parameter type is incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} is returned if the sessionV is not configured when the function is called.
 * @since 26.0.0
 */
Camera_ErrorCode ai(const Camera_CaptureSession* session,
    int32_t *minColorTint, int32_t *maxColorTint);

/**
 * @brief Obtains the white balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Pointer to the color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} is returned if an input
                parameter is missing or the parameter type is incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */
Camera_ErrorCode ai	(const Camera_CaptureSession* session, int32_t *colorTint);

/**
 * @brief Sets the white balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} is returned if an input parameter is missing
                or the parameter type is incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} isn returned if the session is not configured when the function is called.
 * @since 26.0.0
 */
Camera_ErrorCode 1etColorTint(const Camera_CaptureSession* session, int32_t colorTint);

/**
 * @brief Sets an exposure mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode 1
Mode(Camera_CaptureSession* session, Camera_ExposureMode exposureMode);

/**
 * @brief Obtains the metering point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param point Pointer to the metering point.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode a(Camera_CaptureSession* session, Camera_Point* point);

/**
 * @brief Sets the metering point, which is the center point of the metering rectangle.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param point Metering point to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode 1(Camera_CaptureSession* session, Camera_Point point);

/**
 * @brief Check whether a specified exposure metering mode is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode The {@link OH_Camera_ExposureMeteringMode} to be checked.
 * @param isSupported Pointer to the result of whether exposure mode supported.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode @n\(const Camera_CaptureSession* session,
    OH_Camera_ExposureMeteringMode exposureMeteringMode, bool* isSupported);

/**
 * @brief Get current exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode Pointer to the {@link OH_Camera_ExposureMeteringMode} instance.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_QNOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode a\(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode* exposureMeteringMode);

/**
 * @brief Set exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode The target {@link OH_Camera_ExposureMeteringMode} to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session n-ot config.
 * @since 24
 */
Camera_ErrorCode 1
\(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode exposureMeteringMode);

/**
 * @brief Query the iso range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minIsoValue the minimum of iso value.
 * @param maxIsoValue the Maximum of iso value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 !* @since 24
 */
Camera_ErrorCode a~`	ISORange(const Camera_CaptureSession* session,
    int32_t *minIsoValue, int32_t *maxIsoValue);

/**
 * @brief Get current iso sensitivity value, as defined in ISO 12232:2006.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isoValue Pointer to the current iso sensitivity value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the ca<pture session not config.
 * @since 24
 */
Camera_ErrorCode aIso(const Camera_CaptureSession* session, int32_t* isoValue);

/**
 * @brief Sets ISO sensitivity value, within the range of getSupportedIsoRange. This control is only effective if
 * ExposureMode is set to EXPOSURE_MODE_LOCKED.
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isoValue Indicates target iso value to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAME\RA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode 1etIso(const Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Defines the callback used to listen for ISO changes in a camera session.
 * 
 * @param session Pointer to the **Camera_CaptureSession** instance.
 * @param isoValue ISO value obtained in the callback.
 * @since 22
 */
typedef void (*OH_CaptureSession_OnIsoChange)(Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Registers a callback to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to listen for ISO changes.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing orD the parameter type is incorrect.
 * @since 22
 */
Camera_ErrorCode R+(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Unregisters the callback used to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to listen for ISO changes.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 22
 */
Camera_ErrorCode IR(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Gets the supported physical apertGures list. 
 * Release the physical apertures memory by calling {@link 0_)}.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param apertures pointer to an array for storing physical aperture values
 * @param size the size of physical apertures.
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not c)onfig.
 * @since 24
 */
Camera_ErrorCode a~`	^(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture** apertures, uint32_t* size);

/**
 * @brief Gets the current physical aperture value
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param aperture returned current aperture value
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_Capg_(const Camera_CaptureSession* session, double* aperture);

/**
 * @brief Delete the physical apertures.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param apertures pointer to an array for storing physical aperture values
 * @param size the array size of the physical apertures.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAkMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */
Camera_ErrorCode 0_)(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture* apertures, uint32_t size);

/**
 * @brief Set physical aperture value.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param aperture the aperture value to set
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@elink CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode 1`(const Camera_CaptureSession* session, double aperture);

/**
 * @brief Obtains the exposure compensation values of the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minExposureBias Pointer to the minimum exposure compensation value.
 * @param maxExposureBias Pointer to the maximum exposure compensation value.
 * @param step Pointer to the exposure compensation step.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session i4s not configured.
 * @since 11
 */
Camera_ErrorCode a&(Camera_CaptureSession* session, float* minExposureBias,
    float* maxExposureBias, float* step);

/**
 * @brief Sets an exposure compensation value for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureBias Exposure compensation value to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture> session is not configured.
 * @since 11
 */
Camera_ErrorCode 1(Camera_CaptureSession* session, float exposureBias);

/**
 * @brief Obtains the exposure compensation value in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureBias Pointer to the exposure compensation value.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode a!(Camera_CaptureSession* session, float* exposureBias);

/**
 * @brief Get the supported range of exposure durations. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param minExposureDuration Pointer to the minimum of exposure duration.
 * @param maxExposureDuration Pointer to the maximum of exposure duration.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *     k    {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode a~`(const Camera_CaptureSession* session, int32_t* minExposureDuration,
    int32_t* maxExposureDuration);

/**
 * @brief Set exposure duration. Units: Microseconds.
 * If the sensor can't expose this duration exactly, it will shorten the duration to the nearest supported value, which is
 * reporeted by Callback {@link OH_CaptureSession_OnExposureDurationChange}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDuration the target exposure duration to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_Captu9
Duration(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Get current exposure duration. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDuration Pointer to the current exposure duration.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode aDuration(const Camera_CaptureSession* session, int32_t* exposureDuration);

/**
 * @brief Capture session exposure duration change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param exposureDuration The exposure duration which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnExposureDurationChange)(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Register exposure info change event callback.
 *    After exposure parameters are changed, the system will returns the updated exposure infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange The {@link OH_CaptureSession_OnExposureDurationChange} to be registered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 * {@link CAMERA_INVALID_ARGUMENTV} if parameter missing or parameter type incorrect.
 * @since 24
 */
Camera_ErrorCode R0ga(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange);

/**
 * @brief Unregister exposure info change callback.Invoke this method after finishing camera operations.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange The {@link OH_CaptureSession_OnExposureDurationChange} to be unregistered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 * {@link CAMERA_INVALID_ARGUMENT} if parameKter missing or parameter type incorrect.
 * @since 24
 */
Camera_ErrorCode g$a(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange); 

/**
 * @brief Checks whether a focus mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to check.
 * @param isSupported Pointer to the check result for the support of the focus mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session 5is not configured.
 * @since 11
 */
Camera_ErrorCode @(Camera_CaptureSession* session,
    Camera_FocusMode focusMode, bool* isSupported);

/**
 * @brief Obtains the focus mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Pointer to the focus mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode abMode(Camera_CaptureSession* session, Camera_FocusMode* focusMode);

/**
 * @brief Sets a focus mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_Captu9j(Camera_CaptureSession* session, Camera_FocusMode focusMode);

/**
 * @brief Obtains the focal point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Pointer to the focal point.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_CafbPoint(Camera_CaptureSession* session, Camera_Point* focusPoint);

/**
 * @brief Sets a focal point for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Focal point to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_Capt8+(Camera_CaptureSession* session, Camera_Point focusPoint);

/**
 * @brief Obtains the supported zoom ratio range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minZoom Pointer to the minimum zoom ratio.
 * @param maxZoom Pointer to the maximum zoom ratio.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture sess9ion is not configured.
 * @since 11
 */
Camera_ErrorCode a(Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**
 * @brief Obtains the zoom ratio in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Pointer to the zoom ratio.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_Capturj	(Camera_CaptureSession* session, float* zoom);

/**
 * @brief Sets a zoom ratio for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Target zoom ratio.
 * It takes some time for the zoom ratio to take effect at the bottom layer. To obtain the correct zoom ratio, you need
 * to wait for one to two frames.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode OH_Cap7etZoomRatio(Camera_CaptureSession* session, float zoom);

/**
 * @brief Checks whether a video stabilization mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Video stabilization mode to check.
 * @param isSupported Pointer to the check result for the support of the video stabilization mode. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
" * @since 11
 */
Camera_ErrorCode @(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode, bool* isSupported);

/**
 * @brief Obtains the video stabilization mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Pointer to the video stabilization mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not .configured.
 * @since 11
 */
Camera_ErrorCode a( (Camera_CaptureSession* session,
    Camera_VideoStabilizationMode* mode);

/**
 * @brief Sets a video stabilization mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Video stabilization mode to set.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */
Camera_ErrorCode 1 (Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode);

/**
 * @brief Checks whether a Camera_Input instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to check.
 * @param isSuccessful Pointer to the check result for whether the Camera_Input instance can be added to the session. **
 * true** if it can be added to the session, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incor(rect.
 * @since 12
 */
Camera_ErrorCode  (Camera_CaptureSession* session,
    Camera_Input* cameraInput, bool* isSuccessful);

/**
 * @brief Checks whether a PreviewOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PreviewOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PreviewOutput instance can be added to the session. *
 * *true** if it can be added to the session, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the paramete7r type is incorrect.
 * @since 12
 */
Camera_ErrorCode  PreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a PhotoOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PhotoOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PhotoOutput instance can be added to the session. **
 * true** if it can be added to the session, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missingG or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode  !(Camera_CaptureSession* session,
    Camera_PhotoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a **VideoOutput** instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the **VideoOutput** instance to check.
 * @param isSuccessful Pointer to the check result for whether the VideoOutput instance can be added to the session. **
 * true** if it can be added to the session, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the@ parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode  0"(Camera_CaptureSession* session,
    Camera_VideoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a preconfigured resolution type is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resolution type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode }"(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, bool* canPreconfig);

/**
 * @brief Checks whether a preconfigured resolution type with an aspect ratio is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resolution type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**:^ A parameter is missing or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode "'(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio, bool* canPreconfig);

/**
 * @brief Sets a preconfigured resolution type.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */
Camera_ErrorCode OH_CaptureSession_Preconfig(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType);

/**
 * @brief Sets a preconfigured resolution type with an aspect ratio.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FAOTAL_ERROR**: The camera service is abnormal.
 * @since 12
 */
Camera_ErrorCode #$(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio);

/**
 * @brief Obtains the exposure value.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureValue Pointer to the exposure value.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abn)ormal.
 * @since 12
 */
Camera_ErrorCode aValue(Camera_CaptureSession* session, float* exposureValue);

/**
 * @brief Obtains the current focal length.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focalLength Pointer to the focal length.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */
Camera_ErrorCode OHcFocalLength(Camera_CaptureSession* session, float* focalLength);

/**
 * @brief Check whether focus distance is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isSupported Pointer to the result of whether focus distance is supported.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not co(nfig.
 * @since 24
 */
Camera_ErrorCode @wc(const Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Get current focus distance, ranging from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDistance Pointer to the current focus distance.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_Capgb(const Camera_CaptureSession* session, float* focusDistance);

/**
 * @brief Sets focus distance. Possible distance values range from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDistance The focus distance to be set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_4etFocusDistance(const Camera_CaptureSession* session, float focusDistance);

/**
 * @brief Sets smooth zoom.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param targetZoom Target zoom ratio.
 * @param smoothZoomMode Smooth zoom mode.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */
Camera_ErrorCode 1etSmoothZoom(Camera_CaptureSession* session,
    float targetZoom, Camera_SmoothZoomMode smoothZoomMode);

/**
 * @brief Obtains the supported color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Double pointer to the list of supported color spaces, which are defined in the
 * OH_NativeBuffer_ColorSpace struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported color spaces.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */
Camera_ErrorCode OH_Captui~`	N%(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace** colorSpace, uint32_t* size);

/**
 * @brief Deletes color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer to the list of color spaces, which are defined in the OH_NativeBuffer_ColorSpace struct.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 12
 */
Camera_ErrorCode 0_ColorSpaces(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Obtains the active color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer to the OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not .configured.
 * @since 12
 */
Camera_ErrorCode a&(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Sets the active color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Target OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */
Camera_ErrorCode 1z&(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace colorSpace);

/**
 * @brief Register device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitchStatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be registered.
 * @return {@link #CAMERA_OK} if the method call succeeds.
 *         {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 13
 */
Camera_ErrorCode OH_CaptRA(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Unregister device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitchStatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be unregistered.
 * @return {@link #CAMERA_OK} if the method call succeeds.
 *         {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrec%t.
 * @since 13
 */
Camera_ErrorCode IEB(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Check whether auto device switch is supported.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param isSupported the result of whether auto device switch supported.
 * @return {@link #CAMERA_OK} if the method call succeeds.
 *         {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link #CAMERA_SESSION_NOTN_CONFIG} if the capture session not config.
 * @since 13
 */
Camera_ErrorCode @B(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enable auto switch or not for the camera device.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param enabled the flag of enable auto switch or not.
 * @return {@link #CAMERA_OK} if the method call succeeds.
 *         {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link #CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 *         {@link #CAMERA_SERVICE_FMATAL_ERROR} if camera service fatal error.
 * @since 13
 */
Camera_ErrorCode C((Camera_CaptureSession* session, bool enabled);

/**
 * @brief Set quality prioritization.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param qualityPrioritization the target {@link Camera_QualityPrioritization} to set.
 * @return {@link #CAMERA_OK} if the method call succeeds.
 *         {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link #CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 14
 */
Camera_ErrorCode 1C(
    Camera_CaptureSession* session, Camera_QualityPrioritization qualityPrioritization);

/**
 * @brief Checks whether macro photography is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of macro photography. **true** if supported, **false**
 * otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 19
 */
Camera_ErrorCode @E(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enables or disables macro photography for the camera device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable or disable macro capability. **true** to enable, **false** otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.@A
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.#
 * @since 19
 */
Camera_ErrorCode JF(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isMacroDetected Whether the camera is in macro mode. **true** if the camera is in macro mode, **false**
 * otherwise.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnMacroStatusChange)(Camera_CaptureSession* session, bool isMacroDetected);

/**
 * @brief Registers a callback to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode RL(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Unregisters the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode IUM(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Registers a callback to listen for capture system pressure level changes.
 *
 * @param session Pointer to the Camera_CaptureSession instance tha%t transfers the callback.
 * @param s/I/ Target callback, which is OH_CaptureSession_On.I.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the ?parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode R.I!9(Camera_CaptureSession* session,
    OH_CaptureSession_On.I s/I);

/**
 * @brief Unregisters the callback used to listen for capture system pressure level changes.
 * 
 * @param session PoinRter to the Camera_CaptureSession instance that transfers the callback.
 * @param s/I/ Target callback, which is OH_CaptureSession_On.I.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the ?parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode I=9(Camera_CaptureSession* session,
    OH_CaptureSession_On.I s/I);

/**
 * @brief Checks whether the camera controller is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of the camera controller. **true** if supported, **
 * false** otherwise.
 * @return **CAMERA_OK = 0**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is 2not configured.
 * @since 20
 */
Camera_ErrorCode J*(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Obtains the effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Double pointer to the list of supported effect types, which are defined in the
 * Camera_ControlCenterEffectType struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported effect types.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSIZON_NOT_CONFIG**: The capture session is not configured.
 * @since 20
 */
Camera_ErrorCode a~`
J
(
    Camera_CaptureSession* session, Camera_ControlCenterEffectType** types, uint32_t* size);

/**
 * @brief Deletes the effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Pointer to the list of effect types, which are defined in the Camera_ControlCenterEffectType struct.
 * @param size Size of the list of supported effect types.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARgGUMENT**: A parameter is missing or the parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode 0_J(Camera_CaptureSession* session,
    Camera_ControlCenterEffectType* types, uint32_t size);

/**
 * @brief Enables or disables the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable the camera controller. **true** to enable, **false** otherwise.
 * @return **CAMERA_OK = 0**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnor'mal.
 * @since 20
 */
Camera_ErrorCode UK%(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterStatusInfo Pointer to the effect status information passed by the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_On[L)(Camera_CaptureSession* session,
    Camera_ControlCenterStatusInfo* controlCenterStatusInfo);

/**
 * @brief Registers a callback to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession ins.tance that transfers the callback.
 * @param c\L/ Target callback, which is OH_CaptureSession_On[L.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the ?parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode RK'9(Camera_CaptureSession* session,
    OH_CaptureSession_On[L c\L);

/**
 * @brief Unregisters the callback used to listen for effect status changes of a camera controller.
 * 
 * @param sessiYon Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param c\L/ Target callback, which is OH_CaptureSession_On[L.
 * @return **CAMERA_OK**: The operation is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the ?parameter type is incorrect.
 * @since 20
 */
Camera_ErrorCode I[L'9(Camera_CaptureSession* session,
    OH_CaptureSession_On[L c\L);

/**
 * @brief Query the raw zoom range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minZoom the minimum of zoom value.
 * @param maxZoom the Maximum of zoom value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the >capture session not config.
 * @since 24
 */
Camera_ErrorCode ac(const Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**
 * @brief Checks if the specified OIS mode is supported.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link OH_Camera_OISMode} to check.
 * @param isSupported Output parameter indicating support status.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_CapFOISModeSupported(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode, bool* isSupported);

/**
 * @brief Gets the supported bias range for the specified OIS axis.
 *
 * @param session Pointer to a session.
 * @param oisAxis The OIS axis {@link OH_Camera_OISAxes}
 * @param minBias Output parameter for minimum bias value.
 * @param maxBias Output parameter for maximum bias value.
 * @param step Output parameter for bias step value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode a~`	OISBiasRange(const Camera_CaptureSession* session,
    OH_Camera_OISAxes oisAxis, float* minBias, float* maxBias, float* step);

/**
 * @brief Gets the current OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisMode Output parameter for current OIS mode {@link OH_Camera_OISMode}.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *     k    {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode ad(const Camera_CaptureSession* session,
    OH_Camera_OISMode* oisMode);

/**
 * @brief Gets the current custom bias values for all OIS axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Output parameter for pitch axis bias value.
 * @param yawBias Output parameter for yaw axis bias value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode OH_Captuie(const Camera_CaptureSession* session,
    float* pitchBias, float* yawBias);

/**
 * @brief Sets the OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link OH_Camera_OISMode} to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode 1e	(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode);

/**
 * @brief Sets custom OIS bias values for all axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Bias value for pitch axis.
 * @param yawBias Bias value for yaw axis.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIHG} if the capture session not config.
 * @since 24
 */
Camera_ErrorCode 1e	Custom(const Camera_CaptureSession* session,
    float pitchBias, float yawBias);

/**
 * @brief Gets the zoom point infos.
 * 6Release the zoom point infos memory by calling {@link 0_j}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param size Pointer to the size of queried zoom point info.
 * @param zoomPointInfo Double pointer to the queried zoom point info.
 * @return {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session3 not config.
 * @since 26.0.0
 */
Camera_ErrorCode a+j(const Camera_CaptureSession* session, uint32_t* size,
    OH_Camera_ZoomPointInfo** zoomPointInfo);

/**
 * @brief Delete the zoom point infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param zoomPointInfo the target {@link Camera_ZoomPointInfo} list to be deleted if the method call succeeds.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode 0_j(const Camera_CaptureSession* session,
    OH_Camera_ZoomPointInfo* zoomPointInfo);

/**
 * @brief Called when camera notification information is received.
 *
 * @param context Pointer to the user-defined context passed when the callback is registered.
 * @param notificationInfo Pointer to {@link OH_Camera_NotificationInfo} instances.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnNotificationReceive)(
    void* context, OH_Camera_NotificationInfo* notificationInfo);

/**
 * @brief Registers a gcallback to listen for camera notification information received events,
 * can be unRegister by {@link Ik}.
 * Lifetime and ownership:
 * - The caller must ensure that `context` remains valid until Unregister returns.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context to be passed in the callback.
 * @param callback Callback used to receive camera notification information, which is an
 *        {@link OH_CaptureSession_OnNotificationReceive} instance.
 * @return {@link #CAMERA_OK} : The operation is successful.
 *         {@link #CAMERA_INVALID_ARGUMENT}: A parameter is missing or the parameter type is incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode OH_CRk(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnNotificationReceive callback);

/**
 * @brief Unregisters the callback used to listen for camera notification information received events.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context passed when the callback was registered.
 * @param callback Callback to unregister, which is an {@link OH_CaptureSession_OnNotificationReceive} instance.
 * @return {@link #CAMERA_OK} : The operation is successful.
 *         {@link #CAMERA_INVALID_ARGUMENT}: A parameter is missing or theD parameter type is incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode Ik(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnNotificationReceive callback);

/**
 * @brief Checks whether the lock focus tracking is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
Q * @return **true** if supported, **false** otherwise.
 * @since 26.0.0
 */
bool @LockFocusTrackingSupported(const Camera_CaptureSession* session);
 
/**
 * @brief Lock focus tracking, can be unlocked by {@link IlockFocusTracking}.
 * 
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusPoint Pointer to the lock focus tracking point.
 * @return <ul>
 *         <li>{@link CAMERA_OK} The operation is successful.</li>
 *         <li>{@link CAMERA_INVALID_ARGUMENT} A parameter is missing or the parameter type is incorrect.</li>
 *         <li>{@link CAMERA_SESSION_NOT_CONFIG} The capture session is not configured.</li>
 *         <li>{@link CAMERA_SERVICE_FATAL_ERROR} The camera service is abnormal.</li>
 *         </ul>
 * @since 26.0.0
 */
Camera_ErrorCode OH_CaptureSession_LockFocusTracking(Camera_CaptureSession* session, Camera_Point focusPoint);
 
/**
 * @brief Unlock focus tracking.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @return <ul>
 *         <li>{@link CAMERA_OK} The operation is successful.</li>
 *         <li>{@link CAMERA_INVALID_ARGUMENT} A parameter is missing or the parameter type is incorrect.</li>
 *         <li>{@link CAMERA_SESSION_NOT_CONFIG} The capture session is not configured.</li>
 *         <li>{@link CAMERA_SERVICE_FATAL_ERROR} The cameTra service is abnormal.</li>
 *         </ul>
 * @since 26.0.0
 */
Camera_ErrorCode IlockFocusTracking(Camera_CaptureSession* session);
 
#ifdef __cplusplus
}
#endif

#endif // NATIVE_INCLUDE_CAMERA_CAMERA_SESSION_H
/** @} */+#Sx&ݛphoto_output&photo outputBPHOTOOUTPUT!PHOTOOUTPUT.IHphoto_native.h"
#include "multimedia/media_library/media_asset_base_capi?Tphoto output object.
 * "//є)PhotoOutput&photo output
 * frame start<.1| /=PhotoOutput_OnFrameStart)(-1+PhotoOutput&frame shutter
 *<.1|&-info Pointer to the frame shutter information=PhotoOutput_OnFrameShutter)(-, Camera_FrameShutterInfo* i!+PhotoOutput&photo output
 * frame end<.1|&(frameCount Number of frames to be includA/=PhotoOutput_OnFrameEnd)(-, int32_t frameCouax+PhotoOutput&photo output
 *1<.1|&during photo outputHPhotoOutput_OnError)(-U	Pthe capture ends.
 * 1.<|&(frameCount Number of frames to be includA/
PhotoOutput_CaptureEnd) (-, int32_t frameCouax	the capture starts.
 * 1.<|&i HtartInfo} which is&
#PhotoOutput_CaptureStartWithInfo) (-, Camera_CaptureStartInfo* !	frame shutter ends.
 * 1.<|&i HtartInfo} which is&
 PhotoOutput_OnFrameShutterEnd) (-, Camera_FrameShutterInfo* !	lthe camera is ready to take photos. When the callback is received, the next
 * capture can be performed.
 * 1.<| /
PhotoOutput_CaptureReady) (-1for the estimated capture durat-<.1|&duration Estimated capture durp
, measured in milliseconds
%'PhotoOutput_EstimatedCaptureDuration) (-, int64_t d/	)a high-resolution photo is available.
 * 1.<|&$photo Pointer to OH_PhotoNative pass
PhotoOutput_PhotoAvailable)(-, OH_PhotoNative* photoq	4a photo asset is available.
 * 1.<|&*photoAsset Pointer to the media asset pass
!PhotoOutput_PhotoAssetAvailable)(-, OH_MediaAsset* photoAsset);j+(photo output.
 * 
 * @see OH_PhotoOutputBPhotoOutputT/Wphoto output frame start events.
     */
    OH_PhotoOutput_OnFrameStart onFrameStart;
`#Pframe shutter events.
     */
    OH_PhotoOutput_OnFrameShutter onFrameShutter;
`#Qphoto output frame end events.
     */
    OH_PhotoOutput_OnFrameEnd onFrameEnd;
`#Nphoto output errors.
     */
    OH_PhotoOutput_OnError onError;
} PhotoOutputo>photo output<."!,Zm1PhotoOutput_RegisterCallback(-, PhotoOutput{&,photo output<."!,Zm1PhotoOutput_UnregisterCallback(-, PhotoOutput{I	tart<."!,Zm	allback Tj1PhotoOutput_RegisterCaptureStartWithInfoCallback(-),
    OH_PhotoOutput_CaptureStartWithInfoFNphoto rotation angle.
 * 1.&"!,+=deviceDegree Rotation angle of the device.
 * @param imageRotrotation angle of the photޠ!K]PhotoOutput_GetPhotoRotation(-6, int deviceDegree,
    Camera_ImageRotation* imageRot1Nphoto rotation angle.
 * 1.&"!,J
mageRotrotation angle of the phot23*0PhotoOutput_GetPhotoRotationWithoutDeviceDegree(-$,
    Camera_ImageRotation* imageRot15tart<."!,Zm	allback Tj3PhotoOutput_UnregisterCaptureStartWithInfoCallback(-),
    OH_PhotoOutput_CaptureStartWithInfoF@I!end<."!,Zm	allback Tj'PhotoOutput_RegisterCaptureEndCallback(-,
    OH_PhotoOutput_CaptureEndF4end<."!,Zm	allback Tj)PhotoOutput_UnregisterCaptureEndCallback(-,
    OH_PhotoOutput_CaptureEndF@I!frame shutter end<."!,Zm	allback Tj,PhotoOutput_RegisterFrameShutterEndCallback(-&,
    OH_PhotoOutput_OnFrameShutterEndF,frame shutter end<."!,Zm	allback Tj.PhotoOutput_UnregisterFrameShutterEndCallback(-&,
    OH_PhotoOutput_OnFrameShutterEndF@I!N@Vready events. When the callback is received, the next capture can
 * be performed.
 * 1.&"!,Zm	allback Tj)PhotoOutput_RegisterCaptureReadyCallback(-!,
    OH_PhotoOutput_CaptureReadyFD3ready<."!,Zm	allback Tj+PhotoOutput_UnregisterCaptureReadyCallback(-!,
    OH_PhotoOutput_CaptureReadyF@I!stimated capture duration<."!,Zm	allback Tj5PhotoOutput_RegisterEstimatedCaptureDurationCallback(--,
    OH_PhotoOutput_EstimatedCaptureDurationF,estimated capture duration<."!,Zm	allback Tj7PhotoOutput_UnregisterEstimatedCaptureDurationCallback(--,
    OH_PhotoOutput_EstimatedCaptureDurationF@I!photo availability<."!,Zm	allback TjP1=B]+PhotoOutput_RegisterPhotoAvailableCallback(-",
    OH_PhotoOutput_PhotoAvailablF,photo availability<."!,Zm	allback TjP1=B]-PhotoOutput_UnregisterPhotoAvailableCallback(-",
    OH_PhotoOutput_PhotoAvailablF@I!photo asset availability<."!,Zm	allback Tj0PhotoOutput_RegisterPhotoAssetAvailableCallback(-',
    OH_PhotoOutput_PhotoAssetAvailablF,photo asset availability<."!,Zm	allback Tj2PhotoOutput_UnregisterPhotoAssetAvailableCallback(-',
    OH_PhotoOutput_PhotoAssetAvailablF.s a photo.
 * This function must be called in prior to {@link OH_PreviewOutput_Release}. Otherwise, photo capture fails.
 * 
 *4.#"!,
RUNNIN running:<ZPhotoOutput_Capture(-1-,s a photo with photographing parameters.
 * 1.&"!,+setting Photographing parameterm?	ЏPhotoCaptureSetting} strucqRUNNIN running:<Z'PhotoOutput_Capture_WithCaptureSetting(-(,
    Camera_PhotoCaptureSetting setting<	!,.
 * 1.&"!,
<ZPhotoOutput_Release(-1	mirroring~Z<."!,J

oy 	mirroring<ZPhotoOutput_IsMirrorSupported(-A{%dynamic photo capture.
 * 1.&"!,*dynamic photo captureA B<@PhotoOutput_EnableMirror(- Nprofile of a ,.
 * 1.&"!,+rofile^:photo output profile obtaine0=B]PhotoOutput_GetActiveProfile(-, Camera_Profile** profilE<s the profile of a ,.
 * 
 * @param profileaX!,
J0PhotoOutput_DeleteProfile(Camera_Profile* profilEmoving photos areZ<."!,J

oy moving photos<@]#PhotoOutput_IsMovingPhotoSupported(-A{%oving photos.
 * 1.&"!,*moving photosA B<@]PhotoOutput_EnableMovingPhoto(- /specified photo quality prioritization strategy~Z<."!,+%Photo quality prioritization strategyoy$2specified photo quality prioritization
 * strategy"֩P1=A2!>2PhotoOutput_IsPhotoQualityPrioritizationSupported(-, 
    Camera_Photo>+%@v	*photo quality prioritization strategy.
 * 1.&"!,+%Photo quality prioritization strategy0!R2!>*PhotoOutput_SetPhotoQualityPrioritization(-,
    Camera_Photo>=zphoto capture setting ext.
 *;!DOH_Camera_PhotoCaptureSettingExt OH_Camera_PhotoCaptureSettingExt;
 2s a photo with photo capture setting extension.
 *1.&"!,+settingaX*OH_Camera_PhotoCaptureSettingExt instance.0RUNNIN running:<?;*PhotoOutput_Capture_WithCaptureSettingExt(-,
    OH_Camera_PhotoCaptureSettingExt* setting);
 
/**
 * @brief Creates a **OH_Camera_PhotoCaptureSettingExt** instance.
 * R$elease the photo capture setting exty9.PhotoOutput_DestroyPhotoCaptureSettingExt}.
 *1.&"!,+setting^:9**OH_Camera_PhotoCaptureSettingExt** instance created,
 *,-0=A; W)PhotoOutput_CreatePhotoCaptureSettingExt(-4,
    OH_Camera_PhotoCaptureSettingExt** setting);
 1vimage compression quality for the photo capture extension configuration.
 *
 * @param photoCaptureSettingExt Pointer to the pho\to capture extension settings object.
 * @param compressionQuality Image compression quality0; WPhotoCaptureSettingExt_SetCompressionQuality(
    OH_Camera_PhotoCaptureSettingExt* photoCaptureSettingExt, uint8_t compressionQuality);
 1vimage rotation for the photo capture extension configuration.
 *
 * @param photoCaptureSettingExt Pointer to the photo capture mextension settings object.
 * @param rotation Image rotation, defined in the Camera_ImageRotation enumeration0;PhotoCaptureSettingExt_SetImageRotation(OH_Camera_PhotoCaptureSettingExt* photoCaptureSettingExt,
    Camera_ImageRotation rotation);
 1vimage mirror for the photo capture extension configuration.
 *
 * @param photoCaptureSettingExt Pointer to the photo capture extension settings object.
 * @param mirror The switch of the mirror effect. **true** for enabled, **false** for disabled.
 * @re0;PhotoCaptureSettingExt_SetMirror(OH_Camera_PhotoCaptureSettingExt* photoCaptureSettingExt,
    bool mirror);
 
/**
 * @brief De9stroy the photo capture setting ext.
 *
 * @param setting~,PhotoCaptureSettingExt} list to be destoryedQ|!֍;
 WYPhotoOutput_DestroyPhotoCaptureSettingExt(OH_Camera_PhotoCaptureSettingExt* setting);
 
 fimage location for the photo capture extension configuration.
 *
 * @param photoCaptureSettingExt Pointer to the photo capture hextension settings object.
 * @param location Image location, defined in the Camera_Location enumeration0; WPhotoCaptureSettingExt_SetLocation(OH_Camera_PhotoCaptureSettingExt* photoCaptureSettingExt,
    Camera_Location location);
 
/6**
* @brief Enables auto extended gainmap delivery.
*
+$"!,.
.5auto extended gainmap delivery. **true** to enable,
*n*6*]**E*wK*=E* @since 26.0.0
.PhotoOutput_EnableAutoExtendedGainmapDelivery(-,
    bool enabled);
 "auto extended gainmap delivery)<."!,
GG)PhotoOutput_IsAutoExtendedGainmapDeliveryG/M=PHOTOOUTPUT_H
/** @} */
x5 \wd 4\_wd.b_wd 4zfGwd.h}Dx%pڏF[
    {
        "first_introduced": "11",
        "name": "OH_CameraIn"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Open"
    },
        {
        "first_introduced": "12",
        "name": "OH_CameraInput_OpenSecureCamera"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Close"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Release"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_IsPhysicalCameraOrientationVariable"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_GetPhysicalCameraOrientation"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_UsePhysicalCameraOrientation"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_RegisterTorchStatusCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_UnregisterTorchStatusCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_IsCameraMuted"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCaptureSession"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateCameraInput_WithPositionAndType"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePreviewOutput"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraManager_CreateDeferredPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePreviewOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreatePhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreatePhotoOutputWithoutSurface"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_CreateVideoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_CreateMetadataOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_DeleteSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupportedByTorchMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_SetTorchMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_GetCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_DeleteCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_RegisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_UnregisterSmoothZoomInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSessionMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_AddSecureOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_BeginConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_CommitConfig"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveInput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePreviewOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddPhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemovePhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_AddMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_RemoveMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_HasFlash"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFlashModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsExposureModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetMeteringPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetMeteringPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBiasRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetExposureBias"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsFocusModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatioRange"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetZoomRatio"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_IsVideoStabilizationModeSupported"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_GetVideoStabilizationMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_SetVideoStabilizationMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddInput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddPhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanAddVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_CanPreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_Preconfig"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_PreconfigWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetExposureValue"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetFocalLength"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetSmoothZoom"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetSupportedColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_DeleteColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_GetActiveColorSpace"
    },
    {
        "first_introduced": "12",
        "name": "OH_CaptureSession_SetActiveColorSpace"L
    },
    {
        "first_introduced": "11",
        "name": "OH_Metadata"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Release"
    },
  7  {
        "first_introduced": "11",
        "name": "!&B"
    },
    {
        "first_introduced": "11",
        "name": "0Hllback"
    },
    {
        "first_introduced": "12",
        "name": "!&B"
    },
    {
        "first_introduced": "12",
        "name": "0 B"
    },
    {
        "first_introduced": "12",
        "name": "!&)B"
    },
    {
        "first_introduced": "12",
        "name": "0 ?&B"
    },
    {
        "first_introduced": "12",
        "name": "!&	*B"
    },
    {
        "first_introduced": "12",
        "name": "0,B"
    },
    {
        "first_introduced": "12",
        "name": "!.+B"
    },
    {
        "first_introduced": "12",
        "name": "0-B"
    },
    {
        "first_introduced": "12",
        "name": "!&2 B"
    },
    {
        "first_introduced": "12",
        "name": "014 B"
    },
    {
        "first_introduced": "11",
        "name": "AB"
    },
    {
        "first_introduced": "12",
        "name": "!&6B"
    },
    {
        "first_introduced": "12",
        "name": "08B"
    },
    {
        "first_introduced": "12",
        "name": "!&6:B"
    },
    {
        "first_introduced": "12",
        "name": "0<B"
    },
    {
        "first_introduced": "11",
        "name": "A)"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "F B"
    },
    {
        "first_introduced": "13",
        "name": "kHMirror"
    },
    {
        "first_introduced": "12",
        "name": "kJ"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_DeleteProfile"
    },
    {
        "first_int!roduced": "12",
        "name": "EN%B"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "23",
        "name": "U"B"
    },
    {
        "first_introduced": "12",
        "name": "kPL"
    },
    {
        "first_introduced": "11",
        "name": "OH_Preview"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetPreviewRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_GetPreviewRotationWithoutDisplayRotation"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SeYtPreviewRotation"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideI"
    },
    {
        "first_introduced": "11",
        "name": "OH_Vide(llback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_EnableMirror"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetVideoRotation"
    }Q,
    {
        "first_introduced": "23",
        "name": "OH_VideoOutput_GetVideL""
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraDevice_GetCameraOrientation"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceName"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceType"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_GetMainImage"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_Release"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_RegisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_UnregisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_RegisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_UnregisterAutoDeviceSwitchStatusCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_IsAutoDeviceSwitchSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_CaptureSession_EnableAutoDeviceSwitch"
    },
    {
        "first_introduced": "14",
        "name": "OH_CaptureSession_SetQualityPrioS
"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraDevice"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetCameraDevices"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_DeleteCameraDevices"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraConcurrentInfos"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraInput_OpenConcurrentCameras"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_IsMacroSupported"
    },
    {
        "first_introduced": "19",
        "name": "OH_CaptureSession_EnableMacro"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsWhiteBalanceModeSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalanceRange"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalance"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_SetWhiteBalanceMode"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterSystemPressureLevelChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_IsControlCenterSupported"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_GetSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_DeleteSupportedEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_EnableControlCenter"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterControlCenterEffectStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_RegisterMacroStatusChangeCallback"
    },
    {
        "first_introduced": "20",
        "name": "OH_CaptureSession_UnregisterMacroStatusChangeCallback"
    },
    {
        "first_introduced": "21",
        "name": "iS4B"
    },
    {
        "first_introduced": "21",
        "name": "/V,F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "\+F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "a`_F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "a*F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "aLMirror"
    },
    {
        "first_introduced": "26.0.0",
        "name": "Z,F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "ahF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "k0F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "m5"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_RegisterIsoChangeCallback"
    },
    {
        "first_introduced": "22",
        "name": "OH_CaptureSession_UnregisterIsoChangeCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_IsBandwidthCompressionSupported"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_EnableBandwidthCompression"
    },
    {
        "first_introduced": "24",
        "name": "OH_PreviewOutput_AddDeferredSurface"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetSupportedFullCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoNative_GetUncompressedImage"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_RegisterOcclusionDetectionCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_UnregisterOcclusionDetectionCallback"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_AddMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_RemoveMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_CameraManager_CreateMetadataOutputWithObjectTypes"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensEquivalentFocalLengths"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_IsLogicalCamera"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLogicalCameraConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_DeleteConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensFocalLength"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetMinimumFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensDistortion"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetIntrinsicCalibration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPhysicalSize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPixelArraySize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterFlashStateChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsExposureMeteringModeSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetExposureMeteringMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetExposureMeteringMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedISORange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetIso"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedPhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_DeletePhysicalApertures"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedExposureDurationRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetExposureDuration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_RegisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_UnregisterExposureInfoChangeCallback"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsFocusDistanceSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetRAWCaptureZoomRatioRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_IsOISModeSupported"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISMode"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetSupportedOISBiasRange"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_GetCurrentCustomOISBias"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorColorFilterArrangement"
    },
    {
        "first_introduced": "24",
        "name": "OH_CaptureSession_SetOISModeCustom"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterExposureStateChangeCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_IsTorchLevelControlSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_SetTorchModeOnWithLevel"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_GetColorTintRange"  
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_GetColorTint"  
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_SetColorTint"  
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_GetZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_DeleteZoomPointInfos"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_RegisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CaptureSession_UnregisterNotificationReceivedCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetNotificationName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetProximityStateForFocus"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_Destroy"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterMetadataObjectExtAvailableCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_RegisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnregisterErrorExtCallback"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_IsLockMetadataObjectTrackingSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_LockMetadataObjectTracking"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataOutput_UnlockMetadataObjectTracking"
    },
    {
       "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetMetadataObjectType"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetTimestamp"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetPitchAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetYawAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetRollAngle"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetLeftEyeBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_GetRightEyeBoundingBox"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectEyxt_GetEmotion"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_MetadataObjectExt_Destroy"
    }
]
4xqL0|d\"%%eΉEř'߳'?=,3ܱ8dLN!8E5/1)'UKjb y.,x+J&k:M
OL-w,.,.le6f
%(yI9J\
@P Exk.M>\ U	>xZ]LMa1fXX\b{1'$]ޅgg34J*yTUIN)>M*R'Դ}"*YKj?V{gf.`Jx3sYzܶ=Oڪ\DJʊlS#9HrmGc|RU TLYScHBQHFSMbAI͑Q2@FFHۿ,&͒eR]N	s@4X)a#g.8<<aJBӂ}9~27L-+Efd>TK`eA&g0Y$'+]_ceR $ʗTY#jbv9\**>mvQJY=F>idxFD+T^^1=da
tI(p;;MY1i";/++ubebA$Yi\o%.`NEKIJ}GAߛ;	j?ַU`,
jO?374xrb1uKGݓ J)n5<^*oꆝJx.Jj>#̼ok	kޝ^@R.iV/m`5XALπ[uɵȪʞbqLߟ*d/'+63;x&1?2Pd5Mix)Mm1K`W#ir2oR޴+D׋\o:
՟'*)yT+w.Rj%/"i`0&diX҉"}e7<ju?e[eK[wan_5PlpxMvGk+=Pj+e#܊n_cVȎp04MO˪@7Ż+S-1}6	+mUjWsjzYLpTMgw45R35=N&`*QQ>kTV/P5M%Y%-ٲli%%4)5ձ*ue4#(%Cp2"*'XM uP\-$FDF)16`HueV%*\vS *jfCS_K΢LJIi,rFj=op3Kt4SDZ5Y0BvmM1d^Eִ<IqYN+`Z9*ChzN'oPvWV{VM)eM)-2]S-I-e{-UdZ~g(ɨHW#{D~
۷|v,	(xy!Y4"S9mRwetY|D}ɵb%,9.~fp̙XWLHCXs<t3UnQoaϩK	v9*	n=Ju3!<+ _Wm+H'l[M+X3m?6R(!=[s@FײBΖWE%I"PzV_`C.AK+3f婭>e],hTW]"Tn0cg2RN,K<xq2 1ʲ`Yˠ)]u k05]+]<ϼaX}5#Q=+ȁP/AK#ά1ģ4emT<[>^ Mg9kXr!9I۶{Ckg{6Lgkyɒ,|<̏V6ZxoE"okʂ)Ք5wfGq[ƶpW^AhrG6cl/;	ÉNƁId򛕔6L
[+B9+P%S.vF]p	+!RaU.cf\WEw_rC<<9v:	:sKLLL-.@;ࡄ_'fsfQO9d_<vVWF774z=;~Pu\V#p؋y<@HU!Wb9S824
wOK*`$

vA8ъB,;N֮H:w]3ɫlYOn}"p[I,|t)IÊR؁jYwheb218^`0oV<Fc4t$^ሟ67v_[ץBsPĭGnfÆũ7ЉG^ 1Mhl(W%C68zf]Mi;O;vd\߾iO6T8"8HkB'Y_ONG]^!hO%wԃ'DQJp$tMT MX퀋-WET1u-K[<F_	ٲ=p>-ߺׅv|6gt`v5l%F[,7}ֶ	[wuvi:6nd\ܦeMt̡ I_@	x,0|e?܌<j!sDՉ/
_ju__/z׬/ͷq=(oQdd/'9R|Zn<߇۴p~޼@;*\vXgaXp++"{%ܫmupc旊WŇ?>*iun=ss:T+<uQ'}q$ȪUw1UBø X_2rR\⟹,ݶ#BƴLp?ψ/ض}a'|mSAY?mxqvw57iޜ.Ǹa 5
x? )n+"%FPp?MoL	OoV
MU *VxdWXU`x!	d6"\DE6io0LÑ*LScu ]+x[qvDS'+L S:YO,:  ^x& pSKoLT
S *ZUF>nx. RCPT=U&S4K)oLT
Sť+x[q6|u|'i͗8X&ۊL/9S仚D&kMVݼ3$?O!"xv,,';,e0#^Dmd'L>ĹY{>#Ȝ|2+.IK\(#>ar/7~2;}y&߄Y-@$#u>  C	#xk_Av|D&)po=9\ 
KNxko,b>&d}IĒbٺE`1RlHFB2PZRZA[;Qn~		R I=.-̼T#c &oRpj /v,H՘ &99^SXG8*5DɁ <mxkAv|y)ɉ%
%
y%E
%nbI]Z2A[tm9FΌ"-daɱ\yܙ')po=9\ #!XXx}TkSI'mlSjkukmMSaYkصJ*I2ppgR(-($W O>
|Tp!3~Ιߝ}1Z	6tLuX._[޸Z6ڎ#y90xGZ@W)wZ6-WEݤd'$	나F	tfH@ַ7֗"dRnp6%fK[+-\Vrϰw
k
e]|#}ZPUwX+H9
m6l9P@v9wK._\:SB,&ąS+	8~׹VR8IQ{="/eT5blm)ɖ`:L4XY?~Ⲙ?ǏA|]5v*:\6 HFYTtVq#jKM4\m*Wd,/4o~scnYWR$}u:j<ìI;g$>a?CC@2ܔ3u76`6ؕs(\MV .I`zSw}d,^GT$B'c	p?40*qՄa,<'jobX<3Qvn}mTV#`i<.;vcyȿ$k3!|ٖ2ސ*ipwq428b/cA'v
+ 7=`G%Z_''I-jE!d\h/T^;}zؤ'ވãY+7ioKxk,W!buU] =Fx#x$2$ױ899')d)$e&*x(d+d%dL&WXZZPRYYX\ZT<O5pb&ٰOܩ Pk#Vxa
@njn~Qe|qIQjb^Fvɿ$U r
P9.- Rp(H,J̅
N@Q`dRX((!ʒX8yR~@3sJ2Ra$$f+d%d(uMQ&-IlzfjdXRRTZ颐	qL79oSKRn,HU,M,IPON.-*'3Dcxhi]Ȧ,4;0 
O 3<>x=xRʛ%
  D[x,xm#'?T<[u1y+ !]xmQ=oAN;		ɓ8XH棈Dws˞$(HL2-PQ": i%7ۯ0O/U'&<@|c3. a9쀋AOXT6Y{L*}kĺ>es4`åOs۳F*`E<w
p(&|lk섐)BJmYLp#d	2NCSZ2d>uirJr'ї!\zӸ޻0=B_ŻYѦjQz|+
4@]Pjд#؂$bO0@$-T:ۡkGVy.WN(4\IaN{ޚŤd=w|zfW6s4ޜI[.8HꅅIme@2)xuRkA'I5B^1$EH dw6YIfMܓ@ԓ gvMe7_?N ~
ƽp~h$o̠& bT%v
'k퉺w&'VZJ6'8wE&hL-7jn:Y4j lX<&mE#iYä́)Tm
qUV1osp)qmْ7U<JX͟-&(7N2Ů8U
Kg_%Nc/ZI2^zBJe}9^6w9C %t<)܏F댆YŊ`e$6cl&tm`#]2S=˹SYv6rФrKW)TߍS*VSYYw%>s%0" k~@ND!u;XO^Ʒ{AhK
[p)A⹫5Ẃ?/73=x&b6q)nd6'Ga^<Dx{\cwVA}--̪ԔɆΡ!Q.


66
&:\
JnbS`a3R\)9lrG%*x{~TcwH R1KKs3RSJJ*Rařyɩ
f`-}0```c`U0y=f!; 8<x{BcwV! Rp.-.ͬJMl*,```c`bU0y=f!663.-}Ʌ&l ,V2x[qHc?V. Rp.-.ͬJMQH+Q(,H-9g%*D h=rx[\cC6`|қs2N^.,Y; P
(ljx;qPc_X] (sx;qPcfM6.-}%'ݼ(# 7
 x;BcV.̪ԔɆ-x 	n'x[Bc>f %LlYx[N}w͆ly&xVMoH+JD,AˬV	$e fsvZ1nOwǊ߷m		_{UyRz_zè`%0kq]=71Y%7g>͕2^҄v3>,`*ȤBsChHDʁ?F<7 2*OR=¸oa8ႼNf8:>KcoSeY]NZd|9zth\kPG!+`9XPSVT㘑Tl-S2XhDXW1k 2ߝQc]^.\oِݍlÝ{{NЃ-\Φ?M{k<tcP+b0E
zB:HDԲErU j%4`LR;9sngqlB"b%H;HC%x7JE̵EHeR0@""R]i|^_]_+/EmAwz gHj#IׯV֓q8 $A[<JQBRdQSFMvyc1X#C8rs4V2j)q66LEP0!	f]-턏h<ODܺwu	3Ŵ6<-4}[H}	6<NH^VK2{YgjS^+p$2U	wqW2MeYaRih-qFU톎}]&]{{0_[^} HS]3w!{"*̰Y2jXTظ77`qfC#|!X7OaنҤII˟c6k=l4)z#<?~6/6<eBLc%W~!V%m!fbyP>b^s0*hj6DH0<p !3&7`ʝO|gtIHd@Rx
c8v5ǳ:hqMR`H{zBn~9Sl& m{ÚKSTM~]_穟
T͟D|l-E6EN:;,ra%+,Ix4]/~Ň/%ЯEg;5|DzW:[Nzf?jy ve?ù/;x[[o8~ϯ ܗivXl@\;m$EnwYmNeIKO9$%Z4I]yxx.߹3&Ue.oC᭥cy|8˃>>Ó((@"_J1L<̛L3G$i@Ǽ|C$6q!VFDq.L\R[_&PU*/k/yCЈg&$݁˱He'ucqz;l2:=:}ͤOQ(LBl#LZĩĻ<&שU,k/v<U"ߒًJL:jr#"'.>]J\\xr=8ǯwbx|nm"iJ+I"/%xODj|l-ZBE|#;LW*#f`0 BR]yH"["Q8Y\|LȌ9@>5S7zm2<W,Q}%Kq,jU=]a;\_$\PELhKBi$bm$LRϡ$`5P<1-FWq"Z{	ㅏDJKa$;C5K"쳟<'^Ps \٧t|9<9?>lr~:pC {FRa b5R/;m6͉O"#^tF5LY+aGkKSA]ftI`0H./X?&cKK.e(=I"(Bz!qaj|: xsrgcv'K7B(a-@,ixxJ?dMf˱wVPE*zw=1#u%U-^楼9Ո-޴M-iXIz"rp&h&N峧JJԡ&V+Yb2eN&-g:Q7ۆ\,پT@5E؀s+ p7r汍{(~Yi߬:Ws:H6u]]Uvf\okq=F39aVMXԲ81 tX[DZe!e	ݍ[@UA"nuW"U)~Fj !,Mk5uP@i㟞W4C۾$[=@I:rWvC'EbXf.643Z	(<Pe IT'u-f[mz
2zD*8%xctZ'݄1S \ w{H82*\%fvYDt3VdZcnسivӴ=S2g~ǆx}!~o4b]FwSn~Q`aO_TyψSLIZNl&`-AHxZw QPq 0'JxYYq
}
BJmOl^
8_$NPs4Hhֽ+c7h x.$;m_ܹnŇ8UR FKِB<$uIl5jYŻ1&Zz]#04mm1J%m.ǚtY34nk}Fzsj^Zk]Q-I$)nAX")o]?=4$Sٯqw}1*eAJjݧ}zv6׋lt8vdvkﮇ3z5)n@EIѵB+/B0PTӨe_nh3KC5^nI0ЮI}&oO.H4AK0(5VxMw%lBѶ4	Bղm<)ݣeH8I0>-T`>8euQLs1tLtġI;N$<gc0}]3e,S(Ye1DA]3Pqm}q7}`&:;3	U@#0uJ+Eo.r,I0yaU&tA<G@þ\ET|C'xH/cFByjS,%^#`?a4^
5a)j6sC8]1> K-Sy eT4vЅjE{v3 c{$q8CV%Dx[\IUe8u/p`8"XVQ(C2#~Љ=q܇&$=؂$1hKo-F'(Ν(¹ѕ9Ł-gTPѪt(^SDr] Xa너
|!lおaEL.qDi1LC{:$}O [br~D2m6=`H  kܓ<p#!Z\QI~s^Cp6;z;n	8?&t:Wz~lbk3q*]Ny):Rr)>Dӛ?QNHׯ+Ьf/&P::8L>Bu	l#=MKjBG;-Uhh2<CPU}<隣L6 4 B/{jŦZ|j"xW?fSK\tb6Fo*hK-Ǯ,ќxzeCh2E~fCV	4@y)N"͐-XwLhI3}_FsAWCKS,<\h@`U|q1=G76OnwY#͎Ƈ़nD-7*#/)C=ҵdqi$a^!εe#CZ܍ae#CkH8tS|ӝho;>nO͔M夻}A_=6gK[Xz"F/=C?A'tqW_PӦh[~oJ}-\bp.1
F:	BVTSp'qV=([=䬖<cspxBof}Η5Cbh:|kWljP$DgA7$|-q	YG_vq>U*)CI!A2A]o忲66hښޕn2IZItŌc3kL&~c>nv+lE[$0{aq>`pd\.kޮ|g*d7+,#>1tʍkͿ
X]@-e'w;0`f^"oxWoEW>ڐ'idҦIJUڦ@H<((Y{zw;3DHm	T*q#qOr!# ]W%g|n.ϴL˖Ybؘ,1u &.X,ȖX8QD MQ5}[z׉@J X˻y~mg1\6ĶJ-!P߸=(+:,C39jD3)W,˩c45-8-l-~@`T^%dzO˙y9ɀxPz?'2\LE@,6$[ʠwAf(@kr2}E|tʔa}{/Y8_ә
h;*^+ס
TϡBo_>QɰS$J"bߤ垮.0"U=SUq<V+'KM[>S1Q1:Jon 
2!Üv.6,"խ>N@9 De	ӻjk
Veje^`ߩcn7{Rqbz16װyTV[hx0#ٷQ 7l;)ykXoB3qʹUhIMQJ8Z)r"amq P&?߀__17;p%72X4k.C&<$@u&G߳LaS[G@E~#̱SzA	`Wx$kM~:NtPP͎ȀI+"E#e+.
+%ԃQ{n"[vӪbpAu
l٥ʶ=	 ,$X:e=b #Y2rDρ9i#ߜZ$Fl&^@d*_tItЗEA4DbZRg&j(>&nMײ j-6o޵`)M_H0]룋nrMbAНmcO"s{lDpݹV22hYa+!E7,=*l=d#X׹FZ!#·@oi=!w>܏yv'򙳐mN  {:>II(ꆂ\^ H([HOI{`o:P]~;YAO4ZCvsMBgrojKK5!E.,8|;z gӢɔς*rM,\PL_R?ydǉgt,i&3@Z>pPn+:8DԂ({D;
4І<N=EqxWKo@M	%<JilSm@<Z***g;7М8q3;v =qrv<78߷\~`}hv]b1[O+AZGy~t7~2/T5dZe g5J!HG13_li%3)AMLqfo;2?fOŊ g2a2v`p2C/&PG4PXUVel=7D 8/@hQ
ϊTJXZNͿ^넁CFMnoݥX]A	,vee)lȧ*qA֌ǐ6 2~h"uҀ䕣cZAK`hy8"R^moH^vR. 6?v<Nog6gD9rdVUn TC!J{kҖkQW5`QYifdr{U=2rrMq4DdWf9L`n+ҫ.<!c%v;WAC}$e{a;ӫ.RP>kL5"tQ<YR^54W6n,n"~~.(7U/Js	q<?6G@B^>@` !GSsꖻͣ,O$Ul6jȨA8r}3'C0*.\:ƻ8ӇPFu7xn8鑾%:ҕ
M+ 4xM|$zGMkMaM1bB$|լ*wR&ĎgC"z=OrC׉c;	U[X|*Jvǜ47ԒbZ\E_MrMwi[ʢ[<<ίOF7=BZXxd6~jl.@f 	zP	?sbALFf|2p yDIqow@hg,RtGDTw32&$bLpC6HV@MۼO
Y2eBJPmm&Dye7Q`FpJ m=xC"d%͉L2MgRX2هu1bN0OY0Xy6u6Ҽɿ9M'4}#(X<ETԊ̼T<@rb^Ybfs?B!@~zfYjBA~qfIf~dAymF@6e,H,JU(NMKOK+N|GF1)R
y)
@%E:
y%
ťE%)@SX2'kMԟ\)o+_lxmS؜KKs7+91AΉ99Iٓ?7]`=aoaU3 D|\#Xxbm<ԊʂĂ,%JRKJ&
{O+嫀)ǥP`d0?(GKQbyf^z<HBLn%U2SSKJ2RJ.QH,:((
݉y
6IvHv ' ngd K$	KJP(kyfJI@G9M:mC)I~s*2 L #RE%tJ3JKKJ`Z0œQMҞ|]3hD@ZTꙔҤTLY,+)ŞeKWYQ<)σbXTu  $Z
Exb~|?&FXM&g,RGHcl@͚f *.St >0B>?~1oGA"{@LZt#Ē1E70)pb1ݥ{fE0
qx[mC{bJYb^rw{aL;lr!mxys*2PuOWԟ\l(#7 EIA<ᆽ&aqL 9xblC'LrXv @x{hv|C'QvfcQ{QbAFfrCNfRQbQK,,KO)J,K+Ο|qa˘&ϖhyQR~3g8)k!HR,LHė_|r	k
yE7_!rdHd#\y%FL, I%dx{hvlC"ޛ<7aaw)J,K>9uuʓ$'G
ILg; ȱ(rr.dqMϮW2y?1
O!]PWZ6zdmvsq*\u]=CA$	ļ'ʢj	7t' &( [T_RX&旞IX~ɳ!sYA㷓ٝ&/B	Bn_XCt>6CO.·m/vGoDMVA6j"qe[R
xg26|]dg< JN4xb~|?ɷ%&0ћ%Yv 
:Qx1b_AfE oc!x3fFf.FFɌbXlʛ\@@^7(qsT7q)CN擑;Ȼ&O{B;f;w 	1!g*@j}RV0&2)[eDx%6Wʯjl4	$+23W AL~x EOEaPcK"
typographyA	The	{"GetTextLineByN
The run	5]1#ByN

*Canvas	
*Point,2C_&")z=y
Z$s@B4IxN@zA"!ڊ@*DVpl*9 \@qbٔw@H<!{)>X^{o~3zG{i+,7BUr7	8,w2@r~`CwH%TBIUE}- mB=&<E]l14}

eT=U>4=3sOȞHE8RXT2?3xg)XF@iHan<L~R؞R:QAlReg]%0nss#>XTxwtШRo~hu:U01Ҥg$DR\'|oJxŠ%rŮ"|?enLV?WF04.n޼^GT,xZmo8_A_k%I'ChWEIto~I8/.@XpgfHvdI|/*XK%FM%[\mj}'q&CC
oZ2T[WGACl6"NXecLT$ʥ*z k<jH&:@ "Иf;zXv;YN9N/N@hs,JXd#%k"tBBSU<o,uJ;TNd:kX ZbqԽ#{5j _GKw8^Wr(zhpyoDm2@LEڔƂWTKgK9U35*K1OndcEb)kU3HV:hFFdaykH#|_g*9F2ci"]	DEJo<dx*6׽4X.Դm?x#s`+dc{23 C#혤C`D4ō
 J̀t!<`̒ZIzjXp1I PعUSZtovqq$yc/Kj,qݫWjxp;?/xb
-TQ&V!qTY{qT*দf)3zf$x<]F~0,0.zG{㕌C5EA`"H)Cpym	9z?KIZb4^[HfLjbIB(	%fex/횝SbZf*D*&.?U|GN5ӯ .Ib1rn'CZrEbiǛTU[D2#KF;Ķ5j66-&7\C>C?n2#sdE%!yM0jZ6E_"$X
q%v@2;N11#-0ND )L$Cs;]~GřԻb:]ױbK!)EvcCA;W}g8%XEja>AbF/Xe4i7,ok
_aT:8STkg PilnЭ}*+<s4ďrGfDh@J!|mGɔc.s0++3AEz|\I\]]Kx8to<@
'bP1+@-M@8%!:fN]Ʒi	\Q'Ry@n{l}4\N4v-. .!~z`\iDkc%RTP&R%"	$ (@G 1>͖;Yg㑳d?F3nX j*jb$>(c*<l"QcM!@42SU KMR[AF|ѽQtêfVDJl&߲Sh%HaEHH /oT~4ThT6"9~'Ҩq9JIc3CV){2r0)C6B3ߝ5rB-Uf݀MM1D~^,IGKwDԴ`:%+}4Cƃ-]<4c2<M>0yf*Vԏ,Q)lR$Ne+Z>")\cp-ްeE)-ߴR q?L5ŻP,J3F}mb[QxLMx4y5#	?n߱bTԟDvh?2>KSc^"8d|^TX(_Aͥ)I]Ss8$Ujy]Ҋr O^QoЩJNt<M`"@>ǐ&Ȼ^
3VR}*e+ 9@N*r]YK)RA)?kS,G^+NYK>b7[;WPk[jzK#4yǛo8؂ui.یs:V6"2?F'o"9˻fz:Z|4: <R[|Pb6"fƍrI:@)K6uж\^?&w?ۖJAXw)Uwi) 0<rǥk9\^vĽʜٜQys!n!qfK%|f  J	8HDZ^}lrSk}vJ8!B&͔B~kf*3-q~~f+b$ޙ9ӑaQA5:<L7[޳Եt⻳'$ӊw ;ӹ 0wxY[s~ׯ_@,'/R"b*
rO԰/;{fg({Aaポe֗ڍ3jPWgKKwt,Z*;Ij5[O\ΩHҐ]Jd"G9Ҥ7Jt.xy9tݿy.h%6jKE.)V$y̒J)ҫ,Q"ker'ƻr=dqu"	D~-npYN޾tq{].z&2@نD"1X6$FbjzmUIZgUnfR	H3~&ov0yyzBo;Qg8t;7nuM;}05Ibk 1[Sz%|/1οLF*VTKXHZ;iRhD4+Ws8gRVXg+1[0Ȩg;W̌12N%P8/%.{0"[svd(f0R&DFMnT3|^ZCht's&q~RQ!fj7E$[ ױ'hd"/a/g	-*^Y>eωfWR״\ʵWBWA<S1Sw:vo^ިv0m:y/ϞaJA0&=AI1JcFzg<N,)"?d j:Ӈg5	EXvi#m:)[_52m>rLVqX>hF[-qq46)IL	#V	B+LW~H/ѻǪL}m@0bI .ԒA?,L-	B  hS'é=/L`|'*s>B>ĉȘ|h'2/Psg҅{BH鿆$CYH;.	Ĭ!8|JTxj@M#"̥]tGxdwh</Ci$EAyN9WPIM0iT\wEKƲ㹅]
5qD[ɕFà\evDSVI;nJ,*Emrx;:þ8aؿ1XZ9QWp 0(wb$Q0Z (;?N/0DFTpǡb%_<cT*nlA.8,QE-ЪpSU+hyӰ GWlpƶ#͒|$עufX#<F\.%ItU@S6A3¾Gg_	R.e2^V,F0 []+wQiUU-j'ɞ3k/j҈:7\s	z#
+K;UhP\;"rp]})ajmf񿶼;.b>vs#U	T@xݞ=e֎G!BeD\jnjSw'Pg\+"c¾l͑
#VޔJ&eUa\UKQyRn?$ZMxmnpcgnGzӹ:Iv/KNξ%!0270vrAϷe]X^5oB^ڤZ
Iqш97>&sJJlKݿ$V:)MYZ3{Du9fڳK$ßԐ+6(WS^Xv4w';DXIyMC}^.
5[A&ܪ4n1p_V}1pă0pPx](%_hc/k$xVMoEr86k;T> hJ BdcÊ,	Yo须k#DBK9 
ⒿNĉpGP=!kC\8x;իs//zob_+_ԘEGDP	FRLhH|va!4VDD\%:5ۙ ވ!$iyPV=Ob !~(_Uydx 곐 V7ϹQe_"#āz9]p~cܦ+nlϲ0!K,&Ra"y@+pKdk"x2bIiQefC𼄨b/͕艳n&bRs9țP݀cEIkJwhw++N9깜zCcXKhىL@$-}VSY8e8TYԤA''S'cpfdAlPfb]X8NJrI*M(9iM8'lc$DJeD5ey&?JUwć,^'<8ׅ}J0 p'&2~
mcOG`m,\Fb`c^r׏~ڴKBBn *ctXX_9ϛLv	AmhTK̚$h7tv՛FL=hg&RD6áfIG1.\_-]y6L2g'Є
^LٽJ/@?)Stz?w/oR^uQHM˥ @3?ׁ(L`s7F3v_8|ˑj*n@}- F84jۊ*DqT/ڶ?1eIPBcdqp ni'<6(ç6<GSfۍqk=QčPҼˋ8ͩk+ե+*Xx'[&(v&kXiw6x&zg	_LΡy[e{lo4j0X@[Xgq I $yT)DJ1&Vy\n>a5to2]٠~j{uc7m6;[՝>86/Ƚڻ^q{371~cygjhDtgc[֬ܙG [,VBxVMoEm;l%hY%!Hɗ8b՞v{8s@$ș Pr/S|BčsP=!kC\8xիs/x>Е#UEGDP	JbHhH|vC*h 
I5j3#BHHA,<@"!!BPV*tQzdx 곐 V6NU&6J S
DB*)Fu9Fwz'{tXw70*ƱCP# J	T.-%P*%,?ә&!LզEymGN%O`\,VT t.&C˜/(Q4ͬ8}Т\V͢C&b5ae;"0}F+3X[e-LQpi+cRCU'b@ϽM᝟WM}o|Oj&6[ՁS;Oma8)
*'4iK P5.6L6ඒ)ipttf*X$.xDz_
4יT,^=eSh)Q?vƯ82 }m!gaN958fs^$\;F~w~<S֦6^"rS+7)j]Y`aMd3|<o"g0Zx[-'ugS!,1ϔ Dxsn4(`y=P[<7Aj&1C`Aw[`s,s~6M(1ALš݆ކ$/G8Bo4WFlvR?r)8>_~RP)lh6^=|M7SM^`p2sJ(BwJL,{N['`ԍ:%f0<X}94N:>~g2̶	G7B=Jc.T n._\Y<b4v4|vd!@æ"bWyغ5tZouTu*eWޛe{^	MƊfX:gǊ=K͍#%WN&S
lO)/ch%R|21£lv3"J3Τ{,:S{Wt-LNjx{mtw0;}4yM_8{wB]v%%ѝ5l;[6p{~G/.Axm`²ٔqvz"
8&L/=hg1Mf7٬UϴyOfN㌛/
y4,2_msY& 'yrXd#ɋ/
Oΐ1.ٜ! +ox\ms6_I$:E&izʒlk*[>4'DBe~PoRR3M}yUXCEXNgް//?mBx^*C:j$ELz=To"R={^W|BK9_Ph4f&=&CyH43/9iّq]̘bQy`NѺ`7`Bk?% `|T4(ʴ6'fK_)<zhUWoHs{pzW[}Ft_دf	Q Lz}! L#ɉ@p`S$$bRE5 L pCMy4}J"֌(R_Nӿc)&!VOIY:fkvdӘG3Aوg|K@P*D'H?9ϼ C09Z#ͶV>/ j3'l'zV4sYoNd)
4?޸&rx	'1rkZYY/X,kNYyIOg	(~}3lF^sf4nϾ2/ "$`?i㏕
jFM"(H4w >^5^ξאY5	8.x<y=,Ȼ Jg[~4ac1!ƆD;-孭EXсP6{;r5[SA9T+ڃcC6Kj Áb*1ڒ[)ÃwXCDḥszKbnD:@u\\G-ErU ֺSX劼t_AKQsؙCz̝RnBMVFE&B\uSh*RI|$9[ӈ9w=S{[^/</baK^cy	|Ybp
+gsSxi7
.$zvՍȶS*
Mpډ2e}d
OжVSX@8$5ruOȷHf:$sPq9m8m+erxji^:5#Ckf1YBf@ O-*"/24\.G-8SB?uB<Xn%Hg(ϟ6ξfWV+-4Q70/Ժ\?w~31@z܍;hYœ@:Q{"\]3Ƣ Hᒐzo4,+ζk6~3VI!mqj'4Ywl/#Z|S$D*;ĠC
HBSܒmeMszXdl˱6&*ٖex׏Y8r̶~7S*LfBP,`E<:Q撕bg
3#w6$1Via`rP'R2i-|0XthY#^d )}*B60#u2vn?@N}=Mq厈־4cQgWM4*ʐczƂqUm'!ܞXjLf$02T^QXEo
;+H
Y8M	rlq_ڭq$དlGȑ ۅbiG{ʤ̔oKhNe;GwlJO,6NdZl=,_xULЦL{J4XDIRo-8'$3硍"͎]U?,L|}jTLY#[ϟ/)-wPE5oׄ~7not]P؀ŠŖ?RJ-cT)}ٸxy,m}Ʈc5'ϕ6LiGޣ@*^ORD^IN};DVNq\x?P o\RuUQFl[x,p)'˓.3?o2[᜴$9USM#Mʼ]N
i-?6}#+/Bؐ
??<ka+M=WQgbBρFk;!B=׶#֑l	GL$sJ>Wvp\&BG^b'puU\$Co:hP5m6%__]g<a{zNZ X_N&"%#OX׸Ae4K جr4rVϘLN9B9 g.@=I?mԲFǱxabC+J4*]J5cˆ]랫o5^X
Vvz+W- 7-PƄ-f`cd_ٸk0ÔxҮ "HWLbO7UuuQӪ2Qi2TxbkPD ]Gs:[ϨTv#/u7)-:ޔkFg.))-U?c-hK5ʷR.M`燐ˈd)"=ct;7&!l
;B/Xb/M{7`|VT:~&;A6{lx8l7zV׻|iٔ3S!}Ο_[G:oz&~֬~olFD on9h/;*ӻ06͛X$}5eqǓ9m״J:cH׃=.9DC^bӹek7j={AB_0XL'Cn[fovP7lM9>AT{A:|ZeS}ӭ]dbO,Q>n7>w)P:XІzncs }Z `ӪohXH8X(⭳̩ 8%+g}!w{!x,#7ZδI<vnx͵?+*saOp:M㜦2Wy'ZdWm	Kx3
H/S=8Ųe
rJ\vPzD1Fzx:G<ptAӿQ7$Sn~Z30?N(v
^Ew^.q;:7ia	[YσaL|@lʰQ{*^q1j~:~WDoKR	96~ݙg6D}*2ѱ_d|?
:Gg4z+PU;\(@.,'a@E18cxk檖3zR%`?Yg]6'^|8(f7]*	T7X7Q`x6!TR5g*;)~9Ie|aU*nhb;(,huS-ݧտ_dWg&&:xXS[ԍ
~ w8Nnm왎g:iCi	HHCި:/L?ޫi2m{d{cՐ6Ɓ.bQ.ls*N~,;+Ŗn,kcxAwm!<Ss~>6m;=/;ΧFv+	+^؏C/@1 
V0q䆄@!17.Lgcيn/i#DX
(V(0&17gT@K-iE-_+9D15s{f4N7*hB(w }H6TZ*AN.1+$׹}<2IkeKưk⎡cMT#+[|REV+Xe>btty%0LYaOQhR٤ⷽd|8r(+#
_)%sn:Uߊ|y\2@Mra">!cA0S1 ȕsAqb_&|?ed>b
ʊuj~xnï::~JWGgof.cu/+*w;ۻopCg-(vJ\Rcd"#P(HHף］yupRC4l&ҸԨvFgӡOlb9ۍ09R7_9ibtGT&ߢjjM,,"N\'j4	ѭzi86uoEL?Ϗ~]Ebd˯	0]at۔ȷTLwXyTZYQd[บ$?]c3/ؠiT\1L.d]&#^p	(8#,`4edhڅ~ i9/-$icLp2u;%wHCLdINZsQCIs<?]ƨg-oE_*2WtDY&V2aG+:ڢg]80mC>NPa6HХ@C@˦cM+Ug5'#YR6
E"*()PjBKyj30IJaӌawHsܬV)=!LSfVl˹z!P;jv-.n{&٬b=?
*2YS`{v֮h+VdcPd+f=:\^ؠD^߬,@/;>]VC@oCb	h܉)L-!dĭiN=n@'۝#k>slĒ8$h.=j9yQ}GJs}~{2wϡy0Y*s8|Eɩ=Ξ7ipǯ֓vkj%_h\l}ɔ m\d
~j3Va@sc;]GB!NdyZN^T)\|F|.S"n{x0 dqΏ-b Ɍ6i.a}QX)x>L.
	cL z'h[|K`|h^8l#\lK$!"J쀋Zr&585<n'<WɶIxM 0-* JGot'iD	-*qIL7ܾ*6hRTE&Y`!x'Wp7S[7e V	>}@1YdCjW>QݠcCV
'&YYMcJ#i6~IzI؜^d%T#
]w{۽Q=%Er[RD!B}pzr'V%,-[w:@P֣?VCaP7}ˋLNvHGd3>~5tQ_-:.=A.iѯ4mfK@Qlk֕Xzڨ+P iN{KtGFVX_#og8wiej	mσcGRKQICˆbNp@ːƺ&~3?Vm)&x$U5ą߹|W7a#C/.u]u{<S<6=È8>8ەŜٽy3<@TOoiP+_RV-IvDRf|y˥Coo81N_%lc[>knTHTل)XeMy]=1L*y}?og-xngngܐŴYqrӒz, ]D$xWSۉ

:.A$I<ɤigBeL2.x$6L219m%ЮˊPqqm0wpvʃО;;ovk6k؉\g]LON"oZܸKǓqK4]QfĐ9-p\I{2TX؍K`3H?Ө;p,qEo^vi瑓`'ͳ~`D0M`ސwBnSrBb1 Ab0<g'm	f~;nO0K'A13@bŶ4 %v9WӾ%Ab5>29T;H4R)IYPB#g8-FmS>ieG 8w>WYdjL"AzqsNa|ȴ6E#6wTj
5G.Wk	{SI10_ k{*;rVֶ_7Qu^%1DI*UokZM?\lm͘$-!/ }OпvX3V'~N^%Q_)y	`g$>vù,$03/wA*&ya_eT](_ؿJb j[ϥ$xcg̓$)1T^;FCw*i'LY7?I,g"hDgam%EM]hӔ	JHT^%ld G)6Nk&e<^47|_T},GR;Rz
5jp4Je#7qjJ3Oٖ@7,;!#i]k[smVަ:~O ҿ >&7C.0Ui8=߃/$)wa\jCIEO}L],IĹxD,1$HO B|PP~Lr/8HOÒ2G 2ړN)TY"cHdyZ)얞ˌ# ۍ#9qtUj8/BYJ21?Ԡ(ۧ١C#Ic{DЊ19\Yƺ+_i[ }}$@\Iߣ_ebq=\|I$uIP~/47=5G}{hϪ*k'Z٘pF5k傁aܸow/[3$ԛI7Pau>)ħ<|6om|\T}xp
V,Z:&%){-Ag&!k$ͫy[۷8ZIθX
{/$\q8pw%m5aS7d$@`U&b`uz^-s]fAv,^x3F'ЙFat(xCױx v&I/0=Ѿh!AX	,C	@Ǚgl_}<DlTzP҆6*	/bMӁ^<
#tUK?ԀG$,C{qr"z pNe#A	{F i5"#8JS<Y _So]Z՛
~*zKۢrDz5-j$m!(kƈƯu!s@1EOֿ-xi BfxTQGY_#N BL2_a4׶KevFs*?~BܔzEP'&ZR:'dՅиLT9N7ԅAXIUdH#͊9_sPAcmC5
RPȴ:.汁XTXmHq=yFX^G7sx<t6v.[@m-^~[ksŖآ*kP9Xw~#\"Ulo7&ܭg~H/Y<] ~!$Hğ3gPK$R#mp3@n5B@ˍj;o`;xн
@>Oq\X+"aɺJD|weX!o#]oVŠu ümјwG3yh^غ=B:/!ҫjH2ef`eLϜr	txqnix{˴iBݛ ̱xVmo0_qJ)Ѻ!KJ	9p`3ۄi}gBeMK-ˢV<Imdr8%  MJ"
ѣR݅8@,!g5iH\Âgxaad^d	
^q6aZEK! kqk1{ϫeMT;Ǉpn?KhXADlNYf%
gͷRp@˅Bb6KsXhͷT.&|~0 sv4=d4LO`<3:!3&՟ T
e$-#6 I`!W	#K$%KD%h9Pʹ)X2sL3Ϣ^JeKŞLv{]/XHv"#rwevDk;6a|-t(f[Mre"Ԅֳ'saP-XGOaۉ;-_kz˰Șn^@<^#W!jvhE-KX_-:ƠBlI6,ȓ!?ỷTe4 ]fw].kRܫ+C/Tn,G	7R:]aȫY#ⅽYcw-W^ky]>7zX=AzLtAt&Io=]6Me\sx(CDY9(3=DA#YStH7O^bIfYj|Zj^rLJ\

Eɩ
@6DO&R^XR5p2bj3Rs2*5d I%MjU%%y

Jhaeb3R'GN <\g"9x}?K18]Ji
H&yw3"ϠQ2Ms'\y|~^zCn9|5|e2}0$XKh|1a3&+.}JHWLsr
TRݹтN<QAR -u42lj27Fd߉V|M&5 -[EZB۞y7ӥT>_!!sX%^zr~Z= SXlAZ|&;xlxuk7dl̂3e,",\\ 
-xuk7<٘'L^7-3)H/CIG&OaYU 8$dixkblb'pPธ# ^xkblb'Pso-y5kձk Jx=0EEpr bkɫHm:"Ͻ{͸K/8eQ"v 	8kg#`m&GxVx/#۪$eY^Oȯ	V֭
:Gm4~CIvJ|0?R6TC_]>z0xb>ʼqbTpjkEAjrIj[QbnjPb	祧*MbL  .PYidxb8W, fjxxb>4d# d ixbna )x;4i׉Q-yYjbB]1xka8ib{jI@jQf~B-W, hxV]o6}p>-<qVbIv>	DD$R%);KJvJ %<sy|/d󅆷;u{0,Ɋ2%)nh`>%h%O$ƟKPkwpR:ybE	9YJE)HYF>Ĵ8"/2F8X1jD4O^-.~tVUXm!睬ڬ:#3*~+Dgk 2fdBKߴ0Wi-P"+"IҒJDOwG88!x	|rB/lY;o2O'pO<7q ?&Ƿ+p-(4> QfDu(CJHEEJ4f);>/ɜ\,TL*XLm\:GG$IKQ%c<[/gnX*JD0.1C@b&qN{۲N*OؼKR,XYωh>L#+0TI"רӬ|ٮUL
JӼ9cvzbPRh:pzqǸ4]u]YPCq^U16(.R#1k7',}"}+PxWs^Xa<p͡>1FL#<\VPc;[4B=T=pNsQ6+zjr6+lܸ7S=v#d,ߢPIr/DNp=qI%'^1fAd!/E=k@,YYizul}.ݵJ0çLqQw T4vQlЍ>a1Ak8#	2&5$Qr|4MnwwP_4TK3;sJ86*Q8q&F/-$O&)IfZ'[IˆlMy~wCk~UQfًOݩ]MGW<0:OUw=0q+Ï~ϢX&:hBҹyՍdkeKX#/>>y6ׅrIu"#g|n+ʢm)RěU[h`{ļ	?-pxqvl8VĠplB-)ğR?<dRܨmJnQdP.G/g)ƄsEW7xt߭j:6/!xXYyK >~/xeEvIӸJK2s2S6/d-ee>vNѼ"Z4"f?L ox떚$)SjdCvYq(d%dLy2/윛ٿ0M^+_PY\ZR@7{s` n,x:'.nS+JRs3R711Oݬ :xmPN@ƋgI%b4
4)-i
Mn&%B	_Mn!E̼i|]~7O7Mgƀ}4RrsPXKBLX1K)iTD?쥓<(OFX,Kby%yu'Q]e exwojps!k8}w2lYR",5E$؃C-(tEx`#Mlz5TbU;	l{gy{F{-@_o4+G?k|d؁с	!uשxb4]@Q>P4@B͑k_\x;'9Ur]I,ҋ22SSR73s ['Mx;'kFp8̴4xO?7xǀ OgO wא`0נ`/2Pqf^*'7ô ˸*XLd
%,,KX* RPRpH*z̽>D$#U$(,NV(K-*S+MJ-RO+H,(LN,A(J-)-SV+3D$ɜxzP[<TFY~f56SԂĢ\Ndv1%
ŘNFw1ga<jFʩy)i
D' )X<bx}JAxQi
HXm)m(L2g2Cݲ^	An 7\~̿Ϳko57c!PGOjۍ~QueQο6kwpK	og{|v.y-*g6r43i/=nԁͧ}׀Lnu T ;{(@ڝvΔX<V8Gqt^sL<NJSJe@uU8(Q"F.&gYM0	lz,o61
FWu}%3uTe:-Fj`LE*<rקC#D!azLyCҦ}^xG͙a/?`}<y^|gInx;'yNrC+FV_v *L&x;'yNrCdEL732lnde x[u}Ckkcg|kP_/rJjZf^B<B#LVs%2'1ˤe&r)(h)8)d*@ ++QHO-UŗgighZO>$1!v xG9Vx;ƾc*嗤Z)d*d敤%&*%d)d+(dS&1[(8gr)(h)8&'2K 0"%lxMOAJA<S  n²$W<zqwgBOO`+|@-;AoUk;x1bFF-`ʅw3I1D&9\60~gǿ&.eɌ2UEwnq5n=^}<Zr)HSo<sO4uzpe uaY8y\o=x[,pgCf{m̓8./lkx[ +AuzBf 1xJ@ނa9l'jz*e5C0I	}	6[M<3}m'42ľm`uHM\>#>&pϾ#BiE-X،EBz)usj
eTT~,W(BDY;P4MٖC=VWZq\S{e\./m;y=#,x;'yIbC}L'1Lg(+'; %	?x;',uQV?I9 ;3xk$a:pFJBf^IjQZbrBjQQ~b.AAA

nΕ Xlcxk*a:\r  dzx*~Hte,v?0+MNgVܜò2#F 
)x;$zWtefq^.-ǢlĂb#,1[ONcV c	ex;$:K|"bԔɆb2~A.@s䋬bxEKR3K䀨"vuv?xW? ;d49Ctm &}/-xr6y
=؛H'q=N00	{ Hv:$c``zwD	_\_?Zi<Rˋ~4΅.KQo` MndmF;(y9\NV'߳N4$keG@U.[84Cz9/n-kPz c{m	lF.d@+kE/bÃmzvYr"_"'|DmV$4,UV'sBJ}VhZxlja}"[4'KUP0IN؅n@u˪+:7@lPtl,!oE[I"Ze>ܪF@^c$cc~
faf]qyfH7 |CEL
}"V;]6Z
V -+aj06ŶD0p_GJdwQ|LeшBbeteW"gWsQ,ز$ 5v]ވb\"?eh:͏ȣt*cDoGO6cb->b+}ֆ{k]lBvIoo+Kp%}SRg ΃Bc
u$~CgCLd,^tK|V7/KEM	wB k7,F	y`$SS7F{7I:Eέo,p\JA|!ȔfCы	feixO):*uJ@Ն=l/p-Yo{@uj"<$Iifg	BU)p)e3B3ѕ& L9Sz"V$O :'SNW%FAb!`lO\Edh`MXBvwۂtX%vY%5/emtJwalRe(o|޿42ٍm30!±N5#FT;6︔7aq78{; s |ŏTm[]ՙΒ5=bc
{42M
9ORIdO%C	
E9ArcTck3_p!,mI6| ܑMK)Ch49V% gqhXy%*RCV_2N;_"܀$x[o]V*f}xխ٫C?)
7uS7KWm<NG	M)UFgeSw8X_7cԜxj%JYT]m `4$/%wȨlnog˥^
.ű<ű77adK ݛqcD*aǚp`bn> tQr vf7}%uѦK$
1CCxkz R;1g!O<6ƾ+q)YBgr7\FѓZ|u)gHxuQՍ;R[e_CxEBV;`?{/Kx=isF+ Zul*4EY\ˤdk 1&uxY]l t7X2fW	۟ã'÷,unN7pWCJs#\q\8!?<0`GC7<=:x aΒaҘ/fS>ዄy9+#J8qv,௩}#sJ777m/nwZ=,\>cR/ɎY Agd#"%!|y,ɍqzqy4Ko 9{{tu3<]هf;Y=;.uʚ_N8p \Hoyi(H|M	L-ΌYxͣ f<{1J4]{s/qT"zFq$Ea`g^sh_ Oyy|.sy8ǻfH4&!1^2FM4d~2	|0u-*hʹQTE\EijN,)?'u #MRH DO
"Bv5cM%~-	z+ -,ÇV3B<tSPlsq<RiO&NV 
<[+E+x3O,9 H'	X9O@>?ϼ`&=&B~<F]ukNrOmc9qN<Ů5%DpLߕw*224H2l:^$RgyN5X<i?CH怜rH\+G/aB轛 'lƑ-QQ~lшCx,`'|=|y̻/YeySOSvyiN#d?u91Nq=4+#kVq3isŧS~4,4{w`:GϽxzSc°A:QXѠI@a{Z",>yN<DD*8~ȋD|5-N'XzPXcizpj7vXcYLy<u,ʣyY}<.~ogY%fXepF,H}cΫu9 hnN{D%3_'J((87K ;7G)CsycIH7qpsv.=:mv'zL1(]v5>l(&KE<'hJCo_?.֯/vD'ڈ:W+X?09Bi#*BWbG'8zS\0-!E99ȵlDuÒr}.}|߁>?	a&![%aqjKԙXR0U#B$F<U"X>u#v*JDZK/ lIS$(d+'^C툪z ޕF(Fe7fF'F- 4Jqӧ񫬅ټy^xvR=Ԥh1"݇)t
qXG3̆clgeyC;?oAl͕.,;bC:ZiS3+3Hv*,)OFBB<PJ=Ʌpmsr}9@s%7N2#>[n}/px^Wa+ٙWoxnrF[,7qrM1kn@LB\(hs|]b7L`/K&Md9Y-Bȝҟڞ 3hbIpT>4Ih)pBƞqL.qfauur:*.O,b"W	alؾ!Kge{2v^c6ZldI/+ZJW7R堠}xٳ̔PnjyH<
#kQZ}BYkUՌvX$n}zTI::k7<|9u|/ L\s^I:3d^u-mNGʊy
{p6n =v+A%tah([gۅԚ} 	[cU5R2¼\.|'Nȉuq''y좻F_ck=(A-xR3KT,h5A8-EkEf=>(?u7xF0C2 1sW?G.'pA rn'>wpN8a˜<I)J/tqM׍N"u-vUi2OԤ9> iֵvj^ň$=D%WLb.	b@V9[:OMrglheE5miINUh"ylif A`k}/G}S<zO.o*c)¼{T^Fl쿂I&;>}oO^f([}?-oh'h4?=Qd/=Wg[>dGۧmųl|?C򿰜OɛXHd#[=iVO?	Sw*r^pySB&`wB`B[X~QG{@2qy;+0ӭy/h1x;<^a:YYIk"B*TE*uux,)ήLaHTMYd`jE]`)jH&RN8	/v&Lc<"zў2;{s@`OH@'mлA	1f+(M6K	J`_`\"JXĉQ"HX4 fN<0<*j&᧷Ģg/oE	,`˿p-#Dqk|)mS́>rX2k
@>5_WV3gxJe:Va7qӓ0-W)g-_[-]՘Jx+Uh,H1cLjjYK} ~>9<zf1TNBQzu`u>oe|D	X2,q~a/'	sT>3}rxɌ4$5׋'NZA=<Vh(" h֘r*ة,hB!ZPd
,qKxkܩU:VIϮe^Sc/-V4JWC^E/
UT8k0|S[zhIlplu6D#s{Op*5cgd\Rv?ʾ$KlƕВ]reH o=7*tՔb{NR艭1*0$4g+GhXSݖKre}Z7AEˉI׵Zv91!6-'NZ\&II"2l<yuN2'Ay.һ/oig1O::c`I!d`BT;cA3S%J+R7"JXUt\cb#s?f~$o\Ή@8mR}˻h3sArsY۱pbH>"|]ajqOk	hM/5gƬ K`qcY(9ThTर3y{ʤΕ	(_}LC$*X_ZGUij^Eo4xY[g,7>aOE!p	pz}/V5};jk*J%27a+/&4E^ßg"" OT:((A[G*YD"Rkt)Khs$#Q58';u٘6ɛtȦ>DILz`O>+eUHt+OjU<<C_]&EtL9 >~7X;BOJ>n}*V vHth0W@Œ}?	 ذg4<{Ò[4R287ZfoI]#\G3nD-/%_s0Hzn*%.{H TI[hrk}
M%,Ǫt+)Yv4y_LbӣM
a-Qʊ#c=m(=o(hI ;Xr+7C݈$ƞZL'{?Xʫhŉ6HnY8|D+fx3{eQVo,}fU&P'=d?7wڥ c_XKr4Uq<U4Omp̩]j~+7p3_P4/.q][لGaz9h;p	ߙUs2]Ρp^\phV-l/40soaYW1W$֍ƃp=as$NC-`SI$[d-vEx4,vt%:k;kuѸtD Iy5#nnVhgCa*P(y/	l=Wtv^ĩO5"^%Z\㖺!tU<ylc8>(YՉF<3}vpO8]Vd}0Uþ~?%oz(;0Meq%B[@ъUcE:	[JFtNdhoˏ`;(/MQ?;IՋzB)EkpZ2J |#'Vkzya-vd8IGY|;DE.PcGF	i`vhj+C膜vؠRԍdeH8fUBDR7ou"Ai-}1/ƂEU%o=@&y@``^0rcu3=y6MulJ=<@O(LgWh1TC5vsy@kOdLN`)5
\x*S_SgYǃ~z.{	Ebgƿ:E-=yxH%\ElmNĢŉRzʊ8y٣=X9\zd{)[ҫJd:p(sJVvwÝTs'ʤ:9;~gm.y	.<&^@e(t0 -rSoƥ	p/"RG lL1eұ/5Oͼ՚O<{
'ABbބA4A}Pgk=Bkz':2"̄xt7!p2JD*| $۪9gYR{޾gz:AJc@!$3{%3?>a^".vdP>鄺X-ΉiN|g{"ǖt2^ĈK7w&}r+6i%M})-n{+_rAp}ghZǸ+X2Bu6GX DAe;.=&Mr_"/̣e*]4t1[I;($5߰x!+f`Mkp6j%İv{+2NAF(Xf%N)1uu-ݑ{ި蕥U7zq;>gTxyi.ʮW75aZNЫ|A'?*I\aPKhK|&\_X,*qDf*X;=;HogƠ%XE
UojDZ7//s,w"07Il[wul68E_{Tĵg>Rv"Euz=bɥ)] >$T,te::1үY*;l`P
pqkCH[W64Rz!ɫSIǿV`EU*f\T[jΧ:Sb?{4Teaꚱ:E1
xglHڛPL٘$4B`Fj_?Z \c&Ɠ:TG)	erD:۞sʝ42̤Łsz9DpQ}ĂE_7]a{t윷O 7sFgYs8㯻5VD(J~1$BVu@ȵ?@@Ɗc.h	C&>fUL},>3/vJl qZXaFUy^j#F)05VJd;.f:Xoxvno8:]vIX	uPXwvg:4n7|o@Q<?.yw: :DZo>!<1)6=˥A(bhv)̦qV7M$W*-<.f]uR5	O(B]3I3IwZwV{yݸSqJݱ~+	RͰR+SYl	"rUY+"_E(:[輺KиV{tGó~y2{Do9clBgڴea㲿;3]7hG4fD,EgbnEN|UYt03Ϫ
g%;WoBt%3}CgBȵ#qu&>6?ŝ1r=5iv@3Q b2R'BZ={8;Zkv<'	)>0W"Q r8lG'gsg|<oLk86Y=B~;_>a& ߾;ݽOxQ$;x˱cb
eZ(t.Vn2)<Dނ]!Mɴ~U#Bmz rQ6 ؏^!ws\ę/eD7ܸV/z}Clw[ڿ,Lz\ʶA7p}Rֵ֚Qlע\fєZ6Yqa̭-5W+؄Vo!?T`E	tƞNrGE}iClѴGLwoGy]gu#<K? |uj''s04a>{VGq]"`\#|	؞Kʛ@}:ye0 gMg5q..\y.7pvޠ,,y`K5!<*($Xj.ʘS7މMj֋S-Pؿ}$W"a/ŵD>'*{CNDbN,h7g~{VU|(Yl Ǜ#3ƥ5W8p4-]X6^)^tbm 8Ϭ-gLd٧z>ope7{luio>3FP w	
Ѻ+;QD3Љ!>Gv#%Yh:UܯUA娰ڥA)vL4,?$ciTCEQu9|XdťXZΛFwx26%M`?B1L}5Xgyx[klu-Y|H%5e[C$[2%R$-Ds9%Mi6I%A/ةQ@"hN] QI~m$9ޙ]"Y
3s{rKZycG۶~\	i	__aV>QSú1l98iq58O̵(sӜf6>MevWq9!ukF3CLCaX:14t6󂧤B8iJ;D9K1ҸO7w>N?xz"MOMď'?x6>q1Ǝ>;͓fni8,admp,C"L74i3Gr"f,n&29yi8)id$=Y?g!h9HZ6+t)ٝSz9},asEL`ZȺKܝXQeE1Mץ9KOYVF52ÐMpI1RJDݿo}q~9,ؾ_lqmm^T,4Ͷ_cq[Nzz>D~6rT`yH (F&GlVDC;t#ˎBńJ`0mk>lk!Eż̆o¯7;*`" Tmm"<vTuV!Z_nUwUVҽ^j}5KqPVKXfH1\3f.,_VC%jo_oӚQ%|z37b@MVOJWnϣr	7
yihHDI~\2o\TH71fxGVv9*U,uȃdslT{djwWHsx!ʶrYVspĠRd,."G # R sieРHH֝;↩2 -8%bH)]=Wnwb[xP_RB#G0<~xX! Lƚ`Dᙢ3kM#\ΉDΆt(
[=4)P 69[x>0c,3mkDJQ@N	Gt9$m;F'~UPT݁yb4n4^SsR|4U	s44!'14ù+!0ضL]^HDbDٗq1py?T/_B{W96@+	5 QqrX7P<6^iutD1yuW9:vJGIp#'B uZ*v#8}W~B2"u3֒BCoPwo? ˬưl[-ΪfD^L-CTtT61MZ/y
wy};SkvBJܸ?x uEN{
!leb`}>ꎀĵ['n;GCH\;wGX2cikV1MZ+?9Gt ^V87kYlyn^	\ӽTkϭ6#Rʼ1Mv0'{]}PƩ9#NWEߧ%jCx9#aIFܦ*#$Zӌ9jΕ򁺟e,N :V&Kך!0a&ppÖ"V	kK\zJ8dh.m$Ҳ_4];fh5&u11Sk"ocC6wsΊ_eFS&<b$O5y9.\6Ņ\jX֖0af+tu?+j)O![fFمUggDHHEB()#Q`m'Ҋ\GyI8?Q{$=Hd5GY\Rso[O$1vB[F޻^d'U7醣aQԝm71*djݷN96S62.r"7'E EHcTT$nܞwD(I-\^ף%6gpXvyµyqѥ8j2RXv=uyhu=hK$$sBx'$hFnau, 2ށ擣zrYr۝/ʝ"yPqIg"Uhn/6|br<A+g'2#$̟苘X%|FHT5T}g<~\KE!y~54ߚ2ޘ	HQʪ<>V7կ^Bz5ReTKd<jftMn㉶fy6P'Y>T$jq߸dV?e^2#JȾ$?S8/
mkʺŐjI#C>Q +,ӆsn]V}6F͊P"0sqSyF	8abƇD]Ao݀|G8
~-܆>zyߪ'IKU02㧞b&BNl#ȝˍe^izf~#1lerL?)ƥ`HkpDf1-;6g+<12aÕ&>Z{=]|9EwPjgQ95m]3q_[峾˘⺑2|Wa@[Yu	Wվtup+A
U2yn-onEuKFT&5!oMVԂhnFL]
(h	:/>.XAWn3] p<Sʻtύ&x|t>L*'ĉhGۮZ-Qbzdv%ank}>E6N׳]ڨr~9)PbQjꌸPߍxz`\z>^)Gfɏ+LG-y^$Qj6<)᱃$"Z2K~?/ie
.r7<G3[BJh&gߟBk+Y@oZh.Ѹ_	18[Op,8g*8N-ǵ5xnPZ2D3}&{J&;e#4л-Kh8g0пu5xZqYjwU{r.zJ_n1 $rK<Ezzir&>	yB++M^/	j2(zYhQ/2p۟.CҲJ>`iK7&-?$mڅ6^XFm+fA%F~N|~EL0톃	oų$4}-\Na)fPV,KRo?_aD@37Gl8=]XK^B 'qfw.Mk	uK8+c祤;m*8-"]W+M*0Zܸ>wL1y@'"oB@w)Sًˁl\EhRB}ӗ**hNfr.25zگl߾v|JT<J|ͮPVd
7x _

 *    S1,#.Oz#@_*BtB;CϳDvFKKeLRT6RkdrS]S˳TRV#\sLpgtvi4|̈́rTD@mxq;|NgL6q W'Ex ZtZ!P+x||K6OR$0٨ ̃Vx2	epm^4yhd}Y'w 6b,ӛiɢnN'O~"c,LcTI͓ENd6y329z6dl6b`2'lT PKqxq2	e=&?ۜ89S~dNɗE7?`.d|CDf<׮x&oM/³3RA`zsuU0#"2Yi0B6s	zL*ɿys3XIf5oF&8'w\TXVlV>佡j N.Vx+Y'`KM-VOSHQ(HUHKL/-J,S,IKRRJr3%z\
Z@P_PQWfd-4<̢䒜JT	 -Y[Rjځ P@{Ia_ǈ GwW%C_ɶٜ<'T0=&/䲘lpqyfIr UIԴ̼T`G'WĤT
|b]A`,UPM/./JLOKlWJ a>xq;)yi
~ӓ%!|W!$#Uܘd8Y.-`ra3Lj}vaZMS< GA$Nxq2	e3O䔟<Sr̅#Ed&?ـi,N
)M^ϺAu7:I bI0Y@*1^2e&
LqT0,7irxXFd1IL`cdl^|Y׳_,Lfs}|`2ӵ&ۅN6/q 9Z^bxmo@UUM&CUW
ZB\iND`]Kr;]:"+GYX`K:=ǅ3O2+r̭K$/foϸ99!a!8ωO4$>ߊ<ӈ"^," yG* ģmENYV@0<"m!`;cIsmG[0"*BC}i#5E|B4VBu'	^mT[ia Z?nɯ|[Ey+̪v}8abY6
5%Z׆nZ>:1c(Klt2*wkqz*NG.i~ٰn:*QBVZ
]a>RXtq5ͼpKnWA9!g,_1ڱ:B	,Yg^7MOjz^YK֙4q~78|Fi]Z{]d~wtig4hf+ȭe7Ϥ("tOt8:LhN8;!<=~o!lZjƾo,SI%%&@Pͧ3GDAeŵ][q,UɣL4	3j<6QwГ'S#oes4Ӗ7n9N P؊*xoD>caWLKIM&?dE6ɞlW 9'; ueOrx! D/!i%xxoWX6a8}3[# 
	ix&uSpF̓e&H$%Nd6f|Y^.'3(RHgd&dUOl2dO69  G9l
PD6+
y:
ũE
)
P+u#C]=]@
3S2SӰY\RTZ U
A^138$)4%hOkRJq<He$P S	.g~!~ )0|ǃ (x)Sp~WY'OgW|)2SJ FixMoE"QMҤ*	qzc[~8nqzg5dU^ sϑsJ#	H\|_RPj%z3<3_xlh aPG*L;f!X[7vۄ*l h8-$v6ݪM	bk ,^p֛5IR) [ʕZ&T6Xuz$X5
VZ^;81JRA:/ɥt9LkY9-ܯ>FlXptrX\Tjy-٠C` V(Vb>3=Ԅ޽chOsWXؗ''YCP4MXʖլ=/MԡSgXD䴴ifٔ,PN7_M˞&J/w>L)r|ݯw7]%?lN¿mg.M$Im-Ng#M~ܚ	H%S9,t4[`='?AiW1MIGh$Q&"HFջJ-~-:ah;ؠl<<5ZL>w:@XpY3J7{sҴq$AǪ&А:N_-:P(?9ef8 SAtX.[4
}ݏ>M&ҥ[&ҵz{LR OւңF 3Obכ.MRj|sdTlN?`٬wUG^Np|o2q8WAOB6!=ǰ	ۣsM8]b^UR4# <M'CYeU[T9|-9:)"{nLa'"/T]xye`t-]E55`+v Rɳl#, \X@LT3hxnFt<>b%@KŃG_S0V#S/@WŚQ.:vWdBU;$ڝaiQO{z5^9^jE{0njĉ+t,m`ep;z,Ps0:$5ˆ<GC9x,Ԓ99tZU LM1;onQ{Ěq=3N&gn!.-tw%Y`CUNϙ'M1;'GTeGfyT3<FB$*?{l>xX[oEV
Q&&C/Rq[7	iKjIj]>lc{f/Ane$[EyC woy@b.{k;5Eew̷3朳oGy"{t>=')Y	ZuIPUۉ	;o"XiH$_%rs)b4U(* #\#>mR&RݬTWM9AgS\Xne:f:rʮ K"PMh rmB CfCrZn\̔2fX%좆Yb2h1]]Tέkkg`) Ud*b]|a|_ppgSO*՜r!#wӻٙ d1AUdB1[ld72
G	5_<u9073iU)Y,Y&:M}>:z詘UN7\< Nx۰}o{^Dk>Coc䘻'~pm?vޮ^ǋÏ_jT51ukȤ6h,{g@s ȦS=r";䊰 7>dۖ8Tס5 5h$Рnʌ0`<L˒3ZNɫڝVsZ#ݢuFCJ[S!2W矷cwסQb'D:4d$p2rxƋN_H*ai0+!qgHH,(AJ;NUGfn fxflf8>RvM1I\ݤ}%sjۧ¶"SKo}Z#y^=5,9˹2duCmm}ұmDn3n酳c4筒hHj63+n ~Kdhqc>̿ʍZnLq-3.x6Xr$\Y*\TX<&TQI*CTcۿ4IJ־>N
$?̑{xt|iB9~~	b'l2"	:%kL8sL\d:j[`E/3h-^I?\'9G(/Dqi1 -JUWOR-@ّ%i&Dc{'%!\/g>p0GDHPs@Tl
~Z?]?4l]Ut3|DNGь%P6qT%'Op)^Gmڍ'"*Hxq~~}"hZ&FbvI"5y?YQdj<}*N5@B#q{&yʵd5ʵ2a'Rþv6yi|]9UNE'&~;gԯC:u#E%ݩg-Er,Ks8~<y]Z([Xcߥn.F\\d9/Tkx[q'be]퐜`P9YBt\*e',kQ9?/-3($3?O(4dEy.֒p68cBbvh
Yx{0Hx/mR?xU ?
l@˵(6A*  W1cxq	FF%r1nG1NWpHp##i)5/}3ctwsi +`1xq{S&sr;m>"2\'6eeĐ|2k1h9LEs2M~`<9V}s~ 6}0#	*xqD-&O|[syQ'6.-}DE6.Uؼ,0L$#)5ʜ}90EW`Ll1"|&1#梼@`f 6b,x[l\
 09[YRp(KNU0
IWr¯~|_|pUEEE
Eɩ@V^~BZ~i^
!s&;0F3ǿ ($U!-13'xy%d(fwC 
Kx[l\
 09[YRp(KNU0
IWr¯~|_|pUEEE
Eɩ@V^~BZ~i^
!s&;0F3ǿ ($U!-13'xy%d(fwC 
Kx[q'Im.| UID-x[q{S&_ܗ:X7dV氌`YA22o; k|WrxRjT1% u3
]CgUQFCG-,u!
b&7	NQq@PDҽ7+o`T;Bf8|;|>U\F=_&iL҅;X}qcwmauzePi@zJys	2VIbx*!7m!ߦ#(. lv7e!J4,ix!̀ώ1Pڂl@>&g"0:bTF3 d)IgPY&AQ)aPWn:vU9^'rE	6#D({Ps{KNyٷ{^vjr;E`?/ܭWK_-TᵧTojcz_QORߙAL.}7&L7Р@Էvr<܃)tIڡƢ*xt._Ux[7\܆?ܓO
Mε|Nln &xXMoDH4V튅´lnQT6RJm({ֱIJ@'~ . ̇v"6ϼ|/=̰^w0@_^~9ZX솅Bv)lo˥{eo\nFB,2֥{m, )zl y.6Lh>@n!2#ùܦouKA$DQM~/x>*I@P
ઃTEPZ:c&Wx	.ڬ#MȨb/}J`{Afw4vR85@ \Ej>gCP{]̆kGxkۅ Jh^RЬ/5
*D16)ָ=3ZZe;UWʲ&(iyJB+tb`Q<s
:]%Q6$,6#'&2O>UZrln#R)k0xlUPaҀ
S2qbq0/R6n)sԵO~X	,8vs=('l!	*?/,'EiJpy^Fo@Ah<ހG.:ݴl¼9P,܈}>|Ia0 Yde9J't'b~MYZ>|oBr\a92L'ndxMc6k>db肖O7&V`BnTp+b;VG/x&h粃f<F"Pgen<z)'>/iKnh,>P}0`ps7vjқbU4Di&M[Kjc_7O'UZz*YcQ?kkBqx!Z|B!mqRiÔw20^Uy
)jNоm#J[}
f#udJ6$WMѕ&S7ZY3&~wy67]1,[zGV&W g\g<|?TZfFVul6Sg\&9㻎Zx4f,RN^LQoRuwf*x_\_	/a)LAhQds8ך%OI$sd?wnZ\vs~xAs84O;mx5-YLMmv سxxXMoE%H(&QJ "R($8Ic)RM a;YZ3cОh*g~wn80;Y&AJcϼn~^韹P{a~~<vԽ3d"	rP<Kwf-o.߃X:d		5`K(v+6U=CYARS%ب = m
!|F96<;u>$>CdGsMm떂E0j6(@~筭|,Tr	(*H. SZ#iML^i@&밮4!"+m1羿k{
Ex2DKԠ"<pd#<D4F^a·ؑ4\ϣ$Y_jHU$*2bmSI{
dg:ᙁѱw2eMߪ.5ᱪ*)
C\tCE)vhF1Ŀ0OԦڠ#0 RZj?0DVi!IpHU~.gCs"bX*N)`!L0'ÐCz^<J;껥̍S^+?Qq%tۅϾ>%tAl@<p"?x:)a&)Cj*;IjAdN{t>q@rr#.HSE:@gu(P#O>2&}}6ނ$ùrpev>Ndrlֲ1C&ĆmoLm:ܨ,T	TWfbwϫ^
Me-xrɧE˄xPN|^ҶX|>Daa8,1n\72#-i<҄Q6!^֏O|}&\5ړz*p۬7~->9j
6<GoD[Uf"{0=揳0_Uy"

)nRЁm#J
fcutN_7%WMѝ&SWZYCfw{67]1,\jGVW g^g<|?TZzFV^P:NlvG_LPwܗoЙ8|ijDY&㥜"Ie驘{ 3^̚U(|>SH֧:S>HoAǹE!\i<I&k%esTWJ"Hĵ\t	y_]l;Ǉvbjt$mK&V×S54i%x1hAY3BQ!EV&Br"`۝nofMaac#ViRHz{+km"ݻNdv߿su<[y^݉]+FxDyDKXXĄ&\4jSͥ	OMVʰEs=u-"lSm2ѽHHh"z8w<.Ԍy[	\ίLL(Z]q \<SFqHdjGdSW
DQBT( rh[UaWpnWB0 Qw Hʁj]@рO"$\=ϚNͼ\|tb\xS@uNz-Rh&XZ3#[31L<pqXMl78uaEm)hgyf>pfFZTaoV` dA]|LśMpNQ*wv}!q;]Ђ&:>G2BZjy~pcX@vB%I-'{eCbcM.!G2,fxx YsLE1񎍘}pfcMk}lWԩ6>$`°8B-(3Ě3f,uڰbfenN[wH'ҕAbeHkX ©8<,8#TRk2 _]?rFR;ZH#MNym`FH$͇KFbˠNl}G5͚?Fd
6x[:
EM*J2RK3R&8Jy)%y
ũ%\
Z
I)1LYi3FĒD4a7z1gLfRe,VHLIѹp|/>oDQjn~P|r+ĲԲԼc|O $?r	"xwQGy8]RJB*R'9y"/Y6s?֟vZdi&+_a1&UN0Cr6FA Rp)-)I-OI,p%!2A%y%eEœMV/T0~Zl?)k l@RGx fPan	g;014yGmuxwQ-&_ 4lxrQw"&;ėLf+ܜ9 
ix ͞Ξ: 0Kx|Q?nc3*X27Juk^0y͛c -*C Y{_1J'&0Mި$9wJ7'NKeZf Awx{zQ8ZX&[^Pl\ɁJ'/U<Ut9f[gLU'oT'3qE7_`Qՙqr䏪7'L`\e&'즹@{\I*3\t`l<*r2] Lma2mαY"S'{'O^*;9WVjp%3e'@DzKY`5O%{9 xzx;zQdMȱyV3 
L/x/ 	EventType³<IQM_04I}mx IIQM_04I(x;yQm~3-u4s< x[kOIί(1&ɌH6#X $H+Ymlצ79ݶ!aa6A~խ݇:ČƙoGG{;HLuL_cV٠WR=Py4ЉZ5AܓzđzTo-Nt6ryI0WQ<XäjhBǾfDO	"l?3Xqq/0=ӹ*Ȱw8˦٬8t:8: hқ(i$@7W@@gYLgL44f {`,1<ᢀyyDjQΦz:5.uyrRk^\4O/[GuvN[S|;VaMiP	1 ԖMRC<tfh@-HQ|N&&%WS 8 H,dh!%nl>,%q>U'O+zCuWfSƣQ_'9P5>heHCFg<ZJlSDD|O F5$	́|=/>LDP:QSf(kE:OTui'	M6+g'K ;PD c}qf)t&,<c)˫I<C~v4pV
(⩐*E7	aI~J(!_M>Ze41WA(ψK=BSd{[=/UҼԲŚ<g몕*sM]4O(#JKj|lPSW.)bCAȵP yIY<Y7uz|V|ڟ_...7s6G78`3'p>ʆn{Tx2| c5"
#q7MW>_a4{0$'L_+X֑L	ُ"gZ 8	?Ruug4y DQT!Ӛ'"DMLa(>$$Éyb@h;b@[QE'E*z C{El:AoltsWó)Qco+}73prn}zuMmŕIa9*8Ht>Ƭ01I$Q5fy6n<i<Q{{'_i="v}3蚃qgkKd'Xƿܼm3D4޶t-N68֬>Xp5 sC:$dsu!1:n)7Gh3⋃MiぎfpҫN%P%ҲyrС*Pv񫬵7mK)L~Oc'5Xd#Q`'2 5a  	9`TӅR\g]ڎM>P
TUM}TGQ>	8Ls O8p.i9͚+:MbEyGӁP]M2؁͊AD(8mk/|Ş.Y0D$:}m^Gbh\iqn.NJ{H	aU/a$|g1}&%.EEa%RAH'"/.J!r	4zgk# DM(6C>p+v_=4zFzF)*XL0d(@uXaj#"UE1b4s/AB؋ r8 $-§5"(YDpŜÉl'nnZp;aڝ%%? "P|XGt O~?OFtNRn#l#&		g']pXZ*1,gGN[ҀdrEV bwJ?庲bGI~)Z2Ş,;/BRD`_k3!B.aE`GpYs
Ufut=eE([_ڣ=YUL
G#ITdʋTk.)GmPɜr$i$0հ4(kDШܿ8a|4x)+$$37JƹygIҼ[ ĿU$$#Nkyw;8:>:GD};LM0@{v~t}D>a89]k]HQq؋(NY,T\)zϚ$*&󕴓°ERDdq!yX@fQڑ/F"o8uM!Dq;eyu36o-,5qR (Iu7Z2PD|0㳃R)PYڒB"5.K[=ҺR<vLqNݼIɓ{F,,Nh)U_ĥ!'~ıTRSWeU}WE6K8B>N	J;Q*E2EIr*lVB]ˈD# ԅK)\hRF?(yKu1'Ca>ExǕ(v~1	i1*-OfH6,r 74[0Li\Ut֕&҈nRRSEpuA ݭn!ROq<Sm5	,C	$\-(3Ä:q:(]g[_ZgOtu:Óo[1~ (Pe
lY-i)ei: ͽmu7b.^΁7"08 C"cDsv;Aᨩ6va?=qHV㻷<۸`zt.;tx5sS岎:PV.z$|cfeHPdf]RT"Vn8rM/6lHQ%ajߌoNyV,mRs
..á(,\u}RjdRJ!OL/X`Lpc,r}%oXOtR!Q<,^0ߔeWQ[SKz<^c|fklmt(-9hzmۼxvo*tiLjrZkW5y
5jvl5yq?rp|-'Kv]w2-C/-[Q2t0('7&
{muz{W(5Z6_M˼9m?KHxQyeѲ7_P竨b:اzKB/	5[WGt-ɷ;}u$]WZt\állz4jꢭWUZYP[ @a{˞aSj~56{_#=tZ4DCDUwQtC<>"fEQK;J=m7';T".!ykvqKfqiGZVرt-+W
KKxz{J(~T'rb4+c%{\ 8M7K˃XUTgJH#%c6JUr5('>p\ppӥFiWduW厎}ɞZGO$k{/K:	lI11ygvg~;BV*l<xe:Zٵo?Kk_AjKncimkǋ^m?^>h;>xݼ\ ,vQ_ǵݕkݓ:xxq%dn͓{X'[2O.*ͥTXT 32sR6sX Mqx4 ӄ_fp	4f	-/'	AofDx' ӄ_		-/'	Ao@=@x;xf
":96 H{^x;SyE&sYr2*tFfN~f":96 18Sxkoِ˼YDm2~ 53xRn@tX( A*tGH'HSN{뱽޵v\"!0GfrB)gtǸ<<[-2Qړ4GIhWJSh̴O_׮IW3JUץ%~Tt޲Z!)J1P[cmTI23ř4ye6 hM*~Uuxr?(Y
vE|EGI2by:_w)2w0&26;yFjX&Tl` 	²i[Kȥ[\+i3$u6W-cEX+%ؓ[{2byXĈa3rxe7BM8mD}\gJ
OՕ96Efd7:Lm@>z+ȹjrWƅc]o<ZMVlWn|wh#x$ `Mmܡ:.\"zXx2eB?1{$KJ=yW_3Ʋ% ۶cx2eHΈ~ڇԔSSl]F ͗Yx  *kYyb^ߵa4xR c@h'Ó.*kYyb^ߵa y3WRJrcQ3(:axL ):mP-bup> N-=%|+c#z/kO@WȌEQ@T wPf(`*&;x9 w!Jt/2,(.Hrɭ>
4#MŊ[)x9 .	j/{<2)Ǔ.Hrɭ>
4#MŊKx )1kа]W'L)>ۘ2W=%~\7Ǜ ."ghJv&4fPp ~_,O'[O%GdA|*.B0.Ϳ)}.*1f CIJk߅."config_capi.h >7űGNƝHTQ.lؘ{ö۸`w Jn9E?Vu\}Mnv x ):mP-bup> N-=%柁qhZji(v&X!vu:_q8Qᛴ,Bm3@И۸*(!^lB2.*%-)¹Ι."config_capi.h b^A`#
%֓.kd2)"Թ;@Γ .3^zATpn x )ʣzj0kQő=%#D 
mUރnv&VsMú: 2M3,*.6~J*#>w*VXu@>V3.*Qbd:cPD97."config_capi.h kg;*+%vPHgn.a=e> ,b}A0z,jKj2 x7 b\c-[vCHvf
ԳݓAޱ*U.Fx= c@h'Ó.*kYyb^ߵa4q4x &)It7/F?ͧ^ߕ7G=_ЁcȓX0ԺF둰,-óَuXsH1ړ*ߐOwK˿'Eo?
.*t5t%/^."config_capi.h ]oyg|yxB.*.LkFO 芨x"CSڏsqn_chxd bbHgFB?m.,evf6`0AT0~]{M*:tSuPS^3.SN.eŞ #b+sx /=~hI||6б*O-x >)5<_wa;ȸ[KچV=_rp)Q|꿵Pj8q)m#l^e.V~".*^E2U;2."config_capi.h )6&z!/G}.]"7#,YO* )d}s)W
Ox S)}o~ϻ+]=_m9Ȯ63-6/W	j.Ep?[nywjۓ.*Kh}R	W}6Ɠ."config_capi.h ~Zހ㛫c.8dt}(xZ cҁ4<)M
;x S)q/RD>r^=_6Pfjhqk̄H].*puIg(PAVݓ."config_capi.h дFnuGFʴ7.dH
nhGZO_4PNvx; @qB!oLdz`/P =Ÿ3idEUx.\D
Jx S)q/RD>r^=_vE[c2WB hPtjhqk̄H].*puIg(PAVݓ."config_capi.h pwQ1A8_˒.dH
nhGZO_4nK:x )1kа]W'L)>ۘ2W=%~\7Ǜ ."ghJv&4fPp ~_,'_F~L*.B0.Ϳ)}.*1f CIJk߅."config_capi.h >7űGNƝHTQ.lؘ{ö۸`w Jn9E?Vu\ocxY[o9~WїC6+a)ɨ	Diէx`([-nn+;;GLՀteR|:3𚾁p%cN^pcb޾'Br3fI>0pk{Y5\X+Ü@HfkHxʀ},3P9RN_r3svJ-΍O91[y̌~t˥GÞTNZ\՝_R^LkPϜ+xSLՔ,A* SHRqŴZ&fIjblr#߼Y#~A؄w~mc0ޏ?qa8pp 	^f/fm%1N141ɔT.dL͹jt0jR>h/.khtZ.$*g0Kkˉ,;%<.Y+PaTBebU\yL:e۪99(7p5&hI>bќYymzdiuXjtǸXU*tU&nK*R>QD09sxH^iJ2Wڰy{SnVm>g1'SueQ)@^AM`ȿèwu[_Gu㕃=}U
pslެZQD4`%MxD̓5+b'W}$jQ,n	Sf<БMiY;@¦];\f1/NFh	<8alC2>n&~|P.dSpc_1A3$r-D`2VaE!Y;P|>bX.ÔJuEwx{;D~x3n( S3Z98PuXA4`	zѝ?o\ELH(UX43Ebkh4RGja4*]xߝBZCJтdzHlqzn/9R)&A6!⾐i
lEfi45ꭖ*Mݬ6%8[IXNS)o)L4oarkmO`y=N]Gl5V"&KRW961ֈ̈́uSZH?YETh7jx6'qфn&"R3#&I-9|31|Lݹ0lҺeba(U	8Ii1ݥ5TNە9i%l[߮zOsXbue&Em#l_Eqv|bAjD۩[kOò3>ۊ|W؎70~ϊOb1V܃Ċ'VP`gb%ϊiKŉV=Ɗ{XĊX<,VU9YQȱE6h+r&tuOV@Cupb[n(EȲ|,~]|Cʱ/:x7[|DOx{|,b|%EIũzJX$S3sS61n^#YAƑ Jx[g|priQQj^BbABAQ~rjqdyĜҔ|tJjQjQBrbAI)	+*ۼJКq!͵C6og]bFHe Ϸ,xZms:ޙMd($䥽{w0%Ő045גIwI~N6a3l9zWtpZ{H:ǝr{Im`@IrRÇlAb""׌X!uy$w,<IuL8:8d삘l$` #BIO`z ˵ZȈ@!\ROaFߖJZvEVڞ,A?ox:m{L<;BC@9=	"BWw2@_5FLYp!#>et	N?? G}r`d`=Jz<dbMz`<oW}!^00,ľ @9Wڌ@,JKv*+FVE>(EBm@
Pr<JlO5T%],d8$VA7Ad~gjyْF/4[rJ`qnX	`\{~GQ7Z!끟ph8ʣ<6Jd-;Ґ;!٦Q:MIaN[l-u]~R[_%Y]߱f؁Os#c#`/Ek&.ZtM}yG He"gN!%Bv7b^b53!|*UJ,LRbl(֞eyJe	g9XXBpL2vq\1GƟO-嶒ٔ?$K;}#j
"R"*tqe	Hᗧ6BL]-cD$gira͍E,P*XW8ֵ}
/@@JYunTXc,GqZƾjE]Z49aÂTle̍@1?T"PR#T.>zC{mF,0
\c*uD0ZO>_"70ڟLg0skM}R{8_0qF
,&a}쳑=Ós5XSPS6VrqiNp/6<p6lu8YR/Mf<X\YaX|Kx0p,ǙU|ǎ} #))_H 04E5O!7CCZ6Wm#/ &hu?%I=CpQa17*U{y1vtwpz,&%q9yq퐎(-X{}:+muLE8tSސm	l`@&999OE9>7Βg鸳S"Ox}c><y#t#NW{/Ѝ:7ѸUpүxƟG75mv<MONգれ̳Y=Esȱ/:摃TӺ5<_,5O4㝫x4Ϳnm<O*Ujnbꀼ_sܝl4Bzկ4ա1zB>޶nn}g4޿yʇEPc3c쓋a4N.8K鱷؟SS39{|xaN9<*o\,VMkE654m]cלPWN.*h9ՂJjqN%[qu6"2i.#O+ySM_fmBh/>Q3[?2g\T<-w*;fZij͜w]Sy>-ULM9Wt#|RZ
vULią?9ʇ~y3A,A$<|SAOΨФN%Ąg%JUgV6{^(z@>{Xa+:BQ%=t !OfX0yYXZJ<@3!N`]`U%cFBKryGK/k@A`Q1+ox+Vǜ(7&-l=kj9WС}`i<ihzjU{;6e<^͒ɱ:okC1ip	(9ŔNr'<J<n$l~ֽ5G>	dz 2;$a
g
CZ"M!CΜT5ª9UUUQOX)爾_,Ni!q&R*"0Bɒ\PI3&BTYI)m4qVPţ3pLVUͲo ponUᑿrl ]駏pC3BԭL#:ElWG쒔)3V߀0WBZV&;/ɱo`Rl5ZȮ	Pԝ4"y@')&%c	ƗrY7F>yq:zFg(GS
,L:*\=U%BkE-:Dg
8BX+^XWSA]TҸ,1|`;n8۽0m42\ܥ7H:9޴D\˧2Y^='v,]dAq ϪJ5Oc2~i#j-4ܨS(wio!UiHQ׳e1U,FՔ>?KKDv&b({]2PZǗiIHLpcWi*7f,~PMTQ"t1
X3(nOW^ŻUD=}LEY-mɳc
jj287?TWg%TҴJ*5-̾KU(b<y6XdO-Q}(cw=F.6gn'ŗG|Lz՟=d5\>?SH]v2lnx!|Cl97^ %<x6|Crs6ɷ3)M^&˥y|*l5A"
z%zz'j))T;ded&oP,eMx*ړqL~u Y&xZkoJ_1J6={vJqX%iO`0Y{V36$RmsB>8;agO{a`lq'}kN[KeQ &Y3GM}I*㈝߱t4G"36Ŋe ?}1SLF̏PRM4{N#*,d\qfh4ykq2nFrN％CQ(Ҕ%_LpB|QC>gq8N$<JFK㑚D@*L,ׅAةgn]Z}_#"uvYNuzigf/nۮ17,! $k
 /F~Og#Ch`N$4b3LeJ^M!`@"r*WO%V|89ii_ P8\[Y cp#M;1	NmJ$#H"s"Ŧq`3_JLPR-7YT׵f=dh^caEJ	O"ސ>)$0f4 #H~&șB'!R&̌'|*`}pr&9{<H	03&<YxySc.~H,R񋤐dNs#$k[Yl+BCL8++0	3 teFN+y?8Od<f)w"~)uJDX/_zlQËKSXqBCeSԥÈ>ry8OQZ@C\Xj_9{1Ns>wݴ&o=ӎM4`x-FL2Ur<E ::v=Hs7hƋj\{'^.3('3)|NNi%U%CP*Iu/N4a
}u|"x
UcDCa:%Lȏ2$[d*gS'lG{ۻv,>Te-͗j>KNM'G%0*L!j."Q0ES8HD?k}]nA3pXqxpG]_P7tO<cfIk!	(VR p޸M|J\o,Vr^b[
}ŉ:0-X4yZ'ݘ$]52ht 4JSj*z=EIgs(Y}-U5toa]G
[9aO'IMAVvhct?&TgHt`%J)8
m)e5N}'Z	k} RD-F!1=RcVY@Cw-	#m>DP`3Ƅhnb]s\-x{Y:̯5WvV۾,]?T7QmY軩^Fm0f_чF# Av>[-߼{h5g\>yݕQH7ܲ6
Qm+[7xe_Vm\1F*jH\>_ROm?љaT
|}Cȍcw3?~Wm]Ci %'Jt^尷tρ'rniʻiinЬ/Tgm'N6Rm	;ڈa[d*Ĵ>j,VW@`! ;+6l{@q0$|$,Pлv4|Y*1veXr}8
:Qy@;k*bŐgg8<<Ƽ0 !*K쒺N]kzU-V5)ѐfN Y3HHi6<hWe^yܶ.I+<\G?3t*͊'k/4^SFFp$0%bt8dJ(C'GN-ERDYM!ܓ|gUYz/I:|5
oaPtxK lLw¨ZPM>Oo1'k\miaǦz=R?\ըS/;~|obo!O3'rP9mg99mr a_AMPn8,[3_6VGC?QÎx3TPuU"\PoT
3MmA dΗx'"bxv)	-h~068`iWs%夽B]<š1>rt4/{/` Viv"MChr`߳jXig355 Ne;t+Nffctq'!/Yŀ㋋\&x\m3O-:uxq4h7@xr:EMjLLcgxmە2WnQ .+NUq4FzP6X^7utN/ԒuZ/zXϵz0}\K-@XfPR^\_6Y.9){zuc=xF ff
DCx
 *4cI}&C7!Xrxے;mS6ϕ. B\lxے(e{-L'x{r"u{>Ģ̼ɽ|LFyy\|<l'7
Hn~W Ux{(eC<
x  Gqx{2;aJjSR2'g 0x*yJ$Ҕ|ԲɊyC]\<]lL'OTpQ(.MPH,V 	(89(I`@ 9yyy%):
)%9PKK
JK0OSptq)Cqf^r!&AO?xOwG'(sq)d)O"åW 7oKEx01lzjBL4'm." {=|l{x[<'aJ| %
x-1
@F{Am$EX-DH*e2@#k-OU<Q^.(͈{J>1|GGmM*JC,[	TL1{ίQ9etuX/Ynb@gc66x*yJ$Ҕ|ԲɊyC]\<]lL'OTpQ(.MPH,V 	(89(I`@ 9y
yy%):
)%9PKK
JK0OSptq)Cqf^r!&AO?xOwG'( EosxГa%@hqBbiJfBJjYfrdE~	Fɉ<N.aή

F'( fx[8y+/<Kyl}2RRKRSR23KsKK
JKRR2SuK3R2@@b
/мF!͖| gx[ y+dK!auPZa2+OR
-`UxIIpbr"<G.xI\A7S!%,39UG49C!X!*\PQ_S iQprQ/RH22JRS&1j`dG V"ix[t(y$crrjqq~QBJjYfrBqirBbBIFBnfrQ~AF~^B~BBQjn~IBr~^IQ~<|ήA

FfxT /#\xa=~6qlL\R2SJSSrSS2KJK@@J)8gMN
vtwuut	\!ü<Bq#7ِOA:@sJS2!f*$ ][Bxad:(*O#mjIrbN1	BsENYct7#w$<]gr;qd% 04Uwq{|(0aLټ/I 6Lx*dC&dnf3Xj7I ]"x{Q!%,39U U!-H(($3/]!4%3_$_!$#$_
U_TP\Y\XPX7#@kcpd>vL<r 1(nyxk
k貙 #x1cvFKS=ť{^Jukn.h$XEz+\OOޮ~JNS5RL"1U&X_.7[/Ue(>mQo#)"M.`^ 3g,x1c?Q_]m9pdL N@x1cvFc_y|w2z/nYrrrbiJf~Jj2e0DN̒s{)Vw.,(-O#/Y=E|vև̫ y,/#Qx)"t ŋ1yn exKN/25-Zlk~|A1 i8xKH#wˋ9nܩU
 `xKH#rrlKq8S: wYx]s8B)e5wWKPC $D#@5fe;~-ٖ_3aYn׭V[VN{i`.~d7]'asPV0b>qɂ)ge}粋;K?|DK/d3k\/`ρX8g&\f{#,_`Jh*gMt9|@W썟iu~X,1\Q]Vhi}ӽpg
	̚S5Vk<ɬp-p'{`aIdFAJg fc)
ylo:}Xvk~c.wW~ӆo׬>5WAc0K M,<S,snA4wZ&.H\΄VqLV@M9p3OhxsV{P
>f}чͼQKI8 %tm5*2K9`bGt@҇v[%#UoC'3>V{@M !-=<d'Ԧi "HImjwMhgA u\~59b(-5S$NC{Swbv|h]j?nNK%Wfvg1N*RzүNO.fVPrdEx
<;T(``ϝ'9 O`SwqekO˓:7	ME9!!v'cv.8,R,a<̬gd9!?Tc @,cz㶜 d5{'\w3P\h	nj+B-u["Sw K⯫CfH5i
aTp]7HS9TT;W1xh^5:Fh+ơ8UXHl7Lisv-.$ ګdWp|o!rؘ[A1~+ `lUG']sג;duQе.ZpV\'	xr"NX34se,VS8wn5k-=/s'!& ?#iu?7AqBs#|, _
`U)=~8h0Ww~,>IÉ".-
`2œ$Zd[CGȂf[4tr@450oavYfڐ3oY1 nJ@rx1DA%|4>	Èo˹_]pІ>S;)f=B~}otkk4[6υŠ6nZ`0?w0F]z?./%>7iX?4aHpAdM=V 7u) |"֗!7Sacx&$y\֥> z ƸϰȦu!csb" 8p>P݁2C¤}jUIg6?K=Cr0$;C*lyNJ̖KKBEt].u36WtԁJ= ~We][ FGXP}=tӷu_$iBC\FkЪ-"qס*1ӍT(H	xM%ZJğ0awD)ʸ:XGVhrA1y,l<ےm/Ѕ/e?xN=Hba}X<UL}P&ч@LaFyy̚<̒ҢhJ'/1}ĭ1h1><ޮ1q#U`yJlQ2#R!p2\kB?a "j&R+qYBpXr]lV[/sU`-`]fw_PQf 9-Ő{jZ*^c`Fܝ B4SK>,R@norfM=e|n]~asߛTQݴ1uI݅eMPF]U ҆{?ѼTڞk´C)ּ*Y$kQ/II994i#01y/DgHG²Q'zP6-/^"#m	s/"׌<R"`A08B#j.ZuWeMH%LA] |j=82r65%%n	kF;|<?@i@X1;G<ZI[e8lIݐ5rSCռ/,'
өeJx3dٚ]\6Kj'6lF|FYi}>&oQחH낱)BJ:-'qߍȴɑ8ެ5q)v!X BPJܣ	A)g<ll(",|LDYɬGˬ
z0SO\?~'gyhCudrlGSeǧK[)=0WBZmF>nY3}ORM`OVV'C޷?;m.tBW<z;mFL3VB#Ws;#ƩI/nUf\<3ԢIJ)e*Ξ}QވbٶE͹jÅȑ3ޜk{~[{x,},XF=ZO-~
WTu,1*sZ+$ճ4+cC
}!Fa
T,T$*@CGԌ{4"q0Ms+::*x*3+ 4z!D3|AiKouAoBp.aOY6eYݽ}x'؎*5UO܅8^8hʠHHHOĮ=̗{fnQD;7r4к爼RU2qw(4)I!ɣq?+ǀ?^L89W3o/zף@ɦˌi]M^nHl&=;g2]Czv} L
E?薑 w"yK3Rч {Se\]>CƧb;J*08@*^4z湍ndnLt]X{=ǭV\gS3!'C"5Ig@5w{! "v׼JOu&yI䵐۾cvO	7?7l!e˷g.;C6
kK6Z<K̆`5U٩rBvVyV$0z|_sIlER(G%,PhFzYǶ1Kk"g6wǈ@;Dv^WJʊ5s\Fv*Gxq}hMO6T։Fܛ6I,Be>Ռ"V[?}ZMk959nzYRx+w
rY+p.o[$bZJZLtkti:RcǷ#U}SN*:i\-Mugc0}9Ŧz R<lTDu=/V=El~AёϚl>,Mkd94cv#/Lt¤.)h	hOyrIJGgJ5٫'=]l}ATw^?~'MlJ8xz,̼tԼTҒҒ~ʓgkl^2 ytxzQ<R7 [!x2 /	3!/	\,'RLeax@ ҩ@U	R
 andb@>T6WU}gi*/xrq\L]542SRKS2R@|ĂĤ̜̒JԢ[%'nHUH,)J,IUOIUOSHK&N&[IWs) s~^qIb^PV]OAK3$155)HV@7,(31)'aN ͆:&=@N#Zx$Ol:qs('# .QP0MNc!Q|)O
2NvX|@q39|IKMnHެ'̄"pHn
*AߨfS1<U7$;yX'SxTY8ZO3yA.
y%
e')u1A5UkF$ɦ@ڒm#=^EmjGHeb|@usxh1/ aZBx;qQk8ҁd-96U  qx;qqQ=|
a)
y)E8&?`	KS2*Un	CUnű}zNGONP/ByFfrBqiAA~QIBAQ~rjqqf^:Тʂ"PqƓz{2B[rb^^~	L7!͛*} bjdxJzU97qx Fnxa+) 3%9xuKAC4L<t bɂ:uYv`fg ީ?C[_xб{n}{ocgn{2'Lt1>C09(A z=	U\0=+&88RCG1*;t"ܰi,g+ߩx_B1A!~0)Bpw5|f= RQ-ܝz3v-_\T$w_0FYgkq϶%k ܦtN
*xIg{cN**7 ਫEbR1zԖ%$xuKA1C4T<A3O}wgمuf<x:v-[ѿC6~?yy>G>g&S-WP`D}t]]b3z?f  )/^ZDs#ǵm.$ՠ; iPr'2U-qdAHܕc8Fy"JiQdsJ25<,cva.狠nAz?Ƙ
 Q&!Ƞcn΄]	]s'GW&Plo}̵,[
pG1~B["^NȘb
*FH8l+!@4yk54ŋ\l~07>Nnuxk,YYC/]Hx[2q|L))%E
aΉI9%\
Z
@H*LMSHEQRPP_V\W_PXZTb$(B9cX3K2S'qwrKjrNbQB	:Ē2
ũ)$Yy'ko..}-jJWx[2,LݘLv` h^x/ scodec_base.h"aOHCx[1,L542SRKS2R@|ĂĤ̜̒JԢ͛%'OdMOIMOJ,NP/:>˼͗x  !x[1q|7of <~x[1s>㆏L
?2Uie+$d+$(
ɉI9%
E73 .9	x:BLid23RtJRR2RSR32K7
1JFR&y0iE,L4=JDB
,RL>hnOT}nOi#ٍOuIhM6w0jb2쪝d*Y!^ӷ"Y3~ 3>4x1qGɊ6} Dx:q\LZZ\
Z
i9
y%eeɉI9%z@i4̔bҔ|ļ?_E4X3;D19?%5;,TXT d@mMMLOJJ,N+Οh09i%̙G'( $)){A8c͚>^ YQq
Wx:LZZ\
Z
i9
y%eeɉI9%z@i4̔bҔ|ļ?_E4X3;D19?%5L*J,T ҒP+sSS2AJS'793lf ;:qx:qkF6F͍l;'|@EzApGF8E2	y"S0Y^us{*LH2\E4Jaj۵uPe=n2e7e,6'o
]3yNg]gz3HM.<;y# ޽d>x>3K6_`j PcCx8zyoܙ''pm^ak>5 I
G'xkAi
))TV@B僈)mL/LcŧޞJɣ>)u|ɹ%jK~fߎN?MBWٯ̋ɝʨ$#332	Qp	a.ЅQ2U=yX_&3 =^lnzՁ倞b'7҆8K/DLfs`_r߫m;͎Sin;Ni6[zU\/?kKWAJ{`PwAIQ.%7wNi9UE]fH`4ƵI/7t6cX__,q6|ddvRoح3?6=,ܜ?W8iCøۓmtob~ߙB\X{y_VjlC.O};FO-<PbKe_8\pjrwWshme`Dj, 큉)T"zadE@/,M"gZc\:֥<F?B
yƎG[|*;=??Ѿ`D{xjA)_B!&4Ęn4#^Y30*\(:> 
ofjKZf|o?.Fȣ1DDECP#%QPa.ЅIE4TΫI3qo)jҚ~W.`9׍@Hepl~U
lB[Ap6Rr3mXMgzN6fn<nkAe4(L71HQ"w(/ʉ$tw]euͲe@N	Q kEօao Ki?hln{܆Fa¹?WsZUg,(=f&/($7PBƊR/+Upui}~}]_R(55aV&iT3ٴGee8H<[B261C@P0$~"4}1a&xN!h;u]$)s=ĝAxkDW˅ԠuR,O<ꗵ- u@@xSMK1EA
V(EhQGSISleU 'MRA%3/ޛ<޾LQjZN.N6峣zQL*vAD8yu&ql!SLQTL0,Z|7ci#Yh\1\($PY4&BEC(\44܍W4FCف+N*d>0#XKXH7=aKşlB>o5>0]s B*ٚm{B<P=zK{L?@U\+}	f2s){r^XjQWo+\0z8AH-$2߹XrrG|4
O4 ax\[o~X8/mZ(J#$|l%AZID(/Vt
.hGN꜠6Eeo.֑jYohw~R/`#uPN[gz5~dzdS/ꮃON$Y8+5Z[\QQuDf (_<v^{;zP9k_NN6M'wL8e;A?Eۗ$2QO*XcQa0R`LEYnhћ4ʣdV 4,4yMfv/
;ԂDwX=^4ȻX^^vAJ.Uo4<!~z`xVveF$M-'xIy9>ybkɢZ-̵NHu2:ђhAοIfYXn1LtH74s5:'
zh"	eFZt@C)fFkĺ#<l`YW=4|9/<ZYtլ^DGA`z\c*Nxmgf6ohX^2BV>DѤ"B:i[Ԯ4	d=%2x͡s5odtMo#<%g@q1,;3_|d<>KsZd"Uǽc̢yTE-Y>ʠ3@u!3B]kԎyW{rz僂ru"+}Eud -dja؝rլ\:HZ@dF%[]ɗ}RoPa32?Ϝ߰)>OHЪՂuXAzj̓8k|RtZ2W)QGRRtkT/DNzA U-_[M!u=Ү	qrIS5X`a?*F
MfK}}! O1lNN^:b@>@r<I]>Lyv4ocbSIC12S!4T`G?@VޒpQg)IפxKwBMtpP70Luzp,e[ܤy9%;!͋N4i{ml1ђ"y|!GjLL1bװ"DXp49.cI.kx#c7Wѻ!F&0v00i&4(p*]TllAimMe9 O=X
pҹl$XMΌdpctX:8D8g=Ɗ	N#|`(Z-z'^`p
67~ҳ |}I?goZ:2M`\j4ȯR/;g%SD3rbއd$hQ8f*^HњGj;^qla(QFr(P_V`9V>qf׹2̠mxb2c05L<:5fG,4IatѿcG	=/  Lf	˥ D8a ܒ3)o
:iIV&%3XRVX&Ɩ`l_K*wVCsvUdZrq_fB<ׯcqX<zWyZ9 pPB+*o;0j
a´80 d*8Pp$ϋ\C=}	y?ώ3CYv0v,7k$ا93p	ow`Ι ȥƙl0=Հ&x96sQ/zaևEPEhb=2ZRHP BJ@d$2[a@wrB*KASLO;YQ%ZhPsENjnzeu3ER"1:$p2WgztOa0cu!zx3܏dy2jrCRk	mk7	ʟHs Lj"`|y<ޖdD婬{KM
q4~ q?2mN|/)gny@!DRK6@A.ke\kr3~{y	ڌ5+GsnPܻPJssKR'J3b7!):j`Zd!정\z^u/X/$SkZ!l:<Ґ\OPݷI%H,I+91eeJeʜz/2,gH
#4GIKRrW61MrK:qAEx*,Pofn MZR?_Mq̦Aju#"
}4ĭ*	8%r&=§\KG
x*u~g؅r KI9O̥Έz
 7Ul['clӭzl./P&Ֆ]bvęza6% Jg*ZUvݼ@FqT|GloHl͕QVaf_| 3C",̥BjωMlw$F]7G-ēRbB$fI"0xH*x@2wNV39߾iaMuD@H6P% aD!QZƚkh(s%+30끲dd8zdN(p/lbF8o'	_1N̪PFJr	oL(~<YH.0 0Aݡ;Zt
$Y~z6Oؿ@7+0-53䞙pY,>~G7CG4eI؄ MFsNOU.kW=gcIaԬ<D}RT`ÙQSFQ'<nUڅfJkA,rh ;U
k:Ɇhl,1Il
 <v5V|[p]hD;j[{[*V/Gl-j<&@xSKC@لFmE 	Aw (25}Qsxuд{-oEsyDC]#wNΥMm9MqњeIx+}`U['PxxCv3L]mRC7<i&!lHsLMKIz'5S܀L?^P"Y4g Iep\|~y`W1?[+eiA~*UfRq25n\#1H.<Rht<)ezd&zAxe1Rc<.*hF	&uԆ/!Iz;|Y&􃿤aKq !1x_ĥi&&%nܐ_Xr<^h k՞LkgަM m"_'{ϱ	4eucL\ܡC	'Yv_EI`#qɆ.hz
w/9re@FPR>6dHZ=0ҼI`8y˽6W-2:|y6tߠz3iyIwӭgCB<$mUF$n	OPO]nIU==uY q|E0]b:Q=a^Xeʊeu|H!/wo^AYbE 	MB+RřO gXiʛo@wRO8H(nh:H2ONp\#ƕgR&s<Ům:v	%E]ZGҎp萯Ɨ;fήrlHm_YE'JI6.ց ex%zD<>	oDQoF)j<N÷H**,['	ɝ"6CހFa:x[8q\N^--ǰxנxo-ɌZbpO0GOx 	'd
&"p~񾮾A@\&BpP?o?p?yNܩ>{7/J ^O	MxrJN|MAeY$xLKM%envA{@訬
o+ihX8[$Xԫقd`-#v.- ܪ;yZp?ZجTH/*JM.ɩ*<W{I9G{e(rsHPw3$Edwia̼ļTbX<TV $2td0HdC(R:('1OnrBIfnj~i	y{&kpOrUl	M(
:.&{0 xɸq\Nj̼lǰxנx5!@=}<]ddcy١:'/aܨ/jP$PDU2?ܯv-zܩd89#'konJ-	prq.$+<r/N|M͠6f&'hSbڃU$g.Wm%MMo֕<r*qC4jʳs)h) 9FjN ;0dy->Zѭ+
ժ_T\SPZ29WoSZڥ6ړuh4rfu3*/x ˓XAl0I''-&ejGDP*ZM>ga)2$(2/!̃J2sSKK&otڼҋu`].28$7եv\dmF'L /xZQo8~ϯ/ lOw8uܫ.>DDeQGQqE}3d9vZ9t2Egfȳ#:-~=^j]hx<)*R]ڑ_h*)}Ю2)8?ObmkZ5S]ia*LI&d
J̍*g1>9+Wx\ͺIy,+ggժDu<l:{3W_!t|}"[֤JDՊ#5wyB񦘟Re3RNک3o, hMtܿ1_Ny?Gׯ&e|=^z4K?44 am`+*oE~U[+浚k
J햦bV0er4^yyBFgGGg's1n7zndX][DϜsƤk (f&u(`1?OaynfN5DE:5j0Q2ZW֕A3νίR"Mè>cOL?hܿ}N!b8_&1:z!_Ɋ$SM|j
[3JgҽűHBMI?ҷ1uD6	Z8<+ һ)*/9,"R+0a/N{XW,ma*،ο_rjIv+ &3%86YX(>1>,oGoŒN:?7~Jb{2y-J,<{&xV*A/o5^c9\L3	<gGUOs~[=MPB9:au 5]M^@{Ȁ5TؕCߪebQK-:n~Ey-X407Gkjr`K15q;f	1luFɁ~s8tLHV'1HU'Sչ$@=0&,rNC^%q61<(oWڋT.xha
4g*DY]$!YRxH`&CT 0F.>ϷG|Y#̴,x7`Y%س\X<8B,h҇!HR3Iac>+z@GDw+zx/<D_9Xv͞m൙hާ4<tcMJ'wºEf50YPu	VS-ȷS K!{	im¶_i<zQvЀaxmQu'A{	N$!\,)GKw1]%ǚczR$8مĕW.ȿv*;vVĝN6ݰt_PV;(_j:5#[$=鿴{4F0e%EVnbՇaH8AڳGe	Sݯr=2?hpv<ilˇٖXyЩM#[{ȴfuEtn"KO2RLƠ@q78%MMqr"K	BfbܿNjQXIa\hnQ</ѹ(fm}uLq0/a+iFhё1%{H7AIO< SD4_71kuO/&prj˧ja뜛Z$H*7NP5x4Qq4&67"{EO[ŞVY9,"*V|Mbq[nt䯣ig=5+'s"IF4ЋjZ桹Fa7"'v3kupڋExNɖtu4z4be d6Y  [K|t'=v}<JBF33Ə`h|[>xGI@y_vδjtg8J"#q0#fw:{Zb&G5i!TPVU7joԔC6GQ{4PhkuX=W;ok+!řz/x_b%t.k[
ǎ͸M	,]=Bh+\ R}{/;2l  |6xѨ{&F	13cuws;}N])SAmplŮ_gc,pB&א0_}0z<&?p0 e8[-4ZIº֭t!EzY4MP2,	(9(dU"(6:pvC2n5P9͏MkA`)R@i=*yw`ly<j,.CTb[_rozs:&bKFE} ~ЇOxW=lEV'9?xE~BL;Ώٻ!{3s.s@#Z$
Tѧ@BHH4DH^ͼ}{>}3QddM,%Ye	ș;=Tg1Zg=gHCFYHdGL8RTQ,
CLk.BFN;OB137w+KdE,ovFkv~ןǪIA(tqV*wQ+C3NJmo0"0@H@Cū9 $bD͘i,nVqL3;*=];>t.D9[AS"GpTB;GZ2#LrSݢ8{r0vtp?7W=!wVЄ@eB)cDV1"H%[^PHK噗Nɓ;g.nkkoo2e"=Tu_g+v}}D5C4|v5LMjL	dՇׁI`&	\J.FAA])Wix-
S6uJË:e!yH"x2?}u1e(}U`iUfƙw#9*?R1lPUvx{٨Ko瑡9KjqуzLT'cA'/0=?e(A'l%
YpG%򣠇zzڽԘ0 qu򅵅gP,.1 \grϤGiP7CWZ (ۉ|d\ж5\^fqm%E&[Z'9&NZy k|"S y3wP~
7u"9Pj#BDpSl=/zf*/&EPP
E:BiuQWP~&^6!:SxQ2Z:4Hy^*2 K՞k-L̹@el? + ,gnhIxV'eJ4Qg&3ˎ9f S+bkHaǳ|Lo$2jZ)fCJVt8%xgSEE("ҏU~	wG?m_[[tA#\t
N5	ұ1YC_/?sI*x~?}@wR.Ewg4se͡awaUo396J_d(YIfl@EK]^)B	=!..j0H+ޘ9ZR\ qɕg[>JQetݮ8y뗯<QI{0{r^1*#xc/|҂u+T%uvI)nZN

xp&[DRrr%P@H&<9bͻ}b7!:ߔХFe8v?Fչ߃ fWJ1<~ކ92r$ɿF_uxmToEV;I-'N:NI[")"ĩ)jImF =wf?B[ThOHHÁ^\ʁK\8P/
 r愨DM{,!-<ʞDjBva#MQmzнL\&Z	BAG,㭒J$vܠøFaI9]ՃѢ
!6WL\8CT?F#_LbR_ߋTDLkZt#R~O)c>V Yj}>amcK3Y&&pbvu_%nnN%U.ǵM?J`Qw]4Y1F8Ա
tXIǷhN0w&V[ՠ)\h׋gmR7*	]([c9r|mW^MBm 4YhF>lRџ䃑#[C]LGG}L!<;6}mLј֋Iqkz;^DILLf9(x1;``m(+sX*I)c^YTc*%Ҋ%O@kF|85+Ys?}8N/o)ye$)8:\ښFUyYʄGhE26+NiU6YuBܜXͻwDd1.|}!_=%73n}rKZ]Ng:-Ѹ'_ňńfTFVk)p՜oB9((OJA]t}WG8E`j쎚`X3L5r8~6iq[jt[ߙ<<#Gv!ܿa[}NyIyTzJzq)8.02Fxk!)'1%$?(@4%35/9?%KAKHIEi
!(jrSJsR
2SRJK2"DRT̼t=AYً3S,'G3鹤&$* MK,,ZPZň{rqk]T BLlmxk!i3* 0x	T@q&The file declares the native APIs used#based on a MIME type. This functionE!
 * @param mime Pointer to a string that describes the MIME type. For details, see {@link AVCODEC_MIMETYPE}.
 * @return Pointer	.	6Znbased on a decoder name. To use this function, you must know the exact name
 * of the decoder.
 *
 * @param name Pointer to an @return".	6mRs the internal resources of an audio decoder and destroys the decoder instance.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	s an^
~
n can respond to events generated by an audio decoder.
 * This function must be called prior to **Prepare**.
 *2.
 * @param callback Callback function.
 * @param userData User-specific data.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6Configures an audio decoder. Ty$audiothat can be
 *@container. This function must be called prior to **Prepare**.
 *2F.
 * @param format Pointer to the OH_AVFormat instance, which providesdabout the audio track
 *     to be decoded.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6y?Prepares internal resources for an audio decoder. This functiona**Configure**.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6es an audio decoder after it is prepared successfully. After being started, the decoder starts to report
 * the **OH_AVCodecOnNe ** event.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.7_s an audio decoder.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.7\^s.in the internal buffer of an audio decoder.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.&7`
s an audioG$:must call **Configure** to configure the decoder again.
 *2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6p)Obtains-about the output data of an audio decoder.
 *2c.
 * @return Handle to an OH_AVFormat instance. The lifecycle of this instance is refreshed when **0**
 *     is called again and destroyed when the is destroyed.	6~}-s dynamic parameters for an audio decoder.
 *2n.
 * @param format Handle to an OH_AVFormat instance.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.iNotifies the audio decoder that the input data has been written to the buffer identified by **index**.
 *2=.
 * @param index Index of the input buffer.
 * @param attr DVabout the data in the buffer.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6$.Frees an output buffer of an audio decoder.
 *2f.
 * @param index Index of the output buffer.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.&	s whetheris valid. This function is used to check the decoder validity when
 * the background recovers from a fault or an application is! switched from the background.
 *2.
 * @param isValid Pointer to an instance of the Boolean type. The value **true** means that the decoder instance is
 *     va^lid and **false** means the opposite.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.	6)|qHxSMLAK)ZJk?1)*H		،)l(ewk$=hLl\#5hH4z0L<=xE$y2u3xEDʮ
 p
<U,V?sqqR%̨ U Ud5% _Љ
E=}NuN4Ppp&;®m
=*EVx #%۴ԘcLDQh }pB;l-kAMpy)RS8l
mu.sP1Z(5-AW04FХXZd{,!Z޳?=.ST7Bk;Xs==g| 51^3de}3DRI:돸[eŬ|[P훿l`g2|-IÚ%HW	]FXBCʪL@޴M)HR.<A,EL_ey(cxneF$ш 5Wlne/~+^hih1qt:`9k{~WGׁ9fn.Ձ<-G$9#i\ap`6c굶lkU}cDcm ^NlxsŮ~+^'O'S#(īizZx&hC&dGf倢̔bҔ|"ĂĤ̜̒&K(ley
 =PIx[!)'1%$?(@4%3%59?%KAKHIEi
!(jrSJsR
2SRJK2"DR̼t=Aً3S,'G3I,JU(XY S850qqk]T {ANPxOCa/**
 * @addtogroup AudioEncoder
 * @{
 *
 * @brief The AudioEncoder module provides functions for audio encoding.
 *
 * @syscap4
since 9
 */

/**
 * @file native_avcodec_audioencoder.h
 *
 * @brief The file declares the native APIs used for audio encoding.:
 *
 * @kit AVCodecKit
 * @library libnative_media_aenc.so?
since 9[#based on a MIME type. This functionq!
 * @param mime Pointer to a string that describes the MIME type. For details, see {@link AVCODEC_MIMETYPE}.
 * @return Pointeri.
6~3based on an encoder name. To use this function, you must know the exact
 * name of the encoder.
 *
 * @param name Pointer to an audio encoder name.
 * @returna".
6X}saan audio encoder and destroysQ2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6Ess an asynchronous callback(_ events generated by an audio encoder.
 * This function must be called prior to **Prepare**.
 *Q2.
 * @param callback Callback function.
 * @param userData User-specific data.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
Configures an audio encoder. T<]about the audio
 * track to be encoded. This function must be called prior to **Prepare**.
 *Q2.
 * @param formataFormat instance, which provides>dabout the audio track
 *     to be encoded.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6fPrepares internal resources for an audio encoder. This function must be called after **Configure**.
 *Q2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.!7ts an audio encoder after it is prepared successfully. After being started, the encoder starts to report
 * the **OH_AVCodecOnNe** event.
 *Q2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6@p^s an audio encoder. After the encoder is stopped, you can call **Start** to start it again.
 *Q2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6(oJs the input and output data in the internal buffer of an audio encoder.
 *Q2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6qhs an audio encoder. To continue encoding, you must call **Configure** to configure the encoder again.
 *Q2:.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
8jObtains>about the output data of an audio encoder. The caller must manually
 * release the OH_AVFormat instance in the return value.
 *Q2.
 * @return Handle to an OH_AVFormat instance. The lifecycle of this instance is refreshed when **GetOutputDescription**
 *   (  is called again and destroyed when the	 is destroyed.
6y-s dynamic parameters for an audio encoder.
 *Q2.
 * @param format Handle to an OH_AVFormat instance.
 * @return **AV_ERR_OK** if the operation is successful; a specific error otherwise.
6iNotifies the audio encoder that the input data has been written to the buffer identified by **index**.
 *Q2.
 * @param index Index of the input buffer.
 * @param attr Description information about the data in the buffer.
 * @return **+AV_ERR_OK** if the operation is successful; otherwise.!.Frees an output buffer of an audio encoder.
 *Q2f.
 * @param index Index of the output buffer.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6.$s whether an audio encoder instance is valid. This function is used to check the encoder validity when
 * the background recoveErs from a fault or an application is switched from the background.
 *Q2N.
 * @param isValid Pointer of the Boolean type. The value **true** means thatl is valid and
 *      **false** means the opposite.
 * @return **AV_ERR_OK** if the operation is successful; otherwise.
6&

/** @} */h!k
kx/`C"SCZfNB^bIfYj|bYr~Jjr|biJf~jSTVTP_Z V UXYZӑY2L*J,T "P+sSS2Og^`9E !~:xc&Ԣb%.̼ҔTĒ̲ĲE@W6gc<e,We3Nffr[@|[7	pBxB%Y"*&9!I3F0f j	_L A"xUoEWlǸi\7LɤUNHD[5Dۉ#JU%>#3Yh BP%ĥR$= >* =p]Jاg9.WI,V,
9}-^٠?j1߈AO%ް`Q6dqO^LV Xoy9?LdD	I׃kEP]*C8u?Yx&t>|g	6SR!~D^홲B+1rGH\aؔR9AHk*yIlX&3@:>9n;a6@`%uux)nU/-_mI\69!Cm!H}xPגULp")~w]̂7Xӗ>>Hu/ō%]黪Lv3ǃ3pUQ"UqVax-mTDV-#/%LS-AP8UeIZ3	㮁CCH@ЀwZ*REN@pg2`:G -^;V&1V[ﵺϮwX&7qpŸL]%I73M4[}Qz |Ws#/:jQM?N3=_Ohg.FĚ|i\@em_җO&[LFUa3[n%,B6Ftϯ;LOVAI^҅Wti26ÜĴ4u^' J8xFGdݷ@fr"Ά@滶RXyZ_S]oջw81g<ؖ a#=M3G@g],xl6:hh̭'3RaX#xUoEVlǸi\D&ɤ	UNHE[5Dۉ#JU%>#3Yh BP%ĥ$T)R= p?h90oR/س}{1G>M$Je}XDQ<&+	Ʌjߒ%S7mp%XTM<- sdqOnLV(Xo~9<HTI7kK%P]*C8u?Yx'+t>~w	6SR&~@^MY
%Ę̸`QN$x0lJ軙~Hs*}JlfB{YNZF?}+*0ah ƺ@6-ENl7kNw^ `p閐U>bE(kI*&8 ?z6z\_fKRg-ٗ_]=	?{ùQڝA_\ST6?rvG5|E"^[UU	TT5OTY6p¸k`4]`&KTQ8{>2.&0,FW1cKfަl{cAi~Vڽƻ
Cbɯڢ݂&;èXy=y깑Ԣ>~}-dy[7e966]_hwEĚ|i\k@&e_꿳'(*ܟf
f[	˼?c/<CyS*aPRtqU]zBv801-M<mݭW1}&CpY-P߆٨Ha	x^WF{$}tzcz'&<w',Gߍ-	6|Nbx7fcЇCBT\-d4b]xWk\E'_mvE&i5mk릉ժ wZ71)*%wnvݙ~$.iY}(>A|}PPl?ٷX̽馅!ܙ{s~lgĵ#Yq]\h8]%͟[X&1#t๨m'.ٔ"7K1&67$ե1åL~As9!1ff%dE8 i39r;]rd)SZkxB	y5 bYpIKrEJ-Ү%S$N1p-$bO!6q
*Zx!vm'3S9Ğ.FNԢ	GeAcp195p0~f@byI(*vO7G*Q?_4>e@AKl>j8޴FVp!K$ԇ?Ǜ$j7bvZS
Ӄ&O__uX_ևwŭXM͔Ⱦ)lb&QU9.&ډ"Yƞ`cM?~*7w)ȬɉOZ_PqGGſ5moC3yA!Πp-nUxBsޒWDEyqeQ׈j-m([{(),z*ZoKU䬺Є؊?1	I&$C4*]-^Aˌ5d&ZG7~piB@/U_uh>$&q@RW\C}KJH횸ՖRimFGE:@!*%?ج!y\n<zm⍮%q+ֵ\X;bI\}ޝ~XǨ_wtj~8О򕾧_GpY*gu[-鶂َۨaUJ'6(3$,]%VI".,s]H\((L'43UVM3̑\Z0?J*'lde8͋hCx3aުfT|(hOwUX6&n̷~ڄ{.`el/ܕ	x0?TCl'$8>bt5/dt	L)JW["A4LVBTAg9o-:𤨏4ct}ƺ\bJUV	F&ŶhxN@7{~X2NM/y<'b{x-KSUU5d|/j[oCKǑ=x%W?']tDAq`ő6wI#6{z_{Y.Kh©<ªn}e	7&>^JGﻣI7cS./Bl
5-㭔HkX;th,yu8"l9BW@#)\D/@|T-G9whǒ{*>:(ZB3ŕs/f@bxj۔ԂĒ̼TCC.-̼xҔ|xTjJ6ag$D11l]$Z\R_!,&Gugŋsrۼ˂ɊtePBgR&_`4#لĢ~iFS2Ra"zH !Aũ3cr%Y{jiIAi	0Y$edWi48$ @I=aG+0P<r*MK-V
 QL5Ĝ̔S q'xWKo[EVNca%&5ɸԘ$$D'iSZ'$
J΍g}$Xid@EQWRD%/@.(EXucD%~ g8,{9|x}qYmqTb04ver9u!Fn:,(M%61";M0&s&׈e(i68e:dP g2DGhyxBxL2ĵ?,͑!oQTDśN@G#4nq+wOcOg6̋J\] gulc؄EFP</;#:1:>4H2ϒ9p	VP2Ve$o@3ala&qo=M鼗m}y<s%oG>pD\gFhD)
}#_n@z2/}E}q5*L}ߚf!I4p\GUEE(lu=d30Jak_	Ź6q[C1vBumo߁g(P8 2ydpO14g @P<B1Dmu,[ek
 E@F6&2]I ,dSvOaCw3^ruZ9#[Ñ'VuV-DUހQms栳ƛUmKrqDwQudy045QI2:4* n#m2&.Jĥo]#Ꭻfǈ*u0&0RCRFbӻw#h1bJo,;=aeמ:á^Œ2)V|ԫ5T6iz?o>رTgܛŭ ral%b68,n;S:e:_G%5~b"h21er
D&	 ʁ--Qz#&L¼Kw(SmdeXg'к:gր]_jF]cƐY!^x$dޱ!.Z*|<y65h	cF5Dp YH ;m7fՑxQI3yo,ph]\ -Q4r]1VUK@]GEcxbЩ,;{Hcqp@kdj.EV"*r:T$zN[vt{
vsCppP_]VKSxFm+'w^ۘ؞g]u`V<BboKz}'Z}9duԾXՙsLqI$/JCK|玏FJuʤ{([AYI@1#oe%nߔThTƒmihDbjb6//(xlwv~WAx<S!vdS#3?LO,]SK
ax[!^_KKAK!-3'U!/$,5>,9?%59>4% "2ʤ4̔b"*ĂĤ̜̒b=0gQ`~NfRQbQZTW?Yݞ83/9Urs4y5 r:x	p;d&Ku :$P4x[t'|.ojJfwjepjqqf~BZfjNCqf^rDQʂԔ4⒢tmh|Ͳ̧U'oJ-QHIM.,(K˟|@> GBvjB1T,3$̒dSJA;sKRKS2RK3Rb )E
E
y%`MME:$aRZPπk".p2'ȋ\':\
@O4YfxU)eCfEv"Z2c m+xVMlTU#Li?`;Zb)Sikҩ(*yׂJ]`Ę '1qQ j&j;W.	;<Lݹz||__D"?D?=>M+lIaD^-z,6uCo).S|^ 0(g`,7t+XaFPH[q6;xOι(W.2<}ht~C?5]&9]V[ٜ-¸1j}
ףm)8<B?/5|4_MݖtaH+t|kV]i-椚f^Ӳw
y(t.ohO&KbV*'2<!۞lG=.7drYefpJ4FZ-י/L>|][oџtbQN:u1HwRoՌ5n`(Wz75wu,
Z'^Č<˷ṣۍ:- !xSK~x무1\H<לHBhT8ZՕ"$
\ӣ}*<Tfp]Ww>n|#u{QGK L,9绢αSLnȠddJT+4H%/ O<:Zťpq4$05,vtBg@n̮JTD=>jKu&PzAM#~Ug%T!,m(H
|	yɎ.Wm
oQA(wq-U+(#$+Y{QA JUDƗHhm&r4MĘ@ WZڬm;'|W}
9t+4L*lR1nRKGe΋yμ /q K79$x5c9!.GI
)Ѹ-_Cʧ⳸GxK+Qsff{3Ef>odE*Zj>\;;NaJh^)WTy:,o`Hwroa^@:ݐLhvgZ*ϱIvًnxdDR ݺc'KwWo:>+pyU
N]#H_sCIz]pwk«l}]c}-MHW%r^Kg{:rwmQZ5#OO6nא|)8кn˓h uB~鉿2OxUrd9fVẂ7seSLIwKOI-(J-H,JUHKQHL+I-|@PQorf)r	ڼܛ/u2 al'x۔r;y̟ +5x|#yC/܅˂l*	o>' Z6(
/x|'d&Ԣb%.̼ҔTĒ̲ĲE@WNNf.|@m:(7(XN͕y3[ɆG7TĵYCa\3[Tbr:%Irlޯ- S<+pxUMlEV	NkES&u 8vzhij&Iڦxwqwg
Y`$čC8#$Pq@Rr@'.Hmkiw}{ߛmWzR՝ı)Ah`sIl?Ve09Mqއ%mA["Kzmdi
OTv@-eD:KsM0mVilM?F M/ῢX{tƞ͐@ɖ:jǢDן85IE}Ώ_vmDGorI,*HSlxe:PJq *ۊKѣ)V( λLD\N!:s?/$9ѻ(YAySzM_92)(wٗnǖ|7PMC	&m
bK8kmfq[.J>v)eG	]Z@@[SwF1TNm~el?{i&E`xzô=}!Tmm]<I#*-sR_>g+b,0"7(2\nY.#MmqT-Pҗ\z[@xN3y=0y}0s?l4r7tɕG8݋ޞ_<<EXqo>nTBmP{ ֑PP;m)X6; {XԄŌS7&epǲ@[\P}RgIe1߇ڀ% m:m1
9T}gZxdc*uxm9!˖٣n7~pp/9$xmikp!Bj47XlXId+{[Jן+OyyL~SRlַ8 ]%d]VYxuTMLAN@A"'!jI[R23)?QF3ģ؋^0QBGQol =l77߬'Gݒ6,l OeP7Wkn0xj;FpTf
Mq^UըDes	t  
"2`~-Ih
ҩ_qx(N^tl#4ˬ,T65M%N!&Ge|<\߷? aitb`QL%
QUL^{$8N!qLLc#"C,=GGt+"oETYl法]Q0#Zml1L	Ps_QU-,;!Dif	.^e{G5<BD#6狊Im!f@2YG^0ᱚ"~XZJU/	i\7~mr=r0];7נqj/klmk9rݢ%vWhGUSQ lj=jeCy>uk@LSR^L`b90ZXCe<#&@(˯H;b#Hȭuj1(&b5Mqc6&´6;3q&k%Ww@][ZTX&N!ļ;ԟrshM
H{uVm:
׬m(e<^r흞;+N~nLNMTJO_@pxa1mJjAQjrbIjBqf^r!Ciqjf^qIjbGciJfs~JjrsQ*PSofndGGXr7/b#,ٲ-H6%(hfQ&GMJM9'$%&gr7HYXp~iQrSHg~^ZfziQ*y[`@QjA"Ԅ,f$\XToD)H-8Wp~Pjq*3(8JH1TSKB6;İ8@{8IFғ[Qji	Q7|HOVa9)T k_IDxTALQMKaKikRM-!4RP".tcݿ1ЃWI4A= 	7I$$h<x%1&&<;@nϛݼ6^_j
J#xVUoڅ TuD7թE2DK4GT̰(Q5E%FMªh*D6(I#-CU%f"dE&W,C#e
}YA46#i;Uw~C2כd:!`4"0ʇ0s2Cy* E5?v_]ܷݔd8p#n1< b"_C@|lBP*Ydq u_Cle|PKpmXa?#1[a{
{GP~WM&eOK=u~G<uYfw?W&e,OIטxWY|s]Ldڰv$xVTAT
]?Ga='y0vcC}CCjaOz8{1	avp8o25MWfs%Q7}Е\Fw7<ǵy]*~&b"yى0(-Yvyߟx]Nf}V5x[ysC/kr~^qd^yOr($'d+{;&ĻWN6CBi34 x=o#w7sdMA   l'x o& +ox[7/oC7Fi5h  a$x7x<^IeAjJjBqIQirojJfwjepjqqf~:Bˍ'?JM.,()KRКP>GBvjB1T,3$1/9U<$C!aRZi^22M (1)(5,3%5? <(4(*ҝZ__7y&|
eE`&RN-q土>9W
Zh~R tLf y nxZ|dE}CNf^cXkPPwBpirrjq1)prq2}=Cj=J2RSRS2S)
٩@<pa32ʋKKJp;/%H*T34'dqf^YbNfpxVCS/ -^4xkwH0=o<gm?cɗ\z{вkZdgѡ%F5$e= d*gwr["
B(chgϹ֮<jWvљt>Yجgaÿ7nlwܕ<<2v? gwc,gcƷw63{ʘ±V	Bd|0-xaݩV AӡE{q /\`okͬ[ sa=gX.97|.x<?M F> V[sltoss#/zb|1G#?`dΤ3oj_6p t6mGHsIڞ9wXq>
Fdmo8>8G0gV@%ƅ޽yn8k>{ݬA7_n=Ǿ3&vts }H
16p@fw76|s#~/ HďёȮz!Sk>DGva ģ>=n<^Fr9aCrhzw˩^sǚD>3km^`:'x>mC脪LsrqgI=J=z'Yifn0ϱGonlK6Ab6Kڧٗw8t^l|=Eam5Oj܅ &۟l/{ȵvYg hwY𼶑 xIg5w剈1$E)0G-8>a]U&*~T3k`ճ׮[K7ӃMz}fƃeHY TtV~[נkZ m	 >'#$N6̛i{4^zSdziv틽O|{^X, Cf"`4vo0^ƛlA*pf+o?+o_]s}Ͽ2mžBSK~t.:谑6ml+>Nn:9IbtаݴGc ؃Qכ)͚5nq?ګ9"|my֒a(_!\|=x
,*2v4;3fܐ{5ݞmЪOZou^H`Ed(أaZ?nNp=AnKZO<l̜T:\ӴrArk.SS[BT	5o ?WX96mdG\%m͏܂msTOwշ. W-EEi\q `Pk?XVBo4|ƓpK @	
`rr,1[27.woxl3컁pxΝ={g3&7$l<b!s:gN7	$	ơqf345%.kn"d"f݂KI"̈́WDRf/!.p_	 ꦎ֍D6< (f["5`/EZ1g7:7_.!n*@1	<3OL0 0TQDedQJ2ō\6{d{8וLh+#,8&19z1T3;x3:Z;蔅WbP^*ٹͮ^O"bnh|_U])b]laR\B"VB/D,=_O&@96 sWƗHl~͘/07b]~P/|oE6~ Ŷ/- eN
iPӡt΢:,een箜 Upb(A%?
=k""y@$Z#A=|VMFh,#L|-"U^UǆЄ6RE2&x)owh(5oH!?$NjlG''6Yv$ÛKKM%W=`0#X(1%}_M,~5'xW"Duz6<.S#\EhWK@@)A^I;[;Tjaav?ܮ Dk7ww0|h|G'goe`JfFe͈fYe3F&aFc|lu=rQ'g;H{:} *VX%3~/io+		ey4,+q~{T-hn4x枱ORg퀱'C%	*+شL_ebb̜ǽNm ;Wͳ]51E³qf0a)c{$%!agǵiDvkgFfk'aEߍ݂"S\lI#BEeox\7{ȻjurN
®'@|=@6,h1rD۲.;)ٍM[ Ŭ?sosX7gX-7Nܞ4WYߐ Z]C:+	߬oH ݍk-S5*h,Dt"NX~RRx7Iߘ/Q?Xoc0m|р%ww3j3]&vӬ0vm0-βMRT>b<6p-IlG|ҙtѤ.*o&F(^\4	KSL/nKY)kY0mֶװ]ZY`ǄcnU~wqRv12_q]tWf nW ]#oE*/=s׸iO9 iFz4nCdN"*TGD}C?q>KyQ'_o8Qs;@ĮʀЭ}P`IԿ'"{{5!qjo{ӟ_A'Pm6{k-ĥ;
Ζ\nVΌ_h<qHk \`=<۱_Ai6K}Y+swwxF=Ow&_:x\~p]c '	(ͭN\glI?Bo@;]Y?n_]	pmrC;νJfi|8tM!M-d92k5I.M-flk!l9+~W<q/$xovbp?{ fmA#r[Lu<DBX2i'G<쀇P?xG7G}*O
bX?/pgtlw 1YF2nC7-z2ii@E
sG`l^[U'jo6xy\a[+i	7{bfmuH+po̗sX˵qKlfOe%ݴKa㙎'f:νIٲtVdlYT=QtSeX#VtM]x),H۔gs４Ʌ➞l4EAk1*9ႨH|/	ĘN%)F8iB\辸X#"շN@Ib|YѬ}r;lmvfϿ _ qxUw@&Uhi}w%Sk-*%#΅xa{ߦz2w*L?9!:Y9R |LJGY{.,sfXXʦlZ3u IP`	:Q;rd+Ene'frq$fY _$mezv Sζa5ҹ\q|G$`]4ɣ|2x0GQ]H]Xhf3ekM;@WHlSڝWLh~jE65"cV¸v^)Os͜#4b;kwQϬ: ׃9!sn=&؉퍱X%ۍy`RwެH596ju[,I^wab*&.uˑ	G-LvV-n##@2Lhkڃ_*=+,aWid0CEe_sgbʯc~\tBUOTQe[i5dAL[Wfj5WUb-:k53}EOq0X8ه0ޥOA*	 Q QX/ׇU@P THaS̄05񾞓eNUx}8::E;kB?>L)0l;I{tcvr44?o28Fp+UO%FtXu[Vמs+Ƽ#cʪk__^G`?_v%c%Q]șItm]*lHӭ'%u%`sB O@fm"sJ~8f\a&k<ՁgS`mˊ,p$ֶ }tHY!a01	P`yye?5!Р1~4x7;`5@cE">qag^Em/L-_e"&eGѲdU.hƼ\ǉyIQGɥ\p37XRUaX[sxjd_HtUPB^^D&nae[.`h~u	`%0"c2f-E8+ڭN2^F=.wWWs٫LUB
J]=l5x	j=g'fl$++?uz+[K*:R(
H7k4P&*RI촫jTF$^sav1Yb/#&Rg<Jq	jEyi9Sbj
qwi0ڢaBID؞9uS߾:O{DF+% >;IGOhQϼΒ[re9Ps\l{ABP 2)X^fySEn'tʫd:Մm$g'PI?W`q+0G3g*~f3grud>?~_,^T#g
3LV	Fv&@vkf~
dTľ(OIp°u2t@`pa$}~D\l?ukпTE6Ce<^i1؆$43 g&T%pqY2}몷Ky+Wn92)pS,cKEuW!^^yRUQSBupuT1(;'*]8]+!)^΋58/`©Ikrf"PR]!RSO@
$O}v7idJby3O9tv	_"XhS:ʉpn ~xSޜ~%ڃi:ÚGqUsEdh c8i]9XՑOe:߀|1ϯ'$hNi+Wdu,Y$\>Nһ!SuYa\A4K׫t8L!:D*'%椗w`.MoK%؈<@h̎<IA*ջߥ05팧2aq>GPC#J9*WVazaQj>
۰1۾i'Z"\Wlt~b6ֹ ˴si{~z6/U'f]jl!z6nO[]Yԃ31Msd8ZAxaVV$l7͗BAKD=&`&IvZdLNa69nc0&Ɏꯛnj"\) Gz,@=rц	Y"YG13.E6Bk10}DpW#VQ3|gV$ȅv^HAFCFҠ4&t&r4X7n9B\a#(56dڿWkb`[]h|!L{yaNVaKꩅ?%t']&aX]IPd<N.mjÎ1"y6SkG I{ԛڠcLT%}xIF*Cx6'ף6fIk5<"<xo{Nj/+|QbΝՌ+&]%\ XEI|e~q9q{bw0XVD^]<{aQЇ)"~~ބ|tꄿނ]gٔ2ܙy{Fg©dymk\trUͺѮX2`pFeys]6vhz;lh^pkg	k]<IdWGa[l}M*8Ja=z<(6Y͠ӀVȸH&R1#)'ӷ_<kY
Oh.$Ga}pGg5Cr>؎X5)])@`\E(TN;*LIJxbHQrb(mvS+Yҍ93CpH9N!)Upb/>Q'K#\tC5ERk~_5g.q|"w>]v2֘O"rCCf5sLC8Iv[sSWEdޣlDbtpn35|SC*
=YMkHaݥOyier$s1Jహ^RhTċa$%+mSdZ')kzG#y?	˝:;iCĮE!F9b2 RL5I_aМ'RNJ5G9IehY+-ր.f¥Ey'i}9yQV`%nTu>L=~--&rxEf"
GgR6(%^JCFKOk-fVZͦ/QDsT4>7F޴Ro ׳io|<MiJ]9]wu=+
\xՉ]ɚ72(fK^^CKJ3˃RA >:^ ĤG("-2olzߠT}T|C*4cߏWKA)MDk,˿fw$v)LL)'\F|S	ѼD=pRst'6T d86rY>GG&;-#'>aR&|:Pj$iQf_E@L(o퇼̲~cNhı)~]pGS-v
VplZ%*(a]Xr?ue"}ޤU>FeV4><ß	sUr7u;$P(	r*j>Wz@d<xSˁ=5Z{}:(:UOSPO:ik)͡qq
W3f>(KZ^%ɼZ32c|,,D}@FX%|=R4xhbL녅SavAZuva!y8gh3X=#G{	fgjU; 儷ЏJ}O˥MsB&?=yE~]Wޫɋ	)eJI]&B2l*Fi`bھLb՝Jb s7D p
Wa`ĵGAgϝMrXZ7Kv믙nxՌ3]9i4Y][3QRnJJ^ԡ8*bV1A뙣P**ᠥ^O$^*5~10t=n.`35.tQ+Ĩ䍔R#uHx^#kUZY8P)gHq	xBOae3r5;a쌂VM10
S%+"4h|{bʰ"w(ߙ;gH7CYЪ35V
TgjQS26ŻR?5+T%:-gj=Sy*[O`mR2xٻL"F,KldWê󉚍@ o[.6T(F?bq`~Eм`8y9Bg0/|DYc#*$y*dzί( 0Z^œ쫉DS;h=_uu^D7}v,s9}dN,B 5c2S=^BvEKqY-,)͸sCfoxQY{ 6>@gԜeg2uO)Hps%ePs	D6]@5i4<+yx!ǓQuhJ}%RԵ(钖^$c0k]bƋAkhS3=lF^XiQ.QBwwxJYDh>ǫkF.`rS_St$?CQ|r	jnޮQ4uc<W60jXVV#G:;DH#ܴ0C1)YX.8کqˌĘ56*- D$ ǽ'mBlOOnP`v^Yi+@5q6͸Ɗ=Dd'U8dRҚv@͜bB;FԮP"fEĒ ΋j}q zl*]dU,zM`jR&IMDvEv^@-ZT	.)kfNoԉHx8P)E$)[+[F+UH7EHpfHIXO#=u@"Qa0NR.Q$-=w|`UC(+,2iϨ2&%
+L Z7kHeXeg8%`_3F	_Wp]6&dRXA/fߨw*Gwe5'~jq獵
_h4sc.ş̋kъi.g};pCZ[]b<sVg|T!Sh{_dL)4
hxFy;5-CNseU)5M{Ty7B٦;q{G
8*40, Jۜ)hmngmQdCxTR
lh0etW54;;~ǆ-jhxn+ rljpTtUs6TnoBe zo4!mhpf RCUl= ؗx2vb|<;@35V{z>yq:&l^-pDx1$,yj濰a-jGz6X6
ewkJi[t:ThP@L^6ư5/|Ityr]2* K4p0/xE6íAL|6,MYj6#8ӱ!nb}5$2P^?-abaژR]IӶ
;׬ 2R;۩-ϡQ~;
8~UƔ3R7[l}=ii`]Y!7;Q)q'uh4?L>9vϱ֨oHKl<Ъ|%?"x	E9s+ #l$saڳwOIfEtyHenR "\-SU:ړ-(ۛk%@GH`Hu}|J[$=ʬ
*HOh9
RB|({ x3D[rRhw5T#|(̒ßTq/으XBRfeU&O#΂^ظܧV=GRq4_%x+9M҄"#_6Y-xܳ16-k':Wqz*0pA}b%4ZvJrɛYs=ֈQ;mRґn0$+@$;po_<ݻ#_F]UcBwħp_,`kl/μQ=g_7Ww{U?䮦6>K7 %`9Xz"$fDiʔ4јmJ LPr4[ί#d'LVr˜`YWK!k8	_fң˳^#3tvMD1arxڷwwAn5G)f7~i3ML=4bKooUb"ΊǅuaHr5~yj{~R7'M 
zD縤d/JXPJȆF3s͍hw5YrɶcoЗoe1JZRFxJ;G?|tJ)=X,+
_:8:Q-Q-<S4!c{vm2~-(R\G@"5
~yl</E<]9G~x*$PZRa#O+w;WJ 
OmZ Fme{}+W4-hel0ω^b6Sypܱqy/E:K+TnM<a6Uqy;Q7>VI׋}l3`)o?()iWRѱt"-~+ft |p[qPS
zd.b;Cy dŕ%<`nPmq1ܑ{hGcjwҧC6ǰAmeue3%-&8˓JH/hJ'[A%ARW@ A#3
#4ϣDTVHOX6_o@ʌ%M_g\֝K`Z9)j2PV*K5l8#-Bdo[JK.=WN8FE(A2b;)D4ˉvF=6@\%Dah>jJk7l(mw{GtU]UQLĉ~1\ǭQgErO"|:<\xKs뗬@oDJD\b`dD*93#T+x.LDBq2υWma֘^	^Y+c]Zj bȔ"cgðQiڵF2=7*Kc4(,9oP;5^E~8uhWJUr:5AfnUA3Vz~Q<E8;d&q2\NS!$CZH5kT,,oЎ[zj4)7n|+YVR6;ϸ_S`hHG<ETdK9.Kb<F-EgVpmWq&߹k]{A v8	{ƫp&: +>%ƛϩ'TbU2zdF$"wO<>OW[XF+r|Bz*W^	2.QN̗d>XUuQ3-qըMDT?Qr7O#BveTjFqO@dMޒU/LZ&ޤ"Jʞʤ*"ą3s뗃Q,VP@(>9b0 t95JZ5
K⧈'y-U^{RCRpoxoܸޭez,5İH's&Sr
̵4Mh|Rc}xmt;0bESCڽL,|V˕+CL{E)Y$uVneػO8e#/`am ӌd{DP&*&yeO*Nrӱ`,8I "L!2lAg).
O/1!MQiP2ZR1R6iag6Ϸ>WpT_~RY4rK麵]"2Ńa:9x%&tGp;dG"R|\"?a=4,yY#0Ң/BS5?eVa9W=Z^4 |Q#(vD2IyR Z$$s}Q-\$>RD
E7ub&zo~;l#¾?!ČE8f<`p@C~9LTE
dS3.u4A~"(<ƔS^ h=2)VY*e;rYLU)X97$CY+$K&HIpqPFwO.vFIlGUЀm0'dC@~h([G/	W/r Ž\d+GV:i fH,6$v[HF,HJnDa=['pMw%mir?j山|XU%%t"=/;%2RVE&9E7ƾqO]fo <J\AY~&2Vb(J?)D%OjF(]774 !&qGz%!U'?(W7b8x,qmp,q +!EtZ7p8&syv><X#$k~m}9F% .;̾sS: ;2::3Pa.J.A&G9 $c&Xg^_t@`t7iNF|lRxt\u<Āq Gb@cQA\/6r#e=TckJpKU œK0m__Ev6)	gNXNTHtVnMJ1*D9̡I4K|r$ɊÅw;eSդ&(1:1lwã)d6p`GCyXgXn17uyByZdSMF6dZ
wklO}ԯW s~mIԑ1c=
\M
˟Su[vd?&|2;؜9BZ)f!<5Gp܃1~oȸps1;	 ryF:Id8<agnada+;"T[ϻ?,ܽpLg>g$pç,A gKaRj!0U
K]btY`P娉w~f,VGED	sDMP(ť`_"J+WU1VNZSnw=ϳJha#«kVX`Ch,|-y#'2^`-6ȧMR/?a7voOiE;̸5Q0~PV,VW|XGiN:$cݾ\&Zsة'ί6H(Z,>2⁚12	 -=c
rI&ƋJlÓ%Ƕp:qq`{o~HL L(#)[cD;WEDe`[(rH7StO!6!JAmS^@^w^. ھ(?jAƫ1SK;yaUhjA*Cee+Y/fVcIP7HƦʫ#|gA)Y"P͉L$ƹc:Ĩ-`qhQ^nRV(ӾcJDb0KX!`,=h8_I	~>E0E0L$^s/WixZE-Qi#с_C'^	?=+/:&ݔ?GoXa9`KFXTRzIgmf*֨w1cV]L{	s0&1AŁt;+={<0^skFe4BB;
,3V7-`,Le+A)qˆ%gr>ѠH%0#
Qi9I%
xe7\2f)&
Mi
>AP #7 Mo&{|\bhi=8oƑN*UB
iH׈j|9>$u80	@5mz R7!O:ݮ^B.Fw]¬el\+R4vǡFQd0Oo$T+7~SEN#Iۢj2i+
B8+NFhy4
s=HZZaRQ)wLWVri&M:q	g]RO[q\d`KOENKJm!by"XL]%N=#f6zfa^RMîw@A;Tanj/@	IAu|Qqk34h:n]i͌Pae+,Cs1ݯ*.q8˄bO>5?5+<iu=$ғ*RzRRzU oFz,N+)y}R{U@1H+{W J@cT-ߙY!-^wZSؗe8JBH'D$T^%kϜ?bfK՗yqc[Xmvi1F`֢Ye% OYR[h_^vZ@+]A_QD$H:dR"gC㰕k)-K|u6ώn3WN.sv
a8^cox8a`f|
Y0"-j #ngpA#(DjTܯѠ ֦̀jQfZ|/zPP{'C\qb qJ@:<nk&9۾.(f7nȐxVšTΊ/r#-OF	HTn"f	HzGt\1Z\%3D|%Kʂ/+2nŇԣRͪ/R>Ζ<Fiǿ'`DVJ0s8FqQ|8Îo`y#z\e+G9141l@*j4f'Ĭ=Ĥ^!lfo=u]@kih:~1ogT.[Bx?plix7s0gMC<YIq)eكYI!EE}FE̛1Y:moM/+*\a~oonɗ^9lĒR۝,
qK?ɒnfe۹Q%FvC
3[>Vw0no	QȕE	LX5	T>>WE՘@rnr<.O"/BGOTYY}R3"/5\=_:M3gZ2^Z|D-5WT	Z,%wJV
s 0=V/)(%Yt:>霼%5<̷hu
D055@km C:V i~ɡ'C)s^X+V <y2F\	qs53]%C4;JfCTQKb~<m>^Zn;UztX9Gy##,N}u
zU_vsadmrhۂzNOΎӳm=)D{	I2N|nۣNkzV84_׭}1懭y0gES<{[{ΪK{LsZ"Oq#lfpDs
p4e&SZ?d1f22cpٺ2Gfk8DSnuaSv^Ϝ60u
P|v|bsc]eYٖW:zGf׽VmLnR'"P@;D6QZ{>i)NTc?vi3]h&uڐ(@^[p#_kC~DKΛ{/
<;&")x=۠GZ!YЙc]ӕØ9u6mD*dڹ
.O%WR05<Sժ;ZP;pm,ϤԁJ?xMn=ܓtFV\ޢ=P`DiMh /u14SkYDzoҰ&a0E.mdS=/tXb#a'qx0i7.]IPn
4^ Jqjj=P"+бv`j83 T HXP븡?q@uԫT0# S|d')'*NzM s?0ŇvПbC;m+Ya8g S|h&g%vFC(+tB9J	V`ifl
:O+*qƞT@M!O(pN2v|44cS*FƐTH͌!O3(pβ|ՠBjdAT"r	)mRD־&vR5u VN?Bq	+cΤBN͇$8KW5Ib*"}q'	ćHI4Ʌ
	CP|p&>*>8W1%qT4TP*m4NE"8EAh+2/)0)b>KI)wD˾89Iæ!U@בB+DPzN2j]ue믈q8e g(2F:N"d9(p<-$=1 23N3Ѥvuݲ.qŖ3ج5,WEcfRЉd!'!*ӌUtZӣEtVQ*z_{τً16^dgJl7y18yCYM^N$/	pWSd9 	D/iP: 2ҊŜL)`Xt%7X z p R9j+0Ow}]%~:,Am&	進]eyD>:)#v. HЫ%xt|ahhKN4Gt@YAM!PN8N,eg-&YɩtP)ftH`JqNgS4.THd9dSy:)|&xq>1F/'2iRә0M/T|z|j
0?rQ&M}WdoEdaT0dnI3L找9C>Ч:
3P en	C*Rq
$u 1*HT8/j*U;0*ybLTȘ1N T۩ (_?*	5Y_?6PxJ͖mM&j\uĪYMw?둀A_+O,+qT(y).5[ 9j_G~K_x+uldT_{|]9ξXcUu,߀)Za?sn7T&5wuYMN*)zg!<^ܗ-M;**T6=)ϓ<ZV>M 
$Xɴ:r>ύ9T
+')vYU〨6`	<7Q2iK)~G,g84|m'HHM
6y0.Qĩn.7v%z3*KOٵ5:,`~ 맍ihXVsޠy^Ǭ'hoB&* 97&e]ujrG6OX;|dc?KP(M=7|ٙ=ؖlۖ/YʵKR^E7)?, Z`3Еx(vE7
RYĶ@&Kc+KVFSkt|n{SI5Dn;b]WUF׳}áODs#tl]`0ь Fa+6/OU|&2#Z<2aqg3#mUBwPI4p'-;	ڞ/rXٶ82V-N+$F*zhD7gPGYk[m>{$n:X#9h:Z¹#$TV	\|(wvdRUH,(|lHLQkւ?ڣt<1ip<?;|_5x{tDOt:[/6>͟@w9w;ozuѢ2+D//@Axyۆw,EXkL-ȷy2F.cĜ9|SKSK7O{#M^YAAa_oa e$xym!X6V?M-ILI,I<,3 ENxym!XEX2 OnxWkl5ǀm061~0^?@ 'dI)q]ݙeffK%j&-(WeTQJ2R1RD+U}HmIJ*
GwŐdy~;yJ+}<gl^rB>C{W?6P.)sjrު2>\![a]V54hC#zliEXXL03[L%QyjAMM"+]ljs[Wf2aҡxT2p)>ФLAM=ƙfIU<USh-/o	{{_7X,c54hL7DjhG)8Pjap1}7s֟YHq#L&8X`dnX:d5n%36ܸkw ݙ	.q-󭡾\Q:<1ŏn_?"iԽ>7SHdG78#EUFL<?u"cS(x=j2H77-qQ%/4Fcz>k.z#?;)5 Xx$T! L)ol*g
g_9pOs}-" =Qn>Ai5F'X[	`
	8ITLw[8U{@eŀ vi$B&ǩN(6I^,Մ*t`e0p!'40#Qe<*tg"p#Qi0 ;SjC;aDM*V񗾾mt} 1jBtuRrT6TZIм@nR &-3oFe>W?=F!ܫx T 9&,gTD7
֤$	{^7\8Ǩ;GnC< 1ݗ
4E]xq8!Ϲ?ѹT0g )/W/''F=]#1x9  "|nm`~%L.=Db(5lR@ǠSj¥K`D*47ߩ1/_yLeжIc>_қv7	C7S?o+/ȗj]6Fct^]}PH ED`C✕ ^Oj34iOTbMIfȒpbsTbyeY?;.wS
㳗_p Ƿ`g"\J4;]JㄪKU1Jܫ3OfKÆÜ`&sI?TLP2@zwޑ=]SXXMt-`֦ 5ӂ\,@ɚWݨ<3Zyy!"sH*J%d&ɞ <pvjQ718h<$zsw)Ms#_L/;X.Wkߪzܝ^,4,8n\s臛?kty!LAj	̰A($.6aKYQgOJƩ
{$%q;6]BH;Nx[z1("PDur{!ky|KeJ.(oi0Vk3l{Qu*1۶֡kQyuh={-U*C]i9JMw6|fKSz5QZ@8Z۬o8um}} 6K,~<2"@ާ"ZR̛rrzP=YvGZ`Kb#}.-lDnP2Yrsզ}o+؎?w.9/Up?]eW:w'P]t^b3ZK&bF;QV5(wJ^T}WpT7iǷE/oOP\2	q>= |b|*o`8ҳJpێ>92ϸ	~7'PJakW\M	@kB`$b8vށBZO
i߬(N4YoJn36A[$4п|3gxW[pclllױ1ka;	7c˗daL)X:NXݕJdi-LNhڇLF3UcBiNӆ>%4i6ٕ%jci~?_|Tt<+yG1ʇN,?VagB__ƅ(֊ ~Sۚ>A=Dnlkj[ͣQfVliYXL03[L	$<-Wf>;}ohM<ڐoR䯏B_7$QQ%|Ia`Lp¤!<y?8jx= Y;qň$L1Hbj|n1OPpՂ,l1LZoo+BOEY0
aFMpF@>$qݰ@5b!+WXϫF7u'k_X˅1,D
<ta݇A2KGM_3i{2z
VwSKI+AlBtE|2ʹ|aQal״n~
}z<=a2 w;GTE$ˌq2Nkab]|ÞDxSߙ^W%_u=7/,b_^ Y/bh2"*VIxՀc=,h%(yoq?4d~Ŗ Sȥ$f;W0ZW:IUl Y	 Ձ(@A	iAF,HgiAtxo"p"	a2(a~1g4mN-5_'5,wzp y$F-@h~EXJNH%gW+]"&5In}I#'?Q//u<
*PAj2*FT~FQ@kJ$,	{lS&d63
g3)d\`h',[Gu}I,(gd䐙sN$H`)A
R_-\XBNng`v~\GA@D\mOf%L1Gbq
6@:S6OsLrի/]\Қ	Ajutܫ/n|F¯2hage9\NAѴǡwGS#(gVV1B8昃Xp?nα$eYrpbITWf/t4*BuVۗ(Aըng)O4TERU6Cӗ^ɮ|AkUU X4$suڗaDAsQ(Pܡ!BLpw&󟟮4x$3NLbNt*	i{Oo>7:x 
h^]eu?Z}Hؖ==},Kq&,O;>$w3TI;$󞳕|!bpI,h|sXw_eK)0nP KA	 D4?shP@*/hpS~Z`S7WB.#qm1߻iFߺYZ^Q=ӰնY,=DLpiǕkCq7Qaw7EDvĘ%nϬk%g;SUTT$Zo	újW\;.`I!{uW_VVxKTŞS{Jҧ<xLJƩso#POm	S~Nd G%^x;rcPg(i`/to2 DvuO-;X̿Y5#5[{^S=m/֧|Q{H/Bʷ"]ZW[_p]w֣geh_Ji9HM{}^sEͭ==h*cNJnӼq">-gV!G}m0,`]MMSݓ+BdRxW[7mHQ";2deVi0FއZP]?YCaXͤ"F&a:kbF[P^~?	
c+]doA+Tux|JZX*^Th7$!私_8/tWѕbB{GW{7JzCiIrgOkҷdt=qĊEFwc5G4Ud?|;O_.xV{LW
P_@
Tpđ)0̃y
jO^vRY[m5mFLM3uK-nKvc܅ݤQm٬{7͹w;#~w~Sⲹރ]3_q{>wi%~YoڙXvG,MdyLWN-.(e&s:{pN˼ǫߥbKs΂||OGOo-X|7{
eT\vŞ[ʪBp=5sidi27k,zKSF_ʈ}e,|g2aExz%v܊w3em'<W"*=?|sK|6,C+~R6]A)v]΀Wviy5+ ;&(B9~v
daR*RJ		}ps2?~kYq(]Rj8mJdE[*VϜ_fRcxzb%ϋx,DaC5W*<18;P.pj u=zx#bcN<*|^L!7!9
f&9\p e%ʙ$?eh2>)*&"5EJ+fZ:dL
7M% |n5P
kz)$/K+'΄`%,
,/=)))k gSS
8+(:qc%X%S&X1;׮;`	^;, 64pkûw^Ds_wQ>Zƙxzr3Ls\*^/D#Y)Jز~Ij0,CVQ;SO VGMJ׬zX@C1Aax>Z7B?%>d-+K/|	W=H{IMz3	KGw ,8~2qaHAA؆=9uhHMCm>z pTcQj;I/cGotac71⬍rJkYjFZ6M8	8
@GX6hH9VPp
WgV;qvŹveaڸ5v$6~hzZ ɃNBt7A(V&8h(;ࠌ6馳BxZpAj^n*C(u=FN0JKnQ9 cE|6J|%-HB\ 
54Fnum`toyMI\8:]֤7[KTDB{o\M%+K`v_ Jy=xbSQY^x,lBKUA${G9hI_YQ}DDּ}6ޭe~,bG!Vmp3\kT9_
<ȄIWqg_MaXVK[_+R9 {7!+(䱅Y֊e$M[*2մq*H3Cm#bb*tj^QuEŚȿǣP)蜓[yYj-÷OA\STg:5./Ǣrۆ!NH\:y55/qAyL,k
SG$r|/)'S-y>2)D*EgT>P;U=YĹiU*܍O"𕿣"4xr{3H 1@zuPŷ	7Z߆_i-7v4#+8JEc.1_i|u%IEI6&z.j"}q~'[HI.Qʹ,OeM\ql.$A|G(D#2U2JvLQPh%XT'N-`C.(bIdn,LpnH5To_!JcDƈ`R0i¼:F؍SHk'DiKc#SރOp&8c=xW{PT#(CD"~e]"ʂSE\+eW\|`	FͤN;#64ݚEHML*3֙Gqөcz޻;;wݡ;s~?9纡lh6~1$G*o6}Gc mP,nļqX"_>)߸]9^O=WnhdKBR[dݬah(yF#NC^]̳Kbvfڙ-Ics:f<9;m!v;J<#llXrƭexmO3՛767*͕:cyT_e0o0ʷpf0byp-@\EY9Oh8Lɇʾޕ<t2.c~'t?ktt[Vᴻ(v[+`YLj.KO5(aGHH]TKDSB>.CfGdJ9]9,O/sX[bJ,eK*ز^~&sPah6ufzsaV4@䅡gO0VS%*,pz=.Gk͡LndS҅u<_̓z퓬ttںnIGo'O.̼e3ū1&R^?E[#~(C
{Q'XD|a;&1g7/_'q}<O_~(O2FO <_1^ϯq2'Y(
):K8H7D7TH;43c'd0.͋0?Sl_ܬ,&vm&uzci=d%*W[\Podel.;_ĐUʝ]6Ժu%Ks%&Lm*~5ZL׫yA70J6jh`l$AO\Zkِ_2LS:X.=lHspJhͅXF*@T UPUd.((qQ/AQ!J!AgH8ƭH!+aKkR@0v%M'Ed#t	,%(}V
v!/,ˁG\,0)Fl+1A6]MSFBfܺy?7@.-n)Wp@tYVn&-k	, AHWTVP c_׎PQA-D<TA.3RZ֓4\Iǽ*XTq5]EcZ|#	'NI/L\]Pzķj`"jc0믣xR8~9?/n~k.EX<՛`,oiU-Ľ͐٤+57hf0Hy[![`vPEsȰu[hI`u[om?vBUp;5.vVÆ]D|YVj)UHBG++~
~;!f>06ŗZV1g$KU;No;v%aoqi/VY)'q+/Z2BG)@&q6@qFK!-'w]b9Gj;N*awSP{PHrB60:Od|Z@?%s4ד~%o#=*BrG u硽tb5 2GDtEwX%	~+TdNP.VC	+'
1`m襋"dn/ipjTTY7Q2%Jh(F/ah>ZC)"Z
Sz-Z<r<#fXM*}/yɄ)=G}up
{)~X_Uu<s%{	+RW!Q^A<
9o$IId֦@*<S1i$.HJm%&>m<Buyɿi%A23C'>Z>_? t+L.Ǽ2m0GN9sjyid7q% |>D9r+5 ]yU%Ja(Q<zjGdq/uZ	5B	].j>2#42`DD+LA_%hy~'H_wڄ+\8RXD玸Jy#dHEWhu	Iq%1 }`>i&5޾8(-$*ByRc'5N DR$qRsʻxldi3	aΒazQj\ njX_&x2T$#nJ^`OLP͘QWL;JLKQJZpO%MeXYbA~0l8C}e	oލPcHY#D|*F.үϡpe_Kf}axf'?@U|< Y;MF	?FK`S&i>_[exL¸\]ٳ7$
Z0Ջ"7'#ѓ0!%m@/'Mdecoder. <!--Del-->(This
 * specification is not available yet.)<!--DelEnd--> ,0+<0E <!--Del-->(This specification is not
 * available yet.)<!--DelEnd--> ,0+Y2setsQ 
 *RiTused by]Rdn	?}.
 *
 * While this key primarily governs memory allocation,
 *`S can be referenced from?S7,
 * which defines the codec's supported decoding widthqP9SsetsQ 
 *RiTused by]R. R6FPIC_HEIGHT}.
 *
 * While this key primarily governs memory allocation,`S can be referenced
 * from?S	1HeightRange}, which defines the codec's supportedVwP3~VR1&c^a_}a&aa-aKa`b.TdP <!--
 * Del-->(This key is not supported yet for the video codec.)<!--DelEnd-->qx3mIt]hn<ytdot.
@since 10
1p r<1languaget_sJt]7tav/!}"only for Audio ViviS0)^ only
 * for Audio ViviS0)_^a#within a Group of Pictures (GOP), tv2 It is specific to video encoders and is availablePlevel sacle is enabled.
 * To retrieve the value associated with this key:
 * 1. Obtain the encoded stream information (AVBuffe
r) via
 *  +O.
 * 2. Retrieve the parameter information (AVFormat) from the buffer
 *  usingGetParameter}n,+with this key to get the corresponding valuQ@+'Ŵ The stride represents the actualȹ!of two adjacent<stride +Veffective image width.
 * When stride equals width, no horizontal padding is present.Aݺ
value from ,N(,
 * or the OH_AVFormat parameter in the, rather than@
 * For usage examples, see step 8 in buffer mode in
 * [Video E1C%or step 11 in buffer mode in [Video D@?ы:yThe slice height represent(memory for a޽3sliceHeight +effective image height.
 * The U plane starts at offset (sliceHeight * stride) from the Y plane origin.
 * Always obtain the aclice height value from,A1%, or the OH_AVFormat parameter in the, rather than@
 * For usage examples, see step 8 in buffer mode in
 * [Video E1C%or step 11 in buffer mode in [Video D@?ы:!Jeffective width of therWhenN5 is called, or when the decoded output stream changes	, this value can be obtainedVinstance.
 * This]cropped visible width and differs from {@link OH_MD_KEY_WIDTH} set during Configure,
 * whichfor buffer pre-allocation.
 * When cropping is present, use this value (not stride) as the actual image width for display or sa	ving.
 * Harrangement and usage examples, see step 8 in buffer mode in
 * [Video E1C%or step 11 in buffer mode in [Video D@?ы:nGeffective height of therWhenN5 is called, or when the decoded output stream changes	, this value can be obtainedVinstance.
 * ThisXcropped visible height and differs from OH_MD_KEY_HEIGHT set during Configure,
 *  whichfor buffer pre-allocation.
 * When cropping is present, use this value (not sliceHeight) as the actual image height for display or saving.
 *Harrangement and usage examples, see step 8 in buffer mode in
 * [Video E1C%or step 11 in buffer mode in [Video D@?ы:ɍ&PG/as QpOffset-Rects, v?=Offseo
Offset2;".=Offset"
 *;'Uand quantization parameter of one ROI. Each "=Offset" in the string
 * can be omittedP<EOffset2;", the encoder
 * will use the default quantization parameter9Offset2 on the second ROIj"B
getting screen capture rectangular window. Value type is a int32_t array, the array length is 4.
 * Get the rectangular window gin captured screen, represent [top, left, width, height] in the int32_t array,
 * which can be obtainedFormat_GetIntBuffer}q7SCREEN_CAPTURE_WINDOW_RECT1?%O ^ Vu ``}#`<!--Del-->
 * (**AAC_PROFILE_HE** and **AAC_PROFILE_HE_V2** are not available yet.)<!--DelEnd-->!#%ur?D-Efficiency AAC profile, contain the audio object types: AAC LC, SBR&2r?K-Efficiency AAC v2 profile, contain the audio object types: AAC LC, SBR, PS&,n'*0c+A-),B-x-#`2-b-#`2K.G-).S-#90K.;/-).K0A0-#90e-#`2K.
0\-#`21I1-)1W-#`2m-).3IL3-#903$!?+=@:j5
	MAIN = 1,5{5lr?+=@:j5
<6
G6b4z7R7R!?+=@:	MAIN = 3,r8U8V9v9jb4:FA;v:d:eA;;eA;?<eA;<=E!?Pr?r?,P@@
aB@aBA3aB-B3aB!?:]DKGESKGFPKGFOKGGPKGGQKGbKGwHSKGHQ    /**
     *YI* SHI"seek to sync sample after the timeE'JK#seek to sync sample before the timeE'KK#seek to sync sample closest to timeE'LKMO^O^?P^?PPHPcaQcO%NR5R	?P%NR>?PRMRXagTGT\b'UEbUKZUI3VfVZZWN[WYW{aLYYYpZpbZTZtf[j[d6\o]\^ ]k]y~^^`~^w^cZq_^_}SeaLao"b_bkbcVZucTcc.dm~^dVZ!eZ|ez|ef\pfjg3jg4j4h4j~h4x'ok2 = 5,x@rok21 = 6,x[i2jPyokijNj31 = 9,jj`j	jyok4 = 11,jKjk3"_k0"sok1 = 15,!jl	j;l2jtokl	jlx'on2 = 1,x@ron?njPyon jN$o31 = 4,jyon4 = 5,j8o1 = 6,!_koo"so!"$o52 = 9,j;l opjton61 = 11,jl"o#qxހt rx@r3jr4jNtr	j s2j)`/q41 = 67,!Xts"s3"t2 = 86,jt4jt5jl`/q	62 = 102,jtu6juvNr?wDr?mwjsx5jx3xHjPy3jy5jy1j.z4"_kx5 = 8,j;lxzx{3j
|4jU|3j|3"|3j2}4j|}旲jx~3j~j
3jO7P~OW = 5,Qr?mwex@r21 = 1,x[ix2jr0jN4j4j4j s40 = 8,j)41 = 9,jk	j3"X3"s̈́	"3"Jjtjͅ5jl2 = 18,jtuj5j5jD5jӗjg@ފ
11 = 1,x'@ފ
2 = 2,x@r@ފ
21 = 3,jPy@ފ
}jN"ފ
31 = 5,j/j(@ފ
41 = 7,!_k@ފ"s@ފ" ފ2 = 10,j;l@ފ
6 = 11,jͅ"ފ
61 = 12,jl@ފ
jx~P@=j4j
P@=3 = 3,j:Վr?mw%"яeC    /*r'bUS4^    /**	Full?#ΔFULL = 0,
    /**
     *6j the
     *#    /**
     * UniformAp?KiKd},GawCx ~lTT#P?ŗT#P 6T#PsvT#P wTT<?&Sx }ǧ'p?Full#NaB"Pp?i
     * theaB"P5p?UniformaB"P?) !x[md-;DOaAqU >9x ǧˤlӊ`.Q$x   ˤ'/*
 * Copyright (c) 2024-2025   t
/**
 * @addtogroup ArkUI_NativeModule
 * @{
 *
 * @brief Provides UI capabilities of ArkUI on the native side, such as UI comp_onent creation and destruction,
 * tree node operations, attribute setting, and event listening
/**
 * @file native_node.h
 *
 * @brief Provides type definitions for **NativeNode** APIs.
 *
 * @library libace_ndk.z.so
 * @ArkUI.ArkUI.Full
 * @kit ArkUI
 * @since 12
 */

#ifndef ARKUI_NATIVE_NODE_H
#define ARKUI_NATIVE_NODE_H

#include "native_type.h"
#include "ui_input_event.h"

#ifdef __cplusplus
#include <cstdint>
#else
#include <stdint.h>
#endif

#ifdef __cplusplus
ext"!fine components max function size#define MAX_NODE_SCOPE_NUM 1000!J<ArkUI component types that can be created on the native side"]{
    /** Custom node. */
    ARKUI_NODE_CUSTOM = 0,
    /** Text. */
    ARKUI_NODE_TEXT = 1,
    /** Text span. */
    ARKUI_NODE_SPAN = 2,
    /** Image span. */
    ARKUI_NODE_IMAGE_SPAN = 3,
    /** Image. */
    ARKUI_NODE_IMAGE = 4,
    /** Toggle. */
    ARKUI_NODE_TOGGLE = 5,
    /** Loading icon. */
    ARKUI_NODE_LOADING_PROGRESS = 6,
    /** Single-line text input. */
    ARKUI_NODE_TEXT_INPUT = 7,
    /** Multi-line text input. */
    ARKUI_NODE_TEXT_AREA = 8,
    /** Button. */
    ARKUI_NODE_BUTTON = 9,
    /** Progress indicator. */
    ARKUI_NODE_PROGRESS = 10,
    /** Check box. */
    ARKUI_NODE_CHECKBOX = 11,
    /** XComponent. */
    ARKUI_NODE_XCOMPONENT = 12,
    /** Date picker. */
    ARKUI_NODE_DATE_PICKER = 13,
    /** Time picker. */
    ARKUI_NODE_TIME_PICKER = 14,
    /** Text picker. */
    ARKUI_NODE_TEXT_PICKER = 15,
    /** Calendar picker. */
    ARKUI_NODE_CALENDAR_PICKER = 16,
    /** Slider. */
    ARKUI_NODE_SLIDER = 17,
    /** Radio */
    ARKUI_NODE_RADIO = 1m8,
    /** Image animator. */
    ARKUI_NODE_IMAGE_ANIMATOR = 19,
    /** XComponent of type TEXTURE.
     * ?>RKUI_NODE_XCOMPONENT_TEXTURE,
    /** Check box group.
     * kARKUI_NODE_CHECKBOX_GROUP = 21,
    /**
     * Text editor.
     * @since 24
     */
    ARKUI_NODE_TEXT_EDITOR = 22,
    /** Stack container. */
    ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
    /** Swiper. */
    ARKUI_NODE_SWIPER,
    /** Scrolling container. */
    ARKUI_NODE_SCROLL,
    /** List. */
    ARKUI_NODE_LIST,
    /** List item. */
    ARKUI_NODE_LIST_ITEM,
    /** List item group. */
    ARKUI_NODE_LIST_ITEM_GROUP,
    /** Column container. */
    ARKUI_NODE_COLUMN,
    /** Row container. */
    ARKUI_NODE_ROW,
    /** Flex container. */
    ARKUI_NODE_FLEX,
    /** Refresh component. */
    ARKUI_NODE_REFRESH,
    /** Water flow container. */
    ARKUI_NODE_WATER_FLOW,
    /** Water flow item. */
    ARKUI_NODE_FLOW_ITEM,
    /** Relative layout component. */
    ARKUI_NODE_RELATIVE_CONTAINER,
    /** Grid. */
    ARKUI_NODE_GRID,
    /** Grid item. */
    ARKUI_dNODE_GRID_ITEM,
    /** Custom span. */
    ARKUI_NODE_CUSTOM_SPAN,
    /**
     * EmbeddedComponent7ARKUI_NODE_EMBEDDED_COMPONENT,
    /**
     * Undefined5ARKUI_NODE_UNDEFINED,
    /**
     * Picker containerx )RKUI_NODE_PICKER = 1018,
} ArkUI_NodeType.general input parameter structure of the {@link setAttribute} function. The property
 * setting interfaces can utilize the memb@er variables within it to store data of specific parameter types"struct {
    /** A number array, used to store parameters of the number array type. */
    const ArkUI_NumberValue* value;
    !/** The size of the number array,athe variable value, indicating the length of the value array. */
    int32_t size;
    /** String type, used to store parameters of the string type. */
    const char* string;
    /** Object type, used to store parameters of the object type. */
    void* object;
} ArkUI_AttributeItem.9ArkUI style attributes that can be set on the native side"]A

width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in vp.\n
     * \n
     * Format of the return vaflue {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in vp.\n
     *
     */
    NODE_WIDTHaw0

	height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in vp.\n
     * \n
     * Format of the return jvalue {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in vp.\n
     *
     */
    NODE_HEIGHT>

background color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *
     */
    NODE_BACKGROUND_COLOR>

background image attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address;\n
     * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
     * .object: The parameter type is {@link ArkUIE_DrawableDescriptor}. Either .string or .object must be set.\n
     *<b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address;\n
     * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
     * .obhject: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_BACKGROUND_IMAGE>

adding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in vp.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3=].f32: left padding, in vp.\n
     *
     */
    NODE_PADDING>

component ID attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID.\n
     * \n
     * Format of the return v^alue {@link ArkUI_AttributeItem}:\n
     * .string: component ID.\n
     *
     */
    NODE_ID>

interactivity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means the op*posite. \n
     *
     */
    NODE_ENABLED>

margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in vp.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: lef1t margin, in vp.\n
     *
     */
    NODE_MARGIN>

translate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis, in vp. The deO<b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis, in vpeO<b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vpe<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis, in vp.\n
     * .value[1].f32: distance to translate along the y-axis, in vp.\n
     * .value[2].f32: diQstance to translate along the z-axis, in vp. \n
     *
     */
    NODE_TRANSLATE>

scale attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttricbuteItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axi^><b>1</b>.\n
     * .value[1].f32: scale factor along the y-axi^<b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor aloneg the x-axis.\n
     * .value[1].f32: scale factor along the y-axis. \n
     *
     */
    NODE_SCALE>

rotate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the rotation axis vector. The default veJ<b>0</b>.\n
     * .value[1].f32: Y coordinate of the rotation axis vectoreJ<b>0</b>.\n
     * .value[2].f32: Z coordinate of the rotation axis vectore/<b>0</b>.\n
     * .value[3].f32: rotation angl<b>0</b>.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
     * The d<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the rotation axis vector.\n
     * .value[1].f32: Y coordinate of the rotation axis vector.\n
     * .value[2].f32: Z coordinate of the rotation axis vector.\n
     * .value[3].f32: rotation angle.\n
     * .value[4].f32: line of sight, that is, the distaQnce from the viewpoint to the z=0 plane, in vp. \n
     *
     */
    NODE_ROTATE>Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@lidnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: brightness valu<b>1.0</b>, and the recommended value range is [0, 2]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeIteSm}:\n
     * .value[0].f32: brightness value. \n
     *
     */
    NODE_BRIGHTNESS>Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@lienk ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: saturation valu<b>1.0</b>, and the recommended value range is [0, 50). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItUem}: \n
     * .value[0].f32: saturation value. \n
     *
     */
    NODE_SATURATION>Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkcUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: blur radius. A largZblur degree. If the value is <b>0</b>,
     * the component is not blurred. The unit is vpe<b>0.0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
     * the image is not blurred. The unit is v"p. \n
     *
     */
    NODE_BLUR>Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient. This attribute takes effect only when
     * {@link ArkUI_LinearGradientDirection} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM<S/b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)e<b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When it is set, the <b>angle</b> attribute does not take effect.
     * The parameter type is {@link ArkUI_LinearGradientDirection}: \n
     * .value[2].i32: whether the colors are repeatede<b>false</b>. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: start angle of the linear gradient. \n
     * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_LINEAR_GRADIENT>Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     *<b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].ib32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_ALIGNMENT>

opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity value. The value ranges from+ 0 to 1. \n
     *
     */
    NODE_OPACITY>

border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders. \n
     * 2: .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     *
     */
    NODE_BORDER_WIDTH>

border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners. \n
     * 2: .value[0].f32: radius of the upper left corner. \n
     * .value[1].f32: radius of the upper right corner. \n
     * .value[2].f32: radius of the lower left corner. \n
     * .value[3].f32: radius of the lower right corner. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the upper left corner. \n
     * .value[1].f32: radius of the upper right corner. \n
     * .value[2].f32: radius of the lower left corner. \n
     * .value[3].f32: radiusD of the lower right corner. \n
     *
     */
    NODE_BORDER_RADIUS>

border color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, foEr example, <b>0xFFFF11FF</b>. \n
     *
     */
    NODE_BORDER_COLOR>

border line style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].i32: line style of the four borders. The param.eter type is {@link ArkUI_BorderStyle}.
     *<b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
     *<b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
     *<b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
     *<b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
     *<b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line style of the top border. \n
     * .value[1].i32: line style of the right border. \n
     * .value[2].i32: line style of the bottom border. \n
     * .value[3].i32: line style of the left border. \n
     *
     */
    NODE_BORDER_STYLE,
    /*>

z-index attribute for the stack sequence.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: z-index value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: z-index value. \n
     *
     */
    NODE_Z_INDEX>

visibility attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show or hide the component. The paramete*r type is {@link ArkUI_Visibility}.
     *<b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0]c.i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     *F<b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     *
     */
    NODE_VISIBILITY>

clipping and masking attribute, which can be set, reset, and obtained as required through
     * APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
     *
     */
    NODE_CLIP>

clipping region on the component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
     * which supports four types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[6n]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[7]?.f32: radius of the top Arectangular shape.\n
     * .value[8]?.f32: radius of the bottom rectangular shape.\n
     * ?.object: clipOption of the rectangle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is rectangle, and .size must be equal to 1.
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * ?.object: clipOption of the circle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is circle, and .size must be equal to 1.
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * ?.object: clipOption of the ellipse. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is ellipse, and .size must be equal to 1.
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * ?.object: clipOption of the path. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is path, and .size must be equal to 1.
     * Format of the return value {@link ArkUI_AttributeItem}, which supports four types of shapes: \n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5].f32: radius of the top left corner of the rectangular shape; \n
     * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
(     * .value[7].f32: radius of the top Arectangular shape; \n
     * .value[8].f32: radius of the bottom rectangular shape; \n
     * .value[9]?.f32: horizontal coordinate offset of the rectangle. \n
     * .value[10]?.f32: vertical coordinate offset of the rectangle. \n
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * .value[3]?.f32: horizontal coordinate offset of the circle.\n
     * .value[4]?.f32: vertical coordinate offset of the circle.\n
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * .value[3]?.f32: horizontal coordinate offset of the ellipse.\n
     * .value[4]?.f32: vertical coordinate offset of the ellipse.\n
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for dra3wing the path.\n
     *
     */
    NODE_CLIP_SHAPE>

transform attribute, which can be used to translate, rotate, and scale images.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem_}:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     *
     */
    NODE_TRANSFORM>

hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     *<b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valueO[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     *P<b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     *
     */
    NODE_HIT_TEST_BEHAVIOR>

offset attribute, which specifies the offset of the component's upper left corner relative
     * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y0 coordinate. \n
     *
     */
    NODE_POSITION>

shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shadow effect. TheO parameter type is {@link ArkUI_ShadowStyle}. \n
     *
     */
    NODE_SHADOW>

custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: blur radius of the shadow, in vp.\n
     * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
     * strategy, and <b>0</b> (default value) means the opposite.\n
     * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
     * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
     * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. Thee<b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: whether to enable the coloring strategy. \n
     * .value[2].f32: offset of the shadow along the x-axis, in px.\n
     * .value[3].f32: offset of the shadow along the y-axis, in px.\n
     * .value[4].i32:% shadow type {@link ArkUI_ShadowType}e<b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     * means the 1opposite.\n
     *
     */
    NODE_CUSTOM_SHADOW>

background image width and height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the image. ThF+∞), and the unit is vp. \n
     * .value[1].f32: height of the imag+∞), and the unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the image, in vp. \n
     * .value[1].f32: height of the image, in vp. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE>

background image size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE>

background blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3]?.f32: blur degree. The value rang.0, 1.0]. \n
     * .value[4]?.f32: start boundary of grayscale blur. \n
     * .value[5]?.f32: end boundary of grayscale blur. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3].f32: blur degre.0, 1.0]. \n
     * .value[4].f32: start boundary of grayscale blur. \n
     * .value[5].f32: end boundary of grayscale blur. \/n
     *
     */
    NODE_BACKGROUND_BLUR_STYLE>

transform center attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the center point, in vp.\n
     * .value[1]?.f32: Y coordinate of the center point, in vp.\n
     * .value[2]?.f32: Z coordinate of the center point, in vp.\n
     * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
     * For ex@ample, 0.2 indicates 20%. This attribute overwrites value[0].f32e<b>0.5f</b>. \n
     * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
 L    * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32e<b>0.5f</b>. \n
     * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
 L    * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32e<b>0.0f</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the center point, in vp.\n
     * .value[1].f32: Y coordinate of the center point, in vp.\n
     * .value[2].f32: Z coordinate of the center point, in vp.\n
     * Note: If the coordinate is expressed in a number that represents a percentage, the attrifbute obtaining API
     * returns the calculated value in vp.
     *
     */
    NODE_TRANSFORM_CENTER>

transition opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: number of times that the animation is played. \n
     * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     X* .value[6].f32: animation playback speed. \n
     *
     */
    NODE_OPACITY_TRANSITION>

transition rotation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .v:alue[3].f32: angle. \n
     * .value[4].f32: line of sighte<b>0.0f</b>. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7]?.i32: animation delay duration, in milliseconds. \n
     * .value[8]?.i32: number of times that the animation is played. \n
     * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7].i32: animation delay duration, in milliseconds. \n
     * .value[8].i32: number of times that the animation is played. \n
     * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10].f32: animation playback speed.. \n
     *
     */
    NODE_ROTATE_TRANSITION>

transition scaling attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5]?.i32: animation delay duration, in milliseconds. \n
     * .value[6]?.i32: number of times that the animation is played. \n
     * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5].i32: animation delay duration, in milliseconds. \n
     * .value[6].i32: number of times that the animation is played. \n
     * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8].f32: animation playback speed., \n
     *
     */
    NODE_SCALE_TRANSITION>

transition translation attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5]?.i32: animation delay duration, in milliseconds. \n
     * value[6]?.i32: number of times that the animation is played. \n
     * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5].i32: animation delay duration, in milliseconds. \n
     * value[6].i32: number of times that the animation is played. \n
     * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8].f32: animation playback speed. \n
     *
     */
    NODE_TRANSLATE_TRANSITION>

slide-in and slide-out of the component from the screen edge during transition.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: number of times that the animation is played. \n
     * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. ,\n
     *
     */
    NODE_MOVE_TRANSITION,
A

focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FO	CUSABLE,
A

default focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_DEFAULT_FOCUS,
A

touch target attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of Vthe parameters is the same as the preceding.
     *
     */
    NODE_RESPONSE_REGION,
A

overlay attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * You can set the overlay content through .string or .object as follow, and .string has higher priority.
     * .string: mask text.\n
     * .value[0]?.i32: position of the overlay relative to the cPomponent. Optional.
     * The parameter type is {@link ArkUI_Alignment}.
     *<b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
     * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
     * \n
     * .value[3]?.i32: the layout direction.
     * The parameter type is {@link ArkUI_Di(rection}, supported since API 21.
     *<b>ARKUI_DIRECTION_LTR.</b> \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * \n
     * .object: the node tree used as the overlay.
     * The par/ameter type is {@link ArkUI_NodeHandle}.
     *<b>nullptr.</b> \n
     *econflict with .string, and it has lower priority than .string.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: mask text.\n
     * .value[0].i32: position of the overlay relative to the component.
     * The par.ameter type is {@link ArkUI_Alignment}.
     *<b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
     * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
     * .value[3].i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     *c<b>ARKUI_DIRECTION_LTR.</b> \n
     * .object: the overlay node handle. \n
     */
    NODE_OVERLAY>

sweep gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
     * .value[1]?.f32: Y coordinate of the sweep gradient centero relative to the upper left corner of the component.\n
     * .value[2]?.f32: start point of the sweep gradienteC<b>0</b>. \n
     * .value[3]?.f32: end point of the sweep gradienteH<b>0</b>. \n
     * .value[4]?.f32: rotation angle of the sweep gradiente<b>0</b>. \n
     * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     *1 .value[2].f32: start point of the sweep gradienteB<b>0</b>. \n
     * .value[3].f32: end point of the sweep gradienteG<b>0</b>. \n
     * .value[4].f32: rotation angle of the sweep gradiente<b>0</b>. \n
     * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positicons of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_SWEEP_GRADIENT>

radial gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[2]?.f32: radius of the radial gradient. The default e	<b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite. \n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
  1   * .value[2].f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positeions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_RADIAL_GRADIENT>Adds a mask of the specified shape to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
     * shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
  (   * .value[10]?.f32: radius of the top Brectangular shape.\n
     * .value[11]?.f32: radius of the bottom rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indicator.\n
     * .value[3].u32: color of the progress indicator, in 0xARGB format.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8].f32: radius of the top left corner of the rectangular shape.\n
     * .value[9].f32: radius of the bottom left corner Eof the rectangular shape.\n
     * .value[10].f32: radius of the top Arectangular shape.\n
     * .value[11].f32: radius of the bottom rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the prohgress indicator.\n
     * .value[3].u32: color of the progress indicator.\n
     *
     */
    NODE_MASK>Blends the component's background with the content of the component's child node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:R\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}e
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].?i32: how the specified blend mode is applied. The parameter type is ${@link ArkUI_BlendApplyType}.
     *<b>BLEND_APPLY_TYPE_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i3<2: blend mode. The parameter type is {@link ArkUI_BlendMode}e
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].i32: how the specified blend mode is applied. The parameter type is {#@link ArkUI_BlendApplyType}.
     *C<b>BLEND_APPLY_TYPE_FAST</b>. \n
     *
     */
    NODE_BLEND_MODE>Sets the direction of the main axis.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction of the mai>n axis.\n
     * The parameter type is {@link ArkUI_Direction}e<b>ARKUI_DIRECTION_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32T: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}eA<b>ARKUI_DIRECTION_AUTO</b>. \n
     *
     */
    NODE_DIRECTION>

size constraints.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in v,p.\n
     *
     */
    NODE_CONSTRAINT_SIZE>

grayscale effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {i@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: grayscale conversranges from 0 to 1.
     * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
     * \n
     * Format of the returNn value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: grayscale convers8ranges from 0 to 1.\n
     *
     */
    NODE_GRAY_SCALE>Inverts the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the e{@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: image inversranges from 0 to 1.
     * For example, 0.5 indicates a 50% image inversion ratio.\n
     * \n
     * Format of the return valuCe {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: image invers4ranges from 0 to 1.\n
     *
     */
    NODE_INVERT>

sepia conversion ratio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format ofk the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: sepia conversranges from 0 to 1.
     * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
     * \n
     * Format of the returJn value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sepia convers3ranges from 0 to 1.\n
     *
     */
    NODE_SEPIA>

contrast attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
     * A largcontrast. Value range: [0, 10).\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].fF32: contrast. Value range: [0, 10).\n
     *
     */
    NODE_CONTRAST>

foreground color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format.\n
     *
     */
    NODE_FOREGROUND_COLOR,
A

offset of the component's child relative to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : of?fset along the y-axis, in vp. \n
     *
     */
    NODE_OFFSET>Sets the anchor for locating the component's child.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordCinate of the anchor, in vp.\n
     *
     */
    NODE_MARK_ANCHOR,
A

sition of the background image in the component, that is, the coordinates relative to
     * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].?i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     *<b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].?i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     *<b>ARKUI_DIRECTION_AUTO</b>. \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].id32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     *<b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     *J<b>ARKUI_DIRECTION_AUTO</b>. \n
     */
    NODE_BACKGROUND_IMAGE_POSITION>Sets the alignment rules in the relative container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule.' \n
     *
     */
    NODE_ALIGN_RULES>Sets the alignment mode of the child components along the cross axis of the parent container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
   5  * The parameter type is {@link ArkUI_ItemAlignment}e<b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}eG<b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     *
     */
    NODE_ALIGN_SELF>Sets the percentage of the parent container's remaining space that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parente container's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_GROW>Sets the percentage of the parent container's shrink size that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent contain[er's shrink size that is allocated to the component. \n
     *
     */
    NODE_FLEX_SHRINK>Sets the base size of the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the compone)nt. \n
     *
     */
    NODE_FLEX_BASIS>Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter f   or setting the attribute:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <bA>1</b> or <b>0</b>.
     *
     */
    NODE_ACCESSIBILITY_GROUP,
ASets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility text.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility text.
     *
     */
    NODE_ACCESSIBILITY_TEXT,
ASets the accessibility service model. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     *
     */
    NODE_ACCESSIBILITY_MODE,
ASets the accessibility description.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility description.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility description.
     *
  *   */
    NODE_ACCESSIBILITY_DESCRIPTION,
A

focused state. This attribute can be set and obtained as required through APIs.
     * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
     * of the page to the root container.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1+ or 0.
     *
     */
    NODE_FOCUS_STATUS>

attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: aspect ratio of the component, in width/height format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: aspect ratio of the component, in <width/height format. \n
     *
     */
    NODE_ASPECT_RATIO>

weight of the component within its row, column, or flex container for proportional
     * distribution of available space within the container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: weight of the component along the main axis. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: weight of the componen?t along the main axis. \n
     *
     */
    NODE_LAYOUT_WEIGHT>Sets the display priority for the component in the row, column, or flex  (single-line) container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: display priority of the component in the container. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: display priority of the component in the container. \n
     *"
     */
    NODE_DISPLAY_PRIORITY>Sets the thickness of an element's outline.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickDness of the bottom outline. \n
     *
     */
    NODE_OUTLINE_WIDTH>

width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in percentage.\n
     *
     */
    NODE_WIDTH_PERCENT,>

height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in percentage.\n
     *
     */
    NODE_HEIGHT_PERCENT>

adding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in percentage.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     *
     */
    NODE_PADDING_PERCENT>

margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in percentage.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     *
     */
    NODE_MARGIN_PERCENT,

    /**
      * @brief The implicit shared element transition within the component supports attribute setting,
      * attribute reset, and attribute acquisition interfaces.
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is false, and the original position will remain unchanged if not involved. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      *\n
      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is not false, if not involved, the original position will remain unchanged. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      */
    NODE_GEOMETRY_TRANSITION,

    /**
      * @brief specifies the parameters of the chain formed by this component as the chain head,
      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
      *
      * Only takes effect when the parent container is RelativeContainer
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      *\n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle4}. \n
      */
    NODE_RELATIVE_LAYOUT_CHAIN_MODE,
ASet the component content filling method in the process of width and height animation,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     *
     */
    NODE_RENDER_FIT,
AExternal stroke color properties, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
     * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFF1F11FF. \n
     *
     */
    NODE_OUTLINE_COLOR,
ASet the height and width dimensions, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     *
     */
    NODE_SIZE,
ASet whether the current component and child component are
     * rendered off the screen first and then fused with the parent control,
     * supporting property setting, property reset and property acquisition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_RENDER_GROUP,
AAdd color overlay effect to components, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_COLOR_BLEND,
AProvide content ambiguity capability for the current component,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkHUI_AdaptiveColor} enumeration value.\n
     * .value[3]?.f32: blur degreE.0, 1.0]. \n
     * .value[4]?.f32 It is a gray-level fuzzy parameter@127].\n
     * .value[5]?.f32 It is a gray-level fuzzy parameter127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration va'lue.\n
     * .value[3].f32: blur degreD.0, 1.0]. \n
     * .value[4].f32 It is a gray-level fuzzy parameter?127].\n
     * .value[5].f32 It is a gray-level fuzzy parameter7127].\n
     *
     */
    NODE_FOREGROUND_BLUR_STYLE,
A

component size and position for layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: X coordinate of the component, in px. \n
     * .value[1].i32: Y coordinate of the component, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in px. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: X coordinate of the component, in px. \n
     * .value[1].i32: Y coordinate of the component, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in p+x. \n
     *
     */
    NODE_LAYOUT_RECT,
AWhether the current component supports click-to-focus capability,
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: FThe parameter type is 1 or 0.
     *
     */
    NODE_FOCUS_ON_TOUCH,
A

border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders, in percentage. \n
     * 2: .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     *
     */
    NODE_BORDER_WIDTH_PERCENT = 85>

border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners, in percentage. \n
     * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
     * .value[1].f32: radius of the upper right corner, in percentage. \n
     * .value[2].f32: radius of the lower left corner, in percentage. \n
     * .value[3].f32: radius of the lower right corner, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the upper left corner, in percentage. \n
     * .value[1].f32: radius of the upper right corner, in percentage. \n
     * .value[2].f32: radius of the lower left corner, in percentage. \n
     * .value[3].f32: radius of the[ lower right corner, in percentage. \n
     *
     */
    NODE_BORDER_RADIUS_PERCENT = 86,
AAccessible ID, which can be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeIatem}:\n
     * .value[0].i32：Accessible ID。\n
     *
     */
    NODE_ACCESSIBILITY_ID = 87,
ADefine accessible actions, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     /*
     */
    NODE_ACCESSIBILITY_ACTIONS = 88,
ADefine accessible role, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ROLE = 89,
ADefine accessible state, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityState}.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parbameter type is {@link ArkUI_AccessibilityState}.\n
     *
     */
    NODE_ACCESSIBILITY_STATE = 90
ine accessible value, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object：the parameter type is {@link ArkUII_AccessibilityValue}.\n
     *
     */
    NODE_ACCESSIBILITY_VALUE = 91>defines control components to extend their security zones,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
     * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
     * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
     * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: extends the security zone. \n. \n
     *.value[1].u3n2: indicates the direction to extend the security zone. \n. \n
     *
     */
    NODE_EXPAND_SAFE_AREA = 92,
A

visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array0 to 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
P^A

visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component, this enum extendscapbility.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array0 to 1.
     * .?object: pass in one {@link ArkUI_VisibleAreaEventOptions} objcet for configging the ratio or other options.
     * Please note, when use this param, the ratios set through .value[...].f32 will be ignored, and the update
     * interval from it is always ignored too.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32V: threshold array. \n
     * .object: the {@link ArkUI_VisibleAreaEventOptions} objcetߋt%NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
ASets the transition effect when the component is inserted or deleted.
     * This attribute can be set, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     *
     */
    NODE_TRANSITION = 94,
A

component ID.
     * This attribute can be obtained through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} paramQeter for obtaining the attribute:\n
     * .value[0].i32: component ID. \n
     *#W20
     * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
     */
    NODE_UNIQUE_ID = 9q0Set the current component system focus box style.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting+ the attribute: \n
     * .value[0].f32: ThNfocus box and the edge of the component. \n
     * Positive numbers represent the outer side, negative numbers represent the inner side. \n
     * Percentage is not supported. \n
     * .value[1].f32: Focus box width. Negative numbers and percentages areo not supported. \n
     * .value[2].u32: Focus box color. \n
     * \n
     *
     */
    NODE_FOCUS_BOX = 96,
A

moving distance limit for the component-bound tap gesture.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: allowed moving distIance of a finger, in vp. \n
     *
     */
    NODE_CLICK_DISTANCE = 97,
ASets whether the focus can be placed on this component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0ߋfNODE_TAB_STOP = 98,
    A

backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：backdrop blur radius, in px+∞).\n
     * .value[1]?.f32：grayscale blur settings that control the brightness of the black color.\n
     * The value ran
n127].\n
     * .value[2]?.f32：grayscale blur settings that control the darkness of the white color.\n
     *127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：backdrop blur radius, in px+∞).\n
     * .value[1].f32：grayscale blur settings that control the brightness of the black color.\n
     * The value rang	m127].\n
     * .value[2].f32：grayscale blur settings that control the darkness of the white color.\n
     *127].\n $NODE_BACKDROP_BLUR = 99,
A

background image resizable attribute, which can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: widt(h of the bottom edge. The unit is vp. \n>19
     */
    NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100Sets the next focus node.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
     * .object: next focus node. The paramete/r type is {@link ArkUI_NodeHandle}.\n
     * \n?NODE_NEXT_FOCUS = 101,
ASets the parameters for visible area change events.
     *
     * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
     * the expected interval due to system load and other factors.
     * The interval between two visible area change callbacks will not be less than the expected update interval. If the
     * provided expected interval is too short, the actual callback interval will be determined by the system load.
     * By default, the interval threshold of the visible area change callback includes 0. This means that,
     * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: parameters for visible Zarea change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \nm2NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,
A

translate attribute, which supports for percentile translation input, and can be set, reset,
     * and obtained as required through APIs.\n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
     * The unit is vp only if value[3] exists and value[3] is 0eof value[0] is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
     *9 The unit is vp only if value[4] exists and value[4] is 0e^of value[1] is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vpe<b>0</b>.\n
     * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[0].f32=0.1 and value[3].i632=1 indicates a 10% shift in the x direction.
     * <b>1</b>.\n
     * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[1].f32=0.1 and value[4].i632=1 indicates a 10% shift in the y direction.
     * <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
     * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
     * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
     * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
     *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
     *  distance is percentage;\n
     * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
     *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
     *  distance is percentage;\n#NODE_TRANSLATE_WITH_PERCENT = 103,
ASets component rotation with multi-axis angle control. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: x-axis rotation angl7<b>0</b>. \n
     * .value[1].f32: y-axis rotation angl7<b>0</b>. \n
     * .value[2].f32: z-axis rotation anglb<b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in pxe<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: x-axis rotation angl4<b>0</b>.
     * .value[1].f32: y-axis rotation angl7<b>0</b>. \n
     * .value[2].f32: z-axis rotation anglb<b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in pxe<b>0</b>. \nNODE_ROTATE_ANGLE = 104,
A

width attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.>\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n*1
     */
    NODE_WIDTH_LAYOUTPOLICY = 10q0

	height attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the height of the component folloAws.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n.1
     */
    NODE_HEIGHT_LAYOUTPOLICY = 106,
A

sition attribute in param type Edges, which specifies the position of the component
     * by the distance relative to the parent container's four edges. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     *
     *	)1
     */
    NODE_POSITION_EDGES = 107,
ASet whether the component enables the ability to invert colors.
     * This attribute can be set , and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  The parameter type is 1 or 0.\n+1
     */
    NODE_ALLOW_FORCE_DARK = 108,
A

ixelRound attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .objgect indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n&1
     */
    NODE_PIXEL_ROUND = 109,
ASet whether to enable the default click sound effect for this component.
     * It only takes effect on supported devices, such as TV. Whether it can produce sound depends on the device's
     * sound-related settings. For example, sound effects will not be played in silent mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter value is either 1 or 0. 1 indicates the default click sound effect is enabled,
     * while 0 indicates it is disablede1.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Indicates whether the default click sound effect is enabled for this node.\n
     * The parameter value is either 1 or 0. 1 indicates the default click Csound effect is enabled,
     * while 0 indicates it is disabled.\n14
     */
    NODE_ENABLE_CLICK_SOUND_EFFECT = 110

	motion path attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object indicates a pointer to the ArkUI_MotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .object indicates a pointer to the ArkUI_MotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n7NODE_MOTION_PATH = 111,
A

hover effect applied when the component is hovered over. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Hover ieffect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}e<b>ARKUI_HOVER_EFFECT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. \n
     7NODE_HOVER_EFFECT = 112,
AConfigures the container as a focus group with the specified identifier. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .striXng: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus groupe<b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus grouDp. This setting only takes effect when <b>isGroup</b> is <b>true</b>e<b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:g\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus groupe<b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus grouDp. This setting only takes effect when <b>isGroup</b> is <b>true</b>e6<b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n7NODE_FOCUS_SCOPE_ID = 113,
ASets the component focus priority within a specific focus scope. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}.
     *<b>ARKUI_FOCUS_PRIORITY_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}. \n7!NODE_FOCUS_SCOPE_PRIORITY = 114,
ASets the distance threshold for click events. This attribute can be set, reset, and obtained as required through APIs.
     *
     * @note If finger movement exceeds the preset distance limit, click event recognition will fail.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: distance threshold for click events.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: distance threshold for click events. \n7+NODE_ON_CLICK_EVENT_DISTANCE_THRESHOLD = 11q0

	component event response region. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. Thke value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter orderߋ7!NODE_RESPONSE_REGION_LIST = 116,
A

event monopolization attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Boolean value (1 or 0).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Boolean value (1 or 0).
     *
     
7NODE_MONOPOLIZE_EVENTS = 117,
ASets the weight of the component in a chain, which is used to re-lay out components that form the chain.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .val"ue[1].f32: Vertical ChainWeight.\n7NODE_CHAIN_WEIGHT = 118,
AExpands the layout safe area of a component.,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0].u32: The region type to expa(nd the component's layout safe area intoeLayoutSafeAreaType.SYSTEM. {@link ArkUI_LayoutSafeAreaType},
     * For example, ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM; \n
     * D.value[1].u32: The set of edges for which to ignore layout safe areaeLayoutSafeAreaEdge.ALL. {@link ArkUI_LayoutSafeAreaEdge}; \n
     * For example: ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_START; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: The region type to expand the component's layout safe area into. \n
     *.value[1].u32: The set of edges for which to ignore layout safe area. \n7$NODE_IGNORE_LAYOUT_SAFE_AREA = 119,
A

length of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n7NODE_DASH_WIDTH = 120

	gap of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The gap of dash on the top border. \n
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The gap of dash on the top border. \n  
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n7NODE_DASH_GAP = 121,
A

align rules of child component in Stack container, which can be set, reset, and obtained as required through APIs.\n
     * The<b>ARKUI_LOCALIZED_ALIGNMENT_CENTER</b>. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}. \n7NODE_LAYOUT_GRAVITY = 122,
A

render types for drawing rounded corners when the radius of the border rounded corners is set, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}.
     * The defau<b>ARKUI_RENDERSTRATEGY_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0b].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}. \n7#NODE_BORDER_RADIUS_TYPE = 123,
    A

inspector label attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: inspector label.\n
     * \n
     * Format of the reVturn value {@link ArkUI_AttributeItem}:\n
     * .string: inspector label.\n
     * \nщ"NODE_INSPECTOR_LABEL = 126,
A

next accessibility focus id of current component for accessibility processing to find the next focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility next focus ID.
     * \n
     * Format of the return value {@link ArkUII_AttributeItem}:\n
     * .string: accessibility next focus ID.
     * \nщ"(NODE_ACCESSIBILITY_NEXT_FOCUS_ID = 124,
ASets the accessibility default focus flag for accessibility services to find the default focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the componeont is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \nщ"%NODE_ACCESSIBILITY_DEFAULT_FOCUS = 12q0

	system material attribute, which can be set, reset, and obtained as required through APIs.
     * Only devices that support sysRtemMaterial can use this attribute. Otherwise, when setting this attribute,
     *^xRKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} will be returned.
     * Whether a device supports materials can be determined by calling
     * {@link OH_ArkUI_NativeModule_GetSystemMaterialSupported}.
     * The material effect behaves differently on devices with different level of computing powers.
     * The level is defined by {@link ArkUI_MaterialLevel}, which can be obtained by
     * {@link OH_ArkUI_NativeModule_GetGlobalMaterialLevel}.
     * On devices with the computing power level of ARKUI_MATERIAL_LEVEL_SMOOTH, it affects attributes such as the
     * backgroundColor, borderWidth, borderColor, shadow.
     * On devices with the computing power levels of ARKUI_MATERIAL_LEVEL_EXQUISITE or ARKUI_MATERIAL_LEVEL_GENTLE,
     * it affects shadow attribute and adds a filter effect at the system material layer, which can produce an effect
     * similar to glass.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * The ArkUI_ImmersiveMaterialHandle object of the return value is a pointer to static member, so do not release
     * the return objIect by calling {@link OH_ArkUI_NativeModule_ImmersiveMaterial_Destroy}.\n)NODE_SYSTEM_MATERIAL = 127,
A

text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: text content.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: text content.\n
     *
     */
    NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT>

font color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].u32: font colo?r value, in 0xARGB format.\n
     *
     */
    NODE_FONT_COLOR>

font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: font size, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     *
     */
    NODE_FONT_SIZE,
    /**>

font style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_nAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font style {@link ArkUI_FontStyle}e<b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].iL32: font style {@link ArkUI_FontStyle}.\n
     *
     */
    NODE_FONT_STYLE>

font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default e	<b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].Pi32: font weight {@link ArkUI_FontWeight}.\n
     *
     */
    NODE_FONT_WEIGHT>

text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height, in fp.\n
     *
     */
    NODE_TEXT_LI	NE_HEIGHT>

text decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@l%ink ArkUI_TextDecorationType}.
     *<b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32: text decoration style {@li0nk ArkUI_TextDecorationStyle}. \n
     *
     */A

text decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@l%ink ArkUI_TextDecorationType}.
     *<b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
     * .value[3]?.f32: text decoration thickness scale. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
     * .value[3].f32: text decorat'ion thickness scale. \n
     *
     *  tNODE_TEXT_DECORATION>

text case attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text case.\n
     * \n
     * Format of the return vhalue {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text case.\n
     *
     */
    NODE_TEXT_CASE>

letter spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing, in fp.\n
     *
     */
    NODE_TEXT_LETTER_SPACING>Setqines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {W@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum n	;lines in the text.\n
     *
     */
    NODE_TEXT_MAX_LINES>Horizontal alignment mode of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_Text1Alignment}. \n
     *
     */
    NODE_TEXT_ALIGN>

text overflow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode wWhen the text is too long. {@ArkUI_TextOverflow}\n
     *
     */
    NODE_TEXT_OVERFLOW>

font family attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: fonts, separated by commas (,).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: fonts, separated by commas (,).
     *
     */
    NODE_FONT_FAMILY>

copy option attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The defaulte
<b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].iU32: copy option {@link ArkUI_CopyOptions. \n
     *
     */
    NODE_TEXT_COPY_OPTION>

text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   )  *
     */
    NODE_TEXT_BASELINE_OFFSET>

text shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[,1].i32: shadow type {@link ArkUI_ShadowType}e<b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
     * .value[2].u32: shadow color, in 0xARGB format.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow alAong the y-axis, in vp.\n
     *
     */
    NODE_TEXT_TEXT_SHADOW>

minimum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum font size, in fp.
     *
     */
    NODE_TEXT_MIN_FONT_SIZE,
A

maximum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum font size, in fp.
     *
     */
    NODE_TEXT_MAX_FONT_SIZE,
A

text style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
     *<b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
     *<b>ARKUI_FONT_STYLE_NORMAL</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font we<ight. The parameter type is {@link ArkUI_FontWeight}.
     *<b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
     * TheC<b>ARKUI_FONT_STYLE_NORMAL</b>.
     *
     */
    NODE_TEXT_FONT,
ADefines how the adaptive height is determined for the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
     *
     */
    NODE_TEXT_HEIGHT_ADAPTIVE_POLICY>

indentation of the first line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: indentation of the first line. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: indentation of the fir/st line. \n
     *
     */
    NODE_TEXT_INDENT>

line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@lin>k ArkUI_WordBreak}. \n
     *
     */
    NODE_TEXT_WORD_BREAK>

ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is I{@link ArkUI_EllipsisMode}. \n
     *
     */
    NODE_TEXT_ELLIPSIS_MODE>

text line spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line spacing, in fp.\n
     *
     */
    NODE_TEXT_LINE_SPACING> Set the text feature effect and the NODE_FONT_FEATURE attribute,
     * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
     * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
     * The capabilities need to be supported by the fonts, \n
     * Interfaces for setting, resetting, and obtaining attributes are supported. \n
     * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
     * .string: complies with the text feature format. The format is normal | \n
     * is in the format of [ | on | off],\n.
     * There can be multiple values separated by commas (,). \n
     * For example, the input format of a number with the same width is ss01 on. \n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .string indicates the content of the text f\eature. Multiple text features are separated by commas (,). \n
     */
    NODE_FONT_FEATURE>Setting Enable Text Recognition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Enable text recognition, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Enable Text Recognition\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR,
    /**
 >Set the text recognition configuration.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...].i32：Array of entity types, parameter types{@li\nk ArkUI_TextDataDetectorType}。\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG>

background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_SELECTED_BACKGROUND_COLOR,

    /**
   AThe text component uses a formatted string object to set text content properties,
     * and supports property setting, property reset, and property acquisition interfaces.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates ArkUI_StyledString formatted string data. The parameter typ   e is {@link ArkUI_StyledString}. \n
     */
    NODE_TEXT_CONTENT_WITH_STYLED_STRING,

 ASets whether to center text vertically in the text component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameterU for setting the attribute:\n
     * .value[0].i32: whether to center text verticallye<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to ceKnter text vertically. \n
     *
     */
    NODE_TEXT_HALF_LEADING = 1029,
A

font weight attribute, which can be set, reset, and obtained as required through APIs.
     * The font weight specified by this API is not affected by any changes in the system font weight settings.
     *
     * Format of the {@link ArkUI_AttributeItem}b parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}e<b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].,i32: font weight {@link ArkUI_FontWeight}.\n $ NODE_IMMUTABLE_FONT_WEIGHT = 1030

	text line count attribute, which can only be obtained as required through APIs.
     *
     * Format of the return value {@linkE ArkUI_AttributeItem}:\n
     * .value[0].i32: line count of the nodeߋNODE_TEXT_LINE_COUNT = 1031,
 ASets whether to optimize the trailing spaces at the end of each line during text layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
     *              <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to optDimize trailing spaces at the end of each line during text layout. \n*NODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,
ASets a linear gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTVOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)e<b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDDirection}. \n
     * .value[2].i32: whether the colors are repeatede<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pAositions of the color stops. \n
     * size: number of colors. \n"NODE_TEXT_LINEAR_GRADIENT = 1033,
ASets a radial gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The defe<b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to tXhe upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colorns of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n"NODE_TEXT_RADIAL_GRADIENT = 1034,
ASets the vertical alignment of the text content.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: verticalc alignment of the text content, specified using the {@link ArkUI_TextVerticalAlignment}
     * enume<b>ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUI_TextVerticalAlignment}
     * enum. \nNODE_TEXT_VERTICAL_ALIGN = 103q0Sets the content align of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: content align of the Dtext, specified using the {@link ArkUI_TextContentAlign}
     * enume<b>ARKUI_TEXT_CONTENT_ALIGN_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .vjalue[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. \n.1
     */
    NODE_TEXT_CONTENT_ALIGN = 1036,
ASets the minimum number of lines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: minimum number of lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: mi$nimum number of lines in the text.\nt)
     */
    NODE_TEXT_MIN_LINES = 1037,
AEnables the selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {c@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\nt0NODE_TEXT_ENABLE_SELECTED_DATA_DETECTOR = 1038,
A

minimum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum line height.\n
     * \n
    i * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum line height.\nt,
     */
    NODE_TEXT_MIN_LINE_HEIGHT = 1040

	maximum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum line height.\n
     * \n
    i * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum line height.\nt/
     */
    NODE_TEXT_MAX_LINE_HEIGHT = 1041,
ADefines line height multiple value of text, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height multiple value of text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height multiple value of text.\nt4
     */
    NODE_TEXT_LINE_HEIGHT_MULTIPLE = 1042,
AGet the text layout manager of the text.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .objectV: the layout manager of text. The parameter type is {@link ArkUI_TextLayoutManager}.\nt!NODE_TEXT_LAYOUT_MANAGER = 1043,
ASet the edit menu options of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menu options of text. The parameter type is {@link ArkUI_TextEditMenuOptions}.\n
     *
     * t$NODE_TEXT_EDIT_MENU_OPTIONS = 1044,
ABind the selection menu for text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the custom selection menu of text.
     *     The parameter type is {@link ArkUI_SelectionMenuOptions}.\n
   t#NODE_TEXT_BIND_SELECTION_MENU = 104q0Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     >*     The parameter type is {@link ArkUI_SelectionOptions}. \n7!NODE_TEXT_TEXT_SELECTION = 1046,
AWhether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n&.	  NODE_TEXT_ORPHAN_CHAR_OPTIMIZATION = 1047,
AWhether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disabl	e.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\n7/NODE_TEXT_COMPRESS_LEADING_PUNCTUATION = 1048,
ADetermines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, tru8e means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n7'NODE_TEXT_INCLUDE_FONT_PADDING = 1049,
AWhether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this f#eature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n7%NODE_TEXT_FALLBACK_LINE_SPACING = 1050Set the marquee options of text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n7"NODE_TEXT_MARQUEE_OPTIONS = 1051,
AWriting direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     *
     
7NODE_TEXT_DIRECTION = 1052,
AUsed to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag prebview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n7.NODE_TEXT_SELECTED_DRAG_PREVIEW_STYLE = 1053,
ASets the controller of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\nm
     * .object: the controller of the text. The parameter type is
     * {@link OH_ArkUI_TextController }.\n)NODE_TEXT_CONTROLLER = 1054,
A

text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: content of the text span. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: content of the text span. \n
     *
     */
    NODE_SPAN_CONT*ENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN>

text background style.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
     * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
     * 1: .value[1].f32: radius of the four corners, in vp. \n
     * 2: .value[1].f32: radius of the upper left corner, in vp. \n
     * .value[2].f32: radius of the upper right corner, in vp. \n
     * .value[3].f32: radius of the lower left corner, in vp. \n
     * .value[4].f32: radius of the lower right corner, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the text background, in 0xARGB format. \n
     * .value[1].f32: radius of the upper left corner, in vp. \n
     * .value[2].f32: radius of the upper right corner, in vp. \n
     * .value[3].f32: radius of the lower left corner, in vp. \n
     * .value[4].f32: radius of theQ lower right corner, in vp. \n
     *
     */
    NODE_SPAN_TEXT_BACKGROUND_STYLE>

text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   )  *
     */
    NODE_SPAN_BASELINE_OFFSET>

text style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * ?.string: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.
     * .value[2]?.i32: foInt style. Optional. The parameter type is {@link ArkUI_FontStyle}.
     *<b>ARKUI_FONT_STYLE_NORMAL</b>.
     * ?.object: Optional. The font configurations. The parameter type is {@link OH_ArkUI_FontConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight. \n
     * .valuKe[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
     *<b>ARKUI_FONT_STYLE_NORMAL</b>.
     * .object: the font configurations. The parameter type is {@link OH_ArkUI_FontConfigs}.\n
%4
     */
    NODE_SPAN_FONT = 2003,
A

font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIX_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weighte400.\n
     * ?.object: Optional. The font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight.\n
     * .object: [the font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n*4
     */
    NODE_SPAN_FONT_WEIGHT = 2004>

image source of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN>

alignment mode of the image with the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the image with the text.
     * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the image with the text.
     * The value his an enum of {@link ArkUI_ImageSpanAlignment}. \n
     *
     */
    NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT>

laceholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter Rtype is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_ALT>

baseline offset attribute of the <b>ImageSpan</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * A positive value means an upward offset, while a negative value means a downward offset.
     * The defaul<b>0</b>, and the unit is fp. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
   -  * .value[0].f32: baseline offset, in fp. \n713
     */
    NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
A

color filter of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem } parameter for setting the attribute:\n 
     * .value [0].f32 to . value [19].f32: filter matrix array. \n 
     * .size :5 x 4 filter array size. \n 
     * .object : the pointer to OH_Drawing_ColorFilter. Either . value or . object is set. \n 
     * \n 
     * Format of the return value {@ link ArkUI_AttributeItem ):\n 
     * .value [0].f32 to .value [19].f32: filter matrix array. \n 
     * .size: 5 x 4 filter array size. \n 
     * .object: the pointer to OH_Drawing_ColorFilter. \n t#NODE_IMAGE_SPAN_COLOR_FILTER = 3004>Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    2 * .value[0].i32: whether color fliter support svge<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\nt#NODE_IMAGE_SPAN_SUPPORT_SVG2 = 3005>

image source of the <Image> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image source.\n
     * .object: The parameter type is {@liink ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE>Defines how the image is resized to fit its container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is resized to fit its container. The value is Oan enum of {@link ArkUI_ObjectFit}. \n
     *
     */
    NODE_IMAGE_OBJECT_FIT>

interpolation effect of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterp8olation}. \n
     *
     */
    NODE_IMAGE_INTERPOLATION>Defines how the image is repeated.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     *
     */
    NODE_IMAGE_OBJECT_REPEAT>

color filter of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. -\n
     *
     */
    NODE_IMAGE_COLOR_FILTER>

auto resize attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 : whether to resize the image source. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 : whether to resize the image source. \n
)     *
     */
    NODE_IMAGE_AUTO_RESIZE>

laceholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter Mtype is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_ALT>Defines whether the image is draggable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the image is draggable. \n
     *
     */
    NODE_IMAGE_DRAGGABLE,
    /*>

image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter tyQpe is {@link ArkUI_ImageRenderMode}. \n
     *
     */
    NODE_IMAGE_RENDER_MODE>Defines whether the image display size follows the image source size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     *
     */
    NODE_IMAGE_FIT_ORIGINAL_SIZE,
    /**
   >

fill color of the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valTue[0].u32: fill color, in 0xARGB format. \n
     *
     */
    NODE_IMAGE_FILL_COLOR>Resize the image when stretching it with array or a lattice object.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     *
     */
    NODE_IMAGE_RESIZABLE>

synchronous image loading attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to load the image synchronously. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whethe%r to load the image synchronously. \nNODE_IMAGE_SYNC_LOAD = 4012>

image decoding size attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n)1
     */
    NODE_IMAGE_SOURCE_SIZE = 40@0Support the implementation of affine image transformations using floating-point numbers.
     * This attribute can be set, reset, and obtained as required through APIs.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers.\n,1
     */
    NODE_IMAGE_IMAGE_MATRIX = 4014>

image follow text direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to follows the text direction.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether! to follows the text direction.\n41
     */
    NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015>

image copy attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}e<b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i+32: copy option {@link ArkUI_CopyOptions.\n+1
     */
    NODE_IMAGE_COPY_OPTION = 4016>

image AI analysis enable attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whet*her to enable AI analysis for the image.\n/1
     */
    NODE_IMAGE_ENABLE_ANALYZER = 4017>

image dynamic display range attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dynamic range mode' {@link ArkUI_DynamicRangeMode}.
     *<b>ARKUI_DYNAMIC_RANGE_MODE_STANDARD</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .Avalue[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode.\n21
     */
    NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018>

image dynamic display brightness attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n-1
     */
    NODE_IMAGE_HDR_BRIGHTNESS = 401>

image display direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation}.
     *<b>ARKUI_ORIENTATION_UP</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:( orientation {@link ArkUI_Orientation.\n*1
     */
    NODE_IMAGE_ORIENTATION = 402<Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n.1
     */
    NODE_IMAGE_SUPPORT_SVG2 = 4021, ASet the animation effect for the image content transformation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     * 
     * Format of the return value {@link ArkUI_AttributeWItem}:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n21
     */
    NODE_IMAGE_CONTENT_TRANSITION = 4022>

laceholder image during loading process.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object;: The parameter type is {@link ArkUI_DrawableDescriptor}.\nt!NODE_IMAGE_ALT_PLACEHOLDER = 4023>

laceholder image when loading fails.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: Th7e parameter type is {@link ArkUI_DrawableDescriptor}.\ntNODE_IMAGE_ALT_ERROR = 4024>Configure image edge anti-aliasing via an enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch,tfalse.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
    7NODE_IMAGE_ANTIALIASED = 4025>

color of the component when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_SELECTED_COLOR = MAX_N!ODE_SCOPE_NUM * ARKUI_NODE_TOGGLE>

color of the circular slider for the component of the switch type.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. \n
     *+
     */
    NODE_TOGGLE_SWITCH_POINT_COLOR>

toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valuQe[0].i32: whether to enable the toggle. \n
     *
     */
    NODE_TOGGLE_VALUE,
A

color of the component when it is deselected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_UNSELECTED_COLOR,

  A

foreground color of the loading progress bar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: foreground color, in 0xARGB format. \n
     *
     */
    NODE_LOADING_PROGRESS_COLOR = MA.X_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS>Defines whether to show the loading animation for the <LoadingProgress> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show the loading animation.
     * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
     *
     */
    NOD#E_LOADING_PROGRESS_ENABLE_LOADING,
A

default placeholder text of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholhder text. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT>

default text content of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n(
     *
     */
    NODE_TEXT_INPUT_TEXT>

caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[X0].u32: caret color, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_CARET_COLOR>

caret style attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: caret width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: caret width, in vp. \n
     *
     */
    NODE_TEXT_INPUT_CARET_STYLE>

underline attribute of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show an underline.
     * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show an und]erline, and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_UNDERLINE>

wcharacters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forcmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:haracters in the text input, without a unit. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Mharacters in the text input. \n
     *
     */
    NODE_TEXT_INPUT_MAX_LENGTH>

type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}e<b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0l].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_INPUT_ENTER_KEY_TYPE>

laceholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value_[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_COLOR>

laceholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The deeZ<b>16.0</b>.\n
     * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
     *<b>ARKUI_FONT_STYLE_NORMAL</b>. \n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
     * The default va<b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * ?.string: font family. Multiple font families are separated by commas (,).
     * Example: "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separated by commas (,). \n
   0  *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_FONT>Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
   d   * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS>

text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}.
     *<b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value^[0].i32: text box type {@link ArkUI_TextInputType}. \n
     *
     */
    NODE_TEXT_INPUT_TYPE>

background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
    /*>Defines whether to display the password icon at the end of the password text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the password icon at the end of the password text box.
     * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password jtext box,
     * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_PASSWORD_ICON>

editable state for the single-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether to remain in the editable state. The value
     * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanKs to exit the editable state. \n
     *
     */
    NODE_TEXT_INPUT_EDITING>

style of the cancel button on the right of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .vAalue[0].i32: button style {@link ArkUI_CancelButtonStyle}.
     *<b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
     * .value[1]?.f32: button icon size, in vp.\n
     * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
     * .value[1].f32: icon size, in vp.\n
     * .value[2].u32: button icon color, in 0xARGB format.\n
     * .string: button icon image source. \n
     *
     */
    NODE_TEXT_INPUT_CANCEL_BUTTON>Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_INPUT_TEXT_SELECTION,
    /**
    * @brief Sets the color of the text underline when it is enabled.
    *
    * The default underline color configured for the theme is <b>'0x33182431'</b>.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].u32: color of the underline applied to the text being typed in.
    * The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state.
    * The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled.
    * The value is in 0xARGB format. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
    *
    */
    NODE_TEXT_INPUT_UNDERLINE_COLOR,
    /**
    * @brief Sets whether to enable autofill.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to enable autofille<b>true</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to enable autofill. \n
    *
    */
    NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
    /**
    * @brief Sets the autofill type.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_TYPE,
    /**
   
rules for generating passwords. When autofill is used, these rules are transparently
    * transmitted to Password Vault for generating a new password.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: rules for generating passwords. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: rules for generating passwords. \n
    *
    */
    NODE_TEXT_INPUT_PASSWORD_RULES,
    /**
    * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameeter for setting the attribute:\n
    * .value[0].i32: whether to select all text in the initial statb>false</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to select all text in the initial state. \n
    *
    */
    NODE_TEXT_INPUT_SELECT_ALL,
    /**
    * @brief Sets the regular expression for input filtering.
    * Only inputs that comply with the regular expression can be displayed.
    * Other inputs are filtered out. The specified regular expression can match single characters,
    * but not strings.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: regular expression. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: regular expression. \n
    *
    */
    NODE_TEXT_INPUT_INPUT_FILTER,
    /**
    * @brief Sets the text box to the default style or inline input style.
    *
    * For the inline input style, only <b>InputType.Normal</b> is supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    *
    */
    NODE_TEXT_INPUT_STYLE,
    /**
    * @brief Sets or obtains the caret position.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * In the case of setting the caret position:
    * .value[0].i32: character count from the beginning of a string to the caret position. \n
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
    * current frame, it will not take effect.
    * .value[0].i32: index of the caret position. \n
    * .value[1].f32: X coordinate of the caret relative to the text box. \n
    * .value[2].f32: Y coordinate of the caret relative to the text box. \n
    */
    NODE_TEXT_INPUT_CARET_OFFSET,
    /**
    * @brief Obtains the position of the edited text area relative to the component and its size.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: horizontal coordinate. \n
    * .value[1].f32: vertical coordinate. \n
    * .value[2].f32: content width. \n
    * .value[3].f32: content height. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_RECT,
    /**
    * @brief Obtains the number of lines of the edited text.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of lines Jof the edited text. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_LINE_COUNT>Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-press)ed, double-click, or
     * right-clickede<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. \n
     *
     */
    NODE!_TEXT_INPUT_SELECTION_MENU_HIDDEN>Sets whether the text box loses focus after the Enter key is pressed to submit information.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
 0    *
     */
    NODE_TEXT_INPUT_BLUR_ON_SUBMIT>Set up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0]?.i32：Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0].i32：Set whetherj the custom keyboard supports the avoidance function.\n
     *
     */
    NODE_TEXT_INPUT_CUSTOM_KEYBOARD>

line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@linFk ArkUI_WordBreak}. \n
     *
     */
    NODE_TEXT_INPUT_WORD_BREAK,
ASets whether the keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
AWhen this property is set, the height of the textInput component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the value of numberOfLines.\n
   1  *
     */
    NODE_TEXT_INPUT_NUMBER_OF_LINES,
ASets the letter spacing of the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * 9.value[0].f32: letter spacing. The default unit is fp. \n $'NODE_TEXT_INPUT_LETTER_SPACING = 7032,
ASets whether to enable preview text for the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
   4  * .value[0].i32: whether to enable preview tex. \n $,NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,
ASets whether to center text vertically in the textInput component.
     *
     * Format of the {@link ArkUI_AttributeItem} paraZmeter for setting the attribute:\n
     * .value[0].i32: whether to center text verticallye<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n?NODE_TEXT_INPUT_HALF_LEADING = 7034,

    /**
    * @brief Set the keyboard style of textInput
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0]^.i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
h0*/
    NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 703q0Set whether to enable the auto fill animation or not.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether to enable the auto fill animation.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
     .NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,
ASet the line height of the input node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
   $NODE_TEXT_INPUT_LINE_HEIGHT = 7037,
AEnables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@lin_k ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\nt6NODE_TEXT_INPUT_ENABLE_SELECTED_DATA_DETECTOR = 7038,
A

counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximu=characters multiplied
     * by the threshold percentage valu1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character cou]nter is displayed
     * when the number of characters that have been entered is greater than=characters multiplied
     * by the threshold percentage valu1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     *o<b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\nt"NODE_TEXT_INPUT_SHOW_COUNTER = 7040Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base contHroller. The parameter type is {@link ArkUI_TextContentBaseController}.\n75NODE_TEXT_INPUT_TEXT_CONTENT_CONTROLLER_BASE = 7041,
A

ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     *  @since 24
     */
 )   NODE_TEXT_INPUT_ELLIPSIS_MODE = 7042,
AWhether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n&4	  NODE_TEXT_INPUT_ORPHAN_CHAR_O   PTIMIZATION = 7043,
AWhether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disabl	e.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\n75NODE_TEXT_INPUT_COMPRESS_LEADING_PUNCTUATION = 7044,
ADetermines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, tru8e means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n7*NODE_TEXT_INPUT_INCLUDE_FONT_PADDING = 704q0Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this f#eature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n7.NODE_TEXT_INPUT_FALLBACK_LINE_SPACING = 7046,
AWriting direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     *
     
7"NODE_TEXT_INPUT_DIRECTION = 7047,
AUsed to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag previ`ew style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n74NODE_TEXT_INPUT_SELECTED_DRAG_PREVIEW_STYLE = 7048,
A

textinput textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
     * 
     *  @since 24
     */
    NODE_TEXT_INPUT_TEXT_OVERFLOW = 7049,
A

text decoration style and color for single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is {@link OH_ArkUI_DecorationStyleOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style opGtions. The parameter type is {@link OH_ArkUI_DecorationStyleOptions}.\n) NODE_TEXT_INPUT_DECORATION = 7050Sets a linear gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The defaulte
<b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDDirection}. \n
     * .value[2].i32: whether the colors are repeatede<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pAositions of the color stops. \n
     * size: number of colors. \n)(NODE_TEXT_INPUT_LINEAR_GRADIENT = 7051,
ASets a radial gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to tXhe upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colorns of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n)(NODE_TEXT_INPUT_RADIAL_GRADIENT = 7052,
A

default placeholder text for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholfder text. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA>

default text content for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n'
     *
     */
    NODE_TEXT_AREA_TEXT>

wcharacters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forcmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:haracters in the text input. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Lharacters in the text input. \n
     *
     */
    NODE_TEXT_AREA_MAX_LENGTH>

laceholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value^[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_COLOR>

laceholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The deeR<b>16.0</b>.\n
     * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optionaleg<b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optionale<b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separated by commas (,). \n
     *
+     */
    NODE_TEXT_AREA_PLACEHOLDER_FONT>

caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .bvalue[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_CARET_COLOR>

editable state for the multi-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
     * editable state, and <b>false</b> means to exit the editable state.\n \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanLs to exit the editable state.\n \n
     *
     */
    NODE_TEXT_AREA_EDITING>

text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
     * <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[[0].i32: text box type {@link ArkUI_TextAreaType}. \n
     *
     */
    NODE_TEXT_AREA_TYPE>

counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximu=characters multiplied
     * by the threshold percentage valu1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character co^unter is displayed
     * when the number of characters that have been entered is greater than=characters multiplied
     * by the threshold percentage valu1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     *<b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     *
     */ 
    NODE_TEXT_AREA_SHOW_COUNTER>Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-presse(d, double-click,
     * or right-clickede<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. \n
     *
     */
    NODE _TEXT_AREA_SELECTION_MENU_HIDDEN>Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses; focus. \n
     *
     */
    NODE_TEXT_AREA_BLUR_ON_SUBMIT>Sets the regular expression for input filtering.
     * Only inputs that comply with the regular expression can be displayed.
     * Other inputs are filtered out. The specified regular expression can match single characters,
     * but not strings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: regular expression. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: regular expression. \n
     *
   $  */
    NODE_TEXT_AREA_INPUT_FILTER>

background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
    /**>

type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}e<b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0k].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_AREA_ENTER_KEY_TYPE>Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
    a * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS>Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
    U * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_AREA_CARET_OFFSET>Obtains the position of the edited text area relative to the component and its size.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal coordinate. \n
     * .value[1].f32: vertical coordinate. \n
     * .value[2].f32: content width. \n
     * .value[3].f32: content height. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_RECT,
>Obtains the number of lines of the edited text.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *k .value[0].i32: number of lines of the edited text. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_LINE_COUNT>Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[_1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_AREA_TEXT_SELECTION>Sets whether to enable autofill.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n1
     * .value[0].i32: whether to enable autofille<b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enaCble autofill. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_AUTO_FILL>Sets the autofill type.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentT9ype}. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_TYPE,
ASets whether the keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
AWhen this property is set, the height of the textArea component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Set the value of numberOfLines\n
 2    *
     */
    NODE_TEXT_AREA_NUMBER_OF_LINES,
ASets the letter spacing of the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .8value[0].f32: letter spacing. The default unit is fp. \n $$NODE_TEXT_AREA_LETTER_SPACING = 8023>Sets whether to enable preview text for the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    3 * .value[0].i32: whether to enable preview tex. \n $+NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,
ASets whether to center text vertically in the textArea component.
     *
     * Format of the {@link ArkUI_AttributeItem} paramYeter for setting the attribute:\n
     * .value[0].i32: whether to center text verticallye<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n?NODE_TEXT_AREA_HALF_LEADING = 8025,

    /**
    * @brief Set the keyboard style of textArea
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i\32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
h2*/
    NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,
ASet the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count.
     * \n
     *c Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: max lines count.\n!NODE_TEXT_AREA_MAX_LINES = 8027,
ASet line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line spacing value. \n
     * \n
 l    * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line spacing value. \n$NODE_TEXT_AREA_LINE_SPACING = 8028,
ASet the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min lines count.
     * \n
     *c Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: min line count.\n0 
     */
    NODE_TEXT_AREA_MIN_LINES = 8029,
 ASet the max lines of the node with scroll.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count with scroll.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: max line count with scroll.\n*NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
  g   * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value#NODE_TEXT_AREA_LINE_HEIGHT = 8031,
ADefine bar state of the text area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: bar state of the text =area, specified using the {@link ArkUI_BarState} enum.
     *<b>ARKUI_BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32Q: bar state of the text area, specified using the {@link ArkUI_BarState} enum. \nt" NODE_TEXT_AREA_BAR_STATE = 8032,
AEnables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@lin_k ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\nt5NODE_TEXT_AREA_ENABLE_SELECTED_DATA_DETECTOR = 8033,
A

color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the &scroll bar thumb, in 0xARGB format. \nt+ NODE_TEXT_AREA_SCROLL_BAR_COLOR = 8035,

 !Sets up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0]?.i32: Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0].i32: Set whether the3 custom keyboard supports the avoidance function.\nt'NODE_TEXT_AREA_CUSTOM_KEYBOARD = 8036,
AUsed to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base contHroller. The parameter type is {@link ArkUI_TextContentBaseController}.\n74NODE_TEXT_AREA_TEXT_CONTENT_CONTROLLER_BASE = 8037,
A

ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     *  @since 24
     */
 (   NODE_TEXT_AREA_ELLIPSIS_MODE = 8038,
AWhether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature true means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n)0NODE_TEXT_AREA_ORPHAN_CHAR_OPTIMIZATION = 8039,
AWhether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disabl	e.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\n71NODE_TEXT_AREA_COMPRESS_LEADING_PUNCTUATION = 8040	termines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true 6means enable this feature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n7,NODE_TEXT_AREA_INCLUDE_FONT_PADDING = 8041,
AWhether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this f#eature, false means disable.
     *false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n7-NODE_TEXT_AREA_FALLBACK_LINE_SPACING = 8042,
AOWhether to enable horizontal scrolling when text is wider than the view.
     *false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether enable the feature, true means enable this feature, false means disable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether enable the feature. \n
     *
:4
     */
    NODE_TEXT_AREA_HORIZONTAL_SCROLLING = 8043,
AWriting direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     *
     
7!NODE_TEXT_AREA_DIRECTION = 8044,
AUsed to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag prev`iew style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n70NODE_TEXT_AREA_SELECTED_DRAG_PREVIEW_STYLE = 804q0

	textarea textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
     * 
     *  @since 24
     */
    NODE_TEXT_AREA_TEXT_OVERFLOW = 8046,
A

text decoration style and color for multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is {@link OH_ArkUI_DecorationStyleOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style optFions. The parameter type is {@link OH_ArkUI_DecorationStyleOptions}.\n)"NODE_TEXT_AREA_DECORATION = 8047,
ASets a linear gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default e	<b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDDirection}. \n
     * .value[2].i32: whether the colors are repeatede<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pAositions of the color stops. \n
     * size: number of colors. \n)'NODE_TEXT_AREA_LINEAR_GRADIENT = 8048,
ASets a radial gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to tXhe upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradiente<b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colorns of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n)'NODE_TEXT_AREA_RADIAL_GRADIENT = 8049,
A

button text content. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_BUTTON_LABE,L = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
ASets the button type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     *<b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0J].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     *V<b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     *
     */
    NODE_BUTTON_TYPE,

    /**
   
minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: minimum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: minimum font scale, in fp.
    *
    * @since 18
   0 */
    NODE_BUTTON_MIN_FONT_SCALE,

    /**
   
maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: maximum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: maximum font scale, in fp.
    *
    * @since 18
   $ */
    NODE_BUTTON_MAX_FONT_SCALE,
A

current value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value of the progress indicator. \n
     *
     */
    NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
  >

total value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: total value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total Jvalue of the progress indicator. \n
     *
     */
    NODE_PROGRESS_TOTAL>

color for the progress value on the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_PROGRESS_COLOR,
    /**
   >

type of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the progress indi(cator {@link ArkUI_ProgressType}.
     *<b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[k0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
     *
     */
    NODE_PROGRESS_TYPE>Sets the style of the linear progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     * If the progress indicator type is not linear, it will not take effect.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_Pr4ogressLinearStyleOption} object to get the style. \n $NODE_PROGRESS_LINEAR_STYLE,
ADefines whether the check box is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the check box is selected.
     * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
     * 
     */
    NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
A

color of the check box when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for exampleD, <b>0xFF1122FF</b>.
     *
     */
    NODE_CHECKBOX_SELECT_COLOR,
A

border color of the check box when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * 
     */
    NODE_CHECKBOX_UNSELECT_COLOR,
A

internal icon style of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .val>ue[2]?.f32: stroke width of the internal mark, in vp. Optionale<b>2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f3+2: stroke width of the internal mark, in vpe4<b>2</b>. \n
     *
     */
    NODE_CHECKBOX_MARK,
A

shape of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     */
    NODE_CHECKBOX_SHAPE,

    /**
  A

name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * FormaWt of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n $NODE_CHECKBOX_NAME,
A

name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * FormaWt of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n $NODE_CHECKBOX_GROUP,
A

ID of the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID. \n
     *
     */
    NODE_XCOMPONE2NT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT>Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
     * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
     * Attempting to change the type through {@link setAttribute} will cause rendering exceptions.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type {@link ArkUI_XComp6onentType}. \n
     *
     */
    NODE_XCOMPONENT_TYPE>Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
     * Attempting to modify the size through {@link setAttribute} will have no effect.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: width, in px. \n
     * .value[1].u32: height, in px. \n
     *
     */
    NODE_XCOMPONENT_SURFACE_SIZE,
    /**>

rectangle information of surface created by the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * @sinc?NODE_XCOMPONENT_SURFACE_RECT>Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * +value[0].i32: The parameter type is 1 or 0.?!NODE_XCOMPONENT_ENABLE_ANALYZER,
ADefines whether to display the lunar calendar in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .valueA[0].i32: whether to display the lunar calendar in the date pickere<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker.
     *
     */
    NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER>

start date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Fobrmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: dat<b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     $*
     */
    NODE_DATE_PICKER_START>

end date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Form`at of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: dat<b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
   $  *
     */
    NODE_DATE_PICKER_END>

selected date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     *e Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: dat<b>"2024-01-22"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date.
     *&
     */
    NODE_DATE_PICKER_SELECTED>

font color, font size, and font weight for the top and bottom items in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   5  *
     */
    NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE>

font color, font size, and font weight of all items except the top, bottom, and selected
     * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarFmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_TEXT_STYLE>

font color, font size, and font weight of the selected item in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
    , */
    NODE_DATE_PICKER_SELECTED_TEXT_STYLE>

mode of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].iF32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\nߋ?NODE_DATE_PICKER_MODE = 13007>Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return valueK {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n?/NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008>Defines whether to support scroll looping for the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</Gb> means to support scroll looping, and <b>0</b> means the opposite. \n! NODE_DATE_PICKER_CAN_LOOP = 1300>

time of the selected item. in the timer picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The defauͬthe current system time. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time.
  Y   *
     */

    NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER>Defines whether the display time is in 24-hour format.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wh+ether the display time is in 24-hour formate<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the dWisplay time is in 24-hour format.
     *
     */
    NODE_TIME_PICKER_USE_MILITARY_TIME>

font color, font size, and font weight for the top and bottom items in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   5  *
     */
    NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE>

font color, font size, and font weight of all items except the top, bottom, and selected items
     * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarFmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_TEXT_STYLE>

font color, font size, and font weight of the selected item in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
    , */
    NODE_TIME_PICKER_SELECTED_TEXT_STYLE>

start time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Fobrmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: tim<b>"00:00:00"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The defauͬ<b>"00:00:00"</b>.\n?NODE_TIME_PICKER_START = 14005>

end time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Form`at of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: tim<b>"23:59:59"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The defauͬ<b>"23:59:59"</b>.\n?NODE_TIME_PICKER_END = 14006>Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
   +  * .value[0].i32: whether to enable cascad<b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable cascade.\n?)NODE_TIME_PICKER_ENABLE_CASCADE = 14007,
A

data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the text1 picker {@link ArkUI_TextPickerRangeType}.
     *<b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
     * ?.string: string input, whose format varies by picker type.\n
     * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.object: Object input, whose format varies by picker type.\n
     * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
     * ?.string: string output, whose format varies by picker type.\n
     * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.string: Object output, whose format varies by picker type.\n
     * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangejContent}.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER>

index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeIt   em}:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one.\5n
     *
     */
    NODE_TEXT_PICKER_OPTION_SELECTED>

value of the default selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;).\n
     *
     */
    NODE_TEXT_PICKER_OPTION_VALUE>

font color, font size, and font weight for the top and bottom items in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   5  *
     */
    NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE>

font color, font size, and font weight for all items except the top, bottom, and selected
     * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HaGrmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_TEXT_STYLE>

font color, font size, and font weight for the selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
   -  */
    NODE_TEXT_PICKER_SELECTED_TEXT_STYLE>

index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: index of the default item in the data selection range.
     *
     */
    NODE_TEXT_PICKER_SELECTED_INDEX>Defines whether to support scroll looping for the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_PICKER_CAN_LOOP,
    /*>

height of each item in the picker. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: item height, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: item height, in vp. \n
     *
7     */
    NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT>Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return valueK {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n?-NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 150g0

	background color and border radius of the selected items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * 1: .value[1].f32: radius of the four corners. \n
     * 2: .value[1].f32: radius of the upper left corner. \n
     * .value[2].f32: radius of the upper right corner. \n
     * .value[3].f32: radius of the lower left corner. \n
     * .value[4].f32: radius of the lower right corner. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n     *
     * .value[1].f32: radius of the upper left corner. \n
     * .value[2].f32: radius of the upper right corner. \n
     * .value[3].f32: radius of the lower left corner. \n
     * .value[4].f32: radius of the lower right 
corner. \n2NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011>

style of the background in the selected state of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .vYalue[0].f32: style of the background in the selected state of the calendar picker.
     *+∞). If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, t2he background is a rectangle with rounded corners.O
     * or greater than 16, the background is a circle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItaem}:\n
     * .value[0].f32: style of the background in the selected state of the calendar picker+∞).
     * If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 r9ange, the background is a rectangle with rounded corners.Oor
     * greater than 16, the background is a circle. \n
     *
     */
    NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_ NUM * ARKUI_NODE_CALENDAR_PICKER>

date of the selected item in the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     *
     */
    NODE_CALENDAR_PICKER_SELECTED_DATE>Defines how the calendar picker is aligned with the entry component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
6     *
     */
    NODE_CALENDAR_PICKER_EDGE_ALIGNMENT>

font color, font size, and font weight in the entry area of the calendar picker.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.u32: font color of the entry area. \n
     * .value[1]?.f32: font size of the entry area, in fp. \n
     * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: font color of the entry area. \n
     * .value[1].f32: font size of the entry area, in fp. \n
     * .value[2].i32: font weight of the entrmy area. The parameter type is {@link ArkUI_FontWeight}. \n
     *
     */
    NODE_CALENDAR_PICKER_TEXT_STYLE>

start date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     	?"NODE_CALENDAR_PICKER_START = 16004>

end date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     	? NODE_CALENDAR_PICKER_END = 16005>

color of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
A

background color of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_TRACK_COLOR,
A

color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format,P for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_SELECTED_COLOR,
ASets whether to display the stepping value. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the op6posite. \n
     *
     */
    NODE_SLIDER_SHOW_STEPS,
A

slider shape, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
     * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
      * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_SLIDER_BLOCK_STYLE,

    /**
     *A

current value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value.
     *
     */
    NODE_SLIDER_VALUE,
A

minimum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum value.
     *
     */
    NODE_SLIDER_MIN_VALUE,
A

maximum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum value.
     *
     */
    NODE_SLIDER_MAX_VALUE,
A

step of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkW ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: step.01, 100]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: step. The value 0.01, 100].
     *
     */
    NODE_SLIDER_STEP,
ADefines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
     * obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     * The parameter type is {@link ArkUI_SliderDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider moves horizontally: or vertically.
     *
     */
    NODE_SLIDER_DIRECTION,
ADefines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> means the opposite.
     *"
     */
    NODE_SLIDER_REVERSE,
A

style of the slider thumb and track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
  $   *
     */
    NODE_SLIDER_STYLE,
ASets the track thickness of the slider.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: track thickness of the slider, in vpe4.0 vp when <b>NODE_SLIDER_STYLE</b>
     * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
     * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: track thickness of the slider, in vp. \n
     *
     */
    NODE_SLIDER_TRACK_THICKNESS,

    /**
  ADefines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
     * requestPermissions field of the module.json5 file to enable vibration permission.\n
?,NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,
ASets a custom component on the leading side of the Slider component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The prefix component will bge placed at the start position of the Slider，
     * typically on the left side in LTR layouts.
	 *
	<NODE_SLIDER_PREFIX,
ASets a custom component on the trailing side of the Slider component.
     *
     * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The suffix component jwill be placed at the end position of the Slider,
     * typically on the right side in LTR layouts.
	 *
	<NODE_SLIDER_SUFFIX,
A

color of the slider block. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. $\n
     * size: number of colors. \n71
     */
    NODE_SLIDER_BLOCK_LINEAR_GRADIENT_COLOR,
A

background color of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the c0olor stops. \n
     * size: number of colors. \n71
     */
    NODE_SLIDER_TRACK_LINEAR_GRADIENT_COLOR,
A

color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop po@sitions of the color stops. \n
     * size: number of colors. \n:1
     */
    NODE_SLIDER_SELECTED_LINEAR_GRADIENT_COLOR,
ASet the selection status of an option button. Attribute setting,
     * attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: check status of an option buttonefalse.
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: selection sta_tus of an option button.
     */
    NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO>Set the styles of the selected and deselected states of the option button.
     * The attribute setting, attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .v^alue[0]?. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and tk0xFF007DFF. \n
     * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
     * and t0xFF182431. \n
     * .value[2]?. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and t0xFFFFFFFF. \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0]. u32: coloKr of the mother board in enabled state. \n
     * The type is 0xARGB, and tj0xFF007DFF. \n
     * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
     * and t0xFF182431. \n
     * .value[2]. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and t*0xFFFFFFF. \n
     */
    NODE_RADIO_STYLE>Sets the value of the current radio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: radio value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: radio value.\n
     *
     */
    NODE_RADIO_VALUE,
   >Set the group name of the current Radio group, only one radio of the same group can be selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: name of the group to which the current option box belongs.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: name of the group to which the current option box belongs.\n
     *
     */
    NODE_RADIO_GROUP,
ASet the image frames for the image animator. Dynamic updates is not supported.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     *
    */
    NODE_IMAGE_ANIMATOR_7IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM>Set the playback status of the animation for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: ]the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
     * and tARKUI_ANIMATION_STATUS_INITIAL.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
     *
    */
    NODE_IMAGE_ANIMATOR_STATE = 19001>Set the playback duration for the image animator. When the duration is 0, no image is played.
     * The value change takes effect only ate next cycle.
     * When a separate duration is set in images, the setting of this attribute is invalid.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} PTarameter format:\n
     * .value[0].i32: the playback duration, the unit is ms and t1000.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the pZlayback duration, the unit is ms.\n
     *
    */
    NODE_IMAGE_ANIMATOR_DURATION = 19002>Set the playback direction for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
    */
    NODE_IMAGE_ANIMATOR_REVERSE = 19003>Set whether the image size is the same as the component size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * In this case, the width, height, top, and left attributes of the image are invalid.
     * 0 indicates the image size is customized.
     * The width, height, top, and left attributes of each image must be set separately.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * 0 indicates the image size is cust@omized.
     *
    */
    NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004>=Set the status before and after execution of the animation indirection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the status before and after execution of the animation in=direction,
     * the type is {ArkUI_AnimationFillMode} and tARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:R\n
     * .value[0].i32: the status before and after execution of the animation indirection,
     * the type is {ArkUI_AnimationFillMode}.
     *
    */
    NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
    /**
     >	Set the number of times that the animation is played.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
    */
    NODE_IMAGE_ANIMATOR_ITERATION = 19006,
A

name of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * \Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n $LNODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
ADefines whether the checkboxgroup is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the checkboxgroup is selected.
     * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> meansH that the checkboxgroup is selected, and <b>0</b> means the opposite. \n $ NODE_CHECKBOX_GROUP_SELECT_ALL,
A

color of the checkboxgroup when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
     * for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB &format, for example, <b>0xFF1122FF</b>ߋ $"NODE_CHECKBOX_GROUP_SELECTED_COLOR>

border color of the checkboxgroup when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AettributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>?'&NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,
A

internal icon style of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * B.value[2]?.f32: stroke width of the internal mark, in vp. Optionale<b>2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f3+2: stroke width of the internal mark, in vpe<b>2</b>. \n $NODE_CHECKBOX_GROUP_MARK,
A

shape of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .vaNlue[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}ߋ $NODE_CHECKBOX_GROUP_SHAPE,
AType of the **Enter** key of the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Type of the **Enter** key. The parameter type is {@link ArkUI_EnterKeyType}. The default
     * value is **ARKUI_ENTER_KEY_TYPE_NEW_LINE**.
     * <br>**Returns**
     * <br>.value[0].i32: Type of the **Enter** key. The parameter type is {@link ArkUI_EnterKeyType}.
   ]4
     */
    NODE_TEXT_EDITOR_ENTER_KEY_TYPE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,
ACaret color of the **TextEditor** component. This attribute can be set, reset, and obtained as required
     * through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].u32: Caret color, in 0xARGB format. For example, **0xFFFF0000** indicates red.
     * <br>**Returns**
     * <br>.value[0].u32: Caret color, in 0xARGB format.
  ,4
     */
    NODE_TEXT_EDITOR_CARET_COLOR,
AScroll bar color of the **TextEditor** component. This attribute can be set, reset, and obtained as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.data[0].u32: Scroll bar color, in 0xAR]GB format.
     * <br>**Returns**
     * <br>.data[0].u32: Scroll bar color, in 0xARGB formatߋ14
     */
    NODE_TEXT_EDITOR_SCROLL_BAR_COLOR,
AScroll bar display mode of the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Scroll bar displaQy mode of the text area. The parameter type is {@link ArkUI_BarState}. The
     *ARKUI_BAR_STATE_AUTO**.
     * <br>**Returns**
     * <br>.value[0].i32: Scroll bar display mode of the text area. The paramete r type is {@link ArkUI_BarState}ߋ*4
     */
    NODE_TEXT_EDITOR_BAR_STATE,
AWhether to enable text entity recognition for the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32+: Whether to enable text entity recognitionGHo enable text entity
     * recognition, and **0** indicates the opposit[
     * <br>**Returns**
     * <br>.value[0].i32: Whether text entity recognition is enableދ54
     */
    NODE_TEXT_EDITOR_ENABLE_DATA_DETECTOR,
ARecognition configuration for the **TextEditor** component. This attribute can be set and reset as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Recognition configuration. The parameter type is {@link ArkUI_TextDataDetectorConfig}.
     * 
   ?624
     */
    NODE_TEXT_EDITOR_DATA_DETECTOR_CONFIG,
AExtended menu options for the **TextEditor** component. This attribute can be set and reset as required
     * through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parametegrs**
     * <br>.object: Extended menu options. The parameter type is {@link ArkUI_TextEditMenuOptions}ߋ24
     */
    NODE_TEXT_EDITOR_EDIT_MENU_OPTIONS,
APlaceholder options when there is no input for the **TextEditor** component. This attribute can be set
     * and reset as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Placeholder options when there is no input. The parameter type is
     * {@link A"rkUI_TextEditorPlaceholderOptions}ߋ,4
     */
    NODE_TEXT_EDITOR_PLACEHOLDER,
AStyled string controller of the **TextEditor** component. This attribute can be set as required through
     * APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Styled string controller. The parameter type is {@link ArkUI_TextEditorStyledStringController}.
     *
     * 94
     */
    NODE_TEXT_EDITOR_STYLED_STRING_CONTROLLER,
AWhether to enable preview text for the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable preview texF=o enable preview text, and **0**
     * indicates the opposit1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether preview text is enabled. The value **1** indicates preview text i2s enabled, and **0**
     * indicates the oppositeߋ44
     */
    NODE_TEXT_EDITOR_ENABLE_PREVIEW_TEXT,
A**TextLayoutManager** of the **TextEditor** component. This attribute can be obtained as required through
     * APIs.
     * <br>The format of the return value {@link ArkUI_AttributeItem} is as follows.
     * <br>**Returns**
     * <br>.object: Layout >manager. The parameter type is {@link ArkUI_TextLayoutManager}ߋ4
     */
    NODE_TEXT_EDITOR_LAYOUT_MANAGER,

    /**
      * @brief Whether to enable the AI menu for text selection and recognition of the **TextEditor** component. This
      * attribute can be set, reset, and obtained as required through APIs.
      * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
      * return value **ArkUI_AttributeItem** are as follows.
      * <br>**Parameters**
      * <br>.value[0].i32: Whether to enable the AI meknu for text selection and recognition. The value **1** means to
      * enable, and **0** means the opposit1**.
      * <br>**Returns**
      * <br>.value[0].i32: Whether the AI menu is enabled for text selection and recognition.
    S  *
      * @since 24
      */
    NODE_TEXT_EDITOR_ENABLE_SELECTED_DATA_DETECTOR,
ABackground color of the selected content in the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.data[0].u32: Background color of the selected content, in 0xARGB format.
     * <br>**Returns**
     * <br>.data[0].u32: Background color of &the selected content, in 0xARGB formatߋ:4
     */
    NODE_TEXT_EDITOR_SELECTED_BACKGROUND_COLOR,
AWhether to enable the input method when the focus is obtained in a way other than by clicking in the **
     * TextEditor** component. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable the input method when the focus is obtained in a way otVher than clicking.
     * The value **1** means to enable, and **0** means the opposit1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether the input method is enabled when the focus is obtained in a way other than clicking.
     *HJe input method is enabled, and **0** indicates the input method is disableދ94
     */
    NODE_TEXT_EDITOR_ENABLE_KEYBOARD_ON_FOCUS,
AMaximum number of characters in the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Maximum numb_er of characters.
     * <br>**Returns**
     * <br>.value[0].i32: Maximum number of charactersߋ+4
     */
    NODE_TEXT_EDITOR_MAX_LENGTH,
AMaximum number of lines in the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Maximum number of lines in the text editor.
     * <br>**Returns**
     * <br>.value[0].i32: Maximum number of lines in the text editor.
     *
*4
     */
    NODE_TEXT_EDITOR_MAX_LINES,
AWhether to enable haptic feedback of the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable haptic feedback in the text editor. The value **1** means to enable, and **
     * 0** means the opposite. The defauͬ1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether haptic feedback is enabled. The value **1** indicates haptic feed8back is enabled, and
     * **0** indicates the oppositeߋ74
     */
    NODE_TEXT_EDITOR_ENABLE_HAPTIC_FEEDBACK,
ACopy options of the **TextEditor** component, which can be set, reset, and obtained as required through
     * APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Copy options. The parameter type is {@link ArkUI_CopyOptions}e
     * ARKUI_COPY_OPTIONS_LOCAL_DEVICE**.
     * <br>**Returns**
     * <br>.value[0].i32: Copy options. The parameter type is {@link ArkUI_CopyOptions}ߋ4
     */
    NODE_TEXT_EDITOR_COPY_OPTIONS,

    /**
    * @brief Keyboard appearance of the **TextEditor** component. This attribute can be set, reset, and obtained as
    * required through APIs.
    * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
    * return value **ArkUI_AttributeItem** are as follows.
    * <br>**Parameters**
    * <br>.value[0].i32: Appearance of the keyboard. The parameter type is {@link ArkUI_KeyboardAppearance}. The
    *ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE**.
    * <br>**Returns**
    * <br>.value[0].i32: Appearance of the keyboard. The parameter type is {@link ArkUI_KeyboardAppearance}.
    *
    * @since 24
    */
    NODE_TEXT_EDITOR_KEYBOARD_APPEARANCE,

    /**AWhether the **TextEditor** component blocks the propagation of return events. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i532: Whether to block the propagation of return eventsG0o block, and **
     * 0** indicates the opposite
     * <br>**Returns**
     * <br>.value[0].i32: Whether the propagation of return events is blockedG$Q
     * propagation of return events is blocked, and **0** indicates the oppositeߋ04
     */
    NODE_TEXT_EDITOR_STOP_BACK_PRESS,
AWhether to enable automatic spacing for Chinese and Western characters in the **TextEditor** component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable automatic spacing. The value **1** means to enable, and **0** means the
     * opposit
     * <br>**Returns**
     * <br>.value[0].i32: Whether automatic spacing is enabled. The value **1** indicates automatic spa8cing is enabled,
     * and **0** indicates the oppositeߋ44
     */
    NODE_TEXT_EDITOR_ENABLE_AUTO_SPACING,
ACustom keyboard of the **TextEditor** component. This attribute can be set, reset, and obtained as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.object: Custom keyboard. The parameter type is {@link ArkUI_NodeHandle}.
     * <br>.value[0]?.i32: Whether the custom keyboard supports avoidance. The value **0** in3dicates no, and the value *
     * *1** indicates y^0**.
     * <br>**Returns**
     * <br>.object: Custom keyboard. The parameter type is {@link ArkUI_NodeHandle}.
     * <br>.value[0].i32: Whether the custom keyboard supports avoidance. The value **0** indicates no, and the value **
     * 1** indicates yesߋ04
     */
    NODE_TEXT_EDITOR_CUSTOM_KEYBOARD,
ABinds the custom text selection menu of the **TextEditor** component. This attribute can be set and reset
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Text selection menu. The parameter type is {@link ArkUI_TextEditorSelectionMenuOptions}.44
     */
    NODE_TEXT_EDITOR_BIND_SELECTION_MENU,
AWhether to add spacing to the first and last lines of the **TextEditor** component to prevent text
     * truncation. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to add spacing. The value **1** means to add spacing, and **0** means not to add
     * spacinge
     * <br>**Returns**
     * <br>.value[0].i32: Whether spacing is added. The value **1** means that spacing is added, and **$0** means
     * spacing is not addeދ54
     */
    NODE_TEXT_EDITOR_INCLUDE_FONT_PADDING,
AWhether to enable line height adaptation of the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: mWhether to enable line height adaptation. The value **1** means to enable, and **0** means
     * the opposit
     * <br>**Returns**
     * <br>.value[0].i32: Whether line height adaptation is enabled. The value **1** means line height :adaptation is
     * enabled, and **0** means the oppositeߋ64
     */
    NODE_TEXT_EDITOR_FALLBACK_LINE_SPACING,
AWhether to enable punctuation compression for the beginning of a line in the **TextEditor** component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable punctuation compression. The value **1** means to enable, and **0** means
     * the opposit
     * <br>**Returns**
     * <br>.value[0].i32: Whether punctuation compression is enabled. The value **1** means punctuation< compression is
     * enabled, and **0** means the oppositeߋ=4
     */
    NODE_TEXT_EDITOR_COMPRESS_LEADING_PUNCTUATION,
ASelected drag preview style of the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.object: Selected drag preview style configuration. The parameter type is
     * {@link ArkUI_SelectedDragPreviewStyle}.
     * <br>**Returns**
     * <br>.object: Selected drag preview style configuration. The parameter type is
     * {@link ArkUI_SelectedDragPreviewStyle}.
     *?=24
     */
    NODE_TEXT_EDITOR_SELECTED_DRAG_PREVIEW_STYLE,
AWhether to enable single-line mode for the **TextEditor** component. This attribute can be set, reset,
     * and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whethber to enable single-line mode. The value **1** means to enable, and **0** means the
     * opposit
     * <br>**Returns**
     * <br>.value[0].i32: Whether single-line mode is enabled. The value **1** means single-line mode i/s enabled, and **
     * 0** means the opposite?-24
     */
    NODE_TEXT_EDITOR_SINGLE_LINE,
ASets whether to enable orphan character optimization for text layout in **TextEditor**. After setting,
     * text layout is improved by more efficiently handling orphan characters (the first character of the last line of a paragraph).
     * When enabled, it adjusts line break points to avoid orphan characters as much as possible.
     * The orphan character optimization feature only works when {@link ArkUI_WordBreak} is not **ARKUI_WORD_BREAK_BREAK_ALL**.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable. The value **1** means to enable, and **0** means the opposita
     * <br>**Returns**
     * <br>.value[0].i32: Whether orphan character optimization is enableދ+, NODE_TEXT_EDITOR_ORPHAN_CHAR_OPTIMIZATION,
ASets whether to enable horizontal scrolling for the **TextEditor** component when the text width exceeds
     * the content area width. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable horizontal scrolling. The value **1** means to enable,# and **0** means the
     * oppositX
     * <br>**Returns**
     * <br>.value[0].i32: Whether horizontal scrolling is enableދ+'NODE_TEXT_EDITOR_HORIZONTAL_SCROLLING,
ASets whether to enable punctuation overflow at the end of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value2[0].i32: whether to enable punctuation overflow, tfalse.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable punctuation overflow.\n)'NODE_TEXT_EDITOR_PUNCTUATION_OVERFLOW,
A

alignment mode of the child components in the container. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: @alignment mode. The data type is {@link ArkUI_Alignment}.
     *<b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
A

scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}e
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b> for the <b>List</b>, <b>Grid</b>, and <b>Scroll</b> components, and
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF</b> for the <b>WaterFlow</b> component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
X     *
     */
    NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL>

width of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the scrollbar, in vp. The<b>4</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the scro9llbar, in vp. \n
     *
     */
    NODE_SCROLL_BAR_WIDTH>

color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scrollbAar, in 0xARGB format. \n
     *
     */
    NODE_SCROLL_BAR_COLOR>

scroll direction. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
     *<b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
     *
     */
    NODE_SCROLL_SCROLL_DIRECTION>

effect used at the edges of the component when the boundary of the scrollable content is
     * reached. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content Ais reached.
     * The parameter type is {@link ArkUI_EdgeEffect}e<b>ARKUI_EDGE_EFFECT_NONE</b>.\n
     * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
     * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
     * oppositfor the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
     * Scroll component is <b>1</b>. \n
     * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
     * The default
<b>ARKUI_EFFECT_EDGE_START | ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
     * API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
     * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
     * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
     * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUIm_EffectEdge}. This parameter is supported since API version 16. \n
     *
     */
    NODE_SCROLL_EDGE_EFFECT>Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
     * finger or mouse is not supported, but the scroll controller API is not affected.
     *
     * Format of the {@link ArkUI_AttributeItem} parameterT for setting the attribute:\n
     * .value[0].i32: whether to support scroll gestur^<b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to supQport scroll gestures. \n
     *
     */
    NODE_SCROLL_ENABLE_SCROLL_INTERACTION>

friction coefficient. It applies only to gestures in the scrolling area, and it affects only
     * indirectly the scroll chaining during the inertial scrolling process.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the at5tribute:\n
     * .value[0].f32: friction coefficiente<b>0.6</b> for non-wearable devices and <b>0.9</b>
     * for wearable devices. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: friction coefficient.
     *
     */
    NODE_SCROLL_FRICTION,
    /**
   >

scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the scroll snap positio>n. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     *<b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute    to <b>false</b> enables the component to scroll bet3ween the
     * start edge and the first snap pointe<b>true</b>. Itqre are multiple
     * snap points.\n
     * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll betwee-n the
     * end edge and the last snap pointe<b>true</b>. Itqre are multiple
     * snap points.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
     * edge to which the <b><Scroll></b> component can scroll.  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point.\n
     * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
     * to which the <b><Scroll></b> component can scroll. \n
     *
     */
    NODE_SCROLL_SNAP,
A

nested scrolling options. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}.
     *
     */
    NODE_SCROLL_NESTED_SCROLL>

specified position to scroll to. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
     * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
     * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
     *                <b>ARKUI_CURVE_EASE</b>. \n
     * .value[4]?.i32: whether to enable the default spring animation. Optional.
     *                <b>0</b> means not to enable the default spring animation. \n
     * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
     *                 Optional. \n
     * .value[6]?.i32: whether the component can stop at an overscrolled position.
     *                 This parameter is supported since API version 20. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal scrolling offset, in vp.f \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
     *
     */
    NODE_SCROLL_OFFSET,
A

edge position to scroll to. This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
     * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
     *
     */
    NODE_SCROLL_EDGE,
ADefines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
     * <b>enablePaging</b> does not. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attributKe:\n
     * .value[0].i32: whether to enable the swipe-to-turn-pages featur<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enWable the swipe-to-turn-pages feature. \n
     *
     */
    NODE_SCROLL_ENABLE_PAGING,
AScroll to the next or previous page.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
     * indicates scroll to previous page. \n
     * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and =0 indicates disable. \n
     *
     */
    NODE_SCROLL_PAGE,
AScroll a specified distance.
     * List/Scroll/WaterFlow support since API version 12, Grid support since API version 26.0.0.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Horizontal scrolling distance in vp; \n
     * .value[1].f32: Vertical scrolling distance in vp; \n
     *
     */
    NODE_SCROLL_BY,
APerforms inertial scrolling based on the initial velocity passed in.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
     * considered as invalid, and the scrolling for this instance will not take effect. If the value is posfitive,
     * the scroll will move downward; if the value is negative, the scroll will move upward. \n13
     */
    NODE_SCROLL_FLING,

    /**
    * @brief Sets the fading effect for the edges of scrollable components.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
    * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect,
    * and 1 means to enable it.
    * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
    *
    * Format of the return value {@link ArkUI_AttributeItem}:
    * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
    * disabled, and 1 means that it is enabled.
    * .value[1].f32: length of the fading effect on edges, in vp.
    *
    * @since 14
   ! */
    NODE_SCROLL_FADING_EDGE,
AObtains the total size of all child components when fully expanded in the scrollable component.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
     * nearest pixel when being congverted from vp to px.
     * The returned values are calculated based on these rounded pixel values. \nfNODE_SCROLL_SIZE,
ASets the offset from the start of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
   $"NODE_SCROLL_CONTENT_START_OFFSET,
ASets the offset from the end of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     *
  $ NODE_SCROLL_CONTENT_END_OFFSET,
A

maximum starting fling speed of the scrollable when the fling animation starts.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     * \n
     * Format of the return value {@link ArkUI_AtRtributeItem}: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n?)NODE_SCROLL_FLING_SPEED_LIMIT = 1002019,
A

clip mode of the scrollable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: clip content mode. The para+meter type is {@link ArkUI_ContentClipMode}e
     * <b>ARKUI_CONTENT_CLIP_MODE_BOUNDARY</b> for the <b>Grid</b> and <b>Scroll</b> components, and
     * <b>ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY</b> for the <b>List</b> and <b>WaterFlow</b> components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n?!NODE_SCROLL_CLIP_CONTENT = 1002020
ines whether the scrollable scrolls back to top when status bar is clicked.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
     * The value <b>1</b> means to s1croll back to top, and <b>0</b> means the oppositQ<b>0</b>
     * for API versions earlier than 18. For API version 18 and later, t<b>0</b> for the
     * horizontal scroll direction and <b>1</b> for the vertical scroll direction. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n $#NODE_SCROLL_BACK_TO_TOP = 1002021,
A

margin of the scrollbar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start margin of the scrollbar, in vpeE<b>0</b>. \n
     * .value[1].f32: end margin of the scrollbar, in vpe<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start margin of tThe scrollbar, in vp. \n
     * .value[1].f32: end margin of the scrollbar, in vp. \n"NODE_SCROLL_BAR_MARGIN = 1002022,
ASets the maximum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUHI_AttributeItem}:\n
     * .value[0].f32: current maximum zoom scale. \n&NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,
ASets the minimum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUHI_AttributeItem}:\n
     * .value[0].f32: current minimum zoom scale. \n&NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,
ASets the zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}0:\n
     * .value[0].f32: current zoom scale. \nNODE_SCROLL_ZOOM_SCALE = 100202q0Sets whether to enable the zoom bounce effect when the scaling exceeds the limits.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
  +NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,
ASets whether dragging scrolling with the left mouse button pressed is supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. \n)0NODE_SCROLL_ENABLE_SCROLL_WITH_MOUSE = 1002027,
ASets whether to automatically adjust the margin of the scrollbar to avoid the component's <b>NODE_PADDING</b>, <b>NODE_SCROLL_CONTENT_START_OFFSET</b>, and <b>NODE_SCROLL_CONTENT_END_OFFSET</b> areas.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. \n
     *
   *NODE_SCROLL_AUTO_ADJUST_MARGIN = 1002028,
ASets the direction in which the list items are arranged.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: `direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
     *<b>ARKUI_AXIS_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
     *
     */
    NODE_LIST_DIRE,CTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST>Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in th0e <b><ListItemGroup></b>
     * component. It isa\the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}e<b>ARKUI_STICKY_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is useethe <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}.
     *
     */
    NODE_LIST_STICKY>

spacing between list items. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between list items along the main axi^<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between lQist items along the main axis. \n
     *
     */
    NODE_LIST_SPACE,
    /**
   
list adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_LIST_NODE_ADAPTER,
ASets the number of cached items in the list adapter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hid=e cached items, and <b>1</b> means
     * to show cached item^<b>0</b>. This parameter is supported since API version 15. \n
     * .value[2]?.i32: maximum cache count. This parameter is supported since API version 22.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. This parameter is supported since API version 15. \n
     * .value[2].i32: maximum cache count. This parameter is supported since API version 22.
     *
     */
    NODE_LIST_CACHED_COUNT,
AScroll to the specified index.
     * 
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：The index value of the target element to be slid to in the current container.\n
     * .value[1]?.i32：Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. Default value: 0。\n
     * .value[2]?.i32：Specify the alignment of the sliding element with the current container,The parameter type is
     * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
     * .value[3]?.f32: extra offset, in vp. The defae<b>0</b>.
     * This parameter is supported since API version 15. \n
     *
     */
    NODE_LIST_SCROLL_TO_INDEX,
    /**
   >Sets the alignment mode of list items along the cross axis when the cross-axis width of the list is
     * greater than the cross-axis width of list items multiplied by the value of lanes.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
    */
    NODE_LIST_ALIGN_LIST_ITEM,

    /**
ASet the default spindle size for the List subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */-
    NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
ASet the index value of the item displayed at the start of the viewport
     * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current Lisat is loaded for the first time. Default value: 0.\n
     */
    NODE_LIST_INITIAL_INDEX = 1003008Bts the ListItem splitter style. By default, there is no splitter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     *.value[0].u32:d divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32: thNdivider and7e side of the list, unit vp; \n
     *.value[3].f32: thNdivider and the end of the side of the list (unit: vp). \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32: thNdivider and7e side of the list, unit vp; \n
     *.value[3].f32: thNkdivider and the end of the side of the list (unit: vp). \n
     *
     */
    NODE_LIST_DIVIDER = 1003009,
AScrolls to the item with the specified index in the specified list item group.
     *
     * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
     * This may result in performance issues if a large number of items are involved. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index of the target list item group in the current list. \n
     *.value[1].i32: index of the target list item in the list item group. \n
     * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
     * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
     * The de<b>0</b>. \n
     * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
     * {@link ArkUI_ScrollAlignment}e'<b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n $+NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010Sets the number of lanes in the list.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
     * of lanes will not take effect. \n
     * .value[1]?.f32: minimum lane width, in vp. \n
     * .value[2]?.f32: maximum column width, in vp. \n
     * .value[3]?.f32: lane spacing, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: number of lanes in the list. \n
     * .value[1].f32: minimum lane width, in vp. \n
     * .value[2].f32: maximum column width, in vp. \n
0     * .value[3].f32: lane spacing, in vp. \n \n $NODE_LIST_LANES = 1003011,
ASets the list snap alignment mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     *<b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[i0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n $'NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,
ASets whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposit<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default Ь	<b>0</b>. \n $7NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,
ASets whether the <b>List</b> component starts layout from the end.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The valuae <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the ende<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the ende<b>0</b>. \n719
     */
    NODE_LIST_STACK_FROM_END = 1003014,
    A

focus wrap mode for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.L
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n"NODE_LIST_FOCUS_WRAP_MODE = 100301q0
ines whether the <b>List</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading b4y frames, and <b>1</b> means synchronous loading. \nNODE_LIST_SYNC_LOAD = 1003016,
A

scroll snap animation speed for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}.
     * Default value: <b>ARKUI_SCROLL_SNAP_ANIMATION_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is *{@link ArkUI_ScrollSnapAnimationSpeed}. \nt1NODE_LIST_SCROLL_SNAP_ANIMATION_SPEED = 1003017,
ASpecifies the responsive column layout policy for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.f32: column spacing. unit: vp. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The dat]a type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].f32: column spacing. unit: vp. \nt*NODE_LIST_LANES_ITEMFILLPOLICY = 1003018,
ASpecifies whether to support empty branch rendering in lazy loading mode for the <b>List</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>List</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *c .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n7:NODE_LIST_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1003019,
ASets the back button behavior for the List component. Attribute setting, resetting, and obtaining APIs are supported.
     *
     * The parameter format for setting properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes. Default value: 1.
     * 
     * The parameter format for obtaining properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scr7oll menu when the back button is clicked. 0: no; 1: yesߋ*&NODE_LIST_BACK_PRESS_BEHAVIOR = 1003020
ines whether the <b>List</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_LIST_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_LIST_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>List</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>List</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editableߋ*&NODE_LIST_ENABLE_EDIT_MODE = 1003021,
AList component edit mode option configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * When using default multi-selection style, List displays checkboxes after entering edit mode.
     * 0: Do not use default style, 1: Use default style. Default value: 1
     * .value[1].i32: Whether =List component enables two-finger swipe multi-selection.
    (after registering {@link NODE_LIST_ON_EDIT_MODE_CHANGE} event callback.
     * 0: Two-finger swipe gesture cannot make List enter edit mode, but after entering edit mode through other means,
     * single-finger swipe multi-selection in edit mode is not affected.
     * 1: Two-finger swipe gesture can make List enter edit mode from non-edit mode and perform swipe multi-selection.
     * Default value: 1
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * 0: Do not use default style, 1: Use default style.
     * .value[1].fi32: Whether List component enables two-finger swipe multi-selection.
     * 0: Not enabled, 1: Enableދ+'NODE_LIST_EDIT_MODE_OPTIONS = 1003022,
ADefines whether to enable loop playback for the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the opposite. The dɬ<b>1/b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable floop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the oppositY<b>1</b>. \n
     *
     */
    NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER>Defines whether to enable automatic playback for child component switching in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
     * Bmeans to enable automatic playback, and <b>0</b> means the opposit<b>0</b>. \n
     * \n
     * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <bN>1</b> means
     * to stop automatic playback, and <b>0</b> means the opposit<b>1</b>. This parameter is
     * supported since API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> Imeans
     * to enable automatic playback, and <b>0</b> means the opposit<b>0</b>. \n
     * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
     * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
    $ *
     */
    NODE_SWIPER_AUTO_PLAY>Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
     * reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
     * navigation poin+t indicator, and <b>0</b> means the opposit<b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means t
he opposit:<b>1</b>. \n
     *
     */
    NODE_SWIPER_SHOW_INDICATOR>

interval for automatic playback. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: i[nterval for automatic playback, in milliseconds. \n
     *
     */
    NODE_SWIPER_INTERVAL>Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposit<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether vertical nswiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposit6<b>0</b>. \n
     *
     */
    NODE_SWIPER_VERTICAL,
A

duration of the animation for switching child components. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32:9 duration of the animation for switching child components]^
     * <b>400</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: duratio1n of the animation for switching child components]^@
     * <b>400</b>. \n
     *
     */
    NODE_SWIPER_DURATION,
A

animation curve for the swiper. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: animation curve. The para2meter type is {@link ArkUI_AnimationCurve}.
     *<b>ARKUI_CURVE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Kanimation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     *D<b>ARKUI_CURVE_LINEAR</b>. \n
     *
     */
    NODE_SWIPER_CURVE,
A

spacing between child components in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between child components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spNacing between child components. \n
     *
     */
    NODE_SWIPER_ITEM_SPACE,
A

index of the child component currently displayed in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the child component. \n
     * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
     *ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
     * This parameter is supported since API version 15. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of tIhe child component. \n
     *
     */
    NODE_SWIPER_INDEX,

    /**
   
number of elements to display per page.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
    * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
    * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1].i32: whether to turn pages by group. This parameter is supported since APIc version 19. \n
    * .string: 'auto' or empty string.
    *
    */
    NODE_SWIPER_DISPLAY_COUNT,
ADefines whether to disable the swipe feature.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
     * the swipe feature, and <b>0</b> means the opposite. The dɬ<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
     * feature, and <b>0</b> means the opposite. The defaultϬ
<b>0</b>. \n
     *
     */
    NODE_SWIPER_DISABLE_SWIPE,

    /**
    * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    *<b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The para0meter type is {@link ArkUI_SwiperArrow}.\n
    *<b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * Tehis parameter is supported since API version 19. \n
    *
    */
    NODE_SWIPER_SHOW_DISPLAY_ARROW,
A

effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reaEched.
     * The parameter type is {@link ArkUI_EdgeEffect}.\n
     *<b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type ]is {@link ArkUI_EdgeEffect}. \n
     *
     */
    NODE_SWIPER_EDGE_EFFECT_MODE,

    /**
   
swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_SWIPER_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the swiper adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1]?.i32: whether the cached items will be displayed. \n
    * The value <b>0</b> indicates that cached items will not be displayed, \n
    * and 6<b>1</b> indicates that cached items will be displayede<b>0</b>. \n
    * This parameter is supported from API version 19. \n
    * .value[2]?.i32: whether the cachedCount is independent of group calculation. \n
    * The value <b>1</b> indicates that cachedCount is calculated by actual child component count,\n
    * and is independent of displayCount group calculation.\n
    * The value <b>0</b> indicates that, when NODE_SWIPER_DISYPLAY_COUNT is enabled to turn pages by group,\n
    * cachedCount is calculated by group..<b>0</b>. \n
    * This parameter is supportedx4. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
    * .value[2].i32: whether the cachedCount is independent of group calculation. This parameter is supported from x+4. \n
    */
    NODE_SWIPER_CACHED_COUNT,
A

front margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the front margin. The unit is vpe?<b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, t0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the front margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_PREV_MARGIN,
A

back margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the back margin. The unit is vp.e?<b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, t0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the back margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_NEXT_MARGIN,

    /**
   
navigation indicator type of the swiper.
    * The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@lnink ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    *
    */
    NODE_SWIPER_INDICATOR,
ASet the nested scrolling mode for the Swiper component and parent component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent Wcomponents. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     *<b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkEUI_SwiperNestedScrollMode} \n
     */
    NODE_SWIPER_NESTED_SCROLL,
ASet the switcher component to flip to the specified page.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Specify the index value of the page in Swiper.\n
     * .value[1]?.i32：Set whether there is an animation effect when flipping to the specified page. 1 indicates active
     * effect, 0 indicates no activ	e effect,_。\n
     */
    NODE_SWIPER_SWIPE_TO_INDEX,

    /**
    * @brief Set to disable component navigation point interaction function。
    *
    * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
    * .value[0].i32：Set to disable the interaction function of component navigation points. When set to true, it
    * indicates that the navigation points are 
interactivtrue. \n
    * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}： \n
    * .value[0].i32：Set to disable component navigation point interaction. \n
    */
    NODE_SWIPER_INDICATOR_INTERACTIVE,

    ASets the page flipping mode using the mouse wheel.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
     * \n
     * Format of the return value {@link ArkUI_PageFlipMode}:\n
     * .value[0].i32: page flipping mode using the mouse wheel. \n $NODE_SWIPER_PAGE_FLIP_MODE,
A

minimum main axis size of child element for swiper to works out the display count.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
     * and <b>1</b> means to turn pages by group. The defae<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum main axisa size of the child element, Unit: vp. \n
     * .value[1].i32: whether to turn pages by group. \n&19
     */
    NODE_SWIPER_AUTO_FILL,
ASets whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposit<b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The defaulά<b>0</b>. \n9NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,
ASpecifies the responsive column layout policy for the <b>Swiper</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.i32: whether to paginate by group. The value <b>0</b> means to paginate by individual child elemenkts,
     * and <b>1</b> means to paginate by groups of child elements displayed within the viewport.
     *<b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].i32: whether to paginate by group. \nt&NODE_SWIPER_ITEMFILLPOLICY = 1001024,
A: Set the delineation component of the ListItem, supporting property settings, property resets, and
     * property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     * \n
     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. _\n
     *
     */
    NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
A

header of the list item group.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     *
     */
    NODE_LISIT_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP>

footer of the list item group. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_FOOTER>

style of the divider for the list items. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the divkider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:OAdivider and the start of the list, in vp.\n
     * .value[3].f32:Odivider and the end of the list, in vp.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the divider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:OAdivider and the start of the list, in vp.\n
     * .value[3].f32:Obdivider and the end of the list, in vp.\n \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_DIVIDER,
ASet the default spindle size for the ListItem Group subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} N\n
     */
    NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,

    /**
   
list item group adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .object: {@link ArkUI_NodeAdapter} object. \n
    *
h4*/
    NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,
A

horizontal alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
     * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAalignment}. \n
     *
     */
    NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN>

vertical alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
     */
    NODE_COLUMN_JUSTIFY_CONTENT,
ADefines Row constructor options or Column constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The space of child components, in vp.\n
     * \n
     * Format of the return value {@lYink ArkUI_AttributeItem}:\n
     * .value[0].f32: The space of child components, in vp.\n7NODE_LINEAR_LAYOUT_SPACE,
ADefines whether the arrangement of child components along the main axis in a Column or Row is reversed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value that determSines whether the arrangement of child components along the main axis is reversed.\n7NODE_LINEAR_LAYOUT_REVERSE,
A

vertical alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}.\n
     * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}. \n
 L    *
     */
    NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW>

horizontal alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
 %    */
    NODE_ROW_JUSTIFY_CONTENT,
A

flex attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.i32: direction in which flex items are arranged. The6 parameter type is {@link ArkUI_FlexDirection}.
     *<b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
     * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
     *<b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
     * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
     *<b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
     *<b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
     * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The par1ameter type is
     * {@link ArkUI_FlexAlignment}e<b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which flex items are arranged. \n
     * .value[1].i32: how the flex items are wrapped. \n
     * .value[2].i32: alignment mode along the main axis. \n
     * .value[3].i32: alignment mode along the cross axis. \n
     * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
     *
     */
    NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
ADefines Row constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     *
 7NODE_FLEX_SPACE,
ASets whether the component is being refreshed.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type` is 1 or 0.
     *
     */
    NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH>Sets the custom content in the pull-down area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter tyGpe is {@Link ArkUI_NodeHandle}.
     *
     */
    NODE_REFRESH_CONTENT>Set the pull-down hand coefficient.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     *
     */
    NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
   >Sets the pull-down offset that initiates a refresh.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: pull-down offset, in vpe<b>64vp</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: pull-down offset, in vpe=<b>64vp</b>.
     *
     */
    NODE_REFRESH_OFFSET = 1009003>Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
     * <b>false</b> means the opposite.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
     * <b>0</b> means the Copposite.
     *
     */
    NODE_REFRESH_PULL_TO_REFRESH = 1009004>Sets the maximum pull-down distance for re   freshing.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f3$2: maximum pull-down distance, in vpߋ-NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005>Sets whether the pull-up gesture cancels refresh.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b> means the opposite. Default value: <b>1</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels r'efresh, and <b>0</b> means the oppositeߋ72NODE_REFRESH_PULL_UP_TO_CANCEL_REFRESH = 1009006,
A

main axis direction of the <b><WaterFlow></b> component layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     *\
     */
    NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
A3Sets the number of columns in the water flow layout`not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number ofN columns in the layout.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE,
A0Sets the number of rows in the water flow layout`not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
1     *
     */
    NODE_WATER_FLOW_ROW_TEMPLATE,
ASets the gap between columns.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.2\n
     *
     */
    NODE_WATER_FLOW_COLUMN_GAP,
ASets the gap between rows.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
    ( *
     */
    NODE_WATER_FLOW_ROW_GAP,
A

water flow section configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: An index calculated from 0 is converted to an integer,
     * indicating that you want to start changing the position of the group.
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .objemct: {@ArkUI_WaterFlowSectionOption} object.\n
     *
     */
    NODE_WATER_FLOW_SECTION_OPTION,

    /**
   
water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_WATER_FLOW_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the water flow adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * value[0].i32：number of cached items in the water flow adapter. \n
    * .value[1]?.i32：whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the water flow adapter. \n
    * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    */
    NODE_WATER_FLOW_CACHED_COUNT,
ASet the custom display component at the end of the waterfall flow component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     */
    NODE_WATER_FLOW_FOOTER,
AScroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. This parameter is optional, de_\n
     * .value[2].i32: Specify the alignment of the sliding element with the current container, The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>.
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top.
     * This parameter is supported since API version 23. \n
     *
     */
    NODE_WATER_FLOW_SCROLL_TO_INDEX,
A

size constraints to apply to water flow items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[[3].f32: maximum height, in vp.\n
     *
     */
    NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
A

layout mode of the <b><WaterFlow></b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     ?NODE_WATER_FLOW_LAYOUT_MODE,
ADefines whether the <b>WaterFlow</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</Fb> means loading by frames, and <b>1</b> means synchronous loading. \n%NODE_WATER_FLOW_SYNC_LOAD = 1010012,
ASpecifies the responsive column layout policy for the <b>WaterFlow</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columnsa at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \nt:NODE_WATER_FLOW_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1010013,
ASpecifies whether to support empty branch rendering in lazy loading mode for the <b>WaterFlow</b> container.
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>WaterFlow</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:l\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n)@NODE_WATER_FLOW_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1010014,
ASet the auxiliary line in the RelativeContaine container, supporting property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *
     */
    NODE_RELATOIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
ASets the barrier within the RelativeContaine container and supports property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Barrier within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_BARRIER,
A-Sets the number of columns in the grid layout`not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number ofo columns in the layout.\n
     *
     */
    NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
A*Sets the number of rows in the grid layout`not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
+     *
     */
    NODE_GRID_ROW_TEMPLATE,
ASets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
    % *
     */
    NODE_GRID_COLUMN_GAP,
ASets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
    ' */
    NODE_GRID_ROW_GAP,

    /**
   
grid adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_GRID_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the grid adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to displayV cached nodes. 0 means not display, 1 means display.
    * This parameter is optional,_ [since 26.0.0]\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display. [si;nce 26.0.0]
    */
    NODE_GRID_CACHED_COUNT,

    /**
   
focus wrap mode for the <b>Grid</b> component.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    *
    * @since 20
    */
    NODE_GRID_FOCUS_WRAP_MODE = 1013006,
ADefines whether the <b>Grid</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loadin7g by frames, and <b>1</b> means synchronous loading. \nNODE_GRID_SYNC_LOAD = 1013007,
ASpecifies the alignment of <b>GridItem</b> components in the parent <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * speci>fied using the {@link ArkUI_GridItemAlignment} enum. \n
     *<b>GRID_ITEM_ALIGNMENT_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \nt!NODE_GRID_ALIGN_ITEMS = 1013008,
ASpecifies the layout options of the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object: layout options, with the parameter format of {@link ArkUI_GridLayoutOptions}. \n
     * \n
     * Format of the return value {@lin\k ArkUI_AttributeItem}:\n
     * .object: current {@link ArkUI_GridLayoutOptions} object. \nt$NODE_GRID_LAYOUT_OPTIONS = 1013009,
ASpecifies the responsive column layout policy for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at d\ifferent breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \nt1NODE_GRID_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1013010Specifies whether to enable edit mode for the <b>Grid</b> component.
     * In edit mode, <b>GridItem</b> components can be dragged through the <b>NODE_GRID_ON_ITEM_DRAG_START</b> event.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. \n
     7NODE_GRID_EDIT_MODE = 1013011,
ASpecifies whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b>
     * container. This attribute can be set, reset, and obtained as required through APIs.
     * Animations are supported only in scrolling mode (when either <b>NODE_GRID_ROW_TEMPLATE</b> or
     * <b>NODE_GRID_COLUMN_TEMPLATE</b> is set, but not both). Drag animations are only supported in regularly sized
     * grid layouts; scenarios involving spanning across rows or columns are not supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b> container.U
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. \n7$NODE_GRID_DRAG_ANIMATION = 1013012,
ASpecifies whether to enable mouse-based multi-selection in the <b>Grid</b> container. This attribute can
     * be set, reset, and obtained as required through APIs. When enabled, mouse-based multi-selection within the
     * <b>Grid</b> area triggers the <b>NODE_GRID_ITEM_ON_SELECT</b> event on <b>GridItem</b> components.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable mouse-based multi-selection.
     * <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based multi-selection. Default value:
     * <b>0</b>.\n \n Format of the return value {@link ArkUI_AttributeItem}:\n .value[0].i32: whether to enable
     * mouse-based multi-selection. <b>0</b>:] Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based
     * multi-selection. \n7(NODE_GRID_MULTI_SELECTABLE = 1013013,
  AScroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an animation when sliding to the tamrget element, where
     * 1 indicates an animation and 0 indicates no animation. This parameter is optional._ \n
     * .value[2].i32: Specify the alignment of the target element with the current container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_AUTO</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>. 
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top. \n7%NODE_GRID_SCROLL_TO_INDEX = 1013014,
ASpecifies whether to support empty branch rendering in lazy loading mode for the <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>Grid</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *c .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n77NODE_GRID_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 101301q0
ines whether the <b>Grid</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_GRID_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_GRID_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.\n
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable.\n". */
    NODE_GRID_ENABLE_EDIT_MODE = 1013016,
A

edit mode options for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>Grid</b> component uses default multi-selection style.
     * When using default multi-selection style, <b>Grid</b> displays checkboxes after entering edit mode.
     * <b>0</b>: Do not use the default style, <b>1</b>: Use the default style. Default value: <b>1</b>
     * .value[1].i32: Whether the <b>Grid</b> component enables two-finger sliding multi-selection.
     * Thi.after registering {@link NODE_GRID_ON_EDIT_MODE_CHANGE} event callback.
     * <b>0</b>: Two-finger sliding gesture cannot make <b>Grid</b> enter edit mode, but after entering
     * edit mode through other means, single-finger sliding multi-selection in edit mode is not affected.
     * <b>1</b>: Two-finger sliding gesture can make <b>Grid</b> enter edit mode from non-edit mode and
     * perform sliding multi-selection. Default value: <b>1</b>
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>Grid</b> component uses the default multi-selection style.
     * <b>0</b>: Do not use the default style. <b>1</b>: Use the default style.
     * .value[1].i32: Whether the <b>Grid</b> component enables twMo-finger sliding multi-selection.
     * <b>0</b>: Disabled. <b>1</b>: Enableދ+'NODE_GRID_EDIT_MODE_OPTIONS = 1013017,
ASets the style of the <b>GridItem</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: style oWf the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     *<b>GRID_ITEM_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32Y: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \ntBNODE_GRID_ITEM_STYLE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,
AS<b>GridItem</b> component can be selected using mouse-based multi-selection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. Default value: <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
    5 * <b>0</b>: not selectable. <b>1</b>: selectable. \n7%NODE_GRID_ITEM_SELECTABLE = 1014001,
ASets the selected state of the <b>GridItem</b> component. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: selected state of the <b>GridItem</b> component.
     * <b>0</b>: not selected. <b>1</b>: selected. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n 
     * .value[0].i32: selected state of the <b>GrDidItem</b> component. <b>0</b>: not selected. <b>1</b>: selected. \n7/NODE_GRID_ITEM_SELECTED = 1014002,

    /**
   
column width of the text picker.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: percentage of total width. TeTthat all colulmns are equal width.\n
    * .value[1]?.f32: percentage of total widtheTthat all colulmns are equal width.\n
    * .value[2]?.f32: percentage of total widthe`that all colulmns are equal width.\n
    * ...\n
    * .value[n]?.f32: percentage of total widthethat all colulmns are equal width.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * value[0].f32: percentage of total width.\n
    * value[1].f32: percentage of total width.\n
    * value[2].f32: percentage of total width.\n
    * ...\n
    * value[n].f32: percentage of total width.\n
    *
    * @since 18
    */
    NODE_TEXT_PICKER_COLUMN_WIDTHS = 1500>

disabled date range of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
     * ...,`nth start date`,`nth end date` of the disabled date range.\n
     *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
     * \n
     * Format of the return value {@lin>k ArkUI_AttributeItem}:\n
     * .string: A string of dates.\nA19
     */
    NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,
ADefines whether the calendar picker marks today.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether the calendar picker marks todaye<b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether the calendar picker marks today.\n819
     */
    NODE_CALENDAR_PICKER_MARK_TODAY = 16007,
A

want used to start EmbeddedAbility.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}.
     *<b>nullptr</b>.\nSNODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,
ASet onError and onTerminated callbacks for EMBEDDED_COMPONENT.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The option for EmbeddDedComponent, with parameter type {@ArkUI_EmbeddedComponentOption}.\n NODE_EMBEDDED_COMPONENT_OPTION,
A

index of the default selected item in the data selection range of the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:
 index. \n7JNODE_PICKER_OPTION_SELECTED_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER>Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return valueK {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n7,NODE_PICKER_ENABLE_HAPTIC_FEEDBACK = 1018001>Defines whether to support scroll looping for the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> meBans to support scroll looping, and <b>0</b> means the opposite. \n7NODE_PICKER_CAN_LOOP = 1018002>Sets the type and parameters of the selection indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: D\n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}ߋ7+NODE_PICKER_SELECTION_INDICATOR = 1018003,
ASevisible items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of visible items. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of visible items. \n
     *
     * ,NODE_PICKER_DISPLAYED_ITEM_COUNT = 1018004,
ASets the height of each item.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: the height of each item, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: the height of each item, in vp. \n)<NODE_PICKER_ITEM_HEIGHT = 1018005,
} ArkUI_NodeAttributeType. component event max args size&#define MAX_COMPONENT_EVENT_ARG_NUM 120,arameter type of the component callback even"struct {
    /** Data array object. */
    ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
} ArkUI_NodeComponentEvent;

/*39string type parameter used by the component callback even"Jstruct {
    /** String. */
    const char* pStr;
} ArkUI_StringAsyncEvent.0a hybrid data structure for component events.
 *#struct {
    /** String data */
    const char* pStr;
    /** Extended string data */
    const char* pExtendStr;
    /** Numer6ic data */
    int32_t number;
} ArkUI_TextChangeEvent.[a struct for the text content change event of the **TextEditor** component.
 *
 * @since 24-'9rkUI_TextEditorChangeEvent OH_ArkUI_TextEditorChangeEvent4 0event types supported by the NativeNode componen"]A

gesture event type.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is {@lin3k ArkUI_UIInputEvent}.
     */
    NODE_TOUCH_EVENT0

	mount event.
     *
     * This event is triggered when the component is mounted and displayed. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArUkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_APPEAR>

unmount event.
     *
     * This event is triggered when the component is unmounted and hidden. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link A[rkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DISAPPEAR,
A

area change event.
     *
     * This event is triggered when the component's size, position, or any other attribute that may
     * affect its display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *  {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     *a <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
     *Qnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
     * The value tQnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
.     * relative to the parent element's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
.     * relative to the parent element's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
$     * relative to the page's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
$     * relative to the page's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the parent element's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relat)ive
     * to the parent element's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner rela tive
     * to the page's, in vpPnumber. \n
     * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner rela tive
     * to the page's, in vpP0number. \n
     */
    NODE_EVENT_ON_AREA_CHANGE>

focus event.
     *
     * This event is triggered when the component obtains the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodGeComponentEvent} does not contain parameters.
     */
    NODE_ON_FOCUS>

blur event.
     *
     * This event is triggered when the component loses the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCoCmponentEvent} does not contain parameters.
     */
    NODE_ON_BLUR>

click event.
     *
     * This event is triggered when the component is clicked. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
     * is triggered and the time when the system starts, in microseconds. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
     * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     */
    NODE_ON_CLICK>Defines event interception.
     *
     * This event is triggered when the component is touched. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_TOUCH_INTERCEPT>

visible area change event.
     *
     * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
     * than the threshold.
     * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
     * decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
     * callback is invoked. \n
     */
    !NODE_EVENT_ON_VISIBLE_AREA_CHANGE>

event triggered when the mouse pointer is moved over or away from the component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer i7s hovered over the component.
     * The value <b>1</b>use pointer is hovered over the component, and <b>0</b> indicates that
     * the mouse pointer is moved away from the component. \n
     */
    NODE_ON_HOVER>

click event.
     *
     * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
     * within the component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent}J object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_MOUSE>

attach event.
     *
     * This event is triggered when the component is attached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompIonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_ATTACH>

detach event.
     *
     * This event is triggered when the component is detached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompKonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DETACH,
A

accessibility action event.
     *
     * This event is triggered when The accessibility operation type has been set and
     * corresponding operations have been carried out. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type，the union type is
     * {@link ArkUI_AccesNsibilityActionType} \n
     *
     */
    NODE_ON_ACCESSIBILITY_ACTIONS = 13,
ANotifies the listener of the interaction state prior to a drop and drop operation.
     *
     * This event is triggered when a drag operation is about to start on a draggable item. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
     */
    NODE_ON_PRE_DRAG = 14>Called when the user starts to drag an ite
     *
     * A drag operation is recognized only when the dragged item is moved farU enough. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} objectN
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_START = 15>Called when a dragged item enters the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtainI
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_ENTERU0Called  when a dragged item moves in the current component.
     *
     * The current component refers to the component that libstens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} objectH
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_MOVEA|0Called when a dragged item leaves the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtainN
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_LEAVE = 18>Called when a dragged item is dropped on the current component.
     * The component can obtain the drag data for processing through the callback.
     *
     * The current component refers to the component that listens for this event. \n
     * When the: event callback occurs, the {@link ArkUI_DragEvent} objectG
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DROP = 1>Called when a drag operation ends.
     * The drag source can obtain the drag result by registering this callback.
     *
     * A drag operation ends when the dragged item is released.
     * When the event callback occurs, the {@link ArkUI_DragEvent} objectG
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_END}0

	event triggered when a key event occurs.
     *
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@linkG ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \nfNODE_ON_KEY_EVENT = 21>

event triggered before the input method responds to the key action.
     *
     * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
     * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
     * and no longer triggered.
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
   fNODE_ON_KEY_PRE_IME = 22>

event triggered when the bound component receives a focus axis event after gaining focus.
     *
     * The event callback is triggered by interactions with a joystick and a focused component. \n
     * When the event callback occurs, the union type in tJhe {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n $NODE_ON_FOCUS_AXIS = 23,
ADispatch key event on the component node.
     *
     * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
     * children. \n
     * When the event callback occurs, the union type in the {@lJink ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n $NODE_DISPATCH_KEY_EVENT = 24,
A

event triggered when the bound component receives an axis event.
     *
     * When the event callback occurs, the union type iMn the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \nmNODE_ON_AXIS = 2q0

	event triggered when the bound component is clicked.
     *
     * When the event callback occurs, the union type in the {@linkB ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}.  \n?NODE_ON_CLICK_EVENT = 26,
A

event triggered when the mouse pointer hovers over or moves away from a component.
     *
     * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
     * When the event callback occurs, the union type in theV {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     *
     *3NODE_ON_HOVER_EVENT = 27,
ASets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
     *
     * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
     * less than the threshold. Before registering the callback, you must configure the threshold and update interval
     * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
     * a decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
     * when this callback is invoked. \n
 m1NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,
A

hover event.
     * 
     * The event is triggered when the pointer is hovered by a pen device.
     * within the component. \nJ
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object-
     * {@link ArkUI_UIInputEvent} object. \n$ */
    NODE_ON_HOVER_MOVE = 29,
A

size change event.
     *
     * The event will be triggered when the component size changes.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. 
     * {@link ArkUI_NodeComponentEvent} contains four parameters:
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: the width of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: the height of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the width of the new rectangle.
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: the height of the new rectangle.
4     * @since 21
     */
    NODE_ON_SIZE_CHANGE = 30

	coasting axis event.
     *
     * The event is triggered when user swipes with two fingers on the touchpad, the system constructs
     * sliding events based on the speed at the moment the fingers are lifted, according to a certain
     * decay curve. You can listen for such events to handle the flick effect immediately after the
     * regular axis events. \n
     * When the e;vent callback occurs, the {@link ArkUI_UIInputEvent} object
     * {@link ArkUI_NodeEvent} object through {@link OH_ArkUI_NodeEvent_GetInputEvent}.
     * And the {@link ArkUI_CoastingAxisEvent} objectg{@link ArkUI_UIInputEvent}
     * object through {@link OH_ArkUI_UIInputEvent_GetCoastingAxisEvent}. \nt"NODE_ON_COASTING_AXIS_EVENT = 31,
A

re-touch test of sub component in touch events. Called to specify how to perform the touch test on the children of this component.
     * 
     * The event is triggered when the component is touched. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object.
     * {@link ArkUI_TouchTestInfo} object. \nt&*/
    NODE_ON_CHILD_TOUCH_TEST = 32,
A

crown event.
     * This event is triggered when the crown is rotated. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} objectc
     * {@link ArkUI_NodeEvent} object. \n
     * @since 24
    */
    NODE_ON_DIGITAL_CROWN = 33,
A

event is triggered when the <b>ARKUI_NODE_CUSTOM</b> content is scrolled.
     * 
     * The event is triggered when the compongent's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the frcame scrolling, measured in px. \n
     * @since 24
    */
    NODE_ON_CUSTOM_OVERFLOW_SCROLL = 34,
A

event is triggered when the <b>ARKUI_NODE_STACK</b> content is scrolled.
     * 
     * The event is triggered when the componefnt's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the fr_ame scrolling, measured in px. \n
     * @since 24
    */
    NODE_ON_STACK_OVERFLOW_SCROLL = 3q0

	event triggered when the component is focused and need to decide whether softkeyboard is needed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     *
     * @return Whether softkeyboard is needed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether softkeyboard is needed.
     * <b>0</b>: not needed. <b>1</b>: needed. \n
     * @since 24
     */
    NODE_ON_NEED_SOFTKEYBOARD = 36,
AThis callback is invoked when the events and gestures on this node and
     * higher-priority nodes are collected. \n
     * This callback is used to intervene in the collection result of events and gestures. \n
     * 
     * When the event callback occ9urs, the {@link ArkUI_GestureCollectInterceptInfo} object*
     * {@link ArkUI_NodeEvent} object. \nщ"(NODE_ON_GESTURE_COLLECT_INTERCEPT = 37,
ATriggers onDetectResultUpdate callback
     * when the text is set to TextDataDetectorConfig and recognized successfully.
     *
     * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
     * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
     * {@link ArkUI_StringAsyncEvent}.\n
     * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>：Indicates the result of text recognition, in Json format.\n
     *
     */
    NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
   >

long press event for span.
     *
     * The event is triggered when the span is long pressed.
     * When the event callback o)ccurs, the {@link ArkUI_NodeEvent} object-
     * {@link ArkUI_UIInputEvent} object. \n%NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,
A

event triggered when the text selection position changes.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <bV>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n)+NODE_TEXT_ON_TEXT_SELECTION_CHANGE = 1002,
A

event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copieދ+NODE_TEXT_ON_COPY = 1003,
A

event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateRs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n)NODE_TEXT_ON_WILL_COPY = 1004,
A

image loading success event.
     *
     * This event is triggered when an image is successfully loaded or decoded. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
     * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
     * x-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
     * y-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
     */
    NODE_IMAGE_ON_COMPLETE '= MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE>

Bimage loading failure event.
     *
     * This event is triggered image loading. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
     * 401: The image could not be obtained because the image path is invalid. \n
     * 1031I01: The image format is not supported. \n
     */
    NODE_IMAGE_ON_ERROR>

SVG animation playback completion event.
     *
     * This event is triggered when the animation playback in the loaded SVG image is complete. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_IMAGE_ON_SVG_PLAY_FINISH>Defines image download process event.
     *
     * This event is triggered when downloading webpage images from page components.\n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
     * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to downlo2ad. \n
     */
    NODE_IMAGE_ON_DOWNLOAD_PROGRESS>

event triggered when the toggle status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
     *
     */
B    NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE>

event triggered when the text input content changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
     *
     */
    NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_!SCOPE_NUM * ARKUI_NODE_TEXT_INPUT>

event triggered when the Enter key of the text input method is pressed.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
,     *
     */
    NODE_TEXT_INPUT_ON_SUBMIT>

event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>>: text that is cut.
     *
     */
    NODE_TEXT_INPUT_ON_CUT>

event triggered when the paste button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether th   e paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b:>: allowed. \n
     *
     */
    NODE_TEXT_INPUT_ON_PASTE>

event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
A

event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_INPUT_ON_EDIT_CHANGE,

    /**
      * @brief textInput This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter
      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *6
      */
    NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
A

event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
AThis callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     Y* the text in the content area. \n
     *
     */
    NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
A

event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return valune using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
A

event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  %  NODE_TEXT_INPUT_ON_DID_INSERT = 7010

	event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value uksing <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
A

event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_T EXT_INPUT_ON_DID_DELETE = 7012,
A

event triggered when content (including preview text) changes in the <b>TextInput</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>AerkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> componentߋ $4NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,
A

event triggered before content changes
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview te#xt in the <b>TextInput</b> componen>'NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,
A

event triggered when the copy button on the pasteboard, which displays when text is
     * selected, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copieދ+NODE_TEXT_INPUT_ON_COPY = 701q0

	event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateRs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n)%NODE_TEXT_INPUT_ON_WILL_COPY = 7016,
A

event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whMether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n)$NODE_TEXT_INPUT_ON_WILL_CUT = 7017,
A

event triggered when the input in the text box changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
     *
     */
    NODE_TEXT_AREA_ON_CHANGE = MAX_N$ODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA>

event triggered when the paste button on the pasteboard, which displays when the text box is
     * long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b9>: allowed. \n
     *
     */
    NODE_TEXT_AREA_ON_PASTE>

event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE>

event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,>is callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     * Vthe text in the content area. \n
     *
     */
    NODE_TEXT_AREA_ON_CONTENT_SCROLL,
A

event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
 1    *
     */
    NODE_TEXT_AREA_ON_EDIT_CHANGE,
A

event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
     *
     * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
     *
     */
    NODE_TEXT_AREA_ON_SUBMIT,

    /**
      * @brief textArea This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
      * {@link ArkUI_NodeComponentEvent}.\n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *
      */
    NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
A

event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return valume using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
A

event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  '  NODE_TEXT_AREA_ON_DID_INSERT = 8009,
A

event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value ugsing <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_DELETE = 8010

	event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_AREA_ON_DID_DELETE = 8011,
A

event triggered when content (including preview text) changes in the <b>TextArea</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUaI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> componentߋ $3NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,
A

event triggered before content changes.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview tex"t in the <b>TextArea</b> componentߋ&NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,
A

event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copieދ+NODE_TEXT_AREA_ON_COPY = 8014,
A

event triggered before copying text.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates wOhether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n)!NODE_TEXT_AREA_ON_WILL_COPY = 801q0

	event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cutߋ*NODE_TEXT_AREA_ON_CUT = 8016,
A

event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whMether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n)#NODE_TEXT_AREA_ON_WILL_CUT = 8017,
A

event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
     */
    NODE_CHECKBOX_EVENT_ON_CHANGE = M)AX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
A

event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
     */
    NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_)NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
A

event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [f0-59]. \n
     */
    NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
A

event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the smelected item. \n
     */
    NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
A

event triggered when an item is selected and scrolling has stopped in the
     * <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11](.i32</b>: value of the selected item. \nf/NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,
A

event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
     * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
     */
    NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_-NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
A

event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
     */
    NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
A

eventtriggered when an object is dragged or clicked by ARKUI_NODE_RADIO.
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
     * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
     */
    NODE_RADIO_EVENT_ON_CHA-NGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
A

eventtriggered when the animation starts to play.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parametejr:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR>

eventtriggered when the animation playback is paused.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no paraEmeter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001>

eventtriggered when the animation playback is repeated.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no paHrameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002>

eventwhen the animation playback returns to the initial state.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} containOs no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003>

eventtriggered when the animation playback is complete or stopped.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} conYtains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
    A

callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
     * or checkbox changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * <b>ArkUI_StringAsyncEvent.pStr</b>
     * Name: The names of the selected checkboxes;
     * Status:
     * 0: All chgeckboxes are selected.
     * 1: Some checkboxes are selected.
     * 2: No checkboxes are selected. \n $VNODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
AEvent triggered when the selection or cursor position in the **TextEditor** component changes.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameters:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: start index of_ the selection.
     * <br>**ArkUI_NodeComponentEvent.data[1].i32**: end index of the selectionߋb4
     */
    NODE_TEXT_EDITOR_ON_SELECTION_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,
AEvent triggered when the first initialization of the **TextEditor** component is complete.
     * <br>When the event callback ofccurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}ߋ)4
     */
    NODE_TEXT_EDITOR_ON_READY,
AEvent triggered when the **TextEditor** component pastes content.
     * <br>The system determines whether to intercept the defBault behavior of the component based on the return value
     * of    * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: interceptߋ)4
     */
    NODE_TEXT_EDITOR_ON_PASTE,
AEvent triggered when the editing status of the **TextEditor** component changes.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameter:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: editing status of the componentߋ24
     */
    NODE_TEXT_EDITOR_ON_EDITING_CHANGE,
AEvent triggered when the **Enter** key on the keyboard is pressed for the **TextEditor** component.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameter:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: type of thBe **Enter** key, specified using
     * {@link ArkUI_EnterKeyType}?+24
     */
    NODE_TEXT_EDITOR_ON_SUBMIT,
AEvent triggered when the **TextEditor** component cuts content.
     * <br>The system determines whether to intercept the defau@lt behavior of the component based on the return value
     * of    * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: intercep9t.
     * @since 24
     */
    NODE_TEXT_EDITOR_ON_CUT,
AEvent triggered when the **TextEditor** component copies content.
     * <br>The system determines whether to intercept the defBault behavior of the component based on the return value
     * of    * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: intercep:t.
     * @since 24
     */
    NODE_TEXT_EDITOR_ON_COPY,
AEvent triggered when the **TextEditor** component is about to change the content.
     * <br>This callback is triggered before any operation that causes a text content change takes effect. You can
     * determine whether to intercept the content change based on the information in the callback event.
     * <br>When the event callback occurs, you can obtain the {@link OH_ArkUI_TextEditorChangeEvent} object from the
     * {@link ArkUI_NodeEvent} object by calling {@link OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent}.
     * <br>Then, you can use the **OH_ArkUI_TextEditorChangeEvent_***XXX* series APIs to obtain more information from
     * this object.
     * <br>The system determines whether the current content can be changed based on the return value of the callback
     * function.
     * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32** whose **index** is set to **0** indicates whether the current content can be changed. **0**:
     * The content cannot be changed. **1**: The content can be changed.
     * @since 24
     */
    NODE_TEXT_EDITOR_ON_WILL_CHANGE,
AEvent triggered when the **TextEditor** component changes the content.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameters:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: start index of the text range to be replaced before the text
     * changes.
     * <br>**ArkUI_NodeComponentEvent.data[1].i32**: end index of the text range to be replaced before the text changes.
     * <br>**ArkUI_NodeComponentEvent.data[2].i32**: start index of the text range of the new content after the text
     * changes.
     * <br>**ArkUI_NodeComponentEvent.data[3].i32**: end index of the text range of the )new content after the text
     * changesߋ.4
     */
    NODE_TEXT_EDITOR_ON_DID_CHANGE,
A

event triggered when the index of the currently displayed element of this
     * <b>ARKUI_NODE_SWIPER</b> instance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     */
    NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
A

event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
     * of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-Coff velocity. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_START,
A

event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_END,

    /**
     A	

event triggered on a frame-by-frame basis when the page is turned by a swipe in this
     * <b>ARKUI_NODE_SWIPER</b> instance.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
ADefine the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
     * Instruction: \n
     * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
     * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
     * 2, circular scenario, set prevMargin and nextMargin attributes, \n
     * so that Swiper front and back end display the same page, the interface does not take effect. \n
     * 3. During page sliding, the ContentDidScrollCallback callback is \n
     * triggered frame-by-frame for all pages in the window. \n
     * For example, when there are two pages in the window with subscripts 0 and 1, \n
     * callbacks with index values 0 and 1 are triggered twice per frame. \n
     * 4, set the swipeByGroup parameter of the displayCount property to \n
     * true if at least one page in the same group is in the window, \n
     * A callback is triggered for all pages in the group. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
     * which is consistent with the index change in the onChange event. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
     * the start position of the Swiper spindle (selectedIndex corresponds to the start position of the page). \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis direction. \n
     */
    NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
A

event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently selected element. \n
     * 

?&NODE_SWIPER_EVENT_ON_SELECTED = 100100q0

	event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
    ?+NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,
A

event triggered when content in the swiper component will scroll.
     * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
     * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negatiLve numbers indicating
     * slide forward(e.g. from index=0 to index=1). \n $4NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,
A

<b>ARKUI_NODE_SWIPER</b> scroll state change event.
     * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
     * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.da_ta[0].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n5NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,
A

event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    >


event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is not triggered when the controller API is called. \n
     * 3. This event does not support the out-of-bounds bounce effect. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
     * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
     * needs to scroll based on the real-world situation and return the result in this parameter. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
ADefine the enumeration value of the pre sliding trigger event for the scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the? scroll component.
     */
    NODE_SCROLL_EVENT_ON_WILL_SCROLL>Define the event enumeration value triggered when sliding a scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     parameter type is {@link ArkUI_Sc<rollState}. \n
     */
    NODE_SCROLL_EVENT_ON_DID_SCROLL,
A

event triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
     * and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SC
ROLL_START>

event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
 #   NODE_SCROLL_EVENT_ON_SCROLL_STOP>

event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
     * one of the edges.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
     * component or other input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom,\ left, or right) that the scrolling reaches. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_EDGE>Define that a callback is triggered when the scrolling container component reaches the start position.
     * Condition for triggering the event: \n
     * Triggered when the component reaches the start position. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeCoUmponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_START>Define that a callback is triggered when the scrolling container component ends. \n
     * Condition for triggering the event: \n
     * Triggered when the component reaches the end. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no para5meters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_END>

callback for when the user is about to release the drag on the scrollable container component.
     *
     * This event is triggered when the user is about to release the drag on the scrollable container component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releases the drag, in vp. \n'NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING>

callback for the <b>Scroll</b> component's zoom event,
     * triggered at the end of each frame during zooming. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current zoom scale. \nNODE_SCROLL_EVENT_ON_DID_ZOOM>

callback for the <b>Scroll</b> component's zoom start event,
     * triggered when zooming begins. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link: ArkUI_NodeComponentEvent} does not contain parameters. \nNODE_SCROLL_EVENT_ON_ZOOM_START>

callback for the <b>Scroll</b> component's zoom end event,
     * triggered when zooming ends. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link Ark6UI_NodeComponentEvent} does not contain parameters. \nNODE_SCROLL_EVENT_ON_ZOOM_STOP>

callback for when the scrollable will start dragging.
     *
     * This event is triggered when the scrollable will start dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROL&L_EVENT_ON_WILL_START_DRAGGING = 10020@0

	callback for when the scrollable did end dragging.
     *
     * This event is triggered when the scrollable did end dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i3(2</b>: whether start fling animation. \n>1
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_DRAGGING = 1002014>

callback for when the scrollable will start fling.
     *
     * This event is triggered when the scrollable will start fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_WILL_START_FLING = 1002015>

callback for when the scrollable did end fling.
     *
     * This event is triggered when the scrollable did end fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_FLING = 1002016>

fs of the event triggered, \n
     * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
     * Condition for triggering the event: \n
     * This method is triggered once during list initialization. \n
     * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
     * the first child component in the region. \n
     * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
     * the last child component in the region. \n
     * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
     * the subcomponent in the middle of the area. \n
     */
    NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST>

fs of the event triggered
     * before the sliding of the ARKUI_NODE_LIST component. \n
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number thata sets the actual scroll distance of the scroll component. \n
     */
    NODE_LIST_ON_WILL_SCROLL>Defineas of the event triggered when the ARKUI_NODE_LIST component is flicked.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_LIST_ON_DID_SCROLL,
A

event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the list is initialized and when the index of the first child component or the
     * next child component in the list display area changes.
     * During index calculation, the list item, header of the list item group, and footer of the list item group each
     * are counted as a child component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains six parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
     * in the list item group.
     * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
     * list item group.
     * ITf the end of the list display area is not on a list item, the value is <b>-1</b>. \n $,NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,
A

edit mode state change event of the <b>List</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_LIST_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: not in edit mode. <b>1</b>: in edit mode.
     *
     )NODE_LIST_ON_EDIT_MODE_CHANGE = 1003004,
A

selected state change event of the <b>ListItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected.
(FNODE_LIST_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
A

event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
     */
   D NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH>

event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeTComponentEvent} does not contain parameters:\n
     */
    NODE_REFRESH_ON_REFRESH,
A

event that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
     */$
    NODE_REFRESH_ON_OFFSET_CHANGE,
A

event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
     * input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_ON_WILL_SCROLL = M)AX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW>Defineas of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling.
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_WATER_FLOW_ON_DID_SCROLL>

fs of the event triggered,
     * when the subcomponent of the start position or end position displayed in the current waterfall changes.
     * Condition for triggering the event: \n
     * This event is triggered when the index value of the \n
     * first or last subcomponent in the waterfall display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
     * start position of the currently displayed WaterFlow. \n
     * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
     * the end position of theP currently displayed waterfall. \n
     */
    NODE_WATER_FLOW_ON_SCROLL_INDEX,
A

event triggered when a child component enters or leaves the grid display area.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the grid is initialized and when the index of the first or \n
     * last child component in the grid display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the grid display area. \n
     * <b>ArkUIc_NodeComponentEvent.data[1].i32</b>: index of the last child component in the grid display area. \ntBNODE_GRID_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
A

event triggered when the grid is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: scroll source. The parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Returns one or no number to indicate the actual amount by which the scroll component scrollsߋt$NODE_GRID_ON_WILL_SCROLL = 1013001,
A

event triggered when the grid scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
     *
     
t#NODE_GRID_ON_DID_SCROLL = 1013002,
A

event triggered at the end of each frame layout of the <b>ARKUI_NODE_GRID</b> component,
     * which is used to set the position and length of the scrollbar.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.i32 at index 0:offset of the first visible grid item,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: offset of the first visible item relative to the grid's display starting position, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * @return Information about the scrollbar position and length. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.f32 at index 0: total offset of the grid content relative to the display area, in px. \n
     * value.f32 at index 1: total length of    the grid content, in px. \n
     *t*NODE_GRID_ON_SCROLL_BAR_UPDATE = 1013003,
A

<b>Grid</b> component's child drag start event.
     *
     * This event is triggered under the following scenarios: \n
     * 1. <b>NODE_GRID_EDIT_MODE</b> is set to <b>1</b>. \n
     * 2. The user long-presses and drags a <b>Grid</b> child component with sufficient displacement. \n
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32 at index 0: x-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: y-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32 at index 2: index of the dragged child component in the <b>Grid</b> component,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     *
     * @return Whether the drag operation is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether dragging is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n7(NODE_GRID_ON_ITEM_DRAG_START = 1013004,
A

event triggered when a dragged child component enters this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> enters the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to, the <b>Grid</b>
     * component, in vp. \n7%NODE_GRID_ON_ITEM_DRAG_ENTER = 101300q0

	event triggered when a dragged child component moves within this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> moves within the current
     * <b>Grid</b> component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index oMf the dragged child component in the current <b>Grid</b>
     * component. \n7'NODE_GRID_ON_ITEM_DRAG_MOVE = 1013006,
A

event triggered when a dragged child component leaves this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> leaves the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child c7omponent in the source <b>Grid</b>
     * component. \n7(NODE_GRID_ON_ITEM_DRAG_LEAVE = 1013007,
A

event triggered when a dragged child component is released.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> is released. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child component in the current <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: whether the dragged child component is successfully released. \n
     * <b>1</b>: The component is released within the <b>Grid</b> component's area.
     * <b>0</b>: The component is released outside the <b>Grid</b> component's area. \n7"NODE_GRID_ON_ITEM_DROP = 1013008,
A

edit mode state change event of the <b>Grid</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_GRID_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: not in edit mode. <b>1</b>: in edit mode.
     *
     )NODE_GRID_ON_EDIT_MODE_CHANGE = 1013009,
A

selected state change event of the <b>GridItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected. \n7DNODE_GRID_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM>

event triggered when an item is selected in the <b>ARKUI_NODE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n7TNODE_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
     /**
     
event triggered when an item is selected and scrolling has stopped in the
      * <b>ARKUI_NODE_PICKER</b> component.
      *
      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
      * {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
      * <b>ArkUI_NodeComponentEvent.data[0...113].i32</b>: value of the selected item. \n
      *
 7I */
    NODE_PICKER_EVENT_ON_SCROLL_STOP = 1018001,
} ArkUI_NodeEventType.)common structure type of a component even"struct ArkUI_NodeEvent ArkUI_NodeEvent;

/**
 * @brief Obtains the type of a component event.
 *
 * @param event Indicates the xcomponent event.
 * @return Returns the type of the component event.
 * @since 12
 */
ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);

/**
 * @brief Obtains the custom ID of a component event.
 *
 * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
 * to the dispatch logic of the same evPent entry function {@link registerNodeEventReceiver}.
 *
 * @param event Indicatqcomponent event.
 * @return Returns the custom ID of the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);

/**
 * @brief Obtains the component object that triggers a component event.
 *
 * @param event Indicatqcomponent event.
 * @return Returns the component object that triggers the component event.
 * @since 12
 */
ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);

/**
 * @brief Obtains input event (for example, touch event) data for. a component event.
 *
 * @param event Indicatq"component event.
 * @return Return
input event data.
 * @since 12
 */
ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);

/**
 * @briefL Obtains the numerical data in a component event.
 *
 * @param event Indicatq"component event.
 * @return Return
numerical data.
 * @since 12
 */
ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);

/V**
 * @brief Obtains the string data in a component event.
 * 
 * @param event Indicatq"component event.
 * @return Return
string data.
 * @since 12
 */
ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);

/**
 * @brief Obtains the ArkUI_TextChangeEvent data from a component event.
 *
 * @param event Pointer to a component event. It cannot be null.
 * @return Return
<b>ArkUI_TextChangeEvent</b> object.
 * @since 15
 */
ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* event);

/**
 * @brief Obtains the custom data in a component event.
 *
 * This parameter is passed in {@link registerNodeiEvent} and can be applied to the service logic when the event
 * is triggered.
 *
 * @param event Indicatq"component event.
 * @return Return
custom data.
 * @since 12
 */
void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);

/**
 * @brief Obtains the numeric-?type parameter of a component event.
 *
 * @param event Indicatqcomponent event.
 * @param index Indicates the index of the return value.
 * @param value Indicates the return value.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limit.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);

/**
 * @brief Obtains the string-type parameter of a component event. The string data is valid only during an event
 * callback. To use it outsiYde an event callback, you are advised to copy the string data.
 *
 * @param event Indicatqbcomponent event.
 * @param index Indicates the index of the return value.
 * @param string Indicatqstring array.
 * @param stringSize Indicates the length of the string array.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limit.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);

/**
 * @brief Sets the return value for a compon%ent event.
 *
 * @param event Indicatqcomponent event.
 * @param value Indicates the numeric-type array.
 * @param size Indicates the array length.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} if the component event does not support return values.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if data does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);

/**
 * @brief Obtains a <b>ArkUI_TouchTestInfo</b> object from the specified <b>ArkUI_NodeEvent</b> object.
 *
 * @param {pointer} nodeEvent Indicates the pointer to an <b>ArkUI_NodeEvent</b> object.
 * @return Returns the pointer to an <b>ArkUI_TouchTestInfo</b> object.
 *         Returns <b>null</b> if the parameter passed in is invalid or is not a touch test info.
 * @since 22
 */
ArkUI_TouchTestInfo* OH_ArkUI_NodeEvent_GetTouchTestInfo(ArkUI_NodeEvent* nodeEvent);

/**
 * @brief Obtains the text content change data of the **TextEditor** component in the component event.
 *
 * @param event Pointer to the {@link ArkUI_NodeEvent} component event object.
 * @return Returns the pointer to an <b>OH_ArkUI_TextEditorChangeEvent</b> object.
 *     Returns <b>null</b> if the input parameter is invalid or does not represent a text editor change event.
 * @since 24
 */
OH_ArkUI_TextEditorChangeEvent* OH_ArkUI_NodeEvent_Ge4tTextEditorOnWillChangeEvent(ArkUI_NodeEvent* event).4dirty area flag passed in the <b>::markDirty</b> API"]ARemeasure.
     *
     * When this type of flag is specified, re-layout is triggered by default.
     */
    NODE_NEED_MEASURE = 1,

    /** Re-layout. */
    NODE_NEED_LAYOUT,
    /** Re-rendering. */
    NODE_NEED_RENDER,
} ArkUI_NodeDirtyFlag;

/**
 *7custom component event type"]{
    /** Measure type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
    /** Layout type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
    /**
     * Draw front typeOARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind typeLARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} ArkUI_NodeCustomEventType.,general structure of a custom component even"2struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent.Vcomponent adapter, which is used for lazy loading of elements of scrollable components"1struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle.component adapter even"4struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent4component adapter events"]{
    /** This event occurs when the component is attached to the adapter. */
    NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
    /** This event occurs when the component is detached from the adapter. */
    NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
    /** This event occurs when the adapter obtains the unique ID of the new element to add. */
    NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
    /** This event occurs when the adapter obtains the content of the new element to add. */
    NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
    /** This event occurs when the adapter removes an element. */
    NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
} ArkUI_NodeAdapterEventType;

/**
* @brief Creates a component adapter.
*
* @since 12
*/
ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();

/**
* @brief Destroys a component adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);

/**
* @brief Sets the total 
elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @param size Indicates the number of elements.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);

/**
* @brief Obtains the total number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @return Returns the total number of elements in the adapter.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);

/**
* @brief Registers an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @param userData Indicates custom data.
* @param receiver Indicates the event receiver callback.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));

/**
* @brief Deregisters an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload all elements.
*
* @param handle Indicates the target component adapter.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition Indicates the start position of the elements to reload.
* @param itemCount Indicates the number of the elements to reload.
*  @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to remove certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition Indicates the start position of the elements to remove.
* @param itemCount Indicates the number of the elements to remove.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RemoveItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to insert certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition Indicates the start position of the elements to insert.
* @param itemCount Indicates the number of the elements to insert.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_InsertItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to move certain elements.
*
* @param handle Indicates the target component adapter.
* @param from Indicates the start position of the elements to move.
* @param to  Indicates the end position of the elements to move.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);

/**
* @brief Obtains all elements stored in+ the specified adapter.
*
* This API return
array of the elements. You need to manually release the memory data
* to which the pointer points.
*
* @param handle Indicates 4the target component adapter.
* @param items Indicatqarray of the elements in the adapter.
* @param size Indicates the number of elements.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);

/**
* @brief Obtains the custom data passed in during registration of the specified event.
*
* @param event Indicates the target adapter event.
* @since 12
*/
void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the event type.
*
* @param event Indicates the target adapter event.
* @return Returns the event type.
* @since 12
*/
ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the element to be removed for the event to be destroyed.
*
* @param event Indicates the target adapter event.
* @return Returns the element to be removed.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the index of the element to be operated for the specified adapter event.
*
* @param event Indicates the target adapter event.
* @return Returns the index of the element.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the scrollable container node that uses the specified adapter.
*
* @param event Indicates the target adapter event.
* @return Returns the scrollable container node that uses the specified adapter.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Sets the component to be added to the specified adapter.
*
* @param event Indicates the target adapter event.
* @param node Indicates the component to be added.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);

/**
* @brief Sets the component ID to be generated.
*
* @param event Indicates the target adapter event.
* @param id Indicates the component ID to set.
* @return Returns the error code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);

/**
 * @brief Declares a collection of native node APIs providjed by ArkUI.
 *
 * The APIs related to the native node must be called in the main thread.
 *
 * @version 1structAStruct versionߋP^int32_t version;
A>Creates a component based on {@link ArkUI_NodeType} and return
mcreated component.
     *
     * @param type Indicates the type of component to create.
     * @return Return
Icreated component. If the component fails to be created, NULL is returnedb 4rkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
AmDestroys the component to which the specified pointer points.
     *
     * @param node Indicates the pointerb,void (*disposeNode)(ArkUI_NodeHandle node);
AFAdds a component to a parent node.
     *
     * @param parent Indicatq(parent node.
     * @param child Indicatqchild node.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on
     *             BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or editing subnodes.
     *         Returns {@link^ ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the child node has already been adopted. Add since api 2^ Fint32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
AMRemoves a component from its parent node.
     *
     * @param parent Indicatq(parent node.
     * @param child Indicatqchild node.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     * on BuilderNode generated ncodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodesbIint32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
AInserts a component to a parent node after the specified <b>sibling</b> node.
     *
     * @param parent Indicates the pointer(parent node.
     * @param child Indicatq)child node.
     * @param sibling Indicatqsibling node after which the target node is to be inserted.
     * If the value is null, the node is inserted at the start of the parent node.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attributes, setting events, or adding or editing subnodes.
     *         Returns {@blink ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the child node has already been adopted. Add since api 2^ hint32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
AInserts a component to a parent node before the specified <b>sibling</b> node.
     *
     * @param parent Indicates the pointe~	(parent node.
     * @param child Indicatq)child node.
     * @param sibling Indicatqsibling node before which the target node is to be inserted.
     * If the value is null, the node is inserted at the end of the parent node.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attributes, setting events, or adding or editing subnodes.
     *         Returns {@laink ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the child node has already been adopted. Add since api 2^ iint32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
AcInserts a component to the specified position in a parent node.
     *
     * @param parent Indicatq(parent node.
     * @param child Indicatqchild node.
     * @param position Indicates the position to which the target child node is to be inserted. If the value is a
     * negative number or invalid, the node is inserted at the end of the parent node.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attributes, setting events, or adding or editing subnodes.
     *         Returns {@link ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the child node )has already been adopted. Add since api 2^ ]int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
ASetϱnode.
     *
     * @param node Indicates the node whose attribute needs to be set.
     * @param attribute Indicates the type *of attribute to set.
     * @param value Ivalue.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodesbint32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);

    /**
  AObtains an attribute.
     *
     * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
     * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
     * time. Otherwise, the pointer may be overwritten by other values.
     * @param node Indicates the node whose attribute needs to be obtained.
     * @param attribute Indicates the type of attribute to obtain.
     * @return Returns the aBttribute value. If the operation fails, a null pointer is returnedbfconst ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
AResets an attribute.
     *
     * @param node Indicates the node whose attribute needs to be reset.
     * @param attribute Indicates the type of attribute to reset.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attribute0s, setting events, or adding or editing subnodesbUint32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
ARegisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     *         Returns {@link ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodesbint32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
        int32_t targetId, void* userData);

AUnregisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregisterbSvoid (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
AWRegisters an event receiver.
     *
     * The ArkUI framework collects component eventprocess and calls back the events through
     * the registered event receiver. \n
     * A new call to this API will overwrite the previously registered event receiver. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
     * callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodejEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to registerbRvoid (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
AUnregisters the event receiverߋP^'void (*unregisterNodeEventReceiver)();
AForcibly marks the current node that needs to be measured, laid out, or rendered again.
     *
     * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
     * measuring, layout, or rendering again. In this case, you do not need to call this API.
     * @param node Indicates the node for which you want to mark as dirty are7a.
     * @param dirtyFlag Indicates type of dirty areabIvoid (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
AObtains the number of subnodes.
     *
     * @param node Indicates the target node.
     * @return the number of subnodes. If not, returns 0b7uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
AObtains a subnode.
     *
     * @param node Indicates the target node.
     * @param position Indicates the position of the subnode.
     * @return Return
<subnode if the subnode exists; returns <b>NULL</b> otherwiseb HrkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
AeObtains the first subnode.
     *
     * @param node Indicates the target node.
     * @return Return
<subnode if the subnode exists; returns <b>NULL</b> otherwiseb 9rkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
AdObtains the last subnode.
     *
     * @param node Indicates the target node.
     * @return Return
<subnode if the subnode exists; returns <b>NULL</b> otherwiseb 8rkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
AmObtains the previous sibling node.
     *
     * @param node Indicates the target node.
     * @return Return
<subnode if the subnode exists; returns <b>NULL</b> otherwiseb >rkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
AiObtains the next sibling node.
     *
     * @param node Indicates the target node.
     * @return Return
<subnode if the subnode exists; returns <b>NULL</b> otherwiseb :rkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
ARegisters a custom event for a node. When the event is triggered, the value is returned through the entry
     * point function registered by <b>registerNodeCustomEventReceiver</b>.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of
     * {@link ArkUI_NodeCustomEvent} when the event is triggered.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
     *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * @sincebint32_t (*registerNodeCustomEvent)(
        ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
AUnregisters a custom event for a node.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregisterb_void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
ARegisters a unified entry point function for custom node event callbacks.
     *
     * The ArkUI framework collects custom component eventprocess and calls back the events
     * through the registered <b>registerNodeCustomEventReceiver</b>. \n
     * A new call to this API will overwrite the previously registered event receiver.
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to registerb^void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
ALUnregisters the unified entry point function for custom node event callbacksߋP^-void (*unregisterNodeCustomEventReceiver)();
ASets the width and height for a component after the measurement.
     *
     * @param node Indicates the target node.
     * @param width Indicates the width.
     * @param height Indicates the height.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARA&M_INVALID} if a parameter error occursbRint32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
ASets the position for a component.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursb[int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
AObtains the width and height of a component after measurement.
     *
     * @param node Indicates the target node.
     * @return Returns t8omponentb 8rkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
AObtains the position of a component after the layout is complete.
     *
     * @param node Indicates the target node.
     * @,return Returns the position of the componentb <rkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
AMeasures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
     *
     * @param node Indicates the target node.
     * @param Constraint Indicates the size constraint.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_/CODE_PARAM_INVALID} if a parameter error occursbSint32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
ALays outs a component and passes the expected position of the component relative to its parent component.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         ReturEns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbTint32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
AAdds a component eventto a component to receive component events generated
     * by the component.
     *
     * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
     * receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
     * The data will be destroyed after the callbiack is complete. \n
     *
     * @param node Indicates the component for which you want to add the eventmT1param eventReceiver Indicates the component eventto add.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is sucbcessful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbgint32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
A&Removes the registered component eventkfrom a component.
     *
     * @param node Indicates the component from which you want to remove the eventmT1param eventReceiver Indicates the component eventto remove.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is esuccessful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbjint32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
AAdds a custom eventto a component to receive custom events
     * (such as layout and drawing events) generated by the component.
     *
     * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
     * multiple event receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeCustomEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for wh$ich you want to add the custom eventmT.param eventReceiver Indicates the custom eventto add.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is sucbcessful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbint32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
   A!Removes a registered custom eventfrom a component.
     *
     * @param node Indicates the component from which you want to remove the custom event callback funmT.param eventReceiver Indicates the custom eventto remove.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is esuccessful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbint32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
        void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

ASaves custom data on the specified component.
     *
     * @param node Indicates the component on which the custom data will be saved.
     * @param userData Indicates the custom data to be saved.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_IN"VALID} if a parameter error occursb?int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
AObtains the custom data saved on the specified component.
     *
     * @param node Indicates the target component.
     * @return Returns the custom datab-void* (*getUserData)(ArkUI_NodeHandle node);
ASets the unit for a component.
     *
     * @param node Indicates the component for which you want to set the unit.
     * @pacram unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
     *<b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
     * @return Returns the error code.
     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occursbint32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);

    /**
      * @brief Get the parent node.
      *
      * @param node target node object.
      * @return Returns the pointer of the component, if not return NULL
    4e */
    ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);

    /**
    * @brief Uninstall all child nodes from the parent component.
    *
    * @param parent target node object.
    * @return Returns the error code.
    *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
    *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
a*/
    int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
} ArkUI_NativeNodeAPI_1;

/**
* @brief Obtains the size constrainLt for measurement through a custom component event.
*
* @param event Indicatq(custom component event.
* @return Return
size constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the expected position of a component relative to its parent component in the layout phase t;hrough a
* custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the expected position relative to the parent component.
* @since 12
*/
ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the drawing context through3 a custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the drawing context.
* @since 12
*/
ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the ID of a custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the ID of the custom component event.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains custom event parameters through a custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the custom event parameters.
* @since 12
*/
void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains a component object through a custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the component object.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the event type through a custom component event.
*
* @param event Indicatqcustom component event.
* @return Returns the type of the custom component event.
* @since 12
*/
ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the measurement information of a custom ?span through a custom component event.
*
* @param event Indicatqcustom component event.
* @param info Indicates the measurement information to be obtained.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);

/**
* @brief Sets the measurement metrics of a custom span through a custom component event.
*
* @param event Indicatqcustom component event.
* @param metrics Indicates the measurement metrics to set.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);

/**
* @brief Obtains the drawing information of a custom span through a custom component event.
*
* @param event Indicatqcustom component event.
* @param info Indicates the drawing information to obtain.
* @return Returns the result code.
*         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
*         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info).node content event typ"]{
    /** Defines the attach event. */
    NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
    /** Defines the detach event. */
   J NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
} ArkUI_NodeContentEventTypqE!inspector error codes.#U{
    /**
     * @error Success.
     */
    ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFULaw@error Invalid parameter.
     */
    ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
} ArkUI_InspectorErrorCode;

/**
 * @br?*general structure of a node content event.4struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent.of a node content event.TArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);

/**
 * @brief register a/to a node content.
 *
 * @param content Indicatq3node content instance.
 * @param callback Indicates@return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);

/**
 * @brief Obtains the type of a node co'ntent event.
 *
 * @param event Indicatqnode content event.
 * @return Returns the type of the node content event.
 * @since 12
 */
ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);

/**
 * @brief Obtains the node content object that triggers a n-ode content event.
 *
 * @param event Indicatqnode content event.
 * @return Returns the node content object that triggers the node content event.
 * @since 12
 */
ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);

/**
 * @brief Saves custom data on the specified node content.
 *
 * @param content Indicates the node content on which the custom data will be saved.
 * @para%Indicates the custom data to be saved.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @sincYe 12
 */
int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* q&Obtains the custom data saved on the specified node content.
 *
 * @param content Indicates the target node content.
 * @return Returns the custom data.
 * @since 12
 */
void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);

/**
 * @br>ief Add a node to a node content.
 *
 * @param content Indicatq-node content instance.
 * @param node Indicatqnode
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);

/**
 * @brief remove a node from a node content.
 *
 * @param conten	t Indicatq-node content instance.
 * @param node Indicatqnode
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);

/**
 * @brief insert a node into a node content at a g+iven position.
 *
 * @param content Indicatq-node content instance.
 * @param node Indicatqnode
 * @param position Indicates the position for inserting the node
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);

/**
 * @brief Get the size of the component layout area.
 * The layout area size does not include graphic variation attributes such as scaling.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param size The drawing area size of the component handle, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);

/**
 * @brief Obtain the position of the component layout area relative to the parent component.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param localOffset The offset value of the component handle relative to the parent component, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);

/**
 * @brief Obtain the position of the component layout area relative to the window.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param globalOffset The offset value of the component handle relative to the window, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);

/**
 * @brief Obtain the position of the component layout area relative to the screen.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param screenOffset The offset value of the component handle relative to the screen, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);

/**
 * @brief Obtains the offset of a component relative to the global display.
 * The relative position does not count in transformation attributes, such as translate.
 *
 * @param node Pointer to the <b>ArkUI_NodeHandle</b> representing the component.
 * @param offset Offset of the component relative to the global display, in px.
 * @return Result code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 20
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offset);

/**
 * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset value of the component handle itself,
 * parent components, and ancestor nodes, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/**
 * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset value of the component handle itself,
 * parent components, and ancestor nodes, in px.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 12
 */
int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/**
 * @brief Add the custom property of the component. This interface only works on the main thread.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property. Passing null pointers is not allowed.
 * @param value The value of the custom property. Passing null pointers is not allowed.
 * @since 13
 */
void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);

/**
 * @brief Remove the custom property of the component.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property.
 * @since 13
 */
void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);

/**
 * @brief Get the value of the custom property of the component.
 *
 * @param node ArkUI-NodeHandle pointer.
 * @param name The name of the custom attribute.
 * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 14
 */
int32_t OH_ArkUI_NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** handle);

/**
 * @brief Get the parent node to obtain the component nodes created by ArkTs.
 *
 * @param node Target node object.
 * @return Return the pointer of the component.
 * @since 14
 */
ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);

/**
 * @brief Retrieve all active child nodes of a node. Span will not be counted in the children.
 *
 * @param head Pass in the node that needs to be obtained.
 * @param handle The structure corresponding to the sub node information of the head node.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 14
 */
int32_t OH_ArkUI_NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** handle);

/**
 * @brief Retrieve the root node of the current page.
 *
 * @param node Target node object.
 * @return Return the pointer of the component.
 * @since 14
 */
ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);

/**
 * @brief Retrieve whether the component is labeled by C-API.
 *
 * @param node Target node object.
 * @return Return whether the node is a Tag created by C-API,
 *         true represents created by C-API, false represents not created by C-API.
 * @since 14
 */
bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node);

/**
 * @brief Get the type of node.
 *
 * @param node Target node object.
 * @return Return the type of the node.
 *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
 * @since 14
 */
int32_t OH_ArkUI_NodeUtils_GetNodeType(ArkUI_NodeHandle node);

/**
 * @brief Get info of the window to which the node belongs.
 *
 * @param node Target node object.
 * @param info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node is not mounted.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info);
 
/**
 * @brief Obtains the index of the current FrameNode's first child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index The index of the subnode.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);

/**
 * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index the index of the subnode.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);

/**
 * @brief Obtains a subnode by position with the expand mode.
 *
 * @param node Indicates the target node.
 * @param position Indicates the position of the subnode.
 * @param subnode The pointer to the subnode.
 * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
    ArkUI_NodeHandle* subnode, uint32_t expandMode);

/**
 * @brief Collapse the ListItem in its expanded state.
 *
 * @param node Node objects that need to be registered for eventsCustom event parameters are carried back in the callback parameter when the event is triggered.
 * @param onFinish The callback triggered after the completion of the folding animation.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
 * @since 12
 */
int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));

/**
* @brief Obtain the UIConteyxt pointer to the page where the node is located.
*
* @param node The node.
* @return The UIContext pointer.
*         If a null pointer is returned, it may be because the node is empty.
* @since 12
*/
ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);

/**
* @brief The event called when the system color mode changes.
*        Only one system color change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the custom data to be saved.
* @param onColorModeChange Callback Events.
* @return Error code.
*         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
*         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));

/**
* @brief Unregister the event callback when the system color mode changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);

/**
* @brief The event called when the system font style changes.
*        Only one system font change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the custom data to be saved.
* @param onFontStyleChange Callback Events.
* @return Error code.
*         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
*         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));

/**
* @brief Unregister the event callback when the system font style changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);

/**
 * @brief Retrieve the font size value for system font change events.
 *
 * @param event Indicates a pointer to the current system font change event.
 * @return Updated system font size scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);

/**
 * @brief Retrieve the font thickness values for system font change events.
 *
 * @param event Indicates a pointer to the current system font change event.
 * @return The updated system font thickness scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);

/**
 * @brief Get the node handle by id.
 *
 * @param id The id of the target node handle.
 * @param node The handle of target node handle.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);

/**
 * @brief Move the node handle to target parent node as child.
 *
 * @param node The node handle of the node to move.
 * @param target_parent The node handle of target parent.
 * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
 *              node is moved to the end of the target parent node.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 *         {@link ARKUI_ERROR_CODE_NODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 18
 */
int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);

/**
 * @brief Triggers node updates in the current frame.
 * When node attributes are modified after the current frame's build phase,
 * the node updates will be deferred to the next
 * frame. This function forces immediate node updates within the current frame to
 * ensure rendering effects are applied synchronously.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_InvalidateAttributes(ArkUI_NodeHandle node);

/**
 * @brief Set the cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);

/**
 * @brief Get the cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);

/**
 * @brief Registers a callback for node when layout is completed.
 *
 * @param node Indicates the target node.
 * @param us3Indicates the custom data used in onLayoutCompleted@param onLayoutCompleted Indicates the function when layout completed is callback.
 * @return error code
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onLayoutCompleted)(void* userData));


/**
 * @brief Registers a callback for node when draw is completed.
 *
 * @param node Indicates the target node1Indicates the custom data used in onDrawCompleted@param onDrawCompleted Indicates the function when draw completed is callback.
 * @return error code
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onDrawCompleted)(void* userData));
    
/**
 * @brief Unregisters the layout completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);

/**
 * @brief Unregisters the draw completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node);

/**
 * @brief Get the snapshot pixelmap for the given node synchronously, will get error if the node is not on the
 * tree or is not rendered yet.
 * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
 *
 * @param node Indicates the target node.
 * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
 * @param pixelmap Pixelmap pointer created by system, it's the out result.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned.
 *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
 * @since 15
 */
/**
 * @brief Obtains a snapshot of a given component. If the node is not in the component tree or has not been rendered,
 * the snapshot operation will fail. When the <b>Pixelmap</b> object created is no longer in use, it should be released
 * by calling {@link OH_PixelmapNative_Release}.
 *
 * @param node Target node.
 * @param snapshotOptions Snapshot settings. If the value is null, the default settings are used.
 *         Snapshot settings include scaling, color space, and dynamic range configuration.
 *         Scaling: floating-point value greater than 0.
 *         Color space: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b> (DISPLAY_BT2020_SRGB).
 *         Dynamic range: {@link ArkUI_DynamicRangeMode}.
 * @param pixelmap Pointer to the <b>Pixelmap</b> object created by the system.
 * @return Result code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot fails, returning a null pointer.
 *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot operation times out.
 *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED} if the provided color space or
 *         dynamic range mode is not supported.
 *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED} if the isAuto parameter of the color
 *         space or dynamic range mode is set to true for offscreen node snapshot.
 * @since 23
 */
int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
    OH_PixelmapNative** pixelmap);

/**
 * @brief Query the size limitation of the component snapshot.
 *
 * @param maxWidth Maximum width limit of the component snapshot, in px.
 * @param maxHeight Maximum height limit of the component snapshot, in px.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Invalid function parameter.
 * eint32_t OH_ArkUI_GetNodeSnapshotSizeLimitation(int32_t* maxWidth, int32_t* maxHeight);

/**
 * @brief Obtains the offset of a specific node relative to its parent node.
 *
 * @param node Target node.
 * @param globalOffset Offset of the target node relative to its parent node, in px.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);

/**
 * @brief Adds the UI state style supported by the component. To handle states change efficiently, need to specify the
 * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
 *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
 * times on the same node, the last set of states and handler will take precedence.
 *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
 * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
 * components, the default style effect will be applied first, followed by the custom style changes, resulting in
 * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
 * by the system implementation.
 *  - And when this API is called, the provided handler function will be executed immediately.
 *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
 * the system will automatically notify your application when the state changes back to NORMAL.
 *
 * @param node Target node.
 * @param uiStates Target UI sVtates to be handled on the node.
 *        The combined result of all target UI statesausing the <b>|</b> operator.
 *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
 * @param statesChangeHandler Handler for UI state changes.
 *        It rturns the current UI status. The value is the result of combining all current state enum values using the
 *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
 *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
 *        However, for checking the normal state, use the equality operator directly.
 *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)H</b>.
 * @param excludeInner Whether to disable the default state stylesCustom data used in the <b>statesChangeHandler</b> callback.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 20
 */
ArkUI_ErrorCode OH_ArkUI_AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
    voidX (statesChangeHandler)(int32_t currentStates, void* userData), bool excludeInner, void* q&Removes registered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
 * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
 * 
 * @param node Target node.
 * @param uiStates Target UI states to be removed.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 * @since 20
 */
ArkUI_ErrorCode OH_ArkUI_RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates);

/**
 * @brief Run a custom function inside the UICKontext scope.
 *
 * @param uiContext Indicates the pointer to a UI instanceIndicatqcustom data.
 * @param callback The custom function.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 *         Returns {@link ARKUI_ERROR_CODE_UI_CONTEXT_INVALID} if the uiContext is invalid.
 *         Returns {@link ARKUI$_ERROR_CODE_CALLBACK_INVALID} if theis invalid.
 * @since 20
 */
int32_t OH_ArkUI_RunTaskInScope(ArkUI_ContextHandle uiContext, void* userData, void(*callback)(void* userData));

/**
 * @brief Get the node handle by uniqueId.
 *
 * @param uniqueId The uniqueId of the target node handle.
 * @param node The handle of target node handle.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20
 */
int32_t OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* node);

/**
 * @brief Get the uniqueId of the target node handle.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param uniqueId The uniqueId of the target node handle, default value is -1.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20
 */
int32_t OH_ArkUI_NodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId);

/**
 * @brief Returns true if the node is in the render state. A node is considered to be in the render state if its
 * corresponding RenderNode is on the render tree.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isInRenderState If the node is in the render state.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_IsInRenderState(ArkUI_NodeHandle node, bool* isInRenderState);

/**
 * @brief The current node adopts the target child node. The node being adopted must not have an existing parent node.
 * This operation does not actually append it as a child, but only allows it to receive life-cycle
 * callbacks as if it were a child.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node that will adopt the child node.
 * @param child ArkUI_NodeHandle pointer, the target node being adopted.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 *         {@link ARKUI_ERROR_CODE_NODE_HAS_PARENT} The child already has a parent node.
 *         {@link ARKUI_ERROR_CODE_NODE_CAN_NOT_BE_ADOPTED} The child can not be adopted.
 *         {@link ARKUI_ERROR_CODE_NODE_CAN_NOT_ADOPT_TO} The node can not adopt children.
 * @since 22
 */
int32_t OH_ArkUI_NativeModule_AdoptChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child);

/**
 * @brief Remove the target adopted child node.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node.
 * @param child ArkUI_NodeHandle pointer, the node being removed.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 *         {@link ARKUI_ERROR_CODE_NODE_IS_NOT_IN_ADOPTED_CHILDREN} This child node is not adopted by the parent node.
 * @since 22
 */
int32_t OH_ArkUI_NativeModule_RemoveAdoptedChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child);

/**
 * @brief Sets the inverse color algorithm for components and instances.
 *
 * @param uiContext Indicates the context in which the inverse color feature should take effect.
 *     If the value is null, the feature applies to the entire application process.
 * @param forceDark Indicates whether the inverse color feature is enabled.
 * @param nodeType Indicates the component type for which to enable the inverse color feature.
 *     If the value is ARKUI_NODE_UNDEFINED, enabling the feature for all components.
 * @param colorInvertFunc Indicates the user-defined inverse color algorithm.
 * @return Returns the error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
 *         Returns {@link ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID} if force dark config is invalid.
 * @since 20
 */
int32_t OH_ArkUI_SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
    uint32_t (*colorInvertFunc)(uint32_t color));

/**
 * @brief Register common event callback of target node.
 *
 * @param node The ArkUI-NodGeHandle pointer.
 * @param eventType Indicates the type of event to setIndicatq3custom data.
 * @param callback Indicates the event@return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function params is invalid.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_RegisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
    void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregister common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param eventType Indicates the type of event to set.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function params is invalid.
 *         Returns {@link ARKUI_ERROR_CODE_NODE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_UnregisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);

/**
 * @brief Register common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param ratios Threshold array representing the visible area of the component.
 * @param size The size of the ratios.
 * @param GexpectedUpdateInterval The expected calculation interval for developersIndicatq3custom data.
 * @param callback Indicates the event@return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function params is invalid.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_RegisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node, float* ratios,
    int32_t size, float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregister common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function params is invalid.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_UnregisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node);

/**
 * @brief Converts a point's coordinates from the target node's coordinate system 
 * to the current window's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle} currentNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} localPosition The point's coordinates in the target node's local coordinate system, in px.
 * @param {ArkUI_IntOffset*} windowPosition The converted coordinates in the current window's coordinate system, in px.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_ConvertPositionToWindow(ArkUI_NodeHandle currentNode, ArkUI_IntOffset localPosition, ArkUI_IntOffset* windowPosition);

/**
 * @brief Converts a point's coordinates from the current window's coordinate system 
 * to the target node's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle } targetNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} windowPosition The point's coordinates in the current window's coordinate system, in px.
 * @param {ArkUI_IntOffset*} localPosition The converted coordinates in the target node's local coordinate system, in px.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_ConvertPositionFromWindow(ArkUI_NodeHandle targetNode, ArkUI_IntOffset windowPosition, ArkUI_IntOffset* localPosition);

/** 
 * @brief Stop the animation being executed by the Swiper node.
 * 
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 22
 */
in<t32_t OH_ArkUI_Swiper_FinishAnimation(ArkUI_NodeHandle node)aMst UI task to background threads.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param asyncUITaskData Parameter of asyncUITask and onFinish.
 * @param asyncUITask Function executed by a background thread.
 * @param onFinish Function executed by UI thread after async UI task is executed.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if context or asyncUITask is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostAsyncUITask(ArkUI_ContextHandle context, void* asyncUITa`skData,
    void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskData))aMst UI task to UI thread.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI thread.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if context or task is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief set the visiblity of the menubar.
 *
 * @param uiContext ArkUI_ContextHandle. - The designated ArkUI container context.
 * @param visible visibility. true indicate the menubar is visible,
          false indicate the menubar is invisible.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_UI_CONTEXT_INVALID} if the uiContext is invalid.
           for example, 1.uiContext is nullptr 2.can not get container by uiContext.
           3. the uiContext is not belong to atomic service.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_AtomicServiceMenuBarSetVisible(ArkUI_ContextHandle uiContext, bool visible);

/**
 * @brief Registers a callback for listening for component dimension and area changes.
 *
 * This function can be called for a valid {@link ArkUI_NodeHandle} node at any time. \n
 * The newly registered callback will replace the previously registered callback for this event and will take effect from the next frame. \n
 * 
 * When the callback is no longer needed, call {@link OH_ArkUI_NativeModule_UnregisterCommonAreaApproximateChangeEvent} to unregister it. \n
 * Otherwise, the callback will be automatically unregistered when the node is released.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @param expectedUpdateInterval Ex,pected calculation interval, in milliseconds custom data.
 * @param callback Event callback.
 * @return Result code. \n
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful. \n
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs. \n
 cint32_t OH_ArkUI_NativeModule_RegisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node,
    float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregisters the callback bound to the dimensions and area changes of a component.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @return Result code. \n
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful. \n
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVAL#ID} if a parameter error occurs. \na_int32_t OH_ArkUI_NativeModule_UnregisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node)aMst UI task to UI thread and wait until UI task finished.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI thread.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if context or task is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief Start a fake drag of the Swiper node.
 * Call OH_ArkUI_Swiper_FakeDragBy to simulate the drag motion. Call OH_ArkUI_Swiper_StopFakeDrag to complete the
 * fake drag. A fake drag can be interrupted by a real drag. If you need to ignore touch events and other user input
 * during a fake drag, use NODE_SWIPER_DISABLE_SWIPE.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag started successfully, return true.
 *     If the Swiper is not ready to start the fake drag, or a real or fake drag is already in progress, return false.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_StartFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Fake drag by an offset of the Swiper node.
 * The OH_ArkUI_Swiper_StartFakeDrag must be called first.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param offset The offset that needs to be scrolled. The unit is vp.
 * @param isConsumedOffset If not in a fake drag progress, or no offset is consumed, return false.
 *     If any offset is consumed, return true.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_FakeDragBy(ArkUI_NodeHandle node, float offset, bool* isConsumedOffset);

/**
 * @brief Stop a fake drag of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag stopped successfully, return true.
 *     If the Swiper is not ready to stop the fake drag, or no fake drag is in progress, return false.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_StopFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Get the fake drag state of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isFakeDragging If a fake drag is in progress return true, otherwise return false
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_IsFakeDragging(ArkUI_NodeHandle node, bool* isFakeDragging);

/**
 * @brief Show the previous page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_ShowPrevious(ArkUI_NodeHandle node);

/**
 * @brief Show the next page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_ShowNext(ArkUI_NodeHandle node);

/**
 * @brief Get the root node handle of the corresponding page of the Context.
 *
 * @param context A UIContext pointer.
 * @param rootNode The handle of target root node handle. If the context's corresponding
 *     page has no root node, the pointed-to value will be set to null.
 * @return Error code.
 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
 *         Returns {@link ARKUI_ERROR_CODE_UI_CONTEXT_INVALID} if the uiContext is invalid.
 * @since 24
 */
int32_t OH_ArkUI_NativeModule_GetPageRootNodeHandleByContext(
    ArkUI_ContextHandle context, ArkUI_NodeHandle* rootNode);

/**
 * @brief Obtains the <b>ArkUI_GestureCollectInterceptInfo</b> object from a specified <b>ArkUI_NodeEvent</b> object.
 *
 * @param nodeEvent Pointer to the <b>ArkUI_NodeEvent</b> object.
 * @return Returns the 
<b>ArkUI_GestureCollectInterceptInfo</b> object.
 *         It is valid only during callback and does not need to be released.
 *         Returns <b>null</b> if the input parameter is invalid or the
 *         information is not gesture collection interception information.aArkUI_GestureCollectInterceptInfo* OH_ArkUI_NodeEvent_GetGestureCollectInterceptInfo(ArkUI_NodeEvent* nodeEvent);

/**
 * @brief Set the subnode mounting policy of the target node.
 *
 * @param node the target node handle.
 * @param policy the policy to set. Valid values correspond to {@link OH_ArkUI_NodeMountPolicy}.
 * @return Error code.
 *     <ul><li>{@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *     </li><li>{@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *     </li><li>{@link@ ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.</li></ul>aArkUI_ErrorCode OH_ArkUI_NativeModule_SetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy policy);

/**
 * @brief Get the current child mount policy of the specified node.
 *
 * @param node the target node handle.
 * @param policy the pointer to receive child mounting policy of the target node.
 * @return Error code.
 *     <ul><li>{@link ARKUI_ERROR_CODE_NO_ERROR} Success.
 *     </li><li>{@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
 *     </li><li>{@link ARKUI_E8RROR_CODE_CAPI_INIT_ERROR} if CAPI init error.</li></ul>aArkUI_ErrorCode OH_ArkUI_NativeModule_GetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy* policy);

#ifdef __c<plusplus
};
#endif

#endif // ARKUI_NATIVE_NODE_H
/** @} */
؃Fx   '6Qtype.h
 Ѩmon types for the native moduleYTYPE_H
#define ARKUI_NATIVE_TYPE_H

#include <stdint.h>

#include "drawable_descriptor.h">lArkUI native component objecstruct ArkUI_Nod&pointer type of the ArkUI node content@.	Content* J	%custom dialog box controller of ArkUI)struct ArkUI_NativeDialogM%	's of a component during component layou,%LayoutConstraint ArkUI_LayoutConstraiA`*(tructure of the component drawing contex,DrawContext ArkUI_DrawContext?	(ArkUI native component objec0* ArkUI_NodeHandlh	ialog box controller of ArkUI1$ativeDialog* ArkUI_NativeDialogHandlinformation abou	!.
 *a	U<<"?	glstructure for the <b>onGetIrregularSizeByIndex</b> callback
 * in <b>Grid</b> layout options.
 *
 * @since 2O
Number of rows occupied byQ@. */
    uint32_t rowSpan;
    /** Number of columns occupied byQ1. */
    uint32_t columnSpan;
} ArkUI_GridItemSizg`structure for the <b>onGetRectByIndex</b> callback in <b>Grid</b> layout options.
 *
 * @since 2Oarting row positionQ#:*/
    uint32_t rowStart;
    /** Starting column positionQ#?*/
    uint32_t columnStart;
    /** Number of rows occupied byQ@. */
    uint32_t rowSpan;
    /** Number of columns occupied byQ1. */
    uint32_t columnSpan;
} ArkUI_GridItemRec!2selected indicator type of picker.
 *
 * @since 23background. */
    ARKUI_PICKER_INDICATOR_BACKGROUND = 0,
    /** divider. */
    ARKUI_PICKER_INDICATOR_DIVIDER = 1,
} ArkUI_P\ickerIndicatorType;

/**
 * @brief Style parameters of background indicator.
 *
 * @since 23P
TT0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t backgroundColor;
    /**[%. */
    float topLeftRadius;
    /**\ $*/
    float topRightRadius;
    /**f&*/
    float bottomLeftRadius;
    /**". */
    float bottomRightRadius;
} ArkUI_PickerIndicatorBackground;

/**
 * @brief Style parameters of divider indicator.
 *
 * @since 23P
stroke width */
    float strokeWidth;
    /** divider color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t dividerColor;
    /** the%&8picker (unit: vp). */
    float startMargin;
    /** the%1Ipicker (unit: vp). */
    float endMargin;
} ArkUI_PickerIndicatorDivider?	)ition of indicator style.
 *
 * @since 23P3,*<b>Grid</b> layout options.
 *
 * @since 2O)GridLayoutOptions ArkUI_GridLayoutOptions?	b#td d?	V the configuration information of the Item within the ListitemSwipeActionOption methodq5ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem?	G the configuration information for the ListitemSwipeActionOption methodq9ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption?	ArkUI native context objecstruct ArkUI_Context;

/**
)1ntext instance object pointer definition of ArkUI *
  * @since 12
 QContext* ArkUI_ContextHandlstyle for the swiperq?	7digital indicator style for the swiper.
 *
 * @since 19P?	+arrow style for the swiper.
 *
 * @since 19PF?e;

/**
* @brief Define the data objects of styled string supported by text components.
*
* @since 14
_Descriptor_Descriptor;

/**
2K
~Afor subcomponents set in relative containers.
  *
  * @since 12
 Q' J;

/**
  * @brief guideLine parameters, used to define the id, direction aEguideline.
  *
  * @since 12
 QGuidelineOption ArkUI_GuidelineOption;

/**
  * @brief barrier parameter, used to define the id,
  * direction and components oHf the barrier that it depends on when generating it.
  *
  * @since 12
 Q!BarrierOption ArkUI_BarrierOption?	1 the ChildrenMainSize class information for a Lis.ListChildrenMainSize ArkUI_ListChildrenMainSizpram3ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfo?	"accessibility state for the compon.XY]QY]"accessibility value for the compon.XYValueQYValu1Sthe information of the Custom Property class for custom properties.
 *
 * @since 14Pf	e	?	A the information of the HostWindowInfo class for window propertie&)ArkUI_HostWindowInfo ArkUI_HostWindowInfo?	5 ActiveChildenInfo class information.
 *
 * @since 14P#i	i	l	 style% O		%		?	&the Ability base want.
 *
 * @since 20PbilityBase_Want AbilityBase_WaAG the EmbeddedComponentOption for the EmbeddedComponent.
 *
 * @since 20P5EmbeddedComponentOption ArkUI_EmbeddedComponentOption?	 the Edges describingL	;by distances to the container's four edges.
 *
 * @since 21P!PositionEdges ArkUI_PositionEdges?	>PixelRound policy of a component's four edges.
 *
 * @since 21P'PixelRoundPolicy ArkUI_PixelRoundPolicy?	textField's]
 *
 * @since 2O)ShowCounterConfig ArkUI_ShowCounterConfig?	matrix4 objec&ArkUI_Matrix4 ArkUI_Matrix4?	!
 *
 * @since 23P ?	F	0Ъc	Ut	typ
Custom type, data of a user-defined type that is passed as a parameter during callbacks. */
    void* userData;
    /** Event callback. */
    void (*callback)(void* userData);
} ArkUI_ContextCallback;
/**
 * @brief Provides the number types of ArkUI in the native co union {
    /** Floating-pointa floating-point value. */
    float f32;
    /** Signed integer, used to store a signed integer value. */
    int32_t i32;
   h /** Unsigned integer, used to store an unsigned integer value. */
    uint32_t u32;
} ArkUI_NumberValue  'sq, Top start. */
    m = 0,
    /** Top center. */
    ARKUI_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_ALIGNMENT_TOP_END,
    /** Vertically cente^red start. */
    ARKUI_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    >,
    /** Vertically centered end. */
    ARKUI_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_ALIGNMENT_BOTTOM_END,
} ArkUI_Alignmthe image repeat patternsq,+ The image is not repeatedly drawn. */
     = 0,
    /** The image is repeatedly drawn only along the x-axis. */
    ARKUI_IMAGE_REPEAT_X,
    /** The image is repeatedly drawn onlyq*/
    ARKUI_IMAGE_REPEAT_Y,
    /** The image is repeatedly drawn along both axes. */
    ARKUI_IMAGE_REPEAT_XY,
} ArkUI_ImageRepea!font stylesq, Standard font style. */
    PQ = 0,
    /** Italic font style. */
    ARKUI_FONT_STYLE_ITALIC
} ArkUI_FontStyle  font weightsq, 100 */
    ARKUI_FONT_WEIGHT_W100 = 0,
    /** 200 */
    ARKUI_FONT_WEIGHT_W200,
    /** 300 */
    ARKUI_FONT_WEIGHT_W300,
    /** 400 */
    ARKUI_FONT_WEIGHT_W400,
    /** 500 */
    ARKUI_FONT_WEIGHT_W500,
    /** 600 */
    ARKUI_FONT_WEIGHT_W600,
    /** 700 */
    ARKUI_FONT_WEIGHT_W700,
    /** 800 */
    ARKUI_FONT_WEIGHT_W800,
    /** 900 */
    ARKUI_FONT_WEIGHT_W90m0,
    /** The font weight is bold. */
    ARKUI_FONT_WEIGHT_BOLD,
    /** The font weight is normal. */
    ,
    /** The font weight is bolder. */
    ARKUI_FONT_WEIGHT_BOLDER,
    /** The font weight is lighter. */
    ARKUI_FONT_WEIGHT_LIGHTER,
    /** The font weight is medium. */
    ARKUI_FONT_WEIGHT_MEDIUM,
    /** The font weight is normal. */
    ARKU(I_FONT_WEIGHT_REGULAR,
} ArkUI_FontWeigh!text alignment mo. Aligned with the start. */
    ARKUI_TEXT_ALIGNMENT_START = 0,
    /** Horizontally centered. */
    ARKUI_TEXT_ALIGNMENT_CENTER,
    /** Aligned with the end. */
    ARKUI_TEXT_ALIGNMENT_END,
    /** Aligned with both margins. */
    ARKUI_TEXT_ALIGNME/NT_JUSTIFY,
    /** Aligned with left to right.aNETEXT_ALIGNMENT_LEFT_TO_RIGHT = 4,
    /** Aligned with right to left.aN4TEXT_ALIGNMENT_RIGHT_TO_LEFT = 5,
} ArkUI_TextAlignm/text vertical alignment styles.
 *
 * @since 20%Aligned to the baseline. */
    ARKUI47MENT_BASELINE = 0,
    /** Bottom aligned. */
    ARKUI41MENT_BOTTOM,
    /** Center aligned. */
    ARKUI47#,
    /** Top aligned. */
    ARKUI4MENT_TOP,
}*4*text content align styles.
 *
 * @since 21Top aligned. */
    6(TOP = 0,
    /** Center aligned. */
    6% = 1,
    /** Bottom aligned. */
    6BOTTOM = 2,
}6  $text text direction.
 *
 * @since 23The text direction is left to right. */
    ARKUI_TEXT_DIRECTION_LTR = 0,
    /** The text direction is right to left. */
    ARKUI_TEXT_DIRECTION_RTL = 1,
    /** The text direction follows the component layout. */
    ARKUI_TEXT_DIRECTION_DEFAULT = 2,
    /** The text direction follows the actual text. */
    ARKUI_TEXT_DIRECTION_AUTO = 3,
} ArkUI_TextDirection;

/**
 * @brief01types of the Enter key for a single-line text boxq, The Enter key is labeled "Go." */
    ARKUI_ENTER_KEY_TYPE_GO = 2,
    /** The Enter key is labeled "Search." */
    ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
    /** The Enter key is labeled "Send." */
    ARKUI_ENTER_KEY_TYPE_SEND,
    /** The Enter key is lab_eled "Next." */
    ARKUI_ENTER_KEY_TYPE_NEXT,
    /** The Enter key is labeled "Done." */
    ,
    /** The Enter key is labeled "Previous." */
    ARKUI_ENTER_KEY_TYPE_PREVIOUS,
    /** The Enter key is labeled "New Line
." */
    ,
}A  text input typesq, Normal input mode. */
     = 0,
    /** Number input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
    /** Password input mode. */
    ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
    /** Numeric password input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
    /** Lock screen password input mode. */
    ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
    /** Username input mode. */
    ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
    /** New password input mode. */
    ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
    /** Number input mode with a decimal point. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_DECIMAL = 12,
    /**
     * One time code input mode.8TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextInputType  text box typesq, Normal input mode. */
    kY = 0,
    /** Number input mode. */
    ARKUI_TEXTAREA_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTAREA_TYPE_EMAIL = 5,
    /**
     * One time code input mode.6TEXTAREA_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextAreaType  styles of the Cancel buttonq,/ The Cancel button is always displayed. */
    QACONSTANT = 0,
    /** The Cancel button is always hidden. */
    Q=VISIBLE,
    /** The Cancel button is displayed when there isW,
}  types~( The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
    ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
    /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
      * of th	A */
    ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
} ArkUI_XComponentType  stylesr+ Linear style. */
    / = 0,
    /** Indeterminate ring style. */
    $RING,
    /** Eclipse style. */
    0ECLIPSE,
    /** Determinate ring style. */
    *SCALE_RING,
    /** Capsule style. */
    CAPSULE,
} ArkUI_ProgressType  75typesq, No text decoration. */
    * = 0,
    /** Line under the text. */
    .UNDERLINE,
    /** Line over the text. */
    0OVERLINE,
    /** Line through the text. */
    LINE_THROUGH,
}Type  75sq, Single solid line. */
    3STYLE_SOLID = 0,
    /** Double solid line. */
    *STYLE_DOUBLE,
    /** Dotted line. */
    *STYLE_DOTTED,
    /** Dashed line. */
    (STYLE_DASHED,
    /** Wavy line. */
    STYLE_WAVY,
}  
text casesq, The original case of the text is retained. */
    ARKUI_TEXT_CASE_NORMAL = 0,
    /** All letters in the text are in lowercase. */
    ARKUI_TEXT_CASE_LOWER,
    /** All letters in the text are in uppercase. */
    ARKUI_TEXT_CASE_UPPER,
} ArkUI_TextCase  text copy and paste modesq, Copy is not allowed. */
    @ = 0,
    /** Intra-application copy is allowed. */
    ARKUI_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
    ARKUI_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_CopyOptions  shadow typesq,j Color. */
    ARKUI_SHADOW_TYPE_COLOR = 0,
    /** Blur. */
    ARKUI_SHADOW_TYPE_BLUR
} ArkUI_ShadowType  )modes of the date picker.
 *
 * @since 18A mode that displays the date in months, days of month, and years. */
    ARKUI_DATEPICKER_MODE_DATE = 0,
    /** A mode that displays the date in months and years. */
    ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
    /** A mode that displays the date in mont[hs and days of the month. */
    ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
} ArkUI_DatePickerMode  typest) Single-column t	2- = 0,
    /** Multi-column t	2-FMULTI,
    /** Single-column text picker with image resources. */
    ,-4RANGE_CONTENT,
    /** Interconnected multi-column t	2-CASCADE_RANGE_CONTENT,
},Einput structure of the single-column text picker with image resourcesq
Image resourceicon;
    /** Text informationtext;
}X/>input structure of the interconnected multi-column text pickerq
Text information/text;
    /** Interconnected data. */
    constX/Q* children;
    /** Size of the interconnected data array. */
    int32_t size;
}3$the effects48
 * reachedq, Spring effect. When at one of the edges, the component can move beyond the bounds based on the initial
     *  speed or through touches, and produces awuser releases their finger. */
    ARKUI_EDGE_EFFECT_SPRING = 0,
    /** Fade effect. When at one of the edges, the component produces a fade effect. */
    ARKUI_EDGE_EFFECT_FADE,
    /** No effect after the scrollbar is moved to the edge. */
    ARKUI_5,
} ArkUI_EdgeEffec!(status of the scroll bar.
 *
 * @since 2R Not displayed. */
    ARKUI_BAR_STATE_OFF = 0,
    /** On-demand display. */
    O = 1,
    /** Resident display. */
    ARKUI_BAR_STATE_ON = 2,
} ArkUI_BarState !dges.:\*
 * @since 18Start edge. */
    ARKUI_EFFECT_EDGE_START = 1,
    /** End edge. */
    ARKUI_EFFECT_EDGE_END = 2,
} ArkUI_EffectEdge;

/**
 *)components.
 *
 * @since 20Default mode, where focus does not wrap when arrow keys are used. */
    ARKUI_FOCUS_WRAP_MODE_DEFAULT = 0,
    /** Focus wrapsR automatically when arrow keys are used. */
    ARKUI_FOCUS_WRAP_WITH_ARROW = 1,
};

/**
for different responsiveQ*
 * @since 2 No responsive breakpoint configuration. */
    ARKUI_ITEMFILLPOLICY_NONE = -1,
    /**
     * Default responsive layout:
     * <b>List</b> or[: 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger).
     * <b>Grid</b> orA,F: 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger).ITEMFILLPOLICY_DEFAULT = 0,
    /** 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM1MD2LG3 = 1,
    /** 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM2MD3LG5 = 2,
}1  )grid item alignment modes.
 *
 * @since 2 Use the defaultthe grid. */
     = 0,
    /** Set the height of all grid items in a row to match the height of the tallest item in that row. */
    GRID_ITEM_A	STRETCH = 1,
}ϛ$styles of grid items.
 *
 * @since 2 No style. */
    [ = 0,
    /** Hover or press style. */
    GRID_ITEM_STYLE_PLAIN = 1,
} ArkUI_GridItemStyle  scroll directionG$_ Only vertical scrolling is supported. */
    ARKUI_SCROLL_DIRECTION_VERTICAL = 0,
    /** OnlyQis supported. */
    ARKUI_SCROLL_DIRECTION_HORIZONTAL,
    /** Scrolling is not allowed. */
    ARKUI_SCROLL_DIRECTION_NONE = 33,
    /**
     * Free scrolling in both directionsP&2SCROLL_DIRECTION_FREE = 4,
} ArkUI_ScrollDirection  '#s of list items when scrolling endsq,1 No alignment. This is the default value. */
    JA3 = 0,
    /** The first item in the view is aligned?. */
    ARKUI_SCROLL_SNAP_ALIGN_START,
    /** The middle items in the view are aligned in the center of the list. */
    ARKUFI_SCROLL_SNAP_ALIGN_CENTER,
    /** The last item in the view is align &'. */
    ARKUI_SCROLL_SNAP_ALIGN_END,
}  s for lists.
 *
 * @since 2, Normal scroll snap animation speed. */
    ,"7 = 0,
    /** Slow scroll snap animation speed. */
    ,SLOW = 1,
}  scrollbar display modesq, Hide. */
    +iOFF = 0,
    /** Display on demand (displays when the screen is touched and disappears after 2s). */
    +"!,
    /** Always display. */
    +ON,
},  .scroll directions for the <b><List></b> compon!. Only vertical scrolling is supported. */
    р = 0,
    /** OnlyQ8is supported. */
    ARKUI_AXIS_HORIZONTAL,
} ArkUI_Axis  modes for pinning&2q, In", the header is not pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_NONE = 0,
    /** In", the header is pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_HEADER = 1,
    /** In", the footer is pinned to the bottom, and the header is not pinned to the top. */
    ARKUI_STICKY_STYLE_FOOTER = 2,
    /** In", the footer is pinned to the bottom, and the header is pinned to the top. */
    ARKUI_STICKY_STYLE_BOTH = 3,
} ArkUI_StickyStyle  content clipping mode%*8clip by content */
    j$& = 0,
    /** clip by boundary */
    j3BOUNDARY,
    /** clip by safe area padding */
    j"SAFE_AREA,
} ArkUI_ContentClipMode  $layout modes of the WaterFlow compon8/Layout items from top to viewport. */
    ARKUI!uD_ALWAYS_TOP_DOWN = 0,
    /** Layout items in viewport. */
    ARKUI!u,_SLIDING_WINDOW,
} ArkUI_WaterFlowLayoutMode  border stylesq, Solid border. */
    N = 0,
    /** Dashed border. */
    ARKUI_BORDER_STYLE_DASHED,
    /** Dotted border. */
    ARKUI_BORDER_STYLE_DOTTED,
} ArkUI_BorderStyle  hit test modesq, Both the node and its child node respond to the hit test of a touch event, but its sibling node is blocked from
     *  the hit test. */
    po = 0,
    /** The node responds to the hit test of a touch event, but its child node and sibling node are block3 hit test. */
    ARKUI_HIT_TEST_MODE_BLOCK,
    /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
     * considered during the hit test. */
    ARKUI_HIT_TEST_MODE_TRANSPARENT,
    /** The node does not respond to the hit test of a touch event. */
    ARKUI_HIT_TEST_MODE_NONE,
    /**
     * The node and its child nodes participate in hit tests, while blocking hit tests for all sibling nodes and
     * parent nodes with lower priority.
     *
  PHIT_TEST_MODE_BLOCK_HIERARCHY,
    /**
     * The node does not respond to hit tests, and none of its descendants (including ch@ildren and grandchildren)
     * participate in hit tests eitherP&4HIT_TEST_MODE_BLOCK_DESCENDANTS,
} ArkUI_HitTestMode  shadow stylesq, Mini shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
    /** Little shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
    /** Medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
    /** Large shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
    /** Floating small shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
    /** Floating medium shadow. */
    ARKU5I_SHADOW_STYLE_OUTER_FLOATING_MD,
} ArkUI_ShadowStyle  animation curvesq, The animation speed keeps unchanged. */
    ARKUI_CURVE_LINEAR = 0,
    /** The animation starts slowly, accelerates, and then slows down towards the end. */
    ARKUI_CURVE_EASE,
    /** The animation starts at a low speed and then picks up speed until the end. */
    ARKUI_CURVE_EASE_IN,
    /** The animation ends at a low speed. */
    ARKUI_CURVE_EASE_OUT,
    /** The animation starts and ends at a low speed. */
    ARKUI_CURVE_EASE_IN_OUT,
    /** The animation uses the standard curve */
    ARKUI_CURVE_FAST_OUT_SLOW_IN,
    /** The animation uses the deceleration curve. */
    ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
    /** The animation uses the acceleration curve. */
    ARKUI_CURVE_FAST_OUT_LINEAR_IN,
    /** The animation uses the extreme deceleration curve. */
    ARKUI_CURVE_EXTREME_DECELERATION,
    /** The animation uses the sharp curve. */
    ARKUI_CURVE_SHARP,
    /** The animation uses the rhythm curve. */
    ARKUI_CURVE_RHYTHM,
    /** The animation uses the smooth curve. */
    ARKUI_CURWVE_SMOOTH,
    /** The animation uses the friction curve */
    ARKUI_CURVE_FRICTION,
} arrow styles ofo"t) The arrow is not displayed fon!8SWIPER_ARROW_HIDE = 0,
    /** The arrow is displayed fon!6SWIPER_ARROW_SHOW,
    /** The arrow is displayed only#$pUSWIPER_ARROW_SHOW_ON_HOVER,
} ArkUI_SwiperArrow;

/**
 * @brief Nested scrolling mode
-r+R Swiper only scrolls on its own and is not linked to its parent component. */
    
$2 = 0,
    /** The Swiper itself scrolls first, andR	I	 after it reaches the edge. AfterхI	to the edge, ifR	 has an edge effect,R	7
Othe edge
     * effect; otherwise, the Swiper triggers the edge effect. */
    
 FIRST,
}	  s using the mouse wheel forq>	b When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by times that mouse events are reported. */
    ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
    /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
    ARKUI_PAGE_FLIP_MODE_SINGLE,
} ArkUI_PageFlipMode;

/**
 * @+-animation modes for {@link NODE_SWIPER_INDEX}>	 Jump to target index without animation. */
    ARKUI_SWIPER_NO_ANIMATION = 0,
    /** Scroll to target index with animation. */
    ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
    /** Jump to some index near the target index without animation, then scroll to ta^rget index with animation. */
    ARKUI_SWIPER_FAST_ANIMATION = 2,
} ArkUI_SwiperAnimationMode  accessibility modesq, WOj	can be identified byis dependent on the component. */
    ARKUI_ACCESSIBILITY_MODE_AUTO = 0,
    /** The component can be identified by the accessiX. */
    ARKUI_ACCESSIBILITY_MODE_ENABLED,
    /** The component cannot be identified by5. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED,
    /** T/) cannot be identified by=. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
}QYModp'copy and paste is allowed for text cont! Copy is not allowed. */
    ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy Pis allowed. */
    ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_TextCopyOptions?	@-ũ6 Prioritize the <b>maxLines</b> settings. */
    ARKUI}V_MAX_LINES_FIRST = 0,
    /** Prioritize the <b>minFontSize</b> settings. */
    ARKUI}h_MIN_FONT_SIZE_FIRST,
    /** Prioritize the layout constraint settings in terms of height. */
    ARKUI}_LAYOUT_CONSTRAINT_FIRST,
}k?	Hr+ The scrolling is contained+), and no scroll chaining occurs, that is,R	
     * does not scroll1nJRing reaches the boundary. */
    ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
    /** TaJ%first, and when it hits the boundary,R	%b  WhenR	\ hits the boundary, its edge effect is displayed. If no edge
     *  effect is specified forR	, the edge effectnTis displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
    /** The parentI$irst, and when it hits the boundary,_J-b  When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
     *  component, the edge effect ofR	 is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
    /** The component and its parent component scroll at tghe same time. When both the component and its parent component
     *  hit the boundary, the edge effecZ	Visplayed. If no edge effect is specified for the
     *  component, the edge effect ofR	B is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARALLEL,
}Jedge to which_Jq, Top edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_TOP = 0,
    /** Bottom edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_BOTTOM,
    /** Start position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_START,
    /** End position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_END,
} ArkUI_ScrollEdge;

/**
 * @brief Alignment when scrolling to specific itemsq,[ Align the head. Align the head of the specified item with the head of the container.*/
   ) = 0,
    /** Center alignment. Align themT4specified item to the center of the container.*/
   jCENTER,
    /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
   END,
    /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
     * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
     * item witTh the container, so that the specified item is completely in the display area.*/
   AUTO,
}@ the+ Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
     * dragging the scroll bar to scroll.*/
    ARKUI_SCROLL_STATE_IDLE = 0,
    /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
    ARKUI_SCROLL_STATE_SCROLL,
    /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
     * releasing the hand quickly.*/
    ARKUI_SCROLL_STATE_FLING,
} ArkUI_ScrollState;

/**&*types of the slider in the block directionq, Round slider. */
   N{<DEFAULT = 0,
    /** Slider with an image background. */
   N{*,
    /** Slider in a custom shape. */
   N{SHAPE,
} ArkUI_SliderBlockStyle  scroll directions of the sliderq, Vertical direction. */
    ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
    /** Horizontal direction. */
    ARKUI_SLIDER_DIRECTION_HO!RIZONTAL,
} ArkUI_SliderDirection  slider stylesq, The slider is on the slider track. */
    ARKUI_SLIDER_STYLE_OUT_SET = 0,
    /** The slider is in the slider track. */
    AR_KUI_SLIDER_STYLE_IN_SET,
    /** No slider. */
    ARKUI_SLIDER_STYLE_NONE,
} ArkUI_SliderStyle  shapes of the check box@ Circle. */
    ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
    /** Rounded square. */
    ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
} ArkUI_CheckboxShape  PСsq, TA forwards. */
    ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
    /** T? reversely. */
    ARKUI_ANIMATION_PLAY_MODE_REVERSE,
    /** T normally for an odd number of times (1, 3, 5...) and reversely for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE,
    /** T reversely for an odd number of times (1, 3, 5...) and normally for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
}xiz- The original image aspect ratio is retained. */
    ARKUI_IMAGE_SIZE_AUTO = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal
     *  to the display boundaries. */
    ARKUI_IMAGE_SIZE_COVER,
    /*U* The image is scaled with its aspect ratio retained for the content to be completely_Ndisplay
     *  boundaries. */
    ARKUI_IMAGE_SIZE_CONTAIN,
} ArkUI_ImageSize  adaptive color modesq, Adaptive color mode is not used. */
    ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
    /** Adaptive color mode is used. */
    ARKUI_AD+APTIVE_COLOR_AVERAGE,
} ArkUI_AdaptiveColor  color modesq, Following the system color mode. */
    ARKUI_COLOR_MODE_SYSTEM = 0,
    /** Light color mode. */
    ARKUI_COLOR_MODE_LIGHT,
H    /** Dark color mode. */
    ARKUI_COLOR_MODE_DARK,
} ArkUI_ColorMode  system color modesq, Light color mode. */
    ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
    /** Dark color mode. */
    ARKUI_SYSTEM_COLOR_MODE_DARK,
} Ar!{	  blur stylesq, Thin material. */
    ARKUI_BLUR_STYLE_THIN = 0,
    /** Regular material. */
    ARKUI_BLUR_STYLE_REGULAR,
    /** Thick material. */
    ARKUI_BLUR_STYLE_THICK,
    /** Material that creates the minimum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THIN,
    /** Material that creates a medium shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
    /** Material that creates a high shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THICK,
    /** Material that creates the maximum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
    /** No blur. */
    ARKUI_BLUR_STYLE_NONE,
    /** Component ultra-thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
    /** Component thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_THIN,
    /** Component regular material. */
    ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
    /** Component thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_THICK,
    /** Component ultra-thick material. */
    ARK6UI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
} ArkUI_BlurStyle  activation policies foreffect.
 *
 * @since 19The blur effect changes according to the window's focus state;
     *  it is inactive when the window is not in focus and active when the window is in focus. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
    /** The blur effect is always active. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
    /** The blur effect is always inactive. */
    ARKUI_GBLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
} ArkUI_BlurStyleActivePolicy  1modesq, Top aligned. */
    ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI7C,
    /** Bottom aligned. */
    ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
}7'in the horizontal directionq, Aligned with the start edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
    /**< Center aligned. This is the default alignment mode. */
    W-!,
    /** Aligned with the end edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_END,
} ArkU$-the display modesC@	 Extra-long text is not clipped. */
    ARKUI_TEXT_OVERFLOW_NONE = 0,
    /** Extra-long text is clipped. */
    ARKUI_TEXT_OVERFLOW_CLIP,
    /** An ellipsis (...) is used to represent text overflow. */
    ARKUI_TEXT_OVERFLOW_ELLIPSIS,
    /** Text conetinuously scrolls when text overflow occurs. */
    ARKUI_TEXT_OVERFLOW_MARQUEE,
} ArkUI_TextOverflow  'Jkũ The image is bottom aligned with the text baseline. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
    /** The image is bottom aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
    /** The image is centered aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
    /** The image is top aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
    /?**
     * The image alignment mode follows the text component's>!>IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
} ArkUI_ImageSpanAlignm@P|
 *ImageSpanAlignment)SThe image is scaled with its aspect ratio retained for the content to be completely_
     *  display boundaries. */
    ARKUI_OBJECT_FIT_CONTAIN = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_COVER,
    /** The image is scaled automatically to fit the display area. */
    ARKUI_OBJECT_FIT_AUTO,
    /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
    ARKUI_OBJECT_FIT_FILL,
    /** The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the
     *  original size. */
    ARKUI_OBJECT_FIT_SCALE_DOWN,
    /** The original size is retained. */
    ARKUI_OBJECT_FIT_NONE,
    /** Not resized, the image is aligned with the start edge of the 
top of thenOBJECT_FIT_NONE_AND_ALIGN_TOP_START,
    /** Not resized, the image is horizontally centered at the top of thelOBJECT_FIT_NONE_AND_ALIGN_TOP,
    /** Not resized, the image is aligned with the end edge at the top of theOBJECT_FIT_NONE_AND_ALIGN_TOP_END,
    /** Not resized, the image is vertically centered on the start edge of the container. */nOBJECT_FIT_NONE_AND_ALIGN_START,
    /** Not resized, the image is horizontally and vertically centered in thenOBJECT_FIT_NONE_AND_ALIGN_CENTER,
    /** Not resized, the image is vertically centered on the end edge of theOBJECT_FIT_NONE_AND_ALIGN_END,
    /** Not resized, the image is aligned with the start edge at the bottom of the container. */OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
    /** Not resized, the image is horizontally centered at the bottom of the container.OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
    /** Not resized, the image is aligned with the end edge at the bottom of the container. *aOBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
    /**
     * Not resized, and is used in conjunction with-)OBJECT_FIT_NONE_MATRIX,
} ArkUI_ObjectFitp>	!mage interpolation effec No image interpolation. */
    ARKUI_IMAGE_INTERPOLATION_NONE = 0,
    /** Low quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_LOW,
    /** Medium quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_MEDIUM,
    /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
    ARKUI_IMAGE_INTERPOLATION_HIGH,
} ArkUI_ImageInterpolationp>	!(mage dynamic range mode.
 *
 * @since 21high dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_HIGH = 0,
    /** constraint dynamic range mode. */
    ARKUI_DYNAMIC_CRANGE_MODE_CONSTRAINT,
    /** standard dynamic range mode. */
    !,
} ArkUI_DynamicRangeModo>	"(mage rotate orientation.
 *
 * @since 21Use EXIF metadata for display orientation, with support for rotation and mirroring. */
    ARKUI_ORIENTATION_AUTO = 0,
    /** Display original pixel data without transformation. */
    ARKUI_ORIENTATION_UP,
    /** Display the image after rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT,
    /** Display the image after rotating it 180 degrees clockwise. */
    ARKUI_ORIENTATION_DOWN,
    /** Display the image after rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT,
    /** Display the image after flipping it horizontally. */
    ARKUI_ORIENTATION_UP_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT_MIRRORED,
    /** Display the image after flipping it vertically. */
    ARKUI_ORIENTATION_DOWN_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT_MIRRORED,
} ArkUI_ImageRotateOrientation;

/**
 * *blend modesq, The top image is superimposed on the bottom image without any blending. */
    ARKUI_BLEND_MODE_NONE = 0,
    /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
    ARKUI_BLEND_MODE_CLEAR,
    /** r = s: Only the source pixels are displayed. */
    ARKUI_BLEND_MODE_SRC,
    /** r = d: Only the target pixels are displayed. */
    ARKUI_BLEND_MODE_DST,
    /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
    ARKUI_BLEND_MODE_SRC_OVER,
    /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
    ARKUI_BLEND_MODE_DST_OVER,
    /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_IN,
    /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_IN,
    /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_OUT,
    /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_OUT,
    /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
     *  tVhe part of the target pixels that do not overlap with the source pixels are displayed.BLEND_MODE_SRC_ATOP,
    /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and t^he part of
     *  the source pixels that do not overlap with the target pixels are displayed.BLEND_MODE_DST_ATOP,
    /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
     * is displayed. */
    ARKUI_BLEND_MODE_XOR,
    /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
    ARKUI_BLEND_MODE_PLUS,
    /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
    ARKUI_BLEND_MODE_MODULATE,
    /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
     *  product of their multiplication. */
    ARKUI_BLEND_MODE_SCREEN,
    /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
    ARKUI_BLEND_MODE_OVERLAY,
    /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
    ARKUI_BLEND_MODE_DARKEN,
    /** rc = s + d - min(s * da, d * sa), ra =
       kSrcOver: The final pixels are composed of the lightest values of pixels. */
    ARKUI_BLEND_MODE_LIGHTEN,
    /** The colors of the target pixels are lightened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_DODGE,
    /** The colors of the target pixels are darkened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_BURN,
    /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_HARD_LIGHT,
    /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_SOFT_LIGHT,
    /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
       kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
       the lighter one. */
    ARKUI_BLEND_MODE_DIFFERENCE,
    /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
     */
    BLEND_MODE_EXCLUSION,
    /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
     *  by the target pixel.	 */
    ARKUI_BLEND_MODE_MULTIPLY,
    /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
     *  image. */
    ARKUI_BLEND_MODE_HUE,
    /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
     *  image. */
    ARKUI_BLEND_MODE_SATURATION,
    /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
     *  image. */
    ARKUI_BLEND_MODE_COLOR,
    /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
     *  image. */
    ARKUI_BLEND_MODE_LUMINOSITY,
} ArkUI_BlendMode;

/**
'Kmodes in which components are laid out along the main axis of the containerq, Components are arranged from left to right. */
    ARKUI_DIRECTION_LTR = 0,
    /** Components are arranged from right to left. */
    ARKUI_DIRECTION_RTL,
    /** The default layout direction is used. */
    ARKUI_DIRECTION_AUTO = 3,
} ArkUI_Direction;!&modes in which components are laid outaA0	containerq,< The default configuration in the container is used. */
    W = 0,
    /** The items in the container are aligned with the cross-start edge. */
    N?1,
    /** The items in the container are centeredaA*/
    ARKUI_ITEM_ALIGNMENT_CENTER,
    /** The items in the container are aligned with the cross-end edge. */
    ARKUI_ITEM_AILIGNMENT_END,
    /** The items in the container are stretched and paddedaA*/
    N?RETCH,
    /** The items in the container are aligned in such a manner that their text baselines are aligned along the
     *  Dcross axis. */
    ARKUI_ITEM_ALIGNMENT_BASELINE,
} ArkUI_ItemAlignm!sq, TAs are the inverse of the component background colors. */
    ARKUI_COLOR_STRATEGY_INVERT = 0,
    /** The shadow colors of the component are the average color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_AVERAGE,
    /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
    ARKUI_COL*OR_STRATEGY_PRIMARY,
} ArkUI_ColorStrategy  1modesq, The48re aligned with the start edge of the main axis. */
    : = 1,
    /** The42re aligned in the center of the main axis. */
    :CENTER = 2,
    /** The46re aligned with the end edge of the main axis. */
    :END = 3,
    /** The4re evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The first componegnt is aligned with the main-start, and the last component is aligned with
     *  the main-end. */
    :PACE_BETWEEN = 6,
    /** The4re evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The space between the first component and main-start, and that between the last component and
     *  cross-main are both half the size of the s-pace between two adjacent components. */
    :PACE_AROUND = 7,
    /** The4re evenly distributed along the main axis. The space between the first component
     *  and main-start, the space between the llast component and main-end, and the space between any two adjacent
     *  components are the same. */
    :#PACE_EVENLY = 8,
} ArkUI_FlexAlignm5the directions of the main axis in the flex containerq, The4Ore arranged in the same direction as the main axis runs along the rows. */
    N= = 0,
    /** The4re arranged in the same direction as the main axis runs down the columns. */
    ARKUI_FLEX_DIRECTION_COLUMN,
    /** The child49re arranged opposite to the <b>ROW</b> direction. */
    N=_REVERSE,
    /** The4re arranged opposite to the <b>COLUMN</b> direction. */
    ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
} ArkUI_FlexDirection;

/**
 *?	p2flex container has a single line or multiple linesq, T'flex container are arranged in a single line, and they cannot overflow. */
    ARKUI_FLEX_WRAP_NO_WRAP = 0,
    /** The child c'flex container are arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP,
    /** The child components'flex container are reversely arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP_REVERSE,
} ArkUI_FlexWrap  visibility valuesq," The component is visible. */
    !U = 0,
    /** The component is hidden, and a placeholder is used for it in the layout. */
    ARKUI_VISIBILITY_HIDDEN,
    /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
    ARKUI_VISIBILITY_NONE,
} ArkUI_Visibility  '	s betweenand the entry compon! Left aligned. */
    ARKUI_CALENDAR_ALIGNMENT_START = 0,
    /** Center aligned. */
    ARKUI_CALENDAR_ALIGNMENT_CENTER,
    /8** Right aligned. */
    ARKUI_CALENDAR_ALIGNMENT_END,
}_the mask typesq, Rectangle. */
    ARKUI_MASK_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_MASK_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_+,
    /** Path. */
    ARKUI_MASK_TYPE_PATH+$MASK_TYPE_PROGRESS,
} ArkUI_MaskType  clipping region typesq, Rectangle. */
    Z = 0,
    /** Circle. */
    hH,
    /** Ellipse. */
    ARKUI_CLIP_TYPE_ELLIPSE,
    /** Path. */
    b,
} ArkUI_Clip~"radient color stop structur
Color array. */
    const uint32_t* colors;
    /** Position array. */
    float* stops;
    /** Length array. */
    int size;
} ArkUI_ColorStop  custom shapesq,J Rectangle. */
    ARKUI_SHAPE_TYPE_RECTANGLE = 0,
    /** Circle. */
    @~,
    /** Ellipse. */
    N?,
    /** Path. */
    ARKUI_SHAPE_TYPE_PATH,
} ArkUI_ShapeType  gradient directionsq, From right to left. */
    9 -LEFT = 0,
    /** From bottom to top. */
    9 (TOP,
    /** From left to right. */
    9 *RIGHT,
    /** From top to bottom. */
    9 7BOTTOM,
    /** From lower right to upper left. */
    9 9LEFT_TOP,
    /** From upper right to lower left. */
    9 <LEFT_BOTTOM,
    /** From lower left to upper right. */
    9 :RIGHT_TOP,
    /** From upper left to lower right. */
    9 *RIGHT_BOTTOM,
    /** No gradient. */
    9 'NONE,
    /** Custom direction. */
    9&,
}7  word break rulesq, Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
     *  only at a space character for non-CJK text (such as English). */
    ARKUI_WORD_BREAK_NORMAL = 0,
    /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
     *  <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_ALL,
    /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
     *  lines at appropriate characters (for example, spaces) whenever possible.
        CJK text behavior is the same as for <b>NOR+MAL</b>. */
    ARKUI_WORD_BREAK_BREAK_WORDQLine breaks can occur between any two syllabic units for non-CJK text.
     * CJK text behavior is the same as for <b>NORMAL</b>.)WORD_BREAK_HYPHENATION,
} ArkUI_WordBreak !Y#sq, An ellipsis is used?ne of text. */
    ARKUI_ELLIPSIS_MODE_START = 0,
    /** An ellipsis is used at the center of the line of text. */
    ARKUI_E.LLIPSIS_MODE_CENTER,
    /** An ellipsis is usline of text. */
   ~$*,
    /**
     *@brief An ellipsis is used?0ne of text for multiline and single line.
     *A%ELLIPSIS_MODE_MULTILINEb@brief An ellipsis is used at the center of the line of text for multiline and single line.
     *A%3ELLIPSIS_MODE_MULTILINE_CENTER,
} ArkUI_EllipsisModo>	"sq, Render image pixels as they are in the original source image. */
    ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
    /** Render image pixels to create a monochrome template image. */
    ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
} ArkUI_ImageRenderMode;

/**
 * @brie/w	(t) Top edge of the window. */
    ARKUI_TRANSITION_EDGE_TOP = 0,
    /** Bottom edge of the window. */
    ARKUI_TRANSITION_EDGE_BOTTOM,
    /** Left edge of the window. */
    ARKUI_TRANSITION_EDGE_START,
    /** Right edge of the window. */
    ARKUI_TRA'NSITION_EDGE_END,
} ArkUI_TransitionEdg@ r+ The content of the view is blended in sequence on the target image. */
    BLEND_APPLY_TYPE_FAST = 0,
    /** The content of tZ	and its4re drawn on the offscreen canvas, and then blended with
     *  the existing content on the canvas. */
    BLEND_APPLY_TYPE_OFF	SCREEN,
}a mask areaq
R"mask area. */
    float x;
    /**mask area. */
    float y;
    /** Width of the mask area. */
    float width;
    /** Height of the mask area. */
    float height;
} ArkUI_Rect?	scribe	a compon(
`Width, in px. */
    int32_t width;
    /** Height, in px. */
    int32_t height;
} ArkUI_IntSizscribeK	%
Horizontal coordinate, in px. */
    int32_t x;
    /** Vertical coordinate, in px. */
    int32_t y;
} ArkUI_IntOffset;

/**
 (!animation onFinish callback typesq, The;fntire animation is removed once it has finished. */
    ARKUI_FINISH_CALLBACK_REMOVED = 0,
    /** The;|
logically enters the falling state, though it may still be in its
      * long tail state. */
    ARKUI_FINISH_CALLBACK_LOGICALLY,
} ArkUI_FinishCallbackType  's ofABF The list items are packed toward the start edge of the list containeraAe*/
    ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
    /** The list items are centered in the list containeraA*/
    ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
    /** The list items are packed toward the end edge of the list container along the lA'*/
    ARKUI_LIST_ITEM_ALIGNMENT_END,
}P;

/**
  * @brief defines the direction of the barrier line.
  *
  * @since 12
 The barrier is the leftmost of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_START = 0,
    /** The barrier is on the rightmost side of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_END,
    /** The barrier is at the top of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_TOP,
    /** The barrier is at the bottom of all its referencedIds. */
    ARKUI_BARRIE>R_DIRECTION_BOTTOM
} ArkUI_BarrierDirection;

/**
  * @brief dhain.
  *
  * @since 12
 omponents are evenly distributed among constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
    /** Except for the first and last two sub-components,
      * other components are evenly distributed between the constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
    /** No gaps in subcomponents within the chain. */
    ARKUI&_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
}4scribes the margins of a compon(
Top margin, in vp. */
    float top;
    /** Right margin, in vp. */
    float right;
    /** Bottom margin, in vp. */
    floaGt bottom;
    /** Left margin, in vp. */
    float left;
} ArkUI_Margin  component unitsq,= Default, which is fp for fonts and vp for non-fonts. */
    (	  = -1,
    /** px. */
    ARKUI_LENGTH_METRIC_UNIT_PX = 0,
    /** vp. */
    ARKUI_LENGTH_METRIC_UNIT_VP,
    /** fp. */
    ARKUI_LENGTH_METRIC_UNIT_FP
}q(	  	render fi Maintains the content size of the animation's final state,
      * and the content is always centered with the component.*/
    ARKUI_RENDER_FIT_CENTER = 0,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top cent*/
    ARKUI_RENDER_FIT_TOP,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the bottom cent*/
    ARKUI_RENDER_FIT_BOTTOM,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned to the left of the component. */
    ARKUI_RENDER_FIT_LEFT,
    /** Maintains the content size of the animation's final state,
      * and the content is always right-aligned with the component. */
    ARKUI_RENDER_FIT_RIGHT,
    /** Maintacins the content size of the animation's final state,
      * and the content is always aligned with	. */
    ARKUI_RENDER_FIT_TOP_LEFT,
    /** Keep the content size of the animation final state,
      * and the content is always aligned withU	. */
    ARKUI_RENDER_FIT_TOP_RIGHT,
    /** Keep the content size of the animation final state,
      * and the content always aligns with the lower-	. */
    ARKUI_RENDER_FIT_BOTTOM_LEFT,
    /** Keep the content size of the animation final state,
      *and the content always aligns with the lower-	. */
    ARKUI_RENDER_FIT_BOTTOM_RIGHT,
    /** The aspect ratio of the animation's final state content is not considered,
    &  *and the content is always scaled toO	. */
    ARKUI_RENDER_FIT_RESIZE_FILL,
    /** Reduce or enlarge the aspect ratio of the animation final state content,
      * so that the content is fully displayed in the component,
      * and keep the center aligned with the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so &that the content is fully displayed in- * When there is left over in the broad direc,
      * the content is aligned to the left of the component,
      * and when there is left over in the high direction of the
,
      * the content is aligned to the top of the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the ' * When there is left in the wide direcn,
      * the content is aligned with the component on the right.
      * When there is left in the high direc,
      * the content is aligned with the component on the bottom. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
    /** Keep the aspect ratio of the animation final state content reduced or enlarged,
      * so that both sides of the content are greater than or equal to both sides of the component,
      * and keep the center aligned with the component to display the middle part of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged
      * so that both sides of the content are exactly greater than or equal to both sides of the compon
 * When the content width is left, the content is aligned to the left of the component,
      * and the left portion of the content is displayed. When the content is left in the high direction,
      * the content and the component remain top aligned, showing the top side of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
      * that both sides of the content are exactly greater than or equal to both side * When the content width is left, the content and the component remain right aligned,
      * and the right part of the content is displayed. When the content is left in the high direction,
      * the content and the component remain aligned at the bottom,
      * and the bottom part of the content is displayed. */
    ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
} ArkUI_RenderFi!button typesq, Normal button (without rounded corners by default). */
    ARKUI_BUTTON_TYPE_NORMAL = 0,
    /** Capsule-type button (the round corner is half of the height by default). */
    ARKUI_BUTTON_TYPE_CAPSULE,
    /** Circle button. */
    ARKUI_BUTTON_TYPE_CIRCRounded rectangle button./BUTTON_ROUNDED_RECTANGLE = 8
} ArkUI_ButtonType  autofill typesq, Username. Password Vault, when enabled, can automatically save and fill in usernames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
    /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
    /** New password. Password Vault, when enabled, can automatically generate a new password. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
    /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
     *  street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
    /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
    /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  districts and counties. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
    /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
    /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
    /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
    /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
    /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
    /** First name. The scenario-based autofill feature, when9 enabled, can automatically save and fill in first names.TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
    /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
    /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
     *  codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
    /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
     *  fill in phone numbers with country codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
    /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
    /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
     *  card numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
    /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
    /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
    /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in address information without street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
    /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
    /**
     * Passport number. The scenario-based autofill feature, when enabled, can automatically sa've and fill in passport
     * numbers.$TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMB Passport validity. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  passport validities<
&TEXTINPUT_CONTENT_TYPE_VALIDITY,
    /**
     *  Place of issue. The scenario-based autofill feature, when enabled, can automat/ically save and fill in
     *  place of issues<
&TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
    /**
     *  Tax organization. The scenario-based autofill feature, when enabled, can autom3atically save and fill in tax
     *  organizations<
&TEXTINPUT_CONTENT_TYPE_ORGANIZA Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
     *  @sinceL
TEXTINPUT_CONTENT_TYPE_TAX_ID,
    /**
     *  City name and state name or state code. The scenario-based autofill feature, whe_n enabled, can automatically
     *  save and fill in city names and state names or state codes<
&*TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_ST0) Flight number. The scenario-based autofill feature, when enabled, can automatically save and fill in flight
     *  numbers.
 ?
#"TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMB License number. The scenario-based autofill feature, when enabled, can automatically save and fill in license
     *  numbers.=
%#TEXTINPUT_CONTENT_TYPE_LICENSE_NUMB License file number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license fil	e numbers<
&(TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMB License plate number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license plate numbers<
& TEXTINPUT_CONTENT_TYPE_LICENSE_P/) Engine number. The scenario-based autofill feature, when enabled, can automatically save and fill in engine
     *  numbers.
 ?
#"TEXTINPUT_CONTENT_TYPE_ENGINE_NUMB License chassis number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license chassis numbers<
&0TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
}z
input styl- Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
     *  font size of the selected text. */
    ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
    /** Inline input style. The background height of the selected textQheight of the text box. */
    ARKUI_TEXTINPUT_STYLE_INLINE
} ArkUI_TextInputStylkeyboard style of input box>	6Default appearance mode, won't adopt immersive styles.!$ = 0,
    /**
     * Immersive mode.!5_IMMERSIVE = 1,
    /**
     * Light immersive style.!:_LIGHT_IMMERSIVE = 2,
    /**
     * Dark immersive style.!_DARK_IMMERSIVE = 3,
}ͅ entity type for text recognitionq, Phone Number.*/
    ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
    /** Link. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
    /** Mailbox. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
    /** Address. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
} Ark2.t) dotХOT,
    /** digitХ,
}2%the pattern of element arrangement indT Swiper compon! In the folded state, when the ListItem slides in the opposite direction to the main axis,
     * the operation item is hidden.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
    /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
     * the operation item is displayed.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
    /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
    ARKUI_LIST_ITEM_SWIP9E_ACTION_STATE_ACTIONING,
} ArkUI_ListItemSwipeActionStat1Kxplicit and implicit mode of the SwipeAction method for the Listitem compon!4 The ListItem can continue to be scratched after theLsize of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
    /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
} ArkUI_ListItemSwipeEdgeEffect?	
 error codsq, @error No errors. */
   A	, = 0,
    /** @error Parameter error. */
   &	 = 4 0?	Ҹ	(	 = 50?	ternal error occurs, such as failure occurs because of the internal environment error,
     * or operation failed because of the internal execution failed.	 = 1000?	#The XComponent is in invalid state.<ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
    /** @errorv	 %specific properties or events. */
   2e = 106102,
    /** @error The corresponding operation does not support nodes created by ArkTS. */
   *> = 106103,
    /** @error The lazy loading adapter is not boun*/
    ARKUI_ERROR_CODE_ADAPTER_NOT_BOUND = 106104,
    /** @error The adapter already exists. */
    ARKUI_ERROR_CODE_ADAPTER_EXIST = 106105,
    /** @error The corresponding node already has a child node and cannot add an adapter. */
    ARKUI_ERROR_CO0	gHILD_NODE_EXIST = 106106,
    /** The parameter length in the parameter event exceeds the limit. */
   %P = 106107,
    /** T. */
   * = 106108,
    /** T2 */
   NO_RETURN = 106109?	,The event type is not supported by the node.Q	5 = 106110,
    /** The index value is invalid. */
   INDEX_INVALID    = 106200,
    /**  Failed to query route navigation information. */
    ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201a,
    /** The buffer size is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202?	The	8	  = 1062PL0?	&The node is running on invalid thread.q>`DON_INVALID_THREAD = 1062u0?	Force dark config is invalid.	$ = 1062'0?	The1q>`D
	 = 106206?	This node already has ax>`DHAS_PARENT = 106207?	The node cannot be adopted.q>`D*		 = 106208?	The node cannot adopt children.q>`D		 = 106209?	ɾ	4x>`D	 = 10621?	!The node type is not custom node.T_CUSTOM_NODE = 1064 0?	Node already has children.(	HILD_EXISTED = 106402?	RenderNode parent is existed.'ERROR_CODE_RENDER_PARENT_EXISTED = 1064PL0?	RenderNode child is not exist.(ERROR_CODE_RENDER_CHILD_NOT_EXIST = 1064u0?	Param is out of range.&	OUT_OF_RANGE = 1064'0?	,The RenderNode is obtained from a FrameNode.q>`D-ERROR_CODE_RENDER_IS_FROM_FRAME_NODE = 106406?	The RenderNode is obtained from a FrameNode,
     * and its corresponding FrameNode is no longer in the adopted state.
     * @z>`D1ERROR_CODE_RENDER_HAS_INVALID_FRAME_NODE = 106407?	The node is not adopted.q>`D+ERROR_CODE_RENDER_NOT_ADOPTED_NODE = 106408?	+The node requesting focus is not focusable.$ERROR_CODE_FOCUS_NON_FOCUSABLE = 1500?	3The node requesting focus has unfocusable ancestor.-ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 1500?	*The node requesting focus does not exists.#ERROR_CODE_FOCUS_NON_EXISTENT = 150OL0?	Tk	 (	L	 = 1600?	T	v	ݝ	k For details about the error codes,
     * see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).aN(	L		 = 160OL0?	!The isAuto parameter of the colorm	Ji    * For details about the error codes, see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).aN(	L	*	0 = 160004,
    /** The component is not a scrollN_SCROLLABLE_CONTAINER = 180001,
    /** The buffer is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 180000?	The event is not a clone event.T_CLONED_POINTER_EVENT = 180OL0?	!The component status is abnormal.&	*OST_CLONED_COMPONENT_STATUS_ABNORMAL = 180u0?	)No component hit to respond to the event.&	9OST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 1801Q0?	put event type not supported.-ERROR_INPUT_EVENT_TYPE_NOT_SUPPORTED = 180006?	invalid styled string.'ERROR_CODE_INVALID_STYLED_STRING = 1801 0?	The gesture recognizer t	1ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED = 180102?	T		 = 1900?	TP@	is invalid.(		 = 1900?	6operation is not allowed for current drag drop pharse.0ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190u0?	Parameter error.Q&	 ERROR = 100023,
} ArkUI_ErrorCod*
 * @since 12
The animation is/*/
   n/,
    /** The animation is being played. */
   n0RUNNING,
    /** The animation is paused. */
   n0PAUSED,
    /** The animation is stopped. */
   n STOPPED,
} ArkUI_AnimationStatus?	W*
 * @since 12
<Before execution, the animation does not apply any styles to[Y	%After execution, the animation restorFto its default state. */
    ARKUI_ANIMATION_FILL_MODE_NONE,
    /** T'	E retains the state set by the last keyframe encountered
     * during. */
   4#n,
    /** The animation applies the values defined in the first relevant keyframe once it is applied to
     *, and retains the values during the period set by delay. */
    ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
    /** The animation follows the rules for both Forwards and Backwards,
     * extending the animation attributes in both directions. */
    ARKUI_ANIMA-TION_FILL_MODE_BOTH,
} ArkUI_AnimationFillMod)state type for the accessibility checkboxq, The Checkbox unchecked. */
    ARKUI_ACCESSIBILITY_UNCHECKED = 0,
    /** The Checkbox checked. */
    ARKUI_ACCESSIBILITY_CHECKED,
}QYCheckedState  PСsq, The animation plays in forward loop mode. */
    ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
    /** The animation plays in reverse loop mode. */
    ARKUI_ANIMATION_DIRECTION_REVERSE,
    /** The animation plays in alternating loop mode. When the animation iO for an odd number of times, the
     *  playback is in forward direction. When for an even number of times, the playback is in
     *  reverse direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE,
    /**; The animation plays in reverse alternating loop mode. WhenO for an odd number of times,
     *  the playback is in reverse direction. When for an even number of times, the playback is
     *  in forward direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
} ArkUI_AnimationDirection  hover effects when a:*
 * @since 23Default effect. */
    ARKUI_HOVER_EFFECT_AUTO = 0,
    /** Scale effect. */
    ARKUI_HOVER_EFFECT_SCALE,
    /** Highlight effect. */
    ARKUI_HOVER_EFFECT_HIGHLIGHT,
    /** No effect. */
    ARKUI_HOVER_EFFECT_NONE,
} ArkUI_HoverEffect;

/**
 * @bri.priority levels for focus management within the application.
 * These levels determine the sequence in which UI components rece2ive focus during user interaction.
 *
 * @since 23Default priority. */
    @& = 0,
    /** Higher priority. */
    @6PRIOR = 2000,
    /** Previous focus priority. */
    @&PREVIOUS = 3000,
} ArkUI_FocusPriority?	 the rolling sourc, Finger drag. */
    ARKUI_SCROLL_SOURCE_DRAG = 0,
    /** Inertial roll after finger drag. */
    ARKUI_SCROLL_SOURCE_FLING,
    /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
    ARKUI_SCROLL_SOURCE_EDGE_EFFECT,
    /** Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
    ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
    /** Drag the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR,
    /** Inertia scrolling after dragging the scroll bar.*/
    AR-KUI_SCROLL_SOURCE_SCROLL_BAR_FLING,
    /** T3Jcauses unanimated scrolling.*/
    ARKUI_SCROLL_SOURCE_SCROLLER,
    /** T3acauses the scroll to drive the painting.*/
    ARKUI_SCROLL_SOURCE_ANIMATION,
} ArkUI_ScrollSourc1[kXq, click action. */
    ARKUI`8_CLICK = 1 << 0,
    /** long click action. */
    ARKUI`6_LONG_CLICK = 1 << 1,
    /** cut action. */
    ARKUI`0_CUT = 1 << 2,
    /** copy action. */
    ARKUI`_COPYpaste action. */
    ARKUI`_PASTE = 1 << 4,
}QY'lation options for component transitionq
T
ޟ. */
    float x;
    /** T. */
    float y;
    /** T
N,. */
    float z;
} ArkUI_TranslationOptions?	(scaling options for component transitionq@cale ratio along the x-axis. */
    float x;
    /** Scale ratioq*/
    float y;
    /** SE (not effective for the current 2D graphics). */
    float z;
    /**Q`. */
    float centerX;
    /**`,. */
    float centerY;
} ArkUI_ScaleOptions?	+$ion options for component transitionq
$*/
    float x;
    /**%*/
    float y;
    /** Z#C*/
    float z;
    /** Rotation angle. */
    float angle;
    /**Q`. */
    float centerX;
    /**`. */
    float centerY;
    /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
    float centerZ;
b    /** Distance from the user to the z=0 plane. */
    float perspective;
} ArkUI_RotationOptions?	t5	(q1CustomSpanMeasureInfo ArkUI_CustomSpanMeasureInfo?	t/8	$q:	:	?	tv;	5	q5=	.=	?	"state of the NavDestination compon! The NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
    /** The NavDestination hide. */
    ARKUI_NAV_DES>TINATION_STATE_ON_HIDE = 1,
    /** The NavDestination is moun! tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
    /** The NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
    /** Before the NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
    /** Before the NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
    /** Before the NavDestination mount to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
    /** Before the NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
    /** The NavDestination returns fR*/
    ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
} ArkUI_NavDestinationStat1the state of Router Pag- The Router Page is about to be created. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
    /** The Router Page is about to be destroyed. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
    /** The Router Page show. */
    ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
    /** The Router Page hide. */
    ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
    /** The Router Page returns. */
    ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
} ArkUI_RouterPageState;

/**
 * @brief defines the enumerated value of the exta,M The default security zone includes the status bar and navigation bar. */
   a= 1,
    /** Non-secure areas of the device, such as bangs or hole holes. */
    ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
    /** SSoft keyboard area. */
    ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
} ArkUI_SafeArea.8an enum for the areas of the <b>ListItemGroup</b> compon>	 Outside the area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
    /** Area when the <Db>ListItemGroup</b> component does not have the header, footer, or lLIST_ITEM_SWIPE_AREA_NONE,
    /** List item area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
    /** Header area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
    /** Footer area of tNhe <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
}@E;

/**
 * @brief defines the enumerated value of the direction of thea, Upper area. */
   a= 1,
    /** Lower area. */
    ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Front area. */
    ARKUI_SAFE_AREA_EDGE_START = 1W << 2,
    /** Tail area. */
    ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
} ArkUI_SafeAreaEdg1;an enum for the focus movement directions.
 *
 * @since 18
Move focus forward. */
    ARKUI_FOCUS_MOVE_FORWARD = 0,
    /** Move focus backward. */
    ARKUI_FOCUS_MOVE_BACKWARD,
    /** Move focus up. */
    ARKUI_FOCUS_MOVE_UP,
    /** Move focus down. */
    ARKUI_FOCUS_MOVE_DOWN,
    /** Move focus left. */
    ARKUI_FOCUS_MOVE_LEFT,
    /** Move focus right. */
    ARKUI_FOCUS_MOVE_RIGHT,
} ArkUI_FocusMove;

/**
 * @brief defines t=he enumerated value of the customDialog's keyboard avoid mode>	=		avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
    /** Defines not avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_NONE,
} ArkUI_KeyboardAvoidMode;

/**
 * @brief defines the enumerated value of area in hover mode>	 Layout top half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
    /** Layout bottom half screeen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
} ArkUI_HoverModeAreaType !
xpand mode>	 Not expand. */
    ARKUI_NOT_EXPAND = 0,
    /** Expand. */
    ARKUI_EXPAND = 1,
    /** Lazy expand. Expand the children of ?node if needed. */
    ARKUI_LAZY_EXPAND = 2,
} ArkUI_ExpandModt style of the <b><Swiper></b> component.
 * @brief Enumerates the UI states of a component, used for handling state-specific styles.
 *
 * @since 20Normal state. */
    UI_STATE_NORMAL = 0,
    /** Pressed state. */
    UI_STATE_PRESSED = 1 << 0,
    /** Focused state. */
    UI_STATE_FOCUSED = 1 << 1,
    /** Disabled state. */
    UI_STATE_DISABLED = 1 << 2,
    /**
     * Selected state. This stafte is supported only by specific component types:
     * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>,+"WMenuItem</b>.
     */
    UI_STATE_SELECTED = 1 << 3,
    /**
     * The hovered state."*UI_STATE_HOVERED = 1 << 4,
} ArkUI_UIState !dge direction.
 *
 * @since 20Set all edge direction. */
    ARKUI_EDGE_DIRECTION_ALL = 0,
    /** Set left edge direction. */
    ARKUI_EDGE_DIRECTION_LEFT,
    /** Set right edge direction. */
    ARKUI_EDGE_DIRECTION_RIGHT,
    /** Set top edge direction. */
    ARKUI_EDGE_DIRECTION_TOP,
    /** Set bottom edge direction. */
    ARKUI_EDGE_DIRECTION_BOTTOM,
} ArkUI_EdgeDirection;
 
/**
 * @brief Enumerate's the corner direction.
 *
 * @since 20Set all corner direction. */
    ARKUI_CORNER_DIRECTION_ALL = 0,
    /** Set top left corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_LEFT,
    /** Set top right corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_RIGHT,
    /** Set bottom left corneCr direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
    /** Set\Ndirection. */
    ARKUI_CORNER_DIRECTION_BOTTOM_RIGHT,
} ArkUI_CornerDirection  !PixelRoundPolicy.
 *
 * @since 21No Force round the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_NOFORCEROUND = 0,
    /** Force ceil the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCECEIL,
    /** Force floor the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCEFLOOR,
} ArkUI_PixelRoundCalcPol9icy;

/**
 * @brief Menu pop-up strategy.
 *
 * @since 23Determine whether to pop up the menu according to the underlying default logic. */
    ARKUI_MENU_POLICY_DEFAULT = 0,
    /** Never pop up the menu. */
    ARKUI_MENU_POLICY_HIDE = 1,
    /** Always pop up the menu. */
    ARKUI_MENU_POLICY_SHOW = 2,
} ArkUI_MenuPolicy?	: the direction to expand the swipe action.
 *
 * @since 21`WWhen the List direction is vertical, it indicates the left in LTR mode and right in RTL޸3List direction is horizontal, it indicates the top.LIST_ITEM_SWIPE_ACTION_DIRECTION_START = 0,
    /**
     * When the List direction is vertical, it indicates the right in LTR mode and left in RTL޸6List direction is horizontal, it indicates the bottom.NLIST_ITEM_SWIPE_ACTION_DIRECTION_END = 1,
} ArkUI_ListItemSwipeActionDirectionp>	"Kput tool types supported for response region configuration.
 *
 * @since 23All input tool types. */
    v'# = 0,
    /** Finger input. */
    v$)FINGER = 1,
    /** Stylus input. */
    v$%PEN = 2,
    /** Mouse input. */
    v$MOUSE = 3,
}:";A the types for expanding the safe area in layout.
 *
 * @since 23XDefault non-safe area of the system, including the status bar and navigation bar. */
   # = 1,
}aType;;dges for expanding the safe area in layout.
 *
 * @since 23!Top edge of the safe area. */
   != 1,
    /** Bottom edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Start edge of the safe area. */
   "T = 1 << 2,
    /** End edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_ENDMVertical edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_VERTICAL =?aBOTTOM,
    /** Horizontal edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL =" | ARKUI_LAYOUT_SAFE_AREA_EDGE_END,
    /** All edges of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_ALL = ARKUI_LAYOUT_SBAFE_AREA_EDGE_VERTICAL | ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL,
}a  lQs.
 *
 * @since 23Top start. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_LOCALIZED_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_LOCALIZED_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_LOCALIZED_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_END,
} ArkUK;
/**
 * @brief Enumerates the graphics rendering strategy.
 *
 * @since 23band its child components will be drawn directly onto the screen canvas. */
    ARKUI_RENDERSTRATEGY_FAST = 0,
    /**
    * Theand its child components will first be drawn onto an off-screen canvas,
    *     then undergo some graphic rendering operations, and finally be drawn onto the main canvas.
    */
    ARKUI_RENDERSTRATEGY_OFFSCREEN,
} ArkUI_RenderStrategy;

/**
 * @brief0LayoutPolicy.
 *
 * @since 21The component fills its parent, which means its size is as large as its parent */
    ARKUI_LAYOUTPOLICY_MATCHPARENT = 0,
    /**
     * The component fills its content, which means its size is as large as its children but it is constrained
     * by its parent.LAYOUTPOLICY_WRAPCONTENT,
    /** The component fills its content which means its size is as large as its children. */
    ARKU I_LAYOUTPOLICY_FIXATIDEALSIZE,
}?	'parameter used by the system font style4		6@	options for taking snapshot%		i;

/**
  * @brief TextPicker single column selector, supports mixing text and images.
  *
  * @since 19
 Q,n/Array,n/Array;

 /**
   * @brief TextPicker multi column selector, supports mixing text and images.
   *
   * @since 19
   */
typedef s^KTextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArray?	Ea two-dimensional point struct, with coordinates stored as float type%	
     * x-axis coordinate.
     */
    float x;
    /**
     * y-axis coordinate.
     */
    float y;
} ArkUI_PointF;

 /**
  7options for selection operation.
   *
   * @since 23
  QxFqF,;

/**
* @brief Creates a size constraint.
*-	ULayoutConstraint_Create();

/**
* @brief Creates a deep copy of a size constraint.
*
	"-	x-	"new-	BLayoutConstraint_Copy(const[	'	$the pointer to a size constraint.
*
	"-	 2	LayoutConstraint_Dispose(\	&.maximum width for a size constraint, in px.
*
	"-	x-	maximum width@""LayoutConstraint_GetMaxWidth(const[	'.minimum width for a size constraint, in px.
*
	"-	x-	minimum width@""LayoutConstraint_GetMinWidth(const[	'/maximum height for a size constraint, in px.
*
	"-	x-	maximum height@"#LayoutConstraint_GetMaxHeight(const[	'/minimum height for a size constraint, in px.
*
	"-	x-	minimum height@"#LayoutConstraint_GetMinHeight(const[	';width percentage reference for a size constraint, in px.
*
	"-	x-	width percentage reference@"/LayoutConstraint_GetPercentReferenceWidth(const[	'<height percentage reference for a size constraint, in px.
*
	"-	x-	height percentage reference@"0LayoutConstraint_GetPercentReferenceHeight(const[	'	m	width.
*
	"-	r2qpx{	LayoutConstraint_SetMaxWidth(\	", int32_t valus	width.
*
	"-	rminimum width, in px{	LayoutConstraint_SetMinWidth(\	", int32_t valum
height.
*
	"-	rmaximum height, in px{	LayoutConstraint_SetMaxHeight(\	", int32_t valus
height.
*
	"-	rminimum height, in px{	LayoutConstraint_SetMinHeight(\	", int32_t valuwidth percentage reference.
*
	"-	r!width percentage reference, in px{	*LayoutConstraint_SetPercentReferenceWidth(\	", int32_t valuheight percentage reference.
*
	"-	r@epercentage reference, in px{	+LayoutConstraint_SetPercentReferenceHeight(\	", int32_t valu0pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
* in the <b>Drawing</b> module.
*
* @param c	 0drawing context.
		 anvas for drawing2	 0DrawContext_GetCanvas(ArkUI_DrawContext* context1$size of a drawing area.
*
* @param c	 0drawing context/size of the drawing area>IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* contexTCreates <b>Grid</b> layout options.
 *
 * @return <b>Grid</b> layout options createdGridLayoutOptions* OH_ArkUI_GridLayoutOptions_Create();

/**
 * @brief Disposes of <b>Grid</b> layout options.
 *
 * @param option <b>Grid</b> layout options.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_Dispose(ArkUI_GridLayoutOptions* option);

/**M	^	irregular grid item index array for the grid layout.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexesM Array of irregular grid item indexes.
 * @param size Size of the index array	0-0	
If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be null.
 *D	 fGridLayoutOptions_SetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes(irregular grid item index array for the grid layout.
 * When <b>OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback</b> is not set,
 * the grid item specified in <b>irregularIndexes</b> occupies an entire row of the grid that scrolls vertically or
 * an entire column of the grid that scrolls horizontally.
 *
 * @param option <b>Grid</b> layout options.
 * @param i\rregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index array	0-0	*BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiGlure in parameter validation;
 *         the parameter must not be null@	$GridLayoutOptions_GetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t* size);

/**
 *L			6to obtain the row and column span for the grid item atj,*
 * @param option <b>Grid</b> layout optionq	|		BCallback that returns the row and column span for the grid item atj*        itemIndex: grid item index, which must be within the range set by
 *        {@link OH_ArkUI_GridLayoutOptions_SetIrregularIndexes}.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback(
    ArkUI_GridLayoutOptNions* option, void* userData, ArkUI_GridItemSize (*callback)(int32_t itemIndex>{		
		^to obtain the starting row, starting column, row span,
 * and column span for the grid item atj,*
 * @param option <b>Grid</b> layout optionq	|		Callback that returns the starting row, starting column, row span,
 *        and column span for the grid item at the specifiedj	*        itemIndex: grid item index.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetRectByIndexCallback(
    ArkUI\_GridLayoutOptions* option, void* userData, ArkUI_GridItemRect (*callback)(int32_t itemIndex>{	"Createsb#*0b"z	d* OH_d"the pointer to ab#*
* @param op!ab#z	{	d	_Dispose(d* optionFlowItem block configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @param size Array Length{	d	_SetSize(d* option}	Gets the FlowItem grouping configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @return Array size. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option pa+rameter is abnormal, such as a null pointer@"d	_GetSize(d* optionp
,items in a water flow section.
*
* @param op!ab#*target water flow section\-itemVsecz	{	d_SetItemCount(d* option,
    int32_t index, ޺"w	o
itemVsection that matchesj*
* @param op!ab#*target water flow section/number of itemVsecz	&d_GetItemCount(d* option, int32_t index);

/**
* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified+ Item based on flowItemIndex.
*
* @param op!ab#*gtarget water flow section.
* @param callback Gets the spindle size of the specified Item based on index{	d(_RegisterGetItemMainSizeCallbackByIndex(d* option,
    int32_t index, float(*callback)(int32_t itemIndex));

/**
* @brief The FlowItem grouping configuration informatioTn getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param op!ab#*target water flow section.
* @param userData FlowItem Custom data.
* @param callback Gets the spindle size of the specified Item based on index{	d9_RegisterGetItemMainSizeCallbackByIndexWithUserData(
    dP* option, int32_t index, void* userData,
    float (*callback)(int32_t itemIndex>{	"	pZV(in a vertical layout) or rows (in a horizontal layout) of a water flow.
*
* @param op!ab#*)target water flow section.
* @param crosskor rows, depending onqz	{	d_SetCrossCount(
    d&* option, int32_t index, int32_t crossQw	o
:(in a vertical layout) or rows (in a horizontal layout) inb
* that matchesj*
* @param op!ab#*target water flow section/or rowѼ#d_GetCrossCount(d* option, int32_t index_3 in the specified water flow section.
*
* @param op!ab#*6target water flow section.
* @param columnGap Indicate to set{	d_SetColumnGap(d,* option,
    int32_t index, float columnGap1Vsection that matchesj*
* @param op!ab#*target water flow section/
* @since 12
*/
float OH_d_GetColumnGap(d* option, int32_t index3 in the specified water flow section.
*
* @param op!ab#*3target water flow section.
* @param rowGap Indicate` to set{	d_SetRowGap(d)* option,
    int32_t index, float rowGap1`Vsection that matchesj*
* @param op!ab#*target water flow section/`* @since 12
*/
float OH_d_GetRowGap(d* option, int32_t indexmargins!water flow section.
*
* @param op!ab#*Itarget water flow section.
* @param marginTop Indicates the top margin ofb4.
* @param marginRight Indicates the right margin ofb6.
* @param marginBottom Indicates the bottom margin ofb2.
* @param marginLeft Indicates the left margin ofbz	{	d_SetMargin(de* option, int32_t index,
    float marginTop, float marginRight, float marginBottom, float marginLeft1
margins ofbthat matchesj*
* @param op!ab#*target water flow section/margins
Margin OH_d_GetMargin(d* option	!	Creates a.
 *
-%p	indicator	_new indicator.
 1SwiperIndicator* OH_ArkUI_SwiperIndicator_Create( t 	Destroy!indicator.
 *
 * @param indicatorindicator.
 {	8SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicatorL%tandbwiper.
 *
 * @param indicator	indicatorl %tandbwiper.
 {	MSwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float valuQ	o%tandbwiper.
 *
 * @param indicator	indicator	%tandbwiper.
 * @since 12
с	@wiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicatorL%t1and the top of the swiper.
 *
 * @param indicator	indicatorl %tand the top of the swiper.
 {	KSwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float valuQ	o%t1and the top of the swiper.
 *
 * @param indicator	indicator	%t(and the top of the swiper.
 * @since 12
с	>wiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicatorL%t3and the right of the swiper.
 *
 * @param indicator	indicatorl %tand the right of the swiper.
 {	KSwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float valuQ	o%t1and the end of the swiper.
 *
 * @param indicator	indicator	%t(and the end of the swiper.
 * @since 12
с	>wiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicatorL%t4and the bottom of the swiper.
 *
 * @param indicator	indicatorl %tand the bottom of the swiper.
 {	NSwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float valuQ	o%t4and the bottom of the swiper.
 *
 * @param indicator	indicator	%t+and the bottom of the swiper.
 * @since 12
с	AwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicatorLd1dot for the dot indicator.
 *
 * @param indicator	indicatorl Hdot for the dot indicator.
 {	ISwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float valuQ	od1dot for the dot indicator.
 *
 * @param indicator	indicator	d(dot for the dot indicator.
 * @since 12
с	<wiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicatorLK
5the dot for the dot indicator.
 *
 * @param indicator	indicatorl @edot for the dot indicator.
 {	JSwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float valuL	L Obtains the height of the dot for the dot indicator.
 *
 * @param indicator	indicator	6height of the dot for the dot indicator.
 * @since 12
с	=wiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicatorLd
0ot for the dot indicator.
 *
 * @param indicator	indicatorl H
ot for the dot indicator.
 {	QSwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float valuL	 Obtaind
0ot for the dot indicator.
 *
 * @param indicator	indicator	d
'ot for the dot indicator.
 * @since 12
с	DwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicatorLK
>the selected dot for the dot indicator.
 *
 * @param indicator	indicatorl @e%selected dot for the dot indicator.
 {	RSwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float valuL	U Obtains the height of the selected dot for the dot indicator.
 *
 * @param indicator	indicator	?height of the selected dot for the dot indicator.
 * @since 12
с	MwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicator);

/**
vmask style of the dot.
 *
 * @param indicatorindicator.
 * @param mask W$mask style. True means to display.
 {	FSwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t maskmask style of the dot.
 *
 * @param indicator	indicator	$mask style. True means to display.
  	2Indicator_GetMask(ArkUI_SwiperIndicator* indicatorLcolor of the dot.
 *
 * @param indicator/indicator.
 * @param color the color of the dot
 {	ISwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t colorcolor of the dot.
 *
 * @param indicator	indicator	color of the dot
 !	3Indicator_GetColor(ArkUI_SwiperIndicator* indicatorL5ndot for.
 *
 * @param indicator"indicator.
 * @param selectedColor0ndot!
 {	YSwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColor5ndot for the dot.
 *
 * @param indicator	indicator	5ndot!
 !	;Indicator_GetSelectedColor(ArkUI_SwiperIndicator* indicatorLp
maxDisplayCount for the dot.
 *
 * @param indicatorgindicator.
 * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
 * @returnq}	,	2\indicator is null or maxDisplayCount less then 6 or
 *         maxDisplayCount more then 9
  	TIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCou#maxDisplayCount for the dot.
 *
 * @param indicator	indicator	@maxDisplayCount, span is 6-9.
 *         0 - indicator is null
  	EIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicator);

/**
vhthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicatoroindicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0
0.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator, int32_t ignoreSize);

Q	shthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicator	indicator	'the size of the indicator.
 * @since 19ѯ	@Indicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicatorLspace between the dots of.
 *
 * @param indicator8indicator.
 * @param space the space between the dots ofh8vp.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float spacQ	ospace between the dots of.
 *
 * @param indicator3indicator.
 * @return the space between the dots of
 * @since 19
с	iwiperIndicator_GetSpace(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Creates a digital indicator.
 *Q_ new indicator.
 * @since 19
 */
 *OH__Create(L%gital indicator andbBwiper.
 *
 * @param indicator The pointer to the digital indicatorl %gital indicator andb wiper.
 * @since 19
 */
void OH__SetStartPosition(* indicator, float valuL	Gets the%gital indicator andbBwiper.
 *
 * @param indicator The pointer to the digital indicator	%gital indicator andbwiper.
 * @since 19ρ	_GetStartPosition(* indicatorL%fgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicatorl %Dgital indicator and the top of the swiper.
 * @since 19
 */
void OH__SetTopPosition(* indicator, float valuL	Gets the%fgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator	%7gital indicator and the top of the swiper.
 * @since 19ρ	_GetTopPosition(* indicatorL%gital indicato'Cswiper.
 *
 * @param indicator The pointer to the digital indicatorl %gital indicato'!swiper.
 * @since 19
 */
void OH__SetEndPosition(* indicator, float valuL	Gets the%gital indicato'Cswiper.
 *
 * @param indicator The pointer to the digital indicator	%gital indicato'swiper.
 * @since 19ρ	_GetEndPosition(* indicatorL%gital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Returns the%Ggital indicator and the bottom of the swiper.
 * @since 19
 */
void OH__SetBottomPosition(* indicator, float valuL	Gets the%igital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator	%:gital indicator and the bottom of the swiper.
 * @since 19ρ	_GetBottomPosition(* indicatorLfont color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param color@4Default value: 0xFF182431.
 * @since 19
 */
void OH__SetFontColor(* indicator, uint32_t color);

/**
 * @brief Gets the font color of total count in the digital indicator.
 *
 * @param indicato2r The pointer to the digital indicator.
 * @return@
 * @since 19
 */
u	_GetFontColor(* indicatorLfont color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedColor@4Default value: 0xFF182431.
 * @since 19
 */
void OH__SetSelectedFontColor(* indicator, uint32_t selectedColor);

/**
 * @brief Gets the font color of selected index in the digital indicator.
 *
 * @par=am indicator The pointer to the digital indicator.
 * @return@
 * @since 19
 */
u	_GetSelectedFontColor(* indicatorLfont size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size +font size, in fp.
 * @since 19
 */
void OH__SetFontSize(* indicator, float sizL	Gets the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @re#turn font size, in fp.
 * @since 19ρ	_GetFontSize(* indicatorLfont size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param si.ze font size, in fp.
 * @since 19
 */
void OH__SetSelectedFontSize(* indicator, float sizL	Gets the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * &@return font size, in fp.
 * @since 19ρ	_GetSelectedFontSize(* indicatorLfont weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param fontWeightQ'=5
 * @since 19
 */
void OH__SetFontWeight(' *indicator, ArkUI_FontWeight fontWeigh1	s the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @returnQ&&
 * @since 19
 */
ArkUI_FontWeight OH__GetFontWeight(* indicatorLfont weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedFontWeightQ'=5
 * @since 19
 */
void OH__SetSelectedFontWeight(
   / *indicator, ArkUI_FontWeight selectedFontWeigh1	s the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @returnQ&&
 * @since 19
 */
ArkUI_FontWeight OH__GetSelectedFontWeight(* indicator)?	stroys the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @since 19
 */
void OH_ArkUI_Swipe	_Destroy( *indicator);

/**
v(the size of the indicator for {@link OH__SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @param ignoreSize Whether to ignore the si7ze of the indicator. The value 1 means to ignore, and 0
0.
 * @since 19
*/
void OH__SetIgnoreSizeOfBottom(* indicator, int32_t ignoreSQ	s(the size of the indicator for {@link OH_P_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator	'the size of the indicator.
 * @since 19ѯ	_GetIgnoreSizeOfBottom(A* indicator);

/**
 * @brief Creates a arrow style for swiper.
 *Q_"new arrow style.
 * @since 19
 */
@ *OH_@_Create();

/**
v]	3background for the arrow.
 *
 * @param arrowStyle T"ow style.
 * @param showBackgroundQ#background for the arrow.
 *       	backgrounq#
 *! P.
 * @since 19
 */
void OH_@_SetShowBackground(@9 *arrowStyle, int32_t showBackground);

/**
 * @brief GetP3background for the arrow.
 *
 * @param arrowStyle Tow style.
 * @returnQ$background for the arrow.
 *        	backgrounq#
 * @since 19q		L
_GetShowBackground(@
* arrowSty	^	8display position of the arrow.
 *
 * @param arrowStyle TRow style.
 * @param showSidebarMiddle the display position of the arrow.
 *       'on boths sides of the swiper,
 *       2display on boths sides of the swiper indicator.
 *! P.
 * @since 19
 */
void OH_@_SetShowSidebarMiddle(@%* arrowStyle, int32_t showSidebarMidd	AGets the display position of the arrow.
 *
 * @param arrowStyle T4ow style.
 * @return the display position of the arr{ (on boths sides of the swiper,
 *        <display on boths sides of the swiper indicator.
 * @since 19q		L
_GetShowSidebarMiddle(@
* arrowSty	^	7background size of the arrow.
 *
 * @param arrowStyle TWow style.
 * @param backgroundSize the background size of the arrow. The unit is vp.
 *! H24</b> when the arrow displays on both sides of the swiper indicator.
 *! U32</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_@_SetBackgroundSize(@!* arrowStyle, float backgroundSizL	@Gets the background size of the arrow.
 *
 * @param arrowStyle Tow style	:background size of the arrow. The unit is vp.
 * @since 19ρ	G_GetBackgroundSize(@
 *arrowSty	3Destroys the arrow style.
 *
 * @param arrowStyle T#ow style.
 * @since 19
 */
void OH_@	_Destroy(@
 *arrowSty	^	w arrow.
 *
 * @param arrowStyle T#ow style.
 * @param backgroundColorlarrow!
 *! P0x00000000</b> when the arrow displays on both sides of the swiper indicator.
 *! ]0x19182431</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_@_SetBackgroundColor(@; *arrowStyle, uint32_t backgroundColor);

/**
 * @brief Getq arrow.
 *
 * @param arrowStyle Tow style	warrow!
 * @since 19
 */
u	L
_GetBackgroundColor(@
* arrowSty	^	,size of the arrow.
 *
 * @param arrowStyle TGow style.
 * @param arrowSize the size of the arrow. The unit is vp.
 *! H18</b> when the arrow displays on both sides of the swiper indicator.
 *! 24</b> when the arrow displays on both sides of the swiper.
 *        The arrow size is fixed to 3/4 of the background size whenaX shown.
 * @since 19
 */
void OH_@_SetArrowSize(@* arrowStyle, float arrowSizL	5Gets the size of the arrow.
 *
 * @param arrowStyle THow style.
 * @return the size of the arrow. The unit is vp.
 * @since 19ρ	G_GetArrowSize(@
* arrowSty	^	-color of the arrow.
 *
 * @param arrowStyle T5ow style.
 * @param arrowColor the color of the arrow!6)0x00182431</b>.
 * @since 19
 */
void OH_@_SetArrowColor(@i* arrowStyle, uint32_t arrowColor);

/**
 * @brief Gets the color of the arrow.
 *
 * @param arrowStyle Tow style	color of the arrow!
 * @since 19
 */
u	L
_GetArrowColor(@
* arrowSty	!Create auxiliary line information@"X.
 *
 * @param size The number of auxiliary lines.
 * @return auxiliary line informationQL	C	1GuidelineOption* OH_ArkUI_GuidelineOption_Create(Destroy auxiliary line informR	$guideline auxiliary line informationQL	Evoid OH_ArkUI_GuidelineOption_Dispose(ArkUI_GuidelineOption* guidelinL	}	Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value id, must be unique and cannot have the same name as +
 * @param index auxiliary line index valueQL	Wvoid OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* value	!}	direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value direction.
 * @param index auxiliary line index valueQL	]void OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value	!}	/Oleft or top of the container.
 *
 * @param guideline auxiliary line informationb	Zdistance from the left or top of the container.
 * @param index auxiliary line index valueQL	\void OH_ArkUI_GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float value	!}	/Sright or bottom of the container.
 *
 * @param guideline auxiliary line informationb	cdistance from the right side or bottom of the container.
 * @param index auxiliary line index valueQL	Zvoid OH_ArkUI_GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float value	!k	Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return IdQL	Kconst char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guideline	!k	direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return directionQL	C	KAxis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guideline	!k	/left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 *; @return The distance from the left or top of the container	"AGuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guideline	!k	/right side or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index Mvalue.
 * @return The distance from the right side or bottom of the container	"?GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guideline	!creates barrier informationށ&F.
 *
 * @param size Number of barriers.
 * @return barrier informationQL	C	-BarrierOption* OH_ArkUI_BarrierOption_Create(Destroy barrier informR	 barrierStyle barrier informationQL	Cvoid OH_ArkUI_BarrierOption_Dispose(ArkUI_BarrierOption* barrierSty	}	Id of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value id, must be unique and cannot have the same name as $
 * @param index Barrier index valueQL	Vvoid OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* value	!}	direction of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value direction.
 * @param index Barrier index valueQL	void OH_ArkUI_BarrierOption_SetDirection(
    ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t index);
	^	Qdependent component of the barrier.
 *
 * @param barrierStyle barrier informationb	ID of the dependentZ	?Barrier index valueQL	`void OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* value	!k	Id of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The Id of the barrierQL	Jconst char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle	!Gbarrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The direction of the barrierQL	C	VBarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyle	!k	dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @param referencedIndex dependent component Id index value.
 * @return The barrier's dependent components.
 * @since nB	const char* OH_ArkUI_BarrierOption_GetReferencedId(
    ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedInd	Gets the number of dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index aWuxiliary line index value.
 * @return The number of dependent components of the barrierQL	$CBarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyle	!}	Ktypes and parameters related to content transition effects.
 *
 * @since 21P ;

/**
 * @brief creates contenteffects.
 *
 * @param type content transition type: 0-identity, 1-opacity.
 * @return content transition effect.
 * @since 21
 */
* OH__Create(int32_t t 	creates alignment rule information for subcomponents in relative containers.
 *
 * @return Alignment rule information.
 * @sinc[L		C	'* OH_!	_Create()?	stroys the alignment rule information of subcomponents in relative containers.
 *
 * @param option Alignment rule information of suba9elative containerQL	void OH_!	_Dispose(!>	}	Pstart alignment parameter.
 *
 * @param option Alignment rule information of suba9elative container.a	value of the anchorZ	alignment Alignanchorf	void OH_!_SetStart(
    * option, const char* id,- alignm	Nend alignment parameter.
 *
 * @param option Alignment rule information of suba9elative container.a	value of the anchorZ	alignment Alignanchorf	void OH_!_SetEnd(
    * option, const char* id,- alignmd the parameters for horizontal center alignment.
*
* @param option Alignment rule information of suba9elative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to anchor component
{	'_SetCenterHorizontal(
    * option, const char* id,- alignm	Sparameters for top alignment.
 *
 * @param option Alignment rule information of suba9elative container.a	value of the anchorZ	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH_!_SetTop(!* option, const char* id,
   7 alignm	Rbottom alignment parameters.
 *
 * @param option Alignment rule information of suba9elative container.a	value of the anchorZ	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH_!_SetBottom(
    * option, const char* id,7 alignmb the parameters for vertical center alignment.
*
* @param option Alignment rule information of suba9]elative container.
* @param id The id value of the anchor component.
* @param alignment Alignanchor?/	{	'_SetCenterVertical(
    * option, const char* id,7 alignm		horizontal offset paramet1Y under the anchor point constraint.
 *
 * @param option Alignment rule information of suba9Nelative container.
 * @param horizontal bias value in the horizontal directionQL	void OH_!_SetBiasHorizontal(!* option, float horizontalk	vertical offset paramet1Y under the anchor point constraint.
 *
 * @param option Alignment rule information of suba9Jelative container.
 * @param vertical bias value in the vertical directionQL	void OH_!_SetBiasVertical(!* option, float vertical~k	XId of the start-aligned parameter.
 *
 * @param option Alignment rule information of suba98elative container.
 * @return The id value of the anchorf	const char* OH_!_GetStartId(!* option);

/**
* @brief Gets/Ktart-aligned parameter.
*
* @param option Alignment rule information of suba9elative container.
* @return T12	&- OH_!_GetStartAlignment(!>	"Nend alignment parameter.
 *
 * @param option Alignment rule information of suba96elative container.
 * @return End-aligned parameter idQL	const char* OH_!
_GetEndId(!m* option);

/**
* @brief Get the end alignment parameter.
*
* @param option Alignment rule information of suba9elative container.
* @return T1end-aligned parameter&- OH_!_GetEndAlignment(!* option);

/**
* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of suba9Oelative container.
* @return The id of the parameter of horizontal center align!const char* OH_!_GetCenterIdHorizontal(!* option);

/**
* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of suba9elative container.
* @return T1)horizontally centered alignment parameter&- OH_!_GetCenterAlignmentHorizontal(!>	"Mtop-aligned parameters.
 *
 * @param option Alignment rule information of suba96elative container.
 * @return Top aligned parameter idQL	const char* OH_!
_GetTopId(!l* option);

/**
* @brief Get the top-aligned parameters.
*
* @param option Alignment rule information of suba9elative container.
* @return T1top-aligned parameter7 OH_!_GetTopAlignment(!>	"Rbottom alignment parameters.
 *
 * @param option Alignment rule information of suba9Delative container.
 * @return The id of the bottom-aligned parameterQL	const char* OH_!_GetBottomId(!* option);

/**
* @brief Get the bottom alignment parameters.
*
* @param option Alignment rule information of subcomponents in o9elative container.
* @return T1bottom-aligned parameter7 OH_!_GetBottomAlignment(!* option);

/**
* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcb9nelative container.
* @return The id of the vertical center alignment parameter.
* @since 12
*/
const char* OH_!_GetCenterIdVertical(!* option);

/**
* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcb9elative container.
* @return T1#vertical center alignment parameter7 OH_!_GetCenterAlignmentVertical(!>	""bias value in the horizontal direcR	(option Alignment rule information of suba9Helative container.
 * @return The bias value in the horizontal direction	"'_GetBiasHorizontal(!>	" bias value in the vertical direcR	(option Alignment rule information of suba9Yelative container.
 * @return bias value in vertical direction.
 * @since 12
*/
float OH_!_GetBiasVertical(!>	Create a configuration item for the ListitemSwipeActionItem interface settings.
 *
 * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
 *         it indicates creation failure, and the reason for the fa.ilure may be that the address space is full.
 ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create();

/**
* @brief Destroy the ListitemSwipeActionItem instance.C
*
* @param item List Item SwipeActionItem instance to be destroyed{	ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content of ListItem SwipeActYionItem.
*
* @param item List Item SwipeActionItem instance.
* @param node Layout informaz	{	FListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* itemaO		,|		Set the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance<.
* @param distance Component long-distance sliding deletion{	`ListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distanc0 the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
*1 @return Component long-distance sliding deletion. If -1.0f is returned, the return fails.
*         The possible cause of the failure is that the item parameter is abnormal, such as a null pointer.
* @since 12
*/
float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the event to be called when a sliding entry enters the deletion area.
*
* @param item List Item Swi(peActionItem instance.
* @param callback@}	{	cListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)(	}	\sliding entry enters the deletion area.
 *
 * @param item List Item SwipeActionItem instance@u	User defined	Callback EventaB	jvoid OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* itemz	
callback)(@{	 Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
*
* @param item List It.em SwipeActionItem instance.
* @param callback@}	{	ZListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)(	}	component enters the long-range deletion area and deletes a ListItem.
 *
 * @param item List Item SwipeActionItem instance.
 * Eu	User defined	Callback EventaB	avoid OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* itemz	
callback)(@{	 Set the event to be called when a sliding entry exits the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback@}	{	bListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)(	}	[sliding entry exits the deletion area.
 *
 * @param item List Item SwipeActionItem instance@u	User defined	Callback EventaB	ivoid OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* itemz	
callback)(@{	 Setqliding state of a list item~	:item List Item SwipeActionItem instance.
* @param callback@}	(       swipeActionState The changed stat!	 QListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* item,
   	)ListItemSwipeActionState swipeActionState	}	vliding state of a list item\	'item List Item SwipeActionItem instance@u	User defined	=Callback Events.
 *        swipeActionState The changed stateQL	fvoid OH_ArkUI_ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* itemz		(ListItemSwipeActionState swipeActionStat={		
Create a configuration item for the ListitemSwipeActionOption interface settings.
 *
 * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for t3he failure may be that the address space is full.
 ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create();

/**
* @brief Destroy the ListitemSwipeActionOption insMtance.
*
* @param option List Item SwipeActionOption instance to be destroyed{	ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeActionOption* option);

/**
* @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param option List Item SwipeActionItem insta!nce.
* @param item Layout informaz	{	ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
* of the ListItem SwipeActionItem.
*
*O @param option List Item SwipeActionItem instance.
* @param item Layout informaz	{	ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @param edgeEffect Sliding effect.
* @since 1{	ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeEdgeEffect edgeEffect);

/**
* @brief Get the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option para)meter is abnormal, such as a null pointer@"OListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeActionOption* optionx	,liding operation offset~	<option List Item SwipeActionItem instance.
* @param callback@}	       offset Slide offset{	ListItemSwipeActionOption_SetOnOffsetChange(ArkUI_ListItemSwipeActionOption* option,
    void (*callback)(float offset));

/**
	
}	vliding operation offset\	)option List Item SwipeActionItem instance@u	User defined	.Callback Events.
 *        offset Slide offsetQL	mvoid OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* optionz	callback)(float offset>{		
Create configuration items for the ListChildrenMainSize interface settings.
 *
 * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure ma&y be that the address space is full.
 ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOption_Create();

/**
* @brief Destroy the ListChildrenMainSize instance.
*
	-ListChildrenMainSize instance to be destroyed{	=ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize>	}	'	*ize of ChildrenMainSizeOption for the List c	option ListChildrenMainSize instance.
 * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
 * @return 0 represents success. If defaultMainSize is less than 0 or option is a null pointer, return 401.
 * @since 12
*/
ijListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
    float defaultMainSizL	k	3default size of ChildrenMainSizeOption for the List c	option ListChildrenMainSize instance.
 * @return The default size of the ListItem under the List is 0, measured in vp.
 *         When the option is a null pointer, it returns -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSize>	;Reset the array size of ChildrenMainSizeOption for the List c	Goption ListChildrenMainSize instance.
 * @param totalSize Array size.
 {	VListChildrenMainSizeOption_Resize(ArkUI_ListChildrenMainSize* option, int32_t totalSizL	=Resize the ChildrenMainSizeOption array operation on the List c	option ListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param deleteCount The number of MainSize arrays to be deleted starting from index.
 * @param addCount The number of MainSize arrays to be added starting from index.
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
*/
intListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
    int32_t deleteCount, int32_t addCount)@Update the value of the ChildrenMainSizeOption array in the List c	option ListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param mainSize The actual modified value.
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
*/jListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
    int32_t index, float mainSizL	k	d	)ChildrenMainSizeOption array for the List c	#option ListChildrenMainSize instancWo	position of the value to bd	The value of the specific position of the array. If the function parameter is abnormal, return -1.
 * @since 12
*/
float OH_ArkLUI_ListChildrenMainSizeOption_GetMainSize(ArkUI_ListChildrenMainSize* option	!Creates5	for this custom span.
 *Qma <b>CustomSpanMeasureInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 ^CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void);

/**
 * @brief Disposes of5	Ythis custom span.
 *
 * @param info The CustomSpanMeasureInfo instance to be destroyed.
 {	CustomSpanMeasureInfo_Dispose(7	) font size of a custom span.
 *
 Z;	5	(	font size. I, <b>0.0f</b> is returned.
 *-7	[A * @since 12
*/
float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(7	)> * @brief Creates measurement metrics for this custom span.
 *Qia <b>CustomSpanMetrics</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 :	OH_:	)_Create(void);

/**
 * @brief Disposes of.8	Xthis custom span.
 *
 * @param metrics The CustomSpanMetrics instance to be destroyed.
 {	:		_Dispose(:	(Twidth for a custom span.
 *
 8	%a <b>CustomSpanMetrics</b> instance.
K	#+, in px. The width should be greater than 0	0-0	
.7	Z  :	
_SetWidth(:	 , float widthLheight for a custom span.
 *
 8	%a <b>CustomSpanMetrics</b> instance.
K	@e+, in px. The width should be greater than 0	0-0	
.7	Z  :	_SetHeight(:	 , float heigh4Creates drawing information for this custom span.
 *Qja <b>CustomSpanDrawInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 5=	OH_/=	_Create(void);

/**
 * @brief Disposes of drawing information for this custom span.
 *
 * @param info The CustomSpanDrawInfo instance to be destroyed.
 {	5=		_Dispose(/=	0D	8x-axis offset of the custom span relative to the mounted c	c;	v;	5		x-axis offset. I, <b>0.0f</b> is returned.
 *-7	[ * @since 12
*/
float OH_/=	_GetXOffset(/=	0D	5top margin of the custom span relative to the mounted c	c;	v;	5		top margin. I, <b>0.0f</b> is returned.
 *-7	[ * @since 12
*/
float OH_/=	_GetLineTop(/=	0D	8bottom margin of the custom span relative to the mounted c	c;	v;	5		bottom margin. I, <b>0.0f</b> is returned.
 *-7	[ * @since 12
*/
float OH_/=	_GetLineB   ottom(/=	0D	:baseline offset of the custom span relative to the mounted c	c;	v;	5		baseline offset. I, <b>0.0f</b> is returned.
 *-7	[ * @since 12
*/
float OH_/=	_GetBaseline(/=	0PCreate a image frame from the image path.
 * @param src Indicates the image path	_image frame object.
 *7x	 the object fails to be created. The possible cause is that
 * the src parameter is abnormal, for example, the pointer is null.
 ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src);

/**
 * @brief Create a image frame from t,he drawable descriptor.
 *
 * @param drawablaM	drawable descriptor	_image frame object.
 *7x	 the object fails to be created. The possible cause is that
 * the drawable parameter is abnormal, for example, the pointer is null.
 YImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
   i* drawa	Destroy#image frame.
 *
 * @param imageInfoimage frame.
 {	FImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfok	frame.
 *
 * @param imageInfoimage frame.
K	#Mframe, and the unit is PX.
 {	VImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width~k	frame.
 *
 * @param imageInfoimage frame	 theAframe, and the unit is PX. Return 0 when the imageInfo is null.
  GImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfok	frame.
 *
 * @param imageInfoimage frame.
t	%frame, and the unit is PX.
 {	WImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t heigh1	frame.
 *
 * @param imageInfoimage frame	 theAframe, and the unit is PX. Return 0 when the imageInfo is null.
  HImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfok	i?image*widget.
 *
 * @param imageInfoimage frame.
 * @param topi%?image* widget,
 * and the unit is PX.
 {	RImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top~k	i?image*widget.
 *
 * @param imageInfoimage frame	i?image*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
  EImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfok	
horizontal1image*widget.
 *
 * @param imageInfoimage frame.
 * @param lefti2image* widget,
 * and the unit is PX.
 {	SImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t lef1	
horizontal1image*widget.
 *
 * @param imageInfoimage frame	
horizontal1image*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
  FImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfok	
2uration of the image frame.
 *
 * @param imageInfoimage frame.
 * @param dura!Fplayback duration of each image frame, and the unit is milliseconds.
 {	XImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t dura	k	*of the image frame.
 *
 * @param imageInfoimage frame	playback duration of the image frame, and the unit is milliseconds.
 * Return 0 when the imageInfo is null.
 * @since 12
*/
intImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Create accessibility state.
 *
 * @V_accessibility state object.
 *7x	 Wthe object fails to be created. The possible cause is that the address space is full.
 \* OH_\e_Create(void);

/**
* @brief Dispose accessibility state.
*
* @param state accessibility state object{	\	_Dispose(\* statL	Set accessibility state disabled.
 *
 * @param state accessibility state object.
 * @param isDisabled accessibility state disab9led, Value 1 indicates disabled and 0 indicates enbled.
 {	\_SetDisabled(\* state, int32_t isDisabled~k	Caccessibility state disabled.
 *
 * @param state accessibility statf	Kaccessibility state disabled, Value 1 indicates disabled and 0 indicates enP0.
 *         If the function parameter is abnormal, return the default value.
  \_IsDisabled(\* statL	Set accessibility state selected.
 *
 * @param state accessibility state object.
 * @param isSelected accessibility state selecAted, Value 1 indicates selected, and 0 indicates not selected.
 *!0.
 {	\_SetSelected(\* state, int32_t isSelected~k	Caccessibility state selected.
 *
 * @param state accessibility statf	Zaccessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *!P0.
 *         If the function parameter is abnormal, return the default value.
  \_IsSelected(\* statL	Set accessibility checked state.
 *
 * @param state accessibility state object.
 * @param checkedState checked state, and uses GYCheckedStat@G,
 *!oCCESSIBILITY_UNCHECKED.
 {	\_SetCheckedState(\* state, int32_t checkedStatL	k	Baccessibility checked state.
 *
 * @param state accessibility statf	checked state, >Y'CheckedStat@G,
 *!oeCCESSIBILITY_UNCHECKED.
 *         If the function parameter is abnormal, return the default value.
  \_GetCheckedState(\* statL	Create accessibility value.
 *Q_accessibility state object.
 *7x	 Wthe object fails to be created. The possible cause is that the address space is full.
 d_* OH_^_e_Create(void);

/**
* @brief Dispose accessibility value.
*
* @param value accessibility value object{	d_	_Dispose(^_Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param min minimum value based on range components,*-1.
 {	d__SetMin(^_* value, int32_t mi!	k	Baccessibility minimum value.
 *
 * @param value accessibility valuf	(minimum value based on range components,*B-1.
 *         If the function parameter is abnormal, return -1.
  d__GetMin(^_Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param max maximum value based on range components,*-1.
 {	d__SetMax(^_* value, int32_t max~k	Baccessibility minimum value.
 *
 * @param value accessibility valuf	(maximum value based on range components,*B-1.
 *         If the function parameter is abnormal, return -1.
  d__GetMax(^_Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param current value based on range components,*-1.
 {	d__SetCurrent(^_* value, int32_t curr	k	Baccessibility current value.
 *
 * @param value accessibility valuf	(current value based on range components,*B-1.
 *         If the function parameter is abnormal, return -1.
  d__GetCurrent(^_Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param rangeMin minimum value based on range components,*-1.
 * @since 18
*/
void OH_^__SetRangeMin(^_* value, int32_t rangeMi!	k	Baccessibility minimum value.
 *
 * @param value accessibility valuf	(minimum value based on range components,*M-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18ѯd__GetRangeMin(^_Set accessibility maximum value.
 *
 * @param value accessibility value object.
 * @param rangeMax maximum value based on range components,*-1.
 * @since 18
*/
void OH_^__SetRangeMax(^_* value, int32_t rangeMax~k	Baccessibility maximum value.
 *
 * @param value accessibility valuf	(maximum value based on range components,*M-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18ѯd__GetRangeMax(^_Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param rangeCurrent value based on range components,*-1.
 * @since 18
*/
void OH_^__SetRangeCurrent(^_* value, int32_t rangeCurr	k	Baccessibility current value.
 *
 * @param value accessibility valuf	(current value based on range components,*M-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18ѯd__GetRangeCurrent(^_Set accessibility text value.
 *
 * @param value accessibility value object.
 * @param text The textual description information&, which defaults to an empty string.
 {	d_	_SetText(^_* value, const char* tex1	?accessibility text value.
 *
 * @param value accessibility valuf	The textual description informa, which defaults to an empty string;
 *         If the function parameter is abnormal, return null.
 * @since 12
*/
const char* OH_^_	_GetText(^_Destroy the instance of Customs Property.
 *
 * @param handle The instance of Customs Property to be destroyed.
 * @since 14
 *
/
void OH_f		_Destroy(f	 hand	k	custom attribute value informR	handle Custom attribute object pointer.
 * @return Customize the value information within the attribute structure.
 * @since 14
 */
const char* OH_f	_GetStringValue(f	 hand	k	window name from HostWindowInfo.
 *
 * @param info HostWindowInfo object pointer.
 * @return Window name in HostWindowInfo.
 * &	Gconst char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info)?	bstroy the instance of HostWindowInfo.
 *
 * @param info Instance of HostWindowInfo to be destroyed!	void5m	 (ArkUI_HostWindowInfo* info)?	stroy ActiveChildenInfo instance.
 *
 * @param handle ActiveChild instance to be destroyed.
 * @since 14
 */
void OH_ArkUI_Acti'i		_Destroy(i	 hand		child nodes of ActiveChildenInfo with the structure index.
 *
 * @param handle The ActiveChildenInfo instance for obtaining informationXo	dchild nodes.
 * @return The child node pointer corresponding to the index. Return nullptr in case ofq	h	f	#i	_GetNodeByIndex(i	 handle	!Pi	number of nodes within the structure of ActiveChildenInfo.
 *
 * @param handle The ActiveChildenInfo instance for obtaining inf<ormation.
 * @return Number of child nodes. Default value: 0e	$#i	
_GetCount(i	 hand	Create linearstyle information.
 *Qna <b>ProgressLinearStyleOption</b> instance.
 * <br> If the result returns nullptr, there may be out of memory!	* OH__Create(void)?	stroy linearstyle informR	option Linearstyle informa	void OH_	_Destroy(>	>2scan effect is enabled.
 *
 * @param option Linear$style information.
 * @param enabledF can effect. Default value: false!	void OH__SetScanEffectEnabled(* option, bool enabled);

/**
>7smoothing effect is enabled.
 *
 * @param option Linear$style information.
 * @param enabledFmooth effect. When this effect is enabled, the progress change to
 * the set value takes place gradually. Otherwise, it takes p%lace immediately. Default value: true!	void OH__SetSmoothEffectEnabled(2* option, bool enabled);

/**
 * @brief Set linear(stroke width.
 *
 * @param option Linear5style information.
 * @param strokeWidth Stroke width8 It cannot be set in percentage.
 * Default value: 4.0vp!	void OH__SetStrokeWidth(7* option, float strokeWidth);

/**
 * @brief Set linear)stroke radius.
 *
 * @param option Linear?style information.
 * @param strokeRadius Rounded corner radiusA Value range: [0, strokeWidth/2].
 * Default value: strokeWidth/2!	void OH__SetStrokeRadius(* option, float strokeRadius~k	9whether scan effect is enable.
 *
 * @param option Linearstyle information.
 * @returnFcan eff`	bool OH__GetScanEffectEnabled(>	?whether smoothing effect is enabled.
 *
 * @param option Linearstyle information.
 * @returnF	mooth eff`	bool OH__GetSmoothEffectEnabled(>	linear(stroke width.
 *
 * @param option Linear*style information.
 * @return Stroke width"		float OH__GetStrokeWidth(>	linear)stroke radius.
 *
 * @param option Linear3style information.
 * @return Rounded corner radius"		float OH__GetStrokeRadius(>	Create a_	instance.
 *Qa_	Binstance. If the result is a null pointer, it may be out of memory!		OH_	_Create(void)?	stroy	instance.
 *߉	,instance!	void OH_		_Destroy(	3Enable the attribute setting in	R		 ,.
 * @param enabled The attribute setting in	.
 * Default value: false!	void OH_	_SetAttributeSettingStatus(	!, bool enabled~k	attribute setting enable of	R		 ,.
 * @return The attribute setting enable of		bool OH_	_GetAttributeSettingStatus(	3\Creates an option for taking snapshot, the returned value must be released through
 *       AstroySnapshotOptions}ݕ	more.
 *Q_snapshot options object.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for th/e failure may be that the address space is full!		UOH_ArkUI_CreateSnapshotOptions();

/**
 * @brief Dispose a snapshot option object.
 *ܙ	
snapshot o	%void OH_ArkUI_DestroySnapshotOptions(	&;);

/**
 * @brief Config the snapshot option with scale.
 *ܙ	Qsnapshot option.
 * @param scale Indicates the scale property to take the snapshoK	.		
_SetScale(	'
 float sca	^	color mode for snapshot capture.
 * By default, snapshots are captured in SRGB mode, which may lose visual effects for componen1ts using wide color
 * gamut display modes.
 * If's color space is known, specify it through <b>colorSpace</b> and set <b>isAuto</b> to
 * <b>false</b> to achieve optimal snapshot quality.
 * Since determining the exact color space used by a component is often difficult, set <b>isAuto</b> to <b>true</bX>
 * to let the system automatically select the appropriate color space.
 * If <b>isAutoΝ4the <b>colorSpace</b> parameter value is ignored.
 *ܙ	Pointer to the target snapshot configuration options.
 * @param colorSpace Target color space. Supported values: <b>3</b> (DISP	#
O 	@param isAuto Whether to auto-detect the color space.
 *               <b>true</b>: ignores the <b>colorSpace</b> parameter value and auto-detects the color space.
 *               <b>false</b>: uses the color space specified by <b>colorSpace</b>.
 * @re	0-[	
		_SetColorMode(	'  int32_t colorSpace, bool isAutoLfor snapshot capture.
}$system captures snapshots in {@link !} mode.
 * To use a specific mode, specify it via the <b>dynamicRangeMode</b> parameter and set <b>isAuto</b> to <b>false</b>.
 * Alternatively, set <b>isAuto</b> to <b>true</b> to let the system auto-detect the appropriate dynamic range mode.
 * If <b>isAutoΝ:the <b>dynamicRangeMode</b> parameter value is ignored.
 *ܙ	jPointer to the target snapshot configuration options.
 * @param dynamicRangeMode Target dynamic range modeol	isAuto Whether to auto-detect the dynamic range mode.
 *               <b>true</b>: ignores the <b>dynamicRangeMode</b> paramet,er value and auto-detects the dynamic range
O8           mode.
 *               <b>false</b>: uses the$specified by <b>dynamicRangeMode</b>	0-[	
		_SetDynamicRangeMode(
   	(' int32_t dynamicRangeMode, bool isAuto)?		{#7P&;

/**
* @brief Creates an instance of{ parameters
*0created instance of{2	7
*/
* OH_3_Create();

/**
* @brief Disposes of an instance of{P parameters.
*
* @param option Instance to be destroyed.
* @since 17
*/
void OH_	_Dispose(* optionthreshold ratio{~	option Instance of{[ parameters.
* @param value Array of threshold ratios. Each element represents the ratio of	Fa component to
* its total area. The visible area is calculated withinR	's bounds; any area outside the parent
* component is not considered. Each value must be within the [0.0, 1.0] range.
* Values ]outside this range will be handled as 0.0 or 1.0.
* @param size Size of the threshold array.
q	#z6	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17ѯ_SetRatios(* option, float}		expected update interval{~	option Instance of{= parameters.
* @param value Expected update interval, in ms. 
1000</b>.
q	#z6	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17ѯ_SetExpectedUpdateInterval(
    *option, int32_t valuflag for controlling ips can exceed the parent's bounds.
* if set to false, the part that exceeds the parent's bounds will be considered as invisible area,
* set to true to allow the exceeding, the part that exceeds will be considered as visible area.
*
* Please note that if tR	g set clip(true), the measureFromViewport configuration
* will be ignored.
*
* @param option Instance of{ parameters.
* @param measureFromViewport When this parameter is set to true, the parts of the component
*    that exceed the pR	 's area will also be included in.alculation. However, this
*    only applies ifR	6 does not explicitly set the clip property to true. IfR	Y
*    sets clip to true, regardless of the value of this parameter, the parts that exceedR	2's area
*    will still be treated as invisible in9alculation.
* Default measureFromViewport: <b>false</b>.
q	#z6	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 2ѵ_SetMeasureFromViewport(
   !* option, bool measureFromViewporthreshold ratio{\	option Instance of{b parameters.
 * @param value Array of threshold ratios.
 * @param size Size of the threshold array	0-0	*BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiUlure in parameter validation;
 *         the parameter must not be null.
 * @since 17q	_GetRatios(* option, float* value, int32_tQ	oexpected update interval{\	option Instance of{ parameters	 xpected update interval, in ms. 1000</b>.
 * @since 17q	_GetExpectedUpdateInterval(>	D	value se/:_SetMeasureFromViewport} .
 *
 * @param option Instance of{ parameters	flag for controlling of
alculation'false</b>.
 *
 * @since 22
 */
bool OH__GetMeasureFromViewport(>	
Creates a _/ instance.
 *
 * @param lengthq#icker array. Value range: [1, +∞)	aXinstance on success. Initialize each item of the array
 *         as a null pointer;call1X,n/Array_SetIconAtIndex} and/or!	9X,n/.Array_SetTextAtIndex} for each index as neededS		ptr</b> if <b>length</b> is not in <b>[1, +∞)</b>.
 *         When the object is no longer used, release it with {@link OH_Ar>X,n/!Array_Destroy}.
 * @since 19
 */
,n/
Array* OH_,n/Array_Create(int32_t lengthL,icon resource path or URI for one item in an,n//Array}.
 *
 * @param handle Pointer returned by1X,n/Array_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param icon Null-terminated C string for the icon (path or URI). The content is copied into the array; the caller
 *        keeps ownership of <b>icon</b>. If <b>nullptr</b>, this function has no effec	ex of the item	bare greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to1X,n/Array_Create}. Otherwise this function
 *        does nothing.
 * @note If an icon was already set at <b>index</b>, the previouNs buffer is released before assigning the new value.
 * @since 19
 */
void OH_,n/Array_SetIconAtIndex(
   ,n/Array* handle, char* icon	!^	display text for one item in an,n//Array}.
 *
 * @param handle Pointer returned by1X,n/Array_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param text Null-terminated C string shown for the item. The content is copied into the array; the caller keeps
 *        ownership of <b>text</b>. If <b>nullptr</b>, this function has no effec	ex of the item	bare greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to1X,n/Array_Create}. Otherwise this function
 *        does nothing.
 * @note If text was already set at <b>index</b>, the previous bKuffer is released before assigning the new value.
 * @since 19
 */
void OH_,n/Array_SetTextAtIndex(
   ,n/Array* handle, char* tex	"Releases an,n/Array} created by
 *       1X,n/Array_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this calZl, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *      1X,n/(Array_Create}.
 * @since 19
 */
void OH_,n/Array_Destroy(,n/Array* hand	bAllocates one column level of an interconnected (cascade) TextPicker range. Use with range type
 *Ah	2-CASCADE_RANGE_CONTENT}. The returned pointer addresses a contiguous array
 *        of sibling nodes; each node may carry displ7ay text and an optional next-level range from
 *       1XascadePickerRangeContentArray_SetChildAtIndex}.
 *
 * @param length Number of sibling entries on this column. Value range: <b>[1, +∞)</b>	a pointer to the first sibling node when <b>length</b> is in <b>[1, +∞)</b>; returns <b>nullptr</b>
 *         otherwise. The sibling count used for bounds checks equals <b>length</b>.
 * @since 19
 */
ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI9_TextCascadePickerRangeContentArray_Create(int32_t lengthLhdisplay text for one sibling node on a cascade TextPicker level.
 *
 * @param handle Pointer returned by1XascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param text Null-terminated C string. The content is copied; the caller keeps ownership of <b>text</b>. If
 *        <b>nullptr</b>, this function has no effec	ex of the sibling	bare greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to1XascadePickerRangeContentArray_Create}. Otherwise this
 *        function does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRange\ContentArray_SetTextAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, char* tex	"^	[childs info of items in a multi text picker ranges.
 *
 * @param handle Pointer returned by1XascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param child Pointer returned by1XascadePickerRangeContentArray_Create} for the child column.
 *        If <b>nullptr</b>, this function has no effect. If a subtBree already exists at <b>index</b>, it is destroyed
 *        with1XascadePickerRangeContentArray_Destroy} before the new <b>child</b> is stored.
 *        While <b>child</b> stays attached under/ the parent, the caller must not call
 *       1X6ascadePickerRangeContentArray_Destroy} on <b>child</b>	ex of the sibling that owns the subtree. Valid values are greater than or equal to <b>0</b> and less
 *        than the <b>length</b> argument passed to1XascadePickerRangeContentArray_Create}.
 *        Otherwise this function does nothing.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, ArkUI_TextCascadePickerRangeContentArray* child	!-Releases a cascade range level allocated with1XascadePickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_Ar>X	;ascadePickerRangeContentArray_Create}.
 * @note Do not call1XascadePickerRangeContentArray_Destroy} on a <b>child</b> while
 *       it is still stored in a parent's {@code children}.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handle);

/**
 		Create an object for the EmbeddedComponent option.
 *
 * @return A pointer to the object of the EmbeddedComponent option.
 * @sW	AmbeddedComponentOption* OH_ArkUI_EmbeddedComponentOption_Create()?	(stroy the object by EmbeddedComponent opR	option Pointer to the object by the EmbeddeComponent to be destroyed.
 * @since 20
 */
void OH_ArkUI_EmbeddedComponentOption_Dispose(ArkUI_EmbeddedComponent8	 }	onError of EmbeddedC	4option Pointer to the object option by the EmbeddedCZ	code Common error ih8API invoking failure.
 * @param name Common error name ih>API invoking failure.
 * @param message Common error message ihAPI invoking failure.
 * @since 20
 */
void OH_ArkUI_EmbeddedComponentOption_SetOnError(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t cb	#message	}	onTerminated of EmbeddedC	4option Pointer to the object option by the EmbeddedCZ	code Result code returned when the EmbeddedUIExtensionAbility exits.
 * @param want Data returned when the EmbeddedUIExtensionAbility exit	void OH_ArkUI_EmbeddedComponentOption_SetOnTerminated(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, AbilityBase_Want* wa	Expand the swipe acR	CList Item node.
 * @param direction expand direction of swipeAction	F@e	22ERROR} The component type of the node is incorrect[	'	"node not mounted to component tree	$ListItemSwipeAction_0r		"ListItemSwipeActionDirection direc	llapse the swipe acR		List Item h	}2ERROR} The component type of the node is incorrect[	'	"node not mounted to component tree	$ListItemSwipeAction_Collapsg	)Create an edge object for position attribute.
 *
 * @return A pointer to the edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Create();

/**
 * @brief Creates a deep copy of an edge object for position attribute.
 *
 * @param edges A pointer to an edgf	A pointer to the new edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Copy(const ArkUI_PositionEdges* edges);

/**
 * @brief Dispose an edge object for position attribute.
 *
 * @param edges Pointer to the edge object to be dispos	>void OH_ArkUI_PositionEdges_Dispose(ArkUI_PositionEdges* edgesL`top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	distance of top edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetTop(&ArkUI_PositionEdges* edges, float valuL	iGets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	Idistance of top edge to the corresponding edge of parent container, in vp	.WR2",		<PositionEdges_GetTop(ArkUI_PositionEdges* edges, float* valuL	^	aleft edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	distance of left edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetLef(t(ArkUI_PositionEdges* edges, float valuL	jGets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	Jdistance of left edge to the corresponding edge of parent container, in vp	.WR2",		=PositionEdges_GetLeft(ArkUI_PositionEdges* edges, float* valuL	^	cbottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	distance of bottom edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetB,ottom(ArkUI_PositionEdges* edges, float valuL	lGets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	Ldistance of bottom edge to the corresponding edge of parent container, in vp	.WR2",		?PositionEdges_GetBottom(ArkUI_PositionEdges* edges, float* valuL	^
aight edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	distance of right edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetRi*ght(ArkUI_PositionEdges* edges, float valuL	kGets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge objectb	Kdistance of right edge to the corresponding edge of parent container, in vp	.WR2",		>PositionEdges_GetRight(ArkUI_PositionEdges* edges, float* valuL	Create a policy object for PixelRound attribute.
 *
 * @return A pointer to the policy object.
 * @since 21
 */
ArkUI_PixelRoundPolicy* OH_ArkUI_PixelRoundPolicy_Create();

/**
 * @brief Dispose a policy object for PixelRound attribute.
 *
 * @param poli,cy Pointer to the policy object to be dispos	>void OH_ArkUI_PixelRoundPolicy_Dispose(ArkUI_PixelRoundPolicy*	^	ftop edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy objectb	CalcPolicy of top edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuL	Gets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu.b	CalcPolicy of top edge	.WR2",		XPixelRoundPolicy_GetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuL	^	hstart edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy objectb	CalcPolicy of start edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuL	Gets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param va,b	CalcPolicy of start edge	.WR2",		ZPixelRoundPolicy_GetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuL	^	ibottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy objectb	CalcPolicy of bottom edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuL	Gets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param v+b		CalcPolicy of bottom edge	.WR2",		[PixelRoundPolicy_GetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuL	^	fend edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy objectb	CalcPolicy of end edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuL	Gets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu.b	CalcPolicy of end edge	.WR2",		XPixelRoundPolicy_GetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuL	)_nfiguration object for textField's counter.
 *
 * @return A pointer to the configuration objectShowCounterConfig* OH_ArkUI_ShowCounterConfig_Create();

/**
 * @brief Disposes a configuration object for textField's counter.
 *
 * @param config Pointer to the configuration object to be disposed.
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_Dispo"se(ArkUI_ShowCounterConfig* configLcolor of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField hasn't wanted to exceed the maximum chara
cter count!
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_SetCounterTextColor(ArkUI_ShowCounterConfig* config, uint32_t color);

/**
 *Vcolor of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField wants to exceed the maximum character count, in 0'
 * @since 22
 */
void OH_ArkUI_ShowCounterConfig_SetCounterTextOverflowColor(ArkUI_ShowCounterConfig* config, uint32_t color);

/**
 * @brief Gets the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configurationf	pWcolor of the counter when textField hasn't wanted to exceed the maximum character count!
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextColor(ArkUI_ShowCounterConfig* config);

/**
 * @brief Gets the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configurationf	pOcolor of the counter when textField wants to exceed the maximum character count!
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextOverflowColor(ArkUI_ShowCounterConfig* config);

/**
 * @br?	,menu item for edit menu item.
 *
 * @since 2OTextMenuItem ArkUI_TextMenuItem;
/**
 * @brief Create an object of the text edit menu item.
 *
 * @return A pointer to the ArkUI_TextMenuItemextMenuItem* OH_ArkUI_TextMenuItem_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @param textMenuItem Pointer to the ArkUI_TextMenuItem object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextMenuItem_Dispose(ArkUI_TextMenuItem* textMenuItem);

/**
 * @brief Set text menu item title.
 *
 * @param item The text menu item.
 * @param content The n^ame of the text menu item, which defaults to an empty string. The string will copy to framewor	Ɨm	S		BTextMenuItem_SetContent(ArkUI_TextMenuItem* item, const char* cont	k	ext menu item title.
 *
 * @param item The text menu item object.
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The name of the text menu item, which defaults to an empty sXtring;
 * @param writeLength Indicates the string length actually written to the buffer
O   when returning%	".
OE   Indicates the minimum buffer size that can accommodate the target
O   when/BUFFER_SIZE_ERROR} is returned.
 *
 * @return Tp]	0v	"@[	U"node, buffer or writeLength is nulђ	&JBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size	TextMenuItem_GetContent(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item icon.
 *
 * @param item The text menu item.
 * @param icon The text menu item icon resource, which defa9ults to an empty string. The string will copy to framewor	Ɨm	S		=TextMenuItem_SetIcon(ArkUI_TextMenuItem* item, const char* ic 	k	ext menu item icon.
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The icon of the text menu item, which defaults to an empty strVing;
 * @param writeLength Indicates the string length actually written to the buffer
O   when returning%	".
OE   Indicates the minimum buffer size that can accommodate the target
O   when/BUFFER_SIZE_ERROR} is returned.
 *
 * @return Tp]	0v	"@[	U"node, buffer or writeLength is nulђ	&JBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size	TextMenuItem_GetIcon(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item label info for keyboard shortcut.
 *
 * @param item The text menu item.
 * @param labelInfo The text menu citem shortcut displays, which defaults to an empty string.
 *      The string will copy to framewor	Ɨm	S		ITextMenuItem_SetLabelInfo(ArkUI_TextMenuItem* item, const char* labelInfo~k	ext menu item label info for keyboard shortcut..
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The shortcuts of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *     O   when returning%	".
OE   Indicates the minimum buffer size that can accommodate the target
O   when/BUFFER_SIZE_ERROR} is returned.
 *
 * @return Tp]	0v	"@[	U"node, buffer or writeLength is nulђ	&JBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size	TextMenuItem_GetLabelInfo(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * `@brief Set text menu item id.
 *
 * @param item The text menu item.
 * @param id The text menu iq	S	m	S		+TextMenuItem_SetId(ArkUI_TextMenuItem* itemok	aext menu item id.
 *
 * @param item The text menu item object
 * @param id The text menu item id;	ėm	S	22
`	?TextMenuItem_GetId(const ArkUI_TextMenuItem* item, int32_t* id)?	#ext menu item array.
 *
 * @since 2O)TextMenuItemArray ArkUI_TextMenuItemArrayk	ksize of text menu items.
 *
 * @param items The text menu items.
 * @param size The size of text menu items	m	S	22
`	FTextMenuItemArray_GetSize(ArkUI_TextMenuItemArray* items, int32_t* sizL	k	>ext menu item at index.
 *
 * @param items The text menu itemsXo	 Cext menu items.
 * @param item The text menu item at index of array	m	S		TextMenuItemArray_GetItem(ArkUI_TextMenuItemArray* items, int32_t index,
    ArkUI_TextMenuItem** item);

/**
 * @brief Insert text menu item at index.
 *
 * @param items The text menu items.
 * @param item The text menu item at index of array. The item will copy by frameworkXo	 ext menu items	m	S		VTextMenuItemArray_Insert(ArkUI_TextMenuItemArray* items, ArkUI_TextMenuItem* item,
   	 EErase text menu item at index.
 *
 * @param items The text menu itemsXo	 ext menu items	m	S		6TextMenuItemArray_Erase(ArkUI_TextMenuItemArray* items	!;Clear all the items.
 *
 * @param items The text menu items	m	S		7TextMenuItemArray_Clear(ArkUI_TextMenuItemArray* items)  !text menu item id.
 *
 * @since 2$=Indicates the TextMenuItemId to copy and delete the currentlyTEXT_MENU_ITEM_ID_CUT = RIndicates the TextMenuItemId to copy the currently selected text to the clipboard.TEXT_MENU_ITEM_ID_COPY = 1,

    /**
     * Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.TEXT_MENU_ITEM_ID_PASTE = Indicates the TextMenuItemIda text view.TEXT_MENU_ITEM_ID_SELECT_ALL = BIndicates the TextMenuItemId for collaboration service menu items.TEXT_MENU_ITEM_ID_COLLABORATION_SERVICE = 4,

    /**
     * Indicates the TextMenuItemId to recognize the text in the picture  and input it into the text view.!TEXT_MENU_ITEM_ID_CAMERA_INPUT = ,QIndicates the TextMenuItemId to help with text creation by invoking large models.TEXT_MENU_ITEM_ID_AI_WRITER = )Indicates the TextMenuItemId to translatep.WTEXT_MENU_ITEM_ID_TRANSLATE = 7,

    /**
     * Indicates the TextMenuItemId to searchp.STEXT_MENU_ITEM_ID_SEARCH = 8,

    /**
     * Indicates the TextMenuItemId to sharep.TEXT_MENU_ITEM_ID_SHARE = 5)Indicates the TextMenuItemId to open url.TEXT_MENU_ITEM_ID_URL = +Indicates the TextMenuItemId to open email.TEXT_MENU_ITEM_ID_EMAIL = 6Indicates the TextMenuItemId to call the phone number."TEXT_MENU_ITEM_ID_PHONE_NUMBER = 1)Indicates the TextMenuItemId to open map.TEXT_MENU_ITEM_ID_ADDRESS = .Indicates the TextMenuItemId to open calendar.]TEXT_MENU_ITEM_ID_DATA_TIME = 14,

    /**
     * Indicates the TextMenuItemId for asking AI.TEXT_MENU_ITEM_ID_ASK_AI = 1,LAutofill. For example, the account and password can be automatically filled.TEXT_MENU_ITEM_ID_AUTO_FILL = 1Password vault.`TEXT_MENU_ITEM_ID_PASSWORD_VAULT = 17,

    /**
     * Inclusive begin of app-reserved ID range.+TEXT_MENU_ITEM_ID_APP_RESERVED_BEGIN = 1000'Inclusive end of app-reserved ID range.BTEXT_MENU_ITEM_ID_APP_RESERVED_END = 20000,
} ArkUI_TextMenuItemId?	/menu item for edit menu options.
 *
 * @since 2OTextEditMenuOptions ArkUI_TextEditMenuOptions;
/**
 * @brief Create an object of the text edit menu options.
 *
 * @return A po&inter to the ArkUI_TextEditMenuOptionsextEditMenuOptions* OH_ArkUI_TextEditMenuOptions_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextEdi]tMenuOptions_Dispose(ArkUI_TextEditMenuOptions* editMenuOptions);

/**
 * The text menu creatQ@		R	fitems The framework creates and owns the array.
 *     In callback: the developer can modify the array	<X
MenuItemArray_Insert},
 *    1X\MenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance@u	User defined data.
 * @since 2@	TextCreateMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text me	nu preparQ@		R	fitems The framework creates and owns the array.
 *     In callback: the developer can modify the array	<X
MenuItemArray_Insert},
 *    1X\MenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance@u	User defined data.
 * @since 2@	TextPrepareMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text menu item clickA	R	:item The menu item click.
 * @param start The start offset.
 * @param end The end offset@u	The user data.
 * @return bool Return True, the event is consumed, false otherwise.
 * @since 22
 */
typedef bool (*ArkUI_TextMenuItemClickCallback)(
    const ArkUI_TextMenuItem*    item,
    int32_t                      start,
    int32_t              7        end,
    void*                        userData
k	event to be called when text menu create.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @parIu	%The user data.
 * @param cb The creatQ@			m	S		TextEditMenuOptions_RegisterOnCreateMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextCreateMenuCallback cb);n	event to be called when menu prepare.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param uMu	&The user data.
 * @param cb The preparQ@			m	S		TextEditMenuOptions_RegisterOnPrepareMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextPrepareMenuCallback cbk	event to be called when menu item click.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @paraJu	/The user data.
 * @param cb The menu item clickA	+	m	S		TextEditMenuOptions_RegisterOnMenuItemClickCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextMenuItemClickCallback cb)?	selection menu.
 *
 * @since 2O7TextSelectionMenuOptions ArkUI_TextSelectionMenuOptions?	- ?	configuration of2O>OH_O>?	
options of5?	,hint text options when no content is entered5ZZ?		attribute5?	paragraph style of5ParagraphStyleParagraphStylshadow options.$ShadowOptions OH_ArkUI_ShadowOptions?	?aof5	TextStyle	TextStyle vibration effect types`No vibration.EOH_ARKUI_HAPTIC_FEEDBACK_MODE_DISABLED = 0,
    /**
     * Vibration.KOH_ARKUI_HAPTIC_FEEDBACK_MODE_ENABLED = 1,
    /**
     * System vibration.EOH_ARKUI_HAPTIC_FEEDBACK_MODE_AUTO = 2,
} OH_ArkUI_HapticFeedbackMode  *span types of a custom text selection menu`
Text span.COH_ARKUI_TEXT_EDITOR_SPAN_TYPE_TEXT = 0,
    /**
     * Image span.DOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_IMAGE = 1,
    /**
     * Mixed span.LOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_MIXED = 2,
    /**
     * Custom layout span.HOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_BUILDER = 3,
    /**
     * Default span.,OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_DEFAULT = 4
}SpanType  .response types of a custom text selection menu`The menu is display7 is right-clicked.VOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /**
     * The menu is display7 is long-pressed.UOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_LONG_PRESS = 1,
    /**
     * The menu is display7"TOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_SELECT = 2,
    /**
     * Default response type.1OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_DEFAULT = 3,
}ResponseType ext menu types`bOH_ARKUI*ION_MENU = 0,
    /**
     * Preview menu.>OH_ARKUI_TEXT_EDITOR_PREVIEW_MENU = 1,
} OH_ArkUI_TextMenuType line break policies`Greedy mode.<br>Places as many words on a line as possible and moves to the next line only if no more words can
     * fit into the same line.OH_ARKUI_LINE_BREAK_STRATEGY_GREEDY = 0,
    /**
     * High-quality mode.<br>Fills in lines as much as possible on the basis oPf **BALANCED**, which may results in a
     * large blank area on the last line.OH_ARKUI_LINE_BREAK_STRATEGY_HIGH_QUALITY = 1,
    /**
     * Balance mode.<br>Without splitting words, the width of each line in a paragraph is the sameFOH_ARKUI_LINE_BREAK_STRATEGY_BALANCE = 2,
} OH_ArkUI_LineBreakStrategy  text span type.
 *
 * @since 2 The span type only contains text. */
    ARKUI_TEXT_SPAN_TYPE_TEXT = 0,
    /** The span type only contains image. */
    ARKUI_TEXT_SPAN_TYPE_IMAGE = 1,
    /** The span type contains both text and image. */
    ARKUI_TEXT_SPAN_TYPE_MIXED = 2,
    /**
O     * When no other types are explicitly specified, this type will be matched.is registered but TEXT, IMAGE, or MIXED types are not registered,
     * this type will be triggered and displayed for those registered types.0TEXT_SPAN_TYPE_DEFAULT = 3,
} ArkUI_TextSpanType  "text response type.
 *
 * @since 2 The response type of right click. */
    ARKUI_TEXT_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /** The response type of long press. */
    ARKUI_TEXT_RESPONSE_TYPE_LONG_PRESS = 1,
    /** The response type of select by mouse. */
    ARKUI_TEXT_RESPONSE_TYPE_SEL`ECT = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.is registered but RIGHT_CLICK, LONG_PRESS, or SELECT types are not registered,
     * this type will be triggered and displayed: for right-click, long press, and mouse selection actions.TEXT_RESPONSE_TYPE_DEFAULT = 3,
} ArkUI_TextResponseType;

/**
* @brief Enumerates raw input event types.
*
* @since 26.0.0
*/
`Tou`	04RAW_INPUT_EVENT_TYPE_TOUCH = 0,
    /**
     * Mouse0ZRAW_INPUT_EVENT_TYPE_MOUSE = 1,
} ArkUI_RawInputEventType;

/**
 * @brief Create an objectB?Foptions.
 *
 * @return A pointer to the ArkUI_TextSelectionMenuOptionseextSelectionMenuOptions* OH_ArkUI_TextSelectionMenuOptions_Create();

/**
 * @brief Dispose an objectB?options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object to be disposed.
 * @since 22
 *e/
void OH_ArkUI_TextSelectionMenuOptions_Dispose(ArkUI_TextSelectionMenuOptions* selectionMenuOptionsL-cognition types of a configuration object for9R	selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param textSpanType The span type of {@link ArkUIS	SpanType}	m	S		TextSelectionMenuOptions_SetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType textSpanType);
/**
 * @brief Gets the span type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMen0uOptions object.
 * @param spanType the text spa	SpanType}	m	S		TextSelectionMenuOptions_GetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType* spanType);

'	Set custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @	custom menu node	m	S		^TextSelectionMenuOptions_SetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
1	);k	custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @para	custom menu node	m	S		^TextSelectionMenuOptions_GetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
1	Ń	^-cognition types of a configuration object for9R	selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The response type of {@link AS	ResponseType}	m	S		TextSelectionMenuOptions_SetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType responseType);
/**
 * @brief Gets the response type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextESelectionMenuOptions object.
 * @param responseType The text responseResponseType}	m	S		TextSelectionMenuOptions_GetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType* response	}	event to be called when selection menu show.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object@u	The user	TP@	(menu show.
 *     start The start offset.
 *     end The end offset.
 *     userData The user data	m	S		TextSelectionMenuOptions_RegisterOnMenuShowCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
B    void (*callback)(int32_t start, int32_t end, void* userData));n	event to be called when selection menu hide.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object@u	The user	TP@	(menu hide.
 *     start The start offset.
 *     end The end offset.
 *     userData The user data	m	S		TextSelectionMenuOptions_RegisterOnMenuHideCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
/    void (*callback)(int32_t start, int32_t end>{		
QCreate selection options.
 *
 * @return A pointer to the selection options object	G* OH_GJ_Create();

/**
 * @brief Dispose selection options object.
 *
 * @param {GB*} options Pointer to the selection options object. to be disposed	void OH_G	_Dispose(G	* optionsL1menu policy for selection options.
 *
 * @param {Gd*} options Pointer to the selection options.
 * @param {ArkUI_MenuPolicy} menuPolicy The menu policy	void OH_G_SetMenuPolicy(
   qF* options, ArkUI_MenuPolicy menuPolicy);

/**
 * @brief Gets the menu policy of selection options.
 *
 * @param {ArkUI_SelectioG+*} options Pointer to the selection optionsf	pmenu policy	ArkUI_MenuPolicy OH_G_GetMenuPolicy(G.* options);

/**
 * @brief Create an object of!"1
 *
 * @return A pointer to the controller object	!* OH_!._Create();

/**
 * @brief Dispose an object of!"
 *
 * @param {!=*} controller Pointer to the controller object to be disposed	void OH_!	_Dispose(!* controller)?	lete the character before the caret of the input field component in editing state.
 *        Otherwise, delete the last charactj
input field c	{!@*} controller Pointer to the configuration object to be modified	void OH_!_DeleteBackward(!* controller);

/**
 * @brief Scroll the input field component to make the specified content visible.
 *
 * @param {ArkUI_TextC"*} controller Pointer to the
 * configuration object to be modified.
 * @param {int32_t} start The start offset of the content to be made visible.
 * @param {int32_t} end The end offset of the content to be made visible
 * @since 23
 */
void OH_ArkUI_Tex"_ScrollToVisible(
    ) *controller, int32_t start, int32_t end)?	+options for path animation.
 *
 * @since 23PMotionPathOptions ArkUI_MotionPathOptions;

/**
 * @brief Create an object of the motion path options for path animation.
 *        In the newly created ArkUI_MotionPathOptions, the "path" value is an empty string, the "from" value is 0,
 *        the "tBo" value is 1, and the "rotatable" value is false.
 *
 * @return A(	ArkUI_MotionPathOptions* OH_ArkUI_MotionPathOptions_Create();

/**
 * @brief Dispose the ArkUI_MotionPathOptions object.
 *
 * @param options P% object to be disposed	Hvoid OH_ArkUI_MotionPathOptions_Dispose(ArkUI_MotionPathOptions* optionsLthe motion path for the animation using an SVG path string. The path supports using "start" and
 *        "end" as placeholders for the starting and ending points, for example:
 *        "Mstart.x start.y L50 50 Lend.x end.y Z". Refer to the SVG path forkmat for the path string.
 *        When set to an empty string, it is equivalent to not setting a path animR		options P%= object.
 * @param svgPath The motion path for the path anima	m	S			MotionPathOptions_SetPath(ArkUI_MotionPathOptions* options, const char* svgPath);

/**
 * @brief Gets the motion path string in; the ArkUI_MotionPathOptions object.
 *
 * @param options P% object.
 * @param svgPathBuffer Buffer pointer to the motion path string.
 * @param bufferSize The buffer size of the svgPathBbuffer parameter.
 * @param writeLength Indicates the string length actually written to the buffer
O   when returning%	".
OE   Indicates the minimum buffer size that can accommodate the target
O   whenBUFFER_SIZE_ERROR} is returnp	S	m		4JBUFFER_SIZE_ERROR} if the buffer size is less than the minimum buffer size		MotionPathOptions_GetPath(const ArkUI_MotionPathOptions* options, char* svgPathBuffer,
    const int32_t bufferSize, int32_t* w
riteLengthLstarting progress inProgress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path.ad
^, and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an&	!OUT_OF_RANGE
 *        error code*
 * @param options P%0 object.
 * @param from The starting progress in	m		4FOUT_OF_RANGE} if the "from" value is out of range or the "from" value
O1
"to" value		MotionPathOptions_SetFrom(ArkUI_MotionPathOptions* options, const float from);

/**
 * @brief Gets the starting progress in the7 ArkUI_MotionPathOptions object.
 *
 * @param options P%0 object.
 * @param from The starting progress in	m	S			MMotionPathOptions_GetFrom(const ArkUI_MotionPathOptions* options, float* fromLendpoint progress inProgress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path.ad
^, and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an&	!OUT_OF_RANGE
 *        error code*
 * @param options P%. object.
 * @param to The endpoint progress in	m		4BOUT_OF_RANGE} if the "to" value is out of range or the "to" value
Ois less than the "from" value		MotionPathOptions_SetTo(ArkUI_MotionPathOptions* options, const float to);

/**
 * @brief Gets the endpoint progress in the Ark3UI_MotionPathOptions object.
 *
 * @param options P%. object.
 * @param to The endpoint progress in	m	S			IMotionPathOptions_GetTo(const ArkUI_MotionPathOptions* options, float* toLotatable parameter inIt1~o rotate along the path.
 *        True means rotating along the path, while false means not rotating along the path.
 *
 * @param options P%7 object.
 * @param rotatable The rotatable parameter in	m	S			RMotionPathOptions_SetRotatable(ArkUI_MotionPathOptions* options, const bool rotata	Gets the rotatable parameter in
 *
 * @param options P%7 object.
 * @param rotatable The rotatable parameter in	m	S			SMotionPathOptions_GetRotatable(const ArkUI_MotionPathOptions* options, bool* rotata	2Enumerates the MarqueeStartPolicy.
 *
 * @since 23Start marquee in any case. This is the default policy. */
    ARKUI_MARQUEESTARTPOLICY_DEFAULT = 0,
    /** Start marquee only Vwhen get focus. */
    ARKUI_MARQUEESTARTPOLICY_ONFOCUS = 1
} ArkUI_MarqueeStartPolicy  $MarqueeUpdatePolicy.
 *
 * @since 23Reset scroll position and restart scroll. */
    ARKUI_MARQUEEUPDATEPOLICY_DEFAULT = 0,
    /** Preserve scroll position, just echange to new text. */
    ARKUI_MARQUEEUPDATEPOLICY_PRESERVEPOSITION = 1
} ArkUI_MarqueeUpdatePolicy?	vQ
 *
 * @since 23PdR]R;

/**
 * @brief Create an option object for marquee animation of text.
 *
 * @return A pointer to the option object.
 * @since	^R* OH_^R_Create();

/**
 * @brief Dispose the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be disposed	void OH_^R	_Dispose(^R>	^	start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.e
 * @param start Flag of is need to start marquee. True means start marquee, false means stop marquee	void OH_^R
_SetStart(^R* option, bool star1	ns the start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionf	 	tart flag	bool OH_^R
_GetStart(^R>	^	step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
; * @param step The step size of the marquee. The unit is vp	void OH_^R	_SetStep(^R* option, float step);

/**
 * @brief Gets the step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionf	 'tep size of the marquee. The unit is vp		float OH_^R	_GetStep(^R>	^	two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.L
 * @param spacing The spacing between two rounds of marquee. The unit is vp	void OH_^R_SetSpacing(^R,* option, float spacing);

/**
 * @brief Gethtwo rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionf	 %two rounds of marquee. The unit is vp		float OH_^R_GetSpacing(^R>	^
ounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @$param loop The rounds of the marquee	void OH_^R	_SetLoop(^R* option, int32_t loop);

/**
 * @brief Gets the rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionf	prounds of the marquee	$dR	_GetLoop(^R>	^	fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modif!ied.
 * @param fromStart The runnS&marquee, true means running from start	void OH_^R_SetFromStart(^R* option, bool fromStar1	s the fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @f	pfromStart flag	bool OH_^R_GetFromStart(^R>	^	delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option objTect to be modified.
 * @param delay The delay time between each round of the marquee	void OH_^R
_SetDelay(^R* option, int32_t delay);

/**
 * @brief Gets the delay time between each round of the option object for marquee animation of t.ext.
 *
 * @param option Pointer to the optionf	p,delay time between each round of the marquee	$dR
_GetDelay(^R>	^	fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fadeout T=text is faded out	void OH_^R_SetFadeout(^R* option, bool fadeou1	s the fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @ref	pfadeout flag	bool OH_^R_GetFadeout(^R>	^	start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modifie5d.
 * @param startPolicy The start policy for marquee	void OH_^R_SetStartPolicy(^R* option, ArkUI_MarqueeStartPolicy startPolicy);

/**
 * @brief Gets the start policy of the option object for marquee animatio4n of text.
 *
 * @param option Pointer to the optionf	 tart policy for marquee	ArkUI_MarqueeStartPolicy OH_^R_GetStartPolicy(^R>	^	update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modifi8ed.
 * @param updatePolicy The update policy for marquee	void OH_^R_SetUpdatePolicy(^R* option,
    ArkUI_MarqueeUpdatePolicy updatePolicy);

/**
 * @brief Gets the update policy of the option object for marquee a;nimation of text.
 *
 * @param option Pointer to the optionf	pupdate policy for marquee	ArkUI_MarqueeUpdatePolicy OH_^R_GetUpdatePolicy(^R>	!Create a configuration object for?12.
 * @return A pointer to the configuration object	* OH_<_Create();

/**
 * @brief Dispose a configuration object for?1E.
 * @param config Pointer to the configuration object to be disposed	void OH_	_Dispose(* configLcolor of background for?1e.
 * @param config Pointer to the configuration object to be modified.
 * @param color Background col߸	void OH__SetColor(
   J* config, uint32_t color);

/**
 * @brief Gets the color of background for?1/.
 * @param config Pointer to the configurationf	pw	uint32_t OH__GetColor(
   l* config);

/**
 * @brief Creates a decorative line style object. When the object is no longer used, call
 *A'5_Destroy} to destroy it.
 *
 * @return Pointer to theA( object.
 * @since 24
 */
* 	_Create()?	stroys the decorative line style object.
 *
 * @param options Pointer to the option object to be destroyed.
 * @since 24
 */
void 	_Destroy(	* optionsLQdecoration type of the decorative line style.
 *
 * @param options Pointer to theA() object.
 * @param type Decoration type ( )>	
 *     <br>!	Q<br>M[	
4	_SetTextDecorationType(* options,
   Type t 	D	Qdecoration type of the decorative line style.
 *
 * @param options Pointer to theA(8 object.
 * @param type Pointer to the decoration type ( )>	
 *     <br>!	Q<br>M[	
4	_GetTextDecorationType(* options,
   Type* t 	^	Acolor of the decorative line.
 *
 * @param options Pointer to theA(5 object.
 * @param color Color of the decorative line!?	
 *     <br>!	Q<br>M[	
4	
_SetColor(* options, uint32_t colorAcolor of the decorative line.
 *
 * @param options Pointer to theA(D object.
 * @param color Pointer to the color of the decorative line!?	
 *     <br>!	Q<br>M[	
4	
_GetColor(* options, uint32_t* colorL[4decorative line.
 *
 * @param options Pointer to theA(7 object.
 * @param style Style of the decorative line (!)>	
 *     <br>!	Q<br>M[	
4	_SetTextDecorationStyle(* options,
    sty	D	Astyle of the decorative line.
 *
 * @param options Pointer    to theA(F object.
 * @param style Pointer to the style of the decorative line (!)>	
 *     <br>!	Q<br>M[	
4	_GetTextDecorationStyle(* options,
   * sty	^	Rscale factor of the decorative line thickness.
 *
 * @param options Pointer to theA(O object.
 * @param thicknessScale Scale factor of the decorative line thickness`dZA	
 *     <br>!	Q<br>M[	
4	_SetThicknessScale(
    * options, float thicknessSca	D	Rscale factor of the decorative line thickness.
 *
 * @param options Pointer to theA(^ object.
 * @param thicknessScale Pointer to the scale factor of the decorative line thickness>	
 *     <br>!	Q<br>M[	
4	_GetThicknessScale("* options,
    float* thicknessSca		Creates aZ1 object. When the object is no longer used, call
/XO>5_Destroy} to destroy it.
 *
 * @return Pointer to the1XO>} objecf!O>* OH_O>	_Create()?	
stroys theZ+ object.
 *
 * @param config Pointer to the1XO>#} object.
 * @since 24
 */
void OH_O>_Destroy(OH_O>* configLtypes of theZR	config Pointer to the1XO>5} object.
 * @param types Pointer to the types of theZʲ
А[(	
 * %Type}.
 * @param length Type quantity>	
 *     <br>!	Q<br>M[	
4	O>_SetTypes(
    OH_O>* config, const* types, int32_t lengthtypes of theZR	config Pointer to the1XO>} object.
 * @param buffer Pointer to the buffer of the type array.
 * @param bufferSize Maximum number of types that can be written to the buffer reserved for the types.
 * @param writeLength Pointer to the number of types that are actually written to t	he buffer>	
 *     <br>!	Q<br>M0	<br> lBUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24	O>_GetTypes(OH_O>* config,
   2* buffer, int32_t bufferSize, int32_t* writeLengthLcallback fo2result updates.
 *
 * @param config Pointer to the1XO>} object@u		the user	detect result update	"
 *     <br>!	Q<br>M[	
4	O>._RegisterOnDetectResultUpdateCallback(
    OH_O>Q* config, void* userData,
    void (*callback)(const char* result, int32_t length>{		
^	color of the recognizedK	fig Pointer to the1XO>/} object.
 * @param color Color of the recognizA	
 *     <br>!	Q<br>M[	
4	O>_SetColor(OH_O>* config, uint32_t colorcolor of the recognizedK	fig Pointer to the1XO>>} object.
 * @param color Pointer to the color of the recognizA	
 *     <br>!	Q<br>M[	
4	O>_GetColor(OH_O>* config, uint32_t* colorLf the recognizedK	fig Pointer to the1XO>+} object.
 * @param decoration Pointer to tf the recognized conten[(	
 *    A)?	
 *     <br>!	Q<br>M[	
4	O>_Set6	(
    OH_O>	* config, * decora	D	f the recognizedK	fig Pointer to the1XO>+} object.
 * @param decoration Pointer to tf the recognized conten[(	
 *    A)?	
 *     <br>!	Q<br>M[	
4	O>_Get6	(
    OH_O>	* config, * decora	v[review menu when the recognized content is long-pressed.
 *
 * @param config Pointer to the1XO>'} object.
 * @param enablePreviewMenu Wreview menu when the recognized content is long-pressed. **true**
 *     means to display the preview menu, and **false** means!&false**>	
 *     <br>!	Q<br>M[	
4	O>_SetEnablePreviewMenu(
    OH_O> * config, bool enablePreviewMenuwhether the preview menu is displayed when the recognized content is long-pressed.
 *
 * @param config Pointer to the {@link OH;XO>} object.
 * @param enablePreviewMenu Pointer to the **enablePreviewMenu** parameter indicating whether the preview menu is
 *     displayed when the recognized content is long-pressed. **true** means that the preview menu is displayed, and **
 *     false**?	
 *     <br>!	Q<br>M[	
4	O>_GetEnablePreviewMenu(
    OH_O>"* config, bool* enablePreviewMenu)?	controller for text.a	UOH_ArkUI_TextController OH_ArkUI_TextController;

/**
 * @brief Create a controller object for text.
 * @return A pointer to the text controller object.a	9OH_ArkUI_TextController* OH_ArkUI_TextController_Create()?	Kstroys the text controller.
 *
 * @param controller <b>Text</b> controller.a	Hvoid OH_ArkUI_TextController_Destroy(OH_ArkUI_TextController* controllerk	1StyledString of the text.
 *
 * @param controllermW* @param descriptor P<StyledString_Descriptor</b> object, which will be set to Texa	m	S	l	$HTextController_SetStyledString(
    OH_ArkUI_TextController* controller,__Descriptor* descriptor);

/**
 * @brief Creates an option object for the placeholder text used,. When the object is no longer
 * used, call1XZ5_Destroy} to destroy it.
 *
 * @return Pointer to the1XZ objecf'Z*Z	_Create()?	6stroys the option object for the placeholder text used%.
 *
 * @param options Pointer to the1XZ object.
 * @since 24
 */
voidZ_Destroy(OH_J"	* optionsL*text for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ8 object.
 * @param value Pointer to the placeholder text>	
 *     <br>!	Q<br>M[	
4	
Z_SetValue(
   Z	* optionsb	%D	*text for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ object.
 * @param buffer Pointer to the buffer for storing the placeholder text in the memory. You need to allocate the memory.
 * @param bufferSize MACthat can be written to the buffer.
 * @param writeLength Pointer to"are actually written to the buffer>	
 *     <br>!	Q<br>M0	<br> lBUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24	
Z_GetValue(
   ZA* options, char* buffer, int32_t bufferSize, int32_t* writeLengthL/font size for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ, object.
 * @param fontSize Font size, in fp>	
 *     <br>!	Q<br>M[	
4	
Z_SetFontSize(
   Z* options, float fontSQ	_.ont size for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ; object.
 * @param fontSize Pointer to the font size, in fp>	
 *     <br>!	Q<br>M[	
4	
Z_GetFontSize(
   Z* options, float* fontSizL	^	`placeholder text options used%.
 *
 * @param options Pointer to the1XZ( object.
 * @param fontWeight Font weigh\integer multiple of 100 within the [100, 900] range, for example, **
 *     100** or **900**>	
 *     <br>!	Q<br>M[	
4	
Z_SetFontWeight(
   Z* options, uint32_t fontWeigh`placeholder text options used%.
 *
 * @param options Pointer to the1XZ7 object.
 * @param fontWeight Pointer to the font weigh[integer multiple of 100 within the [100, 900] range,
 *     for example, **100** or **900**>	
 *     <br>!	Q<br>M[	
4	
Z_GetFontWeight(
   Z* options, uint32_t* fontWeigh^	1font family for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ object.
 * @param fontFamily Pointer to the font family, containing the font names to be set. Different font names are
 *     b?	
 *     <br>!	Q<br>M[	
4	
Z_SetFontFamily(
   Z!* options, const char* fontFamily1font family for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ object.
 * @param buffer Pointer to the buffer for storing the font family in the memory. You need to allocate the memory.
 * @param bufferSize MACthat can be written to the buffer.
 * @param writeLength Pointer to"are actually written to the buffer>	
 *     <br>!	Q<br>M0	<br> lBUFFER_SIZE_ERROR} if the value of **bufferSize** is less than that of **
 *     writeLength**.
 * @since 24	
Z_GetFontFamily(
   ZA* options, char* buffer, int32_t bufferSize, int32_t* writeLengthL0font style for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ& object.
 * @param fontStyle Font styla[(	?	
 *     <br>!	Q<br>M[	
4	
Z_SetFontStyle(
   Z"* options, ArkUI_FontStyle fontSty	D	0font style for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ5 object.
 * @param fontStyle Pointer to the font styla[(	?	
 *     <br>!	Q<br>M[	
4	
Z_GetFontStyle(
   Z#* options, ArkUI_FontStyle* fontSty	^	0font color for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ  object.
 * @param fontColor FonA	
 *     <br>!	Q<br>M[	
4	
Z_SetFontColor(
   Z* options, uint32_t fontColor0font color for the placeholder text options used%.
 *
 * @param options Pointer to the1XZ+ object.
 * @param fontColor Pointer to the@?	
 *     <br>!	Q<br>M[	
4	
Z_GetFontColor(OH_J"* options,
    uint32_t* fontColor);

/**
 * @brief Creates a styled string controller object for the text editor. When the object is no longer used, call
/X5_Destroy} to destroy it.
 *
 * @return Pointer to the1X objecf'*	_Create()?	Rstroys the styled string controller object.
 *
 * @param controller Pointer to the1X object.
 * @since 24
 */
void_Destroy(OH_&* controllerLWcaret offset using the styled string controller.
 *
 * @param controller Pointer to the1X+ object.
 * @param caretOffset Caret offset>	
 *     <br>!	Q<br>M[	
4	
_SetCaretOffset(
   * controller, int32_t caret0	D	Wcaret offset using the styled string controller.
 *
 * @param controller Pointer to the1X: object.
 * @param caretOffset Pointer to the caret offset>	
 *     <br>!	Q<br>M[	
4	
_GetCaretOffset(
   * controller, int32_t* caret0	^	Xselected area using the styled string controller.
 *
 * @param controller Pointer to the1X object.
 * @param start S0elected area.
 * @param end EEWselected area.
 * @param menuPolicy Policy for displaying the menu in the selected area[(	
 *     {@link ArkUI_MenuPolicy=	
 *     <br>!	Q<br>M[	
4	
_SetSelection(
   G* controller, uint32_t start, uint32_t end, ArkUI_MenuPolicy menuPolicylediting status of the text editor using the styled string controller.
 *
 * @param controller Pointer to the1X object.
 * @param isEditing Pointer to the **isEditing** parameter indicating whether the text editor is in the editing state.S *
 *     *true** means that the text editor is in the editing state, and **false**?	
 *     <br>!	Q<br>M[	
4	
_IsEditing(
   * controller, bool* isEditing);

/**
 * @brief Exits the editing status of the text editor using the styled string controller.
& *
 * @param controller Pointer to the1Xf	M	

 *     <br>!	Q<br>M[	
4	
_StopEditing(
   * controllerRew text using the styled string controller.
 *
 * @param controller Pointer to the1X object	VPointer to the preview text offset.
 * @param buffer Pointer to the buffer for storingw?memory. You need to allocate the memory.
 * @param bufferSize MACthat can be written to the buffer.
 * @param writeLength Pointer to"are actually written to the buffer>	
 *     <br>!	Q<br>M[	
4	
_GetPreviewText(
   Z* controller, uint32_t* offset, char* buffer,
    int32_t bufferSize, int32_t* writeLengthccaret-selected rectangle using the styled string controller.
 *
 * @param controller Pointer to the1XH object.
 * @param rect Pointer to the caret-selected rectangle informatА[(	
 *     {@link ArkUI_Rect=	
 *     <br>!	Q<br>M[	
4	
_GetCaretRect(
   * controller, ArkUI_Rect* recletes characters using the styled string controller. If no content is selected, one character before the
 * current caret posit'ion is deleted. If content is selected,p3 is deleted.
 *
 * @param controller Pointer to the1Xf	M	

 *     <br>!	Q<br>M[	
4	
_DeleteBackward(
   * controller);

/**
 * @brief Creates a paragraph style object for the text editor. When the object is no longer used, call
 * 2XCParagraphStyle_Destroy} to destroy it.
 *
 * @return Pointer to the1XParagraphStyle} objecf'ParagraphStyle*ParagraphStyle_Create()?	Dstroys the paragraph style object.
 *
 * @param style Pointer to the1X-ParagraphStyle} object.
 * @since 24
 */
void=ParagraphStyle_Destroy(OH_ArkUI_TextEditorParagraphStyle* sty	^	Mtext alignment mode in the paragraph style.
 *
 * @param style Pointer to the1X,ParagraphStyle} object.
 * @param align Text<[(	T?	
 *     <br>!	Q<br>M[	
4	
 ParagraphStyle_SetTextAlign(
   /ParagraphStyle* style, ArkUI_TextAlignment alig!	D	Mtext alignment mode in the paragraph style.
 *
 * @param style Pointer to the1X;ParagraphStyle} object.
 * @param align Pointer to the text<[(	T?	
 *     <br>!	Q<br>M[	
4	
 ParagraphStyle_GetTextAlign(
   0ParagraphStyle* style, ArkUI_TextAlignment* alig!	^	\PixelMap for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1XParagraphStyle} objectm	$"PixelMap for paragraph indentation>	
 *     <br>!	Q<br>M[	
4	
,ParagraphStyle_SetLeadingMarginPixelMap(
   /ParagraphStyle* style, struct OH_PixelmapNative=	D	\PixelMap for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1XcParagraphStyle} object.
 * @param pixelmap Double pointer to the PixelMap for paragraph indentation>	
 *     <br>!	Q<br>M[	
4	
,ParagraphStyle_GetLeadingMarginPixelMap(
   ParagraphStyle* style, struct*	/^	Ywidth for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1XNParagraphStyle} object.
 * @param width Width for paragraph indentation, in vp>	
 *     <br>!	Q<br>M[	
4	
aParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t widthYwidth for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1X]ParagraphStyle} object.
 * @param width Pointer to the width for paragraph indentation, in vp>	
 *     <br>!	Q<br>M[	
4	
bParagraphStyle_GetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* widthLZheight for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1XPParagraphStyle} object.
 * @param height Height for paragraph indentation, in vp>	
 *     <br>!	Q<br>M[	
4	
bParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t heighZheight for paragraph indentation in the paragraph style.
 *
 * @param style Pointer to the1X_ParagraphStyle} object.
 * @param height Pointer to the height for paragraph indentation, in vp>	
 *     <br>!	Q<br>M[	
4	
cParagraphStyle_GetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* heigh^	Lword breaking mode in the paragraph style.
 *
 * @param style Pointer to the1X9ParagraphStyle} object.
 * @param wordBreak Word breaking1[(		?	
 *     <br>!	Q<br>M[	
4	
cParagraphStyle_SetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak wordBreakLword breaking mode in the paragraph style.
 *
 * @param style Pointer to the1XHParagraphStyle} object.
 * @param wordBreak Pointer to the word breaking1[(		?	
 *     <br>!	Q<br>M[	
4	
dParagraphStyle_GetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak* wordBreakLPline breaking strategy in the paragraph style.
 *
 * @param style Pointer to the1XJParagraphStyle} object.
 * @param lineBreakStrategy Line breaking strategy[(	)
 *     {@link OH_ArkUI_LineBreakStrategy=	
 *     <br>!	Q<br>M[	
4	
ParagraphStyle_SetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy lineBreakStrategy)Pline breaking strategy in the paragraph style.
 *
 * @param style Pointer to the1XYParagraphStyle} object.
 * @param lineBreakStrategy Pointer to the line breaking strategy[(	)
 *     {@link OH_ArkUI_LineBreakStrategy=	
 *     <br>!	Q<br>M[	
4	
ParagraphStyle_GetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy* lineBreakStrategyLKparagraph spacing in the paragraph style.
 *
 * @param style Pointer to the1XKParagraphStyle} object.
 * @param paragraphSpacing Paragraph spacing, in vp>	
 *     <br>!	Q<br>M[	
4	
jParagraphStyle_SetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t paragraphSpacingKparagraph spacing in the paragraph style.
 *
 * @param style Pointer to the1XZParagraphStyle} object.
 * @param paragraphSpacing Pointer to the paragraph spacing, in vp>	
 *     <br>!	Q<br>M[	
4	
ParagraphStyle_GetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* paragraphSpacing);

/**
 * @brief Se`textO79in the paragraph style.
 *
 * @param style Pointer to the1X8ParagraphStyle} object.
 * @param verticalAlignment TextO7<[(	
 *    3$>	
 *     <br>!	Q<br>M[	
4	
QParagraphStyle_SetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
   *4 verticalAlignm	D	textO79in the paragraph style.
 *
 * @param style Pointer to the1X8ParagraphStyle} object.
 * @param verticalAlignment TextO7<[(	
 *    3$>	
 *     <br>!	Q<br>M[	
4	
QParagraphStyle_GetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
   *4* verticalAlignm		Htext direction in the paragraph style.
 *
 * @param style Pointer to the1X;ParagraphStyle} object.
 * @param textDirection Text directА[(	T?	
 *     <br>!	Q<br>M[	
4	
kParagraphStyle_SetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection textDirec	D	Htext direction in the paragraph style.
 *
 * @param style Pointer to the1XJParagraphStyle} object.
 * @param textDirection Pointer to the text directА[(	T?	
 *     <br>!	Q<br>M[	
4	
lParagraphStyle_GetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection* textDirec	^	atyping paragraph style using the styled string controller.
 *
 * @param controller Pointer to the1X> object.
 * @param style Pointer to the typing paragraph style>	
 *     <br>!	Q<br>M[	
4	
_SetTypingParagraphStyle(
   * controller,ParagraphStyle* sty	Creates a shadow option object. When the object is no longer used, call
 * {@link OH_ArkUI_ShadowOptions_Destroy} to destroy it.
 *
 * @return Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @since 24
 */
OH_ArkUI_ShadowOptions* OH_ArkUI_ShadowOptions_Create()?	stroys the shadow option object.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @since 24
 */
voAid OH_ArkUI_ShadowOptions_Destroy(OH_ArkUI_ShadowOptions* optionsLblur radius for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param radius B ?	
 *     <br>!	Q<br>M[	
4	EShadowOptions_SetRadius(OH_ArkUI_ShadowOptions* options, float radiusblur radius for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param radius Pointer to thepv"?	
 *     <br>!	Q<br>M[	
4	FShadowOptions_GetRadius(OH_ArkUI_ShadowOptions* options, float* radiusLshadow type for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param type Shadow type (z)>	
 *     <br>!	Q<br>M[	
4	IShadowOptions_SetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType t 	D	shadow type for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param type Shadow type (z)>	
 *     <br>!	Q<br>M[	
4	JShadowOptions_GetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType* t 	^	shadow color for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param color ShadowA	
 *     <br>!	Q<br>M[	
4	FShadowOptions_SetColor(OH_ArkUI_ShadowOptions* options, uint32_t colorshadow color for the shadow options.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param color Pointer to theax ?	
 *     <br>!	Q<br>M[	
4	GShadowOptions_GetColor(OH_ArkUI_ShadowOptions* options, uint32_t* colorLshadow offset on the x-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetX Shadow offsetѺ?	
 *     <br>!	Q<br>M[	
4	GShadowOptions_SetOffsetX(OH_ArkUI_ShadowOptions* options, float offsetXshadow offset on the x-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetX Pointer to the shadow offsetѺ?	
 *     <br>!	Q<br>M[	
4	HShadowOptions_GetOffsetX(OH_ArkUI_ShadowOptions* options, float* offsetXLshadow offset on the y-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetY Shadow offset on the y-axis, in vp>	
 *     <br>!	Q<br>M[	
4	GShadowOptions_SetOffsetY(OH_ArkUI_ShadowOptions* options, float offsetYshadow offset on the y-axis.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param offsetY Point,er to the shadow offset on the y-axis, in vp>	
 *     <br>!	Q<br>M[	
4	PShadowOptions_GetOffsetY(OH_ArkUI_ShadowOptions* options, float* offsetY);

/**
vfill a component with a shadow.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param isFill Whemther to fill a component with a shadow. **true** means to fill a component with a shadow, and **
 *     false!.false**>	
 *     <br>!	Q<br>M[	
4	BShadowOptions_SetFill(OH_ArkUI_ShadowOptions* options, bool isFillwhether a component is filled with a shadow.
 *
 * @param options Pointer to the {@link OH_ArkUI_ShadowOptions} object.
 * @param isFill Pointer to the **isFill** parameter indicating whether a component is filled with a shadow. **true**
 *     means tha4t a component is filled with a shadow, and **false**?	
 *     <br>!	Q<br>M[	
4	ShadowOptions_GetFill(OH_ArkUI_ShadowOptions* options, bool* isFill);

/**
 * @brief Creates a text style object. When the object is no longer used, call
/X>TextStyle_Destroy} to destroy it.
 *
 * @return Pointer to the1XTextStyle} objecf'
TextStyle*TextStyle_Create()?	?stroys the text style object.
 *
 * @param style Pointer to the1X(TextStyle} object.
 * @since 24
 */
void3TextStyle_Destroy(OH_ArkUI_TextEditorTextStyle* sty	^	c8text style.
 *
 * @param style Pointer to the text style	!Z		color FonA	
 *     <br>!	Q<br>M[	
4	
JTextStyle_SetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t colorc8text style.
 *
 * @param style Pointer to the text style	!Z	color Pointer to the@?	
 *     <br>!	Q<br>M[	
4	
KTextStyle_GetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t* colorLIfont size of the text style.
 *
 * @param style Pointer to the text style	!Z		Font size, in fp>	
 *     <br>!	Q<br>M[	
4	
@TextStyle_SetFontSize(OH_ArkUI_TextEditorTextStyle* style, floatQ	_Hont size of the text style.
 *
 * @param style Pointer to the text style	!Z		Pointer to the font size, in fp>	
 *     <br>!	Q<br>M[	
4	
ETextStyle_GetFontSize(OH_ArkUI_TextEditorTextStyle* style, float* sizL	^	Jfont style of the text style.
 *
 * @param style Pointer to the text style	!Z	fontStyle Font styla[(	?	
 *     <br>!	Q<br>M[	
4	
WTextStyle_SetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle fontSty	D	Jfont style of the text style.
 *
 * @param style Pointer to the text style	!Z	"fontStyle Pointer to the font styla[(	?	
 *     <br>!	Q<br>M[	
4	
XTextStyle_GetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle* fontSty	^	Kfont weight of the text style.
 *
 * @param style Pointer to the text style	!Z	fontWeight Font weigh\integer multiple of 100 within the [100, 900] range, for example, **
 *     100** or **900**>	
 *     <br>!	Q<br>M[	
4	
OTextStyle_SetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t fontWeighKfont weight of the text style.
 *
 * @param style Pointer to the text style	!Z	$fontWeight Pointer to the font weigh[integer multiple of 100 within the [100, 900] range,
 *     for example, **100** or **900**>	
 *     <br>!	Q<br>M[	
4	
PTextStyle_GetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t* fontWeigh^	Kfont family of the text style.
 *
 * @param style Pointer to the text style	!Z	kfontFamily Pointer to the font family, containing the font names to be set. Different font names are
 *    a?	
 *     <br>!	Q<br>M[	
4	
STextStyle_SetFontFamily(OH_ArkUI_TextEditorTextStyle* style, const char* fontFamilyKfont family of the text style.
 *
 * @param style Pointer to the text style	!Z	buffer Pointer to the buffer for storing the font family in the memory. You need to allocate the memory.
 * @param bufferSize MACthat can be written to the buffer.
 * @param writeLength Pointer to"are actually written to the buffer>	
 *     <br>!	Q<br>M[	
4	
TextStyle_GetFontFamily(OH_ArkUI_TextEditorTextStyle* style,
    char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
T75Goptions of the text style.
 *
 * @param style Pointer to the text style	!Z	ptions Pointer to theA(f	M	

 *     <br>!	Q<br>M[	
4	
@TextStyle_SetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    	* options75Goptions of the text style.
 *
 * @param style Pointer to the text style	!Z	ptions Pointer to theA(f	M	

 *     <br>!	Q<br>M[	
4	
@TextStyle_GetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    	* optionsLMhadow options of the text style.
 *
 * @param style Pointer to the text style	!Z	dptions Double pointer to the text shadow options.
 * @param length Length of the text shadow options>	
 *     <br>!	Q<br>M[	
4	
TextStyle_SetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    const OH_ArkUI_ShadowOptions** options, int32_t length);

/**Stext shadow options of the text style.
 *
 * @param style Pointer to the text style	!Z	shadowOptions Double pointer to the text shadow options.
 * @param shadowOptionsSize Size of the shadow option buffer.
 * @paraSm writeLength Pointer to the number of actual text shadow options in the text style>	
 *     <br>!	Q<br>M[	
4	
TextStyle_GetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_ShadowOptions** shadowOptions, uint32_t shadowOptionsSize, uint32_t* writeLengthLKline height of the text style.
 *
 * @param style Pointer to the text style	!Z	lineHeight Line height>	
 *     <br>!	Q<br>M[	
4	
NTextStyle_SetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t lineHeighKline height of the text style.
 *
 * @param style Pointer to the text style	!Z	%lineHeight Pointer to the line height>	
 *     <br>!	Q<br>M[	
4	
OTextStyle_GetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t* lineHeigh^	8text style.
 *
 * @param style Pointer to the text style	!Z	letterSpacing Letter spacing>	
 *     <br>!	Q<br>M[	
4	
YTextStyle_SetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t letterSpacing8text style.
 *
 * @param style Pointer to the text style	!Z	+letterSpacing Pointer to the letter spacing>	
 *     <br>!	Q<br>M[	
4	
ZTextStyle_GetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t* letterSpacingLgfont feature of the text style, such as monospaced digits.
 *
 * @param style Pointer to the text style	!Z	fontFeature Pointer to the font features, containing font features to be set. Multiple features are separated
 *     by commas (,)>	
 *     <br>!	Q<br>M[	
4	
XTextStyle_SetFontFeature(OH_ArkUI_TextEditorTextStyle* style,
    const char* fontFeaturQ	_font feature of the text style, such as monospaced digits.
 *
 * @param style Pointer to the text style	!Z	buffer Pointer to the buffer for storing the font features in the memory. You need to allocate the memory.
 * @param bufferSize MACthat can be written to the buffer.
 * @param writeLength Pointer to"are actually written to the buffer>	
 *     <br>!	Q<br>M[	
4	
TextStyle_GetFontFeature(OH_ArkUI_TextEditorTextStyle* style, char* buffer,
    int32_t bufferSize, int32_t* writeLength);

/**
vvenly distribute the line spacing to the top and bottom of each line in the text style.
 *
 * @param style Pointer to the text style	!Z	halfLeadingQhalf leading.
 *     <br>**truefalse!.false**>	
 *     <br>!	Q<br>M[	
4	
NTextStyle_SetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool halfLeadingwhether the line spacing is evenly distributed to the top and bottom of each line in the text style.
 *
 * @param style Pointer to the text style	!Z	?halfLeading Pointer to the **halfLeading** parameter indicatingQhalf leading.
 *     <br>**truefalse!.false**>	
 *     <br>!	Q<br>M[	
4	
OTextStyle_GetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool* halfLeadingLtext b^8text style.
 *
 * @param style Pointer to the text style	!Z	
color TextT$?	
 *     <br>!	Q<br>M[	
4	
XTextStyle_SetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t colortext b^8text style.
 *
 * @param style Pointer to the text style	!Z	color Pointer to the textT$?	
 *     <br>!	Q<br>M[	
4	
YTextStyle_GetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t* colorLadiuse0A\@ of the text style.
 *
 * @param style Pointer to the text style	!Z	topLeft Radiusein0A\	topRight RadiuseinU0A\	bottomLeft Radiusein!]+\	bottomRight RadiuseinT0A\he unit is vp>	
 *     <br>!	Q<br>M[	
4	
TextStyle_SetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRighradiuse0A\@ of the text style.
 *
 * @param style Pointer to the text style	!Z	topLeft Pointer to the radiusein0A\>he unit
 *     is vp.
 * @param topRight Pointer to the radiuseinU0A\	he
 *    	 bottomLeft Pointer to the radiusein!]+\	he
 *    	!bottomRight Pointer to the radiuseinT0A\he
 *     unit is vp>	
 *     <br>!	Q<br>M[	
4	
TextStyle_GetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRigh^	Wtyping style using the styled string controller.
 *
 * @param controller Pointer to the1X4 object.
 * @param style Pointer to the typing style>	
 *     <br>!	Q<br>M[	
4	
_SetTypingStyle(
   * controller,TextStyle* sty	D	Wtyping style using the styled string controller.
 *
 * @param controller Pointer to the1X4 object.
 * @param style Pointer to the typing style>	
 *     <br>!	Q<br>M[	
4	
_GetTypingStyle(
   * controller,TextStyle* sty		Creates a/Joption object of the text editor. When the object is no longer used, call
/X5_Destroy} to destroy it.
 *
 * @return Pointer to the1X objecf'*	_Create()?	stroysoption object of"*
 * @param options Pointer to the1X object.
 * @since 24
 */
void_Destroy(OH_$	* optionsL	span typeB?"*
 * @param options Pointer to the1X* object.
 * @param textEditorSpanType Span[(	9XSpanTyp<	
 *     <br>!	Q<br>M[	
4	
_SetSpanType(
   
* options,SpanType textEditorSpan	D		span typeB?"*
 * @param options Pointer to the1X9 object.
 * @param textEditorSpanType Pointer to the span[(	
 *    1XSpanTyp<	
 *     <br>!	Q<br>M[	
4	
_GetSpanType(
   
* options,SpanType* textEditorSpan	^	4nodeB?"*
 * @param options Pointer to the1X object.
 * @param node Cont/	K	
 *     <br>!	Q<br>M[	
4	
_SetContentNode(OH_$* options,
1		D	content nodeB?"*
 * @param options Pointer to the1X object.	the cont/	K	
 *     <br>!	Q<br>M[	
4	
_GetContentNode(OH_$* options,
1	Ń	^sponse typeB?"*
 * @param options Pointer to the1X' object.
 * @param responseType Respons![(	9XResponseTyp<	
 *     <br>!	Q<br>M[	
4	
_SetResponseType(
   
* options,ResponseType response	D	response typeB?"*
 * @param options Pointer to the1X6 object.
 * @param responseType Pointer to the respons![(	
 *    1XResponseTyp<	
 *     <br>!	Q<br>M[	
4	
_GetResponseType(
   
* options,ResponseType* response	^	/B?"*
 * @param options Pointer to the1X  object.
 * @param menuType Menu[(	9XMenuTyp<	
 *     <br>!	Q<br>M[	
4	
_SetMenuType(OH_$)* options,
    OH_ArkUI_TextMenuType menu	D	B?"*
 * @param options Pointer to the1X/ object.
 * @param menuType Pointer to the menu[(	9XMenuTyp<	
 *     <br>!	Q<br>M[	
4	
_GetMenuType(OH_$** options,
    OH_ArkUI_TextMenuType* menu	^	V
?1is displayed.
 *
 * @param options Pointer to the1X object@u		the user	TP@	(menu show.
 *     start The start offset.
 *     end The end offset'.
 *     callbackUserData The user data>	
 *     <br>!	Q<br>M[	
4	
 _RegisterOnMenuShowCallback(
   b* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData	^	V
?.is hidden.
 *
 * @param options Pointer to the1X object@u		the user	TP@	(menu hide.
 *     start The start offset.
 *     end The end offset.
 *     userData The user data>	
 *     <br>!	Q<br>M[	
4	
 _RegisterOnMenuHideCallback(
   b* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData	^	V
?,appears.
 *
 * @param options Pointer to the1X object@u		the user	TP@	*menu appear.
 *     start The start offset.
 *     end The end offset.
 *     userData The user data>	
 *     <br>!	Q<br>M[	
4	
"_RegisterOnMenuAppearCallback(
   b* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUserData	^	V
?/disappears.
 *
 * @param options Pointer to the1X object@u		the user	TP@	-menu disappear.
 *     userData The user data>	
 *     <br>!	Q<br>M[	
4	
%_RegisterOnMenuDisappearCallback(
   
* options,	"void* callbackUserData	^	haptic feedback modeB?"*
 * @param options Pointer to the1X# object.
 * @param mode Haptic feedQ[(	OH_ArkUI_HapticFeedbackMod<	
 *     <br>!	Q<br>M[	
4	
_SetHapticFeedbackMode(
   (* options, OH_ArkUI_HapticFeedbackMode m0j	D	haptic feedback modeB?"*
 * @param options Pointer to the1X2 object.
 * @param mode Pointer to the haptic feedQ[(	)
 *     {@link OH_ArkUI_HapticFeedbackMod<	
 *     <br>!	Q<br>M[	
4	
_GetHapticFeedbackMode(
   )* options, OH_ArkUI_HapticFeedbackMode* m0j	Closesof the styled string controller%*
 * @param controller Pointer to the1Xf	M	

 *     <br>!	Q<br>M[	
4	
_CloseSelectionMenu(
   * controllerselected area using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and rele7ased by the caller.
 * @param controller Pointer to the1X# object.
 * @param start Pointer to'selected area.
 * @param end Pointer toselected area>	
 *     <br>!	Q<br>M[	
4	
_GetSelection(
    cons,* controller, uint32_t* start, uint32_t* endLstyled string displayed using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managedA, and released by the caller.
 * @param controller Pointer to the1X object.
 * @param descriptorg_Descriptor}f	M	

 *     <br>!	Q<br>M[	
4	
_SetStyledString(
    cons* controller, const_Descriptor* descriptorstyled string displayed using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, managedA, and released by the caller.
 * @param controller Pointer to the1X object.
 * @param descriptorg_Descriptor}f	M	

 *     <br>!	Q<br>M[	
4	
_GetStyledString(
    cons* controller,_Descriptor* descriptorL'Min the styled string style using the styled string controller.
 *
 * @note All input pointer parameters must be allocated, manaDged, and released by the caller.
 * @param controller Pointer to the1X object.
 * @param descriptorg_Descriptor}f	M	

 *     <br>!	Q<br>M[	
4	
_SetStyledPlaceholder(
    cons* controller, const3_Descriptor* descriptor);

/**
 * @brief Create the,Y instance.
 *
 * @param type The picker selection indicator enumeration type.
 * @return , instance. If the instance returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may9 be that the address space is full or
 *         the type	3
*/
-* OH_-B_Create(ArkUI_PickerIndicatorType type);

/**
* @brief Destroy the, instance.
*
* @param style The,2 instance to be destroyed.
* @since 23
*/
void OH_-	_Dispose(-* styA9 the parameters of background style.
*
* @param style The,L instance.
* @param background The parameters of background style.
* @return	.successQ,The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro"r code will be returned.
*        oa	a&the type is "background".
* @since 23
`	3_ConfigureBackground(-* style,
    ArkUI_PickerIndicatorBackground* background);

/**
* @brief Set the parameters of divider style.
*
* @param style The,F instance.
* @param divider The parameters of divider style.
* @return	.successQ,The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro"r code will be returned.
*        oa	a#the type is "divider".
* @since 23
`	3_ConfigureDivider(-3* style,
    ArkUI_PickerIndicatorDivider* divider)?	 scale options for matrix scaling%ArkUI_Matrix4ScaleOptions ArkUI_Matrix4ScaleOptions;

/**
 * @brief Create an object of ArkUI_Matrix4ScaleOptions.
 *        In the newly created optionsa$Ks for the scaling coefficients in the x, y and z directions
 *        are 11!s for centerX, centerY are 0. 
 *Qa pointer to the newly created ArkUI_Matrix4ScaleOptions.
 * @since 24
 */
ArkUI_Matrix4ScaleOptions* OH_ArkUI_Matrix4ScaleOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4ScaleOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4ScaleOptions_Dispose(ArkUI_Matrix4ScaleOptions* optionsk	scaling factor in the x direction in ArkUI_Matrix4ScaleOptions. 
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions Yobject.
 * @param scaleX The scaling factor in the x direction. Value range: (-∞, +∞)	z ,m	S	24	OMatrix4ScaleOptions_SetX(ArkUI_Matrix4ScaleOptions* options, const float scaleX~k	mscaling factor in the x direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of x is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction.	m	S	24	PMatrix4ScaleOptions_GetX(const ArkUI_Matrix4ScaleOptions* options, float* scaleXk	scaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions oXbject.
 * @param scaleY The scaling factor in the y direction. Value range: (-∞, +∞)	m	S	24	OMatrix4ScaleOptions_SetY(ArkUI_Matrix4ScaleOptions* options, const float scaleY~k	mscaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of y is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction.	m	S	24	PMatrix4ScaleOptions_GetY(const ArkUI_Matrix4ScaleOptions* options, float* scaleYk	scaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions oXbject.
 * @param scaleZ The scaling factor in the z direction. Value range: (-∞, +∞)	m	S	24	OMatrix4ScaleOptions_SetZ(ArkUI_Matrix4ScaleOptions* options, const float scaleZ~k	mscaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of z is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction.	m	S	24	Matrix4ScaleOptions_GetZ(const ArkUI_Matrix4ScaleOptions* options, float* scaleZ);

/**
 * @brief Set x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x offset relative to the transformation !center. Value range: (-∞, +∞)	m	S	24	VMatrix4ScaleOptions_SetCenterX(ArkUI_Matrix4ScaleOptions* options, const float centerX~k	value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerX is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x-direction offset relative to the transformation ce?	m	S	24	Matrix4ScaleOptions_GetCenterX(const ArkUI_Matrix4ScaleOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y offset relative to the transfor(mation center. Value range: (-∞, +∞)	m	S	24	VMatrix4ScaleOptions_SetCenterY(ArkUI_Matrix4ScaleOptions* options, const float centerY~k	value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerY is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y-direction offset relative to the transformation ce?	m	S	24	XMatrix4ScaleOptions_GetCenterY(const ArkUI_Matrix4ScaleOptions* options, float* centerY)?	+ion options for matrix rotating%ArkUI_Matrix4RotationOptions ArkUI_Matrix4RotationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4RotationOptions.
 *        In the newly created options, the x, y, and z values in the direction vector specifying the rotation axis
 *        are <undetermined; The default values for centerX, centerY are 0;*6angle is 0.
 *        If none of x, y, z are specified, it is equivalent to x=0, y=0, z=1, which means rotation around the z-axlis.
 *        Once any one of x, y, z is specified, the remaining unspecified values are equivalent to 0.
 *Qa pointer to the newly created ArkUI_Matrix4RotationOptions.
 * @since 24
 */
ArkUI_Matrix4RotationOptions* OH_ArkUI_Matrix4RotationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4RotationOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4RotationOptions_Dispose(ArkUI_Matrix4RotationOptions* optionsk	d	direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction. Value range: (-∞, +∞).
 * @ret	m	S	24	PMatrix4RotationOptions_SetX(ArkUI_Matrix4RotationOptions* options, const float x~k	d	direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of x is never set, its value 8will be undefined, so the function will return
 *       &	.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis dire	m	S	24	QMatrix4RotationOptions_GetX(const ArkUI_Matrix4RotationOptions* options, float* xk	d	direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction. Value range: (-∞, +∞).
 * @ret	m	S	24	PMatrix4RotationOptions_SetY(ArkUI_Matrix4RotationOptions* options, const float y~k	d	direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of y is never set, its value 8will be undefined, so the function will return
 *       &	.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis dire	m	S	24	QMatrix4RotationOptions_GetY(const ArkUI_Matrix4RotationOptions* options, float* yk	d	direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction. Value range: (-∞, +∞).
 * @ret	m	S	24	PMatrix4RotationOptions_SetZ(ArkUI_Matrix4RotationOptions* options, const float z~k	d	direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of z is never set, its value 8will be undefined, so the function will return
 *       &	.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis dire	m	S	24	QMatrix4RotationOptions_GetZ(const ArkUI_Matrix4RotationOptions* options, float* zk	d	,
ngle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The valu,?ngle in ArkUI_Matrix4RotationOptions. Value range: (-∞, +∞)	m	S	24	VMatrix4RotationOptions_SetAngle(ArkUI_Matrix4RotationOptions* options, const float ang	k	d	,
kngle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *        If the value of angle is never set, itsPmb
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The valu,$ngle in ArkUI_Matrix4RotationOptions	m	S	24	WMatrix4RotationOptions_GetAngle(const ArkUI_Matrix4RotationOptions* options, float* ang	Set x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x offsetA relative to the transformation center. Value range: (-∞, +∞)	m	S	24	\Matrix4RotationOptions_SetCenterX(ArkUI_Matrix4RotationOptions* options, const float centerX~k	value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerX is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x-direction offset relative to the transformation ce?	m	S	24	Matrix4RotationOptions_GetCenterX(const ArkUI_Matrix4RotationOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y offset relative to the1 transformation center. Value range: (-∞, +∞)	m	S	24	\Matrix4RotationOptions_SetCenterY(ArkUI_Matrix4RotationOptions* options, const float centerY~k	value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerY is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y-direction offset relative to the transformation ce?	m	S	24	^Matrix4RotationOptions_GetCenterY(const ArkUI_Matrix4RotationOptions* options, float* centerY)?	%lation options for matrix translating%ArkUI_Matrix4TranslationOptions ArkUI_Matrix4TranslationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4TranslationOpt,ions.
 *        In the newly created optionsa$s for x, y and z are 0.
 *Qa pointer to the newly created ArkUI_Matrix4TranslationOptions.
 * @since 24
 */
ArkUI_Matrix4TranslationOptions* OH_ArkUI_Matrix4TranslationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4TranslationOptions object.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4TranslationOptions_Dis-pose(ArkUI_Matrix4TranslationOptions* optionsk	htranslation value in the x-axis direction. The unit is px.
 *        If the value of x is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis di"rection. Value range: (-∞, +∞)	m	S	24	VMatrix4TranslationOptions_SetX(ArkUI_Matrix4TranslationOptions* options, const float x~k	ranslation value in the x-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatrixP4TranslationOptions object.
 * @param x The translation value in the x-axis dire	m	S	24	WMatrix4TranslationOptions_GetX(const ArkUI_Matrix4TranslationOptions* options, float* xk	htranslation value in the y-axis direction. The unit is px.
 *        If the value of y is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis di"rection. Value range: (-∞, +∞)	m	S	24	VMatrix4TranslationOptions_SetY(ArkUI_Matrix4TranslationOptions* options, const float y~k	ranslation value in the y-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatrixP4TranslationOptions object.
 * @param y The translation value in the y-axis dire	m	S	24	WMatrix4TranslationOptions_GetY(const ArkUI_Matrix4TranslationOptions* options, float* yk	htranslation value in the z-axis direction. The unit is px.
 *        If the value of z is never set, itsPm
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis di"rection. Value range: (-∞, +∞)	m	S	24	VMatrix4TranslationOptions_SetZ(ArkUI_Matrix4TranslationOptions* options, const float z~k	ranslation value in the z-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatrixP4TranslationOptions object.
 * @param z The translation value in the z-axis dire	m	S	24	Matrix4TranslationOptions_GetZ(const ArkUI_Matrix4TranslationOptions* options, float* z);

/**
 * @brief Create an identity matrix4 object.
 *Qcreated identity matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateIdentity();

/**
 * @brief Specify each element of the matrix to create a matrix4 object.
 *
 * @param elements Pointer to the array of expected matrix element data. +The length of array should be greater than
O#or equal to 16. The parameter must i$newly created matrix4 object.
 *         If the pointer of elements is null, the function will return null.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateByElements(const float* elements);

/**
 * @brief Disposes a matrix4 object.
 *
 * @param matrix Pointer to the matrix4 object to be disposed.
 * @since 24
 */
void OH_ArkUI_Matrix4_Dispose(ArkUI_Matrix4* matrix);

/**c
 * @brief Create a copy of the matrix4 object.
 *
 * @param matrix Pointer to the original matrix4f	pnewly created matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_Copy(const ArkUI_Matrix4* matrix);

/**
 * @brief Perform an inverse matrix transformation on the input matrix.
 *        If the matrix is invertible, this function will modif[y the input matrix; otherwise, the matrix will remain
 *        unchanged and an error code<*
 * @param matrix Pointer to the matrix4 object to be invero	&matrix is not invertible.
 * @since 24	Matrix4_Invert(ArkUI_Matrix4* matrix);

/**
 * @brief Combine another matrix with the original matrix, and storing the resulting matrix in oriMatrix.
 *        The resulting matrix is equivalent to first applying the transformation of oriMatrix and then applying
 *        the transformation of anotherMatrix. This function will alter the oriMatrix object.
 *
 * @param oriMatrix Plointer to the original matrix4 object.
 * @param anotherMatrix Pointer to another matrix object to be combinp	S	m	S	24	Matrix4_Combine(ArkUI_Matrix4* oriMatrix, const ArkUI_Matrix4* anotherMatrix);

/**
 * @brief Apply a tranlation transformation to the original matrix to obtain the translated matrix. Each translation
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be translated.
 * @param tr*anslate Pointer to the translation options	m	S	24	XMatrix4_Translate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4TranslationOptions* translatL	Apply a scale transformation to the original matrix to obtain the scaled matrix. Each scale
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be scaled..
 * @param scale Pointer to the scale options	m	S	24	IMatrix4_Scale(ArkUI_Matrix4* matrix, const ArkUI_Matrix4ScaleOptions* sca	Apply a rotation transformation to the original matrix to obtain the rotated matrix. Each rotation
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be: rotated.
 * @param rotate Pointer to the rotation options	m	S	24	OMatrix4_Rotate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4RotationOptions* rotatL	Apply a skew transformation to the original matrix to obtain the skewed matrix. Each skew
 *        transformation is applied cumulatively. This function will alter the input matrix object.
 *
 * @param matrix Pointer to the matrix4 object to be skewed. It must not be null.
 * @param skewX Skew coefficient in the x direction.
 * @param skewY Skew coefficient in the y direction.
	m	S	24	Matrix4_Skew(ArkUI_Matrix4* matrix, const float skewX, const float skewY);

/**
 * @brief Calculate the new coordinate position of a point after it has been transformed by a matrix.
 *        The calculated transformed coordinate point will be filled into the ArkUI_PointF structure
 *        pointed to by result.
 *
 * @param matrix Pointer to the matrix4 object.
 * @param oriPodint Pointer to the original coordinate point.
 * @param result Pointer to the result point. It must i$	m	S	24	eMatrix4_TransformPoint(const ArkUI_Matrix4* matrix, const ArkUI_PointF* oriPoint, ArkUI_PointF* resulMap the vertex coordinates of one polygon to the vertex coordinates of another polygon, and calculate the required
 *        matrix. The resulting matrix will be filled into the object pointed to by matrix.
 * 
 * @param matrix Pointer to the original matrix4 object. The result matrix will be filled into the object pointed to by it.
 *               It must not be null.
 * @param src Pointer to the array of original polygon coordinate points. The array should be at least as long as pointCount.
 * @param dst Pointer to the array of polygon coordinate points after mapping. The array should be at least as long as pointCount.
 * @p^aram pointCount The number of polygon points, which must be one of the values 0, 1, 2, 3, or 4	m	S	24	Matrix4_SetPolyToPoly(ArkUI_Matrix4* matrix, const ArkUI_PointF* src, const ArkUI_PointF* dst, const uint32_t pointCount);

/** the 16 elements of the matrix and fill them into the array pointed to by result.
 *        The array pointed to by result must have space for 16 float elements.
 *
 * @param matrix Pointer to the original matrix4 object.
 * @param result Pointer to an array that can holdmIt must i$	m	S	24	=Matrix4_GetElements(const ArkUI_Matrix4* matrix, float* resulp>configuration of tex/hg?	p>nfiguration of tex/FontConfigs OH_ArkUI_FontConfigs;

/**
 * @brief Create an option object for font weight configuration of text.
 *
 * @return A0 pointer to the option object.
 * @since 24
 */
g*g	_Create()?	stroy an option object for font weight configuration of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
voidg	_Destroy(g>	^	enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supporp%).
 * True means enable VariableFontWeightAK VariableFontWeight.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableVariableFontWeight Flag.
 * @since 24
 */
voidg_SetEnableVariableFontWeight(g* option, bool ena	Gets the enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supporp%).
 * True means enable VariableFontWeightAK> VariableFontWeight.
 *
 * @param option Pointer to the optionf	p3nableVariableFontWeight flag.
 * @since 24
 */
boolg_GetEnableVariableFontWeight(g>	^	enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight wMill be automatically updated when the device's font weight category changes.
true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means foRnt weight will not be automatically updated when the device's font weight category\	option Pointer to the option object to be modified.
 * @param enable enableDeviceFontWeightCategory Flag.
 * @since 24
 */
voidg#_SetEnableDeviceFontWeightCategory(g* option, bool enable);
 
/**
 * @brief Gets the enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means foRnt weight will not be automatically updated when the device's font weight category\	option Pointer to the optionf	p9nableDeviceFontWeightCategory flag.
 * @since 24
 */
boolg#_GetEnableDeviceFontWeightCategory(g>	Create an option object for font configuration of text.
 *
 * @return A pointer to the option object.
 * @since 24
 */
OH_ArkUI+_FontConfigs* OH_ArkUI_FontConfigs_Create()?	stroy an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @siAnce 24
 */
void OH_ArkUI_FontConfigs_Destroy(OH_ArkUI_FontConfigs>	^	gs of an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fontWeightConfigs font weight configs.
 * @since 24
 */
void OH_ArkUI_FontConfigs_SetFontWeightConfigs(OH_ArkUI_FontConfigs* option,
   g** fontWeightConfigs);
 
/**
 * @brief Getsg_s of an option object for font configuration of text.
 *
 * @param option Pointer to the optionf	pgs.
 * @since 24
 */
g@* OH_ArkUI_FontConfigs_GetFontWeightConfigs(OH_ArkUI_FontConfigs>	(Enumerates the tree operating status for	.
 *a	`	, the initial value of the node tree operating status. Nodes in this status do not support cross-language node tree operations.{)OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED = 0,
    /**
     * Enable, which means that when the option is applied to the node, t'he node's tree operating status will be%2OH_ARKUI_TREE_OPERATING_STATUS_ENABLE = 1,
    /**
     * Disable, which means that when the option is applied to the node, the) node's tree operating status will be dis!%/1OH_ARKUI_TREE_OPERATING_STATUS_DISABLE = 2,
} OH_	eratingStatusMtree operating status for	R		 :.
 * @param status The tree operating status to be set for	=.
 * Default value: OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED.a	void OH_	_SetTreeOperatingStatus(	!, OH_	GeratingStatus status);

/**
 * @brief Gets the tree operating status of	R		 	 thes tree operating status of	.a	OH_	eratingStatus OH_	_GetTreeOperatingStatus(	3linear gradient options.
 *a	UOH_7Options OH_7Options?	radial gradient options.
 *a	UTOH_ArkUI_RadialGradientOptions OH_ArkUI_RadialGradientOptions;

/**
 * @brief Createa7Ioptions object.
 * The returned object must be released by calling <b>OH_7"Options_Destroy</b>.
 *
 * @return	OH_7Options</b> object.a	OH_7Options* OH_7Options_Create()?	stroya7$options object.
 *
 * @param options	OH_7Options</b> object.a	void OH_7Options_Destroy(OH_7]Options* options);

/**
 * @brief Sets angle of linear gradient options.
 *
 * @param options	OH_7?Options</b> object.
 * @param angle Start angle of linear gradi!	e	+7Options_SetAngle(OH_7Options* options, float ang	;Gets angle of linear gradient options.
 *
 * @param options	OH_7NOptions</b> object.
 * @param angle Pointer to the start angle of linear gradi!	e	+7Options_GetAngle(const OH_7Options* options, float* ang	?Sets direction of linear gradient options.
 *
 * @param options	OH_7FOptions</b> object.
 * @param direction Direction of linear gradient.
&@9	)e	+7Options_SetDirection(OH_7Options* options,
   7 direc	?Gets direction of linear gradient options.
 *
 * @param options	OH_7UOptions</b> object.
 * @param direction Pointer to the direction of linear gradient.
&@9	)e	+7Options_GetDirection(const OH_7Options* options,
   7* direc	vb1 in linear gradient options.
 *
 * @param options	OH_7/Options</b> object.
 * @param repeating Whetheras	(e	+7Options_SetRepeating(OH_7>Options* options, bool repeating);

/**
 * @brief Gets whethera1 in linear gradient options.
 *
 * @param options	OH_7:Options</b> object.
 * @param repeating Pointer to whetheras	(e	+7#Options_GetRepeating(
    const OH_7Options* options, bool* repeating);

/**
 * @brief Sets color stops of linear gradient options.
 *
 * @param options Pointer to	OH_7Options</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAnd2StopsSize Number of elements in colors and stops.
O          Tn$in colors and stops must be the same	)e	+7Options_SetColorStop(
    OH_7WOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSizL	AGets color stops of linear gradient options.
 *
 * @param options	OH_7Options</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @pKaram colorsAndStopsSize Buffer size reserved for color stops by developer.
O          Tn&in colors and stops must be the same.
O0          It should be larger than writeLength,
O-          otherwise the operation will return&	=.
 * @param writeLength Number of color stops actually writte	m	S	l	$7#Options_GetColorStop(
    const OH_7Options* options, uint32_t* colors, float* stops, int32_t colorsAndStopsSize,
    int32_t* writeLength);

/**
 * @brief Createsb?options object.
 * The returned object must be released by calling <b>OH_ArkUI_RadialGradientOptions_Destroy</b>.
 *
 * @return	*OH_ArkUI_RadialGradientOptions</b> object.a	GOH_ArkUI_RadialGradientOptions* OH_ArkUI_RadialGradientOptions_Create()?	stroya?$options object.
 *
 * @param options	*OH_ArkUI_RadialGradientOptions</b> object.a	void OH_ArkUI_RadialGradientOptions_Destroy(OH_ArkUI_RadialGradientOptions* options);

/**
 * @brief Sets centerX of radial gra#dient options.
 *
 * @param options	XOH_ArkUI_RadialGradientOptions</b> object.
 * @param centerX X-coordinate of center poina	*e	+RadialGradientOptions_SetCenterX(OH_ArkUI_RadialGradientOptions* options, float centerX);

/**
 * @brief Gets centerX of radial' gradient options.
 *
 * @param options	gOH_ArkUI_RadialGradientOptions</b> object.
 * @param centerX Pointer to the X-coordinate of center poina	*e	+RadialGradientOptions_GetCenterX(
    const OH_ArkUI_RadialGradientOptions* options, float* centerX);

/**
 * @brief Sets cente3rY of radial gradient options.
 *
 * @param options	XOH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Y-coordinate of center poina	*e	+RadialGradientOptions_SetCenterY(OH_ArkUI_RadialGradientOptions* options, float centerY);

/**
 * @brief Gets centerY of radial' gradient options.
 *
 * @param options	gOH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Pointer to the Y-coordinate of center poina	*e	+RadialGradientOptions_GetCenterY(
    const OH_ArkUI_RadialGradientOptions* options, float* centerY);

/**
 * @brief Sets radiu2s of radial gradient options.
 *
 * @param options	ROH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Radius of radial gradi!	e	+RadialGradientOptions_SetRadius(OH_ArkUI_RadialGradientOptions* options, float radius);

/**
 * @brief Gets radius of radial gr$adient options.
 *
 * @param options	aOH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Pointer to the radius of radial gradi!	e	+iRadialGradientOptions_GetRadius(
    const OH_ArkUI_RadialGradientOptions* options, float* radius);

/**
vb1 in radial gradient options.
 *
 * @param options	FOH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Whetheras	(e	+RadialGradientOptions_SetRepeating(OH_ArkUI_RadialGradientOptions* options, bool repeating);

/**
 * @brief Gets whether colorsh1 in radial gradient options.
 *
 * @param options	QOH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Pointer to whetheras	(e	+RadialGradientOptions_GetRepeating(
    const OH_ArkUI_RadialGradientOptions* options, bool* repeating);

/**
 * @brief Sets co:lor stops of radial gradient options.
 *
 * @param options	OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop arrIay.
 * @param colorsAndStopsSize Number of elements in colors and stops.
O          Tn$in colors and stops must be the same	)e	+RadialGradientOptions_SetColorStop(
    OH_ArkUI_RadialGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSizL	AGets color stops of radial gradient options.
 *
 * @param options	OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer tbo the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
O          Tn&in colors and stops must be the same.
Ob          It should be larger than writeLength,
 *             otherwise the operation will return&	=.
 * @param writeLength Number of color stops actually writte	m	S	l	$RadialGradientOptions_GetColorStop(
    const OH_ArkUI_RadialGradientOptions* options, uint32_t* colors, float* stops, int32_t -colorsAndStopsSize,
    int32_t* writeLength) 0ion of the policy for mounting child node to the	f	`XIf you want to mount a RenderNode as a child node, that RenderNode must be the only chil+OH_ARKUI_NODE_MOUNT_POLICY_SINGLE_IF_RENDER_NODE = 0,
    /**
     * Multiple child nodes of type Node or RenderNode allowed.
 &"''OH_ARKUI_NODE_MOUNT_POLICY_MIXED = 1,
}	;5	6TYPE_H
/** @} */
ohC.xfޙ
ArkUI UI capabilities on the NQ-, property setting, event monitoring, and so AYstyled_string.h
 style and layout manager for the component whose {@link type} is set to **ARKUI_NODE_TEXT**
 * on the native side.
 *
 * @librauSTYLED_STRING_H
#define ARKUI_NATIVE_STYLED_STRING_H

#include "native_drawing/drawing_text_declaration.h"
#include "native_drawing/drawing_text_typography.h"
#include "native_drawing/drawing_types.h"
#include "native_gesture.h"
#include "native_node.h"
#include "native_typeC2formatted string data objects supported by the tex1pp1_pA pointer to OH_Drawing_TypographyStyle, obtained by {@link OH_Drawing_CreateTypographyStyle}.
 * @param collection A pointer tIo OH_Drawing_FontCollection, obtained by {@link OH_Drawing_CreateFontCollCreates a p1_ objectwt3the creation failed, either because the address space was full,
 *         or because the style, collection parameter was an exceptionTStyledString* OH_QMNCreate(
    OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collpCFree the memory occupied by the+A p1_q>WMtroy(ArkUI_StyledString 9	Dnew layout style to the top of the current format string style stack+A p1_&%A pointer to the OH_Drawing_TextStyleq>WM5PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_0" 9I/text content based on the current format stringq+A p1_1ScontentKent>!WM"AddText(ArkUI_StyledString* handle!o'ARemoves the top style from the stack in the current format string+A p1_q>WMPopTextStyle(ArkUI_StyledString s a pointer to an OH_Drawing_Typography object based on a format string object
 * for advanced text estimation and typography.
+A p1_`FOH_Drawing_Typography objectwt3%the creation fails because the handle>OH_Drawing_Typography* OH_QM#CreateTypography(ArkUI_StyledStringyhe placeholder+A p1_1S6placeholder A pointer to the OH_Drawing_PlaceholderSpap>WMPAddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholdL`NM+NM+ creat?NOH_QMpsJM/( and reclaims the memory occupied by theRKM.xMWM	_Destroy(N</onverts styled string information into HTML.
 *R!KM.j_hing HTML string. This pointer is managed internally and should be destroyed
 *         by calling <b>OH_QM0_Destroy()</b> when no longer needed to free theNConvertToHtml(N;Deserializes a byte array containing styled string information into a styled string.
 *
 * @param buffer Byte array to be deserialized/vLength of the byte arrayR"KM.jоM;IUnmarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize,N
SerializesQfinformation into a byte array.
 *
 * @param buffer Byte array where the serialized data will be stored/vLength of the byte arrayR"KM.$resultSize Actual length of the byte~ hX} ifQQM;GMarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize,N, size_t* resul1ZP
r
style.<br>QLSpanStyle_Create} can be used to create a styled
 * string style object.<br>Q)SpanStyle_Destroy} can be used to destroyQ[
 * object.<br>        After the object is created, {@link OH_ArkUI_SpanStyle_SetStart} andaSpanStyle_SetLength} can be used to set the usage scope of the style.<br>        After the object is
 * created, the **OH_ArkUI_SpanStyle_SetXXXStyle** series APIs can be used to set the specific styles that take effect.
 * For example, you can use {@lin8k OH_ArkUI_SpanStyle_SetTextStyle} to set the font styleQ.SpanStyle OH_ArkUI_SpanStyle;
 An image style object.<br>QKImageAttachment_Create} can be used to create an
 * image style object.<br>QImageAttachment_Destroy} can be used to destroy the image style
 * object.<br>        After the object is created, the **OH_ArkUI_ImageAttachment_SetXXX** series APIs can be used to
 * set the styles that take effect. For example, you can use {@link OH_A;rkUI_ImageAttachment_SetPixelMap} to set an
 * image sourceQ.+ImageAttachment OH_ArkUI_ImageAttachment;
 Acustom drawing span.<br>Q
C_Create} can be used to create a custom
 * drawing span object.<br>Q
_Destroy} can be used to destroy the custom drawing span
 * object.<br>        After the object is created, {@link OH_ArkUI_Cus_RegisterOnMeasureCallback} anda
F_RegisterOnDrawCallback} can be used to register drawing callback func	p
;
 V]C
a styled strx!΍No style is specifiaIASTYLEDSTRINGKEY_UNSPECIFIED = -1,

    /**
     * Text font style (STYLEDSTRINGKEY_FONT = Texta#%JSTYLEDSTRINGKEY_DECORATION = 1,

    /**
     * Text baseline offset style (NSTYLEDSTRINGKEY_BASELINE_OFFSET = 2,

    /**
     * Text letter spacing style (ESTYLEDSTRINGKEY_LETTER_SPACING = 3,

    /**
     * Text shadow style (GSTYLEDSTRINGKEY_TEXT_SHADOW = 4,

    /**
     * Text line height style (LSTYLEDSTRINGKEY_LINE_HEIGHT = 5,

    /**
     * Text background color style (?STYLEDSTRINGKEY_BACKGROUND_COLOR = 6,

    /**
     * URL style (STYLEDSTRINGKEY_URL^Text line spacing styl!$	?STYLEDSTRINGKEY_LINE_SPACING = 8,

    /**
     * Gesture style (STYLEDSTRINGKEY_GESTURE = 10TextQ#%$STYLEDSTRINGKEY_PARAGRAPH_STYLE = 20
mage style (STYLEDSTRINGKEY_IMAGE = 30
span style ( STYLEDSTRINGKEY_CUSTOM_SPAN = 40User data span style (=STYLEDSTRINGKEY_USER_DATA = 500
} OH_ArkUI_StyledStringKey;
 QR,, of the plain text content type.
 *
 * @note"in use, invoke <b> OH_QM#_Destroy </b> to destroy it.
 *    	R`Rext content string of the styled string.
 * @param styles Pointer to the initialization option of the styled string, which points to an array of thePSpan6initialization option of the styled string.
 * @return#NM+ created"tit may be paramsQ~,NOH_QM"_CreateWithString(const char* valu@%panStyle** styles, int32_t length);
 QR,' of the image content type.
 *
 * @note"in use, invoke <b> OH_QM#_Destroy </b> to destroy it.
 *    	R`R(ImageAttachment#NM+ created"tit may be paramsQ~,NOH_QM_CreateWithImageAttachmentqImageAttachment* value);
 QR,- of the custom span content type.
 *
 * @note"in use, invoke <b> OH_QM#_Destroy </b> to destroy it.
 *    	R`R(
#NM+ created"tit may be paramsQ~,NOH_QM_CreateWithCustomSpan(cons_`length of a styled stringQmRL@lcharacter lengthm-Qt?0t hX} ifQQn XM_GetLength(oN/,
    int32_t* length);
 4ext content of a styled stringQmRL@-text contentFBuffer size1f'length of the data6 if
 *w(qa     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *wVN~)Qt?0t hX} ifQis invalid.
 *t%VxDn XM_GetString(
   nN0.s#h'Checks whether a styled string is the same as another styled string. The two styled strings are the same if
 * they have the same text and styleQmfirstDescriptoR+@"econdDescriptor Pointer to anotherR3@isEqual Pointer to the **isEqua!ithe two styled strings are the same. **true**
 *     if the two are the same; returns **false** otherwisem-Qt?0t hX} ifQQn XM	_IsEqual(oN%firstDescriptor,
   nN&secondDescriptor, bool* isEqualG&a sub-styled string of a styled stringQmRL@ubDescriptoRsub-styled stringYzub-styled string+length of the styled string]!sub-styled string+Udifference between the length of the styled
 *     string and the value of **start**]m-Qt?0t hX} ifQQn XM_SubStyledString(oN/,
   * subDescripto|4$n(/set within a specified range of a styled stringQmRL@Zz}	range+length of the styled string]!specified range+difference between the length of the styled
 *     string and the value of **start**].
 * @param styledKey Style type to be obtained/6"StyledStringKey}.
 * @param stylesTof the style object6ylesSize Size of the buffer for the style object array1f'Lactual size of the array of the style object obtained from the styled stringm-Qt?0t hX} ifQis invalid.
 *t%VxDn XM_GetStyles(oN/,
   |clength, OH_ArkUI_StyledStringKey styledKey, OH_ArkUI_SpanStyle** styles,
    uint32_t stylesSize, uh&*Converts an HTML string to a styled stringQmRL@Dhtml Pointer to the HTML string to be converted into a styled stringm-Qt?0t hX} ifQQn XM
_FromHtml(N)b, const char* html);
 
/**
 * @brief Replaces the text within a specified range of a styled stringQmRL@Zz}	range+length of the styled string]!specified range+difference between the length of the styled
 *     string and the value of **start**].
 * @param string Pointer to the string t'o replace the content in the target ranQ[/Qt?0t hX} ifQQn XM_ReplaceString(
   N|dlength, const char* string);
 
/**
 * @brief Inserts text at a specified position of a styled stringQmRL@art Insertion position+Mlength of the styled string].
 * @param string Pointer to the string to inserоQt?0t hX} ifQQn XM_InsertString(
   N, uint32_t start, const char* string);
 
/**
 * @brief Removes the text within a specified range of a styled string.
 *
 * @notRaRL@Zz}	range+length of the styled string]!specified range+Udifference between the length of the styled
 *     string and the value of **start**]m-Qt?0t hX} ifQQn XM_RemoveString(
   N|Wlength);
 
/**
 * @brief Replaces the style within a specified range of a styled stringQmRL@panSq$)SpanStyle} object.
 *     <br>You need toObSpanStyle_SetStart} and {@link OH_ArkUI_SpanStyle_SetLength} to set the
 *     target range in thej оQt?0t hX} ifQQn XM_ReplaceStyle(
   N), const OH_ArkUI_SpanStyle* spanStyle);
 94a new style for a specified range of a styled stringQmRL@panSq$#SpanStyle} object. You need to callPbSpanStyle_SetStart} and {@link OH_ArkUI_SpanStyle_SetLength} to set the target range in the
 *    j оQt?0t hX} ifQQn XM_SetStyle(
   N, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief Removes the specified style for a specified range of a styled string.
 QjRL@Zz}	range+length of the styled string]!specified range+difference between the length of the styled
 *     string and the value of **start**].
 * @param styledKey Style type. The valu]-*StyledStringKey}m-Qt?0t hX} ifQQn XM_RemoveStyle(
   N|alength, OH_ArkUI_StyledStringKey styledKey);
 
/**
 * @brief Clears all styles of a styled stringQmRUnQt?0t hX} ifQQn XM_ClearStyles(N, 
/**
 * @brief ReplacesQwithin a specified rangeQmRL@Zz}	range+length of the styled string]!specified range+difference between the length of the styled
 *     string and the value of **start**].
 * @param other Pointer to the new {@linR6nQt?0t hX} ifQQn XM_ReplaceStyledString(N),
   |lengthmN'^other);
 
/**
 * @brief Inserts a new styled string at a specified position of a styled stringQmRL@art Insertion position+@length of the styled string].
 * @param other Pointer to the newR<nQt?0t hX} ifQQn XM_InsertStyledString(
   N, uint32_t startmN'Qother);
 
/**
 * @brief Appends a new styled string to the end of a styled stringQmRL@other Pointer to the newR<nQt?0t hX} ifQQn XM_AppendStyledString(
   NmN'Mother);
 
/**
 * @brief Actively refreshes the custom span in a styled stringQmRUnQt?0t hX} ifQQn XM_InvalidateCustomSpan(oN2 Aext font style.<br>Q7DStyle_Create} can be used to create a text font
 * style object.<br>Q7Style_Destroy} can be used to destroy the text font style object.<br>
 *      After the object is created, the **OH_ArkUI_TextSmtyle_SetXXX** series APIs can be used to set the specific
 * styles that take effect. For example, you can us5#Style_SetFontColor} to set text colO4Style OH_ArkUI_TextStyle;
 #superscript and subscript`΍Normal text style (SUPERSCRIPTSTYLE_NORMAL = Superscript text style (BSUPERSCRIPTSTYLE_SUPERSCRIPT,

    /**
     * Subscript text style (9SUPERSCRIPTSTYLE_SUBSCRIPT
} OH_ArkUI_SuperscriptStyle;
 Q"Style} object.
 *
 * @note"Ain use, invoke <b> OH_ArkUI_TextStyle_Destroy </b> to destroy it.0TextStyle</b>q#s?Style_Create();
 
/**
 * @brief Releases the memory occupied byStyle}textSq(߻StyleStyle* textStyle);
 9ext color for a text font styleQmtextSq([n1nQz0u| (Style* textStyle, uint32_t fontColor);
 4ext color of a text font styleQmtextSq([p@nQz0u<const OH_ArkUI_TextStyle* textStyle, uint32_t* fontColor);
 9#a font family for a text font styleQmtextSq(bnQz0uStyle_SStyle* textStyled Q{
a text font styleQmtextSq(length of the string6 if
 *w(qa     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *wVN~)QtSt$VxD#3Style_GetFontFamily(const OH_ArkUI_TextStyle* textS=C 9font size for a text font styleQmtextSq([	XnQz0uo$Style* textStyle, float fontSize);
 Q̠
text font styleQmtextSq([&nQz0ue8const OH_ArkUI_TextStyle* textStyle, float* fontSize);
 9!font weight for a text font styleQmtextSq([Y]nQz0uStyle_SStyle* textStyle _ Q{ 
a text font styleQmtextSq([nQz0u7Style_GetFontWeight(const OH_ArkUI_TextStyle* textStylea 9 font style for a text font styleQmtextSq([=[nQz0u Style* textStylek Q	a text font styleQmtextSq([kjnQz0u6Style_GetFontStyle(const OH_ArkUI_TextStyle* textStylem 9"stroke width for a text font styleQmtextSq(FnQz0uIStyle_SetStrokeWidth(OH_ArkUI_TextStyle* textStyle, float strokeWidth);
 Nroke width of a text font styleQmtextSq(strokeWstroke widthnQz0uPStyle_GetStrokeWidth(const OH_ArkUI_TextStyle* textStyle, float* strokeWidth);
 9$a stroke color for a text font styleQmtextSq(strokeColor Strokep'nQz0uLStyle_SetStrokeColor(OH_ArkUI_TextStyle* textStyle, uint32_t strokeColor);
 Nroke color of a text font styleQmtextSq(!strokeColor Pointer to the strokep'nQz0uSStyle_GetStrokeColor(const OH_ArkUI_TextStyle* textStyle, uint32_t* strokeColor);
 96superscript and subscript styles for a text font styleQmtextSq(,superscript Superscript and subscript stylesi%SuperscriptStyl/Qz0u.Style_SetSuperscript(OH_ArkUI_TextStyle* textS SuperscriptStyle superscript);
 N4uperscript and subscript styles of a text font styleQmtextSq(;superscript Pointer to the superscript and subscript stylesi%SuperscriptStyl/Qz0u4Style_GetSuperscript(const OH_ArkUI_TextStyle* textS!SuperscriptStyle* superscript);
 Q.{@link OH_ArkUI_SpanStyle} object.
 *
 * @note"Ain use, invoke <b> OH_ArkUI_SpanStyle_Destroy </b> to destroy it.0SpanStyle</b>q#WSpanStyle* OH_ArkUI_SpanStyle_Create();
 
/**
 * @brief Releases the memory occupied by
SpanStyle}spanSq$Span߻3SpanStyle_Destroy(OH_ArkUI_SpanStyle* spanStyle);
 N  ofQobjectQmspanSq$SpandKey(O-)*StyledStringKey}m-Qz6SpanStyle_GetStyledKey(const OH_ArkUI_SpanStyle* spanSStyledStringKey* styledKey);
  IforQobjectQmspanSq$SpanI^zQjоQzCSpanStyle_SetStart(OH_ArkUI_SpanStyle* spanStyle, int32_t start);
 NIQobjectQmspanSq$SpanI,QjоQzJSpanStyle_GetStart(const OH_ArkUI_SpanStyle* spanStyle, int32_t* start);
 Jngth forQobjectQmspanSq$SpanQjоQzESpanStyle_SetLength(OH_ArkUI_SpanStyle* spanStyle, int32_t length);
 Q	length ofQobjectQmspanSq$Spanl	length ofQjоQzLSpanStyle_GetLength(const OH_ArkUI_SpanStyle* spanStyle, int32_t* length);
 afont style forQobjectQmspanSq$Spanp(Sq(	nQz5SpanStyle_SetTextStyle(OH_ArkUI_SpanStyle* spanStyle,1NStyle* textStyle);
 4extQobjectQmspanSq$Spanp(Sq(	nQz]SpanStyle_GetTextStyle(const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextStyle* textStyle);
 Aparagraph style.<br>Q0} can be used to create a
 *.<br>QParagraphStyle_Destroy} can be used to destroy the paragraph
 * style object.<br>        After the object is created, the **OH_ArkUI_ParagraphStyle_SetXXX** series APIs can be used
 * to set the specific styles that take effect. For example, you can use N{@link OH_ArkUI_ParagraphStyle_SetTextAlign}
 * to set a text alignment methodQ.)ParagraphStyle OH_ArkUI_ParagraphStyle;
 9F forQobjectQmspanSq$Span	q$ы	nQzSpanStyle_SetGSpanStyle* spanStyle, const OH_ArkUI_ParagraphStyle* paragraphStyle);
 Q9p@QobjectQmspanSq$Span	q$ы	nQzSpanStyle_GetwASpanStyle* spanStyle, OH_ArkUI_ParagraphStyle* paragraphStyle);
 Agesture style.<br>QHestureStyle_Create} can be used to create a gesture
 * style object.<br>QestureStyle_Destroy} can be used to destroy the gesture style object.<br>
 *       After the object is created, the **OH_ArkUI_GestureStyle_RegisterOnXXXCallback** series APIs can be used to
 * register specific event callbacks. For example, you can use [{@link OH_ArkUI_GestureStyle_RegisterOnClickCallback} to
 * register a click event callbackQ.%GestureStyle OH_ArkUI_GestureStyle;
 9gesture style forQobjectQmspanSq$SpangestureSq$Gesture	nQzSpanStyle_SetGestureCSpanStyle* spanStyle, const OH_ArkUI_GestureStyle* gestureStyle);
 Qgesture style ofQobjectQmspanSq$SpangestureSq$Gesture	nQzSpanStyle_GetGestureStyleq=SpanStyle* spanStyle, OH_ArkUI_GestureStyle* gestureStyle);
 Aext shadow style.<br>Q7LShadowStyle_Create} can be used to create a text
 * shadow style object.<br>Q7ShadowStyle_Destroy} can be used to destroy the text shadow
 * style object.<br>        After the object is created, {@link OH_"
8ShadowStyle_SetTextShadow} can be used to
 * set a styleQ2'ShadowStyle OH_ArkUI_TextShadowStyle;
 ashadow style forQobjectQmspanSq$Spanp(ShadowSq(Shadow	nQzSpanStyle_SetTextShadowSpanStyle* spanStyle,1N ShadowStyle* textShadowStyle);
 4style ofQRdspanSq$Spanp(ShadowSq(Shadow	nQzSpanStyle_GetTextShadowStyleqCSpanStyle* spanStyle, OH_ArkUI_TextShadowStyle* textShadowStyle);
 AF.<br>Q(#_Create} can be used to create a
 *F object.<br>Q(,_Destroy} can be used to destroy the text
 *Q?5bject.<br>        After the object is created, the **#j_SetXXX** series APIs
 * can be used to set the specific styles that take effect. For example, you can usea#,_SetTextDecorationType} to set the decoratio!pAA;
 aj forQRdspanSq$Span?
Sq$(	nQzSpanStyle_SetDecorationSpanStyle* spanStyle, constA* decorationStyle);
 4exta ofQRdspanSq$Span?
Sq$(	nQzSpanStyle_GetDecorationStyleqSpanStyle* spanStyleA* decorationStyle);
 Abaseline offset style.<br>QXBaselineOffsetStyle_Create} can be used to create
 * a baseline offset style object.<br>QBaselineOffsetStyle_Destroy} can be used to destroy the
 * baseline offset style object.<br>        After the object is created,aKBaselineOffsetStyle_SetBaselineOffset} can be used to set a baseline offsetQ.*BaselineOffsetStyle OH_ArkUI_BaselineOffse, 9	baseline offset style forQRdspanSq$SpanbaselineOffsetSq$BaselineOffset	nQzSpanStyle_SetBaselineOffsejGSpanStyle* spanStyle, const OH_ArkUI_BaselineOffsetStyle* baselineOffse k$style ofQRdspanSq$SpanbaselineOffsetSq$BaselineOffset	nQz SpanStyle_GetBaselineOffsetStyleqKSpanStyle* spanStyle, OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 Aletter spacing style.<br>QVLetterSpacingStyle_Create} can be used to create a
 * letter spacing style object.<br>QLetterSpacingStyle_Destroy} can be used to destroy the
 * letter spacing style object.<br>        After the object is created,
bCLetterSpacingStyle_SetLetterSpacing} can be used to set letter spacx( K	1LetterSpacingStyle OH_ArkUI_LetterSpacingStyle;
 Jtter spacing style forQRdspanSq$SpanSq$LetterSpacing	nQzSpanStyle_SetLetterSpac~OSpanStyle* spanStyle, const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 Qstyle ofQRdspanSq$SpanSq$LetterSpacing	nQzSpanStyle_GetLetterSpacingStyleqISpanStyle* spanStyle, OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 Aline height style.<br>Q`LHeightStyle_Create} can be used to create a line
 * height style object.<br>Q`HeightStyle_Destroy} can be used to destroy the line height
 * style object.<br>        After the object is created, {@link OH_Z
hHeightStyle_SetLineHeight} can be used to
 * set fixed line height.<br>        Since API version 26.0.0,OoHeightStyle_SetLineHeightMultiple}
 * can be used to set the line height multiplier after the object is createdQ.+LineHeightStyle OH_ArkUI_LineHeightStyle;
 J	style forQRdspanSq$SpanlineHeightSq$`Height	nQzSpanStyle_SetLineHeighjISpanStyle* spanStyle, const OH_ArkUI_LineHeightStyle* lineHeightStyle);
 Qstyle ofQRdspanSq$SpanlineHeightSq$`Height	nQzSpanStyle_GetLineHeightStyleqCSpanStyle* spanStyle, OH_ArkUI_LineHeightStyle* lineHeightStyle);
 AURL style.<br>Q>UrlStyle_Create} can be used to create a URL style object.<br>D`	UrlStyle_Destroy} can be used to destroy the URL style object.<br>        After the object
 * is created, {@link OH_ArkUI_UrlSt$yle_SetUrl} can be used to set a URLQ.UrlStyle OH_ArkUI_UrlStyle;
 9URL style forQRdspanSq$SpanurlSq$Url	nQzZSpanStyle_SetUrlStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UrlStyle* urlStyle);
 QURL style ofQRdspanSq$SpanurlSq$Url	nQzSpanStyle_GetUrlStyleq5SpanStyle* spanStyle, OH_ArkUI_UrlStyle* urlStyle);
 Abackground color style.<br>QZBackgroundColorStyle_Create} can be used to
 * create a background color style object.<br>Q7BackgroundColorStyle_Destroy} can be used to
 * destroy25style object.<br>        After the object is created,ahBackgroundColorStyle_SetColor} and {@link OH_ArkUI_BackgroundColorStyle_SetRadius} can be used to
 * set2and rounded cornersQ.5BackgroundColorStyle OH_ArkUI_BackgroundColorStyle;
 9.2	style forQRdspanSq$SpanbackgroundColorSq$BackgroundColor	nQzSpanStyle_SetBackgroundColorSSpanStyle* spanStyle, const OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 QG5style ofQRdspanSq$SpanbackgroundColorSq$BackgroundColor	nQz!SpanStyle_GetBackgroundColorStyleqMSpanStyle* spanStyle, OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 Auser data span style.<br>QPUserDataSpan_Create} can be used to create a user
 * data span style object.<br>QUserDataSpan_Destroy} can be used to destroy the user data span
 * style object.<br>        After the object is created, {@linkD OH_ArkUI_UserDataSpan_SetUserData} can be used to bind
 * user dataQ.%UserDataSpan OH_ArkUI_UserDataSpan;
 9user data span style forQRdspanSq$Span;Spa!UserDataSpannQzkSpanStyle_SetUserDataSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UserDataSpan* userDataSpan);
 Quser data span style ofQRdspanSq$Span;Spa!UserDataSpannQzSpanStyle_GetUserDataSpanq=SpanStyle* spanStyle, OH_ArkUI_UserDataSpan* userDataSpan);
 9ustom span style forQRdspanSq$Span	customSpa!
nQz@SpanStyle_SetCustomSpan(
    OH_ArkUI_SpanStyle* spanStyle, cons* customSpan);
 Qustom span style ofQRdspanSq$Span	customSpa!
nQzSpanStyle_GetCustomSpanqSpanStyle* spanStyle,* customSpan);
 9image style forQRdspanSq$SpanimageAttachment ImageAttachmentnQzSpanStyle_SetImageAttachment(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @br\image style ofQRdspanSq$SpanimageAttachment ImageAttachmentnQzSpanStyle_GetImageAttachmentqCSpanStyle* spanStyle, OH_ArkUI_ImageAttachment* imageAttachment);
 QcustomO.<br>a@LeadingMarginSpanDrawInfo_Create} can be used to create a customOobject for
 *.<br>QGLeadingMarginSpanDrawInfo_Destroy} can be used to destroy the
 * customOobject.<br>        This object is used to provide the drawing
 * context information of the current line in the callback function reg
istered bya3ParagraphStyle_RegisterOnDrawLeadingMarginCallback}Q.?LeadingMarginSpanDrawInfo OH_ArkUI_LeadingMarginSpanDrawInfo;
 Q>{@link OH_ArkUI_LeadingMarginSpanDrawInfo} object.
 *
 * @note"Qin use, invoke <b> OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy </b> to destroy it.0LeadingMarginSpanDrawInfo</b>q#LeadingMarginSpanDrawInfo* OH_ArkUI_LeadingMarginSpanDrawInfo_Create();
 
/**
 * @brief Releases the memory occupied by the {@lLeadingMarginSpanDrawInfo}drawInfo LeadingMarginSpanDrawInfoѻRLeadingMarginSpanDrawInfo_Destroy(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo);
 9_Yof the current line relative to the component in the custom drawing information
 * objectQmdrawInfo LeadingMarginSpanDrawInfoaeHx Horizontal offset of the current line relative to the component, in pxm-QzXLeadingMarginSpanDrawInfo_SetX(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float x);
 Q_Yof the current line relative to the component in the custom drawing information
 * objectQmdrawInfo LeadingMarginSpanDrawInfoaex Pointer to_4of the current line relative to the component, in pxm-Qz_LeadingMarginSpanDrawInfo_GetX(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float* x);
 9otop of a line and the top edg+in the custom drawing
 * information objectQmdrawInfo LeadingMarginSpanDrawInfoop Da6top of a line and the top edge of the component, in pxm-Qz\LeadingMarginSpanDrawInfo_SetTop(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float top);
 Q`top of a line and the top edg+in the custom drawing
 * information objectQmdrawInfo LeadingMarginSpanDrawInfoop Pointer to!6top of a line and the top edge of the component, in pxm-QzgLeadingMarginSpanDrawInfo_GetTop(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* top);
 9o bottom of a line and the top edg+in the custom drawing
 * information objectQmdrawInfo LeadingMarginSpanDrawInfoaeottom Da9bottom of a line and the top edge of the component, in pxm-QzfLeadingMarginSpanDrawInfo_SetBottom(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float bottom);
 Q` bottom of a line and the top edg+in the custom drawing
 * information objectQmdrawInfo LeadingMarginSpanDrawInfoaeottom Pointer to!9bottom of a line and the top edge of the component, in pxm-QzmLeadingMarginSpanDrawInfo_GetBottom(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* bottom);
 9o,baseline of the current line and the top edgin the custom
 *OobjectQmdrawInfo LeadingMarginSpanDrawInfoae	aseline DaEbaseline of the current line and the top edge of the component, in pxm-QzjLeadingMarginSpanDrawInfo_SetBaseline(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float baseline);
 Q`,baseline of the current line and the top edgin the custom
 *OobjectQmdrawInfo LeadingMarginSpanDrawInfoaeaseline Pointer to!Lbaseline of the current line and the top edge of the component,
 *     in pxm-QzLeadingMarginSpanDrawInfo_GetBaseline(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* baseline);
 
/**
 * @briefo̳customOobjectQmdrawInfo LeadingMarginSpanDrawInfoae[
Z^nQzLeadingMarginSpanDrawInfo#LeadingMarginSpanDrawInfo* drawInfo 4ȳcustomOobjectQmdrawInfo LeadingMarginSpanDrawInfoae[ ׶YnQz LeadingMarginSpanDrawInfo_GetTex<"eadingMarginSpanDrawInfo* drawInfo 'index of the current line in the customOobjectQmdrawInfo LeadingMarginSpanDrawInfoaeI^zindex of the current linem-QzgLeadingMarginSpanDrawInfo_SetStart(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t start);
 N+art index of the current line in the customO#object for paragraph
 * indentationQmdrawInfo LeadingMarginSpanDrawInfoaeIindex of the current linem-QznLeadingMarginSpanDrawInfo_GetStart(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* start);
 9+end index of the current line in the customOobjectQmdrawInfo LeadingMarginSpanDrawInfoaezindex of the current linem-Qz_LeadingMarginSpanDrawInfo_SetEnd(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, uint32_t end);
 Q+end index of the current line in the customOobjectQmdrawInfo LeadingMarginSpanDrawInfoaeIindex of the current linem-QzjLeadingMarginSpanDrawInfo_GetEnd(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* end);
 9 $	@he current line is the first line of the paragraph in the customOobject for
 *QmdrawInfo LeadingMarginSpanDrawInfoaefirst Whether the current line is the first line of the paragraph. **true** indicates the first line, and **
 *     false** indicate^InQz_LeadingMarginSpanDrawInfo_SetFirst(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, bool first);
 a @he current line is the first line of the paragraph in the customO	object
 *QmdrawInfo LeadingMarginSpanDrawInfoaefirst Pointer to the **first the current line is the first line of the
 *     paragraph. **true** indicates the first line, and **false** indicates the oppohInQzjLeadingMarginSpanDrawInfo_GetFirst(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    bool* first);
 Q{@link OH_ArkUI_ы	
 * @note"Fin use, invoke <b> OH_ArkUI_ParagraphStyle_Destroy </b> to destroy it.0ParagraphStyle</b>q#0/ 
/**
 * @brief Releases the memory occupied byы
paragraphSq$ы) "ParagraphStyle* paragraphStyle);
 9 horizontal text alignment method Rd
paragraphSq$ыoeލ Horizontal text alignment methodi3*nQzHParagraphStyle_SetTextAlign(OH_ArkUI_ParagraphStyle* paragraphStyle,
   | Q horizontal text alignment method Rd
paragraphSq$ыoe> horizontal text alignment methodi%_.nQz2const OH_ArkUI_ParagraphStyle* paragraphStyle,
    9first-line text,Rd
paragraphSq$ы
#Indent First-line indentation valuenQzZParagraphStyle_SetTextIndent(OH_ArkUI_ParagraphStyle* paragraphStyle, float textIndent);
 Qfirst-line text,Rd
paragraphSq$ы
2Indent Pointer to the first-line indentation valuenQzKIndent(const OH_ArkUI_ParagraphStyle* paragraphStyle, float* textIndent);
 9]number of lines Rd
paragraphSq$ыoemaxLines5line!.QzXParagraphStyle_SetMaxLines(OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t maxLines);
 Qmaximum number of lines Rd
paragraphSq$ыoe.maxLines Pointer to the maximum number of line!.Qz_ParagraphStyle_GetMaxLines(const OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t* maxLines);
 9_+#mode when the paragraph is too long Rd
paragraphSq$ыoe4overflow Display mode when the paragraph is too longi%_	Overflow}m-QzgParagraphStyle_SetOverflow(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextOverflow overflow);
 Q+display mode when the paragraph is too long Rd
paragraphSq$ыoeCoverflow Pointer to the display mode when the paragraph is too longi%_	Overflow}m-QznParagraphStyle_GetOverflow(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextOverflow* overflow);
 9rule Rd
paragraphSq$ыoeru5֠nQzڡ%ParagraphStyle* paragraphS& Q[rule Rd
paragraphSq$ыoe'ru5֠nQzEParagraphStyle_GetWordBreak(const OH_ArkUI_ParagraphStyle* paragraphS' 9BRd
paragraphSq$ыoe	Ò@nQz0	,OH_ArkUI_ParagraphStyle* paragraphStyle,
   ^ QBRd
paragraphSq$ыoePnQz	2const OH_ArkUI_ParagraphStyle* paragraphStyle,
   ' 9?Rd
paragraphSq$ыoe5nQz0ɘ2ParagraphStyle* paragraphStyle, uint32_t width);
 Q)?Rd
paragraphSq$ыoeJnQz/Width(const OH_ArkUI_ParagraphStyle* paragraphS= 9q@Rd
paragraphSq$ыoe=nQz0/ParagraphStyle* paragraphSz Qq@Rd
paragraphSq$ыoeHLnQz&)const OH_ArkUI_ParagraphStyle* paragraphSɟ 91Rd
paragraphSq$ыoe8nQz,ParagraphStyle* paragraphS& Q91Rd
paragraphSq$ыoeӬ5nQz#)const OH_ArkUI_ParagraphStyle* paragraphS:' 9vertical text alignment method Rd
paragraphSq$ыoeVertical text alignment methodi%_:nQz-ParagraphStyle* paragraphS̰: ertical text alignment method Rd
paragraphSq$ыoe-Pointer to the vertical text alignment methodi%_:nQz7VerticalAlign(const OH_ArkUI_ParagraphStyle* paragraphS̰% A>!functiona>s draw!Rd
paragraphSq$ыoeonDraw8for drawing leading margi.QzParagraphStyle_RegisterOnDrawLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    void(*onDraw)(ArkUI_DrawContext	3, OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo));
 A>!functiona>.distance is obtained in the paragraph
 * styleQm
paragraphSq$ыoeleadingMargin8:for obtaining the indentation distance of a text paragraphm-QzParagraphStyle_RegisterOnGetLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    float(*leadingMargin)());
 
/**
f̳)Rd
paragraphSq$ыZ^nQz)ParagraphStyle* paragraphS_ 4ȳ-Rd
paragraphSq$ыnQz=ParagraphStyle* paragraphS_>`1{@link OH_ArkUI_GestureStyle} object.
 *
 * @note"Din use, invoke <b> OH_ArkUI_GestureStyle_Destroy </b> to destroy it.0GestureStyle</b>q#GestureStyle* OH_ArkUI_GestureReleases the memory occupied byGestureStyle}gestureSq$Gesture߻3GestureStyle_Destroy(OH_ArkUI_GestureStyle* gesture!I@4.lick event callback in the event gesture styleQmgestureSq$Gesture!onClick The callback of click eve1+@QzGestureStyle_RegisterOnClickN:<GestureStyle* gestureStyle, void(*onClick)(ArkUI_NodeEvent*)6ong-pressing event callback in the event gesture styleQmgestureSq$Gesture*onLongPress The callback of long press eve1+@Qz GestureStyle_RegisterOnLongPressN:CGestureStyle* gestureStyle, void(*onLongPress)(ArkUI_GestureEvent*)/touch event callback in the event gesture styleQmgestureSq$Gesture!onTouch The callback of touch eve1+@QzGestureStyle_RegisterOnTouchN:<GestureStyle* gestureStyle, void(*onTouch)(ArkUI_NodeEvent*)An" ShadowStyle} object.
 *
 * @note"Gin use, invoke <b> OH_ArkUI_TextShadowStyle_Destroy </b> to destroy it.0TextShadowStyle</b>q#sShadowShadowReleases the memory occupied byShadowStyle}textShadowSq(Shadow߻ShadowStyleShadowStyle* textShad2"'for the text shadow styleQmtextShadowSq(Shadow,)!, which points to an array of theP@!7nQz0u?ShadowStyle_SetTextShadow(OH_ArkUI_TextShadowStyle* textShadowS=2u4- styleQmtextShadowSq(Shadow]'*!, which points to an array of theP@!]had-m QtSt$VxD#EShadowStyle_GetTextShadow(const OH_ArkUI_TextShadowStyle* textShadowS>U`B$} object.
 *
 * @note"in use, invoke <b>A_Destroy </b> to destroy it.0#</b>q#!Releases the memory occupied by$}?
Sq$(߻A!* decorationStyle);
 9Kfor the textaRd?
Sq$(  Type of the text decorative lin&*Р-Qz%_Sn!-* decorationS_!	 type);
 QBtextaRd?
Sq$(  E/decorative lin?-Qz%_GetTextDecorationType(constA* decorationS_! 9Kcolor for the textaRd?
Sq$(P Decorationp'nQz%#"* decorationS QB2bRd?
Sq$(PoBp&nQz%_GetColor(constA&* decorationStyle, uint32_t* color);
 9K@for the textaRd?
Sq$( Style of the text decorative lin?.)-Qz%_Set*\** decorationS_<( QBtextaRd?
Sq$((text decorative lin?.)-Qz%_Get*(constA* decorationS_<(* style);
 a#hickness scaling factor of the textaRd?
Sq$(S+ing,-)+,nQz%_S/)/* decorationStyle,
    float thicknessScale);
 4#hickness scaling factor of the textaRd?
Sq$(-"ing,-)+,nQz%_GetThicknessScale(constA* decorationStyle@/ 9 $;enable the display of multiple decorative lines in the textaRd?
Sq$(enableMultiType0Tdisplay of multiple decorative lines. **true** to enable; **false**
 *     otherwisem-Qz%_SetEnableMulti,+* decorationStyle, bool enableMultiType);
 a >he display of multiple decorative lines is enabled in the textaRd?
Sq$(enableMultiT! H	MultiType the display of multiple
 *     decorative lines is enabled. **true** means the display is enabled; **false** otherwise.
 * @retm$Qz%_GetEnableMultiTypeqA,* decorationStyle, bool* enableMultiType);
 Q8{@link OH_ArkUI_BaselineOffsetStyle} object.
 *
 * @note"Kin use, invoke <b> OH_ArkUI_BaselineOffsetStyle_Destroy </b> to destroy it.0BaselineOffsetStyle</b>q#kBaselineOffsetStyle* OH_ArkUI_BaselineOffsetStyle_Create();
 
/**
 * @brief Releases the memory occupied byBaselineOffsetStyle}baselineOffsetSq$BaselineOffset߻QBaselineOffsetStyle_Destroy(OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 9baseline offsetQmbaselineOffsetSq$BaselineOffsetbaselineOffset Baseline offsetnQzBaselineOffsetStyle_SetBaselineOffset(
    OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float baselineOffset);
 
/**
 * @ZQmbaselineOffsetSq$BaselineOffsetbaselinexbaseline offsetnQz%BaselineOffsetStyle_GetBaselineOffsetqCBaselineOffsetStyle* baselineOffsetStyle, float* baselineOffset);
 Q7{@link OH_ArkUI_LetterSpacingStyle} object.
 *
 * @note"Jin use, invoke <b> OH_ArkUI_LetterSpacingStyle_Destroy </b> to destroy it.0LetterSpacingStyle</b>q#iLetterSpacingStyle* OH_ArkUI_LetterSpacingStyle_Create();
 
/**
 * @brief Releases the memory occupied byLetterSpacingStyle}Sq$LetterSpacing߻NLetterSpacingStyle_Destroy(OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 Jtter spacingQmSq$LetterSpacing valuenQzLetterSpacingStyle_SetLetterSpacing(
    OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float letterSpacing);
 
/**
 * @brief_QmSq$LetterSpacing  valuenQz LetterSpacingStyle_GetLetterSpacn+etterSpacingStyle* letterSpacingStyle, floa QP HeightStyle} object.
 *
 * @note"Gin use, invoke <b> OH_ArkUI_LineHeightStyle_Destroy </b> to destroy it.0LineHeightStyle</b>q#cLineHeightStyle* OH_ArkUI_LineHeightStyle_Create();
 
/**
 * @brief Releases the memory occupied by`HeightStyle}lineHeightSq$`Height߻ELineHeightStyle_Destroy(OH_ArkUI_LineHeightStyle* lineHeightStyle);
 J
QmlineHeightSq$`HeightlineHeight Fixed line heightnQzLineHeightStyle_S1:LineHeightStyle* lineHeightStyle,
    float lineHeight);
 QQmlineHeightSq$`Heightfixed line heightnQzhLineHeightStyle_GetLineHeight(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeight);
 9a line height multipliQolineHeightSq$`Height)lineHeightMultiple Line height multiplier+-nQt[#LineHeightStyle_SetLineHeightMultiple(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeightMultiple);
 
/**
 * @brief_multipliQolineHeightSq$`HeightlineHeightMultiple multiplier+-nQt[#LineHeightStyle_GetLineHeightMultiple(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeightMultiple);
 
/**
 *Hline spacing style.<br>Q`NSpacingStyle_Create} can be used to create a
 * line spacing style object.<br>Q`SpacingStyle_Destroy} can be used to destroy the line
 * spacing style object.<br>        After the object is created, {@link OXSpacingStyle_SetLineSpacing} can
 * be used to set a line spacing value.<br>        After the object is created,
 * {@link OH_Ap`4SpacingStyle_SetOnlyBetweenLines} can be used to set	!takes effect only
 * between line3-LineSpacingStyle OH_ArkUI_LineSpacingStyle;
 9a line spacing style forQRdspanSq$SpanlineSpacingSq$`Spacing	nQt[#SpanStyle_SetLineSpac~KSpanStyle* spanStyle, const OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 Qspacing style ofQRdspanSq$SpanlineSpacingSq$`Spacing	nQt[#SpanStyle_GetLineSpacingStyleqESpanStyle* spanStyle, OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 QP!SpacingStyle} object.
 *
 * @note"Hin use, invoke <b> OH_ArkUI_LineSpacingStyle_Destroy </b> to destroy it.0LineSpacingStyle"@	eLineSpacingStyle* OH_ArkUI_LineSpacingStyle_Create();
 
/**
 * @brief Releases the memory occupied by`SpacingStyle}lineSpacingSq$`Spacing߻
DSpacingStyle_Destroy(OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 9line spacingQmlineSpacingSq$`SpacinglineSpacing Line spacing valuenQt[#LineSpacingStyle_SetLineSpacing(OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float lineSpacing);
 
/**
 * @brief Queries the line spacingQmlineSpacingSq$`SpacinglineSpacingspacing valuenQt[#mLineSpacingStyle_GetLineSpacing(const OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float* lineSpacing);
 9 $	'	takes effect only between linesQmlineSpacingSq$`SpacingonlyBetweenLines W	takes effect only between lines. **true** indicates that the
 *     spacing is added only between lines, and no extra spacing is added above the first line or below the last line. *
 *     *false** indicates that the complete line spacing is added betweeAn all lines, above the first line, and below
 *     the last linem-Qt[#$LineSpacingStyle_SetOnlyBetweenLinesMSpacingStyle* lineSpacingStyle, bool onlyBetweenLines);
 
/**
 * @brief Check	takes effect only between linesQmlineSpacingSq$`Spacing2onlyBetweenLines Pointer to the **onlyBetweenLines &	takes
 *     effect only between lines. **true** indicates that the spacing is added only between lines, and no extra spacing
 *     is added above the first line or below the last line. **false** indicates that the complete line spacing is
 *     added @between all lines, above the first line, and below the last linem-Qt[#$LineSpacingStyle_GetOnlyBetweenLinesq:SpacingStyle* lineSpacingStyle, bool* onlyBetweenLines);
 Q9{@link OH_ArkUI_BackgroundColorStyle} object.
 *
 * @note"Lin use, invoke <b> OH_ArkUI_BackgroundColorStyle_Destroy </b> to destroy it.0BackgroundColorStyle</b>q#mBackgroundColorStyle* OH_ArkUI_BackgroundColorStyle_Create();
 
/**
 * @brief Releases the memory occupied byBackgroundColorStyle}p%BackgroundColor߻EBackgroundColorStyle_Destroy(OH_ArkUI_BackgroundColorStyle* style);
 9.2f13styleQmL(BackgroundColorP B0nQz6BackgroundColorStyle_SetColor(OH_ArkUI_BackgroundColor	 QG52styleQmL(BackgroundColorPo1nQz<BackgroundColorStyle_GetColor(const OH_ArkUI_BackgroundColor  9.radii f13styleQmL(BackgroundColor	Radius of1, inM&upper right corner, in(lower left corner, inGS4Qz7BackgroundColorStyle_SetRadius(OH_ArkUI_BackgroundColorW Qbackground radii of2styleQmL(BackgroundColor%6, inM}upper right corner, inlower left corner, in#S4Qz^BackgroundColorStyle_GetRadius(const OH_ArkUI_BackgroundColorStyle* style, float* topLeft,
   X: Q-{@link OH_ArkUI_UrlStyle} object.
 *
 * @note"@in use, invoke <b> OH_ArkUI_UrlStyle_Destroy </b> to destroy it.0UrlStyle</b>q#UUrlStyle* OH_ArkUI_UrlStyle_Create();
 
/**
 * @brief Releases the memory occupied by	UrlStyle}p%Url߻-UrlStyle_Destroy(OH_ArkUI_UrlStyle* style);
 9URL content for the URL styleQmL(Urlurl Pointer to the URL conte1+@Qz=UrlStyle_SetUrl(OH_ArkUI_UrlStyle* style, const char* url);
 QURL content of the URL styleQmL(Url-URL content if
 *w(qa     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *wVN~)QtSt$VxD~,"UrlStyle_GetUrl(const OH_ArkUI_Url=s0 Q1{@link OH_ArkUI_UserDataSpan} object.
 *
 * @note"Din use, invoke <b> OH_ArkUI_UserDataSpan_Destroy </b> to destroy it.0UserDataSpan</b>q#]UserDataSpan* OH_ArkUI_UserDataSpan_Create();
 
/**
 * @brief Releases the memory occupied byUserDataSpan}L8Spa!UserDataSpanѻ<UserDataSpan_Destroy(OH_ArkUI_UserDataSpan* userDataSpan);
 9%user data in the user data span styleQmL8Spa!UserDataSpanae;"& You need to manage the data lifecyclem-QzPUserDataSpan_SetUserData(OH_ArkUI_UserDataSpan* userDataSpan, void* userData);
 Q%user data in the user data span styleQmL8Spa!UserDataSpanae;		9m QzWUserDataSpan_GetUserData(const OH_ArkUI_UserDataSpan* userDataSpan, void** userData);
 Q{@link} object.
 *
 * @note"in use, invoke <b>_Destroy </b> to destroy it.0
</b>q#
!:_Create();
 
/**
 * @brief Releases the memory occupied by
}	customSpa!
ѻ
	_Destroy(* customSpan);
 A>!@function triggered when metrics are obtained for the custom spanQnustomSpa!
ae	onMeasure8for measuring the size of.%оQz
_RegisterOnMeasurM:
* customSpan, AF*(*onMeasure)(float));
 
/**
 * @brief Registers the callback functiona>custom span is drawnQnustomSpa!
aeonDraw8for drawing the.%оQz
_RegisterOnDrawN:
/* customSpan, void(*onDraw)(ArkUI_DrawContext*,^u*));
 Q4{@link OH_ArkUI_ImageAttachment} object.
 *
 * @note"Gin use, invoke <b> OH_ArkUI_ImageAttachment_Destroy </b> to destroy it.0ImageAttachment</b>q#cImageAttachment* OH_ArkUI_ImageAttachment_Create();
 
/**
 * @brief Releases the memory occupied byImageAttachment} 
Attachment ImageAttachmentѻ?ttachment_Destroy(OH_ArkUI_ImageAttachment* imageAttachment);
 9$image data source in the image styleQmimageAttachment ImageAttachmentae	Pdata sourcem-QzJImageAttachment_SetPixelMap(OH_ArkUI_ImageAttachment* imageAttachment,
   ^ Q$image data source in the image styleQmimageAttachment ImageAttachmentaedata sourcem-QzPImageAttachment_GetPixelMap(const OH_ArkUI_ImageAttachment* imageAttachment,
   ' 9)image resource address in the image styleQmimageAttachment ImageAttachmentae
resource Presource addres!.Qz_ImageAttachment_SetResource(OH_ArkUI_ImageAttachment* imageAttachment, const char* resource);
 Q)image resource address in the image styleQmimageAttachment ImageAttachmentaeAimage resource address string
 *    @+Buffer size1f'length of the string6 if
 *w(qa     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *wVN~)QtSt$VxD~,KImageAttachment_GetResource(const OH_ArkUI_ImageAttachment* imageAttachmentA? 9image width in the image styleQmimageAttachment ImageAttachmentaeImage widthnQzWImageAttachment_SetSizeWidth(OH_ArkUI_ImageAttachment* imageAttachment, float width);
 Qimage width in the image styleQmimageAttachment ImageAttachmentaewidthnQz^ImageAttachment_GetSizeWidth(const OH_ArkUI_ImageAttachment* imageAttachment, float* width);
 9image height in the image styleQmimageAttachment ImageAttachmentaeheight Image heightnQzYImageAttachment_SetSizeHeight(OH_ArkUI_ImageAttachment* imageAttachment, float height);
 Qimage height in the image styleQmimageAttachment ImageAttachmentaeHheightnQzWImageAttachment_GetSizeHeight(const OH_ArkUI_ImageAttachment* imageAttachment, float* h )image alignment method in the image styleQmimageAttachment ImageAttachmentae Image alignment methodi3nQzPImageAttachment_SetVerticalAlign(
    OH_ArkUI_ImageAttachment* imageAttachment, verticalAlign);
 Q)image alignment method in the image styleQmimageAttachment ImageAttachmentae Palignment methodi%_nQzUImageAttachment_GetVerticalAlign(const OH_ArkUI_ImageAttachment* imageAttachment,
   );
 9%image scaling type in the image styleQmimageAttachment ImageAttachmentaeobjectFit Image scalingN-**Р
ObjectFit}m-QzjImageAttachment_SetObjectFit(
    OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit objectFit);
 Q%image scaling type in the image styleQmimageAttachment ImageAttachmentaeobjectFit PscalingN-**Р
ObjectFit}m-QzImageAttachment_GetObjectFitq@ImageAttachment* imageAttachment, ArkUI_ObjectFit* objectFit);
 9image margin in the image styleQmimageAttachment ImageAttachmentaemargin Image marginnQz\ImageAttachment_SetMargin(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin margin);
 Qimage margin in the image styleQmimageAttachment ImageAttachmentaemargin PmarginnQzgImageAttachment_GetMargin(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* margin);
 9 image padding in the image styleQmimageAttachment ImageAttachmentaepadding Image paddnQz^ImageAttachment_SetPadding(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin padding);
 Q image padding in the image styleQmimageAttachment ImageAttachmentae	padding PpaddnQziImageAttachment_GetPadding(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* padding);
 9%image border radii in the image styleQmimageAttachment ImageAttachment	Radius of1, inM&upper right corner, in(lower left corner, inGS4Qz_ImageAttachment_SetBorderRadiuses(OH_ArkUI_ImageAttachment* imageAttachment,
    float topLeft,7 Q%image border radii in the image styleQmimageAttachment ImageAttachment$6, inM}upper right corner, inlower left corner, in#S4QzQImageAttachment_GetBorderRadiuses(const OH_ArkUI_ImageAttachment* imageAttachmentCO 9%image color filter in the image styleQmimageAttachment ImageAttachmentaePFilter Pcolor filter\filter~3QzImageAttachment_SetColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const float* colorFilter, uint32_t size);
 
/**
V%image color filter in the image styleQmimageAttachment ImageAttachmentaePFiltereimage color filter
 *    @ colorFilterSize Buffer size1f'%actual size of the image color filter~3QtSt$VxD~,ImageAttachment_GetColorFilter(const OH_ArkUI_ImageAttachment* imageAttachment,
    float** colorFilter, uint32_t colorFilterSize, uh 9-image drawing color filter in the image styleQmimageAttachment ImageAttachmentaedrawingColorFilter Pdrawing color fil0QzImageAttachment_SetDrawingColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const OH_Drawing_ColorFilter* drawingColorFilter);
 Q-image drawing color filter in the image styleQmimageAttachment ImageAttachmentaedrawingColorFilter Pdrawing color fil0Qz#ImageAttachment_GetDrawingColorFilt0TPImageAttachment* imageAttachment, OH_Drawing_ColorFilter* drawingColorFilter);
 9 $/load the image synchronously in the image styleQmimageAttachment ImageAttachmentaesyncLoad Whether to load images synchronously. **true** to load synchronously; **false** to load
 *     asynchronously.
 * @retm$QzXImageAttachment_SetSyncLoad(OH_ArkUI_ImageAttachment* imageAttachment, bool syncLoad);
 a 3he image is loaded synchronously in the image styleQmimageAttachment ImageAttachmentae"syncLoad Pointer to the **syncLoad the image is loaded synchronously. **true**
 *     indicates that the image is loaded synchronously; **false** indicates that t!he image is loaded asynchronouslym-Qz_ImageAttachment_GetSyncLoad(const OH_ArkUI_ImageAttachment* imageAttachment, bool* syncLoad);
 9 $>enable the enhanced SVG tag parsing feature in the image styleQmimageAttachment ImageAttachmentae
supportSvg0Ienhanced SVG tag parsing feature. **true** to enable, **false** otherwisem-Qz\ImageAttachment_SetSupportSvg(OH_ArkUI_ImageAttachment* imageAttachment, bool supportSvg);
 a Ahe enhanced SVG tag parsing feature is enabled in the image styleQmimageAttachment ImageAttachmentae&supportSvg Pointer to the **supportSvg the enhanced SVG tag parsing feature is
 *     enabled. **true** means the enhanced SVG tag parsing feature is enabled, and **fFmInQzcImageAttachment_GetSupportSvg(const OH_ArkUI_ImageAttachment* imageAttachment,
    bool* supportSvg1 nge ofreplaced in the text changRdeventqX*ChangeEventaeIindex of the range ofreplacedI#index of the range ofreplac/Qt/Function paramsQ)ChangeEvent_GetRangeBefore(-QChangeEvent* event,
   K1N&used for replacement in the text changRdeventqX*ChangeEventaeRUnQt/Function paramsQ)ChangeEvent_GetReplacemenN,ChangeEvent* event,NN*of the previewed content in the text changRdeventqX*ChangeEventaeRUnQt/Function paramsQ)ChangeEvent_GetPreview N+ChangeEvent* event,N`layout manager of textX#LayoutManager ArkUI_TextLayoutManagc*layout manager.
 *
 * @param layoutManagerLayoutManager#lLayoutManagerALayoutManager* layoutManagL4	lineelayoutManageKMTextLayoutManager!outLineCount Returns the line cou1+`#VLayoutManager_GetLineCount(ArkUI_TextLayoutManager* layoutManager, int32_t* outLineCouQR)ects for range.
 *
 * @param layoutManageKMTextLayoutManagerIIndicates the start of range to set.
 * @param end Indicates the end of range to set.
 * @param widthStyle Indicates the width estyle to set.
 *     For details, see the enum <b>OH_Drawing_RectWidthStyle</b>.
 * @param heightStylstyle to set.
 *     For details, see the enum <b>OH_Drawing_RectHeightStyle</b>.
 * @param outTextBoxes Returns the array of rects for ranQ[0`#KLayoutManager_GetRectsForRange(ArkUI_TextLayoutManager* layoutManager,
    ]7OH_Drawing_RectWidthStyle widthStyle, OH_Drawing_RectHeightStyle heightStyle,
    OH_Drawing_TextBox** outTextBoxes);

/**
 * @n4	7glyph position at coordinate.
 *
 * @param layoutManageKMTextLayoutManagerdx Indicates the positionX of typography to set.
 * @param dy Indicates the positionY of typography to set.
 * @param outPos Re&turns the glyph position at coordinatemLayoutManager_GetGlyphPositionAtCoordinate(
    ArkUI_TextLayoutManager* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPoa`Oline metricslayoutManagea typography object <b>ArkUI_TextLayoutManager</b>.
 * @param lineNumber Indicates the number of line.
 * @param outMetrics Ind
-line metrics object <b>OH_Drawing_LineMetrics /LayoutManager_GetLineMetrics(ArkUI_TextLayoutManager* layoutManager,
    int32_t lineNumber, OH_Drawing_LineMetrics* outMetricsb4	;character position at coordinate.
 *
 * @param layoutManageKMTextLayoutManagerdx Indicates the positionX of typography to set.
 * @param dy Indicates the positionY of typography to set.
 * @param outPos Re*turns the character position at coordinateA0uLayoutManager_GetCharacterPositionAtCoordinate(
    ArkUI_TextLayoutManager* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPoa`OTglyph range produced by the specified range of characters.
 *
 * @param layoutManageKMTextLayoutManagerharRange The character range.
 * @param outGlyphRange The range of glyphs generated by charRange.
 * @param outActualCharRange If not null, specifies the actual character range that fully defines the returned
 *      glyph range, which may match or slightly exceed the requested ranQ[0hҗ0uLayoutManager_GetGlyphRangeForCharacterRange(
    ArkUI_TextLayoutManager* layoutManager, OH_Drawing_Range* charRange,
    OH_DBrawing_Range** outGlyphRange, OH_Drawing_Range** outActualCharRang!f[character range that maps to the glyphs in the given glyph range.
 *
 * @param layoutManageKMTextLayoutManagerglyphRange The glyph range.
 * @param outCharRange The range of characters generated by glyphRange.
 * @param outActualGlyphRange If not null, specifies the full glyph range generated by the returned character range,
 *      which may match or slightly exceed the requested glyph ranQ[0hҗ0uLayoutManager_GetCharacterRangeForGlyphRange(
    ArkUI_TextLayoutManager* layoutManager, OH_Drawing_Range* glyphRange,
    OH_CDrawing_Range** outCharRange, OH_Drawing_Range** outActualGlyphRanglinear gradient ofQRd
paragraphSqParagraphStylelinearGradient/&jOParagraphStyle_SetLinearGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, &linearGradiPlinear gradient ofQRd
paragraphSqParagraphStylelinearGradient/&j ParagraphStyle_GetLinearGradientqParagraphStyle* paragraphStyle,A* linearGradiP@radial gradient ofQRd
paragraphSqParagraphStyleradialGradientBjNParagraphStyle_SetRadialGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle,!'radialGradiPradial gradient ofQRd
paragraphSqParagraphStyleradialGradientBj ParagraphStyle_GetRadialGradientqParagraphStyle* paragraphStyle,!radialGradient);
6STYLED_STRING_H
/** @} */
Z獥wx   ޙ
'-2025UI capabilities of ArkUIG)s, attribute setting, and event listeningA$Cnative_node.h
 *
 * @brief 提供NativeNode接口的类型定义。NODE_H
#define ARKUI_NATIVE_NODE_H

#include "native_type.h"
#include "ui_input_event.h"

#ifdef __cplusplus
#include <cstdint>!
#else
#include <stdint.h>
#endif> components max function sizeAc#define MAX_NODE_SCOPE_NUM 1000

/**
 * @brief Enumerates ArkUI component types that can be createdJ0! Custom node. */
    ARKUI_NODE_CUSTOM = 0,
    /** Text. */
    ARKUI_NODE_TEXT = 1,
    /** Text span. */
    ARKUI_NODE_SPAN = 2,
    /** Image span. */
    ARKUI_NODE_IMAGE_SPAN = 3,
    /** Image. */
    ARKUI_NODE_IMAGE = 4,
    /** Toggle. */
    ARKUI_NODE_TOGGLE = 5,
    /** Loading icon. */
    ARKUI_NODE_LOADING_PROGRESS = 6,
    /** Single-line text input. */
    ARKUI_NODE_TEXT_INPUT = 7,
    /** Multi-line text input. */
    ARKUI_NODE_TEXT_AREA = 8,
    /** Button. */
    ARKUI_NODE_BUTTON = 9,
    /** Progress indicator. */
    ARKUI_NODE_PROGRESS = 10,
    /** Check box. */
    ARKUI_NODE_CHECKBOX = 11,
    /** XComponent. */
    ARKUI_NODE_XCOMPONENT = 12,
    /** Date picker. */
    ARKUI_NODE_DATE_PICKER = 13,
    /** Time picker. */
    ARKUI_NODE_TIME_PICKER = 14,
    /** Text picker. */
    ARKUI_NODE_TEXT_PICKER = 15,
    /** Calendar picker. */
    ARKUI_NODE_CALENDAR_PICKER = 16,
    /** Slider. */
    ARKUI_NODE_SLIDER = 17,
    /** Radio */
    ARKUI_NODE_RADIO = 18,
    /** Image animator. */
    ARKUI_NODE_IMAGE_ANIMATOR = 19,
    /** XComponent of type TEXTURE.
     *  @since 18
     */
    ARKUI_NODE_XCOMPONENT_TEXTURE,
    /** Check box group.
     *  @since 15
     */
    ARKUI_NODE_CHECKBOX_GROUP = 21,
    /**
     * 文本编辑器。uARKUI_NODE_TEXT_EDITOR = 22,
    /** Stack container. */
    ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
    /** Swiper. */
    ARKUI_NODE_SWIPER,
    /** Scrolling container. */
    ARKUI_NODE_SCROLL,
    /** List. */
    ARKUI_NODE_LIST,
    /** List item. */
    ARKUI_NODE_LIST_ITEM,
    /** List item group. */
    ARKUI_NODE_LIST_ITEM_GROUP,
    /** Column container. */
    ARKUI_NODE_COLUMN,
    /** Row container. */
    ARKUI_NODE_ROW,
    /** Flex container. */
    ARKUI_NODE_FLEX,
    /** Refresh component. */
    ARKUI_NODE_REFRESH,
    /** Water flow container. */
    ARKUI_NODE_WATER_FLOW,
    /** Water flow item. */
    ARKUI_NODE_FLOW_ITEM,
    /** Relative layout component. */
    ARKUI_NODE_RELATIVE_CONTAINER,
    /** Grid. */
    ARKUI_NODE_GRID,
    /** Grid item. */
    ARKUI_NODE_GRID_ITEM,
    /** Custom span. */
    ARKUI_NODE_CUSTOM_SPAN,
    /**
     * EmbeddedComponent.
     * @since 20
     */
    ARKUI_NODE_EMBEDDED_COMPONENT,
    /**
     * Undefined.
     * @since 20
     */
    ARKUI_NODE_UNDEFINED,
    /**
     * Picker container.
     * @since 23
     */
    ARKUI_NODE_PICKER = 1018,
} ArkUI_NodeType`general input parameter structure of the {@link setAttribute} function. The property
 * setting interfaces can utilize the memb@er variables within it to store data of specific parameter typesA0{
    /** A number array, used to store parameters of the number array type. */
    const ArkUI_NumberValue* value;
    /** The size of the number array, used together with the variable value, indicating the length of the value array. */
    int32_t size;
    /** String type, used to store parameters of the string type. */
    const char* string;
    /** Object type, used to stoLre parameters of the object type. */
    void* object;
} ArkUI_AttributeItem`&ArkUI style attributes that can be setJ0!4jwidth attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in vp.\n
     *
     */
    NODE_WIDTH = 0,
    /**
     * @bri8jheight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in vp.\n
     *
     */
    NODE_HEIGHT,
    /**
     * @bri8jattribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *
     */
    NODE_BACKGROUND_COLOR,
    /**
    1jbackground image attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address;\n
     * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address;\n
     * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
     * .object: The parameter type is {@link ARrkUI_DrawableDescriptor}.\n
     *
     */
    NODE_BACKGROUND_IMAGE,
    /**
    1jpadding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in vp.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[L3].f32: left padding, in vp.\n
     *
     */
    NODE_PADDING,
    /**
    1jcomponent ID attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID.\n
     * \n
     * Format of the return vlalue {@link ArkUI_AttributeItem}:\n
     * .string: component ID.\n
     *
     */
    NODE_ID,
    /**
    1jinteractivity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means the op8posite. \n
     *
     */
    NODE_ENABLED,
    /**
    1jmargin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in vp.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: lef?t margin, in vp.\n
     *
     */
    NODE_MARGIN,
    /**
    1jtranslate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis, in vp.\n
     * .value[1].f32: distance to translate along the y-axis, in vp.\n
     * .value[2].f32: distance to translate along the z-ax=is, in vp. \n
     *
     */
    NODE_TRANSLATE,
    /**
    1jscale attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
     * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis.\n
     * .value[1].f32: scale fFactor along the y-axis. \n
     *
     */
    NODE_SCALE,
    /**
    1jrotate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
     * The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the rotation axis vector.\n
     * .value[1].f32: Y coordinate of the rotation axis vector.\n
     * .value[2].f32: Z coordinate of the rotation axis vector.\n
     * .value[3].f32: rotation angle.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
     *
     */
    NODE_ROTATE,
    /**
    brightness attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended2]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: brightness value. \n
  .   *
     */
    NODE_BRIGHTNESS,
    /**
    saturation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended50). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: saturation value. \n
0     *
     */
    NODE_SATURATION,
    /**
    blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
     * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
     * the image is not blurred. The unit is vp. \n
     *
     */
    NODE_BLUR,
    /**
    gradient attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient. This attribute ta#kes effect only when
     * {@link Direction} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When it is setW, the <b>angle</b> attribute does not take effect.
     * The parameter type is {@link Direction}: \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: start angle of the linear gradient. \n
     * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_LINEAR_GRADIENT,
    /**
    alignment attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_ALIGNMENT,
    /**
    1jopacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity value. The value ranges from9 0 to 1. \n
     *
     */
    NODE_OPACITY,
    /**
    1jborder width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders. \n
     * 2: .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     *
     */
    NODE_BORDER_WIDTH,
    /**
    1jborder corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners. \n
     * 2: .value[0].f32: r. \n
     * .value[1].f32: r. \n
     * .value[2].f32:F . \n
     * .value[3].f32:A!g. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: r. \n
     * .value[1].f32: r. \n
     * .value[2].f32:F . \n
     * .value[3].f32:A!8. \n
     *
     */
    NODE_BORDER_RADIUS,
    /**
    1jborder color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, foSr example, <b>0xFFFF11FF</b>. \n
     *
     */
    NODE_BORDER_COLOR,
    /**
    1jborder line style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line style of the top border. \n
     * .value[1].i32: line style of the right border. \n
     * .value[2].i32: line style of the bottom border. \ln
     * .value[3].i32: line style of the left border. \n
     *
     */
    NODE_BORDER_STYLE,
    /**
    1jz-index attribute for the stack sequence.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: z-index value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: z-index value. \n
     *
  $   */
    NODE_Z_INDEX,
    /**
    1jvisibility attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     *
     */
    NODE_VISIBILITY,
    /**
    1jclipping and masking attribute, which can be set, reset, and obtained as required through
     * APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
*     *
     */
    NODE_CLIP,
    /**
    1jclipping region on the component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
     * which supports four types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[6]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[7]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[8]?.f32: radius of the bottom right corner of the rectangular shape.\n
     * ?.object: clipOption of the rectangle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is rectangle, and .size must be equal to 1.
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * ?.object: clipOption of the circle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is circle, and .size must be equal to 1.
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * ?.object: clipOption of the ellipse. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is ellipse, and .size must be equal to 1.
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * ?.object: clipOption of the path. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is path, and .size must be equal to 1.
     * Format of the return value {@link ArkUI_AttributeItem}, which supports four types of shapes: \n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5].f32: radius of the top left corner of the rectangular shape; \n
     * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
     * .value[7].f32: radius of the top right corner of the rectangular shape; \n
     * .value[8].f32: radius of the bottom right corner of the rectangular shape; \n
     * .value[9]?.f32: horizontal coordinate offset of the rectangle. \n
     * .value[10]?.f32: vertical coordinate offset of the rectangle. \n
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * .value[3]?.f32: horizontal coordinate offset of the circle.\n
     * .value[4]?.f32: vertical coordinate offset of the circle.\n
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * .value[3]?.f32: horizontal coordinate offset of the ellipse.\n
     * .value[4]?.f32: vertical coordinate offset of the ellipse.\n
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
    , *
     */
    NODE_CLIP_SHAPE,
    /**
    1jtransform attribute, which can be used to translate, rotate, and scale images.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItemm}:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     *
     */
    NODE_TRANSFORM,
    /**
    1jhit test behavior attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     *
     */
    NODE_HIT_TEST_BEHAVIOR,
    /**
     * @brief D<joffset attribute, which specifies the offset of the component's upper left corner relative
     * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y> coordinate. \n
     *
     */
    NODE_POSITION,
    /**
    1jshadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shadow effect. The] parameter type is {@link ArkUI_ShadowStyle}. \n
     *
     */
    NODE_SHADOW,
    /**
    1jcustom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: blur radius of the shadow, in vp.\n
     * .value[1]?.i32: w@\coloring strategy. The value <b>1</b> means to enable the coloring
     * strategy, and <b>0</b> (default value) means the opposite.\n
     * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
     * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
     * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_C)OLOR</b>.\n
     * .value[5]?.u32: shadow For example, 0xFFFF0000 indicates red.\n
     * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     * \n
     * Format of the return value {@link ArkUI_AttributeIYtem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: w@\coloring strategy. \n
     * .value[2].f32: offset of the shadow along the x-axis, in px.\n
     * .value[3].f32: offset of the shadow along the y-axis, in px.\n
     * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SH3ADOW_TYPE_COLOR</b>.\n
     * .value[5].u32: shadow For example, 0xFFFF0000 indicates red.\n
     * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill thge shadow, and <b>0</b>
     * means the opposite.\n
     *
     */
    NODE_CUSTOM_SHADOW,
    /**
    1jbackground image width and height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the image. ThSE+∞), and the unit is vp. \n
     * .value[1].f32: height of the imaS+∞), and the unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the image, in vp. \n
     * .value[1].f32: height of the image, in vp. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE,
    /**
    1jbackground image size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: size of the background image. The GD of {@link ArkUI_ImageSize}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: size of the background imageADf of {@link ArkUI_ImageSize}. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
    /**
    1jbackground blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link AZrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blue typeADA of {@link ArkUI_BlurStyle}. \n
     * .value[1]?.i32: color modeADJ of {@link ArkUI_ColorMode}. \n
     * .value[2]?.i32: adaptive color modeADE of {@link ArkUI_AdaptiveColor}. \n
     * .value[3]?.f32: blur degreS.0, 1.0]. \n
     * .value[4]?.f32: start boundary of grayscale blur. \n
     * .value[5]?.f32: end boundary of grayscale blur.n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blue typeAD@ of {@link ArkUI_BlurStyle}. \n
     * .value[1].i32: color modeADI of {@link ArkUI_ColorMode}. \n
     * .value[2].i32: adaptive color modeADD of {@link ArkUI_AdaptiveColor}. \n
     * .value[3].f32: blur degreS.0, 1.0]. \n
     * .value[4].f32: start boundary of grayscale blur. \n
     * .value[5].f32: end boundary of grayscale blur. \=n
     *
     */
    NODE_BACKGROUND_BLUR_STYLE,
    /**
    1jtransform center attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the center point, in vp.\n
     * .value[1]?.f32: Y coordinate of the center point, in vp.\n
     * .value[2]?.f32: Z coordinate of the center point, in vp.\n
     * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
     * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
     * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the center point, in vp.\n
     * .value[1].f32: Y coordinate of the center point, in vp.\n
     * .value[2].f32: Z coordinate of the center point, in vp.\n
     * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
     * returns the calculated value in vp.
     *
     */
    NODE_TRANSFORM_CENTER,
    /**
    1jtransition opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity values of the start and end points.j\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: ^number of times that the animation is played.\n
     * .value[5]?.i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32:R animation duration, in milliseconds.\n
     * .value[2].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: n]umber of times that the animation is played. \n
     * .value[5].i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */
    NODE_OPACITY_TRANSITION,
    /**
    1jtransition rotation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
     * .value[5].i32: animatioJn duration, in milliseconds. \n
     * .value[6].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7]?.i32: animation delay duration, in milliseconds. \n
     * .value[8]?.ic32: number of times that the animation is played. \n
     * .value[9]?.i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7].i32: animation delay duration, in milliseconds. \n
     * .value[8].i32`: number of times that the animation is played. \n
     * .value[9].i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10].f32: animation playback speed. \n
     *
     */
    NODE_ROTATE_TRANSITION,
    /**
    1jtransition scaling attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: anPimation duration, in milliseconds. \n
     * .value[4].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5]?.i32: animation delay duration, in milliseconds. \n
     * .value[6]?.ic32: number of times that the animation is played. \n
     * .value[7]?.i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in m:illiseconds. \n
     * .value[4].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5].i32: animation delay duration, in milliseconds. \n
     * .value[6].i32`: number of times that the animation is played. \n
     * .value[7].i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8].f32: animation playback speed. \n
     *
     */
    NODE_SCALE_TRANSITION,
    /**
    1jtransition translation attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation 
curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * value[5]?.i32: animation delay duration, in milliseconds. \n
     * value[6]?.i32`: number of times that the animation is played. \n
     * value[7]?.i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * v^alue[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n \n
     * value[5].i32: animation delay duration, in milliseconds. \n
     * value[6].i32: ]number of times that the animation is played. \n
     * value[7].i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * value[8].f32: animation playback speed. \n
     *
     */
    NODE_TRANSLATE_TRANSITION,
    /**
    1jslide-in and slide-out of the component from the screen edge during transition.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .value[1].i32: animation duration, in mill6iseconds.\n
     * .value[2].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: ^number of times that the animation is played.\n
     * .value[5]?.i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .valu[e[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve typeAD of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: n]umber of times that the animation is played. \n
     * .value[5].i32: animation playback modeAD of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */
    NODE_MOVE_TRANSITION,

    /**
    1jfocus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUSABLE,

    /**
    1jdefault focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     *
     */
    N ODE_DEFAULT_FOCUS,

    /**
    1jtouch target attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].f32: X coordinate of the touch point relative to the upBGvp. \n
     * .data[1].f32: Y coordinate of the touch point relative toBvp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].f32: X coordinate of the touch point relative toBGvp. \n
     * .data[1].f32: Y coordinate of the touch point relative toBvp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     *
     **/
    NODE_RESPONSE_REGION,

    /**
    1joverlay attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * You can set the overlay content through .string or .object as follow, and .string has higher priority.
     * .string: mask text.\n
     * .value[0]?.i32: position of the overlay relative to the c~. Optional.
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b>< \n
     * .value[1]?.f32: offset of the overlay relative toBf of itself on the x-axis, in vp. Optional. \n
     * .value[2]?.f32: offset of the overlay relative toB of itself on the y-axis, in vp. Optional.
     * \n
     * .value[3]?.i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_LTR.</b> \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * \n
     * .object: the node tree used as the overlay.
     * The parameter type is {@link ArkUI_NodeHandle}.
     * The default value is <b>nullptr.</b> \n
     * this parameter is conflict with .string, and it has lower priority than .string.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: mask text.\n
     * .value[0].i32: position of the overlayl.
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     *1 .value[1].f32: offset of the overlay relative toB[ of itself on the x-axis, in vp. \n
     * .value[2].f32: offset of the overlay relative toB of itself on the y-axis, in vp.
     * .value[3].i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_LTR.</b> \n
     * .object: the overlay node handle.* \n
     */
    NODE_OVERLAY,
    /**
    1jsweep gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the sweep gradient center relative toBa of the component.\n
     * .value[1]?.f32: Y coordinate of the sweep gradient center relative toB of the component.\n
     * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the sweep gradient center relative to the upper Ba of the component. \n
     * .value[1].f32: Y coordinate of the sweep gradient center relative toB of the component. \n
     * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_SWEEP_GRADIENT,
    /**
    1jradial gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0]?.f32: X coordinate of the radial gradient center relative toBc of the component. \n
     * .value[1]?.f32: Y coordinate of the radial gradient center relative toB of the component. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite. \n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f:32: X coordinate of the radial gradient center relative toBb of the component. \n
     * .value[1].f32: Y coordinate of the radial gradient center relative toB of the component. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_RADIAL_GRADIENT,
    /**
     * @brief Adds a mask of the specified shape to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
     * shapes:\n
     * 1. Recta!ngle:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[11]?.f32: radius of the bottom right corner of the re@ctangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[4].f32: width of the circle.\n
     *V .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[4].f32: width of the ellipse.\n
 Y    * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indic;ator.\n
     * .value[3].u32: color of the progress indicat\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
     * 1. Re$ctangle:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8].f32: radius of the top left corner of the rectangular shape.\n
     * .value[9].f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10].f32: radius of the top right corner of the rectangular shape.\n
     * .value[11].f32: radius of the bottom right corner of the rec?tangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the circle._\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the ellipse^.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill  \n
     * .value[1].u32: stroke \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indicator.\n
     * .value[3].u32: color of the progress indicator.\n
     *
     */
    NODE_MASK,
    /**
     * @brief Blends the component's background with the content of the component's child node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     *
     */
    NODE_BLEND_MODE,
   	 /**
    Arection of the main axis.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     *
     */
    NODE_DIRECTION,
    /**
    1jsize constraints.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in v:p.\n
     *
     */
    NODE_CONSTRAINT_SIZE,
    /**
    1jgrayscale effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_GRAY_SCALE,
    /**
     * @brief Inverts the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% image inversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: image inversion ratio. TheI value ranges from 0 to 1.\n
     *
     */
    NODE_INVERT,
    /**
    1jsepia conversion ratio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
     *
  "   */
    NODE_SEPIA,
    /**
    1jcontrast attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
     * A larger value indicates a higher contrast. Value range: [0, 10).\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: contrast. Value range: [0, 10).\n
     *
     */
    NODE_CONTRAST,
    /**
    1jforeground color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formatsg of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: .value[0].u32: color value For example, 0xFFFF0000 indicates red.\n
     * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
     * \n
     ]* Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value:\n
     *
     */
    NODE_FOREGROUND_COLOR,

    /**
    1joffset of the component's childl.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     *
     */
    NODE_OFFSET,
    /**
    anchor for locating the component's child.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of Gthe anchor, in vp.\n
     *
     */
    NODE_MARK_ANCHOR,

    /**
    1j^position of the background image in the component, that is, the coordinates relative to
     *B of the component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].?i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].?i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The deffault value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     */
    NODE_BACKGROUND_IMAGE_POSITION,
    /**
    alignment rules in the relative container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     ,*
     */
    NODE_ALIGN_RULES,
    /**
    alignment mode of the child components along the cross axis of the parent container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_GALIGNMENT_AUTO</b>. \n
     *
     */
    NODE_ALIGN_SELF,
    /**
    percentage of the parent container's remaining space that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent containejr's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_GROW,
    /**
    percentage of the parent container's shrink size that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's shri`nk size that is allocated to the component. \n
     *
     */
    NODE_FLEX_SHRINK,
    /**
    base size of the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
  .   *
     */
    NODE_FLEX_BASIS,
    /**
    accessibility group. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link Ark   UI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> orE <b>0</b>.
     *
     */
    NODE_ACCESSIBILITY_GROUP,

    /**
    accessibility text. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility text.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility text.
     *
     */
    NODE_ACCESSIBILITY_TEXT,

    /**
    accessibility service model. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     *
     */
    NODE_!ACCESSIBILITY_MODE,

    /**
    accessibility description.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility description.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility description.
     *
     */
   . NODE_ACCESSIBILITY_DESCRIPTION,

    /**
    1jfocused state. This attribute can be set and obtained as required through APIs.
     * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
     * of the page to the root container.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 19 or 0.
     *
     */
    NODE_FOCUS_STATUS,
    /**
    1jaspect ratio attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUZI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: aspect ratiowidth/height format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: aspect ratioJwidth/height format. \n
     *
     */
    NODE_ASPECT_RATIO,
    /**
    1jweight of the component within its row, column, or flex container for proportional
     * distribution of available space within the container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: weight of the component along the main axis. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: weight of the componenMt along the main axis. \n
     *
     */
    NODE_LAYOUT_WEIGHT,
    /**
    Aplay priority for$row, column, or flex  (single-line) container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: display priorityontainer. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: display priority Container. \n
     *
     */
    NODE_DISPLAY_PRIORITY,
    /**
    .	of an element's outline.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom ?outline. \n
     *
     */
    NODE_OUTLINE_WIDTH,
    /**
    1jwidth attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in percentage.\n
     *
     */
    NODE_WIDTH_PERCENT,
    /**
    1jheight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in percentage.\n
     *
     */
    NODE_HEIGHT_PERCENT,
    /**
    1jpadding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in percentage.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     *
     */
    NODE_PADDING_PERCENT,
    /**
    1jmargin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in percentage.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     *
     */
    NODE_MARGIN_PERCENT,

    /**
      * @brief The implicit shared element transition within the component supports attribute setting,
      * attribute reset, and attribute acquisition interfaces.
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is false, and the original position will remain unchanged if not involved. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      *\n
      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is not false, if not involved, the original position will remain unchanged. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      */
    NODE_GEOMETRY_TRANSITION,

    /**
      * @brief specifies the parameters of the chain formed by this component as the chain head,
      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
      *
      * Only takes effect when the parent container is RelativeContainer
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      *\n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      */
    NODE_RELATIVE_LAYOUT_CHAIN_MODE,

    /**
     * @brief Set the component content filling method in the process of width and height animation,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     *
     */
    NODE_RENDER_FIT,

    /**
     * @brief External stroke color properties, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
     * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_OUTLINE_COLOR,

    /**
     * @brief Set the height and width dimensions, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: THeight value, unit is vp;\n
     *
     */
    NODE_SIZE,

    /**
     * @brief Set;component and child component are
     * rendered off the screen first and then fused with the parent control,
     * supporting property setting, property reset and property acquisition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_RENDER_GROUP,

    /**
     * @brief Add color overlay effect to components, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_COLOR_BLEND,

    /**
     * @brief Provide content ambiguity capability for the current component,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3]?.f32: blur degree.SE.0, 1.0]. \n
     * .value[4]?.f32 It is a gray-level fuzzy parameter0?@127].\n
     * .value[5]?.f32 It is a gray-level fuzzy parameter0?127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration va'lue.\n
     * .value[3].f32: blur degreSD.0, 1.0]. \n
     * .value[4].f32 It is a gray-level fuzzy parameter0??127].\n
     * .value[5].f32 It is a gray-level fuzzy parameter0?D127].\n
     *
     */
    NODE_FOREGROUND_BLUR_STYLE,

    /**
    1jcomponent size and position for layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: X coordinate of tw%% \n
     * .value[1].i32: Y coordinatq% \n
     * .value[2].i32: width  \n
     * .value[3].i32: height \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: X coordinate of the compon%% \n
     * .value[1].i32: Y coordinatq% \n
     * .value[2].i32: width  \n
     * .value[3].i32: height \n
     *
     */
    NODE_LAYOUT_RECT,

    /**
     * @brief Whether the current component supports click-to-focus capability,
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUS_ON_TOUCH,

    /**
    1jborder width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders, in percentage. \n
     * 2: .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     *
     */
    NODE_BO%RDER_WIDTH_PERCENT = 85,
    /**
    1jborder corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners, in percent"age. \n
     * 2: .value[0].f32: r#&percentage. \n
     * .value[1].f32: r$$percentage. \n
     * .value[2].f32:F%$percentage. \n
     * .value[3].f32:A&percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the u&percentage. \n
     * .value[1].f32: r$$percentage. \n
     * .value[2].f32:F%$percentage. \n
     * .value[3].f32:A&percentage. \n
     *
     */
    NODE_BORDER_RADIUS_PERCENT = 86,

    /**
     * @brief Accessible ID, which can be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Accessible ID。\n
     *
     */
    NODE_ACCESSIBILITY_ID = 87,

    /**
     * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ACTIONS = 88,

    /**
     * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible role typeand uses the {@link ArkUI_NodeType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ROLE = 89,

    /**
     * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .objectthe parameter type is {@link ArkUI_AccessibilityState}.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityState}.\n
     *
     */
    NODE_ACCESSIBILITY_STATE = 90,

    /**
     * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     *
     */
    NODE_ACCESSIBILITY_VALUE = 91,
    /**
     * @brief defines control components to extend their security zones,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
     * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
     * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
     * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: extends the security zone. \n. \n
     *.value[1].u32: indicates the direction to extend the security zone. \n. \n
     *
     */
    NODE_EXPAND_SAFE_AREA = 92,

    /**
    1jvisible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array0?0 to 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
,     *
     * @since 12
     */
    /**
    1jvisible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component, this enum extends the configuration capbility.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter fCor setting the attribute:\n
     * .value[...].f32: threshold array0?0 to 1.
     * .?object: pass in one {@link ArkUI_VisibleAreaEventOptions} objcet for configging the ratio or other options.
     * Please note, when use this param, the ratios set through .value[...].f32 will be ignored, and the update
     * interval from it is always ignored too.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
     * .object: the {@link ArkUI_VisibleAreaEventOptions} objcet.
     *
     * @since 22
     */
    NOD/E_VISIBLE_AREA_CHANGE_RATIO = 93,

    /**
    ransition effect when the component is inserted or deleted.
     * This attribute can be set, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     *
     */
    NO!DE_TRANSITION = 94,

    /**
    1jcomponent ID.
     * This attribute can be obtained through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
     * .value[0].i32: component ID. \n
     *
     * @deprecated since 20
     * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
     */
    NODE_UNIQUE_ID = 95,

    /**
     * @brief Set the current component system focus box style.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: TQfocus box and the. \n
     * Positive numbers represent the outer side, negative numbers represent the inner side. \n
     * Percentage is not supported. \n
     * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
     * .value[2].u32U: Focus box color. \n
     * \n
     *
     */
    NODE_FOCUS_BOX = 96,

    /**
    1jmoving distance limit for the component-bound tap gesture.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: allowed moving distVance of a finger, in vp. \n
     *
     */
    NODE_CLICK_DISTANCE = 97,

    /**
    ϳhe focus can be placed on this component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 orM 0.
     *
     * @since 14
     */
    NODE_TAB_STOP = 98,
    
    /**
    1jbackdrop blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：backdrop blur radius, in px0?+∞).\n
     * .value[1]?.f32：grayscale blur settings that control the brightness of the black color.\n
     * The value ran??
n127].\n
     * .value[2]?.f32：grayscale blur settings that control the darkness of the white color.\n
     *1?127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：backdrop blur radius, in px0?+∞).\n
     * .value[1].f32：grayscale blur settings that control the brightness of the black color.\n
     * The value rang@?	m127].\n
     * .value[2].f32：grayscale blur settings that control the darkness of the white color.\n
     *1?R127].\n
     *
     * @since 15
     */
    NODE_BACKDROP_BLUR = 99,

    /**
    1jbackground image resizable attribute, which can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     *
     * @since 19
     */
    NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,

    /**
    next focus node.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
     * .object: next focus node. The parameter type iso {@link ArkUI_NodeHandle}.\n
     * \n
     *
     * @since 18
     */
    NODE_NEXT_FOCUS = 101,

    /**
    parameters for visible area change events.
     *
     * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
     * the expected interval due to system load and other factors.
     * The interval between two visible area change callbacks will not be less than the expected update interval. If the
     * provided expected interval is too short, the actual callback interval will be determined by the system load.
     * By default, the interval threshold of the visible area change callback includes 0. This means that,
     * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     *
     * @since 17
     */
    NODE_VISI6BLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,

    /**
    1jtranslate attribute, which supports for percentile translation input, and can be set, reset,
     * and obtained as required through APIs.\n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
     * The unit is vp only if value[3] exists and value[3] is 0. The default value of value[0] is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
     * The unit is vp only if value[4] exists and value[4] is 0. The default value of value[1] is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>.\n
     * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shift in the x direction.
     *  The default value is <b>1</b>.\n
     * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
     *  The default value is <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
     * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
     * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
     * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
     *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
     *  distance is percentage;\n
     * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
     *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
     *  distance is percentage;\n
     *
     * @since 20
     */
    NODE_TRANSLATE_WITH_PERCENT = 103,

    /**
     * @brief Sets component rotation with multi-axis angle control. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>. \n
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>.
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     *
     * @since 20
     */
*    NODE_ROTATE_ANGLE = 104,

    /**
    1jwidth attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_WIDTH_LAYOUTPOLICY = 105,

    /**
    1jheight attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_HEIGHT_LAYOUTPOLICY = 106,

    /**
    1jposition attribute in param type Edges, which specifies the position of the component
     * by the distance relative to the parent container's four edges. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     *
     * @since 21
     */
    NODE_POSITION_EDGES = 107,

    /**
     * @brief Set whether the component enables the ability to invert colors.
     * This attribute can be set , and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.\n
     *
     * @sinc;e 21
     */
    NODE_ALLOW_FORCE_DARK = 108,

    /**
    1jpixelRound attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     *
     * @since 2B1
     */
    NODE_PIXEL_ROUND = 109,

    /**
     * @brief Set w@\default click sound effect for this component.
     * It only takes effect on supported devices, such as TV. Whether it can produce sound depends on the device's
     * sound-related settings. For example, sound effects will not be played in silent mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter value is either 1 or 0. 1 indicates the default click sound effect is enabled,
     * while 0 indicates it is disabled. The default value is 1.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Indicates whether the default click sound effect is enabled for this node.\n
     * The parameter value is either 1 or 0. 1 indicates] the default click sound effect is enabled,
     * while 0 indicates it is disabled.\n
     *u3NODE_ENABLE_CLICK_SOUND_EFFECT = 110,

    /**
    1jmotion path attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIL_AttributeItem} parameter for setting the attribute: \n
     * .object indicMotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     * \n
     * Format of the return value5 {@link ArkUI_AttributeItem}: \n
     * .object indicMotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     *
     * @since 23
     */
    NODE_MOTION_PATH = 111,

    /**
    1jhover effect applied when the component is hovered over. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. The default value is <b>ARKUI_HOVER_EFFECT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. \n
     *
     * @since 23
     */
    NODE_HOVER_EFFECT = 112,

    /**
     * @brief Configures the container as a focus group with the specified identifier. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     *
     * @since 23
     */
    NODE_FOCUS_SCOPE_ID = 113,

    /**
     * @bcomponent focus priority within a specific focus scope. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}.
     * The default value is <b>ARKUI_FOCUS_PRIORITY_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}. \n
     *
     * @since 23
     */
    NODE_FOCUS_SCOPE_PRIORITY = 114,

    /**
    Athreshold for click events. This attribute can be set, reset, and obtained as required through APIs.
     *
     * @note If finger movement exceeds the preset distance limit, click event recognition will fail.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: distance threshold for click events.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: distance threshold for click events. \n
     Z*
     * @since 23
     */
    NODE_ON_CLICK_EVENT_DISTANCE_THRESHOLD = 115,

    /**
    1jcomponent event response region. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TROOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative toBLvp. \n
     * .data[2].f32: y-coordinate of the pointer position relative toBvp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_STOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative toBLvp. \n
     * .data[2].f32: y-coordinate of the pointer position relative toBvp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order.
   O  *
     * @since 23
     */
    NODE_RESPONSE_REGION_LIST = 116,

    /**
    1jevent monopolization attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Boolean value (1 or 0).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Boolean value (1 or 0).
     *
     C* @since 23
     */
    NODE_MONOPOLIZE_EVENTS = 117,

    /**
    weighta chain, which is used to re-lay out components that form the chain.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     *
     * @since 23
     */
    NODE_CHAIN_WEIGHT = 118,

    /**
     * @brief Expands the layout safe area of a component.,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0].u32: The region type to expand the component's layout safe area into. The default value is LayoutSafeAreaType.SYSTEM. {@link ArkUI_LayoutSafeAreaType},
     * For example, ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM; \n
     * .value[1].u32: The set of edges for which to ignore layout safe area. The default value is LayoutSafeAreaEdge.ALL. {@link ArkUI_LayoutSafeAreaEdge}; \n
     * For example: ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_START; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: The region type to expand the component's layout safe area into. \n
     *.value[1].u32: The set of edges for which to ignore layoutd safe area. \n
     *
     * @since 23
     */
    NODE_IGNORE_LAYOUT_SAFE_AREA = 119,

    /**
    1jength of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length off dash on the left border. \n
     *
     * @since 23
     */
    NODE_DASH_WIDTH = 120,

    /**
    1jgap of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The gap of dash on the top border. \n
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The gap of dash on the top border. \n  
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left bordeLr. \n
     *
     * @since 23
     */
    NODE_DASH_GAP = 121,

    /**
    1jalign rules of child component in Stack container, which can be set, reset, and obtained as required through APIs.\n
     * The default value is <b>ARKUI_LOCALIZED_ALIGNMENT_CENTER</b>. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}. \n
     *
     * @since 23
     */
    NODE_LAYOUT_GRAVITY = 122,

    /**
     2jrender types for drawing rounded corners when the radius of the border rounded corners is set, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}.
     * The default value is <b>ARKUI_RENDERSTRATEGY_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}. \n
     *
     * @sDince 23
     */
    NODE_BORDER_RADIUS_TYPE = 123,
    
    /**
    1jinspector label attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: inspector label.\n
     * \n
     * Format of the reVturn value {@link ArkUI_AttributeItem}:\n
     * .string: inspector label.\n
     * \n%")NODE_INSPECTOR_LABEL = 126,

    /**
    1jnext accessibility focus id of current component for accessibility processing to find the next focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility next focus ID.
     * \n
     * Format of the return value {@link ArkUII_AttributeItem}:\n
     * .string: accessibility next focus ID.
     * \n%"5NODE_ACCESSIBILITY_NEXT_FOCUS_ID = 124,

    /**
    accessibility default focus flag for accessibility services to find the default focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * @since 26.0.0
   &	5NODE_ACCESSIBILITY_DEFAULT_FOCUS = 125,

    /**
    1jsystem material attribute, which can be set, reset, and obtained as required through APIs.
     * Only devices that support sysatemMaterial can use this attribute. Otherwise, when setting this attribute,
     * the error code2ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} will be returned.
     * Whether a device supports materials can be determined by calling
     * {@link OH_ArkUI_NativeModule_GetSystemMaterialSupported}.
     * The material effect behaves differently on devices with different level of computing powers.
     * The level is defined by {@link ArkUI_MaterialLevel}, which can be obtained by
     * {@link OH_ArkUI_NativeModule_GetGlobalMaterialLevel}.
     * On devices with the computing power level of ARKUI_MATERIAL_LEVEL_SMOOTH, it affects attributes such as the
     * backgroundColor, borderWidth, borderColor, shadow.
     * On devices with the computing power levels of ARKUI_MATERIAL_LEVEL_EXQUISITE or ARKUI_MATERIAL_LEVEL_GENTLE,
     * it affects shadow attribute and adds a filter effect at the system material layer, which can produce an effect
     * similar to glass.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * The ArkUI_ImmersiveMaterialHandle object of the return value is a pointer to static member, so do not release
     * the return object by calling {@@link OH_ArkUI_NativeModule_ImmersiveMaterial_Destroy}.\n
     *%")NODE_SYSTEM_MATERIAL = 127,

    /**
    1jtext content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: text content.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: text content.\n
     *
     */
    NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    1jfont color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_KAttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:{ For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].u32: font color value3\n
     *
     */
    NODE_FONT_COLOR,
    /**
    1jfont size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: font size, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     *
     */
    NODE_FONT_SIZE,
    /**
    1jfont style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_VAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font stylen The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}$:\n
     * .value[0].i32: font stylen3\n
     *
     */
    NODE_FONT_STYLE,
    /**
    1jfont weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .gvalue[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     */
    NODE_FONT_WEIGHT,
    /**
    1jtext line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height, in fp.\n
     *
     */
    NODE_TEXT_LINE_HEIGHT,
    /**
    1jtext decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@ls k    * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration` For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration styleoStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration typeo"(\n
     * .value[1].u32: text decoration/ \n
     * .value[2].i32: text decoration styleo&Style}. \n
     *
     */
    /**
    1jtext decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@ls k    * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration` For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration styleoStyle}. \n
     * .value[3]?.f32: text decoration thickness scale. \n
     * \n
     * Format of the return value {@link ArkUI_<AttributeItem}:\n
     * .value[0].i32: text decoration typeo"(\n
     * .value[1].u32: text decoration/ \n
     * .value[2].i32: text decoration styleoStyle}. \n
     * .value[3].f32: text decoration thickness scale. \n
     *
     *  since 22
     */
    NODE_TEXT_DECORATION,
    /**
    1jtext case attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text case.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text case.\n
     *
     */
    NODE_TEXT_CASE,
    /**
     * @brief:jetter spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing, in fp.\n
     *
     */
    NODE_TEXT_LETTER_SPACING,
    /**
    yOtext.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_KAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:ROhtext.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:ROtext.\n
     *
     */
    NODE_TEXT_MAX_LINES,
    /**
     * @brief Horizontal alignment mode of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameterY for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of the textADE  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of the textADE 4 \n
     *
     */
    NODE_TEXT_ALIGN,
    /**
    1jtext overflow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkPUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dUtext is too long. {@ArkUI_TextOverflow}\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dU]text is too long. {@ArkUI_TextOverflow}\n
     *
     */
    NODE_TEXT_OVERFLOW,
    /**
    1jfont family attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIM_AttributeItem} parameter for setting the attribute:\n
     * .string: fonts,|~`    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: fonts,|~0    *
     */
    NODE_FONT_FAMILY,
    /**
    1jcopy option attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .mvalue[0].i32: copy option {@link ArkUI_CopyOptions. \n
     *
     */
    NODE_TEXT_COPY_OPTION,
    /**
    1jtext baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   7  *
     */
    NODE_TEXT_BASELINE_OFFSET,
    /**
    1jhadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[2].u32: shadow col For example, 0xFFFF0000 indicates red.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
     * .value[2].u32: shadow\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the yF-axis, in vp.\n
     *
     */
    NODE_TEXT_TEXT_SHADOW,
    /**
    1jminimum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum font size, in fp.
     *
     */
    NOD#E_TEXT_MIN_FONT_SIZE,

    /**
    1jmaximum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum font size, in fp.
     *
     */
    NOD#E_TEXT_MAX_FONT_SIZE,

    /**
    1jttribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * .value[2]?.i32: font style. Optional. The parameter type isn    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WEIGIHT_NORMAL</b>. \n
     * .value[2].i32: font style. The parameter type isn    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     *
     */
    NODE_TEXT_FONT,

    /**
     * @brief Defines how the adaptive height is determined for the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
     *
     */
    NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
    /**
    1jindentation of the first line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: indentation of the first line. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: indentation of the fir=st line. \n
     *
     */
    NODE_TEXT_INDENT,
    /**
    1jine break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkdUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type isa^ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@lif^9 \n
     *
     */
    NODE_TEXT_WORD_BREAK,
    /**
    1jellipsis position. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is W{@link ArkUI_EllipsisMode}. \n
     *
     */
    NODE_TEXT_ELLIPSIS_MODE,
    /**
    1jtext line spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line spacing, in fp.\n
     *
     */
    NODE_TEXT_LINE_SPACING,
    /**
     * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
     * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
     * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
     * The capabilities need to be supported by the fonts, \n
     * Interfaces for setting, resetting, and obtaining attributes are supported. \n
     * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
     * .string: complies with the text feature format. The format is normal | \n
     * is in the format of [ | on | off],\n.
  !   * There can be multiple values|~ \n
     * For example, the input format of a number with the same width is ss01 on. \n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .string indicates the content of the text feature. Multiple text features are|~ \n
     */
    NODE_FONT_FEATURE,
    /**
     * @brief Setting Enable Text Recognition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Enable text recognition, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Enable Text Recognition\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR,
    /**
     * @brief Set the text recognition configuration.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...].i32：Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     *
     */
    NO1DE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
    /**
    1jof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of tghe {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color va   lue For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value \n
     *
     */
    NODE_TEXT_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief The text component uses a formatted string object to set text content properties,
     * and supports property setting, property reset, and property acquisition interfaces.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates ArkUIW- formatted string data. The parameter type isKi}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicatesQ- formatted string data. The parameter type isKE}. \n
     */
    NODE_TEXT_CONTENT_WITH_STYLED_STRING,

    /**
    ϳcenter text vertically in the text component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
   5  */
    NODE_TEXT_HALF_LEADING = 1029,

    /**
    1jfont weight attribute, which can be set, reset, and obtained as required through APIs.
     * The font weight specified by this API is not affected by any changes in the system font weight settings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     * @since 15
     */
    NODE_IMMUTABLE_FONT_WEIGHT = 1030,

    /**
     * @5jtext line count attribute, which can only be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line count of the node.
     *
     * @since 20
     */
    NODE_TEXT_LINE_COUNT = 1031,
 
    /**
    ϳoptimize the trailing spaces at the end of each line during text layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
     *               The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout. \n
     *
     * @since 20
     */
    NODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,

    /**
     * @brief Sets a linear gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting theW attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The settwhen <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
   !  * The parameter type is {@link Direction}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_LINEAR_GRADIENT = 1033,

    /**
     * @brief Sets a radial gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the "radial gradient center relative toB^ of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@linfk ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative toB] of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_RADIAL_GRADIENT = 1034,

    /**
    0u	alignment of the text content.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment of the !text content, specified using the~v$
     * enum. The default value is <b>ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUIvc
     * enum. \n
     *
     * @since 20
     */
    NODE_TEXT_VERTICAL_ALIGN = 1035,

    /**
    content align of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. The default value is <b>ARKUI_TEXT_CONTENT_ALIGN_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. \n
     *
     * @since 21
     */
    NODE_TEXT_CONTENT_ALIGN = 1036,

    /**
    minpPOtext.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_OAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: minpPOltext.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: minpPOtext.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MIN_LINES = 1037,

    /**
     * @brief Enables the selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NODE_TEXT_ENABLE-_SELECTED_DATA_DETECTOR = 1038,

    /**
    1jminimum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum line height.\n
     *
     * @since E22
     *
     */
    NODE_TEXT_MIN_LINE_HEIGHT = 1040,

    /**
    1jmaximum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum line height.\n
     *
     * @since V22
     *
     */
    NODE_TEXT_MAX_LINE_HEIGHT = 1041,

    /**
     * @brief DefinesPe value of text, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriFbuteItem} parameter for setting the attribute:\n
     * .value[0].f32:Pe value of text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height\e value of text.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_LINE_HEIGHT_MULTIPLE = 1042,

    /**
     * @brief Get the text layout manager of the text.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: t7he layout manager of text. The parameter type is {@linkj}.\n
     *
     * @since 22
     */
    NODE_TEXT_LAYOUT_MANAGER = 1043,

    /**
     * @brief Set the edit menu options of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menu options of text. The parameter type is {@link ArkUI_TextEditMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_EDIT_MENU_OPTIONS = 1044,

    /**
     * @brief Bind the selection menu for text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the custom selection menu of text.
     *     The parameter type is {@link ArkUI_SelectionMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_BIND_SELECTION_MENU = 1045,

    /**
    election area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position ?Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     * \n
     * Format of the return v;alue {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: s1Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     *
     * @since 23
     */
    NOD^E_TEXT_TEXT_SELECTION = 1046,

    /**
     * @brief Whether to avoid an orphan word on the la<
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
     * @since 26.0.0
     */
 	  NODE_TEXT_ORPHAN_CHAR_OPTIMIZATION = 1047,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_COMPRESS_LEADING_PUNCTUATION = 1048,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INCLUDE_FONT_PADDING = 1049,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_FALLBACK_LINE_SPACING = 1050,

    /**
     * @brief Set the marquee options of text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     *
     * @since 23
     */
    NODE_TEXT_MARQUEE_OPTIONS = 1051,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The valuKDk  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADk  \n
     *
     * @since 23
     */
    NODE_TEXT_DIRECTION = 1052,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_SELECTED_DRAG_PRE VIEW_STYLE = 1053,

    /**
    controller of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .@object: the controller of the text. The parameter type is
     *Controller }.\n
     *%"*NODE_TEXT_CONTROLLER = 1054,

    /**
    1jtext content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: content of the text span. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: content of the text span. \n
     *
     */
    NODE_SPAN_CONT8ENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
    /**
    1jtext background style.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
     * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
     * 1: .value[1].f32: radius of the four corners, in vp. \n
     * 2: .value[1].f32: r& \n
     * .value[2].f32: r' \n
     * .value[3].f32:F( \n
     * .value[4].f32:A) \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the text background \n
     * .value[1].f32: r& \n
     * .value[2].f32: r' \n
     * .value[3].f32:F( \n
     * .value[4].f32:A)D \n
     *
     */
    NODE_SPAN_TEXT_BACKGROUND_STYLE,
    /**
    1jtext baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   7  *
     */
    NODE_SPAN_BASELINE_OFFSET,
    /**
    1jttribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * ?.string: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.
     * .value[2]?.i32: font style. Optional. The parameter type isn    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * ?.object: Optional. The font configurations. The parameter type is {@link OH_ArkUI_FontConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: fFont weight. \n
     * .value[2].i32: font style. The parameter type isn    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * .object: the font configurations. The parameter type is {@lin!k OH_ArkUI_FontConfigs}.\n
     *u$NODE_SPAN_FONT = 2003,

    /**
    1jfont weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight. The default value is 400.\n
     * ?.object: Optional. The font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight.\n
     * .object: the font weight Rconfigurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     *u*NODE_SPAN_FONT_WEIGHT = 2004,
    /**
    1jimage source of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * AR!KUI_NODE_IMAGE_SPAN,
    /**
    1jalignment mode of the image with the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode# of the image with the text.
     *Q of0" \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the image with the text.
     *Q of0"G \n
     *
     */
    NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
    /**
    1jplaceholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parametera type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_ALT,
    /**
    1jattribute of the <b>ImageSpan</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * A positive value means an upward offset, while a negative value means a downward offset.
     * The default value is <b>0</b>, and the unit is fp. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
     *
     * @since 13
     */
    NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,

    /**
    1jcolor filter of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem } parameter for setting the attribute:\n 
     * .value [0].f32 to . value [19].f32: fWilter matrix array. \n 
     * .size :5 x 4 filter array size. \n 
     * .object : the1ColorFilter. Either . value or . object is set. \n 
     * \n 
     * Format of the return value {@ link ArkUI_AttributeItem ):\n 
     * .value [0].f32 to .value [19].f32: filter matrix array. \n 
     * .size: 5 x 4 filter array size. \n 
     * .object: the1ColorFilter. \n 
     * 
     * @since 22
     */
    NODE_IMAGE_SPAN_COLOR_FILTER = 3004,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether color fliter support svg. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 22
     */
    NODE_IMAGE_SPAN_SUPPORT_SVG2 = 3005,
    /**
    1jimage source of the <Image> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
     * @brief Defines how the image is resized to fit its container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: -how the image is resized to fit its containerAD,6 \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is resized to fit its containerAD,6: \n
     *
     */
    NODE_IMAGE_OBJECT_FIT,
    /**
    1jinterpolation effect of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: interpolation effect of the imageAD of {@link ArkUI_ImageInterpolation}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .val,ue[0].i32: interpolation effect of the imageAD of {@link ArkUI_ImageInterpolation}. \n
     *
     */
    NODE_IMAGE_INTERPOLATION,
    /**
     * @brief Defines how the image is repeated.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@lnink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is repeateQv of {@link ArkUI_ImageRepeat}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is repeateQv[ of {@link ArkUI_ImageRepeat}. \n
     *
     */
    NODE_IMAGE_OBJECT_REPEAT,
    /**
    1jcolor filter of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 to .value[19].f32: filter matriIx array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the1ColorFilter. Either .value or .object is set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the poin6HColorFilter. \n
     *
     */
    NODE_IMAGE_COLOR_FILTER,
    /**
    1jauto resize attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 : whether to resize the image source. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 : whether to resize the image source. \n
7     *
     */
    NODE_IMAGE_AUTO_RESIZE,
    /**
    1jplaceholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_ALT,
    /**
     * @brief Defines whether the image is draggable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
  l   * .value[0].i32: whether the image is draggable. \n
     *
     */
    NODE_IMAGE_DRAGGABLE,
    /**
    1jimage rendering mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     *
     */
    NODE_IMAGE_RENDER_MODE,
    /**
     * @brief Defines whether the image display size follows the image source size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i3j2: wheter to follow, true means to follow.\n
     *
     */
    NODE_IMAGE_FIT_ORIGINAL_SIZE,
    /**
    1jfill color of the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format dof the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: fill For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fill \n
     *
     */
    NODE_IMAGE_FILL_COLOR,
    /**
     * @brief Resize the image when stretching it with array or a lattice object.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter tyjpe is {@link OH_Drawing_Lattice},add since api 24.\n
     *
     */
    NODE_IMAGE_RESIZABLE,
    /**
    1jsynchronous image loading attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
   j  * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:U(e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:U(R. \n
     *
     * @since 20
     */
    NODE_IMAGE_SYNC_LOAD = 4012,
    /**
    1jimage decoding size attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     *
     * @since 21
     */
    NODE_IMAGE_SOURCE_SIZE = 4013,
    /**
     * @brief Support the implementation of affine image transformations using floating-point numbers.
     * This attribute can be set, reset, and obtained as required through APIs.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     *
    E * @since 21
     */
    NODE_IMAGE_IMAGE_MATRIX = 4014,
    /**
    1jimage follow text direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to follows.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to follows the text.[\n
     *
     * @since 21
     */
    NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015,
    /**
    1jimage copy attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions.\n
     *
     * @since 21
     */
    NODE_IMAGE_COPY_OPTION = 4016,
    /**
    1jimage AI analysis enable attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     *
     * @since 21
     */
    NODE_IMAGE_ENABLE_ANALYZER = 4017,
    /**
     2jimage dynamic display range attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode}.
     * The default value is <b>ARKUI_DYNAMIC_RANGE_MODE_STANDARD</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode.\n
V     *
     * @since 21
     */
    NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018,
    /**
    1jimage dynamic display brightness attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     *
     * @since 21
     */
    NODE_IMAGE_HDR_BRIGHTNESS = 4019,
    /**
     * @brief Defi?jimage display direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation}.
     * The default value is <b>ARKUI_ORIENTATION_UP</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation.\n
     *
     * @since 21
     */
    NODE_IMAGE_ORIENTATION = 4020,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 21
     */
    NODE_IMAGE_SUPPORT_SVG2 = 4021, 
    /**
     * @brief Set the animation effect for the image content transformation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     Q*
     * @since 21
     */
    NODE_IMAGE_CONTENT_TRANSITION = 4022,
    /**
    1jplaceholder image during loading process.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_PLACEHOLDER = 4023,
    /**
    1jplaceholder image when loading fails.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_ERROR = 4024,
    /**
     * @brief Configure image edge anti-aliasing via an enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch,the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 23
     */
    NODE_IMAGE_ANTIALIASED = 4025,
    /**
    1jcolor of the component when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background col For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:^$h \n
     *
     */
    NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    1jcolor of the circular slider for the component of the switch type.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .valu%e[0].u32: color of the circular slide For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .v(alue[0].u32: color of the circular slideC \n
     *
     */
    NODE_TOGGLE_SWITCH_POINT_COLOR,
    /**
    1jtoggle switch value. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linUk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: w@\toggle. The value <b>true</b> means to enable the toggle. \n
     * \n
     * Format of the return value {@link ArkUI_Attribute Item}:\n
     * .value[0].i32: w@\>toggle. \n
     *
     */
    NODE_TOGGLE_VALUE,

    /**
    1jcolor of the component when it is deselected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].u32: background ck For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:^$B \n
     *
     */
    NODE_TOGGLE_UNSELECTED_COLOR,

    /**
    1jforeground color of the loading progress bar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: foreground  For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fore \n
     *
     */
    NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
    /**
     * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show the loading animation.
     * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
     *
     */
    NODE_.LOADING_PROGRESS_ENABLE_LOADING,

    /**
    1jdefault placeholder text of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
     * @brief:jdefault text content of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n6
     *
     */
    NODE_TEXT_INPUT_TEXT,
    /**
    1jcaret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of bthe {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: caret For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: caret@ \n
     *
     */
    NODE_TEXT_INPUT_CARET_COLOR,
    /**
    1jcaret style attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: caret width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: caret width, in vp. \n
     *
     */
    )NODE_TEXT_INPUT_CARET_STYLE,
    /**
    1junderline attribute of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show an underline.
     * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show an undkerline, and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_UNDERLINE,
    /**
    1jRin the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the X{@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Rin the text input, without a unit. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:RQin the text input. \n
     *
     */
    NODE_TEXT_INPUT_MAX_LENGTH,
    /**
    1jtype of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_INPUT_ENTER_KEY_TYPE,
    /**
    1jplaceholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format ofi the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color valueF \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
    /**
    1jplaceholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The d@efault value is <b>16.0</b>.\n
     * .value[1]?.i32: font stylen Optional.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * ?.string: font family. Multiple font families are|~    * Example: "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttribuUteItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font stylen\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separa~X \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_FONT,
    /**
     * @brief Defines w@\input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toI\input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
      * and <b>0</b> means the opposite. \n
 H    *
     */
    NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
    /**
    1jtext box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}.
     * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
     *
     */
    NODE_TEXT_INPUT_TYPE,
    /**
    1jof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of tghe {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value \n
     *
     */
    NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
    /**
     * @brief Defines whether to display the password icon at the end of the password text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the password icon at the end of the password text box.
     * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
     * and <b>0</b> means theQ opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
    /**
    1jeditable state for the single-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether to remain in the editable state. The value
     * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanYs to exit the editable state. \n
     *
     */
    NODE_TEXT_INPUT_EDITING,
    /**
    1jstyle of the cancel button on the right of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
     * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\nU
     * .value[1]?.f32: button icon size, in vp.\n
     * .value[2]?.u32: button icon For example, 0xFFFF0000 indicates red. \n
     * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
     * .value[1].f32: icon size, in vp.\n
     * .value[2].u32: button iconn\n
     * .string: button icon image source. \n
     *
     */
    NODE_TEXT_INPUT_CANCEL_BUTTON,
    /**
    election area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position ?Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@l3ink ArkUI_AttributeItem}:\n
     * .value[0].i32: s1Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_INPUT_TEXT_SELECTION,
    /**
   color of the text underline when it is enabled.
    *
    * The default underline color configured for the theme is <b>'0x33182431'</b>.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].u32: color of the underline applied to the text being typed in.
    * The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state.
    * The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled.
    * The value is in 0xARGB format. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0NxARGB format. \n
    *
    */
    NODE_TEXT_INPUT_UNDERLINE_COLOR,
    /**
   ϳ!autofill.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to enable autofill. \n
    *
    */
    NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
    /**
    * @bautofill type.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    *
4    */
    NODE_TEXT_INPUT_CONTENT_TYPE,
    /**
   1jrules for generating passwords. When autofill is used, these rules are transparently
    * transmitted to Password Vault for generating a new password.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: rules for generating passwords. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .stringa: rules for generating passwords. \n
    *
    */
    NODE_TEXT_INPUT_PASSWORD_RULES,
    /**
   ϳselect all text in the initial state. The inline mode is not supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to sele]ct all text in the initial state. \n
    *
    */
    NODE_TEXT_INPUT_SELECT_ALL,
    /**
   regular expression for input filtering.
    * Only inputs that comply with the regular expression can be displayed.
    * Other inputs are filtered out. The specified regular expression can match single characters,
    * but not strings.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: regular expression. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: regular expression. \n
    *
    */
    NODE_TEXT_INPUT_INPUT_FILTER,
    /**
   box to the default style or inline input style.
    *
    * For the inline input style, only <b>InputType.Normal</b> is supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    *
    */
    NODE_TEXT_INPUT_STYLE,
    /**
    * @brief Sets or obtains the caret position.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * In the case of setting the caret position:
    * .value[0].i32: character count from the beginning of a string to the caret position. \n
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
    * current frame, it will not take effect.
    * .value[0].i32: index of the caret position. \n
    * .value[1].f32: X coordinate of the caret relative to the text box. \n
    * .value[2].f32: Y coordinate of the caret relative to the text box. \n
    */
    NODE%_TEXT_INPUT_CARET_OFFSET,
    /**
   a position of the edited text arealand its size.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: horizontal coordinate. \n
    * .value[1].f32: vertical coordinate. \n
    * .value[2].f32: content width. \n
    * .value[3].f32: content height. \<n
    *
    */
    NODE_TEXT_INPUT_CONTENT_RECT,
    /**
   anumber of lines of the edited text.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32:i number of lines of the edited text. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
    /**
    ϳhide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
_     * right-clicked. \n
     *
     */
    NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
    /**
    ϳhe text box loses focus after the Enter key is pressed to submit information.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *
     */
    NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
    /**
     * @brief Set up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0]?.i32：Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0].i32：Set whether the custom keyboard supports the avoidance function.\n
     *
     *3/
    NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
    /**
    1jine break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkdUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type isa^ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@lif^@ \n
     *
     */
    NODE_TEXT_INPUT_WORD_BREAK,

    /**
    ϳhe keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textInput component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the value of numberLOfLines.\n
     *
     */
    NODE_TEXT_INPUT_NUMBER_OF_LINES,

    /**
    nof the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_LETTER_SPACING = 7032,

    /**
     * @bԳpreview text for the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable preview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,

    /**
     * @ӳcenter text vertically in the textInput component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_INPUT_HALF_LEADING = 7034,

    /**
    * @brief Set the keyboard style of textInput
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
  a  * @since 15
    */
    NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,

    /**
     * @brief Set w@\auto fill animation or not.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:>\auto fill animation.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
     *
     * @since 20
     */
    NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,

    /**
     * @brief Set the line height of the input node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_INPUT_LINE_HEIGHT = 7037,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NOD@E_TEXT_INPUT_ENABLE_SELECTED_DATA_DETECTOR = 7038,

    /**
    1jcounter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character cou8nter. The character counter is displayed
     * when the!have been entered is greater thanR2multiplied
     * by the threshold percentage valuS1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character cou!nter is displayed
     * when the!have been entered is greater thanR2multiplied
     * by the threshold percentage valuS1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * 
     * @since 22
     */
    NODE_TEXT_INPUT_SHOW_COUNTER = 7040,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the    {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @since 23
     */
    NODE_TEXT_INPUT_TEXT_CONTENT_CONTROLLER_BASE = 7041,

    /**
    1jellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AkttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     * %fNODE_TEXT_INPUT_ELLIPSIS_MODE = 7042,

    /**
     * @brief Whether to avoid an orphan word on the la<
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
     * @since 26.0.0
     */
 	  NODE_TEXT_INPUT_ORPHAN_CHAR_OPTIMIZATION = 7043,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_COMPRESS_LEADING_PUNCTUATION = 7044,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_INCLUDE_FONT_PADDING = 7045,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_FALLBACK_LINE_SPACING = 7046,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the textADk  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADk  \n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_DIRECTION = 7047,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_INPUT_SELECTE*D_DRAG_PREVIEW_STYLE = 7048,

    /**
    1jtextinput textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format o`f the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dUtext is too longXf \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dUtext is too longX \n
     * 
     * %3NODE_TEXT_INPUT_TEXT_OVERFLOW = 7049,

    /**
    1jtext decoration style and color for single-line text box.
     * This attribute can be set, reset, and obtained as required thr`ough APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *%"NODE_TEXT_INPUT_DECORATION = 7050,

    /**
     * @brief Sets a linear gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takwhen <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
   !  * The parameter type is {@link Direction}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
    $ * size: number of colors. \n
     *%"NODE_TEXT_INPUT_LINEAR_GRADIENT = 7051,

    /**
     * @brief Sets a radial gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative toB^ of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@linfk ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative toB] of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stopQs: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"5NODE_TEXT_INPUT_RADIAL_GRADIENT = 7052,

    /**
    1jdefault placeholder text for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
     * @brief D<jdefault text content for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n5
     *
     */
    NODE_TEXT_AREA_TEXT,
    /**
    1jRin the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the X{@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Rin the text input. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum R
Pin the text input. \n
     *
     */
    NODE_TEXT_AREA_MAX_LENGTH,
    /**
    1jplaceholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format ofi the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color valueE \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_COLOR,
    /**
    1jplaceholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The d@efault value is <b>16.0</b>.\n
     * .value[1]?.i32: font stylen Optional. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * ?.string: font family. Multiple font families are sepa~ For example, "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributTeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font stylen\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separa~D \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_FONT,
    /**
    1jcaret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of \the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:^$ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:^$? \n
     *
     */
    NODE_TEXT_AREA_CARET_COLOR,
    /**
    1jeditable state for the multi-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
     * editable state, and <b>false</b> means to exit the editable state.\n \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanZs to exit the editable state.\n \n
     *
     */
    NODE_TEXT_AREA_EDITING,
    /**
    1jtext box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
     * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
     *
     */
    NODE_TEXT_AREA_TYPE,
    /**
     2jcounter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character cou8nter. The character counter is displayed
     * when the!have been entered is greater thanR2multiplied
     * by the threshold percentage valuS1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character co"unter is displayed
     * when the!have been entered is greater thanR2multiplied
     * by the threshold percentage valuS1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounteIrConfig}. \n
     *
     */
    NODE_TEXT_AREA_SHOW_COUNTER,
    /**
    ϳhide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
    ] * or right-clicked. \n
     *
     */
    NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
    /**
    ϳhe multi-line text box loses focus after the Enter key is pressed to submit information.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
   ;  *
     */
    NODE_TEXT_AREA_BLUR_ON_SUBMIT,
    /**
    regular expression for input filtering.
     * Only inputs that comply with the regular expression can be displayed.
     * Other inputs are filtered out. The specified regular expression can match single characters,
     * but not strings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: regular expression. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: regular expression. \n
     *
     */
    )NODE_TEXT_AREA_INPUT_FILTER,
    /**
    1jof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of tghe {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color valueM \n
     *
     */
    NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
    /**
    1jtype of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_ARE1A_ENTER_KEY_TYPE,
    /**
     * @brief Defines w@\input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toI\input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
     * and <b>0</b> means the opposite. \n
   X  *
     */
    NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
    /**
     * @brief Defines w@\input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toI\input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
     * and <b>0</b> means the opposite. \n
   9  *
     */
    NODE_TEXT_AREA_CARET_OFFSET,
    /**
    a position of the edited text arealand its size.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal coordinate. \n
     * .value[1].f32: vertical coordinate. \n
     * .value[2].f32: content width. \n
     * .value[3].f32: content heiDght. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_RECT,
    /**
    anumber of lines of the edited text.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].im32: number of lines of the edited text. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_LINE_COUNT,
    /**
    election area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position ?Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@l3ink ArkUI_AttributeItem}:\n
     * .value[0].i32: s1Ltext selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_AREA_TEXT_SELECTION,
    /**
    ϳ!autofill.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable autofill. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_AUTO_FILL,
    /**
    autofill type.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
=     *
     */
    NODE_TEXT_AREA_CONTENT_TYPE,

    /**
    ϳhe keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textArea component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Set the value of numbLerOfLines\n
     *
     */
    NODE_TEXT_AREA_NUMBER_OF_LINES,

    /**
    nof the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_LETTER_SPACING = 8023,
    /**
     * @brie׳preview text for the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable preview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,

    /**
     * @brճcenter text vertically in the textArea component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_AREA_HALF_LEADING = 8025,

    /**
    * @brief Set the keyboard style of textArea
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard stylethe parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
    * @since 15
    */
    NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,

    /**
     * @brief Set the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: max lines count.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES = 8027,

    /**
     * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line spacing value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line spacing value. \n
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_SPACING = 8028,

    /**
     * @brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: min line count.\n
     *
     * @since 20
     * 
     */
    NODE_TEXT_AREA_MIN_LINES = 8029,
 
    /**
     * @brief Set the max lines of the node with scroll.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count with scroll.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: max line count with scroll.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,

    /**
     * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_HEIGHT = 8031,

    /**
     * @brief Define bar state of the text area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum.
     * The default value is <b>ARKUI_BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum. \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_BAR_STATE = 8032,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NODE>_TEXT_AREA_ENABLE_SELECTED_DATA_DETECTOR = 8033,

    /**
    1jcolor of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar thumb, in  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scroll bar thumb \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_SCROLL_BAR_COLOR = 8035,

     /**
     * @brief Sets up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0]?.i32: Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0].i32: Set whether the custom keyboard supports the avoidance function.\n
     *
     * @since 22
     */
    NODE_TEXT_AREA_CUSTOM_KEYBOARD = 8036,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @since 23
     */
    NODE_TEXT_AREA_T1EXT_CONTENT_CONTROLLER_BASE = 8037,

    /**
    1jellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AkttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     * %eNODE_TEXT_AREA_ELLIPSIS_MODE = 8038,

    /**
     * @brief Whether to avoid an orphan word on the la<
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
    %NODE_TEXT_AREA_ORPHAN_CHAR_OPTIMIZATION = 8039,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_COMPRESS_LEADING_PUNCTUATION = 8040,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_INCLUDE_FONT_PADDING = 8041,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_FALLBACK_LINE_SPACING = 8042,

    /**
     * @brief Whether to enable horizontal scrolling when text is wider than the view.
     * The default value is false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether enable the feature, true means enable this feature, false means disable. \n
     * \n
     * Format of the return value {@link SArkUI_AttributeItem}:\n
     * .value[0].i32: Whether enable the feature. \n
     *uNODE_TEXT_AREA_HORIZONTAL_SCROLLING = 8043,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settinFg the attribute:\n
     * .value[0].i32: writing direction of the textADk  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADk  \n
     *
     * @since 23
     */
    NODE_TEXT_AREA_DIRECTION = 8044,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_AREA_SELECTED_(DRAG_PREVIEW_STYLE = 8045,

    /**
    1jtextarea textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of_ the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dUtext is too longXf \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dUtext is too longX \n
     * 
     * %2NODE_TEXT_AREA_TEXT_OVERFLOW = 8046,

    /**
    1jtext decoration style and color for multi-line text box.
     * This attribute can be set, reset, and obtained as required thro_ugh APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *%"NODE_TEXT_AREA_DECORATION = 8047,

    /**
     * @brief Sets a linear gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takeswhen <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
   !  * The parameter type is {@link Direction}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
    $ * size: number of colors. \n
     *%"NODE_TEXT_AREA_LINEAR_GRADIENT = 8048,

    /**
     * @brief Sets a radial gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative toB^ of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@linfk ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative toB] of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative toB of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stopQs: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"4NODE_TEXT_AREA_RADIAL_GRADIENT = 8049,

    /**
    1jbutton text content. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_BUTTON_LABE9L = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,

    /**
    button type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default va]lue is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     *
     */
    NODE_BUTTON_TYPE,

    /**
   1jminimum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: minimum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: minimum font scale, in fp.
    *
    * @since 18
   0 */
    NODE_BUTTON_MIN_FONT_SCALE,

    /**
   1jmaximum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: maximum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: maximum font scale, in fp.
    *
    * @since 18
   1 */
    NODE_BUTTON_MAX_FONT_SCALE,

    /**
    1jcurrent value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value of the progress indicator. \n
     *
     */
    NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
  
  /**
    1jtotal value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: total value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total Xvalue of the progress indicator. \n
     *
     */
    NODE_PROGRESS_TOTAL,
    /**
    1jcolor for the progress value on the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: c
olor value For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value8 \n
     *
     */
    NODE_PROGRESS_COLOR,
    /**
    1jtype of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
     * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}8. \n
     *
     */
    NODE_PROGRESS_TYPE,
    /**
    style of the linear progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     * If the progress indicator type is not linear, it will not take effect.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
     *
     * @since 15
     */
    NODE_PROGRESS_LINEAR_STYLE,

    /**
     * @brief Defines whether the check box is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the check box is selected.
     * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
     * 
     */
    NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * AR KUI_NODE_CHECKBOX,

    /**
    1jcolor of the check box when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for exampleQ, <b>0xFF1122FF</b>.
     *
     */
    NODE_CHECKBOX_SELECT_COLOR,

    /**
    1jborder color of the check box when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: bordera, for example, <b>0xFF1122FF</b>.
     * 
     */
    NODE_CHECKBOX_UNSELECT_COLOR,

    /**
    1jinternal icon style of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0x, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return va?lue {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
     *
     */
    NODE_CHECKBOX_MARK,

    /**
     * @brief:jshape of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     */
    NODE_CHECKBOX_SHAPE,

    /**
    1jname of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_NAME,

    /**
    1jname of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP,

    /**
    1jID of the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID. \n
     *
     */
    NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
    /**
     * @brief Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
     * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
     * Attempting to change the type through {@link setAttribute} will cause rendering exceptions.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type {@link ArkUI_XComponentType}. \n
     *
     */
    NODE_XCOMPONENT_TYPE,
    /**
     * @brief Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
     * Attempting to modify the size through {@link setAttribute} will have no effect.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: width, in px. \n
     * .value[1].u32: height, in px. \n
     *
     */
    NODE_XCOMPONENT_SURFACE_SIZE,
    /**
    1jrectangle information of surface created by the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Tsurface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontasurface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * @since 18
     */
    NODE_XCOMPONENT_SURFACE_RECT,
    /**
     * @brief Defines w@\AI analyzer for the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     * @since 18
     */
    NODE_XCOMPONENT_ENABLE_ANALYZER,

    /**
     * @brief Defines whether to display the lunar calendar in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker.
     *
     */
    NODOE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
    /**
    1jstart date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
   -  */
    NODE_DATE_PICKER_START,
    /**
    1jend date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
   +  */
    NODE_DATE_PICKER_END,
    /**
    1jselected date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2024-01-22"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date.
     *
 2    */
    NODE_DATE_PICKER_SELECTED,
    /**
    1jfont color, font size, and font weight for the top and bottom items in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har^monyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight of all items except the top, bottom, and selected
     * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarTmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight of the selected item in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available opticons are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har]monyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
    /**
    1jmode of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     *
     * @since 18
     */
    NODE_DATE_PICKER_MODE = 13007,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 18
     */
    NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
    /**
     * @brief Defines whether to support scroll looping for the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     * @since 20
     */
     NODE_DATE_PICKER_CAN_LOOP = 13009,
    /**
     * @brie9jtime of the selected item. in the timer picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is the current system time. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time.
     *
     */

    NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
    /**
     * @brief DefinesPtime is in 24-hour format.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format` of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Ptime is in 24-hour format. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_Attri"buteItem}:\n
     * .value[0].i32:P^time is in 24-hour format.
     *
     */
    NODE_TIME_PICKER_USE_MILITARY_TIME,
    /**
    1jfont color, font size, and font weight for the top and bottom items in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har^monyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight of all items except the top, bottom, and selected items
     * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarTmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight of the selected item in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available opticons are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har]monyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
    /**
    1jstart time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"00:00:00"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default vallue is <b>"00:00:00"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_START = 14005,
    /**
    1jend time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_END = 14006,
    /**
     * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeIte   m} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable cascade.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_ENABL E_CASCADE = 14007,

    /**
    1jdata selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
     * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
     * ?.string: string input, whose format varies by picker type.\n
     * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs aGre separated by
     * semicolons (;), and strings within each pair are|~ \n
     * ?.object: Object input, whose format varies by picker type.\n
     * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
     * ?.string: string output, whose format varies by picker type.\n
     * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons %(;), and strings within each pair are|~ \n
     * ?.string: Object output, whose format varies by picker type.\n
     * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARK!UI_NODE_TEXT_PICKER,
    /**
    1jindex of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one.\Cn
     *
     */
    NODE_TEXT_PICKER_OPTION_SELECTED,
    /**
    1jvalue of the default selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;).\n
     *
     */
    NODE_TEXT_PICKER_OPTION_VALUE,
    /**
    1jfont color, font size, and font weight for the top and bottom items in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har^monyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight for all items except the top, bottom, and selected
     * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarTmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_TEXT_STYLE,
    /**
    1jfont color, font size, and font weight for the selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available optdions are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bFolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts,|~\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,Har]monyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
    /**
    1jindex of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: index of the default item in the data selection range.
     *
     */
    NODE_TEXT_PICKER_SELECTED_INDEX,
    /**
     * @brief Defines whether to support scroll looping for the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     */
    NO%DE_TEXT_PICKER_CAN_LOOP,
    /**
    1jheight of each item in the picker. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: item height, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: item height, in vp. \n
     *
     */
    NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 18
     */
    NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
    /**
     *3jand border radius of the selected items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background coloro, for example, <b>0xFF1122FF</b>. \n
     * 1: .value[1].f32: radius of the four corners. \n
     * 2: .value[1].f32: radius of. \n
     * .value[2].f32: r. \n
     * .value[3].f32:F . \n
     * .value[4].f32:A!e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:^#B, for example, <b>0xFF1122FF</b>. \n     *
     * .value[1].f32: r. \n
     * .value[2].f32: r. \n
     * .value[3].f32:F . \n
     * .value[4].f32:A!i. \n
     *
     * @since 20
     */
    NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011,
    /**
    1jstyle of the background in the selected state of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .vYalue[0].f32: style of the background in the selected state of the calendar picker.
     *1?+∞). If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
     * or greater than 16, the background is a circle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: style of the background- in the selected state of the calendar picker0?}    * If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
     * greater than 16, the background is a circle. \n
     *
     */
    NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
    /**
     * @br7jdate of the selected item in the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     *
     */
    NODE_CALENDAR_PICKER_SELECTED_DATE,
    /**
     * @brief Defines how the calendar picker is aligned with the entry component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     *
     */
    NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
    /**
     * @b6jfont color, font size, and font weight in the entry area of the calendar picker.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.u32: font color of the entry area. \n
     * .value[1]?.f32: font size of the entry area, in fp. \n
     * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: font color of the entry area. \n
     * .value[1].f32: font size of the entry area, in fp. \n
     * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     *
     */
    NODE_CALENDAR_PICKER_TEXT_STYLE,
    /**
     * @5jstart date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     H* @since 18
     */
    NODE_CALENDAR_PICKER_START = 16004,
    /**
    1jend date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     F* @since 18
     */
    NODE_CALENDAR_PICKER_END = 16005,
    /**
    1jcolor of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOP(E_NUM * ARKUI_NODE_SLIDER,

    /**
    1jof the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@liTnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:^#, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:^#[, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_TRACK_COLOR,

    /**
    1jcolor of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format,] for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_SELECTED_COLOR,

    /**
    ϳdisplay the stepping value. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     3*
     */
    NODE_SLIDER_SHOW_STEPS,

    /**
    1jslider shape, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
     * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
      * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_SLIDER_BLOCK_STYLE,

    /**
     *3jcurrent value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value.
     *
     */
    NODE_SLIDER_VALUE,

    /**
    1jminimum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum value.
     *
     */
    NODE_SLIDER_MIN_VALUE,

    /**
    1jmaximum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum value.
     *
     */
    NODE_SLIDER_MAX_VALUE,

    /**
    1jstep of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkW ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: step0?.01, 100]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: step. The value <?.01, 100].
     *
     */
    NODE_SLIDER_STEP,

    /**
     * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
     * obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     * The parameter type is {@link ArkUI_SliderDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     *
     */
    NODE_SLIDER_DIRECTION,

    /**
     * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> mHeans the opposite.
     *
     */
    NODE_SLIDER_REVERSE,

    /**
    1jstyle of the slider thumb and track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
  1   *
     */
    NODE_SLIDER_STYLE,

    /**
    rack thickness of the slider.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
     * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
     * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: track thickness of the slider, in vp. \n
     *
     */
    NODE_SLIDER_TRACK_THICKNESS,

    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
     * requestPermissions field of the module.json5 file to enable vibration permission.\n
     *
     * @since 18
     */
    NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,

    /**
     * @brief Sets a custom component on the leading side of the Slider component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The pre%fix component will be placed at the s1LSlider，
     * typically on the left side in LTR layouts.
	 *
	 * @since 20
     */
    NODE_SLIDER_PREFIX,

    /**
     * @brief Sets a custom component on the trailing side of the Slider component.
     *
     * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The suffix component will be placed at the end position of the Slider,
     * typically on the right side in LTR layouts.
	 *
	 * @since 20
  +   */
    NODE_SLIDER_SUFFIX,

    /**
    1jcolor of the slider block. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_BLOCK_LINEAR_GRADIENT_COLOR,

    /**
    1jof the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_TRACK_LINEAR_GRADIENT_COLOR,

    /**
     * @b6jcolor of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_SELECTED_LINEAR_GRADIENT_COLOR,

    /**
     * @brief Set the selection status of an option button. Attribute setting,
     * attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: check status of an option button. The default value is false.
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: selection status of an option button.
     */
    NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
    /**
     * @brief Set the styles of the selected and deselected states of the option button.
     * The attribute setting, attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0]?. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]?. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFFF. \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0]. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFF. \n
     */
    NODE_RADIO_STYLE,
    /**
     * @brievalue of the current radio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: radio value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: radio value.\n
     *
     */
    NODE_RADIO_VALUE,
    /**
     * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: name of the group to which the current option box belongs.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: name of the group to which the current option box belongs.\n
     *
     */
    NODE_RADIO_GROUP,

    /**
     * @brief Set the image frames for the image animator. Dynamic updates is not supported.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     *
    */
    NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
    /**
     * yback status of the animation for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
     * and the default value is ARKUI_ANIMATION_STATUS_INITIAL.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
     *
    */
    NODE_IMAGE_ANIMATOR_STATE = 19001,
    /**
    yback duration for the image animator. When the duration is 0, no image is played.
     * The value change takes effect only at the beginning of the next cycle.
     * When a separate duration is set in images, the setting of this attribute is invalid.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback duration, the unit is ms and the default value is 1000.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playeback duration, the unit is ms.\n
     *
    */
    NODE_IMAGE_ANIMATOR_DURATION = 19002,
    /**
    yback direction for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
    */
    NODE_IMAGE_ANIMATOR_REVERSE = 19003,
    /**
     * @brief Set whether the image size is the same as the component size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * In this case, the width, height, top, and left attributes of the image are invalid.
     * 0 indicates the image size is customized.
     * The width, height, top, and left attributes of each image must be set separately.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * 0 indicates the image size is customized.
     *
    */
    NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
    /**
     * @brief Set the status before and after execution of the animation in the current playback direction.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode} and the default value is ARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode}.
     *
    */
    NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
    /**
     * @brief Set the number of times that the animation is played.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
    */
    NODE_IMAG+E_ANIMATOR_ITERATION = 19006,

    /**
    1jname of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief Defines whether the checkboxgroup is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the checkboxgroup is selected.
     * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECT_ALL,

    /**
    1jcolor of the checkboxgroup when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
     * for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECTED_COLOR,
    /**
     * 4jborder color of the checkboxgroup when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border, for example, <b>0xFF1122FF</b>.
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,

    /**
     * @b6jinternal icon style of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, i, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return va?lue {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_MARK,

    /**
    1jshape of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SHAPE,

    /**
     * @brief TextEditor组件回车键类型，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**数：**
     * <br>.value[0].i32：回车键类型，参数类型{@link ArkUI_EnterKeyType}，默认值为ARKUI_ENTER_KEY_TYPE_NEW_LINE。
     * <br>**返回：**
     * <br>.value[0].i32：回车键类型，参数类型{@link ArkUI_EnterKeyType}。
     *uNODE_TEXT_EDITOR_ENTER_KEY_TYPE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief TextEditor组件光标颜色，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].u32：光标颜色，采用0xARGB格式，例如0xFFFF0000表示红色。
     * <br>**返回：**
     * <br>.value[0].u32：光标颜色，采用0xARGB格式。
     *uNODE_TEXT_EDITOR_CARET_COLOR,

    /**
     * @brief TextEditor组件滚动条颜色，支持属性设置、属性重置和属获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.data[0].u32：滚动条颜色，采用0xARGB格式。
     * <br>**返回：**
     * <br>.<data[0].u32：滚动条颜色，采用0xARGB格式。
     *uNODE_TEXT_EDITOR_SCROLL_BAR_COLOR,

    /**
     * @brief TextEditor组件滚动条显示模式，支持属性设置、属性置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：文本区域的滚动条显示模式，参数类型{@link ArkUI_BarState}，默认值为ARKUI_BAR_STATE_AUTO。
     * <br>**返回：**
     * <br>.value[0].i32：文本区域的滚动条显7模式，参数类型{@link ArkUI_BarState}。
     *uNODE_TEXT_EDITOR_BAR_STATE,

    /**
     * @brief TextEditor组件文本实体识别功能开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用文本实体识别功能，0表示禁用，1表示用，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用了文本实体识别功能。
     *
uNODE_TEXT_EDITOR_ENABLE_DATA_DETECTOR,

    /**
     * @brief TextEditor组件识别配置，支持属性设置和属性重置
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.objPect：识别配置，参数类型{@link ArkUI_TextDataDetectorConfig}。
     * uNODE_TEXT_EDITOR_DATA_DETECTOR_CONFIG,

    /**
     * @brief TextEditor组件扩展菜单选项，支持属性设置和属性置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <bXr>.object：扩展菜单选项，参数类型{@link ArkUI_TextEditMenuOptions}。
     *uNODE_TEXT_EDITOR_EDIT_MENU_OPTIONS,

    /**
     * @brief TextEditor组件无输入时的提示文本选项，支持属性设和属性重置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：无输入时的提示文本选项，参数类型{@link ArkUI_TextEditorPlaceholderOptions}。
     *
  uNODE_TEXT_EDITOR_PLACEHOLDER,

    /**
     * @brief TextEditor组件属性字符串控制器，支持属性设置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：属性Y字符串控制器，参数类型{@link ArkUI_TextEditorStyledStringController}。
     *uNODE_TEXT_EDITOR_STYLED_STRING_CONTROLLER,

    /**
     * @brief TextEditor组件预上屏功能开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用预上屏功能，0表示禁用，1表示启，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用预上屏功能，0表示禁用，1表示启用。
     *uNODE_TEXT_EDITOR_ENABLE_PREVIEW_TEXT,

    /**
     * @brief TextEditor组件TextLayoutManager获取，支持属性获取。
     * <br>作为属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**返回：**
     * <br>.objec(t：布局管理器，参数类型{@linkj}。
     *uNODE_TEXT_EDITOR_LAYOUT_MANAGER,

    /**
      * @brief TextEditor组件文本选择识别AI菜单开关，支持属性设置属性重置和属性获取。
      * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
      * <br>**参数：**
      * <br>.value[0].i32：是否启用文本选择识别的AI菜单，0表示用，1表示启用，默认值为1。
      * <br>**返回：**
      * <br>.value[0].i32：是否启用了文本选择识的AI菜单。
      *
 A$ */
    NODE_TEXT_EDITOR_ENABLE_SELECTED_DATA_DETECTOR,

    /**
     * @brief TextEditor组件选中内容背景颜色，支属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.data[0].u32：选中内容的背景颜色，采用0xARGB格式。
     * <br>**返回：**
     * <br>.data[0].u32：选中内容的背景颜色，采用0xARGB格式。
     *
     * uNODE_TEXT_EDITOR_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief TextEditor组件非点击获焦时拉起输入法开关，持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：非点击获焦时是否拉起输入，0表示不拉起，1表示拉起，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：非点击获焦时A否拉起输入法，0表示不拉起，1表示拉起。
     *uNODE_TEXT_EDITOR_ENABLE_KEYBOARD_ON_FOCUS,

    /**
     * @brief TextEditor组件最大字符数，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格如下。
     * <br>**参数：**
     * <br>.value[0].i32：最大字符数。
     * <br>**返回：**
     * <br>.value[0!].i32：最大字符数。
     *uNODE_TEXT_EDITOR_MAX_LENGTH,

    /**
     * @brief TextEditor组件内容最大行数，支持属性设置、属性重置和性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：文本编辑器中内容的最大行数。
     * <br>**返回：**
     *F <br>.value[0].i32：文本编辑器中内容的最大行数。
     *uNODE_TEXT_EDITOR_MAX_LINES,

    /**
     * @brief TextEditor组件触觉反馈开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否在文本编辑器中启用触觉反馈，0表示不启用，1表示用，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用了触觉反馈，0表示不启用，1表示启用。
     *uNODE_TEXT_EDITOR_ENABLE_HAPTIC_FEEDBACK,

    /**
     * @brief TextEditor组件复制选项，支持属性设置、属性重和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：复制选项，参数类型{@link ArkUI_CopyOptions}，默认值为ARKUI_COPY_OPTIONS_LOCAL_DEVICE。
     * <br>**返回：**
     * <br>.value[0].i32：复制选项，参数类型{@link ArkUI_CopyOptions}。
     *uNODE_TEXT_EDITOR_COPY_OPTIONS,

    /**
    * @brief TextEditor组件键盘外观，支持属性设置、属性重置和属性取。
    * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
    * <br>**参数：**
    * <br>.value[0].i32：键盘外观，参数类型{@link ArkUI_KeyboardAppearance}，默认值为ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE。
    * <br>**返回：**
    * <br>.value[0].i32：键盘外观，参数类型{@link ArkUI_KeyboardAppearance}。
    *
"*/
    NODE_TEXT_EDITOR_KEYBOARD_APPEARANCE,

    /**
     * @brief TextEditor组件是否阻止返回事件传播，支持属设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否阻止返回事件传播，0表示不阻止，1表示阻止，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否阻止返回事件传播，0'示不阻止，1表示阻止。
     *uNODE_TEXT_EDITOR_STOP_BACK_PRESS,

    /**
     * @brief TextEditor组件中西文自动间距开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用自动间距，0表示不启用，1表示启用默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用自动间距，0表示不启用，1表示启用。
     *uNODE_TEXT_EDITOR_ENABLE_AUTO_SPACING,

    /**
     * @brief TextEditor组件自定义键盘，支持属性设置、属性重和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：自定义键盘，参数类型{@link ArkUI_NodeHandle}。
     * <br>.value[0]?.i32：设置自定义键盘是否支持避让功能，0表示不支持，1表示支持，默认值为0。
     * <br>**回：**
     * <br>.object：自定义键盘，参数类型{@link ArkUI_NodeHandle}。
     * <br>.value[0].i32：设置自O义键盘是否支持避让功能，0表示不支持，1表示支持。
     *uNODE_TEXT_EDITOR_CUSTOM_KEYBOARD,

    /**
     * @brief TextEditor组件自定义文本选择菜单绑定，支持属性设置和属性重置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**m
     * <br>.object：文本选择菜单，参数类型{@link ArkUI_TextEditorSelectionMenuOptions}。
     *uNODE_TEXT_EDITOR_BIND_SELECTION_MENU,

    /**
     * @brief TextEditor组件首行末行防截断间距开关，支持属性置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否添加间距，0表示不添加，1表示添加，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否添加间距，0表示不添加，1表示添。
     *uNODE_TEXT_EDITOR_INCLUDE_FONT_PADDING,

    /**
     * @brief TextEditor组件行高自适应开关，支持属性设置、属重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}式如下。
     * <br>**参数：**
     * <br>.value[0].i32：行高是否自适应，0表示不自适应，1表示自适，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：行高是否自适应，0表示不自适应，1表示适应。
     *uNODE_TEXT_EDITOR_FALLBACK_LINE_SPACING,

    /**
     * @brief TextEditor组件行首标点符号压缩开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用标点符号压缩，0表示不启用1表示启用，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用标点符号压缩，0表示"启用，1表示启用。
     *uNODE_TEXT_EDITOR_COMPRESS_LEADING_PUNCTUATION,

    /**
     * @brief TextEditor组件选中拖拽预览样式，支持属性置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：选中拖拽预览样式配置，参数类型{@link ArkUI_SelectedDragPreviewStyle}。
     * <br>**返回：**
     * <br>.object：选中拖拽预览样式配置，参数类型{@lin,k ArkUI_SelectedDragPreviewStyle}。
     * uNODE_TEXT_EDITOR_SELECTED_DRAG_PREVIEW_STYLE,

    /**
     * @brief TextEditor组件单行模式开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用单行模式，0表示不启用，1表示启，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用单行模式，0表示不启用，1表示启用。
     * uNODE_TEXT_EDITOR_SINGLE_LINE,

    /**
     * @brief 设置TextEditor文本排版时是否使能孤字优化，设置后，通更高效地处理孤立字符（段落尾行首字符）来改善文本布局。使能后，它会调整换行点以尽可避免孤立字符。
     * 孤字优化特性需在{@link ArkUI_WordBreak}属性为非ARKUI_WORD_BREAK_BREAK_ALL时生效。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否使能，1表示使能，0表示不使能。默认值为0。
     * <br>**返回B**
     * <br>.value[0].i32：是否使能孤字优化。
     *%" NODE_TEXT_EDITOR_ORPHAN_CHAR_OPTIMIZATION,

    /**
     * @brief 设置TextEditor组件在文本宽度超过内容区宽度是否启用水平滚动，支持属性设置，属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否用水平滚动。1表示启用水平滚动，0表示不启用水平滚动。默认值为0。
     * <br>**返回：**
     * 6<br>.value[0].i32：是否启用水平滚动。
     *%"4NODE_TEXT_EDITOR_HORIZONTAL_SCROLLING,

    /**
    ϳ!punctuation overflow at the end of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable punctuation overflow, the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}J:\n
     * .value[0].i32: whether to enable punctuation overflow.\n
     *%"4NODE_TEXT_EDITOR_PUNCTUATION_OVERFLOW,

    /**
    1jalignment mode of the child components in the container. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,

    /**
     * @b6jscrollbar status. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b> for the <b>List</b>, <b>Grid</b>, and <b>Scroll</b> components, and
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF</b> for the <b>WaterFlow</b> component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
     *
     */
    NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    1jwidth of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32Z: width of the scrollbar, in vp. \n
     *
     */
    NODE_SCROLL_BAR_WIDTH,
    /**
    1jcolor of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scrollbar, in 0xARGB  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scrollbar, in : \n
     *
     */
    NODE_SCROLL_BAR_COLOR,
    /**
    1jscroll direction. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
     * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDiJrection}. \n
     *
     */
    NODE_SCROLL_SCROLL_DIRECTION,
    /**
    1jeffect used at the edges of the component when the boundary of the scrollable content is
     * reached. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
     * .value[1]?.i32: w@\scroll effect when the component content size is smaller than the
     * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
     * opposite. The default value for the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
     * Scroll component is <b>1</b>. \n
     * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
     * The default value is <b>ARKUI_EFFECT_EDGE_START | ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
     * API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrolklable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
     * .value[1].i32: w@\scroll effect when the component content size is smaller than the component
     * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
     * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EffectEdge}. This parameter is supported since API version 16. \n
     *
     */
    NODE_SCROLL_EDGE_EFFECT,
    /**
     * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
     * finger or mouse is not supported, but the scroll controller API is not affected.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to support scroll gestures. \n
     *
     */
    3NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
    /**
    1jfriction coefficient. It applies only to gestures in the scrolling area, and it affects only
     * indirectly the scroll chaining during the inertial scrolling process.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
     * for wearable devices. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32M: friction coefficient.
     *
     */
    NODE_SCROLL_FRICTION,
    /**
    1jscroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * .value[1].i32: w@\snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point. The default value is <b>true</Xb>. It is valid only when there are multiple
     * snap points.\n
     * .value[2].i32:>\snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
     * edge to which the <b><Scroll></b> component can scroll.  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode for the scroll snap positSion. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     * .value[1].i32: w@\snap to start feature. When scro   ll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point.\n
     * .value[2].i32: WhetheE\snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
     * to which the <b><Scroll></b> compGonent can scroll. \n
     *
     */
    NODE_SCROLL_SNAP,

    /**
    1jnested scrolling options. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}.
     *
     */
    NODE_SCROLL_NESTED_SCROLL,
    /**
    1jspecified position to scroll to. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
     * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
     * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
     [*                 The default value is <b>ARKUI_CURVE_EASE</b>. \n
     * .value[4]?.i32: w@\default spring animation. Optional.
     *                 The default value <b>0</b> means not to enable the default spring animation. \n
     * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
     *                 Optional. \n
     * .value[6]?.i32: whether the component can stop at an overscrolled position.
     *                 This parameter is supported since API version 20. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offseAt, in vp. \n
     *
     */
    NODE_SCROLL_OFFSET,

    /**
    1jedge position to scroll to. This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].&i32: whether the container at the edgeoP<b>-1</b> means that the container is not
     * at the edge position. If the container is at the edge position, the parameter gtype is {@link ArkUI_ScrollEdge}.
     *
     */
    NODE_SCROLL_EDGE,

    /**
     * @brief Defines w@\swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
     * <b>enablePaging</b> does not. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheB\swipe-to-turn-pages feature. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_Att&ributeItem}:\n
     * .value[0].i32: w@\swipe-to-turn-pages feature. \n
     *
     */
    NODE_SCROLL_ENABLE_PAGING,

    /**
     * @brief Scroll to the next or previous page.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
     * indicates scroll to previous page. \n
     * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
     *
     */
    NODE_SCROLL_PAGE,

    /**
     * @brief Scroll a specified distance.
     * List/Scroll/WaterFlow support since API version 12, Grid support since API version 26.0.0.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Horizontal scrolling distance in vp; \n
     * .value[1].f32: Vertical scrolling distance in vp; \n
     *
     */
    NODE_SCROLL_BY,

    /**
     * @brief Performs inertial scrolling based on the initial velocity passed in.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
     * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
     * the scroll will move downward; if the value is negative, the scroll will move upward. \n
     *
     * @since 13
     */
    NODE_SCROLL_FLING,

    /**
    * fading effect for the edges of scrollable components.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setti(ng the attribute:
    * .value[0].i32: w@\fading effect on edges. The value 0 means to disable the fading effect,
    * and 1 means to enable it.
    * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
    *
    * Format of the return value {@link ArkUI_AttributeItem}:
    * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
    * disabled, and 1 means that it is enabled.
    * .value[1].f32: length of the fading effect on edges, in vp.
    *
    * @since 14
  /  */
    NODE_SCROLL_FADING_EDGE,

    /**
    atotal size of all child components when fully expanded in the scrollable component.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
     * nearest pixel when being converted from vp to px.
     * The returned values are calculated based on these rounded pixel values. \n
     *
     * @since 14
     */
     NODE_SCROLL_SIZE,

    /**
    offset from the start of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     *
    H * @since 15
     */
    NODE_SCROLL_CONTENT_START_OFFSET,

    /**
    offset from the end of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     *
     * @si@nce 15
     */
    NODE_SCROLL_CONTENT_END_OFFSET,

    /**
    1jmaximum starting fling speed of the scrollable when the fling animation starts.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     *
     * @since 18
     */
    NODE_SCR.OLL_FLING_SPEED_LIMIT = 1002019,

    /**
    1jclip mode of the scrollable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: clip content mode. The parameter type is {@link ArkUI_ContentClipMode}. The default value is
     * <b>ARKUI_CONTENT_CLIP_MODE_BOUNDARY</b> for the <b>Grid</b> and <b>Scroll</b> components, and
     * <b>ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY</b> for the <b>List</b> and <b>WaterFlow</b> components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
     *
     * @since 18
     */
    NODE_SCROLL_CLIP_CONTENT = 1002020,

    /**
     * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
     * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite. The default value is <b>0</b>
     * for API versions earlier than 18. For API version 18 and later, the default value is <b>0</b> for the
     * horizontal scroll direction and <b>1</b> for the vertical scroll direction. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
     *
     * @since 1>5
     */
    NODE_SCROLL_BACK_TO_TOP = 1002021,

    /**
    1jmargin of the scrollbar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * .value[1].f32: end margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start margin of the scrollbar, in vp. \n
     * .value[1].f32: end margin of the scrollbar, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_BA!R_MARGIN = 1002022,

    /**
    maximum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current maximum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,

    /**
    minimum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current minimum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,

    /**
    zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_ZOOM_SCALE = 1002025,

    /**
     * @ӳ!zoom bounce effect when the scaling exceeds the limits.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for s/etting the attribute:\n
     * .value[0].i32: w@\zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to J\zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
     *
     * @since 20
     */
    NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,

    /**
     * @brief Sets w߳dragging scrolling with the left mouse button pressed is supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. \n
     *%"=NODE_SCROLL_ENABLE_SCROLL_WITH_MOUSE = 1002027,

    /**
    ϳautomatically adjust the margin of the scrollbar to avoid the component's <b>NODE_PADDING</b>, <b>NODE_SCROLL_CONTENT_START_OFFSET</b>, and <b>NODE_SCROLL_CONTENT_END_OFFSET</b> areas.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. \n
     *
     * @since 26.0.&7NODE_SCROLL_AUTO_ADJUST_MARGIN = 1002028,

    /**
    Arection in which the list items are arranged.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
     * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
     *
     */
    NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
     * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}.
     *
     */
    NODE_LIST_STICKY,
   	 /**
    1jspacing between list items. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between list items along the main axis. \n
     *
     */
    NODE_LIST_SPACE,
    /**
    * @br7jist adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
  '  NODE_LIST_NODE_ADAPTER,

    /**
    number of cached items in the list adapter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
     * .value[2]?.i32: maximum cache count. This parameter is supported since API version 22.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. This parameter is supported since API version 15. \n
     * .value[2].i32: maximum cache count. This parameter is supported since API version 22.
     *
     */
    NODE_LIST_CACHED_COUNT,

    /**
     * @brief Scroll to the specified index.
     * 
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：The index value of the target element to be slid to in the current container.\n
     * .value[1]?.i32：Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. Default value: 0。\n
     * .value[2]?.i32：Specify the alignment of the sliding element with the current container,The parameter type is
     * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
     * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
     * This parameter is supported since API version 15. \n
     *
     */
    NODE_LIST_SCROLL_TO_INDEX,
    /**
     * @brief Sealignment mode of list items along the cross axis when the cross-axis width of the list is
     * greater than the cross-axis width of list items multiplied by the value of lanes.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
    */
    NODE_LIST_ALIGN_LIST_ITEM,

    /**
     * @brief Set the default spindle size for the List subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */
    NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,

    /**
     * @brief Set the index value of the item displayed at the start of the viewport
     * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     */
    NODE_LIST_INITIAL_INDEX = 1003008,
    /**
     * @brief sets the ListItem splitter style. By default, there is no splitter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: divid'ing line width; \n
     *.value[2].f32:OSdivider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32:Odivider and the end of the side of the list (unit: vp). \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32:OSdivider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32:Odivider and the end of the side of the list (unit: vp). \n
     *
     */
    NODE_LIST_DIVIDER = 1003009,

    /**
     * @brief Scrolls to the item with the specified index in the specified list item group.
     *
     * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
     * This may result in performance issues if a large number of items are involved. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index of the target list item group in the current list. \n
     *.value[1].i32: index of the targ@et list item in the list item group. \n
     * .value[2]?.i32: w@\smooth animation for scrolling to the item with the specified index.
     * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
     * The default value is <b>0</b>. \n
     * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     *
     * @since 15
     */
    NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,

    /**
     * @brief Senumber of lanes in the list.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
     * of lanes will not take effect. \n
     * .value[1]?.f32: minimum lane width, in vp. \n
     * .value[2]?.f32: maximum column width, in vp. \n
     * .value[3]?.f32: lane spacing, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: number of lanes in the list. \n
     * .value[1].f32: minimum lane width, in vp. \n
     * .value[2].f32: maximum column width, in vp. \n
     * .value[3].f32: lane spacing, in vp. \n \n
     *
     * @since 15
     */
    NODE_LIST_LANES = 1003011,

    /**
     * @brief Slist snap alignment mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     *
 P    * @since 15
     */
    NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,

    /**
    ϳmaintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     *
     * @since 15
     */
    NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,

    /**
    ϳhe <b>List</b> component starts layout from the end.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     *
     * @since 19
     */
    NODE_LIST_STACK_FROM_END = 1003014,
    
    /**
    1jfocus wrap mode for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     *
     * @since 20
     */
    NODE_LIST_FOCUS_WRAP_MODE = 1003015,

    /**
     * @brief Defines whether the <b>List</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
 7    */
    NODE_LIST_SYNC_LOAD = 1003016,

    /**
    1jscroll snap animation speed for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}.
     * Default value: <b>ARKUI_SCROLL_SNAP_ANIMATION_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}. \n
     *
     * @since 22
     */
    NODE_LIST_SCROLL_SNAP_ANIMATION_SPEED = 1003017,

    /**
     * @brief Specifies the responsive column layout policy for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.f32: column spacing. unit: vp. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].f32: column spacing. unit: vp. \n
     *
     * @since 22
     */
    NODE_LIST_LANES_ITEMFILLPOLICY = 1003018,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>List</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>List</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_LIST_SUPPORT_EMPTY_BR-ANCH_IN_LAZY_LOADING = 1003019,

    /**
    back button behavior for the List component. Attribute setting, resetting, and obtaining APIs are supported.
     *
     * The parameter format for setting properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes. Default value: 1.
     * 
     * The parameter format for obtaining properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu 6when the back button is clicked. 0: no; 1: yes.
     *%"NODE_LIST_BACK_PRESS_BEHAVIOR = 1003020,

    /**
     * @brief Defines whether to enable loop playback for the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the opposite. The default value is <b>1/b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the opposite. The default value is <b>1</b>. \n
     *
     */
    NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
    /**
     * @brief Defines whether to enable automatic playback for child component switching in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
     * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
     * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
     * supported since API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
     * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
     * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
     *
     */
    NODE_SWIPER_*AUTO_PLAY,
    /**
     * @brief Defines w@\navigation point indicator for the swiper. This attribute can be set,
     * reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enaM\navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: w@\navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the opeposite. The default value is <b>1</b>. \n
     *
     */
    NODE_SWIPER_SHOW_INDICATOR,
    /**
    1jinterval for automatic playback. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     *
     */
    NODE_SWIPER_INTERVAL,
    /**
     * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposite. ThVe default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_VERTICAL,

    /**
    1jduration of the animation for switching child components. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     *
     */
    NODE_SWIPER_DURATION,

    /**
    1janimation curve for the swiper. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     *
     */
    NODE_SWIPER_CURVE,

    /**
     * @5jspacing between child components in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between child components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sp[acing between child components. \n
     *
     */
    NODE_SWIPER_ITEM_SPACE,

    /**
    1jindex of the child component currently displayed in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the child component. \n
     * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
     * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
     * This parameter is supported since API version 15. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the child component. \n
     *
     */
    NODE_SWIPER_INDEX,

    /**
    * @brie9jnumber of elements to display per page.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
    * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
    * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 19. \n
    * .string: 'auto' or empty string.
    *
    */
    NODE_SWIPER_DISPLAY_COUNT,

    /**
     * @brief Defines whether to disable the swipe feature.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
     * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
     * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_DISABLE_SWIPE,

    /**
    * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    *
    */
    NODE_SWIPER_SHOW_DISPLAY_ARROW,

    /**
     * @b6jeffect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}.\n
     * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
    9 *
     */
    NODE_SWIPER_EDGE_EFFECT_MODE,

    /**
   1jswiper adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */+
    NODE_SWIPER_NODE_ADAPTER,

    /**
   number of cached items in the swiper adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1]?.i32: whether the cached items will be displayed. \n
    * The value <b>0</b> indicates that cached items will not be displayed, \n
    * and <b>1</b> indicates that cached items will be displayed. The default value is <b>0</b>. \n
    * This parameter is supported from API version 19. \n
    * .value[2]?.i32: whether the cachedCount is independent of group calculation. \n
    * The value <b>1</b> indicates that cachedCount is calculated by actual child component count,\n
    * and is independent of displayCount group calculation.\n
    * The value <b>0</b> indicates that, when NODE_SWIPER_DISPLAY_COUNT is enabled to turn pages by group,\n
    * cachedCount is calculated by group.The default value is <b>0</b>. \n
    * This parameter is supported from API version 24. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
    * .value[2].i32: whether the cachedCount is independent of group calculation. This parameter is supported from API version 24. \n
    */
    NODE_SWIPER_CACHED_COUNT,

    /**
    1jfront margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the front margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_PREV_MARGIN,

    /**
    1jback margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the back margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_NEXT_MARGIN,

    /**
   1jnavigation indicator type of the swiper.
    * The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    *
    */
    NODE_SWIPER_INDICATOR,

    /**
     * @brief Set the nested scrolling mode for the Swiper component and parent component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     */
    NODE_SWIPER_NESTED_SCROLL,

    /**
     * @brief Set the switcher component to flip to the specified page.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32Specify the index value of the page in Swiper.\n
     * .value[1]?.i32：Set whether there is an animation effect when flipping to the specified page. 1 indicates active
     * effect, 0 indicates no active effect, default value is 0。\n
     */
    NODE_SWIPER_SWIPE_TO_INDEX,

    /**
    * @brief Set to disable component navigation point interaction function。
    *
    * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
    * .value[0].i32：Set to disable the interaction fAunction of component navigation points. When set to true, it
    onavigation points are interactive. The default value is true. \n
    * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}： \n
    * .value[0].i32：Set to disable component navigation point interaction@. \n
    */
    NODE_SWIPER_INDICATOR_INTERACTIVE,

    /**
    page flipping mode using the mouse wheel.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
     * \n
     * Format of the return value {@link ArkUI_PageFlipMode}:\n
     * .value[0].i32: page flipping mode using the mo[use wheel. \n
     *
     * @since 15
     */
    NODE_SWIPER_PAGE_FLIP_MODE,

    /**
    1jminimum main axis size of child element for swiper to works out the display count.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
     * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1].i32: whether to turn pages by group. \n
     *
     * @s8ince 19
     */
    NODE_SWIPER_AUTO_FILL,

    /**
    ϳmaintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     *
     * @since 20
     */
    NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Swiper</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.i32: whether to paginate by group. The value <b>0</b> means to paginate by individual child elements,
     * and <b>1</b> means to paginate by groups of child elements displayed within the viewport.
     * The default value is <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].i32: whether to paginate by group. \n
     *
     * @since 22
     */
    NODE_SWIPER_ITEMFILLPOLICY = 1001024,

    /**
     * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
     * property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     * \n
     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     *
     */
    NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
    1jheader of the list item group.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     *
     */
    NODE_LISWT_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
    /**
    1jfooter of the list item group. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     *
     */
    NODE_LIS%T_ITEM_GROUP_SET_FOOTER,
    /**
    1jstyle of the divider for the list items. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the divideT\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:"Adivider and the start of the list, in vp.\n
     * .value[3].f32:"divider and the end of the list, in vp.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * ".value[0].u32: color of the divideT\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:"Adivider and the start of the list, in vp.\n
     * .value[3].f32:"divider and the end of the list, in vp.\n \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_DIVIDER,

    /**
     * @brief Set the default spindle size for the ListItem Group subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
   H  */
    NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,

    /**
   1jist item group adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .object: {@link ArkUI_NodeAdapter} objebct. \n
    *
    * @since 15
    */
    NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,

    /**
    1jhorizontal alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
     * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAolignment}. \n
     *
     */
    NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
    /**
    1jvertical alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
     */
    NODE_COLUMN_JUSTIFY_CONTENT,

    /**
     * @brief Defines Row constructor options or Column constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The space of child components, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The space of child components, in vp.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_SPACE,

    /**
     * @brief Defines whether the arrangement of child components along the main axis in a Column or Row is reversed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_REVERSE,

    /**
    1jvertical alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}.\n
     * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}. \n
 Z    *
     */
    NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
    /**
    1jhorizontal alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
 2    */
    NODE_ROW_JUSTIFY_CONTENT,

    /**
    1jflex attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
     * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
     * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
     * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
     * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
     * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
     * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
     * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
     * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which flex items are arranged. \n
     * .value[1].i32: how the flex items are wrapped. \n
     * .value[2].i32: alignment mode along the main axis. \n
     * .value[3].i32: alignment mode along the cross axis. \n
     * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
     *
     */
    NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,

    /**
     * @brief Defines Row constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     *
     * @since 23
     */
    NODE_FLEX_SPACE,

    /**
     * @brie׳he component is being refreshed.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
  `   *
     */
    NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    custom content in the pull-down area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@LLink ArkUI_NodeHandle}.
     *
     */
    NODE_REFRESH_CONTENT,
    /**
    ull-down hand coefficient.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     *
     */
    NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
    /**
    pull-down offset that initiates a refresh.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     *
     */
    NODE_REFRESH_OFFSET = 1009003,
   	 /**
    ϳinitiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
     * <b>false</b> means the opposite.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
     * <b>0</b> means the opposite.
     *A
     */
    NODE_REFRESH_PULL_TO_REFRESH = 1009004,
    /**
    maximum pull-down distance for refreshing.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     *
     * @since 20
     */
    NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005,
    /**
     * ҳhe pull-up gesture cancels refresh.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b> means the opposite. Default value: <b>1</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and    <b>0</b> means the opposite.
     *
     * @since 23
     */
    NODE_REFRESH_PULL_UP_TO_CANCEL_REFRESH = 1009006,

    /**
     2jmain axis direction of the <b><WaterFlow></b> component layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     *i
     */
    NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,

    /**
    number of columns in the water flow layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE,

    /**
    number of rows in the water flow layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_WATER_FLOW_ROW_TEMPLATE,

    /**
     * gap between columns.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *6
     */
    NODE_WATER_FLOW_COLUMN_GAP,

    /**
    gap between rows.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     *,/
    NODE_WATER_FLOW_ROW_GAP,

    /**
    1jwater flow section configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: An index calculated from 0 is converted to an integer,
     * indicating that you want to start changing the position of the group.
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .objemct: {@ArkUI_WaterFlowSectionOption} object.\n
     *
     */
    NODE_WATER_FLOW_SECTION_OPTION,

    /**
   1jwater flow adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
  3  */
    NODE_WATER_FLOW_NODE_ADAPTER,

    /**
   number of cached items in the water flow adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * value[0].i32：number of cached items in the water flow adapter. \n
    * .value[1]?.i32：whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the water flow adapter. \n
    * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    */
    NODE_WATER_FLOW_CACHED_COUNT,

    /**
     * @brief Set the custom display component at the end of the waterfall flow component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     */
    NODE_WATER_FLOW_FOOTER,

    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. This parameter is optional, default value is 0.\n
     * .value[2].i32: Specify the alignment of the sliding element with the current container, The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>.
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top.
     * This parameter is supported since API version 23. \n
     *
     *4/
    NODE_WATER_FLOW_SCROLL_TO_INDEX,

    /**
    1jsize constraints to apply to water flow items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .valueh[3].f32: maximum height, in vp.\n
     *
     */
    NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,

    /**
    1jode of the <b><WaterFlow></b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * @since 18
     */
    NODE_WATER_FLOW_LAYOUT_MODE,

    /**
     * @brief Defines whether the <b>WaterFlow</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_WATER_FLOW_SYNC_LOAD = 1010012,

    /**
     * @brief Specifies the responsive column layout policy for the <b>WaterFlow</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1010013,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>WaterFlow</b> container.
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>WaterFlow</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is9 enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *%"NODE_WATER_FLOW_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1010014,

    /**
     * @brief Set the auxiliary line in the RelativeContaine container, supporting property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOP4E_NUM * ARKUI_NODE_RELATIVE_CONTAINER,

    /**
    barrier within the RelativeContaine container and supports property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Barrier within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_BARRIER,

    /**
    number of columns in the grid layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_GRID_COLUMN_TEMPLA8TE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
    number of rows in the grid layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_GRID_ROW_TEMPLATE,

    /**
     * @brief Sets gap between columns. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     *)/
    NODE_GRID_COLUMN_GAP,

    /**
    gap between rows. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_GRID_ROW_GAP,

    /**
   1jgrid adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
 '   NODE_GRID_NODE_ADAPTER,

    /**
   number of cached items in the grid adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display.
    * This parameter is optional, default value is 0. [since 26.0.0]\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached knodes. 0 means not display, 1 means display. [since 26.0.0]
    */
    NODE_GRID_CACHED_COUNT,

    /**
   1jfocus wrap mode for the <b>Grid</b> component.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    *
    * @since 20
    */
    NODE_GRID_FOCUS_WRAP_MODE = 1013006,

    /**
     * @brief Defines whether the <b>Grid</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_GRID_SYNC_LOAD = 1013007,

    /**
     * @brief Specifies the alignment of <b>GridItem</b> components in the parent <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \n
     * The default value is <b>GRID_ITEM_ALIGNMENT_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \n
     *
     * @since 22
     */
    NODE_GRID_ALIGN_ITEMS = 1013008,

    /**
     * @brief Specifies the layout options of the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object: layout options, with the parameter format of {@link ArkUI_GridLayoutOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: current {@link ArkUI_GridLayoutOptions} object. \n
     *
     * @since 22
     */
    NODE_GRID_LAYOUT_OPTIONS = 1013009,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_GRID_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1013010,

    /**
     * @brief Specifies whether to enable edit mode for the <b>Grid</b> component.
     * In edit mode, <b>GridItem</b> components can be dragged through the <b>NODE_GRID_ON_ITEM_DRAG_START</b> event.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. \n
     *
     * @since 23
     */
    NODE_GRID_EDIT_MODE = 1013011,

    /**
     * @brief Specifies whether to enablO\drag animation for <b>GridItem</b> components in the <b>Grid</b>
     * container. This attribute can be set, reset, and obtained as required through APIs.
     * Animations are supported only in scrolling mode (when either <b>NODE_GRID_ROW_TEMPLATE</b> or
     * <b>NODE_GRID_COLUMN_TEMPLATE</b> is set, but not both). Drag animations are only supported in regularly sized
     * grid layouts; scenarios involving spanning across rows or columns are not supported.
     *
     * Format of the {@link ArkUI_ALttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: w@\drag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: w@\drag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. \n
     *
     * @since 23
     */
    NODE_GRID_DRAG_ANIMATION = 1013012,

    /**
     * @brief Specifies whether to enable mouse-based multi-selection in the <b>Grid</b> container. This attribute can
     * be set, reset, and obtained as required through APIs. When enabled, mouse-based multi-selection within the
     * <b>Grid</b> area triggers the <b>NODE_GRID_ITEM_EVENT_ON_SELECT</b> event on <b>GridItem</b> components.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable mouse-based multi-selection.
     * <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based multi-selection. Default value:
     * <b>0</b>.\n \n Format of the return value {@link ArkUI_AttributeItem}:\n .value[0].i32: whether to enable
     * mouse-based multi-selection. <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based
     * multi-selection. \n
     *
     * @since 23
     */
    NODE_GRID_MULTI_SELECTABLE = 1013013,
  
    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an animation when sliding to the target element, where
     * 1 indicates an animation and 0 indicates no animation. This parameter is optional. default value is 0. \n
     * .value[2].i32: Specify the alignment of the target element with the current container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_AUTO</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>. 
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top. \n
     *
     * @since 23
     */
    NODE_GRID_SCROLL_TO_INDEX = 1013014,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>Grid</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_GRID_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1013015,

    /**
    style of the <b>GridItem</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     * The default value is <b>GRID_ITEM_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     *
     * @since 22
     */
    NODE_GRID_ITEM_STYLE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,

    /**
     * @brief Specifies whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. Default value: <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selec`table. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_SELECTABLE = 1014001,

    /**
    selected state of the <b>GridItem</b> component. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: selected state of the <b>GridItem</b> component.
     * <b>0</b>: not selected. <b>1</b>: selected. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n 
     * .value[0].i32: selected state of the <b>GridItem</b> component. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_SELECTED = 1014002,

    /**
   1jcolumn width of the text picker.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * ...\n
    * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * value[0].f32: percentage of total width.\n
    * value[1].f32: percentage of total width.\n
    * value[2].f32: percentage of total width.\n
    * ...\n
    * value[n].f32: percentage of total width.\n
    *
    * @since 18
    */
    NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
    /**
     * @br7jdisabled date range of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
     * ...,`nth start date`,`nth end date` of the disabled date range.\n
     *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: A string of dates.\n
     *
     * @since 19
     */
    NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,

    /**
     * @brief Defines whether the calendar picker marks today.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether the calendar picker marks today. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether the calendar picker marks today.\n
 Y    *
     * @since 19
     */
    NODE_CALENDAR_PICKER_MARK_TODAY = 16007,

    /**
    1jwant used to start EmbeddedAbility.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}.
     * The default value is <b>nullptr</b>.\n
     *
     * @since 20
     */
    NODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,

    /**
     * @brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The option for EmbeddedComponent, with parameter type {@ArkUI_ElmbeddedComponentOption}.\n
     *
     * @since 20
     */
    NODE_EMBEDDED_COMPONENT_OPTION,

    /**
    1jindex of the default selected item in the data selection range of the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. \n
     *
     * @since 23
     */
    NODE_PICKER_OPTION_SELECTED_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 23
     */
    NODE_PICKER_ENABLE_HAPTIC_FEEDBACK = 1018001,
    /**
     * @brief Defines whether to support scroll looping for the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the op[posite. \n
     *
     * @since 23
     */
    NODE_PICKER_CAN_LOOP = 1018002,
    /**
    ype and parameters of the selection indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     *
     * @since 23
     */
    NODE_PICKER_SELECTION_INDICATOR = 1018003,

    /**
    otal number of visible items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of visible items. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of visible items. \n
     *%"9NODE_PICKER_DISPLAYED_ITEM_COUNT = 1018004,

    /**
    height of each item.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: the height of each item, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: the height of each item, in vp. \n
     *%"<NODE_PICKER_ITEM_HEIGHT = 1018005,
} ArkUI_NodeAttributeType` component event max args sizeA&#define MAX_COMPONENT_EVENT_ARG_NUM 12parameter typ callback eventA0{
    /** Data array object. */
    ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
} ArkUI_NodeComponentEvent;

/**
 * @bl:string type parameter used by the component callback eventA0C{
    /** String. */
    const char* pStr;
} ArkUI_StringAsyncEvent`;hybrid data structure for component events.
 *
 * @since 15{
    /** String data */
    const char* pStr;
    /** Extended string data */
    const char* pExtendStr;
    /** Numeric data */
    int32_t number;
} ArkUI_TextChangeEvent;

/**
 * @brief 定义TextEditor组件文本内容变化事件的结构体。
 ++d!dG;

/**
 * @brief Enumerates the event types supported by the NativeNode(!4jgesture event type.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is {@linFk ArkUI_UIInputEvent}.
     */
    NODE_TOUCH_EVENT = 0,

    /**
    1jmount event.
     *
     * This event is triggered when the component is mounted and displayed. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArckUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_APPEAR,
    /**
    1junmount event.
     *
     * This event is triggered when the component is unmounted and hidden. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link AhrkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DISAPPEAR,

    /**
    1jarea change event.
     *
     * This event is triggered when the component's size, position, or any other attribute that may
     * affect its display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *  {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     */
    NODE_EVENT_ON_AREA_CHANGE,
    /**
    1jfocus event.
     *
     * This event is triggered when the component obtains the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodUeComponentEvent} does not contain parameters.
     */
    NODE_ON_FOCUS,
    /**
    1jblur event.
     *
     * This event is triggered when the component loses the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCoQmponentEvent} does not contain parameters.
     */
    NODE_ON_BLUR,
    /**
    1jclick event.
     *
     * This event is triggered when the component is clicked. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to tB of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative toB of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
     * is triggered and the time when the system starts, in microseconds. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
     * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative toB of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative toB of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative toB of the
     * application screen, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative toB of the
     * application screen, in vp. \n
     */
    NODE_ON_CLICK,
    /**
     * @brief Defines event interception.
     *
     * This event is triggered when the component is touched. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_TOUCH_INTERCEPT,
    /**
     * @b6jvisible area change event.
     *
     * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
     * than the threshold.
     * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
     * decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
     * callback is invoked. \n
     */
    /NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
    /**
    1jevent triggered when the mouse pointer is moved over or away from the component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer i7s hovered over the component.
     * The value <b>1</b>pmouse pointer is hovered over the component, and <b>0</b> indicates that
     * the mouse pointer is moved away from the compon/ent. \n
     */
    NODE_ON_HOVER,
    /**
    1jclick event.
     *
     * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
     * within the component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent}X object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_MOUSE,
    /**
    1jattach event.
     *
     * This event is triggered when the component is attached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompWonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_ATTACH,
    /**
    1jdetach event.
     *
     * This event is triggered when the component is detached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompXonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DETACH,

    /**
    1jaccessibility action event.
     *
     * This event is triggered when The accessibility operation type has been set and
     * corresponding operations have been carried out. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type，the union type is
     * {@link ArkUI_AccessibilityActionType} \n
     *
     */
    NODE_ON_ACCESSIBILITY_ACTIONS = 13,

    /**
     * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
     *
     * This event is triggered when a drag operation is about to start on a draggable item. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
     */
    NODE_ON_PRE_DRAG = 14,
    /**
     * @brief Called when the user starts to drag an ite
     *
     * A drag operation is recognized only when the dragged item is moved far enough. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_START = 15,
    /**
     * @brief Called when a dragged item enters the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_ENTER = 16,
    /**
     * @brief Called  when a dragged item moves in the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_MOVE = 17,
    /**
     * @brief Called when a dragged item leaves the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_LEAVE = 18,
    /**
     * @brief Called when a dragged item is dropped on the current component.
     * The component can obtain the drag data for processing through the callback.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DROP = 19,
    /**
     * @brief Called when a drag operation ends.
     * The drag source can obtain the drag result by registering this callback.
     *
     * A drag operation ends when the dragged item is released.
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     T* {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_END = 20,
    /**
    1jevent triggered when a key event occurs.
     *
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 14
     */
    NODE_ON_KEY_EVENT = 21,
    /**
    1jevent triggered before the input method responds to the key action.
     *
     * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
     * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
     * and no longer triggered.
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
   @  * @since 14
     */
    NODE_ON_KEY_PRE_IME = 22,
    /**
    1jevent triggered when the bound component receives a focus axis event after gaining focus.
     *
     * The event callback is triggered by interactions with a joystick and a focused component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 15
     */
    NODE_ON_FOCUS_AXIS = 23,

    /**
     * @brief Dispatch key event on the component node.
     *
     * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
     * children. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @sin=ce 15
     */
    NODE_DISPATCH_KEY_EVENT = 24,

    /**
    1jevent triggered when the bound component receives an axis event.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 17
     */
    NODE_ON_AXIS = 25,

    /**
    1jevent triggered when the bound component is clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}.  \n
     *
     * @since 18
     */
    NODE_ON_CLICK_EVENT = 26,

    /**
    1jevent triggered when the mouse pointer hovers over or moves away from a component.
     *
     * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     *
     *@since 17
     */
    NODE_ON_HOVER_EVENT = 27,

    /**
    j~
or the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
     *
     * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
     * less than the threshold. Before registering the callback, you must configure the threshold and update interval
     * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
     * a decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
     * when this callback is invoked. \n
     *
     * @sinceN 17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,

    /**
    1jhover event.
     * 
     * The event is triggered when the pointer is hovered by a pen device.
     * within the component. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputTEvent} object. \n
     * @since 15
    */
    NODE_ON_HOVER_MOVE = 29,

    /**
    1jsize change event.
     *
     * The event will be triggered when the component size changes.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. 
     * {@link ArkUI_NodeComponentEvent} contains four parameters:
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: the width of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: the height of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the width of the new rectangle.
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: the height of the new rectangle.
D     * @since 21
     */
    NODE_ON_SIZE_CHANGE = 30,

    /**
    1jcoasting axis event.
     *
     * The event is triggered when user swipes with two fingers on the touchpad, the system constructs
     * sliding events based on the speed at the moment the fingers are lifted, according to a certain
     * decay curve. You can listen for such events to handle the flick effect immediately after the
     * regular axis events. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object through {@link OH_ArkUI_NodeEvent_GetInputEvent}.
     * And the {@link ArkUI_CoastingAxisEvent} object can be obtained from the {@link ArkUI_UIInputEvent}
     * object through {@link OH_ArkUI_UIInputEvent_GetCoastingAxisEvent}. \n
     *
     * @since 22
 :    */
    NODE_ON_COASTING_AXIS_EVENT = 31,

    /**
    1jpre-touch test of sub component in touch events. Called to specify how to perform the touch test on the children of this component.
     * 
     * The event is triggered when the component is touched. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_TouchTestInfo} object. \n
     * @since 22
    */
    NODE(_ON_CHILD_TOUCH_TEST = 32,

    /**
    1jcrown event.
     * This event is triggered when the crown is rotated. \n
     * When the event callback occurs, the {@link ArkZUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \nu0*/
    NODE_ON_DIGITAL_CROWN = 33,

    /**
    1jevent is triggered when the <b>ARKUI_NODE_CUSTOM</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the f"rame scrolling, measured in px. \nu9*/
    NODE_ON_CUSTOM_OVERFLOW_SCROLL = 34,

    /**
    1jevent is triggered when the <b>ARKUI_NODE_STACK</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the fr!ame scrolling, measured in px. \nu8*/
    NODE_ON_STACK_OVERFLOW_SCROLL = 35,

    /**
    1jevent triggered when the component is focused and need to decide whether softkeyboard is needed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     *
     * @return Whether softkeyboard is needed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return valu]e indicates whether softkeyboard is needed.
     * <b>0</b>: not needed. <b>1</b>: needed. \nuNODE_ON_NEED_SOFTKEYBOARD = 36,

    /**
     * @brief This callback is invoked when the events and gestures on this node and
     * higher-priority nodes are collected. \n
     * This callback is used to intervene in the collection result of events and gestures. \n
     * 
     * When the event callback occurs, the {@link ArkUI_GestureCollectInterceptInfo} object can be obtaine4d from the
     * {@link ArkUI_NodeEvent} object. \n%"NODE_ON_GESTURE_COLLECT_INTERCEPT = 37,

    /**
     * @brief Triggers onDetectResultUpdate callback
     * when the text is set to TextDataDetectorConfig and recognized successfully.
     *
     * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
     * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
     * {@link ArkUI_StringAsyncEvent}.\n
     * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>：Indicates the result of text recognition, in Json format.\n
     *
     */
    NODE_TEXT_ON_DHETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    1jong press event for span.
     *
     * The event is triggered when the span is long pressed.
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputEvent} object. \n
     * @since 20?
     */
    NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,

    /**
    1jevent triggered when the text selection position changes.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} containIs two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: s1Ltext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
%!8NODE_TEXT_ON_TEXT_SELECTION_CHANGE = 1002,

    /**
    1jevent triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *%"'NODE_TEXT_ON_COPY = 1003,

    /**
    1jevent triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateYs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%",NODE_TEXT_ON_WILL_COPY = 1004,

    /**
    1jimage loading success event.
     *
     * This event is triggered when an image is successfully loaded or decoded. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b>p;image is
     * loaded successfully, and the value <b>1</b>pimage is decoded successfully. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width> \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: heightV \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered contentlon the
     * x-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to yon the
     * y-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
     */
    NODE_IMAGE_ON?_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
    1jimage loading failure event.
     *
     * This event is triggered when an error occurs during image loading. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
     * 401: The image could not be obtained because the image path is invalid. \n
     * 103101: The image format is not suppo6rted. \n
     */
    NODE_IMAGE_ON_ERROR,
    /**
    1jSVG animation playback completion event.
     *
     * This event is triggered when the animation playback in the loaded SVG image is complete. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_IMAGE_ON_SVG_PLAY_FINISH,
    /**
     * @brief Defines image download process event.
     *
     * This event is triggered when downloading webpage images from page components.\n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
     * <b>ArkUI_NodeComponentEvent.data[1].u32</gb>: the total number of bytes to download. \n
     */
    NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
    /**
    1jevent triggered when the toggle status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
     *
     */
P    NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    1jevent triggered when the text input content changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
     *
     */
    NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_/SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
    1jevent triggered when the Enter key of the text input method is pressed.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
:     *
     */
    NODE_TEXT_INPUT_ON_SUBMIT,
    /**
    1jevent triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</bL>: text that is cut.
     *
     */
    NODE_TEXT_INPUT_ON_CUT,
    /**
    1jevent triggered when the paste button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</bH>: allowed. \n
     *
     */
    NODE_TEXT_INPUT_ON_PASTE,
    /**
    1jevent triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} cOontains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: s1Ltext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
C     */
    NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,

    /**
    1jevent triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_INPUT_ON_EDIT_CHANGE,

    /**
      * @brief textInput This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter
      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[   0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *C
      */
    NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,

    /**
    1jevent triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,

    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizLtext in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \nl
     * the text in the content area. \n
     *
     */
    NODE_TEXT_INPUT_ON_CONTENT_SCROLL,

    /**
    1jevent triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEbvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,

    /**
    1jevent triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  5  NODE_TEXT_INPUT_ON_DID_INSERT = 7010,

    /**
    1jevent triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoedeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,

    /**
    1jevent triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_T-EXT_INPUT_ON_DID_DELETE = 7012,

    /**
    1jevent triggered when content (including preview text) changes in the <b>TextInput</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>A"rkUI_TextChangeEvent.number</b>: s1Lpreview text in the <b>TextInput</b> component.
     *
     * @since 15
     */
    NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,

    /**
    1jevent triggered before content changes
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of t`he preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: s1Lpreview text in the <b>TextInput</b> component.
     * 
     * @since 20
     */
    NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,

  
  /**
    1jevent triggered when the copy button on the pasteboard, which displays when text is
     * selected, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *%"-NODE_TEXT_INPUT_ON_COPY = 7015,

    /**
    1jevent triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateYs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"2NODE_TEXT_INPUT_ON_WILL_COPY = 7016,

    /**
    1jevent triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whTether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"1NODE_TEXT_INPUT_ON_WILL_CUT = 7017,

    /**
    1jevent triggered when the input in the text box changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
     *
     */
    NODE_TEXT_AREA_ON_CHANGE = MAX_N2ODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
    1jevent triggered when the paste button on the pasteboard, which displays when the text box is
     * long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</bG>: allowed. \n
     *
     */
    NODE_TEXT_AREA_ON_PASTE,
    /**
    1jevent triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} cOontains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: s1Ltext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
A     */
    NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
    /**
    1jevent triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontOtext in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \nk
     * the text in the content area. \n
     *
     */
    NODE_TEXT_AREA_ON_CONTENT_SCROLL,

    /**
    1jevent triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
 >    *
     */
    NODE_TEXT_AREA_ON_EDIT_CHANGE,

    /**
    1jevent triggered when the Enter key on the keyboard is pressed for the multi-line text box.
     *
     * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
     *
     */
    NODE_TEXT_AREA_ON_SUBMIT,

    /**
      * @brief textArea This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
      * {@link ArkUI_NodeComponentEvent}.\n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *
      */
    NODE_TEXT_AREA_%ON_CONTENT_SIZE_CHANGE,

    /**
    1jevent triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEavent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_INSERT = 8008,

    /**
    1jevent triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  4  NODE_TEXT_AREA_ON_DID_INSERT = 8009,

    /**
    1jevent triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoddeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_DELETE = 8010,

    /**
    1jevent triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_T,EXT_AREA_ON_DID_DELETE = 8011,

    /**
    1jevent triggered when content (including preview text) changes in the <b>TextArea</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: s1Lpreview text in the <b>TextArea</b> component.
     *
     * @since 15
     */
    NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,

    /**
    1jevent triggered before content changes.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of t_he preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: s1Lpreview text in the <b>TextArea</b> component.
     *
     * @since 20
     */
    NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,

    /**
    1jevent triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *%",NODE_TEXT_AREA_ON_COPY = 8014,

    /**
    1jevent triggered before copying text.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates wVhether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"1NODE_TEXT_AREA_ON_WILL_COPY = 8015,

    /**
    1jevent triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     *%"+NODE_TEXT_AREA_ON_CUT = 8016,

    /**
    1jevent triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whTether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"0NODE_TEXT_AREA_ON_WILL_CUT = 8017,

    /**
    1jevent triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
     */
    NODE_CHECKBOX_EVENT_ON_CHANGE = M6AX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
    1jevent triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
     */
    NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_6NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,

    /**
    1jevent triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
     */
    NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,

    /**
     * @brief De=j
event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     */
    NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,

    /**
     * @b6jevent triggered when an item is selected and scrolling has stopped in the
     * <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 14
     */
    NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,

  
  /**
    1jevent triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
     * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
     */
    NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_:NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,

    /**
    1jevent triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
     */
    NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_,SCOPE_NUM * ARKUI_NODE_SLIDER,

    /**
    1jevent|~an object is dragged or clicked by ARKUI_NODE_RADIO.
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
     * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
     */
    NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_+SCOPE_NUM * ARKUI_NODE_RADIO,

    /**
    1jevent|~animation starts to play.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
e    NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
    /**
    1jevent|~animation playback is paused.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
   @ */
    NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
    /**
    1jevent|~animation playback is repeated.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
 C   */
    NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
    /**
    1jeventwhen the animation playback returns to the initial state.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contain]s no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
    /**
    1jevent|~animation playback is complete or stopped.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:S\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
    
    /**
    1jcallback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
     * or checkbox changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * <b>ArkUI_StringAsyncEvent.pStr</b>
     * Name: The names of the selected checkboxes;
     * Status:
     * 0: All checkboxes are selected.
     * 1: Some checkboxes are selected.
     * 2: No checkboxes are selected. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief 定TextEditor组件中选区或光标位置发生变化时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含两个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：选区起始索引。
     * <br><b>ArkUI_NodeComponentEvent/.data[1].i32</b>：选区结束索引。
     *uNODE_TEXT_EDITOR_ON_SELECTION_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief 定义TextEditor组首次初始化完成时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类0型为{@link ArkUI_NodeComponentEvent}。
     *uNODE_TEXT_EDITOR_ON_READY,

    /**
     * @brief 定义TextEditor组件执行粘贴时触发的事件。
     * <br>系统会据回调函数返回值判断是否拦截组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>$0：不拦截。1：拦截。
     *uNODE_TEXT_EDITOR_ON_PASTE,

    /**
     * @brief 定义TextEditor组件编辑状态发生变化时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含一个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：组件的编辑态。
     *uNODE_TEXT_EDITOR_ON_EDITING_CHANGE,

    /**
     * @brief 定义TextEditor组件输入法的回车键被按下时触发的事。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}
     * <br>{@link ArkUI_NodeComponentEvent}包含一个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：>入法的回车键类型{@link ArkUI_EnterKeyType}。
     * uNODE_TEXT_EDITOR_ON_SUBMIT,

    /**
     * @brief 定义TextEditor组件执行剪切时触发的事件。
     * <br>系统会根据回调函数返回值判断是否拦截组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>0：不拦截。1：拦截。uNODE_TEXT_EDITOR_ON_CUT,

    /**
     * @brief 定义TextEditor组件执行复制时触发的事件。
     * <br>系统会根据回调函数返回值判断是否拦截组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>0不拦截。1：拦截。uNODE_TEXT_EDITOR_ON_COPY,

    /**
     * @brief 定义TextEditor组件在内容将要改变时触发的事件。
     * <br>任何导致文本内容发生变化的操作生效之前会触发该回调，开发者可根据回调事件中的信息决定是否拦截本次内容变更。
     * <br>当事件回调发生时，可以通过{@link OH_ArkUI_NodeEvent_GetTextEditorOnWi>llChangeEvent}从{@link ArkUI_NodeEvent}对象中获得
     *`e对象。
     * <br>使用cXXX系列接口可以从该对象中获取更多信息。
     * <br>系统会根据回调函数返回值判断当前内容是允许被更改。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示当前内容是否允许被更改。<b>0</b>：不允许更改。<b>1</b>：允许更改。
    uNODE_TEXT_EDITOR_ON_WILL_CHANGE,

    /**
     * @brief 定义TextEditor组件在内容改变时触发的事件。
     * <br>件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含四个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：文本变化前将被替换的文本范围的起始索引。
     * <br><b>ArkUI_NodeComponentEvent.data[1].i32</b>：文本变化前将要被换的文本范围的结束索引。
     * <br><b>ArkUI_NodeComponentEvent.data[2].i32</b>：文本变化后新增内容的本范围的起始索引。
     * <br><b>ArkUI_NodeComponentEvent.data[3].i32</b>：文本变化后新增内容的文本范的结束索引。
     *u-NODE_TEXT_EDITOR_ON_DID_CHANGE,

    /**
    1jevent triggered when the13ly displayed element of this
     * <b>ARKUI_NODE_SWIPER</b> instance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompoXnentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:13ly displayed element. \n
     */
    NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,

    /**
     * @bri8jevent triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@linkk ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:13ly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
     .* <b>ArkUI_NodeComponentEvent.data[2].f32</b>:Q-ly displayed element relative to the
     * s1Lwiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the i
     * of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
     *9/
    NODE_SWIPER_EVENT_ON_ANIMATION_START,

    /**
    1jevent triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link AgrkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:13Lly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:Q-ly displayed element relative to the
     * s1L[wiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_END,

    /**
    1jevent triggered on a frame-by-frame basis when the page is turned by a swipe in this
     * <b>ARKUI_NODE_SWIPER</b> instance.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0
].i32</b>:13Lly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:Q-ly displayed element relative to the
     * s1Lwiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,

    /**
     * @brief Define the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
     * Instruction: \n
     * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
     * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
     * 2, circular scenario, set prevMargin and nextMargin attributes, \n
     * so that Swiper front and back end display the same page, the interface does not take effect. \n
     * 3. During page sliding, the ContentDidScrollCallback callback is \n
     * triggered frame-by-frame for all pages in the window. \n
     * For example, when there are two pages in the window with subscripts 0 and 1, \n
     * callbacks with index values 0 and 1 are triggered twice per frame. \n
     * 4, set the swipeByGroup parameter of the displayCount property to \n
     * true if at least one page in the same group is in the window, \n
     * A callback is triggered for all pages in the group. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
     * which is consistent with the index change in the onChange event. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
     * the start position ?L)Swiper spindle (selectedIndex correspondsapage). \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis direction. \n
     */
    NOD3E_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,

    /**
    1jevent triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} conJtains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:13ly selected element. \n
     * 
     * @since 18
     */
    NODE_SWIPER_EVENT_ON_SELECTED = 1001005,

    /**
     * @brief De=j
event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
    Y * 
     * @since 18
     */
    NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,

    /**
    1jevent triggered when content in the swiper component will scroll.
     * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
     * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
     * slide forward(e.g. from index=0 to index=1). \n
     *
     * @since 15
     */
    NODE_SWIPER_EV3ENT_ON_CONTENT_WILL_SCROLL = 1001007,

    /**
    1j<b>ARKUI_NODE_SWIPER</b> scroll state change event.
     * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
     * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     *
     * @since 20
     */G
    NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,

    /**
    1jevent triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    1jevent triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is not triggered when the controller API is called. \n
     * 3. This event does not support the out-of-bounds bounce effect. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
     * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
     * needs to scroll based on the real-world situation and return the result in this parameter. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,

    /**
     * @brief Define the enumeration value of the pre sliding trigger event for the scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component.
     */
    NODE_SCROLL_EVENT_ON_WILL_SCROLL,
    /**
     * @brief Define the event enumeration value triggered when sliding a scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     parameter type is {@linkR ArkUI_ScrollState}. \n
     */
    NODE_SCROLL_EVENT_ON_DID_SCROLL,

    /**
    1jevent triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
     * and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_START,
    /**
    1jevent triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
 1   NODE_SCROLL_EVENT_ON_SCROLL_STOP,
    /**
    1jevent triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
     * one of the edges.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
     * component or other input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
    /**
     * @brief Define thatF a callback is triggered when the scrolling container component reacheqZ.
     * Condition for triggering the event: \n
     * Triggered when the component reacheq. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_START,
    /**
     * @brief Define that a callback is triggered when the scrolling container component ends. \n
     * Condition for triggering the event: \n
     * Triggered when the component reaches the end. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeCompone\ntEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_END,
    /**
    1jcallback for when the user is about to release the drag on the scrollable container component.
     *
     * This event is triggered when the user is about to release the drag on the scrollable container component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releasesn the drag, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
    /**
    1jcallback for the <b>Scroll</b> component's zoom event,
     * triggered at the end of each frame during zooming. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current ^zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_DID_ZOOM,
    /**
    1jcallback for the <b>Scroll</b> component's zoom start event,
     * triggered when zooming begins. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_START,
    /**
    1jcallback for the <b>Scroll</b> component's zoom end event,
     * triggered when zooming ends. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_STOP,
    /**
    1jcallback for when the scrollable will start dragging.
     *
     * This event is triggered when the scrollable will start dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROL6L_EVENT_ON_WILL_START_DRAGGING = 1002013,
    /**
    1jcallback for when the scrollable did end dragging.
     *
     * This event is triggered when the scrollable did end dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether start fling animation. \n
     *
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_DRAGGING = 1002014,
    /**
    1jcallback for when the scrollable will start fling.
     *
     * This event is triggered when the scrollable will start fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVEN-T_ON_WILL_START_FLING = 1002015,
    /**
    1jcallback for when the scrollable did end fling.
     *
     * This event is triggered when the scrollable did end fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_D%ID_STOP_FLING = 1002016,
    /**
    1jenumerated values of the event triggered, \n
     * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
     * Condition for triggering the event: \n
     * This method is triggered once during list initialization. \n
     * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
     * the first child component in the region. \n
     * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
     * the last child component in the region. \n
     * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
     * the subcomponent in the middle of the area. \n
     */
    NODE_LIST_ON_SCROLL_INDEX =3 MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
    1jenumerated values of the event triggered
     * before the sliding of the ARKUI_NODE_LIST component. \n
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_LIST_ON_WILL_SCROLL,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_LIST component is flicked.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32N: Current sliding state. \n
     */
    NODE_LIST_ON_DID_SCROLL,

    /**
    1jevent triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the list is initialized and when the index of the first child component or the
     * next child component in the list display area changes.
     * During index calculation, the list item, header of the list item group, and footer of the list item group each
     * are counted as a child component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains six parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
     * in the list item group.
     * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
     * list item group.
     * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
     *
     * @since 15
     */
    NODE_L3IST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,

    /**
    1jevent triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
     */
   R NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    1jevent triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeaComponentEvent} does not contain parameters:\n
     */
    NODE_REFRESH_ON_REFRESH,

    /**
    1jevent that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
     */1
    NODE_REFRESH_ON_OFFSET_CHANGE,

    /**
    1jevent triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
     * input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling.
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_WATER_FLOW_ON_DID_SCROLL,
    /**
     * @brief ;jenumerated values of the event triggered,
     * when the subcomponent of the start position or end position displayed in the current waterfall changes.
     * Condition for triggering the event: \n
     * This event is triggered when the index value of the \n
     * first or last subcomponent in the waterfall display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
     * start posi:Lcurrently displayed WaterFlow. \n
     * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
     * the end position ofa the currently displayed waterfall. \n
     */
    NODE_WATER_FLOW_ON_SCROLL_INDEX,

    /**
    1jevent triggered when a child component enters or leaves the grid display area.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the grid is initialized and when the index of the first or \n
     * last child component in the grid display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the grid display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the grid display area. \n
     *
     * @since 22
   X  */
    NODE_GRID_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
    1jevent triggered when the grid is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: scroll source. The6 parameter type is {@link ArkUI_ScrollSource}. \n
    Pone or no number to indicate the actual amount by which the scroll component scrolls.
     *
     * @since 22
     */
    NODE_,GRID_ON_WILL_SCROLL = 1013001,

    /**
    1jevent triggered when the grid scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
     *
     H* @since 22
     */
    NODE_GRID_ON_DID_SCROLL = 1013002,

    /**
    1jevent triggered at the end of each frame layout of the <b>ARKUI_NODE_GRID</b> component,
     * which is used to set the position and length of the scrollbar.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.i32 at index 0:offset of the first visible grid item,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: offset of the first visible item relative to the grid's display starting position, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * @return Information about the scrollbar position and length. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.f32 at index 0: total offset of the grid content relative to the display area, in px. \n
     * value.f32 at index 1: total length of the grid content, in px. \n
     *U
     * @since 22
     */
    NODE_GRID_ON_SCROLL_BAR_UPDATE = 1013003,

    /**
    1j<b>Grid</b> component's child drag start event.
     *
     * This event is triggered under the following scenarios: \n
     * 1. <b>NODE_GRID_EDIT_MODE</b> is set to <b>1</b>. \n
     * 2. The user long-presses and drags a <b>Grid</b> child component with sufficient displacement. \n
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32 at index 0: x-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: y-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32 at index 2: index of the dragged child component in the <b>Grid</b> component,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     *
     * @return Whether the drag operation is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether dragging is allowed.
     * <b>0</b>: not allowed. <nb>1</b>: allowed. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_START = 1013004,

    /**
    1jevent triggered when a dragged child component enters this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> enters the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_ENTER = 1013005,

    /**
    1jevent triggered when a dragged child component moves within this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> moves within the current
     * <b>Grid</b> component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp.    \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged childP'rrent <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_MOVE = 1013006,

    /**
    1jevent triggered when a dragged child component leaves this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> leaves the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_LEAVE = 1013007,

    /**
    1jevent triggered when a dragged child component is released.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> is released. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_>NodeComponentEvent.data[3].i32</b>: index of the dragged childP'rrent <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: whether the dragged child component is successfully released. \n
     * <b>1</b>: The component is released within the <b>Grid</b> component's area.
     * <b>0</b>: The component is released outside the <b>Grid</b> component's area. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DROP = 1013008,

    /**
    1jselected state change event of the <b>GridItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,
    /**
     2jevent triggered when an item is selected in the <b>ARKUI_NODE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 23
     */
    NODE_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
     /**
     1jevent triggered when an item is selected and scrolling has stopped in the
      * <b>ARKUI_NODE_PICKER</b> component.
      *
      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
      * {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
      *
      * @since 23
      */
    NODE_PICKER_EVENT_ON_SCROLL_STOP = 1018001,
} ArkUI_NodeEventType`)ommon structure type of a component eventA0NodeEvent ArkUI_NodeEvent,ype of a component event.
 *
 * @param eventtthe componentNtyp bevent.
 * @since 12
 */
ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* eventa1custom ID of a component event.
 *
 * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
 * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
 *
 * @pa	ram eventtthe componentN.custom ID of the component event.
 * @since 12,NodeEvent_GetTargetId(ArkUI_NodeEvent* eventa1Dcomponent object that triggers a component event.
 *
 * @param eventtthe componentNcomponent object that triggers the component event.
 * @since 12
 */
ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* eventa1Uinput event (for example, touch event) data for a component event.
 *
 * @param eventtthe componentNninput event data.
 * @since 12
 */
ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* eventa17numerical data in a component event.
 *
 * @param eventtthe componentNnumerical data.
 * @since 12
 */
ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);

/f15string data in a component event.
 * 
 * @param eventtthe componentNPdataMringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* eventa15ArkUI_TextChangeEvent data from a component event.
 *h$a component event. It cannot be nullA`TextChangeEventQZ15
 */
ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* eventa1custom data in a component event.
 *
 * This parameter is passed in {@link registerNodeEvent} and can be applied to the service9 logic when the event
 * is triggered.
 *
 * @param eventtthe componentNYcustom data.
 * @since 12
 */
void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* eventa1?numeric-type parameter of a component event.
 *
 * @param eventtthe component event.
 * @param index Indicates the index of the return value.
 * @param value Indicates the return value.
 * @r1errorYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limitQp-
NODE_EVENT1<the data does not exist in the component event.
 * @since 12QNodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValueZ1%string-type parameter of a component event. The string data is valid only during an event
 * callback. To use it outside an eveHnt callback, you are advised to copy the string data.
 *
 * @param eventt^the component event.
 * @param index Indicates the index of the return value.
 * @param stringtP%array.
 * @param stringSize IndicateserrorYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limitQp-
NODE_EVENT1<the data does not exist in the component event.
 * @since 12bNodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize_6return value for a component event.
 *
 * @param eventtthe component event.
 * @param value Indicates the numeric-type array.
 * @param size Indicates the array length.
 * @return ReP`
errorKNODE_EVENT_NO_RETURN} if the component event does not support return valuesQp-
NODE_EVENT18data does not exist in the component event.
 * @since 12(NodeEvent_SetReturnNumberValue(ArkUI_NodiNumberValue* value, int32_t siz`1Ma <b>ArkUI_TouchTestInfo</b> object from the specified <b>ArkUI_NodeEvent</b>{pointer} nodeEventt`~	NodeEvento$_~ouchTestInfo</b> objectQpM<b>null</b> if the parameter passed in is invalid or is not a touch test infosTouchTestInfo* OH_ArkUI_NodeEvent_GetTouchTestInfo(ArkUI_NodeEvent* nodeEvent);

/**
 * @brief 获取组件事件中的TextEditor组件文本内容变化数据。
 *
 * @param event 指向{@link ArkUI_NodeEvent}组件事件对象的指针。
 * @return 向p`e数据对象的指针。
 *     <br>若传入的参数无效或并非TextEditor组件文本内容变化事件信息，则返回<b>null</b>。acJ* OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent(ArkUI_NodeEvent* event_4dirty area flag passed in the <b>::markDirty</b> APIA0!@brief Remeasure.
     *
     * When this type of flag is specified, re-layout is triggered by default.
     */
    NODE_NEED_MEASURE = 1,

    /** Re-layout. */
    NODE_NEED_LAYOUT,
    /** Re-rendering. */
    NODE_NEED_RENDER,
} ArkUI_NodeDirtyFlag;
bcomponent event typeA0! Measure type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
    /** Layout type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
    /**
     * Draw front type.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind tnype.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} ArkUI_NodeCustomEventType`-general structure of a custom component eventA0%NodeCustomEvent ArkUI_NodeCustomEvent`Uomponent adapter, which is used for lazy loading of elements of scrollable componentsA0$NodeAdapter* ArkUI_NodeAdapterHandle`omponent adapter eventA0[NodeAdapterEvent ArkUI_NodeAdapterEvent;

/**
 * @brief Enumerates component adapter eventsA0! This event occurs when the component is attached to the adapter. */
    NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
    /** This event occurs when the component is detached from the adapter. */
    NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
    /** This event occurs when the adapter obtains the unique ID of the new element to add. */
    NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
    /** This event occurs when the adapter obtains the content of the new element to add. */
    NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
    /** This event occurs when the adapter removes an element. */
    NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
} ArkUI_NodeAdapterEventType;

/**
* @brief Creates a component adapter.
*
* @since 12
*/
ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();

/**
* @brief Destroys a component adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);

/**
* @brief Sets the total number ofk elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @param sizeAu
elements.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);

/**
* @brief Obt	mtotal number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
total number of elements in the adapter.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);

/**
an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @param userData Indicates custom@ data.
* @param receiver Indicates the event receiver callback.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));

/**
* @brief Deregisters an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload all elements.
*
* @param handle Indicates the target component adapter.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition IndicatWn}&elements to reload.
* @param itemCountAuthe elements to reload.
* 2error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to remove certain elements.
*
* @param handle Indicates the target componen!t adapter.
* @param startPositionOn}&elements to remove.
* @param itemCountAuthe elements to remove.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RemoveItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to insert certain elements.
*
* @param handle Indicates the target componen!t adapter.
* @param startPositionOn}&elements to insert.
* @param itemCountAuthe elements to insert.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_InsertItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to move certain elements.
*
* @param handle Indicates the target component adapter.
* @param fromOn}Selements to move.
* @param to  Indicates the end position of the elements to move.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);

/**
* @briefE Obtains all elements stored in the specified adapter.
*
* This API rarray of the elements. You need to manually release the memory data
* to which the pointer points.
*
* @param handle Indicates ,the target component adapter.
* @param itemst7the array of the elements in the adapter.
* @param sizeAu
elements.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* siz	e);

/**
custom data passed in during registration of the specified event.
*
* @param event Indicates the target adapter event.
* @sinceX 12
*/
void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);

/**
Aevent type.
*
* @param event Indicates the target adapter event.
event type.
* @since 12
*/
ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);

/**
* jelement to be removed for the event to be destroyed.
*
* @param event Indicates the target adapter event.
element to be removed.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);

/**
index of the element to be operated for the specified adapter event.
*
* @param event Indicates the target adapter event.
* @reindex of the element.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);

/**
* @brocrollable container node that uses the specified adapter.
*
* @param event Indicates the target adapter event.
scrollable container node that uses the specified adapter.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Sets the component to be added to the specified adapter.
*
* @param event IndicRates the target adapter event.
* @param node Indicates the component to be added.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);

/**
* @brief Sets the component ID to be generated.
*
* @param event Indicates the target adapter event.
* @param id Indicates the component ID to set.
error code.
lT1Iq* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);

/**
 * @brief Declares a collection of native node APIs provided by ArkUI.
 *
 * The APIs related to the native node must be called in the main thread.
 *
 * @version 1!j{
    /**
     * @brief Struct version.
     *
     * @since 12
     */
    int32_t version;

    /**
    /component based on {@link ArkUI_NodeType} and r\created component.
     *
     * @param type Indicates the type of component to create.
    Pcreated component. If the component fails to be created, NULL is returned.
     * @since 12
     */
    ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);

    /**
     * @brief Destroys the component to which the specified pointer points.
     *
     * @param nodet.
     * @since 12
     */
    void (*disposeNode)(ArkUI_NodeHandle node);

    /**
     * @brief Adds a component to a parent !node.
     *
     * @param parentt$the parent node.
     * @param childtthe child node.
    Perror code.
    lV   0Jq   l+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on
     *             BuilderNode generated nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    l-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Removes a component from its parent node.
     *
     * @param parentt$the parent node.
     * @param childtthe child node.
    Perror code.
    lV   0Jq   l+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     * on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Inserts a component to a parent node after the speci5fied <b>sibling</b> node.
     *
     * @param parentt$the parent node.
     * @param childt%the child node.
     * @param siblingtthe sibling node after which the target node is to be inserted.
     * If the value is null, the node is inserted at the start of the parent node.
    Perror code.
    lV   0Jq   l+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    l-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component tUo a parent node before the specified <b>sibling</b> node.
     *
     * @param parentt$the parent node.
     * @param childt%the child node.
     * @param siblingtthe sibling node before which the target node is to be inserted.
     * If the value is null, the node is inserted at the end of the parent node.
    Perror code.
    lV   0Jq   l+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    l-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component Gto the specified position in a parent node.
     *
     * @param parentt$the parent node.
     * @param childtthe child node.
     * @param position Indicates the position to which the target child node is to be inserted. If the value is^ a
     * negative number or invalid, the node is inserted at the end of the parent node.
    Perror code.
    lV   0Jq   l+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    l-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildUAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);

    /**
    attribute of a node.
     *
     * @param node Indicates the node whose attribute needs to be set.
     * @param attribute Indi[cates the type of attribute to set.
     * @param value Indicates the attribute value.
    Perror code.
    lV   0Jq   l+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * l(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);

    /**
     * @brief Obtains an attribute.
     *
     * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
     * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
     * time. Otherwise, the pointer may be overwritten by other values.
     * @param node Indicates the node whose afttribute needs to be obtained.
     * @param attribute Indicates the type of attribute to obtain.
    Pattribute value. If the operation fails, a null pointer is returned.
     * @since 12
     */
    const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
     * @brief Resets an attribute.
     *
     * @param node Indicates the node whose attribute needs to be reset.
     * @param attribute Indicates the type of attribute to reset.
    Perror code.
    lV   0Jq   l+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * l(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*resUetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
    an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
     * when the event is triggered.
    eIndicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
    Perror code.
    lV   0Jq   l+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * l(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
        int32_t targetId, void* userData);

    /**
     * @brief Unregisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);

    /**
    an event receiver.
     *
     * The ArkUI framework collects component events generated during the process and calls back the events through
     * the registered event receiver. \n
     * A new call to this API will overwrite the previously registered event receiver. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
     * callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Unregisters the event receiver.
     *
     * @since 12
     */
    void (*unregisterNodeEventReceiver)();

    /**
     * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
     *
     * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
     * measuring, layout, or rendering again. In this case, you do not need to call this API.
     * @param node Indicates the node for which you want to mark as dirty area.
     * @param dirtyFlag Indicates type of dirty area.
     * @since 12
     */
    void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);

   	 /**
    anumber of subnodes.
     *
     * @param node Indicates the target node.
     * @return the number of subnodes. If not, returns 0.
     * @since 12
     */
    uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains a subnode.
     *
     * @param node Indicates the target node.
     * @param position Indicates the position of the subnode.
     * @rPsubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getChildAt)(ArkUI2_NodeHandle node, int32_t position);

    /**
    aHfirst subnode.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getFirstChild)(Ar#kUI_NodeHandle node);

    /**
    aGlast subnode.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getLastChild)(Ark"UI_NodeHandle node);

    /**
    aPprevious sibling node.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getPreviousSiblin(g)(ArkUI_NodeHandle node);

    /**
    aLnext sibling node.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getNextSibling)(A$rkUI_NodeHandle node);

    /**
    a custom event for a node. When the event is triggered, the value is returned through the entry
     * point function registered by <b>registerNodeCustomEventReceiver</b>.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@Dlink ArkUI_NodeCustomEvent}
     * when the event is triggered.
    Indicates the custom event parameter, which is passed in the callback of
     * {@link ArkUI_NodeCustomEvent} when the event is triggered.
    Perror code.
    lV   0Jq   l+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * @since 12
     */
    int32_t (*registerNodeCustomEvent)(
        ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);

    /**
     * @brief Unregisters a custom event for a node.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*uncregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);

    /**
    a unified entry point function for custom node event callbacks.
     *
     * The ArkUI framework collects custom component events generated during the process and calls back the events
     * through the registered <b>registerNodeCustomEventReceiver</b>. \n
     * A new call to this API will overwrite the previously registered event receiver.
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Unregisters the unified entry point function for custom node event cagllbacks.
     *
     * @since 12
     */
    void (*unregisterNodeCustomEventReceiver)();

    /**
    width and height for a component after the measurement.
     *
     * @param node Indicates the target node.
     * @param widtFh Indicates the width.
     * @param height Indicates the height.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);

    /**
     * @position for a component.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordina<te.
     * @param positionY Indicates the Y coordinate.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
    ahfand height of a component after measurement.
     *
     * @param node Indicates the target node.
    Pwidth and height of the component.
     * @since 12
     */
    ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);

    /**
    aoposition of a component after the layout is complete.
     *
     * @param node Indicates the target node.
    Pposition of the component.
     * @since 12
     */
    ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);

    /**
     * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
     *
     e* @param node Indicates the target node.
     * @param Constraint Indicates the size constraint.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);

    /**
     * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
     * @returnPerror code.
    lV   0Jq    * @since 12
     */
    int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
     * @brief Adds a component eventto a component to receive component events generated
     * by the component.
     *
     * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
     * receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the event callback function.
  7   * @param eventReceiver Indicates the component eventto add.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
    ]registered component eventrom a component.
     *
     * @param node Indicates the component from which you want to remove the event callback function.
 8    * @param eventReceiver Indicates the component eventto remove.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* ev1ent));

    /**
     * @brief Adds a custom eventto a component to receive custom events
     * (such as layout and drawing events) generated by the component.
     *
     * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
     * multiple event receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeCustomEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for whnich you want to add the custom event callback function.
     * @param eventReceiver Indicates the custom eventto add.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomHEvent* event));

    /**
     * @brief Removes a registered custom eventrom a component.
     *
     * @param node Indicates the component from which you want to remove the custom event callback func<tion.
     * @param eventReceiver Indicates the custom eventto remove.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
        void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Saves custom data on the specified component.
     *
     * @param node Indic?ates the component on which the custom data will be saved.
    +Indicates the custom data to be saved.
    Perror code.
    lV   0Jqh    * @since 12
     */
    int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);

    /**
    alcustom data saved on the specified component.
     *
     * @param node Indicates the target component.
    Pdcustom data.
     * @since 12
     */
    void* (*getUserData)(ArkUI_NodeHandle node);

    /**
    unit for a component.
     *
     * @param node Indicates the component for which you want to set the unit.
     * @param unit Indicates the unit, which(\LengthMetricUnit}.
     * The default value is <b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
    Perror code.
    lV   0Jq    * @since 12
     */
    int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);

    /**
      S* @brief Get the parent node.
      *
      * @param node target node object.
     Pf not return NULL
      * @since 12
      */
    ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);

    /**
    * @brief Undinstall all child nodes from the parent component.
    *
    * @param parent target node object.
   Perror code.
   lV  0Jqo   * @since 12
    */
    int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
} ArkUI_NativeNodeAPI_1;

/**
Qize constraint for measurement through a custom component event.
*
* @param eventtthe custom component event.
size constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);

/**
expected position of a component relative to its parent component in the layout phase through a
* custom component event.
*
* @param eventtthe custom component event.
expected position relative to the parent component.
* @since 12
*/
ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout%(ArkUI_NodeCustomEvent* event);

/**
Bdrawing context through a custom component event.
*
* @param eventtthe custom component event.
drawing context.
* @since 12
*/
ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);

/**
0ID of a custom component event.
*
* @param eventtthe custom component event.
ID of the custom component event.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* eventc);

/**
* @brief Obtains custom event parameters through a custom component event.
*
* @param eventtthe custom component event.
custom event parameters.
* @since 12
*/
void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);

/**
* @briefN Obtains a component object through a custom component event.
*
* @param eventtthe custom component event.
component object.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);

/**
* =event type through a custom component event.
*
* @param eventtthe custom component event.
type of the custom component event.
* @since 12
*/
ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);

/**
[measurement information of a custom span through a custom component event.
*
* @param eventt`the custom component event.
* @param info Indicates the measurement information to be obtained.
#lT1Iq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);

/**
* @brdief Sets the measurement metrics of a custom span through a custom component event.
*
* @param eventtWthe custom component event.
* @param metrics Indicates the measurement metrics to set.
#lT1Iq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_AKrkUI_NodeCustomEvent_SetCustomSpanMetrics(
    ArkUI_NodeCustomEvent* event metrics);

/**
Bf a custom span through a custom component event.
*
* @param eventt7the custom component event.
* @param info Indicates theto obtain.
#lT1Iq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ALrkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
    ArkUI_NodeCustomEvent* event info_node content event type.
 * ! Defines the attach event. */
    NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
    /** Defines the detach event. */
    NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
} ArkUI_NodeContentEventType;

/**
 * @brief Enumerates the inspector error codes.
 * @since 15!#@error Success.
     */
    ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
    /**
     * @error Invalid parameter.
     */
    LARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
} ArkUI_InspectorErrorCode`*general structure of a node content event.''NodeContentEvent ArkUI_NodeContentEvent`Wof a node content event.[void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);

/**
 * @brief register a'to a node content.
 *
 * @param contentt6the node content instance.
 * @param callback IndicatePA`error2`NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callbacka10type of a node content event.
 *
 * @param eventtthe node contentNtype of the node content event.
 * @since 12
 */
ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* eventa1Jnode content object that triggers a node content event.
 *
 * @param eventtthe node contentNnode content object that triggers the node content event.
 * @since 12
 */
ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_Ge-tNodeContentHandle(ArkUI_NodeContentEvent* evaves custom data on the specified node content.
 *
 * @param content Indicates the node content on which the custom data will be saved$ Indicates the custom data to be saverror2GNodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userDataa1dcustom data saved on the specified node content.
 *
 * @param content Indicates the target node contQcustom data.
 * @since 12
 */
void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);

/**
 * @brief Add a nod)e to a node content.
 *
 * @param contentt)the node content instance.
 * @param nodetthe nodeEerrorq\$UNODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);

/**
 * @brief remove a node from a node content.
 *
 * @param contentt)the node content instance.
 * @param nodetthe nodeEerror2NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);

/**
 * @brief insert a node into a node conten+t at a given position.
 *
 * @param contentt)the node content instance.
 * @param nodetIthe node
 * @param position Indicates the position for inserting the nodeEerrorq\$UNODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position/zsiz layout area.
 * The layout area size does not include graphic variation attributes such as scaling.
 *
 * @param node ArkUI_Nod4eHandle pointer.
 * @param size The drawing area siz handle error2ANodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* siz`1 the position of the component layout area relative to the parent component.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param localOffset The offset valu handle relative to the parent*error2ONodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffseta1 the position of the component layout area relative to the window.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param globalOffset The offset valu handle relative to the window error2XNodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffseta1 the position of the component layout area relative to the screen.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param screenOffset The offset valu handle relative to the screen error2XNodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffseta1offset of a component relative to the global display.
 * The relative position does not count in transformation attributes, suc!h as translate.
 *
 * @param nodeaNodeHandle</b> representing the component.
 * @param offset Offset of the component relative to the global display, in px.
 * @	rF#`*Fq|0YNodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offseta1 the positionwindow, including the properties of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translat"eOffset The cumulative offset valu 7handle itself,
 * parent components, and ancestor nodes error2bNodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffseta1 the position of the component on the screen, including the attributes of graphic translation changes.
 *
 * @param node ArkUI_HNodeHandle pointer.
 * @param translateOffset The cumulative offset valu 7handle itself,
 * parent components, and ancestor nodes error2NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/**
 * @brief Add the custom property of the component. This interface only works on the main thread.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property. Passing null pointers is not allowed.
 * @param value The value of the custom propert5y. Passing null pointers is not allowed.
 * @since 13
NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);

/**
 * @brief Remove the custom property of the component.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property.
 * @since 13

FNodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name/zvalue of the custom property of the component.
 *
 * @param node ArkUI-NodeHandle pointer.
 * @param name The name of the custom attribute.
 * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
 * @return Error code.
 *    A'success.
 *    A[i$ZNodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty*q`Get the parent node to obtain the component nodes created by ArkTs.
 *
 * @param node Target nod the pointer of the componentNNodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);

/**
 * @brief Retrieve all active child nodes of a node. Span will not be counted in the children.
 *
 * @param head Pass in the node that needs to be obtained.
 * @param handle Tfhe structure corresponding to the sub node information of the head node.
 * @return Error code.
 *    A'success.
 *    A[i$PNodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo*qHRetrieve the root node of the current page.
 *
 * @param node Target nod the pointer of the componentNNodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);

/**
 * @brief Retrieve whether the component is l-abeled by C-API.
 *
 * @param node Target nod whether the node is a Tag created by C-API,
 *         true represents created by C-API, false represents not created by C-APIO.
 * @since 14
 */
bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node/z*type of node.
 *
 * @param node Target nod the type of the node.
 *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
 * @+NodeUtils_GetNodeType(ArkUI_NodeHandle node/zKinfo of the window to which the node belongs.
 *
 * @param node Target nodeCninfo Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
 * @return Error code.
 *    A'success.
 *    A[i.
 *    A:DE_NOT_ON_MAIN_TREE} The node is not mounted.
 * @since 15JNodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info 33FrameNode's first child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index The index of th(e subnode.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15PNodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* indexa123FrameNode's last child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index the index of the' subnode.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15ONodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* indexa1a subnode by position with the expand mode.
 *
 * @param node Indicates the target node.
 * @param position Indicates the position of the subnode.
 * @param subnode The pointer to the subnode.
 * @param expandMode Indicates the expand mode. {@link ArkUI_*ExpandMode}.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
    ArkUI_NodeHandle* subnode, uint32_t expandMode);
llapse the ListItem in its expanded state.
 *
 * @param node Node objects that need to be registered for events.
 * @param user Custom event parameters are carried back in the callback parameter when the event is triggered.
 * @param onFinish The callbacXk triggered after the completion of the folding animation.
 * @return Error code.
 *    A'Success.
 *    A[i.
 *    AYATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
 * @since 12List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));

/**
* @brief Obtain the UIContext pointer to the page where the node is located.
*
* @param node The node.
* @return The UIContext pointer.
*         If a null pointer is returned, it may be because the node is empty.
* @since 12
*/
ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);

/**
* @brief The event called when the system color mode changes.
*        Only one system color change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the `custom data to be saved.
* @param onColorModeChange Callback Events.
* @return Error code.
*    A'Success.
*    A[i.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));

/**
* @brief Unregister the event callback when the system color mode changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);

/**
* @brief The event called when the system font style changes.
*        Only one system font change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the cus]tom data to be saved.
* @param onFontStyleChange Callback Events.
* @return Error code.
*    A'Success.
*    A[i.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));

/**
* @brief Unregister the event callback when the system font style changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);

/**
 * @brief Retrieve the font size value for system font change events.
 *
 * @param event Indicates a pointer to the current system font change event.
 * @return Updated system font size scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);

/**
 * @brief Retrieve the font thickness values for system font change events.
 *
 * @param event Indicates a pointer to the current system font1 change event.
 * @return The updated system font. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event/znode handle by id.
 *
 * @param id The id of the target node handle.
 * @param node The handle of target node handle.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);

/**
 * @brief Move the node handle to target parent node as child.
 *
 * @param node The node handle of the node to move.
 * @param target_parent The node handle of target parent.
 * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
 *       X       node is moved to the end of the target parent node.
 * @return Error code.
 *    A'success.
 *    A[i.
 *    A/CAPI_INIT_ERROR} if the CAPI init error.
 *    ASDE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 18NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);

/**
 * @brief Triggers node updates in the current frame.
 * When node attributes are modified after the current frame's build phase,
 * the node updates will be deferred to the next
 * frame. This function forces immediate node updates within the current frame to
 * ensure rendering effectse are applied synchronously.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 217NativeModule_InvalidateAttributes(ArkUI_NodeHandle nodethe cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-languKage option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15YNodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option}ross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-language oFption {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *    A'success.
 *    A[i.
 * @since 15\NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
Ya callback for node when layout is completed.
 *
 * @param node Indicates the target node Indicates the custom data used in onLayoutCompleted callback function.
 * @param onLayoutCompleted Indicates the function when; layout completed is callback.
 * @return error code
 *    A(`*Fis incorrect.
 * @since 15RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onLayoutCompleted)(void* userData));


/**Wa callback for node when draw is completed.
 *
 * @param node Indicates the target node Indicates the custom data used in onDrawCompleted callback function.
 * @param onDrawCompleted Indicates the function when dra5w completed is callback.
 * @return error code
 *    A(`*Fis incorrect.
 * @since 15RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onDrawCompleted)(void* userData));
    
/**
 * @brief Unregisters the layout completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *    A(`*Fis incorrect.
 * @since 15registerLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);

/**
 * @brief Unregisters the draw completed callback for node.
 *
F * @param node Indicates the target node.
 * @return error code
 *    A(`*Fis incorrect.
 * @since 156registerDrawCallbackOnNodeHandle(ArkUI_NodeHandle node/zsnapshot pixelmap for the given node synchronously, will get error if the node is not on the
 * tree or is not rendered yet.
 * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
 *
 * @param node Indicates the target node.
 * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
 * @p`5ixelmap pointer created by system, it's the out resul֓q\&GTERNAL_ERROR} if the snapshot taking failed will null pixelmap returnedQp-OCOMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
 * @since 15
 */ a snapshot of a given component. If the node is not in the component tree or has not been rendered,
 * the snapshot operation will fail. When the <b>Pixelmap0Qt should be released
 * by calling {@link OH_PixelmapNative_Release}.
 *
 * @param node Target node.
 * @param snapshotOptions Snapshot settings. If the value is null, the default settings are used.
 *         Snapshot settings include scaling, color space, and dynamic range configuration.
 *         Scaling: floating-point value greater than 0.
 *         Color space: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b> (DISPLAY_BT2020_SRGB).
 *         Dynamic range: {@link ArkUI_DynamicRangeMode}.
 * @p`<b>Pixelmap0 by the system.
 * @return RqF#`*Fq\&=TERNAL_ERROR} if the snapshot fails, returning a null pointerQp-?COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot operation times outQp-COMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED} if the provided color space or
 *         dynamic range mode is not supported.
 *       \p"COMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED} if the isAuto parameter of the color
 *         space or dynamic range mode is set to tr,ue for offscreen node snapshot.
 * @since 23RGetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
   De 
/**
 * @brief Query the size limitation of the component snapshot.
 *
 * @param maxWidth Maximum width limit of the component Rsnapshot, in px.
 * @param maxHeight Maximum height limit of the component snapshoError code.
 *    A'Success.
 *    AInvalid function parameterCGetNodeSnapshotSizeLimitation(int32_t* maxWidth, int32_t* maxHeighta1offset of a specific node relative to its parent node.
 *
 * @param node Target node.
 * @param globalOffset Offset of the targ#et node relative to its parent node4|15NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);

/**
 * @brief Adds the UI state style supported by the component. To handle states change efficiently, need to specify the
 * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
 *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
 * times on the same node, the last set of states and handler will take precedence.
 *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
 * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
 * components, the default style effect will be applied first, followed by the custom style changes, resulting in
 * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
 * by the system implementation.
 *  - And when this API is called, the provided handler function will be executed immediately.
 *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
 * the system will automatically notify your application when the state changes back to NORMAL.
 *
 * @param node Target node.
 * @param uiStates Target UI states to be handled on the node.
 *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
 *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
 * @param statesChangeHandler Handler for UI state changes.
 *        It rturns the current UI status. The value is the result of combining all current state enum values using the
 *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
 *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
 *        However, for checking the normal state, use the equality operator directly.
 *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)</b>.
 * @param excludeInner Whether to disable the default state styles< Custom data used in the <b>statesChangeHandler</b> callbackuœq|0<AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
    void (statesChangeHandler)(int32_t currentStates, void* userD'ata), bool excludeInner, void* userDataregistered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
 * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
 * 
 * @param node Target node.
 * @param uiStates Target UI states to be remov/|0<RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates);

/**
 * @brief Run a custom function inside the UIContext scope.
 *
 * @param uiContexttUI instancet7the custom data.
 * @param callback The custom functionu'CAPI_INIT_ERROR} if the CAPI init errorQp-/UI_CONTEXT_INVALID} if the uiContext is invalidQp-CALLBACK_INVALID} ifQ"A0]RunTaskInScope(ArkUI_ContextHandle uiContext, void* userData, void(*callback)(void* userData)/znode handle by uniqueId.
 *
 * @param uniqueId The uniqueId of the target node handle.
 * @param node The handle of target node& handle.
 * @return Error code.
 *    A'success.
 *    A[i.
 *    A5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20QNodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* node/zuniqueId of the target node handle.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param uniqueId The uniqueId of the targBet node handle, default value is -1.
 * @return Error code.
 *    A(`*F[i.
 *    A5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20NodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId);

/**
 * @brief Returns true if the node is in the render state. A node is considered to be in the render state if its
 * corresponding RenderNode is on the render tree.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isInRenderState If the node is in the render state.
 * @return Error code.
 *         {@lI `*F[i.
 *    A5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 23NativeModule_IsInRenderState(ArkUI_NodeHandle node, bool* isInRenderState);

/**
 * @brief The current node adopts the target child node. The node being adopted must not have an existing parent node.
 * This operation does not actually append it as a child, but only allows it to receive life-cycle
 * callbacks as if it were a child.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node that will adopt the child node.
 * @param child ArkUI_NodeHandle pointer, the target node being adopted.
 * @return Error code.
 *    A(`*F/CAPI_INIT_ERROR} if the CAPI init error.
 *    A:DE_HAS_PARENT} The child already has a parent node.
 *    A;DE_CAN_NOT_BE_ADOPTED} The child can not be adopted.
 *    ABDE_CAN_NOT_ADOPT_TO} The node can not adopt children.
 * @since 22NativeModule_AdoptChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child);

/**
 * @brief Remove the target adopted child node.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node.
 * @param child ArkUI_NodeHandle pointer, the node being removed.
 * @return Error code.
 *    A(`*F/CAPI_INIT_ERROR} if the CAPI init error.
 *    A^DE_IS_NOT_IN_ADOPTED_CHILDREN} This child node is not adopted by the parent node.
 * @since 22MNativeModule_RemoveAdoptedChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child_inverse color algorithm for components and instances.
 *
 * @param uiContext Indicates the context in which the inverse color feature should take effect.
 *     If the value is null, the feature applies to the entire application process.
 * @param forceDark Indicates whether the inverse color feature is enabled.
 * @param nodeType Indicates the component type for which to enable the inverse color feature.
 *     If the value is ARKUI_NODE_UNDEFINED, enabling the feature for all components.
 * @param col?orInvertFunc Indicates the user-defined inverse color algorithmA`error#CAPI_INIT_ERROR} if CAPI init errorQp-.FORCE_DARK_CONFIG_INVALID} if force dark confi A0SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
    uint32_t (*colorInvertFunc)(uint32_t color));

/**
 * @brief Register common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * ,@param eventType Indicates the type of eventxtIthe custom data.
 * @param callback Indicates the event callback functionu[iVp(XNODE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21NativeModule_RegisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
    void* userData, void (*callback)(ArkUI_NodeEvent* event));

/*(*
 * @brief Unregister common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle p=ointer.
 * @param eventType Indicates the type of event to se[iVp(XNODE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21NativeModule_UnregisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);

/**
 * @brief Register common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param ratios Threshold array representing the visible area of the component.
 * @param size The size of the ratios.
 * @param expectedUpdateInter4val The expected calculation interval for developerstIthe custom data.
 * @param callback Indicates the event callback functionu[i'1NativeModule_RegisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node, float* ratios,
    int32_t size, float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregister common visible area ap[proximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle poinP0[i'1TNativeModule_UnregisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle nodea point's coordinates from the target node's coordinate system 
 * to the current window's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle} currentNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} localPosition The point's coordinates in the target node's local coordinate system, in px.
 * @param {ArkUI_IntOffXset*} windowPosition The converted coordinates in the current window's coordinate systemError code.
 *    A'Success.
 *    A[i.
 *    AFDE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23NativeModule_ConvertPositionToWindow(ArkUI_NodeHandle currentNode, ArkUI_IntOffset localPosition, ArkUI_IntOffset* windowPositiona point's coordinates from the current window's coordinate system 
 * to the target node's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle } targetNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} windowPosition The point's coordinates in the current window's coordinate system, in px.
 * @param {ArkUI_IntOffseXt*} localPosition The converted coordinates in the target node's local coordinate systemError code.
 *    A'Success.
 *    A[i.
 *    AFDE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23NativeModule_ConvertPositionFromWindow(ArkUI_NodeHandle targetNode, ArkUI_IntOffset windowPosition, ArkUI_IntOffset* localPosition);

/** 
 * @brief Stop the animation being executed by the Swiper node.
 * 
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 22Swiper_FinishAnimation(ArkUI_NodeHandle node);

/**
 * @brief Post UI task to background threads.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param asyncUITaskData Parameter of asyncUITask and onFinish.
 * @param asyncUITask Function executed by a background thread.
 * @param onFinish Function executed by UI thread after async UI task is execut//context or asyncUITask is nullptr.
 * @since 22PostAsyncUITask(ArkUI_ContextHandle context, void* asyncUITaskData,
    void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskData));

/**
 * @brief Post UI task to UI thread.
 *
 * @param context UIContext pointer of the page whekre the UI task located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI threadu(context or task is nullptr.
 * @since 22PostUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief set the visiblity of the menubar.
 *
 * @param uiContext ArkUI_ContextHandle. - The designated ArkUI container context.
 * @param visible visibility. trSue indicate the menubar is visible,
          false indicate the menubar is invisiba/yUI_CONTEXT_INVALID} if the uiContext is invalid.
           for example, 1.uiContext is nullptr 2.can not get container by uiCoPntext.
           3. the uiContext is not belong to atomic service.
 * @since 23ZNativeModule_AtomicServiceMenuBarSetVisible(ArkUI_ContextHandle uiContext, bool visible);
a callback for listening for component dimension and area changes.
 *
 * This function can be called for a valid {@link ArkUI_NodeHandle} node at any time. \n
 * The newly registered callback will replace the previously registered callback for this event[ and will take effect from the next frame. \n
 * 
 * When the callback is no longer needed,WNativeModule_UnregisterCommonAreaApproximateChangeEvent} to unregister it. \n
 * Otherwise, the callback will be automatically unregistered when the node is released.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @param expectedUpdateInterval/ Expected calculation interval, in millisecondsV Pointer to custom data.
 * @param callback Event callback.
 * @return Result code. \n!sU \n!s,q \nNativeModule_RegisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node,
    float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregisters the callback bound to the dimensions and area changes of ^a component.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @return Result code. \n!sU \n!s,q \nNativeModule_UnregisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node);

/**
 * @brief Post UI task to UI thread and wait until UI task finished.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param taskData Par=ameter of task.
 * @param task Function executed by UI threadu(context or task is nullptr.
 * @since 22[PostUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData)tart a fake drag of the Swiper node.
 * Call OH_ArkUI_Swiper_FakeDragBy to simulate the drag motion. Call OH_ArkUI_Swiper_StopFakeDrag to complete the
 * fake drag. A fake drag can be interrupted by a real drag. If you need to ignore touch events and other user input
 * during a fake drag, use NODE_SWIPER_DISABLE_SWIPE.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag started successfully, return true.
 *     If the Swiper is not ready to start the fake drag, or a realQ or fake drag is already in progress, return false.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 23Swiper_StartFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Fake drag by an offset of the Swiper node.
 * The OH_ArkUI_Swiper_StartFakeDrag must be called first.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param offset The offset that needs to be scrolled. The unit is vp.
 * @param isConsumedOffset If not in a fake drag progress, or no offset is consumed,[ return false.
 *     If any offset is consumed, return true.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 23LSwiper_FakeDragBy(ArkUI_NodeHandle node, float offset, bool* isConsumedOffsetop a fake drag of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag stopped successfully, return true.
 *     If the Swiper is not ready to stop the fake drag, or no fake drag is in progress, return fal!se.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 23=Swiper_StopFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful/zfake drag state of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isFakeDragging If a fake drag is in pIrogress return true, otherwise return false
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 23ASwiper_IsFakeDragging(ArkUI_NodeHandle node, bool* isFakeDragginghow the previous page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link MSuccess.
 *    A[i.
 * @since 23)Swiper_ShowPrevious(ArkUI_NodeHandle nodeohow the next page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    A'Success.
 *    A[i.
 * @since 23%Swiper_ShowNext(ArkUI_NodeHandle node/zroot node handle of the corresponding page of the Context.
 *
 * @param context A UIContext pointer.
 * @param rootNode The handle of target root node handle. If the context's corresponding
 *     page has no root node, the pointed-to value will be set to null.
 * @return Error'CAPI_INIT_ERROR} if the CAPI init errorQpLq\$$UI_CONTEXT_INVALID} if the uiContext!AgNativeModule_GetPageRootNodeHandleByContext(
    ArkUI_ContextHandle context, ArkUI_NodeHandle* rootNod`1W<b>ArkUI_GestureCollectInterceptInfo</b> object from a specified <b>ArkUI_NodeEvent</b>nodeEv1P		NodeEvento$GestureCollectInterceptInfo</b> object.
 *         It is valid only during callback and does not need to be released.
 *       \p
<b>null</b> if the input parameter is invalid or the
 *         information is not gesture collection interception information.OfGestureCollectInterceptInfo* OH_ArkUI_NodeEvent_GetGestureCollectInterceptInfo(ArkUI_NodeEvent* nodeEvthe subnode mounting policy of the target node.
 *
 * @param node the target node handle.
 * @param policy the policy to set. Vbalid values correspond to {@link OH_ArkUI_NodeMountPolicy}.
 * @return Error code.
 *     <ul><li>;"Success.
 *     </li><li>Qf5.
 *     </li><li>.CAPI_INIT_ERROR} if CAPI init error.</li></ul>O/WNativeModule_SetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy policy}urrent child mount policy of the specified node.
 *
 * @param node the target node handle.
 * @param policy the pointer to receTive child mounting policy of the target node.
 * @return Error code.
 *     <ul><li>;"Success.
 *     </li><li>Qf5.
 *     </li><li>.CAPI_INIT_ERROR} if CAPI init error.</li></ul>O/XNativeModule_GetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy* policy9NODE_H
/** @} */
A衊x   '6Qtype.h
 pl"ommon types for the native module.TYP/TYPE_H

#include "drawable_descriptor)&ArkUI nativCstruct ArkUI_Nod}&pointer type of the ArkUI node content1$	* 	p$ustom dialog box controller of ArkUI)struct ArkUI_NativeDialogmd6size constraints of a component during component layou@&	 o)structure of the component drawing contex@&	DrawContext ArkUI_DrawContext~HZArkUI nativC#	
* ArkUI_Nodep#(dialog box controller of ArkUI1_	ativeDialog* ArkUI_NativeDialogpinformation abou	!.
 *ީ	F	"~dlstructure for the <b>onGetIrregularSizeByIndex</b> callback
 * in <b>Grid</b> layout options.
 *
 * @since 2QNumber of rows occupied by >*/
    uint32_t rowSpan;
    /** Number of columns occupied by /*/
    uint32_t columnSpan;
} ArkUI_GridItemSiz}d`structure for the <b>onGetRectByIndex</b> callback in <b>Grid</b> layout options.
 *
 * @since 2QStarting row positionL"; */
    uint32_t rowStart;
    /** Starting column positionL"@ */
    uint32_t columnStart;
    /** Number of rows occupied by >*/
    uint32_t rowSpan;
    /** Number of columns occupied by /*/
    uint32_t columnSpan;
} ArkUI_GridItemRec^!2selected indicator type of picker.
 *
 * @since 23 background. */
    ARKUI_PICKER_INDICATOR_BACKGROUND = 0,
    /** divider. */
    ARKUI_PICKER_INDICATOR_DIVIDER = 1,
} ArkUI_NType;

/**
 * @brief Style parameters of background indicator.
 *
 * @since 23Ag background color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t backgroundColor;
    /**%. */
    float topLeftRadius;
    /**\$*/
    float topRightRadius;
    /**A"&*/
    float bottomLeftRadius;
    /**A#. */
    float bottomRightRadius;
}QBackground;

/**
 * @brief Style parameters of divider indicator.
 *
 * @since 23Astroke width */
    float strokeWidth;
    /** divider color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t dividerColor;
    /**`*4picker (unit: vp). */
    float startMargin;
    /**`A,picker (unit: vp). */
    float endMargin;
}Divider~)ition of indicator style.
 *
 * @since 23A	~*<b>Grid</b> layout options.
 *
 * @since 2Q	TM~/C#D"	7E 1E~6 the configuration information of the Item within the  methodA%	5ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem~' the configuration information for the  methodA%	9ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption~ArkUI native context objec@struct ArkUI_Context;

/**
mIZ1ntext instance object pointer definition of ArkUI *
  * @since 12
 	Context* ArkUI_Contextp#Jstyle for the swiperA%	%SwiperIndicator ArkUI_SwiperIndicator~7digital indicator style for the swiper.
 *
 * @since 19A	TM~+arrow style for the swiper.
 *
 * @since 19A	SwiperArrowStyle ArkUI_SwiperArrowStyle;

/**
* @brief Define the data objects of styled string supported by text components.
*
* @since 14
	StyledString_Descriptor ArkUI_StyledString_Descriptor;

/**
  * @brief specifies the alignment rules for subcomponents set in r'elative containers.
  *
  * @since 12
 	#;

/**
  * @brief guideLine parameters, used to define the id, direction and position of the guideline.
  *
  * @since 12
  */
	GuidelineOption ArkUI_GuidelineOption;

/**
  * @brief barrier parameter, used to define the id,
  * direction and components oHf the barrier that it depends on when generating it.
  *
  * @since 12
 	!BarrierOption ArkUI_BarrierOption~D the ChildrenMainSize class information for a List.
 *
 * @since 12
	.ListChildrenMainSize ArkUI_ListChildrenMainSiz}frame.
 *
 * @since 12
	 ~accessibility state for-+	=S"*AccessibilityState ArkUI_AccessibilityStat}accessibility value for-+	=S"*AccessibilityValue ArkUI_AccessibilityValu}T the information of the Custom Property class for custom properties.
 *
 * @since 14A	#CustomProperty ArkUI_CustomProperty~A the information of the HostWindowInfo class for window propertieܼ&	5	5	~5 ActiveChildenInfo class information.
 *
 * @since 14A	+ActiveChildrenInfo ArkUI_ActiveChildrenInfo	 styleݼ%	 *;

/**
 * @brief The cross-language optionݼ%	2R	+R	@;

/**
 * @brief Declares the Ability base want.
 *
 * @since 20AAbilityBase_Want AbilityBase_Wao the  + for the EmbeddedComponent.
 *
 * @since 20A	  ~ the Edges describing thePby distances to the
 *
 * @since 21A	!PositionEdges ArkUI_PositionEdges~>PixelRound policy of a component's four edges.
 *
 * @since 21A	~textField's_ 
 *
 * @since 2Q	]]~matrix4 object.$	Matrix4 ArkUI_Matrix4~Xp*
 * @since 23A	6/ ~$̪	F	WP~l"_Custom type, data of a user-defined type that is passed as a parameter during callbacks. */
    void* userData;
    /** Event callback. */
    void y	\;
} ArkUI_ContextCallback;
/**
 * @brief Provides the number types of ArkUI in the native co union {
    /** Floating-point type, used to store a floating-point value. */
    float f32;
    /** Signed integer, used to store a signed integer value. */
    int32_t i32;
    /** Unsigned integer, used to store an unsigned integer value. */
    uint32_t u32;
} ArkUI_NumberValue_ alignment modesAξ Top start. */
    a! = 0,
    /** Top center. */
    a,
    /** Top end. */
    aEND,
    /** Vertically centered start. */
    ARKUI_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_ALIGNMENT_BOTTOM_END,
} ArkUI_Alignmopimage repeat patternsAξQ The image is not repeatedly drawn. */
    ARKUI_IMAGE_REPEAT_NONE = 0,
    /** TAFly drawn only along the x-axis. */
    ARKUI_IMAGE_REPEAT_X,
    /** TAFly drawn only along the y-axis. */
    ARKUI_IMAGE_REPEAT_Y,
    /** TAJly drawn along both axes. */
    ARKUI_IMAGE_REPEAT_XY,
} ArkUI_ImageRepea^!font stylesAξ Standard font style. */
    Q = 0,
    /** Italic font style. */
    ARKUI_FONT_STYLE_ITALIC
} ArkUI_FontStyle_ font weightsAξ 100 */
    ARKUI_FONT_WEIGHT_W100 = 0,
    /** 200 */
    ARKUI_FONT_WEIGHT_W200,
    /** 300 */
    ARKUI_FONT_WEIGHT_W300,
    /** 400 */
    ARKUI_FONT_WEIGHT_W400,
    /** 500 */
    ARKUI_FONT_WEIGHT_W500,
    /** 600 */
    ARKUI_FONT_WEIGHT_W600,
    /** 700 */
    ARKUI_FONT_WEIGHT_W700,
    /** 800 */
    ARKUI_FONT_WEIGHT_W800,
    /** 900 */
    ARKUI_FONT_WEIGHT_W90m0,
    /** The font weight is bold. */
    ARKUI_FONT_WEIGHT_BOLD,
    /** The font weight is normal. */
    Q,
    /** The font weight is bolder. */
    ARKUI_FONT_WEIGHT_BOLDER,
    /** The font weight is lighter. */
    ARKUI_FONT_WEIGHT_LIGHTER,
    /** The font weight is medium. */
    ARKUI_FONT_WEIGHT_MEDIUM,
    /** The font weight is normal. */
    ARKU(I_FONT_WEIGHT_REGULAR,
} ArkUI_FontWeigh^!text alignment mo/Aligned with the start. */
    ARKUI_TEXT_ALIGNMENT_START = 0,
    /** Horizontally centered. */
    ARKUI_TEXT_ALIGNMENT_CENTER,
    /** Aligned with the end. */
    ARKUI_TEXT_ALIGNMENT_END,
    /** Aligned with both margins. */
    ARKUI_TEXT_ALIGNMEN.T_JUSTIFY,
    /** Aligned with left to right.PKARKUI_TEXT_ALIGNMENT_LEFT_TO_RIGHT = 4,
    /** Aligned with right to left.P)ARKUI_TEXT_ALIGNMENT_RIGHT_TO_LEFT = 5,
}qopext1styles.
 *
 * @since 20+ Aligned to the baseline. */
    ARKUI_TEXTm8_BASELINE = 0,
    /** Bottom aligned. */
    ARKUI_TEXTm2_BOTTOM,
    /** Center aligned. */
    ARKUI_TEXTm/_CENTER,
    /** Top aligned. */
    ARKUI_TEXTm_TOP,
}3op)ext content align styles.
 *
 * @since 21 Top aligned. */
    6(TOP = 0,
    /** Center aligned. */
    6% = 1,
    /** Bottom aligned. */
    6BOTTOM = 2,
}5_ $text text direction.
 *
 * @since 23 The text direction is left to right. */
    ARKUI_TEXT_DIRECTION_LTR = 0,
    /** The text direction is right to left. */
    @ARKUI_TEXT_DIRECTION_RTL = 1,
    /** The text direction follows	. */
    ARKUI_TEXT_DIRECTION_DEFAULT = 2,
    /** The text direction follows the actual text. */
    ARKUI_TEXT_DIRECTION_AUTO = 3,
} ArkUI_TextDirection_ types of the Enter key for a!Dξ The Enter key is labeled "Go." */
    ARKUI_ENTER_KEY_TYPE_GO = 2,
    /** The Enter key is labeled "Search." */
    ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
    /** The Enter key is labeled "Send." */
    ARKUI_ENTER_KEY_TYPE_SEND,
    /** The Enter key is labeled "Next." */
    XT,
    /** The Enter key is labeled "Done." */
    ARKUI_ENTER_KEY_TYPE_DONE,
    /** The Enter key is labeled "Previous." */
W    ARKUI_ENTER_KEY_TYPE_PREVIOUS,
    /** The Enter key is labeled "New Line." */
    ,
} ArkUI_EnterKeyType_ text input typesAξ Normal input mode. */
    ARKUI_TEXTINPUT_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
    /** Password input mode. */
    ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
    /** Numeric password input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
    /** Lock screen password input mode. */
    ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
    /** Username input mode. */
    ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
    /** New password input mode. */
    ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
    /** Number input mode with a decimal point. */
    ARKUI_TEXTINPUT_TYPE_NU:MBER_DECIMAL = 12,
    /**
     * One time code input mode%$TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
}_ text box typesAξ Normal input mode. */
    ARKUI_TEXTAREA_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTAREA_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXT<AREA_TYPE_EMAIL = 5,
    /**
     * One time code input mode%6TEXTAREA_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextAreaType_ styles of the Cancel buttonAξ/ The Cancel button is always displayed. */
    MACONSTANT = 0,
    /** The Cancel button is always hidden. */
    MQVISIBLE,
    /** The Cancel button is displayed when there is text input. */
    M,
} ArkUI_CancelButtonStyle_ typesz(>+	=Sξ The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
    ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
    /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
      * of th	, */
    ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
}/w	 stylesDξ Linear style. */
     = 0,
    /** Indeterminate ring style. */
    ARKUI_PROGRESS_TYPE_RING,
    /** Eclipse style. */
    ARKUI_PROGRESS_TYPE_ECLIPSE,
    /** Determinate ring style. */
    ARKUI_PROGRESS_TYPE_SCALE_RING,
    /** Capsule style. */
    ARKUI_PROGRESS_TYPE_CAPSULE,
} ArkUI_ProgressType_ typesAξ No text decoration. */
    * = 0,
    /** Line under the text. */
    .UNDERLINE,
    /** Line over the text. */
    0OVERLINE,
    /** Line through the text. */
    (LINE_THROUGH,
} ArkUI_TextDecorationType_ sAξ Single solid line. */
    ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
    /** Double solid line. */
    ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
    /** Dotted line. */
    ARKUI_TEXT_DECORATION_STYLE_DOTTED,
    /** Dashed line. */
    ARKUI_TEXT_DECORATION_STYLGE_DASHED,
    /** Wavy line. */
    ARKUI_TEXT_DECORATION_STYLE_WAVY,
}{_ 
text casesAξ The original case of the text is retained. */
    ARKUI_TEXT_CASE_NORMAL = 0,
    /** All letters in the text are in lowercase. */
    ARKUI_TEXT_CASE_LOWER,
    /** All letters in the text are in uppercase. */
    ARKUI_TEXT_CASE_UPPER,
} ArkUI_TextCase_ text copy and paste modesAξ Copy is not allowed. */
    ARKUI_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
8    ARKUI_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_CopyOptions_ shadow typesAξ Color. */
    zD = 0,
    /** Blur. */
    ARKUI_SHADOW_TYPE_BLUR
} ArkUI_ShadowType_ modes	*
 * @since 18 A mode that displays the date in months, days of month, and years. */
    ARKUI_DATEPICKER_MODE_DATE = 0,
    /** A mode that displays the date in months and years. */
    ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
    /** A mode that displays the date in mon\ths and days of the month. */
    ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
} ArkUI_DatePickerMode_ typesPJDξ Single-column text.- = 0,
    /** Multi-column textTEXTPICKER_RANGETYPE_MULTI,
    /** Single-column text picker with image resources. */
    ARKUI_TEXTPICKER_RANGETYPE_RANGE_CON.TENT,
    /** Interconnected multi-column text-TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT,
},~Einput structure of the single-column text picker with image resourcesA/Image resourcicon;
    /** Text informationtext;
}2o>input structure of the interconnected multi-column text pickerA/Text information/text;
    /** Interconnected data. */
    const2Q* children;
    /** Size of the interconnected data array. */
    int32_t size;
}/$opffects R
 * reachedAξ Spring effect. When at one of the edges, the component can move beyond the bounds based on the initial
     *  speed or through touches, and produces a1d#user releases their finger. */
    _ = 0,
    /** Fade effect. When at one of the edges, the component produces a fade effect. */
    ARKUI_EDGE_EFFECT_FADE,
    /g** No effect after the scrollbar is moved to the edge. */
    ARKUI_EDGE_EFFECT_NONE,
} ArkUI_EdgeEffec^!(status of the scroll bar.
 *
 * @since 2 Not displayed. */
    ARKUI_BAR_STATE_OFF = 0,
    /** On-demand display. */
    ARKUI_BAR_STATE_AUTO = 1,
    /** Resident di6splay. */
    ARKUI_BAR_STATE_ON = 2,
} ArkUI_BarState_!dgesZ%\*
 * @since 18I Start edge. */
    ARKUI_EFFECT_EDGE_START = 1,
    /** End edge. */
   # = 2,
} ArkUI_EffectEdge_ <p20 Default mode, where focus does not wrap when arrow keys are used. */
    ARKUI_FOCUS_WRAP_MODE_DEFAULT = 0,
    /** Focus wraps automatically when arrow keys are used. */
    ARKUI_FOCUS_WRAP_WITH_ARROW = 1,
} ArkUI_FocusWrapMode;

/**
 * @brief Specifi*number of columns for different responsiveAZ*
 * @since 2 No responsive breakpoint configuration. */
    ARKUI_ITEMFILLPOLICY_NONE = -1,
    /**
     * Default responsive layout:
     * <b>List</b> or[: 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger).
     * <b>Grid</b> orX: 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger).
     */
    ARKUI_ITEMFILLPOLICY_DEFAULT = 0,
    /** 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM1MD2LG3 = 1,
    /** 2 columns g(SM or smaller), 3 columns (MD), 5 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM2MD3LG5 = 2,
}O[_ )grid item alignment modes.
 *
 * @since 2 Use the defaultthe grid. */
    | = 0,
    /** Set the height of all grid items in a row to match the height of the tallest item in that row. */
    GRID_ITEM_ALIGNMENT_STRETCH = 1,
}}op$styles of grid items.
 *
 * @since 2m No style. */
    GRID_ITEM_STYLE_NONE = 0,
    /** Hover or press style. */
    GRID_ITEM_STYLE_PLAIN = 1,
}њ_ $3$<+	=Sξ. Only vertical scrolling is supported. */
     = 0,
    /** Only hEis supported. */
    5HORIZONTAL,
    /** Scrolling is not allowed. */
    5NONE = 3,
    /**
     * Free scrolling in both direc!FREE = 4,
} ArkUI_ScrollDirection_ 1alignment modes of list items when scrolling endsAξ1 No alignment. This is the default value. */
    o3 = 0,
    /** The first item in the view is aligned	. */
    oZSTART,
    /** The middle items in the view are aligned in the center of the list. */
    o4CENTER,
    /** The last item in the view is alignedalist. */
    oEND,
}0_ s for lists.
 *
 * @since 2 Normal	. */
    X" = 0,
    /** Slow	. */
    XSLOW = 1,
}A_ scrollbar display modesAξ Hide. */
    @!f = 0,
    /** Display on demand (displays when the screen is touched and disappears after 2s). */
    @%AUTO,
    /** Always display. */
    @N,
}_ s for the <b><List></b>1+	=SξU Only vertical scrolling is supported. */
    ARKUI_AXIS_VERTICAL = 0,
    /** Only hE8is supported. */
    ARKUI_AXIS_HORIZONTAL,
} ArkUI_Axis_ modes for pinningn2Aξ IA, the header is not pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_NONE = 0,
    /** IA, the header is pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_HEADER = 1,
    /** InB, the footer is pinned to the bottom, and the header is not pinned to the top. */
    ARKUI_STICKY_STYLE_FOOTER = 2,
    /** InB, the footer is pinned to the bottom, and the header is pinned to the top. */
    ARKUI_STICKY_STYLE_BOTH = 3,
} ArkUI_StickyStyle_ content clipping modHIp8 clip by content */
    U$& = 0,
    /** clip by boundary */
    U_U+,
    /** clip by safe area padding */
    USAFE_AREA,
}U_ layout modes of the WaterFlow1+	=S8 Layout items from top to viewport. */
    ARKUI_WATER_FLOW_LAYOUT_MODE_ALWAYS_TOP_DOWN = 0,
    /** Layout items in viewport. 5*/
    ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW,
}|U_ border stylesAξ Solid border. */
    AO$ = 0,
    /** Dashed border. */
    AO&DASHED,
    /** Dotted border. */
    AODOTTED,
} ArkUI_BorderStyle_ hit test modesAξ Both the node and its child node respond to the hit test of a touch event, but its sibling node is blocked from
     *  the hit test. */
    ARKUI_HIT_TEST_MODE_DEFAULT = 0,
    /** The node responds to the hit test of a touch event, but its child node and sibling node are block hit test. */
    ARKUI_HIT_TEST_MODE_BLOCK,
    /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
     * considered during the hit test. */
    ARKUI_HIT_TEST_MODE_TRANSPARENT,
    /** The node dOoes not respond to the hit test of a touch event. */
    ARKUI_HIT_TEST_MODE_NO!The node and its child nodes participate in hit tests, while blocking hit tests for all sibling nodes and
     * parent nodes with lower priority@HIT_TEST_MODE_BLOCK_HIERARCHY,
    /**
     * The node does not respond to hit tests, and none of its descendants (including ch>ildren and grandchildren)
     * participate in hit tests eith@4HIT_TEST_MODE_BLOCK_DESCENDANTS,
} ArkUI_HitTestMode_ shadow stylesAξ Mini shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
    /** Little shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
    /** Medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
    /** Large shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
    /** Floating small shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
    /** Floating medium shadow. */
    ARKU5I_SHADOW_STYLE_OUTER_FLOATING_MD,
} ArkUI_ShadowStyle_ sAξ The animation speed keeps unchanged. */
    ARKUI_CURVE_LINEAR = 0,
    /** The animation starts slowly, accelerates, and then slows down towards the end. */
    ARKUI_CURVE_EASE,
    /** The animation starts at a low speed and then picks up speed until the end. */
    ARKUI_CURVE_EASE_IN,
    /** The animation ends at a low speed. */
    ARKUI_CURVE_EASE_OUT,
    /** The animation starts and ends at a low speed. */
    ARKUI_CURVE_EASE_IN_OUT,
    /** The animation uses the standard curve */
    ARKUI_CURVE_FAST_OUT_SLOW_IN,
    /** The animation uses the deceleration curve. */
    ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
    /** The animation uses the acceleration curve. */
    ARKUI_CURVE_FAST_OUT_LINEAR_IN,
    /** The animation uses the extreme deceleration curve. */
    ARKUI_CURVE_EXTREME_DECELERATION,
    /** The animation uses the sharp curve. */
    ARKUI_CURVE_SHARP,
    /** The animation uses the rhythm curve. */
    ARKUI_CURVE_RHYTHM,
    /** The animation uses the smooth curve. */
    ARKUI_CURWVE_SMOOTH,
    /** The animation uses the friction curve */
    ARKUI_CURVE_FRICTION,
}_arrow styles of Bξ The arrow is not displayed for!*/
    ( = 0,
    /** The arrow is displayed for!C*/
    ARKUI_SWIPER_ARROW_SHOW,
    /** The arrow is displayed only$	O */
    ARKUI_SWIPER_ARROW_SHOW_ON_HOVER,
} ArkUI_SwiperArrow;

/**
 * @brief NO_(Gpξ1 Swiper only scrolls on its own and is not linkedq	 = 0,
    /** The Swiper itself scrolls first, and the parent component scrolls after it reaches the edge. After the parent
   jL scrolls to the edge, if the parent component has an edge effect, the parent@Othe edge
     * effect; otherwise, the Swiper triggers the edge effect. */
     FIRST,
}_ page flipping modesn for>+	=Sξ When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by the number of
     *  times that mouse events are reported. */
    ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
    /** The system does not respond to other mouse Zwheel events until the page flipping animation ends. */
    ARKUI_PAGE_FLIP_MODE_SINGLE,
}A_ -animation modes for {@link NODE_SWIPER_INDEX}ݼξ/ Jump to target index without animation. */
    = 0,
    /** Scroll to target index with animation. */
    ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
    /** Jump to some index near the target index without animation, then scroll to target index with animation. */
    ARKUI_SWIPER_FAST_ANIMATION = 2,
} ArkUv_ accessibility modesAξ W%can be identified byis dependent on theGACCESSIBILITY_MODE_AUTO = 0,
    /** The component can be identified byX. */
    ARKUI_ACCESSIBILITY_MODE_ENABLED,
    /** The component cannot be identified by5. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED,
    /** T+) cannot be identified byT. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
} ArkUI_AccessibilityMod}o'copy and paste is allowed for text cont1S!ξ Copy is not allowed. */
    ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy Pis allowed. */
    ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_TextCopyOptions~N^-Dξ6 Prioritize the <b>maxLines</b> settings. */
    ARKUIyV_MAX_LINES_FIRST = 0,
    /** Prioritize the <b>minFontSize</b> settings. */
    ARKUIy_MIN_FONT_SIZE_FIRST,
    /** Prioritize the layout constraint settings in terms of height. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_P_LAYOUT_CONSTRAINT_FIRST,
}A~o5sAξ The scrolling is contained@U, and no scroll chaining occurs, that is, the parent component
     * does not scroll1oscrolling reaches the boundary. */
    ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
    /** The component scrolls first, and when it hits the boundary, the parent  When the parent component hits the boundary, its edge effect is displayed. If no edge
     *  effect is specified for the parent component, the edge effect is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
    /** The parent component scrolls first, and when it hits the boundary, the  When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
    /** The component and its parent component scroll at the same time. When both the component and its parent component
     *  hit the boundary, the edge effecis displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed in2stead. */
    ARKUI_SCROLL_NESTED_MODE_PARALLEL,
}5~edge toDξ Top edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_TOP = 0,
    /** Bottom edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_BOTTOM,
    /** Start position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_START,
    /** End position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_END,
} ArkUI_ScrollEdge;

/**
 * @brief Alignment when scrolling to specific itemsAξ\ Align the head. Align the head of the specified item with the head of the container.*/
    N4 = 0,
    /** Center alignment. Align the axis direcitem to the center of the container.*/
    ARKUI_SCROLL_ALIGNMENT_CENTER,
    /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
    ARKUI_SCROLL_ALIGNMENT_END,
    /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
     * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
     * item with the container, so that the specified item is completely in the display area.*/
    ),
}{o theBξ Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
     * dragging the scroll bar to scroll.*/
    ARKUI_SCROLL_STATE_IDLE = 0,
    /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
    ARKUI_SCROLL_STATE_SCROLL,
    /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
     * releasing the hand quickly.*/
    ARKUI_SCROLL_STATE_FLING,
} ArkUI_ScrollState;

/**e*types of the slider in the block directionAξ Round slider. */
   u<DEFAULT = 0,
    /** Slider with an image background. */
   u/IMAGE,
    /** Slider in a custom shape. */
   u,
}z_ s of the sliderAξ Vertical direction. */
    ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
    /** Horizontal direction. */
    ARKUI_SLIDER_DIRECTION_HO!RIZONTAL,
} ArkUI_SliderDirection_ slider stylesAξ The slider is on the slider track. */
    ARKUI_SLIDER_STYLE_OUT_SET = 0,
    /** The slider is in the slider track. */
    AR1H,
    /** No slider. */
    ARKUI_SLIDER_STYLE_NONE,
} ArkUI_SliderStyle_ shapes of the check box+ Circle. */
    ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
    /** Rounded square. */
    ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
} ArkUI_CheckboxShape_ $&`sAξ TѧA forwards. */
    ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
    /** Tѧ? reversely. */
    ARKUI_ANIMATION_PLAY_MODE_REVERSE,
    /** Tѧ normally for an odd number of times (1, 3, 5...) and reversely for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE,
    /** Tѧ reversely for an odd number of times (1, 3, 5...) and normally for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
}~sizeAξ The original image aspect ratio is retained. */
    ARKUI_IMAGE_SIZE_AUTO = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal
     *  to the display boundaries. */
    ARKUI_IMAGE_SIZE_COVER,
    /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the display
     *  boun:daries. */
    ARKUI_IMAGE_SIZE_CONTAIN,
} ArkUI_ImageSize_ adaptive color modesAξ Adaptive color mode is not used. */
    ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
    /** Adaptive color mode is used. */
    ARKUI_AD+APTIVE_COLOR_AVERAGE,
} ArkUI_AdaptiveColor_ color modesAξ Following the system color mode. */
    ARKUI_COLOR_MODE_SYSTEM = 0,
    /** Light color mode. */
    ARKUI_COLOR_MODE_LIGHT,
H    /** Dark color mode. */
    ARKUI_COLOR_MODE_DARK,
} ArkUI_ColorMode_ system color modesAξ Light color mode. */
    ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
    /** Dark color mode. */
    ARKUI_SYSTEM_COLOR_MODE_DARK,
} ArkUI_SystemColorMode_ blur stylesAξ Thin material. */
    ARKUI_BLUR_STYLE_THIN = 0,
    /** Regular material. */
    ARKUI_BLUR_STYLE_REGULAR,
    /** Thick material. */
    ARKUI_BLUR_STYLE_THICK,
    /** Material that creates the minimum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THIN,
    /** Material that creates a medium shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
    /** Material that creates a high shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THICK,
    /** Material that creates the maximum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
    /** No blur. */
    ARKUI_BLUR_STYLE_NONE,
    /** Component ultra-thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
    /** Component thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_THIN,
    /** Component regular material. */
    ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
    /** Component thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_THICK,
    /** Component ultra-thick material. */
    ARK6UI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
} ArkUI_BlurStyle_ Cactivation policies for the background blur effect.
 *
 * @since 19 The blur effect changes according to the window's focus state;
     *  it is inactive when the window is not in focus and active when the window is in focus. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
    /** The blur effect is always active. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
    /** The blur effect is always inactive. */
    ARKUIH_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
} ArkUI_BlurStyleActivePolicy_ dsAξ Top aligned. */
    oLTOP = 0,
    /** Center aligned. This is the default alignment mode. */
    o!,
    /** Bottom aligned. */
    oBOTTOM,
} ArkUI_VerticalAlignmop*alignment mode in the horizontal directionAξR Aligned with the start edge in the same direction as the language in use. */
    NSTART = 0,
    /** Center aligned. This is the default alignment mode. */
    !Y,
    /** Aligned with the end edge in the same direction as the language in use. */
    END,
}opdisplay modesC	Extra-long text is not clipped. */
    ARKUI_TEXT_OVERFLOW_NONE = 0,
    /** Extra-long text is clipped. */
    ARKUI_TEXT_OVERFLOW_CLIP,
    /** An ellipsis (...) is used to represent text overflow. */
    ARKUI_TEXT_OVERFLOW_ELLIPSIS,
    /** Text contdinuously scrolls when text overflow occurs. */
    ARKUI_TEXT_OVERFLOW_MARQUEE,
} ArkUI_TextOverflow_ FkDξ The image is bottom aligned with the text baseline. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
    /** The image is bottom aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
    /** The image is centered aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
    /** The image is top aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
    /?**
     * The image alignment mode follows the text component'sj(IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
}ploN^z(*ImageSpanAlignment?k( The image is scaled with its aspect ratio retained for the content to be completely displayed within the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_CONTAIN = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_COVER,
    /** The image is scaled automatically to fit the display area. */
    ARKUI_OBJECT_FIT_AUTO,
    /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
    ARKUI_OBJECT_FIT_FILL,
    /** The image content is displayed with its aspect ratio retained. The si2!or equal to the
     *  original size. */
    ARKUI_OBJECT_FIT_SCALE_DOWN,
    /** The original size is retained. */
    ARKUI_`OBJECT_FIT_NONE,
    /** Not resized, the image is aligned with the start edge of the top of the1nOBJECT_FIT_NONE_AND_ALIGN_TOP_START,
    /** Not resized, the image is horizontally centered at the top of the1lOBJECT_FIT_NONE_AND_ALIGN_TOP,
    /** Not resized, the image is aligned with the end edge at the top of the1OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
    /** Not resized, the image is vertically centered on the start edge of the container. */?gOBJECT_FIT_NONE_AND_ALIGN_START,
    /** Not resized, the image is horizontally and vertically centeredQ=nOBJECT_FIT_NONE_AND_ALIGN_CENTER,
    /** Not resized, the image is vertically centered on the end edge of the1OBJECT_FIT_NONE_AND_ALIGN_END,
    /** Not resized, the image is aligned with the start edge at the bottom of the container. */?OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
    /** Not resized, the image is horizontally centered at the bottom of the container.<OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
    /** Not resized, the image is aligned with the end edge at the bottom of the container. *>OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
    /**
     * Not resized, and is used in conjunction with NODE_IMAGE_IMAGE_MATRIX.
    ^.ARKUI_OBJECT_FIT_NONE_MATRIX,
} ArkUI_ObjectFi^!image~Aξ No image interpolation. */
    ARKUI_IMAGE_INTERPOLATION_NONE = 0,
    /** Low quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_LOW,
    /** Medium quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_MEDIUM,
    /** High quality interpolationl. This mode produces scaled images of the highest possible quality. */
    ARKUI_IMAGE_INTERPOLATION_HIGH,
}~_ )image dynamic range mode.
 *
 * @since 21! high dynamic range mode. */
    8HIGH = 0,
    /** constraint dynamic range mode. */
    8CONSTRAINT,
    /** standard dynamic range mode. */
    !,
} ArkUI_DynamicRangeMode_ )image rotate orientation.
 *
 * @since 21 Use EXIF metadata for display orientation, with support for rotation and mirroring. */
    ARKUI_ORIENTATION_AUTO = 0,
    /** Display original pixel data without transformation. */
    ARKUI_ORIENTATION_UP,
    /** Display the image after rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT,
    /** Display the image after rotating it 180 degrees clockwise. */
    ARKUI_ORIENTATION_DOWN,
    /** Display the image after rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT,
    /** Display the image after flipping it horizontally. */
    ARKUI_ORIENTATION_UP_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT_MIRRORED,
    /** Display the image after flipping it vertically. */
    ARKUI_ORIENTATION_DOWN_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT_MIRRORED,
} ArkUI_ImageRotateOrientation;

/**
 *hblend modesAξ The top image is superimposed on the bottom image without any blending. */
    ARKUI_BLEND_MODE_NONE = 0,
    /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
    ARKUI_BLEND_MODE_CLEAR,
    /** r = s: Only the source pixels are displayed. */
    ARKUI_BLEND_MODE_SRC,
    /** r = d: Only the target pixels are displayed. */
    ARKUI_BLEND_MODE_DST,
    /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
    ARKUI_BLEND_MODE_SRC_OVER,
    /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
    ARKUI_BLEND_MODE_DST_OVER,
    /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_IN,
    /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_IN,
    /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_OUT,
    /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_OUT,
    /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
     *  the part of the target pixels that do not overlap with the source pixels are displayed.
     */
    ARKUI_BLEND_MODE_SRC_ATOP,
    /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
     *  the source pixels that do not overlap with the target pixels are displayed.
     */
    ARKUI_BLEND_MODE_DST_ATOP,
    /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
     * is displayed. */
    ARKUI_BLEND_MODE_XOR,
    /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
    ARKUI_BLEND_MODE_PLUS,
    /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
    ARKUI_BLEND_MODE_MODULATE,
    /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
     *  product of their multiplication. */
    ARKUI_BLEND_MODE_SCREEN,
    /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
    ARKUI_BLEND_MODE_OVERLAY,
    /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
    ARKUI_BLEND_MODE_DARKEN,
    /** rc = s + d - min(s * da, d * sa), ra =
       kSrcOver: The final pixels are composed of the lightest values of pixels. */
    ARKUI_BLEND_MODE_LIGHTEN,
    /** The colors of the target pixels are lightened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_DODGE,
    /** The colors of the target pixels are darkened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_BURN,
    /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_HARD_LIGHT,
    /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_SOFT_LIGHT,
    /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
       kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
       the lighter one. */
    ARKUI_BLEND_MODE_DIFFERENCE,
    /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
     */
    ARKUI_BLEND_MODE_EXCLUSION,
    /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
     *  by the target pixel.	 */
    ARKUI_BLEND_MODE_MULTIPLY,
    /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
     *  image. */
    ARKUI_BLEND_MODE_HUE,
    /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
     *  image. */
    ARKUI_BLEND_MODE_SATURATION,
    /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
     *  image. */
    ARKUI_BLEND_MODE_COLOR,
    /** The resultant image is created with the saturation and hue of the target image and the luZminance of the source
     *  image. */
    ARKUI_BLEND_MODE_LUMINOSITY,
} ArkUI_BlendMode_ %modes in which components are laid ou!$	containerAξ Components are arranged from left to right. */
    ARKUI_DIRECTION_LTR = 0,
    /** Components are arranged from right to leftS. */
    ARKUI_DIRECTION_RTL,
    /** The default layout direction is used. */
    a = 3,
} ArkUI_Direction_ &modes in which components are laid out	containerAξ< The default configuration in the container is used. */
    n = 0,
    /** The items in the container are aligned with the cross-start edge. */
    ARKUI_ITEM_ALIGNMENT_START,
    /** The #items in the container are centered. */
    ARKUI_ITEM_ALIGNMENT_CENTER,
    /** The items in the container are aligned with the cross-end edge. */
    ARKUI_ITEMK_ALIGNMENT_END,
    /** The items in the container are stretched and padded. */
    ARKUI_ITEM_ALIGNMENT_STRETCH,
    /** The items in the container are aligned in such a manner that their text baselineSs are aligned along the
     *  cross axis. */
    ARKUI_ITEM_ALIGNMENT_BASELINE,
}opforeground colorsAξ The foreground colors are the inverse of the component background colors. */
    ARKUI_COLOR_STRATEGY_INVERT = 0,
    /** The shadow colorsre the average color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_AVERAGE,
    /** The shadow colorsre the primary color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_PRIMARY,
} ArkUI_ColorStrategy_ dsAξO The child components are aligned with the start edge of the main axis. */
    V = 1,
    /** The child components are aligned in the center of the main axis. */
    `CENTER = 2,
    /** The child components are aligned with the end edge of the main axis. */
    <END = 3,
    /** The child components are evenly distributedrThe space between any two adjacent components
     *  is the same. The first component is aligned with the main-start, and the <last component is aligned with
     *  the main-end. */
    EPACE_BETWEEN = 6,
    /** The child components are evenly distributedrThe space between any two adjacent components
     *  is the same. The space between the first component and main-start, and that between the last component and
     *  cross-main are both half the size of the space between two adjacent components. */
    DPACE_AROUND = 7,
    /** The child components are evenly distributedrThe space between the first component
     *  and main-start, the space between the last component and main-end, and the space Abetween any two adjacent
     *  components are the same. */
    PACE_EVENLY = 8,
}op1directions of the main axis in the flex containerAξ The child components are arranged in the same direction as the main axis runs along the rows. */
    ARKUI_FLEX_DIRECTION_ROW = 0,
    /** The child components are arranged in the same direction as the main axis runs down the columns. */
    ARKUI_FLEX_DIRECTION_COLUMN,
    /** The child components are arranged opposite to the <b>ROW</b> direction. */
    ARKUI_FLEX_DIRECTION_ROW_REVERSE,
    /** The child components are arranged opposite to the <b>COLUMN</b> direction. */
    ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
}~2flex container has a single line or multiple linesAξ Theflex container are arranged in a single line, and they cannot overflow. */
    ARKUI_FLEX_WRAP_NO_WRAP = 0,
    /** The child cnflex container are arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP,
    /** Theflex container are reversely arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP_REVERSE,
} ArkUI_FlexWrap_ visibility valuesAξ" The component is visible. */
    U = 0,
    /** The component is hidden, and a placeholder is used for it in the layout. */
    ARKUI_VISIBILITY_HIDDEN,
    /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
    ARKUI_VISIBILITY_NONE,
} ArkUI_Visibility_ alignment modes betweenQ^and_;+		=Sξ Left aligned. */
    ARKUI_CALENDAR_ALIGNMENT_START = 0,
    /** Center aligned. */
    ARKUI_CALENDAR_ALIGNMENT_CENTER,
    /8** Right aligned. */
    ARKUI_CALENDAR_ALIGNMENT_END,
}|_op
mask typesAξ Rectangle. */
    ARKUI_MASK_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_MASK_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_(MASK_TYPE_ELLIPSE,
    /** Path. */
    q+$MASK_TYPE_PROGRESS,
} ArkUI_MaskType_ 7YtypesAξ Rectangle. */
    ZM = 0,
    /** Circle. */
    ARKUI_CLIP_TYPE_CIRCLE,
    /** Ellipse. */
    >j9,
    /** Path. */
    ARKUI_CLIP_TYPE_PATH,
} ArkUI_Clipz"radient color stop structureA/Color array. */
    const uint32_t* colors;
    /** Position array. */
    float* stops;
    /** Length array. */
    int size;
} ArkUI_ColorStop_ custom shapesAξ Rectangle. */
    u = 0,
    /** Circle. */
    ARKUI_SHAPE_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_SHAPE_TYPE_ELLIPSE,
    /** Path. */
    AR&KUI_SHAPE_TYPE_PATH,
} ArkUI_ShapeType_ gradient directionsAξ From right to left. */
    8 -LEFT = 0,
    /** From bottom to top. */
    8 (TOP,
    /** From left to right. */
    8 *RIGHT,
    /** From top to bottom. */
    8 7BOTTOM,
    /** From lower right to upper left. */
    8 9LEFT_TOP,
    /** From upper right to lower left. */
    8 <LEFT_BOTTOM,
    /** From lower left to upper right. */
    8 :RIGHT_TOP,
    /** From upper left to lower right. */
    8 *RIGHT_BOTTOM,
    /** No gradient. */
    8 'NONE,
    /** Custom direction. */
    8&,
}7_ word break rulesAξ Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
     *  only at a space character for non-CJK text (such as English). */
    ARKUI_WORD_BREAK_NORMAL = 0,
    /** Word breaks can occur between hany two characters for non-CJK text. CJK text behavior is the same as for
     *  <b>NORMAL</b>. */
    ,
    /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
     *  lines at appropriate characters (for example, spaces) whenever possible.
        CJK text behavior is the same as for <b>NORMAL</b>. */
    WORLine breaks can occur between any two syllabic units for non-CJK text.
     * CJK text behavior is the same as for <b>NORMAL</b>.Q/ARKUI_WORD_BREAK_HYPHENATION,
} ArkUI_WordBreak_!i
sAξ An ellipsis is used at the start of the line of text. */
    ARKUI_ELLIPSIS_MODE_START = 0,
    /** An ellipsis is used at the[ center of the line of text. */
    ARKUI_ELLIPSIS_MODE_CENTER,
    /** An ellipsis is usedaline of text. */
    ARKUI_ELLIPSIS_MODE_END,
    /**
     *@brief An ellipsis is used at the start of the line of text for multiline and single line.
     *
ELLIPSIS_MODE_MULTILINEb@brief An ellipsis is used at the center of the line of text for multiline and single line.
     *
4ELLIPSIS_MODE_MULTILINE_CENTER,
} ArkUI_EllipsisMode_ image rendering modesAξ Render image pixels as they are in the original source image. */
    ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
    /** Render imagZe pixels to create a monochrome template image. */
    ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
}n_ s-1Dξ Top edge of the window. */
    ARKUI_TRANSITION_EDGE_TOP = 0,
    /** Bottom edge of the window. */
    ARKUI_TRANSITION_EDGE_BOTTOM,
    /** Left edge of the window. */
    ARKUI_TRANSITION_EDGE_START,
    /** Right edge of the window. */
    ARKUI_TRA'NSITION_EDGE_END,
} ArkUI_TransitionEdg}N^ Bξ The content of the view is blended in sequence on the target image. */
    BLEND_APPLY_TYPE_FAST = 0,
    /** The content of t? and? are drawn on the offscreen canvas, and then blended with
     *  the existing content on the canvas. */
    BLEND_APPLY_TYPE_OFFSCREEN,
} ArkUI_BlendApplyza mask areaA/r,"mask area. */
    float x;
    /**ѯmask area. */
    float y;
    /** Width of the mask area. */
    float width;
    /** Height of the mask area. */
    float he+ight;
} ArkUI_Rect;

/**
 * @brief Describe3%		=S
Width, in px. */
    int32_t width;
    /** Height, in px. */
    int32_t height;
} ArkUI_IntSize;

/**
 * @brief Describes the9	]		=S
HPia, in px. */
    int32_t x;
    /** Vertical coordinate, in px. */
    int32_t y;
} ArkUI_IntOffse^!!animation onFinish callback typesAξ Thentire animation is removed once it has finished. */
    ARKUI_FINISH_CALLBACK_REMOVED = 0,
    /** The callback is invoked when 
logically enters the falling state, though it may still be in its
      * long tail state. */
    ARKUI_FINISH_CALLBACK_LOGICALLY,
} ArkUI_FinishCallbackType_ alignment modes ofm~Rq,Ce list items are packed toward the start edge of the list containerg. */
    ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
    /** The list items are centered in the list container. */
    ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
    /** The list items are packed toward the end edge of the list container along th). */
    ARKUI_LIST_ITEM_ALIGNMENT_END,
}~;

/**
  * @brief define!barrier line.
  *
  * @since 12
 aqe barrier is the leftmost of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_START = 0,
    /** The barrier is on the rightmost side of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_END,
    /** The barrier is at the top of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_TOP,
    /** The barrier is at the bottom of all its referencedIds. */
    ARKUI_BARRIER_<DIRECTION_BOTTOM
} ArkUI_BarrierDirection;

/**
  * @brief d/chain.
  *
  * @since 12
 aqNComponents are evenly distributed among constraint anchor points. */
    ARKUI5STYLE_SPREAD = 0,
    /** Except for the first and last two sub-components,
      * other components are evenly distributed bet/ween the constraint anchor points. */
    ARKUI5TSTYLE_SPREAD_INSIDE,
    /** No gaps in subcomponents within the chain. */
    ARKUI5STYLE_PACKED,
}4%;

/**
 * @brief Describes the margin	=S
_Top margin, in vp. */
    float top;
    /** Right margin, in vp. */
    float right;
    /** B%S */
    float bottom;
    /** Left margin, in vp. */
    float left;
} ArkUI_Margin_ component unitsAξ= Default, which is fp for fonts and vp for non-fonts. */
      = -1,
    /** px. */
    PX = 0,
    /** vp. */
    VP,
    /** fp. */
    FP
} ArkUI_LengthMetricUni^!	render fi@ξ Maintains the content size of the animation's final state,
      * and the content is always centered with the component.*/
    ARKUI_RENDER_FIT_CENTER = 0,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top cent	RENDER_FIT_TOP,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the bottom cent	RENDER_FIT_BOTTOM,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned to the left of theRENDER_FIT_LEFT,
    /** Maintains the content size of the animation's final state,
      * and the content is always right-aligned with theRENDER_FIT_RIGHT,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with[		RENDER_FIT_TOP_LEFT,
    /** Keep the content size of the animation final state,
      * and the content is always aligned withE		RENDER_FIT_TOP_RIGHT,
    /** Keep the content size of the animation final state,
      * and the content always aligns with the lower-RENDER_FIT_BOTTOM_LEFT,
    /** Keep the content size of the animation final state,
      *and the content always aligns with t	he lower-qg		RENDER_FIT_BOTTOM_RIGHT,
    /** The aspect ratio of the animation's final state content is not considered,
      *and the content is always scaled to thep		RENDER_FIT_RESIZE_FILL,
    /** Reduce or enlarge the aspect ratio of the animation final state content,
      * so that the coWntent is fully displayed in the component,
      * and keep the center aligned with theRENDER_FIT_RESIZE_CONTAIN,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so &that the content is fully displayed in- * When there is left over in the broad direc,
      * the content is aligned to the left of the component,
      * and when there is left over in the high direction of the
2,
      * the content is aligned to the top of theRENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
  /    * so that the content is fully displayed in' * When there is left in the wide direc%,
      * the content is aligned with%	3right.
      * When there is left in the high direc%,
      * the content is aligned with%	bottom. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
    /** Keep the aspect ratio of the animation final state contente reduced or enlarged,
      * so that both sides of the content are greater than or equal to both sid! ,
      * and keep the center aligned with the component to display the middle part of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged
      * so that both sides o;f the content are exactly greater than or equal to both sid!  * When the content width is left, the content is aligned to the left of the component,
      * and the left portion of the content is displayed. When the content is left in the high direction,
      * the content and the component remain top aligned, showing the top side of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
      * that both sides of the content are exactly greater than or equal to both sid!  * When the content width is left, the content and the component remain right aligned,
      * and the right part of the content is displayed. When the content is left in the high direction,
      * the content and the component remain aligned at the bottom,
      * and the bottom part of the content is displayed. */
    ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
} ArkUI_RenderFi^!button typesAξ Normal button (without rounded corners by default). */
    ARKUI_BUTTON_TYPE_NORMAL = 0,
    /** Capsule-type button (the round corner is half of the height by default). */
    ARKUI_BUTTON_TYPE_CAPSULE,
    /** Circle button. */
    ARKUI_BUTTON_TYPE_C/IRCLE,
    /**
     * Rounded rectangle button.y5ARKUI_BUTTON_ROUNDED_RECTANGLE = 8
} ArkUI_ButtonType_ autofill typesAξ Username. Password Vault, when enabled, can automatically save and fill in usernames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
    /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
    /** New password. Password Vault, when enabled, can automatically generate a new password. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
    /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
     *  street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
    /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
    /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  districts and counties. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
    /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
    /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
    /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
    /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
    /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
    /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
    /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
    /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
     *  codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
    /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
     *  fill in phone numbers with country codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
    /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
    /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
     *  card numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
    /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
    /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
    /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in address information without street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
    /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
    /**
     * Passport number. The scenario-based autofill feature, when enabled, can automatically save and fill in passport
     * numbers.
     * @sinQ*ARKUI_TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMB3 Passport validity. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  passport validities.
     * a{ARKUI_TEXTINPUT_CONTENT_TYPE_VALIDITY,
    /**
     *  Place of issue. The scenario-based autofill feature, when enabled, can a>utomatically save and fill in
     *  place of issues.
     * a{ARKUI_TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
    /**
     *  Tax organization. The scenario-based autofill feature, when enabled, canB automatically save and fill in tax
     *  organizations.
     * a{$ARKUI_TEXTINPUT_CONTENT_TYPE_ORGANIZ3 Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
     *  @sinceh{ARKUI_TEXTINPUT_CONTENT_TYPE_TAX_ID,
    /**
     *  City name and state name or state code. The scenario-based autofill featurne, when enabled, can automatically
     *  save and fill in city names and state names or state codes.
     * a{ARKUI_TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_STATE,
    /**
     *  Flight number. The scenario-based autofill feature, when eJnabled, can automatically save and fill in flight
     *  numbers.
     * a{(ARKUI_TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMB3 License number. The scenario-based autofill feature, when enabled, can automatically save and fill in license
     *  numbers.
     * a{)ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_NUMB3 License file number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license file numbers.
     * a{.ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMB3 License plate number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license plate numbers.
     * a{ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_PLATE,
    /**
     *  Engine number. The scenario-based autofill feature, when enabled, cAan automatically save and fill in engine
     *  numbers.
     * a{(ARKUI_TEXTINPUT_CONTENT_TYPE_ENGINE_NUMB3 License chassis number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license chassis numbers.
     * a{6ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
}Pyw	text input styleAξ Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
     *  font size of the selected text. */
    ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
    /** Inline input style. The background height of the se textѽQheight of the text box. */
    ARKUI_TEXTINPUT_STYLE_INLINE
} ArkUI_TextInputStyl}	input box޼ξ6Default appearance mode, won't adopt immersive styles.q(!	Immersive mode.q4IMMERSIVE = 1,
    /**
     * Light immersive style.q9LIGHT_IMMERSIVE = 2,
    /**
     * Dark immersive style.qDARK_IMMERSIVE = 3,
}~ entity type for text recognitionAξ Phone Number.*/
    ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
    /** Link. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
    /** Mailbox. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
    /** Address. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
} Ark~ theKcDξ domOT,
    /** digim,
}j~& the pattern of element arrangement in4 Swiper1+	=Sξ In the folded state, when the ListItem slides in the opposite direction to the main axis,
     * the operation item is hidden.*/
    ARKUI_STATE_COLLAPSED = 0,
    /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
     * th*e operation item is displayed.*/
    ARKUI_STATE_EXPANDED,
    /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
    ARKUI1_STATE_ACTIONING,
} ArkUI_ListItemSwipeActionStat}J the explicit and implicit mode of the SwipeAction method for the Listitem1+	=Sξ The ListItem can continue to be scratched after the distance exceeds the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
    /** The sliding distance of the ListItem cannot exceed the size of the scratched component.N*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
} ArkUI_ListItemSwipeEdgeEffect~ error code enumeration valuesAξ @error No errors. */
   , = 0,
    /** @error Parameter error. */
   1 = 4	CAPI init error.QR	  = 500,	Internal error occurs, such as failure occurs because of the internal environment error,
     * or operation failed because of the internal execution failed.q^	 = 100	#The XComponent is in invalid state.yBARKUI_ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
    /** @error=	 %specific properties or events. */
   1 = 106102,
    /** @error The does not suppor`-		S. */
   1*F = 106103,
    /** @error The lazy loading adapter is not bound to the8LDAPTER_NOT_BOUND = 106104,
    /** @error The adapter already exists. */
   1DAPTER_EXIST = 106105,
    /** @error The corresponding node already has a child node and cannot add an adapter. */
    ARKUI_EY	gHILD_NODE_EXIST = 106106,
    /** The parameter length in the parameter event exceeds the limit. */
   _%p_ = 106107,
    /** T`. */
   _*    = 106108,
    /** Tf2 */
   _NO_RETURN = 106109,	,The event type is not supported by the node._j	5 = 106110,
    /** The index value is invalid. */
   NDEX_INVALID = 106200,
    /**  Failed to query route navigation information. */
    ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201,^
    /** The buffer size is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 1062*	Thek	s_O	 = 10620	&The node is running on invalid thread._ON_INVALID_THREAD = 106204,	F܉	"	$ = 1062i	TaM	! 
 = 106206,		This node	 	  = 1062	The node cannot be adopted._CAN_NOT_BE_ADOPTED = 106208,	The node cannot adopt children._	
 = 106209,	Ѕ	4 	
 = 106210,	 The node type is not custom node%_T_CUSTOM_NODE = 1064	Node already has children%X	HILD_EXISTED = 1064*	RenderNode parent is exist'(ERROR_CODE_RENDER_PARENT_EXISTED = 10640	RenderNode child is not exist%+ERROR_CODE_RENDER_CHILD_NOT_EXIST = 106404,	Param is out of range%8OUT_OF_RANGE = 1064i	,The RenderNode is obtained from a FrameNode.4ARKUI_ERROR_CODE_RENDER_IS_FROM_FRAME_NODE = 106406,	The RenderNode is obtained from a FrameNode,
     * and its corresponding FrameNode is no longer in the adopted state.
     * @5ARKUI_ERROR_CODE_RENDER_HAS_INVALID_FRAME_NODE = 1064	The node is not adopted.2ARKUI_ERROR_CODE_RENDER_NOT_ADOPTED_NODE = 106408,	+The node requesting focus is not focusable.q*ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150	3The node requesting focus has unfocusable ancestor.q3ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150*	*The node requesting focus does not exists.q+ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 15000	The snapshot taking is timeout.qR	e	TIMEOUT = 160*	The provided color space ord	%k For details about the error codes,
     * see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).PR	e	d	 = 16000	TIe	 te	Ji    * For details about the error codes, see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).PR	e	$0 = 160004,
    /** The component is not a scroll1_N_SCROLLABLE_CONTAINER = 180001,
    /** The buffer is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 18000*	The event is not a clone event.q_T_CLONED_POINTER_EVENT = 18000	!The component status is abnormal.q2.OST_CLONED_COMPONENT_STATUS_ABNORMAL = 180004,	)No component hit to respond to the event.q29OST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180i	Input event typeq.ERROR_INPUT_EVENT_TYPE_NOT_SUPPORTED = 180006,	invalid styled string.-ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 1801	The gesture recognizer typPQ5ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED = 1801*	Tx		Qx	# = 190	Theq)y	QR	y	 = 190*	6operation is not allowed for current drag drop pharse.y:ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190004,	Parameter error.2ERROR = 100023,
} ArkUI_	&*
 * @since 12
 The animation is*/
   j,
    /** The animation is being played. */
    ARKUI_ANIMATION_STATUS_RUNNING,
    /** The animation is paused. */
    ARKUI_ANIMATION_STATUS_PAUSED,
    /** The animation is stopped. */
    ARKUI_ANIMATION_STATUS_STOPPED,
} ArkUI_AnimationStatus;

/**
T.
 *
 * @since 12
= Before execution, the animation does not apply any styles to{	%After execution, the animation restorwto its default state. */
   0NONE,
    /** T}Dretains the state set by the last keyframe encountered
     * during. */
   0#n,
    /** The animation applies the values defined in the first relevant keyframe once it is applied to
     *{?, and retains the values during the period set by delay. */
   0BACKWARDS,
    /** The animation follows the rules for both Forwards and Backwards,
     * extending the animation attributes in both directions. */
   0BOTH,
} ~)state type for the accessibility checkboxAξ The Checkbox unchecked. */
    ARKUI_ACCESSIBILITY_UNCHECKED = 0,
    /** The Checkbox checked. */
    ARKUI_ACCESSIBILITY_CHE'CKED,
} ArkUI_AccessibilityCheckedState_ $&`sAξ The animation plays in forward loop mode. */
    ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
    /** The animation plays in reverse loop mode. */
    ARKUI_ANIMATION_DIRECTION_REVERSE,
    /** The animation plays in alternating loop mode. When the animation i@O for an odd number of times, the
     *  playback is in forward direction. When0 for an even number of times, the playback is in
     *  reverse direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE,
    /**; The animation plays in reverse alternating loop mode. When0O for an odd number of times,
     *  the playback is in reverse direction. When0 for an even number of times, the playback is
     *  in forward direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
} ArkUI_AnimationDirection_ hover effects when aA*
 * @since 23 Default effect. */
    ARKUI_HOVER_EFFECT_AUTO = 0,
    /** Scale effect. */
    ARKUI_HOVER_EFFECT_SCALE,
    /** Highlight effect. */
    ARKUI_HOVER_EFFECT_HIGHLIGHT,
    /** No effect. */
    ARKUI_HOVER_EFFECT_NONE,
} ArkUI_HoverEffect;

/**
 * @brlpriority levels for focus management within the application.
 * These levels determine the sequence in which UI components rece2ive focus during user interaction.
 *
 * @since 23 Default priority. */
    < = 0,
    /** Higher priority. */
    ARKUI_FOCUS_PRIORITY_PRIOR = 2000,
    /** Previous focus priority. */
    ARKUI_FOCUS_PR-IORITY_PREVIOUS = 3000,
} ArkUI_FocusPriority~% the rolling source enumeration valueAξ Finger drag. */
    ARKUI_SCROLL_SOURCE_DRAG = 0,
    /** Inertial roll after finger drag. */
    ARKUI_SCROLL_SOURCE_FLING,
 f   /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
    ARKUI_SCROLL_SOURCE?& Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
    ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
    /** Drag the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR,
    /** Inertia scrolling after dragging the scroll bar.*/
  1  ARKUI_SCROLL_SOURCE_SCROLL_BAR_FLING,
    /** ToJcauses unanimated scrolling.*/
    ARKUI_SCROLL_SOURCE_SCROLLER,
    /** Toacauses the scroll to drive the painting.*/
    ARKUI_SCROLL_SOURCE_ANIMATION,
} ArkUI_ScrollSourc}[+YAξ click action. */
    ARKUI8_CLICK = 1 << 0,
    /** long click action. */
    ARKUI6_LONG_CLICK = 1 << 1,
    /** cut action. */
    ARKUI0_CUT = 1 << 2,
    /** copy action. */
    ARKUI2_COPY = 1 << 3,
    /** paste action. */
    ARKUI_PASTE = 1 << 4,
}MY~,translation options for component transitionA/T. */
    float x;
    /** T$. */
    float y;
    /** T-**/
    float z;
} ArkUI_TranslationOptions~(scaling options for component transitionA/mScale ratio along the x-axis. */
    float x;
    /** Scale ratio along the y-axis. */
    float y;
    /** Sp*E (not effective for the current 2D graphics). */
    float z;
    /**q,\. */
    float centerX;
    /**ѯ\,. */
    float centerY;
} ArkUI_ScaleOptions~)rotation options for component transitionA/O$*/
    float x;
    /** YP#*/
    float y;
    /** ZP#C*/
    float z;
    /** Rotation angle. */
    float angle;
    /**q,\. */
    float centerX;
    /**ѯ\. */
    float centerY;
    /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
    float centerZ;
b    /** Distance from the user to the z=0 plane. */
    float perspective;
} ArkUI_RotationOptions~a struct for1	A%	~a struct for1)A%	)CustomSpanMetrics ArkUI_CustomSpanMetrics~a struct for	)A%	+CustomSpanDrawInfo ArkUI_CustomSpanDrawInfo~state of the NavDestination1+	=Sξ The NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
    /** The NavDestination hide. */
    ARKUI_NAV_DES>TINATION_STATE_ON_HIDE = 1,
    /** The NavDestination is moun tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
    /** The NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
    /** Before the NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
    /** Before the NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
    /** Before the NavDestination mount to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
    /** Before the NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
    /** The NavDestination returns fdrom the component.*/
    ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
} ArkUI_NavDestinationStat} the state of Router PageAξ The Router Page is about to be created. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
    /** The Router Page is about to be destroyed. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
    /** The Router Page show. */
    ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
    /** The Router Page hide. */
    ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
    /** The Router Page returns. */Y
    ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
} ArkUI_RouterPageState;

/**
 * @brief d of theaAξ The default security zone includes the status bar and navigation bar. */
    ARKUI_SAFE_AREA_TYPE_SYSTEM = 1,
    /** Non-secure areas of the device, such as bangs or hole holes. */
    ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
    /** Soft keyboard area. *>/
    ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
} ArkUI_SafeAreaz2 an enum for the areas of the <b>ListItemGroup</b>1+	=Sξ Outside the1ItemGroup</b>LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
    /** Area when the <b>ListItemGroup</b> component does not have the header, footer, or lis.t item. */
    ARKUI_LIST_ITEM_SWIPE_AREA_NONE 2ItemGroup</b>)LIST_ITEM_SWIPE_AREA_ITEM,
    /** Header1ItemGroup</b>+LIST_ITEM_SWIPE_AREA_HEADER,
    /** Footer1ItemGroup</b>LIST_ITEM_SWIPE_AREA_FOOTER,
};

/**
 * @brief d ofaAξ Upper area. */
    ARKUI_SAFE_AREA_EDGE_TOP = 1,
    /** Lower area. */
    ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Front area. */
    ARKUI_SAFE_AREA_EDGE_START = 1 << 2,
    /** Tail area. */
    ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
} ArkUI_SafeAreaEdg}< an enum for the focus movement directions.
 *
 * @since 18
 Move focus forward. */
    ARKUI_FOCUS_MOVE_FORWARD = 0,
    /** Move focus backward. */
    ARKUI_FOCUS_MOVE_BACKWARD,
    /** Move focus up. */
    ARKUI_FOCUS_MOVE_UP,
    /** Move focus down. */
    ARKUI_FOCUS_MOVE_DOWN,
    /** Move focus left. */
    ARKUI_FOCUS_MOVE_LEFT,
    /** Move focus right. */
    ARKUI_FOCUS_MOVE_RIGHT,
} ArkUI_FocusMove;

/**
 * @brief defines * of the customDialog's keyboard avoid modeݼξU Defines avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_DEFAULT	not avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_NONE,
} ArkUI_KeyboardAvoidMode;

/**
 * @brief define of area in hover modeݼξ Layout top half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
    /** Layout bottom half screeen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
} ArkUI_HoverModeAreaType_!
xpand modeܼξ Not expand. */
    ARKUI_NOT_EXPAND = 0,
    /** Expand. */
    ARKUI_EXPAND = 1,
    /** Lazy expand. Expand the children of ?node if needed. */
    ARKUI_LAZY_EXPAND = 2,
} ArkUI_ExpandMod}J( style of the <b><Swiper></b> component.aVthe UI states of a component, used for handling state-specific styles.
 *
 * @since 20 Normal state. */
    UI_STATE_NORMAL = 0,
    /** Pressed state. */
    UI_STATE_PRESSED = 1 << 0,
    /** Focused state. */
    UI_STATE_FOCUSED = 1 << 1,
    /** Disabled state. */
    UI_STATE_DISABLED = 1 << 2,
    /**
     * Selected state. This stgate is supported only by specific component types:
     * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>,"WMenuItem</b>.
     */
    UI_STATE_SELECTED = 1 << 3,
    /**
     * The hovered state.`"*UI_STATE_HOVERED = 1 << 4,
} ArkUI_UIState_!dge direction.
 *
 * @since 20 Set all edge direction. */
    ARKUI_EDGE_DIRECTION_ALL = 0,
    /** Set left edge direction. */
    ARKUI_EDGE_DIRECTION_LEFT,
    /** Set right edge direction. */
    ARKUI_EDGE_DIRECTION_RIGHT,
    /** Set top edge direction. */
    ARKUI_EDGE_DIRECThION_TOP,
    /** Set bottom edge direction. */
    ARKUI_EDGE_DIRECTION_BOTTOM,
} ArkUI_EdgeDirection;
 a!corner direction.
 *
 * @since 20 Set all corner direction. */
    ARKUI_CORNER_DIRECTION_ALL = 0,
    /** Set top left corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_LEFT,
    /** Set top right corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_RIGHT,
    /** Set bottom left corner direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
    /** Set bottom right corner direction. */
    ARKUI_CORNER_DIRECTI(ON_BOTTOM_RIGHT,
} ArkUI_CornerDirection_ !PixelRoundPolicy.
 *
 * @since 21 No Force round the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_NOFORCEROUND = 0,
    /** Force ceil the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCECEIL,
    /** Force floor the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCEFLOOR,
} ArkUI_PixelRoundCalcPo:licy;

/**
 * @brief Menu pop-up strategy.
 *
 * @since 23 Determine w
menu according to the underlying default logic. */
    ARKUI_MENU_POLICY_DEFAULT = 0,
    /** Never pop up the menu. */
    ARKUI_MENU_POLICY_HIDE = 1,
    /** Always pop up the menu. */
    ARKUI_MENU_POLICY_SHOW = 2,
} ArkUI_MenuPolicy;

/**
 * @brief : the direction to expand the swipe action.
 *
 * @since 21#When the List direction is vertical, it indicates the left in LTR mode and right in RTL mode.
     * When the List direction is4 horizontal, it indicates the top.
     */
    ARKUI_DIRECTION_START!	When the List direction is vertical, it indicates the right in LTR mode and left in RTL mode.
     * When the List direction is horizontal, it indicateO/
    ARKUI8_DIRECTION_END = 1,
} ArkUI_ListItemSwipeActionDirection_ +input tool types supported for response reg*
 * @since 23 All input tool types. */
    '# = 0,
    /** Finger input. */
    $)FINGER = 1,
    /** Stylus input. */
    $%PEN = 2,
    /** Mouse input. */
    $MOUSE = 3,
}6";A the types for expanding the safe area in layout.
 *
 * @since 23Y Default non-safe area of the system, including the status bar and navigation bar. */
   ͹! = 1,
} ArkUI_LayoutSafeAreaType;A the edges for expanding the safe area in layout.
 *
 * @since 23" Top edge of the safe area. */
   5TOP = 1,
    /** Bottom edge of the safe area. */
   <BOTTOM = 1 << 1,
    /** Start edge of the safe area. */
   "4 = 1 << 2,
    /** End edge of the safe area. */
   <END = 1 << 3,
    /** Vertical edge of the safe area. */
   
VERTICAL =a8BOTTOM,
    /** Horizontal edge of the safe area. */
   HORIZONTAL ="/END,
    /** All edges of the safe area. */
   ALL =VERTICALHORIZONTAL,
}]_ )localizedAlignment modes.
 *
 * @since 23 Top start. */
    *TOP_START = 0,
    /** Top center. */
    TOP,
    /** Top end. */
    3TOP_END,
    /** Vertically centered start. */
    <START,
    /** Horizontally and vertically centered. */
     *,
    /** Vertically centered end. */
    "END,
    /** Bottom start. */
    BBOTTOM_START,
    /** Horizontally centered on the bottom. */
    #BOTTOM,
    /** Bottom end. */
    BOTTOM_END,
}|;a,graphics rendering strategy.
 *
 * @since 23and?^ will be drawn directly onto the screen canvas. */
    ARKUI_RENDERSTRATEGY_FAST = 0,
    /**
 and? will first be drawn onto an off-screen canvas,
    *     then undergo some graphic rendering operations, and finally be drawn Bonto the main canvas.
    */
    ARKUI_RENDERSTRATEGY_OFFSCREEN,
}_ LayoutPolicy.
 *
 * @since 21 The component fills its parent, which means its size is as large as its parent */
    ARKUI_LAYOUTPOLICY_MATCHPARENT = 0,
    +	The component fills its content, which means its size is as large as its children but it is constrained
     * by its parent.
     */
    ARKUI_LAYOUTPOLICY_WRAPCONTENT,
    /** The component fills its content which means its size is as large as its chilDdren. */
    ARKUI_LAYOUTPOLICY_FIXATIDEALSIZE,
} ArkUI_LayoutPolicy~VC	#2	E	 {E	ooptions`]	ݼ%	SnapshotOptions ArkUI_SnapshotOptions;

/**
  * @brief TextPicker single column selector, supports mixing text and images.
  *
  * @since 19
 	TextPickerRangeContentArray ArkUI_TextPickerRangeContentArray;

 /**
   * @brief TextPicker multi column selector, supports mix+ing text and images.
   *
   * @since 19
  	KTextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArray~Fa two-dimensional point struct, with coordinates stored as float type.$Ox-axis coordinate.
     */
    float x;
    /**
     * y-axis coordinate.
     */
    float y;
} ArkUI_PointF;

 /**
   * @brieK6ptions for selection operation.
   *
   * @since 23
  	tFmF tsize constraint.
*1	_Create() t"deep copy of a size constraint.
*

"hnewB_Copy(const {:/**
* @brief Destroys the pointer to a size constraint.
*

" 	_Dispose({.maximum width for a size constraint, in px.
*

"hmaximum width1"_GetMaxWidth(const {.minimum width for a size constraint, in px.
*

"hminimum width1"_GetMinWidth(const {/maximum height for a size constraint, in px.
*

"hmaximum height1"_GetMaxHeight(const {/minimum height for a size constraint, in px.
*

"hminimum height1"_GetMinHeight(const {;width percentage reference for a size constraint, in px.
*

"hwidth percentage reference1" _GetPercentReferenceWidth(const {<height percentage reference for a size constraint, in px.
*

"hheight percentage reference1"!_GetPercentReferenceHeight(const { aximum width.
*

"^pxu
_SetMaxWidth({
, int32_t valueinimum width.
*

"^Rpxu
_SetMinWidth({
, int32_t valueaximum height.
*

"^maximum height, in pxu
_SetMaxHeight({
, int32_t valueinimum height.
*

"^minimum height, in pxu
_SetMinHeight({
, int32_t valuewidth percentage reference.
*

"^p percentage reference, in pxu
_SetPercentReferenceWidth({
, int32_t valuepercentage reference.
*

"^hpercentage reference, in pxu
_SetPercentReferenceHeight({
, int32_t valueQpointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
* in the <b>Drawing</b> module.
*
* @param contexSecanvas for drawing /DrawContext_GetCanvas(ArkUI_DrawContext* contex)size of a drawing area.
*
* @param contexSesize of the drawing area?	>IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* contexXTCreates <b>Grid</b> layout options.
 *
 * @return <b>Grid</b> layout options created	N* OH_N_Create();

/**
 * @brief Disposes of <b>Grid</b> layout options.
 *
 * @param option <b>Grid</b> layout options.
 * @since 22
	void OH_N	_Dispose(N T	~d	irregular grid item index array for the grid layout.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexesM Array of irregular grid item indexes.
 * @param size Size of the index arraya$	i		If an error codeP?	Sdue to a failure in parameter validation;
 *         the parameter must not be null	$T_SetIrregularIndexes(
   M$* option, uint32_t* irregularIndexesg(ZCirregular grid item index array for the grid layout.
 * When <b>OH_N_RegisterGetIrregularSizeByIndexCallback</b> is not set,
 * the grid item specified in <b>irregularIndexes</b> occupies an entire row of the grid that scrolls vertically or
 * an entire column of the grid that scrolls horizontally.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index arraya$	i		([BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error codeP?	Sdue to a failure in parameter validation;
 *         the parameter must not be null	$T_GetIrregularIndexes(
   M&* option, uint32_t* irregularIndexes, oF	V	6to obtain the row and column span for the grid item atx,*
 * @param option <b>Grid</b> layout option		0	w	BCallback that returns the row and column span for the grid item atx_*        itemIndex: grid item index, which must be within the range set by
 *        {@link OH_N_SetIrregularIndexes}	void OH_N-_RegisterGetIrregularSizeByIndexCallback(
   MJ* option, void* userData, ArkUI_GridItemSize (*callback)(int32_t itemIndexE	ή	
V	^to obtain the starting row, starting column, row span,
 * and column span for the grid item atx,*
 * @param option <b>Grid</b> layout option		0	w	Callback that returns the starting row, starting column, row span,
 *        and column span for the grid item at the specifiedx	#*        itemIndex: grid item index	void OH_N$_RegisterGetRectByIndexCallback(
   MJ* option, void* userData, ArkUI_GridItemRect (*callback)(int32_t itemIndexE	"0t/C"*w/C"?	7E* OH_1Et"the pointer to a.C#*
* @param opOX	a.C#u
7E	_Dispose(1EER	$FlowItem block configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @param size Array Lengthu
7E	_SetSize(1E* optiong@w	Gets the FlowItem grouping configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @return Array size. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option pa+rameter is abnormal, such as a null pointer1"7E	_GetSize(1EER	$
,items in a water flow section.
*
* @param opOX	a.C#a*target water flow section}-<Isectionu
7E_SetItemCount(1E* option,
    int32_t index, ~"s
<Isection that matchesx*
* @param opOX	a.C#a*target water flow section	number of;Isection1"7E_GetItemCount(1E* optionM	* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param opOX	a.C#a*gtarget water flow section.
* @param callback Gets the spindle size of the specified Item based on indexu
7E(_RegisterGetItemMainSizeCallbackByIndex(1E* option,
    int32_t index, float(*callback)(int32_t itemIndex));

/**
* @brief The FlowItem grouping configuration informatioTn getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param opOX	a.C#a*target water flow section.
* @param userData FlowItem Custom data.
* @param callback Gets the spindle size of the specified Item based on indexu
7E9_RegisterGetItemMainSizeCallbackByIndexWithUserData(
    1EP* option, int32_t index, void* userData,
    float (*callback)(int32_t itemIndexE	"-	0r]olumns (in a vertical layout) or rows (in a horizontal layout) of a water flow.
*
* @param opOX	a.C#a*)target water flow section.
* @param cross
~columns or rows, depending onu
7E_SetCrossCount(
    1E&* option, int32_t index, int32_t crosss
?columns (in a vertical layout) or rows (in a horizontal layout)AIsection
* that matchesx*
* @param opOX	a.C#a*target water flow sectionnumber of columns or rowz#7E_GetCrossCount(1E* optionM	$pAmn3 in the specified water flow section.
*
* @param opOX	a.C#a*;target water flow section.
* @param columnGap Indicates the`n to setu
7E_SetColumnGap(1E,* option,
    int32_t index, float columnGapQanAIsection that matchesx*
* @param opOX	a.C#a*target water flow sectionan.
* @since 12
*/
float OH_1E_GetColumnGap(1E* optionM	$pA3 in the specified water flow section.
*
* @param opOX	a.C#a*3target water flow section.
* @param rowGap IndicateAo to setu
7E_SetRowGap(1E)* option,
    int32_t index, float rowGapQGoAIsection that matchesx*
* @param opOX	a.C#a*target water flow sectionGo
* @since 12
*/
float OH_1E_GetRowGap(1E* optionM	$:argins for the specified water flow section.
*
* @param opOX	a.C#a*target water flow section.
* @param marginTop Indicates the top margin of the water flow section.
* @param marginRight Indicates the right margin of the water flow section.
* @param marginBottom Indicates the bottom margin of the water flow section.
* @pCaram marginLeft Indicates the left margin of the water flow sectionu
7E_SetMargin(1Ed* option, int32_t index,
    float marginTop, float marginRight, float marginBottom, float marginLef.margins of the water flow section that matchesx*
* @param opOX	a.C#a*target water flow sectionmargins?	
Margin OH_1E_GetMargin(1E* optionM	!#Creates a navigation indicator.
 *
4%the indicatora$	new indicator.
 1SwiperIndicator* OH_ArkUI_SwiperIndicator_Create(k typF	Destroy!indicator.
 *
 * @param indicatorљindicator.
  {8SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicatorld	nnavigation pointNswiper.
 *
 * @param indicatorљ	indicator^ enavigation pointN	swiper.
  {HSwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float)	5	enavigation pointNswiper.
 *
 * @param indicatorљ	indicatora$	enavigation pointNhswiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicatorld	nBnavigation point and the top of the swiper.
 *
 * @param indicatorљ	indicator^ e-navigation point and the top of the swiper.
  {FSwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float)	5	eBnavigation point and the top of the swiper.
 *
 * @param indicatorљ	indicatora$	enavigation point and the top of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicatorld	nDnavigation point and the right of the swiper.
 *
 * @param indicatorљ	indicator^ e/navigation point and the right of the swiper.
  {FSwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float)	5	enavigation pointwiper.
 *
 * @param indicatorљ	indicatora$	enavigation pointewiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicatorld	nEnavigation point and the bottom of the swiper.
 *
 * @param indicatorљ	indicator^ e0navigation point and the bottom of the swiper.
  {ISwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float)	5	eEnavigation point and the bottom of the swiper.
 *
 * @param indicatorљ	indicatora$	enavigation point and the bottom of the swiper.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicatorldh1dot for the dot indicator.
 *
 * @param indicatorљ	indicator^ phdot for the dot indicator.
  {DSwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float)	5	h1dot for the dot indicator.
 *
 * @param indicatorљ	indicatora$	hdot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicator);

/**
td
5the dot for the dot indicator.
 *
 * @param indicatorљ	indicator^ hdot for the dot indicator.
  {ESwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float)	L Obtains the height of the dot for the dot indicator.
 *
 * @param indicatorљ	indicatora$	height of the dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicatorldhZ
0ot for the dot indicator.
 *
 * @param indicatorљ	indicator^ phZ
ot for the dot indicator.
  {LSwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float)	 ObtainhZ
0ot for the dot indicator.
 *
 * @param indicatorљ	indicatora$	hZ
ot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicator)md
 1dot for the dot indicator.
 *
 * @param indicatorљ	indicator^ h 	dot for the dot indicator.
  {MSwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float)	 Obtains the h 1dot for the dot indicator.
 *
 * @param indicatorљ	indicatora$	h dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicato	r);

/**
Bmask style of the dot navigation indicator.
 *
 * @param indicatorљindicator.
 * @param mask Wr$mask style. True means to display.
  {FSwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t mask[Bmask style of the dot navigation indicator.
 *
 * @param indicatorљ	indicatora$	$mask style. True means to display.
  8SwiperIndicator_GetMask(ArkUI_SwiperIndicator* indicatorldm0dot navigation indicator.
 *
 * @param indicatorљBindicator.
 * @param color the color of the dot navigation indicatA
  {ISwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t color	0dot navigation indicator.
 *
 * @param indicatorљ	indicatora$	dot navigation indicatA
 x!9SwiperIndicator_GetColor(ArkUI_SwiperIndicator* indicatorldm	8dot for the navigation indicator.
 *
 * @param indicatorљ"indicator.
 * @param selectedColordot
  {YSwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColor	i<dot for the dot navigation indicator.
 *
 * @param indicatorљ	indicatora$	idot
 x!ASwiperIndicator_GetSelectedColor(ArkUI_SwiperIndicator* indicatorld
HmaxDisplayCount for the dot navigation indicator.
 *
 * @param indicatorљgindicator.
 * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
 * @return	#O	;\indicator is null or maxDisplayCount less then 6 or
 *         maxDisplayCount more then 9
  ZSwiperIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCou	5	s
HmaxDisplayCount for the dot navigation indicator.
 *
 * @param indicatorљ	indicatora$	@maxDisplayCount, span is 6-9.
 *         0 - indicator is null
  KSwiperIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicator);

/**
]hthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicatorљoindicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0q
1.0.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator, int32_t ignoreSize);

F	5	Rhthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicatorљ	indicatora$	R(the size of the indicator.
 * @since 19
9	FSwiperIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicatorldJspace between the dots of the navigation indicator.
 *
 * @param indicatorљRindicator.
 * @param space the space between the dots of the navigation indicator,!h8vp.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float spacF	5	Jspace between the dots of the navigation indicator.
 *
 * @param indicatorљindicator.
 * @return the space between the dots of the navigation indicator
 * @since 19
*/
float OH_ArkUI_SwiperIndicator_Get&Space(ArkUI_SwiperIndicator* indicator	reates a digital indicator.
 *qb new indicator.
 * @since 19
 */
N *OH_N_Create(ld	ngital indicatoMCswiper.
 *
 * @param indicator The pointer to the digital indicator^ egital indicatoM!swiper.
 * @since 19
 */
void OH_N_SetStartPosition(N* indicator, float)	Gets`gital indicatoMCswiper.
 *
 * @param indicator The pointer to the digital indicatora$	egital indicatoM"swiper.
 * @since 19
 */
float OH_N_GetStartPosition(N* indicatorld	nfgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator^ eDgital indicator and the top of the swiper.
 * @since 19
 */
void OH_N_SetTopPosition(N* indicator, float)	Gets`fgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicatora$	eEgital indicator and the top of the swiper.
 * @since 19
 */
float OH_N_GetTopPosition(N* indicatorld	ngital indicatoBwiper.
 *
 * @param indicator The pointer to the digital indicator^ egital indicato wiper.
 * @since 19
 */
void OH_N_SetEndPosition(N* indicator, float)	Gets`gital indicatoBwiper.
 *
 * @param indicator The pointer to the digital indicatora$	egital indicato!wiper.
 * @since 19
 */
float OH_N_GetEndPosition(N* indicatorld	ngital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Returns`Ggital indicator and the bottom of the swiper.
 * @since 19
 */
void OH_N_SetBottomPosition(N* indicator, float)	Gets`igital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicatora$	eHgital indicator and the bottom of the swiper.
 * @since 19
 */
float OH_N_GetBottomPosition(N* indicatorldfont color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param color fontq4Default value: 0xFF182431.
 * @since 19
 */
void OH_N_SetFontColor(N* indicator, uint32_t color	s the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return fontq
 * @since 19
 */
u1	Z_GetFontColor(N* indicatorldfont color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedColor fontq4Default value: 0xFF182431.
 * @since 19
 */
void OH_N_SetSelectedFontColor(N#* indicator, uint32_t selectedColor	s the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @r
eturn fontq
 * @since 19
 */
u1	Z_GetSelectedFontColor(N* indicatorldfont size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size q* @since 19
 */
void OH_N_SetFontSize(N* indicator, float siz{	s the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @returnp* @since 19
 */
float OH_N_GetFontSize(N* indicatorldfont size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param sizep* @since 19
 */
void OH_N_SetSelectedFontSize(N* indicator, float siz{	s the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @returnp* @since 19
 */
float OH_N_GetSelectedFontSize(N* indicatorldfont weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param fontWeight&6
 * @since 19
 */
void OH_N_SetFontWeight(N' *indicator, ArkUI_FontWeight fontWeighXGets the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return&&
 * @since 19
 */
ArkUI_FontWeight OH_N_GetFontWeight(N* indicatorldfont weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedFontWeight&6
 * @since 19
 */
void OH_N_SetSelectedFontWeight(
   M/ *indicator, ArkUI_FontWeight selectedFontWeighXGets the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 	* @return&&
 * @since 19
 */
ArkUI_FontWeight OH_N_GetSelectedFontWeight(N* indicator);

/**
 * @brief Destroys the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @since 19
 */
void OH_N	_Destroy(N *indicator);

/**
](the size of the indicator for {@link OH_N_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @param ignoreSize Whether to ignore the si7ze of the indicator. The value 1 means to ignore, and 0q
1.0.
 * @since 19
*/
void OH_N_SetIgnoreSizeOfBottom(N* indicator, int32_t ignoreSizF	5	R(the size of the indicator for {@link OH_NP_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicatora$	R(the size of the indicator.
 * @since 19
9	T_GetIgnoreSizeOfBottom(N* indicator	#reates a arrow style for swiper.
 *qbcnew arrow style.
 * @since 19
 */
ArkUI_SwiperArrowStyle *OH_ArkUI_SwiperArrowStyle_Create();

/**
9show the background for the arrow.
 *
 * @param arrowStyl!:	]arrow style.
 * @param showBackground whether to show the background for the arrow.
 *       vshow the backgrouna#
 *9 
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetShowBackground(ArkUI_SwiperArrowStyle *arrowStyle, int32_t showBackground);IGets whether to show the background for the arrow.
 *
 * @param arrowStyl!:	Parrow style.
 * @return whether to show the background for the arrow.
 *        vshow the backgrouna#
 * @since 19	>ArrowStyle_GetShowBackground(ArkUI_SwiperArrowStyle* arrowStylqP	3splay position of the arrow.
 *
 * @param arrowStyl!:	Uarrow style.
 * @param showSidebarMiddle the display position of the arrow.
 *       v/display on boths sides of the swiper,
 *       02display on boths sides of the swiper indicator.
 *9 
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle, int32_t showSidebarMid!-	;s the display position of the arrow.
 *
 * @param arrowStyl!:	9arrow style.
 * @return the display position of the arrowq0-play on boths sides of the swiper,
 *        0<display on boths sides of the swiper indicator.
 * @since 19	AArrowStyle_GetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStylqP	4background size of the arrow.
 *
 * @param arrowStyl!:	Farrow style.
 * @param backgroundSize the background size of the arrow߲	9H24</b> when the arrow displays on both sides of the swiper indicator.
 *9 32</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetBackgroundSize(A6rkUI_SwiperArrowStyle* arrowStyle, float backgroundSiz{	:s the background size of the arrow.
 *
 * @param arrowStyl!:	arrow stylea$	background size of the arrow߲	`since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(ArkUI_SwiperArrowStyle *arrowStylF	0Destroys the arrow style.
 *
 * @param arrowStyl!:	farrow style.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_Destroy(ArkUI_SwiperArrowStyle *arrowStylqP	arrow.
 *
 * @param arrowStyl!:	&arrow style.
 * @param backgroundColorarrow
 *9 P0x00000000</b> when the arrow displays on both sides of the swiper indicator.
 *9 0x19182431</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetBackgrouDndColor(ArkUI_SwiperArrowStyle *arrowStyle, uint32_t backgroundColor	arrow.
 *
 * @param arrowStyl!:	arrow stylea$	arrow
 * @since 19
 */
u1	?ArrowStyle_GetBackgroundColor(ArkUI_SwiperArrowStyle* arrowStylqP	(ize of the arrow.
 *
 * @param arrowStyl!:	6arrow style.
 * @param arrowSize the size of the arrow߲	9H18</b> when the arrow displays on both sides of the swiper indicator.
 *9 24</b> when the arrow displays on both sides of the swiper.
 *        The arrow size is fixed to 3/4 of the background size when the background is shown.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle, float arrowSiz{	/s the size of the arrow.
 *
 * @param arrowStyl!:	-arrow style.
 * @return the size of the arrow߲	[since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetArrowSize(ArkUI_SwiperArrowStyle* arrowStylqP	nnarrow.
 *
 * @param arrowStyl!:	8arrow style.
 * @param arrowColor the color of the arrow4x00182431</b>.
 * @since 19
 */
void OH_ArkUI_SwiperArrowStyle_SetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle, uint32_t arrowColor	arrow.
 *
 * @param arrowStyl!:	arrow stylea$	arrow
 * @since 19
 */
u1	:ArrowStyle_GetArrowColor(ArkUI_SwiperArrowStyle* arrowStylF	"Create auxiliary line information a!.
 *P	@number of auxiliary lines.
 * @return auxiliary line information	1GuidelineOption* OH_ArkUI_GuidelineOption_Create( gDestroy auxiliary line information.
 *
 * @param guideline auxiliary line information.
 * @since 12
 */
void OH_ArkUI_Guideline.Option_Dispose(ArkUI_GuidelineOption* guidelinqP	Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value id, must be unique and cannot have the same n|Bontainer.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guidelin)	M	!	auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value direction.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value, int3N		cleft or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param value Thleft or top of the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOption_SetPos8itionStart(ArkUI_GuidelineOption* guideline, float valueM	!	gright or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param value Thright side or bottom of the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_ArkUI_GuidelineOpti?on_SetPositionEnd(ArkUI_GuidelineOption* guideline, float valueM	!	Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @reeturn Id.
 * @since 12
 */
const char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guidelineM	!	auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return direction	KAxis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guidelineM	!	left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return Thleft or top of the containerH	"AGuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guidelineM	!	right side or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return Th%right side or bottom of the containerH	"?GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guidelineM	!creates barrier informationd&F.
 *
 * @param size Number of barriers.
 * @return barrier information	-BarrierOption* OH_ArkUI_BarrierOption_Create( gDestroy barrier information.
 *
 * @param barrierStyle barrier information.
 * @since 12
 */
void OH_ArkUI_BarrierOption_Dispos"e(ArkUI_BarrierOption* barrierStylqP	Id of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value id, must be unique and cannot have the same n|Bontainer.
 * @param index Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyl)	M	!	barrier.
 *
 * @param barrierStyle barrier information.
 * @param value direction.
 * @param index Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetDirection(
    ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_N	~d	dependent component of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value The ID of the dependent comp	_^Barrier index value.
 * @since 12
 */
void OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char)	M	!	Id of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The Id of the barrier.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle, int32_t in	N	Gbarrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The direc4barrier	VBarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyleM	!	dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @param referencedIndex dependent component Id index value.
 * @return The barrier's dependent components.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetReferencedId(
    ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedI`9	Gets the number of dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index aWuxiliary line index value.
 * @return The number of dependent components of the barrier0%	$CBarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyleM	!	Ktypes and parameters related to content transition effects.
 *
 * @since 21A	XQ;

/**
 * @brief creates content switching animation effects.
 *
 * @param type content transition type: 0-identity, 1-opacity.
 * @return contentaj
 * @since 21
 */
* OH__Create(int32_t typF	creates alignment rule information for subcomponents in relative containers.
 *
 * @return Alignment rule information.
 * @sinc	#* OH__Create();

/**
 * @brief Destroys the alignment rule information of subcomponents in relative containers.
 *
 * @param option *Alignment rule information of subcomponent~* @since 12
 */
void OH_	_Dispose(ER			Xtart alignment parameter.
 *
 * @param option Alignment rule information of subcomponent~&* @param id The id value of the anchor	alignment Align anchor0	0Tvoid OH__SetStart(
   * option, const char* id, alignmq		Wend alignment parameter.
 *
 * @param option Alignment rule information of subcomponent~&* @param id The id value of the anchor	alignment Align anchor0	0Tvoid OH__SetEnd(
   * option, const char* id, alignment);

/**
* @brief Set the parameters for horizontal center alignment.
*
* @param option Alignment rule information of subcomponent~k* @param id The id value of the anchor component.
* @param alignment Alignment relative to anchor componentu
#_SetCenterHorizontal(
   * option, const char* id, alignmq		\parameters for top alignment.
 *
 * @param option Alignment rule information of subcomponent~&* @param id The id value of the anchor	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH__SetTop(<* option, const char* id,
    ArkUI_VerticalAlignment alignmq		[bottom alignment parameters.
 *
 * @param option Alignment rule information of subcomponent~&* @param id The id value of the anchor	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH__SetBottom(
   * option, const char* id, ArkUI_VerticalAlignment alignment);

/**
* @brief Set the parameters for vertical center alignment.
*;
* @param option Alignment rule information of subcomponent~J* @param id The id value of the anchor component.
* @param alignment Align anchor componentu
#_SetCenterVertical(
   8* option, const char* id, ArkUI_VerticalAlignment alignmq	dhorizontal offset parametb under the anchor point constraint.
 *
 * @param option Alignment rule information of subcomponent~U* @param horizontal bias value in the horizontal direction.
 * @since 12
 */
void OH__SetBiasHorizontal(* option, float horizontal	vertical offset parametb under the anchor point constraint.
 *
 * @param option Alignment rule information of subcomponent~Q* @param vertical bias value in the vertical direction.
 * @since 12
 */
void OH__SetBiasVertical(* option, float vertical	aId of the start-aligned parameter.
 *
 * @param option Alignment rule information of subcomponent~$* @return The id value of the anchor0	0Tconst char* OH__GetStartId(ER	* @brief GetsNTtart-aligned parameter.
*
* @param option Alignment rule information of subcomponent~)* @return The alignment of the parameters?	 OH__GetStartAlignment(ER	"Wend alignment parameter.
 *
 * @param option Alignment rule information of subcomponent~D* @return End-aligned parameter id.
 * @since 12
 */
const char* OH_
_GetEndId(ER	f* @brief Get the end alignment parameter.
*
* @param option Alignment rule information of subcomponent~4* @return The alignment of the end-aligned parameter?	 OH__GetEndAlignment(ER	* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in t`* @return The id of the parameter of horizontal center alignment.
* @since 12
*/
const char* OH__GetCenterIdHorizontal(ER	* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in tH* @return The alignment of the horizontally centered alignment parameter?	 OH__GetCenterAlignmentHorizontal(ER	"Vtop-aligned parameters.
 *
 * @param option Alignment rule information of subcomponent~D* @return Top aligned parameter id.
 * @since 12
 */
const char* OH_
_GetTopId(ER	e* @brief Get the top-aligned parameters.
*
* @param option Alignment rule information of subcomponent~4* @return The alignment of the top-aligned parameter?	VerticalAlignment OH__GetTopAlignment(ER	"[bottom alignment parameters.
 *
 * @param option Alignment rule information of subcomponent~R* @return The id of the bottom-aligned parameter.
 * @since 12
 */
const char* OH__GetBottomId(ER	j* @brief Get the bottom alignment parameters.
*
* @param option Alignment rule information of subcomponent~7* @return The alignment of the bottom-aligned parameter?	VerticalAlignment OH__GetBottomAlignment(ER	* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the[* @return The id of the vertical center alignment parameter.
* @since 12
*/
const char* OH__GetCenterIdVertical(ER	* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in theB* @return The alignment of the vertical center alignment parameter?	VerticalAlignment OH__GetCenterAlignmentVertical(ER	"fbias value in the horizontal direction.
 *
 * @param option Alignment rule information of subcomponent~4* @return The bias value in the horizontal directionH	"#_GetBiasHorizontal(ER	"dbias value in the vertical direction.
 *
 * @param option Alignment rule information of subcomponent~E* @return bias value in vertical direction.
 * @since 12
*/
float OH__GetBiasVertical(ER	Create a configuration item for the ListitemSwipeActionItem interface settings.
 *
 * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
 *         it indicates creation failure, and the reason for the fa.ilure may be that the address space is full.
 9ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItemt Y the ListitemSwipeActionItem instance.
*
* @param item List Item SwipeActionItem instance/{ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content of ListItem SwipeAct]ionItem.
*
* @param item List Item SwipeActionItem instance.
* @param node Layout informationu
FListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* itemA	 the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
*L @param distance Component long-distance sliding deletion distance thresholdu
aListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distanceQ the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @return Component long-distance sliding deletion distance threshold. If -1.0f is returned, the return fails.
*         The possible cause of the failure is that the item parameter is abnormal, such as a null pointer.
* @since 12
*/
float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the event to be called when a sliding entry enters the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
*u
dListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)()	f>Ssliding entry enters the deletion area.
 *
 * @param item List Item SwipeActionItem	Ow		User defined	Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
   	"y	^B		Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
*
* @param item List It=em SwipeActionItem instance.
* @param callback Callback Eventu
[ListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)()	f>component enters the long-range deletion area and deletes a ListItem.
 *
 * @param item List Item SwipeActionItem instance.
 * 	Ow		User defined	Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* 	item,
   	"y	^B		Set the event to be called when a sliding entry exits the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Eventu
cListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)()	f>Rsliding entry exits the deletion area.
 *
 * @param item List Item SwipeActionItem	Ow		User defined	Callback Events.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
   	"y	^B		Setsliding state of a list itemB	item List Item SwipeActionItem instance.
* @param callback Callback Events.
*        swipeActionState The changed state.
* @sinB	QListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* item,
   	*ListItemSwipeActionState swipeActionState)	Qsliding state of a list item changes.
 *
 * @param item List Item SwipeActionItem	Ow		User defined	Callback Events.
 *        swipeActionState The changed state.
 * @since 12
 */
void OH_ArkUI_ListItemSwipeActionItem_SetOnStat<eChangeWithUserData(ArkUI_ListItemSwipeActionItem* item,
   	()ListItemSwipeActionState swipeActionStateE	ή	
$Create a configuration item for the  interface settings.
 *
 * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 1=ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOptiont  the A instance.
*
* @param option List Item SwipeActionOption instance/{;ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeAction?R	* @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
* of the ListItem SwipeActionItem.
*
*S @param option List Item SwipeActionItem instance.
* @param item Layout informationu
ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
* of the ListItem SwipeActionItem.
*
*S @param option List Item SwipeActionItem instance.
* @param item Layout informationu
ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @param edgeEffect Sliding effect.
* @since 1	u
ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeEdgeEffect edgeEffect);

/**
* @brief Get the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option para)meter is abnormal, such as a null pointer1"AListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeAction?R	3C	$liding operation offsetB	joption List Item SwipeActionItem instance.
* @param callback Callback Events.
*        offset Slide offsetu
ListItemSwipeActionOption_SetOnOffsetChange(ArkUI_ListItemSwipeActionOption* option,
    void (*callback)(float offset));

/**
	Osliding operation offset changes.
 *
 * @param option List Item SwipeActionItem	Ow		User defined	-Callback Events.
 *        offset Slide offse
	void OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* option,
    void* userDa	float offseE	ή	
Create configuration items for the ListChildrenMainSize interface settings.
 *
 * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure ma&y be that the address space is full.
 9ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOptiont W the ListChildrenMainSize instance.
*
* @param option The ListChildrenMainSize instance/{=ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize T		&default size of ChildrenMainSizeOption<+	option ListChildrenMainSize	defaultMainSize The default size of the ListItem under the List, measured in vp.
 * @return 0 represents success. If defaultMai?nSize is less than 0 or option is a null pointer, return 401.
  jListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
    float defaultMainSiz{	&default size of ChildrenMainSizeOption<+	option ListChildrenMainSize instance.
 * @return The default size of the ListItem under the List is 0, measured in vp.
 *         When the option is a null pointer, it returns -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSize T	,set the array size of ChildrenMainSizeOption<+	option ListChildrenMainSize	totalSize Array size.
  {VListChildrenMainSizeOption_Resize(ArkUI_ListChildrenMainSize* option, int32_t totalSizF	;size the ChildrenMainSizeOption array operation on the List1+	option ListChildrenMainSize	index To modify the starting position of the MainSize array.
 * @param deleteCount The number of MainSize arrays to be deleted starting from index.
 * @param addCount The number of MainSize arrays to be added starting from index.
 * @return 0 represents =success. If the function parameter is abnormal, return 401.
  ListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
    int32_t deleteCount, int32_t addCount)	@Update the value of the ChildrenMainSizeOption array in the List1+	option ListChildrenMainSize	index To modify the starting position of the MainSize array.
 * @param mainSize The actual modified value.
 * @return 0 represeAnts success. If the function parameter is abnormal, return 401.
  jListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
    int32_t index, float mainSiz{	+	ChildrenMainSizeOption array<+	option ListChildrenMainSize	k6	position of the value to be obtained.
 * @return The value of the specific position of the array. If the function parameter is abnormal, return -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetMainSize(ArkUI_ListChildrenMainSize* option, M	8Creates measurement information for this custom span.
 *qba <b>S</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 OH_
_Create(vo
isposes of(this custom span.
 *
 * @param info The  instance to be destroyed.
  {	_Dispose()\	
5	 font size of a custom span.
 *
 a	6	a$	font size. Iv, <b>0.0f</b> is returned.
 *4[ * @since 12
*/
float OH__GetFontSize()\	
Createsfor this custom span.
 *qbia <b>CustomSpanMetrics</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 7CustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(vo
isposes of[of this custom span.
 *
 * @param metrics The CustomSpanMetrics instance to be destroyed.
  {CustomSpanMetrics_Dispose(	(v	
~d	-width for a custom span.
 *
 * @param metricsљa <b>CustomSpanMetrics</b>	\+, in px. The width should be greater than 0a$	i		5Z  CustomSpanMetrics_SetWidth(	 , float widthld'for a custom span.
 *
 * @param metricsљa <b>CustomSpanMetrics</b>	widthh+, in px. The width should be greater than 0a$	i		5Z  CustomSpanMetrics_SetHeight(	 , float heighX4Creates drawing information for this custom span.
 *qbja <b>CustomSpanDrawInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 9CustomSpanDrawInfo* OH_ArkUI_CustomSpanDrawInfo_Create(voisposes of drawing information for this custom span.
 *
 * @param info The CustomSpanDrawInfo instance to be destroyed.
 * @sin&{CustomSpanDrawInfo_Dispose(6	05	8x-axis offset of the custom span relative to the mounted1+	j		$a$	x-axis offset. Iv, <b>0.0f</b> is returned.
 *4[= * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetXOffset(6	05	5top margin of the custom span relative to the mounted1+	j		$a$	top margin. Iv, <b>0.0f</b> is returned.
 *4[= * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineTop(6	05	8bottom margin of the custom span relative to the mounted1+	j		$a$	bottom margin. Iv   , <b>0.0f</b> is returned.
 *4[@ * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(6	05	:baseline offset of the custom span relative to the mounted1+	j		$a$	baseline offset. Iv, <b>0.0f</b> is returned.
 *4[> * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetBaseline(6	0PCreate a image frame from the image path.
 * @param src Indicates the image patha$	image frame object.
 *>?	 the object fails to be created. The possible cause is that
 * the src parameter is abnormal, for example, the pointer is null.
 * OH__CreateFromString(char* src	Greate a image frame from the drawable descriptor.
 *
 * @param drawableљdrawable descriptora$	image frame object.
 *>?	 the object fails to be created. The possible cause is that
 * the drawable parameter is abnormal, for example, the pointer is null.
 * OH_"_CreateFromDrawableDescriptor(
   1	* drawablF	Destroy!Y#image frame.
 *
 * @param imageInfoљimage frame.
  {	_Dispose(* imageIQ		Bframe.
 *
 * @param imageInfoљimage frame.
R#hOframe, and the unit is PX.
  {
_SetWidth(* imageInfo, int32_t width	Bframe.
 *
 * @param imageInfoљimage frame2	BAframe, and the unit is PX. Return 0 when the imageInfo is null.
  
_GetWidth(* imageIQ		<#image frame.
 *
 * @param imageInfoљimage frame.
{%* of the image frame, and the unit is PX.
  {_SetHeight(* imageInfo, int32_t heighX	#image frame.
 *
 * @param imageInfoљimage frame2	Uheight of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
  _GetHeight(* imageIQ		>image*widget.
 *
 * @param imageInfoљimage frame.
 * @param top>%image* widget,
 * and the unit is PX.
  {_SetTop(* imageInfo, int32_t top	>image*widget.
 *
 * @param imageInfoљimage framea$	>image*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
  _GetTop(* imageIQ		gimage*widget.
 *
 * @param imageInfoљimage frame.
 * @param left[>gimage* widget,
 * and the unit is PX.
  {	_SetLeft(* imageInfo, int32_t lefX	gimage*widget.
 *
 * @param imageInfoљimage framea$	gimage*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
  	_GetLeft(* imageIQ		d+ of the image frame.
 *
 * @param imageInfoљ)image frame.
 * @param duration Indicates_5 of each image frame, and the unit is milliseconds.
  {_SetDuration(* imageInfo, int32_t dura	d+ of the image frame.
 *
 * @param imageInfoљimage framea$	d\ of the image frame, and the unit is milliseconds.
 * Return 0 when the imageInfo is null.
  _GetDuration(* imageIQ	Create accessibility state.
 *qbaccessibility state object.
 *>?	 Wthe object fails to be created. The possible cause is that the address space is full.
 AccessibilityState* OH_ArkUI_AccessibilityState_Create(void);

/**
* @brief Dispose accessibility state.
*
* @param state accessibility state objectu
6AccessibilityState_Dispose(ArkUI_AccessibilityState* sQ	Set accessibility state disabled.
 *
 * @param state accessibility state object.
 * @param isDisabled accessibility state disab9led, Value 1 indicates disabled and 0 indicates enbled.
  {QAccessibilityState_SetDisabled(ArkUI_AccessibilityState* state, int32_t isDisable	Caccessibility state disabled.
 *
 * @param state accessibility stat0	Maccessibility state disabled, Value 1 indicates disabled and 0 indicates enbl:P0.
 *         If the function parameter is abnormal, return the default value.
  9AccessibilityState_IsDisabled(ArkUI_AccessibilityState* sQ	Set accessibility state selected.
 *
 * @param state accessibility state object.
 * @param isSelected accessibility state selecAted, Value 1 indicates selected, and 0 indicates not selected.
 *90.
  {QAccessibilityState_SetSelected(ArkUI_AccessibilityState* state, int32_t isSelecte	Caccessibility state selected.
 *
 * @param state accessibility stat0	Zaccessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *9P0.
 *         If the function parameter is abnormal, return the default value.
  9AccessibilityState_IsSelected(ArkUI_AccessibilityState* sQ	Set accessibility checked state.
 *
 * @param state accessibility state object.
 * @param checkedState checked state, and uses CY#CheckedState} enumeration value,
 *9 ARKUI_ACCESSIBILITY_UNCHECKED.
  {SAccessibilityState_SetCheckedState(ArkUI_AccessibilityState* state, int32_t checkedP		Baccessibility checked state.
 *
 * @param state accessibility stat0	checked state, :Y'#CheckedState} enumeration value,
 *9lARKUI_ACCESSIBILITY_UNCHECKED.
 *         If the function parameter is abnormal, return the default value.
  >AccessibilityState_GetCheckedState(ArkUI_AccessibilityState* sQ	Create accessibility value.
 *qbaccessibility state object.
 *>?	 Wthe object fails to be created. The possible cause is that the address space is full.
 AccessibilityValue* OH_ArkUI_AccessibilityValue_Create(void);

/**
* @brief Dispose accessibility value.
*
* @param value accessibility value objectu
.AccessibilityValue_Dispose(ArkUI_Accessibility`Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param min minimum value based on range components,l|	#{EAccessibilityValue_SetMin(ArkUI_AccessibilityValue* value, int32_t mi	Baccessibility minimum value.
 *
 * @param value accessibility valu0	(minimum value based on range components,B-1.
 *         If the function parameter is abnormal, return -1.
  -AccessibilityValue_GetMin(ArkUI_Accessibility`Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param max maximum value based on range components,l|	#{FAccessibilityValue_SetMax(ArkUI_AccessibilityValue* value, int32_t max	Baccessibility minimum value.
 *
 * @param value accessibility valu0	(maximum value based on range components,B-1.
 *         If the function parameter is abnormal, return -1.
  -AccessibilityValue_GetMax(ArkUI_Accessibility`Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param current value based on range components,l|	#{KAccessibilityValue_SetCurrent(ArkUI_AccessibilityValue* value, int32_t curr		Baccessibility current value.
 *
 * @param value accessibility valu0	(current value based on range components,B-1.
 *         If the function parameter is abnormal, return -1.
  1AccessibilityValue_GetCurrent(ArkUI_Accessibility`Set accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param rangeMin minimum value based on range components,l|	isince 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeMin(ArkUI_AccessibilityValue* value, int32_t rangeMi	Baccessibility minimum value.
 *
 * @param value accessibility valu0	(minimum value based on range components,N-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
9	2AccessibilityValue_GetRangeMin(ArkUI_Accessibility`Set accessibility maximum value.
 *
 * @param value accessibility value object.
 * @param rangeMax maximum value based on range components,l|	jsince 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeMax(ArkUI_AccessibilityValue* value, int32_t rangeMax	Baccessibility maximum value.
 *
 * @param value accessibility valu0	(maximum value based on range components,N-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
9	2AccessibilityValue_GetRangeMax(ArkUI_Accessibility`Set accessibility current value.
 *
 * @param value accessibility value object.
 * @param rangeCurrent value based on range components,l|	osince 18
*/
void OH_ArkUI_AccessibilityValue_SetRangeCurrent(ArkUI_AccessibilityValue* value, int32_t rangeCurr		Baccessibility current value.
 *
 * @param value accessibility valu0	(current value based on range components,N-1.
 *         If the function parameter is abnormal, return -1.
 * @since 18
9	6AccessibilityValue_GetRangeCurrent(ArkUI_Accessibility`Set accessibility text value.
 *
 * @param value accessibility value object.
 * @param text The textual description information&, which defaults to an empty string.
  {KAccessibilityValue_SetText(ArkUI_AccessibilityValue* value, const char* texX	?accessibility text value.
 *
 * @param value accessibility valu0	The textual description informa, which defaults to an empty string;
 *         If the function parameter is abnormal, return null.
 * @since 12
*/
const char*8 OH_ArkUI_AccessibilityValue_GetText(ArkUI_Accessibility`Destroy the instance of Customs Property.
 *
 * @param handle The instance of Customs Property to be destroyed.
 * @since 14
 *;/
void OH_ArkUI_CustomProperty_Destroy(ArkUI_CustomProperty=0		Ocustom attribute value information.
 *
 * @param handle Custom attribute object	Customize the value information within the attribute structure.
 * @since 14
 */
const char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty=0		Hwindow name from HostWindowInfo.
 *
 * @param info HostWindowInfo object	Window name in HostWindowInfo8	const char*<4	GetName(@4	N	bstroy the instance of HostWindowInfo.
 *
 * @param info Instance of HostWindowInfo to be destroyed8	void<4	 (@4	N	stroy ActiveChildenInfo instance.
 *
 * @param handle ActiveChild instance to be destroyed.
 * @since 14
 */
void OH_ArkUI_Acti/veChildrenInfo_Destroy(ArkUI_ActiveChildrenInfo=0	'child nodes of ActiveChildenInfo with the structure index.
 *
 * @param handle The ActiveChildenInfo instance for obtaining information_6	.child nodes.
 * @return The child node pointer.	 index. Return nullptr in case ofS	-	 BActiveChildrenInfo_GetNodeByIndex(ArkUI_ActiveChildrenInfo* handleM	!@.		`0	number of nodes within the structure of ActiveChildenInfo.
 *
 * @param handle The ActiveChildenInfo instance for obtaining inf<ormation.
 * @return Number of child nodes. Default value: 0,	$4ActiveChildrenInfo_GetCount(ArkUI_ActiveChildrenInfo=0	Creat style information.
 *qba <b>P</b> instance.
 * <br> If the result returns nullptr, there may be out of memory8	* OH_
_Create(vostroy. style information.
 *
 * @param option Linear style informa ;	void OH_	_Destroy(ER	5he scan effect is enabled.
 *
 * @param option Linear' style information.
 * @param enabled W, can effect. Default value: false8	void OH__SetScanEffectEnabled(* option, bool enableq		7smoothing effect is enabled.
 *
 * @param option Linear' style information.
 * @param enabled W,ފeffect. When this effect is enabled, the progress change to
 * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true8	void OH__SetSmoothEffectEnabled(* option, bool enableq	) stroke width.
 *
 * @param option Linear6 style information.
 * @param strokeWidth Stroke width7It cannot be set in percentage.
 * Default value: 4.0vp8	void OH__SetStrokeWidth(0* option, float strokeWidth);

/**
 * @brief Set* stroke radius.
 *
 * @param option Linear@ style information.
 * @param strokeRadius Rounded corner radius@Value range: [0, strokeWidth/2].
 * Default value: strokeWidth/28	void OH__SetStrokeRadius(* option, float strokeRadiuv		9whether scan effect is enable.
 *
 * @param option Linear  style information.
 * @return W,
can effect8	bool OH__GetScanEffectEnabled(ER	?whether smoothing effect is enabled.
 *
 * @param option Linear  style information.
 * @return W,ފeffect8	bool OH__GetSmoothEffectEnabled(ER	) stroke width.
 *
 * @param option Linear+ style information.
 * @return Stroke width8		float OH__GetStrokeWidth(ER	* stroke radius.
 *
 * @param option Linear4 style information.
 * @return Rounded corner radius8		float OH__GetStrokeRadius(ER	+Create a cross-language option instance.
 *qbZa cross-language option instance. If the result is a null pointer, it may be out of memory8	,R	OH_,R	
_Create(vo,stroy the cross-language option instance.
 *R	,instance8	void OH_,R		_Destroy(,R	3=Enable the attribute setting in the cross-language option.
 *R	+_.
 * @param enabled The attribute setting in the cross-language option.
 * Default value: false8	void OH_,R	_SetAttributeSettingStatus(,R	!, bool enable	9attribute setting enable of the cross-language option.
 *R	+A.
 * @return The attribute setting enable of the cross-language o!7	bool OH_,R	_GetAttributeSettingStatus(,R	3Creates an op\]	the returned value must be released through
 *        {@link OH_ArkUI_DestroySnapshotOptions} when it's not used anymore.
 *
 *tbcreated snapshot options object.If the object returns a null pointer,
 *         it indicates a creation failure, and the reaso7n for the failure may be that the address space is full8	aArkUI_SnapshotOptions* OH_ArkUI_CreateSnapshotOptions();

/**
 * @brief Dispose a snapshot option	9]	ҙ
snapshot o!7	%void OH_ArkUI_DestroySnapshotOptions(f	&v	)Config the snapshot option with scale.
 *.]	ҙQsnapshot option.
 * @param scale Indicates the scale property to take the snapshoU|	8	SnapshotOptions_SetScale(f	' float scalqP	nolor mode for snapshot capture.
 * By default, snapshots are captured in SRGB mode, which may lose visual effects for component0s using wide color
 * gamut display modes.
 * If{'s color space is known, specify it through <b>colorSpace</b> and set <b>isAuto</b> to
 * <b>false</b> to achieve optimal snapshot quality.
 * Since determining the exact color space used by a component is often difficult, set <b>isAuto</b> to <b>true</bX>
 * to let the system automatically select the appropriate color space.
 * If <b>isAutothe <b>colorSpace</b>pignored.
 *.]	oPointer to the target snapshot configuration options.
 * @param colorSpace Target color space. Supported valuesa	3
 *                   (DISPLAY_BT2020_SRGB).
 * @param isAuto Whether to auto-detect the color space.
 *               <b>true</b>: ignores the <b>colorSpace</b> parameter value and auto-detects the color space.
 *               <b>false</b>: uses the co(lor space specified by <b>colorSpace</b>a$	u	ė	napshotOptions_SetColorMode(f	'  int32_t colorSpace, bool isAutold`dynamic range mode for snapshot capture.
 * By default, the system captures snapshots in {@link !} mode.
 * To use a specific mode, specify it via the <b>dynamicRangeMode</b> parameter and set <b>isAuto</b> to <b>false</b>.
 * Alternatively, set <b>isAuto</b> to <b>true</b> to let the system auto-detect the appropriate dynamic range mode.
 * If <b>isAutothe <b>dynamicRangeMode</b>pignored.
 *.]	Pointer to the target snapshot configuration options.
 * @param dynamicRangeMode Target dynamic range mode, specified using {@lΚ
* @param isAuto Whether to auto-detect the dynamic range mode.
 *               <b>true</b>: ignores the <b>dynamicRangeMode</b> parameter value and auto-detects the dynamic range
 *                            mode.
 *               <b>false</b>: uses th9e dynamic range mode specified by <b>dynamicRangeMode</b>a$	u	ė	'napshotOptions_SetDynamicRangeMode(
   f	(' int32_t dynamicRangeMode, bool isAuto)~{,*
 * @since 17A	 tn instance ofeparameters
*wcreated instance ofe7
*/
	* OH_	tisposes of an instance ofe&parameters.
*
* @param option Instance @since 17
*/
void OH_		_Dispose(	* optionthreshold ratioB	option Instance ofeparam value Array of threshold ratios. Each element represents the ratio of the visible area of a component to
* its total area. The visible area is calculated within the parent component's bounds; any area outside the parent
* component is not considered. Each value must be within the [0.0, 1.0] range.
* Values outside this range will be handled as 0.0 or 1.0.
* @param size Size of the threshold arrayi		If an error codeP?	`due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
9	_SetRatios(	* option, floatg@w	-	|B	option Instance ofe-param value Expected update interval, in ms. a1000</b>i		If an error codeP?	`due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
9	_SetExpectedUpdateInterval(
    *option, int32_t valueflag for controlling ican exceed the parent's bounds.
* if set to false, the part that exceeds the parent's bounds will be considered as invisible area,
* set to true to allow the exceeding, the part that exceeds will be considered as visible area.
*
* Please note that if the parent component set clip(true), the measureFromViewport configuration
* will be ignored.
*
* @param option Instance of visibleparam measureFromViewport When this parameter is set to true, the parts of the component
*    that exceed the parent component's area will also be included in the visible area calculation. However, this
*    only applies if the parent component does not explicitly set the clip property to true. If the parent component
*    sets clip to true, regardless of the value of this parameter, the parts that exceed the parent component's area
*    will still be treated as invisible in the visible area calculation-.
* Default measureFromViewport: <b>false</b>i		If an error codeP?	`due to a failure in parameter validation;
*         the parameter must not be null.
* @since 22
9	_SetMeasureFromViewport(
   !* option, bool measureFromViewporXthreshold ratio"s.
 *
 * @param option Instance ofeaparameters.
 * @param value Array of threshold ratios.
 * @param size Size of the threshold arraya$	i		([BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error codeP?	adue to a failure in parameter validation;
 *         the parameter must not be null.
 * @since 17q	_GetRatios(	* option, float* value, oF	
5	|"s.
 *
 * @param option Instance ofe
parametersa$	|	, in ms. a1000</b>.
 * @since 17q	_GetExpectedUpdateInterval(	 T	5	value se:_SetMeasureFromViewport} .
 *
 * @param option Instance ofe
parametersa$	0flag for controlling of the visible area calcula {*<b>false</b>.
 *
 * @since 22
 */
bool OH_	_GetMeasureFromViewport(	 T	Creates a TextPickerRangeContent instance.
 *
 * @param length The length of the picker array. Value range: [1, +∞).
 * @retuk$	ma pointer to the created instance on success. Initialize each item of the array
 *         as a null pointer;	2TextPickerRangeContentArray_SetIconAtIndex} and/or6	KOH_ArkUI_TextPickerRangeContentArray_SetTextAtIndex} for each index as need	ptr</b> if <b>length</b> is not in <b>[1, +∞)</b>.
 *         When the object is no longer used, release it with {@link OH_ArkUI_TextPickerRangeContentArray_Destroy}.
 * @since 19
 */
ArkUI_TextPickerRangeContentArray* OH_ArkUI_TextPickerRangeContentArray_Create(int32_t lengthldicon resource path or URI for one item in an {@link ArkUI_TextPickerRangeContentArray}.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextPickerRangeContentArray_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param icon Null-terminated C string for the icon (path or URI). The content is copied into the array; the caller
 *        keeps ownership of <b>icon</b>. If <b>nullptr</b>, this function has no effect.
 * @param index Index of the item to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextPickerRangeContentArray_Create}. Otherwise this function
 *        does nothing.
 * @note If an icon was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_SetIconAtInd=ex(
    ArkUI_TextPickerRangeContentArray* handle, char* iconM	!~d	display text for one item in an {@link ArkUI_TextPickerRangeContentArray}.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextPickerRangeContentArray_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param text Null-terminated C string shown for the item. The content is copied into the array; the caller keeps
 *        ownership of <b>text</b>. If <b>nullptr</b>, this function has no effect.
 * @param index Index of the item to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextPickerRangeContentArray_Create}. Otherwise this function
 *        does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextPicker$RangeContentArray* handle, char* texM	"Releases an {@link ArkUI_TextPickerRangeContentArray} created by
 *        {@link OH_ArkUI_TextPickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_ArkUI_TextPickerRangeContentArray_Createg}.
 * @since 19
 */
void OH_ArkUI_TextPickerRangeContentArray_Destroy(ArkUI_TextPickerRangeContentArray=0	bAllocates one column level of an interconnected (cascade) TextPicker range. Use with range type
 *4	TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT}. The returned pointer addresses a contiguous array
 *        of sibling nodes; each node may carry display text and an optional next-level range from
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArrayn_SetChildAtIndex}.
 *
 * @param length Number of sibling entries on this column. Value range: <b>[1, +∞)</b>a$	a pointer to the first sibling node when <b>length</b> is in <b>[1, +∞)</b>; returns <b>nullptr</b>
 *         otherwise. The sibling count used for bounds checks equals <b>length</b>.
 * @since 19
 */
ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI9_TextCascadePickerRangeContentArray_Create(int32_t lengthlddisplay text for one sibling node on a cascade TextPicker level.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param text Null-terminated C string. The content is copied; the caller keeps ownership of <b>text</b>. If
 *        <b>nullptr</b>, this function has no effect.
 * @param index Index of the sibling to set. Valid values are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passed to {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. Otherwise this
 *        function does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, char* texM	"~d	childs info of items in a multi text picker ranges.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param child Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create} for the child column.
 *        If <b>nullptr</b>, this function has no effect. If a subtree already exists at <b>index</b>, it is destroyed
 *        with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} before the new <b>child</b> is stored.
 *        While <b>child</b> stays attached under the parent, the caller must not call
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} on <b>child</b>.
 * @param index Index of the sibling that owns the subtree. Valid values are greater than or equal to <b>0</b> and less
 *        than the <b>length</b> argument passed to {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 *        Otherwise this function does nothing.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* 7handle, ArkUI_TextCascadePickerRangeContentArray* childM	!Releases a cascade range level allocated with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 * @note Do not	TextCascadePickerRangeContentArray_Destroy} on a <b>child</b> while
 *       it is still stored in a parent's {@code children}.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handle);

I0	Create an object for the EmbeddedComponent option.
 *
 * @return A pointer to the object of the EmbeddedComponent option.
 * @since 20
 */
* OH__Create();

/**
 * @brief Destroy the object by EmbeddedComponent option.
 *
 * @param option Pointer to the object by the Embe7ddeComponent to be destroyed.
 * @since 20
 */
void OH_	_Dispose(ER		onError of EmbeddedComponent.
 *
 * @param option Pointer to the object option by the EmbeddedComponent.
 * @param code Common error i!48API invoking failure.
 * @param name Common error name i!4>API invoking failure.
 * @param message Common error message i!4/API invoking failure.
 * @since 20
 */
void OH__SetOnError(
    $* option, void (*callback)(int32_t c,	const char* message)	onTerminated of EmbeddedComponent.
 *
 * @param option Pointer to the object option by the EmbeddedComponent.
 * @param code Result code returned when the EmbeddedUIExtensionAbility exits.
 * @param want Data returned when the EmbeddedUIExtensionAbility  exits.
 * @since 20
 */
void OH__SetOnTerminated(
    i* option, void (*callback)(int32_t code, AbilityBase_Want* want));

/**
 * @brief Expand the swipe action1*	?List Item node.
 * @param direction expand direction of swipeAc=	J6	22ERROR} The component type of the node is incorrecta	*O	"node not mounted to component tree	$ListItemSwipeAction_m7	 j	&ListItemSwipeActionDirection direction	llapse the swipe action1*	
List Item P8	|2ERROR} The component type of the node is incorrecta	*O	"node not mounted to component tree	$ListItemSwipeAction_Collapseq	(Create an edge object for position attribute.
 *
 * @return A pointer to the edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Create(	creates a deep copy of an edge object for position attribute.
 *
 * @param edges A pointer to an edg0	A pointer to the new edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Copy(const ArkUI_PositionEdges* edgv	Dispose an edge object for position attribute.
 *
 * @param edges Pointer to the edge object to be disposed.
 * @since 21
 */
v;oid OH_ArkUI_PositionEdges_Dispose(ArkUI_PositionEdges* edgv	~d	top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of top edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetTop(ArkUI_PositionEdges* edges, float)	Gets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The Idistance of top edge to the corresponding edge of parent container, in vpa$	i	weR2`	ʒ	$6PositionEdges_GetTop(ArkUI_PositionEdges* edges, float)	~d	left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of left edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetLeft(ArkUI_PositionEdges* edges, float)	Gets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value TheK distance of left edge to the corresponding edge of parent container, in vpa$	i	weR2`	ʒ	$7PositionEdges_GetLeft(ArkUI_PositionEdges* edges, float)	~d	bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of bottom edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetBottom(!ArkUI_PositionEdges* edges, float)	Gets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value TOhe distance of bottom edge to the corresponding edge of parent container, in vpa$	i	weR2`	ʒ	$9PositionEdges_GetBottom(ArkUI_PositionEdges* edges, float)	~d
ight edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value The distance of right edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetRight(ArkUI_PositionEdges* edges, float)	Gets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object.
 * @param value ThMe distance of right edge to the corresponding edge of parent container, in vpa$	i	weR2`	ʒ	$8PositionEdges_GetRight(ArkUI_PositionEdges* edges, float)	Create a policy object for PixelRound attribute.
 *
 * @return A pointer to the policy object.
 * @since 21
 */
ArkUI_PixelRoun* OH_p_Create();

/**
 * @brief Dispose a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object to' be disposed.
 * @since 21
 */
void OH_p	_Dispose(p* policyldtop edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The Cal.cPolicy of top edge.
 * @since 21
 */
void OH_p_SetTop(p$* policy, ArkUI_PixelRoundCalcPolicy)	Gets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of top edgea$	i	weR2`	ʒ	$v_GetTop(p$* policy, ArkUI_PixelRoundCalcPolicy)	~d	start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The C2alcPolicy of start edge.
 * @since 21
 */
void OH_p
_SetStart(p$* policy, ArkUI_PixelRoundCalcPolicy)	Gets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param va lue The CalcPolicy of start edgea$	i	weR2`	ʒ	$v
_GetStart(p$* policy, ArkUI_PixelRoundCalcPolicy)	~d	bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The 4CalcPolicy of bottom edge.
 * @since 21
 */
void OH_p_SetBottom(p$* policy, ArkUI_PixelRoundCalcPolicy)	Gets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param v"alue The CalcPolicy of bottom edgea$	i	weR2`	ʒ	$v_GetBottom(p$* policy, ArkUI_PixelRoundCalcPolicy)	~d	end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The Cal.cPolicy of end edge.
 * @since 21
 */
void OH_p_SetEnd(p$* policy, ArkUI_PixelRoundCalcPolicy)	Gets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param value The CalcPolicy of end edgea$	i	weR2`	ʒ	$v_GetEnd(p$* policy, ArkUI_PixelRoundCalcPolicy)	kCreates a configuration object for textField's counter.
 *
 * @return A pointer to the configuration object	o`* OH_o`_Create();

/**
 * @brief Disposes a configuration object for textField's counter.
 *
 * @param config Pointer to the configuration object to be disposed	void OH_o`	_Dispose(o`* configldm	Icounter when textField hasn't wanted to exceed the maximum character counQ	fig Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField hasn't wanted t$o exceed the maximum character count	void OH_o`_SetCounterTextColor(o`* config, uint32_t colorldm	Acounter when textField wants to exceed the maximum character counQ	fig Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField wants to exceed the maximum character count	void OH_o`_SetCounterTextOverflowColor(o`* config, uint32_t color	Xs the color of counter when textField hasn't wanted to exceed the maximum character counQ	 fig Pointer to the configuration0	@Hunter when textField hasn't wanted to exceed the maximum character count	uint32_t OH_o`_GetCounterTextColor(o`* config	Ps the color of counter when textField wants to exceed the maximum character counQ	 fig Pointer to the configuration0	@@unter when textField wants to exceed the maximum character count	uint32_t OH_o`_GetCounterTextOverflowColor(o`	* config)~1text menu item for edit menu item.
 *
 * @since 2Q	TextMenuItem ArkUI_TextMenuItem;
/**
 * @brief Create an object of the text edit menu item.
 *
 * @return A pointer to the ArkUI_TextMenuItem	ArkUI_TextMenuItem* OH_ArkUI_TextMenuItem_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @paraFm textMenuItem Pointer to the ArkUI_TextMenuItem object to be disposed	void OH_ArkUI_TextMenuItem_Dispose(ArkUI_TextMenuItem* textMenuItem);

/**
 * @brief Set text menu item title.
 *
 * @param item The text menu item.!	dThe name of the text menu item, which defaults to an empty string. The string will copy to frameworka$	i		Q		~	BTextMenuItem_SetContent(ArkUI_TextMenuItem* item, const char* cont		ext menu item title.
 *
 * @param item The text menu item object.
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The name of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@	.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARK/BUFFER_SIZE_ERROR} is returned.
 *
 * @return TA	P/	" 	CЈ`"node, buffer or writeLength is nul|	&IBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer siz	~	TextMenuItem_GetContent(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item icon.
 *
 * @param item The text menu item.
 * @param icon The text menu item icon resource, which defa:ults to an empty string. The string will copy to frameworka$	i		Q		~	=TextMenuItem_SetIcon(ArkUI_TextMenuItem* item, const char* ic	ext menu item icon.
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The icon of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@li	.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARK/BUFFER_SIZE_ERROR} is returned.
 *
 * @return TA	P/	" 	CЈ`"node, buffer or writeLength is nul|	&IBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer siz	~	TextMenuItem_GetIcon(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu item label info for keyboard shortcut.
 *
 * @param item The text menu item.
 * @param labelInfo The text menu ditem shortcut displays, which defaults to an empty string.
 *      The string will copy to frameworka$	i		Q		~	FTextMenuItem_SetLabelInfo(ArkUI_TextMenuItem* item, const char* labelIQ		ext menu item label info for keyboard shortcut..
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The shortcuts of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning	".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARK/BUFFER_SIZE_ERROR} is returned.
 *
 * @return TA	P/	" 	CЈ`"node, buffer or writeLength is nul|	&IBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer siz	~	TextMenuItem_GetLabelInfo(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @brief Set text menu itemaI	5tem The text menu item.
 * @param id The text menu ida$	i		Q		~	+TextMenuItem_SetId(ArkUI_TextMenuItem* itemv	ext menu itemaI	Atem The text menu item object
 * @param id The text menu item id;qbi		Q	22
{	;TextMenuItem_GetId(const ArkUI_TextMenuItem* item, int32_t*S#ext menu item array.
 *
 * @since 2Q	)TextMenuItemArray ArkUI_TextMenuItemArray			6ext menu items.
 *
 * @param items The text menu itemsO			ext menu itemsa$	i		Q	22
{	:TextMenuItemArray_GetSize(ArkUI_TextMenuItemArray* items, o{	>ext menu item at index.
 *
 * @param items The text menu items_6	 Cext menu items.
 * @param item The text menu item at index of arraya$	i		Q		~	TextMenuItemArray_GetItem(ArkUI_TextMenuItemArray* items, int32_t index,
    ArkUI_TextMenuItem** item);

/**
 * @brief Insert text menu item at index.
 *
 * @param items The text menu items.
 * @param item The text menu item at index of array. The item will copy by framework_6	 ext menu itemsa$	i		Q		~	VTextMenuItemArray_Insert(ArkUI_TextMenuItemArray* items, ArkUI_TextMenuItem* item,
   M	 EErase text menu item at index.
 *
 * @param items The text menu items_6	 ext menu itemsa$	i		Q		~	6TextMenuItemArray_Erase(ArkUI_TextMenuItemArray* itemsM	!;Clear all the items.
 *
 * @param items The text menu itemsa$	i		Q		~	5TextMenuItemArray_Clear(ArkUI_TextMenuItemArray* itemv	p!text menu item id.
 *
 * @since 2$=Indicates the TextMenuItemId to copy and delete the currently$/
    ARKUI_TEXT_MENU_ITEM_ID_CUT = Indicates the TextMenuItemId to copy the currently selected text to the clipboard.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COPY = 1>Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASTE = UIndicates the TextMenuItemIda text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SELECT_ALL = 3,

    /**
     * Indicates the TextMenuItemId for collaborationQ service menu items.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COLLABORATION_SERVICE = Indicates the TextMenuItemId to recognize the text in the picture and input it into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CAMERA_INPUT = 5,

    /**
     * Indicates the TextMenuItemId to help with text creation by invoking large models.
   -  */
    ARKUI_TEXT_MENU_ITEM_ID_AI_WRITER = Indicates the TextMenuItemId to translate the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_TRANSLATE = 7,

    /**
   WjIndicates the TextMenuItemId to search the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SEARCH = ;hIndicates the TextMenuItemId to share the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SHARE = !TIndicates the TextMenuItemId to open url.
     */
    ARKUI_TEXT_MENU_ITEM_ID_URL = YIndicates the TextMenuItemId to open email.
     */
    ARKUI_TEXT_MENU_ITEM_ID_EMAIL = 1>jIndicates the TextMenuItemId to call the phone number.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PHONE_NUMBER = ѢIndicates the TextMenuItemId to open map.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ADDRESS = 13,

    /**
     * Indicates the TextMMenuItemId to open calendar.
     */
    ARKUI_TEXT_MENU_ITEM_ID_DATA_TIME = 1YIndicates the TextMenuItemId for asking AI.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ASK_AI = }0自动填充。例如自动填充账号密码。%ARKUI_TEXT_MENU_ITEM_ID_AUTO_FILL = 1密码保险箱。*ARKUI_TEXT_MENU_ITEM_ID_PASSWORD_VAULT = 1qWgInclusive begin of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_BEGIN = 1000Inclusive end of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_END = 20000,
} ArkUI_TextMenuItemId;

4text menu item for edit menu options.
 *
 * @since 2Q	^;
/**
 * @brief Create an object of the text edit menu options.
 *
 * @return A pointer to the	ArkUI_TextEditMenuOptions* OH_ArkUI_TextEditMenuOptions_Create();

/**
 * @brief Dispose an object of the text edit menu option.s.
 *
 * @param editMenuOptions Pointer to the object to be disposed	void OH_ArkUI_TextEditMenuOptions_Dispose(ArkUI_TextEditMenuOptions* editMenuOptions);

/**
 * The text menu create callback fu	

 * @param items The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array	Ow		User defined data		TextCreateMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text me
nu prepare	
 * @param items The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array	Ow		User defined data		TextPrepareMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text menu item click	
 * @param item The menu item click.
 * @param start The start offset of the selected content.
 * @param end The end offset of the selected content.
1QThe user data.
 * @return bool Return True, the event is consumed, false otherwis	typedef bool (*ArkUI_TextMenuItemClickCallback)(
    const ArkUI_TextMenuItem*    item,
    int32_t                      start,Q
    int32_t                      end,
    void*                        userData
	Uevent to be called when text menu create.
 *
 * @param editMenuOptions Pointer to the	 object.
1&The user data.
 * @param cb The create	Ǘv	Q		~	5TextEditMenuOptions_RegisterOnCreateMenuCallback(
   D* editMenuOptions, void* userData, ArkUI_TextCreateMenuCallback cb);	Qevent to be called when menu prepare.
 *
 * @param editMenuOptions Pointer to the	 object.
1'The user data.
 * @param cb The prepare	Ǘv	Q		~	6TextEditMenuOptions_RegisterOnPrepareMenuCallback(
   C* editMenuOptions, void* userData, ArkUI_TextPrepareMenuCallback cb	Tevent to be called when menu item click.
 *
 * @param editMenuOptions Pointer to the	 object.
1/The user data.
 * @param cb The menu item click	Ǘv	Q		~	8TextEditMenuOptions_RegisterOnMenuItemClickCallback(
   F* editMenuOptions, void* userData, ArkUI_TextMenuItemClickCallback cb)~selection menu.
 *
 * @since 2Q	7TextSelectionMenuOptions ArkUI_TextSelectionMenuOptions装饰线样式0 文本实体识别的配置4d OH_Z*文本编辑器的文本选择菜单选项:!文本编辑器_!:PlaceholderOptions!PlaceholderOptions文本编辑器的:!文本编辑器的段落样式:ParagraphStyle!ParagraphStyle阴影选项0$ShadowOptions OH_ArkUI_ShadowOptions文本编辑器的文本样式:	TextStyle!2TextStyle;

/**
 * @brief 震动效果类型枚举 ξ无震动效果。&OH_ARKUI_HAPTIC_FEEDBACK_MODE_DISABLED!	有震动效果。XOH_ARKUI_HAPTIC_FEEDBACK_MODE_ENABLED = 1,
    /**
     * 跟随系统的震动效果。VOH_ARKUI_HAPTIC_FEEDBACK_MODE_AUTO = 2,
} OH_ArkUI_HapticFeedbackMode;

/**
 * @brief span类型枚举 ξ
文本span#OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_TEXT!	图片span。FOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_IMAGE = 1,
    /**
     * 混合span。OOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_MIXED = 2,
    /**
     * 自定义布局span。HOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_BUILDER = 3,
    /**
     * 默认span。,OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_DEFAULT = 4
}!SpanType;

/**
 * @brief 响应类型枚举 ξ'通过鼠标右键触发菜单弹出。.OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_RIGHT_CLICK!	!通过长按触发菜单弹出。iOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_LONG_PRESS = 1,
    /**
     * 通过鼠标选中触发菜单弹出。SOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_SELECT = 2,
    /**
     * 默认响应类型。1OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_DEFAULT = 3,
}!5ResponseType;

/**
 * @brief 文本菜单类型枚举 ξ文本选择菜单。#OH_ARKUI_TEXT_EDITOR_SELECTION_MENU!	预览菜单。gOH_ARKUI_TEXT_EDITOR_PREVIEW_MENU = 1,
} OH_ArkUI_TextMenuType;

/**
 * @brief 换行策略类型枚举 ξ贪婪模式。<br>使每一行尽可能显示多的字符，直到这一行不能显示更多字符时进行折行。
     * @#OH_ARKUI_LINE_BREAK_STRATEGY_GREEDY!	高质量模式。<br>在平衡模式的基础上，尽可能填满行，同时最后一行的权重较低，可能出现最后一行留白较多的情形。OH_ARKUI_LINE_BREAK_STRATEGY_HIGH_QUALITY = 1,
    /**
     * 平衡模式。<br>在不拆词的情况下，尽量使一个段 中每一行的宽度相同。FOH_ARKUI_LINE_BREAK_STRATEGY_BALANCE = 2,
} OH_ArkUI_LineBreakStrategy_ text span type.
 *
 * @since 2 The span type only contains text. */
    ARKUI_TEXT_SPAN_TYPE_TEXT = 0,
    /** The span type only contains image. */
    ARKUI_TEXT_SPAN_TYPE_IMAGE = 1,
    /** The span type contains both text and image. */
    ARKUI_TEXT_SPAN_TYPE_MIXED = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but TEXT, IMAGE, or MIXED types are not registered,
     * this type will be triggered and displayed for those registered types.
     */
 9   ARKUI_TEXT_SPAN_TYPE_DEFAULT = 3,
} ArkUI_TextSpanType_ "text response type.
 *
 * @since 2 The response type of right click. */
    ARKUI_TEXT_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /** The response type of long press. */
    ARKUI_TEXT_RESPONSE_TYPE_LONG_PRESS = 1,
    /** The response type of select by mouse. */
    ARKUI_TEXT_RESPONSE_TYPE_SELECT = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but RIGHT_CLICK, LONG_PRESS, or SELECT types are not registered,
     * this type will be triggered and displayed for right-click, long press, and mouse selection actions.
     */
    ARKUI_TEXT_RESPONSE_TYPE_DEFAULT = 3,
} ArkUI_TextResponseType;
B
/**
* @brief Enumerates raw input event types.
*
* @since 26.0.0
!Tou`XnRAW_INPUT_EVENT_TYPE_TOUCH!	Mouse`Xn0RAW_INPUT_EVENT_TYPE_MOUSE = 1,
} ArkUI_RawInput0oCreate an objectFoptions.
 *
 * @return A pointer to the ArkUI_TextSelectionMenuOptions	lArkUI_TextSelectionMenuOptions* OH_ArkUI_TextSelectionMenuOptions_Create();

/**
 * @brief Dispose an objectnoptions.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object to be disposed	bvoid OH_ArkUI_TextSelectionMenuOptions_Dispose(ArkUI_TextSelectionMenuOptions* selectionMenuOptionv	~d,cognition types of a configuration object fo.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param textSpanType The span type T	SpanType}a$	i		Q		~	TextSelectionMenuOptions_SetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType textSpanType);
/**
 * @brief Gets the span type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMen0uOptions object.
 * @param spanType the text spa	SpanType}a$	i		Q		~	TextSelectionMenuOptions_GetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType* spanType);

vP	custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param node The custom menu nodea$	i		Q		~	]TextSelectionMenuOptions_SetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,);	custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param node The custom menu nodea$	i		Q		~	\TextSelectionMenuOptions_GetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions;	J	~d,cognition types of a configuration object fo.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The response typeTResponseType}a$	i		Q		~	TextSelectionMenuOptions_SetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType responseType);
/**
 * @brief Gets the response type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextESelectionMenuOptions object.
 * @param responseType The text responseResponseType}a$	i		Q		~	TextSelectionMenuOptions_GetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType* responseTypqP	event to be called when selection menu show.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
1The user	Theqof menu show.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user dataa$	i		Q		~	TextSelectionMenuOptions_RegisterOnMenuShowCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
B    void (*callback)(int32_t start, int32_t end, void* userData));	event to be called when selection menu hide.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
1The user	Theqof menu hide.
 *     start The start offset of the selected content.
 *     end The end offset of the selected content.
 *     userData The user dataa$	i		Q		~	TextSelectionMenuOptions_RegisterOnMenuHideCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
/    void (*callback)(int32_t start, int32_t endE	ή	
dCreate selection options.
 *
 * @return A pointer to the selection options object.
 * @since 23
 */
nF* OH_nF3_Create();

/**
 * @brief Dispose selection options	{nF]*} options Pointer to the selection options object. to be disposed.
 * @since 23
 */
void OH_nF	_Dispose(nF* optionv	~d	1menu policy for selection options.
 *
 * @param {nF+*} options Pointer to the selection options1	AMenuPolicy} menuPolicy The menu policy.
 * @since 23
 */
void OH_nF_SetMenuPolicy(
   mF&* options, ArkUI_MenuPolicy menuPolicy	6s the menu policy of selection options.
 *
 * @param {nF+*} options Pointer to the selection options0	@2menu policy.
 * @since 23
 */
ArkUI_MenuPolicy OH_nF_GetMenuPolicy(nF* optionv	Create an objec2oB*
 * @return A pointer to the controller object.
 * @since 23
 */
0* OH_0*_Create();

/**
 * @brief Dispose an objec2o*
 * @param {0X*} controller Pointer to the controller object to be disposed.
 * @since 23
 */
void OH_0	_Dispose(0* controller);

/**
 * @brief Delete the character before the caret of the input field component in editing state.
 *        Ot5herwise, delete the last character of the input field1+	{0[*} controller Pointer to the configuration object to be modified.
 * @since 23
 */
void OH_0_DeleteBackward(0* controller);

/**
 * @brief Scroll the input field component to make the specified content visible.
 *
 * @param {ArkUI_TextC;*} controller Pointer to the
 * configuration object to be modified.
 * @param {int32_t} start The start offset of the content to be made visible.
 * @param {int32_t} end The end offset of the content to be made visible
 * @since 23
 */
void OH_ArkUI_Tex9_ScrollToVisible(
   / ' *controller, int32_t start, int32_t enS
7motion path options for path animation.
 *
 * @since 23A	MotionPathOptions ArkUI_MotionPathOptions;

/**
 * @brief Create an object of the motion path options for path animation.
 *        In the newly created ArkUI_MotionPathOptions, the "path" value is an empty string, the "from" value is 0,
 *        the "tBo" value is 1, and the "rotatable" value is false.
 *
 * @return A(
 * @since 23
 */
ArkUI_MotionPathOptions* OH_ArkUI_MotionPathOptions_Create();

/**
 * @brief Dispose the ArkUI_MotionPathOptions		options P% object to be disposed.
 * @since 23
 */
void OH_ArkUI_MotionPathOptions_Dispose(ArkUI_MotionPathOptions* options);

/**
 * @brv	~d	the motion path for the animation using an SVG path string. The path supports using "start" and
 *        "end" as placeholders for the starting and ending points, for example:
 *        "Mstart.x start.y L50 50 Lend.x end.y Z". Refer to the SVG path format for the path string.
 *        When set to an empty string, it is equivalent to not setting a path animation.
 *
 * @param 	options P%= object.
 * @param svgPath The motion path for the path anima	v	Q	23y	OMotionPathOptions_SetPath(ArkUI_MotionPathOptions* options, const char* svgPath	7s the motion path string in the ArkUI_MotionPathOptions		options P% object.
 * @param svgPathBuffer Buffer pointer to the motion path string.
 * @param bufferSize The buffer size of the svgPathBuffer parameter.
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning	".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKBUFFER_SIZE_ERROR} is returneda$	i		qc	4XBUFFER_SIZE_ERROR} if the buffer size is less than the minimum buffer size.
 * @since 23y	MotionPathOptions_GetPath(const ArkUI_MotionPathOptions* options, char* svgPathBuffer,
    const int32_t bufferSize, int32_t* w
riteLengthldstarting progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has bee1n traveled to the total length of the entire pathaIf.0, 1.0], and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an1JOUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options P%L object.
 * @param from The starting progress in the ArkUI_MotionPathOptionsa$	i		qc	4ЈOUT_OF_RANGE} if the "from" value is out of range or the "from" value
 *                 is greater than the "to" value.
 * @since 23y	LMotionPathOptions_SetFrom(ArkUI_MotionPathOptions* options, const float from	6s the starting progress in the ArkUI_MotionPathOptions		options P%L object.
 * @param from The starting progress in the ArkUI_MotionPathOptionsa$	i		Q	23y	MMotionPathOptions_GetFrom(const ArkUI_MotionPathOptions* options, float* fromldendpoint progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has bee1n traveled to the total length of the entire pathaIf.0, 1.0], and the
 *        "from" value should be less than or equal to the "to" value; otherwise, an1JOUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options P%J object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptionsa$	i		qc	4ЈOUT_OF_RANGE} if the "to" value is out of range or the "to" value
 *                 is less than the "from" value.
 * @since 23y	HMotionPathOptions_SetTo(ArkUI_MotionPathOptions* options, const float to	6s the endpoint progress in the ArkUI_MotionPathOptions		options P%J object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptionsa$	i		Q	23y	IMotionPathOptions_GetTo(const ArkUI_MotionPathOptions* options, float* told5otatable parameter in the ArkUI_MotionPathOptions. ItpSo rotate along the path.
 *        True means rotating along the path, while false means not rotating along the path.
 *
 * @param options P%S object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptionsa$	i		Q	23y	TMotionPathOptions_SetRotatable(ArkUI_MotionPathOptions* options, const bool rotatabl{	Ps the rotatable parameter in the ArkUI_MotionPathOptions.
 *
 * @param options P%S object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptionsa$	i		Q	23y	UMotionPathOptions_GetRotatable(const ArkUI_MotionPathOptions* options, bool* rotatablF	p#MarqueeStartPolicy.
 *
 * @since 23 Start marquee in any case. This is the default policy. */
    ARKUI_MARQUEESTARTPOLICY_DEFAULT = 0,
    /** Start marquee onlyW when get focus. */
    ARKUI_MARQUEESTARTPOLICY_ONFOCUS = 1
} ArkUI_MarqueeStartPolicy_ $MarqueeUpdatePolicy.
 *
 * @since 23 Reset scroll position and restart scroll. */
    ARKUI_MARQUEEUPDATEPOLICY_DEFAULT = 0,
    /** Preserve scroll position, justf change to new text. */
    ARKUI_MARQUEEUPDATEPOLICY_PRESERVEPOSITION = 1
} ArkUI_MarqueeUpdatePolicy~P*
 * @since 23A	TextMarqueeOptions ArkUI_TextMarqueeOptions;

/**
 * @brief Create an option object for marquee animation of text.
 *
 * @return A pointer to the option object.
 * @since 23
 */
ArkUI_TextMarqueeOptions* OH_ArkUI_TextMarqueeOptions_Create();

/**
 * @brief Dispose the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be disposed.
 *P @since 23
 */
void OH_ArkUI_TextMarqueeOptions_Dispose(ArkUI_TextMarqueeOptions T	~d	start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param start Flag of is need to start marquee. True means start marquee, false means stop marquee.
 * @since 23
 */
void OHN_ArkUI_TextMarqueeOptions_SetStart(ArkUI_TextMarqueeOptions* option, bool starXGets the start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @r0	@_start flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetStart(ArkUI_TextMarqueeOptions T	~d	step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
+ * @param step The step size of the marquee߲	bsince 23
 */
void OH_ArkUI_TextMarqueeOptions_SetStep(ArkUI_TextMarqueeOptions* option, float step	ms the step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option0	@step size of the marquee߲	Osince 23
 */
float OH_ArkUI_TextMarqueeOptions_GetStep(ArkUI_TextMarqueeOptions T	~d	two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param spacing Ttwo rounds of marquee߲	hsince 23
 */
void OH_ArkUI_TextMarqueeOptions_SetSpacing(ArkUI_TextMarqueeOptions* option, float spacing	htwo rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option0	@two rounds of marquee߲	Rsince 23
 */
float OH_ArkUI_TextMarqueeOptions_GetSpacing(ArkUI_TextMarqueeOptions T	~d
ounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param loop The rounds of the marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetLoop(ArkUI_TextMarqueeOptions* option, int32_t loop	js the rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option0	@rounds of the marquee	$3TextMarqueeOptions_GetLoop(ArkUI_TextMarqueeOptions T	~d	fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modif!ied.
 * @param fromStart The runnmarquee, true means running from start.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetFromStart(ArkUI_TextMarqueeOptions* option, bool fromStarXGets the fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 0	@gfromStart flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFromStart(ArkUI_TextMarqueeOptions T	~d	delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param delay The delay time between each round of the marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueAeOptions_SetDelay(ArkUI_TextMarqueeOptions* option, int32_t delay	s the delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option0	@,delay time between each round of the marquee	$4TextMarqueeOptions_GetDelay(ArkUI_TextMarqueeOptions T	~d	fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fadeout The flag of whether the text is faded out.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetFadeout(Ar+kUI_TextMarqueeOptions* option, bool fadeouXGets the fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * 0	@cfadeout flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFadeout(ArkUI_TextMarqueeOptions T	~d	start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param startPolicy The start policy for marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetStartPolicy(ArkUI_T?extMarqueeOptions* option, ArkUI_MarqueeStartPolicy startPolicy	s the start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @re0	@start policy for marquee.
 * @since 23
 */
ArkUI_MarqueeStartPolicy OH_ArkUI_TextMarqueeOptions_GetStartPolicy(ArkUI_TextMarqueeOptions T	~d	update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param updatePolicy The update policy for marquee.
 * @since 23
 */
void OH_ArkUI_TextMarqueeOptions_SetUpdatePolicy(ArkIUI_TextMarqueeOptions* option,
    ArkUI_MarqueeUpdatePolicy updatePolicy	s the update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @r0	@update policy for marquee.
 * @since 23
 */
ArkUI_MarqueeUpdatePolicy OH_ArkUI_TextMarqueeOptions_GetUpdatePolicy(ArkUI_TextMarqueeOptions T	!Create a configuration object forE.
 * @return A pointer to t   he configuration object.
 * @since 23
 */
Q* OH_Q<_Create();

/**
 * @brief Dispose a configuration object for`.
 * @param config Pointer to the configuration object to be disposed.
 * @since 23
 */
void OH_Q	_Dispose(Q* configldm	background for.
 * @param config Pointer to the configuration object to be modified.
 * @param color Background color.
 * @since 23
 */
void OH_Q_SetColor(
   P* config, uint32_t color	s the color of background for/.
 * @param config Pointer to the configuration0	@.
 * @since 23
 */
uint32_t OH_Q_GetColor(
   Pe* config);

/**
 * @brief 创建一个装饰线样式对象。当该对象不再使用时，请调用>&_Destroy}销毁。
 *i"N对象的指针lj* _Create();

/**
 * @brief 销毁装饰线样式对象。
 *
 * @param options 指向待销毁的选项对象的指针。
 * @since 24
 */
void 	_Destroy(* optionv	C设置装饰线样式的装饰类型。
 *
 * @param options 指向>''对象的指针。
 * @param type 装饗E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_SetTextDecorationType(+* options,
    ArkUI_TextDecorationType typF	C获取装饰线样式的装饰类型。
 *
 * @param options 指向>''对象的指针。
 * @param type 装饗E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_GetTextDecorationType(,* options,
    ArkUI_TextDecorationType* typF	7设置装饰线的颜色。
 *
 * @param options 指向>'对象的指针。
 * @param color 装饰线的颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成
，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	
_SetColor(b* options, uint32_t color);

/**
 * @brief 获取装饰线的颜色。
 *
 * @param options 指向>'对象的指针。
 * @param color 装饰线的颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成
，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	
_GetColor(c* options, uint32_t* color);

/**
 * @brief 设置装饰线的样式。
 *
 * @param options 指向>'5对象的指针。
 * @param style 装饰线的样式 E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_Set(* options,
   { stylF	7获取装饰线的样式。
 *
 * @param options 指向>'5对象的指针。
 * @param style 装饰线的样式 E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_Get(* options,
   {* stylF	C设置装饰线的粗细缩放比例。
 *
 * @param options 指向>'对象的指针。
 * @param thicknessScale 装饰线的粗细缩放比例。取值范围为[0, +∞)。
 * @return 返回结+码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_SetThicknessScale(
    * options, float thicknessScalF	C获取装饰线的粗细缩放比例。
 *
 * @param options 指向>'对象的指针。
 * @param thicknessScale 装饰线的粗细缩放比例。
 * @return 返回结果码。
 *     <br>若操成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	_GetThicknessScale(#* options,
    float* thicknessScalF	^创建一个文本实体识别配置对象。当该对象不再使用时，请调用{@link OH_Z_Destroy}销毁。
 *i&d对象的指针lj"d* OH_Zf_Create();

/**
 * @brief 销毁文本实体识别配置对象。
 *
 * @param config 指向{@link OH_Z,对象的指针。
 * @since 24
 */
void OH_Z_Destroy(OH_Z* config);

/**
 * @brief 设置文本实体识别配置的类型。
 *
 * @param config 指向{@link OH_ArkUI_TextDataDetectorpP对象的指针。
 * @param types 文本实体识别配置的类型，取值为1"o枚举。
 * @param length 类型的数量。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_SetTypes(
    OH_Z* config, const* types, int32_t length);

/**
 * @brief 获取文本实体识别配置的类型。
 *
 * @param config 指向{@link OH_ArkUI_Ta对象的指针。
 * @param buffer 指向类型数组的缓冲区指针。
 * @param bufferSize 开发者为类型预留的缓冲区最多可以写入的类型的数量。
 * @param writeLength 实际写入缓冲区的类型的数量。
 * @return 返1结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&6。
 *     <br>若bufferSize小于writeLength，返回"BUFFER_SIZE_ERROR}。
 * @since 24y	`_GetTypes(OH_Z* config,
   * buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 设置文本实体识别结果更新回调。
 *
 * @param config 指向{@link OH_Z对象的指针。
1用户数据。w	detect result updater	6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`._RegisterOnDetectResultUpdateCallback(
    OH_ZQ* config, void* userData,
    void (*callback)(const char* result, int32_t lengthE	ή	
C设置识别内容的颜色。
 *
 * @param config 指向{@link OH_Z对象的指针。
 * @param color 识别内容的颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_SetColor(OH_Z* config, uint32_t color);

/**
 * @brief 获取识别内容的颜色。
 *
 * @param config 指向{@link OH_ArkUI_TextDataDetel对象的指针。
 * @param color 识别内容的颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_GetColor(OH_Z* config, uint32_t* color);

/**
 * @brief 设置识别内容的装饰样式。
 *
 * @param config 指向{@link OH_ArkUI_TextDeO对象的指针。
 * @param decoration 识别内容的装饰样式，取值为>'Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_SetN	(
    OH_Z	* config, g* decoration);

/**
 * @brief 获取识别内容的装饰样式。
 *
 * @param config 指向{@link OH_ZO对象的指针。
 * @param decoration 识别内容的装饰样式，取值为>'Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_GetN	(
    OH_Z	* config, * decoration);

/**
 * @brief 设置长按识别内容时是否显示预览菜单。
 *
 * @param config 指向{@link OH_ArkUI_`对象的指针。
 * @param enablePreviewMenu 长按识别内容时是否显示预览菜单。true表示启用预览菜单，false表示不启用预览菜单。默认值为false。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link '。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_SetEnablePreviewMenu(
    OH_Z* config, bool enablePreviewMenu);

/**
 * @brief 获取长按识别内容时是否显示预览菜单。
 *
 * @param config 向{@link OH_Z对象的指针。
 * @param enablePreviewMenu 长按识别内容时是否显示预览菜单。true表示显示预览菜单，fdalse表示不显示预览菜单。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	`_GetEnablePreviewMenu(
    OH_Z"* config, bool* enablePreviewMenu)~controller for text.ީ	FOH_ArkUI_TextController OH_ArkUI_TextController;

/**
 * @brief Create a controller object for text.
 * @return A pointer to the text controller object.ީ	fOH_ArkUI_TextController* OH_ArkUI_TextController_Create();

/**
 * @brief Destroys the text controller	roller <b>Text</b> controller.ީ	Hvoid OH_ArkUI_TextController_Destroy(OH_ArkUI_TextController* controller	StyledString of the N	rolleriW* @param descriptor Ph<StyledString_Descriptor</b> object, which will be set to TexUi		Q		~	TextController_SetStyledString(
    OH_ArkUI_TextController* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief 创建一个_9的选项对象。当该对象不再使用时，请调用'PlaceholderOptions_Destroy}销毁。
 *i,q对象的指针lj(PlaceholderOptions*!2PlaceholderOptions_Create();

/**
 * @brief 销毁_.的选项对象。
 *
 * @param options 指向q(对象的指针。
 * @since 24
 */
void!PlaceholderOptions_Destroy(APlaceholderOptions* optionv	设置_!.的提示文字。
 *
 * @param options 指向q对象的指针。
 * @param value 提示文字。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKU'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 PlaceholderOptions_SetValue(
   !PlaceholderOptions* options)	%获取_!.的提示文字。
 *
 * @param options 指向q对象的指针。
 * @param buffer 提示文字写入内存的缓冲区，内存空间需由开发者分配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength 实际表示写入缓冲区的字符的数量。
 * @7return 错误码。
 *     <br>若操作成功，返回!A。
 *     <br>若节点、缓冲区或writeLength为空，返回q&6。
 *     <br>若bufferSize小于writeLength，返回"BUFFER_SIZE_ERROR}。
 * @since 24y	+
 PlaceholderOptions_GetValue(
   !kPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 设置_!.的字体大小。
 *
 * @param options 指向q对象的指针。
 * @param fontSize 字体大小，单位为fp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
#PlaceholderOptions_SetFontSize(
   !*PlaceholderOptions* options, float fontSizF	获取_!.的字体大小。
 *
 * @param options 指向q对象的指针。
 * @param fontSize 字体大小，单位为fp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
#PlaceholderOptions_GetFontSize(
   !+PlaceholderOptions* options, float* fontSizF	设置_!.的字体粗细。
 *
 * @param options 指向q对象的指针。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如100、900。
 * @ret:urn 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%PlaceholderOptions_SetFontWeight(
   !/PlaceholderOptions* options, uint32_t fontWeighX获取_!.的字体粗细。
 *
 * @param options 指向q对象的指针。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如100、900。
 * @ret:urn 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%PlaceholderOptions_GetFontWeight(
   !0PlaceholderOptions* options, uint32_t* fontWeighX设置_!.的字体家族。
 *
 * @param options 指向q对象的指针。
 * @param fontFamily 字体家族。存放待设置的字体名称，不同字体名称通过逗号拼接。B
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%PlaceholderOptions_SetFontFamily(
   !KPlaceholderOptions* options, const char* fontFamily);

/**
 * @brief 获取_!.的字体家族。
 *
 * @param options 指向q对象的指针。
 * @param buffer 字体家族写入内存的缓冲区，内存空间需由开发者分配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength 实际写入缓冲区的字符的数量。
 * @return1 错误码。
 *     <br>若操作成功，返回!A。
 *     <br>若节点、缓冲区或writeLength为空，返回q&6。
 *     <br>若bufferSize小于writeLength，返回"BUFFER_SIZE_ERROR}。
 * @since 24y	+
%PlaceholderOptions_GetFontFamily(
   !kPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 设置_!.的字体样式。
 *
 * @param options 指向q?对象的指针。
 * @param fontStyle 字体样式。取值为Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$PlaceholderOptions_SetFontStyle(
   !5PlaceholderOptions* options, ArkUI_FontStyle fontStylF	获取_!.的字体样式。
 *
 * @param options 指向q?对象的指针。
 * @param fontStyle 字体样式。取值为Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$PlaceholderOptions_GetFontStyle(
   !6PlaceholderOptions* options, ArkUI_FontStyle* fontStylF	设置_!.的字体颜色。
 *
 * @param options 指向q对象的指针。
 * @param fontColor 字体颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$PlaceholderOptions_SetFontColor(
   !GPlaceholderOptions* options, uint32_t fontColor);

/**
 * @brief 获取_!.的字体颜色。
 *
 * @param options 指向q对象的指针。
 * @param fontColor 字体颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 PlaceholderOptions_GetFontColor(AdPlaceholderOptions* options,
    uint32_t* fontColor);

/**
 * @brief 为文本编辑器创建一个0对象。当该对象不再使用时，请调用_Destroy}销毁。
 *i,对象的指针lj(*! _Create();

/**
 * @brief 销毁"。
 *
 * @param controller 指向(对象的指针。
 * @since 24
 */
void!	_Destroy(A$* controller);

/**
 * @brief 通过7设置光标偏移量。
 *
 * @param controller 指向对象的指针。
 * @param caretOffset 索引位置。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetCaretOffset(
   !* controller, int32_t caret%	通过:获取光标索引位置。
 *
 * @param controller 指向对象的指针。
 * @param caretOffset 索引位置。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetCaretOffset(
   !* controller, int32_t* caret%	通过4设置选中区域。
 *
 * @param controller 指向对象的指针。
 * @param start 选中区域的起始位置。
 * @param end 选中区域的结束位置。
 * @param menuPolicy 选区内菜单弹出的策略。取值为{@link ArkUI_MenuPolicy}中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetSelection(
   !_* controller, uint32_t start, uint32_t end, ArkUI_MenuPolicy menuPolicy);

/**
 * @brief 通过F获取文本编辑器的编辑状态。
 *
 * @param controller 指向对象的指针。
 * @param isEditing 编辑状态。true表示是编辑态，false表示不是编辑态。
 * @return 返回/果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_IsEditing(
   !5* controller, bool* isEditing);

/**
 * @brief 通过F退出文本编辑器的编辑状态。
 *
 * @param controller 指向i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_StopEditing(
   !$* controller);

/**
 * @brief 通过=获取预上屏文本内容。
 *
 * @param controller 指向对象的指针。
 * @param offset 预上屏文本位置。
 * @param buffer 预上屏文本内容写入内存的缓冲区，存空间需由开发者分配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength j际写入缓冲区的字符的数量。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetPreviewText(
   !* controller, uint32_t* offset, char* buffer,
    int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 通过属性字符:获取光标矩形区域。
 *
 * @param controller 指向对象的指针。
 * @param rect 光标区域信息。取值为{@link ArkUI_Rect}中的枚举。
 * @return 返回结果码。$
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetCaretRect(
   !* controller, ArkUI_Rect* recX通过删除字符。没有内容被选中时，删除当前光标位置前的1个字符。有内容被选中时，删除选中内容"。
 *
 * @param controller 指向i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_DeleteBackward(
   !* controller);

/**
 * @brief 为文本编辑器创建一个段落样式对象。当该对象不再使用时，请调用{@link &#ParagraphStyle_Destroy}销毁。
 *i,ParagraphStyle}对象的指针lj(ParagraphStyle*!]ParagraphStyle_Create();

/**
 * @brief 销毁段落样式对象。
 *
 * @param style 指向7ParagraphStyle}对象的指针。
 * @since 24
 */
void!ParagraphStyle_Destroy(AParagraphStyle* stylF	G设置段落样式中的文本对齐方式。
 *
 * @param style 指向PParagraphStyle}对象的指针。
 * @param align 文本对齐方式。取值为kQ中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 ParagraphStyle_SetTextAlign(
   !ParagraphStyle* style,q_ align);

/**
 * @brief 获取段落样式中的文本对齐方式。
 *
 * @param style 指向PParagraphStyle}对象的指针。
 * @param align 文本对齐方式。取值为kQ中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 ParagraphStyle_GetTextAlign(
   !ParagraphStyle* style,qc* align);

/**
 * @brief 设置段落样式中段落缩进的像素图。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param pixelmap 段落缩进的像素图。
 * @return 返回结果码。
 *     <br>若作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
,ParagraphStyle_SetLeadingMarginPixelMap(
   !ParagraphStyle* style, struct1f	e pixelmap);

/**
 * @brief 获取段落样式中段落缩进的像素图。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param pixelmap 段落缩进的像素图。
 * @return 返回结果码。
 *     <br>若作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
,ParagraphStyle_GetLeadingMarginPixelMap(
   !ParagraphStyle* style, struct1f	/G设置段落样式中段落缩进的宽度。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param width 段落缩进的宽度，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%ParagraphStyle_SetLeadingMarginWidth(AParagraphStyle* style,
    uint32_t width);

/**
 * @brief 获取段落样式中段落缩进的宽度。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param width 段落缩进的宽度，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%ParagraphStyle_GetLeadingMarginWidth(AParagraphStyle* style,
    uint32_t* width);

/**
 * @brief 设置段落样式中段落缩进的高度。
 *
 * @param style 向ParagraphStyle}对象的指针。
 * @param height 段落缩进的高度，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
&ParagraphStyle_SetLeadingMarginHeight(A)ParagraphStyle* style,
    uint32_t heighXG获取段落样式中段落缩进的高度。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param height 段落缩进的高度，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
&ParagraphStyle_GetLeadingMarginHeight(A*ParagraphStyle* style,
    uint32_t* heighX>设置段落样式的断字方式。
 *
 * @param style 指向NParagraphStyle}对象的指针。
 * @param wordBreak 断字方式。取值为
Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
ParagraphStyle_SetWordBreak(AParagraphStyle* style,
    ArkUI_WordBreak wordBreak);

/**
 * @brief 获取段落样式的断字方式。
 *
 * @param style 向NParagraphStyle}对象的指针。
 * @param wordBreak 断字方式。取值为
Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
ParagraphStyle_GetWordBreak(AParagraphStyle* style,
    ArkUI_WordBreak* wordBreak);

/**
 * @brief 设置段落样式的换行策略。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param lineBreakStrategy 换行策略。取值为{@link OH_ArkUI_LineBreakStrategy}中的J举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$ParagraphStyle_SetLineBreakStrategy(AParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy lineBreakStrategy);

/**
 * @brief 获取段落样式的换行策略。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param lineBreakStrategy 换行策略。取值为{@link OH_ArkUI_LineBreakStrategy}中的J举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$ParagraphStyle_GetLineBreakStrategy(AParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy* lineBreakStrategy);

/**
 * @brief 设置段落样式的段落间距。
 *
 * @param style 指向ParagraphStyle}对象的指针。
 * @param paragraphSpacing 段落间距，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
#ParagraphStyle_SetParagraphSpacing(AParagraphStyle* style,
    uint32_t paragraphSpacing);

/**
 * @brief 获取段落样式的段落间距。
 *
 * @param style 向ParagraphStyle}对象的指针。
 * @param paragraphSpacing 段落间距，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
#ParagraphStyle_GetParagraphSpacing(AParagraphStyle* style,
    uint32_t* paragraphSpacing);

/**
 * @brief 设置段落样式的文本垂直对齐方式。
 *
 * @param style 指向bParagraphStyle}对象的指针。
 * @param verticalAlignment 文本垂直对齐方式。取值为 4#Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$ParagraphStyle_SetTextVerticalAlign(AParagraphStyle* style,
   3 verticalAlignm	J获取段落样式的文本垂直对齐方式。
 *
 * @param style 指向bParagraphStyle}对象的指针。
 * @param verticalAlignment 文本垂直对齐方式。取值为 4#Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
$ParagraphStyle_GetTextVerticalAlign(AParagraphStyle* style,
   3* verticalAlignm	>设置段落样式的文本方向。
 *
 * @param style 指向RParagraphStyle}对象的指针。
 * @param textDirection 文本方向。取值为SQ中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 ParagraphStyle_SetTextDirection(AParagraphStyle* style,
    ArkUI_TextDirection textDirection);

/**
 * @brief 获取段落样式的文本方向。
 *
 * @param style 指向RParagraphStyle}对象的指针。
 * @param textDirection 文本方向。取值为SQ中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 ParagraphStyle_GetTextDirection(AUParagraphStyle* style,
    ArkUI_TextDirection* textDirection);

/**
 * @brief 通过:设置预设段落样式。
 *
 * @param controller 指向对象的指针。
 * @param style 预设段落样式。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetTypingParagraphStyle(
   !* controller,!ParagraphStyle* stylF	创建一个阴影选项对象。当该对象不再使用时，请调用{@link OH_ArkUI_ShadowOptions_Destroy}销毁。
 *
 * @iShadowOptions}对象的指针ljShadowOptions* OH_ArkUI_ShadowOptions_Create();

/**
 * @brief 销毁阴影选项对象。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @since 24
 */
void OH_ArkUI_ShadowOptions_Destroy(OH_ArkUI_ShadowOptions* options);
v	设置阴影选项的模糊半径。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param radikus 阴影的模糊半径，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	DShadowOptions_SetRadius(OH_ArkUI_ShadowOptions* options, float radiuv	获取阴影选项的模糊半径。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param radikus 阴影的模糊半径，单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	EShadowOptions_GetRadius(OH_ArkUI_ShadowOptions* options, float* radiuv	设置阴影选项的阴影类型。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param type 阴影E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	KShadowOptions_SetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType typF	获取阴影选项的阴影类型。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param type 阴影E。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	LShadowOptions_GetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType* typF	设置阴影选项的阴影颜色。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param colobr 阴影颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_SetColor(OH_ArkUI_ShadowOptions* options, uint32_t color);

/**
 * @brief 获取阴影选项的阴影颜色。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param color 阴影颜色，0xARGB格式。
 * @re;turn 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_GetColor(OH_ArkUI_ShadowOptions* options, uint32_t* color);

/**
 * @brief 设置阴影在x轴上的偏移量。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param offsetX 阴影在x轴上的偏移量，N位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_SetOffsetX(OH_ArkUI_ShadowOptions* options, float offsetX);

/**
 * @brief 获取阴影在x轴上的偏移量。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param offsetX 阴影在x轴上的偏移量，N位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_GetOffsetX(OH_ArkUI_ShadowOptions* options, float* offsetX);

/**
 * @brief 设置阴影在y轴上的偏移量。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param offsetY 阴影在y轴上的偏移量，O位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_SetOffsetY(OH_ArkUI_ShadowOptions* options, float offsetY);

/**
 * @brief 获取阴影在y轴上的偏移量。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param offsetY 阴影在y轴上的偏移量，N位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_GetOffsetY(OH_ArkUI_ShadowOptions* options, float* offsetY);

/**
 * @brief 设置是否用阴影填充组件内。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param isFill 是否用阴影填充组件部。true表示用阴影填充组件内部，false表示不用阴影填充组件内部。默认值为false。
 * @return 返3回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_SetFill(OH_ArkUI_ShadowOptions* options, bool isFill);

/**
 * @brief 获取是否用阴影填充组件内部。
 *
 * @param options 指向{@link OH_ArkUI_ShadowOptions}对象的指针。
 * @param isFill 是否用阴影填充组件内部true表示用阴影填充组件内部，false表示不用阴影填充组件内部。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	ShadowOptions_GetFill(OH_ArkUI_ShadowOptions* options, bool* isFill);

/**
 * @brief 创建一个文本样式对象。当该对象不再使用时，请调用TextStyle_Destroy}销毁。
 *i,TextStyle}对象的指针lj(
TextStyle*!XTextStyle_Create();

/**
 * @brief 销毁文本样式对象。
 *
 * @param style 指向2TextStyle}对象的指针。
 * @since 24
 */
void!TextStyle_Destroy(ATextStyle* stylF	8设置文本样式的字体颜色。
 *
 * @param style 0i样式。
 * @param color 字体颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontColor(AjTextStyle* style, uint32_t color);

/**
 * @brief 获取文本样式的字体颜色。
 *
 * @param style 0i样式。
 * @param color 字体颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontColor(AkTextStyle* style, uint32_t* color);

/**
 * @brief 设置文本样式的字体大小。
 *
 * @param style 0i样式。
 * @param size 字体大小，单位为fp。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link '。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontSize(ATextStyle* style, float sizF	8获取文本样式的字体大小。
 *
 * @param style 0i样式。
 * @param size 字体大小，单位为fp。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link '。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontSize(ATextStyle* style, float* sizF	8设置文本样式的字体样式。
 *
 * @param style 0i6样式。
 * @param fontStyle 字体样式。取值为Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontStyle(A.TextStyle* style,
    ArkUI_FontStyle fontStylF	8获取文本样式的字体样式。
 *
 * @param style 0i6样式。
 * @param fontStyle 字体样式。取值为Q中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontStyle(A/TextStyle* style,
    ArkUI_FontStyle* fontStylF	8设置文本样式的字体粗细。
 *
 * @param style 0i样式。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如100、900。
 * @return 返1结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontWeight(A$TextStyle* style, uint32_t fontWeighX8获取文本样式的字体粗细。
 *
 * @param style 0i样式。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如100、900。
 * @return 返1结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontWeight(A%TextStyle* style, uint32_t* fontWeighX8设置文本样式的字体家族。
 *
 * @param style 0i样式。
 * @param fontFamily 字体家族。存放待设置的字体名称，不同字体名称通过逗号拼接。
 * @retu9rn 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontFamily(ATextStyle* style, const char* fontFamily);

/**
 * @brief 获取文本样式的字体家族。
 *
 * @param style TextEditor组=i	样式。
 * @param buffer 字体家族内容写入内存的缓冲区，内存空间需由开发者分配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength 实际写入缓冲区的字符的数量。
 * @return 4回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontFamily(ATextStyle* style,
    char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 设置文本样式的文本装饰选项。
 *
 * @param style 0i"样式。
 * @param options 指向>'i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetDecoration(ATextStyle* style,
    * optionv	>获取文本样式的文本装饰选项。
 *
 * @param style 0i"样式。
 * @param options 指向>'i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetDecoration(ATextStyle* style,
    * optionv	>设置文本样式的文本阴影选项。
 *
 * @param style 0i样式。
 * @param options 文本阴影选项。
 * @param length 文本阴影选项的长度。
 * @return 返回结果码。$
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetTextShadows(ATextStyle* style,
    const OH_ArkUI_ShadowOptions** options, int32_t length);

/**
 * @brief 获取文本样式的文本阴影选项。
 *
 * @param style 0i样式。
 * @param shadowOptions 文本阴影选项。
 * @param shadowOptionsSize 阴影选项的缓冲区大小。
 * @param writeLength 文本样式中实际的文本阴影选项数量。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetTextShadows(ATextStyle* style,
    OH_ArkUI_ShadowOptions** shadowOptions, uint32_t shadowOptionsSize, uint32_t* writeLength);

/**
 * @brie:f 设置文本样式的文本行高。
 *
 * @param style 0i样式。
 * @param lineHeight 文本行高。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI_ER'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetLineHeight(A#TextStyle* style, int32_t lineHeighX8获取文本样式的文本行高。
 *
 * @param style 0i样式。
 * @param lineHeight 文本行高。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI_ER'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetLineHeight(A$TextStyle* style, int32_t* lineHeighX8设置文本样式的字符间距。
 *
 * @param style 0i样式。
 * @param letterSpacing 字符间距。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetLetterSpacing(ATextStyle* style,
    int32_t letterSpacing);

/**
 * @brief 获取文本样式的字符间距。
 *
 * @param style TextEditor:i样式。
 * @param letterSpacing 字符间距。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetLetterSpacing(ATextStyle* style,
    int32_t* letterSpacing);

/**
 * @brief 设置文本样式的文字特性效果，比如数字等宽的性。
 *
 * @param style 0i样式。
 * @param fontFeature 字体特性。存放待设置的字体特性，多个特性通过逗号拼接。
 * @return 4回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetFontFeature(A,TextStyle* style,
    const char* fontFeaturF	\获取文本样式的文字特性效果，比如数字等宽的特性。
 *
 * @param style 0i样式。
 * @param buffer 字体特性内容写入内存的缓冲区，内存空间需由开发者分配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength 实际表示写入缓冲区的字符的数量。
 * @ret:urn 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetFontFeature(ATextStyle* style, char* buffer,
    int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 设置文本样式中文本是否A将行间距平分至行的顶部与底部。
 *
 * @param style 0i样式。
 * @param halfLeading 文本是否将行间距平分至行的顶部与底部。
 *     <br>true表示将行间距平至行的顶部与底部，false表示不将行间距平分至行的顶部与底部。默认值为false。
 * @return 返回/果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_SetHalfLeading(ATextStyle* style, bool halfLeading);

/**
 * @brief 获取文本样式中文本是否将行间距平分至行的顶部与底部。
 *
 * @param style 0i样式。
 * @param halfLeading 文本是否将行间距平分至行的顶部与底部。
 *     <br>true表示将行间距平至行的顶部与底部，false表示不将行间距平分至行的顶部与底部。默认值为false。
 * @return 返回/果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
TextStyle_GetHalfLeading(ATextStyle* style, bool* halfLeading);

/**
 * @brief 设置文本样式中的文本背景颜色。
 *
 * @param style TextEdito9i样式。
 * @param color 文本背景颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功，返!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
!TextStyle_SetTextBackgroundColor(ATextStyle* style,
    uint32_t color);

/**
 * @brief 获取文本样式中的文本背景颜色。
 *
 * @param style TextEdit8i样式。
 * @param color 文本背景颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>若操作成功，返!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
!TextStyle_GetTextBackgroundColor(ATextStyle* style,
    uint32_t* color);

/**
 * @brief 设置文本样式中文本背景的圆角半径。
 *
 * @param style T1i样式。
 * @param topLeft 文本背景左上角的圆角半径。单位为vp。
 * @param topRight 文本背景右上角的角半径。单位为vp。
 * @param bottomLeft 文本背景左下角的圆角半径。单位为vp。
 * @param bottomRight 本背景右下角的圆角半径。单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARK'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
"TextStyle_SetTextBackgroundRadius(AWTextStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRighXG获取文本样式中文本背景的圆角半径。
 *
 * @param style 0i样式。
 * @param topLeft 文本背景左上角的圆角半径。单位为vp。
 * @param topRight 文本背景右上角的角半径。单位为vp。
 * @param bottomLeft 文本背景左下角的圆角半径。单位为vp。
 * @param bottomRight 本背景右下角的圆角半径。单位为vp。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARK'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
"TextStyle_GetTextBackgroundRadius(A[TextStyle* style,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRighX通过:设置预设输入样式。
 *
 * @param controller 指向对象的指针。
 * @param style 预设输入样式。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetTypingStyle(
   !* controller,!TextStyle* stylF	通过:获取预设输入样式。
 *
 * @param controller 指向对象的指针。
 * @param style 预设输入样式。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@lin'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetTypingStyle(
   !* controller,!TextStyle* stylF	c创建一个文本编辑器文本选择菜单选项对象。当该对象不再使用时，请调用_Destroy}销毁。
 *i,对象的指针lj(*!l_Create();

/**
 * @brief 销毁文本编辑器文本选择菜单选项对象。
 *
 * @param options 指向(对象的指针。
 * @since 24
 */
void!	_Destroy(A* optionv	Y设置文本编辑器中文本选择菜单的span的类型。
 *
 * @param options 指向I对象的指针。
 * @param textEditorSpanType span的类型。取值为ZSpanType}中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetSpanType(
   !
* options,!SpanType textEditorSpanTypF	Y获取文本编辑器中文本选择菜单的span的类型。
 *
 * @param options 指向I对象的指针。
 * @param textEditorSpanType span的类型。取值为ZSpanType}中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetSpanType(
   !
* options,!SpanType* textEditorSpanTypF	X设置文本编辑器中文本选择菜单的内容节点。
 *
 * @param options 指向对象的指针。
 * @param node 内容节点。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetContentNode(A
* options,	X获取文本编辑器中文本选择菜单的内容节点。
 *
 * @param options 指向对象的指针。
 * @param node 内容节点。
 * @return 返回结果码。
 *     <br>若操作成功，返回{@link ARKUI'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetContentNode(A	* options;	J	X设置文本编辑器中文本选择菜单的响应类型。
 *
 * @param options 指向B对象的指针。
 * @param responseType 响应类型。取值为^ResponseType}中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetResponseType(
   !
* options,!ResponseType responseTypF	X获取文本编辑器中文本选择菜单的响应类型。
 *
 * @param options 指向B对象的指针。
 * @param responseType 响应类型。取值为^ResponseType}中的枚举。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetResponseType(
   !
* options,!ResponseType* responseTypF	R设置文本编辑器中文本选择菜单的类型。
 *
 * @param options 指向对象的指针。
 * @param menuType 菜单类型。取值为{@link OH_ArkUI_TextMenuType}中的枚举。
 * @return 返回结-果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetMenuType(A,* options,
    OH_ArkUI_TextMenuType menuTypF	R获取文本编辑器中文本选择菜单的类型。
 *
 * @param options 指向对象的指针。
 * @param menuType 菜单类型。取值为{@link OH_ArkUI_TextMenuType}中的枚举。
 * @return 返回结-果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetMenuType(A-* options,
    OH_ArkUI_TextMenuType* menuTypF	设置文本选择菜单显示*
 * @param options 指向对象的指针。
1用户数据。w	菜单显示时的回调函数。
 *     start 选中内容的起始偏移量。
 *     end 选中内容的结束偏移量。
 h*     callbackUserData 用户数据。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 _RegisterOnMenuShowCallback(
   !^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser	设置文本选择菜单隐藏*
 * @param options 指向对象的指针。
1用户数据。w	菜单隐藏时的回调函数。
 *     start 选中内容的起始偏移量。
 *     end 选中内容的结束偏移量。
 `*     userData 用户数据。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
 _RegisterOnMenuHideCallback(
   !^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser	设置文本选择菜单出现*
 * @param options 指向对象的指针。
1用户数据。w	菜单出现时的回调函数。
 *     start 选中内容的起始偏移量。
 *     end 选中内容的结束偏移量。
 `*     userData 用户数据。
 * @return 返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
"_RegisterOnMenuAppearCallback(
   !^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser	设置文本选择菜单消失*
 * @param options 指向对象的指针。
1用户数据。w	菜单消失时的回调函数。
 *     userData 用户数据。
 * @return 返回结果码。
 *     <br>若操作成功，回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
%_RegisterOnMenuDisappearCallback(
   !	* options	#void* callbackUser	^设置文本编辑器中文本选择菜单的触觉反馈模式。
 *
 * @param options 指向对象的指针。
 * @param mode 触觉反馈模式。取值为{@link OH_ArkUI_HapticFeedbackMode}中的枚举。
 * @return 5回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetHapticFeedbackMode(
   !(* options, OH_ArkUI_HapticFeedbackMode m;	^获取文本编辑器中文本选择菜单的触觉反馈模式。
 *
 * @param options 指向对象的指针。
 * @param mode 触觉反馈模式。取值为{@link OH_ArkUI_HapticFeedbackMode}中的枚举。
 * @return 5回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetHapticFeedbackMode(
   !)* options, OH_ArkUI_HapticFeedbackMode* m;	关闭文本编辑器7的文本选择菜单。
 *
 * @param controller 指向i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_CloseSelectionMenu(
   !$* controller);

/**
 * @brief 通过获取选中区域。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param controller 向对象的指针。
 * @param start 选中区域的起始位置。
 * @param end 选中区域的结束位置。
 * @return 返1结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetSelection(
    cons +* controller, uint32_t* start, uint32_t* en通过设置显示的属性字符串。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param controller 指向S对象的指针。
 * @param descriptor 指向{@link ArkUI_StyledString_Descriptor}i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetStyledString(
    cons U* controller, const ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief 通过获取显示的属性字符串。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param controller 指向S对象的指针。
 * @param descriptor 指向{@link ArkUI_StyledString_Descriptor}i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_GetStyledString(
    cons O* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief 通过设置属性字符串样式的提示文本。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param controller 指向S对象的指针。
 * @param descriptor 指向{@link ArkUI_StyledString_Descriptor}i6返回结果码。
 *     <br>若操作成功，返回!'。
 *     <br>若参数异常，返回q&。
 * @since 24y	+
_SetStyledPlaceholder(
    cons =* controller, const ArkUI_StyledString_Descriptor* descriptor		reate theY instance.
 *
 * @param type The picker selection indicator enumeration type.
 * @return  instance. If the instance returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may9 be that the address space is full or
 *         the type	3
*/
!* OH_!_Create(!%Type type);

/**
* @brief Destroy the instance.
*
* @param style The	 instance @since 23
*/
void OH_!	_Dispose(!T* style);

/**
* @brief Set the parameters of background style.
*
* @param style TheA instance.
* @param background The parameters of background style|bsuccess;The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro1r code will be returned.
*         This interface1}%	"type is "background".
* @since 23
{	'_ConfigureBackground(!* style,
   `Background* background);

/**
* @brief Set the parameters of divider style.
*
* @param style The; instance.
* @param divider The parameters of divider style|bsuccess;The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro1r code will be returned.
*         This interface1}%	type is "divider".
* @since 23
{	'_ConfigureDivider(!* style,
   Divider* divider)~!scale options for matrix scaling.$	Matrix4ScaleOptions ArkUI_Matrix4ScaleOptions;

/**
 * @brief Create an object of ArkUI_Matrix4ScaleOptions.
 *        In the newly created options, the default values for the scaling coefficients in the x, y and z directions
 *        are 1, and the def]
!s for centerX, centerY are 0. 
 *qba pointer to the newly created ArkUI_Matrix4ScaleOptions.
 * @since 24
 */
ArkUI_Matrix4ScaleOptions* OH_ArkUI_Matrix4ScaleOptiCons_Create();

/**
 * @brief Disposes the ArkUI_Matrix4ScaleOptions	options Pointer to the ArkUI_Matrix4ScaleOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4ScaleOptions_D(ispose(ArkUI_Matrix4ScaleOptions* optionv			caling factor in the x direction in ArkUI_Matrix4ScaleOptions. 
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions oXbject.
 * @param scaleX The scaling factor in the x direction. Value range: (-∞, +∞)a$	i	a qi	K	Q	24y	OMatrix4ScaleOptions_SetX(ArkUI_Matrix4ScaleOptions* options, const float scaleX	caling factor in the x direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of x is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction.ċ	v	Q	24y	PMatrix4ScaleOptions_GetX(const ArkUI_Matrix4ScaleOptions* options, float* scaleX	caling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions obWject.
 * @param scaleY The scaling factor in the y direction. Value range: (-∞, +∞)a$	i		Q	24y	OMatrix4ScaleOptions_SetY(ArkUI_Matrix4ScaleOptions* options, const float scaleY	caling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of y is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction.ċ	v	Q	24y	PMatrix4ScaleOptions_GetY(const ArkUI_Matrix4ScaleOptions* options, float* scaleY	caling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions obWject.
 * @param scaleZ The scaling factor in the z direction. Value range: (-∞, +∞)a$	i		Q	24y	OMatrix4ScaleOptions_SetZ(ArkUI_Matrix4ScaleOptions* options, const float scaleZ	caling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of z is never set, its default value is 1.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction.ċ	v	Q	24y	Matrix4ScaleOptions_GetZ(const ArkUI_Matrix4ScaleOptions* options, float* scaleZ);

/**
 * @brief Set x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x offset relative to the transformation !center. Value range: (-∞, +∞)a$	i		Q	24y	VMatrix4ScaleOptions_SetCenterX(ArkUI_Matrix4ScaleOptions* options, const float centerX	+		centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The unit is -px. If the value of centerX is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerX The x-direction offset relative to the transformation centera$	i		Q	24y	Matrix4ScaleOptions_GetCenterX(const ArkUI_Matrix4ScaleOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y offset relative to the transfor(mation center. Value range: (-∞, +∞)a$	i		Q	24y	VMatrix4ScaleOptions_SetCenterY(ArkUI_Matrix4ScaleOptions* options, const float centerY	+		centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The unit is -px. If the value of centerY is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y-direction offset relative to the transformation centera$	i		Q	24y	XMatrix4ScaleOptions_GetCenterY(const ArkUI_Matrix4ScaleOptions* options, float* centerY)~%rotation options for matrix rotating.$	Matrix4RotationOptions ArkUI_Matrix4RotationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4RotationOptions.
 *        In the newly created options, the x, y, and z values in the direction vector specifying the rotation axis
 *        are undete6rmined; The default values for centerX, centerY are 0;for angle is 0.
 *        If none of x, y, z are specified, it is equivalent to x=0, y=0, z=1, which means rotation around the z-axis.
 *        Once any one of x, y, z is specified, the remaining unspecified values are equivalent to 0.
 *
 * @return Retba pointer to the newly created ArkUI_Matrix4RotationOptions.
 * @since 24
 */
ArkUI_Matrix4RotationOptions* OH_ArkUI_Matrix4RotOationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4RotationOptions	options Pointer to the ArkUI_Matrix4RotationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4RotationOpt1ions_Dispose(ArkUI_Matrix4RotationOptions* optionv		value of the direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction. Value range: (-∞, +∞)a$	i		Q	24y	PMatrix4RotationOptions_SetX(ArkUI_Matrix4RotationOptions* options, const float x	+	direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of x is never set, its value 8will be undefined, so the function will return
 *       1.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis dire	v	Q	24y	QMatrix4RotationOptions_GetX(const ArkUI_Matrix4RotationOptions* options, float* x	value of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction. Value range: (-∞, +∞)a$	i		Q	24y	PMatrix4RotationOptions_SetY(ArkUI_Matrix4RotationOptions* options, const float y	+	direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of y is never set, its value 8will be undefined, so the function will return
 *       1.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis dire	v	Q	24y	QMatrix4RotationOptions_GetY(const ArkUI_Matrix4RotationOptions* options, float* y	value of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction. Value range: (-∞, +∞)a$	i		Q	24y	PMatrix4RotationOptions_SetZ(ArkUI_Matrix4RotationOptions* options, const float z	+	direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of z is never set, its value 8will be undefined, so the function will return
 *       1.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis dire	v	Q	24y	QMatrix4RotationOptions_GetZ(const ArkUI_Matrix4RotationOptions* options, float* z	value of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptions. Value range: (-∞, +∞)a$	i		Q	24y	WMatrix4RotationOptions_SetAngle(ArkUI_Matrix4RotationOptions* options, const float angl{	+	rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *        If the value of angle is never set, its default v	.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptionsa$	i		Q	24y	XMatrix4RotationOptions_GetAngle(const ArkUI_Matrix4RotationOptions* options, float* anglqP	x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x offset rel=ative to the transformation center. Value range: (-∞, +∞)a$	i		Q	24y	\Matrix4RotationOptions_SetCenterX(ArkUI_Matrix4RotationOptions* options, const float centerX	+		centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The unit is -px. If the value of centerX is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerX The x-direction offset relative to the transformation centera$	i		Q	24y	Matrix4RotationOptions_GetCenterX(const ArkUI_Matrix4RotationOptions* options, float* centerX);

/**
 * @brief Set y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation center. The unit is px.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y offset relative to the1 transformation center. Value range: (-∞, +∞)a$	i		Q	24y	\Matrix4RotationOptions_SetCenterY(ArkUI_Matrix4RotationOptions* options, const float centerY	+		centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The unit is -px. If the value of centerY is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y-direction offset relative to the transRformation centera$	i		Q	24y	^Matrix4RotationOptions_GetCenterY(const ArkUI_Matrix4RotationOptions* options, float* centerY)~+translation options for matrix translating.$	Matrix4TranslationOptions ArkUI_Matrix4TranslationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4TranslationOptions.
S *        In the newly created options, the default values for x, y and z are 0.
 *qba pointer to the newly created ArkUI_Matrix4TranslationOptions.
 * @since 24
 */
ArkUI_Matrix4TranslationOptions* OH_ArkUI_Matr[ix4TranslationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4TranslationOptions	options Pointer to the ArkUI_Matrix4TranslationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4Translat:ionOptions_Dispose(ArkUI_Matrix4TranslationOptions* optionv		htranslation value in the x-axis direction. The unit is px.
 *        If the value of x is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis d#irection. Value range: (-∞, +∞)a$	i		Q	24y	VMatrix4TranslationOptions_SetX(ArkUI_Matrix4TranslationOptions* options, const float x	translation value in the x-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatriQx4TranslationOptions object.
 * @param x The translation value in the x-axis dire	v	Q	24y	WMatrix4TranslationOptions_GetX(const ArkUI_Matrix4TranslationOptions* options, float* x	htranslation value in the y-axis direction. The unit is px.
 *        If the value of y is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis d#irection. Value range: (-∞, +∞)a$	i		Q	24y	VMatrix4TranslationOptions_SetY(ArkUI_Matrix4TranslationOptions* options, const float y	translation value in the y-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatriQx4TranslationOptions object.
 * @param y The translation value in the y-axis dire	v	Q	24y	WMatrix4TranslationOptions_GetY(const ArkUI_Matrix4TranslationOptions* options, float* y	htranslation value in the z-axis direction. The unit is px.
 *        If the value of z is never set, its.
 *
 * @param options Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis d#irection. Value range: (-∞, +∞)a$	i		Q	24y	VMatrix4TranslationOptions_SetZ(ArkUI_Matrix4TranslationOptions* options, const float z	translation value in the z-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options Pointer to the ArkUI_MatriQx4TranslationOptions object.
 * @param z The translation value in the z-axis dire	v	Q	24y	WMatrix4TranslationOptions_GetZ(const ArkUI_Matrix4TranslationOptions* options, float* z	$reate an identity matrix4 object.
 *qbcreated identity matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateIdentity();

/**
 * @brief Specify each* element of the matrix to create a matrix4	elements Pointer to the array of expected matrix element data. The length of array should be greater than
 *                 or! equal to 16. The parameter must [$newly created matrix4 object.
 *         If the pointer of elements is null, the function will return null.
 * @since 24
 */
ArCkUI_Matrix4* OH_ArkUI_Matrix4_CreateByElements(const float* elementv	Disposes a matrix4	matrix Pointer to the matrix4 object to be disposed.
 * @since 24
 */
void OH_ArkUI_Matrix4_Dispose(ArkUI_Matrix4* matrix);

/*	reate a copy of the matrix4	&matrix Pointer to the original matrix40	@onewly created matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_Copy(const ArkUI_Matrix4* matrix	erform an inverse matrix transformation on the input matrix.
 *        If the matrix is invertible, this function will modify the input matrix; otherwise, the matrix will remain
 *        unchanged and an error code will be returned.
 *
 * @param matrix ,Pointer to the matrix4 object to be inverteda$	i	`&matrix is not invertible.
 * @since 24y	$Matrix4_Invert(ArkUI_Matrix4* matrix	mbine another matrix with the original matrix, and storing the resulting matrix in oriMatrix.
 *        The resulting matrix is equivalent to first applying the transformation of oriMatrix and then applying
 *        the transformation of anotherMatrix. &This function will alter the oriMatrix	oriMatrix Pointer to the original matrix4 object.
 * @param anotherMatrix Pointer to another matrix object to be combined.
 * @g$	i		Q	24y	Matrix4_Combine(ArkUI_Matrix4* oriMatrix, const ArkUI_Matrix4* anotherMatrix);

/**
 * @brief Apply a tranlation transformation to the original matrix to obtain the translated matrix. Each translation
 *        transformation is applied cumulatively. Thi&s function will alter the input matrix	5matrix Pointer to the matrix4 object to be translated_&	# Pointer to the translation optionsa$	i		Q	24y	XMatrix4_Translate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4TranslationOptions* translatF	Apply a scale transformation to the original matrix to obtain the scaled matrix. Each scale
 *        transformation is applied8 cumulatively. This function will alter the input matrix	_matrix Pointer to the matrix4 object to be scaled.
 * @param scale Pointer to the scale optionsa$	i		Q	24y	JMatrix4_Scale(ArkUI_Matrix4* matrix, const ArkUI_Matrix4ScaleOptions* scalF	Apply a rotation transformation to the original matrix to obtain the rotated matrix. Each rotation
 *        transformation is ?applied cumulatively. This function will alter the input matrix	dmatrix Pointer to the matrix4 object to be rotated.
 * @param rotate Pointer to the rotation optionsa$	i		Q	24y	LMatrix4_Rotate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4RotationOptions* roQ	Apply a skew transformation to the original matrix to obtain the skewed matrix. Each skew
 *        transformation is applied c6umulatively. This function will alter the input matrix	matrix Pointer to the matrix4 object to be skewed. It must not be null.
 * @param skewX Skew coefficient in the x direction.
 * @param skewY Skew coefficienƋ	v	Q	24y	HMatrix4_Skew(ArkUI_Matrix4* matrix, const float skewX, const float skewY	alculate the new coordinate position of a point after it has been transformed by a matrix.
 *        The calculated transformed coordinate point will be filled into the ArkUI_PointF structure
 *        pointed to by result.
 *
 * @param matrix Pointer to the matrix4 object.
 * @param oriPoint Pointer to the original coordinate point.
 * @param result Pointer to the result point.	 It must [$i		Q	24y	eMatrix4_TransformPoint(const ArkUI_Matrix4* matrix, const ArkUI_PointF* oriPoint, ArkUI_PointF* resulXMap the vertex coordinates of one polygon to the vertex coordinates of another polygon, and calculate the required
 *        matrix. The resulting matrix will be filled into the object pointed to by matrix.
 * 
 * @param matrix Pointer to the original matrix4 object. The result matrix will be filled into the object pointed to by it.
 *               It must not be null.
 * @param src Pointer to the array of original polygon coordinate points. The array should be at least as long as pointCount.
 * @param dst Pointer to the array of polygon coordinate points after mapping. The array should be at least as long as pointCount.
 * @p^aram pointCount The number of polygon points, which must be one of the values 0, 1, 2, 3, or 4a$	i		Q	24y	Matrix4_SetPolyToPoly(ArkUI_Matrix4* matrix, const ArkUI_PointF* src, const ArkUI_PointF* dst, const uint32_t pointCount);

/**	5	 the 16 elements of the matrix and fill them into the array pointed to by result.
 *        The array pointed to by result must have space for 16 float elements.
 *
 * @param matrix Pointer to the original matrix4 object.
 * @param result Pointer to an array that can holdnnIt must [$i		Q	24y	=Matrix4_GetElements(const ArkUI_Matrix4* matrix, float* resulXg	 of text.-(gg~nfiguration of text.-LFontConfigs OH_ArkUI_FontConfigs;

/**
 * @brief Create an option object forg7 of text.
 *
 * @return A pointer to the option object.oj(g*g6_Create();

/**
 * @brief Destroy an option object forga of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
voidg	_Destroy(g T	~d	5enableVariableFontWeight flag of an option object forgB of text.
 * The flag defines whether VariableFontWeight is suppor:pK(
 * True means enable VariableFontWeight` VariableFontWeight.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableVariableFontWeight Flag.
 * @since 24
 */
voidg_SetEnableVariableFontWeight(g* option, bool enabl{	;s the enableVariableFontWeight flag of an option object forgB of text.
 * The flag defines whether VariableFontWeight is suppor:pK(
 * True means enable VariableFontWeight`> VariableFontWeight.
 *
 * @param option Pointer to the option0	@3nableVariableFontWeight flag.
 * @since 24
 */
boolg_GetEnableVariableFontWeight(g T	~d	;enableDeviceFontWeightCategory flag of an option object forg( of text.
 * Defines whether font weight	7pdated when the device's font weight category changes.
1.true.
 * True means font weight	pdated when the device's font weight category changes.
 * False means font weight will not be automatically updated when the device's font weight category changes.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableDe2viceFontWeightCategory Flag.
 * @since 24
 */
voidg#_SetEnableDeviceFontWeightCategory(gl* option, bool enable);
 
/**
 * @brief Gets the enableDeviceFontWeightCategory flag of an option object forg( of text.
 * Defines whether font weight	7pdated when the device's font weight category changes.
1.true.
 * True means font weight	pdated when the device's font weight category changes.
 * False means font weight will not be automatically updated when the deNvice's font weight category changes.
 *
 * @param option Pointer to the option0	@9nableDeviceFontWeightCategory flag.
 * @since 24
 */
boolg#_GetEnableDeviceFontWeightCategory(g T	eCreate an option object for font configuration of text.
 *
 * @return A pointer to the option object.ojFontConfigs* OH_ArkUI_FontConfigs_Create();

/**
 * @brief Destroy an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
void OH_ArkUI_FontConfigs_Destroy(OH_ArkUI_FontConfigs*!T	~d	gs of an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fontWeightConfigsgds.
 * @since 24
 */
void OH_ArkUI_FontConfigs_SetFontWeightConfigs(OH_ArkUI_FontConfigs* option,
   g** fontWeightConfigs);
 
/**
 * @brief Getsg_s of an option object for font configuration of text.
 *
 * @param option Pointer to the option0	@gs.oj(g@* OH_ArkUI_FontConfigs_GetFontWeightConfigs(OH_ArkUI_FontConfigs T	p7tree operating status for the cross-language option.
 *ީ	ƾUndefined, the initial value of the node tree operating status. Nodes in this status do not support cross-language node tree opera`X(OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED!	Enable, which means that when the option is applied to the node, the node's tree operating status will be enabled.
     *
     zOH_ARKUI_TREE_OPERATING_STATUS_ENABLE = 1,
    /**
     * Disable, which means that when the option is applied to the node, the, node's tree operating status will be disablz,SOH_ARKUI_TREE_OPERATING_STATUS_DISABLE = 2,
} OH_ArkUI_CrossLanguageOperatingStatusmd7tree operating status for the cross-language option.
 *R	+.
 * @param status The tree operating status to be set for the cross-language option.
 * Default value: OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED.ީ	void OH_,R	_SetTreeOperatingStatus(,R	!-, OH_ArkUI_CrossLanguageOperatingStatus statuv	?Gets the tree operating status of the cross-language option.
 *R	+Ë	3 the tree operating status of the cross-language op	)OH_ArkUI_CrossLanguageOperatingStatus OH_,R	_GetTreeOperatingStatus(,R	3linear gradient options.
 *ީ	F=OH_ArkUI_LinearGradientOptions OH_ArkUI_LinearGradientOptions~radial gradient options.
 *ީ	FOH_ArkUI_RadialGradientOptions OH_ArkUI_RadialGradientOptions;

/**
 * @brief Creates a linear gradient options object.
 * The returned object must be released by calling <b>OH_ArkUI_LinearGradientOptions_Destroy</b>.
 *
 * @return Pointer to the <b>OH_A&rkUI_LinearGradientOptions</b> object.ީ	OH_ArkUI_LinearGradientOptions* OH_ArkUI_LinearGradientOptions_Create();

/**
 * @brief Destroys a linear gradient options obje	Doptions Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.ީ	Rvoid OH_ArkUI_LinearGradientOptions_Destroy(OH_ArkUI_LinearGradientOptions* optionv	Sets angle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param angle Start angle ofGYi		~	RLinearGradientOptions_SetAngle(OH_ArkUI_LinearGradientOptions* options, float angl{	s angle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param$ angle Pointer to the start angle ofGYi		~	YLinearGradientOptions_GetAngle(const OH_ArkUI_LinearGradientOptions* options, float* anglqP	s direction of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param direction Direction ofB&b$	i		~	OLinearGradientOptions_SetDirection(OH_ArkUI_LinearGradientOptions* options,
   7 direc	s direction of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @p*aram direction Pointer to the direction ofB&b$	i		~	ULinearGradientOptions_GetDirection(const OH_ArkUI_LinearGradientOptions* options,
   7* direction);

/**
 in linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Whetherb$	i		~	ZLinearGradientOptions_SetRepeating(OH_ArkUI_LinearGradientOptions* options, bool repeating		s whether in linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Pointer to whetherb$	i		~	LinearGradientOptions_GetRepeating(
    const OH_ArkUI_LinearGradientOptions* options, bool* repeating);

/**
 * @brief Sets color stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elementwcolors and stops.
 *           w!colors and stops must be the samea$	i		~	LinearGradientOptions_SetColorStop(
    OH_ArkUI_LinearGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSiz{	s color stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSizeA Buffer size reserved for color stops by developer.
 *           wcolors and stops must be the same.
 *                           It should be larger than writeLength,
 *                       '    otherwise the operation will return1>.
 * @param writeLength Number of color stops actually writtena$	i		Q		~	LinearGradientOptions_GetColorStop(
    const OH_ArkUI_LinearGradientOptions* options, uint32_t* colors, float* stops, int32_t ,colorsAndStopsSize,
    int32_t* writeLength	reate *options object.
 * The returned object must be released by calling <b>OH_ArkUI_RadialGradientOptions_Destroy</b>.
 *
 * @return= Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.ީ	_OH_ArkUI_RadialGradientOptions* OH_ArkUI_RadialGradientOptions_Create();

/**
 * @brief Destroy *options	Doptions Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.ީ	Rvoid OH_ArkUI_RadialGradientOptions_Destroy(OH_ArkUI_RadialGradientOptions* optionv	Sets centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @(param centerX X-coordinate of center poiUi		~	WRadialGradientOptions_SetCenterX(OH_ArkUI_RadialGradientOptions* options, float centerX	s centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @par4am centerX Pointer to the X-coordinate of center poiUi		~	RadialGradientOptions_GetCenterX(
    const OH_ArkUI_RadialGradientOptions* options, float* centerX);

/**
 * @brief Sets centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Y-coordinate of center poiUi		~	WRadialGradientOptions_SetCenterY(OH_ArkUI_RadialGradientOptions* options, float centerY	s centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @par4am centerY Pointer to the Y-coordinate of center poiUi		~	RadialGradientOptions_GetCenterY(
    const OH_ArkUI_RadialGradientOptions* options, float* centerY);

/**
 * @brief Sets radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Radius of radial gradiAYi		~	TRadialGradientOptions_SetRadius(OH_ArkUI_RadialGradientOptions* options, float radiuv	Gets radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @p1aram radius Pointer to the radius of radial gradiAYi		~	`RadialGradientOptions_GetRadius(
    const OH_ArkUI_RadialGradientOptions* options, float* radiuv	 in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Whetherb$	i		~	ZRadialGradientOptions_SetRepeating(OH_ArkUI_RadialGradientOptions* options, bool repeating		s whether in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Pointer to whetherb$	i		~	RadialGradientOptions_GetRepeating(
    const OH_ArkUI_RadialGradientOptions* options, bool* repeating);

/**
 * @brief Sets color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elementwcolors and stops.
 *           w!colors and stops must be the samea$	i		~	RadialGradientOptions_SetColorStop(
    OH_ArkUI_RadialGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSiz{	s color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSizeA Buffer size reserved for color stops by developer.
 *           wcolors and stops must be the same.
 *                           It should be larger than writeLength,
 *             otherwise the operation will return1>.
 * @param writeLength Number of color stops actually writtena$	i		Q		~	RadialGradientOptions_GetColorStop(
    const OH_ArkUI_RadialGradientOptions* options, uint32_t* colors, float* stops, int32_t -colorsAndStopsSize,
    int32_t* writeLength)_,ion of the policy for mounting child node to*ީ	ƾXIf you want to mount a RenderNode as a child node, that RenderNode must be the only chilz+0OH_ARKUI_NODE_MOUNT_POLICY_SINGLE_IF_RENDER_NODE!	5Multiple child nodes of type Node or RenderNode allowz,'OH_ARKUI_NODE_MOUNT_POLICY_MIXED = 1,
}P	;<	6TYPE_H
/** @} */
P^)#>x   	ArkUI UI capabilities on the NQ-, property setting, event monitoring, and so AYstyled_string.h
 *
 * @brief 在Native侧定义{@link 组件类型}为ARKUI_NODE_TEXT的组件的文本样式和文本布局管	理器。STYLED_STRING_H
#define ARKUI_NATIVE_STYLED_STRING_H

#include "native_drawing/drawing_text_declaration.h"
#include "native_drawing/drawing_text_typography.h"
#include "native_drawing/drawing_types.h"
#include "native_gesture.h"
#include "native_node.h"
#include "native_typeC2formatted string data objects supported by the tex1p0pqT?A pointer to OH_Drawing_TypographyStyle, obtained by {@link OH_Drawing_CreateTypographyStyle}.
 * @param collection A pointer tho OH_Drawing_FontCollection, obtained by {@link OH_Drawing_CreateFontCollection}.
 * @return Creates a pqT objectwt3the creation failed, either because the address space was full,
 *         or because the style, collection parameter was an exceptionTStyledString* OH_ArkUI_StyledString_Create(
    OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection);

/**}CFree the memory occupied by the+A pqT>troy(ArkUI_StyledString 9	Dnew layout style to the top of the current format string style stack+A pqTqC*tyle A pointer to the OH_Drawing_TextStyle>BStyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_" 9I5text content based on the current format string style+A pqT1S%content A pointer to the text content>!/StyledString_AddText(ArkUI_StyledString* handle!o'ARemoves the top style from the stack in the current format string+A pqT>,StyledString_PopTextStyle(ArkUI_StyledString s a pointer to an OH_Drawing_Typography object based on a format string object
 * for advanced text estimation and typography.
+A pqT`FOH_Drawing_Typography objectwt3%the creation fails because the handle>POH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledStringplaceholder+A pqT1S6placeholder A pointer to the OH_Drawing_PlaceholderSpa>\StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placehol?`G+<b></b> object creat?* OH_psG/( and reclaims the memory occupied by theGDȼM	_Destroy(10Converts styled string information into HTML.
 *GOjnresulting HTML string. This pointer is managed internally and should be destroyed
 *         by calling <b>OH_0_Destroy()</b> when no longer needed to free theNConvertToHtml(1Deserializes a byte array containing styled string information into a styled string.
 *
 * @param buffer Byte array to be deserialized.OLength of the byte arrayGPjk0
M;IUnmarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize,1Serializes the styled string information into a byte array.
 *
 * @param buffer Byte array where the serialized data will be stored.OLength of the byte arrayGP$resultSize Actual length of the byte~ hX} if the styled stringQM;GMarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize,1, size_t* result~属性字符串样式对象。 <br>        可以通过{@link OH_ArkUI_SpanStyle_Create}接口创建对应的属性字符串样Q式对象。 <br>        可以通过
 * {@link OH_ArkUI_SpanStyle_Destroy}接口j式对象。 <br>        对象创建后通过{@link OH_ArkUI_SpanStyle_SetStart}和
 * {@link OH_ArkUI_SpanStyle_SetLength}定样式作用的范围。 <br>        对象创建后通过OH_ArkUI_SpanStyle_SetXXXStyle系列接口设置生效的具体W式，例如通过
 * {@link OH_ArkUI_SpanStyle_SetTextStyle}设置字体样式效果0SpanStyle OH_ArkUI_SpanStyle;
 o图片样式对象。 <br>        可以通过{@link OH_ArkUI_ImageAttachment_Create}接口创建对应的图片样式对象。 <br>        可以通过
 * {@link OH_ArkUI_ImageAttachment_Destroy}接口销毁图片样式对象。 <br>        对象创建后通过OH_ArkUI_ImageAttachment_SetXXX系列接口设置生效的具体样式，
 * 例如通过{@link OH_ArkUI_ImageAttachment_SetPixelMap}设置图片源0+ImageAttachment OH_ArkUI_ImageAttachment;
 o4定义绘制Span。 <br>        可以通过{@link\_Create}接口创建对应的自定义绘制Span对象。 <br>        可以通过
 * {@link]_Destroy}接口销毁自定义绘制Span对象。 <br>        对象创建后通过
 * {@link$_RegisterOnMeasureCallback}和{@link6_RegisterOnDrawCallback}接口注册绘制回调函数0
*;
 
/**
 * @brief 属性字符串的样式nB未指定样式@*"STYLEDSTRINGKEY_UNSPECIFIED = -1,
~字体样式@*STYLEDSTRINGKEY_FONT = 装饰线样式@* STYLEDSTRINGKEY_DECORATION = 1,
~基线偏移量样式@*%STYLEDSTRINGKEY_BASELINE_OFFSET = 2,
~字符间距样式@*$STYLEDSTRINGKEY_LETTER_SPACING = 3,
~阴影样式@*!STYLEDSTRINGKEY_TEXT_SHADOW = 4,
~行高样式@*!STYLEDSTRINGKEY_LINE_HEIGHT = 5,
~背景颜色样式@*ESTYLEDSTRINGKEY_BACKGROUND_COLOR = 6,

    /**
     * 超链接样式@*STYLEDSTRINGKEY_URL^行间距样式。+DSTYLEDSTRINGKEY_LINE_SPACING = 8,

    /**
     * 事件手势样式@*STYLEDSTRINGKEY_GESTURE = 10段落样式@*$STYLEDSTRINGKEY_PARAGRAPH_STYLE = 20样式@*STYLEDSTRINGKEY_IMAGE = 30自定义绘制Span样式@* STYLEDSTRINGKEY_CUSTOM_SPAN = 40用户数据Span样式@*=STYLEDSTRINGKEY_USER_DATA = 500
} OH_ArkUI_StyledStringKey;
 纯文本内容类型的A0+。
 *
 * @note 	用 OH__Destroy 来销毁它。
 *    /QLZ属性字符串文本内容字符串。
 * @param styles 属性字符串初始化选项，.SpanStyle}对象数组;属性字符串初始化指向创建的A0;b    <br>如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常14* OH_$_CreateWithString(const char* value,&SpanStyle** styles, int32_t length);
 图片内容类型的A0+。
 *
 * @note 	用 OH__Destroy 来销毁它。
 *    /QLVImageAttachment0v指向创建的A0;b    <br>如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常14* OH__CreateWithImageAttachmentImageAttachment* value);
 "自定义绘制Span内容类型的A0+。
 *
 * @note 	用 OH__Destroy 来销毁它。
 *    /QLV
0v指向创建的A0;b    <br>如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常14* OH__CreateWithCustomSpan(cons_N属性字符串的字符长度q/`G3B#字符长度L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_GetLength(~7/,
    int32_t* length);
 N属性字符串的w|/UG3B#N本d 返回值为!
!	时表示?!长度。
 *     <br>返回值为x*?时表示字符串完整写入缓冲区所需要的最小长度L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX&} 属性字符串无效。
 *     <br>x+缓冲区大小不足14._GetString(
   }70,If判断两个属性字符串是否相同。当属性字符串的文本及样式均一致，视为相同q/`firstD10L 'econdDescriptor 指向另一个A0<#SisEqual 两个属性字符串是否相同。true表示相同；false表示不相同L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ	_IsEqual(~7%firstDescriptor,
   }7&secondDescriptor, bool* isEqualq9属性字符串的子72oG3B 'ubD106属性字符串Ystart 子属性字符串的起始位置。取值范围[0, 属性字符串的字符长度]j子属性字符串的字符长度。取值范围[0, 属性字符串的字符长度与参数start的差值]L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_SubStyledString(~7/,
   * subDescriptor#N-属性字符串指定范围内的样式集合q/`G3B`-M指定范围的起始位置。取值范围[0, 属性字符串的字符长度]定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param styledKey 需要获的指定样式类型<StyledStringKeyparam styles 指向样式对象d2&stylesSize 样式对象数组,A属性字符串中获取到的样式对象的数组的实际大尗.!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX&} 属性字符串无效。
 *     <br>x+缓冲区大小不足14._GetStyles(~7/,
   r[length, OH_ArkUI_StyledStringKey styledKey, OH_ArkUI_SpanStyle** styles,
    uint32_t style.将HTML格式字符串转换成72oG3B#6html 待转换为属性字符串的HTML格式字符串L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ
_FromHtml(1O, const char* html);
 
/**
 * @brief 替换属性字符串指定范围的文本q/`G3B`-M指定范围的起始位置。取值范围[0, 属性字符串的字符长度]定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param string 替换的新本内容L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_ReplaceString(
   1rZlength, const char* string);
 
/**
 * @brief 在属性字符串的指定位置插入文本q/`G3B`-k插入位置。取值范围[0, 属性字符串的字符长度]。
 * @param string 插入的新文本内容L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_InsertString(
   1a, uint32_t start, const char* string);
 
/**
 * @brief 移除属性字符串指定范围的文本q/`G3B`-M指定范围的起始位置。取值范围[0, 属性字符串的字符长度]c定范围的字符长度。取值范围[0, 属性字符串的字符长度与参数start的差值]L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_RemoveString(
   1rFlength);
 
/**
 * @brief 替换属性字符串指定范围内的样式q/`G3B 'panSASpan    <br>需先i[SpanStyle_SetStart}和{@link OH_ArkUI_SpanStyle_SetLength}在该对象中设置目标范围L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_ReplaceStyle(
   1e, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief 为属性字符串指定范围设置新样式q/`G3B 'panSASpan需先iSpanStyle_SetStart}和
 *.5SpanStyle_SetLength}在该对象中设置目标范围L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_SetStyle(
   1, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief 清除属性字符串指定范围内容的指定类型样式。
 *
 * @|/UG3B`-M指定范围的起始位置。取值范围[0, 属性字符串的字符长度]定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param styledKey 样式类枚举值<StyledStringKey:!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_RemoveStyle(
   1rglength, OH_ArkUI_StyledStringKey styledKey);
 
/**
 * @brief 清除属性字符串对象的所有样式q/`G3g!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_ClearStyles(1" 
/**
 * @brief 替换指定范围_/rG3B`-M指定范围的起始位置。取值范围[0, 属性字符串的字符长度]定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param other 指向新的{@C0_!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_ReplaceStyledString(1,
   rlength|7'Bother);
 
/**
 * @brief 在属性字符串的指定位置插入新_/rG3B`-^插入位置。取值范围[0, 属性字符串的字符长度]。
 * @param other 指向新的A0a!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_InsertStyledString(
   1, uint32_t start|7'<other);
 
/**
 * @brief 在属性字符串的末尾追加新_/rG3Bther 指向新的A0a!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_AppendStyledString(
   1|7'Lother);
 
/**
 * @brief 主动刷新属性字符串中的自定义绘制Spanq/`G3g!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>hX} 属性字符串无敗qJ_InvalidateCustomSpan(~72 o'体样式。 <br>        可以通过ZYStyle_Create}接口创建对应的文本字体样式对象。 <br>        可以通过
 *"Style_Destroy}接口销毁文本字体样式对象。 <br>        对象创建后通过OH_ArkUI_TextStyle_SetXXX系列接口设*置生效的具体样式，例如通过
 *"%Style_SetFontColor}设置字体颜色4EStyle;
 o上下角标样式б<普通文本样式@*SUPERSCRIPTSTYLE_NORMAL = 上标文本样式@*@SUPERSCRIPTSTYLE_SUPERSCRIPT,

    /**
     * 下标文本样式@*9SUPERSCRIPTSTYLE_SUBSCRIPT
} OH_ArkUI_SuperscriptStyle;
 ZStyle}对象。
 *
 * @note 0用 OH_ArkUI_TextStyle_Destroy 来销毁它。-&K 	J:Style* OH_ArkUI_TextStyle_Create();
 
/**
 * @brief 释放Z1Style}对象占用的内存。
 *
 * @param textSAKStyle* textStyle);
 K字体样式中@g|/UtextSA#eR!
"操作成功。
 *     <br>'函数参数异常142h (Style* textStyle, uint32_t fontColor);
 字体样式中@g|/UtextSA#eR!
"操作成功。
 *     <br>'函数参数异常1422a4)Style* textStyle, uint32_t* fontColor);
 K字体样式中的字体族q/`textSA#@Tx!
"操作成功。
 *     <br>'函数参数异常142!Style* textS 字体样式中的字体族q/`textSA#N'时，表示?串长度。
 *     <br>40B时，表示字符串完整写入缓冲区所需要的最小长度L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>x+缓冲区大小不足142Ua4Style* textSC K字体样式中`|/UtextSA#@T!N/!
"操作成功。
 *     <br>'函数参数异常142$Style* textStyle, float fontSize);
 字体样式中`|/UtextSA#@T!N/!
"操作成功。
 *     <br>'函数参数异常142Style_GetFontSize(a4Style* textStyleU K字体样式中|/UtextSA#@Ty!
"操作成功。
 *     <br>'函数参数异常142!Style* textS 字体样式中|/UtextSA#@Ty!
"操作成功。
 *     <br>'函数参数异常142Style_GetFontWeight(a4Style* textS K字体样式中的字体风格q/`textSA#@c风格1I!
"操作成功。
 *     <br>'函数参数异常142 /Style* textStyle, ArkUI_FontStyle fontStyle);
 字体样式中的字体风格q/`textSA#@c风格1I!
"操作成功。
 *     <br>'函数参数异常142a4Style* textStyle, K字体样式中的描边宽度q/`textSA#strokeWidth 描边/A!
"操作成功。
 *     <br>'函数参数异常142Style_SetStrokea'Style* textStyle, float strokeWidth);
 字体样式中的描边宽度q/`textSA#strokeWidth 描边/A!
"操作成功。
 *     <br>'函数参数异常142Style_GetStrokeWidth(a4(Style* textStyle, float* strokeWidth);
 K字体样式中的描边颜艗p/atextSA#strokeColor 描边B!
"操作成功。
 *     <br>'函数参数异常142LStyle_SetStrokeColor(OH_ArkUI_TextStyle* textStyle, uint32_t strokeColor);
 字体样式中的描边颜艗p/atextSA#strokeColor 描边B!
"操作成功。
 *     <br>'函数参数异常142Style_GetStrokeColor(a4+Style* textStyle, uint32_t* strokeColor);
 K!字体样式中的上下标样式q/`textSA#superscript 上下标a	SuperscriptStyle:!
"操作成功。
 *     <br>'函数参数异常142aStyle_SetSuperscript(OH_ArkUI_TextStyle* textStyle,
    OH_ArkUI_SuperscriptStyle superscript);
 !字体样式中的上下标样式q/`textSA#superscript 上下标a	SuperscriptStyle:!
"操作成功。
 *     <br>'函数参数异常142Style_GetSuperscript(a4@Style* textStyle,
    OH_ArkUI_SuperscriptStyle* superscript);
 0{@link OH_ArkUI_SpanStyle}对象。
 *
 * @note 0用 OH_ArkUI_SpanStyle_Destroy 来销毁它。-"SpanK 	SpanStyle* OH_ArkUI_SpanStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_SpanStyle}对象占用的内存。
 *
 * @param spanSASpanK3SpanStyle_Destroy(OH_ArkUI_SpanStyle* spanStyle);
 N*属性字符串样式对象的样式类型q/`spanSASpan#"styledKey 样式类型的枚举值1StyledStringKey:!
"操作成功。
 *     <br>'函数参数异常14.gSpanStyle_GetStyledKey(const OH_ArkUI_SpanStyle* spanStyle,
    OH_ArkUI_StyledStringKey* styledKey);
 K*属性字符串样式对象的起始位置q/`spanSASpan#*start 属性字符串样式对象的起始-3!
"操作成功。
 *     <br>'函数参数异常14.CSpanStyle_SetStart(OH_ArkUI_SpanStyle* spanStyle, int32_t start);
 N*属性字符串样式对象的起始位置q/`spanSASpan#*start 属性字符串样式对象的起始-3!
"操作成功。
 *     <br>'函数参数异常14.JSpanStyle_GetStart(const OH_ArkUI_SpanStyle* spanStyle, int32_t* start);
 K$属性字符串样式对象的长度q/`spanSASpan#$属性字符串样式对象的长度L-!
"操作成功。
 *     <br>'函数参数异常14.ESpanStyle_SetLength(OH_ArkUI_SpanStyle* spanStyle, int32_t length);
 N$属性字符串样式对象的长度q/`spanSASpan#$属性字符串样式对象的长度L-!
"操作成功。
 *     <br>'函数参数异常14.LSpanStyle_GetLength(const OH_ArkUI_SpanStyle* spanStyle, int32_t* length);
 K0属性字符串样式对象的文本字体样式q/`spanSASpan#textSA0v%!
"操作成功。
 *     <br>'函数参数异常14.5SpanStyle_SetTextStyle(OH_ArkUI_SpanStyle* spanStyle,`4Style* textStyle);
 N0属性字符串样式对象的文本字体样式q/`spanSASpan#textSA0v%!
"操作成功。
 *     <br>'函数参数异常14.]SpanStyle_GetTextStyle(const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextStyle* textStyle);
 o段落样式。 <br>        可以通过{@link OH_ArkUI_ParagraphStyle_Create}接口创建对应的段落样式对象。 <br>  &      可以通过
 * {@link OH_ArkUI_接口 <br>        对象创建后通过OH_ArkUI_ParagraphStyle_SetXXX系列接口设置生效的具体样式，
 * 例如通过{@link OH_ArkUI_}设置%)ParagraphStyle OH_ArkUI_ParagraphStyle;
 K*属性字符串样式对象的段落样式q/`spanSASpan#k
A&0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_Set;GSpanStyle* spanStyle, const OH_ArkUI_ParagraphStyle* paragraphStyle);
 N*属性字符串样式对象的段落样式q/`spanSASpan#k
A&0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetParagraphStyleASpanStyle* spanStyle, OH_ArkUI_ParagraphStyle* paragraphStyle);
 o事件手势样式。 <br>        
 * 可以通过{@link OH_ArkUI_GestureStyle_Create}接口创建对应的事件手势样式象。 <br>        
 * 可以通过{@link OH_ArkUI_GestureStyle_Destroy}接口销毁事件手势样式对象。 <br>
 * 对象创建后通过OH_ArkUI_GestureStyle_RegisterOnXXXCallback系列接口注册具体的事件回调，例如通过
 * {@link OH_ABrkUI_GestureStyle_RegisterOnClickCallback}注册点击事件回调0%GestureStyle OH_ArkUI_GestureStyle;
 K0属性字符串样式对象的事件手势样式q/`spanSASpan#gestureSAGesture0v%!
"操作成功。
 *     <br>'函数参数异常14.kSpanStyle_SetGestureStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_GestureStyle* gestureStyle);
 N0属性字符串样式对象的事件手势样式q/`spanSASpan#gestureSAGesture0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetGestureStyle=SpanStyle* spanStyle, OH_ArkUI_GestureStyle* gestureStyle);
 o(阴影样式。 <br>        可以通过Z_ShadowStyle_Create}接口创建对应的文本阴影样式对象。 <br>        可以通过
 *"`ShadowStyle_Destroy}接口销毁文本阴影样式对象。 <br>        对象创建后通过
 *"5ShadowStyle_SetTextShadow}接口设置生效的具体:'ShadowStyle OH_ArkUI_TextShadowStyle;
 K0属性字符串样式对象的文本阴影样式q/`spanSASpan#textShadowSAShadow0v%!
"操作成功。
 *     <br>'函数参数异常14.@SpanStyle_SetTextShadowStyle(
    OH_ArkUI_SpanStyle* spanStyle,`4 ShadowStyle* textShadowStyle);
 N0属性字符串样式对象的文本阴影样式q/`spanSASpan#textShadowSAShadow0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetTextShadowStyleCSpanStyle* spanStyle, OH_ArkUI_TextShadowStyle* textShadowStyle);
 o+装饰线样式。 <br>        可以通过)#_Create}接口创建对应的文本_ <br>        可以通过
 * )_Destroy}接口销毁文本_ <br>
 * 对象创建后通过=_SetXXX系列接口设置生效的具体样式，例如通过)0_SetTextDecorationType}
 * 设置装饰线类型0;
 K3属性字符串样式对象的文本装饰线样式q/`spanSASpan#]>
SA$0v%!
"操作成功。
 *     <br>'函数参数异常14.FSpanStyle_SetDecorationStyle(
    OH_ArkUI_SpanStyle* spanStyle, const* decorationStyle);
 N3属性字符串样式对象的文本装饰线样式q/`spanSASpan#]>
SA$0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetDecorationStyleSpanStyle* spanStyle,* decorationStyle);
 o基线偏移量样式。 <br>        可以通过{@link OH_ArkUI_BaselineOffsetStyle_Create}接口创建对应的基线偏移样式对象。 <br>        可以通过
 * {@link OH_ArkUI_BaselineOffsetStyle_Destroy}接口销毁基线偏移量样式对。 <br>        对象创建后通过
 * {@link OH_ArkUI_BaselineOffsetStyle_SetBaselineOffset}接口设置具体的基线偏量值0*BaselineOffsetStyle OH_ArkUI_BaselineOffse,L3属性字符串样式对象的基线偏移量样式q/`spanSASpan#baselineOffsetSABaselineOffset0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_SetBaselineOffsetStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
)IN3属性字符串样式对象的基线偏移量样式q/`spanSASpan#baselineOffsetSABaselineOffset0v%!
"操作成功。
 *     <br>'函数参数异常14. SpanStyle_GetBaselineOffsetStyleKSpanStyle* spanStyle, OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 o字符间距样式。 <br>        可以通过{@link OH_ArkUI_LetterSpacingStyle_Create}接口创建对应的字符间距样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LetterSpacingStyle_Destroy}接口销毁字符间距样式对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_LetterSpacingStyle_SetLetterSpacing}接口设置具体的字符间距值。
 *
 (1LetterSpacingStyle OH_ArkUI_LetterSpacingStyle;
 K0属性字符串样式对象的字符间距样式q/`spanSASpan#SALetterSpacing0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_SetLetterSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/N0属性字符串样式对象的字符间距样式q/`spanSASpan#SALetterSpacing0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetLetterSpacingStyleISpanStyle* spanStyle, OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 o高样式。 <br>        可以通过{@link OH_ArkUI_LineHeightStyle_Create}接口创建对应的行高样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LineHeightStyle_Destroy}接口销毁行高样式对象。 <br>        对象创建后可通过
 * {@link OH_ArkUI_LineHeightStyle_SetLineHeight}接口设置具体的固定行高值。<br>        从API版本26.0.0开始，对象创建后可以通过
 * {@link OH_ArkUI_LineHeightStyle_SetLineHeightMultiple}接口设置具体的行高的倍数值0+LineHeightStyle OH_ArkUI_LineHeightStyle;
 K*属性字符串样式对象的行高样式q/`spanSASpan#/
SA
LineHeight0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_SetLineHeightStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @brN
*属性字符串样式对象的行高样式q/`spanSASpan#/
SA
LineHeight0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetLineHeightStyleCSpanStyle* spanStyle, OH_ArkUI_LineHeightStyle* lineHeightStyle);
 o链接样式。 <br>        可以通过{@link OH_ArkUI_UrlStyle_Create}接口创建对应的超链接样式对象。 <br>        可以通过
 * {@link OH_ArkUI_UrlStyle_Destroy}接口销毁超链接样式对象。 <br>        对象创建后通过{@l5ink OH_ArkUI_UrlStyle_SetUrl}接口设置链接地址0UrlStyle OH_ArkUI_UrlStyle;
 K-属性字符串样式对象的超链接样式q/`spanSASpan#urlSAUrl0v%!
"操作成功。
 *     <br>'函数参数异常14.ZSpanStyle_SetUrlStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UrlStyle* urlStyle);
 N-属性字符串样式对象的超链接样式q/`spanSASpan#urlSAUrl0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetUrlStyle5SpanStyle* spanStyle, OH_ArkUI_UrlStyle* urlStyle);
 o景颜色样式。 <br>        可以通过{@link OH_ArkUI_BackgroundColorStyle_Create}接口创建对应的背景颜色样对象。 <br>        可以通过
 * {@link OH_ArkUI_BackgroundColorStyle_Destroy}接口销毁背景颜色样式对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_BackgroundColorStyle_SetColor}和{@link OH_ArkUI_BackgroundColorStyle_SetRadi$us}接口设置背景颜色和圆角05BackgroundColorStyle OH_ArkUI_BackgroundColorStyle;
 K0属性字符串样式对象的背景颜色样式q/`spanSASpan#backgroundColorSABackgroundColor0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_SetBackgroundColorStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 N0属性字符串样式对象的背景颜色样式q/`spanSASpan#backgroundColorSABackgroundColor0v%!
"操作成功。
 *     <br>'函数参数异常14.!SpanStyle_GetBackgroundColorStyleMSpanStyle* spanStyle, OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 o用户数据Span样式。 <br>        可以通过{@link OH_ArkUI_UserDataSpan_Create}接口创建对应的用户数据Span样对象。 <br>        可以通过
 * {@link OH_ArkUI_UserDataSpan_Destroy}接口销毁用户数据Span样式对象。 <br>  `      对象创建后通过{@link OH_ArkUI_UserDataSpan_SetUserData}
 * 接口绑定用户数据0%UserDataSpan OH_ArkUI_UserDataSpan;
 K4属性字符串样式对象的用户数据Span样式q/`spanSASpan#p#SpaUserDataSpan0v%!
"操作成功。
 *     <br>'函数参数异常14.kSpanStyle_SetUserDataSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UserDataSpan* userDataSpan);
 N4属性字符串样式对象的用户数据Span样式q/`spanSASpan#p#SpaUserDataSpan0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetUserDataSpa.=SpanStyle* spanStyle, OH_ArkUI_UserDataSpan* userDataSpan);
 K7属性字符串样式对象的自定义绘制Span样式q/`spanSASpan#	customSpa
0v%!
"操作成功。
 *     <br>'函数参数异常14.@SpanStyle_SetCustomSpan(
    OH_ArkUI_SpanStyle* spanStyle, cons* customSpan);
 N7属性字符串样式对象的自定义绘制Span样式q/`spanSASpan#	customSpa
0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetCustomSpa.SpanStyle* spanStyle,* customSpan);
 K*属性字符串样式对象的图片样式q/`spanSASpan#imageAttachmentVImageAttachment0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_SetImageAttachment(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @brN
*属性字符串样式对象的图片样式q/`spanSASpan#imageAttachmentVImageAttachment0v%!
"操作成功。
 *     <br>'函数参数异常14.SpanStyle_GetImageAttachmentCSpanStyle* spanStyle, OH_ArkUI_ImageAttachment* imageAttachment);
 o段落缩进的自定义绘制信息。 <br>        可以通过{@link OH_ArkUI_LeadingMarginSpanDrawInfo_Create}接口创建应的段落缩进的自定义绘制信息对象。 <br>
 *       可以通过{@link OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy}接口销毁段落缩进的自定义绘制信息对象。 <br>        对象用于在
 * {@link OH_ArkUI_ParagraphStyle_RegisaterOnDrawLeadingMarginCallback}注册的回调函数中，提供当前行的绘制上下文信息0?LeadingMarginSpanDrawInfo OH_ArkUI_LeadingMarginSpanDrawInfo;
 @{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象。
 *
 * @note @用 OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy 来销毁它。-"LeadingMarginSpanDrawInfo.LeadingMarginSpanDrawInfo* OH_ArkUI_LeadingMarginSpanDrawInfo_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LeadingMarginSpan7DrawInfo}对象占用的内存。
 *
 * @param drawInfoVLeadingMarginSpanDrawInfo1k3RLeadingMarginSpanDrawInfo_Destroy(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo);
 K?N缩进的自定义绘制信息对象中当前行相对于组件的水平偏移q/`drawInfoVLeadingMarginSpanDrawInfo74x 当前行相对于组件的水平偏移，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.XLeadingMarginSpanDrawInfo_SetX(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float x);
 NS落缩进的自定义绘制信息对象中当前行相对于组件的水平偏移q/`drawInfoVLeadingMarginSpanDrawInfo74x 当前行相对于组件的水平偏移，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14._LeadingMarginSpanDrawInfo_GetX(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float* x);
 K?H缩进的自定义绘制信息对象中行顶与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfo70top 行顶与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.\LeadingMarginSpanDrawInfo_SetTop(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float top);
 NM落缩进的自定义绘制信息对象中行顶与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfo70top 行顶与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.gLeadingMarginSpanDrawInfo_GetTop(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* top);
 K?H缩进的自定义绘制信息对象中行底与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfoN2ottom 行底与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.fLeadingMarginSpanDrawInfo_SetBottom(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float bottom);
 NM落缩进的自定义绘制信息对象中行底与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfoN2ottom 行底与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.mLeadingMarginSpanDrawInfo_GetBottom(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* bottom);
 K?T缩进的自定义绘制信息对象中当前行的基线与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfoN@aseline 当前行的基线与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.jLeadingMarginSpanDrawInfo_SetBaseline(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float baseline);
 NY落缩进的自定义绘制信息对象中当前行的基线与组件上边缘的距离q/`drawInfoVLeadingMarginSpanDrawInfoN@aseline 当前行的基线与组件上边缘的距离，单位pxL-!
"操作成功。
 *     <br>'函数参数异常14.LeadingMarginSpanDrawInfo_GetBaseline(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* baseline);
 
/**
 * @briefK?<缩进的自定义绘制信息对象中文本内容的方向q/`drawInfoVLeadingMarginSpanDrawInfo7
文本内容的f!
"操作成功。
 *     <br>'函数参数异常14.LeadingMarginSpanDrawInfo#LeadingMarginSpanDrawInfo* drawInfodirection);
 NA落缩进的自定义绘制信息对象中文本内容的方向q/`drawInfoVLeadingMarginSpanDrawInfo7
文本内容的f!
"操作成功。
 *     <br>'函数参数异常14.]LeadingMarginSpanDrawInfo_GetTextDirection(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo* direction);
 K??缩进的自定义绘制信息对象中当前行的起始索引q/`drawInfoVLeadingMarginSpanDrawInfo7start 当前行的起始索弗C.!
"操作成功。
 *     <br>'函数参数异常14.gLeadingMarginSpanDrawInfo_SetStart(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t start);
 ND落缩进的自定义绘制信息对象中当前行的起始索引q/`drawInfoVLeadingMarginSpanDrawInfo7start 当前行的起始索弗C.!
"操作成功。
 *     <br>'函数参数异常14.nLeadingMarginSpanDrawInfo_GetStart(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* start);
 K??缩进的自定义绘制信息对象中当前行的结束索引q/`drawInfoVLeadingMarginSpanDrawInfo7end 当前行的结束索弗C.!
"操作成功。
 *     <br>'函数参数异常14._LeadingMarginSpanDrawInfo_SetEnd(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, uint32_t end);
 ND落缩进的自定义绘制信息对象中当前行的结束索引q/`drawInfoVLeadingMarginSpanDrawInfo7end 当前行的结束索弗C.!
"操作成功。
 *     <br>'函数参数异常14.jLeadingMarginSpanDrawInfo_GetEnd(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* end);
 K?H缩进的自定义绘制信息对象中当前行是否为段落的首行q/`drawInfoVLeadingMarginSpanDrawInfoRPirst 当前行是否为段落的首行。true表示首行；false表示非首行L-!
"操作成功。
 *     <br>'函数参数异常14._LeadingMarginSpanDrawInfo_SetFirst(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, bool first);
 NM落缩进的自定义绘制信息对象中当前行是否为段落的首行q/`drawInfoVLeadingMarginSpanDrawInfoRPirst 当前行是否为段落的首行。true表示首行；false表示非首行L-!
"操作成功。
 *     <br>'函数参数异常14.jLeadingMarginSpanDrawInfo_GetFirst(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    bool* first);
 {@link OH_ArkUI_。
 *
 * @note 用 OH_ArkUI_ 来销毁它。-"&K 	XParagraphStyle* OH_ArkUI_ParagraphStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_占用的内存。
 *`A&K
"ParagraphStyle* paragraphStyle);
 K?݁平方向 |/Uk
A,align 水平方向]!
"操作成功。
 *     <br>'函数参数异常14.,OH_ArkUI_ParagraphStyle* paragraphStyle,
   	 Nl平方向 |/Uk
A,align 水平方向]!
"操作成功。
 *     <br>'函数参数异常14.8Align(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    K?中的首行文本缩进q/`k
A,textIndent 首行缩进值q;!
"操作成功。
 *     <br>'函数参数异常14.DIndent(OH_ArkUI_ParagraphStyle* paragraphStyle, float textIndent);
 Nl的首行文本缩进q/`k
A,textIndent 首行缩进值q;!
"操作成功。
 *     <br>'函数参数异常14.KIndent(const OH_ArkUI_ParagraphStyle* paragraphStyle, float* textIndent);
 K?݁大行数q/`k
A,maxLines 最大行数L-!
"操作成功。
 *     <br>'函数参数异常14.XParagraphStyle_SetMaxLines(OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t maxLines);
 Nl大行数q/`k
A,maxLines 最大行数L-!
"操作成功。
 *     <br>'函数参数异常14._ParagraphStyle_GetMaxLines(const OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t* maxLines);
 K?݁落超长时的显示方式q/`k
A,'overflow 段落超长时的显示方式1
Overflow:!
"操作成功。
 *     <br>'函数参数异常14.gParagraphStyle_SetOverflow(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextOverflow overflow);
 Nl落超长时的显示方式q/`k
A,'overflow 段落超长时的显示方式1
Overflow:!
"操作成功。
 *     <br>'函数参数异常14.nParagraphStyle_GetOverflow(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextOverflow* overflow);
 K?݁
行规则q/`k
A,i	行规则1I!
"操作成功。
 *     <br>'函数参数异常14.%ParagraphStyle* paragraphSٔ& Nl
行规则q/`k
A,i	行规则1I!
"操作成功。
 *     <br>'函数参数异常14.EParagraphStyle_GetWordBreak(const OH_ArkUI_ParagraphStyle* paragraphS' K?݁w/Zk
A,ΆN!
"操作成功。
 *     <br>'函数参数异常14.. 	,OH_ArkUI_ParagraphStyle* paragraphStyle,
   0& Nlw/Zk
A,ΆN!
"操作成功。
 *     <br>'函数参数异常14.(2const OH_ArkUI_ParagraphStyle* paragraphStyle,
   0* pixelmap);
 K?݁落缩进宽度q/`k
A,./A!
"操作成功。
 *     <br>'函数参数异常14...2ParagraphStyle* paragraphStyle, uint32_t width);
 Nl落缩进宽度q/`k
A,./A!
"操作成功。
 *     <br>'函数参数异常14./Width(const OH_ArkUI_ParagraphStyle* paragraphS K?݁落缩进高度q/`k
A,ZpA!
"操作成功。
 *     <br>'函数参数异常14..ParagraphStyle* paragraphS!
height);
 Nl落缩进高度q/`k
A,ZpA!
"操作成功。
 *     <br>'函数参数异常14.)const OH_ArkUI_ParagraphStyle* paragraphS K?݁|/Uk
A,kX!
"操作成功。
 *     <br>'函数参数异常14.,ParagraphStyle* paragraphS!۝ Nl|/Uk
A,kX!
"操作成功。
 *     <br>'函数参数异常14.#)const OH_ArkUI_ParagraphStyle* paragraphSޟ' K?中的垂直方向 |/Uk
A,垂直方向\K!
"操作成功。
 *     <br>'函数参数异常14.
ParagraphStyle* paragraphS%a Nl的垂直方向 |/Uk
A,垂直方向\K!
"操作成功。
 *     <br>'函数参数异常14.{)const OH_ArkUI_ParagraphStyle* paragraphS; K?中绘制段落缩进时触发ow/Zk
A,8onDraw The callback function for drawing leading margin.!3*!
"操作成功。
 *     <br>'函数参数异常14.ParagraphStyle_RegisterOnDrawLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    void(*onDraw)(ArkUI_DrawContext	3, OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo));
 K?$中获取段落缩进距离时触发ow/Zk
A-^eadingMargin The callback function for obtaining the indentation distance of a text paragraph.!3*!
"操作成功。
 *     <br>'函数参数异常14.ParagraphStyle_RegisterOnGetLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    float(*leadingMargin)());
 
/**
K?݁方向q/`k
A,{z!
"操作成功。
 *     <br>'函数参数异常14.ɦParagraphStyle* paragraphS. Nl	方向q/`k
A,{z!
"操作成功。
 *     <br>'函数参数异常14. )const OH_ArkUI_ParagraphStyle* paragraphSQ!3{@link OH_ArkUI_GestureStyle}对象。
 *
 * @note 3用 OH_ArkUI_GestureStyle_Destroy 来销毁它。-"GestureK 	GestureStyle* OH_ArkUI_Gesture P放{@link OH_ArkUI_GestureStyle}对象占用的内存。
 *
 * @param gestureSAGestureK3GestureStyle_Destroy(OH_ArkUI_GestureStyle* gesture!IL*事件手势样式中的点击事件回调q/`gestureSAGesture#$onClick The callback of click event.!3*!
"操作成功。
 *     <br>'函数参数异常14.GestureStyle_RegisterOnClick6<GestureStyle* gestureStyle, void(*onClick)(ArkUI_NodeEvent*)U*事件手势样式中的长按事件回调q/`gestureSAGesture#-onLongPress The callback of long press event.!3*!
"操作成功。
 *     <br>'函数参数异常14. GestureStyle_RegisterOnLongPress6CGestureStyle* gestureStyle, void(*onLongPress)(ArkUI_GestureEvent*)U*事件手势样式中的触摸事件回调q/`gestureSAGesture#$onTouch The callback of touch event.!3*!
"操作成功。
 *     <br>'函数参数异常14.GestureStyle_RegisterOnTouch6<GestureStyle* gestureStyle, void(*onTouch)(ArkUI_NodeEvent*)AZ"ShadowStyle}对象。
 *
 * @note 6用 OH_ArkUI_TextShadowStyle_Destroy 来销毁它。-&ShadowK 	J ShadowStyle* OH_ArkUI_TextShadow 放Z=ShadowStyle}对象占用的内存。
 *
 * @param textShadowSAShadowKShadowStyleFShadowStyle* textShad2L影1&|/UtextShadowSAShadow#	o，.数组;长度L-!
"操作成功。
 *     <br>'函数参数异常142DShadowStyle_SetTextShadow(OH_ArkUI_TextShadowStyle* textShadowStyle,{"	#阴影1&|/UtextShadowSAShadow# ，.数组C阴影W!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>x+缓冲区大小不足142ShadowStyle_GetTextShadow(a4ShadowStyle* textShadowSXu)}对象。
 *
 * @note 用_Destroy 来销毁它。-"$K 	?*ƀ放)2}对象占用的内存。
 *
 * @param decorationSA$K	_Destroy(* decorationStyle);
 K类型q/`]>
SA$1
f9!
"操作成功。
 *     <br>'函数参数异常14._S; -* decorationStylex 	 type);
 类型q/`]>
SA$1
f9!
"操作成功。
 *     <br>'函数参数异常14._GetTextDecorationType(const* decorationStylex ' K颜艗p/a]>
SA$:0!B!
"操作成功。
 *     <br>'函数参数异常14.
_SetColor(* decorationStylea9 颜艗p/a]>
SA$:0!B!
"操作成功。
 *     <br>'函数参数异常14._GetColor(const* decorationStyle, K样式q/`]>
SA$&'a(:!
"操作成功。
 *     <br>'函数参数异常14._SX(.* decorationStyle(
 style);
 样式q/`]>
SA$&'a(:!
"操作成功。
 *     <br>'函数参数异常14._GetTextDecorationStyle(const* decorationStyle() K("|/U]>
SA$U)u!
"操作成功。
 *     <br>'函数参数异常14._S,)/* decorationStyle,
    float thicknessScale);
 ("|/U]>
SA$U)u!
"操作成功。
 *     <br>'函数参数异常14._GetThicknessScale(const0* decorationStyle,
    float* thicknessScale);
 K0装饰线样式中是否开启多装饰线显示q/`]>
SA$UenableMultiType 是否开启多装饰线显示。true表示开启，false表示关闭L-!
"操作成功。
 *     <br>'函数参数异常14._SetEnableMultiType(+* decorationStyle, bool enableMultiType);
 0装饰线样式中是否开启多装饰线显示q/`]>
SA$UenableMultiType 是否开启多装饰线显示。true表示开启，false表示关闭L-!
"操作成功。
 *     <br>'函数参数异常14._GetEnableMultiType,* decorationStyle, bool* enableMultiType);
 :{@link OH_ArkUI_BaselineOffsetStyle}对象。
 *
 * @note :用 OH_ArkUI_BaselineOffsetStyle_Destroy 来销毁它。-"BaselineOffsetK 	BaselineOffsetStyle* OH_ArkUI_BaselineOffsetStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_BaselineOffsetStyle}对象占,用的内存。
 *
 * @param baselineOffsetSABaselineOffsetKQBaselineOffsetStyle_Destroy(OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 K基线偏移量q/`baselineOffsetSABaselineOffset#baselineOffset 基线!D!
"操作成功。
 *     <br>'函数参数异常14.BaselineOffsetStyle_SetBaselineOffset(
    OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float baselineOffset);
 
/**
 * @
N基线偏移量q/`baselineOffsetSABaselineOffset#baselineOffset 基线!D!
"操作成功。
 *     <br>'函数参数异常14.%BaselineOffsetStyle_GetBaselineOffsetCBaselineOffsetStyle* baselineOffsetStyle, float* baselineOffset);
 9{@link OH_ArkUI_LetterSpacingStyle}对象。
 *
 * @note 9用 OH_ArkUI_LetterSpacingStyle_Destroy 来销毁它。-"LetterSpacingK 	LetterSpacingStyle* OH_ArkUI_LetterSpacingStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LetterSpacingStyle}对象占用的内存。
 *SALetterSpacingKNLetterSpacingStyle_Destroy(OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 K?|/USALetterSpacing#值q;!
"操作成功。
 *     <br>'函数参数异常14.LetterSpacingStyle_SetLetterSpacing(
    OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float letterSpacing);
 
/**
 * @briefN?|/USALetterSpacing#值q;!
"操作成功。
 *     <br>'函数参数异常14. LetterSpacingStyle_GetLetterSpac@LetterSpacingStyle* letterSpacingStyle, float* letterSpacing);
 6{@link OH_ArkUI_LineHeightStyle}对象。
 *
 * @note 6用 OH_ArkUI_LineHeightStyle_Destroy 来销毁它。-"
LineHeightK 	LineHeightStyle* OH_ArkUI_LineHeightStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LineHeightStyle}对象占用的内存。
 *
 * @param lineHeightSA
LineHeightKELineHeightStyle_Destroy(OH_ArkUI_LineHeightStyle* lineHeightStyle);
 K行高q/`/
SA
LineHeight#/固定行高值q;!
"操作成功。
 *     <br>'函数参数异常14.LineHeightStyle_S:LineHeightStyle* lineHeightStyle,
    float lineHeight);
 行高q/`/
SA
LineHeight#/固定行高值q;!
"操作成功。
 *     <br>'函数参数异常14.hLineHeightStyle_GetLineHeight(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeight);
 K行高样式的行高倍数q/`/
SA
LineHeight#/
Multiple 行高倍数)H!
"操作成功。
 *     <br>'函数参数异常。a/LineHeightStyle_SetLineHeightMultiple(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeightMultiple);
 
/**
 * @briefN行高样式的行高倍数q/`/
SA
LineHeight#/
Multiple 行高倍数)H!
"操作成功。
 *     <br>'函数参数异常。a/LineHeightStyle_GetLineHeightMultiple(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeightMultiple);
 
/**
 *v间距样式。 <br>        可以通过{@link OH_ArkUI_LineSpacingStyle_Create}接口创建对应的行间距样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LineSpacingStyle_Destroy}接口销毁行间距样式对象。 <br>        对象建后可以通过
 * {@link OH_ArkUI_LineSpacingStyle_SetLineSpacing}接口设置具体的行间距值。<br>        对象建后可以通过
 * {@link OH_ArkUI_LineSpacingStyle_SetOnlyBetweenLines}接口设置行间距是否只在行间生效。
 *AE-LineSpacingStyle OH_ArkUI_LineSpacingStyle;
 K-属性字符串样式对象的行间距样式q/`spanSASpan#lineSpacingSALineSpacing0v%!
"操作成功。
 *     <br>'函数参数异常。a/SpanStyle_SetLineSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * 	N-属性字符串样式对象的行间距样式q/`spanSASpan#lineSpacingSALineSpacing0v%!
"操作成功。
 *     <br>'函数参数异常。a/SpanStyle_GetLineSpacingStyleESpanStyle* spanStyle, OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 7{@link OH_ArkUI_LineSpacingStyle}对象。
 *
 * @note 7用 OH_ArkUI_LineSpacingStyle_Destroy 来销毁它。-"LineSpacingK=
SpacingStyle* OH_ArkUI_LineSpacingStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LineSpacingStyle}对象占用的内存
 *
 * @param lineSpacingSALineSpacingK=HLineSpacingStyle_Destroy(OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 K	行间距q/`lineSpacingSALineSpacing#lineSpacing 行间距值q;!
"操作成功。
 *     <br>'函数参数异常。a/LineSpacingStyle_SetLineSpacing(OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float lineSpacing);
 
/**
 * @brief 查询行距q/`lineSpacingSALineSpacing#lineSpacing 行间距值q;!
"操作成功。
 *     <br>'函数参数异常。a/mLineSpacingStyle_GetLineSpacing(const OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float* lineSpacing);
 K!行间距是否只在行间生效q/`lineSpacingSALineSpacing#onlyBetweenLines 行间距是否只在行间生效。true表示仅在行与行之间添加间距，首行上方、尾行下方[额外间距，false表示所有行之间、首行上方、尾行下方均添加完整行3!
"操作成功。
 *     <br>'函数参数异常。a/LineSpacingStyle_SetOnlyBetweenLines(
    OH_ArkUI_LineSpacingStyle* lineSpacingStyle, bool onlyBetweenLines);
 
/**
 * @brief '查询行间距是否只在行间生效q/`lineSpacingSALineSpacing#onlyBetweenLines 行间距是否只在行间生效。true表示仅在行与行之间添加间距，首行上方、尾行下方[额外间距，false表示所有行之间、首行上方、尾行下方均添加完整行3!
"操作成功。
 *     <br>'函数参数异常。a/$LineSpacingStyle_GetOnlyBetweenLines>LineSpacingStyle* lineSpacingStyle, bool* onlyBetweenLines);
 ;{@link OH_ArkUI_BackgroundColorStyle}对象。
 *
 * @note ;用 OH_ArkUI_BackgroundColorStyle_Destroy 来销毁它。-"BackgroundColorK 	BackgroundColorStyle* OH_ArkUI_BackgroundColorStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_BackgroundColorStyle}对象占用的内存A-BackgroundColorKEBackgroundColorStyle_Destroy(OH_ArkUI_BackgroundColorStyle* style);
 K背景颜色样式的背景艗p/a|BackgroundColor#:G!
"操作成功。
 *     <br>'函数参数异常14.6BackgroundColorStyle_SetColor(OH_ArkUI_BackgroundColorl9 N背景颜色样式的背景艗p/a|BackgroundColor#:G!
"操作成功。
 *     <br>'函数参数异常14.<BackgroundColorStyle_GetColor(const OH_ArkUI_BackgroundColor
 K!背景颜色样式的背景圆角q/`|BackgroundColor#topLeft 左上角圆角半径q/	右上角圆角半径q/左下角圆角半径q右下角圆角半径q;!
"操作成功。
 *     <br>'函数参数异常14.7BackgroundColorStyle_SetRadius(OH_ArkUI_BackgroundColorW N!背景颜色样式的背景圆角q/`|BackgroundColor#topLeft 左上角圆角半径q/	右上角圆角半径q/左下角圆角半径q右下角圆角半径q;!
"操作成功。
 *     <br>'函数参数异常14.^BackgroundColorStyle_GetRadius(const OH_ArkUI_BackgroundColorStyle* style, float* topLeft,
   : /{@link OH_ArkUI_UrlStyle}对象。
 *
 * @note /用 OH_ArkUI_UrlStyle_Destroy 来销毁它。-"UrlK 	jUrlStyle* OH_ArkUI_UrlStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_UrlStyle}对象占用的内存A-UrlK-UrlStyle_Destroy(OH_ArkUI_UrlStyle* style);
 K!超链接样式的超链接内容q/`|Url#url 超链接内容L-!
"操作成功。
 *     <br>'函数参数异常14.=UrlStyle_SetUrl(OH_ArkUI_UrlStyle* style, const char* url);
 N!超链接样式的超链接内容q/`|Url#N	超链接'时，表示?.    <br>40B时，表示字符串完整写入缓冲区所需要的最小长度L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>x+缓冲区大小不足14./UrlStyle_GetUrl(const OH_ArkUI_UrlStyle* style," 3{@link OH_ArkUI_UserDataSpan}对象。
 *
 * @note 3用 OH_ArkUI_UserDataSpan_Destroy 来销毁它。-"UserDataSpan.UserDataSpan* OH_ArkUI_UserDataSpan_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_UserDataSpan}对象占用的内存。
 *
 *SpaUserDataSpan1k3<UserDataSpan_Destroy(OH_ArkUI_UserDataSpan* userDataSpan);
 K(用户数据Span样式中的用户数据q/`SpaUserDataSpan3*，生命周期需由开发者自行管理L-!
"操作成功。
 *     <br>'函数参数异常14.PUserDataSpan_SetUserData(OH_ArkUI_UserDataSpan* userDataSpan, void* userData);
 N(用户数据Span样式中的用户数据q/`SpaUserDataSpan;!%!
"操作成功。
 *     <br>'函数参数异常14.WUserDataSpan_GetUserData(const OH_ArkUI_UserDataSpan* userDataSpan, void** userData);
 {@link}对象。
 *
 * @note 用_Destroy 来销毁它。-"
.
!'_Create();
 
/**
 * @brief 释放{@link0}对象占用的内存。
 *
 * @param customSpa
1k3
	_Destroy(* customSpan);
 K$自定义绘制Span获取尺寸大尗kw/[ustomSpa
79onMeasure The callback function for measuring the size of.-3!
"操作成功。
 *     <br>'函数参数异常14.
_RegisterOnMeasur6
* customSpan, AF*(*onMeasure)(float));
 
/**
 * @brief 注册自定义绘制Span绘制lw/[ustomSpa
7,onDraw The callback function for drawing the.-3!
"操作成功。
 *     <br>'函数参数异常14.
_RegisterOnDraw6
/* customSpan, void(*onDraw)(ArkUI_DrawContext*,^u*));
 6{@link OH_ArkUI_ImageAttachment}对象。
 *
 * @note 6用 OH_ArkUI_ImageAttachment_Destroy 来销毁它。-"ImageAttachment.ImageAttachment* OH_ArkUI_ImageAttachment_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_ImageAttachment}对象占用的内存 。
 *
 * @param imageAttachmentVImageAttachment1k3?ttachment_Destroy(OH_ArkUI_ImageAttachment* imageAttachment);
 K!图片样式中的图片数据源q/`imageAttachmentVImageAttachment7Ά	图片数据源L-!
"操作成功。
 *     <br>'函数参数异常14.JImageAttachment_SetPixelMap(OH_ArkUI_ImageAttachment* imageAttachment,
   0& N!图片样式中的图片数据源q/`imageAttachmentVImageAttachment7Ά	图片数据源L-!
"操作成功。
 *     <br>'函数参数异常14.PImageAttachment_GetPixelMap(const OH_ArkUI_ImageAttachment* imageAttachment,
   0* pixelmap);
 K$图片样式中的图片资源地址q/`imageAttachmentVImageAttachmentesource 图片资源地址L-!
"操作成功。
 *     <br>'函数参数异常14._ImageAttachment_SetResource(OH_ArkUI_ImageAttachment* imageAttachment, const char* resource);
 N$图片样式中的图片资源地址q/`imageAttachmentVImageAttachmentN%图片资源地址字符串qx^ '时，表示?串长度。
 *     <br>40B时，表示字符串完整写入缓冲区所需要的最小长度L-!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>x+缓冲区大小不足14.KImageAttachment_GetResource(const OH_ArkUI_ImageAttachment* imageAttachment? K图片样式中的图片宽度q/`imageAttachmentVImageAttachment7.图片/A!
"操作成功。
 *     <br>'函数参数异常14.WImageAttachment_SetSizeWidth(OH_ArkUI_ImageAttachment* imageAttachment, float width);
 N图片样式中的图片宽度q/`imageAttachmentVImageAttachment7.图片/A!
"操作成功。
 *     <br>'函数参数异常14.^ImageAttachment_GetSizeWidth(const OH_ArkUI_ImageAttachment* imageAttachment, float* width);
 K图片样式中的图片高度q/`imageAttachmentVImageAttachment7height 图片pA!
"操作成功。
 *     <br>'函数参数异常14.YImageAttachment_SetSizeHeight(OH_ArkUI_ImageAttachment* imageAttachment, float height);
 N图片样式中的图片高度q/`imageAttachmentVImageAttachment7height 图片pA!
"操作成功。
 *     <br>'函数参数异常14.WImageAttachment_GetSizeHeight(const OH_ArkUI_ImageAttachment* imageAttachment, float* hA$图片样式中的图片对齐方式q/`imageAttachmentVImageAttachmentLerticalAlign 图片%:!
"操作成功。
 *     <br>'函数参数异常14.PImageAttachment_SetVerticalAlign(
    OH_ArkUI_ImageAttachment* imageAttachment, verticalAlign);
 N$图片样式中的图片对齐方式q/`imageAttachmentVImageAttachmentLerticalAlign 图片%:!
"操作成功。
 *     <br>'函数参数异常14.UImageAttachment_GetVerticalAlign(const OH_ArkUI_ImageAttachment* imageAttachment,
   * verticalAlign);
 K$图片样式中的图片缩放类型q/`imageAttachmentVImageAttachment7objectFit 图片缩放1ArkUI_ObjectFit:!
"操作成功。
 *     <br>'函数参数异常14.jImageAttachment_SetObjectFit(
    OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit objectFit);
 N$图片样式中的图片缩放类型q/`imageAttachmentVImageAttachment7objectFit 图片缩放1ArkUI_ObjectFit:!
"操作成功。
 *     <br>'函数参数异常14.ImageAttachment_GetObjectFit@ImageAttachment* imageAttachment, ArkUI_ObjectFit* objectFit);
 K!图片样式中的图片外边距q/`imageAttachmentVImageAttachment7margin 图片外边距q;!
"操作成功。
 *     <br>'函数参数异常14.\ImageAttachment_SetMargin(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin margin);
 N!图片样式中的图片外边距q/`imageAttachmentVImageAttachment7margin 图片外边距q;!
"操作成功。
 *     <br>'函数参数异常14.gImageAttachment_GetMargin(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* margin);
 K!图片样式中的图片内边距q/`imageAttachmentVImageAttachment7padding 图片内边距q;!
"操作成功。
 *     <br>'函数参数异常14.^ImageAttachment_SetPadding(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin padding);
 N!图片样式中的图片内边距q/`imageAttachmentVImageAttachment7padding 图片内边距q;!
"操作成功。
 *     <br>'函数参数异常14.iImageAttachment_GetPadding(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* padding);
 K图片样式中的图片圆角q/`imageAttachmentVImageAttachment7topLeft 左上角圆角半径q/	右上角圆角半径q/左下角圆角半径q右下角圆角半径q;!
"操作成功。
 *     <br>'函数参数异常14._ImageAttachment_SetBorderRadiuses(OH_ArkUI_ImageAttachment* imageAttachment,
    float topLeft,7 N图片样式中的图片圆角q/`imageAttachmentVImageAttachment7topLeft 左上角圆角半径q/	右上角圆角半径q/左下角圆角半径q右下角圆角半径q;!
"操作成功。
 *     <br>'函数参数异常14.QImageAttachment_GetBorderRadiuses(const OH_ArkUI_ImageAttachment* imageAttachmentO K'图片样式中的图片颜色过滤器q/`imageAttachmentVImageAttachment7#CFilter 图片颜色过滤器。
 * @param size 过滤器数组大尗.!
"操作成功。
 *     <br>'函数参数异常14.ImageAttachment_SetColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const float* colorFilter, uint32_t size);
 
/**
N'图片样式中的图片颜色过滤器q/`imageAttachmentVImageAttachment7#Filter 图片颜色过滤器qxJ8FilterSize ))图片颜色过滤器数组的实际大尗.!
"操作成功。
 *     <br>'!函数参数异常。
 *     <br>x+缓冲区大小不足14.ImageAttachment_GetColorFilter(const OH_ArkUI_ImageAttachment* imageAttachment,
    float** colorFilter, uint32_t colorFilterSi K$图片样式中的图片颜色滤镜q/`imageAttachmentVImageAttachment7%drawingColorFilter 图片颜色滤镜L-!
"操作成功。
 *     <br>'函数参数异常14.ImageAttachment_SetDrawingColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const OH_Drawing_ColorFilter* drawingColorFilter);
 N$图片样式中的图片颜色滤镜q/`imageAttachmentVImageAttachment7%drawingColorFilter 图片颜色滤镜L-!
"操作成功。
 *     <br>'函数参数异常14.%ImageAttachment_GetDrawingColorFilterPImageAttachment* imageAttachment, OH_Drawing_ColorFilter* drawingColorFilter);
 K'图片样式中是否同步加载图片q/`imageAttachmentVImageAttachment7TsyncLoad 是否同步加载图片。true表示同步加载；false表示异步加载L-!
"操作成功。
 *     <br>'函数参数异常14.XImageAttachment_SetSyncLoad(OH_ArkUI_ImageAttachment* imageAttachment, bool syncLoad);
 N'图片样式中是搦同步加载图片q/`imageAttachmentVImageAttachment7TsyncLoad 是否同步加载图片。true表示同步加载；false表示异步加载L-!
"操作成功。
 *     <br>'函数参数异常14._ImageAttachment_GetSyncLoad(const OH_ArkUI_ImageAttachment* imageAttachment, bool* syncLoad);
 K<图片样式中是否开启SVG标签解析能力增强功能q/`imageAttachmentVImageAttachment7bsupportSvg 是否开启SVG标签解析能力增强功能。true表示开启；false表示不开启L-!
"操作成功。
 *     <br>'函数参数异常14.\ImageAttachment_SetSupportSvg(OH_ArkUI_ImageAttachment* imageAttachment, bool supportSvg);
 N<图片样式中是否开启SVG标签解析能力增强功能q/`imageAttachmentVImageAttachment7bsupportSvg 是否开启SVG标签解析能力增强功能。true表示开启；false表示未开启L-!
"操作成功。
 *     <br>'函数参数异常14.bImageAttachment_GetSupportSvg(const OH_ArkUI_ImageAttachment* imageAttachment,
    bool* supportSv*变化信息中的待替换内容的范围q/`eventV!ChangeEvent7_start 待替换内容范围的起始索引。
 * @param end 待替换内容范围的结束索弗C.!
"操作成功。
 *     <br>'函数参数异常a8ChangeEvent_GetRangeBefore(a4ChangeEvent* event,
   /1变化信息中的用于替换_/reventV!ChangeEvent700r!
"操作成功。
 *     <br>'函数参数异常a8ChangeEvent_GetReplacemenN4,ChangeEvent* event,1变化信息中的预览内容72oeventV!ChangeEvent700r!
"操作成功。
 *     <br>'函数参数异常a8ChangeEvent_GetPreviewO4+ChangeEvent* event,1`layout manager#LayoutManager ArkUI_TextLayoutManag0p*layout manager.
 *
 * @param layoutManagerGTextLayoutManagerQ#l:LayoutManager_Dispose(ArkUI_TextLayoutManager* layoutManag?4	lineelayoutManagean <b>ArkUI_TextLayoutManager!outLineCount Returns the line couQ+k@#VLayoutManager_GetLineCount(ArkUI_TextLayoutManager* layoutManager, int32_t* outLineCouQR)ects for range.
 *
 * @param layoutManagean <b>ArkUI_TextLayoutManagerstart Indicates the start of range to set.
 * @param end Indicates the end of range to set.
 * @param widthStyle Indicates the kwidth style to set.
 *     For details, see the enum <b>OH_Drawing_RectWidthStyle</b>.
 * @param heightStylstyle to set.
 *     For details, see the enum <b>OH_Drawing_RectHeightStyle</b>.
 * @param outTextBoxes Returns the array of rects for ranQ[0KLayoutManager_GetRectsForRange(ArkUI_TextLayoutManager* layoutManager,
    qOH_Drawing_RectWidthStyle widthStyle, OH_Drawing_RectHeightStyle heightStyle,
    OH_Drawing_TextBox** outTextBoxes);

/**
 * @n4	7glyph position at coordinate.
 *
 * @param layoutManagean <b>ArkUI_TextLayoutManagerdx Indicates the positionX of typography to set.
 * @param dy Indicates the positionY of typography to set.
 * @param outPos Re&turns the glyph position at coordinatemLayoutManager_GetGlyphPositionAtCoordinate(
    ArkUI_TextLayoutManager* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPoa`Oline metricslayoutManagea typography object <b>ArkUI_TextLayoutManager</b>.
 * @param lineNumber Indicates the number of line.
 * @param outMetrics Ind
-line metrics object <b>OH_Drawing_LineMetrics /LayoutManager_GetLineMetrics(ArkUI_TextLayoutManager* layoutManager,
    int32_t lineNumber, OH_Drawing_LineMetrics* outMetricsb4	;character position at coordinate.
 *
 * @param layoutManagean <b>ArkUI_TextLayoutManagerdx Indicates the positionX of typography to set.
 * @param dy Indicates the positionY of typography to set.
 * @param outPos Re*turns the character position at coordinate!R0uLayoutManager_GetCharacterPositionAtCoordinate(
    ArkUI_TextLayoutManager* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPoa`OTglyph range produced by the specified range of characters.
 *
 * @param layoutManagean <b>ArkUI_TextLayoutManagerharRange The character range.
 * @param outGlyphRange The range of glyphs generated by charRange.
 * @param outActualCharRange If not null, specifies the actual character range that fully defines the returned
 *      glyph range, which may match or slightly exceed the requested ranQ[0Zҗ0uLayoutManager_GetGlyphRangeForCharacterRange(
    ArkUI_TextLayoutManager* layoutManager, OH_Drawing_Range* charRange,
    OH_DBrawing_Range** outGlyphRange, OH_Drawing_Range** outActualCharRang!Y[character range that maps to the glyphs in the given glyph range.
 *
 * @param layoutManagean <b>ArkUI_TextLayoutManagerglyphRange The glyph range.
 * @param outCharRange The range of characters generated by glyphRange.
 * @param outActualGlyphRange If not null, specifies the full glyph range generated by the returned character range,
 *      which may match or slightly exceed the requested glyph ranQ[0Zҗ0uLayoutManager_GetCharacterRangeForGlyphRange(
    ArkUI_TextLayoutManager* layoutManager, OH_Drawing_Range* glyphRange,
    OH_CDrawing_Range** outCharRange, OH_Drawing_Range** outActualGlyphRanglinear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.`tyleParagraphStylelinearGradientBjkȗnE
9arGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, P&linearGradiPlinear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.`tyleParagraphStylelinearGradientBjkȗnE
inearGradientParagraphStyle* paragraphStyle,!linearGradiP@radial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.`tyleParagraphStyleradialGradient&jkȗnE
UParagraphStyle_SetRadialGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, const  radialGradiPradial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.`tyleParagraphStyleradialGradient&jkȗnE
 ParagraphStyle_GetRadialGradient ParagraphStyle* paragraphStyle,  radialGradient);
6STYLED_STRING_H
/** @} */
tزx   	'-2025!UI capabilities of ArkUI on the nQ)s, attribute setting, and event listeningA$Pnative_node.h
 *
 * @brief Provides type definitions for <b>NativeNode</b> APIs.NODE|NODE~c#include "ui_input_event.h"

#ifdef __cplusplus
#include <cstdint>
#else
#include <stdint.h>
#endif> components max function sizeA#define MAX_NODE_SCOPE_NUM 1000

/**
 * @brief Enumerates ArkUI component types that can be created on the native side.
 *
 * @Jtypedef enum {
    /** Custom node. */
    ARKUI_NODE_CUSTOM = 0,
    /** Text. */
    ARKUI_NODE_TEXT = 1,
    /** Text span. */
    ARKUI_NODE_SPAN = 2,
    /** Image span. */
    ARKUI_NODE_IMAGE_SPAN = 3,
    /** Image. */
    ARKUI_NODE_IMAGE = 4,
    /** Toggle. */
    ARKUI_NODE_TOGGLE = 5,
    /** Loading icon. */
    ARKUI_NODE_LOADING_PROGRESS = 6,
    /** Single-line text input. */
    ARKUI_NODE_TEXT_INPUT = 7,
    /** Multi-line text input. */
    ARKUI_NODE_TEXT_AREA = 8,
    /** Button. */
    ARKUI_NODE_BUTTON = 9,
    /** Progress indicator. */
    ARKUI_NODE_PROGRESS = 10,
    /** Check box. */
    ARKUI_NODE_CHECKBOX = 11,
    /** XComponent. */
    ARKUI_NODE_XCOMPONENT = 12,
    /** Date picker. */
    ARKUI_NODE_DATE_PICKER = 13,
    /** Time picker. */
    ARKUI_NODE_TIME_PICKER = 14,
    /** Text picker. */
    ARKUI_NODE_TEXT_PICKER = 15,
    /** Calendar picker. */
    ARKUI_NODE_CALENDAR_PICKER = 16,
    /** Slider. */
    ARKUI_NODE_SLIDER = 17,
    /** Radio */
    ARKUI_NODE_RADIO = 18,
    /** Image animator. */
    ARKUI_NODE_IMAGE_ANIMATOR = 19,
    /** XComponent of type TEXTURE.
     *  @since 18
     */
    ARKUI_NODE_XCOMPONENT_TEXTURE,
    /** Check box group.
     *  @since 15
     */
    ARKUI_NODE_CHECKBOX_GRO#UP = 21,
    /**
     * TextEditor.&ARKUI_NODE_TEXT_EDITOR = 22,
    /** Stack container. */
    ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
    /** Swiper. */
    ARKUI_NODE_SWIPER,
    /** Scrolling container. */
    ARKUI_NODE_SCROLL,
    /** List. */
    ARKUI_NODE_LIST,
    /** List item. */
    ARKUI_NODE_LIST_ITEM,
    /** List item group. */
    ARKUI_NODE_LIST_ITEM_GROUP,
    /** Column container. */
    ARKUI_NODE_COLUMN,
    /** Row container. */
    ARKUI_NODE_ROW,
    /** Flex container. */
    ARKUI_NODE_FLEX,
    /** Refresh component. */
    ARKUI_NODE_REFRESH,
    /** Water flow container. */
    ARKUI_NODE_WATER_FLOW,
    /** Water flow item. */
    ARKUI_NODE_FLOW_ITEM,
    /** Relative layout component. */
    ARKUI_NODE_RELATIVE_CONTAINER,
    /** Grid. */
    ARKUI_NODE_GRID,
    /** Grid item. */
    ARKUI_NODE_GRID_ITEM,
    /** Custom span. */
    ARKUI_NODE_CUSTOM_SPAN,
    /**
     * EmbeddedComponent.
     * @since 20
     */
    ARKUI_NODE_EMBEDDED_COMPONENT,
    /**
     * Undefined.
     * @since 20
     */
    ARKUI_NODE_UNDEFINED,
    /**
     * Picker container.
     * @since 23
     */
    ARKUI_NODE_PICKER = 1018,
} ArkUI_NodeType;(general input parameter structure of the {@link setAttribute} function. The property
 * setting interfaces can utilize the memb@er variables within it to store data of specific parameter typesA{
    /** A number array, used to store parameters of the number array type. */
    const ArkUI_NumberValue* value;
    /** The size of the number array, used together with the variable value, indicating the length of the value array. */
    int32_t size;
    /** String type, used to store parameters of the string type. */
    const char* string;
    /** Object type, used to stoMre parameters of the object type. */
    void* object;
} ArkUI_AttributeItem;(9ArkUI style attributes that can be set on the native sideA=!(width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in vp.\n
     *
     */
    NODE_WIDTH = 0,
    /**
     * @bri(height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in vp.\n
     *
     */
    NODE_HEIGHT,
    /**
     * @bri(background color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *
     */
    NOD E_BACKGROUND_COLOR,
    /**
    (background image attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address;\n
     * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address;\n
     * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
     * .object: The parameter type is {@link ARrkUI_DrawableDescriptor}.\n
     *
     */
    NODE_BACKGROUND_IMAGE,
    /**
    (padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in vp.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[L3].f32: left padding, in vp.\n
     *
     */
    NODE_PADDING,
    /**
    (component ID attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID.\n
     * \n
     * Format of the return vlalue {@link ArkUI_AttributeItem}:\n
     * .string: component ID.\n
     *
     */
    NODE_ID,
    /**
    (interactivity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means the op8posite. \n
     *
     */
    NODE_ENABLED,
    /**
    (margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in vp.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: lef?t margin, in vp.\n
     *
     */
    NODE_MARGIN,
    /**
    (translate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis, in vp.\n
     * .value[1].f32: distance to translate along the y-axis, in vp.\n
     * .value[2].f32: distance to translate along the z-ax=is, in vp. \n
     *
     */
    NODE_TRANSLATE,
    /**
    (scale attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
     * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis.\n
     * .value[1].f32: scale fFactor along the y-axis. \n
     *
     */
    NODE_SCALE,
    /**
    (rotate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
     * The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the rotation axis vector.\n
     * .value[1].f32: Y coordinate of the rotation axis vector.\n
     * .value[2].f32: Z coordinate of the rotation axis vector.\n
     * .value[3].f32: rotation angle.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
     *
     */
    NODE_ROTATE,
    /**
     * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: brightness value. \n
     *
     */
    NODE_BRIGHTNESS,
    /**
     * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: saturation value. \n
     *
     */
    NODE_SATURATION,
    /**
     * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
     * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
     * the image is not blurred. The unit is vp. \n
     *
     */
    NODE_BLUR,
    /**
     * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear grad:ient. This attribute takes effect only when
     * {@link CDirection} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When it is setW, the <b>angle</b> attribute does not take effect.
     * The parameter type is {@link CDirection}: \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: start angle of the linear gradient. \n
     * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_LINEAR_GRADIENT,
    /**
     * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
    + *
     */
    NODE_ALIGNMENT,
    /**
    (opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity value. The value ranges from9 0 to 1. \n
     *
     */
    NODE_OPACITY,
    /**
    (border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders. \n
     * 2: .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     *
     */
    NODE_BORDER_WIDTH,
    /**
    (border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners. \n
     * 2: .value[0].f32: radius of the upper left corner. \n
     * .value[1].f32: radius of the upper right corner. \n
     * .value[2].f32: radius of the lower left corner. \n
     * .value[3].f32: radius of the lower right corner. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the upper left corner. \n
     * .value[1].f32: radius of the upper right corner. \n
     * .value[2].f32: radius of the lower left corner. \n
     * .value[3].f32: radiusR of the lower right corner. \n
     *
     */
    NODE_BORDER_RADIUS,
    /**
    (border color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, foSr example, <b>0xFFFF11FF</b>. \n
     *
     */
    NODE_BORDER_COLOR,
    /**
    (border line style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line style of the top border. \n
     * .value[1].i32: line style of the right border. \n
     * .value[2].i32: line style of the bottom border. \ln
     * .value[3].i32: line style of the left border. \n
     *
     */
    NODE_BORDER_STYLE,
    /**
    (z-index attribute for the stack sequence.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: z-index value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: z-index value. \n
     *
  $   */
    NODE_Z_INDEX,
    /**
    (visibility attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     *
     */
    NODE_VISIBILITY,
    /**
    (clipping and masking attribute, which can be set, reset, and obtained as required through
     * APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
*     *
     */
    NODE_CLIP,
    /**
    (clipping region on the component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
     * which supports four types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[6]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[7]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[8]?.f32: radius of the bottom right corner of the rectangular shape.\n
     * ?.object: clipOption of the rectangle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is rectangle, and .size must be equal to 1.
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * ?.object: clipOption of the circle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is circle, and .size must be equal to 1.
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * ?.object: clipOption of the ellipse. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is ellipse, and .size must be equal to 1.
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * ?.object: clipOption of the path. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is path, and .size must be equal to 1.
     * Format of the return value {@link ArkUI_AttributeItem}, which supports four types of shapes: \n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5].f32: radius of the top left corner of the rectangular shape; \n
     * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
     * .value[7].f32: radius of the top right corner of the rectangular shape; \n
     * .value[8].f32: radius of the bottom right corner of the rectangular shape; \n
     * .value[9]?.f32: horizontal coordinate offset of the rectangle. \n
     * .value[10]?.f32: vertical coordinate offset of the rectangle. \n
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * .value[3]?.f32: horizontal coordinate offset of the circle.\n
     * .value[4]?.f32: vertical coordinate offset of the circle.\n
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * .value[3]?.f32: horizontal coordinate offset of the ellipse.\n
     * .value[4]?.f32: vertical coordinate offset of the ellipse.\n
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
    , *
     */
    NODE_CLIP_SHAPE,
    /**
    (transform attribute, which can be used to translate, rotate, and scale images.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     *
     */
    NODE_TRANSFORM,
    /**
     * @brief Defines (hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     *
     */
    NODE_HIT_TEST_BEHAVIOR,
    /**
     * @brief D(offset attribute, which specifies the offset of the component's upper left corner relative
     * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y> coordinate. \n
     *
     */
    NODE_POSITION,
    /**
    (shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shadow effect. The] parameter type is {@link ArkUI_ShadowStyle}. \n
     *
     */
    NODE_SHADOW,
    /**
    (custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: blur radius of the shadow, in vp.\n
     * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
     * strategy, and <b>0</b> (default value) means the opposite.\n
     * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
     * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
     * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: whether to enable the coloring strategy. \n
     * .value[2].f32: offset of the shadow along the x-axis, in px.\n
     * .value[3].f32: offset of the shadow along the y-axis, in px.\n
     * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     */
    NODE_CUSTOM_SHADOW,
    /**
    (background image width and height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
     * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the image, in vp. \n
     * .value[1].f32: height of the image, in vp. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE,
    /**
    (background image size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     *
     */
    NODE_BAC+KGROUND_IMAGE_SIZE_WITH_STYLE,
    /**
    (background blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
     * .value[4]?.f32: start boundary of grayscale blur. \n
     * .value[5]?.f32: end boundary of grayscale blur. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
     * .value[4].f32: start boundary of grayscale blur. \n
     * .value[5].f32: en\d boundary of grayscale blur. \n
     *
     */
    NODE_BACKGROUND_BLUR_STYLE,
    /**
    (transform center attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the center point, in vp.\n
     * .value[1]?.f32: Y coordinate of the center point, in vp.\n
     * .value[2]?.f32: Z coordinate of the center point, in vp.\n
     * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
     * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
     * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the center point, in vp.\n
     * .value[1].f32: Y coordinate of the center point, in vp.\n
     * .value[2].f32: Z coordinate of the center point, in vp.\n
     * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
     * returns the calculated value in vp.
     *
     */
    NODE_TRANSFORM_CENTER,
    /**
    (transition opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: number of times that the animation is played. \n
     * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     f* .value[6].f32: animation playback speed. \n
     *
     */
    NODE_OPACITY_TRANSITION,
    /**
    (transition rotation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7]?.i32: animation delay duration, in milliseconds. \n
     * .value[8]?.i32: number of times that the animation is played. \n
     * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7].i32: animation delay duration, in milliseconds. \n
     * .value[8].i32: number of times that the animation is played. \n
     * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10].f32: animation playback speed. \n
     *
     */
    NODE_ROTATE_TRANSITION,
    /**
    (transition scaling attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5]?.i32: animation delay duration, in milliseconds. \n
     * .value[6]?.i32: number of times that the animation is played. \n
     * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5].i32: animation delay duration, in milliseconds. \n
     * .value[6].i32: number of times that the animation is played. \n
     * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8].f32: animation playback speed.: \n
     *
     */
    NODE_SCALE_TRANSITION,
    /**
    (transition translation attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5]?.i32: animation delay duration, in milliseconds. \n
     * value[6]?.i32: number of times that the animation is played. \n
     * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5].i32: animation delay duration, in milliseconds. \n
     * value[6].i32: number of times that the animation is played. \n
     * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8].f32: animation playback speed. \n
     *
     */
    NODE_TRANSLATE_TRANSITION,
    /**
    (slide-in and slide-out of the component from the screen edge during transition.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: number of times that the animation is played. \n
     * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. 9\n
     *
     */
    NODE_MOVE_TRANSITION,

    /**
    (focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUSABLE,

    /**
    (default focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     *
     */
    N ODE_DEFAULT_FOCUS,

    /**
    (touch target attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of cthe parameters is the same as the preceding.
     *
     */
    NODE_RESPONSE_REGION,

    /**
    (overlay attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * You can set the overlay content through .string or .object as follow, and .string has higher priority.
     * .string: mask text.\n
     * .value[0]?.i32: position of the overlay relative to the component. Optional.
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
     * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
     * \n
     * .value[3]?.i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_LTR.</b> \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * \n
     * .object: the node tree used as the overlay.
     * The parameter type is {@link ArkUI_NodeHandle}.
     * The default value is <b>nullptr.</b> \n
     * this parameter is conflict with .string, and it has lower priority than .string.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: mask text.\n
     * .value[0].i32: position of the overlay relative to the component.
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
     * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
     * .value[3].i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUjI_DIRECTION_LTR.</b> \n
     * .object: the overlay node handle. \n
     */
    NODE_OVERLAY,
    /**
    (sweep gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
     * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
     * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
4     *
     */
    NODE_SWEEP_GRADIENT,
    /**
    (radial gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite. \n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> means the opposite.\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_RADIAL_GRADIENT,
    /**
     * @brief Adds a mask of the specified shape to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
     * shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[11]?.f32: radius of the bottom right corner of the rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indicator.\n
     * .value[3].u32: color of the progress indicator, in 0xARGB format.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8].f32: radius of the top left corner of the rectangular shape.\n
     * .value[9].f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10].f32: radius of the top right corner of the rectangular shape.\n
     * .value[11].f32: radius of the bottom right corner of the rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indicator.\n
     * .value[3].u32: color of the progress indicator.\n
     *
     */
    NODE_MASK,
    /**
     * @brief Blends the component's background with the content of the component's child node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     *
     */
    NODE_BLEND_MODE,
    /**
     * @brief Sets the direction of the main axis.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
/     *
     */
    NODE_DIRECTION,
    /**
    (size constraints.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in v:p.\n
     *
     */
    NODE_CONSTRAINT_SIZE,
    /**
    (grayscale effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_GRAY_SCALE,
    /**
     * @brief Inverts the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% image inversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: image inversion ratio. TheI value ranges from 0 to 1.\n
     *
     */
    NODE_INVERT,
    /**
    (sepia conversion ratio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
     *
  "   */
    NODE_SEPIA,
    /**
    (contrast attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
     * A larger value indicates a higher contrast. Value range: [0, 10).\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: contrast. Value range: [0, 10).\n
     *
     */
    NODE_CONTRAST,
    /**
    (foreground color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format.\n
     *
     */
  &  NODE_FOREGROUND_COLOR,

    /**
    (offset of the component's child relative to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     *
     */
    NODE_OFFSET,
    /**
     * @brief Sets the anchor for locating the component's child.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     *
   (  */
    NODE_MARK_ANCHOR,

    /**
    (position of the background image in the component, that is, the coordinates relative to
     * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].?i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].?i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     */
    NODE_BACKGROUND_IMAGE_POSITION,
    /**
     * @brief Sets the alignment rules in the relative container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     *
     */
    NODE_ALIGN_RULES,
    /**
     * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     *
     */
    NODE_ALIGN_SELF,
    /**
     * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
     * This attribute can    be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_GROW,
    /**
     * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     *
     */
    NODE_FLEX_SHRINK,
    /**
     * @brief Sets the base size of the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_BASIS,
    /**
     * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> or <b>0</b>.
     *
     */
    NODE_ACCESSIBILITY_GROUP,

    /**
     * @brief Sets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility text.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility text.
     *
     */
    NODE_ACCESSIBILITY_TEXT,

    /**
     * @brief Sets the accessibility service model. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     *
     */
    NODE_ACCESSIBILITY_MODE,

    /**
     * @brief Sets the accessibility description.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility description.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility description.
     *
     */
    NODE_ACCESSIBILITY_DESCRIPTION,

    /**
    (focused state. This attribute can be set and obtained as required through APIs.
     * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
     * of the page to the root container.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 19 or 0.
     *
     */
    NODE_FOCUS_STATUS,
    /**
    (aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: aspect ratio of the component, in width/height format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: aspect ratio of the cWomponent, in width/height format. \n
     *
     */
    NODE_ASPECT_RATIO,
    /**
    (weight of the component within its row, column, or flex container for proportional
     * distribution of available space within the container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: weight of the component along the main axis. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: weight of the component along the main axis. \n
     *
     */
    NODE_LAYOUT_WEIGHT,
    /**
     * @brief Sets the display priority for the component in the row, column, or flex  (single-line) container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: display priority of the component in the container. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: display priority of the component in the container. \n
     *
     */
    NODE_DISPLAY_PRIORITY,
    /**
     * @brief Sets the thickness of an element's outline.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .vdalue[3].f32: thickness of the bottom outline. \n
     *
     */
    NODE_OUTLINE_WIDTH,
    /**
    (width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in percentage.\n
     *
     */
    NODE_WIDTH_PERCENT,
    /**
    (height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in percentage.\n
     *
     */
    NODE_HEIGHT_PERCENT,
    /**
    (padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in percentage.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     *
     */
    NODE_PADDING_PERCENT,
    /**
    (margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in percentage.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     *
     */
    NODE_MARGIN_PERCENT,

    /**
      * @brief The implicit shared element transition within the component supports attribute setting,
      * attribute reset, and attribute acquisition interfaces.
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is false, and the original position will remain unchanged if not involved. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      *\n
      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is not false, if not involved, the original position will remain unchanged. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      */
    NODE_GEOMETRY_TRANSITION,

    /**
      * @brief specifies the parameters of the chain formed by this component as the chain head,
      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
      *
      * Only takes effect when the parent container is RelativeContainer
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      *\n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      */
    NODE_RELATIVE_LAYOUT_CHAIN_MODE,

    /**
     * @brief Set the component content filling method in the process of width and height animation,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     *
     */
    NODE_RENDER_FIT,

    /**
     * @brief External stroke color properties, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
     * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_OUTLINE_COLOR,

    /**
     * @brief Set the height and width dimensions, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     *
     */
    NODE_SIZE,

    /**
     * @brief Set whether the current component and child component are
     * rendered off the screen first and then fused with the parent control,
     * supporting property setting, property reset and property acquisition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_RENDER_GROUP,

    /**
     * @brief Add color overlay effect to components, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_COLOR_BLEND,

    /**
     * @brief Provide content ambiguity capability for the current component,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
     * .value[4]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
     * .value[5]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
     * .value[4].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
     * .value[5].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
     *
     */
    NODE_FOREGROUND_BLUR_STYLE,

    /**
     * @brief Defines(component size and position for layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: X coordinate of the component, in px. \n
     * .value[1].i32: Y coordinate of the component, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in px. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: X coordinate of the component, in px. \n
     * .value[1].i32: Y coordinate of the component, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in px. \n
     *
     */
    NODE_LAYOUT_RECT,

    /**
     * @brief Whether the current component supports click-to-focus capability,
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUS_ON_TOUCH,

    /**
    (border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders, in percentage. \n
     * 2: .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     *
     */
    NODE_BO%RDER_WIDTH_PERCENT = 85,
    /**
    (border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners, in percentage. \n
     * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
     * .value[1].f32: radius of the upper right corner, in percentage. \n
     * .value[2].f32: radius of the lower left corner, in percentage. \n
     * .value[3].f32: radius of the lower right corner, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the upper left corner, in percentage. \n
     * .value[1].f32: radius of the upper right corner, in percentage. \n
     * .value[2].f32: radius of the lower left corner, in percentage. \n
     * .value[3].f32: radius of the lower right corner, in percentage. \n
     *
     */
    NODE_BORDER_RADIUS_PERCENT = 86,

    /**
     * @brief Accessible ID, which can be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Accessible ID。\n
     *
     */
    NODE_ACCESSIBILITY_ID = 87,

    /**
     * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ACTIONS = 8%@brief Define accessible role, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ROLE = 89,

    /**
     * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityState}.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityState}.\n
     *
     */
    NODE_ACCESSIBILITY_STATE = 90,

    /**
     * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .objectthe parameter type is {@link ArkUI_AccessibilityValue}.\n
     *
     */
    NODE_ACCESSIBILITY_VALUE = 91,
    /**
     * @brief defines control components to extend their security zones,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
     * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
     * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
     * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: extends the security zone. \n. \n
     *.value[1].u32: indicates the direction to extend the security zone. \n. \n
     *
     */
    NODE_EXPAND_SAFE_AREA = 92,

    /**
    (visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array. The value range is 0 to 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
   U  * .value[...].f32: threshold array. \n
     *
     * @since 12
     */
    /**
    (visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component, this enum extends the configuration capbility.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array. The value range is 0 to 1.
     * .?object: pass in one {@link ArkUI_VisibleAreaEventOptions} objcet for configging the ratio or other options.
     * Please note, when use this param, the ratios set through .value[...].f32 will be ignored, and the update
     * interval from it is always ignored too.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
     * .object: the {@link ArkUI_VisibleAreaEventOptions} objcet.
     *
     * @since 22
     */
    NODE_VISIBLE_AREA_CHANGE_RATIO = 93,

    /**
     * @brief Sets the transition effect when the component is inserted or deleted.
     * This attribute can be set, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffec=t}. \n
     *
     */
    NODE_TRANSITION = 94,

    /**
    (component ID.
     * This attribute can be obtained through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
     * .value[0].i32: component ID. \n
     *
     * @deprecated since 20
     * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
     */
    NODE_UNIQUE_ID = 95,

    /**
     * @brief Set the current component system focus box style.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: The distance between the focus box and the edge of the component. \n
     * Positive numbers represent the outer side, negative numbers represent the inner side. \n
     * Percentage is not supported. \n
     * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
     * .value[2].u32: Focus box color. \n
     * \n
     *
     */
    NODE_FOCUS_BOX = 96,

    /**
    (moving distance limit for the component-bound tap gesture.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: allowed moving distance of a finger, in vp. \n
     *
     */
    NODE_CLICK_DISTANCE = 97,

    /**
     * @brief Sets whether the focus can be placed on this component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     *
     *< @since 14
     */
    NODE_TAB_STOP = 98,
    
    /**
    (backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：backdrop blur radius, in px. The value range is [0, +∞).\n
     * .value[1]?.f32：grayscale blur settings that control the brightness of the black color.\n
     * The value range is [0, 127].\n
     * .value[2]?.f32：grayscale blur settings that control the darkness of the white color.\n
     * The value range is [0, 127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32backdrop blur radius, in px. The value range is [0, +∞).\n
     * .value[1].f32：grayscale blur settings that control the brightness of the black color.\n
     * The value range is [0, 127].\n
     * .value[2].f32：grayscale blur settings that control the darkness of the white color.\n
     * The value range is [0, 127].\n
     *
     * @since 15
     */
    NODE_BACKDROP_BLUR = 99,

    /**
    (background image resizable attribute, which can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     *
     * @since 19
     */
    NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,
&@brief Sets the next focus node.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
     * .object: next focus node. The parameter type is {@link ArkUI_NodeHandle}.\n
     * \n
     *
     * @since 18
     */
    NODE_NEXT_FOCUS = 101,

    /**
     * @brief Sets the parameters for visible area change events.
     *
     * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
     * the expected interval due to system load and other factors.
     * The interval between two visible area change callbacks will not be less than the expected update interval. If the
     * provided expected interval is too short, the actual callback interval will be determined by the system load.
     * By default, the interval threshold of the visible area change callback includes 0. This means that,
     * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     *
     * @since 17
  I   */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,

    /**
    (translate attribute, which supports for percentile translation input, and can be set, reset,
     * and obtained as required through APIs.\n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
     * The unit is vp only if value[3] exists and value[3] is 0. The default value of value[0] is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
     * The unit is vp only if value[4] exists and value[4] is 0. The default value of value[1] is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>.\n
     * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shift in the x direction.
     *  The default value is <b>1</b>.\n
     * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
     *  The default value is <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
     * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
     * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
     * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
     *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
     *  distance is percentage;\n
     * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
     *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
     *  distance is percentage;\n
     *
     * @since 20
     */
    NODE_TRANSLATE_WITH_PERCENT = 103,

    /**
     * @brief Sets component rotation with multi-axis angle control. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>. \n
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>.
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     *
     * @since 20
     */
*    NODE_ROTATE_ANGLE = 104,

    /**
    (width attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_WIDTH_LAYOUTPOLICY = 105,

    /**
    (height attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_HEIGHT_LAYOUTPOLICY = 106,

    /**
    (position attribute in param type Edges, which specifies the position of the component
     * by the distance relative to the parent container's four edges. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     *
     * @since 21
     */
    NODE_POSITION_EDGES = 107,

    /**
     * @brief Set whether the component enables the ability to invert colors.
     * This attribute can be set , and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.\n
     *
     * @sinc+e 21
     */
    NODE_ALLOW_FORCE_DARK = 10%(pixelRound attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     *
     * @since 21
     */
    NODE_PIXEL_ROUND = 109,

    /**
     * @brief Set whether to enable the default click sound effect for this component.
     * It only takes effect on supported devices, such as TV. Whether it can produce sound depends on the device's
     * sound-related settings. For example, sound effects will not be played in silent mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter value is either 1 or 0. 1 indicates the default click sound effect is enabled,
     * while 0 indicates it is disabled. The default value is 1.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Indicates whether the default click sound effect is enabled for this node.\n
     * The parameter value is either 1 or 0. 1 indicates the default click sound effect is enabl5ed,
     * while 0 indicates it is disabled.\n
     *&3NODE_ENABLE_CLICK_SOUND_EFFECT = 110,

    /**
    (motion path attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIL_AttributeItem} parameter for setting the attribute: \n
     * .object indic`MotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     * \n
     * Format of the return value5 {@link ArkUI_AttributeItem}: \n
     * .object indic`MotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     *
     * @since 23
     */
    NODE_MOTION_PATH = 111,

    /**
    (hover effect applied when the component is hovered over. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. The default value is <b>ARKUI_HOVER_EFFECT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. \n
     *
     * @since 23
     */
    NODE_HOVER_EFFECT = 112,

    /**
     * @brief Configures the container as a focus group with the specified identifier. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     *
     * @since 23
     */
    NODE_FOCUS_SCOPE_ID = 113,

    /**
     * @brief Sets the component focus priority within a specific focus scope. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}.
     * The default value is <b>ARKUI_FOCUS_PRIORITY_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}. \n
     *
     * @since 23
     */
    NODE_FOCUS_SCOPE_PRIORITY = 114,

    /**
     * @brief Sets the distance threshold for click events. This attribute can be set, reset, and obtained as required through APIs.
     *
     * @note If finger movement exceeds the preset distance limit, click event recognition will fail.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: distance threshold for click events.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: distance threshold for click events. \n
     *
     * @since 23
     */
    NODE_ON_CLICK_EVENT_DISTANCE_THRESHOLD = 115,

    /**
    (component event response region. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left corner of the component, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order.
     *
     * @sin@ce 23
     */
    NODE_RESPONSE_REGION_LIST = 116,

    /**
    (event monopolization attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Boolean value (1 or 0).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Boolean value (1 or 0).
     *
     * @since 23
     */
    NODE_MONOPOLIZE_EVENTS = 117,

    /**
     * @brief Sets the weight of the component in a chain, which is used to re-lay out components that form the chain.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     *
     * @+since 23
     */
    NODE_CHAIN_WEIGHT = 11%@brief Expands the layout safe area of a component.,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0].u32: The region type to expand the component's layout safe area into. The default value is LayoutSafeAreaType.SYSTEM. {@link ArkUI_LayoutSafeAreaType},
     * For example, ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM; \n
     * .value[1].u32: The set of edges for which to ignore layout safe area. The default value is LayoutSafeAreaEdge.ALL. {@link ArkUI_LayoutSafeAreaEdge}; \n
     * For example: ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_START; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: The region type to expand the component's layout safe area into. \n
     *.value[1].u32: The set of edges for which to ignore layout safe area. \n
     *
     * @since 23
     */
    NODE_IGNORE_LAYOUT_SAFE_AREA = 119,

    /**
    (ength of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length off dash on the left border. \n
     *
     * @since 23
     */
    NODE_DASH_WIDTH = 120,

    /**
    (gap of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The gap of dash on the top border. \n
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The gap of dash on the top border. \n  
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left bordeLr. \n
     *
     * @since 23
     */
    NODE_DASH_GAP = 121,

    /**
    (align rules of child component in Stack container, which can be set, reset, and obtained as required through APIs.\n
     * The default value is <b>ARKUI_LOCALIZED_ALIGNMENT_CENTER</b>. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}. \n
     *
     * @since 23
     */
    NODE_LAYOUT_GRAVITY = 122,

    /**
     (render types for drawing rounded corners when the radius of the border rounded corners is set, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}.
     * The default value is <b>ARKUI_RENDERSTRATEGY_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}. \n
     *
     * @sDince 23
     */
    NODE_BORDER_RADIUS_TYPE = 123,
    
    /**
    (inspector label attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: inspector label.\n
     * \n
     * Format of the reVturn value {@link ArkUI_AttributeItem}:\n
     * .string: inspector label.\n
     * \nW%")NODE_INSPECTOR_LABEL = 126,

    /**
    (next accessibility focus id of current component for accessibility processing to find the next focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility next focus ID.
     * \n
     * Format of the return value {@link ArkUII_AttributeItem}:\n
     * .string: accessibility next focus ID.
     * \nW%"NODE_ACCESSIBILITY_NEXT_FOCUS_ID = 124,

    /**
     * @brief Sets the accessibility default focus flag for accessibility services to find the default focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
    / * The value is <b>1</b> or <b>0</b>.
     * \nW%"5NODE_ACCESSIBILITY_DEFAULT_FOCUS = 125,

    /**
    (system material attribute, which can be set, reset, and obtained as required through APIs.
     * Only devices that support sysatemMaterial can use this attribute. Otherwise, when setting this attribute,
     * the error code1ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} will be returned.
     * Whether a device supports materials can be determined by calling
    NativeModule_GetSystemMaterialSupported}.
     * The material effect behaves differently on devices with different level of comhputing powers.
     * The level is defined by {@link ArkUI_MaterialLevel}, which can be obtained by
    NativeModule_GetGlobalMaterialLevel}.
     * On devices with the computing power level of ARKUI_MATERIAL_LEVEL_SMOOTH, it affects attributes such as the
     * backgroundColor, borderWidth, borderColor, shadow.
     * On devices with the computing power levels of ARKUI_MATERIAL_LEVEL_EXQUISITE or ARKUI_MATERIAL_LEVEL_GENTLE,
     * it affects shadow attribute and adds a filter effect at the system material layer, which can produce an effect
     * similar to glass.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * The ArkUI_ImmersiveMaterialHandle object of the return value is a pointer to static member, so do not release
     * the return object by calling {@link OH_ArkUI_N0ativeModule_ImmersiveMaterial_Destroy}.\n
     *W%")NODE_SYSTEM_MATERIAL = 127,

    /**
    (text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: text content.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: text content.\n
     *
     */
    NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    (font color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].u32: font coloMr value, in 0xARGB format.\n
     *
     */
    NODE_FONT_COLOR,
    /**
    (font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: font size, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     *
     */
    NODE_FONT_SIZE,
    /**
    (font style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_WAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font style ͆. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem&}:\n
     * .value[0].i32: font style ͆4.\n
     *
     */
    NODE_FONT_STYLE,
    /**
    (font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .gvalue[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     */
    NODE_FONT_WEIGHT,
    /**
    (text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height, in fp.\n
     *
     */
    NODE_TEXT_LINE_HEIGHT,
    /**
    (text decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@lx}.
     * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGjB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration style !. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration type {@lix}.\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32: text decoration style {@link ArkUI . \n
     *
     */
    /**
    (text decoration style and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type {@lx}.
     * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGjB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32: text decoration style !. \n
     * .value[3]?.f32: text decoration thickness scale. \n
     * \n
     * Format of the return value {@link ArkUI_Attrib7uteItem}:\n
     * .value[0].i32: text decoration type x}.\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32: text decoration style {@link ArkUI. \n
     * .value[3].f32: text decoration thickness scale. \n
     *
     *  since 22
     */
    NODE_TEXT_DECORATION,
    /**
    (text case attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text case.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text case.\n
     *
     */
    NODE_TEXT_CASE,
    /**
     * @brief(etter spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing, in fp.\n
     *
     */
    NODE_TEXT_LETTER_SPACING,
    /**
     * @brief Sets the maximum number of lines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of lines in the text.\n
     *
     */
    NODE_TEXT_MAX_LINES,
    /**
     * @brief Horizontal alignment mode of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizon8tal alignment mode of the text. The value is an enum of &. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode& of the text. The value is an enum of &5. \n
     *
     */
    NODE_TEXT_ALIGN,
    /**
    (text overflow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode wehen the text is too long. {@ArkUI_TextOverflow}\n
     *
     */
    NODE_TEXT_OVERFLOW,
    /**
    (font family attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: fonts, separated by commas (,).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: fonts, separated by commas (,).
     *
     */
    NODE_FONT_FAMILY,
    /**
    (copy option attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
     *
     */
    NODE_TEXT_COPY_OPTION,
    /**
     * @brief Defines (text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   7  *
     */
    NODE_TEXT_BASELINE_OFFSET,
    /**
    (text shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
     * .value[2].u32: shadow color, in 0xARGB format.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     *
     */
    NODE_TEXT_TEXT_SHADOW,
    /**
    (minimum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum font size, in fp.
     *
     */
    NOD#E_TEXT_MIN_FONT_SIZE,

    /**
    (maximum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum font size, in fp.
     *
     */
    NOD#E_TEXT_MAX_FONT_SIZE,

    /**
    (text style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * .value[2]?.i32: font style. Optional. The parameter type is ͆.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WMEIGHT_NORMAL</b>. \n
     * .value[2].i32: font style. The parameter type is ͆.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     *
     */
    NODE_TEXT_FONT,

    /**
     * @brief Defines how the adaptive height is determined for the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
     *
     */
    NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
    /**
    (indentation of the first line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: indentation of the first line. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: indentation of the fir=st line. \n
     *
     */
    NODE_TEXT_INDENT,
    /**
    (ine break rule. This attribute can be set, reset, and obtained as required throug   h APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@linkK ArkUI_WordBreak}. \n
     *
     */
    NODE_TEXT_WORD_BREAK,
    /**
    (ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is W{@link ArkUI_EllipsisMode}. \n
     *
     */
    NODE_TEXT_ELLIPSIS_MODE,
    /**
    (text line spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line spacing, in fp.\n
     *
     */
    NODE_TEXT_LINE_SPACING,
    /**
     * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
     * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
     * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
     * The capabilities need to be supported by the fonts, \n
     * Interfaces for setting, resetting, and obtaining attributes are supported. \n
     * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
     * .string: complies with the text feature format. The format is normal | \n
     * is in the format of [ | on | off],\n.
     * There can be multiple values separated by commas (,). \n
     * For example, the input format of a number with the same width is ss01 on. \n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
     */
    NODE_FONT_FEATURE,
    /**
     * @brief Setting Enable Text Recognition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Enable text recognition, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Enable Text Recognition\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR,
    /**
     * @brief Set the text recognition configuration.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...].i32：Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
    /**
    (background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief The text component uses a formatted string object to set text content properties,
     * and supports property setting, property reset, and property acquisition interfaces.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for 1setting the attribute:\n
     * .object indicatesq/. formatted string data. The parameter type is QXi}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicatesq/. formatted string data. The parameter type is QX}. \n
     */
    NODE_TEXT_CONTENT_WITH_STYLED_STRING,

    /**
     * @brief Sets whether to center text vertically in the te    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     */
    NODE_TEXT_HALF_LEADING = 1029,

    /**
    (font weight attribute, which can be set, reset, and obtained as required through APIs.
     * The font weight specified by this API is not affected by any changes in the system font weight settings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     * @since 15
     */
    NODE_IMMUTABLE_FONT_WEIGHT = 1030,

    /**
     * @(text line count attribute, which can only be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line count of the node.
     *
     * @since 20
     */
    NODE_TEXT_LINE_COUNT = 1031,
 
    /**
     * @brief Sets whether to optimize the trailing spaces at the end of each line during text layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
     *               The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout. \n
     *
     * @since 20
     */
    NODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,

    /**
     * @brief Sets a linear gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>ang@le</b> property is ignored.
     * The parameter type is {@link CDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_LINEAR_GRADIENT = 1033,

    /**
     * @brief Sets a radial gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_RADIAL_GRADIENT = 1034,

    /**
     * @brief Sets the vertical alignment of the text content.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment of the text content, specified using the {@liT
     * enum. The default value is <b>ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUIT
     * enum. \n
     *
     * @since 20
     */
    NODE_TEXT_VERTICAL_ALIGN = 1035,

    /**
     * @brief Sets the content align of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. The default value is <b>ARKUI_TEXT_CONTENT_ALIGN_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. \n
     *
     * @since 21
     */
    NODE_TEXT_CONTENT_ALIGN = 1036,

    /**
     * @brief Sets the minimum number of lines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: minimum number of lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: minimum number of lines in the text.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MIN_LINES = 1037,

    /**
     * @brief Enables the selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *K
     * @since 22
     */
    NODE_TEXT_ENABLE_SELECTED_DATA_DETECTOR = 103%(minimum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum line height.\n
     *
     * @since E22
     *
     */
    NODE_TEXT_MIN_LINE_HEIGHT = 1040,

    /**
    (maximum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum line height.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MAX_LINE_HEIGHT = 1041,

    /**
     * @brief Defines line height multiple value of text, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height multiple value of text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height multiple value of text.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_LINE_HEIGHT_MULTIPLE = 1042,

    /**
     * @brief Get the text layout manager of the text.
     *
     K* Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:( The parameter type is {@link +}.\n
     *
     * @since 22
     */
    NODE_TEXT_LAYOUT_MANAGER = 1043,

    /**
     * @brief Set the edit menu options of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menu options of text. The parameter type is {@link ArkUI_TextEditMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_EDIT_MENU_OPTIONS = 1044,

    /**
     * @brief Bind the selection menu for text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the custom selection menu of text.
     *     The parameter type is {@link ArkUI_SelectionMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_BIND_SELECTION_MENU = 1045,

    /**
     * @brief Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     *
     * @since 23
     */
    NODE_TEXT_TEXT_SELECTION = 1046,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
     * @since 26.0j%	  NODE_TEXT_ORPHAN_CHAR_OPTIMIZATION = 1047,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning ofY line.\n
     *
     * @since 23
     */
    NODE_TEXT_COMPRESS_LEADING_PUNCTUATION = 104%@brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INCLUDE_FONT_PADDING = 1049,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_FALLBACK_LINE_SPACING = 1050,

    /**
     * @brief Set the marquee options of text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     *
     * @since 23
     */
    NODE_TEXT_MARQUEE_OPTIONS = 1051,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of . \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of . \n
     *
     * @since 23
     */
    NODE_TEXT_DIRECTION = 1052,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_SELECTED_DRAG_PREVIEW_STYLE = 1053,

    /**
     * @brief Sets the controller of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the controller of the text. The parameter type is
     * {@link OH_ίpController }.\n
     *W%"*NODE_TEXT_CONTROLLER = 1054,

    /**
    (text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: content of the text span. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: content of the text span. \n
     *
     */
    NODE_SPAN_CONT8ENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
    /**
    (text background style.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
     * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
     * 1: .value[1].f32: radius of the four corners, in vp. \n
     * 2: .value[1].f32: radius of the upper left corner, in vp. \n
     * .value[2].f32: radius of the upper right corner, in vp. \n
     * .value[3].f32: radius of the lower left corner, in vp. \n
     * .value[4].f32: radius of the lower right corner, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the text background, in 0xARGB format. \n
     * .value[1].f32: radius of the upper left corner, in vp. \n
     * .value[2].f32: radius of the upper right corner, in vp. \n
     * .value[3].f32: radius of the lower left corner, in vp. \n
     * .value[4].f32: radius of the_ lower right corner, in vp. \n
     *
     */
    NODE_SPAN_TEXT_BACKGROUND_STYLE,
    /**
    (text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
   7  *
     */
    NODE_SPAN_BASELINE_OFFSET,
    /**
    (text style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * ?.string: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.
     * .value[2]?.i32: fo*nt style. Optional. The parameter type is ͆.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * ?.object: Optional. The font configurations. The parameter type is {@link OH_ArkUI_FontConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32J: font weight. \n
     * .value[2].i32: font style. The parameter type is ͆.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * .object: the font configurations. The parameter type is {@$link OH_ArkUI_FontConfigs}.\n
     *&$NODE_SPAN_FONT = 2003,

    /**
    (font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight. The default value is 400.\n
     * ?.object: Optional. The font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight.\n
     * .object: the font weight Rconfigurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     *&*NODE_SPAN_FONT_WEIGHT = 2004,
    /**
    (image source of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * AR!KUI_NODE_IMAGE_SPAN,
    /**
    (alignment mode of the image with the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment modeB of the image with the text.
     * The value is an enum of {@link}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the im8age with the text.
     * The value is an enum of {@linkI}. \n
     *
     */
    NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
    /**
    (placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parametera type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_ALT,
    /**
    (baseline offset attribute of the <b>ImageSpan</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * A positive value means an upward offset, while a negative value means a downward offset.
     * The default value is <b>0</b>, and the unit is fp. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
     *
     * @since 13
     */
    NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,

    /**
    (color filter of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem } parameter for setting the attribute:\n 
     * .value [0].f32 to . value [19].f32: filter matrix array. \n 
     * .size :5 x 4 filter array size. \n 
     * .object : the pointer to OH_Drawing_ColorFilter. Either . value or . object is set. \n 
     * \n 
     * Format of the return value {@ link ArkUI_AttributeItem ):\n 
     * .value [0].f32 to .value [19].f32: filter matrix array. \n 
     * .size: 5 x 4 filter array size. \n 
     * .object: the pointer to OH_Drawing_ColorFilter. \n 
     * 
     * @since 22
     */
    NODE_IMAGE_SPAN_COLOR_FILTER = 3004,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether color fliter support svg. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 22
     */
    NODE_IMAGE_SPAN_!SUPPORT_SVG2 = 3005,
    /**
    (image source of the <Image> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
     * @brief Defines how the image is resized to fit its container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is resized to fit its container. The value i_s an enum of {@link ArkUI_ObjectFit}. \n
     *
     */
    NODE_IMAGE_OBJECT_FIT,
    /**
    (interpolation effect of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
     *
     */
    NODE_IMAGE_INTERPOLATION,
    /**
     * @brief Defines how the image is repeated.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     *
     */
    NODE_IMAGE_OBJECT_REPEAT,
    /**
     * @bri(color filter of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. ;\n
     *
     */
    NODE_IMAGE_COLOR_FILTER,
    /**
    (auto resize attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 : whether to resize the image source. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 : whether to resize the image source. \n
7     *
     */
    NODE_IMAGE_AUTO_RESIZE,
    /**
    (placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_ALT,
    /**
     * @brief Defines whether the image is draggable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
  l   * .value[0].i32: whether the image is draggable. \n
     *
     */
    NODE_IMAGE_DRAGGABLE,
    /**
    (image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     *
     */
    NODE_IMAGE_RENDER_MODE,
    /**
     * @brief Defines whether the image display size follows the image source size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i3j2: wheter to follow, true means to follow.\n
     *
     */
    NODE_IMAGE_FIT_ORIGINAL_SIZE,
    /**
    (fill color of the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fill color, in 0xARGB format. \n
     *
     */
    NODE_IMAGE_FILL_COLOR,
    /**
     * @brief Resize the image when stretching it with array or a lattice object.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     *
     */
    NODE_IMAGE_RESIZABLE,
    /**
    (synchronous image loading attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to load the image synchronously. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to load the image synchronously. \n
     *
     * @since 20
     */
    NODE_IMAGE_SYNC_LOAD = 4012,
    /**
     * @brief De(
image decoding size attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     *
     * @since 21
     */
    NODE_IMAGE_SOURCE_SIZE = 4013,
    /**
     * @brief Support the implementation of affine image transformations using floating-point numbers.
     * This attribute can be set, reset, and obtained as required through APIs.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     *
    E * @since 21
     */
    NODE_IMAGE_IMAGE_MATRIX = 4014,
    /**
    (image follow text direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to follows the text direction.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to follows the text direction.\n
     *
     * @since 21
     */
    NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015,
    /**
     * @b(image copy attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions.\n
     *
     * @since 21
     */
    NODE_IMAGE_COPY_OPTION = 4016,
    /**
    (image AI analysis enable attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     *
     * @since 21
     */
    NODE_IMAGE_ENABLE_ANALYZER = 4017,
    /**
     (image dynamic display range attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode}.
     * The default value is <b>ARKUI_DYNAMIC_RANGE_MODE_STANDARD</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode.\n
V     *
     * @since 21
     */
    NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018,
    /**
    (image dynamic display brightness attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     *
     * @since 21
     */
    NODE_IMAGE_HDR_BRIGHTNESS = 4019,
    /**
     * @brief Defi(image display direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation}.
     * The default value is <b>ARKUI_ORIENTATION_UP</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation.\n
     *
     * @since 21
     */
    NODE_IMAGE_ORIENTATION = 4020,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 21
     */
    NODE_IMAGE_SUPPORT_SVG2 = 4021, 
    /**
     * @brief Set the animation effect for the image content transformation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     Q*
     * @since 21
     */
    NODE_IMAGE_CONTENT_TRANSITION = 4022,
    /**
    (placeholder image during loading process.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_PLACEHOLDER = 4023,
    /**
    (placeholder image when loading fails.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_ERROR = 4024,
    /**
     * @brief Configure image edge anti-aliasing via an enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch,the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 23
     */
    NODE_IMAGE_ANTIALIASED = 4025,
    /**
    (color of the component when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_SELECTED_COLOR = MAX_N/ODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    (color of the circular slider for the component of the switch type.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. \n
     *9
     */
    NODE_TOGGLE_SWITCH_POINT_COLOR,
    /**
    (toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valu^e[0].i32: whether to enable the toggle. \n
     *
     */
    NODE_TOGGLE_VALUE,

    /**
    (color of the component when it is deselected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_UNSELECTED_COLOR,

  
  /**
    (foreground color of the loading progress bar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: foreground color, in 0xARGB format. \n
     *
     */
    NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
    /**
     * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show the loading animation.
     * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
     *
     */
    NODE_LOADING_PROGRESS_ENABLE_LOADING,

    /**
     * @brief(default placeholder text of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
     * @brief(default text content of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n6
     *
     */
    NODE_TEXT_INPUT_TEXT,
    /**
    (caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[f0].u32: caret color, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_CARET_COLOR,
    /**
    (caret style attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: caret width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: caret width, in vp. \n
     *
     */
    )NODE_TEXT_INPUT_CARET_STYLE,
    /**
    (underline attribute of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show an underline.
     * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to show an undkerline, and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_UNDERLINE,
    /**
    (maximum number of characters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of characters in the text input, without a unit. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     *
     */
    NODE_TEXT_INPUT_MAX_LENGTH,
    /**
    (type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_INPUT_ENTER_KEY_TYPE,
    /**
    (placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
    /**
     * @brief Defines(placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The dAefault value is <b>16.0</b>.\n
     * .value[1]?.i32: font style ͆. Optional.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * ?.string: font family. Multiple font families are separated by commas (,).
     * Example: "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style {@φ.\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separated by commas (,). \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_FONT,
    /**
     * @brief Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
      * and <b>0</b> means the oUpposite. \n
     *
     */
    NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
    /**
    (text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}.
     * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
     *
     */
    NODE_TEXT_INPUT_TYPE,
    /**
    (background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
    /**
     * @brief Defines whether to display the password icon at the end of the password text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the password icon at the end of the password text box.
     * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
     * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
   	 /**
    (editable state for the single-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether to remain in the editable state. The value
     * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanYs to exit the editable state. \n
     *
     */
    NODE_TEXT_INPUT_EDITING,
    /**
    (style of the cancel button on the right of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
     * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
     * .value[1]?.f32: button icon size, in vp.\n
     * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
     * .value[1].f32: icon size, in vp.\n
     * .value[2].u32: button icon color, in 0xARGB format.\n
     * .string: button icon image source. \n
     *
     */
    NODE_TEXT_INPUT_CANCEL_BUTTON,
    /**
     * @brief Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_INPUT_TEXT_SELECTION,
    /**
    * @brief Sets the color of the text underline when it is enabled.
    *
    * The default underline color configured for the theme is <b>'0x33182431'</b>.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].u32: color of the underline applied to the text being typed in.
    * The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state.
    * The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled.
    * The value is in 0xARGB format. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
    *
    */
    NODE_TEXT_INPUT_UNDERLINE_COLOR,
    /**
    * @brief Sets whether to enable autofill.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to enable autofill. \n
    *
    */
    NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
    /**
    * @brief Sets the autofill type.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
   7 *
    */
    NODE_TEXT_INPUT_CONTENT_TYPE,
    /**
   (rules for generating passwords. When autofill is used, these rules are transparently
    * transmitted to Password Vault for generating a new password.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: rules for generating passwords. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: rules for generating passwords. \n
    *
    */
    NODE_TEXT_INPUT_PASSWORD_RULES,
    /**
    * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to select all text in the initial state. \n
    *
    */
    NODE_TEXT_INPUT_SELECT_ALL,
    /**
    * @brief Sets the regular expression for input filtering.
    * Only inputs that comply with the regular expression can be displayed.
    * Other inputs are filtered out. The specified regular expression can match single characters,
    * but not strings.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: regular expression. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: regular expression. \n
    *
    */
    NODE_TEXT_INPUT_INPUT_FILTER,
    /**
    * @brief Sets the text box to the default style or inline input style.
    *
    * For the inline input style, only <b>InputType.Normal</b> is supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    *
    */
    NODE_TEXT_INPUT_STYLE,
    /**
    * @brief Sets or obtains the caret position.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * In the case of setting the caret position:
    * .value[0].i32: character count from the beginning of a string to the caret position. \n
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
    * current frame, it will not take effect.
    * .value[0].i32: index of the caret position. \n
    * .value[1].f32: X coordinate of the caret relative to the text box. \n
    * .value[2].f32: Y coordinate of the caret relative to the text box. \n
    */
    NODE_TEXT_INPUT_CARET_OFFSET,
    /**
    * @brief Obtains the position of the edited text area relative to the component and its size.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: horizontal coordinate. \n
    * .value[1].f32: vertical coordinate. \n
    * .value[2].f32: content width. \n
    * .value[3].f32: content height. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_RECT,
    /**
    * @brief Obtains the number of lines of the edited text.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of lines of the edited text. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
    /**
     * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. \n
     *
     */
    NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
    /**
     * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *
     */
    NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
    /**
     * @brief Set up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0]?.i32：Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0].i32：Set whether the custom keyboard supports the avoidance function.\n
     *
     */
    NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
    /**
    (ine break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
     *
     */
    NODE_TEXT_INPUT_WORD_BREAK,

    /**
     * @brief Sets whether the keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textInput component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting    the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the value of numberOfLines.\n
     *
     */
    NODE_TEXT_INPUT_NUMBER_OF_LINES,

    /**
     * @brief Sets the letter spacing of the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_LETTER_SPACING = 7032,

    /**
     * @brief Sets whether to enable preview text for the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable preview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,

    /**
     * @brief Sets whether to center text vertically in the textInput component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_INPUT_HALF_LEADING = 7034,

    /**
    * @brief Set the keyboard style of textInput
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}\n
    *
    * @since 15
    */
    NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,

    /**
     * @brief Set whether to enable the auto fill animation or not.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether to enable the auto fill animation.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
     *
     * @since 20
     */
    NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,

    /**
     * @brief Set the line height of the input node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_INPUT_LINE_HEIGHT = 7037,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled[.\n
     *
     * @since 22
     */
    NODE_TEXT_INPUT_ENABLE_SELECTED_DATA_DETECTOR = 703%(counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximum number of characters multiplied
     * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximum number of characters multiplied
     * by the threshold percentage value. The value range is 1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * 
     * @since 22
     */
    NODE_TEXT_INPUT_SHOW_COUNTER = 7040,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @since 23
     */G
    NODE_TEXT_INPUT_TEXT_CONTENT_CONTROLLER_BASE = 7041,

    /**
    (ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AkttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     * "NODE_TEXT_INPUT_ELLIPSIS_MODE = 7042,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
   [%	  NODE_TEXT_INPUT_ORPHAN_CHAR_OPTIMIZATION = 7043,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_COMPRESS_LEADING_PUNCTUATION = 7044,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_INCLUDE_FONT_PADDING = 7045,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_FALLBACK_LINE_SPACING = 7046,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of . \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of . \n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_DIRECTION = 7047,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_INPUT_SELECTED_DRAG_PREVIEW_STYLE = 704%(textinput textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long 4. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode when the text is too long 4. \n
     * 
     * "3NODE_TEXT_INPUT_TEXT_OVERFLOW = 7049,

    /**
    (text decoration style and color for single-line text box.
     * This attribute can be set, reset, and obtained as required thraough APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *W%"NODE_TEXT_INPUT_DECORATION = 7050,

    /**
     * @brief Sets a linear gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property 0is ignored.
     * The parameter type is {@link CDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
    $ * size: number of colors. \n
     *W%"NODE_TEXT_INPUT_LINEAR_GRADIENT = 7051,

    /**
     * @brief Sets a radial gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops:O stop positions of the color stops. \n
     * size: number of colors. \n
     *W%"5NODE_TEXT_INPUT_RADIAL_GRADIENT = 7052,

    /**
    (default placeholder text for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
     * @brief D(default text content for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n5
     *
     */
    NODE_TEXT_AREA_TEXT,
    /**
    (maximum number of characters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     *
     */
    NODE_TEXT_AREA_MAX_LENGTH,
    /**
     * @br(placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_COLOR,
    /**
     * @brief Defines (placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The dAefault value is <b>16.0</b>.\n
     * .value[1]?.i32: font style ͆. Optional. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value j{@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style ͆.\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separWated by commas (,). \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_FONT,
    /**
    (caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_CARET_COLOR,
    /**
     * @brief Defin(editable state for the multi-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
     * editable state, and <b>false</b> means to exit the editable state.\n \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meanZs to exit the editable state.\n \n
     *
     */
    NODE_TEXT_AREA_EDITING,
    /**
    (text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
     * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
     *
     */
    NODE_TEXT_AREA_TYPE,
    /**
     (counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximum number of characters multiplied
     * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when the number of characters that have been entered is greater than the maximum number of characters multiplied
     * by the threshold percentage value. The value range is 1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     *
     */
    NODE_TEXT_AREA_SHOW_COUNTER,
    /**
     * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. \n
     *
     */
    NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
    /**
     * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *
     */
    NODE_TEXT_AREA_BLUR_ON_SUBMIT,
    /**
     * @brief Sets the regular expression for input filtering.
     * Only inputs that comply with the regular expression can be displayed.
     * Other inputs are filtered out. The specified regular expression can match single characters,
     * but not strings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: regular expression. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: regular expression. \n
     *
     */
    NODE_TEXT_AREA_INPUT_FILTER,
    /**
     * @b(background color of the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
    /**
    (type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_AREA_ENTER_KEY_TYPE,
    /**
     * @brief Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
     * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
    /**
     * @brief Defines whether to enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
     * and <b>0</b> means the opposite. \n
     *
     */
    NODE_TEXT_AREA_CARET_OFFSET,
    /**
     * @brief Obtains the position of the edited text area relative to the component and its size.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal coordinate. \n
     * .value[1].f32: vertical coordinate. \n
     * .value[2].f32: content width. \n
     * .value[3].f32: content height. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_RECT,
    /**
     * @brief Obtains the number of lines of the edited text.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of lines of the edited text. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_LINE_COUNT,
    /**
     * @brief Sets the text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_AREA_TEXT_SELECTION,
    /**
     * @brief Sets whether to enable autofill.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable autofill. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_AUTO_FILL,
    /**
     * @brief Sets the autofill type.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_TYPE,

    /**
     * @brief Sets whether the keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textArea component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Set the value of numberOfLines\n
     *
     */
    NODE_TEXT_AREA_NUMBER_OF_LINES,

    /**
     * @brief Sets the letter spacing of the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_LETTER_SPACING = 8023,
    /**
     * @brief Sets whether to enable preview text for the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable preview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,

    /**
     * @brief Sets whether to center text vertically in the textArea component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_AREA_HALF_LEADING = 8025,

    /**
    * @brief Set the keyboard style of textArea
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
    * @since 15
    */
    NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,

    /**
     * @brief Set the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: max lines count.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES = 8027,

    /**
     * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line spacing value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line spacing value. \n
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_SPACING = 802%@brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: min line count.\n
     *
     * @since 20
     * 
     */
    NODE_TEXT_AREA_MIN_LINES = 8029,
 
    /**
     * @brief Set the max lines of the node with scroll.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count with scroll.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: max line count with scroll.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,

    /**
     * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_HEIGHT = 8031,

    /**
     * @brief Define bar state of the text area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum.
     * The default value is <b>ARKUI_BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum. \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_BAR_STATE = 8032,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
  ]   * @since 22
     */
    NODE_TEXT_AREA_ENABLE_SELECTED_DATA_DETECTOR = 8033,

    /**
    (color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_SCROLL_BAR_COLOR = 8035,

     /**
     * @brief Sets up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0]?.i32: Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0].i32: Set whether the custom keyboard supports the avoidance function.\n
     *
     * @since 22
     */
    NODE_TEXT_AREA_CUSTOM_KEYBOARD = 8036,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @siTnce 23
     */
    NODE_TEXT_AREA_TEXT_CONTENT_CONTROLLER_BASE = 8037,

    /**
    (ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AkttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     * ""NODE_TEXT_AREA_ELLIPSIS_MODE = 803%@brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:D\n
     * .value[0].i32: The current state of this feature.\n
     *W%"NODE_TEXT_AREA_ORPHAN_CHAR_OPTIMIZATION = 8039,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_COMPRESS_LEADING_PUNCTUATION = 8040,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_INCLUDE_FONT_PADDING = 8041,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_FALLBACK_LINE_SPACING = 8042,

    /**
     * @brief Whether to enable horizontal scrolling when text is wider than the view.
     * The default value is false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether enable the feature, true means enable this feature, false means disable. \n
     * \n
     * Format of the return value {@link SArkUI_AttributeItem}:\n
     * .value[0].i32: Whether enable the feature. \n
     *&NODE_TEXT_AREA_HORIZONTAL_SCROLLING = 8043,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settin`g the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of . \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value is an enum of . \n
     *
     * @since 23
     */
    NODE_TEXT_AREA_DIRECTION = 8044,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_AREA_SELECTED)_DRAG_PREVIEW_STYLE = 8045,

    /**
    (textarea textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode when the text is too long 4. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode when the text is too long 4. \n
     * 
     * "2NODE_TEXT_AREA_TEXT_OVERFLOW = 8046,

    /**
    (text decoration style and color for multi-line text box.
     * This attribute can be set, reset, and obtained as required thro`ugh APIs.
     *
     * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *W%"NODE_TEXT_AREA_DECORATION = 8047,

    /**
     * @brief Sets a linear gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is. ignored.
     * The parameter type is {@link CDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
    $ * size: number of colors. \n
     *W%"$NODE_TEXT_AREA_LINEAR_GRADIENT = 804%@brief Sets a radial gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *W%"4NODE_TEXT_AREA_RADIAL_GRADIENT = 8049,

    /**
    (button text content. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,

    /**
     * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     *
*     */
    NODE_BUTTON_TYPE,

    /**
   (minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: minimum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: minimum font scale, in fp.
    *
    * @since 18
   0 */
    NODE_BUTTON_MIN_FONT_SCALE,

    /**
   (maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: maximum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: maximum font scale, in fp.
    *
    * @since 18
   1 */
    NODE_BUTTON_MAX_FONT_SCALE,

    /**
    (current value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value of the progress indicator. \n
     *
     */
    NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
  
  /**
    (total value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: total value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total Xvalue of the progress indicator. \n
     *
     */
    NODE_PROGRESS_TOTAL,
    /**
    (color for the progress value on the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_PROGRESS_COLOR,
    /**
    (type of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
     * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
     *
     */
    NODE_PROGRESS_TYPE,
    /**
     * @brief Sets the style of the linear progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     * If the progress indicator type is not linear, it will not take effect.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
     *
     * @since 15
     */
    NODE_PROGRESS_LINEAR_STYLE,

    /**
     * @brief Defines whether the check box is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the check box is selected.
     * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the oppoksite. \n
     * 
     */
    NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
    (color of the check box when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for exampleQ, <b>0xFF1122FF</b>.
     *
     */
    NODE_CHECKBOX_SELECT_COLOR,

    /**
    (border color of the check box when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * 
     */
    NODE_CHE#CKBOX_UNSELECT_COLOR,

    /**
    (internal icon style of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vYp. The default value is <b>2</b>. \n
     *
     */
    NODE_CHECKBOX_MARK,

    /**
    (shape of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     */
    NODE_CHECKBOX_SHAPE,

    /**
    (name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_NAME,

    /**
    (name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP,

    /**
    (ID of the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID. \n
     *
     */
    NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
    /**
     * @brief Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
     * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
     * Attempting to change the type through {@link setAttribute} will cause rendering exceptions.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type {@link ArkUI_XComponentType}. \n
     *
     */
    NODE_XCOMPONENT_TYPE,
    /**
     * @brief Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
     * Attempting to modify the size through {@link setAttribute} will have no effect.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: width, in px. \n
     * .value[1].u32: height, in px. \n
     *
     */
    NODE_XCOMPONENT_SURFACE_SIZE,
    /**
    (rectangle information of surface created by the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * @since 18
     */
    NODE_XCOMPONENT_SURFACE_RECT,
    /**
     * @brief Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     * @since 18
     */
    NODE_XCOMPONENT_ENABLE_ANALYZER,

    /**
     * @brief Defines whether to display the lunar calendar in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker.
     *
     */
    NODE_DATE_PICKER_LUNAR = MAX_NO3DE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
    /**
    (start date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
   -  */
    NODE_DATE_PICKER_START,
    /**
    (end date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
   +  */
    NODE_DATE_PICKER_END,
    /**
    (selected date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2024-01-22"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date.
     *
 2    */
    NODE_DATE_PICKER_SELECTED,
    /**
    (font color, font size, and font weight for the top and bottom items in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   C  *
     */
    NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    (font color, font size, and font weight of all items except the top, bottom, and selected
     * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarTmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_TEXT_STYLE,
    /**
    (font color, font size, and font weight of the selected item in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
    : */
    NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
    /**
    (mode of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     *
     * @since 18
     */
    NODE_DATE_PICKER_MODE = 13007,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 18
     */
    NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
    /**
     * @brief Defines whether to support scroll looping for the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@li   nk ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     * @since 20
     */
     NODE_DATE_PICKER_CAN_LOOP = 13009,
    /**
     * @brie(time of the selected item. in the timer picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is the current system time. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time.
     *
     */

    NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
    /**
     * @brief Defines whether the display time is in 24-hour format.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the display time is in 24-hour format.
     *
     */
    NODE_TIME_&PICKER_USE_MILITARY_TIME,
    /**
    (font color, font size, and font weight for the top and bottom items in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   C  *
     */
    NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    (font color, font size, and font weight of all items except the top, bottom, and selected items
     * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarTmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_TEXT_STYLE,
    /**
    (font color, font size, and font weight of the selected item in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
    : */
    NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
    /**
    (start time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"00:00:00"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default vallue is <b>"00:00:00"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_START = 14005,
    /**
    (end time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_END = 14006,
    /**
     * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable cascade.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_ENABL E_CASCADE = 14007,

    /**
    (data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
     * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
     * ?.string: string input, whose format varies by picker type.\n
     * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.object: Object input, whose format varies by picker type.\n
     * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
     * ?.string: string output, whose format varies by picker type.\n
     * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.string: Object output, whose format varies by picker type.\n
     * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_R@ANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
    /**
    (index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one.\Cn
     *
     */
    NODE_TEXT_PICKER_OPTION_SELECTED,
    /**
    (value of the default selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;).\n
     *
     */
    NODE_TEXT_PICKER_OPTION_VALUE,
    /**
    (font color, font size, and font weight for the top and bottom items in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
   C  *
     */
    NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    (font color, font size, and font weight for all items except the top, bottom, and selected
     * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HaUrmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_TEXT_STYLE,
    /**
    (font color, font size, and font weight for the selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
   ;  */
    NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
    /**
    (index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: index of the default item in the data selection range.
     *
     */
    NODE_TEXT_PICKER_SELECTED_INDEX,
    /**
     * @brief Defines whether to support scroll looping for the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     */
    NO%DE_TEXT_PICKER_CAN_LOOP,
    /**
    (height of each item in the picker. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: item height, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: item height, in vp. \n
     *
     */
    NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 18
     */
    NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
    /**
     *(background color and border radius of the selected items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * 1: .value[1].f32: radius of the four corners. \n
     * 2: .value[1].f32: radius of the upper left corner. \n
     * .value[2].f32: radius of the upper right corner. \n
     * .value[3].f32: radius of the lower left corner. \n
     * .value[4].f32: radius of the lower right corner. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n     *
     * .value[1].f32: radius of the upper left corner. \n
     * .value[2].f32: radius of the upper right corner. \n
     * .value[3].f32: radius of the lower left corner. \n
     * .value[4].f32: radius of the lower right corner. \n
     *
     * @since 20
     */
    NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011,
    /**
     * @brief Define(style of the background in the selected state of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: style of the background in the selected state of the calendar picker.
     * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
     * or greater than 16, the background is a circle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
     * If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
     * greater than 16, the background is a circle. \n
     *
     */
    NODE_CALENDAR_PICKER_HINT_RADIUS = MAX:_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
    /**
    (date of the selected item in the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     *
     */
    NODE_CALENDAR_PICKER_SELECTED_DATE,
    /**
     * @brief Defines how the calendar picker is aligned with the entry component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     *
     */
    NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
    /**
     * @b(font color, font size, and font weight in the entry area of the calendar picker.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.u32: font color of the entry area. \n
     * .value[1]?.f32: font size of the entry area, in fp. \n
     * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: font color of the entry area. \n
     * .value[1].f32: font size of the entry area, in fp. \n
     * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     *
     */
    NODE_CALENDAR_PICKER_TEXT_STYLE,
    /**
     * @(start date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     H* @since 18
     */
    NODE_CALENDAR_PICKER_START = 16004,
    /**
    (end date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     F* @since 18
     */
    NODE_CALENDAR_PICKER_END = 16005,
    /**
    (color of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOP(E_NUM * ARKUI_NODE_SLIDER,

    /**
    (background color of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_TRACK_COLOR,

    /**
    (color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_SELECTED_COLOR,

    /**
     * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     *
     *+/
    NODE_SLIDER_SHOW_STEPS,

    /**
    (slider shape, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
     * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
      * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_SLIDER_BLOCK_STYLE,

    /**
     *(current value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value.
     *
     */
    NODE_SLIDER_VALUE,

    /**
    (minimum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum value.
     *
     */
    NODE_SLIDER_MIN_VALUE,

    /**
    (maximum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum value.
     *
     */
    NODE_SLIDER_MAX_VALUE,

    /**
    (step of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: step. The value range is [0.01, 100]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: step. The value range is [0.01, 100].
     *
     */
    NODE_SLIDER_STEP,

    /**
     * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
     * obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     * The parameter type is {@link ArkUI_SliderDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     *
     */
    NODE_SLIDER_DIRECTION,

    /**
     * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b> means tBhe opposite.
     *
     */
    NODE_SLIDER_REVERSE,

    /**
    (style of the slider thumb and track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
     *
     */
    NODE_SLIDER_STYLE,

    /**
     * @brief Sets the track thickness of the slider.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
     * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
     * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: track thickness of the slider, in vp. \n
     *
     */
    NODE_SLIDER_TRACK_THICKNESS,

    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
     * requestPermissions field of the module.json5 file to enable vibration permission.\n
     *
     * @since 18
     */
    NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,

    /**
     * @brief Sets a custom component on the leading side of the Slider component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The prefix component will be placed at the start position of the Slider，
     * typically on the left side in LTR layouts.
	 *
	 * @since 20
     */
    NODE_SLIDER_PREFIX,

    /**
     * @brief Sets a custom component on the trailing side of the Slider component.
     *
     * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The suffix component will be placed at the end position of the Slider,
     * typically on the right side in LTR layouts.
	 *
	 * @since 20
  +   */
    NODE_SLIDER_SUFFIX,

    /**
    (color of the slider block. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_BLOCK_LINEAR_GRADIENT_COLOR,

    /**
    (background color of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_TRACK_LINEAR_GRADIENT_COLOR,

    /**
    (color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_SELECTED_LINEAR_GRADIENT_COLOR,

    /**
     * @brief Set the selection status of an option button. Attribute setting,
     * attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: check status of an option button. The default value is false.
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: selection status of an option button.
     */
    NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
    /**
     * @brief Set the styles of the selected and deselected states of the option button.
     * The attribute setting, attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0]?. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]?. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFFF. \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0]. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFF. \n
     */
    NODE_RADIO_STYLE,
    /**
     * @brief Sets the value of the current radio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: radio value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: radio value.\n
     *
     */
    NODE_RADIO_VALUE,
    /**
     * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: name of the group to which the current option box belongs.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: name of the group to which the current option box belongs.\n
     *
     */
    NODE_RADIO_GROUP,

    /**
     * @brief Set the image frames for the image animator. Dynamic updates is not supported.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     *
    */
    NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
    /**
     * @brief Set the playback status of the animation for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
     * and the default value is ARKUI_ANIMATION_STATUS_INITIAL.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
     *
    */
    NODE_IMAGE_ANIMATOR_STATE = 19001,
    /**
     * @brief Set the playback duration for the image animator. When the duration is 0, no image is played.
     * The value change takes effect only at the beginning of the next cycle.
     * When a separate duration is set in images, the setting of this attribute is invalid.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback duration, the unit is ms and the default value is 1000.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback duration, the unit is ms.\n
     *
    */
    NODE_IMAGE_ANIMATOR_DURATION = 19002,
    /**
     * @brief Set the playback direction for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
    */
    NODE_IMAGE_ANIMATOR_REVERSE = 19003,
    /**
     * @brief Set whether the image size is the same as the component size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * In this case, the width, height, top, and left attributes of the image are invalid.
     * 0 indicates the image size is customized.
     * The width, height, top, and left attributes of each image must be set separately.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * 0 indicates the image size is customized.
     *
    */
    NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
    /**
     * @brief Set the status before and after execution of the animation in the current playback direction.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode} and the default value is ARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode}.
     *
    */
    NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
    /**
     * @brief Set the number of times that the animation is played.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of timesg that the animation is played.\n
     *
    */
    NODE_IMAGE_ANIMATOR_ITERATION = 19006,

    /**
    (name of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief Defines whether the checkboxgroup is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the checkboxgroup is selected.
     * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECT_ALL,

    /**
    (color of the checkboxgroup when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
     * for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECTED_COLOR,
    /**
     * (border color of the checkboxgroup when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * 
     * @since 15@
     */
    NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,

    /**
    (internal icon style of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_MARK,

    /**
     * @brief D(shape of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SHAPE,

    /**
     * @brief Type of the **Enter** key of the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Type of the **Enter** key. The parameter type is {@link ArkUI_EnterKeyType}. The default
     * value is **ARKUI_ENTER_KEY_TYPE_NEW_LINE**.
     * <br>**Returns**
     * <br>.value[0].i32: Type of the **Enter** key. The parameter *type is {@link ArkUI_EnterKeyType}.
     *&NODE_TEXT_EDITOR_ENTER_KEY_TYPE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief Caret color of the **TextEditor** component. This attribute can be set, reset, and obtained as required
     * through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].u32: Caret color, in 0xARGB format. For example, **0xFFFF00j00** indicates red.
     * <br>**Returns**
     * <br>.value[0].u32: Caret color, in 0xARGB format.
     *&NODE_TEXT_EDITOR_CARET_COLOR,

    /**
     * @brief Scroll bar color of the **TextEditor** component. This attribute can be set, reset, and obtained as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.data[0].u32: Scroll bar color, in 0xARGB format.
     * <br>**Returns**
     * <br>.data[0].u32: Scroll bar color, in 0xARGB format.
     *&NODE_TEXT_EDITOR_SCROLL_BAR_COLOR,

    /**
     * @brief Scroll bar display mode of the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Scroll bar display mode of the text area. The parameter type is {@link ArkUI_BarState}. The
     * default value is **ARKUI_BAR_STATE_AUTO**.
     * <br>**Returns**
     * <br>.value[0].i32: Scroll bar display modHe of the text area. The parameter type is {@link ArkUI_BarState}.
     *&NODE_TEXT_EDITOR_BAR_STATE,

    /**
     * @brief Whether to enable text entity recognition for the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable text entity recognition. The value **1** indicates to enable text entity
     * recognition, and **0** indicates the opposite. The default value is **0**.
     * <br>**Returns**
     G* <br>.value[0].i32: Whether text entity recognition is enabled.
     *&NODE_TEXT_EDITOR_ENABLE_DATA_DETECTOR,

    /**
     * @brief Recognition configuration for the **TextEditor** component. This attribute can be set and reset as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Recognition configuration. The param:eter type is {@link ArkUI_TextDataDetectorConfig}.
     * &NODE_TEXT_EDITOR_DATA_DETECTOR_CONFIG,

    /**
     * @brief Extended menu options for the **TextEditor** component. This attribute can be set and reset as required
     * through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Extended menu options. The parameter typ.e is {@link ArkUI_TextEditMenuOptions}.
     *&NODE_TEXT_EDITOR_EDIT_MENU_OPTIONS,

    /**
     * @brief Placeholder options when there is no input for the **TextEditor** component. This attribute can be set
     * and reset as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Placeholder options wheen there is no input. The parameter type is
     * {@link ArkUI_TextEditorPlaceholderOptions}.
     *&NODE_TEXT_EDITOR_PLACEHOLDER,

    /**
     * @brief Styled string controller of the **TextEditor** component. This attribute can be set as required through
     * APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Styled string controller. The parameter type is {@link Ar-kUI_TextEditorStyledStringController}.
     *&NODE_TEXT_EDITOR_STYLED_STRING_CONTROLLER,

    /**
     * @brief Whether to enable preview text for the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable preview text. The value **1** indicates to enable preview text, and **0**
     * indicates the opposite. The default value is **1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether preview text is enabled. The value **1** indicates preview text is enabled, and **0**
     * indicates the opposite.
     *&NODE_TEXT_EDITOR_ENABLE_PREVIEW_TEXT,

    /**
     * @brief **TextLayoutManager** of the **TextEditor** component. This attribute can be obtained as required through
     * APIs.
     * <br>The format of the return value {@link ArkUI_AttributeItem} is acs follows.
     * <br>**Returns**
     * <br>.object: Layout manager. The parameter type is {@link +	}.
     *&NODE_TEXT_EDITOR_LAYOUT_MANAGER,

    /**
      * @brief Whether to enable the AI menu for text selection and recognition of the **TextEditor** component. This
      * attribute can be set, reset, and obtained as required through APIs.
      * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
      * return value **ArkUI_AttributeItem** are as follows.
      * <br>**Parameters**
      * <br>.value[0].i32: Whether to enable the AI menu for text selection and recognition. The value **1** means to
      * enable, and **0** means the opposite. The default value is **1**.
      * <br>**Returns**
      * <br>.value[0].i32: Whether the AI menu is enabled for text selection and recognition.
      *
    4# */
    NODE_TEXT_EDITOR_ENABLE_SELECTED_DATA_DETECTOR,

    /**
     * @brief Background color of the selected content in the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.data[0].u32: Background color of the selected content, in 0xARGB format.
     * <br>**Returns**
     * <br>.data[0].u32: Background color of the selected content, in 0xARGB format.
     *
 &NODE_TEXT_EDITOR_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief Whether to enable the input method when the focus is obtained in a way other than by clicking in the **
     * TextEditor** component. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable the input method when the focus is obtained in a way other than clicking.
     * The value **1** means to enable, and **0** means the opposite. The default value is **1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether the input method is enabled when the focus is obtained in a way other than clicking.
     * The value **1** indicates the input method is en?abled, and **0** indicates the input method is disabled.
     *&NODE_TEXT_EDITOR_ENABLE_KEYBOARD_ON_FOCUS,

    /**
     * @brief Maximum number of characters in the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Maximum number of characters.
     * <br>**Returns**
     * <br>.value[0]*.i32: Maximum number of characters.
     *&NODE_TEXT_EDITOR_MAX_LENGTH,

    /**
     * @brief Maximum number of lines in the **TextEditor** component. This attribute can be set, reset, and obtained
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Maximum number of lines in the text editor.
     * <br>**Returns**
     * <br>.value[0].i32:3 Maximum number of lines in the text editor.
     *&NODE_TEXT_EDITOR_MAX_LINES,

    /**
     * @brief Whether to enable haptic feedback of the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable haptic feedback in the text editor. The value **1** means to enable, and **
     * 0** means the opposite. The default value is **1**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether haptic feedback is enabled. The value **1** indicates haptic feedback is enabled, and
     * **0** indicates the opposite.
     *&NODE_TEXT_EDITOR_ENABLE_HAPTIC_FEEDBACK,

    /**
     * @brief Copy options of the **TextEditor** component, which can be set, reset, and obtained as required through
     * APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Copy options. The parameter type is {@link ArkUI_CopyOptions}. The default value is **
     * ARKUI_COPY_OPTIONS_LOCAL_DEVICE**.
     * <br>**Returns**
     * <br>.value[0].i32: Copy options. The parameter type is {@link ArkUI_CopyOptions}.
     *&NODE_TEXT_EDITOR_COPY_OPTIONS,

    /**
    * @brief Keyboard appearance of the **TextEditor** component. This attribute can be set, reset, and obtained as
    * required through APIs.
    * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
    * return value **ArkUI_AttributeItem** are as follows.
    * <br>**Parameters**
    * <br>.value[0].i32: Appearance of the keyboard. The parameter type is {@link ArkUI_KeyboardAppearance}. The
    * default value is **ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE**.
    * <br>**Returns**
    * <br>.value[0].i32: Appearance of the keyboCard. The parameter type is {@link ArkUI_KeyboardAppearance}.
    *
$*/
    NODE_TEXT_EDITOR_KEYBOARD_APPEARANCE,

    /**
     * @brief Whether the **TextEditor** component blocks the propagation of return events. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to block the propagation of return events. The value **1** indicates to block, and **
     * 0** indicates the opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether the propagation of return events is blocked. The value **1** indicates that the
     * propagatIion of return events is blocked, and **0** indicates the opposite.
     *&NODE_TEXT_EDITOR_STOP_BACK_PRESS,

    /**
     * @brief Whether to enable automatic spacing for Chinese and Western characters in the **TextEditor** component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable automatic spacing. The value **1** means to enable, and **0** means the
     * opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether automatic spacing is enabled. The value **1** indicates automatic spacing is enabled,
     * and **0** indicates the opposite.
     *&NODE_TEXT_EDITOR_ENABLE_AUTO_SPACING,

    /**
     * @brief Custom keyboard of the **TextEditor** component. This attribute can be set, reset, and obtained as
     * required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.object: Custom keyboard. The parameter type is {@link ArkUI_NodeHandle}.
     * <br>.value[0]?.i32: Whether the custom keyboard supports avoidance. The value **0** indicates no, and the value *
     * *1** indicates yes. The default value is **0**.
     * <br>**Returns**
     * <br>.object: Custom keyboard. The parameter type is {@link ArkUI_NodeHandle}.
     * <br>.value[0].i32: Whether the custom keyboard supports avoidance. The value **0** indicates no, and the value **
     * 1** indicates yes.
     *&NODE_TEXT_EDITOR_CUSTOM_KEYBOARD,

    /**
     * @brief Binds the custom text selection menu of the **TextEditor** component. This attribute can be set and reset
     * as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute is as follows.
     * <br>**Parameters**
     * <br>.object: Text selection menu. The parame@ter type is {@link ArkUI_TextEditorSelectionMenuOptions}.
     *&NODE_TEXT_EDITOR_BIND_SELECTION_MENU,

    /**
     * @brief Whether to add spacing to the first and last lines of the **TextEditor** component to prevent text
     * truncation. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to add spacing. The value **1** means to add spacing, and **0** means not to add
     * spacing. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether spacing is added. The valu   e **1** means that spacing is added, and **0** means
     * spacing is not added.
     *&NODE_TEXT_EDITOR_INCLUDE_FONT_PADDING,

    /**
     * @brief Whether to enable line height adaptation of the **TextEditor** component. This attribute can be set,
     * reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable line height adaptation. The value **1** means to enable, and **0** means
     * the opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether line height adaptation is enabled. The value **1** means line height adaptation is
     * enabled, and **0** means the opposite.
     *&NODE_TEXT_EDITOR_FALLBACK_LINE_SPACING,

    /**
     * @brief Whether to enable punctuation compression for the beginning of a line in the **TextEditor** component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable punctuation compression. The value **1** means to enable, and **0** means
     * the opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether punctuation compression is enabled. The value **1** means punctuation compression is
     *. enabled, and **0** means the opposite.
     *&NODE_TEXT_EDITOR_COMPRESS_LEADING_PUNCTUATION,

    /**
     * @brief Selected drag preview style of the **TextEditor** component. This attribute can be set, reset, and
     * obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.object: Selected drag preview style configuration. The parameter type is
     * {@link ArkUI_SelectedDragPreviewStyle}.
     * <br>**Returns**
     * <br>.object: Selected drag preview style configuration. The pGarameter type is
     * {@link ArkUI_SelectedDragPreviewStyle}.
     * &NODE_TEXT_EDITOR_SELECTED_DRAG_PREVIEW_STYLE,

    /**
     * @brief Whether to enable single-line mode for the **TextEditor** component. This attribute can be set, reset,
     * and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable single-line mode. The value **1** means to enable, and **0** means the
     * opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether single-line mode is enabled. The value **1** means single-line mode is enabled, and **
     * 0** means the opposite.
     * 
&NODE_TEXT_EDITOR_SINGLE_LINE,

    /**
     * @brief Sets whether to enable orphan character optimization for text layout in **TextEditor**.
     * After setting,text layout is improved by more efficiently handling orphan characters
	 * (the first character of the last line of a paragraph).
     * When enabled, it adjusts line break points to avoid orphan characters as much as possible.
     * The orphan character optimization feature only works when {@link ArkUI_WordBreak}
	 * is not **ARKUI_WORD_BREAK_BREAK_ALL**.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable. The value **1** means to enable, and **0** means the opposite.
	 * The default value is **0**.
     * <br>**Returns**
   O  * <br>.value[0].i32: Whether orphan character optimization is enabled.
     *W%" NODE_TEXT_EDITOR_ORPHAN_CHAR_OPTIMIZATION,

    /**
     * @brief Sets whether to enable horizontal scrolling for the **TextEditor** component when the text width exceeds
     * the content area width. This attribute can be set, reset, and obtained as required through APIs.
     * <br>The format of the {@link ArkUI_AttributeItem} parameter for setting the attribute and the format of the
     * return value **ArkUI_AttributeItem** are as follows.
     * <br>**Parameters**
     * <br>.value[0].i32: Whether to enable horizontal scrolling. The value **1** means to enable, and **0** means the
     * opposite. The default value is **0**.
     * <br>**Returns**
     * <br>.value[0].i32: Whether horizontal scrolling is enabled.
     *
     * @since 26.0.0
   p%	NODE_TEXT_EDITOR_HORIZONTAL_SCROLLING,

    /**
     * @brief Sets whether to enable punctuation overflow at the end of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable punctuation overflow, the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enabl e punctuation overflow.\n
     *W%"4NODE_TEXT_EDITOR_PUNCTUATION_OVERFLOW,

    /**
    (alignment mode of the child components in the container. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,

    /**
     * @b(scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b> for the <b>List</b>, <b>Grid</b>, and <b>Scroll</b> components, and
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF</b> for the <b>WaterFlow</b> component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
     *
     */
    NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    (width of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32Z: width of the scrollbar, in vp. \n
     *
     */
    NODE_SCROLL_BAR_WIDTH,
    /**
    (color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scrollbOar, in 0xARGB format. \n
     *
     */
    NODE_SCROLL_BAR_COLOR,
    /**
    (scroll direction. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
     * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDiJrection}. \n
     *
     */
    NODE_SCROLL_SCROLL_DIRECTION,
    /**
    (effect used at the edges of the component when the boundary of the scrollable content is
     * reached. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
     * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
     * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
     * opposite. The default value for the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
     * Scroll component is <b>1</b>. \n
     * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
     * The default value is <b>ARKUI_EFFECT_EDGE_START | ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
     * API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
     * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
     * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
     * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EffectEdge}. This parameter is supported since API version 16. \n
     *
     */
    NODE_SCROLL_EDGE_EFFECT,
    /**
     * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
     * finger or mouse is not supported, but the scroll controller API is not affected.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to support[ scroll gestures. \n
     *
     */
    NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
    /**
    (friction coefficient. It applies only to gestures in the scrolling area, and it affects only
     * indirectly the scroll chaining during the inertial scrolling process.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
     * for wearable devices. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32M: friction coefficient.
     *
     */
    NODE_SCROLL_FRICTION,
    /**
    (scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
     * edge to which the <b><Scroll></b> component can scroll.  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point.\n
     * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
     * to which the <b>X<Scroll></b> component can scroll. \n
     *
     */
    NODE_SCROLL_SNAP,

    /**
    (nested scrolling options. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}.
     *
     */
    NODE_SCROLL_NESTED_SCROLL,
    /**
    (specified position to scroll to. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
     * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
     * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
     *                 The default value is <b>ARKUI_CURVE_EASE</b>. \n
     * .value[4]?.i32: whether to enable the default spring animation. Optional.
     *                 The default value <b>0</b> means not to enable the default spring animation. \n
     * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
     *                 Optional. \n
     * .value[6]?.i32: whether the component can stop at an overscrolled position.
     *                 This parameter is supported since API version 20. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
  2   *
     */
    NODE_SCROLL_OFFSET,

    /**
    (edge position to scroll to. This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
     * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
     *
     */
    NODE_SCROLL_EDGE,

    /**
     * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
     * <b>enablePaging</b> does not. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
     *
     */
    NODE_SCROLL_ENABLE_PAGING,

    /**
     * @brief Scroll to the next or previous page.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
     * indicates scroll to previous page. \n
     * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
     *
     */
    NODE_SCROLL_PAGE,

    /**
     * @brief Scroll a specified distance.
     * List/Scroll/WaterFlow support since API version 12, Grid support since API version 26.0.0.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Horizontal scrolling distance in vp; \n
     * .value[1].f32: Vertical scrolling distance in vp; \n
     *
     */
    NODE_SCROLL_BY,

    /**
     * @brief Performs inertial scrolling based on the initial velocity passed in.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
     * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
     * the scroll will move downward; if the value is negative, the scroll will move upward. \n
     *
     * @since 13
     */
    NODE_SCROLL_FLING,

    /**
    * @brief Sets the fading effect for the edges of scrollable components.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
    * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect,
    * and 1 means to enable it.
    * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
    *
    * Format of the return value {@link ArkUI_AttributeItem}:
    * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
    * disabled, and 1 means that it is enabled.
    * .value[1].f32: length of the fading effect on edges, in vp.
    *
    * @since 14
    */
    NODE_SCROLL_FADING_EDGE,

    /**
     * @brief Obtains the total size of all child components when fully expanded in the scrollable component.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
     * nearest pixel when being converted from vp to px.
     * The returned values are calculated based on these rounded pixel values. \n
     *
     * @since 14
     */
    NODE_SCROLL_SIZE,

    /**
     * @brief Sets the offset from the start of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     *
     * @since 15
     */
    NODE_SCROLL_CONTENT_START_OFFSET,

    /**
     * @brief Sets the offset from the end of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the end ofi the content, in vp. \n
     *
     * @since 15
     */
    NODE_SCROLL_CONTENT_END_OFFSET,

    /**
    (maximum starting fling speed of the scrollable when the fling animation starts.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     *
     * @since 18
     */
    NODE_SCR.OLL_FLING_SPEED_LIMIT = 1002019,

    /**
    (clip mode of the scrollable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: clip content mode. The parameter type is {@link ArkUI_ContentClipMode}. The default value is
     * <b>ARKUI_CONTENT_CLIP_MODE_BOUNDARY</b> for the <b>Grid</b> and <b>Scroll</b> components, and
     * <b>ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY</b> for the <b>List</b> and <b>WaterFlow</b> components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
     *
     * @since 18
     */
    NODE_SCROLL_CLIP_CONTENT = 1002020,

    /**
     * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
     * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite. The default value is <b>0</b>
     * for API versions earlier than 18. For API version 18 and later, the default value is <b>0</b> for the
     * horizontal scroll direction and <b>1</b> for the vertical scroll direction. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
     *
     * @since 1>5
     */
    NODE_SCROLL_BACK_TO_TOP = 1002021,

    /**
    (margin of the scrollbar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * .value[1].f32: end margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start margin of the scrollbar, in vp. \n
     * .value[1].f32: end margin of the scrollbar, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_BAR_MARGIN = 1002022,

    /**
     * @brief Sets the maximum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current maximum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,

    /**
     * @brief Sets the minimum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current minimum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,

    /**
     * @brief Sets the zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_ZOOM_SCALE = 1002025,

    /**
     * @brief Sets whether to enable the zoom bounce effect when the scaling exceeds the limits.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
     *
     * @since 20
     */
    NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,

    /**
     * @brief Sets whether dragging scrolling with the left mouse button pressed is supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. \n
     *W%"NODE_SCROLL_ENABLE_SCROLL_WITH_MOUSE = 1002027,

    /**
     * @brief Sets whether to automatically adjust the margin of the scrollbar to avoid the component's <b>NODE_PADDING</b>, <b>NODE_SCROLL_CONTENT_START_OFFSET</b>, and <b>NODE_SCROLL_CONTENT_END_OFFSET</b> areas.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to automatically adjust Cthe margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. \n
     *W%"'NODE_SCROLL_AUTO_ADJUST_MARGIN = 100202%@brief Sets the direction in which the list items are arranged.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
     * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
     *
     */
    NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
     * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}.
     *
     */
    NODE_LIST_STICKY,
    /**
    (spacing between list items. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between list items along the main axis. \n
     *
     */
    NODE_LIST_SPACE,
    /**
    * @br(ist adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_LIST_NODE_ADAPTER,

    /**
     * @brief Sets the number of cached items in the list adapter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
     * .value[2]?.i32: maximum cache count. This parameter is supported since API version 22.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. This parameter is supported since API version 15. \n
     * .value[2].i32: maximum cache count. This parameter is supported since API version 22.
     *
     */
    NODE_LIST_CACHED_COUNT,

    /**
     * @brief Scroll to the specified index.
     * 
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：The index value of the target element to be slid to in the current container.\n
     * .value[1]?.i32：Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. Default value: 0。\n
     * .value[2]?.i32：Specify the alignment of the sliding element with the current container,The parameter type is
     * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
     * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
     * This parameter is supported since API version 15. \n
     *
     */
    NODE_LIST_SCROLL_TO_INDEX,
    /**
     * @brief Sets the alignment mode of list items along the cross axis when the cross-axis width of the list is
     * greater than the cross-axis width of list items multiplied by the value of lanes.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
    */
    NODE_LIST_ALIGN_LIST_ITEM,

    /**
     * @brief Set the default spindle size for the List subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */
    NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,

    /**
     * @brief Set the index value of the item displayed at the start of the viewport
     * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     */
    NODE_LIST_INITIAL_INDEX = 1003008,
    /**
     * @brief sets the ListItem splitter style. By default, there is no splitter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
     *
     */
    NODE_LIST_DIVIDER = 1003009,

    /**
     * @brief Scrolls to the item with the specified index in the specified list item group.
     *
     * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
     * This may result in performance issues if a large number of items are involved. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index of the target list item group in the current list. \n
     *.value[1].i32: index of the target list item in the list item group. \n
     * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
     * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
     * The default value is <b>0</b>. \n
     * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     *
     * @since 15
     */
    NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,

    /**
     * @brief Sets the number of lanes in the list.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
     * of lanes will not take effect. \n
     * .value[1]?.f32: minimum lane width, in vp. \n
     * .value[2]?.f32: maximum column width, in vp. \n
     * .value[3]?.f32: lane spacing, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: number of lanes in the list. \n
     * .value[1].f32: minimum lane width, in vp. \n
     * .value[2].f32: maximum column width, in vp. \n
     * .value[3].f32: lane spacing, in vp. \n \n
     *
     * @since 15
     */
    NODE_LIST_LANES = 1003011,

    /**
     * @brief Sets the list snap alignment mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     *
     * @since 15
     */
    NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,

    /**
     * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     *
     * @since 15
     */
    NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,

    /**
     * @brief Sets whether the <b>List</b> component starts layout from the end.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     *
     * @since 19
     */
    NODE_LIST_STACK_FROM_END = 1003014,
    
    /**
    (focus wrap mode for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     *
     * @since 20
     */
    NODE_LIST_FOCUS_WRAP_MODE = 1003015,

    /**
     * @brief Defines whether the <b>List</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
 7    */
    NODE_LIST_SYNC_LOAD = 1003016,

    /**
    (scroll snap animation speed for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}.
     * Default value: <b>ARKUI_SCROLL_SNAP_ANIMATION_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}. \n
     *
     * @since 22
     */
    NODE_LIST_SCROLL_SNAP_ANIMATION_SPEED = 1003017,

    /**
     * @brief Specifies the responsive column layout policy for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.f32: column spacing. unit: vp. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].f32: column spacing. unit: vp. \n
     *
  B   * @since 22
     */
    NODE_LIST_LANES_ITEMFILLPOLICY = 100301%@brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>List</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>List</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_LIST_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1003019,

    /**
     * @brief Sets the back button behavior for the List component. Attribute setting, resetting, and obtaining APIs are supported.
     *
     * The parameter format for setting properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes. Default value: 1.
     * 
     * The parameter format for obtaining properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button !is clicked. 0: no; 1: yes.
     *W%"NODE_LIST_BACK_PRESS_BEHAVIOR = 1003020,

    /**
     * @brief Defines whether the <b>List</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_LIST_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_LIST_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>List</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>List[</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable.
     *W%"NODE_LIST_ENABLE_EDIT_MODE = 1003021,

    /**
     * @brief List component edit mode option configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * When using default multi-selection style, List displays checkboxes after entering edit mode.
     * 0: Do not use default style, 1: Use default style. Default value: 1
     * .value[1].i32: Whether List component enables two-finger swipe multi-selection.
     * This parameter takes effect after registering {@link NODE_LIST_ON_EDIT_MODE_CHANGE} event callback.
     * 0: Two-finger swipe gesture cannot make List enter edit mode, but after entering edit mode through other means,
     * single-finger swipe multi-selection in edit mode is not affected.
     * 1: Two-finger swipe gesture can make List enter edit mode from non-edit mode and perform swipe multi-selection.
     * Default value: 1
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * 0: Do not use default style, 1: Use default style.
     * .value[1].i32: Whether List component enables two-finger swipe multi-selection.
     * 0: Not enabled, 1: Enabl
ed.
     *W%"NODE_LIST_EDIT_MODE_OPTIONS = 1003022,

    /**
     * @brief Defines whether to enable loop playback for the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the opposite. The default value is <b>1/b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     * means the opposite. The default value is <b>1</b>. \n
     *
     */
    NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
    /**
     * @brief Defines whether to enable automatic playback for child component switching in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
     * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
     * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
     * supported since API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
     * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
     * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
     *
     */
    NODE_SWIPER_AUTO_PLAY,
    /**
     * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
     * reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the opposite. The default valuMe is <b>1</b>. \n
     *
     */
    NODE_SWIPER_SHOW_INDICATOR,
    /**
    (interval for automatic playback. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     *
     */
    NODE_SWIPER_INTERVAL,
    /**
     * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the opposite. ThVe default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_VERTICAL,

    /**
    (duration of the animation for switching child components. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     *
     */
    NODE_SWIPER_DURATION,

    /**
    (animation curve for the swiper. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     *
     */
    NODE_SWIPER_CURVE,

    /**
     * @(spacing between child components in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between child components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sp[acing between child components. \n
     *
     */
    NODE_SWIPER_ITEM_SPACE,

    /**
    (index of the child component currently displayed in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the child component. \n
     * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
     * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
     * This parameter is supported since API version 15. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the child component. \n
     *
     */
    NODE_SWIPER_INDEX,

    /**
    * @brie(number of elements to display per page.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
    * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
    * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 19. \n
    * .string: 'auto' or empty string.
    *
    */
    NODE_SWIPER_DISPLAY_COUNT,

    /**
     * @brief Defines whether to disable the swipe feature.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
     * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
     * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_DISABLE_SWIPE,

    /**
    * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    *
    */
    NODE_SWIPER_SHOW_DISPLAY_ARROW,

    /**
     * @b(effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}.\n
     * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
    9 *
     */
    NODE_SWIPER_EDGE_EFFECT_MODE,

    /**
   (swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_SWIPER_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the swiper adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1]?.i32: whether the cached items will be displayed. \n
    * The value <b>0</b> indicates that cached items will not be displayed, \n
    * and <b>1</b> indicates that cached items will be displayed. The default value is <b>0</b>. \n
    * This parameter is supported from API version 19. \n
    * .value[2]?.i32: whether the cachedCount is independent of group calculation. \n
    * The value <b>1</b> indicates that cachedCount is calculated by actual child component count,\n
    * and is independent of displayCount group calculation.\n
    * The value <b>0</b> indicates that, when NODE_SWIPER_DISPLAY_COUNT is enabled to turn pages by group,\n
    * cachedCount is calculated by group.The default value is <b>0</b>. \n
    * This parameter is supported from API version 24. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
    * .value[2].i32: whether the cachedCount is independent of group calculation. This parameter is supported from APCI version 24. \n
    */
    NODE_SWIPER_CACHED_COUNT,

    /**
    (front margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the front margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_PREV_MARGIN,

    /**
    (back margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the back margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_NEXT_MARGIN,

    /**
   (navigation indicator type of the swiper.
    * The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    *
    */
    NODE_SWIPER_INDICATOR,

    /**
     * @brief Set the nested scrolling mode for the Swiper component and parent component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     */
    NODE_SWIPER_NESTED_SCROLL,

    /**
     * @brief Set the switcher component to flip to the specified page.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32Specify the index value of the page in Swiper.\n
     * .value[1]?.i32：Set whether there is an animation effect when flipping to the specified page. 1 indicates active
     * effect, 0 indicates no active effect, default value is 0。\n
     */
    NODE_SWIPER_SWIPE_TO_INDEX,

    /**
    * @brief Set to disable component navigation point interaction function。
    *
    * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
    * .value[0].i32：Set to disable the interaction function of component navigation points. When set to true, it
    * indicates that the navigation points are interactive. The default value is true. \n
    * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}： \n
    * .value[0].i32：Set to disable component navigation point interaction. \n
    */
    NODE_SWIPER_INDICATOR_INTERACTIVE,

    /**
     * @brief Sets the page flipping mode using the mouse wheel.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
     * \n
     * Format of the return value {@link ArkUI_PageFlipMode}:\n
     * .value[0].i32: page flipping mode using the mouse wheel. \n
     *
     * @since 15
     */
    NODE_SWIPER_PAGE_FLIP_MODE,

    /**
    (minimum main axis size of child element for swiper to works out the display count.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minim   um main axis size of the child element, Unit: vp. \n
     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
     * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1].i32: whether to turn pages by group. \n
     *
     * @since 19
     */
    NODE_SWIPER_AUTO_FILL,

    /**
     * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
     *
     * @since 20
     */
    NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Swiper</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.i32: whether to paginate by group. The value <b>0</b> means to paginate by individual child elements,
     * and <b>1</b> means to paginate by groups of child elements displayed within the viewport.
     * The default value is <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].i32: whether to paginate by group. \n
     *
     * @since 22
     */
    NODE_SWIPER_ITEMFILLPOLICY = 1001024,

    /**
     * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
     * property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     * \n
     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     *c
     */
    NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
    (header of the list item group.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     *
     */
    NODE_LISWT_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
    /**
    (footer of the list item group. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     *
     */
    NODE_LIS%T_ITEM_GROUP_SET_FOOTER,
    /**
    (style of the divider for the list items. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the divider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32: distance between the divider and the start of the list, in vp.\n
     * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the divider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32: distance between the divider and the start of the list, in vp.\n
     * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_DIVIDER,

    /**
     * @brief Set the default spindle size for the ListItem Group subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */
    NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,

    /**
   (ist item group adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .object: {@link ArkUI_NodeAdapter} objebct. \n
    *
    * @since 15
    */
    NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,

    /**
    (horizontal alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
     * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
     *
     */
    NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
    /**
     * @brief Define(vertical alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
     */
    NODE_COLUMN_JUSTIFY_CONTENT,

    /**
     * @brief Defines Row constructor options or Column constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The space of child components, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The space of child components, in vp.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_SPACE,

    /**
     * @brief Defines whether the arrangement of child components along the main axis in a Column or Row is reversed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_REVERSE,

    /**
    (vertical alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}.\n
     * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}. \n
 Z    *
     */
    NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
    /**
    (horizontal alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
 2    */
    NODE_ROW_JUSTIFY_CONTENT,

    /**
    (flex attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
     * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
     * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
     * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
     * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
     * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
     * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
     * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
     * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which flex items are arranged. \n
     * .value[1].i32: how the flex items are wrapped. \n
     * .value[2].i32: alignment mode along the main axis. \n
     * .value[3].i32: alignment mode along the cross axis. \n
     * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
     *
     */
    NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,

    /**
     * @brief Defines Row constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     *
     * @since 23
     */
    NODE_FLEX_SPACE,

    /**
     * @brief Sets whether the component is being refreshed.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
     * @brief Sets the custom content in the pull-down area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@Link ArkUI_NodeHandle}.
     *
     */
    NODE_REFRESH_CONTENT,
    /**
     * @brief Set the pull-down hand coefficient.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     *
     */
    NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
    /**
     * @brief Sets the pull-down offset that initiates a refresh.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     *
     */
    NODE_REFRESH_OFFSET = 1009003,
    /**
     * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
     * <b>false</b> means the opposite.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
     * <b>0</b> means the opposite.
     *
     */
    NODE_REFRESH_PULL_TO_REFRESH = 1009004,
    /**
     * @brief Sets the maximum pull-down distance for refreshing.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     *
     * @since 20
     */
    NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005,
    /**
     * @brief Sets whether the pull-up gesture cancels refresh.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b> means the opposite. Default value: <b>1</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b> means the opposite.
     *
     * @since 23
     */
    NODE_REFRESH_PULL_UP_TO_CANCEL_REFRESH = 1009006,

    /**
    (main axis direction of the <b><WaterFlow></b> component layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     *
     */
    NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,

    /**
     * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE,

    /**
     * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_WATER_FLOW_ROW_TEMPLATE,

    /**
     * @brief Sets the gap between columns.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_GAP,

    /**
     * @brief Sets the gap between rows.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *3
     */
    NODE_WATER_FLOW_ROW_GAP,

    /**
    (water flow section configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: An index calculated from 0 is converted to an integer,
     * indicating that you want to start changing the position of the group.
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     *
     */
    NODE_WATER_FLOW_SECTION_OPTION,

    /**
    * @brief Defines (water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_WATER_FLOW_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the water flow adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * value[0].i32：number of cached items in the water flow adapter. \n
    * .value[1]?.i32：whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the water flow adapter. \n
    * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    */
    NODE_WATER_FLOW_CACHED_COUNT,

    /**
     * @brief Set the custom display component at the end of the waterfall flow component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     */
    NODE_WATER_FLOW_FOOTER,

    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. This parameter is optional, default value is 0.\n
     * .value[2].i32: Specify the alignment of the sliding element with the current container, The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>.
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top.
     * This parameter is supported since API version 23. \n
     *
     */
    NODE_WATER_FLOW_SCROLL_TO_INDEX,

    /**
     * @b(size constraints to apply to water flow items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .valueh[3].f32: maximum height, in vp.\n
     *
     */
    NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,

    /**
    (ode of the <b><WaterFlow></b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * @since 18
     */
    NODE_WATER_FLOW_LAYOUT_MODE,

    /**
     * @brief Defines whether the <b>WaterFlow</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_WATER_FLOW_SYNC_LOAD = 1010012,

    /**
     * @brief Specifies the responsive column layout policy for the <b>WaterFlow</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1010013,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>WaterFlow</b> container.
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>WaterFlow</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is9 enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *W%"NODE_WATER_FLOW_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1010014,

    /**
     * @brief Set the auxiliary line in the RelativeContaine container, supporting property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,

    /**
     * @brief Sets the barrier within the RelativeContaine container and supports property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Barrier within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_BARRIER,

    /**
     * @brief Sets the number of columns in the grid layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
     * @brief Sets the number of rows in the grid layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_GRID_ROW_TEMPLATE,

    /**
     * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     */
    NODE_GRID_COLUMN_GAP,

    /**
     * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_GRID_ROW_GAP,

    /**
   (grid adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_GRID_NODE_ADAPTER,

    /**
    * @brief Sets the number of cached items in the grid adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display.
    * This parameter is optional, default value is 0. [since 26.0.0]\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display. [since 26.0.0]
    */
  &  NODE_GRID_CACHED_COUNT,

    /**
   (focus wrap mode for the <b>Grid</b> component.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    *
    * @since 20
    */
    NODE_GRID_FOCUS_WRAP_MODE = 1013006,

    /**
     * @brief Defines whether the <b>Grid</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_GRID_SYNC_LOAD = 1013007,

    /**
     * @brief Specifies the alignment of <b>GridItem</b> components in the parent <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \n
     * The default value is <b>GRID_ITEM_ALIGNMENT_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {j@link ArkUI_GridItemAlignment} enum. \n
     *
     * @since 22
     */
    NODE_GRID_ALIGN_ITEMS = 101300%@brief Specifies the layout options of the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object: layout options, with the parameter format of {@link ArkUI_GridLayoutOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: current {@link ArkUI_GridLayoutOptions} object. \n
     *
     * @since 22
     */
    NODE_GRID_LAYOUT_OPTIONS = 1013009,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_GRID_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1013010,

    /**
     * @brief Specifies whether to enable edit mode for the <b>Grid</b> component.
     * In edit mode, <b>GridItem</b> components can be dragged through the <b>NODE_GRID_ON_ITEM_DRAG_START</b> event.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. \n
     *
     * @since 23
     */
    NODE_GRID_EDIT_MODE = 1013011,

    /**
     * @brief Specifies whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b>
     * container. This attribute can be set, reset, and obtained as required through APIs.
     * Animations are supported only in scrolling mode (when either <b>NODE_GRID_ROW_TEMPLATE</b> or
     * <b>NODE_GRID_COLUMN_TEMPLATE</b> is set, but not both). Drag animations are only supported in regularly sized
     * grid layouts; scenarios involving spanning across rows or columns are not supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the drag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. \n
     *
     * @since 23
     */
    NODE_GRID_DRAG_ANIMATION = 1013012,

    /**
     * @brief Specifies whether to enable mouse-based multi-selection in the <b>Grid</b> container. This attribute can
     * be set, reset, and obtained as required through APIs. When enabled, mouse-based multi-selection within the
     * <b>Grid</b> area triggers the <b>NODE_GRID_ITEM_ON_SELECT</b> event on <b>GridItem</b> components.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable mouse-based multi-selection.
     * <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based multi-selection. Default value:
     * <b>0</b>.\n \n Format of the return value {@link ArkUI_AttributeItem}:\n .value[0].i32: whether to enable
     * mouse-based multi-selection. <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based
     * multi-selection. \n
     *
     * @since 23
     */
    NODE_GRID_MULTI_SELECTABLE = 1013013,
  
    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an animation when sliding to the target element, where
     * 1 indicates an animation and 0 indicates no animation. This parameter is optional. default value is 0. \n
     * .value[2].i32: Specify the alignment of the target element with the current container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_AUTO</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>. 
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top. \n
     *
     * @since 23
     */
    NODE_GRID_SCROLL_TO_INDEX = 1013014,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>Grid</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_GRID_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1013015,

    /**
     * @brief Defines whether the <b>Grid</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_GRID_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_GRID_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.\n
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable.\n
     *
     * @since 26.0.0
      */8
    NODE_GRID_ENABLE_EDIT_MODE = 1013016,

    /**
    (edit mode options for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>Grid</b> component uses default multi-selection style.
     * When using default multi-selection style, <b>Grid</b> displays checkboxes after entering edit mode.
     * <b>0</b>: Do not use the default style, <b>1</b>: Use the default style. Default value: <b>1</b>
     * .value[1].i32: Whether the <b>Grid</b> component enables two-finger sliding multi-selection.
     * This parameter takes effect after registering {@link NODE_GRID_ON_EDIT_MODE_CHANGE} event callback.
     * <b>0</b>: Two-finger sliding gesture cannot make <b>Grid</b> enter edit mode, but after entering
     * edit mode through other means, single-finger sliding multi-selection in edit mode is not affected.
     * <b>1</b>: Two-finger sliding gesture can make <b>Grid</b> enter edit mode from non-edit mode and
     * perform sliding multi-selection. Default value: <b>1</b>
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>Grid</b> component uses the default multi-selection style.
     * <b>0</b>: Do not use the default style. <b>1</b>: Use the default style.
     * .value[1].i32: Whether the <b>Grid</b> component enables two-finger sliding multi-selection.
     * <b>0</b>: Disabled. <b>1</b>: Enabled.
     *
     * @since 2g%NODE_GRID_EDIT_MODE_OPTIONS = 1013017,

    /**
     * @brief Sets the style of the <b>GridItem</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     * The default value is <b>GRID_ITEM_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     *
     * @since 22
     */
    NODE_GRID_ITEM_STYLE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,

    /**
     * @brief Specifies whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. Default value: <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_SELECTABLE = 1014001,

    /**
     * @brief Sets the selected state of the <b>GridItem</b> component. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: selected state of the <b>GridItem</b> component.
     * <b>0</b>: not selected. <b>1</b>: selected. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n 
     * .value[0].i32: selected state of the <b>GridItem</b> component. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
 K    * @since 23
     */
    NODE_GRID_ITEM_SELECTED = 1014002,

    /**
   (column width of the text picker.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * ...\n
    * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * value[0].f32: percentage of total width.\n
    * value[1].f32: percentage of total width.\n
    * value[2].f32: percentage of total width.\n
    * ...\n
    * value[n].f32: percentage of total width.\n
    *
    * @since 18
    */
    NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
    /**
     * @br(disabled date range of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
     * ...,`nth start date`,`nth end date` of the disabled date range.\n
     *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: A string of dates.\n
     *
     * @since 19
     */
    NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,

    /**
     * @brief Defines whether the calendar picker marks today.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether the calendar picker marks today. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether the calendar picker marks today.\n
 Y    *
     * @since 19
     */
    NODE_CALENDAR_PICKER_MARK_TODAY = 16007,

    /**
    (want used to start EmbeddedAbility.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}.
     * The default value is <b>nullptr</b>.\n
     *
     * @since 20
     */
    NODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,

    /**
     * @brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The option for EmbeddedComponent, with parameter type {@ArkUI_ElmbeddedComponentOption}.\n
     *
     * @since 20
     */
    NODE_EMBEDDED_COMPONENT_OPTION,

    /**
    (index of the default selected item in the data selection range of the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. \n
     *
     * @since 23
     */
    NODE_PICKER_OPTION_SELECTED_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 23
     */
    NODE_PICKER_ENABLE_HAPTIC_FEEDBACK = 1018001,
    /**
     * @brief Defines whether to support scroll looping for the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b> means the opposite.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
     *
     * @since 23
     */
    NODE_PICKER_CAN_LOOP = 1018002,
    /**
     * @brief Sets the type and parameters of the selection indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     *
     * @since 23
     */
    NODE_PICKER_SELECTION_INDICATOR = 1018003,

    /**
     * @brief Sets the total number of visible items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of visible items. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32$: number of visible items. \n
     *W%"NODE_PICKER_DISPLAYED_ITEM_COUNT = 1018004,

    /**
     * @brief Sets the height of each item.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: the height of each item, in vp. \n
     * \n
     * Format of the return value {@link XArkUI_AttributeItem}: \n
     * .value[0].f32: the height of each item, in vp. \n
     *W%"NODE_PICKER_ITEM_HEIGHT = 1018005,
} ArkUI_NodeAttributeType;

/**
 * @brief Define component event max args size.
 *
 * @sinceO&#define MAX_COMPONENT_EVENT_ARG_NUM 12(+parameter type of the component callback ev({
    /** Data array object. */
    ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
} ArkUI_NodeComponentEvent;

/**
 * @b(7string type parameter used by the component callback ev(D{
    /** String. */
    const char* pStr;
} ArkUI_StringAsyncEvent;=a hybrid data structure for component events.
 *
 * @since 15!{
    /** String data */
    const char* pStr;
    /** Extended string data */
    const char* pExtendStr;
    /** Numeric data0 */
    int32_t number;
} ArkUI_TextChangeEvent;Ka struct for the text content change event of the **TextEditor** component.- l##*;

/**
 * @brief Enumerates the event type
NativeNode(E!(gesture event type.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is {@linFk ArkUI_UIInputEvent}.
     */
    NODE_TOUCH_EVENT = 0,

    /**
    (mount event.
     *
     * This event is triggered when the component is mounted and displayed. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArckUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_APPEAR,
    /**
    (unmount event.
     *
     * This event is triggered when the component is unmounted and hidden. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link AhrkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DISAPPEAR,

    /**
    (area change event.
     *
     * This event is triggered when the component's size, position, or any other attribute that may
     * affect its display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *  {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     */
    NODE_EVENT_ON_AREA_CHANGE,
    /**
    (focus event.
     *
     * This event is triggered when the component obtains the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodUeComponentEvent} does not contain parameters.
     */
    NODE_ON_FOCUS,
    /**
    (blur event.
     *
     * This event is triggered when the component loses the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCoQmponentEvent} does not contain parameters.
     */
    NODE_ON_BLUR,
    /**
    (click event.
     *
     * This event is triggered when the component is clicked. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
     * is triggered and the time when the system starts, in microseconds. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
     * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     */
    NODE_ON_CLICK,
    /**
     * @brief Defines event interception.
     *
     * This event is triggered when the component is touched. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUEI_UIInputEvent}. \n
     */
    NODE_ON_TOUCH_INTERCEPT,
    /**
    (visible area change event.
     *
     * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
     * than the threshold.
     * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
     * decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
     * callback is invoked. \n
     */
    /NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
    /**
    (event triggered when the mouse pointer is moved over or away from the component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
     * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
     * the mouse pointer is moved away from the component. \n
     */
    NODE_ON_HOVER,
    /**
     * @b(click event.
     *
     * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
     * within the component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent}X object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_MOUSE,
    /**
    (attach event.
     *
     * This event is triggered when the component is attached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompWonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_ATTACH,
    /**
    (detach event.
     *
     * This event is triggered when the component is detached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompXonentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DETACH,

    /**
    (accessibility action event.
     *
     * This event is triggered when The accessibility operation type has been set and
     * corresponding operations have been carried out. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type，the union type is
     * {@link ArkUI_AccessibilityActionType} \n
     *
     */
    NODE_ON_ACCESSIBILITY_ACTIONS = 13,

    /**
     * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
     *
     * This event is triggered when a drag operation is about to start on a draggable item. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
     */
    NODE_ON_PRE_DRAG = 14,
    /**
     * @brief Called when the user starts to drag an ite
     *
     * A drag operation is recognized only when the dragged item is moved far enough. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_START = 15,
    /**
     * @brief Called when a dragged item enters the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_ENTER = 16,
    /**
     * @brief Called  when a dragged item moves in the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     *    {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_MOVE = 17,
    /**
     * @brief Called when a dragged item leaves the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_LEAVE = 18,
    /**
     * @brief Called when a dragged item is dropped on the current component.
     * The component can obtain the drag data for processing through the callback.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DROP = 19,
    /**
     * @brief Called when a drag operation ends.
     * The drag source can obtain the drag result by registering this callback.
     *
     * A drag operation ends when the dragged item is released.
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     T* {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_END = 20,
    /**
    (event triggered when a key event occurs.
     *
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 14
     */
    NODE_ON_KEY_EVENT = 21,
    /**
    (event triggered before the input method responds to the key action.
     *
     * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
     * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
     * and no longer triggered.
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
   @  * @since 14
     */
    NODE_ON_KEY_PRE_IME = 22,
    /**
    (event triggered when the bound component receives a focus axis event after gaining focus.
     *
     * The event callback is triggered by interactions with a joystick and a focused component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 15
     */
    NODE_ON_FOCUS_AXIS = 23,

    /**
     * @brief Dispatch key event on the component node.
     *
     * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
     * children. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @sin=ce 15
     */
    NODE_DISPATCH_KEY_EVENT = 24,

    /**
    (event triggered when the bound component receives an axis event.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 17
     */
    NODE_ON_AXIS = 25,

    /**
    (event triggered when the bound component is clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}.  \n
     *
     * @since 18
     */
    NODE_ON_CLICK_EVENT = 26,

    /**
    (event triggered when the mouse pointer hovers over or moves away from a component.
     *
     * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     *
     *@since 17
     */
    NODE_ON_HOVER_EVENT = 27,

    /**
     * @brief Sets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
     *
     * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
     * less than the threshold. Before registering the callback, you must configure the threshold and update interval
     * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
     * a decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
     * when othis callback is invoked. \n
     *
     * @since 17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 2%(hover event.
     * 
     * The event is triggered when the pointer is hovered by a pen device.
     * within the component. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputTEvent} object. \n
     * @since 15
    */
    NODE_ON_HOVER_MOVE = 29,

    /**
    (size change event.
     *
     * The event will be triggered when the component size changes.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. 
     * {@link ArkUI_NodeComponentEvent} contains four parameters:
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: the width of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: the height of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the width of the new rectangle.
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: the height of the new rectangle.
D     * @since 21
     */
    NODE_ON_SIZE_CHANGE = 30,

    /**
    (coasting axis event.
     *
     * The event is triggered when user swipes with two fingers on the touchpad, the system constructs
     * sliding events based on the speed at the moment the fingers are lifted, according to a certain
     * decay curve. You can listen for such events to handle the flick effect immediately after the
     * regular axis events. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object through {@link OH_ArkUI_NodeEvent_GetInputEvent}.
     * And the {@link ArkUI_CoastingAxisEvent} object can be obtained from the {@link ArkUI_UIInputEvent}
     * object through {@link OH_ArkUI_UIInputEvent_GetCoastingAxisEvent}. \n
     *
     * @since 22
 :    */
    NODE_ON_COASTING_AXIS_EVENT = 31,

    /**
    (pre-touch test of sub component in touch events. Called to specify how to perform the touch test on the children of this component.
     * 
     * The event is triggered when the component is touched. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_TouchTestInfo} object. \n
     * @since 22
    */
    NODE(_ON_CHILD_TOUCH_TEST = 32,

    /**
    (crown event.
     * This event is triggered when the crown is rotated. \n
     * When the event callback occurs, the {@link ArkZUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n&0*/
    NODE_ON_DIGITAL_CROWN = 33,

    /**
    (event is triggered when the <b>ARKUI_NODE_CUSTOM</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the f"rame scrolling, measured in px. \n&9*/
    NODE_ON_CUSTOM_OVERFLOW_SCROLL = 34,

    /**
    (event is triggered when the <b>ARKUI_NODE_STACK</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the fr!ame scrolling, measured in px. \n&8*/
    NODE_ON_STACK_OVERFLOW_SCROLL = 35,

    /**
    (event triggered when the component is focused and need to decide whether softkeyboard is needed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     *
     * @return Whether softkeyboard is needed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return valu]e indicates whether softkeyboard is needed.
     * <b>0</b>: not needed. <b>1</b>: needed. \n&NODE_ON_NEED_SOFTKEYBOARD = 36,

    /**
     * @brief This callback is invoked when the events and gestures on this node and
     * higher-priority nodes are collected. \n
     * This callback is used to intervene in the collection result of events and gestures. \n
     * 
     * When the event callback occurs, the {@link ArkUI_GestureCollectInterceptInfo} object can be obtaine4d from the
     * {@link ArkUI_NodeEvent} object. \nW%"NODE_ON_GESTURE_COLLECT_INTERCEPT = 37,

    /**
     * @brief Triggers onDetectResultUpdate callback
     * when the text is set to TextDataDetectorConfig and recognized successfully.
     *
     * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
     * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
     * {@link ArkUI_StringAsyncEvent}.\n
     * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>：Indicates the result of text recognition, in Json format.\n
     *
     */
    NODE_TEXT_ON_DHETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    (ong press event for span.
     *
     * The event is triggered when the span is long pressed.
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputEvent} object. \n
     * @since 20?
     */
    NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,

    /**
    (event triggered when the text selection position changes.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b]>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *W%"8NODE_TEXT_ON_TEXT_SELECTION_CHANGE = 1002,

    /**
    (event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *W%"'NODE_TEXT_ON_COPY = 1003,

    /**
    (event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateYs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *W%",NODE_TEXT_ON_WILL_COPY = 1004,

    /**
    (image loading success event.
     *
     * This event is triggered when an image is successfully loaded or decoded. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
     * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
     * x-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
     * y-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
     */
    NODE_IMAGE_ON_COMPLETE 5= MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
    (image loading failure event.
     *
     * This event is triggered when an error occurs during image loading. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
     * 401: The image could not be obtained because the image path is invalid. \n
     * 103101: The image format is not suppo6rted. \n
     */
    NODE_IMAGE_ON_ERROR,
    /**
    (SVG animation playback completion event.
     *
     * This event is triggered when the animation playback in the loaded SVG image is complete. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_IMAGE_ON_SVG_PLAY_FINISH,
    /**
     * @brief Defines image download process event.
     *
     * This event is triggered when downloading webpage images from page components.\n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
     * <b>ArkUI_NodeComponentEvent.data[1].u32</gb>: the total number of bytes to download. \n
     */
    NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
    /**
    (event triggered when the toggle status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
     *
     */
P    NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    (event triggered when the text input content changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
     *
     */
    NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_/SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
    (event triggered when the Enter key of the text input method is pressed.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
:     *
     */
    NODE_TEXT_INPUT_ON_SUBMIT,
    /**
    (event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</bL>: text that is cut.
     *
     */
    NODE_TEXT_INPUT_ON_CUT,
    /**
    (event triggered when the paste button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</bH>: allowed. \n
     *
     */
    NODE_TEXT_INPUT_ON_PASTE,
    /**
    (event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_INPUT(_ON_TEXT_SELECTION_CHANGE,

    /**
    (event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_INPUT_ON_EDIT_CHANGE,

    /**
      * @brief textInput This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter
      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *C
      */
    NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,

    /**
    (event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,

    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_INPUT_ON_CONTENT_SCROLL,

    /**
    (event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    17<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEbvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,

    /**
    (event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  5  NODE_TEXT_INPUT_ON_DID_INSERT = 7010,

    /**
    (event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    17<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoedeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,

    /**
    (event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_T-EXT_INPUT_ON_DID_DELETE = 7012,

    /**
    (event triggered when content (including preview text) changes in the <b>TextInput</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
     *
     * @since 15
M     */
    NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,

    /**
    (event triggered before content changes
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
     * 
     * @since 20
     */
    NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,

    /**
    (event triggered when the copy button on the pasteboard, which displays when text is
     * selected, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *W%"-NODE_TEXT_INPUT_ON_COPY = 7015,

    /**
    (event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicateYs whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *W%"2NODE_TEXT_INPUT_ON_WILL_COPY = 7016,

    /**
    (event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whTether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *W%"1NODE_TEXT_INPUT_ON_WILL_CUT = 7017,

    /**
    (event triggered when the input in the text box changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
     *
     */
    NODE_TEXT_AREA_ON_CHANGE = MAX_N2ODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
    (event triggered when the paste button on the pasteboard, which displays when the text box is
     * long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</bG>: allowed. \n
     *
     */
    NODE_TEXT_AREA_ON_PASTE,
    /**
    (event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_AREA_&ON_TEXT_SELECTION_CHANGE,
    /**
    (event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_AREA_ON_CONTENT_SCROLL,

    /**
     * (event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
 >    *
     */
    NODE_TEXT_AREA_ON_EDIT_CHANGE,

    /**
    (event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
     *
     * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
     *
     */
    NODE_TEXT_AREA_ON_SUBMIT,

    /**
      * @brief textArea This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
      * {@link ArkUI_NodeComponentEvent}.\n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *
      */
    NODE_TEXT_AREA_%ON_CONTENT_SIZE_CHANGE,

    /**
    (event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    17<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEQvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_INSERT = 800%(event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
  4  NODE_TEXT_AREA_ON_DID_INSERT = 8009,

    /**
    (event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    17<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoddeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_DELETE = 8010,

    /**
    (event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_T,EXT_AREA_ON_DID_DELETE = 8011,

    /**
    (event triggered when content (including preview text) changes in the <b>TextArea</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
     *
     * @since 15
    H */
    NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,

    /**
    (event triggered before content changes.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
     *
     * @since 20
     */
    NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,

    /**
     * @(event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *W%",NODE_TEXT_AREA_ON_COPY = 8014,

    /**
    (event triggered before copying text.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates wVhether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *W%"1NODE_TEXT_AREA_ON_WILL_COPY = 8015,

    /**
    (event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     *W%"+NODE_TEXT_AREA_ON_CUT = 8016,

    /**
    (event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whTether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *W%"0NODE_TEXT_AREA_ON_WILL_CUT = 8017,

    /**
    (event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
     */
    NODE_CHECKBOX_EVENT_ON_CHANGE = M6AX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
    (event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
     */
    NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_6NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,

    /**
    (event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
     */
    NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,

    /**
     * @brief De(
event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     */
    NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,

    /**
     * @b(event triggered when an item is selected and scrolling has stopped in the
     * <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 14
     */
    NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,

  
  /**
    (event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
     * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
     */
    NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_:NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,

    /**
    (event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
     */
    NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_,SCOPE_NUM * ARKUI_NODE_SLIDER,

    /**
    (event callback function triggered when an object is dragged or clicked by ARKUI_NODE_RADIO.
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
     * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
     */
   R NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,

    /**
    (event callback function triggered when the animation starts to play.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
    /**
    (event callback function triggered when the animation playback is paused.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponenktEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
    /**
    (event callback function triggered when the animation playback is repeated.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
    /**
     * @brief Defines(event callback function when the animation playback returns to the initial state.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
    /**
     * @brief (event callback function triggered when the animation playback is complete or stopped.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
    
    /**
     (callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
     * or checkbox changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * <b>ArkUI_StringAsyncEvent.pStr</b>
     * Name: The names of the selected checkboxes;
     * Status:
     * 0: All checkboxes are selected.
     * 1: Some checkboxes are selected.
     * 2: No checkboxes are selected. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief Event triggered when the selection or cursor position in the **TextEditor** component changes.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameters:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: start index of the bselection.
     * <br>**ArkUI_NodeComponentEvent.data[1].i32**: end index of the selection.
     *&NODE_TEXT_EDITOR_ON_SELECTION_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief Event triggered when the first initialization of the **TextEditor** component is complete.
     * <br>When the event callback occurs, the union typZe in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     *&NODE_TEXT_EDITOR_ON_READY,

    /**
     * @brief Event triggered when the **TextEditor** component pastes content.
     * <br>The system determines whether to intercept the default behavior of the component based on the return value
     * of the callback function.
     * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: intercept.
     *&NODE_TEXT_EDITOR_ON_PASTE,

    /**
     * @brief Event triggered when the editing status of the **TextEditor** component changes.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameter:
     * <br>**ArkUI_NodeComponent<Event.data[0].i32**: editing status of the component.
     *&NODE_TEXT_EDITOR_ON_EDITING_CHANGE,

    /**
     * @brief Event triggered when the **Enter** key on the keyboard is pressed for the **TextEditor** component.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameter:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: type of the **Enter** key, specified using
     * {@link ArkUI_EnterKeyType}.
     * &NODE_TEXT_EDITOR_ON_SUBMIT,

    /**
     * @brief Event triggered when the **TextEditor** component cuts content.
     * <br>The system determines whether to intercept the default behavior of the component based on the return value
     * of the callback function.
     * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: intercept.&NODE_TEXT_EDITOR_ON_CUT,

    /**
     * @brief Event triggered when the **TextEditor** component copies content.
     * <br>The system determines whether to intercept the default behavior of the component based on the return value
     * of the callback function.
     * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32**: whether to intercept the default behavior of the component, with the index of **0**.
     * <br>**0**: not intercept. **1**: intercept.&NODE_TEXT_EDITOR_ON_COPY,

    /**
     * @brief Event triggered when the **TextEditor** component is about to change the content.
     * <br>This callback is triggered before any operation that causes a text content change takes effect. You can
     * determine whether to intercept the content change based on the information in the callback event.
     * <br>When the event call back occurs, you can obtain the i#} object from the
     * {@link ArkUI_NodeEvent} object by calling {@link OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent}.
 "    * <br>Then, you can use the **P$_***XXX* series APIs to obtain more information from
     * this object.
     * <br>The system determines whether the current content can be changed based on the return value of the callback
     * function.
     * <br>You can use {@link OH_ArkUI_NodeEvent_SetReturnNumberValue} to set the return value.
     * <br>**value.i32** whose **index** is set to **0** indicates whether the current content can be changed. **0**:
     * The content cannot be changed. **1**: The content can be changed.
     * @since&NODE_TEXT_EDITOR_ON_WILL_CHANGE,

    /**
     * @brief Event triggered when the **TextEditor** component changes the content.
     * <br>When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * <br>{@link ArkUI_NodeComponentEvent} contains the following parameters:
     * <br>**ArkUI_NodeComponentEvent.data[0].i32**: start index of the text range to be replaced before the text
     * changes.
     * <br>**ArkUI_NodeComponentEvent.data[1].i32**: end index of the text range to be replaced before the text changes.
     * <br>**ArkUI_NodeComponentEvent.data[2].i32**: start index of the text range of the new content after the text
     * changes.
     * <br>**ArkUI_NodeComponentiEvent.data[3].i32**: end index of the text range of the new content after the text
     * changes.
     *&-NODE_TEXT_EDITOR_ON_DID_CHANGE,

    /**
    (event triggered when the index of the currently displayed element of this
     * <b>ARKUI_NODE_SWIPER</b> instance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     */
    NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,

    /**
    (event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
     * of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-Poff velocity. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_START,

    /**
    (event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_END,

    /**
     (event triggered on a frame-by-frame basis when the page is turned by a swipe in this
     * <b>ARKUI_NODE_SWIPER</b> instance.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,

    /**
     * @brief Define the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
     * Instruction: \n
     * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
     * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
     * 2, circular scenario, set prevMargin and nextMargin attributes, \n
     * so that Swiper front and back end display the same page, the interface does not take effect. \n
     * 3. During page sliding, the ContentDidScrollCallback callback is \n
     * triggered frame-by-frame for all pages in the window. \n
     * For example, when there are two pages in the window with subscripts 0 and 1, \n
     * callbacks with index values 0 and 1 are triggered twice per frame. \n
     * 4, set the swipeByGroup parameter of the displayCount property to \n
     * true if at least one page in the same group is in the window, \n
     * A callback is triggered for all pages in the group. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
     * which is consistent with the index change in the onChange event. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
     * the start position of the Swiper spindle (selectedIndex corresponds to the start position of the page). \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis directionG. \n
     */
    NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,

    /**
    (event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently selected element. \n
     * 
S     * @since 18
     */
    NODE_SWIPER_EVENT_ON_SELECTED = 1001005,

    /**
    (event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
    Y * 
     * @since 18
     */
    NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,

    /**
    (event triggered when content in the swiper component will scroll.
     * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
     * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
     * slide forward(e.g. from index=0 to index=1). \n
     *
     * @since 15
     */
    NODE_SWIPER_EV3ENT_ON_CONTENT_WILL_SCROLL = 1001007,

    /**
    (<b>ARKUI_NODE_SWIPER</b> scroll state change event.
     * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
     * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     *
     * @since 20
     */7
    NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 100100%(event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    (event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is not triggered when the controller API is called. \n
     * 3. This event does not support the out-of-bounds bounce effect. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
     * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
     * needs to scroll based on the real-world situation and return the result in this parameter. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,

    /**
     * @brief Define the enumeration value of the pre sliding trigger event for the scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component.
     */
    NODE_SCROLL_EVENT_ON_WILL_SCROLL,
    /**
     * @brief Define the event enumeration value triggered when sliding a scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     parameter type is {@linkR ArkUI_ScrollState}. \n
     */
    NODE_SCROLL_EVENT_ON_DID_SCROLL,

    /**
    (event triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
     * and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_START,
    /**
    (event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
 1   NODE_SCROLL_EVENT_ON_SCROLL_STOP,
    /**
    (event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
     * one of the edges.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
     * component or other input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
     * <b>ArkUI_NodeComponentEven   t.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
    /**
     * @brief Define that a callback is triggered when the scrolling container component reaches the start position.
     * Condition for triggering the event: \n
     * Triggered when the component reaches the start position. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_START,
    /**
     * @brief Define that a callback is triggered when the scrolling container component ends. \n
     * Condition for triggering the event: \n
     * Triggered when the component reaches the end. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_S&CROLL_EVENT_ON_REACH_END,
    /**
    (callback for when the user is about to release the drag on the scrollable container component.
     *
     * This event is triggered when the user is about to release the drag on the scrollable container component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releases the drag, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
    /**
     * @brief Defines(callback for the <b>Scroll</b> component's zoom event,
     * triggered at the end of each frame during zooming. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current ^zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_DID_ZOOM,
    /**
    (callback for the <b>Scroll</b> component's zoom start event,
     * triggered when zooming begins. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_START,
    /**
    (callback for the <b>Scroll</b> component's zoom end event,
     * triggered when zooming ends. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_STOP,
    /**
    (callback for when the scrollable will start dragging.
     *
     * This event is triggered when the scrollable will start dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROL6L_EVENT_ON_WILL_START_DRAGGING = 1002013,
    /**
    (callback for when the scrollable did end dragging.
     *
     * This event is triggered when the scrollable did end dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether start fling animation. \n
     *
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_DRAGGING = 1002014,
    /**
    (callback for when the scrollable will start fling.
     *
     * This event is triggered when the scrollable will start fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVEN-T_ON_WILL_START_FLING = 1002015,
    /**
    (callback for when the scrollable did end fling.
     *
     * This event is triggered when the scrollable did end fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_D%ID_STOP_FLING = 1002016,
    /**
    (enumerated values of the event triggered, \n
     * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
     * Condition for triggering the event: \n
     * This method is triggered once during list initialization. \n
     * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
     * the first child component in the region. \n
     * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
     * the last child component in the region. \n
     * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
     * the subcomponent in the middle of the area. \n
     */
    NODE_LIST_ON_SCROLL_INDEX =3 MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
    (enumerated values of the event triggered
     * before the sliding of the ARKUI_NODE_LIST component. \n
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_LIST_ON_WILL_SCROLL,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_LIST component is flicked.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32N: Current sliding state. \n
     */
    NODE_LIST_ON_DID_SCROLL,

    /**
    (event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the list is initialized and when the index of the first child component or the
     * next child component in the list display area changes.
     * During index calculation, the list item, header of the list item group, and footer of the list item group each
     * are counted as a child component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains six parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
     * in the list item group.
     * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
     * list item group.
     * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
     *
     * @since 15
     */
    NODE_L3IST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,

    /**
    (edit mode state change event of the <b>List</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_LIST_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: not in edit mode. <b>1</b>: in edit mode.
     *
     ]%6NODE_LIST_ON_EDIT_MODE_CHANGE = 1003004,

    /**
    (selected state change event of the <b>ListItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected.
     *W%"SNODE_LIST_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
    (event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
     */
   R NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    (event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeaComponentEvent} does not contain parameters:\n
     */
    NODE_REFRESH_ON_REFRESH,

    /**
    (event that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
     */1
    NODE_REFRESH_ON_OFFSET_CHANGE,

    /**
    (event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
     * input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling.
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_WATER_FLOW_ON_DID_SCROLL,
    /**
     * @brief (enumerated values of the event triggered,
     * when the subcomponent of the start position or end position displayed in the current waterfall changes.
     * Condition for triggering the event: \n
     * This event is triggered when the index value of the \n
     * first or last subcomponent in the waterfall display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
     * start position of the currently displayed WaterFlow. \n
     * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
     * the end position of the currently displayed waterfall. \n
     */
    NODE_WATER_FLOW_ON_SCROLL_INDEX,

    /**
     * @brief Defines (event triggered when a child component enters or leaves the grid display area.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the grid is initialized and when the index of the first or \n
     * last child component in the grid display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the grid display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the grid display area. \n
     *
     * @since 22
   X  */
    NODE_GRID_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
    (event triggered when the grid is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: scroll source. The6 parameter type is {@link ArkUI_ScrollSource}. \n
    17one or no number to indicate the actual amount by which the scroll component scrolls.
     *
     * @since 22
     */
    NODE_,GRID_ON_WILL_SCROLL = 1013001,

    /**
    (event triggered when the grid scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
     *
     H* @since 22
     */
    NODE_GRID_ON_DID_SCROLL = 1013002,

    /**
    (event triggered at the end of each frame layout of the <b>ARKUI_NODE_GRID</b> component,
     * which is used to set the position and length of the scrollbar.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.i32 at index 0:offset of the first visible grid item,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: offset of the first visible item relative to the grid's display starting position, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * @return Information about the scrollbar position and length. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.f32 at index 0: total offset of the grid content relative to the display area, in px. \n
     * value.f32 at index 1: total length of the grid content, in px. \n
     *U
     * @since 22
     */
    NODE_GRID_ON_SCROLL_BAR_UPDATE = 1013003,

    /**
    (<b>Grid</b> component's child drag start event.
     *
     * This event is triggered under the following scenarios: \n
     * 1. <b>NODE_GRID_EDIT_MODE</b> is set to <b>1</b>. \n
     * 2. The user long-presses and drags a <b>Grid</b> child component with sufficient displacement. \n
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32 at index 0: x-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: y-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32 at index 2: index of the dragged child component in the <b>Grid</b> component,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     *
     * @return Whether the drag operation is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether dragging is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_START = 1013004,

    /**
     * @brief Defines(event triggered when a dragged child component enters this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> enters the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_ENTER = 1013005,

    /**
    (event triggered when a dragged child component moves within this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> moves within the current
     * <b>Grid</b> component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child component in the current <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_'ITEM_DRAG_MOVE = 1013006,

    /**
    (event triggered when a dragged child component leaves this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> leaves the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_LEAVE = 1013007,

    /**
    (event triggered when a dragged child component is released.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> is released. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child component in the current <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: whether the dragged child component is successfully released. \n
     * <b>1</b>: The component is released within the <b>Grid</b> component's area.
     * <b>0</b>: The component is released outside the <b>G`rid</b> component's area. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DROP = 101300%(edit mode state change event of the <b>Grid</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_GRID_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: not in edit mode. <b>1</b>: in edit mode.
     *
     ]%6NODE_GRID_ON_EDIT_MODE_CHANGE = 1013009,

    /**
    (selected state change event of the <b>GridItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,
    /**
     (event triggered when an item is selected in the <b>ARKUI_NODE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 23
     */
    NODE_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
     /**
     (event triggered when an item is selected and scrolling has stopped in the
      * <b>ARKUI_NODE_PICKER</b> component.
      *
      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
      * {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
      *
      * @since 23
      */
    NODE_PICKER_EVENT_ON_SCROLL_STOP = 1018001,
} ArkUI_NodeEventType;('common structure type of a component ev.cNodeEvent ArkUI_NodeEvent;

/**
 * @brief Obtains the type of a component event.
 *
 * @param event4the componentc_Atype of the component event.
 * @since 12
 */
ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);

/**Z,Obtains the custom ID of a component event.
 *
 * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
 * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
 *
 * @param event4the componentc_Ancustom ID of the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* eveQ,PObtains the component object that triggers a component event.
 *
 * @param event4the componentc_Acomponent object that triggers the component event.
 * @since 12
 */
ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* eveQ,]Obtains input event (for example, touch event) data for a component event.
 *
 * @param event4the componentc_Apointer to the input event data.
 * @since 12
 */
ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);U,CObtains the numerical data in a component event.
 *
 * @param event4the componentc_Apointer to the numerical data.
 * @since 12
 */
ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* eveQ,AObtains the string data in a component event.
 * 
 * @param event4the componentc_Apointer to the string data.
 * @since 12
 */
ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* eveQ,Obtains the ArkUI_TextChangeEvent data from a component event.
 *
 * @param event Pointer to a component event. It cannot be nullITextChangeEvent</b> object.
 * @since 15
 */
ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* evenR,Obtains the custom data in a component event.
 *
 * This parameter is passed in {@link registerNodeEvent} and can be applied toE the service logic when the event
 * is triggered.
 *
 * @param event4the componentc_Apointer to the custom data5* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* eveQ,KObtains the numeric-type parameter of a component event.
 *
 * @param event4the component event.
 * @param index Indicates the index of the return value.
 * @param value Indicates the return value.
 * @rIerrorqAYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limitq>/DE_EVENTGthe data does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* eve$nt, int32_t index, ArkUI_NumberValue0Obtains the string-type parameter of a component event. The string data is valid only during an event
 * callback. To use it ouTtside an event callback, you are advised to copy the string data.
 *
 * @param event4^the component event.
 * @param index Indicates the index of the return value.
 * @param string4Othe string array.
 * @param stringSize Indicates the length of the string arrayIerrorqAYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limitq>/DE_EVENTGthe data does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* eve4nt, int32_t index, char** string, int32_t* stringSiz0
	6return value for a component event.
 *
 * @param event4the component event.
 * @param value Indicates the numeric-type array.
 * @param size Indicates the array length.
 * @return ReI
errorqAKNODE_EVENT_NO_RETURN} if the component event does not support return valuesq>/DE_EVENTGdata does not exist in the component event.
 * @since 12
 */
int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* e+vent, ArkUI_NumberValue* value, int32_t siz0Obtains a <b>ArkUI_TouchTestInfo</b> object from the specified <b>ArkUI_NodeEvent</b> object.
 *
 * @param {pointer} nodeEvent 4<	NodeEventF$G6ouchTestInfo</b> objectq>M<b>null</b> if the parameter passed in is invalid or is not a touch test infom2KTouchTestInfo* OH_ArkUI_NodeEvent_GetTouchTestInfo(ArkUI_NodeEvent* nodeEveQ,Obtains the text content change data of the **TextEditor** component in the component event.
 *
 * @param event Pointer to the '{@link ArkUI_NodeEvent} component eventD G6P$</b> object.
 *     Returns <b>null</b> if the input parameter is invalid or does not represent a text editor change event.
 * &? 	Y$H* OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent(ArkUI_NodeEvent* eveQ,(4dirty area flag passed in the <b>::markDirty</b> APIA=!@brief Remeasure.
     *
     * When this type of flag is specified, re-layout is triggered by default.
     */
    NODE_NEED_MEASURE = 1,

    /** Re-layout. */
    NODE_NEED_LAYOUT,
    /** Re-rendering. */
    NODE_NEED_RENDER,
} ArkUI_NodeDirtyFlag;
(custom component event typeAtypedef enum {
    /** Measure type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
    /** Layout type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
    /**
     * Draw front type.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind type.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} ArkUI_NodeCustomEventType;(*general structure of a custom component ev.&NodeCustomEvent ArkUI_NodeCustomEvent;(Vcomponent adapter, which is used for lazy loading of elements of scrollable componentsA%NodeAdapter* ArkUI_NodeAdapterHandle;(component adapter ev.[NodeAdapterEvent ArkUI_NodeAdapterEvent;

/**
 * @brief Enumerates component adapter eventsAtypedef enum {
    /** This event occurs when the component is attached to the adapter. */
    NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
    /** This event occurs when the component is detached from the adapter. */
    NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
    /** This event occurs when the adapter obtains the unique ID of the new element to add. */
    NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
    /** This event occurs when the adapter obtains the content of the new element to add. */
    NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
    /** This event occurs when the adapter removes an element. */
    NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
} ArkUI_NodeAdapterEventType;

/**
* @brief Creates a component adapter.
*
* @since 12
*/
ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();

/**
* @brief Destroys a component adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);

/**
* @brief Sets the total number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @param size3
elements.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);

/**
* @brief Obtains the total number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @returnj4total number of elements in the adapter.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);

/**
* @brief Registers an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
b* @param userData Indicates custom data.
* @param receiver Indicates the event receiver callback.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));

/**
* @brief Deregisters an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload all elements.
*
* @param handle Indicates the target component adapter.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition IndicatCes the start position of the elements to reload.
* @param itemCount3the elements to reload.
* Q>error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to remove certain elements.
*
* @param handle Indicates the target componenlt adapter.
* @param startPosition Indicates the start position of the elements to remove.
* @param itemCount3the elements to remove.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RemoveItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to insert certain elements.
*
* @param handle Indicates the target componenlt adapter.
* @param startPosition Indicates the start position of the elements to insert.
* @param itemCount3the elements to insert.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_InsertItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to move certain elements.
*
* @param handle Indicates the target component adapter.
* @param from Indicates the start position of the elements to move.
* @param to  Indicates the end position of the elements to move.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);

/**
* @brief Obtains all elements stored in the specified adapter.
*
* This API returns the pointer to the array of the elements. You need to manually release the memory data
* to which the pointer points.
*
* @param handle Indicates the target component adapter.
* @param item47the array of the elements in the adapter.
* @param size3
elements.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);

/**
* @brief Obtains the custom data passed in during registration of the specified event.
*
* @param event Indicates the target adapter event.
* @since 12
*/
void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);

/**
* @brief MObtains the event type.
*
* @param event Indicates the target adapter event.
a4event type.
* @since 12
*/
ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the element to be removed for the event to be destroyed.
*
* @param event Indicates the target adapter event.
* c4element to be removed.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the index of the element to be operated for the specified adapter event.
*
* @param event Indicates the target adapter event.
a4index of the element.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);

/**
* @brief Obtains the scrollable container node that uses the specified adapter.
*
* @param event Indicates the target adapter event.
a4scrollable container node that uses the specified adapter.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Sets the component to be added to the specified adapter.
*
* @param event IndicRates the target adapter event.
* @param node Indicates the component to be added.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);

/**
* @brief Sets the component ID to be generated.
*
* @param event Indicates the target adapter event.
* @param id Indicates the component ID to set.
a4error code.
T.I0* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);

/**
 * @brief Declares a collection of native node APIs provided by ArkUI.
 *
 * The APIs related to the native node must be called in the main thread.
 *
 * @version 1!{
    /**
     * @brief Struct version.
     *
     * @since 12
     */
    int32_t version;

    /**
     * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
     *
     * @param type Indicates %the type of component to create.
    17pointer to the created component. If the component fails to be created, NULL is returned.
     * @since 12
     */
    ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);

    /**
     * @brief Destroys the component to which the specified pointer points.
     *
     * @param node4.
     * @since 12
     */
    void (*disposeNode)(ArkUI_NodeHandle node);

    /**
     * @brief Adds a component to a parent !node.
     *
     * @param parent4$the parent node.
     * @param child4the child node.
    17error code.
    V   !;J0   +ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on
     *             BuilderNode generated nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    -DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Removes a component from its parent node.
     *
     * @param parent4$the parent node.
     * @param child4the child node.
    17error code.
    V   !;J0   +ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     * on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Inserts a component to a parent node after the speci5fied <b>sibling</b> node.
     *
     * @param parent4$the parent node.
     * @param child4%the child node.
     * @param sibling4the sibling node after which the target node is to be inserted.
     * If the value is null, the node is inserted at the start of the parent node.
    17error code.
    V   !;J0   +ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    -DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component tUo a parent node before the specified <b>sibling</b> node.
     *
     * @param parent4$the parent node.
     * @param child4%the child node.
     * @param sibling4the sibling node before which the target node is to be inserted.
     * If the value is null, the node is inserted at the end of the parent node.
    17error code.
    V   !;J0   +ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    -DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component Gto the specified position in a parent node.
     *
     * @param parent4$the parent node.
     * @param child4&the child node.
     * @param position11 to which the target child node is to be inserted. If the value is a
     * negative number or invalid, the node is inserted at! the end of the parent node.
    17error code.
    V   !;J0   +ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    -DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);

    /**
     * @brief Sets the attribute of a node.
     *
     * @param node Indicates the node whose attribute needs to be set.
     * @param attribute Indicates the type of attriDbute to set.
     * @param value Indicates the attribute value.
    17error code.
    V   !;J0   +ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * (ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);

    /**
     * @brief Obtains an attribute.
     *
     * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
     * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
     * time. Otherwise, the pointer may be overwritten by other values.
     * @param node Indicates the node whose afttribute needs to be obtained.
     * @param attribute Indicates the type of attribute to obtain.
    17attribute value. If the operation fails, a null pointer is returned.
     * @since 12
     */
    const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
     * @brief Resets an attribute.
     *
     * @param node Indicates the node whose attribute needs to be reset.
     * @param attribute Indicates the type of attribute to reset.
    17error code.
    V   !;J0   +ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * (ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
     * @brief Registers an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
     * @retur:7error code.
    V   !;J0   +ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * (ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
        int32_t targetId, void* userData);

    /**
     * @brief Unregisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);

    /**
     * @brief Registers an event receiver.
     *
     * The ArkUI framework collects component events generated during the process and calls back the events through
     * the registered event receiver. \n
     * A new call to this API will overwrite the previously registered event receiver. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
     * callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Unregisters the event receiver.
     *
     * @since 12
     */
    void (*unregisterNodeEventReceiver)();

    /**
     * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
     *
     * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
     * measuring, layout, or rendering again. In this case, you do not need to call this API.
     * @param node Indicates the node for which you want to mark as dirty area.
     * @param dirtyFlag Indicates type of dirty area.
     * @since 12
     */
    void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);

    /**
     * @brief Obtains the number of subnodes.
     *
     * @param node Indicates the target node.
     * @return the number of subnodes. If not, returns 0.
     * @since 12
     */
    uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains a subnode.
     *
     * @param node Indicates the target node.
     * @param position11 of the subnode.
    17pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);

    /**
     * @brief Obtains the first subnode.
     *
     * @param node  Indicates the target node.
    17pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains the last subnode.
     *
     * @param node Indicates the target node.
    17pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains the previous sibling node.
     *
     * @param node Indicates the target node.
    17pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains the next sibling node.
     *
     * @param node Indicates the target node.
    17pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);

    /**
     * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
     * point function registered by <b>registerNodeCustomEventReceiver</b>.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of
     * {@link ArkUI_Nod/eCustomEvent} when the event is triggered.
    17error code.
    V   !;J0   +ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * @since 12
     */
    int32_t (*registerNodeCustomEvent)(
        ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);

    /**
     * @brief Unregisters a custom event for a node.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);

    /**
     * @brief Registers a unified entry point function for custom node event callbacks.
     *
     * The ArkUI framework collects custom component events generated during the process and calls back the events
     * through the registered <b>registerNodeCustomEventReceiver</b>. \n
     * A new call to this API will overwrite the previously registered event receiver.
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Unregisters the unified entry point function for custom node event callbacks.
     *
     * @since 12
     */
    void (*unregisterNodeCustomEventReceiver)();

    /**
     * @brief Sets the width and height for a component after the measurement.
     *
     * @param node Indicates the target node.
     * @param width Indicates t9he width.
     * @param height Indicates the height.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);

    /**
     * @brief Sets the position for a component.
     *
     * @param node Indicates the target node.
     * @param positionX IndicatesK the X coordinate.
     * @param positionY Indicates the Y coordinate.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
     * @brief Obtains the width and height of a component after measurement.
     *
     * @param node Indicates the target node.
    17width and height of the component.
     * @since 12
     */
    ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains the position of a component after the layout is complete.
     *
     * @param node Indicates the target node.
    17position of the component.
     * @since 12
     */
    ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);

    /**
     * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
     *
     e* @param node Indicates the target node.
     * @param Constraint Indicates the size constraint.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);

    /**
     * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
     * @return;7error code.
    V   !;J0    * @since 12
     */
    int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
     * @brief Adds a component event callback function to a component to receive component events generated
     * by the component.
     *
     * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
     * receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the event callback function.
     * @param eventReceiver Indicates the component event callback function to add.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Removes the registered component event callback function from a component.
     *
     * @param node Indicates the component from which you want to remove the event callback function.
     * @param eventReceiver Indicates the c0omponent event callback function to remove.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Adds a custom event callback function to a component to receive custom events
     * (such as layout and drawing events) generated by the component.
     *
     * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
     * multiple event receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeCustomEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the custom event callback function.
   R  * @param eventReceiver Indicates the custom event callback function to add.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Removes a registered custom event callback function from a component.
     *
     * @param node Indicates the component from which you want to remove the custom event callback function.
     * @param eventReceiver I;ndicates the custom event callback function to remove.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
        void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Saves custom data on the specified component.
     *
     * @param node Indicates the component on which the custom data will be saved.
     * @param userData Indicates the custom data to be saved.
     *37error code.
    V   !;J0    * @since 12
     */
    int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);

    /**
     * @brief Obtains the ckustom data saved on the specified component.
     *
     * @param node Indicates the target component.
    17custom data.
     * @since 12
     */
    void* (*getUserData)(ArkUI_NodeHandle node);

    /**
     * @brief Sets the unit for a component.
     *
     * @param node Indicates the component for which you want to set the unit.
     * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
     * The default value is <b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
    17error code.
    V   !;J0    * @since 12
     */
    int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);

    /**
      S* @brief Get the parent node.
      *
      * @param node target node object.
     17pointer of the component, if not return NULL
      * @since 12
      */
    ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);

    /**
    * @brief Uninstall all child nodes from the parent component.
    *
    * @param parent target node object.
   17error code.
   V  !;J0   * @since 12
    */
    int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
} ArkUI_NativeNodeAPI_1;

/**
* @brief ObtainsW the size constraint for measurement through a custom component event.
*
* @param event4the custom component event.
a4pointer to the size constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the expected position of a component relative to its parent component in theB layout phase through a
* custom component event.
*
* @param event4the custom component event.
a4expected position relative to the parent component.
* @since 12
*/
ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the drawing context through a custom component event.
*
* @param event In4the custom component event.
a4drawing context.
* @since 12
*/
ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);K

/**
* @brief Obtains the ID of a custom component event.
*
* @param event4the custom component event.
a4ID of the custom component event.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* eventc);

/**
* @brief Obtains custom event parameters through a custom component event.
*
* @param event4the custom component event.
a4custom event parameters.
* @since 12
*/
void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);

/**
* @briefN Obtains a component object through a custom component event.
*
* @param event4the custom component event.
a4component object.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);

/**
* P@brief Obtains the event type through a custom component event.
*
* @param event4the custom component event.
a4type of the custom component event.
* @since 12
*/
ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);

/**
* @brief Obtains the measurement information of a custom span through a custom component event.
*
* @pa	ram event4`the custom component event.
* @param info Indicates the measurement information to be obtained.
a4#T.I0*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);

/**
* @brdief Sets the measurement metrics of a custom span through a custom component event.
*
* @param event4Wthe custom component event.
* @param metrics Indicates the measurement metrics to set.
a4#T.I0*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);

/**
* @brief Obbtains the drawing information of a custom span through a custom component event.
*
* @param event4Wthe custom component event.
* @param info Indicates the drawing information to obtain.
a4#T.I0*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ALrkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
    ArkUI_NodeCustomEvent* event info);(node content event type.
 * 
 * @since 12
 */
typedef enum {
    /** Defines the attach event. */
    NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
    /** Defines the detach event. */
    NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
} ArkUI_NodeContentEvJentType;

/**
 * @brief Enumerates the inspector errovjr codes.
 * @since 158!#@error Success.
     */
    ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
    /**
     * @error Invalid parameter.
     */
    MARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
} ArkUI_InspectorErrorCode;(*general structure of a node content event.'(NodeContentEvent ArkUI_NodeContentEvent;(callback function of a node content event.
 * @since 12
 */
typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* eveQ,Dregister a callback function to a node content.
 *
 * @param content4Mthe node content instance.
 * @param callback Indicates the callback functionIerrorqA02
 */
int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);

/**
F * @brief Obtains the type of a node content event.
 *
 * @param event4the node contentc_Atype of the node content event.
 * @since 12
 */
ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* eveQ,VObtains the node content object that triggers a node content event.
 *
 * @param event4the node contentc_Anode content object that triggers the node content event.
 * @since 12
 */
ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_Ge.tNodeContentHandle(ArkUI_NodeContentEvent* eveQ,Saves custom data on the specified node content.
 *
 * @param content Indicates the node content on which the custom data will Bbe saved.
 * @param userData Indicates the custom data to be savedIerrorqA02
 */
int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);

/**
 * @brief Obtains the cusctom data saved on the specified node content.
 *
 * @param content Indicates the target node contenQAcustom data@* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle conteQ,2Add a node to a node content.
 *
 * @param content4)the node content instance.
 * @param node4the node07errorqA08NODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_AddNode(5ArkUI_NodeContentHandle content, ArkUI_NodeHandle nod07remove a node from a node content.
 *
 * @param content4)the node content instance.
 * @param node4the node07errorqA0c2
 */
int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle nod0Kinsert a node into a node content at a given position.
 *
 * @param content4)the node content instance.
 * @param node4the node
 * @param position11 for inserting the node07errorqA08NODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12
 */
int32_t OH_ArkUI_NodeContent_InsertNoGde(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t posi	8size of the component layout area.
 * The layout area size does not include graphic variation attributes such as scaling.
 *
 *j @param node ArkUI_NodeHandle pointer.
 * @param size The drawing area size of the component handle, in pxIerrorqA0X2
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* siz0Obtain the position of the component layout area relative to the parent component.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param localWOffset The offset value of the component handle relative to the parent component, in pxIerrorqA0e2
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffseqObtain the position of the component layout area relative to the window.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param globalOffset ThDe offset value of the component handle relative to the window, in pxIerrorqA0n2
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffseqObtain the position of the component layout area relative to the screen.
 * The relative position of the layout area does not include graphic variation attributes, such as translation.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param screenOffset ThDe offset value of the component handle relative to the screen, in pxIerrorqA0n2
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffseqObtains the offset of a component relative to the global display.
 * The relative position does not count in transformation att,ributes, such as translate.
 *
 * @param nodPFArkUI_NodeHandle</b> representing the component.
 * @param offset Offset of the component relative to the global display, in px.
 * @return R+1M1`620
 */
int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offset);

/**
 * @brObtain the position of the component in the window, including the properties of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset value of the component handle itself,
 * parent compo nents, and ancestor nodes, in pxIerrorqA02
 */
int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/*xObtain the position of the component on the screen, including the attributes of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset value of the component handle itself,
 * parent compo nents, and ancestor nodes, in pxIerrorqA02
 */
int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/*xAdd the custom property of the component. This interface only works on the main thread.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property. Passing null pointers is not allowed.
 * @param value The value of the custom property. Passing null pointers is not allowed.
 * @since 13
 */
void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle# node, const char* name, const char0Remove the custom property of the component.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom nproperty.
 * @since 13
 */
void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* nam08value of the custom property of the component.
 *
 * @param node ArkUI-NodeHandle pointer.
 * @param name The name of the custom attribute.
 * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
 * @return Error code.
 *        1#success.
 *        1`Function+$`NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** hand1k8Yparent node to obtain the component nodes created by ArkTs.
 *
 * @param node Target nodeD the pointer of the component.
 * @since 14
 */
ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);0Retrieve all active child nodes of a node. Span will not be counted in the children.
 *
 * @param head Pass in the node that needs to be obtained.
 * @param handle The structure corresponding to the sub node information of the head node.
 * @return Error code.
 *        1#success.
 *        1`Function+$VNodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** hand1kIRetrieve the root node of the current page.
 *
 * @param node Target nodeD the pointer of the component.
 * @since 14
 */
ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle nod0QRetrieve whether the component is labeled by C-API.
 *
 * @param node Target nodeD whether the node is a Tag created by C-API,
 *         true represents created by C-API, false represents not created by C-APIN.
 * @since 14
 */
bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle nod08+type of node.
 *
 * @param node Target nodeD the type of the node.
 *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
 * @*NodeUtils_GetNodeType(ArkUI_NodeHandle nod0OGet info of the window to which the node belongs.
 *
 * @param node Target node*info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
 * @return Error code.
 *         {@link ARKUI1success.
 *        1`Function+.
 *        1DE_NOT_ON_MAIN_TREE} The node is not mounted.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** infoWObtains the index of the current FrameNode's first child node which is on the tree.
 *
 * @param node Indicates the target nodeM.
 * @param index The index of the subnode.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);

/**
 * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
 *
 * @param node Indicates the targeSt node.
 * @param index the index of the subnode.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);

/**
 * @brief Obtains a subnode by position with the expand mode.
 *
 * @param node Indicates the target node.
 * @param position Indic71 of the subnode.
 * @param subnode The pointer to the subnode.
 * @param expandMode Indicates the expand mode. {@link ArkUI_Exp+andMode}.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
    ArkUI_NodeHan dle* subnode, uint32_t expandMod0Collapse the ListItem in its expanded state.
 *
 * @param node Node objects that need to be registered for events.
 * @param userData Custom event parameters are carried back in the callback parameter when the event is triggered.
 * @param onFinish The cballback triggered after the completion of the folding animation.
 * @return Error code.
 *        1#Success.
 *        1`Function+.
 *        1ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
 * @since 12
 */
int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));

/**
* @brief Obtain the UIContext pointer to the page where the node is located.
*
* @param node The node.
* @return The UIContext pointer.
*         If a null pointer is returned, it may be because the node is empty.
* @since 12
*/
ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);

/**
* @brief The event called when the system color mode changes.
*        Only one system color change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the custom data to bTe saved.
* @param onColorModeChange Callback Events.
* @return Error code.
*        1#Success.
*        1`Function+.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));

/**
* @brief Unregister the event callback when the system color mode changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);

/**
* @brief The event called when the system font style changes.
*        Only one system font change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the cusatom data to be saved.
* @param onFontStyleChange Callback Events.
* @return Error code.
*        1#Success.
*        1`Function+.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));

/**
* @brief Unregister the event callback when the system font style changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle nod0TRetrieve the font size value for system font change events.
 *
 * @param event Indic`current system font changecUpdated system font size scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontSizeSc)ale(const ArkUI_SystemFontStyleEvent* eveQ,ZRetrieve the font thickness values for system font change events.
 *
 * @param event Indic`current system font changecThe updated system font thickness scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetF3ontWeightScale(const ArkUI_SystemFontStyleEvent* ev`Hthe node handle by id.
 *
 * @param id The id of the target node handle.
 * @param node The handle of target node handle.
 * @return Error code.
 *        1#success.
 *        1`Function+m.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* nod0Move the node handle to target parent node as child.
 *
 * @param node The node handle of the node to move.
 * @param target_parent The node handle of target parent.
 * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
 *              node is moved to the end of the target parent node.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 *        13CAPI_INIT_ERROR} if the CAPI init error.
 *        1DE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 18
 */
int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);

/**
 * @brief Triggers node updates in the current frame.
 * When node attributes are modified after the current frame's build phase,
 * the node updates will be deferred to the next
 * frame. This function forces immediate node updates within the current frame to
 * ensure rendering effects are applied synchronoSusly.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *        1#Success.
 *        1`Function+Z.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_InvalidateAttributes(ArkUI_NodeHandle nod0Ethe cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-languOage option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);	~<	ross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-language oJption {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 * @since 15
 */
int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);	Registers a callback for node when layout is completed.
 *
 * @param node Indicates the target node.
 * @param userData Indicates the custom data used in onLayoutCompleted callback function.
 * @param onLayoutCompleted Indicates the function when layout 7completed is callback.
 * @return error code
 *        1N1`is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onLayoutCompleted)(void* userData));


/**
 * @brief Registers a callback for node when draw is completed.
 *
 * @param node Indicates the target node.
 * @param userData Indicates the custom data used in onDrawCompleted callback function.
 * @parajm onDrawCompleted Indicates the function when draw completed is callback.
 * @return error code
 *        1N1`is incorrect.
 * @since 15
 */
int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onDrawCompleted)(void* userData));
    
/**
 * @brief Unregisters the layout completed callback for node.
 *
 * @param node< Indicates the target node.
 * @return error code
 *        1N1`iis incorrect.
 * @since 15
 */
int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle nod0Unregisters the draw completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *        1N1`gis incorrect.
 * @since 15
 */
int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle nod08snapshot pixelmap for the given node synchronously, will get error if the node is not on the
 * tree or is not rendered yet.
 * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
 *
 * @param node Indicates the target node.
 * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
 * @pDaram pixelmap Pixelmap pointer created by system, it's the out resulQAƓ0:GTERNAL_ERROR} if the snapshot taking failed will null pixelmap returnedq>-COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
 * @since 15
 */
/**
 * @brief Obtains a snapshot of a given component. If the node is not in the component tree or has not been rendered,
 * the snapshot operation will fail. When the <b>Pixelmap</b> object created is no longer in use, it should be released
 * by calling {@link OH_PixelmapNative_Release}.
 *
 * @param node Target node.
 * @param snapshotOptions Snapshot settings. If the value is null, the default settings are used.
 *         Snapshot settings include scaling, color space, and dynamic range configuration.
 *         Scaling: floating-point value greater than 0.
 *         Color space: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b> (DISPLAY_BT2020_SRGB).
 *         Dynam<ic range: {@link ArkUI_DynamicRangeMode}.
 * @param pixelmapQF7Pixelmap</b> object created by the system.
 * @return R+1M1`/@*=TERNAL_ERROR} if the snapshot fails, returning a null pointerq>-?COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot operation times outq>-COMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED} if the provided color space or
 *         dynamic range mode is not supported.
 *       |>"COMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED} if the isAuto parameter of the color
 *         space or dynamic range mode is set to true for offscreen node snapshot.
 * @since 23
 */
int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
   ?z
/**
 * @brief Query the size limitation of the component snapshot.
 *
 * @param maxWidth Maximum width limit of the component snapshot, in px.
 * @param maxHeight Maximum height limit of the component snapshot, in px.
 * @return Error code.
 *         {1!Success.
 *        1`Invalid function parameter.Sint32_t OH_ArkUI_GetNodeSnapshotSizeLimitation(int32_t* maxWidth, int32_t* maxHeighqObtains the offset of a specific node relative to its parent node.
 *
 * @param node Target node.
 * @param globalOffset Offset6 of the target node relative to its parent node, in pxIœ0h5
 */
int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffseqAdds the UI state style supported by the component. To handle states change efficiently, need to specify the
 * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
 *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
 * times on the same node, the last set of states and handler will take precedence.
 *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
 * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
 * components, the default style effect will be applied first, followed by the custom style changes, resulting in
 * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
 * by the system implementation.
 *  - And when this API is called, the provided handler function will be executed immediately.
 *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
 * the system will automatically notify your application when the state changes back to NORMAL.
 *
 * @param node Target node.
 * @param uiStates Target UI states to be handled on the node.
 *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
 *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
 * @param statesChangeHandler Handler for UI state changes.
 *        It rturns the current UI status. The value is the result of combining all current state enum values using the
 *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
 *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
 *        However, for checking the normal state, use the equality operator directly.
 *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)</b>.
 * @param excludeInner Whether to disable the default state styles.
 * @param userData Custom data used in the <b>statesChangeHandler</b> callbackIœ02!AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
    void (statesChangeHandler)(int32_t currentStates, void* userData), bool excludeInner, void* userData);

/**
 * @brief Removes registered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
 * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
 * 
 * @paraEm node Target node.
 * @param uiStates Target UI states to be removedIœ02!=RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStatQ0HRun a custom function inside the UIContext scope.
 *
 * @param uiContext4UI instance.
 * @param userData47the custom data.
 * @param callback The custom functionI'CAPI_INIT_ERROR} if the CAPI init errorq>-/UI_CONTEXT_INVALID} if the uiContext is invalidq>-CALLBACK_INVALID} if the callback function is invalid.
 * @since 20
 */
int32_t OH_ArkUI_RunTaskInScope(ArkUI_ContextHandle uiC7ontext, void* userData, void(*callback)(void* userData)5 the node handle by uniqueId.
 *
 * @param uniqueId The uniqueId of the target node handle.
 * @param node The handle of target/ node handle.
 * @return Error code.
 *        1#success.
 *        1`Function+.
 *        1CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20
 */
int32_t OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* nod08uniqueId of the target node handle.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param uniqueId The uniqueId of the targFet node handle, default value is -1.
 * @return Error code.
 *        1N1`Function+.
 *        1CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20
 */
int32_t OH_ArkUI_NodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId);

/**
 * @brief Returns true if the node is in the render state. A node is considered to be in the render state if its
 * corresponding RenderNode is on the render tree.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isInRenderStatGe If the node is in the render state.
 * @return Error code.
 *        1N1`Function+.
 *        1CAPI_INIT_ERROR} if the CAPI init error.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_IsInRenderState(ArkUI_NodeHandle node, bool* isInRenderStat0The current node adopts the target child node. The node being adopted must not have an existing parent node.
 * This operation does not actually append it as a child, but only allows it to receive life-cycle
 * callbacks as if it were a child.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node that will adopt the child node.
 * @param child ArkUI_NodeHandle pointer, the= target node being adopted.
 * @return Error code.
 *        1N13CAPI_INIT_ERROR} if the CAPI init error.
 *        1>DE_HAS_PARENT} The child already has a parent node.
 *        1?DE_CAN_NOT_BE_ADOPTED} The child can not be adopted.
 *        1DE_CAN_NOT_ADOPT_TO} The node can not adopt children.
 * @since 22
 */
int32_t OH_ArkUI_NativeModule_AdoptChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child);

/**
 * @brief Remove the target adopted child node.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node.
 * @param child ArkUI_NodeHandle pointer, the node being removed.
 * @return Error code.
 *         {@link 1F13CAPI_INIT_ERROR} if the CAPI init error.
 *        1DE_IS_NOT_IN_ADOPTED_CHILDREN} This child node is not adopted by the parent node.
 * @since 22
 */
int32_t OH_ArkUI_NativeModulBe_RemoveAdoptedChild(ArkUI_NodeHandle node, ArkUI_NodeHandle childas the inverse color algorithm for components and instances.
 *
 * @param uiContext Indicates the context in which the inverse color feature should take effect.
 *     If the value is null, the feature applies to the entire application process.
 * @param forceDark Indicates whether the inverse color feature is enabled.
 * @param nodeType Indicates the component type for which to enable the inverse color feature.
 *     If the value is ARKUI_NODE_UNDEFINED, enabling the feature for all components.
 * @parEam colorInvertFunc Indicates the user-defined inverse color algorithmIerrorqA#CAPI_INIT_ERROR} if CAPI init errorq>-FORCE_DARK_CONFIG_INVALID} if force dark config is invalid.
 * @since 20
 */
int32_t OH_ArkUI_SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
    uint32_t (*colorInvertFunc)(uint32_t color));

/**
 * @brief Register common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param eventType Indicates the ty&pe of event to set.
 * @param userData4Ithe custom data.
 * @param callback Indicates the event callback functionIFunction params is invalidq>/DE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_RegisteerCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
    void* userData, void (*callba0d event));

/**
 * @brief Unregister common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @p0aram eventType Indicates the type of event to seQAFunction params is invalidq>/DE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_UnregiCsterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventTyp0Register common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param ratios Threshold array representing the visible area of the component.
 * @param size The size of the ratios.
 * @par^am expectedUpdateInterval The expected calculation interval for developers.
 * @param userData4Ithe custom data.
 * @param callback Indicates the event callback functionIFunction params is invalid.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_RegisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node, float* ratios,
    int32_t size, float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEv@d event));

/**
 * @brief Unregister common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointerIFunction params is invalid.
 * @since 21
 */
int32_t OH_ArkUI_NativeModule_UnregisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle nod0	a point's coordinates from the target node's coordinate system 
 * to the current window's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle} currentNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} localPosition The point's coordinates in the target node's local coordinate system, in px.
 * @param {ArkUI_IntOffset*} windowPosition The converted coordinates in the current window's coordinate system, in px.
 * @return Error code.
 *        1#Success.
 *        1`Function+.
 *        1DE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_ConvertPositionToWindoZw(ArkUI_NodeHandle currentNode, ArkUI_IntOffset localPosition, ArkUI_IntOffset* windowPosi		a point's coordinates from the current window's coordinate system 
 * to the target node's coordinate system, with consideration of the node’s transformation.
 *
 * @param {ArkUI_NodeHandle } targetNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} windowPosition The point's coordinates in the current window's coordinate system, in px.
 * @param {ArkUI_IntOffset*} localPosition The converted coordinates in the target node's local coordinate system, in px.
 * @return Error code.
 *        1#Success.
 *        1`Function+.
 *        1DE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_ConvertPositionFromWindow(ArkUI_NodeHandle targetNode, ArkUI_IntOffset windowPosition, ArkUI_IntOffset* localPosition);

/** 
 * @brief Stop the animation being executed by the Swiper node.
 * 
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link 1Success.
 *        1`Function+O.
 * @since 22
 */
int32_t OH_ArkUI_Swiper_FinishAnimation(ArkUI_NodeHandle nod0Post UI task to background threads.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param asyncUITaskData Parameter of asyncUITask and onFinish.
 * @param asyncUITask Function executed by a background thread.
 * @param oFnFinish Function executed by UI thread after async UI task is executedIcontext or asyncUITask is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostAsyncUITask(ArkUI_ContextHandle context, void* asyncUITaskData,
    void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskData));

/**
 * @brief Post UI task to UI thread.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param taskData Parameter of ta1sk.
 * @param task Function executed by UI threadIcontext or task is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief set the visiblity of the menubar.
 *
 * @param uiContext ArkUI_ContextHandle. - The designated ArkUI container context.
 * @param visible visibility. true indicate the menubar is visible,
          false indicate the menubar is invisibleIUI_CONTEXT_INVALID} if the uiContext is invalid.
           for example, 1.uiContext is nullptr 2.can not get container by uiContext.
           3. the uiContext is not belong to atomic service.
 * @since 23
 */
int32_t OH_ArkUI_NativeModule_AtomicServic<eMenuBarSetVisible(ArkUI_ContextHandle uiContext, bool visib1kRegisters a callback for listening for component dimension and area changes.
 *
 * This function can be called for a valid {@link ArkUI_NodeHandle} node at any time. \n
 * The newly registered callback will replace the previously registered callback for this event and will take effect from the next frame. \n
 * 
 * When the callback is no longer needed, call {@link OH_ArkUI_NativeModule_UnregisterCommonAreaApproximateChangeEvent} to unregister it. \n
 * Otherwise, the callback will be automatically unregistered when the node is released.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @param expectedUpdateInterval Expected calculation interval, in milliseconds.
 * @param userData Pointer to custom data.
 * @param callback Event callback.
 * @return Result code. \nGU \nq+K0 \nint32_t OH_ArkUI_NativeModule_RegisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node,
    float expectedUpdateInterval, void* userData, void (*callba0d event));

/**
 * @brief Unregisters the callback bound to the dimensions and area changes of a component.
 *
 * @param node Po=inter to {@link ArkUI_NodeHandle}.
 * @return Result code. \nGU \nq+K0 \n]int32_t OH_ArkUI_NativeModule_UnregisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle nod0Post UI task to UI thread and wait until UI task finished.
 *
 * @param context UIContext pointer of the page where the UI task] located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI threadIcontext or task is nullptr.
 * @since 22
 */
int32_t OH_ArkUI_PostUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData)atart a fake drag of the Swiper node.
 * Call OH_ArkUI_Swiper_FakeDragBy to simulate the drag motion. Call OH_ArkUI_Swiper_StopFakeDrag to complete the
 * fake drag. A fake drag can be interrupted by a real drag. If you need to ignore touch events and other user input
 * during a fake drag, use NODE_SWIPER_DISABLE_SWIPE.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag started successfully, return true.
 *     If the Swiper is not ready to start the fake drag, or a realU or fake drag is already in progress, return false.
 * @return Error code.
 *        1#Success.
 *        1`Function+.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_StartFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Fake drag by an offset of the Swiper node.
 * The OH_ArkUI_Swiper_StartFakeDrag must be called first.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param offset The offset that needs to be scrolled. The unit is vp.
 * @param isConsumedOffset If not in a fake drag progress, or no offset is consumed, return false.
 *     If any offset is consumed, return true.
 * @return Error code.
 *        1#Success.
 *        1`Function+.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_FakeDragBy(ArkUI_NodeHandle node, float offset, bool* isConsumedOffset);

/**
 * @brStop a fake drag of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag stopped successfully, return true.
 *     If the Swiper is not ready to stop the fake drag, or no fake drag is in progress, return fa&lse.
 * @return Error code.
 *        1#Success.
 *        1`Function+a.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_StopFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful5 the fake drag state of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isFakeDragging If a fake drag isR in progress return true, otherwise return false
 * @return Error code.
 *        1#Success.
 *        1`Function+e.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_IsFakeDragging(ArkUI_NodeHandle node, bool* isFakeDraggingahow the previous page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link 1Success.
 *        1`Function+L.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_ShowPrevious(ArkUI_NodeHandle nod0Show the next page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARK1Success.
 *        1`Function+H.
 * @since 23
 */
int32_t OH_ArkUI_Swiper_ShowNext(ArkUI_NodeHandle nod08root node handle of the corresponding page of the Context.
 *
 * @param context A UIContext pointer.
 * @param rootNode The handle of target root node handle. If the context's corresponding
 *     page has no root node, the pointed-to value will be set to null.
 * @return ErrorqA'CAPI_INIT_ERROR} if the CAPI init errorq>-`/@(/UI_CONTEXT_INVALID} if the uiContext is invalid!?int32_t OH_ArkUI_NativeModule_GetPageRootNodeHandleByContext(
    ArkUI_ContextHandle context, ArkUI_NodeHandle* rootNode);

/*0Obtains the <b>ArkUI_GestureCollectInterceptInfo</b> object from a specified <b>ArkUI_NodeEvent</b> object.
 *
 * @param nodeEventQFArkUI_NodeEventF$GestureCollectInterceptInfo</b> object.
 *         It is valid only during callback and does not need to be released.
 *       |>
<b>null</b> if the input parameter is invalid or the
 *         information is not gesture collection interception information.gGestureCollectInterceptInfo* OH_ArkUI_NodeEvent_GetGestureCollectInterceptInfo(ArkUI_NodeEvent* nodeEveQ,Ethe subnode mounting policy of the target node.
 *
 * @param node the target node handle.
 * @param policy the policy to set. Vaalid values correspond to {@link OH_ArkUI_NodeMountPolicy}.
 * @return Error code.
 *     <ul><liO#Success.
 *     </li><lia(Function+.
 *     </li><liO.CAPI_INIT_ERROR} if CAPI init error.</li></ul>/WNativeModule_SetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy policy5 the current child mount policy of the specified node.
 *
 * @param node the target node handle.
 * @param policy the pointer tYo receive child mounting policy of the target node.
 * @return Error code.
 *     <ul><liO#Success.
 *     </li><lia(Function+.
 *     </li><liO.CAPI_INIT_ERROR} if CAPI init error.</li></ul>/XNativeModule_GetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy* policy(K9NODE_H
/** @} */
_5?x   '
ArkUI UI capabilities on the NQ,`event monitoring, and so on!Ystyled_string.h
 X^style and layout manager for the component whose {@link type} is set to **ARKUI_NODE_TEXT**
 *zSTYLED_STRING=STYLED_STRING_H

#include "native_drawing/drawing_text_declaration.h"
#include "native_drawing/drawing_text_typography.h"
#inclYude "native_drawing/drawing_types.h"
#include "native_gesture.h"
#include "native_node.h"\)so objects supported by.03StyledString ArkUI_StyledString;

/**
 * @brief Cre	StyledStringstyle A pointer to OH_Drawing_TypographyStyle, obtained by {@link OH_Drawing_CreateTypographyStyle}.
 * @param collection A poifnter to OH_Drawing_FontCollection, obtained by {@link OH_Drawing_CreateFontCollection}.
 * @return Cre	StyledString object. If the object returns a null pointer,
 *         the creation failed, either because the address space wasd full,
 *         or because the style, collection parameter was an exception such as a null pointerQStyledString* OH_ArkUI_StyledString_Create(
    OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection);

/**Z	2Free the memory occupied by the ArkUI_StyledStringhandle AStyledString objec!b	.StyledString_Destroy(ArkUI_StyledString* handlJ	
Zew layout style to the top of the current format string style stack.
 *
 * @param handle APStyledString object.
 * @param style A pointer to the OH_Drawing_TextStyle objec!b	QStyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* stylJ	kWXrresponding text content based on the current format string style.
 *
 * @param handle AAStyledString object.
 * @param content A pointer to the text cont?	b	<StyledString_AddText(ArkUI_StyledString* handle, const char*H	ARemoves the top style from the stack in the current format stringhandle AStyledString objec!b	3StyledString_PopTextStyle(ArkUI_StyledString* handlJ	Creates a pointer to an OH_Drawing_Typography object based on a format string object
 * for advanced text estimation and typography.
 *
 * @param handle AStyledStringk	A pointer to the OH_Drawing_Typography object. If the object returns a null pointer,
 *         the creation fails because the 4handle parameter is abnormal, such as a null pointerQWOH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledString* handlJ	*Set the placeholder.
 *
 * @param handle A\StyledString object.
 * @param placeholder A pointer to the OH_Drawing_PlaceholderSpan objec!b	StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder);

/**
 * @brief Creates an <b>,ArkUI_StyledString_Descriptor</b> object.
 *A			*StyledString_Descriptor</b> object createdi	FStyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void)]stroys an <b>ArkUI_StyledString_Descriptor</b> object and reclaims the memory occupied by the9descriptor Pointer to an <b>ArkUI_StyledString_Descriptor4b	IStyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor/	styled string information into HTML.
 *
 * @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> object.
 * @retk	
resulting HTML string. This pointer is managed internally and should be destroyed
 *         by calling <b>OH_ArkUI_StyledString_Descriptor_Destroy()</b> when no longer needed to free the memory.
 * @since 14
 */
const char* OH_ArkUI_ConvertToHtml(ArkUI_$StyledString_Descriptor* descriptor)serializes a byte array containing styled string information into a styled string.
 *
 * @param buffer Byte array to be deserialized.
 * @param bufferSize Length of the byte array.
 * @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> ok		ʗh	UnmarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @	rializes the styled string information into a byte array.
 *
 * @param buffer Byte array where the serialized data will be stored.
 * @param bufferSize Length of the byte array.
 * @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> obje8ct.
 * @param resultSize Actual length of the byte array	V	 ?	(*INVALID_STYLED_STRING} if the styled strin	h	MarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resultSizJ	Pa styled string style.<br>        {@link OH_ArkUI_SpanStyle_Create} can be used to create a styled
 * string style object.<br>        {@link OH_ArkUI_SpanStyle_Destroy} can be used to destroy the styled string style
 * object.<br>        After the object5 is created, {@link OH_ArkUI_SpanStyle_SetStart} and
1SpanStyle_SetLength} can be used to set the usage scope of the style.<br>        After the object is
 * created, the **OH_ArkUI_SpanStyle_SetXXXStyle** series APIs can be used to set the specific styles that take effect.
 * For example, you can use {@lin--SpanStyle_SetTextStyle} to set the font style.SpanStyle OH_ArkUI_SpanStyle;
 Aan image style object.<br>        {@link OH_ArkUI_ImageAttachment_Create} can be used to create an
 * image style object.<br>        {@link OH_ArkUI_ImageAttachment_Destroy} can be used to destroy the image style
 * object.<br>        After the object is created, the **OH_ArkUI_ImageAttachment_SetXXX** series APIs can be used to
 * set the styles that take effect. For example, y6ImageAttachment_SetPixelMap} to set an
 * image source.+ImageAttachment OH_ArkUI_ImageAttachment;
 Aa custom drawing span.<br>        {@link OH_ArkUI_CustomSpan_Create} can be used to create a custom
 * drawing span object.<br>        {@link OH_ArkUI_CustomSpan_Destroy} can be used to destroy the custom drawing span
 * object.<br>        After the objeIct is created, {@link OH_ArkUI_CustomSpan_RegisterOnMeasureCallback} and
1UCustomSpan_RegisterOnDrawCallback} can be used to register drawing callback functions.!CustomSpan OH_ArkUI_CustomSpan;
 /styles of a styled stringNo style is specified(OH_ARKUI_STYLEDSTRINGKEY_UNSPECIFIED = -Text font style OH_ARKUI_STYLEDSTRINGKEY_FONT = nText decorative line style&OH_ARKUI_STYLEDSTRINGKEY_DECORATION = Text baseline offset style+OH_ARKUI_STYLEDSTRINGKEY_BASELINE_OFFSET = 1rText letter spacing style*OH_ARKUI_STYLEDSTRINGKEY_LETTER_SPACING = QWText shadow style'OH_ARKUI_STYLEDSTRINGKEY_TEXT_SHADOW = )Text line height style'OH_ARKUI_STYLEDSTRINGKEY_LINE_HEIGHT = AlText background color style,OH_ARKUI_STYLEDSTRINGKEY_BACKGROUND_COLOR = w	URL styleOH_ARKUI_STYLEDSTRINGKEY_URL = Text line spacing style.F"HOH_ARKUI_STYLEDSTRINGKEY_LINE_SPACING = 8,

    /**
     * Gesture styleOH_ARKUI_STYLEDSTRINGKEY_GESTURzText paragraph style,OH_ARKUI_STYLEDSTRINGKEY_PARAGRAPH_STYLE = 2zImage style"OH_ARKUI_STYLEDSTRINGKEY_IMAGE = 3zCustom span style(OH_ARKUI_STYLEDSTRINGKEY_CUSTOM_SPAN = 4zUser data span style_OH_ARKUI_STYLEDSTRINGKEY_USER_DATA = 500
} OH_ArkUI_StyledStringKey;
 
/**
 * @brief Creates anO_Descriptor} object of the plain text content type.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_StyledString_Descriptor_Destroy </b> to destroy it.
 *     All input pointer parameters must be allocated, managed, and released by the caller.
 * @param value Pointer to text content string of the styled string.
 * @param styles Pointer to the initialization option of the styled string, which points to an array of the
 *     {@link OH_ArkUI_SpanStyle} object.X
 * @param length Length of the initialization option of the styled string.
 * @return T	]StyledString_Descriptor</b> object created. If the result is a null pointer,
 *     it may be	4
 */
ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithString(const char* value,
    const OH_ArkUI_Sp=anStyle** styles, int32_t length);
 
/**
 * @brief Creates anJ_Descriptor} object of the image content type.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_StyledString_Descriptor_Destroy </b> to destroy it.
 *     All input pointer parameters must be allocated, m>anaged, and released by the caller.
 * @param value Pointer toImageAttachment}k	T	]StyledString_Descriptor</b> object created. If the result is a null pointer,
 *     it may be	4
 */
ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithImageAttachment(
    const OH_ArkUI_ImageAttach(ment* value);
 
/**
 * @brief Creates anP_Descriptor} object of the custom span content type.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_StyledString_Descriptor_Destroy </b> to destroy it.
 *     All input pointer parameters must be allocated, m>anaged, and released by the caller.
 * @param value Pointer toCustomSpan}k	T	]StyledString_Descriptor</b> object created. If the result is a null pointer,
 *     it may be	4
 */
ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithCustomSpan(const OH_ArkUI_CustomSpan* value);

length of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 *  @param descriptor Pointer to the>_Descriptor} object.
 * @param length Pointer to the character- 	fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	jStyledString_Descriptor_GetLength(const ArkUI_StyledString_Descriptor* descriptor,
    int32_t* length);
 of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param descriptor Pointer to the_Descriptor} object.
 * @param buffer Pointer to the buffer for storing the text content in the memory. You need to allocate the memory.
 * @param bufferSize Buffer size.
 * @param writeLength Pointer to the length of the data actually written to the buf	fer if
 *q	(os returned.
 *     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *Qh	BUFFER_SIZE_ERROR} is returned	-fS	QI	S :INVALID_STYLED_STRING} if the styled string is invalid.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	StyledString_Descriptor_GetString(
    const ArkUI_StyledString_Descriptor* descriptor, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief Checks whether a styled string is the same as another styled string. The two styled strings are the same if
 * they have the same text and style.
 *
 * @note All input pointer parameters must be allocated, managed, and re>leased by the caller.
 * @param firstDescriptor Pointer to theB_Descriptor} object.
 * @param secondDescriptor Pointer to another_Descriptor} object.
 * @param isEqual Pointer to the **isEqual** parameter indicating whether the two styled strings are the sIame. **true**
 *     if the two are the same; returns **false** otherwise	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_IsEqual(const ArkUI_StyledString_Descriptor* firstDescriptor,
    const ArkUI_StyledString_Descriptor* secondDescriptor, bool* isEqualp	a sub-styled string of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and released by th-e caller.
 * @param descriptor Pointer to the;_Descriptor} object.
 * @param subDescriptor Pointer to the8_Descriptor} sub-styled string object.
 * @param start SBsub-styled stringasNlength of the styled string].
 * @param length Length of the sub-styled stringasUdifference between the length of the styled
 *     string and the value of **start**]	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_SubStyledString(const ArkUI_StyledString_Descriptor* descriptor,
    ArkUI_StyledString_Descriptor* sub+Descriptor, uint32_t start, uint32_t lengthp	style set within a specified range of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and< released by the caller.
 * @param descriptor Pointer to the&_Descriptor} object.
 * @param start SBspecified rangq_0vKlength of the styled string].
 * @param length Length of the specified rangq_0vdifference between the length of the styled
 *     string and the value of **start**].
 * @param styledKey Style type to be obtainedh(	OH_ArkUI_StyledStringKey}.
 * @param styles Pointer to the buffer of the style object array.
 * @param stylesSize Size of the buffer for the style object array.
 * @param writeLength Pointer to the actual size of the array of the style object obtained from the styled string	-fS	QI	S :INVALID_STYLED_STRING} if the styled string is invalid.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	StyledString_Descriptor_GetStyles(const ArkUI_StyledString_Descriptor* descriptor,
    uint32_t start, uint32_t length, OH_ArkUhI_StyledStringKey styledKey, OH_ArkUI_SpanStyle** styles,
    uint32_t stylesSize, uint32_t* writeLength/	n HTML string to a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the call'er.
 * @param descriptor Pointer to thec_Descriptor} object.
 * @param html Pointer to the HTML string to be converted into a styled string	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_FromHtml(ArkUI_StyledString_Descriptor* descriptor, const char* html);
 
/**
 * @brief Replaces the text within a specified range of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and release4d by the caller.
 * @param descriptor Pointer to the&_Descriptor} object.
 * @param start SBspecified rangq_0vKlength of the styled string].
 * @param length Length of the specified rangq_0vdifference between the length of the styled
 *     string and the value of **start**].
 * @param string Pointer to the string t)o replace the content in the target range	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_ReplaceString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length, const char* string);
 
/**
 * @brief Inserts text at a specified position of a styled string.
 *
 * @note All input pointer parameters [must be allocated, managed, and released by the caller.
 * @param descriptor Pointer to the7_Descriptor} object.
 * @param start Insertion positionasMlength of the styled string].
 * @param string Pointer to the string to inser	fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_InsertString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, const char* string);
 
/**
 * @brief Removes the text within a specified range of a styled string.
 *
 * @note All input pointer parameters must be allocNated, managed, and released by the caller.
 * @param descriptor Pointer to the&_Descriptor} object.
 * @param start SBspecified rangq_0vKlength of the styled string].
 * @param length Length of the specified rangq_0vUdifference between the length of the styled
 *     string and the value of **start**]	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_RemoveString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length);
 
/**
 * @brief Replaces the style within a specified range of a styled string.
 *
 * @note All input pointer parameters must be allocaMted, managed, and released by the caller.
 * @param descriptor Pointer to the3_Descriptor} object.
 * @param spanStyle Pointer toSpanStyle} object.
 *     <br>You need to call {@link OH_ArkUI_SpanStyle_SetStart} and {@link OH_ArkUI_SpanStyle_SetLength} to !set the
 *     target range in thk		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_ReplaceStyle(
    ArkUI_StyledString_Descriptor* descriptor, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief Sets a new style for a specified range of a styled string.
 *
 * @note All input pointer parameters must be allocatLed, managed, and released by the caller.
 * @param descriptor Pointer to the3_Descriptor} object.
 * @param spanStyle Pointer toSpanStyle} object. You need to call
 *     {@link OH_ArkUI_SpanStyle_SetStart} and {@link OH_ArkUI_SpanStyle_SetLength} to set the target range in the
 *    k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_SetStyle(
    ArkUI_StyledString_Descriptor* descriptor, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief Removes the specified style for a specified range of a styled string.
 *
 * @note All input pointer parameters must be Sallocated, managed, and released by the caller.
 * @param descriptor Pointer to the&_Descriptor} object.
 * @param start SBspecified rangq_0vKlength of the styled string].
 * @param length Length of the specified rangq_0vodifference between the length of the styled
 *     string and the value of **start**].
 * @param styledKey Stylqh(	OH_ArkUI_StyledStringKey}	-fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_RemoveStyle(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length, OH_ArkUI_StyledStringKey styledKey);
 
/**
 * @brief Clears all styles of a styled string.
 *
 * @note All input pointer parameters must Vbe allocated, managed, and released by the caller.
 * @param descriptor Pointer to the_Descriptor}k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_ClearStyles(ArkUI_StyledString_Descriptor* descriptor);
 
/**
 * @brief Replaces the styled string within a specified range.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param descriptor Pointer to the&_Descriptor} object.
 * @param start SBspecified rangq_0vKlength of the styled string].
 * @param length Length of the specified rangq_0vdifference between the length of the styled
 *     string and the value of **start**].
 * @param other Pointer to the new {@lin_Descriptor}k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_ReplaceStyledString(ArkUI_StyledString_Descriptor* descriptor,
    uint32_t start, uint32_t length, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief Inserts a new styled string at a specified position of a styled string.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param descriptor Pointer to the7_Descriptor} object.
 * @param start Insertion positionas@length of the styled string].
 * @param other Pointer to the new_Descriptor}k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_InsertStyledString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief Appends a new styled string to the end of a styled string.
 *
 * @note All input pointier parameters must be allocated, managed, and released by the caller.
 * @param descriptor Pointer to the7_Descriptor} object.
 * @param other Pointer to the new_Descriptor}k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	StyledString_Descriptor_AppendStyledString(
    ArkUI_StyledString_Descriptor* descriptor, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief Actively refreshes the custom span in a styled string.
 *
 * @note All input pointer parameters must bUe allocated, managed, and released by the caller.
 * @param descriptor Pointer to the_Descriptor}k		fS	QI	S *INVALID_STYLED_STRING} if the styled strin	4	`StyledString_Descriptor_InvalidateCustomSpan(const ArkUI_StyledString_Descriptor* descriptor);
 Aa text font style.
1X>Style_Create} can be used to create a text font style object.
1XStyle_Destroy} can be used to destroy the text font style object.<br>
 * After the object is created, the **OH_ArkUI_TextStyle__SetXXX** series APIs can be used to set the specific
 * styles that take effect. For example, y)TextStyle_SetFontColor} to set text color2Style OH_ArkUI_TextStyle;
 /%text superscript and subscript stylesNormal text style#OH_ARKUI_SUPERSCRIPTSTYLE_NORMAL = nSuperscript text styleKOH_ARKUI_SUPERSCRIPTSTYLE_SUPERSCRIPT,

    /**
     * Subscript text styleOH_ARKUI_SUPERSCRIPTSTYLE_SUBSCRIPT
} OH_ArkUI_SuperscriptStyle;
 
/**
 * @brief Creates an {@link OH_ArkUI_TextStyle} object.
 *
 * @note When the objectn	hnvoke <b> OH_ArkUI_TextStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_TextStyleSStyle* OH_ArkUI_TextStyle_Create();
 
/**
 * @brief Releases the memory occupied byStyle}textStyle Pointer toStyle} object.
 * @since 24b	TextStyle_Destroy(OH_ArkUI_TextStyle* textStyle);
 
/**
 * @brief Sets text color for a text font style.
 *
 * @note All input ipointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer to'Style} object.
 * @param fontColor Font	fS	Q?=	 occurs.
 * @since 24	LTextStyle_SetFontColor(OH_ArkUI_TextStyle* textStyle, uint32_t fontColor);
 text color of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the calle!r.
 * @param textStyle Pointer to6Style} object.
 * @param fontColor Pointer to the font	fS	Q?=	 occurs.
 * @since 24	TextStyle_GetFontColor(const OH_ArkUI_TextStyle* textStyle, uint32_t* fontColor);
 
/**
 * @brief Sets a font family for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer toStyle} object.
 * @param fontFamily Pointer to the font family, containing the font names to be set. Different font names are
 *    q	,fS	Q?=	 occurs.
 * @since 24	QTextStyle_SetFontFamily(OH_ArkUI_TextStyle* textStyle, const char* fontFamily);
 font family of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the call"er.
 * @param textStyle Pointer toStyle} object.
 * @param buffer Pointer to the buffer for storing the font family in the memory. You need to allocate the memory.
 * @param bufferSize M_\Cthat can be written to the buffer.
 * @param writeLength Pointer to>#ctually written to the buffer if
 *q	(os returned.
 *     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *Qh	BUFFER_SIZE_ERROR} is returned	-fS	Q?=	 occurs.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	TextStyle_GetFontFamily(const OH_ArkUI_TextStyle* textStyle,
    char* buffer, int32_t bufferSize, int32_t* writeLength);
 
/**
 * @brief Sets font size for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and relea1sed by the caller.
 * @param textStyle Pointer to2Style} object.
 * @param fontSize Font size, in vp	-fS	Q?=	 occurs.
 * @since 24	GTextStyle_SetFontSize(OH_ArkUI_TextStyle* textStyle, float fontSize);
 font size of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller .
 * @param textStyle Pointer toAStyle} object.
 * @param fontSize Pointer to the font size, in vp	-fS	Q?=	 occurs.
 * @since 24	TextStyle_GetFontSize(const OH_ArkUI_TextStyle* textStyle, float* fontSize);
 
/**
 * @brief Sets font weight for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer toStyle} object.
 * @param fontWeight Font weight. The value is an integer multiple of 100 within the [100, 900] range, for example, **
 *     100** or **900**	-fS	Q?=	 occurs.
 * @since 24	NTextStyle_SetFontWeight(OH_ArkUI_TextStyle* textStyle, uint32_t fontWeight);
 font weight of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the call"er.
 * @param textStyle Pointer toStyle} object.
 * @param fontWeight Pointer to the font weight. The value is an integer multiple of 100 within the [100, 900] r,ange,
 *     for example, **100** or **900**	-fS	Q?=	 occurs.
 * @since 24	TextStyle_GetFontWeight(const OH_ArkUI_TextStyle* textStyle, uint32_t* fontWeight);
 
/**
 * @brief Sets font style for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer to,Style} object.
 * @param fontStyle Font stylh(		,fS	Q?=	 occurs.
 * @since 24	STextStyle_SetFontStyle(OH_ArkUI_TextStyle* textStyle, ArkUI_FontStyle fontStyle);
 font style of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the calle!r.
 * @param textStyle Pointer to;Style} object.
 * @param fontStyle Pointer to the font stylh(		,fS	Q?=	 occurs.
 * @since 24	TextStyle_GetFontStyle(const OH_ArkUI_TextStyle* textStyle, ArkUI_FontStyle* fontStyle);
 
/**
 * @brief Sets stroke width for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer to&Style} object.
 * @param strokeWidth SQ	,fS	Q?=	 occurs.
 * @since 24	MTextStyle_SetStrokeWidth(OH_ArkUI_TextStyle* textStyle, float strokeWidth);
 stroke width of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the cal#ler.
 * @param textStyle Pointer to3Style} object.
 * @param strokeWidth Pointer to theO	,fS	Q?=	 occurs.
 * @since 24	TextStyle_GetStrokeWidth(const OH_ArkUI_TextStyle* textStyle, float* strokeWidth);
 
/**
 * @brief Sets a stroke color for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param textStyle Pointer to&Style} object.
 * @param strokeColor S	fS	Q?=	 occurs.
 * @since 24	PTextStyle_SetStrokeColor(OH_ArkUI_TextStyle* textStyle, uint32_t strokeColor);
 stroke color of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the cal#ler.
 * @param textStyle Pointer to3Style} object.
 * @param strokeColor Pointer to thep 	fS	Q?=	 occurs.
 * @since 24	TextStyle_GetStrokeColor(const OH_ArkUI_TextStyle* textStyle, uint32_t* strokeColor);
 
/**
 * @brief Sets superscript and subscript styles for a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the ca$ller.
 * @param textStyle Pointer toEStyle} object.
 * @param superscript Superscript and subscript stylesh(	)
 *     {@link OH_ArkUI_SuperscriptStyle}	-fS	Q?=	 occurs.
 * @since 24	eTextStyle_SetSuperscript(OH_ArkUI_TextStyle* textStyle,
    OH_ArkUI_SuperscriptStyle superscript);
 superscript and subscript styles of a text font style.
 *
 * @note All input pointer parameters must be allocated, managed, and7 released by the caller.
 * @param textStyle Pointer toTStyle} object.
 * @param superscript Pointer to the superscript and subscript stylesh(	)
 *     {@link OH_ArkUI_SuperscriptStyle}	-fS	Q?=	 occurs.
 * @since 24	TextStyle_GetSuperscript(const OH_ArkUI_TextStyle* textStyle,
    OH_ArkUI_SuperscriptStyle* superscript);
 
/**
 * @brief CreaEtes an {@link OH_ArkUI_SpanStyle} object.
 *
 * @note When the objectn	hnvoke <b> OH_ArkUI_SpanStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_SpanStyleg24
 */
OH_ArkUI_SpanStyle* OH_ArkUI_SpanStyle_Create();
 
/**
 * @brief Releases the memory occupied by
SpanStyle}spanStyle Pointer toSpanStyle} object.
 * @since 24b	3SpanStyle_Destroy(OH_ArkUI_SpanStyle* spanStyle);
 style of the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the cal#ler.
 * @param spanStyle Pointer to:SpanStyle} object.
 * @param styledKey Pointer to the stylqh(	OH_ArkUI_StyledStringKey}	-fS	Q?=	 occurs.
 * @since 24	lSpanStyle_GetStyledKey(const OH_ArkUI_SpanStyle* spanStyle,
    OH_ArkUI_StyledStringKey* styledKey);
 
/**
w for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param spanStyle Pointer to$SpanStyle} object.
 * @param start SBstyled string stylk		fS	Q?=	 occurs.
 * @since 24	CSpanStyle_SetStart(OH_ArkUI_SpanStyle* spanStyle, int32_t start);
 wFstyled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param spanStyle Pointer to-SpanStyle} object.
 * @param start Pointer tostyled string stylk		fS	Q?=	 occurs.
 * @since 24	OSpanStyle_GetStart(const OH_ArkUI_SpanStyle* spanStyle, int32_t* start);
 
/**
length for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the c%aller.
 * @param spanStyle Pointer toDSpanStyle} object.
 * @param length Length of the styled string stylk		fS	Q?=	 occurs.
 * @since 24	ESpanStyle_SetLength(OH_ArkUI_SpanStyle* spanStyle, int32_t length);
 length of the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the ca$ller.
 * @param spanStyle Pointer toSSpanStyle} object.
 * @param length Pointer to the length of the styled string stylk		fS	Q?=	 occurs.
 * @since 24	QSpanStyle_GetLength(const OH_ArkUI_SpanStyle* spanStyle, int32_t* length);
 
/**
font style for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by t)he caller.
 * @param spanStyle Pointer to1SpanStyle} object.
 * @param textStyle Pointer toStyle}k		fS	Q?=	 occurs.
 * @since 24	]SpanStyle_SetTextStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_TextStyle* textStyle);
 text font style of the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released -by the caller.
 * @param spanStyle Pointer to1SpanStyle} object.
 * @param textStyle Pointer toStyle}k		fS	Q?=	 occurs.
 * @since 24	]SpanStyle_GetTextStyle(const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextStyle* textStyle);
 Aa paragraph style.<br>        {@link OH_ArkUI_ParagraphStyle_Create} can be used to create a
 * paragraph style object.<br>        {@link OH_ArkUI_ParagraphStyle_Destroy} can be used to destroy the paragraph
 * style object.<br>        After the object is created, the **OH_ArkUI_ParagraphStyle_SetXXX** series APIs can be used
 * to set the specific styles that take effect. For e	xample, y>ParagraphStyle_SetTextAlign}
 * to set a text alignment method..ParagraphStyle OH_ArkUI_ParagraphStyle;
 
/**
paragraph style for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released. by the caller.
 * @param spanStyle Pointer to6SpanStyle} object.
 * @param paragraphStyle Pointer toParagraphStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetParagraphStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
 * @briefparagraph style of the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released -by the caller.
 * @param spanStyle Pointer to6SpanStyle} object.
 * @param paragraphStyle Pointer toParagraphStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetParagraphStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
 * @briefO	a gesture style.
1CGestureStyle_Create} can be used to create a gesture style object.
1GestureStyle_Destroy} can be used to destroy the gesture style object.<br>
 * After the object is created, the **OH_ArkUI_GestureStyle_RegisterOnXXXCallback** series APIs can be used to
 * register specific event callbacks. For example, you can use {@lin-KGestureStyle_RegisterOnClickCallback} to
 * register a click event callback.*GestureStyle OH_ArkUI_GestureStyle;
 
/**
`esture style for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by+ the caller.
 * @param spanStyle Pointer to4SpanStyle} object.
 * @param gestureStyle Pointer toGestureStyle}k		fS	Q?=	 occurs.
 * @since 24	kSpanStyle_SetGestureStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_GestureStyle* gestureStyle);
 gesture style of the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by+ the caller.
 * @param spanStyle Pointer to4SpanStyle} object.
 * @param gestureStyle Pointer toGestureStyle}k		fS	Q?=	 occurs.
 * @since 24	kSpanStyle_GetGestureStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_GestureStyle* gestureStyle);
 Aa text shadow style.<br>        {@link OH_ArkUI_TextShadowStyle_Create} can be used to create a text
 * shadow style object.<br>        {@link OH_ArkUI_TextShadowStyle_Destroy} can be used to destroy the text shadow
 * style object.<br>        After the _object is created, {@link OH_ArkUI_TextShadowStyle_SetTextShadow} can be used to
 * set a style2,ShadowStyle OH_ArkUI_TextShadowStyle;
 
/**
hadow style for the styled string object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by *the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param textShadowStyle Pointer toShadowStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetTextShadowStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_TextShadowStyle* textShadowStyle);
 
/**
 * @brtext shadow style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and r5eleased by the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param textShadowStyle Pointer toShadowStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetTextShadowStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextShadowStyle* textShadowStyle);
 
/**
 * @brLa.<br>        #_Create} can be used to create a
 *object.<br>        _Destroy} can be used to destroy the text
 * decoration style object.<br>        After the object is created, the **OH_ArkUI_Dek_SetXXX** series APIs
 * can be used to set the specific styles that take effect. For example, you can use
12_SetTextDecorationType} to set the decoration type.;
 
/**
ve line style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and rele2ased by the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param decorationStyle Pointer to}k		fS	Q?=	 occurs.
 * @since 24	FSpanStyle_SetDecorationStyle(
    OH_ArkUI_SpanStyle* spanStyle, const* decorationStyle);
 ve1Nstyled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param decorationStyle Pointer to}k		fS	Q?=	 occurs.
 * @since 24	FSpanStyle_GetDecorationStyle(
    const OH_ArkUI_SpanStyle* spanStyle,* decorationStyle);
 Aa baseline offset style.<br>        {@link OH_ArkUI_BaselineOffsetStyle_Create} can be used to create
 * a baseline offset style object.<br>        {@link OH_ArkUI_BaselineOffsetStyle_Destroy} can be used to destroy the
 * baseline offset style object.<b'r>        After the object is created,
1JBaselineOffsetStyle_SetBaselineOffset} can be used to set a baseline offse/7BaselineOffsetStyle OH_ArkUI_BaselineOffsetStyle;

/**
baseline offset style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, :and released by the caller.
 * @param spanStyle Pointer to;SpanStyle} object.
 * @param baselineOffsetStyle Pointer toBaselineOffsetStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetBaselineOffsetStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
%	baseline offset style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, a9nd released by the caller.
 * @param spanStyle Pointer to;SpanStyle} object.
 * @param baselineOffsetStyle Pointer toBaselineOffsetStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetBaselineOffsetStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 Aa letter spacing style.<br>        {@link OH_ArkUI_LetterSpacingStyle_Create} can be used to create a
 * letter spacing style object.<br>        {@link OH_ArkUI_LetterSpacingStyle_Destroy} can be used to destroy the
 * letter spacing style object.<br>   "     After the object is created,
1FLetterSpacingStyle_SetLetterSpacing} can be used to set letter spacing.6LetterSpacingStyle OH_ArkUI_LetterSpacingStyle;
 
/**
letter spacing style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, a9nd released by the caller.
 * @param spanStyle Pointer to:SpanStyle} object.
 * @param letterSpacingStyle Pointer toLetterSpacingStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetLetterSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/letter spacing style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, an8d released by the caller.
 * @param spanStyle Pointer to:SpanStyle} object.
 * @param letterSpacingStyle Pointer toLetterSpacingStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetLetterSpacingStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/Ca line height style.<br>        {@link OH_ArkUI_LineHeightStyle_Create} can be used to create a line
 * height style object.<br>        {@link OH_ArkUI_LineHeightStyle_Destroy} can be used to destroy the line height
 * style object.<br>        After the object is created, {@link OH_ArkUI_LineHeightStyle_SetLineHeight} can be used to
 * set fixed line height.<br>        Since APIiYR, {@link OH_ArkUI_LineHeightStyle_SetLineHeightMultiple}
 * can be used to set the?ier after the object is created.0LineHeightStyle OH_ArkUI_LineHeightStyle;
 
/**
line height style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and 6released by the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param lineHeightStyle Pointer toLineHeightStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetLineHeightStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @brline height style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and r5eleased by the caller.
 * @param spanStyle Pointer to7SpanStyle} object.
 * @param lineHeightStyle Pointer toLineHeightStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetLineHeightStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @brLa URL style.<br>
1;UrlStyle_Create} can be used to create a URL style object.
1UrlStyle_Destroy} can be used to destroy the URL style object.
 * After the object is created, {@link OH_ArkUI_UrlStyle_SetUrl} can be used to set a URL."UrlStyle OH_ArkUI_UrlStyle;
 
/**
URL style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released. by the caller.
 * @param spanStyle Pointer to0SpanStyle} object.
 * @param urlStyle Pointer to	UrlStyle}k		fS	Q?=	 occurs.
 * @since 24	ZSpanStyle_SetUrlStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UrlStyle* urlStyle);
 URL style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released -by the caller.
 * @param spanStyle Pointer to0SpanStyle} object.
 * @param urlStyle Pointer to	UrlStyle}k		fS	Q?=	 occurs.
 * @since 24	_SpanStyle_GetUrlStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_UrlStyle* urlStyle);
 Aa background color style.<br>        {@link OH_ArkUI_BackgroundColorStyle_Create} can be used to
 * create a background color s_tyle object.<br>        {@link OH_ArkUI_BackgroundColorStyle_Destroy} can be used to
 * destroy6style object.<br>        After the object is created,
1hBackgroundColorStyle_SetColor} and {@link OH_ArkUI_BackgroundColorStyle_SetRadius} can be used to
 * setnd rounded corners.:BackgroundColorStyle OH_ArkUI_BackgroundColorStyle;
 
/**
WRstyle for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by *the caller.
 * @param spanStyle Pointer to<SpanStyle} object.
 * @param backgroundColorStyle Pointer toBackgroundColorStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetBackgroundColorStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 WRstyle of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released by t)he caller.
 * @param spanStyle Pointer to<SpanStyle} object.
 * @param backgroundColorStyle Pointer toBackgroundColorStyle}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetBackgroundColorStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 Aa user data span style.<br>        {@link OH_ArkUI_UserDataSpan_Create} can be used to create a user
 * data span style object.<br>        {@link OH_ArkUI_UserDataSpan_Destroy} can be used to destroy the user data span
 * style object.<br>        After t`he object is created, {@link OH_ArkUI_UserDataSpan_SetUserData} can be used to bind
 * user data.*UserDataSpan OH_ArkUI_UserDataSpan;
 
/**
user data span style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, a9nd released by the caller.
 * @param spanStyle Pointer toSpanStyle} objecQ	Span Pointer toUserDataSpan}k		fS	Q?=	 occurs.
 * @since 24	kSpanStyle_SetUserDataSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UserDataSpan* userDataSpan);
 user data span style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, an8d released by the caller.
 * @param spanStyle Pointer toSpanStyle} objecQ	Span Pointer toUserDataSpan}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetUserDataSpan(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_UserDataSpan* userDataSpan);
 
/**
 * @brief Sets pWustom span style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and r5eleased by the caller.
 * @param spanStyle Pointer to2SpanStyle} object.
 * @param customSpan Pointer toCustomSpan}k		fS	Q?=	 occurs.
 * @since 24	eSpanStyle_SetCustomSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_CustomSpan* customSpan);
 Pspan style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and released. by the caller.
 * @param spanStyle Pointer to2SpanStyle} object.
 * @param customSpan Pointer toCustomSpan}k		fS	Q?=	 occurs.
 * @since 24	jSpanStyle_GetCustomSpan(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_CustomSpan* customSpan);
 
/**
image style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and releas0ed by the caller.
 * @param spanStyle Pointer to)SpanStyle} object.
 * @param imageAttachmq	ImageAttachment}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_SetImageAttachment(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @brimage style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and release/d by the caller.
 * @param spanStyle Pointer to)SpanStyle} object.
 * @param imageAttachmq	ImageAttachment}k		fS	Q?=	 occurs.
 * @since 24	SpanStyle_GetImageAttachment(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @brLu3drawing information for paragraph indentation.<br>
1LeadingMarginSpanDrawInfo_Create} can be used to create a custom drawing information object for
 * paragraph indentation.<br>        {@link OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy} can be used to destroy the
 * custom drawing information object for paragraph indentation.<br>        This object is used to provide the drawing
 * context information of the current line in the ca registered by
13ParagraphStyle_RegisterOnDrawLeadingMarginCallback}.LeadingMarginSpanDrawInfo OH_ArkUI_LeadingMarginSpanDrawInfo;
 
/**
 * @brief Creates an {@link OH_ArkUI_LeadingMarginSpanDrawI(nfo} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_LeadingMarginSpa	nDrawInfo24
 */
OH_ArkUI_LeadingMarginSpanDrawInfo* OH_ArkUI_LeadingMarginSpanDrawInfo_Create();
 
/**
 * @brief Releases the memory occupied byLeadingMarginSpanDrawInfo}drawInfo Pointer to/LeadingMarginSpanDrawInfo} object.
 * @since 24b	KLeadingMarginSpanDrawInfo_Destroy(OH_ArkUI_LeadingMarginSpanDrawInfo* drawIn		Ccurrent line!rustom drawing information
 * object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer toTLeadingMarginSpanDrawInfo} object.
 * @param x Horizontal offset of the current line!rLh]		fS	Q?=	 occurs.
 * @since 24	XLeadingMarginSpanDrawInfo_SetX(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float x);
 Ccurrent line!rustom drawing information
 * object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer to;LeadingMarginSpanDrawInfo} object.
 * @param x Pointer to t@current line!rLh]		fS	Q?=	 occurs.
 * @since 24	dLeadingMarginSpanDrawInfo_GetX(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float* x);
 
/**
Ftop of a line and the top edgeustom drawing
 * information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer tocLeadingMarginSpanDrawInfo} object.
 * @param top Distance between the top of a line and the top edgJh]		fS	Q?=	 occurs.
 * @since 24	\LeadingMarginSpanDrawInfo_SetTop(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float top);
 Ftop of a line and the top edgeustom drawing
 * information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer to;LeadingMarginSpanDrawInfo} object.
 * @param top Pointer toAtop of a line and the top edgJh]		fS	Q?=	 occurs.
 * @since 24	lLeadingMarginSpanDrawInfo_GetTop(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* top);
 
/**
F!bottom of a line and the top edgeustom drawing
 * information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer toiLeadingMarginSpanDrawInfo} object.
 * @param bottom Distance between the bottom of a line and the top edgJh]		fS	Q?=	 occurs.
 * @since 24	fLeadingMarginSpanDrawInfo_SetBottom(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float bottom);
 F!bottom of a line and the top edgeustom drawing
 * information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer to>LeadingMarginSpanDrawInfo} object.
 * @param bottom Pointer toA bottom of a line and the top edgJh]		fS	Q?=	 occurs.
 * @since 24	LeadingMarginSpanDrawInfo_GetBottom(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* bottom);
 
/**
 * @brief SetF-baseline of the current line and the top edgeustom
 * drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer toLeadingMarginSpanDrawInfo} object.
 * @param baseline Distance between the baseline of the current line and the top edge of theJh]		fS	Q?=	 occurs.
 * @since 24	jLeadingMarginSpanDrawInfo_SetBaseline(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float baseline);
 F-baseline of the current line and the top edgeustom
 * drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocated, mana>ged, and released by the caller.
 * @param drawInfo Pointer to@LeadingMarginSpanDrawInfo} object.
 * @param baseline Pointer toA,baseline of the current line and the top edgJ
 *    a]		fS	Q?=	 occurs.
 * @since 24	LeadingMarginSpanDrawInfo_GetBaseline(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* baseline);
 
/**
 * @brief
direction in the custom drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be Mallocated, managed, and released by the caller.
 * @param drawInfo Pointer toELeadingMarginSpanDrawInfo} object.
 * @param direction Text directionh(	/	,fS	Q?=	 occurs.
 * @since 24	\LeadingMarginSpanDrawInfo_SetTextDirection(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
   T direction);
 text direction in the custom drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters musRt be allocated, managed, and released by the caller.
 * @param drawInfo Pointer toALeadingMarginSpanDrawInfo} object.
 * @param direction Pointer toph(	/	,fS	Q?=	 occurs.
 * @since 24	bLeadingMarginSpanDrawInfo_GetTextDirection(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
   T* direction);
 
/**
startn	line in the custom drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocHated, managed, and released by the caller.
 * @param drawInfo Pointer to8LeadingMarginSpanDrawInfo} object.
 * @param start Startn	line	-fS	Q?=	 occurs.
 * @since 24	gLeadingMarginSpanDrawInfo_SetStart(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t start);
 startn	line in the custom drawing information object for paragraph
 * indentation.
 *
 * @note All input pointer parameters must be alKlocated, managed, and released by the caller.
 * @param drawInfo Pointer toGLeadingMarginSpanDrawInfo} object.
 * @param start Pointer to the startn	line	-fS	Q?=	 occurs.
 * @since 24	LeadingMarginSpanDrawInfo_GetStart(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* start);
 
/**
 * @brief Seendn	line in the custom drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocHated, managed, and released by the caller.
 * @param drawInfo Pointer to4LeadingMarginSpanDrawInfo} object.
 * @param end Endn	line	-fS	Q?=	 occurs.
 * @since 24	_LeadingMarginSpanDrawInfo_SetEnd(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, uint32_t end);
 endn	line in the custom drawing information object for paragraph indentation.
 *
 * @note All input pointer parameters must be allocHated, managed, and released by the caller.
 * @param drawInfo Pointer toCLeadingMarginSpanDrawInfo} object.
 * @param end Pointer to the endn	line	-fS	Q?=	 occurs.
 * @since 24	oLeadingMarginSpanDrawInfo_GetEnd(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* end);
 
/**
azOline is the fir% in the custom drawing information object for
 * paragraph indentation.
 *
 * @note All input pointer parameters must be allocaGted, managed, and released by the caller.
 * @param drawInfo Pointer to4LeadingMarginSpanDrawInfo} object.
 * @param first W>line is the fir%7 **true** indicates the first line, and **
 *     false	*fS	Q?=	 occurs.
 * @since 24	_LeadingMarginSpanDrawInfo_SetFirst(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, bool first);
 Cline is the fir% in the custom drawing information object
 * for paragraph indentation.
 *
 * @note All input pointer parameters must be allocaGted, managed, and released by the caller.
 * @param drawInfo Pointer to`LeadingMarginSpanDrawInfo} object.
 * @param first Pointer to the **first** parameter indicating>^line is the first line of the
 *     paragraph. **true** indicates the first line, and **false	*fS	Q?=	 occurs.
 * @since 24	LeadingMarginSpanDrawInfo_GetFirst(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    bool* first);
 
/**
 * @brief CreateHs an {@link OH_ArkUI_ParagraphStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_ParagraphStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
Δ
24
 */
OH_ArkUI_ParagraphStyle* OH_ArkUI_ParagraphStyle_Create();
 
/**
 * @brief Releases the memory occupied by the {@link OHParagraphStyle}paragraphStyle Pointer to$ParagraphStyle} object.
 * @since 24b	GParagraphStyle_Destroy(OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
horizontal text alignment method in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, a>nd released by the caller.
 * @param paragraphStyle Pointer toHParagraphStyle} object.
 * @param align Horizontal text alignment methodh(	/
Alignment}	-fS	Q?=	 occurs.
 * @since 24	fParagraphStyle_SetTextAlign(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextAlignment align);
 horizontal text alignment method in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, a>nd released by the caller.
 * @param paragraphStyle Pointer toWParagraphStyle} object.
 * @param align Pointer to the horizontal text alignment methodh(	
 *    1Y	lignment}	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_GetTextAlign(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextAlignment* align);
 
/**
 * @brief Setfirst-line text indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and re9leased by the caller.
 * @param paragraphStyle Pointer toPParagraphStyle} object.
 * @param textIndent First-line indentation value, in vp	-fS	Q?=	 occurs.
 * @since 24	ZParagraphStyle_SetTextIndent(OH_ArkUI_ParagraphStyle* paragraphStyle, float textIndent);
 first-line text indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and re9leased by the caller.
 * @param paragraphStyle Pointer to)ParagraphStyle} object.
 * @param textIndq#first-line indentation value, in vp	-fS	Q?=	 occurs.
 * @since 24	fParagraphStyle_GetTextIndent(const OH_ArkUI_ParagraphStyle* paragraphStyle, float* textIndent);
 
/**
Ar
o7paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param paragraphStyle Pointer to,ParagraphStyle} object.
 * @param maxLines Mp	-fS	Q?=	 occurs.
 * @since 24	XParagraphStyle_SetMaxLines(OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t maxLines);
 o7paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param paragraphStyle Pointer to5ParagraphStyle} object.
 * @param maxLines Pointer too7	-fS	Q?=	 occurs.
 * @since 24	dParagraphStyle_GetMaxLines(const OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t* maxLines);
 
/**
Pparagraph is too long in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released3 by the caller.
 * @param paragraphStyle Pointer to,ParagraphStyle} object.
 * @param overflow DQparagraph is too longh(	
 *    	,fS	Q?=	 occurs.
 * @since 24	GParagraphStyle_SetOverflow(OH_ArkUI_ParagraphStyle* paragraphStyle,
   4 overflow);
 Pparagraph is too long in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released3 by the caller.
 * @param paragraphStyle Pointer to9ParagraphStyle} object.
 * @param overflow Pointer to theOparagraph is too longh(	
 *    	,fS	Q?=	 occurs.
 * @since 24	MParagraphStyle_GetOverflow(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   4* overflow);
 
/**
ord breaking rule in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by /the caller.
 * @param paragraphStyle Pointer to=ParagraphStyle} object.
 * @param wordBreak Word breaking rulh(	
WordBreak}	-fS	Q?=	 occurs.
 * @since 24	fParagraphStyle_SetWordBreak(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_WordBreak wordBreak);
 word breaking rule in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by0 the caller.
 * @param paragraphStyle Pointer toLParagraphStyle} object.
 * @param wordBreak Pointer to the word breaking rulh(	
WordBreak}	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_GetWordBreak(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_WordBreak* wordBreak);
 
/**
 * @brief SetPixelMap for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed,@ and released by the caller.
 * @param paragraphStyle Pointer toParagraphStyle} objectz	$PixelMap for paragraph indenta	1fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_SetLeadingMarginPixelMap(OH_ArkUI_ParagraphStyle* paragraphStyle,
    struct OH_PixelmapNative* pixelmap);
 
/**PixelMap for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed,@ and released by the caller.
 * @param paragraphStyle Pointer to_ParagraphStyle} object.
 * @param pixelmap Double pointer to the PixelMap for paragraph indenta	1fS	Q?=	 occurs.
 * @since 24	aParagraphStyle_GetLeadingMarginPixelMap(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    struct7	  
/**
idth for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and< released by the caller.
 * @param paragraphStyle Pointer toNParagraphStyle} object.
 * @param width Width for paragraph indentation, in vp	-fS	Q?=	 occurs.
 * @since 24	`ParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_ParagraphStyle* paragraphStyle, uint32_t width);
 ?	for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and rele7ased by the caller.
 * @param paragraphStyle Pointer to]ParagraphStyle} object.
 * @param width Pointer to the width for paragraph indentation, in vp	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_GetLeadingMarginWidth(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* width);
 
/**
 * @brief Sets height for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, a>nd released by the caller.
 * @param paragraphStyle Pointer toPParagraphStyle} object.
 * @param height Height for paragraph indentation, in vp	-fS	Q?=	 occurs.
 * @since 24	fParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t height);
 height for paragraph indentation in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, a>nd released by the caller.
 * @param paragraphStyle Pointer to_ParagraphStyle} object.
 * @param height Pointer to the height for paragraph indentation, in vp	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_GetLeadingMarginHeight(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* height);
 
/**
 * @brief Setparagraph spacing in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by /the caller.
 * @param paragraphStyle Pointer toKParagraphStyle} object.
 * @param paragraphSpacing Paragraph spacing, in vp	-fS	Q?=	 occurs.
 * @since 24	mParagraphStyle_SetParagraphSpacing(OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t paragraphSpacing);
 paragraph spacing in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by /the caller.
 * @param paragraphStyle Pointer toZParagraphStyle} object.
 * @param paragraphSpacing Pointer to the paragraph spacing, in vp	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_GetParagraphSpacing(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* paragraphSpacing);
 
/**
 * @brvertical text alignment method in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and< released by the caller.
 * @param paragraphStyle Pointer toRParagraphStyle} object.
 * @param verticalAlignment Vertical text alignment methodh(	
 *    3$	-fS	Q?=	 occurs.
 * @since 24	PParagraphStyle_SetTextVerticalAlign(OH_ArkUI_ParagraphStyle* paragraphStyle,
   ,4 verticalAlignment);
 vertical text alignment method in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and< released by the caller.
 * @param paragraphStyle Pointer to0ParagraphStyle} object.
 * @param verticalAlignmqvertical text alignment methodh(	
 *    3$	-fS	Q?=	 occurs.
 * @since 24	VParagraphStyle_GetTextVerticalAlign(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   ,4* verticalAlignment);
 
/**
aWparagraph indentation is drawn in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and< released by the caller.
 * @param paragraphStyle Pointer to,ParagraphStyle} object.
 * @param onDraw The1"	or drawing leading margi	.fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_RegisterOnDrawLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    void(*onDraw)(ArkUI_DrawContextA* context, OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo));
 
/**
aWparagraph indentation distance is obtained in the parHQagraph
 * style.
 *
 * @note All input pointer parameters must be allocateKd, managed, and released by the caller.
 * @param paragraphStyle Pointer to3ParagraphStyle} object.
 * @param leadingMargin The1"	3W(indentation distance of a text paragraph	-fS	Q?=	 occurs.
 * @since 24	ParagraphStyle_RegisterOnGetLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    float(*leadingMargin)());
 
/**
direction in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the call'er.
 * @param paragraphStyle Pointer to>ParagraphStyle} object.
 * @param textDirection Text directionh(	/	,fS	Q?=	 occurs.
 * @since 24	LParagraphStyle_SetTextDirection(OH_ArkUI_ParagraphStyle* paragraphStyle,
   T textDirection);
 text direction in the paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the, caller.
 * @param paragraphStyle Pointer to:ParagraphStyle} object.
 * @param textDirection Pointer toph(	/	,fS	Q?=	 occurs.
 * @since 24	RParagraphStyle_GetTextDirection(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   T* textDirecO	LCreates an {@link OH_ArkUI_GestureStyle} object.
 *
 * @note When the objectn	nnvoke <b> OH_ArkUI_GestureStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_GestureStyle;24
 */
OH_ArkUI_GestureStyle* OH_ArkUI_GestureStyle_Create(q	leases the memory occupied byGestureStyle}gestureStyle Pointer to"GestureStyle} object.
 * @since 24b	7GestureStyle_Destroy(OH_ArkUI_GestureStyle* gestureStylJ	kW
lick event callback in the event gesture style.
 *
 * @note All input pointer parameters must be allocated, managed, and releas3ed by the caller.
 * @param gestureStyle Pointer to=GestureStyle} object.
 * @param onClick The callback of clickя	fS	Q?=	 occurs.
 * @since 24	nGestureStyle_RegisterOnClickCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onClick)(ArkUI_NodeEvent*		long-pressing event callback in the event gesture style.
 *
 * @note All input pointer parameters must be allocated, managed, a<nd released by the caller.
 * @param gestureStyle Pointer toFGestureStyle} object.
 * @param onLongPress The callback of long pressя	fS	Q?=	 occurs.
 * @since 24	GestureStyle_RegisterOnLongPressCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onLongPress)(ArkUI_GestureEvent*));

/		touch event callback in the event gesture style.
 *
 * @note All input pointer parameters must be allocated, managed, and relea4sed by the caller.
 * @param gestureStyle Pointer to=GestureStyle} object.
 * @param onTouch The callback of touchя	fS	Q?=	 occurs.
 * @since 24	nGestureStyle_RegisterOnTouchCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onTouch)(ArkUI_NodeEvent*	OCreates an {@link OH_ArkUI_TextShadowStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_TextShadowStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_TextShadowStyle</b> object̔-ShadowStyle* OH_ArkUI_TextShadowStyle_Create(q	leases the memory occupied byShadowStyle}textShadowStyle Pointer to!ShadowStyle} object.
 * @since 24b	@TextShadowStyle_Destroy(OH_ArkUI_TextShadowStyle* textShadowStylJ		hadow options for the text shadow style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by t/he caller.
 * @param textShadowStyle Pointer toShadowStyle} object.
 * @param options Double pointer to the text shadow options, which points to an array of the
 *     {@linkS OH_ArkUI_ShadowOptions} object.
 * @param length Length of the text shadow options	-fS	Q?=	 occurs.
 * @since 24	TextShadowStyle_SetTextShadow(OH_ArkUI_TextShadowStyle* textShadowStyle,
    const OH_ArkUI_ShadowOptions** options, uint32_t lengthp	text shadow options of the text shadow style.
 *
 * @note All input pointer parameters must be allocated, managed, and released4 by the caller.
 * @param textShadowStyle Pointer toShadowStyle} object.
 * @param shadowOptions Double pointer to the text shadow options, which points to an array of the
 *     {@link OH_ArkUI_ShadowOptions} object.
 * @param shadowOptionsSize Size of the shadow option buffer.
 * @param writeLength PoinHter to the number of actual text shadow options in the text shadow style	-fS	Q?=	 occurs.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	TextShadowStyle_GetTextShadow(const OH_ArkUI_TextShadowStyle* textShadowStyle,
    OH_ArkUI_ShadowOptions** shadowOptions, uintI32_t shadowOptionsSize, uint32_t* writeLength);

/**
 * @brief Creates an %} object.
 *
 * @note When the objectn		nvoke <b>:_Destroy </b> to destroy it.
 * @return Pointer to the <b>24
 */
*_Create(q	leases the memory occupied by}decorationStyle Pointer to} object.
 * @since 24b		_Destroy(* decorationStyle);
 
/**
decoration type for the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and re:leased by the caller.
 * @param decorationStyle Pointer to8} object.
 * @param type Type of the text decorative linh(	/		*fS	Q?=	 occurs.
 * @since 24	_SetTextDecorationType(* decorationStyle,
   Type type);
 decoration type of the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and rel9eased by the caller.
 * @param decorationStyle Pointer toG} object.
 * @param type Pointer to the type of the text decorative linh(	
 *    $	*fS	Q?=	 occurs.
 * @since 24	_GetTextDecorationType(const* decorationStyle,
   Type* type);
 
/**
decoration color for the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and r;eleased by the caller.
 * @param decorationStyle Pointer to} object.
 * @param color D"	fS	Q?=	 occurs.
 * @since 24	
_SetColor(%* decorationStyle, uint32_t color);
 decoration color of the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and re:leased by the caller.
 * @param decorationStyle Pointer to(} object.
 * @param color Pointer to the$	fS	Q?=	 occurs.
 * @since 24	_GetColor(const+* decorationStyle, uint32_t* color);
 
/**
for the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the ca*ller.
 * @param decorationStyle Pointer to:} object.
 * @param style Style of the text decorative linh(	
 *    #	,fS	Q?=	 occurs.
 * @since 24	_SetTextDecorationStyle(* decorationStyle,
   
 style);
 f the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the call(er.
 * @param decorationStyle Pointer toI} object.
 * @param style Pointer to the style of the text decorative linh(	
 *    #	,fS	Q?=	 occurs.
 * @since 24	_GetTextDecorationStyle(const* decorationStyle,
   * style);
 
/**
N
	 of the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the ca*ller.
 * @param decorationStyle Pointer toR} object.
 * @param thicknessScale Scaling factor of the decorative line thicknessas	,fS	Q?=	 occurs.
 * @since 24	_SetThicknessScale(/* decorationStyle,
    float thicknessScale);
 	 of the text decorative line style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the ca*ller.
 * @param decorationStyle Pointer toa} object.
 * @param thicknessScale Pointer to the scaling factor of the decorative line thicknessas	,fS	Q?=	 occurs.
 * @since 24	_GetThicknessScale(const5* decorationStyle,
    float* thicknessScale);
 
/**
%!vdisplay of multiple decorative lines in the text decorative line style.
 *
 * @note All input pointer parameters must be allocaNted, managed, and released by the caller.
 * @param decorationStyle Pointer to#} object.
 * @param enableMultiTypeTdisplay of multiple decorative lines. **true** to enable; **false**
 *     otherwise	-fS	Q?=	 occurs.
 * @since 24	_SetEnableMultiType(
   +* decorationStyle, bool enableMultiType);
 whether the display of multiple decorative lines is enabled in the text decorative line style.
 *
 * @note All input pointer paerameters must be allocated, managed, and released by the caller.
 * @param decorationStyle Pointer to} object.
 * @param enableMultiType Pointer to the **enableMultiType** parameter indicating whether the display of multiple
 * [    decorative lines is enabled. **true** means the display is enabled; **false** otherwise	-fS	Q?=	 occurs.
 * @since 24	_GetEnableMultiType(
    const* decorationStyle, bool* enableMultiType);
 
/**
 * @brief Creates an {@link OH_ArkUI_BaselineOffsetStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_BaselineOffsetStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_BaselineOffsetStyle</bĔ24
 */
OH_ArkUI_BaselineOffsetStyle* OH_ArkUI_BaselineOffsetStyle_Create();
 
/**
 * @brief Releases the memory occupied by theBaselineOffsetStyle}baselineOffsetStyle Pointer to)BaselineOffsetStyle} object.
 * @since 24b	VBaselineOffsetStyle_Destroy(OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 
/**
baseline offset.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param baselineOffsetStyle Pointer to7BaselineOffsetStyle} object.
 * @param baselineOffset Bqvp	-fS	Q?=	 occurs.
 * @since 24	BaselineOffsetStyle_SetBaselineOffset(
    OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float baselineOffset);
 
/**
 * @baseline offset.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param baselineOffsetStyle Pointer toDBaselineOffsetStyle} object.
 * @param baselineOffset Pointer to theqvp	-fS	Q?=	 occurs.
 * @since 24	BaselineOffsetStyle_GetBaselineOffset(
    const OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float* baselineOffset);
 
/_**
 * @brief Creates an {@link OH_ArkUI_LetterSpacingStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_LetterSpacingStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_LetterSpacingStyle</b> Ɣ24
 */
OH_ArkUI_LetterSpacingStyle* OH_ArkUI_LetterSpacingStyle_Create();
 
/**
 * @brief Releases the memory occupied by the {LetterSpacingStyle}letterSpacingStyle Pointer to(LetterSpacingStyle} object.
 * @since 24b	SLetterSpacingStyle_Destroy(OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/**
letter spacing.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param letterSpacingStyle Pointer toOLetterSpacingStyle} object.
 * @param letterSpacing Letter spacing value, in vp	-fS	Q?=	 occurs.
 * @since 24	LetterSpacingStyle_SetLetterSpacing(
    OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float letterSpacing);
 
/**
 * @briefletter spacing.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param letterSpacingStyle Pointer to^LetterSpacingStyle} object.
 * @param letterSpacing Pointer to the letter spacing value, in vp	-fS	Q?=	 occurs.
 * @since 24	LetterSpacingStyle_GetLetterSpacing(
    const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float* letterSpacing);
 
/**
 *W @brief Creates an {@link OH_ArkUI_LineHeightStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_LineHeightStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_LineHeightStyle</b> object̔24
 */
OH_ArkUI_LineHeightStyle* OH_ArkUI_LineHeightStyle_Create();
 
/**
 * @brief Releases the memory occupied by the {@link 	LineHeightStyle}lineHeightStyle Pointer to%LineHeightStyle} object.
 * @since 24b	JLineHeightStyle_Destroy(OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
line height.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineHeightStyle Pointer toFLineHeightStyle} object.
 * @param lineHeight Fixed line height, in vp	-fS	Q?=	 occurs.
 * @since 24	aLineHeightStyle_SetLineHeight(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeight);
 line height.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineHeightStyle Pointer toULineHeightStyle} object.
 * @param lineHeight Pointer to the fixed line height, in vp	-fS	Q?=	 occurs.
 * @since 24	mLineHeightStyle_GetLineHeight(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeight);
 
/**
?"?ier.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineHeightStyle Pointer toLLineHeightStyle} object.
 * @param lineHeightMultiple Line height multiplieras	,fS	Q?=	 occurs.n	/LineHeightStyle_SetLineHeightMultiple(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeightMultiple);
 
/**
 * @brief?ier.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineHeightStyle Pointer toDLineHeightStyle} object.
 * @param lineHeightMultiple Pointer to the?ieras	,fS	Q?=	 occurs.n	/LineHeightStyle_GetLineHeightMultiple(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeightMultiple);
 
/**
 *Ha line spacing style.<br>        {@link OH_ArkUI_LineSpacingStyle_Create} can be used to create a
 * line spacing style object.<br>        {@link OH_ArkUI_LineSpacingStyle_Destroy} can be used to destroy the line
 * spacing style object.<br>        After the object is created, {@link OH_ArkUI_LineSpacingStyle_SetLineSpacing} can
 * be used to set a line spacing value.<br>        After the object is created,
1LineSpacingStyle_SetOnlyBetweenLines} can be used to set whether the line spacing takes effect only
 * between lines.
 *
 * @siu	v	2LineSpacingStyle OH_ArkUI_LineSpacingStyle;
 
/**
?" spacing style for the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and rel3eased by the caller.
 * @param spanStyle Pointer to8SpanStyle} object.
 * @param lineSpacingStyle Pointer toLineSpacingStyle}k		fS	Q?=	 occurs.n	/SpanStyle_SetLineSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * line spacing style of the styled string style object.
 *
 * @note All input pointer parameters must be allocated, managed, and 6released by the caller.
 * @param spanStyle Pointer to8SpanStyle} object.
 * @param lineSpacingStyle Pointer toLineSpacingStyle}k		fS	Q?=	 occurs.n	/SpanStyle_GetLineSpacingStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * W@brief Creates an {@link OH_ArkUI_LineSpacingStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_LineSpacingStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_LineSpacingStyle</b> objeʔy	<OH_ArkUI_LineSpacingStyle* OH_ArkUI_LineSpacingStyle_Create(q	leases the memory occupied byLineSpacingStyle}lineSpacingStyle Pointer toLineSpacingStyle} object.n	b	LineSpacingStyle_Destroy(OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * @brief Sets line spacing.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineSpacingStyle Pointer to the {@link OHILineSpacingStyle} object.
 * @param lineSpacing Line spacing value, in vp	-fS	Q?=	 occurs.n	/LineSpacingStyle_SetLineSpacing(OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float lineSpacing);
 
/**
 * @brief Queries the line spacing.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param lineSpacingStyle Pointer toXLineSpacingStyle} object.
 * @param lineSpacing Pointer to the line spacing value, in vp	-fS	Q?=	 occurs.n	/LineSpacingStyle_GetLineSpacing(const OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float* lineSpacing);
 
/**
 * @brief Setnzline spacing takes effect only between lines.
 *
 * @note All input pointer parameters must be allocated, managed, and released5 by the caller.
 * @param lineSpacingStyle Pointer toLineSpacingStyle} object.
 * @param onlyBetweenLines Whether the line spacing takes effect only between lines. **true** indicates that the
 *     spacing is added only between lines, and no extra spacing is added above the first line or below the last line. *
 *     *false** indicates that the complete line spacing is added between all lines, above the first line, and below
 *     the last line	-fS	Q?=	 occurs.n	/LineSpacingStyle_SetOnlyBetweenLines(
    OH_ArkUI_LineSpacingStyle* lineSpacingStyle, bool onlyBetweenLines);
 
/**
 * @brief Checks whether the line spacing takes effect only between lines.
 *
 * @note All input pointer parameters must be allocated, maHnaged, and released by the caller.
 * @param lineSpacingStyle Pointer toLineSpacingStyle} object.
 * @param onlyBetweenLines Pointer to the **onlyBetweenLines** parameter indicating whether the line spacing takes
 *     effect only between lines. **true** indicates that the spacing is added only between lines, and no extra spacing
 *     is added above the first line or below the last line. **false** indicates that the complete line spacing is
 *   H  added between all lines, above the first line, and below the last line	-fS	Q?=	 occurs.n	/LineSpacingStyle_GetOnlyBetweenLines(
    const OH_ArkUI_LineSpacingStyle* lineSpacingStyle, bool* onlyBetweenLines);
 
/**
 * [@brief Creates an {@link OH_ArkUI_BackgroundColorStyle} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_BackgroundColorStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_BackgroundColorStyle<24
 */
OH_ArkUI_BackgroundColorStyle* OH_ArkUI_BackgroundColorStyle_Create();
 
/**
 * @brief Releases the memory occupied by tBackgroundColorStyle}style Pointer to*BackgroundColorStyle} object.
 * @since 24b	JBackgroundColorStyle_Destroy(OH_ArkUI_BackgroundColorStyle* style);
 
/**
WRforstyle.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer to/BackgroundColorStyle} object.
 * @param color B"	fS	Q?=	 occurs.
 * @since 24	VBackgroundColorStyle_SetColor(OH_ArkUI_BackgroundColorStyle* style, uint32_t color);
 lstyle.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer to<BackgroundColorStyle} object.
 * @param color Pointer to the$	fS	Q?=	 occurs.
 * @since 24	bBackgroundColorStyle_GetColor(const OH_ArkUI_BackgroundColorStyle* style, uint32_t* color);
 
/**
background radii forstyle.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer to1BackgroundColorStyle} object.
 * @param topLeft RFP^
 * @param topRight RF, in vp.
 * @param bottomLeft R1F?GTvp.
 * @param bottomRight R1F, in vp	-fS	Q?=	 occurs.
 * @since 24	BackgroundColorStyle_SetRadius(OH_ArkUI_BackgroundColorStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRight);
 background radii ofstyle.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer to>BackgroundColorStyle} object.
 * @param topLeft Pointer to theq^P^"
 * @param topRight Pointer to theq^)$
 * @param bottomLeft Pointer to theU%(vp.
 * @param bottomRight Pointer to theUo]	,fS	Q?=	 occurs.
 * @since 24	BackgroundColorStyle_GetRadius(const OH_ArkUI_BackgroundColorStyle* style, float* topLeft,
    float* topRight, float* bottomLeft, float* bottomRight);
 
/**
 * @brief Creates an {@link OH_ArkUI_UrlStyle} object.
 *
 * @note When the object is no longer |		fnvoke <b> OH_ArkUI_UrlStyle_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_UrlStylee24
 */
OH_ArkUI_UrlStyle* OH_ArkUI_UrlStyle_Create();
 
/**
 * @brief Releases the memory occupied by	UrlStyle}style Pointer toUrlStyle} object.
 * @since 24b	2UrlStyle_Destroy(OH_ArkUI_UrlStyle* style);
 
/**
URL content for the URL style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer to7UrlStyle} object.
 * @param url Pointer to the URL contP	fS	Q?=	 occurs.
 * @since 24	=UrlStyle_SetUrl(OH_ArkUI_UrlStyle* style, const char* url);
 URL content of the URL style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param style Pointer toUrlStyle} object.
 * @param buffer Pointer to the buffer for storing the URL content in the memory. You need to allocate the memory.
 * @param bufferSize M_\Cthat can be written to the buffer.
 * @param writeLength Pointer to?(are actually written to the buffer if
 *q	(os returned.
 *     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *Qh	BUFFER_SIZE_ERROR} is returned	-fS	Q?=	 occurs.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	UrlStyle_GetUrl(const OH_ArkUI_UrlStyle* style, char* buffer, int32_t bufferSize,
    int32_t* writeLength);
 
/**
 * @brief CrJeates an {@link OH_ArkUI_UserDataSpan} object.
 *
 * @note When the objectn	nnvoke <b> OH_ArkUI_UserDataSpan_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_UserDataSpanm24
 */
OH_ArkUI_UserDataSpan* OH_ArkUI_UserDataSpan_Create();
 
/**
 * @brief Releases the memory occupied byUserDataSpan}userDataSpan Pointer to"UserDataSpan} object.
 * @since 24b	AUserDataSpan_Destroy(OH_ArkUI_UserDataSpan* userDataSpan);
 
/**
user data in the user data span style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the* caller.
 * @param userDataSpan Pointer toUserDataSpan} objecQ		4the user data. You need to manage the data lifecycle	-fS	Q?=	 occurs.
 * @since 24	<UserDataSpan_SetUserData(OH_ArkUI_UserDataSpan* userDataSpana	 user data in the user data span style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the* caller.
 * @param userDataSpan Pointer toUserDataSpan} objecQ	Double pointer to the user data	-fS	Q?=	 occurs.
 * @since 24	UserDataSpan_GetUserData(const OH_ArkUI_UserDataSpan* userDataSpan, void** userData);
 
/**
 * @brief Creates an {@link OH_ArkU1I_CustomSpan} object.
 *
 * @note When the objectn	jnvoke <b> OH_ArkUI_CustomSpan_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_CustomSpani24
 */
OH_ArkUI_CustomSpan* OH_ArkUI_CustomSpan_Create();
 
/**
 * @brief Releases the memory occupied byCustomSpan}customSpan Pointer to CustomSpan} object.
 * @since 24b	;CustomSpan_Destroy(OH_ArkUI_CustomSpan* customSpan);
 
/**
aWmetrics are obtained for the custom span.
 *
 * @note All input pointer parameters must be allocated, managed, and released by +the caller.
 * @param customSpan Pointer to+CustomSpan} object.
 * @param onMeasure The1"	#or measuring the size of custom spa	.fS	Q?=	 occurs.
 * @since 24	ICustomSpan_RegisterOnMeasureCallback(
    OH_ArkUI_CustomSpan* customSpan:	(*onMeasure)(float));
 1	custom span is drawn.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param customSpan Pointer to(CustomSpan} object.
 * @param onDraw The1"	or drawing the custom spa	.fS	Q?=	 occurs.
 * @since 24	hCustomSpan_RegisterOnDrawCallback(
    OH_ArkUI_CustomSpan* customSpan, void(*onDraw)(ArkUI_DrawContext*:=	c));
 
/**
 * @brief Creates an {@link OH_ArkUI_ImageAttachment} object.
 *
 * @note When the objectn	nvoke <b> OH_ArkUI_ImageAttachment_Destroy </b> to destroy it.
 * @return Pointer to the <b>OH_ArkUI_ImageAttachment</b> object̔24
 */
OH_ArkUI_ImageAttachment* OH_ArkUI_ImageAttachment_Create();
 
/**
 * @brief Releases the memory occupied by the {@link 	ImageAttachment}imageAttachmq	%ImageAttachment} object.
 * @since 24b	JImageAttachment_Destroy(OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
image data source in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	ImageAttachment} objectz	$image data source	-fS	Q?=	 occurs.
 * @since 24	ImageAttachment_SetPixelMap(OH_ArkUI_ImageAttachment* imageAttachment,
    struct OH_PixelmapNative* pixelmap);
 
/**
 * @briefimage data source in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	SImageAttachment} object.
 * @param pixelmap Double pointer to the image data source	-fS	Q?=	 occurs.
 * @since 24	WImageAttachment_GetPixelMap(const OH_ArkUI_ImageAttachment* imageAttachment,
    struct7	  
/**
image resource address in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by# the caller.
 * @param imageAttachmq	QImageAttachment} object.
 * @param resource Pointer to the image resource address	-fS	Q?=	 occurs.
 * @since 24	_ImageAttachment_SetResource(OH_ArkUI_ImageAttachment* imageAttachment, const char* resource);
 image resource address in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by# the caller.
 * @param imageAttachmq	ImageAttachment} object.
 * @param buffer Pointer to the buffer for storing the image resource address string in the memory. Yohu need to
 *     allocate the memory.
 * @param bufferSize Buffer size.
 * @param writeLength Pointer to>#ctually written to the buffer if
 *q	(os returned.
 *     <br>Pointer to the minimum length required for writing the entire string to the buffer if
 *Qh	BUFFER_SIZE_ERROR} is returned	-fS	Q?=	 occurs.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	ImageAttachment_GetResource(const OH_ArkUI_ImageAttachment* imageAttachment,
    char* buffer, int32_t bufferSize, int32_t* writeLength);
 
/**
image width in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	;ImageAttachment} object.
 * @param width Image width, in vp	-fS	Q?=	 occurs.
 * @since 24	WImageAttachment_SetSizeWidth(OH_ArkUI_ImageAttachment* imageAttachment, float width);
 image width in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	JImageAttachment} object.
 * @param width Pointer to the image width, in vp	-fS	Q?=	 occurs.
 * @since 24	cImageAttachment_GetSizeWidth(const OH_ArkUI_ImageAttachment* imageAttachment, float* width);
 
/**
image height in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	=ImageAttachment} object.
 * @param height Image height, in vp	-fS	Q?=	 occurs.
 * @since 24	YImageAttachment_SetSizeHeight(OH_ArkUI_ImageAttachment* imageAttachment, float height);
 image height in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	LImageAttachment} object.
 * @param height Pointer to the image height, in vp	-fS	Q?=	 occurs.
 * @since 24	WImageAttachment_GetSizeHeight(const OH_ArkUI_ImageAttachment* imageAttachment, float* h1		image alignment method in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by# the caller.
 * @param imageAttachmq	GImageAttachment} object.
 * @param verticalAlign Image alignment methodh(	~SpanAlignment}	-fS	Q?=	 occurs.
 * @since 24	ImageAttachment_SetVerticalAlign(
    OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ImageSpanAlignment verticalAlign);
 
/**image alignment method in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by# the caller.
 * @param imageAttachmq	VImageAttachment} object.
 * @param verticalAlign Pointer to the image alignment methodh(	
 *    ~SpanAlignment}	-fS	Q?=	 occurs.
 * @since 24	ImageAttachment_GetVerticalAlign(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_ImageSpanAlignment* verticalAlign);
 
/**
image scaling type in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	:ImageAttachment} object.
 * @param objectFit Image scaling_h(	{	,fS	Q?=	 occurs.
 * @since 24	jImageAttachment_SetObjectFit(
    OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit objectFit);
 image scaling type in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	IImageAttachment} object.
 * @param objectFit Pointer to the image scaling_h(	{	,fS	Q?=	 occurs.
 * @since 24	ImageAttachment_GetObjectFit(
    const OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit* objectFit);
 
/**
 * @brief
image margin in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	=ImageAttachment} object.
 * @param margin Image margin, in vp	-fS	Q?=	 occurs.
 * @since 24	\ImageAttachment_SetMargin(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin margin);
 image margin in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	LImageAttachment} object.
 * @param margin Pointer to the image margin, in vp	-fS	Q?=	 occurs.
 * @since 24	lImageAttachment_GetMargin(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* margin);
 
/**
image padding in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	?ImageAttachment} object.
 * @param padding Image padding, in vp	-fS	Q?=	 occurs.
 * @since 24	^ImageAttachment_SetPadding(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin padding);
 image padding in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	NImageAttachment} object.
 * @param padding Pointer to the image padding, in vp	-fS	Q?=	 occurs.
 * @since 24	nImageAttachment_GetPadding(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* padding);
 
/**
image border radii in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	,ImageAttachment} object.
 * @param topLeft RFP^
 * @param topRight RF, in vp.
 * @param bottomLeft R1F?GTvp.
 * @param bottomRight R1F, in vp	-fS	Q?=	 occurs.
 * @since 24	ImageAttachment_SetBorderRadiuses(OH_ArkUI_ImageAttachment* imageAttachment,
    float topLeft, float topRight, float bottomLeft, float bottomRight);
 image border radii in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	9ImageAttachment} object.
 * @param topLeft Pointer to theq^P^"
 * @param topRight Pointer to theq^)$
 * @param bottomLeft Pointer to theU%(vp.
 * @param bottomRight Pointer to theUo]	,fS	Q?=	 occurs.
 * @since 24	ImageAttachment_GetBorderRadiuses(const OH_ArkUI_ImageAttachment* imageAttachment,
    float* topLeft, float* topRight, float* 'bottomLeft, float* bottomRight);
 
/**
image color filter in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	ImageAttachment} object.
 * @param colorFilter Pointer to the image color filter.
 * @param size Size of the filter array.
 * @	'fS	Q?=	 occurs.
 * @since 24	ImageAttachment_SetColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const float* colorFilter, uint32_t size);
 
/**
image color filter in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	ImageAttachment} object.
 * @param colorFilter Double pointer to the buffer for storing the image color filter in the memory. You need to
 *     allocate the memory.
 * @param colorFilterSize Buffer size.
 * @param writeLength Pointer to the actual size of the image color filter array	-fS	Q?=	 occurs.
 *%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24	ImageAttachment_GetColorFilter(const OH_ArkUI_ImageAttachment* imageAttachment,
    float** colorFilter, uint32_t colorFilterSi"ze, uint32_t* writeLength);
 
/**
image drawing color filter in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and release'd by the caller.
 * @param imageAttachmq	_ImageAttachment} object.
 * @param drawingColorFilter Pointer to the image drawing color filter	-fS	Q?=	 occurs.
 * @since 24	[ImageAttachment_SetDrawingColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, constPu* drawingColorFilter);
 image drawing color filter in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and release'd by the caller.
 * @param imageAttachmq	_ImageAttachment} object.
 * @param drawingColorFilter Pointer to the image drawing color filter	-fS	Q?=	 occurs.
 * @since 24	[ImageAttachment_GetDrawingColorFilter(
    const OH_ArkUI_ImageAttachment* imageAttachment,Pu* drawingColorFilter);
 
/**
 in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param imageAttachmq	ImageAttachment} object.
 * @param syncLoad Whether to load images synchronously. **true** to load synchronously; **false** to load
 *     asynchronously	-fS	Q?=	 occurs.
 * @since 24	XImageAttachment_SetSyncLoad(OH_ArkUI_ImageAttachment* imageAttachment, bool syncLoad);
 ris loaded synchronously in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and released b$y the caller.
 * @param imageAttachmq	\ImageAttachment} object.
 * @param syncLoad Pointer to the **syncLoad** parameter indicatingq(is loaded synchronously. **true**
 *    .J  loaded synchronously; **false**.J loaded asynchronously	-fS	Q?=	 occurs.
 * @since 24	dImageAttachment_GetSyncLoad(const OH_ArkUI_ImageAttachment* imageAttachment, bool* syncLoad);
 
/**
%!venhanced SVG tag parsing feature in the image style.
 *
 * @note All input pointer parameters must be allocated, managed, and r-eleased by the caller.
 * @param imageAttachmq	-ImageAttachment} object.
 * @param supportSvgIenhanced SVG tag parsing feature. **true** to enable, **false** otherwise	-fS	Q?=	 occurs.
 * @since 24	\ImageAttachment_SetSupportSvg(OH_ArkUI_ImageAttachment* imageAttachment, bool supportSvg);
 whether the enhanced SVG tag parsing feature is enabled in the image style.
 *
 * @note All input pointer parameters must be alDlocated, managed, and released by the caller.
 * @param imageAttachmq	ImageAttachment} object.
 * @param supportSvg Pointer to the **supportSvg** parameter indicating whether the enhanced SVG tag pmarsing feature is
 *     enabled. **true** means the enhanced SVG tag parsing feature is enabled, and **false`	,fS	Q?=	 occurs.
 * @since 24	cImageAttachment_GetSupportSvg(const OH_ArkUI_ImageAttachment* imageAttachment,
    bool* supportSvgp	range of the content to be replaced in the text change information.
 *
 * @note All input pointer parameters must be allocated,% managed, and released by the caller.A&.
 * @param start Pointer to the start index of the range of the content to be replaced.
 * @param end Pointer to the end index+ of the range of the content to be replaced	-fS	Q	V4	_GetRangeBefore(cons +* event,
    uint32_t* start, uint32_t* endp	styled string used for replacement in the text change information.
 *
 * @note All input pointer parameters must be allocated, $managed, and released by the caller.A&%.
 * @param descriptor Pointer to the_Descriptor}k		fS	Q	V4	%_GetReplacementStyledString(
    cons 2* event, ArkUI_StyledString_Descriptor* descriptorp	styled string of the previewed content in the text change information.
 *
 * @note All input pointer parameters must be allocat(ed, managed, and released by the caller.A&%.
 * @param descriptor Pointer to the_Descriptor}k		fS	Q	V4	!_GetPreviewStyledString(
    cons 3* event, ArkUI_StyledString_Descriptor* descriptor)MA
 *
 * @since 21AA[;

/**
 * @brief Dispose an object of the text layout manager.
 *
 * @param layoutManager PA$ object to be disposed.
 * @since 22b		_Dispose(* layoutManager?	,s the line count.
 *
 * @param layoutManager1;	8</b> object.
 * @param outLineCount Returns the line couQ	=	 occurs	_GetLineCount($* layoutManager, int32_t* outLineCouђ4Gets the rects for range.
 *
 * @param layoutManager1;	</b> object.
 * @param start Indicates the start of range to set.
 * @param end Indicates the end of range to set.
 * @param widthStyle Indicates the width style to set.
 *     For details, see the enum <b>OH_Drawing_RectWidthStyle</b>.
 * @param heightStyle	 style to set.
 *     For details, see the enum <b>OH_Drawing_RectHeightStyle</b>.
 * @param outTextBoxes Returns the array of rects for range	V	=	 occurs	_GetRectsForRange(* layoutManager,
    int32_t start, int32_t end, OH_Drawing_RectWidthStyle widthStyle, OH_Drawing_RectHeightStyle heightStyle,
%    OH_Drawing_TextBox** outTextBoxes?	>s the glyph position at coordinate.
 *
 * @param layoutManager1;	</b> object.
 * @param dxr	$X of typography to set.
 * @param dyr	QY of typography to set.
 * @param outPos Returns the glyph position at coordinate	V	=	 occurs	"_GetGlyphPositionAtCoordinate(
   AN* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPos?	line metrics in	layoutManager1;	a typography object <b></b>.
 * @param lineNumber}line.
 * @param outMetric3a line metrics object <b>OH_Drawing_LineMetrics</b>	V	=	 occurs	_GetLineMetrics(K* layoutManager,
    int32_t lineNumber, OH_Drawing_LineMetrics* outMetrics?	Bs the character position at coordinate.
 *
 * @param layoutManager1;	</b> object.
 * @param dxr	$X of typography to set.
 * @param dyr	UY of typography to set.
 * @param outPos Returns the character position at coordinate	V	=	 occurs.
 * @since 24	&_GetCharacterPositionAtCoordinate(
   AN* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPos?	Uglyph range produced by the specified range of characters.
 *
 * @param layoutManager1;	</b> object.
 * @param charRange The character range.
 * @param outGlyphRange The range of glyphs generated by charRange.
 * @param outActualCharRange If not null, specifies the actual character range that fully defines the returned
 *      glyph range, 6which may match or slightly exceed the requested range	V	=	 occurs.
 * @since 24	$_GetGlyphRangeForCharacterRange(
   A* layoutManager, OH_Drawing_Range* charRange,
    OH_Drawing_Range** outGlyphRange, OH_Drawing_Range** outActualCharRange);

/*l	d	\character range that maps to the glyphs in the given glyph range.
 *
 * @param layoutManager1;	</b> object.
 * @param glyphRange The glyph range.
 * @param outCharRange The range of characters generated by glyphRange.
 * @param outActualGlyphRange If not null, specifies the full glyph range generated by the returned character range,
 *      which 6may match or slightly exceed the requested glyph range	V	=	 occurs.
 * @since 24	$_GetCharacterRangeForGlyphRange(
   A* layoutManager, OH_Drawing_Range* glyphRange,
    OH_Drawing_Range** outCharRange, OH_Drawing_Range** outActualGlyphRange);

/J	Set linear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by thne caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param linearGradiq<b>OH_P:Options</b>k		=	 occurs.n	/XParagraphStyle_SetLinearGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, const OH_P:Options* linearGradiВGet linear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by thne caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param linearGradiq<b>OH_P:Options</b>k		=	 occurs.n	/XParagraphStyle_GetLinearGradient(
    const OH_ArkUI_ParagraphStyle* paragraphStyle, OH_P:Options* linearGradiВSet radial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by thne caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param radialGradiq%<b>OH_ArkUI_RadialGradientOptions</b>k		=	 occurs.n	/ParagraphStyle_SetRadialGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, const OH_ArkUI_RadialGradientOptions* radialGradiВGet radial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by thne caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param radialGradiq%<b>OH_ArkUI_RadialGradientOptions</b>k		=	 occurs.n	/ParagraphStyle_GetRadialGradient(
    const OH_ArkUI_ParagraphStyle* paragraphStyle, OH_ArkUI_RadialGradientOptions* radialGradient?	9STYLED_STRING_H
/** @} */
Xz]x   
'-2025UI capabilities of ArkUIG)s, attribute setting, and event listeningA$Onative_node.h
 *
 * @brief Provides type definitions for <b>NativeNode</b> APIsXNODE_H
#define ARKUI_NATIVE_NODE_H

#include "native_type.h"
#include "ui_input_event.h"@3#include <cstdint>
#else
#include <stdint.h>
#endif@) components max function sizeA #define MAX_NODE_SCOPE_NUM 1000
{t)ArkUI component types that can be createdJ0t Custom node. */
    ARKUI_NODE_CUSTOM = 0,
    /** Text. */
    ARKUI_NODE_TEXT = 1,
    /** Text span. */
    ARKUI_NODE_SPAN = 2,
    /** Image span. */
    ARKUI_NODE_IMAGE_SPAN = 3,
    /** Image. */
    ARKUI_NODE_IMAGE = 4,
    /** Toggle. */
    ARKUI_NODE_TOGGLE = 5,
    /** Loading icon. */
    ARKUI_NODE_LOADING_PROGRESS = 6,
    /** Single-line text input. */
    ARKUI_NODE_TEXT_INPUT = 7,
    /** Multi-line text input. */
    ARKUI_NODE_TEXT_AREA = 8,
    /** Button. */
    ARKUI_NODE_BUTTON = 9,
    /** Progress indicator. */
    ARKUI_NODE_PROGRESS = 10,
    /** Check box. */
    ARKUI_NODE_CHECKBOX = 11,
    /** XComponent. */
    ARKUI_NODE_XCOMPONENT = 12,
    /** Date picker. */
    ARKUI_NODE_DATE_PICKER = 13,
    /** Time picker. */
    ARKUI_NODE_TIME_PICKER = 14,
    /** Text picker. */
    ARKUI_NODE_TEXT_PICKER = 15,
    /** Calendar picker. */
    ARKUI_NODE_CALENDAR_PICKER = 16,
    /** Slider. */
    ARKUI_NODE_SLIDER = 17,
    /** Radio */
    ARKUI_NODE_RADIO = 18,
    /** Image animator. */
    ARKUI_NODE_IMAGE_ANIMATOR = 19,
    /** XComponent of type TEXTURE.
     *  @since 18
     */
    ARKUI_NODE_XCOMPONENT_TEXTURE,
    /** Check box group.
     *  @since 15
     */
    ARKUI_NODE_CHECKBOX_GROUP = 21,
    /**
     * 文本编辑器。@$ARKUI_NODE_TEXT_EDITOR = 22,
    /** Stack container. */
    ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
    /** Swiper. */
    ARKUI_NODE_SWIPER,
    /** Scrolling container. */
    ARKUI_NODE_SCROLL,
    /** List. */
    ARKUI_NODE_LIST,
    /** List item. */
    ARKUI_NODE_LIST_ITEM,
    /** List item group. */
    ARKUI_NODE_LIST_ITEM_GROUP,
    /** Column container. */
    ARKUI_NODE_COLUMN,
    /** Row container. */
    ARKUI_NODE_ROW,
    /** Flex container. */
    ARKUI_NODE_FLEX,
    /** Refresh component. */
    ARKUI_NODE_REFRESH,
    /** Water flow container. */
    ARKUI_NODE_WATER_FLOW,
    /** Water flow item. */
    ARKUI_NODE_FLOW_ITEM,
    /** Relative layout component. */
    ARKUI_NODE_RELATIVE_CONTAINER,
    /** Grid. */
    ARKUI_NODE_GRID,
    /** Grid item. */
    ARKUI_NODE_GRID_ITEM,
    /** Custom span. */
    ARKUI_NODE_CUSTOM_SPAN,
    /**
     * EmbeddedComponent.
     * @since 20
     */
    ARKUI_NODE_EMBEDDED_COMPONENT,
    /**
     * Undefined.
     * @since 20
     */
    ARKUI_NODE_UNDEFINED,
    /**
     * Picker container.
     * @since 23
     */
    ARKUI_NODE_PICKER = 1018,
} ArkUI_NodeType`the general input parameter structure of the {@link setAttribute} function. The property
 * setting interfaces can utilize the Dmember variables within it to store data of specific parameter typesA0{
    /** A number array, used to store parameters of the number array type. */
    const ArkUI_NumberValue* value;
    /** TheL size of the number array, used together with the variable value, indicatingvalue array. */
    int32_t size;
    /** String type, used to store parameters of the string type. */
    const char* string;
l    /** Object type, used to store parameters of the object type. */
    void* object;
} ArkUI_AttributeItem`*the ArkUI style attributes that can be setJ0t@brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in vp.\n
     *
     */
    NODE_WIDTH = 0,
    /**
     * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in vp.\n
     *
     */
  +  NODE_HEIGHT,
    /**
     * @brief Defineaattribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *
     */
    NODE_BACKGROUND_COLOR,
    /**
     * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address;\n
     * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address;\n
     * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_BACKGROUND_IMAGE,
    /**
     * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in vp.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     *
     */
    NODE_PADDING,
    /**
     * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID.\n
     *
     */
    NODE_ID,
    /**
     * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means th6at the component can interact with users, and <b>0</b>_ \n
     *
     */
    NODE_ENABLED,
    /**
     * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in vp.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     *
     */
    NODE_MARGIN,
    /**
     * @brief Defines the translate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis, in vp.\n
     * .value[1].f32: distance to translate along the y-axis, in vp.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. \n
     *
     */
    NODE_TRANSLATE,
    /**
     * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
     * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis.\n
     * .value[1].f32: scale factor along the y-axis. \n
     *
     */
    NODE_SCALE,
    /**
     * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
     * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
     * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
     * The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the rotation axis vector.\n
     * .value[1].f32: Y coordinate of the rotation axis vector.\n
     * .value[2].f32: Z coordinate of the rotation axis vector.\n
     * .value[3].f32: rotation angle.\n
     * .value[4].f32: line of sight, that is, the distance from the viPewpoint to the z=0 plane, in vp. \n
     *
     */
    NODE_ROTATE,
    /**
    qbrightness attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *U .value[0].f32: brightness value. \n
     *
     */
    NODE_BRIGHTNESS,
    /**
    qsaturation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
   X  * .value[0].f32: saturation value. \n
     *
     */
    NODE_SATURATION,
    /**
    qblur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
     * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
     * the image is not blurred. The unit is vp. \n
     *
     */
    NODE_BLUR,
    /**
    qradient attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient. This attribute takEwhen
     * {@link ArkUI_LinearGradientDirection} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When it is set, the <b>angle</b> attribute does not take effect.
     * The parameter type is {@link ArkUI_LinearGradientDirection}: \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: start angle of the linear gradient. \n
     * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_LINEAR_GRADIENT,
    /**
    qalignment attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_ALIGNMENT,
    /**
     * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     *
     */
    NODE_OPACITY,
    /**
     * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders. \n
     * 2: .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     *
     */
    NODE_BORDER_WIDTH,
    /**
     * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius 0of the four corners. \n
     * 2: .value[0].f32: . \n
     * .value[1].f32:o. \n
     * .value[2].f32:F. \n
     * .value[3].f32:F!e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: . \n
     * .value[1].f32:o. \n
     * .value[2].f32:F. \n
     * .value[3].f32:F!. \n
     *
     */
    NODE_BORDER_RADIUS,
    /**
     * @brief Defines the border color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * 2: .valu e[0].u32: color of the top borde{S, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right borde{S, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower borde{R, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left borde{, for example, <b>0xFFFF11FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the top borde{S, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right borde{S, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower borde{R, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left borde{, for example, <b>0xFFFF11FF</b>. \n
     *
     */
    NODE_BORDER_COLOR,
    /**
     * @brief Defines the border line style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
     * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line style of the top border. \n
     * .value[1].i32: line style of the right border. \n
     * .value[2].i32: line style of the bottom border. \n
     * .value[3].i32: line style of the left border. \n
     *
     */
    NODE_BORDER_STYLE,
    /**
     * @brief Defines the z-index attribute for the stack sequence.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: z-index value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: z-index value. \n
     *
     */
    NODE_Z_INDEX,
    /**
     * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
     * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     *
     */
    NODE_VISIBILITY,
    /**
     * @brief Defines the clipping and masking attribute, which can be set, reset, and obtained as required through
     * APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to clip the component based on the parent container bounds.
     * The va6lue <b>1</b> means to clip the component, and <b>0</b>_ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to clip the componment based on the parent container bounds.
     * The value <b>1</b> means to clip the component, and <b>0</b>_ \n
     *
     */
    NODE_CLIP,
    /**
     * @brief Defines the clipping region on the component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
     * which supports four types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[6]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[7]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[8]?.f32: radius of the bottom right corner of the rectangular shape.\n
     * ?.object: clipOption of the rectangle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is rectangle, and .size must be equal to 1.
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * ?.object: clipOption of the circle. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is circle, and .size must be equal to 1.
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * ?.object: clipOption of the ellipse. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is ellipse, and .size must be equal to 1.
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * ?.object: clipOption of the path. The parameter type is {@link ArkUI_RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is path, and .size must be equal to 1.
     * Format of the return value {@link ArkUI_AttributeItem}, which supports four types of shapes: \n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5].f32: radius of the top left corner of the rectangular shape; \n
     * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
     * .value[7].f32: radius of the top right corner of the rectangular shape; \n
     * .value[8].f32: radius of the bottom right corner of the rectangular shape; \n
     * .value[9]?.f32: horizontal coordinate offset of the rectangle. \n
     * .value[10]?.f32: vertical coordinate offset of the rectangle. \n
     * 2. Circle:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * .value[3]?.f32: horizontal coordinate offset of the circle.\n
     * .value[4]?.f32: vertical coordinate offset of the circle.\n
     * 3.Ellipse:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * .value[3]?.f32: horizontal coordinate offset of the ellipse.\n
     * .value[4]?.f32: vertical coordinate offset of the ellipse.\n
     * 4. Path:\n
     * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_CLIP_SHAPE,
    /**
     * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers. \n
     *
     */
    NODE_TRANSFORM,
    /**
     * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
     * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
     *
     */
    NODE_HIT_TEST_BEHAVIOR,
    /**
     * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
     * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     *
     */
    NODE_POSITION,
    /**
     * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
     *
     */
    NODE_SHADOW,
    /**
     * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parametero for setting the attribute:\n
     * .value[0]?.f32: blur radius of the shadow, in vp.\n
     * .value[1]?.i32:coloring strategy. The value <b>1</b> means to enable the coloring
     * strategy, and <b>0</b> (default value) means the oppo_\n
     * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
     * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
     * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR<$/b>.\n
     * .value[5]?.u32: shadow{ For example, 0xFFFF0000 indicates red.\n
     * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     _\n
     *
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the s%hadow, in vp.\n
     * .value[1].i32:coloring strategy. \n
     * .value[2].f32: offset of the shadow along the x-axis, in px.\n
     * .value[3].f32: offset of the shadow along the y-axis, in px.\n
     * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SH3ADOW_TYPE_COLOR</b>.\n
     * .value[5].u32: shadow{ For example, 0xFFFF0000 indicates red.\n
     * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
     _\n
     *
     */
    NODE_CUSTOM_SHADOW,
    /**
     * @brief Defines the background image width and height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parametFer for setting the attribute:\n
     * .value[0].f32: width of the imaSE+∞), and the unit is vp. \n
     * .value[1].f32: height of the imaS+∞), and the unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the image, in vp. \n
     * .value[1].f32: height of the image, in vp. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE,
    /**
     * @brief Defines the background image size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: size of the background imag of {@link ArkUI_ImageSize}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: size of the background imag of {@link ArkUI_ImageSize}. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
    /**
     * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkURI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blue2@ of {@link ArkUI_BlurStyle}. \n
     * .value[1]?.i32: color modI of {@link ArkUI_ColorMode}. \n
     * .value[2]?.i32: adaptive color modE of {@link ArkUI_AdaptiveColor}. \n
     * .value[3]?.f32: blur degreS.0, 1.0]. \n
     * .value[4]?.f32: start boundary of grayscale blur. \n
     * .value[5]?.f32: end boundary of grayscale blur.i \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blue2? of {@link ArkUI_BlurStyle}. \n
     * .value[1].i32: color modH of {@link ArkUI_ColorMode}. \n
     * .value[2].i32: adaptive color modD of {@link ArkUI_AdaptiveColor}. \n
     * .value[3].f32: blur degreS.0, 1.0]. \n
     * .value[4].f32: start boundary of grayscale blur. \n
     * .value[5].f32: end boundary of grayscale blur. \n
     *
     */
    NODE_BACKGROUND_BLUR_STYLE,
    /**
     * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the center point, in vp.\n
     * .value[1]?.f32: Y coordinate of the center point, in vp.\n
     * .value[2]?.f32: Z coordinate of the center point, in vp.\n
     * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
     * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
     * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the center point, in vp.\n
     * .value[1].f32: Y coordinate of the center point, in vp.\n
     * .value[2].f32: Z coordinate of the center point, in vp.\n
     * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
     * returns the calculated value in vp.
     *
     */
    NODE_TRANSFORM_CENTER,
    /**
     * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity values of the start and end points.\nc
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: ]number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mod of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32:M animation duration, in milliseconds.\n
     * .value[2].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: n\umber of times that the animation is played. \n
     * .value[5].i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */
    NODE_OPACITY_TRANSITION,
    /**
     * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value2 of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7]?.i32: animation delay duration, in milliseconds. \n
     * .value[8]?.ib32: number of times that the animation is played. \n
     * .value[9]?.i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-component of the rotation vector. \n
     * .value[1].f32: Y-component of the rotation vector. \n
     * .value[2].f32: Z-component of the rotation vector \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7].i32: animation delay duration, in milliseconds. \n
     * .value[8].i32_: number of times that the animation is played. \n
     * .value[9].i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10].f32: animation playback speed. \n
     *
     */
    NODE_ROTATE_TRANSITION,
    /**
     * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The2 of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5]?.i32: animation delay duration, in milliseconds. \n
     * .value[6]?.ib32: number of times that the animation is played. \n
     * .value[7]?.i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .value[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: scale factor along the z-axis. \n
     * .value[3].i32: animation duration, in m5illiseconds. \n
     * .value[4].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5].i32: animation delay duration, in milliseconds. \n
     * .value[6].i32_: number of times that the animation is played. \n
     * .value[7].i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8].f32: animation playback speed. \n
     *
     */
    NODE_SCALE_TRANSITION,
    /**
     * @brief Defines the transition translation attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * value[3].i32: animation duration, in millisec-onds. \n
     * value[4].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n \n
     * value[5]?.i32: animation delay duration, in milliseconds. \n
     * value[6]?.i32_: number of times that the animation is played. \n
     * value[7]?.i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: translation distance along the x-axis, in vp.\n
     * value[1].f32: translation distance along the y-axis, in vp.\n
     * value[2].f32: translation distance along the z-axis, in vp.\n
     * vYalue[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n \n
     * value[5].i32: animation delay duration, in milliseconds. \n
     * value[6].i32: \number of times that the animation is played. \n
     * value[7].i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * value[8].f32: animation playback speed. \n
     *
     */
    NODE_TRANSLATE_TRANSITION,
    /**
     * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     *\ .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32: ]number of times that the animation is played.\n
     * .value[5]?.i32: animation playback mod of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
     * .valuVe[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve2 of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: n\umber of times that the animation is played. \n
     * .value[5].i32: animation playback mod of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */
    NODE_MOVE_TRANSITION,

    /**
     * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUSABLE,

    /**
     * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_DEFAULT_FOCUS,

    /**
     * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner]vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left cornervp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].f32: X coordinate of the touch point relative to the upper left corner]vp. \n
     * .data[1].f32: Y coordinate of the touch point relative to the upper left cornervp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
     *
     */
    NODE_RESPONSE_REGION,

    /**
     * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * You can set the overlay content through .string or .object as follow, and .string has higher priority.
     * .string: mask text.\n
.     * .value[0]?.i32: position of the overlay . Optional.
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
     * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
     * \n
     * .value[3]?.i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_LTR.</b> \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * \n
     * .object: the node tree used as the overlay.
     * The parameter type is {@link ArkUI_NodeHandle}.
     * The default value is <b>nullptr.</b> \n
     * this parameter is conflict with .string, and it has lower priority than .string.
     * \n
     * Format of the return value {@lindk ArkUI_AttributeItem}:\n
     * .string: mask text.\n
     * .value[0].i32: position of the overlay .
     * The parameter type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
     * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
     * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
     * .value[3].i32: the layout direction.
     * The parameter type is {@link ArkUI_Direction}, supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_LTR.</b> \n
     * .object: the overlay node handle. \n
     */
    NODE_OVERLAY,
    /**
     * @brief Defines the sweep gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
     * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
     * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5]?.i32: whether the colors are repeated.K The value <b>1</b> means that the colors are repeated,
     * and <b>0</b>_\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
     * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
     * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
     * .value[5].i32: kwhether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b>_\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_SWEEP_GRADIENT,
    /**
     * @brief Defines the radial gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
     * and <b>0</b> m_ \n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colors are repeated. The value <b>1</b> mean3s that the colors are repeated,
     * and <b>0</b>_\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     */
    NODE_RADIAL_GRADIENT,
    /**
     * @brief Adds a mask of the specified shape to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
     * shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
     * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10]?.f32: radius of the top right corner of the rectangular shape.\n
     * .value[11]?.f32: radius of the bottom right corner of the re@ctangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[4].f32: width of the circle.\n
     *V .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[4].f32: width of the ellipse.\n
 Y    * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indic;ator.\n
     * .value[3].u32: color of the progress indicat{\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
     * 1. Re$ctangle:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8].f32: radius of the top left corner of the rectangular shape.\n
     * .value[9].f32: radius of the bottom left corner of the rectangular shape.\n
     * .value[10].f32: radius of the top right corner of the rectangular shape.\n
     * .value[11].f32: radius of the bottom right corner of the rec?tangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the circle._\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the ellipse^.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill{ \n
     * .value[1].u32: sn \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type.\n
     * .value[1].f32: current value of the progress indicator.\n
     * .value[2].f32: maximum value of the progress indicator.\n
     * .value[3].u32: color of the progress indicator.\n
     *
     */
    NODE_MASK,
    /**
     * @brief Blends the component's background with the content of the component's child node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
     * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
     *
     */
    NODE_BLEND_MODE,
   	 /**
    qdirection of the main axis.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction of the main axis.\n
     * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     *
     */
    NODE_DIRECTION,
    /**
     * @brief Defines the size constraints.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     *
     */
    NODE_CONSTRAINT_SIZE,
    /**
     * @brief Defines the grayscale effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_GRAY_SCALE,
    /**
     * @brief Inverts the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% image inversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_INVERT,
    /**
     * @brief Defines the sepia conversion ratio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_SEPIA,
    /**
     * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
     * A larger value indicates a higher contrast. Value range: [0, 10).\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: contrast. Value range: [0, 10).\n
     *
     */
    NODE_CONTRAST,
    /**
     * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format.\n
     *
     */
    NODE_FOREGROUND_COLOR,

    /**
     * @brief Defines the offset of the component's child .
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     *
     */
    NODE_OFFSET,
    /**
    qanchor for locating the component's child.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate of the anchor, in vp.\n
     * .value[1].f32: Y coordinate of the anchor, in vp.\n
     *
     */
    NODE_MARK_ANCHOR,

    /**
     * @brief Defines the position of the background image in the component, that is, the coordinates relative to
     * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].?i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].?i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
     * The default value is <b>ARKUI_ALIGNMENT_TOP_START</b>. \n
     * .value[3].i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n9
     */
    NODE_BACKGROUND_IMAGE_POSITION,
    /**
    qalignment rules in the relative container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
     ,*
     */
    NODE_ALIGN_RULES,
    /**
    qalignment mode of the child components along the cross axis of the parent container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
     * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_GALIGNMENT_AUTO</b>. \n
     *
     */
    NODE_ALIGN_SELF,
    /**
    qpercentage of the parent container's remaining space that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent containejr's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_GROW,
    /**
    qpercentage of the parent container's shrink size that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's shri`nk size that is allocated to the component. \n
     *
     */
    NODE_FLEX_SHRINK,
    /**
    qbase s   ize of the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
  .   *
     */
    NODE_FLEX_BASIS,
    /**
    qaccessibility group. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
     * form an entire selectable component.
     * In this case, the accessibility service will no longer be available for the content of its child components.
     * The value is <b>1</b> orE <b>0</b>.
     *
     */
    NODE_ACCESSIBILITY_GROUP,

    /**
    qaccessibility text. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility text.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility text.
     *
     */
    NODE_ACCESSIBILITY_TEXT,

 utaccessibility service model. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
     *
     */
    NODE_!ACCESSIBILITY_MODE,

    /**
    qaccessibility description.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility description.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility description.
     *
     */
    NODE_ACCESSIBILITY_DESCRIPTION,

    /**
     * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
     * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
     * of the page to the root container.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUS_STATUS,
    /**
     * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: aspect ratio of the componentwidth/height format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: aspect ratiowidth/height format. \n
     *
     */
    NODE_ASPECT_RATIO,
    /**
     * @brief Defines the weight of the component within its row, column, or flex container for proportional
     * distribution of available space within the container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: weight of the component along the main axis. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: weight of the component along the main axis. \n
     .*
     */
    NODE_LAYOUT_WEIGHT,
    /**
    q,Tpriority for'row, column, or flex  (single-line) container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: display priority&ontainer. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: display priority &Container. \n
     *
     */
    NODE_DISPLAY_PRIORITY,
    /**
    qthickness of an element's outline.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     *
     */
    NODE_OUTLINE_WIDTH,
    /**
     * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in percentage.\n
     *
     */
    NODE_WIDTH_PERCENT,
    /**
     * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in percentage.\n
     *
     */
    NODE_HEIGHT_PERCENT,
    /**
     * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in percentage.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     *
     */
    NODE_PADDING_PERCENT,
    /**
     * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in percentage.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     *
     */
    NODE_MARGIN_PERCENT,

    /**
      * @brief The implicit shared element transition within the component supports attribute setting,
      * attribute reset, and attribute acquisition interfaces.
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is false, and the original position will remain unchanged if not involved. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      *\n
      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is not false, if not involved, the original position will remain unchanged. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components cannot be bound to the same id. \n
      */
    NODE_GEOMETRY_TRANSITION,

    /**
      * @brief specifies the parameters of the chain formed by this component as the chain head,
      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
      *
      * Only takes effect when the parent container is RelativeContainer
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      *\n
      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
      */
    NODE_RELATIVE_LAYOUT_CHAIN_MODE,

    /**
     * @brief Set the component content filling method in the process of width and height animation,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Content filling mode {@link ArkUI_Rende*rFit}.\n
     *
     */
    NODE_RENDER_FIu@brief External stroke color properties, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
     * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_OUTLINE_COLOR,

    /**
     * @brief Set the height and width dimensions, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     *
     */
    NODE_SIZE,

    /**
     * @brief Set whether th?
component and child component are
     * rendered off the screen first and then fused with the parent control,
     * supporting property setting, property reset and property acquisition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_RENDER_GROUP,

    /**
     * @brief Add color overlay effect to components, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_COLOR_BLEND,

    /**
     * @brief Provide content ambiguity capability for the current component,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3]?.f32: blur degree.SC.0, 1.0]. \n
     * .value[4]?.f32 It is a gray-level fuzzy paramet>127].\n
     * .value[5]?.f32 It is a gray-level fuzzy paramet127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
     * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration va'lue.\n
     * .value[3].f32: blur degreSB.0, 1.0]. \n
     * .value[4].f32 It is a gray-level fuzzy paramet=127].\n
     * .value[5].f32 It is a gray-level fuzzy paramet127].\n
     *
     */
    NODE_FOREGROUND_BLUR_STYLE,

    /**
     * @brief Defines the component size and position for layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttTributeItem} parameter for setting the attribute:\n
     * .value[0].i32: X coordinat% \n
     * .value[1].i32: Y coordinat \n
     * .value[2].i32: width  \n
     * .value[3].i32: height \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: X coordinate of the compon% \n
     * .value[1].i32: Y coordinat \n
     * .value[2].i32: width  \n
     * .value[3].i32: height& \n
     *
     */
    NODE_LAYOUT_RECu@brief W?component supports click-to-focus capability,
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     *
     */
    NODE_FOCUS_ON_TOUCH,

    /**
     * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders, in percentage. \n
     * 2: .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     *
     */
    NODE_BORDER_WIDTH_PERCENT = 85,
    /**
     * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four co1rners, in percentage. \n
     * 2: .value[0].f32:%$percentage. \n
     * .value[1].f32:o$percentage. \n
     * .value[2].f32:F$percentage. \n
     * .value[3].f32:F&percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of the u $percentage. \n
     * .value[1].f32:o$percentage. \n
     * .value[2].f32:F$percentage. \n
     * .value[3].f32:F&percentage. \n
     *
     */
    NODE_BORDER_RADIUS_PERCENT = 86,

    /**
     * @brief Accessible ID, which can be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Accessible ID。\n
     *
     */
    NODE_ACCESSIBILITY_ID = 87,

    /**
     * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible action types，and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ACTIONS = 88,

    /**
     * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32：accessible role typeand uses the {@link ArkUI_NodeType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible role type，and uses the {@link ArkUI_NodeType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ROLE = 89,

    /**
     * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .objectthe parameter type is {@link ArkUI_AccessibilityState}.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityState}.\n
     *
     */
    NODE_ACCESSIBILITY_STATE = 90,

    /**
     * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object：the parameter type is {@link ArkUI_AccessibilityValue}.\n
     *
     */
    NODE_ACCESSIBILITY_VALUE = 91,
    /**
     * @brief defines control components to extend their security zones,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
     * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
     * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
     * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: extends the security zone. \n. \n
     *.value[1].u32: indicates the direction to extend the security zone. \n. \n
     *
     */
    NODE_EXPAND_SAFE_AREA = 92,

    /**
     * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for se>tting the attribute:\n
     * .value[...].f32: threshold array0?0 to 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
     *
     * @since 12
     */
    /**
     * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
     * visible area change event of the component, this enum extends the configuration capbility.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array0?0 to 1.
     * .?object: pass in one {@link ArkUI_VisibleAreaEventOptions} objcet for configging the ratio or other options.
     * Please note, when use this param, the ratios set through .value[...].f32 will be ignored, and the update
     * interval from it is always ignored too.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
     * .object: the {@link ArkUI_VisibleAreaEventOptions} objcet.
     *
     * @since 22
     */
    NOD/E_VISIBLE_AREA_CHANGE_RATIO = 93,

    /**
    qtransition effect when the component is inserted or deleted.
     * This attribute can be set, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
     *
     */
    NODE_TRANSITION = 94,

    /**
     * @brief Defines the component ID.
     * This attribute can be obtained through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
     * .value[0].i32: component ID. \n
     *
     * @deprecated since 20
     * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
     */
    NODE_UNIQUE_ID = 95,

    /**
     * @brief Set the current component system focus box style.
     *
     * Format of the {@link ArkUI_AttributeItem}@ parameter for setting the attribute: \n
     * .value[0].f32: T0focus box and the . \n
     * Positive numbers represent the outer side, negative numbers represent the inner side. \n
     * Percentage is not supported. \n
     * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
     * .value[2].u32: Focus box color. \n
     * \n
     *
     */
    NODE_FOCUS_BOX = 96,

    /**
     * @brief Defines the moving distance limit for the component-bound tap gesture.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: allowed moving distance of a finger, inB vp. \n
     *
     */
    NODE_CLICK_DISTANCE = 97,

    /**
    focus can be placed on this component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
     *
     * @since 14
     */
    NODE_TAB_STOP = 98,
    
    /**
     * @brief Defines the backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter forL setting the attribute:\n
     * .value[0].f32：backdrop blur radius, in px0?+∞).\n
     * .value[1]?.f32：grayscale blur settings that control the brightness of the black color.\n
     * The value ran??
n127].\n
     * .value[2]?.f32：grayscale blur settings that control the darkness of the white color.\n
     *1?127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：backdrop blur radius, in px0?+∞).\n
     * .value[1].f32：grayscale blur settings that control the brightness of the black color.\n
     * The value rang@?	m127].\n
     * .value[2].f32：grayscale blur settings that control the darkness of the white color.\n
     *1?127].\n
     *
     * @since 15
     */
    NODE_BACKDROP_BLUR = 99,

    /**
     * @brief Defines the background image resizable attribute, which can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     *
     * @since 19
     */
    NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,

    /**
     * @brief {	next focus node.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
     * .object: next focus node. The parameter type iso {@link ArkUI_NodeHandle}.\n
     * \n
     *
     * @since 18
     */
    NODE_NEXT_FOCUS = 101,

    /**
    qparameters for visible area change events.
     *
     * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
     * the expected interval due to system load and other factors.
     * The interval between two visible area change callbacks will not be less than the expected update interval. If the
     * provided expected interval is too short, the actual callback interval will be determined by the system load.
     * By default, the interval threshold of the visible area change callback includes 0. This means that,
     * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: parameters for visible area change events.
     * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
     *
     * @since 17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,

    /**
     * @brief Defines the translate attribute, which supports for percentile translation input, and can be set, reset,
     * and obtained as required through APIs.\n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
     * The unit is vp only if value[3] exists and value[3] is 0. The default value of value[0] is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
     * The unit is vp only if value[4] exists and value[4] is 0. The default value of value[1] is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>.\n
     * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shift in the x direction.
     *  The default value is <b>1</b>.\n
     * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
     *  The default value is <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
     * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
     * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
     * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
     *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
     *  distance is percentage;\n
     * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
     *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
     *  distance is percentage;\n
     *
     * @since 20
     */
    NODE_TRANSLATE_WITH_PERCENT = 103,

    /**
     * @brief Sets component rotation with multi-axis angle control. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>. \n
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>.
     * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
     * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
     * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
     *
     * @since 20
     */
    NODE_ROTATE_ANGLE = 104,

    /**
     * @brief Defines the width attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the width of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_WIDTH_LAYOUTPOLICY = 105,

    /**
     * @brief Defines the height attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy that the height of the component follows.\n
     * The parameter type is {@link ArkUI_LayoutPolicy}. \n
     *
     * @since 21
     */
    NODE_HEIGHT_LAYOUTPOLICY = 106,

    /**
     * @brief Defines the position attribute in param type Edges, which specifies the position of the component
     * by the distance relative to the parent container's four edges. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of edges for position. The parameter type is {@link ArkUI_PositionEdges}. \n
     *
     * @since 21
     */
    NODE_POSITION_EDGES = 107,

    /**
     * @brief Set whether the component enables the ability to invert colors.
     * This attribute can be set , and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.\n
     *
     * @since 21
     */
    NODE_ALLOW_FORCE_DARK = 108,

    /**
     * @brief Defines the pixelRound attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkUI_PixelRoundPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of policy for pixelRound. The parameter type is {@link ArkoUI_PixelRoundPolicy}. \n
     *
     * @since 21
     */
    NODE_PIXEL_ROUND = 109,

    /**
     * @brief Setefault click sound effect for this component.
     * It only takes effect on supported devices, such as TV. Whether it can produce sound depends on the device's
     * sound-related settings. For example, sound effects will not be played in silent mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter value is either 1 or 0. 1 indicates the default click sound effect is enabled,
     * while 0 indicates it is disabled. The default value is 1.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Indicates whether the default click sound effect is enabled for this node.\n
     * The parameter value is either 1 or 0. 1 indicates \the default click sound effect is enabled,
     * while 0 indicates it is disabled.\n
     *@$NODE_ENABLE_CLICK_SOUND_EFFECT = 110,

    /**
     * @brief Defines the motion path attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object indicMotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     * \n
     * Format of the return value5 {@link ArkUI_AttributeItem}: \n
     * .object indicMotionPathOptions. The parameter type is
     * {@link ArkUI_MotionPathOptions}. \n
     *
     * @since 23
     */
    NODE_MOTION_PATH = 111,

    /**
     * @brief Defines the hover effect applied when the component is hovered over. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. The default value is <b>ARKUI_HOVER_EFFECT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Hover effect applied when the component is hovered over.
     * The parameter type is {@link ArkUI_HoverEffect}. \n
     *
     * @since 23
     */
    NODE_HOVER_EFFECT = 112,

    /**
     * @brief Configures the container as a focus group with the specified identifier. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group. The default value is <b>0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. This setting only takes effect when <b>isGroup</b> is <b>true</b>. The default value is <b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     *
     * @since 23
     /*/
    NODE_FOCUS_SCOPE_ID = 113,

    /**
    qcomponent focus priority within a specific focus scope. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}.
     * The default value is <b>ARKUI_FOCUS_PRIORITY_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: focus priority within the focus scope. The parameter type is {@link ArkUI_FocusPriority}. \n
     *
     * @since 23
     */
    NODE_FOCUS_SCOPE_PRIORITY = 114,

    /**
    q#	threshold for click events. This attribute can be set, reset, and obtained as required through APIs.
     *
     * @note If finger movement exceeds the preset distance limit, click event recognition will fail.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: distance threshold for click events.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: distance threshold for click events. \n
     *
     * @since 23
     */
    NODE_ON_CLICK_EVENT_DISTANCE_THRESHOLD = 115,

    /**
     * @brief Defines the component event response region. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL</b>.
  Y   * .data[1].f32: x-coordinate of the pointer position relative to the upper left cornerbvp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left cornervp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].i32: input tool type for the response region, specified using the {@link ArkUI_ResponseRegionSupportedTool} enum. Default value: <b>ARKUI_RESPONSE_REGIN_SUPPORTED_iTOOL_ALL</b>.
     * .data[1].f32: x-coordinate of the pointer position relative to the upper left cornerbvp. \n
     * .data[2].f32: y-coordinate of the pointer position relative to the upper left cornervp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order.
     *
     * @since 23
     */
    NODE_RESPONSE_REGION_LIST = 116,

    /**
     * @brief Defines the event monopolization attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Boolean value (1 or 0).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Boolean value (1 or 0).
     *
     * @since 23
     */
    NO)DE_MONOPOLIZE_EVENTS = 117,

    /**
    qweight of the component in a chain, which is used to re-lay out components that form the chain.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     *
     * @since 23
     */
    NODE_CHAIN_WEIGHT = 118,

    /**
     * @brief Expands the layout safe area of a component.,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0].u32: The region type to expand the component's layout safe area into. The default value is LayoutSafeAreaType.SYSTEM. {@link ArkUI_LayoutSafeAreaType},
     * For example, ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM; \n
     * .value[1].u32: The set of edges for which to ignore layout safe area. The default value is LayoutSafeAreaEdge.ALL. {@link ArkUI_LayoutSafeAreaEdge}; \n
     * For example: ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_START; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: The region type to expand the component's layout safe area into. \n
     *.value[1].u32: The set of edges for which to ignore layout safe area. \n
     *
     * @since 23
     */
    NODE_IGNORE_LAYOUT_SAFE_AREA = 119,

    /**
     * @brief Defines the length of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     *
     * @since 23
     */
    NODE_DASH_WIDTH = 120,

    /**
     * @brief Defines the gap of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The gap of dash on the top border. \n
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The gap of dash on the top border. \n  
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     *
     * @since 23
     */
    NODE_DASH_GAP = 121,

    /**
     * @brief Defines the align rules of child component in Stack container, which can be set, reset, and obtained as required through APIs.\n
     * The default value is <b>ARKUI_LOCALIZED_ALIGNMENT_CENTER</b>. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}. \n
     *
     * @since 23
     */
    NODE_LAYOUT_GRAVITY = 122,

    /**
     * @brief Defines the render types for drawing rounded corners when the radius of the border rounded corners is set, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}.
     * The default value is <b>ARKUI_RENDERSTRATEGY_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}. \n
     *
     * @since 23
     */
    NODE_BORDER_RADIUS_TYPE = 123,
    
    /**
     * @brief Defines the inspector label attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: inspector label.\n
     * \n
     * Format of the return value {@link ArkUI_A=ttributeItem}:\n
     * .string: inspector label.\n
     * \n%"NODE_INSPECTOR_LABEL = 126,

    /**
     * @brief Defines the next accessibility focus id of current component for accessibility processing to find the next focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility next focus ID.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility next focus ID.
	     * \n%"5NODE_ACCESSIBILITY_NEXT_FOCUS_ID = 124,

    /**
    qaccessibility default focus flag for accessibility services to find the default focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility default focus. The value <b>1</b> means that the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * @since 26.0.0
   &	NODE_ACCESSIBILITY_DEFAULT_FOCUS = 125,

    /**
     * @brief Defines the system material attribute, which can be set, reset, and obtained as required through APIs.
     * Only devices that support systemMaterial can use this attribute. Otherwise, when -setting this attribute,
     * the error code2ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} will be returned.
     * Whether a device supports materials can be determined by calling
     * {@link OH_ArkUI_NativeModule_GetSystemMaterialSupported}.
     * The material effect behaves differently on devices with different level of computing powers.
     * The level is defined by {@link ArkUI_MaterialLevel}, which can be obtained by
     * {@link OH_ArkUI_NativeModule_GetGlobalMaterialLevel}.
     * On devices with the computing power level of ARKUI_MATERIAL_LEVEL_SMOOTH, it affects attributes such as the
     * backgroundColor, borderWidth, borderColor, shadow.
     * On devices with the computing power levels of ARKUI_MATERIAL_LEVEL_EXQUISITE or ARKUI_MATERIAL_LEVEL_GENTLE,
     * it affects shadow attribute and adds a filter effect at the system material layer, which can produce an effect
     * similar to glass.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: system material object. The parameter type is {@link ArkUI_ImmersiveMaterialHandle}.\n
     * The ArkUI_ImmersiveMaterialHandle object of the return value is a pointer to static member, so do not release
     * the return object by calling {@@link OH_ArkUI_NativeModule_ImmersiveMaterial_Destroy}.\n
     *%"NODE_SYSTEM_MATERIAL = 127,

    /**
     * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: text content.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: text content.\n
     *
     */
    NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
     * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeIte?m} parameter for setting the attribute:\n
     * .value[0].u32:{ For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].u32: font color value, in 0xARGB format.\n
     *
     */
    NODE_FONT_COLOR,
    /**
     * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: font size, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     *
     */
    NODE_FONT_SIZE,
    /**
     * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Formatk of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font style The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}$:\n
     * .value[0].i32: font style\n
     *
     */
    NODE_FONT_STYLE,
    /**
     * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     */
    NODE_FONT_WEIGHT,
    /**
     * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height, in fp.\n
     *
     */
    NODE_TEXT_LINE_HEIGHT,
    /**
     * @brief Defines the text decora
 and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link fArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type/?`    * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: textY$J For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32:/# \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration type {@lin5?\n
     * .value[1].u32: textY$ \n
     * .value[2].i32:/#4 \n
     *
     */
    /**
     * @brief Defines the and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link fArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text decoration type/?`    * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
     * .value[1]?.u32: textY$J For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32:/# \n
     * .value[3]?.f32: text decoration thickness scale. \n
     * \n
     * Format of the return value {@link ArkUI_Attribu5teItem}:\n
     * .value[0].i32: text decoration type/?\n
     * .value[1].u32: textY$ \n
     * .value[2].i32:/# \n
     * .value[3].f32: text decoration thickness scale. \n
     *
     *  since 22
     */
    NODE_TEXT_DECORATION,
    /**
     * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text case.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text case.\n
     *
     */
    NODE_TEXT_CASE,
    /**
     * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spaciFng, in fp.\n
     *
     */
    NODE_TEXT_LETTER_SPACING,
    /**
    q-Otext.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_KAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:,O htext.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:,O text.\n
     *
     */
    NODE_TEXT_MAX_LINES,
    /**
     * @brief Horizontal alignment mode of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameterY for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of the textADE  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of the textADE  \n
     *
     */
    NODE_TEXT_ALIGN,
    /**
     * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Wtext is too long. {@ArkUI_TextOverflow}\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Wtext is too long. {@ArkUI_TextOverflow}\n
     *
     */
    NODE_TEXT_OVERFLOW,
    /**
     * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: fonts, separated by commas (,).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: fonts, separated by commas (,).
     *
     */
    NODE_FONT_FAMILY,
    /**
     * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
     *
     */
    NODE_TEXT_COPY_OPTION,
    /**
     * @brief Defines the text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value
[0].f32: bqhfp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: bqAfp. \n
     *
     */
    NODE_TEXT_BASELINE_OFFSET,
    /**
    xhadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
     * .value[2].u32: shadow col{ For example, 0xFFFF0000 indicates red.\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius of the shadow, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
     * .value[2].u32: shadow{\n
     * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
     * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
     *
     */
    NODE_TEXT_TEXT_SHADOW,
    /**
     * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum font size, in fp.
     *
     */
    NODE_TEXT_MIN_FONT_SIZE,

    /**
     * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum font size, in fp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum font size, in fp.
9     *
     */
    NODE_TEXT_MAX_FONT_SIZE,

    /**
    x"ttribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * .value[2]?.i32: font style. Optional. The parameter type is    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
     * The default value is <b>ARKUI_FONT_WEIGIHT_NORMAL</b>. \n
     * .value[2].i32: font style. The parameter type is[    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     *
     */
    NODE_TEXT_FONu@brief Defines how the adaptive height is determined for the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the adaptive height is determined for the text.
     * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
     *
     */
    NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
    /**
     * @brief Defines the indentation of the first line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: indentation of the first line. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: indentation of the first line. \n
     *
     */
    NODE_TEXT_INDENT,
    /**
     * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_Wo^[	 \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@liS[ \n
     *
     */
    NODE_TEXT_WORD_BREAK,
    /**
     * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     *
     */
    NODE_TEXT_ELLIPSIS_MODE,
    /**
     * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line spacing, in fp.\n
     *
     */
    NODE_TEXT_LINE_SPACING,
    /**
     * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
     * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
     * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
     * The capabilities need to be supported by the fonts, \n
     * Interfaces for setting, resetting, and obtaining attributes are supported. \n
     * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
     * .string: complies with the text feature format. The format is normal | \n
     * is in the format of [ | on | off],\n.
     * There can be    multiple values separated by commas (,). \n
     * For example, the input format of a number with the same width is ss01 on. \n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
     */
    NODE_FONT_FEATURE,
    /**
     * @brief Setting Enable Text Recognition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Enable text recognition, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32Enable Text Recognition\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR,
    /**
     * @brief Set the text recognition configuration.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...].i32：Array of entity types, parameter types{@link ArkUI_TextDataDetectorTy_pe}。\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
    /**
     * @brief Defineaof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief The text component uses a formatted string object to set text content properties,
     * and supports property setting, property reset, and property acquisition interfaces.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attri bute:\n
     * .object indicatesQ- formatted string data. The parameter type isKi}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicatesQ- formatted string data. The parameter type isKE}. \n
     */
    NODE_TEXT_CONTENT_WITH_STYLED_STRING,

    /**
    Zcenter text vertically in the text component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     */
    NODE_TEXT_HALF_LEADING = 1029,

    /**
     * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
     * The font weight specified by this API is not affected by any changes in the system font weight settings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
     *
     * @since 15
     */
    NODE_IMMUTABLE_FONT_WEIGHT = 1030,

    /**
     * @brief Defines the text line count attribute, which can only be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line count of the node.
     *
     * @since 20
     */
    NODE_TEXT_LINE_COUNT = 1031,
 
    /**
     * @brief SZoptimize the trailing spaces at the end of each line during text layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
     *               The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout. \n
     *
     * @since 20
     */
    NODE_TEXT_OP+TIMIZE_TRAILING_SPACE = 1032,

    /**
    Aar gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The sett>when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_LINEAR_GRADIENT = 1033,

    /**
     * @brief Sets a radial gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeaOted.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b>_\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colorZs are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b>_  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 20
     */
    NODE_TEXT_RADIA L_GRADIENT = 1034,

    /**
    talignment of the text content.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment of the !text content, specified using theHy$
     * enum. The default value is <b>ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUIUyc
     * enum. \n
     *
     * @since 20
     */
    NODE_TEXT_VERTICAL_ALIGN = 1035,

    /**
    qcontent align of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. The default value is <b>ARKUI_TEXT_CONTENT_ALIGN_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: content align of the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. \n
     *
     * @since 21
     */
    NODE_TEXT_CONTENT_ALIGN = 1036,

    /**
    qmin0Otext.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_OAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min0Oltext.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: min0Otext.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MIN_LINES = 1037,

    /**
     * @brief Enables the selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NODE_TEXT_ENABLE_SELECTED_DATA_DETECTOR = 1038,

    /**
     * @brief Defines the minimum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum line height.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MIN_LINE_HEIGHT = 1040,

    /**
     * @brief Defines the maximum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum line height.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum line height.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_MAX_LINE_HEIGHT = 1041,

    /**
     * @brief Defines line heigj
e value of text, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriFbuteItem} parameter for setting the attribute:\n
     * .value[0].f32:`e value of text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line heightle value of text.\n
     *
     * @since 22
     *
     */
    NODE_TEXT_LINE_HEIGHT_MULTIPLE = 1042,

    /**
     * @brief Get the text layout manager of the text.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: t7he layout manager of text. The parameter type is {@link|}.\n
     *
     * @since 22
     */
    NODE_TEXT_LAYOUT_MANAGER = 1043,

    /**
     * @brief Set the edit menu options of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menu options of text. The parameter type is {@link ArkUI_TextEditMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_EDIT_MENU_OPTIONS = 1044,

    /**
     * @brief Bind the selection menu for text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the custom selection menu of text.
     *     The parameter type is {@link ArkUI_SelectionMenuOptions}.\n
     *
     * @since 22
     */
    NODE_TEXT_BIND_SELECTION_MENU = 1045,

    /**
    q*selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position_text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     * \n
     * Format of the return v9alue {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Ptext selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *     The parameter type is {@link ArkUI_SelectionOptions}. \n
     *
     * @since 23
     */
    NOD^E_TEXT_TEXT_SELECTION = 1046,

    /**
     * @brief Whether to avoid an orphan word on the la>.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
     * @since 26.0.0
     */
 	  NODE_TEXT_ORPHAN_CHAR_OPTIMIZATION = 1047,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_COMPRESS_LEADING_PUNCTUATION = 1048,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INCLUDE_FONT_PADDING = 1049,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_FALLBACK_LINE_SPACING = 1050,

    /**
     * @brief Set the marquee options of text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the marquee options of text. The parameter type is {@link ArkUI_TextMarqueeOptions}.\n
     *
     * @since 23
     */
    NODE_TEXT_MARQUEE_OPTIONS = 1051,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The valJDE~. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADE~. \n
     *
     * @since 23
     */
    NODE_TEXT_DIRECTION = 1052,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_SELECTED_DRAG_PRE VIEW_STYLE = 1053,

    /**
    qcontroller of the text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .>object: the controller of the text. The parameter type is
    rController }.\n
     *%"NODE_TEXT_CONTROLLER = 1054,

    /**
     * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: content of the text span. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: content of the text span. \n
     *
     */
    NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
    /**
     * @brief Defines the text background style.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
     * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
     * 1: .value[1].f32: radius of the four corners, in vp. \n
     * 2: .value[1].f32:( \n
     * .value[2].f32:o \n
     * .value[3].f32:F \n
     * .value[4].f32:F) \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the text backgrou.nd, in 0xARGB format. \n
     * .value[1].f32:( \n
     * .value[2].f32:o \n
     * .value[3].f32:F \n
     * .value[4].f32:F) \n
     *
     */
    NODE_SPAN_TEXT_BACKGROUND_STYLE,
    /**
     * @brief Defines the text baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeIteAm} parameter for setting the attribute:\n
     * .value[0].f32: bqhfp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: bqAfp. \n
     *
     */
    NODE_SPAN_BASELINE_OFFSET,
    /**
    x"ttribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * ?.string: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.
     * .value[2]?.i32: font style. Optional. The parameter type is    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * ?.object: Optional. The font configurations. The parameter type is {@link OH_ArkUI_FontConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: fFont weight. \n
     * .value[2].i32: font style. The parameter type is    * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
     * .object: the font configurations. The parameter type is {@lin!k OH_ArkUI_FontConfigs}.\n
     *@$NODE_SPAN_FONT = 2003,

    /**
     * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight. The default value is 400.\n
     * ?.object: Optional. The font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight.\n
     * .object: the font weight configurations. The parameter type is {@link OH_ArkUI_FontWeightConfigs}.\n
     *@$NODE_SPAN_FONT_WEIGHT = 2004,
    /**
     * @brief Defines the image source of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address of the image span.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
    /**
     * @brief Defines the alignment mode of the image with the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of the image with the text.
     *]I-% \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of the image with the text.
     *]I-% \n
     *
     */
    NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
    /**
     * @brief Defines the placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescOriptor}.\n
     *
     */
    NODE_IMAGE_SPAN_ALT,
    /**
     * @brief Defineattribute of the <b>ImageSpan</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * A positive value means an upward offset, while a negative value means a downward offset.
     * The default value is <b>0</b>, and the unit is fp. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: bqhfp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: bqfp. \n
     *
     * @since 13
     */
    NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,

    /**
     * @brief Defines the color filter of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem } parameter for setting the attribute:\n 
     * .value [0].f32 to . value [19].f32: filter matNrix array. \n 
     * .size :5 x 4 filter array size. \n 
     * .object : the1T. Either . value or . object is set. \n 
     * \n 
     * Format of the return value {@ link ArkUI_AttributeItem ):\n 
     * .value [0].f32 to .value [19].f32: filter matrix array. \n 
     * .size: 5 x 4 filter array size. \n 
     * .object: the poin6T. \n 
     * 
     * @since 22
     */
    NODE_IMAGE_SPAN_COLOR_FILTER = 3004,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether color fliter support svg. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 22
     */
    NODE_IMAGE_SPAN_SUPPORT_SVG2 = 3005,
    /**
     * @brief Defines the image source of the <Image> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image source.\n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
     * @brief Defines how the image is resized to fit its container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attMribute:\n
     * .value[0].i32: how the image is resized to fit its containerAD5 \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is resized to fit its containerAD5 \n
     *
     */
    NODE_IMAGE_OBJECT_FIT,
    /**
     * @brief Defines the interpolation effect of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parZameter for setting the attribute:\n
     * .value[0].i32: interpolation effect of the imag of {@link ArkUI_ImageInterpolation}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .val+ue[0].i32: interpolation effect of the imag of {@link ArkUI_ImageInterpolation}. \n
     *
     */
    NODE_IMAGE_INTERPOLATION,
    /**
     * @brief Defines how the image is repeated.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@lmink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is repeat?D of {@link ArkUI_ImageRepeat}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is repeat?D of {@link ArkUI_ImageRepeat}. \n
     *
     */
    NODE_IMAGE_OBJECT_REPEAT,
    /**
     * @brief Defines the color filter of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
  ;   * .size: 5 x 4 filter array size. \n
     * .object: the1T. Either .value or .object is set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[o0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the1T. \n
     *
     */
    NODE_IMAGE_COLOR_FILTER,
    /**
     * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 : whether to resize the image source. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 : whether to resize the image source. \n
     *
     */
    NODE_IMAGE_AUTO_RESIZE,
    /**
     * @brief Defines the placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     */
    NODE_IMAGE_ALT,
    /**
     * @brief Defines whether the image is draggable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the image is draggable. \n
     *
     */
    NODE_IMAGE_DRAGGABLE,
    /**
     * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
     *
     */
    NODE_IMAGE_RENDER_MODE,
    /**
     * @brief Defines whether the image display size follows the image source size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     *
     */
    NODE_IMAGE_FIT_ORIGINAL_SIZE,
    /**
     * @brief Defines the fill color of the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]
.u32: fill{ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fill{ \n
     *
     */
    NODE_IMAGE_FILL_COLOR,
    /**
     * @brief Resize the image when stretching it with array or a lattice object.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter type is {@link OH_Drawing_Lattice},add since api 24.\n
     *
     */
    NODE_IMAGE_RESIZABLE,
    /**
     * @brief Defines the synchronous image loading attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
  k   * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:T(e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:T(. \n
     *
     * @since 20
     */
    NODE_IMAGE_SYNC_LOAD = 4012,
    /**
     * @brief Defines the image decoding size attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: width of the image decoding, in px.\n
     * .value[1].i32: height of the image decoding, in px.\n
     *
     * @since 21
     */
    NODE_IMAGE_SOURCE_SIZE = 4013,
    /**
     * @brief Support the implementation of affine image transformations using floating-point numbers.
     * This attribute can be set, reset, and obtained as required through APIs.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32: 16 floating-point numbers.\n
     *
     * @since 21
     */
    NODE_IMAGE_IMAGE_MATRIX = 4014,
    /**
     * @brief Defines the image follow text direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to follows the text direction.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to follows the text direction.\n
     *
     * @since 21
     */
    NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015,
    /**
     * @brief Defines the image copy attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions.\n
     *
     * @since 21
     */
    NODE_IMAGE_COPY_OPTION = 4016,
    /**
     * @brief Defines the image AI analysis enable attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
   j  * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:AI analysis for the image.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: wAI analysis for the image.\n
     *
     * @since 21
     */
    NODE_IMAGE_ENABLE_ANALYZER = 4017,
    /**
     * @brief Defines the image dynamic display range attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode}.
     * The default value is <b>ARKUI_DYNAMIC_RANGE_MODE_STANDARD</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode.\n
     *
     * @since 21
     */
    NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018,
    /**
     * @brief Defines the image dynamic display brightness attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     *
     * @since 21
     */
    NODE_IMAGE_HDR_BRIGHTNESS = 4019,
    /**
     * @brief Defines the image display direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation}.
     * The default value is <b>ARKUI_ORIENTATION_UP</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation.\n
     *
     * @since 21
     */
    NODE_IMAGE_ORIENTATION = 4020,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 21
     */
    NODE_IMAGE_SUPPORT_SVG2 = 4021, 
    /**
     * @brief Set the animation effect for the image content transformation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter type is {@link ArkUI_ContentTransitionEffect}.\n
     *
     * @since 21
     */
    NODE_IMAGE_CONTENT_TRANSITION = 4022,
    /**
     * @brief Defines the placeholder image during loading process.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_PLACEHOLDER = 4023,
    /**
     * @brief Defines the placeholder image when loading fails.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: placeholder image source. \n
     * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
     *
     * @since 22
     */
    NODE_IMAGE_ALT_ERROR = 4024,
    /**
     * @brief Configure image edge anti-aliasing via an enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch,the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
     *
     * @since 23
     */
    NODE_IMAGE_ANTIALIASED = 4025,
    /**
     * @brief Defines the color of the component when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:$ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:$ \n
     *
     */
    NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
     * @brief Defines the color of the circular slider for the component of the switch type.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value$[0].u32: color of the circular slide{ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .v(alue[0].u32: color of the circular slide{ \n
     *
     */
    NODE_TOGGLE_SWITCH_POINT_COLOR,
    /**
     * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for s-etting the attribute:\n
     * .value[0].i32:toggle. The value <b>true</b> means to enable the toggle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:toggle. \n
     *
     */
    NODE_TOGGLE_VALUE,

    /**
     * @brief Defines the color of the component when it is deselected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttGributeItem} parameter for setting the attribute:\n
     *.value[0].u32:$ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:$ \n
     *
     */
    NODE_TOGGLE_UNSELECTED_COLOR,

    /**
     * @brief Defines the foreground color of the loading progress bar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIQ_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: fore For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fore \n
     *
     */
    NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
    /**
     * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show the loading animation.
     * The value <b>true</b> means to show the loading animation, and <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to) show the loading animation, and <b>0</b>_ \n
     *
     */
    NODE_LOADING_PROGRESS_ENABLE_LOADING,

    /**
     * @brief Defines the default placeholder text of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
     * @brief Defines the default text content of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_TEXT_INPUT_TEXT,
    /**
     * @brief Defines the caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: care{ For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: care{ \n
     *
     */
    NODE_TEXT_INPUT_CARET_COLOR,
    /**
     * @brief Defines the caret style attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: caret width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: caret width, in vp. \n
     *
     */
    NODE_TEXT_INPUT_CARET_STYLE,
    /**
     * @brief Defines the underline attribute of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show an underline.
     * The value <b>true</b> means to show an underline, and <b>false</b> means the_
\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means to  show an underline, and <b>0</b>_T \n
     *
     */
    NODE_TEXT_INPUT_SHOW_UNDERLINE,
    /**
     * @brief DefinesR_in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the Z{@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: mNin the text input, without a unit. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[	0].i32: mNin the text input. \n
     *
     */
    NODE_TEXT_INPUT_MAX_LENGTH,
    /**
     * @brief Defines the type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_INPUT_ENTER_KEY_TYPE,
    /**
     * @brief Defines the placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
    /**
     * @brief Defines the placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32:b font size, in fp. Optional. The default value is <b>16.0</b>.\n
     * .value[1]?.i32: font style Optional.
     * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
     * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
     * ?.string: font family. Multiple font families are separated by commas (,).
     * Example: "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style {@l\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separagted by commas (,). \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_FONT,
    /**
     * @brief Defineinput method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toinput method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> _\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32: The value <b>1</b> meanSs to enable the input method when the component obtains focus,
      * and <b>0</b>_ \n
     *
     */
    NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
    /**
     * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}.
     * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
     *
     */
    NODE_TEXT_INPUT_TYPE,
    /**
     * @brief Defines the bacjof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
    /**
     * @brief Defines whether to display the password icon at the end of the password text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the password icon at the end of the password text box.
     * The value <b>true</b> 4means to display the password icon, and <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means toS display the password icon at the end of the password text box,
     * and <b>0</b>_ \n
     *
     */
    NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
    /**
     * @brief Defines the editable state for the single-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether to remain in the editable state. The value
     * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> means to exit the editable state. \n
     *
     */
    NODE_TEXT_INPUT_EDITING,
    /**
     * @brief Defines the style of the cancel button on the right of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
     * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
     * .value[1]?.f32: button icon size, in vp.\n!
     * .value[2]?.u32: button icѣ For example, 0xFFFF0000 indicates red. \n
     * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
     * .value[1].f32: icon size, in vp.\n
     * .value[2].u32: button icѣn\n
     * .string: button icon image source. \n
     *
     */
    NODE_TEXT_INPUT_CANCEL_BUTTON,
    /**
    q*selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position_text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@l1ink ArkUI_AttributeItem}:\n
     * .value[0].i32:Ptext selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_INPUT_TEXT_SELECTION,
    /**
   qcolor of the text underline when it is enabled.
    *
    * The default underline color configured for the theme is <b>'0x33182431'</b>.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].u32: color of the underline applied to the text being typed in.
    * The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state.
    * The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled.
    * The value is in 0xARGB format. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0NxARGB format. \n
    *
    */
    NODE_TEXT_INPUT_UNDERLINE_COLOR,
    /**
   Z!autofill.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: wheautofill. The default value is <b>true</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32:Kautofill. \n
    *
    */
    NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
    /**
   qautofill type.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_TYPE,
    /**
    * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
    * transmitted to Password Vault for generating a new password.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: rules for generating passwords. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: rules for generating passwords. \n
    *
    */
   , NODE_TEXT_INPUT_PASSWORD_RULES,
    /**
   Zselect all text in the initial state. The inline mode is not supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to sele]ct all text in the initial state. \n
    *
    */
    NODE_TEXT_INPUT_SELECT_ALL,
    /**
   qregular expression for input filtering.
    * Only inputs that comply with the regular expression can be displayed.
    * Other inputs are filtered out. The specified regular expression can match single characters,
    * but not strings.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: regular expression. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: regular expression. \n
    *
    */
    NODE_TEXT_INPUT_INPUT_FILTER,
    /**
   q*box to the default style or inline input style.
    *
    * For the inline input style, only <b>InputType.Normal</b> is supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
    *
    */
    NODE_TEXT_INPUT_STYLE,
    /**
    * @brief Sets or obtains the caret position.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * In the case of setting the caret position:
    * .value[0].i32: character count from the beginning of a string to the caret position. \n
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
    * current frame, it will not take effect.
    * .value[0].i32: index of the caret position. \n
    * .value[1].f32: X coordinate of the caret relative to the text box. \n
    * .value[2].f32: Y coordinate of the caret relative to the text box. \n
    */
    NODE%_TEXT_INPUT_CARET_OFFSET,
    /**
   a position of the edited text area and its size.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: horizontal coordinate. \n
    * .value[1].f32: vertical coordinate. \n
    * .value[2].f32: content width. \n
    * .value[3].f32: content height. \<n
    *
    */
    NODE_TEXT_INPUT_CONTENT_RECT,
    /**
   anumber of lines of the edited text.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32:i number of lines of the edited text. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
    /**
    Zhide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
_     * right-clicked. \n
     *
     */
    NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
    /**
    text box loses focus after the Enter key is pressed to submit information.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *
     */
    NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
    /**
     * @brief Set up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0]?.i32：1;stom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0].i32：Set whether the custom keyboard supports the avoidance function.\n
     *
     */
    NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
    /**
     * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@liS[ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@liS[@ \n
     *
     */
    NODE_TEXT_INPUT_WORD_BREAK,

    /**
    keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textInput component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the value of numberOfLIines.\n
     *
     */
    NODE_TEXT_INPUT_NUMBER_OF_LINES,

    /**
    q=of the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_LETTER_SPACING = 7032,

    /**
     * @bZpreview text for the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether 
preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enampreview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,

    /**
    Zcenter text vertically in the textInput component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_INPUT_HALF_LEADING = 7034,

    /**
    * @brief Set the keyboard style of textInput
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
  _  * @since 15
    */
    NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,

    /**
     * @brief Setauto fill animation or not.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:[auto fill animation.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
     *
     * @since 20
     */
    NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,

    /**
     * @brief Set the line height of the input node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0]   .i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_INPUT_LINE_HEIGHT = 7037,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NODE_TEXT_INPUT_ENABLE_SELECTED_DATA_DETECTOR = 7038,

    /**
     * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when!have been entered is greater thanR_2multiplied
     * by the threshold percentage valuS1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when!have been entered is greater thanR_2multiplied
     * by the threshold percentage valuS1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}.\n
     * 
     * @since 22
     */
    NODE_TEXT_INPUT_SHOW_COUNTER = 7040,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @since 23
     */
    NODE_TEXT_INPUT_TEXT_CONTENT_CONTROLLER_BASE = 7041,

    /**
     * @brief Defines the ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is {@link ArkUI_!EllipsisMode}. \n
     * 
     * %fNODE_TEXT_INPUT_ELLIPSIS_MODE = 7042,

    /**
     * @brief Whether to avoid an orphan word on the la>.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
     * @since 26.0.0
     */
 	  NODE_TEXT_INPUT_ORPHAN_CHAR_OPTIMIZATION = 7043,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_COMPRESS_LEADING_PUNCTUATION = 7044,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_INCLUDE_FONT_PADDING = 7045,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_FALLBACK_LINE_SPACING = 7046,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the textADE~. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADE~. \n
     *
     * @since 23
     */
    NODE_TEXT_INPUT_DIRECTION = 7047,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration.
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration.\n
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_INPUT_SELECTED_DRAG_PREVIEW_STYLE = 7048,

    /**
     * @brief Defines the textinput textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Wtext is too longXd \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Wtext is too longX \n
     * 
     * %HNODE_TEXT_INPUT_TEXT_OVERFLOW = 7049,

    /**
     * @brief Defines the and color for single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
   K  * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *%"0NODE_TEXT_INPUT_DECORATION = 7050,

    /**
    Aar gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: 3start angle of the linear gradient.
     * The sett>when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
   Y  * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"NODE_TEXT_INPUT_LINEAR_GRADIENT = 7051,

    /**
     * @brief Sets a radial gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means_\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colorZs are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b>_  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stoRps: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"NODE_TEXT_INPUT_RADIAL_GRADIENT = 7052,

    /**
     * @brief Defines the default placeholder text for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
     * @brief Defines the default text content for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_TEXT_AREA_TEXT,
    /**
     * @brief DefinesR_in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the Z{@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: mNin the text input. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum Uin the text input. \n
     *
     */
    NODE_TEXT_AREA_MAX_LENGTH,
    /**
     * @brief Defines the placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_COLOR,
    /**
     * @brief Defines the placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16+.0</b>.\n
     * .value[1]?.i32: font style Optional. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
     * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
     * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {h@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     * .value[1].i32: font style\n
     * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
     * .string: font family. Multiple font families are separated by commas (,). \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_FONT,
    /**
     * @brief Defines the caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AtItributeItem} parameter for setting the attribute:\n
     * .value[0].u32:$ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:$ \n
     *
     */
    NODE_TEXT_AREA_CARET_COLOR,
    /**
     * @brief Defines the editable state for the multi-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
     * editable state, and <b>false</b> means to exit the editable state.\n \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> means to exit the editable state.\n \n
     *
     */
    NODE_TEXT_AREA_EDITING,
    /**
     * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
     * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
     *
     */
    NODE_TEXT_AREA_TYPE,
    /**
     * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when!have been entered is greater thanR_2multiplied
     * by the threshold percentage valuS1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounterConfig}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
     * when!have been entered is greater thanR_2multiplied
     * by the threshold percentage valuS1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
     * The default value is <b>true</b>. \n
     * .object: counter configuration. The parameter type is {@link ArkUI_ShowCounteIrConfig}. \n
     *
     */
    NODE_TEXT_AREA_SHOW_COUNTER,
    /**
    Zhide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
    ] * or right-clicked. \n
     *
     */
    NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
    /**
    multi-line text box loses focus after the Enter key is pressed to submit information.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *8
     */
    NODE_TEXT_AREA_BLUR_ON_SUBMIT,
    /**
    qregular expression for input filtering.
     * Only inputs that comply with the regular expression can be displayed.
     * Other inputs are filtered out. The specified regular expression can match single characters,
     * but not strings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: regular expression. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: regular expression. \n
     *
     */
    9NODE_TEXT_AREA_INPUT_FILTER,
    /**
     * @brief Defineaof the selected text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
    /**
     * @brief Defines the type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
     *
     */
    NOD8E_TEXT_AREA_ENTER_KEY_TYPE,
    /**
     * @brief Defineinput method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toinput method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> _\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> meansQ to enable the input method when the component obtains focus,
     * and <b>0</b>_\ \n
     *
     */
    NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
    /**
     * @brief Defineinput method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether toinput method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false</b> _\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> meansQ to enable the input method when the component obtains focus,
     * and <b>0</b>_@ \n
     *
     */
    NODE_TEXT_AREA_CARET_OFFSET,
    /**
    a position of the edited text area and its size.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal coordinate. \n
     * .value[1].f32: vertical coordinate. \n
     * .value[2].f32: content width. \n
     * .value[3].f32: content heiDght. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_RECT,
    /**
    anumber of lines of the edited text.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].im32: number of lines of the edited text. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_LINE_COUNT,
    /**
    q*selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position_text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@l1ink ArkUI_AttributeItem}:\n
     * .value[0].i32:Ptext selection. \n
     * .value[1].i32: end position of the text selection. \n
     *
     */
    NODE_TEXT_AREA_TEXT_SELECTION,
    /**
    Z!autofill.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Mautofill. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_AUTO_FILL,
    /**
    qautofill type.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
=     *
     */
    NODE_TEXT_AREA_CONTENT_TYPE,

    /**
    keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,

    /**
     * @brief When this property is set, the height of the textArea component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Set the value of numberOIfLines\n
     *
     */
    NODE_TEXT_AREA_NUMBER_OF_LINES,

    /**
    q=of the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_LETTER_SPACING = 8023,
    /**
     * @brieZpreview text for the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether t	preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enalpreview tex. \n
     *
     * @since 15
     */
    NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,

    /**
    Zcenter text vertically in the textArea component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \n
     *
     * @since 18
     */
    NODE_TEXT_AREA_HALF_LEADING = 8025,

    /**
    * @brief Set the keyboard style of textArea
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard stylethe parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
    *
    * @since 15
    */
    NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,

    /**
     * @brief Set the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: max lines count.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES = 8027,

    /**
     * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line spacing value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line spacing value. \n
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_SPACING = 8028,

    /**
     * @brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: min line count.\n
     *
     * @since 20
     * 
     */
    NODE_TEXT_AREA_MIN_LINES = 8029,
 
    /**
     * @brief Set the max lines of the node with scroll.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count with scroll.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: max line count with scroll.\n
     *
     * @since 20
     */
    NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,

    /**
     * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: line height value
     *
     * @since 20
     */
    NODE_TEXT_AREA_LINE_HEIGHT = 8031,

    /**
     * @brief Define bar state of the text area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum.
     * The default value is <b>ARKUI_BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum. \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_BAR_STATE = 8032,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable selected text recognition, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether selected text recognition is enabled.\n
     *
     * @since 22
     */
    NODE_TEXT_AREA_ENABLE_SELECTED_DATA_DETECTOR = 8033,

    /**
     * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     *
     * @since 22
     */
     NODE_TEXT_AREA_SCROLL_BAR_COLOR = 8035,

     /**
     * @brief Sets up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: custom keyboard,TheE parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0]?.i32:0;stom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is {@Link ArkUI_NodeHandle}.\n
     * .value[0].i32: Set whether the custom keyboard supports the avoidance function.\n
     *
     * @since 22
     */
    NODE_TEXT_AREA_CUSTOM_KEYBOARD = 8036,

    /**
     * @brief Used to set or get the text content base controller.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the text content base controller. The parameter type is {@link ArkUI_TextContentBaseController}.\n
     * 
     * @since 23
     */
    NODE_TEXT_AREA_TEXT_CONTENT_CONTROLLER_BASE = 8037,

    /**
     * @brief Defines the ellipsis position.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}, the default value
     * is ARKUI_ELLIPSIS_MODE_END. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .vQalue[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
     * 
     * %eNODE_TEXT_AREA_ELLIPSIS_MODE = 8038,

    /**
     * @brief Whether to avoid an orphan word on the la>.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\n
     *
   %NODE_TEXT_AREA_ORPHAN_CHAR_OPTIMIZATION = 8039,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punctuation at the beginning of line.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_COMPRESS_LEADING_PUNCTUATION = 8040,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_INCLUDE_FONT_PADDING = 8041,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enable the feature, true means enable this feature, false means disable.
     * The default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacimng.\n
     *
     * @since 23
     */
    NODE_TEXT_AREA_FALLBACK_LINE_SPACING = 8042,

    /**
     * @brief[horizontal scrolling when text is wider than the view.
     * The default value is false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether enable the feature, true means enable this feature, false means disable. \n
     * \n
     * Format of the return value {@link ARrkUI_AttributeItem}:\n
     * .value[0].i32: Whether enable the feature. \n
     *@$NODE_TEXT_AREA_HORIZONTAL_SCROLLING = 8043,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settinFg the attribute:\n
     * .value[0].i32: writing direction of the textADE~. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the textADE~. \n
     *
     * @since 23
     */
    NODE_TEXT_AREA_DIRECTION = 8044,

    /**
     * @brief Used to set the selected drag preview style.
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object: selected drag preview style configuration. 
     * The parameter type is {@link Arkui_SelectedDragPreviewStyle}.\n
     * 
     * @since 23
     */
    NODE_TEXT_AREA_SELECTED_DRAG_PREVIEW_STYLE = 8045,

    /**
     * @brief Defines the textarea textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Wtext is too longXd \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Wtext is too longX \n
     * 
     * %GNODE_TEXT_AREA_TEXT_OVERFLOW = 8046,

    /**
     * @brief Defines the and color for multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
    J * ?.object: Optional. The decoration style options. The parameter type is Options}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. The parameter type is Options}.\n
     *%"/NODE_TEXT_AREA_DECORATION = 8047,

    /**
    Aar gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: s2tart angle of the linear gradient.
     * The sett>when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
     * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
     * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the linear gradient. \n
     * .value[2].i32: whether the colors are repeated. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
   Y  * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"NODE_TEXT_AREA_LINEAR_GRADIENT = 8048,

    /**
     * @brief Sets a radial gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3]?.i32: whether the colors are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b> means t_\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
     * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
     * .value[3].i32: whether the colorZs are repeated.
     * The value <b>1</b> means that the colors are repeated, and <b>0</b>_  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stoRps: stop positions of the color stops. \n
     * size: number of colors. \n
     *%"NODE_TEXT_AREA_RADIAL_GRADIENT = 8049,

    /**
     * @brief Defines the button text content. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,

    /**
    qbutton type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
     * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
     *
     */
    NODE_BUTTON_TYPE,

    /**
    * @brief Defines the minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: minimum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: minimum font scale, in fp.
    *
    * @since 18
    */
    NODE_BUTTON_MIN_FONT_SCALE,

    /**
    * @brief Defines the maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: maximum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: maximum font scale, in fp.
    *
    * @since 18
    */
    NODE_BUTTON_MAX_FONT_SCALE,

    /**
     * @brief Defines the current value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value of the progress indicator. \n
     *
     */
    NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
    /**
     * @brief Defines the total value of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: total value of the progress indicator. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total value of the progress indicator. \n
     *
     */
    NODE_PROGRESS_TOTAL,
    /**
     * @brief Defines the color for the progress value on the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_PROGRESS_COLOR,
    /**
     * @brief Defines the type of the progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
     * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the progr`ess indicator {@link ArkUI_ProgressType}. \n
     *
     */
    NODE_PROGRESS_TYPE,
    /**
    qstyle of the linear progress indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     * If the progress indicator type is not linear, it will not take effect.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
     *
     * @since 15
     */
    NODE_PROGRESS_LINEAR_STYLE,

    /**
     * @brief Defines whether the check box is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether thee check box is selected.
     * The value <b>1</b> means that the check box is selected, and <b>0</b>_ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means t+hat the check box is selected, and <b>0</b>_ \n
     * 
     */
    NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
     * @brief Defines the color of the check box when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_CHECKBOX_SELECT_COLOR,

    /**
     * @brief Defines the border color of the check box when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Formaht of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.
     * 
     */
    NODE_CHECKBOX_UNSELECT_COLOR,

    /**
     * @brief Defines the internal icon style of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forjmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return va?lue {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
     *
     */
    NODE_CHECKBOX_MARK,

    /**
     * @brief Defines the shape of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     */
    NODE_CHECKBOX_SHAPE,

    /**
     * @brief Defines the name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_NAME,

    /**
     * @brief Defines the name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP,

    /**
     * @brief Defines the ID of the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID. \n
     *
     */
    NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
    /**
     * @brief Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
     * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
     * Attempting to change the type through {@link setAttribute} will cause rendering exceptions.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type {@link ArkUI_XComponentType}. \n
     *
     */
    NODE_XCOMPONENT_TYPE,
    /**
     * @brief Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
     * Attempting to modify the size through {@link setAttribute} will have no effect.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: width, in px. \n
     * .value[1].u32: height, in px. \n
     *
     */
    NODE_XCOMPONENT_SURFACE_SIZE,
    /**
     * @brief Defines the rectangle information of surface created by the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ARrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: TPsurface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizonta\surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * @since 18
     */
    NODE_XCOMPONENT_SURFACE_RECT,
    /**
     * @brief DefineAI analyzer for the <b><XComponent></b> component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The parameter type is 1 or 0.
     * @since 18
     */
    NODE_XCOMPONENT_ENABLE_ANALYZER,

    /**
     * @brief Defines whether to display the lunar calendar in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the lunar calendar in the date picker.
     *
     */
    NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
    /**
     * @brief Defines the start date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     */
    NODE_DATE_PICKER_START,
    /**
     * @brief Defines the end date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     */
    NODE_DATE_PICKER_END,
    /**
     * @brief Defines the selected date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The default value is <b>"2024-01-22"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date.
     *
     */
    NODE_DATE_PICKER_SELECTED,
    /**
     * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
     * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
    /**
     * @brief Defines the mode of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     *
     * @since 18
     */
    NODE_DATE_PICKER_MODE = 13007,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> me(ans to feedback, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 18
     */
    NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
    /**
     * @brief Defines whether to support scroll looping for the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support ^scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to $support scroll looping, and <b>0</b>_ \n
     *
     * @since 20
     */
     NODE_DATE_PICKER_CAN_LOOP = 13009,
    /**
     * @brief Defines the time of the selected item. in the timer picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is the current system time. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time.
     *
     */

    NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
    /**
     * @brief Defines whether the	time is in 24-hour format.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format` of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:time is in 24-hour format. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_Attri"buteItem}:\n
     * .value[0].i32:time is in 24-hour format.
     *
     */
    NODE_TIME_PICKER_USE_MILITARY_TIME,
    /**
     * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
     * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value    is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
    /**
     * @brief Defines the start time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"00:00:00"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default value is <b>"00:00:00"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_START = 14005,
    /**
     * @brief Defines the end time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default value is <b>"23:59:59"</b>.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_END = 14006,
    /**
     * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:cascade. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:cascade.\n
     *
     * @since 18
     */
    NODE_TIME_PICKER_ENABLE_CASCADE = 14007,

    /**
     * @brief Defines the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
     * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
     * ?.string: string input, whose format varies by picker type.\n
     * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.object: Object input, whose format varies by picker type.\n
     * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
     * ?.string: string output, whose format varies by picker type.\n
     * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.string: Object output, whose format varies by picker type.\n
     * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
     * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
    /**
     * @brief Defines the index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_SELECTED,
    /**
     * @brief Defines the value of the default selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;).\n
     *
     */
    NODE_TEXT_PICKER_OPTION_VALUE,
    /**
     * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
     * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_TEXT_STYLE,
    /**
     * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
    /**
     * @brief Defines the index of the default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: index of the default item in the data selection range.
     *
     */
    NODE_TEXT_PICKER_SELECTED_INDEX,
    /**
     * @brief Defines whether to support scroll looping for the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b>_\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means 'to support scroll looping, and <b>0</b>_ \n
     *
     */
    NODE_TEXT_PICKER_CAN_LOOP,
    /**
     * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: item height, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: item height, in vp. \n
     *
     */
    NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .vaalue[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     l*
     * @since 18
     */
    NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
    /**
     * @brief Defineaand border radius of the selected items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:#, for example, <b>0xFF1122FF</b>. \n
     * 1: .value[1].f32: radius of the four corners. \n
     * 2: .value[1].f32: radius of. \n
     * .value[2].f32:o. \n
     * .value[3].f32:F. \n
     * .value[4].f32:F!e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:#@, for example, <b>0xFF1122FF</b>. \n     *
     * .value[1].f32: . \n
     * .value[2].f32:o. \n
     * .value[3].f32:F. \n
     * .value[4].f32:F!. \n
     *
     * @since 20
     */
    NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011,
    /**
     * @brief Defines the style of the background in the selected state of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .vYalue[0].f32: style of the background in the selected state of the calendar picker.
     *1?+∞). If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
     * or greater than 16, the background is a circle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: style of the background+ in the selected state of the calendar pick#    * If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
     * greater than 16, the background is a circle. \n
     *
     */
    NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
    /**
     * @brief Defines the date of the selected item in the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: year of the selected date. \n
     * .value[1].u32: month of the selected date. \n
     * .value[2].u32: day of the selected date. \n
     *
     */
    NODE_CALENDAR_PICKER_SELECTED_DATE,
    /**
     * @brief Defines how the calendar picker is aligned with the entry component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     *
     */
    NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
    /**
     * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.u32: font color of the entry area. \n
     * .value[1]?.f32: font size of the entry area, in fp. \n
     * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: font color of the entry area. \n
     * .value[1].f32: font size of the entry area, in fp. \n
     * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
     *
     */
    NODE_CALENDAR_PICKER_TEXT_STYLE,
    /**
     * @brief Defines the start date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     * @since 18
     */
    NODE_CALENDAR_PICKER_START = 16004,
    /**
     * @brief Defines the end date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     * @since 18
     */
    NODE_CALENDAR_PICKER_END = 16005,
    /**
     * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeUItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the slide{, for example, <b>0xFF1122FF</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the slide{, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,

    /**
     * @brief Defineaof the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@liTnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32:#, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32:#, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_TRACK_COLOR,

    /**
     * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, O<b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_SELECTED_COLOR,

    /**
    Zdisplay the stepping value. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to display the steppieng value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value)_ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to display the stehpping value. The value <b>1</b> means to display the stepping value,
     * and <b>0</b> (default value)_ \n
     *
     */
    NODE_SLIDER_SHOW_STEPS,

    /**
     * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
     * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
      * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 3.Ellipse:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
     * 4. Path:\n
     * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_SLIDER_BLOCK_STYLE,

    /**
     * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value.
     *
     */
    NODE_SLIDER_VALUE,

    /**
     * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum value.
     *
     */
    NODE_SLIDER_MIN_VALUE,

    /**
     * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum value.
     *
     */
    NODE_SLIDER_MAX_VALUE,

    /**
     * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkW ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: step0?.01, 100]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: step. The value <?.01, 100].
     *
     */
    NODE_SLIDER_STEP,

    /**
     * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
     * obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     * The parameter type is {@link ArkUI_SliderDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider moves horizontally or vertically.
     *
     */
    NODE_SLIDER_DIRECTION,

    /**
     * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
     * reversed, an
d <b>0</b>_ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider values _are reversed. The value <b>1</b> means that the slider values are
     * reversed, and <b>0</b>_    *
     */
    NODE_SLIDER_REVERSE,

    /**
     * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
     *
     */
    NODE_SLIDER_STYLE,

    /**
     * @utrack thickness of the slider.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
     * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
     * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: track thickness of the slider, in vp. \n
     *
     */
    NODE_SLIDER_TRACK_THICKNESS,

    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
 j    * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
     * requestPermissions field of the module.json5 file to enable vibration permission.\n
     *
     * @since 18
     */
    NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,

    /**
     * @brief Sets a custom component on the leading side of the Slider component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The p!refix component will be placed at`Slider，
     * typically on the left side in LTR layouts.
	 *
	 * @since 20
     */
    NODE_SLIDER_PREFIX,

    /**
     * @brief Sets a custom component on the trailing side of the Slider component.
     *
     * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The suffix component will be placed at the end position of the Slider,
     * typically on the right side in LTR layouts.
	 *
	 * @since 20
     */
    NODE_SLIDER_SUFFIX,

    /**
     * @brief Defines the color of the slider block. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
 Q    */
    NODE_SLIDER_BLOCK_LINEAR_GRADIENT_COLOR,

    /**
     * @brief Defineaof the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_TRACK_LINEAR_GRADIENT_COLOR,

    /**
     * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop positions of the color stops. \n
     * size: number of colors. \n
     *
     * @since 21
     */
    NODE_SLIDER_SELECTED_LINEAR_GRADIENT_COLOR,

    /**
     * @brief Set the selection status of an option button. Attribute setting,
     * attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: check status of an option button. The default value is false.
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: selection status of an option button.
     */
    NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
    /**
     * @brief Set the styles of the selected and deselected states of the option button.
     * The attribute setting, attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0]?. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]?. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFFF. \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0]. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the default value is 0xFF007DFF. \n
     * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
     * and the default value is 0xFF182431. \n
     * .value[2]. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and the default value is 0xFFFFFFF. \n
     */
    NODE_RADIO_STYLE,
   	 /**
    talue of the current radio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: radio value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: radio value.\n
     *
     */
    NODE_RADIO_VALUE,
    /**
     * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: name of the group to which the current option box belongs.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: name of the group to which the current option box belongs.\n
     *
     */
    NODE_RADIO_GROUP,

    /**
     * @brief Set the image frames for the image animator. Dynamic updates is not supported.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .size: number of the images.\n
     * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
     *
    */
    NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
    /**
     * @yback status of the animation for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
     * and the default value is ARKUI_ANIMATION_STATUS_INITIAL.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
     *
    */
    NODE_IMAGE_ANIMATOR_STATE = 19001,
    /**
    jyback duration for the image animator. When the duration is 0, no image is played.
     * The value changeAat the beginning of the next cycle.
     * When a separate duration is set in images, the setting of this attribute is invalid.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback duration, the unit is ms and the default value is 1000.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the plgayback duration, the unit is ms.\n
     *
    */
    NODE_IMAGE_ANIMATOR_DURATION = 19002,
    /**
    yback direction for the image animator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
    */
    NODE_IMAGE_ANIMATOR_REVERSE = 19003,
    /**
     * @brief Set whether the image size is the same as the component size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * In this case, the width, height, top, and left attributes of the image are invalid.
     * 0 indicates the image size is customized.
     * The width, height, top, and left attributes of each image must be set separately.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: whether the image size is the same as the component size.
     * 1 indicates the image size is the same as the component size.
     * 0 indicates the image size is customized.
     *
    */
    NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
    /**
     * @brief Set the status before and after execution of the animation in the current playback direction.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode} and the default value is ARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the status before and after execution of the animation in the current playback direction,
     * the type is {ArkUI_AnimationFillMode}.
     *
    */
    NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
    /**
     * @brief Set the number of times that the animation is played.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
    */
    NODE_IMAGE_ANIMATOR_ITERATION = 19006,

    /**
     * @brief Defines the name of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief Defines whether the checkboxgroup is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the checkboxgroup is selected.
     * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b>_ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value <b>1</b> means t/hat the checkboxgroup is selected, and <b>0</b>_ \n
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECT_ALL,

    /**
     * @brief Defines the color of the checkboxgroup when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
     * for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SELECTED_COLOR,
    /**
     * @brief Defines the border color of the checkboxgroup when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.
     * 
     * @since 15
     */
    NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,

    /**
     * @brief Defines the internal icon style of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
     * \n
     * Format of the return va?lue {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border{, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_MARK,

    /**
     * @brief Defines the shape of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_SHAPE,

    /**
     * @brief TextEditor组件回车键类型，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：回车键类型，参数类型{@link ArkUI_EnterKeyType}，默认值为ARKUI_ENTER_KEY_TYPE_NEW_LINE。
     * <br>**返回：**
     * <br>.value[0].i32：回车键类型，参数)型{@link ArkUI_EnterKeyType}。
     *@$NODE_TEXT_EDITOR_ENTER_KEY_TYPE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief TextEditor组件光标颜色，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].u32：光标颜色，采用0xARGB格式，例如0xFFFF0000表示红色。
     * <br>**返回：**
     * <br>.value[0].u32：光标颜色，采用0xARGB格式。
     *@$NODE_TEXT_EDITOR_CARET_COLOR,

    /**
     * @brief TextEditor组件滚动条颜色，支持属性设置、属性重置和属获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.data[0].u32：滚动条颜色，采用0xARGB格式。
     * <br>**返回：**
     * <br>.<data[0].u32：滚动条颜色，采用0xARGB格式。
     *@$NODE_TEXT_EDITOR_SCROLL_BAR_COLOR,

    /**
     * @brief TextEditor组件滚动条显示模式，支持属性设置、属性置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：文本区域的滚动条显示模式，参数类型{@link ArkUI_BarState}，默认值为ARKUI_BAR_STATE_AUTO。
     * <br>**返回：**
     * <br>.value[0].i32：文本区域的滚动条显7模式，参数类型{@link ArkUI_BarState}。
     *@$NODE_TEXT_EDITOR_BAR_STATE,

    /**
     * @brief TextEditor组件文本实体识别功能开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用文本实体识别功能，0表示禁用，1表示用，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用了文本实体识别功能。
     *
A$NODE_TEXT_EDITOR_ENABLE_DATA_DETECTOR,

    /**
     * @brief TextEditor组件识别配置，支持属性设置和属性重置
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.objPect：识别配置，参数类型{@link ArkUI_TextDataDetectorConfig}。
     * @$NODE_TEXT_EDITOR_DATA_DETECTOR_CONFIG,

    /**
     * @brief TextEditor组件扩展菜单选项，支持属性设置和属性置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <bXr>.object：扩展菜单选项，参数类型{@link ArkUI_TextEditMenuOptions}。
     *@$NODE_TEXT_EDITOR_EDIT_MENU_OPTIONS,

    /**
     * @brief TextEditor组件无输入时的提示文本选项，支持属性设和属性重置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：无输入时的提示文本选项，参数类型{@link ArkUI_TextEditorPlaceholderOptions}。
     *
  C$NODE_TEXT_EDITOR_PLACEHOLDER,

    /**
     * @brief TextEditor组件属性字符串控制器，支持属性设置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：属性Y字符串控制器，参数类型{@link ArkUI_TextEditorStyledStringController}。
     *@$NODE_TEXT_EDITOR_STYLED_STRING_CONTROLLER,

    /**
     * @brief TextEditor组件预上屏功能开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用预上屏功能，0表示禁用，1表示启，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用预上屏功能，0表示禁用，1表示启用。
     *@$#NODE_TEXT_EDITOR_ENABLE_PREVIEW_TEXu@brief TextEditor组件TextLayoutManager获取，支持属性获取。
     * <br>作为属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**返回：**
     * <br>.object：布局管理器，参数类型{@link ArkUI_TextLay|
}。
     *@$NODE_TEXT_EDITOR_LAYOUT_MANAGER,

    /**
      * @brief TextEditor组件文本选择识别AI菜单开关，支持属性设置属性重置和属性获取。
      * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
      * <br>**参数：**
      * <br>.value[0].i32：是否启用文本选择识别的AI菜单，0表示用，1表示启用，默认值为1。
      * <br>**返回：**
      * <br>.value[0].i32：是否启用了文本选择识的AI菜单。
      *
 A$ */
    NODE_TEXT_EDITOR_ENABLE_SELECTED_DATA_DETECTOR,

    /**
     * @brief TextEditor组件选中内容背景颜色，支属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.data[0].u32：选中内容的背景颜色，采用0xARGB格式。
     * <br>**返回：**
     * <br>.data[0].u32：选中内容的背景颜色，采用0xARGB格式。
     *
     * H$NODE_TEXT_EDITOR_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief TextEditor组件非点击获焦时拉起输入法开关，持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：非点击获焦时是否拉起输入，0表示不拉起，1表示拉起，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：非点击获焦时A否拉起输入法，0表示不拉起，1表示拉起。
     *@$NODE_TEXT_EDITOR_ENABLE_KEYBOARD_ON_FOCUS,

    /**
     * @brief TextEditor组件最大字符数，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格如下。
     * <br>**参数：**
     * <br>.value[0].i32：最大字符数。
     * <br>**返回：**
     * <br>.value[0!].i32：最大字符数。
     *@$NODE_TEXT_EDITOR_MAX_LENGTH,

    /**
     * @brief TextEditor组件内容最大行数，支持属性设置、属性重置和性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：文本编辑器中内容的最大行数。
     * <br>**返回：**
     *F <br>.value[0].i32：文本编辑器中内容的最大行数。
     *@$NODE_TEXT_EDITOR_MAX_LINES,

    /**
     * @brief TextEditor组件触觉反馈开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否在文本编辑器中启用触觉反馈，0表示不启用，1表示用，默认值为1。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用了触觉反馈，0表示不启用，1表示启用。
     *@$NODE_TEXT_EDITOR_ENABLE_HAPTIC_FEEDBACK,

    /**
     * @brief TextEditor组件复制选项，支持属性设置、属性重和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：复制选项，参数类型{@link ArkUI_CopyOptions}，默认值为ARKUI_COPY_OPTIONS_LOCAL_DEVICE。
     * <br>**返回：**
     * <br>.value[0].i32：复制选项，参数类型{@link ArkUI_CopyOptions}。
     *@$NODE_TEXT_EDITOR_COPY_OPTIONS,

    /**
    * @brief TextEditor组件键盘外观，支持属性设置、属性重置和属性取。
    * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
    * <br>**参数：**
    * <br>.value[0].i32：键盘外观，参数类型{@link ArkUI_KeyboardAppearance}，默认值为ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE。
    * <br>**返回：**
    * <br>.value[0].i32：键盘外观，参数类型{@link ArkUI_KeyboardAppearance}。
    *
"*/
    NODE_TEXT_EDITOR_KEYBOARD_APPEARANCE,

    /**
     * @brief TextEditor组件是否阻止返回事件传播，支持属设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否阻止返回事件传播，0表示不阻止，1表示阻止，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否阻止返回事件传播，0'示不阻止，1表示阻止。
     *@$NODE_TEXT_EDITOR_STOP_BACK_PRESS,

    /**
     * @brief TextEditor组件中西文自动间距开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用自动间距，0表示不启用，1表示启用默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用自动间距，0表示不启用，1表示启用。
     *@$NODE_TEXT_EDITOR_ENABLE_AUTO_SPACING,

    /**
     * @brief TextEditor组件自定义键盘，支持属性设置、属性重和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：自定义键盘，参数类型{@link ArkUI_NodeHandle}。
     * <br>.value[0]?.i32：设置自定义键盘是否支持避让功能，0表示不支持，1表示支持，默认值为0。
     * <br>**回：**
     * <br>.object：自定义键盘，参数类型{@link ArkUI_NodeHandle}。
     * <br>.value[0].i32：设置自O义键盘是否支持避让功能，0表示不支持，1表示支持。
     *@$NODE_TEXT_EDITOR_CUSTOM_KEYBOARD,

    /**
     * @brief TextEditor组件自定义文本选择菜单绑定，支持属性设置和属性重置。
     * <br>作为属性设置方法参数{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**m
     * <br>.object：文本选择菜单，参数类型{@link ArkUI_TextEditorSelectionMenuOptions}。
     *@$NODE_TEXT_EDITOR_BIND_SELECTION_MENU,

    /**
     * @brief TextEditor组件首行末行防截断间距开关，支持属性置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否添加间距，0表示不添加，1表示添加，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否添加间距，0表示不添加，1表示添。
     *@$NODE_TEXT_EDITOR_INCLUDE_FONT_PADDING,

    /**
     * @brief TextEditor组件行高自适应开关，支持属性设置、属重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}式如下。
     * <br>**参数：**
     * <br>.value[0].i32：行高是否自适应，0表示不自适应，1表示自适，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：行高是否自适应，0表示不自适应，1表示适应。
     *@$NODE_TEXT_EDITOR_FALLBACK_LINE_SPACING,

    /**
     * @brief TextEditor组件行首标点符号压缩开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用标点符号压缩，0表示不启用1表示启用，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用标点符号压缩，0表示"启用，1表示启用。
     *@$NODE_TEXT_EDITOR_COMPRESS_LEADING_PUNCTUATION,

    /**
     * @brief TextEditor组件选中拖拽预览样式，支持属性置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.object：选中拖拽预览样式配置，参数类型{@link ArkUI_SelectedDragPreviewStyle}。
     * <br>**返回：**
     * <br>.object：选中拖拽预览样式配置，参数类型{@lin,k ArkUI_SelectedDragPreviewStyle}。
     * @$NODE_TEXT_EDITOR_SELECTED_DRAG_PREVIEW_STYLE,

    /**
     * @brief TextEditor组件单行模式开关，支持属性设置、属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否启用单行模式，0表示不启用，1表示启，默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否启用单行模式，0表示不启用，1表示启用。
     * @$NODE_TEXT_EDITOR_SINGLE_LINE,

    /**
     * @brief 设置TextEditor文本排版时是否使能孤字优化，设置后，通更高效地处理孤立字符（段落尾行首字符）来改善文本布局。使能后，它会调整换行点以尽可6避免孤立字符。
     * 孤字优化特性需在O[属性为非ARKUI_WORD_BREAK_BREAK_ALL时生效。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否使能，1表示使能，0表不使能。默认值为0。
     * <br>**返回：**
     * <br>.value[0].i32：是否使能孤字优化。
     *
     * @si% NODE_TEXT_EDITOR_ORPHAN_CHAR_OPTIMIZATION,

    /**
     * @brief 设置TextEditor组件在文本宽度超过内容区宽度是否启用水平滚动，支持属性设置，属性重置和属性获取。
     * <br>作为属性设置方法参数、属性获取方法返回值{@link ArkUI_AttributeItem}格式如下。
     * <br>**参数：**
     * <br>.value[0].i32：是否用水平滚动。1表示启用水平滚动，0表示不启用水平滚动。默认值为0。
     * <br>**返回：**
     * 6<br>.value[0].i32：是否启用水平滚动。
     *%"4NODE_TEXT_EDITOR_HORIZONTAL_SCROLLING,

    /**
    Z!punctuation overflow at the end of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enapunctuation overflow, the default value is false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:punctuation overflow.\n
     *%"NODE_TEXT_EDITOR_PUNCTUATION_OVERFLOW,

    /**
     * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
     * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,

    /**
     * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b> for the <b>List</b>, <b>Grid</b>, and <b>Scroll</b> components, and
     * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF</b> for the <b>WaterFlow</b> component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
     *
     */
    NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
     * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the scrollbar, in vp. \n
     *
     */
    NODE_SCROLL_BAR_WIDTH,
    /**
     * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of then {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scrollba{ \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scrollbar, in { \n
     *
     */
    NODE_SCROLL_BAR_COLOR,
    /**
     * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
     * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
     *
     */
    NODE_SCROLL_SCROLL_DIRECTION,
    /**
     * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
     * reached. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. The defaultA value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
     * .value[1]?.i32:scroll effect when the component content size is smaller than the
     * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
     * opposite. The default value for the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
     * Scroll component is <b>1</b>. \n
     * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
     * The default value is <b>ARKUI_EFFECT_EDGE_START |    ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
     * API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the component when the boundary of the scrolilable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
     * .value[1].i32:scroll effect when the component content size is smaller than the component
     * itself. Optional. The value <b>1</b> means t(o enable the scroll effect, and <b>0</b>_ \n
     * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EffectEdge}. This parameter is supported since API version 16. \n
     *
     */
    NODE_SCROLL_EDGE_EFFECT,
    /**
     * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
     * finger or mouse is not supported, but the scroll controller API is not affected.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to support scroll gestures. \n
     *
     */
    NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
    /**
     * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
     * indirectly the scroll chaining during the inertial scrolling process.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
     * for wearable devices. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: friction coefficient.
     *
     */
    NODE_SCROLL_FRICTION,
    /**
     * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * .value[1].i32:snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point. The default value is <b>true</Xb>. It is valid only when there are multiple
     * snap points.\n
     * .value[2].i32:[snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
     * edge to which the <b><Scroll></b> component can scroll.  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode for the scroll snap positQion. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     * .value[1].i32:snap to start feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point.\n
     * .value[2].i32: Whethe[snap to end feature. When scroll snapping is defined for the
     * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point.\n
     * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
     * to which the <b><Scroll></b> component can scroll. \n
     *
     */
    NODE_SCROLL_SNAP,

    /**
     * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: nested scrolling option when the component scrolls forward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
     * .value[1].i32: nested scrolling option when the component scrolls backward.
     * The parameter type is {@link ArkUI_ScrollNestedMode}.
     *
     */
    NODE_SCROLL_NESTED_SCROLL,
    /**
     * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset, in vp. \n
     * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
     * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimatiionCurve}.
     *                 The default value is <b>ARKUI_CURVE_EASE</b>. \n
     * .value[4]?.i32:efault spring animation. Optional.
     *                 The default value <b>0</b> means not to enable the default spring animation. \n
     * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
     *                 Optional. \n
     * .value[6]?.i32: whether the component can stop at an overscrolled position.
     *                 This parameter is supported since API version 20. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal scrolling offset, in vp. \n
     * .value[1].f32: vertical scrolling offset0, in vp. \n
     *
     */
    NODE_SCROLL_OFFSEu@brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\9n
     * .value[0].i32: whether the container at the edgeoP<b>-1</b> means that the container is not
     * at the edge position. If the container is at the edge position, the parameter dtype is {@link ArkUI_ScrollEdge}.
     *
     */
    NODE_SCROLL_EDGE,

    /**
     * @brief Defineswipe-to-turn-pages feature. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
     * <b>enablePaging</b> does not. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheswipe-to-turn-pages feature. The default value is <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_Att$ributeItem}:\n
     * .value[0].i32:swipe-to-turn-pages feature. \n
     *
     */
    NODE_SCROLL_ENABLE_PAGING,

    /**
     * @brief Scroll to the next or previous page.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
     * indicates scroll to previou)s page. \n
     * .value[1]?.i32 Indicateanimation. Value 1 indicates enable and 0 indicates disable. \n
     *
     */
    NODE_SCROLL_PAGE,

    /**
     * @brief Scroll a specified distance.
     * List/Scroll/WaterFlow support since API version 12, Grid support since API version 26.0.0.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Horizontal scrolling distance in vp; \n
     * .value[1].f32: Vertical scrolling distance in vp; \n
     *
     */
    NODE_SCROLL_BY,

    /**
     * @brief Performs inertial scrolling based on the initial velocity passed in.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
     * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
     * the scroll will move downward; if the value is negative, the scroll will move upward. \n
    ? *
     * @since 13
     */
    NODE_SCROLL_FLING,

    /**
   qfading effect for the edges of scrollable components.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setti&ng the attribute:
    * .value[0].i32:fading effect on edges. The value 0 means to disable the fading effect,
    * and 1 means to enable it.
    * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
    *
    * Format of the return value {@link ArkUI_AttributeItem}:
    * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
    * disabled, and 1 means that it is enabled.
    * .value[1].f32: length of the fading effect on edges, in vp.
    *
    * @since 14
  /  */
    NODE_SCROLL_FADING_EDGE,

    /**
    atotal size of all child components when fully expanded in the scrollable component.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
     *                The default unit is vp. \n
     * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
     * nearest pixel when being converted from vp to px.
     * The returned values are calculated based on these rounded pixel values. \n
     *
     * @since 14
     */
     NODE_SCROLL_SIZE,

    /**
    qoffset from the start of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     *
    8 * @since 15
     */
    NODE_SCROLL_CONTENT_START_OFFSEutoffset from the end of the scrollable components content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     *
     * @si0nce 15
     */
    NODE_SCROLL_CONTENT_END_OFFSEu@brief Defines the maximum starting fling speed of the scrollable when the fling animation starts.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     *
     * @since 18
     */
    NODE_SCROLL_FLING_SPEED_LIMIT = 1002019,

    /**
     * @brief Defines the clip mode of the scrollable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: clip content mode. The parameter type is {@link ArkUI_ContentClipMode}. The default value is
     * <b>ARKUI_CONTENT_CLIP_MODE_BOUNDARY</b> for the <b>Grid</b> and <b>Scroll</b> components, and
     * <b>ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY</b> for the <b>List</b> and <b>WaterFlow</b> components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
     *
     * @since 18
     */
    NODE_SCROLL_CLIP_CONTENT = 1002020,

    /**
     * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
     * The value <b>1</b> means to scroll back to top, and <b>0</b>_ The default value is <b>0</b>
     * for API versions earlier than 18. For API version 18 and later, the default value is <b>0</b> for the
     * horizontal scroll direction and <b>1</b> for the vertical scroll direction. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
     *
     * @since 15
     */
    NODE_SCROLL_BACK_TO_TOP = 1002021,

    /**
     * @brief Defines the margin of the scrollbar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * .value[1].f32: end margin of the scrollbar, in vp. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start margin of the scrollbar, in vp. \n
     * .value[1].f32: end margin of the scrollbar, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_BAR_MARGIN = 1002022,

    /**
    q-Ozoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current maximum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,

    /**
    qminimum zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current minimum zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,

    /**
    qzoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_ZOOM_SCALE = 1002025,

    /**
     * @Z!zoom bounce effect when the scaling exceeds the limits.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for s-etting the attribute:\n
     * .value[0].i32:zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> mean_d \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:zoom bounce effect when the scaling exceeds the limits.
     * The value <b>1</b> means to enable the effect, and <b>0</b> mean_` \n
     *
     * @since 20
     */
    NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,

    /**
    dragging scrolling with the left mouse button pressed is supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. \n
     *%"=NODE_SCROLL_ENABLE_SCROLL_WITH_MOUSE = 1002027,

    /**
    Zautomatically adjust the margin of the scrollbar to avoid the component's <b>NODE_PADDING</b>, <b>NODE_SCROLL_CONTENT_START_OFFSET</b>, and <b>NODE_SCROLL_CONTENT_END_OFFSET</b> areas.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. \n
     *
     * @since 26.0.&7NODE_SCROLL_AUTO_ADJUST_MARGIN = 1002028,

    /**
    qdirection in which the list items are arranged.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
     * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
     *
     */
    NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
     * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
     * {@link ArkUI_StickyStyle}.
     *
     */
    NODE_LIST_STICKY,
    /**
     * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between list items along the main axis. \n
     *
     */
    NODE_LIST_SPACE,
    /**
    * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUYI_NodeAdapter} object as the adapter. \n
    */
    NODE_LIST_NODE_ADAPTER,

    /**
    qnumber of cached items in the list adapter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
     * .value[2]?.i32: maximum cache count. This parameter is supported since API version 22.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. This parameter is supported since API version 15. \n
     * .value[2].i32: maximum cache count. This parameter Kis supported since API version 22.
     *
     */
    NODE_LIST_CACHED_COUNu@brief Scroll to the specified index.
     * 
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：The index value of the target element to be slid to in the current container.\n
     * .value[1]?.i32：Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. Default value: 0。\n
     * .value[2]?.i32：Specify the alignment of the sliding element with the current container,The parameter type is
     * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
     * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
     * This parameter is supported since API version 15. \n
     *
     */
    NODE_LIST_SCROLL_TO_INDEX,
    /**
    qalignment mode of list items along the cross axis when the cross-axis width of the list is
     * greater than the cross-axis width of list items multiplied by the value of lanes.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of list items along the cross axis.
     * The parameter type is {@link ArkUI_ListItemAlignment}. \n
    */
    NODE_LIST_ALIGN_LIST_ITEM,

    /**
     * @brief Set the default spindle size for the List subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */
    NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,

    /**
     * @brief Set the index value of the item displayed at the start of the viewport
     * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     */
    NODE_LIST_INITIAL_INDEX = 1003008,
    /**
     * @brief sets the ListItem splitter style. By default, there is no splitter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: divid'ing line width; \n
     *.value[2].f32:!Sdivider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32:!divider and the end of the side of the list (unit: vp). \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32:!Sdivider and the beginning of the side of the list, unit vp; \n
     *.value[3].f32:!divider and the end of the side of the list (unit: vp). \n
     *
     */
    NODE_LIST_DIVIDER = 1003009,

    /**
     * @brief Scrolls to the item with the specified index in the specified list item group.
     *
     * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
     * This may result in performance issues if a large number of items are involved. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index of the target list item group in the current list. \n
     *.value[1].i32: index of the targ>et list item in the list item group. \n
     * .value[2]?.i32:smooth animation for scrolling to the item with the specified index.
     * The value <b>1</b> means to enable the animation, and <b>0</b>_    * The default value is <b>0</b>. \n
     * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     *
     *R @since 15
     */
    NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,

    /**
    qnumber of lanes in the list.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
     * of lanes will not take effect. \n
     * .value[1]?.f32: minimum lane width, in vp. \n
     * .value[2]?.f32: maximum column width, in vp. \n
     * .value[3]?.f32: lane spacing, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: number of lanes in the list. \n
     * .value[1].f32: minimum lane width, in vp. \n
     * .value[2].f32: maximum column width, in vp. \n
     * .value[3].f32: lane spacing, in vp. \n \n
     *
     * @since 15
     */
    NODE_LIST_LANES = 1003011,

    /**
     * @brief S|list snap alignment mode.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
     * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
     *
 P    * @since 15
     */
    NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,

    /**
    Zmaintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>Lismt</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b>_ The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the _	 The default value is <b>0</b>. \n
     *
     * @since 15
     */
    NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,

    /**
    <b>List</b> component starts layout from the end.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
     *
     * @since 19
     */
    NODE_LIST_STACK_FROM_END = 1003014,
    
    /**
     * @brief Defines the focus wrap mode for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: focus wrap mode of the <b>List</b> component.
     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
     *
     * @since 20
     */
    NODE_LIST_FOCUS_WRAP_MODE = 1003015,

    /**
     * @brief Defines whether the <b>List</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_LIST_SYNC_LOAD = 1003016,

    /**
     * @brief Defines the scroll snap animation speed for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}.
     * Default value: <b>ARKUI_SCROLL_SNAP_ANIMATION_NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32: scroll snap animation speed for the <b>List</b> component.
     * The parameter type is {@link ArkUI_ScrollSnapAnimationSpeed}. \n
     *
     * @since 22
     */
    NODE_LIST_SCROLL_SNAP_ANIMATION_SPEED = 1003017,

    /**
     * @brief Specifies the responsive column layout policy for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.f32: column spacing. unit: vp. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].f32: column spacing. unit: vp. \n
     *
     * @since 22
     */
    NODE_LIST_LANES_ITEMFILLPOLICY = 1003018,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>List</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>List</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_LIST_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1003019,

    /**
    qback button behavior for the List component. Attribute setting, resetting, and obtaining APIs are supported.
     *
     * The parameter format for setting properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes. Default value: 1.
     * 
     * The parameter format for obtaining properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu 6when the back button is clicked. 0: no; 1: yes.
     *%"NODE_LIST_BACK_PRESS_BEHAVIOR = 1003020,

    /**
     * @brief Defines whether the <b>List</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_LIST_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_LIST_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>List</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>List[</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable.
     *%"NODE_LIST_ENABLE_EDIT_MODE = 1003021,

    /**
     * @brief List component edit mode option configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * When using default multi-selection style, List displays checkboxes after entering edit mode.
     * 0: Do not use default style, 1: Use default style. Default value: 1
     * .value[1].i32: Whether List component enables two-finger swipe multi-selection.
     * This parameter takes effect after registering {@link NODE_LIST_ON_EDIT_MODE_CHANGE} event callback.
     * 0: Two-finger swipe gesture cannot make List enter edit mode, but after entering edit mode through other means,
     * single-finger swipe multi-selection in edit mode is not affected.
     * 1: Two-finger swipe gesture can make List enter edit mode from non-edit mode and perform swipe multi-selection.
     * Default value: 1
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether List component uses default multi-selection style.
     * 0: Do not use default style, 1: Use default style.
     * .value[1].i32: Whether List component enables two-finger swipe multi-selection.
     * 0: Not enabled, 1: Enabl
ed.
     *%"DNODE_LIST_EDIT_MODE_OPTIONS = 1003022,

    /**
     * @brief Defineloop playback for the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forcmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Sloop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     _ The default value is <b>1/b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Sloop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
     _ The default value is <b>1</b>. \n
     *
     */
    NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
    /**
     * @brief Defineautomatic playback for child component switching in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:automatic playback for child component switching. The value <b>1</b>
     * means to enable automatic playback, and <b>0</b> me_ The default value is <b>0</b>. \n
     * \n
     * .value[1]?.i32: whether to stop automatic playback when the user touches thRe screen. The value <b>1</b> means
     * to stop automatic playback, and <b>0</b>_ The default value is <b>1</b>. This parameter is
     * supported since API version 16. \n
     * \n
     * Format of the retu=rn value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:automatic playback for child component switching. The value <b>1</b> means
     * to enable automatic playback, and <b>0</b> me_ The default value is <b>0</b>. \n
     * .value[1].i32: whether to stop automatic playback when the user touches the screen. TGhe value <b>1</b> means to
     * stop automatic playback, and <b>0</b>_ This parameter is supported since API version 16. \n
     *
     */
    NODE_SWIPER_AUTO_PLAY,
    /**
     * @brief Defines wnavigation point indicator for the swiper. This attribute can be set,
     * reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enanavigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the op_ The default value is <b>1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:navigation point indicator. The value <b>1</b> means to enable the
     * navigation point indicator, and <b>0</b> means the op_ The default value is <b>1</b>. \n
     *
     */
    NODE_SWIPER_SHOW_INDICATOR,
    /**
     * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     *
     */
    NODE_SWIPER_INTERVAL,
    /**
     * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether vertical swipinVg is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b>_ The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
     * <b>0</b> means the op_ The default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_VERTICAL,

    /**
     * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
     * <b>400</b>. \n
     *
     */
    NODE_SWIPER_DURATION,

    /**
     * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
     * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
     *
     */
    NODE_SWIPER_CURVE,

    /**
     * @brief Defines the spacing between child components in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between child components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between child components. \n
     *
     */
    NODE_SWIPER_ITEM_SPACE,

    /**
     * @brief Defines the index of the child component currently displayed in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the child component. \n
     * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
     * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
     * This parameter is supported since API version 15. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the child component. \n
     *
     */
    NODE_SWIPER_INDEX,

    /**
    * @brief Defines the number of elements to display per page.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
    * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
    * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 19. \n
    * .string: 'auto' or empty string.
    *
    */
    NODE_SWIPER_DISPLAY_COUNu@brief Defines whether to disable the swipe feature.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whetlher to disable the swipe feature. The value <b>1</b> means to disable
     * the swipe feature, and <b>0</b>_ The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
     * feature, and <b>0</b> means the_
 The default value is <b>0</b>. \n
     *
     */
    NODE_SWIPER_DISABLE_SWIPE,

    /**
    * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
    * The parameter type is {@link ArkUI_SwiperArrow}.\n
    * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
    * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
    * This parameter is supported since API version 19. \n
    *
    */
    NODE_SWIPER_SHOW_DISPLAY_ARROW,

    /**
     * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}.\n
     * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
     * The parameter type is {@link ArkUI_EdgeEffect}. \n
     *
     */
    NODE_SWIPER_EDGE_EFFECT_MODE,

    /**
    * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_SWIPER_NODE_ADAPTER,

    /**
   qnumber of cached items in the swiper adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1]?.i32: whether the cached items will be displayed. \n
    * The value <b>0</b> indicates that cached items will not be displayed, \n
    * and <b>1</b> indicates that cached items will be displayed. The default value is <b>0</b>. \n
    * This parameter is supported from API version 19. \n
    * .value[2]?.i32: whether the cachedCount is independent of group calculation. \n
    * The value <b>1</b> indicates that cachedCount is calculated by actual child component count,\n
    * and is independent of displayCount group calculation.\n
    * The value <b>0</b> indicates that, when NODE_SWIPER_DISPLAY_COUNT is enabled to turn pages by group,\n
    * cachedCount is calculated by group.The default value is <b>0</b>. \n
    * This parameter is supported from API version 24. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
    * .value[2].i32: whether the cachedCount is independent of group calculation. This parameter is supported from API version 24. \n
    */
    NODE_SWIPER_CACHED_COUNT,

    /**u@brief Defines the front margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0E.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b>_ \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the front margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_PREV_MARGIN,

    /**
     * @brief Defines the back margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
     * .value[1]?.i32: whether to ignore blanks, the default value is 0.
     * The value <b>1</b> means to ignore blank areas, and <b>0</b>_ \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the back margin, the unit is vp. \n
     * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_NEXT_MARGIN,

    /**
    * @brief Defines the navigation indicator type of the swiper.
    * The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
    * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
    * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
    * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
    * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
    *
    */
    NODE_SWIPER_INDICATOR,

    /**
     * @brief Set the nested scrolling mode for the Swiper component and parent component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Nested scrolling patterns for Swiper components and parent components. The parameter type is
     * {@link ArkUI_SwiperNestedScrollMode} \n
     */
    NODE_SWIPER_NESTED_SCROLL,

    /**
     * @brief Set the switcher component to flip to the specified page.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Specify the index value of the page in Swiper.\n
     * .value[1]?.i32：Set whether there is an animation effect when flipping to the specified page. 1 indicates active
     * effect, 0 indicates no active effect, default value is 0。\n
     */
    NODE_SWIPER_SWIPE_TO_INDEX,

    /**
    * @brief Set to disable component navigation point interaction function。
    *
    * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
    * .value[0].i32：Set to disable the interaction function of component navigation points. When set to true, it
    AYnavigation points are interactive. The default value is true. \n
    * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}： \n
    * .value[0].i32：Set to disable component navigation point interaction@. \n
    */
    NODE_SWIPER_INDICATOR_INTERACTIVE,

    /**
    qpage flipping mode using the mouse wheel.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
     * \n
     * Format of the return value {@link ArkUI_PageFlipMode}:\n
     * .value[0].i32: page flipping mode using the mouse wheel. \n
     *
     * @since 15
     */
    NODE_SWIPER_PAGE_FLIP_MODE,

    /**
     * @brief Defines the minimum main axis size of child element for swiper to works out the display count.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
     * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1].i32: whether to turn pages by group. \n
     *
     * @since 19
     **/
    NODE_SWIPER_AUTO_FILL,

    /**
    Zmaintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means the opp_ The default value is <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
     * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1</b> means th_ The default value is <b>0</b>. \n
     *
     * @since 20
     */
    NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Swiper</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1]?.i32: whether to paginate by group. The value <b>0</b> means to paginate by individual child elements,
     * and <b>1</b> means to paginate by groups of child elements displayed within the viewport.
     * The default value is <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * .value[1].i32: whether to paginate by group. \n
     *
     * @since 22
     */
    NODE_SWIPER_ITEMFILLPOLICY = 1001024,

    /**
     * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
     * property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     * \n
     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
     *
     */
    NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
     * @brief Defines the header of the list item group.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
    /**
     * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_FOOTER,
    /**
     * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for Bsetting the attribute:\n
     * .value[0].u32: color of the divide{T\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:Adivider and the start of the list, in vp.\n
     * .value[3].f32:divider and the end of the list, in vp.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * ".value[0].u32: color of the divide{T\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:Adivider and the start of the list, in vp.\n
     * .value[3].f32:divider and the end of the list, in vp.\n \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_DIVIDER,

    /**
     * @brief Set the default spindle size for the ListItem Group subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
     */
    NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,

    /**
    * @brief Defines the list item group adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .object: {@link ArkUI_NodeAdapter} object. \n
    *
    * @since 15
    */
    NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,

    /**
     * @brief Defines the horizontal alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
     * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
     *
     */
    NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
    /**
     * @brief Defines the vertical alignment mode of child components in the column.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
     */
    NODE_COLUMN_JUSTIFY_CONTENT,

    /**
 u@brief Defines Row constructor options or Column constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The space of child components, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The space of child components, in vp.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_SPACE,

    /**
     * @brief Defines whether the arrangement of child components along the main axis in a Column or Row is reversed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     *
     * @since 23
     */
    NODE_LINEAR_LAYOUT_REVERSE,

    /**
     * @brief Defines the vertical alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}.\n
     * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components.
     * The parameter type is {@link ArkUI_VerticalAlignment}. \n
     *
     */
    NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
    /**
     * @brief Defines the horizontal alignment mode of child components in the row.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}.\n
     * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
     * \n
     * Format of the return value {@link ArkUI   _AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
     * The parameter type is {@link ArkUI_FlexAlignment}. \n
     *
     */
    NODE_ROW_JUSTIFY_CONTENu@brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
     * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
     * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
     * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
     * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
     * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
     * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
     * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
     * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which flex items are arranged. \n
     * .value[1].i32: how the flex items are wrapped. \n
     * .value[2].i32: alignment mode along the main axis. \n
     * .value[3].i32: alignment mode along the cross axis. \n
     * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
     *
     */
    NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,

    /**
     * @brief Defines Row constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     *
     * @since 23
     */
    NODE_FLEX_SPACE,

    /**
    component is being refreshed.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter type is 1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter type is 1 or 0.
     ]*
     */
    NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    qcustom content in the pull-down area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The parameter type is {@LLink ArkUI_NodeHandle}.
     *
     */
    NODE_REFRESH_CONTENT,
    /**
    ull-down hand coefficient.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     *
     */
    NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
    /**
    qpull-down offset that initiates a refresh.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
     *
     */
    NODE_REFRESH_OFFSET = 1009003,
   	 /**
    Zinitiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
     * <b>false</b>_    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to initiate a refresh. CThe value <b>1</b> means to initiate a refresh, and
     * <b>0</b>_F    *
     */
    NODE_REFRESH_PULL_TO_REFRESH = 1009004,
    /**
    q-Opull-down distance for refreshing.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     *
     * @since 20
     */
    NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005,
    /**
     * @brief Spull-up gesture cancels refresh.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the pull-up gnesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b>_ Default value: <b>1</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh. The value <b>1</b> means that the pull-up gesture
     * cancels refresh, and <b>0</b>_    *
     * @since 23
     */
    NODE_REFRESH_PULL_UP_TO_CANCEL_REFRESH = 1009006,

    /**
     * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
     *
     *b/
    NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,

    /**
    qnumber of columns in the water flow layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE,

    /**
    qnumber of rows in the water flow layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_WATER_FLOW_ROW_TEMPLATE,

    /**
     * tap between columns.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
5     */
    NODE_WATER_FLOW_COLUMN_GAP,

    /**
    qap between rows.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_WATER_FLOW_ROW_GAP,

    /**
     * @brief Defines the water flow section configuration.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: An index calculated from 0 is converted to an integer,
     * indicating that you want to start changing the position of the group.
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@ArkUI_WaterFlowSectionOption} object.\n
     *
     */
    NODE_WATER_FLOW_SECTION_OPTION,

    /**
    * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_WATER_FLOW_NODE_ADAPTER,

    /**
    * @brixnumber of cached items in the water flow adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * value[0].i32：number of cached items in the water flow adapter. \n
    * .value[1]?.i32：whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the water flow adapter. \n
    * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter iKs supported since API version 16. \n
    */
    NODE_WATER_FLOW_CACHED_COUNu@brief Set the custom display component at the end of the waterfall flow component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     */
    NODE_WATER_FLOW_FOOTER,

    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an action when sliding to the index value of a list item in the list, where
     * 1 indicates an action and 0 indicates no action. This parameter is optional, default value is 0.\n
     * .value[2].i32: Specify the alignment of the sliding element with the current container, The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>.
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top.
     * This parameter is supported since API version 23. \n
     *
     */
    NODE_WATER_FLOW_SCROLL_TO_INDEX,

    /**
     * @brief Defines the size constraints to apply to water flow items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     *
     */
    NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,

    /**
     * @brief Defines the layout mode of the <b><WaterFlow></b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
     * @since 18
     */
    NODE_WATER_FLOW_LAYOUT_MODE,

    /**
     * @brief Defines whether the <b>WaterFlow</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_WATER_FLOW_SYNC_LOAD = 1010012,

    /**
     * @brief Specifies the responsive column layout policy for the <b>WaterFlow</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1010013,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>WaterFlow</b> container.
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>WaterFlow</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>,0</b>: Disabled. <b>1</b>: Enabled.\n
     *%"NODE_WATER_FLOW_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1010014,

    /**
     * @brief Set the auxiliary line in the RelativeContaine container, supporting property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOP4E_NUM * ARKUI_NODE_RELATIVE_CONTAINER,

    /**
    qbarrier within the RelativeContaine container and supports property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines within the RelativeContaine container: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Barrier within the RelativeContaine container: \n
     *
     */
    NODE_RELATIVE_CONTAINER_BARRIER,

    /**
    qnumber of columns in the grid layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of columns in the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of columns in the layout.\n
     *
     */
    NODE_GRID_COLUMN_TEMPLA8TE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
    qnumber of rows in the grid layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: number of rows in the layout. \n
     *
     */
    NODE_GRID_ROW_TEMPLATE,

    /**
     * @brief Sets ap between columns. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     */(
    NODE_GRID_COLUMN_GAP,

    /**
    qap between rows. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_GRID_ROW_GAP,

    /**
    * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArZkUI_NodeAdapter} object as the adapter. \n
    */
    NODE_GRID_NODE_ADAPTER,

    /**
   qnumber of cached items in the grid adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display.
    * This parameter is optional, default value is 0. [since 26.0.0]\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the grid adapter. \n
    * .value[1].i32: whether to display cached nodes. 0 means not display, 1 means display. [since 26.0.0]
    */
    NODE_GRID_CACHED_COUNT,

    /**
    * @brief Defines the focus wrap mode for the <b>Grid</b> component.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
    *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
    *
    * @since 20
    */
    NODE_GRID_FOCUS_WRAP_MODE = 1013006,

    /**
     * @brief Defines whether the <b>Grid</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     *
     * @since 20
     */
    NODE_GRID_SYNC_LOAD = 1013007,

    /**
     * @brief Specifies the alignment of <b>GridItem</b> components in the parent <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \n
     * The default value is <b>GRID_ITEM_ALIGNMENT_DEFAULT</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment of <b>GridItem</b> components in the parent <b>Grid</b> container, \n
     * specified using the {@link ArkUI_GridItemAlignment} enum. \n
     *
     * @since 22
     */
    NODE_GRID_ALIGN_ITEMS = 1013008,

    /**
     * @brief Specifies the layout options of the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .object: layout options, with the parameter format of {@link ArkUI_GridLayoutOptions}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: current {@link ArkUI_GridLayoutOptions} object. \n
     *
     * @since 22
     */
    NODE_GRID_LAYOUT_OPTIONS = 1013009,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of columns at different breakpoint specifications.
     * The data type is {@link ArkUI_ItemFillPolicy}. \n
     *
     * @since 22
     */
    NODE_GRID_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1013010,

    /**
     * @brief Specifieedit mode for the <b>Grid</b> component.
     * In edit mode, <b>GridItem</b> components can be dragged through the <b>NODE_GRID_ON_ITEM_DRAG_START</b> event.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Feormat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. Default value: <b>0</be>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. \n
     *
     * @sincOe 23
     */
    NODE_GRID_EDIT_MODE = 1013011,

    /**
     * @brief Specifierag animation for <b>GridItem</b> components in the <b>Grid</b>
     * container. This attribute can be set, reset, and obtained as required through APIs.
     * Animations are supported only in scrolling mode (when either <b>NODE_GRID_ROW_TEMPLATE</b> or
     * <b>NODE_GRID_COLUMN_TEMPLATE</b> is set, but not both). Drag animations are only supported in regularly sized
     * grid layouts; scenarios involving spanning across rows or columns are not supported.
     *
     * Format of the {@link ArkUI_AtItributeItem} parameter for setting the attribute:\n
     * .value[0].i32:rag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:rag animation for <b>GridItem</b> components in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. \n
     *
     * @since 23
     */
    NODE_GRID_DRAG_ANIMATION = 1013012,

    /**
     * @brief	 Specifiemouse-based multi-selection in the <b>Grid</b> container. This attribute can
     * be set, reset, and obtained as required through APIs. When enabled, mouse-based multi-selection within the
     * <b>Grid</b> area triggers the <b>NODE_GRID_ITEM_ON_SELECT</b> event on <b>GridItem</b> components.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the at tribute:\n
     * .value[0].i32:mouse-based multi-selection.
     * <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based multi-selection. Default value:
     * <b>0</b>.\n \n Format of the return value {@link ArkUI_AttributeItem}:\n .value[0].i32: whether to enable
     * mouse-based multi-selection. <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based
     * multi-selection. \n
     *
     * @since 23
     */
    NODE_GRID_MULTI_SELECTABLE = 1013013,
  
    /**
     * @brief Scroll to the specified index.
     *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an animation when sliding to the target element, where
     * 1 indicates an animation and 0 indicates no animation. This parameter is optional. default value is 0. \n
     * .value[2].i32: Specify the alignment of the target element with the current container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional, default value is </b>ARKUI_SCROLL_ALIGNMENT_AUTO</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>. 
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top. \n
     *
     * @since 23
     */
    NODE_GRID_SCROLL_TO_INDEX = 1013014,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>Grid</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\n
     *
     * @since 23
     */
    NODE_GRID_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1013015,

    /**
     * @brief Defines whether the <b>Grid</b> component enables edit mode.
     * When set to <b>1</b> (editable), checkboxes are displayed by default and
     * single-finger sliding multi-selection is available within the edit mode.
     * When the edit mode state changes, the {@link NODE_GRID_ON_EDIT_MODE_CHANGE}
     * event callback is triggered. The state can be changed in two ways:
     * 1. Directly setting this attribute.
     * 2. Triggered via two-finger sliding gesture when
     * {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled
     * and the {@link NODE_GRID_ON_EDIT_MODE_CHANGE} callback is registered.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable. Default value: <b>0</b>.\n
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether the <b>Grid</b> component enables edit mode.
     * <b>0</b>: Not editable. <b>1</b>: Editable.\n
     *
     * @since 26.0.0
      */
    NODE_GRID_ENABLE_EDIT_MODE = 1013016,

    /**
     * @brief Defines the edit mode options for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
     * .value[0].i32: Whether the <b>Grid</b> component uses default multi-selection style.
     * When using default multi-selection style, <b>Grid</b> displays checkboxes after entering edit mode.
     * <b>0</b>: Do not use the default style, <b>1</b>: Use the default style. Default value: <b>1</b>
     * .value[1].i32: Whether the <b>Grid</b> component enables two-finger sliding multi-selection.
     * This parameter takes effect after registering {@link NODE_GRID_ON_EDIT_MODE_CHANGE} event callback.
     * <b>0</b>: Two-finger sliding gesture cannot make <b>Grid</b> enter edit mode, but after entering
     * edit mode through other means, single-finger sliding multi-selection in edit mode is not affected.
     * <b>1</b>: Two-finger sliding gesture can make <b>Grid</b> enter edit mode from non-edit mode and
     * perform sliding multi-selection. Default value: <b>1</b>
     *
     * Format of the return value {@link ArkUI_AttributeItem}:
     * .value[0].i32: Whether the <b>Grid</b> component uses the default multi-selection style.
     * <b>0</b>: Do not use the default style. <b>1</b>: Use the default style.
     * .value[1].i32: Whether the <b>Grid</b> component enables two-fingPer sliding multi-selection.
     * <b>0</b>: Disabled. <b>1</b>: Enabled.
     *%"4NODE_GRID_EDIT_MODE_OPTIONS = 1013017,

    /**
    qstyle of the <b>GridItem</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     * The default value is <b>GRID_ITEM_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the <b>GridItem</b> component, specified using {@link ArkUI_GridItemStyle}. \n
     *
     * @since 22
     */
    NODE_GRID_ITEM_STYLE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,

    /**
     * @brief Specifies whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. Default value: <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>GridItem</b> component can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selec`table. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_SELECTABLE = 1014001,

    /**
    qselected state of the <b>GridItem</b> component. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: selected state of the <b>GridItem</b> component.
     * <b>0</b>: not selected. <b>1</b>: selected. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n 
     * .value[0].i32: selected state of the <b>GridItem</b> component. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_SELECTED = 1014002,

    /**
    * @brief Defines the column width of the text picker.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * ...\n
    * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * value[0].f32: percentage of total width.\n
    * value[1].f32: percentage of total width.\n
    * value[2].f32: percentage of total width.\n
    * ...\n
    * value[n].f32: percentage of total width.\n
    *
    * @since 18
    */
    NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
    /**
     * @brief Defines the disabled date range of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
     * ...,`nth start date`,`nth end date` of the disabled date range.\n
     *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: A string of dates.\n
     *
     * @since 19
     */
    NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,

    /**
     * @brief Defines whether the calendar picker marks today.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether the calendar picker marks today. The default value is <b>false</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether the calendar picker marks today.\n
     *
     * @since 19
     */
    NODE_CALENDAR_PICKER_MARK_TODAY = 16007,

    /**
     * @brief Defines the want used to start EmbeddedAbility.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}.
     * The default value is <b>nullptr</b>.\n
     *
     * @sincae 20
     */
    NODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENu@brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The option for EmbeddedComponent, with parameter type {@ArkUI_EmbeddedComponentOption}.\n
     *
     * @since 20
     */
    NODE_EMBEDDED_COMPONENT_OPTION,

    /**
     * @brief Defines the index of the default selected item in the data selection range of the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. \n
     *
     * @since 23
     */
    NODE_PICKER_OPTION_SELECTED_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
    /**
     * @brief Defines whether haptic feedback.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     *
     * @since 23
     */
    NODE_PICKER_ENABLE_HAPTIC_FEEDBACK = 1018001,
    /**
     * @brief Defines whether to support scroll looping for the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support scroll lVooping. The value <b>true</b> means to support scroll looping, and
     * <b>false</b>_\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: The value <b>1</b> means to $support scroll looping, and <b>0</b>_T \n
     *
     * @since 23
     */
    NODE_PICKER_CAN_LOOP = 1018002,
    /**
    qtype and parameters of the selection indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Parameter type {@link ArkUI_PickerIndicatorStyle}.
     *
     * @since 23
     */
    NODE_PICKER_SELECTION_INDICATOR = 1018003,

    /**
    qtotal number of visible items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of visible items. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of visible items. \n
     *%"9NODE_PICKER_DISPLAYED_ITEM_COUNT = 1018004,

    /**
    1Deight of each item.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: the height of each item, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: the height of each item, in vp. \n
     *%"<NODE_PICKER_ITEM_HEIGHT = 1018005,
} ArkUI_NodeAttributeType` component event max args sizeA&#define MAX_COMPONENT_EVENT_ARG_NUM 12the parameter typ#callback eventA0{
    /** Data array object. */
    ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
} ArkUI_NodeComponentEvent;

/**
 * @bl>the string type parameter used by the component callback eventA0C{
    /** String. */
    const char* pStr;
} ArkUI_StringAsyncEvent`;hybrid data structure for component events.
 *
 * @since 15!j{
    /** String data */
    const char* pStr;
    /** Extended string data */
    const char* pExtendStr;
    /** Numeric data */
    int32_t number;
} ArkUI_TextChangeEvent;

/**
 * @brief 定义TextEditor组件文本内容变化事件的结构体。
 1t/cc;
{t'event types supported by the NativeNode(t@brief Defines the gesture event type.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is {@link ArkUI_UIInputEvent}.
     */
    NODE_TOUCH_EVENT = 0,

    /**
     * @brief Defines the mount event.
     *
     * This event is triggered when the component is mounted and displayed. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_APPEAR,
    /**
     * @brief Defines the unmount event.
     *
     * This event is triggered when the component is unmounted and hidden. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DISAPPEAR,

    /**
     * @brief Defines the area change event.
     *
     * This event is triggered when the component's size, position, or any other attribute that may
     * affect its display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *  {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     */
    NODE_EVENT_ON_AREA_CHANGE,
    /**
     * @brief Defines the focus event.
     *
     * This event is triggered when the component obtains the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_ON_FOCUS,
    /**
     * @brief Defines the blur event.
     *
     * This event is triggered when the component loses the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_ON_BLUR,
    /**
     * @brief Defines the click event.
     *
     * This event is triggered when the component is clicked. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
     * is triggered and the time when the system starts, in microseconds. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
     * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
     * application screen, in vp. \n
     */
    NODE_ON_CLICK,
    /**
     * @brief Defines event interception.
     *
     * This event is triggered when the component is touched. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_TOUCH_INTERCEPT,
    /**
     * @brief Defines the visible area change event.
     *
     * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
     * than the threshold.
     * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
     * decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
     * callback is invoked. \n
     */
    NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
    /**
     * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
     * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
     * the mouse pointer is moved away from the component. \n
     */
    NODE_ON_HOVER,
    /**
     * @brief Defines the click event.
     *
     * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
     * within the component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_MOUSE,
    /**
     * @brief Defines the attach event.
     *
     * This event is triggered when the component is attached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_ATTACH,
    /**
     * @brief Defines the detach event.
     *
     * This event is triggered when the component is detached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DETACH,

    /**
     * @brief Defines the accessibility action event.
     *
     * This event is triggered when The accessibility operation type has been set and
     * corresponding operations have been carried out. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type，the union type is
     * {@link ArkUI_AccessibilityActionType} \n
     *
     */
    NODE_ON_ACCESSIBILITY_ACTIONS = 13,

    /**
     * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
     *
     * This event is triggered when a drag operation is about to start on a draggable item. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
     */
    NODE_ON_PRE_DRAG = 14,
    /**
     * @brief Called when the user starts to drag an ite
     *
     * A drag operation is recognized only when the dragged item is moved far enough. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_START = 15,
    /**
     * @brief Called when a dragged item enters the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_ENTER = 16,
    /**
     * @brief Called  when a dragged item moves in the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_MOVE = 17,
    /**
     * @brief Called when a dragged item leaves the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_LEAVE = 18,
    /**
     * @brief Called when a dragged item is dropped on the current component.
     * The component can obtain the drag data for processing through the callback.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DROP = 19,
    /**
     * @brief Called when a drag operation ends.
     * The drag source can obtain the drag result by registering this callback.
     *
     * A drag operation ends when the dragged item is released.
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_END = 20,
    /**
     * @brief Defines the event triggered when a key event occurs.
     *
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 14
     */
    NODE_ON_KEY_EVENT = 21,
    /**
     * @brief Defines the event triggered before the input method responds to the key action.
     *
     * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
     * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
     * and no longer triggered.
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 14
     */
    NODE_ON_KEY_PRE_IME = 22,
    /**
     * @brief Defines the event triggered when the bound component receives a focus axis event after gaining focus.
     *
     * The event callback is triggered by interactions with a joystick and a focused component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 15
     */
    NODE_ON_FOCUS_AXIS = 23,

    /**
     * @brief Dispatch key event on the component node.
     *
     * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
     * children. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 15
     */
    NODE_DISPATCH_KEY_EVENT = 24,

    /**
     * @brief Defines the event triggered when the bound component receives an axis event.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 17
     */
    NODE_ON_AXIS = 25,

    /**
     * @brief Defines the event triggered when the bound component is clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}.  \n
     *
     * @since 18
     */
    NODE_ON_CLICK_EVENT = 26,

    /**
     * @brief Defines the event triggered when the mouse pointer hovers over or moves away from a component.
     *
     * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     *
     *@since 17
     */
    NODE_ON_HOVER_EVENT = 27,

    /**
     * @brief S|~
or the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
     *
     * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
     * less than the threshold. Before registering the callback, you must configure the threshold and update interval
     * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
     * a decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
     * when this callback is invoked. \n
     *
     * @since 17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,

    /**
     * @brief Defines the hover event.
     * 
     * The event is/~ointer is hovered by a pen device.
     * within the component. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputEvent} object. \n
     * @since 15
    */
    NODE_ON_HOVER_MOVE = 29,

    /**
     * @brief Defines the size change event.
     *
     * The event will be triggered when the component size changes.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. 
     * {@link ArkUI_NodeComponentEvent} contains four parameters:
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: the width of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: the height of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the width of the new rectangle.
     * <b>ArkUI_NodeComponentEvent.data[)3].f32</b>: the height of the new rectangu1
     */
    NODE_ON_SIZE_CHANGE = 30,

    /**
     * @brief Defines the coasting axis event.
     *
     * The event is triggered when user swipes with two fingers on the touchpad, the system constructs
     * sliding events based on the speed at the moment the fingers are lifted, according to a certain
     * decay curve. You can listen for such events to handle the flick effect immediately after the
     * regular axis events. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object through {@link OH_ArkUI_NodeEvent_GetInputEvent}.
     * And the {@link ArkUI_CoastingAxisEvent} object can be obtained from the {@link ArkUI_UIInputEvent}
     * object through {@link OH_ArkUI_UIInputEvent_GetCoastingAxisEvent}. \n
     *
     * @since 22
     */
    NODE_ON_COASTING_AXIS_EVENT = 31,

    /**
     * @brief Defines the pre-touch test of sub component in touch events. Called to specify how to perform the touch test on the children of this component.
     * 
     * The event is triggered when the component is touched. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_TouchTestInfo} object. \n
     * @since 22
    */
    NODE_ON_CHILD_TOUCH_TEST = 32,

    /**
     * @brief Defines the crown event.
     * This event is triggered when the crown is rotated. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtain5ed from the
     * {@link ArkUI_NodeEvent} object. \n@$*/
    NODE_ON_DIGITAL_CROWN = 33,

    /**
     * @brief Defines the event is triggered when the <b>ARKUI_NODE_CUSTOM</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child comphonent. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the frame scrolling, measured in px. \n@$*/
    NODE_ON_CUSTOM_OVERFLOW_SCROLL = 34,

    /**
     * @brief Defines the event is triggered when the <b>ARKUI_NODE_STACK</b> content is scrolled.
     * 
     * The event is triggered when the component's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of the frame scrolling, measured in px. \n
     * @since O$*/
    NODE_ON_STACK_OVERFLOW_SCROLL = 35,

    /**
     * @brief Defines the event triggered when the component is focused and need to decide whether softkeyboard is needed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     *
     * @return Whether softkeyboard is needed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether softkeyboard is needed.
     ,* <b>0</b>: not needed. <b>1</b>: needed. \n@$NODE_ON_NEED_SOFTKEYBOARD = 36,

    /**
     * @brief This callback is invoked when the events and gestures on this node and
     * higher-priority nodes are collected. \n
     * This callback is used to intervene in the collection result of events and gestures. \n
     * 
     * When the event callback occurs, the {@link ArkUI_GestureCollectInterceptInfo} object can be obtaine4d from the
     * {@link ArkUI_NodeEvent} object. \n%"NODE_ON_GESTURE_COLLECT_INTERCEPT = 37,

    /**
     * @brief Triggers onDetectResultUpdate callback
     * whe   n the text is set to TextDataDetectorConfig and recognized successfully.
     *
     * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
     * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
     * {@link ArkUI_StringAsyncEvent}.\n
     * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>：Indicates the result of text recognition, in Json format.\n
     *
     */
    NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
     * @brief Defines the long press event for span.
     *
     * The event is triggered when the span is long pressed.
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_UIInputEvent} object. \n
     * @since 20
     */
    NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,

    /**
     * @brief Defines the event triggered when the text selection position changes.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: stStext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
%!NODE_TEXT_ON_TEXT_SELECTION_CHANGE = 1002,

    /**
     * @brief Defines the event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *
     * @since 26.0.0
  
&
NODE_TEXT_ON_COPY = 1003,

    /**
     * @brief Defines the event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"NODE_TEXT_ON_WILL_COPY = 1004,

    /**
     * @brief Defines the image loading success event.
     *
     * This event is triggered when an image is successfully loaded or decoded. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
     * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the imaGge, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width> \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: heightV \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content on the
     * x-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to -on the
     * y-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
     */
    NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
     * @brief Defines the image loading failure event.
     *
     * This event is triggered when an error occurs during image loading. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
     * 401: The image could not be obtained because the image path is invalid. \n
     * 103101: The image format is not supported. \n
     */
    NODE_IMAGE_ON_ERROR,
    /**
     * @brief Defines the SVG animation playback completion event.
     *
     * This event is triggered when the animation playback in the loaded SVG image is complete. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_IMAGE_ON_SVG_PLAY_FINISH,
    /**
     * @brief Defines image download process event.
     *
     * This event is triggered when downloading webpage images from page components.\n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
     * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
     */
    NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
    /**
     * @brief Defines the event triggered when the toggle status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
     *
     */
    NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
     * @brief Defines the event triggered when the text input content changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
     *
     */
    NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
     * @brief Defines the event triggered when the Enter key of the text input method is pressed.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
     *
     */
    NODE_TEXT_INPUT_ON_SUBMIT,
    /**
     * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     *
     */
    NODE_TEXT_INPUT_ON_CUT,
    /**
     * @brief Defines the event/~ste button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
     */
    NODE_TEXT_INPUT_ON_PASTE,
    /**
     * @brief Defines the event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:Ptext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,

    /**
     * @brief Defines the event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_INPUT_ON_EDIT_CHANGE,

    /**
      * @brief textInput This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter
      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *
      */
    NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,

    /**
     * @brief Defines the event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,

    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_Node)ComponentEvent.data[0].i32</b>: IndicatesNtext in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_INPUT_ON_CONTENT_SCROLL,

    /**
     * @brief Defines the event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue<	/b>.
    P<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,

    /**
     * @brief Defines the event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_INPUT_ON_DID_INSERT = 7010,

    /**
     * @brief Defines the event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; Dobtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,

    /**
     * @brief Defines the event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_INPUT_ON_DID_DELETE = 7012,

    /**
     * @brief Defines the event triggered when content (including preview text) changes in the <b>TextInput</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of _the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>:Ppreview text in the <b>TextInput</b> component.
     *
     * @since 15
     */
    NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,

    /**
     * @brief Defines the event triggered before content changes
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>:Ppreview text in the <b>TextInput</b> component.
     * 
     * @since 20
     */
    NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,

    /**
     * @brief Defines the event triggered when the copy button on the pasteboard, which displays when text is
     * selected, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsy-ncEvent.pStr</b>: text that is copied.
     *%"NODE_TEXT_INPUT_ON_COPY = 7015,

    /**
     * @brief Defines the event triggered before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"NODE_TEXT_INPUT_ON_WILL_COPY = 7016,

    /**
     * @brief Defines the event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"NODE_TEXT_INPUT_ON_WILL_CUT = 7017,

    /**
     * @brief Defines the event triggered when the input in the text box changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
     *
     */
    NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
     * @brief Defines the event/~ste button on the pasteboard, which displays when the text box is
     * long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
     */
    NODE_TEXT_AREA_ON_PASTE,
    /**
     * @brief Defines the event triggered when the text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:Ptext selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
    /**
     * @brief Defines the event triggered when matching with the regular expression specified by
     * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
    /**
     * @brief This callback is triggered when the text content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two pJarameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: IndicatesNtext in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_AREA_ON_CONTENT_SCROLL,

    /**
     * @brief Defines the event triggered when the input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_AREA_ON_EDIT_CHANGE,

    /**
     * @brief Defines the event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
     *
     * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
     *
     */
    NODE_TEXT_AREA_ON_SUBMIT,

    /**
      * @brief textArea This event is triggered when the input content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
      * {@link ArkUI_NodeComponentEvent}.\n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
      *
      */
    NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,

    /**
     * @brief Defines the event triggered when text is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_INSERT = 8008,

    /**
     * @brief Defines the event triggered when text is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_AREA_ON_DID_INSERT = 8009,

    /**
     * @brief Defines the event triggered when text is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obBtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    P<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_DELETE = 8010,

    /**
     * @brief Defines the event triggered when text is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_AREA_ON_DID_DELETE = 8011,

    /**
     * @brief Defines the event triggered when content (including preview text) changes in the <b>TextArea</b>
     * component.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the Zpreview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>:Ppreview text in the <b>TextArea</b> component.
     *
     * @since 15
     */
    NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,

    /**
     * @brief Defines the event triggered before content changes.
     *
     * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>:Ppreview text in the <b>TextArea</b> component.
     *
     * @since 20
     */
    NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,

    /**
     * @brief Defines the event triggered when the copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_6StringAsyncEvent.pStr</b>: text that is copied.
     *%"NODE_TEXT_AREA_ON_COPY = 8014,

    /**
     * @brief Defines the event triggered before copying text.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the copy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"NODE_TEXT_AREA_ON_WILL_COPY = 8015,

    /**
     * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} c\ontains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     *%"NODE_TEXT_AREA_ON_CUT = 8016,

    /**
     * @brief Defines the event triggered before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the cut is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *%"NODE_TEXT_AREA_ON_WILL_CUT = 8017,

    /**
     * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
     */
    NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
     * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
     */
    NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,

    /**
     * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
     */
    NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,

    /**
     * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     */
    NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,

    /**
     * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
     * <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 14
     */
    NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,

    /**
     * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
     * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
     * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
     */
    NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,

    /**
     * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
     */
    NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NO3DE_SLIDER,

    /**
     * @brief Defines the event~"an object is dragged or clicked by ARKUI_NODE_RADIO.
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
     * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
     */
    NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_FSCOPE_NUM * ARKUI_NODE_RADIO,

    /**
     * @brief Defines the event~&animation starts to play.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
    /**
     * @brief Defines the event~&animation playback is paused.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
   [ */
    NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
    /**
     * @brief Defines the event~&animation playback is repeated.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
    /**
     * @brief Defines the event callback function when the animation playback returns to the initial state.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameterj:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
    /**
     * @brief Defines the event~&animation playback is complete or stopped.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
    
    /**
     * @brief Defines the callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
     * or checkbox changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * <b>ArkUI_StringAsyncEvent.pStr</b>
     * Name: The names of the selected checkboxes;
     * Status:
     * 0: All checkboxes are selected.
     * 1: Some checkboxes are selected.
     * 2: No checkboxes are selected. \n
     *
     * @since 15
     */
    NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
     * @brief 定义TextEditor组件中区或光标位置发生变化时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含两个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：选区起始索引。
     * <br><b>ArkUI_NodeComponentEvent.data[1].i32</b>：选区结束索引。
     *@$NODE_TEXT_EDITOR_ON_SELECTION_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief 定义TextEditor组首次初始化完成时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类0型为{@link ArkUI_NodeComponentEvent}。
     *@$NODE_TEXT_EDITOR_ON_READY,

    /**
     * @brief 定义TextEditor组件执行粘贴时触发的事件。
     * <br>系统会据回调函数返回值判断是否拦截组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>$0：不拦截。1：拦截。
     *@$NODE_TEXT_EDITOR_ON_PASTE,

    /**
     * @brief 定义TextEditor组件编辑状态发生变化时触发的事件。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含一个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：组件的编辑态。
     *@$NODE_TEXT_EDITOR_ON_EDITING_CHANGE,

    /**
     * @brief 定义TextEditor组件输入法的回车键被按下时触发的事。
     * <br>事件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}
     * <br>{@link ArkUI_NodeComponentEvent}包含一个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：>入法的回车键类型{@link ArkUI_EnterKeyType}。
     * @$NODE_TEXT_EDITOR_ON_SUBMIu@brief 定义TextEditor组件执行剪切时触发的事件。
     * <br>系统会根据回调函数返回值判断是否拦组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>0：不拦截。1：拦截。
     * @sinceN$NODE_TEXT_EDITOR_ON_CUu@brief 定义TextEditor组件执行复制时触发的事件。
     * <br>系统会根据回调函数返回值判断是否拦组件的默认行为。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返值中索引为0的value.i32表示是否拦截组件的默认行为。
     * <br>0：不拦截。1：拦截。
     * @sinceN$NODE_TEXT_EDITOR_ON_COPY,

    /**
     * @brief 定义TextEditor组件在内容将要改变时触发的事件。
     * <br>任何导致文本内容发生变化的操作生效之前会触发该回调，开发者可根据回调事件中的信息决定是否拦截本次内容变更。
     * <br>当事件回调发生时，可以通过{@link OH_ArkUI_NodeEvent_GetTextEditorOnWi<llChangeEvent}从{@link ArkUI_NodeEvent}对象中获得
    rc}对象。
     * <br>使用cXXX系列接口可以从该对象中获取更多信息。
     * <br>系统会根据回调函数返回值判断当前内容是允许被更改。
     * <br>可通过{@link OH_ArkUI_NodeEvent_SetReturnNumberValue}设置返回值。
     * <br>返回值中索引为0的value.i32表示当前内容是否允许被更改。<b>0</b>：不允许更改。<b>1</b>：允许更改。
    E$NODE_TEXT_EDITOR_ON_WILL_CHANGE,

    /**
     * @brief 定义TextEditor组件在内容改变时触发的事件。
     * <br>件回调触发时，{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。
     * <br>{@link ArkUI_NodeComponentEvent}包含四个参数：
     * <br><b>ArkUI_NodeComponentEvent.data[0].i32</b>：文本变化前将被替换的文本范围的起始索引。
     * <br><b>ArkUI_NodeComponentEvent.data[1].i32</b>：文本变化前将要被换的文本范围的结束索引。
     * <br><b>ArkUI_NodeComponentEvent.data[2].i32</b>：文本变化后新增内容的本范围的起始索引。
     * <br><b>ArkUI_NodeComponentEvent.data[3].i32</b>：文本变化后新增内容的文本范的结束索引。
     *@$[NODE_TEXT_EDITOR_ON_DID_CHANGE,

    /**
     * @brief Defines the event triggered when the!4ly displayed element of this
     * <b>ARKUI_NODE_SWIPER</b> instance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeCompoXnentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:!4ly displayed element. \n
     */
    NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,

    /**
     * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: inde&4ly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
     * start position `wiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
     * of the swiper along the main axis. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off veloc7ity. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_STARu@brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: inde&4ly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     *Pwiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_END,

    /**
     * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
     * <b>ARKUI_NODE_SWIPER</b> instance.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: ind%4ly displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     *Pwiper along the main axis. \n
     */
    NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,

    /**
     * @brief Define the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
     * Instruction: \n
     * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
     * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
     * 2, circular scenario, set prevMargin and nextMargin attributes, \n
     * so that Swiper front and back end display the same page, the interface does not take effect. \n
     * 3. During page sliding, the ContentDidScrollCallback callback is \n
     * triggered frame-by-frame for all pages in the window. \n
     * For example, when there are two pages in the window with subscripts 0 and 1, \n
     * callbacks with index values 0 and 1 are triggered twice per frame. \n
     * 4, set the swipeByGroup parameter of the displayCount property to \n
     * true if at least one page in the same group is in the window, \n
     * A callback is triggered for all pages in the group. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
     * which is consistent with the index change in the onChange event. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \nk
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
     *`,Swiper spindle (selectedIndex corresponds to`page). \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis direction. \n
     */
    NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,

    /**
     * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>:!4ly selected element. \n
     * 
     * @since 18
     */
    NODE_SWIPER_EVENT_ON_SELECTED = 1001005,

    /**
     * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
     * 
     * @since 18
     */
    NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,

    /**
     * @brief Defines the event triggered when content in the swiper component will scroll.
     * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
     * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
     * slide forward(e.g. from index=0 to index=1). \n
     *
     * @since 15
     */
    NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,

    /**
     * @brief Defines the <b>ARKUI_NODE_SWIPER</b> scroll state change event.
     * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
     * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     *
     * @since 20
     */
    NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,

    /**
     * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
     * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is not triggered when the controller API is called. \n
     * 3. This event does not support the out-of-bounds bounce effect. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
     * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
     * needs to scroll based on the real-world situation and return the result in this parameter. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,

    /**
     * @brief Define the enumeration value of the pre sliding trigger event for the scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component.
     */
    NODE_SCROLL_EVENT_ON_WILL_SCROLL,
    /**
     * @brief Define the event enumeration value triggered when sliding a scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     parameter type is {@link ArkUI_ScrollState}. \n
     */
    NODE_SCROLL_EVENT_ON_DID_SCROLL,

    /**
     * @brief Defines the event triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
     * and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_START,
    /**
     * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_STOP,
    /**
     * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
     * one of the edges.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
     * component or other input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
    /**
     * @brief Define that a callback is triggered when the scrolling container component reaches the start position.
     * Condition for triggering the event: \n
     * Triggered when the component reaches the start position. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_START,
    /**
     * @brief Define that a callback is triggered when the scrolling container component ends. \n
     * Condition for triggering the event: \n
     * Triggered when the component reaches the end. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_END,
    /**
     * @brief Defines the callback for when the user is about to release the drag on the scrollable container component.
     *
     * This event is triggered when the user is about to release the drag on the scrollable container component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releases the drag, in vp. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
    /**
     * @brief Defines the callback for the <b>Scroll</b> component's zoom event,
     * triggered at the end of each frame during zooming. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current zoom scale. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_DID_ZOOM,
    /**
     * @brief Defines the callback for the <b>Scroll</b> component's zoom start event,
     * triggered when zooming begins. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_START,
    /**
     * @brief Defines the callback for the <b>Scroll</b> component's zoom end event,
     * triggered when zooming ends. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
     *
     * @since 20
     */
    NODE_SCROLL_EVENT_ON_ZOOM_STOP,
    /**
     * @brief Defines the callback for when the scrollable will start dragging.
     *
     * This event is triggered when the scrollable will start dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_WILL_START_DRAGGING = 1002013,
    /**
     * @brief Defines the callback for when the scrollable did end dragging.
     *
     * This event is triggered when the scrollable did end dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether start fling animation. \n
     *
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_DRAGGING = 1002014,
    /**
     * @brief Defines the callback for when the scrollable will start fling.
     *
     * This event is triggered when the scrollable will start fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_WILL_START_FLING = 1002015,
    /**
     * @brief Defines the callback for when the scrollable did end fling.
     *
     * This event is triggered when the scrollable did end fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since 21
     */
    NODE_SCROLL_EVENT_ON_DID_STOP_FLING = 1002016,
    /**
     * @brief Defines the enumerated values of the event triggered, \n
     * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
     * Condition for triggering the event: \n
     * This method is triggered once during list initialization. \n
     * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
     * the first child component in the region. \n
     * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
     * the last child component in the region. \n
     * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
     * the subcomponent in the middle of the area. \n
     */
    NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
     * @brief Defines the enumerated values of the event triggered
     * before the sliding of the ARKUI_NODE_LIST component. \n
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_LIST_ON_WILL_SCROLL,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_LIST component is flicked.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_LIST_ON_DID_SCROLL,

    /**
     * @brief Defines the event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the list is initialized and when the index of the first child component or the
     * next child component in the list display area changes.
     * During index calculation, the list item, header of the list item group, and footer of the list item group each
     * are counted as a child component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains six parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
     * in the list item group.
     * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
     * list item group.
     * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
     *
     * @since 15
     */
    NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,

    /**
     * @brief Defines the edit mode state change event of the <b>List</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_LIST_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_LIST_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection    state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: not in edit mode. <b>1</b>: in edit mode.
     *
     * @since 26.&NODE_LIST_ON_EDIT_MODE_CHANGE = 1003004,

    /**
     * @brief Defines the selected state change event of the <b>ListItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.dRata[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected.
     *%"NODE_LIST_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
     * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
     */
    NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
     * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
     */
    NODE_REFRESH_ON_REFRESH,

    /**
     * @brief Defines the event that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
     */
    NODE_REFRESH_ON_OFFSET_CHANGE,

    /**
     * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
     * input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * parameter type is {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * parameter type is {@link ArkUI_ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
     */
    NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
    /**
     * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
     * Condition for triggering the event: \n
     * This event is triggered when the scrolling component triggers scrolling.
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_WATER_FLOW_ON_DID_SCROLL,
    g/**
     * @brief Defines the enumerated values of the event triggered,
     * when the subcomponent ofor end position displayed in the current waterfall changes.
     * Condition for triggering the event: \n
     * This event is triggered when the index value of the \n
     * first or last subcomponent in the waterfall display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
     *Pcurrently displayed WaterFlow. \n
     * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
     * the end position of the currently displayed waterfall. \n
     */
    NODE_WATER_FLOW_ON_SCROLL_INDEX,

    /**
     * @brief Defines the event triggered when a child component enters or leaves the grid display area.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the grid is initialized and when the index of the first or \n
     * last child component in the grid display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the grid display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the grid display area. \n
     *
     * @since 22
     */
    NODE_GRID_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
     * @brief Defines the event triggered when the grid is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: scroll source. The parameter type is {@link ArkUI_ScrollSource}. \n
    Pone or no number to indicate the actual amount by which the scroll component scrolls.
     *
     * @since 22
     */
    NODE_GRID_ON_WILL_SCROLL = 1013001,

    /**
     * @brief Defines the event triggered when the grid scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
     *
     * @since 22
     */
    NODE_GRID_ON_DID_SCROLL = 1013002,

    /**
     * @brief Defines the event triggered at the end of each frame layout of the <b>ARKUI_NODE_GRID</b> component,
     * which is used to set the position and length of the scrollbar.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.i32 at index 0:offset of the first visible grid item,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: offset of the first visible item relative to the grid's display starting position, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * @return Information about the scrollbar position and length. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.f32 at index 0: total offset of the grid content relative to the display area, in px. \n
     * value.f32 at index 1: total length of the grid content, in px. \n
     *
     * @since 22
     */
    NODE_GRID_ON_SCROLL_BAR_UPDATE = 1013003,

    /**
     * @brief Defines the <b>Grid</b> component's child drag start event.
     *
     * This event is triggered under the following scenarios: \n
     * 1. <b>NODE_GRID_EDIT_MODE</b> is set to <b>1</b>. \n
     * 2. The user long-presses and drags a <b>Grid</b> child component with sufficient displacement. \n
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32 at index 0: x-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: y-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32 at index 2: index of the dragged child component in the <b>Grid</b> component,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     *
     * @return Whether the drag operation is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether dragging is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_START = 1013004,

    /**
     * @brief Defines the event triggered when a dragged child component enters this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> enters the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_ENTER = 1013005,

    /**
     * @brief Defines the event triggered when a dragged child component moves within this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> moves within the current
     * <b>Grid</b> component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArBkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child0rrent <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_MOVE = 1013006,

    /**
     * @brief Defines the event triggered when a dragged child component leaves this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> leaves the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DRAG_LEAVE = 1013007,

    /**
     * @brief Defines the event triggered when a dragged child component is released.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> is released. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child co3rrent <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: whether the dragged child component is successfully released. \n
     * <b>1</b>: The component is released within the <b>Grid</b> component's area.
     * <b>0</b>: The component is released outside the <b>Grid</b> component's area. \n
     *
     * @since 23
     */
    NODE_GRID_ON_ITEM_DROP = 1013008,

    /**
     * @brief Defines the edit mode state change event of the <b>Grid</b> component.
     *
     * This event is triggered when the edit mode state changes, which occurs in the following cases:
     * 1. The {@link NODE_GRID_ENABLE_EDIT_MODE} attribute is set to change the edit mode state.
     * 2. When {@link NODE_GRID_EDIT_MODE_OPTIONS} has two-finger sliding multi-selection enabled,
     * a two-finger sliding gesture triggers the change to multi-selection state.
     * Registering this event callback is a prerequisite for entering multi-selection state via
     * two-finger sliding. If this callback is not registered, two-finger sliding will not enter
     * multi-selection state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}.
     * {@link ArkUI_NodeComponentEvent} contains one parameter:
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edit mode state.
     * <b>0</b>: no.t in edit mode. <b>1</b>: in edit mode.
     *%"NODE_GRID_ON_EDIT_MODE_CHANGE = 1013009,

    /**
     * @brief Defines the selected state change event of the <b>GridItem</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected. \n
     *
     * @since 23
     */
    NODE_GRID_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,
    /**
     * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
     * @since 23
     */
    NODE_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
     /**
      * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
      * <b>ARKUI_NODE_PICKER</b> component.
      *
      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
      * {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
      *
      * @since 23
      */
    NODE_PICKER_EVENT_ON_SCROLL_STOP = 1018001,
} ArkUI_NodeEventType`.the common structure type of a component eventA0NodeEvent ArkUI_NodeEvent;
ы-type of a component event.
 *
 * @param eventQzthe componenttyp#_event.
 * @since 12
 */
ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* evcustom ID of a component event.
 *
 * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
 * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
 *
 * @pa	ram eventQzthe component.custom ID of the component event.
 * @since 12)NodeEvent_GetTargetId(ArkUI_NodeEvent* evDcomponent object that triggers a component event.
 *
 * @param eventQzthe componentcomponent object that triggers the component event.
 * @since 12
 */
ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* evUinput event (for example, touch event) data for a component event.
 *
 * @param eventQzthe componentkinput event data.
 * @since 12
 */
ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* ev7numerical data in a component event.
 *
 * @param eventQzthe componentnumerical data.
 * @since 12
 */
ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);

/0d3ring data in a component event.
 * 
 * @param eventQzthe componentPdataJringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* ev5ArkUI_TextChangeEvent data from a component event.
 *a$a component event. It cannot be nullA`TextChangeEventW15
 */
ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* evcustom data in a component event.
 *
 * This parameter is passed in {@link registerNodeEvent} and can be applied to the service9 logic when the event
 * is triggered.
 *
 * @param eventQzthe componentVcustom data.
 * @since 12
 */
void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* ev?numeric-type parameter of a component event.
 *
 * @param eventQzthe component event.
 * @param index Indicates the index of the return value.
 * @param value Indicates the return value.
 * @rH`errorYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limit1l/DE_EVENTa|<the data does not exist in the component event.
 * @since 12WNodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* valu0dring-type parameter of a component event. The string data is valid only during an event
 * callback. To use it outside an eventF callback, you are advised to copy the string data.
 *
 * @param eventQz^the component event.
 * @param index Indicates the index of the return value.
 * @param stringQzP%array.
 * @param stringSize IndicatesIerrorYNODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
 *         the limit1l/DE_EVENTa|<the data does not exist in the component event.
 * @since 12aNodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSiz6return value for a component event.
 *
 * @param eventQzothe component event.
 * @param value Indicates the numeric-type array.
 * @param size Indicates the array lengterrorKNODE_EVENT_NO_RETURN} if the component event does not support return values1l/DE_EVENTa|8data does not exist in the component event.
 * @since 12\NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t sizMa <b>ArkUI_TouchTestInfo</b> object from the specified <b>ArkUI_NodeEvent</b>{pointer} nodeEventQz&NodeEvent</b>j kzouchTestInfo</b> object1lM<b>null</b> if the parameter passed in is invalid or is not a touch test infolJTouchTestInfo* OH_ArkUI_NodeEvent_GetTouchTestInfo(ArkUI_NodeEvent* nodeEv获取组件事件中的TextEditor组件文本内容变化数据。
 *
 * @param event 指向{@link ArkUI_NodeEvent}组件事%对象的指针。
 * @return 指向c}数据对象的指针。
 *     <br>若传入的参数无效或并非TextEditor组件文本内容变化事件信息，则返<b>null</b>。cG* OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent(ArkUI_NodeEvent* ev8the dirty area flag passed in the <b>::markDirty</b> APIA0t@brief Remeasure.
     *
     * When this type of flag is specified, re-layout is triggered by default.
     */
    NODE_NEED_MEASURE = 1,

    /** Re-layout. */
    NODE_NEED_LAYOUT,
    /** Re-rendering. */
    NODE_NEED_RENDER,
} ArkUI_NodeDirtyFlag;
bthe custom component event typeA0t Measure type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
    /** Layout type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
    /**
     * Draw front type.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind tnype.
     * @since 20
     */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} ArkUI_NodeCustomEventType`1the general structure of a custom component eventA0%NodeCustomEvent ArkUI_NodeCustomEvent`Zthe component adapter, which is used for lazy loading of elements of scrollable componentsA0$NodeAdapter* ArkUI_NodeAdapterHandle`the component adapter eventA0)NodeAdapterEvent ArkUI_NodeAdapterEvent;
{tcomponent adapter eventsA0t This event occurs when the component is attached to the adapter. */
    NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
    /** This event occurs when the component is detached from the adapter. */
    NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
    /** This event occurs when the adapter obtains the unique ID of the new element to add. */
    NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
    /** This event occurs when the adapter obtains the content of the new element to add. */
    NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
    /** This event occurs when the adapter removes an element. */
    NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
} ArkUI_NodeAdapterEventType;

/**
* @brief Creates a component adapter.
*
* @since 12
*/
ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();

/**
* @brief Destroys a component adapter.
*
* @param handle Indicates the target component ad^apter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);

/**
!tal number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
* @param size Indicates the number of elements.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);

/**
* @brief Obt}	mtotal number of elements in the specified adapter.
*
* @param handle Indicates the target component adapter.
aytotal number of elements in the adapter.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);

/**
* @brief Registers an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
b* @param userData Indicates custom data.
* @param receiver Indicates the event receiver callback.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));

/**
* @brief Deregisters an event callback for the adapter.
*
* @param handle Indicates the target component adapter.
* @since 12
*/
void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload all elements.
*
* @param handle Indicates the target component adapter.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload certain elements.
*
* @param handle Indicates the target component adapter.
* @param startPosition Indicate`Yelements to reload.
* @param itemCount Indicates the number of the elements to reload.
* 2error code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_ReloadItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to remove certain elements.
*
* @param handle Indicates the target componen*t adapter.
* @param startPosition Indicate`Welements to remove.
* @param itemCount Indicates the number of the elements to remove.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_RemoveItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to insert certain elements.
*
* @param handle Indicates the target componen*t adapter.
* @param startPosition Indicate`Welements to insert.
* @param itemCount Indicates the number of the elements to insert.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_InsertItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);

/**
* @brief Instructs the specified adapter to move certain elements.
*
* @param handle Indicates the target component adapter.
* @param from Indicate`Selements to move.
* @param to  Indicates the end position of the elements to move.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);

/**
* @briefE Obtains all elements stored in the specified adapter.
*
* This API rarray of the elements. You need to manually release the memory data
* to which the pointer points.
*
* @param handle Indicates ,the target component adapter.
* @param itemsQzZthe array of the elements in the adapter.
* @param size Indicates the number of elements.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* siz	e);

/**
data passed in during registration of the specified event.
*
* @param event Indicates the target adapter event.
* @since 12
*/
Qvoid* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);

/**
qAevent type.
*
* @param event Indicates the target adapter event.
ayevent type.
* @since 12
*/
ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);

/**
* sjelement to be removed for the event to be destroyed.
*
* @param event Indicates the target adapter event.
ayelement to be removed.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);

/**
ndex of the element to be operated for the specified adapter event.
*
* @param event Indicates the target adapter event.
* @retgyindex of the element.
* @since 12
*/
uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);

/**
* @brvscrollable container node that uses the specified adapter.
*
* @param event Indicates the target adapter event.
* @return Returpyscrollable container node that uses the specified adapter.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);

/**
* @brief Sets the component to be added to the specified adapter.
*
* @param event IndicRates the target adapter event.
* @param node Indicates the component to be added.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);

/**
* @brief Sets the component ID to be generated.
*
* @param event Indicates the target adapter event.
* @param id Indicates the component ID to set.
ayerror code.
x*q*xIq* @since 12
*/
int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);

/**
 * @brief Declares a collection of native node APIs provided by ArkUI.
 *
 * The APIs related to the native node must be called in the main thread.
 *
 * @version 1!j{
    /**
     * @brief Struct version.
     *
     * @since 12
     */
    int32_t version;

    /**
    /component based on {@link ArkUI_NodeType} and r\created component.
     *
     * @param type Indicates the type of component to create.
    Pcreated component. If the component fails to be created, NULL is returned.
     * @since 12
     */
    ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);

    /**
     * @brief Destroys the component to which the specified pointer points.
     *
     * @param nodeQz.
     * @since 12
     */
    void (*disposeNode)(ArkUI_NodeHandle node);

    /**
     * @brief Adds a component to a parent !node.
     *
     * @param parentQz$the parent node.
     * @param childQzthe child node.
    Perror code.
    oV   o+@q   o+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on
     *             BuilderNode generated nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    o-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Removes a component from its parent node.
     *
     * @param parentQz$the parent node.
     * @param childQzthe child node.
    Perror code.
    oV   o+@q   o+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     * on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Inserts a component to a parent node after the speci5fied <b>sibling</b> node.
     *
     * @param parentQz$the parent node.
     * @param childQz%the child node.
     * @param siblingQzthe sibling node after which the target node is to be inserted.
     * If the value is null, the node is inserted at the start of the parent node.
    Perror code.
    oV   o+@q   o+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    o-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component tUo a parent node before the specified <b>sibling</b> node.
     *
     * @param parentQz$the parent node.
     * @param childQz%the child node.
     * @param siblingQzthe sibling node before which the target node is to be inserted.
     * If the value is null, the node is inserted at the end of the parent node.
    Perror code.
    oV   o+@q   o+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    o-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component Gto the specified position in a parent node.
     *
     * @param parentQz$the parent node.
     * @param childQz&the child node.
     * @param positionw to which the target child node is to be inserted. If the value is a
     * negative number or invalid, the node is inserted at! the end of the parent node.
    Perror code.
    oV   o+@q   o+ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed on BuilderNode generated
     *             nodes: settinNg or resetting attributes, setting events, or adding or editing subnodes.
    o-DE_IS_ADOPTED} if the child node has already been adopted. Add since api 22.
     * @since 12
     */
    int32_t (*insertChildUAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);

    /**
    qattribute of a node.
     *
     * @param node Indicates the node whose attribute needs to be set.
     * @param attribute Indi[cates the type of attribute to set.
     * @param value Indicates the attribute value.
    Perror code.
    oV   o+@q   o+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * o(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);

    /**
     * @brief Obtains an attribute.
     *
     * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
     * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
     * time. Otherwise, the pointer may be overwritten by other values.
     * @param node Indicates the node whose afttribute needs to be obtained.
     * @param attribute Indicates the type of attribute to obtain.
    Pattribute value. If the operation fails, a null pointer is returned.
     * @since 12
     */
    const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
     * @brief Resets an attribute.
     *
     * @param node Indicates the node whose attribute needs to be reset.
     * @param attribute Indicates the type of attribute to reset.
    Perror code.
    oV   o+@q   o+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * o(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);

    /**
     * @brief Registers an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
     * @returPerror code.
    oV   o+@q   o+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * o(ARKTS_NODE_NOT_SUPPORTED} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
        int32_t targetId, void* userData);

    /**
     * @brief Unregisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);

    /**
     * @brief Registers an event receiver.
     *
     * The ArkUI framework collects component events generated during the process and calls back the events through
     * the registered event receiver. \n
     * A new call to this API will overwrite the previously registered event receiver. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
     * callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Unregisters the event receiver.
     *
     * @since 12
     */
    void (*unregisterNodeEventReceiver)();

    /**
     * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
     *
     * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
     * measuring, layout, or rendering again. In this case, you do not need to call this API.
     * @param node Indicates the node for which you want to mark as dirty area.
     * @param dirtyFlag Indicates type of dirty area.
     * @since 12
     */
    void (*markDirty)(ArkUI_NodeHandle node, A,rkUI_NodeDirtyFlag dirtyFlag);

    /**
    anumber of subnodes.
     *
     * @param node Indicates the target node.
     * @return the number of subnodes. If not, returns 0.
     * @since 12
     */
    uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);

    /**
     * @brief Obtains a subnodNe.
     *
     * @param node Indicates the target node.
     * @param positionw of the subnode.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getChildAt)(ArkUI2_NodeHandle node, int32_t position);

    /**
    aLC subnode.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getFirstChild)(Ar#kUI_NodeHandle node);

    /**
    aGlast subnode.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getLastChild)(Ark"UI_NodeHandle node);

    /**
    aPprevious sibling node.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getPreviousSiblin(g)(ArkUI_NodeHandle node);

    /**
    aLnext sibling node.
     *
     * @param node Indicates the target node.
    Psubnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);

    /**
     * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
     * point function registered by <b>registerNodeCustomEventReceiver</b>.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
     * when the event is triggered.
     * @param userData Indicates the custom event parameter, which is passed in the callback of
     * {@link ArkUI_NodeCustomEvent} w hen the event is triggered.
    Perror code.
    oV   o+@q   o+ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
     *         of the native API was not found.
     * @since 12
     */
    int32_t (*registerNodeCustomEvent)(
        ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);

    /**
     * @brief Unregisters a custom event for a node.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);

    /**
     * @brief Registers a unified entry point function for custom node event callbacks.
     *
     * The ArkUI framework collects custom component events generated during the process and calls back the events
     * through the registered <b>registerNodeCustomEventReceiver</b>. \n
     * A new call to this API will overwrite the previously registered event receiver.
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Unregisters the unified entry point function for custom node event callbacks._
     *
     * @since 12
     */
    void (*unregisterNodeCustomEventReceiver)();

    /**
    qwidth and height for a component after the measurement.
     *
     * @param node Indicates the target node.
     * @param widtFh Indicates the width.
     * @param height Indicates the height.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);

    /**
     * @uposition for a component.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordina<te.
     * @param positionY Indicates the Y coordinate.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
    alwidth and height of a component after measurement.
     *
     * @param node Indicates the target node.
    Pwidth and height of the component.
     * @since 12
     */
    ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);

    /**
    aoposition of a component after the layout is complete.
     *
     * @param node Indicates the target node.
    Pposition of the component.
     * @since 12
     */
    ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);

    /**
     * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
     *
     e* @param node Indicates the target node.
     * @param Constraint Indicates the size constraint.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);

    /**
     * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
     * @returnPerror code.
    oV   o+@q    * @since 12
     */
    int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
     * @brief Adds a component event callback function to a component to receive component events generated
     * by the component.
     *
     * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
     * receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the event callback function.
     * @param eventReceiver Indicates the component event callback function to add.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
    ]registered component event callback function from a component.
     *
     * @param node Indicates the component from which you want to remove the event callback function.
     * @param eventReceiver Indicates the component event callback function to rem	ove.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Adds a custom event callback function to a component to receive custom events
     * (such as layout and drawing events) generated by the component.
     *
     * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
     * multiple event receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeCustomEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the custom event callback function.
   R  * @param eventReceiver Indicates the custom event callback function to add.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Removes a registered custom event callback function from a component.
     *
     * @param node Indicates the component from which you want to remove the custom event callback function.
     * @param eventReceiver I;ndicates the custom event callback function to remove.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
        void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Saves custom data on the specified component.
     *
     * @param node Indicates the component on which the custom data will be saved.
     * @param userData Indicates the custom data to be saved.
     *Perror code.
    oV   o+@qh    * @since 12
     */
    int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);

    /**
    alcustom data saved on the specified component.
     *
     * @param node Indicates the target component.
    Pdcustom data.
     * @since 12
     */
    void* (*getUserData)(ArkUI_NodeHandle node);

    /**
    qunit for a component.
     *
     * @param node Indicates the component for which you want to set the unit.
     * @param unit Indicates the unit, whichv`+\LengthMetricUnit}.
     * The default value is <b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
    Perror code.
    oV   o+@q    * @since 12
     */
    int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);

    /**
      S* @brief Get the parent node.
      *
      * @param node target node object.
     Pof the component, if not return NULL
      * @since 12
      */
    ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);

    /**
    * @brief Uninstall all child nodes from the parent component.
    *
    * @param parent target node object.
    * @retuPerror code.
   oV  o+@qo   * @since 12
    */
    int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
} ArkUI_NativeNodeAPI_1;

/**
qRsize constraint for measurement through a custom component event.
*
* @param eventQzthe custom component event.
aysize constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);

/**
qexpected position of a component relative to its parent component in the layout phase through a
* custom component event.
*
* @param eventQzthe custom component event.
ayexpected position relative to the parent component.
* @since 12
*/
ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout%(ArkUI_NodeCustomEvent* event);

/**
qBdrawing context through a custom component event.
*
* @param eventQzthe custom component event.
aydrawing context.
* @since 12
*/
ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);

/**
q0ID of a custom component event.
*
* @param eventQzthe custom component event.
ayID of the custom component event.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* eventc);

/**
* @brief Obtains custom event parameters through a custom component event.
*
* @param eventQzthe custom component event.
aycustom event parameters.
* @since 12
*/
void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);

/**
* @briefN Obtains a component object through a custom component event.
*
* @param eventQzthe custom component event.
aycomponent object.
* @since 12
*/
ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);

/**
* s=event type through a custom component event.
*
* @param eventQzthe custom component event.
aytype of the custom component event.
* @since 12
*/
ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);

/**
q[measurement information of a custom span through a custom component event.
*
* @param eventQz`the custom component event.
* @param info Indicates the measurement information to be obtained.
ay#x*q*xIq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
    ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);

/**
* @brdief Sets the measurement metrics of a custom span through a custom component event.
*
* @param eventQz&the custom component event.
* @param m!umeasurement metrics to set.
ay#x*q*xIq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_AKrkUI_NodeCustomEvent_SetCustomSpanMetrics(
    ArkUI_NodeCustomEvent* event metrics);

/**
qBf a custom span through a custom component event.
*
* @param eventQz7the custom component event.
* @param info Indicates theto obtain.
ay#x*q*xIq*         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
* @since 12
*/
int32_t OH_ALrkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
    ArkUI_NodeCustomEvent* eventa info_ the node content event type.
 * t Defines the attach event. */
    NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
    /** Defines the detach event. */
    NODE_CONDTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
} ArkUI_NodeContentEventType;
{t#inspector error codes.
 * @since 15t#@error Success.
     */
    ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
    /**
     * @error Invalid parameter.
     */
    LARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
} ArkUI_InspectorErrorCode`.the general structure of a node content event.''NodeContentEvent ArkUI_NodeContentEvent`{of a node content event.<void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* evDregister a callback function to a node content.
 *
 * @param contentQz6the node content instance.
 * @param callback IndicatezA`error2`NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callbacka10type of a node content event.
 *
 * @param eventQzthe node contenttype of the node content event.
 * @since 12
 */
ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* evJnode content object that triggers a node content event.
 *
 * @param eventQzthe node contentnode content object that triggers the node content event.
 * @since 12
 */
ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_Ge-tNodeContentHandle(ArkUI_NodeContentEvent* evaves custom data on the specified node content.
 *
 * @param content Indicates the node content on which the custom data will b?e saved.
 * @param userData Indicates the custom data to be sav` error2GNodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userDataa1_custom data saved on the specified node content.
 *
 * @param content Indicates the target node!acustom data.
 * @since 12
 */
void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle cont2Add a node to a node content.
 *
 * @param contentQz)the node content instance.
 * @param nodeQzthe nodeEerrorq\$UNODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12INodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle nod7remove a node from a node content.
 *
 * @param contentQz)the node content instance.
 * @param nodeQzthe nodeEerror2LNodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle nodKinsert a node into a node content at a given position.
 *
 * @param contentQz)the node content instance.
 * @param nodeQzthe node
 * @param positionw for inserting the nodeEerrorq\$UNODE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 12_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t positionthe siz#layout area.
 * The layout area size does not include graphic variation attributes such as scaling.
 *
 * @param node ArkUI_Nod4eHandle pointer.
 * @param size The drawing area siz#handle error2ANodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* siz the position of the component layout area relative to the parent component.
 * The relative position of the layout area does n7ot include graphic variation attributes, such as translqtDnode ArkUI_NodeHandle pointer.
 * @param localOffset The offset valu#handle relative to the parent*error2ONodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffseta1 the position of the component layout area relative to the window.
 * The relative position of the layout area does not include- graphic variation attributes, such as translqtEnode ArkUI_NodeHandle pointer.
 * @param globalOffset The offset valu#handle relative to the window error2XNodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffseta1 the position of the component layout area relative to the screen.
 * The relative position of the layout area does not include- graphic variation attributes, such as translqtEnode ArkUI_NodeHandle pointer.
 * @param screenOffset The offset valu#handle relative to the screen error2XNodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffseta1offset of a component relative to the global display.
 * The relative position does not count in transformation attributes, suc h as translate.
 *
 * @param nodNodeHandle</b> representing the component.
 * @param offset Offset of the component relative to the global display, in px.
 * @	Ҋ#u*@qM0YNodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offseta1 the position&window, including the properties of graphic translation changes.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param translat"eOffset The cumulative offset valu#7handle itself,
 * parent components, and ancestor nodes error2bNodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffseta1 the position of the component on the screen, including the attributes of graphic translation changes.
 *
 * @param node ArkUI_HNodeHandle pointer.
 * @param translateOffset The cumulative offset valu#7handle itself,
 * parent components, and ancestor nodes error2NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);

/**
 * @brief Add the custom property of the component. This interface only works on the main thread.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property. Passing null pointers is not allowed.
 * @param value The value of the custom propert5y. Passing null pointers is not allowed.
 * @since 13
UNodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* valuRemove the custom property of the component.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property.
 * @since 13
ENodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* nam}value of the custom property of the component.
 *
 * @param node ArkUI-NodeHandle pointer.
 * @param name The name of the custom attribute.
 * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
 * @return Error code.
 *    'success.
 *    @i$ZNodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty*q`Get the parent node to obtain the component nodes created by ArkTs.
 *
 * @param node Target nod the pointer of the componentNFNodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle nodRetrieve all active child nodes of a node. Span will not be counted in the children.
 *
 * @param head Pass in the node that needs to be obtained.
 * @param handle The structure corresponding to the sub node information of the head node.
 * @return Error code.
 *    'success.
 *    @i$PNodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo*qHRetrieve the root node of the current page.
 *
 * @param node Target nod the pointer of the componentNINodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle nodPRetrieve whether the component is labeled by C-API.
 *
 * @param node Target nod whether the node is a Tag created by C-API,
 *         true represents created by C-API, false represents not created by C-APIN.
 * @since 14
 */
bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle nod}*type of node.
 *
 * @param node Target nod the type of the node.
 *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
 * @*NodeUtils_GetNodeType(ArkUI_NodeHandle nod}Kinfo of the window to which the node belongs.
 *
 * @param node Target nodeCninfo Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
 * @return Error code.
 *    'success.
 *    @i.
 *    :DE_NOT_ON_MAIN_TREE} The node is not mounted.
 * @since 15JNodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info"4FrameNode's first child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index The index of th(e subnode.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15PNodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* indexa1"4FrameNode's last child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index the index of the' subnode.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15ONodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* indexa1ka subnode by position with the expand mode.
 *
 * @param node Indicates the target node.
 * @param positionw of the subnode.
 * @param subnode The pointer to the subnode.
 * @param expandMode Indicates the expand mode. {@link ArkUI_Exp'andMode}.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
    ArkUI_NodeHandle* subnode, uint32_t expandMode);
Collapse the ListItem in its expanded state.
 *
 * @param node Node objects that need to be registered for events.
 * @param userData Custom event parameters are carried back in the callback parameter when the event is triggered.
 * @param onFinish The c^allback triggered after the completion of the folding animation.
 * @return Error code.
 *    'Success.
 *    @i.
 *    YATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
 * @since 12List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));

/**
* @brief Obtain the UIContext pointer to the page where the node is located.
*
* @param node The node.
* @return The UIContext pointer.
*         If a null pointer is returned, it may be because the node is empty.
* @since 12
*/
ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);

/**
* @brief The event called when the system color mode changes.
*        Only one system color change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the `custom data to be saved.
* @param onColorModeChange Callback Events.
* @return Error code.
*    'Success.
*    @i.
* @since 12
*/
int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));

/**
* @brief Unregister the event callback when the system color mode changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);

/**
* @brief The event called when the system font style changes.
*        Only one system font change callback can be registered for the same component.
*
* @param node Indicates the target node.
* @param userData Indicates the cus]tom data to be saved.
* @param onFontStyleChange Callback Events.
* @return Error code.
*    'Success.
*    @i.
* @since 12
*/
in`t32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
    void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));

/**
* @brief Unregister the event callback when the system font style changes.
*
* @param node Indicates the target node.
* @since 12
*/
void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle nodRetrieve the font size value for system font change events.
 *
 * @param event Indicates a pointer to the current system font change event.
 * @return Updated system font size scaling factor. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFont@StyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* evRetrieve the font thickness values for system font change events.
 *
 * @param event Indicates a pointer to the current system 5font change event.
 * @return The updated system font. Default value: 1.0.
 * @since 12
 */
float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* evGet the node handle by id.
 *
 * @param id The id of the target node handle.
 * @param node The handle of target node handle.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15INodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* nodMove the node handle to target parent node as child.
 *
 * @param node The node handle of the node to move.
 * @param target_parent The node handle of target parent.
 * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
 *              node is moved to the end of the target parent node.
 * @return Error code.
 *        #success.
 *    @i.
 *    /CAPI_INIT_ERROR} if the CAPI init error.
 *    SDE_IS_ADOPTED} if the node has already been adopted. add since api 22.
 * @since 18NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);

/**
 * @brief Triggers node updates in the current frame.
 * When node attributes are modified after the current frame's build phase,
 * the node updates will be deferred to the next
 * frame. This function forces immediate node updates within the current frame to
 * ensure rendering effectse are applied synchronously.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 216NativeModule_InvalidateAttributes(ArkUI_NodeHandle nod the cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-langLuage option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15YNodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* optionthe cross-language option of the target node handle.
 *
 * @param node The target node handle.
 * @param option The cross-languKage option {@link ArkUI_CrossLanguageOption}.
 * @return Error code.
 *    'success.
 *    @i.
 * @since 15YNodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* optiona callback for node when layout is completed.
 *
 * @param node Indicates the target node.
 * @param userData Indicates the custom data used in onLayoutCompleted callback function.
 * @param onLayoutCompleted Indicates the function when layout completed )is callback.
 * @return error code
 *    (u*@is incorrect.
 * @since 15RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onLayoutCompleted)(void* userData));


/**a callback for node when draw is completed.
 *
 * @param node Indicates the target node.
 * @param userData Indicates the custom data used in onDrawCompleted callback function.
 * @param onDrawCompleted Indicates the function when draw completed is callb!ack.
 * @return error code
 *    (u*@is incorrect.
 * @since 15RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
    void* userData, void (*onDrawCompleted)(void* userData));
    
/**
 * @brief Unregisters the layout completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *    (u*@is incorrect.
 * @since 157registerLayoutCallbackOnNodeHandle(ArkUI_NodeHandle nodUnregisters the draw completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *        $u*@is incorrect.
 * @since 155registerDrawCallbackOnNodeHandle(ArkUI_NodeHandle nod}snapshot pixelmap for the given node synchronously, will get error if the node is not on the
 * tree or is not rendered yet.
 * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
 *
 * @param node Indicates the target node.
 * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
 * @pYc6Pixelmap pointer created by system, it's the out resul֓q\&GTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned1l-OCOMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
 * @since 15
 */ыa snapshot of a given component. If the node is not in the component tree or has not been rendered,
 * the snapshot operation will fail. When the <b>Pixelmap0vt should be released
 * by calling {@link OH_PixelmapNative_Release}.
 *
 * @param node Target node.
 * @param snapshotOptions Snapshot settings. If the value is null, the default settings are used.
 *         Snapshot settings include scaling, color space, and dynamic range configuration.
 *         Scaling: floating-point value greater than 0.
 *         Color space: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b> (DISPLAY_BT2020_SRGB).
 *         Dynamic range: {@link ArkUI_DynamicRangeMode}.
 * @p<b>Pixelmap0 by the system.
 * @return Rъ#u*@q\&=TERNAL_ERROR} if the snapshot fails, returning a null pointer1l-?COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot operation times out1l-COMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED} if the provided color space or
 *         dynamic range mode is not supported.
 *       <l"COMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED} if the isAuto parameter of the color
 *         space or dynamic range mode is set to tr,ue for offscreen node snapshot.
 * @since 23RGetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
   d 
/**
 * @brief Query the size limitation of the component snapshot.
 *
 * @param maxWidth Maximum width limit of the component Rsnapshot, in px.
 * @param maxHeight Maximum height limit of the component snapshoError code.
 *    'Success.
 *    @Invalid function parameterCGetNodeSnapshotSizeLimitation(int32_t* maxWidth, int32_t* maxHeighta1offset of a specific node relative to its parent node.
 *
 * @param node Target node.
 * @param globalOffset Offset of the targ#et node relative to its parent node4M15NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);

/**
 * @brief Adds the UI state style supported by the component. To handle states change efficiently, need to specify the
 * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
 *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
 * times on the same node, the last set of states and handler will take precedence.
 *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
 * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
 * components, the default style effect will be applied first, followed by the custom style changes, resulting in
 * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
 * by the system implementation.
 *  - And when this API is called, the provided handler function will be executed immediately.
 *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
 * the system will automatically notify your application when the state changes back to NORMAL.
 *
 * @param node Target node.
 * @param uiStates Target UI states to be handled on the node.
 *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
 *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
 * @param statesChangeHandler Handler for UI state changes.
 *        It rturns the current UI status. The value is the result of combining all current state enum values using the
 *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
 *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
 *        However, for checking the normal state, use the equality operator directly.
 *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)</b>.
 * @param excludeInner Whether to doisable the default state styles.
 * @param userData Custom data used in the <b>statesChangeHandler</b> callbackA`-MAddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
    void (statesChangeHandler)(int32_t currentStates, void* userD'ata), bool excludeInner, void* userDataregistered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
 * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
 * 
 * @param node Target node.
 * @param uiStates Target UI states to be remov` /M>RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStateyHRun a custom function inside the UIContext scope.
 *
 * @param uiContextQz  UI instance.
 * @param userDataQz7the custom data.
 * @param callback The custom functionA`-y'CAPI_INIT_ERROR} if the CAPI init error1l-/UI_CONTEXT_INVALID} if the uiContext is invalid1l-CALLBACK_INVALID} if{"A0]RunTaskInScope(ArkUI_ContextHandle uiContext, void* userData, void(*callback)(void* userData)the node handle by uniqueId.
 *
 * @param uniqueId The uniqueId of the target node handle.
 * @param node The handle of target *node handle.
 * @return Error code.
 *    'success.
 *    @i.
 *    5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20PNodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* nod}uniqueId of the target node handle.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param uniqueId The uniqueId of the targBet node handle, default value is -1.
 * @return Error code.
 *    (u*@i.
 *    5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 20BNodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueIdturns true if the node is in the render state. A node is considered to be in the render state if its
 * corresponding RenderNode is on the render tree.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isInRenderState If the node is in the render sta!te.
 * @return Error code.
 *    (u*@i.
 *    5CAPI_INIT_ERROR} if the CAPI init error.
 * @since 23HNativeModule_IsInRenderState(ArkUI_NodeHandle node, bool* isInRenderStatThe current node adopts the target child node. The node being adopted must not have an existing parent node.
 * This operation does not actually append it as a child, but only allows it to receive life-cycle
 * callbacks as if it were a child.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node that will adopt the child node.
 * @param child ArkUI_NodeHandle pointer, the9 target node being adopted.
 * @return Error code.
 *    (u*/CAPI_INIT_ERROR} if the CAPI init error.
 *    :DE_HAS_PARENT} The child already has a parent node.
 *    ;DE_CAN_NOT_BE_ADOPTED} The child can not be adopted.
 *    4DE_CAN_NOT_ADOPT_TO} The node can not adopt childrenlENativeModule_AdoptChild(ArkUI_NodeHandle node, ArkUI_NodeHandle childmove the target adopted child node.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node.
 * @param child ArkUI_NodeHandAle pointer, the node being removed.
 * @return Error code.
 *    (u*/CAPI_INIT_ERROR} if the CAPI init error.
 *    PDE_IS_NOT_IN_ADOPTED_CHILDREN} This child node is not adopted by the parent nodelMNativeModule_RemoveAdoptedChild(ArkUI_NodeHandle node, ArkUI_NodeHandle child,nverse color algorithm for components and instances.
 *
 * @param uiContext Indicates the context in which the inverse color feature should take effect.
 *     If the value is null, the feature applies to the entire application process.
 * @param forceDark Indicates whether the inverse color feature is enabled.
 * @param nodeType Indicates the component type for which to enable the inverse color feature.
 *     If the value is ARKUI_NODE_UNDEFINED, enabling the feature for all components.
 * @param colo>rInvertFunc Indicates the user-defined inverse color algorithmA`error#CAPI_INIT_ERROR} if CAPI init error1l-.FORCE_DARK_CONFIG_INVALID} if force dark confi A0SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
    uint32_t (*colorInvertFunc)(uint32_t color) common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param eventType Indicates the type of event to seRzIthe custom data.
 * @param callback Indicates the event callback functionA`-i6l*VDE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21NativeModule_RegisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
    void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregister common event callback of target node.
 *
 * @param node The ArkUI-NodeHandle p=ointer.
 * @param eventType Indicates the type of event to sei6l*VDE_UNSUPPORTED_EVENT_TYPE} Function parameter eventType is not supported.
 * @since 21VNativeModule_UnregisterCommonEvent(ArkUI_NodeHandle node, ArkUI_NodeEventType eventTyp common visible area approximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param ratios Threshold array representing the visible area of the component.
 * @param size The size of the ratios.
 * @param expecVtedUpdateInterval The expected calculation interval for developers.
 * @param userDataQzIthe custom data.
 * @param callback Indicates the event callback functionA`-i'1NativeModule_RegisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node, float* ratios,
    int32_t size, float expectedUpdateInterval, void* userData, void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unregister common visible area ap^proximate change event callback of target node.
 *
 * @param node The ArkUI-NodeHandle pointerA`-i'1SNativeModule_UnregisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle nod?H
 point's coordinates from the target node's coordinate system 
 * to the current window's coordinate system, with consideration of the node’s transmt{ArkUI_NodeHandle} currentNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} localPosition The point's coordinates in the target node's local coordinate system, in px.
 * @param {ArkUI_IntOffset*} windowPosition The converted coordinates )in the current window's coordinate systemError code.
 *    'Success.
 *    @i.
 *    FDE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23NativeModule_ConvertPositionToWindow(ArkUI_NodeHandle currentNode, ArkUI_IntOffset localPosition, ArkUI_IntOffset* windowPositiona point's coordinates from the current window's coordinate system 
 * to the target node's coordinate system, with consideration of the node’s transmt{ArkUI_NodeHandle } targetNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} windowPosition The point's coordinates in the current window's coordinate system, in px.
 * @param {ArkUI_IntOffset*} localPosition The converted coordinates in )the target node's local coordinate systemError code.
 *    'Success.
 *    @i.
 *    FDE_NOT_ON_MAIN_TREE} The target node is not on main tree.
 * @since 23NativeModule_ConvertPositionFromWindow(ArkUI_NodeHandle targetNode, ArkUI_IntOffset windowPosition, ArkUI_IntOffset* localPosition);

/** 
 * @brief Stop the animation being executed by the Swiper node.
 * 
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    'Success.
 *    @il+Swiper_FinishAnimation(ArkUI_NodeHandle nodPost UI task to background threads.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param asyncUITaskData Parameter of asyncUITask and onFinish.
 * @param asyncUITask Function executed by a background thread.
 * @param oDnFinish Function executed by UI thread after async UI task is execut` /!context or asyncUITask is nullptrlPostAsyncUITask(ArkUI_ContextHandle context, void* asyncUITaskData,
    void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskData));

/**
 * @brief Post UI task to UI thread.
 *
 * @param context UIContext pointer of the page whejre the UI task located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI threaa .context or task is nullptrlPostUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief set the visiblity of the menubar.
 *
 * @param uiContext ArkUI_ContextHandle. - The designated ArkUI container context.
 * @param visible visibility. trSue indicate the menubar is visible,
          false indicate the menubar is invisiba/yUI_CONTEXT_INVALID} if the uiContext is invalid.
           for example, 1.uiContext is nullptr 2.can not get container by uiCoPntext.
           3. the uiContext is not belong to atomic service.
 * @since 23UNativeModule_AtomicServiceMenuBarSetVisible(ArkUI_ContextHandle uiContext, bool visib
a callback for listening for component dimension and area changes.
 *
 * This function can be called for a valid {@link ArkUI_NodeHandle} node at any time. \n
 * The newly registered callback will replace the previously registered callback for this event[ and will take effect from the next frame. \n
 * 
 * When the callback is no longer needed,WNativeModule_UnregisterCommonAreaApproximateChangeEvent} to unregister it. \n
 * Otherwise, the callback will be automatically unregistered when the node is released.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @param expectedUpdateInterval Expected calculation interval, in milliseconds.
 * @param userData Pointer to custom data.
 * @param callback Event callback.
 * @return Result code. \n{U \n1Kq \nNativeModule_RegisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node,
    float expectedUpdateInterval, void* userData, =void (*callback)(ArkUI_NodeEvent* event));

/**
 * @brief Unrbound to the dimensions and area changes of a component.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @return Result code. \n{U \n1Kq \nLNativeModule_UnregisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle nodPost UI task to UI thread and wait until UI task finished.
 *
 * @param context UIContext pointer of the page where the UI task\ located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI threaa .context or task is nullptrlPostUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));

/**
 * @brief Start a fake drag of the Swiper node.
 * Call OH_ArkUI_Swiper_FakeDragBy to simulate the drag motion. Call OH_ArkUI_Swiper_StopFakeDrag to complete the
 * fake drag. A fake drag can be interrupted by a real drag. If you need to ignore touch events and other user input
 * during a fake drag, use NODE_SWIPER_DISABLE_SWIPE.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag started successfully, return true.
 *     If the Swiper is not ready to start the fake drag, or a real or fake drag is @already in progress, return false.
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 23Swiper_StartFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Fake drag by an offset of the Swiper node.
 * The OH_ArkUI_Swiper_StartFakeDrag must be called first.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param offset The offset that needs to be scrolled. The unit is vp.
 * @param isConsumedOffset If not in a fake drag progress, or no offset is consumed,[ return false.
 *     If any offset is consumed, return true.
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 23Swiper_FakeDragBy(ArkUI_NodeHandle node, float offset, bool* isConsumedOffset);

/**
 * @brief Stop a fake drag of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag stopped successfully, return true.
 *     If the Swiper is not ready to stop the fake drag, or no fake drag is in progress, return false.
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 23=Swiper_StopFakeDrag(ArkUI_NodeHandle node, bool* isSuccessfulthe fake drag state of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isFakeDragging If a fake drag is Min progress return true, otherwise return false
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 23Swiper_IsFakeDragging(ArkUI_NodeHandle node, bool* isFakeDragging);

/**
 * @brief Show the previous page of the Swiper node.
 H*
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *    'Success.
 *    @i.
 * @since 23(Swiper_ShowPrevious(ArkUI_NodeHandle nodhow the next page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @return Error code.
 *         {@link ARKUSuccess.
 *    @i.
 * @since 23$Swiper_ShowNext(ArkUI_NodeHandle nod}root node handle of the corresponding page of the Context.
 *
 * @param context A UIContext pointer.
 * @param rootNode The handle of target root node handle. If the context's corresponding
 *     page has no root node, the pointed-to value will be set to null.
 * @return Error'CAPI_INIT_ERROR} if the CAPI init errorLq\$$UI_CONTEXT_INVALID} if the uiContext!AgNativeModule_GetPageRootNodeHandleByContext(
    ArkUI_ContextHandle context, ArkUI_NodeHandle* rootNodW<b>ArkUI_GestureCollectInterceptInfo</b> object from a specified <b>ArkUI_NodeEvent</b>nodeEvaE	NodeEvent</b>j GestureCollectInterceptInfo</b> object.
 *         It is valid only during callback and does not need to be released.
 *       <l
<b>null</b> if the input parameter is invalid or the
 *         information is not gesture collection interception information.fGestureCollectInterceptInfo* OH_ArkUI_NodeEvent_GetGestureCollectInterceptInfo(ArkUI_NodeEvent* nodeEvthe subnode mounting policy of the target node.
 *
 * @param node the target node handle.
 * @param policy the policy to set. Vbalid values correspond to {@link OH_ArkUI_NodeMountPolicy}.
 * @return Error code.
 *     <ul><li>;"Success.
 *     </li><li>'i.
 *     </li><li>.CAPI_INIT_ERROR} if CAPI init error.</li></ul>/WNativeModule_SetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy policythe current child mount policy of the specified node.
 *
 * @param node the target node handle.
 * @param policy the pointer toY receive child mounting policy of the target node.
 * @return Error code.
 *     <ul><li>;"Success.
 *     </li><li>'i.
 *     </li><li>.CAPI_INIT_ERROR} if CAPI init error.</li></ul>/XNativeModule_GetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy* policy>9NODE_H
/** @} */
<7x   'і	ArkUI UI capabilities on the NQ,event monitoring, and so onYstyled_string.h
 *
 * @brief 在Native侧定义{@link 组件类型}为ARKUI_NODE_TEXT的组件的文本样式和文本布局管	理器。STYLED_STRING=STYLED_STRING_H

#include "native_drawing/drawing_text_declaration.h"
#include "native_drawing/drawing_text_typography.h"
#inclYude "native_drawing/drawing_types.h"
#include "native_gesture.h"
#include "native_node.h"\)<s formatted string data objects supported by the text compon(&ArkUI_StyledString;

/**
 * @brief Creobject.
 *
 * @param style A1t]TypographyStyle, obtained by {@link OH_Drawing_CreateTypographyStyle}.
 * @param collection A1tSFontCollection, obtained by {@link OH_Drawing_CreateFontCollection}.
 * @return Creobject. If the object returns a null pointer,
 *         the creation failed, either because the address space was full,
 *    W     or because the style, collection parameter was an exception such as a null pointer;	?zStyledString* OH_ArkUI_StyledString_Create(
    OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection);

/**J7	Free the memory occupied by the,object.
 *
 * @param handle A pointer to theobjec^	@~1 OH_ArkUI_StyledString_Destroy(ArkUI_StyledStringP	0	jnew layout style to the top of the current format string style stack.
 *
 * @param handle A pointer to theCobject.
 * @param style A pointer to the OH_Drawing_TextStyle objec^	@~\ OH_ArkUI_StyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* styleA		icorresponding text content based on the current format string style.
 *
 * @param handle A pointer to the4object.
 * @param content A pointer to the text contQ+	@~F OH_ArkUI_StyledString_AddText(ArkUI_StyledString* handle, const char*-0	/		btop style from the stack in the current format string object.
 *
 * @param handle A pointer to theobjec^	@~6 OH_ArkUI_StyledString_PopTextStyle(ArkUI_StyledStringP	Creates a pointer to an OH_Drawing_Typography object based on a format string object
 * for advanced text estimation and typogr*aphy.
 *
 * @param handle A pointer to theA pointer to the OH_Drawing_Typography object. If the object returns a null pointer,
 *         the creation fails because the 4handle parameter is abnormal, such as a null pointer;	POH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledStringP	_	1placeholder.
 *
 * @param handle A pointer to theOobject.
 * @param placeholder A pointer to the OH_Drawing_PlaceholderSpan objec^	@~ OH_ArkUI_StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder);

/**
 * @brief Crea'tes an <b>ArkUI_StyledString_DescriptorA	+*StyledString_Descriptor</b> object createdN	StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void);

/**
 * @brief Destroys an <b>ArkUI_StyledString_DescriYptor</b> object and reclaims the memory occupied by the object.
 *
 * @param descriptor P~StyledString_Descriptor</b> object.
 * @since 14
 */
void OH_ArkUI_StyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor۹	>styled string information into HTML.
 *
 * @param descriptor P~StyledString_Descriptor/resulting HTML string. This pointer is managed internally and should be destroyed
 *         by calling <b>OH_ArkUI_StyledString_Descriptor_Destroy()</b> when no longer needed to free the memory.
 * @since 14
 */
const char* OH_ArkUI_ConvertToHtml(ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Deserializes a byte array containing styled string information into a styled string.
 *
 * @param buffer Byte array to be deserialized.
 * @param bufferSize Length of the byte array.
 * @param descriptor P~StyledString_Descriptor$@	.	%]M	UnmarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @M	erializes the styled string information into a byte array.
 *
 * @param buffer Byte array where the serialized data will be stoJred.
 * @param bufferSize Length of the byte array.
 * @param descriptor P~RStyledString_Descriptor</b> object.
 * @param resultSize Actual length of the byte@	.	/	*)VALID_STYLED_STRING} if the styled stringq	\M	MarshallStyledStringDescriptor(
    uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resuIltSize);

/**
 * @brief 定义属性字符串样式对象。 <br>        SpanStyle_Create}接口创建对应的属性字符串样式对象。 <br>        可以通过
 * {@link OH_ArkUI_SpanStyle_DestJroy}接口销毁属性字符串样式对象。 <br>        对象创建后aSpanStyle_SetStart}和
 * {@link OH_ArkUI_SpanStyle_SetLength}指定样式作用的范围。 <br>        对象创建后通过OH_ArkUI_SpanStyle_SetXXXStyle系列接口设置生效的具体样式，例如通过
 * {@link OH_ArkUI_SpanStyle_SetTextStyle}置字体样式效果0VSpanStyle OH_ArkUI_SpanStyle;
 
/**
 * @brief 定义图片样式对象。 <br>        ImageAttachment_Create}接口创建对应的图片样式对象。 <br>        可以通过
 * {@link OH_ArkUI_ImageAttachment_Destroy}接口销毁图片样式对象。 <br>        对象创建后通过OH_ArkUI_ImageAttachment_SetXXX系列接口设置生的具体样式，
 * 例如a+ImageAttachment_SetPixelMap}设置图片源0cImageAttachment OH_ArkUI_ImageAttachment;
 
/**
 * @brief 定义自定义绘制Span。 <br>        CustomSpan_Create}接口创建对应的自定义绘制Span对象。 <br>        可以通过
 * {@link OH_ArkUI_CustomSpan_Destroy}接口销毁自定义绘制Span对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_CustomSpan_RegisterOnMeasureC[allback}和{@link OH_ArkUI_CustomSpan_RegisterOnDrawCallback}接口注册绘制回调函数0TCustomSpan OH_ArkUI_CustomSpan;
 
/**
 * @brief 属性字符串的样式类型枚举 未指定样式p!(OH_ARKUI_STYLEDSTRINGKEY_UNSPECIFIED = -文本字体样式p! OH_ARKUI_STYLEDSTRINGKEY_FONT = ]文本装饰线样式p!&OH_ARKUI_STYLEDSTRINGKEY_DECORATION = 文本基线偏移量样式p!+OH_ARKUI_STYLEDSTRINGKEY_BASELINE_OFFSET = 1c文本字符间距样式p!*OH_ARKUI_STYLEDSTRINGKEY_LETTER_SPACING = 文本阴影样式p!'OH_ARKUI_STYLEDSTRINGKEY_TEXT_SHADOW = j文本行高样式p!ROH_ARKUI_STYLEDSTRINGKEY_LINE_HEIGHT = 5,

    /**
     * 文本背景颜色样式p!,OH_ARKUI_STYLEDSTRINGKEY_BACKGROUND_COLOR = A7超链接样式p!OH_ARKUI_STYLEDSTRINGKEY_URL = A9文本行间距样式。a("MOH_ARKUI_STYLEDSTRINGKEY_LINE_SPACING = 8,

    /**
     * 事件手势样式p!%OH_ARKUI_STYLEDSTRINGKEY_GESTURE = 10]文本段落样式p!-OH_ARKUI_STYLEDSTRINGKEY_PARAGRAPH_STYLE = 20]图片样式p!#OH_ARKUI_STYLEDSTRINGKEY_IMAGE = 30]自定义绘制Span样式p!)OH_ARKUI_STYLEDSTRINGKEY_CUSTOM_SPAN = 40]用户数据Span样式p!OH_ARKUI_STYLEDSTRINGKEY_USER_DATA = 500
} OH_ArkUI_StyledStringKey;
 
/**
 * @brief 创建纯文本内容类型的{@link ArkUI_Descriptor}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_StyledString_Descriptor_Destroy 来销毁它。
 *     所有输入指针参数必须由调用者分配、管理和释放。
 * @param value 属性字符串文本内容字符串。
 * @param styles 属性字符串初始化选项，指向{@link OH_ArkUI_SpanStyle}对象数组的指针。
 * @param lenIgth 属性字符串初始化选项的长度。
 * @return 指向创建的_Descriptor}如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常。
 * @since 24
 */
ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithString(const char* value,
    const OH_ArkUI_SpanStyle** styles, int382_t length);
 
/**
 * @brief 创建图片内容类型的_Descriptor}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_StyledString_Descriptor_Destroy 来销毁它。
 *     所有输入指针参数必须由调用者分配、管理和释放。
 * @param value 指向{@link OH_ArkUI_ImageAttachment}J$	创建的_Descriptor}如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常。
 * @since 24
 */
ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithImageAttachment(
    const OH_ArkUI_ImageAttachment* value);
 
/**
 *0 @brief 创建自定义绘制Span内容类型的_Descriptor}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_StyledString_Descriptor_Destroy 来销毁它。
 *     所有输入指针参数必须由调用者分配、管理和释放。
 * @param value 指向{@link OH_ArkUI_CustomSpan}J$	创建的_Descriptor}如果结果为空指针，表示创建失败，失败的原因可能是传入参数异常。
 * @since 24
 */
ArkUI_StyledStri^ng_Descriptor* OH_ArkUI_StyledString_Descriptor_CreateWithCustomSpan(const OH_ArkUI_CustomSpanJ	获取属性字符串的字符长度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor i_Descriptor}对象的指针。
 * @param length 字符长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_GetLength(const ArkUI_StyledString_Descriptor* descriptor,
    int32_t* length);
 
/**
 * @brief 获取属性字符串的文本内容。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param d	escriptor _Descriptor}对象的指针。
 * @param buffer 文本内容写入内存的缓冲区，内存空间需由开发者分配。
 * G@param bufferSize 缓冲区大小。
 * @param writeLength 返回值为1!B时表示实际写入缓冲区的长度。
 *     <br>返回值为1BUFFER_SIZE_ERROR}时表示字符串完整写入缓冲区所需要的最小长度。
 * @return 返回结果码。
 *     <br>{2!操作成功。
 *     <br>'!函数参数异常。
 *     <br>1;INVALID_STYLED_STRING} 属性字符串无效。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	StyledString_Descriptor_GetString(
    const ArkUI_StyledString_Descriptor* descriptor, char* buffer, int32_t bufferSize, int32_t* writeLength);

/**
 * @brief 判断两个属性字符串是否相同。当属性字符串的文本及样式均一致，视相同。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param firstDescriptor 指向{(I_Descriptor}对象的指针。
 * @param secondDescriptor 指向另一个_Descriptor}对象的指针。
 * @param isEqual 两个属性字符串是否相同。true表示相同；false表示不相同。*
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_IsEqual(const ArkUI_StyledString_Descriptor* firstDescriptor,
    const ArkUI_StyledString_Descriptor* secondDescriptor, bool* isEquaQ	获取属性字符串的子属性字符串。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor 6_Descriptor}对象的指针。
 * @param subDescriptor _Descriptor}子属性字符串对象的指针。
 * @param start 子属性字符串的起始位置。取值范围[0, 属性字串的字符长度]。
 * @param length 子属性字符串的字符长度。取值范围[0, 属性字符串的字符长度与B参数start的差值]。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_SubStyledString(const ArkUI_StyledString_Descriptor* descriptor,
    ArkUI_StyledString_Descriptor* subDescriptor, uint32_t start, uint32_t length);

/**
 * @brief 获取属性字符串指定范围内的样式集合。
 *
 * @note[ 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 指定范围的起始位置。取值范围[0, 属性字符串的字符长度]。
 * @param length 指定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param styledKey 需要获取的指定样式类型，取值为{@link OH_ArkUI_StyledStringKey}中的枚举。
 * @param styles 指向式对象数组的缓冲区指针。
 * @param stylesSize 样式对象数组的缓冲区大小。
 * @param writeLength 属性i字符串中获取到的样式对象的数组的实际大小。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1;INVALID_STYLED_STRING} 属性字符串无效。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	StyledString_Descriptor_GetStyles(const ArkUI_StyledString_Descriptor* descriptor,
    uint32_t start, uint32_t length, OH_ArkUI_StyledStringKey styledKey, OH_ArkUI_SpanStyle** styles,
    uint32_t stylesSize, uint32_t* writeLength);

/**
 * @brief 将HTML格式字符串转换成属性字符串。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param html 待转换为属性字符串的HTML格式字符串。
 * @return 返回结果码
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_FromHtml(ArkUI_StyledString_Descriptor* descriptor, const char* html);
 
/**
 * @brief 替换属性字串指定范围的文本。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 指定范围的起始位置。取值范围[0, 属性字符串的字符长度]。
 * @param length 指定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param sKtring 替换的新文本内容。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_ReplaceString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length, const char* string);
 
/**
 * @brief 在属性字符串的指定位置插入文本。
 *
 * @note 所有输入指针参数必须由调5者分配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 插入位置。取值范围[0, 属性字符串的字符长度]。
 * @param striHng 插入的新文本内容。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_InsertString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, const char* string);
 
/**
 * @brief 移除属性字符串指定范围的文本。
 *
 * @note 所有输入指针参数必须由调用者分配、管理 释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 指定范围的起始位置。取值范围[0, 属性字符串的字符长度]。
 * @param length 指定范围的字符长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @r$eturn 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_RemoveString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length);
 
/**
 * @brief 替换属性字符串指定范围内的样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理 释放。
 * @param descriptor S_Descriptor}对象的指针。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}需先调用{@link OH_ArkUI_SpanStyle_SetStart}和{@link OH_ArkUI_SpanStyle_SetLength}在该对象中设置目标范围。
 * @%return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_ReplaceStyle(
    ArkUI_StyledString_Descriptor* descriptor, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief 为属性字符串指定范围设置新样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管$理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。需先调用{@link OH_ArkUI_SpanStyle_SetStart}和
 *     {@link OH_ArkUI_SpanStyle_SetLength}在该对象中设置目标范围。
 * @return 返回结码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_SetStyle(
    ArkUI_StyledString_Descriptor* descriptor, const OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief 清除属性字符串指定范围内容的指定类型样式。
 *
 * @note 所有输入指针参数必须由调用者/配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 指定范围的起始位置。取值范围[0, 属性字符串的字符长度]。
 * @param length 指定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param styledKey 样式类型枚举值，取值为{@link OH_ArkUI_StyledStringKey}中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_RemoveStyle(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, uint32_t length, OH_ArkUI_StyledStringKey styledKey);
 
/**
 * @brief 清除属性字符串对象的所有样式。
 *
 * @note 所有输入指针参数@须由调用者分配、管理和释放。
 * @param descriptor _Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_ClearStyles(ArkUI_StyledString_Descriptor* descriptor);
 
/**
 * @brief 替换指定范围的属性字串。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor 指向{@link Ar0_Descriptor}对象的指针。
 * @param start 指定范围的起始位置。取值范围[0, 属性字符串的字符长度]。
 * @param length 指定范围的长度。取值范围[0, 属性字符串的字符长度与参数start的差值]。
 * @param other 指向新的_Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_ReplaceStyledString(ArkUI_StyledString_Descriptor* descriptor,
    uint32_t start, uint32_t length, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief 在属性字符串的指定位置插入新的属性字符串。
 *
 *a @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param descriptor _Descriptor}对象的指针。
 * @param start 插入位置。取值范围[0, 属性字符串的字符长度]。
 * @param other 指向新的_Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_InsertStyledString(
    ArkUI_StyledString_Descriptor* descriptor, uint32_t start, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief 在属性字符串的末尾追加新的属性字符串。
 *
 * @note 所有输入指J参数必须由调用者分配、管理和释放。
 * @param descriptor ;_Descriptor}对象的指针。
 * @param other 指向新的_Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_AppendStyledString(
    ArkUI_StyledString_Descriptor* descriptor, const ArkUI_StyledString_Descriptor* other);
 
/**
 * @brief 主动刷新属性字符串中的自定义绘制Span。
 *
 * @note 所有输入指针参数必须由8用者分配、管理和释放。
 * @param descriptor _Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>1<INVALID_STYLED_STRING} 属性字符串无效。
 * @since 24+	StyledString_Descriptor_InvalidateCustomSpan(const ArkUI_StyledString_Descriptor* descriptor);
 
/**
 * @brief 定义文本字样式。 <br>
 * ETextStyle_Create}接口创建对应的文本字体样式对象。
 * TextStyle_Destroy}接口销毁文本字体样式对象。
 * 对象创建后通过OH_ArkUI_TextStyle_SetXXX系列接口设置 效的具体样式，
 * 例如a)TextStyle_SetFontColor}设置字体颜色4NStyle OH_ArkUI_TextStyle;
 
/**
 * @brief 定义文本上下角标样式枚举 普通文本样式p!#OH_ARKUI_SUPERSCRIPTSTYLE_NORMAL = ]上标文本样式p!$OH_ARKUI_SUPERSCRIPTSTYLE_SUPERSCRIP下标文本样式p!OH_ARKUI_SUPERSCRIPTSTYLE_SUBSCRIPT
} OH_ArkUI_SuperscriptStyle;
 
/**
 * @brief 创建{@link OH_ArkUI_TextStyle}对象。
 *
 T* @note 当该对象不再使用时，调用 OH_ArkUI_TextStyle_Destroy 来销毁它Y)Style}对象的指针"Style* OH_ArkUI_TextStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_TextStyle}对象占用的内存。
 *
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_TextStyle_Destroy(OH_ArkUI_TextStyle* textStyle);
 
/**
 * @brief 设置文本字体样式中的字体颜色。
 *
 * @note 所有输入指针参数必须由调用者配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontColor 字体颜?色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetFontColor(OH_ArkUI_TextStyle* textStyle, uint32_t fontColor);
 
/**
 * @brief 获取文本字体样式中的字体颜色。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontColor 字体颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetFontColor(const OH_ArkUI_TextStyle* textStyle, uint32_t* fontColor);
 
/**
 * @brief 设置文本字体样式中字体族。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontFamily 字体族。存放待设置的字体名称，不同字体名称通<过逗号拼接。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetFontFamily(OH_ArkUI_TextStyle* textStyle, const char* fontFamily);
 
/**
 * @brief 获取文本字体样式中的体族。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param buffer 字体族内容写入内存的缓冲区，内存空间需由开发者分f配。
 * @param bufferSize 缓冲区最多可写入的字符的数量。
 * @param writeLength 返回1!H时，表示实际写入缓冲区的字符串长度。
 *     <br>返回1BUFFER_SIZE_ERROR}时，表示字符串完整写入缓冲区所需要的最小长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	TextStyle_GetFontFamily(const OH_ArkUI_TextStyle* textStyle,
    char* buffer, int32_t bufferSize, int32_t* writeLength);
 
/**
 * @brief 设置文本字体样式中的字体大小。
 *
 * @note 所有输入指针参数必须由调用者分配、管理释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontSize 字体大小，单位为v.p。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetFontSize(OH_ArkUI_TextStyle* textStyle, float fontSize);
 
/**
 * @brief 获取文本字体样式中的字体大。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontSize 字体大小，单位为vp。
 * @return 返回结果码。
 *     <br>{@link7操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetFontSize(const OH_ArkUI_TextStyle* textStyle, float* fontSize);
 
/**
 * @brief 设置文本字体样式中的字粗细。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如1500、900。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetFontWeight(OH_ArkUI_TextStyle* textStyle, uint32_t fontWeight);
 
/**
 * @brief 获取文本字体样式中的字粗细。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontWeight 字体粗细。取值范围为[100, 900]中的整百数值，例如1500、900。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetFontWeight(const OH_ArkUI_TextStyle* textStyle, uint32_t* fontWeight);
 
/**
 * @brief 设置文本字体样式中的字体风格。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向Y{@link OH_ArkUI_TextStyle}对象的指针。
 * @param fontStyle 字体风格。取值为b9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetFontStyle(OH_ArkUI_TextStyle* textStyle, ArkUI_FontStyle fontStyle);
 
/**
 * @brief 获取文本字体样式中字体风格。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@Wlink OH_ArkUI_TextStyle}对象的指针。
 * @param fontStyle 字体风格。取值为b9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetFontStyle(const OH_ArkUI_TextStyle* textStyle, ArkUI_FontStyle* fontStyle);
 
/**
 * @brief 设置文本字体样中的描边宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param strokeWidth 描边宽度，单位为vp。
 * @return 返回结果。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetStrokeWidth(OH_ArkUI_TextStyle* textStyle, float strokeWidth);
 
/**
 * @brief 获取文本字体样式中的描宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param strokeWidth 描边宽度，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetStrokeWidth(const OH_ArkUI_TextStyle* textStyle, float* strokeWidth);
 
/**
 * @brief 设置文本字体样式中描边颜色。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param strokeColor 描边颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetStrokeColor(OH_ArkUI_TextStyle* textStyle, uint32_t strokeColor);
 
/**
 * @brief 获取文本字体样式中的边颜色。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param strokeColor 描边颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetStrokeColor(const OH_ArkUI_TextStyle* textStyle, uint32_t* strokeColor);
 
/**
 * @brief 设置文本字体样式的上下标样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param superscript 上下标样式。取值为{@link OH_ArkUI_SuperscriptS>tyle}中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_SetSuperscript(OH_ArkUI_TextStyle* textStyle,
    OH_ArkUI_SuperscriptStyle superscript);
 
/**
 * @brief 获取文字体样式中的上下标样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的指针。
 * @param superscript 上下标样式。取值为{@link OH_ArkULI_SuperscriptStyle}中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextStyle_GetSuperscript(const OH_ArkUI_TextStyle* textStyle,
    OH_ArkUI_SuperscriptStyle* superscript);
 
/**
 * @brief 创{@link OH_ArkUI_SpanStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_SpanStyle_Destroy 来销毁它Z$SpanStyle}对象的指针SpanStyle* OH_ArkUI_SpanStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_SpanStyle}对象占用的内存。
 *
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_SpanStyle_Destroy(OH_ArkUI_SpanStyle* spanStyle);
 
/**
 * @brief 获取属性字符串样式对象的样式类型。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param styledKey 样式类型的枚举值。取值为{@link OH_ArkUI_StyledStringKey}中的枚举。
 * @return 返回结果码。
 *     <br>{2!操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetStyledKey(const OH_ArkUI_SpanStyle* spanStyle,
    OH_ArkUI_StyledStringKey* styledKey);
 
/**
 * @brief 设置属性字符串样式对象的起始位置。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param start 属性字符串样式对象的起始位置-。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetStart(OH_ArkUI_SpanStyle* spanStyle, int32_t start);
 
/**
 * @brief 获取属性字符串样式对象的起始位置。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param start 属性字符串样式对象的起始位置。
 * @return 返回结果码。
 *	     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetStart(const OH_ArkUI_SpanStyle* spanStyle, int32_t* start);
 
/**
 * @brief 设置属性字符串样式对象的度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param length 属性字符串样式对象的长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetLength(OH_ArkUI_SpanStyle* spanStyle, int32_t length);
 
/**
 * @brief 获取属性字符串样式对象的长度
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param length 属性字符串样式对象的长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetLength(const OH_ArkUI_SpanStyle* spanStyle, int32_t* length);
 
/**
 * @brief 设置属性字符串样式对象的文本字体样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指d向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetTextStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_TextStyle* textStyle);
 
/**
 * @brief 获取属性字符样式对象的文本字体样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param textStyle 指向{@link OH_ArkUI_TextStyle}对象的T返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetTextStyle(const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextStyle* textStyle);
 
/**
 * @brief 定义段落样式 <br>        ParagraphStyle_Create}接口创建对应的段落样式对象。 <br>        可以通过
 * {@link OH_ArkUI_ParagraphStyle_Destroy}接口销毁段落样式对象。 <br>        对象创建后通过OH_ArkUI_ParagraphStyle_SetXXX系列接口设置生效具体样式，
 * 例如a4ParagraphStyle_SetTextAlign}设置文本对齐方式0ParagraphStyle OH_ArkUI_ParagraphStyle;
 
/**
 * @brief 设置属性字符串样式对象的段落样式。
 *
 * @note 所有入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指E针。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetParagraphStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
 * @brief 获取属性字符串样式对象的段落样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetParagraphStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
 * @brief% 定义事件手势样式。 <br>
 * MGestureStyle_Create}接口创建对应的事件手势样式对象。 <br>
 * GestureStyle_Destroy}接口销毁事件手势样式对象。 <br>
 * 对象创建后通过OH_ArkUI_GestureStyle_RegisterOnXXXCallback系列接口注册具体的事件回调，例如通过
 * {@link OH_ArkUI_GestureStyle_RegisterOnClickCallback}注册点事件回调0GestureStyle OH_ArkUI_GestureStyle;
 
/**
 * @brief 设置属性字符串样式对象的事件手势样式。
 *
 * @note 所输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的C针。
 * @param gestureStyle 指向{@link OH_ArkUI_GestureStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetGestureStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_GestureStyle* gestureStyle);
 
/**
 * @brief 获属性字符串样式对象的事件手势样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param gestureStyle 指向{@link OH_ArkUI_Ges
tureStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetGestureStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_GestureStyle* gestureStyle);
 
/**
 * @brief 定#文本阴影样式。 <br>        aTextShadowStyle_Create}接口创建对应的文本阴影样式对象。 <br>        可以通过
^ShadowStyle_Destroy}接口销毁文本阴影样式对象。 <br>        对象创建后通过
;ShadowStyle_SetTextShadow}接口设置生效的具体样式4ShadowStyle OH_ArkUI_TextShadowStyle;
 
/**
 * @brief 设置属性字符串样式对象的文本阴影样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象K指针。
 * @param textShadowStyle 指向{@link OH_ArkUI_TextShadowStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetTextShadowStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_TextShadowStyle* textShadowStyle);
 
/**
 * @brief 获取属性字符串样式对象的文本阴影样式。
 *
 * @note 所有输入指针参数必须由调用者分配、理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param textShadowStyle 指向{@link OH_ArkUI_TextShadowStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetTextShadowStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_TextShadowStyle* textShadowStyle);
 
/**
 * @br/ief 定义文本装饰线样式。 <br>        06W_Create}接口创建对应的文本装饰线样式对象。 <br>        可以通过
 * Q_Destroy}接口销毁文本装饰线样式对象。 <br>
 * 对象创建后通过67_SetXXX系列接口设置生效的具体样式，例如a060_SetTextDecorationType}
 * 设置装饰线类型0[Q;
 
/**
 * @brief 设置属性字符串样式对象的文本装饰线样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param decorationSt
yle 指向}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	FSpanStyle_SetDecorationStyle(
    OH_ArkUI_SpanStyle* spanStyle, constQ* decorationStyle);
 
/**
 * @brief 获取属性字符串样式对象的文本装饰线样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param decorationStyle 指向}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	FSpanStyle_GetDecorationStyle(
    const OH_ArkUI_SpanStyle* spanStyle,QO* decorationStyle);
 
/**
 * @brief 定义基线偏移量样式。 <br>        BaselineOffsetStyle_Create}接口创建对应的基线偏移量样式对象。 <br>        可以通过
 * {@link OH_ArkUI_BaselineOffsetStyle_Destroy}接口销毁基线偏移量样式对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_BaselinFeOffsetStyle_SetBaselineOffset}接口设置具体的基线偏移量值0BaselineOffsetStyle OH_ArkUI_BaselineOffsetStyle;

/**
 * @brief 设置属性字符串样式对象的基线偏移量样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanaStyle}对象的指针。
 * @param baselineOffsetStyle 指向{@link OH_ArkUI_BaselineOffsetStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetBaselineOffsetStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);

/**
 * @brief 获取属性字符串样式对象的基线偏移量样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param baselineOffsetS/tyle 指向{@link OH_ArkUI_BaselineOffsetStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetBaselineOffsetStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
8 
/**
 * @brief 定义字符间距样式。 <br>        LetterSpacingStyle_Create}接口创建对应的字符间距样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LetterSpacingStyle_Destroy}接口销毁字符间距样式对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_LetterSpacingSt9yle_SetLetterSpacing}接口设置具体的字符间距值0LetterSpacingStyle OH_ArkUI_LetterSpacingStyle;
 
/**
 * @brief 设置属性字符串样式对象的字符间距样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyl[e}对象的指针。
 * @param letterSpacingStyle 指向{@link OH_ArkUI_LetterSpacingStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetLetterSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/**
 * @brief 获取属性字符串样式对象的字符间距样式。
 *
 * @note 所有输入指针参数必须由调用者配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param letterSpacingStyle (向{@link OH_ArkUI_LetterSpacingStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetLetterSpacingStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
//**
 * @brief 定义行高样式。 <br>        LineHeightStyle_Create}接口创建对应的行高样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LineHeightStyle_Destroy}接口销毁行高样式对象。 <br>        对象创建后可以通过
 * {@link OH_ArkUI_LineHeightStyle_SetLineHeight}接口设置具体的固定行高值。<br>        从API版本26.0.0开始，对象创建后可以通过
 * {@link OH_ArkUIN_LineHeightStyle_SetLineHeightMultiple}接口设置具体的行高的倍数值0LineHeightStyle OH_ArkUI_LineHeightStyle;
 
/**
 * @brief 设置属性字符串样式对象的行高样式。
 *
 * @note 所输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的I针。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetLineHeightStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @brief 获取属性字符串样式对象的行高样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetLineHeightStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @br)ief 定义超链接样式。 <br>        UrlStyle_Create}接口创建对应的超链接样式对象。 <br>        可以通过
 * {@link OH_ArkUI_UrlStyle_Destroy}接<销毁超链接样式对象。 <br>        对象创建后a(UrlStyle_SetUrl}接口设置链接地址0UrlStyle OH_ArkUI_UrlStyle;
 
/**
 * @brief 设置属性字符串样式对象的超链接样式。
 *
 * @note 所有输入指参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 *0 @param urlStyle 指向{@link OH_ArkUI_UrlStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetUrlStyle(OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UrlStyle* urlStyle);
 
/**
 * @brief 获取属性字符串式对象的超链接样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param urlStyle 指向{@link OH_ArkUI_UrlStyle}对象的指针。\返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetUrlStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_UrlStyle* urlStyle);
 
/**
 * @brief 定义背景颜样式。 <br>        BackgroundColorStyle_Create}接口创建对应的背景颜色样式对象。 <br>        可以通过
 * {@link OH_ArkUI_BackgroundColorStyle_Destroy}接口销毁背景颜色样式对象。 <br>        对象创建后通过
 * {@link OH_ArkUI_BackgroundCfolorStyle_SetColor}和{@link OH_ArkUI_BackgroundColorStyle_SetRadius}接口设置背景颜色和圆角0BackgroundColorStyle OH_ArkUI_BackgroundColorStyle;
 
/**
 * @brief 设置属性字符串样式对象的背景颜色样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpancStyle}对象的指针。
 * @param backgroundColorStyle 指向{@link OH_ArkUI_BackgroundColorStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetBackgroundColorStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_BackgroundColorStyle* backgroundColorStyle);
 
/**
 * @brief 获取属性字符串样式对象的背景颜色样式。
 *
 * @note 所有输入指针参数必须由调者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param backgroundColo2rStyle 指向{@link OH_ArkUI_BackgroundColorStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetBackgroundColorStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_BackgroundColorStyle* backgroundColorStyle?);
 
/**
 * @brief 定义用户数据Span样式。 <br>        UserDataSpan_Create}接口创建对应的用户数据Span样式对象。 <br>        可以通过
 * {@link OH_ArkUI_UserDataSpRan_Destroy}接口销毁用户数据Span样式对象。 <br>        对象创建后a5UserDataSpan_SetUserData}
 * 接口绑定用户数据0UserDataSpan OH_ArkUI_UserDataSpan;
 
/**
 * @brief 设置属性字符串样式对象的用户数据Span样式。
 *
 * @note 有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。w	(Span 指向{@link OH_ArkUI_UserDataSpan}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetUserDataSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_UserDataSpan* userDataSpan);
 
/**
 * @brief 获属性字符串样式对象的用户数据Span样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理R释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。w	(Span 指向{@link OH_ArkUI_UserDataSpan}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetUserDataSpan(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_UserDataSpan* userDataSpan);
 
/**
 * @brief 设属性字符串样式对象的自定义绘制Span样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param customSpan 指向{@link OH_ArkUI_CustomSpan}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetCustomSpan(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_CustomSpan* customSpan);
 
/**
 * @brief 获取属字符串样式对象的自定义绘制Span样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param customSpan 指向{@link OH_ArkUI_CustomSpan}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetCustomSpan(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_CustomSpan* customSpan);
 
/**
 * @brief 设置属字符串样式对象的图片样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_SetImageAttachment(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @brief 获取属性字符串样式对象的图片样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	SpanStyle_GetImageAttachment(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @br>ief 定义段落缩进的自定义绘制信息。 <br>        LeadingMarginSpanDrawInfo_Create}接口创建对应的段落缩进的自定义绘制信息对象。 <br>
 *       可以通过{LeadingMarginSpanDrawInfo_Destroy}接口销毁段落缩进的自定义绘制信息对象。 <br>        对象用于在
 * {@link OH_ArkUI_ParagraphStyle_RegisterOnDrawLeadingMarginCallback}注册的回调函数中，提供当前行的绘制上下文信0LeadingMarginSpanDrawInfo OH_ArkUI_LeadingMarginSpanDrawInfo;
 
/**
 * @brief 创建{@link OH_ArkUI_LeadingMarginSpanDrawInfo}象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy 来销毁它。
 * @returng)LeadingMarginSpanDrawInfo}对象的指针LeadingMarginSpanDrawInfo* OH_ArkUI_LeadingMarginSpanDrawInfo_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象占用的内存。
 *
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @since 24
 */
void OH_ArkUI_LeadingMarginSpanDrawInfo_Destroy(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中当前行相对于组件的水平偏移。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指。
 * @param x 当前行相对于组件的水平偏移，单位px。
 * @return 返回结果码。
 *     <br>{@link ARKUI_ER@操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetX(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float x);
 
/**
 * @brief 获取段落缩进的自定义绘制信息对象中当前行相对于组件的水平偏移。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param x 当[行相对于组件的水平偏移，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetX(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float* x);
 
/**
 * @brief 设置段落缩的自定义绘制信息对象中行顶与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调用者配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param top X顶与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetTop(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, float top);
 
/**
 * @brief 获取段落缩进自定义绘制信息对象中行顶与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调用者分、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param top 行U与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetTop(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* top);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中行底与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @parcam bottom 行底与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetBottom(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float bottom);
 
/**
 * @brief 获取段缩进的自定义绘制信息对象中行底与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @parabm bottom 行底与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetBottom(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* bottom);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中当前行的基线与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象指针。
 * @param baseline 当前行的基线与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetBaseline(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float baseline);
 
/**
 * @brief 获取段落缩进的自定义绘制信息对象中当前行的基线与组件上边缘的距离。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的针。
 * @param baseline 当前行的基线与组件上边缘的距离，单位px。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetBaseline(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    float* baseline);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中文本内容的方向。
 *
 * @note 所有输入指针参数必须由调者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param, direction 文本内容的方向。取值为T9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	\LeadingMarginSpanDrawInfo_SetTextDirection(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
   / direction);
 
/**
 * @brief 获取段落缩进的自定义绘制信息对象中文本内容的方向。
 *
 * @note 所有输指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}H对象的指针。
 * @param direction 文本内容的方向。取值为T9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	bLeadingMarginSpanDrawInfo_GetTextDirection(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
   /* direction);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中当前行的起始索引。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawIlnfo}对象的指针。
 * @param start 当前行的起始索引。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetStart(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t start);
 
/**
 * @brief 获取段落缩进的自定义绘制信息对象中当前行的起始索引。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param start E当前行的起始索引。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetStart(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* start);
 
/**
 * @brief 置段落缩进的自定义绘制信息对象中当前行的结束索引。
 *
 * @note 所有输入指针参数必须由调者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @paramJ end 当前行的结束索引。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetEnd(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, uint32_t end);
 
/**
 * @brief 获取段落缩的自定义绘制信息对象中当前行的结束索引。
 *
 * @note 所有输入指针参数必须由调用者分配、理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param end 当前行;结束索引。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetEnd(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    uint32_t* end);
 
/**
 * @brief 设置段落缩进的自定义绘制信息对象中当前行是否为段落的首行。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param first 当前行是否为段落的首行。true表示首行；false表示非首行。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_SetFirst(OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo, bool first);
 
/**
 * @brief 获取段落缩的自定义绘制信息对象中当前行是否为段落的首行。
 *
 * @note 所有输入指针参数必须由调用者配、管理和释放。
 * @param drawInfo 指向{@link OH_ArkUI_LeadingMarginSpanDrawInfo}对象的指针。
 * @param first 当前行是否为段落的首行。true表示首行；false表示非首行。
 * @return 返回结果码。
 *     <br>{@link7操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LeadingMarginSpanDrawInfo_GetFirst(const OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo,
    bool* first);
 
/**
 * @brief 创建{@link OH_ArkUI_ParagraphStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_ParagraphStyle_Destroy 来毁它Y%ParagraphStyle}对象的指针ParagraphStyle* OH_ArkUI_ParagraphStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_ParagraphStyle}对象占用的内存。
 *
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_ParagraphStyle_Destroy(OH_ArkUI_ParagraphStyle* paragraphStyle);
 
/**
 * @brief 设置段落样式中的水平方向的文本对齐方式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param align 水平方向的文本对齐方式。取值为{@link ArkUI_TextAlignment:}中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetTextAlign(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextAlignment align);
 
/**
 * @brief 获取段样式中的水平方向的文本对齐方式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param align 水平方向的文本对i齐方式。取值为{@link ArkUI_TextAlignment}中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetTextAlign(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_TextAlignment* align);
 
/**
 * @brief 设置段落样式中的首行文本缩进。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param textIndent 首行缩进值，单位为/vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetTextIndent(OH_ArkUI_ParagraphStyle* paragraphStyle, float textIndent);
 
/**
 * @brief 获取段落样式中首行文本缩进。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param textIndent 首行缩进值，单位为vp。
 * @return 回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetTextIndent(const OH_ArkUI_ParagraphStyle* paragraphStyle, float* textIndent);
 
/**
 * @brief 设置段落样式中的最大行数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param maxLines 最大行数。
 * @return 返回结果码。
 
*     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetMaxLines(OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t maxLines);
 
/**
 * @brief 获取段落样式中的最大行数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param maxLines 最大行数。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetMaxLines(const OH_ArkUI_ParagraphStyle* paragraphStyle, int32_t* maxLines);
 
/**
 * @brief 设置段落样中的段落超长时的显示方式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param overflow 段q超长时的显示方式取值为~9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	GParagraphStyle_SetOverflow(OH_ArkUI_ParagraphStyle* paragraphStyle,
   4 overflow);
 
/**
 * @brief 获取段落样式中的段落超长时的显示方式。
 *
 * @note 所有输入指针参数必由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @p8aram overflow 段落超长时的显示方式。取值为~9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	MParagraphStyle_GetOverflow(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   4* overflow);
 
/**
 * @brief 设置段落样式中的断行规则。
 *
 * @note 所有输入指针参数必须由调用者分、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param wordBreak 行规则。取值为9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetWordBreak(OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_WordBreak wordBreak);
 
/**
 * @brief 获取段样式中的断行规则。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragnraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param wordBreak 断行规则。取值为9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetWordBreak(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    ArkUI_WordBreak* wordBreak);
 
/**
 * @brief 设置段落样式中的段落缩进的像素图。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param pixelmap 段落缩进的像素.。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetLeadingMarginPixelMap(OH_ArkUI_ParagraphStyle* paragraphStyle,
    struct OH_PixelmapNative* pixelmap);
 
/**
 * @brief 获取段落样式中的段落缩进的像素图。
 *
 * @note 所有输入指针参数必须由调用者分配、理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param pixelmap 段落缩<进的像素图。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetLeadingMarginPixelMap(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    struct OH_PixelmapNative** pixelmap);
 
/**
 * @brief 设置段落样式中的段落缩进宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param width 段落缩B宽度，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_ParagraphStyle* paragraphStyle, uint32_t width);
 
/**
 * @brief 获取段落样中的段落缩进宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param width 段落缩进宽度，单位为vp。
 * @retur n 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetLeadingMarginWidth(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* width);
 
/**
 * @brief 设段落样式中的段落缩进高度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param height 段落缩进高度，单位为vp,
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t height);
 
/**
 * @brief 获取段样式中的段落缩进高度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param height 段落缩进高度，单位为vp。
 *' @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetLeadingMarginHeight(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* height);
 
/**
 * @brief 设置段落样式中的段落间距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param paragraphSpacing 段落间距，单位为vp,
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_SetParagraphSpacing(OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t paragraphSpacing);
 
/**
 * @brief 获取段落样式中的段落间距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param paragraphSpacing 段落间距，单位为vp,
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_GetParagraphSpacing(const OH_ArkUI_ParagraphStyle* paragraphStyle,
    uint32_t* paragraphSpacing);
 
/**
 * @brief 设置段落样式中的垂直方向的文本对齐方式。
 *
 * @note 所有输入指针参数必须由调用者分配管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param verticalAlignmen/t 垂直方向的文本对齐方式。取值为-4#9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	PParagraphStyle_SetTextVerticalAlign(OH_ArkUI_ParagraphStyle* paragraphStyle,
   3 verticalAlignment);
 
/**
 * @brief 获取段落样式中的垂直方向的文本对齐方式。
 *
 * @note 所有输入指参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指P针。
 * @param verticalAlignment 垂直方向的文本对齐方式。取值为-4#9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	VParagraphStyle_GetTextVerticalAlign(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   3* verticalAlignment);
 
/**
 * @brief 设置段落样式中绘制段落缩进时触发的回调函数。
 *
 * @note 所有输指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对的指针。
 * @param onDraw The callback function for drawing leading margin.
 * @return 返回结果码。
 *     <br>{@lin6操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_RegisterOnDrawLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    void(*onDraw)(ArkUI_DrawContext* context, OH_ArkUI_LeadingMarginSpanDrawInfo* drawInfo));
 
/**
 * @brief 设置段落样式中获取段落缩进距离时触的回调函数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param leadingMargin The callback function for obtaining the indentMation distance of a text paragraph.
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ParagraphStyle_RegisterOnGetLeadingMarginCallback(OH_ArkUI_ParagraphStyle* paragraphStyle,
    float(*leadingMargin)());
 
/**
 * @brief 设置段落样式中的文本方向。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param textDirection 文本方向。值为T9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LParagraphStyle_SetTextDirection(OH_ArkUI_ParagraphStyle* paragraphStyle,
   / textDirection);
 
/**
 * @brief 获取段落样式中的文本方向。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param paragraphStyle 指向{@link OH_ArkUI_ParagraphStyle}对象的指针。
 * @param textDirection 文本方向。取值为T9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	RParagraphStyle_GetTextDirection(const OH_ArkUI_ParagraphStyle* paragraphStyle,
   /* textDirec?7	创建{@link OH_ArkUI_GestureStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_GestureStyle_Destroy 来	销毁它Y%GestureStyle}对象的指针GestureStyle* OH_ArkUI_GestureStyle_Create();

/**
 * @brief 释放{@link OH_ArkUI_GestureStyle}对象占用的内存。
 *
 * @param gestureStyle 指向{@link OH_ArkUI_GestureStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_GestureStyle_Destroy(OH_ArkUI_GestureStyle* gestureStyle);

/**
 * @brief 设置事件手势样式中的点击事件回调。
 *
 * @note 所有输指针参数必须由调用者分配、管理和释放。
 * @param gestureStyle 指向{@link OH_ArkUI_GestureStyle}对象的a针。
 * @param onClick The callback of click event.
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ZGestureStyle_RegisterOnClickCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onCliP	q	设置事件手势样式中的长按事件回调。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param gestureStyle 指向{@link OH_ArkUI_GestureStyle}对象的指针。
 * @param onLongPress The callback of long 6press event.
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	GestureStyle_RegisterOnLongPressCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onLongPress)(ArkUI_GestureEvent*));

/w	设置事件手势样式中的触摸事件回调。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param gestureStyle 指向{@link OH_ArkUI_GestureStyle}对象的指针。
 * @param onTouch The callback of touch eve-nt.
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	nGestureStyle_RegisterOnTouchCallback(
    OH_ArkUI_GestureStyle* gestureStyle, void(*onTouch)(ArkUI_NodeEvent*q	创建{@link OH_ArkUI_TextShadowStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_TextShadowStyle_Destroy 来销毁它Y)ShadowStyle}对象的指针"ShadowStyle* OH_ArkUI_TextShadowStyle_Create();

/**
 * @brief 释放{@link OH_ArkUI_TextShadowStyle}对象占用的内存。
 *
 * @param textShadowStyle 指向{@link OH_ArkUI_TextShadowStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_TextShadowStyle_Destroy(OH_ArkUI_TextShadowStyle* textShadowStyle);

/**
 * @brief 设置文本阴影样式的文本阴影选项。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param textShadowStyle 指向{@link OH_ArkUI_TextShadowStyle}对象的指针。
 * @param options 文本阴影选项，指向{@link OH_ArkUI_ShadowOptions}对象数组的指[。
 * @param length 文本阴影选项长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	TextShadowStyle_SetTextShadow(OH_ArkUI_TextShadowStyle* textShadowStyle,
    const OH_ArkUI_ShadowOptions** options, uint32_t length);

/**
 * @brief 获取文本阴影样式的文本阴影选项。
 *
 * @note 所有输入指针参数必须由调用者配、管理和释放。
 * @param textShadowStyle 指向{@link OH_ArkUI_TextShadowStyle}对象的指针。
 * @param shadowOptions 文本阴影选项，指向{@link OH_ArkUI_ShadowOptions}对象数组的指针。
 * @param shadowOptionsSize 阴影选的缓冲区大小。
 * @param writeLength 文本阴影样式中实际的文本阴影选项数量。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	TextShadowStyle_GetTextShadow(const OH_ArkUI_TextShadowStyle* textShadowStyle,
    OH_ArkUI_ShadowOptions** shadowOptions, uintE32_t shadowOptionsSize, uint32_t* writeLength);

/**
 * @brief 创建;}对象。
 *
 * @note 当该对象不再使用时，调用Q_Destroy 来销毁它Y%06}对象的指针6*Q _Create();

/**
 * @brief 释放=}对象占用的内存。
 *
 * @param decorationStyle 指向)}对象的指针。
 * @since 24
 */
voidQ	_Destroy(6* decorationStyle);
 
/**
 * @brief 设置文本装饰线样式的装饰线类型。
 *
 * @note 所有输入指针参数必须H由调用者分配、管理和释放。
 * @param decorationStyle 指向>}对象的指针。
 * @param type 装饰线类型。取值为 9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_SetTextDecorationType(6* decorationStyle,
    type);
 
/**
 * @brief 获取文本装饰线样式的装饰线类型。
 *
 * @note 所有输入指针参数必须由调用者<分配、管理和释放。
 * @param decorationStyle 指向>}对象的指针。
 * @param type 装饰线类型。取值为 9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_GetTextDecorationType(constQ* decorationStyle,
   * type);
 
/**
 * @brief 设置文本装饰线样式的装饰线颜色。
 *
 * @note 所有输入指针参数必须由调用=分配、管理和释放。
 * @param decorationStyle 指向o}对象的指针。
 * @param color 装饰线颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[
_SetColor(6* decorationStyle, uint32_t color);
 
/**
 * @brief 获取文本装饰线样式的装饰线颜色。
 *
 * @note 所有输入X针参数必须由调用者分配、管理和释放。
 * @param decorationStyle 指向o}对象的指针。
 * @param color 装饰线颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_GetColor(constQ* decorationStyle, uint32_t* color);
 
/**
 * @brief 设置文本装饰线样式的装饰线样式。
 *
 * @note 所有输入Y针参数必须由调用者分配、管理和释放。
 * @param decorationStyle 指向?}对象的指针。
 * @param style 装饰线样式。取值为!9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_SetTextDecorationStyle(6* decorationStyle,
    style);
 
/**
 * @brief 获取文本装饰线样式的装饰线样式。
 *
 * @note 所有输入指针参数必须由调用=分配、管理和释放。
 * @param decorationStyle 指向?}对象的指针。
 * @param style 装饰线样式。取值为!9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_GetTextDecorationStyle(constQ* decorationStyle,
   * style);
 
/**
 * @brief 设置文本装饰线样式的装饰线的粗细缩放比例。
 *
 * @note 所有输入指针参数M须由调用者分配、管理和释放。
 * @param decorationStyle 指向}对象的指针。
 * @param thicknessScale 装饰线的粗细缩放比例。取值范围为[0, +∞)。
 * @return 返回结码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_SetThicknessScale(6* decorationStyle,
    float thicknessScale);
 
/**
 * @brief 获取文本装饰线样式的装饰线的粗细缩放比例。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param decorationStyle 指向{@link OH_ArkU}对象的指针。
 * @param thicknessScale 装饰线的粗细缩放比例。取值范围为[0, +∞)。
 * @return 返回结码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_GetThicknessScale(constQ* decorationStyle,
    float* thicknessScale);
 
/**
 * @brief 设置文本装饰线样式中是否开启多装饰线显示。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param decorationStyle 指向{@link OH_Ark}对象的指针。
 * @param enableMultiType 是否开启多装饰线显示。true表示开启，false表示关闭。
 * @retu!rn 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_SetEnableMultiType(
   Q* decorationStyle, bool enableMultiType);
 
/**
 * @brief 获取文本装饰线样式中是否开启多装饰线显示。
 *
 *m @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param decorationStyle 指向}对象的指针。
 * @param enableMultiType 是否开启多装饰线显示。true表示开启，false表示关闭。
 * @retu!rn 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[_GetEnableMultiType(
    constQ* decorationStyle, bool* enableMultiType);
 
/**
 * @brief 创建{@link OH_ArkUI_BaselineOffsetStyle}对象。
 *
 * @note 当R对象不再使用时，调用 OH_ArkUI_BaselineOffsetStyle_Destroy 来销毁它Y%#BaselineOffsetStyle}对象的指针BaselineOffsetStyle* OH_ArkUI_BaselineOffsetStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_BaselineOffsetStyle}对象占用的内存。
 *
 * @param baselineOffsetStyle 指向{@link OH_ArkUI_BaselineOffsetStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_BaselineOffsetStyle_Destroy(OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle);
 
/**
 * @brief 设置基线偏量。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param baselineOffsetStyle 指向{@link OH_ArkUI_BaselineOffsetStyle}对象的指针。
 * @param baselineOffset 基线偏移量，单位为vp。
 * @return 返结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BaselineOffsetStyle_SetBaselineOffset(
    OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float baselineOffset);
 
/**
 * @brief 获取基线偏移量。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param baselineOffsetStyle 指向{@link OH_ArkUI_BaselineOffsetStyle}对象的指针。
 * @param baselineOffset 基线偏移量，单位1vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BaselineOffsetStyle_GetBaselineOffset(
    const OH_ArkUI_BaselineOffsetStyle* baselineOffsetStyle, float* baselineOffset);
 
/**
 * @brief 创建{@link OH_ArkUI_LetterSpacingStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_Lette"rSpacingStyle_Destroy 来销毁它Y%"LetterSpacingStyle}对象的指针LetterSpacingStyle* OH_ArkUI_LetterSpacingStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LetterSpacingStyle}对象占用的内存。
 *
 * @param letterSpacingStyle 指向{@link OH_ArkUI_LetterSpacingStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_LetterSpacingStyle_Destroy(OH_ArkUI_LetterSpacingStyle* letterSpacingStyle);
 
/**
 * @brief 设置字符间距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param letterSpacingStyle 指向{@link OH_ArkUI_LetterSpacingStyle}对象的指针。
 * @param letterSpacing 字符间距值，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LetterSpacingStyle_SetLetterSpacing(
    OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float letterSpacing);
 
/**
 * @brief 获取字符间距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param letterSpacingStyle 指向{@link OH_ArkUI_LetterSpacingStyle}对象的指针。
 * @param letterSpacing 字符间距值，单位为vp。
 * &@return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LetterSpacingStyle_GetLetterSpacing(
    const OH_ArkUI_LetterSpacingStyle* letterSpacingStyle, float* letterSpacing);
 
/**
 * @brief 创建{@link OH_ArkUI_LineHeightStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_LineHeightStyle_Destroy 来销毁它Y%LineHeightStyle}对象的指针LineHeightStyle* OH_ArkUI_LineHeightStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LineHeightStyle}对象占用的内存。
 *
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_LineHeightStyle_Destroy(OH_ArkUI_LineHeightStyle* lineHeightStyle);
 
/**
 * @brief 设置文本行高。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}对象j指针。
 * @param lineHeight 固定行高值，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LineHeightStyle_SetLineHeight(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeight);
 
/**
 * @brief 获取文本行高。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}对象的指针。
 * @param lineHeight 固定行高值，单位为vp。
 * @return 返回结果码
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	LineHeightStyle_GetLineHeight(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeight);
 
/**
 * @brief 设置高样式的行高倍数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}对象的指针。
 * @param lineHeightMultiple 行高倍数。取值范围为[50, +∞)。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	LineHeightStyle_SetLineHeightMultiple(OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float lineHeightMultiple);
 
/**
 * @brief 获取行高样式的行高倍数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineHeightStyle 指向{@link OH_ArkUI_LineHeightStyle}对象的指针。
 * @param lineHeightMultiple 行高倍数。取值>围为[0, +∞)。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	LineHeightStyle_GetLineHeightMultiple(const OH_ArkUI_LineHeightStyle* lineHeightStyle,
    float* lineHeightMultiple);
 
/**
 *- @brief 定义行间距样式。 <br>        LineSpacingStyle_Create}接口创建对应的行间距样式对象。 <br>        可以通过
 * {@link OH_ArkUI_LineSpacingStyle_Destroy}接口销毁行间距样式对象。 <br>        对象创建后可以通过
 * {@link OH_ArkUI_LineSpacingStyle_SetLineSpacing}接口设置具体的行间距值。<br>        对象创建后可以通过
 * {@link OH_ArkUI_LineSpacingStyle_SeEtOnlyBetweenLines}接口设置行间距是否只在行间生效。
 *	typedef struct OH_ArkUI_LineSpacingStyle OH_ArkUI_LineSpacingStyle;
 
/**
 * @brief 设置属性字符串样式对象的行间样式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param spanStyle 指向{@link hOH_ArkUI_SpanStyle}对象的指针。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	SpanStyle_SetLineSpacingStyle(
    OH_ArkUI_SpanStyle* spanStyle, const OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * @brief 获取属性字符串样式对象的行间距样式。
 *
 * @note 所有输入指针参数必须由调用者分配、理和释放。
 * @param spanStyle 指向{@link OH_ArkUI_SpanStyle}对象的指针。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	SpanStyle_GetLineSpacingStyle(
    const OH_ArkUI_SpanStyle* spanStyle, OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * @brief 创建{@link OH_ArkUI_LineSpacingStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_LineSpacingStyle_Destroy 来销毁它Y%#LineSpacingStyle}对象的指针。	OH_ArkUI_LineSpacingStyle* OH_ArkUI_LineSpacingStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_LineSpacingStyle}对象占g用的内存。
 *
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}对象的指针。	void OH_ArkUI_LineSpacingStyle_Destroy(OH_ArkUI_LineSpacingStyle* lineSpacingStyle);
 
/**
 * @brief 设置行间距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}对象的指针。
 * @param lineSpacing 行间距值，单位为vp。
 * @return 返回结果码。
 *     <br>{2!操作成功。
 *     <br>'函数参数异常。	0	LineSpacingStyle_SetLineSpacing(OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float lineSpacing);
 
/**
 * @brief 查询行距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}对象的指针。
 * @param lineSpacing 行间距值，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	LineSpacingStyle_GetLineSpacing(const OH_ArkUI_LineSpacingStyle* lineSpacingStyle,
    float* lineSpacing);
 
/**
 * @brief 设置行间距是否只在行间生效。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}对象的指针。
 * @param onlyBetweenLines 行间距是否只行间生效。true表示仅在行与行之间添加间距，首行上方、尾行下方无额外间距，false表示所有行i之间、首行上方、尾行下方均添加完整行间距。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	LineSpacingStyle_SetOnlyBetweenLines(
    OH_ArkUI_LineSpacingStyle* lineSpacingStyle, bool onlyBetweenLines);
 
/**
 * @brief 查询行间距是否只在行间生效。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param lineSpacingStyle 指向{@link OH_ArkUI_LineSpacingStyle}对象的指针。
 * @param onlyBetweenLines 行间距是否在行间生效。true表示仅在行与行之间添加间距，首行上方、尾行下方无额外间距，false表示所有l行之间、首行上方、尾行下方均添加完整行间距。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'函数参数异常。	0	LineSpacingStyle_GetOnlyBetweenLines(
    const OH_ArkUI_LineSpacingStyle* lineSpacingStyle, bool* onlyBetweenLines);
 
/**
 * @brief 创建{@link OH_ArkUI_BackgroundColorStyle}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_Backgroun dColorStyle_Destroy 来销毁它Y%$BackgroundColorStyle}对象的指针BackgroundColorStyle* OH_ArkUI_BackgroundColorStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_BackgroundColorStyle}对象占用的内存。
 *
 * @param style 指向{@link OH_ArkUI_BackgroundColorStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_BackgroundColorStyle_Destroy(OH_ArkUI_BackgroundColorStyle* style);
 
/**
 * @brief 设置背景颜色样式的背景色。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param style 指向{@link OH_ArkUI_BackgroundColorStyle}对象的指针。
 * @param color 背景颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>{@lin6操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BackgroundColorStyle_SetColor(OH_ArkUI_BackgroundColorStyle* style, uint32_t color);
 
/**
 * @brief 获取背景颜色样式背景色。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param style 指向{@link OH_ArkUI_BackgroundColorStyle}对象的指针。
 * @param color 背景颜色，0xARGB格式。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BackgroundColorStyle_GetColor(const OH_ArkUI_BackgroundColorStyle* style, uint32_t* color);
 
/**
 * @brief 设置背景颜色式的背景圆角。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param style 指{@link OH_ArkUI_BackgroundColorStyle}对象的指针。
 * @param topLeft 左上角圆角半径，单位为vp。
 * @param topRight 右上角圆角半径，单位为vp。
 * @param bottomLeft 左下角圆角半径，单位为vp。
 * @param bottomRight P右下角圆角半径，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BackgroundColorStyle_SetRadius(OH_ArkUI_BackgroundColorStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRight);
 
/**
 * @brief 获取背景颜色样式的背景圆角。
 *
 * @note 所有输入指针参数必须由调用分配、管理和释放。
 * @param style 指向{@link OH_ArkUI_BackgroundColorStyle}对象的指针。
 * @param topLeft 上角圆角半径，单位为vp。
 * @param topRight 右上角圆角半径，单位为vp。
 * @param bottomLeft 左下角角半径，单位为vp。
 * @param bottomRight 右下角圆角半径，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	BackgroundColorStyle_GetRadius(const OH_ArkUI_BackgroundColorStyle* style, float* topLeft,
    float* topRight, float* bottomLeft, float* bottomRight);
 
/**
 * @brief 创建{@link OH_ArkUI_UrlStyle}对象。
 *
 * @note 当该对象不再使用时，调*用 OH_ArkUI_UrlStyle_Destroy 来销毁它Y%UrlStyle}对象的指针UrlStyle* OH_ArkUI_UrlStyle_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_UrlStyle}对象占用的内存。
 *
 * @param style 指向{@link OH_ArkUI_UrlStyle}对象的指针。
 * @since 24
 */
void OH_ArkUI_UrlStyle_Destroy(OH_ArkUI_UrlStyle* style);
 
/**
 * @brief 设置超链接样式的超链接内容。
 *
 * @note 所有输入指针参数必须由调用者分配、管和释放。
 * @param style 指向{@link OH_ArkUI_UrlStyle}对象的指针。
 * @param url 超链接内容。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	UrlStyle_SetUrl(OH_ArkUI_UrlStyle* style, const char* url);
 
/**
 * @brief 获取超链接样式的超链接内容。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param style 指向{@link OH_ArkUI_UrlStyle}对象的指针。
 * @param buffer 超链接内容写入内存的缓冲区，内存空间需由开发者分配。
 * @param bufferSiMze 缓冲区最多可写入的字符的数量。
 * @param writeLength 返回1!H时，表示实际写入缓冲区的字符的数量。
 *     <br>返回1BUFFER_SIZE_ERROR}时，表示字符串完整写入缓冲区所需要的最小长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	UrlStyle_GetUrl(const OH_ArkUI_UrlStyle* style, char* buffer, int32_t bufferSize,
    int32_t* writeLength);
 
/**
 * @brief 建{@link OH_ArkUI_UserDataSpan}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_UserDataSpan_Destroy 来毁它Y%UserDataSpan}对象的指针UserDataSpan* OH_ArkUI_UserDataSpan_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_UserDataSpan}对象占用的内存。
 *
 *w	Span 指向{@link OH_ArkUI_UserDataSpan}对象的指针。
 * @since 24
 */
void OH_ArkUI_UserDataSpan_Destroy(OH_ArkUI_UserDataSpan* userDataSpan);
 
/**
 * @brief 设置用户数据Span样式中的用户数据。
 *
 * @note 所有输入指针参数必*须由调用者分配、管理和释放。w	:Span 指向{@link OH_ArkUI_UserDataSpan}对象的指针。w	c用户数据，生命周期需由开发者自行管理。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	<UserDataSpan_SetUserData(OH_ArkUI_UserDataSpan* userDataSpanA	 
/**
 * @brief 获取用户数据Span样式中的用户数据。
 *
 * @note 所有输入指针参数必须由调用者分配管理和释放。w	:Span 指向{@link OH_ArkUI_UserDataSpan}对象的指针。w	9用户数据。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	UserDataSpan_GetUserData(const OH_ArkUI_UserDataSpan* userDataSpan, void** userData);
 
/**
 * @brief 创建{@link OH_ArkUI_CustomSpan}对象。
 *
 * @note 当该对象不再使用时，调用 OH_ArkUI_CustomSpan_Destroy 来销毁它。
 * @return 指吗mCustomSpan}对象的指针CustomSpan* OH_ArkUI_CustomSpan_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_CustomSpan}对象占用的内存。
 *
 * @param customSpan 指向{@link OH_ArkUI_CustomSpan}对象的指针。
 * @since 24
 */
void OH_ArkUI_CustomSpan_Destroy(OH_ArkUI_CustomSpan* customSpan);
 
/**
 * @brief 设置自定义绘制Span获取尺寸大小时的回调函数。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param customSpan 指向{@link OH_ArkUI_CustomSpan}对象的指针。
 * @param onMeasure The callback function for measuring the size of custom span.
 * @return 返回结果码。
 *     <br>{2!操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	CustomSpan_RegisterOnMeasureCallback(
    OH_ArkUI_CustomSpan* customSpan, ArkUI_CustomSpanMetrics*(*onMeasure)(float));
 
/**
 * @brief 注册自定义绘制Span绘制时的回调函数。
 *
 * @note 所有输入指针参数必须由调用者分配、理和释放。
 * @param customSpan 指向{@link OH_ArkUI_CustomSpan}对象的指针。
 * @param onDraw The callback functiIon for drawing the custom span.
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	CustomSpan_RegisterOnDrawCallback(
    OH_ArkUI_CustomSpan* customSpan, void(*onDraw)(ArkUI_DrawContext*, ArkUI_CustomSpanDrawInfo*));
 
/**
 * @brief 创建{@link OH_ArkUI_ImageAttachment}对象。
 *
 * @note 当该对象不再使用时，调用 OH_Ark'UI_ImageAttachment_Destroy 来销毁它Y%ImageAttachment}对象的指针ImageAttachment* OH_ArkUI_ImageAttachment_Create();
 
/**
 * @brief 释放{@link OH_ArkUI_ImageAttachment}对象占用的内存。
 *
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @since 24
 */
void OH_ArkUI_ImageAttachment_Destroy(OH_ArkUI_ImageAttachment* imageAttachment);
 
/**
 * @brief 设置图片样式中的图片数据源。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImaogeAttachment}对象的指针。
 * @param pixelmap 图片数据源。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetPixelMap(OH_ArkUI_ImageAttachment* imageAttachment,
    struct OH_PixelmapNative* pixelmap);
 
/**
 * @brief 获取图片样式中的图片数据源。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param pixelmap 图片数据源。
 * @ret"urn 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetPixelMap(const OH_ArkUI_ImageAttachment* imageAttachment,
    struct OH_PixelmapNative** pixelmap);
 
/**
 * @brief 设置图片样式中的图片资源地址。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param resource 图片资源地/。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetResource(OH_ArkUI_ImageAttachment* imageAttachment, const char* resource);
 
/**
 * @brief 获取图片样中的图片资源地址。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param buffer 图片资源地址字符串写入内存的冲区，内存空间需由开发者分配。
 * @param bufferSize 缓冲区大小。
 * @param writeLength 返回{@link ARKU<H时，表示实际写入缓冲区的字符串长度。
 *     <br>返回1BUFFER_SIZE_ERROR}时，表示字符串完整写入缓冲区所需要的最小长度。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	ImageAttachment_GetResource(const OH_ArkUI_ImageAttachment* imageAttachment,
    char* buffer, int32_t bufferSize, int32_t* writeLength);
 
/**
 * @brief 设置图片样式中的图片宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param width 图片A宽度，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetSizeWidth(OH_ArkUI_ImageAttachment* imageAttachment, float width);
 
/**
 * @brief 获取图片样式中的片宽度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param width 图片宽度，单位为vp。
 * @return 返回结果码
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetSizeWidth(const OH_ArkUI_ImageAttachment* imageAttachment, float* width);
 
/**
 * @brief 设置图片样式中的图片高度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param height 图片高度，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetSizeHeight(OH_ArkUI_ImageAttachment* imageAttachment, float height);
 
/**
 * @brief 获取图片样式中图片高度。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param height 图片高度，单位为vp。
 * @return 返回结果。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[ImageAttachment_GetSizeHeight(const OH_ArkUI_ImageAttachment* imageAttachment, float* heigh1u设置图片样式中的图片对齐方式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param verticalAlign 图片对齐方式取值为wl 9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	PImageAttachment_SetVerticalAlign(
    OH_ArkUI_ImageAttachment* imageAttachment,}l verticalAlign);
 
/**
 * @brief 获取图片样式中的图片对齐方式。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param ,verticalAlign 图片对齐方式。取值为wl 9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	UImageAttachment_GetVerticalAlign(const OH_ArkUI_ImageAttachment* imageAttachment,
   }l* verticalAlign);
 
/**
 * @brief 设置图片样式中的图片缩放类型。
 *
 * @note 所有输入指针参数必须由用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param) objectFit 图片缩放类型。取值为|9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetObjectFit(
    OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit objectFit);
 
/**
 * @brief 获取图片样式中的图片缩放类型。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param objectFit 图片缩放类型。取值|9中的枚举。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetObjectFit(
    const OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_ObjectFit* objectFit);
 
/**
 * @brief 设置图片样式中的图片外边距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param margin 图片外边距，单位为v.p。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetMargin(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin margin);
 
/**
 * @brief 获取图片样式的图片外边距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param margin 图片外边距，单位为vp。
 * @return 返结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetMargin(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* margin);
 
/**
 * @brief 设置图片样式中的图片内边距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param padding 图片内边距，单位为vp。
 * @%return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetPadding(OH_ArkUI_ImageAttachment* imageAttachment, ArkUI_Margin padding);
 
/**
 * @brief 获取图片样式中的图片内边距。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param padding 图片内边距，单位为vp。
 * @return 回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetPadding(const OH_ArkUI_ImageAttachment* imageAttachment,
    ArkUI_Margin* padding);
 
/**
 * @brief 设置片样式中的图片圆角。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param topLeft 左上角圆角半径，单位为vp。
 * @param topRight 右上角圆角半径，单位为vp。
 * @param bottomLeft 左下角圆角半径，单位为vp。
 * @para^m bottomRight 右下角圆角半径，单位为vp。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetBorderRadiuses(OH_ArkUI_ImageAttachment* imageAttachment,
    float topLeft, float topRight, float bottomLeft, float bottomRight);
 
/**
 * @brief 获取图片样式中的图片圆角。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param topLeft 左上角圆角半径，单位为vp。
 * @param topRight 右上角圆角半径，单位为vp。
 * @param bottomLeft 下角圆角半径，单位为vp。
 * @param bottomRight 右下角圆角半径，单位为vp。
 * @return 返回结果码
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetBorderRadiuses(const OH_ArkUI_ImageAttachment* imageAttachment,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRight);
 
/**
 * @brief 设置图片样式中的图片颜色过滤器。
 *
 * @note 所有输入指参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的针。
 * @param colorFilter 图片颜色过滤器。
 * @param size 过滤器数组大小。
 * @return 返回结果码。
 
*     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const float* colorFilter, uint32_t size);
 
/**
 * @brief 获取图片样式中的图片颜色过滤器。
 *
 * @note 所有输入指针参数必须由调用者分配、管和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param colorFilter 图片色过滤器写入内存的缓冲区，内存空间需由开发者分配。
 * @param colorFilterSize 缓冲区大小。
 * @pharam writeLength 图片颜色过滤器数组的实际大小。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'!函数参数异常。
 *     <br>18BUFFER_SIZE_ERROR} 缓冲区大小不足。
 * @since 24+	ImageAttachment_GetColorFilter(const OH_ArkUI_ImageAttachment* imageAttachment,
    float** colorFilter, uint32_t colorFilterSize, uint32_t* writeLength);
 
/**
 * @brief 设置图片样式中的图片颜色滤镜。
 *
 * @note 所有输入指针参数须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。]
 * @param drawingColorFilter 图片颜色滤镜。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[ImageAttachment_SetDrawingColorFilter(
    OH_ArkUI_ImageAttachment* imageAttachment, const͂* drawingColorFilter);
 
/**
 * @brief 获取图片样式中的图片颜色滤镜。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @Xparam drawingColorFilter 图片颜色滤镜。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	[ImageAttachment_GetDrawingColorFilter(
    const OH_ArkUI_ImageAttachment* imageAttachment,͂* drawingColorFilter);
 
/**
 * @brief 设置图片样式中是否同步加载图片。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param syncLoad 是否同步加载图片。true表示同步加载；false表示异步加载。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetSyncLoad(OH_ArkUI_ImageAttachment* imageAttachment, bool syncLoad);
 
/**
 * @brief 获取图片样式中是否同步加载图片。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param syncLoad 是否同步加载图片。true表示同步K载；false表示异步加载。
 * @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetSyncLoad(const OH_ArkUI_ImageAttachment* imageAttachment, bool* syncLoad);
 
/**
 * @brief 设置图片样中是否开启SVG标签解析能力增强功能。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和放。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param supportSvg 是否开启SVG标签解析能力增强功能。true表示开启；false表示不开启。
 * @return 返回结果码。
 *     <br>{@link ARK;操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_SetSupportSvg(OH_ArkUI_ImageAttachment* imageAttachment, bool supportSvg);
 
/**
 * @brief 获取图片样式是否开启SVG标签解析能力增强功能。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释。
 * @param imageAttachment 指向{@link OH_ArkUI_ImageAttachment}对象的指针。
 * @param supportSvg 是否开启SVG标签解析能力增强功能。true表示开启；false表示未开启。
 * @return 返回结果码。
 *     <br>{@link ARKUI_>操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	ImageAttachment_GetSupportSvg(const OH_ArkUI_ImageAttachment* imageAttachment,
    bool* supportSvg);

/**
 * @brief 获取文变化信息中的待替换内容的范围。
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放uh对象的指针。
 * @param start 待替换内容范围的起始索引。
 * @param end 待替换内容(* @return 返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	_GetRangeBefore(const	* event,
    uint32_t* start, uint32_t* end);

/**
 * @brief 获取文本变化信息中的用于替换的属性字符串。
 *O
 * @note 所有输入指针参数必须由调用者分配、管理和释放。u'对象的指针。
 * @param descriptor _Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	&_GetReplacementStyledString(
    const	* event, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief 获取文本变化信息中的预览内容属性字符串S
 *
 * @note 所有输入指针参数必须由调用者分配、管理和释放。u'对象的指针。
 * @param descriptor _Descriptor}J返回结果码。
 *     <br>1"操作成功。
 *     <br>'"函数参数异常。
 * @since 24+	"_GetPreviewStyledString(
    const	4* event, ArkUI_StyledString_Descriptor* descriptor);UA
 *
 * @since 2'	~h;

/**
 * @brief Dispose an object of the text layout manager.
 *
 * @param layoutManager Pointer to the~1 object to be disposed.
 * @since 22
 */
void OH_	_Dispose(* layoutManager	,s the line count.
 *
 * @param layoutManagerx̈9</b> object.
 * @param outLineCount Returns the line coun~	Ɨ}	.	22+	_GetLineCount($* layoutManager, int32_t* outLineCou{4Gets the rects for range.
 *
 * @param layoutManagerx̈</b> object.
 * @param startof range to set.
 * @param end Indicates the end of range to set.
 * @param widthStyle Indicates the width style to set.
 *     For details, see the enum <b>OH_Drawing_RectWidthStyle</b>.
 * @param heightStyle Indicates the height style to set.
 *     For details, see the enum <b>OH_Drawing_RectHeightStyle</b>.
 * @param outTextBoxes Returns the array of rects for range.
 * @ret~	}	.	22+	_GetRectsForRange(* layoutManager,
    int32_t start, int32_t end, OH_Drawing_RectWidthStyle widthStyle, OH_Drawing_RectHeightStyle heightStyle,
%    OH_Drawing_TextBox** outTextBoxes	>s the glyph position at coordinate.
 *
 * @param layoutManagerx̈</b> object.
 * @param dxP5	$X of typography to set.
 * @param dyP5	QY of typography to set.
 * @param outPos Returns the glyph position at coordinate~	ŗ}	.	22+	"_GetGlyphPositionAtCoordinate(
   ~N* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPos	line metrics in	layoutManagerxa typography object <b></b>.
 * @param lineNumberline.
 * @param outM 	x3a line metrics object <b>OH_Drawing_LineMetrics</b>~	ŗ}	.	22+	_GetLineMetrics(K* layoutManager,
    int32_t lineNumber, OH_Drawing_LineMetrics* outMetrics	Bs the character position at coordinate.
 *
 * @param layoutManagerx̈</b> object.
 * @param dxP5	$X of typography to set.
 * @param dyP5	UY of typography to set.
 * @param outPos Returns the character position at coordinate~	ŗ}	.	24+	&_GetCharacterPositionAtCoordinate(
   ~N* layoutManager, double dx, double dy, OH_Drawing_PositionAndAffinity** outPos	Uglyph range produced by the specified range of characters.
 *
 * @param layoutManagerx̈</b> object.
 * @param charRange The character range.
 * @param outGlyphRange The range of glyphs generated by charRange.
 * @param outActualCharRange If not null, specifies the actual character range that fully defines the returned
 *      glyph range, 6which may match or slightly exceed the requested range~	ŗ}	.	24+	$_GetGlyphRangeForCharacterRange(
   ~* layoutManager, OH_Drawing_Range* charRange,
    OH_Drawing_Range** outGlyphRange, OH_Drawing_Range** outActualCharRange);

/*	\character range that maps to the glyphs in the given glyph range.
 *
 * @param layoutManagerx̈</b> object.
 * @param glyphRange The glyph range.
 * @param outCharRange The range of characters generated by glyphRange.
 * @param outActualGlyphRange If not null, specifies the full glyph range generated by the returned character range,
 *      which 6may match or slightly exceed the requested glyph range~	ŗ}	.	24+	$_GetCharacterRangeForGlyphRange(
   ~* layoutManager, OH_Drawing_Range* glyphRange,
    OH_Drawing_Range** outCharRange, OH_Drawing_Range** outActualGlyphRange);

/F	et linear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by them caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param linearGradi_	OH_ArkUI_LinearGradientOptions$@	}	.		0	ParagraphStyle_SetLinearGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, const OH_ArkUI_LinearGradientOptions* linearGradiqypT	linear gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the cajller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param linearGradi_	OH_ArkUI_LinearGradientOptions$@	}	.		0	ParagraphStyle_GetLinearGradient(
    const OH_ArkUI_ParagraphStyle* paragraphStyle, OH_ArkUI_LinearGradientOptions* linearGradiqySet radial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param radialGradient Pointer to thp	OH_ArkUI_RadialGradientOptions$@	}	.		0	ParagraphStyle_SetRadialGradient(
    OH_ArkUI_ParagraphStyle* paragraphStyle, const OH_ArkUI_RadialGradientOptions* radialGradiqypT	radial gradient of paragraph style.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the cajller.
 * @param paragraphStyle Pointer to the <b>OH_ArkUI_ParagraphStyle</b> object.
 * @param radialGradi_	OH_ArkUI_RadialGradientOptions$@	}	.		0	ParagraphStyle_GetRadialGradient(
    const OH_ArkUI_ParagraphStyle* paragraphStyle, OH_ArkUI_RadialGradientOptions* radialGradient);	"STYLED_STRING_H
/** @} */
0sLxV{pTl \Hzy}$		 Inv%݄)Q<ת<t:}WSQ@RvvUBF)Nms.Ks=KytJڵC1kQ_ڝxi<܎'!ụ[*xi\qWJp~tNxymlpqV|OoP=z&%sSkMOɦ\ċpEJEФRT]ITvHKE$]zȯmPGѤ6U
tu]+mV<y]Zo^e;gZٳ}osuk04yF;I	k]6KݤH(jE<>'LJE*UK$_ dHVO@jFϺX/}IːLΎoJve"L=NY#R05ozNjv*Q
zUOW;<?,EªN3jςopJXKY6Oڥ*ʖ}S*Q=*5Y5)KI@D'fOb沃SYXgRӮz:xv2o Z#` Dl1cͯNf}`tIl1!|5B9VO̷-]\5!p9Sr!
IU$O+R1v煬ՓQIMeI'bQ:#O
$#MSJգ|t;%-R:;8=CYJΖ9lLV\v^[e+OcQ6|>y>mf'F,ԩߔ7M<?-*Ź&
^׮jL:aUZXa33=T=~Cٸ^EWp"ҔjoY_(.
Lul9Qc0_!'b&\hFh<
&~1*ʃ3_WT_g[=_}2LK̈-,mcbgˡutL	݀G?eX"C_)Id< 9r;hIN`ġqxʙ|heFܚnݐn q]B#AO{Tۘֻa
^*؆,6S1fi풥e9I\UB54$l;fڕ[f|~6q5Ѓfs`1G/2TC\<6sa_yW"l8 [ f>نBP^ZW."pc˖rXS}j*siM1A}н*IfѻX[NDI(bW٭u+V9A/`:a5]u[0Րմ2NX5rxk=ҙ≵0'ZXxB%6^Kp|P07.∏XH{&jf@R	Bŧ7R68k1m nO$6acqLCq+03dB(~P:6C恦K	:vXZieJ&ߑ6QzmPЅډB1O+A[ئ-P :<A7ĉXIXu.{`DO\1[%Nv@+mrqNZ8iJ.]PWht(	$rX	tn00FU0l:+tar	@>5ȩO:=dSwzPe{2HIKA[+0cB
ayS 2ΆyCF+s(wC%}EX7elLPE<YI+7Qn6j~Ajk
H=j2dpEgs綵Sm{ާU'=TdL2&$"'bᰪ*RzO?LY=K*w편'j3Qa~7\ۻrDhNp;vÈWvA~
FRN&	dbN3ya%{HkhS)2?B&7OW+J{XG~;L	o'&ԗS}X/51\⇈ۨ}uhpfk}Ԣ	ebp/
4
xt/.zCT&y8!^ Tt񜲑Aðox-N1DnxzeOD",2/ٲEnG򐘺*5*ca]f|_W`\ێG#XՎ>cBҰC*;RR[I4H1L'71jB&2+iP\	ҵ,|rT1gM0;p!x{_$4V3fq7X&6#Dóx(ㄋanx+@5"Jcc 7b=L|\\AX|>Q8)&I(ODA-ǏAx{NA/xv6?xƼY;ɛ'? ʗrO? (EQd,q,^<37)o/2oTg<[ *xvmjiq)hM`ڼ:)eɊml~
 gxWol`)Mmǀ6Dhcv1ǻsvϻ{gcUm#敬"VJ'Z#:UUjԴF(U}3{cTHm>{o~ܻ]| N>p+!%+p{s1^	[nA[Q?˪b2]k{ҭV|mp'D;[ZqKQfƹ."Bg-*\jeI&L6fr^)c	O֠mGUҳ4>xKu+\p	ZnqhS-am&TШ<pARpr_&5`.>ݎEɄ&xc0StNrril'EiAmHmՙE8nt&1aM0}L^tY|Z:ѩУaqToG,xA1 q:%ar3GGK:?I:n*r1dgG}[z~@k==S &H<~c?Ho\(TyKgnW؎))	2[WS;a!_ ,8<	<#]d)i%]i{[	\z_NXxc*99L{asd#wyp빶4/Zo[L;at)
}	uzX6_*2%Fu؉8#tP^UA{4woh^Q",nG%Yus*-"Lj$7t\F[nICCۨ
hum]0Tfo>!:01L_zbTXX,#%"&̚IW 0GKavnǀJ#D3Ÿǝ&%[e9B<(J`4힌%d(@-aUOJHO{5F7OpZ:Xbы[^ib&2d͛)3a:C|gQᘟ	,tc!42ғ'1,j|83TXJ6P7a$Iu0J4lkw*im]U@ϫjah+]	AIS,7QKHx~^Ч1_ϓjph]ػm{w-qh[W63{JZn
`Wd0sB> Jt}Mf2t",v$6祢&OkǳH͸Tns\j:p{2?<JiDCKjOT)ܼSDV9x`q!ǠF\|d1G6y+-OCRY)Z-h a [',GwIBمݱq=I
94D4j)		}=MSIpdwثcZ.I-է0qdWN\o\Mu6S.4?\./%tY㪝ՇS8}TK9L[_CVw=dO9%?X	+O(Z^r(OF>ixt%)/u߼X_oM[E/n%	B3;ȟFs9d>{ÃCAښU]K?G:?
|O>'w,ŰȖ&yuǞAS/e^ylȿ҄qoX.d㿊#nA7BufdsBsܔ$ǔE<.qo}s~FJCurcR}4,맛]O~^/&I?:Ad"F*f׳du,ysE2"sdSP̹s/gϓ_`]N_xMSMlE֔VHni1!QV
BﾵGZ
\X*Pԃ8=p		G"qE!,{N_'5L+LBAhVg
+B=VKgD>yƽ2nwD0]*>Dx,d:jPCT.EFa
\B1.c$<^3:;xnW]!j*Kt/Tlavmqrvg" ƺ?nL|pf}zv+mx~yukα%a9ҞAe&5vӷUd7xC*UpGcqR~bΖa;*PMkb*4x6m{>.cS.s}ݷoJ62~iar	=T`l^hٱ	K;Y~E;QzQvev߰kq(CN65eÕ~*%N ye9r0iCĴbEy)mX"[;fX\5Z+շWZka٧IGgɮ2a|e?y<|*sN&)+"(&Hi՞9Ie'&?!+|Aǂkj慽M_c(@UO7)u]b&)gg\鏥@/|ᛮmxOcܣ$_?ccLȳMLٯ[t ϑ~gSYdpzY{Fܶ̓DJLn#LIEv6_ew}4-л_X-vqUʞ̔l;};79^}r?xW}L`\c§r`m8ȁC.ssZS`xZ;XCb9JI%nՏuJ*5Jq*Ujٳ6Hnw{7}!O?YBfؽ~B#ٍU+x`bX:4#ϜW<

7hKu}}NQ+CjX1[5tZT7lʦi)7'ܞhi|׆XbO7\{p*pWr7X=T?zDiDRntsu|0} >А3!dCɡn;/Xu<~q6zYo$@{zeMb̺N-dX4j6WD)4lԞtJCȡmEz`ur-JujzӦF/<>DalMٹc|/|u.;E3r6ՠC4r\#Px8f8vc=l<~ݹdC=$JydXNSFL#F!;frt(B~g{lj)h.hQ+"Y3vS\2r]*A6UpgZSfYFHe6Sd䲶W45оͰfP69PUG#`kچܬŬpRQst#{O&@	D"FDR2(C4;s|wd, Ge	a"QCW-{:bXH~2+V#VQuے4Xz Yʔ,Z`b$Cթ6NŞRq$ƱE:aFLb=bU˕As%P\D|p}baRSD1V[""[D5n<Jg
{AQ-a#ͥ}S;WRL⬩x~ݾF^t)vI[iPQ\cC4}@TL0aQH4pIIFRHɸx\db-7U>˗7规W+NC)%)zƫ[gfQ!a3u]rċ:^\//SBb
*;	W!UTL=_<2h;̔jù)Ƨ˥d'нc#c=3TPLq=cczBMKgR"ýsU&q1!3fT#/|Xf<Rj=%WB\;2qE}_k7-*8VAnOW@|
Rg`!!Ti?"oLE	WC6Sx:\Gy/mXY!XT7C42QuŘnC9]iػlYy'AIVRAz{O%/}Уa02r]NFij3txD9y&亣NK~C?v}c;)sdN䑑BeY:$?$:ņ5uummcΞ~s]TcCb8BĜH&Ql mUp^oyLλF8-ٲJ>:hY&m"Ѧ>? ΃ֹKr'lvηM2<Iaa[ޜy<Oo1WZ')>A8:E>|8Is$)Mn%Wߝ&$Fā9~;s|vgLӜ1=O6&ߟ#D4;{1БyT%ΓҹqYtMY>,~wχN9/=QxA\
Z/L|'h4nAroqxһs'gZl;vi](7xuVkL\X0<s\kl~1`< Xf_]66$&LǍj:JU5MRG*ij֖"sV̙33ߙ=UTݺjDe5fgZ=Ipku:=b5koKk1sڷIxѪѝ>j|ÂmV۰`N`ٜfskL&%R-:j߁"f(Zf-X∂-zOt{i͝VG0hZ|w6ahs=[8ֆSپp/~>˞_/?DOs/>72՝_v/'|3+o);mWt0~
d%~3~v0">|̢ߤCvοRy[	qaM:րNv;`Tu9
2(PgrDB; ?4@i^pqAe`D6c0[o仟Zc~CMAsIۘo7W"7;{C%2y
z14bA.a؈
HE9H»`%%gȓv,C{Kd(eJ^:lh͸pN%pc˨'Ki>JKIlH~X -v\j{()aG|~\؋P/&U!7>z.IOB^A 5TB<`WQVC,=JC KJ5T50ħRc-pIAaf(	^v`9=^]DS-AUEA^7pxMf:#t$0MDߘ&؂0`i0ffb@#pP{J4*f3=8tby/dQJ3Z[d{gC6rjԟ$7'?H.tȫ	N	i>&qD)R2uA,0.BB%'hZ:8.@Ӈb:^h,pL^-4VV
LҐtthS}Η- WT.F\ROg!;!MT&nFhC$.=S{]njbQ*f9(Ғ
BE<Ė&,(K@ET~Ik|94$cW	WMql]12sw)7L%vk!C׮Hr]ԯ8,adC*"^-G@(  ps$"6M
"үq6/
6~*8x޿-m+zb$^kq$r'$
Ъ
=[fT'`LHX&C
!!]B3Vm$I$7-7@DR8ȖgnNChƺ@Z)8>pVnh|N0PK~|¹/}^&YҘ\\S> 6,谹t#(i)̺HF!OӐp/AE"6ITApTӷؔDtH@a#Zp%V:|%(DtM)d6;^-N'ryȘR0"2[i8eSreJfa2~;EuVbIEEx~얡~7?	PO0ng^n4ķ	MB|O6)^$ׇ-frgϰ\ 9G3p3HD:,yh`VfI249_R=_N˰xzZyzI~;pw|_ҕWyWa7=|w¦2UA#۠$U 6Z*KoK7x=KBQǑHZ[y
,%!j
n}7ڻGK578As[457dF{S||ڍ>Eￋdt-*bOi9e/KqRϷG6N
Rz)(BJ2o?{p+ȺecdFɚeڼ5#+6`s	OַA
OA>p#(
Z2ƉÜ(\a8[<p{Xa6#.YjHpgmifjEW
o|F@*TYEJ\]luxm
_$+&(M^"hh_`㓚Vb_RkQbUad7Y7ĥ5Y:sb^ׯ,R=\3`2J2RK2ҁRs3KJRS&;qۡVZR\PZ
OIMK,)Q(,M+ɬJ,S(H,JM-I-$$k &祀ܵyY+ cIx[qۆw,"EX' FEϹqx;2m4
q)h)hiM?(99&C~qznܿx2E'7|f{/74craܤjg,\p	X(X#3b/جqL( 1>kϺ}x;24ظtc!l8QP jϻ/x|ktW้~ZK%ɒ%z$[vlde-a'D)u[jɊd	fڜg+2,?BB,$XfwVVvg6tn}w}?pW> ͒$}:yzùR[G.	WmGHz2_!)r\hD.IS{MW#j$zߞ}=mm(Xʒ#n(
Ϭ!̲r5"+OD"jdJeCXWaiQr8p2=*ŕX4KZL	KjPRh\R#K*Mt{cǪɑh2$d+BKJiJ<2$20_Igs&W<=s%Β4DJeV@ƍ`XG.f759yc\I$UG `Q(HBr0h$/ ΁	i;iƦη4KфKko^<7Gic!HE	iwdJvOţȿyz%kAy%%NeWU6I*e) S_4qW!jҫ
H%}ӝNto=N
;S-3[B0hlB fXYJXfaS>ȧz\E6y%W<+ꢪkϱ֝زJE6$%IB10)XlGYShg]ޤ6Aۖ^zMʢ/_YռeTE*k̧vNk,3{fBm/ ~ }U7xeYpՈˑXhz<q֘BUը&W%(/"._aiS/UoXPћky)-+,K	\UB-7-[1 	(ڜ#DV.'|"$MK9bE5LJD0ѥ%MP\K$AY "c6URHu8X[0U ~'iD<Cƒ@TGZZAdr$Fb)sZ^:x#UoH DSi}Tqzz5gN_곁ftR')_UW7b.ւ<d	?_wWd1;Im
'Ûn=ȦjHކ+ bql:584Nwu8]0)ؐN5+6 &`91jLYI< pF@vS<=5;cT>ǽO"jN/-j,TePA݃esEW4Hӭ̉A.NLkC%RV왚>7{[ZMǥPO)SdaX'i0q,zP~XA-(9Kفcc&-:jq=eb*л{0h+kz:L);buZyBЫ\#㓵)Хo]+B.YCHZ3U{ZΝnP{=qE*M8Hd's?s$	RM2h`nC궐~#:ot%W ǎTw/74h-n@4Fg`N5J`5n#b	`)V\UKİqiblb;p"HWNEv*umzc.1++sϦ0v~("[NXy; Jj0բK:XDtc*j 2w>sG׎vvs1G 3	G%T!]Tf=Q~Y	etXfp$?OW0Y=ÁYk˭ UкSkVm S=4m,kw_ѯ'gsCzk'hbpp2R=ڛ	!ac17}XDIׇlk'KR4'o;ϙ9>\!#$63sƆG$9`Q?b/9we!5 REv[ ,<<Yt;UL&љm|>-^OeHBz3dn!ZEzC׏7襟P"Y턌ؿ u\Ff2fje^@`=G\v m2mrWMvH.FHG'U.JjXe	j$>ƐL"lx|YyKg{J7˺Wl/'3ǆF+(ktdhAbn͗X>?_p٨m&G.'z[yO&
bT^Ą7)cڜq(.4&G75ѽEtkyuN"`=FsU}$615CI@e\AA"J`"0}R,vV;kآFuyQ[$"s
U*+Y*rD"QȢIrZ[?h]R.&bw)|h؜,}5/|%K*Z92vW:=a!	GHYa&}JFB/Pp#Zcl;ssB8̬`-.ƀa+g QGZ*^id)-2K0@*f+Ί4شh/5S	wG4<\!TMWIJʊf;\B|:VKjjrY瘛pc'"UWY+`Fhf칑t&g)[t5rX7W{Xy85`d~z5C	tap%u9t!u4vϞ#Wǅ:{SCyݑ!g`댈DL	G$e	vI4X1ͳso䮹
wC6!F+>QpȍY< .չDrٌ̮mF~#Sg+a`	yyzخl<ۅO͌MƦ&w1()=(S6rgCS&y%k5S8W8CDYwИ/Dd'k
bʴF+DkR	{QI*N@"׎KvR3KtA*5%lpa":d(2Nlgr#8ⵦ؟b+WaY;R"/)^);v#aW[0HM=m]t}3
ҬA-:6{C>3:<07&;;yI=(-~R:ԻߗC)O@.Ziup4Ы쀖yT/C۫Gf:艴i#{1
>{$:ʾv!4Ww<zkZN	u@BQ9`#0@!]_:R *x#m$Nh
}	WwpӦ>I_ɰqF;lg_\7_zw"䋐+uA%nZ)T2lϷ$$/O:}?dSqN!XƋ"UVF 7X	yiǯK>ٞ}?	kJX(m554~i͙NCrkX;&/,`fZ'yf]e=\K{KӺk=Yy.$Cq&ޮkݲ|{䵿U&SX2@l_u,[FJ;#\vlPFG^,8pZbe99939!pcPn4*ط~G^XdzH,Y:WMuS:)$lClg-<5Tnl6r-ən/bꛟۑ*&MM3@D՘h}5R~БfӚ'r<9afNSJ.@-WƜ e+Oqb1	ssâ9cvؚ/@a3K[Bdk(
,EZ%~iEE_WHSJ125<a%h#"+^l [N&j+,qx\b`WoRJp0196$G-`",c8Z52]["KYrAY-ׂ%5".s45o
gLr03036:͇WUj;qt*R#l͆qXS\JihX,yz76u*ԽeA܀LCtH1Wa~%'PQ.is~:TzVW6jݪ|\v)8ƚ=e:k<dwjdq$/;gnq!71n>[κe599ULd:u쪛TSK4P$,ڒ4DMM^(h+I[΋ߊ~!
_Yџ?TЌRB.^Y
QD=EzNxԞd^𿍯U5'>6ɨO4d0w܉`!Ǭ=v~|&`rBӭ:+ї4XE4KOᷲڜC]_g[~-~h*11Bzeh'ѣƎźGqChN$os'O,񳮕qK]e]bm\|Ø)$U;B!/5!7hq:V7Ddـ&K䵑k.ǯyn.I}MONF&4v0K"{4γdjފB&kz[f7rB7"ASvZ9:<#ͱkX$0j`g."EKzP*VX4m|-w?5!mF}kIrd"EE|(}͹#n/!of|wrus33ȁY؛v5*?)M]c-(|i8֘ls_{ϩKɱXXU4[}f[1%$obDu} j&=a<r"܈,ҹq ULkMG)%^kܿ̾lF:qHf	ӳ">[0S-|2@弈ٿM=(6:A=Է]{̫C&`.J:C)Sb:7SNjo~$aR|hܦO޺5fIDIu5pՈgV`_F-So+JY!3\H'+ CoWnu/4E`ůezWSwU0TN]Kݚ DY:6Y'z8Y=oǆ]^ie7m3
f*v更S^ij82[CR,ux%̖+i|fɃ-J*S7a>|R
	XFL|X9bZJeUyCyJA,X/C醃tyC6^ Y{'@)qt3gQoH}Vga8PkL[X"Bđ. ŝ/hlC zVK-*~or^D$95Qd?%<f%f7Xě{ڼIhC'Jɾ/{qtH7ߦn5}q[twJA݁ݪk̶獪]%2YhBijMs*EH"<LXyGG8	2ߊN$e6"Xz[NnKڶLH¢]_if|r*.l_i5;cBWe*%ڋ5KlҞ_W{ݧ}lvbX=W|̊G݁Q]ɽhǌ˜"%0U."3I4Va8xM!$٧PcO4ސ᳚@)GQ'~5	YƌX3`"1"
?QPf[OtW#k|\~/Oc_$Ê.g[D7y~ZݾhJ|W6X"g`Ġaڕ~WnߵS++s^23FMبGtٲ|7pk=oW[n&x/#
3ͤ#)pIo<A:C*xbܼ43IAjjF񸭉@!9
1k尮p)uΪK141JOߖE~\/33d+zM]!9ƽ.R\d64^Ը0du%1dJa"d_WRR`m=7.Rw$h]6_ eU۠eVxCn"CtkynRJ% }_/i)险c#ّIc_MTw'wgUptdQ㕣¸_G\GH>XHqO-D-㵤zlV_%>Aq@KoA<lNtL"iNҲqI"UHڨHz5yl訖& " ~x'.o d496>K	KG}&6kFRQBgXp#O'継[״;~j?)Xo"SHѯCTa7'U}`8.Ns{Ta+xӭHI4IX
m$`wsݤ\a-X&h{7Me  *W[Hm4
uVR\ vt;_\k%YyB"&`q3|ij&6t6dHM>q'XLJs"_Jq5RhTyȾ~'H;qJ2@2d\jz'Im^0ȳG%-yͷ{::wFc? e~AGK0B9a5$PKxg|g]4>Eʶ.r abqR;x?942̍ɗPs]/a#!)sO \?!A"ٟcj3/WJܿ\P礃wRakw(1>KrD^>d|ۦ 
~f2ojKE>R=O*.jrQdx\uˇHu0,R0i5~=> 8ء5?`k1^ǇFQ\7Ɛ#׽p`t(I v4*E	?3firx-}e_cH-.#4HbqZx805ց9C3SANFvirA9<b7gYjZIb{0+'fXx~Bq /Tp/{t:Bg/lI@)≮2N.;&c1v
\?_qrԩQxZk,۸2qtN`p4S&Us!6Nq3`i6LX7Ao\GQ	TH4	6wnӰM/.5g+gtR91gH{V!YWs@Kxd, c | =?tjh
ߜ#uٓCjfO8Ǹ{,:z0g3.d'fIeP`]A@|pZUyP˽a||dnd|kOpz~TنWn%E.Om6r(q邅};r<F`Q}vRWJ4^X EҔ4. 'a&p9#2|HV`tIMmARaO#Y 9asK>aiaGЭ>y̯Fm~Ҫ0#~"ZɃ5>ʚR)Oue8c{Ue$HQvBi놱n2B>p9z )p>'T	pOu'c}ph\&α#cvz{Q1Ƌ$;L2鶬X .$|iW<Gϭ"Iu|bD%m-|.6ѱS<f˓m,?VIadR3'b9h{i\ỒCِ .lЉ!GL>20#0kF>a^ q{F*)򓓐`*)̑cϲXV|i>kù{;)*A`1mc9%RK-Ax()ɑMG&c4wB$	G2D% ع	1HSAe4F>IjT8NC<gh	lr0{/N-XqD'ҝd$z@/2 E,J$PKE5kᷮg_&3Z>xJ>]'8mV}RIEx2Wlڪ$g(܏!6Hcòs$ eHPYsZs{·I5(o|R_j[gQn0퀗4ɕwI&;0%o&pnĄ~l-ӿ$\wk]ZդQcKϤs;1&4+ZkǓ-t^24,cnܕf#%:6|ry}{>v8_QĿEuW!{A8~\^]FɻI1q6wydo_`rc (S1gAmFQůHu࿼(C*k2w&4'rԷ!MIܳe<RWCF3pmD+ox ғ+BiP xiˆ6>u!t9iF 
1$xW[oEVEUҪBڸ!)-H-5uT !ۣgٖVK!^ *!xUx恿93k;q!JvΜ~K鹌ua\cr[8'O=_4Լ:>4z01GO*gVJ>OJ*"0d0xuѤn٨T.Ņbz~vTXTi)T63w9@d>lYDIwHzC!؂X=`tw?5"(5GMtn*oTruym#X-ȧ29uדJreZ>f`BOCe5ܠe <֦{s@p-a:=O(&\PScʍv"X"7'5NG8p]O.tSɤąVO׆6,Y8:O9ؾ:[i4>LBX.TZ1d,*R+Jvܾ2yXW[ǺFzS Tݰbxtz'L[T`e:fkPRey~,L!+7xii~04+2Ax)a7k )s`m͞w*nCocR uαWV|H0rޝJS3` 5 G]Zéy31nHJlr,lCvK
'Ldw u>ـd-Hn'vK#L8OO&.Oj1ă18ͻLSG3L-rе&zSY_!4ކq`x9rfeO,SߖGX*9@k>2iwAKr&@W2׭:DU/qjgvݥEN1lTlJԻԮ4Of!L=xKqG9pm;:{a/	e d	_43)f|&7Ƙ'fziZ_9'I-0+sqmm8X.&áB}%m)鑤䙘7G/<wt?ܫ	m7	S VqG@gթuѡ^#du1N 	o^޳_1(`A6T F
V/j9_)4a|1enH$fMAQp-FBoOl	e`Xmӫ9zD$ǦP=p[ʑp7f;1״0:UL	_/NVhK<BiT<d)yɴdcg-9=RP/&_qi]|E@qJff&.	MZB?v5R2OWf S76N/\Tv⡺Dgx6-K%Kj'<%1C 
Px% ҶIo_d,D_*14MREx\	xSUtMMiӤR$M744i$m n)(
0;QQF@QTAgљ@DPA%l{s={{GyCܮMqI΅=>jSC=;<	ގoIܞvo2}=%s#R=ݽ+I*OxJYsMѹSKˇy:^(U"$ӣ?Jyk|qY+-ad-qBB/PyAWTK#'/&za^uI5l9'O.G	|P5%-䕴FؓR:DӤG*=VZBd~6rH
gBաఠE0OЕ?(wH,DHC0s+wGӱ0+		!#%㱹Qe0d3ތ~&#?hU2@+e=+L]],H
%P,-1K3`<˒.*ߡ^rx(TʁA
S)YyX3l2 *ml1vxP͂zR؛=fRM9SRfW1S5
#2%Hdvg`?" Ǐ[;&ϵ3WJ9@#?Or(b8iBkfXЙ+I9ᶚWx6U7/H
a4RヸxJ?o4XZW|Z+s$$001#Qw_YѰVyxob.suS_J3S91CER!GsmQBt;aSX#yHc@Rxr7r	39¤Č &8fov2/-@4[YCH#ڭgSI-sA=%15$rvie!'N+/_Fr$|NQsc+Kk	LG?=s
!3>_^?陞BO4`FSYHRA!_DMIaHq)jĴ"ptE;T1fU꣢ߙ{+L[up2):4e`}LU%Z
(c<W)dΎXjBBcSWlfs]mʷǥPYe|jT3D?cvdՇ1'DΜ*OáDp<<19)Tsb}E
"RЅzM:h-Q1R79!{0 NJ`bJŸ0y
_iR8b^faҚn4]S\߾g~;gpj"Ucmشճ#3~[p6v\jD
fNt170WiRkʫx~j0Ps<m1g=YjP%Sԍ͎JuuNG,<qKr]2pN/TAN'^Wsn2EHAg7rjL
(rk[L5̓VaX󸴤Ouf7ˋ6.	U6Z[gkJWgrj4{vvyVql9&i"'&ʓIAX ;)%d]c!\DEjVt~W367Y#șO%py Zڔ͵؃rcgÃtC-WUum?P[5{;@ܟ1U;s*'Nf5nb5:,fgXfq)UXfRl3FF[9wfѐBƓAs kS`qͤ;oN'Hb՚Mnq%3Q窸\J9Qk;\KǡRj,
8QbrUgsz'0*o{ L6V\͟fnt= ;rD)	4FS:m55]ֶj/h鰘,=r*"S=
7-ZmEtBh}s5O(`W'u:9U8kii̒`mtعZߺ'Dj{h,^ҧ/zLW,DDCjotl.L{ĥHl1;=1m? _sŁjC3)zk/\@\X7肓􎁥˲)q	O 5^{V@"&yl1|(ZWt+{2A&WVJBe+`<J:8Qr}4d8ylw nN;[=,{},TÃk]5˙8y0wmzCk[˵5RN.=D FnRZ?A~p.7P]"'5SCo=<G"2NRk_9@Nxb]'^4,Y~Tj?bXrX[hc<>1\#zcg<b,Y}8lcpH),&ے`K2X	/=923¼k|1\|YeBľA7T"40.gbu2̎m?.ggd1`ao''8G=iVy5̓Ӈh3*6GgATp*yʋśrAt3>Oq֖ȹ-+}o&g$3@ɂ`ȕ<\V"$oj30}t_Om@\][D\zNxl\y"DCҬu1rLӓ\π{Ϸ⪀??lsVxK`ompd[-ճKwMGؗҗ<Ky!4IpMQ<#5yrHӭ6[2܋z{.] vM8t9F\@FyL&1 A1=MLcqlݛ(hN݌
oO.tobG?AqTl_J	ʂ3a`bO>ӁO_/J|=$tә&5{ 'SZ -{1ν=Ҳ3&(7o./VzNTҽm[oSG;d޺_iSB Tm5ZnLmlUOTkv@]p08t Ha!|bPedttV1^]wzF:pT"RQ3쉏% XYx7>hJ0Myc8Gᱻ2Ѐ}(<Iq&E[»7.W!|CsH_f@ߑ8{HH8nΡCcٟhO ^$vzDrx!d
]WỴ^{ˇU$8o_Ka)_6UFqai(HEʸܖF!IZ~4T)"Y_#ڀ ;MqGb#Mnv;]-"+["x2J.}x0E|i9c"xOw,T
=w6z<J$1<:Խxȓ~#'?=.+;M>	]gȄ*pB	/ȁWNd*txd	WNfBҩ\}lJɶSYp-棫b7{g1,a0GEY.TObJ~V>3LL%CSi)RW`!vl@n.\wZ	ugʺ@t1VtMt>qѱa5Zu&Mĕɇw䌤rZ9۫8-BYkĘAU&rJϕ,N3o(aQpg:<oɧ~s|iBB
Hveklc\r:"y b|eMUp]N~Q #o:Ta9i:\cru%|LoBoW
1-P"Rx +˔@}ީHxQ:巿@9\J
*~R4V[Ebkv3M8{/tǺ*,zŜ_eToq2$컘%
àgl5?P|	sA{WgϢc8v).姩FSUTZh9judj.ӓx"£2Gɭ_sRp{{:jil16XjݭZNNcu_{}I6	7y7*8M>`ЗI`|]_A28qY _+ޮ~{gw{J+yo2~ouUW3Uӯk1I{w-	V^_*W^mZ9t5s@߷$7
oע&U8)@5JnC9{۵fk/ߍu	t5Jm5U7tew|wb{_G}ׅu5_@}%Ʒ\&:rų{yGxċs\u#SlQgLXpCQ)=Ǧ"y#ٮ'(㥮2I 䌚x3I)CxM%wSƤVT҄7eeqEvjuڹHPv u<h
6Aɒdz,"^AJQ$VPnJX=UNO ~\"JBo})gEK)SF.\_݅%H4V|KJ+po(ܯn쭴 [2LxKq3!]ܖJs%	Qh<VM&%*]fZ!T]`	J"̡	C9CHF(jtAZo$+ņ'v_1AdKHIi#oAd@kW	B&013>_ft`)4H!i·B^&հ8Z2:sB!^O5u0#O	Il]ߖYFVβmC6Wİ"PIoÆ84㈌Dj񄲈l7CAK9uN<捧=E!BK93I|LoCS%h灾"ǧYldsHf>H 2}gL,1o00193_DH}D$#PN$wElCN`HQ<ު2=Nw+gX$E.dƕQy4&"&EϨI~1eL;|2⣈໚D['>U2LY2!,QmE,~2pi=JXu,P	ʢPF|9<B kG$!k*gkZǣ4T^F8|C4#IBi`kBiԄ&rP|њ*ٚ. M5UbMzJ BԘޕ}|w°$OY{uɷ3Pbt!տ8#ςr+G~ fpӕ}0
SLX@rHQ+GPTd!B@::~p/gS42j(m@׋dZ}oq-"/^	T(!CB_"B!%PZkO$L~,l_DDf)ҚĨd#҈	1wbӈRiD4"K'*}SH'|VTLhX"?|mbb)w9K\H	HPZTNKb]	ܟ;|>eGq6aLY衿롏[W1EoP0e)l=x97|u!SF s
axA7|#1^k!SF 1*x{}eA&m>9I Y	Hx{}e>r&M>]wx~l
EEEM67ԳOpg4\qsriN-d%7?gd4->VnIҌ05E\ .5<x{}FKj'L֫ӛ|fFrK'WK0O֯ӝ|^M!(hR-aY74a=_c;'OТ1['(55}NWZ.t'LO4՘Qo_ۻv2cnF:9driN-3M&;vN^ɨ0Ypړh&zBsLY$W9١*W7ٻG+(@(3=drbL}em7kLh6krihyFjBYbNiBfBqjBITa:9p59%6Ϙ 4x{}JL
&M>]g3|dzɆꓫ%˳)Mj9lr}3f?E
%[d'?yBkm5KSJ22S+3K2T| Q /RКq	>ѠRMNOi()g)QH/)QIM+Q(L(Сh49Szr>ozɥ:P9u^mnCQ<ϔ9?`	k8j@PQ7ٻG
 \X'oט;j]0/%攦* C8U&2Of:9p59^gL Ӻn1xe>7N 2Kxwˆ͓='O{rC nͿّ7v0b2|ݗHwį %0Hxҳeτ&m5 y
qx% yЋ|@FFE;[Xn%x6e4lN8d 4?x6eL&oqۜp Nxn^x6em/ˆ69v 8x* >h3>NDvRJ؛)e	@x o *t#C0P<PE\Xm acxt|z|
encoder or񎓓y or}~mbildaw`A6*ԇJ3[{;
_x T *t#C0P<PE\Xm acxt|z|
encoder or񎓓y or}~mbildaw`A ;9L6*ԇJ Control modeEx|uL7,<u v,	5xOAE>VH4 d')nhM@<4,ФFcp21ƃs͋	ɐ@0Cp/muT7.O祝@-GF菩vIѿw8#pcnmT#p2'PvsΤy*󦙞Odv	$:+qr$҂ȧӗWY(Z,Y4>q.|bn=J}cJі;SaRv!ISd
CxT7\NqsPj&X^Ng6Ul*ل&MX_7Z
}wkZ5_Q5n3X\%i`m '*6Xe&ϝIlGO,c[V`R|A,/7O6(>l%*EÝdg%c=JtvED Ԙ#$b͙䉯$ar	j;$Ju[\VQ6UjAQe656mc6e!*rYl]s]zɋq]L +RP![aamº!˄m	,KKdº	!/	Tivatd'7<FύO*?"'HZ(^ᨐN0}Q9 E9hA:dVv }[#"eMl/.IXn&Zlt)Z+]X+wbϾ3 >uks?~x|yL+52SRKS2R@|dT=.ͼ,\2d7(,1ߡ|r.W8x7+N65c&Sb	K6;ֈL_4y[E<
EPkSR'-^vɍMZydf*Om68.ɮ&6<%Ǵy@y'd2

:o^0<-fnLY'׿ oTx$ 3;PT=O&u*]{>GxqyL&/Pec)ZxC=#pO?@Hf^IjQ^jBN~BRfIQbI*B%cSTd#B]@#8\KS2.a. if`K08{#d!\C͢K+&),P(N-I-VOSH٤V7W)8g%*OvtUp
ussvqs߼rd
'Zk' l+n[xqyo7?4 @uxqyL&/Pec)ZxC=#pO?@Hf^IjQ^jBN~BRfIQbI*B%cSTd#B]6ƛE-VL>!SYP[ZXV7W)8g%*OvtUp
ussvqs߼r 	4E<xqME9%y
i
%
))y
y%
%E
E`ILyO~'1ٚCE 7-(7PKAkr>䓼F,: s 牮don.! [K%--N-ڕS $_!"5$,7f'i,ul5d7H23&MwĘ@c&|?lE7}!CE¯ x*x0 F6*%78PT='	F~*]{Ux}{FYo+ؼbfS yx5ͱJ@P(DtQBAL HM. E{NBߠ/(|\w֝`9}yw[sK\i澎|{n=46XCS;Aȴr\R+%'>CjZcs$)1Bf(jh,0	!tckB$@i۞М
$jB)C]a4aC$iw@&KEϺ[gK6xoEETi7u?l'Ze];q1]Qm/ !8pLKi+Hp̮cG3ｙLӿDjAєvrt]j2VVC`5*cm=$wd?wy^ܖ@l&D*Ud|7?c[ǆY]pkFTba])	C==Lb~As
lǪE4,3%mg@VQi4{nT˵MЮ84]L^D^k]myze>z\igu\K`r=.|)C_׋Tc+z14?.[)7>x7)G-g46[:tm|n9mԠ[w{Jm(.놉Z0z0v9O"n,!:.xO6tABEjV`rA!v[4!9j5VslATT-T7 lc8*'#C^nGwMVks6$K3ye/WR٬[vueb<.ԇF;FpDQfsZ֕\	?ڧvnkb$@c-S-s!r7?fjzh:CT7^FB6KbKK t8|v<=[?<!֔Z;8)ؘB+%%Q7E84~~QC<rt>}B.y"(5T퍁D	dJOyGT,2eSfLq6LT7|+0^bIXlFb%,6C!b.Ů(W
	ez
TΒMbH\IR
{,L4]$L-"S4K{Ca8M%N+4"ԥWq+4]4,
4&I] sbQ΀/BQ4)r3PFv.*O^.Rr1E2ۃa)9/Z$77?=Iߓln)LG~
LŊawRT0m[1:SHcA94VwdHcUP494z_`ZnupȍÇtAn$,#'/"n@	="Q)P~D OE8x-7{Zo,qx[/eox;vy!
'x$Ml1%]b\NBYfJjBJjr~JjB~^NBiqjBZ~BqiQZbrB.PRoǉ!A~nA!Nڼӳw: #'D-xy5$nUNb9% |
X=xnfd'/Pez on
)=_xAkA BwQj%*V]ku:;d3̦=y7/ŋx๟3I[Z첻{[a~i!?YY^).SXr-?zs=anKUdKWd.c=0LaZB:FPE'tYB"D`qРR,b-m`,]dhU`qixܚt^N+hy~ws8Ix,l8[c}s@$I-M2źdmGT
BXfcUs_սV3^8Iq 9\Xb2S;n00~.TNk]D3˰3:j+4jb\0V"zh7u{#¨JdrkYΟ3q4^iRZ7{d܅Y;>E:D]?T2Z1IAgX2,SV+;{17D/Yqxq+/]0]vDzxy 299|T=/ac\ltn|
encoder orpor~mbild.kCA+]R*d{l1H#xR II.J3 represent counter-clockwise rotation,
 * which are6J2IJ0 x˱Q2E?'sw^povwh@"=(r&csǫݬ;CH=L
Am@$I2L#EQAfo_?t1a<ќ\ݟZz	Wvy/smx[k󆨪z8&WlV qg	Lx[z'g
l>7# V\=BxOkAi^Ԫ|E*@5fZ65IIM]3t3&Գ^(]ŋAq&jLaaay~>/O~0[J^MF!3!<!
bb9Ah!%_2k̀W44I\)Ҧ.*0sIۗ;:#'NGL=2QxB\d9sYVFnϙJ$	+)f<ȅժ9t>V5`gmNSU2~'n}6ZqND_`!VoI7C'}{I,gD?_٩{OC]B F|@7l\2rN>D8
/at	U݁k?7k}kM"` Q@aVH]C3"[	4 -TStH,0*Cu?J<l:
 pGØsW$k}N|[<aֶV~T*VRbʞDrxeJAɥ+/iLH@]Ma!e{VΌ3 6f@^\	Vs)Tn[Gk鎫jp8~Nebƕcr^b@)P#BǷmIpO/B&QDrF*ܬRv3p|\D-Xh
òChz=&(/*b	]Dǀb IXXCӧq1rC
`}f5鵫A6vSY^z$œ= <[ʒPnzU;׫mMoZyTit@n;x{*ko[ ;]x<6}Ni[< ^V	}8x, ߪ
2)p42f#[9"_,Xx<y\\F?iN.0Ϩt r	zx  
2)p42au3(x+ ޟr fl̯}	FLAC = 12acVbx1  *t#p62 Control modemo"x6 
2)p42a2 Control modemo:ux[?N?qIZK6l«WR:Y\ GV5x|yFSm7M3 gy"xyO\'LR|e9 ~
pfxμy$-%7n¨0ǩ #&m)x[˼yϱɼǦ 'x<
d7(˯  =ex<dK6 O1>x<yqɉe&pma:h [	dx<t#ɉe&pmtIZJ2J2sSSrSK'=.o	888ښpahN,L,CikڔF 2Ix{6d%Ϯ  ;njx-73n :nx2){? ;3xZ 9.<:x	kip samples of audioPKdk
J:"0F=SKIP_SAMPLES_INFOP/:C Wx BB.".sn)xF]6XK 6OCx= ը)low bitrate voiceL+.(LBV! *)CQ݀]xi3'&hLΫ|] ~	4x9 )low bitrate voiceL+.(LBV! *)CQ݀;W9xYMƮ uNd:~(AMi^UMQ#Ԯ7΂vc8䜤Z{.Р"^ZMz@I(Y;og>[tv1[Of9ͦIr/hYvHcHl-sM4i.YZÿ5M:Cwi1-@$Mj-6W-f:nq]<އ!"T_[LTj%8YE\-Mۓ&!6WDNn0MboOavbYbv|MlǢZqBt<&xW<yӧS,B*xh^"}rBRgUrwN~zA߼xW>}
=_אfڤzzms;Nu!Lw{?0vHz0CGL]!'87FM_VpZmJ
ݣi8]1NB쾦ṢW/Qj`Y;@ ɭ0_)VjW\LZ,
ebSB:jy4_G+ "f`GJMf>Mî,!qMcZ6ѵb] o2gݠ E"b$du^A;lj4(v>S6s6#^䈾r0£"eKT:[~䦪jjTԍr}ZʪW#+RRn*zR}E6>K"hE!<)nAg _8~M+/'[UUV6ՍFB_~u`|$Zɿ.qrn'Aqޤc`JY4-	zA֣b!TXOeyM=]4k7171,Xh~t_?bQt-/mKc]ݛ]m8(AL(t#MY*Z7[tWr@!p̆`olI<_SZ)Be䒢k87A-i9J`Ls%vH)h̓b$1PjAnSG}}|߮^*e3UW*Wj%s$ls뛧Nb!ǭ26Td}^ˤx'%iZ*B^%sxV,j}C&<Bf
|g=n*Q`zRutM\载Of^0wO'_
CJs2!ht#Ԅ@s`I.$ZNj{7`$(mkbab&̸?	"'J+a''c#BF6Nsc0Dp,l/dmr~Ȓ{n|uGcyXoE@f& 0w2CrA> \ap7=;ܳ`/O-{LbLu8\.8 fLW*R%<R rŃQTg~w"4!<t^(U8cB[OGzFl\bǜm+/EGx	f<'Rx\toCK4F:UR83~J/[,iXKY,_oV" nAɅWjJ̮4S*.(O0*B#Zh{Za+NzH\ЛqK>
논*%jcCS s!9B5;3Q5yPp mjպ>ڔyEq5ٹΘŰE"z
7:3An./Z!_ ZHAn(F2c?TABNz+~y7{FÄ/,}O|Ncȵ1Q{,kw祀>I=8!޽ͻDOdaUKpjjoonIDR[dM;z<N6,f8xJ_jN=mZ;aZOGQM3/W*qj77#i8ʚkkA~=ϒ+0(*M&\Q3OŉvNŋ';)LB:?lx2F3e8|dY)_×?{&N>xM˧b1gc˕&:E>Ɵ,s\|?ٔAC1tFZhvD2&5	XP~B~#-V^aSţLt kSB&BfTS>ULFo}~EƃNLK>p"p"7C46#fH(tT5K,j`?0i:%V<CT̄P6%IYT,ևpd`8ÉZjQg {d{Lk{qNǁ#}2bلlٝK~Y MAmkZ?	bԀ)	ˏt`sbGIW/`lZ6m0wux)a7"~7g6HCC׀e{>W.%ϣ\n
ș7}eAfX)zX7>+xSAkAz
ZOB* "fkll"Lvvlfل4]?7Bg :Iiz4޼{||֧;֖$wà鼈za3;v݇e'2^TM(	MC1OP4 Pypma ˢBaTYN~67:=xc/<D\!NLSc{4mCmh@{~cpғRTJǺ	
I9dHsfoSfB#2bR0yT|LԂ$g`\fҦPS*TF{&R]2aٌjqUI^ifT`rͱ r x-׏^m-g-<svэO݋e+ɥ[D!LY9kyh3xhҒʘ7r-~\k-[n,|{MIjCfJ0hAF$$谴ԗO"dHN$W=PmKh &BNfO$K҂Oo@m*wC?8nzNmC7p;Oa__ޘYzbxiWeVnV2 Wn	xi|s7ϕ 6#xieVno\>7@ʿ~ 27mxiW-&/6|T2T1\amv4g~(9LX!vkF(~y6:7D"v`b O)'*bxO~'̒adf<~0dAKIڂcUY\oN5b ):;ٿY 5%5M!54W#$PPͥ ZZ
Nũ9y
P)-}ج= EaEřy

IE)
%I9%4yƇ{;9:{;;8x:yxD**pբ9њh3^fM*lX}Z7C|\\}R
:pF"Pkl L	ncM@JVj
TjPjjPS)XSZ3.0)5C(5ǭKƓ֊m.ܦ <kx&-Z6+f\ޱ BEx  .2e0c` /x8 .`Q.TB#p>ENABLE_VRR;
QQÃ[&H.ux)  aac6-AAC = 11u?,x6y	 Nxve55Li3E'Y<ٱqZ% $y FxuK@ƱB-:HU ]M`M4G/KтgCptruvb*Xgu"˷ˇ$E!g#	G{iLyd;1P"= +7q ^L!APH*Mt!	wS M`@SVsbhyD!/)@i@
i]ImwK>ֵ6n8?-ёQwMVʘi*us'R.??BD(jw5%~y#پ\?>b۬놥uݴ7@_W޴Y}yl`0xL .&`"
raw streamHG6+2RAW<'.UNfi!i|Az}ʃK&Wsnoxyi%G66{ ;>	xye5&Nf5ћ*  B.xyeEMM&;dM$=$Ll&u lxpiyL+52SRKS2R@|dT=.ͼ,  a&0xS łR creation timestamp of a media fi!iz1JޡxCREATION_TIME\&
yxf +p<".p<"/e"p@FR2$F&qpÑ = 1,3J1ݨ3*xtNm&L6YMhrI
HezXONp,4o,,vc\  	Dx6k7e:1 Gaaxi6̌
<&3e+$d+$(
)
Iũz\
ZyX2 Kx۸i3O^j4YAms i'n9x;}ez-&W 5|Sx;}enz7(LdL[w1=j mzx3 F+!pcm!M+-PCMO--J+`3.zWBx" F+,&`"Q+`Q.z	|'xԹio͇7' ]	kGxtv#kԙ&+]/˦ʥ$ VOxԻioMr̒ĒT}&֛_)l揚wC&T$(d*) u%gOnS7'gpcPH|uv '$!x;FVuL.
A:Y6.-K pPx۾j'OWZR=Q0$;>81($>zjkI !nx۾
57* 9_O)x/ ,i+,O track is subtitle.}ڔ]m>x۷2u&XplYVY {	}#xU}he']۵M&sڦ4nH;[&$KZe0-iڴwmι1ml"*@upnBaAGEZ%
랏{~wwCw|qFL:TP胫vT(QVt!#Mխ@6UBT_]ݒive	M14߄]bh.}VfWKY/@k*ʵP:7q{2sVT|
)O	3jT:
;O#p-KZ[wMA,8WO  vYcj?(c_LxR: ۻK2gwy}[$~tjԝ<ʧbdQ>߱.yy\)lW%̻D4$3hcGJm*TFP
V
rVHT"hkoXcS	_:FHGݵt؃N&NJ}@
3R6/OndPInZHeiVEkkUŝ.?IE$h4@mO1mfOV*+D*SB=7__ W@,ӻ*`vtM1n2J[}Za9]ap$I~K8i^̍%k4hB͉ץ'.o(dAC(r9UhƸ=sOˮ:~bWkŶv΍&$<wciF#OL
`aJӈǄҴ $;0b+#!Oԓ~O^_-Y|0/fRZgT7|5#%N\/Lb/mLup"Nb{d}4d+dt%RFHB&o5[zyA8gP1c,a&ȏ9?H
W7VFȯ#Z*gmd(_Fjf3,n-"R@RNXg	ճ50:jtQ3C_L"x=tCy[ЍCO\!rhQE88:4-wzex+bNBoLl"	)v?'B2|HKO^i6/ʍ,pbqoNWo䞧`qvto@}.gq.BN<P4N=ZE3OV0ɍwxqo'3K6`:] S_xqOL+T9RJK2&_ Gx}mL[Us@)BA2^
KK)0J)eehm1.ʦKf[f_Yqb3s4&mh\|[Oy99a,8w=t2}zn'BMEi['8'p$p65jzbt,LV~{Ba{@*`2iD:+A!9
%Ji,+/r(zzKVPtsFح)M/U8LF埙AExu.hWkJ1`_0AM_* {#}]̄j>`DOOQ$W($`S\٢z%%rhX"_lp"H:IXrs4PxPJˮ$ZhooJI)YB[ZC6"4xHH3r!:!ŋ}n^/x.DkUBnZqCc>S˃8:Hq6savrrPx2.!&.Aܢ˻a4otyDX>/E0\,EY'ff}pHdbRY-m
[>PNF)< IٸÒ[	O᙭ŶRÍ63]0ԮF1?OD	z(&JG-ݍ0Q:ڠtf͌^y?d*ja&KQ;!NR%[j_l}zZd~
1CV,RQdR;	?,I:R`ќ?/h5>@1{.voe{]:L>8g3?崩d6\
^H7.3N.K""o~=_tSAVR>aؑ+қ_k.T5TGpXϹYiỾ~hFY:usOXJ`̔E(?ɝXR×z5CS523/4|awb=`pI]lR[e.ҀiN,apL¼hTmL=2PUμU2WǇJphǭ!9gANZs0K1W0m]UK6樥I\TncK|n?bYJԹwCtxN4k<V7.dIP.2fAT{ed<;}qHtln[pɦCEI
%<1ZԨVpÒ<rgs.AQX1Xj<:#ѻХ7>Bm*h\]Ag|{
U=GxlY~oU<i+~1ڳ4v޿ʉ?-Ѻ̼x.fD"^=M
)1	xq'3K6`:'eť Z
!%9
řU
i
%
)%
EɩzPU'ʊ#rNIJLV+I-JKLNUH/R(JMLKVfyx /x}mlZUCG[J_WiJ [4½rjm1.Z3-)cej\̢1fD-/:=?< w%߿QtRю=T2}"qrLMX`3F(IaLs5rzbT,Lbn{BjhO*U
aD5jIB11
ez\	IV<WJ"DՕFY$}J~#CUFJÚaBY^r?3ڽEv(W]M֕Kԧ7jfHLb	q߂
xL=[T/<Q:Qv<Kl犍0,ƒ8AŖ3)",CQ~3hK	~5 _ksm3-rS9hX<EP`k	\mҩ
(dǛKĻ
kBtr ii*腎bDP+ZM+o.qrySI$$k\Y#Yl5\ad<&&˂xqPjuFqQA'#)fc-j GgR\*b1<eH6umRtfG[鲁,H6QrT܎Fβ״\X:L%LBI*&py\2xmnu
.@/v]qx2JpTMV:Y(\0Q:ڠpd͌^!RY⯎
 Pq2,GݢENH7ӀRir\	/ur''e\ה^XAoNQɄd8x	xvըv8pkt+RK)SpݞiU.zV`G<| .<392uM<]4p@C_U{rNw}y#83gsW!|ׯ̙3Ql23fvth-Or$c#M:TKF=|wHz4WQX*D]7`=XǨy ۘF5Xey`o.C2s֤JS=|J8`cKaʅ+vDVۘs\(da(ۋըsos|ά,r[\%A}.,jeRxr=m?j앑*(W7#nf0uIE?Z)dh5SUnp6wտreCc=]}H;kÇ*W:橬
\ܟztGxlB,;ai߻Yz.~gja9r
澩eem[LbJro޿>tц@x:f@[9ۑM
)Cx}]LZgEïvPEҢGEd!t G{Zhf7Iz1ץ.d֍fWے&M}ٲ[v&k-Y㜗Wzśyy<McdzS-̎ͤi(z;Eg,ɥT
EF  D2cCge g2Vq!S]@\]Qի70;fV[U@]}kNܔ'V>[$Jl[dVP̙, {}xoukAcJd<o-RF<<>\4+ك0)ldIl\g	?z%GɆH,B\T=N[X`ǎ"9+g?d-N79Q*ał4&u;5"/JdI&Nʗzqֻ6ivU=K-7xrmVjUHC4B%dr+v-V+,_|f,]d9G`%r6QUp2J}O: {vOVFpk_L,bf@2Bd
sNЅoAV07H&l6Nǌ	gul3MlGXPm![:nE]}Ȱ#9fVSe~ZwmZ<{v/%˥A'RbNPuD>nV8kN=9&xѕ`25
7M5}x[GKuEv6EuyNC !fU CFLïp5q|9L.,!&mG:r|>E/{p*+kS>,]]HTx.a} ΏxDN<lFADwF(FPZx4 XE~L-MSD.x80w@؛[+aQ\*͞Na<°:GMwpxE6t="oHKk_z)KN+5<be~*պ3J%9<x3"wߌ5\2H+	`NLL${-\°+kN7"g
^lEʤSF"bC#D4sRx904Q~th_@b`P@XvANs3| mnb8OWBӃ"iJi_f}Kn^a='*zCxqd@@K!$$1G8*U!?M$#U!%$Q8(9UJDYqw6.Ĝl̼ԢT"Ĕ̼tiE`Y~ ,A;xodUBKs3RJ2RRKKS'OtNIJLV+I-JKLNUH/R(JMLKhK+7/ ^)6xo'_R`.O,m``hy^A %	Gx7D&}--.-̜TĒ̲ĲT.mDKS2R2SRJJ,QpsI9IEE
@jrnjJfb<X+XgqdTqLU 52Kxqoe%KJ2KrRSJ&&L +2fag
@PRYׯuutp``{>1 *PGxqO7Y2sR7P c	
gxqOꬥy%uKK'/Ԉ5Z͵rJsR&Mљc̜7ya=FPv-'h惖/job n;1vxqO3JsrSusS27og <	Bx'IV6[g0NҘ|JDijꁨ͵86i2N䘼H$c6ӹ4ZMj-{?38z ݬb
R?;YR`rEY D6/|R4m.{v +7nOxqg77 <ixB v$versatile video codingqEcVVCA!)r$%2ZXdInQx[qKU7R 9Lpjx[J+c|HUfo x "#6%%<bO]8x[qS6VǸUIr|k"bx[&_PeD@bz)qԔDĒDC2RJRJ2sr
srRK2| T~X#HaQjb
ĢEYQjIiQcrIib'g虬(S<y &e) 5gVQt6-Eɩz`œ,&$xe敘ėU[0sNNIJL&h2\l/b<W7trWzlcol^d39 {zQuxTKLANC |%脄
PJh
FRvٙhj\Ȝ5}dx#A^ma6;g_]H5vUK׼ k:Fh*H-d#wd?sUE:`0#}kkk'랚n/Ƌ0Oc/(LŤhvn5|&L%%0B֖ HTCfI`
 Q0PuXB 0 51H ?a
-oBϬ%rdIjbQ  LjPgfi$RzQZ2juc֊,)#XLgڟbHİjݿzG/ٜ$Đ*;(:.3{g(O_/tcz}ϴ(JEt&+q-/aY(t1a7'[\)~lgx# Őqb\ '!U)ބE&0dO 0xPr:5ESx)Q_K""_aTiUt_q;o<lƧMb\m,?w=nGO{7tA#I)W9dU:d?~7:<ho[JK|OMqlt#u[\+\ ?F>	?26}uߌW6;-nj+97XOGoxk8%J9
I%E%
eɓ*589OnTUiI' RHU-H-R/-)(-QH-RHIUH/M,TRp(KNU04
O ``ÅӼc͓`5f?  h@;x[qk1$tS2J2sSKsJ2RJR2r3SR&?a13/%0YKR($3?xB\]BC<HhݒX\\ 6RG,14U U!X!%4)gS!Sd/I!J^Y:0.Bݬ* g\$lx5,&/^J[!75%3Q!%$qBnzC=ÜJR TIBZfNCAbQbBNj^zIPujEAjrIj
HMQjbBqfU5ʂbɥEEy%5iiũ%`EE%Ey

\%9`퓧Ik1*L> =YVx$Iey3JLK l%  (J>CxXOOGW*R!I(NN vm%85CB#vg63!ʷZ)R{jU?@o}ox,PGI	ߛ7o|Wf,yQW;*K?`z!#>B!q>WQiB#=6!5LcJxL1 JQĖP.y)5:Û׆å^_䃫/qT	X0?zDԣq'tҍ^ <9)#v)0nu5C7Psi$fX0GZ@4Ot{2$'C!R=.Ic]] 	]kPrӃB?ݸ[[mksj5-kcѬ+zuV!RER8GAqH^Lw'6dEElkwCDrE	{K7x,funҽ\5T'i[
=UW0 %1'D`s?s]f'=&k2]'O)yr߳28CGv5a.s,*VtxfvJIE~ .bGVmd#4S@>>'tR;N'9ŔIN.Mkj'-4ܲT02ݟt[ ro*^o+ϲI|RЉipVWTbGV9܆lhC@gMt	Z	t1ҟǨ |%chkCh{DƖ^	@uk5i:9JڣI9e9eN-Dh03/xr7mwfɵ#@AJ5:&J=ڛ#koogK+O.LbRLR8";N~7^ԳCӡd" s)&*nu`Y].pTxIPv E_'{~vYEHaQaNٝ9[P0C0e3W\¥0c!jҨy@@.)Qiq@M%#SVNCriUjfNAGFR1D/K7+wYO+դ5׭؃È!ԁyf߲ɴؐc@M5Pz jBD>ie?	*G$W.7^xfzI^m1#4<#'ž$(yo{fy(`F; :Nxeыܑ뫭F6qQVY|ß|xsoBe"3y9EI`תY(4vZ.Xqm`vz# 1;'Vw`ŵ"g#-Xsh.[DrbRwkr{SS8]uk\LZɔ[s̷3iHA޾ədL	3/H1{9'Q^I4;J&x숷&~^ޢ'49ՙHHd&w'9Ni4;ꊵcLOw6Ijb0xX6"ux> " of audio ape codecaaM]MAPEd"CMx{pE'JH))'d*e+$dOVOAV9,y&7HiqiRIfI)@9APࠐ͍o!ExYo%qvKG>2XLlQVQT)RP\kZziZ$h"Emȭ@ %5Bߛ.d*N!>~͛7ÏsW:?rq>2{>>Ak.5F♶NI*5DMߣ1$79{R#c| 8<ɇ䏌G5h9ubLMޱ#	@g_Rx|jXI$?p
	?8ӄk;0Ϝz:HEͲJ#d|pƏG8,SC??<i4WCщh
yK93WwGz@iς!>!ta~~CCɩ)@5i
%e֙؄8<~9d27}.VajИh?4
fMˊcQ{U`4[:ƸϼGc#kfrS.{A.ek,1 |+̳(۫QH6<2rqJ0Xwu4'69@%#W ^OvZ`{̩k$@#AG"!p Osr5}pƶcww!!tOvNwgſ=vbleҔ#th:W*̭zzkTȝqC%:&$Fm"וg{hp5ȹ~ScO?ӗ>_M5fޡfq AʐT#KA+fkeiio$MQi1и
L3m&BSmzt@iaLޟhrByH
"9nB<EPťLN]eF&*|ȝ|4NU>K|# jJNl+KyUq>WKXGH9۰[?{uBneeJJ,F3	yK"լRH/鎝J]C-qK*{S'X<@G!9^%`Wq|ːPNb+[p޴L{'(ZM+[-S]wuI=QwM(mgJܒr6n%Uʲr-JP+z>[+ʖɫkj!.YҠVEIF5JkV@TA ϱc3&_ )L	bL0kzTY Xo F$H	p^$<£^BכJg@:Az.^U7ӫjubj6qjxirƠ,#^
l3gxelnk<oV.A=5Ka7YԮ:j"v
[67DQ\ L.BR[uu#ҧ>{Ӓ&{41T\!Yjz\T#qa3Wm5_)qXy?'OUhnHQP\TM[,F,H49,bUnE{:*ľ`,R{!?(ѰnBs`@i\$~0gWxMJEq
B]sjUqawhM_AT=i}Al)"2M;duON/e?mp̛eյt-X3>"K\
S`sDcB32*˲%Z>8\>БW=VvV~vIw0mX\ܛӡBu5pjDt]_|CV&@~Mc"1h8[C$Zȭɣ0M-T> @B_$-f!W(Zf-tCGkWݱhUY͟]Q#@rҫ1J̭~9yGza,"Tِ.@Z.RMN6rXTK]q	.tm,*AakCTIeXoX$s3}Uc͝Iw\z56m,ͦ]r PJYom
xP+OK.:mjS˦: oEwށo\jQke6
Lm @*sJ[[y	K.n7'{7,t* w9.we.y8cjAT܀JF`JAb_<MB|maoV$0C RqZ`9Er`)ȁ\V^[9'"l%$S~hwApg?HűC6A ڪ,PWHO) نRmşGN{a"Wt~Cǿ7}f=MT!~1妏{ Kk$!#<0ˋcFu|뗣i?G|M>ygfqow^?Ŀ=v|hܸQh|zcp''jB߻1Z0|GWtTvXgzzsMk=0+cgj^k";pÊ )ɭϡb:	zW:a/APHZRsE%NÄ;Fq[c/G[SQ\tc\,V1(Vqk*V<+f*uӞ,n"&/t3<fm^ADaʍ^qYw~9rzQY+D\Q8[ `7!_.f[R_/IHxRKoQCH
ʻ[HڈB奥M\sI 0՚֘p[{t6]Ӵfv?Lwughz7{w;\QA3B.+Pl`R4u+80R#_<hB|Z,I&ҥ\Tj!vt.h`4*j1Bi0	ҨB+KDn()M=:9DMxo|,8ip=}7|7:NrnMkN88D."p&la-KJ#syy-ʍl-"auTO\ʕxCYuKnS AcڕYv#+U<͡*
	O2lcDnSxfu뤒=NJұܷ$wPIϤԷFxJ\uP(𒈺*`B;DMJ:v4v弒eaP V<6!{HV|	".ޱT$F3a:>3MG(|1ZsG**$!>9/@(,3I2q%i!dglod
th*cx(<P5q,1e5#?_
($3wyJ o.xUKoUV	V4iIn)i{ly8%'[ccb׍18mX$@$PRCt]BH%	;Gp~9|{<뗯ΦM{E~9ŕ`Ga:=y=EUBL>X"V.Lb9&8%B>q*/M]~EKkվ/yW(FHയ|MD$av`r;?XѢ~[ӅY/m:4ѐkl~m"1pat&FΓ{:T}89ݗw?_6^\瓑K: Rښ)h3[|١`[*k-x-H8\uI;*<N1XO'I&b.ol(*w7G401L(^=tUԏ]J/L۪}3z4Fl
"PZ)"FLv+0o%n Kۚw GEI%ʤ0
R%`׷lLJ|?r**`lhysl\Ѷ+(%	;AY8\Jȁ$T(yŇ8l,R(|-in-
*ac\PIfɃQVIYmGx3 !UJk8TRPXxjH-҂=ʔAHdO.Cdקb%}#6CMЄO$ә(l:
J&R.	ciqYsKp»=iG|9F?;8Vpsɐ<'Jxhm9(%Fmǯ jamU
"cEk! /fp;'?h~Gh)nȱ"n
\E1r8\N٠N(ru(q9W')䄽=
)juuQO'wMԹ%}fkX}qlWw᱕sa: IL-Ɉ`veDiW긛h7UQniy+NU.=6xj̇FY+탣V 8n5]Q+4vxiw#sӱ+NpZ.gU"j.Ti*q|XZwZujt4eD!RZeb|9<VX("ȹ!'bK-fr|۩);_<- Bq9M+`nUo40ꡒZ,'U9=k-+	x$%ˇD>b$䂷&c8YPT1 x%<U>6ZDosxq#-lyIE;j o	*"xO@YZPe(݅׊VMlb:)eHdIՃ,s7XA?G/Y'."\}|Ɣ	'ڼ<{RyW~`!H=Aj?O_n˓+*&@6.GZoU hD$/L0$)"꧌r>xr1FS!ʹmTpZﺆ;:XҾWU	yӌxM򂧥GC*69>rnݸTTFi})zz%HW*,D	Ty!K#O^|ih~	ů"EذSCX3x_8P$Ulo1=]{x!~RfQS%ˇh):+Jx=9'opf*LIWH+JMUH,K-JO%>P|@ޜDĢ4DԼ"ĒbԊ|ĒҢT=bĜT #57$5hG~.iE0s&;M>>Y LEمy
ŅE@S&k5C,"z* 3],3v Or9:x7T<ғ&*MW_mb} U
H+xVoGIRq8";cT)k,bCTְ`|jfE[TPDתRՔSUG=kNqzITjgfwaa(}73<tfyꛅweVd_oAS2ၦ+ 6Z6o`/Pt`J?k; |ˊ;{<W%v.V
n:^EN/;b I
irnPY]	S8DA:BYjJjSJV2$D%NPS;G'&it
(V|Z.c`RBl*Hjr:ێ?=Z =$䠌w.LESqO,#엳sb4ubxU.7)u{l+#w5XQD\4AEۄPރ[iޑ	݌13IJV6 P(-˝"ndz܋ڒi+6=:C=E5JW7XNND<vI1333tp}8A̧_/}%}ri/G.hjVQMc	8/Wd"pړ\-z{YeXE*/ь9a:W0\97ՓG=W\tXDaʥ{x-q?!V[#tL]j7_7.69ARAB劓Rl/Z;zZa_Uaog[sI[2*64a$qN׸zWJ<PmbW_ĹW7!`Fa=Wm]J5%Wǫ-9 @*f5̊%>gnV%Cjnhi#5Žʝ
w挑r5NBD+Ї$x;g]ȖkxIY6`^jb6](pCg4vm8XҾ˝?z#rV7̧S3,]Pw[pdlF{2o(x1yQ=8'IoL\ᷬx3=AX]&6p44JZ#<y2^O6ye"w݅@pwpķ:(l08~e	R 0rQ\DQ6)c6Wzb6MQ@P/W0x0[Dcx\sEۃefNa#g; e;M^۷HIrxM é5_info5VIVID)^7 9P>CAu$RbFDT=YNx;J̬yiMV|xJ 	A(NkaudioZ7QO%738볽9J@eP=Tx" 	A(N2_`	xk8w<,&{ Jpix; %versatile video codingFc@V ""	%HXn5xR,sS6B^x[ib,%'_c eNβzkZcs893Er679C!%.m-/:[im4'(M>#$&>Qw|@x;]	[OQrDiWa^"6C@x;}NTW6՘ȱٺA:`ʓtli(8]g@pJL8(1>m\	Od:Ύ27`|,y>Vl68M*ГNpWj&ٮPvV1 sGgosS]l1W٧\7{u8d8g!Rw٬pl8{_(-??6 4d&_c' v ~B䃁a(UA(7U0(EM_trI
crgU0auPyRbF(ssvmm\/cO^0&<Q,8\l3̴ Rnfxq3e7ϒI  7USxi6L+52SRKS2R@|dT=.ͼ,BZ9&+O>`4|yQ`ͽ/4'+L.0l2Yt2MɍmʓĲMmgrU&~6#Ǵ9d'/^(4BV[CSm4ِUx>- aO-+xiIL+52SRKS2R@|dT=.ͼ,BZ9&+O>`4|yQ`ͽ/4'+L.0l2Yt2MɍmʓĲMmgr7'_l/W3L>QbG.}}C,\ɇ'
~F
5
~!AwN2QO,(4R }-g&iOn6{"Hqdh	B'Mh$&Y#-⾬IHrf(r;'(bs
dɾ@@) O Qe-tPUH&@݀#jBDcU)	l~1GisVN^Ph2

:.z̧kNo@ĬԲ-C3m<$!cM6˼9xdCV fgx}	{@_KD+h)xdg躦e&g%W*8::+e($$f)d*$d+'e&(T[8(;s(KNU04
i 7OzxW[c."\RfDctq8HE ŇdywZ'˶N^!3yUmBvO~צ3Yyr+뵋On1٩.dlNo&3ptU]'r\*~~+ rx}iI2o~ JAn(x;{i1{6l.Q  <Bx;{i1{6lcc* u	 dx;{1{6lccѕ)k`_Z`h$dpV %x}iIYmLFtL^*ym $
Ix-1K@GExuJ'%*br7炅U7y<ks}v"@KB(f)i*8LSM0#ܑV-gir0GyϞNlvS@Fn_}BBj`Nși|PhLrt!pd8t/]ֻ4ٟf8e8D4>lz]qGx-1K@GJ(NB+bKU5$wr)nNB7ɋux뤵 2
$٢$hfF!CI5$3ab& Wfh^|}j7
֔F0r<,	BJW{lBδN+$K'B3gek$sI+6x={s	pLxNSwvwO\AxMJAFOba#D|R$XeܽC&3ne00oa%hCLv=͠>. s
$ٓ ɒC-w̰592x+GJUIq	Vj<o)*̋("F¶\%XGϰL>JV	??BJ;f}$t
?Gd6XQ>㼸_nivy}]am5x|yӑG+6NxɼyË͜~O? W0	8'x[˼yډO>˾& ~GPx%J@E,ĂKJ"P˦v!-M^:/v ɋQH/p-Gp9EO8qBB+Xㆍ2]3Rz7 #OķE%@7C%PQ![FBҺFP06Zm]+(+#cD,Pd.,[̗zw@O>x:e^ˆە/to\sucӭx|x[v'Hu Sk0x[˲e!~.l/}zc4 fZx[e!~./ts$V)xL0<a
d*{ĜTbԼĤ=.-ԒԲԂ'쑚X-29ږK83/rl/}zc4 v^.bx[˲e!~./ts$V)xL0<a
d*{ĜTbԼĤ=.-ԒԲԂ'쑚X-29ږK83/r{"l6D8N^ƲyhAl ֈ1rx  CND5Ћ|@FH |3	Hx bCCinepak1B1++<CINEPAKa3 C5{@г
{@link "} in audio decoder$_is disabledA)2ENABLE_BUFFER_SKIP_SAMPLEFȼGv;Uxx[	xSU] ]6Muyi%K7iJIijmJ۔"Ȉ6rd2*,
"t QD3uco{rs}/ݱ:fʘkbgwyfzitk7]<42*kjicڻ%sǅмc@%rm~5KyBaiaj
D!Q #}^-`IFB$f<cmѴĖ8/> gU|B$(/~\,ŗ>
!9Y5\	/MB<	Ѵ)f$A'	tJ*Y2ᧄX8"\jL]Zxq ;p13s$"nhsa@ )9[KɄ,IRjXH[{+7ϸ2-p|dau(l`qdKÃ<_1sn<QI{'ܭ"%J173~,,	T HRb)'w2bt|3gf#%<̣b%,JWrEL*0|BxT56fqi)Eҁz:wf	G/A1$ reQnkYnUZ5R*"oΧyC෼ZPuYDzBh,||IDI1̰H:!3Cu?TǒkLMLɝ:O}	،F@4׳zŜd0Z3y`x.ϖi<Lkk<#xyR(kጚ@ &6d,I[쮆7gj	f0bǗFH"Vz҄J:{J39lmFf\ܧEEdmҠ>
H/ >[
m*}D+GW-.<ZѳLvAFŅxayR4Poq-YUU8tGE:F14yoFE猌,#.*7<R5.Wi"雲`Ȥ<>21#C+QQHdqYB'Q"xTL"-gc(b,`2BƓO}-]ApTBɲ7kCe5&\7ך!a)D&VIQ]Ve\ѵi:@]_8Sf\aV&NC$|%E+5YuuD2oj:mUܰU8lIbEbN3^iO;8 ZA 8	&uh c|E! T|hJ3Y19"-M$],b	j8u7K Nr&$G\smց/&dԓPԶ4~ͰXVxilF+DJpQ|i;M<f;:ZX?)#@,FAg5Ss
eFYr-,vV7bjyi6dUg[i9њJϵ67qpbe/6df^VSv,jI Ujb3])<bձ5tP65wGýJvA'0-&[leʀBL͆0fL
)
NɁ):lJy:uDٸ,zsꔨ/2Oo@/:|0=34.*v}3q&^0hE-<%b-JP^uEhG9
FLLinh6ԙUPe妗pvajr̬íq!<mkٴcm<`X\x8&\ٹ|xjb7M4GǓlF9܌NqsXRkMƩ랹|3hFF^&@X 6f[3`<^<)Znϗn.ovD_كj촽+;]tvN5:mzh#sw5gc"qY?k~-rH(`<eW)aO,+_9{NiJi#΀wnSrQs0Cܹ}d`!-u1W326.}(@ܞ+2eaQKԒV}u,_W˒th76,hfغtxVw̄'pX鐴˗O3c:^1'V, _1XྕDSs[~>W`1mߪhe}~w#4ǐXcu8y{<L%{&m/eo2ܿ &8<`υ̾)sݪdyɪQ}B(^=Id3\-ZG='KV%à?ԯ2i=kB8n@Cic#9l|h4oB޲cL/?b]Ob!1<ìub>faQۉD8GwCz!0n}&==agz0Y
>Zoʣn{pJ5À;6D
n6Dwg'2x	;*0ɼpr.(ؠA'#bHd^	=5W"(}FY.c31yG< +$0Gy!Uj]醊g'NE{o,
;iB&KwldH9o7YMrxz{I^=UEɮW]o12Bf/	7A3acfnӶ-#oǲYu\Dڋb#^w~ӲVf_	\^NbkB++Zv?:-RDbOnaۙngv>
gt:Oݷ8_e:Y1-s=]=6J_׵"ް{#Z8F70Rz
;tA['v57
tqJ8ƽMBv{L![;0eǜg;T*	T"g=Ilp=m"bCw{_D8zkEy;j%Fq5'ng5#0#XExs$>wVwmEoWfe235ZMSý]s*ttb;#Xl3^o6L2K-dB';ܚZعSW0R]B?;@f.loxKH]yWfzST0`w6|Jz] Y}0֤w9،.}d٤O!EB'O[ہJ@|0KQA;N3}2w2d*K*pΛkQAўlGQ.ˢ75 hP4-%{=@Uy/l{0mkٗ*ҟ{>];vh4k
=uo17FPiR-- x:ۗ/o%/TuiO~Gjc/PVG`̚R@gEH0xkpv'HMt":AK~GbbځR[Y&lF*5j5=Uΰ -@E%pdr?ݧX>My|xápCaFH\Iuh9x$`L:$HcFe< '2qC<	u̅a8q0A,?[CRrH7>|h(cSg*
wX;c~ <t\u]h+t7wǹIfFC%L3QC&Y]'*NXu8:eE:c-T4K)xD Mq_}$C׌N@dH2튎lGUxjA:騒j*aQIأΣF.]Ge(X鱒ic5499>mǐ8OpK0GhFWuFXT]s|?K*Ǔ5gK"$$%2!sYԝQT."UqƋaxD0ML3>gl݆Eޏ>π3A	NBk_ua#,6k	}ΝBW)_HݯBUaiXXވ|F<˜p-_6Gx
ҫ_rr!R
NQՃʱ6?&0jE[*4hvJFӚef#`u:-I.CO`)I*aC#h)0SGRkjpͦZI"k*>Xڰ<8U\BW}Z3g<xt>:gɐu6ZAlNo1DЊ>bHȫ*G~
Ʉ}4>A	ߤu胯I'OJ^u
ZŅ3eZTSIX7lpkEPF0{V/E}\Y	3Y}V"b(v0[dZv5̴mi4\J^~IIFG"zai)cj~=-"fBO:w95FKCg8T89T-]ZzHPt+ɡ\i3)82UӪsJr:㜒/2C
=ɰDԃ#V1|dzn4L7Wr>Eetw^)撵tq^)齁K\d5
2E(}V~!G<5L^Ph9 /.ӜA(s"%搱8bc.fq82x;dTT35*59?\/jI2!VWV7SQ!G+a}ˠ_*Б9gFДc#rꑧ5%0ৌ@SЧ:.nGNnT0*=YtGzS*v`YBj8ĥ?gvmY9Ӵ,|,)v~YZZ̨qUB*ЦBT%sm@,
.K{̉RR!f\+AF_d0`驾L̡tuIV e}KTDʹF<@+/)ȥNJ5U bF#-3/9RhV[eJ3'qˊt_HΕVFocɽ ~lncWc!zuUGȡ@?:Pp4|L:|U9\ }]UTUPbe UIekYKE -FQU_(+D3,xgxM.}B |]>1V_Ar]V\{F BxCyk"*`:i:v\դeD%5QTY^FQu[iu'Q2?|`3^-'?PmdHo!M\[.U	xπ\:68-#'N&jt(K+{X-PGJq+Nr1h^Q&qZg0S c⸎@{h.n\zҰכ4@@ln[K^Md T޽W$d迒HݓW2zIWA嬨1އ*bc+b*'6[lψ=#X;+V`+ z
rqX0$7/NPxl 8A^8WJѝ)t0<-O]MvRi~H沥gDii?3WU^$xx²bGRRJ-(J-N+)V(HUI,,)MIUOSӋ22r򓁒y m5 NyB%
ͦ{;]OxYmo8_A_/vn1=MQ@KMD$[̐MhHpg;c}o\,;韲Oc_VtZllÓ̈Y$4+z9ÿikT{9g'ؿ:>}"6`)߰LYV2aLw-U'gpZ㥐sؐ_q}!ꕵzlGe7qLw<'W6(7aBj0va<B 5fJ3Y
2[Q]s-PL$rQ^z`u} 3vܻbcw5jݜf|4bO'|4_YoM-& -8G- 5%")h+E(ciٲKV,bЩ4Q
F(&ңQ|ɣȪVE<Dg˅"f.`
 :VF°[%BoZ4uX\d!i^DR+ܫXZ	b7`BvT;F"ݰ"!jy ZtVM"L҄?":Nݯ(EE'mjWUesPF5O	7ңD.4p[H,#r`lLsv1V}Lt.Jӹv>sNA=:z"cN&z>\)\=2.I	^lWS/Z+@^ƨRyRw$ :1|Dd*8r#05hFۡRV)&( %g6A	-ǿZ@=X򯧁-=ѡ IC9&ؐ+pWyj"b+tO:,w鴏-(ݰEp9?87{S/A""n VW"Ȉ{C7l5`kvJgQi8wlxz~CZ$1rr?_ŐCE]OAe?(֟Ϭ:6 ^l}0E~>O7Fp|l jj@uXhE̡SJl䗰9b0o=_/DOCA }2=ܽp=L+{aL1ǉJU0@x~ι^ޫx;W̩nepsN@)vͮZwY~J2!pex8L-ig%='*Jt~1U[(r7&UƱVGvy	ΕM6f%k"pVg+	/UaZ]f<a|aHe%dVfx7ˁ!(FUM
ǹm48&!ɹ9hف&̭1-G=<bAtGZܘGE=4B)5-6LexY&֥PIr3&c3n;iOnSڃ;i=Jn
b+()o18bJeV>挳|n$تpY9re $߻ޖӆ\#ՀXV>x:\9pvD(qZʧ/,QP5	-*]޹W#OXE"(ZguuIC+$v#ήvRujwCq%͒H$j^_ja_3ab+SBkSVu0͂{d~` d	,q$8kiM{ 3K</v.MтNt49iFqtJ\&9xyHfMjU;%&3ƣNV0gӝZV6pSQ{)M7SK4=Xm/]*Pyy
kAu7 `N\ڍu<19
+}j*XPv7xnc7#P,~Veܤ
WdwO$װ#m]ܩۈH*ZBF&!,Иԛhw\~`g{Ht"aYUQ5|K텺Hz-vSuȳJQN@	
خJoyKmj3H#)p۔^LAl*+;6Bo5+!oyVv~ڪa䊅*8CjSJzºoG`vϝoLS[,舙 0j:>NJBPGH",Yﺄ] kM58r-B߭PBQ_Kөhgޙٔ5/s^۔Dq4Ԙ)Ljcqͺ濪6~(́Y& V-94>99r	d2m= ț|Y6$U{B}~ o5.kÞvrgn>?g^}`c߸Aa`/c)'x]msȲ_1|I(sN-ɚ`ܢ4*BŘ?2#^q6NvB~gtqȝ8|q8Itűrm	74qZx)\cwd$вKS\(v_^gxӓb k% i,7SדB^2L;Xk@~&sZ!6>6Ib<·y'I`\,bDoNGް.|OƱ䟩Ag'+amMMZ ,[ M\q0MV$ǍȝIA^=yHœPtO;lb#ﻣHoި@{Q߃ooDAB#$%PӀYCiS׆ԚI1dCD(xM.U$,IYtt|;'跿D4b#(19Բ#r!f`]T)AWrl]aL5/r,mF:Euu6&}yu乓ȊV "kV0ǫضB1\ŉ\N\MVK\uFHSw
c1{{wze0>{
.hK)'ä5wZP$ډ0<!Kzik&(S;4&-|d1&NSFŃ/V&d[K_r	ZHxtF13d;KLG$j Ĳ?_LBSPU )r_qK(
?85GfTh_+Ȓ=DhǁZ4pGiIh"&]X>A.IFm4ޝ~5~x~_gK= d??;7	>g&Ei8u2M	%\SHsݹ΋*W(Ctl%V!AߖsfE	G1+v~#C6헇d*hHWg.~Fϟ	)R`q²Q&`LwG5Dٗ(ڱÑWPu:{b#LH1@ˢ%Bm@ #D(y>/mG;7<4LRҐMfDNsFDqADՅ\`.޵]զ]4E/kH~nE"}Q`Dyj@,Yז3H7(HEٮc 1C1u>şVZC*cGEf2'i	((vAڧqk<q-0Ϝ>rԛFR"jGڑd6]%O.DAe{ۃTW˖8ZDBS)Db郆!}raÀ@V,h_S烙	-Ԡ*XHhd̿#ǁ!m57Ѕ#?
5 /lqI{ު8 	AAB M r'J"h	b3qjLSY1`dIJygt`F/Xdx{@P;F~9j(3Y]S(H2	ɲE(΢s]Oc?|bx"imvu$Z q"憇^\_@eEA(`8̦6Y	EXFbfUm]+ӿk5ڹ7+sBQO 4NΡѩ;K#=K0ep=5qxcSI]$O>sFĄZv'jt<w*JYP=PVĆ}B"f- 4p5M_iVRdNiTB_ђf(%|ZsƓ8"ZKΠ= ;"M`&$nLXŀ@0a(0WMY?v&#$JyD|)XEn'dG)sln1CB\[Ql\16=OXi,@xh@L&uF`9M0?ęHdYkS갾㦘`<ޥ&
Ͷ3GF+2gHC A!Hn%F:Ts'ȘuT@iW+68x/RK? PF5ާ0E_=Deĳmk{MS^UbVO=/L\^{nQl4ڹ% 8d'߮<{I^{$\xó5>F ŗkS^B5ZLbLs/&qIh^e$&ѠAC-X_L(ڈL.ըIRPn|t>k̻\c
51#2j%]mA![nF[7/_歋`sr6[rVrnݼ ˃q9@ɾ(x(PQ0R,LxMʏ)׺̏N=<~q Dxl]EՌYdI6JOfݯ"CThUTLn шeUuV	F3E\4uSl(s)մXZ Mr.Kj΅eAKIM1XːFS澒;<eJlR;%*Z,~CMm8V;rj^p[թauۥSYߦ$s5D?VR5yx)|Ύo;AX1('jRn"l]K=+I"dǥVj.گO;Q?hGiwƧbQ71'~zVNބy3c-ֿ
5Ab<c)#H<1*22I+OTc}t#u8}?~\ǣd# φ/]sIZ;ot?8k
?a\wSK78+.`]B|
iq)Q(n9(Un#wmFxh|kLqT^Z}7?k446WUݫOkiNT{RKm,b+~0g'F"1U'D$Mg\d֫WkbW'V8"g
2 4ԢLkA%4(Z 78{3h|z@I\Eಕa[9zwa³\97SW#M-o;k0k+Zذ9lWow@V'7[{l-"EiM!Cph^x/TfgJӆs$R	e
a&3?l}!Frm	J`ruVњdNQ륷*H(͚"L:W&Դ8"ȿ͆y;dvI;,J(xWi"hJZǂ. S-.P	t?
U;4T%ŊƘ٢IZEZ0ZCpu,hnOx"cíXbR.6ݪbI5Y^t2ZF֟vK*VK8M]	n"yֽzVӭGP TmZ^V`QXjOtlLp޴RWpSb	ξv+1BkɄh͓֞/?|؄nsF9Yc%@yj+7HcYvNo,,>SX(W+;4u.~w2ZSr!S^eXVFlbĕfvXÊo4oIE
ںʸ||<~W[o[MvVcYJO줊ܺ,:;D^~0Dʍg}xLqnjR4b txx,2F	
BJ?T$)@}-ŨM[lFRP+uZ#14g[X'RčQ*%f;^ 0]괂;nm2Z谄J\G'{-f8f9
EAǈ(IE5Zǩ&uנ_wBppCz)~RZɛHrvW<9y&^A}
}"zH#EgrQG#;UVI,Lǧ(?ǎB4Bsi4c@/H0U٧<HZL6wu\UI^9z4ߧӰQ@[D;䴵<R=?m#1@lW|£p#lmdCRmfi</){)۔*&wujΙ~|MzFޫCQLs<n G8VMP^nqTNvрI6MpphNc([GӭߊCU@wZ>:|M?1:'>D(}{j]wН3Jh"g
.Qm[l?ÀY`@:I88gJܕo1HuDX
scҍ*\CCp&^`̫\+CL?
zY@+6\tI
YyckSEt;|ETΐi~Aϯ Bk2f2^S^ZSQ^1mLS.OZ5jmSZ8m|Pޫ!UE<U6fju+;t֨|rӺܒ$ǋXp%&)p[ژmiT5mXiF $ Fi v׶]z	:N֋5˃| 뉄?; ? d	_Kg4:YhaO@ɛ	)9n"K1pnc9o	s*g6y+S&M2 N2ݤrv~_կ˗ˑa2;STuuvwԄ87Pvj\)fp^')EYz`šW|m>w8tg㣓vα7
RN;{rn#c=<.05*袄;Pq(.N6l(8Ew/Vg?xJ؅ncl0ׯ7m8K#)pMR>WwzT7=+K"S:@)YwJNҙGu0LPgKZJ S@ťO-/6FD8Lƹw'}@PGtU7X ~..}9Z(U邎mW	>}eJ\-@yZM3x׭wK`#1\hORŇ=cIfU>d.'cпxݿċ^ŕ%< pqI\4dO{ Q,wu;Kcof)X;Uk]tڨ>lTvd1dx{tiCѠ˭T7od }	xU]LU..@KO
H-RU])Cޅw63k+DV|0ښP-U b1ۿ	1zTBd3wws7.YnYXZ5 ',>(~ȷ8Pk5Yȃ-R)@4%/ԕb)i*AXTtu0k;,e̹3vE&:ޅy<]Q+y9GVOJܰ|*溉 o{TI904Q:Ih5ғ8udC2 3C;ӝ:8ܪ_QNR:Rc艄"H0`` <xa"P5GkG	LVhT-*$j<N$pTidix#ILA,׆W+1T	:ߛ!jԎXX}WY xs
)FR#hW;.irlg5oH\
M$c\8FԌLgd^S C~Cֽv 9Zz5<	'<Wpm̃/|hG>?;N/\9\wYN4٩9q7ZmĄH*kdh١-	K3%te"s`[p`~\`&e7Z2T{xᣖ4s;2xӽK7ihs:eTm.~`e!۳XkT%Y,8@QѰ=\DG6Tq#	Aٴ5Yl9"}\M*Qcr
*X>-Y4O(#/2>t]ӭHLұE;*3V587+$*
3liT,^}Mg	ǰRELM&.P[^rEJt3w
+H=
OčstqrP.z1FUe mv=
fRC?GN7ViXx}4ΗC{phN~hc˷ίA}~Z5߾Z$<bf!1Z(܎:F c-g/xZml[WVR֦_i{ڎ6vmvu6nmn؋uޱq|{oS61ItGІ`_$6&~LB@i?4ڤ 1{ݴ+$AU|ޏh/m/=Ϸoja|}~<׾]a'탧V4f˝$
PRYL)#^OtUFٴM\)dX*̀u|x1ze<%GR%wO}ѰZ JԧcfYD2EgX-l[5ύEFNd
0g;ZWWn̟]MTT!Ej3iy=::I$G-buy]n_OLU&Ͼ@&}E2:eA*gZRAYc"(VFϯN_8+ᕕJ-=--\qp£;7Wm>Jjb2tõmg;'ߗEx&/NjH
8GJ^t@6mF>KbH;ɞ#|9jd+̶2s􉲳j2U,d>c]DhҶuaUWj%f|'F^\|/gb&B.~l:MEI	/Ղ0j|]!,Wr揟󵣛|j4Ty^-0h/zk5_zgā8ء!c<vB3NpAU%ΫbG"gn>d(Z2}py||_42l%uƵ64)!UFtVV1-$эACj.:-:[Q!4U#{ɩZE$vt
kLTy56ԁԑ-6ZGt|R@HLj:?HN3c :7M6/q_t-15OVb -pMD#L>5<5G3ɉt4MYHiDqM5<X(
Qjq~!>ȿ,Ə𫇺yhS;\x׫GLSx~r,7f'xr`#߶?r'G6 5Zʜ!]urY$	P#ӆ+K	f0&j+Zq+!\QmH慾xRX*?x_,2Sl1`@p8cbb7@脲:D)xJ
FXDiF`F?EG
MgD3jny8+4@'O;5_ٟ5k[ӽ[1FÙx>MTj<vM@Gs&"@,$]qf#A'=w}d;8vW{8CJ48I}Rb=0@/2}pHۿPd	&?BǊ99GnUG4k
Y܂@de}rO=ďSWOYAiCƀBj>[:EPƴXU\C bi7&U\(ʐ&H:CՐޜvڣ;'z
*'!w-q'^OǕNK8~=olvpAY4;pW*O~Ev{}it6iMvIR34V2-KG{Q2AOQj:CH	_@Bz=9=O`d~|Xp
*E8	'8֡frf柛[=YǯeW|-b&UTWwT-\IZ ?z>w\x$jK(*"zF%`)]pUAX$8auI6ss\>6~C5 AnJxW=
R!yt<3Hs!^c%[B1 9MA%OKsaDK;T-`fD9͡ո0ڽ
	H5^TCs'qTOBG|G˓hߍcrzxe*35kg
3V@*Zp2Р+!XIYLK^2H$aW9j
(?Z>8˳`(m}%~!hs]|3oѻ﬏͏ǧH^&zVgY5'EH/TU<ьs5NV,58M5CZEaS7$Z.c=E^`'EmɅ-|[7oLW3OM0 qQ%ŭ[rv9[̓рpM~Õ*̖5a*;	r%$:*h/`rao9.bF9_
u6ļ&vp5z˨_T|YH
$F=ԘsLbΩPk1Qdixp`?^4cLw NN	~m/UڨQ_żEPUڦBOԂf	vԢQ
EˋUТ_Lj؍Dc~P Y24Cs1LފnDmSwѦWUAw.+ jj,JLPLOs7M&9,ЀP wB.y+| (@iՆ˘.4cAOҙ"cJt$3_"5$F-M(-AW+*%fu1,af쇄8cG/i20>Œoz^5_)  (>  ҕdg|>j+<tn9ڐ1/^H|(u<MIAt6` t?=U_b
̯&fnYV03TG00-bGQ	yۓHʩRw8PNwZb} Cɠ؊	J:β;6D>wU|RS-h5۷ $[ob=M>+Fl잕~(X ;?gcH&8r7x'
'oM@_y}>QSGKsHqͿo{N|Bpwsv?<R]}K6%n81L&k
QjlU3~=]o	a!%qL5nVw 7ts	Z`ubRQ2j+ُ/n"~٥gcmM;'ᅯ[YЕUUe*r+71~xO?6Kz/cWZnHzR$s,׍'uI+z"	 P
Rr,B*ԙ׈uWf!Ff(ݧe#^!)>F%--ms^&t}˳B>|
P-!_ ڻUeN< W <_;8{ =C o9m >!.Z}#ֲB?K\Hx&_V춸&icQbwK+wgC1z$Q1]W.VUu#IgFR{;;ӡ7G2pxuQ_HSQm#uN<n[P$G)GZ6^u^P@KQJ"BbKoKu7$Vp8=yX1`7ʹ}BurV&2}QAɧS|ZnB=ɮqx㢅f6|FX>N6mMU^
jUW-HSj;4f5xS#XXRz㚔jCX\)kO4)#,G둓Z<$TiM(:i#ΎcUoL{
!Bߝa[`ƀP-vVbA%1gSIqA%-AĶMW^v-1xBuv-TY?Ebc"Y*kp.FaіM~,#iC|Oh>X!gJ$ba)#qhi5Mٿ3uLbIm0)Mj2IRc('!)I~xe_a龴8{gHWӅ,/+aXȬH1%U0PxmQQHSQm:GȜY;fr$\Fyw>
|)z0CfJ"AbO=[Rݍy|;.7,s0`K΀u;L&b 4SOreh+ځ&3{Nhh}AJ._LGȐS#مmvN{ޏfSV3;NcсWwsFEEKLBWȍ鬒Η<
ƩSB95dEiLCzb@4c=}޸cy\/FyK$eYx1aEiX3	:Up{[--7D!ضaѾmҝf%,|^unwҙ܇z	#3fYI)q	X|Obl!\_!2TxKGJ?4G
f˗gH *ݩrU95&UAT Jci1E4*0o/bÛWlxhAwt㶯[Z.>p]{+_ÌRY56g x[\,mcnP8j \mAx[ㆇ6 0r	ZxZ[l1;aY)/ƻ8P(̙݉ggl#p<RUHD*JV")ZR܊R#Zj*J3Y{I;?O_cf5 Wf6ρnwf6p>\gFǘxQ<ת<>3"r,pGC=ydK3rr湖C,f%tͶ4Xiek%_se&MjdYb7M̪Vai!kxBо&'z	jy,.+1R~k9|Bt7>||uXHΝ8`IwP35kCjVpj,nd#\wb^ժr<acK0纋b©! =H.&V?Ş>#aC_46c_!HKD>LVU䣢\w{BUFe52>stFz>ZgrKPPa)s+t,#;&V74'@jN5CRf1xx	@m+?|h|~eJzg=u(of h[Ifhjtpwh8p>.!.J~rJe:Jڦұ$93\)lȰ!89Do_]_7¢[k+
Fq(jʝNDy}Q	BiSvO_4}P)O|K9{ǶT5G?FlVCF]sCK+4y"* ԰Qڴup.Ml:L<cA$dY "hjADh:a^MX/v>Z|";[쀏֬<xz.55[<^C_v_i<(KشÔ.w)3I"0԰GxkMkJfc]u1CEB	D:Jq1fD]Ga#/,34;Ͷ$YNjhZ^`4 v$H&j<7"sP0riy1UU!Zט7d'SIkSRW۞\3'44}9 w7'+ۻ$Pzbn
R&D:Q3,'8bCM|qIoƺዯP~2KD$9г@WUy(eul;#0&!OxBApNw|)j̗I4=ik:hq "*1$%N*UrE	\)hX/HZ=2ɡELyUqmߘVHMJRaXuO!KzWz3J4BeR۴dwaܖ	Yōl
LmD4kM(?zPf1d~J@oW	%.X՜H0skABuF*8ÖSTh٠$׀̨aOԸN?|xI$	Zq&B;S=miMUe"uM%DOg;a_gNE_j[eddt7#2 Tk!r2kg[&hcQ8,j",	:V[fu'32YܾQGp}V
R_N5CM~FF˚
p;E-x?b̅w
/eӱ=ޙ{SzIT%ms40єRXԧD@ʜ-]ˬipujLUfU[QjYS0l"KB}8^,ÁNY~Q?`.͇-`}QN@/iwhDod_ɛXiKD	w.=R;Ld	@P':DJI<n;bjܜvR:K.l{"KH	=Dp]`DcX3*X㻵i2R-#[vr}IosnyZ:$٘8tR9܊S& JQKm;WGRLh<[g]q^Ypw@Wet08FA]_QobZUf3аed
2\Ĵ2ŵgɡPn)uĒnb3ET1pM_s>p.sr}sBh5A˩fNgfndEanp[ew}lUNYjT*NWcߪRG(t
1Jt7*H[p/N]ѥ8N>M\6U0Yr5GI0|ȯ?s7^CSY5]홧26.V<ܗ8 Ց)7ukWBodBHQ5u)r./+ݵ7=eWZ7s.#-	-jl=ipܒxDf|ޱz67j<~FIud.?o#6[U,0W<L.>̉1B0	5dht9١0QDFݑfyWT(&{~3k*
wfp7>+.B<^SMMGS5`D=jnz@[ouW'C%+KaQA6o0}Q v/J~nxkng͸a)R2 0?xTk[e'mN6mm1<aG6Y-SX#sgNo7N9;KYb;0caǮnT^^9g!Y6:9y~ϳ֫NsNs@?4E=q|/oF9b\]VbDEYaɂ.[xrD
D}BF04_f0jڏm9<?Z{ގv㥡n=c@/f@t`y
;t
ٝxngm[S(L<5x95zA$RɄ`@VEL/1EIdpHe5LZf/2Q^Nl)sU@̓JTbƨ6DɁfA3-X²Cl~Nd(+j!i,(@dwr$)'fwZHU4S|P	;n@]"iThjágDȍo`	Sno3p=-;tEQB*!)|boٰUP^|ϤwPM`:تXE[9M?Cd[OdefD%K5Epqh|N{?00#U~tŇ&O`n3Rÿ$ACahȚh/.O6QRmcG}%0hDH[$0ػ؃!6ucI1yK>Ė%Y+}&py<DqFSG"lHwrn{mYcTg:כFAYRn2?-i'_;+/
*{qzxxZ[lyIْIYK$^CHj$e"7&C\f	>;{vwٙ,E?Hb A 	>8v FТ14҇@Fr)z9?/g^VljjэfmsrFhVF|+,ueKy!>7-/&w5iaYfkzFXL\LXsF'`gH+|P󤀵>va͖e5a;e"aZ<ߵ?3L,s4d~Ų׹4V]ψp;tؘ-EvIs7vՎ}L7Yr\qG8JNg4|OOtV{<B
g|7Zwv~	[xfq65yIs(4=xA*N6ڎw"z& l&a?u^lb~*BLlhYsq<(9;eSۖix;}wsTEżrFk,n,-ځ?o	vuwaa7qpJn2dg9*E1Ǳ3mJ3(/:HMbmȟ:+"L'_6YZHyП2-4(c]73:K,<$)ĖڡjgNIYHMcFvbǺ}=<})'Uq$(CCLw`8
z"|qXAN)4Dnkmmw={ y|yPbo=ky_`q۵8V3tsO+Vg6"1gv,/ŗDjvl|)17q>>4&]ltexx>mC,J,,g|}c!ߕLzj*1rS'H;|sعFK,-.'Kh)҈T)N5XAUUz
hh11E-fZ`׭C3Y)J'E ҺX;҃~[/
Sed4:bѲ{7{Pۚ(}^flt aRTA?tD^!oɁU/ѳQ*XhgVsU(^rxNFƋEc3k2n%E֜{.!J3`gw}˺W'U_IL&gRD?ϭ$g=,Uk	U4qB޻g
O>$2Z!J>;sMq>Uy,
oυ+3r*e&n6-|^2)!_ΟTFj" LI\s|LIebqb(3cTb8$>F?>udyF8ȨaGUBph5<&E.ʩj,"JX9ʃ<uLfN~IIM`$0ݽS<\P= ^̹}̄5v&<L!MK_p%rn8y7:MmaDOi4PG@2t03Nt]~[#۸$ezʋ$σ۝'d)=OTWП7ڛPnvoi*0Fز3p618\W-$AJ2	u@L2vVﲠ>q"ĳ(&1a|U.Wj^ rJ=.nP1 8mGᚊmryӰD噌N9]*[%mw8+aiL.й 'Nqљ"$qP'R'E֥0&vr|<ޱCǏhڡڗSiJ"g>	E25B{UHm4Ylݳz&J\^FY[x@HEcA**0zѾO	RXhvkIgt?ckxzX?.MvQ3<Y]6);J{hm=32V?f"@wTtoE
d(	a:s}Ր, ^ir=My&5i+0f̰rJ%̵qF^BerJj21p=J|z61 >FB*yΑ%bT7ht+24M߬T7A%tXD!Ԕ2m]8Mz&b>@c}{0If5>võ8(Jzk2b_SiL0Z̔x2O
#`b);(ԥEOߜS\)-ZY>7A!魦XAORWxP[TX#w䭒ٶ/G`[G'<t+	rc$9v鮋Hu e-ðQg=cEґqA'rBMW&T4pS2\t)4Ȣ)&OeʢSӆC8tudp|<&ZkфmݢX(Fc3z2^WX=U,S9irΪlm話>QgE_-zP'Jak=?_5[#./bHZ2D=cc=:԰NP߿֡78Id:lNk53+T{iͫSf̈́ f\YJRp9KN^Ry)K[v9qR<	!nH*C ʣVϹPg&!uG[1a`m6S!<-*sXILnZB3vgC4< M)c਴Hs`8Qc>͜=HΞEL9PWk7CO.o1*fo^JwI'Oj_/Fr0;BrvA_dc'	B7 B=G
%xE1&0Xir7co+e4%^a=#|zStƩn? ƓӞG)>CƉQ
;\rt0_qtyHȆasXrUrYE|0߹_7O?%{*!m{A޳ȩnƨT`]纻)wԻ|s߱{?iմMe:ufW~t]tׅ'ߋ{3.b,a	-][0o}h~yce'/
wڄ7^M캳}ѯlԦeQdofW0sBC5bp̄t#Td,;5<=wrB-i`ѸbC5wQJ6=~ZC/Ȁ˯o~xݶNRhV#ݻ6vfՂ+~p?'GKpuos==i;76}"i3
_quDKm0^i{5KH%9ny)c^!.t5uK"2@:#YlёiÍMpRΊ\;RӒH;qy^m_@lmۿ	y.
]{7+`]YMꞏ.ɻz7+-Yey/rh~̏H~*	>Y=؟|Q]a=RO=uLҢQ糖Z[G/a-zwI6K5X~𠷻o;(ڷ:M$!_0L6򁏐Vx-P|At,x쉊YBK	k8^vp1j,\J5>SЬ5J^륀 F?$_iZ}>rl_oEMxWNnGeDJl9ca%x	 l?2	o-ĤUR@Ux9͐aSf*1YD"#u6EGCMQys)pklowQ=KRZ(9FQ̄zvdJo`C#Q1l>xŴi#c<V%zqjbxŴi#]+ $xm_HSaלktfC8qb9f5vma1utQv!^+EAD$D!֮^y|&[ʖ9
,!ɕMcEb9,ɘ3iQyAL/2OlwZ>%Vzm_I/Ns.}Vg/k~cՈ3Bw<])UJJh>tksGKz4n\,z<X;v+vuIG׎ާ̿T^96X)X؃ߊ	ÁnDt1	ь-:Zrإ2et2J)01lDBudZQHWl8QîmzcIt,H\nuxLc/xx,më.<%}󛜨\pJQEZY}[
S?#!xU_L[UiJ˿Rt6]ǔuG=-uv΂Y"2f..&]јOK|qh9h
`}}Ϲxz]A1 \7=}'ZBD]:I"	'Qdzh#zRZfyn=@*+:i8jqMp'p^-|aoبF+
d;`vN܆X^:P]`p#qޯea0{ U:ySp_d?N2+&"dOSVUc$X5Ӧ;KKvj!(zWqww\7pQ`]H;Y1ϬR7nffAE>ITn:rt,9xT7>hgIC˅08~\􃶥Aɇm;T~#!*k	Ed%;G	ENJJDgu#oF#M&8{e
g"4d//[G[ӣ}Pu}n4Ͷ^^l~cK?{ê]~AH_bhkt~=H^̉p;viVңCCJCmpOb#[y6ENOc#އx2$!%%#Hr|:{Ǜu6%hCt84o4+`#󫼩h략.qVW+lŜOU[#V6[:ğfw̤ShzE|*8m")0wG%(Hr
R4 ^tH'Lm!uNT%uʶrh)dvslE&w[4`q>rU<R9;1F&LQ6~L/9#V{lb]XT/4-_iz[zT!>36x[[Ml-0&c4)enJR|  UNx{6?a:(Z\ZXY\_yK&<5T'HۼQa.h~AjPG~B^~YR2Mr]XL~l9f]B6`fI*XbΥ Y@e02)L^(*1yd+	괢uX6+ng
awUEMNS	
R(+.-(/:O "5J%ATa*-*2i2C= 9¬QKX~B利KH	~!~%2*Lv6s<xU~ܛ71aj6gkaZYd%dMo:oùy&*'&4EHlsH9d!IRv?5B퀐d4X90*#30nVw#A-H!%$13X!vGZGe+&dO.,fԜj7ycc>;?^y6fcX|9S~]	9k	49X%1I~sXI# fxA D2
 *oF!j252GIe,no.k7{6`H26np&S6x{ƍ.F\
Z'gn^`mL; wjcx{ƍ#CBx{{s'J|?lyvN Nx, ]( ^\:a7A^'bM:zbp'	x{qL5X1*LcyN 	!`xk}x5ㆇL?2Ulb.ge䙬'6'alǱqIxMl'kkN>hy0C|L@A63Nn]>ydybG''Np?_c̓7dRJRRRSRS&zM){y^}v@`69@c`
5$&pN~u/X;d  )ܯ>f(i~܌}mX:9(rn#xMUܛg@|iiS& 몸2h̓#|Mw:y+͵*pȈl%&ɏ-7rNM͝ 5|%i'O̖*9;q8ӌ6{Le|?+D&sM-r<(`[|;KJn"xk}5ㆇL?2 :NxqQk'_7l+<QbsL -uxq1&qneV⚜=>}Z}'p7KJfl/"WPX_X2y-HdIImP,&`Z3*ZN-0gzlݥ,X	Qɸi_upf`flbcl ae<ϕsc>Tks.j\6NiiEHqm`"0D[E@K˸c^xqQ&qne^0(mrw]KM/dWPZPWZYrKSB}|&JLnpؼ* '`xVMoTU7WT"TF3nR ڄdJQJEzbag޳FhdJX`O,Bl fc7F~s=x~܋}t)"T ^= Na(J	i]%W6Bt"Pq
{:tłɘ(\l8O`KٕCWJm⮕ڂ;
	ca5MGt+k!xv{A;ƹn7 UЁDgXv:
F_G=[=ʎ}rG-:x;X@۰)CO_^4 V+ FXiziSәV-r7^_2sDGtTfKh}yU$pk;׊I[;;JPQ5	(%]*;_JޛnTCI>GEB(zݝzLss\ο` Ml\ʈhOj-[Wn^[zL+tH&GL(uzDe1R/SjU,OoܜlECSu:YGӘ.C52qd6g\ހ\2`Rh8g'Vx\LȒT5HNh/A>s>p+35>d:8lՂ.K
1;y_+kcbaa#&eOx<Ą2JgFye Ãky0+)eSG)ə74H3
pn_HSRK R4Mn Rw|[bX#ē*jhYV'-H{FЍ\Ca@&H4>XArO
6kSbyS-M3Wp̮ʝ%5l(8䷋wJ0ɳWvES櫻CTۻY}JT6Ax{C`@W!9?%5Y!X/UnVY'L^#<y|Ѣh x	x{Cܛ39'KM>3
|؜"Â$!4YV{F?D_F SRx{y\
Z8B'kfs{)d*$&NV|WO!R!91''3/⼓wL#a:!'h= E0lx;qeܓLcc\5y:-'N5@}b~ Q@xy<6oY	 Sxv<7(*OdݼgE$ v	\xY[lWN\;]_cǍō'Mڵn6gglbg-< )q@*H~*Bԑ*!@$qJoT ϙo+K{?*>]Beek^4?<x-|i62DMKc9:7u#Mm-QǢia&YҔ DU!7J^ǹTeb\!iZS&h!A-!=G,P)9|~kBiXv'jj=K`۰INV'o`'8%Wtԁ^,MMb(9Z![&vzUQO˃a9I$W*Pʻ5-0@@,VxZAuk$?Vm9JiwY|~plGԠ+&%FU=֏ŝV;vWn3Hﺓ8sدޭWj,?vŇT2sccfpHdȺҌUyGQϢ@s{	Q]4æfPߞku}51spf>҄ɖQM.RKT^,H91eLL%#	*k-~/֞j;Xg`uG<SW'1MŧWzcXN>L*cR+uTrf%&MœXdxOΎSC2#Z*3Z/~y?J?p\Um&9X $_mp'ف`G2J_}CX/)""0lB
ټN륢Cܥ2GOa0
CKXԾb+$X@HAQa*^NQOQVYP4Q6͛6xk)mɾ.^}GP-r'KW7ލ{7
4hؚNϱ&yu=gtOT6ay;OWO{{hXԵy\S8>:M֕jAFt~UN>Hxll+b+R::?NEtΊ()Hd4qY1 y!,T@=w1UfB!ӌ4Jݡ!2i-˚-2g9fHb
P7
**Ĉ]¾,rְ7x6$IZPelm:_$Dv^1X,GQThZ"+fJ$%JYfx0):I
pi@bp" i9֏j14zL_N-mfws#RpWI=gJ xγTπV $M	x 4~%U	Hg˖7ݪi/i^zA0v/E%H╞0kJH8#nD'7O!d剸ޝh/=$(.МO2{Q"M%0WdJcRt9,H`
y{*B,5ûk<7OFGctOtMl=B^] MQEe@FRrق*;v5DeXyDEyMі	4ZJJ._Z!ZY +j=lc&["=M'w(c~@KNE'9̂S۵ϙ!ޞqpXb^ЮCC߯%ʊ*snM\ļo@2|AweS0-f@*UgQр0/X6M*"hY 
>ؕ
:[~-N~({^~e0$ ? "Q,|g	Yaڭtӂ
:F
.NJ	a֬k)3 _ۃb
2_x_@u*; -'@'æ@|TdGm-ӒRhTѢFc{7BhIčX6B`^q$_1gUK,iZܤ,`D0R'~E
h3E*?RF\#)--+HqPnR
OdL%S}L4Z呡qbJ<)5i-A6Vק,SE_2ƀ̳Nxq֖R񵽃[^ywX[ňKGk/^OŻN>8;"s۽)ڐx3-v [Ȱh94#Sqוx#}0? W݉쎮@XXm>ŧ|XPQ00nF96>x%`lI;{7M&׆Bt
.X%ˬ-tum6*Uu]tUe`޹ĿD2ƯVa*~8}PC&nwp/+d f@ f2@H	D1r`vK^!CbB"ɑx<95BWqD3M;ɮ{I-G+Mh^P۱BAA7}*1mž*rkӤk=K2 >)rvTSёxr9@VHO#xY[lWN\;]_cǍō'Mڵsn6gglbg-<PR$T!UTBԑ*!@$D\sfvGi9~N2JN||@eVdW>ڰcZ1
􆎶	)Ɖc40,ji\p*MՐSG$/xt3/2sI1@	@ː4)h!A-!=G,P)9t~kBiXv'jj=K`۰InfGo`8)6uԁ^,MMb(9Z7"["vzMѦQO˃a9I$W*Pj"(_5Z<aYdI~rT4FϭU7ՎAWMJ2+罝<\d{߫۷ÿ<NSu'qr_W=&Y6婪e$y&	(pɐu? .a/bx#E'ˣ/&FUt]HJARN&CM~b3S׏]eC^7P;hK'[FR4H-mSQzRVS `*1YN29$c֮*F!7[{]`џmmL]ݮt,6Z%a9<3؎I-5$fƣ#	t$<?O&b>13OON {tk+hpknƖ:~UTQՙ_D,o%@b7{NN ﾎmv$l!g:Zշ:2!!z̆(ki:]/E.&V9z=U`~_BĺE[!YB
zSRtBUԀ}ʼoطƛKal<Ou>j;Ytn\sU(D@GԦw{6	&Gϫ[9hS}׷/W|m*|Zit@}?D]dM`Q5䃝6/"Վ#Ǒ}Y^IYU#V.iPA  5"TR71L<3~Ȣ;4D&!eI%fVl@i&
{`B((,l"R mZQg#J2JxuU&%LBd J:acrI%"[hNB^%ChAkS^P"߬{\젡f	a,'b	FY`vNMoԮTզ
ra'7"\z⫑?>s(p<[@ne
@ҔJ_"Pt&l-\&	®	@4

nhM)^r	N>`큔r-^&3*FiZ~sBVHs^Gp}qMp^vHF	姙hҘ]F	8l0?NM*]^/$#KhdHtY'm@M&f!/&/4\C[ f)9l
l;Br\eXuDEyM! -[i.\,B `M1WZج'MDKO9YP)+ݝNrT9k55C=ḱd9ӽ]_K OWU}nI\oz2|Ywe0-f@*UgQр0/X6M("hI 
>ؕ
:[~-~(#|^~e0$1? "Q,|gYaڭtӂ
:F
.NJ	a֬k)3 _ۃb3
2_x_@u*; ͇@'æ@|DdGm-ӒRhTѢFc|7BhIčX6B`^q$_1gUK,iZܤ,`D0R'E
h3E*?RF$)--+HqVnR
OdL%S}T4Z呡qbJ<)5a-A6V֧,TE_[Ǖ2ƀ̳NxwR݃^y·X[ǣňLGk/OŻN><;"ڽ)x3-v ZȰhy@}_7cfqx#0/Ww.CXXm>ŧ|XZWQ00!nF96>
x%`lI;{7M&ׇBt2*X%ˬO)teu&*U5{}ywлM%1~㵂?/oȯܸ<{TykW7q	dd{P̕+GX! 	 4"e 08(@B2\ `)@C^4y;e'Is zǄ:0sK\P5ВA{nɄ_+tcIU]5o+V#_̟%7(/ 58̯5na%lń%cO1I1`ܟēc?2LzQo9x{w)y&4+(-QHOIMV(+I-R,VSH	y%yɩ
E
~>>
&aϽ9wmNbPb@Z7M#@d`r&BIFf[)@I/M,Q(H,JMTt>'dl#D?LޫF*@
*}T3p^\Viu=9Wbsn6j 58M'`Of,mffT͚7xR36x|Ear=Vj)%dvYVbfN
ȴҒ̲ԜJ<a%`@C t@ƀRR+QHLKKM.(-M*N-,M+Z(?9xBw`R6,p2౟nU$c ̈́jxW[lYVnnM6q4㶛44iz68m\^=9ϸ3coUJeWZ,/"?38n-3翜჊}P|eeíVW8rcAS劮2HԸ)VKUN[HP5JAr(FT~Uu>ZC(w
gB8c)gPOԬb%1sfArtN2tiYfDpr/PȋBsTKr'u#M-b$Z$L據YEWIX"h4S5jT^x`%QMx7!sЕDa!2V@iܴVKl_,>):=-cZh	MI-x鯷JR\/iO/<< L9N'/6!QӂpLM_v7<&f{D8'P%W=<zKlG6߲
!T`E{?qZq魓D$|
ze%u7"+3C B%yEMqp#N-3<<هuͧqjLjlZJTM$|:pox3XW4Et.@mWG$ʥDH:kZX?We&0r+*)ӸJ``%yԾ.oEo5?=m%A	:lE3šiYD RDQ9kRukTYa~U	0:]ИW@Eyyusk(JI6r	6׉Smr#5gQÂCs,&Nu2=K7<age25h7Lf9f\G5e~ H׫H`	}=y}!/g,	~Ni~㡙Z |#tfs0T+Nx-,a)\}/:0SQ ^'#\f?LG๞)'$v%.E¹{;^t
'V0dRBe+4`03sS>+OSNW>EYOȝ5ZPmi+.3-Cϗ%k8ET:g00&ˤԹo^'NC@tf>șEh>gܾș´na4fwL4$E(Ѳàb2-L r1D%avU7D18LX6Qs(W/$XLܾ$/\~\֏ԥ]1>*f|89$Z= }JXV״e+S(_(NЇOo*ÛǳWvi%nxH=|zݫ_~^jË[<bu-)ѥoK]).Gc{Oƽ+/ozދ>mz1.'0>*q`Gխ42S149+8u=Ȃyr"9yg	/:5[#)zZ	o:遻7ѳܤ>&~k+MÝΊɕ
w{A֍yqeI޲ȇHG=,E!9b:QS4fJKmϦf1rK
ْp%R)l=!echh||l9/WNɑ`JGڗncƂ1|&74Y2pHGvGǅlL=-p&|x{|qm.|D%2JRsR+RKK2R&:XnogƯjd~~¿ !9xW[lW߲q}Y'Ij:f}Ɖ/q.8ϜN{f33f%4/X @R,/"x@@Hp33iBaϜ3%?x	JR᧥-ʌ	*3ID-+pY'޹XlչLT& _/{82U~tbNE)5w)89:68&D(3Z<I4M;ΈS0
C-[78IR!'d&B-U4@B3TOJ9'3ImbDCBK;h!q*̦k"LӘb=dNm
8rAގ'ǋYK)2Chm3D(@#k[.TSv &aS+]ӅT-dVSF2!0|Fe&'|SBy%# h{0_>QE<.A_9	5~ɮ\
ɫdM-jnr۳r=5
꫚q骒x$|:2Tdti#3S\%+Y/
YMqq3Z'PݍU!\HW7
XM\C_}(i[5+6F
&Eb:)ob*,0mL[6Ώf5&l	6܊&tFi6mm<6g>17;
̷تnKpߚHI*~OS؎GKL 8@:T&U֠%>|;ji\3̂*{>84i?Dz|PhEߴ7gz%dkX~}OF4r	_]فԼMM;FJvp
XƓW:0)G)sb+K~Cӌîc-xi>F/u; {F',Li2` zf+K*\5F$/}ۈM$.K3y%ʋ$Pvpׇ!01psuSNd$qp?Z^p8s-MBe0`2+epKF*')^_JYE64ysXƌ4#xe%ygm³]dǄrǿ2(U^䧠?{P{No]\ПnTbϣs3WXJ[1TTt|.PA1D# bdEI)UE1LXP'e	%"_l"<!+c'9=L
z;@HƫwumLC'@,x1~w(z W85s
l.>_Ŀ޾6>|GF-a]OjnAҕTttR6#_`c\6bb:NS01vA, 6Νuȁ!A>ojoG+aFobrVӔv V>y͈m̠Ԟ
) =WpӱE>s=E
WGd ʼ1x%% ҍ¢IZCH>=,GA9b:׹-!uωKKFlɢܒBoH$˦FH^3HFcfs#s'bcs^=9Ey)j#h)6/?YbE)?%74"Oav+fp;p̘F5 Fx{tqnL2SR@dBJjr~JjBrbAbRfNfIfj!f VFxm1
@EIr۩S$ZڈXDNݤO3*^M:<<;SHJkGẂi%Q"avٗ=guP	7~@ơ*`ndLتbh^ڠXbdf4R	7kAoVP[tW8Ȣ(
qE G
vxۿq^L))%E
a).)E\
Z
 J*LMSHEQRPP_V+I-JKLN-VH/R +f楃̨̙l/^`	6,83?OP`s4SJ4PVAK 4
xWKlU&nm)K&qܸM?4u~MҪIJh)̛)gf`bXEBB RgVH,X 
K73v\
"w=.>~C#ZEg{tXMe\jLRF,|n㪡A-0\yK(Xlr2=1743bhT%RMҊMMeL牝pӦR
C=UQa%$N$T#
0bU1E
'JVaIē0SMlȸZ&9`֊leZ:UmR 6MDv_A0P1aF;3,6@~O_Y{M50F完EQV*әV,UJ{ÞKS$k0y097ͧD'1ݢ.x{k-Nw1pޮm'6c!U}WCbYjZxwH|ߎ/գ(vGuku#\ݭ7d9轊(<$p`9(<); DZi<?'797z;|
ܹZy8t_2W7yʩ)E#)Y7<XtLõcnj	ۅ&v\BGpZsol0Ƽ#3$EN1uE27"La0a6Ie,g@ƩB%ZYۢ#|Ƥ#P/s|uے!^]8Q`7+rώFOgtT`s~]/˼s:ǰ=
CX\5mSQ`(j}SBX4m
o{}Tj'<){XDQPi8s?tk<5㇗z6m(FXX8]Y7InlŴQliQv E0pn}:oJ3LN79>n7D 3@kH2o
h]~{靡β,YxVNSՎ[ <[RޣUr5{(}Eh,r?Lmu
O;nY	`KKUԲSg)ub#%KVfo4w`Р7m;I*\eR+mp!s!E{d 95Y%5c),3%Ҭ<ud.J3 <g-a˿_i[/v3~zbq6n@w"sq0a0-0O62kUqI&%l!LX┣ָ-#NYjzͅ?Dl'3̍qmZ?+/cJv'
H^
-Rz~'~}q bWr~xT6dVG>
.݂XkqB-Ԭ" IP[^}OTb#Mة@!?Zq&XQ =x.M~3s'OdJ$A(3Hɵ.Ruˑ+i*|X_Xjlk"*wQ͊{^s&Wjywpmv%wDqf#/׈(O~%, Vqq35`ر_G.{xF>Pbd9ByO>L)/?#_(IfX?-@`55iljdzt8n-x[q^2JRS2SRRRS2'E;me >x[q^7of ?PWxq^L'oen _	ex;23K6_`jbݜqqr$X0x )͑`	*k!sc!"?BD1mV21	a13&+Xsm惈n٬, i7ngx;2L1 ^ x;
3K6_`* O:x;
A)Eɉ%)
řyɩ
&\
Z
ũy%)
N%E@5)"\@ vN!A!.NA`5)3)f =1zP )UI x;
3&O*\:> q
"xq*L))%E
a)y)E\
Z
@H*LMSHEQRPP_.V+I-JKL2@
 řyL~%89ÊgrKjrNbQB	XN,7aťtM> )EDxq
2JRS2SRRS2''io2?3d`q
Z\
@``k)%e&&*$e(%*槤M6WH+.I+Q(,M,- D?/5xq
7ofJ :Hu.xoN&FɝL@?LaEe)
 2_!5/9?%H!9 1)3'$3xs=  #hxq
&70sN>ɪ/T  kmx[سqC'.&}J1	 g5xW[lTEVKiJX[ʭz-@fssi)4ʃ'aL1!1F$!$}A `Ԉb9J5Msv7shbW(TABO9F4j9saJjgɂL$a8miD\+M83#ފS"Gѕi5n<pݛGq,elZ(cZXd݌$3Mk*bb󚅲([zgMy `F[{i4ϰQ6$z6
ԠyizဠJ;1`vqtvqBC4mEa,#ܚChѽЧB6/^ZUo7cLcXeUv[k8/8ƪ]-ڠM%nS,m`[$i*Y:)8tkaw`߽dXj2>׉sa)0#
dXỶ5U"з)1ѳm]*,7ETMm|xR2<	˧x~.Y?zĥyqr*
,WeQDP5,>?mCa2#NNBȋ5oHڴӴU{4}z!

J&UI#1KjrfEY9^iۏ#߷^k.*2LJ6p3J-JԄL /gNGi7q>\[:K&-{ȽX~P6T43O:
,W'=axrfu<:muRgΝ~咃jqc0:	Ln]]R'Ng]kr}Q>*9ȥψ9*oRH4}%1Q5T% m^*Jy..W[TiE7ftM&ag8nh.VV6H@4%wj} B%a$srC(U޽1V8bVZ+狛S/!#x&@dbyS2[=ms)q%,&3YV2)
,bAt՝
ڳdH$$`,(}x׾=vZbΥu
4*",TO"( HX,  >2pgMH8E9f]D<=`mhUqxD@Et`xjqp.bo?KL˚ٲ4Q9NUBco^I틏0xS0XT/&wuŻ+Uqzmg*ո>ݎ%rCOEBlir=?U?<dOc}),wD:*O.:1(,J_m8T_|{"XBe>.3DS1
TRP5_" (1A|ڡ;^l/H :I9y.m)ťbө9tBKl[f;]
8$sJ8bJ7teg%^ml GwzkIwY^=%s! ݑBۖFM"Z~PRwGCb@$y<Gcө Phnlx۳L 1:x۳q23K6_`	  M%x۳3K6_`cRRpH*LMSp/*O,JQHIMI,J,SOSMMLNN-.
tug%*92o`ܼ佬jw{2mRd̢90;!yjL`tYNf
̛YTj կ3M.Vܼ]i~f~61y,KUO~cǵ^^xzSV  Mbn`x,X 3YxeTnAU(bAh !@bp"!2R*BJR8EH4ݜqEtHA)iJ$D̛7쟏,ع?ȢSK7uHNhs|VFX|~pJ3\9ůK0Ȥ*V^O5$b#q`PЌbBU)Cj$,Dm'jBCf^;SA߉f<QVdaq
E"qQ^>Mzܚ+C8@b!b	0QÃ,%&a	qh7p		.K55	1L;!RLk@]h!d0pYq'Y)B =ŷB2IɼecX}HUu:PD	ATbϖ_81/#>g1'vI=lu&'2D9if=6FgDaMX"ϰd?KXW)W{4Q1)cՓXu`$S[.5rМzij漗,9TeTE@5-%JY{THPrTEz ݅=%Rm=++X]kݜOw6ؾ}^;ى JtB~NqC#]6s-M7hR0k:'vmi3-FEqxszيd}RvV,wƍMl{-u׏mݭO/{lxϝ')ջƻ:EĻ9z(d*嗤&(e+$)d+&Ud3sRSt2K@REy)@ɒ|l9z uřyɩ
\
=&3|5ds1{'o	L7|#ApzM>"|J#&?䘼em# MZx;NvR;)((&OfTtq+uuwptv\=fe棘_P\
d略gMVߜ! {3Zx{ne'7M~/"ꐒZYTRsS켲Ԣ<b /-3hvɲy1Lu)LI'Bwj
$G($M,xʚ =%Dg
x{qne'7M~/"P퐓ZY_T\S	de($(&秤O>o.PZP_ZXҝ_ fL^.5YVQb3-;F. 9mn=x{N}R'H; 86=2xpq1yRRK&(Lv0	d^R'S\+(y//h/JN{/:~RR̓9&ǙG%)d%d(% g$%*g敀
SSJ򁬢T0HuPyrNiJf^BB^iNLd_n6c:D7@U'
<p`	l =۶y~63~浦XPrp*MKۓZP_YTP퐓?/ܿ%$qП6aB+{&ʬIMCfk8'm,Dl.
'LKJx}fKafC:)858yy%*3O>9y0ؙk qh7x}qQ ̖`Y^VQĘ,/>rZW@n粕6RR0S(HUKIP,V(KIQ/RH+NM.-,KͩTH,.LKM<[s2֡ɧET6/ 0@xZ]l[WWҏ^צMdIҤ.%S5];K?]]{d׽0G{H@&hl!/H<xAB9^_;ڔJ9e^R\ۉ߬=\׵Clv|;5LU``ԍkV,uh&Mn%5Mu7ߚY1܅3(ԍbay* trU-Ʃj>ɸj)JK*ifivʪS+$MTa߯ێVWD/ćWuԃ]zDSr`mUȢ@	f'r%bMJH&-E \ւ<$լjeEVspgP!69!CJOEC_M8c
ы^1M9nIr-d<U,r+P;aVgکiV:YٮnDkC|f6xi}kP<ըHR}Y{(b)@*/	!4e[R٤ZdgPÆcnu~Lzf|6FTƅ<Man[y"q(u-6/9eE;emU,0MUN0̢8~3ZXt?AsPQV2Oؙ5KgRb33 )ZN5eDzwSKƁ]mdg5ǚlKvI1i'5xOXt4"ّ\\ۖ][u2^lr};v#BڒUD94XǬ.NÎ\(8I<?FbSdd&KģST,W2fn;)=*<ϴI8g
OD9?turͅ7lESwμץ \$8hm(.ou6 g:vdu>}_N($	=qQ7
Hxb^IS{cItѴ|\m^ahcLRmQY`p
Ld稢g	쥑$~%{ʵ<<aoߵ!KgObpxPptJ
x9ςh?顣ò8ݳUĕ{l>>4XKCoXAޑi ojنf:iBJJXTY]Z#Oܚ.!Oe3ۛNج@nϩ,CNYU[(V'BJ尰y>lf¾սtǃz2׼hk{b'+|uh]ng݉۝g6vbͥjYPà]K1QaP3k )z~H5@8zއ&1dNeyx()$))աhrtS`*31A -.QBɎ'ȝg9Oh;2NW UJ2KN83E}^d	mn	Xq 1Ϋf]K'T
Sj?臠9HJ8pN9a	~hC H?8MޅDlF,ȝ398h.@ ܆Ȋ'iؾrxr\e" &=%.irFDئ}f-/cw62:T0:q]x3 eo߽Mu=}[˖Oͼ{DcqT'*1[u=M K*8g t6*@BaRAɋH$Y01PZxLo8!鋔`	*mhhfF}#µgo
 y&f+#	Sg5vcfص$uĶy
<L&n.
cWpX>ԅm=N&c磳Ɍ\Ȣ'
_<?	Bq4ϛS=)=Cxۤ(2Jf꞊YB0`mNX鈏O͌CJ^D!0X`'NEm.n#iț<juNOBwES-n>JRZ4dI*D+"$eX=*Q0wrR& Lű5CDÓ AX80;{$bF	tcR=p^5"Ieu:I Vi\XYjL5G)-6`bz")#9~ep"+"A.X[P-8egO2
7ck Lq2Rj
d{q)sH
W3\vA0MY~	_8|Kxd_J#ArvR\^y	,_cpc9a2*&FEw".}92]6|in'۶:%L^L|ɹEU u^ӍvFtTuYBm*
h6Sܘ!>3h#M?VfG9y6:*@4u˙xWq),MsoUE0A#]iiR>?T?̞E;I%_x=vuՏ{t8av}o:H.zW$U0#18P<ldA5v;4:۹z6W$3kl3i\q7=74rASzx)XJba.tVpq	~{<9?qzY\	C|pW~92#.ɻaP7{:jgut}ߕhGثg =6~D?ŏdTGb=΂%uczG<58i;+ߙGせ-{];]>F^~(|x:w_u^{/4?{*^}c]{XI|iGM]p)1HU9,OsΡspR9~cÙ5)480HYϑg䴎3j%@&hY1y/\ƻ[W\Ջ	EZP>󘓱5Nbg68.Yl3*j,,æX⑔KKH~Nt69JI76~1~nq1?931S+~vuga;eīq3c`YRS.q~Jjx~V:"vΡ#@mНw(r>"<0Y~c]t:~	r'ǯp{i+VkϠ[p9W*~n\R׳ÞN59%?N+xݔO[UӲv:q:Q鏵ma`q@:tc.p)=rϹ5A/YL,&fĈ	͘io01&[5su-Q_7=}<?\׾t-CmwCǚ)1In
AYΙa`3Sڑ*wL2`Q sձK vC,XXSW|(6>ع5v1E=sT誀hqL5ʥ!3FTuq2qHV:T"e}(2k,PըolFpAʜSS*eQon&oGf;"aտC$h	498Љ,,M.%^ŋl9&t@e{yw֚֕hgdV!DB$³8Aj[Y<cqqĲSAT9,mKe)J#:WD+!ӡ>x?	mH޾;QF3+
?TsxAҘ¹\qE3'"Q_}_3B
z#>wYZ֯J%OƐwˠ8-%ʒ;wO?(!v 	/>h'a|wXypVFQ½{8{ޤs~nl~|P+hP-&}q$\zMzNv{ͮ68({~ir}HN=H:HbqAҼ67aw+p}n{^8[5ѣJx	2oi&A(bqzO*G0یt_;Q7AIqܘK7U?yjxRbgn}x[qS
 53>xXklm;Əzml g	2swwݙ̬
9V+5
O6-iFhP#Z*U"?*5ڤ?+R(*9ξl0x޽}wΝwQVc:\+Gws?TnaCVfÖ9OIyImnFNY\edD%Ctĸb@$F𖯮ƸΦN}f:窅'S6K*ȟ)Sӣ̎qftޓ5CgIC(Ėx8+8*VL3,*Z|E	Ź?n	f"DxLL4yn1ʹDbx5cąFߤVXIpr;97pcN:%8,$ɓm)ˁ~j\hh*t}qN	2k:änO'G=[-)_-Mjitrrw	7Ӂ_=7ؙztRo.VL
W%ZMU6eje+'|@ Ûh}$͚W:tjpG.CG0BJxJ0Q 9oxц,oӉcQkl+ Wu-t83އXqeKv!%+9+L\yBT8ֈDXI"ZBMyF@a)~Sy]k<[#Ѣ)/{a!';0<2aS5hueXQBM+OT8Z7QkܾAN!JݞQyRu~MLRS,VKj<,Ƶhv	:`r|&s]m1D-V.JC@CeRt+LHL|D562c$\iOl_mr+3y+,~nA^ѱe"ıِM	}*Z0.MlTԟ^ 0+ӃlSFtG/F"d#Y!T):W]br8XR7#fKgёN]O2;h߭lԲ5ԅE4jZYjLE7/XY6Ɠn|LĮZM=QCc0&G
q8T63%O_:F{䴐#+nyImMO)+ޔu[g}F,Úp,fmjɈ9C(-G4jx8Y^(&ʰio0'>[Ja=.J34;w9,[92̇jH.b99KQ16Õ]a冏n鎓N$I\"Yw?$ZOLƵ"`V-[N%]RQx-ij,yD
Hgnp[i:UCp⛰ڲ̾M}l<	_j[5(CGG`ϱwARƭ?8F%5TSyV.Gs1h@	8t26u1H{5SRMUwvtu*rAJ[9~t\C?\Iۃp>/_>_Lsf`7=܀b`4TIP9X8ݶ_/Tb.gј;X9Lmr9V&_gvLo͞ɩ?3 o\\86qt ~)^qTjtǜVYzpG/e4vSqDajX'Q]W'yC뒿-eéлh1bY{&S?GCT/
uj:'j
.s|y.VVFl=&v:877]4
={&!-.T'7aFY=*2~U*>7_JX@|<_N^o?bXڢi|ɸAfMp)!2p3M!,قG#k\9(tJgPw\O%\5q'uiM*N^ygr}΢@yXXp9+f8{RSߋ6o^z!g%)$3aƹB+Ρ~;f;&G|VRcx~.x[<&Ҟ<ߒs&Mlm2)\y_`נ0OgxOWZĲdԢTbɅ>gzr[r4$x[qS<&Ҟ<ߒsQ`נ0OgxOWZĲdԢTbɅ>gzr[r,`Zxp7{j2yB͖!R H xp6vɰT̼d̼"b<P+.IKNU/RRR0S+KLQ(H,JRH/M,()<yvd>Mͯ>RjO&A{7)ShD{JjHCYbfN
HEr~^qjriIfYjNBbqqfz^jBI>X}qb.Tdp |hx;
F

i
%
)
ũEeɩ
E`ԔDJDqqf~f+d)+$O~#=y95 '-x4 r?window is NULLa*<@J1&V7EnCx;|q-RwHu 6g\x;|V;>o^5	 ca	{x;|q-RwH}gԙ(!y{#7L7pPqrSS2S+S32B}|&O͹ %Px;|M\[	WNvTQ\&j<,3'"&|8%uNWl5Y]T˩4--H!7?erdEә+ntcCc鹌MLEn&V$ONŭ9[5SBÓ**o~q>&srkm]΂@nn2gEױ̐1&mvt HRk{_l:LMŌaBωD7epPia):%$6o@h7L7pPqrSS2S+S32B}|&O͹ Uh.[x7 J generated by the
 *^&%5"0 @q<eSFx{yqRhYm`28&L^e4yf+e	ɛ[Vv
tvwtuQH,KOIMV(N-*LNU,VHLM<1\H'l )62PxXkL[@HBpʚ<$C&i^7:^CMZ6iIWIR%#ZڴS5MZJSS/0m:0M{6{~7;V3%%cwKK(G%c,T"2+,BxK;̹RKaբNT&QU#HFJJ#e%cA8^ֆHٗV㔑nFKDaAR&%)O䴦1hi=^MTYR	$"%\-h@DҴ_iQR+R8AM'U-)PI	&Gf㊞!-PhF$TV$&2\#\PnObFH)rSюS {@$<y;rpfoSVi,L:=ܾ|?X<fMgt;p UU)wnnC_ۖA+?O||7UkL[5R?\Tauǟ	'sV,߼Bۧ~󸚪lTnH,{Š1
~x47n<tzhw.LGxHԹJ[LbQ{^&Lv"uWMaqQT}<1[{jO/)
+\(=Mx8'Hݟ,`BG&3963=w<rҹ=zFA49^$֍#
[TR
%ׇ
[ k#zDeQ%2Xγ*+s]Mk>*8(6˹,StNֵT$aZ֧i2]tMaщE";'eGC%z:'."kIĩ^,$\	/w,dVE',R:x7灓p@CQI3=JYMy&@7朢9fU"/6}>WSHk E{~F"<NV0M
46f4e)լI%^DMc&v:IM]F(LѰ"M`k+˥%;,bU#cp]XRVSyyhOjݶO6ͪ6,\r`gj[&}=Ymك`39crm/`RB/1cN9Ęj+
Ki=ْ5ْq2[ޮbt4Bnb݁'zSjTU	@neۻT3r_w"!eZ.+s%a^-|ݷFrG.bW xmՓ|⼘3aWo=k++<<n68e9<+QMMm,?;N
r)J(IâJ)
\.ꔔC0>%WD䔋t^Fnhj&VVLnڹ>qlF):	Olm G@˱6 u#{~1"&Wa7%9q	o[*^*a%ŘZel,gbÊgX/gkKmAqSѳ&pwG'+?6G!!
o|K~ZjxSo1qgBuֽtہMs9W]4á墮fh]f42Qc
w殔@C<caa :ؙTj7%e]uzy;zz͜ju{&2fa5aGSw}Pz8TIԅǡ$}_,[QWi@*P9/wW@F-U|\2՞	%)hn
g
&sVc?l(*}ωumD`^M+HAy`f ܹ2wWjBs)r!p8sWqkvDXr؍CX1z+1f`W
K<|\9$뼢}J2ˀaT͂tr(\^ |_:d-
LgBScuW<YkKY4E|$*"o52愌~zKhdֈ}3ZqV-o$Npx1uxZ[o8~ϯ җp6C;uܭl'>D'ȢVx9琺Zsi3E4m$\^taQ2W׆u7sB#q+=ZMvb>'>KB_\֎7Mv!b-U[uvߣJ؜/YK Rw!<
$ABk㤐_55so@DE-_v>8uQ%&КX;E,LYX_jibJJ b<dv7j|.a?uGl0dA7'aǽQ	wQ#)lFBL)k'g«_	vnEG,\j̨}ȹ4УPA"[1᷾'w"n]@R i^ 1#124"qZq X_*n/_rs1u#k_t/ciQ 1`@hER{<b6bLe ͲuFҜ)A4@;I"@_*{}ߨX%XsdЋeX; 6W~bb+w&i91X]$( &纕ySCJ1!gǽTwO'w^sW0-7m|0u{l7CPL9znVIKL(H4ng}y!B_r0\ar_o*|䤗yBбXZ`:H#J3)Ry<ܻa$z-WB-$q	ծ 8hV`bB	\'B{Z:
*a_R&#aV8qf>Smh>KW>ɷJlQt4+z-ތT`x4HQrx,>EPyFUhŀ 3K0l5deNVG8
5qu< u*4].
٫4 zj b*1Z-($|kbl2W+`y	+"F4>k6nY^ݣUU7i<m޳m+Dn}kJŤD
֓8q
rNKjżnQA"p~a}n4P-$"ӪT.0%k8[5ԥ]i-.|+f(i#BB"@v'+OPLEJw {1&DR	/-ڡ"Q[-եDUHόd")g+!+Ť;NS'Jϒ^};O' gj5XZ`ԍc;C=!g$Xae]/g7)@_{KFߑ4hl,ڧ=Wr6A K$t;jM@cM0%U}y-&9cGd=sMMer
GԯnUsD*WXQn$^*{*4G?!	=]	.$b=1p	F@JN'QbSYȜuqw'E*3TK&ٔ4܇G2wn]@NL!׵\ݭ͡b(T,[6EZUH|o@DӂUE8W~.<߰T_"G,80\
i?)<&mieM#`Y?`
}ؗybڀx7T%00w4L@/@z\{V˓5be6*N$;!v1Qc6&~~]NQsK2Cfvu3i7)4jL^v`ŁĕU,V:'M bHReݵnad/VT`xZsHzHfmk1}aC7?Epj7a;<Ԛ9ݓBz4G6uI{Â?wa҅CՖhՕKt鑸ɯ>rVs[Z9eѥs߈vZx
}fǂ
,r143KPKmy6RJ)YkR	#yVlxJR5.VIՑ@Dl\Q{<9A4'/pKG!t-&~锸+u|[Pj,jJL~nK֮ƟON2E~Mxcz" z?	6bh+&7Bi7	4 lZ0pֽ{+|d	A[uصT6JCW:Rw'ȏ[dbu+POevj¼>oB(ه{0OqxXoTERDK[-SP
P!]ij?H0Ąflww֙jF}	L|D&>ܻ{o[>CMޙs;w/.^;m\Ycne6k?5?qTIy>TsQ!3X]f#C7Vk97w_I<7W!)2DH#{Ư_CbM9~c+*IT+StBf`vӜɝhH#ut`CH<Yb;3Dg)z RH*z][hPrǬ	ɘ#{0JSWK:scLi)sY[Jjfӻ;O2"<0*b1eEB S6P|PD8FF
1	>/gp0g>:`%4'lyߢmD*Eޣ Яʎ0^Pvt7JUEI(4e7yQ<aL؇y"XXL$Lk$ZsD&bىLpB펣$;<CP(5
扲l`2.q6clp[}-6)nM %V%"e>lX!#h+B^Έ쬃|a^˔Ub^,h)u|
̠VMWʿ9v]j'ȥ![eɋY[ZBb+0\yftk'mn2T~KKܓVAD/?2"j |VdMraϸ`܉Hc$+t8츌j5!mvLRA546Y"lg&ϜZݜAK&w+"80dqKboUc\W"xf,{xiVWǯ>\7x[I-/a%}oi4{dx RVV-e:V8LK1ki#V=޽DN3m:U4<KQ'@O@:O?bLJQs KHGn\G6;k]Z>u2d)?vڤٲ{kY|48p =T*npu6c=AW5Z>ul-XhBW遁x_wt%@w"`4ͷI/$G*$O@TMHA(/Eb OF?@`<0ox}<jUěn:AK2dEpGu<qk@ZxYY( ȱRr NxP<~%ܬٹkO\Ub])ckS7;-B+vrc(~{w'hBU^>3iwl3ė6ɥw\!J};{AqI@J!t}x>6h1p;y)62m/1͆9%;C?k{-[`u}镠2RJA=G˽*KUx4u`v#Et4CUj?`re
|45n)xw$fCdecr'fj|qiٓ}86750NvИKAKq2?fsNł"Iā`G_hk1 &
xw fCdec>m> [SPxTk@-tmJk۠u:HwbʶbO|i#$i{̓w!'/z,l>(>R6~/`{ݭP0B*U`h
+K*2Ln5cgi>%|V.&i!dҜіE"`*b.\ΏO|GM^8_ډ>_[c9KH1'BܴPRe #[5y+[GJ>)BRe2L[7v~ą#vxZ=3,]mov=ym*"yZ?t¬jKQ%];n'?5dr2|\;57z9eHS'qo!!b'wye`'J+S/[Pa%#EAfeN?}.Bd^=3 C4фMܕ:YKFype)f+>YUy{u'|x!in@Q~YfJjBbiJfBb^[ZZXYZy>=~Z
řyɩ
\@vYjQqf~V6&-e'qo^ 6L'wxy |C#l<!@= 5BqbnANBfB_BA~f^IjdO9%NzXJ9':UxRMkQ%cĦ/-5"vǢh6bGW2߼d!w&Ve.\\tBPw}g9t۝W҅JP]WH.r-;FWyGb`J5n"pLa*)vXІ(D."\?v}dz"5
,^ЁFj#)b;f>.o
aR d[$Lف|EAImv*"G@lr-5R.ڀ<+=5K;t(ŸQ'SS3[De֡}=n #xqaF>=_t{>|z?un*̚L,:MH\YIT\mY˸.Dr2V^d.grŞ]nߺi,U$C0ꜧyprT]#zh%LhyԴC`x; |d-.-j̼lǰxנxZԊҒ<ҜɌD&n\<5ΒB|2䙊R)ީ%yi

~>>zOLVԞ 9UMox>;|C!_ ;exUjAEaA[!]H_`gfy3+H ?"WMQIŻwy⃌IaaX=k
Cw?3t^N<'VK-RoGXnLFq%COӦx~H)k{x`$deB%.rZGTCPLxZU1%(59$5E83/9UЄKK853$51eEU\ʓ1L攐<IUe
 Z!x<KLʌmX&ogۜZȫPZT`g?ܲJLR}8d)'l
&WhL )Zn}x;xZ&k|7Ex&x[&F=&2e+$d+$(
)E
ɉI9%ś1Ǩ 0Ox{:x[=61oS J6x3 SS N('m#(E'R(#(Sl#xwC"f9* (o?:xy&f̒xUBVx3`y&f̒癔2SRRRsK2=\RsK+R@Z3SU1k# 36KaGf;dg%;U@S9UBxa7ffx7rd|(ƼYJy4f'y%iBxpl>6j̼lǰxנxZ4T\̼|ĜlbkԒҢb<Ԣ"Դ̼.-6y%ee`z
@Ë3S@J7_`ё}B!ɥEEy%
ř%y wSIO,? },yxp|rjQQ~Q^rf^rNiJR^bIfYj|bYnjn~QL%YEy'sMf<Wi 9Rx{IoC9JIeAjJjBqIQirGcSiZZjY!%(59$5E83/9UАKAK853$51%5"(>([
1oF7	l̻*o*_TZ\XRRTZ:?Frf0:W,YF$ ˊO>x7AoṞ3_ ><xS=kA-ܘvbc\YW\ʅp8`HVrvٕaJ7	)?݋mHr+g{=&}tk:IQu8=ca܍sC
(2!'WtݺmbH3&.7
BT0
l
vqHq&ҐvuY\	}}Fk1A?@6X 4 aFy<I
kIý8hKAjIKNqN&t4[D[xݍ3'>QdVmX
{V8׊M7]$s>oj죟i/c.9w&uݒ""H_īI?vAPNlpx#`2Y&) 'lx=`fm^ !Ex0'p"' Pp5x"pW%.}--.-4Ĝl"Ԓ̼	bfE%y
iE
)
Eɩz řyɩ
 vYjQ1HB6ͬF "#t(xp-pCT	\ZZ\
Z
IEi
i%E
%
ɉ99I
@vqjBfByfNBRBf^Y~vjByFjK/P -(7$3? %$5e>V̼TClYYZ+x#`Ct	:) ?}Hx;s8faf.yE̥ U{xYoI_Qr؈ǻnV+6QPb ۗO遾ӳ==(~8n{dlQիlP.t6jt|qBggћRKy"qG'Y!c*XI\DVBڧt£WZkʴXCT|dnIee*aOXř>gV`|M:$a?k:j6N):7&d,
2R8<[aT$f05+҆H<^eU6oQFޱ*Qa|!x^ DFG1GkwxfBwѨ;{cb8O޽=.[$b#rLhJdȷ}H%*kټsIs}/M(f
jc6)UKeuPQ4"]Խ*?33J&41-u\{KУ"+Xi6%/ɼp"9ׅ{Re2j)c%WukIi/9'3x/o첳e"⅃ϡu`CaN BcK穚a |lq>l-* t'Go4}xOU&4^ %\XeGG[0#p:l/ie`A>:82U#|$WYG"d׳J<ۅYU-{\!aYB_}jƅYev*/FM+llnp31l[nM˅KJbz]t__i`YXҹvC`Pa5Hoj'kH3ʙ@ag.9 .m^hɦӹD讵Cőal|qşH)}DaG^`-@A[3M6L<(8A=ߝM\/TybB`H ?GTGV'-Z-Tt!3I-/xqw0NI.Al0hL(Y
c?OJ9u\B,
i.I"-'=cGov÷?5e
(,)S7??_N^~L
e	h͍+#kdNި;M^'am<L+=H!zưWimt^X#7ײ/(&T6P}ɞv87B, y\Ct #"a`)At}i9->+z\#X;bۖJliq<CApZ|7ê:RTnzyэcW|#}d>"QC?O*+0-֥e0͞t"d,<j[sӲ܇}!^ӕ~@c]/Va;6=y]w`9<'V^[s+Ea'=}Ev&~TwnqNdtn,dSF̐@&'gp\$hv7p) WqF(\>c`8]GQERGב/Pi7 s2H(*[haI˦4}Ζ
͡踶<^wXp*|><gV/ּLkʏ[ƃ)"q,r>!'B2'
{簿{Kuץ߫~icY[芣?wVOeLfSen6*2kR9k\gM_{ca'_18XQvGIOd4ڭ=*69Şu)3_vJQg4t79Mt?C)A@C{i!Z 9*=˯egW*SsE~TGqG_7k-./A=_hg"p'}FhEE >Ve;rgS*]i|3UopM֑ȸw|;}_xHyT
ÕEʠ^RTF#2̥vG$#s>zMCDr>:(7FϪᶻ>*5ߗ<n$_PsG\3D)6xmjC-cXkPP>-1_K<JIO~adQu7pb!Ōp"p~A!@	~]P$PQTMIPxd-!͜ySA8߬%dD_h+a/m+z$'+Jʑo؏RN29XfTl' 3 6NxmhC!'3/[1,5((߻v4D_K<\/"=));T'NV9,C'0TլPЀ h~񾮾AmEuzn^HE@&é8,e8YF|t){sJTs͒\4PG:%_!/D( 5$5%R!%(R$#U!3$1/9UO-*,NK%*&V*$%gLc#QZRZ@^V$	 ԫ&dxWAoEVI	*%B4q$@VX@(vꤍzrǻ(3l]|
8̅8#qp3ȍCzqqJJlkw+]=c`M)n* YdwbUx굫Bv!AL$Lp>holkftiXL1B.։L.V͹x/
a#SDJ9t$%[ߑLSHLR)\RkbA,-Ra-EI"l .ŌFjUp|
Iu&9yRNi@<xsf)<WƂRhOׯNcm`ו
M BDĸ2"Ecwm%(9[HB`4M*槱7Esk0,	*KS!5bkLTY^/Kʥ%nhkIv,bP)"E|DRVf2MbE33hOMDX&<ӳ`V=).-d
`-.8`QёeidT[ds1 ?
gKN\z3˶Ґze=yvk6wWN³^r-:ljYX׫[77k$a	Mm=4jQث"&BvQ5?v].:.[0xbe9~.o.YDn;zfjԁV¥_a~~$ǱpЁr[;Eg?-#?ni.EZ7$Mc`uk/mC{=*4x%kqʡJP(qd<ء$hGqz\ĢcI9&|ڐSr#7Ț^4IB!Xزr;DxI'sI?(4pgS./a*x:mpb|hI<t+qiܧkدfft zK9Kٴ(kG<@ʢrvEk~}y8[?8"OmϘg'sۏ M>xmyzC&SfbJJI~zQ~icoiEjC532SB2Ra
)9
Ee)
iy%y@V~BbiJfBb^H6_!Ghu&'2i&$* K,,PZ۔ۙ\ΪU jA1xmri7\  ICx;f}~&NԒɻ9%'IeMgcL\̭9yiE%

ye9)sr)h)8g%*L+	4trGc6#M""\ v&K<x;f~&NԒɻ9%'oaL\̭9y.̼Ĝ=.-̼TCxe9j&'J{;A
Zi?o)" \`"ex`~Yɗ,&0lUƮ 奴&_
ln n"x[g~7cf. (exh~Yɗ,&0lU4#E |Exh~Yɗ,&0lU+
 _lxly|C"fjI #5xlri&f̒ͧ^H =!Rxlri&f̒ͧ]2SRRRsK2=|K+R@3SͷoH  xxc~]mp̼ҔTĒ̲ĲԢb%.,iE%8$sSs*Ao3b$y"!&0,.F0,5@{p=43(D(193/%B(a`)h'䤢jǡqrW_L 1 VV(xv]oC3JIeAjJjBqIQirGcSiZZjyRJjAQjrbIjBqf^r!Ciqjf^qIjb\l͓&;?lsh3'ByFfrPsNiJf^BJbIBb^B̼Ē|''ᖂvoiPV.Q|_ur?f~K-܂| *RdXxwWooaͿcSxw@g&W3*fŗ(%&g{楤VlV(gdRRH,JݼTVeKx;DgC<?x~Ɋ|0E6Jf 	NxYmo6_qH!5;Kah,FSdPesDxEHJ{MlHh/wr-|ln_Y\/DqB&s|iAE\s,_~\i!38MC_+Y@VI渇	yn@d4ORwna8?NscWr0lGY7qt|?Oa*K֠oPlC!̈́-A*`3qHrx٬Zfm"Aaxa	`7x~ꍇ6ma89eo4p2S~ѠB;&W)INoyÅX:tCCfqWF9WthD0c݉u-{N^)[hYw7<	"&vz?Ü!VDBH0a68Gawݗ[aDzx?µ7ZyzCxOH@$¬:#+HG>j͢șEΌݸqHeT F^d0HGJCS-`ߏ)@1z_\]Og{\Iq^Hd3ql"lHLy=6+%1A 9I>NaS,Bk0D:D@ϧ
#bP\,hfV9'gjt83EX"(zHա?9
>۬vZ3ZJ$!BOǺ連ru[ JDULj97ՂgF3ePGӂ\Z*ʡ;{7gv3POfbZlo,L$s*>P?D"2JSusB!$K%6<zV$InT[D:jjdloε6&t<("VX̭ĤTx6ځ~53g˼9yI.3> ծv3|s!)gZhk5y7s,3׸Z0aykwN۰pN)|tY7~2?Ue?%G.mXHA:jZܵ.Xwr<
U@f
&A=
.,o<wv>zY8Şf(	[޴Oz/x"ԓJ%ӿ7K>do&pR`h3[ZmvzVl}n>G` t4byeѡ#49S(JtsH2)Xs%0ehGZvUw#24Yl0O鶗'/0,0cP{^Wײ(+K+9Y/.tL&gdꫪ5YR*[,NbVx_tDvPսH-u-jD({||sOxp^Oёo_Nz>v1Gd,B%{{YVxɌzh(%*O#3KÊjIˈh!|HGk,*Zg!z/X5SO]w@T+ǸjbY>Kp0şim+",X.O7ۤUv
E%BhҥNOŅ
FRmJo]ljsj׾9Ek}OY;vWISχ3?hl"CIF}3lܸcr(쇿 E!37~gaIc-Z/љ܋'e_mhW|[8$hZl|Bfw{زXSQ?DcSr[`m&>ξ;mn/kov|ÄT7\&xoE.F
I[l}0f]1)	4}^vyg63]?@x҃g$YԐp^ٷn)hHHfwߟ;o~g n]>oa"F.-%辫p*_E{LOf2X|wea*4;ᶞVf!W)
r=n;2ˢwݮw)U>t
X]$2\YuBKCg]MYȎnIdh"q$B1|U dFOXaМ6nwF.sp<M0hC01i4i*glOg)'źdmpIQ35a2jU(PMm Հ^'OUoz#n}d3uIgեvy4,4Z'-D]Lyi$_*nrAjƿNy$wa8ppH_e_wC">oc'K1[Vǿ\jߢ~<fĀq	<]gTv0UW\?2JtwF*~Nܗ#Sg\vBv?YBXX^x(»A'?HH#2g>\ougzcGۭ wwtb:UsL/Qstr)lXhvT!RXE BP<UR{]Jh]R:{,}rE:E^3;Uw/sG_vvr%kOYԡMCcf>{m(X0KJݝ#;`O
cUNeEzx.>6O7[/}7x{n7vC )wLe|) T		=xۢM@}CNf^cXkPP_K<QHS+KLQ(/-JNrK󀌂̼"b| (17$QåԒSWjt-2Y\rnL G4QJxSMkSA(6E܍Z#Bč
BڸKNf^CGs'ĕAХ?tNKXtxs{=·;߿_ SA};ŌKL!eQN'?5iX62I	fBBp,Q#
flXA3a6:~v{~}ߚ<|v4)JS[
̢gB(M\4b(`$8aSy҆^O̘ĪOkHʸ@h[clP;*Z1Nxچ2r%)gp3Zߪy4qGPBu N$OwVڀqIx<*dLmY)vkZaDurԇ^e,s"ZR/!H~"db;2sJ~%E7xj1$6Zԡc- D.0$b4nV amUdXOdN!ϮWQi<h+هn  {n_1/̗Ͼ,j~XDDgߚ}P
CX^ik[=9xۢYɿ6s- @4VxۢKqC&d{f̔bҔ|ļ?_4(9U!9 1)3'$3x|f3	<gqMj39@iAViٛ_3N.  "Dxx[d`Cdn)ՒԜbTԔD̒ĒҢ'qs:)&Lٲ݂q1n
LX@*`7(yn>ȽRJ̜T̂"+6;3N!(Nnw	:
y
ye9)
`w%y@FA~f^IjBfBAbqqjBI>U
(RjI)MKWHT+Ɂi,+s&rM+!9Z)bq:RBi G x[diu27jIFbBn~JjNBIFBnjJfByfIBJbIbp~iQr܎ظ9KJK&ln8Hjcl S
qB<7^RW[fNKjqrQfAI~}XҊRS'[n'e7P9LT(;\!X!3,1's2?'@u=Q%B7Gq1&JM|W( bxodJ@KAKPO8(9U!X!3,1'3$a㣐_?_f|AœE:J2Rae$5($fdUWN^-y:& h*0rxRJ$AU8p\0v@@11mzEM@LW#M咦zޫG=tMkZ>K<:eЁKypxFo}|a4UPDa'{PRǝAT0N*~1awle`Kǭ_,z J(Wl0Pƀ?l:h5	2C3њ@Esy~ #`ZZxawp6tUT#$t
.VB|Oy9[͍tXH8[,L㹹t9oR/_AZm/[>{R^ϲ^G
:t8vx=AjQPPf3DB[B(ݸe42ޢ+U{	?zg>F%0{_HRG90=ke*a{"U쩁2Y)Qp&&ۄ3R\|p<s~wvz]eɜ\J!hfQ7&<513{zaaP \QBxۥQaYl7  Fnx* *#{<G6/CSBr}|'xњa55LΌ
3e+$d+$(
ťEɩ
ɉI9%ś3wpMj;Lf?MŧY0q)' $lmx<Sy;V $w'x[|Cu:_gBqF~iNBRB^~IjBIFb	HULKUHLIUO{;Ud$%*g+$U)%攦*h)䥦s 
y99@e9"@P}@"&?7<OqкpS m~tX'xڧad!U\ԒĔĒD=.-ɶ'gm/>'~k͸&qJ rK&畘<M	 M$xڦad!U\ԒĔĒ6쌓59`"3'Wd6R|_^(v/M,|Wb4!' uh$mExڰJ1ejd #xpNhyY3YMʶyp
# C
.lx0U~C"f[f^  xEaY&f̒g A37x[qY&f̒gl2SRRRsK2=ÂKS@:3S͜,< +x*/a	dɯCSKKs3RS6tr &	1x_%a	3[p~iQrB.o9KJK&볭1Q0SHI,I(R,V+)()S0Bѵ+άJUU0ЛE^DO!D!?M!757Rok&3س7\8_'+d b4x[%]bcĒTǰҢT̜Ԕ:u Q
l/x.qQ|C_, %5x(>EllX&stNb|՝)fc *x"Md"sBvɆbW2"L^"y[ @/x&rZ|lf̒ĒDҢ|R ~0ZZ\Z\Y2/s䏬j.pEam,1_a c*_x`n!ysrb';*l~jfp16=i<N$`y 4xXOH_b@[vF$Xᐹ/Vn'}܈}kXӜ	B_UW:"-Kҵ"'SrqgK1 PX2dQFz𑟴ɔ	ɓ\tޓ$8ΏO?uI(I2$aOK1(9A֓Kf|e$3EC
߂:!
HzTKZ:TIļ2ڽ9C2)`d\5)IsL%hJpy$P+*T2ՈWax]'ј[cre9F!_aBXhb2'oOFWrcm Z== 39F95LcLk<sFɒ<")Q	(&WTG[~QyI}_%sd)B#sEO	2H`Tec%Cg)LьXb -̣BMFÓdg@f5,\.KŨIE*T$KHȭ#~Xʃѿ4 
c:ՖiW65D2N0}{1(y:>x`4yzQ\DzK,S:ѤȴBd. qt	fAA0F&b.)~+nҏB>T7,-a-#AWuiVu qy`? #kbO.2oc	3`0U*rY|S?c
5#VAoGXਬ*&JA"_N`*'bQ+XE;\-\wZ̵,jz}h|t	>QqxංL* 6Hj~+!p#w#['T(evu@wu1546m
i$ӷcz>(HE3-#؅%+Zp+ױnwp6? L@eCD~Ծ0V)	n&Gf R?k#{n2蓿Oۛr,Sk฽ɽ?ɿZ~Ts_>?l;;Kzsv@E]U\LĞm\g7$@z}/;-XQbw[):uz(Jʔ:IJp+"GI)qaζQW&` ^AS)CdhoM.\E<C*:LOxR¡nhg4y7nr.iD_8 l!iIlCT	lFp>ϯ3&0Q$6j)
GAF)VK&+Ntm&05B֤ I>2TQ0P͇
4j~[vG3*Wt+Y}`JևU!#t'Lxm3kF^BX1CIm{eO+K!Ty"aM7Vnɫ6$HD&nY%LS7G;y6p@ZeA$&=ZCgo.cIÌ![¾V塋/@yO6pSنÔ	j~FTTdKwl[=XЅ9e٫[dp=	rS=moK)(~ MBoIy
6O?2hIa16#WmcAZ}^񒔿JtŊ}{8?ݜ)X]k>hoe{%pqQԕdǲ)yዓoT`'ȡIjfkXPlS}$I/G7s6׃\^˲|._phFmAƽ2fe,1AUs6ӯ8> FhlN(i_IIRR:357zI溜3TO ޒ~un|С)團gd/s{0;^?'vwt̐gOK1Q
{xjrNͻXr'+rkM39ʎJkSd1'([`r7G mYi"1؄<;Ÿ@ H$#U!%$Q!3oKVvds}"3D,`b3s4kim'2K5 z.	xjr"/
M^ηم=qF 
2xTOeD@	!uz0ߖfMlY1k8ƶ6#Pڻ~?:ۀhoR¢fNEc]fｷ=/C4|>y?<Nƚs64}KYblxm:D^Tx$wX=>|L	{Aí{k_re`ѴH:#aRJ|܊֗M#<Y^ b2A	k?J]ArMw*[ڂzŪ2q<v?9&V⿮P!Q(fF	"4;m$H'/<n<N7݀Fv~B>s!å
T]]ؖƨG]cafK+dJr|,ǳow?&Wp2OܓG\&=4ǁkv=VdJrp1iv2i*$KbiCr2I\R%rfS3EגөˡF1s2)6?[uBvYN*{,˲6mB[`5m/2?P|lNJip^$<Ś{;]C/_Mj~U-pqeG.&qu
TߢV?.VmȜ%ܪb!YyM8|f1oH#Lϭ@RFXe)"}{×{VF6xp^Nh8=ډƣ*8{h6L<5*m͹Mb*®2\3-_0s{q=`tk2./uɾ51F Rm/;et\ZnN33q³C$~[BGB몟~ms
[&c]5v'xUoECH
i$v(jT $$X5).ATk;ٝYffݺR? !!G9ܐ!fwmC%{foϧ ?tӑ	seu)̣
Ĝz@-ݠfM
uG-ţF_.Lm>P2vu,|EX4N[cg7(wA/Wl%>\-`(v7704Ob*+Fa4_/n\l$8F%) C
jĳ棓VPHw_ovkɱ\&ID,]dq	w)[ ` #Ml}-)RFҕJJ4/D3ep|d%"-)HP1`Pj>t>71	Xg<[΋MHEpZ*"v<j'D%_4G4A*2Ff$`w2QsFLGm(϶k*9	z4w`r|ksdEk)Z8@rݳuRlqYMؼ*)-=8S].t4Ra?	zwwA|
Ł0},`G\BɄz}L3?M:GuC$˷$;]gߙH[d
wܜ`+coW˚dg,K=P(v#"6iv)G|,vaX"Jj]ο7jWw>9۵Π@r/\KR^?WD,%g(-T)U.a5OT,skf|=V_yJuߋ3'[zK\úq$VټVy@a?6[3U9<{Q"4Y
k=OzޜCK&nԚ:l|=}s'zcui=[\Z&.	_MxbrC
d?c^2nc& m	x[`bC> 0l9x[`ka3c,Q #Yx뵘ka3wvfcs~Jju, q7:xOKQ1q@*¢.MBŌ"J7w!}V}6|Ef&v=编FF:a#=N^*$jځoM:
߳&@r]k65M)Pcu8	=)9yw@GPJ!	C	Zs'ޅ]iդFadjnL<)߉,=ħN4@$BUgXZVęr;߶n#Ż@S$0۰?
n{Ȕ|s1G38d3\i-saǭў2mlRxi:tC @fq ixif
L&G0{L^r1 
xizRC"fklr1ndlWYM x%x
P/I&3 *ExJ@QA"xH+BXZ0xZ
"L&'::NBfRR
gڭڧ\8I/ЕYdl=o?M5{  QePPSxR"W0	0!wr%kmc
֡w:d6$;ZcY"%y(%HPP&M^03#=t0춘4+Kϱua܄ꢃ%w9`Ԭrb'5ܷ	E]I;2嶑=hTloXmr>-6Lgh~:,[wfҋrVOY=-iV֣H]@$83dЖBA)jN.'ɴ_o#6^vJ?{jBR;Vs%]rx;O9fPm\9L7UnfܼK\a29b ~_,x)[޴(qM Tx)8=-K-2Xn
 /
|x)&^INr >
(x)u{FlT˓I x	%x)xn?)o{:gnj  yx{y%e}o[ߥSգFɩ #n3x; xhZ:[	D
jWim1*<e&x\r8S7)̤bfkYCoS@ә+J؇mceEY6'	HT%-ӑNsd4Uv[')c6Vإ1,	}PL"[zn@B{KNS~!SPjĀ2D" <4!(
CO*ŨG*C5/۠ؐqM5ZG?O&*7
W=l4Znotz08f
&B)*>	[xNKRzmr'\E'zghyz沦{Ysn~jkNm6\0ݪ7v}df^a~[TS7FXPa JqMo~VAh@DLQQAb$4Њ]Z*DveN}Oصc[}PPY`5\m>86~Xz.ޛ/?T3ю1dPru*[n7*<}ԗ\j,jsp@i*	/x5RՑHÿ
o C3`ZynEt;F2^`PkM1?v.JIW4/8|ޗԆ$z=/
NI䜲'o `n'2cc(/0j,&C>y
apLt }_4&=ǴZ=c#CoL=LA!ZUeDLY9.JɜɌ77DCbdH(JV-qM7wvs]l7#Yht'C1!$m3KU,|o
nq$t(FN^b۳5N,X߽=$河(T٢+l,f,v@p(߈MnmvG 94>HO2bP1LX`Jn=9Z\bR{NΌ}bG _2<Hꓱ<Hp9a:>ވ[zEOci~{jZ4(, f8<m/4
-+~%Yl_Ppj^ۥ%鮹f%*F2czfdRƭ?g5zMmn5:q598<z$5:7Mki\S1e!pTc*d6l.uSjtuqL$"ЭAnFVtvI%JAhq.MLA <
+@k溦')q!SS4j? [9z0[f׏퐾bIb@#*krށ7K>K#~7́tzY1JfVfGs~VA!ī6Vale7QB[-=N[ژk{7-Cf*gPj9z! #徯fGA"wE:)0.`ekNzxT<>"#=-{݅t@v;lMm=8T-gIrN%Nn<,td*zĚgBa´:8o閚\sg2<bYG9ĜUck/er{Z\=	6fQz+ <Pf[d6uΩ=dAˬ*ȶne?)2d7d׆,̾y}t
;~U0f3!I,)[\jͮG'C27
sh[fB?;uH2OD4ONF2C
2s/UL՛j2Kxc&`8"l-pb-
΋kncrl4+"ntY/i֪g]t&P[7ӸjwVKzvt+{Zy4C>l(݁.1HAEZ/=LXS\뾩Ft\!mS1OBͣ~x=:PoŨj|:\:l|U5ɨڷ\V?LNϝ#{@%w<Ğ4|C;dy&KϒI̤b^:FSQM&q'`P5jFGZa{q&AУLXxRc$#8<~[ɓIGM;Sn^DӁ5'+vk2Y\>⁑.6|+Ex|.QsoI<ז,ڸ4wĽlYe<I`'mSeEVMZvAIΒ;s$a˚g߳;ҍ})N,Ax[{.9y
ařy%YOv\;jM\%yPaJq.\
Vyڡlɲ|sIGjE
%7obڲn3siQq0m$&LL\ :I-x{.r%
9y
ařyE%XO,&:ٞ#}KIMlx2KRs3Sɓd7/`,.̪PZ0(Ƚ81K $*xmo8Sn೛t{/hV),'E_DۼʒEzgg"K֖%g~R4k융hhk'vg!3!Y[L+@nנoK%'cكPvx^g٭~!0a>gAYȐ1J_0f2`n8|I=6z2)ƌϙp9hY8,?ȸ:Hcl6kpcp#Tv'nحs5|LF| S}>cb|鐌)e08Wt{2J]Yx,rlNB>ٽw=vNϾv]:mgup;:ٟv]gClHQ`$o4 bCܧ8J]F		6
BȘ@LDjOJ1jjs+y:0UhGRe*J/5CpJr`ͧq*MB/asb>mk9F+4JJ⭹R0}>=ycO	6HOCG	Et_Wsx6cW_fE44U|:V~[=m+^	X{_c~~ߍ$53J.IkP
Gjz	R(d]O }xu0	X|:ܷZ׎~eo굍21'c1fp5$U&Ԇ/)%%E\q$F+ݻn<X7vZb?pA'!Q&z]j.G1F/ˁk/2J9G?l,6F(A)1O;)7oX,0J(kJNu1̚5i۵-WK678)^Ęvr.O<Df
-+C pmxc}Y}69eSF^	bm	v4*<9v0C'D9.K7i|kVK&hvsD160Qnifۖ󴷮O:ҋyyiE(
dUDGH!RMXQM2	8J	`=O=SoWAeGf4bhT26)k2a.W HSZ-ȘSdZ8sMhFgUY~=?σwKG~[ KZ<Bˑ-\d6hfbl$ˋosGzHχ5i#f|Ûơ#k@t3,W47(̕=QXyyѠe]R_V殥ET)#<# a:R"fA掹:gT;IJE%/0-z	ԉGBGa?$}3F\i^L6PBro-yH(Y&􇰔SX՞$)TP21[aJx,`2-#'M&VMF|S^vڃOIEVn]4zrq$a95mc$	(M,	軰H)	!47DGTa|*
Tq#}
O	V!`6lFKN
VqQBMpZVk,B-ׅ'7:,V%O]&PA!RϖM~kia\u1n(:.ʻ@S6S'bF|Urs!H+.^ s	Z21OĮQFx骪0Wl	kDrAd.|ԩX9,UA^`Yb,u1躡QJI
jN9b[\0(A
 'SY
Ֆ@ȟEćs//JgRǼxT ˔+maMV۳JԂE>'bC)˪YLsQ*QDE,Us լ9p @q0:lkRx'K3R4ViHK:W*!gΧy}oP<94u͸RjχY<&Vwו=<W
1X$TW):B¨UGgMQB jRwѿ>TUrH`?i6k6uv]={.pxۖ;iFPw̼ҔTĒ̲ĲԢb%.<SJ&0Ȣ<9SbtBf̜"e6x+N!\P_SP\ZP_TTSZEBRBIF&PbNfB^~	[HUHIMK,)Q *vVpwv		ru(`l]-qF2s&R)+16/Q (-:y<wMc ɘW	,4@1q2|| /zxۖ#iFPw̼ҔTĒ̲ĲԢb%.<SJ&0Ȣ<9SbtF9KsK
JRS&ouKO)I-RHUD!R$#(C'3M!/-J*%( T;de+D;;:n0fdX68䅂n9K)fŗ( ULV<Cw TgAxۖғ~0Nf՝|0 0
zxWMoFWmR94E!ZVkl9R`wf>Iaŏٙ7o̮8*ZN#8{s.K@	81AmbkzL`A!bޜ=j#Ug7pUXfb	P$@*3| sլȤ)BکSyq0>W>
2XJAX
3^,- 3i_A@WRS%@bLP3 AL4;BK+	څȱipV&rh!&a?<a'˛|
`0BBfpotp\ cT|,4g@0%!2u |o
e*cJ-b0Qs9e4\UC əºG-lըh$VM*CBEK­Vsx	2'F]b٢Nb[̍w3<C4( \.|,3ief)Z5VWjewŅNr͉9Fb^db9!N5]Y]``h1gr^c53k3΃P'z%'c^@)Q{Q/l +PZ7Ϛ5mU0Z%ZiFd2(4GN	OnPW5c[Ej@M=]ƖLTrf*,_~wbG:q-(qvl7laVˉN|A2Q,~8\;F5	<xD#(E}Sa߿,w4"?|lGIS̷H)aVUGA
>^ujnŬ7֘Fms<u2?Xߕ285pޅr*_VE]\hv;6,1F94H|,J7mFa/i_zautMUfci1Uvu"ި7\LxF R!3þ>3Hp"</=τ$/ڝ.o80Ӻht*ap^b> ;}mS}XU?PuoRzn~~Z=侒$*׾Hf6GVg[9{?sz%E۳Ґir.%gRE+U?}<3GU}y:S~	].! x8_q}̉Y67p`bL>#y	 l7x8_q}x$
x]o+Z(v^6Yp+M0Qj`l?Pfꧫ.:F$ow槛_'=kr'olķM&\0qokȄܴ~"oex{4q|b;#sn1¾̕pũ\.Њ
ShÙI
)OdCB%4ZHnUԶ^N G<:<BPA]G$\rx\`h|T΢5j΄hK{gMߚa;qgk	Iw4i6§?Hg{ׄA
1,	cN2Ϲ]|ȓb%pT=D3_rIj_}qѾR)'.}<N2}};Gᬸh99zYL̩Y:o)ʠǑ_ԇUjx)lǊM|[z̰`@I	aQ8&/mbI98m<dLhqM޷$_2VV	8K':addѵC釋7*lAmX>Ŀ=iB[llʄpZ\*s:5\}KM>ߎ@2Ț*)]D@!n{R`bLTbB0[y/ȍ˰/0A}Cx {|8>!ZD᷿a-<^5	H0}`ᗛBVaANȡD^ɬ=gF~ {,|nAڛdW8ō`kzu#{Bf;bKtQGQUBԲW(^??p6ϸB=djwKg_fR^0x	qnPLTe[=aG9	yG@	US+ۆ4 _ao'g+_x=߀}uL<s;Gг4doYlGh]́:l$ļ Z_]E}|gz*Z Dٻo}0EG*{&FK&pMft-\`ALe![S+k뢯[y_MjȆ^:cٻV'\E-(C%bM8ѓV!0Hcsh:}*l<vb?g@g9'&`iBrhxSV0crPbd^/qV(Z3mm֪k-l*~i5MC<H{(-|<j;=mw}5R۴mc>Qfjm7GU9놾{w|+[8e4.ޜ{w	75d;{M_8MP'ܲǠwqn.WfݠBUjlt*
:8Ng3~Eqn^L?)j1rƳ
7W9'I?~"4Stgx<_0rJhsDG>XsvJq4w+=޼-%݃Nj?mĦt!_<#Y`f0H${$zYDz|\JqA8/Lf}LW΅L"9:AqG5!TC`:[냣}F0jzM	?Ih<JJkrA,b3 |RAGESR23%lR(M;BԑV?!h6RÔn9YƤHfaG69ڍڍjdLuM*6єT4
Q
j>kFMkhQ>9W9qbgq<\:Rj+{liy,QJ0P`lP74myGQvRJQhuXQCU4LkEZSZFjG9v?N;M)UvE$9pn>_jyO~vMW~OIn <ِ,ՁR!@''1jH8`6%Ӈ՞1<<^L|R=oyf>s)k<-9~DbNi<36R	#x kɫx
y
type of this!, which is capital&4!U!Qa?Lp(J#
L-[Cؓ,2Y.]p:Name5]+M"M&i	T44#xd Ы!B&P)}D	"E"to media image url.9.\7f:+#=>M*to,哀/iO&´x]rHr87~Har6. O 0g!iJ",N
3IHD,;*1fz=\6Puwٜ5OoSWkR&>1Q`ClNP	4=|3Gsk'@FPA}4AA\gZh'"3L*p5DAQ^挹./WU[7dQs?a/E|y䯀z dLxZxGs8+2jϚwl=ɘg,gE<^ z=D9G{69?zO_F`z!m7#jDMDǠ&I$X:%%RDg4sĳA"oA}U49.(LJ<;lM93	\t}?$x-)%5%&Rb;ˌxSlDl/ɡchZ׾]4\,:	([n1)niVZGhKVvo~o.b2	K2<IqabLj4x[CNyDw}xۿSCWt
Z~{Իvw8l? YmXho>3'cOη;mL<|_	XeYMǮl< lptԞ:1
Z69v&FPNP\G(``|nY@XwDʅKv	g|I`mYǱXpbjƽ
,E;w.)Km?VRH)*ϻ܊/h5Ɯ9APsa@3	E]4맷vG"jeW`MtR>BY|BF(5i5[|,ñMUI|Q r5fZ2OT@iB˱r_?;F~{[FPRf	@FP<رv XKe(3OҁYYj=z|y](q>a9"|ӬF>U!!c2#rNޞ2Ǫь]:dbq:\|!VB/Az~ 5*PAMYyļ];b#%Ōj'[FX=C);s>Dlo8^6sQA=04Fclt:ZjhQZ#%rW@($DDG#⢐o [,Yy ڒKRLȺ6-ِD6N(5j]8(ђȁTP`21>иZmYc/\nPO.%5VJ}w4ASI-Щb!kcxKƗ.r4߷?wA;6~޴B_4M 
d[lCji\E-1pvrIM:ZK˳ȝt=5" s^L։A3x	ד뽮,<BײҞoC,EgY.4'z
)eW5HUOñ"I("̏2;	bhڅkNj͞LjVKE;[znF~;>yK7M)ڀuElX,=/W&,cj*!an`X#xl&wT?SwjV
Ilb.Nl'\
WjNm!o($~
:ݻ-zŲHqv҉Ǽ~PBV'YMdI}~#3e>XIlPy~!mT<CA~Ok`V̡!^[Rydgű*i6 |v30"s{7#6zAt#iՃ||:4BiWx>7GǦ+覾'Ds<h8>DKOu_Ю.T\@yݿV݄*;sǚd!5]!B):¼ښ'bOoewbmf1|qw
\~Py淯BkC*%(gFV8Utj3()E^S ^}Tǉ@		B1HbQS}~ |
7hPŞh!R$qt	a"uxp@XUD0[u@-do@H)h&,zpxB<ZŎTʊ2DAjA`)d6IRHm&/.hrzS<1Ҷ
-/|2|$UH+13X`A<*>&|L"0
l<xF5:|BήbaΓTڰD)bvc%Ƽ~,'yJ8˕LEUfڇRQm'*1U*U)1;N=:TOO;%bI<$w>[dR!|Lo+C;Dq_IghBOο aC0$KdszBp̽G:gF 1sԞ=&[ff-SnΑw+.pdfFgͯvJ1fyIecΗY":%D4,7&8N`rQS0RxC逘	"jd0'6w_tyZ`ae?p,txr=a,Y
3UN  5
s(xw=E%L^ C, )?NxMoDU)eSJ)E#$*AC^j,X]ۛ'3Y6#yQ	rɟP@H	>gf7n{3g~_==a^kfT|൸ h=؉"z,D	MFjc֌<2뚁߯GObަVǂTY7MŮ:)OdR;Bʦ:0rVQN"rZ"Χ(ᄋoh'CTh]Q7\Qj-4/fL#x/cM%(Qe>E,AAQLwx(gP*´XZt9ᱏ[.Ƒ4VT6V$\t>
Ȇb;nðޗZ(Ӣ,8R-RB(UDڎavk-԰WYGh:v$vt}J*%ձO͝Bc0e4wT]Ǣi=vP?Zo75z)fT5m8ʟ]]eci0a6ғ.W8!rJVhD'QYw.FB99HN֪ଝYЀ&d\Ka0(9>Py8Gbrӯfu:fzG˗ԤYJ#Yan33АaT\ O'%_4+5)dꥴfc4aOm56;a5aX#Vouǡ^F<%rfVgy#ZUX:lɛ	[83bڣlJiDrHnȢU@dE0150M1(m{P,%~\ӘFO((0I
gOv /+tQ6S:v[U*sKLwǫhz=_|n-1sɅw^[Owgo^sSOʫٞ|qcK]ykZ74t,xY]ocɊ䈡lI[,ъdEi6EщژEF5\̒;4ZһK*j+(h_R$p_E1}*3\\趂3so>é#M9OGe6MBqDlLFd5ŤD{?lLd,vt&JfvRoɾ50NF@{H
Pf7tǲ>p|IvdҔK$zd<䋊~!0]ˊHŢ
\Av!{n6
s㊦)Y487;@roD'VZ3FQ
M"(<R%~{,5ޯx-Vg8p䓹mIznv\F.0>[9uA=zPޠ#!_oʌuB  f,JvlXFYh,҂MMuuҎ{t6(L_ڮW
iۤJꍺx<6ۋ
.jP4'D@@14"yCC$ ͪS"[̓zI8Zo,?χ.-OdyX?B-j	
Wޤh WQ}bTs[TE}Ec"<ly6gFr"Qf_oFLjWLӱE?u;SHl|gn=?*K\sYB{?Ga5Rp*d7_
q8*0kA?ИI!M#.A~Ny`LGd.8&[z5ׇj40LǶT3zYx
Y%q]Nz<Ja׹Աp,r6nv3o5>\+Nh?HC;.kX;33ۏny1֒Oйfyvy鸿p	͒9h1~8avCMld<=>c-\Z(S-)N6	I>X_qegK} gw10|au7ppw<o]xwsmmr`amC1f'V`uGo!=1СF7Kl;;jXScnkG!G7#gZ>CsM`,"Xqsi7hfy>s$%x5S ;}CU)pq,+x43]p[e8!Tx/.﹝]~u5BbYq9*sPK񵰣p1=`\|~˫8"$T2gSl2&l3P0Oy(GH%Q*l<dj\@thO/JZOAKESD;M+t/JfZ|Yљ-x3.əYmPm_~2O߅?]?D`aaRZߏѮ+>$ޫLG.TWL酜\sLpi^K}/^L1!dxCj:D셈ʾ!5>O"슴 uuuETMaGx
+jsjL	Zq-ֻF-
(|y8Um^VwRtW=V)cAksY)#iW82w\2ILsBe,	xk?>CX!/Ue{m5,/\Iz4w}/Ԧl?:,?{Kj 1RphT4Y
-*&#5YÃn$0sEeri[1n2v1$It?_:Mxwe_Y'۱z1Lf?Wd{#ܲ8:KK9;`7<`J07Y@`6|s7o: ?5'RxweB쓯qO7bl-;Y̯䞼~xL>f;|&L.aS,g897Zp61 h^#
>x;qXRS'+dp)}%d'obsl>-vqJ1%J\ԒL> P$	09xo̄&ߒr,9#d'n>/	bbTAT6"d&if 8v:Mpd;BżIiiE)
%]da"!@TdɻէBn2Hif^I|	tX4C25@f͂U_8(G}3b2Lkl5ysQ&|6[s zG꛼%hW_!fL^7fo%T}+ 	wp-v''D6&Qp\8	I?KAh7SPxQTzGmsxH6J*&EMtujGF :]лD{lcD  x% Г&'/?J	WC%
I(;xRMK1ŶW/0"RqJKQ]e?f١!)IA#r__iKV4yyl>ӕnv]3)Z9or)4$8(cJsaxpyeK0'3a0Rc@$D-2SbAn	 mުOe+77u\y9l;8Ƌԯ!Wܚit`R'GRlm2&&0%Ta_}K#A\@o61X<f
PS;m#E2K,Qi8ae.r-i/͗7,֓ex0g%&s+
g)T*+l*qQ*,V+KL|^ʕ&>YN:`xizLzB6o̤WWZ,H!(rdyh,$@[&_2ZJKH,d;2f}XFLNڛɕXZX6kjf	$V&%&g$i\}Md31 8drluqI52msv/O{J^?do#Ux9J)k8GrbNȓp|__&n^kEj&FUd%&ݴ9ULs<rݵULsvpr6:Q'5@
nZ&F%7zn *4Tx[{.l+XU'ಚ\~6?yr(\M?O;\,8{D8;u`)kQ~BdFG͛ /*bDxjA&юTnKԋ$6H,FhN235Fk>o+{lfٽp9?vgYJ5u&&䤇նs-JpT02!`4)1mC^=жI2z֨6+FZnkA,<ł)U|󩰵D%ڕl+uRN\mp9Q89!1䜒11xJ;E1YrTq\z!UF=],Zs^j@>¨'_#01ޯ+ץ^@qVJMWA׍`Em o拚Q!dM +)xKΫ]PAe2c z2;bx4],n?~(î[\t8-oMO:;a)|O2ww4z;13f$dbl^c{;
f1%Fbk~c?<:ӈ`G @+I̺JW8)iZGjMԗU+LK
MĦ>ZZ,52T8qO
/TMđS9]5ONocS.(FK42O!6]XJZ}\Jh>x"]KݘRe$[0YxV\>?%؜_c|&둿!rs@n #sPxte_Y'&OǪ;_|B d {xjA&юTnKԋPHlRXhɍ04ef6kx0B}WPA|g6l^l8sofv?;_߳K,tPjrMj۹tz%*b0☶!L|Zxhۤmr~|^kTjvTՏ_7Om bA|]X\pJySz;jqh)'.6tq␘ rNIQik`q]ʍ3̘LЬx9kAqmrH(PáZb\\JE=2ݎ/7~],&Rhb|X
n+j3_4S< S//mW\@HF[^eÆ
G()GЃԃ<@-7bqcvuD|Y$7嚦iQ|+lz
 ]IT)CDM|Txa@ۉ~5#!c;W0)1\K [ԁ4ܘF 8ZMxdUĬIiN?Rkⴾ,[XdJ^Rh*f&6њ&ldy¹`p0<|Rx阭j&rA9}"a::Mjs&Kx,<taU(ir)Ŗ{	t-uaJW%XodA[1's)(J̗cs~1OGJy"xZkOHί(vE{z08c;|*I%X8vBvj=8ā^iu>=VL4'gvvr̮!kp$#^31fE<)3|;GFYD8,:Wz2)،/YflF,(ͣX~r)]ds|%K&2c9ZZbq%$"ձMY  DT^)6<\2>j,I	^a#%|SAk,Oa٬x!0<;3٭FϷ-9.3^m.ѻc_^	XOv !YS(zL^M>(#l-|*4yiHgaF^ pLp</bA49d&Ŝ9ƍT=+~<cp,&a(cMX9#,4lǱY2."!<)tN?52b~A@ifHb"!EyZFa%1Lg|7[f#>g2D(̗"ÙǱ9sV%0f϶. 'gӖ!uI>q3`4?O00B<d8|T!S@)ҟdI2Zr.h=3<RFJ2 dh)dIEK_~%7Am70M؂lYĎyٜ|ǧ^zݻ1:v;ѵ|?n}'RI/#O`}5>3+tI6O 2UYXj;kg`3n赃҄Rl]5#	>BR򽾞gՂ/$(H񒢍6%)S<8^_X3܎c}=.$X16+*&Wչ:ҵu|+@eY>`F&WG,uĳi".ěp*u:-Ӿ-eӓ\5%d4*Ҍm<Kj_ZUN"jq286O2U&<26a=D2/8YºFa:͹5dė&ĖT8IEKXݵHS>6UZĴ$@&*.k\vG6qieJ̎yY8+vvw+q!ŮJ<KUF	i +$1[Y֗KWj,02|tTCJh$peh)B!L
ƳL6)[;蠞a^Y:OO
V?ۭ%Y%h4-&$:pn":L7Խ\A)woe8o~[1C-6dp-dp-ȶRG'fI(.RY(SQGa+Ɋ#F hD{NЅVpS2QL-}KNNǹq_6yPcMgS5IPp"T=˧
Rq2DD#zcGNЄx;d׾gcjJ]i+
d[8VОa@HDBq's;P0(2y^@B|P
[W+IKg+8040e|WM~)(d#"Bat&ivV-nAH&/{aQ?ʑ EC-=}xeNa'egf2ʓpZav,b/-wWj \A6RZ`ɿ	l{Z¾a 8ƊWi`WIݡY&{sbU{ &rt٪F 00ʮj@v4)UÿC~Iֺȳ-2	Qj	.ڃ&Zxe&ϒ+XD(-1Rl`Io`o*P4ǀYKǽmKNnQ.{R"U W^\aŎ_hU*;CDj[H$gS8Vop\|wyc}62(a 5'2Zә3G'i2ÁL'A t'Xzo_,(ezWk	Z}@5I)vŉ5uFcUKXQ(?y\ɲ  H
8qೝB%3+]j 2l"6sp*ٗU1/-97Q6P.5n-Ǚ2py39 IqhS@iuTUad		p~ym{ò驍I|뵽L=Nj@ }S׶0oOوHt 8ȥQ]CM3=_c-i1bo
o˽{!$+UNgrr{3W7TfK,Un$uAh(G 8ae
4Ҡ=S>/0qaw uEN"{vR6UFrj'I+V'3b&xn>u0mt".j!/kաjOF[C FyC\gn]8ՍJStm ҧuĊ"y,
7, }Z«%W>s|s,d@yAGDЧ&$ t 	_Kskˑy.i@߆ȹ7(Be;\ ՍVm+fS}>68SI
ZG<aC=PŔ(d//0; lCB7 >Juj?VVKՇejhlw
BnuKi9?{6o綎K*T_~^߿6nk}hZz.[oZcx'x duY'[TX Bx|FY&FɩL@-e yHh0*leerԤ'/`|u&I*
\ʙi)i
9 U˥ƥ0 xQs8)4<=:4L IOhj,$p|ەvH'5LvZIG<RLgr-9IqbW<`Р^#:cS+4$zƈ ^ܝdRqkrݭ@K9]Xh*>"1®hcyqCg|МA&نjhgZ'bQFl]i#Tlw_@3#쯔KxIh:]!	J@55D/d&JK>Nu.^+y0lɾ? >t5t3<]gN{@z}u[aׅO~!:V0î# #l$L	`h4SFFD&\aFM\Sm.vkx&G4J&w2j9B}4MȹW<B61G6!Ě	6EFSMqd͡pH|ce`@^PS1UVr\͌iǒ%g,fM]	s+VR4!l,<zY?K#,nMai+>TLHv.ۣNyzjYﻗVX21f5qJC]wYj4
(UǮ!zs|{Oֹym㯀*y31XAArPI竛`St{\s}΍27$)\z<yc=<Wit1ÿcam^:Kg}hd	<M=LLIb4hMV:jJbҔ}EǱsjEgkY6Gm)l
zvUci	M<c_Gfr&bH6=3E-bO֫ODmo:tmgrNr(&QyUbcl/Ofw9+) -=(؄4"vgdAL
$,lǨI:I&K5ǁ*WMˬkfL{(G7_'\Wl_iAc,˟!n[-&TCθAU{kkr:畤1bo؜A3Db1nhruj{Ԍl8lg$O>[:VAI\)5vmCA.2JҵK#]qx-pYscnH(GWؕ\ptnTPCr$s ɛ9ϚZ,T%x;ι,
w->RP!N2rs̱qqe.2w|hDh,7=QP%?%+fv%x*zl*UlW	ۉek`2:JRzsy:Ǹ[ScTZ	(Ǥ\ncs]&1 GX9ʝٖ
jTŰi"ӞjR*K=9Ouw֧w>kܠ1>$Mb-ܩA%5- 4-IB7§-Gょ۔ǐ48Zr_2|'_6gιa 0̬?VƯY?\V:se}m:{cFnSuw=SOOO	<wTYO&DQo
h\h~Oˈ&kӿ5?_-#ۉY\gXW;mun?ұC@.9͆<4x/Q3-2 QB"BƸtfj3$6ĎܝB;KfF.nrǹg7 \?Q\x;W\]Q9%h,m]UKSeF7lֽrQMMWJ%h*HJXtuXa)E݀);sy<"'!cYo#z}vl|Z"1pf}^5?8*v^lj&[~+7qOR3hΐR5bZF+,U`r>]}gBUY,]5Phayp.VnϲuqENbWs/oyGw/~D7"
ME$H4O;{	=ܙGڝ=V ַ/~Ԉ'U3x͒OkAMR?Xu[S4 PJLö́$3̮CI/zPޫ7E$766"{y|.<](l@
NuB@:F.eXݫzs]bli
TTٰtBwUS8M0
hRA1Ívja,Wgkެ-Si׊ŵѪ4D a&n7<\6_kz>&GǲneJ/fvzɑ nL7(M߻0i'RMfp@{h/2hȤuo՟C:<)B$t ޤWzˉ֙sSK{؇`"oagRw	T5TEsdK(ks4,|:GFB@3OΫoG;ϓy>M^x=1'v쁿x5WwʰOC9rJS̹=x2aN%$
qx{ge>ԒbTĢ"$y%%y%ΉEU&OJdMA|X&Oa0`Qzx?HXa?'⇢ r^:lx{g[͟+E .[+x{sg<Bif^Q|ͮ|⬛=';jm.esr䇪] x[[OI~^~EyI,=ìaE8LlHVVlצvۀ!!aw)`u9u._[w[{%:Jbg_ś[K%%t$:4OT"l)E/|ߴ{JGxFW_W:+JD:y*J\RϾ3"U*/k-y
Ѯg&WBϫa;qeozxLlG'nhvOdWl'\DLS?rళ+ f 3B'[$e^'*SѢ-R=^"i@YfyV=1/Nd8i"oFCo<1hx>c;(OB['tHo"݅i,}5W>-ro!B_$D,JI)PTeԃ|{sL/bfV2h??%,ї*0r"řLZb<ZHg~XaDAJ:<,
sp!Δd3J,eC5K
饡jʄ9[E)ӫb1J3C3g*TU]fj%ūN_:x{?9r.N{rq4{l<x?|.]O|;4 3]{o#ԏ<{3
}?~Q{֔2~&bгI?+p+X-vaQSMHK-A3:a@@vaOPnV5:N0+BBƒD:D]H]	3<|+/eTU×n=ęf!|"Rj4>,D-LdstaV5wU `ѵe蘨ϟmmN%nB%SX}G8W36BZ$&Wӗf;	M431_X2ItRG{4o@mGc0 O4mok6i-N0ǽt0˫jbv<hʐn(딍#JYǥ
8< 8<8ܼXIqcc>u "v]^A|˄  =`7팏ٗNsn(؊ػ@k'aIHrWkCPBfu̘ւ.6Sp@Z-koAe\4}x<iǗU1mxw2<ƿ_"=H>-3<ilߑ  Nԯ܆)7.."Z(hq%֨B<y@F0٭KoZs_ad|z::" ? q+X9;0_p|˂W\Bg,pRzH'+}AeR4!`Ѵ@}Jd㇉l,CAqK0~{EVG!B۽f=L#NvL"ǔ)%KlM>&>5WfNu̠#S4!6Ab}'=`{w{yˬgR"SJEe&(~͊ὔL|.oġ]Jp!훙]dND:_.hs{[6fRDzWcGEqx;HػZ^PnfVn/h:*&U%hB<,êZ	UdĂ'5-]eP6yvTWt3	R̜3s#J|%L?*Hma9?*:'dG?,%0Ufd0/<fzQږG&N1:61R.)I<	&Bq酹Dkq<2OC
]vACL+-mSS-Vt/0E_[隘C:.b._?[;uS2s'iB)jz;S
(E	ByLuI9B8YWMd1%8-tT~<uc-ge>y6ٙ2^qԤ(C~f{6?t Nĩ1eKI-r[l	US!e]Ž4yDM}ڢCfMXoʺ5JAط2}TJEȨC*_J%]myz}#jP!5+V+ZSi
6Y-yYqʫn"*
 mSvp#Yo3FܐOV[Wd
[y5U7QK\VzhBzt**%\=Tr<9β%z8$)$h DTQfoTn?j[c̶>ΝؼPѕ<$6jY2
kP"SeG6sav/UAŵT(_6fe%Y*GN;Ap'4gQRXGAsϞ_wE&,wvl
ڊJz+
BZ!mhQ+pb{|gOS2;*9	uGvY  \=zٹ;9}w ^T@8[.D_`7lFNh2	VBѯSؖc5ҝ2Uluw~/
pΤQ'za
8zϪw;c؄&Z8jYIsQ{Iߥit>Ԉ4隐ܢ֭=(c =nKl0`puPuye^Y׷	īES2z'z|pdAįKtXثU޹pfsf#14Z(wn@Yq&:=(XKp9d뭿tq]4V&3[߰ōLOPp({*Z-(0	U=.u`âoVY-?3J5jlдn=K'E/	:e`xZKV4WMe+k: kXIxVoE4'mqM<$ܘhFpQJ;^!l6 >"	'$ pA@*[4%rd3>r7\iG&_dNթf=!W·VlI;LxdX&7$D2	F%F2IL2GBkKk57%*'uw×"׊$tl^Ma-]RhEF򂮣TY`5LLS捄Ψ[:7"fҒh61D[UI݀o,ےFc-6+zU~U8"/*)k!=6!$	B&3ъ(0Ϩ:@0ND᧶0dxjVP(QI`F̅
h2zQrf/$ՖTȇy-t{cr45ӝ&+F-t`̶iD覑7n|9ܓp5OlpۑJ{u:O
NӲs-T^tFC%F$T8ŷ:tܟg]I%ZoPx)<Q.͜9cit|j#LV?e.mE!-},vφag`Wl9PE,0	;z1Y!lm"p]u{vt֑^x_'K`lrYV(a#TD/:<;3Wu%h/uK}08~KdQvKInJ>H?v,TvF;SFYMf\c7RTL%}(z_gV;nWJ;_#58CuJ/Lγ`v,;>ջ{q^>ʏ/c/IK%[|wS${rO1|%2 &["wOV#X	nZEZCvڥɋquɒA:S Z>\դY80.QN=yq+l|"3r2-n5Yͻ 3
nd_xXOlTEZiRi˟¶hvٶiJnZ
tk!rФ̾7ow{o6oۥ*Yh@x11hpӋ7oD⿋L4ѳ#억Cig}o֯k}	تmk;{!CAMt!\,]h[
MM:6"uH<b\R?[sĠv aLamEQ[Ll?4ƶ<.C2ǭr d4vI.W9ȨGKwJ96(-"67Ňω7O4h@	$<+zPƹ"F29L&qu448=iq{tT+&AĮ
!g[;fy>Nx[O/
HD-5^L]b#VdP@4q+k^_ӷ7sl&ΝZJ,'bǑĒe]lD9➦)XL܍*	ŒZ!(Xs8׽fw\\=O\?QE"hnX	0L$/?D֕Obpg{ ͞ȱb BlpOqm4lx^?lA& caS0{O:m9rgŏm]碲OtSG$q/}:y$r1$LS
*Ye*bwe3~^%9lbwoOV?<}{BsAi@Qِ]{]L'nEHkAvZJq%3\9
=iG<kUp^s!>v`W-mt3q#>-~:ts(pbDE?"^Ys8gz3tT̡0Q)esb4B>Cl9~uѼ ĠChq1g(MM5Iy!-j*q o(&=,3_BCSd1y"+JW2++O]iz'rAC*8ޫYS|6<PD[lns++t- I/ٔwg+&w-tW7`=ūck-a,jrt2
!|AhV~vOϖ-Wm#cuZVLU[ۆvăR-=RPt7SPoAq5QGZs]{ez0hYS7s {F.FYa^:$ө%Ki
znI]6ϋ[w6\VwWj@\FZR+Tla$gڑ`~ވOfR0 蔍CD%[	Ҕ PY:s^=,2ˢ632ze%=}#f4GlDsL:@URek_͹'xok	9,_ՂifOheZ%;~q2
cbxJ dd( method.
 *"NpPUdeleS`"G1is1;xXoEWINy5M&M$&uI*hhI"?*z=lfn++B	4 pDPo .P/8q 7$.|{Ug7;iѵ>EǺ,'zfyH%RrG{/zVoFf4-#KߖlYJ&.֥e{I^GبR,|%Kl-ZWQAE]eɯ!!'!]48<&'C0FN![x^׭ĝd<!m&s7męl"Z)IBשPEQ#/֗",|Y7pDBx	M?&DZtB @?G`ԌP$Bis80tG@*>jt48KAW~3Ǯ2DL
2JʚNNR/L.jԴcX1uը!x%|v./͍
[\N\!Ig}S3ԪDn""82 SL05VwJVVƐ KHe`gPQ_k*C68%TL2euaT
x8R-oC~Amx'ݎ]ṭesd	ݯJ(
`Āl8n hăw4 5&[ywpzMWW%tw1pxF*VԲ**N !?5KfLxj`ts+DIMu#wnSq6$MasCZ:,͉֠dg~xTw;<1^Q	__XGJ(@P)' !2I	KjFEy4:AR(aQDIGS_/CI_,ۻ馵{DQOA [Rx{肟E7~:%ZZ9Eh~yEf+0>=PҸrBd~]e&8*kN`?z\@"->8;rQd%l=HLs5yqad-##eB̴Küpz?I:.kZQV:_DDa1q,Pkk$r"StcдcP?FƏLǭv~ e0;L(͒
d
@ܽl#XNOډ 1IWH
DAl˵0rcL!/TBugVxXoEG71QJ4͐$:vHXn b9
ʌqzΚdƑ́#gNE *. ąG̮׻IK3ޛD/<$vuXw<&t1i=LtrN%H=!u.ծ``-G@A"`.FJMt%WQ42T/xM I"0	exp&$(YsTB@ PAvՖDr1JHɔJ
&(T*MPFX/L9'2A8w&#L(!ZLW_|ҟ-kفmu5{RpdӟTȤdCxJhz3kx 9lKD9D3DJg4Vy35hڒ)'.nVb	 {EhN2χh]I/Egt{"3'zIe\h6smQ=[POY3=W:+f/=mO"no6*#oPϜRE7ZFS#מSؚB|7D?Y$}z"TMOn!o~s,tyG7-c-֊'>q#1iI_9mMWG*U}\sP0X?h2F \:t>1*D{Q J,
=N[/?'6|7kO&;\_5Ξ=Ҟx᷒^%NqV{[?o*P%ܰ^P6\Mj낋dI]<F}Q		r]WhS<n#Iu`<
2UQoj`%B	Af7ϫ7__tZHixGqZ{:f<UMlZ>_׷|@.3<.g#Na	U%e
XDJ] 멶Xz<(`xY)_cC]x1B| DԿ0iV1"kgq*rO>(GTX
kXz)%U_jH:9s-uV+8&F8ҧEc@sȟ3|ѱqzV7b;Ş)6lidqmƘOo3<9V*5^xVMoEI48v>j7|R" bCU0IR^Q]wvJ8È$$(H,qPqE!U\z쬻Ŏ$yygзۭ?_p"ԩs`^^yF&\Grhf6V'`]BؖhڵsZsɰOՕGC9yfoCI?D/;S]I \v6v3Yj\]=ޓk9wny,:G#H_5 f=z1HzҒ%r!5՛kԻ&~Z:|ren~(x jNKC$ҝ93;S`ѥ!vy$Updבq>G!M#<^OFRУH╗gv<@ŀ'Ə\k-S?Ff7NGW:Qv9[;zQ1"~AU/B`k5X%jbX.}0po>@AMVt#Vch+襞:uZŐԱfQN7Ӵ_\K/ uwLE	B0 >@*%( 9k /wM{ioBMGERJҞfMg1iZX@VS
XEd-f?6y6P;3w;O3ץhߊq^6 /}cзuk@xJ@1k]'CEugf}Lu@@tQ$MaV,CUḛA%E(b~2uKWM{-v;5H4/Oviؓ'ésH%GB'eHdlR+5^zMjLmjw{}ƛA_a	K^!#0_AMbP2RX`MVg'{%iZjO&_6S~Foggnk͝7 /\6xVKOQN-axHG
ByJX 	&6PFz۹x	*Υ.peV#q/0nܸ4N;>mI>ӯ}-"Q:]ɫrLf?׼E%t
9%vB @X0lj.Nҩ<4lH"l;W_,g4)(Ev0(@	8xP*H˵Ѵ7%I.ȸeA(V$yabis@Ιt0ih:do2b_;jB(e3n13vX%7Aٲ0|'`_!}(cp-9-fjMUWhJdxê2jq^u*:ؚ.ҹ8ure­*°Lމҭ,UFAZt'k	8Y?g⌗[q!ۨ;[vG
;@	{sea^lS:=|wՓ.;i!p~P!X(ſ%.82lrO|5-ڢЖC4m0웫#06ϱogztǚp>{wcg0p;4Zurmf"sA&sjkVՂlO'-|hp1XߡF"L~#&X@8T1>&nbQK#bh88kҖġW!EIi^,d(.ȈGَml|]7CCxYIlUV4qԤf}MKH4,6i&4Q[	0c9~x̌S	q? $
	B$$\]P/\*.\8p3xɢTjf&E3Qxz3K>8Y?xI%¨'vU$8~+&q$tY_df<!8spиQ-f.oI9u9PxC܁g_XF$.5t*w[T5S]M~$ADDMkhA#*݅L\Gۡg)'
zotlU<x;O]%b3ET)o4+E1* 6"zJ(M.SU2~k)t+UN&3cՔ~@xNEM@CǐC,DM)0eݬ
Qo>0\ebnS$A@)Єѩo\j ?|&)ER[BE<1kX61jrp.;0XNob!׈k7$Sj28I*JP	XgiS(8xXŰ+$aZ٤vژRyןL[TY)(5sb3e'5;0v^sع2Ӳ;:771/_pyYFб)y	`~We	W_rk7%xⰑoPmOS-N s6WdQMa%[4ouSm瘿+aT,[yjzbkG۬zV^!;,4ߛY%$=-Sbm9f76x?_l;ѲppܨMTɖ]]9zd<l};
1(%^]h>r@ 
An[<AZRx$ycᮎzRHLQduEHKp:u&h !?B35@MH/
aZ<^I=:#aY<hp@M .%v&-`JWqWQx»!I!lGKF/Ph;0$)H:>:gGֲˌ>'݈3.}ǘ!8q40/v3M;2:]43c?)Cb%QY-Ir{ j(xHΑ; vGl(	`Kަ-8[}J=WuN'Jw- ;GoG<$-OSep\o.MK3hy{u>@mv<GJmb-:.2Tx16BIʧ..dVqⲢgR!6|ia<))]B<Tdn<|$%<S!_p)rt+X6~:ȩ,a7%rn8ń($J8$DQ:-+fvA,v}.:^4f_r	MS&c%~K5UΒ;j0hc4ɚ"nO1p8r^XO쌰}ýCCp/^o{̺>y"˶0,.ųgcYm{iچ\Rkns1]~A]g,wo)ˬ^9$iBW2kqE&h͢6qP:.2=[;L>ZKP>7<WNvq9cw1PRT=Z!P=pux+vsu%]n<z/D&Ytl;eR|,4~]ixXOGWB(`@%JaPpۨ	$ڤR]we2cvvAY:[/!9=KiUwi*/|~i?ɳ/>5$|o>X!XÐ_-o6E揗, ٗU&|ᠿwo7#%^&\}YՈ\7	6`98Smj9;dh,WU<.rI-7R}8Jj?GC!DSUgN	qgjje š2	Su BдU*6әRDYKEAH2Mp>毙l#GNM%V$͗]ۼIl̖5˪i,'uT07"jq`$s4cg$I*DcGap1SRLD>p	&CɴfXwm9F6]wflÝ72ے!&N>D^y0ڇtE BM Nel,."Qhž^>bu礪p߽vne2	?zb{ǟ\ASEyK&8,];&%*ɒed5`ǚ bӃo殦 ~[^Nhy{ FcfuaPH`5l^6\lR4ĪM+1Nb67;7qMqF46f!3?^_E݉Xf@DBi1-bv?Zg<tpZ: 42?eDEGH-c'gE1W" &'(5b(Y!gMQ@vS$$Eo^]ؤBɼ7T$WʚTʊ]*aQ!6_h+E!^w[WkDGecǵ L#1Tynshz95{s!Qn- H;+~ՌYbhw3b~sF`tHMIQIneF8!go:pz߆o*7|2Qm@ɘxI+ɿh%z0p&8%O{/wwFSpQTZY7aj1x~u$'޿^co{Wir+9vv.5zS,.L=lVǢ{(n :AxYMlEVh$8?mJ~:$mhPJi!m@EBfǫ8zR(n*G 8pC.H*'.83?zٝ7}{o޼zͭ#;j3Ď,T\kBS"e)rT*G3}Bif8ʋ]2|E1Zhkj't(蹂G,=Iqkbr ģQE&4bspma^>0.$t$Ih>>HJC&!&tL}eVAim\N "GLO9GYx9S]1>}>^Yͳ|p6f;iOxP5I(J
~tnkT.fd)<Y7X3uX䚦@@F iaV>QwL2d)r$آk:i.f՚ZeOwV<oWAM`QӰJQyR6EY*h,oȋlvQGZ=XpQVX{zʴh8a,Ტ?t(SS0n٨eLLy5[`%wOn<e8̲cVXyĄihjLCcgesaLN=ل3e\=*i6j6t y8^`Cx1_BǱGKD~̟57
\>÷ <3<Dn6_
>o>5A[o=eQaq\f<^čnF)
* >i3a'x?,xIØeT4LU>4U%(EEv4[wg4yCʃa_	FC#`1-lSDƱ]ւ5}'u'',@<BA0es)LEIU@W~tWJ*
DM<-/4BQMT	|jl08D7ṵ̄l:R>Zp3Ю:PRh!-6}h"MjX,rk̎r*a9퓂/E T=XS[Ŷdr[LQAܣɥl@sWfߝؠJ+`ln5
hzr3zB.w.p}0PU-\m9MNn(n;p3o{^\Mnp!oS"]x+?iV zح36-W{'(5||4u§-®ٙY봂#&ϸ|B6#b΀us#"$9I5 Ftl5F,bT:cIzu[.V!"­vG_hjOK͘mf܈~2yڤ&fM|!S5}ePsԂh&	8Z&?ERDCk7<ɮ푐ǥ +uWHƕk[DijZz]^mO{×Nnu9fYKcf}aFf?tD&[$mFŘ3"?"4AF$[6녇XE\K!/׻svz2S֊eΙotg`tL0kHVHR$BQXdrã`P
<i6gTqZ_2고Թ34_"Uӽ:^
~z<Ľi3*pGRڴIe[ݶN};|_ZƎOKX87p.yh|ʿpgx{$ef}և<NroFm cx{$zzr' HJ+xVMLANB-ZJNbSSK_LditvrЋ7	5ĳHhyQ;[my3}vnW`Q#nτa\܌yKEԲ}D1gT/E4h00ϳ0NS0ǎso^.qN8s/O
/xhrhA[ґ69ZZ[(7]ǹ:c$p0s|q%Gɉl&!)%05G)G"zMyq0'Ln1艉ƒ|YGo8.s:s={e玅*#uTI|cSYQ_qCw}PuKK.htQ|.ɆVF,$b& 5XQ׀Aۭhm03Q]Xck-~^]"G0(8((wd Ol=X͊?xHdP@5h.]d^ ` Jq c .e	{ba2l2-0(DK*â
7]E[ft]UPz\.T5vK16'  )?8@ d	'H7NXm6UeMO3GH2ps\B%D;F+z0FXg~'Sr#+lM^wH]yxN`KJkzmQ}{.],/#6Ch@{	[;P07{B6}P> }<e F.wyr76i}VqVA\sջMN!$T'qӥb|jvha7s֫M8#K[K:oiSSsc``m =5C8x$ d[X.]'G),)/P2V![hkx{s3kYfJjdGfe(+y+kduu(+5,{	Rd2KK
JKsS㑄2S @x PM*Cc?| 9ynE@ӃKJ450-R(Cp4qX{zK㡼[RBOЁ*kXTL3H'EEEx<1y"T\\P"&.-(k3̯o4,inUjn)(kyu0<c e܆,yqŁ4y͉2Փ.˯H: bfOT*h`M"aB5; Oz
Ò	v7g4F61(5'58{/HNj *x*<%ePM5Ho>#jl{j#Xi@Q~ZfA'daⰴ.nuA;jV =W$302OW~̷2z)eɩ.ER\ZTW P(/I,J&othOR1~s=ne'k(Ah#B6SZȩRW9	U`c
'>lf
3㬺463KZ7hqRɂF?4$ 4$TR+8*h LxYoUmZn-
"H)Z[*bݻngBmꋉFE#& M$	&&&`b~ݏݙݙ][ڇs9{f?{*wJR%4\sU'ONw/̺Gb,CЕ!RW83ٴ*øyyQ{(Hm36>&j&~|d*j?BCQY	@е=LN6"LGeyFeHd}& &&
D{nAL`]*.O%pLހ$*8CCMw	H~A\mMW"ẗ́MtGeY*}PoBGGmF)!v<#LӨ%`}V A༠DkH	#M}4rAaDP:cs4
i4.Ӡ*Oa4Dm)BS(&Sg=4lv{o 9n28r42㋖ta)Q&Q:
>EyhLs+x-[_`N$PGu#ڲr.ꓻ#jΔ9~|4[AJH2TtbP"frZ:909@bbTbX7Yij֪M:Pbhu#j1kTxʚ'5N)B*$׬1zTg`ӜV^`fWd7v}	'i5LZne%ojp;Tlna6_u7+:@|oߢgZ3%
߶&_-+`iR#I!4
eΞ'bs辿Cs[Rf_RmV<tpA#0)C
[V!.lȒʎ8Aږ媍ulcPP5eP rsRH(x1l1Rh85%w{mrtP?'1^)frIO2cwtCT͊g^5Qه{۽%6kQ+VVŵDnE*BwuDKfꋮ}`ي8(#vog%@'mƠ IS2G"R{vs\T ^XgbWHy&GFaPW[yvĚdO@ڭ_u.]m{|ˎڑ{KRdG:,:S!s}.f3gt\1\'}֎Z6wZPRA4e)#e_&}9]_q<ݰ͵ JM֩ Fi4z;M\'зMAE\QgYǫʿZ`*6gjC_[r65-dN^U"?0_i:fQȼ>brfckA>60yei=i{ctPuo?&\ä޽;6a׽@s cB9Nef$t!?!JʻhĄ$հ=?\?t}XDVOQIJ;YG->ȇ?B0رf˒k$߇)YJRXT뭭.CA%z./vFiA|6ǐJQ`Ǩh-d߽IJ )My=W<
C7vf\O"nMITezrtX@}i<4)(9ʆf/ATT#q!#o&,wS#кƍL0ek(:,ͯI:ug#XI@1*sS(Y7W@`mK1vFgilݮш>?9{rjddrp"Β DxVMLAZV薂JvPQA(PӦ4FfSfw@5F/^&Ļ	<x0$xă5n0e̛z^Ɉ]P.<cHjNgOң
ʭ 0!.CELQS/ؼ"(n|"Y@H7<dyGv{N*R4Y$*_N$խA6/w0bT"MuASdmKEVLLG	^5'B)n7CNs$	$soD.!9jGKݷ	D=Pf(YDvw3_jl] {ZӒg3tMR'`[0B)39pqMChnb҈1EVaV!!px*PK9K׎Iyq=5i@Ǐ]!Ώ=4ŤfU/:0,>,!Tr`dY>r$oEwHY_l2z~VO9ia4-	TLe!OaD	ZD( dt*$_O`x6,/lxhn
4&fU~/EnW0W8	Vf(. EF"6R)[ZY&.>HtEӁ\t--bvQ+	ZTIxȖ+likWT=I6i>>(W=SqQtWu8b⸧V<aF~Wlx@I{HDd4=͚!=2|++k}G'GLIƮ 9L?Wx͖oG!	r)R7	"%l84-O̘YA=jcO+B8TB j~ػu饜Voo	CŶ*@B b^]_r2s*"]+5ˊ#+~1+_̌.i.S:5ƺYSsygl6hh\Br7;SKnYEݸfs趾Z?ϓޫP"VX)ߋ1FAkKvNQ+Rں6%9X>@UfT`7{X8cDa	[
^o[G	^I.|O)-!d:~雌/kd`&4_0?6ӨnpgpJ.	V'':&(T0pky4?t{"r8
t,b|<ΞI^zrl86U''wߩ< L,;5}m+&oLtL2\IXGe]G{_):5*OӜF9#b!D`[sҶa3VpKiphbxTqy6!`7Bx/(t4Af_x>=n;
]hM%2?n6%ɕDY =*=ulvA_X**jP¨UtjIJL#!4gw#5jE,P |IOîͱWtr|-Ow-K܄eGX^>`b E|$.+6`C.SE[0OϺOT$RfFL0xpb ]DǦd]csʷ#󏿔OS}N('8&QFD׶6K.+⑿CxpOp}@T-d  Ʒ)nx9adWigXx%sJ3RRKRK@Ҝ]\va*\`
<"JjJ2RsS3S'JatNIJLΞǮdå `,QFQaҤ̤b|J/'wsZb sPFiqjBZ~B1<'ofgz羄TPjzfqIj['Vv{##ϼҒx<akΓJ+1k<Vkqs	a75 a#lAx>1|f;0  HWKxXs3GnjIbJbIdGfe'y+kcduu'(8'%ƣZsqkiq)h)8$e)!rĲ̜Ĥ^* |PN!C&6c/PByfNBR)
&O*HU@Ӻ]yf9\Z3|. @W
6Jz<cOr1 stE깨1Dp<*{N@ K=RKsJBhPHNIMQHT(,sal!
pM4)`N`ipr 
Rn-DH
<N8mǒW^tkN|w]~ERm.I,BdpPNd3@Z .#L/_@mBLHmJIM,N%OR?4$ 4$T)81 TxݛaG
%%
)9
E%%y%7tb|JGs_8DDdF9}A!~~!>>.
i
E`KsrSS6Ծ 0 x{xCd>A>ĔԒĔĒDʂ{y<TĢԒɍl<!@Z|4yVL.`|?arr1ǔ_]!`yt&grxZPeRsRp?y#u8H5'J!9QG43(D8*urH4 3yAxWoEW@(n2JIL>T	(qSKI6$N#>j;nfݝن(ʕh$$.? Q
ā#7$ĥ	 w];1={_~\zRU:7Ǽӝba]˛|zJhٰ2acMٕm(Dǖ\°{W&<Trd簔J)G+UK5ԴϿ'>P~>'bEv1;f)at\,ɫRicĕ9 %R,ӚPMB[ʣ&ʜ%bxh:iZ'KA$ǒ+_xdK;5"h*=tOQ`(q- 8L~ڋ	c%|(s&YCwQ=()Dň	Ob[ {CLf*V?TX4)VmKgGڀ@h-n]|%y m"r0ip3X	)9Sa]W렢*t-EpkcP+{뇫S(8הmtb6F>yD߳{\8AyBNص2\(t:5]3j`Y5pt5]$\{+Sv#_>4,Ʀ!@Jh\FpMH01uRM]ޱKnc	v	$2?H'`~3s-X<ӽyt:jԏ(43a
M"b"&ZvfMB8<ia-IU4xz7/B0&GpgGL<#w;4s6uʶm1DvE}qD isqa^Ő6\Bst餼]5PP8jjѬSR6M"ץ=o\:lT<LE?QS"ZU
4fc		_JbV2MUW${%=/&
̄mT#q~tuv"0UU`}
'K|UZzH~0Hr:^2G/(,uJ7qb0)Vg~CLh?j74Dh%4 fPU69Yte:BnE)C+'(?/^Mux{b|x1'&H<Yl+#y)# 9x{b|x1'&H<Y̖Qa1sF⎌Pe`Aɽ x!@9#59[<#$#H!7(H姤*d+(E2SRKK
JK&J;:p)h)8$%ÕR(J-.)QOj2ɉ2M'Q,M<AL) )??GlMk..}--IEi
yI9
@S2Ld: y3Ӑ C#$(UG!T%?C1A>@2er`d xlxkjڠ,YEJ5/1)'7(h12< Ex;wT|Bm Vwgx۩AoI	L@^6j Qo.xԿٴ(,3<>D/KA2S\RsRJ2R**'g3L^˜2YER)4[!?)+5d}]AԢxڬ.H9FV)43ӊKJ&/gUBR}U CeSMx<7 450\ TdfV楐mkVҼpxCLJ323RRs2RRS*Jsr&gS	׼ru2J> 9cr07&c"GI&M|6sstW>(aKũ
)e/+[8q'Բ<i QCO
Hk.}--
Xm&	R, %PgzM\
HAUɡm\x"#.2W?o&?D2Ď˄|຅̽-G嚺8Ƒ
Q=DEX!Q?``Ox?xg?7OZ4h-()ũřy
y%̞>y#"&A	vQeNpI~`)
ctWYu@T-&VWEQ{pC-0;  9ywxup?SKK2R
2sR'rM~-șZPZPRKAK (1&P
SV퐓Z QPP 夦LR*=y  !x8&RlTdFVQ҂>y#KjNj	ȍepwe$%܌E%y:dASXs 2[gxTJ@FD]n8BKoP,zvi"_.;#	g[z8If*j9gri<#xxߧúF'6"K> ׃}	P](:K2Ъ=lO~Y}$hӌuP_Yu:ƚꏡvP88F՘24їZh*E2"O%<zT0!E=c7JKP`7RLyHr뢔aTu<
zgÜI|*>^*G[-\>\QyC.~Ug!Oss$\rޗQW_
yyu\١ZH5}\n<e~ejh*8@nnfh$DV!5+"G%Kp!'wu'jGBhB>)&{cQ./ktQZdS)WjՒvt]O}#xUjA4DM6
"v	-T"kԋ* eLiϝ٦*!	RA	|} A(_~W3|sd\Spȅ{~~7,+ؠEGQǣna;{!Fz`ہ.4l w5ْ=!?ϪMC[)pbw}fJ|a1	.PD#)Vg;L}pd"Ŧ cVaL@ZPHqKQ1Z:Rl[ ZޅAۼ-71qDVs]dQ7!Dύ(n<PKb\D<5[\+
Et[H\f7yu؟ʿ$5oSLj<]Nq}`"h* &.uUkk~0Ŵ2۶2lsۥjj2\	]2-f@͈(u(62ߪ*Q^rp&B>Tb  vD'/S
}+ܞ}擰Hq]bf\S,坚[7'Bjܵ	r_2gb3%wMxd\4"9DCg6!Y}5FѷҜ6G+q`F^-EWoYZbxTJAƋBݤP#T`қJm&ƛVYݝMBK;8ץ}|EAO{5s;>5{6P)r\#ۧOطRWIuQBj:Ŧ)ȪMX_6Ň` ]TZd+bCklPcEe9i/#@)<4avSLV+AmKQ#mRQ=0v)t'=9@.QOurp2m{;lD'2*":`/g#fa9DO9)B^I'+!س'}yHjqfܸT7\%b#w}l@=Y9״ X-KbAFqd2И|KM$$zדzTzE?K@GӔҲ)L|9?LUִڭvUۿ\x;,3%5#2ͼ5::Re)zY%%
ΉEHB\\ZZ\
Z
IEi
KYMF<`UX:G*Cc?| 1ynE@ÃKJ450R(Cp4qzzK㡼[RBOЁ*gV4$e8PZT_q:+Y
`q=?^)NMUh,K	j҂6s|Kʒ憹8[ʪ斂pkAW?
<PV8m(˒W^W@לC=BYDN/feVO(L/_o%7	q3j_'6=;
1#XJХ$xK2RʡOAUtQSgDuO-q+(O! >9Lxŭlk%X͟|@9O~/-7$?3BQҪ򧹒X4ON)* +]WBPϰ)(b&rF(I \:%	;qOa5o;H\{8Z-} TxXk#U'6iڙLnnwM짻+m
Rdgt]J^_D_}XP,YiAE@~L&3$kktfs=0Ֆ`QE*mȅ햯	ra-?Lq|KTl @-T}uU&I$̦&`+\L/mřV(5xe5uHr!m^LeY|ZxǗ4p&.8	ɦ @KE1
~qqŶI_-sa}evNz(cs224ⵒ}^H+YG±iW4^˾Nnɨ"ExzLO&X-A]<ؼP;f6=1Ji\'PЦ֣$H7M73_Mx57A& 
,o{$DL5vPG2!!AeyCcĪҁWRus&m̈́[Vг7e
>̽y pC0;\8.R#ĮGR@~,4#!Mf]Z8EӝqgDAd߹&ߖk.;vQrOP{<ފl⮡v.-Y'1Z2א	,M8`r(ZHkvBTe![')qM䇬:	 DUO	)ǁLNN'g}LvWǂ2\"EOS<*=Ѝu_ w(R格++[hH
(kjI	7A6LFrxaw-ݛ)
V:|g;	r3E>wN4Oԅ9=05Rco.=B4;Sʺ<=sKnSIOUmLgXC<g׃ėyQo%.-.îxX3V ~YD78I=.	* P*O7F;mIi99[H2g93Z3DK0uuyK*0MbIШ(Urߑ<J	Sik֖4%Ԃ@*[b)j|TRndsHޭpg0-{Wl!e4 $G_`zލF\g)\~-Y[]Z[X3 9/1N(wx;z/`S	bTԲrĒ<ļY&/LP(-NMQ(WHO-IKAK (1W!% '2 +(5&Gwfnbz*H/H~'L$RPZ\SM- jpLBKsSQ,B8lD~abBϝ+@s40 2I ,vx'?9薐T<'`YT0Y@(h0ꄂSK0CP
[8ZG!)??$>q Zx;ڠ!i)sorbnjQb|^J^q5)s| |W5xu
@ET[t^,EK+j%؆%$Y-D ߠĪp@XJbRjoWty`,n"Rd25ZS̏MzYi;7xe<GOD3,liaB:P3#ÉaO+\k˗ݻQu~=KI|X%myR@:xOAӤ`KSH	Kc?bLXh^2m	;	z xg=z0FWx2;[`&^&}o杼.(nQuq"Њ>?~1ۆLbdEqv{7Sĥj?HLaitWr1n3F]<G	CjtDqrvj*GْTi2*2<{x(]ȢG(gA(!t
VfׂaDI<!/ܛÓ܄3tfۥHX͕GXRɯSu$U\Τ?k	1[ئp]\[IV~0?h~uaVH0x'1]s۱f~wMhmh+X|Tx`7#t2KjZbI߆ᕸ-ܺ̆"6w487NۖaR7?x'AxmQJafhaIV.JC::	F.2,T(n4-?}z-zh.<|络v\8([tY!	tIet&טQ-]۰* Kt6Τv?Ь6Nb}v/VÉ0lӽ}qEٝBk!h=&M6üa7Ity;_kTŦ[=L4c9Z9~DVX5?$'JC(G'B'+Dtk.OF!=˹aФ|fצgtEr,>XAYH׃8?Ƙ(i5`"9t1$@Hy}sXMx;q4KeSKJ2R
2KKK2':N6pOǩ$'UKAK (1W!%,39%5(5!(5*ЙV5371=5&[퐓;9EYABQjqiNB~VGM7ֵF  <LdGESL nR ME(i6w sex{#IpWVV_Y7d z	'!xeMKQi(aD6)Yhh0*p]qszu".;GlӢxg8ZL2ΕH1CUc=,TjmIASq#p($E"J(T(="xBk'0Rlg֕~</{(4&K
:ϙ:ޣ*!(}Apκd\LޢfRٸPM[D0 q\O#aO!ƥ1ӍqI|Tmgӻ,l?[P)qD-((fLາ.Lُ'IHJsM_5T' d(
ixk|!);1%$?(@#917(KAKHIEi
Ee)
%
)iy%y
i`g̼ԢT"X2,ҜT=Q/0MgQ,+ےY ;d\\Z@Z-} ڜ8Zxk!#7$1%$qr)23i)kcdofu(8'%ƣZsqkiq)h)8$e)!rĲ̜Ĥy+ O!s]&2c/HIByfNBRl
jE
řU
%F~dd>BC5`M!0R t`P<RPRbl_v&МȮG\` d81<ZT_D+q8#GXr*գxQjqiNX-
ɉ99)
IX,sa=≍|0Al8FLdE.$OBppi!/65@pry%&O>L&$|:¡yE%E
;.ȧCFj#Hd+N,_hy%E%Z:Y_r 71DX@W/
1"OXLZ"?4$ 4$ pxUMOANՖ֒B$ЮP@" BhiԥLٍtwM`$*`p6ăOzQL[U<̫+SY} ;Jڟ	Gs s6(X԰(uLz{(NK$IT\C
OC # 싀`<oIpv)[#\E)fEl@j:&˶Qѱ!ydomJA^ɤOF:Vǉ%h~
&.}XFO	>c94Os@q#%Bn74NȆ a7 >R~u l\L.K'N؟6JL̀Ԃ8Ja;[mVq[P:,z$ؙw'zy5U-腱9٠pS!DĢ#3m&,ZVdx$UDIOQ^[˯c4MX<֘K5TiRUs?g=,.7!g׍"l7mLT:z6ӽK 2'(t_Cq>o}7ç?r
>TeL0tBQ]ǩ{M:\VWoy+6C^vk[T*ornqM]ߑlfYV(˥<Yxk|!,3%5r)25i)kdofu(5,	re2KK
JKsS㑄2S O@Ʈ #$T.lPLV!$ s$
^5Lox(6u
sC2(?ϵ(HS3`pjer*AY80	pi@Y\z(C=ddE.󹤠\Z0p`Ō 啘<0I}@q6@h^QjzfqIjq݅	[`V (1W͚͂e\XT'NhV,/HQ՞(⍋Bj+,-jhH@hH oP^\xTMoANXGhbP&ڤ*1Fk.k	70*~hjBsɃL&5 ?`˲4=y<;;sG$ʘ?W(T	pun90t^ /o6YǱH9I:	lk%Zl,XPh2 >)M3i^%0G-@R>#ϟW# UZnYXi%bIhҒ^+{MD6;ygg5̫SPڼ>vG!!ku͖dk[IYA)r%_&698ÊmֹPvxhK`'`4C?gj҉\O?uBI$:!;Vt`hhB	Sp'C$]0![IjϘ*`Zx67#AAzJ=S0jYV?^	m+.S 5OrdS4_|B.6nǻ Ck"vxh4Sl9q%5+UtCkWO܎pvee5bYQAMq
Cn#Rv[xUAkA6IIJJjtmZJ)h 64K0;K% 'BAz.n=zoڬ%μfs8cqWVoN}[E~՗ 5`з`oj:RPi/-!4+8EeR_ 	<wئ(
5sLl*q2k헩

K&:c=U$dbV&x/Uݦ9bдVw!]O{TO~Y&|;{BG$lz<p?tK7U8zPd7) ͏z(~˳Xuuc|{f3+ Bc ^l9"IwpxF+<ZH$r]ztR1ր$ J):yu34GQ _[KO EVh9v_;B\Y7eh1Y$bp%~Tr
]#)Q=YaȝE[ac?8L4$HL+TDPmYkV&]\/L鵚JE8QgV]Dil;(kKJ4°Z8mf}+EcyøW".؁ٸ2lSL~jX=ϡE*xax`3kYfJjdGfe(+y+kduu(+5,{	Rd2KK
JKsS㑄2S @x t$Th'd6 $c܊$hj`ڣPh>[&Cyإ0šU`ˡϬhHpõ(&/tVz@R2jY$ĥem%sq 
U-eւ:y?xpP%<Ёx#91z݅t0Tᵁ_oP<_# KnfB5: Olz
CS6wVcE6,(5'58ylVJcbj,Ⱈ7j=讒ԀTMΓ!!P xTo@$NbCzڪQ@*B,j"X"'4V;u-Uea-Û !ea`_``afvMزK>~eXS@)YU[̶(y.A]։ކW,+̍fS%fhL1z
i3Bf̦tGDX+%%I-erNaEe-{
Nga6D#'f3faimƨ{fJ9K㷨Ţ+G(4]Me'618l/,_pMv]g*V{v3y'vVt21ajm'#iFdZ6+IWό'?	y6ؼ4`h)0T(N}OEA s@w\JiD4[8;>:8@ǁdQ|N``bӇųO*HagND:xؾ)@>aZsj,ZnOAZY871$c
w[)s?V(M9nOC$2:=h4{G4<z-F
#L|O:t+Ƭ
mxj7-Oe6lsk^~'3۝ee_q_]xT͎P	-MPntct`3M0ƿr*b[4c]t	f|`0P-ɬ\|s=`7$*
218or be^ooG:RZO_6YH'XX:xb&kjLp7FʷTwuQ39"^%JϴQM@T>)ϞCZS٦0br5LZ˳P%]s\:鬬J8UUtJR@7%gLt͒4kXA[0q;uHZeg~`+H4  +U8m|
Ni+&T`2s3F$: D5<#1
ɒn$\0#nLKCU`xa9+  $'q;2+o]YhڲQC`b"ap]Q!YC zg|kzdìwj]D~M ÿMOtkk$ߏD)OjgܲYx2"߳.{g:AsV笯v&ZQ~XwaxUkA6IIHRZ1YTRj4$]Yz(śœ[ O tvߦِi7｝-0Pf;3 +rAI @ L@XbxIr$	a	/nPT^Ep!\nSd}
<S(K%cHўzG(LT-φ/$5b`Xj+9Ь8/wzȅ#}KVp|O'0>4yKG4l
<pn8H>ƿoq e<Bn _(o:xgm}P7\"$7WX
`=--|я.;@z|%,J`;#i"5JjSL𖪕Uld^^y'&8
WWK|*D-]t'sW?xKc0O{%`tlie<TnߵߕSM2p4VE!NKl%SniTOD.Ԉbh[5g*rU[2\Ke!\^7X3e̔Va{{/#C!QG|0j76=m6b!W,VlbKs{W<x{uBs3kYfJjdGfe(+y+kduu(+5,{	Rd2KK
JKsS㑄2S @x t$Th'd6 $c܊$hj`ڣPh>[&Cyإ0šU`ˡϬhHpõ(&/tVz@R2jY$ĥem%sq 
U-eւ:y?xpP%<Ёx#91z݅t0Tᵁ_oP<_# KnfB5: Olz
CS6wVcE6,(5'58ylJ

Z M
x~QsC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'?cRˢ49)#?gy&=A..}-Z-} 8
x[hxC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'?`RIyr"SG~DLb\\Z@
Z 9f xj|jBIE}--.-4̲T̜ج&	c遵$%J2Raʪr2sS 
j3srRԔ"?
{O>/>F}>Fɺ@8Mh(ffMk..T߸椖 ]_w_f^qIb^r*Ο!"s(LP{
جo0]
	$4͞+ P
fx{MsC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'?`RIyr"SG~DL\\Z@
Z 9Hx{\iCgrbnjQb|fr&y(Oțϴ51o
G<D71/1=(޹(5$"7ن]3D"Xsqkiq)h)8$e) 5gdHq615Hwst8llqj.aή.N>.8\]}B'3
KMP19x<ע"MbTOi)`w# M
ey%z@#+vHAå
ښVK)y40#."5HNCC@5>ɹ<ܤX{y+G%<4<
s-k$1/9U$_!)U!yzfhI0?O!/D8jqryi9lВT+XyJfqbRNj
B_qjriQfI0Mn?5΀`6*;]D^49F0\Z} (Paq 0r7	)3j!9N{&
Аx IᅺAxۦ`CdA>a̲T̜ɎVps+gd&g((+c*RRp(H,J̅)dBMn*g($* y9)x'xObh4y=*?5` &ۊ((8'%ƇeC҂٧iťvHRQfjKjNjIBH9Uy%yɩ c:zܩ0 OR-%P-\7;N$ 
N|d^5xTMo@'!uBB
*7Ш=pRDzLWu@7g~x;REN7ｙ[Mml v&%%w1(q& N"H%&^^O αҏQ:g"ȵ.m[d[mX[=C?G}lT*ҮaI^[1:}8iу裘
<L
͋i4?
Yc}+#O8OBHTV|bvt]G5;c~.2;m^TFÀ3kbNWŗ/"f_$fZ{2cMYqwkazBC|g"Bj렴d?33Km*2su}yk2m~#witA()±+G}t"ui+MW&UTA|^E-*l1p~7+@qZk~WN#x[GyC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'?`RIyr"SG~DLzXTyjh(:9'xAsCdLĢ\ҢB̼Ēbhij^r*P$#V!917(QA!X!?os=LFFURjJ&-+13/Bjsf {k3=x۠VsCB|fm_
 SPDxp?`cpI;2B< G(bxYoUOemg:m)va]>ڮ 񣵔M?Buvnw2EBoE#&&F}01ƈ4z?f33;[Zrfs~sνn*ƶfC'Rs)g|hbfde3AHVѐp!έY2eCZ9Ie)yIuh3Y(k_CL RQ40..AMLOtF	$hF`wz!f^&|a( 6)帆-fW:IÀK2yb	0 J61<4Z?_D/ycK"	=D4Wo
 kbi727NhZ'`ąajCnO-㪩\A}u҄ U`^ tRAdhPoH$Kq'>Z6F2S́y` v$18<L3~JR%jFCV#TV: \:Y2l=WjjP̝Cp%TF \B˙Ղ/21{-) z'J-,Z.)ӆ*,Ja(H!lRԽ.ʒR')ڈ9:TI+4u[^Pbhw#3o1M$˙
.d	ZQ}g7EqI&FV~}OCr|7.P]8 xsU4	(-8؂L8; u@{ɖ?07W@?;+U*g8ZhΠ+ DmB#'uV\tR/qXg#ESh9L=:Rqof/ʑ%fdI-WkIIhP3ZM'p@Ct9ڋ>K\T+ڦ'@=sdm75!6،*_uqZk6[+g*Of+&ZV. ʨ#Xs7"RKUIGH AgOm`,Ohk0eIYpXR@QS~ְWhE:|QzWJ׸F<5S#Up̻ZVf&Wo&5~cNAo	{syu4hNP=.2G
NMW۔G=Bǚdm	wzP(]٪%)uΔk0uٳwäye%(AHhMfz<ܽ:R;эnq3SS)}[,4{	/=.ۡ}ywNȖ.)Xf{:ɻ|L&RevS[ʝ66j:4(CQ_ikܻ )"8WxHtXT5,I;yLt's&2di[`Ι/I-LG>l 5MɦdI6|%Ψpz&wzY*}-^luu|jMkj^Mv=EU,~yU:#׶ew>p=lя;\g?]I)'	8sυWv~ʆ3lA^H5CvĠ6%ϨG3'HEirf'xp!`C|7H1N~+6y8sQi29Pɺe3 _j`xs3kYfJjdGfe(+y+kduu(+5,{	Rd2KK
JKsS㑄2S @x $Tl'd6 $s܊$hj`ZPh^k&Cyإ0͟šU`ˡװgO\xb"NgE0K!,	3ũ
-<Er)AYM\ZPf._pi@Y0'p@YRPn-`xH 
eYh7e'](K_Suib0~('Q 9E8)$jv~X%\&b4F61(5'58{/H*$&dB-3b颦gDmvO-q+(O!?9Lŭls%X͟|@BK$Ҙ1TMKI-LNuIM/ҢԼBQ~IbIf~T2y\brY`nT30Ȅqd]9}ҊxsEyt/m~(wUlu!Xb6d(OVYfBP?ʊF(:\%ICU,]ʝ݅E?4$ 4$T+8*h _Q*x- s theMA*GAV@H&U,?<x4,'\rRr3Ҁ #$_!9hA "~y)ɉ%
%E0#2RAfN>h6sK
<{|!8(N>%yS9 ~5rx][oF~/X,UiVWRRIE{.3CIICVb-r|2gΌZG%rywD~#ο=NOKy
Ou2mckxr*`*#̥,~7⣌b/y[WMT,D6X<_
+ᆋ9t%sGBMN;Pa,_P8	t=<I<;{xxh;4vݝ<׽^*}|"^A;"sIx8KT,yp"}O8IX4Ss0|Pΰ7<F~?įs;]E ި׿OD7sTHFp0L)C$73xtԂԹ.Q 3K- 8$[xУ9twQ.E,d`$Lޔ73/ zI[@DF3@R[bNS_"2xRWq"]`dվI[ȩynH\Z[ 3'%<B@n' :Eq)]OT Scf7h䜄s.܎C'/<̟=Dy^PeNLvFWmո۹tm秫	1E-~t)0_q2.<GǊ 㬘z6e
oIq(/|iR +,aRf!g$NrݥH?Nd0f0<	<")Jc:?qOK&> nN,
*F՛G0ܹJ+r`/958v;Cu/(LDwvuzSeT&r˞۩8IK̌Q=$O	LX954F1ޮUE&,T$"KR6#\Ye+]-,܆#>-0c)q 6, 	E­,V$7Ddj ﰅHc&ܖHn&"ɦXKF{	j"xdiCݲnpN\Uөb(M/V#ՅRQE5Y"ۣRb."	e??
}Z0?pJquOz;׽qgӇ@\qr05nEEvaH*¨A/1Q^.<[0|4{d?mUܜ611oGϧJQ)=g*51/J+4,Vԗoj_3fF=@l;DS=</L2-Q(FQiQK*ڻ<Tu}b{ƚ`OK5!azpsx.r2ErL`Y.a^DSXiN7V:4u$}K%Eqa"CGqT3? ^~Uxj4.46w-OE
A	feu)}X6@^qPr\NR'7A$8-MboOI=zI["Y^社Vn϶f6ba^?Y}*H:b+=`iv"*(롂EnlPwKɻ
C.B}"..tsx5wQz|5TZ'%&`;V̲nDlv{+Ӡ0 oLlc1K߫>*wZ7œ@0T%hVS.H݊
,;hP
eXQِU4asxy]^4Yx*Вl6/REUHI{/Ng,U2] . r氭rʰA6ŚDxo(mMzzylẘ߂\%\Fҁ7":$TZXUe<aq ͼąfR~$h#U!,*U [[4D/nq#Fu6}@ʔ++ϩ$0 dem}+ifore@,v,GD+ZFQ)tjYja>yl\Ð:S .@}zN/ØS-z3%w2eԔAdU8vd°Oc@LuFy]Sh4h 6$Jnru K\bUh^"0ڑU^F!eėfٲqJY=8Xr	A'O!;=UɫYWÓ[EdhP#0E ,/#Vo``,o01T钠 ~.$$bd
Ŀ 6X>tDfp:𶐋Ny,!I9IbТJ\".ؙ7(踃m`Xgѭwz#+F:\m=^YX F#SG[1VΖ4LkUZQ`$5$e$݂\/٧QHH=MZJYj='@Qy@ƻ@g&Yg3|E3-^v9"_̐W-Z*n/.Zzmk|jL؋^_x^-ׇxTc^˺ֈk|Rа8ɑ  ŨP=l5ZãuU8^뒛sӬp]_뒣lK@7<Q'ἁ)KMzktsB6U("VCS0?Sq1eF=ؠuAlEH]ѮW 54ͬ{9ltP
7>.Ί0å+Ͻ?-ʎM\siD=V8AxWߟV8QnNٞdb.7>γ=Odki\Ox>@@jG)چxcLeTLa@p@p#iSFHD7QTތzBD_Sw{Fq4\٢`hKN6JhAWEhMӋ
svR'?#.m~^^
KQlSn'7L,u.pURxRwxfB|iBN/\Y~L	,fnz
/5'E2Ge1LF$Ks(աļJNGͳh6USRݯT J ? e tY>\\c2BFr8z}SWxVȬtÆ;	uT*$VUZ@;`Rǣ~|Ӈ;x-݁
#7DR[4[z:#s)Sj؀qP0\5f^!#px|ư2Crv}8YJL 'u
r:YMIW@^@ā檌sm4]҂Bw_cmXemzYi;J#
ܸ\leAf7 .~) /#k<
ބ]O)Qm)fR_9{Fyܛxզdj=H8o\b^..K"$M"[u8EjS6h8}6TPUn
])ti_FY1㔸!d%Բp!ӆ39&<(6`3I2í;ܣcZ8Q>:k]dY1"a+4D^~9&u-wl6l xvJw",(K\̠`+Y`_o .?$=Pwx[Ml`<c`p&fX{Yc`5=5ٮn7H+%(i9m)+%*5QH!Qm.q-Wݞ?xꩪzg	<}MZa9^9IDRN(֠ Z71FJ(2`%0#Ye?
5tS2VȤАNҚnسRD(RXDGI{'&|y|B(tILN[C!sTVձJD><aFBSؐ5i	D5a-h *(`T)%L6Kgv<sbϷ֣=*s\8Dl!?;|	Vg#!.qB%]ylk.V { 0@.Fβnkl`}kŢ#:1L]N_^
!n?QS	S1}ʹSFQR2$.;&0}t"yko[ju"PB{ 5XMoufxFdYzFNsN @=zp;P/6nCfhN5ߢq[]bSJ4W +(439T:w8at?)C&Y+#e=Yr0s;aGk"͐0Q⛝x817vbػGf7BrpUsk66L㘬Ɗ؊\oD=v^*y\A:ns~FM,ř;qoT 4M$9!Ï)-NQr̻FY,"sw쭟J辘yC\L{LSE=k
]d'9&*Ula2n%-V`<dBg)R=~qWn,''}yz|QMv#RF+TbkiEdt#Y?ԝ.E<pׄ6;N͜	p?}@CwJcM}V?Æ??ĞݬE2iqFi>ٻ$|\'T;b]O7hak!1P(?j\}C}|굓^KddD
	uK	.pj7v̽.g٤
{byZ.)դ'	o'W/}rI2}HzC1?і{g *sa;7{-S5,^܆)ri:8M{n!NMt32k2#hě-[cǯ?o8zғcf=P<> L5#в
1ȾzWKQԈ>ISi	)nбC.
ƾ!揳˿&5C߼:,6:;	"T 6`jW`C$;ĕ/qhAoasF+'Yӊ|Xv+'D,c{d)7FAb\x
(OC^nʺs6[q0Z	6pA'Xp
d/#	RXC[@Pyd)?xNaz  כc?ߐｯ){m'գ<=:ޛOag=*~SobHȱ^t-ăzӯ[ZZKa^"겑t]En_iqOB8C_s:4֊Ay5W"eTWå@QR׭xx8RBV3vRՕw<Kg^Q4Ӱ޴=hd)@Bl3Hc\uHVr%0[4hxH<jJsߖ޸ix"\kY|>3x☺7L#.%"ԆHTP+bK( i	ƹZ*%ծ-W7r_*b?Ba__l	|}i/I':PHSۊ7р;X^#kLw[P{+&A:o.QO߭M@fK]Fjrڟ<V#Q} V(y"m""rv'q-TXYl勣d!îlƭM^|$`WjNITi>mvO?Y2b%#A6@p;-X<Ԙ-mFIl=3?!"x[}i2K&9hlR\.89ZGiFYawAO7n4|nd}i'Oug+WQ7gnp5OovɫL&7l9:	 BaAx[}q5i2coLu$m0IQiu_ .M:sxSjPe\qDU$"PT$&eP	o27GӼ8W.\'?d	{9~|9Í;)K##_)KZrE'[khƱ ΀O8)X8+4V@yUd(PQPVy
cUcu~Ŕ(>G[C@>
{{MOᴿ>gI1+0#fOKHz	 "|Ӵ9veL<ƂhsOڢYX4G l~w|bu?4o7!^/#!r-n){z)ݹ4^Y:/gƩ)"Ͽi9^hg` ߸ֳ6rdDSO cڒgoxϯAR#4fXJ۴Ĺ~Ct4L+A۳>%FGfáo*4YHLx& !m%38 O^b_-g4Knxkx<&- 7	xkƸvssU'o6Pټן{r\K&3iqMftlŕW\5Y0ÌKK (1WyrcS2<&;y/PIq&P䋙u
 0;KC
&dM͒JM* Ǡ1u%hxeQ=oPI[4TṖ A$]+$UP*~&J$nX8;B 1Jf`2X`Bg'%R=s9[g)'vԲFkue62QN<t(sڤc-oBO%axCba',_\IMգryuf33[?Qo+m꛶qџGI_C>3g#ztU9@M8V"(Yr+>lj0\4ݝèMl,B\6dX
F&yEHOznpz6?;F.
PjQ
SxWqzp/-|-2l[V1#u,#zެQ09ns)NBGZF\1>6b,u/W%:xeQ=oPI[6TṖ ˩t D1iեrgN[Ύ#df(+&$NJ{sޫwϫ	 ȫ%06s-aQN<})sڤm	Jd>gϰX#Y8ΕW+|&jхOҼ8;3{Dx]j	"]mu3Gi\!=4k%=х"~VVH6^XxdVO53Wwj0l]q/MUxZa&6gV@aa.{oz5by28YD٤F̠:.UFI<B
W3^*9=vD6"cD;xZ=qfg
rgS-!WLۘ"K<(7~MKӀ	xq:G&۳N EWrxtqy1'ont`d?ydY0F30_n gx[B2d6(L g#xB2șLΑ?^v1 v-	xVn6+%knS(FH"ŞYl$Q8FǻvjND3o{3?BYoXN;8}l&x'8o:ZLRTsftwFpS=VGb+[(*mb2Q =Z˲.(FX_rmgtނ7Ӕd4\Wl6=~i(ƋO;t]4V(*xV(V`
Z!Ҁ(EA#3a
MT4ZUqTbU-G#s<]/s02.`6pOe4O/pœ 1F}LS6)@C^/边nj"J-[#*U)jC SLۥ'/hz?fiZɶY31kY)\)y'R/LT'QU;ƂRm6Zm8am4!ɽ[-(1s PZ)a^PjFseRQw廴	򂴷vv(ůuYbjKTdzo\k#4pqnIדiru6[Βn7:wvhIL^њ|O^_d$S$F[wݭhU׬ߣę?Ix]F7*ٓNp_wS&ZZ&^!p̶=	q![ W=5#si;fz[L(cPإ1eݛfDrW/U8whz]շݜ
0. . ?p1D4-4pmٱn~̃(	.I?]_N㥍`"
v44WTtս7NdT$?4!/w<7t4̑C]'~j:ٌ.-a,@0][	xE	_rvNx[UOmv<X^QoGα@F@n:W][rܓZYpnYF/-0~꡶<3xAKBA11[(c2AD(Qtٷ|WH~EDߠ{Yd>Xxg?v1u|"#5ulZgu**H="Ph&чH!U&,`.JP2sŁH"@z^$$SM`RÞj)	XTpaʞ\@i9
0)씋6p@;E㳭-fCklWl޿MvPXf~/g,09ܷd:4:y[wņ1NL؜<tfBd4̯]jh)ҙEg	}ytt3r|nZ"[pT2+!?9uF6#7)Bg>x/" \"X'3mn X}"xk̷'917(1>%,3y+
:9ykc<rqt"M؍aAzԒbTԼ"ԼĒ<Ē̤ҒT4Lf}z\
Z@PXT퐓qXuByFfrBiqBIBzj	t[zH!;&gW|}R@Vz85Wx7Gxנ Z4cS@nSHK,IQH-*/83(lh4C2 7#ܣS-:
y%F%ZȎ״|EtIeyXq:VAK @]xk:ȷ'917(1>%,3y+
:9YwZ!gG_ x<YE,%
%
ũyE
Ey%%y
%%EI%
i@D
;H (1&2!'3/[VZT| Bv !wMϮ8(p(ZpkЯn!>AAA
i0ܦXZT_qIqfPhrd oGGŧZPuJ3JKi= t@> ݆{x7Kb?6U}--.-4ԒbTԲT/XJU3K\b~@!Tl*Y؝}]'eh:y2&g$$3PMմ暼ERbCB`'T;de+85%{(U(LP4M!(3$K&wu:HUZ_l $Ѐ1x;7Kb\fԢD̒3CU2SSKRsKRRR2S'_c)U/.qJ2Re-cwvuru.F6M;7CD\"--T4&fB XU9yP{(U(LP4M!(3$K&`H\j?@/"*iRxK 1UDPOm9ERR5=T,#^B^@FqP Uit|xZkoJ_1JQnsvwUj''";3;6n+)0<{2{vP/6,8z.?^~Bױq1,蜣:b {(<LH~O-|Dł釯bhlPr31?\qD䆫'N k$O"ŸO19w`/Dp/Dbߺzq.~uFO7-/ p41cĄr"u QHP`yXkb)Ǽ`xu~X	Щf!:E5˰ȝa_6&ʹB	̾a#fޣ##BK{a"KՂe,1Z/0]&<@@OdE-E/A=9IK~s<KӕgjosJiB<̐66!~{&\\./pq!/^(NH
@<j
S$ N!8Pdw.O}2݀i6u"dmǫ՜o:d=t"0=ҿ#0md8덆Ñ9>yIa+Fg#<t/ȏ{p1:흢?O#ԌHJsp7!~qi'YXT/		0!.l$HS##JʟnGtHY 2$nK*dtkXfSc%:NExF/]6nݏ1ށ}Rn}Hi@ɬ_f
yFqTHD鸯ىC>עf[4	^p∆{)xG=j i9A$4l'2 3fSݙ`5Tk)t%u7M=ѓCÉ'(ޑy==j6n+bX2Mu
-zCf(?&}?gd(-X[#em0ȫ_nI»ϒy3@fuNѴkI 㷂7LhA[h
%{z!>V*v-@
:÷k֠IykCY%GɞC79f"S$VcNN,ekjz
&}+zDsuoS.&!:XܚNOmD5La9>&ص-Tb9j5vp=ZV\JE|q| aP!9r%L;Fj 	jE77id0Eg8lAPfjeMM]|A09Ԇ:4T&@fv~$5)CDUADEHa˺Đk{ZkluYR3mH[plNr RU /(0&=bΨz]\BhEOU}X10WcxKu
TbQ73*raτRe?#LȐ$	UNc3XO,;XkGr31Hr<D]>WȜayl^&};IҜ+;	.o9mRǗ^O'63x65tvO!2Oë58L}^ӗS)^}dK.tr샥h%i]7$!zgZ+mm>jKTǴ9VMFr/sG~^]dlX+c$9r}gIjR.2#}!ve]%)<\J-iGcsHA#~_4uuu6a~(8VW\AV$ff+?a:J7}?GT%ܮλUW4RQa0wt|hV=wWmq4	F$s7)$}hPnJ٭xЈZ6.=T(EބrEMs
uE}X3FQaK.E=+1~.OH%g<iZADj9{m0Q8&^u N[dDyrpxt T"ٝI
И꣘i\>&87:>||ڲM4 LsV朗?9=[]vM4p,>{_LE<hy>%(}*}mrSSzإ{MzY*?['JPauKIF>K;u7q丧Py;G®V-VkxR}ht*xC\YtDwoMqJ_[Df_R_-[f'n*nGQH9?;]Fa#P~~8$h=m+9TRT	,KG_s}Fua`u!MѷW9x8b)3Sq\A'sHL1y??l jxq.bjɌʓ2e0O/Nœuٓ&O`Ϙ86ȔH̩TH-I뚠.W \(>x8b)3Sq*JOi  R^x4b=*2Oi  @x;q,b3K^qd_]̻4 _!x;q!bC> ?V>x;q>b&6.-'j5N\x;/|SCϼ̒ĒDb`Ĵ"T3Լ̼D7oԘ Ox~-|Sj,yiD_ lpx;|
Ʌʛ1h Hz(kx.xf(xVoEVl)6mh1I8v8I+ cj5#P
9kekfv]\Tz瀐qk\"TN!W !Qr_ u.ٙޛޛ,֗߭1#zETu$\Ri)M-=
|Wˌ.@ƿO|E1H*hTRzbH/ 7K0kMM(4C̪jb'e|<&7
|#R+1I-饘ϙ<֙t}L,Ix4o^b~}:z|3I/C}jҡX{³ 3b(ƤpP*J|6}1FTSwSH7L?!̴Q/n|+Q|[tFXE#Ub6\AwKD77[ Ze1r EU,*F&qlqB׮LےئA7E\EE[4n6R;SP!]F:^w^WE|\GtA:9#}h֋ov(ԀNTz0pEQ@(U"}}G䦧E"=(<t!wl\fzpRS,	]<Fjجc%лprwenCgY	+ЌN.V]+4kjo6Wd'ʐ"﫞8;SE]t35pkm宥N*]y6'Q=O'^M)s,5	eۤ)
%<^.qlt6y4km.b.E<,liZAU~I)$eX>M$ D$ۢļ/K!<*5jm3,Zz<l99}Ǝ"|Z{\h ܻ[qrw]Fj#	ڻixk]H_KAK9(3=DA#yP8Sc_kcg_kt*RNIMKU ]'WIeA*PBj^iB5BB^bAf|a~q|RbrvzQ~i^H!YZYR	1DXS1BSZYX
2X!]bť옚Ew\AL-}  <lm>xT[oEV.RM_Է\
cqjzxb{ٵ05!r	@(HysJ{ @Lv\\}s;goq85z]5Qhaiq Zo;lt5T۸Pлq5.C8䁙	_EYMl&&f"ӢsF6]
^'V([AT]CMTe
*Y[H FHa#|JE1'*LF,"z:Vz[YX9}^Y\ nAL7thA:|]NqŗsGRƚzjOd6=U)'f\p删Ң=@ݱZ
-jREfN)IEToA61<y)o?Ax"]|MkS_?srj13{.;wrrJʦYv`2&D0>w8\B.y>~,+j5lܰhf$<	pG4-> ao?^;=H˪sddS~m~o!.x`*nƺUKLLrp>}ڵD$#Cw6}Y.uR!;.,j%3i(-o}VCowh#4eO\x;4)U=>^\X3hIv^M[WRHUDC<9q/)TǨ#N"/,KUwprJ%)SɊ9\[G5Hj\A?[~ .ZNɂN߶
DGȍƎ\GΡ3p៱-!aUMfJ28F%𿸏ufǆրBr(vxkg+.>~eT6'41NV E)<xKN0@] 1(j){$6]kOg&VB9`	7vh`e%Gyyo,(aز!z{3?B+A|*HĠIaPeX#ǪC+UFXM>ֽsyp$kaD3S9OLucrU~eu򨣯m{0f	yA9/@}W3Q1!|]&!^62}n	zPۢ%GO¯zD>x[u/	bĒR%;9J'xiٰ^xa &s0{(dU	 Gb*œ$M
&JΛ#æϥ0QDfr2d)iiALdu&ϗ !Umx}SoPV[6NnģIBqUi BZvA@v V	Eݐ/008V~^}}y᥏S±`F,cYcHZBmG2X4j(l&Ȓ(cYg[`<[,,xSv #&uB٥b:\lQ$KQ]XhCm*#/{޹7D<Ǯ`
\*i"D)-4J&eT5H\Itgyq{L=@?=I;KzUsk)g.sNg 9qȪGjYUBəfO(F8ř0&*8yum4hH_h$W$VT!AQjI2E>E&F[*,^2;Q`/|~O,U4l\%3W~I1ٙcVL2%-؋SU<ZY7uQdA$ʂB4{`'	ء°FC%-o.kUAjJ0a$	XÛiA9UdЌּe܌X8ezZ;Yt,TukZ*Ӈ/'SzxU]o6}p^̓]u"$IN'Al%.ie{[&yuιKhx1}	Wp٤;d0-ː\1״%[='#EpL1/hJF!a0+!Z㐉.Yʉ~PXSzURM|6Z׿ǻI`GlMڟzAH/-yJďjiMtERtBBHgZ;4(Q]*LiV"f%(j)O72;7 !L̏E@f#@C-$hb	h%3V\&]#%'FY1eH`n`JV1jEZhjn}:Db%p#Ŗ#Y6+R1Sggv=TڙM3B[Mm1eƉH&ps!UKXL\=!8;J*KkJc5RZ3oJ*YSѦ;OXA+ pcKf<0Vb^Y)3_	erdu(p:O9+bvL8oAhd!o*ērJL$tc>67
X;jʺhr9H+&kS/ .1 `_LLh\@=E20?YW3W6ֶmyyㅮ~Z8f=|>ƷirH庩(ܺ,WdіPu7ƨwB~ SfQso:ŎK2
wAOHP2g}	ndf2Tu-n/ʧ2(E{=?Ё"zAYK~~?4;pN0*ǩ$boyz۰]Z7vm.MT}6Sa^[滣s>a<^$.I?lxki٠üY& *xkiٰQorKLQSK6ObgR+I-JKLN&ٙ# >xk'AJ8"KFj6 P x'.'C> 9F<x'.CL D Zx'[x&Fɉʛ/3i H'xx'gC"fa9'`x.Դ̼T?0x xڂʙy9)
6EiIũo1kiq)h)8$e){d&zVWN6df"Z_\RT\DJ4)'3(le4]K0kh** XSbVRYTRPW5W5ngw0D.'huq%57?4'Qr-D8E '4a$0 ʑ4 x-oC"Fl.EY&[jLfqpi~6Oج';O3y-m@:ar0WН C#sx{+!G_KKAK!1%$?(@(,T$4̔b b4:=|vf	3ـY)fbZfNB^bIfYj|JQn|jQ^y.iy@J2RAEs2*4*IA uONe%ٛ,#`fdw \
J;x[ƳkojJfwjepeqIjBqIQir)8g%*Nfј\ܠWZ\G\ʂԔ4x40D`z&'H	#C쳞|It2#* !@Cvxεy9aB
)ީ%2&dO~ exZOE:S) gU,]VhtF#0qYdI%]Kw_hԪ_@:"XK>+xy	WW:VC-p@7ilC@;L3h|`2%X| 
!c>,P}"Ws'Sep'KPM?s[jմM!g-/nNo8}F'C )Y+dا\qրPjeIFb*ɧa+@,j	Ҟ	h^x	ƭ1_=}cm CPHZ	M{pXW&m\?X2 `rCj:$,J"EV]#r%fRDtB7}IP~;N%wXwFH~qڷw\ї>Wkȉ^/˄i2
5|nsueܜgv}J>[Oښfj"ybExo$Y33i)Z*MRlW'l|8ȍXB*zpbZx8k ־
Q@tU)L<Df(b8סm0YƔ{\S\k':"&.2hbvsؾ5>Ak~9M&HX+GcX^.)TUssm*Wj"T`2)ZuD1M;_
j|w%^Ly0W+N0 _͙8~6Cc?q:`Ћl?]t3*J"azaXnKZӿ-dٓ#ؽ,5i^=S[J@/_Czt685 B:`*C-L.ƒP+-a΢E|rbLh^tdeglsJ>ΙءłvQ&c~h]RҢ8A.
$̐;S6.ǇMiʍ<o}:ǎF.~
]=%dʾ*jHc&6
8Ϊ{9[9nafQu&6~0ray1v:dUbD,/]F%maI~%|˛`<4vEak.nN2k@B-W/ ܀])W$v'R"QGT~tt^__ԏqyu^߃Jɛy:\X:tEJ8/ȅ<wK&qW>Ye0oNQ[x^$ܦa?ܧLG{iy9?}n}`Id.&tE$q0ϟ<1(J)cyN>մ8[REVPPNIv؟NTR2CxFFyd^@h80[2Kr&$&jnuR8αb+!6b[n*-2̜KdN(Ԋӣn3KN(8yV`#v+(1<l(zX٥z
	d֙{iAJ3Mm*Jd(Փժ/Zo"sEGnڹ LJ?㜛ZޫHYvTs#чN
=tu1WV <Pe^
;;aH8i9~'pl	XvWk_Hk5QnF	KթgjPjj\"VJ/D=dqb}q/_#xK?Z0o_Q;3PC:Xwccwz$[kp	fp. ~Sʧ>9;p?TG#慦#Ұ}v]}{=MN_<HSR͝[`&M%O7ǌpb+o^Bux{	#x?ΌL\՛X \{o3x?!~=+Wf'V- ,MMxa=@	򘘸7;2gNˣ6y빳A\@j^FmT7KX8/U!'5oLͦ2+')o~"	 K~fd;_TArUyũ
)
ީ
E@'7ȋJ%}R07ߓc\2(f3AkĄ6R[Km&|vFSt&KLV-=9LW7//Q!)U485eB.7bd9z }}Wx. Tjlx*nzɁʛ/2b%zk9+S~<j';ĕ6a|Ly5؋RrR&NTl*q"'@I0giNEJ$*-W(QWZPZ\4prX'5S~=n;&KOޯ(b6o?FLh,9ջfP`wi`9Egrd~qғtxRJJSS&/RANz,FVӭ'+Ngq  Wml^xkA1vkMlIfҦDZ-ВAfw]ٍ7/<AAPI'6mC|?޽rx$KY4|uLq2%@EZCli9Pj\Mq^M*vqs+:nl:0t&Q`+-ghֻ/ĘK(cL&^镪`$	qj(Zlʭ\cW2>P
,(P|˪d'$)d1әzO'>@n$I`ѓ
2V0RD2بRL~q^xDUU`m'P<jzCUVP3vF8{&ooѡ/y/7/4|=UKd(l7	}Gh+#8e<(+q1`Ke%VLwLuC4:wI_akydvͯ8CZmsL>=~-i;.p;@mjs{awh3٧g y&n6 /l64f\84cQ8M͘0Ȁq8uEرf_GZ]9gwh*b[r@h$!SB!"*`ֻeHltq4V$i쇥Tv<kx߰ir L[&'N#,dn(|F7//Q!)U485eB1'u73
F{pki)8*h :
xk߰k4#<';)3|#<@fkNۄD7ߔȒ9N@j)UBbBlrΛ(3A9kT@lS	5љ%:YssHHdr ݻ 'ski)8*h W9m3xXMl娅i	vlI|R$ZdhR:CJ,V)x*cO\K!GWEѢ9S[n:ܥE~{oޯk~`2_O
7lw4FDnumfXbel	SJ,41d⌁ftlįFFѼaA^$%x4RY۶vT6vRa8҄'{aL`51}8jGO<;>4<7?PVaԑv8C_3w	`C:TtWb~
VobAq&Ѩuu|/矝m/*b
M`:f#1wAtcOPA+ʡ*fO).Z/I ?sGVCzlS²m8T03(r]J,GOLh2Ա%.F̗U&mR
EmQ耆\@/T$zC􅑪D+.%evC\r!5+R"2]21Bh.:C:GS_<CwD
f't@ƣ1ٳ5%Ϝ<ٽWxd\GcJ"*i&$mmoB- K6fmB5HQUDpnYF&uupΉ
EEF6IKRR	n#x=kJDN;+ژ ǉb2DO|ÎSˀ#Ŀ'{܁`ư|1g%0ۅ1Eۀ"	_rRV&ڶjJ0./W\8oL~y^O$l6ٶ,u>}l[Jb2W66mV[]_[} ?x/\PDUŭWjUwX]ڨm-\y.R/GZN+(̦-$:}ik.}b辰fZ'ԏ=v`?Vz]º#EZ4;b6)Qhe#Fn8$DY.mڼ"{7\EFt,('nѱ>&ຆxShԝF⒝߅;>W!eom>xZ".@pz!
h<"#a*l?YL~Hv60~x.pWÕ<u?!)TBoÂߛڀ>C)շ2է"𕝗>IJ)p8u޸'.Z*9cM^Y՚dr)ǛܑIK|4~V彻ňLZS3zt1^qoZZFfm;U7}3A|y>:API3]T[!qF$uRGΌE8 to7K'C?q$
-z,{Y01ؖmDhHڼֻI{%L	]U; MeVj	*[*=3v;(8%ٓxk2[>*}*>yAaHѤXߙe,'(R~H#?ʻ$J,hq"ZS[eޕjV"Ec,Cnk9R\g_wCUԡl{?OzVu	\0^{z25<}ӗ3~5};f^o|Ja]:V	o>I> 32VJd%	N1\$VG]ՓJ[|IWr>0,h[a;Bl1x;V~C/k * oHx;V~z7_dZɸXL9Eۙ乒\9
%Ey2n6e|F#m_^Yp"l %gxVMlEC;Hi(дCBq`7&$Q$. z=NVYﺳ@T8\\ +pϕQ	13;cw-_y{[[whĶ[&661Q8h#o$PX5-AGS#v=涣:e;A݊Թ._Q8AH/;ޗoEv
Y21)n-2o1pbVè5Zæv16]J"b/PF$9a=ꆚ30&.pk%=|b@;QUȩnl|*%`,@~،La踀VYΨMV 4фmG92t&leLK:G$ hIȁ1M~qfj(M0HRL?/Ao3~ԕ*f"nYX15JfWgo~xut \nv-N{Q/6}`?v ?t{WcKqΛMb7<Z;W7lvMNX_!rP؜,z%Pˁ!'G9=93<;:<|}VO
I	jCE+KG,@B}W&	Kic6w
Igy%2	Fj26aȀt4?8~% >l`ͳy>[A>=%IЦTbs(1#* z@!Lk8[Df'%Vuz(9&&`4u2L05;XV/+-_ʬ_:g>-^(Ia5+릓ޢR`иNBHH
!c߶ZSh]Wnd{oUt;ͻZ]f:Thh/}ڊGo ZÔLoffcېJ
`<|uWuU|'xgCg&(0YaT
J<% :UL&yҋ~	kKp̽W/>oݖpxjh9ê/ͫVrI{7+ocsʣ2p[IB)MK&o-ixmHOKl\G.. h'Zeaxжe*]@e])zXU{inJx;T~C5c*{k 3x]~n{N}--Z-} D
5x]~&6.-g  STx]j_h^v^~yBjQQ~QNy6Se##@KAK((O%75((1">8287/7>E<#5O!7B!4W!75%3Q!;R$5hFbrFjP['+kL^IԎib^&^7Mo⺹ASisz,'7HN YJi#<T.baWjdP粙@[VI	oo҄2d	z+YlޖZ>gAxW5qg^IjQ^bBjQQ~B~rriQQjBfBfBQjr~nnj^JjBIBrFjrBIFBN~zN|L2@iVh4YJQ`rFLYFn=H)PnHFYX@{>f]UOp m@!gm135-nS/6Rl6 fXxWu'b뙴X':y+|>k-7׊3NQ:yTPh
ZL	)E.gKcHn[)(()ت,)BUSpzoh	M6Aq{wL[1Űm܀BmJP$6T#M	 F4W*xWMo[ECBRK&USAvCHlK&]$y̼W,@B,`MH`*eR3%hby5{;~x{a{MN&ޖuܬȯgfЋ@J]$ߟZ13ujbUkM.mdeU(!M^A}\B[Βv5tIFg?O.i"tr傑/z:T\Ĝǃ{1;љvRo$o&U&ڀP.51Ե`0u,R[
Bu<>>0/9ɔL_]'DbJ~3jğK۸	/§!j2&\8O(Rֈ><v6WaXݜJH](*41tsj5D~;$ZZPRq'X7Ѧ|>U0fX#"_Cp@:vkOazaMݦ0c=e}Ϩ
gKFEVG*1K-,`MMMl\>GG[nZ]̜)70mt~Rwֲy#ϵ]f;D}<2t'5'vힳ6`եl\)y_f7/XfH0JPikՈ!S;>x}S?ӭ@{Tp$ŒQJ{*m5Jc9e&:|N#!y:~95=jFs:#sJ)'yNQ'_r9)x="Xx[*Ut0U10D)¿z0]UFq`j0<b_Fx+g8Y#g<~e`8{0_WD[˅3Љo7$^?Es
x}JAEI.zuX2MBEI<ά[	1%i/^m>1]^s9$WULJ%ySEK[lșMKW6	)YF}sP<yU:qєbڮ~K[0R|tlxќ$(9dUvzmZaxOhA1MӚ?4m&MЂ`6QZ*8NdX֋RGߡA"xP/"	^:Ywcc~7߼ݏf8\n$Et`1ɔhݪL1Ց2*ȆFW'M08sp;ܳX&KnT:wf5$DVuI-e\^O7^],++BBDՊ?_w9T:Hx]_Eð	u5x;4^eӛ74ƏÎQb4w}=U'E{[-/{tNf)zd1\RT>m	O|$RJaƫ2Jd҆Sx;g2bd,rƕ2${{ۡa4g{a]72ֳ}wwC`A$a'8KX;0¨Dz0q#xbAI|D^KA.zmCfX<dYc#%lMS{4|6efYrƤZ!ecAjkq=KT!6$yXn&;i[%;oxCB+=d+;F;Nf#YBRQʘƞכ
[3菴S
nx=e5WX-'JxVO˦89SWl;KQnkQs~JGojJf"HmeqIjnsbNNRbrd1F5\
@PWb_3y9奘A+M^ ,ʢ 4{i
:'3qlv8< s6+x۞+e&f̒Ɏ|ʛ3e [cx<yVɼʛpL^"@yy =xoAǃV[%Pڂ
L*ZM!(ă۰fřYxӋ}ijA޼x`ŨMqpgƤy?y^;r}6u@0Nڹf4CY^8wgJ?4a[ILT
eć2x'K*mX(6Qv:Š)|qD>U\Y_cchɢB6Y<e>O~R7_,~dhU&4qxz|4Zn)tu1ULrz/}I7>^mSgfVTW.*D?G'ݞ"~},c)<4q8j0[@pģ.^O/5  hVw,]j1"]כ>gr-g鶵 6~8Q7AS#n8-!۩8&D>\*Cyx<9(Uz$on?sctЉRm;/qH㧙'];AUgxVMlEVbW&-2NeרV=x=:5r.\pA@ũ7ψ\zFG Z@u"Ǖ*h3}7~۟}:M*![u'vQ>уs]o:8>%OxMlPjo=.I<̓؜X@ԨMA@'vR',V9	ZC,
C!-1I$'I \!#\kk:p8)[mD@8a/_Abh㸔gGh]ZRoIte/XxA}zO*āP&SEDzKNuEmq	C|l}9`Ϻ''0_pR<Ns/̝ۻ;9a`@#vcQ&'l	oq|j]h5LZksP}tAs{t]<)ьltR=JW(/kZf\Z]}Z&GPa`oQ?!=}<H!1]$`=!=9t\qr5^f 	Zg*L)!b[	wSbI'ב}W[YR~;z>:kYw
ՆH~zEI,Sc'[ꕩ{PP5Zd4qckGjRսkw""Ezuq {tx](bl ^zB!}t"HϳDg¹1PٟVĳGVկsFZ_0fF~c>9u2ryg܃#//Nş.~t%-]>jvisPixqcQ
wowJi)]zP[W"jQ+r@WQFl|&RGB	T?.z+T%>Z_XUߏ_0NM`s3 6 Ĵ Cx{CLYs6fy:9Gszɵ&f̟3$y=O)#kf~8|\rN^%ĳ_F͇BT79]D6/Wlg	lvP187Pa8k>`&( E{'MW	}?F. Z@l.xopiM: &@xTOA-(R(ϊ6D/*l94|ZԄĤn߶ikI'`b#^zwf"	ᢵΛ|y?ӁCqjkq3ǼUNI ҉iH/bCEy 
`*Pmׅ6D 3d6,FZi34v^A8lFw#EJӢQY`4TQ7Uf VI&N=+|;[HމwaF,`k((&JZdCsI1jd@mRAFU
3bO`1Nu]Yn6VX;
^u)aۤ"!j15O: F70˩NQׁEܩ9D5P'ض3(Tbr"n/䔷EK$]5"9EukKnJm&hvQ3M\3(,1aK5Jl	1-65mB<8+=Ǵt!xoqowm[jc.\m⻡qL\a//]lkEkŪyڱ{2`*.:>ٿf۔֘] CGΐv|1TZ3Ҟhv}寺B^i~dZ_\m皢-Ǳ>mf:D柃wıcBss
5w ,h|R75R{\Tlu>uxS1o@bbAS*1U@AFLHOMsitG0XXـ_?̂V {}>-*3[:(»/sq93lXN,r]` \G=`aR'fZ+#Inq~
O(8iOiRۑ"	
B6E%h(Lg)<WS˦s&hWεzMNj|.]j#8%`UHx5fO:h@A!<Urt*elHp֯|/VR*tNmV=E =ArF_X=8C|uf7AVLN}+ϥ;+_HAУ,eቶ^$:iUٌoW_tlWFxj}a,VX&1.H,JUKISp-K+rR *R+J\Asl@"ouT*X:
y%%
Z t (bl_IG!9#HAldCVɫټ!奖{V;%f$&*gd$2
0؜Y&p/,J-.+N75%3QhX8/?ii9y`@u)
0A:D!3̴Lۀ(}TIKQ/-QHI,Iķ}ɼR<qy@:pBRxb
.79#$Xwr=d6P\R1J
Sb`4 ;a]9rRSRKSK:yLyJtrdqA~9mg%bKMB	JB|^HtS$BA ?&,+fCiOns.; -$dxCwlX&g)d&zVOn\zh2KQnkQs~JGNNYFt\|]RJB*RRa,. (+/QKי-e*qZSb2bOq
ZPخE#&s34INbb9TNb7W?22@}&%A2 |].^x&f̒7gRT fV!x?/zkj̼l xנxZ]b=.-CMPd!Pojn~QBjQQ~ЈCp1_=\1PsHFBAbQbnjIjU\YWP/%dP?o?p?Ef@BRYȡ<AAqr$fˌA476PQ<W@n""//.FqNiX/0O+̾Vf.p9
'hIU3{mv&^'ש ՇxK :"YmC+ML
*-3NNUxO<25kn ܾ#'KdgAEocxK :fcB6v`LT1eKĬiNNan`t^>ju "lфH6?P%\x3 :enOѭ螺[SˑN)0D=<\Cvox3 :[i Nk<jOG|Ճx 	x\Ms8WKf3sڹXQ	wl%IĢ(F" hY (ařUj&Fw#v:2+q{7y0ソ"hpv.Z_$'㬝!rON2!WGǿA]eΦ%R<Cd,1g!f"a?Όz1cys&rChG#ҟ;Z,0>[q֥`G7I̳)\(< Ť`Ił[LKL	-SHiȴ\Wtda Zv2ox޶:oFc{0hF^wy#ç}bywCcHIi
&rR^,s<!Zr{HR"#fЁ6_-PQubL&Z*̛nοc%xĮP`j4	A  7 Lx>72}c+3Z$BiHbXUP¸s&D>mKX)y)3ͧo,bgWyŔODp-s֑;U^ӉX=>t}g^\t;#+<	_}TP ?Ρժ|jl8DZ=%AզӅ*Zv
|&gPv81>|?L<s̾Daao'|gLSc{d><Ե'|Ī4<	8Rm?t4'Ψ]$&<cfٝcĔDC.챈8!Qnթ$*$)$>s	9=Ƀ8M//H>צlߪ4 `!GdZ(2`rLaLt	d-9Qw!6S&5 K8N2VrM'Ͼ5dYx(vB`\5&AW\/̲%RFFv0M@oYc9\cb,ncfIG&dCc鸰"	aA70ϴZ|Q	~E^TZXX0(r1y73? k@L u'k5
gW
$TmH:J\@6ܗK<j rZ"PAHgko:p9Kl0䄟;bҘ.cwi%eͥ;u{оއ멱H\3l+0TYjDwjMeyX2<5-mĕuSPxGns㌟4jUAEPɔ6֊.XƧ(l;~&7$"^hnQ#mC>5!#W>D5E[v"pVpxL^#s;JH|^:;'*OΝ^SV4+1cmuaNO:뗼YPͻv"}^w!2=ڣ7Q]N8@@Y1yץuQ	eө\(]N7DΊ/=ע|\;Ѻ^POnM:$3݃v%:2Ouu?%ڬD\x8Rb754{ny͔	fH^ `OYuZ`@:2cT](3g>;T3Fh1Ұ߅R!J<B`c5<S)po'_Oi(:T.П{h2>)`qWQ9YQ?0dN̛\EcT,A)BDɴ"fRiPce/MZPG7W6?=%k+> 匵d- 6"p{QEƤ\dWsDfT6UXCb<	´MbȎگ ;7B.Me3qalqނmr\rV<x1	5%isMO?~SO">v
ew(^,4Rm*Q#"-J&^͌E燓@MmU=+$Kܻh@>iB۠_WIaUR';v1w.B;:}9pwLoMQ.h܅}tPuޜҪt\}}0qQU?AL\V6.7
Rr6qg;x#ځqrYZfVs/G>8*}rLZbxE8[ל\2ׇq	.0R	\{!n#%6c72fǈ/x[ԣ,4)"..u^TZƻtwj9gMdmkͼz%62daҝ,&_=ܬ(b7~&oq,MOX\ΰu$A ]	p/3(C"|zj.]ߌ|܀z?F$Ёɻ({-dEJ `$]ޤ(8.'"W<N7N~u޻t(ch7
ڥueuUɿh{	ek"xHJ*iՁzdaP(`
VH\vs}^~nܓ:aVv\. =x/Vvʒ&<h%%"H	ቩmYmH|W=d6:$Ղ^pQ]Y/t9W<]V!H[ϖhFW39%0%Y_5f08p;8Ȕ`<g% <x1\CmkDЃ+^1V6
;7^kNjjy^}ο?.B<xR]A&/EaQDe,u@Pw#d읩4t5ErxA Qpzz?,!NN$ <Ҹ[Wk-w~+x`i1kKTHPaIkZu؂BO1JHtFG"	&0GT@VO;?Ovh\rδ/Dpo=߬x]$5`8Fk2̧J<G@b7siTlRL޾^toGlm=sugq_4/O]ҩ66&LIɃ@ěɽݘlkI
iEO2%i_l,laWEMӉ̠HoG'['tQFF
;r9='K^L:Ez#SUe:gOӷgpEx{:4'o	d\gy [(x{:g҆H,&WN^|e-6_if"q3#f)LxLP4Dxf%XtLc&2GA}FC.BrFdmK͏z!AՌ`l<6_ AHxVOhPkvn6pϡLC8\.5˄!_\uXtIDKx0Y<{M2л7/Qԃ9{#?OC:0",iL藡1j?	qt%n}=B:bt} N'%dа
	?@CElZhM,(qRK%	/Cz1xKOLYY%I'qyE儫i*hE bbP1_ĉ= ըމN9bET3t%>AMCZGZB90iN3vc{u5t7j0aε΃~	-Kwfc_7k%=vn Mvzz,PE҆AgGzU?쬳:xO$l'nM7%lt^Nkݽͮq=ݍ67š{}M~)1PMUl1]S=0<>ynGH_1{8kc^v^gkp)H\ t6祓oBةVEa0'+>fDY+DIw@5J  
kAk@Cf]pb"Tm-YAg3[಼ǞϬ:pveu%r91ɼ4LpBbM%uۗ ut>C:l~:Rcfte8{+FaxJ@
*xD"b4mbL餎3!"'l܉+".\|鏂Pp3]s3wf~z
Zٶib+%W/(u~050$ df;KðiaxOGO	=Cuʶ{v2c'$B0ڛZPoh`G^KCJfĹd憸cL&WX˾x]^\?93kUq\ⴆ2mGP#!hX[S@uAC112}a{ثٷUkG:{,`ayzk*斴iEE7~3V|D?AyJ̂U1|4[.x;w-oC$3OvfgnbzwfdAmZ1/7 ށ2\x;q<NFu:
IE',5`HZfNIjg^JfrbIjBIFT03$1/9(X\
T4(Q\V39QdAlN ɂBJ@L~*yn&6ϼԢ9srmJbJJj
CAbQb._6+3/%B!)1'3EH|q.DSR\
@f*/#y1J日";4?ě|{X2H'Ĉ9p y
qr+ILN%SfdG6A'TEdC;؃ZrǱkf+0CGC@J̄  !㹰xVNH+JeeraG+aY,;{:v;ivIjkfk	vիz^1>)jl|L>lrw5q7Y$05NO/)e-b	~tO>ҁɧ5R5BC&r|ʀ(!EVb0[ba<u10<f0ekkLxFIm9z<]/tҪ̹֠?PXV!jv HSr3-3cSThĺ6zX+ĉNډhHA]Z£X8" n	ncW*@[#N-2|NDm8l3W%VWĪF)AE!3OoZ8h<OmXQ/0e<!r+_JJ>k+rUҀ}KoY1	s*h^g<NLϾX+,}`e	 jᅋB[\f4s#

6:V$W 2g?x?sbsX(|Ǉ"qR嵦N:TdoTi	7^LSq˺8lr.ꇾ*QVq=p)]'	<AUc+ZE'(ut*kHyqx-f~7^{7qrv~/Y.RbBT~L}w#h@d˪64 kC_5J\rrՂd;a<]욜jc܋z[đ29K*<MdCт.n!Q2Ndon819vjH:=[,,G.=bt(g~mE2Fӧ֟>D=*pxmD4DT"*3AI)ۍ#i3ʝH??Q]ǽuUIC]֊D.EpnYk58u]ek͊Vyx#<	3
^H;lhB}eÙNCYz̛񧇝80qkNԸQA[B{A̭Xy9_x=k-߱FVR.gS |^\^Abڥ#n9:OJx%!';D371=;dnv n3x]kSɒ_Q|({7fv6,!Za[`]̬`Xze<Y}xwu磟ыԛĹu=ux#쫳x|@O?r*nkW5o{7WG/sz`OT"HY(?UËě<r|5
fh֋]w㣮#<|IAhZ?q<TuZn:nWB9stj\SVrBu6bϿWQ0oХ^edǢ0㫽f_u{w5N{u=:]T5_ɾr!1̍yM]y:_jyoWs媫}HpE4:8.M;1dg,WxWaUgۓ;Q'rzD]7v#ռ 0u/Dhb7$@pxyydgdCbצ4}⎦1I1MnO͝Йh9<0nH_(f)ꮴA	c|T6c}z. lɋEdy"h/$_zS/^M7sǞsA+'onsyv6_vk0<ڽg?	w?'}]?Q<?8^vC70:޳f`		6?ɿgw:sCҼq4OhHh>M"3}j/~r74c$[/7C)MNFq+ b,R4y\-}Mvfr"[. 	<ÑdI; kv?R74qӂ˫j/gؑ&~]P7y4yspb7X#<u^twJp3V6tx'uK5<T:A7,\*0?{Xb*/;&
a	Fw~.?+u` a"bQzdU;r6ƚ	Hٌ	a.4gYK0p->YIvm?k#)NY]4[4N<h}͈? `lB>ҞG_֌wݿO.z4(z/m4e^P	!V=9w|F_mѵQCli uug(_ Yuk<>??C؂ ^$4rV
fG!\{q,/̞6r	Ý
ƓTH:ӆqvgPls@k,nЎP)?aA3t<e-ƝMdGOb-˚a,-q%cYKBt)mӏe-m/?.ooH]V&ݴ{
l}EIu3/12+EY([,2DY}6erȋo۟z(p"F-@F5v1MdJvayM\VE9V:n-i}r*}hx8gPn2/?+c}lzko2Ffusԍ3VumըT{*OQT:e'7cn`gzclMXgI>/0	5+=/};t/?"}(sUSYixKh5x~S@ub]!R
|w2&-F`ME<lgN]#!D`L2lm뎱S'tJ^˩P
e]а'mM]q"ѽ&*y)OVgwPȁbBQ2q;I*[2i%"t
s~ͻ+Fe6#$W0$.;94]VE%Kl0rD}8dJX[f#"],[0gZ-|7LzAcD^=jS'	/^7hoYn	Vt	8	<摑58V$<ċE y4<>V$^*0U*CSHQ'&@`M4cQ$JQ2!)[B"?"߮f`M,ڋU.Ḫfpܦ?xo`h(ZƔqt4Ƕ(d=0(Gu*LpwP{kCc:և ^'*Vaٕ@* 5Ffayh2ğ]E(;o1Rzpy& <9rB"uL$dO$i6J}ٍVߏbǵu\}uV6Ah><;I>:${I!J1J96u'E1P+?sgN_N'0zmx}̨I!L_#OK#B?mPe~-SDmng%rE>r=uS=M>R ӔG^P!P$ܖj6Xa'lz򁃕PvvnնB'_Y"N(>")?}BR 92ĥ	iIhh{oc*0(}0רƞ+zc@ꔾw!kg8k	g}9_FZƟ-ǋ_YX|;鉆=ڙ'Ө!ke̣;ǜ6}ֳO_ѝ/ue=⩭U	 <Q  ܿQ傮|!	
[ɚfS{3>0ƎVPODiW3QpT{iCQ$c>gUTQe#_|.7Sb*`-**&jb@5w?(m`wq(>92a<Gzd?/KDvrR?)G)%gwn%n2!A:%e,UHF;0wH,)hC	3&R;#	<r,׮D|Oh%B`LV}1\p|_R0Q1	^}	炓;X&ErEf7Up%D\Q%F(; U©n0"Y
< ԭO>K4B%1Q	g ay0$9!P]UAz.'9C1b5I5q(KGx!yΪܞnsN'zSlRys5
0!fw/㳉,7..
Fu2Tϥ[)(h6	oS)iՐNp { '&aoJGD+,L3K>nPkȟҡv3|oIL5u]tĪ]zt& Œޝ5;I`gI^aA52Jodѵr(gJHq-N%D/yz_$5eAYZF4G)Liя"@8z3.J\	nd*5=U?RlAk(Z'ZÌߋO 5@S]@ 'yeOlGwdHUKЕZ¶rUsn~]Mp
vο	TԵt-y5nLt3yA<ٜ4f~X]	?%)?
-| [ {l_"Za.|}dHUeVaOx<Q^:ը7J48~~IelBdNXޠֶ֧pԝr`fЪK]IZTEcMZ)ri=(e<D-DPۜ`31%XfA"Ho+fm`ynz-'QJ%OG{*XUZnJRU[U\wU-հ%vbP4qF#<B	3ۅ583CɂxM<+=ڒ9/9s_}+Yd*	mW㥝֪~QUsV"o$7I>%"'LO'V^RlFkKEQJ$o7L+C(omyДbv!Hv_sXS)LEyoʍӷ0
@)E`]3LD^ӑ.8NlN*ͮ"7JĶ4+{$YƶH-m.]Uc8q`L[uzdxʐӶDm%׶mt`R#$[*,XYٛ:E5wx6W/svrQU8(NKJEZr`wiGׅټyXWxS^acyy,e9KiѵxYJKj7;J	iL"}C2%f.3yyZ+/=/yߍ~Yuw%xgWw\ ӻQ9}e\)N0V6`/?8IQ)ϹX[e/QKˈ8R3x[ۊ<7LI2] 5<ѢL*TM2ox:X2|, Wz+hN#HV9/Zr
vjp4AB8ޢǴX8+9z$$x4jm>r}b o9#c)Rh)+UVoB4Y@0S)Cb-(-?Z)lu1ncc{`(2wRfɬu#T$T3ҕ7YK{D\xŔAkAi)H*R`c`l#zf`vgxdGK~"Hy$ncTh ˛y/oV?^ޥFR0INDwXL(DBIsJ~+?
K!I@Ssv#"<s'\oJ*btT(Pm\	ǹbuO,,ٛ򠅔Y7'leFUb4GC%ԮNJ/TmPL{Ab%#vy|WJTqF.mN&]FixP`\"K)T4C>3DdjPDzƠ4o?/پ,]^EI
3dƩ60pUʚ~dկ7g|iFYDj~3q^,7}AR#bp>rrQ=z,E$ ؁XBTB*FCHƧmE*Sn &%$
?yF.{x sQrB+	=gL̵wy6Sf'7hH7W-澅ifݒ}[Z;upce	x< EYgޓ%"wG0Γ/qc1J-hKxqgy3K<sS3K&rxm~ vx2,t7\f1&po~.]8	.z\Y(z,Bfwf}݋@NO Q͌f73Yʬv1w쀈|;qtisy,29#|l滾%%vm6gs8syXe`f|!cVe Ja28x;y2^9y
nn!AAAA~a>.:
%
y%
E%E


y99
y@Ɍjd2RLr>L5cm*i_fnfT[Jm7NWJ55hE-^6p3f1ïTNK s6oܛLĽi^>4q/>!MÑdf'pd=ή3KAK4oH:bĒQg%d`l;PeiB~2a[lDOawT-A~sJBe3'lOW[f~jn$dmc9&  Wn&x;y},lM 8貭xAO@g/͛&Hz0)llvAw6d5}=p6_߾y"a.ucRY2,«]DI/>ii&0*WX0?ݽy	uiPa,Ml]+m(YF/v55P>_DR1$qUE㱵wY{r@V*3JY#@E2VgήPO,1rbZɚ/})`i1dۉ=)ak3ҮnK@\_j;0Te(39*Ŋ\[gClǎF; 5V"BTG㸅8S]%VGz8oߺ9= !fU˕_ϗ5ӐιF3Y9[*JqԽԩ0rC P!{Zb
9_/ͩ??C[#iQ#7`zD5_9	txڢA`w,<%!%E)9TR| ś1ȋ楤gd ج2D98MKxq"I,t<OЄ 2dxzIuex&[@  x*xzJ~2A['晜:9g8]sM..x;%Ma26Ԓ&/`@ܼM 0xRe;7cJ[fNIjSޓٹ<SJP#ݩ3/%br +{PjANbr*HFs&#, 5'ظ'x}ms8
Vɤ'qf6;glEQ2O$RKR~:U*Jdn(RKRKnwHZcQ	y /ג#oyHwgszR\xD$S|z ;6܍ƕ3b/w+|%叿bFZ9R&&v/J]'Hp='oP3y4qq^X_MS{F˷>{,~;U7`88"_/{YCf;RI2r$F^)ɭX܋țn_y: 0Kْ4ԑ-:B.5ҥlnk%zW5Cz_K4{"ޭ#D I庅&,B֤xμ7hr,]i~q Ik7Zy1hc1'paEo_}MDIZVPDp9myBEoƒ<bj3!k`<q3CayVޘDX%CswCT{Vr͊0KKY04D}o9=4-Tg/aT|x%>Nܕ:|/?n[s9OUBt[5{ZOmMt.ԉ+q~b>9/C;ܕ's`Ϡp-Lfk/; ]y)n0/~cӥ9ckM2fcPD!#ڻs_G6g=k#m(U4RvBܯ]$jMkE%MĺDȫ7T<BɊ(1FNĉie^?K(>OǞS̊ܣ9?f*ɬ}\}}ІQ{CƲ˃?w*uRߗn
{2<\zZ x}^a,@6JśnwaHde-h>Va(r=5wBFc`89Pѭ"q{y/)ڊW^Ϡ+VNE6 ^Xg
@7*U7&P^LnaY`g\
BٍIﯓ> (?,c౸9ЌYܡ8T8o/x-g͞V-`Iؚ/v46Q3Sr/~gߐri"X?v 	ކ}ԙ|mCPpmxj>toT`lBJl^0[35M5V@+px4śKkXA&`4H6
Z5ӻٻ ެaF
F{[0m;jCub_T(_޽{_,s|ҍK$KIBd.dd i	v9`P]UZz͌l˓nZOuuPMu ..dk;jiW`(&:Pe+WWP`7A ѕ&aO+ͲEq?TIU1RMM+ĸ^2yag*&z9Um,-鬺Y|ڲCPM+߮ۃ;R4Bh]~ퟶ8/dSԾ%,ECüs(i?׉V:
*K]EBtFxl}\pP<JQp?eCnguyaМu5Ɗ-s|h'~꬝ tyدAךZj9L`8vF1UrkŵƝgUl8䂅ǉ.OI7bPQSy1zkփ0E8f%̣JWTXs24q!\:3H+j˿e6pǷ<T6,cl*6,j:.CUP|,*jYW$\أQKḪeBcמּ> ,
` JII?O_`W֝4*ȩ K*@E/$1u	M5I^>i|A(4-lL+W%E^*8drYq]~8*-rH&n>HHV>f5Y-6+RYm$;s/ۭ\
LUQB#:X4tS='7CѐVU^^,Wnz{l$N}w􇕍+۲jf:(a|?mz|zD\AMה/j؛](0}Gve_M^wuX*TP! XA?\ʝB;R+vuu{WrNCXrѕ)O[)Ea"7U0 -2wQpH옫Tvyl_(c7,+ƲibƎF5[粙)G["MɽJT7[hMk_N+ClraݵqXtoK|/\t$t]]l|zmz9YE.]\K+	,vRkȏ[fPT*~b'S(LS=>(,oX<~}=R6~ix޽~}*JKX$|SJ<E;gT7Sz}XsTe	UoMA{ܶW|SQ|Ħ=500f78ZꤸQu}@[-W|?7z,Ie/DX.6BК#F%`٨(
Mv_
睞0=WxhS;Gu( WBwJ<V{6fcIsh
F"qV|Fxw;TW)՛WbGn2|.ٹ;rF[AN-'"rIWWP%1YWKr]َ\n}`nϐ[T?(KI5r"
W2"elY^mdmk*73q|G_Z<)|=wMM\ZVVV9UмF_0%g(T8a]'[}gro*&HJ|lcPCRZz	jqr$<Ts&$xѸaA)N*'wgXaH*bx}[y=ndo+^)JX>u:w#[9&APixĈ"ի_altd&4å*:~Čo i.e_Ќ_	F7͸qnH֪[C܊˫/ÊkWU4poo)*ϽVI]>U9q}@bihlzRLrZՔmY\aASax赔FN:Ñ_K
xlkw{
o\()U5WpAa͵ݺӧuߥ\'ԇ7iuPXsmwo<(Ij
*5+uK1Әlp,eW}ihPt0<i[	?]\0{;R 6hד&
_'<0e@";C'|G@ajns5/0L:N
UH
ͬIKrHdI>Ԗl0  F=҄8}I	Qb-#E܅/`A1Ehbn,IM<g~<tkP.9ۨ
ty<u a_zA{c?ԫaMFrr37p٭֓b){i!4!Af'&HU[i@a!N܃ś 蓒r4&xء3E/{,i>q<*O:Ew(pdtRR"0m ]YFN,	nn*Y˷':Az5[_+S%:tȣs6mjʄR=	p&7p8 u7uhg- -f	qXbYM)Y?5I&7OOϜOwrR4~Ӹ8yot!jI8~?a.wm<9 4~[,|KݞW`Y`,+3En=Kk霡܈).?!<Fsف7{\׾8Q.!3ȺlbޕH 0XxMT$l/I\Ԝ\݇NH&'4Sؚ2rO.6}n_a0}>Bd٦[=XCzc]bs=fuV̿#<z*AKy#q;tV,g_&39h	SXk˦ͲԽ
kF&
9(퍗@Iy/5̈e/}R
΀A
ȄLMc+J0PJsk4(>.wi)!gQh_\@ekRzKB`PW=yj6fvc;X	cm'h ƣT<zIّH$(s{>ϲ3 >?Ίޡ:dn1u2Md6
ڡ~?ߎ㩖;$tky^YF9)-Mno<g<\4Kyvt{u_XiETSYCqKў9LL7)nf~q؃unK'}Sw&G@SFp%fH|RN&̌5R0 Kqmk2y8\+CC:	ߨ>+YXaCJU;~>Й¶S0V%#ajsS'e̒oDFj؅ l`
3Ksa{KmwXև;L=ΫEaRl	jhhlT?lܓq5'z%sg\~"Ńy}lmE8\ȃ1$1*(qT36%50'qIےijYe}T;VvWE#E>td,:^IVP7((f:2qA݀	ղe]a#rULLL`. q
mׁrĶ^e	RĢElr&)l"AwC9F]Kpܧрf+V;ʘ8Z7l>>V2j8E؝(Naf73;"@N,UI-AL Su%BClm%-P݌`$fL5h<wP؁=߉o*O͢,	ަfʤwA%EviT"V0HNFkx y=iK.+W5}!{10P!¯ !4ob5ʹFffd2Ձt,cw'=m*=ĤD/s%q/Y"O@GY-#UWu:>TVg^401
b`-Zn02ۢ֍c
m՛A	dWHň]Q=Є}q-B~hkG=C0I݊l6ƸM|k? mc(@YV2K*lU`uM@V	ߟ꾻H$wlˤmM	7uEO?`Jw>wpkS;[CUC҄@v1=5}xn0}7z->&Ex],VUU@ՠgzOHB×A!˅Љ $P?ld.<b`zжQpز!L0Mf*8	W;2j&ijO&<tjë]3Tuo}WaFh&M~X7qI;w@K
s_N+
2r	p3^j	d%~=˚i 0 ۹48NS(S`9Do	l綪^.[(tMGBŹlpוm>sp!(,M|F17N#p<]BS@TmL7 Ztɻd	&,#Kޕj,zj[Dp[%
a 3#kf0/-rd?`vӄ\cuw
,KZ{p1司OFE4$[r|@*=Iħm-C~Cv(uʤ|B(XL(P 2({8QP[ u0lv	>RP51HP&qܐ˦!hb
arAX ٴP0|6d`akWyLkegۃq0y̳LTxX-QY©tgɦh~KQ?tgE\Q0ZXʧؑ3\+G<z)HKiAZY*5Z>:?%l4lswa]a޳=D଻<x"o.'x0m{誖],yF
JE^`17LE;'Vd	"6]Y])$?
:|1Ju;{Fm<*O4^V <Аs>ׄ/<ןA2R-֬p׃	4[mfцQ?C2mz9	ŐQRcθW;<-1bbe_]r&<ڢ(P5q`QНcGZHϟ^R5ՠz,ɠβz-}pAnpO#0@?Qƥ˱i,UʮVuh;zm礣&j%E@jI65r.lr^vl)ɶ~n;G]4gKTw6~@zoq.tV9b;"B<ڌ'sbbb\(U]2ƌ-9U{x`O`bi,Cs DPZ:U[y8Y&lzvGD/f{Ut@ɜ.}Ȓ蜝}8kcr}}Cx]?-{@I],o=I6nQJ <fcBV['o-+17[Vptl-?ReG|^yu~t#4
9tB%S<dtxz[ayOaUmE֬	I'L؁hj>K'.K(\]&aT'Imc"ih4QV̗KKEƕQOF"߈.s}}|dt'jQ',JFUW]3<-b:EȪ6/Z.L7(nõ<)SBqd*%"a[S9 ~VѱTqy uZ^/o`xpeA(»Z=I4siUķAtom:zх~}SkJ9q>hcB&JPnش윁s~;=nQg0]m?6 l Ѽ=5T1O{	)ahjMr:CclW#&@GKr5 Mw!F!Zl-f5
Y`k)bkrx	ڃ5YЋ@)4t A"J,4ײdۓ-!m6,ù-VhX"T[V&W5f3X	Rh5[@ˠC%a>f]^@ewQ60-iÓyvXq6ͳvL"4$Röaj'L ⇛Rj֚HD1ioyj"l9hճԥMgunl!GL@]>ap--\pLMM6QKN0)Z5JYRK\Zo20D1[!VS`Ԩ`wYP"r4*idsX{M/l9]iA^Rq].SqDEO4rY^AT`=SӜwu]ԎK,3r#sU,nu}'ڳ8G)!w}wQQ;Z1tՁ|J6z:V&"<HQ-,WKqhd׍CoɆ	f1@VD,k O҃GC{NO[8ʧKfdxkyڳTxŊEG	ρϛ,s6D8GDfF`O&&AJO^ͶL(1	=֥#LS}EF`{Oj`7;ob׉M%bύ=X͉x^瑾:=59Xqh:X'a7PmDZs/
(v@PS2Cy$]5}u듆I\18{V[DGSZG:?2Py.b=ߕ䢂jNnos,CQrFɜғb]wFQDT1D6s0pw11A2[t,9wv ~}!UYJ"'#ܛ?цOy|7+/pv?pr.lʶ]OlC#I;+1vV)GşO-u>hd+e-*~rv]َ&4b[ߗFSYj,g
>f)3bó
+ĐR}!}r+2.t(D.0vb0i_=p79"[sձm]E9 0>D(OE_߽*U\Rc6箮k{'vw^D*'Y沥/=Hv9o8  BUc^(u88
wB	,wC!s~Hּ'yW#_o>Fv/5mM.vXh9I^_&||뻥 6oLMw:C^4(_iBnS<ĤPtc rWcW(Ӥfi(x5`5L3\mS,HR7f88fq9U-j\Ouy_0H-VOڅlx]#dF_UD޸ȉz$LDa3:vec- `Ē{*;B Zաlqk?L`<tu)E`+	wvXAgո
.sF:'4$]	?y>]c3K6j-ΜWjH&|}-CW15epgCAD[?= \}g.̰嶒uTKǭc)+vҝ84*.{gc3P>]n1!
@$MQ0>rq d?p0>7]G.	`
zF*b`L"3ŶjMW(co)`>$=cNpvV.<1.hAP> RRDɁM ̋$Oߐxnm{}bi}]ig#5 _)a0>vg]Ō~GIH8qHEL8]uT(sS9)[	h$.,VGQXbH!3Su]f㾍q1a,J|W]b\zq-'mUD\l'<.oU&Z xOYo5[1<0 CQy	l9͋\eT63⮦NjCdH갣v'#c)ץV#j*m4ڑ,F1Ns#	U`lfaDǖ&py|mQ;-_<6cqhoꅦ^2U]]S1rIۦN|J'jL!I,ն5oU	>,E)3so_Jtj5t	r3?,Bv|"°THVrE%l3 $<VIow1IP|*ƆݟhУ1`SR'E-qFb߹lU&2I#L$Op8N	[-`30O9ak3iVCVw/;ə|oG4`\a*__6pk3R=lay.skS zJoS&'o)ɳb6I*ܓFsM6A ـ>BgE5srEG	ChBUѼ6r*>%(T9JzB\5B12Vî-+u
-I˥ũ9W@(n\tQRu5_ڜU6պn.?{ !s~p@tޜ]*ܜeʋ\L)(rgz7;&e3UiJVx#rC xnrTW2̉,g.6R`_f) r`y(4=)cK5i=exJ\&ߋ?~}oDIA)'۷A9kIqNfh2w1|^h|x778y+6ly%Fn644aZS,H!)'?)8*U!X!4'hFbL5llվ9ʸƾn¢	aǗ(䦖$$$:p) L UgAc}[_d|*`a[-Qm FSHx77o|*`a۩Vnx7oXl>l;/ b7
9x'S|Eq<lYMv0כ|Yb6W3N-?[fR+є*Of11|۰kjmR:&"ݼܰ%8*"XxSɛM&\g9ydQ̼"|n6S&O<Jx6{^iNNAId/3ɇm6fbO*I+o'1Bg;a9EEz\
Z
@T&RY5Rir$KΖAO^j9nWQ w^BnjIbJbIrYbҼu&R埼gso C}LxToU&vv')$Z7B&U#'@+@Y]>P"EH#P U{8ĥ?r%ҦjTNET^V3o?\~|ӂ:rvK	)pZ%:g6c~ڃucr\u,
67|Sip.vP,2LJ0v5N-̿Nħ+hlxxpL7\v6'<=s@%/>Бh-d;V?+DPP#ZTHʝU0<2}p(ݾõ(90J2	|΄<-!2O*E3HμGx
ˑ@<qڈ?c5@,HiuREaQ
Q1%H
	0N(Wx*ȒTDx9KL\xt3h -db@FeFZ4H*&#8ғThji5U8iĘκFZ%ACRA!YrtnM>;o;z2aH<bU8xwngB@9v{{
֭`GD"t*Cx6M#fr*ZTEp^] vWjx:j͡ʢ#&0co4><mœ9D$X#܂F[x	#^)KT7YnpM"'H?&I^ڂ̤&ƧgSyY-",2rXNf6FR'V~UgV*	p *PBrr\Aҥ+϶Uk`Xy`YN~m IH,6io?Y縟~si*;8ތ&[vyOaY3wMx7+'Sj"c$ 
L+xK̛OZN?iɸ Y	Ixb}OZN?iɸ 
)lxe&,'}Mɖ
1g*Nъ(~hB͍^L@7|io~`77 $:[x[e&{L$y% 1&x[;'߼`!#qx{1L ~*x;)nߧ8Q aQHx;36SO8Cqf^r&JlfĆEj٬@᥌~xL&_4޼zo yi-Rx  $pՓB?1xVOLU]J'SXI6JX
%$Vi&&|;`_̼)mLzb$jҋ6&EVѴJ,9{~}{oRڕ>ٍ!zWz9	Cb?UW_O8.!]Y3A<W:ż :srLthQSګe/+	Qz*쭟LųoXڔyVi3=Bz/9V.`gCWv^;LOIdE='\FC)~ٷ0LML*g3_KĶ-aJBZ$^N
)BRF,H<\.=:fyYcZk[{tSf`sL|Y9 AX6%Vxƕ9U\IEnjYXf/Aӎ3i`e%&ȼcyy'$L_ԏ: `KdBӦ4-S-E!>)Y	Õl(rDIvcKZ#xB߽BÂ%lrT}@okD@7ɼ)-t"#T3SWZ*gitTd=Qn=h̹ҷ+R{;FMShD񂗐_T'gf[NŊ-V<>;ooCx-};^o*bn=hX&0!~,#W>ڧW'7b. uнlHAawC0y831>{ge&{i[v0@&N5!gm0^|cUL\Q*x~ہk_vҗ
W^mqXиZ&F3?7n\-<z6xaRݖG7o]_Bxve7
2^  ZU[xrl*F~L'γX֖Ji ==x  sӓ@关?53x ss.
]x̲m*&ͭLx788B̓l.0yJy70
ߜpt%M4 M#mQx6Kv (ix6yTBĥ'{Nvfߜ!t{A9Urn@
ޜ/ 3nPx;4$7h 7yRix;4dyDE3sRSJSK2sS&'NnwwutwwqqwsquQU0730040Ckg5Hx;4yj~A\>9'{L/)BQ?͇$J&NR -O7ԒĔĒD=2r }-	2d&y0Cg9lr~pv?'? ;+x{?A~A\>9'{l/R 
f/)xmjA^B!D*iL[S(47wˤM6;	EE2/"4x酂x&Iq9~;>u+?c3!P|~(Z
J /o#\q((\!8Fe$P6492ac5ډEbXGumk@$n8;*-ϋ87KKƄ+q\"\!ɸϕѿFAHӕ1Ň62Kpˏۉqɯ/i_$ֲtQ~Wv9թl Tq:TcK3Tvvknb:(	_wN@/n{ 䜦skS^&36KlP7s*ݪݫmCްOI_[)qx|yA&͓LVNT#(595,hrRgkP_K|ckk u&kI z_	U !!0`x, ΀7#2œ<$ɳ"dx<yCduQD9RS3R&	*:z{9x89)*[m; x;|/ӆ@f̊ԜĂͱ̢<o)(=_97?er,krQjb:!w&#U}|C}]\CCC\]lL7x4Y^dfQSFʂT4ĜĒ"@b
 7&q)hCqf^rкҁ\
 P\Y\ZZZP_TP47Dd 104O8]oVS
4Q!4--ьU0jrqFbQ*	mfvcKP$#ZO_GwPTn.b\pq> Qd_x;y\@frIiQojIbJbIBIG<LtE1aJ̼"tdG9e]$ԢJbĜT=ҒĢT7^ r^-aDx;ӆւ{X6 _
	gdx;_ʂLAU{Y'Й|VLU $x  Fa;<5,lEx;G_'[L|HĔq-W )xiC 3Ofnbzj|r~nn~H+{%d($%榖q)Cqf^rdEA)iO0GO  G_ [ss#͖WW  ~d!1Jx1O@MQ]\L)HJJ=b{\#@cşh'89z=1._ۻ{{}z[}_{l#>YCr ň$O1Cd%	UoCD|}mu1%U[i8mtUi譶QChZU[73N4?u́uieRPk|?	H2_pltں4^գG5C	// .D1x<NV
"`ԟ.DI2.c/<$PqA?L6ޖi9yo1PE+Ig,HE2.WP5@DS!+2{v"v/`걄\_*寖2=| ۓ
qxi[쓿pIM~b2.ќ8&gel%49K$4 7d{n\ϙ6Uf(,X)#X	͎LPcQssb-)\̣'l3@wr5Mv߾Lk =o9@xidAW IT8xBʙi)i
9 <9Ezr	VԜT(n95W5rj^Jf@[EEE
.
E
)
y%
%
Z\
@T``nf``hnVd\~AjQbIf~r A!~n>.pL6+L\ Azxi{Bʙi)i
9 <9Ezr	VԜT(n95W5rj^Jf@u Fx[<.
E
)
y%
%
Z\
@T``nf``hYg* c	x;6EEɩ
ye9I9
Z\
@``j`8YGlr*1[_GJbԊTC]#<CFoV
 -+x= g	p	`Support Xmage!t ModeaD,Lfu?x;K8ٌ&rINh<ف]dWy[jA@I*BQ8SX`3	y(hY3Ö{Pk+۶AY۷ 51Z&xm6ԢZ<V h]	"xk|tӆ*<ܜE%yʹ:9xŻ9z(*l.
 ׉=x;,ӆtX'7pmv7}mi {Vx, =Xmage Supportedqment=x}n̛ÙϜlwKx,}$xin̢
9IEE
@:371=U8#sw"Y'rO >xa7G60MP۬0 	exin'NP۬0 P	Exkokg)(8LvRRLSK,IU+(d)%攦RSJ
yI@4Eme=}CBl=@VBl	 E3xUxkʹv/kg)(8LvqWLSK,IU+(d)%攦RSJ
yI@4Eme=}CBl=@Al	 g2x/7fT̶͎̒
R!'xe?K@pIlQYBE0M&Br%q
ڀ~g?]*=]4~DwwjAoJ\hʰW'T`ҨLgeXy{:,I*uX+C#Naϋa7jCD DQ "b<snq:)<p&/G12*Ydl&Yr냕iH	3i2x1K4_P[udD|Ui6?k°nx.̛Øg 1N4xi'_eRrSs*r<kA~QgP?0``nf``l`5 Rx['_ٸ@`g~U1SK83/9U,YB@h% {z,x{|y[~f^Ijda9ɹ
3 
IOx;se'뉪Li$0-Q x5"/*
 * Copyright (C) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup Image_NativeModule
 * @{
 *
 * @brief Provides APIs for access to the image interface.
 *
 * @since 12
 */
/**
 * @file image_native.h
 *
 * @brief The file declares the cropping rectangle, size, and component data of an image.
 * 
 * @library libohimage.so
 * @kit ImageKit
 * @syscap SystemCapability.Multimedia.Image.Core
 * @since 12
 */

#ifndef INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_H
#define INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_H

#include "image_common.h"
#include "native_buffer/native_buffer.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief The struct describes the alias for an image object at the native layer.
 * 
 * @since 12
 */
struct OH_ImageNative;

/**
 * @brief The struct describes the alias for an image object at the native layer.
 * 
 * @since 12
 */
typedef struct OH_ImageNative OH_ImageNative;

/**
 * @brief {@link OH_ImageBufferData} is the image data struct encapsulated at the native layer. To obtain an {@link OH_ImageBufferData}
 * object, call {@link OH_ImageNative_GetBufferData}.
 *
 * The struct stores the shallow copy of the original image data. Once the original data is released, no read
 * or write operations should be performed on the pointers within this struct; otherwise, undefined behavior
 * will occur.
 *
 * @since 23
 */
typedef struct OH_ImageBufferData {
    /** rowStride of each component. */
    int32_t *rowStride;
    /** pixelStride of each component. */
    int32_t *pixelStride;
    /** number of strides.  */
    int32_t  numStride;
    /** byte length of the buffer  */
    size_t  bufferSize;
    /** native buffer of the image. */
    OH_NativeBuffer  *nativeBuffer;
} OH_ImageBufferData;

/**
 * @brief Obtains {@link Image_Size} of an {@link OH_ImageNative} object.
 *
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param size Pointer to the {@link Image_Size} object obtained.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 *     <br>{@linkImage_ErrorCode} IMAGE_UNKNOWN_ERROR - An unknown error occurs.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetImageSize(OH_ImageNative *image, Image_Size *size);

/**
 * @brief Obtains the component types of an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param types Pointer to the component type list object obtained. Since the number of components is uncertain, this
 *     API needs to be called twice: first, set **types** to **NULL** to obtain the number of components (**typeSize**);
 *     second, allocate corresponding memory for **types** based on **typeSize** and then obtain the component type list.
 * @param typeSize Pointer to the number of component types obtained.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetComponentTypes(OH_ImageNative *image,
    uint32_t **types, size_t *typeSize);

/**
 * @brief Obtains the buffer corresponding to a component type in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param componentType Component type. The value is obtained using the {@link OH_ImageNative_GetComponentTypes} API.
 * @param nativeBuffer Double pointer to the buffer, which is an {@link OH_NativeBuffer} object.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetByteBuffer(OH_ImageNative *image,
    uint32_t componentType, OH_NativeBuffer **nativeBuffer);

/**
 * @brief Obtains the size of the buffer corresponding to a component type in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param componentType Component type. The value is obtained using the {@link OH_ImageNative_GetComponentTypes} API.
 * @param size Pointer to the size of the buffer.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetBufferSize(OH_ImageNative *image,
    uint32_t componentType, size_t *size);

/**
 * @brief Obtains the row stride corresponding to a component type in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param componentType Component type. The value is obtained using the {@link OH_ImageNative_GetComponentTypes} API.
 * @param rowStride Pointer to the row stride obtained.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetRowStride(OH_ImageNative *image,
    uint32_t componentType, int32_t *rowStride);

/**
 * @brief Obtains the pixel stride corresponding to a component type in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param componentType Component type. The value is obtained using the {@link OH_ImageNative_GetComponentTypes} API.
 * @param pixelStride Pointer to the pixel stride obtained.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetPixelStride(OH_ImageNative *image,
    uint32_t componentType, int32_t *pixelStride);

/**
 * @brief Obtains the timestamp of an {@link OH_ImageNative} object. Timestamps, measured in nanoseconds, are usually
 * monotonically increasing.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param timestamp Pointer to the timestamp.
 * @return {@link Image_ErrorCode} IMAGE_SUCCESS The operation is successful.
 *     <br>{@link Image_ErrorCode} IMAGE_BAD_PARAMETER A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_GetTimestamp(OH_ImageNative *image, int64_t *timestamp);

/**
 * @brief Releases an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @return {@linkImage_ErrorCode} IMAGE_SUCCESS - The operation is successful.
 *     <br>{@linkImage_ErrorCode} IMAGE_BAD_PARAMETER - A parameter is incorrect.
 * @since 12
 */
Image_ErrorCode OH_ImageNative_Release(OH_ImageNative *image);

/**
 * @brief Obtains the color space in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param colorSpaceName Pointer to the image color space. For details about the color space corresponding to **colorSpaceName**,
 *     see {@link ColorSpaceName}.
 * @return {@link IMAGE_SUCCESS} The operation is successful.
 *     <br>{@link IMAGE_BAD_PARAMETER} A parameter is incorrect.
 * @since 23
 */
Image_ErrorCode OH_ImageNative_GetColorSpace(OH_ImageNative *image, int32_t *colorSpaceName);

/**
 * @brief Obtains the image format in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param format Pointer to the image format.
 * @return {@link IMAGE_SUCCESS} The operation is successful.
 *     <br>{@link IMAGE_BAD_PARAMETER} A parameter is incorrect.
 * @since 23
 */
Image_ErrorCode OH_ImageNative_GetFormat(OH_ImageNative *image, OH_NativeBuffer_Format *format);

/**
 * @brief Obtains the image buffer data object in an {@link OH_ImageNative} object.
 * 
 * @param image Pointer to an {@link OH_ImageNative} object.
 * @param imageBufferData Pointer to the image buffer data object.
 * @return {@link IMAGE_SUCCESS} The operation is successful.
 *     <br>{@link IMAGE_BAD_PARAMETER} A parameter is incorrect.
 * @since 23
 */
Image_ErrorCode OH_ImageNative_GetBufferData(OH_ImageNative *image, OH_ImageBufferData *imageBufferData);

#ifdef __cplusplus
};
#endif
/** @} */
#endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_H
~oCxOAT	`-R#AĪU1xAC:;N1qGC9zd<yՙR-Cy1~: k|RaD;`dΉMOQR9)CfbNa]RldbjB\C,ˉ)Oe" ~Ƈ׫}#iYl|R7:5ەKd37|q$:Ei1iJ6OjV ;= .[",7j%d$9fJ/|J]2̘Z1<"V`%P649:%Gސn[ibʽLv#	%)EmBT:P*Zr">iMj}MK܉dLQWʚ§Fl,uÅc.@YdCyI7EZ<omUAАw+`pXz/XDVpF\GʸZ[ɛUek4Y	S1y<ڱw;Y鲗_gQrzso"Lheٟ莄|Y|HG띦3@9g&AJ&Fv>#BG<&83m6FlVtVd8*b`V)Q5"4eBS	:%3Yx
)֥N#"ܝ,dL7f}3x%^H?x,=*џq|<jӷ@cy۳ef-xZ_FS./	"^>4UX!(Oh6vw̮s$RH{;;;;i6	 Jq	\t^%l9h`;m='~H|Ko9BfG︌Du'xLWWOmmbH"4D8O6c>:qo:)ƇFg8!Bq9Z~n8l6mnrvǳSd:t{<@!q-Y	l%9bz#E,U7LrZQ,22K 7kv/z3k""xng0B2Xsk2o/7 %BI;@6Ik8<G!+lܚJ؊*AZDt%OEbh:Fe+$!ri~3U,.pxҺ$pXHjR$?_B
EjBr#w}kfPCKBK,oGb裈ͽ;Ff!̶Q}Rx"޶$^,Ӕ]=GE[sχӗpxmgqon.qt37??ħSU>?wz2%8:۷W|czID)FU
>7qF	~_1yPb+5YaU1%vYϫ \l ކ|#Gи:M\/14m'm@&JP
>ymDO\wΒDFIuس-Q:%8wpq b1)'_jAS
 91OYHPٓlq&)VvV8̑j&fr&\f/9K~%UBΡ`>}	}\frd:/[@	kPO_sȊ:+yo>cP?꠱J~{Ў|vGO? tV`V񖒆(mnemo{3@	/jvh4/^p)!\y30e,RK@6lpt-"%tdjX*hc^8%,}v@wz,qJs`/GHg+5Tj/bvy^S3р<` 81WkJ?뛲J˿x+\FO/׋gI%@!gp:
`="?w`TDVGj"*%ԅCNd$leϠ*H1U.Wz
4UEZ.VUUfʈQQ^bzYeUJ.KߤM8Q>4 F uu{$Xixs4;RUem)JDsQ:lpM=݌_'ǋtGX>$G?V|jA&S+)3?ԃwlA9ӯ(g2rңct}SV-GEd.\Qo~Vg3g r`tjMFcs}egc6)_aC;G\K~T(4U)_8u7aoR3iξr2&,Ƒjȶk SiZgh5v_}`Re}t%zNM]"xM{*HZ({CvEwZa,s!O-w|nUZ5hڤ[^Y1DLg%jEòKDLrA=w)B\/znՌd^rxۘҮT	$]V5~Y:YGf+ӭմ+I:hxuCq {jq|ؾkʡXCNEo03D10 4'/`8Rv$믫: )_[_؀B;üy"I&N# E]7`GvMUAuH`}(~I^F(`K"{Gjq5djXU7?^e<Y6~,T}	*e4hir*I7@MGÚ2Y	^fB,ԛg#+
h3?72;tus}:s/Ughlx4qC	gnbzj_bIfYo~Ji
}ly`6,Yu ?#xVMlESb;MZq;KΒ1@9JhRZHƻfך݅ HNUTK{B-J8r3J$|V}yof~_njt%Fޠ-5Rzn\
U©X9~fצ8XU0 8tnzqY|z/(UqO,3*gTsuMg`;UiUDI3o֙Zf5UҰ]8Bq:sIM @UcVr>PM,ӆUUb~*?IE8SNJl6	ĲlzotFL+Ӆ ;GűHūX4٬7xo*o#[]`,U%07# X+IA8Ye6ܪhLri@ŕXfhר4WVo5}E<qz]`/	s	i;?UH+İL<MszVP`L9 r-@r,mȧQZ2g	/̥
C%/pG⩕me(dXz }?ëٔlē6N'Om%oYvNTk'D&Z]:n6T˃x,Ie<o!42R+ee8?-	N5beGzG\|6+
xyDǟc3+0&G}sℭu)7KI͝mkh/{'D5(J|(ffMd*(퍱Nw~n#.9吷7fWvНlؘ/|}L̗?ǋDy|&|	_.
X;9[j~B'K=ʩP<?N JO4ixoEGk-I5q&
k!Ab&Bmn+x=Κq۴"!$8r{UxviU+r>SaCAEi-Mq 06_ci+NCf:0Cʱae6f%iv(50z2.vd'M6&pk|;^o$iRߏaapei4O13i6[Un'r\kuSWǊayw|!hyKs iu֘kTNlBeUǽ3/=b=Q"bΥsO>}ی -C@ =bͼ_&TCW_ЯJ F#?/$B@
S|hm6tty3)=WyG/voLz[&잾y?~0/UҤR$xpfbmˇ:c'_J~ndSgn,]l˸<_̄ٯn(Oix#)#J}OKOD-U/*YN3sP"9ŧjDաM0̈H|b!0
Gvќ4):SW:pPaH~K$=,jSbZrr+WLJߢMي];MR(P"qH#,0d>­^HFe)0>gMx푻bgBndǳR
o.:ѐАzFzV/'Ϟ跀dz G
ΆՐuiԹ){=7[bjX0Nw'£7rGUP(|D^@F<.mj*UO	3:e9wMElT#с\<
+ٱ.OZ&cla3z( VU@A9/]r$)LEab$SB0p5g
CΑd"rI
``DB8"" *QKKFlbx3t[^bIfYdS6H/.9JK h qx^[

O<br>q'%@<br>qnY
O<br>q''o+
O<br>q''o4v
O<br>q''o7k
O<br>q''o4E˓
O<br>q':`W
O<br>q'%@<br>qnQ0&T%
O<br>q'%@<br>q(0&
O<br>q'%@<br>q,<br>qn%y
O<br>q'%@<br>q,<br>qn%yf
O<br>q'@
!4
O<br>q'@
!0&#F
O<br>q'@%L
O<br>q'D
O<br>q'y)3
&K+3<br>q+<br>q+-CHxJ@ygs0\ITxB%%+%6||ϣA 15/=͎4Hc*S)5
S7rjTCg<;%Ef$ew~( &,0[\Φb􈬑aKsi0ķix|wݐo'̗JT]+Qk\PaDiXӵANWfbcs;Q`?2"	\xoߐ2@^d"z

Z\
@Wbl_0y?L8*$̓Qad}Y"'/`|^UFG85U!'3/[&$/17v.ɚRءl.` Z\-ixg!eE,=Lم&p%)$&O(>y{2:
ũ
9y
 5@%~?pN֔zĞWbl_YR "ilVxߠǾY=J lxkoPĶMP xgn$ɎKg ;6xOA/؍J0jqS
ѣ56Q[7K3}23ă Os I<x_peۅ6޼}?g{Ɋ/{JI	.@GwB=!S5<s์Ex7U#2b(r: 
ԇ£Kϐ;D@>~4w2ވTpR[_R"Hwx)=qC%_XE[VRblDU'U&(DS%JY}U}CuPhc5,IjWT'袴)|u灕cH|;ݾC}0/cVMWn\oo1`2.͘W)
b@f"FنRr5lo盼OѢe3Pq7tY;\>Z: iE#x!t/8fɭ,dd7_x K	&x"tCgnbzjPjrjfYjDIqܓ&	muZS:?tdxAOAǓJhM	m)*GmD,]mg)Z!W+7/^v&EE6637m~~źNqx ěrbX' 7:չɨ8\y(ӵ*"|*kge(1ǹ(]%$YE9L8GZj8
°
{	
{x"u\e2zҤz^&hbnbnĆL-XMV)Xn$%M[PЍ,.z&чH}..	7jnx!32
g/<=_b	0~sĤj£S<uޭPBګ#MQJ#MxoXa[ 3lVpPvM86))t۸d,V
tH#x4u7Y-KFxf94%m!n R;яP˕YH']J#L4O˦9q[[WJvY^聟#ɁB~/>0WEDJRP|2 vbH@\^h6}9xU=FM1A[CYRbyCrǰ<TF4G,#r'r?_LU/M	xw&tnn oTS"tP -L	ERu4xAOAǓJhM	m)*Gm$RYάSB<y1r0zÛ腻nwkRTiμ߼۷^g_ƱA!^%Ȭ5	#)4MAun2*W1G^`;&:tF1:Yin1J(Gq.4Ejfv_VUirS;NѱMz[V#h9DN3NEOT5*MQuR*7bLMXMVIXLn$%lYT҂.~*dH]*
kjmx!36gS/,=
c	퇕(}uȤfãc<uέPL;#M!J#Mxq޴¶gجg=윛~#p+*+slRRɩH`N@4B!|IS}вiOCG$$m1r^j7@V/]}24Ki,h1'n+	.=c,9Y{_$ç&jAuYs]V`4X
JP N3'?ٸbG)~[C)*1rڼ!cXNB{lz5|LjO_J#/&f<8k9477RH%dv(͆棿 v
x% UU(2a(^?P&'9*,->xz"dCd;jB&gc@rT 
x=isƒ+P·hdrU(XH-IQmbH }{+m9X==wLϳG֑ȻM'ﭗ_N=v9[Yⶱ<	bZe2GiYX{a`l?`Apib>:lX^`9|{v {-#WF8KlhnZoh	46I??{v߶	v<yY{Oie8"ҋ`e/ )Ǟ}oeD%!"}yܴ8N!׋ț-̜Iaz5;wV:yߟ/'hL5Y?k3'-A?" &3A:(xמCnn;0"k#Uc@E07;GqaG=zvD3Ix˅՟ >c硻i?fǮ(\[~LrB.Gk'6sML[Wmƫ8a.|^j/ě3׳ۄKrB{n/^fq'Ƥ>i@o0r\N,hi;NV,Lo!%|zNFw4Io퍧otЙA=M/;w_5NYߵ=9&3>S_pp4ө1}>&c?c]Dd1օn$o$VZZZC^԰ TP.A~2>t*rE<Z)Ùπ5[^_e1 u(n	a}}1h[vn@Fx>bX6mIs`<4ώ >r?JB:g7߬-j.쿖!E.{ EE/4v1_Mg	 }H\m֣O@-xz8:L O: Y~@gi B4f56/P1 ~^@64_h*o@޽|Q9鋗B߬ib稫qw4u EΨ{j	p*)+Rjr_"_P;GusVx)DAsGQBgw_CGnӀA4Cgm"ɟp_;ό`#kTg.:9O}j-оB[罓幮"Tg Yd'gNOF֜%6UD78(	1܃xNv	Wu[wi5vJ>/ucKda'΄B#K1
sRتf<WdZH'WyTo VC@<=us-[cTtAP!EKRSp>r~3f6&(r3ɶV701Rx^mT.JC~;gdBثa	в#r|_0{%,S'#ף1,"Bx`ςнE
S@mX$4*|	 vQ˺iY]!̺Ak.'b0*4B!uD5@.͟&s/ x&	*?zsP]3J߻"
$%Xu3VXMN:AD9+\57=H0rL\A͙p?M#n S=W/0Q9kf*oY7)akfJIV\ɣMn/~b8gām-(]:Jn;pK:AU]qrέ̏[;Sx	WFKsBweMi^+ƄMe fLcxOi׾}cB@޺u#nsbS)uTJx=u0 ŁZ"}Z02ۑ ]	7^_̨Ae!h6V9\F\49or]nA,GG~bUb$xTo'ȝ s1&ei٤@HWM93/m5䭤>PjPț<[p!-eDN*Dqfgĳ}CjE1um\1>0yj(`I>R\\
_?#b2
{'@y,W kn7Z޵ E aKZ'^R
s2:A0D K_$`#g~1ҵru^QC4r<H}0p<XV:s $590 @ra$p̱A#&dxT$ԛzoM,2g(,0:\~|J@hY~(B-˨bM.kZֱ0[{D8v+)AYqb3vX|c[%smǑS&%͎fa9;Y$[=|E[%#fTQx?N"e$o-Ċ#'VN,;j2 ph4$pA I6o	,b>$Fr 5fmN5_!ȴsE*홧]GCk\ɴktnQX5(:Yl6A!@IFBVJ-.ヵ;*P(x/qyYsʠ' 'H"f</-r6p{IW>U>d*D6Uٷd+	q
C6I[~!5W@{TGG87%)-I{#(Mm@Qȼ v֪]`^|D?eT;eGIuV	WH~yMxiWeS-2$YׂNIE3G,+hXE?+U-:@:1_>_	%~NѴ2+LfrY*͚lWɂ~wVFσ^~1OiM֮3X{TU=d$趹ʂ-mybʋOH;u	F/Q 	׺0-~u<,&2F8j$k
c)Pi/7Xr⍙ǈȨ~ůf47tVNRU^Pn}pƏIf>oevOxY:Xˇ^ZũE["A`-FT011E&2{89tBz><#Rjp߮Ǉd'<Iyxqo)S
gjR*kGGr U"1ߵH|j	lF+6\,vҀ3UsQTб0"+!rlLm,]aϘ
Z1H+aF.b
NP& ?Ybei
PTpޗ#bv*߽NƞRP ymD-)طrc{15[%,6)%^ޚQhGW2ֵoY'PP_?29vTǭKrp*1ywBE~Q۪n #=+-wY1ӳMh8_*Dyb8NËިW?Y ^.aD[r0'NwɂhI]#61⓲Hܾitx=Tg)oS$TWe
kȬ-%xv4wm74@Z`ASĂLaf:}|Ea0cʸ:`+oE-Q
`~ 79yH5UTleNB'H)y+	ggO]~܅dt~Nxw[˼%kmrZ*%E)buHATPXk^=]Iꀃ˫μ_)|A=@[$^ʻ۷2>ⷪ|+F!0 s:L3,p@1Zp!l^5mZmWF/ڦn˶?b)V/~#ҀjlrksƂb)6炣P?=(pAkQ~iT#C5eŎO*JJuNX`s~YT)Nq*(MQsڭ 5YAU@ q{8cL%C<0&\	~ҳsP[/4倇@W ?*c+_hrƬ@FJ.DPC^uI@@*| <};B^wpI7lrr-jֶL)z$QB)["(0'8g﹩z<j-WFwgWd/S&xJهbx^Sp,O@~9>zsy[sv'!rKII+3qhZzN
n4*JV8$*ǝtnCB^\_f&練0o#i5>XTk֎6C}#;I>{IAph@%akpFU\V!Ik'(TVL+$~l6j6wcM
uD3T6K7di4on6jUFh<@tێm}%xOrL&2Fy	y!%$ۏGr+J'46XM++7qeN8ǈt$  ,1;K9/- ٜ<ބ3_MĵTRXj/O^aNZwrDt>_鲄wzQ#=cA@Sި|,x;~|(?x9gV1L<A@Ǆm~v>EV?ZNb*;^8@֎"#af\\Hnr:7e%4]iiv	/Ju\$.4d?Cqt@hŨ1fp!!|ؾSRŷa;Pz쟅D&؀bf}cٵ|'Q?jMLM=`gl;S5lG6Ni%1S]jTj^//j3mb?hj617_7\2]Uhek{Ti&?E~&wYtBB TB*	@N16o<-74V!r҃_-]ʯ\Zvx{v+{Af7U8%;Wrܑ,QJ[[eRR(òG"ʰլu<BsȺ5k ti3Ś_Jh-QzfPAqp--L(,EZ i'/gڡ,S=V}!u55Ffm^Wút占{RdևZS^]L6db0niϻzáM|ẁBDj8!֢߉&~GêO	EC҃9-SXRwH||):\Fxg,VQG~&|Y[FF^޺{mrrEh]$Z_ۜC61pYcHj#xK>ٹ0vri;JПHοY{_7m5MJkln.ZȖ{&~(\,+ LR۫ b ~/+rcoH[b[|F[E׻"IEWvww$$`HpGpi@)D3.I-D	%y'B _ͳZcG@>&bl4
52Z_I$ǷB$\$i
Uxۜjw	.?'y[sk[kt|A'S/X/U:4wIwՃy0838>b4I;$.A],M! lu-L-]ʹ
/)M4̓US9Fj}&2FlN;
J[٢QA&J9(*ݡ^/EvE6)M뀪P*SYnCD*y2ǡK+;#+
ެԮxO\BA,/	}! y9+HҺS;RoAsAbxM}'Q2ИGI'4ܝ|="zZC:j'.ˣ0Q>6L l0L$=^sd)^3A"ek"^v/HbHћc^RH-tkE낝bEVN/c9-bB'r˖}NejʋF#ꛔ!m.e\@ltAdO'Y<ok4KKrUz [c)bLqC)Т%xG"m!}0/r [׶PePuNV%"k	,䥯94*QYdY6v:6^tH<	RC.*>aha|F0]eɋY0FZi6Z^&T=i/Wթ|ԅYo\F2@wnvMRZHgcGZHW>Ak`nU4s^DRyg]YHk$bJ;IDI*ޔkej@wsMu­D?Uopm-j-,4d%wIKdY8wjb-jzl6יhAeٶ\܆]oA't@ ԒT}󍙛д;?AV*DF^jl!zZ,WQ
m
yBGxt)i<i2H
P􎗙nq2]2ZA
rDxEg8~*rRcH&</5V:Fa'zizCJxZ''36*x;q=	JBj2#zL@U߭#}Л@G</ߺ󁭬X:zqwB\4"!bȇi92*}0L{"~PtыcÁn|wD*6"ԍGoa:aJWkm8Wz>ގ^ɎѼ%)3r7$ۀG󱸾l> l>Ga0|%\J1>qw_=wTJC)x%L~b|" <OJgb?o9uQmSsqk캹~+EjG"+d0澄aU7c yO-nyq=ؑ׈$0msa2ci ~z(\^z;Z*vʘ QmxB┆/	k8V	gH׀eFq>6]Zc:u+_Xw.n'XϹQ<Q>*e7wzIYF*-v@3]J7ⲻҝkta*(1p)vؔo_m)ZR"j<t7'~hP4|6V39䑓F/3g
26
2Lߖ.qHHCq_
SH\l}6+LN͘~@^ ~h(==.ЊL9px"{jZԪ[~NY^ֱUNi셝.!CM/ge]rI8+ea銈?ZZA5pQcS ӥ覩ݔh\HF60 --g'5H~,EМ$FHk=:G~y]Af(ֳgV s:}۟Τwut.OzitqcLxd7OLV3m*1Nߪ3rsN1yn[?]v}|!(<9Q&yn[)ݶ'ouoaKU'_]P;l2mP2M^IEsd71 fYnexyf<| 9tx.NWvjrGdD+M'3ټ#fI'OBki]nY2\զ$^d!kpXt7<|jeoeT,X.>yM2M9ʅ7ߣbf}YF isvRxZMl,)UG,)+[x%]Q$(J2\J[\vwm)@&@KԭC?RKk/EoEmgf8\.II	Z̛}͛of';:<q nwԪ,Nm,K z 7bQ Qk,j#E1+7:љ&F:/w/6!#Ou.
eV3{]P,LWW݉^ ?ZO<STSA|5'A71Fru2eyXx oT:0mÀuDU֗rAl&"j9RQ1æ L9|NfNvMꃊlyZ~(mzAZK3jt"p 7\F֬Ռfg>ػ_gh,)WUZ4˛ckbYe'czKꦮXLe~$='H,ҭ-{@@uBA}8.K*JeCD<+9Y

J	Tx/	 	yJ@9 t/PI-x P [A%^d\.՚^K,+*{٨8!盂>避IO%ld@
(WŊ*{~P?mfYxUfL>E\	GAc"iX, Add]珞zF%xj"i/4b0CR53*	7[n+Cg,Z&OƸ9-nLQ'6Es4AǶ(8%+hƵ
?=h9/PJ*]2ZqzlY}q~bOgfloH	.ZoR,u,͒M
O>Ϻ8'l[dk7U;^8C
RBߺڭC& 0lܤ]$UQ#yz=jUxc4^~1jʙF>kCݚ92DD&ռ&8w|[t~::Iv^,|Rn|34.2n"i-P\$5?E_m#:`Ϥ&[pggOG׈-03nÌaX#W-h#3:'Ӧ5y7hrd*<4dX-X57"BNې`Үb(JۧCn8$S	MefI*};H51<RXm-ٓFtB#r#CsF\U<͒۵>.C2#xo&_,SXW]i0ЭξX(ŭp)nT˦ĭMEExLќi7:"nϾ`k|h]TmN_
M	ft"nj`8XcQ_3R6unDN}Z( Qu!
XѱDpAc	}ޭi
iQo3cf_ó(1vY>ľC؅ vDKfuYͫkLp3+BlˢJN>kBQ#ʹBVPgKU9'V
|^?4
dYđf;gJ-+	%	AE)['ҙ0]1?(mD8"ڋK~U^ͨ(]-9zo Y*X߽K~!;m(byv3ѱ_U:0TFM<~ce(O4hVj)|sϾ!hglV\xbKs1r~dk36kؒZ֞5}wy"O=3D8ABch勍T4ӌ=xZTvQ.@N)CG)ڕҭ'){7H6~=x2t1J8:!.ufFۃ0|;B,9voeZƨX4xmwvľùL7KF#hp鸃 ض-
ba;)[|z|k#:ϸDqld[^!ۍU?lÅ1ĭ=WD; 7 MӂGIYbhx;ab9΀w.<I'lO96#O=&Qi}.4Nŧ
/N+'vի.zd.: Scq;-_@[~܄os6b&	P	Mә4&}=k.
|it{x2d%L,[ QU x;>d2s&'NpRWM(S_YWSP_T0{ k86K_ *Vx;<y3'?p<M9[qVGȨjHe&iOWf^)jj"5%`'ktubwo0(5Yn,-X\`Л9
Sd).PxAO

WHO-Q(HUH)HT(,HUOSHT((J-),LMQH/M,QMLOQ@(59?775/$_xr#8o&	L>P6̕?cr؍|7mVυXw%Z7MfDڼ+EEm(#i$Er8674B2I㜜5e+iH
86儬w9ܛ'0R Epx;<dWrq)h)$U*dN77ȝ?HnBpb~i k0Ux1 A=	0:Vn1
WB+]|ʕinx[]V+& :aT/x[9ӆO'L6HԯU+.-(/*IMQ/H-J,QHKSSH./.-I,I/ʝl)D#E Txg @> PRpixelmap.;A	>=	0:Vn1
WB
RO?&"MF
+]||RO?Qʕit)	|x[?8ܝ-@!-(7K3S-&_E(U0#tBiA9wuMϑsLel9'7*lr!p\LA6+qm֎m|(پ;q󩩼wo 
8 xX 37">=	0:Vn1
WBjN+]q|+ʕt^'	ŢzFhiX&2xVoEV&m$Ҥ:Z	hĎ1nC%g;7]ngfR*A႔+HzEB* Wٵ7Jy7~YFEfWF:aaF0H	ʘ+$liQpE('w%LZB5ӲP@Y6!CfpE-|{HȤ
\\pxZeLבɥ*Lcx)<h3ᗥkst>.d?AI*Rl!ޢE1U=c3!axPf,`yc[UG.trF*Ӆ\"Ma#!\x7y,IhpT/O/a"pe#e۵Th	\J) G8@Ӧ08")p?_lU <ҷ=˥+\R\3EZGrʒ2TSՠ= oU24 0+@c]SN)Bg 3=SǩE6cDoH-#MYãaX9]%=-4O:gF'';U8i-g)-ԏ6~> \gOsaq|mFGd.?%T5 g~4l&̺k5^'yqS'侩8ՙ8[+E\ǖOF?L=WDoݬd$g]o[;^U-qCr$Ə88
;cUxc{T9^;/ߋK=KQ/'qY?!x-Htd+ke5hn@>rYVԋo$O]3hY':DJ%&\"I.%SZ@f|NraLLpA`1;u.R3OT_%׈G>qDkUbuqQ}~}e{Ky;̽P.5oJmUO߀3T	%	%Ѳ~p}_σ&ywqj'>
}M~2F˘K}Pe"k	mEՉ!6eZ]F\`ntCIvlB 0GnxV]LUZ(K$%XcE
e,i؊l]EBYaΌwfmBȃAH{|њ4>41ik&>`1F_1/&savg)*n0{}|gι?|So֖e &;ŎA(tt?:OlWK$g K2&_aVhI"R5CRyI0tnGV߱}wN':b]ow*m~<f?M#?&BJKw.CoO2gvvĐ;Oܖ-'m	o)JqwX8]H%ߺyqF]WnmB:ߍ>FqK=%ET76=[
G/~R3`2tH	ܰ<zjc*y6=l}^I?/PO]xW؀SBS`樺.eerԉ>va6km:؏%e˒R&~?TvTmUE5;/HbЪjFe~jEB/J-2ud~9Z]tĀ@
*-U~&At"FN@yF^o
39	نPJkT?/jUBi8JǶE=x9%)׻hCuY>Lkᅡ9gKeEܸG'{AXoZ+.5{
ǤdӭtRWA"*JxT@Y'M|P"*JtnU6,nu M6|>@ulQf%TK]gՃ2Y>Mov/]uv6xfebT"IE#2BŊ.frE\e=.*	gmyb|]:l8;}(;iJHՂ↽"IzQrK~Y-r$`٢b0.X@DY혆CɜۜnVi7&;[9oN7z;R<K3D:q-u4gc7F94覦԰EA$<QCNytp4ΤcL<eX"&%k{G$>.\Y-fxjͪr[f	I_x{vi]fLVe@`y\Ýs 2x{vifl֏|<?3a"u eLx 5#"0;+86;yx<d[&+M~5d5]u0{⺧'>f4VҌo[M.wi\[hz')nkx~i]} 6px~.ӆHFɎ?ply	MS'{s_L8ۦٰDԘ^O,B!$#U891'3/]($3_!?mrnV	鮓W|r#뫃'ϑ[پFF@(-19U<$Cd5{arDDKRK@@xLo3B!~HA|곌P}Y cAxjvyi

y99%E:
E
9)Hk*g{x
?rl{L 
*x;D?rL~_̶dk$Wx;iS422Jsr
Jts
2}SR$6_ gnxqSٛL~79Ns_v
dL SxqS'_d:&7c>aΞWYR9yuL^5yE6MHQ]xqSˬSR3K*'m2yE6MzirxoEǕZbE(PeՒ?%n	iġəgfSR"ܐ =ĝ; p	!.@oI-$8{_>zg40oo1)pSn1hĆgu"B*QR𙦿2e}ɒWVJ7.aFlv_(RX6{n\aҾkP
řJF]?.5a?9wY?:<d[Y~-z  XNTՋOq˵k@E9FJZ8|=:k:ڱySNnTk}CՍ74,$}@2\,DEm1D}pG"%a(u|bqrEfqt0|%&ŏ1x.S	n.2ӧj
w輛m%{e@Cy,dT]·usVřM=z-{.h{!A>i/
3:}D]C4ŵm2ao7vkn2r`b~Q4ȈӲCl;Sg"riؙJ61Zŷ=>9gmoBr*9C.A&nHv]fWk+kK/ꤴ@fRgS;RMWLw!3tź%IggJNH$PZ:Z=vS&|ga t/ %{<$> >dZlSxSoEVB#VPhPyUV-ZJRS{rfwݙlJBā?	HHĩB!؎Bsgwߏ_>ߋ8u
.UU䀎|X'h򍟏>LwϽ2ݙG|1|NE<Dɣ%3MJq*KG&C\_j:^i+u$3bt΢KXbٗrmN,;RǯVj-Zux\-\`jxŁwY?81`4?w
ǻja<_FK's^~BX,Ѵ緁sRtp.,{M8[DSNϳHq<Ѹ^}ejwC+eX2}eY"H9X5hM䇛TfH-bBニm*ƩӻQsHI!1~"urYQ֧7-p3D8=	iΟ)n!J ڨHδڲxIC矪i야Dpӡ֣\n}
E0!"IH&;mt:_5nGW<<f6]nj@BQ/)2l T\kvJQ5p2?P ԛTw]"uZ*^^^s/.Ϳ䖫UbkځhoL=ktZT"mU BaB몙two]܀J{Ϯ1:4޶0ꖂa]t	ݭ@_(]8>9sXxqleK2R
2+RsRK@|̼| ?4--HO!(51E!(o
iE}'LU|]bdɢu2;uRRK2K2t򋠶gVRR+ə|0E}y_  ;'ma96U	 P8x4iCG(ՙ@ ]xʴ-ŭ</c2WROjU'gGymP̘q: !xʴ7뱓}EB]j<'7Ll_nnS& bwx[{E
PP_TYW_ZXRXZ_PXdtdV&(g(%f  Քq)hMX<Sq&*?9X;>L9z*x\2(5E$_!)Ijl.2J bnx/c7ŵ >a!xqo?#&L捔\&9tLEY&?R`,	Yѓs&sELĮR\RagrbAbrfIB~BIFB@fEjPByFfrBf1X847)($X!1''?9$5ȇ,'
7-(l^_M,u*6 WJx. ZMaacZMap
X$ZgZ^Hmx'*&f 4VxqoՎřU
i
%
99ɉ%)
E
@vIBqI~Q*PIfBAfEjNnb:Y<SwrC	Twf~SeIs~i^BT|6L_I5iM,u*6a,M֯ S~	x{i8'ܒ977sE0CE6wŉȀZOV13Ak 0vMx{i~qYԙ@!MH lxzUYM3Nv`O,JOR(ȬHQH*MKK-RH+υ&L>;y~d.ny%y
Eť9%
)V\
Z
0P퐓\9y3Pz"dTQɔ̼Diy)P3&c5//84 ?(%/5(h|BZ~QnbBJ~jB^~BqiAA~ȁyeE KJ^/BMKIMCC8RGx7GOWU)eɩ
 rSs*#;D"tOHK=&9rlc& 4=xqSˬ'2|<l3M }A		x `sw,Ox,
(@D mJSC 	k8~1~Xx-	EȤ00Invalid region.2ؼAL1UITx[[s~ϯPe^2sf6[[qICLO.aЉ}$N忟nY&\<B65=*E/e+	iN-L9'?|t89h5IOE-݃+dɓ	XiLH&c9sX9%IREr K21#!d"<!a:bNjƟ#)
)Lx} 
h*n/
R1iP9@i3iLJ"s.ђ
T邤Љ`pOBpœItT0TrRE|} x&㟒Kw&n<8Oݮ3p.|"'&a12ɊPa*Ɍ|C0-t$3E$cb%#+PPОQ҉H83@?_gcr'9$֝#RڢxHD%cδdqLJ(!͈:#sl3q
:i:c2Mttj-BE0[M,aeA\'o1I	%_ۣpTZT*K38(Ga\KW;> ޕձ38q;a>ok;W)	NL'^q%4ٚ, +w2AŹ`i|9yOSF	˚BUu>C%[X{5]PGP!Rze"wjԩXbHxD"VpGSF&BA?	:F3V;V3ͅ\:4r@ vESB(TFS6bϘhbye!Os>e%x1zf]˅M7{nA}HB*e-\	|HFP5j
CXOwֽ7Mà#c3@3*茰dNPc^"Mf,Q$KA-S,iiVTbLɔ*U:"֬M@#;ofTDYѽ-D'#)? '&
Aw$0&f^{iu;˳nmFDJ9.]^hU{&~zΎ<Ә?2On!BcWHDPŘr;muENdjgzNp9ڲğ4$|<`>Hzʔ	S g,:Vww}oP}Jf+p$,Kskmڟ'@;+/$lC*ݷdӻ`3$Zm$zd^r;	 3*@ݞ汦C<5=d]Ls~XL%W=R֍oz4BgJX7tLUHlVDbF;
FDЭ{
-kȍf8Xo"W+AѕD-`Id0@G1KP%]ٖǾwn~"Q_R8*D;n*wMNh@7ub6dl=Řʪߛg5fX[TukT*j==:{F=M>L-N=IHG?ɻ@'{l¥΋'}zyGP-9%db?(ԒY".WoGX)?N8X1X$xcYV#ygVr*حBW`~*-ǎ~{u}6[XVć;,Xd#k	ǊJ$9С[!j&J}d\π&_Ǆ>	hX;s:}mΕ3q'/̱+&ʰ"6PNl|078yT=+<tvV	's}ۇ䄘&xVKOWp+$H$c"
	/I- iYT5ԞqgIu*6Q}՗?*wƞ1)c{|;;.dm*ڥ(4r9WQ#K?G;1 [75Gˠ
#aT?׬n2腢QA0_t玫c|~9ugdFIa	#*/Bׇ|K3]+UzE7,I^`%m4Z@h}6g*3/X:fE`҂:UUi]r+'wV7|[MK=̄&PM3v؈5f߃(+)8RRAՈٵbKľGHezLA:_P4Ǽ!Ԋ1C88lׯaUuO[^(n
}\7xyy@Zer	˛w6*3xvr,kr?'JEkt+g=Cٍ6t
yD[2dN7I9UrXC`>yk%N~^fˌYjYRc֝-FA놋 \rE4Itppw'iA	ПYʲ!L6eҀ`=1DS0TU#{$dX mrDC-2Ь8M/EN/ ]F_o\؃!^ۖN':R]+pp8Nv9AO	Ͻ~7m|]$>j&5}pi%\EtZjcGq!z+{:xK?y,W\69j{>tۿbRZ:Ofcy(~U <+nJ`#QѱrfR_jd.lj'bn{[G_
txv&ԇxTcN<Ab=3[,*ѠT: fG'4y?x7)sn]kEC篅T_HHu F*]]"c'ZK8ՄUfSbRK=ۨU<)SC`q]i.ByQ+tUO199r7I`-kxn&子p_vw?d￢uk+xg~[&="ʋ͆,kO
Rxg?~Q&/&0|YhfC 	+xlda1 ;xkba3Cvfgnbzw8WJ TVxYQS8~ϯء/Iw7M&ɣrñ\Y&M;ەlp'P2[շV{Ԃ#ll^|l9va4i9'c!>ʖ6|*2םpHʦdb%XRCs!rEyAEKfҊ!aw2|iJgu].f wu5;t&<A/Pt,CP!"Ԅ-A*`3űMKTBtֆ\z'3ȵBŬ;`X
 d79]M3;É0Co4{o4ķSp1b8) a
&+s!RP"DYff=iUsD,f|&Z#EZΔ,2h|^dRR4zr1ʑ2*p24Q¶؏&Y5d5d+OPra?fj5{]ZGHDN?WM?;C`m4'W"caw:o05PHbT,D.Xyk8&&RGZ5]d4{cDq1JSLx)B$4ft"\P")f4"F`PaWUnjhكsmBFc~ȿc"eOi1xPy-bFh+]dfR`8)cN	gMG938bj,q,E}tZ?2w,*NE"sQ$Z,x$XղLȎ:=νaop\:sw\σǉ?i(bJek#?;Z&]@4Fa+!&AfIoyztq
]amr!l+L.E.a+lx?&W1)4zqre7҆o;`@2QڊqNp+aCQp;4BDC8gl:` Uu{Iw''/[hu۝۠vP	,ꌹ[[&q5v!<F֍U܂C9J(fNnq1zp.0wԲ0vɈ߂M_&Cy[IN-;i7cfGgQ\΅*d'҆#u-Uχ9QuwCR`R.-*vX.aY{Y,'@bU^y"ISi1$by}>pv?dúM;խ	ojQ<K*+/Xf>dLs;GYU_'KZ`_f|)_6C~Y/0K9lFilO[HnRѾpnЦܛ1$F'vZQl.skb^#/_u~;'pGg`bBUӔHϿp&35lxzG8tQo*JdhC<?c:+%E퍰^7.P(XV-CcnڵEâ
Q(?Dy@O^;I4b)#m(p}T%q$$}OTfoʌoi}XZ1JÙ3x&M '?П)~t#+קD5L?TϬ͞v 4۴eׂ{)WTl^zŇ=9d^aÍquGH'4 Sn1xalC	cR̓Ӹ6 ks$xlls~QdGfl/D XlExll%7cdF6W7 Zk"xll{MlƢ fx[dlyԢY%'eYl^(
 'x[`t#3fG~%esHMvc<sSS B@8܄3dJ'Grof|ېq2ͻyg1)ݜ<XqIQirp/="4MVp|[irĔҒl9ɹ\q-&* X6(x[lt#IJS4vbx]msH_1|zm xR`,$^VuH *Ʌ٪Ag'`QL~!/.H#I=qAj4cpċCa!GhOzB>0G.[lp:	)$<"C2mĄ{ǁ˩'<	=aT?)4!o|CBchQO&*WܕMQͮN;=E	_	a)e	CBBb<CD0АGqI\Dyȩ%F\i][A!FȽhfл!Y7zF˄oD3[ìW=9q`&drLҤ(`6r=$,W51i,-D'B?	1<I;"H%V̅CctC_EȆ6iqVy]Ow1s8
՚/S~}/<~p79%Xb8:]XHF#јذo?VmX@1N.,@߷j_>fj|H)Yny\[7|k?$;ZMZFkZ[YkNѭEoZwZۺZt۷7X&#Qp/>Ώz48cut;)ЂD38eفD=vJ>y<n-:ATs/2;&F!w6iO=fY\n_m&FF~4@VtKlpQsUQ
6I~bBCO6w4 rL`H!#П,w]{9YkZp}yK3{ɘ4^l#
Qf i>@GϟxaitPk֭ykMy_Y
_	Q`_C6%mG~o؋%}/x9))׭èF;VZfʕ$7E@9f6[J@"˞8̋`pM@0Lp<ԁf٦0 k40GK̖+@I4Vy6z @`IJޤ*`w+3}㦁^ĵQ|#\A!#t1@Jg>PkM @CeeYVҘwf@@w"IJd \̆ג0d^N+h0cB-Ʋb1$'bͅ@8}oH@ oE,m$E5ph(>+.u gXT*euB6e8aԹ66cD$c:z߳2q?^cH7{V_;(Ĝ"Qz	Ǚ5 TZGӁƃ@32aaKI4,liWfs5Sp~Q0x8%4Zb@SNލ޳ZOy!֮P'H	1T^kAtM
9r.2mu2yWF/,j;sqtla>ÀɄJz*\7WgK7ڭu3ԳNI%M}5Nf"'z\ld.{ȁ]VQq~1=4sD,[ؚhv]m'P,w<BVD#ˤnnuz8Be1M9LFo{Y@jZsiMqSRT$Äo7y%phC#@MkLE#scI,֠ϟg6/s.ru|>wTHK"hJKrQZ97Y0:n/2̊2U֔MHesypEp\BH8	;Cq+d.d^|EqUㄺʣוG(`1fl#A,%:[#)6uq%j2$W|ADٰsR)i!< !*<[ )xr*w~Hy\sݙPU֣=G2l߫ݎ5si:-BK(L{x9S<ȨdZ)Qv-*/REjH"ףz^9^>A{ΚSnZ$b^1K H7^<9ejY'Rl}
S,oی/Ook +q/@Ooʆ~Nxq8|}bRL7,B'{mv~pPG2[8C_>UqXQt/LbPw
mT놩ewse33UT?^#RWnӥee*.U\j\QW,(k.XvE4JeZA%Ctt״0/\|)	pxz1Ӳ T;Kڛ"]kn9v+(Up"'W"? 25
2d㔩di-A6t}g"qz
CNx3j|RGs󓺥nQp~m8Gq@=iv-;2|HcC*YsI(GJo;9^1d}+K9)+>]͎9O>72	,'^HMG9`UClqŋ&5qW>S_LuYs{s۟?KX:* %jWͺ&1zPh#t+VЭ[An[
j.˃W~sD<̣b4\Az
+?GgWh/l!e!(@ˆա7aL/pJq3}`P$Λjl,/z{({Uޏ{`=h?,Jy˖[A
+?._Lb˻lpQFӦgQ?u^Fiy|W T"(7^<"(("Eؕooq&`s"oat0a?:#Qo@y·)pW]wGP.U;#~݈o@X?7s9 5G91Lhej=(Qk!i_&cw[?bsh&xXmOJί8_ jU-
7
Iv_=If=3ㄴ936q^
lu{	3<eheTb:3p>*ق8ss$=6Oxk@'\q
GuW9p@)X2\(5GBD}"XfE*X̬J5{%CCr5i3HJ53GX,|fRG[av^mrA?JXFllR*wF%ȧh918I6JKDIQc9C9C|GW|;
;C랇ſ. ~/aC=P)(ep	LDZ>-ٔTι#(ʄj40!1ȄamEZ{{#3$FN,3lVq>+'Wr.!rkՋ{bHadI2߯饎fԆgmX,25"`U﷥͙y7-41F֐rV9S̺vUAn3cJSyYʜt	NS**L[OZWL-aoFN/<Wb@uA3aFNv׷y\v~utFW+9mv1!Qi8-cmO{xy31Y]SR[9j#e\cлg';+t<ɁWTpJ!cI)UZM<ciǌZϛgQ!ZC-^Aډ@>-9Z|^ms3±( ,	ϒ?98 `Q73pEJt~~E^i+]7( Ԣޞc.?V 4p2 ȡp@"_?vA ,-f찶FpBh#i Mlp2`Sf!u4.l%B'n9}d;;9o;D2l8Q_V;tdmjb̮;^z3$!nTm<Z!R,S=8`qZ۞s$+nqT4^Ra %یx8?ߨGڪw/-n
4N]o5śѝv'9HXv/)7njc~'2lם覇"E`p{wŷ,
KH;롐wzm_]ehΆٳۑhƲ4VPcVܦH>mm3W<&nٚ(b|C"cipӱP20n5A\vl{{[mց-őw*0",ng9$R4un~hr &[j'֚VIJ<)tyZ-7v/D::#6y[ܻ.-h+(%9u$b3I\\a(_"FV&c`bG#Q=s9¾Q.;MATyW_iq w'a` öU[*fZ^Dޠ9TIa)?z:▕Е]PIoDRU:7&'FyU'U^P.V{iѾ6>[s)Uk6,jWӨc7N	-o(-}U\/W*zgZ-xnR\*NwfnzxPĘIX $Bxм1sr)Sd%0NͬR  3*/xqWc&V=l%xo2W	  XxѮcL6g.  L2xk8a2%s'mngi V x;~Y}dfT̒}& 	1>x=o1w~EB{cBdr"(o
PU!C$5/&zNnz@A~ުW䲁~t~r
chnl@c+W.S<OF"Fe9٣ecH|D;[+dK/E=`UO.^cgM"o1U' Tix{>sŉܢFJ:2JI8&dV&gden<ΐIZ$91'$W阓X>L2 (%x)rye_~Ox&q! BjxTn8?KR`n؅I=DjI*ȿr@ؒ71>;=37;x=}$rB4+WD!Cb*Ѐ#L!vX%":>atX0zB-zPAkABIKl"@Gn
`"7;w4V>|n޹}w]@:fWC|2mTւZ2,;A4LVm@Ӟygȑڍu`):Cy^Xȓ?O`$$I=,V6}^OdjrlՒ$Bx7L_(@6($Ԯ;CX4hj)p!P*>=9=G/EQ83mx\enK1,Cn-2\\+ɝ̩byK 5vS"%JVɁm卵6=fH^N e?mouXOu[9
C%?~ٝM?vf~<.Ű
,I-9l,J~!7*ʍ0=70Wܿ;̆iFV:q(z>K&<L8C 푳L6Uk+#zǃshc`/GjlQ=3?'99"v8SjandiF[c׃rG8"K*d̸;.p,ÿuyK'!`pk	2:x[wC3V;@2hV_F {wxX]S8}ϯ'u
춝nKt@Oٖ-J2i+v@iL;[f _\٭z<[	6+#8ɒ287,hvBE+iD9/#!~w:pEd<CivqJXd)WK>%f
X
!_d	#)_257q
/&(d_\5T[ϕ^v%&YY7f{1sLXp&TJSdPHL3!KLPNx)bjIn"&`Aj*ê1Bۛ`҆d0h'ӳ>x77;oÓPơ3+4$M(shbbi,'3
3~CEAFłI#&a2ҁcyLHy<]9Rt80Ss<ʱ7,"1O)]3ә/hĂ,蒋ki0#xQ.V$!py1HGTx"ʱ{nd2|M7'7AT]D)!M*j۸]JWL_a9SRA
a?&ۜWTt+;rb}gQU2[X0i]Y^fG{
B;q.3HwnP/qvgi̭E0Kr[B&C׆/g4XZh:2m S)QnR=$)zVIWa&H6g4]*_m'(Q:VKҲZ	Υ}$Y^WM}H	
 if+Ԅ#uM_j%dfahyBf(JW:1hȅuQALX:1К]@[=㨒z>ǚؼ W+X|YusѸ!In*thѱTRs5T8/Ρ^j	;BJ7 T(6$EXFjۜ*Ж*{Wk85C*F'N*ih35wwct~40f&6CyRo}`x]N|[ hsydJhJkg?}8`ZciYn<hb}!|iڼ{5mm\GfǛD٩Ldɔt~7ǒ*]Obǉ23FzE}vNivM+(yX)86EajF'۳>mS+Uw=mbQmMMJoG[qԑfp0'x,Ű,zA'4CzMK!\*gMW!2JvZf<5u{A4̾"٦[ӂJ]hu}_mhbZ5_gFAm]vH潬)fI[[g&~!QdZi1?b>츪Dͣvb;r4#3^f"nơ0/7 /xسMk~T5/SA
}!wt?_}ݔlxW|[ 6FZ-&/mR7hx;hvl#4 zxV]oF|ׯXM[J@40- O<J<h;{<vE,;;;Ah֨ѓS:~vNFZe}~W*+3jLrkIQ-R|;t)U3z[{O_qV7T*1\T֎TE.B
7ʭ}bx\@ݒ>H!gڹ`f5(::vpd|Ї֒e@xْ*K@-Ć!2fVdu6HΝ)Z6^j(8٣Q'c<?}"qBΦxϦ5h!IT_j Sq5eDrwerZjJJ_KSҔrW- fPrKZӣA78?Y覆|e>Y%sߣRg[}2ii),0-Ezԕ[=^L	ʍ(F+륪h2F7UځM&aqԦET#!
2eMtOlk:Y(yS8AJqN)+Z.siud$PLg#h<|r)Cr;ųA'ZaZts@y*[3V4ǗLx:-N{|vo륤֡~5MrβXuX/}*SN]USJ#\7)Yi3X}~+d$L
dbv- E,+YLg1I u|0dPp^212#%HQvgY>b<K9~Ҥb#t%[?ɧp1ΙOQ6^!	ffcqQWEK0;qt8;68~Gȸq<<O۵sͣ-	NjH@,fS~^Be
4c]cl|12tj~h׺)70(D	"La38\xDH8F-ٗUA;^ʡҝfS(AvL%=.OS]	lAY=I͏ۺ9s !Ԩ{:)2<?VӭFΙ5z'!&DT΁.VQR-Vevk$Po/jgZoم@x>8hk&	_# ay<|>p`ݑ{ro540\tZX_1˥-mWآw6~sfg{p+ ,
4</yp-BADxSn@Uh&.8Tè&FA-8@kجw˨xHT3>uLS
Xf+OM.yS<hzfkC!Ie2Di1*1jTiFndTV<T{K>>^͑xH$ph~H$Mac54>ا";OIdy'>Ƣ6{y(윲,,:w^Fi(jKP1`Z(b(q8Eki]G&"Gˁ\7RWzqi)ƶLR 6QjDÿ>Ad
jN)B
Loc}1V$J>r]yX-ł68Pbk\2[bPb?Y[ sNgх-q)5\yX(o__Bn)4	3i_[2|QyzFw6h\x'XtC&fM̔bҔ|ļ?_!4--H!3/-s MlWx/1Gb6f= i(Vx-i@DA'uB-$NJH_폤nB&E4e/0og{JEg=jܢg&z5ìLM<'Uu㠑hA&RjcoPn*^DEcB*J1}`wZWzPwLHي8=x˅æwݾ-Klx[,z^xC"fS<v Xx)C|.s}8 6	3x;/@tC"SCZfNB^bIfYj|bYRiZZjQ|f^Z^P$(35M!(,3%X!4%3_!1/EWQ i,QpsOIMs2*4.ԔTsٝ7'0 J&4Bx;/<Q`C%Z&issٽ'2M"2ٞ}}f<첓ŀ|_"{?XrXb63q@l  7t#kx(#r=4yS&+; 	x(p͟(e)+9x;9;{  Gm;x;:vƔ &괽xY]o}ϯ /׎-
VV!+@KtL-qRvl_ 9Ù33NyK\Q%+#n}MW!{GXN"g9#NI3ռ!&+.
2ސpuɒI!+6xEf|R^L,kƊ!r
Jx5_HJzժK5ᮐϽYZF/ lVUD?j.5%.IdHz%sTbVT24JI>Ձ6k NL|pb?~rщ"'H|/&aD08'a1a_J' ƌP	C*Yg<5}fY0YHWx̂/J?:9zo'-`K)ؔBVySٌ<IsD!Z;%u7?sE+r=p-TRvorNLH֭^S$^W-])_p>
s+9>H$KEaWo1/܄{4+uWk+r>yę4͝i2w%CZ$GR?f_;M2ܪ2YX͞LRpC>Ml!Ȓ-{O`fYx2e&hao!EN$?ڬ.xN|PV~0qF0`͖[aV?13E?zυX_1c F~j3TL"?^4mM7si3%.Pk"`Uʔm}q7
 m?*/ f4c-ǏOOa^=&Z*zMvO$:jynBx~O@^ߴ)y|c
:e5T7>S9H5+GC/6F@2.uI0uQ	@:@C֜,'ƄynJL'YRLutȨ=>9J0|gךu;0֪!d!pD訴G:m0<[}Ҁ5LaEK(ȁ|ѣhkin]x[Bg1|y[toܼ [r14%-n`YXat*EJ*jNL]-GvaW)|l3짱	.\׋cCRp }r6g8G)w8ء[ꓮL&02bxgklMYFd7-ڻAkiJPrx#R0N8pj#9lk |\J֕/2nI4m~lHC|DNmneN4P/r3|X6G6eY]r3{=6J] .Tpf.@}KEXԤ `N	з F33	/9E7uF{Id'`&}0p]9:EQo0YT7BCqcswAH\i!Oq[D 
#kgLἑR֥xL`!A[r>-,=n4ḛJ[N9"/XjZ`iȬ RJGh5^0$Ct~%KZhf-yl\iEK`.Ͷa$l$L]qO%vp6xJv5=9j}ۮ"WT^o-jIWizںL{\;HKZ sG|nI`~^򟆿 ɯkX>xTMoENl)I@J	nlG<z\<=++GGNH!.8P=:N 0z}/|bĒȾTX9X>wSSX 
%wyzLNO
3n8R Ǆ3HqO]\ęMCjEl4eRJQ~,JHfhllB}͗x_߷Bۢ`P蜚H!,>tO]nuڝ;Ac;LRNR*lCpO/V}.Tɫn§rwOˉ]ơ+.*H0qKW,w㌣0ewO͸ogS@!S`pߔtT97ԄWO=ǦggF@G2Z0jt67B;|j4@w}xV{I>\2W#ѱT/`xI@'#Qrף/|qд)YA+^x@&,
qt$#)3)7G#A!"؂tNM:no,EV>Ho;`3
Ņ|hC$<&@M" LgӔ"-NM:͇2Q$D1nJszC0tMH4
FsM]KU>۵[#̖ৼ|lrNnnVt'<x%a+#-5DChQw)2GVYTw(wVxTjP UҭVֱju<KI:c^B׊xIڋ͹	}'|x(WqZ
m3)=ϕ$DL73:3S$ 0WK].Jjlw!j"e	F"ws0,ԉ))@JE&k81NsbO|$K6oٖC7L{O0 uWv%J>F$ܕ(1{ft)	%uD؝GNtn"D܀x?`%+-ih;T2eFN]2/}_5VeU7^,U{POT!"N1/wyv!Y2Ӷl*V8.l?Tm(=S6{fkCnot,ÔUc)2)49ՁZnRK[)})-д؎dyh2ի,N6S(f}JZOW^r0%kl}{]F;\Zܦ'	\xbSy<ɺ,\qN^7ٜ+-(Ha
S,;;g1Lj%OXHV{寚j@i.9yd[%&wI{ q{1Qxb~|MO6? H0x;DsfFB& <;MxAhAٶlnH1Ajm1 T^DRdg%:iE<id;Ez	z͛/$v)f}?k?_{>\ѱUzoa !H#!͐8l2'F&}g.ЦO}O_|!C߾Zeqn^Wsxicu
ÓB,3y-Eqmc'EG`hW?6jYp7]YӫDޥ4$#I4XhY%0$lUo[)9vW2asY+ڜZUBV"BxJF6bK|8AB0"kgό#sF@#IǒԺ')&i߀~ҎK2Ҿ;շ[ЊI;6K?)2c|ݸ+REx<5v9]F܄#s2g{x3]yg|G3/\ux;Ӫ!ir	V@Q~YfJjBbiJfBb^ZT_ I.,(ۼ5fΙ߉z cDlx[9Kc͂  Rlx;Pw#cr@ !]h$x;\#qq ~xU1KAR)XM;_Ng-}<rxu&`400/[<aרz)z2	)è>Q<GtuNDdFBF~R*Kآh@4FlVNJ
)bR6;|U{;C|TU[C_`ViU_xTMn@8H^!B/d!PR
%nbVl'qI5	+6HF\ .\q vE
Ch7yWxK?sf"B!	'czG
Z8Ogk`p}d(C E1xO`+B(D8ԶDV6ELAq"$$Q5/7r	9`f=rcCBYBޝ.k_9#|vpWY8ϼ5Vz$Z,kNK2);ieZ^޺~^yŋSD"PSB`rǌV#8}{%'"A^H|;Yzο:% {ֳrznG;拕
phI,oٍ6ߐMɖ)jSUTi;lMSOz+y:z^B*c+wS!4v9ծgZZ$^ܵ[+\CZ1Bf'mޯլaf.Kܖ$MNmkkC<^,aO {KyƮdxT~a.ҩ)
iE%z\
 P`h6C'?1DVp"o8 YoKx{Ay=&W889nxAyF991lBx*6ElC/>v g?YxSMo@J@T-UUEETQުV8.=-mJBw~g.\#bvݖS|ߛ}3i7ZmgGC;pA/.ءl\e(F<AA! 	Os{龑D,\Ac>!X{e	x@äiF"
x2ԁ}MӶ({c%nh c[_$Ljx:AD	!=ůri_yJ ՋʣRuMB6=#90L*U`W0Dx=˃
]Z!맖I\Kqc" =WЏetWBd 2Emݵə畃c׷LM B	쯶7n{`6공R?pJyt(ȃPE^yԪ<jNUM͔JڔmeC%k}U͗t{H˿i2D@{h~%c:U׬nɵViﲔ4Md4 0aزrdNqS:lRG.0sѷ4v՛!\x-i@D9rQ1ig_ݵMH#Lp^\aGV}4xW'Txք;lg1sDKQ\Qo50(IJ֩ab/h>TУmhXکӲRGyJ,~VuS6Kcx!Cf3fNɋM N]cx{+Ft.s=5ax{#zGtf)ԔDlԢ"͇5NBox9N1lHS@A"^*@!a("Cb(d<L80L`(8T SpAc:0؅DV:`"V dҪ޴h|{HT-/d, uy}=fqVcLC%A ,^ |=iw7]ے$잴":|}~pנ8?.ABMBPBKsva}M%&_@QP>[4mi6ӆap礲aQWq)5,`}Q?RPhlʒ`ғ2cMg˂qU$ר"Z3PMZϻZ6,iU&2SkYNqb)JvѾLq%baVo'&t:x}OJ@'l#TAr'ւ18$&wi׽=a7	XAoG$:ͼ7o{#'+	5I:i66xrndFw(
0cA?36a3*f^eu2Hrmd`uނwpx
.܉@0'Ѷ]<87a\.?	ʶuM#p]+u_3ںIMF}"ᤌb&cO_l!gPxn@%eB
PIPEI
qq&thꔱ-`ς`dRZ؋9|^x+uhؘBelJI4McNiB$;P'<5Rti<88cok$z2ޙe`!z,%1fCnl@ӘuFP蘾""!t̾o˱Zw.w*gqβ"}(eKpG0^rO%Ef&3$HucCЂF_67ۥki8w0	pDU@'bi[~nCBc91qIΧ-K2(4e#^eS2j*F)blIaVh<VEm.狟UDږnQsr\y8E}B
!6wʣ:둽
!x[ !K_KKAK!-3'U!/$,5>,(X/(M*LMS(/LI-VH,MWHKQ 2E%yz0ٙ%
a)`~NfRQbQY& -75%31>9(U8&G&}L~ 	59x[?wCX |b/1M>9uBwXxKRE'L`5nL6^ 0h-x]jP,
,".?PJ Nr'Ћ7{.Yo4
8ٯĘ&Is2&wuuvݾ|'WKuxXz_5*JآtU<Qj崍4b
pF8:GG^3-ؠ/\I2Iv=>%`FMB;87\	x)<KtCSCZfNB^bIfYj|bYqrQjj^|rbAIiQj|jQQ~Q^P%XqRQfjKjrNbQDTBQjNbIjXLKNfRQbQ"j^qdff'ԔD̒J
,d<'sx%TlC#d&LX&+2߬b L	d'x*UhW8'Wh[9\]&pf ]'Fxklp;di 2Mxk|&] 3D!%$Q!(hv5OАxxנ  [Ʌ,]F
5=x{ThC"rfZ^JjcgkcXs_c@HhkB&)~tn&<ĂҢg,1.-̼TC0,83?OP*,HٞWz[fIߤdԢ"l4 bQjr~QJf^ MQah&;9N,:9->SEխ=<=d^)zXLlz9xIBf`3,ƖXdC<}]CCbMw!ݲfvXd]<]]<]]YEQExV%lDl&QXd]#B\\C	1:\D8Nx $%	x{oC(ki)*)$%q3S&o`v	wrvUU020B֜\YP]HsPd@H$l> '& FxOJ\Au|3CAu5Qq#J"@ mz^\hnRxD<L]t5߯}ճ<GL2h}	YyL!lhfDJ0
E_#Ys4+g4< 0FE1EiG:X;YzUtu||YK\:M.dK5{Wۮ>mS`R(=QEfϭ]\!tQ\$K#[軖mJ2-CCd$y2+(p&VCJ·gu^-Xq27<tuew
x\mo8_A_Rub{I$p0hyHH7CJ6mˎ_Ҥ6D337ikE*d_Ä$k%*9~KOR᳄>#͘z'S%W,Q\
Ҩ,~EeJ":$Bj*2"a5x2CN4?oɤ5g2dWS(NB bﻻF5vC[LOڇ@¥R$a<vƠGfHD&D	\D@hPϕNx7Ճ^bTfcjWQȷŗy~<h9?=9h]NO'<NNv'P%^	iUR1x=襴HOްD@H̒+}kͥ~aC[c%2G*~dVM8E{$~
y}H*PKx.p5)	L1^x
RO
L`$ꞄFاLO5%)X82x`֡7MDu?1Sg^PLce&RmtӼd⮹&ͫ}ʵnB!ia5%C6#,ϭ7x;ӭ< yѺ:DNϏ/[/2ܱg	`?'ug.ri/\a-vd{zσB`\Gv,
 Xs0fDEi,Z#x%-Fȇ,NM흡L |LxyE4p&	{m^uZ><d-/RN=7j#EUF(7
7 rS:=#1|YA"#R`'5Fp=+QZSs0	JQoYI.VioƔ޽ f0@:*}e!1(ؚ a_9ƅҘkd4)&RHHX	]%'GGN,-Z+Ώ΍&i).A, Oc&1(![ǇE@p B"S@bט,N;X]iOQsBb3/E=`L&'i`eTVvkVI0RpI!MEpgdmf#}	,$c80GaܩLOĔH`a(wWLfPRɽW`ۨDJ؅k}o6/ʎ#>JHG8Vc^7:A&R\@'VB܇J+ne-gfe3%K^<$/N?%lu"j~rDa Ă	ug"zl$5E#f{3+rEu~QdJ9	gToakKQ3Z\F)̂
PbR*HP0{r31(#0u2);6UMqČ@Fg8G.QGjdnEUy^oCU6GSe'YJ졦gFFu߿یĶkx))խfv嚭쯍rA٥\i`q`z2,Kaֵj3xuAx7gBQ2:.  
}֥	-&XU-C,lo[$+I6x.z.#.ZHd	%2A6!Kfxs`\/{2ׂP҇Cq%J=5>!נEjde|T9mt+t;0p\oW#\s|vcD~v'dDeYS5޾#ݡfd냳5

0T4_mUj*{C>&(kݽ0ʢJ??̠h75*4,ϋzxƍLm0LF<`1
ڳ Ms솅Ȼ]u7#GZTwхcBEψ٫Ҽ)^_>ƇPdpGRG7=fhxNx`lLQ5}m}3mNͱ8[^	>K0x$%S=]ff=Trpp/FЭKJ#	!GAϛns`V &sH%(JI,>og"Ǜe(+o(yRdi<)yx
LqSܓNWLLf`#9* AX<+!'v'
 pxĪOs+j:FGi/ZEf-<Ek-h~V/_Y:yO>}h!pWSf`^z]ul^fbr+YP=MxC?-űG1pEJ[#7w_+\{S1ʁ/G/VY9j0qr9#z(ǯ`$<QO44sP/4q[qVəopȨrȻk7^KY[+Fg(n@VwPPmHR'R3(Olwe*EYeU̓Cp]Oh%(CClu%$Bd*2&?hh$7U
6ˠ{JƩKVL=NC1z(UIBt^y1p<6%Y*v1wZ<~s4Z M*V.IftSZU*6Q]W<袥 @aCAd1-K}6l8іTʆ;K\`||P,C_ۇUFiH3 |>u?{չzr:(ջ|0y̘ؗa΢xob7&hмU8u0AS S<mG?dwup*4?"jx{ƍA GxYMo8WKmEbVkZi@KMT$(w!A&XE3=Nmj#bU78}}jx'0T[R2Ԓ_/	|B2^©^Goi^Êl
jIJiUU0RkfgŸql"؜`j<mDpzDY*UtGNa#;ðwtu:+*%ONxRS)Y@3ŵk+' yDP=vƤl^ |FpGޏD9g(ǳ0aAo2p2ƻ/S8 ňanU%MImcC\ˊ,g)N\dAa/(qFPQbRgUv`+2?`a'GV6,S|!x]fRR5"%"W69LdOC?7IRAq"Ƅd5oNf<!z$]4iӋ̼ecúѧ9+/-!ژcƉt`kmʦqS6.C6Dl>1\ʍD HEWԽ-7]r4\hzb[XW6wDHFgY8
a>dρя`cDgA<Kc>#cLeQg ω._G-lko$ZR[81-3`Ѧ'(fu+ƨA2"gYd\#JWEYY$eh/tU5:u	[[Q(@֘Y!_w[?
fAQ4aBp#|W(.6`"@Y(4GI/8yS2BT~[6gZlANGV[w5cL0/Y0jbF,0
U0 / }׻;\NkagJ4جVjŅ]eke+K|-k9ь=l1rDA`cTK`ƞq7>5i<I y&ǥVׄ
K&f^OG-NAd'3q:Do|丰ZM)KUWvm!hq\Ǧ7>Z]"~ll67'h!A ds,3;4EXP"27.@sKm
Z.܆v;l_VM?<f5o&x=l>lX^>rX	ޞ&
>͙b*)>"@Ȋ]n+/ny΂$a?<丛C_ʋ]	cY0
X`	KgSGHs&rb(Dv1e$R
%}8bʞRe`6
w[)NUt/{_?n}ׄΘC0Dx+gx(w<yݷmYW;?zтᣀ3-{_0}i#o_4Fxqr}[bߚ@}op t=LxUPJ@e E
5XY@
XaܘI&f&j`_Pkg,,Ip{<G_[QQZ&طaͯhd@bʨlArHj$ʹ>Bp-7HBSP`J	DeHK;kB>FQLOsXkdIN/xjPwb}7ZE1}}tzj׶{ڇݚ5)D&3BlgguazuNhxWOoEWhSSH!>)EMLBwH)Bƍ
ƃ׻l 7Cկ;_7^n,J,{o7oOʿBEOz=٠Т.#@;(WzJoym0P@( 8!p B)Dq&a7TߞxZo?Mxn,pȥpUHzqɷS E vdH 7k&YMX $	߷\&DҕR<k3bYmbzMdC}=wazFyK<KN㺙M8iAk
Y,q'nfݓ,Dv/sTq1evh+Fɋ߯Ϝ&l6(1M4N]oOn~OBWgXJH"iDٞ/Ƭy:$0auNxlIva9QZiaG8cJPsBM]r1O&Kv3\*M%̫;i0SLHO9a]2UeJ|@DD"l ^!5(sX\Mc>nBMV)/xrwi|[*F`#3H/$Hk ҆j9xcz̧6\m>3K;]#Ϥ[
ɱw~sbY2Lm;9]K$Nv,Deܳu,rbjI}cniG4npɔ+ꙊzZ|O}YQYi{ #xReLJqZ.FEߋU϶RZtGB6A9V
(31ǒ"/e셝Q8gLSѥ6n2 |AC_KGSCz)Xs~&ԱJƫ5TE:p]fh!(gy.|%]_?Ƨ`xŔnAebdDPN)(07 Z!	)PVc{6aτpSTȢ@y^ 	zZZ^+ƶҰ37g23Ta{-&NwUi:UC-ND<"4.a $`U$bۼ}oůUuOnwmo8]Q'~U3Z:EM#j|[t?v_/Jɇӧ?+/\$`4h!8ͮV1-C:hGMؘa.LN@cAm˧[nsw.Ξ<؈O4n0Nm"fc|~o>̪<\QNPyݰhRjꚷ5POր@O\-MJZ3V_#l؎B+Sywڒ3 jaIdi=7_GAyO5NJ
s,<{j(#\79oPqꟷz)]T!Fn..W'4|!1phc~;~UO|
%
IxWnEVhSSHPh"?]ZIAqF@ƻ3;.( P-gfg^{XbYsΜ͙/ThR._9vO4((;(W7"w#2Eۧy\BT O#a;ԆdB~{YRUƎ|09s_Y,.cH0W䏓AN191`G_" Y pA	`fM's5"As`)״)ti?dZxZz8^LqfpD\5&!9?s!Y縪kNZsw,zB<I˒$iu36`!bNХ>x!,VS6"m4H^~|4aA1DA)Qtp}Sewytkg_+`>ZRaɒjE 8(ˉ3=^!1`aZ9Lg9vA4hF)	&3,)5D{
R依E]Ri|.OYʫN1!5m.[xuTY@;}xyď(XD{IWE4F:)x%ۻVo7B#EAz" H:SsjN^{§JIOM4!s$N-lt<mH.͉f47hw@+(B4T-8a,ڱڳ0IΪiJ2?Qpw'!AO/>}vGO'Oo^;+OWro@})"/cRJ*Wr	4,^|
d;1LAD<r0#:&H_J+}_O;"xxno,d?%]X|dY4dMK'/<гO(ui_$*SFVRRN#wK-=oCQ"\ɳK	׻ ?RfxOkQih-v!%PZP.Z#MJxt.^ZSܸ;B?[W~7Ĺ&3=s3o_ߎ=3ܒZP}y(CIF]y9Q5'^/<AGm!z$@(T;"\,<X5f^V,f`KJNowaOFJÞ/R	ݸ}F{|c25͙Y;MsyW[}^H闒Ө\ŻƼ;lK^_k%O96Sz&@Ӡ;"RdIOq~Bcol(-'V˶DYf}Co08@fmc0_XS&$4fDiWwNSUF;W&f7k\F1F1)kˎqXq&S5lhC+cj
en?;SJnCsYx{cs@gCܼ[rY7l 7xxLmfN˜qMSH X|o"x;v|u̼t|Y6NeK6h<9"sp)((L]wr%7d!XP:9WKKAK (1W!71/1=*VZRZ7QP|s*#Cqf^r!Fl`c`sN# J]x;Pbfo>b8*Gn6iW9J<~|\s@Hf_!{ 8A|xi~|3k|rbAf\ P
ax{(NrYVԢ<b8_/%5.ɽؤHӶÐ-wpd e9#Qx{'&apvfojJfOfRQbQwfќ ʇN+xn@jT@HHBrCbMl9'k7ή]E(ʍ} K/M8N6R=̷gܛ>N?n]kSJ2E=@YDAiI4` (*g͎#qύJ@d xJu^ۤuD6oS]mCDvĚYO9JyUXh&C&$9OJr(Km1NWrE,S@8R[fZIVXpyPlM"҉!ʁ9J5#ɂ7/9^^|sVN_TTՄȋď0CtkR
B$b^^I-޲"-<D1PrU`2]şܲOU.6 =*P޲KF|B9lxl #6?#?ANa7DQwDr,
!MCVTL0{Vs(E~2=wtN;]u<;y"̶_v֪K|6d\ [|u̾~9N醁1/7VqvP?KVxTA@fk&]jꖲx-FE1"i3MRf"?Aa~7!oz<Ȃ'3L{!{߼{oW 49,+=`D&ٔMlٝMuat4;;yLپ6e
L,d@Rw@dY/IJcyCp1b0ǵoyS
iTvjІlx&1"0<xLe$ݛ1Dp۽x~ѽ
b:۽NV~.5Z!onUs2u?Ȉ^~gJNu yf*QrVJxkJ@^o2ʐ'0OjLxWOwB#kٛ}8ld]]l12dpF5;b^je[MIs5M|뜞M;H6C$kUkhAH2[{d|2%a2rDrKnP0eW㼸,&rhP8i5? `xUJ@Ʊ=xBIWKcSSö$fRBo޼^yI|
;߰}O!7#AzQ)ӮjgDnGy2,p{ͳqd!zS"$䩐!qe_f9ka068gScGw	NgH)ȉ&E24`:D@K2ڼ[z%kV#Mzo폭߶vجVxr̝z@uS󁩾;\X74/̙Bx ApCgqqjob^bf\6 juxZoۺHA*j[jmhU=zECR2K6\c<y>;9"'ś/Wy}E./_'=v]:y݇0eC%$[1bԅ7|fIʣ\vKpz$6QN!a<e@d}F7!q 9g+GQb*<>-fwke񛳳zݡBN,|5=[]sh,Y}y
7 K O$J]&e
Nx)IE	C2OY!"ho hHX1ygؖ}DXӛlJ1ZMF{{boGk;%>[ &G4XEE$EJcwAp%#%!hDb<E d|fbiG/dtvttv"E$c2`Fl@C`'=XJU,͈sg! F(O\ILAэÇ ʹ	C>'48ICnbx{TV< `v
[	C2g2G`mz<
С3)s@wYU'a~,hP	@B7xz\А*!$
 4+uCdڂ(L1 mHW,, (;6zH4nZzA1M%YSHTBR|q(ьSL:<t8aŽ\]*LSe&YXkC`>ڊ)F$Sw<03<Qy ]2`a,2\ 0R4{]w=tiTp/2ׂf50{ֻ1ulEöͩItn^H?(]?sy`/q: w	:Jg*uB{Y?B̅EÈB8n);bu,bDf3~#>٪L(JVڎaB%,>?Xn\ImvudcO'77WrA]\[A_Dl%q܄Lk"%Ou(]AgD"(#$X'+$R<jTd$Q$!(t`_I2FjRHR<xU&7!_O3&{gi^^U*Nօy{{
wq	%оDx^W,Mt:;٪Gq	¤,GdwbB"JpM$BѮv0UV&bRhp"ޑ:xl7(4{tQ;R8).8B94e08=sh=~y~HG $T>[y9B7J6.v	:=|Ss☓	p-rcCx̾qć#ǞuoVDDx~~B
!j `}A6Yo`3\#TCȆi6̂,%Ȼvt|4o^7E8yGIn:j
G]d!I*c/be2ٺQ =W;w"2-O#8p)M~!8I0XӋ\vDG	IwbmWr5IU
k9 6F߱o9(D t=4dj0Ã[Qs܏./(v~JV|"_s*
\Ω+OӕѴHե8%ZzLɏ[Kp|ALoZ;**yga4.WWte(=GVbޱB-Ⱟ@YWB|1-]Cvr3Gu.ySL4?[C;WٷZ{{}=nmh>8}dٴ8=ϓt/w<_TiƬhټ<:]fp&=M5zX~xWtUrR5}Xx[Mm9ޘ{ACdWmRp &BzjcW;˾XUYQIUyQZN1IOc7^-̞~@0&kZ"e#8Hklufv iծi^Ɵ}] /bLh3kd{L1O:`yy~eq)<mR(:\~
HUN߯}54?<pV|Gun(I1	u1QV_vŽ=Yy913:%r]ւ_շ.5~RtS)/9Asq_`#{',n"Lޯ-q WWŕ#4Ot,9wJO?Rʹ͉Ȇ|DIH^rPZsh,rx~zԾIb)I͍k4"5z튔F]n`<7?7K19	#;8Aj<Hv5?x(E!s~@Y\? !6x;|}y<L\%'OS؜(%59N3 
f-xc Aa4 WwʂT.ЂR
řyɩ
<}\<]\lu6+In Ie}x~~JfļԢ͛mv.2@9 ")x;f}Cw~Yf^B@F~IzI%y
yiE%y
I%
 z\
Z@P`hsT)&({GNˡyYx͞+c*/yLq.q%
ũ)
@&9y	sd*$$Nd4%ƍd2	$=kwx7 ?qSeSt]c<BxFx*+M8;D75%3'3(;ds'' _vxQo8S WnO:$,	Pki9έ}$n[lP{cѸ8hWxxǷm	l9m#L`Օ%-W\L<3t4bbcN[̸jxcaZ\ވ\ۙιF<eo<7ϰfG?X9|'BSc<~2-da4dڈ#U ,4Am'/X}XO1FPNEL5|c\[LSԛ#"a,;6!1m\Cۡ0$L*Ɣ&QƷ`fNC9k9I2bJV3'FA2<1^QHLy oc߆v}eA+x4TK(ū٘	x倳&>s79&eČ!XJ.B4 k1,̥Uxr*I Dw</nO:L"xAhb$+4	}N;a<؋-#3ICD~&YJga)Dbpt,(EQÆaͪ	iH8Ci]r6Kg~
ֳUOtXb+$VJ*%Ev4p5}Q)<Yl	չ9W\9sBsR/eavU57;@Ž*^ df(lqxdû>ݍmts.Mur^K`1]1]WϞtEfɵ%	J)4ZyQ!'F]&y
Y#3ݷ2%AO=$@j+c3C$ 6ą8w<"G_{y\(ϧ9{~o&j,;76G-k.HV:坄 aEQ˺buYJ''7B[KӘr/tA#l..Ж oo"d]h@'3{\*rL
oCP0CvplŷP»xw!2H=޾]Ou6xfP#mBiSK|(]ٽ>mSam%W|*RHkқۋz+moyM08U?}SNrzh^	3}맫OW./KX벶n|ſCZ@9t?];4ڇqKjx[뱁[+ x[1zC>yFɌAE)Eeeb05
0A{jc真>!*<1dey%Ei$ՠ	U$$NVրJ¥K&ʩbH$OVI%RKsd/@8YG*H9ȶ,13'1)'5/9xp	N-	.,)5@YƵ(h@ТLdgDHd3sr|KKR3R<JRJJRSjbɗ x[uu|R&0qn n)Hx}J@HEЄTēDKD=!;mlz)!|A&nxo~}3wk+j<pP@B#0.UNv_WAj~^O>Sl4I"ÜWf76V>
qa);é@4f:oa5'NSu^R0q,R].#tHY\8r,?pG0Dt[|m;lB<,>P\$án=~]#cd)۫c}ंN۰'wx8㹁[e"7HpN $KK
J'ʩP) KĻsrRjb!!]x;ys"7HpN 29P瘼TE wixŹ{Sٌ&*I8d;'&V8dLW*|Y7$1%$QKA+ 8VxȽ{$DE֬NY 7mWx;=P515r9nW07>${> Eq^+Lǉw<?\[k&rj
	u:{8;L6Brco\Qt	׀tM>~YUAQ}8فU$p	?	,2	ruZrzCD*q)(r {3x;z]uB
y6+s0q bdWx;zPjdVk90y6+Of/V\RTZZSꛟĥP bT[wxN@ƕC/%?JTB"H4I!4x'
kvבԧk}:^บWnV(n~;H(@@ sw} 1nmw-c|P"93~{M	(IZIױ:lI$l^/yZ/}9+E!	C Ȱ_n|6cϧ*8(!&}uPQ5	}Bk}{ ֠::MvP#ҩC{Jj9, )Sɮd3S{flt,op̜GS2{J_ ª6!iY VkNMX8gl\utvHMm`2c,.j*fөP!Oe*hD@>'.pR"i$YO+;_gD}U?[ylMxDn?B-W, c-dx1zcGIIGjbJjQsQjbIdFAKq⒢J({js~i^	HFE1%%(59(S
	!%曚_Z
uAxfIFhQH^	Kb	TL
27-%!v'dr-)!ROuPjqA~^
MEW[f^fqT3d@(-M)0C]9H"6c!|Լ2:N:TĜl%.ZX -jtxBfW, N%x{ʻoIN?po>$ W5x[!Cf䫼ʬ
\


2I
$$%*jbj6x;(Br3&X Kx;(]j/a9)J\

\ o	vvx;(51zDnyFERRR❋RKR'7rBd2EEHR2p)09?/-3LYg^AiIpiQZb2Ip%)@KK2**KJI$#RPjqi./Y،H-A98à,13'1)'5/9(P&2`҅ M>eC-tNIJLVRP :Ux;(uPj/"y 3<x{!÷adUJ
yciJfkZZjro~JBFͻ1N,} KlCxγaf "+oYx{ͱafL\ /x{kC&B5+((eg委&(Y)()T(L^$曚Z\Y\뙗TSKQ,vFd5.E%yyi`b@fx{aciJf~Pj^JjQjg^Z	`aϼԢ҂T X5--5!yzFu.j VPPJ,*.+)O)MNMQRP24RPI75%3;2$5dsbNNRbrPM-F9HaE@׈&Ud9e ĭZ0xu{.&!ҔԼԢ"ϼ|y%EE%)`ͻ0 jvxpiL/3Nbӛ=3 
4x.u]z'pp9*q)(((Lmqer<D8&ĒTBX x.]j/x2!x.u]z'pp9*q)(((LmϱN~/6.y6qLA%`-\ @Yx1 2; 		RATE"
  }
]43xsAbC+#DEU̼	5`9ԜTo AYxԔĐ*XX .\q<%$1%%5i WG[6ׂ,,-l9X;޳-,(>Nʐ̒*XtA"\Hd)"⡡㜟WWYZY3UDRJe*JR]U	V SXl+s :'&gz$ c GKx3sDEa.ǰԢXtbBԂĢ	`99$99?/-3N
Ug^AiIpiQZb2,a$5)%AYH%EȮK,-F'$Z\B5- PO*!b܁Pꚗ
H:id[SK(IuNIJLƥȵ(CТL%.ZX _oj$xiC*#W, TxZs6>>Wwڰ]kWEiáHBM, ѴoO\;m?D],vdt42r?BgξDw	10O@m>[J 3$VY?M9AWqB#t~%CKZGJƖ&hmQDJ8!%	1}D"u/nXTZ]=ղ̉<!yt:mO)ݦ̼3wcQ9Gf/ȋA3[w(C5@Tj~ˈ 	t)n=p"ezep堾B[N9QRgSk4OQw<g.5Gq03i(JS^JK*c%:1"0
Ř	A@	ɚO{LSSuԥo $FKJ`J-#x&nHj%)[.x\`Btox*][{1r\ub`AB"a
ڹ>.MN%2Oҫ4TjXNp5Vuz!>
McJ:d<7/誐LBoo@wDmY/Țld؎^M-6XV7PYv`(+C~&\|? q-qt,+:$p|vEPLJ pϰ$usޡ5+4 >EEZ\La.dIuRoc޺k/1D"|9DT kZ6c] UTuJ̼,W;	˲Bͣ&frn+ady'ji2椨n}qmáw࿅#5ʐ&u#t٫~j}=ǹ`Se+qu:6Kqg\=Q)G֤2~FFDQ,5o!t::;cDgGZ-I3	 bRR Ov+k/NOtk돁DlI4CEp` g3Pk
AM<,El!񘀢Q <f~.7oda6?&8#o]жL0Xor3&#^m>vUC0I9#5"Y*.;dۍt
Q֩m-U 
Md/)Yo,frwg$b1lM.
@88ߐ/s/ɱekrӯ3Cxv8ѵX<q-UEp7웒ߢkj6ZZ ,'V̬,XЭA$&S{bMRY3e$թܑ_3s/S h~iD +3ݙ'@L펇=5M0-Gq̡zc&{'~?C'I~kZJx;<=1Zi /ĀgZJb'QL
dBl#ưkJeKK]y24u0Oe8G]%"砜iwf(HuCwr;:FA[F@Q]	FîZSaod]z`Jt12iVZ{t(W)2O}e`&l]TUI3יؕBUUVe[j<*U랥еMJBN9iV.\:]ͥ5T߇TEvo3LSh&wK[
SWSP4X蝾N6zjv^/}>['ՓݩIz34pbĀh2btu/ !hlik]Mܦpy`KDkLo}sG<BwOz];r{U9/_ɺx/&y@B{7ڬ2]ί&mLBjdXRdPA(p	H"3<RSI@}
ܮOs`/~t,f-kLv>DðaufEGim(	.ۏj'kպdgX;G7tXiHT:]6#Y*wjH.O>;WLkiz+K8~G2F~1zT9z,x)%ѓ86efqؠ!6?a}UtlG؁Vަ$~MjHԺ`twYg+ⷀaē.]y9L1:!~ƍnGq"܌d{=C;,;>?l/4h~F|~WvV֔rN^j,6UN)xV,ו'BInٺrKNsy.<C.k2!ӳW;d{ה=hx*OL3=K|ĚZFg'M{z%3)={5xCF]#{
|TulZƅK&*H|ޠYO6JNO~HW|I]eS|\G㤃gIX=B:xty2qt		]Q޾HLDx@-w=
hji`Ja?J#\uޒ;BT6p0h0R׻{s<SʛgUfipuت+IJ&*%T$'(-rmE/qK0o2(yظf___?)"Zx۞{]u&#ɉ\.9y%̠Bx⒢ɂzPYq$YԒRxx#)AR_Z<Y@  y'Wt%HJsSH:,V]+R3-tWv36a5IUpj^
z"IWV ɫ#ɻg ,PR Z^X^. KG*x۞CDY9(3=DAYSlF.&1t/KɎHMLI-*PLɜcde.4c3zJ:\

\\Hd&%Uj(PƲqV1=R&6VT/MtT[\_tSf~	P&w^bIfYj<AB DTXyx۞9:D}	.̔LԼ\zfPQ!hKjqIQ~dA=},H=%,39I$_,g I8夢A,/ƐB( 2Ay% Y$I!i	,/J4	Dpj^
bXpekH-8a/r "r++xJ0pX,(aCI\;OCDwUOlk+?'ăxAx`n>/}*>ۨXf}@?/twIO\F&t X"@0rO0l̕3P,99C2L4ؑ9󸊛8<bY,H_Yݕj~	z*/-oNʹ6*­< н{Ȓ$.!M4qd	:D3mUfYR_^Ϝ4t6f5&핰]N5x{
{NKjYf@,<B6ge l
CxýkDHv⒢}'32FNN⃌<yN9.e&71M=ّ9$7K9,K8sN~q@Լq FpekR +l"xǽ!eYMF !ibxqcD]h1q)O|d$'3Mct{{ یIyr2&eFsT&dVRP(/-JN-VUK2Rs3S22t&۱Hebj&3LaKK
JKS+JR3(+MȬ;y?̲eY@e5 w92xqCDY9(3=DAYSt;
, 
U-xqCDY9(3=DAYSl 8xk1Ax=IO~ǹ(5$9'35oA&C H%(UF$Y\ZZ꜑ꑘZ4qX"H]h^a`Md8줜" <ϼҒ&H<>TTUpqd	aDpj^/r e6xqcFىnV :a'3zC{}!u&:LPv	̶05,?0Cy #,xʳgD]h1q)O|d$'3Mct{{ یIyr2 =Ɏkm&ɜ|\

Eɩ

ѓeX2t

Jzz9Ee)řy`Uفbj&hNe\΢4y,(LV`bS
:|e IũP!Y47Hj& gB2
x\moF^ a#r("KJLԖ|t+r%*+ofv\R#94' E3ϼ-;`\'l#{O<+}7"Zt\X"a\ފD2f/[p`~:x/[5e2%H4}LY3_.Qc``sȐьnI~O,Խ3Ojjqb%IoV'^8JD	L{f|	|F|d,[*Ua<k2%'Jp%Y>a <yvz&QnFu?zC6fA덼AfWm2es FC0K9TjR4av,3fV$1L-E.0)]ۘu仓+%2[?s$DކPD,0qu*)Ƒ[ 
Q^Xe.oxak^e+Oi8.N>*`9K?A;"RO@-<e"FQ׋oLD"f"~HN"a:-D&YhGa&imQb#!ZQ<aq.nq<DXExJMy&f
#I
9(,L
EG[eô},dd	 HiNg_:鸓X>}Y(p
&ty5<F:2#KiP\4urBbD$,
&aAAlM
PTl6Ca>~ɜB4SU~-hrf
c3CZ?2YI{RIߐcNsS[ʩ?Ҽ*s\3`)bMl۬)rwd.zj<Н5MgBpADZ*1+O%-&rU5O#XY4	/xB
>Ӆh ktUqX!,8L;Ζ
9<  ́MfX[I,CĚ=pz8V0HE˯9jmh,JTM7*|~kn(N 
A&ֆ'یI/9'qk%U*&aeB!o ""xw߇S#me
D2Q@D1BJk~`"_FO?!0RG8{@Ba@JDX'WFZ(%0`F4]#@d}Y8	H\d$D*,E(_ 5O[tQK,,KSǁ G}iFa*|тY>^Ao)@$0.bpEt
zVq[C9lҿ0JyA@q+z@gP4hB?L[)rV+A	Lb*z0մQ9  3YF{'߱km	B+ҁQ$~H1nbՒ'|aljD1+{Ț8<Fe̢9mxHKZL0rL,q	60| l"t\x8jnw,Bz$4Ieyj2<]{۾^D$+(jC3~.n{;_ٔڅh0_B^8\xPFBHdB/%my0S%
I)OpLx`#+z&@mu$btdPxL_j+J`xnFc.ƊTQ2B3r5Ihvql2Ij,-`]G*Qs0LLΏh_ǿN裘1E/4!P% q)9me6U$	yGL	UU-Ǚ.bXHS$Q<=k6<Cm7ZgipqGY3H.k'
[9DVØB$Wk!Vו.JgUM}=DjϾZ-@Zm>M벣R(kc c[}Ra~m%G-UZcZ=q2)]r֚e͌4*_I[̛jHp_:'-ߪ!tŸ	U <[.
ӡ
Jv"@IقmE3rܚDaT'Q-h%kfa+
}"XU.v<@O~ o( qNxY7[7ò䊟O5c} [C2PٔMAeߧTn'h܂hԖ7|Vߪ؞;,4=l8aZ mzݚrP@pP$w9hÒ^7n_\ǃ^yb-kye=^8749KkY΢J|)>{1Mpٞx&pt`?8NI50fjD2S&<OSBxs,q(L?*US+R"@D`~y]FXLIV)Y(O5Å(]ɹT{k.nz`HGv$p8|l8YӳN=N_>xV[%bU	%黑堝1R ] ^*tV}U2@dX<E!PJE4{zWKo8^Ktpҟfy*m,a)a1_3zz}t[@^MF0J7G)p7lAӦb4PAq8%hj;|ooجX5
ߛN{C]Sկ.jn-"z]T*#c!J|]q<HEcXƪ136ªUZ?LҙWj|pz_E`/tw/zS"w%ҭĵ5VZD- =7 ɦ%$;
2_gፂa>^ٱx_a3ܩQ챫4$>d^[f7$9*oЌ@iE83kD;Ұ]nfHϷ>ycÇaqml[&=7LAudt S,T.I6	՘6v]$kF;?l}O{A?|x%2,,K Qo,UlU>̿$ڍzWti[\UGIwOa*ߖrvlX](>׾Q6n-̰ftlY)XJxi=I-w»U
9^ś}#@hة ]|uS5͂a+r+@m~-&YoygrIZ/^|O_YྣcpJ''ard}O"FSN"۾
g	cabڤd!΍qOY~Za;0޴6xHHd8{viW|F`p;%S[-5	|q{"VܼYZ-;>t,eU_if2B*3-NDCa}F7f%C<ȍ%8erO&؃6յ~E%UծԵ)-Wy-ltdbZDXRqiQs%[ BcbGzII>:MGЋ_b=ag07RNi`{C{C~Qvu?轷SXx@9\^s9.bd^"|3NֻYf(W`)ԃ#rT/Z=Z0jBw^U{DK>:Hބ4
1\Rl:T+ۣ#B{.W<1$xBV޴3Mladnp`|* .h쇣~< m*}^{ E	Ic)ZkِD	㏪*" oX}q7^ؐN\rP?t-rGs4{_o!!6ψi+wENǻnQ7|@vX-%44P^ڇ>	8L$`/E@W?jsUZGDx>ԭLV($DϒlLeQW9[l4/@SyTbU0auӌA]Q)_,uXo<pj＆dZlh 0;DtL)x|"n<Nk /<(s$ZDEԝWuWR(^#V:N3xk]øh53*e74  I9x[k>&`RRtTM-.NLO,">ْE}s;obiI~nbIfrbNNbA;KY'7嗤*xM`$69^h-:RR
*gd&glP>dɓ&;sL~rLLp.O3P-Ѷ.+P}dkQ, fk,f tC#;fNr7{LrW<OjysL
y%@U

WxI35	ki<ܞyPNSAK70 }1xnVxWKLWw?R>	N	`0FUTd<~#|  ]]%6UԦM."Mk6]t][uJKlP{sͻ~3>3iA#XYBG=:푄 b$H:V5xVi)Eh2%iƂj/@T
vC,$sA*[e(*?	rNp|> )XECr}0KpYWGDAZD-pwpj+6&<|_3 pRXĜoM6TSZ Djڪ 4Z.ց&&hM̉BglNI1
`MWUAZHZxVIP1i	ORRAo%UU僸 `;\xtB`CԈ	1B.#MId3S!q4?>Hs?c3cX!^w	79	n2DhTbN6NI&8rֶ&HJ;(W0ODnf&fMՙ},b#""%qNr9}Փ$H!'NKf̓4"d,E	1,ۇR%fH-FsQ1͌s\\V5'0<}i_L_^VcZQ]̈#
rKDqYCsV@N4TH46jzSU+%"P%PBcpVU |sbm#YMwNlvxھJ(N*OýSTٙ%w9*B
Bv&i]&)˫ ̀]XVV]:V$aSںҭ'p6dkR>kQ'Z*luUnvesESXVtLӪVT7!	Eta	|GG92l[	+0dD99n6sE)(tZB6XrƘFCE8
x"L;gWTT#Ng,Þ%37Yæ$gIT邫]b6Ȫμ{	W}yVkf!5M9=Wkp4[Ւ݅ovk,3ͩ	^޿9eٹw;veLkũ]Yg61Tm{4!{ab}ԭSKoٲtARaca~q:GҰ`蜕ZZt4Yvx;d`cUY`skɓIuۗ,``0$Qdd`(YLfDwt/!=sU:_M?ypuj6g%Z'	c+ 84%066ߍ]aLʩy(4t`{\$8D(2OChhbg 3;$^ƪoyU
027j/aH6њkP!PBqϮj'/Ӭ33ǚݏ]GBJbIbQqL&L"p+,N-$`|2kyE3ocTAQ֤k{Ooev0^S1sx5qCd=o͕. DZxkg6^. \`ɨefK@ V	<x8uㆧܓ'(Mᙬ&."XZWPY<9@p5d?5͋'io6x*_8	(%6Y_`Q'Flc%e+l`):M{:9&כin^ȈDͺjL4Q')n^zͳn2Nc09?$D ?(\#<9h|jL@E.e4't|Ĳ	js$b:YQw$ǍLl\
@0ZQgs H:fs͖G<l7 
W	/x:O'sY(NW`g8wO)Wl3쩦%_>ûyfc⎓/|_.Lm3}ɓ@sLTIL~`%0,95YV*Oi{+  @8<x{0O&QTl i1x{0qJ6*=V J|HPxOQ3m:hi%nqvBK&& Ę0s&)3"G ǅCK7+& 7-]ws@Xy YO/|)Âx#E.2O`Ż_=뺊mgse(~aX6"kXCD65-wK!-%niV :JU%:
7#Sªiiߋdėba4ibqB4VʺlLOr,Qn,79iRMB(XTW)Te	$eZi9ն *<%BLldc+*ԉfT>!+GV&a1v0jwS7]I'#mVtjW栭yMf&B?W"ϴkF6B2ʘXZ:'ᢰҬb8	n:+kY/α|# H$\ $Gr?pQްٚ,+wG.A&~&br/EO3m]lc8q*`3^MLاiIvKwe:nVyŴ26M6g[>Kv&uUsx7G'?V^kwt z	Tx0DJknޠԠ L(sx0|?TT'rN/"223فsFFD&í{a}!\@~~խ6|E7nHd'ن&ʖ6YGdɡr꛹$w2M>&a/HGd L!=ɜ}|͡rӘ=4AIsiK-6K(as"#Hk 9z7OW7uuZj:0AjAO~1ȣRT`IC4bpHlN0qD(hk8B3yHԘKu>0Ӟτklˬ'CO~n
wK]:Ǖ{g|@OaBb^zB&d3n9K<iAhLf0 ң x;ϸqd!XJ2u3sJ&\aYח{WY6]`hF(3X	Ę<Oo#a̿y$? ?	$rx[ŸqFnĴ{-n	x[Ÿ)x?ql>99)
E

.ٞ1L.)lad(M63ǝȖ_Zy&s&FYY͍7!8qi悒ɊJgKCTo/+
ѧ(l79@m?%	48V]o8Ewt˓
Md1sOO	R3yK (U bxbƸa	|D6[/fr$6gTEst'7l4\, 
8xuQKQe֏vVvuc/JfFnjR m'ew3ꡤ	=AQ@џAЃaA>P ͎h;sy]flJx&HSZ,E>AJX\vՉc!5/5,)\//`r8]8)nd4Fuŭn!#Vc72^^):ZYйfRsUNw񇧌)W'Qǩ8IXtl1l3&$}'̵TZ6҈UO9Ul+\R2_WOE4.+
d{?NSIX6	RoTPRqHtFiq	t2PdQ01gCߖGBRJUC͔EZ`.9-@~gN[ʝNjVæWl13;('.6-P榜Ii9*0&Al0 GI`]x1[sY%]eFF׸9,~reAmsiǃzkFN7)xif$9DkwrO+URiGI?x37{x{xqCrq#TԼ̼t;}6K12&Is[Jsr
J&JIM^ $9FW v7Px?KAŉ 'D
9AAP;AL
Zfo,nvݞGv;K[ᾊ K;	1h7{oU*p=R;@&Tp n2rYXA:AX`c 'DzpE:}MB!ur9|˱ݏx1*RQa*WVd	Elmn'`{$C@eE+D3ML6署-a.=K}&xXئM$j4
oZ֦TmJcO,SuY{z:dNU|M<jXQ3a+P-Zd]!r?.'S?F{zqT_i`r<1u8|5-J'%3pnwx;xqC- /f;xqdqcTԼ̼t}6WcdMl%M:l*]8yYd7Ⱥ  H x+ ~P#(9*,~:xof<Z=4'hQHm6a?ZHGA=141ǯ4%,39ureLȚ6l`)RКCtsT(F"uԖo^Ȃ.YG53cd;]ɆZ+{7gi_fdl+ D!3/%bV@d&/3P`ɸ*m»mFOϐ͋,1nζz
21Ǝ fsx;Zn2˙6k1eUtTHL+Q+.IKNu_N	.Ң͊\y\<)eɩ6Ý"Cv6<D$3D DA#(595,U%$Qs):,&0<GGI ]Pi3Vt71Pe,dfլunkәS:Hx[Xfg,ތX K;x[X;ve'_f|Cal" y	}`xUoEFMMHMSC&m.SBi-8)BNٝMD UH 6OpD_"!R!n*3uXv/;}ƻ[?uϓRr[y,~$(;gIԛ$@}ɍ^ۡr>ZcgM26H9ka#FםaxcOaXF6|7
h*$:/x]S"9ӹce'+2!2YI^א	F"X3L4Ӱ_6]	"W1RL֢.j$3)
Sڨ٧eCEW5| DVh:__#Bn٪lI1ьq@8[}<
Φ˥Kl!Z/]ZZ-V2d:fSb&+/{{rSvOg띖wv׷YMyَ#[ep:/VozP;2;pG}u"Rޕubë}.f +(m?"P"`_CFea7{}-%9З8:35q*rz5f-%:҇wLB%ȧ7i>I"m˴(hմH%54P(L"KQ{F@<Q:Ϻkv 'ℝ0c9#^1ͨ:l:`(0OiNQ']-T,Jh
1.]4XE`m~xabvbx7XmӢCLe{/;-}mF40w?"?8-$Z"6)E(vQ:2>XIz{ܔe"q+ӛ0ݖAi_kKcԥq*O<?#Kkb5ZùQ9`x>$  LxWzSXԘ&Ove<e=&l`	lA6֓5'wOT|]jG#\B:,&'qMb9l&pu*8g%* 9դ&	+<Xy\`	pME=Sus6O8$&s+.-JU(HUH,(LN,SH,&'U*8唦d(fof/#1ʓu9SR2SA {:cqxFNy Bp+x]}lSV<?HO.Į9y2v_%&cbe99Fv w5['	T6H_B~zXԗ'e+8(e&+$(+楦(d嗦g bԼT 785KAK!3O(,8hCJjP:-(hnqIQ~%ȚTV`-نz
 X	 
i!9EXXOb-xD`n9`'+Cqynb%/ť9%_%*&fOcٝ'K`20L#'М̦9& [X)x }\Z[out]œ  'c<_
w[^,
Port index on devicex  	0`zW1)xPOOQϒE" 2MnEOjIhT/iٸۼ}p/`hޕx0xГ'だƣ'c[	_9opǆwKpHJPǮPg>Gؼ\12ZFQƒF"]6zy_ѩz'}Y.Nn3~)zzB&Lj kQz?"BL:IG}ɥh@{NܐY,ua_~ճ\tJ \r{j(kLsfW[eeղmy2w}.j]y$:L	dz`Ch!`#a6pe`*hB"m7n;}7Z	X۪wW#=-V\UjU/
LTwIi^@x]PMkA&%KZ(BD+mc(kCIzX&3dvٍRza*^K/Wg<Շɷl2٠.Uʼ)2Wje.[Vrly.P :C{u%\̾Sn A
A=^7uxh6B}iϙYytu䇹|>8vX_vd!|mc-:ЊXx!W2&_wj%=1d3=n7fD8d$ռiշ['/8(iШUjAQWv0wSAƶŔ@lHGq-#$Х3p<> 8ږ.$F1C)H52)GEЏBFolx=/rofJfAZ|Uy\\<]}\]"\j2RR2S2RRS*J2Լ572jfg)gzήN>!!66yP=^.-Ģ\ĜOĲ&hqN^?AE#?䁠2`j'3(pn~$Y2k[5nVϼԊ-
_`hMd|@i{6>Qn9%%L&W: mex)z1ĜOĶ3fd&f($'3(NvH2Jbn- x dxyws~QfAz}[^.}}ԲTļԼ(DAmPVx_>͡<e7?5ecBE
y%y)9E+Ų&V|^Iq	N ]Irɒ #%BSK
Jj
Ks6d+9y9ᓵ'P✜*ܾYTs"#^#'( 뛙\XRZ윟SZ1PGdAi[YD& =Dw>x}MhAi|46[Ѱ	Ճ$UIBR%n؝
"A}cJD<<I񢂈=MAfay{+m埾w"|pUy<{~wܳh4RssV0	MTb//OY/\z-b-mI+JyLx*v(5l*D5tzF`/pgAnz0kb+,$A3xM-c؍.qxHT@VM4PR~&)]UP]a𡖱
ϺWuDf*(JM<̹w[|d_~;a3Q$w~ZG +1d!wq}2t0	6!Uofh=zj=vǡin28\[xy8Co{.aY})yxL1SG_95^h<Gc$I\!=jKy2ب|Twؔ8R1xZ((DAWMEdwTb]lnbp]0뚩u$/B)Z
uxDD%)؞8j{62M"MaB1?D5qDRkxkwnad7EG x~x&j-d3ɿ%6*2y:;:D*d)e&*d+楦($U*d 9y%nK |ax[ATlB~BJjYfrfWz4'o`'QxRYɯu̥xl:/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup OHMIDI
 * @{
 *
 * @brief Provides the definition of the C interface for the MIDI module.
 *
 * @since 24
 */
/**
 * @file native_midi_base.h
 *
 * @brief Declares the underlying data structure for MIDI module.
 *
 * @library libohmidi.so
 * @syscap SystemCapability.Multimedia.Audio.MIDI
 * @kit AudioKit
 * @since 24
 */
#ifndef NATIVE_MIDI_BASE_H
#define NATIVE_MIDI_BASE_H

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>


#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief MIDI status code enumeration.
 *
 * @since 24
 */
typedef enum {
    /**
     * @error Operation successful.
     *
     * @since 24
     */
    OH_MIDI_STATUS_OK = 0,

    /**
     * @error Invalid parameter (e.g., null pointer).
     *
     * @since 24
     */
    OH_MIDI_STATUS_GENERIC_INVALID_ARGUMENT = 35500001,

    /**
     * @error IPC communication failure.
     *
     * @since 24
     */
    OH_MIDI_STATUS_GENERIC_IPC_FAILURE = 35500002,

    /**
     * @error Invalid client handle.
     *
     * @since 24
     */
    OH_MIDI_STATUS_INVALID_CLIENT = 35500003,

    /**
     * @error Invalid device handle.
     *
     * @since 24
     */
    OH_MIDI_STATUS_INVALID_DEVICE_HANDLE = 35500004,

    /**
     * @error Invalid port index.
     *
     * @since 24
     */
    OH_MIDI_STATUS_INVALID_PORT = 35500005,

    /**
     * @error The send buffer is transiently full.
     * Indicates that the shared memory buffer currently lacks space.
     * Returned by non-blocking send when a message cannot fit in the buffer.
     * Retry the operation with a short delay (recommended: 10ms).
     *
     * @since 24
     */
    OH_MIDI_STATUS_WOULD_BLOCK = 35500006,

    /**
     * @error Operation can not be handled in a reasonable time.
     *
     * @since 24
     */
    OH_MIDI_STATUS_TIMEOUT = 35500007,

    /**
     * @error The client has reached the maximum number of open devices allowed.
     * To open a new device, the client must close an existing one first.
     *
     * @since 24
     */
    OH_MIDI_STATUS_TOO_MANY_OPEN_DEVICES = 35500008,

    /**
     * @error The client has reached the maximum number of open ports allowed.
     * To open a new port, the client must close an existing one first.
     *
     * @since 24
     */
    OH_MIDI_STATUS_TOO_MANY_OPEN_PORTS = 35500009,

    /**
     * @error The client has already opened this device.
     *
     * @since 24
     */
    OH_MIDI_STATUS_DEVICE_ALREADY_OPEN = 35500010,

    /**
     * @error The client has already opened this port.
     *
     * @since 24
     */
    OH_MIDI_STATUS_PORT_ALREADY_OPEN = 35500011,

    /**
     * @error The system-wide or per-application limit for MIDI clients has been reached.
     * The application should wait or release other resources before retrying.
     *
     * @since 24
     */
    OH_MIDI_STATUS_TOO_MANY_CLIENTS = 35500012,

    /**
     * @error Permission denied.
     * Returned when the application attempts to perform an operation
     * without the required permission (e.g., Bluetooth for BLE devices).
     *
     * @since 24
     */
    OH_MIDI_STATUS_PERMISSION_DENIED = 35500013,

    /**
     * @error The MIDI system service has died or disconnected.
     * The client must be destroyed and recreated.
     *
     * @since 24
     */
    OH_MIDI_STATUS_SERVICE_DIED = 35500014,

    /**
     * @error System-level errors such as insufficient memory or system service failure.
     *
     * @since 24
     */
    OH_MIDI_STATUS_SYSTEM_ERROR = 35500100
} OH_MIDIStatusCode;

/**
 * @brief Port direction enumeration.
 *
 * @since 24
 */
typedef enum {
    /**
     * @brief Input port (Device -> Host).
     *
     * @since 24
     */
    OH_MIDI_PORT_DIRECTION_INPUT = 0,

    /**
     * @brief Output port (Host -> Device).
     *
     * @since 24
     */
    OH_MIDI_PORT_DIRECTION_OUTPUT = 1
} OH_MIDIPortDirection;

/**
 * @brief MIDI transport protocol semantics.
 *
 * @note **CRITICAL**: The SDK always uses UMP (Universal MIDI Packet) format for data transfer,
 * regardless of the selected protocol. This enum defines the "Behavior" and "Semantics"
 * of the connection, not the data structure.
 *
 * @since 24
 */
typedef enum {
    /**
     * @brief Legacy MIDI 1.0 Semantics.
     * Behavior:
     * - The service expects UMP packets strictly compatible with MIDI 1.0.
     * - **MT 0x0**: Utility Messages (e.g., Timestamps).
     * - **MT 0x1**: System Real Time and System Common Messages.
     * - **MT 0x2**: MIDI 1.0 Channel Voice Messages (32-bit).
     * - **MT 0x3**: Data Messages (64-bit) used for SysEx (7-bit payload).
     * - If the target hardware is MIDI 1.0: The service converts UMP back to byte stream (F0...F7).
     * - If the target hardware is MIDI 2.0: The service sends these packets as-is (encapsulated MIDI 1.0).
     *
     * @since 24
     */
    OH_MIDI_PROTOCOL_1_0 = 1,

    /**
     * @brief MIDI 2.0 Semantics.
     * Behavior:
     * - The service expects UMP packets leveraging MIDI 2.0 features.
     * - **MT 0x4**: MIDI 2.0 Channel Voice Messages (64-bit, high resolution).
     * - **MT 0x0**: Utility Messages (Timestamps).
     * - **MT 0xD**: Flex Data Messages (128-bit, e.g., Text, Lyrics).
     * - **MT 0xF**: UMP Stream Messages (128-bit, Endpoint Discovery, Function Blocks).
     * - **MT 0x3 / MT 0x5**: Data Messages (64-bit or 128-bit).
     * @note Fallback Policy: If this protocol is requested but the hardware only supports MIDI 1.0,
     * the service will perform "Best-Effort" translation (e.g., downscaling 32-bit velocity
     * to 7-bit, converting Type 4 back to Type 2). Some data precision or message types (like Flex Data)
     * may be lost or ignored.
     *
     * @since 24
     */
    OH_MIDI_PROTOCOL_2_0 = 2
} OH_MIDIProtocol;

/**
 * @brief MIDI Device type.
 *
 * @since 24
 */
typedef enum {
    /**
     * @brief USB MIDI device.
     *
     * @since 24
     */
    OH_MIDI_DEVICE_TYPE_USB = 0,

    /**
     * @brief Bluetooth Low Energy MIDI device.
     *
     * @since 24
     */
    OH_MIDI_DEVICE_TYPE_BLE = 1
} OH_MIDIDeviceType;

/**
 * @brief Device connection state change action.
 *
 * @since 24
 */
typedef enum {
    /**
     * @brief Device connected.
     *
     * @since 24
     */
    OH_MIDI_DEVICE_CHANGE_ACTION_CONNECTED = 0,

    /**
     * @brief Device disconnected.
     *
     * @since 24
     */
    OH_MIDI_DEVICE_CHANGE_ACTION_DISCONNECTED = 1
} OH_MIDIDeviceChangeAction;

/**
 * @brief MIDI Event Structure (Universal).
 * The event data is transferred in Universal MIDI Packets (UMP) format.
 * MIDI 1.0 byte stream data should be converted to UMP format before
 * filling this structure.
 *
 * @since 24
 */
typedef struct {
    /**
     * @brief Timestamp in nanoseconds.
     * Base time obtained via clock_gettime(CLOCK_MONOTONIC, &time)
     * 0 indicates "send immediately".
     *
     * @since 24
     */
    uint64_t timestamp;

    /**
     * @brief Number of 32-bit words in the packet.
     * e.g., 1 for Type 2/4 (64-bit messages use 2 words)
     *
     * @since 24
     */
    size_t length;

    /**
     * @brief Pointer to UMP data (Must be 4-byte aligned).
     * This contains the raw UMP words (uint32_t).
     *
     * @since 24
     */
    uint32_t *data;
} OH_MIDIEvent;

/**
 * @brief Device Information.
 * Used for enumeration and display.
 *
 * @since 24
 */
typedef struct {
    /**
     * @brief Unique identifier for the MIDI device.
     *
     * @since 24
     */
    int64_t midiDeviceId;

    /**
     * @brief Type of the device (USB, BLE, etc.).
     *
     * @since 24
     */
    OH_MIDIDeviceType deviceType;

    /**
     * @brief The native protocol supported by the hardware.
     *
     * - If OH_MIDI_PROTOCOL_1_0: The device is a legacy device or currently configured as such.
     * - If OH_MIDI_PROTOCOL_2_0: The device supports MIDI 2.0 features.
     * @note Applications can use this to decide whether to enable high-resolution UI controls.
     *
     * @since 24
     */
    OH_MIDIProtocol nativeProtocol;

    /**
     * @brief Device name.
     *
     * @since 24
     */
    char deviceName[256];

    /**
     * @brief Vendor ID.
     *
     * @since 24
     */
    uint64_t vendorId;

    /**
     * @brief Product ID.
     *
     * @since 24
     */
    uint64_t productId;

    /**
     * @brief Physical address (for BLE device).
     *
     * @since 24
     */
    char deviceAddress[64];
} OH_MIDIDeviceInformation;

/**
 * @brief Port Information (detailed).
 * Used for enumeration (contains display names).
 *
 * @since 24
 */
typedef struct {
    /**
     * @brief The index of the port.
     *
     * @since 24
     */
    uint32_t portIndex;

    /**
     * @brief The ID of the device this port belongs to.
     *
     * @since 24
     */
    int64_t deviceId;

    /**
     * @brief Direction of the port (Input/Output).
     *
     * @since 24
     */
    OH_MIDIPortDirection direction;

    /**
     * @brief Name of the port.
     *
     * @since 24
     */
    char name[64];
} OH_MIDIPortInformation;

/**
 * @brief Port Descriptor.
 *
 * @since 24
 */
typedef struct {
    /**
     * @brief The unique ID of the port within the device (index).
     *
     * @since 24
     */
    uint32_t portIndex;

    /**
     * @brief The requested protocol behavior for this session.
     *
     * This field dictates how the Service translates data between the app and the hardware.
     *
     * **Compatibility Behavior:**
     *
     * 1. **Request OH_MIDI_PROTOCOL_1_0 on a 2.0 Device**: (Safe)
     * - The service creates a virtual 1.0 view.
     * - App sends UMP Type 2 (MIDI 1.0 Channel Voice).
     * - Device receives UMP Type 2.
     * - Fully compatible.
     *
     * 2. **Request OH_MIDI_PROTOCOL_2_0 on a 1.0 Device**: (Lossy)
     * - The service creates a virtual 2.0 view.
     * - App sends UMP Type 4 (MIDI 2.0 Voice).
     * - Service **down-converts** Type 4 to Type 2 (e.g., clipping velocity, dropping per-note data).
     * - **Warning**: Data precision will be lost. Advanced messages may be dropped.
     *
     * @since 24
     */
    OH_MIDIProtocol protocol;
} OH_MIDIPortDescriptor;

/**
 * @brief Declares a MIDI client.
 *
 * @since 24
 */
typedef struct OH_MIDIClientStruct OH_MIDIClient;

/**
 * @brief Declares a MIDI device.
 *
 * @since 24
 */
typedef struct OH_MIDIDeviceStruct OH_MIDIDevice;

/**
 * @brief Callback for monitoring device connection/disconnection.
 *
 * @param userData The user context pointer passed to {@link #OH_MIDIClient_Create}.
 * @param action Device change action (connected/disconnected).
 * @param deviceInfo Information of the changed device.
 *
 * @since 24
 */
typedef void (*OH_MIDICallback_OnDeviceChange)(
    void *userData, OH_MIDIDeviceChangeAction action, OH_MIDIDeviceInformation deviceInfo);

/**
 * @brief Callback for handling client-level errors.
 * Invoked when a critical error occurs in the MIDI service (e.g., service crash).
 * Applications may need to recreate the client when this occurs.
 *
 * @param userData The user context pointer passed to {@link #OH_MIDIClient_Create}.
 * @param code The error code indicating the cause.
 *
 * @since 24
 */
typedef void (*OH_MIDICallback_OnError)(void *userData, OH_MIDIStatusCode code);

/**
 * @brief Callback for receiving MIDI data (Batch Processing).
 *
 * @warning **CRITICAL: Memory Safety**
 * The events array and all data pointers within it
 * are **transient and ONLY valid during this callback**.
 * Accessing these pointers after the callback returns
 * causes **undefined behavior** (crashes, memory corruption).
 * You MUST copy any data you need to keep.
 *
 * @warning This callback is invoked on a high-priority system thread.
 * Do **not** perform blocking operations, heavy computation, or I/O.
 *
 * @param userData The user context pointer passed to {@link #OH_MIDIDevice_OpenInputPort}.
 * @param events Pointer to the array of MIDI events received.
 * @param eventCount The number of events in the array.
 *
 * @since 24
 */
typedef void (*OH_MIDIDevice_OnReceived)(void *userData, const OH_MIDIEvent *events, size_t eventCount);

/**
 * @brief Callback for the result of asynchronously opening a BLE device.
 *
 * This callback is invoked when the BLE device open attempt finishes, either successfully
 * or with a failure.
 *
 * @param userData The user context pointer passed to {@link #OH_MIDIClient_OpenBLEDevice}.
 * @param opened Indicates whether the device was successfully opened.
 *     True: Device successfully opened, device handle is valid.
 *     False: Device open failed, device handle is NULL.
 * @param device The handle of the opened device.
 *     If opened is true, the application MUST close this handle using
 * {@link #OH_MIDIClient_CloseDevice} when it is no longer needed.
 *     If opened is false, this parameter is NULL.
 * @param info The information of the opened device.
 * Note: This object is valid ONLY within the scope of this callback.
 *     If you need to persist specific attributes (e.g., ID or Name), copy them.
 *
 * @since 24
 */
typedef void (*OH_MIDIClient_OnDeviceOpened)(void *userData,
                                             bool opened,
                                             OH_MIDIDevice *device,
                                             OH_MIDIDeviceInformation info);

/**
 * @brief Client callbacks structure.
 *
 * @since 24
 */
typedef struct {
    /**
     * @brief Handler for device hotplug events.
     *
     * @since 24
     */
    OH_MIDICallback_OnDeviceChange onDeviceChange;

    /**
     * @brief Handler for critical service errors.
     *
     * @since 24
     */
    OH_MIDICallback_OnError onError;
} OH_MIDICallbacks;

#ifdef __cplusplus
}
#endif
/** @} */
#endif // NATIVE_MIDI_BASE_Hzx tt1-l%"cFxT[hUfd7{If&Y=Y]Mhfwl4k)ٙ2g&1/!`>R(T|B A
bOX(}t{s߾eÙ' ubѵϥf7R"&ef֒dWFM2MU
oI,iUF, l?4M^|HXWb|Z..JlI.Wj|}_?"IDopZW 8Z .u_1@Axȓ5+j_|'p'4	7CcP|"}8Q(~{E8ٻQDowF&E>> w~/˟kkBɳu6ns쩧=95<q{]_/R\yW^IW4J$śaQ"Z&6Șd*KE+gK:-pn{;q{,&^~zIgo4 DlI2-	_?Ro::*㝗ݢXCMU_'͑9Y]Elѹ	0s8>Re1ZT燣Cd_u'uJbۺ4ݰYX.n2us[{18<BQ[]UeAmzj-f2eak 'iyRxD%552A|6%MUD6$3!ڿL6&?Եmhwуk`87vfE;?;^Qhy{Al	jYs0~e\G_M9Wn'7Vx}RoHaέg6n:IsaԪ뺽{o*HD|>EE$ߒ>F!(oݻU`}xy~yx{$m6Vw>og!h=MŘ-nz"c`oU{y{=kb#4rP>UC{tnfxyȽ0,{t=&쁋|/Q\caYkF\ 
7%!>FS䙶'F/0<eޭLY"=&g`R*VfbʹWR		'K-#Ip&ꊯ
!,fX1A߼*6UXmM1ΙGp.`ƊbQÓ0
:$UQTkJ_9u<)Jkzwe
q|*-H+J&Sڤ?b5"i,*jyrhp?J*𩣍+\<6d18STN$aBFsr4Ny%9W	NTi23SvWo^L5ZLU{,QJ{L.Ij&gVJ~<qx\d3sIFf}Cś?
8)v TVA(PZ\SX\Q_ZS_㪐Z:	nTT1yT<X49984jVj/BIQiD%\.M]YM'7ar/N+oV5¥_P Q䏺'f ^^Ix\rdR)ʂt7`t]@",5'?9RG!( 3/]! Ho? %x\x2˙73W0Nh8\l_
o!hY_% $#\):YE&;JmTZAu+Za9ə%:
)Ey
E~	(d*fd*$d Иc$Z
`|F'uA-3|=]<'m|OόC=hDd)}Ɏ,\
Z%6K3T/1lKl1fijLv<Xݿ 5u^wF.T3650Nf>dy; \3	0K,ag 2'qxPxX.0m29^ή0ٝ]uvs0_C}q _!h:9Mf9&1&NrsN>!;d@.@<_r-MVgU c	
|}#xU'oqëUë8 T|Nf?Ư<ZR_vcb0?J>*$09L(eK)O,!q/qͪA0n%V&uLHCs]0-SV-?YD)Do.Vr`PGsU?9
R&Pi	V:\(#0lu|=]<'՜ނ});yy%))7NddV,8DKLh HsNfj^IsQjbIj/sfG$UB&KڂYn#L3M}'sـynf@f ?~axPrhC4쪓߰'M>9M''l~8$7,\&kpN?%%F(Oy2ϊɻu'ɝarod^L|&?䕝e>nRk&XW 1mxPdf惼	82o+`Rdd /&x{Rx:<E%
yy雫^0E-772e F2	2xY<x cdQIWrds	w޼Fhdoqe"&+N9AQȱ@!1/E$#U#(<q ~_LY&wki7|:yy%).t'2n^W:Y$d$[ƴWL2&;zO1|tZ3f Fu5Gx;QhfyLE6K( `3;x\rdf}ey%ꓥ';˳r)hMNЗ\ n:xXrdr-'|m<P?7r8OK0E=dL'*2:m^ iJ,.%9)T?OoE7q==Of^.ZF-l[,b e.|x;Qrd2˙73P(HULTHL+h8y}:uLe&lާ ɞL#yx\)cg&^Ԣ<3=d~0UAr139'鵬Ps [t<{Lpo8'g=XR`obPvyoC9'_f__
W
e)W*M.J0T)_U:x&	EBigV2n)God`8)O&n8yPYoly
Փe&ϖdTM: YL`@!?e&L(;9B~'Ҁr'<I1}3;##>RnDeO&s ?akT5O.QN{rzXPrs3P2(0E8;t`ε_ϝƙ̯Ƕp.#3`,y&oҢ&Y @'ExV]oTִ޲u[6KӭtivM6 --K2׭4dIkة}(0.tlw !  +$·I;^>_׿wG.|u@iaǔz74귡OM8o9M;0!xGo[)	hC76 6lCRy~BT&TXcjeO[H
@qEFvc8c4ujEru$صP1i},.^4 xk8vG`]91<G
c^/oLbޔk+JuUw:GT"dN<5rZ,:0l6S0[Ǌ^*IUdUTU"Uɪ,Vtq*UEŪ"״~0zgwQޅTM29ԨZ/c1/nx<[LK!	8.J 1jum7S&hM37CԔkldi4.8VN@ăiZcUdVK!yP J!2R1v?NI1d\6]X_
KPZ]WujXziJ*C7l"7fwD%: 5p|~;;5j*%qW-k[0Uv<WruN"^^	47gp	_SF^09@ܢLPQ9{^A
|tM%M1LtkNdes=`BYrBɟğBjnTQvFFj5l!Ζez	X?+d(,T}L[/r&!Z:.ARZİLY9g":5<KN@`jY<xt6CE6fD1ڴ992	]zX#wHDo:4&`]v4?Ӆ3G҉/L񔭹!:>/f@e\H1-Թ$&A&'NFxoMOR3k0EƋŗ:qIgGCu	4ob'{966<ئCJe"8:P\@l${+pbICJ Dd>@`'їpvLG>Paeie{=6]lu&*t6 oOLN<K9|%2-
tj噥bȅl׺+dQa@dQ ͍9H|w8~v%/>x}>DPi[mF8)7A $saU>[:G&Q8Ch-o1^Pxq-c{Gd&y -
"x&}z2ziW`ZLWgV z;#Q |e4ْ'DbL1x/|=`:@(?/5(?HVApB~V&c+]" M=8L,x]MlU؉?;4Ni&uiBHqJciRhinv#]g-ܐh+@RZ$ā
8HH*Ua/3ofߺv߿:Z'ܗUu/yҖKw҉w2Mͨ^}ٲd54<3ǅe$fx_'ּǉy_&1޻lsV4j``3aP|K']xՋR	C'N>YN=۴Vpcy-;SRn.3W,,U88\U~ڹAGTp+ۑj+FW@W<Upgֿ9tWirr
/JR8J>
G|v6[͜˦337Ne~K/9?76Q#P:~#r6<NwvS*(1Y׫TʶW5SG^&#=瘩ˮO`rY_5jי)xY8˃mx.Ǳ;${1/Gjφ_mKXe8i1|-Fb^Cqleģn|<}26rVőek\csiWd0v
4-9ӄD0gRCNc?%K1i	rnQ';
7Tf lլ8 aM5ܩ@ꢼuЫJf[j˪ljVLt0VnHV	Ьr^ajAI#'n\m';@r>d9"m2rx_ֳxx[ޓa?\
 ?GҚl5!--5Jj䐤 )ooGE)%
y
i
%k'ce/M%ÍE,5/%(:9W^P$H4/4U!3%5$3-3h|9+E :C0xY ec=	g	21F3SERVICE_DIED1$&x{0bl_7[ J#x{:|1f<k)h(d$+$䤖(zx:{jn`|Jv Tw_ ix}=KAbK$V~c(Ve,
mm.mޙ}f?:oQF@)PD(DXTq+)Ǒٻ)W駻Ѱy!.Lurҳ{æTwc+7`+q%!;bFנԨ;.'eĠ0Ml:=:0@dL3Y7 ]-stb.>1wk|L9!.8E?rp`O27~hg]P-SHsokxYw,B.`B#:.<.C	~bɍ	j6f9YX<IޗGkQd^ ʠ)xuQMkAƚ~BdCBTkHW=zHM7$<[vpI uNAz(=z/(x̆Vٙ9q}~Ϳruua-kFУ٨ZȃY`LKA!=B|F̜P"Dow*SN_VVn~8]w:ڭfkW8G|d!ϡü7HPѢ1Ҩ®X$#QO'CN0/3-^ZJ  ˁQqOPžL<~1hE^ZW.61➗N2K'Ct$Cz"$ͬ=\E&J\Q_`U} 8a.
Ku|q3NF5_iR-LgէUt]}ڵIxyNԲ78a̿.aήd&roy73%SP@! 19;dr^=^.|7qr#'	JM/ YIdb q$o@xyBI&3͋%C8 :dlZx켡k[..q &SqxuTAoEch+q5%Qv7!4 *V8RBE+k익GglUJ"O 	T"
pPJH!ĕ7MVy{W/ƢJZ}EsD4v-:ǔp%>e10+|W9qfaȝѶtdzV67fuSǶ6t8[.ܞh1+Mu$`3zE;r{S%^3JEP*-E8 sr
P1"f3 b=K;MRqOm"33~?
raon9^0Md)M'Nyc$~u
ˎRS"n"s=SX3۰AE0r).2*ސϳ3&bK(#Qh/bXEm@LB%40cf	Z>=zB⥡CW
;u-#ݩ><ûT#}~.Ksy|W.CtUy*Rdť@ox/1ֳcƅy"Q;>:ҿVp LZ);:=1OSAf~w<;zcrQFrNzȁ?OJ>	xX2ApxD]XbI%h+-^fs}ݼFJr?xy--	XjJ9c75s}	ȜN~¬|\|CN0^{u,BsK6ެܑok75&8?exq2Ǹ3I'&W*fd*(8U*&N.ۼ/q;l|N.eɓM b6aSNijI~~I+:c.1ڎdBFbBRjjBr~^^jrIjFbIIbrFj	á7%I{J*vͬFf3$+(-HKI-%W ]Sxq|)6̲Ԕ͎E y	xxq97sfJd+dy1707+w'ӭ|tش &"l^xxa	E "m`xhjv̔܂Ʌ|X&'F\R2S=SYNN`\Ɩ
Ճ4*0LpY`:B Ӧ\`zWㆨɭ0yJ0
{5& mT~ɧy&AR73M> 8ܠҜc7W0N+\<YPWrAEO(yGR/JN(-N-rI,Iܜ/u	 ]iJxhj6f̔ͻ%Adgxhj;&FfdN,JLz$=X#"D _}rd#6= /-H+M~ǖfɋ`9`!PV,'u3ʲ
1yW>Y;
˂@G:ȣ2NUE@d	p^|`sE'+YBGUuUIɟҀ,F	] #9@P.T漐_Blp
TBx0|m HX`P(kh
Ԝ 1s KOR|B0,8H]<`Jhmc4ެ'JKm27J3M>- 4`x[j5j6ͻX]R2S=SR6s0s!6gHX3$畤V()8@F١b1 $Yxn5jCRKN(-N-rI,I*u	 xXnF}WPM	[JDȡ0ew]fm 5"wgraGp
=Q%/4^b+{ -J
S%W'mA(N̂V1,
RH6`esV+ڊu㶶!frF5l!0MǙB]Z::r]8{7]9*gk`%9	l.ia^Iy1o^1+-9c|e&LZ1)^SE7zLpDn2ۀ1>D@nrMtI^s['Z1a.Q(\*r05.|5{5uOmYj1*	d#(Ҙ:Lb&9f0➧oW(?X!bIh0NJ&hcͫJX	Ҹf<zVٝrF/7p-ڋ[O!;͙.>fLś(<gU`Di2ї.~ַZ?;zyMyg5e<GJg,^<n(DFț7~LUz?#oF1Lcr&RNgBχ7yZ`̨hl%"1k[Dv2ɖ%+cwMGd&sqy̿#|1)vmM/L>zHsKN/=z]qJtzO"PJصߦZKe/_|P
{"2$!nCQy岌񼒖"W3Vꇐ0\(s%Ėkw3DRDniS{r/xJz,Ԏ,[MLH^{4nG#ꗮJɨsEqiqj "D	n+Lo>ft^(>co=pTEb殙oD$}C4}&-hP~#p'n%Q3rk}ƻ
1}Z+(+{6=u9'g9w|86ǣp0SJYU-^͌xp˩|K2f?d̴Wm;|){Ʈ VڢOpkҶ~BvM uq˜,+a(9,3Uy/GiNƮLI-YYGRx3'͵3{q)&HO*jE$6tcYbnѣLbaIѕd1;$6ZoEʻ|_*c˱;$\6|ygZQ,Ԍɔi>Ӛq̶b4x=\a4 )KOBXU,$<ec`a=%d~)YYrPn7>:nIsj0GuWbNjS/arS|含'1umxxܾ_v- k8l1F;xSkQfjm*)x8A,(jЃķɾuK(ڻ,'/ W/޼Ay6P;;}}3t40z-)eۻ^(AQr{͚xC1TVW,x,DFQPpGS}ĬM8LAoa <T~͔uu=v2ԎTq }^ݴ+!96=pJ4RvD\De䡇0x5>֮7v#cXm xTlBGdSFV/1b E'6\f@ElYwFyD[' sO>,Q(Ԃ@J#)dJ-حz1zqa{4Rިx4YЯx~OMެ5KZ}*H܌.mV3FXS>)ZxEp}dgS{;rĨ D%TYHVۈZߌ{"-MOm
wiאtμs){*tӥuwzQe6Gb.Nbz&kt1x~of5x[:WuA&ɫu&`rclμηbh)#*e+Q/e
MaLܼ(߆	*.(4	 x[Xu3fspF D@6p7 E0AD&
M Os.Mx[z]y*_@hHcckP~>K7pG1cʵn^8HdAI QA@xk1Ǒ݂+K҃a`w̴X*ٙ7;IdE[_"x1wQVs{%ߗO^wkE
@0/2T1kN{O'[}u^hT/YMua>F	*E`"(緺]T1r7v{bJ 3ڭVeA$*
+$Ơ8$(1$fhfUaTD䅈ĩ2# ذLD .DK(D]Y:{N]'^@OKx6E0 n
9'F7<,A)D#.Q*+Ov}ɳY,2: \YjqE68H3Kf5l5!=ZZїK{$p^99+0a
}fS -DxAuC!t}]}"k22JRsrSs*srK23s&m^U3/84 ?($?1lBZ~QnbBfBi^qiAA~QId>2,'4YL  E\>x|@uC!n~


9y
aAA~񾮾A:
)y%

i9E
y@TZ_TX7YPd̓CCB|Cj2rK2JK
JRSE7f,&x QSx[-Zx3dsoXNO xoex۠Iu-?f[bf *tx;Nu9E's1+dM/ͦ:fKn#|o0 v}x)2dߋA'f|,oA sxR jYT\WRRddhW
wMLOuOK-J,/w.JM,IUա%n.E4-$9í©2$3F& bih xkanah1ًQ}	hfY 
4(xka<7$1%$ѵ(1yW Ȳ0yTxԒdiFwEjsJsR@̞( 2kPxy F&PK0C$Q H~xoo6S7IIiúl5?$'+2QH*PH9m[̀-H::S˦S8Opղr=ϑLM)=hE
!hXNܢ\
8'mNP4j\ÆWcceT	*f8>\F4tyPc֓>LhΓ/X
\QXC@9[fv R!37\#rcvLMSpm_@'<y )dIl(Z,S8Q"b>h1Wp'#@RClɭO/A<@I7ϩ5QD(=*AANT`aTU_?O(,lnR_@ŌTkq7J57vxenIHn3`%k2].irZ*w0.tH:mּfmeWy3MJͭ|К,wHYi=l+%Z^`^9Gng0^wCsy>qkTGXb|=8fiId7`ه8w:itf1.2q.fW#J)j_)0wGg,oV y!|(fE^ؐ$=iS4EFRg޽;6ը{$v:^$آMo/}B`M	,YPKx^{_k_|aicFzo*b<!^t־tz_<dWt:_m~|2y}6`AFֈFţy}:xYko_1P$"%nEQa%:"!Q'bEҊwfHrX*"Js<9i	t|ree9
zV[0QZMjdEIv%E?՗\ImTiSd$bif0m(KB[P)YJ8ZSYa+
l.CO݆ ,66Ymۙ^vⲩ;tiBi$<߀T(5k4fzU&[صВDX}Y6@D
Mg
޴	;So"#מ|v&g{G=#|:g.Qq\HMYzp*dr
Z,R2:EFK(C^50"3J_=Eu	+^D͖:+rpҊHX~Z6sVr:U4\zT DU솑eLB<*0`1V&mJG(??1*nk(sW)BȀm%2-Y;ʍHX͵t).m=!@/`8yNp9p>|"9w;t$Pv~EĢ|qIJm{f@ܢ͝VJ0̃\g|꓌M~y\ob6sL#hJrCa)-EVYV1,-qٹɹ2['Phpw >¯dͳb `qZ-:dXoL|ooi;La?iquH+|9abx/PKH X?\jP=%hV8џIK튀lBYK!dz333T~ 莇A_6f.j=r mo.FB
_'*5y%&-9*@jejKKw4g{	L+ɛ{g^

WEZV¿Gi`-	쇋rzVA3řI0˿M+z]z%4Kh-4K4@u Iǋ_Zw]E<:HEt%*>2+"$n5cӣ|f#mm7+C֒T]Lc,O3q/n	;<Asa'}Q$"C_ޭ$dXֱ\܂}s2>9ZEXq_{=~Mld'>2b[j[ݕ@)&{]OnIS$i>UzC|A?4aAyr9sՄexblEjon(	8q,Е!MzR|BC/5^ę8Pa Y+iMk?,]k>+P{,[Wiq,='tC"tK/ydkjsG~	Y^tUh}ٹw\
7s6Mtru}ݐ⸼*p ]guKܧ~i&#+l^Xz//]]ˑ<&b/#jBgIY9}+WOra̽بRtP53g>I뷴BV2EiF$s\V7&#09G9k<3D3.۟=Ξohtx#(7xAK@i^RzRQ`"
muP{EGLțm/Wx?ŃEу0o޼{;?uh9		paH7>͙g6B"͡:Od]ۯzUsT,z)\Z庮gNϯދ,i|Yn냁Y0;[l>[r1"ו';M/GʔvQ@@!"Sd₧Hv9F%v)UiGe?Z.l#.\, ß
e.)PZE&*-44ld|0#rw+x&lcnMOͭo37H[NTFFfz9k >VW#X'l=|cX;,WNWxVIoG 0&5xPDt6&[(8bAqꙂI-P1cιBEk"ErA^U=^3,}7}o~1o>pqB
"gRLIВF\rVDh	~ bzDVZX]Tx
b9:T6^X; (?g~3*'{IF=sHIҤ+S @|ZC1 תtpy ?[XPg@w,x,|uA/i$"_MAT*<z}h&#k$K]p×xCldYD; w*e<1B:tx5%m^0<L'	t8\/^N9HMZ\}{]l3M' kMhs> (%$XrV[$Mچ4O}>YŤg{NJ#FHIfVSfj[cOė,
CF<i~>To˗dV;x?5hLO4*QKD0TJۤ,B2"
8wJZ)tڢ(R£BqBZ+b!A$4epuVqV\_Y=Rx 8Z)ģqa{s<"I;	0XڙcF!FN7rWbyAŁ@:M]~pDAMoI(t]ZMY'SM^vjʯ	W3-Anoe~|tJM߆OZ
p RWy"GkK'g1NґfZi	'\d)ͳ2V_x;nwncdM݌)ʄ12%lb 	YFx;nt"3f%f&FFɪ,'k^.Nceɱon@9 Y,'_<fL>7g+T8(k#T0UpPp&{_ldfWb&PPPMR\#%yʓo BQ$x[bt"3f%f&F 2HM~(n0=~(>f(0
(k^(54Zĳemam~/N]p&(01fOn634wC	0[jT TT%x&qw:_s}VXd #x=ks8+p1SQlym$٩֔!aǻq? (Yv<ɤ*qL@_h4/;ODG쇫Ȼ\$s՛Թ8WL{]q{<	b4pe$3MW(@{%Oի.nT,Hc	}x{Lb.W0,hI^$|@6?N׋$Y}z!`ϟ/q cS/^g ͜ wE	2.	K+p\;n\/N""Mr cN b0~*ƃq;8Mh;c1`2owI|tl8* bR2R@R3o`je\Jq^(^@񽥗8	=*zeIxJO}FF
ǿ\D(\ F
G쳘.<Knczi41M	iw{n\{X_ %tV"do;XW| v̂Ơ΀RW='p0AC:q,3^S%."'"\x<'?xs\MAozzMG7 yhrV0X0SWǉ{^GOESx/
xozg;prLY s;=ipR )β_6->V~'<xT2pw1X	5%cb2O|7"Hm!'7+pN}~|F6ZKP K EO\6	iJQScii@MՏK ;Jz!Fd5hXҕ$JCS+'r] 9bCjh	{VeH&)Ut÷YAbg6U
ҘH\с4p+/ezFP:_eDZIǴ@j'%B Bko&D.ǋ(M,I_ђJq!.7+h$N1@[TWms_l
hOh8`q3gÏ鿺dORku0\@Ņ-`c
fQ"Ng \<OJ h$]{ʘDBЃh@"0)T}?b{ԃ"g񎒋C {ݼ},xKT#gII΃8e#>C1-KX&O&ltDV3D8p +[nTUzL/3oy0?MnJB;Ocjo089j	vV,CgITS:+؂Q$T8LE>5T(Fۏ}&X8k 2Yq^[~]qX"ρb?*>ڬ0;cgK^+byο%mY-GwbÃ&~zf
ƓK/D!h9,w`8杧f,V'$Ħ֊kGFqT!hXՀ/VcsB`x#2"dk.E,
Ԍ׌2~'Q5(1X,i$WfCmL\yQ,"K"EH3vr$dfZ`9@]UZ3j
մR8Ƚ&V[J(T{K]6u1h$c'g]WqWm}s8؊O:E'Nv+|bö|\X];ldY^<S=RDd;jUa-UP8u{Dd(on5nPu>b{*5Y ɺ}n#{Pvыo,0I_:G9ov,PEu(#A.&-3 9lh|цral.#
jrv3eM':ncjR9o-ċ3fpN~1.:aS[zHIX:ͪwIG9]Zx]p\qʐΡ+6_;aی.`(!>)y]c̽m[TٿjՃ:06)WVq|v	V9h!Ps)@hFanCX)^
Ʌ"bHL]~&tPotgB]¶bK=Q ۵]%[7S*ʄ&xP 3&E("⠕ӽG^?r++ls_ 9HyGNsS㹍@0{ (rn6T6	UKOr.J9 O_yu+sU/E"dVRޖ)q=P9t]zlrr7yrN6@jEZ|A }E55\f"sj6!3C~b!wg'r2Zgeܝpr,aepcTM(gI89I#ء욳jg4溆f;B4%`\{n;K#]VشEPԈ>Ma&HX;iuc3a9sn(H~-CCn&ڠ~!QEj[>xsk^?JGT8h[uqɰq^nHНHqjlhTM.y-W(CϝG(Z,K&8-;PtHI/jɫ	Ke[}f;6A1#SȈ~[ھ8 FԠU9tVn.4Yy'mdjH.oOHb0ܹ>s&#a-"Q^hiHz4-C δؽ5|:%XK`9HXtFlOQe	7]B}^gƊbE'<f#$96u}Vځmw78tW,}*FQΒ1iON:н 3snHO
JT$WnF	/p8|:O&ޤ?'{Jăt3?<i0q]M=]`/&=tPaL􆫴xz%Ogx2n#Sf_y3ypV#Fӊ44L\9t(nKNN78n/>)wocsK[yanQsT6M0q|ᦑxuO~Q3\]6/jmBk<AzVSPWFijA<_fㄔVM'CSH\ϝplӑӎBh,<l$=jq4%QJ\ȸ'f觚
ۺ0u>A|ʝhƬY=UMGy;cy2;VG<#\g$7R<]3
G6Qǣ>5]`#uSg&ZsL~WeDm>:n[yR:zO"'l Q9ey⸮>Mx
6ȕ<L4v5}z1挥^ 5X ɤmӤ)!G++UnUp:_RO#%Yn@I`좊Z^J*;zP31	Lw֟CB6I2.	2Xxm+WQ޾ &ox혮IVxycȮqWe{B@"+zf^{SnQtMH`dzɳN8acwT75Ɲ\^g)3_Rj0}R
qu&ypMxx-L҄olh(qX"ӺyUy v]HcIQi+XheoUА|ʜ`^x7D'xftW_)BG8hկev*Tӥ)P얼X ^ΦJWmS1"<-Ǝ:bZyk<W%G=Go`;3Vj)W2#)׮\%t>f܄~bM*N
o@ԕfjU	eUMzL)Z9p_ ՑSZhώ`Е*AK}cVj1٧Lj+hʪ|A_ӴE^Br7Gex`+=G-c<ΎB;c0+T"}Q_IsR{5J&*|[vM,騯Opy%m#3+m!"֞9_AcƖZ\(It%mƭ&0{2vʭ'\d-5ܚ{TŪ wunvh5\˦P\3<GOz>dQŬ݅N=$&XV~F|ߟ0xmc¿es3VaudTALds+FչEbʹdlͫo2J}
;N䶖*sJ7:s	cM$kciEYV,sMx{?L݀m(lQ(tA}j~LhClxjpϐ^̔PZX6ŸvNɨ;{g~b>qÆp$R1kfxʏxu	=@	hԁ=9gQ^vt].^`Ewb+o%al5"hڮ5~E8R"\/o7zBOvŵK[T>5NǞF,ExI谂p!J#~lM*7*yS#E#5ݒHEv:Qܥ1m'UbܡIarJv.r[(^4hVT&V _'Pf3+!X84=;կQOKXVR<y5EqY23,qg1pyVX!Dק]5xL8^8MB3wTZQDؠʣqBsOё"kVw:U5J}UzPT}W̩]쫎60;V8^VQI3Ws2=(-U܉-VS;%5ZpH;2be.ShƬz+Vu9l6_0Ig8(ĹCvAc3rAu={,(K=0328+\S]c<5k]c5?a9BT̥-Ol:g3c`7&V9)/DEYRs	#
DWX->#V1-=[[mr"p^$4֡M8Kΰ4	H5:G0h۱np[UTþ67]]rMJC4Xfg2C \+D+dњ3693NP);V2HR_~JWuyٙ]4Vڧfc6nf'[Abr\T[E5G[҉F^s췇\]Tm_:1Ólx6%r]a!3vŵje,4q2B1`<,hozZ7!t)₽m>[@#4#b2N4Ύ+"u	
;vٮΟkN]
Gؑ՟5ljn
Ps% Tw*n6/P.7[+q){!JW#}\.H_0;=efÓK4푰XHH75-)?QĚDYx-.y8B6ѹ}:mGI]^"qYyv(1ʕja9tUe`7ҰrnqYU
<=/?S@q@,`4.6ͭrC,`9mg\4o[v2me:| ƝNxyj}B6~o؎jtUÕUSZd[VY7kJkF&WZ
TNǹu;\5CVcO4@__W"n.^K/	1JQyP]7#U[Ŀ
f@a?H/A?MÓ	<:&F2.pzu0Ԛ.IQc4xysw;ht4od򯋚:7TܠՋJKX!R>,PBeUJn-r7CqK{L"?[}9O@WȃR5@RTxc)o6W/3V幸]:k4;+e6ُ<ghaWl5AS\X=du0;^$ZW牡khoʘeÉ*dlA] BN#9!w4y7T.VtDNvM]<h)܀SM9і}`Q3«R>O;H_g:jګ8tu)Ls?03,c0yxG)]˸XsQvTUEuȮe*+ێ!t?~JA%bT	.ӊb	[ vh7*<Cї_@:ZHad=}Yc+8?L5uePKjpJ5q"t Hw:mbL(zrV:%	R\(*aIvZvu.o Z_#x^"	@<U8Y rݍ4	1m&~O=.ܵDYaYQ08wp=q0%?1cs@Uf(ٝka$aK<$`6k Ч~ᒎSɦkU@$qWt3b҄NǎavDpYzlvW*il>yu24Ǭ	m{rSYb[Ϡ'۲X^lU<SGsg6?T%Um{5![dwSR!gbXDBib(zg#۞fmMiE	mۨP1{Cu.K1VzKSgڔ4aE~cܭ*gK]vNj^-
1pLZTH\&,[͖|WMViOf9^
K\,>UX"[VUXnVᧁfju\z=g{9ԥÔEoA))Q}m^mhmSh#R7;2Q=1Ʋ9eҠPeSD1O{Xg9Z4EE֦Ԕg4V9Kʁ daSQ(Hrfu7ronm~S'k
ic2XݫctjqȵktaqambO=E ~ۇ3\ƯsZh|lN+yQ,rK̲iF^?@A8MN&xF)R5J]tpoI[)jX$Gz1k牼&1>VoT(D^ol|Uit|\t<l2i"ꖂj veAկ%,9mjΘuh8p>3Q=xHRP'/r=t aCU,GvY斗@~ILG*2~G
2&m8,}+z7Ô-";;:}}g̼F;|qGYA+oDccTi:(?xst:4ƿOn 7~/dp?GOp;>LOzyG7?]"Yxyñ
VMvصfrwiIv<wfdT쵷Sd e֝b? e*K-x;YpuA F<B! 8D'q(
b؝Y\Drt|Jd+vQ,ˢAɲSTm%)r,RG]P|f>zt_c΂YX4ew6uմ4CguVؒgOjj1;2e!Vz-QTEMcA6g#j@SXϙqa2g 2b_Z=b7|-{WD8?6nn-!5>Z|MPSei_eƏBcN<ș8f<[a62M_0!Ugh ٠ϱ4>zZJk͇}[;浧3b˪n!8f+ /!@f~<acp6ˠc
|vo,2\({"귓޹SmwޅHdHZQCم_щ?!ێg
nl[*%^/.j37᏷|om0V01`HHK@/κƹt-<t1pϗ_awjM-j%䓯8 mTTsw(|[|/<WrdSn,_r<X[6kP^b;Zx,qS*,;TKвcAeIg}]m`L"*L;	.n([Uʬ~aN9;yu<gӺ8|$63'z}bM9ڤmD7p;f=O5[SB~\ҿj^VqGJ73L_OfʜL	HTꔫi{,&T4;5>e] ?%Rz<kª)۪T
Dla3UбSxዠWgc s
K&nՀE`h{Xc&Z3^1!n&_בN8Td<K1ο n+Ұыik@NP9zxA9h^hbI
m܆*%]lK7Ů\so6oί]0±4D6V,	@&O$;#Ӝ dzhMgj2 |ܫyc& z ȖmJ5L.*1SWӛ|sMXg/Ș?fQ6O~9G,
Fu̪TB(ut{S+d1 ?B6pp
]g1!NOÍ8mmCz๔EKmBvVBҊh921kR$8US(_@DЀ5K XZ1w-u, o.pJI8ߖ5b-_'KцįTu{J*/,̐WJO]CFU1`PU?K$V÷n!}ekцT4xXqW|4[i$*%d$?a2C'iFj핪DAzWfSA|d)
=e5w:jcG|2?=6̙gA\Me٭Nku'Ue\FVi~?k=@NCӁҦ$ǂ^_&q):SM'x%ꁆ<rE͂Wۡ;guP0Rǻ+ndq3nwC<1Vޘ̥IQRiTIi(ޑ4HȊs33W$pD6ޞEjə6,^>P{r_2KII2kqE94'GؐVGO;vPU[)!bYb
[~xr\WXɰBėUTL׶տenhIjfچc-e/&}>v"NFv,, cEQS#B#3ۀcuXU7NRj܆كMFԹS=S3cS<Fr\	z_jԞ0ےy`F҃ΗÆZ6Ls^M	v*(ԑ@<b:[d!%}?OrTդ1]F"DD.ngBE%8M~oNgB]Q?D2%}H2L2Iq}$?D[}i*'`GV$'ׄ?tUxe`mJzj96?D1Ei.P,;gi[ó'SZyѝ&-4А	a/[KpQqi h%gT];ճҴ['ɰ?8UJeꔹw\KQ[YNy޵"H7B{yCYn"L,!=mtswA4Vϫ~I_ʕG3i!#CWs,ۂrT7"|\EEkfmF+'0DFe~T}C ѰJZXNW#lbiN'O̦LrdzwL)Dm믷|v|<(muĮe{ɂ|B@u(d|'s~ѨE&qlz	| N܇+d	mLupmrJO3v
'KP .F5G<}rĊ +32ɴI8ΣvXV>/p\z`8fq.^ߒp}fD0|SD-OԶK|`rcz~`OÀM)3]Z>n[$üԈaט;3s5h~3.
DB>Q폤\BYtTY 3u| g4V1 [^CjiS65IYJH^3jϾQe>x֌ѱsKT0cc8uFfO阾BSз7#uF>*a;Ɏak]Ԇf_rmo@Mty"dQT"uc77v͒]%"iĜF~/?uR,]p9'U8JwLNa}csgP{DM%MSc-l12Q(;tvRL-bRM>?E0%g/>6bT>&C9$ZNDK4Npņ͹[X pG+~iX$F
ƬbrRvLMNMLO?32vf&@YKp:}Gadh9\?3:613,t`0x3ki}C~*v2X~8LeSu(q?p&БIq-+p30zzWaT6%+dVV#{TUTd[$4,9)Fhm
{mHHG3HBA6-ÒYP, juV.m?Y.s+-i]>Vveaǭ2(є{e3E29;{|wpm$^W51Iv:ml94C/ZqJYzsH6h'2IO+;a<6&-ٸls-U\ՁA~11tqV /p%ڻu,#xkۘ3?PqlA>_{:&ӗkF	]tе\x]H`ZKvxtZA7ï/:3lQ)K:q1~4pg~9c6g<|X]#*465)y2~W@Qt^xK/W҉#a;e*cٰ\FPzw1	278g:I믆1_tzOF+g%`ntAzy^I`W]/;'zcfˉyPQbL{{"PX6{tQ^E.I%$_K{ʞEb"&" ި1Lvhv.I^j/7co6<M=;QO<,R^tgF^8s7f	?&ptYeJPr!I+֡BFU 0*JNkfRiL:*pk{c,ϿlҕpJv<wvxOfNqdc}sL7(U' lg}wm*bO}RE6w/W 8%U-1ZSP|ɻ.ׯi!/w/|Jn$rzL0(Z_i"Q;(]Q\"{~<4B~WE.4nkz?Ei\d׻AteXԪKPKsYjLйTZ$o+s{>gM晊Fe4;Q.kXD0~z:E3{&õ½l:m/0lw/~:g^yTܵIKXW%Ekzb6Ud^4z}\2[?{@?(ޓDy><.a^V3b) RT9b%DܬR9=\x72l(,KyEǕ`oC"@Gݝǡ	葯;JEfL0N>H:.>Z
 ~7u&S|<n.~Z䓫lG٩K.X5sOjZsaI7Ot%Iv.OG:XM.u߭dƥ$J"?ƧFI>C܍d䊭Ŵ1:[3j>G0G*T&+tV'Ke~D}6~~Q91{#o1է'Oe+' _N)hM7f;ypJD*հ%?u T\nw*$A3a@sl%JNX,20*#g~ïUjJDTcXpZ,2PčMS!Ⱥ^	ߨHoA=U+T_?20UD'̄dR}:痫^;;1'/Jճ)ȣKn;s@s*@|~UC!ѿӓy0|mAzRyIw/˚w~05ap*tVx5^sz~oo D>˼8zqѻcF")FA_mQ}s6P?_չWH"R"ʇT,}QU>q=+JFkpX%#|%~fP.U
VƽդL|a+k{vx7/UK12<Þxk2|bSTQ/Wgԕt?|^BٻHpX1༪FPdR*ΑΟ޾M}m?Y&<!HrO yEpe`}~"P6R5juo#媉܊6k)|KwŇ^i>(}νk #U=`fENng׼2x_2'2̇/Wg~#ۉ6<]T-{zuiMpR8XL}XODU׊j2aͽH5sB:Rxg~';v.@73ot7G++`[UCWwo34{:_+Zk?=83x[ir+KRK
JRSKbV&L^9y:B:
e9)@]y

zF
u
&`3RKJ=\SRRd)($E''HMk;9AWx
EJONrl7sPAN-Yg? MI\	x<kpTy#@B+$!xvI	^H"v׬.!!\,N~Mtb{;nΣ鴓w&SG'mi;wιwϽv&Si=;|ՋZ_,̪ uIqMVUmiMDԙ\Fx:QRzFSZ"ظQZQjVq,Ϊ>X؆B0U֒R(eiv/2tGMhJWYfx
vU+	!p67Ynd6(Z	S8SڜbetNݰqyR˛2gڴgS9?V@[XTfZ, H[Kddh#GUuF=kdc1'U1h_
5$&gt	SC$>L]Hd-[EZ,TPj.[=LvZQnˤ2'5.)5qPZV5uÊǏ±XԄ%LOYxt8;L4dqI=L-kǕON&-!6X9-4EHЋ6?Pi=GjƕcHvYe(=	qUǵ<b|_f\)I:M"<251`E=\mf,rxr2LF*s`Dx2D52ET=?Vmj3e-bt]fί^.'&FSc;ᘸLSR#]1nLcf\@U
펭g/;;`ch9SMuZ $9L\*(^\GgRSffTKaUpөumH%c*ن)H5Jx$B/Nք+Z)զa_l;o^o7OX :C,oЏú]V%T-3ojH>4PP{8"xA)|fs/kVġvH1w9o>SEVK-!/{JaR,hlo^eyVt=) \e[*+"[P3df&PȊUT,e(ewdTZMqȕ<RRӍm+spSmۧ*ta\3Dɷ)`>ѳbf..@kUvEr4Ļg:B\66X92:||SCEΙ:Ĉ;9L9g[Ѳw̔O9]cyY=4f
~xN;OS2zJK%2Z	(zqpGͱWw+ϛny!x3Ӕ JC#^(YMK?W.#e\+6vwOqJ8=lw7n(F},򲔄MgI@qe5=9j y9#xle;PSx	 c(#ctƶRDSIc7Ƭ11rQ_#x	n=;f{gHMIKˉ"T:+tZ|
g< ]]}"cSP#ˮy{q)V&
s<)N-.$
V*+dcjDc,\12δf8l|z!E^9Ε*CsN$oZSyFc	#_tCW[}˒`ܲiUτj^@g,fz4-PP1itJ,w9!GFP!|r带]du.ߪ@bKqo湨0:;EERiK&fHj
gⸯKko wŮ1ᘔOgQu	P?k{(M9o< h8B>ašbl'h<Փvڧ[ً\	TQ-Ĵs	;ෞ]}m?L(I9yw{jbm4cC+FRE:E ]Q7[8cW=?eԷsF܄<jvG(Vx(,]~IM*P"Іr]uD/:sxCE?X1\"b
u'ż|QݘL2f)itZnW[< jث Ա|/'YrVYF𔥢n%_W P2}u< {i68ÄRC`3
Jw	HhJ kykާQ%iAc b|!vJJ88HM0BaZ<%WD.'TbdQuZYü(d?h0Jh!rmƹ(r<λe}pUi.QB嘹Iis
Yɉ3G'LN<7@.摜ҷҵCdYi*"4+)C.$:O/X-IGxt;"2'{H+]rHpGpmҥ=	&Rmj@O,L>ZDF跰W0＜h	O2NaݒgqB\
ȣDv'kj'Q0y.Yr7#ַنfoE	P&;ŀ_.|Bie{t_a33Ja,6Ӣ_j ʂt/3"*bqth=iD")5c'p#P+Y(POFBX~biQXOVOW]gȣ68xT
uPAq>)prJ([V{<Gk{VHv ݫEˑ(+W[@Xb9RFdi{|j2҄Hؑ #;euUnB"EGh
Yڬ1z.w&zm1QI4d(?',*Yhڒrwa%kQ}F!K(՛ݕ<\@tDqE07"'؇7<0n˄]]a߫ 5uХeVc%F@劭^,xfZzA-Sng"yB~m7a)&n*J=œvV*3u`3x>7tcB`Q&,R]/.%vy+]ypP~dVom%
^
M0ȈQ**,rP-t~064"b/:V-*C쾹R-jD
oc)vXNS$7PtFJX`*E]\śi#uf-'d(\?o-I-a8Eh~:0T9I=;&75㎪	TcW{/9Ia96q
	iPW=TXi7jOxSe[xN<Rr? ;CV	9"w=9Ԇ,󽈃w mF9j`G6nv8W6ɣcc#CGFD"=)`$Ҽ\c./naKg=Hc$P;,7K.e%';#ylrDF.or'[
@ȥn[^z	G<B8	5]h\ؼ5:
n;YuMMۋjY<꾛x\FTo~J#xszm+p[6h
NWGëuR95?A'CXOu+NE	|Y%^2rO-%돓T>RZRံM
>5lxsll_g3twcGX1d+ɟ<E>,&<O3T\RtXQs2adjY۫%<=(-QzSi:PTgi K]B;K{}|zbH^ȳE÷	us=raíQE{r[W_x/hQhCdmfsNCj0N{]
/P*FH-rg]PZ6|<+lC8Cp[ɆQ{3g^;c2OLySq_L=vxi-5bQqUX\yMa_^D*wjlݳӘ'	WgGd_?
7~(?Lvj,)P+82P7,EuC\Ǌz+t\Y0N>{e<x|+\NͤWIǺxCgʶWo?*vA(D-!+v t$삘޵6:sM j+&}hU"ʄXtl jkg.`sLP s9xoJ&+PN*e68Y%ȇ[#<^cAZcZ	aMp{& F|L#tL{lwɕ^7k?$+
Ԇf7z:#5a[_#|;: b
&K_>ֲMXu_QZ"DhڏGW	Z%dġBxKND6%$Zd'#nk 1g/
Y"M
0;<¬|3s2Kα-΄JZ:_@r|<ol9EU=ϳ j:mc9'\S7H01r.xa_p>/2O?(Dbz,l?s

M1+Rc?pDK6cNw翳4mE1޺pPh0wmH )0az9oΟ'kjl;YM0*͌9L?c~l9ItĭDҿcQkZ/Mil.	^R,y' vN1[-.C2Z{+>Aq!<q'7DH]ݝ7f?0?vuTvZ鯁ٵ|}`3_+V<BEQb<M@`!zXy8ii¦՗ۢլOE+zCOmLL=2xj2X22_d'0.pC괰EN1[wr\'A-ظXBz1|յ"dM_(]5O5<;4K)0y
KѰ@F&l҃5g]sKrwBngn+Yd<wo~y|}ǽA'Qc~{YQk!J '7?jj)d}8?\DN0X`Ta RV+ߺ }pc/{a xkb2`3W Wg/t+/"'wQDǭW	R慩5tr!`&7-cFgϯ#ϷU6TVz¡H_Ds'
_:߹ /i¿-B\b,4i;cBiV~횗GI.?22_}aP- n\4~1+?&gx_^#^d@6H32>Qu'h0ľb(mdw%G
OiqgkY?9/4
*]XٯQ 3j!*ʎ0 ʿ̪s;KbAy}CTayIqQ>.Xj(T$NHk[Xm^
TWs,V|E[c)Ҳk"}y1.r3_4ޜ/M/__կIJETCDE8śpO0rk.
aZ/%!`	|p 
wѶ/[āDVf6~9Wyj#Ͼ>Clbx?H7N{U4jAk/o_V?f}O3IOv!ɍP?3
_՝WW`J#JixVADՆ*JKXZڂj%
HPdf`;d<!:3fl?`;	)nEH8 A⛱Mղ{~>ǇZ֚_\|xy╧~/~5~}m:}ilr3_v^l}ttgz19bؾ}8n?x¥irx?Fq5<_mnض=~C"QX"9D)SOT*h"J2CC#f9ຎہ:a`c_"ݓ.RRMu7tp	]銹,BQP&$![cXvU A1 o>oN4մ#&gn56wZҘ3!žY(2fS)"-DER!v2਻%)L/@PtCnáwIz9;<:8~7lwma{ǝjZ0_k|xT?e*CNIЀQv)Q(zGZfJgG(]%չNCi(;^	T#\AA-5Sy {=QWE'TP:7\$1C;V`57d҄Q}DG%AX,{v<aIKR΀KmpUl+TrƬAZ]jy)U6M&62	UbZ{ճQ$YikjVcm|[A'f_/\1*Җ$4Zk `;vEp:TU(XV/RkΕʓ8ٖ\;*Hg_p`q=ʄSVl|{3{v	
f:u9T(c	dz0_@Zo	j W/+tox4v.+ (%`	-~}}eB7ko-4̐*!Ukst<JLnVJ^)?KfQm݀X$bp*-0r5CJ[,}|?XmʶBU6k[!-}kvE~Z/rTcSSxOAƳ&b!G2	ӕ!%H	?b"ewVnefV Ƀ|L<h<(9 5bLo !IT)>oyy/0>h(Tak]u8<䡾j"?tPX&h(EQC1i$^	_/]r!UAT7[|-Nhl[C%HR #v#&42cP7<^5=DzҘӤIIN[4&<xn[mɠ?4>E8sfh9+$ְ[쐕bMjˮxQ bla=?'m{BpNS,gx]2^unUDטsVs9"2N>ўe+j`V'd-neV_1*wGw&4z'*nN4n?NQcvP]ُ;\#yP<-n9b"KS	@-D?J̨2bULIc<)Ջ7x[i;o6X?8 ^
6x& `$x@i3ǓRټ5kx[鬛7Z2naМ<c
z,LE/{7sx Y<ƛ	Ę,#RT-wP6fDsN>7 i.ax[ӆ7lsӝ&+0MbNv^prfo&cxKq38xKRsCS'ۣ
MC,s^J9llθ9bJR& D6(KxuR=KAh҉BS APĀ!I.=&fKMj+@A`!Xzipfcߛ73{t(J84ЎBFy۶|:6RKlf"rys7"Tt9v'`MB:jJb^]~KR6	|J]yuom+Wj6ID+PM2+Iy~z"EC?pQڀ9hRq<2iO/壢kfԵA@HPU˕BBE9sBq X#N`0Ά6K=.Z^BQ!zblK1/(;7GkAx[[xKRsCS'ۣ
Ħˡl gtx[-$U6Of1&O7'(51781=Uy2K=@l p pxWw&a٬ζ#~ޮ xWw&a٬~r3 b8	dn6xw6gwn ?Pxw6glfTܲ+ q5	x{w-'aRR 7d*)deL.X89>grm_ʓmv(&($U*W*g)$$V)'C-N-4	0<TR@u #2KK&lc<{)|a$# e1Cmx8ㆽ /0xǸynZZ\
Z
IEi
%
%
%%%
%E
yi
i
ɥEEy%
9Ez @0&'Dњ<'u?,1Yu	O%3ysYl/e	O.3g22( #)19;f/Đ%&ϋ E
[x2Y''L^ Uxk{i&sN.ynZAD7GMLg3.N*b1&GM4<Y 	^Wx;[&&Kqov W6x~q.&5MDv"霦 f6ɾU&wGMN-Q()MUOIUOS(HU(hf*dd&'`ՙXZ4y!x"R	M.pqqUH+K.SHNDe9)
%@u3KsRR$iF6Aaή..
)
ũEeɩ
))@*KRsR3󀲆?ʛOn0EsHN}-Z-} $y$9x]AKAǉJk<(< %iS	-bM҈^d%;twfco=~{Bz	;a~?o2d~-_kf7׃idt#zÅ@C4@WPm޴ҳb\hÄ^'(ئ[>s;p.v@6l)C&Rjt<?GO&wAܱ1?J(-SxG>
-ek\{ROFQD1\X0OF fJcaaYS{2]hcj*.&4^5^W[}RkRRiБi4w
GWa"ܦlWƙ.fy@kx~Ց}9&LH_ h}xUJAMx%E	&]QQD7ŋe2?:/%$ު矵ymvdJY ,ؕҖr<sgmըuXo)<ZN`;չ#Mi,>Q9!.)TdȂËx4$*N /ϓg"Pq	'H(i.'|J_׏7ztYbI4\fȿ7+f٪Fl]xU1KAI'4i""
Q.(acqwsaq=vZ늿#bi?񯸹 hy7ڬ߰YױqYJ[`̞e%vAzRS&x浜F3#sl%dpj}2BTr%ɔ"m:tOQx9</N)SqRPY@)yS{^=\
өB2%^}4PVŏF)l6x&5MDv"i8C> =-xqV'sN&"%2 tRxYMlEVhRJ-Vqv?mN#K;fv6ڨH@.HNpi"PpCNH*lIv}߾f>˗]ݱg]#`	*tI#;b]	͐uK!mjZ^'^gbMST,ECYE\CB龐pV"4M@ՠdb .lG譾2WU\-t\OƲdkkTjM+:-Xwd,`MAMAh*V
cƸƧcwT+=l z`]CM"1֪
"rpf`iJ[^.8ʋBANGCᑧB t	&`ZI*bP4##ݚ1 K		0C1qN	i$fҀ5׺gyM(?yYN[:-axvfjiP(-^Y]^)72-UWC<,{׀Z\zY	0S]s+9C)@6R?c?ڽ!yY!)@ĳ635虠e\\yz^FpݾaHPǤr?SY,©"TR,Fmn!Q;s碃*ҭJ2C?ETpQGa{?ɴ14Ȋ & {K`_y?aNv,Ǐ*d\S=:.OGcO;΢NCXT UsJ@D)O6)]`YnH=w(
ؗY5gc|Zj|q%^SN>k$]ݦ%+(F%GèN;ִb*X;wl,q,zf%n&lYӪHM'ឱn|tRn6[y҇Cܵԃ-?^46⵮.[[(is``JZ'OZs.!m'D)H$Pzх(?cO%svo8j@T*5sVهNlw<;_`Jl(THU%uA@y	Z;F׮!u*ߟ(R|NY"{d]P741sZR>"ZMw?34N0Nz ^Rr>7O?=캈moߢا~y#3*l8O0	5K;^h#161F$0õ8(w[TՐ󔥰ɶ\=@,
s,q1ߗ'wh_Vzw@?PN"蠷bNf%p&k'qŊRODOLFK̼ ߲4qvI tt42T>{c
t4Er!:9IRt-xYMlEV!MEӖtRq]IHJ~h&i4Fٝwn\VP5 Q8ĥ.\CpCNH:*lIv}߾fW{߳W4Q5%klRM$TĚ:HSRPqP!@I.z꺂4 +Pu:cVlԫP2h z&I&$X^RӤɨbb]g"U	j
EBP2ԀY(356##\HKoBb:hc
XJ "g
{nabl!Etԍ'y\@T,yLG42C(&HITժ,(!CGTc@L`4͇(c6ċh \O4ZjXnEǬO.j I6:Mn.xTvmziP(-_Y]^/7"S-x
Xu%СqEdb*B1Z7m0/J.JBxz1ҁ XŅE-@eʓ}CD% "G#$=MEU=LZ=H(J+:THU(Ngz,|huMx7MXC>Eh#լK.Sn??sME7[u,΄HEh̙CXS|DbX28G~'0iGs}XYBZ#׬T.nD)0ʐ$y,={xO䘒LaGWukrKPMb^]*C@/̶?cֶV[vԜzõCi$cMڂ7}, wP9%myFXWoGTFXlVy|s
3ԲkVbv>>m?mJt+NH7-Z.{"l-̺zBY=yM{ULT=n6Ibܞ֢LDcJ<UR| z,E'ȃ^+*ߨsފN=+B	e
/k9sMlB}21I2PVݻ']sXT:Q1/xԚ_6?DB'2BUkȥk׳Dt64H[ghc:08NG
9n}嵆[ m oL=
34n4^zO?^Jb>H>#;r	@C L|}5FkV6JEI'xtt%'_0p]43CP4=Xv }|}UO^8Y	lǕݳyl5Dc \o?sxl1`ˑXro_l HPut[0#Q:n~Ѣ({"b:C^j^
8l;$TtdxLe\C
ȶeG>S<96R|̐zb׳?WxYMlEV!MECK:Uܺ$$%?u4	mZN#6K;fv6ZH@\(J{
wġ '$ffzNJ4CbϾ7۷W~=q͐uK!mj NtJ!`(w=KPѤKV!ԕt$yB0<BoHj|"dRL55[X*5Mj&ECE<<=#:XuP74cCTנ1r/@F;}GjqH"aʁ)5@p#R~HrQ x'Tp H'=LK<)`X^!X[rdyĴ[acȒeBsc @(t`kik{u](?}zh2g`hZ:2RnW-a{uX\PZ8[boMeZT,*f#		5@n<ms1ü4P
oEG'{WB6!˗<h/m-z.h?*W"*y>9iٿ&U<LگݕȲ(J;6THu(g~"|h5Cx6_"$+Hˌ/gSVFG3!RcheG*M$&ACsB þv,ˏ
d\K=:}^;
-O|8d2e9@L0\S՝)]`YnH.rܡ(J&`ofE|fǟ	Vk[?P;x}fN:ItHEڀX4},w1%myFhWo4uت,.:CM%nUņY
\{}ڔm&sVnZpЭ\LEgăl[m	U|T1ZF&>9}ّP!{:}$hH$wbk[rl;(T]HA"z.D胉^;*﨔{ق^N=+B5Uҳ
/k>sg-B}21N3PVݽ+]prXt:1엋iu4j?]"u
5RtNY"idS341wRb9n}ᵌ[ m~=x{h0A{a4~$sv~>G?=wu{`ր)vE@?zS,UZ0>p6b)>^t01҉>u0u=Р'I3`-,Nם%*Uh>{-f)hmWv5pSя`r]Ē|=@לGAoÜzw$yŊJu6EEygiܛ@ҩp%'d5ݝ4 ǖ3?MhNXEHur~O>
ayxYMlEV!MEO:UܺSںI6ebmv͒k*R9 $N\ZiO\z78ěu^۪Rdgޛ;|]sIT[谩0}j 05{ή*QT7]gXӕ^ĖulhJb4<o&VY5\FjϓtZ.BuК),6DÕL:mlA;|x2{Z1k0u5T[&0c^LJ73?P¸ b*TJ("o	w)M1։Y:ܴT̢.*a8;ny:ұIGׇe*'L06YVCb[ؚ@Y91\Z7aw0F&yݗW*!'
Ŗm0?aՖR_z笡k(\-JsfJ:P4<lj4IX]FT.S΍ws+ZBIS҆T tЋO/hUx!*E<9	~Nt,2R1G#V0DQ8N>uX	w;ϰs?ir6:ٽ>E̖aWBfDSSf6dKzTJ'3RgD s+!A,H2UܦlUgH&BhHqU8MSo刔圻TB&Dy~2p+r%\W71_/BQ
u_fM&beW-Rkx}jN溦<IĄ(Z:!~-))xlC*¸m;kJ7zvUZX;+^?w(;zj)Vr_=fۖM9Z=nh-$IkR|qR#57<T_t>ƻVbom'K]ähӲQA0836u`Nshlb@r
&anhI^;wFzFש!Guh{3_~!>'G(QW}C:m9 }EZ nwhJO!$NOzG{z*pY*sH[Mjl3ry`1"yŝMJ;^p ױJ_^anZMfUWz<Ҧ_[S2EI
_2?M&ڝpinّCVi͂%.*lTW=v7G ahXf4ym[Gf_,VN?1  re{h +AMO}nI_x[Tn!I̼ҔTԊԢĜ̼XR 9VxJ,I9zvY n\xۿJYؓss7g9 u|
	]x7%7 
=x_wnĒ̲̼rgX I'xuTMn@UhRU*-Uii+(2?783a<nh. @B	8 wX3Qp/,{{ߛg<ssPG3/03<7SʎwTG}t[꽚+;iKfNdK*ո/Rds1	hڅ<!0~-M9D}(Ư8S-]A@bf=TiIzT4!U$U{lj.NZ>:1A	"%7zӄ4y?
xʝׂy4P%V%Nu#1x:\[sc[.ں5W^9Xһ{˞W`5Tt|5W~_ߞɦV]"QSQL]Eq,$kշ[ǆg2%d2/T!qߞ~*RD4]d#"51d1ۛ)bIL.[E}f|yULU2I.ٳlًUi\,xWSE.,2%*J I$F( kQXPE%XVmoBlnYd-EKOLU_RԳ/Z*=?]vVٞׯ}u|UZcbXNҝcDx3Ms-;DgjH!nSB&evl{ǲ
y-F
miAyc=chҋtSVN91t%lI`7~{`pѥFǥcJ۱82hb.#>/`8M
ۡ,LQb=JKKY0)8< Q0)feEB~=ire@g2B CHq1gS͡O	L.~~tk@%qdB7dk4*jL\ًZ{5EgC)4!TtfSaW&%!BS`RUMEHEI1 |א*ziߦsl`E \}u0BکZpM@upimFN6!G*FGn]S!
+s=u5w6TJ,wtˁ27	wB==NTjuPZZ~u0#azk8\?TCۢI]Vz^b5yץ%yxFFF<wa1WQ7w&L	7]-f]-NҪO~,|HAѝ<o)4E1k'uc	4)fKY=k4^zJώEI+Doj,nG/F#~Y
[u^ӂ>uy&v񤏜.&9~v=XSЌL򗱵wiտ|8cLt~nBj;//ʶg\P*)-`r5EѦDC,Q.P15&TΡX2X)Y͵#q
px7f)gĬ!ġd-fѣ+͡8ƴH_%Y>S9ݺIG|<$&:S3r2vsljG(CTOb/{J)I0X8ſ(eTx͖MOAS͍X7,
T,"	*tc0!vjV;uvVl4M p3<-<#|-iLj63y#ϻժ{HHUYCT_	i*4M0,]O[JL tULh@`&t%qTQ	P(Bos{p!]umT	ZZQPi(6CCy}Zfft͘ӳXlv,^ZhF" 0؛dֳπ0!uYX"T:auҧr#FYB~ꕂnY 	S
DYbk{"ѢB2<S}+Iib!!R']J%eR9%/wUl~Q(Z*CЋgiC-ПٺqheHn%KԟdsUBgF+PG!	[CLiD (؛%u`Ŏׂ})꼜|EYihGJ|gvC+󮨒KY9<k,̋͈֭HpB3>>vM<2baw@q%nk<$1u~"I^wFXeYˢ]g8B)͸>R/[+{]Ǐ1#lz)173JgS8Y+AzPݸp]:p@94-ymM{0!khL09|8ڙ=.g-r9=r$0iņm`뱍FYOFqj@ 	#rdI*NH	N_x4kn1x<q
 +4fvx;>\oYT3sJSRK2RKS2KRsS2&nfd]åGJAʃRRRR&2C-NLOUfkZsqki!5Mbg^IjQQiAo~@^qepxLB&+ gIx=ioH+/-cw1DD$QO><زP>Ԥvvo8꺺sZ;a5֎Ip}W5̽;f4꬛݅O,|솳қM]$∝7KB~կ>»gQ< #H<9f| bx/wAvCx$"㋄O3{0a	́`(ɲ/wwwmi(]m]G XNG!OS? f[A3o
d]'b$.	 4gw^YL /Epm y{r`Zg{tGsk8lG2gNcl]Vd;uAZ[&$X=	X.,3`-νkή[D[d)#0XGk|!ӓ	7:%k]B'RҿM o5S\G:f_VlAvOx̍dF{0?2h	^fg4h^@Bz5zI%L=HXQ>Щ`䳌$x/R
%ɟ|2Ƨ `x=u07xƓ9H{zY5t[_bYI5	߀"]N.O~yAď
hY- 70>|&wU_N/b2-<Nԍh`#?dKls9Q4^<@BMTZZ6[@Ļ_ks^=13+?ܟ/t>fK0!ʩ՟fr.-)*z3`9St-wvV"0^/}mOzTAkHWÁ>4aAGz5JȭKpi/Ucݑ3z0
	J{}RֈrյZz8O8Yk,~<lBe?P`V&!fW~?Oy&=gѤB,E.(:)=wAK\	 iOJx6c2t(85K\~Pu\J) ĻEhہx
@J0+8&OsD/bE\r'Bhƍ,OehghBy2EIA(F aJ@. !r:eV}b(*0
NIh"D@v8/!wmc;Yo+Feu&lfX{AiNζBi699NQsp}OPFpƴoɜMlZ=擓<אH؃(x}:,$4t/OOCSP6L2@2u!u*( 3rKDv4^"#>lDHCA$Rl%"$#Ǔح,4T(hymL΢D`LZ+%QM L}5$@ 1L+ɏ^DN"8;dEtfXf\KA8߂P~x R$+,]0Ib4b\x% J_F
69m᐀QLh,O"J ĈtPog22w~1wxo%nCV6("P?أa}|'\`!01
帅fT#H!k0hRe*Ah1b`	$\uŸf?1Y
DTY"Jmoc{wC%Bn˨@5"KQ56SZ,PTŅ5tw%ݟ oHNRJʁY@[iR
Đ}wnXD3RqL{JZt|'Pyl"@wVө.j.xPw?y<M+O+'^3rݬFiLwr;ZܽaAJo-HI^r^>͂,8::N+yTwz=ZwkAI~B&^p	PJJ&@?\ow)-
2@Y3m;3XWv[-juY
/|AZJl*=$^ë́u*q 'H!
9
h0@8oieKRA+38cBnIpxlDOT,A6`YXHx
^U:c 5C֟2*B;;^i쪘o?(WX@C{Bi#m־ ~g(ƿXe_\kXLǌFpk*/ef}VGw?;mZ'\Vv>ãP_xtO-0n/!Uԟ
T!!]np	*ХÐKuURY@LpRg{Ծl.bLHtS~>P=dl+ϺX\5?lڂy
%nYQqNa]NKK 84CYD#1L|10*kVBi쎥ri$8Lѡb{M<@*zdn$ʳTظ-!3>\)ȓўĮjMQ$&IpO)-K.lWZ  ZYzR+sP䛦8r q8\DM8K"@VQrHtBM6آ#[/	1E=e9A*C 3!@3xF>)吩bWd,]z3^VpaTY$SI#Re*1zh0cїTEH40ɗ" 5x+%ҐU"qd_8
t߇~8.ʿ~$1jSHsGQ^G<h΋ƪnee2qm;5t_mF(JD&DSfx~ XIQ&Go^M^ߢD[,=Nئޯ2Jj3^(!	U5juG..h&!m]#Ʌ8ݵiv#\]îȿȝqScY'hCAμKЧʂ wo&G%q'rr"GQ lwF=$Ҳ?^Po:Wvs;FKIMgAQqT'Wi${T'+&]S-0QÞZ_NS6L$jG#ÞUkKa)=y/QS>|r4^'ً:֥/C%(ѝ}U;+M r9xLyv^-g_frvO~C:DZ:7uvcoxU?< T8#Q*N/l/ޔA|&\;@[K{8RǁoJCÀ7A"|juwΎeJ re]Apvfod~dQh(  #5,;CI5
Udgel`(>VM
Йp7eHu&/˖+bg(~'ٙȾ L+=J9B!ɪJU;m	vNYa)Qq$TM+)/* @ØDgl73>< * rnsbo]<Ѣ<%R^=<І)|vY\9:@l
Zf
t=zo= #_cA//]쾞qbvƁ^_Xx\Xzյ*-Nx(D$n1R?<ClDb5D.Czb6jfk`Q\ʖp*#usD	:+U+@`ePwAe4jVӂGܮv<I[TRՊX>xLDň66YD vix7˱gZlZEai9@atX=B3yƭe=kZ]3j<;*)w ^K !ANSG06My5xF`Xaӭy[3;8gk!UZC:VGJ颖.k|JQru-|=e~$wwǃ3T-cTCe;"uOH9`ZcQ!ٙl*z/znFOoFͩY7".VS< 2O خڼ$M׶o@(NŰ%}J,Te+jJװ޾i¾jkb("TeC?*
qs tITe2A_q^u!>[ČGi.{+IQ8FJ¯Tu:]^CUVWI_2K7BiFz/Oy;b>yi	dF
rX5H^X/B:RJ7Cȝ,z71˞ki!TYhAåg	L]>%۴/#0"KnQ'>IIh+J<L{.OU^6sƳtUx10~cY[	DBʀJ}T潦T=ai>"ؔT~ |Qܝ-Q8<:VA9
s˂++|;u4P?ƦفvKޚVbMiJիuJBS	y+/9h6;Jy
fyC#1 l1OQd"[	~I,\jۥ~
P8	s)ۢ+KkZ
ֵZJW6lSÎhIcV%Rfo")][k3\&a^!#t]Og(1:@lcxh\O#MNz"=޼)JuܙQuK"V]kRSW~l@;\Y75"B脐/><twبFo9զɂQ)Kp%raݑx_zұڭ;@.YAg'=1rFzx~*E?V.*`*AYI(d7)<OMCC{P]jp ϨZBL#Q/f⯙/3<[i=pٳǧuc[3d4Eu%	<ƊK>^:S~x V^݅я"e%DE@5܅NЁĥ
98Zޫ1yx?c֊A#;==_?Ĭ,xZ[sJ~rNr q|.lE٦b%<Q@!qtM=I8TŎ|}GHt}-Wxy!N^T)Otխ7W:ۢݗ&+UHVJX9/r,U{a NZsph_%a*^a"X+&^ z{2;/YÅdxDb^F!#Y%]K­0Z}}}W#%6DWq,"wE8^T#!ZwxX""ٮ'7K
f,'/o j2HF5ꍎMo|1ō8ոgU7י>P@Q_6 jz)<X`7j-9,STbު(FEk/&P%|o%2
_(٨}p G{It#kGC\O,BsU,a/~'b<KY91}u'~⭕Vnɏ=1o>62
Og2VU&RkU/a$$TU,t\^"xG+,=0[qȋpR:3o^rݞ5^ZlgzX}f|^Y޵=dvgt@S1Ds?uFo֪:a-95dm3x77~ӿ%7ΡzL8-m+<"pxx\ŪVP"ce*WUZ5`|G-5[TT}f;
	N3L޼u#uHa$3AS'؝a{hvA=,ȮۣunAȵΠM<:V_*ѿ9>~5]ThrQ-$+t9`Ok P)mCW:$|UsGbe$4Yh]50/Z'@huk(ƊCIbl~'v&כ7'߀4'>H
M6lCίf魾C߉UX )dۏ+~ϋa@5jIk/?XY(n~k'k[K֨XoN"O(&13,p+M]h9!wqҡW.N7ByNTƲB'\7|Vw<BlHu~֌@O huy5y}^Ԩ,(<}e*^JBCsA&:r.#$Q/Shl9c&*~#ѨZ?N}r!?RBʱ/m t"ë(BD[v]sJSWZs[Q0*hYs:yKFK8Ѥ|L=l5>`p}Ssg02fYk!ӨuI.34ƪO
Zzﰊ8Xָz 2F+0y%i bTd<0\mǚ06ꧨaRh2}s&
ytdv
Xry8+3AK`%ޜLMgAeGYG>X@/hP8\wTړ\Ք@&*]RQi^αhr8EQD׎&Mt~tCK]//	p~b2l"-=J{'^bAX(RJ!1qM4cJS,}n.Q1za#MIE,[fYͮmz[Ld#K1ܬC=4,ASLYnDOhhX!|{˦}u2Q5	m1L'@ zkH=<=טjFٝUqŭSJ_Z(98¶#tTL~73õI]U4U_ XTcKXØ`[mq` ] p`v65Q]9{xNT?si HMAZ$'[s7Wo,
D(	#R{OiPZba:o[-21g=(XLq-e{-2W^Vix
]謪.ֈɊyjn]bɿ+zkLdbp:"GdxLK˃$ųYhvG閞q}9q.3oaF~{u#
O	xSg5}Vo(cE`(?=J遄R0t\S7͢"E>/ztf-}?CsMbi!_hdZ~ziczC"O1s'_r@G̒i:L,7Jyd'BĦnFE;t/Ԣm<iȱT$+tP#tJ7f\xP|Qm_1WJ,R]NRWylxuL]z_DcAq>4fcVpjڗy22VWjb]\q|U##ZtV
bL|ES1?;j%˽Jlp"Tzx/r!j^B5V^^l3x18_G}:~+FDCIGn	 C:bEMTxʘ%Dx}M4oCU >yeQeѣʢC#x܄T :Qv|G`^=EV.]<73+VyMIޏf9{ŀU֞e}vQgw	Cފ3S\GV~zHxHՁUZkWe*HG^]=ƴOwy{LKzMA.ַ,"h]<٨.wx;9t.<E^UN^(ڍ,#6"]P1W\j=1.VPWL  ]THxSKLAN(JiCj P@C,%SZMhS63['x11$07/D9_&M0<zЙݖ@;y{?^dv杮Šb%(f`?̠ BAaVpz+:U1nAw]c/W#*3FdE$D!z0uA>>)QA%:0@r^̑Q9p8KDOuW2W3ps}/#1]30)ͤX;MOzXUXH`ϢYFd`VJzּM(FLdt*9|;䭷fiI\N"ֿHAy@",&m.U)(#rVPc?yIhPӐp1w:^X>{P?;<ſUgh6ZL_G; R0kzArX%c(uhz:RBTS5R8GW~ཱི&"mO=,6ыytUۆF.AH߄eC^pEA~IKm||w1⌸)*osֿ@-Pi(_hҘh$T	6s:фIr[])Y0,pOڰh4MNǓp[^݌Y瑉Qz/x;z*dC<B߈
nwB e	0Px;z8tB>FLj'Q4 >	vx;:?h73d旌f1W39'Ofm6p*L!+ٕ͈	5߼n΍rLfY6oB߈
N͗T/Ҝ:Phmfة4O}s! 9o}Iy5m2L@e*ZzQdb5 *haLVZ Q,Ux(p 3wYjQqf~d淼
"ߘ7O>ĲMTVFqdV4
d&iOfatVU0.=
ln]؝&Od|}s(Oa0Ys1\Ɠ&wsYN>e6Ylr mJ
N1pvpu7:HK'ʪ$)h
*PUN0ZjNn;f|J4&OӞ|Osd~Y@z,"U'N^ `=
,*
O'6dYK؆Sxqɽ/K
L^*!Ø8!"q*%P602cQNm<Zbڬy445j*ϫl`DS]V8Y@Ml9ɵ2Iا6x{3h dE%Y6Hd榦d&̤ĢJ'XL>,'7ykEcجÂ\\\'OgBz:+*NcMEO67=
}J~Ns8Qss,Bi̅UBFpY!s'rh>euhd=^ɒ<&(r<yȉ$)hs) >IMmxDeX7yeQt@i=Pm+BFSM=B7~D`(M9L'II~s1Zsg`649$dS'KL#0)L`WݙAZPZ\RZX__\ZTWP_̼c
ɍJ:6bƢp1h947l`3BF)+$){cqqjob :x{&hRɇ7_vg
W }-TҢĒ<Ĝ"ҢԼ̼t-}.y%F%
.7km 'x{-p^u̼"|<xԔDԒUE7Td ,Mx{*pqa2Y  ?sVx3h73d旌1W392'6Y8&lve3br87/ ۼ"4yE@kT6
¸d7XYK؂AcrS(O^R`R	~F8c}I[ueeCY2皚fM5 ]S|]c kGFxt*dC"7k)89MV|MȍsRUBRWRRah9 #Sbb\n!@)dG^Q2 R1-mxAy"͒,ɌM^:y6knǰ Wg נt

إ'?eAQoodDb_e(jPľps!qոP\V܉\(OpqZ ?YWp$	/c<rb&z
Z\
@G@EQxybV}|3!@uM^Yx5Pr|(|O>TۊC7jc5
 eDS;Aodn	`R\/dbLY/1yd)	@2SLns#XL	1y,
&P3DCqsF0#O͟58d!F. 
6x[w&ɎbƓ&3ӏ%d'%M^2(g5HM-<fpS8Cy6OVy7RʬG
U*bXove1&ˊsL%v̾ ˱8#ùYWҐis473X$_m{'ʷW) _XKx[$p3dFr̳kEsSS2SKS2'Of U6OZdr,ko+#C&:rο	"r!	(n坏, 9! +y#բ{e86+	JqN,yI17I?eBQa6D1p6Qށ0䏪'H)$(&d+d+eeg(dMUswruqwvurvvs^r23?8\S&׫"[Z9YNEJL#S`Z`}:m -:.-xKN/[]NP'3݃- p6TxKN/|kѪ,swrJȹ |xKN/0č8)5?*d ~	$xKN/lpڡjݷ&2GP ZLxKN/rQٮa>` TLGxKN/bͣv#g[1zh O
mxKN/bf{/6Eb9 	xKN/vxꑥON(X4f@ 8xKN/"0lnzśD}_ xKN/6^3%Zxl9 4k]xKN/ͽ
zSC2g$=i QE[xKN/ҶWk	,8aCAV2 #1xKN/U{S{N:1-sz WxKN/RTy6^	JR }xKN \z-WSFՍҋ 
M!xKN/Ғr*;^&)82 @6GxKN/S>WZT%߷]G k	QmxKN/r+.ͅ1o.V4 ~xKN/rSR_Gv4G _9xKN/ok%Vm~\M̳?"W- w!_xKN/mz|yCwf .dxKN/-)=<lCǣ{?u ~8^&xKN/ޕsOsUdI
?xҡ 	xKN/j#ʣcU+4o~ ~#
/xKN/}dO]'*)9 i=xKN/[X(&TiSmm&WY	 BcxKN/a9jݟlbgd( 	LxKN/myܡ!gZ| Q%xKN/"`4<g<+'Y̔ {	pxKN/b)T6}_  Dwx[o8~_A/ᵋ=Um5ĆAKCTt$(̐$vɵlcIpo䈪WX5dְǔτdMq'}jUvi;K@(fn>ew568wTQ<NٔYj2fc
&}&#$<g8N
ɈGCs2n)5&y_f'ekCL/ۍu(:DК)T*0v4g<|>5C>cb|<31*<ShRe:WR%G)ᕩV b<b^o	/̀}z=znYf{\󮿲Of	@B@MH
뽾%ƱUI'ci$&PXRG5(PNn؅o&8Myx:гGJ1NB3K_h|pHI\J-\1m,׮ȩ$]ѿ+:h{.J%ɇ-+< Q \	ֈĚDP)_#si1"ZǩL((ZqY.9&#s?IC7B9R\o=:^Ơ~vJcvus9h_moؽzËw}~ӄ^A{C0`㿵	ť[E͇#D=/<65JJCM$L5&7W"
lA	6\Th,'@a	W|*@Ianc$qXɰAr|>3cuEi&Fa#/;z0ͿP ֖W}0 >t4*IYJJTG9iaMD8)܁zQ7av>=\T(8"e9%Y2ho+XasV,crL$bc,ጒ;4F>a2M!)pY֭`!NB_+"`}]K:1	۟~`;*#.!S%"ŹY%1{Sѭ2!Y:&,g9ڹS ~8냫)eYowCcK^Z',s=N^hToBJFn(Vw^Fw<g\j	pFl)7{sBDD&Q84k}l N$V9c	ڎlgIXpX2(Em*چޢ#Vy"J<h#fY7kׁψpJvgWk3Rwꖃʙ*f;Oa۽qCࠔڧڮq_O-6yZ⩇<O9քmi}z;2qF;DK=(7O`5o'v7#M]	qz2>X{/s%(qr]
݃-zr_uJe&skmľtYT+#Tn;*`gJSkoiBV8SwK3ǪHTD-h7xK*r	oSWY.
:Zήb0QO=)Wnɂp*PhH{N+^d1ɀޟj
aH^uQT %nЇ
9HBwx^)\]:Vם~^nUM!Gڇٝ5gۓ.
PNyk;^ܱ4zۍְn5| a'lZNwwuGuzM:@ԇ6_a9q՘/78moBiA1Kh[G=@"sjtyJ	XGDu<x0z7%TUKQҒ'daqtRNppQQ⌠ƌu1A"G簰i E1 (;	sGuuyf=.<u4YM+^x4Y{iPp=kҏ,o,+/|DZ^s%3i]THm+G\sGeb=SMTLpYtj'wmd	WzUGbn5%(NFH{Nz
[٣Ot>HBMIrEA6)UytBOU[^Lr[vz5ڇTX4&,p>	O39K#	
'l9eGTְY%Cisށ	)f)
lQ1vB.%= CĽ4c<>&xo<;#@8*(!'Y2'%gwC㳌QZu@Ķ"DUS7ui޻0oa|=pƏUlRozHqA=hj{<xѝTq4A,g*iKT3M4I!7[jX @O)4{"b6#48 @Wȳ)N*f"C5H v6T\ß{ q'K,e?A;8Ca٦L"b&$x՘OL#US0[} P@X .t^c}27yv+G/f5fl<z11^z0DݓMKwZ-& 2oo?Y xs|S]	_Cq#$0(MʒosoA%i"l7!(1
+LbQ98`"uk߶>38)DㄌYTk).3}	(4ni=X(4MTpeC_.:?|yKW&:ȴ4䜰7 esnmms,q#z)z/Ѷ΋4OAz9OԀ@Fol,ɲ_π}4<;wz+u;Δ,`ejV#&"J	屖)Ϩ*Q`aw*PM6LuhNg)#5IHWZxRP(-"$t|Fyv]Xea녢%fƲDyBSP[kmJSbk-nـ	1ZqTU0P\{)T3 Kck!hȯ㎣+5[.VYr8p"rXb5͗fɢ,[IeKhEoUt.dzBdI\A#ѹ}#]/7՚ҎDTg\n"E9:a j-X"xi<'˥YZZND<+gD4E˥R2K7- TFFYhwўƮBzkh̟,5&I961OKQ!Jػ猫-܆?K\#^i]8[4u>>
M6ܹ>q.^Ϝ6÷@#f5B4?hq2G,
ahXVM ^!IB=!xL@4.R=Fīp*C1,yTꐾtL;&X"cU|o;v➞sn* j dЕ;gדb#ޏU0S>Q twM59[2xsq}n
8{dCf-o_r܇`
%ox[ّ>Ry&b|McyyE73NĦ+2yf-&'.ޜ./ŘjF y [xlpmr/rhOTP/ =Ad]Ռ 8ZxAOA-  (@F`kYvg$ewE!hI?'/,4ۙyyǾ!XOuxT,&Ҟ8b@r3P&#}VǤ\"?ɖ5>8[2l*kk$~Ml,]1l棪c9z|+Kq"Pܪ:(󪪀
8Cl4b5CW2i`+1޸ z[J(?TSpjbP-)dJٝr#WJUْpE,W2-%oL%Xha=&sٝKxu:\8.HHS>*O`SߔY+y9V٧b}x;PJ2۶i/i9M|=T'"8%8:<C0:uWSp":y)% 3nMlcH&AxSLX|*shp$>pkX-hb10(#`0,,Ho<v{ȥl&I̧i0~pA]=}BݝK`MWب4^jotyF;g7eÍg燇AmJ˶LsƱd`M!P+qMރ51
nWu4D{nIakE7z<Ӫ x(}WfONɿ8K&pNv撓sULS(HU(H,JM-I-RHHMΞlΥdz%d)($䗧l	 %޳lx1o1w~EbdGY*Ġg2vu~~3J髧GEJ/~gV#A69.ūDzM,۵J]gnC=y37J^>`S៞IvYu59>E!;	G )㙁X=l0uƛL| EA3 ץ ػ%j)s?/.Nnx;;oAlE\rR܊sSjb
xVs8~I_3һS1#l41OCNNҤwSfX~Zm݂6TbppQ"(u``s"ϡ9`ehv:pɵJ¹NI:9됉a p!f $djYItv4VƆY*|+vY%酵ՇnwZýwˍ^0 Fa*Knhw-4;[Pfd+P\sܳ B;`TaWLs2cv{x 2$''?	'0	\q쏒0@C/$F5|	Gpd𯕦 &&{ jT<049ٜ\r-1"^
C50'3X
ˬ[:u[ݶ#sZfd
޷O3-xcnEP.~n,d(];[+޽6(|{uiŒyC{n+IvkI<+1fCuf/^*tWF\ ܍@~-b^#۳]Qw[z#
D 	A?s(c,I/2VX^ޠzPfesjX?BZo
YUֆ-bmIpՆC!dRéG]W|6tW?;)YAht, 
fRi,-U	i">mJ	6+(nHU9^uϽr؏>	v^mư[LO?N[8 Ӊ3UgEwV?kK?I/~Pa}ݣ,g,ҿU7ڴ4*}
acZV)tc(:QϦvl&3*nۃx3%7livc5>[hs[%r8m?Ih9;}j{Ctu60^=k,5N5cy|&W6I&;eq:a0K;_piP
##`+Sߌ9F SHTA4Zl*W*fU5\p7Mq'hr]2;rQwp"QLQ87Rwx9&]]އfоDp9U\~n룃!i[0P7o`¨*3:
qt?-CETm!a<}/»G;(xRMhA&&qZxJ/%AV9,l2lggd	xVX]<	A<=;4h}s ۟2:)Pzx d@ Ee( a$)gqK!0wX(@U,Zq3hGQ5e❂ʕA\w`<U_rW~vszWu$	4c<HW92]V.A.Y`'VIGR߬
a0b]p(aƃQ]ݢD͇NHWNN<HFVéy{vG|7kZPRLBWHV;M{Q&kUÊ=|**n`@\< eAyS=d
QO3}.j5G&o	c!^h:(W|j5XK>7+ł"XcUq>HX Ͷ?7&}zfnK0RRd\	Ombxޚ6<޸w{v:d@o>x{-sGf;@Gx 5!iYx{-@fC.sIFL9&] }	ڲ	x\moI)|I,gw:`AvOiazn^LP~OU30`^oB]/USU]X4Ld+-.ԭvNeָ%>#wU(@:~s"nTiw558J:zsc,L"fr!|$RDGb=%7Gоp,!\S(
%Čb=0bK!c'7|^,ẗ́3.):l5~ݮ}OEb٣$szr.L($T.6$<Ա''"2x.Cӻ:C=J	 ʓ8E$cz >{z{jE'EkOŉPPl!jRJMWpb>
I"'JḼ
},J*AD陎e̟-QQ4/_[CK׍$4I .ͼk*'6}Ͽ?Zŀ\m+d$fM` 4U&D'č5bKɓj=3hz!i~A ow
Y!wr k:]-B=WOB..g"ccq\-?iƺ8#_D5t]%^gԴjBoJAhΰj~|h_
R/qwڏk~hʟCFQ[(s&1^ۥȾlHFj	ϲ1تlٚ&"C'{B}Aq8+z\ºoc B|FfHN"^Ḑڙ\3 923H(%* 6؉/2<<V> GPAUʍ~	~\4ëUs8mY*Ntlh_xȜzlO1|X !:$&Eg),M1"Jvv>צ>U!/5oUaA`z,0U'd+D[
n~=׾,,V#?C| @I#)E-XioQ5xJ(2^H@7}F
*b/qTB ϊZfIɲ~`b$QA	HF	yMFQi/(b
+[6{aFTߔ0(qq`k"k$(<674\pt?,3b6gj/[C`B)KoݚhN6ݿv;?[:?ËVNT q󬡼N٫vg0˫& 3xy76p6*3O@z9b+YWp!am*DqU1-
4cYlxr걵$Ggt+;& 1gˎ\2ڃWѼͽL2Wǁ6Ya|it) @&	&P$`o$**Cp  *!p(;cϦ5C<8٦	9{#Mx9bREh>;<>޿
[nuCǦ $Vaäs6!s3Re\(Mv,K*C=ϳ@72m읰SQ{?7}\zC;3xn:(A&OY	Hp9Dvp?||qO#g#5mB=^ˆt}qIW.	d8;@Doyyẍ3sߏ9TOM)+|S:EJCgAvSAC1trӋSʋWsp4~Я!Bþř܆LL LeAN:xǃi<ޗM0;p;f	8 m.,0tGxk<?k	{92nx$mKEP#oQomrnX6ʬ3f㧶>4O.FRlAP"#>#[)ŭi "&* 1cVZd'\>jmoP\k6nClb3 1]A
qZVq4ƾD]޳8T!e߯IN4I;?#f[A\pק	U~J(3GyS'+ҟ$eʷ98gk[F鹭9K=⾷GD%2Y\8h'vk啋@	'i+6jV7	eM7olʬ|otjձ)~i]'vws%To)IXyFq	IpIsd{'EM;F*"s.m|y[c'{sxTb~{%d%o)G6(f>u_6Au|˴jnR}F:*lݲ۝nm'!Y{Pw]T;wM܌L'AlV`ճ@ 1쬮
UW5T<p0[E=[@qNlŽ%,H?!?xdȧ2/SXoͨK6xK=nRP,\.|W~h"{s/-N-ٞ"fx-/Aj_aSH"ZavQU_>WvJ<|劔b<,(Rˡ@I󤍅
o7bq0!heg{ae_P/4^nDRJD&[.K+O\1>)x'~D5bAHFk}PTCC4n'&?c_{b?3%1~e77)xWML\UX:R(\
-aT
HgCRA .{K} 6hPucճ0.4mLun4q;7]p6D¥ϽoiҒ`a6y{T\-cWg,#0b2á/J{O\O&3{jhE@I3(bg\eQW3q0M1-G~*כ*Oҥœuy12l駅<4YpbQ[	Ǖ}1x"[L(aE+$A9,1H%k=6F^i~2T͒4tl~4vaLZ	mUUA]A<Hqbs7D,4e.̾r!$M0TZdiS3oi&'PT]y4ȳzRi՜r$\4c+QIL/YUxβڱiImfH!RD	- N\x$˾Ela|Pnb6pyjO[͑;eu{
q@HsRx%}+pt;B6%"?TܛzrQ:k&d[kc<4NkG>̾2YRkRI剌.K:UQZu2X}ݐB195vqtM<5td/6<IyOpltTrSP!H愃ne G_ob	'5D<1 rX[x;;2M5qA9`VsM^t/Fv886C$ՙH\5t	ܵ\Vo>a-gm]2w7vxUJ[rq
bI&0gpIbOfQ7FxXڑYۘ_f&zs	{Ti"^?h+ ʶ`Hp0yCE5,Dc&"yT~
u?EɇY!yXx6fi%9=@nEWFWoQYmh暑};l609f)df[Gn[8nFŲhf%1bm/s
X:̼}_,CM+im8AV\GƂ"x3 `0-:"\&01:(1WE2 dxXIlUgsH4[yqB6K$MIfq)-dgܙqP
JQ<DBPXTVQTqA-˱RUxo{KRͼ{oǟ>~B@tqG]\1k_!⬃t1奋ͬ+#h%;>7_Uض*t4 pՈ
n݉~7J&@(U<AECf?K[V@q$ه]q`J^%sHI6k2týJ)"&Me`  pA0B!cJ ò
lIFzñ@6lŗdDq J=vEI?o^X)jb1_
bphKQ-Հ/ysE&hZBfY@0E|(m`B3PjTנHE$
qi?uLoցʰzAD%&}g=JvB0$u=G3M[}NHysw䁒5XIU-QpŲb^@!%'fM`j&pC8!qIiը @UFC ##_MZQG'LIKOfE#U*Cz3LzTnx(0I#StʣiB3i2vvӇם	{q+W/ـ9mj4] SSO<5PT]Jot$&諟+*KB _6dbPKƽ7 ?N5twsyQGO9Cӈ滫ƼR:W>ecwMHז&uC+kͬTt]k6<./)nvbK7<cv7]U4p-BbLiDSd)v*B\(xŘj_
`>kܬjf'Ļ(((GN
c*F:y3e JId5J=ء!:@M˨kb,I.&!>U *%Sq76bPHdiX ѕߡ9r%ŭZ8%xܙ4J
3a#+(2UEwZ#1`	) 
"CQhpz$į-iΎB*(Kxj8"a(HlĮq2v:v]h=*66㩣?k.}Oo]J6Q!m'Cqe[@Wq<O:7DT0'JzD#œV:%fլʆ'O-M\TL0;Vnm4\yAE	7_B{q7gSx\F*zPn;T7=)/;WIn9Zf$wq4u+rNx夋aCZ,5z߈aX[JnrZ.鋫xp;0.9)KR*j{h2緽F0UM`TQpdF_rz!nal(a-/27	[}{WL#.MhFw?G,zr|0z0ZS%EzH{qJunTY{pGz/R	!8,+_5ML9srZ۶{sI5Ρg}_MRI͡m(y1
*BY%e(GzɿqfcGG
Y}pB?`;x; `0-:"25*&01:(1WE2xXIlUgsH4[yqB4K$MIfq)9bϸ3㤡J+8p(E
z"$Z!D9 S,rBHyo/IA7ٞ|j.I1 ]-t9*Yg,/]le]Cv],9}iU"¶eWAP4 +$E5uN􋽹V5qD) yY*bϨ5yн륜5'Y>Go@FsOܷfG^]TT]T.M1h
/ M `] X@y(0"7G_rU`K2қE
`.(x.#.? VZw3}.Ml%OG:Ж!Z$_T	$"L(ą^c`N*PgDi	A75,"RI(hudjFޔ/=m a,JM,D	{R
aI2zf.&5@2E%ZɃ%ak,BWz>e-Vs}++BJNRikϭL;L\qUACo4ҪQA /Aq;NTGYě 6.OH

E̜vG+,C9\U4'gNbP`FG+ƻ҄Xg*2UЃe㜠;VW_shdty\s{{\㡨&n]I6MW?WU.$Ŕk6ء;oA~jЙFr-TGy't
e85&|4 $-MgtˇU֚Y:od3B#>l̫-x\_R\5nIEynh[!PŘ҈!RtcMҁQ8913X5վ|69M5NwQaQPdPQxU8tBW*
f Nl}6j zqCCu:S]O]ȨkaI.&!>fT %Sq71bPHdiX 6еCߡyr\%Z8%xܙ2J
3a#+(2]Ew[#1`?)D_Tڹ|(
NErS>	Z6pBEe/XP7tmݱnqڃ6;\b0}:z|v{R9Iַ]Ń.o_%G&PER(;{8ZNZ[<3`qjC<`.qkR5r}3XUZ&ߖp!E%|jvm-f;Q۪5#tp`quQ7x8^%h%:W\@+9Mzn']baÁFy/R*tˤ\4ƾtq__\x#xD#.r|1zxpxG&xj(ʜT5e1EՒ}59E0\[$n+3Ŋ^5]%L4uڳ<	i
XO5F	![^db"&d+mhf̹sVPI ef)_i?2J$l3Th`֔61)ims
.$M8)=?EebT6ڢ9H*,c(de]&˙&-t:<fy
 ``xXIlUgsH4[yvB6mfO4i"L{Ɲ'UZC)J(z@\*
!ў^Pr,-'T{cxI
"/߿}M~zv3'v؏.hk;f+dQu.b3(bΡ+(-x.$!y5"BůxdwM+п*JyOkP{F-QodP\/:BaW9쟒Wgm}y4{..M5颤]sRt>g@Sxah2X  9 B2\re%k@AxH98@,Ũp,PMte3vx=ҲsAotSoҾ_7:Z|9s\rTD5*A^\D	#qЫYVwdb0*0_Q
@+t4(-U5E$RQ*	-l\mO՛yu2 "F3Q%T!gBw̺Ƌ-A>P'iẑAŹQvVْ5XIU+JbYKvri($:?w3Bͤy(AQQ5T0$Θ~:)hR@DY#cDuK	R+1~`4pPt̹hs$2UeHOSRz4A+v&itrnWy$Mu"Q5M\ =]fnG]q3a/?nj%0MK@wj\[[Eե4FwJ2nUa7|VYSRl>cZ:4fi qA23߻4U5 )@р(k@4q-zTYkf|뒭uDac ~ь%NcAVq
&EU)h"N7VP+cPú3U3P+\a3ӮNjfvBLUHtAEoFQI';$d\Sd޹ T>22ǣaϺiAcz+1D<)Mp\CrE[GW|6JrԨN$
Xd֎È )T_Di쐺mR@ҦCQhu$į-iΎBw{*(Kj8"<(HlĮq29q]h3)66㭣Ao_<\DZ>lWCfA`O%CMt'	q8gZdZO23`q²+6<`6qR5r)3XA((J);Pcym/SL)<
Pux֎Oh2x8}B)-G(<TNnZiDw;]_N6;J_}nkR*tˤ\4ʾz=tqW_\{CxDØ|rJh[&xb ʜl3j %_js! tnvfC	-,hyɽITf؋j $tiB;5Z	<gyȇQדO5[^db"e;mhzԹ}VPI ef)R	!8,+[5ML9srZZ{I5Ρw}:MRI͡m(y1
*BY%e(GzhfG/Y}pB?RxXKlEp˩i67Ip`JMӦxɶ]kw7Ti*$r 
8 Ѫ;Q\D%`fgX{7E\2?֫5u5Az&^A	zs/ȹ
!tݬa=#u(i@sM.!:O֝e͍lXDrSZ'H)1CbtI"@NP~G4a&s˹ax^ĉ]Zp?Ez9今t4Yn
yRDg|5Azp<LphA4KV aJ!f@NsP`;MFw.o(]_],լ0ov/]6X6'8pQ	L]iϚ#zhvv~dJKA0R4_ԓ.
qR
@\1
-;L9f)P)-:ݎ7wP5-gLbRj&G
FOC/aa	wdoh7MAZE͞3dBH2- #rEneNY4Nю@GMӆQ6' ,+hkH,+XTYW=1ߜ)Q=G:L^k!̣L?PAGZێn7r7kgx<-ƨْuS);zb6Q>^Z{n
EV<mwF)GĬf@wY\ g,wVC͒uwnRbXg)}i@9wjmHE2Qq)$[pXd+AN>uS\slE:c djzvK	W3b׬jrR;iMf4%&)EVqHt K3(
u%RQ:+	JfiEF&]޶*W	Pj'TrA~K)4q@kcբ(V;VM1hpǰqR,ēi.!R_ap#鸤ǯ%Y&D/8YHx97P!=q*(dWP	'6V}>cOӋ4?{A>۬̿X/;햫$dP Tp#(	S$Ӎc⁢8u?7K@w8k9ONc8dی>
GiK3DurhӸEy=JmOG6z/kcTcCHNoLQ!,84-
xl0zw2"tiټ|Z_6>
$\C&m:uwx@ܨRkl	0S#mՏ󷧂Jp8hxd]7Aj[~>K[ج("$=czvңoi}mBC;Ŗۣ胧6er4B+:b ,VEkY%#bK+U^ŭ.#˸rZπ`|9*tm:ѵ5V%Q_ŃK_J&+P  gL`:2D9-xUZHWn°b0tmzf`)_<<jr3xofz7nx /646%7*x 4Q!51546%Sx> 4Q!515C6^s>E'u$?JD &]&MxMJA9&AHb/hH#`-4bĀv^6x{L8/`g+ZXv-g>ޢ'($|)(&mYqlSyVpȻ\֪rP>tJ[(r˛gߡ`B߅Y{+5Z"7wSgr;geiF,ٞ]kC:<aGӰSDkbU> c/YOFBRڟ>gjdRAK[qh%fMg{קY\p0ixKlUqZ'n<8i+UѸ%GJ'u<ԙ1H( B
eQ6eãTH+(+l(;V5R˝:~tcswsν3ǖ;XZJ=@FcijՄ]5:V752V6)Aw	:+*%BQe̯.-
˵c^㬴ֱCm}w*%|uqoũާ-m݇
sr\ǟc}F~ݨF]}Ȁ7sfi1^WZÀ)S|h4K-+,&\"]{sK0\5*/N<eQ]L_-uu xz<%v#"`fah1^SJeuuឧ٤qP24GcE[-Cpe慠:ՔL^mAw:&IU۴Mn,;\`^7mO}fS9iLޮ5)Kڄ4JjEe*m:8lAtݠHT	h=#$3(,P0oLJ/<
$**Jg%^E4/|ZXrY~cO^EJZF"1]2דBZ R?qv0wO8˕v~j73m#cOR"V"JKrUh	H+x1;ٜh@o$ʜёN3$E~-'(A\!PjBONZV-dC!Hݳ'Sdlvc+낂<xE
"PT-a
"$M+p'Rf[n*66g}tq@;̮xr&_NJ{0g/xL%'{K|6o7ĤqOƃ4k|H4z^&rQ#[CLRUD.CCYkhTdTDjFtj\fSߜ]xJbhBn*JÇCPA 5VG#{gNglIDʏ)f21ᶃE} kCa[b4̂>ȖwF_8ˎ qg_UŢvekB]%,s,M>ࢅJ%3NzͥD%Vf(٦k3*<me;#,}ZR\rB]hdAoؾHfZk?4KaȁD\?U]7xoB.\{IN.19Os5wKA \yx{8L'4 d	_nx{8quH 1C뷱x/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License"),
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


/**
 * @addtogroup LowPowerAudioSink
 * @{
 *
 * @brief The LowPowerAudioSink sub module provides variables, properties,
 * and functions for lowpower audio sink.
 *
 * @since 20
 */

/**
 * @file lowpower_audio_sink_base.h
 *
 * @brief Declare the Native API used for lowpower audio sink.
 *
 * @library liblowpower_avsink.so
 * @kit MediaKit
 * @syscap SystemCapability.Multimedia.Media.LowPowerAVSink
 * @since 20
 */

#ifndef NATIVE_LOWPOWER_AUDIO_SINK_BASE_H
#define NATIVE_LOWPOWER_AUDIO_SINK_BASE_H

#include <stdint.h>
#include "lowpower_avsink_base.h"
#include "ohaudio/native_audiostream_base.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Forward declaration of OH_LowPowerAudioSink.
 *
 * @since 20
 */
typedef struct OH_LowPowerAudioSink OH_LowPowerAudioSink;

/**
 * @brief Forward declaration of OH_LowPowerAudioSinkCallback.
 *
 * @since 20
 */
typedef struct OH_LowPowerAudioSinkCallback OH_LowPowerAudioSinkCallback;

/**
 * @brief When an error occurs in the running of the OH_LowPowerAudioSink instance, the function pointer will be called
 * to report specific error information.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {OH_AVErrCode} errorCode Error code when an error occurs
 * @param {const char*} errorMsg Error description information
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnError)(
    OH_LowPowerAudioSink* sink,
    OH_AVErrCode errCode,
    const char* errorMsg,
    void* userData);

/**
 * @brief When the OH_LowPowerAudioSink instance report current play position, the function pointer will be called
 * to report position information.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {int64_t} currentPosition Returns the current playback progress value of the service,in milliseconds
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnPositionUpdated)(
    OH_LowPowerAudioSink* sink,
    int64_t currentPosition,
    void* userData);

/**
 * @brief When the OH_LowPowerAudioSink instance report to need data, the function pointer will be called
 * to request data.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {OH_AVSamplesBuffer*} samples OH_AVSamplesBuffer instance that will be written in
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnDataNeeded)(
    OH_LowPowerAudioSink* sink,
    OH_AVSamplesBuffer* samples,
    void* userData);

/**
 * @brief This function pointer will point to the callback function that
 * is used to handle audio interrupt events.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {OH_AudioInterrupt_ForceType} type The audio interrupt type,
 * please refer to {@link OH_AudioInterrupt_ForceType}
 * @param {OH_AudioInterrupt_Hint} hint The audio interrupt hint type, please refer to {@link OH_AudioInterrupt_Hint}
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnInterrupted)(
    OH_LowPowerAudioSink* sink,
    OH_AudioInterrupt_ForceType type,
    OH_AudioInterrupt_Hint hint,
    void* userData);

/**
 * @brief When the output device of an audio renderer changed, the function pointer will be called
 * to report device change reason.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {OH_AudioStream_DeviceChangeReason} reason Indicates that why does the output device changes,
 * please refer to {@link OH_AudioStream_DeviceChangeReason}
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnDeviceChanged)(
    OH_LowPowerAudioSink* sink,
    OH_AudioStream_DeviceChangeReason reason,
    void* userData);

/**
 * @brief When the lowpower audio sink play to end of stream, the function pointer will be called
 * to report play completed event.
 *
 * @param {OH_LowPowerAudioSink*} sink OH_LowPowerAudioSink instance
 * @param {void*} userData User specific data
 * @since 20
 */
typedef void (*OH_LowPowerAudioSink_OnEos)(OH_LowPowerAudioSink* sink, void* userData);

#ifdef __cplusplus
}
#endif
#endif // NATIVE_LOWPOWER_AUDIO_SINK_BASE_H

/** @} */
yl-%xKAI%YcD!  Qԣ^lq̺̾3k(EKυwAzoB/ZFEb~wrEWgUBS>EmL2nkPƲ>XH4=3BIh虐.
U+i4Ĉ h0X*!Fz0nܚUOsNy|*L@mҤH5gV=.tiaOk*-Rw!}f[,_ۏTOj-.HD_C[E1fX5!u:/\/XeX'r8|/VNŚͷMG3>[L~X(|+yGvG؋2൒˧K {}sw.*je=%SdHx@&'}Vide%VideoSink sub&# and functions
 * for lowpower vide3vide4Dvide|VIDE$&VIDEN,(<stdbool.h>
#include "native_avformat.h"p#YVideoSVideoSink OH_LowPowerVidek8Vide=!VideoSinkCallback OH_LowPowerVide#nVide
_VideVide1/buffer1z{Vide$Vide!%buffer,
    void *O(1Vide]vVideVide1The error code returned/C during service operation.
 * See the definition of {@OH_AVErrCode}D"0string of Error description information returned/during service oper~_VideVide!$@=Videtarget video frame arrived
%VideVide1const int64_t} targetPts Target pts of renderred frame,in microseconds
 * @param {const bool} isTimeout If wait target pts timeout, it is falseZVideoSink_OnTargetArrived)(
    OH_LowPowerVideoSink* sink,
    const int64_t targetPts,
    const bool isTimeout,
    void* usl
,Videfirst frame renderred
%VideVide1N*VideoSink_OnRenderStarted)(OH_LowPowerVide["Videls that the parameters of the video stream have changed,
 * the application is notified through this functionVideVide1EFormat*} format Carrying changing parameters and corresponding valuesZJVideoSink_OnStreamChanged)(OH_LowPowerVideoSink* sink, OH_AVFormat* format[Nfirst frame of the OH_LowPowerVideoSink instance is decoded successfully, this
 * be calledVideVide1N.VideoSink_OnFirstFrameDecoded)(OH_LowPowerVide["VideoSink instancexVideVide1N VideoSink_OnEos)(OH_LowPowerVideUVIDEJ'x֮a6F͂\y%yɩ U\]C]<===j :[BxTOAN`r~c0**Q!Pvgѽ]A
KilML쌉04ف$+c]ڤ>QMC:`=A"Ro|đ')0BV-*ᨢ+6]Rz\WalXI!-|=@#/}#,i%,~U'+4XZ&s,YuU7=sM˭ZA_l
՝>/\67/3ySgS[qF{{}\*D$929¨==h*kJ^tՀݵ^$pzD<R816WG+y@$'~Xv`yglO'N1% 8@q3uI=~(thk `bHD2|HTf4ˌ7һoRV@2D>M{!8c/궣b%Z
PSYPADPZ~mxw%2SLsGG)f9	a 葜5=vb#D
 	8%]:*N W6j~K}h7i^R49nItJ$"dxeJVp\?l!b6qzQ텤y	joP'.
A;4	43X'R&2wXHr-,=\vgm9=ٿ Qkl+x ''(dvxTMoSGǶ Ӥ,rIjYU!(qjGI$7/2瀂A3TJ ~Ev?eWĝq@g{9gү_u2,)mJ<B@3U		8Hж'?}q5<9{{f2K>T)6WZ7
qRD6m6'z5g̼ySe=1`Ӣp\s2r}V%q$`Hv)ޏl3"*؄iЯ3ŢO ?mB(z~,g9?fegL17N N%BJ@QfPI+VmJAF3"UnM*똵J2[sBwqOOO<u;7s4)jzĒ&rj
$(oh~+,?Qz4ї/6t|M`WK0	$!EC_W S;lT݂[e "OziԹo{jI2(k7-ctǎ)CJɈI4sfr [6v`7NOhg-G,T:EiSZѰb$IbxC!\h1KHZk)>%ϱŨ;K;	UCF}$G%vM*wl;UC]]F(]JNPp78lH1TÊO5G|POj{ucݢXW4?8	5Pܼ(;{~-NxkWkW $4Wtr@R,\ZZ

Z\ e}xTnEǶ6h8ISJ@B%8Q*Zwg㡛̬C'ԧ"@|E#ĝ18m`_ܹsϯV.XrdֿV$!DY(A". )??clp}|Ɵz9\mS6z3 B
K	QK}'Dwt_K?r~1Q?c7ǳ[:6	F'^O<{},NnYQfדgneLO\Bt9|]Х{
Td3ȃ*	Faa&Xr.(
bX7
(Cem[G!XKHenv
K8M<|~B?,XVDSe]!Oފ~9ue yW=p5CW-'4	/͔`gV<d'g
"8%L2m Ē>o&}mJ?*Hvg7st玩B&=6`q6b}_O]޿9<{(nƫ1!ZKz4ECQdCIiX3J1܄+1Kuώ;k(?%hXKV{	uCFCp$G<	fFÄ,FBޡ>>RuX>%AHE78lH1*eÚARdk#FQvbQl:^0ܫHucY9h~ٸwoomTR
2 gx.2U>jޔ}^u(t 6x.rt+朱̨Ml La(x.R\h)Zrnl!믷 Mx."|Xd\Vʊ
fO x	prx.X`򓍡̜UmT<׫ yqx.2ϛ2~Ե}Qw xMo0{v-Mn@v0EBIG`VEPp?(kNoɲƺZHgk_<ߖlᯛol]^Sϴo$yxJ2!ϙfp+T'0!j <VP{ sp!rdd+6Ps+p3qXTfp8"[=+z[v/rJ#q@G(D*3NZu&c;<TPi|S'#RKTt,%lEաſP^zheJU(VxORc]L0%6ڥGՕKZEnRc(154#)mWVv-QH"ķ0&D#~y<u:%4Jg#8F$qL:Rqlf/Ni2 aE
.l"
gO7?x.B{zOCJ0]ӟaKW9#][<YBt!"'Vx< ))
_'
W{}V"7X 
 
]n!xDc63\- a*xWO9GGtӣD
	J(O+lbloBTdnp˕ә=~<.+D	)@ԁkE^*7C"_MXFZU}X
bJ;,i!>X:
R=/)XJ7j5ZN yA/Jw%A83ri3Av@o|SZ!P"!X6 iF4I5չ[
^O&32^]
PM`0id0	Q{]Co<	p>^!}};\@
§ҰTr@NqD([b*swjZ)T/(r
J4si9 f^O!	ϞMu3eNOJOz"lُM#1;fF:(0`;|FМ	J="=+K'LjKnYg88wX,Yh0-ևd)HS)(G^޲㜬a\3'[L0+JFr +:<J7Iq%]ʦ:SI$nTsh'14GdN0vh0HF*|K2ˤrÖ"-DcѬxTyz0Ӳ,#rCDw&4RVٔJΤTeEgMًV,PIQ.X4SQH;|M	:fLP47Thx:,/4K!敚#  whtT*V;`џu¬.kJC9zWrA&ևA~3a-9=[Mf:Z}Ϟ6C>h*MiRU{׃Go{&(JgQQzԴ۵(ߌ`?׷Dot5LSaZ0&H9"Qi3Sޜ^vg V!$ܕzTziZQhd7\SKy8e0|4$^do/54.B~	2{2ʡ`Sv n3iɲfw#:=1Fs?4n[?;μ7n;O=hEY1n0D3ߑjE0֣jٰ *Km\*oNt׫R>WPlݺ
ίRl1,Oq `|o|w|hVC!|l1 )	˂TH'(1?þ[bjRۯ͈uz-k\nS376^wXS9Ynk	rmozy5D
&7C?;Pۻ~JKNxuTMkA,m*J-"^Jу"lԠRV<v>K Eғw'x)wQoٙMMk{Zvvz/3o~ LkxߔFnzaBj!T姏AK IyQ͉̛?W>~!(1yZ	
gji8C=j8 Q7&'(K^Ji7lG&	4H"<ųӰ(PiJި--|V3C2IѝvлA d!i( LⰻĊ׮06[te.dָ¼-]vj\Y_dh76-"q@Fhʬ$j'C9qkեjyՂkxy%LK釨Y)^u>v?]Glq=<Onz6RsI9ʾSi
燼̯h;>n\I(JKd'y׶il-bBW-&6~!26 ; mzr'0lZ٩*Hh*W'm(.`(YT@QۮlӢLߊLNPL ۸>tuJ9!I*q3(8NxD?93y՜'x;!uDj4슛2n] [}Ix;!uAd&l^,?  ;@v+x}JA ]SXGLƠ`D4lf r`zy$G0jUcԝk>	i7h.yo58mGQ-0+zv`\*m1^P	0jL`.&՞׳H䖔LƠ:-͌ڊHPNkfd)FƧhI. @АrUcb(=d4-o"raV=^"ifqOCcJZm&_98UN?X[dVN	S ؞WJQ-ܢ$~	kQ1hx;%u\jdo׸Oǳ Qbnx;%uJjwVF?X/!x;%KtwVF?XײL
 Qx=rFϫ@9c΃gk+$Y%$ە'4I@ $sS=F"*q6O>>7x(͖y4W/;y6
8zG'W&Ƚb.Qe}{}{NLKo/$-R
#4'"+(tőwQ1u,jtR0܇2޼|ywwwi>{0g X)^.]F9lv 
	w^{,["wyTDltZiHy4)
4xkw `OgKo|{;_q/g/;NWS;otx	#f9 OR
ӔAi֒Yτ7KoELHJ 0ih~A^"ðHgyZfe K(A$;(%'M8*3O䩙hkW剬 V\^kW LI)}xNgk*R,C$%kL'Rbqd6{h!?HmCMTxoQDOhꝎƟO죋է?Q"VI .C,IƇ>,<zցki.z@cm#$L^PPDb:R<{v's(XL@qDr2yo'C❧Ydf]IAAҠ4
ATװ1N@q PF~߽r!:|#"
EEFׇNā(l& 4CI/dGg!31!p|8"tX+	\iNAԂ?)!ͻ(Aĝs <R׳կ-[һ/(bk%\B=PHDJU"uߨ;k70qQ]-aB,&82l7ьo^X渆yD8;r0v|@@E`tb|f>C~FJQ p)((Wjʇ4Fa`1^pA,Os0@kh'%<x^G L{9AܹWYjC/4q$K XX< c8)>I_Q;Ks9@mqcٮaJWm"Lr筺&jgtrqq}4Cif, iL+g~}_TQEWqVg>;?]\]]~_~ejԏb	#Z>$y~mv^OHaxe煬4>=EŷRLєH.eh<nV{gr:ǉw@OnPJ([v\j3qOmA3E)6ru.FS(keqxekdK$K=$jO.&4YޭԼz1rXY,MdytKP/a!c52v=$*zH6!fu	bQnjoBvByY"&lJ-pkJ J$4ݦ.Ս;d4-S.}ݕԽD5;kci<I$܎%/0_'dbz_|/}K.+x];>XA*&I:Es񘧋hl5m6 
?ۨϠv3t2bk;gV##qn#Q3,t{eјܝ0P.2fsP@.?j;hy]X0[8bժkt,Iai}hEǓg*&P0*
"Co6S.<&FZueZ @X!4nӍ"O24i02!su}>G/N%"D
?hX Jt/*g9<Hhλ\&<ODb"謁А|S\ ^'A|Jɂ7b-OYJ	C@)ń179VM\E* -m(X]u]˴[`ׅ7 *79ȡg]S
lȄ}/|BN
4&ӥU@}+F}UЖIkz3ñtsV
kq)lAаN9ʥ>4N4Iu~
x GjCk"b0Ng5`%ԊRg&0h_ot7hrsn2Ql:Ǚ3WvZd|rnGuR{4!ڏ$OYe5dh3B)3`mr\(M0GY*yn
O/%/MKg.Q5vbqU8pWSj֧iGv<%L2,i#z?0poNN\Xrb =h밷
tIIQFkՕEo&Bxam3yc憈Ɔ
puWUYW:	݀Qw02n0t;
-c^P9IᕛPInCG%5MV(rRm9W-K{bzJ VTrؒk2в<\FZT
x9ZpBWVm:z?֨
	{qurpb`hlM2JcUn_M_5چj0~ ^Iʬ9ScOGןNGGNW:\^u nb$ze=ŉo@橝M^W&$fE&)NN>E\S	@Eh@/BP>BJ7#K&jjbQW@%5h6zU%MUMPށeXyMÝQmt{dkAY;Au+JdztZp: )cUj	X8C߁QzJQQTaic=-:績Wǉj_"QW~OjM%u9WRV#g'c}f#zEfWXBm	5{gޫ=3Nx\͖{ҹi[=uiܚ|X&ݷ׻4t.L0=W^5v*O:IۉDēLWȄBN*T)+a,R {rZ>D<GCRpr=sP?bҍVmDU$<6^?UM_?<ZΡn&쇻a֩7a֒N^.s{,5T/އ҇-?7hj%HUuV}N:AxG/ԱE+=q/:xB@;njf	^%ezy>A7ɭ//Rבx8e\,̨`
}ZW"'UWp}?"-1V4H5V=f*15H34UW[b^p,&/Ed:X[^e\G>'qkW[kPwdߴ5oɦ[BfϑAj(r#BY-tswD:7Efd".VDS5dIhhԮS+4jwRSc	ڽKlҡ9]j:}֭ɺPnTQB7)V9eko#2${mVvj:C}3NU#WdQ|G3 ~m6YsQZ( ܾTԌU=I~&W'x,G_Ԇ¦ >sF,FGV^̠R6nc"z'"Z|sܳe4JyIL%&{FN*a5>TWQè´i}u>0\බKsͲ=0٠n.a+;.|(mz=nl.-|Hգu
;`+o\Od%SFKMW
iw,L [.'z
I:9QD2_rny
VZCF6G?1w0@]La-6U&2Fr0m	SFw҈im˂T^݆д)EVԂ܊~Qfyb4\U#ՑxI6<-gm\lI\ObYMV#arͭg+%-;nFlR?Tj{d`Co5]Jz){մgil?hpQ #44h+^K(@GgӦ񵱤3^J1Ru_2m8&mfP]T*}DP&$qœT4. 5YHbb&F-V+J@W]Uc>E-BIz4r\oI,ǣx3 PYߪQKaJr5\FhԸtˑ݆sU8+z l&- 	ϴuf &i٢F>u>5﫠o00HQL:hq*Dn`!b˄އ7R73u7&V1y(d;V3-`r;cj=-Y@վT	ϩ-tD(tE^?<oFnf5h |NNNs*ɕ"T򁈕-[1Uj%: ,ֿ%ɶCǕanICquôO0%M {g	/)r7LeÄN)4ͩ_)5̸N~h'RnrB T7mC)HJ=:d7BґIza'f(ܤUR%@K6M|P(73댟kǏCܴӱa

_~M"/_5^7~7%.F`JM0{kSj7K+oX{UAgorpA$Y3H!CGbm,WeC6l"Ζ"Kʎ#+[^k;kY>+r-K譮.)k\udVQZۮ<!N6>ި=[U垀3!ZB\7ZZQ4v1DWI}~#DH<{Eϵn	iJUv<$ weH p4,akc7J"]&0ֹ?#L$dOxY	~wi~C l. |l<myܫWZX@mkժ鉏mɤǼN\ueUŹx,l(9:`jHwx^?QM2FI5 QӢ.HUc]R@=>& R_S9B'*{_6hbж:oPb|\#8!:[RT+۲qj*Jқtj_n&kC( Ut_$hXe+ٌ+]Tn[TxVdCwuLUe[e/K3U׵$mnmYKrT:W9D'@:/[2,r("Pe7rD]yNpՠTG0vNO;/A6dA][e(ˬ!&m_=Rvo=5{hT![ igKE歈8e:p\M78$7am[C:9y'HDFF]AEhr|?L>Q``}6gD̼xMӷWiec:|ՠxiPܸY+|ac]Fy|OI8TQh5pW@uB"^H+|3uZEMVwdTLFg4ʌ~<'XWyMQ]	yTL"속j$
RJ@	 C>V'mTY8\H8OO{ڧ30E_XD	nzx"@(;%w_WZFH#k>fܱh5`4CۈnG@w (Gi}Z<Q#vlQJ穱{(;YcYqb'[*W<
Dũr1НMYXe]Z6z=B9"v+Uo_W=dt?׻|}GQ`ܩ}t'S k7~~Uxt|~EEiࢮ5x4K^UT޿[9 glPBUki=-xuοAbf?`wVVR }?D3н#.ϸ7y`=`Yi Rf*m4@;gg[}:V^js38f́~7f>HD7N9&*
Lj&zv?\&"
lSxUOuh[huTu\NH?Mf|HŴL)2+8p702-MQ_T#Ex`>؃C)GWDKyQFET[jm$ךixc+c3и7fz+:Hx}+|\x@ONpz8%=/ͺTs#!ХKr\][uZ"A];c;hK|mlM]{Z.&ܜcw-j62=t0>xuF#Ǡȭ|+v؞Ě[N4TR0t]0-=k' WjfѤr9ifN]x֕Wo_CnX.!V tȌt졢u()©|`?g<ˠnc*/(89&Z+j8K6l#j-h?tyVW@ԄD+6G΢^J)S^ss@N3.gkNAL$xb]XTt2K!N\.SuҖYG`)]s%(#CP2s3zgqB!Xo%&>iEs[B#Bz8Fʥ#|N4?9fBiGAn=~V!XlѶOTy]<4CNh
r׻O"	{;]?4azz0?_xZkpy ݏ Y$XI=g#mgwً Lp6z|mLe3ۤɟNퟺ3Τw={n:
0:wy~>Xr鳥ז</ٵ&tŦIؔ$X_m+.UfN*	*H;.eIQFù{km288ƂejG3l)j;i1҃gL\_s;3Pt}&JfLqM06$dT4ekjFҴS
l&cS5m*TjF􄖘mQBO`&m3'Ԏ	I[ bVvvaLTƘ%WESJB	10-@+5\i8nbZvR8%CJsQ4hLn.s2!Lί-955KgX=\n-ppmդ%gY㘔xKĈDHXڎh~Zma֦̝0m͝!P!'t&M%${c
2 u܋XoԮi呠O:ᓵ\6MJ<9zb+)xszsk'zxq=lPa7
YlQ>hwg(ѕ8i*ĽdH"Դ)rFQ1F-'8L9g
lPVtrm6=$`sт$ESQL`ᑦ!ufa۳_Wn	aQUqd)]lЅU7]Zo7@vcZ60:h9nRG)qssM81LIu%Vѡcf	Y cLxk[n0p$-SŹ@{yrˍBHv۔<d]T<#I.12
YkY:rB@P.e5\Sog*c	vua	gr;QPcY?ڋ㥿Be@Rz1f﯀~3"R4<8IHYпбYm5I_)-aքiPͣ81`04xv`-{#d4uˋ;K/WW/J fPj Fنp	ת?jHY4%Qn,9h	[ {ؑk$Q++pe
7ι}X8KȨtůT^}OMm_E}>G\%Ok&<oC=9@[zV֜_ƊlO|,Qs{{KEk&As]zF٦rz"p
o
Yx٩i?ҹ6X:q
fWqtsmF|euK-˰W}
5@#UYQj8qA<<i^^-+gWWIc?2'2#fbӋ0ӡ1<ayÉ5+Uէ;uؑIfƎOk\3t:3CBU7c#02&LOW9 JcIN!-HH5<vhdw`_zlqqfoŊ nxSDJ:ZdxãᚺL<o[ny 7ialψi6M
zP׌I+5Ӈ>vvu?>k-7Omq̝)BVaQm.܏`6P;"Eep6B2u%@?[{j,dQ;|4>تb&#E'J&hf|^%*JcԡSHE8#czs]~h\0|Fi`=|[.+lub'4Gc
4ɛ$P];	hBI=n0''yR)pNR-U%q2.髃}3׽zOPv^|nٞïLq*{勒mWpH9dq416dvYY./O_V2ݘDKr8l#U6*e~ xKO2r3fv/gG"R}W5lGs:PﱬA' ;n(	/|z?i|pj-Dz+7MZx~RŚaSװL)G9+	`A2GYaT=]m܃>T\J͏p.z~K+'F7ݒt%8:e?L1Z 2':j7rGT*!E_xwDnyݻjO[Y*[.*`_>z@<5YWGB:GBHT.:=9\$$

15[1:Ja~D7\Xz8d\S{)Ik?cOa5h(哽)r'=	>ihCDhS2"XڊeT̝GQV~aڜK%ys;#Y9Q/1"b)chITJ(#B}D|Tv(UڰS/DCik
ﶠMc-2[~!*Np~*3	njltoG5̰:q0LdL&$AtPaxd-㓤ۗPVfHcrR
$ʑ겐hnvӠ/Q@C@4'}cKhiIj0lс['*J&ɺ{:2ļkNpՇBs]m :G3/21C>aaRetF c!284RDصX16Is}=d~ ԢET4B[HXb=_j(3T.l
B[peEd?qv2|q]6D؇*eZs FU·a~'p_Ea<wzp#w7V+%-HH<F}fOu_xvynT;2&	cWN#	8w[c8]|b}j&Պm/׿Q\ۿ`K?YÄė=Jof)MOR(yn>'ZB>CJIͱQyAȡ3~e:AKd;Ca}.l&i]?|q\ڪ#b\TlJpfHj8w}Shue0xdЈ!	Ehici#3M$(Uj?NhAFL6|߂\Fn,[$2r/Lexj~#<8Rʺ;1(]m[+8IqcSĜS잧sy?a,鮶U^_މiYJ4[t\{J8zx͵9Ǿ )t4K}90_Q,Nӫ:o;[o6KY6*>{y{K"~2".8veQ֏dzWSװQdN>~)ڔ`$6*m~_uj-MD^}wKwKo̬mpCsnr%SXwܙ7jt n :5sx{i^&7+Mɥ I9HlȞXPRZ:9~nx'oi{N %Uxx35y L
sxi^j:
y
yyũy)$'s*&fN>\dr<X!*
22(O/P"4<doɍ%F\
Z
@0ysByf^J~BQjAQjqj^IBIFBbA,׊Kh  <mxJS& .Ia/xi^j:
y
yyũy)
$'sE*&fN>\dr<X!*
22 ',!.
x^=dtJ2RS2tL,b
*&fN>+G¼%%&'phm*PG V- Vf|@ T)+goxe%&W*嗤&L.L2+J-.KQ(W(HU(*)*QfRКCS& 7DxY	L
l'/6YRZA<%$Q U!?M$#U!9hC5iuQq8ny4f&lT(2YލmIK&'+Ng1d|M?Gh6nY
0EZm`]R1l!*{6%݄&⦿MR 	FɆ:gvX"Xufm'of,κS<dy^ >%uxnEǥM Zq'|42AMԈ#̞G].3NM0 \p+pfgwk	Dvӟ.=;;<Y^3"58BCPcٿiβF3ۭ=W<237*Tp$XVAs(Ĥ
g{}c5WBX$Eؠ=Ǐ2mlʓnN|$("	cmp،p$?BBivZH'"ʪ	r
M
"@$bc石`*;)u]	P~].AETD Kd
J!7EΙ3Zo#
3tH076h`Yj{J'nDnF1gQwTt?$?V)|%$XV6̤p
P5j6ܝ=ez
v5.Sr9mb*"/Rk.R-'0\ Fv(*޵v_X:ZmD9N')wZfcڳk#4:aHPN[.Bס+[jJ}́˃`}'!`&אP6d41{H7=ޅ8>qY:^**/=ЫW-\׈pp=LCܖ|ATα3e5ˉLi
+9aSx10杅:|zsM(-?YW':NLv{hD*©o:e9k`NcH5Gɔv+aUOmБ4!%2e*^D[[K6Ҕ6t2HO UT.ڕk/ڿJ[-.}[umhԲܽuHpXzMCvJ(Iq{xz*({|'(Qvqߥ{	3lDRmRIfE ,Fmx;tɵ^ -,(xkrӆr,KLQ(H,JM-I-*֛<9tC^}y&7M>Y]}2?r~^qBf^Q|@s'wJO䰜|SaHXNnR<_GhޮŌd2SK2KRSKSJsr*F3Mأ:ydq7Ol FRvmwxktiHd>/ 'wEx}n@ `5ni)P 18~R
B	40XݖRjIY%޵Up	B3 w~3˯)9~0rFݿ.H6]ƕqyx?gvO\6<W#RH$a|gJI"H۵S^@]ju8Bٶ^L|M^܃Y >{WZ:t9/XLYQ` qݤ'
POσ)C9ɏӻ45<_W.j<}O^"c/]σ,;8`ؙpW7rK"KDaĴ܌<.=迲J㖽ʰbGb1ֆiZf3c]_{$V-!T_EB=Pogfw5 d5#P8t߬X@uMsU1fQIiUF>S>YX+ə׍c_BIEơr~#xq/s9'/6YRZA<%$Q U!?M$#U!9hC5iuQq8ny4]rsjn)-U&;JLwc,d69Lhd12&՟`6"uy8'sMf5M~2KFHk5y@*&xm>!R 7bf7ғC7;)2[
T԰_$ah2P}sLA_N6ql" ix&F	LI?x ^f: xq?s9''lRZZ^P\ZP_TZT^ZXWPԑXid0'rr<Ol6\g=yTg:[7?Qaԛb PSVKAK (1WhLYjxf^J~V+zti N-'o0$h2lp8DLc߬b)BEEy%
y%Eiɩm̴RdU(jAVqV5ŗN>nm.L5&O ` CZ%0k9L5{M&/1\?h"B [p$pP1N~jY'HP O?9"x?s9''lRZZ^P\ZP_TZT^ZXWPԑXid0'rr<Ol6\g=yTg:[7?Qaԛb PSVKAK (1WhLYjxf^J~V+zti N-'o0$h2lp8DLc߬b)BEEy%
y%Eiɩm̴RdU(jAVqV5ŗN>nm.L5&O ` CZ%0k9L5{&?ڡȤP;90}}Tm	 &MSxx-eňKM>\ {d
4nBx-eY:  <mPn4x۵i^$[Z1
nx۹i^jM%[Z/	%xie%&W*Lf, 9@e$b|d%y5ERSJJR&o4+NMQHJM/JU(HU.I,*Q+I-JKLNU,V!2YWHoOS3 {:xnxuZS&_d8 P`xkA)ԃhBjTdff4B9xW A<蟡ov7M(` !}{߿z7_̲QY@]xOHPKBݐ5| JK4Ds2眻HwWuvIР)AE5hy`pFtbrSc.*}ҼuaCwU:Fa4hA%wgdչ*8&\L-i-`
EIT=\DTJ!g̓)"Uo֤PZM-7 D8']KV\)H2(<,*
4(PW3|%APA7xdNF1.t4	ְdpk"{GK92PKo̧dʢ?氜pHR]\;+M`Ểk)D-0e(AHTّ0u!R2~]1\"z8ˆm̫qҔI9eHrqήL`~@,"q#x5L-VH\=Cu'4ip=Hh."ks\<=b,G"}S<^VBI1ara|4Uo͈ߓt;ְ77@;
Χ	%t.Sa@ZP,3="67׋%=XOꊏ7͇wx	5Dt6옷/)xuɓ/O^f O#+xu C/O^f OWIxuq	>	,&h,iEɋ'tx< ٟ@EJE7to be addedE&J#E#\!KMf7C3x[qs2$RSRsSru6 Tnhx[iͳ86px[}6gcbTCIe'oX`|/Z SCn8x{q}6OL >I@3QxR=kTA% &"Xl 뼙1f3eeXMaaic?`cG3E׏fs=ڇO2/rZ	BC)jj<{`us#}z9^|<m{{cZҡ6b>P0JKF	&HhA['0aDNA00x+R<>?AIۋf=a/2pO	)ǔY.QK7G[gNV`@2IAw"!l5f23@<x0@w>/jÌqVE-nXW$&ɸ4A&<*s7C6o"$PX*1mU%Ci<''w?J]XՕQTJ!8e5Wy$6S็ߺoteچ"9jwˤm"7xJAI+rj9_ vVb_@d3,=frG{nw?f_;oӋ
Y܍2YPXH$^
3Ts
V{a{ײV6`88H@փLP`PwC$PQRR	sm兡Р,?1&!A&7@ #puk3'LqƑ	-^z(4h4z[nxW[~=fUx) ggx1hhK$
*T*ii,[Kx~*ㆍ铷WL6paRRPP\@uF Lfxk
u7N蜼5}rN\)>+ .x9qRy).œ]-&R**V+I-|Klr^8ӊsSKR7/}8T<%*73/X<#$#HH($)d+eg&*d%S3&(g;C3K3ӐL؜/TO-h:YϕyM֓/L^o [jx9qm^&FͽL7r|Ex"s um}x۽ㆣ ,x۽ZAd$V*&dM$MI-LNJL=yE|NNRbrVe 3̍L] P's8*dd+d敤%4gL`M'r@͙\`nɅA^ W'M7x۽ZAd$V*&dM$MI-LNJL=yEc.5P͂Z팓9dCC\kB222JRAfdL`M'r@͙\`nɅA^ nB(9xZB&N	; X: xZ&o
Voh0vdͲnEx[ǸqC/>. .en^x[ǸqCs̡ -wxeJAh/V!!(X`%C63lB,5 	> L!&	(N7s}xW2TfywkO{ tP4LpSDSoĨNQI2@($CU$ӹDpkY?csyΪ\2+G.kq#ܓ#P}S1R5$pAs)k Y4niAb($U&<ۮAʔb<.P]ôy;񃅪H.40k^_D-%1/=@w_^5up@x[8a2^}L.Yd3RJ2RRsJK2"EyZb3SJ22SRҊsS "@e uyɉ%E\
Z
@E
%(ڠB(&;JMnr}t5Ήyeœ85e2JK (`C&w [K(ix[8e2^}L.Yd3RJ2RRsJK2"EyZb3SJ22SRҊsS "@e uyɉ%E\
Z
@E
%(ڠB(&;JMnr}t5ΉyeUT&ۥWbl_1c}7? K9xqC"CbJJI~zQ~idEyj(X"(35M!(,3%X1X!?M(4D!9 1)3'R!-H!8(55O9(uGmem`֤e*%d'U'CTe钚4QY6$5E!3$(-19X2'3(RH28E	'ԔD̒ɅJBhYxuJ@iZy]V@P#P2Ir-ɋQ	-WwϽϗ?@Q&HqLFlo?~$WaF,/a\
s81\"*~v4Ã6J~4<&,wʟ36u#l!edud8J:GQo߷N$⚭Еv6f_h[
ux͸qCCZfNB^bIfYj|bYqrQjj^|rbAIiQ^P	XURQfjKjrNbQFeaĒ̼Ԣb=ʜ̤ĢJ %x3K|SS23K&*mN`
u _7x͸"{dY+&ǰɉ|\'׊nȈ.6)Oxذ)<P;ZQQlNV0$"w3lagZHlˣzq#a[!-|i_W6)kr Ts$x[n2f?fN 8@xjAǉB
EҎb	("bLi>Ia;1C63lKx+ߠ7OP| 	oݴݴkPV$9sΙl׷"gϛDaj(TE3Q&uH_<:|7]J,Se0un2i:g?I%9Q\,f&:bAq9Gj\N_*Rg=ڟDfā*T4y2""}xeqPPB$
#j}XǓqpKw,HLd7#3XI>)=|"qso,iŬV;Vp*+gLN~ZA5([iT|L{UTE5h87&
T@4p{)!ɫS!#A(CaS䱄UgG>ITv=X6g~!dAcQnsZS@\X$fVkֺ6}sA^L	t7
b%&[dlp{tJ:غJ71mMa&*]k[?U0Y*G7aGLKS((0$!YL[Mߐ{XbSҪX ǱXg냓87%.V=V%F*tX=q*KB)Ŧ;놩G-e)_ۜp	/nqѰ` cUDĆǭ	j2/d	̧64ac_ #	hx[`C5Bly)3	+I-R(W(z8I
)))\
Z
EPy|P.P{^dSmaF%
Zpbpy%֓Mǜ4<xUoAB~,g1Ed-Bd؝mO^4IFW0Brbߛx3m:Jj{5^S䕖uR}49(?wQΆ_qU'A0@."A-\M*ɡ]'xAsJ]dcJK^&վc0*6_0y2P_`i%蹚b[DCeȏSy,\E'v`N }8Uo,U*b19yyed/e:[@'u/ipD&c`˜`9@B^c`eد2PI}\1D'|(߬b#FmAkieؤ*(O\k_Bm'װW5<7ɰ.#8iLLE"}+ֱ#[y@yu8O]L͇#my'?ztFh@Suw~Z2jކ<37^Z%k6ǘfaB
(~?"׋7e1P&6*2/3A'Ĕ8: xC~/*$ƒ>.cfB)wa'q)ϱu!P{BNo=b#͢@YgL`luO2HPƀ;g(-'WskF#~2j5g;tEJuf%7_600l3g(no=ǈexVoGq	^?0R7c
H\Vz`1	!;9T)=XjOUU{iE/UgfG=7}ޛվ)}VI*:~pS넺l=,'_HT	[N^HkgW\f0 k7e4qB~o}nv,Zɲ;c%w1\kf#Zyw8v.'Pn	F.]	)K
=<kk|S>Mlf͆,͈y=Pbs[ȹy/h	U.<s7+ǪUC{bA1	yZ8%,B>Vǚq،7x]¨,T\a nɵ=:!qUo!>;ZP2}\ط<Ȱ%cqڧ_L64l[];/C7O~mXlSC떛Qe4ۤ6
x]ejTP`yo:c mⴁ@pfGfU=Pd>חRBxSwV|1/s)pPLxW]>U[thXi1:VWڵ:.vc}/tAePS¡ F#LM9gs{\wG0r+/Z&u&ha@]UgQ+Avuk]\#V8\.G{.ŃïѠmhYƞ; B忩]IʍlXܴx"o"lRKJ*RJ2R'KMho.,曳gofT^99]Z]G,3%5_(KQHTK,,KK/Qe2F&ܒ%
ɉye
E%@y
y@Ң̼t<2@[J!S!N러(+6͓8 7LIx{7+{^3ͫ6D0y<l>
R 	xZ`C[i^rIf~BQjqiNBr~JT;deOnԗd(/]V/%H*d(e攤)d+)A3R=]ĜkM'Nn6 4\x<q,ۼ6f FCVx<,
,I9zvX=^@!x;1q,=&pGnd LKpx! H=/B;0/7RH`x<koH+/ȱfΗChȒ PdK""$eG3~|HY6@l쮮gףur37Xf|G>}$kC}vt3$LG֡G-)1bǅ_M$?#VzAl5Y9FY`)%K!qUN?ْ#04~,s`b4W'8-,ϓnG$CӓmZ&a@Ӕ$k?gĀ y QBEB]!Eh=8	E0f?[g$@: 1"-4F@u2&wphƶ5"!1==tEuZ`3N@GnR.
󈣔d$HLTS@C03'c*tB'oޜ3N~u</Iq;reٚs럂_gOdDGSbe"iF\lÐ怈h2r=:)7u|:
 ?1	lfm9'gl%Eiۤ6iFWfNNfdzӾa??1I۷ CMMc0)h5~Ck`Q_i͢(h/[臙mNl=Ӥ|˰BS7)CfVzA`P?i(%-̓hE/}7meb#;msg"1\=x^r<K/D!lN T'M(h]H=0*D[zE0+""{;9qZF|XSn*v3	h`mu
H[!==ltZAvְxcۤ=?B-/2e a2l
\fе9rnwwLXWƤ;$~I/Pc00qgs鸿+nw:?.{!bVY[\<C.+'Gz]áMckebxzAcbTLb td.
DÜvM͒N5,n;9or2kR(^kwz_>+#8ɵuk>´7|G~UO_ȯߴM~&ٖ9?9ZgַۓKd`@ʓmHt:Y)<ovNGeh^xOvƀ;^Cv
y[mWvYՏIv^\$Lq%ORHے\XD1 o^BRX s&+~#UtCH¥^0A+ٹk3J#aBmfZ
bJDޢ+	f
{:w$;̫1#&dƌʼ:mRUD*L	0͢11,,g!j#ggۂN-4?&%pQBbWQ0 n7xup&ܹ YT2Y-%T'ʨy"} ]5v>XHs&{	@H"5<!P`㇝(r8(2`82#h	2*L2*F.j	uKX7+{E^KPwSh)88YDXK(ǜf?:xn;x W%fa~74SZ!l<UW)g)D3u0"D-,_!ǳȨGl^s$NM%5#R°|5X['P$LIZK>M%	Q\@e*/㹌Yj6-Ȯ<SQӿ/lRE -%Q%ouF95TɃJאO6B}EeI`	Ji,
Vz>rb*)vE(W2c{VhȖ\XK|MD$
=p5&vg"Kpά?5Zz/%,%=F?p~Hܪծr>pQba.zfaqc-U_ym/]ٺm׹VB^cͣRUCpx-I,t鸭@RA"Lxp<o͔	^>buUyF;*>d)G\Asx,/erS`)&'?ZlVߒXR>[BV*̼@XΪFAT2qXr"(eŪNtUm<?D9ϧ<"\\aIYNxØ(\V+`	M`)A"L*l]џ;XȆ|q!s*SyOw'dw*T/lqc3D@M]ZҧCѬĠ{}~$j_ќ}CE	vvSl-~hg6 w
lzv|z*5:&bXH[ŕfNNes$L!e X}oϿhX~^S c=ւųI$:Iq}&YQ5O~j-eC}Ab-	Ԕ[@y0;e.##ݢuS֓>=rt\]ZQFJwwa ۯs	
⼥ltp\@/>:tHoCKF(X& 'ˋSJx(`,h4$^;AxQF{KۯLĠA]!ե.|9ș|ȫ40;rl6öbmH{~<Jgfwnr1J]i̟3ڔw!381إSo&
}<!@iHsm+L{R~+ԁӽ|AU[BYy0[P)aL}3Z!^TR|LdJUo݈sxf{KeyyM>N֏SJZHJӵ<՝	 8|BDPJ (ِYYx^ .vOK?hO~*	*.NzC'R`|)`I>gXKyB%Nm~"jaSn0`l%ñP袳i=2%yWSVgzc:YC[@pck%yXp2kݤ<vJP0Qa|X6M%}԰j]A7&AOze7IBL0tR^hnKJw:ڷLճS$f[Ǯ5f+Km~.iD#ymJ}J7Y{20 U{b0F'sD&ӏOPX 08oՆWyW~wO{/J'9ZNW~;7kα S,e
qc&]dg/X*|~Yh3cWH+X1052b" 2WiNX6;Oc |g)͋kk֋'NʢC
l/a	sA=" XP>8s5X&ƽ[C&	<Xzq*A1Xp"N)9ȻO'sNik¯pX##e?w|>ӿ69>ˆajx_`w`zwxvl>[Ok99QQ#( x3׼I^ &*<GɊհ?'֞K:3J'r0ퟢmC]l`6F-ny'y"r5C^o,YΡ_XtXqJ=B	OX|E"Tg%/CKr--][l8X98Kz:cBRdǂ!V\mU˴{+f-ewj	*(Xm_FY~b{J{|[?d]KQ[}tf,6]tRɒky=`<JKj+JuJtbMH(	<JD-A3@RvGcc)gl ˩~o[jJkǹӒGǌ%	Lp{Uk X784).g64%L/lUWWs=J% :	yGhhQ.W߼7m l%rƤ,a.sՎ
G\0V)(=͒"z>ZkإpkpԆ+g'b~t.` kUe6]}':{'בO)j-٤	"|{RwʆIE41O	ݨtnX,UT~v"=$q6m~oW`Թ_j ^7h<(ntXMuaI>N"c]KOoxⱭ5?Ao%R[&jὋ:Ew>_l]߸D>Nm@xq'{D ,=Yxqfʑ';F @B7xYih\flˋ[byѵ-y4Z>Ͳlkl)3̫߼7~qbD[(Pb@MЅB(7PJ0?íR6=ff,R=9Wo0}'|<iŋSR!&\|Ydk{I׉d<
ߘMzM	:sRl4u3͜-ɒ<zֳNFzv]}Vn+߽A(22$5a	uu)()ͤ`u]DJ7)7ɘ;y3-xg׼BXg؅qtixRDٔv;$Ӳ(Zl󈰼屬i!">6AnFwGnF$ aS&̵^וȫY	RtuSg`b#lZ3=	AɰV{nɨP`*tI?$3bY&PbUk*|MG輌XMsٵ3l悵Z(Z$̤y"Ҡuu0TYL&RWxa"th5r_q'\;z@<lo#2QyeB{-~:˩YBKS~P4Ķլq1$; ׺-%x<o|B5򫧊l:#!gŴ,yθ(:;{c䩮I[2J9NXfz
G?r2I1]Lp)iZ! }K+j}A,4b%-Mlj:YѝZg?KCjw;h@Jgy2+$^/Rk#c~IFNH.]imeYl|b
>Շ(6(=Nx<v]bWY xK~;/	۶~Dq6Ha3TKwA8(N*13Rr	CT7 ݙy*9t`EZSq@)QБNد7̴	/YlaZ윯àE/pЃM=7*tiޙ|Tv#؏Dy5iY@,4F8+Kw]xg)J؆D21oȬVzV9IJ)5&R$UV6OQmєmmBW Lq5m<_Z_8w=<B[DHyuJI%Zti"]uŵ$	XӮ(wFNݥT{Nr4*Zi2E~{㑗Xڙ~@aU 	\Xzat<U bE5z:-pLS3,Mk^Q~=[#9kإU!xb+BWeB&fqP9?_PԹz,k0687B"޼_aб-JIX3yHl#&ncBrAf͑g:E+x?yAi/ax>w;	iarL,֋r1ӝjA5rq!4c͙sa}'\n^k_8 2Wc9<jJuTth0CgR31x9Wמ_{pq?뚳y.GZ"ZaMڠyC'Q?'ñ=&oba&/IvjIr[GPT^-Bݿn 6@}|)}U6fP4+\`p55>R흲hn;A:,׏6U99KvQv$MYGOW	thyȟ"ѕt=7JݤΧАFx #!,9"f]^3y"nDǝɁ$pb"/\ Gpeqr Kp}XXc|RYbj:A2~tz+7pDDk̩(R9eUPV`<^r`Pu#8y؋fÏu"P-	aKhؾm`uJ9gez4;$8K8N7wqIX}}Էwƶ'6/76,<}-+3qTX"tZQl(Q3a)ؖ0t>ϻDwǎ*f]ݦUUvSFZ0R`͇{n厚دE+<x2	Ө)$Leؘm.í=YvYAoF5
{$XL[qb]{@	D]72]hp&_~%SmRAD$T..l:H`YKi-'§JkIWW*:V*&.&x+'˜~[jPpB5#?<Z1WI&4ua;ĆwlN/p7\ybڍpnj廯?1/)z9,R[@u(y^Lc@рz[v`ǅ"F֮Rs^8Nk:|MIf;bjK<=x'SVj4r&B9x[qj}"E7_b*)YCq9RM6Od̮hG:bUvBeM&jL7( xXkhfe-K~[~ږ%Z=ޖm=,[u~Tܝ;zMm@S6CZhX(Ҧ?J))&4p@MϽwfҮQ w99?y Zzqe>HBQS'NU;L0C*ak3$LXahF؊ŘAq\EjHt-nQ+K۠'@Ƿ&R <I4iڶY^fk <@,{`%4R]5ekVEzz'7ÒoOф
y)%zzdSGdM]!Kj6w(Wc8l˚'zEVH☯geЬ8Unk(q<\nw1!j""2
3rRN. >v>YMXVr?$"$DڦkqkOuSsq#)pbb<#TҠA n	낹vqZ:SC	2+rۻ/'îel.s`n<NEn&cZSQOO1uD<={!˫q&If0"/&5.;F3r2m[sho31}:6ׯ
T˫2#NY44Ia+~>d/,@qc8;g1]D)C9-h9G/r"I1]bZj@	yU^6vgmMyTY5ib6;J%kW|9W%ciKT0kԁi<4b0B<n>ihOo<>>$;r&љI)>ĳK/'ջ_-Qˇk%OYi#Q?l,A`B._qpWsT,N17`Vtj:물hC>fwsTw1PhbНevȫm0CŜ9^ε9: FNrHFچ̿:Zp`1 Tn$%P^NZ&KKj'0'c:ٵNm8K()xckXXdpd=N
VyY9=ڑc..R\N[Wjso6GkNWАė"#YHq kqmTY#i@TٞjYФ~VEJ|	lQwxCx.=|eV P˭E_w ;p%D4Wv(KK&NBaR	b
"8ijWy-̊éC{5LgCr+[XW=[ѲOf!aKwc7vyy-Kiʌs]5+]5:\XMJ'AF!c1v_gҕwY3Ts{V)jAƓ=J9_D3Ix?
ߝ=kc;]fgt­!iHS沱ΞGwjX9s e*(có︼UK1{4IB]5ka6Z}iqw٢g[.U}?G؛ȏ);	[r;we͒'uNPIrLzxZO<aoҫVyR؍=zÿ)i >8RHtO|iKuT(:cixU?8i|~QH6@2|no?d=:גּe`uYIwo݄8X԰h|ѹqOu591݄gѐ̅Fx*,1"]{84ܑ&"fDGwd". G$sĈ!1 ر$$U5ɹ@FO߾XQR^F#\-IE#8唕FplB{oQ`TeC9yЖ7B-h8~_on%YۂꚶC}þ5D;*,T4am䵑r
pp4yIEp{p}gO;y%zmd1:3j
PI"?j:ݠޟ knpKf|>rrxed}jy^E861e$#|뤰Zɉ$WD:ʃs58$SֵU!7y{)E<WQnfB!!p}t#r,sMch{!D]2m>&hQ|D;/5J$ܤPqp/߻t:ɂ
\"pTrӚ_\3t:*&&A,+'ˌvj}g5Q/]'KFrTb"?y7_,j.=xju2<&+n,VH,/UI@TL(Ėl)[ᢌr`b"v]e(	p@PȂR 퍝!yyũy)Ld?9JxX ȧ'!8ETM$
N'x'!'+ App'(M[j(|}5	<(CStOUOUtxjZƓ7[R Q%x;qr[7JFO"8YT_K2S&I(3SL%1ϒå|$'W  #ex;q[7JZL K<!x;o9ㆍ,7\ɪ-U2qr'k+R̓|Xirmrѓ$7O?1ydQ	K~-.RpH*LM'(*KNU02LΗP>KB4877dV?qrEp  $41x, ȧѦ[?MMl`(b)QzxSP%ix۰$6K-ޜzD YfH	x-   1l%'W@OO]B\xn@$*	LġTHHT
bo]kV*oC}@ wނ3ޣb부啵gKƞMB+
ʩE!'KK*	oOkk;}0 |-F\ 	C<sLx$t|]<t7pr趝ɸoｇٸe8(Xʬ=t~z^e}:(8DtJbRv3Jcp;̕$z5dAfǕ`yʮNqR&Q`XeD}t@TYywD玜6ֵ>,
9nǻ>9n*NS/6:壘Y:Sb1-MČ"s
T^sgfXi|MK( D똢RTژ
~e:I4
,s99fBhM9;*«,?эٲV\Xq~^,,qxJ@."(T
cZWZFh1'`:S&SH0}څ+_8Rbf{=
Gm#Rh3%.鹞<EP"
rÉOP; 	Y1g(^ʪZGz	8Z0"c>vF~ W1MLo1F]3kRqFto.y:%e+u8&ڼ|iFғ2p4$JKXWnP}d{3|ͯsZ--ڙA8;-v?ˤTA.o)~dIAJ**:|<ٍj,/UeK>l5x[0q%/
{2pMN,%f ?boxxqCNKVl|ũE9%yd&KO<ǁ_U:/-Euxak..}--.-4<TRJbbĢԒԢbLtbiIF~QfU"  P.-19UAf:BPSh>HBZiBQjIiQ^1T${J!d&m|PfGMA4h*]P2?9(%3/a:\ A D_jBR%"yW(p`c3Sj'jó83;#Q\N~d.H^xr? X!xn2Y7WqNNt n	CxθqCB5k)8畤(d+ddn7s cnxxqCDO 2cJx[f2Kfx[8r2&G; GMx[θqCsJjfJdxeT,%x[XAe#K|la|}xZf
[FɅj. QA~xVf]ºy
i
%
)9
)eɩ
%E%
Iy
ɉ%EϛO^bUꙢ DXQ5L6SRRp(14\&\TyZ^43$Dndcd iEUxkVQasf=Ɍl }	$l&xV1bC^NK &^l<xV1tC" &-,xZXp*GqyfIrFjs
=C=\]ltj'3	o6< YxS:|C"SCZfNB^bIfYj|bYqrQjj^|rbAIiQj|Rbq^PXiRQfjKjrNbQDTBQjNbIjBqIQirLONfRQbQFa^䃚|
ٙ%
)ޙ%7(mN`  .=nxu1JAEqaBj" "kzj\<ĤB`bVhacQ]w.v'T*`=+@y+a)n28.Db؛xi(M)tوez&K!ˊ<gKXkMS,F-cROK.fpõе=;tXaXxS:|C"SCZfNB^bIfYj|bYqrQjj^|rbAIiQj|Rbq^PXiRQfjKjrNbQDTBQjNbIjBqIQirLONfRQbQF53K|SS23K&oQbT؜dc =qxS&d&O.1N/(kGL W-x]bC"$&}LĄ&+1,bc 
UxVoEV+mJ܉X		%%l6evu{ {w5vV	Q .x3IR'zf__XqʵMЛ~`S'XދߢZm7KJjŅ3ㅙ,uOf9+KsGh&#e@MzV'mxe+h\nyg,j
\j~<ڏQl 
*Oc9i<l'VA.$8j
ʌ4Ap		#V=5ͰT%gU0S~Mm^IXLMB΄*e$UzyTfs9mjm?- C^ThnZ>_́/f=j:ި`
>jgU%;ūG{.Ì71Rm}]re;kQz!pQHXEcn7sj1hN^NGMԱC`j=J9ry@ګj.UnΦ>aABa,d O }W7[m"U):ޓ(81r<;\Cn5M\d 
sNu9:w@w`qæ!l+ĥ;#^)YhCfv$!GU] 5*)oM/M7,!'7=**GˠqZpSm8vYSUԳF(7X]ONF<J9QbT;UȬ |a$+W%͏.!Ћ3ڕi"Iq,=p]6HEΕ$
ܰ}E2Qp@L1iiV!t{87oFϿtVoBueQӥ``_d>>v5fwO2Gw?j(ZUCNl;^JɁxAuYh9uݧ1Ixu0H-rUdԛHfӋ/-+)6_LЎAxVMlEV(mmih6q'nJJTl6
vu;ٻٵ88s|z	ko =srf}ߛo^0|ÙET[m1qX/	[[ߞm8<?xT'A>aq45]\nĮ-2R>-DPݫ{ڞO_=ofl1_	3dͿ"c֋Ķçx0S|le) Aý~|Ak &40bNh|nt|E%HVb'f^Gb)%FJ e"4pȃM34-mJ(43o(:z<zU	<U-%A@N&L6͵f! yd/a8~æ-+d2Ʀ{C=8*y}8Փ^U%[-!\aFs▮)e-QZ p
F[@jR>5V!=vS7X*U\Fm9y$&*ffsWB:T~8zjmqp"}{ tw]ԏNґ`x _\Ǝc`9eԠq}̩e:TƆ3d5s[_2}EfKmvHRX3`$GV qtR@ 
y@N	(K{ѭ7:Gq2]xqiSOW<n[*I6XdގD䄁	Rd|vRKl?$:3Ͽy=22dD!b יפEa|3\Re ӞqR8 V&tU'	ꤙDmv~r볙&!=~̈́lCА`ޑZpMt6(nSs-v+S/h:^=&﭂Okĩ4L_'eCNMɊyKzj|%6yn?x[Xd{,\W[IN>9`dpbT7Rn(o% 
e	Jx{V|ɷ'8NTA}sF\&Kk5&joT*%O
dImI5&hMũ6z8c8ͬ!.LiԻ9t; 6n"x;u9^͡ ."x4iH!9u<S6.b=t; &Mx4iHAd:WLJqѠl) 9Ÿx[mbj|a/N>%.1kv /TQB`bIĵ=31zA ;'W[47+"=n#\	_ɻPFtNx\}Oz$	<:.Hߴ{ŌE\;򄬝-	 ILɂ/.aq: +'"sr6\HKq5"f8R7ZzжB1o	-qBu l(DL`&1_Q$XDlδprsh	u&D>FS;tӁeфF`:᷷;D~mBAc~	#<PTYЦ4'+␺l\8ZL%%KH NDBYVA@l̈́#ҹMKjy/#=(Gɀ|5yGXEA,8-q|&$6w>yRrس3SK<v"	\y:%+&vpDn4n\?}x(nzT&k*YҀFRp\>GNKgR6Ƃ{9Cu_5)
,0}	rk~eB }k4OF=˶ۙ5Yo暕޾zGRj ]Uٜs?𺨙؆4P$?W |5z[У1o	Yă5Z2(2 B?!;_m4kV4q8\':dbjQiQ6g
U.MdnV άQGЧ0x)-UCov2H\)bNhhdGǚLF`{75{Y=tDOĴ~LOno;eg+jƊ"8 Bm*=̃l[@sD%FVJv yU^/p<?s8zm\&ydjz&z$s{ho9VC>+,4SI$#=E('=o4&]jft3=#$i-wgжKPiP"vÐc:M%K `- mQ,wDPJrJD	}y3TFDЄ9LC%(Ҵd/hkJϯ VJY1ۈjn Ga6@9dރ
>%xѻYfQ{cU
G(!d5B
Y*
9T1<tSf]޿Nb
9R`cwr hWOckGB5[i?Cܬ/<zr"cB+C} u<jo$%JKCa<M /4`J$o9ߴK5_yGKuzw+
({;tE˹zdJ>aJkf#;#@%-tw< ˚qw'{kjMARcrnUh7?/i
쫊oY&,؂yH3m!1+Ki@*tSfU\b$THU]]&!,D:.2#Rʹ90abx,sAږWJU2't	}.=FX/P_jv#L\KQ*ڕ4c)/	ZPȓJb|c$+ih'jX]ڞBװX8{JMke){Mt
8XZ]lnaPld(q;TQ tT=΄)Vhѻ!T930V٧)d5*S"sgOjb*E4kź,o*<#fE{sR=_#.i̉3az۴ו[F[t>Y 拮+aQ ؂Ҹt{Ղf#-;S~k/9Y}jN9)M`fVIdBv8rː1m;8n0"#?ӓy`zv~k!gY[9lNZۜr٪(wIv+^y^nhУaicEvxԕcHDunUHPAݍ.uC;ҍlB~TpTUIjUO%ҫRSd]E]4(=i4Fڸi<×AoOGTz
G`ثZ|$4̾q,X-$|4Z9u;FҕWz7T~Rϣ_̰|єe#Hy%Eq%ന&-#ZV3k
H!4oi,~4l=&J Iy1JWMn\Vo
\ҽH<*.,=ͨ$9v!dҼ~H~o}w'}"~ux&βș^W{`4;Ⓣ%`D2UAf,q+eH~Ck$׀dᛟ2dް
8&Ki*2~q\E+Nyhf'\K9OB䋅x0ua	S5O:lf-홐QAF@FdgBT}xH0,f
z/U~~J^?ZX9sxXMlEV$v;$ѺIJJVѸ6HˎZZ8YwuҴ\zGF'T'7'$ʡBϮg8(-yoެ7m|i44D['e*o8ä?Ƙf9&}gfRsl)</MtIaң^t|=ĤQQ!yGOW=}h;=Lns =iΙn}Z_XsL눷&pZbI4]qjGmM:5]u\: 'ξ~S*)V.
!]X.vGhn?߈Mc!&w)0}'SָU9#Z$8/J^,pZk}a;)G YJPee-#e;E#眯.-\X?`{T&yDxNˋ*Grٰb55Ap|#cxXͼ\ʌNW8:@̭j2̂EQa'ѭN}3 \
:0T nD(XpuM(3flNtS)>~Op{^?Suä_C-V` -;=AkpA	SxpaկPBj%v$p:/JKf=fTAV:~F%FѻH&[% vOj!}>õF.1똧#\蘵ry&@m6<@'*]$T})h$DMCj;8kc{x/xa+nGݞJB'"5ԩUhlB !sd7Nֵ5@PԔ1hgASщõErLyTDȖd9j!dĄOHvD%c7ehLJ4pWX0A_W3`S6։Vs9YyЫK'!+&tdyq9N%"/	Tl9~-+,yX./qmCJbyzraπ?> 7ⴚ2muzPP5< ΖxuuLbDb8(Do9iCU5eTSiBkZ/ Ka78:zYr	ʬLQ1ZM{|.
S2gLr*7oX['|6߫͇z"T)t"]/a{vmH}vN2nLךZա& Q_Ы^V[s?W~I?3rO3ԣey-!fDCeP.y Es$:$pz^p}<:r؈	,bDmo9Q:I<T`}M?@⥨m]s7Q*I![Q74CqV͎V>r65BnN<m]U2:5ʆWH@џ崺ll/bJB|!	U2qr7v]]d'yXxV6l&FBK3yZF-8E'7po
c]R'	mf	Po6i!&l.ҁlH<͕
X&ר~27a5h \fu R=x!2oo[#Ơ	 |xZms6_I>4r˵w7V%&Ė\IvꛛPdH/VԎ= H,9mi*b/>XH^ڤ"2}:'2uh%~39E<RtW~''VYF/$K#$E&!#<_E YЏ1:<ji41H@瘎fE~8=]$i^=g0v8Y&RS,x
JFZ$SgyBJ0%|枅Y"LE` X͏ŋXbx3Qw0qDo8w8w;ADHX_V) jdM<8d_b=[ ɃLcHd3jgR.*,,OӤXp&4	$/<}(A$bU>AA~CM8&2g~{˔a/=K;=̫&JfyU6b&aO1xM=p6wDi%ƛ,sFa\Q.,;u9}sd
sqEc>⼾9:nzףa{w׮z:vK^׏^*wI,GqN*y^;_rDx{!~?z)Y8"GOWQ4H 76#}Q$V	E& ^Ð"1(?mR;@d0r ̴")" TL%J(˗HM=$gI4+_Ske*Nێ
zD (Ae[~wI
x!W9F6`]cϒqH=&/`^s¯[xrJk<Լۚ`Xa,wݡ"bJR(-$P<n#JA	A!-|D)'5gС Qο;6Fxp䍯=<uFc?j' |).#$R*%R-SYV]*6QI!ʼHQ,:t3\_GoOWΤN{g(:)L3T02^,.Ofc@$Nnf$y )>>BkXӲh~ >PS0!
$5(x1KT&%8NDÐ%EwsF-#Rq$9@|_z7fő|E-0&rDф>QVO	/I#Uă6df,k;N-ۊ }Sн)׮ʛjmVKvg݃cXXÉuwE8#s|ӽt'wޥs\>YA:4܄4(L:Y|٭F:R@pwdD7o)j]&ļgDD=TJ/(;ymϲf<*	MK*|E<5VF]ƙeʥfMХJ9J9۱iP1MApaz;?i{XKkʫu.;FeFZ1쮫q$Oqa>NbCt#)m}ŬrZsdlW3רok&xl{dUCb.TDvW!D0SbJW%A1ތ>c?`P}Z:HbzJ7H]%kVU"tTksD(W`ce,8DG[jB P&&=(2_Ks\Т2󶗶ەwolX	^xmDƚP}qb8ٚau`g[c<?Vr=EUscbTX2f6O<9}GKk\miI~w2KoM<V0٭of۔ǡ{j{$ULgEԩCDXLr}c4NԶ`AՅpn̓YI,=An8	Z,ފoB<'FS&FO;agJqfwkLqgá `Tp^YuEQpx3`v#߼m[ME)Nֱ_6kTgu>pq:Sp~ӳ0~@}fBd(x$n ,"*~}IUFM>mѯHvuYhXqwؼ;I:j-EN S}H%ENU#ڌE"KTFL {#;9@cmZtjZzgFEvYn[gafK,݌NBz!aXutUoѕ,
ZNbc$rtp5ѩ&Ϥ]] s8ȋlM׺Z8ʝfH7dM>w\Gw-1Lܭ!	}js	Zڨʡ{͹gBxmvʓǦ)LSglB&7e A\DKW
F4
wirPAٹqy.c=pb_5I@AǿPR ӑ4)	>Rz$[<`2/ZDuϿk<&AB`s*?ͧXx2v[m`*YeIuH* 󤔕3^jn;7%חՇ[̑*S+ :ʈc-#٬jO՝SJRe3ao0oV	TY!`6^~vֆm=:i2q,Fw\ |.#gICl3c"/((nNgyY)CktWgZjyH1So]K5b!:!UyĬ5K6> D=yVk֯TX_ yXy0$8Wj{Y](u!GSaӕ|@{+q`tG{1;ǿE7YׯcKSؾ.ʈ'<BF[yJn0HNV.tW^xUQs 揔gG}UhiOi4=ݙaxJdeiw*tܩnV"P]fF~뢕:(Z[~UE
(RqJbjWhͧ&?9Ç+͗N$V@HWCDN^vՈ`^:QzTW3Z2g%7NDB>SL5m	ABb~MP)cTZ_4"J@S_vnڵ<Y}}SA| C[%Hay=rbu򎢺(NOןaI|?w&5lAx늞~#9 %UXxnĻy&*po"mrĜͺ| Fx5+jC}bvMNGLN 	cSxVMLGV5f`;Ch V8`%-/J+Yga8X-zr@T%kǪjoZUoJ=T.k{M9þ[hsDJllM,`~
m};INޭXh4Cpm	Лwnl:9& C )5uYiܟ Ix{U:模~N:MsK oqх@ƊS$sg
ߚ o@:	dnt,7eCLY%u`B>tQU* $5^K-8@<[0:ؿ3%2H
V?38PTY_7%U]40/Gv#.R	*IRfjKq[+Tzkf=2 @yܝW'c:.R*96*[JJxTdgr:k*)>{i-jK>v\;-I'%].\8kRpIH!S22lxb~D&	1zB%	ƮjL(:^iA\Up2BH {vMCZW0(=@F)VM<"i UҧVgad)[S5k7ExUEI4vq ~!\]f^<[}}WjPxZjQ(1xK)TV>~>Vp#h/weǑV?EItyDܾ9ܶGy6K9irJFgI\F~[|l:cȳo'h6vpcrr\[U(Q + 1|JI; 1x~YA(:bR	S%o5x^$'b9`bMd$$$~d~&ڛ.iUk:zCe}[ٴU 'xUMlUIMo8vӔH )Ķi ]M6]nwI-*nhRU. r!8CUJ	$f|37{x+ϓ;j}3n=ۥhz?A-f'yy#܌i=,XHTOA	4euWR|F*"W"7f
<@K=Zȓ#4AeK6V*-y.ˠa8sڥ_J@
JU&v14uH]_
_ʬ$RCsJ"Dța(H~KڣiL{Tjk^#^0trytBklFHv'Fr$C +]EP[Cw^ʚJ\U5!ݪbd2ql"ܛW'-eKKV*4eskt),,DYOO!E|Myε]\w:]ΖڹgZLts=UNڿpn[ޗET/_(;E2ˬ߃j?PeX/.w5rEiSU-$)oג-2Qաr+c9)ԸP0joj:^-+H/|}gpc(<-hݺ*|s&Uf؏+:_٪5&IdGkƨ5qlfg&ȫ"d˪>	Q$\#$~QwG+d~,QG|&<'2?fhNߍv4 $-SZ
{zmlD*Id&Ұ'`6|pcbX{;7VE{po7>E&Ίᇉ"~&6&Q#q<Rܽݟz3Za2	N.;|ۻ'~c]If4_[arni2<ٹC41Kx4i"aMj̼lԼ\̊ԜĂx"ԒĔĒDɋ-&3xFĻ:l |XxiBCNf^Bj^is~N~QpAbr_bnjff^ 8&xWoEIRI:q<MSI_4M6mn+]ɦ$Ve!FTPAEPKqTr7;~Vų7ޙ}wIIS[|k|YˊZs#b&|iZw}OƘͷ]vD74.-Jeܶ}Z|=|v_p; >mA5zYQ:{Ծg|*kߍmq-Gمgyƛg&$¾mtl\$G-)-Yh0d/1m]ܘ*u@]}"u)KY:4jZ*SS(tݢom]WͶ"21AM-k[Ov6Mr;%;N@H~6
IK	&x13ꍲ;ǹ3,%v(KNBĴ[l-Cްh3j? Y*7;F;A]Z*yX&y(1)e:ا1,(gu̎TE_Npϭ w\a\W|@JQ=#b>-|nLd$\쵝wHGvS7'~|0xb`YN+ϋ[)NТv;tM<͟> ׆ϗcDDڔ6ÑGh`;1YЌ-M#TPh)aႣeQNu|hP҈mTR6$c2g5Vq;bj BE9R'7~U܌/3$㉓Ņx6
ULKuX)bx_E̫򊡩muAQ3n5%5JRL !u\M\ţY5Ul.+[Xa %Pnƹ|P.<=PL3M3)l+EfmC5tŜQrE-ڭ]bovFž$nH9=KX&_kDeHc>lʃ{&r䝣1"Zj"U*S:  Є]|bEQP @5
!2f`gQȜ9{ku9l&˶a~PɛEE'Xwtɐr:!C}*6ddǅi[)pmACȊWHl.YT|xMjY5(j G|\k;zΐ"e0EK2rU1i˘5cg'H*%tH$ڧ(,y+xM/C$ãsڜvMYJ}.5Bc6ŵ-#wXƳA3tEQ7(~FK{A7*T`'w5xL*AIqB#NH'@)R`_U.ϣ#h·Qw-5&VIMmGs.>>Uu	nf^w7E^I>u7=fЮJ8O]LJp%x[4i<kYbNi7ϕoa cxWmo6_qHcUER`ɺ/-QYH*WTb'vx ~(s=?	^+(^ٛaذpoDqA#hTT9W`
^2|kt+-dg7^-ֲ%[C%4B\mkL.R
ï)lvS>PAη3"_aLkZzI.~%)nT%
*c3ZHl83@0ZtA˹Y1)v.Qb֘G f Ycy	|0&a:')\{a@<?4#x'.pdkokE LAlrW9ާ晘S[pX*jBSU5	R)0c/mU~?XP3%.9WsGb	޲)8]ʜnkOrhAjy{_B[]bnu{.9Kʜ>k2(N%W.m+ga .KujHZRu#%`=K'A)f5:C{2;sl9éGLOt9k\NӬ.M~ܢ#9U.Z9V6O$ƒBT-@8&bp!)VEG>Wr'm Dа2]k2SP7l8;o0h^&E_GP3%Bu+]U+JI*8/͖3F]"~Ms6Ɋk:l8ђP?GU0NC=s![VIX#83	>
[.TgԠU;R& n][G%%BvږP}^?|RJf	˷AEm^tza"N;`ǭJ.suRll19 CznrO\r)@TpD3d{x}v1oٌ;}$ϡ~77=-Zrm2y,Lϲ{=oC.]Q=ҲQxq~um)S0c2w6;s"3Qɨ[Fi:pZ`8<|Fs%gw
M>Ɠ$@fwse}%{84C,zDT8X;~?KAXmP,0rg$%q~mN샻Rb2}ԭ9!~O?C*O;EԹ=\qryy'd3"/tT70n:z#Px[)!ayٜSs&Kq;;9(*Lě3/r)_G| [x[))@@6ļԜɒ|AΎ~ή>

:'Lf˟\ʗ9; xlh/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup input
 * @{
 *
 * @brief Provides the C interface in the multi-modal input domain.
 *
 * @since 12
 */

/**
 * @file oh_key_code.h
 *
 * @brief Defines the key event structure and related enumeration values.
 * @kit InputKit
 * @syscap SystemCapability.MultimodalInput.Input.Core
 * @library libohinput.so
 * @since 12
 */

#ifndef OH_KEY_CODE_H
#define OH_KEY_CODE_H

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Enumerated values of OpenHarmony key code.
 *
 * @since 12
 */
typedef enum {
    /** Unknown key */
    KEYCODE_UNKNOWN = -1,
    /** Function (Fn) key */
    KEYCODE_FN = 0,
    /**
     * Function (Home) key
     * @since 22
     */
    KEYCODE_HOME = 1,
    /**
     * Back key
     * @since 22
     */
    KEYCODE_BACK = 2,
    /**
     * KEYCODE_SEARCH
     * @since 22
     */
    KEYCODE_SEARCH = 9,
    /**
     * Play/Pause key
     * @since 22
     */
    KEYCODE_MEDIA_PLAY_PAUSE = 10,
    /**
     * Stop key
     * @since 22
     */
    KEYCODE_MEDIA_STOP = 11,
    /**
     * Next key
     * @since 22
     */
    KEYCODE_MEDIA_NEXT = 12,
    /**
     * Previous key
     * @since 22
     */
    KEYCODE_MEDIA_PREVIOUS = 13,
    /**
     * Rewind key
     * @since 22
     */
    KEYCODE_MEDIA_REWIND = 14,
    /**
     * Fast forward key
     * @since 22
     */
    KEYCODE_MEDIA_FAST_FORWARD = 15,
    /** Volume Up key */
    KEYCODE_VOLUME_UP = 16,
    /** Volume Down button */
    KEYCODE_VOLUME_DOWN = 17,
    /** Power key */
    KEYCODE_POWER = 18,
    /** Shutter key */
    KEYCODE_CAMERA = 19,
    /** Speaker Mute key */
    KEYCODE_VOLUME_MUTE = 22,
    /** Mute key */
    KEYCODE_MUTE = 23,
    /** Brightness Up key */
    KEYCODE_BRIGHTNESS_UP = 40,
    /** Brightness Down key */
    KEYCODE_BRIGHTNESS_DOWN = 41,
    /** Key 0 */
    KEYCODE_0 = 2000,
    /** Key 1 */
    KEYCODE_1 = 2001,
    /** Key 2 */
    KEYCODE_2 = 2002,
    /** Key 3 */
    KEYCODE_3 = 2003,
    /** Key 4 */
    KEYCODE_4 = 2004,
    /** Key 5 */
    KEYCODE_5 = 2005,
    /** Key 6 */
    KEYCODE_6 = 2006,
    /** Key 7 */
    KEYCODE_7 = 2007,
    /** Key 8 */
    KEYCODE_8 = 2008,
    /** Key 9 */
    KEYCODE_9 = 2009,
    /** Key * */
    KEYCODE_STAR = 2010,
    /** Key # */
    KEYCODE_POUND = 2011,
     /** Up key on D-pad */
    KEYCODE_DPAD_UP = 2012,
    /** Down key on D-pad */
    KEYCODE_DPAD_DOWN = 2013,
    /** Left key on D-pad */
    KEYCODE_DPAD_LEFT = 2014,
    /** Right key on D-pad */
    KEYCODE_DPAD_RIGHT = 2015,
    /** OK key on D-pad */
    KEYCODE_DPAD_CENTER = 2016,
    /** Key A */
    KEYCODE_A = 2017,
    /** Key B */
    KEYCODE_B = 2018,
    /** Key C */
    KEYCODE_C = 2019,
    /** Key D */
    KEYCODE_D = 2020,
    /** Key E */
    KEYCODE_E = 2021,
    /** Key F */
    KEYCODE_F = 2022,
    /** Key G */
    KEYCODE_G = 2023,
    /** Key H */
    KEYCODE_H = 2024,
    /** Key I */
    KEYCODE_I = 2025,
    /** Key J */
    KEYCODE_J = 2026,
    /** Key K */
    KEYCODE_K = 2027,
    /** Key L */
    KEYCODE_L = 2028,
    /** Key M */
    KEYCODE_M = 2029,
    /** Key N */
    KEYCODE_N = 2030,
    /** Key O */
    KEYCODE_O = 2031,
    /** Key P */
    KEYCODE_P = 2032,
    /** Key Q */
    KEYCODE_Q = 2033,
    /** Key R */
    KEYCODE_R = 2034,
    /** Key S */
    KEYCODE_S = 2035,
    /** Key T */
    KEYCODE_T = 2036,
    /** Key U */
    KEYCODE_U = 2037,
    /** Key V */
    KEYCODE_V = 2038,
    /** Key W */
    KEYCODE_W = 2039,
    /** Key X */
    KEYCODE_X = 2040,
    /** Key Y */
    KEYCODE_Y = 2041,
    /** Key Z */
    KEYCODE_Z = 2042,
    /** Key , */
    KEYCODE_COMMA = 2043,
    /** Key . */
    KEYCODE_PERIOD = 2044,
    /** Left Alt key */
    KEYCODE_ALT_LEFT = 2045,
    /** Right Alt key */
    KEYCODE_ALT_RIGHT = 2046,
    /** Left Shift key */
    KEYCODE_SHIFT_LEFT = 2047,
    /** Right Shift key */
    KEYCODE_SHIFT_RIGHT = 2048,
    /** Tab key */
    KEYCODE_TAB = 2049,
    /** Space key */
    KEYCODE_SPACE = 2050,
    /** Symbol key */
    KEYCODE_SYM = 2051,
    /** Explorer key, used to start the explorer application */
    KEYCODE_EXPLORER = 2052,
    /** Email key, used to start the email application */
    KEYCODE_ENVELOPE = 2053,
    /** Enter key */
    KEYCODE_ENTER = 2054,
    /** Backspace key */
    KEYCODE_DEL = 2055,
    /** Key * */
    KEYCODE_GRAVE = 2056,
    /** Key - */
    KEYCODE_MINUS = 2057,
    /** Key = */
    KEYCODE_EQUALS = 2058,
    /** Key [ */
    KEYCODE_LEFT_BRACKET = 2059,
    /** Key ] */
    KEYCODE_RIGHT_BRACKET = 2060,
    /** Key \ */
    KEYCODE_BACKSLASH = 2061,
    /** Key ; */
    KEYCODE_SEMICOLON = 2062,
    /** Key ' */
    KEYCODE_APOSTROPHE = 2063,
    /** Key / */
    KEYCODE_SLASH = 2064,
    /** Key @ */
    KEYCODE_AT = 2065,
    /** Key + */
    KEYCODE_PLUS = 2066,
    /** Menu key */
    KEYCODE_MENU = 2067,
    /** Page Up key */
    KEYCODE_PAGE_UP = 2068,
    /** Page Down key */
    KEYCODE_PAGE_DOWN = 2069,
    /** ESC key */
    KEYCODE_ESCAPE = 2070,
    /** Delete key */
    KEYCODE_FORWARD_DEL = 2071,
    /** Left Ctrl key */
    KEYCODE_CTRL_LEFT = 2072,
    /** Right Ctrl key */
    KEYCODE_CTRL_RIGHT = 2073,
    /** Caps Lock key */
    KEYCODE_CAPS_LOCK = 2074,
    /** Scroll Lock key */
    KEYCODE_SCROLL_LOCK = 2075,
    /** Left Meta key */
    KEYCODE_META_LEFT = 2076,
    /** Right Meta key */
    KEYCODE_META_RIGHT = 2077,
    /** Function key */
    KEYCODE_FUNCTION = 2078,
    /** System Request/Print Screen key */
    KEYCODE_SYSRQ = 2079,
    /** Break/Pause key */
    KEYCODE_BREAK = 2080,
    /** Move to Home key */
    KEYCODE_MOVE_HOME = 2081,
    /** Move to End key */
    KEYCODE_MOVE_END = 2082,
    /** Insert key */
    KEYCODE_INSERT = 2083,
    /** Forward key */
    KEYCODE_FORWARD = 2084,
    /** Play key */
    KEYCODE_MEDIA_PLAY = 2085,
    /** Pause key */
    KEYCODE_MEDIA_PAUSE = 2086,
    /** Close key */
    KEYCODE_MEDIA_CLOSE = 2087,
    /** Eject key */
    KEYCODE_MEDIA_EJECT = 2088,
    /** Record key */
    KEYCODE_MEDIA_RECORD = 2089,
    /** F1 key */
    KEYCODE_F1 = 2090,
    /** F2 key */
    KEYCODE_F2 = 2091,
    /** F3 key */
    KEYCODE_F3 = 2092,
    /** F4 key */
    KEYCODE_F4 = 2093,
    /** F5 key */
    KEYCODE_F5 = 2094,
    /** F6 key */
    KEYCODE_F6 = 2095,
    /** F7 key */
    KEYCODE_F7 = 2096,
    /** F8 key */
    KEYCODE_F8 = 2097,
    /** F9 key */
    KEYCODE_F9 = 2098,
    /** F10 key */
    KEYCODE_F10 = 2099,
    /** F11 key */
    KEYCODE_F11 = 2100,
    /** F12 key */
    KEYCODE_F12 = 2101,
    /** Number Lock key on numeric keypad */
    KEYCODE_NUM_LOCK = 2102,
    /** Key 0 on numeric keypad */
    KEYCODE_NUMPAD_0 = 2103,
    /** Key 1 on numeric keypad */
    KEYCODE_NUMPAD_1 = 2104,
    /** Key 2 on numeric keypad */
    KEYCODE_NUMPAD_2 = 2105,
    /** Key 3 on numeric keypad */
    KEYCODE_NUMPAD_3 = 2106,
    /** Key 4 on numeric keypad */
    KEYCODE_NUMPAD_4 = 2107,
    /** Key 5 on numeric keypad */
    KEYCODE_NUMPAD_5 = 2108,
    /** Key 6 on numeric keypad */
    KEYCODE_NUMPAD_6 = 2109,
    /** Key 7 on numeric keypad */
    KEYCODE_NUMPAD_7 = 2110,
    /** Key 8 on numeric keypad */
    KEYCODE_NUMPAD_8 = 2111,
    /** Key 9 on numeric keypad */
    KEYCODE_NUMPAD_9 = 2112,
    /** Key / on numeric keypad */
    KEYCODE_NUMPAD_DIVIDE = 2113,
    /** Key * on numeric keypad */
    KEYCODE_NUMPAD_MULTIPLY = 2114,
    /** Key - on numeric keypad */
    KEYCODE_NUMPAD_SUBTRACT = 2115,
    /** Key + on numeric keypad */
    KEYCODE_NUMPAD_ADD = 2116,
    /** Key . on numeric keypad */
    KEYCODE_NUMPAD_DOT = 2117,
    /** Key , on numeric keypad */
    KEYCODE_NUMPAD_COMMA = 2118,
    /** Enter key on numeric keypad */
    KEYCODE_NUMPAD_ENTER = 2119,
    /** Key = on numeric keypad */
    KEYCODE_NUMPAD_EQUALS = 2120,
    /** Key ( on numeric keypad */
    KEYCODE_NUMPAD_LEFT_PAREN = 2121,
    /** Key ) on numeric keypad */
    KEYCODE_NUMPAD_RIGHT_PAREN = 2122,
    /**
     * Multi-task key
     * @since 22
     */
    KEYCODE_VIRTUAL_MULTITASK = 2210,
    /**
     * Joystick key A
     * @since 22
     */
    KEYCODE_BUTTON_A = 2301,
    /**
     * Joystick key B
     * @since 22
     */
    KEYCODE_BUTTON_B = 2302,
    /**
     * Joystick key X
     * @since 22
     */
    KEYCODE_BUTTON_X = 2304,
    /**
     * Joystick key Y
     * @since 22
     */
    KEYCODE_BUTTON_Y = 2305,
    /**
     * Joystick key L1
     * @since 22
     */
    KEYCODE_BUTTON_L1 = 2307,
    /**
     * Joystick key R1
     * @since 22
     */
    KEYCODE_BUTTON_R1 = 2308,
    /**
     * Joystick key L2
     * @since 22
     */
    KEYCODE_BUTTON_L2 = 2309,
    /**
     * Joystick key R2
     * @since 22
     */
    KEYCODE_BUTTON_R2 = 2310,
    /**
     * Joystick key Select
     * @since 22
     */
    KEYCODE_BUTTON_SELECT = 2311,
    /**
     * Joystick key Start
     * @since 22
     */
    KEYCODE_BUTTON_START = 2312,
    /**
     * Joystick key Mode
     * @since 22
     */
    KEYCODE_BUTTON_MODE = 2313,
    /**
     * Joystick key THUMBL
     * @since 22
     */
    KEYCODE_BUTTON_THUMBL = 2314,
    /**
     * Joystick key THUMBR
     * @since 22
     */
    KEYCODE_BUTTON_THUMBR = 2315,
    /**
     *Sleep key
     * @since 22
     */
    KEYCODE_SLEEP = 2600,
    /**
     * Zenkaku/Hankaku key
     * @since 22
     */
    KEYCODE_ZENKAKU_HANKAKU = 2601,
    /**
     *102nd key
     * @since 22
     */
    KEYCODE_102ND = 2602,
    /**
     * Ro key
     * @since 22
     */
    KEYCODE_RO = 2603,
    /**
     * Katakana key
     * @since 22
     */
    KEYCODE_KATAKANA = 2604,
    /**
     * Hiragana key
     * @since 22
     */
    KEYCODE_HIRAGANA = 2605,
    /**
     *  Henkan key
     * @since 22
     */
    KEYCODE_HENKAN = 2606,
    /**
     * Katakana/Hiragana key
     * @since 22
     */
    KEYCODE_KATAKANA_HIRAGANA = 2607,
    /**
     * Muhenkan key
     * @since 22
     */
    KEYCODE_MUHENKAN = 2608,
    /**
     * Linefeed key
     * @since 22
     */
    KEYCODE_LINEFEED = 2609,
    /**
     * Macro key
     * @since 22
     */
    KEYCODE_MACRO = 2610,
    /**
     * Plus/Minus key on the numeric keypad
     * @since 22
     */
    KEYCODE_NUMPAD_PLUSMINUS = 2611,
    /**
     * Scale key
     * @since 22
     */
    KEYCODE_SCALE = 2612,
    /**
     * Hanguel key
     * @since 22
     */
    KEYCODE_HANGUEL = 2613,
    /**
     * Hanja key
     * @since 22
     */
    KEYCODE_HANJA = 2614,
    /**
     * Yen key
     * @since 22
     */
    KEYCODE_YEN = 2615,
    /**
     * Stop key
     * @since 22
     */
    KEYCODE_STOP = 2616,
    /**
     * Again key
     * @since 22
     */
    KEYCODE_AGAIN = 2617,
    /**
     * Props key
     * @since 22
     */
    KEYCODE_PROPS = 2618,
    /**
     * Undo key
     * @since 22
     */
    KEYCODE_UNDO = 2619,
    /**
     * Copy key
     * @since 22
     */
    KEYCODE_COPY = 2620,
    /**
     * Open key
     * @since 22
     */
    KEYCODE_OPEN = 2621,
    /**
     * Paste key
     * @since 22
     */
    KEYCODE_PASTE = 2622,
    /**
     * Find key
     * @since 22
     */
    KEYCODE_FIND = 2623,
    /**
     * Cut key
     * @since 22
     */
    KEYCODE_CUT = 2624,
    /**
     * Help key
     * @since 22
     */
    KEYCODE_HELP = 2625,
    /**
     *  Calc key, which is used to start the calculator application
     * @since 22
     */
    KEYCODE_CALC = 2626,
    /**
     * File key
     * @since 22
     */
    KEYCODE_FILE = 2627,
    /**
     * Bookmarks key
     * @since 22
     */
    KEYCODE_BOOKMARKS = 2628,
    /**
     * Next key
     * @since 22
     */
    KEYCODE_NEXT = 2629,
    /**
     * Play/Pause key
     * @since 22
     */
    KEYCODE_PLAYPAUSE = 2630,
    /**
     * Previous key
     * @since 22
     */
    KEYCODE_PREVIOUS = 2631,
    /**
     * Stop CD key
     * @since 22
     */
    KEYCODE_STOPCD = 2632,
    /**
     * Config key
     * @since 22
     */
    KEYCODE_CONFIG = 2634,
    /**
     * Refresh key
     * @since 22
     */
    KEYCODE_REFRESH = 2635,
    /**
     * Exit key
     * @since 22
     */
    KEYCODE_EXIT = 2636,
    /**
     * Edit key
     * @since 22
     */
    KEYCODE_EDIT = 2637,
    /**
     * Scroll Up key
     * @since 22
     */
    KEYCODE_SCROLLUP = 2638,
    /**
     * Scroll Down key
     * @since 22
     */
    KEYCODE_SCROLLDOWN = 2639,
    /**
     * New key
     * @since 22
     */
    KEYCODE_NEW = 2640,
    /**
     * Redo key
     * @since 22
     */
    KEYCODE_REDO = 2641,
    /**
     * Close key
     * @since 22
     */
    KEYCODE_CLOSE = 2642,
    /**
     * Play key
     * @since 22
     */
    KEYCODE_PLAY = 2643,
    /**
     *Bass Boost key
     * @since 22
     */
    KEYCODE_BASSBOOST = 2644,
    /**
     * Print key
     * @since 22
     */
    KEYCODE_PRINT = 2645,
    /**
     * Chat key
     * @since 22
     */
    KEYCODE_CHAT = 2646,
    /**
     * Finance key
     * @since 22
     */
    KEYCODE_FINANCE = 2647,
    /**
     * Cancel key
     * @since 22
     */
    KEYCODE_CANCEL = 2648,
    /**
     * Keyboard Illumination Toggle key
     * @since 22
     */
    KEYCODE_KBDILLUM_TOGGLE = 2649,
    /**
     * Keyboard Illumination Down key
     * @since 22
     */
    KEYCODE_KBDILLUM_DOWN = 2650,
    /**
     * Keyboard Illumination Up key
     * @since 22
     */
    KEYCODE_KBDILLUM_UP = 2651,
    /**
     * Send key
     * @since 22
     */
    KEYCODE_SEND = 2652,
    /**
     * Reply key
     * @since 22
     */
    KEYCODE_REPLY = 2653,
    /**
     * Forward Mail key
     * @since 22
     */
    KEYCODE_FORWARDMAIL = 2654,
    /**
     * Save key
     * @since 22
     */
    KEYCODE_SAVE = 2655,
    /**
     * Documents key
     * @since 22
     */
    KEYCODE_DOCUMENTS = 2656,
    /**
     * Next Video key
     * @since 22
     */
    KEYCODE_VIDEO_NEXT = 2657,
    /**
     * Previous Video key
     * @since 22
     */
    KEYCODE_VIDEO_PREV = 2658,
    /**
     * Brightness Cycle key
     * @since 22
     */
    KEYCODE_BRIGHTNESS_CYCLE = 2659,
    /**
     * Brightness Zero key
     * @since 22
     */
    KEYCODE_BRIGHTNESS_ZERO = 2660,
    /**
     * Display Off key
     * @since 22
     */
    KEYCODE_DISPLAY_OFF = 2661,
    /**
     * Misc Button key
     * @since 22
     */
    KEYCODE_BTN_MISC = 2662,
    /**
     * Goto key
     * @since 22
     */
    KEYCODE_GOTO = 2663,
    /**
     * Info key
     * @since 22
     */
    KEYCODE_INFO = 2664,
    /**
     * Program key
     * @since 22
     */
    KEYCODE_PROGRAM = 2665,
    /**
     * PVR key
     * @since 22
     */
    KEYCODE_PVR = 2666,
    /**
     * Subtitle key
     * @since 22
     */
    KEYCODE_SUBTITLE = 2667,
    /**
     * Full Screen key
     * @since 22
     */
    KEYCODE_FULL_SCREEN = 2668,
    /**
     * Keyboard
     * @since 22
     */
    KEYCODE_KEYBOARD = 2669,
    /**
     * Aspect Ratio key
     * @since 22
     */
    KEYCODE_ASPECT_RATIO = 2670,
    /**
     *  Port Control key
     * @since 22
     */
    KEYCODE_PC = 2671,
    /**
     * TV key
     * @since 22
     */
    KEYCODE_TV = 2672,
    /**
     * TV key 2
     * @since 22
     */
    KEYCODE_TV2 = 2673,
    /**
     * VCR key
     * @since 22
     */
    KEYCODE_VCR = 2674,
    /**
     * VCR key 2
     * @since 22
     */
    KEYCODE_VCR2 = 2675,
    /**
     * SAT key
     * @since 22
     */
    KEYCODE_SAT = 2676,
    /**
     * CD key
     * @since 22
     */
    KEYCODE_CD = 2677,
    /**
     * Tape key
     * @since 22
     */
    KEYCODE_TAPE = 2678,
    /**
     * Tuner key
     * @since 22
     */
    KEYCODE_TUNER = 2679,
    /**
     * Player key
     * @since 22
     */
    KEYCODE_PLAYER = 2680,
    /**
     * DVD key
     * @since 22
     */
    KEYCODE_DVD = 2681,
    /**
     * Audio key
     * @since 22
     */
    KEYCODE_AUDIO = 2682,
    /**
     * Video key
     * @since 22
     */
    KEYCODE_VIDEO = 2683,
    /**
     * Memo key
     * @since 22
     */
    KEYCODE_MEMO = 2684,
    /**
     * Calendar key
     * @since 22
     */
    KEYCODE_CALENDAR = 2685,
    /**
     * Red indicator
     * @since 22
     */
    KEYCODE_RED = 2686,
    /**
     * Green indicator
     * @since 22
     */
    KEYCODE_GREEN = 2687,
    /**
     * Yellow indicator
     * @since 22
     */
    KEYCODE_YELLOW = 2688,
    /**
     * Blue indicator
     * @since 22
     */
    KEYCODE_BLUE = 2689,
    /**
     * Channel Up key
     * @since 22
     */
    KEYCODE_CHANNELUP = 2690,
    /**
     * Channel Down key
     * @since 22
     */
    KEYCODE_CHANNELDOWN = 2691,
    /**
     * Last key
     * @since 22
     */
    KEYCODE_LAST = 2692,
    /**
     * Restart key
     * @since 22
     */
    KEYCODE_RESTART = 2693,
    /**
     * Slow key
     * @since 22
     */
    KEYCODE_SLOW = 2694,
    /**
     * Shuffle key
     * @since 22
     */
    KEYCODE_SHUFFLE = 2695,
    /**
     * Videophone key
     * @since 22
     */
    KEYCODE_VIDEOPHONE = 2696,
    /**
     * Games key
     * @since 22
     */
    KEYCODE_GAMES = 2697,
    /**
     * Zoom in
     * @since 22
     */
    KEYCODE_ZOOMIN = 2698,
    /**
     * Zoom out
     * @since 22
     */
    KEYCODE_ZOOMOUT = 2699,
    /**
     * Zoom reset key
     * @since 22
     */
    KEYCODE_ZOOMRESET = 2700,
    /**
     * Word Processor key
     * @since 22
     */
    KEYCODE_WORDPROCESSOR = 2701,
    /**
     * Editor key
     * @since 22
     */
    KEYCODE_EDITOR = 2702,
    /**
     * Spreadsheet key
     * @since 22
     */
    KEYCODE_SPREADSHEET = 2703,
    /**
     * Graphics Editor key
     * @since 22
     */
    KEYCODE_GRAPHICSEDITOR = 2704,
    /**
     * Presentation key
     * @since 22
     */
    KEYCODE_PRESENTATION = 2705,
    /**
     * Database key
     * @since 22
     */
    KEYCODE_DATABASE = 2706,
    /**
     * News key
     * @since 22
     */
    KEYCODE_NEWS = 2707,
    /**
     * Voicemail key
     * @since 22
     */
    KEYCODE_VOICEMAIL = 2708,
    /**
     * Address book key
     * @since 22
     */
    KEYCODE_ADDRESSBOOK = 2709,
    /**
     * Messenger key
     * @since 22
     */
    KEYCODE_MESSENGER = 2710,
    /**
     * Brightness Toggle key
     * @since 22
     */
    KEYCODE_BRIGHTNESS_TOGGLE = 2711,
    /**
     * Spell Check key
     * @since 22
     */
    KEYCODE_SPELLCHECK = 2712,
    /**
     * Coffee key, which is used to launch screen lock or screen saver
     * @since 22
     */
    KEYCODE_COFFEE = 2713,
    /**
     * Media Repeat key
     * @since 22
     */
    KEYCODE_MEDIA_REPEAT = 2714,
    /**
     * Images key
     * @since 22
     */
    KEYCODE_IMAGES = 2715,
    /**
     * Button Configuration key
     * @since 22
     */
    KEYCODE_BUTTONCONFIG = 2716,
    /**
     * Task Manager key
     * @since 22
     */
    KEYCODE_TASKMANAGER = 2717,
    /**
     * Log key
     * @since 22
     */
    KEYCODE_JOURNAL = 2718,
    /**
     * Control Panel key
     * @since 22
     */
    KEYCODE_CONTROLPANEL = 2719,
    /**
     * App Select key
     * @since 22
     */
    KEYCODE_APPSELECT = 2720,
    /**
     * Screen Saver key
     * @since 22
     */
    KEYCODE_SCREENSAVER = 2721,
    /**
     * Smart key
     * @since 22
     */
    KEYCODE_ASSISTANT = 2722,
    /**
     * Next Keyboard Layout key
     * @since 22
     */
    KEYCODE_KBD_LAYOUT_NEXT = 2723,
    /**
     * Min Brightness key
     * @since 22
     */
    KEYCODE_BRIGHTNESS_MIN = 2724,
    /**
     * Max Brightness key
     * @since 22
     */
    KEYCODE_BRIGHTNESS_MAX = 2725,
    /**
     * Assist_Previous key, used to view historical inputs
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_PREV = 2726,
    /**
     * Assist_Next key, used to view predictive inputs
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_NEXT = 2727,
    /**
     * Assist_Previous_Group key, used to switch to the previous input method in the input group
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_PREVGROUP = 2728,
    /**
     *  Assist_Next_Group key, used to switch to the next input method in the input group
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_NEXTGROUP = 2729,
    /**
     * Keyboard Input-assisted Accept key
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_ACCEPT = 2730,
    /**
     * Keyboard Input-assisted Cancel key
     * @since 22
     */
    KEYCODE_KBDINPUTASSIST_CANCEL = 2731,
    /**
     * Mouse Assistant key
     * @since 26.0.0
     */
    KEYCODE_MOUSE_ASSISTANT = 2732,
    /**
     * Mouse Intelligence Selection key
     * @since 26.0.0
     */
    KEYCODE_MOUSE_INTELLIGENCE_SELECTION = 2733,
    /**
     * Single tapping the smart phone's touch screen event, which is used when the Always On Display is enabled
     * @since 26.0.0
     */
    KEYCODE_AOD_SINGLE_CLICK = 2740,
    /**
     * Front key, which is used to launch the windshield defogger
     * @since 22
     */
    KEYCODE_FRONT = 2800,
    /**
     * Setup key
     * @since 22
     */
    KEYCODE_SETUP = 2801,
    /**
     * Wakeup key
     * @since 22
     */
    KEYCODE_WAKEUP = 2802,
    /**
     * Send File key
     * @since 22
     */
    KEYCODE_SENDFILE = 2803,
    /**
     * Delete File key
     * @since 22
     */
    KEYCODE_DELETEFILE = 2804,
    /**
     * XFER key, which is used to start file transfer
     * @since 22
     */
    KEYCODE_XFER = 2805,
    /**
     * Program key 1
     * @since 22
     */
    KEYCODE_PROG1 = 2806,
    /**
     * Program key 2
     * @since 22
     */
    KEYCODE_PROG2 = 2807,
    /**
     * MS-DOS key
     * @since 22
     */
    KEYCODE_MSDOS = 2808,
    /**
     * Screen Lock key
     * @since 22
     */
    KEYCODE_SCREENLOCK = 2809,
    /**
     * Directional Rotation Display key
     * @since 22
     */
    KEYCODE_DIRECTION_ROTATE_DISPLAY = 2810,
    /**
     * Windows Cycle key
     * @since 22
     */
    KEYCODE_CYCLEWINDOWS = 2811,
    /**
     * Key
     * @since 22
     */
    KEYCODE_COMPUTER = 2812,
    /**
     * Eject CD key
     * @since 22
     */
    KEYCODE_EJECTCLOSECD = 2813,
    /**
     * ISO key
     * @since 22
     */
    KEYCODE_ISO = 2814,
    /**
     * Move key
     * @since 22
     */
    KEYCODE_MOVE = 2815,
    /**
     * F13 key
     * @since 22
     */
    KEYCODE_F13 = 2816,
    /**
     * F14 key
     * @since 22
     */
    KEYCODE_F14 = 2817,
    /**
     * F15 key
     * @since 22
     */
    KEYCODE_F15 = 2818,
    /**
     * F16 key
     * @since 22
     */
    KEYCODE_F16 = 2819,
    /**
     * F17 key
     * @since 22
     */
    KEYCODE_F17 = 2820,
    /**
     * F18 key
     * @since 22
     */
    KEYCODE_F18 = 2821,
    /**
     * F19 key
     * @since 22
     */
    KEYCODE_F19 = 2822,
    /**
     * F20 key
     * @since 22
     */
    KEYCODE_F20 = 2823,
    /**
     * F21 key
     * @since 22
     */
    KEYCODE_F21 = 2824,
    /**
     * F22 key
     * @since 22
     */
    KEYCODE_F22 = 2825,
    /**
     * F23 key
     * @since 22
     */
    KEYCODE_F23 = 2826,
    /**
     * F24 key
     * @since 22
     */
    KEYCODE_F24 = 2827,
    /**
     * Program key 3
     * @since 22
     */
    KEYCODE_PROG3 = 2828,
    /**
     * Program key 4
     * @since 22
     */
    KEYCODE_PROG4 = 2829,
    /**
     * Dashboard key
     * @since 22
     */
    KEYCODE_DASHBOARD = 2830,
    /**
     * Suspend key
     * @since 22
     */
    KEYCODE_SUSPEND = 2831,
    /**
     * HP key
     * @since 22
     */
    KEYCODE_HP = 2832,
    /**
     * Sound key
     * @since 22
     */
    KEYCODE_SOUND = 2833,
    /**
     * Question key
     * @since 22
     */
    KEYCODE_QUESTION = 2834,
    /**
     * Connect key
     * @since 22
     */
    KEYCODE_CONNECT = 2836,
    /**
     * Sport key
     * @since 22
     */
    KEYCODE_SPORT = 2837,
    /**
     * Shop key
     * @since 22
     */
    KEYCODE_SHOP = 2838,
    /**
     * Alterase key
     * @since 22
     */
    KEYCODE_ALTERASE = 2839,
    /**
     * Switch Video Mode key (monitor, LCD, and TV, etc)
     * @since 22
     */
    KEYCODE_SWITCHVIDEOMODE = 2841,
    /**
     * Battery key
     * @since 22
     */
    KEYCODE_BATTERY = 2842,
    /**
     * Bluetooth key
     * @since 22
     */
    KEYCODE_BLUETOOTH = 2843,
    /**
     * WLAN key
     * @since 22
     */
    KEYCODE_WLAN = 2844,
    /**
     * Ultra-wideband key
     * @since 22
     */
    KEYCODE_UWB = 2845,
    /**
     * WWAN WiMAX key
     * @since 22
     */
    KEYCODE_WWAN_WIMAX = 2846,
    /**
     * RF Kill key
     * @since 22
     */
    KEYCODE_RFKILL = 2847,
    /**
     * Channel key
     * @since 22
     */
    KEYCODE_CHANNEL = 3001,
    /**
     *Button 0
     * @since 22
     */
    KEYCODE_BTN_0 = 3100,
    /**
     * Button 1
     * @since 22
     */
    KEYCODE_BTN_1 = 3101,
    /**
     * Button 2
     * @since 22
     */
    KEYCODE_BTN_2 = 3102,
    /**
     * Button 3
     * @since 22
     */
    KEYCODE_BTN_3 = 3103,
    /**
     * Button 4
     * @since 22
     */
    KEYCODE_BTN_4 = 3104,
    /**
     * Button 5
     * @since 22
     */
    KEYCODE_BTN_5 = 3105,
    /**
     * Button 6
     * @since 22
     */
    KEYCODE_BTN_6 = 3106,
    /**
     * Button 7
     * @since 22
     */
    KEYCODE_BTN_7 = 3107,
    /**
     * Button 8
     * @since 22
     */
    KEYCODE_BTN_8 = 3108,
    /**
     * Button 9
     * @since 22
     */
    KEYCODE_BTN_9 = 3109,
    /**
     * Single tapping the smart watch's X-TAP sensor
     * @since 22
     */
    KEYCODE_DAGGER_CLICK = 3211,
    /**
     * Double tapping the smart watch's X-TAP sensor
     * @since 22
     */
    KEYCODE_DAGGER_DOUBLE_CLICK = 3212,
    /**
     * Long-pressing the smart watch's X-TAP sensor
     * @since 22
     */
    KEYCODE_DAGGER_LONG_PRESS = 3213,
    /**
     * Smart watch's left button
     * @since 22
     */
    KEYCODE_DIV = 3220,
    /**
     * XKEY
     * @since 26.0.0
     */
    KEYCODE_XKEY = 3232,
    /**
     * FINGERPRINT_SLIDE_UP
     * @since 26.0.0
     */
    KEYCODE_FINGERPRINT_SLIDE_UP = 3233,
    /**
     * FINGERPRINT_SLIDE_DOWN
     * @since 26.0.0
     */
    KEYCODE_FINGERPRINT_SLIDE_DOWN = 3234,
} Input_KeyCode;

#ifdef __cplusplus
}
#endif
/** @} */

#endif /* OH_KEY_CODE_H */
V,mzx{sqy%2B .x{s<W&Mf
6,  ?x Q4RV4vRmx{s9M&?dam.,
 ?uxW{L[O	16N&<<yRc|}{Iǚ?vR9ڦh[[l-NӴT6Mt[;_}ljm2)wιGw !w<|o~wLh"tYUPӔ&%D+'zj)uQ3u5-ǐFr`dz -&eI(EPN#q$+?b!MV%Y̳kXZi盖Cٹ~n<;\9ZXyYtPQG<;%C.灑CIɝii[)
Rܦcm?~|MoΓ=yQ΋yx}o^Lş}10j΋uޡx{6/ɋFESd=^m**QvNc
󿼣m __sZPrVh<UeCSroʊخ
5; c}c%,Uv4++$A8Qn0ešo4;b6x1"R	ce;GRO˴:M	"Yk4׿ZiAm,Zɪf=-ј̵{LִI&0޵h&d\Q5҄r:{OTkchnĜE̩NgweV;<f4G.nwy$/HjNXvBF3Xf
W67eC$%Z>%Y=TΪZb~Հo_CȞȁ@wItSM/t9?<.bMc)ˊPGƱ$ƂxAL9o~~VA7zk.!TT*o6}IQDk{3\j.$EG=P$OM=U)~jp|RRc4QtzJyв'*gP~
}4v9 x.~'~$HTBD2*@M dtZI'Tv9ŀ*xy+g*(e=%^w~?@ճ |xd?`S9
j4rQ:>ꅣGܐ2fxބxT~6(aP	EJᳰT7ۂu"ȽVŜB|q*k.
-_3ōF 41X|yDCťH#UXÄ1v?&Y
ѧ^pP*6VTцRVBx:Q]5pYlPۘĺZqV WƠp*ٯǀ(\"arfP5׀!I&9mhUUӈqD-- Y,	л㕼j?f\OP4%8%	82Q]aÙ
N(gA[l8YkE!A[b>YqO\$ղ
:͚%x343US	`m<LF4/!P$2@\nim=X{e|9toqu}1<@%
Ο{cƄfU͸bplm)
f2@T)2}}Sn4%',M?M`$졛aqc
I]׋O //^Fszu.@I<	r=U+3"Y ?c1ǿ9F] +06[3N7%zNLEɊVɉ_[dÑp]B0x/uRCIf诖G #em(?$Z沛,fɉ`hOuOCJQ}kɎƟbgpQXs%wXN#U&	!4
hiARQڟ8n%g@us¬B^nּY7
ٛ O=`5tqB	p9l]_>
kk^XK1!=C9Ƽ\wASu3{>ыm͡[^tGf"Pb4i|mTZQ0`+UƆ~aĜtp:UUE؄Ϯ>ޔm{[:>WVsP)ł'Ќ:oAn1 &/oG|My.;XpH7GU0N"^|# 9Ind@в#W3E	u'";x9xW%&C(A&
lSxyz( cNx9qqdWb#E L[Ox;zq9'?d7 dx fGgǓfKhTZx;xq9_m6 Sxx{YS3sRs2'
T۬' (cNxEmHWI1f5j001Obo&Ę<EMDcy4O]RMܺl/aAi|6[l
c/(1Zm?O9?$;w_)~QhYe[Ax@A~R-T׎ YhZ43ji":9ʁ_TJtͨDU$u=>C_IIĥ% %Jk<O8K9d܊(Etprs3dB?hO6TŅgd]C3W(y8>\r)9x&pe֍3fԳ?T{KE#eՂ,ہɎ5?GnQ[9n?[D׋D7YlǒܪuZYklP*:!i]e_WBD~Άm?)vxvx>#;j/*gZo wNSz)OLСo?럢m;гx<V/l.8g8q/~ L3䚋##4ʏ"x'hAiras.l]C9wsCLOAN#큚0Tnc6#{ٜs:C=.<FpHWP:GyyfrnA]jgܪ!|-m|§4ճ(gRx<ش<"&bh[CtXu#XV#EFOd}<~;%'Uƻ08q2ގCDr=2j0/4_
=yR-+R:3uU5cDNn%|/)2(ּ5G9Exn7cH7kg%{	qX3	<Rk
^I14?I#o`wnn&h<
W3FDe?D8}wc(1n1>fgCV<}\xUT}he5Kg96M{jr.I.mƦɖQ9bUYq:dHQPts2PЉ|{evy>}.T-TQFg;@]4P|N:5u7	#͕F,m^B/6iaUٺz*%g9-)-8z,<y_4BP6gݴ"`62Pt(Mf)\i݅-з5#RX@sp8m`qod7݉JblF4N4Л؊_,(a{d墉38_[*wshI_σ08i!{:8_];{r ]fonC
GSJj񴕯?"Flm.uN~\3XGTη8vxV}ӒTcJ,H:C9-]$.t%fDǭ"=gzc
r۽jlc0>07YΖ,`?79Ok\¸Fyo
w1xŒn-]nG,VvzȞ(>pF8_%q_vAx0q%TFXx<34_Rxf#-#sAW1$pyT(U,8+M%,&(IIcY|ˎa!ĵ0'UnLÇ(o1;5]˥7m/B>*,~!l^)JsDa$SR)[*Kxˡr`xGա*Cw`,r)9)Aər ɬY39ϲ!?~nMq~;(ŬVυAax"VU:#S<238'-oc8qk[OJq<Aj4pFTpTޤ
\	_RwجJ

3BxQt>?4b:KiڱEQ5>#<`ppB8rO%'C	V4ß΄pk҆*	 x;yqYoY&ma-;y!XG5BTj^vbvG"lȪ5P]Yvueի&PW\
&i^ʦY^+#5g]ze&/WN&V|\Mު#  B5x;yYD'|E"@͇U؜  Ix}$Xr+'dl6HR(XZ<y"(Hdsyȋoޤ
 '<FxMkh[eEס@hsiIzɥm&'眜ܛ&XefeeEa?a(cl}D]c/>WW>B硓cz>`Ov~58;T>+9$;N_v㴗hs3byͭp閻ֺ/6vg>>sVjNJ6_~Ya}v&	c<yeɓ[ݫWR:L殖u}2;:Y7⠍+&~ʒ_fůD@c>I
(-&8T88$sm$<2+m#iuNފP)$q dp5T$x3\Z8H$H	kT8s#*3:߮LYy\e^ٸ	BoMh1C7c%[e۪>äkJaTsS96ūGMxY?̅x-K2'$T4[$3,_K,+GT+|x*Ub1s)$Tc7?j^n?~;;39/5pP٘(fXoOk3UR4sȽ?_||oAb ߝ(]恢DAעtOpgͫ{>]zD^pHp]]ޭ\1ye:W*]UzUgOU&9cppfM5əLg=KT=Sl|P!*\lަ6}_js`x{rE7۳ OtxśQo6)
?Ev{؛,Ѥ"/P#]b4Qww/%޿C $;Q$KY~FZjgMV~y9?5wh򷿝^Op':qѨub#k 911'J/,广[,?7MKrٱS%ifLpC*8uha-ݨ1?L.@!0zMf@}D.bG2_*7X?'p;n?|^2W2(+
p<l!)9@u?}T. Rߑ2@~gP~OW4)PxGW(he'3ڇf8x[9 =+uk3{:1M	b`ep΍X^x3
?Џ+hfE>220cSW%{V@|E'yYd;Z9oShAvoLfCcz'/)!RT0QtKZu1YշP)UfdJ,.22Cѩ[È6YoY!E; w"F*$Al%d]"ۖd_;K~Jaĩm/q~iZjtfz\ȟ'}dK(|g{(@h0vp z& H|VLNd⡊ߍ[K-cm77V~}t3M7Wen]V]WωC̾G۵z vfOENmّm3rj'Frww^6z̼w*t^Y67\W0zW27
gdHъQQq@NnLZpǹ4D|I`I;FTQZԹXMu:gJ=1VޡJpMG?͏R>lf;Qf*SGja?,Ÿ́#{ͅsm>c| fCѿW_m~9Q~b6$uxTQo6~ׯ8(}p Gjbn5F0uHFRQ}GY6k;X}<k,Jq/?M;0') V.3XцA24JY)J2zPxAiErY!ƁT tT+JIWi/aЩoh※W:\quFqu x^	ܩ
Ґt!=h0H1H'U1sqĒIL[X:|
rq,e§YLqlvp?ngrfכ|[nִf]S@*x$R2b߸\̥ _hyP'4@7ӒX*YK]((6nq*umT(f*{dL7IHeoO [״)^#KgG|QjZad㵱~(CџV+b~¸piV
[54*`o^E	/'JT;9?$ұLOȝߏ˞hZ#0YJTm?!y#2~pܾ"e188,i/WNU%݁诺ܴ)ݦw`:METVT%X]d7[gЂnǂm7]<c6agX>lpYn1CcVPS+Gl,i~tJ*0"q5\?ŕSӆ>`9k7_oQOe]߫p-M 3"+]`p"xA'Z.yU>.md6ދ12:o¿tj2ix7w d!fc=T%.ĂĤ̜̒ĔԢb[hRFivR* ~^bIfYj<_X',&)ԊԢĜʂ|%MjҒҒT`h*'/er⇉AŞ1i]3HO,DvP%Pݘga/ M2  Gx7SDY9(3=DA#YSl%d_&X̤ĢJ% #/$>$#PTRP/-)(-KMUUPBQN(I+IYgL@ssK2KRK|S\-,.I͍ON,HL,HMLI-*W <([HBL AV%t8UǗTBrr!r9p/%0GawEɩEv ~ Qx˷s d!fS)ĂĤ̜̒ĔԢs+'{1 qgx7c( Rx˷SDY9(3=DA#YSxH6G^jI|yjRq~rvjB5B~iIAiI|^bn|jEIj^qf~HLʜpU13*LdVw-LN,K-	.ILS\Y\XYRZT4/Z@l} ]ҫ T^ ŗT􂬌/KɆIC	ft{/(9p8C  x=N@S"RqBM:*zb❵(|NIh9$H&t6'n;#ڑD,|u1RڸfZ{,3(žCp#[8иUZ8ֵkda2`bPKk/c+B xq6ӿh-NH6Ylq>ikoy!:V/ؠ}OhI/ÕA	دLkJэd>P$6џvjJxJ1:"Tی\NvFdHЉvjqB\:03t}o*px?50k܃0[l{p`R?DĮn nyމswgI+s  yφREQd*u$uqp_pTsޠ#IeJH|֣#@U=(Z XRvf8E7*!rYeKkaA22яIحaBs)
YKC}iźWZ
G?_Y؁#KıT?6h8LxqcOf̔c=Txc/d?&L9I312Jy%%E@^B,W-wnx[̹CDY9(3=DA#YSxH6JbqqjI|^JB5B~iIA)P 17UVA	,=y!#+IPi2/#XY]!3/YbNbA^%P,EQBK*R\\ ?x[9sC3KFivd{)C?/$,5Ď/H,JPR %/ 4VOx[ϱcC3kbqqjBf(y9 	/x[9cC03[qIbr/́X3sJSRRKSSK2t@	`r, D&IxĹ!Y;$19[KA$57>9 1)3'2>#51%XV!Z&fvgU *ɼ ñIxl7$>9?//5$3?o7zQ%XZ. 9yxAK0`pe0T$d -*dH4%m!O_hMj.ޚ~y`?Oׂ.3yY<♟+?GJ_!f$U젷)#KIi99"ka#k[	DfmS9s ĭꟄyBFx!dBS&A\ja,\M#|kyI;Ji%jmȝP9O4i<5 tHloɇ8!M#U[@z?]s(mEwIݎ_>'7xuMN0a,2l@]s"'vT!#Iz+$m	x'ޢ-Ңh&ubJ0DuB	<ASZHWY!9P$^T.8l&YRrʸ6<G!Bl{
{7h^	!eNsM'{u?+#ޒ͑2Vs*~s-_ïߕH5՛`opv6Q><!U8qo|'w]Ӎg5r`tJ/H9
(xk|Ϲ:s,(奖eļ"3>9?//5$3?O/CIH%0AM,5"3/94%>XZ. 5XxPJ0]EaA|DMؓHI6ۄE("	%!GϦqw%$3Lfu}<G;#ˊ`*V>ZڊFfnr|e[kvo(^Z3Ek)aǬrFzο 5"	ᶳABq94ol㑣DdbrOI)-Z}˰Dr$CPWҖ/M6wEP	ڬ?H;?F?=:ۇ_Ym(t
G?CDx{uMTY9(3=DA#YSPw#D' $6jr)Nk'01NctS6b=//Wr~^ZfRNfO|AiRNfr<DTISKA!3/94%5>%XV!ZA) SI!$
vstqL(5$>VA)?#bpB6  7 _\ 
s{a@s :[ 6x{uKDY9(3=DA#YSpH$W~F~q|^Jv|FjbJjQRYiNvbLBq~iQrjB4_Y_XTRQ5C?3/94%*__X_CI'h	|YQB5ҒҒT`BPł3'3	ʋ`1u/J,L	MN`E(_(?>a:*U Btx;kG&̼ԢTɆ2e9ىye9%iEzJ:\
@E,e&2ac%<F -[+Yx{Cx$iLbee)0iطlҜ<'>9?%59>̤$e&ae@6O<jN0%	$9h',,

Je=å@bS|D[dJLq*%"XBrr  |xR j0	JiE%y%E)ɩ)JV
JFfzzJ:Uy xגԢԒxdǔb%ZZj<W, u35xTMoFW-(¢9EaV,
eHJ9!wݥi"Rz,A|yi&ɺS|0p]A0a-rG!%xSXܳK94"G,~Ex3	jj[tu F#
^"S. U]r&h|9vq0>{ȝaΨbPͶoc'/T/hlo(QkP[-*c;ZWHgFZЭ↋,L69F]c8;A͇	07oK7xX}C^6o`hx{Op'7S@bS[6Wpx=$]cjb߰=^>Ԩ* M+nqo幑{%	jR|2ˑX<G~v+*JMf*ͭMwi7\E%;`q&>Mz</N1»NZ@ѝXN"rێt^$d ˚GEz"短sbdM|m,F[a/~&炶,HSd;vrfuhlh_F(r^(墳%5c!Kr@^޽RU.aW1*1Kjo`;F>Rijtet-E_(N ccJCD{V
F=]&Bl=Uo\.ȉU"P[O;#|VbG01t>b舟Tm2j}@j:Iɀ@ '+W{Yc+»~xlܰ/55df; MLxVao6_qp'e.0s<D.+(Dj$G+wXn,@ ۼ{ݻAiNa,JJÛ-φp]5epEYL1T'/\JP	zEaT ~R1aoo%.4"S}iqE^dp_3<q`&N0oi;PmVZ?zvt:TSo<w(I3Hw$(*&5	d))iaD%ӌ/DDR0%[gXy; ]# /}!|#?&a|_yw`{Ͽ Eǐ>T2q(}&!$UИ,$K
KqO%Ǌ2gtUd,ghS.Czu$K)89.#˅d4,
0yI5Ea:")3Ka3S2<wlZv0#ڤF*j]єq2	eK>[H"+eftǟ교߳lUTJ|3`ӕ3y^r3㭃I7_ΤS	K)0ד&u$u<DgeBgƵŢ(T濇B~wByҭ='yޟx7h:a۪. mNbx*φ SWfXݐxTxa)]RNrѵxEdc§]u$-"%-ͶCu}9q.]P[aا^I!sjwIRb͊h/ܻaY?-#ǍcȺϑ!%9˪J,:cL(_pô.x/pkĴ7;5ܵc.Uאo\w`Qے]wx1й-߸IcagoY_F[8ǷamqqZS?uuΞޖP6\>}lx/Jj'f9EN Zx/Vj'd9?Z7c`27a3deTMt3)# \~
Qx/QjCr y<l	$Y4X&oĨy>K#Pf>xhSzUJ38tv]0ΩRZ\GUkM,+L­ĬW<;d_snZ

Z l0enx(AjoF9LX -r0x(Aj7䏜Y&u 򛷱21ZLuGNf 3VgxqBi-f4i\Sm/9 xqBH*ۮg<ZT)+ КAx3 l=`#,?LGAh} )IzRLGgqx3 lSˊf`w\TU{L.!/,Ax Ql|ZtE"ĕE-xYksH_qh>2;kU
9| nClGU-}Os{[N+	k<|We!F&oDuISA8E/{>.(rp{[Ė3	 5!CEFo\i;v]e@DsʢYIYk8l6X0ff;b8zE<#B '[s`%'xM2zé[M̉R!93o@98!	Zxv3:lLx6|p~΀ǐj*o`H|Ϣ 	]/xI`n	qGPB*` etMe,Wj{Wt*Y͢O/aǿf
М_wqJ, 'R89EלҔp>yȒ/DB%YZfDiH?-Ņ½@;Zh>ڐEr[`w#+Xƀ,9كجJ9=ofoEn$k5=ہ2G*n~iݻEYQY)Կ*QpW$O|}E5G	s(}Ɨi>G"K&5rqu2%$TsTAR|sKEc]mCXmG,ƭuF/녠xAq]?ьpR01bШE1z8آ	sʸQ&3+AA{Nq+i`q\Z2GQ$β9lX	4e_P#9p3xIB̦A`7᝹Ef*7fjgg;*2i+˵Ny}p	&X-<RsXsl :I>BH1g$_bE91,zVy9mx67)ղϊ3"W_齬3G詜$
sT;!ɺUG^.m5GS?J:ijzU\Qխ"-΢)z8ERW,;BA_bU7tK1geY[(y[\aW;zS}^7'rCi@5 ͑Z c6-ދp61ҴvQǻ{3w%W5/k˾idCjUNQ\?V2>Ǔ0m.P}c!tȅC~,
=+ mEq QA;žlTq	n.I9N֊=]klMM
>`5<5Fl{7e=ҷ;Sk^phc5E8wKZfe5׫PϢq7	Z8u%*m	68G8\0ܩ6/;lKYO"|pAurI&7䶾7	Ajt t##\;лNZPp~MgH8EfeiѩeqV?>xoqDԺvO
CP93F;	ᨤ!al{X#/Mnqؖ#	X$cÙd	A8Luxk!_OYma5ec68Hq!4珢J -r8F]yhPFi]Ky꓆N$-ջ~r-;_]q0|wƋu>O>j5yӕntU1yߖͼ_[jl\W3F~3]<f pR0PZr|$=㘱}|4&6i8>)7}*,HeI5_C
mf8ly[m̼*B`a;dx}k`i׷koiS.MiݖH[p=HHjk[HeIЃ`x&0Ã<
;	AЋ`>0n}~1wѼu[j}IrڎqYZr]7=CD-[`şYJ	8fpJjl7d}r4H8c!Fx[Ht,yURI	Ml>)+L4'S;Ïm>lXOMiEQf`HǛM4\
m'aviz^öaWwCҢQ	hH.0̒P"bʈ1$ӰKQ5o kF^3P#%2Zf\EPB	ï2fahpXpߴw>׋>R!1յN$3lDv2_Fe9kL;^1!nHE-qEw"zڥ	<rAa}h=XLĸrrf/9B-/xAKA^KHX4.`BDeݡuVvfO|.}AǎZFs߼CKg
`adNau235.eOB$Z+Z r%
C~]B?p# %b̷(+yA7{䴚xRi&^Rt+׶ȏ\'=OѦI>[0fX
6ƒ1WAA<_@$4C̶ձXYZ3Ћo6V4ct]1uyYmkxOg70FGa<xS?+գiK(S>=Mm"9r9WRo'WY34xawrc&ԤϙCM̩%ٓ')McON|s-?SZT_4dvEؿCL%1/cig_眘US4D@A+9'35D.4Y
a.)	n>	52rXJH,RJI,IԙS0n!SyocdEn&79ydߏ&?DB)E~)cHaPK(˪?9]P6,\BrMҔ[ q$JR'7r#^=dVaunaW$$DMv$ib sWzG:ZD"V%Rm0<!)P]ҳa2pk՟/DOY\9Fj? )pxansfٔ6dI ul/xbrC"9LS,6+Hpki)8*hO*# ڴ
0xgyr
`^rNiJMqIJf^^fy 
=x{wvאGgYLl#V{s!k# \!-cx;orc&Ԥϙ'od$~a<$47D{N[9 s܎@9KNԼt.gLB-\@"L6nd<Xcr[%/vx8A\VsbG@?bC..{_H2
XJ+@LR(.)*M.)-Jb T& $d.>9S0Dc,[ IHZe+9~!A!.}D!D'	Ȋ:3ON͂d~1=Q?%)2>5hd1bL@y,(02EN9KgrD'm6YJRSW2!SR$vVI?׈~R@QWGǤ\BAή.@u!Ҧ \C<&_IxHQUpwrvUV0᪅Du7 #Xfx[cr/@#l
Zy%&o,(0 
,x[`rLԤ9%6o0c6fDq02By f#U5x[`rgԤ總&;r>Sf-BW*\&I	Lc|;"m!ĻW z7?Nx( 99j
K	CK8<B6x[`r"+X'g n]
#x[`rC0KyjR)œ	OpD u><@|ZAcr'Cwr:
K%l&iɜipJ@:N@8ߤB T:'tx[`r'aVԤ߄Wq  Ix[`9rdyVCyEG>x[hrC^auʌ 7lx[h9r+7  'Dxk9rK~Fɯ f-b m!x2xawrc&Ԥϙ9Y 8gY8%EEEϱLfg?P;{\rA8v6yyΉ99Iٚ%E%
p
Z9y%:pZ\UcpI8NpNᖑbVrFbVJbId6zqy\+%Ex'+rN6sD Ï߀~0&"HMLI-OI+E
V^jEd]V	f!n4b qPP:E'
#LvNFp 8"%\'R9؍u&Y QLd^ k!|hҔJeJkLp2@vIφ1&/ Vrl Y?eM r3 g"]
xR Ēb%+h TY%EY%JVJI9)J:h҉%8Kr%%V%zyEy`99FFJpSjXZ ,/x qF'6=y()[xkeleP(8ojn2ͺ-ue1 xkeleP(ymnŵf%W͛t}? .
/xkeleP(WKԗI:e/ yYxkeleP(sF5k7 
WTxkeleP(+3kS<v &xkeleP$r۲,RcOR xxR j0	JiE%y%E)ɩ)JV
JJ:y QxҼbļԢH@Qf~QfI؀ZZFX D kx{qD| 1 1gxR j0	JyJV
J!9iEřyJ`\ ׽xm0/*
 * Copyright (c) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AssetApi
 * @{
 *
 * @brief Provides APIs for storing and managing short sensitive data of users, including adding, deleting, updating,
 * and querying the data.
 * The short sensitive data refers to sensitive data shorter than 1024 bytes, including the user passwords
 * (accounts/passwords), token data (application credentials), and critical data in plaintext (bank card numbers).
 *
 * @since 11
 */

/**
 * @file asset_api.h
 *
 * @brief Declares the APIs for accessing assets.
 *
 * @library libasset_ndk.z.so
 * @kit AssetStoreKit
 * @syscap SystemCapability.Security.Asset
 * @since 11
 */
#ifndef ASSET_API_H
#define ASSET_API_H
#include <stdint.h>
#include <stdlib.h>
#include "asset_type.h"
#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Adds an asset. Permission ohos.permission.STORE_PERSISTENT_DATA is required when the Asset needs to be stored
 * persistently by setting {@link ASSET_TAG_IS_PERSISTENT} tag.
 *
 * @param attributes Attributes of the asset to add.
 * @param attrCnt Number of the attributes of the asset to add.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_PERMISSION_DENIED} 201 - The caller doesn't have the permission.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Mandatory parameters are left unspecified.
 *         2. Incorrect parameter types.
 *         3. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_DUPLICATED} 24000003 - The asset already exists.
 *     {@link ASSET_STATUS_MISMATCH} 24000005 - The screen lock status does not match.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_DATA_CORRUPTED} 24000007 - The asset is corrupted.
 *     {@link ASSET_DATABASE_ERROR} 24000008 - The database operation failed.
 *     {@link ASSET_CRYPTO_ERROR} 24000009 - The cryptography operation failed.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_FILE_OPERATION_ERROR} 24000014 - The file operation failed.
 *     {@link ASSET_GET_SYSTEM_TIME_ERROR} 24000015 - Getting the system time failed.
 * @since 11
 */
int32_t OH_Asset_Add(const Asset_Attr *attributes, uint32_t attrCnt);

/**
 * @brief Removes one or more assets.
 *
 * @param query Attributes of the asset to remove.
 * @param queryCnt Number of attributes.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Incorrect parameter types.
 *         2. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_NOT_FOUND} 24000002 - The asset is not found.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_DATA_CORRUPTED} 24000007 - The asset is corrupted.
 *     {@link ASSET_DATABASE_ERROR} 24000008 - The database operation failed.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_GET_SYSTEM_TIME_ERROR} 24000015 - Getting the system time failed.
 * @since 11
 */
int32_t OH_Asset_Remove(const Asset_Attr *query, uint32_t queryCnt);

/**
 * @brief Updates an asset.
 *
 * @param query Attributes of the asset to update.
 * @param queryCnt Number of attributes to update.
 * @param attributesToUpdate Pointer to the attributes of the asset to update.
 * @param updateCnt Number of the attributes of the asset to update.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Mandatory parameters are left unspecified.
 *         2. Incorrect parameter types.
 *         3. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_NOT_FOUND} 24000002 - The asset is not found.
 *     {@link ASSET_STATUS_MISMATCH} 24000005 - The screen lock status does not match.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_DATA_CORRUPTED} 24000007 - The asset is corrupted.
 *     {@link ASSET_DATABASE_ERROR} 24000008 - The database operation failed.
 *     {@link ASSET_CRYPTO_ERROR} 24000009 - The cryptography operation failed.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_GET_SYSTEM_TIME_ERROR} 24000015 - Getting the system time failed.
 * @since 11
 */
int32_t OH_Asset_Update(const Asset_Attr *query, uint32_t queryCnt,
    const Asset_Attr *attributesToUpdate, uint32_t updateCnt);

/**
 * @brief Performs preprocessing for the asset query. This API is used when user authentication is required for the
 * access to the asset.
 *
 * @param query Attributes of the asset to query.
 * @param queryCnt Number of attributes.
 * @param challenge Challenge value, which is used when {@link OH_Asset_Query} is called.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Incorrect parameter types.
 *         2. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_NOT_FOUND} 24000002 - The asset is not found.
 *     {@link ASSET_STATUS_MISMATCH} 24000005 - The screen lock status does not match.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_DATA_CORRUPTED} 24000007 - The asset is corrupted.
 *     {@link ASSET_DATABASE_ERROR} 24000008 - The database operation failed.
 *     {@link ASSET_CRYPTO_ERROR} 24000009 - The cryptography operation failed.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_LIMIT_EXCEEDED} 24000016 - The cache exceeds the limit.
 *     {@link ASSET_UNSUPPORTED} 24000017 - The capability is not supported.
 * @since 11
 */
int32_t OH_Asset_PreQuery(const Asset_Attr *query, uint32_t queryCnt, Asset_Blob *challenge);

/**
 * @brief Queries one or more assets.
 *
 * @param query Attributes of the asset to query.
 * @param queryCnt Number of attributes.
 * @param resultSet Array of query results.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Incorrect parameter types.
 *         2. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_NOT_FOUND} 24000002 - The asset is not found.
 *     {@link ASSET_ACCESS_DENIED} 24000004 - Access to the asset is denied.
 *     {@link ASSET_STATUS_MISMATCH} 24000005 - The screen lock status does not match.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_DATA_CORRUPTED} 24000007 - The asset is corrupted.
 *     {@link ASSET_DATABASE_ERROR} 24000008 - The database operation failed.
 *     {@link ASSET_CRYPTO_ERROR} 24000009 - The cryptography operation failed.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_UNSUPPORTED} 24000017 - The capability is not supported.
 * @since 11
 */
int32_t OH_Asset_Query(const Asset_Attr *query, uint32_t queryCnt, Asset_ResultSet *resultSet);

/**
 * @brief Performs postprocessing for the asset query. This API is used when user authentication is required for the
 * access to the asset.
 *
 * @param handle Handle of the query operation, including the challenge value returned by {@link OH_Asset_PreQuery}.
 * @param handleCnt Number of elements in the handle attribute set.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_INVALID_ARGUMENT} 401 - Parameter error. Possible causes:
 *         1. Mandatory parameters are left unspecified.
 *         2. Incorrect parameter types.
 *         3. Parameter verification failed.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 * @since 11
 */
int32_t OH_Asset_PostQuery(const Asset_Attr *handle, uint32_t handleCnt);

/**
 * @brief Queries the sync result of an asset.
 *
 * @param query Attributes of the asset to query the sync result.
 * @param queryCnt Number of attributes.
 * @param syncResult Sync result of the queried asset.
 * @return {@link ASSET_SUCCESS} 0 - The operation is successful.
 *     {@link ASSET_SERVICE_UNAVAILABLE} 24000001 - The ASSET service is unavailable.
 *     {@link ASSET_OUT_OF_MEMORY} 24000006 - Insufficient memory.
 *     {@link ASSET_IPC_ERROR} 24000010 - IPC failed.
 *     {@link ASSET_BMS_ERROR} 24000011 - Calling the Bundle Manager service failed.
 *     {@link ASSET_ACCOUNT_ERROR} 24000012 - Calling the OS Account service failed.
 *     {@link ASSET_ACCESS_TOKEN_ERROR} 24000013 - Calling the Access Token service failed.
 *     {@link ASSET_FILE_OPERATION_ERROR} 24000014 - The file operation failed.
 *     {@link ASSET_PARAM_VERIFICATION_FAILED} 24000018 - Parameter verification failed.
 * @since 20
 */
int32_t OH_Asset_QuerySyncResult(const Asset_Attr *query, uint32_t queryCnt, Asset_SyncResult *syncResult);

/**
 * @brief Parses the query result and obtains the specified attribute.
 *
 * @param result Query result returned by {@link OH_Asset_Query}.
 * @param tag Key of the attribute to obtain.
 * @return Returns <b>Asset_Attr</b> obtained if the operation is successful; returns <b>NULL</b> otherwise.
 *     The attribute does not need to be released by the service.
 * @since 11
 */
Asset_Attr *OH_Asset_ParseAttr(const Asset_Result *result, Asset_Tag tag);

/**
 * @brief Releases the memory occupied by the challenge value.
 *
 * @param blob Challenge value returned by {@link OH_Asset_PreQuery}.
 * @since 11
 */
void OH_Asset_FreeBlob(Asset_Blob *blob);

/**
 * @brief Releases the memory occupied by the query result.
 *
 * @param resultSet Query result returned by {@link OH_Asset_Query}.
 * @since 11
 */
void OH_Asset_FreeResultSet(Asset_ResultSet *resultSet);
#ifdef __cplusplus
}
#endif

/** @} */
#endif // ASSET_API_H89O{xkAǉ!."D-D6%M""ފݗv6bN0ػAa7/_ vÜ7}~7?ԧ\UUX)sE(!PA^Rzf@}?Qkjp@Pv
e9 ̥L@'q/اtikwǙa%rYU`z= RDPTEKq|Ժ{<pP	6j(B?D>/"!L qt"ÝЇPH1㚱Rj0a@Nu:Sz>.NO	kR	vH6vЊu,=M=M=FiԻRy6r/!%,:*dԗg#%k8L{lc?s\EG席~PM[IN_7 9xV*մh:jsUj%b<<A z`zӇ#In_engu9j9HI(yS5/GxkABS94R$#U(4D!?M2/9(?/*$3?o\BMXDE@~f^IjBI>Xjza870NnPprsttvwsquU021 Cʜřyɩ
FeUNnS@N̪ 0Fwxkz!i)	L*L
%E
;Y\&[:lf{ 8bx(i.cqqjIfV]q HJQx{$b{X
XXtnx{"| bPjIiQ^McpkH|pkp~BfBd{U)k.-\ʦ*Kd{!1N}B
EȊ♓?Jp %@dp8Q^a:vzw	tvArqFBbqqjBbNQjbJBjEfqI1~sCCBぁ0l2n6J	fe&g(U'(QStqtrvw
Bԕ1Ư9(2 ]_!B&~}Ψ
i9)5:jLGZ&GggPtT='Bz5JrIY"47RK2xkr4ܢ3'OD\#.PCH0ptN.ijOА!PHdCdF^:W
_(|J-\	(bLClM=1hTxzmpvuuAmX&'&ԊԔbHNfnf	~BCT&T *W:dFspaFf	PP2Gx`=	qJVf0 SVx{^! (783?O!?#X rp
qwqqT,V(J-,,JMQ(HS(HUp,.N-QKMM)V(WHJU(.RR ř%y%9
I
@%y
9y
!!H6*$/0+# ZAYkx{>/t tCNf^cpkH|pkppBdC6eu  _`OxW?OWZ#Cf6=v8kL2Of䕛īW.kb &kX! QA`i=]C-?(s 4ܬ"fDucckkP\XUrGSk	V맨3U!0&?QAQ|Γs?/MX7.%64KOP7E15!G5䟌T̜ɊFͱƌRT9Y]V~@
.XyCJ':Fs8s8|:9qs49P=T_xzMpvuuATf`̗QVCQTKskAY;h@*1GUGSSgkZʓh_%8d7ORc l2IxXc LPjIiQ^McpkH|pkp~y
EEE
)
%EũeT&sȀ)3Mج(cE\J(2Aus Ćx7/*
 * Copyright (c) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup AssetType
 * @{
 *
 * @brief Provides the enums, structs, and error codes used in the Asset APIs.
 *
 * @since 11
 */

/**
 * @file asset_type.h
 *
 * @brief Defines the enums, structs, and error codes used in the asset store service.
 *
 * @library libasset_ndk.z.so
 * @kit AssetStoreKit
 * @syscap SystemCapability.Security.Asset
 * @since 11
 */
#ifndef ASSET_TYPE_H
#define ASSET_TYPE_H
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Enumerates the types of the keys of asset attributes.
 *
 * @since 11
 */
typedef enum {
    /**
     * Boolean.
     */
    ASSET_TYPE_BOOL = 0x1 << 28,

    /**
     * Number (uint32_t).
     */
    ASSET_TYPE_NUMBER = 0x2 << 28,

    /**
     * Bytes.
     */
    ASSET_TYPE_BYTES = 0x3 << 28
} Asset_TagType;

/**
 * @brief Enumerates the keys of asset attributes.
 *
 * @since 11
 */
typedef enum {
    /**
     * Sensitive user data in the form of bytes, such as passwords and tokens.
     */
    ASSET_TAG_SECRET = ASSET_TYPE_BYTES | 0x01,

    /**
     * Asset alias (identifier) in the form of bytes.
     */
    ASSET_TAG_ALIAS = ASSET_TYPE_BYTES | 0x02,

    /**
     * Access control based on the lock screen status. The value is of the uint32_t type.
     */
    ASSET_TAG_ACCESSIBILITY = ASSET_TYPE_NUMBER | 0x03,

    /**
     * A Boolean value indicating whether the asset is available only with a lock screen password.
     */
    ASSET_TAG_REQUIRE_PASSWORD_SET = ASSET_TYPE_BOOL | 0x04,

    /**
     * User authentication type for the asset. The value is of the uint32_t type.
     */
    ASSET_TAG_AUTH_TYPE = ASSET_TYPE_NUMBER | 0x05,

    /**
     * Validity period of the user authentication, in seconds. The value is of the uint32_t type, in seconds.
     */
    ASSET_TAG_AUTH_VALIDITY_PERIOD = ASSET_TYPE_NUMBER | 0x06,

    /**
     * Challenge value, in the form of bytes, used for anti-replay during the authentication.
     */
    ASSET_TAG_AUTH_CHALLENGE = ASSET_TYPE_BYTES | 0x07,

    /**
     * Authentication token, in the form of bytes, obtained after a successful user authentication.
     */
    ASSET_TAG_AUTH_TOKEN = ASSET_TYPE_BYTES | 0x08,

    /**
     * Asset sync type. The value is of the uint32_t type.
     */
    ASSET_TAG_SYNC_TYPE = ASSET_TYPE_NUMBER | 0x10,

    /**
     * Whether the asset needs to be stored persistently. Verification of **ohos.permission.STORE_PERSISTENT_DATA**
     * is required if **OH_Asset_Add** is called with this tag passed in.
     */
    ASSET_TAG_IS_PERSISTENT = ASSET_TYPE_BOOL | 0x11,

    /**
     * Custom data, which is of the bytes type and cannot be changed.
     */
    ASSET_TAG_DATA_LABEL_CRITICAL_1 = ASSET_TYPE_BYTES | 0x20,

    /**
     * Custom data, which is of the bytes type and cannot be changed.
     */
    ASSET_TAG_DATA_LABEL_CRITICAL_2 = ASSET_TYPE_BYTES | 0x21,

    /**
     * Custom data, which is of the bytes type and cannot be changed.
     */
    ASSET_TAG_DATA_LABEL_CRITICAL_3 = ASSET_TYPE_BYTES | 0x22,

    /**
     * Custom data, which is of the bytes type and cannot be changed.
     */
    ASSET_TAG_DATA_LABEL_CRITICAL_4 = ASSET_TYPE_BYTES | 0x23,

    /**
     * Custom data, which is of the bytes type and can be changed.
     */
    ASSET_TAG_DATA_LABEL_NORMAL_1 = ASSET_TYPE_BYTES | 0x30,

    /**
     * Custom data, which is of the bytes type and can be changed.
     */
    ASSET_TAG_DATA_LABEL_NORMAL_2 = ASSET_TYPE_BYTES | 0x31,

    /**
     * Custom data, which is of the bytes type and can be changed.
     */
    ASSET_TAG_DATA_LABEL_NORMAL_3 = ASSET_TYPE_BYTES | 0x32,

    /**
     * Custom data, which is of the bytes type and can be changed.
     */
    ASSET_TAG_DATA_LABEL_NORMAL_4 = ASSET_TYPE_BYTES | 0x33,

    /**
     * Custom data, which is of the bytes type, can be changed, but cannot be synced.
     * @since 12
     */
    ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_1 = ASSET_TYPE_BYTES | 0x34,

    /**
     * Custom data, which is of the bytes type, can be changed, but cannot be synced.
     * @since 12
     */
    ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_2 = ASSET_TYPE_BYTES | 0x35,

    /**
     * Custom data, which is of the bytes type, can be changed, but cannot be synced.
     * @since 12
     */
    ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_3 = ASSET_TYPE_BYTES | 0x36,

    /**
     * Custom data, which is of the bytes type, can be changed, but cannot be synced.
     * @since 12
     */
    ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_4 = ASSET_TYPE_BYTES | 0x37,

    /**
     * Type of asset information to return. The value is of the uint32_t type.
     */
    ASSET_TAG_RETURN_TYPE = ASSET_TYPE_NUMBER | 0x40,

    /**
     * Maximum number of assets that can be returned in a query operation. The value is of the uint32_t type.
     */
    ASSET_TAG_RETURN_LIMIT = ASSET_TYPE_NUMBER | 0x41,

    /**
     * Offset of the returned assets in a batch query. The value is of the uint32_t type.
     */
    ASSET_TAG_RETURN_OFFSET = ASSET_TYPE_NUMBER | 0x42,

    /**
     * Sorting order of the assets in the query result. The value is of the uint32_t type.
     */
    ASSET_TAG_RETURN_ORDERED_BY = ASSET_TYPE_NUMBER | 0x43,

    /**
     * Policy for resolving the conflict when an asset is added. The value is of the uint32_t type.
     */
    ASSET_TAG_CONFLICT_RESOLUTION = ASSET_TYPE_NUMBER | 0x44,

    /**
     * Asset update time, in timestamp format. The value is of the bytes type.
     * @since 12
     */
    ASSET_TAG_UPDATE_TIME = ASSET_TYPE_BYTES | 0x45,

    /**
     * Additional operation type. The value is of the uint32_t type.
     * @since 12
     */
    ASSET_TAG_OPERATION_TYPE = ASSET_TYPE_NUMBER | 0x46,

    /**
     * Whether to encrypt the additional information customized by the service. The value is of the Boolean type.
     * @since 14
     */
    ASSET_TAG_REQUIRE_ATTR_ENCRYPTED = ASSET_TYPE_BOOL | 0x47,

    /**
     * Group to which the asset belongs. The value is of the bytes type.
     * @since 18
     */
    ASSET_TAG_GROUP_ID = ASSET_TYPE_BYTES | 0x48,

    /**
     * Encrypted import/export type supported by the asset. The value is of the uint32_t type.
     * @since 18
     */
    ASSET_TAG_WRAP_TYPE = ASSET_TYPE_NUMBER | 0x49
} Asset_Tag;

/**
 * @brief Enumerates the result codes used in the ASSET APIs.
 *
 * @since 11
 */
typedef enum {
    /**
     * The operation is successful.
     */
    ASSET_SUCCESS = 0,

    /**
     * The caller does not have the required permission.
     */
    ASSET_PERMISSION_DENIED = 201,

    /**
     * The parameter is invalid.
     */
    ASSET_INVALID_ARGUMENT = 401,

    /**
     * The asset store service is unavailable.
     */
    ASSET_SERVICE_UNAVAILABLE = 24000001,

    /**
     * The asset is not found.
     */
    ASSET_NOT_FOUND = 24000002,

    /**
     * The asset already exists.
     */
    ASSET_DUPLICATED = 24000003,

    /**
     * The access to the asset is denied.
     */
    ASSET_ACCESS_DENIED = 24000004,

    /**
     * The lock screen status does not match.
     */
    ASSET_STATUS_MISMATCH = 24000005,

    /**
     * The system memory is insufficient.
     */
    ASSET_OUT_OF_MEMORY = 24000006,

    /**
     * The asset is corrupted.
     */
    ASSET_DATA_CORRUPTED = 24000007,

    /**
     * The database operation failed.
     */
    ASSET_DATABASE_ERROR = 24000008,

    /**
     * The cryptographic operation failed.
     */
    ASSET_CRYPTO_ERROR = 24000009,

    /**
     * The IPC failed.
     */
    ASSET_IPC_ERROR = 24000010,

    /**
     * The Bundle Manager service is abnormal.
     */
    ASSET_BMS_ERROR = 24000011,

    /**
     * The Account service is abnormal.
     */
    ASSET_ACCOUNT_ERROR = 24000012,

    /**
     * The Access Token service is abnormal.
     */
    ASSET_ACCESS_TOKEN_ERROR = 24000013,

    /**
     * The file operation failed.
     */
    ASSET_FILE_OPERATION_ERROR = 24000014,

    /**
     * Failed to obtain the system time.
     */
    ASSET_GET_SYSTEM_TIME_ERROR = 24000015,

    /**
     * The number of cached assets exceeds the limit.
     */
    ASSET_LIMIT_EXCEEDED = 24000016,

    /**
     * The function is not supported.
     */
    ASSET_UNSUPPORTED = 24000017,

    /**
     * The parameter verification fails.
     * @since 20
     */
    ASSET_PARAM_VERIFICATION_FAILED = 24000018
} Asset_ResultCode;

/**
 * @brief Enumerates the types of the access control based on the lock screen status.
 *
 * @since 11
 */
typedef enum {
    /**
     * The asset can be accessed after the device is powered on.
     */
    ASSET_ACCESSIBILITY_DEVICE_POWERED_ON = 0,

    /**
     * The asset can be accessed only after the device is unlocked for the first time.
     */
    ASSET_ACCESSIBILITY_DEVICE_FIRST_UNLOCKED = 1,

    /**
     * The asset can be accessed only after the device is unlocked.
     */
    ASSET_ACCESSIBILITY_DEVICE_UNLOCKED = 2
} Asset_Accessibility;

/**
 * @brief Enumerates the user authentication types supported by assets.
 *
 * @since 11
 */
typedef enum {
    /**
     * No user authentication is required before the asset is accessed.
     */
    ASSET_AUTH_TYPE_NONE = 0x00,

    /**
     * The asset can be accessed if any user authentication (such as PIN, facial, or fingerprint authentication) is
     * successful.
     */
    ASSET_AUTH_TYPE_ANY = 0xFF
} Asset_AuthType;

/**
 * @brief Asset sync type.
 *
 * @since 11
 */
typedef enum {
    /**
     * Asset sync is not allowed.
     */
    ASSET_SYNC_TYPE_NEVER = 0,

    /**
     * Asset sync is allowed only on the local device, for example, in data restore on the local device.
     */
    ASSET_SYNC_TYPE_THIS_DEVICE = 1 << 0,

    /**
     * Asset sync is allowed only between trusted devices, for example, in the case of cloning.
     */
    ASSET_SYNC_TYPE_TRUSTED_DEVICE = 1 << 1,

    /**
     * Asset sync is allowed only between the devices that are logged in with trusted accounts, for example, in cloud sync scenarios.
     * @since 12
     */
    ASSET_SYNC_TYPE_TRUSTED_ACCOUNT = 1 << 2
} Asset_SyncType;

/**
 * @brief Encrypted import/export type supported by the asset.
 *
 * @since 18
 */
typedef enum {
    /**
     * Encrypted import/export is not allowed for the asset.
     */
    ASSET_WRAP_TYPE_NEVER = 0,

    /**
     * Encrypted import/export is allowed for the asset only on devices where a trusted account is logged in.
     */
    ASSET_WRAP_TYPE_TRUSTED_ACCOUNT = 1
} Asset_WrapType;

/**
 * @brief Policy for resolving the conflict (for example, a duplicate alias).
 *
 * @since 11
 */
typedef enum {
    /**
     * Overwrite the original asset.
     */
    ASSET_CONFLICT_OVERWRITE = 0,

    /**
     * Throw an exception for the service to perform subsequent processing.
     */
    ASSET_CONFLICT_THROW_ERROR = 1
} Asset_ConflictResolution;

/**
 * @brief Type of the asset query result to return.
 *
 * @since 11
 */
typedef enum {
    /**
     * The query result contains the asset plaintext and its attributes.
     */
    ASSET_RETURN_ALL = 0,

    /**
     * The query result contains only the asset attributes.
     */
    ASSET_RETURN_ATTRIBUTES = 1
} Asset_ReturnType;

/**
 * @brief Enumerates the additional asset operation types.
 *
 * @since 12
 */
typedef enum {
    /**
     * Sync.
     */
    ASSET_NEED_SYNC = 0,

    /**
     * Logout.
     */
    ASSET_NEED_LOGOUT = 1
} Asset_OperationType;

/**
 * @brief Defines a binary array, that is, an array of bytes with variable length.
 *
 * @since 11
 */
typedef struct {
    /**
     * Size of the byte array.
     */
    uint32_t size;
    /**
     * Pointer to the byte array.
     */
    uint8_t *data;
} Asset_Blob;

/**
 * @brief Defines the value (content) of an asset attribute.
 *
 * @since 11
 */
typedef union {
    /**
     * Asset of the Boolean type.
     */
    bool boolean;
    /**
     * Asset of the uint32 type.
     */
    uint32_t u32;
    /**
     * Asset of the bytes type.
     */
    Asset_Blob blob;
} Asset_Value;

/**
 * @brief Defines an asset attribute, which consists of a tag and a value in the form of a key-value (KV) pair.
 *
 * @since 11
 */
typedef struct {
    /**
     * Name of the asset attribute. The tag (the key in the KV pair) uniquely identifies an attribute.
     */
    uint32_t tag;
    /**
     * Defines the value of the asset attribute.
     */
    Asset_Value value;
} Asset_Attr;

/**
 * @brief Represents the query result of an asset.
 *
 * @since 11
 */
typedef struct {
    /**
     * Number of asset attributes in the query result.
     */
    uint32_t count;
    /**
     * Pointer to the array of the asset attributes.
     */
    Asset_Attr *attrs;
} Asset_Result;

/**
 * @brief Represents the query result of multiple assets.
 *
 * @since 11
 */
typedef struct {
    /**
     * Number of assets in the query result.
     */
    uint32_t count;
    /**
     * Pointer to the array of the assets.
     */
    Asset_Result *results;
} Asset_ResultSet;

/**
 * @brief Represents the sync result of an asset.
 *
 * @since 20
 */
typedef struct {
    /**
     * Sync result code of an asset.
     */
    int32_t resultCode;
    /**
     * Total number of assets to be synced.
     */
    uint32_t totalCount;
    /**
     * Number of assets that fail to be synced.
     */
    uint32_t failedCount;
} Asset_SyncResult;
/**
 * @brief Defines the mask used to obtain the key type of an asset attribute.
 *
 * @since 11
 */
#define ASSET_TAG_TYPE_MASK (0xF << 28)
#ifdef __cplusplus
}
#endif

/** @} */
#endif // ASSET_TYPE_H8!xW[l#WVxI6$q؉I"nVݒˊn99Ow|fvΙTRhЗ"Bꅾ z{AE}R!R$}g.j@|~s^¿zxb#V%HosT)=1Prm[
G-Ltb~1;gg"]W/3zq%.m+Y=kt<=ӯ#vNh8/n Y
OEulT'Yט )߯a0)yقӉdh?k(ƍZ+sE<!yU0pXhxe\a1v~9w衳˃H͵:$҇>s2&$PәP%Ax)Z1<:pfk0ï"	I8543yWOݺv60LR3÷[S{|?J)OvIn*n}lF6ߘ}nYD؊a|:e,GrZ؝>GǱd`
d*exH>F̡ZDl<HbPx[;V\fخ)	EVv^і[\G!%x䈫c!ȏT*ځ{<(ꪦ4?u>%,:'%ObFҶXP6u㛇,M?Rop5[20/TiEE9&ճG'\_+WoƏof1}5awQC?rr)om
wi*E
snglh&ᨃny	n8/3ULkS+M!7u#=vf`3^0~rB~:	Ț>S -XմˊhQ9n^^^P֙Ҙ%ظLEsnHqπ'喦<f.J5FUk&L%,QAؓ\*Xri$$\Ix4gXː1/kPc9*o'!Bz
78(ʱa!ɸ߮aQxcv:V5vեNAlU@L6vnny*ퟯͥ>~lV݇yF&|
UT8mڏ쐒a`dc4KJv˘.d2%蒄|HL/lHGTj;b'{`u|fC]9B?,
Wa"uyN݅w`bgx+'ڂX_`ԡ5?uR_tm9,oH<w4fY>-R7dr7EAOt\,`,l]Јic~zԜnM5&\[xio;1x(o7amvFdtW
8CBa5iz' r*3eU=4 5B7OV|=,eziopjq贯7^PpM|͕V澬,UF£F,:=M0N¥p.USj=F ;s-7p\Pk͝O{z,&XŃ)׋ۯ>~F
~1ѻޯm$*
^|.ӝ5-#lu+!_ں6?"4p2׋z$0zW3N4nox yx'S졽 w	-x٘akiqh-Ԣ"ĢԒ"Ԣ̴Ē<̜LFمU}\<<C<=}\]lLbN%ɋK2R+32 q)  83/9U RhPQn`:3(Ś͏ #KKsJs~cd+>7b\&!p,.N-)V(H,$sS'ˀSSfB4\;y# ~m<x{ yCڛ7c'h<Y]|3q -ix{ yIFɊy Px{|$yCڛKR&w0;oƼ^!$#U!?#X (783?O/8?5>5(38/$1Q@!X(4(5E!3M&#ޱ8$1%F?$91'<$C$(Pǥ ZPHX1Y]|!<m LQ}x{<!uCnlIL01LVd#e8KA&(@!3E!1O!8D!)5'?/X$rH9{h@	&RK*fx{ yIFɊy Px5s[ɶRju9ĵ2R2K2J2RJ*RSKRKsy%$&orp|QJrkFy@ե3smFvj*yP̒bĒ̤ҒTĜR
yeE
99)
%
I
E@^idA&US'l`rbB~^N%)E
ypNBJjYf29@̼>r%yxA``U>>h:7?X	 w;T"x5sF)FɊOJ-6J{7 4
x;ܕa3kpI~Q9&\ E2x;|(y:f[ Ph,PxuAǋSzK"\z V"@"d3Ͽ!Xbiae"7G/۫k<óaNhҷ=iџgY-(`|\sRXiRoQ4Z93LPKyȨ;tf>Dmz8whxIz^6]7*?94?+)d/*3:w#HVL;u(AE
.P|K()rxJwf-kIIe$jnIB	^?{p)$}fJɲU	P,ꦽ*>*m/ޥ@~FaWjzPt Ja\ƪ3sZt	G۰LHQBH{ilڬ]5zuqe/sh@zxOkA!%D`Km"%5͟K"5[bNLD(
tn^ գ~tv^fy)eEm<wH.? p 
`\>9fPpF_No}@KRlQS)i#_խD[K؎~-$[ՙOM5o}Θ;n$*ѴKG84cE ʧabP1)zHbFHJTu.] 껻(V9sX2UȟdiI{Lg6vu:rFќ<[?,Yq#iD(C#X+̣vu\UކڤWy\grw>aryH!C#"KWQǲvݧ+XxۥwN/F/gs;oɂz;=9:Z8xkk0tr3L\ xkk fƚ_W2YLĲ|QY*i
, jy1xkk۠iƒ8ydW Ox/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License"),
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup CertManager
 * @{
 *
 * @brief Describes the OpenHarmony Certificate Manager capabilities, including certificate and credential management
 * operations, provided for applications.
 *
 * @since 22
 */
/**
 * @file cm_native_api.h
 *
 * @brief Declares the APIs used to obtain details of specific certificates.
 *
 * @library libohcert_manager.so
 * @kit DeviceCertificateKit
 * @syscap SystemCapability.Security.CertificateManager
 * @since 22
 */

#ifndef CM_NATIVE_API_H
#define CM_NATIVE_API_H

#include "cm_native_type.h"

#ifdef __cplusplus
extern "C" {
#endif


/**
 * @brief Obtains the detail list of USB certificate credentials.
 *
 * @param keyUri Pointer to the URI that stores the USB certificate credentials, in string format.
 * @param ukeyInfo Pointer to the property information of the USB certificate credential.
 * @param certificateList Pointer to the USB certificate credential detail list obtained.
 * @return {@link OH_CM_ErrorCode}:
 *     **OH_CM_SUCCESS = 0**: Operation successful.
 *     **OH_CM_HAS_NO_PERMISSION = 201**: Permission verification failed.
 *     **OH_CM_CAPABILITY_NOT_SUPPORTED = 801**: The device is not supported.
 *     **OH_CM_PARAMETER_VALIDATION_FAILED = 17500011**: Input parameter verification failed. Possible causes:
 *         1. Incorrect parameter format.
 *         2. Invalid parameter value range.
 *     **OH_CM_INNER_FAILURE = 17500001**: Internal error. Possible causes:
 *         1. IPC failure.
 *         2. Memory operation error.
 *         3. File operation error.
 *     **OH_CM_NOT_FOUND = 17500002**: The certificate does not exist.
 *     **OH_CM_ACCESS_UKEY_SERVICE_FAILED = 17500010**: Failed to access the USB certificate credential.
 * @permission ohos.permission.ACCESS_CERT_MANAGER
 * @since 22
 */
int32_t OH_CertManager_GetUkeyCertificate(const OH_CM_Blob *keyUri,
    const OH_CM_UkeyInfo *ukeyInfo, OH_CM_CredentialDetailList *certificateList);

/**
 * @brief Obtains the details of a private certificate credential of a specific application.
 *
 * @param keyUri Pointer to the URI that stores the application's private certificate credentials, in string format.
 * @param certificate Pointer to the details of the application's private credentials obtained.
 * @return {@link OH_CM_ErrorCode}:
 *     **OH_CM_SUCCESS = 0**: Operation successful.
 *     **OH_CM_HAS_NO_PERMISSION = 201**: Permission verification failed.
 *     **OH_CM_PARAMETER_VALIDATION_FAILED = 17500011**: Input parameter verification failed. Possible causes:
 *         1. Incorrect parameter format.
 *         2. Invalid parameter value range.
 *     **OH_CM_INNER_FAILURE = 17500001**: Internal error. Possible causes:
 *         1. IPC failure.
 *         2. Memory operation error.
 *         3. File operation error.
 *     **OH_CM_NOT_FOUND = 17500002**: The certificate does not exist.
 * @permission ohos.permission.ACCESS_CERT_MANAGER
 * @since 22
 */
int32_t OH_CertManager_GetPrivateCertificate(const OH_CM_Blob *keyUri, OH_CM_Credential *certificate);

/**
 * @brief Obtains the details of a public certificate credential of a specific user.
 *
 * @param keyUri Pointer to the URI that stores the user's public certificate credentials, in string format.
 * @param certificate Pointer to the details of the user's public certificate credential obtained.
 * @return {@link OH_CM_ErrorCode}:
 *     **OH_CM_SUCCESS = 0**: Operation successful.
 *     **OH_CM_HAS_NO_PERMISSION = 201**: Permission verification failed.
 *     **OH_CM_PARAMETER_VALIDATION_FAILED = 17500011**: Input parameter verification failed. Possible causes:
 *         1. Incorrect parameter format.
 *         2. Invalid parameter value range.
 *     **OH_CM_INNER_FAILURE = 17500001**: Internal error. Possible causes:
 *         1. IPC failure.
 *         2. Memory operation error.
 *         3. File operation error.
 *     **OH_CM_NOT_FOUND = 17500002**: The certificate does not exist.
 *     **OH_CM_NO_AUTHORIZATION = 17500005**: The application is not authorized.
 * @permission ohos.permission.ACCESS_CERT_MANAGER
 * @since 22
 */
int32_t OH_CertManager_GetPublicCertificate(const OH_CM_Blob *keyUri, OH_CM_Credential *certificate);

/**
 * @brief Destroys the certificate detail list.
 *
 * @param certificateList Pointer to the certificate credential detail list to be destroyed.
 * @since 22
 */
void OH_CertManager_FreeUkeyCertificate(OH_CM_CredentialDetailList *certificateList);

/**
 * @brief Destroys the certificate details.
 *
 * @param certificate Pointer to the certificate credential details to be destroyed.
 * @since 22
 */
void OH_CertManager_FreeCredential(OH_CM_Credential *certificate);

#ifdef __cplusplus
}
#endif

/** @} */
#endif /* CM_NATIVE_API_H */
(qxTOOAM
V! 	$b7B['QcRY΢56Ƴ!Nxӫ'O|hxfۂP#\i7yf?M~wYχc:1$DC2:T&z̱Tj5|*f`P*,}\mWrZ|(y%J@5jA/";cT\FLݢ5Ĉe*qؾ1=_x)iAʦɵrL
PlLdjv5}BC?ʙl9ʯ4`VN@6%uU-er.{H"UAXLmQgcOe9Q&c8Ĵ]` uPfd((Yb@)(2qK7L&/(j)jy>315ͪ\ɮ>s>ѱV@Kq%[,f;d]zJ;; >oth87wϊmߦdkѮ97w~F6L9_Fߟ=W4+1MO3fURYVJt6V~ʁ0o4T~~w6?B'bCGͰ-bzi1K|r96]Vߌ=!(bd%bÿLzOIx /)( H ?20FJkq"%H/2RC 5)
>
}20Fkq"%H/2RG 5Ó20Fkq"%H/2RC+ 
 
&ɗVEg	7x{yOs;Bf^AidE96.-<ssK2K23sRS>,CPu̘G4Ȥ;+xXmsF_]6_6j|
	'ޕj(1IOH ؗe[~Nl5As-.Gv:nt9Hc@9XWw\Bi_[8k,`VJEQa*1B$Y"XBύJq_Pi%iZg?/63RΓR4?ﻶη:4NoPd,CP Ԅ-A*`3z%S"JL
5D.Qc)Z>)||7!zq ?Y`뺁;{zpᏙ"h2>;g<Sk`33UABƤ&6"C''g&MrE*y%km*RH*"](Nł+c>bj &rqKj*tU6>%柅6UUjDUQڙRoyNP=v:α8rdy~.Xdx㭘iCުC)X$cRea2Zt5PkFL1{SoC
;'N;yH%E៹'R&woT\=2H0ʒ">?N4ӓA/DaBk[=0*>|xB~<ra\աw<!kBYZhs[eu^tל
tA*dVuG^DHڕ̹]"Ƕ>.ZG0ی9ˑk]O$)~6Y~¡3u}Y	Mw..oL2РԶ';@(pC=XRC{G;'.m6"]{?eHW1tQxpCܶ)<9r㑃/ұ	du3{ݭKʑ2CIA$R#ӈXP5(6rTqy Ja_un`KaGLpbaF[Zf55>V\w @1ZA8r,ԢݫGaK%~/əlXA3񫗄%.74Nu9~)d@i2up	/wc7Yr}@0]׍7RV09
z^,f('*S2˖niǟwF&,Ԥ5fF[p:uFY7dLg7֝Vouۙ .gUM>N&Ji;SXN]|,+ g2+T&E﵃<*)+Q8Ip;X7ָ4jVx[DH;t2-Ҩ3`gm\p]nϑϾvFj5rnǳGCMkA4/-lhzA}Z(VClȕ{/px<?5f^bȾ6QhVhZs&9y;shb&f"msn^LmF2:RB;,Dq	7f,gIZz/y|;F'6kߋ}<&p쌕rrLNfL[ON{hL:n^L6ɲEq?3=7ALϿ5[kŰ:hn8rß`=֭h"vp
v?[9ĎŨh1>[øt}@pzi'f?U:#vA^7~WQAXUxcx=Q{2,⓭YE&ogU`|WdeEE&lsqB6;	O>% Tb=M(+6Hf{8F TMxSMOSAM`6	bJh4BlH4P$nLS:ھy̫օ1qCacc?uҕ+	{mm$$wιsOR;m-gi$s*0[G뜉:h
	ۄB(.47
!Y-:E8g*푁5p,)3tɨ/A}d4Ix
a,+?	&lKA钣5CTW>@&lŉf5J
ѦX+tM}RqDT jqfL}Ci74'i^qM3_PdbKvX_Ic}ݗOdbs ̊3=a0LT܈#DICRwpmKcIq@f
gqUtoB΁LL4vqdJ=Q=gi	P6Zk|`v,4d-C]{7*U2'oۣCeC%әڳX\Lyt!~y#450c޳=Tma/^v{M,v(Җ\gr vFT@R!#P>s/Щ3x?UH:{x,^a:nP!{a-R@l$:{߃cDZ帅󫱁s'G&OIc`ꑖraAڞ`*-jxh ))_t*2g)t2*o2
sHnE4Q'#rx[ǸqHf}6DsamD x 2CՑ:\t"IbNGFhNx[Ǹq'+R??oPed7E^f]D {x[Ǹq7k/Z,؋Qn J(x[ǸqH'ƫ2,ZOt  GUx[ǸqH٭Z%Nm,.l;9Nt  I
x[Ǹqa27OY2 5/x 2%<z UkFh~^x[Ǹqԓ3J2ݜwbM⡉n Ex[Ǹq,2b"o|\#*KrפЉn V8x[Ǹqܽ|g;=6ȶn ex[Ǹqu"w\TBp2 ʼx[Ǹq	}7*g.|2 
Mx[Ǹq2s%t\[߷MLn _x[ǸqHA؝],Md\in  C
x[Ǹq+vUuGxΪW0- +x[ǸqHfЀ|:_\\b[ ġUx 2mGwyҩɑFh?x[Ǹqȶ,9Z,/%:fޙ2 ,x[ǸqȞR{5ZD:cqMS5- >4x[ǸqH/9ZWN9- <2x[Ǹq-e.:gϏp{׽n 0x[ǸqHsْM->gX.yKSVŉn =[x[ǸqHS&p~[E\D Wx[Ǹqܹ9{δs[ s+x[ǸqeY'4ݱ\{u92 ͡>x][s~_}PIؙ9N
e Uvk؆r]uf,n}I~F."6d@G39M9eIKZQiIH<~*F#kdox/X	91I81(7.c|cY<()BK%#!|go$N3h>o-&﷬ٶ͏z{s?A{℠ASϙ "$P<b1'Uq<w"bF&qdZChx0M,=jؖ]E!߭i#ߍnh,&.itMguKrfUB`P	#lИT:Ц48*l\h?I	%F>41Nxlb'Vڅ{_Fq0$ȺgtaLe1:.؂r!Rԉf o0P;8(;2LOyzu2~Ն7ZN!biUF5$עR +"&P	'Cf8+@ oB}I硎J!D-a&V}PeƦ `ԁڴhN׃0*hu\CCןVaDPGWj<z-8YC}QD:D'X8X?1ԘhOpt]=M,"{7ћ⛼o'#6^WZ#E
a$	3N:3#|t"`~=#2ϐ=07D4N@Ф38RqH7~Blo4L&Gad04:Ms`ZݓOG"ί/ʲE
rGNu@JO<R*>_T>3vK85M[~<ְWIFFwN
(Yb@NE:=;p]w0ca"ٟ` yN#LLJD
,UFՂNg8z3v{T>JKrp&cUSt04%	e畊v)-|Z?HM*!hCumC}pa ~g$5_$'""]!(\%A}7 r58Zsav$cj)5>cH#AX)0lj7e5E30Z'K˪Z~>"41AXu 	刴7
Bznm[퓻Tg%Dﮡ9?﷭ƪ?.eg% cQR٬HP_D	&mYm|l5,h<t/m?x20gtD6߀4%ͦ9kK7}TV@>"bwoBa;<B;=(t8:i]Sݿt{2 :KTcOBET6̼F2CT:09D-d0(NftOJ%[B*CJs(+U'yWL@%I,\Qv]>*lt҂Aiumy/W7`=X+-=sM"!OI#VHD >:xik1(1XbB!zF)0ZU,axd"P\R2ῦ]f7Iez<Z]c*qp
iW<rxmb\pѥJSNa56Ocԅdt\wg[{~v@>X5qtmbz֔lٔ&ve~1<nKfP2r*doi|O	5d+)<Fh܇1X>F+NyJz<Ʌvv8]ȷILzO?M^&gL/VƐz!pFۏM>k<EA.yuDpY.5ދuƉ9h֠aX.uko%D>XBrvmVփA:Тm຺.EQTV/T;:dۿBr_T!k*kTޡ5)u8OX91+pk"vIKt.	fME:8F_S$_qcet	-?׌^ϴ{&i	͓g%baCX r^NsھKt~-__];m:JXblyzY83{#%=8">035d3Mfhv Zn+p&d	ةZ)l2%:|pT<4TˬXf2+Y1YpMZ$_@
9=#j2Jh	;n$|ubFO	x2jJ&9YwS9$|+SX,o SC?2S?OxCҺ[JxJ/IBFjWAQ(o(UxO{h
%EǾX, \/O(~&GX|S]9ce`Eߗmt\ab~ջ<h2ﵰJE'ee%(YD*6elYVjS#99%!y+%;0LI0[Lo',	E
5
;~TM&ӆ"T/wq4  IivaAvgBJ>-vGUI~kkn׾{B=<H"74#7@3Ji.qf6'ܨ_jmL$J9ш=gC$Q05ACDo&"ꥧdA$1dt)0.n'(291{Q\i|Voݷ'iqf}ȏnx8DY }*Né1 `6nOf[:+u%I,G途>r{B\u7O']	
ZӨD=^sٵ/~͚/\8|2`֥F#C=٢em'7W޳jMhǪ}Bw_CJ\:DfJ|Ksc("#wȓtZ*m_Hoi4ɿ-oI~K[ߒn>RRk)39~\r-v"׻$%}bnwGzw%6.̤'NwoN^GT'*Ǟ%f2;_m+>SXjAT(_o;p>IRy;Q?:G}?Pi, }bq8ˢEE^ r3-nWudjrneͳR"Ry?y/Pif!Qp2I> 'BjNp]? m{L:_/J]Edsq:;6
pK{YY?|c״/?WŊ+dP~,axXKoWV  $!@:cV1,'uB{=sgyrR.ijAU7mtE{BT3s{\K'=635Ιe֡gB,IJAJ
IgB$a#5K5+N"D$Ցm$%VbM&+Cvu{;5#8>G"mAQp&;VǗs{O-(|gJʪc	#"-!9a{O;@eOmqQ

$Ȧn&sn撷L:˼]agLsXSvpóP,409U6\Nzs4r:I.VHAMZNH<=6
WDLd<ڷ	%&36x*5FE;uUR,/i"c:B`^5rC7mD4F3xvh|"e6$	UfG"9Х$^3ӣRn¡eL&%`q|23Qe1MޚK&sTzSB+TW0c%!8*%)<ęN_+hyD%֏Ms'×4uzb#^>|%(tq4x:]<2Vk-y>C앞oUk"nTCWȗ
dZc<UwOu<5/\͛ouƝC\4ψܛcMYUT̂71{"]d	Ԙ7"e*z]m'YW[<&viS$.^)Q[$y,#(]3_5tH+ϥ/Rb`hM5Bzglx=KUQ,RA7]zə:b?PLr:_J]tbcC4Ti9>GvoKu,4>y%B+Qv_Nc6MxJET\-ڬ1]=z# aupUn<+x/
s?q:܉2go_/J9+	Bm|PTSO"g+e$-%7ٞF[=a8d&^	t/82ɗR`FEgR4ñZh#{QrHE4;IG"S&_IDzsn?8_CN/߫nu^j=D@|U<k>׍s0 c$<Y`yXpt1]Vbx d{hn@\5+xR#Ey A謊XLiE81۷!b4V-ɾ{+y$Zb0EI[(́ɾs	O,9J^ӂLeϋW=<(&̤簟+g*wne Z<UGeI6`܁7OđSEm!<Np/t&kUʶX%?3J L2ʏNUb%,7#.kS^cD>wL^yWɎy#`mrrbSsٍ.mApjy%4hTEC-ۛvL|n-[(pCGWZ@:i>^m_XI8нCLT }xk鏎(Ӯ	]x{2~sAҢTOzJ7{r(hi$%hi)%%%ZZ9&Q_bP9eVy<--:.-@h/-hؼFb`f_:}6wp0r gg.jxW]LUZUԴR+%A4i!hxle\إ, 
OO>ν3`o>zah5`>=s㳥K?>.I5)a> xZ,;$x%涢?uP\~QgP+yk9^7E
^9G^ 9ϐUO_dt6c[&c{A	~3$i4ZL-Ft+:YT<S`_vrP*N?c K]Ҡ,T(ޙڊ*2Va%:PPL]~R#Brb*r,}jk~3@U]I4궢o!LjVSW_6MMWkm25]`l~O02J%'Ij%q64eQ r	q;(1367O
lnq*n d_-*+=H^=h匒Rc(:-B}ϟf+WUMT!$,G8(Axā~q}}g}Nԗ*{YaWZpSvp('S g6R hϕ>	r4A8&M P&N]ZYWҭE) K!|!qڀRPGO9DC1iU :FQ!TD*R!5Z:L_S6"ok i1ڎ_Y#AM*'	i_/Q+U[1!PӁpBPeR&@ڡ-̚jUd^9OQ%p/eS՝	%RBzJI6	9esqBc9HґIK fY׬]>]SQ]Ym#7(6휓78dJ^8S`	&`M6Fg?$[RMGMФ>uHmwϤ6i>`qFCLv %.t%	TbJl}s5Cܧbj8?)͚3P",SuC#3_߄;/CQ4rˇfNnQ1H=KO#ׯdRPܹJuox ^,~)^]P&/'G:.=bIR{f~&f#. -c	$&McSR͡ӝn(W?1g)Bk+͉p&C*^)ᡕr;itߖvڛ.+7Ewo6M9F;(ڳ1=MM/Rk* Kh6MAx{&~#5|]?Io.):y~( 
\x[<~#$7&/:9X? 1
2vxݖ}LuǃN1$,$s74%]vLhDCcvKLL3P	+CJCL/8{zWZֽ8G]=|go?Q5jk^mlhGjbzDJ<֊1EjƔR׍f	M3މ~eaNgF:0k0_Xmt9	Fh0mFlsLb):0&tFSÈ~w#4g-?"]UGPφYlxw<B`ZN޸`|#+Y?])wL-
uIOrKeN7y{yGeL\1bql:Ҧ([OaZ'9>,̽+[L/hhYJ/'&(m뮟$rq#:i3-Qv&3y
V_ScP?ld(9":X~P-`,41A8@Hi77Xdȭk~l'#x=y_'`c.Y-WHvF_`O%0loӕ&agA\OWi+"%z&?85
@N[Q1]*#OB~Rmp ,uz	FGr\R3%{S/bRGu.4H'uˌˇT&SwgͰ=B|(CN#aΟS=gR
	+64aQѯwhpӯP"K?PaՃP\Zͧl%&җuimFpNx:@ml?ɚfIb+͕Mof]t(s*"b/%'qި'htFx(=#1qF<4D7ĝcsPØB@yM'N	YQfGGPi=T:?7'M=Hb8GԿ*$[!?<i{SUeLJX!8w;UٴM	(X[ݤ&eq8go-0B蝋Vwhp7X%ͰXrh`amGj  W*bS
 z:v&=AA#Mx35]
ٳձ-jZf #)p>D5r*;*H6]PN׀t3/׮.jǼxYo8~_AfrwE]i$v`%]ɠ͋LHʮ~CR%Y]h9="'T\-9?;?} W	]#d>vm  	@=ҍR1yHȂM()|!քqE1QՓIf|d?卄jjv\_jjSko[Y'r;Uf;9;#PHo$;M	&N҈$dY(`Liɦ,/oQNxSx-#A#1鍆h.Iw\-0bi<@3	&z BLR1,d>g	%H)TFLLSmmeu:6ih1"YJ@wcfg8BD]8(+\MYqQʅ)&}FRO	{Kb 4ڤ@v{gInP2'S0C1Qt2?11$ຕc܏DqF/VE:oC?UF.e e
6%Dڠfje3i9T ?Ny3{N)A?jX2oռ̱2MF<j+NxҰJ4t{2מxdz320fzްYa~?1uћBqZ`a,GN1V;q(al7sb<(C-[c(=fcE§:?$҄.)l9\B`VVph~ԜUiw*k Xd-o"KFjbr62|#KG9gXUQ"Q/»A`e;A_(͏~JX䆙bSf5sj	g1	x,7P ׎vQN#ߑ 0/eO|6 z=3\3-$T`Rcc	}7OCrh??ßz3H>UbgbX}_{3??ܢ'ZI,1(C![yq(v7aeHIXfЮPP)i5!d1EQOлKY2ȋEmWQ#+׊
؊C6g;''M&+uj1<բ-GK|L#1%鑀jZ ,6NV|}/;	Epـ¿pNzGZLld~oˋ|yT ۚfO?N[DyUqhhV'h}"~x\pXՌ7_Tٲ⵹*WY[ѸjmF#\L_XtVM {o~nU"rߪ"q 	|c0ׂ3l\Lrl"u5$(?>{g.SsW(c5{]65aS1rñdvV\WtMVm.^fg?=^&5BD(f%sYh"1ߺkmת?PXkJ6u&AbDцyRozK=}1[¤
V	]NJ g;;*A`C(uiJe^4jȘRvC#dRQvZԏ
{;$y8	3-Ҫ' , [oi+4M fEܖˌf\vi4N7|TJ||29m
lDuAxVoEU'VR88)it嘄FIZZlSw(wgd^U޸ q`^\|{ߛr\a\=:kbWuuYȋpjeлs-⸶ĶI\8=c~@2bսpJ-	2lJv)7\G[6Pyp;7JDfRߍ\*d!<?$Y)0}D0A"k*7phx<5s	DilkAR	jq륾KW,hWҫT(wFkidՃX_] èC{XQ=L̫+cE8	r?:jeFgtjnxB̀@N6whJ7iܳm(ӋlkrK@t֨zIў9;\%u"KE\o^Q)Zꇧ^":NF.İ˚J2BWODlBG+[/<
0h.BuizG!/I҄|CZM2cAXhUŖ|dTX.uM[.yЪ@M(q`vWi[Co~˞] @D1[Bk[kHg>۶(73>M>N3#G3aZ~Ь͡Rjplm5BL1W-}pqvAozeJU㻨Ll7[.7ǦR|;sBOL_R}@Ah5i踅yUٿJPf>~/I;\q|37j5NG=jbV)ƪ)h7NRK`[
|0wՋe	O}93(g?LOC/ח5Muc^n]!pHbǈDH=f]pv_LjN\	\@}x8vV9&|=9?4.><fs,Eũ7rM'3&Hzrd  WxvC*DVͩLw'cQ89#3/94%UA)4XK,,KŗTe(q)h)8dg(sS+KR3KdgJ-l^ٓXKJKϳn=R[:qh.|2k'G3MWP ESxWKoURDM
jLT(B$DB!,ªuܸqe;U'=xqJ8i4r*%vl^A:*Ν;?&²y};yOCgqK(>gRL*S6 U*	gdoWOuG2A9pXYÁ .c ?ZG
[An42LPEa.]"JOJx
'`sE4nFWzuﭣ "5>Nq]CT?r*pAP2Y0"z<ߘg=#WhiEZ8EN>TdqMױ;s's5	rO	mo؄ ]^^|zzet\7$NTV9qV!lܻf/c.d6hu!Ðjznƀ∛3܃"Z,GreMO*
ʖ-i))?PR)5MC8R zW1Sѳ
u1;6ov\xaC܎	~S2~ab	Q6d8xR"3i/5bz&'oylK8i41s(HR=K| ,
	CRQ9hAɠJDQ$kX=3A{&SDO 75>+IPQg̡>h(J[<ʯιwD4[r:*|a{!	y|ũ3ӍuA&.U1Hk7jN<oB(Ŝ2WME{ܤ;@5 @HZ#a)]Yo}{O/HS':0kDv0g;:;4TVNq&!':mFv߬XUe-s&&-muZN͵ULa<Me!C:#J݅pNr#ڝPt5k~!"Rf61mxq{ab#k,x;gwn>6?e C01x;gwnC"$VɳY6b& y_%x;iwnn
 @xUoTtT$/Cl@Q!&U,д? Gf#n\qĐĉEcD1֊6E|>>I6#!~v]#3+	"_Pj,W
'5]\DO{9-%W7ĊVAϥ`~*VcP򑴟~-YEi)<F=K>)U~jwMO1m]gcmlgG M

KzςS;Mn*rDW)'M{aNv3v>_^c&;bmVf.$Lyq'5؋n!8=_!)u=jճ0R70svHl%C7an)KaǺJmV;a
׈o	R3Ȼ!taIK\\k`w\X,W67U<_/4r`9u}Nm4ta]VԾ1)DHc'sU(KOmH	潽$DWjxeG>عw'_["PALƾ=bܯ;?H|JkO1=}C8JO 7T?қX_G{39u?a%qsM5QM-ͿϭaUn禙k;e>ǇT)|Cۇ˨(aj:$3R} yϺUg.`aJ[梮2j%L1ތ/}#x: C|%26wFVcFFIo17i&rWSi hsb:O$Fb]JAs
ĀPS X6"ȡ_2;F:0T>^ @ lď#S<o0oBY8'E7Iy?C"(4XYl>; PLf'|aE7S@ܘE^\2r~/A&W$. )O~dRN'8hUڶj1wI"'Lx]JAbQC@,Ө(A|XH:av[wvb+e!˿Wofޯ'/`B.*ȐM}nBe@qPQ0==AQ$ t}*?XwK{y0rQp9CL4	"AA#5ͤ۷qZd.sΎ2Xd~8~/"@,8JDӒ`,gJ۳&WBzpɜܗ6*M$GOŇB6qqX=tk6ۑTEl/%NhY {Tvj4ٛE-/ϲ&x6omFwiC 8j;G-*G'V~xY]oUVCRG)) 4M)MXԩ3$$إYg㣌L#BſH'TiV'7P9ivҒ\T~?sONX5mDRإUpێoɡitCW<]h{KC~oF׉E|/=ABE8RS7ujXI&r\{E-꛸tj`Ch{v+0aq,B|#F;x5-tM2dklcWpm#F{x=OE"$`tlysѯ9
ocz]megGF GO6;URWBe\-iଶ;gz[іk+ZsC,/Gov*xx:_(*`l(Mx<Nd7mo6=YRQ(K:
JF*5y1^ƈwv#0&`xı?/wJeM]ޕHϣHMllN,l
fjpaKxA\ϟM#.KUmV.*Ue>* !!jv}l~z䭚𸸔kuI+K5X<(Bog]~-8د㗯JkkZ h$^
hĤe['lؿ&ީ*kWueR떋ur+JR:PNv](mOh;obSwm8WNAԯkjt9u:,i@ /o	v9~Lr$<wGemset6m3xEwCf|SI"E3]$"g@PJx 0&MHD~nשt+D	6jB1I0<@pг/aF=JZ|^ԲushHȐ~Z)\فiMI"P:d %ZبcdXAIlTu)k<WͮR&j,h' .\DB
쎐R]o@L8Ns bhټBz(\ǰv?˨pq/4B$.%"Ag%3PhG+LV+"/nJ@ob2XuV:J7i@goWY[D~Bn pxm>KƓY|0ktݵӤ9صϼ⍠ CzMoӘqI!n 3O[O;<.wvvהOؿY#Nz 1`#)gw)f3uUa8*{&YtQ`e̲ r9:N<B1.أo,TL{o\-G9z3;by:NRtF.77Mx1#h?wḺML*	";NZ.Jҥ|NM?x߁.+gnہץ_%8D@|"&^F.ߩKgEnLurw79v\nSnYuڇ.5WVj,&Re[B)4V]N.- ظekjopQ7/t5NhMѣ?}?zb<<t\-;nm(툄3y8Ł`űsc6vwXtKSM9oAf^rL^$i	glqNϑ{$Ar6x.Ə诏ͱd?;5>T>(%IM93h:I>GyAr~d;l x;QxpSŌ *7x;QpfwQ?sŴ E?zxYx`-ɏ"'O',3ypd%SD'Nv/dkMp @|ʦws

&gk+* zD  %(x[i;fC*yLs$r2*tFivq|^J^^qfީ%EY'3s)g%甦*(M`|uìKLNox[i{zCìKL6P*)x[i{pFpfF%'N^z=((xDN)[s)h) ADV!1O!(H!9?%U!$#<8uqX%ŘV\_)3eOٜ&0tH0FG5Li%H
nX\3C\_>ĜbIR"%T
sSKRƝڼOB'IiN1LaLS *l(-C'Udc&f\"g
 3x5rx`v	7&KsdV:d&O7\+dd0y"7T<8D4D#ޣ48IJA+|D gU"cax;a}zC)+wjeqI~QzVO	 a$%lhx;kxpC>XQ $&x;cpCCZfN*YYZTZY\_Y9H 	rAxghCILL.y9)
JP~^bIfYj<H, U/CKAK!'3(RHR'2)M% "1^xlh\,3&eiݼR Xl xl4hC2:֭ !ƱxW]o9}W\Cm

DAJx0ڞ(}ϵ]j"%k/[l]/[)^*KDuIҷXɭLim%н4V霮tztI;QQVBL|eH])^Skn|u8PTSA"t>HM7x0,Ft}.ϤdRHp*k=iCbc$fF9o:duH(Z,gu,O5SMJ>7ӻ%}r<ZtNd8^]S~Oj#Mٔ)oE)2VZ)FF?H#"*)Up0a2SN8t셓u[KH7FݫNV{6J43A%R6FGZ4܋3-b<	>7QշF*n7o`h{ny(
J	Z
e졩6ƢEexk)WEH}R60g_ K~q_N竛U.OZ8	pvrU!m5VqZѡu!DJBtξ1RH-GbJ]ڬArJJTNFezU7 DcgLY	ŉ'svYI$X  zkhAsk+Yz}wT ^!06m{--w >r,{ni5үu{nFO ]GhLLe{)b F9qyh9FtÜO
87J!(sC"S9s2^<؝;s7YfXBL,
mPY֟y|	)lzsD'j)&3#:q8{qu=CC{G#6:G#GܽZ9ެkZ2Q4A ʃ`ӤZucX6aٌʸ_ orCz
FU 뚧//AAZ	gIoq:O)/4	<	5<.x=O#}8xitv·$m<bn3! 0tpDt_M̟C.[r[|>\q3_Ý]ǓϡCqx(Kxˍo''25kiq)h)8e*e&%eL,	,QN+/
N-*LN,ll8r5-0Tǒ̤ҒT-XDY,{MD<ݪԢ|ĜTԢT=%r(q9秤M;9݅--3(u"擹8RbibO3riMV|^\ ^tYx(sXf67Y1n Hauwx(Nd7J^bnjqAbrB5B 858XzBvV,tRsJSK2R3S&/Pv-*/rOI՛+vs>Fm˕M]&Ήyɩ9\

>Ax (dU> M^_<x;,sSf&1ԼԢT̒\@Mx{'2Wd7fK"ʙi)i
9 U;ىK |x{'2Od7fKu2=x{'$)@^rNiJMrqIJf^&B
\yɩ
śY^Js*+ dA'p9 7V^"xQMN@&$[&kM[\i>dB;3@b	G6)3n~럛L&"ŒW@Td%ع $c?{d
5؄Ը˄O"o@I%SLg6B
5B@.}3`,MTJbq$Se[FxA+~eR
ed`)vJ\at_Zh)xt2@&-Jh%uyd"*?HYW4gʏk_5NY	k:xkm59K 2\xk(AebŬ D1x((AE%/17 19U?X!W_TPY2V,0Ȕ82 Exk}+)dg.\,l 6 _xR jT%+%̤ĒJ'3?OIVhΥ%8'% Uq M7+hxJ@}O୴9`ԋHlGYbݝB3Bf{ٿ h7
)F.Ǣ<Quu48yDKy/!}ܷ0zױTA:K%1 jn]fj.}2r::t?!'1l]>yWJ+bB~؇)C\[^0
xk˳asQjbIg^Z~dF&-⒢JDApiRqrQfAIf~g
HBSefQ@11)$(jPTKjb9Cxxk=3A1''858x2#dfvTH@0448(Y=ě`s^(/( $	hfMh55Z*<9D 19(1 aKbI"HD$q]AIf~d 1Ch`Ή99I`cu.JM,IE
7>⒢J$!"$x$Daj1d!ZKJ]Zv T5 IHB5(ĥ \ xaxg{M'~h:9zBFπXlryLVoxsMl3ٌ~s; &XLx;gg^Z~dCfmҤ̤ɂ\yHQ{jd>F]g29BYa4(Y agtt-K+)B2sSKs.	O^dWX
8$3?3np0DXYرҒsműĻOlKJ-b,{ֹ(5qAVm0菢JC\S(&E
`:eK#J.i$1R%.  XAx;ȳgfly9E)72Mv`dM@ם:قSR*Phf.(s<FՊ%)3e!>,ũEYyA%.  -)i;x;ȳqj&X  jx[cC&W, |3xWoH~їQӦowUh.VyBk{owUofwЄ;CO:ిfoY:-@[%+K|}*^$]6i@q<H,g\TtVVf[(Js<ChD΁?$4 
H+FOn3dl.g܂4G2l6R-{Gǃ$B"ZTBaXN%,FWs-9#F.hSlB%40 F^_a8!_Y8GLg0Nx:_ ɰRQ 4`	} yKL$ZؒRsU`DPr\ZfЁZ^gijRɪ#X	"&Dȃ5.83t?0w--aynCٝwC][,uAD$TLpkA|O-{pƂU3!Or$ƅH[v.]QW)98<-SThtS[La.tH_ou0Y[mz\m<htK뀴^u!bǟGj:[\^()fFh0ےvΥc+M-`[/R5⠛Ų2@DҋZ$۰J.^PVT%iS#%ϟlirSsQ|Up~wLs$*ڿi.un0+R>4dD( fz*"(IJTʭ`s+MdJQ:S(UnDFhQ<.؅[M	~=ю]0o/:"l-Gُvm[0'TPx(]rRolʽLb^$[qfuZvr%up DG|4+lV{0!9GE>Lϳn6ӛ9[%5T޵3F\XӔz9VKuLg=;Ifl9(_-<|Ԋܬ^5mPAV
G62\=\JꀐQE0%{K{Sz_E5gS=aFNG_EN
e:5zM|@xٚpW]% $6Wgܥ+B̒UERn#Nlő8S@9L*D:H^p,שmgOG61	^DMk69>⧹S#i;=n5k#ɜ7;5pv+D6']~dcasT;/11sTݾstߟAm?%d_wug󥷦mK|O
c%=b}6^;q|KfxVAoGX!*'Vt\ ,gGnhe#3ffW=Tq/p⊐qg8rĵꡝY;kP=͛{{{W߾9r&z I.r8p&(P#8Nϝ@LH'))[5
Z>(ERTQoQ^$&X}w2Ɣ!TJ=t|?gCO)g0Li-5 y)|tEG?NkB!0BH9Mft/¼[u4e^lP

Ӑ(Ą&22LS	mVHB#0Qnݫ& B.*7(-E7p,rea3擊mHq IG&I~=TV<yӜL刾\mEԈ(<!gAJf`8v&D&yUp&nw${,#yN`BF.~׸>{Yh&P1w[q`\Caڀ&ll$f\N5Qvis/%zbDL%JB݃vTmmoL#̎맙2S̾^LMkr]+|sBٝ2ٖ
\]{ׯkqߍyfBA]?r&76i>iGŶf#E6uQQO}-g"ƲWEw0Q{ Ӯ<P`b%߹l/	<0j)+T}}k`mw΀M`IB,mw#~sr	f"d>o~_ ~P;JMxT1OAr́Z/!&Ue]v/Ăd3&;sAb.gIc5%&~ڎ8%A+Ŏn}%fiBtMtxStr%6Ex2b8Bk;τM2/pwo Q\"d";R
	H}{La>^O{%\$$[ T5ZndUW 
SB)B0\?s]~/0x"D׷#F$
VILv'h5бBt:y3?z9j<vqdeSƿzI idͺ`J1a%XB+Ʈ^j"D&?'bz4O-%0*W\`N.%`l5|7*SAaNsxۣڢ#?858h #Kf^ZdLO ctV&F	X#(Q)ۼMy~l"pgH+.Q|G`3d/" +`	xۣFuDV.ԲTϼYEٔ'`& xt"&{ x{Pxۣ:Oud~Nf.281*d7
H0NP<9VHtOx$7kJ0	(fg뀔1Amo %nx{u@kC9DIFBAbQbnjIjBfBf^YbNfle'e<+^.Id )*Gx;uMkCCvfBpj^q~QpjQYfrwf' RxkQ})?cs33V_PrJjZf^G<\K93/94%UA	~2#^ *HmFx{QeCC@!1 Pp#J x푱NAEBll!4&֒e[ 4&q!vgț$	 	~_aclLʘP̽g{쭾ګ\}ef# !HL`M!2SzuD&sQdѸ?5Pۉ["\Y	DЗ*t;ɛmc<fwgH9:)K4ÕO2eX	ԩtf0v(8a-tlTn64)"Lֈ0`1XxEm="MT%G>hC̾0EtT[+2_^UOv-sŪ,^_>AM	xڠ'SR䧜dRKJ2JKRk
sJS&/,6YO)xw9#H)ǀ#LAxE&ѤT"LQc|W0jWR*̐ɉB 4,|xkP.}r揜/'iMĳ}s&D &Il-x.Mr^, ) Ix\Fr~MήM2C)`RT#5kVIn/ IH\-;ۍgAy|%zEne؆>h5Z 8Y$p,Hǥ&4I.rպ //A;5G$hpIf=	w)֮ͩ_)>!%ǐ>?-ç5Zn-n	oٶ=w;6x엀{|GBttKGc(>wM"R!K,4O Vyޙ9yߙ'M$cz3;qg82hO!{~$?&a`1\5 19Zi'eDX-t՜e@,ņyhD\歹DT%h!O}2j?{n(K勥';Rxo=n1I:w}؂;]avj!`K咣\^fy*^7w.kԛOŘ0=1gssz;\7-)P;iRPw'}͹]K3`&lΘ<"G.ځcځȷ-=ْ^q,(|pXp5Z,4ڻ"||,Mp@UWtLHw)A[L[c<5Ƙ\6w9į?G W3zp:ou-]:̇`]pf[s\i;ozM{5X7Զ	[,yin:byQ sxwO#R.9p4F(;U^}Ib_;W.@jЫJ茣PJ(:68i#m;E׌xxUuݹ-e0iNpgt@znd7N؝D.O0Sv8w_өzEj`PTcjX*TwC
=*Kz
N'PTBwq.a-(tV=6w?a{uQ,JKQЫ"V{Zm
McQq`]*QN3"vzɗh;\
?Tgюm*VixԝrsGxkZ,cZS׸sg%&4pl`L
~
{$Xjk'Zؔ`ЁE>>q8x2=Qx-!ߏ;ݏ;FiQbm΄-hH̡KV֤R8]9	gҜ,0X6J58WgK 6\.VBD#	$*kSʭߖUڬ׬ÄrΔUa wGt(H*qSJ&sgaiUG0
f4&T0r2Szg`.}LI,9vΒV+  $C0Mt%Vc~ 3X6D
0
~j4ب(sjW};nx?|۞Glygxč6)>/yY3%v
6_K5THVk=OKkV
(X89([XKDlmUby/@	~!&,ȡe#	_:RwY>jm|ʈWf~Dw9̮HMфfFbx&ouQ+1믃(LLwm`ToU+#^	VEz㱑ءav($*Wf9'XrDF5wĦZmކXcP~I?Q q@(`8Q*Px > Ӈ Op .(
bO?<xjrUNS.埼*zHj5+2)3?1:	9C8HcC#\
7gK9V#lFw5:i4pF@,mMԘDfxู(C[V]:a%Q}R&P.CI@+WMӋ%HDnţw򪕗.>?Z2g0ya,IOգV[d͜KWHP(ߤ.s*u^γ[Aeq6n
`VlYd<sSAl",b|SVfA{oPŦV{]-{1Xֹk8A_IA u+ņjR"V۴:PH]@aPqͨ:\n8F 4\Tx\R	-bVv\t
纞*kLF1V	SxgbKwdu^AŎc4I&GCDoEZ;%i1X~rȱ-e#s4=2Cn`e}"+ef看.x:ݲ%@?qe},C`+q{Ybuū*IQ<*
ڟJ;RMu\9Q*/zK&*3U8FvM( Om\):ZCvw䙸v]	_n8t|3zY!mY`.MJ~=-p/8p;Z͘Iv*Z}~dvYr6{a{ΉOs)g߿n;avnc++ *CbM˃/o5l~1E	 0&	q  L`
8T`-sRD<īKbe&1զLE'vcjOPe%(b?00QI{G:uh)<QHK4{[:Fg3yEHi~,aӵ֤=WBG5um\Zz)̡1 n%r?I[a1uƱ3Y UޝX3JԹShL~^ahXTeZY5+tˤ8IƚU2PnJK챉w2G Ycz]R4)8K?\ HwQۅM]t9xKLWe^y1	5`$QH
.B/kgg{D	*&YD9]$U$lq쫪.]U!UQz-@ŸoomH8Tv]-@d^:7XEUT	&(#B5tঢP,Ψ1(&0`0QA,R&Urc)WW vBmu.:]	gJ5P}QeQ]D*[-.HiE+t;\]@#K`l4)uꠛe!8/$ jS
#iU51{QO7B"[HB9

D҇CQa2WB>UUƧ._ƍϲpkB$zUDո՛F5-=6=oklh7;'$h% @x|T,v.š_;[rOpه"UϝNv'}c/Ŵ7\r#mZ1hv׉tTT}9:]mM8vXRcEesp -5B{%{6jo>>9u-+f?Mf]ގ3=_mƷ=-_㻓Vԛ1;j	dG.9Vyw)Y
Peӎ!wڙkA(~"<Z#nh8V
'cJ*dfC^4=~h:_^wssą=|vnj8:<[9q*pcȇ|yEނb{K9hKBxxq)fҔT⒔̼|,'roVTl""8_jsL1 	4KxxqCd/[gm Injx <<.L}x;¸s.U>yE
X'gsuwtvvqrSU02<=17Uhjv5rYOxwG_ 0W 3MT&ɋm^tCZ!/?(>$25՚ M7XBpoYk?3o^T :K+x;q#&Ē̲ԼʂT.̎PA!>l~!a3Ki@~A!\\ʙy9)
6%)y%zo2ױr5,0ɛ8c'qL:39{r:gWLPd]aSBŃ'o痄) cjDB
y%yɩœt&O15Ϲ(5$[fN`*W!xA,@vPBSeSK |T4m" *RR+f4F
0TZ
(Q@A<Q	1(8?$3?͂B uyyd%`A.q2<<e[ LײԼTBl7fTQJ0?mΑeT
MRnS+1U9&'%&W4ys'UwvHpI,IDqFg+U+eMյIL~kIN6Ӌ&?3=6YӀ*bl0Hzr6CJ2@3V"f& *!}cEXPgt,))L*-IOfycwL6W2n^cqrM+'XNhի윘
Ze?
LЕcv48j'sZTvaB	P>̳!3MA__'0 
ex9A'cOr(ON0S.-(/*IMQH+UH,T(K-*S04֛hťX4:=cG_ O0W +F%h2ܫ<ز͎:Km6l 8RKJxOA3UJ[KR
0CҒvJE@lb)K
tDI`ބјs1`q`LQ?VL=;ޏXC 	yI,d/6a2o#qOSԜhشTX/*"|8d>&,CwM	,;u6¤Ǌ/>`x1m
	d;#IsI.+>b6>D
d᠂,:d[MN`udbsfQW>-HRIΉyM*nUd9S$wkB^冄(
5[-C =Z}9yp$z\hNy(LgV9L_L58/	g%!C37Q[IfJsR+T.3HmX!Q&=CbM:Oi,eW0En-%@[CFV환9~kmL<G Dt
:bC&1O>^pIY	n<a=vA=/-ڠ{Ⱥ?ʜP.m3lG*ً!qy$G}:a12cbS%NRGPo#zx{8qC4D,,!r+lNXٖ5Y?A%,393/-_!858(!2y!1 2@ ;Q W (=#hNh5#21~X'4Pv%Q4L<ϒ̟)"ZW3̙<QZvdl5'KOۼZ>q3t$h)-\er5L)Lՙlo=Y]_`]30n&ܓ|ɷm&wLm*T{w3A1TiRqrQfAIf~gBf
ܛ@g(Mַc|Ѓqf;%b`;'$%&gkj1VG! ΝO.px{xq{j@jQf~dCɩRODS|3sr`E$&HUo^Iw
pe&z(@CҤLRueR'OQuK@T4jгg+`c:M'@mjxh2\A&E	pjo>ZrF.L3dH^MKٌ<yvO6T @r{%@-cK%a
LJA+hOdriwRcI	PsiI*зG&7noJlsi({[Pjr~QGV$BSsPp~i`L7ecMV4b1'sH5j{@3޹(5>s),AQɳME!dA4
4x] T~;)FyPHG!9?bG4 YwrWId='8F  )"}xhf|ĸS~L$]C"\=SR2R=6oa>`ˋ" +.;xhf|ĸG7/Z˸9@fIW0n<˸M!2_؊S&+*ZMZWZRYj)@J'#'mTE^X(s"d%?\)I7Z\]KZYJ׺9#70hegqdb0t=h
B[f1m`j;q_  plx{qnĒTϼͷ2WBDJ@&'edyl~(U*1Dxs6E'ӵ(D,d$ߔM Ū"6ּmDQJon} (^OWx{xqf;&2n)øYM,#g^Z~{jof21n&Ǵ\
7)T-Y';nm°fnq^ \:*|xxqYԼͧeɌ0lyCbXdG/0U6J!HR/jtm}y^70X(  0([xqf⒔̼Gm9j'9J ^r0x{ĸkCړ6+0YY+$$F(dd&'ds)h)d*$)%)deYO>")VXSQk[Őhr;m f+4x{xqCBJbIbaBf^JfrbIf^:BIFBr~N~BIjnAjQbIiQ*HBvjNYf*2yiEE)
>yy%)FU  s&Bux5q4z9^  9ux5qJ̼TĂLԢ<C#.-|ĔXbBJbIByfNBRBQjIiQ^jByFjQ*X20V!3/%39$3/}23Иz6o1m (x¸rr8)LnӉ"0#g.uܬ mRx8qf.t68i  [W#+x¸]j2¾y9yy%Ee9'HLbJMαНBR>zy'[ɉm'^P2YPW̞kU0qO*s^D*W_\X\T\	oc	7錍dkbMhjӀ	&ocL('9yA幠Z2'hL60:]%0ױ(3$Uf1w-M,S&Pchx)l#nʜeh%iEhv&M6a,d6|"a4zi=`rNo+ԉIEhƧ,'7bg5BjevoyTNaSAQE# ގU$x̸q?CL= Ffx[ȸw2Pޥ:v~{3dǪgS7L (jtݼ'j
<򸡉KA
sKJt^,\|ɮ!ZBk+J-)-Sxټ9:&<~Oӎ/Oy:{H& 	JB}|6R/8l}#H";<i[ӵ3@Ȋ#d)z!^ /?(>858{O|k
АSfXF=kn}~|2SRKsJj36QAe~[xtDE&qExx%*PLx{y-hf_̈́'p c{54x<*1K3D= ԣd `
j0*R)MHzvpJO2ULk&ˊذR-AB>K\!ZܖKThؼ53 s"xjdȸa.KY~fBkm~k՟d̹9D,Z u`xXSW"r/ AENQhx-(0XSMIбk 9R
BP>/9Ҿn؄Mɲ;w?ua+޹웓QսD7MIm	Z?XE͈wE2ޫ:V;&1<gcBܠhFzQѪÚ
XV5aw%RUPI)*7(d)u8=C
e
@ctH gPctfç~׶\ri}	5$e$8e&vsf?OGn4͆]BHH05nzjNo#K58($ȜZ5!H"/cbC	cWPy?U	qT<8G!")[]N?Qg/3q˄#N
O?D@kߘf	\ٻhOŬ`{
/+,uViS, M`&kdgߚ;Kxԏξ!-`fJ9	c2>sa21j+w#[/]Kc7m(+%
I%es:ץ'S'\|+bIS8$'#rDJî_scY`;%𭯗\Dt+[bEY)ilmw<,ÉOYohp<>165'^XTјKM?Rɚbᩔ>-nZÌ[.@ךy& \54˯ϪKdwU'nQUJdb=(/YtҐįhuRVG5˱VR>kʎao47"_ڭ:bz8t'e
0hmznAf$ZS̿);5U	=99HYI&SVFnUvfwd$$em$靠ً\fY`h[@+8rOc=`عڬNI_BpN{p~#<Ii"e|ïUWVݾ)((JT%@v)lGU6&vo&8?,pмUYzsQwcMhߥKO]."5E<[oy5QYZyY:	6nhCt̙x:uM'LKWRo#3?% qr'zA2`OҸ.`MD~pWڈ&~5M	'}^`ppUN9%WE
a[%IU.')qTp_Ywĺzs^cةe MO{ݣR0lp\e׃8<uu$-TQĆ)@= S奜= \P^5|2zuU؎HHOeE.f;D8p\WFmr4wApҙ'+w/S>=Q
}'AT:T%M='rГ?|A'x[]w3kCdCF3''Hl~/v($	|W7H7:۴7UOU,4Dar1THSɑt'gMN7Қ\`YtTypj^q~Q|piRqrQfRjhqjD8\wP'wֶ {;(xu.MI57F>t'{<kttݼ'74q)hCQjIiQeḾhz1i{zv|?0!'3/{}IZ'?1:@z&,kR`hsMnДN+/w.JM,I.M*N.LJLјQrK̓Ly&rNl?9c	ĥE:RziKJ>*-IHx6N̠8*5X=$b^4R-N-"-Of"7A0m1e 	<gx$ jjxna$!N-	.4e={x;br4d_Y-z_N꘼O)7V;de+LВ({sMjɋX]@O'LT@#Tfdө.%EIEI)@R,7תeܮŅMerr(vyVI r,)$Uc2$V"L $F,lO;f?ݽksc%.cs[cc.{ĥD
E
ũE

ǂJ5+C5STrd1?L71Qb lx;7k"-R 9I: vI	lx;u kߙ -w,x;!c$f`W` x.Դ̼T;'<:ƛWvL_89TRi2$62^'grMN\/-29_w-$Y'MP<[wr:`5;'KMfTW(oSao8lKf$	,ҙV+Uzdt dk}ͧtCA|L'gݬohL~b|x&   9l#xې:k>׼ԢĒbTҢJԲԜb4ĒDԂJDԼ"C6g_g[rsh==O{>|'MN\[Z2PFi]&V͙-4L"۳%{ŵ,5ord~EVZʓ?hNӁ-wdr|/LPZTz'{<kt';u-}>ق=Oo^
xExrfQugFrOv4<[b}ܸɆ1wiȕ&'e&z(*a''Ȟ)m4YW+[V#9Nlt7	aDmSb3@Vg >(F+X'KIN>9q*[Hdk }M x8qHʲ5p/82Lۀԉn Ĕ-x8qHnFyTvng:}[v[$ )cZx 2nLh=SˑFYؽ.	x8qvclF"{w	 u
I6x8qdח|`뻬V/ӽn Jcx 28@c/94F٠FYXx8qHbݻdbbc+DH A?x8qȑGI!q|<"lx8qBݰv?[Y{jo31 [-x3 2-Y[D	t%NőFE-?Q̪¸".Ax3 2jw5o8l#0mײFE`hOF;hLeCx3 2O\|!'*xvr%Z	FEybl6`(!Dx3 2[Ԉx3!ŨYiFE`hOF;hL5>x3 2fWJ'GhFE`hOF;hLxY[o9~ϯ8J_B}jd3jUSdf<`eOm}3.
)4R.>?Q[3#G')}x7T*ȉ
$kt:ʐ$HR+~ojt/U:wtWǧ3X(ю2+X|
dH%q+TQn\%\Cp	t<9_#tZ96F\l6ne׿|I,%#e`Ã1 XLIC#i=5ʩdX##7FPYg s+{!|y X	|ch_Ex>}iݵ}ҧ{ݎz]|V+}I0O b6eqdEg@E*֒a&z"MQ*XY>U!CX9G_X:Q,)YZDi~Q2OFOT(->y	 I3c!$"J%8/b;{>%kxR}}T.U/]Y  	$Ԍ3Eه$|Sž"%f+7NŜՍQ/=^~<V\xCƙo~Y>d_IWu<l0AY*%k2a/@!vz3:`D{ {3СtL'8	,viz9p=ϟ-e͔8dw >,l1ؾWyZi\D`$jL
68Ie>vaw$<$6	Xjt1ΓƜp{]n\J>IAn] /@xv7j)_V!C.-o8a5=gI66\AqӹZPQOʋAtSW&VTRP_Zb	i6+wMc1CddaݣS 7 Cm@V`{>\ o:R%bLr-
C_PwŢus!X7maS(^sWUl!֮XV\ b(QzM1(g:@Ͽm1s-CB_c+U;	'H d$tjB_:??rH9TPKH3Pް'敀/PZ\ aq-~wo^Xفs@V^?v#+RExn~6vSU|}}̽ەQm2w9헽)E&KJ-Ё3 g$O
p#:<s0Sp\f7B`$ȿM({m"tWOu9C9	QN<4o+/X+tn.:/B>H6a*ơo%)$}b,?MDG&+|%ՙo@;m&)g-B}eb?(X/h`0fC+T,rDj:V
~=+B,l~z׫lOϬE}l-xop+.B9 (DxotF7d2%q  
ixozx+~`o̼ɞBo
؁EK3"%q  8|qxVnER!N҄$&qRUmWPN8iu0THl<dMd( i78px DPn\[dywogwŘDc패cxT5w(\#ؕZ8 ]gX̃'wA>"cDCx_cXVPWX˂Jβ좐
˺˰QLE3l4)8?||nFo &*߳Vm@[]gԾCyl5
(Z c\0m6X>NTjregB!IBM6-jE!#,CJxש'39V<_wB[@Hq>`G҆%Y`]qD&&uĜW%ubOc@;Jz;SY:6
EXuIۓk{CCFD$:tLIF&v*uE<&qoH=j.a4U?icTުH_RwCiY+I!_LW՗@*fIPz5wi.TnH^%ݙ[Cu La9;?)n/c0kJp-$ntT&sR:'FI0sC4$e.g:;9J$|MmR\ >0?K[xߘrEǞz;/ڛ(-Kp#P9Vm촖%y?P^ߊ<YfHWt{WNw򶊍}^5!0I;ETdu;}5fvjN"ZI&#
7ժАo5f$-m=7KMݴ:Q`Eix[jpC"̦'H(l`i<[]95/%3 lx[j8EoC"|%Ey9ث7[0礖Mȑ?
Q<5LDU&_lQX!?M$#U817U!)85'3/U!9?%ur [FA̴ԢԼ̜"T8&;
	P[HLG߅  2JpPx{`}z? fv&e
Ylqx{`}zCL 'v8xg}zC 0i, ;xk}z#ɼ"Koaq6Kc 	 xwDoC>RAQ~JirB^bnBqAjbJjBfBIFBnbQvjl?0$O ,;9rHJfqANb%PCZ~BriqI~dG͆ܺLi99
eEřy`az7_($(5D4//3/]?xX'	(L^&WZZDP*XiF~q	&j:D(\" ־zxTMoH+JB"n̮F@vc%(&;	2i{8(}@(Jޫ]fEh,s\N&pS%q'c$ow6,`JPR3PY(x0`U7NlEP@*s| Ŷ̥PT6suY}"ir\?ѨkO8^7mǌ"DA*Gc@Jjj8j@*AEHlk-T!"ȵiQeOfMM(!aa9ɷ`u|\7_0[.*X.Op,C@q/ib`<#_{~6%216 ljEAz+j`rVXgzBQ7pIb.Ģ\$Ϝw?"-1{]d$AWF`cq+"ӜѰ\1)EaVɳ9gi02QͭdU`qNugnHhYe˫\FZ~	 B+J}hO:9)-Y
S8׋wF;J~76"/=^e^c3X>蝡Jdzq
bB	4RZ#L[Vg+QHB7&IZJ	t8Nqܡ+<^
-tC.جXUۈ֙3֔ftJ;ZYOyuE)7&}!~*Ć{.):qmku4ڊضBpc:|R98ugJ2]{A(7>˛u`RgfqƤ.ImIϯSyaH;wAg
z;MJG}F~t<$Q]k_aOW3\2 MNxO=
P,Lq+hWGHkҀm{J..W/⫿YB|?qr
uq*e6]8hJdP2Z7l!10ZiҎL;iŪL醹
Fca+QUO:@ݘO@v-S//Y7{bxkh*bdXPZT`d0Y5	H5B@F6yuMDe Qo(
LxkXǳ9 s \~BqbnBIFbHUH,KS(K-*ϛd,VVq.-Ԓ"ʢT41i|tQyfqBZbNq̼TC	K e3~xUN@.yj@HRNiNw|)ʀ,}^`.m#1x۟ۙKx:7ZmV()-{ZOD-ҾMM][IpT{mf/5oA䄏0݊.0E-G@yG!cEZkkTGim]g;6^'֡j?DuIh-dI-^yUIbY.粮'Q\d<_/S)>fH-xgC"7C> ?oLx[¹eCfɼl *]mfx[ǳgV3X "x[ǳmC"&?dV& KpxTnJ}+FD\[Jq	m4v	-F58V@zofw眙=;E.`Njmad4M#Z$gʑ!"pٷ#55BT6$L\Bꟿuj`#:Bc1@IX[ 		-ٵ١xO;P<La9e߄a۶bWaM3m<%/{AVhh!.;5ŒeVA4r*'dI`Ti[decU&pǄ~B}Ё<!>Jx:y«%O)N-Z
X&NR#	J25TRΥU#V+ZrEPސq'jX``*ڐo^x;y%ªVM$v2vZjzDwTvNwBU*QZA9GTo.k+>_m2&^}Pv7|"-$VTgrQC);oI.Hжm EgTrgKg"͢n'qvgE2Oߥ98Xuu[Gk||П[eAfedc8^ʓ1,{ w{v1Xʿs~?9dK1
ԕq6qJ*7Y
c#iW//OC{̛yߢگٯ9\TU gWp*)(y}@ƣA^|gi/m(QԜ]X W VNHwv5)A7'\}w VB3^Txkͻ!i\fɱL3E3K3S2S3K&drL*J,TK=F&A.Լ4.}--Z-ٴ  f_x{wC,5L'bvٴj _6x;{o0MȦ =HxN0b'ilD.!/,Ni'2k>Վq4nqϫ_'Gz@ Veop}:N`)ձ
%~
Kv:(	}Nc2;0X'914y&%/U`Ds3GD*Z_Ay0fh3*{J%AKPD7dP[м%ݮ+Ax`*i L ˭ꡝe"}h24z}5hP1x9hg͟1 BPx5AK
2K3JSJSS-t*sSAX27F0i`~&%͵jR4dRBX4F D0ǳxR jJiE%y%E)ɩ)JVJJ:H*sS=CRsR2*SK\RKsJSsrJs\KsK<S kyby ǬxR jJiE%y%E)ɩ)JVJJ:H*sS=CRsR2*SKRK󋲃KKR kuhe[~QpN~	^X^. -7μ	x\[sH~OU53K_U-hl0|Rl66}}b;ĲϥO_UWwݯ(w(зъ6[G_"
={noOQsgh0<:FŻ/i'e&۵ǋkk7FMx/8VQ^(`,ÃnGzFe*]iKe&JVr33`E,}*m"A0DI$+.='Y:vDe|	bPY%[}g7$;Ls;C3~FH/Oh4T~SK`0<'Ëco@}HG5^<lw',xd$}x|It>k;gy6t8ሩF2ݍR+Gt'
գF-܇xNÃw_Xm&Bq,Dn*pl2lL䦣6fTrea nc-lw!+踺eCP`v_1fS"8I \DKe="4-QrjsݪIDm
eȃHRm7l2/dmndezw$`ؗwP8uh>PU2`$@ q$@xA2'T*D'C| MwEMwmdKy	<
~36 Rĵnj58`=舵RyBcJF"W:2A0)F+Q'S!BZT7!8aAۻlLj(nWDzh?0p\LIMMQqWAOf0K-bf)t=ߦa#B0#i+h4iĸin#!rĵyV\̃-:`l@	W;p	Ly| rf =ݓMӁb$qE6yAk=Bԃ<uzCc]8!P}I"4y1¬.q4!ckXr@`r[LqR# LdDiNZzп5ĉA3pB<5qڀED17d&@PxSUE}DQOE`8K_Z^9˹{btiY.!mmF~&h/Ȳ4@}eAQfhH7w{ѧ>|esTaݔMwfEC;Fɂ.ynF˃y}@-ۯvLҿܕN5rOΪd+_4*k-u3ź]G2y"=EqwŚXCtұn	E3)h[>N^Nf\=xؾH,6ɨU-W8/e7ܘa0X.੟buvᜣH</gSKtr$fv=P Km򦲷NE<ˣc$IC|O7</b1NTkVG@*ݔ1CG2øK4zt&L7)GG@<aqKr/hg+>I6a:ٮW~oW0ݼu,fwViዥ"BE?5$TBEN;*DIKE[Q7Y<GuQem4̨K 1^w&T ^IV^[Vǁ%s]T6WP2}4MRΊά] dNȹZqEY-̇mXY?auF$UDX:6}
=N}za8U+:! :EED*?=BM
Q{J9_xQU ຩ܁a+96e/y`~=SclZcSp_GH
HpՂPY6j$DH96-YѪHxIB1oq%Z`}'C"_vީC30}v#/ouԺޗwӼ' uh/?wVҳ2}	bQ`Hthظd+ШD.D[X!BF{a]8iLWVW6	B!f"%hN%q.=jxQXnڒ

ÞKnB Da?wuK;#?] ျH+pkszKD0cL
	1|"CJ Z64quW)(e$
2DX+L	)rkCFCp&Eݒ#"?dBSBN)I.>C"Վ%ru/u-<me~({*\`?ꆾ+9^`1|-
({yV!8֌m	R讽d5w]%z>5@-&X糳A$Mkƪ3'E=	QifFn&.;ӁRG-SDRCHdVfⴉ'H"`x$T[zLDjX22!JC<^GdUN$55;Zg#=$k
ͱu,O`|Ζpd6[UUX8Sx5Q_J_c_u+K[
ݗ#ɽjyò57,@OūxQYJRKCEs֠冶з29,N3O4Hl(-)ALbDBhx&:T	.3O,G[[Ʀ>/XHU҆RIud㘫H޹),NfĀEq݊;,y+P*Qkh;fEk<w{w!Itq)%05C:gGTw0a[*n@hO&̅#A!./d
e¾[@LM&a}j{`Fqn6aHĘt(Pj?&̟s'Ϡ5|xc	{UxwQл"O\I9@M	لYLہ5H4CژpDC)Bp%Fq$1"Z7ePc`پm:ِPQ;PrK!'=O=|Rrm)쨚 7$GwOuBfYͼ<[f^/_^W,At,;f|ӱݭ!k0%T0[L}AlL$/
5ܛ50tLIYmGECj`Wx6> 
]N=sU^
LM'R{C5ȋmM-Cѹ.3"#ȢFT&Ut#:VѶt72d#(WI_eRS;OM&9G/JT=]:/i]N3%_}*>ս$x]Yv~w*ם7;*Լ#2I⇰[Z)i߃$4N[מ| ^lK#ueE&l}Xċ;=N7_(EY^pڟ/a'ۯmh7[vōoiIvaw$GE?x_/?5q:6|[o|x}l{c	qx԰nÏ_W}'GX	j|*4~rNnvH>i	RИo7^}'Fmϟ?$}9eBF54+߆}cwVjvڭ:bT֏./_ƿ4oP?V,ևeWTOXv=߿$OoF3u@_#1?p	ɽj^o&ң|~_T/wfB/.o1*6|x$/zIY	k\ѷN'i=&aUEw~XG';b%_p٨IYi?/-"]1pLOGN"AU¶mnc$YTVvF{ߧg{j'$Ӵ1Lm߱BL}$쯐Um,ۢǛ(DDy9cF]_s99§|Sa>HXjkjF>6M|L.AgHNT``hX%kDK	+]Ǜ<luWR!<?Z܉cQe&5Y) m!24p5P!P9VH:wֽěЮެ`un^WDFM 8Ữ&?762B,N4AFF0m#3AEd"s?oN=CwV9)ˢՓx+Z'#5m.yb`wzث?fb(Կ,OF'D7*YC\=^oeNl{cg`3H	:AT"4y4MҲ'+Fi)'[d^χW#LZ-߼{#?hDkL~#mH4@)Ф񎆷k#KW0^dAW?;;4CvkLG֓VYBYu)"<BpPI]X;A\+A-8@q0!x!?YGq#̥BhOLX|o$NNֱ|2sU^c 6s'"B/|}%3*I9c7xS>nd4B16嫆U$C~%r3I*XR#E]}֮V(_4,b` k;w&h!v4.5Zi+}g\5MRUj@%#hF[^hjy ,{m1LѯtguM ^ө!i^ICs>^٠Z_qӄ՛ ̾+̰hn  kn:=bn#-vAT*6cG=җuSVPxC=A
%\ǖn-XZ8dk!lO0_fYMK2Dߐ-w]lln٩EF+ush>&Y4m.m߄aO7onMc+A -;q|xAVzGS3d@]YC{@ d2KCG3Ivאb;#ej$kt
ҲuS^lm-wo0w2Dle[BRڳfFS/@s{'z'12ВaҞ
ei쪆uiܽ;ܠ˛J٨r6Owo)ق*MC'nSV0!~7L3|f;n62OCI@lg3̋IΔ,Gs2}Tiu]ɕ}<t|m)>g&c%ﷵLh&:]uWx$E#\j* d_B<.Z !\#hq#OCS D)!P2.K6 e<Z6iD kkCXGB2;rɧb!1ÛѝZ4DJL)
FYACWٸTfHĭ1gc2 z#!Ae1݉wcdT_n#gu;#U,C*pXX6oI0yHgإ!krծkTl-<z
#BxV	AEPݑN'yu9nF}pP%[J:
\3zWUҗa:f6&h<-zA*"WQ2T 8s&ɼ>J'Z`/wseM!*|؉V+~Wz%EͪNrA#S3fsƋ8ЉQxߟY3N6u{HUi?7Rm8Y!"F֤{JmJ%_W-aOuz Fb8R[l9;t:!3-yu@в{FE@J%Zr論ciK"ZXWƢ`p1#V>>;aB+>	)<B,&&AHuY֊S7"R罁PqS q |-{  ϯEeyk)s/sZrSFSÏMu4yݵdy)`z׵N,E']}ρ >
?ԉcM7
/:M;X0ų:)NeH-ijf#ƐobSzd(X-Y
4!ıCw2;1BȦG8i(xlZxy`5`[(6(@oo yojՈ }  &Cآ_M~&BAoMS"J`L{w!4*.-¦#f~9M@oЊ$fe;yO\+JZ]JG̿GFL-+L7ljjՑ|0lO'$l4`t3	|-3Lgr5손1:LmHdS"m9׹ZJ Į~Bg5w~iZecʠ9ۨ&qj-<Ҹ.B`(,a3m4Vu|CÂ4_k1˒:2?w4sBv5e"N50fk;uDuTѴeo(:Kci$}/d_}uf$|M
[;;"r-UmߝHшcKӤ }s((LWG\/hTg겔t{MJ*MviRQXZ9ؿ^V/O7Q5p^4r&Nڂka!s=g-9(ȇS~+~-WpgYdyAdfyII4ʨHq |?_'nLpr[#ZIPheiu< UqL,2*.oդA=Jf^](#o0SV%kS>#@&umH{vC	5r?Ϸ̝i}^ߢܡKY.xY(xp;cfoJo)PIϏQZ+4rS0Z>]!p+r0^atHwg'Ư8JZP+0BT	C
!V#@5	P"u-pQXTSۭ3O+RxCKzGLϩ~߳~FSSK"!2<K}J&n7ze9X6W7vƕZk\}0&$eH|wy=W +1ʵ!,v#:\8[wJ|%;\5 2.$p̤]Ivgċ\=ĒJ-(Q2EDzzČ%;	+N=0rGuOq5n%}cۤM\\-&,qڇ
ܦ//A
x}F(G٠eP7-)Ӊk7agÏt{k8W˧'2(&}ݎPuLQ#QH(3އ*W-C  dqt;f<Țf($@2Oy#8R~%vDnmmA( Q?{mdUݔ	Ng׉ܡQr@ZHPb ʟ9!zr[ нraW^V"#QvIѡ/;ij(`B)} z|hHIL'枻z'h%#{\Eq;jzh>ƉUjbsO6=qC͵}V$ElV&>^%G;KT9RAD`^DP˸7yX}-Kg}zX<]~1]ZZoMoU,qAklTIi\5$dj/ y.xɒCg^ϚE&F6ɳ&[gb&n|	CAwʄ՘4xz1Ə6s)̈́10KQO	E|زz\jbj6^Shي:?C)J'.lO^E60!rcEdlMU}W6)qlKBU=BP5G2ڽ!7upV;}>6bpg?H~āQPIP. 
E{Iuݱ
B8=X'^m$`#cI$BoSdJKH\4}]_fa̓uz5btWeƔy(UuhP.476~vH`O9S7	Zkz.G媯RUTKY]C}^me%FMODv&c$ԑj-(5-0O%9#B~MF!O ,\7k[ Z)a*RRm׫j́kӁsq)b;\/~AZ0HӠa_{vROn`7wL7J,	*}ܛEֈ"Z./T3bFHS79txSe$Q8Q`@y!袒e1S@9׉	\W4.)Bg{4n
mM	c,\J BQ#Bs2GK	BV!9ė0GTע< ֐2 ,IܨuDߌP[Z-xzsU:X$]v+̞˧gNރX9xܕFYU3*\ƦDߠz*Jֱǳ"?oo1~8tꡩSetV+HDGRC{\g=JkLfCqz ZWy1TJjľXQ_(+Λ:>ϷSҁ亚~Pba DЃ0
~r{)77l0ZMnwYW]6h	lzeђtোtP޹7W\lS}@](և(Zq-A	C_3ضبVdh9Ih7hA_\¿[";V^ӑ/.^?glYg#k
{#I9h"f֋xZ*;0XаeoUZS;vh֖֪oʦ?ά	,v۲/*F-!1(d7RotPXחKi^+܍cJ6Z\xHgl<Y<?77Hs_`sۃ"cIqC}rn-JimJo6Sk2۾c}1g D7@Vז/.?06k;~d;v%|CZӯumeOl~>R.HSpArHՉ%h?W$pfsǌf9ujHl~Nt@&!5ʰ"ퟕOcMrk~[VRV}7/k0vʘ)kʜtʉs#^Q@bH=UVLnK[qʥZAlxFVP4*-bDR6~jNؙ\ʺ2ӊ
Ƨ[R
u.S$NT2go>8&@7m[s^˳9;RƉӔ6"pQZ^ƈ>h_w҈X]k1" V9=m`F]d y7	-	@}-CJ7aثfKAw= [B~Ó!p27-4hND[E5=@hkUTSn9RвKȴ6QJ$R^YRJ:V+ߊcufjv͆n݁_aZϠܹl@)f[J16,l@)&sׁ]b\-hEwmBhΤުd?ރ&tb~yǑ2*mY#ζ]>^nLGUth&ejYJQC5g]p4wS=u$w2<v0C*}y>Σ>Mŀk8~ZşZ5r
Q޻CDe{3iJ0[#xx#"!'StxRvpWf&ljFx^gDNZ  ִo-գJ'tɏ74`A)@:0k6"]T,W*$Uc><moMHO^w:j T>2
͚1:}H< qN <F:M\'<R2-qy6?Ljp"$cQFM\GX:-p~GV?PvF'ƹ-S|]l?Y>CCa !!o`OO=&jXd/Y2u	':rR70,5˲]}l zY'uS8MK#ǳ^mv$!#
H2uY9l<{0U
CwoBsO?1QbX<E/oo>-3=	V/S|,EfOoBL>eƃ۳&)iHUkD&ےO&P.l2=b$g[zZ~CUV_[BKe j=IBҀp& Q]`QViap1s1:T	?.ջ4Ĭ7Кn*%x@I̂k7;|I͸#vT	7U6i'_鞅q߬ug
xi}j
Cux?ǏSͥKLc1;CvQ>Ǖ@zߺw|C*'h.{0NysUjZ%EtM# yd7 Ne'I8IrG=t=0$X"A\WA<h6v'$ĭN`;շBc%~¤uE $R.NȚUpz}#e 2(е5MIWL?&p{.r1cV7flGǌ
X#VRf앀;{-`Z+;V~vD7X~,jV>ăEժ.i!gkvObU8o욒ÝkDۅ!QAM9nkJ,R̢yE,Zӆ9(~mF;P"6&Wapm=|үD	{U{~_swOՈlCy≂фÞN';tA'ka6~gA]NQ@z)
@-2M]?A278F 'EA  O RIEW:2,1U7jw:-DD[F u#$PWܱ:BPA^=Dۅ$z%	A@axp [0Eor 
 XVS-Я7sYHz!>r8;!ma䌤q'6Үp+;J{,cKn,J(=X@s2uwV>b.Tp3~U_<1TgPBX airZ.ZOxڦ$]8
P
]1Q)>ߒ]q2 E;}w6fPjLf="(B1pQW{E۩5$2CEؘ3{iBRC<+c'HTvXnsc@/_+gRotKE! 1I;j9 G+mMY^|c2<Rҽ~,xE4o6ΩeŴZtOa<knܾw悾4E!t!.q+N@^.T/x,Ro֘XE(MVcH4lSv./e;[p<5Cϲ'rde;*ɩrUTU#.Xz0S3-Ok%x6'[gpXnB<>s_j>oI)y<2tBvKõѠ`os'EfZx25 #E.5 !Tڂ#eNWWx]o:in;I	3Ffiۥ}JôLiښD{I$R"w8}P :kŽP5>,?|R$ZЋpXC--N^ZwFM)Kw.
h%I8.eh6!)jǦ w$sJc]QY쎲X*BhxT)*.Y*-TN[,x{1&S $)AAإ'(BsXΣ+|R`ַ"oI"d_UA${\"er'˻hlxw5/>Uq&Nk *zHz,1@-.֔f:5 ZvGynO{ puel.<׏jk$4.ؐҋV&αy(	z/80br*iQMQGKZ_G*zR5Oݤ^vm `.0zAR/zwx_V+ky/xyefzrʋfU3/HUN}Kpxˁ
s4MV2=لyr6cX3vR@%[]Ni=~OүAe_!Zoݻ}X;c3:]URi`q;*!N.E--˱g&}:rYڹ9!q2-wd$A\ռDʊ?t({b;gw).hnm!^\r^2_j+(5m\z@u{69VpL,؈.&^u۩]AMWKw֑:4ZڳViL*(ݏѷݱuZqfhζǾ>	BjWŻJ3?fsl:okk'vDHst{48XP8|cn!ʴ9
UV<Kèyi&/l=U8>n{A_v'de]4ydzDi#O8Qcjr. 6C_YLj
}B9$2sE
*uY3}w3Q3@s3g,+@iM4\IC
V7<Y^ZmW`bzI22	E3!\2wiI	G>*DJ˃4$44pٽ7ĬΒt)7-Ovh9660ߊ`!X}=FCJv QI3eqȫ\KKwQp1Ϡ~WBb#VL}gFYN y܄Cu՝aˎ.l@ 54%,e3.%hW0G\È-!nu"4zDOW-&CW#PpeuBYiۋD;tE@]Dd/-mc@R=a
̌ީߒjxZ6_XlR$JJ_u-2z;t'ѣ}% O"B#?}G]hWfeAj6=B#g OH#ՕdK}ZJ!i'z!7ցB
W&b<"A1ߓ~(bOF:,m@lMkeh{#{F	}EhRC=M,Y@O|rd*% B#| DaMZ[}T#Aiv -bh{l"V_Zqm|ϸZulj]CFWzIZDod5gEa./x䕔$QNdU%{Y|86/%q}86nZrFf]'OYĸQ|G#	6vYw+NR{Yb- $؄7(nTE|pm1bE+>$Y~$[wAnz%t#{U)@1Of$ 'r@!YL#C+fEv:~
]HvŬx4b8u}l!s4 ͧ+8Xs\,G#L@gZ&#IISlTlmb}6MMe"=rZt}l'Y4#\EZ6:wrC|5>#󉨳=G3	#U,l<Ru*-B43|1eoaH[~+'O҄2,]C<W{Xx%)e4})nYm%Qup %#:||odTFze}?çx|..	kgR/"ՆnLB<x:P&
HWy2,$M#1OwF3|.9FI$7m*ݙ&3%0N-NW^ԧ0΂K	cFjNݥ4xIFOPY&LP6䈈%g}YHiY	"e0Bb>!h$)	@
,@|f="T EGC0"sc1a%.XsU,TX	(Ӫ19+߷TLMNuuxƁBZNJ6r0ɤMf!7^EJ
[7 9mAGoԜH6T*Opr!UBBUtBd*SҖ%aw]d[ U4C`x{ ˆ'rm= VxXmo9^a@$IMU.$Ae%/+bN7waYH.Rwf3/[6S: 8	8Fj<$Gggךg3GERpZ4.V|k=Rh;\F֬\m ~eM%4D*
4\ "G_ABk*MYBLl?"P1Tf1-@L
ebփHH
"dNN|@>t%@E=|pP`<)ZdfNqGm`J#TYa|NS*$)B*[PI:[tΔSEZ'S\.stRŢx6P+6涱E,}J8Ue`0Z clØHg}Ӣ4zS SQwd׬]oL\eNEUt2ư"'{?WoۡWk
 UVgӮ氘rfYa+UȦ@3_K{15w5eueqO5W#m3Ƹt-1>Kb(q>{ZĬZ-$fVVJEmJlN0Bjn
[,铮RV r߱VB=XZMy-ZŪuTSy,:WEp^0=tsk4A7x4Ɛ]Π=Vغ֬)􏤱.6Nk瑙d]Ce]lFCdI 	Dlй^
H뎘*ӛ2<ccFͨ4[$15S(<蜠p0~5W]/?Qň(
m2yM^Zt4.`,)rWԽ,ì_T0-f~,x wf{Fw`4hmVE>y]^5ZvǇMj9rCew7_~?@ݠDȻᨈx	і^4[ #b+nkbk4Z-&&;fʬ8fsl\$ !K'`>U7*%_'zhXfn,j۵J.[6<q&8G#{TXE:SD.=W%+D#v7qmTFקYQp.+WSvR G
^gO{hܴ߾gP6aA%q-p-Ezs:L^_1r(o̊?R& .4Ns7)nj6 4ˣS88Jsww0ܣv}gag̳[o!2S1wCsI41NEܯך0Db:GQdTS0[GnP,T)128jI'SOq~"%z=Qx2ń@RԡݣF1%a6E	4\4kh=)QgNT5,A|axMf7ge{UelonH0hwcrIB9?;5LTֵBFmn600}6o7M9lj[dN+NޥxrF=UYj#:4uXe+IDB*
h_P 0$ Ha63Aɪf_aL=}L㵿=d},xcoy~[vͷ߼yvu;9::{rt|ά5g?(tˌ!Myy;0^-cYdډW˒9my,  Z$9tT"Z&N;bh醇 ٥p5'$Fp&@A;CYd	HbEL]8Ho|EqbNLw&%tb%<$i7\"L @,>HAؤC@lQՉR165Pc4:HTInBe#ߍBGŧܰhwg=pPzF%	m-i\{ lD!|d֍F61Ԝ|6f̘[ú-v6i;1H;LM}6c]f_KO,64F	UH77]Cú+#+@fZF>L6L6zlLEuXggX`m8$$1dzg7:,^v9%񝼼Cu@i:AN IG7:-M[d:OƖ	:&36f+s$P 5!D ;%&T?r/U
ΡHsB@׆p*Eʐ,X[KenN>HAM-7/Cy<)ż!*0d!a1
o6~d+> 4m$C +#x՘{txՍ'B;~t~vxs;/>:N|wv$ׄE[PSJ^[HZ@\ͽ
"	n.!uf)EV³!p!;:a9V1iB{ x&#i3F +:p6P)@J1lZ-ܣjy!6{x8 %
Q%ҲR#&B B% D.383ݐk#MGH>)'w	tF޽s/W/x
YmedPp[1Z~1+g7| ɴՀ5	;kWn7T/3
2dPRB(zĹFmv*?s~RI[`P Y$r|J&NQywJ&gRɩ 6 9l8\n)>ށ6ul9""wO~kPo( ,I#3:p;K3<#t c](K<@Q(l_(7)gOp!ZhiaQ$9:S62bTB`LP
3(!5`)X??mw6aeZC?bbXDaZ$'HJ?UF~S=t(Oˌ$$x2~b1eu7&q
)	r.!ͧS(Dmcl__f. [nޅTɣ!N4+GHY<87G-yS>ز}2]˺fY=>+gF܍ꥐW$RyUTL`=D`P쎂@utڥ@,T(Xƞmwֵ4h: 
tT5Pcǰɡ]샼\bK6.1YE~nh-ݘ!Q wvW!uU肳S,$fj'0+.pz1s%I3mև\NC]g{1o0cCoNslIԻm<_@^ɫNG(s];[_lJayצr-ed}kД_[?z,2[_¡e쵡\H2[`jBDVwhɱE%1{h)iMeVxP6U֠o͙1\[_d?Ȏ?~xt<?(E@YXφ}2E6| id@ݡ:)G[c[.Eז!&H[_[#5"m \ղQѲ,daVgEl8',AQBB$ќt2	 !otxKʘiedE2:kY8	v8
ٚ<]
TM1Q4"νX7z$<MM84EN&81Γ $LOQpϗ- ]AY:{ْ+C6v-2Y^~>D.gg4rNX9&9{fC\Z]tN2d8RoXS[3yjU"h+ϣE;@PQ+XTŞ&?6JKt]^
ӭ-Ұ<'NPU,1^M9@5V# tRy8=;)T0B]Z-VJ2|U8*f%hvqiH>HȊV?yɏh\krw,e~e̢ܣ> q⎬ 87yQ|t洊}C@1XcM^mF - ڔ 3(kGC6ĘEp8[-stB]bJWf!k0~|UqM9g=̃vN,kjT?MHMc*!-f(}{T૪LڮyiHVh*>7d5>E=]UZmN4V)hu!@e>G)kPYВߡ+9H!JuRgQOz,Qi^iȩ$S3lɉS/',fL3M=xy/aL-cD؉wBMя$5Fey|E@¾ZٛMd{`MQ_GfOR(M)5>>?Aőռ`ϴaE1VIy lvJ;GR;":~|̸;Õ02if6^wGOkp\{{YS. 搡#Ox*XZqLrVbcֺH-ѕ,u4d2Ե1ž}Z}8/EO \lvxokFSJ_8JSnLqQXKc{zr߽NGΌFܘ`i0..afjL2NޗYKD~0U@ho`%?q	SCp)*|)@
+R/ߓ6״Ibfӊ]]0?f~OUSlj&^Ao˻{]s`@[]@\OV\e`,Ey[7pf"g)yK{Rx\JC2[|/|9O?l4[#<,nO?
G} |m8Fl^Wڼj,hM7Am6vF#_JRюrT:qe@UqFSr)2]~-2ZyE+a?T% FKt:73$i1<*|ܮ%W4Z|6<eEC-櫖Vյ[T<ǇL:Dkm29T[		zTq4N$J![%t
,q(5m@SK*9遳y| AvXVemyjR+AʸHҸ+S*-eڱCF)BNJyi.
m\4_?.)ڬ_[QTLB3q'WΎڅ3sǜo{-#osbkRlP>/u>Y{l_85DADhL"w	p	=r麏HH&z$#]"; w1;M&N'"hEeCD1E=e"r2svn++Cx8rdu92s޲N\~9u6)xG 9	
o	$9E	
!
0]
}
	'Vx{+Tt}V⒢̼ɍ,"%O汰'_䐟\ϡ<ْ )x}rǒE*kR$[ϜY$$HZ"Ro>dv7@l3`#}ɮk旗<M'1Q.h\MUE8No?zhggt̢i!N4)h(,nL*&|\e(ϣ4OMUFKqɤPʔOevZHLb^HG(6_>~SWō̠HA1IǋJ
YXb*3oW?((x7Q1M 6F"-xh/&
s;f74FEMmY:z6_($ybi[ؓ4{(W0@"Sw]!D/Q"K࣊^0l͏j\|'{9S<C)GgEO˭iշ揔5r<~$.e؂ӌ>Y*۞^D /~Nw PqZtO?-` .?;?bFgCq/jZ ]?C)R}}v!{1]t/٠8޻k!o''ǏЁl8:;pv(ޞa=<_G'8[g@q=_SlAG/A%4zwq1WΈ
xc28"x,Eq itG3\]9Ǹ6peˬ`L
+/J`
x?~4-y5Ũ3Ng%lރ;OӲDOJHZ)1-K۲-K۲
KSkp6\0VLe!piZK0.V[2{P=[v"'hEwftL>>Q|_ePꣀXWBxqݣ=Ϟb>CEnR=CYb*lj`+k"0Z|Ifp)2]Ej2_$FZ1aA<I6Èv,Bf7n"ȫn̗7vk#k{RýIb1(T2J1p%qNo,4*<W2q6%Sȋ~QPINg'ኑaG%"<͏vTg-J60\٪;d oEx;qŜ0s-Dhub(4&N>+ #)b )dpG3&͖j]E㖸ɢ^mw:Zr{fOzI4(fU䟞Nܬ#(c[ǈF3D3d,myV"VX}QYƫ<qgāg%yb)z>=FQxhT|Ex&DCءYbX`Ȫ+/ˆhy]0zb>"}E5e{U$MU(|X$n|hvssY0N]ԙVܟQjqKez%&'ۄWN&Ü_{5B!1ǆ\}?bw`Vaې;rd]꛻	vojٽN:<"4a{̋&hCT}JͷFw~&F叻.`k-o2 4L$m^ w4Oe1;m'Fo[);_Q{/:Z w|mw88^˓l@2eh00tMDiIMWҏQv.-'nY,4]4<oռ@I& qE^@lWG5rD Dd,%%8Cy(kVɖQޣYVneoW}Ѯq1&sRd?5{`"^n^77YN#aAb-jɌ<MeZti _upv`X\ԨO=8`wp+Uwr<=P"3"H<|U@-1<@%+Y
Y(׭a_6z2ʷRj+=,?Mr?XV&:m`tJo(ЙȭR}ΔHkfZ!ի+u2ZT/uW
mE&'j&Ofȃ.P(*syCok(C=GI,$IO>#]j'9xfq)	hb2[2bN񥰪oo:V@?'곊M-1g4olˆ!˻Ө-\f* Ao:UױnL`oh;az"P哶|:wOdUˌ6XmPPYHWFM't{@f5li,3 ΒCU&)饙*~$un1[*}-ob#y >;e4=5UoLkӓX! 4lYaeL#^3E2|8}-Wtݤ00K^dWI1ܔ,>`=
WgmL+  ~gIW#(,n)ZӪA:-jDu+@	o>=K? ;?eECGg,x!`=ihv{eo[Fg,`^{1z ZߨK28a,d99cS~S-S`dcg[b5 {t gc!E@`z[=-ހW9@@Z s~HKa,@#c5' HdnuAPxµ- 
 Z^U0,F<fG|}h tn`~;Hm
,Ԡתb޽q|/\NPjj><qHHW>hx*st$LAq\_$AoK!G݉5`CoV2'^۞T7ߋ윇s2j#	/b@p=Z@Lچm~ِ<K~Ωp
GCP-@XW$<UV] lzww5.[jp.?= Aƻtny. r7Wrw{+p^@nw[B)[z?||>x,ip gfDZ%Q	=	rv~y0 ( J_lT_[d{Vo%VI%}p;tMoe*ďP?dt+×	,8sЈq B/~\DqGM֭2OΈwXcL5)еqmX­Dc`vFӧO[}.Ne&C ;F8Eza$;R={ـ[=]:SwphHE	I$}~=f)!xkdƫKu&Ӽ+4byq9xC!A S2ph	HY|tDG XOOsH]E#!%<>xpJ8ξh\b`7 MduMrakX7<yqS)ڇ٠ ΃"=&f	?["QqtMd`bjYřvȤ	 6Ll1|i!yeEY搄Ao4W!2K$kۃlcpWմBYk⸦/=9"G%M),^`KŚn(Op:G =iMPvnbwpFك=9БO^= K(UTSށxi)GN}M\	H6<-f>wKxϱ1NQ$OhZ$Y283N<T~ lDYk(:aR
(r_Z7I>9O 0\@.<oa<2a_Bz	\Ǟ봕@a䖢/}:u[Noz{Pi<^¶~F%N9IRCOi>T3bǐaWI6qazKaZV22_Zi2#4Q_m4+JpBMsj
P̱֯yhK\Т
ZBb@E &FMӯH&[i|Q9W kA(K.-9= ơ'+Id\_23vjq{ T-˳P\jRԝaq-NkvA_hPڞX*7KSS)6*BDP!W&F`S$)R**x ^auyP5t _&T <t6&H-BaJd޾	q4YhY?zoZW&suϱb iX"5R<#dnU+TzSjr9'imЮd\ F?jL[X^t|A
3(Z@)~F(ƮyY+hyޑہvPvy\vf5fRTj>FKk4
e2"Skk49l|ſ!/rP|"?_1/xhAaV$khL^mY,2E	1EB:*t.utDk%EfƆT+-4chao0C4A8:gx~7-5kx0˒ܤրqMf;#Nd69i]s%wHCX3K]X֟Okf9.,t&	aTٷϿ߇k;UԾn()z^@AW<S4~cp22;M?gd{t嚾O}Q/簶#`@>\287B1%S]=}3TVA7|2=t;=ݞiל{9^Cn,DjkЧנ?I_^3~&}xw5#8Xx0@#a#~\X$;&CRemZUj<ݟ-e2YH C%NEyr{0?ZFQ͵Ѿ=ǲY}puTγ^XScxGqG0s8Ѻ-ܸXf=c{ 	z`hm}TL<#e4w#x9H'JE'~6)ቿ6)ʷ1D?	gI[P1ڴD9gbpE`9_wKdB"ك/tMFs{+$K}6ѹ8xhGB'&}=/;z83MðڅkLh_I<ofBA)J1jKO^}Tp`ZUk}fRnj'Q+/}տӅ߿_5|[C+eD:`4LaIY1gC OqXEO4mU/8v}09 L	LUƤRd.VyCM?,	IuOO[l2Ad`7|6!u@ަh<.8>	c=Do>m9A7z}r3:JyH$X07ǆGYu"=o[[zv1Y'),{ՆwJ88+	AKVV{A2M͘4-_=qϣB{mݒMõiFv$u6L;܄@?TTc̗̆]">gR7\N3U%0X,ԁ(=PxR=L τSw?_A6ts54^$4IiF|Sv#օ4E#*g_dy3h3$d3H_K|Ugz
<w/F=mDMR}Ó2#BH`uG~T
?nKnK6%7AHx+F"#jߴ|$du-
`q%{-oF
sPSÛM<],>E|І+)9P0Mnθ"<ɋ練q1cAL'LoѺvpϢ=?1Y\tcE)t+ã3CL5}@1/0co]R;Fr=lԀ۾4+9x*쓊mXu>lU3X%DYJ{>Vks0 Z&ǵh&ĳW?=n_#i&ڰ|^f)y%j*V<LElQ2&>S*11Ӱ54v!	~&ho5PLSSΘ=ʝSКSMF{gIPHSOlk/nk/nk/nk/`Fgs'U^D/H[`-.m(7XZ\˰	l$X\7n̨:.?y!t5ǜ_Ҟ̃J.]XX>PJNCΙe#R\/}ݢX'ߏJMrD,{}0&1'dc#"t=h(ipĻ=k.[l>1Awv]2k̐YIL!eOG!9hX.K}^#wHin{{:yEu|Z3yrNUj~J*v*c8*aDisԒmZ(>F2JAH+Vs=24=m?zR]4v4 (7R;CW<5phKå2wZƄz̠5Ԃbyeub[qq*#\7&\ŒH6\)ǬXZ]	%*|e,Q`DX"w?{Y,k2f394̟yܙF;kY8[΋rFcO:hfʹ.<Gz_@^G@a4sa8-,wab-OJة+"iu}tbTL\^@&ڒϥ"yhBqS~tfxTXab1+͎**zC#].oSu$mSDeǭ=F/ 	ͬIQ±yc/}-2qq%.]D1JU{
ǅǙґCgM{63p-)B⊕VCVH](Coq2(G%S&pݺDS틾zޖt9Qu/DfA"0	X&l Ӌ3]TQ,cKea^]&qpP?SګZϪqCtMhҭ*VHV-"-PRIoO|cvr8#j{?Ktߦ9RKD7	~h{ugta3G#|}~|W]}/՞a@6#RR,ÀAjgV5Z]Ppv	9PTQ3*7RuږfIޯeEksȝj[Z֜&y/F[s]ֶ$Z-;r<ͤä(&?(w6c1,DcЏ`J5<di4d9SItqrͺ3q^ZfoN/9=';l|,	UWoo$t;\&{<#hMΤ+g"~N#s&;;љIg"w3{fL:jΤbaE'wJfl#xق騵"}ʆ+eCԵ2oǙno,?<|>C ~yWݙY\ G	HFY%pP>BT9)l&Szۉ\"CN^ZUm)hܨ$Z4GՆN:y Au!O(`hb$4dghl֎c3ԿP%t)kHE|]"A|p }aĐ4W]E"E,u}e_g.{$)˾r?/iQ^^\,V57{׊>Mr/9mMk6tX63T8%;I3/_^>đ$4ezgO6B[SSN	$>9ӫQu y96EF*MW6Ud)ć>/@Pmc9D^lӇlӇ=Z'MMMM&} %7pU[/<x-N	LG%_z:w'%4bDG>ח;R_Ը֬5g q`irbyc	fZ10K8o_QJEkQ)d_:Κmښo,DWC}~f:y|ui';SnSҿJmo7R"XD=1tu0O2Y =Y×53nN6O{.h5Nb,e|#AȿiQ7Mf@IW
tu:'䊣ܪҖL4-L87Znȸԑ@"\s^3:cNIHUFEy/ιCod.iO44>H#-!y2	00X7:COڬ^UL@9OI}R6g'{[?sO*bTRZ@"SlIJ#>oќl.g&e%S8pd>21P!IgGr(|G
l Ҁ10Xr:OQVcjJ=+%m_qt(*5S8Ke2:O{SrNkoglYNco]Bî1 LWվ
Oy&'
Qjeip2`_P@QN:OH݆dRuW^!@kϦI	0Iz-
;WdpN[9XzFϛh1>-wZhPב~DZCTҙͼA 9|\zۦ)Oۘ8E/1sЃC/Ρec&;gu|2{}Gcddd7Z`ks|s0fhGPbkhvKZz2G_ID	A(wV7o9x?Ptдγe/4vE+5?i2R󠔣y9\6`<` N3ӒcgAÀrt܇TvOYHeX(,gI7W

Jq36CO.A	=AyvRktzomDmn|ci,0;^.6Kh~`%G-EQ4Ĝ,5tm\h+MRUsJBI&(vثW7knRacaj0ma{9JqI^G S}7O?kt4d Bkr=xzkW`pҹ#e.\,ig.?3C!(vhP9xَa(mps~%q^/P
R.
^+寤+šd_	,Ĕ&(mu#Ų1hWi75S柼1d5m=!ڱXXV*X!GQSy۔&WðWO>A@)PmbeH]!\a+y\2!? }uI/i*KHVћ=s@YKv؁AjηJC'{EQBԤ屾}Ma1jL@ZLr[kLFQ0Ν%t+7<6Dr9y:^۾=}޼{PU L". ze܉Lq򲅪>N/2%dk=KY)
8gK~O3QxGJf"%mH_E(Zj	ix4$Jcö`EX pF[Q啈Lp0~#V!@}Oo&o*q7|m[d(uy_[.FuoXlEdwl%Ǹh(O~pL%{j;`^ZVB65^v,_/l29V֔W.Ch)j zNWǱEًiz"cuy\K,fn(D-,>^0"_fɭf_$ݳӞ2  bWiկyV/O=	W[jVδ|fbWa@0=GExt&؉ipF{X2C-CU{ SN8U?`/qSX)dulG.J?Q`8{JF@%1Sce-6Dx*nYW8J`FRC=QŇ3B1`doTք-_V}T=Zf,qHȩ)lha?T07ϦfCBP6[)KTl2CSʌ7*ct"wHyl,!_Uݴ]7`V^}[/YaȚ^+C|+tzc1[ZjODLPҜ|q354.bo:κ},lIc)cF	,a#DT]+	9ǔJ>đi/]*DǹLJ/M$u%R&M*
,+q |ad:L]p6Ezp9ԍי0'QɰIm7_[[csN
1<7cՎ~Wަ	HF0 (<T|ƢE<'	d4:L<̀GBԺt}{C]P5<8Uj[ʯ~ Mm^3\"S'mzpsv7l5Ky ݖ1i@Y酳x۰vrQf6OlR{0ЦiOp)8r
(N{X-JVL4΢yy
=,
h+ﬖ6KrF}g,ǟhNyRc8*I"1ѧgьF.$*imE{^4akX"}g=;Jg@Ks\~Cu#[[bY3W}豠8^oqug
ȕHtSl*u UZ@Vpլَqƭj"$߲&p/=i=tVht~C^}p:w5;JəR˗h=x8#E5'NSV(vbZҙ&m.0-X2U[͹,X/z_qjZR:x
ȈfBַ][2qHV7BW嶐J_#AO>;EF-+u+m} "wE;K1k̞޳/o^[b sq$(e	OQa_8
% 2Si	8i:bX[`h3<vN`Eב:
œw~HEDвq.͙[OVtSLi[6i?]:LaΑi7{!w89;2IN;?|?[x 2DM鎧0VJ1'.6Lh'К.
̋|<<qܰM9RSi)J)?f5s'pkaCr}ן{ȱhmmmG t}5RM~x;2%Mac@RS2H5)ͪ51bZt'ADe@qTj$u)/J+1s@AIԚv@AyԚy{j
>Zc>ՠlZ~FRo<{3m	uծ(.
|H] ]b]kʎQFJ.HI;SHd^HgmպZלPCb+`󟿏p;x­f{q&lL*Ǩŝ129O(Gn+r#X,Ǧc#Baؐ \/M;
>deGv즢Pڒ8*֢V
2{BнEνEFTSz]kޢHAW.GsXWI\	߼um]q[WVgl[m3780J"0ү:.v_1=u7?nv%L;WFs`LUUj<yê*h6IUM
XʆU꼶J1PA?N_k*H`z,R	cjTٰlXKerUVKEs*wRܐʑ7ޏ#~jSThbF2/0ܻ*-R+8㶰ԶԶԶUXkTs^=}kZ_!⿄%bkؚ"zMjҗ0?kP-(,|1T蓼wx[7s ~ %׹D~2MXg0W 
ÍV``Lf51~fݑbhlmG9_5eԚ2jjgk+l325ӺnnckFm-_+k36ehOic#M!Jhw>n9/LԠ7?/vTu\{f`e*`mH]Yfa&%_4N'Aa42=P$dDdb[ʉhS]buI:+(쾮
$H.Q:&v"9Aol<a پ<RM77X;̊-~O'PqB6ffJ15 SUpdI^m'Wj?"ꐹ~!RVҿۤ"D֞z`ححvIvN
lZÅuL<@t|D6߻h7XD03%ͩPfQPt{PT maӰ8N`BZR3Q@_SYyo6.#w7I'Dv;aDPlR0`zܴGGOՊ5J`y->1ڽԟ	֭뚉Ye2h Qq+e<\`^@ĳQi
L]l=ٜ7RivcbrR9Iݙ6*#Rܧ&8Z$n_;ucC3ہ-v[a|N[V=<6Ak<n^;YڠM/Hn \qf׫Vvizr|,Jm^4giЩf6}jFyZHSw8ұV2z$eg3m_&qG]x_Σ_AS/&بyIެ,Q, >ZR}Ŋ4z20?PZ4.&CșL9@&CE`P5,֚j(t|DBM39=@Ky7V'̘}$Z,lm(6.PXj{|+nO+08Ǜ.Xċ=Ml2] տQb.tjD > uHWjlU!&pOX)mlUYv^h]RWkYQm܁Ϗ7A?8VQ(+Crv3/OVe(Ytj{5;vqr_p?ޢv0iy]H]
_iQuޢ3hGI	[aSIεm]2y#kjh1us);b0U:Gr)M<m~bX)\dn}[}98Gusԝ6JTxX{l[-mӺMڼH$i$u8iuۉ햔ƾowk|Ӆis$MMUBblhILG4Ih`;:ei={kLC,s!B g%s#nz'1w0Jځ쬮4̦(U$1U$CNUsn6%,II)-i6R\IOǭK%.AGE(I턐Tr0E$"{bpx<ɊBh)$YVNH"3L(Ίi-:XRW"Q6\(< =qGbUt]|olrQx;BZW?[-:PB$b'x48x?P$a9F4{N7qbē@<2N˅.>ʇ㐏&]=r1w DpHtwƢnwWw5UrJf>+ͤ4U_Vi{RVsp>42~PA߯66ZkXi]46Hi"ML`xOlZX{tFFnm[w7jYi
z_`3K;7-
Oֹ'wwz]_tm鬐Dհi]{iL Ja!bOtý^ ,`
֗ʜgݍ>7rnKu.~q&/	Y8]۰xnܹv{
[&1>K,3@?5sts˪6^n2H!QFΈVYZ@mA gi
Zx	ʖFXj]eɱn of
rfh=%,a=4]B>*P.<o.s x,r<B
gZaKZ/r,qVto9<ށ
nd?7 cg6/aIH(5|k+ٌ!XjZE¥u">ÑR"=i}K߲KRx]u%O~@ V!̊ڀ<3A<;POvǵN޾@Hrj<7\ߊSciq3:eEvXcG ~Wthš" OW6mL0l~Zߡ1M숞䳑"۵R[g#:gGN9?ƹh03B_2!Ruop}-Ws./ww]8ܣp/O'=Ǯ^^7Y`3^Ɓ`5EsJ?q?
{?Q?,&](Lvx<`K?2[Ƽ(
zx(B.'C~	Qx!삺q}:nxk |s92
HG1!n%Su'Z!9ꄧf:uolb<`逍Y605 m3=S<AϺyhwƍq8%~f{fڪ6=XdUxihܗBƋpYo C\g,upھNT
J/QP])Sx8EmVx#-Yh׫b&\ݩfSpyG_;Y9<ptàB%#̰sS3\Ċe'cu:{A"#e:mXO[`$&vtl1;tA#JM'xtB5ERH{eQ#.v	~++)鄳jܩ6pA}jfS~x,58QX^N*P^EEPrӲWsbVGWq>*,c|0/spWag顖Bn=>Lgj ^b>(MlKx7B&*`~{b$(ړ!.+qA'-J;o\l?J;8mH3	M!M>IsRQǓҌDMj1:;H\48Li!!:ҢfdIƕYcܶ.lPmpHO)Pb:mEꘙ$Yg)I%(;KpĹɼ#qȝs荤Q:0JBJΛMK'Ĭ>hSc+,N%aL_lxI)1AQ
P'OGAz<HD		X1kYEQ(YEШYd(W+Z:Od
^.AbSAgR(;!2^'Bl:G}ɕGcIӈ8'YL
Ƙf1h4|: DvsCJ YޗO]R='!jN\YN0'b4z2I
] $hr"+a`e$YY^MEl-@?H²jDrBQ1ll|g'0Vwa"_zJ_lZS;Iz	YCX=q%33`6w4"j<+e42+%lNS(E&<N\%Uǫ_]'eS4mfJ+W:ʄSBG\cNF7ejr4:R-pz?ٔFc˜"uy\E|ɉ	r||v[i-?Ϩ}eNYQ`;ypGERQ::N8aIJvC6dUcF@JA@ko0cAJy<4j43lԼY܊Fo80g@Ui,+jEook7:W+Ţx(ٱAT$,/bVZ9)!&{Sav];o_6iRsդ_mhʖU* [O9w]?,G/O7Ag-Cxo7܇++뢋,A{8.%^-ܕm]Cr-+He>Crf>?¿?5T:٧g?Tj>g0S[,?_qc_.D^aj>ӺB[©zٌ&wD-&%JLs 	;rԭUC|<lꗖ(3b\Tds/D	w HWvUH?针F<%zD؋Ͱ*5cN[o6مUyf3o@e}0͚-*) 6J\b] 3k$lJ?lF)ne"[7] +UÜ2Se9S#qTggZca(;Fݺ,3S)!ϤŤmBx	}	ktŊa x2hOƮ[H^·v<,3	{RTKEi.@.{xJđ[2mss#-L65q 2ݱCNMJ>_VvwROLĖݦ "B9F"cJƆܟm@hQx2VOpq\=_gnyg2R8%XQT#qb;7ؾiRm媅r"0U_mJXzy\8Ψ*[jA:I3uKH@l	B+SȾ" 7f}m-U ]p;<`<<̆3͘K8bȬQBGL~S]Er*[ɽEuћg\?ruAT@0q3#oSUc-D8U~|q?fKgq[mp-WS~)QL;O%;gKՄsܨԸ!LĞs":uWj55}j[C:>k#_4n@0.1ZCd3D]~-l&gRMgHErX֚uT+lMt}*qJp?^W9)ޅ|SgHb"z,:MOőoy4:i%7-5jj<#K΍sZHҀ0
	ŅC"
Pa*vcS7-O<v2
/1z_<b0+m$f%{9y'"uAGp:gGF`&J s>2ᢲW/1e:Zu@~Of\?4x;"xA6|ɦ֎tfWOH>Zi*?9.ƴS(-b+ExU&
F9^ϚVB6-XĎ)(ϖRd=ld1O7N!xt2T{^DRӄp0yft	d
ޖzJmk`WTk¬P=rAY'í$DSe bרX<ȭ/X$H핒.W+JS=\7LKꗢ!\Dr%^Y>AΔɳYVOdJ)J(5'E
vl:*Uk0:9@pXpe`PqzZKcnkZ@%tçEkER/Sf$iw<Q4I]|5a}v0LYo4e_w{l$҈59o&wizUqRK&
d8сZ/<iU ޸ѥ'(
8ĂPH,d87cE4A4`H!~%/h5ɖ\1C.=>ꯚ:uG[99뼾"q['I7S"M]}@TȊˆrUZӈh K%2/3`E;l"XM5DǴN7gea2b_lX(pB#a-J/+8|K:8qrH[^gVr"VJZ8 U$z_A@Ck%bЙo|($EL;u},7Taٻ :<v(ƋGMYi}/[VoحU-ȈrCBjfYETL6:_ʣm3icTG0#_5qtǹtO-DhGv`.O(Sou9$Lx:SZiyǹ35iEdLÚK`޵eF1Q18X2VAB@HIN0"9#:ŤxgCsƈ+)i[,4}w닺YHnarߢ$nD\#aӂ4sMi|U;srLZ$hwȎ؆:ڙ<\ׯ ԟ'[8F92ܠU2+W'T9t" 66&MdkQI`ꗢ>B#削zչl=ٰjgOFN/){OX՘'Xp& OP5*
:"
n2Q:whu`ߩd K*uEn1[jփgAZPJ	p鸊<sOǪuޛ!1DqFXB"򂗜C
8.<tk'ހ!vMF܊nV4sp9)d881xٶz#*2b:ȇBvrӟC/rc5Xm\CzG,!u"29O&_r|?
-8'Y"QloX85ԭ
^Y[!Jgy%a<sf.QS dEJLMі9^)	Şţb:7JVZއFFqx	"yzBZW#-KW`tv哸UhTo7kT'튨IW":I!+Z	^yl)尶+Zz(LsY?yuD"{t]|7ֻ;y!'ɐVzMUƻtR-nyk_\	aIrKƦ]\Y1¥*Dw}Ҋ4!ddDNOfWΈ)	v9vӦTWO?s,3qx8bF,ٵ*|q/[Ny-ގ\f;>E쿟݇ϙ>w=xq"zIyRqۘv yҨk_q 6GFNߜϏRFN?tB\Ld0koTêGw>0XӀ8K56ZCa5ϱ	79$ŗ4*M+dMdX2U䬨4 I okF/ƴ|(Q8QH1uS{,Y75qRa}$_V{Zv{;l qQDVTu
->s|>YX*qWtLSh4 ;iχHwM%
F[#.đF!ޣBM>sӖĥdp⣫{\P	d;}JF*\INd"WWsE0QTJx%kqpBg<́\6Sę)?>噮w#h[\_[)Fh\Ot=4Ax<>; 5 F1<ca*c}xdK)	^.m$⫮w4&DIr,Lr.|FGSIɂ9>%vrS'JŘQc58vӼG{9'}^Ox3޿6:=x{ijޓ7ym.=y:BFaiPgx xgG'GgɉX*%*Ci'JE\*CC<CBC\QPJk1ܠ]J\
@P )aJx{;~'Mncۼr(9o	Z	̊Rmtm:SS׼ʺʲ
j̑x3mﶲOvjěγ\TN<uf3%={2 2a2lx{]J$6̚ ]Tx[ӆ'2
O>Cb&P6d]wZ (->9z_ \*x{ӆx+ +x  ̕KA>̕;!
]
o8xyi=JLF7
Kn~j Y
n_xyuӂ\\ .jxxmTKoU3~$QHC!Q!!	MNkg\8J+B{-RDYT]hv]T @b4E,*e5gss9_mi}]ɸ(h	א2ɬmи0`άIf
ಔvU$sE-J>`کdy$'mJ\mabPKX>F)`Or	ya&lKjS4zLH,&XM	w5mخe6V+*ِ^א6	yMf_n6e:?0#UtgU=47iE&ezM`.ɥv-Uɪ5qmcLz>L' {缞,EMZEH}`՘q6a~Bj`_)XW^_9_qKajVEM'	[&K6gs*zT^=h߁ϣA+Ϡj]֤qj#רrFAp])Pa3<))R^9PRE`QgX$R5[|*tlbܹގEeVJQ&)Fh
4`ͤiEw"	od`jF_EE;$Cn8jn&oBFp#Xg;ݣje9{ڟӨL*72
3YrC";Wкn7B6uG,zH'9fSA
&
=*QI"~vư;xS&T#\S11tא	 خ2"~(75GrR&2KP+?qcp#>ʝGP,0z#J#re Ż(^%Y\@\5<{= 㾨}료x.*zml,$XOǻ?>}gGr"o=7UڢM:ѕNwnL
.]#FxkG|Pjq~iQrob^bzjQ{jojJfSbqdE]7L&+{U8ّEQ Cq)q)J,OLIuI-N.,<q6jKS5T6@T"
l񾂙O''*r) A-/W, Dɂ]kxmMhQdjlXKE+E(i1ͦI[cm$MUz'ODD7уۯ6fq0#2)
"<h{F5#'WbK]XqcƤq`=בZ#X"36HB^NŚ||
}+#>+ރo0}NC+QAy5&-z>^oKWY'Q~ͼ\Tֈ{$g~0,Tb/04uUꂖnHUK\͵9m'
$&ԛ1vzEE`nUJ)raߍKsՒ15T*ųHxLf
p&/!	QE:!^qV}:6ONB`t X8G69#{9I)'nnK,pd*wܤ7?s#/pHPn EsH8~8Oed<񃅎L
>d a`n(GB0BwvqghOa%n/j~ЗTibW̭ۺiN$TduC?Z@ˁكcxQt[<>nne	A^w06!'']!?'Eyuuqjӣ굧DxU&oJAJ8j=\G5 QiV\
*tCOݼ\PI	[t{ZK*/oi6=gi RE70żeL:aNN1t'\~q/B&[TxmMLAǳҖ#MըHC[
S4Kwleg	+F=`F=x"͓&z`ԋDop3zН}7̼sS3/3 wF32r	Iԅ9Fj\G
o{c~x4A^s
_cn$X!NwLFz(fAϗg6S%Z7G+n#:v|V8-_mc+G
LSB=<Fcax'<dZ%84
1rYR 5V!6&nK:MV-9[fX"+',_Ha1h=-ݘ˖څ*sڼ'$&/A1c&6AE:`nUT,	}׮F,-cU.HxLlO38
7&#N)qBBl>|b/8pb>B`f,]>t̝r?jXȒP&ۯ}gH3/=eFRL4q=h"7a-5 gU}Mx
,,9Hy|"a%I"*θ[u)#*QA(X;BߋJ@Hg\ ^$?!Ϯ[Ywv7Oaː OZl+%A^]dZh=՟'-Yo9U课|% X%ڎ?m^`hm4WM<]S7+KTD褀`cX}EھX!T^'lz,h RE͛5a\EEl`98vi/@4-o&xԽi\V^X^. -sx4k/=XRJs'1K&owgƞl`6)f(r) A-/W,/ P2MxicL7nΘh kxVkF?0\r;&>PhKXK#k8q_38>JIj7of_p8>x!1GpUD{l0O2 |497Cjmy*<@2Tr yF{ &>xOJU.+#4~Qwj]*&\d{u-H˒CoÃ_LVĉFxPO{nZ*%BU7o `LX]EiW2)bLbt:}1 "ʪaX%DC	BK1Mj4e:Q:^1 շ)B$JIfZ~Vde4 ;4u?+dء`*/0sD&o}^P}=a^}Zk%f5Jt2PZ" $q؛WbblK6"dX:]ehF4j.莂*ZjÊ|N'!ļY W3R0w'Q^Z Ǝ[
[ݻ.Iڑ&e,6 h[U>iyXC*EeYlRK1ش8wKed(ޮFQҮvi]UY"̛ϨJGƤ0CbCᭇ<rx2QR"[+@1Jxw\A%\qϧܵK}\Q,{L(6Ͻ;y/{9Bw=zpX+azm$,DrHrt7ۜ7:"[?k͕<eB\vfi8hӺ*QolXJ*jqEa2I*#Q^
K\ŭn|evr;R?/ܿa|&5IԤ:g(":6cK¸1ikTκejL[!DsTXI:dkYpNqÒP==qЂlC#6FbmF"N n{4OZ.~'x:j$w;Mmײ~ϝ4ioQ6utQ>-X_SLG^WY_9!v dҧO_{k4$9}tg>+~}if	R}"aG=:h=78\sc;ٯF^!`Wx=m{"G<rļٞ&5MtfIe'^do;OJT*I:a+f8fNٍcc,׾^g}7|ޱlz}Bzu]?y2-o?3j(VnWX*N:F`aз0I֮Gsfel`}6>&Cqw٠uelsUm'170Vsg}Ѱ<Ɨvq1ɲ]\rv+ܯ-+5	8`o?%wRk~qpG}	=	L1߸Gd`F]}/kY;6[Ӌzv	I!uL;\pV^7뾶,} Wʾe?Y6Ce2 0lHK^CW\{l=w80|?iZRǩ7X=X7 &h  0
ijm[wO\߯jm2Kw\X9`pxGEnC,fp`+Szq+7|A{Bܳ N 	xy'e$fiKlE@=>Hl w?0` Z+Ą
	Bڂ$
i=.Xrq @g8[h8ǷjYJ5BKe@R_@ṡ8`On(0/G	II5wA	ޜS <x
%H#zXB	iW7dX>}`m'nnj*p}Gv.{p	(8V3!6K%ÝgrG$bڦO8Z˪kV}d&/C	a9wGDNMd!,$Q@7uBLbFZ+`;֙sg!03ǅg+-uGK졶ͬ7u?\vbo#ϝ|uJZ9=:zy
T;b:wZﺳɴƽ%4؊\bFi'HL<ɡ@WEsdQÃ$mpI?Xj6B$6w;݋ޠ	Y&@m\ECh+XrmQj :]bPMn	m[O%^t\'DR	ANp TbFI ^s/9@'Kf 9K#i^P>-CnXB+,GFM o.Vysi@v$0'XՊ9 rs I4ZMhA|vk}|agjTl o$DUg2=n0{V.] MG=7	^`}fe`@SO:lB8{w@ A sSZ1G5;fɻq%xZCoŖ(-	,F}o-gnm=n{vtm95 mOQ-0 >6m`VAEݲk9ͼt1MzӬ-`A>.tLTeRb&דwmܚs1q.1	Ĕ!X8$p3jTyr=7|!g^z+F,Ow,L؊ (7[aOָ7axV	̀&s<pʑVoܕq\;BGpGV褤8;:]@U$3՟!YE.r =pڑUZw ZuAZ_CK|!؀NсPVI
4h<nOtƥ#ZXXmZWi6[6Z˂г-$"AY6hiqqTFK`2_\gp/%iA/\NU~;JgG߫O^[1PVx tq#.Amsa+0Mae9Ez]W3&^:V50`:uG9DsZ1l lКm{s\kX`{X{Kv؊~Mjkc`@U.wB*0"u||r4>QkK>`ۤ|.&(G_~ʓ|5j(Ihmo<cFWs_:	ҰIl+š*/[)ד7ve)k֪%t&Hp褡bFNwNwJkfhfe@ol汈QCq%Xl;Ā1sbn<D)wŶTx<l*k ,Dʮ΢U7<::eWǙFh҂+W.e3MR.6&>@H?_ڨ$
71mc6`L(~pU}ّM*tu
Kz]:59]7qym4ҚSem\qc|A^lsʪ5Na%M`>#[VdJM*xE#}6\fZ0X1=10edH[.<i]02<5ec͊<i~RǙ棚ɟtC'>뺽K~Sc;,ͧwx	p'C
pDuTWݦ/",nBף}tT`?P6lq 	/=;@
3|AUI#|jq|cH*pR|;5/딮<6[!s{+-nd+gpׄUL]}
&C%Tov@%'52vZ@ZTa W/ɉI)'BZ|D( P4I;gБͷuQUP0(\`F.|(Uu?d,}v/W ]w$pJ;g7.HȠAb.a,Zb8ulqÁ	jɥ:Mo
*P+xCo7gq ;bޜĒ[dM(&H3gx|W!7Vmdj6h?m[(F!$cnlj(	Dbۧsqs;*懈~ @qXhH-I)3͆>lPgD"ϧfQ<I=	q?Cj2%[]Yzܻ
K.P:>"<8gۃf9>K|dL^|rvޚt;{pR <#QwG~a}K SG'`>,s753	,۝K8&P:~UDo0Y`jC DiJ¥Spdt?mсύ,$BEXHK,H;؜UG	|8tKraqtG(0۳F#髫-c \X.;ǽv7ФMRax7RɫZ~(A8PQm#k!U$0?.@xVSʱV;/hxKΉDk4jӑ/*g.޺2)|b]\F2=4,(	L2k	J`gbt2z4.gOe#"a9:hղ;nǣmg0&/u߆c1L#H0*f1,X%._8a ̥-h*ASӃ2::Jy#J$	/4b^XWj(xBY[ZH%.qVoa4^Nlz$ Nu"`U`.gAHM7c,qe_*PZ1pܑ~#:!Y?D[*l5Qo}QY͓"	1)):%ޗ,~o:w&^nD8Ou&㤞Ri?H[+JFE1i%֨5ݜ5燳FhLYtmyy& 5σvF_H6dMя٠{VYzr@hL
'Tn@$M}Dkri	+dINipw7ݚI;Om:BȑeAxT;%`ObLDyJɐä+VtǍL!2;lA]z=Fɯx4iq=3N<lk:o2Tc]76zhG.\20Yp܅TOFvfYˇV#%ZN>^DֻP+W/8Fz׸~E|`k*[5zo>V>x\FcֻF۶]2H.%RtM>FW0sL\R<l䗷gG2jWhel2#tsoh4[0W\PxC_ FË!^6F>)R?Eȕzˎ)~iz#Џ;T~Ѣ8v"^}%è3 pX~a;x_)p3h7[1.Vz@q1<`Mw|j{Nf^"ˌ"#&Xh2to*O_Fme+;9 x;
f$d١bxR<ⲃ$amo=%<nwج*/:y\<dq!CbuL.neBJ^0'6Mxy+T)ޙ^,Lͤ3N(hl^a_~,MYqAxbz-t[OXsJ0pTAb+	,"JOQvAYM5UB{ x	g]нXS==w!>1tF2U`t[h}vz5\Ï:B#XũKPsp>%9Ww#xzsmr6FrUcO(%JDJ]KiVtBfe.WTuDm$kma{:kTt?\)C5q[Rw#YHGƔ6Lc-UojiqF*M&Fqdq眳\C+f26>N )㔩TVovg>Q6K-elqOS uD_D
7q3n#aIcryZ}=ըωS?	)U3Sp՛[S^23ДޤPtm۔^uw Ҥg/Hs<ߤ+bJ.PuoTd	UMt7bQ%s[xjmhx5	,sژA!!|ĲCFm̓,Hb[LF8+ͩ}ƐR [3?传x?8*:{ ;lfdo[!Pf̨Xzdjw+1}c?0v*t;2V]SƠxO;zCE& l3Rr U]Xg!R`ؕ|-E	!OB	4p͘r{^7*ܸxX}kPέ@j|;ةA7JJĞRr;,xa~m_Տm~9ћ(y[-%?iyfcy`ًXӯ6Vd_[P[Nwxn@%UT_KXE7^|F;MB
vӪtOky9!Z1'VYUQgKn;`xoyW|#dm!ٯ7Al^k2<bБmd]h\}k7ASK*wcQ?RZ6Kol;~dq@^a.y<~h2u`#Q?>D.#^4MBw:Jp_x
ITHw詢
Kn<<U7\8HM94ڲ"1o{t\e"R*фK.~paa""J}\*`1S$""p1*+UintbEE|RO5"fFw7}7R"v@W@P]G<$#3^ HEE+StT:<d-BYmk'$Ef铉?59hs\G
(~}4ɥD7}m6P
e,]0?ޝWvJURN)TuPYa'
y	{sa *N*"STqih-/Q)`Y&dNϩg\*
JV #U<4	j+bD萌KJO5܄PɏyͶ
<$^ȦS'ܻQe__tr[e6k*NtTtRlԎXy&+Z0yB%ɑלӗϽC}m	FWu{^՚i'g[=2!%|U:tAx٫ib.C[<XTeXZI7w+ap<{,/YG]UE	[(=8zH9j̡WCszKmƉQU`T%ǲ-:rەw:mHһ渙`6C/{1Gƹ.Q8si!gǰ\̨Ghr(DkA(l ;_P&EK^7eoh
aW7ߊЅsy mJ.j$B*jAcxuQDLN=yl1
O=k;de'铕ZTL9i-$G(rNV	3i>۴ЕZإJZ<ԝ-S{Wd\Ӆx&֒	K,ɧ]u+jMtK[I1G?x'ZbX<lsxz~w$KGz&YJ#TS_dķ2$R2wx)|Jeh0t+B/}xvdi
"V͐A!	Y]a=HcBFn̰3<eXX[u ,~ߴ[
Vt`Ji꼜IH>buشsoqɳqe;.#اXԥZ*ek85u3赇*OgZ؁倃j!4{._+U$(ɵGX1nV".ܧWJ>̫h/m1ͨ,1f*GhQ&;1AXP+"QjV`0	>B$vPOuϘI{bOaxtIE|Cǂ?6H7yZ]˧GXPN/pF$ikkGPFjK#Bf䓫6	LDfcgQը.'9Wu	|,R.eI''7x8ӺD'u&HKu*BvZzJ%n	%Eʧ?jar?I..f3Ô/e]HUYebhJq9 [WN;HLEE%⁛OPc׿Bly2P:x@B3X;ZLT&PW&rS?
ḨY~($rBZZwJw$m'rҳlqޠλA]}:+ì4R'3L(ʉ?'qJEGɎfJd)F%M^k}l"ߖؐe5oZ7;H!~L^c3{ѯl)F.>>SVԔ-2bEˬFI^.v~x5äDUs*)]婤
U1r.t`>	J 9'5+Ru'enZxqkQ̛+ 3	xVn6}n"u%4^Pכtډa;X@P$*$$'G~Y8i"5rI93gr]Ox B֥Q8vCIlo.y2[TPb].NQ:pvI~k'i/^>CD:;OB)E?Sm-s!6gA̸U4c:eh|J)Prs{s<;pf3>GCJ@V2M !WFiT޾kYz!^T#wzeq{b̳šEa1cK!(Bjw,C%RshU<vMmv:%}xʧ+YDCLG'(Z3naLVpK.
EKX^иbVx{؛/h2Zxpv1 2ٵI_Gc-۵kQI,Li4OX
MYYndtn_F*E˒;bT	Gn\cC?
u_efPcARX5T֟eI 
~G^DSR8&l,QY#:W.-ؗXԌ 49Ec2"!/(↛3ːZ웤[mufs@<CkHZlwvFXS)̿є."VW43nlM%oت8LYRqW^>DY$Gkj)>3BlK LSISt	4}:P=eSL0wX{^^W,KZ^bw1tkqc GrJX]ވ.O0Ux*}gws4iGU⫆$flJWjE1:ðKF
,B>t6
1%ȶl. oӥab"O[JvVFi5Xt<X]&v]=+pG	b+Ͳ/KE.1uH)2r/l.fk췳յ6蕽|ޔ#`:JTh=FkJY_[af_k%J},Iʒ!%7Yh2C#}ƸyYdNnz' ^?[o<+m^7~*CY[^cMCa/n7œ`6XU{OC=lP;+=<x6h }0Nx+D㐬F\t֕>Mrjw2xUnHO1"RI!M!:@cPďNB{+ٻ:5n	BIOWdl7|3f:DI`Pa%x(#l'Bؐ&F]1FxM5vn^ڻRmY(ظI5ƛ.~ 0ڽ{ʪkS0E`AsjAۻʤ*0U5G\d0&#GЇ,7<qCjT8i>ߢlu]h
CI!ad
g->51hEdF#[BYsf14"BՄ4N.`T.#k_J#zb7&I͏UDD1{+KK2=6cyD2C1	_`m@)ΫW/xDeHvc"(֪tK
$]ZƁآT1x$68NhsOR0}s29f73zfzz&<BF$Vs@:Aq`aFSNaE]@&%e?lk<+Wk{^kiSUX#PMk=wLRB{&ӣ[$"BMK5 :xqV
4K0b'#釽{jl&Y@zH*My!Rޯ/&ׇ7o4Z䮴M@pUDCJ?{-_7ozIoߕo`^x{a0Ya	d6Xm߼`˹7^Rn	gW:Z6}ƩiXoxX_o_` fw[.S[n-17)T7*rm?K?HgHɒl+8~I$7!OO?;`2Y0"Q)@(k}.E¥>-[z]oNU<hqݕͳϜc7BI]w|wp>-,A \R|	q<:
'Y.#~Hse)
ii
/?ȸo5u؇sap8,1A,RicZ(Ds%+YTAUR&wZ崽۾cYɝ̈́'Kq"GVfrVҀw:!a/஽ξg89u{պ5_br9Y2amV!xU*!9T$NUBd,JBgXrАV!J}+)7plu؏'Z{[#iZ|~1-P)u@x~Ex/M)h!E1A[X>x˯!~(g0\!jK-k'/ZN%4jDI,YZf(2$ #R~
3qCXD:I[ڦ%v[%$X	#,XU$NkMVx GEδ-,ZuN+&4pxwaZDXNob;Je1}?Eq4qH6߿\UYpK,~[m)aqѮ?΂qV G
5.6RɗB
+Xm.\Dׄ.T-ke|?I.^^{J9涪uk<fk~ʂd@INxˈw=U`Bx:n%qh/3ll3W+}\>5ibŁ/%<F}́Vhk#7EwI|9yLwH{>^v?=	ƂcǦUv&ٮ9(;r]-i;7[J?~D&'MNtBI 슓zM&"z?r{5I3'4P}5[91py$4Drgܗ̺Ӝ1&e:ȂA$`
Õkx N_<UΒPpֽjUUI	^p#6I|r<Q<u@сN1PBڊ޹We]W|Z[Q~%"b.G|ϒ9mBD&mF}^/J[yq//e|j_Φu+6گsA7oO?Er_Gs68*5~q )<):t&B+*fspO.&;Y,L
RL#O*Mu=+'"PFܥȕL&~Yj5/ܒ㸲S	Fa4#j,
6'9f0bu'(ZRktԨ6S.<sniEHV=m!qͬg0m0CtHLu,ctU6q(|"Wmӵ^	MARrVF894\]ţ$Gd:
nyĭ6lk,ƥsR%_+|;:&_뜎eBXTk2XfLhYfK.#AlXDxyl~>zԥD/3ta'uM݊ R9!	ÌH_b	6+w#T3\<{Rm_jC}:{^D@ww-Yև=TYN(c~1RCkY7֯%i|׌VMEۛFtMJԙ͖SWMF-L$,eu ՘ݤ(5__sr 8 -x}ksF*Uʦ$ؖwdYNT+?J$2)Db ee6?yuF$e+
kw"@?N9}No?'i1NiU"lml;;Q>ʊ:KHYdQg?ٹ^ eu3*7U~yl_5)p?/I}3U2L݂}iE:M/:y/v5/+zH9IΪxۀULi ,.q}?d4/._&Hg|<K2(Ocɿ8+,FU;,~ZLc OnQ'm''# EV|,?ïMS.	a?|	L;IΞ8<L1.Y!hnY}qtV|Gg'{ocMQ:9?cx?I  {ǣ?_T9g?'PtzYVys5衧W?%JϞOӫN"gi63(g橲 u[FD0x'&iTeMTxf?ijE!OwgOn'(ROM2*,Ion0,^ee5Ϊn*@k h_ӛ$.gY``8)lm̒\4AqԻ@꭯9gWhCEF0{gPшə*`̀^`,gaLNYUi:qó>>ݡ/Adt3\q&|P򆟇3*3$ͧEb7$k5
vf87|&{\bkZYDp!W`r<lCy2gyyIcNE:ipyY4O,)hi
_ڗIm3fWb0ޢN GqӝW4Myբ/	`l(R֝[!׀BI6HL4{M1hB>,osKFKaև+B_=KNRmq*P!3Οkΐv.t~T/QW7s t`T0TlUy^ר\Lǖ5U,oMxه-fgsN@a FV;N|H~S7̒wEzFg;)*y]/fsB.~nb?HӳA|*nC^7`?n4+?C
H|B.h<]LiIfR3@IC#M)t\&S;g/'΋?۪)OZ 3a]U
Mɨ"p#DtD:-/]@hQS&7!>BM%b ~vi)Q+#׸#''^e9*PO*}4b1KiHGJ:}0dS8lp?wSp_, EwbZ\>3>(&œpA@؋QΨyxO OyxQ2kNIww( C;dݤ'}x3[rjz=1/EiZi5ɽM'onFf>vX5넞0o!tf9 q &ۛ2#`k@I>
'vb#:w飰f!Ftz3ھNoQ6WJٵ;?-2 x0lNw7]{̕~8tM(G2Xx!t% |je".HUe]oiJ;yIqaM\t va:F>,FvcYI3S$h3Z42aX4w(,Mܙ Q	6#<4 %/7L|> v xNΛ=^VM.;]Z\IE1w zlw}&Gz`38MLΟ? '0%z|ܿF#'atO{QgSyTO(뎯0+w/;?wЉ3?׼kM]JiexOd::bn]GC8gx[[S}tM .,;2ڃe4vݛpDp7@[{xo." RX(Iy, 
Jg("CT3LVsuxn|33=KZ8cL?I:Ee{Of'Ow2 Αٖ|bKƬ~V`V'$FI͊ʟN=bkTz_ƥ=	ldrQjnhۋW򴌨B|0#vm^/q^p_|)?6k3^1ePzQr70>w>2śOVhJ09S\^/=ϭ(اc4p볣'9;wxtv|.!t/r2_8l9ϊl<0$=ZjE2G06[g;$Q8lpXM(Qv~aI6Ў6]4׾@NTj*f7x>lӸgDo7,+Ggvhcr>ў:[kâ37W,BA^,G?ʹ E!a3.ՔB2:4\)9_)2Nj[vmÈ4谏YMmC$EݭxIaLo:e/w@_x[m/nGrBo6-g-^V :ڼ@_` TG~?u'
fTc|MB:K0 R׫hxTG}NV{]شM<-,D)p<l虿Pttħw8)ś??عxlOIc-&9}N99G.gA~<]ɚ䪜)Q/Ȧ!k%.Q2f
!.n(Z7_Ƀd ;xKm9!%Me-\2i>f('hݴ\}zS~yFa7R'G=mu}kC r(:srr@</zZU)r3x9xE:Pa=F` ʒz:[Kxeᝆ=Q"up2$?IBOM)c
@yyl+ 0IRrH\K&~)'1(hÕWs$g!Ù]p%԰1~JJ$)/V2+D\Heʄx՝)
!&NwM`S88sFMOOx/1usl'{T8'^8[+{t=HֻA1ev1:Cԃ(. .;
ϭ<&3cs\C^7-MP8mR	1oۧ1w'D@:ዃ6<&r
#ΣfrnK$TQw2Hk`%_qWu#TDci_g8Ĥo3`.=9 BD]`"ld7Z`n+o5ʁ,F M2ID;>[<>xs58<>?54.ﭗo_z8?y{g8_n8DD0V@eC|*V? i?%</Vt$Ǉ%Y}fx#p=m,3Q"рX8p5Y;xC.(I0UO20K+@[QJʆ7OODv@P<&>%xn\dyQ1(dEipU>q,PexK'Q;iNr9@
<iG#B'>LR0C;o?͋Z]ߔ_"fhɫC>[̒ؠW^R-8#W[~#wZ#.:ib՘s2r,_yOF<izIHmypfe_<\c0fttR:DOcvZUJgX	|můt]ὣ+DL`c(dܐ/YPUNyE/c o^9yt9Z{U۫Kn^ E^ \=2ަ8Cq@U:&74^ݻ׾sʿ=o$l=ԨfHL'F[g"	DA:#m];wo<GO[2^-TrD6=RJISmpz3Ztz66dgH<͛x՚xniZ3d+Hi>$iD!!H>4xp7ă<x 6Qh EWa槽~?W5}6&w@Q	[ɦpD8nDWW$|>8;=FeyOc-^5giZy94a=k.xUoj Uefd+fvn.H^B5TmB_Nmps9~]\${-{CyXoR̾j_m=v(t-ޠ1>eEM]aat.m*η{LGueZaRkb(S83(^c4Qg9z:3x"(4[39YC66fqX``r;UȌ(#KVƺ!Y=%'&&`k|lidἳ|CϹԝ:$AV7*$y1AO*#/t7ǧ>Kt`Jm09¼rZ*mw=	PS-JT!zR<ZwjS3ݳu3Ur,f5TY\:Y\ȭor1S鏗^H
j^-x@CX\67aXaJs'/'S:DD$wUB@M<n,9jiU|2LY4 tZ\ o X1Q<jz9a>Lsvat({|)E,g$Iĉ:Ś.293S('ڐ-+
(`ay-TbanG?:5sYc76i-d9H o=rlLaUc-SuEOdK9d֣W9:@b(A`K"IZNx='Eŝp#To(8fCՉ#Fr ~QX;F	<	$C@L;hZWb\t2*r-N. B=òd!vP[-4'S4+f	JNsMͤ`u)IۗӜ,
*cb&!Ke`S[0 DT&QvC֩&xkVVF{[U>WIj!_duL4RZPTrCp|jS)KaNc4zF*mƛj|57pٔXfNCI9J]JJJ>2$BWZkӻ+ ^?8~kMx%a27NfiޱгÄQ["x^jD^aܲcNs4;dd,Go߼=x}ӃAkCPo!xzA`M-IύTG%/du5Horл#V;I\\=$7OUAcHMYq΅e7eZΈJ*.>I*4l"q2H![hT^pDdԅo!jjdO+zӳl2Ak73C࣡aa,^l<b]1v>Ѣ"6[LYpxT4(f21?ݲ]Uʭ%a*}+XSL[2SDA36EX{MhFO*(n\(" qpaaEXuѫ>Li։Y4E[CUWO1$"lN+hq X>ThTΈj'`nq8bIX=)W(	-WGAqӏjC
	cZ#i(>'sn<Z{MwrfScN,4$˨u/Y،`l$J6XѴމC)$TTrgb8S0Eջy[(*r6z&yb+btjBv25MZߖ܆]DBnXlrW뢧uL>^󘎆]'38aATm@kEƈ=%Vo]L;:Ym?gUVRHw$Z^VjWTnqMR.0g,̌V76=o+h))V.RIz&wټ18͚EnR±\7U*;V~-$3PئLR.ƱuKg,Ǣ eiob5~e䘏B4Ő82?a ʩQ(js&xjo2*ڏ,l\L @z4&օ\se=6['~t1/a'Ck3`vQۉ:*b
Y2\q	l3:+
N0,VRr$&@n}u%1XIܷ6V1gؖ 4߿S*k8L/kEmOc,hPee\{_9{k7C(zJ^}CʿEYC"@z>M9M'oTZqrƳƊiCDڗnHwbV;kmyoԠ[DIWPuT.B$_2 Zp^y}ԉ
-#3СynZPD΋2@v#q-|}ƌ[VnRuII-P3ֲ7g:noE|C嗘|y	\XFqO`T{Jl-$#W_sa#7>4u>YM>5#^@bntWVOrNQjo%֏Z)̬ݘznb~;6␛lG&n :B݂o2$A)'S|c06K `ᘊ-ޥ-0!djFS;HsՉQa7I}"ñl$ۄDq;jBYuXV7w\KtK08i>$$uF"8ХdSlƜ`;$44Q3Ŷg;H|A'էLLn$eSrk,t],rNk)ޱ:(qr;{1s7>r3\Nx?k:8V@AmHVel~ϛa~oloUkv4=Ze4ÍvjG:x,=2v8Ih<#ދ+3̑?2*V*0Fz1JP`34b>k_c,՛*2ơ	^H:mo1x _?6yevP4ɩad!{o#}\æB8@R.$	ON)qQKcDq$Ey&1ͲtYn.UƂSq[XX#4h@X(Ƒ␇i:[1B آQ֦(=lnְF$\Jt`yqjp\[
#~= 2@{j?q~cJQ
S5+d#"F性IxSuʮWq2T/زu *_5i^_yڳKf'w8:\;BGeF)e,cy0bAFwl~`vcg耡;CGz 5ld]i21YX|<tc̜$P#"#.,5#M̨sk=TfV>.3
l:=t\`{͘L	8HE!	7A?uOoZNoF_^F_.ǷId/r.ѝLRG@q愩r!-RE\0<qlXh~fy5ʶBV崢9a]M
~vbT|K|u}P]JVn_Vyq,Gf֥	>IsJBw~,247ɻڠdcq1|?'h<ƭosc>ll!][ >o8-*	:.)eV`IT*P9,}M>%6Р۾w#dҿ~k.+cV[l^J9FWQwvђN>Z_&rv LR[rM{(X2$ķ0tʠVX.&oV.>ɭş37ksn`*-O
nKҗLJd>IO¾~R1hM(vO?2zgoN	5ruIJ;	2Htcv
-!I':V)y<DB3~X5"y]12i+Z~\!=yX^زz]v?I;TYfFx\\6P"Q]+g-[ɉPno jA+dsβ<).K15E_!rKZlv0SN&΢p6r&vM1{3$)TfX%c\<_3T$:iB#7)L _d띊lHk5pb` #MmN͡r\)FVt=c=\L:Y,~)k|FQXrLšI<˳:$-GEւ\9
u ꚬxwILK_q̠T6q5TTEJ7" #=Om1ϵ~.#a^ΑIY)vӳoz*Hw^Eye@b,w0ƊP&Q|P8*Llk|O볌ډ.xCg:ŹPq_P'0KauhznVn%y[s8X?:v"N!2CK&֩v6j[S4C80y-"~[0GwqQ9);HT.0LBpyƿ!֮SӅ=T0{%V ,hS+kpm/722k/0)XhicR4ySL]Rjo\saI'x_q `*H(9k-
ofXj@+F<d+Y6L?McG߰Z;3Ldp"U6vsnJ㹖Ҟ^/.f&U.m?KD*$`O1KRبф7͂B=d@a4Ci$bNazr[/WBIio@n.(93}-_ndq%E#\PRP?{2 ,B6EGq2+{N4tQ,LJi<R%J*Riϟ膷C5]aQIIE:|;2椎v%F`S"Pg\ƻU|:npWQ	lW#E.H+i,D 䉿lT 367t6{Z"k¯N='`ZYcW̎*0rҴb|%=)`^~Y_b"#BNF1Oír9`Ōb"!d ܶ0[G	Uz	;WX[A&*GIScE_i1!aIan҄ixQO>ܶfܰMG[c?X_1KƦ yJ
lZd`3 !;-/JnF6/83K6ūgɭDd71%W7r᜞iMAt; in^
Y4&[Fn%>%ly6ze3fpi3uMm:Af/^QPW6lc3dwV
Qf{\K~P+Y^;j$LӻS;#CPUacQO\fh( .\P EoKCnq u,S9'uܮo +gt'ޖB2L_9}]$c1!`[մq\d7JK{/~ݢ.<)$j$ /iVgR>ƟBʮ
nVٜH)4
c+,d%<uE)R*9X'8<b-ڸ4ȣ]0 *볣!|َ:݁|t{7M=!ٰrXv=v$96ѹZP1Z˺5k#YoeښORU.uM(%qNK}/&{5D,%f4]`i.%:W׿(._d1_ҍK"
fg{#ϽC;YF4ڌk䛯_<gOPp[3ᕍͥSFC/Vua9zqNT+9" U$[g R@Ss?=ؕlإLT#<53cB	NGN'Ylcz'N7vwF*fGzu[@QA:3"޳Y<LZIP#'D,M/+]Yw"v8U)o,CPĭED?Z_meEQ<ǚnR>Bxi`]˻wW-V?﨏!لB&^4Mlq4;;ZV;NEtꝦƳoOwRqR0Y~).+K8j&{_m?Hz\</QyAmai{^^UVëԈY\rOgus3\2[ý`;1U "eJ&`URϬ*"j~fY7\3zHCaC (֮GGF`۽TYhE/b:B: k%^=ײx\[S*ɖT-\NXA;"RΠ'(5Y2*ʛ8-jmƷ7.pL^W0ەW+/<50pV1F`Zdת9-608inW)	NMӪ,9`]ymRuKtV^nnsEcZK
gUͩK1V|b%<MNmXh1I# <΂ ~A3Yq>Σ᷽ΉCW[O".ER=H&9"inrɬ;M[UmXp_٦{>HCS嵪DJRdm˕Z_#@t+1]8'veԟu)OniR+rjNJ8_QLP~ůdc=_4} ~zL6&ӣ&b;We~Gnk6ZW|W^SAʎawԭ5ru=[ePQ["&ٙZf3u!p1IA8dEǻ{z4K*2ŬSD`C-pqt-@5'5C8o"'AjhdcHU&,$\KnE"߃8ー4	{'̒fE*³"syxH'rQ7UՏ/^zp<-F&S:8b5t衸r;@!<%>o׏2Y.{(tM@GÏOw/HC%,B8rސ#yf<WB~gPGO|Kc.؏>pWӹBC@:4ccy[j(tVoln"*1-;u'<_j8D@uoU3r925lp12-"=!-L?ߑv,
o]qloT6#xWlU[p]J|qb5n-wcӀ}h.2OZ)S-Q!Q#jH#Q'Iiĕ/Cӻ{?]YW(23arݲ#᠟*LLoӸgiP{/8+z)N$;OWmdmxSf<f`V5S!mѨ%\	حH][ǿGeoMIʓն${yKڿjG&G泼"G5ڮL[[kK0|Cn]٪Mh}`<!md=\>Xe!%65Rj4wbL(TN+߾S7FvUmhrgNFn"z4N45#R2O`'ƊcL|0s~	`a@K&-GSsYtwcVr8F?jJpeSՕe/˼;&X!eC#mVg)͋H:nQ|}[3FZpC |@dX^"HȳՃnX1.bA9N\!a'wB7Խy_˷*qv~xttg^)渍ah^BʊQBt2gJ&d(Չ@iRxqE
F3@xXQ#P3˫R_Bj^7wN>'(^Ğ҉\6
Xi"xӑ4G`\>B́8i?dcdBԼ-l{}pvzˡAA$[Q>8~\ @^9|5@=FZxa:ݹTy^sJm6Acڽu;nOM5@&V9$Lf^i$69&Cxm]ѻgvJ	guo<)=w$:l4.Ŏ>1=0Wxigl/Ū+:mp07!*RSW5cT`WQ7~	?EmdJ@֒,IE,L	^?_Q_E>p~->"ܡ\<^M@J(:,ࢀ
r	 f?hBJU =\':
")1$rϥ+F'{~cLJvsKiA|w;a}]7\T.9C늙`=9D+oEAÖ@+#6S:"sY7%S^unkYb~z#wrE).xl;0`dr5@CnTb{Xy T͆'V.Ze0P<;kn=X8ऱ0W,Ty夒x<k*6Φ2`yEݓ\GKDs@>KH7x%޸E	O}~ˑ?!n=d,s\Ι5'H$瞲⾺(8}uA@VunE$FE:ۋ=79s㵸c=(ED}LuDYЉr|o@vW~K)a!
Jޏ]NeV4|⫧;C1yngG iUa#sujHUΗKfX&7	6(^h1`/
JR͆6;e-qrU}PٻDvc}vꘀA,8[PNqQ!0n+=բXמWLb+&p _kK)6WTt4}j)+}kӐ j$:/xy,M Cq=ijwM`{}B&8);;cvy|'ít~uc[Vp
>l2+9|]{ԑl*ґYe#a/g28!/C2IOqI%kʻEXvqd9L*0P̥+p,~'&CXUPB=Ium4U=]n۠+Y!]f?F[ڋːQl"tyws8(P	1L\N
aa':(uu \UfLp Dr9%nE/
OI|4k18]+Skٳ~@TZd?J-.|Zq0 o_T!P`Q8w<I4|0hd@k0fSFq3I~,nܿ'uxg$ Y`%6UFtCP/߿gb.uGrx%t$Uu6tg2O3sj۱D:wU/wpU|) =Y,{z4W"IP{'X׭CW[CW:6,+sc"[EX!QP\;6kYh#:=S_T'AgA:Lvz^GcY:=#2|<.1-
l˔eJr-Z}eWҹF[W٦ߞ~7( dK^56ۺ$S7Iŝ;4cP݅Kō]zyמmNA?//ڀ=\O˰a=d0J"4Y`y u~-D݋@]sYvNp_GzdR!"/ߥny^Khܡҏx#Ǳ)hz֩YU}(XLB_#8y*r3Bpb^1|y1'5.{&6n8
qxJ"xBo|'_قfMw⥹}e9uc>)0\_ETTΓ`79]JK-t%v{ 8Z<cwvJ)!Yoflߜano6Zo]JԉA33U\*L]+0]]gaC*I{V3UU[F`E7Z+~)W[xq]&t88юBDJMZ;AE?*y٩}BJM+˒@2E{ߥeQW,:O`!TXj^,ߌX2__A/k]_$ٔ(ܯ&>{ds~Jjf>+rMmhأG/as*"n/<w1XDUvuFpn|
PuTVjqFUf]g\n%^!^\,`VjbZp7RW׎9AO>vx.n4UQ.IVpMXyfnzcW#``X̤Jt<]550٧ /Eªm;ew8jGpO 1DG]ڲj>*E)ƅ6]ơjĞƲh_ڪ4dTi},R^=*̱$Y.շ\gRRV!S_koCխ,7i!CRmW=0|@HU[b`*>>ۍ}]P!Aw{HӘz L[ZYWwz\s=Gl?n*J vMjV{ٳ/	,v0,i0mz//HβB~^;@fN]2'`/(M\f2i5Ӥ'9yᝑ}ꃁAE, a-˃{#"!hcNKB춍H"/Yc[2w+(`V۰,PchcbѸ&^=&'H-Bxexv䶒ܠT=`Ef,xxUE-/٘R/qQ ٭|-|ʭxskV=-nzKOWTi}"-s$ 6Y` 6yõ 5Yk.6Oo&ў .1~3o5OC!խ+![( |oE>o	Xq/(}1 c8<H+3PJ7qPFM	2.f,f(VyQr?V3RԴe.Mm-h0]tW1ɔPe4MsjW_]AֈMGPKD>5R2 yyEWUev/trhbxtƑ CڣK:|dyo`(ѦAuQHV>EW FD	L`d}XYmL	h<s$,dtV!Zػ#Ȥ^74!=R2ٻij,`*Tmƅ@<cTTKsQ4g إǆ/\˵TnTOgbbR8.N L,>ݙ+TC뉤Ot1.^wZ1n9:_
0Vj{t/*ݢ=ԎЊ6>agmv
mFwSfG8oI/j2
uf&eg$nV#si' ɄȃvoE"]9xSl<q7@y98dc7Ud3ƹ:R\oL1p88\#e-Q'5_yix$r^RVq^??yt[׌zܦ4ߜ-z ]m)m(x߻\35GFSzIY=4q;Ɔutjffnk|=3927KX.:{G>bk.%^a5[XA)Y-oU]Pؒ]8xkq63WgmաH%E;\~/`yðՄ*ba*-blcq흜l1zM{[ث2ZeTĈð1Fp]<c÷@H>F3 ϐQ2MǺApiX-N,I~^EVL(Tc2\q<B)j=ѯs룞F&Y[LBHQ*V,!V#LQkpzȌA+{ͧOϽ~B/Y-nK}Ac|68|"JE7+T.j?g<K=,a
)_Rȍx{ݖK&@ggQV6$aN&c=j//q#Tێfum5qc4F=X$$O)Ã]LiLcMeՈq	3[٣r5aR:IBӑܟoQ2`S"[FtZI!"~Yܭ:V"c;zu:Krõ,cXz&1j纛{G(tMil?fK+N='5_5uvmZ<0G]^Kj-6=wlU-*r2q&OJz8NUXktg1PơW{ʦOWVAoROUgmogz'1yV4M܍߯ϫNv}$+f$B/MQYj :;G3!	gI]VRL3̃0X !-\{wy3!:~4+p{I Uˡ'٤mnЩ=&$6YYq_NoFlyr7 QI!
V<(oL_.St߶$֥{|Wrn'	bo˥;C.j&#~09ұyL=`{PR>|k-
DRP8=X)3ƨ!kPӒ@7'2إ6pfA$e­~p=I)qT8]Spu2"%TPDH}&8(2Pg`1~2Tp8τȚċ"GOrdrۛϡ}A\II8OӴ>ߣ!v)?|ѽx]X~o{3k{+l^L֕6l/EY3WXZt@>^f=FGYl9_pJ7窼`eK1.汢.pMl$v鞳by x['f~䣚 `>3ڮȶ?)r+O	gr!}lUeJjӗre*toel}	I5h+M;}O0G^dLzʾV(zO]{o݅D>6<f)xֻthG.܍zi>3<(9
$`Џ(iu$EH^"ǿ{wnl6BnrNmE`X7lyTBLRlJlWIDTyAbffyQ\,^No❚v?ؕm&oC玢Z|^:*=[RO2mwypM~6/VQ>N-vt^_YME]WoP[}q߹_ r1x<ioFq;A_ɶ-#n˰$@ȒŘ"i_*V|tb!cw_['4IPqE#NӰKb&s}8C*)Cs%(|-fEx{ww-@7˯wlYѝ l?j~ UfoKzP- XAgiRũTJ|,>0I%TR*ʨp}ճi$bttG_ ?Hä-Blb.cAh]1_8eܻ8]Ƈm Yd1rA4 h0S;\7"A]$NT("NEO,:抮x3E2/ßƧpp	w.V(a
?`^J\ 봈kq#gM~aѭ`Hg.WE^N0S#zإtp^8$a hN_]bod]b%\,Rb
#PKК
IVQ x).`%E&:G\ e8"S5Rh[ @hEE~ĕY!U[d! g| %,$K+ ]P^d"6x.ndjJEb7us	H0"Y
!J Lâ̖^9wY) ;LKMl$=@ +$9nc`{F,ČػxΔfDPuRHvWA.~]=蒽ˏ|c]2'YO(L6)I)@,"bfMցeБcbt.-R`(Ɓ׈ȃ8A>\3({m<XJ5s ˩rKQPbjoF #I )xZ:6>諢rVӌx(wJLT/HSSh7Y)A'y<V,!*V`d2_/Ij"YPJ:"o4PCآXIe%r6 7]FR$Hq6z254Bc$1 M&YoI@رQ$KuvJzhG.M 
	EbWoKj3E?s&+F#b{.n&2R!-)w1rDH"A0f5$B-/ ctu@;I|KC<H,l!9oT]$2  dXqUQ)Ą^u!¸r=B]B$Xgq
?̝՚'	u	lM(=KeI{*hi1@&`|&4Sg^UA2b"BP `1X:)tUwC/:t9jHOwbiE<[I9J|n>NS*(ѭ)
%f2$fTDY(1Eӳe|qr$-$.8!Ĕ2Vb!AUMLGSb2,#tQ+3SH`b)'8ۍr6ˮQ6c	Tj">2._QnXRhRjPc#TR
|`{	C-b9' j-\~<<A/{(?_ܾ}f|k;;=s*Ӻ٫wrvq|ܿc.lqEz!;FBJ@\3>p}&@9fJR8y <p\jRZpA wru+]eHd0_UYV$c!GVH%,u	,E6Y|XҦ[JYUu2}IL:!H/1Ps%UH)^YȺ\f·@÷UZWoqL`y#YmΙ&b Wi`6<?[bg׮sȶK,R̋uSy@vdL%NtE6y:e>+Sn@҅@uSH)̱y$ocEM4i	(aO4]YͲufdxä),7:fWgp$jy²dmd8]')TC2ʫY)*{u4nwZCC&A'[QFKMKzƢaod)wڀ(z8Ug`N~-u` `j$m!(|8j{.x\Jq	ڙHSOwQ6I<nyч#x1^I߿"T"Qz\i<t#n
\& ԷM=7gj4,SVpcV!*WղO燞~b.iy1=@n-kBx~5Ӊkzt~G7	MUQIǄG/^E&IL+ʦ#RP"h/LoG]0FeRk5g}<zb|58wQuL=A#DHn?m(Ď} )8&
[j/lf[-[1QVBHpk+vަ}ڈ7~'7Gaw
*X5kJP Vrpaٻ숳쭮zr2Vtrf䭩jOsw1+ s?yVP6Bg3:.#
SPEiWPA:o.kvfjP"wd\7eT+!qDzasKzi7A	#_DOZl{@ιEu#ߚASeCة?^ֆ/wI92#nnآ%"v%	,]C|Fi] 9hF{D2*,y3nF LC+LʂSxfd[8 dYT[ΙL??`ԁl`g_SBmxDEAYNz@ o%$^б6\Uߡuv禽6p#_pbp9<x[D/F#ڥQwsm/9lfm[.W&U%Nu]9<:rEJpWTآh@{E?7)WIP@HF V/06-[96Ñl3w\uw{M^b5RJX׌9ڏ1YqTysg+a]hgQ[+IݑfJ6_v+$ȑ]FV[`wBEuIL @h>/'|,ebt6cP0,ŗ3+/PW@N%M̓ qp"Γw]`LFw1@'i#yx;=Jzǧ-&QmZip{@8
2:	I=DR! _VaKŝ%Df
`̶a*?qL8ɲ#H c36ϓC*SgN>.^I	G#%P<kU(4פ=W3`wofOtZ1XFζ՜V5kU.Mo]ԐCZ'Όγd3(΢8ohwk5@4Uv$E*W*z{snq)6ٲF0sHLJ5݋@iG."=BKtAWgi<N͓S󤕹,Ӧ^Asc*O3ܤ=/N/~P_v.Bu@75ħ*mEWk	d5TU:ZsQ(+W=Xk8ò,ݵq5ǹ\m0=ɡ8:#7(Яz#p{ʲyg_t_X<٠wx6\ars5:5;uJ]^_p!vU?ƊcW7|."`fںS8)QPwQ8`ztS&<UxN<iTIGCHʳHluǚʷʚ- o$'NCpZ$A^w^NWip9As$&>0Tmf<sGolNR餓sԥcֶ3(9Jat{Yx@Db漒FCʏW|mC@rCnSx [#Ռg2HڶqJ!\$r,0B+QXݖ<ـI2@AԩV^qd2m@v 0=4G4]4][Ep?w<Zc=>6k_oÕuvah&-{*mpav[cM4Wso+)\ͨ6ɚ:xF;#_ڠS'W&;DKptlN,|nqXΚ_ϩM6c#O2:U9rx>8NaLo[u}?'1>]Xpᇉ\fiv]،\>g#16!}+lO +*beKU1;X;>礇oߨ7?)voH{C5hU>ս-2{xΏES/6wMWY4>]x=fn(yE~K=02Gz3G߮nЅ
1moT0I{ 2ACs+_[ݭ7kY1'FOxU!0jz3y:1YM/BĪ|i@^zcI0@>KvzϻxwyORCoBXYBxlK ܴϼ<GӨ#BQNV?	1bE0d:7/lj0;{4UKOnZE}B eIC2Dڈ1/ӬմZj浘|g`5M2сjS	$`7P󿼷tNN՚T~SeRH	ֳsLDI^qM`rZr鞃kk0+/-|Ui2TjBRahի&x:q?VȢU&O_\5ؖ
>},C&y,u/jve? 7/pTy&;38E];ջpxz*xu¨ǽ!eY	ySQfQJ9܌UU~td}t1fh5Lqlr~Gb/k]U7#{S<J5j?^uYvp
qTjSY~&~yق~Ed4Zԣސ
aFi/eqObIەhī';o.uSvW%}[@QS4cpm7qz"1Cs\%Fͮ|JdƸ]Jct2\Ivqb$;K7!D Y,ANgK Q;-h΋pa<a["̶f2wݚ~DC49ԛPxpQ)+T)|NxdO84>0[c6}4: ָif1I6@~/#H\\5|CN4jFMRDymK+ngIt޵FO95nyL%2-xМ9l[rrOWKg_9H/V%:!X?^(PT!z(CP#ohIޭ1M\)r-ƙ߻&Kw3=nO/ghk6Vws۪u3)[=l_Э}M%VcVɌ5U^{7rPP4h(1
S|i<F7m֙|tv~t>ZJfNpmFs*Gďzڎ^01
rUk!p+UO%OϏh0:?//]TVAz.BqC3[j2?Tk@e^sP?qHt6dd{ênwQ嘫Q^g\;bIYC|h1[]VR7YtʯuлxI_k{XS3FE3W#E_Sf[vh\_=;nIlTǿx=oփfg6{xB parseerr.h"

>_ 3=+<lX}C%jx% W 3=+<lXAx{q7gj6Vcs9 (-xe1o@uQ R!
#tHDI~=ƫwY|nM2(5?A ףɧ_L+W䓟׳c{gqж%kz @kX`A@3bG[C0bCW!{b6]RuH]!#O^f<S|k4Zb/p$g޿Xϳt){AdUƸ*,kr4hI{PY	˭,Ʉ!;]Vf8A˃0xoψ^y/*:,_9)U%u*hK9%]*#6?&-atElo7rlZ
)ނy?~(KyO_'x}ksǱwW?ab%ےeU  8*f	,ɍ]dsۯy΂ E;NP9lOOOOwOwOW~tfQ/8M&4A:ҋmuLⴈ4*TUPex}ssӭ@7˯'6Ou9'!D;Rj``phIF3*4.
uM_arz%`2`՛)-i\xu~ٓ\R{hdVMc&DޮE\tׂ/㴚ezEOg罓A3*-ʐt
+xxf|x|7oL.Yþ_h}D9/^6<2KȣS.\MCIz.&aK۫o]#@DnǑ_ŹLٴPE5VQ!L
x8^ؗB|<"SYJL{x<^).'e22JK/A(ynZ͓,)b TUg1pBH$?rU£akAsFȪHC=@&	1^gb2)N^Qy5c('zۢ]5
cg)|
2A`48loOoOaa>fh[0ER&Ӣ1t,PAl	n8 R8KH{sЦƽ d$YK##m&U)L1~Ubư`L06 hIp~xTCn_^  ~.T΅-MY)XeUcl:ܘG3} BdpYQhmC}6꼊dq:|I |gtntp|xip[G`H3ۖpK(hEDpLrZM`AQY	 /fY[#l'$*H֢ f@NL,J*6֮vu"9BC@[[o*˓(uh6x|!y6wWGG7`4L|RQrNdVEy |.A%1	Y+*HB+Ec]k9u12,y6̀ M7X j,/5LLk#H7lZ#p[[SԡѤ#`Dt K,z5h!D嶴 l*ik&fwkt<)
b+. Cooxg{,*\ʜ("*^d*]Yhv_Rp;IF}lQq9YFt:\jM/gɤM|d%4V[3{p 춫޸h@MLk{e{"*{M|b2_$lJ1ϊRPqvp>4 .nͬ8_ pMf;,-?FBOOoYKwMwn9dz0\kyx-nް@b

F1C{G'GzD^Ch.;"AYՔ/J`{D+4)jQ	.3E
A@U!1yYFQX!Yy*M),(rx
m~ۦhvU׈T7mX@X<d䀓P̖P	Bɮ"V]Ԥl]D訛xf3/g+O]WŚfn@$E|N/_<{N.jί?o2x|c6_rz:fl؀34%H4+1֢ZY4,:u-o1CFs;]x[Unf؏d1)Soņ$ƚq9a;
<%ۄtX}h^z@2P9}<ҟKP?%+6Ri4nFQECK̼m7)
Q	H:ѥbdzw!&@J51"ՉZh뒦1~@=ؚ^B+=Xq`=E3W(߬JdK!ًEǰ0[fcEө6JD:e`Sw&P9f۔-@h1C(s03\|bŋRmT_{u<V"]GJrHNvKqbʄx}^i|cEXUS6k1i&hMww*]KK;q8
\jh-M+sNbQ0WLW%ӮCQ}/hǕ S.0l:W+UPa
Hft'2f@)D</CSCtj?	QV~CO?$0gI=>@@?>쟏Qo4?}Wޚ>Ю'  jKjkuꎴ58 .@G:*}f7m9( 3th=;Qa:Lt/'cm  ?z<סȀT,;K*+jU͋f4&C',:ou'*Դ)G+ໃX$6m89AƂ$؉yaF
H6Ėo/Ph8GC=:>i#3?uW7>&)YUn
R@Ll<O>o<>
̻Wd`OWf-zf0%cF,Ed꨸{2}miXڭPM4hr$ՖO2L߯T :HwfJx^Y
R8yQE'qRH#1%2[V,s/H>@0HRx(c4B|4w}qtpj x==ߎFgQuxt|1<哃~˛w˙\=-q.V:P{_p$XW	O\1sCOg=uУj'F{QU`Yh2*ʭbͧeABݱ;0Mi/b+e~8!˔yٵNj%=ős69Qّ
қҀD]㫌#*b$!a.<z:vЕW	7XY&g@lсLѸ|0{FߏO98ƧU`8?/o%X	g\_TkN	D2P_ix+*4gcPLbMuU81e*W&<>׋j!'WiVJTM6=x07>w@(Iy4 ϼ/`@Mv}^-ts˯cjd̐*&MHN~>=pZ_\+3ǊnN"&]&kTzGY2$qFEVkgQA\S[IT(L[yCdӛՅuD飫|rbJ]β90b11w3~5K復'/Iz+T|"i@'[H,A]_(kOT;/v}{NhQvS(@QIW!!qUsU]o9ih:4YB0qa{Pyw'HV*T/>HֵKm{JyQ8POybV#pd܌G}gLOW-ʮإ>.>[u!$?<4mW CɣXA#hAgŪxP͛A %	R vڑgu_%X"ְy랦nwXQ$ZF̥NcuxV%,.qDG?Qx?pPNr&>0\rŋab m0lS7;м	NV}C;p Z;Q	s"NB4ZͷNa,=C`*fž BCTm[w@`=~<;$7h6` NqXq$A17|V'[>u.TQλr4%N^CSN1@g$9( c-g'M!ŷ%w(%"/3ܮSҟe1ڛjOj}NzCTO*\>\3Q  %7|gXRb%<(Y82 *ӡ
NDf2{|ʮ-{Y<)
;E)Ռi`L*d\8|#<Thf$?B,:֔So35	k&g3|X-#3H>/.V681emLc.,in+Y5qw.t3"\XjYܭ#98;?N "2uQ$Zs~oRl1</z,@lߤڜ=;+gk
N;19>C4}1'%Rl;SM=3Zc8Ͼ!88Qd2&(ȩ V-Od?=1h:át6tpo#a	X[]pq5= ķ9?$Ùo5.jO1(opP)`Lg}*/]T+}feA=[.t")`X%bU1	:R5>:p	iÎ{<.{)27dۂ6YFFc@%rzK∉i.F&zb!]WyRL7 5ሊipU^	<ϚyMnnF)<G̣NpvM+9e_6:N5بLc:y[s	bZ%ΔPay9Y^uV)6Y˞?DgLII&i25SjL#~޺K}M&/:յ/~Eӌy$EQ*l#XgLnfChRmmd[Hp͑63s@Cj0mΝa:Up/nfegI "# W<~'a	]t>Hkl1L]_A[60׀ݰȗ6iߏl`~ox<K*v&	YdK=q:	Ox8@8-03g >:oxmΏ.3ݨ]Y(dY8DX}W*ٚq4E:A+HxO?Ny_y45m+"ifTȔo7|yts^z3+S+̻]ga@~̈Gx?959/eF_WPF(| S`tg+P'3hYƑjgdV|)j؄a9n?Z;x2ۡޓϖJˠw0ޤ/G0/_:l,nx*e~++;7kΪ4S,7reS=lNpJٽXR7/MEuYf#Ǘu>6- `oŒ;y ?::Z4],WvxBF+5Z9n)dB	U:A!5>,S/Yv`_cy
@0罇O5oE#ȉ1'JV$z[S%RzdZ	h* 3_RzJoB	SQ:7b_Xd/^DlǛo,C>f*-;׆q_GhRF=t?b%,,>߮`wsq3NgYIvkx6KƂjW2d_t[euթIh[32H3t/㹲XQZ5?"fB1n6a?U%}"@H%>+D
.XPB't#Nst k2-8	Pr*}kMZaihUiȣp紮wj1-AOxב!:5m!$&fGn% 5b	jzxf]A	]ݗR/@|le=/-VIX+Q;f)f[V!*<ͽ8e;Kg+<ba࿕->{j
ȼϰN㪪k.Sq|&"W&pI6S8C+W;;L\t8+ˬm.5OF`Ag)#)Ky1a>`tvv-%0YG"b8j'9ժ"x8US͜F0s6Zt`xg<E5gtdGaE8jU`bѻHr:!QMb:qmDy)Eo
0@٥k51U	a0/꨼0nin7z-[`wt#ѫ6\$W(Z̷vqp5i	..mDAl"L'`mKb~e4t?jǎpݫ₨WB}ֵ[%D6TCw
XK		K=&˧?eZLFܺ6 ֭yyS'[J4"\ǖ	hvا/3`56rA{lJ[*Fk}%? vSmv!?[7q ''4k zRDEVP_Zӓ~AoFr;꟝oCF(	5X;ci/5E;<#ɇ$R>;?eI]JO	&޵sfQv CSIx~r<wcĴv)/`O|fXX>2%h"Q)G6C4B{2-Վ2uRNJ/8qz>]	߽ߓaqrpfQZoFP{ԕGj<Lذq\|-;e*w4s!d^b7[_ɜWڸʬz\o+rir1Jپߠ#l[3'B:9ke	)pwF	&[SR)N3ghO`%뫖_#:8z6U:Kh{~냺k7;lxUw}%'[Uۋé9{JMT!*64]¤skR[}ˀmHQ\6mm"%/ű*!kFIA-7\D %UZ~\ү-FVʫQg14-3k,ά_`;%{mE/j~!q3#X܅~>v{SkWdYSLBFVس6Ec8+r2\iu
){m2,5Y>I5ͩZ46$:VM6P$%l;L,ۜD^ϏGGج>q@PguIH0Tb!YS>an\Єr>p㇉{*5s|-w|<<|fճΚ3<~'
ئ)sJ9u[q*0ci!ZL*T5El?;[ߠg4"@Kx9tx>yp|ؘǺ*z6z^ZΈU2e`Q2+{ɫX4/^ڧlsxrí#%m?~k8W$e}e#THM'	)#ҽS$xEB-llmLzVƥN{-0 ^-l%;jl7o<FX*D	ct?[x׺D3 ,Ng|ٕΜE_s	TDTr1'y{@FyOt]|48ꯌp>Y,0BoJ[VL%_·g=@Zo\&P00zPq;{kBA`T=G0[Z0\`*RD{#'^w9@Z04Q};;.ƹK[[7ܜ)qbTQ j=6RKEXGnJXXt@!+(Q!DsC}VK杚[ĳlgXuG8g3&VhS1i|)Okn)]݋ZýFn`㐻V>ia|[pd a9VXP-鱰7{ȳrx̲@ ?Ӵ%/sNp:Lt>(m4u=m|ٍ
qR*\mKdf,LfFihf+FwEV4oyALj0:pt<:pVE9:OGzp2:j-Ҽꙭk˩PQkiړ)t^x6lXIo6LHձ4G0Wro"Ul1Tםb}KimBO|IW	s^N)/pW^/U+U+լCU~nfL?ĝLg@Lk>'\jXtZFaNQiMv-j'X)nųº\mm>pf<wf-L"
IwF#=g|'eWCi*Pڙ4-q^b 9;uVy3hOc.Ivһl䂓иИWKIȿYf8eaw767sbtNn$dREzv'F-F`x;3c]/j[38Jqkp}tĕ3D	>М);;x[#%eykl	BxRJΰܴH^ZIHVrnț_gd rOk@Z7Zyw25?}RuT^do 2޾.c}ո$1ɼ>tJkS$B^o=|İu, THeJ}"u5+%ww*ū`RWPy& evAWf]ˆJ]VTS	X(4UJчHӌK@.aA	 fz4czJ-F[2Ą)	dk]G⣌f"JR9"PXGv)˯yI-uC68x#}Ԍ>@	
,3ddV;80~('DI,"o"SR*NU8,uע _W)0<X7y|ChL66IP.C!ܷv"3>r#)a۔ϜM>O6kE "<V<Ou	䑕*:JJuEZ]]Щ<͓ T#(kZ<ɧ}H;"b=IƳ,#|AO.%#6	ɧE`H4Yo^_{iR;t'E;{YTM|vJ~$ю7ܒCwFV]{VPl䣳,sjC ,8vèظeJ;4t!B˒!
H6͆xR,-)85oÏj
zq`<gXz7X'ڋsDK;:)BdrSTo'\v>!5˪}lVE{fm|dZ++L+ovAY!eQ^ج>~*^O3,ly7qʉ%trkA!~fnsJ~/}|.7H89R_w|KgC//	U.}g`/ɎH,I I} R'j!"䨺D.4tQ:ޱZc|y_Y&]J*̿&n=s'?>D'$	lYLdbE[Ɋrѧܭ !ơ&V sYӳ/:R'tGk3:\9a)z
C`֤>sPOߎÑS"Ok~EB%7
bV$n=ZoT75LJtۍ(ٵd:2
eSp/rwH"ČmSc]ʐ-9'
+a{$%yCWϣ7!	r)ثc</Ѫ7%ʤM@-0( kB(z©Uz.X c9M*0LX/rG\,t@bmhRXoM3WK1o-&c\Ps8LM6͛lv4+5FI`^P$)(_L1[j.j֋^P^-w<^lz=Bw_~RFvcoZo}{<."Fs悛QWUN`	WJ9mA/Aqe=(DYbΫOu6N6WOՓZt1i;шVUCayhР	AIH)t!eYACcPO;~72_aL]V'ims,CtoDҡ1kFVTqx>0mK^blM:Oaӎ(~.9Iӕ+]o24b7o=TnA|^;]$]sM,ߠk8O)57.KLBK΁B**uP|XA`<Ȝ/C%IbzYac)81ҕ]lveU3@r_k|ՂI(#uvҎ0.Oύ1є\mx:p	#[y[WESWRtAuS
	M}+o6#Me^Tyg`rcmZ&Kq +dꮀA,w	K.H&J{})Aۼ+,wz.!&oR	,]WXK\3MYk:|E1 ARͥ+A!|TQ42H6c2xdRۦq5"	dFbK~vQXѣ3-Ⲥ}vݸ-YWgY}|fk*Ml{`$9/kt`2ud"|tZXSAIWE!&OC	k	B=?uzYOʬSj23/\ɌZ)mJ!ҵ~j:ύ&zd
k<1_*V,srLnXCTEf!i
9DAHSeU/
@<d93G#er蚹jѨ/4|DPȳae1O GG6,/kܡ􅚀e{-qa[,Nwۙg`XkQml$Rnkd<К_Y_VǋISk-6UeL4kTl0kmr]	W<|4ta? 0	Xݓ%ON?gDiҿ
5ޖ{ZH5dY*,-C^ܶ
-<IḑZ8mҟ!VrN}Tx2~y&[]*fɡHʶknoh=Sԗ^G*1瘬*5)#WIk"IhTmWrGn&|Cm[~3%ZhOT|--m*lت:]NZoX7HX׸Pp{Gbì8W1ypū-K`xD)\` Ƣf]C]"Oy"8P-U\_;:#)8:FJ:Y7Tv=:E5fᲚ!\bbg͆G)t5U`W^F:/[.ŋm2Y~=MmΖ6Fly^L|
;B3"7Der;zՕkS")mVh+@V=	KuE71SSa^ƫ&v2kxAuC@y§[xCKNo@[.^\h/q4mtA&Iz.\C`}(}%ļB)xD~lxLh9~eS)mDG7Aܐ$yF!Vq֜^!0YkԖֵٚZ4
m07qcZlq=W!Ԡ.{PCetQp+:O.
颺.K߭\>Udp5"~CovxR(s;T
IuTyQ.@}W^?ǻ8!T>0}&>cM)H&]Xk7h-]/I}FLJ5bK99+$hzzzt]K/&sD$^J+{ѧxv}Ez\N?Owj睧;+y4T{FuTk8+>-{q[}dGlSvh/'.2q`"9A],ұs.'HRж$D޳Qox;=,J~7PpyLhgIo_o%+0?R#'ḉyCF#Q2nNy{4ҷ@ٜoZ]l:L-N6 Bb J6ފتM}"f1pB1Fh{Hd!IRMudM	kXmޟ_ةr.%P.ݬBݫ=2L'G4rܡNմ/LWp	53"7SD8"YЍr\,Ki"܍YrݹMsvMe}uhsdI&8{/o%&;IcAGa>zͬ;GH(8^(8hM!酾ŐJ`PE,8vB$3$]	%γomNoj{_ج)L]y}J.RXM!uCHcٱoUӱ &'?5?=x0|+>`x' 
AV82,#.<%1d9>ȽJxr0?U[;l߳ԡ(Z☢4OhYYRDi<λz/8q.归 H(cWcK@t7}ADcm-{m0FYQ-EX5;APi=,OOOP-G"XV M_6v2MV_C7{1-<QM'`C?"8e0{=w
li8c{G`XÃ)~Mhh,|]kՃ?k6av7[hww8گX`='?]g#xvElvjx/?;~G D_x-F-gʁ\;:`-gfpM!0ðRӯV=B|5Bo2]=njMWSރ	D<]DsVP".;FC /`l3MV[WV`z?#\f5?zspo\?lc6v?Qfh9FMtv@Uꂟs!Qh,~8Mǀ&r/;?y؇V2$!}cMaEvs[(cK tD:+}m5~ 0-[fV9`p:yђ~h=MaKtj?}Lq/?kI"]V[M$̐\F+֛eч/rR>n=8&/G%t<ڽ?L.f}"iw>CʐH!)X8[D6Iixx1N~4{qq`K¹nP0gh]X&`%"~	ư6O`n#<a8;z;XZxOG|־xjE?(>BmMF+di6(
B;{fpd=>[ 2(|W4d>`ϷQZm.y<dv88{6ltf[H'O-nkt
|`NQKhO%OCQ"XR(<kxT_5vDp`
zd:$}VmMWN~x \Y!<k`U
A#0܏e'\[Z(Fr՗c I4|`TtO@}z0Ϣ,r vK_ҶIh6\b @?"k$6Fm4{N%R#dvC9{y4Oaրi:P}$M`g69=L.t)m	JLf/1 yn۪7Wp+bo>߁}~a,!p  3$tSh3,$YHZJGL 0 `Zx Cc֏Up5
@ d+0y+Z9Ez.Lմbmo(#}#p>8$mp~~ ={n6w!xg[g!>l)qL@p4[-{$EaҙP>%8 ݕlWCe0
U5,齿i(Vj|Cp,QIyޗ@;ƻIB5|&8RZyk=Bxڝ.f8Ze6"8gmsq)cg$ `ZAf&V@bLBqml15F8S#̃@\5[vyK;cp6EinqxsX9O"p!
PA&'?LbBVNCDr\Q=zmeW/|gkrVf(XGrNi|%p2XNhEFS)C+	W-Ѳ|'_Q`F4rk9q.)3S03jdВ`Е8}Wz@Ͽt_T),X-|rQ=NiR_kv!pG<l35=|O&dd߷@Y*h#tf2v8<Vgw͞m6vUhs14 ohg4f4b0ja5fA0_U89Ҷ?ȝhw8mۀν/-C]2-oݮnDGVbUuJM XZ{{}ys8YWӻhA_Y[{̖.S\}n.nCF$~.~\#DG%>HPcER~FˉBo^TD0LȹE>0mNG4dC}Ssm_@k2i_0mic5 >D	(:U\l*$Z/R5ՐE\}ƟGns~g,Їwwv^&t;>[<pvU|mJrv]GIhG?h5($'Ɩ@&GDs&"#qC .`]a?X-Bus}_gP,C?U2<bFQsO=9L*Is#k[nL@F	~y6_;
G@Dg!S*)V΀*Uj@b01߉}F`쉤ha)2T0Cҩ~KI#9јk#d9wzT*JՔW_w6\T>ّpѣDHJ[>ZvS9)b5$83)̵Df@Z3^D"E:)D$VfYl+H<|ɎGhG+pjiЦQ`IE^Dl>ƁI}5꣣}ip?P?B2,'hZ}eZtOkMtb(Kܭ{G?'I D$!k+h#^}L5`a$~-Tvn>+srצ0Ҁ/ѷ,5?kŏ]щN|J7whγ떣nn_V&=Z`'sv6	FɎhhOixMaOAz1{% tD!{l^Es.aJbczgOw;{Ι ^Lxx^8%Єs6CmB^ŋ䨻9k~a:l-W5}R6͊u5?1K3L=CD^R%V$4Gx6jX mµ,H5bi	LbzG .2eE߱:O=ЌV降Ü)5}[dptQhZQvy(1u&H3`0 ,ŦXX;8%{]^^fObLϻm1zg{ui	K}`Vm)=}q4 왗qB6
{R}q7	JCŇqn4>I7CI$	ۢtBT1V=rwf7QēH[ѳP\l~%Uo!#pb9g'CËEwlp3ؠ#ur6oo:wq%(CC4g!eM_E:aeu%#a	(5"Zt`?-HTmC[fdL8ϙR ?ΚOwBBkp8	?*˿=nۘӽϓ+;ňeh~ذt3氮EpJkOߵG\&.@	3:
pQm˹ytQA#y{ё4V茖bp(gP1I֓vX Ҍr]VdX?{SO{co<[nDιVT`ʜ e'<SFK, U(Xc{-7kƝ|ơV^LX-+[Ru781P-g wbsOcj}5xp	WFfjk5!lؙ뷲\sДpE=]Tb_kOK(( 
oVQی)6ܳ>[UyG=GrYΆ`*'G0md yYnEB0ƨffhwN:ԃ.jDC1'<癎/˒Bxnq1Z`:p[.jy蚑L.ERp+1OQD9dqĿ&q_*2sSCJ؀q_J[-i5cQFXϛi)E-yc!H#Ɲ-ٲA+q-9=m+ިlT14&ѧ1G7sb, if0&)CM K[l۹>ŵSϖ{2jŜ"v/Rj,7nPnĿ=?Й;`g@#Wc]Zf#V8.jyYlTŋ	&,Ea&x}&,nQ;ξ|v?Nn(pqw~}O#(`ƊiW`0Vavw1	3Hgxӹ2hKc|üSGz3iy'7t)b0n<$	ň;>cTAѹІQk^ZF0xUH`6c&x"Ȧ0tMBa3PgJU*!ۑI
ޏ1Fk+# 9,Z;G!kywD>)Z1eu՟80GAp#BC	1-섌2y\.y51))cG0]z?|
~{S\6RT
  GYO"$C%f,_sht_Yfh):ojnD>W.Hu5Ӵek Ynh>9&ʔ<Mӫ.տJ^EK79ƫ﷐X<%ÕKy`F$Xy,+JkİA*jHՏ!q;(z?.Lhg(np?$̃fd#0>XH ٔq⭐0 <8Goj;;b_	,w_4Mj9)c +Q_	R$ɒ^E)]!*؋Ʉ 3dhlMTUwqgtY}.$t9)mU2auw[WǍ?]bjrɆQA,0{tM>B:~Oh]BE*ش+ Gy6QLn\#ܯo1]:ʳ˿t:QRϮW̗8SJ[ruR(z-Gy*9e2r/Rh8q8ύhP.a?#>Ctip$N j\X+Xy2V}[}cpOfqɱpˎΚXH/BXy^̆Nf([vq:ʆZqu;']"H2ǧc5`]Eä-p	ogPY	} 40Bӻ8>/8eK`2N
O-~~+OrЧKhZ O%(<H=	C 0lOjF]+	{{*  tY`#EOlKhLz-eo!mяN
Lcv
F57,8_O4{Ck,Kޓr7x?HW捡wtT>)rI5aBvS"dTO9ˉw/1K[oJ*r^fN/22"ht>_!sZD͚o8S<KÖ01Ckԙ]XduًrFW~o}LŠ-vY%XA%s<ն`hʲM869̸^2[FrIݨ[1L,e^ϳu׽.JJ5D͗&cZ~awúLf7V:Pdհ;[\<@啅irPͨU/* U!܄;cAg+X(GB'Oi
"0Lɰ:܀	,>!\۪1J@	f)6;ko	m@e᳖yq1|+Di:fDJӻao@46<ky &u]IA4	$bb;݀L! /o[9L;׮ 
8!^8>E,ek#*Du3}P!cTh0cXO1gN衏n`ۦ+7mec
!E9Oz~ȳpAi`WCec؈uXc#bƛe27u&{a%c}.
D];Ή 1Q^>Nc=38F;9j3_`aDA0TK9᧳x;lCY*A]ڴu76([ʽ䬍/`;ɍLo$nٛ6sݺ65iBl_yHF	8^땗t8VT7Y"_fBe E_'XN4"C|dRlם^C&]/ {!- 'õp[CxYM*<e#{90ÓV!<ttugƕُujO>k( 4ra~9%;@{EC 	hmo"@?D)J%7]"Y*i_vt,.#`J0QF$jV`2e~y,O5WX!ҷE,#:Y>8v;H1A4mэI'{<;{XF(I{Q=|4{}~܊ goV.]1eeyIs=X>z=U ]B5_qmc(+Ҩ*LJf2DT|t@x!H<jL{W	yL1n+/M&`,8`TF1RgRkpK.,T+#$V|=]
XKkx	o!3RmfG3Oc(nL,*6_uiX\6fۉv~ExF/LD*n1ì<e4:ɴ64_"M	݄hBϥdöMwK4bMATæPjxR¾9Pl2VeV؜N>bMXQ2fNZa^^	-nG?Q&-1h↣V`;mİ=l#Y_BrF=J-r=hrMtGm6XY8g4gXD5Ec'q)/+T5q(R@TAwHEIŐbR!%H UjG)~ZVzqɕĚ,0x}h@$X.I?U/	ŨSEK:>d/=_
zcq`kʅ"`;~z0x~0IR5SR,MID:R~=km4үqrKhG,,ZFlȟL?[I,X[Ezr|GcKU_R 4KDHVaI>̖׏oՎs'?<x!)ҌWX.(w"X:wF;E淘}t- `U˾A
2%8oN[j=D7!=%V#1n ngS_2UjڅWhoF;Lԝ=j}}CÁXe#@xI}EwkyQ}C/J]}/s8JJ̾ScuT*迯@ywm}B{&j=Sgsblt̆\h2ۥfv{:SHjwuWVDQvucK2iXCqn*obX!lz2HI2D&'Aȡf1DtD  d՞`˘O d=`nFWb!NyAaw$ !}dpDrF3*B6RuƤ%yKR LTd]JT0d;aM@2~ΔN 0d5w6~52wd^[@ H}p2 !S/^(C&n.nK.?+鴛w@@~tgFCT:T0	`t/s͕zH]؉}QjSsAv0E$zۼ NA}Kr,`(ts:1YDK	#!F^'H&m)Lvvuv/P3i	z(5$`aRsZG>铲.SQA1>Q0!UR|0EWBJPd!iS0H|Ruq'4%=?̞A &9U*7Q	mjE^N7P܂3T2/}Z%yf{w_Y_1=uʘ =fRypI5맇Kү9\;=\B~:dU餝AIe6ékf6^uIA%JeVL,͐k-yFC``	9k50^u9LMWqJ^sLi9\I
Uw%H+N5e-ӖkVTވn۵877k=U5G^Db0_,DsP93
ƪmk<yyP8F?۲la"/Ci)2bְ[!Lؖ_duY]~)Bf!\3GF+̿Ȫ/R>k.
_!>XqY3E^QFye;5_dY=EV^^zW~gwdٕgO_Q,^:UWsogBʄȕ/!#ȃo{!wNW|/R)A,PoaV*"Wz޻aj{9P7Ap)(ʍs'/2|&Ц[ScfP"Qzޤ`h1dLțfw2KsPMGN_灑:-0w$ Dħ$Q̢04aB. )Na@fg5#<T؊43{vT@)fJLn2/VUvO9S"@2=;n;/vlr5ԧ8,rAHXkӣb^܎-lG!P"ݳs;ĵ9p&CoΠ`i,(FQ\TKxm+_ÜoZH&F	TqM$SQHI	AZڕ]b\ҷ֨YGGf]X^ϙz!FRiPFܟ J#k|Գ@Sfܲ#ΟDp+-((O9dRV\+e%@*zz7c9T57YG=Y2jl͘q,
OP"JL_v:L%k S>)H#`o`G4ZŊéh9dhRP:tݮmu"Pѳvq U_T]qHeqtB8fpj%D O8zIq0aFbEYPar"ryXEGgL\j.|g49H-G~nC3M3i,A8*Kzkx$Y yi
r8);	AG Nt^r8-# h_T9Ţn:MFˢڃԭE9 R/EgbrmEd}4 Q+qL)(B[`pljiQz!Z:cӣY@oNfGRxYvަ5I9tc?mXCF҇oY.
CFZYFuL@0sj,ׁWY`<d[-}t-CFՓ$/;Vr9d$[--ٱ^т.
Zj<,͈%D05|J (+kV@ݺCiuE3u5GA8$=ԢZ#F]5j<VV5L*)!~o%"R|mʔ1=<Xs^s N8jVHZDl[arShQdߍ%)~R5AD.(z?t]{i:cctGGeOJFFbwlbvtRV|6z5mVr\Zwe1\Z5;mUܖf]UqGHǜJ_4;:M4;_1>#+y4|= @m~">IJ3Vif@s&7N0;alpX0kY=<qeYJW!QdnݹUQaiqV|֤nV'fYfUp eeĜrXe(HED [఼J]7#X叒uwX\WQiƊ^A0Lt#KSQYbI<o3-l@%Hr־E\S4RR a$˞.W+UvQRȔcԖ']_嶷"=97DPڃ7Tm,BA褡KkpowRD`*|\ a"꼼zDeP|?6U7EXл"U!Dei-iuHϹIPngYC-kŖkK/EP䌉Kgg4Cue?=K'C+o[:@=P:+ܮiXtڝ#಴:O5s9mXS7A5E'EOyoq;SI;CUm4: ܬ `>rk*~(B.YޑskHڨ$>d]ݮ3ߨi)(򕆾NV*fv˳r#&M$:hRz-%u<<q怏Ssx^I0\ےk=/kw[ZvY4wR Np?P%r?=*fPםk@p>?=)B)<wKfs/*}dN8g9K]ܥC^\V!KDPnI 5mˠq=
4WN\ ¦3l=!R	Yծh ΀׭m ~@?(LY
"i!FieI ͙^4wch+SgtȕR{蘘.숩4\+mZ!)hٌ/0HBR'UZ\qX1
evqny	(qsM@NgOXb*jj]Ub׉\Fy'ck<x.Ty@	4j9Yʚj٦W9>h*^`c	͊'VsJ<9@s2O9,@$HA	ŕa%'Od@yKIh;:⊖QUKuV᠍{ v=ȀL{Ę<5
@0K`Kx$(~
;$<4[CP`h7?9[7Zd8.u#\uh٘gev$`yJ5O{ #9+F0Y-, ҟM28(ȀbBj  (_e@ \_ܲ!<z{Pgq/<(+ix&K#N2`fhmPYYW$8xJQS2@D^+*@\ȱ2}.M'Y<AE?ၬ=MgJ[CfQ<. 3? l?YBɼНBK	or4I%C@r#dӉP`j6ƠHAl-GKġ! #<GPg@hxoLCy$\
PӶ*^y.CoͦϳLrm'TBy'Tܝm)g@e[.x~T{]oLNT˥,kkՌbɕ\_RK3 M8Tx]?Q2 ~?F'-yE~%z9|?Z$򠺮4&֠[ z
\ti9V`~Y 	3!tXh̹ѭdYd[srq9Q+ZozLhQz&!l#i
Q^ndA-k)(Aʰ|ꋘY+3 X%8"Zs#?/r&>W/<yhy,ٽ)Am;ODדIk\(#mlw_'%br+?#y\g=V" UA%!࡬nr\)XM:@um[u.:zaP" l;@0M^!kC۝e0Ūv YޕWǏhIleC5?^93mA5G98pS#:P(>)-)y `^9@VTVWA<^pt&A:`Ջ@Z*\55Н3erROXRȮ(䰨8q Ib#HA\5'Ng^Vqiޢ89SO0􁡻du `B:12Q`mhvu/7kQtCY%&bz퐆tqa0:\iKr0Xꓛ&T4V#a<1_>ڟDRdsJhED	>Buǂd"zl 1CSe9"\}=sIFq_P^Un/UyN4bPdÿr<%ٰX  ">,E*m|uՄJY
uk"IْnLHYic04[p⭖cx/>v`Ԏ͋h!-v>arce	{\+VE5e8	y\-%YD" PN|^k'*bռ44k`5>VBYZV莥C&¶Gyq4<Q'o^?-lG+*r"ipp7ƍ#5n}
dKGÙ h>=,>R(nNKQ*Mq"cy,>fBZM_&OUU5r+g)boL|o:տB0ǀi:+ݥ8-o"h]WO2S(MAF@HCըrwh9&]`q5W֥w\I4yγR3"yewy t"3 KvLx8{ȓ7.	f9N[՗&B<WURW88@^h3p[Н
CnL}2)N9:n*䙠wQӠ>hS|itC-8+.q9@:6U<,;!xjdd8P(LȺ%\4uZpݰ	_e. ׺j,6DlZ[B!ui,7fH8q#KlQ隈96y
~7yQ-
ytPdB_cZ	fp"|x0ʀnd iP3X	fRw"Xl
c6I6b3v%UZ$>9PjhЉN\8X6#mىB94k1Zx\f(F9Ta&vzfuxqTP<lpQ,OJoXMدAo@Pyg1\0SKQ!hkUihW-GiMݸ!-r-(p\A&Pucs90}l	{(BɂkIh=)lÈiPx3RFq2GHIdNQ4G`J52
xR"nqI)h.Rw2A>i="tR;@D|dpNĦR[^.w0O귮?gEwKM39񝛬+"6l\(s5%ՠ!aviXϏG5/ґ<i4y:2q}4+h]j7jJ&bj.ôU:E0QT!xzGpNN"`>M*_|m0/?#O=ϧEezz~]ÆLYnOmGe?hI%ڽn'i!0=7_w%DH_t.ɨ_F˖eTTt(1=[fw5}|ؗWg$&/byKQ]\⏖DXr5ǩ2Ŕz\LXqN|ؚA0ߒ*yǠ(`IB|ZUֿc{X5)^".a4}xF*qP iwb		EXYh7v0fHz.c:z0<$QA^Dxiա24ק`B/~/l{	.`[B/r0B\`cV!JUry-BTԵ<}rh
d)L19yk836nG83b&}z QSof~+$KS4Z0K%#_L! N .XhrRI 8LPXΐyS#C[nF8Gis|[D|X'3$FZ{;?f%}t>/+&[o<]  *y6@Xp G3i=6ԡ+]|o׿aN`4 S[njO|)mJ>2`UHX".=`~uT&6LOBaņ?=g!\&E]z;&-uZ2VCo777L-fMُ^:DͮnMͨnhfL6#ñU}flLR`wvOmfB,	p}
.gjH@fXm&@FxDNgW	䦷j+.|$Q(?9fĘX^jJ]f@l U+Y}R`쿍Wӂ7sUTHVHf=C]`)%z9|+7zqA|"	Z1oA@6Gn
j@QCmdt#[mԳD+hS 'b!oÄ:d0N(\V,uݲ<t	4^icm`&>nL}WNO[KR+7LS-1Wie\/Yl_*~VjJftȔ0ڟ!F7Ȇ%w1տZ?3:Ru؀+GFH@vO4hҢm):@'ş(ğ`	7K皦"R{kZ!u$7XX?F79kO-`n)tp3P7NPw^`kIZj6lCl\nKw,yYuv{.l|6vnuM5ixFs}|%\7>7Ze,:3e{]Z͒]V̔9}Z8ez]~ɺAȖ끂\(ӣ[O3ݲ]/ۧm^{f]'XVMNץWSEŠY/{R)[yӔhjʜmlY]N$:|(޶Kw(iPM]d~?b3(QW~f>5udn^/Y1TĔb褀vL}Wٴ/Y*#/h.kdb7x3(h=p9Sn51;1&ֽ-M9ĨC>쐍@~t惤_'ɱ- h[UlIw2 F/ђ1`a"Da&Gq NJjۗɖIVˏx/,dC<a<x2Qdls 6@A!%y`[MkS)Q ?	x]kU`nw$dTN!>Dj̧lqTj	hX⋽OY/D畃܂CgVP-,tC c	J8=0AC:aK»& o9)G_d>~#XT]=+xPfr`^CRw+\6<A(}x"3n?W(Y	R' \һ+;Yu(yF(}dFkd÷8a+t^;SS*#L3NSm.UL-ţSZ^j˶Ո?R$yNtqru'+iԖ)]s]#%ekIm9O.IY'mzl¶1q$š85Vu!-{Medt$t]dO*	8mtt&J ituI,ARsTDN*5ǕjJ͹Vs8}jRSzdA9Ilk6Q'1[iH#ՕMXԇkHp|逌7̒c@m+.bB[X졸TKn<mej:\'uN<(IEȠkv3t$[v(n7ђyjFnb=.) 4jR}D#-(/	2aZa L=ũkMʊ.CU9QW+QeU)j)$AQ\#=%!3nRӖ&THbBstLJLh]U&JL+2zAV[" 	-뵬:r[0MƦ$6e]mI/ˀɉ-Ԗ.hzʼQF&Za'az. hz4DzN$;~i%ibҪ&?NQMں鲚ֺQJ1AM|$1(0	|LCݖ UF°ea5Mw'P U4t
(g4u:{<I@>Sik:ɪj;]iՉ1]DӞhYtM#Zȇ
4H1C6?8nAi}VX6MysJYRCx	|=Kl旚a;	2V;W'n"H<c9*o<Qa,U+zGkOzHE;2G=,T:a(އ~	0M;LEL^<-;t{eժafn{r@Id`~л՜Htֹʸ:~^x,WV~I;<}x-yR۸*,EV7eŅՍX[~u&VƎΡh5H&,uϿ&7zƑnDs]u+ЮaV;uvle5~Jj+	X0&2&Ke^IpI_M4y¦^[CŬm㚓La'[P˕9a&t]:Ҏ$6u|xj;cڴ&c
D*1ڤ̷D3)ՙ2cO_77Q\2L^W-ukXMp-70,+.n&6;מf2-sux/<Fc1q*x("kq֩xTk.ܱ(t ]t˴)A (ro\:E"\+2yK)&L1TfnJ_Ex
#hԛ=UPA:͠xkz=](НeF@Aǅ)#r8e:F`8yAo^H8͗`~kyգnxѰXin	U tA|/kaN7ݾn\X,E':vpsrດdQpLUʗXyYYoKn˺,d${;YvO)hv
{.m9,Z4aਔzsK~'V,a,|$G['e5~-c'֑ĘCy+H abZS],Lm3=:[3sz1ϚSTGlQXV66.]SodQ[RCز3H%f}N_Jq@q4,`$ TI'BXwalmTSUbƁo׶FFaJ</a&0l$wSeŀVf}}-CUq"v4
!n4 AњY'p{ͺ#	BvLZL:4''QOedϰj+wN[??w+g'	%`yQ3/.۹C^F7`EQMHj=CXkNaSd}W
6@ݰ'.|o[mǗ/ϝ7Fb׫p2k똍%dOi"<DҁBЦGe[ `QpxG0X9y\?"Wk#te5e9%TPA=0躖6fw;~[PEbrִѮD'n;pERlk\,$kZMn5+GudAZ W<)o޶,sj=!ZNɯi /PBgdrq\|-[]jDKݏޟ	4)Á k˦z"fe%{ atH1b_Ul!l=[)^&aU]3k%'ւÃpj`f\J\%n&YL0̞0`CL$?6H>jS_,i:-ƢYKO4f}%L%BS jfJ%@{US$%Lq*)4V`9 k'"U"혦ֻԴd('^IʖG+q~ Yc8 W#ajlaK[<e{1- :I]gOb7l]2tܼgUl
mYcX6l0=b^uϠІEFxɆElî?t蛶eM5iz"!Р*s)hl<Eг'G1
ߖ'O0V#_<VA8T"*M)JX©g|H'oBRUHb7/#TӧKbn9N?'ƓL8^ۑ&N<B*lQvⳝL)Z'`o	tmsgKc"?^ߩWYo$tf}IbWQHr#]Xzf?w/	wW -$"I @!"߅Rwa2jGb ״m	W>1;4lIZ
Z=[k>9.ީܿ",JFl^yY/&OGIZ)1Sԓ+`<9Vƈ>h&,V@!&Yeя?<Pʒ7p[8TZ[هȉt*MvG+ZC<I/bM	x,Y^Wr;8yf  @+Eݰ{"t,YaYa3pHkn}DsG }wg_כuݹUBgtExW-]6R<	^_(D:ǋZLTWlȁ C {=
=گqb~ bD56H9o_nZt5o'¤nΦIE"`kGKemo]F]ac"(TUFHح]
$íomg+"06t@x7ٍd,g3{<xx$!gg$*Y>,ku{`VoeS҅Sh-!Fha&6~Y;!'Q.J2yoС2q^["78x9QAлnlrEf{#B?S&O"]T*Ǵ׺kX6񗸳=> iDT[2Qk$OTc+kƁ2/eadP <;uĳu5g1Y˹澳W#ORΘM	KY{JeOL \q,BVّKX0,6gJ0IV#N$ZbvN'j{=鄖H26(:83֧_ gFm:2vǓ{`ܹ%z	G<酫XtGM0PBQr6g{"+Mܭܩ!RneO$$=/(aY$S6g:1Jll%ل/gxܷc("6y-6YiIb5T&r&*9kp=AIS妜H営U1QԤ}4Kr-6`)1YطqaqY!`JD!nfVQ7hEiHtOB.1MYڧ^ǘ(5lmnT׉-mi!Ld~M@(= N,mQMsVypBQta,#P_WȦ5 `M^M>_=G VC&GZdybz'׆
O{H
lhj2yd)̇K	@GJ{'e~Gщ䊔X̞3">Zc
7/B kLя_O?W;Is4%]P',s\Fo|$h[]	}~W{|1m%U j9x@P0t*hϗ=0,j[.fWmQţx>W |āLi~wXc36rs)q^	-?o $7avړV_0`m3[Ha8*f	IzaQvte Mr단vAe.'6!TЌG	tm۾a׵}m_ڶckێitvv׍5)?B}gR_&#,}W-܊ң#Wt<@0칀fʌcy7tR,p&ĩ&eƱlWItO"	Ҷ_.$I <;cʳOMV*SI\U,%<kZEΣ}'ՃG&~LB%ѩJÆ;㽐 ü|9fPcH;S,ѣ'"(hB|A] JhW=slj6*_FE4E^$Dk [:
,a9o}*0npZHRv &,ZIg_ Eɗ,|.i#]0-|+,鐠=6neL׶Q{4v)4S2_G0c\	ܾs#Y;N_WqFK]żo뚨а:(Mm M=24f3NR8V?$>WGXy:br@эIe]̭"C4X(^aޣ"^̴[jEίܬ"g't#ib̈}6{jQ=J8D;)Tsɜ<?B67Ք|nT:cdhQ9p^=(BCFTՙ)>;aJo2{nG;ۻ]IT*$aޱkZVfc1Mx`"_H]H WMC4"鿝̑I1UDyj:z76a@.0^iQVFjԶӞ<cUX	D4WJՏq~8NPƚ6^^G:ExYG5(!d<Qj[)x=zV6I,Yۇ6Nfa]sY⊕a0m&6G;`)EP2DEq\"(^H]P\ޒ]yHm۰])|݅[TVѫ3LVktdʞײS,*ccYzi J)o+L'	'u@\^|c7$3,]@8B "=fLf`au\^pl-:B޹{/jgSh6+J`#qU:jRn%p 4DlȫfݒӓR8e2zWOi+]kS?r6ᘘxϢ6m=rX~<(mp]+j-Uh[^g6^IEB'M:/7фBɯ/^[5r,w +D*(A͐m;9Q->ڛ$i hኊsKC&Z!E0\nU@w	@HآaL=a@p_C~[9vAQܻ@~LŕMnb>Ңn1Zk#-Xw+F`l Qo};[/(igR"x)OaJp
).U4.5Y3_|;n`E\G]oZog
%P^3EE鳽nhvHW<Bh"?MwkJ:Ǽ~}4C3,r}"-6zG̔Y&Sk/Lgw2qbni$`ILƮmS]𗣄A_lKPKo2O*׏xN89-cOE޸BZvWE)M&.6/2xc<6$HWUȊB	+DTF69|/F?N`ɼq	7Oܒ=೥x|.* 5Tjnm`3:fs+>R!	ʍ7:0F+ū]pU,¥b>OW^73/PSP7^*djV@ͣR!<0Kb"KD\"OPiݶ$656$_fXontR|?i^*2J3E%/ͿFdԕX/Ab+droD!X=#X8/%'ARJ1]nJߒ4pk5HG$Gs>Oj>ޯc#£`y#t
r'U|+vc%Ư(GUqm̈v
OF0dTSHZf	izUO'$VzW`aƐ߁դBql.v+S@AZ,6,2jשk"ŭA퐧4P2@Iu;Tu+^$K|P\$EdKk)§z5փ!#M!M^U:d2G~,Ađ= Ә/ BdcV0~< z_,w/E90u>S$&ɋMpD3ixyȒ`@vuUYZ\}SẺQY|QGve9r}нe)= ۮaQʾޫe=㠤tZVK0e>j(@by)bҋ1853EF}!5/*Kɶ9aF_qҊʢpL@2.M
&"_*g,׏x#}`7&O)r
UozދbcD;~#1U+:D=m8V0-Љ$3st>j{,eyK'U(xq̝K,ܔeS$pT _%>m
0'zMɡ:ܭ/T0.1B#;БDsEU`cDQ6Ug
WIi|J7/ aoWSQEF 1żs<(YɫAuxvxD|kbB*	]?,ʨcnFB1I_Fg
q%G<7P]\?6nKەA9YPoZ'6`tm1!45Lr[$ъ"qq'ʓl`̃6!~CJ꒫'㔹1Z<ՙ`NG
!GN 2rDW`L{ޛƕſʈa1MJHCvW+1a,꤫{>Ν;0@Mw*5ǝ8{-LL!/ɫ5Cm=%n( T04Ԏz2W7uTil1Uw- {)Ze001	e)A SOⲑ6][6fJ<VDG[;؇wӚ_wY+]PSnQY	RNjY]n؈}"R~.+$ t--aj)մEB@ZDFЊCM&AA#ud>0q`*S7cV{,ۺ"^Yf{=Wŵ<(A֟59d, "Ĭ¬/dMXOڻFr92qZQ<nx~vgiX1z=<-yoجl̛=?`% BX[S"̞{9[AsKֆpsh	e{t.Qe|EnY]<tE~Bz1#&89R4r@IG)F"OQɀR9%׊I}¤bƖ\ԇ4Ƌ6mv:K(vق;rP%YLHJaK!0͞ll+b~.LɎ 2+iƕqv1$*_0Sj/߮ ͱr~g緳cdF⩊\af
.K/7zN&gXbܴ3>wMT'BM?"LjhbwF'CeXK+GP(3T,! C쨜wn[E+A!%bӅ/EQJһ?͔GE'Y3lPr,C0Hė0$`C::E&ybCNhp:|7:{z}h>FFi WVg>M>+"/4CQJnHʤ^q4\
f*ц6l*Ɗ9Vv[[{@+t	~uOJɤ:wDM3f]8g}"YgLJ~p\*Td&^22_J\RAqV&^
^WtYrQmZ2!anc]WدQtlղHb&ww-ķԪbwq?{FbB.ƔEIh>צF\bx8ͳ#ꊃ(嬴[lxT8ۛ($D1Tp48p}L\G:w3ѫo0ZdC9 D5LAxĒ5zJ܌z2aL.쏺2 4Y@S62tUa9oseasIƖA/F z9'f&DOE-1%d&֖`OrN;?]A}>į
я~g;C(iOՅպEE3N2;ڠCn&| mOVx^aLdɑ9%fKjio!K~Kut̳=rsV_^<aSB̙b8WFH=m7ץ;F|'_1|4L6qHdL>"m5S5`ރ	sOf/f3Y@ځa>dہ!WlUh}L`W;BV?IBH#ٜ+<863Cf ZpR\5Yp5Wjm|}N&b_ˡhB>o'!!&Jo \5!͸uw3__8=ьFU7*"ʍMͥqma)e/NvF!69(Ї>3`Z`miv=wMFWPՖtq"бEW3Yjg\f0[FliY6)_oOg3><eI$p%.ܦxax$@D[dRXK2Bv}\'RJC$h|r3pj<Sc;LuWfsu`%ޛ/1}zKL]ǘf`t	m(hmvRwj\wvXgp)Nh?]t)Q8(ɗs@Vz+mJUI'hM*,¹M>xr|.(	*jPT}BdJj ,υblo <{CnN֒" zTq~͞> hGk<5K@p.Bg'i֒}pl슬lS^35i,hh1ЉLXM[|AXd	Xv4	6҇|lɞ&i20v?M5HED&U.3֠!>؃X[mN3mYQnyHzyh>/8bES|vT6hh;_*T>8g)%dFA:Ȑ)wP(H)j?l$/<I')JK_@IJ`-AwljJƲ$d*.4|5 9y'YO#oZzDɗ6:@c=HX0yԥ*m58VLzNv.w\wGgN=ӈ-Q#F9)(*A{h3ml>I?9'n𣺪83	|+"L'kܢD-1A~i& z:EZ8|PzoΗ	rJ`GEA@a =3:f^4-bg}FyjAgˉ۞@Xu&}ܷ~zgmmege}J{+AyW5;>W|j4ql~~vlY@(jN4KT}6%0#"i !"NݐoЉ '@a6ސ=l	2-oOnr2]DPCݷ!%DGbFQQ"L['u2͕V3 )
MRf:{?2DX6ebeL#b	(tdЧ9~  &᫆I1ORW	.:z3r}esZM'˛fs/6jS#>6G64SodSC]IĶēV)~T103#I;'Wlly 5,TJ-<x}E		 6Im5<,c$z9+7xA\%\+]0;bA$łF*
-VLq8X5K䯝DL94c~Knړ"0\Mf{>8`<cx fU:Ŝd C,J9`ksɉm&U09ThM>Ξ
4s}Cfd q;K)kCb${zh5Z$ĬBiZOG`b+:׌]<#~[O@bha($Ypc5˽(ޗ$h3L|9wpȄ!Q(;О͒O7Th(Oseµtsة^_92P:J/AjQ/[VE%ٲo^x<qL/gir^[ QcA½jm #xHA BʊAʺr+?Vvm:3ja^W"9r؉ng0DsEz 5Mx;s}	,eEřysY''mgaܜ(y_feLZb{``{6f&B?3d<wSjd"
oaanqz2v%L5E`dfr5_6d^qQCTNYod\þP\0dΜhŴ}E6c9L_,`| TR4x;s}E,Y&7'l)hC&/#<3ޠ͸٣isCO6ݔ1d;dC)0~cxn*c	ctFF4Y@MFE1a~Ԑ1{f<װo?y;Wc%)'3g0Z1m_Xa4}; 2MVxz5-L1j۵XVm&x}ksֵ?skҡHIvǱ=$Qlt4	I %7/ HQq$rcc^Gd"^$'6}(_	NQQ  <zLbӹm/yv]wF.E{Zg0/~<AA~7۰xX_q`Ii8otH3n4YpEGM4n(iO_Y}4`!I (&78\,쎟ݏ"wa8B;M$"^o^Dsaxȝ7h%!<?F Nd(G=-qm}nggxw<awGlv>) >EgNNs@EYDf|-3L7<JPww&,߮88`f[;#=_۱i@1Tf-5d|B@&Y:t	0Itm\Lq'+/qD|_Ӱ#N&Č,2x(+(oqK|.x},2B'_w(IQ0 O'mE,ʓE:(Csv >Un2Cax g'
LɈ6 _y)8p` I\ĺ7a<f9t-¹[/|fc֞s~p,K쎑6' 9a~(n?l]VgYt$qro#.yX-
0`Mix蘖˅˫%0}-f(2۽
LN;Ex0\G86@piܚP}\/ި MJLX $=2#Bf3*ԓ{kC.*v8k^?pM0f0m`k ˫vvѲkˮ8Xz;wN,I`gfqqlɋ;[_GrNO}Kms HQx;<naw~|;ksOHOs£9@ R
@?CgDXp@+Fe:Dߐ3ܤ3e-eʂc")Mmj̣P'(L~.X;Cȋl9*xϷ(:˳KϽ~;<8\	$Aϗ k_|]<@ Al"}6<9)xiYɠwqy=]^<b J`I[IΗWTgo?z07,ӽ=8.|xa`Α;?Rs|AϽ?=|*Qۯ `N	cH<$T*g C{`{><C<~o']x٦?u p7W{$.Yd~񀧟y/a^rӧ{x|K9p$#;ƨl)4|c,#	1xƘ7>?!n2xI? z?2o|eA{Wc^zg`iA?\K;ad<o,raPl9IeAN4(\3!գ>.G5r^껐{l 5@ɓЎA
v[,Z6:)Ha H(Ab>㠯rZShXB\~/1Vp?TRiο?s>S1|<0 @
jYhjbBeU`
cDԓ[2.$24Im4Zf).vؙZl-lk Ȳ(ӄAqJ',E^ >A{V|6XOuרÚJqQ'ddeBZQÝPt>RI@![%Im􃨅GvG?It:42Bs[͊w*Cb<dهӻ8]\_K7/4z2^~@ۛ@|S C^O[uV,/x\όڑ ^sHVECJ{Ȏ.7Y?DCUԐ"Aᗴ'Eg{pEG0Nn5kqo$q$γ~3Sb12PimD_]o=Ssg3["ŉ;ɖ-Q09#xm.x~w݋I뉻~UN'O}gFr	M8[F?wO=,o6y}U)S" @Z}?4"U[
AeEEN}tOzeܢ?f v&D蝹W@DAȵd`_d7u	yeR~82 c49mC'YxQ6\?Un`uyrDc]I;Ͼ	8Ǡ#sjc\ns=Wݝ_rXl>3¿}I*8D!``&(uZ#躵OL?̣8ɣ$ ą[HGY
$ݩoYz~2#8F
X[pDYH0X鲖,rD.Kֲ\/Oܢ$a1p#] i`",-(PDpub MphD=ɬ;Eױ8!~K%EV/TȽ?E2K90s-i!aD!5+w.M1>" P@cړ)c3z{d
fH_n6WG{,9
$)fCh]0Út()'r18ρR0t	HCƈ=F}ht(dLcn;v8[Ld9xd!׾n{l{5Ww,iP=fIc'k[UЯHxa[}$o"B i8 J-_|!bn+Uz$
CdE䘻"KgLKLNhwts¤:A@QH*yƟkG?U`,&o8"apy9>zƍ+C Z,d6f	ڌ->;6N06IWQqEN,A$H㿅#U~<q"1_t	d3@K~,%"Z{nx^n02ƠNWnlM
y0{SigDBL:gg}&hEtx0	Ym`$@0@Ə`k" G^$Jnś'́S@9(F2Fg79Lw?Ix@'135~-W21J:Xz[F dTEty9uR{ZxqT$[-dXUqHl?Ҳbj-nr\!v70& &y!!4)#bqnh4{S`/O{?@ Z@E(N{pxēa7M_!_Ƭ~Aiخn]k>[gNk<.}Ig`qi弧q;y\ǖgY(&+0սPGNl84qa0l"]d칩N5YfUEr+cxΆ+csN-9j_i?If{	t'jÆ`UwRMdCfEqa&ԥUՑ;#=
BSR$<i\i<Rq%@Wq@hqf}t^cT>IBaRF"3òv5&)wÙ&́xpr oi|-53^QKbç>F[m7EUiG# k;GM+a -9hAC4aHrfa.<I\/Qh^b%sѼl?5dVE*'Hg3vl6M4_PumknF4Y\5Hˇ`yPUm懌7#P=S*F[BA;қY]՞/EK%Q#Ӽ[/sМ[J+L|,frqzi6IWE0dձ2[4%e:4s$QTb8!","_5`Ť=KF<7@7V@kO bA3LX' +t?J :OEHuO϶*p->F*yo_,?;F kURV b<G^
ɿBskRڨj4GzS}9Tm։v y>uּ\~7<Η(Q$U -)^!̍Jmul| )HnZZ@s/[ުEuF^$yp>D2z`C˄K],Wx>@5q2kI'
fiDbb0 nM0g2',lazy[ j7E\bVqGSZ$p uƠRZ#9ծaT"&#Na@Bw	p)Ѕ*En(4PsD0\.Hp뤼u5*Y{==5yj°S[p@cl@?

˔;8&цE|
Ed{ܧ&JgBu'8UjfgF	{,0q%C\GjUV^0fX!'+xq!+`"v{5{~UTwQhm"h _Cu"UiZL0!|1Z,e|tHm^fwO;޼/)qah;Ԣ"1{;89?]0Fz4BcWAeGy|Bty=5(KqvDr-'"}x0V\Dʃ(RruZ--71i+w;{m	䫅h0av˷p /e6"G՚en`@Hl@ L2 v)V)˘>qqPt]L4Ƚɐ*:wz^L	Ƹ82._Z^="-.T`oУK-s(1)}_?4)<
x`ˡTSp`P{gϏF[Zή4TmI=] -CQ-k/fG(}45Os8yTwÒ?Py.e!eg|Qܹ7"xGo6(t0cX_H$g5em(G"fH8s(ӵM(;fYxR`q2#Xg.χ}Lv)ǅggKņLh9%hODQgrNΓ9x6=J4q^[س1AsVuN[;G9
<6?ġ>(X!Ioū`WQHXpO5
-N<T6Dlt@5o: tbDW5;ѭV<P-Z;#GoyezdI%/%eWiJ.$lV,X__k :RRńϋ9ta#rG!%BAy4=);?٘=b^ҵ%AT,a]8̨s'Ɇ	E )v54!Md)^t 0E1$enĩ|u  8$	"(i?6؅)pZ #$ &:ׄNs4
>Sը.#7p2Y:0&p4J3RS)C6>XE*Y.4E- Rle"&&*Ɔ-?5D󘚈5?{>G:Cǵ+(,Q)܎,WoDvp\"q	2Skb.p
#QXD-@y4,lx~xy=>^`R+i\ǼNfK_ҼqkHuhhaekJ-EuS:R:|Y"3BleL 娞O(t{ɐ0xzGD{Si4Uj_<B79NT?1]1^Ѷ+vhauF7[}Je-W m-62Pjn\hDcxgȱW*Y$7eL͍rRZ)ޛPT@-y|WJRꕙ-m}=a ʫ R^}ْAMj͝_lL!bX׸<?*RfJ:	FU_2jtfcHFWns+'wq__H+)	0{`EczZ9ƇY}.`YDX<͢YLz$UVWQ*<B6SUW&  4 ⻯"H?/jS#Gu~SNKJdz
Gy)V˫YO
KnlBW4hX,,	5SǍ8^Kz	+1lbf8K.Q.}ym#rKVD#1AMv0obTcxL.%{w&U<LTs=?Y7[iԡKb6`ZxuK9'KF?I<u|jNFNr"Ȇ$W(?hpHziazkhQSO\k@.K&54YBivnyK3BIL
}{v_ݕ=F,R??Ez u-yYXm)7WKU#Bm*ؓGpK
ӯ5KLlCθLU,h<o}\^5_
L&?OyZi9}nû\ bU"h<'O^/Sl~ugTȠNE`=Q*.t$eH-MhJ9KhXOȬ<i25JiQY
UK"j
8ـ~:pPSMdr\%QjѯYMDaS_>U!ͤi뀒sW/z_1=XrVHL2HO[^췯f5qlq."`t6vyZ{hK|t۬+%.[E(bw~QMrw~>\eBK4]  dUӱzj/=QҩTX,ejKtƋN)\Rǵ9|s83TYZ3:C!Tyn3&W)%/Hڼ|K`--RO@+w^^E3%c(R^:mB챒Q9>VYg"Νwf*+mKO
m'茭z<$]"av9C[WA=3p޴CxZ[hI,dj
16-ǝœ3i!CMd_bWIvy?c],[*nVoPg"hL
]eևR)d'%L].LXKRhjf
H <Y!cNyNXVd-Z5zX&~Dq:nF UcJO89_7\PʈIUpmMjp'#
$Y6|@X(\pA@-SO<ʁNL.7Vt8$HB3S'x݁uxSS;7+oa4O#[Ak%^)5U6]ðhaU",'zb]4}[q6#~kaŌ#RMuwF6VE6Z){Hb=3RK"#@ŝ"2OBb[&3UokVg
É	C,	xcN͞QAD5NNz'݋wpq+6.R}3'MNa"A4d_v>5x&(%hFgT@V&N,1@ᏭriB HҳXroSI𐕸(>{_X2fQ	y}lDC\]`9V%ĕ, e4)s	MR7Z^mNqcn'ڭgǼVV#r2l%
bAsW{ybl._{ֺW͗ܬyvB|w/''݃ܓe,k3YLk }FJKR;Fkr3xH>{cf:́mwOkڵpֵI9_'Hn	L	@" 뇘28}4XmJ4ʵJTay&ܨ:ER";n_0*
]g<3Yds)B"^OGSa^!p-5Y*{Ya-9R(Lq/@ǳdj_O?^tEpwa	bspº04MSC6+@N`*@::Ǎbw(Ct5m@~ Dc?l03:\Е--e$TfG)ĹQ<RĢ2 *7L}{Kpd;sh	`T1|RUqb}WaĿc#8t',CZziN&jhR]>J*CCshAk2B@W]EI5PCxN0GKNAX|WZ6jdDTA=2&ƈ/%wOr Uz|(Z9.K[~s&%UΪ5/Fr.yfr6U)tKUÈhIQ*IV/hR[Twz'.ڣֻLi )b&Sd.z)~ǒsuegK[dQHq`T"t|
0H=,&aĚ{Ky-XZܤQ&G ^^	gRp,J!A^bd뀷P[,5dV.ݸ-!4%dY\Q$rI}2?DBT}䟅곸+A 2inkNQ˄`HhҖf.8	6mv9T/M">:{d\A*oW-4pSk@ц1יд#O3a2X\-RZYt,B?6k̖ۘ"QgwfV<yky]uJ=.>H	$SprI(C̃[ܦ9 gV *"ţ٤6<2kyb:	Fg3=&2pRe9*s֍RkQFty䐉N	zhHY2ZurFuA:zT1_A+tlpAL|46.uyny9cm|b0ڡv	g&*BȤΏ^L;ixNYd1n[62JRդi;8WFHi==[J-|JIOIJl-Wg+>?eu
2dH;#鎣ovjTR+mY$S,L &/%q(D2۾A̊U#OQ+L˳3QNe䟡y斊YM#nyW[H4h%1"\UtzMuщUdr
x9;fAiAI״.78k7ϵEqd0|cȹLm,!;J+f!MBejڅM\CR#b[OxW	ܯ)+)5biڸ]pe܆X1hB5|0AXl1u0dUF5޵tpvgπ,*֧ب#1VP+r{uZ<\rrn/^@erQ-?Y%C5eSN .RnRJatUPd?|3HoULIhpǱ#Nәi}͙o\7%UNZmk2HqиBN`߈;Z-ͻ>j<F'8^4kbEիJF}:pzea1"Y3ZA`+q1 gL&-XYxHC}f<	.n%bh
!r%0I9HAɗ|>OgZFSt+xV
gd<;\zg(UsJ׫4	|9ٽ-gg(9bṄ.S(Snvb&Ȩȱc} '6e)1@F8&b,xQMELǚGR>hiPu6:NS)jJigZ05Y}O1:8L	YMYfc~1ky*k9#XLl42²Qɓ͘dϝ^Ll(%ge%`;Mܞҙy o?DZsurom-
;6oSWyow[\9lOe[LML=uV7b P>VCkZZA\pQjvݵ4'Z* Fs|IU@SyŞ ZҦ@eCtwU%\0`s*>Y#3u8q-w=%ɷu6sA(5ph:JFyqv(&q9Ր¯.q0ڴ\߁hv,:ԮAzm1M-,],lѰy<kܚ5+!˦[x(;(׼b9XxL5O
o$E	MQjfKvp:Z޼:c$IN%bN*w]O:Ac&{+#l_dg<M@mOyBp嗁	36sH:Fy~y{xk9,wAm/faнz}U&:̽!b&7S]$dV`^о^
y=a~rَywByGr_6w?ڋ|!t6TRݬ0ꡚ!m 8a¶%;I帳SmܖʚTrȣD\IzziF#-VPO>Bvn+jNœR1gQxs-tFnIA67=#Nͭ!oYEszo'Em*Ӧ& EǀDC,%Y1e=uOZӗETqs%?rInyM`Lt6Ƚ:WqM-Uu9VV!^RE0%փ5a[[Mݡ 
JmxxkK2+jg
l#ˍ+6/~bKS($Xxs*ۑD$Ev̝-Vk$lOsi,ljB^6TUVyޮ+`dDٍqZGdImWVQWZъAHW5]-eǓS'li֭E|ӌjM:tJNF۠a>/[+
oOV%'lzq#Z2g\>lS$ {S6UD!1-P8s8mT*.ܰ=sO09BrޱkTa)˘%qrXO$n(X'J9[K>Uj%ԜbU[.6&0B"5µ3齒kxGvUX\2M^e5^j	z#\jfp1Ov<A^w8K4ve!ݣ}lqP)]CEeDH*CU>1"aOWfr26[uij)@ඡ.^~	a0viZ	Y6~9(b5s3)WQF'$L8gDČCyَ޼AwHyStM\O*kVsg뗧OM<*@j	}uOeWf7zƺf'VC ok3s%T,y-"l+3dekz~	[Ds*dHvM/ih"OQHʁ@P]tɔKQhC74VH6UPb eB+;۶g݈ͥ,:zVbrFͽjrwx:j [[3yV9J)PSWWb6)EYE)s9Me];F-_a#Ǐ\<]Բ<Hns%~kII";;7c'7]T XfUߓ_1_ oY~cмY_0X
'n +Nr嗵xaV]5	wՐ9qԝlH8x?F,0XFC;o&l%[OQ2{Zzx4&DꀮJN]nq@|msq|5JWtl yՔֽIR3rND*.y_z4dxLxͬ|ze&/'<͕;r|5K-2覮	k gWa7a:5ȐAu.atTϵ#\fl:5HHk7
HIId
7K|O5TtY)8&Fqpct:yIeW's^sE
6b]E"t`wUbB5g,]
B݊~e*NR|a/M\SoePDKox^A;^xc#DMYeǶ0ngx9U"ꢃ$P86`+db⪫Xy=[$x\V6f"tF.Vr-Jv7YIvnC]K$0AQ7u)TcPjߗoήA'-xTHW:`je~^5К0VArPCdZ^j(WMƛ_)N<}NY]$L?KV:ONꭔGԳy~}8yʎlQ V @"'Y9PV[QFGW~sdYVHE`aEh=	Vx&i4aXa/U+Vɏo79MQMelzq9nYb.C!vDrdc`.Q39R~+rf[gB'a.'ಶ=W$lZ-GO5V5x_ϵ.c[iXmkßj%<jRYZT,XjFx˪WkR:
F+D(HC 9c&56FB;b6 xr*e-TztX{'d,C+2Q"]`9\_@yv=d6G,lݪs4ay3N~WW(.+EɍJeVIBETђfniGM8GNϳ\j4j:QDaHQnD[NȶCDһS$hiI-y%pa@=z_NElǶDb 5w_Œ U*lL/LR0Mq8TNe&R*%je}.}0׏v*1<{_w@1΋K[煮J=|@UvFsB~.	??Z$9 *0O8iERU;ПWM|^7SMq#
tRy%x_5=arCQ
s᱄wz6Fh?Y|ye>]urV&ֈ#>响
AH!Sɣ,/<yG^%,O-+ΓQ)e :S-Zz6}qܙzUMcb70߰.+m!]2!5qTUczWGSU]x@B9>4+BJY)%4e٬d%ȖՊMGE+KI%`./9&ПuĊi@MDm)E12VB=}ΘphR҂u<t G}=VjBA"3r`M#Q0ugRSgT3$F1t%J5QUqqI,,*up#-]?zBQ!!V9iy4olB7Qd!Х@H\7NS`NͯklR_-(64󨀨 F)kf3h=95©>4h0NI؈H],v{+$;\H:x2EdMb%qc\4qk#으C,Ims_8?vqN؎.~МFJ i?L8QlK6C løEFH9(;"nE-S
0ub9"]'U|S+'?<GG}SA yn)\U:+Ń(S</[_`-W| BUv-2Op"Ēy'̖Y.s<Tc1,@.0(WSߊb8)3袄/apkP0&!N"{`_PرB4qrj%viSOc0S])fN4E~'ȳ++= k4^Bo׺g]{5qyԳK^exXՠ]T21F:6e?&T$Nj$b̧{7DGO~}dayV~nPU+Z ǋ
NP+gԯ++mV1ogVf|")퓗zNd\3q`![ovA{q?s?
:|-nl[`LՔ"VuR4CѬCDj$r}i#VCb2C51#tύ`ERύDM1Rǖj2Y^_sFF+Bd=VwNAWtIy_S%AU'=gBtO4i=,kzݔOh>+B{(]b(סl|rsDx>-9N)@pcjM"&ܭ$w`N;1&zC+vBX& ̃ϱ3[1!W̷KU)Tm
%AENY9N4BuUB<*y<;a3#>w?^|hlq&k8l9<Rէُd̝*lĊr J~,cZK>aRʧPv/(؋EIEs4e3x7	M;ےP拞(5һ@QW\]SP˔*UH 5{ȿ>Q2"tVџwEx0:Lq.0*@&Ōto2ź6XP{b%W2h#L=,q$| IyϢ0)>n/؂[|q9P:YmM-aSqùq/NmM%hnbƼ{P[X]Q;9 *HPa?C3r+PVc 7b	hBMOmzD{gƴ@QnPGU_	܁quITUb\8wVrGڏpQvoLU!/|tdn"$(q;ؖ7N*ݲ.
JGbF	_Q&[FYꅴ,eklq2䝳Ҿ	qD;NX0:(ViR+,0OOg%sQ	rk-ri΀µl,,r4GX_Cm~`C"0[=-JӢX:%v;ͮ@W8ģe5>б
a=HNdS dIbk$btt105O 4LCK7XkLBѕ=Aw͉EޯG4 
,@*o[9ćPoMMx3aomm#yjNPiHp6Oj){$u$iI{O[⹳9m3K"pH˞=Z.ll:9.w<wtDs5kin)|̹5Օi7vI+A[+8%yh&^tmGpRP-aY)7*uyܡ㹵	޾lk!o*?IX B䤜D!A{X0R^:yTc)?5m#UUQm{b_]TJhv]yA׍0ըqX/;S-1??|p9`d)35Wbe*fժ#kYٟ̗yZ»{{=~ͪMО%BD5r)I7ӄMe'$V+U]҄N3!hB_<"yI,Z$DK86"Jq)=%&H#<!cI~'c[h`5lB(>g]i0{%iҧMu~&dE^>؋9^wǚ'dW
M)7lfeĔ}̼ndc(-u>`"%/&NUt^,`<<	G
Ƃ~Ww%W8hb.$c}!	w]Y[B*}&)ztplJãGK=(-n%݉r(Nr?GK>lT<5J5R;@<q5CLePO6"Ux,}~]-q#=9ox}n(x)&^ ?1xVk[mnƦR(H*B=ɜ48s&wa"BEv*uqbѝ 'd4˅L:%_})lEZdtplArH"--pLn|T ]䘡amH%M.$,`)T@;ұuadӐv5uA]]y4l!k9&9L]SI-ckq0mwK
OSŞ7	߱V U-ߴ3D~U-v .p?ΏZ4256?p3[q`!x24JHq
xaU{cх[LJp}On=CxZTզZ#^+uR"7-/4\#In_	KYE%\>HdʈǆZjQ7
6wKT7PQ~qJ2K$"L:dLڸe]RԿۡ2?+Ui4sx;$j	jlMA@k1S5Tv:M+ߕ__|}ퟯTc6NYrC'ВqvOuZ#nu[tTDnk4ۍFnc\),6f2]&̚8xMj*{?G׸KI?xYDّYGMaUhY^.7go?Yk޿+#EG|>30-^||z%/d³kӁ%>p]&Nq~Οcp}|KiVfKovniKEEёvO}%;_
x\{sG?U\cK
Y$2u)RԲeۇ.t_>u<㇨vgzzVESf]廎A/D4AhCN]!gLX6A8X0D/:btAda{-3,onϟ?-#oGmCa %hPz=5l<%c/<>)JI:{d*%`l.9ul}8Y`U^qc}/V;"B!Ő+j=L`ε^ H|P#i 7f8n&!A&S5-iPlGp-86Xvko=yivD3`pWhQ2&bXg8/`rg׸I1ܪ=|ƶLqzC\9O	"	1@_}}M1)GM Elw<)~VyWiznȻ64d(>C51po#I5n	2Dhb: j'MV"	>h'7ӢU{[>;wPwxZ.qhy6&(f|e#~Iؔ+C!~4@F6k&s{D Kj't\!plr(nj^ȇă6y1'؄3Kf4JQo1X^O~y)&F{T]
˶UR1
ˤ,Vif*[_جؙׅe޵mmOO__h 7MB%βQJ:7@0OwjdqLRbȑUFb4cl_Vê<.rP)g_144vm8VC" `p>"ꙍI#- wDI҉5)'93WOrPOߕC|+wj3dn-UY:뵶2{7ʹ)1XNڣ]>cҎ0őbhI:||+5&>g2<Ñ qt=xSOYWߴk6|8YT ˎE0Hhʵ((@q ŇFSF#oYs 1R`h	b01R!R4cjY%ӌ˹ۭ~_g<J,Ux@c]DvhR N9|ت<8B~d~)+ELޒ?L/;aԼ,EO]^,q175̻Sr:PN,^$?|p-bMBxFV'>PsGw'~hdGyR9GAߍ 6o=:ϱjU~TA^ܕ/Op8yl*Ȑed3+xv8(x
w+un)6lFg3J fQy
`5
)78"c(LO_}1?C1@Xu:NWH%5hCJؔfW3	)N\Vn6oj#K`/&qH|X0\U);`U06Oʍqݪ%f'O/N-`i`܏
l	kpd<ہv+)x9kRm?c4`	%u+**88{ZkC4mP^(
M(FQ2@X@ 4bEG6:~==qn;&EçOwhw֣RhޔATb.sn~AMIZǊ]%Ecʘ$Gő
e	weM!vM!r",#yYAvZHJ7YHOcQpd	ՉwÍJ
,`aF7M{	u7p /uAa'+P6ڄyZoV`&.L52)ϱ[DҨt1)@ny±;C\|Ր'_2eb	o-%M6ef`:3l`S *mXҋ+EbJR="I1Sˈud	̱-9(eX vdSЁɣ_g[xBX_F,8C*, $C_}a"(9"ʤ$J*Ra;O ao-Nec=/Ӓ]Yk$>Z	)"&|{I R'VRXM0ʙr?8T(0_rkXΣ2%GY\~< {[	S2kp%bۡg"yL!ɏN{ް9C7:\/YWBeb1Z>=o19rm]Հ.%4 pp||#IǳPypq|NK/p%3 %Aė
	<|X?@( -Vo1L	\٪kڨ~R0ƉHfMf˶jجӪLU8gRW"	BJ:4&O^"gRPgU@p:Bv)g!\9Gpkw9=
AozGMiYp9a%74A95(^-íYNRΛG_?@.}uowdfZ.Vdr7҄50i©Q&6ؐr)Sgc͛LF]lol_N `Ĳ7+IqB4^o8|0yVo]9?7Z6X~^ȝ.;ZgA˶Q͝ 4lHj/a6{qP?gҪT'DK|19-}{- T8sB0 y.^k.]3^Ʉ쥔C)vR&ҨSq2;\#$w8
nICZ8|}9)D-kt1Qs?\3İWXYoikUNeީ+v fEP Υ8
CwIMcF`Yt^3[j"P3۷FIJ(Um 0'OazBj{x'BBZF{D=~ewU_`G7!PPhx_ޫj6wHq3"f]ƍrqe#.Fl>;䶌)zUIjSx4Am0_Qza7jMuóbtp	n36x@_8݀ R%a=?'O_A7?RU#rU
?Pc튽(ߘbAJYjoVߜ^\XRiwoF[)#'ԣ(Z>~dga.ӅFE
>|3WtHy `nwxì+YIl2+;FA1i9Be7k$t~ߗOX?T~Ltmu[<s_Nq
wZv+E>&ͿenW`#b:}kYdҀIZMϏ7KsmPm|NU
33ʆKS*s޸ǫnX~h ^[q{?f.BwxۿWȆl\ 8yd}w,b6Oc JxV_lUJR-lmmY0vsAW>ͥ>I41K沙%b|ч9]'sٓ11<f.ev3{{'~λ~^g۾9`g6AI,ښkŇnlA>=$30KSS Ӑ2
~SpI~,PFeB@/(]r͐B.C}#6w.b"IQD[X~v0F%H/@,EvhLgX>,MQi5EQ"SZlr^Igk$S(X[M5V.jSH(H{ܕ]ge2I-iͳyV\)CR>zttѵb>HcNgͅptREffB~^c5?n.ؖ*ழWXdpŠ "ĽpY&UV7Gea*IZzGJVnU}ݾC iYX(azÎfYpx0H(#r:
ъyZi`E\e Y]0U*EK}y07VYR;:QdRK9d*+T"1)aHk7|pVfl:_:ʤUJ	l*=rkN[8n;cSUOVNeU3÷ԃ,e\-dLUGl]3i,F`h[6Y\պ᮶B
ï9^ÌaN&64` r4"x7dkNϟQwAg~iN5uN1R(,'W'5pXq5.wјgQΘsz:AbE0O؆E* 7ȂApsQ<[m퐣1l4FZ [YH&uk`bWI>VK	185[cGq- [p]q>.-5q a}ל3bW/Ud]ml\5}߭yd	~Fa84PfOX:vLx	Gi-Ϥ=T.J_<vh=Dqtu;"$JKEZIRA4T"0m.'o߸n~;yb#pk9;U(I`'koB)8;-qcs7H?tӁ}3 8q9|ArW^Mo}6S.^F]X{;\,C"zU[X"ؽ=!nxJfNԑ.Y.7g@B.8eHP^C=m ZinxV_lU+-oB🶰@ZXka :
_-|tK;}ئo',fEtQ4eOhff.2	s=w=~y;7y~0,۷Ƕb!$b*D;VH$Y\din@3x1CXmA W
7	P0!aDZ	ʧi:WE|Li*c3QO
iJ,Mٌh&Bݨ`p.1;kW&s,Cc^Y"C,VSH#(i6`VL&72u5/Df.).ca|,ҥ=6fVrizLPsKXl)D<kE,4i(2Gg9FNP\d	`,P*Srm9ܗ	K3tJ{9q\J/-iJ3UwobOزްEZ1\^mCb>ky~b$VjXkUiBVj-URZaA.2-~;Nr&٬ݎ
#l:'v/kg}n[n6+DmePA,5.P+S&Ap~88|A[WvN;
}E39#
b0O,kp_SY!ïi9>Ì:'[X$@܄kQubI/5Vո`{D7\j`~e.wИ	yVȓgE>ƔƷt=~̨cYK=UqNݑ.[:|	^p4 8g?5ƟDIf+a5LN*Fj) jMDMoWw-(	V+nmh*qcQYM@HX{'|nчC}=;.vt}6jzn~p7ϩ~l	~D3,C;
&]B gjK){Slv9:0?i<BIt;KċZMR-AC*47Z̎wBw=
h^9x _'C6qd?M[,Fvuf3 [c^nqbs#YD8?t]p?\ַo~?	KlFۙcvq-pSnYmvN6=iXw\Ǐ;Rxu۬6bI4;:2k}+1"32t2t:Ɯ=<XA/[D}Vf::-7I Ѕjx}ks#ǑwG?r",!ʚG1 ՞/M w7Co߸_vW?Hp8#k/$ΪwfO~<Be?$s
ɬM_Jeyh\u`UQl~<>mo@;͖ǳtsEU^ ~/ &؟'`Y/p0$,4	lG}8[obI3_aЉ`0`r}Tט77ϢE2W`LO$x;Wx[mT^	_Ept:hnfkz&rmΚU,63ջџsݹ׽	Å&p'J~ 9A:_Q,wxG=:}c?ǂWybRЏnTQGTDyؼȢd55Ӥn*$,8RA7(K*̐@Dy{n"ZhzIa܆K >m^Ɇ\c4SAo 
`J Lv=`a2*VۛvG-nyFO?/ͫ?neM~GsUYafs8udvPsX]N<"7j-Y0^ E~8LeQ%6`΃psVjx]pFq}udPB8MESwp>]My<BVa|Yw6/uw@͝KY"fdն&$_	JUm?SՕv~ag'X?Sx6.j"2{}PL%bu3X4r|XKБf$,"c7dk$p- zKoa[v22	|h`)PEx ENe^(PFuy#ɖA
E`	' 4YW/K FZ$(l
q3kUJm;lߧcUIs};u&c^f
u#Z3e{4~y[1CGhlw~lPSz<p~^[ԾHoTzUrtoQ9ɁΠkIF	, Ͷg ūf37j~T)8[!7-/eFAhwX#|=ҷH4Eg:U4[ᾩ"Ehuy
ܴ{·,Hrsw[d--?}E(	)ݗ/\)ؘ^@Y=-M_SZHH*{÷w 2Ov{A}bFmHfŃp w</{IK<%:`gDQLI(M|`xΚ-,xUOAKl38K~?:~]&=,dtqVT_L8N3 |mV
@@̉#Fq@thХwIi %th9pD$^W5` f!+VG?wϽ7s80K̋g"N`/ǽ.`m>,k6sz& 
aB
"	?eFo@qZ,CfA	F}|C~D!Z]_sg'ߟ>7J;ɸ6}3ڧÉ5qK QWlE~fZUq˗Xސ B14 #+/i0no*iKdl.R~``iMh5|נ*`-%@'PT	6Ph	LhsVHyOUGr\ƽOwDdD?uIZ,g.Wqrr=i8?r	n{@p'ԚDҧ%0PFI~4@xyYTwH35덯vGWwf@=r}.;3	:A
pu-+3G^20NYo]-t!~@!qqİg+5l%l37Ei8i6A<B-)ev7iGo?~~6t϶鳻ϝ~INǨ?Q񹓧4۾{h$~ݮ¨)ŮndWQO;C9V:l30B!٩v y@>*ry6=MEON[mS@ѫ8`Zਡ[_}
כ՚f6.^=zu%LI:\90&tJر^(DOǈŽ߆ur/xBGR\hf5E]4/tU0
>fG6fq b8GPr^LL%O9:ܦl H{iە"2~@=A$W$b|@{lb%:9hswQF.3T	4e	
0.bMY}GԦm2jW*I3Ynu/Mh:*I*aZexަ8_ͭ}c-oa,D*>~](.{og&<_ XAU|VLJ{XP7&C92c0}8zB))	3*<qP\ +2+/6w:vDJ:ZD<6k'Kǝ@ye<?2Ѝ/-(*#¾c	Y;No\k~o}fWvw9[ʢ\pc!I>9`߿og3x"(s {ZU&
C PXz_*϶,Wa܁Dl<*cwzw
$X{OEI"!Ӑ Bp* yPY.i~ĆĶ30́=:aJ`M<v8
;B2 lbH6:"qi8> )ͺ/lN*)>7R	.Ȅ2Q	(q5CsH$G&=OD]&7֙֐+k O	qzJBTA
 5tFuxf[pQ8==2.x>s<0ApWW7DE%;#DBzS_e[Y )=rWk18/#I	ΠU 8
a8=rjPjj50wYV{ [%.nkj)MC/7!к"ޫŘEĽsy5@ȔDJ@9FCO[*?A<<qm;QŭGDl.%6HpbJg'pA0n`we!Yi>̬mr̀id`L?
IGJcv4tB};x\+72&k!7{Ծuy%_Oy7awZ~nt\WaN2<q`QqJIDMZBUz#W!	DܱX{,ԼF>}qLk!$Cx$iqq؅܏CyЯCRMs\fFHE F Ov=%6|hVmr|~G)F;9[5Ŗp3M+:u3{l4P ^9o@"fb;oI#f}{-%Iw0Nf^aD.91YZ /Km!AH
ieWY
Vs!2O`r]J1UXC:ŝr	Q/XώcJCXB(|[R. _ܑΎ*.̢lπa]oU\#4hMyoMKG[>OL2Ģ
z.us;g 	ѩ$d76?^G	L#6Yyڀ%4Ժ޸ߵz7	Ӏ/WDgH13`Fa.$Kl8Sp^Xa@e^v",ѸHtTN@:$mXp|>$
)
io1i4` R7BH%k˓W(Bt	s0#|ggN3rR;hls+o{ng4{0miAzaHWћpͧh-cvٷyE;I& g֥9kz8r5"2<-Fx/PG򌪢 G'VĂmo.x:]&j7bBp9E0O`T'O+xz&PK^/*4W4ެޤWEQD%
o9c7J3`P͒<6%_?@Z\~N}*.w}
TwBXh}h{aq$rԓMVo2Ug=RMhFi'?~(:|{%`bH6:k ]D=`Zm(̇3QT	^te#Jhx1/?W%Lh_dpnȁÏ8r28'Q7ŝ{{Dz=dax"*c3uQP3h^R`>L/$KVՔBB73JZHԔ>HTjE抙3'f}T
rE-wч]@S{V_dWQ}#\`%A_	}!A385y r*g3Ft*0.k(/v0&X兜e& (Gx ~ &OI M&8>DVPr$v"WE5]Tm)UvԱ}HCc_?Z5/Zi} 7dX<觭wlH&t8g&Lth	M/7z;ܬGs`%bxE2}04_]dfv4٠ht%YhLRMiR_u *LHІtȺ&]s_y0?ҧSes08CMN2rB͝EDh ;.܏&TBMO4VJ|'iR%+pe?rpP~8c(tÄ@Mx2)>7eЁy#KRCH
̵#H(BD!SB`v8y}օ`tDPEu.|@'8J\{C5ΤrXk֏i4TNR]gN2؃CDvc;|f1SY.Ut%W6Qq$΅δU"Q52)sLRۍ҅ZS
`]!KĝEp;]t{X˚4zyߣrkw3F
hȗFwBĽo1"rogw)#QF:e^sTo*X9;Qteox}9Aۯ]y5.>{s˟]vDPܦH)ܣP<M-%Jn1(;;yH+՛#DEW.4%EC 0&$f5_=8(qwCs_g.=+ZE(KOGY+K_*糇2	tOޭ2M;O
}Fss	aMBtwٕ
U6=CP0#i9tݢӃ9VE<:0jr Bh߂rir{:Nc]\\P+?́z0U#©!r}Fk`e&Pҗ̲`s؇gYt~;{AvXu>1v0!P10ֻ»"*[Vy[4EL kZ2[*U@d8"Bo8)/kk%hH8!x!pKqv ĹxS$W?U^?CD'~+?ԿI	j^C^P j3zgm{av	 @?Do}#+˃E	U:`ciʞ`0&J+V魡hgj}{vW%/ϵ o$TQj(_Dg]\:͋vnݪGnSջ}/;=qN?q䴚w_(UY˕tӏP=:{oE%qυYYnW4n	gޕ8hT£I{tQ		>Mڌ	Yѣ3ou	Do2u8S6,|/!&&q-WP!W#iE-)6K*+irEXؒJZm'_ˢRe2	<BHw2<1k!-g<lxԕ^:q+zlxrKZmGoC|죲NșF35'P	O1UQ/0s:'cg@%L'̈ ZÔ XT2v'1	Hds6Tb tʫ͛;&֪FeWyE%l dJ'13$ozAihfFA6,%Z7@rء{5T(<] X%ύޚjʤA3^y*Y9564:ϦKtq]iɍ"8A7EFF05YȈNrWLTZ)¡y@v~*N)+:+H37oʦdJaE%0:BxI.gPz`&ՀT+b+`}ʁ>v	W7oP־:y'\[5+̙+)Hu0;S^6=^AȦ !'ژ˺okJ(SŬ-ь[#Щ鏸6IHԭa:\,7{Is<Rf
2yX/oAsqǞ_[6<mo7=uBWG~sBU	9iGZz9uBoR٠љZFIhR$M9R\3(ȹryX8fƟ?>pf[󿫩
g,oIͪkc+Z1+  R̊r,H1/\5&EȥWi&M$]鰔7[q\S	#h]9 "{"K&KqQ ;ɖ1=`j*EqSdx>>gaÙ[[Ge/Kz) /\9A6*B_0իfv
HĔQo&f/΄򩋜g=_F[\}"79GogjD[`.fjJ(/6`aI,RYi JU=rIPb%W Kpd
Ck堞w؄c>jն179!iI #a|u~84o-}/ͦ#ap~me ^B:N1@θ;hya^N9^׳V25qq~}ALo2!ۂy	.억YLXg<BنWOwٟjհD:`l#7u6~:"mcqC. Q+&O{иrG=?FI+4xi@D/,PUkuX0D*"14=5Gdк]C"(P"35wB	DJTT&T-&}cپi)VXSC bB	-s.Eyq	;,28*$~{VL*sKۖal3	NbQ{Ekjg29ɉvv	/p^bjJ$}zb	I;Pfp	uZ䴜iPua0?v>o0c􉪌O9@,]n0՝9ٌ.}?A[gV{']ֱ'P^j ڝ`f( JV9jk6uνw&w%7\izxҜD8yc8h=*¢(ӽ'g:mxG&zI9.o
\q!;ӣhYsjЫdI*~Byu4G|Ct5vM',7vm_*aD5	1P4M]✚.boa%",X֌	]jY`mgμ)-R߫Lps(>wWv.WܛqVguN1vGֽtSRc3L@+5c:UeBrk3Ax::-%Щo[#՚byk;h ph˱7n6;6QR.uŲXuJN{F}/ɲG&;K!x(m__"3Wb++/Qn}t}:%@,Gy.1rTk]N3>EmYGgz:l욮;y}\ZfFI݀ɼ2{J{J6	b[?W6q;^M&oZ`yuXmoCs/]`-zjfCᙥeyO]xd%ea,bY}/Mz1JPFlܤNNwI_L^,pw"M|m$wnfS&i,b]sJRvn1	%7~@;%efE&9]R}etpb^xFs|qMf/jЊ2	 ycA.%_ i<.WGEU~4mS՘\	-9NiN#iAWx}
-gʡPUy:{C[!>Mmaoe.qbS?9RBYF>7z ,=;@mRq7΀]#pAKdr@~$/lQ"[>961yG)e>	/̰"ӅͶ 4)!*\qZ*f]MUc .s>}8
ay5
F'ZHPraTm(kkqAYGc&N(j=rW&֧.Er\In8Qrkm}o.j{&vfs;JeauNE]#Y5_Lq\0yCwz蟍s`o/oJ~*4+a1[Al	]$+@^L zPl{Zf j{zfϤ|V?X-L+]JOu%=/`ZZ󆱑#A.'3#hri'`u.Qec^QYE*q<85JSh,ȠU^p0CQR@k2SQg{i@C'E_|?	uE{Wq}G՞E΄tjݝ9nN@@.f~Ȯ5;ӴnIwh'jLL@*TMLg	 0duł1SЇK9y*qyq6jm8ƖdB `gLmaD/e	(vO	`9H
Z3-'a7~3hgfui
3CG"GkhUHK.z \E|1@4uU~ҬkBrLEB67Ib@l;%Fn/%1x7գM.k1;9tdA/NbM\,M*aH9vzT/o<՗MApXP/nѩwإh

(&e%KED?SO'v3÷䤫ۺޯZIs>dM_J~2L{:<Ç:Ӑi]15GÛbͽu~6MR|wzt;].\dۧ!|8a^0L$;y}G]T0IlaaSkxZC`*qrtx9n7<r
rwI+׀v%i|%ݦW%p5>d+0YQ21|>EJTw'j|~r<sR3S'zs6@nծM{x7JiwıA&ha&<>mK~E;͖Ǚ¼N?CÀר:_	tfrexwbƗ`a=as^6꼗&tcE]	!Dq~}ǟ389h'd%pvNۿe3~$7AE
|鋙ChH$P.".T] g_>ӌϗ4xUmђ^YͶ5h Pss52~&,(-ߚ[a#u#y=	} 4W盓?O/N7wO:F )rZiGRX8뇑<Y~85m(kݴԸg)T'M;IOΏaFбkùv<*RgɀBEXZwqG^Xl]K(Ψi2VHF4Mq~ɹShǉSnzEPR_ܪ[7pkj_~^ʤչ̡)o5ݥ)E*=c7\4e]{)CsiA`ΞT{먍Fad9"6n7˧˧.r1+t$Bhn~*tsɕ|C䬟sp
_߳#qPnt+d^LgIz5|WXzs(5iUmko1mnͭٔ``_Mg`$nt[וzF0Ū$wzGڈ0$Bj&E;w3<o!$^.;|q8^G٠'SehԪ	?/i^qo4>5]ժr:NI4)ѠRw:ݟ_VhEnX'Z\aʕnYlNujtMwb)Wnwu$jN#}Т XZ5N/:tةIN
+TZVƶgCjHl}'AenKgnA/J*%ǧ^>X^+;"@z0??7tWX<ܖTr|O/x5iPr̈e:YOCՃ@9"a35NDdfj?	V]0u6T2Iݍ,@b]NCI)})L=rx[U̍iKk;YA.bOr"G״i=G8DO_3RU.!u9?њ$/;XɍeNs2aZ.M4%?eC-8xGfK};`4]M/.zBw$P-c$:֋Qmb ݊3ĝǁr&s'|:ȵJLZt2vŎ@dKʱ-ڦ{1/;w8Jr?m(M2{ORw55Pwv'Z GÁ70{=zW< ~jF&q]ZV9YQ6CR>Tg6(ihIhŎM2OwȈ.MiIIáZjE**L.692\gq$PԶUrfiL^-g^2Y-iI٘^рt'G{e&+k0t"fJn6 J;k,h	?j[@gRufW@J
\l}fLΘ9C4*q{wh+CՆSfAL}	Nv!t%'N0IϷ0:] Jvڽ[ݡpi"[ڈ]	)t3N^mYz[YfixFStp<L7v lh.a`$}@$Ęq˥Ϊv-qBܞ`SCNN=lt{ܚ*˴K{>wI>6	اP-%N`In)UgRݣ9Ƌƭ?}@Vրe3+{LH,gTW3Ke',9bvp澡o`fLU''2d`kS0HDG5Unc)l2)n[f鱟L]CHޱ-V2Jf((zj:ICJԒ.d-\,Ev֔[Lc.I5Z=s3e-y'/XƵCoBo6Ėq۸4I|lOf,K&}v`u ǎ+`ɯ\݃MµK>PBn //x5 ؝}1C6b)#p(Z Dxk u$-0p?YuXG.pS	#
Ыa80'xZ{oF?@ÞT$M^DǼa$ĊZYPKFq/t_>.HJpn;\7tؿ^|x`ODBGbn[%++N/B%w^^+-Y[JNgZ&`E}Ǐ6_%*Y@9cO<&?@1N`6J!Od]JB)6
vǛ(ʢ2f#YBXXߖR?
Z%ex+l6i_	3%슝Q_\U.D(o_#ԏߒr\4xZ?^<}3Kyhxn=3cOWP5%Z4s^$1EoEPDQouz.bt5H1\
?a}pJ@K2bVED*`5)%Y0(Esa[-*KP֊2Ϭ#pFؚJh/\!&Af̲@c?0$8`e5tW<=pb S%ZLa	8D9lB(P<fCʉ~myhme <V;I>|34F3DeL 8o0ɣb M|HJI/lG>h	D"m0X,`a-DH ePhO8Mac(KJgjİ$ׂ=D)S(bC9QrKHi3h.m-yh:sSJ5
 P*7P/^h/Vy&#/ xW/@<'.ؙɉ^<VgD}ˈBj!`6O'f;d,ԥ! ^[/2fϳ68^Եb*ޞeYbڜy=z˨Bd4`{
j*)2:.
Ag!@*gƠ〢`?kE@)~,da*P.7PgқDPқzտ(H&	dHkCew"( /WBj$[<4sOUr*ە\HE +9ȏAa)mFb]\}QejKQdy@Z(Tg<{6yݾcgwE!Z%kҝ};C{\h	B=֨g֪hXz΍=O=wzȻu31ma
,U]ߗoqۋ UP{u:iJ1iW٩A[/42X@=kȳX7} _6eh%BSJ"P.v2މܞNysӖ
 d  T+C% B4?'ݡ]8é=uGoFw˫7~5\~uLoͦ|8hԟM{Y:vΑ]Ma4]XՐ`6j#.Y9 p[TJ@#.&C|eơg> rhF]Y{4rfhM(¶|#dG[>e!-vnJ0*ܺ`h^L zŨ颷DR4	D5ik'gȯFݔ+m( 'e4$4jc{yk=H54$Xc\L%MbUա}+McРpןs	Ru+l:(Un^}-?'nQ!)4|Oh7xqv	k16w(,?oH&NnGؾjGl+t$!b%&bL}*;1TqX	/soAuRVeO]H/P?7\/Ыdvs~Kj|R~=ՑV` :fF>s`{p7T,L)jDYL=	rD7}%R )+s̹`Ԟx^sb%z#^GaG^^J1?M).8EQ2iDD,Ə6!!{x/̅uxj .Aژ!+ds|عW"hjV6JaQYxѰ{1w!Rg]H}({ePv	bXZ;:q1Apl_-UvWvk:jcL{\lSBcSg\@o(qF ʃf8	'Q\2`8aϮ?,ۈ_h<SZ	 'D;f}{9=ϰ
h>(53T4#>M4v9c] 1Dk|Ut@sLg	Üыbrtv?МڎsBsB/O$\>(
Hf:o
	$|x^0رM.mMڱK}["vz7?:.2Ub  "(e`#j 07_1pע 31Q9`V],!Qhx-dU*sS}Ԥǲׄ^Ow<q?FCV'^_0^*E
]Ý]vKMX1wvC;  t-ZtkIy-#T5!UҼQ}35g*]ǚD|
6W<~n#nDYQGHLu><␓z)ڃJɉ:D`\o[P|KdQ%TOp.x[W%t<+6ՆLi7RSLW?b._~hBPQ{/0ө21A)}>C`.:Ϋ-u&UMY]EyҶ']5t'?/#t3P	/ժ=5N2`ǱFHoECqH)P;*!`:55=1URc.Jm`V( _fX)x:I<Q\@LLسo.cAV66*EK>h@&ɂ;={pi>)t~e$isݝ=gh2no09Sc6Ƚ/\ІDf%7ađ/t]-kB[@ϽhSU~2F'^}w:PӅm@Qyw+{zc~HTv>*ZנT&sSxyˋ>~#PPz{ꗑ4mK#޵;(U*մ`\F+N?_m]d#g%x쯾";5vRI-5C3-9 xw*7`c盽	Tf$*L\PB7ӊIrTd}pi2r܏'5qƿ]AN(MyuxU_qP fBswwizuFL6irr&bzAQfTUTHwi8탏:G %	(g}U|y`׎*k/ ˝/۱gxIyAgj^xT =bpx{p1iCB.zC^.Դ̼TxOx Gx O,rAΎ!.
=|BA,oa_kLSkk|h[K%>NΡ$ a@x?qCB~F~BfrB^JBr~^Zfz  CBCl6x۟;qCh= &xWmkGnR(1 "ɮ@%%)Hg)Ae=$KšBA/;<hן="LX2V	aXāP6EmÃ00?T;Z[vpZw(cU>jLm<;<p>EKM:|
`ͨ(\@z7Wݛ(UZ>[EU	«MXMYzr8vZh4גAf؁i*bnZO܁{),qEV!	"0pQn}WprP^ק'к[aojl4pUXoB`UUR-ފbGǀThRUe	h,-h>@GVҦ`*Ւ4+e,knr_Uw,gP6,ſo'?),&Ɲ.TNxi#lQs 3&r140$X;Oe+9-"!>XZZ2FY^t)2gm*Y-snm!a8Ɛv!z`o9R;lmP3K=,	WZ4DA7;/nO"9c]&όU檐X6V' |3iQ7Et4̕K-ͦoNq#`Kb4>{rt9r꭪(d4	nT0XL;y<E~95RdHbyw&t0+/ |_GtG"8<㼙(pga#E|2d\)~bz%F揻>?^^ﹿ6瓕$5J*t;z4TEU\T`T<gw='E.(u96HsZGBǽIyyepce9`y VGLmnu?MWM TYMQdٻʵv("J&Ъk7q$i*gxJQƙS($Fh5jj

Z E)(-"ڶk&2j]q9w>5c`Hj/Jz9%;+g4Mgb GxBIөD2ZPH"G{&w#`|/5\{%Fne.O\W#)%Gb6 w
69k>%}gf̜+%y ֱ̝$p-Զt	WC/*:y1<vN3Z)oǊg<FbHr։'ñKhJL~9P ^JE >C^axwfpOE0fjRJTtZɨ">QBg8x}vF9˜P
EG(xEA鹞OU$@щ<3$vWwWwWW9NFG*Fm^0ja2uOA첯4,EȉFpiҜ&3 >!;;O0g/qΜyQ`}v@cvn7?O_y`Nq{x
~_ E;Fb첚"Yݸ9	 ?:I=_t9>u|,fE_x;Q}x?꿾\^틞rd`%A]MK;Zc09	~IM7}Vmr_3^OU'fZW(ac:ěo(A+׋g;@@B|]WeέЏ9wۅsy5s`3'aфܪ1Fd^cn`##ͼq`v-Yđy1{wRj٨#A`74̝Fm{" GɄ w	pDQNxnꍦll
.dfv`C@X=.pam+BL]e@8J -)doEPAxT>PDC񮜥W:#gu64p9؉G_;psq;I0ERa;/|#N h0C-1*ވM!hM8>8
"'vՍ0 ð"f?{ٿ^^/f)P;[d'
jL<C1Y- _'{=i_Tc#F%Ȝu_"l*@WǫW''˓SćM-lяubX=>q%R߶v؎	:%VIA/+MȬ0h`Y<Cڹ7P?oDكfE9&\Ɖ;cЍow.ä&\$*,"H@u5o[{Y.Fh,7č:8|w(4Q8_ǧ8/K;_*k`4W{D*3;_M`C{I#ď7KY0Zbjvɏ*󖙥u'zĿ[\;tGekO
4$rݺZc0Fݑ7cJ <	~}!'e[f(s7VȿMڷR;ppפut%Nq;S*hN_6YI-F-X	`J
q |wHGUiWTOX_n[/	\VXg>F=ƈa~KU0KMr.gtK$>":h>ѬV uZяۛ	,s_/tqU@+K"}1.m8O!(Q']R~hI@+8Qpna!()_(Ywu?_O@~Bχ}	љlj9%0oW,v5 *%nx>c- 1Xn,xÞsRJlj8n@i~C\=<zx0Y 	rdwX\?>t$ػŻ*G?zxhE pĂY#HLX7'!}m6?}|cPX7mR4)Z8ri
wOU;uXV
8br&TAx'"
oA5crL=wp޲sn9d^~Ghm?p4n
F)A뻴oaGp1APd%l XZp/7
g{;637uvds19g^Hؚ˖Y\	tz=(&fk};[&!jCt皧xO#(V[w0fbko!8G6ɏ=uGO=ekrvCwkϯ>:́=3'zSr<wsYD'ky:WbJc=@y/n^	37v9$ H{1ѱp:`HN `/"ٔ:/Ysځg@
890Og&(Da ƍBoOO`8{4q0~Ic,@	cnNLmpКc4䳐t0aVXlZ%F<i^<\;	M.He=ťr={ƾQp?VMf7OM+qJrT+/ד)C\-
p{X`,k'lNE{8^#VU{;ǯۧG:p|ϡc1DyRqO4QgFǜ	f0&26u/d6q V!o,:bmuI7%jZAaa)wge/WKuؿM*b~ Z5$4cbE(,+rB!Q%3>|UgP%!A1UA,**+U6<	eE!Xqt"!t6f3&v &jAo +7A@&1ðھ	@DCbZjo\9ʸrU)Z;}D}3tw'M!> 
a!`3uPZC8b")rDo*?b5)&j74cfD"r~GzWѪsFN/G󄢫
Y$AR>kT38EIe%
??hw:Ͳ*nL	cziM(ܞLNiR^
7kQAH喍Gv\^U1v/X$iG=_QgU9@c~s</`A .$>Y{UDX^VNخWqE6R!9<!dYm@
U$T
RJ*9!َFY==S2L0G44Y;b:>5\XCNOq4?ᕉxl\_Q& q׿ 'm1e0L~;a~=~Oj`oL.E{޽uHsq o59Hthbh|TFvi{9v>b8E3vz'B,s/ɬ7/RZ!"
Zۗgaj8ݷ s_]ßX$_#1&T9RY:7O=9^\v!<'rH~Ra3o(G; 7i;F§.Exyڑ*|yXqtvm !( PY~8+XK-2uw:}H4?3SU=)"V!M3CyVeNXޱ:n~av+n}(np{y΍b@Y{f0E[˜W|qݽl_ח0ǕK׻s}_WV^9,;ot
vczzܶ_GǏ|*2QvdMDQxEٝ//z߮)uD7s##U^Я&C	UKodoi	o^~ż /4Q-1V	 Ǽ[-sOzQ2'1^}f4WD~[{J+<\??nF 2n
@F|?|ʿo	|Jnܫ*m
ﵸ` Ș-xhGh|yyPnn`bm0sc1쒄' !ވqRQ6Hl(Ӟ<L#!WR㊣WQ9lf0ӽu½=ޭ'nkO"^iYȣ	SE/o$/nu#@h042(Қ0\o"uc٬$ZRtHNjAoZkQWQ1vcwS2CJ'_́:\;x:@3tpфz+b~1!fO[	bO+Xlm%ʽۈ>hsqSz=
R8وPDӍ°s}:\nZG[~Z:/g4vom%D~oAȾp`F?''P(<$>2gκ^ѹ-ׯ^=ұhl$MY7d+bMgWpv#|ukJvNiJӾ
rAfDYm%z'֭HMJ	>ZI<sT$=j#~T{[>fNazXƭ υWs<)-K2Qɂ{{cc@fLbZqSÈWRTU}5@vK+aGDe"8rUAbb1FuT14k+ϟ~RփJ	L["r{#^y3Xɰ	%rՓf+<P<ϴS2)6&䞝`$E]r;W+4q~X S~L~Gog?9hN&X[S$`NưMx#ѭ~l3,eQPdO\<6fr{tݳMkAdG_fI,9VUy}h#jes1~劮USe)R^Y(uAsXM'TA\;kbuQzx}El,⻖gWXrJGWR}/JO.܍d"xMQ B$v{qCXaCO>Z.)?]X&Qة0*,JMy#>/XD_weaMxi$47UieϠnc?O#z_ZYS}TY@SA5|'OT$-8ZVULFf_2ԨHzʫjE̱h8*BY5߁qvstqQeNj$(םW!vP4xeN>PY	Z3;c䛜C>NK=1ŪmjjWuM{qbJ=u	x&"OALD;"uANy8^&Y-R&{޹cRɐ("ND!MS! v/Ilii{(E@F_GSwVچ+(@~'ӳH@'ǎWXbj3A~G\	+'V9h'DÏctiSy]tXtN'R/1ISlM.$׬41WˌJ
+(&kiE3ZǦ 5 -zg@HxWݿ^/DE0(2Sә&%kt#TWݿFoN.Ӈ yGr9O5_{k}	?4,}l*éxt#Tŧb7B|
?ONUXsE|w,_O]YOi-jqPoUQh7!P7A"oA
@Z;6Af[EM&lk񲾃Ր3V]!zәL f<ĉF^+o	>B*($q'':!OYtN/~T_|j_&O!8G8*e x"5XL*n0a@/»ZIŃ93H-4vMGW✾7?%%	Mc>S][*'S 3w->g|Ag=d؀!aThazԺ$Z1	/[t7rQ~LD	lzFdf!T S1G YX*@r6MM,|q"r+N	]OۉϮx)ߊ'Zm;X'UuW3Ǥ6WT@:~H/i3pq3/:h6?,$In8^0fEI*Ie࠳MB,RDD|Bϩ{iK0!XwS-35=DYp"bB%/<*ϲbzxнnc_EwX!j,(5pn+'A0B3@޽=Y+qet͒ސ3LwJ[|MU7ydhəf0͜h4;<hjҍZfo}v^Â{KY09eNAx|v^k%)hͼH%w.=2_$\TXLm%Utlb ?87I@8cNe ]veh7 =<0_U>bE3ClVʭTg>p.,]2Hs&? Rd[nO9/\ Sv 1G-WMi}~SrQN
.|\ESqt)ΜFDu*~Jd8n
]uQV_=zr=7ƍ6ۤx{'1tFӠ-VMF.hi4C`.el
 WR*Sί2C5MnN=",2&}|v ]=R[Q6Q@hw8WCdΨ7YL¸QFyb7):3(n {3)y$Ϊ[Pf cQnY"TWWY|քؙJ|ny([p)3@߭MU?|!W|߇6(3)<omW`ӫ_Vָ0Ee\W_G>jKnԤ63RcԣWRqf]sXxb2X НаbS|  [g[ڿY3~=EOvSlhtq=?&1PHb+%9gNY5dFzsacםS^=_n,+v]1QOwe9{CqxHwYuغŨv5
ذq>V4ЇIږQZKwFy]\>{wm{Onq͂@^jD_,sIF`d:cV3v7 xϏ`Cr}Jȳ%oS#4(gG#8`/63z d@&ZҚ13MNH$WO[s"A=eFbLHJ)uerK0k\)hܸ3|xcPw~Vu}wΔWcp*UU]`?eYz3u4jǔ7kagixC"qy:\bVLǧhħm$0&{<0bzr|*L;99G[}!~[qߏWpMރKª;[?mÅUHsDFF9L{	ЍV!eJ0=";]r!dfkHMVN)w׸3iv4@9Pg^j NOj+٩$53üQXbEH5%:7
ڡ8|1(|Wq=p'S#4,\n_}J(sZ;7v9ݶ*>,U-azw?҂O=@tl>`_owŗ9etYKcb5f/5]#0u/z}򮥧4|vCBi)ZZt;{*R`1Kwԣb"ILf{l̓xD,%MH ' u!ENinE%>iΌPR^ϧ9d%SW#:x46NKK~%S7@)|4d֖-=5?@clk׸ۣVw*oP!buc3eA!olbY#sa ,hWIt#.Myx3Q팜PYJ>)tF&N3A	w̒ma/Vek 
fP,yNfL:-qߍt2R<$/Ko1$O1?x;rrųY_d$\t֑6L'$M{N$F+}6ov9MLLyv#j2!uw&E(AD˧<dB6KKm9w~dmh__NiF()_:szFomArc|F+^䬱vs3_C;lG?b,wH,	6пLd2߭{FQ>Sy(nP=].EO6%WF5Fy/Gx/l."/N3ltO\I 
Au!nM>&z63[`f[>3U
%.͌nWX׉ݴNfUOy5ڋEhC?EACbP]P6_Jano͊\	א1H,1Ȟ`1K ,D>iGۉ`0©(rdw6x
qXǼ-6]m9l&h-&5Ad3fnuE^Tr!3ì6?\4>ܮc%
8TDNES;Qh7^J&m*AJZr[or4q*QO;66Mry4*հe.dz]T[/GEr%g>d}rDIGZ##toQIWκV& ^BOѥ>}l{-ku.jg:IrcA*X!xZRԄP8R=^?X݄rѦfe7jK΁79MV/)RQVG31BFөtXިr`ThbL'yU)EX#^㢷X}hI6G|4T.NَiEƊ3V`ڑ3K8Į@|M1YH9(l+3)Ir=ބR2F{hxCIt T҉:񳱑"h(Sfa[%WS6笊kы{{ȼ"vhED=)߶L76?;zdLblRmꇰgiK{wS}hW՘vWvjhҖMi:Z˝LixGSEw>CuN+dX&70{<c.ԉG`ig \K--Suq늋bb({.5]@qZ-B	xN? Ofv*⭞_ߋa;<o Y9mqOk-K*<n%3ImUוͦ*H.|P	77-EUڂlB煞2H,Zn\W;R
Jolpiq/8NcI( eURI9~d&*ar)PpO9U 'CW5_nd
;{5LuT]&m\u].Z	qIyGF+meCjl5qL/`$֒Ŗg*aS>PTh@=67O^}y=h=g3}OܛhD̳X2Uĵyպjwحс|223,EX0Fjvqq'FvV]ip:IR!n1hj_YXQwꓴBF4|j$ߟgL[)$/L8X{{J`ۗץC_RuXňu0.P0}!lW	.NMJi3Bۑ1DYcj:pm%e\`TEXupb1䛡
`ĩX6KL,hDwݛ:?nbaS`QkdtCMDM$J*N8xg'v8zɤ!dAJnEPa3J2fz[	P UGm̂D',*9~m܈I<_ V{O.y8M-"uu[Per'pc/^\va]nL)n#R^}Ǟ3b{g*+\oD8ѺN U]PjDкbnYG62ʑo	|#TxMh1Jb~4I3a^@63vNm䷫˅LgMFe~ĵ2@8_c۳t6(u+PP~5
{*}7H*Y9Xz+rE^FNHex1ZS&{[^,?붓[Z\aX~4!p1-?nP-_<=h"e/Niq>v=_*4"c*<חvg᢬y
Ӽk>]X6%,-IYRseaLIU?H&Gp|i"H[tR"OoՏu)VAm0}m>uN[\$Ն\T;O;PMiɧx9.Zȷ潖Q8(6"ݹD4IuΪ΃Z*S؃b$tIsKԲ/d	}A%?
zHGx;ˎ%&m/9˷EgW}=tFipxLx'Ny>PFЎHU&.^*uZ$n(4gWBRfzOu22}2\1{+kZ!׻ +.~!?z7}*I'Y	zFիxlWߏqV򟲏і{*ܖ~
^~)c?$zJqצIZ[Sq韟^^~w 쒺xyEYT7+X;B1 xXn6?@kvfC[q)v`K@;hҔ!RɲaؓNe[NҭF8x}7y}0d)D!juVG\i< FL.jj)FDXG:2cNNUCc!7NȷW y+fDDŵ[&O8}eoK	]ҩ5xXn^
 ݻuk}rk\huɩ@&!<<LrWvowNvE5N᷁<֏Zр}M'=@!H51WL>!ڢB
(Fd1liGY1= pW\DgFpLLڰ`7<,74ˍld6h"/'s>>7 *w<5'L nJ&7ڞɦj[o7ݦ߮X=@fKMX7[ٝ>e_f[kp0^WJ:0L?k;$[w_i#Ve*ͿM;W~B޶VeVZv>-7Zq:+SZr54]8V^WT֞;]w;~S|&1<e˞kZ,|xՇ"_>/RRE%j-x~[M})*3w|f/e{9CaGD-g=<]厢3S6D2BE0ZE꾘	
Ybc+Qqj㨀ɑ;~rQ/-5B Cuf菨q+`>;
+`Sa!XrxFcS(*ǥcoOV#=o'+%پc\v^02F:By/+P`@!{fOf%dۜKSo-YACkȨco~$i	eSL%f*3l2I,H#;2a(y6%k?bp`P*scU%*o`*e,&cV P[)Z%z-h6q:QdjRnSHPI ⼞D)t就.x
ѧhΗǨA"#&ˣ||$>J67a,~k=b(MIQ'EGD!O%i]`sr@<]nXa݂ς/>pL̎BMtxQAET\UQvǄCnXzN(* *isqǔ%o;ժ;~򰻹vSfJV%]|<Fe&3lS|_g`ĳxXjGo;\Rh-c\JpQFFb;&f̬};3+ie9NCh)D8Asݦӓ!*Z妐GyIv.T.#AxLrf/2c,VMg>y	{#N:-urzܞr"U%9z# 4yYҀ:H',0&%Jj(Sܧͫgcr3:s?V<UڇNWʭD>eP'ϚG-E;2'4k5yt^V'	/e'Gׯ/ߍ:Wk7:R,M.ʅQʤ>t;ыo^^
4[Mn%\H]?@;F+*FBYrDP#Z+kfA>GETQfj_z0:C:Nam{6/'dspb{
m/ۻ׶u/['#l8Nq"YXLUoH9/.@ PNy&d,)	{H(۰%D}+3Z,okŁ݊Rs@\t/Q[
gm^2귮 B 9F,7Hފ[ptFiɱ[h	
_9sM0y/7W?Qw0Rp?'(7Vj%EJVF=n1
4ACJ ^MbqϐAOghA!<z̠50
䩮Hh܅sQY]0t7CH˯AN5֢qqrC$Fqrܹ\.h(h0EOOG~RM=_[.m;H aK묎@GXi<G!pW `|M'k|&\FNd3$ʮ#g C& TzȘ]UtZtN(MdMhB)'sLIzOM6j@iG@@Vr*hGZfj&56=S5Փv@c3@&@lxՍ*ksaWd)0/VaUJlXۮa恏Mز,3S4TWK6m]9Ҹc)ůFqܠiY&F*<lLȖw<D/G[EuPK?yȬj	cP|;ߌ:uﲿV0J~kP¨xL1&^7lKCY-\5wYp a} ,>bǢ- *[ne-K=fΤ
VW;r}\{}ອψT{BmN$5=aInEW|5^'ʺզ|YukoFǼxXnFw8JUXh^$X@ JڋJ`0]3ΌaQkzI.v/j|:6ǟRfJx2ne\YCsi8|ye@!7ffilbi[KJq~VBC+[2A%BIɍ{/ΟՙnˮISx LpIۚ>?;?{#2sd8x=Dpߢ·tFip^hvqZ^Hnh4`tWNO_d8}_ԙ*fipy  }4\ʹ@;0DA> 4JdvI+fi?E$xa~n9adu2.!C۠O2C^sb<21cxV繌K`
	W᛿qw#0P:K,-`S݀Cڊ8OB-j`r:b_SqyX885׸L!+i	:9f_s(t,Ckȡ]Ls0\AwCh$%N2_x\5imÑfJ,c̥!dGTS(AX5QUuTs㩹qhgcCsDVURh@Y0#k	-CRA	'6`8ZnJ3g^'2n+Hlrt}@Es}٤vr_q,0/X1
R$RkO9&p`7:[Qܸ7ՁP]d]y1(1i<m)eG@	ǹ!\;ruHª~ޝVg]޻.lXƘ!jv'Cd8e}n̗Y+3@.kd5
U=10u{N}Fآ`HMx\Qm\;z;V.<I`c6FŇvZ|FнR)Q/a4Fd<xt27ÛǬ.uJot|]Q+hIxq-d0SiO:5͌RYZBԋGw[_T\q[l;SK3jt1|tLH2#
Hc֡:3rsӵzݚ6Sus,{EUc?'r6yW_\dK(ꊮ^5AFıT*X=a.=jr
YM!1U+`0/~&ǖ_wf۝.fKf H혟9Va"']^5|f'DkjiO'S@+]Y4*bMEV~|9ܲ}.U_t~6(2v<t@U`7#ߦ·y SqѾ,)	x\nGo@Pq Tx芠QP#3M OU}袕RHdj]]U.18Fw*`nM!)΋z:eAYbiNa$i~ssSK&i2}H@,f%;xG$8	y1\9^eӣPDrT^pCg1>0f}~a	5)6 ˃k|FË~8co4N<XHNrs#fGQS	ﯼ5BߙO<qǛ:4bŗ|t'`#mؗ	*u!\?ROy&_l48BEB'"MU/Ҥz58ڄ[t!oPhc4C)gP]'q,r\WDdHg _W t%9_re̗`$0IW-}3<&~UK~bo&
N2I2KΆڪ$g	=9fQLejDvN31<F%eU_0"8	.OYl (c.IDOլS
H+2l qkQybnDg'h3L/fcVsc^Hh/lwO	nN$04WAc`:ƠiY>+-!ˑK+|g|IӺBKqZ#pʂҸWl4h$uڃ%aWXYN)ׁ$~fbąR6oy!S
V+5/se=_l73$A2!V2D}*$"H"'N6HkО|G*|*ѮKF<i9B>8WB=>O8hGjjn*<.6Yv7kh=Rg{ETSTO0VF\h<>Gx=̒D<&]s̙zZ|'pbMyS_Semؒ>=4΋?^^R
 R/9'Hxib3UڹF2
\8B4?oJ5chYީ$(+dyQ:ͬ֖3,&\.bW@oq1eP!>pJn**3eh	4p4F@rz+L2ͫNN+4ELֆ4nE(?_!K93[Ĳe~BiVhXE\gR_J19&#|"p+?Ɗ!1aDTD\V$-4K-R?`l4O6Zp?V1EFtbb|6cǂFEm$M|gekbH[#IxQM]S'?(L	EzKv=a;T@zudyv^(oFpRUၝUm-Xy	c롺dmZh50d,yApowZ4zZOX=\z*h
peQVplt$T,D~1ǵ}\
gSdZZo«Wr狳2H	Pܲ.tK<R^e1I3^:#O^JsI
񥗢!\M&Uֈ+OFD)9-C&`>Hd^Dl&^ yWjx@Uq/496Zg9~o`tPD&wK:|h$6xcKx0P&Ϣ\!uA`81)(L83U?^EGqY|` 9):J"!unD/4 7&NX\`PMH|VWF(}j*LPJJTf1Q<Pl2ʍj,S)-QgTѹN$2`CM(>D-nHR&<2H,6:^L*e.5 Nvi#@}뿳N٠
KEZV#Vdf饁jȜOu	|7?Z:qJ0:RIe-ev2ֶ^*Zg>5/lp"eu-eR)@.2?zXsD+	TVyz'-a&gcJѻ>7 ?MR	'833¶%3Ǻal# {($~yv)c=)z揠KIO?0?UpŮ-vm+]OM6ïͲbV
`Nߚyx|gKLkg	
Dy̦.m!Nk<`}z5Is7'7@?t~\]maKddh(l>@5?>Iɓ< <8?{2-l<|T44*uI(_*YvfJF2g͒qBU:LD0f:Llȳ	Sjį^sY}I0wϮ}v4۝FQc"\
'Cϓ|X_4శ_#oI>K+	_\smKm)44]WgʺSnƵU9kMI^o
oQz-DDRw+}[յBE]m2L;PՁj-Qk)~[y3-ƾ|-3˳{Ň}YrчfЛm\:Q~2帡$Fj(ԽG_ز:MXy0szefҫFG:t;TqC=,YF.k#-d
yyT/1J;Mm"62ŪAM-caaގt7ޣvl$"Pp4"g*鋺Z!mP:g 4m-Ś|chIn7Nk`AH$%c5k'ueg.ȕU~g_,\Z1L/WiQ2AB9s-H	{X-}^DdMԫFC)W"__RMDUޓYH~v
[x܄+\E
)Rǔk 7Ń"wpTڽH/0b-]]ݢr
|smKj<5#
gU'bF䌹[V۲,@M--q}`N9.}
Zk8P[f1%B7ّv^/cxZQo6~5v2h꤭4	 hLi$7-7vGR$KEE/QwY]oxd13\P0x2LAۅcr9|h;Ӑ!|Ƥ|>27>HԤ&	fV{W |z@ JɌH$eZ[N4Q9-:8c8'ιGw[1h4<><9x{t1z3v7DYIlEͥ8g}8Sɕpmi̮Aq:NBsAe
a2Kɥ#88<qf::>{C%RCk?ٌء3>!ƾԆɐ6x~oσ.A#86Q b*<̧\KNQ`;Zq'ȃI>G_4"gI,v1G]Dlq\iڿpd#
NH 8ԝ{~!z$5F ,"z2*L"埴 EzAm
6*CU WM<$i$ lwɫۃzA97uv'e>&1Sf@yse͘!<.#OhMJh`TִZd:bxbN:<>UJYh)Lb<4iPS|$(-7Ry] fIJT&@EIYQuW;}tY+#9JR.wi)4|W51/.Ѷԋ@nYri
`1] AFOK!BU"*?vn-ح*XiXnSɐB84h,
MLz	ʉ3%kL{^`@΂uWQMof$
HfNW7i.|]+LDmV͐յW,"PC#_}y2\SO7ag&4ѕIQ@uSH3Z_э_wt\_"eyp%Qa)M?a,cYfWhNc0xʃq\xld҉E9b\ZKװgݍV92>o
:_)苣Fzgr	B?}=hkh3WʧXpM7nr-wNZYd>TTMkJFy],t~5+k6ծOމ߃ҿ[~_1%4ُ#%y%{QZn׬w,ӳ{~ql	A_^}\T27ZCwP6+1<v[ѹ0S\NM%]*4qc~~FXx~sL׀\v[}usPZ-T~_>,l2kxM,܄A'ŜLQ2,ҦARifIfOy(*"Ӓd+3gK1fSP;lJy9\hl[q+LbZy^l8K`f?=mm}}EYk+Zkѹyq?ZjG5US^m٥frrN~Yǂ!]CLFVڳ,qMf5pjvɂQ1z/`丁x}r#TPtՑȽk{oe⮙JxfXCr(NafҧRuy$__ 0E:qbVY@@.㇏
/3Q4jCN8wF~?4'"e?4]<WUm jQ|SEuL4 A> GTqD<oNq><ziL- DFS/1MDO8:qլ yI0bt~4oBw\zss?;qÇ_>͂j،}];?~\[)IߊG"YuhMFh4hu[LX\D#oKOOֿ[y0GtSo9Z=e?x8GzRS|O1Pi cE0	7 }X鿱E8-ǾP_녟Ԧ~oF`@4	ahDgТ}lN"	̋E_W\+hgxQߨQC@^/Ek!5dPXōb
r;E?	 -g2%7(|hEN~2  5.Ls|A"QS/n7|I.H`!è!etk5(q,f:o eЏ5Blۋd-gc1	bK0(т%(y@|\tjG@-㌢ek<Sqq>j\Dg1[w0N)Ic@	5C#&~	VA:h:}$c?gъhev5L	+Ŵkq48Q#FDP&
gCߖQ{0O'Dş_]xһo?/&zvǏ^xaʃ^z)=Y >1MYnAb:Wo^WVcD.F	R{/%YW~|:t|Km.0'2`<L`AђP^3D1Y x3YOLˊX5/z৓:^}t^ SZaޱ Hć1dg5a<a@E܆CO=}9Y`q`4_,O,k`Ơ|?!Zd^KyNX 3!yo&uκAI1D 1Xw0VwOd[x߾$]I_iL#@bha"$_UBNIkKpHO	bT#PQP3 F-5Ş`wA2Jfll ?VR4$gCb(c4} }#(aĪ} euBvk9vƄoO
7I,qHvgrx	!h\ 'hY?8-}04J7dLkq5ZeOaa/?0!iC`aѸ)>.={EWDKqf$#XCoeMFVg0@$_>0 QYh9, sWa#<+-e"nRe,IokK)fv,)ᙣe׉m'_G]!G:6WB<GJ4x8Or~7٤&b5idh2Zu U!.9G8N_{Č_RgD
t98;'f&qB:Er'D(~Pd+G[hh,9n}32ot.Q)J~:SndC,縜eb&֌	^F!o:b;*ܭe;[`)4 4jnj8ӥ8$ӧOZBYhp3FH >bqCd	ypoqmx)?:WVsy55͡xNe㥨LNƅt"4<wFW΅e h8<tZEww4[nD7BgDjDi"J2}6ẐQK.MjzT<R\>Wy~O(Asʁ;uޜ!g~VCr_$VK}ijU:+Ø"bX%ƧIkA6uz[\TF0|K\hW "7 Ҩf*':@Uuu\UKuV2LT/ЩByeQD`Xޅ'n^FSPn-DF&ag":l2Ctz$96`jW>lp6704ԡfg԰aebkF9!.TJ;y4ITQ/OZ#VIUX8eK&h-UP~u޾|?6:eO/`"3;1ƅiB RԜrk`˘sh6ejݛ/DK"Vlt~9 *YG7!0tLRu:
1pKF&UQeRaT>Jwʃ!ē5i	'PIOI;Ng0 2p'$: Ӣ|` &yA5Cw4&x#Hڞ˫ZPK<je N_[3Atq[>i"0i%e&)0"F.Ǩ֯U`P+O-P/`Lk(MN]:GWo;W	|А,k,P۟O3Hi AfOJ k}LTwX5@E5pZ1f9 oZwK{ڽEF˕zU't/گۭs- u^qa{_ٺP]q0|m2wE/?(@(םfNK}Q^wlǡGaP'@|+)|uQHXe냏B.K~oLFÎkkJXo?J0JkN`N-nWQxy^>JT`c?itj,?c!~Ѹ|jl>GJ<;0>,2pnIrVUWQ<Nv5tlkҚ+Jo]Hwu/C]V2S"U缛^8QHd#404[Amи<ظ$=|hbUyװ֎CWFB)پu[׍NwGeh BE!KqUjO˭(yK<VR..DMg99\QVJiC9	%6R;dzr~Iۗ2^)Wws\d!$:3ITI'>|Dޔ>jnTMv:?u_>&Ń3殐d9byf4	_Wv%6*&A! $#Tdl1JΘV1lkG5YNHM(Ji{)pN'  A:l0lk40chGJj"?<.ͤ[cП/ҵf>kXy?QHѷ޻2Qfk9c!qgy.f2qAAKNmcՎmk[c>Z?[P]wZF:B*/rxGTQ-u#i0\"R<&,#Usp4b-WuF΁{] |-֏Q6p\t<?"`[>1FT|WjuMkȹz[v(뇰`^21t?tQ)R ɣ$e-=qQqVPzdTN؟{-B{v!h,|0G2'~z΃s&MdQV^Jq),]XZ[^؁!y;6rAd>}mk_?hӃXJoFiXV!tǝ7;^"Xܰbԣ"nsiiFLpAKW/?mڕu1YXݠrH0#<;/\*(\,1{,Z`:Em-ch!7әOWɪT#`)$`̻K
8EQ1@o`*NɁ |2?7̒De 
/sW?<\&Z>(lk&kVQfe72)2K*mȺ\PP]]a8a 쑦<a3R n)  2G@	SGJwNBx>x>&HPER/,L*}bƠ<rvTuv-لC<*5@a.FǴCfeBX9՞!d۝eKc.KNs[JurjKаLDeRU@Et#>J]ԄQ>s	hnF֥jiߌ39#qF`i͋9K<eRT@\Ip6tڨU:M(37tft`TjJQw,HC>+(qѓ%dG#/B yWRY81c*(Ǔ|
tO$XٛHc\uU
6_TYFhCHi@͋fR0uQ3(I`Eqch{9RӆZ3+Oظ̉֜I/B=Fgqp*{;*o{=]0tXTQ<He$
^KQf|qGk#,K	C˳1䣕qcb= 3ՠF(um d\N4JW`S@A䱸h9Yɷ'yIr0N٥S21*UKDec&w(h#~86Nߏ[g*Z?k^5˻Am1Q+}^FcrSd*INw$&#<]9Z73gh5fᆽ3G*W!%9x'R*(a=cSyDGFx3>1⅀rDh	؂d4Xγ%@"݉j9(]<RNr/ߨS% :F\`
F
`U]1tEy0v+H'kO;l|;xS5qKpVW|¡MJ'&-Uk'K6*n{vmϭM	07Ih)8yhx Hj	N֜ L}cn(Uۆ
)4WMz䴽逺lMqn?~w߱w}_=t
{?S|8`ϟc&&FktP]Î隍N&z둥%}EMp~bM-Lw݊̌9sElʝQߌg\ﲍ5)Jl	Wg,䬛پmf"),nHW#SpkYApAPjK?,ǿ0JJ_j9Qar% ErCv@al96l[
ta9\U:rk|Zk(%+Nb7DvL+ʚ?\]ήV9BV(DpOP`WeJXQY܇jrL5n/C<V3Vb[n_?K&?PEǽhWDS"or(qXȄfE|FgCauzz&FiK06jI\*P$@BA||nwz`,CS*R6SYٝsDDAnd o
vU:WHY><eǌr6t1	|!H]E3WEs/-n7;yxLt}|2?p۝!6x`̓GӂӠ!{iiiԂdzr&pRIKIɷpCӐSתpcd/ 0\%Ф7yK/ce&rI/bTWZw_Wc7ce&3:Irw	2K6-wݮV~NcKs}\2s8HުuU	y>dr~N#aSxOW(t嗗%gO>y}fˎsgΜʔ;͜f3\[k3N쇰?\meg/괣'>yz<!=JkM	Ч:gw>&sںj$$'Ky
;HP廞Cx@~͢4])ynTxá
ox(MgljG=Рޭߍ't ΂(L"+)gk;lį}	]m?628zUVWknQdƧFF$W޺&"[(D_js-Л&<ؙWiJ^iIS7|̐߲c6|ATbTɽ_ѯ]G4O#g2HW/!xEQR 9ھ⶜*>^ЅĠ3Y;App_ar	EqEX>Gӯ%r͋Xhu#"JXcLdCspuu̿FkؚD5\c2Ǽ}h]BWv	dYS8
/ yCe?Ko^Y$56wsˬF/tՏIv`bYdmѪx'
f.NMpWp:L.}0'FCPA8pː3W3Q {Qm]7/{Ǡ]PߋM7ҁ06ސxS;)]C@^#OYŗ1r	!!%l7)'UP+/SNG#ex7rڛpG/2Qߵ.zIv\8궢X)x@Y]He"W8$\̀XTDW+b-!^EA{BESYk睚ZW,wN GAc|,_!b&󨺥	{Nv
Ϝo`ߣy3tN\-bb?]v]K^bٺ$"9BcyA4}&Y9 8p1NdLl:su9n%Z7)5C*p?QxxMk<\ś?GlAt|]1k#5??Ky.i1XqL}f5ܡ0ʲ;vx{ex1qMv#E'@c]fղ$qK#*i`ѯ݋D޶{`T*U
[݋)LkE+ZPDn.M׼	xs8%mIz$
SP0KM
Q,@5	Qj=N#d,VI (h:(c<lttY23RRnXU&A'^b먅<G'̌L<-t4b3Z{;*';&X.Փ^bƛ:gMğN~x_j+ڤGK#?͜bMJANng¯4 ~ɩ0KWno&Ei$SZAfN5Q^ڊG9Xtј<U͈ۏ2}Lq
^~Tb-g¸ܙ3fCU|3[y}y*jX/mCG)5C'鲧eϾbJ	 qa#vNxJ#>t{gV]^e-T䉳׭V{>]"߉UG|p[..ef`w&oȂBE'MfFVr4EG@EcΤ3/BWD?:9I!zT>PC%B4цIF_D~4nHC}xLTUr?9Z_i`mnڨpL\bY	K)3cD?_ť0nMe:j,P/9bB`bkf/v/3*! Q䰢e:
6In6(`v+痴C
u)XU$ﷁ6c!O$5T9('YS+A(XHF/Iz&f!xZ1V?f*=fb^ܩj.)ds&oQ:89eżq]WHETWrZS;=JYy`ՂͶF*EѬ@Pz0x2R/څ-U4)!O0`0Ry#0++>(p.z/$6!R )A$}w!?oHq!|i4wu8=)v˷W/y3[Ɣ	5
iktG g8
i"Y!gvy43*Ql-56rNy%6"z :_ {xu冃|5_dwUTŃGSbVidyNF#6Pu5ݢ7m4nW{FxWC~c]cIxۂ\D;7Jiی6tt7]\5oQ]UE"$%gHO- ']C1U"؆JJ?mҠĔ"mryQ_$2cW,өQ2v*
Ճ#W"	BHHt)*(!MtѰ"YEDܲQ~<$EbQ;Z]qux4vAWFWzyZJ݃!
 쟭!Ԟ@"W=\\&`p&qf@Fډefaiy1N\wIn-j@ns[mcZm*75sp5#%	khv2݉_9+7]E; ^ӥ/2!)j؜)S;i1N~FI*wr^@9B§ve4KdSqzq;,QW+iތD."==.p0jg9Ikd:&5jecΒ#"nX+'dn Nt&~C)r3a:nhJMH,yX;^_V%֢z?g>2{'8ZZDb}
TTҡӰtChΏALl⦗-U`l	+J#XN?WUC_.o!'QHd"-yu$#}@ɰEZ^Jie~w4K|3uc5:4h&̍w?t&lu_	c-BHdW3tGp
=NQi]U_TqXr:$LyYzv6TSX(}g^1]^
'O>ǽ6NFd6xTbk]x7Xj,ϏYs)O(ݴy%m!;9zh_߷ٹ0-WiZ܍[qk ھ6ɱ*NL b>CN"de489E~aYݵ7Y(XbG9Pk{bّf`aL;FX	Hf~yܛ)Ԕd Aupi[''wmD2QߺHfR1m@rh@`@rۏtGBSًލuD/Zf,63hb8
[7Fk7aaX2w#INJc#TH/W߰J8M+'$x@ #>h0'kA.goaઢ<}b f3m4T(}:]MG9	xR8!ULYϔpqFz^
3WT#FzR&݉ofW[IQuSTPS:R
[
MuC@&_1ǉ¢;r"Xdggr^Od#$&>B6ӹkδ2Ώ(\|@TJ(ٌUOqd9eV.˶hR;fCYa{$S鶝rkbGf6*d%s9H*
o?P_=bG1JV|U
Nl"hW`C>mĤGrkX81^XK?_My3pĘZqRԹlb4ͥTgܫ+zqXcwiQQ+-fF_Ȭr~=KSHP_I
<EYqdmgk1V2KZl]MWT)sΘ0P@tA@찪}vW0Wua|ۚm*A.ҀXd)1nfN#}΀xi&sK($YAJP孿>O:ն*~Yo~.Bu?@\d/;glރ]&(!C&`e%mQjex *5æJ	AJltCCRl\KsPRac>.zzbܭ7Q>vD,l1P~UI3M;f%e7ΎSKM}ܸ|**G2aB)j#yLJ^2@*(S*ҧ:~"`V̋A/Z _9׻뭊ZrUz,b*RE@`j;.3Џ38NҦvS8QBS?s*&*geAܚggގY-t~l"S_#X,mT%LĳS>t(og/i(<'"iFZѐbl(Ks:.9,wK8k-!+x&wJ2U|7w~o9=;Takܝ&Ώûrֱsћ}r} }
yo qhIwn!xqy^ˍ7~^ 2IxR]k0}ׯ0Rm֍,s͐.ŉތ"_G
]9	4`ыqt97/~JhCC%^CD'ؐEL@eծ-
Z1m(.l6HUڭ,8axis~H}jĊ;oKkBkᑋ$lA^+㦁̿j!Cfep9d6F;}
mT+@:/_0P}*T%*׫߱ ))ޝpۓrC,m/k΂KY\EOgx1.6LJ4mpq8`Q5
A1C[r 2}A#]>o!z1|uk҃qAr}Q%Wi-1ڀ'	C|Vd,ϒI1ɲY:A{[UL")%!O~>Ͳň=.V{A~'^C>lO6Dr*e R72x;is"G!GaBG:!d3@!pDEQ$PC4supImɣpU/}rYZ;JR] U^~Pz],z%@,^(bry^"PyVߞ/"\: w? BQ"΋EH;E: Um5q+@ܙӻӢ4BG< @<@OrZ3ߚbf;R*%#XZ;Wmwxt[<ǡ9!EB4omw*ݐȺlĬ|	"KbT Wzds	@ZC!haTΐbb%
~GY\y"D<^$K)	B7_M)=I|ɞJa@jb.]郤	5I(n)(.,dfrC&+dpt@ (ȗ])1'#{{{΄aZ_asf2*Q|& pŴcцo,KIV^uenQdWo	#{<P^34`%-{B'=ЏQޖ^4E"啒҉ S R#2pl +b!Ax~pIςp
ZP0#,xSZ|zJ?1o  t-־Z$`x}BA=1@SFd>-ܟ~:V*TZ1#-8QaT3-/J^]-t;V> Tswa
Ǟ>O)jcٻ|X=JivϽ{unt@ow7{MG=G5kDg*)0q>~p*Hs2I'G:|!ӝڳt{=uCunvF1Jnؽaۓ(9lsĞqħ+QԘ}(LCr:|iazϿ>A>R~Z0Ӝq7l;y"VmT*
hqOvE80		OVe!";3\uTE>p0	<GoDؼXcF&{pԺu78t꛳p"{Cv$2D?%QUdTEjp=:c+A>u^|莍7zvƈb2 \I>'Qn mb`>'L
4\N ff)H*:Brgn Y"'p
X8;86#xK	y7dXۦ yMwڔ`ԳȖufa<3i	@Q@^	ϲ*Y.X.W!",_+Vdſ%gݾq3ϝ~>=Z*J(i!IQ0 C\p*wtPwH(vTZL?ſGJQ.Ԉ\ˋ(SyGФbw.Ѫ80bT%-@
>yJm@FmR$Xx4 j1JxK;$pTUajN]oF	=(vA9FF œCH% P
1aO`{(,+6}@DZUjXǪ(Fڒ05x3F:%!#
h;d`Xolk%(,7v@*t#aaTPRZ9SHlFSn!ݾ~ q
t >)PH]Qҙt^W;
6/l>M"ۉ9lYxoY?&ra>^Xb1@o<?^śg7hÀ嫓Gnsg<%bOqf@TLīN6$3 y}:u8 zRF`?- pŲ'sR鷭wlpMV5=JJ@|.G{o_EHxα*ҹ%% &OItbD`Ϲ9Fx@cJYFIr bvO!Ry'Qm'>!<A굳Yz 1qW"'CjYlla-֗=Ho-֗]QVkgG$ydRJ$#R<ԛ11~	_,؍EZ>_.W%ŢlcBa
<3gvѸh.q}.F͆12VjШm)/'}#2^b:K3\ŏY"p*܈ ~YJl5$ %]H]/ArRQl0"/f%a<u7a#1^"8bIU4b1;s3VsV^X{G~n99Nm^0C)}Ǹ:)i*iLZ~Vԛ种Y^ŵx37C;뷳h#RߴX3FѨ*ft?3<GMS34Pϟ{"BNOi!&ZDlX'7`P"o[ඡC\6ojr=iWbJIXC|^L1\\\VP8Áǣj@di%κx<y'+vBDk)~;Z*os*!({7[θmտ1Fcn198wghj|v]Uw]U:"%t9,eh/q"Lt|GKI n	75*<0uؑB e 8	tER-/.6x=AAQ拤A?=o^D}l9csH	ʹ>^d4ZNz<)͏~e1Vw+_jƐC,mq ݻ^FAZ3wtzw^q`o GAo<7Цd`RXg[ؽ<83TQo=y6N#9*[XZ<x|#sPYҞ6r$wr:)M]!AV4	=ȐS8Pپqe:dpJ0WíI02i/xZR!/;4ƣj3q14Wm>;מ_=~*>Mx[)=2ݴV&]*IyV]]Yz9=VI
31nka">^^kt;xCp%NX[0$Wi4l?'}9C|pMW׭aFsb폿:GQ>Ѐh?
C3}O#m+Jvz>RZn@<!9_tJMyc^j	vLTZvh@		 N.r^rSVK>w>,7IBv#>j5O]҂ )qTZ#mT)@& P0Fdhj{6`xkoNsA{4ks@P*i,<ryLDޛ%Djx<֫Fd/";GXcmHbv`\E.^h!m+4EU:cݽ61~9M)Dm?(Pq7bVNmHBgSPu<3ֶ7r-(FMRWdWMR>&WcF깺"ےA {~+b`+>oWC{2/tΑڍtHrd'5~[Z/]sS|:zʵ|fjTEHޒx4#uOIJukgL`e<Knb)C@&ph|+GƮ?x# "{ /u1]ʥ]pC\a|TiZ@n/ovh;]#;0JIM9]i D*2X`1fFy^A\}JuD>ĝ(+Z)Sш⽠k(\8DD&b<x"f8$m|R>[&&9քxIa_@XaEOJ0be ~麤yޗbZvވ'ބ^9Y3[kL%
0-VcQ}bT*%Mș|I3Qztiר\.fRS,bv?_u;:Q/ێn5'WY<0w49<ՒE[@>ŨĮ6_J,VB5~-]KqՒ+S{\ _.+}cP
V9i
2)f$Ӌ;@V544tFx@yݾvA,۶A1d"4A3Pd]*kӜWTb) JTZGߒ8sO@\9}}|J+vVqCDʥ[XHLC)M4mʓ8-l(ra"7;4Vm4󅘧)回C؏^RBoOski6q2(\^zHn!A<iZ'uDs: [!cĶɵN.W	vZS aO+_M|?;jJa%"+];\_<6ȬsS	3S0pJ%IV"s! ߶drX,_A, 
3Q3E'#;X(j0|n<+YAHCx`IFqH+ ~_^.̠ry#yȥ_|Ք
\_+rEf68ʙ?>pLGxqgGԼ4^. DYxTN1G?TATvE.%B@m/ZةҪul'%P37ｙ8'>rY-=dR0UWH%|Bْk5qs4/As5Emx^Eu L-ZJv^Bh=ˏp $k|$u}G
%
'JMqUa`Fp}ˋyOE!9Yz.ʐrFqd7F|s8T^솬齡P2i$K5ۿSe<_jOJfS"H{
p5Uu{\傛rEphA	RMyU+Sa\M)L)(_0U4 VAJ6NNWpcu,4_h;r\θlkHgb*U4ЍګުG6p7La?.ھm(?z
C+z6tg		*ܯa_%yqYxj/"K.l<_GӤmkMdh4[[kW3a]H%q޸ud3ҿ\G:?=zZzdIUh!|IInexꕭ$Ix]r7U~R!V";Fò,D✆3h^E+WT@?t_&"J0
xZm"Ng*/:q*JY@TdZY.:rΘ@;Nn:~X%,my^|i Bxv,0DHAPg:g,
jqJԤc><i*9TdQ3FE  /t;8c߰N48ELmMTҬ%'
tsHN)5^Lb0TM:/_|U0S1/>~SYuÊW87m8WKEL808oc'hܯ4|VnNA2l'D[1?i<sXLCiXR!A_-o*92Q9(f`N0gԝ{J$"ŎnTjo424Hg2sKJJL|4/P%<)Ld'&AVz|#Pjcgl'KWlK&_@r21~y]Y?E;*)ǋIT>AV](
+9![ jsM]N7q3,gK,z!Zh(TwM:MFMt6es!ʋ?ĉ"ցNK6v| ".r~Ud\AFb/{CM;+ P.T40H]|Z(-DD%wQg(ԓfJ@6XWŤS!c41 5\a~DD)ewǜ2X
F({
-8VR[4E# 4XlD&H@rZu/@. d4ӜR`%f )F.c-T}#c`: 8N;ӂz aT`ћW0,:ؠG 
BQdq]"F2B;=4k^i10D,LA<LvB.å\i@~Yʋ,?OZ?Kh	`Ë*B)#]X`1[[)m89Ht3*16:cwuKtyR2gA@Vx--ءmXV$E>{_{zPO
G&5`\0[-RO؇ h&C*hY"&FB$1!(H 2*!X񂴭>v=;c+%7XHZO`	v*s)dQeB ݾ'e@Mg\m))0e{p޵֫]>=OC{
{u~o`61VMu><;kqp֪Fb;H<lyJY_189mAjt ۛ;B5GǂISm܉A '! j*ԜZ4A&L,clENUHc
eЊzjt}m i&$`&d[Gg>~[ȇ#|L
f0rJzݭ	}ag}g${臝BMԚ#OBC3>+5'5ZvAX)P>XLQ]cQ`<ۚL0n/Ttɍ,Q>n4;YcHCZxx\EpU~L&fE<y" *|tD6+]l݂äxz_FԪB!8Ѳw+P	<3DzDo?$."N͔F%+iAE0΂0Xr->j_\,!A|Yȸ˂Tp1]ٰ(}cBg7|ș%wM?@$͉@mmlUqMfpM۸yFDxSf!=VK@heVcp1sH<fnqC'$y@t7@ӎo13!$MEoFXly3>w)<ȳLy¦9s1 &//`*cL}_moϧ֩ث0nCc8qjܢQԬemUn\0ccRǍMxANŐۭTukm]LjG5"cl.Aݏe덎{SI8%Pc&SUH-њ)J<7'\xR8fc 71ƿJ'#2޲{E|;Fg^ltq;]^ϯ{WMhUÝޕoAQNXZ\ gۣ73O7.}4pTE(}:
$oi*]8n`0CS+3<Xoy*T`Lدk@A׉_ay5bF`գK'Q3%jȢ%arK/!(]ЃɤZb	zz..(;r8Jk2=MMg{;[lu}L	6RaBfS4* ?-C4HtZJnLͅ1dT
0-TsK6qMlCrxZաNC*+Ƶ?51jKrt 5 u90|݃T2:1aQ C1fę% 3==4g"O>ޞvmޫT-nJpڜuͬTD`m@X!8;mkТRyTjJ`'_-RvI.7@)R7.)cƊ[чU^ϻaрJ+A{ ѯsrR2MRkF9ktY7`h6{6RP&煟ZAL
YU,vh?7bMH])"zOZu[QibNa!Y_yZ.PCpX=qΤ&4EP1mg D@'P/NҐy"Ɲ4CsbWRy>nHmLD1s" H;SSZ!ӟ]voPu`A
>6ar裑Pc2oL*IW0uOAIF;f&kL fMV-sB1?DM5tt;oB7+vOm%ZXe\۶\. h\_xm6R^©A C rU\]fl,x`ˬJw
%:)T~i#A'?hZ_1R.>V
A2#F]WVp_ﲆ_sF1%X}G얀,~o;wtL\$הN%mwJrۧەI,&Ynm(Z<bgf\4TADp96ҿHۈƽZZ_4
B|;ZZ`3wsL|o.Wcǁo~;H8y{9@u4- ]8STRڔ{
{S;ZZ&1]?'Qqrqe,w:r.lu?o~A|$h	ek~xOqxiU:Mʛۜn%l龧\p㭅6;u*oѽBCx8LlV녌%Ǌ_6Eϧbiv9t ȓ6rz@5N4dX$g/"|-|Swy~5M:40߹GnN4?#ޡq4XwUh zxס6D?CqgWq^ɦۏ6rt]7(^<1UcN
ޱ0b08<!J"GZ)qYN-3R-@.6h/(*?l_\j*VʷxR\8Qr2O#;;nl.'g?LRap=̪eyI"C|zyK|_$"r>0oYǠovRVcnmzvL+T&ŲOiE8+@;f,$/=ǆ1QqSzR;vnO.{:8	qD*CI6H`(R=IcӚfsԼhk-V`&ZE:!^YG~V/05Xdsl1.F@tZ9Vy́zMD0(uV>R']$DKN}QTx4fX)㜶3~n`
lFf5>ۊ]H-zr)GmiN'QW$gN$iJU$'"mGq#D+s}z
:Us|;	lڏ>HFVMkg$JÕ9\?:' a7\~Z࿣4PUxC4͖X>:׌]kp\spwF`ːOEVP~G᭾0yօcpy1),:&%#Z{)c%%X@Athz}C10ykl?)AI1}/N =]]VaD &=Eq>Ƽme)fF+?YghWWz'5 uyX,rz)aVlZR>_XF{|R_K+|FW'Ҝp]ŴE_H+)40nF nXMsC /Lmy4/;Nʩ,B;{4]95]/\o0e/^fIBUSIl\~lԷ\;1]	vYHς)0XvoCqqAFUwr
5K?fɻDnwF_2ڇ0II(G:ߪv]ЁC}|p|dQNчY|f+xTѴ?t^m~<4tՄxqq)N,YSK6۲N  f+ x}r9D?g%E],mch"trxJdQqhYg_yP@Y1#fZ&C89:~&h"B/bxD+8IZ7(4"e?,[<?</@=Nn>	ngY}Co ŹF  ӌ,#/ii*"Nw{0SS?yOxL1yY?7!. B~:\}$X`'nxǙqƷ0#3oRѹ~4?#xq~~~u0&T8\N|#wp/>ۑſϻQ;As2I~iU_u's/˼Яj2	EݏcؚY%'8G7ݟFa7j\\a^HuڏЀ"@`ľ4}&	`x=_ aWh9!DuK_N~~gX!BM⇗ino<_r!I]̈́
2n³	X%h '^0F63ř#X6R(o+I>XoK&[>ǁk ٘PIs<o"44V3I܇OeiaY0	"h9n5n3cD eRX\Ny%r! ev	MWEr
-@*čOaְȇ*&T0'E[DB,uAZpSDz0)|}J,/COL[$ 	(0&{'0{[;_u	A@Li?cGDb0^frDi*mBV;*qf@cƛ7F1Cgx>1g	PӟOB4 7IguL89=ơ)>뎚^74ij_DSh;
vQ/.a{Pa]/ {$ug<]$wiMOS[Zd!qw_`%Ȟr 퉽 V;Az1O{s xz/ZS/+C(̗a$D@d9?c"@J!nL0Pd I1 4~}0Hv HlD ֜[n i<QWYB/on|$2of7Dzgj=Bǿ'5>Hw'ON>V||VfFt?URVL8 DB+Of
 9z!
{M̞l`-b*_Րp`
`ΆWfoٻlB۶	)O1r]d ]eطݨ"cA؈\ڜ˻OWWJ
:KiP?`zO&S<E@N{Lp3MF1VJ)Ț@	PA{F%dw@L	 cmԷ0V Z=7T-|<o]5R[Eά`E55"|5;oY*ff<<3f(.~ %^&\՟>A)FR
-΂
iF<8t&ɊXWpgZddsg;Aix"(( &8$hrh)+NMG0؊&jt720en?5uA$'@xk̳I]I\/xBC>
L8 ѥՋF^G^:5z[LTw`#%`~R_ vb8:Q.dCNWgcp|43S{Pf6#tHٸT=!q/9(s}vS Ng
%7pa:L󮢰>̤[[ZtOF :!uΛ%ހ%#ZCqR? qO>&xWauMQ[#7_!~Q( ̥SNK	N,bAQz쨶v ;=x'8ǎqinO1?I-m3F';.MRZ~[#0*HFqtIA K˿'^F  A@
\k&Pf"FOdwd@;~+*48z-]S6+>(ii+ [ u:?;u&=tA	Lz4VYIjJn7Qon-M=LoXUC]_[jVݿni:tI%ԉ)UȻn̅)n1.Ơ}=)KsuZ?q{:GA;טz[fjgo _Vfyؿ iURppώ]=aC8Oc7kIb` m2}@67ьdiM[ގts_ʼ9vϛs@=w;5NnЁJH
C+wQJ4ϻ^Zft3aSPK~d~S?yROOrE|ҙK#3qWMgq
`}"&"r}~<c5Y,vN;;;O_l6:^]7إ0[ay]^ᅊ aOY/tv4X7sJH.ik>*_:R2ώQћEwk7A.| 3a4S)ǁoL6	Gx^dj{yp}''Guz9 V$:;F+2cݵ.M+t5 Fx*qQםnF,أM)~K#燇2 Nn}˛z!.'yxJס|@\=$+t
aHbtlAJ?\^Okv];&iy07e&%hJ'îӥ5'En"r@qze3I4ϛ~V$4_-F(Dq)œ@shnCѵcDI1|ԜB6LTS
<~5ǰ9e8G1j>D-T\H}^d6eub	9l\+ظ\^VvJ80:[mQ{@2U.eʛo+auD]enַCmE7[tnAG.QxHs{ý[Vaqrm>dށAhuMB(.b_cxS%
/Cx2`RxsݣaŚto>HNo>yn#l|GWQlf+K']Laߋ9R?1F+	'>@ߔk)%dVng|l_T1GengN<o^7zAw!?_w;E^Lܦk8|J5oI^Rlk1plnZ=bGvP}J-E Ia"VD|{T㘈;8#x#cZ}2Ϛb/Cr^4{ݟ[YRj*3@ebxaN#֖apaM3~Z2Fya똾V!,CAVK9ǭ-Ў_OA.3RFВB:O28r\VlId/Sn!U&@yyPjuZWhnp";p+f`Z_dbX#]K:H1F#]
jRq *0FŒ(4B, I<j"a;''僧sk20Vӿ+^V1KH&:ʘ.m6%x*0Ȉt9_DEP:ݸGcH`9
)j>clPEDL		N4^&cBkaIɳn\qHd<N- cs%GgNWNYHPW OF_yg]ok`_m[7b:c(z5J'yp)S1lEVfHW2
\DLg&o,(.@TNw|43T
HS
gR8jD6/uܳR՝|#=FAh?f{!F^9<Ruή'iXxcO4Z'1VXz&mJ3sidg1]0Φ$wIbx-@R,}ud+EFz>^6_8YJA 'iH!"ر2;ǈx]*F<1Ԥд~%)wGhftNE4B{`R)!TB|5Ux񱘤
XThgʾ[RE.-
0(Hz%ƠI؀ 4¾KI3:*nkm[+[QS`;&ϚW׭<AQqb gF;dwrnA*/4<E-GCE%0:0~TV9jwQ]wۭ@&~: xa4Dhw$N@Xpj6wj,8rqT3RwIbJf5khDsypUn- lXžڒ3e\ieVP&JGI]]o\٭ej&a-Lޖvf)iEIŰ!5Ag3h	 oΛ2]Nggr,$t6tXQ"{rERj@F::;8E̷ũL%r֍L,#ٰ:!c#+70, 0҈҃ȟ``&L[f6Z6AߝT3"Ԉlhd	(AwdSCf)hY֨<(s"ص|Pz?M)g h$f-\a'H=`cFXZLq({vs_p| B`Բ.P6UIbvm͖𱄧@c0Fݕ`,1c`NuhE_DHg4V08Ckef|^!Uiբ[6"/^cD,Xi2?RUd!Yc!7[Jq@[0M,vh-UOVˠK&[epL7&@LW(VOS.\le,@j߂	'/fJY=G]LM gutsO
xPxACi*L`]ݧ;  	!"*x`q6kʏU/D{S?Rմ%
j)FėXJp3,Lgc2 VF߰3sF#&H$IN|gsNQP>zu!z on@@sF!J@[0U|RNw9>Wba	S\eAנɎ
fѨ᫐r͜kO|Sl8]Q6m(V\mT`[}9vѣ,LcE"YlyGNFn&Z*wo_5+y3P2\jfӎ̓<HVCN1;*ylT'5H	rIଂ!ղ)Qm-Ys'8K@Ձ%>ϡ>OOǲe2rjХW/+(؟G#؟O*pH+/M}SsnU<2pAXJG?%pZszMR
,5kLw/5QSfYL4h60wGnX#qD`G^0n#ɜhduo)5yfl7>9\!mkW2<Wwϧk"GPġ,;"atB=/@(M6Hu55!ں!艍➭jZsC\QnUwޢw~<Q*%k6?J%kgܭ6
W8ӖT b~P=Ex/~BZr͈ .s<F"eS~LZ^S-6`iKm۹;q?׉[b*].#.é+Wn;0EZCLo|r3.;`[ސBd<Dƺ(ștRXRB@C2sxxk>L1Qk{e{NqZM.ydt/:0/'5=+@@:dڨ/4ܺAenPR`%os|YOl_Aʬ6j	JA96,%6]H9~A?8rx{tV|&q}^- vuO(U_]yrջҥ~Y[b ytؗ~|I Q+J`;ýSmcfUzdRL5ZH#rN{OQ,?^Q*D`s=2>k6US>6,#Xc;Sj~&Sv(,:o,ᢴR8u\NCKeYO ~N</@4BfʑX%
yZi*)PByjbVksٯ`JAoMyX:2jSy#>v%nvŕl.ܟt!k7s[}M\[%k6]w$@rɼ`
Q?-4
p=mǫi]~i_@YN01&5+"s])fBTd0AY<E(,|W	s:;#0^S"IkU*gYr"Y*Ԅ6>HڗP~bw,˗URUahI\(	UksX:4GNxռ
 <?[qpMQ.Jdt 4 -foGvƅfPè2RYK*|:Ե6dIPWQ"1o%N>ZQm#etWH	z w+Xoz%8u̿wfUDK5C%s]GWQ"5:T]&֫ 6W)av*`>#:&W1Yw*_HV,OsB"R68ffyfYlbw/%2-e	 +HL}W=3PM׹
GJЮ[ce\JX>' V&"j6"(*k9B}p?T޾"0C>8&]Fnzcstvչpia֋qR*m:H,X}Mɗq9T#oּQK@)H/(+s|⨶fntx
\Ul,m֫9S`Nξk9gXl|(_AEUHrnEmH椱x9\ҨiXBrNQ1WTFxݧ̈:>]	O%;U7ks֏ yg*ɊέNUVeTxEqU?rV1UaU/Uj!7v_;׮[jOA1ì<Ɖ?m}Z^
Qu	/bIY%~`1OiL:?.otNo2Ѯ{mB7f}E㩞"VMP
"7cts2^)?-|:-αUQC`#ixAiV.tMsa䖉k8xߴwfXf	>j
"}ZK`Uf`d|s"MM]0PχJ۝pL`VFfW;onJ| x\K#뢬	`#Z#jϣZ'doeq,<l.rc_QTJRѶ {
b=p:^D<3"&)?^A't: 2վ~Lٮ6	UnSsvtt12|SAm$K,\,u G@?]po7dT7lsd Y?0s;d	9|clG.o+^U,!B{aΒ8s1O~JҶ)]w{**CtV Y3ҡj2'5FB,	|d?wܫ^sC( }o&2yRs<H:#7~&#]Ѓq7AFL7q(2|sRиꊼUEv^uf41@ۑS8ȸ#zd	b;sCJ1_\'Ix2I
g*}*BeXlHyt%+S!秌KP}U 6S8Ri35O8Cq ]JZn(K0.{nf(\j[^ijE߶pD'1pYHŚLJN Y3y"x
Ձe1zt
I蔋k6	O
s/ygIFH>.1J+%ZEI"`Y5GGwIr2աQ?^B!qK"mܓ~\^b]<\.6:'
J	's~l>)R0IXb' AY1ARyF LeO P=Ty@SrXX&8k9wzaIʥڭ`Vc0*ǪǧW>Mm]j\]`8ȋǸ"a\%H<~hTpy&q$d9^_~ro1Y>jBxtg˨kUҪp[W;Mnur@Ke{d8V6W(̗o#>v8"NjSF0;KGK{#i 8 5oL.Aͅ{:^tp\0GY\8*܋HuSbHϛi]FHKиL	>>i:絼^('{v޳
"<P?-2ȼԞZ&kD+4"XYjE*GYF6^m_^5nItes飶+6Z.=F6NuD6JYW3'MɘfT1?qoUwehTe9*,GŬ2^1dY%esXixGL>g`g_H=H4Z[>^+kTkkBkd2BU\_FhM,=lIru=65/[?J](ݥ?4t'<JEw)F!nU)|N$	/ohQ$Z%rwFFxpZ&ܥbw#(ڃ{K:z!|-?K"\&lS ?S@w*/y$5.7p ȝ)ŬW7l7M0u Yre#j<FK}҅SZ=@uZD%XfLWi2ak<g9Y~Z57b7aQ#y'WmT9!X/Q@UR.<՗QPħSa<yJw޳l~MWQ\lSZVA@F
ѸPQ-]AH|1H Vf'3yEϼR>J­d[PVZmJ:0{0oB ZX+/~x&w!ʟ^~<f|(qGEBmJNTvd>+Vɩn<T?nVSφǑGhe$B.֊%[{4+e\2<JY.Y97oB~+Uڊ~-6YnA7R^+]7_JM}){ٚRLį4>1`a&~Jӆ76gy5S%^ž
J;

=qQ(γ7qX_jQN#kp|3JTנިUm!p-8]`rA9ɘ*a	;+D'?j|7>ՍϵsJr[EnmU@ħ5k*9K{f6ttnz}k;ؔ#	
]p/[о[)I=vvM*d5@j.Eŏ5Xrk|zmvɭr5 Zw#iT RN'YeJ8p۽Rd܍|2`[Awf`?±IΉ|ozҌNrf.^	PNח`l;E@'}Ns	LN}\cSs@lR7%=٣lJIVN*ǉdv@.^+	n"S`kS׽Ϡۂ8ffnpr>r<)5sΏX3`iYaqSƙOΘ89;攧ς;?_iȥD^4䇔kp%6%yeg
׆Oe`7L8q#PZ)+|zbM"lTUHU]lk()՗0q7sGz3]nTf^JG6	@8CTqDɩ͊5x%(ïo.Oa4)F5¬)	1D 3f/p2K3bKgoe  ^-U.tt^T?Kܴgb;*م[}ޫ;Wv
75?e{6cߙ;%w<6_U{`+#je-ۥMs0Xd|\jNf>xnETd;*CSvy
H;4=oJ*⎁}Vw
ޜl\W.C)WX[sI*z_x@
%%E`r-C 11cK7.QC@gZnK<	RVx5ݒsE('W	9݂W=rU5I+֯Ŷd$)>ހ8ֱCDw3zm+0ɖŭ.j+ۉbs0̿:3<Z2S ?8xC ܨ;(4(	#'&9v-39r8H}$@Rx! ܨ))p.mٜ*pvx=YsFdg).'v$lVѤGLm$ !IþI갓I2Q"n'^
;po'2:sBWZ8-z&Kŭ' bESLM+Za8p&ˤLVO|or.f`b8zӞLC/[
㧮 M6k@Ǵ3\^ÙX(5k=0mcV^lF+;I{mTH/>}x*{?]E0#ڗS~ՕZg"I'\$0gYס&K//HNtaN+_k(7|6/^D:^g*>?l((2L}hj5E:
גE8q[dq:I_&pD@:Q7+.KJL2.Yf9KH	|܀G^Ld*si'i%ObFɠ+Ab|co2 N!iI*gȀ`lj&6l GzvF8,	jAE]!«K'6a|G*ߐ萭p@`LqH$:9`!Vd<9Iwo8o\Gke,tOQF'#ߺ;Gg<ĦZR`|M;pɰd3m `Cc5,d_wV3. Wltvn?@3pARn~^	:yqҨ?.	"tU=Uლj$e0-qG
	txZI;p[0&!(
/&hi3=nyIKc)0b(l_4>@R<;挐q^lR/z>l2T͗ڜޜL}m<
^^;UdCs;0LUUٱC'G>A
7T5ndI+` 6A1Zpѽ§mނV/;-kn #Hp+Pe8%`DJHuNBG5ށԧI츹4|zHRH<w8`q*rF(bo(O~M [0۟0]vG`2u3WMu o*Z2hap&0H@ŕ\xARۯ^AſG}"a/`ȃP~3M[q#8UՃ|B tbD.5`{+H+[yd;c[x e$ oi'jH!&,EG0widL2SOOH-$BR+.hۀHfqd0#WSk*Aj	%:2y-}iByK]L@WP1TD_I
ܙAiHBbcjPHJ)vLVhyr7WP4!%aP 
:N88;Eb\G^yȶ,Pyqq	~X(Ud>^t26t~+/@{&"QŎccob讖i."D0H!>QFaMythŞ	u|"k00SraJy/	m"ӢTNxFAK4\4qܕL2eT%"J\/29Ph$xǦ:H	ydFq:\jE|^QzexyrCuح/O3exgnvn_PE[q(Q[W2bk<39w#-H_kp(xML#P
-á8RK?`ᰆ?O[PeT\m .*(b$[z1hC?P1N7&?̴%`ܭGv1R&RD|M|@a>Se3O>ygLT40q߆I#$0M)PG&9:>1g oR~|ʧ윰}=hC=)ç$WZ V3lz8(ޘ?vs6h#BVB7gy`a`HҾni{݁P+(ZI{+pCdbF1d~)H& F*WWTj	^ɖgH$BNt!Q	!N3PhyH6o1'5}urެp*%CVfs:Hгzrh7	qLU
ޕI>}.K?韏,(^봭1(i(<pf+$445G.C~W7O^ ߬^Uu; b+U
(ieoP7ՕHAB_[:wD5$,'%$~^ϗ^443i?VFeH8	Wva"DAMܧGR1WB8N;)`TqK;V5=iZk¿"LʯyS>Oɳp'{jJ],],/6<LUPz]`GZ|l'_XQ>#$[j&6w7bb{7v`%rv7-IJsDAFྡྷ.'oU
{y_ŭ>N>$iDroϘ7Iw^4k^ddiߵG g
;\!k;` !˦SOmbrCF-Pefc	{7
#] w%Od1\yITwɹԻP.mSf$;yq!=uM;q@rBYo0}ٳj<֮1(b9u((u\09ѥ(ZTYCh sJ.HFÓ(	s B.e8'w29:~~|غ's;PBȕ;Y՘(_D-TTk˵uZEzF'{`vec٘sUH:8p"X8&:sdm0iu$R'c_u_	cccR>p2?ډM戂)ԹWu\
:/reyoP.4<{Z'-XhO'C`m1ޫ7y=ۃqa~ʆm)d/b4(uk!j4cOГ&{ᇂ(l+MLG^p0"0Z`ܢÚH2ujN#st8FiDdii*葪\U2qD3փkmxFY*ccUYPAYV한蕼Rˏ55-b"/d[V@h|5N/e,xoQ.cT:+9Xx`B:z(q,uOKqd/Q: oBՔ'{Dq莤+k`+C^?P. P*΂6f!_ŧ	.yHJdB]hs]Obq 	5mR2RdffE CXvDM64)<S)q%[.Q|]B.|HO(E:js3:_TyxsQ-ndAoJ9g)Ȼ=me ]qSl'j>-X	mGfPۍR&T1Țkg7-j$]O!Vr?Jϖ%8ۭkJ;fʬG!$5*aUsgYIW!O \B=GhWǲo~0qkV@.lE)ʝ;*0:+^fVܩM-g;iahgە8]gjܳ-ﺣ劫ukËC?5c^Yl0Fa4V9Sc]rϦ>R <I :`ƤxҘK%-d%FG6:[۳ܤ~&YGpI|Gl.``pDgpKϕJ+r}՞*P$O3=g@ܨ !R䥆d]>u`L[_ܥY*x]Ɠ182j`KÍR Л	}k:3:mRpվb6v>v,KkﮧNŘ	5F@-:;zsț:y,
13XP,O2I\<uVe׾7O)Sp&-_Lp[[$b(K5ǬS@Q9qrUXzjZ/ѿKΊ{ڮwcy]JGWl3ĐBR3*qU
(UwϹ5gvc9tB8ɽghݟBIw;7 q=jO.<:/IkVqJwYދk"S"U(G]:ބmf1NaU3/ލˇ6^,zVfXKC~|4lSA*U?TOb2j,ov%/-q:?g^޾fbnVՕzeÍGEjc_w [=KT:IDaF{0eZ.IOO֧:Y'SH*ץ<WvKʹ:3^[([J(_nRCqEuh_.7U^꣤^"1;3	$#98ҽ,|b/I((yl~uMqV3"X^PQn'%4Ҝкeiur5	tԎryN 力O-<ahK]W-/< ?@\x]
ڱ{t:%R-{
QئntAbXw*PGE{nP+BmjQI0^:x.ɒ{D1nU/B1~9M`}Л:Men1>鬚޳կlɮ0»lJާOBۉz܉5DUFe.h*$;V'_[/_۳X4ڂXd^&pና kx3/_ͱϷNk*Mϐ=ڄ4k?Ш6Tbə-Oi/P7S@_wSHX+S$+`O<@I1c+jP*b`/ɪ<%6t$[
0CQ{Ỏ\><n}P--ru&dj_1.k3_	g]UbµzιC,Es8\!@rmx9+s|=SXa:ܪ2 ѡu}d?$Xۯ٫	#=Q]-ih[T7GE<?Ao|a,~M0)޼%otY3L;vrNpv9J&C0WVvx&Qx-[d#ϝ~&×5%**~I]\yOՕ)f薂|'ۚHS)W{;3xV~nv3^uSsٟ?>>'ƗNwmUoP8y/+kWvX(M;am̸¥	ܝ 6hlڍ{71+db|GSjeבٝv{b7M
T1.|A?٥݋ޠ;;lx.EUs-y㽳/߃_藤uzP(=FꚚ)VoրSKz/x*Yj>n9xxqQ+#2xݝnȖvMBB:3n`lɤrOjh_clϩ*ʕ8wZm!UթUUpr)gOΕOh=Qf~ʿ(p:QG%Ken~:9y~~ngЎ,l`Ltw?()[PzJ#=4Bo\gII_Ǜ(WǪ(dRl&'~͟Ҿ|	V:=[OZQ4$io*U>LLo],6xi߷u~ҋ}FUɻc|S; sۍr§AVC ^Бô?FEpRF0IQtR:Wg]	MAL.<Y,c?LOQK?9,6CK%kKxˋ}޹7_S|`T~0	6%4U~*qy+| 8qUẏn^E8>]'q~Q>IuO)q
f'n>(IO$oFx全!lv>p[%)䮽p[3ì; )wܘK"z􌾭̽k1$:Xy1QGg!J|F0JWs.ҋ%`7+|Sf}	SS֚)QBВKWJ0Em	aAtcV7߼v| {IU*}2ԋ \@ShU60 |^{=h9`\^7>T1z;U-n$Xp٫lIl=㦋 u} ́Ok-[YW/} {͠b_d)mQ)0	`1i.yq
gܟsF8Sp?3J!7(_SUk&4Ӫg]%#@y؂}8f.S&F*Kx?c3UE9aǿ`,p{vsi|a̾Jmݼ%ޟ
}촚߳F#1v[}T[}pV.j|N#RpHA
SDy0
?&o
jO&Cиg&zo7337F3guؘu_]ƺaЍYY_uY&jDZCUYs֜e'e_rVߘuoiYx՘WV'EWoI)íԉ[bnEjlղ;]pQyXб<v`ӜePٱb9˽9 ct;
֧gY*cqXر>~BSmnz6hI8~HLIޯ3pքKz?7jpn./Xe8zoxQsmΛ%EJǡ1=7,vݜeNX\GtutO1rm {kq{k5eHr^OqȲ{9{+6U5,v6Dzl!6Ŏs65fMH]!OusOT;j'=eq,,=">c_<$xszNC 7:Yvk(7TzĀ4zu#=oV4<G$i2 .:?r^Va9`6N7ybe"ghk]MdS-c&].ֿuJM`ݠv~`OB=ۺUzfºA2u~ueĞ^笫6gYΈFl%k/;sYzύYOiDVnՔr-_ۇ}"-2O۝JsSIJ
~6C-~J_XH]n!609jY`vO5Xy2%f5b[6a-`]Xfɲ1˹7>E82ۉYz4UYZ\dY5ѿ@h?2֣40ì	X}G÷wMDW;̐uCLQRS/o`}٩lms?G2*T^6؜M.dɳ+[lft!S&c3&f4iS ,MJxf&WG`:ON73Yu%(bTE<2GFq?֜
7C͝8]fv9裱LW
6K0=!S89FB0/:\ӈC ٥Ǡ'w]Ἱo-Kf7tF=ѦF2%6'-`fvI05?\gwrv41pD(٥od!5lЁ
ٰ8r6fMM٪l8{K:}e==nHyG~,O<e"CCCKJ>`'tcU3?5<l`~<kd@Ȩs0k1R!E
pv]¾nD2fe)tTQƖa.xN@6s]vCrv'b6s]'=IHX́jXm}WlOB̾j"0c47y}eG5)jaP.'[R;,_j`-dIt皪Ųk7dw{,^v;[!q1._{hZwu*7|
=lOϾ]M[{m~IVqzjJϋ!bߐ49^ fɭD6۔ELiVþ-921/?392=M.:WȶV3UĶ"Zn&ML'K(T89}`Nu:ӡ,B٦zۅVM^EU265Q57OT}UeljN+ܯGfgG Sc%Zb68_kQȦJ%1Ñd|fI Cˮ]165a$M}jD53jCcpb6"uKMߑMu$4FOL_f[¦9^Jw<C;9g1ڲ5`rZ&6,1lj8m.`"sGl<gBElj[sp_DbZҩ]~]KIFΦv5sӅǇd@2xL6tǭES6L#HM2@2ͧ\mr'{sb?=k8>w}wlXosjlÞ*>s7:c[푉ڟ^iyob#vZ,̻ױZ7?^Խ{{s[C}ÁMI60o҅=-b6-Í/{DN6lo1GCF0=2,xΪٯԥ~oߵߪll&l/2?&lx]҅lgOgcVڼ2 o%^f}rG|8;,Q<CGp{oӅwzhBtRGOo].u7J.\lNQ,=/M H5|3Yʓ OR{Kx۲	ŚE[G]f1{Bu'}R'y+f&e.cKE;P7lM-.OүDc	h4U&uS.H.DOt[s'2f9	T$ßΐ{.b)>s%@yEh'jd5>2GVMH+l;K*FƤVvʲ,cB8!"/h2Y\߯<l5rʾ!y,V	}}5hj'
K)Q4
Ѧz'/YeG2&ߗd!BN2[Qu!ߝKj7Z|WeC=AtEIgԣ2.&Q(m!ڱ-D$&L$BWĞ:>\F]ROd-\!jk >M)&B淅kH}ť-xG'Mj_B	u.{MԿStsp/uDSec8@r\h5-dvr{pQ(Ss
mH?+D:"a:vIOsfy:4(= %|;bZhjw?'gT<T3RpoUgJ]\Q%=aꌈaL"AڸW>D4{OiP~l[ӑnZ"y#do#a"DMMH.GS2qȎ2ENDZhk"OENT#[Hto˦KLQ*_] Wl{-@hp"1yE~􊳁MV+bb'bR.Dk(1MJW2b}ԷSO0ۑ0a<.3+8ְo͏iaLi0{SYhKAdd#}yvzZ:8r&TRfI:Z/XPYE3dT =Z/y`\ON^#ޏˆ_ ,Uw!ޠd,0+@[D:SkӀTG?5x7ŏcfB+/Mk՞ZŰmCx1q_b?$`U4X-X|D;-2GTe+	UP¶؍ $y[* 2ʃ#\ESaSF7auR.#>XuT[1=b]oeoa=6+ZWNU/*v*	$}-yᾒݳ))~%/3ɩ(Q".@GJ2(Q|SޙJ7]+N{xT4w1U[kpD*o+i*JQl:̄^BldEd៞V ݏ+?ElWh~@ug	VlTK,Wv5D:=.Oe͔c!ޣvMϚ\$lc}M`qp1+*KM&ƃ|&Y=;Lqgnǫ'H%qߦFWEZOO*n1(.V=?N4J*Sﮙ&-NA[{#:vT!VCQp2	ƪt$Ӑ)߬V`A
`X5f~udV*OEKy:),hlUBɮ/ͨ]jJ˵++pVUD0א4|foLu4;>Ќ՞b\GJ }h)U*>V'9D0E
t?WKm3tEA/aAb9ډS&ݏ%UQ5JU`?b%ЍUoTqʵ/t[H}R|"*J#BAi7k1!A('y[vRrrkO˟2$AXUخ.Erz\ה?bQ%zQW2]P?&&
[REWɡXʑ穻)5kL<Azƌb<L
W͊؋<29)ыnnVtZ
Yr[MS蘆}Uª?f.|Âڟcڶ쉦nVnIT^L+ݥՙlQq%R,@ӅK4+FKeتty.k3b>$aY1h+Y"S
 ﾉJK9X̽ &Ke5RrQf	~?~uܟw_t ya>o.;Es9qA)L6h D/Mw&;[/v՗w؊Z򴈼T{x}9>?UMvH\8_	+BT+PnFdkYtRoj	GM_ӘInQYݧH_ɳU,iKTDIbiYЯdXޱoI8FZL?84iJ5ǻ[ -cKAqY+mvhX3m玩cJ+
9m'I9	4Xt-X+(d᯺xc凋tR|5XuNNC,[Lʇ9>Vw"a~GkGƆl;gIO^|lEE<ߪmڲG"n,駊(_R|>37qs H-V׉<
.k߯jR@|G:<1>T]Gk=PXӾ&
4<2~$2 H9zf_L<ľŦCl;4Q|LF.XͿfKXsMo^i1#~ԼT]*BkB"_ۧ`ƳszDbv~=Be2yT|2ZQ&c'ho/\0|xz>ㆫE&_P|JW|sX9 n	x<nF;Erd#mɲ؆%okzIP!m {pqOrᐢ9Nú#oqtp'!㉈dcqA2Q-я6HJuW<T/H"X̳lyww@;IgA\l"Ͼ? !v/6=2XF$ae0OvuLRz'ZNkŵ*U6 4aD,Rd,x3,ng{r&BhI&MgD+ǧ U i0>&.-dzuxuI?Z| X҂Xu pwW>#v$?PMaitL*KO]C-R\T4A }NԺv@TF7pht(vjt{S{3˔&f4QfG@Vݺ(	dLB@	lHA{;_NKG?~ۻ(+?Ak( ISI%xL-!j.HB2G%wa6%hTnljt&+zoQWވ+#Siy1MAbAI-(ne+荕X1šs%3Kh$-V	ɏ	N */%MϮ$C^ʀ"XQ<;'dP:Kr:t}?WnO|#[B bHmn=a*jq2gIaehH|$x_,'OQ:8B0ue9
c܃:RLd
P@yqpB;Cq<PF
~|A/`7fdZClF$
93ӂxdLic&j`!d	c%´fKA#;s0p*#6|oMwս\,)`00T%nG#f*i^>0dzt͉I VB$1(dj1X	h,+5!慘!{)&`Q!K~߆^u=.e ZH}fQYiI%2 *4Z)[Ԏ;vʂvh2]F6hd-Rx"TW	pd [8g	UHr˻n˦DIC:Π{л?_>9U*\KEj1+9g!Sڙ5 m<BMYEd4N2y>Isuտv BO+:,ML^ib8f	H!iX*qNDYIW{P{jw-R&b;(VSbށsC &1u"xD{8MnʤyL1!øu//;AyO%GgǮF_Xq(2⁋aOd{ne}swr	 E7"<3VٝR1ݰ5fs*$qAaNc+1HA§&"i*dLI6B#zK,{ W޴X`7#!u Gy`%qՂT\;$x*+^howE0MUJ#IX	FNweIVG.|(5jc^FLbbOR|*ɴ^e'd%ө"?h"a`RNP{h!.dRPrn/Rpj, M,WT j20g	?`%ZZ&ߴyf+2w4*{ЅB^"'8,]9bpk$xVTXT&PNi(-To<+S?<r_]Ϡҳh9mWud8׋tJKg7YK
9ȱX:wtu88Yaۡu4jcKAQ/⠅KD1gf!-\Ǣ?E}Ƭy[뱙|Vd)/&&la/'
	1E:9TM=~jRTɏ}4]~x):)+3J>=o"8'V-Ai1 -E82%&=AެEPjDܟP:o^b6/d5$r6,1Ma+#wLr:D4	eXԘ_N_Wq> k]@]ǫkr`"@MS\m6Y)I#iJYcĥ"VK(48ϴE{~()"ǌխF~͌j	L(7L W8s8^ L6cVeU
Q˜cX*I=d
厪QjE;=)5<\^y4^uP%-M
1z>䬐	5{=B
6$)V˅X
jcA<\)"kw|5RVj{M^
W5mE-k4x6w}OkM}P+@{qckLbn7?^|[9O{[gK<XĲu 4z"ЅΌld3G:*R6n`n#>qĶVT;q]-hv۳Yͅ."&H 睍f2ZZao?{ΰwGU7,EƦjF+kw@j0n%_nan0SG^r;a?\cl:ŮNFr)lcRQ cBA'M媠S35K,SHo	8ǥLl|+H^4٢?];a;\_w~u;Wn7ʀݎOPA;5vddpgX	7\2 yU=cF̆VTǶC/uQ&v%MNgܶIέ8/`byN[l?Klnmbͩq-IM̱X(p+:X1ڳޟT*~fFϦ`C${2;eWWKv^KИ rw;5y<ujf	UZ8r*݄J6qJ3'AjBE}ۯ2=E)buAS(<8N}>"H;7e}J0puy=<zF<b
t5g@1Wć yǍn@C- `i<Ldo^ i[9(8(s:k{x.e1
7Դ2";ޛ[d\?7=Ħ@ESIР3nH.(Zgp(b>*N`
[0u*O:wJ_Ybp*R g4˟#Rr<0YXZX&-|]VW	dz!4}	Ht,ojE`=RIEiėEqa^+,0b6M6Q.l3ďAMNpDd̃_85w֘c"ӎ/UbtuٿUz[DLˣwcks(<M۬XSMVP׸!#W6 he#J0eE5+wX/9dWBlZ58?Ylp#Et{qs~U<T|ۭ>@ivx&^,m|Ksi	A}R&79WZEP@ɇ=؉nH߼<@Ѧh9űN~7.oEg|Z\AKoɟ)VJT`]V~be'I˱|Nq*QlRΔ0c3A6q۩DEP>GjR_U1yve7X-|<VȵfcaݟCeN SKyZ̊R>r[TBbI-1)ǙErտb? HrJ	G/L-a=|)? |cl1xY؉k왰t4AB$}mZ@{;	e^
95oꀁ;>ʩ>H㜅N<2Cuc{(FʵKE-JzB*Ak֠RCxbDy1ڥ/
d+QБ1Fݑq.MT pP]=|5?Ht3\Pl)Y9RBK#mn,PVX*B䢟G]MlU[8_٤dMb{~)EOqa|.SJ"9=k4bI9|` Sg	Mk|S1+f'*?dԜ$7řZt<]S	{")"W|¯i1A&ޘݔ<-Rݝ݈QX$3,vi^-[V:Uxs,h]>_dRrގtND+Od1]ʒ	'8eBx65*"=J (~1Nm
npDKP|/beƇig1HRܼOԽ=+A0|Es/\5ύ.vms8?7խS9=&>AM^pi4\	ڮ;zSsZ9>@q1g|١^MěA;,g&b2^v,_X!c&ؠ%'vrsO`P9ˌTokaOHz^צouraty3<;8zח6,_Qֵh:`w߈f]jO٣]6M[E]}v=	Ԁ_ۓ/3nZx;9$Icި 18tx;9NІj9*x(ES2s2RSSK<y&6N~* S Ls!Kxm1K@I[hCIZD-5bbK&jz)o } ?_U$-4{{aC9x|+ &Ei+VJ85  #|	p"^bO]S5L!8mus2\On[6'2w]!ldpDЀktk,Iț^ȘAS!{0 0cct^*(Ly0dPn`¡+Ne1R8N9Dɰs/F>+WGU%MzxG	D'zF	ՕՅS_22S԰x=zIm	u--#ʹ,y%"UL56"mY.i2##̈}:g̵"Ćcc`}n~4Agͽ̟8?Y-~߿iŢXtfٻcZ?	s<+r|r8t<e_sjcΑ#e5d<5kq9,
oښWo3ql̯N1c`
3k}C;p؅ڵ;smă(I<Npj\wv9o'lx9r#hl|<ۍǜJ؏傇HcMP^_v5q
v.gGe9~
U v1]KX|'ry"Y׾3fb^F'6
޷f-sY#Yd8kv kaJ0<狝GH(4t۾VV&̀.c{6N .k0Y"=AkI >_
8k^`h/(#>!]J^!hj'Жdcy~KFs8d󞳳B|ᓨ:{,Dm+a$DP|	gVX0	galϘ1bNH.p,>f`&s!*LhJ
<`pmTzrh)6T7Ab}׿A恓D|[<Px4YYsD۵~VǾH 	a$?ά@QBD/=>dipD3ZpfH Ub7h+7i?DgAlDghfzV{xlvZjfa4Ae15N <#I:Za|O;857&"OH$+}yE0WO-,' 8)AKcjDĉ|hԮHc7!GH-HvZՠ&|1|F3?AKh pQrĊ,FzAZe/Di [5bpO'CZ(~ͅEGωCm^hl
Ip`T~]rџyW3v¿*&39(mnK4cz-=%d{c bs(gO&!6K3+Iye1i,|+QP]9`% B+
 vZ .!Q 5 C.``6]m#9a@9<5@<BдBf	M		|@7F2BT~%\CpA,8:@ZFM[SPxr}ǎop|y_.ܧi8E̎C CEF ?:`1dh0,)J!`a:&y%2#~PB9kvʽi4ghH~k|'ܕV?#L(hh4DџQG=x>B DB
_ӿ})`~ Bޟߞ_:;$ hJƿw
D^WkP*H;2zdZ,7u݄EL$}-Y\7Q#qPE`+gW' [vX,fB;"_%u
l
وHf%BLL" EV`":-s+2"PEp$#b^DNEߎ)8uxfƶ)j2hzt¬&-0iB@CXEЋ$Iwǭđcq,.2}'SBȸ@o	m*uBmCB1{*ZA|a"^s!;c1'&Eh:T4`KwBm`@mVUY@^6 KpٚFyҏ'}ofHt06.qؗL"Y$Q{60Cr!7mc`{.VR,JD\5KgeXt֒Da!%q2ùјu8scT44,v##RЏ;`٭Ĥ,K	5>~(,m?2h @S5bhL$p~O <k#hPq觵Dd(	{7zqxr<YayF`%>{VX.n'NzQs%H/"\Щߔ)gH^2	^)#Ӡ37D(3K˲JG)nbY(ɆPf jaI&0"#< hCE*n۴VPC>Ə]e1 HME7j*i]%lʼ)LpI zO}Ҟ(J?MG>D1h|-a	{ïDķjA8A>۴|{o5J&!XnQoIo̺i!JʖUBGiPh*6	ڪ-EN}s[d-QB^qQHL-$E8 VAp%Y-X>U03yZۊ]*K}'˞:j:h9a;7+vTr;Qu[(vUEK$ZWǭZ>rRjRY;[`Of)Ւc1/EK f(PY{2v"Է-u[TS~>Wԛ5)#`1
޳Qrmbe|ԉTB-daBGȷHzJ hQ&9 )RzbM"`"t,>1HwFy!DeDPԗ
'C&/.p>BnǑs'6{H7d);%`B)Vɪ.oBV	6:b;L-~%ōq᭑ĒIνĻJ7ZT{a8MH΋19txфwTT˝ _FȇOһ29B6-8%ZXmP`T.P2
`ckr'Ŝ8ϢjPE1K
-%;b22f-Gt~"Ld%pB	p5KROGeP~,М\pPM%9ו1L)D(Cissk䖥krÉ=avz>8xj?0JJӆH~J~2\)*Y̭2M$锉!f]#C/cLSy{hd/΍٥`86VřS҂4XSYj䬤0%(dW묳VY8=,vj"Y.򀤑jYF;fx-q^*DvI0lSYWȮhO&נhu0LF7wSrE0BtRӖw#i	?i0))YdV*pCQDݢHTQaxڸ?29%FηD:;@=0%-Ii
|CzA~-ЦXH aPƓE-VBP sgC6T9 >C+#U͡F-\XBʃshh@sq I.7r0_t[s`2X;])j#2{bJa߱<h,<PŻ3PnyP6I*]2啉c
6ZLQafW7[Ml#O1B̨ftbE޼UV5K(x	ElIiq%#od\ 8KnhE$GDf1xQ+6&M{'얌6&Q2
R:%Ϡk f;'BA[[VW"Iq_Mƥ5uh4ugR1y-M,7E'y3{y(:@C4XTZVQl`]ɛIV;>6d4-ѸY7%XtC~41ՃORZ\T
#Rбj8S.Ougu{G=qylpu~qܻ'+*֛hic?RSY8?L,HDn/wr~zFwu;9auФ+%.LE6*'T׬EJ/jK`ߒs8j#3A@H)idb=Fo{U?ME(Wx)
VKa0Y	h-Td-C1"	`ͨKWD#sK縅$_H!,h2Lxd'-f4ߠ2y]ۼ .QU{G0@W_x!WSYǀ/-DfAwN"$*M#ʮDkNK`Y;Z۝-x1
K.Ibɰb)D
x>Iz59#0oz@-m-R3kn '|a]PY53$B"Es|߆ykvAN+'V91Uwnwb-+;>2
poSZ,M)Er4ouvLNtjwkX~ʸ|/-d"P :,WLqk(Jy58dA%X)
9\sAeM\7-CͿ.b#ƟD-ٶUms6ml)%F)uAL:	^Fh!֙q1X c9 	ZT@%bܯlRQA%EDdkƞKal) =6C:*b*Men;>Z7h2ä/-5,tiѥūsʕ:7䣻筥Ji]{uUqWy@NE9]uĶR[Ig1_'vҺU"Y_biKSy+ބG!Gn<.g}$O`!Ѐ^*Xja	JyԈ^)"VXN,Tmsт  cн$)O^M&➕x0YU6Kmx @c4Yk{L'<JHQRI2]:5ҕX*MTW~b]ݧCwЮd)=|-ң䳧ǽY9gЗ }T{\IdDfiƐDКv!K^X7G'۠Zkzr|?ty"kㅁdZZ˙Ծ3e]9V~4ٰ1\%N=g('AZ-{@t3<{Z1{0kxIgqh>P}qD9B~_N~qcnĀ6DkCȵ١me:m0bZs͑1x.	Qș(Zx|<www4:Lzf	<Z9­`v;F읟\ztq58<&NO.(usB(1BRR6U?i){|
Ќ8uI|B~{
qa|07j$<i:t×)#eoI-.z~T<(p<Ss|l Q7HmܪkH"u'sbR'Q<E3i[R(:ʢϑMʐ(8k	HMA`6
"V#ٓήl-&~d-|IեBht"9Q@)=ecQn' d4|-{kZp)QٖOdXJ"Uxȿ
@ vwCfZ6ʀ?ܫRMELN&ub
>y_jQhxDSKovWV5^Ykk,aSlIRS|leg:;K~Y\>~7잟:;z};?]g~Nr2w`v%,	dt"-Uw''w,XFMy&u?qMFww!X@[,2wnנdm֒Vmh!4z-}9kz
z<ShAi_զJPMzZ׾Cɶ>0H9,	`FzccRbPB-D\fVA˝yfsrr{p:~$"1%a.$؜gw[UIi+O|>)Uhk#X2XؼWf{tQV.bBH @6UF9퍢r!F+ӪsѐSI,\L5ND *'c:?	85Ibi	x'[ 9}G؏Ց.MNbV^J><f@D֣E♥YV9KUX!}(\WX9ϼķ[W xRU$yWssEl4w&I(g::ӡؔ,q1voK뷁ocs'&ffuיΰ]*nqJҹpެO*sc(Z{&9m0bX +/A Q`y!eiҵZ5fk.q$/v8I;3(=_.\~m(llǁ;Px$it:$1l')^oUS-@*<<8.O
1\A
>+P~3 *{)Tto~21&K!kí=DZ]GxϬ#븅6xL.l#B[?#"80{|
ͤӡlNȧ$|Eta0{gYTLng>˩2z K-zX܉bR;I(<{YM畘rFrʒWHHe7EJC,Fr[2	yV!t3VdNSa
c<1B*GX9۟`hxv/zoO7@98z)=ƬCv. $M	SFW@?kPaZo*9cR6I30PaۻQ,nߥ`p-֝q=	:t4;MJ})$қ[UjKfZ}X0A0O[Vl́O#pY)aOu@#d~.V6;`
`
`ƩgLDL{iֻۆ/ՁpiYm0ВM,"
8ah{pFP`=Fl-W)U*S2Hy;߽k'=W~CYrnGYM 5=sˋ#ۛ]4VڂMCh	p\ІoEH\6%#x!(-qwj#kwYY޾) Δ̣MV0l3RK/ixlD%|$Lc$cCpF#\PR"|{Ms?tTH0#f#ƲH	|WQ%x+$(̸Pt0u0#PDVAɫWO);=Lq
SVQLPJc_d6D)BLx-ݕJyN+' @E=^~Ps=~4- JfKm Jţ&[_&K)*KB궥k0ëÓz'z&R ?SºT
͉=]2W)a:.D^QD`=ijY"?kV'،*)aT)~iq)*N]$ٔ4駝9qifZ0tbMtvNLjZ%<(~b3w~x%Q5o|0zUݬr'?>=黾u^w><WRTi/j$[&QꍁM@}́C(:nR[nhLaUXUXUX:t̜:jZ:e#dBl"~=W]&淖x\nF(dqe2B(Q%H>о>ٞ[HIϮtyXuwxpԋg_)].USV7eUK3Uge6/fmj;<35
XUTkkn냃YϪ :]7u)F{g(sx;z>lY&J][Z\oQQKjե3aFzTmc>sS/>V7קЧ^(oԸrB_Ҕm6 \ZSeͳW7kJ発ʀFW@q듿_Gg ݽS^E}kuMK].+^Eߨm]KcVKJ風H5kݨ*T5l!";Z7ϛ:;Q(L@2
ZuES  H,<:ԧxk7QwpZiXnK\55H.=_036mnWSelt	*l۶jiѲTK[΄ap>[;R(>WVm`.Q*+61	N9n<c;7wP7ր( LgͶ0:J,H-@ex'$Y'jՖ߂]]oۆ;N)6-XsĎY+_y[J ưř2s5!;F\9yKf6HO$H샯m,Y ɯQLo;pny(i4Ɋ؁ܬzɐ@0Yxtm	9_ae)-`w묭:4eZٝmdkkLp5&]D4^: HHXǐ#"`|{Vwl\\.U+*kM?XU!	/H@KNfa@s<9%i]m-pPe߾}&R,+O_m2i&'ݔKY>v7yg1 &
LQ&fEe0yYxf:YO:7-X;vy!p`>PW"R= `? H A>WŮg@58p]ܣEWBt7'9t;@9CK5#)38nTov%bD!F..L4:nڀJ`7\'᠉.NǶh0Qty.HD&jfZ/*Ց*ddi`20,uUOբu^i.A zVh/aG֒8bjӴ5nZw6M!)y$cXzF!p[bkj(IP
<P):fXFMyvim4VlIT׻G Oٕ3[G(tkBa4RV"$ijI@2|;YaK$j&PEurPT`"L$;G拂Q/(0}Ni`LXeE" 1O
JEhmg+A<FM\WLx	UGpJϩ 1S76lޭTޅa({c*`vb[k໶=Rc7!Ɍ>hߢ٭Unl gnF}(@*B`	 QoUv۰1A=pBı19caTۄinw蕆kBFgr;m11oc9-nR aJb=;
$Zf	aPHgϦCGC+9V. [ovrn~ryQ%볣3]2[9 l3
`9?=:;<˗If/ak Υ|h@$^'x5GtYNr09)RP;!,@,	QD,
@{2!>.SNWХvH2oF#,Y*bA!;[5b,z~㻟o9V
Qa,x\	{&\IHf~]Fps5=ᾰz*ߩ7XKP;f;@.CL_^1~úDX&iiap!0=<TqA?X%u2@ ŒwtUR>Fcc+U[c0ٵ)8~KW.<`.U2X*(mxCԒ#]qdM	(4E1%wxӊERfd\ZfU^9<S$HDC!Ւ%z)EC%	J5:o.hK],;9Sƒe4YOx,t"%@	>s81EL	Д(6N,@M1)^`2Ŏ/R]XHڥ4سh߿~1b
+R5L( K/p却)
}ꃌZ5ѹ޼P.c 
RѾ3bH*7pA%7!u	pjQ%K\WҞ0Sn
TJ􍆸*1FV{	c$1FƮoLiQ'6L؜[;|$U{8MIreY]$	'W#n'"Pdܙ7SWTcK,CgUW#{E;flEYFd	B_`\M&^F0<m|8MÔ~H7ؼzç&{>ʜ.eM?~`̭҉\9,&W1i'Q/L!.M;E}DRؗCwX1Y]	0~bSki$Y-ummkL:D}+kfsi`g8Qզ̵ʙ.Re׫pȾ=K+^5T)aMV'륖~8gk}p%Q8+VP&ϑZ@F"r0f.hf`5_P}]r@H:toWl=g#.(`;3#)w{\KI&2Vȴ;b2zɅ5DQиNykxC!h =CɗF%h։^*~uK 9XrRjXL!q?0ıYyR$krp2H}uͤ؅'T2g0̑TO)c1FFf](YJҲhbIq%I#PGܞke"6Cb0(!xg@9jN]BhQl
-Ap㝳50 }"a**@7Z曹]2,q2^8}RyBfrxB&ϧXYJ	GlH#@X5vUa 	D%&'Ҁkr=;ˢ	℘^Zdƫn_y	j|@7ǞLwm'ȋ񖉶`)mlfu#`x(Ĭ0nMH)ޭ0y<BS|0<FK⋀b0:(t~1.*@'U>KgoS"W*~m;T.5ﴓ|1G鶟:-D f~squc4Pqmhv)?E (D7iVBIGC!"A/.1m/?l۾8~wloTwc2l9h40eIȶwIcx<adDձ{~DdDH*&{3^+;rrS28}E\vvspL`/ʫj>H#<G*
IێpXNo7ƃi#R-3iC 򿚦?sr"jAq]:3e+-@ƄhOEЌJYP&JMq52O2{SAQUr.ؒ9͡^%-qJ#L\OPMCxTƧ	<`)lJlT(Cp\O$>cC#mME_.1Eo{@18Rޮ13b#V''鸆D/_$ڍS)pxJyg* ?7gihB}!SwpIenZ3A&9 nf-Yx"4oLQ>VtD<ǴZ٤_~@:uMJX5(NVHw47|b<M'R=즓[F?Y^f=F/Kp4د&Qul>3\<5xJoLHoi=|1AH _Ѓ!#OiW&ouJQxjZb<4
mU`KpcOxKE	W2Uly~^BBejxlD982xó6&:qӡ\V[$i# `Әd_X93VSu%A-XqX PYvbdkL:{K8Oc,/̓bCN0ۻg$/0.O_\}>>t	1  NOeaߣR2@^N7 s/XZRe3BAt#t7<:'m97MlN\wsn!U~&ˑ1qct]ҝ<F|%*[qu>JLJ
k.ي9Yf}B$M q8)#yd
,Qp2~|3 @x}I}& Xyw_Qѧ׭=5ۄ|3}$ġcQ^#_q'Ug}57QIu,vR
0<JeXm	3Vr2ن׃t'U}6cwIND~XYRgMJaWPJ7Lpٖ6+_ǅGRY9GBy#5{&JT>QA"ږ&&-,רBì@L[f
1@W>){LY2ދZ`Ԭ;AĴxxܙbp(~XU9Hԣd/t <SP'-l{I\
W|ZHi*q^MCY*nCSeuJU4k%4l)?>B@t
{D@)؎0}2z2`ZRdzރ}B	(Nb*A.[zޛTGOEI_RJ(r4-&TdlNg')Η #?$БJFEB^#'pz mR/ߟ}*?,&.ci[I<]#SAGCLi *L#Ea@Ƒ[jO\ٴ6Q@^hCfIn Ij%Oon!>wrE?]KT/:q{iK$m/#lfjٺuҝL6\D@]pkpl>'E_N<j9\+ܫѧEEjrG~1'y%,Z2E]@Wq`a:R<Ű+4@[\JSDE|J^n#uPWB("!&4Yvr^-Uogzu<=7O©AU,򯻻@\FIƀ]RLXDP\U#M7ᔇ U^Nnu_rK92UwrXۣ.^-gXp{
^qz"1r(`ϙ?NWF Jb."M}X!׸w+f<CZC(w97yF.#/mp[8)6k"n%QWA#]t	{7QC: %YIRöq"Ga9=rIw3ro'~)Cǃ[%/(<S~¨grewxʉxې0wĽABx,o-x]D(r#争#sA?,uu8_o$iںxYn@a֋R,Q5]'c˻'-$(r(M[gH_;gfHʒ7 9sΙh$Ry,ҰPLr<
EQ-6F#q"),Ό(Qy(UUFwwwAm|jEw/OquI_l69[REMmT.ohAn]u8M5JoeX_T<RQWIe|brs6ܷp&7-e#۷*e^K{M"-h8r,_6C #DBj,=RALfZDd,EYY^wP:˄"JOP-$^"j%)gֺJQВȇ"aYEA<xrq3=<bŖƚ~<J똃4P4k6z/{B",aE0Xm*~2Mզ31[ޗT>j6PkG&	N;UEjcrle-XEx+dtCZep JCݩj}ml&+u!<S|`d"." mTyoܷX/*MT5;C|Rx5VPe4^6m2g-īаǏVRRI
-5z*M?QTZLw =(CY*]dP̈9pZ\*:;j6HPp0㿴	xW<Jt%AԷQH7oߋѫfOc&oQ%(KM:,mי4&[}a,f4ƌ32##$dն6(B	}deGA2x:螜DU&BQn<*Ms\E	Ă(#Z,N67NfѠ!%};	K.ZuXVJ;b++9N×ݝi`s	L|CM KJ6Lku>N˛6rodB٢{F,]0Q&#*a,K=gOHY)a\0:ٲ%Fq̨^:!|u3uK=  ~iޖ(jKm'O;4\h)u7uM'eښ,5tF6

 hY]C}UHE=][Mj+:[Tn1[+'eUkKUV*zaqGr`a\AXQ)4R 8nW-bFC,}*yŃEaVK4TYڹL#Ӵy܄4j8,n"" ꉭvO6x)Hڂ9黫)'fmΙzL6y/wBaDnx׉5mNN0he	#{;,!fE8i@k. '	3
xe9%dx`l±ABV[\7&6kdYZ!;DIJeOY/Jpd/ozf !h _яD?;&[gA+QWfMmjikg~D=9@ؙ\^]
LVaIn8*g5@vnzP2ŝ.^-Xw%qthnRhs7߂m6,z TI2`z\LJX!/{Ɩ5X-ePqDܠ쨗$ARRC+h=Z=Mu4fb_7O8ܷʽ	OMvHiN0j7@+Ag
Vљ,BPeY\U Ҥzuz+9CIM<賓&-i7匣ի:"Y;?t8"mw8%8XTlUNGaڎR[ϰh<a>T9gg+?qQۛۉk
;aJ)+ N+s8[aY0$`}V^OL8G#|m񶔧83IN (0y͗\mj1t|Q@ofb"qz25rA{n |XTfJ߱F
7\3-A%haڛBb%b6pرJ>~l.[YXF1఻l|vN2]yfTg&"&j~t5_p%aPN`w˓zQ_u$1??Я	bz9/u<~\u`ԑh1ˁrpo缋fF񨰓O/=pď	?9]wRP)XUTwŒ]DCtJ1ݽuB'~Rѫn;O@z:@k&G0MITqgβX1i-$J4ao лu.O#'V)`/* J	Eٺ{?ޙ˛<v5|k>"[k{SLûI^iND-}'n/"Xocݏ71Y Ā+7INK_:=#x~E'wrk/W&BL0~ozO'^69-8X+:`G-l 2m$^Y7fWP(N xRMhSYmM&S뫓5&Rk0JLl^1-ׂ.(.܈"T
naP).Lfoqs=ȲDI"83Ls(RVZexc'yJԊ׵JtHx/j R0P	S1MIa)ɼ=yXH'n-HYd%.{kFqԚVɦ\ɖuU$z<VkRp)wM3n>mB䱋^1&ӸNd$bٖ4^d!Nֺn*xR~mKQ[o\@l*'-jZ)[o;h4'j*7X(7|*8n:&.=(Szwڧ!80O|ƹO!Ύ,vs4;12[˗h, wW\SFI珕Uo,	{~ȞHs9\3Uu,ܸ&
oY+_
$  >t>6#(qTP çF0VDOŽpyc<y/~yx"yxwڸ>7c\ܷX POe_k&yX*vt5a=8z7Zj:Ӳ/ډjup:uwҫy=Vᑆ>HYvCbe,@6*3AMx=rFEX$EqT"ɔvIb&" EK1_6n Yɕf4CNΌz7lX;u6t&=p9;d0v3d߰y,\]]5C1z;yМ{k֫ق0Ǝ}XHcoh}8 X0->s$'{Kף1*6;U}v}]YsP L@J^sN_sHi9-7@2ǲ=Vs 0̸6ov%yo3v7dz}}&;3z<{^_B0,n#vi5Vl -ts}sθdY7++g?@M}x2cc〽zKsesN3lx4fc`${ZXs}	bP}d)Ncڻ;-c_oz;ͱ	}YfM4Om۽\͹Pd/z:A6vtCDD=M=݀M~ScpI&mp獫9l !@2 M1lC"CLd3dۛ0lC0]
9z~0ݜ'_	BO$)p͝e2>Eg0E@-pu& `i5kt]q .ͯi\`m@~!ځ
T!cZ%ם 3ٰ0~-A/Ak*r^S2"eFBz|c#P_ꞾHp<R%MAsK!$&Gǣdr?烳Z~#7MNgɧ4{@K[׼m=3Ya-V"0>[,r)=уd<:;8ũL"ND>缴% Q"qH	@'҅QBcy9>tS
ej(Mk#r	Hu$e+Vp7>i 4?M(yM_bd'FXkyH8g@B6 Lk @񺎳rЬoͯӳyߣVJV庻o;"|#Gd
%QDsjcbN[H :S)L`"~}IX[qdcɮIƲ[UvwUmVoy
ٕxP-DvӢIoT=b98|Yc/D,=Dt5aNWluՊ8`ByRN)<`$O2-hܕz6ဩ# pv<9dӧ-JLL7;CT$C+0v;yi%ܹxY>BGqhoq\_.!{C<bV)
_- 9K_Z.可HjNGFFogkɦJf><sޜ/%̼mMͷs/8#,H>M?gGá1!EiGBemߐINs#:ޟjﵴ~_˰E߱Z]alAig~Ѱ0EKOxq,Bz +P'禰h0"048r,~THD2-uN!=VqkC|SGZh}t`.FlR'Q*L裊&0i I*9C%M,`ѼiBSp]-?I,}NDZ愋)FiY<mZoJ@KV`ᇃ$ax{M*R1zpnXuMExa0B֛f(p#73[tdQ1__|7hNN?˘	'Z0e.ɶEMJZ'͌tfqR2x*?m0D"5`<+BGnpSKO2S$dh(S\WbE[	SfxEץY(8j༂H('|}:qrx qG']*FtO½&0J+"rls}-NSHY6!=k%"NDЂrT{Ê֥:Nrp>i8$;/q"rsq25ʈz\}z}'*Z2sJB	!#⤌fP"eԔ/5>Y?>>>~w>x:֍sd3"wY>ths @p!֑JrM|"5Xd噌؏UIm,rX,]/TB5*kn+OPp`2&$ `b=E	Ts(_{7!٥5PI.@PAߣ21Ubcr^3RQMZ]vF8,~w5wLlqġX|xy۩no W
 "'%_4m{Hy,U&ws a& ^\fڦ%]3SadY(LKS_3ܮ4PH\F6
1Mi;IrE2Y#k@"CB'#%QH#֖ߦ0aSo9ݾ%0;8C|~'aTSE	+U:Rf_O$
rCKk%`[v2ucMFe%hwU0$v@Ƈفu6ft>Ng5{V@	L$1}QSP-)O6ʸ9L@UZ Fof|CK_ i˼/gPkh|4Xg鞸(N]P'	OqvkOyOǌ_|$e<?Az	My|c`(NuΖ獄R,z{m)?c%?5Yg)ܶAexa%3Q#ؓY#pk")lY bzVDVkR\&KzI.I~2޿W0:%ӟi@4: i3{WED튤h6OZbjזTiAl	5,ggj˔"*eًVځ8/uGitQEن!9+2&«Oșni tM9)+хXI6V3RKh>e(]Fن@(dõzf~	$A#O,[5l+{Xx'oF eבn
^bۧ֩`wcR@&2̥g%B3`<*mZՒɯo<ßVFZf%L( 	D>s0I'53˴xq#*1&\%mƒD$eWMC5l:Cj Ll-s+--m1:^v(=H,)#mnr(	q	t/{FSde	V<_&
fƩ 	۫YˠBqɤ#pKO*O"3fuj5 /&e((Ɠ`*,T	{w^V=Vd(26K/h*\=%!{ 70P`O/F:3T]MfWLo,?CF<qzd/eͨNƠɨ_sbf@>G*<Ti4`)9YCrE
zè''g]I	ŝ"#S D	z7	RiZP&P%^F9t	_JVz*6
WrKc//,m4|TܧeecǶ>Oǣdx<>~t28Դ(*}t3x0Ȭn7Vlsԕ\&)WثMͮy	_W'MrT;3*5^
ຬn)݉o8li'a:[7|$!z}f˯u|TdshlUWa|	/F#.@MlY09pm}D403_\TE"x VHcM;-=m]7iXtO^'TD7ܥʴ$W
[ʯܨ6%:Tt}@R´rm br~d=hquG,u5kޭ+)IA:'Tr $b!r~&Ss4TR>8 ܁XHXg Jl?EKQfWS{qnt~!;*_YJ˔RG:T\-5M'j*Zdԙ nK.Őa,OYXSnwu3(STJ*wDO1DN%t`ӼPOinzGm:!~d+QS(|7f\%1uj҇;/S<+pdE Eiύ+["Kjp"->IDV/8P}2w>~;-X3_ Szzџ[f$w^Ed)k-z]S ȵo%gAV=_|QchȫFݎuĵh$&MGЊM%Em4J?msx9tw#'G*x+Ih7\	S}[@ږ:k7ɲ<gSQT<;T_iΪ]*r=תTɛ0iڪۗ/S3;< UiyN&D{<JLuIk)6Aި!ǈzXJRv6f*Ob#<t	?oĕ\埄ڼg*m,Q%f(UlIJhM'?eH}%3|Z$[p(߷l>/ظ}UQ2ꕏ-PwXA~ָucu0|xY[LiCRI%\M0m. 1$1^-1vql+תJתڭVQ+Uiv6ԗjw{*)yhՇn>9g<xf<i[2aw?i;MO~T*O~X{رQ$E30olJW=S{8z)sTC(ވUj \t>ʊ6u%ԇ9
<[eEAh2lPщpe{]m1#/L^\K/!/\N'~$J~EbfZ]	s׵UI<JkŊ|ckZeYTd屦	B!ʮbe)A
HNcY2(<wOXZe=]e҃NԿs6a%Λ_yzb?9P(}QuMI̢?USFܮHSM,rұ\ˊ,L-6]bVn Cd|.*HxٸLmBQFY'RN3ݷVltO!9g׉	6bdAK5`#I0t(;":(b8IR$N$yTaqLEbLNErK)	A@QU6#Z'iT/]c2$`4I	$mFvICiGye k Em*`->9]I\  	ds#읇F9I$]\*{qJHvv`@h$liqݎNyMT${(?u;|6z2<E4;)m6Z4	gvWǺM6$!%yV@\:^Js}XgM\B39}3~$Upxbi;B6uvUKF\A8^Z-TBSW{.=t>DRݽ̌omWp/cڝXO-Zg)>e=}YjH?bkZ3<30b9ۂY$+3poxY׻r3/pܽa}vo7lvGsv3Z!T)f/nOU1 UXJCxK;KM4]DD!03A]Spi+hBBx:n_[g\av"m] zjfzk?w`.V?Z>|1I݉,\: ҒH.'uU Q7Մ\D|<gXBpE=*#8߳V|b~d6ь!誇>2}fG heһ٭r~O/eHᱭc@X,drQls
N)p EUbFpXRǰR=޵*qɰZ*lpw<w֑^/#(&ϣ1n_(^:6%Wmt+C&t}W鎳>}#ǉu'@hrb'^ʁLv&9v&|O~o*
_KKFHc^j	Axjظ|Y%Cxq\a5<O0M{7M;$9=E0ghyAM]Qm5av&멭KM$gnm]R"vM_-ؓܸ 4_{:q$#gy'y=5~ޣ"P}m_l>b<-\/Ηw<F)R-efᐲ֟m`#vǮi~FlS L3X#֐~Iê W4$`\Cח1+@gԂ<+i|Ƀf	Rq0W':,szZ_&'7Zv툑!FAf&cʩo;%uWNW^F3-O\z *HP1FmmZռEN}kٙ>{	yr<u纺mh8!*8V]eF=pbǸehgLIM}#
0	>F;H}mJ	#rt8{-BaYс̴S$~<㽦guwdxd7SġEs%ƾ-nH7?ѡq{ڭc0mСƈX)y"3 {u0Fǋ5UtG"v޲z9'UxYkL[\1!|@lcl̝p9+0	kǶjh鏵*mRVJ6uR4ikvuZ)ڟuU~tk٤K Q;<(3.2+g'14pp],$ܕ928ќ$;,:Z^C+L&:Kd9["[]&	Fv!?
	Mjn&3GQ[N*-i GM6?ӛ}?(8d9n3S[f7'GNC0fgy<H@ z,Ch)Ck~ط5*0U-K_f)p>:gd@׳zA0~̽	a10ETUaȩ2/^U0-Ob\|x1K곿YZg>X!qAJ}t!vsOpi_%);¾Gɯ.1P'w <sv񊸋}b_<
J9@IpxPQUSV6+@;fq'Т3,71p?ƘBE'*j`)YpG諅@s)w57,kwUB:XG3e $fb*	UXi h8P)xK&ڨ֍U;ۛ!"𝪊W5\U
T! cgc+VD.u0Oېx=G_W-j*al+0}IX])!J:['/d&i`A5_0_Fu윫EBF13Uue8%뺙* uMD5M:tƹ}U&C)3EZM5	Vh["VXJ,]Cʻ*zC	B^jH#f#heܨJ"MG\bG5`׷ڪ14HvoԒ/Zkc/~mȊu먐nI4:{9)	HpT9InQ]E?0#~+~}-lKWyީ	%BGgm
vy þ:W*(!lDTd,04a F/z+p_A|"M,EK.}8܇y́&bfYz*RkKNGzݢb1eZ-LF55$*fWȐnX1_"mkYHiFNӶx%a a%ӵcѬv,?l}+7mmΐem+O6d^'hD7s|o0G417^v p5;|< :*p=fP/JD'^.*Mׁ@[e%G=5vKZz(_),98NCY'FI]i"I(C	ڗ}`9~
ENli/;:[4oR؍1{+?g1#e5 R.%Ќh䩨MLwH*"%"?szM"L^݉]o,&Wy*Ę<ة\GJsL͖v> .Ǭpz\0W{Eȋӓ{n2~"Κ}DqC5FfDݟ):Єbz~#{ŻcX^*|#mFҨCVq0Hb<_ʾ8tg\%TD1|UO``H_N$'ǎkh<OG62Z"R#DDT=BSUq}OI2O4>Jy̳3{Wg09F~2A5&lG[œ{HRfG
褮&JuNmrL0>s(9w>{4ם#
ι:64CjdчZ6+tE+Y'#(l֔'
v{vAj
߹ r{PE;TE/Bro@?069+!udqgT(2Zgq|蒣ҲMM{@|}}+@oif@FO}5ԿĞ%zKORэe[SE巧`WbU`	g6c806rt8Ǡy?̇>IS`>&3="6H2ΞVv^:%2b8\L!.6Ew˩fJ2r>٘tҕRw7Z)gO\MORBw2rQد/v/˘X.sh_K(Mدf註,)Eo]5z{]蔗*4/;Ʈ%RkN 5 UxYIl8ekqMQILqiH[MmLъEj5Bɡ8
ER3$N iQ4pGS EzNHmC]hEMޛ!9\F"mHxА3c/W_5Y8^sZr8.i,ˁ)kAW&!_X]j#|TH(+7{'6xt'oO%DY&f(LRF\gj8Da
ŶBKs% 28-xd8<N"C,th]Y׌{hX_3{-J>aeFFkD&PZxʰ2ZJFVXNh+:=jVTJଫZ4$e6:'Hj
].~I +ܘ`j	+gdp\LMڶ8dU_>;L|0pxOHiMTf|wN(/&8x,m~jjv3M'{Oj?/g*7DWwghѝ$\,	SnM$%"!Sn!(0E"O#M!Y~)tFLh;{\/lB˚ր?'v39e"[X.%tG"8dN|%pаmה Ϝj7v)	,PFm,Pz3-Y`tҨF3$PEK~XU UHKhK*i,T

O*ϗ79M3S3.~eb{:,.Mu0"/eiR\Ic	QJә xJ{n%h䂙OCi$C.to4t(.tTV5]Qn;<3f!#-{|."I.o$Hjvn.=_:#'/U>ǥoEMqs:Zs@hyn;CJ'`+r
oYc!Vན'EˈEbª'[yh^^.XZ{IO)~H#"06*4Z-/tV&<^%o
qJ!]7p?',=pۮ?pOl[K+>c4c\a4%۠d.iV3;DOvP2v{i<ݞvǔNUtAfsv+9%c>QB@g+6jV˦6E;MV+|slĀ5Ë*E?/Bۃ}G2Z#CPŊ.ˡ{\]x<yGqeNHca/|BS8YXWSo'mQVǎ`i<^90%"n?dTLD$*_	Xo;۲	H=E.$Mk:K/XaMBVA2k)v<GzT5PEoAGWg2nJG+"Wxϐ2;WOcՋ;+6VޅyXI9.3<C0:B&݁v767)c<i?)<B((lqZFxl{}w0>Z$Os9l[:z`<CM^V}S"rp׳Z^30y	qG}VI&>̬ǐSJ?!1Z]@q+)SC<:G-_}˶ffJ<,rNhwk[
p{	><F?|Z1OK__4 ܘVWTfz˽ HF^x+a@>f-{Ѥ
2p900&yh3-4Tsl8u62uYG,ZW~*؜\ZiS.fWp GD>GH*zBat\HP:^}L)v)
_W>\a$r.W~xvLCQ(z^'RРJnfI_X}x-:@(!$9۫:8R
dM|Jg|}82ƲX2:r`ٻ8=ZrNk	
޲1᝼츙,XgG=A
g*%pr8߷7Í/GPe'<pݲ-G?oYM/rO3:	(D$u&zLReow"?#'s\T3m.L
P'0ymg&e'ߙ=xט\Xrx\nGoP2"Q'8eYN8 Bh-'$ݔYk9VuW5IYv,3$vխ[޺[[=}՟]6q3w:-(p{@*[[m1̧up<]yu]5`n eu5,gUqy>X t턅ܣ/Wk'lO(ؽ4kC6oL5++x쎸u^]#V^~6iêq6ɟ~	GfbnS@*~>xߋ(p'Gg	2Fpt8rEbkzp恸;9`;=>;ط!|gYUyUx<ϧɪgu	m:=;ǳ÷lpov0ʂe騸 )ˁP>˧yY/ʯp!n,ZE1 wh̝Tٴw֔h/gU|UFYf^嵴b>Rk7#WL]sU*FyfUy]&ZPa[X;<rYb2	v;_~㬮m61Fpο (y5 A(P&Ÿ*wS4Wzel# PKV{n06|ހ>_bd%!Ev|Kr~I[{SWVXSCPv5k Q.45`&t:+I|2):9(Aݲ^z*G2g{gh5Lzonx>s*W8 $UC weg1O#oh
3ʭp-2]^* ihqSs`C
hVGk?=;s2טyP.L(ϱsp[PC]L0m1VLԭVаu?t߄;vh3ȍv^WNw:.h}l<Ď1ɱfy0a>օ휺Dgo3"Ʒ!쟐X[ه-@+f\J|G&xyk ?u6X֭IB'^pe	fS^RұFVa>\h!C7t.4aҺ+bA4F&T0\67P& ~,5	f[㒹#*Qi,RGFJBSj(Dl&^C"qu8o{żvm%H</:p5o2Mߛ^Ix]T}1ny5̿l!ɪ˼7 PL<P6S Mna#/e&o@l^Zl8Idm۽pde-KhsGǻa@6i 9+i|5mIKT݇e]HxdL"	ecX.=/=		e%;"&Ɂ(~5FpsX5'Kp?Wb1ؘu߼-&EA ]x$H*6
D_[ڋ5xB-v(a9-\(2QZ@W'Qz:HCU}X*ȴJW">	a,;)?Ȃ($J(Up&tG9b1+!5@5"aLQϔ[wGNF`0geB輜OG|6)\'M[W
dSp%7Fz^U%@=8- SXϐWPK$W1iWGw!`c:5`j5H JW'@hsjY*, 户-l%Z 2EØR`D2Rpd?@
1YjnVy~{zR1b${_LP6`(CCCqQeE&vR&}?>=vV	SߘM[G
Ky%7:1
88;M"[ Ć2j1\5+o8y$?GP%QGzj:!+g=u[Uvk77͊<vv,vZ{%>$ΟN.)SJZS@.
[_*~D	.jp)bBa]·D-oO1uTv5&mùWo}sNi)LSf8$Dތ6Bg>ێ+FbLL4ev.dW5g 	_6)p9%֦rۼ'^H$HP(c])U(3b َ-W\DS'זQÓE`
[rc/V$uyK)1:E32wz=ѓ0z(^]2>H IFS^l!	O0A/鮴FɮHQݘq=ṁa.Є[n:DLpzUW<y'<F]=.u %\Dg;0G>fmO'P8Ӈr#ơbĸ9t[+@CLW,+։k|5ɭZ=v_7:E@l/Emȭ#
28z;D!bKKǘ{0rfs<GŞF 0ayk<}6׸,RZ'wn p7`9	*dAk]JݍXAÃ.sAѝ4;[]TToHI$Pdy[1al8ۍ{ViPnAg%As~$?~*+,3
p&RcwO6=0KڇDȟf!P=cŘ	{M~>=j%6ҍF/\,btN_PM#;nu=7<yRw=Yճ|iǫd:٩ <xu15@Oʞӳvwv^~jN[6S8
kxJ%N#yla;MuE1m<9\#g΄_@h4}Oݙo,Pyfo۳Ã}<Mn$;4>ĴGJ4?R -gΊK I8V%\⤍^ӍyHO**JtK_e\;8 m Wxc.UC?"|&t=f	jDMxъL]ٔ1^euBoZE'ltK QT,Ɖ	<=)q)5KЋе3	3q?{ܦu-ܛ"zLԣRP@GO$	Im

LOD@clFI	p1Y\$V4ed]%TΏ; %0P5'vX:UD:B{HEa?\f8a"^>/-vi_o0p/&X
,P8p:*I-
x`NKQf°DؿYYRfj~D{8=V_ *ȅJ`11Xsvko.AFȥ`U90gRfã3;;8f]ע='h"KEY~ք1lkd?R*y~n}u0%yt<{VBpeMeRĳM#RX(0̚۶Ho,K1pI0A/AK`yM1C:q5ˮeCaN[Bn8>֙-E'@4h1:<uhJBsiLC%-ڷ[Ȼ	{N3i|\#Ia5.Asɭڡ^ژi"V4* ,$[? *lA<8ڊd=
؝dhːQZsЌKthRwg^#{5+qWt>!Eh-:ڃ[ul\Dq/=A>#lI	.w,KFYVL_'Q$Js+˰TG鑵ժόȿ`vAAi!AliO$ʁoPaGD60rRb`/Mμ,vB yD"XG;Q# W#°t~:6YdmB	`{k]JT=6߸z$v>tw4kPF OVB >2|a~VDací۪$`gwǦq{:uNN]弆gԌۮ^+/ݖ
4r9r-
/ :&ule#|oz2/8NP ܺj6Kݫ{~Ixl4傣$Cisc4*?\7Ob|j8IhS/2I;$䫢?GOyq9H܂VJdf(PbtrcmKs~{^_]@T=	LMSIG^v>176D{`ĺo	xz-rحc}wRe	֦զ_($C\kfQT(7pG}OU83A󚚪'`.åZMQaRL<1O+وn,TZHNߚ^z	B1{qb5dymHNmrHQ5_$k6i@+`8FWt
XŊF̋Ts5$	\ULvCjd$ť ^2MAODK1,\=ֆZܪ$"}q"ی֨:_Nq<"C@7-C
eZy1l
hjA͔s
wMyC~a1Eݠ.CD+\4c/=T1P0fDcep8wx(
G䅦C
죾iiKh#8]~La$V],
6^ ˌw6Bz@̍s%DfIlHB´;0+⃤HKT.~Bq4~JMS3΀.6DaAl|4c`i#3	;x
+:±mJҷ
}=VDg'eCA<NuKdh+Q:[6N(rN/?C>zL8 zk~	/'^@׾i[e*P0fV zB)!=kI>G;?:E.RE[7R PMAs=e5xȗKA9zh1Ӓ06IגsCz[HHruֹh_fK\1վ#~{춁S߉ P#ҴHո2;ῗ~/5&)h?`>ɛ|r7V	8[] 	q'H<6Q(HW(EJP$∈6}ڡq(av	LgRy\Inqh˫=S~/kiE{;vn+!(Wd9]õ++#@̄,S_==EOMIP%wӿU7HVIO#dzh4 	|\f>To[yg\3t ]	Lx:og[xW6O3$pW%BWTh Kq+\75(ϻws\9zwN+?pnыV׋~]k")-O&/<y]|d0Ͽjބ{q)Ƅ.
-`aCVHGQ>@^qvA%w3Ov]{1FZ^!*3aIXV-ˎm[]з ?!S{	Bc?rk}dۿ6557jO(*˱HԖafxa}2,R!b:͑-ھ#Pp*-i/6kGg^x_h_ƛ/x
k}Cʞh%h'ց.qvrX|TFJ{j/26t\F
fgꙘvtɀX'LznJ0~Ǡj?Xawp ;,saP;f7?
bYeNcgC[#{@/KˋF":jxߴTD5Ydoog}
vaҩ`QQ#4ęZ9x@GGcN[@9v36p]RLhW!$%JIh_Hr(lqG"M(M.=rp2Vʊ̬([Y-zB**<A%qnX#0
zYݳ^=<>}mo)]]WiJF`UPӄEKhT킣x&>?Qx{qt[6gd8 `9	Sx=ksFS0bɡHI$!	kk/W,A$n*?JTbm49?NO^1ǟ3ωy}wyYN_Qqg܏8uĂK"xѸ'@=YنrWϿyXKgCv#Nf>"uf+|7AH2fx"؈yk>A	1Yxn_Q,pCo6vãPgmX&_=gohxr89i}_}GlZÎOo_W&
19CsP-ω"]c?׋Ӛ땈'9g㓝T|LZxӳ`.\/`7A%Ŝn:Eu"Cnf{pHH6	CgQ6S`c/ǻ]~hgH[o<gKbo~adOZc4:+ UOS%2H»HyDIs`%k_5Nts
Qg+_rň7$op`
 lF9~aV"āȩ*%%'F\Vk20Zs~ȀUP"U$!߼8ĩJ ^?skI9aɒzuJm.me!G@&YN_#C!$^M:_V:LW>lʯ僺t,ub) ;DQMfd+x2_6W_](AN.'81Οy	ZxIRv}K.'&eןscܱ'V>\FCㅀ}0dbO4taM'rgkjkf
m+^0X>MxGlJH
j~;~	
ʅ,'O[9Ұ* :y0 	
H?aϑPuAXR _6L4>D4]⦾jo@ēOºd(SJ6+1L.SE\|.y!Bȝ"0$[
L@`CNb'G(Cg)?e2gC0S@B)R$Ǿ}#X9?k_ !])M-C-׿QU5]_%G۰wlųXA/SXIcќo`'aApxi=~Ħ#\ ǯ1cԲ0|	5=z{|'x	lVxq Y^C8wbGXuB	O;6NFZvKH9y d IL{rntΕ2l4iZ׶<`p*Z7FMS ͛
qjLb
+{g17ء90.xXLPJn&v<f*ZBto¦:R]W`f&Izi|
Kak=j;KHs8
anx_'o3z"}RSs!xVKٞAx=!O7*A1wWVx4cJApL#Sᠥ:OKBQHfdЇhp(۔!X p&qZDϝN!X<p 0oat[6<f<b {C1hbL 1J|~K$dbZ p`FwM$OdX+D48~?Gv0cxS '<&:  O|m!b !{Έ'qc ]='/{z(eX'~h)y	$vUg;5\(,<`Sjc0sh|~n}HsIo+Mj$ ub.cYTN!=r%vBnȥ;Wwl(Y,ŰF@P^a`fS$v=L'"iydj)1&L)}$ļ{Я7t\A%lmbQ^bucQGk%w\z /8̊IZakwP~C9A\&$4#^LBw6DXUͅ+H1@E-d+qf}}|c6|HdS8!DaK\.	R5yc*/wS[*.3I:KddZKQmSyu7"H\Cam\)$o^),-l׹uZvҊЇ3mK{걣cY
$}bƲbHnVE?zZ7s;Y4q@.\ՋCmZ==gѐDDrKRh#w_opzIc/r\@p)*Y޸@,Lף
h]OG2I B	w!ԃaxF,!
TaDWOjª.VǭŃAe^&.o OV~qwպ$iɛG$c\o$sr%ڵG;~eF(;cF  ~`x֛.5y6ДN1(+i~`wXVM6?rvA;(;BwP"˂>{9}Q́iWtʳ52F,C(,b<;/Ȍ
J( 3$%Jv+*cbȽqƊ{e^'3+W,Og-q?Su+Fmۓ`@h˴im,B{W({¬gȕQ`x|<kݣi+jGN4xdsx1F="'7}K*}&pQ2Ҽ[8`ZhtpȰ{rnX<8|&9	̰2JbQp|fh "ux~mC
f$Z0ĺ%ONŜpܰugɻw#}gђPQ'r\BI`9[sR㞑ܒ8Bx"zhHGA/a-i@RH	$c9n X0@19Sَ#"e5w\ED$-O| !_   "p9G/ ott,^掵DqB^~R~=kl;W<2FfR>x^p#Ro}^_~WΖᜇry,T>>F#pia>`^|wùl+ٲ)ٱ(s>M:w4c`hR7h֭ oV.0"+IgJk0eS=BNq8:9}Sc 	gX%%%)b 1ulɭjy*(IN⫀lztPBAwFL.b~O3AJ7 5בqn:9&[mS:W5EYJqViRgpL[vŁ(6p;mm)_GX9:q)A	$&3!Zxʝ:3o7|!K"gЙL`y
8<C\^ߞk:	^X$Zk'\)7ק
c	x=ٸ@Ӭ逈lXMtMx!Wy#խL#^%}_KKSLOy6GmZ>6zw,c4]F~"zun2FwA!ƸǱ#DvXtc2nyRN&9+尵da %m1L9XkUM8}}DDa]p
Ό
$%bh6HѠ3zؔڻ Nǩ*Bd5!23P[ʚRX̔cϘμ_9(kj`(IED)8n^.tBrz
/s	Ay/ߨM`pl3}SCc*sޱ]ӺS&ϢP{gX5Xmj?P+2cƬ ]fSBiUܺֈ\Ö<@"G3O	ܞ]fp_hpMV^xr:P<:1(#$Z"TRi	&rRpҠ퍙J$WB<7pT J:)n2wmJ av?R|Z^J@ېC?oǽ(FfEF[2
M8}MjL ?LjVރpUW{vR+=x%^<Pv6;wE)[lCœe@;p5'<Opr/yemR+fyz?K0y𐢭8.bN8W6kB{%f]o[)>&r2-)7շ OYշէU	F]FQ7Ncd4B?,_J͉da-@hj "8Kjy_1puIXt}wXeqv-NVeZ 8uշFSJTvm 13ڃm#(6jN
ZmD>k
ġz)D٨]D+r-}b􄉉l?!JJӾ rόif*V?0x	 䣣D3d\48	tn,C-(DNu@I,WrTF졂pT9uEB1]w%sM!n8 "inIJ(**eYx4#\02a37%R LU޸~v?z-mdR?ET]ۊdqVAaS-ʡc^9d2#U_ѿ OBVU.CQN~^c&Q+d\\^70tqN+][aCd8P0gUʴSqx<*3Ř-ۜR)_$"a0-  y8(L|[:#zCq?wGE?gkg\JJ` !LdP,!Ȳ(9fWAl Kב:m]<D&jŢzvjYf"⣔,Jޔ277 +T`I檑D*4ݣ*%8dlf:ԶD-6q(/%"a\$ڀ	m	Y)ճ0y/WOP	Dg3-=2d"*Ni+{î3wZ1E)5Č5յg9LNE+lǃD/!Ю~GbLݑ`QdiqjA$DVHEgQUb&<	^nExپP58h.p6IKqd5t .Պ9lft2j*p-xk<.-88B<,Q Cx`[PC		6N*ZұDxeJ(*CE).LϡAju#]ZqǶX+Gx6?٣buSS;0y^*'$WƠ?*U!sp3k1F258	sU.Q#t!oB 5T+(s"P,#UW["KѱmG6-Bykv7?PڼyeCx**BwZ:5-nAEܡ2ÂWO;Jш&J(=:v`p=ynkMˇUJ<A=6&G񩒱O޽sO$q6N$!|܄z^TV6 xz9߷CΞApb]gvҸG-L=;|V-Jj+gRݣ@sUMq3/@\%:D1(XC0,Mq1ZYԮ@ԲpfX<M	KI:Id
),u{Dhi/djW՚2Ij+I|/bؓY%o1|}0_XCMNdBuZPQVe"=8<Do?":Z[FW[n*׶غv9@)	F킕))ni),{9
<)ȕerUQSgU2`*kcnpUDao,#)_ժg|*rw9?:̑0HLqF`^cBl_5xz?xvaa3{tgdR㴇irJH&dVAFYVLqOMpufu鎟h'}+ T1WAvsTTBZͱD.mtnuՅ"Mbbvg{<XhαEEBZ̷7AH4%,%&$)]Fr|QIBnҎ&Qt1YiFkCtzD?A̵C[ZbI*@[\1O6@9caJ het1rcIsw9M\LztW\b@;8ԮP}/L)}0;/B1_YC!
}5MOrw,PǗrO%1PDWoTGNU|XfȝzCi%Ȣ5XY`cڱNK1ˣ`ŸXFaj&,*`4?Mօe&*fr	&{.1K{P'`&ѬFfj;Z+o/}ɶr7-#aiI;GeEq n,Zj!!MҺ8rd%zVdN墷(u`"w[|W/MH뷵>f5B(+YǢAR R d@/-`UK3;&I޵bb,Qkiɮ~
[X%=%*R Ivn/ZS;tg
(E_r̓|GcQg,}i+HYnpbU+e{Ծ!V~le^˗v9<VM]sC-!v!!+eb/{2p	K(;nxȗ0r۪4-{Tm|.Y_¢U#֫7TDRgʬm{1Up	KiP8iijFj"`vXƽD|)d[y"IEk~z	ݮ1?HlX"`N*~!`˝Qr~,o%ſ]vn
¶t!KkÈc[j=`ҔvW=ʶJ)+M`.,睒"Q|TDQC|9޹tyiA.L}	K'>5
lXw"Z9x.rmqQr^ȏ1MY	G<G)2Cr/S35bS~O>pҁiPC͹ybu]PA~wZk0dl`f%ZKN	GG1ұ%q9JDr`~"9Ev^pDŶ&H՝joQhP)0j. +W7%x&O}3Sj[:ϼ+HUXV
5f,» (@C'tK[(z˝r ^Ű?Wnd'yթ9񏉠H݋Gd|}V_[힑4p$UVJؼjQŨ4`&-9MmU};/&!`ޡ^-ҏMSCΏ3wa_.`҉2/-|kKX`CAǟ( JHȕ2Zx(;ES{(;Da
R**{<c^TǗzzO*W%pKYGq`EPx* ɟv16E7tX"0;ǟMly BrHCWG9<L?u؇j+)_Zpqۊm>Ř/ q !{&V+Ҋo>"6,\ta!ǝѭj XvxSv=<xߤp(.dzb ]].S4|4%oQ`cr1G$*R%hFܵkx[S1쓫7bf\/9y0fmoX㝬ydͿfr6+fm.ȴ0fYLVY2 c$SRx[38'f4ج5_y3t6wL0vfŌVͥ67fR6i*Kf 6 /x[7Rbwq
3l] 	|ixs{xRKJK2򋀜Pע"TĜT=ڐT̜TPbnBb1b私٩ 3A$$敀S(#YW_6yMhc'DBrFbPShkDP/Wi<d?UHf,ҴH
 ޸NxXn8@a6n 5@mtp[AKͫDHNFd7CRM#$r87j~㓟RfjD(yBCn\V"RsLC@y,ۭj

' ռ{%,Lׯ^[CIdF䒥p^h!pŢ=2WvѦ 40⚫<H9H!P|F,XO\"BLokf o@B\kV:8z:}nSL(5e\130
NP+r'>|$L	@:ab)|˔;4Khi8^ BFi-#X]c֛tLE*vφLlx0Z<O	Pjxu=;q>,BAiY6 949\BE$rqӪ<Ml8\5 91d&Z諴HqXk26LݰtK͟⸈6,U`]nfuѦӰ)*Zh%,^t*tqџuaj58_f]gQlhgiI:/D [ϵʗwq`W_RXT pk`rOqg:\p
c(GKroYl&\ZsAË7	'&(ĢXWRáe9/	LP`r5W.:6_$`]O`>z,FiR{^IH
IR1SLXџYZpX	LE))-0!)S4/u!I(ќg>|+oxz3{T="j{ERdn]+$F9W&|_hzp4Egϧ;^u}ÁdD3^{Ux3JW,ͩ|oVIH
;VcςR2?J]Wy\")|ƕAtYmM;9ӊq_ޝսxzQ]V3G<;)dd՗ L!ɳ]`Fe:T}>$\k[|aϰoMI 7 
jiTPӓ49SHXÑ ێx܁b>pυ+AT:v렠NhÛyK[}]ܾKp.;i?<_DB?|E8U䃻}!>]H*%|)[ZH:w[*k]y)y>(OC' vǼ5/JJiu|ooʜ\epj<(Ln
^A.AlĔ]$6cWIuHipYw_dp4l,WS٬jXjH#R_bBmXlѨQʛ#Nu/\CN8Y	CpwfЙr#d/py1{p㳼4qLG w.Y -l/ռ1Nj7l
g5cјWq!N78vu't:sV^cU.ZG۔חY#lQ\}0(ծx.ߗ3jL4E* IXa+ɨ1#ōc+Y~;nT6j{Fv٭QFc4]}0+ҮAAD	ZHM@0R=603*w<J(|Td0Jln7=GfqH4e;v}BRj;ѨfM/\H8Ͼ8,v<HQ.Qswp'p237i꭭+`^nZ#JJ	Nj[}s"{qJsN҅MeɶUMwג2xRk`&m%tMҖʪ,]nBk*IvP2z_$7"A<x]ؗA<~{Ծ͔xb%Nw_~*Br /BtJmn\<uxru6:7o2.%tA&:ArPaa7TPYb1PC22o့{oBu5
W_AL(6-6VjL,u=
H{滢;Zm܌$#ٳD=_--M&N9S<2;VV,OqvJ+)RQ4ڗEv&xN.?f[V>m~?Dke9Ph*ɦa4oBpͅ2DMX_M/{rKx,i"7	?K,z06DSг^z#5}@A+IMIdxxWkoFίJn[E*-e@K
{#3GewlT@ƞs=M/?'<u&R*J.6l¥4~\P!`amk6WKLyWɓeGfVߣVAOuMRzV(Ekj/,߬ݚr (E50%jEAz1	c1lnq`
9;0֛h=ThM!.34Gv=>\Hc'[tαU!(JHS[8\0Z`w"z2ZA+da a~ T<Gܱ&72gjH!BV2
o:~@}}"Q!LOGwÛEm0˗pYLLlG@߷)ʻ$DbɉL''IĜb](QisqidD5|6(C.!a]⺃b<@sW4S
D *cw}:- vCF%{(x4G8ٴ@%ej8>!9Fzw\N9LHO?.:h>i=Ѣ.Bړ+$NRE  ~,ۍeAV}d
<<
)?}obO\r]!LO@SZ1Zo=p@(QGE/-v/GTWȬG3I3@<K-Q&^\Tw"X=KI@97^F:ߦ,&Tsܵ~@KYzQK~9a鑸T"A>z{3wj4].k2JT'-OCOPl,]D5PI\:h&2*t9J[+.![.*3)a9eֽ349iͳ9FUgX#8l$JQrl&*2)cok\c.W+{ն!D5z״2mv<3<^Dm[kcvf=z8o%gLnZk<Kս*?sns.{Qalm1xZQo8~ϯ9Ezki
,
uF8lgpd%-I91n7$Kf=lpf8?ΌtIb_{]9NlӣcvJ(%	Ŗ\-kY(9gI't¼xR.D,iz	E*	'9)F$~4+vDMU"&bdB/L3ɕ'-m0Qp$V"Pf<Ladm@l	l@y󘤰n"M("֛o-4\4|rWɪ,diH	\gf(0'q hپFyfIvD>^KCjas{SX+8؆4f]t|9M̙'bpZ)Ι]ogh/Yo]d0F87Cg 3o/;kg1)se z0_Aw3tfPuFr<a=vӛ̜7a7t .x.'gp=N1/hlUo8ɠw5LJ|8fj<v zo;6]ޑ6Z!1ZՀ4g?3blmu2+zg
si1 B3@$GnUXqXza6:p~zt$BvP<8Ir#GEI۝g"
4E|b8_Oh8$]o`BM=78w	}lF:/֊LZ9gF"e0o٥aqRoӿVNo~K7cNa[Ԕt⤓Ű&`Mފk.Z0&y;i"ǲ7)W֝o'Av޻|˗U,t`0st1x{<_&g!ND 7ROr\DC@y`k\/89RTv
~
%$1UoI(Rݗg?tM`Dm)=Zָ#Wv_Om497h7	iߚ)QydBQ"0LDf?HR)ָve-B^80d
{,s5㣯1:.P3]vDѭ_?QU8!f
0E;p$ۣ\Ґj<Hf{A${idj=[w΂k7>.W0'8FBbB߮6Ōmg2or	4d)0i1x$i>2F8+%T|;ٲTK?4QⱳD:$IeslN׸"xSE5"{{j!z/ƍ,ت* dHq-q֮%ԜZ\53c[Θ!Au<1:j{J%c<B"ՔR)[|jR4Cى+C3Cl@3Ka!#YA~
OŘ_J&BaZV tI&8/s	0
COe_MɃɑ G_Q!	@f'*kR*RXK$;TD'5>P}rPQu_"jUr/"7&sVޖ[YQܓeWO1ƋLRn*EMNŦPSix3S2O K^=)<T![}ikQ|^Ao^gg7|~vBT+_
ĖSt<^W=s"h7W	jnvG6>c3۩?A$ԢxOS

,ҟЇ&pW.0
Mh#B*Sg>d<e2U'BHI`:.Xkn(OؐW<	8)+";3g`zAJᔽ,TF8(y&ipPRSm7'*36'*KT;AQt yHdՑz:bҁ6UY׼D-X$w{z:`zc
mPPLj"xĕ<2_vrQtְ]ڊLd;p-3˲IFʲN(3nEv57.AQxy@Vۍg?;~moQaA-.|f0&nUpݒv06£k7ڡ3>rT`Fir	іymzY2MbQcʘ5˷?O\uu(t\f^CLy
ۨ}vq5kSXy۷1{KnvX[Yrb 3zGGxMbLRh|)Rꟸp4kޱ/pY3<_yX_X"uªeK<ă⁯4VA,͙]Ft#\t8]<18Дй3+llgzڷ>tTm&jAR'Bo1QyH8Br;+Ǐ<Y6M3V4F9ƁG6䫹Px7x;xoC >͏T1 ;xXv"7}μI6;o`'#AꑺK~cc{K=<$'qPwKUuJi4	G%)GZE2s22"4Z"v0wl-4&ZJ
'>TE	]JE lu"mS&'ŖVVd[RYR-*lK̢*S͆f":,a%3Xb
Q[lUS޼fb)4̃WU$,JWX"-|2kh8^tpwڢj޳\hV+^|QxQ]95ԚPغww?49ZT8yH3iYFe=6͛&/<s"Ŋr>_x)f#C!)ݰCn%_ leq-p
!ȍ&}3l|9ҙi0t|?{3M9ig4JKꌾ`_'lF)n'Aעbx
V-Vkwlw`EĪtݰ3t2FSGs3!1ug8:wp`wx1|t=xcolmzUOcߗ{1Gx4b\|7`oQg:1(1gL1eWQ?,x󾛍]\;r7wwXlƳh蔨FN050^M_#~ƂPGWgvm6a <ޚLGYj.JoݠLb6uR;5ֱDEL5]a㞨kX/zk<7N&%Gf.ТܺV>)+90/~9CyP; ݃e	w{,5ݪHlw{%4&Rx۽V+cxcl^'5끆1VMCQ=cՓ1U2ˀoWZPVT(}?Z=ҥZ3f
2ɞEFpdb(ƒ~_o&Ib	Q<62	(L*q#+-]Y`,lN&*ϑMQZ4SYS YĐ}.]FS:W Ʀ"7J4I8qï-riHh$˵Q_ydBpj˵@Xt)Z6ZYaZsHP"K}IEYEʰ,$Hlfj8e[6=`s? {	Bt@A	/J`4Ztm=[ 8#:t?$RnEp]
0L%zh6ȷl8.XSKsRCʜS)'Ԕ
HUjh.AfmY%WѽШO8J
$
HZ1[UDh<kj^(䠜-q6cQGtpޜrr,t@"YVJH>PKAߥ{G<g߱H9֓ГgKZ 9Yso^ЇH.zkz[(cQ<gJЄ4O%{NM$OoSd|h至R,}TzbqǀH 2Jl"Ds+W< 2 ɏO=CZթHS1[`K>?(S?óO +.niזצ>uyF6zKP}x/Gؔ,9|Nb>@XGp:`jJa@=8;`u)tPiƊ}:6=ڳW3ccP!×'>AMlTiP(@Y.)ϵ/l?q/SN=ā:E {K	"͋`Jnސy_Cd8*h{喦-qZU@}0E<o\#?&EoD0X8#yH1C08Ἂ' lD*ئtK)*"F~B,(m3n''j"&	Aח<y*;KZ 6[nz=`AR+]@?QDyzYvG@~y:j$֢T9o±fÐrLK5(YrYYd_ !*A*s%f p <ڛHVXW9ʜPjcdvǛEC _=$+!2sp0 sj6
qErA>D:k=zz}kTLiU|kϙ \9X+!cYG{AX7%z n8G]b'|Mp|YmQiKy_0r%WXM|jo _p:zqcwR!Buț,U8>,lE9bؙX#M[oX8Wo>o{l(%cuO/ӼjA0KQbT3?T:oG#ipttƞs.e%Êz	^2N9p(S:asj>U@ql_V׸\@E}4|dwW.A
 0,񙵿ݧC/!y^f2m鉌(+O.wκ
UUUduf8{BhH' J >v/Qu|- 	>?6yStwBV2/d#[*xTn@U\2H T8P(8mQEUnM*ۢT ![ٻ:Ow>/$vRf훙e>h?Q0Ip$IE|,V?I&0TF#DdJ?!3%0gn$Ze,:|ƞ +:(0*iS)Ǌ^o*?*0W]ʃV(pkuжz6fsef5;XB+6m[x}@۵ؓܞ"!`uK8."?O:R"ގ{dږq)Vw+K2@	%.(5e@#T*[J	ЂfyKKzg3zWu0 X@qQ	bD;;mf
=(0*"PأL#Rx9
	l 4@	B`y6uRI8|rwˡ&%U^SDLhD$ƽ*zIe~37SLDIEb	-B4a^~RWVxq6mV jr䯯nNe%UyM	3"^
qAs=BL˴R=EY]·z28}Qm:SL_Xošjx;(~9(3=DA#YS\HX*d*xg+(x%rMeRO*,V(O+)O,JUHKQ/UM7$(31XAISG$+%51G!3Oh*\vk^7
/B'ɻ6fKaꞜǤ%Wt/WckOc.dF _^yENd9NYaO?.^. {O	x<rFϫ*CW^V8$})F"$RM)8h@2i>dKw U"~oU~}Ҳuw^\^\^ ?	6TPt7L*VVl+=e~yWBq'VG^0%'WUm>9~0bRy2 *vSȌD ;"'F(ꛬlˋىբ 
NFx?$(ho	E۪k'.)_JW7R}6\I5 ~A,//y]k׹,Cwd@c>Y[@" r˪2DUw,@FxB6G/#ڢAuקV	TŶ-
&4CPŽ;o]![L5@5tde7
Q՚OFx
`&hQ;^=<!sUVx o 	8vW5!GyAue"[IAveQT#&V,Pȩ	)/`rhDWUYzB|V!w" ZUv51jkkßI|,vNWLBzWw-d~0#`y BI`\|{G,+Qpjh 8YSC׵x24QR!	&#)#Ojh fIJ
OXÿ,U,9#w0/(Z|(T)*^,JJFx8Z/5W`נVdu~6jY`P!`2+\Yƀp>" K&:\lr9gY22FUmlËg/-:L)E{ĐB-˯>,|ǈ[]g0nbWUysuB_Pو#KITMI.Z׌on Rk/2x@mu#(w͠0"N(ف=3bDqT0ccD^yJg5oA#8cH辯17?bcOk#vk. َ(l2Hk0}YvZ[H@r
y
"=d
!m܀օX\I EԙTZ4~U.Dc~qO?@75!O#`?#C!5W|鼆
hbQj65CBE!/3mΧ<lgzƇmD	R1nAR@	7ؤ#gW]^WݢN_C >!&<c/8F|w[%HrM	eCUƢ{;	|KEQ R kG}eI"(`}?!uf%}'
kDnUuo<1-	i!L TltB'eUP^Vf]qe3Ռ޺=fA݆-F6V0pFMjdĘƢaN|ԣu%_`B }mts搹/zXPlt^4}Q-<z
PasЭ&Ȝ^6u+p]uИ_TmhtU)0j'% Qz_կ^ի뛫m
Pn	Zd*G2;"RN+CeIla
SLY(KKbI GS9u#b^:cz#1yEZL8 Kث~tuNDM&{@ԲҵE̜YFmn
%_Uo2`YYr4fXC<)/!d;cp3	F؄5.=|P41
"B25=u<zؗKd*[e;Kf3mL2' bdr%},7;w"'R(PXx
TZ
)r$6jrVTJ9(!SwZ/ae	5:2O(a"ΫT|έgJ쥶aӖC-JN*R͘$9"}OG:a^Aǈ9RQ=C΀@pT`i)ZAk2_G,6+cRچ2Z3z߂u?;X_3m{^=@d5cf_= a7&d֋BSe(]g<,l d1O@m.:3muEnyD^f༵PshwqLVc}nN=,+Պu{wt`U׌{O:BrBUyVG	H߱3t}
av!f[!nSE9mgAW!	=~,ߜnFsY%)h?U27:˫vӘ)DLҋa@Ù6ҫT3T)M
s#J=̀J%Pv_AKNّz@L	.3?aމ>/Or) /h}yʋ#D.-xȶ u߯'AV:M3qkëk膷FZ;V0=Ҡ#ႯI|=.@q!Q0?
8|ǯC0W?^Oƕ큄H= &و-ͷ"@l
8{НpAb+fAX w b6`t_`~шɅ͔8WbLGAG
u~	媎08{o<|#
?JlOT	'գ`H_!jE9IPl^3hm#TayNԭnǳD0<b>R]ۋ8*,=ʒ&!O	8fNݦu/h"_O'i>Ƕ(x䋚M?#zu}5׾W	󮪹'npyd^uix4z+?{eB	l?;.l2Zh~zפt"֝՞$pi`$G~N71J(M9lke 7kjZr£NkykӍYUXCڙe&C,WN.X>ina#fR4QGTm٠lTҐ6 }'TP %eZy3,c/*\sҺgթ0B>q99St8EQtLl\ƮVj$~jCZ<
%TkZE17H;~䈁-Z>j9'6H0"T`@YAsT5DWq~{fc8ƃ#8jQؾyB:-=!]%lE~uF'<,S*
Y~ǽ t;9pXNaG'2}p {7Gxd-Q35dN_;(LE3	Pɐt¦ШK	|?2{u/ŦAOtw2EwZ~Ng'EaЬ)}DcbɭBRhQgBg}/^Y$ZA.Ei?Eq7ǯ\Oq{C8 @[I-m0gpn١LVu-Hzcuô1Wj\^Ƿg:a-0f"/06KU%|KiZw?8RTIWYl34cD6&bveIXaŔt!r[~ZVv~kyJFzQG.ms@D4#/=4֡:dό;&rfa>Vl0]~LWSޏt	._s',L2a~`2z:_jMYxn\MoL36^ݤ+f<ǿ٘'wl9_NWpx.}/:O^,rH7W-x8aX~J0TKt0ߥ3&B5Rt7]N>,]wzx'~Nfr&[9;`0-0c2E1	"n煉#h<<,MB3]`b|o狵|qݦE4gSl6NP ( }z ldٻ?D39}77ULO?pDo߈GCe9l~L/ٕ1=2ڱ	0o%t~:!YmO[jTv57j)(8D6NƓ
Znw$tf$*"WUj+KL0^cs+R|@Ѣ!mǏV!կqzRKWZIzW zezzUAH<}h{6^m0kU;oIKᾮ^M}km_a4T'4sUm!<jUN8yD ,plvl~Y16t\5r>F	[.LB[C޳!S.ht
A[q MklԆ*ZBw"Lh-%2\(͚2Wx^ qT Q/*wBvMBDWP_z\
4l#?E/X
EV[}tQ-lkАokJhAz Ec柳GVJO	{?ϐOt;/c;^Oeiƺn:f93̻aEfڲ@Mo(}*$A6qp9>ӆA7!R<'T^[t~G7rHm<M&8HTSM܄:Mۣ9	V_k\ Kasz%m[BdU&68j#޿O1Óv?8PM" @+zxZBdωqQLŧATj:322eWܟ>;yeO\ElGr/4LW]J?a((&?'*rJAREO&0)uIQ+ Ou+:kNȿT%fʿ*,I$a^87")Zou#ej+lMvdGZ,Q][$/3/v1뇹Vz^)7&߹|vcwR]noNu8ء6W//܆Ĉ}w2n*m6B B9~g耨}hD34f=7kGp( wKDí*K曹[謯b+-%jpDF +.G&jцgHۇs'\|:G$懝HW[H(Gno}5Ā8R!(xe%x` xZs8BCgz&uHʌqKN^wc ol'wLyOﻬ|I:l"!ؚFNh$^,hL̧dʢ$&ibެ|	ȈƷH	L5^P_'Rfd9I sM4氀M/hN<89Y g΋M Ϧ-H%rDDO R Y4!1尙)0i>H0ٌ0Dማr
J[3-I0~Α>.d14$Mods Ԙ~`-fic*'I	Rf,*L5Rt ћ;ҠQc!`4H}{(	O%ǒłMg\O$MF5n^'˹^9f{|!AW'شmu9[&Aյ9,ҷ.-p,<\}i;@1έ|IrLzk1vUx4Mk#8M``!1F/WRv/cC.	s3R8V׸4ޛbbӅ)H X38cxac
Om[6*7^L	/;]FiZR 梞#N<N]&8 Ve-eMbozC8)R$$Ȼ|oBauRĔcNZ-#iЁ,I<F"t ,& X~zp1p,xFvWX Ȝg!<Ϧ^'{ˤnox6h\Q˛<)=,(0k;cO>2u^#Z{i?Bw:qy)BInE>V.Ně%ha{-k2q9%/Y 7-~ձ]PexFs`
-2RQ.aO@Tlݸex':^ݿ`s/xtoo^PK'Qz;fn!T16Ĉ;Wy@&Z*Ȯ+nZt2.A^qL?Sl*8^BG'i3 h
:,򮆢L g)cdtCe=ՋDA1@o2RB㡐16'STYXv}3s֟b.~^e
zlD?Y't+~4^
n%c`br;M7y[mr/Ex;"Dt"ghφ"J&&^zAdwf4y@v;ZC"=Bfm?#O},A]mH<bѳ>]w80/7%Ejk5-:iPhL?]ȢZZmg^	yj+Y3cQ笆JBѫ-&Zu} Z}[$ZjTF*iC}/}EƠ%,CG?Iŋ׿5kx"Whd.LO:[kǛkBU3q
k?'^<2<N]ju8ߚXJ	[3I-*AZz׋UăyDCY	쪽6@(&iMj&-WK"e]
~7,Ax~3V6gjz#Fy_E?'A]x!X:q
 8mpg>Klkӕw lP2BU,QFCH%>d'ݹ0;W-.(=K&(Gڕ@g+mtNɲ$z9ei{@OUE(S]]fWD9^9Y3M)I@l$̐VRNXv_/˂ze0fHy 沘-ZQ0Q+bJ5NΒ{%iMR`Duy(YZ0J
! -4$Wb,[!T^ъhH2^2Z%X0&x).I}ZlmS55+'@/hTlfvD"Ilm6vNpM@4.?փ"Zd{*^B{ʸk<٠DDD{'TޢsT{'HmcG'߶s>*!,=c1єPͫSZs0⅌&R2N`jTC*xSZpy;貅 j=y"%{J75x!
}~NYMV{؜ga-]扖QPee=S~?F	J@EτV+ʮs$ίdiefU&H턅\\ɚNܐ43C(75Q&xoKx]pߗUtώkkx`Չ.&Z9gP_+#(_xmj@IR
ZZgn j&MJ&UTtLMЋ|P|ֽ0};''?zݺҷW~A2Ye%߫6KU޽kDyKB?Em"r],Q}mpL$LB!3g*C3C,QL6K"syio<B9۷'$zcv,~Ql	8xi#/D/	_ה񨲻\B+kXY&j#L$|`+!(p)k~'|&F4t
OPa8X.+j<MKڱǴ`I`փ!\\D<)E}[PȺ\~P"OH^#[l(ĝq	͓w9E/Fpaa2_c[SVWYx{gC?gDrJjZf^BhXe,\y%
ii)֓,'?`5t_NԲԼĒ"YMc3R22sRsS'/d۠ b&Wx{GJ_K9(3=D!'3L(?+5dF:xgDrJjZf^BhX<Hh2p⒢-0Rl=y#dBqfUj|	\"85$kU˪dK3RS32KRK2A*'b:QAK EWH츷xnFb 9هkN -6[YH9p`(revUR>{gv")ъ{=#vg{fg9jSd?O )`E \٬TgG&XfRfC&QlEK0/1dJ X!@T?BLT9I1Wq"bd	H%j+9r&*hQ)s82dPsTP0$ĦHI^	0lY9AGR)m"˴}rgr'6i&.	0Nhй(@<'&u8$hEUxLK^e$t׼,8
f,>-(XEgr824ya9EL$
6PPVu\hƌYXqi"DXB5J=}p&C8vBS@O?썇}p9	0$V~ dƃ);o|iynq7ԇko:Fp|8܏ &]Tb:@A;`b6{oHtь $-SN]^s5r4n0r;XCιq5iu|u5#8?<pGs)j}p/$\]ȻHk>H:v#|;@{bvFC!gGGo9O`aƃ6:z"sЍ007'-t%s`ѬYq8n~#xdrc%+L
0)RJu?UIbgA9}+
TRAek`wCf<>;A*tl\*R"Id)ďX3YS=ӞUIɰb4I=jT[	5b:x޾.-Di.:ξ@TRkVEFA"wԚ$Fհ&/|u6ITİ,KE
i_<7gq6<_)LͯٹMjKesl܀ 9IIrj!r!=5vQ sK:Emp	!y0sXUѵPH~T|oz$bEW~O[,?^\Dh	7L ;xBpN1z뎛GG<u֑$y?JEץó,˗>Kf6݈&lr]mF?K*;\xCuspR>``Pp֣1k{Z(U*1Y<	rBnq8׊Yx_;NWfuw1;SSQ3;!iRVkba=FBE4^\DvJtp?gTа v}Fʪf=W^yj4/V^n\H68/%4Qj R?!BT_VDz]r^碡[@5/2uЗ:3S^krKꄤ] ^gJ?CI@ŦSd2!Yv"m}&w'<f˭	O
FW7X_b^Uosݕ|~w9MDRJS+q^KV/DczY3>դUi7niy&(&q!o_dv$:xN۝,Ph_Q$ZVE/¾{Tm#M|=;aɯs><Zk ڧ$&\wd?aa+ypS0'S1%d쟒jD	TsL5n*߫,Mm奩"@kzuCY*JeHTV(S٢>!{Z45%W)Ȃ87CedLK/.xEAKZh]
*	lF[HeG qk$ZҜ6$ikl&^s5Pn[GW5m7)l$Vͯzْja{<?ݻ~݄	Z1Naz1OηxAbT+%=As\7_g%a鉊1%nsG9>L,wb>.`)HCQJ{UgMǡ&83j_i5sMVwU)xuQjAe7M@K+bjj[of֝0dewW(X_B	|/\řsΜ_5ո2F O'|Ԃ:W[O..5w6i,囏 M.VV%Op,3|9p "ӾF>Dh">We@HOG("֐;)EO*tFnCwM-<쭁 @`c-M*F]tOeطvB(n	%^|3?1rH
@Np|ײCfUW7MAACY94)\ŧkmS`<aL$LXL<=(>tx'!
ʲiVt%dпC<=mbm0<S
W;Vc? t#ixPMj1f!e,y؅fm-M$a2#[$	@w=@]AEkwOߏ]σ@MgA^5BBf	~׍@n}~DL*j[盗bz&lfuٯAfifr5wCI\gy}?JSjڭtwA4tHC6}
ä1&hcT?l9AvW<L@FN{.(l¨<N\& q~|ґMHam[X]lAU((|t0Jb%"䔎)U։4LI)dӚq.Ud]O7cScőAyaUxVQo6~ϯ ڗ Mm=9؁^'ñFceܮ~I{%#?8}~mS|%$k?ZVxQBo1R 'YmE1R|{1  `+Ae}h%	Үɨ>fZ|#!3F2CX(TlDm3KfKY	,zy6s-gFp*5kXX-sBT^59?F>bdD~`
Yүp4ͪf=Bih35i!)DpFTH䀁:rɑ-l?#Ѷp@:Bj*HLsU+VA8rmFʢ?t=kuLVbDQ=;c19c*ϭd`%,1XD/>eS8b x2o%KɃ ؟1y0o<1a>qYݡqޜE~zcd9 k|F>":1Ebs$C4{~3yH#"Ga.%0)1CZkn{|>7n
ȑ$M1%MgI% cuS.*UQ_\-߃y>Ť#)/:܊:Y.̖Jok{ħT^^o5B8ӛz
U'6*zuiinp-8^tMk5<8^~ڔfSʿ~ߕVpd!WZS:d"Idb)Ryc*p܇Ʈw.}4\HK0Y,;w=
")o,St?:66wBYߖv/;x6u	{c@Nzu	cR+OFk|F[~:^&,񥁗_loX0%%)9* Z-Fjz$!@aGH:\@Tvҭ}1`wM|BO7ö(d\mC1YEɫLPz^?f[/vʢ;|O,E#=Y}<_\x+8hMǑb8!Z^뜎=[~Ex|-OFDߍԂ@;yНo0M|HSrTT8$A8_fNK
|Qxn@Ǖ
P"J)1J !J!."vCV[{[uzSCn\x.<b7{ݽ
s{
o 6Pmjϙ{<5P=106!YPt q耟aF"7iiw^(en~9ׄ!4y4Ѝ_NrK:jq(qLX$(%wd }6j(%ap}E0ۏRݦ&)kKiR[X[E9~'dO*B!;Է]R{a^pNL	m%ĕq%ݟAݞWMmY׵K+G
E>!lϲQF<Qlv:ݹlz^$1 0mgv}=rP׮ T@W\cN$[+1'gӣtq;vaqV!I>{Dh@Z_kf7 ΄\*2=t%vN-O[*bѰwO>BLG|IWW%<<$߉ܷbK|s=㴬t+Y>"c<0Ff}5;=ij꼖xJn\yV5S% ~Udh/x;#@`4Fٳ
_1Iv&? dͨy,7oad\=YG ,lEx[ 0[`8FYf Bx}o8ϧnR8iڤoMźʢOr8Pl֖Ii6~Q-CR/o߈qʓowH8DDZd}/[be=Y^kS<.G>9o௘.)$KERķ<Jx=<E(DI㼀쮌4I'2٦|EERuz؁D&ƅ8UPG:BZV$YC0D4.!&<4<llڷ&H?8XUbmc"N$	4y$عe]~v$f<)c
[g}=^x#6v=blZ*p>~ԬjxY	++xEݕO.I"e9(J	\}yN^[N 澺r&r"^Y~5N8UP·V([Xޭx7s_P>fsfsבpbxB=
י9!1l0L).	oGvB3[~@	d$gO Ǆ"Z4Lg->c5i(ʝH8x!uʊ35.%E)HDDeeS\O%Eǡ<lXy?G\?l@;6
 ػ(zJ=߿@ ߋ@9DZ./ۃ&]ZJr<x4a5Ŀ<O0VȉkEaG=:xoxX9ЩK	M?_>-sG-giM&m\ZKͅ5]2h5_jƖ7.FsRc[+tj>LK&VhiOCϚIMF]IvuRH6ϻ~kx;fnjVEOEQA1=Nu%s,ꔿ"إ喖Hl$ll}BhS;X_qm`.yS:>/#/͡p	Ե;Mh20AcVqJI&A2"7b;h#ŻEźigjYX;m9:ٞ
9{#C\E_87X|PP0DQ]zֈ[I5r;̮D?gXMШ5%x:QD}RdBmF[=9fl@Za|&:7psd]7Nr;Ѣ'nЗ6T+c7i7*iϝק X5}sGyFAA7ȮDPmkQIQAj$*W*pԄ;zAzj#l|5&xWf:(*CG!SLU$9NA#)5b9LH9'8f:,*3W	u#"WfkI1Ah$*Wfe׌[I5r;̮Dj&J3}=Ǡ=p5̓TRE;VY S<|j1䄫eH#G׍DybaRVJ[E+-橉2PbE%R?puS3ZIS1\]L̨ ԩPQITy3Pz܎Rmp:QAS1lMS0azbT]*4]kN%Q]*4\+e.ӵlRC;FۣWғn J{|&:_`aS}٭Z$sk.}BJQL]sgn,N#b0uD=6BPcR0DI~3XY,9jii)z4C \>uzpշ`06ڎF[=9\`:t㟫moE(ճЙɉZFۑAzGg\]o'RWJKdnCozvzAϸf7{lݼ7:d4p;بu]m9joyF3ZBBJg6|=!5shwBBIIT^}#	FďH1(&{q*s872P,[j'!x4IY?1z*sQdpB쳢Eۻ8)1OQ|}/OA9qm_h+-ri\.ğTû<UyCq[Vϲ}V繦WLȶr[ih	DϹFO~M6Gxv𓻃=ئ[%M-nsˈf?H=0$*4so?Zv=o[ZKmGh~L?K/&.ocjaxTKo8WKuўDA![VNy a3c9̮0&gmL_ UbBxoC<5cml۾q;@Ќ0inBcF3A8m{5BBkC39S!V7L!t%á%%Oǃٛ	i h
	N`o[WGa3'&=%z.tsiyCE&n8+R?v֏܈:y.1C@q!ki
ϛB6ӑѧ!	y̑>\d]mRK\[Vq5)O%p+R`E
urE&kǴ(*5\ak!d"
q'4ky5_bȮD&]BX
B^
RbX*eQDȅ(1,ˈ
mT$沼RRf)G}*G6t7ϘHYήyMRQ&.9e;WBg.UaJ=wߊ'*Q豒HB&qG a	ū?cBYpu񦞖|9}2V7^/g02~IΔS8|]|`Lr<Kkޚ탽+pQEHHPpk~Ti7?ջMxXioH_Qc-qc)&#NvpheqCǻ3}fbQXUޫjL{ $ڄ OְJR4ɒUCb$pgl	IL1NMCWo߾s!Iy,SOguo`x~q9
}%KA_AV-24x( k@'(2AYRƟ<>(S1ѿIS(Y`S>)KyKؤɷ`q0y
Gd+^("X`pҨ.dUH_d9,\
?$T'y`}uA);^6
ôa LSQ	^k,Ź_ix$B(f\?
BQ`؏A(5{F%ebGI@ ϳ4W .x"l=8JobAYܚ6sY͑1h4@s۹h>:m6`|4ӻi(cv̙>qG׮sj:ܙyrc35,ht>cәQ1NSw'wu7V02m}Sct`Rf|4fطd6 zbjdZP'B&;C737v'6aMr2]˘R}1혎p38a}4u~9=6xn)rmdò;ǜzp;GRW8ǌ̭tyohFXa;;+t斣q31onEMHM>~aj'e8Qi>LI J6%U?
OxS[PσC^[r|I>ӡ5_~-Y
CAp2F:Av+!Y1~&#Z29ƋSChNֿkc5TG8!A^sӚK@ÖVhdxJxl><-~uľ1+
esO'WA;qT
Iw1W0N4L|:WE'SĢ:=i>
$Fb򰸊C$JQ)¡&AWȟ7,?8688XmO6($cyyQ{p,}z L=_=9O9yR=IbavnP	뛓 8g(!ǧd|O[ h5шؒ4ToGn2?De(Mag|g4UYhYP.+6tOqYIcIT.EX0H&~(p-ip&C^ELYtd^2gѕRɤyUo';.@^ýPeʜ/CIUm  _!Ԟh:
(	j(£:|:40
YDBVQ쨢e2a^̭jm4HkWlE?|pI%y[I4ޜaǎ]*F/,r,j?~e+3[GPguVme2Jk@j#nKcc~_ŗ2o3[4tn}M5gࣘt~S^٤q*f;gqu7ś<Ny&kijT#{Ǡ i(vj$F<50jE90.O{M*,
s]
ZP\D47Jth.S+"]	`&fbVvT¶SJH*>ROmO-Jq}8Zncw[0mUv[%z+~`{Uz_~eWy_h</^(>_0ݝcj94ꡔ1wޙmw!?!_ҸWMB'I{/!9ꪩeXR%L#6۴W,捧9󩩋*r;TȰT$~ Xhޱv?-&&o5t*VzYR;!^ݐ6tK3v^uT	,2T<ֳ8k_J)қvG^3NK6s`.88MŴ
qܲ-iH\(vBjvk*_;Ϛ!#Ro<fj~ |xTn6}WT-
(6EA( q+HwR5Μ3g.\/znd.R Pke%TF^gz;X襕IZe4(/xKd@K	-g3Ht-+VJ$<^]H4\'VZk*U"$Ԧv鈲QlB<U˲_n\kGBPaE0:UPS&/ם:	m* J,J8Z5/mFKJjB5XTQ(~ѻёrysk(Khk$>6X>UV,ј3g҈ͭIM]ܛac*ԑk+ۖa/!҄VQS<(lϊ_)0:S<$|Vpfx	=0Ο@!g`$)2)mqf/݊p![#n.<YFx[.7xx󧀰<	y-R!	Ӝ/wQBK1Lb1)-9 ۄQDlPFJR$O)ъa~]F6TB`n{y9	FVb[\Ĥg)<cr3@S$T]Cc6Q7]V,.S'Z6{(],b3g[C?؋]X_,&cFdJi~{Y'R#ӷг`j1hy\-]m}RpM@l"ÝVpڏI|\ťſDaI,Ze߯3Tpe&<=TSQa\NpL%C7Ygߘf*bk=bXOoʸ$Wם? n0x]{SHOQ7,ohgaˠmcyeL_BXekYf~Yޛ=z*++++++K>e-8^4ot,f~46g#ߋ> <`2<xۅσ1'dP?"nq9l4"zf3P,sfAgăBͭaV#Hfx
d[69v\m}75vavN4;=!$ٮ3ud#P$q]AԷ1ԿY|:dN(!&7~p!Ng4R1lh̍$ğㄈ6T}Q)Xc컮?>v-Q{Sxx~TRpDfHˬpbAd4xfz a`-8zgx*o蟴f)xnikvȠ􆟙aJ3{LoDn]Md޶=}Ⱥڍ6ܡNmJ4M ލjQԺbua;Wֺ*}}m@i7jox CS?\+.p-t@BYK6!ֻm/UO쪢5]h7{(W*:%ZTlU?-74qkw@c`꣡C#]T9_ (Ϸ5dmU܀+A>{63N띞p{cT$vLu9hCsOjG흭yƱEǋfQ`F]d͊:7/@?4crAl%G'kL*(O)4oEw2"r L2Y@0g06}s[!N`~1AA IyawwC7{ƪjjO .J~98bG1!k;urif`OX>l!m)]&BFy%4ONa^AY
+y)L&$_X^?)vW(C)I,G<,1t<-G^TJ
CPQUo-kĎi~'K.~Gqtrt`\Dj,iA
[]Jjcv;yw:ǜ	 QN5RŲ
1<X,M. :{@oThV⒝Y.v9YK:1Ю4ҘI5笒\C9wjJ@fWAnwKCU>W#}YNKGˍ&VV)ڝ4uo=	1,ɮO4<m+ К#J?E.|XZׅ$<zPl6k[<v)`X&sZDWH5ommwIH"c|Tg4a!4 vvwdO\+V@(|0_y9Jhr`!@vZB	ZeF[;ƭX}Bmk6Oň=$Ф')$e J!g?oo婃TkJjΖ(eişl?zwzN[#{|<!Y{}Vof۹"-'ﬓ?`k=>%
ϏGNx3qO]dRmXMdڠiy?~L}8?%:Nk"SS?Oi,14#}~A`uW\9nGWRR׻lGK5⦷!:!h;-)l/Be4}m;hGx̃wf#<Y]=D7kt傭bOVܙ=|x()_-U}Kk`v.t9ZKG J6v12Ϛu.,+%]a+!s}.1w^/tQS)mCmVlXX/JoMi(9zX>E3fkQ.]+6h.>Oyi֫NOa"7N](lX^8uL|rSv́q~^2sLEXZ2-|ll	aCm}*`ؠ~aDWD9RL=ƒIvsC/RAAuU~;z*ng.q2M.k߀SetZ3Y{ö1s"{W7 /Iw]v Mֈ^cWVTΝjjuIJm
ϖ
v.NRԥvfYQL>E`HТWhI*WΔ3b(sT>8 vQVrk
ŒqtɼP83`nA
϶ПA-Box 7!F؇	ŌIbr}UCr6ُ( {qx:<CgN~>9=JLM#v
dAQ.BHʕt$E($RfDgIcj̐O9-rs Ġ4"fǫ¯LΎ2f<	8(780!';=8aV|>?8nǇ&Sǎwz?z?>DSAB[GwoldidA5BshD<$m#{rxD>s AGb$L)[f<
{#!ev1C:QªFc0!
=a5 WPtADA)'l[!>-g_Al󂡴mG1
Ar9w\'z)O=<%eU4nHh&QmLo϶rũf/O~6K˜ԣ`ɽO#mRHI1EFeMgA/N>IKhFD䆦瓬?S{-vq3,vE4JazIHӗpG	ƾάJwI(;MZp䘶 /82PJ% \ښI=P9$9fBfVa hV<۴a~A%8BʀkZbjoh?A"=<jJOPg
aJTW},*%^.%W\)R.׺V"K]ȗv/JZ~d?:@lM}i eltu_5Vz?sȴC=gS,tku<)?]]m<I(p0\S5ɨ/ԃ_vx13S 50r\,X%ﻎub4o1)Bp ߀>M\$Vħy4@p`TOtoI<Bǟ"Zf?,WÌvch"ܔ]⽈6=U>bP-DtL	%} s	w`S؄[}ЪL	@SS&C.6t)Z`>̶ga@!h>
z$UNJz4c=J<jć9rto}~Oǳqc(!QJQ8Ր(p!<xx L(OQ֘#r84epKC/ZͬH̝{Y}
3F5xtLQhZ^h_"/MwP	~>aPl%d0bX^Z4+TKZCL;D ܚL S#H_[/O/k0w<rdەkJ<+|F>`C;ma[f;9oyp(粫Kd]n*+g-u D53Tx4Qon|UO#Rf=)ɑ؜\<oCF7RdW)[xHU$
Jز&ն<QǹIՅPOm.`	ghϥn's+:/%~0YIy2~p};lw7OP5t}BU̙qӢp:tWSU Yl"ޒ& Y9s@Q@F+wQ	IocKDj~]
}X|vZ6DOW"!Ι<HpMIT^^R$6xbuspt_<&ۀk	b(đ=LF?8Ӟk/ǂ=+<97
j3+˼)#MKF#m|3n>^7H_Wi+HXQ^@XY:8ym|(GuL
(vI"7e6QfbC_ҟbH2= 7;(n@Pwg~mv:Nx5uK`\TX~9zl.qs}~Cakbd]n_<n!Ht{/:%J/4<ʚW/`xV7[QK=7jzSۼɒDWlaM:UP,qE6`qW/"<BW	ODO:Э0n"˛_t;]x[Y/wڹ0,\+;D'SC^ɬ,B}&c[2Evd!	BJ7ڟx @aޫ'2";sfafA{St**&b 4g51#a"IsG=t3Ҹ};^T$YFP#0Q[haVǆ\ӓusxݎKn,%wK$x]T\/'[֜.ա2ǿq2,vE?_iE>{HIgGg.ԁj_>IW+ xs|o-JG*^ܜ83 ͱ2h{Ӣ: ía%gyԸ0#P)W]dXlNqk qyCw߭˷Є6SXVDlS`*Kp#of㛣O>~9[]&x-Ah=j4CDepV$߫\7J˼S¢dc`s~DkHS|w0}fG5E@}I2!^J@FyY_%㺽|o^
Z&Na=bW[*
"mXK^\ؒi7j	^2=/K4WĈ|?IcSxqj,ѝ'Q^iO6B^PP&9a <a>^ߢY.ziꆲ#&(6|1tS+F#Zⸯ^Cr},0x0\R\Ҫw1b9^=FT0H~(2Bw47ʗ,a1^}6oeD%I{,U$nhե0͹|eɶdJ`zq]Ft{`x_wF!!NWupƋأk>zKB=9CăዕZtG.M/ܤ]rs駈Hw6 JDor*L*1SG-?z?ã=;ȿk;W2mf4KOï^{^	Of	9PO _dC,wDNYEF4]~h 9m7¦59m.xnt }fWN#L[ܴ۴7s[.>=:aq<i̬h" Fd#TBcЋ.7sn$-g⍬hQNÉW͆%{5i,XyĝyySwx/oc<P7&+majz}!.!ngCqh =t#&i+8.@^lV{І(QlÃhL^/ܕ//]obi?4.Mu;p60fs͍{z"1kI}Ci4gkvT=#_Y]>r_E|_1mBk'?KQ u_kϕb-CMO%ϕR/sF_xtr$~*P4M&z9W3s@-ȦtEZZ7𝽟Զ(=W՛n(gv\-iZ9*R(vY<-//_d>uc$}EVv
ӑ;
pt+r/^
nT,klQ:kC^Ԉ|@9>PP(o0PDVt%Ȃ-ݮ~4wX|I^8;crJ\_&OxmAK@A<A/"xIP T%ntf'"RAT0}{;8yo1[R@ICLQQ޴c\I%
^٣l|!>H{4gYQ򖻀[==!ϊ6(5[Wb~gftzm&FL
R7i^E-Ph(=09- H&M:80~~GitgzMc؉J$Ͽ}Onsx]ms۸_\%WxeԖ\Jʝ;7esNUŽw _@I܈3IboX9&`OHr˚oS?l7ź6$6^f&
m+fd"`N=z_3r!	B`!2s"FG^ț$˟ɍpwHjc`߽ɑ!<i&D.ЊCq!\ ^7dxVK'NBHTHLs⚡VrY0.UƝv,}"a<06#ѵ=$c}9G_!<ӟH;AƆR t#v݌/UG?kA!ZNt{tOkG}钻3{㛮C`B.akZ>KVDݛl- {~c1HhԅX1phճwp1E{eIK b fÑ=,r5\ wr=kxJnK2ZK`m&?g|76\ JPs63)=B#?(;k;Bh"c#AC,|a@?C}dVՎi۱c6YAb_{Cm."}k}W|5愌OFeM'G{ɋpo2#^N&7Rw\
<u#SdjmW`=g6ٓgWG'L*Kl̍\F[hm@s/'ڣF1
=oCfpԘ*ͼHR[_᣻CPB :590KA.41<뵷#x]M2ﭷ8+4P>j`l3zpj
~X/dړ`p.bA]sL܅C]DQ6ܘ(XgɂfX}2>zM;p-{Gi WYswzKlW/rĝBc˴1GN] :}ZKgj//@pAq V i%'.H{ΠENEIwO~hO֋BK1
]ke(ǂIksR'9y=k2,ڀҲpޫܭn\j|>T:q. \FH8֌kq%m*./*V,9%=*a( M&_nɣA"AjHn'VNti#f8b?TK7ErY?Mӧh1O}7ZN:)6@lVOqT}"?ic2.koy!$q[ZBV_8^AGFH;AG,pU H֍u9jye<Q>Йƛ	r}u/X(乳LSw>WU@;c2p%kY?J'ko]p\`1A_۟	`Xe'߫;ؙۜ 	TqZWx0Uq 1g-g[ZS_d6_bV<	k+(>Ej[Ҍ6V4i
9hsvg-+*3ZƆ]x;
daHG{j8߮,eXFwV&Tttz!g4xjB1[ـ#L%orkoaUdJVk3R#wc[x{tqǙ:pLFtcA~X{ax9%	&=	,"Ø*@h!#kb]1ЋE#b=Y9cmD\`mgː2@"^f}Ԗoַ~}uք<ҪIֿh,Jt2<K*40B 3#NnË[E[oھ@6)jL!^#?Ҵ}IFңYy''6YdiNyEI0TN>*&ɮtG}>Uo]oo䎚OXyK|G)mq@cP5'ir1S);Ԋ.yC[mNyOWLndMҷ#ϡx\QQ8cds*R2NN>s}.IG+xf?iR3/!XkU_
UO&ڳ21^S3Œ9:.{~h*bWgrj{Ě*z،07<gs׷3Y4I:Kl~JgCc䕛>n4/>-DXE[uFxI܅x<۪4ƤrK#"(ϮE!V[eڦTeaV\4F&S<hK3W.%.^JL_I!^=h.^{):YA=/i.tRSWtIXmfx/I~Y+uowR˾K;&nn3Y&;8]G_z̀Ǘ[q3SN+gK/ᠱCwi5wg9o]KB^+l,ewU8lynVLV16X^ +K~%set뮒YIfらplgni~,tEǎCiΗ&ѕ療cu{/]tߕ؂BGP4p!wW
xgEcaaV9
{3If@S{s{u7s{9v;#=@MwBf9Bޫd$Cn/N<a/N<viC)q0}*Fq~`AX$}PH: V\op3pVG P)9S JMwɉ%"	d
-*~n^괣,:#IVJҒAiWqh*`-WPE9s,^|/KK#{rw|ǭeoa@9 A.A#Bړ*[ԩϢ<rIRu\Re8C΍I,J5IR>
wZ&^(?d Q)gaY(EJëޥ˦qTk4}yUQ;$:z!1zľq+\JRު;gLb3jLtn@:x0np}g]MM	b-'`2cP& {81RՁ Ve]YBx8s'DC<ǓPO̡xt*/sHv9{xgK_DlGŭ?1%1)KZ2X8eL<&dN{X}#L14cKefv+I
gqbPi㣄4jӁAEH~b$$}ԣN\넕B[eè&}<!!X);?Q'/ś_m5dL/M#ԚTQ?9It%*m3^t\q`_L{=jىYR	%OzaJK'YQUw5o2M娉bGR-ojnVbQ*jG즯`MR|oɒT۲a,/ݙIg:~3=JoFZKhQ)2MrxC &+*xx%sanIgy	,oqLVUy+iJ-?dn$nUaD9?ʥ^s*+]^Nk^%r?`I>T݆3aS<3}%fWM5Nz>Nn54'_d<i2RxO\/.)d5	,|<*r{x2>qEx21'߻*{!'kXo>IjnrV<ijb~%V;k71_a zG.7>0}qU^^}RUze-innBٷ3y4񒣡dpT諹u)ϐH^;LMgrI֢
x13+2gRC*msmY/VFuTTXGJph0ej<njOJW;*x=.aJzRZ'ȶ@Emb̬F9$RUV?I+ro{03[-%&%m^t:Oq֣O5\Ħc<sFbkbL;(;U%5? 13C&Sg.:MǗfӢ}^uJxt<	5	LHtNjۏfT6)ۓ.W{R'^m0m{W|˳s^0,^s.'!j`}dݺQi>N5x<5o	nIaL>,F}s*vz^)
s:DAlD씞i;(ׄ<ƓO2I"╜Qlm|K5k;iC"<	
q[ZX#xN0Lw7V|f|!~9/a<MĬcoOz޺p'jEݤ};l_}?Rm}w`ИګyCk~ݮs5g4rqpn*&QN-Z(]稃Ss/uve9^q(u?sJWs;cH%*
Y`3u[63ߊhU:47#^Z+3_ӶV7B8xߖkɾ.*}׫?=|XS>?j̾l^}7]Aǿy!(vlq\(FBbqP_V*?gQ,~;^V}%c˸@Tk
`Ia⴬ʁcu{a\Er!itK<}WcJEw／m)C&6ʳ
Kr6az	KVAhY:Y+1@,v/-Q0*3), e$UPej_N-xʄz4%Ͳ~c*ȱ?Q?{8	x\o8=_%At}(RՖ4h,ѱywI}r^X33p8C<%c?&:#i-.ekx,ʒ`X^%	4y9Ȃ& M %П.}F*nrOHƀ#iB 
{8[RVM(MS.@yfr4% 7ya/NbIl[.l"0g@[%ɛ`H& 
TAȆ
)/. ]?HAehsK)* W!7YlS'HmM"`Ly7q^5cPG\?@_,.j	XRQpFreSvA%̃܊f	f`LFηqnMT%qm*J4,L6Q'bAqc0ݾ#5Q;^'gD0U"h|1Tft̴fmpMS-ěx
EJib]k׆IPL[,n̅a uM6:WuCQ?@XSe6Cn܀&
JMm25f*TOh7)LN J"NUE
75CG}ƆnP<uM}YQLLptq
 	o,$U_$_VOWskK( 0)cz=4XO*׮(U~fo}@23/7I^bS_B!d|+su֏B7%%#c=/e_;8'UƍRkb7q7(L, ~+kzIErd넺~=ܰ>/6f^KCdȅ'>_Ұ']k,^ȁzX*K\=G>K
|jNtC H&OIv.ĸդM9i[t5)
M,3=$p&{Ϣ׿#X]vPR}M"rN:#4dߥݭ#j'ܺ橢7~Ӗ37|>N⠇reTC֑_zgaj[u3ņ}c\klb OM=VV0[q椣JEX5GQj=I|J5S:2B˧'BVZjBn-GPFuN!0*t~-e<vk-5b!v!`d_HpA/ē
aZ}lxnV=pO͖:w용ԛ \8Yt3Xt\Au^[n}ܲMUzy,<F@y.	2panەq,ݔQhi4: ,E4hԬdҷ[V~>-Ck6YSIYS!cEHiԢsyyWA$4.z!Q\RȸM0=8M>
0LM|.䈐B*NWr$ IoS4.QUL܋:7עYFSMԔ#jOP^ۘˈ_o1Ec`UQ35KS63 ;urQSoZRwVeb\7δ5&`
>֥bb'\|lu[B1L'ȶN	GmxGݤeb77lŒyS/X^d'cwf19|y5#[S *aǦohf1DS<'qw|P}PBS}_LpYxvӜTGv C-?Hrwd=^kk'Fb[ƸKlVm"z%zӮO>ڋi"_ͺHD4B,w-[.G'"5$!E@d˭?ì{+Ucg.]${Cx=@VX7^oƯD x+jރ֔*vac	<89ѯs+LS4kQ쩩y4Ms='Gc7#Vp UJ>r|* 1VF!
'}h)"<JP0/d
{@f{@dv5u޾q2	m5]x_4qALW _g	:Ġ%DB nLepNëO g6bmN[fêxΏޜ *}sS?C.a&	e$QM̀9۫|<do0U=1n}+fp,UG #f,q)>-+*+b-!5Uln$ʑyɞ[h`(4Wh= =E`VNǄv bA~'sv3M<mf>jxhw>GjXLGcTs`T7go0W]pun888	C	R?6ksam<ƌYE.f`Ws4c6;Yw5u|40qڏySu~xÍG(
$+?NaźaqjnY>yfOKֶ@m^t?_@E- B:駟esC,cox?Adj+ƾsUɝqر~O3̼hvVC =\j^4!N[ONwybZ9&z9OgǿBsT~>=Ǔz﷙0jYM b ]lFtn~cmxYO^Oo
=*Px?`A۷903}ZzoJ27K{G:Ei5NW|FWq==!YBC,y_<C~	R].)I		x"c~<<(xtsp\Je"I{I)vȯT? $QTY/|plxE͔Z[na8Xjx~/0ዸK4-ïiKHkuw+pC1OD,ĊK_WRb(/+O*W9MU;zR0>>5W+aג_RuـĻ	ן^_j7/_`1cI}g~o/ooE͉;/YUDyڪܠ4CI߳&xċ|=|ԏY&%,qr)FgqpOx;Xɖ,QC
H
*Ľ̸%
^ϭBM꙯&*=̉ϺFQ4(}jĽnN>fֱϥBźͯF%g$}jԽ:DuQR!b7lx}Ɇh{ܚ= 
FǩF\oN_ʃ/wʢnO9m?v5eVTR9om?rxT[k8~ϯ8d^20,2/n4u`;BmьcN̏(L>l	#MؙMO_Q}@-'ڊlŶTڶL1s
<Q#~8glK8S^W՝dk*7{BG`^ִO ;2609[ioL9gK@I--l%khGM_sUZ5dZU:~c a46PlYpf;7 (l8LϷƸM@qXQHse;sMA Gv./}<1[=t-Utsm{8p4sup}'u%QPs nZfS/ul;4AY2Th&r&f43|"Yi)/Td%)*eOL7thɥ'^&E|KNe$󇀹2y*Ls9]GaJuJ2302KF-(b5׈Q&T,rZ$Lx-/IQ(ex#<*;O6n!ʪ!~\&1&q3@4(Le>c@Py ŉ;יI3F|WFn+]iA}@ŴuqDW~*n1~jrqjiaa[⫀FFh4I[Dzox-mMN7Z9u%6G~3٬fyS ^:#ǠDvaWq~Mespw lqy*~VaŰݽp&c./Wa>]L.}w<ya2{LE$Bz>4g!..8>~I?@c]^3Xc^y&u/ x}s8+PIխSfrRd9֍,$9"%qC> 	J753Ih4FG_oR_ѽ]1	]/2
ؿ(NNE/ID%^|빧GW^ďB'{7b;a]=OD+84΋ݤZ8Ath9G9I-}@
7Zf[@Iɕx Lxr ,s?O7Q"!@t2\D}/M2 H m+}&MW~	\z!jG1K<`*  ":ǑaC;dn*EMmm?Ah,aLXEA!й%!{qߝ#X<(]SqOCňF<(v+i_lr>؛p&óxқ8_LJL{g19gp|OWl&&S6z8φTOb4|BmJh]x]u>d*z7ףT\]O& q\Shމxh!51EDEry:|1 ^ ~wGeW.{TkH,h||8#=x>.;AW L4N'r*MTrAPgSz# 7#屓=?3
4%\vs0qrTxsJV)CO>+X,wAGԋCDC`Es;ﮇ#@ΚΎſ|=+~qx=9v=g
R.!q
q8#!QЍE*pah[FϽ[FzxTwAN|/a3si>ReƁ+<]'o?
0P<`*LJ/B5|`R/έ7~'Pɂ񱄦X̮Ǡ}#y^#Z,;gAaD7N ,%Jjb,͓[_pL.p;?WqSR=?o^@y4ZB al._xԢ$HRÖAʣ5,WK;=t	$ZNwX<蟿~z7|O"EmQ$(\?i\ 4ff}m k8Rsy9=Q`4lɶ7 Q987A#x2I r~pOPl4 (I=5N1p$.ϏЄ'QT0?=Qwv>GqY'	0.9C flPEi # W~FK'\zA6qBs`_[\k»\N}06:~7<-ƽKY%V=xwShT7jx
< x0'H <S4ZF:`}$XXV$~k,Րo"y2፦SQZ	LcCA&=2 i<el'3쳩Noe%@0~efW:Q:]uKZ YJ9꽃وP+KfJW}t]ڄ7|V[!ȶ1hL2L3lt %C5ӡp)9UNi)x\l#}'tNJ셯ᱽF葙Xթw1ͯGz D 64x0NIAplcp72FG#f7A`#AW7CURِ	DdPLL
h2B[De˜&
9$q.<&@@Py>h|\φ묽8<4h2a:GK{p/nȶ#NÓ
F5i%;\xG&dMx܀GtJ\ӁQ.Ka0Dz8{S۶Й[򒽐OȜ\!PmEvWxkcB5<+
ARExPeopy+O4,BT9F3~T#뫂uZ0j
^ %0:]xOv~=h3<s0[Ozo]{q3ج;HY>ܤ&4{,
{Vl>d}hvq&`gfi	8]FH6Yj5<)0ʞL<:o3KZߘ/g{[YsW4Gp}M3@0O8Jg<g)vKxܻj1m(!ъ}'-W;2gN/or|(֩1~01A''c>]!i 'ff+c[HhF+ߺp	.Tpq\bQa7>HC}$1Nr.^o[;-(4+V»q]MF#?DWlGP,	8X<<ɡ5Xzy\tp՛"rs7YWͼ7sj	}|`# 4o1H;oFl~`QN(m#Hϱ˷"XF7uX8a~8:D~Y(R@
u{#d
|~0瘆s^vN uK܁kFSGh`f[pZXXO
c)Ǻ=(ӧO.xynXHV5̖],	O+Y2Jk+ba(4KCڬ~5~Z7Pc
1I Tt@>-L2Aտ2ĤVc.?%xRB̷\XKQ?%x"Nz/ہv(`8I(r	~!$kIŹu=B^50kIesQTW6gzKR*7z'(~|CIsIE]uNK%Zr.?R惔P?`=;n0OJ,[8
=O5} 'a';v"drBRy]l$ɝm4A"j=^M?-ش)]aҬ
٣.D ^g`÷q`<¼d-8YCmi2s[ 4m(ӂUq->	:A-auI
sV&8إqWCrU<Tnɩ܁i  Ħ0S$PG|h
 \,WċڵA/cUUJ$iǨk/(,ә sJB1`[o~tANI$\G@޳xqq\(\$#凍po/&|93cQ#`t-i(0xCH:5AuW[ҋti-̈,4uMeBgI
_`P:~b({I$7NB4G6;A[,ܺ> ܫatW,+n4WV|mq#RkUZlys\`\ޯؔk0E=DuD3[a:ABG9B'rr/DFޒ1PaT"\kMeʺFmV[Ȋfn:UFq0TtuRaAN"1Mav%3m7YArU{+]Ͻi3O[6B%ˮ|ҖsFKTMImDeiqPMTV/xfHbQ`+i'8/~[`z]+)Rmb@9ܡ`L&ݵB@y˷cHϿE(<J>۷W߅P~nպ*4Q^~w|_[:tV|öòÍߋ/^15\Akf&|:jTT(;	$|k9z;η+-8S" K9ͶfocX7p/Y"ywkK%Ң  m>YPN0*ͥu4zth5ʖK-tJwjͩRM+Iwp%xdcaoNX>ſ	s_ƣOe__/!8-^n`80E8'PJ<%Dy96ѯr
F5=_KЀ7i	\=:ELnRU-UNdUjsQHJx0C/ԏ"$mZqĨ
mxSJ:u4[J5>g(e!Q]EnU-Z?M,kKfd,Q5laf0b`z~?e%;XJ4UTk@%_
xK81-vuMNVptɬZ~ /lXB)Y7V䲜+q8DKz7zkLc&zWwC9'Xg%S%Hø'U0K[N n4c7BjB1|6
N	gǱm%*Zeꅃhw+KmJ_악?s¬H"hNwIq߃s5'
o$^z(~&P?cLB}d=gKֿ6|	ɀ)?lHS0שRCŭm	Sa¦Ck|%{ޖF= *"\k"H@R19кHEp5֬m4v*ۥ-e{!FjePQ{^$dx]bś5ZCwAalCBmt(}~՘vjCXi yüH۬%J4*;2J~"Y1Vk06νE>MCl/B+F}u0]$謊u9fu(6fHJjjO aYGu&3n`͜e4XV5C<L%57'һI@
z:>Ȼh_G޺%a xRO]}48OTy;BnF-'Y:eC,Y:q$)C^}C+6^M,AW)Këo&g#ߩ$ڊ<c"'ޅ"%Yv+5R ˲S &"n,e Mkƨ%l?-@7=ӷƷ-U&+Z^ϮT3_<0RPg~"nBax3xREd݉qЉP	,\e7$\e(Q$w?uY{[,҉J{r&S[H	)7+;J&3J1Qs6̼F8;`2%d]Mfө|C
K!UB<I#o9a.20 u.&I`=Յ%3:PGC{ZG% 1t%!g@	Mq+NOSC_%NRI`19*`ӝ`b?,QtL
)Q#Bn捔R$<R)EN]r~ѿH$Km%"l0?K"(^q9=-7ë."s:s؉|HSz43|:S/Ԏ!vo`:}G=<hh̛ׄs'eE!aTLRz+t,tqPѽaYRY+P%H`xy1n(AdѳhJGyD(/h8QFWXiiFa{J6nT?	0جHc@ZC@uRܖ0ub2jA4_)-|e,"R0_D.	cb{ | )Kr	zg0T^(@sQg0Pv+Z^N0]T]8w/)5-m5Lwkc[8[cdmN<Fh#s_hf8zbXI9e M{|ϔӴu	[v9+{BhSct0/LoV?3#Es|yiF,FSDKuch0ji@/@h>s>Dnqq4)C6{Y~2kX[&Dݭ8:ȴ[-=k,kNr h	5G(5hs dC10߱+wGۊ+OQvS6r9z><Do"S~?ޣ xb<^Fيs=R.ܙ~̮Tlq1_]z$~{\?}Yq^jsvW-0y؆`3xd"[?N31*?n"$/_лSmvl̍;8tҡ"mT[;{FC¨w=-lEp̱'@!%J:+mݛ@dd#jj6p,XPvȶt#o<Nèpȡg~R0aŸx5H,LK8TS.v gH:hYYj]),Ϗ/rË~TFM"W(˪Wk{n~Gv#rt&BdgT ^6j@3FoTP-[3m`*X顛Bd&M7,|-C)ϕcDҪŭVz.0%^#ؤ	!cFM
D
 ~f:*Q8cFt!ʅIDnjJ)|wFW-fa&_
ALgpl5[eevXgng*UlV4:L9L6dr jtbצ,%:i#7'$<TQim+4'*
ꙠI>ؚ7y2sahe×9Xx(+ LwAf)9z5SLlC~](5KkIRK&*n=teG#JVԽ 3AяqC%3UrBiW5:A:ii]턃ͺUu1A[8],`YJZZJ5Ĭ4`Ni#5-ss1<C5+mxؘW3 W\X
*x2hُ'hnH\ڶy[K/]å~!['I<ߥ+?P&CG47hi0`LpJ7H^5а&B41U՞P*̳I,_+
+	1IaP/"D

Jnh
$2evb$;.tŔfd:Р~/P6)@Sp|1 hq~{UA)c"K-`ƟQ|^20aN0wR&ޕˏyrZR^R-S.Je00o{
͉H,A.Hp]}NyVĜE4zђ9Wˠx24ThLfH m#⊌B9:X ]e2(ou=OmQ~8mf=!ôژȡЪmH^<YiJkSvԻɏy"V-RwhsR_& 2ϞG*5>~ᙂŢbE,GR%ξ=CʉLTR+B*9B2-iT'gQBԭ\xN9cgK=[fW"ۏ[4|3_N>(`%6WKi]I6rci(HFpPX)xukbՙLPM*;n0"M&qrR$f!'3aD֏A@nاK(y[̩<Xg,I5%ZP
 1(C=ETΗ }CGXs@ɐk<(,GAiLh7ƹoz%P7AO5؁ȿTWϗPZ8]6kJVV(e@	f<:u)vakn2 >8rUZ/]5L\t9S+^t04YR
#KȨR*_W&EnҚ1(L0	r?(nZk.dvȿnY5lHX:<qv4xT&2nq\Ŭ R(Q&Rjyk ؗ5~/|!跘a_T3%6zd,a=Ǟ(<\tj.upf(KG.*-V),Ó	Iw#ːT?O$F O
&t1̯{y)g{VS}7iz<0bľ,{q뱳c[-~@$]b2|4Nh#ꀎFg&_n9 y!PHoPbeIk`:#:nu,wrћ3͢WEy@W%䠫,7&u%]qT`p,GxcQ8>>G M:ِvs#GcZ"Mm%) j0~rCGaRTlHÃe|]Krn.l*u`_rc.|+?<L,-OaX@>"o"Wó&ABTtU$G$ƆTQdSA_)(C<Uo8R7/oCi8&0pmSAE5*6,1Uh˽ yJM!YQ[E)C
Ɯ*TcA!%_XsE+n'gg2mYawn74*qxB%l-]2uuF-lA^ă^we.KP%*Ҿ2/"-Sc˓6Fdy,пߖ +2&p|}B0[lOB&Yi|7mMRɧC/:ɗ=e		Y>Yؠ^Oqm=׏ˍVQϯ~`V0)d_nKY|s^\1s.9r}	:38=5됆|?"~2
x=AjLf@Zʴ.-yy3}CjalmׅW7+cVc%nڕѪG%+,4}1mŪMP7w/S|1*W:&EyA]u{ϷdLz*'BmN
_&vf;\Mhކˮ{kiVb73tkV77	H;
y]Fe@.=m&W%+l^\;CFA=5%*+u+ڶ '+~Se
ms
h5ЊM*$[+teŹoa^7NKM_WĚ8׭c<-{Pֺ0apmxij*oVRE6$Z.M{ h=T=LF!aKE+ᅯj5PjQMI*̕δB3FlQyH<?pL4n Y
gg@~x6B_%)_Y^Ӎ)W1
_VKtjz>*݃@Z'70ε^ě1Cn
=-K1-,W`8ƐI(./]Տ]G1nl췧"O.?/F(<x=Oǵ<(^`E}-YEW{jM>kY*|U_bB<7YoWįb\/ԄY/	m/_ ˡ°PBN\d_mitTSC"Qx1h(/ˇo.."4LЄn_c3 ̽ZCy:meBr>܅Jԟ}b96zHj!oj/  `mA\/{.&3hƅ!l|g :Ų_cԊ8y^2VUD0rqd:G4uLLU :Tڢ](72W1Q)З([STTP6k%]	f};4{7j%U<)w\Jge<l?b`DyGLexfޛOyqs[gFs3O1z^Xy@j/	x8\^7ƅEϗ怹7|)*<CUo~aT\}.vTZxA]^xu>3))Qϰ!׌Hq%TK)'ђJFϱϫPkN}RUޔ-*ƐdMN].ҩ494~[Z[0C
wAԝ+b`Dʁ#5\+MWJ,#bL >+^KUN9hV5lMBr<'vp1yWI~UM&raxVNÆewOQxvÔoOiÞh8U(V`=Iij_̶&i~35T{l6,xG
9N擁}G웢EF ǰѮZä 5<ÐrRpviJPBm 
Ϣ	C%Vʗbapl}8y30~C*t$!8L׶[\[B4-}iKͻ[4d
ɑާS_p1;6Lh05#uKn-&`caobrSKDã mL"zHBJϾ&Y]钳X\%jlM-uڤ.aW-qSk[ںhpf
,ڢ66DY]{A;֌@L#}oE] :l7\4\p}Ж?81@KMfDj(ߚ6x}/9P5%jJvc|/A-4(Rt)a/<.V)_gL\ T%{j9-WZ`I'8So 6L2q>s_Wj7ѫlψ26 yP^,AttGN]ؔt7W#m7ωWMkA$pd_)i8,PսwaTF&3}X`;7
<sEs0h?.(:c/э?[ȈcC	ӯ5<SRQ)VY3Mhgh_%Ζs{Ni({3"xOӉz)qϚ¿	VT+*i.eמ&N(M cK\Y|-,~:ro?FVsN$ŷ:]У_ŤQk5kԻ{ƣe]IlH.ڇ7dw}Q2âI|I/wgǾԅW03$B0|7'cJO/XIK[ԧ/+]"K]ۭuZ{a%bB=G}5+
*E#AӘTLo9&<Z28/|2TtKuфLk{[JD\-XE"3ݳ AC,('Y9"Z쭳}|SIĜdS!cW >_Vaxs$,MIv`^R!UAxs<'  m'v:_Oghf2>kKfMmcwX՚d07m6|(9ˑ,vS,@7s6g(e%U~&\^oqE2/:Ħ}[C
501\ V2#chȄ7P˙q&<^(H5ĩ٬rzs6oK	Z_@Ϟ65Mb9L|J[fk`!lT/ԩ-0Kk >Eo_Qj+cxqE[ѧZ;t0G݇a
ِvwn*:ohx.4p(thTT/N|	:561fV +o(	<oWm-'S&0C|ЂdЙrwlPW7+zn$bRӡ} Qj,j5yI;pUU,2G*abVKԤN,cf|)~Yۑ
'֫MaX6Wim/S[g	?ݢ/P=T1/P[z%iâwN/{ެ-V2D	<۵*0kVׯ#[-U87g#z>1jPXf*nUGdR5tՉv
LH7H*j	p:sb)9YN<Zw0|0q`Uzw6K*WKi*kYν9OfZ;)&$G=1̣aNBW5shX0mxh~1,GTEZS\r&NjG^@z1kB%*Y)]QM;)-*d
wD[EʼU7YZζQfK6eaJDqѻjRH"{{d@ֽV_q4]Lc/E)g*q,{9pA!U>u]͈ObjJj+H]r,.{WO8yxJb?BO
2Sv՘s>uz#֋|UaJln\޷@cFf8_WjC8eou2)`Gea(<5@/,x7Iຫ`|OHn&[zAYmK e*CUp4)g}5yWWWKx):%A$_?h?}
57cmH_7/ٮ	?CPr˼eB[>Bmk|֝Mhk^zZl1Nub;URE l({E*<xMRMLAM)eH'RR"^<q0q;-#;lJC^8Ex0dЛGw$\{7$yQ(H7%EYWffwX֡IUTeS3JpE5AApN_Q"(!h|E78Kg`q\CUb(.|[#iwk lh˧YCcrrsSp}°6E%M4mo}˕Ԯ Ae
![`o}EbnDa4EL jnKR/DOk%*ac"kh_peT}vk2v]gR*	F3&?ZQ5pY>4>u91 SCvuWW	oecyזb))%Ff0*-yMmz,5$~(((sz0p7߸!h˲UKE,DO7"tݴ,oڨ~33O	xr&\sU:k5]v3/'wB$pxyn뽻S.!E+5xԹiJ)k"O[M)-w!
a?BFz@i7n
wLp]3V)TKݓiF FW`ŻJ]juL#/Q-*U]Ú],\}u*eԵ,Z}z2'{dW]}.D0S78DaK78a	!B(+8o7iT%/un`)/0P64C(&ܜȁJ+ޔS(u8.[Tv$~Ӄ7.WQ/n iq/؀'upZtӑ{"|#Z`A	3Q9Ζ}=խ,Kjƛ{Y%Q$r$HW|0fԅXt2]b9O$g/\>A=75s5,~]YZ	9HR䗜%2+#q-(I]#AEs;*>QE}nNcx;>E w^Y֣uR,&9ͷAt0D'Ah6~ru~y؃O*TlyU|=`'3lsSL,|}sXН? HvQa;u{FQ+PQhՁu6.֘89cayP!Y/7%^-Lj@?ɤ*K Pf_KUm}*(G"<z)ẠKʀcDd[]䵸ޜA̴Q8,-e+$kCʠ:VY|Tzi|QS%``Fsc*%`C1v~z,U݇uu4E|
y'rqUP3T}5N!qk(-) 7p`7ViFsoŠy7:u ^Ĵ-1zճ!`<H<YqA.'啗Qo(ǈM/[<gʒx2N`Mɂݬ<<$<av-̻֡o=λsTB6C	G[K:`6,r[Zӓy栙f<({	zD<Z?+ٵ&m?U9O|k|"o(ǌUTGPYw]3<4G=O(	~xk^+ךx;tsI&'sLk~V !p;6ٟ6j?59<2Ќ13
{8ܭ0+j65~ͧ9O'7l8$M(!#EFϮRDՄ@z*ܢ}j"R4/vبK֦)4kԆm7Ds?_0hxZmo^ aKe'MXr֡I#>2w_gf_eV!h<	˭JѵwOe6E%&Qڽŋ?j=ۗϟv]z/~Ko+fq5,[ooo޽u5-Wս O37	]'6Jbe7NȾNƊѩJXkz\ŽFH҉NUXŝ._ kZ|+L_43Qp,Gfz
Hz9kcĸѩ%Z箬~/]LdP+ىkH[5.n VΟtV_:ӱo6VMo䏼eIOVn2},l38qZS-Eb齸kJd7 Z%vk7hgɱ͙,l%[ڪ-TUϾys>@E^iqptOrqKT=Qkt}!ii8gXM󠛑vzڑ,}cg!9uw8FL"6NUbkˊ@lLq?Q,Y!JћAtzI ԙvؑ9>i`SǿQEHhjө	,8_{v;֚XeSCzG\B
#ޯ^2nrpWVS/u=xr	my-ŰNG@C.Ur@xmdty.bBW,yc-[Ɍ`okV>(owPrX	܇vp#3RWhA	ҊsZAq+(R:b!p$atBcDXm@@Z٦Ogco#ػA4lL1uz{slcNN *$&CFj#uX]t7(=[mazQd[Ys$4{$iH+NZ0 RG&5 6BMLƒ2^C/|U!n\NDz~³!.$#TRk>\x|#tYsX:5 L;)
UVjp9pz2Me8+OY*hu|ۻAmڑGEɥ^^@ysDJW%LP9 >r8{"kǨuc6nь$*q3 $KvO$lKQT@0tfF	375Y*8b|AED:G@>?.b1BW"`t򫤄SopۓUPt%X+PQhI@n&|@$qS䉀îi#韱8\~}ndWTs*ALM~CIGJKq[#+`~;.n;	OO ÎQ| !43Od{h?vz+	?tuj;PR"WRb[b6DZܴ-Bdd}2Z##O*+ێUj³ \IwAKΩ=9i5kkHR:	9hӫ- -uҝ|r1nTpƎr@/dAr%|?˹,3qk{Zf$Hɝ@gh-_p|
8Yx]Ջl}Yʆ9-|mꒉVR6DM,Mrtd3EZi¤blG%fqFvlԑL!	6Ȗ!~F ;{ZwtrZ)l7wk:TR D8{<u+D5
qO'~n+9s4]>PTQ,Jݓӕ%M_N8ܪ!WE]P7,Ngf(rW"U=v.['$:Z,j܄k` ))Ǡ/sUל%_e#Y}! ;Eb8XzyTo0#ʽb*aKp=PT.aNrO@;E9-9e&
H c_FAe2+<ki_I)+~nHvn3PN]y|	UY(Nh=f(ɰm=B=PqP%pj't]SG}"Ql?"mP*]&J9AQy8Xcr-.ŨK4oM$ωHh#c-^Tq2bs;9Wg$'kf<,᠓VZv	)Ŧ.&;a'H.<1)Ӟ*bZs
lCE8MtԪfM5z87\%u3gt],vg՚
h޳Ntݱ-VXQЙ]!Oew#cA{xۤ٧`aZEys+.)pnDpQ~D1QZ&	oBZ ؇hbN=~VQaɒFBF-bE<qDnx5Ҕ}Ab/GB'eU:̫(;R>lhPN@`&5.~clE<q"7DuB\ie͍[l٧H.ʳ؜\ZeiH\j=ոX:eH;1/wI?޼/oo/;qs[~#pZ\.~/A?Rь5Mт=Xk2ť=u/o^WW?Bo?//q0ܻ7۷7w>9eG\ac5O7x
ZM|/E/w1q'׎!ߙZJۣ}rWz'Q썖KNY$wzٶ3xPz4XZΫ4t&Gy.AN/x+kI<t!OOǊI^O\X`ˍ\M'<~Sp[E3r #9cLCknjArj[?,s9eVPgOtLZp`>E7wݕ1NwlJ=kIVn>QɮL8A6ǥN!&a/6|OhZc4|{!.kJteNE_ןFѐ_$_t\V1 XF_dj.E+B[s"~+Q섲L'XMEɏfGBXMߕD;1kVP@N?3ZMßf4E㗀G7'n"O,{6OBcH
]ߟ}`#ŝDw[2I}zqEY{˷o/ɖq ç巆7gWLsKUǴ%xAYTCTj5N w }:X҄TMg:xѱmCXL_.A\
@U$	E0Ŏ^@VvfbЄM/{smLqT3&YA>n8(L^gA}q:=Y"my<e_/,;d=irkIU58җ!x-#}c3se.$r,''}rOf߀/AsxHJ:):u`ь|ᣴ쑬{)5":=3 8nׯFF%bldxoD?<ӦKuԮbғ5'h7V+!	qAgؤ$MU$9̛7fLIC	6dL4$N
D*exB @))	񱘩'4,P7-TS?1&I#2H L@YHS	CҘR39-:"Hғy+	$$>2}Vт$y:ֶY.raʽ	UZc2$2(DgL2>HrL2FLȌrb"ohP1=
웞Uu?p>ہlv9CiUiXzf*ʔ4QehG@EJCg!f9P$h1)Hi6bBVDDwqPr\-:nDLYpx£Kz}]<{%%_^<gO/1/Ӌ~uo"B>$5=391Lf,jSS-vWV~$L^Wn1Xx5OJwf.ȌY/#]P(x:'GXfX4ݖ4ZoK2No4$#

1.Ǫ54΅KLbk@Y+V`H_+ޡR-:j7Vפwl>m{v
8{ܶ(z{H{ou}뾭-]ڬom*pmҫN]k^w
| "s8y!*|T1Fڮ9߾QdF";5:PdƮνV>W826Db2Ls'oPe]H\	}oy{u|Kx[%\`2&̔b bԜĒ|̼T̒T̼ԢԼT7]RsKRRKJ*R63f gw%Vl<x[%0E`%f, /&x"gZ~Qnb^/Cvfof^JpA~QOfIwf	D&(35MY'f?ݳe{{>Yߤӟ-tO4D67 _ǐո xx%&h׻mTU``)1.c2i2FK9{L05yC`)1â:s,zn X \jw88Pj"d]0[?Hc3X9/W-L  B 2xmNA˲8`!V6 	x YkBA6!DXioi`V>ha,Nɹ{
px	Ǚ0~pem%؊d+}1 }Y^w`cjfG1dwf_q׍&Ol	`I.HK7<+h-M7hziv}V\Xg@>(HMo!PЦ{jR)'d
Vtg'"c)(z ;naZvrCVDO3ItMh-&E2DxvW'TB$)V
,+õza5Kl{.mчu xg2&̔b bԜĒ|̼T̒T̼ԢԼT7d]RsKRRKrK60c .'lxgff=f !lx;˿wC"Vf -xo0?TwL݀DTX2v8U}IHJk{衍>˯뫛D\'KUvtt>loPIf؇e^Ȼ߿(2;:7/Rk?fBBۖߩ*Sf?xdL3!@-< &2R+YWH超VO<Mz|/WzCR퇞S<y1ϐ"ɱ?)ȀmUУ^"Ȳ9%r\^`cvc.(4.!/d12qj*"pbb&q_Lّp\-1<WJ89.s
yBI
K4,iDyH<w#j?Fr&\mI,EmRz(P)XxN
)ywWjH~lc@wtP31y!k'ݏN>ț͖|45࢈bs,q֨/7~y/,b＃Y.nY^W3o#ȡ#Б2 ;tQW>Z|ҸXk,WVwu2~.ƕ+*<lE5=Ĺ-R#<hBPߔf\ͩ$qןvH4!5Ucwt\r݉@b<2+9	N%JM̟7[ע8RYpw34I0l/s5HȵO?τC%{Tں{r%cOd7tdb7g5^_kWxaj29Y6b SNmxxar]V^X^. 'Gxn@')REZhniJ" I $]ٵvT9h(`cGkٙ}YO-Q۟Yd: ϼמ?0Q 4SV2%s=TzgkEUu"kг)e;oJ{QlAГڳ yE,Pc"
N5RYj,%&YIPzsW ē97F2O^dwcDg S=g_0w5;d}AWovw#<6Gqf `T*}8AME/4s*'gylJω"lSn\G\R(.9/	[uX\ )pݏyEvK!BcXNWKLVU`0RSzAj 1֧9C	YE*'1}>BId@g{߮֚le, ~$b$.Ǌ_q,d,X8n~wHwA,q>v/Ae</Tsz.)IRWk|U,֥/oh\KtʥV{\tqxa5|>Br_	XE?rr o
Bx{diAEt٢ 5{Fx2 ))
_{AnchorUpdatebRphslAxDcCcBg!1WxYc*X9''gw@<W -PxfbRbF/ILtON,/PB.ZQsrf7 n CVmxfAkC(+/W,/ "gx}OKAѸfwD""^KITHfnLVs(ޤ1zh~6C7^oޙڿU-/_^zp}Wk9Q,_?aNDc0FSO0Æ)ذ7PGӚ,Up[rqd"9CCz80t5*BtՀWsqnDR(}R:ZE*`27ʳ$jwohA0n_tRy	o#j,Ō&q".C*wt懸$[zJI,d&걈%"?*U	OX1OٟN"Lڋ;Al{.4!՞|p![gE|l2gQpw|87BM(xkg)Z-y<&пxYmo6 ~hvC<']&v9+
0hlsDzdɶd; ^x{Q<NO"YH>i8{S6GCgŔ"Vnt`c04P!t%i(1+#Ȇ?XBBRLx|L4|%!g0zfejZVɗLkFf$4)KK3|>o1%:AվuH+\/%gc9	l*ƴ0kODϙD'JK>N
m9F,@ız^~x=i|Cܹ+/{ޠOOz& F["B1py+ &R	|}.l0(cr
W& ڔG\3mmfMOONOY] b*E-/G,iK	Bȴy9hHH*x1R<z֚qMf&glܫ\O\6IÚ'BF%"x1e=kK*/B0[ np57WpM$cKh0~V:/%¶dHUk֨֋GȈJ8ux;I*z4e+4z1P^D_Ì<@2lp=?VõC3MwtMnQ˳ɹE$ f*de9ʙ8za5c!9ak&kVD%DXۊ´{PfgR-0rabluJ[GfI7M/4'Q1Ȳ`3V^ȼ4jgL	@3$Cñ!	N|񇑆3ˍOSoKs.;\&uUZ]"HbQiUfe#UUz*~UA3Wwʧ@UI⛇zboQ־`h>)w(Ͽ"OQ!}-Ӎ!{2/HۂYQvsIA~dאws6#w}oeRE͞z#Rg[FyG}J=3o"^۝66]KIl/%K2Q#]m( y{4-ʈ-xy-ęǇwZ=XڏQxv-ljڂzю,t\F6Gs#MՉ᪒[1Rks/5Zp^\rituo?-)~fPE{4zB8[q:,ƣp2*s	mc44:ۿSeBC`Q	<0eaݚKeM8Iuhyϸ?+!`1+?BN,AJfϗ-#jB{O΁_([)hQ|ESE܁rBMiJU	C',=֢}|1uhd&h2nө]M"KzW)zYiY7+NzRM](R^flr}W| `ms_vhz[Szey6KAu(h{
;|\/N$z>ZUC`"RUYY@u^@{ıYK\:}wh9?~pK	axoyr2&g훙\_Y|V˳~ַw<moŏ&cjh{/!J@yڿOv=tz_lN'>k\4l,H&%SYg c\sx;ayr2&̔b bԜĒ|̼T̒T̼ԢԼT7lP5)$&d+$楀dUx%y@Y\<5$KJ2lx;arfI !mxdjAus=)2~ 4IJx}k`Ki֗i+j_l27wPMCaFiPh? L<xP;zxQP<%!ɓ~O<*sف@|vpvepu#GI[˰gO<.ۅ/"x_buuEVG"/vS9lό%~O4%'V%Gv)PdUdE.#E31̨f_xaՊ*n!@/[r]ai`3Uo7]BݞQyaEwPBREEF)P`(TnPy1QxNy^(>Q!:Ww;̕Kz?YC,`wIe]yƚzYZYOwIB<f&AXkeDgl>
09TGzOY/pki)!͚>g;Y7&Xʌ0P.w3DG d3CgUv݀ccwO5Cݯ?941u|h q%x^J#%fy>F
6ClpxiEwC"e̓E %r!:xeS]o@|.ᔼؑX~iU	BE!VS1P6ݽ1'ygf쥒U!$ L]b*R#%@ޔ{m.V/2DU({ĭ+(EfV7V?4j',̣=ĜAkG9k)	*oo4w=m.7,SuA_V UY=x&VjZU@.3J*ޯ#~؋X89R0U4@Y?]wsѶVh!~u_an>
Y49Zt)x_^-'ʔ񜞘
qyi(Z'1gVZ)F:ݧᆳq}nS8E:@2bQaėMS&;m:*Qf%0M|\=h܇r1ŗ)m/?7kWx[~m)zf5 ]xSLKIMwwvR3Ri@a䂜bJ(I-SPrVRHKL_Y_2"/94%U&)X?1' X/IP8?9hQRifNIf^<D jQ, &A]xu
0g}Wu(Puqc,1(i
Mbfppw=̤PhfTZ 1_MZe\1)|v8΋cp&֛?qx@4vZvEI#ƲU:PRΝ͍qO۱hH|m>xJb5xm]K0]D	EXlӒdI)mŶiE6Qi*/E$cq0ly!Fa dxr`83 "$"ƸQ~MGnESE$LфM題lliB̖&
J5[EL`_׳2{/qk՘~!Gww{e	\dyּ}z |Yu,I*T>H޶<i++N3!s􅛽pYBWpCZ5,LE!d}9ȲTfjN0Eיh:)<Se1?(G˻4xuR_K0pl/U2(BqRJҰz)iݽ&lj%f){nv)Ig>J,2B#,M
,yKNz(0W-DssTFaVɁj!(B]a Eac8U7\E/}*sCeԡHC#@Di2ъ%1b[Cƫ3u3[%O{֛:=ߋ>ۊl\.{VF7ٛw.{l=<	wS*ɱnS7!mIx;ͶurJjZf^*gcPckHdEfamԊԢ<%g%j.Լ4..̼ҔTĒҢb\J3JK2J5`\M&ޑ2YQ}LF+&c4d29Imr7#B\k!4  7xZ{o8[;]\nӬ%?ǥՖ~URzvAD-M7DqG@q?*qts;s}fX\<gQPe +\1ۭ	{SqD^_?A"pFzIݻ1RFD.;E=>>V;-g?W51ӯFTSQ;Z̙YʠVLGW8S1U]~1\#^r{4ĘV: VQ%>59]6-Mk<=Σ'ccrj/t(oq70Q$ҡU'gs#ҦZ4wԌhjEsKM
w}6tAb|ICIn@o%)GIx>+=v=:ufgvomQ|oNQ$!pdY'T7ĉcb)@4#4Yy׀Dn?	7nr@pX~:M|s[Ѻs#I?&vEutj #x'ZTV82l$3H笛zAJcV6FLC^!7tݻ:6
qe"3Jp7x
+T]"ı$ĮFҵ,q^+q\2jqF2{6)䄼8|.s@vf>A	̕8^"1: x!F0]kd]#ϓAt1B|J!SCJp[>uBNRRmpEzi@,rXoLb&6mjoŐ㇕8P~7&f75I#̱M(1 [ӎw3cmDdQEGC L[l|bt8˺k4	bHv:`ȱR(ꔒrge-G?t¡,Uq׷|UJY,ObKߞiZ;"0\2dV%iq?IWa/W^?: I2
E`߶&rtnnSeå3\\m5l}z\3Xq~;uN\|ZZc ȨM29'.{y5u]xÚ:.#Mr4W(^g"NuQ /(@~hhzW}qU!%waRI%3}LqHxe_Xz(HZ0iܘZp0]jW$J	M r&f	Kw,{-(~" %^wހM.n2 кz
u+ S]Xp\?LcN8xVz4]OIqƠ,qh]wlDsch)dv|ZL+v+z6Vq/B%\9fK*ym[XE7}S>|IKz{>]1]Lq,k! 30(Iz]6yj'9J2B.AӃ]iUW3gLflNa߁DWvqmL\0.o;k:{I	и.u#ANk"]N{	p*"xC~0zit냢t~i_~>Np5H=m+5Jk@QmraOHN9ԧhXS^P،Sn%=l<0ĦhM"-̉$6!#Y	ОPZM\5,&F3MHfh>?;zwO<TI[O#1@7MKWA0.Ӫ".tkD,YDVd4ndU\؎=.zHhi[hnYư-Id,$H^D_+Y@Mug6X@zAmXJUU{ף+uݨ[ƠGOjlڿvۯzBحo8m\ƫjLM$ PZŸԊ$ڭ
:a_,V0	Be5KV۞R
'iU4qArUƋk/͢IjɎe-Blv[QWsC:}i{?nZNl5Z|yF7-N,"0oKjY|!-\V[2qnꠕ1V+}1U)0[->o2Pj̕{7yݞ9K{,:cqT<}DV@ogGVb.p?DVO(Lwn0A^TsE-:BǒFr@OE臻fI76YĚs`af@Sk
ED=|T,̑aoAj|4Xk|BT|Bd'''Q],zeJW(}Od[X19X'l1*>2%{=:*j';@	g0"Q==JcLA.t<\ܪ@Ђ[\@w*?KUi]ܨ@+GXoY(ƅd-qBX\(߰@00wك*41oe]~d!_cfef,M4>s߽@j+0TDa¼Ĵlݾ\w{2w6.JB"+!I/	(RAPR"@.2!~5Z\bd,!>GTFk+ӄ"16̎*셝D(STq`G԰3	6̕>ք)%?"Ĺr &F
H1'0yȲ*`z"9V"K/SރzYǽԹmRd>^(#@My9l_JQKv̥«=
`WfL\ 28G]_,!H'3YbQ4%ϗ>BY:xYP)J1/6&|6/iLf7I4?~(ٳ\.&+EIz5Z=z -=sW y,Ģ6£2SGLo W|pjUL^U̼;</K` (h]З¿(%t1*QsNA'w_%
xSK)MIUI,*HKM-N-˰ 	$xXYo8~f"m\vZm!md!Hm[4.ߙdQn,q>\ʋ^4e.U$r5
BG9PF&^^C*ACư7`ytfi+P1:1`03L`m9Nag0ae#iuc$qoq-alVd 3}('gy!nן>?û_M? 7 %㓔Dtp |s^X?BJw*H	WHbW=3B jyPN4  S~<>YͶ$;n/{1nk,JPCkx?27ߘ NrF"]HAK<SڡfОC<c#ws."cI\SǼHĊ.zyO6p
,`Ѝ ϰL +6F,(A"ÐNx99x5}.$(F݋H;<
Teʽ<_%XJ ʠ6totS(bAvOsɇ^"n"c<Kj Pa$q 2- UP*L{3DdCq߶כv_u*əב&rhs%qt#4k_^=|[mߣ
ѿ_5@;GU_(0'I*Oc.fRT*?<єM ˅h]*dAFWoWV<W;\i\.s2:r	i#))Tu4Ȭ$!D|'Ǭ"!T1r?GYxdP轘!\B?<]hR05[S1)SQup[aY0$r??/͵ա#*|ӭElƪRVtg4k0x_UTW$*SU9AJ_f*3j"U.R)QKC\N5/$I.D
cXv7/3島_ Y?y*,"4 _"(D	i1FTX1'@
5v2߷ G9PA6r0H<s@/o	+<hae9!	>Ha]Hæl]S{#ؙe>sc4K)c`>Җ9PuI}l!	a0<i|2k{1TOU/7xUc~5cSՕφO:N27u뼏uqTwq~ڮnw"m)n-g/);q8`ZA(g"J;cDvr"
ۙTX?)"V=QbZUA*RE6*u!8
Qx<SwCFMN27!QfYl8ҊL(b
ah2m5FQB͋b"62q*B)JB.e:iW#R?%V50]#];2c<>߿l?Cb0^SEJ@`ϗ n~dkB5^efME;5,w\8.Fp3^3wbv%·xZ\B:DdV	 hzsaVU}N4tXMS	7GG-o-] ќ'`Wqz.^/sý%qϽnndem_yh\sVfau 7#xuMO0ϐ&ٻuÞ*%&l4 Qeei>tf2eUC$E,=8JWPi$	\o*k>Dz(xwdLHB{X86e?mMKҰXtehm')C{U	e#OUe]*W`c]y
TQζae.<m%ZOW ë9a=%yv.%YH1
L): vx|$I|fnV{	JT{;/<x]PJ@=?-]	`%":,]n$`ww`3o޼73kE*wdn0ukPC=Jz8Ϯ
j$jUcעc83F
qFY<EYS&{-ysνVrǏ^
D=6Ndf㚵Mo|xc+Ĵ`9/9g"a@Nj9#J!nfv$0jcAn"XVJ%f_\FQkx;̼yC0X4 
x;̼yri^JjBbqqjQ	:s)ٙyY
MM.ԜԉQ@V^Jf=0rJA+$(OAYInrVյ0% M_6п x}A0(ER0<xXP=jH6eMQ[7I{L=XݡD@(M[fg7RxQcJvJ\XkGKOy<1:aQ~݃b߫ДДD=2F>utR&Yۺ+3Pg`Ovn6L֋)=pXJksu1<븷`b|Е)ǡ	pxgKERK)MIUIKM,)-J-˰C-.I+M4b⪞/U5qęMe sg3*M86dq Gp.FxQo0ǟwʋ=PMXEnS$uXZ(	Yr T]=e292z(`T(OIv1` TaF)dp\~J&6[)^VEoyxָvs}*q/-/IOTKґYׄ쌚 
 
] S P%r` Ok>:oה&L R6LJ8+(N@DtӮVPV aElSM6WY3LT1`*	T >b[1'AFt,CN!o)eā/lmi݋mYN6~"دn󝁋6;ޏY$I?Ǐv~
e=҅?[^*/hQQ9.^$pVXPmWh
+TZtrKezTz;6F,K.=Ȭ'J38Ϻ̝֎U.oVR6nX0`yNpuBNDYl/^"jX̜,ZfhQgg[F.$xekP&7MEiݒ.Y['(Nͽ kj,nBщC}x7"EE@湹|8|?{@Άn]A5NNϞh
0Em˛/-"~wٿrL흿p?S37w*6z!~cdҤKA Tpn9aD pYpIJ>%7YTO1BB%NHt%'!$?q|+{m'["!V.=y+>gy\MEE@q)lIur"y=;3| Æd-%_"h64hUT~x탞DU]8?mx[^G}2
%b$UHKxk¢rkCp`dۆ3;5Mv'rq-G%neT/cgvfa4G`մ엇屭*U\yR4su`=,y Qᚴ$xmб  bڹEM\Q&8y2iE_Qo28E	\I\J" dmAgQ;/jEX27 FUnb+ >Mg [p^.|	d!<Ȗx-5ToӎOZhÌɧmq)~ƑxSLKIMSwRr3RDbi`E9 ˕ZQZ䬤PTR[\RT\\TYPX+Q,LɬJM
%g$L*M625
Z㲬 T<8txUj0@A0[lnFڍ-5$aYPe9c4cO-ٮFp=:EF4sљ
0+ D
^WNR)Td,\AxQpS,V6 *E;V|wů.H,yؚ..q|H.Xւv(gہӛ$(	VDxRqRRuBD߃[AD&ѽP=mʛ4`|tKǭBop*[oMX(13jMo7q_iHo7qO즉6HvgaKh!,lb2nBhX}CY
u;+f~<t>2}Vyus\sky %S$yds.C~	ހ̰L&!RN`*!D0"!"<0tTq*vѓtv{6kLc|	fӣf_Jf~'pk9+3xm1K1AP[:vP@Ex͵3w]Q,8|c՟pqjM<7y=,
W6+'5'E	tԶkG?~PB@;eC䡾#DȘR*"*ֶ&\b;P#S\C4EfȂ֤;CW<T
{kKGuQv$A]MA?Q<M*A_[Ik%t	*v }{f\	𩗡dr$y ز;vX
OȫAwj#-d<,)X"}d|`ƤnR<ffX1ãĳY_qNZ\@lxUmo0S& &!^J&YYbku[wyqn<|t8!el,rA5p S~}4p5F3'R3SB7QXm1M0fLv7#;w&<=UxJPeg.ӷ~":
1JGH4
X*0Q9'.yczz,*ФtAH%?ɌQ>143	d4=<<ys! X?:4Nd\_.4[iR^?GҨu'ԫ5\fASJC{tMI(k^u<7E/<w֎{Ws,.0Pn7k^{8kj~vݻVex5ܙ}45pmsռ=!]YOȆFٸꗙyIʱ#o/vaW{4Iw6:B7\j3$A	RɔR.Ykot)!92C_T!C#!2UxeKAǹVԢc%i=Aфbrvq1wVE|o}kKJKŃwgn'J>hѮ6;N2k%B~o/ɰSB	r>a\|%<5Yxw+JZP!s+"O'ޛ	EȤ>Y\iAW&Fg~$)=&thk:BVWIFH幟CiX꺟ԅvlw37J{lZSCkZm2H|` o](]}t4A΃c;.'V;CMl7a4_/&~jC"',IQïC̚xӐ{Q4R,P㑹x#+be9g0 =;xmak0?p_/[F.LGncג,sAf/s`-Y>,UX*z_ɪb/:b<iV۔u 0()\0F!㏳N˫n aR%)9~2HPxlqr=$x}]LÅ2ȊRcui꺬m`+0RHV@{=*ULs&u.|*_6$
V!Yw\G=VX[3e9WKn[ۿ *?@cN=rm&ޮOz%[тwSiQW+ZRZE^Λ)GGGI3e}uk,WL_M{v,#&(ci/l^W
Ox1N0``BLsl(]N!SEcqTe??e1, p-
8ցc@]#0F)w| ?jI[f\f*RͨiHԝ(XVBQE$%ff%z=RG5+Sxv68,bT$蕡&#{iφ\Eƶs7hG,Ĭ,v>>L&fRx½{C)2&ys,	K(x}kHg5AflB|m)R)VR"2]i;Wajg}x0KDW;3Ή׉O|x~y<˓[|xFݧ|߾>}~iU5_?/_aė?2h+_ϟߏg4hxV_P9 ?Dm	[k!ޠg*Ye?b	#e,n/1F,˱*0-_w__^|ݏgO^1Apןb R38JC*ӏ?j~|/!~TqNA/ĝL2C7 ľ7M]rS%S*?%tg	
q{5.fVogNf?̹lSrZ&YBwuL#ٟwZ?4BR\KwtObIt]$;:RDXC>e܄9!:s"/je  MTU
]01$52oOgj &rZ#xKx!G+d- ,!}*Y$ee?4HsӖG42wl#WeX5g)/E&P+}7=`Jrtep)6,R9mӕ3 es=izh$aG5[@<?Ljln}w<RmSniF,t[p
#Z:9YsØO.u-v޷mX̢WEaHa۶P+(qLvVI%q&C)$a*$LV4L.+/yYJҵWKpaA]$:@J__t)g82Nה
e96[?ϲ0[ۦ.vJmkoxY;	n[mU#:3bFHUlCȑ2P|7[: 2T[*˄Tq-$wkrphZ0zk6[N%lcX9"BW5[./U7[ha?[ZZ)?L*:S~)av]:S-T3U$f~w"&1DD-79V<}0KMyf	\l72K6	s66:gRj`لbmgRX.͆V1P"ZRT
Rjtp|
-6M 0_7u)+Jm(gR%\Sspsw:9mQf8C)z(\>GQBrDa>Ϸ q
AEaraUUmNa6[HWL )Wj'a^5Gʕ4={订$]ml)J J9g4q\5r$wC-,#%RKWJ6@Ā4;`Dvj۝31߃EH}vʠ.tM.5Aá,\aS$Ee(y?Y9ӎ'L77;W0SdPo*Jҡa ڡ9"=a۫A}ӁgÄCR$R1Dk+DcrN:ZaD;f1WcFTZikX1g5Pdmר{Ֆl{**P*ͩUYy"鳠f旨H|?l`k{4sIAVaλzzNʵ¼wM\lgK5+(j^f&`GX!W^Uj0w8ËIqw8+t2&r]CawƤ-PIܖJijp=60iw7BE_kAʥl;&3݀ba͹RƤZ[U8!g1iooڝ
~J)
gtDgp6x@Ľ>]W`qބ=8-v[_Wd=:ӵq\Uk\~~U,~[^Cpq>~Ëv^?I<gDߏ&v%hbּ&~8dEZsECa YY|cG5,ʝomX6/-<iT\Asewj\bjVLkzcob
+T'phC\)!n9-W/{X|]UnoWH"Ð(vOBs嚆+,t-s+`I٨Q_Ӯ&kLnHu,R' HNc5X $Pj3^9zG$3]sjJRVX:fj HT#u!qO5瀞P@{ƟL8
M(J`<v_ni'<|_Qȇz+'h<;_>+?"zY*JLl0-S6Vb&		!TD#Sv:~^EexD8BD:v'ńt( xP㮁Rw>iIH_(amTAkhT[]HPgOa[xd/RcLYBtO+mޘ<d{'ޅ;F1;6Ο<}=|cR-^l]&13(͵O2^ÐȃaXz۵!Uɿ!O~>j:P#2?>va1hқ@7{	ӄ;j8uBP_>\"vlarMp=$WՅ7lZoTO,nǠ#q'Q7tyRQR&ɔ6aߝ4)Iۦ}	LM^hZJZ{gB
ٯW_ˍ̿Rz6{U`A'omDdzH^Cdke&$`Ab
`nsذnIm:(x[775
]-17,Z}cS l*6QB9R| 
]wvnP7Jhf+V:fB
y:zP\a("3Sx MUWÛW?zH0=Oͽ2ϡU.<sA{%v~W~gۗ{@[aߑ`#rVCa{fq=&mU5kֶvS0o;ݺmܠV3
NWyJbf&U#MKؘW'db:Ulб#Ot& +`~Rép8"&w'əg:h8Ė`[S&9?gm4sVXcfmoZhacbu8p6;֬NkWB+C*Vrut>eC	#te5#!&IiիR7}vѳe֭Ivܐ)Wb{s-aYl!H?X(t{i-2U0-GXU
8ԜַSn}9k{h}F3JU?t'5X*[9}`AS!TqF4[XՉu 
V?С(Hn-Kҍ$Psz*0]*]Qu9߮C^#LeFʿ^2"	CV#)C~A"KȊ'pޚ"3FD 2jVB{;ѫ潈Z}Di`^bc-&Hմ1 e;O`%a1fՂ/JE:!A#a%/!Ak)Q!lL L)ǔ]uF4hü	(0ѿN(+!uBkݟ;X,|@|3rHxա-8Ugh=yw@ꔔ 4RRDP))#?vpPƔ2p)%HoAx)|	i)N;h-
[hQWQ-^Bp9Eaxvr!Z<#pC#&Ğp~'??htQ? &C?/Q^MHd
nSX
aneY@8`E;6?T)Gv@RY訿/GpF{asC#RhA#@a[,X*Y0yp}t6eӺF;ʵ(oNq8g3|Qcf^7UkV,@rj`$ǧ#*Ym?KmSTYB1p쿟'`z,	uka A,:*y 5i2uw{>]Y3Fʄ%c-IyM_SnBكC84xcG߆SDW^.|{"(~8xpg<\uUq~׳W5 (&̋JI(yl-N
]EoDFR@s(I9))aC툆^m~**wX|!}`P9X(ݨ1)MScqKZΓ\ cGB7rƆ?nhDhE #ᱎkB3
mqK{J?tP<Vǉ伡KAt*++=^Cz(&n|NKuyWٿz_^|}4?/o
unGN؍Wjk&~BxQHD@t"4FP'pyRA*vUSʱ3O)NJbMq'PNǘz]6SF!vmkq:X)ákȘcoSgh9IN{4稴z=NnLZx wY"\~ԉ%&uW*\%ڿL2X0jlwe0pOE0ky3#6sTSRۈlcᵽ5٬A}{mG*R)T\|oo_=nۡlxxOˆH9{\l苮l6V}'@ЫfpycG<4tcՈ8B3@Քlӝx<Mp5QRV+ųC΍D7?Pw^f6W^&+ҋX5^ӯ,U!װw2=L,YK5PKj{/X<|#mxL'5].$_$C|H7DkE$d/I_o&~>{%"G+PK*^N*+ȱ(Ћo.*75+G8+noH4)qB[#jmnajC_z*S<H^c[tRj03n+}&¬y;aWm	Pl+8fׇ<ߕ.ܶ\4q	;'<N	Es]xt%R7fB,9_J0$<Qu-uWO`huxAt!es(dh"];w"<Iy9=˙=|RfuwQ/@kӗwilky}XD{G\V1pO043?yiI60.Jun <	Wm31MF~Åb8f[no-LߜTٌm5FI<ۜE~|~(x?-O߰@1etbiô)w` z{
_y߯"*tLzpO`8o !M'KY`30ɧ	30 ejٞXDtkUWj7񃺭1vkw]qvmଂXk<C*/1&Z$֐gD<JOsZb8ᶾ1&(Tspn0w| |2HViheGCk2<Bd3:C
2a93
2,a
PUBd5T:yQax 'QIEE`Q2Y`&al?B*ypAv`P]Km"h
5yp]σ[+4~\]v m3ܑ|2Xtv܄iAe+S3eR[	b,"Ʋhj,XepcVи
[XO,*,R.B礪E]TU OI#8'%fGǝ0%YQja'j!j'L5`'USv
",{&PTMV53bL3\qT@*_d&s۪+"6AW(sFo{F(ЄH"P`ԏ17XωEM/>r>/p8J(R;c-M
wt=#7.bY88QW	+hŌH5cŌIG(a0	m-4.|	`Mƨ&(UT[GőO9jF/dW
LƂ0us7P+ȃ + +Hd'&0B"hhJ+!eHRЏP)`tx6fFƸ)c"C\fT$!~ ƾ:CnSA9J >Ue!	N9;T8~
B6z 3AEܒO`<1	ƿ$LR KA17[
A.ۥe"^NLĄUir9u&'d.g9џՔjJ~5Ү&e	6x 	] 
:RFjfdX2Za-5[Ѵ6$<
0נ$i0?|Ǡ}X2PeW[j4E6+/bq]K6-x)_$M7j4]7+n+}{[̡RoD~M5\UW{7^-w?Ec~T5NE,;g:Y9^"C^8H-NK-NK-N-Fٻ]-S|K$	ƻ ʢDbQ`.W(+05Ѐ\J!a[;g	^;F,0zO"qg'6GAqs<Q.ܐ	D{PczꛁCf"0O[8]J'(32W*B]
6%&Pbꂥt#]{ԷЙQ;ڴpWOjD^[wX.cLLT],*̤(=+H2V^2JKvU%D0pQ%;#Ͼd',i=NU2)}!U2){U2!v̦Pr[gPk>5LWbŒq:ʐ*j[+VXdg1%[En|d8hcJZ]HLUEHL-:|	ʞˇu gq㘫qA;znk7Z;_0>px凲G=GVZxDzlvW[n}{9$Dko/y]¥ЋKMm]'}pq@</??|_^~bnu{z׃}O_PvS>3ĎO_"
yOͭϥr^;	:?>-nsF{/ltS=ҋ.Z>nyIC]t {{~,+ڱfka&Էgj`. J\LB=|3qiH]rFf(PrkV{<OOqv(nb)2|d<KޕM6b达kw'&Pf}{?Ժ e:KT zt]sOscDwN:$O^ga.0ֆR>24B'n5O;a?ӧwOӱ(RӐ5}Ƽɶ7eXLGNEavCF?UВ~4m3M7~ȡ_*-Ȍ|t`R@-|@~?ofїp7J(N/6neGOE媳p]ȝ$\5T|@r(7Kmem
˯%BuG?X91"O"*}[ӥ`~IՅr<
Q3xDm:msY(0j?@{Ev 0Z`'Qhl҆KYE3E]KU;o*<?,ؑd$n>褍Y"7YZo"AaWF_YtDOL9Qi.ВTi9ѲTi1pkD.P&PG|x#y`1.手x:YybV`2FB)+2iB)%(I]R'/DT4^d6DMyO լ&~WAOTTE#=uZѳD\;g&<=,ԫ;)X[ad]1=BX!bq~pD]gN/D]-|]S7nG%*p5ݩ`K$B{pp8t{DRa9l}+t+#
g)VvV7#oJuCߵm|BP{PA@CoakBƣr{ʻ\ٝ#/#<K9~`$a 15!~ra.=$ܮJa.>'Hi\DKct_XB@ݛwF"-0?r]Ptor᧧˗?}ػǗ_~[ sVtk~:lSR5tgh\*PE@Cs*O[&Wzjy1VLK۟_?~x7}w&8\ק_O'^69S@!	}f./BH7˯?v9?pX'˻"^p .=̯EzB"FbH],^T\0 'TK6	Yd\'yL0 hxa@:B0ީORې]n=I=60<}YÎs*$ QC{$0	L&uoxI`w,8!b1Έp ^MJY3#|3':nL%Yxl4 7/0"ħL/KueϕP\P'X;}U,144(-Ov%qm>1ftSMR5OSݠ$n YNRgg0^^s&C+!ë,-liU-]0`tèGDLyr&]2qP.iFy+)pϲi'|fne1;c-D#'Z'v]}ec-l
JPj8#l5"U4[/$6fo	yͦ6
ِTg9psjP^U6_g#No%5}rU~8Vc;Ҏ|5X_d6S&2('a9*MƻBo,|kRnoDQ7DJWJU_n{3zw[U,L,l2Ѫ3tqH	)R@1,Du~(Dax5ipjxGFБca!\tPX /wDX>ȁ.v<XaDہi^OT3KoJZ+*k)Zʨp*^Xx3Y!)UH5JF0JFʰTl|[9\p)/ 2eCҞ ,cHc"JE{a4)mTxRc(AVbI)ىxZ%.>	2;%m>	p{oK;6"$݊]`J07X!#CT;Cb Ģ9E[l;R}\Cc4+Pe|!lsq$tF0 /c @vO&bMDýJ8R[8%R8('hS8BLaG*ZHG8Sb3q:;S%dlk*&UrLz	-563}_f;2aZor<xLf$3Ͱ7wTSR
$ķBf&3P~S!y)s5Ӕe##Tuސ^kL^N'?yHŴkʋIDhkbtvua-gbgJ.H(
yw|̤~iwN~ǐeȢt7k>Wmc{31
(=c8BѼn%oSGq<X5,}
zriMخQqqMs9=M{$
ythv.e-YrNp&(۽p̝ HE'dRzC7GO+ho"*eN%쒶c i|;R(	q."!=zr			Iu9C鱐R3=sDҮtr(yպ'=iP%6`ݐc>DRȤ, zJ9*=LUgXMa[z$Nփ˖'ίf*W`0mF8x@ԻZ5nG_!2>>Mtȗ>(g(q qJ Ͽg˦~2XJPߕǰ&l(&)m@.ƈ	cqc2"(\1uӓdcv0KϝX,&LuKM?[9N-=Fɚ_49Y;$	`F	1l' MEnO1Ar(<0A,ā,YJgK&[ w/.0T	]1eo(>{&'Sä)0)I1yx$3TV*($kT	*ekT@{Ƣ qH򌄜~S,kbdǲYų5tmc#JFѷь57L?n_|x}T#Ѵ~ûn62F?PF,P-Yi`oXì-h
t=twjaV쀪`UQj;ex?J]!ToZ"xUnr)䍃G$'hx
oQ=FUdRf*O4q*lߛ1K8=0wp
]^>75HMKI'?e+U8x3,vjC)ORU45'|dU?rCqiFpQufޤAD>GJs8{f^I7Al"2NKv'DDNCY	'9I8EMT8_w
kiڝuRf\8[IqH9Etk$!Q,\7	%14%utB)y!:|1_>#K~2r)@w	ܴ"Oxm}	_An5$C44Ӡ*C6: CåS7w\\;	8\%)qZInJs/E@A-tl|)hf`A!COvಁ\JdF\P[gkrbŕ.|XX0T*~Ӭ0<P\qi#eU֦W2B\\ i5R"hA(ҪbU7xV8KZaP
/=lrtzI+#yx5R#h$nz%5Ѝԝz͕:o9FV!`"Q-H'Az5	&sB# 0ImHi4V#&w}S{HOu+5lȅ*bC)^C,8ZG,q&:,_p(|͖9&G@
+8w79io-thV}ȋeu٭pp
Ǆ&[46h?vdӰ9Xqh#T_~{mn!xJO_<5Ls{r(xCݑ{V[}fxA&ݮ'b	Q9CǠpԠyGتK}eG#MA8H]a#BkRĢԗ}y[gHy]RDMgxCS> ěrힷJQR
o'/ʰI^Oǻc]8+gv[	LAJōy)7v-&4u-q48ôl6u=.ҹr5yCwB[kD]H,I>A]^z\[b,Quƽ|4=!'=MK>~cnz27ד&vsEOr;+RΣpZDYzOYN	_O%<N?q&By6bb7^eT\Jz@/94rPx|帝K|<ZKh/QVh
J9a%qTVG%{%
^xFqD󢳤"vJP(;\WiӒDք(j?|	WX(\ Aж`,7,pQQBHn`cJSWU9m(:Դj26aMS湙6aAM7jfbb(6{';,3abMtp%Ɗ59nDDR{!Nh7xnkTKuz=I$*m?DmXh<<c"e|.x*H]p)"$5QS4"}B&#.L\mV].b`}E,9{RU}\xDWvl(}W'꠯SYFY  Jy2$Rt/O H(((,((0(*]>r2UΜM.*h|H,B:UŋTtM&zNqHO/4OlV<,TBOV[jWt\mZd\LF6YcKSc'k+gAWuWJT +:+jjbetT3pKyy60M-gc`cM ̨8gKy>eKL
RL{UAO13bҝI:`ͭ{vfIb!DydclHSEdݐ4UHnʷH4!MqdRݪreO.f#ʆ5-;zM֟9l&Jl{*κ5keM^IF
K原vؚxC=ݐs
SɑAfPA*!=2h=M*0S$%bh1(Sǜgx
4*89<h,-`7;t<nȄQ ?8&AJTXB0!SPi%6RE}eAx]y@šgß9Ѷ/\**0EU)52%^Г @ݖCΝzS}79.xFǚ/EXʤ*dWA])Sh\L_GX[A\{+מ&@1EaX3LlTJ#Ze5<6pͩEm0b"exF6`~\M>}
ɴ d")7	^J57.JݤZL#FtGX+Q#gd?+B)VPs
*)}u+A%Fdl dפv-֦v-֦v-5Sj@ްA3n0tKqL9qTTݛu(3˿6^{5#{VMo i\`ZS0ȥj6L'=q4_rիm>d3fT!óHv3O]栔=(ϦFKJ&XZ݅1l:zEPyۖn2P^ad-.sNc>gMzGi#_ufaAf,<&t 惂yoU]/fG|>-.Aٌ޹
By-h8$B7&dƚMѾRg#ЂU;xIZYDI_*H#Q$n\<C䭧J,^Z#pb<6xDpMڨc~c<V{<<| c<4/0|.?<<D{'}QxFJ<T0+3R?<?a?]R<q/ʣx֣T*2MxRy<b*AL'xv漫3Qg3*t6'lG>O#=Nz<Ig$K˓[tn*kų@o*󀡾Zu!q:<$nipn]1ݽp`Gw3z2A.Xv/:6 Fn݋Hwӝ_hO,lPkmY`"Gì&|C@*f8v6p>uaсa{`nN.S}B+^kTn?3\?OL|Uo}<`u'<햠WN0u)O~Irа;66Mh6VZɄǑ7SaAWљTuTM&ܤ̻PƿP,[Ϥ	bl¬\)
/<-OxAxq$/Tژ	+k	&.}_Ȅ>CXrM,Az'L\K0!p\ *
Ž,ŽlŽŽԪւɮj-6Jk>IZ2jҵ杦T ND3@7<9nxpg6<iE%a8t$Sh(DzE*<r
'
7<oE<^JM;slsT-	q5&	&4txI:)ʶ@F4-~JbM}&R߲ekѻ4㇨!$d03bzhNyӥpɈSz%z9CR8a+{V;ۯ ~h,V?|=g <Fߙj}>D6h~91?6X~QWCx;vFt5~LĄ^\SS/PYAtzȀT@d@b-b;2*j-ښ^3^ђ0w/ii{֢%-.hI%?QE5YB55BS'#7x/~~̚
AfN [a4KT
>hYHNY՜p)8Ft):+#3VS㎗ų`6f=KXf=cyօueZ˾}	 ܋>Ha4dC,fZ`5ƴe Wͤ&$[2cJ$$#f~*%}bp5SAcxd
L$Lfl#1}{xy_3Y*"odXokIS(^vM Gp+$O'Wp/5J:IISa&]MwBN'Dӻq	j:l&4S0L FR2czfRѱ j+V/b7Ԓk]]KI'X0Wv(BEHgeX&f%j5CNL.rLc6xuĥwѥM:3\rWTG>Hcծzy
	Ȓ1z$'݅8³EWx-S+%/:"pEČd$IةeMDqG =Hā Sc7x_jS^,m=F壦1\h8PxbJ2 Ip3h(]I'x~dD '54ugI08 4rۄ$mɵ9V̍~)Ȅ7i#7gpbZXͺovaps$5]+C]Zl݈>MDi'&P*"dRԅ0.eOd$2+2Rjd^(@ܬΣ{rVj|tVU80^SM1+̕u
$<8ZЖ1w9L+[3vQ1<L"8ʪ@٪b\8j	
k\%!pĆ5:kBʥeC-	܉)Wc8u1rA3l2q,gϦ]~xi<dF+!XO3d@mVKnld,`ɰyq,5R0yUۮ! 5,<NJ<$<zWh$tQtåirã`4܇OBC+&Ԅ̀O)	]䄒DS.єN!S*xJU<}OFF9ns<&CI񔚎Ě )Q;1FZ1\UǗv,~[鍳da ʇC&N!#%g/U;%kIKWh w2TҀCE*/CPfW/lO	0D	k2ܷňHІaItot׈bGG!$ ;XҦł<!>>Y7
lZP|# TP]eJ ̩%YAJ:ATc8K$cDPi\RLeA%;Kt+Z>*TX9}}oW{B}!uEwRly]Yˈta<CD_E33(,j[9;SYXUq߈k3b$bSq	/֏=HH1rv53Ήb.8':f{6Ss}Lds,s#ퟋeqퟫe6!i\3k\5K	}'\7DVN'n#f"f[VIuy{uU՜Ȁ?1У	c)ГCk$__P62ǈt+![uXPBW#d{{$L''rbr\;b1 [,؎AEjDx<Nz<!GypXG2K6W"܆J$~
]yOʹt	ڌDYqF#tO7az'LtV =s\BϞVH:ÏKйu>t4.AgԧXSAgy
:kh={LN&]'tm#t!:+N`c6	:+Nx]-HZ^xݧ|(秗ͧ"9iPx}	xյ79e[hF;IdIh$;N8$	I@KL=ZSh!ʒ@ +eta)[misg$}ws=eF_WٻeƩMR"5\5"ez<6eڳ{j紧'wjzMfs[/8Yk-ӻڼl}Ŏ)RDHnOb&\ܺipVbЯd1a̵wn<p灗:<l1#p9)t9B|]B9EtƝ3nİu~"y3wZ7={RDI_
T+kK7|8m٣8UHF1*˦vڲ}'V?5{U,<~ӭ6cSwmrj<i5vlt 4iJjH$`H^UE@Y9e	TK-K̺r54MYH9zT	 Io#^QSuւ TEUԢ"cDYeCDD-J-2Cf 4yzL&T(ch8]fy2S3K>36ih1Z7aTaϜaӈkr`1ٌ4sl!:tzR=."$KuqgE%&ud&6HfL}1Zb4CdaLpmt6(4K\"3T-DH)>U9bĬCDhOW,%&1KubÈXl4B|6FMH#0int)}MHzT!DAӣՈQa
p LOHI'sȶ'Q+R*!J^,&1Q^(jjs("[ʤ&E@c y.F/ey	eB$VW|[U0{ܢh*7<Uk]#kb>zωk4\ZXl0:i-&I(-ޚf\ubT|8ld6Y(vt\,(L,!qQPĺ@a8$Bc̬[%sqpx"#34\GcRPFj"sXoXIpwe#8)AVqR4N1Bx_O1Zl\SC M3Eˉot,Y'aIi1ixr|}8U}K^<qq8<H^+#61[Jc=PE8i`Gc7+Eb/sp<LBTMmWb:]ߵ*X-F>U᠎z4C#s;!!jYĉJV+( <j_̕(|>$]> ̷􄱌$K[۹D8;]"V%N#"ekƤ$qKK!C|{ <9|2EyPX:H2lF"ERq!?PX"R:̔C":
2^#^V`ө_6Yim|X:0pS%ptAvZ^MBH2~f6J@aC_C95'eт`Mz6(/ŵ\WD3ĳXiL
jUJy u`jXGJeoTge)2bBD4/d,JE
GMjL5Hඹx]5Z
Ej	rmߤMH	!9  9O,^obBޫGE&
Q-a53e|zHO`ʒl@)[82Vّ!pnɒ&Kap;\*$q fpUELg'Xs7:Ym\=,x0VX._@8rp˥ڕx)6'2Eh\ˢvw߭ٵ4=͸X~GiES1C;HھiӮ݃jneuՐ&7n9uEӃuvg
;e.ev.oT'.2b[+53k[7m7fIwӊlw9w^U0<Ew|pġ03uʧy"y!Gf[9G޷nH]o$qX6fT7t8ᎎ.R)rHT#Cb	D-|WQD9hoOC?A,5ݢYE%+aSgO1VFSI';Nw'34m(RPR*كzhe&:*j_TF`W'|k!<ow+<,@bw+vσѿHe
Rg?^~*}3C}Y п#˞>xg`^w!\gw̿R266X`a
b5i<$rt؝Sv^68X,k-WY`i_=6H523t]$qH譓}3-]KMnFָz|_Vȅlf16OoSPm+ڭz׏Kw6z6l܉iJwoҩʚҠc-hmU6+'}{vmf}%T)pwole@}. kzl!rQ6M2b_&B~c,[p1op<	Ca>kÑ,B ݦQ.uqg,--q6]]	4ϐUΜ"HfցkF
S:J́mfJ>UE2.&dvhU"779<2*`,e*NY\b
N"q4w#haV&_3|exfIhFO/!1:*r/%38fE%=N4Q"8?@i2s7RafvM~j5w6}0gm|jz#湢VZ*{"p.]C84?Yz&fi}V^K5e@]5-<fGiӖSAo6^3{r4u$UJz36,	lsUivnxhlَG-5Yd(9t!jjh<bz#ĳSd7<(qs>)P5qSl%u(>Z"&$D}p|p!L\4y)JO.MbY fe< ;`,!SPi:"po)l6`	jpTy7F&3J"<6[˲\/eJ>'QAXg r4m0Y٤#A
؈</mȹXi<=AVnAZP2<t\.Ϩ~#!^ tjsͥ5-0:ӤxCmHXxO2S#c=?vÕ蔰vc	_9m鈚D}^_5VgE: H8.x,#n0Ԥ'K!x#׻0G?{wvc,f ZKi,pH])ёD~EPR"J!qub]'a͠;A
{Lj<:_{gөNӅH+<eˬL.l`v>Zl_ul  ;v*/-WLf_f흭$أ\1kU}kB%q4${NuIGEk:18ܺ4ztЩ&UXM\>wƐ9F٦G7{p&㪐Ej1CΨ^Ea11H\u≡Q~3!	5+WTwRD$I|(az.AuȆB2a#֊vĲdfDйҍ΁x|>Xզ/V]3+u:)~O$2n+$j%]GSH*[}#ݡ(Ǎ&bc9AhS!sΎ'F֡X:ܐCfCKf9MP6Vi4#C^!/ؗXtŚX#)ѱxRԦTEP%nI 4b+)8\A	cٱnø%:;'leX&<D'fNrVX:m0f7vUv`)_X1N؋#3.IlI<{m%ɲώT18b!v_G?v)g$!mI\^tx%CkU,_**!~uJx%Y.6kVw¹[>ZKazD4em6UyrZ{jS{vWg/+/mIn3XZ^+LmnH۪=0m`rRTPĵ	v9pjDݛBO#R&>g^XqªL7ltfLy]XVς&5`i&ګe,=hPVʤ3=EYˁ0K80{h19k^f؛s51VjI7<Q'՞
FNj˰tmMmZ:B[֔
Rkl3	kt| !LLV xc#ch6Umk,+L#Oqcn[.ZQɑ?B{DOP7V|<tGQ⇢ފFp*:RQ2u"W,m4"ǒ$qIU\UEU9#,
o,k)`*=DEsdX8%KcF
IWXB%Cj;ພnVlm
5ϢktYz8#i?25bSc7Xz-px#Ʋ..6a)		u$M'>Ī.\V#̰rk_4}SDoڵa:f-/QScUDf_mO.^g\pD£]GEnFcXxYRN׳|p:2H/YuN*o`@ŅY]o|lZgGzJ;vLM41-um~l;	ZoMyPKnZYoW7i}??#玢X{&<|R8qnCKs[|Lm4Pb֫Fdr,#1qt*a$[ZlX$+HI]Lz}IjZn]ʤ:)dEOJ%}>2K~AE3VV)hP;v~[Hn4#H0u~=:rQhNXygTC.t(Y`G:rq>6|A#fTG=DȈ.H%3ԦA^6&+ʣVsB*h!X1&rs1ƕY,Q$stpr2D-
N	a8ðB1['d#"Hp6{5̈>)`n0ĵH
A
+.0%!c7h]̷cDO+g!Q\:N5+\Y섻7v迁iaȁ~uHMu9)v84UO~}9~=zwS\o2+/5	خ;r3[p܉~hMH/Esղ,rNd4IHR-{A8vq[Dopv E3e۷hqv3l&4(VnmvZ]rh;вE}QlTd[ĭHznzv4SR+Bf$Z~D׶R6e`9jɣiFRi	T_,S#/b&HF$JH_霥kLP!~;ᵋ(i?V: AV{m(Ȁ6%q0ej[E濧柿M%n*-(`fBDq1ddBP9'5B&ĐpСiUĐ_څ0SDb(8nލaRK׷7ߘi
sesbkJf>u$y8wD>#)Ű=K㍳Apb:]ǝkhLZA-x"K.A5&FR.F
d>E:&6xОvvAX&w&:Ob*^B#;12x.75^qW+mv[K4?^^=(c*>X>,KtK{c2vt1<{i?-%8q⃗[^θY3[@Ř.cW14b1臏\ƹ
+WZJ-={:;u |x 
^{Ϡ;ŪbH/]#!taUuyUpU]p3]rW-$v/6E{`^chwiFnd8WhUWN=kQ'/4.:jwvn;Mx̸az5cuQRJ9w-toF(w;W٥,Zl֧_(l|WV>OL9*XD`8\խ;ĜHMACh&vl^xj4sKL #	zCw0HB:-!p|{uܸo΍q/;QE^$蚆ۤɎ-Y:ΑQ4߈(Wڳ(R.[('4^}psAeK?q޴ѲdhޖT<d[jL~\w+_3T]D)$t@,Ffk=ǝ]jFŀ?]S[hp'Elqzӗ[VhԯM*Ok*]	[B5h'yhIlWW~]&Zz,UVΟtwPK5|IvazͤZ`nI苔8MP;7if^Ӄkk5fߡ\W5nGMuh[A~jS IfO莠ԩ:tiAܧ,{ݎ.{%ev}B3Cus?u{n5"vg?]\Cm:\nӰsoՠ53_OY!r}'pS7$HŬHjğD #Fvx<x@S K`n`"xb..].I/QBcx 6p,D'^.8y&٪3|q؍	+gj˅詒sg]ی6\mFB׿	A{[T"ezӟ텷9?	uùS\oȄmVp3N[vMvN]6XC@kC{1Sqي^eӎ[ab%=K5yt(VgiQ,mza4:&R2+] |}V8;aL}
}_<QD-@g(mW"&75<fnjg7PɊn>R̷oΛXћY0}37[&RyX1КAօs_`/^\rћj,@x"@8yamQ@$V\|ZHf,j(ꪗl[yvP_\`2/f0Qv42-"ᆉ	9|V湵|zT⿵W^k.CRe+V2jCC-,݇eg-dza6׷鯸m܊ZDnݼ~շ;Yk]GUhMt98EQc0hGbV/a:YWl!aޗ689y[/RC[Np1%7:ICPm0ku,\QL_sӴCښypA?j,c!*F|Hf?Tqt}xv}1g[PN.`m7LrK8ō!gk(~Db++Q7H	(HNh=rDjҁD`Cp-
Ǉ;Pf:E.j!֒$䦲YRPֳqiA5{)\SR^||dlX3!u-K)6s_wk1I;/RKJ$:*V1#l>"aQÍX],6(Sn}=B#IalD%?駠ƒ`z}:,K $S1G93T,Lңefo̩-TSF>	.]Th^^,* ȳhN?F旴wE,r|{йa],w٘.'egn{Om3&B"O[:ӅuwUwW>{1D߳fПGi` d/+}0'_q7{؂oUpiy7'ovD[bp7AraZ w|o-ݙSꀎoxfPV˥oz-	jTYo;osj<%xÎ{3Alg{;{ً݁gkHM]`=y\qC;PM,:=cm6HzLn;<;3=1ScW|BzhvX4~	کfgɯgz$MCaK[U!:9٪"[t'Wm;c>.*{BtޥZauRs}V ϶arNWO~=Nh`fcS" ~P
6em|vtLυaK+ԧpi.tPpaYaI[F;;e⏙4C&opCNe/;&f-A5+.twx	77&)ģZWG5r 'iQ%ZXoЦh9boqÒ#Nw6>ȆAsH:ǜ(+yE^ܘSXBk$?B@/ iaF"xࡇ]n"Gd:!;k+[bvn:Gw%=qnh<wcƐQ"=TJWd-xg!һ	̒$co)=Xޗ,iAJrxd+*IVNGw\4~$6?`oN-/
MC*S?p<{Lhȩh˖ ~-<ffGo-8U6G~EW"?A#bUMv?g▟v~Xc?ңVO['Gi#-_#6#GO)?˥wQ#g%p泚z˳UHH"-L0dVCQ͟ңnȣN↥46?ٜ"N>j"M\@5Zӏc/F6N] Z71.L$[1AU+eGF,"Y0,z:mĀvm3vi=ھp&qNZqNg\~k}F]dv~>كyla͟LW|	.ʮe*'SsS-U-?!bgcp:MLHԋuz^VoMw4".ِ<[IH}TxUӚ k}buz;j4bo{:Sϰڀ]}(a¤:;Ew?C~Ci53x]L`AɎHGJLg'PRhUmpb}NO&3 _v_v@)/<!Ͷ_u,|^TLlHeo)bzuW]pWxWn:N{vg #]	=k_xN>z`s=p9Zt=koGÝ\Ơ!TEϥ,|z/Au_&B'|f>;/u?%p }ߋmp˯[ѷ5D7	6W5= "`&g^~g*
M|^Ce4P)`Oз!JҔ~&Tߴ2?fdCp$7Fd]/uyd21z^t]j8ȢApK&!&EF0#gհa0r#Hy/73ܪ"|iܜ0+6mٔRpͅΪXUmn,#"`X:NF5HA:bAio|'CL֤ߠ
'yueؤ2ʯ*B.cy=>;G۱uA W.gqdÄ2uyC:yY_hCTĴs&?|&Ԗc3CoCq.B)FG	;~8Ԛ\`o_WAdmhaWO#YBQò	}rkb-d<A-`ʝ?6Fe![tp#k .`cVoR%w6YCrEOO?
Wl?vbb8+nͯw_iQ~amBH)A^]nʗuX^3i|oV$3hak1 -!8b(}u4pAML~s4gG12#]Fv&C *GMKy|DDFkʛ7I5pHeN*J?P_;L~s|'9H	+~	yȑx<o-ӳ\[ l.+mARX&bCmޒr.2R%7kٗ,4n"uҹ85N]s{M9tv]~C	]0rKlMfkos':Ip(?wm].E᜿bGEGO*%gQi\]=@dmBXW3k#g:HAJ^zk n<fy Tꄹo;mCtSqY7($ߩR	L)ӔB,Ds۝nȼc=N#zz"NAܵK]Xe[NN(qq{Q8Ph{o)/T*wlGÊ,DZ^3]Vt]voncNcr&G٢[0Tbs-0,H0j7̶VGYذáThRw
RG'LFM:ցc.5<~5mg6G*"*$v'mvALA(,sËo:2cD5?=F5E"G}+_Oh'@݆u{';
T; oiIcb6n:a(Np0%:`)g8*_W"SNӨ{"pY3!͟*kN)&>_ha@K2uzԧR_(SWj2_"HǧqOl	N9EY~0]O
SNLjٲBULE1e[V_%;9HE4S0ez򳏂*ZEJw[0":٤$j^$IJk=[)莜/+ˤbz?!PfjE2o5nl >KD}K[>*@@H&&F)RA@IUEֲʙ0>Q8GPbZW+fMYmF
B	s#R{B^2g*M)2($vG(b(F(t*ߣǯ6>&IZ/;aLJzT-$oxrJ%k/rk2גOOZMʉŤ2)ԩ4D]BrrXŷIIPtJF^B!ӌhFV\,dS6*tA_nk̴uʊR	j|TKj0a&E0W
`O*=)ljgQDLpA<凘{zԷ
{y,~%28Umִr7}[E)IJ`
QXkYXM*~>|8wOU|L/D[ih:jJ:P"DmD|CU	Ywpb'nФ%z0>BrF;Vp=v~?ǫZ䤶CvNR:UG7cՙ7T[?yP1O9lH%oS3y?*S	[!#fԨJ*^VEYv+*k_AL6cs!>>c~BUR|C[lBKmx1O-6ƞJ*;	ݞJOfⒼ!bIrf|x(Nki`d16j)걶r+t#_"[H,,5FŨJsq6OT+m>lT6}~jT_=Ui7qTm*kXvP]5۝8\.>J+oa%8i+o)RV׹y5Ql"{}G,YeV.gUc$hUM+Vn6YZf@J ;A##n]?(tHWu76Nϣ$bLZ9Ji+>Ed>_yC9ޔ	*ot(v
.gMNFsr>,Ht;M|F+u
v-5pp1R%IM*I^.ov	v*0 إBAsv.٪6nu"fF4Ys{!v ..jw\0[,bElZH*;w]*lb$'!FG֣~,!ja=(<#Ԏ%eAd牳26|_!`H+!RШ\+F64FCU5V0[Px*N[xzx`e(hRaU8H[9@kovak{[*om5qر');Т;'9kiC<lS^C>Bnam'&Y͍UˑJn`6NX"dB\!dW<pe2xj0-)?2Jcwjes%JWX*bR_}rgi]NA-Bnje\9BU9ԏBG7߹0h;h28 4SK3P兿/ .dh5ĀCM^WZcGb1J vUUf } 1W~o@o8^Zˀ2TP,sګegfZ_+$?u!
	TTònYǠ%eHTDc|_"PYR^"4lާ(o.l+t͖U	i<aHO,~:U 3Q'v/5FEC۝2`/ahKw%BYB'2<KgU>Ws>@{hk7T_߈k!-T8Pc`7C6:
}p)G
&1p
m$n_~C1Q+e6zP-^rԽ@Bs4`ҬD+Sn=1Q"UQfDQ">/	M߯#	vpTnt<^ϡ?e<xd
c!6ȅO('7{YO25TȮ+R>QDh7}y$f.Dhԯqر`@'ie/sT[lsF8V^V@-x̏GH#T0_YTZ@.T	-{L( 
g8E&-ȕ%7(l51UI^ľHǃ}(t檜Bjh4B%&U&)BNU$#K9FHDi_M1Tt4ڣy ?jTgMH>0|m5z'OήDL_hSV&8BpJM&3XfwVPZU5Ygc>sBrh[.rEVԀ_V~s6vߚg.O[b24یHː
f݃Ob_G2Lpj3-[R
IR^(	1	j2Da/ұ%hHӽUC`2.sfýqrazLriXMf'B7Pnxv#l:+/ؿʕ+&0_X@	zE8ž}%ZPMibPSCzSx"jgWf{+zc*bkpuB卐!ɎU.MxǵMYԨ>o3Atl%1Lv1 /C-jƬhW"qà!>߫)ű(؝@y(F+gnS	
iNb?'ʕzpKh,uyF
>ڕ+%RZq@W0nk3_e޸w
T$۶xS]k0}(2ش-EXWֲ	Þkd6&{sMg
eH~ۭqK|I6+DZ'*qYh0NlpN!Gg(/*fA8"T9~I P(UZ`	R0&ɀRK9P1vm~ڭOD5qy
NjC8IzfYZtntԁ荗z(|T*q{6Pμ5}sjM P26t߫34 %u1ʅ< ʆQr}ChrH#Dɱw"VD
tt19<[fK9~C####g1W8?k^ux^'c:?&"ϿӷE5Ə"5@O'ŠYВNLVm^OmflwxUKBQy?+%ÈZ5DĠjixhއ䕿HКZgjȭ֦ q:L=={ΓZ&ۙ͌Â$-9,hGZCj+kssNZ#aJQU\/N{`H !h	E`eNSl0z2f7Ib	vֿ"D/aC[=K$d;( !єt&ZF)CY&[0.Ϩ,ȋ{d$O+I%inUN'J}ɼv2vPwBQjAwOL{ab
xFUT\:]Wĳ|ía xA
0Eah7UJ/^ dbe*IZmX+"LITeɎq&!$V"lrEc$71uL\G;4>@ I<5ZDCցuEQ6v8uc8b0 43B|K{~
Dx|YN93-/%5M!5((ރKKq'*r)g%甦*$eqrJA+$(OAYIK95/%3kbYO5QgFɓ԰S#M6xmj0D5DrCi? S.9/UXC +Ƥ4o4<7`S|2=LJ' S^͢Zkr 7캾Aj/_98W0{v_U: EG-˩X
]pV)pqԔi6ţqZS)|ur:I{'6#>qu?3x~k]xa^δqr&2 xVaoFQ"$MO.ת**%X'("I}1COvf޼y3zGԾ:vD:*l#Z}aUewI{z"_"rN^gE:kVby6/"O<'TSjU=Me5%eҼ*T)ESe7UVtb/Vuv[H&Ҭ^deAq꤬@e(rq"^zʚ;*+[.N(S0T&PYF1/|ʊ[. 8f[#?@.5fIXDkbpe%i[ Wz:TQ*`V[NHqPkD?A"A?\#@nJdiSE`V
ƴzޟNıꍡ- 16d++<h1zG*R X1E`*FޙgݛP2g*Bh3WPkLfÉ(F>I[4p"cM熾Bg3@߲ӛ5/<ԑo rft
^H!Boh?]ߚ JGךH.!IS5sL3e`966"1O(8;ui̡ Esh,eVl,v {$?+Lz 6#iXd,h5l2ƞg@%#b$r,Z8gPzn&%YѶsukϿf\C`@u4]f*
㉬S,bHL%@2}2}	~cF塺4udW~/FKIȴ?8c7b`fMZqOR5OzN>9pPӃl^,[hrpP/쀯R#|Y_ًK7WPލ,m36C(\ŭ%liguJ6 0N<dmq~ed;ydezp:ɦow<?Y`Iwq[>I{#Zu<xQ-J⦽JD6</M_>jmTO񪎲"!{#[E;	pM퇷{XVꭨNPtjUf1=|Y$6J'8LZr^	7e<|bU;v3hyv0zcJyvIah7!jFf%
kO=O*BB#D z_<n<oQkWu4qc/q$_o>}CK(bяoje6/or:v`{oT|7Sx&uCj]\]\}99&eeT؜ x&_bC1;KjNqd=v,9  z1&xmߎ@M&F$*҅5nҖ&LxӅFhI[6˅1}}o|xӆe^L&Ο?oy.@cΡQo@P^(Gmh;ǭcXQ/eE2r*vU6=:UL?je_?ɢ5^IÇp5?>is?5IW$zTn``LeYE{i ゞG1
q!bUw|pJzk"±:Lb S1)K$ca@5Ul!Pu^&<-K20ä/ cx&o25<|'*o>֫H%8,5JBIX{r\xcf`*ΎdY 1t? Dۭ\!W_J7sb8?ԥ՚9Wnsg̹WD7ޠ׾<d憱xX]s8}vg4Kf;;f"8Ѹ64̺8c6m^	%	pιW_WW~[2/sBWoᳬr	, E-WO[U\
qޠ@W˲hbE>6A4KE\˜Ô%QJ| ޖ=>zY/񱬷Wq?-U4.{i>mЊqׇZD ze`WS|>_fʪFLb]maAޣfO	GYGJ@q-Y1_~)yc ư{ kW0CG}z-Rlg6a^{>EvibtbuOeq0G0d4#-jڌKnc1-^xxW+7tH47pn!C)Ci!W)\'s/a*Dr?𖅑A!ٔ	$O;8K:H`X$鞋ğ1vm2FءM$/V g0	'PY !B׺#ztl8M0๒D;	Ʒ<TI
Pj3glCY|&D1?I}@
9lwt{CWDA3Z:{f)2.utLbؠ#oZ5ЈN 5FT-j~#^MD:Nѷo{&q;\!䬔F(ay-3!lFmQ`߅1$v"@e'$#]B0df$j.㘇&WH'E­l¶QxD"ֽʬsEJ.%[
Ka0j*X 
R Pnd	N4L%\&=ǱC-'~ZPCSkC.? P33#}4v D܄а;&Qp.#>yu@z)M	4vNMxϵRSR	O2|69aُ$"t`p6 `t3
G<˃pC֜W.;RX`[>C]_`abRXC{g4{E)ov4>LLFF5꼻<+$1ap:k+ry\x'
j0η|iiŅhw[^t-*߰Y4td_S2%pGiL$
<ҩ=c< ӒZPN1fۧÉp +7(&rOc2cZA܍}8SK:s^jvݮ!/zb)ڇ\AΎsFP.O)}L̫Ob/rCk$z1D!<?3sy:/"QPo=^*sT<=c PPys7#)OOs+? |A!R
hȔ/_++x[vCE93-/%5M!>828>?ރK(
5Fvx?WWԼ̴k'N,Ȩ21?LȄ8*5D(51La̼MkLyQfI*D,5݌&[(Q ;Y<J&7hA@Bx$aM*ɩeu)Hg祦(O  a"Eq3P)oLܣO8x]k0BQ؅fxtDKV#?@?~֏Li{L'1R!lSX.$)E.jPqz1V+n#Ҡ",h´FNCΣ~Zfo~-baӾQ^ ppcN'@/Άh	= m^뺪9#
d,/Pnp?5b&W?x+:G))f	8MMy,P{/Z4mt[TR.?e d^^^\H9Q	l"WϵE}bǈC+U=/?Hrv nAxdȦKEm41NK95/%3kbBSK|h!\u擽Ű<Q
n
0L()P_Z\R\.IbrJ"2TJLT@(S_ZRZl YwxuQA
0^>@"'^KM666ٖwc2(@t\sAJ%9tc#jd!a J-r`"{F!1	\CQCǡ!mO܁,uqdsbBY3#nz"iPdQbdݘC4Z|&LI-b>$tExuTj@}ŦXRPbv&hEF.\
ޕ׺8B9g>ϊe,Ƌp<ϼpYMJ^~깽qKZ;3\Y͋]Eze4^'f>^A8ZMZ8r3Ifќ@GKRKHiDFI+BD2
5n$KLH(ւ)K݇yE=ݢ'\Unfڵ>d}e({Fu3Tc<dy/3ƻR&,k9Y抃7TPSh_␁$GT'lQ1@'O`=CqGBF%㨦*GuD<'ȇ=SHw3JN
7}T\qqZWjc}:{^>f2?'qUxK93-/%5M!1$ރKKEpU'0WjEIjQB5rj^Jf@Y*\' oLfgԙl¨#7'$/$]drdDkD䍌R¨ZA&?dQv#ds&əL:a&}$\|Oc,18>8?WU/H)#T&OxC5t5'od<̪K)MIUI,)OO,˰ĵp  ~,x}]K0`l7 1(I6ȖbALAe%^眼ə7u{4uPeL3WdnMkM˪GiNm0ó*L{l^{.XE qH,lT`㰝.,KzVH|I	륃y!I7אXp%(U;J\S&R
~D<C-;	E{}ti$HB\Xc',;
axx}9Dq4'=Fx4Q>g~); }xuQ0{(!iLAg/=XjEj,h0keRx2R1G1
HKCU+ԁsq;?v݀8DBV1#mȶu?5t! :KI)	ax
es)h!Bg[QR&fyw3G.6n[M\8MT571}OozqxWaoFnaJ;;ET8{(6U1pXwõss5"˻og޼y;I'0NUΣ?wpUҊq3h*"jKI( O8@vK^1Vi	K$PB3`>tŜ&HbQ'j4D 齠x"_a	THlϣQUUIki\LcL,ğ͓cs,~4Cf>G1 ́F9=JUO"4Y'})6[ &.up:ʭ13Gfqv`l[cfn5Qp=fr)*k[2A"LRE|rKF	˗-bPǉ*국T~7[3ӻSGnPq_ī+%k_&	xؤhEp-6u,_XO<L3xρU	4?م5T؅Āyg%&9?\{>iއH{J[5y`t,b̘ީu4J6 -8x6O[h2a4M"db藖!~MȖu|5=쇗q~-/.ֵwk_ؾ1L]^~eoXa-%9uggkA bQ0Q1a i듍E8AxC,ڞכd:7M4[Plۛ[60e;s}X9%Εmh7Ij}7b%Uq^<B2>
Rj"Û7M-fj6Tjbw@0ظ	ƈTӊwOOs3%oN3qӲ/F٫gtxƱo*ݍ#ECzc|z>t%?=}o&㦁;oԞ?$xXmoH<jYid"a՞nw2&6r:eMcln_UۀvtH	]]Tu\@/IYxpս_9q$`yG*x3OԟW0ZRN
XkEΑICFˌf2B?F P<IAȤbL>H)S/VIj%N-.84n'6#ajOৈlOo _dDBWY(xBbg\򙇹i!L	x~-m*<ޝ=Qsہmϰ-|fMް*p4
/iF: Аʫt9$%<0g](E̳g0\e(|!&E]|`d}kƼqMu`lFENgE $hZo<*ZP]{tmƕج05J(e9c<ʡ$g(+5Ӵlvkٮz)
Ls}W&h{9'v~c-jd@/ǬuKG",OtlGwu?uf>jiX:.?3?Z뜅q,w~d}1
&6.N0τ"_U1
_2L=lN[ڍ3c̒x2_1%n5	vc;s"N}~*x%YcޖXcEL\2odct Rrbs2_\Q
J|?nG#rSWvO2:q#u}7EGK<'>u%dLQUX"u"U JVdPq+/*P2wfa,$	=4̈́@SGj޶IUTgH	CTqfY"ЀIn?T8qchOl<<7ϽqSQml[UT"@w>Q]^DU^C-v"~T 9̒xca;P>eՑU?hX>3=eq*W2Ǐ
}2͞dX29H?6LdL@JD	*ˢN<?c;wόdߩ*2sS:&uVφ. XTdJ
(aHH$cTj
&_9ƃ)lnkNQ~*|Tn<YW(JikTJ"J9uAif7A,aʥSmf̲{}Qy2ő?r(f(k&jKV|jle{[lhu]}06 9M_f=G׼ra2`vO'sǑgڹڠH<7ަzc:I\((+([)H	ܝ/Eǧ챙U/*}+x~BV-o2¾32st~5=#8J(I\zPd5ЮaOjqAkXL2bȶhH'l&k4-@
j*"I`k|X$71{9F+8;cY)tgq7ƖccRFZ5:@],9){l+uHbm$c3yc:bT*@R)Bݎ_i<ƨv٭7,7BW]cSc13J
i t-@ha`]hqRU,rbSɋ>H2J;	%st-x]>>xaɋ^ic;Ϟpr gg?.0
N_wY ʂxUQ6~pD,:$$++ X%inV%KY
}>f6`pT0p*v8&8*p2cEFLR<iц}WpbrDHHDʁ?EP 2S
!PǺP!k{gI	LilTlv>&=,mr搅H{m\J((X"G);C^;c*ϥP"; DY<JHw( s+ Yg@o-7$v ]x.V`;xGܥ	B(uHThQy7$!%DD]v؁!'!JyRqzR`8I$L>zCp%4\Q(b<RcRq"O7Cgb4Q)ޢ)\GeSQVRM0|'B.IS)$%JÇqѯ_]SE6ĉ=t jrSCCх8vp@Xk.N\-;MZmU w{Ҁa_#S^e"5RZ,ھFko-gc:a?27hghǮXNXZVKeԱMdktYl~~FF$m}.-<C^FndK,Z٣6	X{QrUS{EW+SnuHwz{6?҅TE'ҷ^/G:iUoN~F?o}١Z5jSk}:$xmN0N4Rx+] j)Y[Y"_RcGgbEI
k7n7jd*T!?FФh*de& ܾ mj:Pap՛kA|$-lBhLպ#巄BwqBpW5}5Q|g5(kzl˕B@8H@"c[¡oxh;o&0q#]Ě5Xf:PYXxVюH}7N?nl6;L {T
Kmm&n'Mb[{ԅѠہLlF@/52{P`pX8pB4e~zF;s&p=P)Sاl=$SL8D,@	`	6 NSYIҕ1>EH-"m4vC$=L(4&"f")ӿc٫=29H%]K*4;?eqU!N;(`
5p2û|G<Cwv`b[S3lfYKhXS(
@!eHIQi.'$"3X].5uzO[rybeؓJQ"K[yE"l["Dopj;OT7(2WcJh?(5	Ձ2Q[;%9=T>e :[E7a>|iB<G>G?=8M.KxyO\u"v<c$gԤEB6lWo4,yPBB֘5U!S79>kK#~u(CI_>dDS[ҁ B׾֦'1f4sy^{flW=JzP{P`&.g\wx1RvFbg^Y	J9|sFHAi@K2{ڗ+#ȳr0Z)_o({Se~<q'FR2^m6e/_uNE<x9@HxlwbU[aC?a	{KVtWmhoD{ 9]q 4K:ԫfC4IO?jA$x[Ys8~OUx'VJMvFd[YL	IXS-k߷AJ);ښuLLF𛳗/k+oJSkm^}`7!:AZsӇ&76][Lky܂MT.keHpuL<*dke,0[HG0h	O32K=Gr l^-b=|-k%zYif9\7!{`}wæ#P|˸,>03i7]6Xz}A|lh_C2]ONZcָ7np:a_[Qk0ul8bӛb774 Á  hTr,D
BP',h.ClRZ  Ǒkj$/_93۶VK_|lMvFuK`wz]Bkxɵx6L4F÷{	6@ua.׆kos> Di@bl~2Q_IK'UVՎLgsOIh،#,>phaj\]5<W	f->1hvL#>йKJ"a`<`YoO;Yg\&@tE	!@s?2&(]MfLv>a?AEϱ' KKF
!W0aI@pq1AprqpJ*TRMhi6E\J)ЌF$A2]Gr0(BQ%.L՘kAh>[5a`نȁT
O!GكYϵLm(hоTAd(]V7S4S7= :eqְǶYA7BU̷]l߈*hѲgkV0\BG
co	7ҖR>T\COAψkAK:2 Ayצ6Zl,znF۪110X".akGFcVz@`6`4XiQ0#?'=	N*K.T>LD x|%ؖ~}<Pl;ؑ,*nb@%ND<눑ZZWzM9 Z@|2~NvwF!@pcᅍ!O5nYˌ}D3|K5pXza_Vm7À@htm	\eME?<P_g2K1&AeUDB^0}Ds-u`0i^E<q@My:vB%Q):抍i?
v5a[9N(7]_	^yce5O{{]E/
(y6!-kc*/\<c|DQQrR%'Q_:jõzN]s9ZC*f[u$TGu9p3J拾Vf?@R=ji>tZhwQfPنT(_a[%ǉ68T̥JPk~/XtT~H4הP`VLmӯ}ǡPu<czk=&5DG j4aLtέ{A4(¶aWZK_y;fOqw2@
躰4	O+`s~ QeSU7pNpțۚ/Ac?9S&Ŝ}t]ioKDw7٧(yd+_Mţt~C}zsw6v>|0sväp?B<%Y	)Y"3/g>~K  }:9a,P5V|QζR*~5?8C*n'*@/GFq#R>Io$/Hn&ɔ&	޺$xia7K0޵9fxRl7H8pibpwTL ppy y|TAe^|=nK%,̩%`P%LlGu <͏DqKja(yesGlqp|6ize.cWyLA!GJ(d;1qK9Fҷ	"#2)O{$	c`aހ(E.h~gD"xWm[}R}6'䢓kv^)g#tfNww[F2(:3d뀿:+gߺYgøbH h\@^/`J#\i"Ur3ޟ}V1ŵ&û gHQhxL߇YC8EoC _Oy%I~k-&.6nݤˢŧe/n29r뷾%qX	 kxj_a^<$;ї4Sә{79)-͓C/s@a:?r:zs*޴FqOL	ëI_+ͳӌcww;2#9vods)?})̲iһ'{kOJJ<O̀Gt`X7nRaUF}:qk2&i;Ĭʅ=Mn2RHKߟqo~HUX>*4~Pё Od@7_-"Q
9ӦsЕ(kKJc7C`J7a!}z`*	Pn1&sEĪM&a|vQ{l_ Dy#UM:\i.w 70K9q`͋dJoZ^:sط
N^_|
]VVj)Tl|i~k0߄NWܥDaA>OSF:&x>|Jdw7"hOX^oĤdaDs+wdS:+M].z1vD)_c])hjҜ%ܘfzvw3u+ޠt#?U>d.oEW@Eg_Kg{H`Aӓ0\$p%G-k =)Fϛv,(Xsi=OUYr\5
+#ʍo.~2:_"/҅g>za;1cx;Y6x,Fg0nåǴ׉1q<Fo5'ZJMfE7_,a QPrFx}TKOSA*(ʛ%(HjBB !@w{LsgnhWqoƝF&D%̥`9g}_]\EC"._nmyHFys.<.@($$}y_*w
'ѡzv8d+lzoyW.]F6s]lkፗ֦{pr.. _^MfgfU=T5[	]5/ QGN=?y8B,V$t@(Q<+БV3gzm<Z*IL5h;)":P}eA[M-g^G+[kʣX5@B|pD"/q;䘶=Ƴ3<UwM~\扏#ӁLu-kp7	94apB|{3Nt)T*a*}V#Ԅσ5M!A-C	\&ӡOEO3ZgmX ]q}Ǳ'&\ "*3wv=f_@+cMZKu\0ur KՎauUvDzz'o	ʤaN$n3Gi
jΧ݌#O,u	+MD!Qnsw"G$fo1VEV6\N^>[;+ћPxV|l,F9^NĒϒԢĒɊ|8@
 <L
=^.-R<y%E vBRBIQbYjQqf^BIF*A`rɩ
FH\JHRw)J,($XRPYZ t]fnb:¼|DSKKsҋ2S?y#8dB%6ksf  kwxVpɑ'O:2yfb:|NN
y)yC J>x{PpC),KT6?do oi	Z_x{PpL~3 
Ex{P9w/vܛLVd|B 	$x: mfHintz
 and colortn;62	N4Hx}RJ@eUP-PEbS+ƺJ>MwJ2LtZ>RJ_Lf[-!d{=gνwOm	.ɠlHz]1]ҿg$v礎ca1#-Ih5We?hcF	U!Dd& #Óv8~?`d
=e	
	T9AA2ZgOʗp%CؙǨNyQWaEGX9(ڋoSESL)㙆`<x֟-rWW.tKƱFcɅ)`N[?_N$検WL	V?GU|DUd̷<rIŉC~ Y)thFɼ>&\rx̦r21/w)]@ƶ<z<j/}[Uo[YJ=[l.7gX>|m
2x[69cBr~N~[fNIjBb^Bfnbz*?ustVvBBE%
y
99
%32K
2+Rs%
٩
@!OnRXdi#: U:lCx[1e' (3\x%'E0;D(۽( #3evɍl
;XX 3^xљ8;D(۽( #3ȅKAK!'3(RH%dƧ%gOvevlġ9e> <Sx̜!dGKQbyf^z|Pjr~QsnJhIfN䍂yE%
)5
y)
%9z\
Z P`h<y#AxX(&%UdXQjANb%Փ73푇+jP s!S@x:gY&gTl<7 P*xUJ@Z%)Au4!!ڒzN6]Igf >w";>&сa_[MS%)9H5c$$]kg;^s)`_Q*/r`&Tf<3	^[`ba	(fĢw]Oǜ '0*8	U+7I؃qܒߡm!0^0[$Z<wR`!hfj M[[7oyxr2a jnxx6{HiJ  aU"x;p:y,\
y%%ʈd*ĒSRr\J!\x̼xF1yҢDE&cWWYSPXWX]W2Z<-\\$4% BJ8x;*rg
ܛb<Ed 		%x{&f,\
y%%ʈd*ĒSRr\
GKQbyf^z<Btr<kiQZb"Zy
 2+RsDļb
y% Ń:S	M%YA B8=x{5Ax:3fWfg&_b\l\a<jNٌ%3J=]3!"96?α9S;[IbQzjL># r%fvxj hQ.e
s'w6Y=b`v(?Cga0Ow͒"Xɒ"$'P1 fl'	Oxyz~Ye4JR2sS3s+
2+RsJEpy){Ļ E2MiN-
 *FV*5y>BB "R7<%]xmQJ@b zE#ئVO=DhS$Qi	6Vh.>P|_γT]vgfg^>wj[9|GײtDK(6$SLIQB	ӹ& Vlu2v|ND$D)I4o2a-v۵|b8 4L,	7
ţ
gW5l}`4Jf*	Nq}?DƴttlY44FP
/JjږiJZ+k*p-G%E~T+u 78n+xTRŝ4eio[7g>ecV5Fj*\{_eg:vxOK@aOPX)AEkfq՞VL=egI3dBfJ"Ez95-xMOָ93oy&;׭j~\G9^:A-::1鶼(Nȫ{YKGᓲ Ng5ЃBAY
liWcM{'E>%CmyJ,;-+I[lj\{_qE6٬<acjRR2!9{OfR*}[B/ʕI(ȡ@$h3;U/mQOk.'C	#	-s2k|gq`Zfݴiy%zlC=(V@M m)uX7c{|C٦ms?,yRo_s? #Qx{u+3fWfK͓Y6luuJM"B &
x0b,Fp6<b|DAQjqj^BbBj^rN>H"(5Q!?O$#U!91,X!'2hGaW Y
.EyɍK2i+$)$&,II-I-KJd&4M/*Vd3H)Xh;9&NIx:/r>X88RKK*s&'))DSy43(D"PYZVP_݀$ ($ ͘z9EeAI%%rʯ)c؃DR甏bXGKQbyf^z|Pc0Hcg^Z>Ph/n43 9!xJ0Q<H~QmxpQ/R6mit;H{2LQgn/	y{_dgLTC(,P)*A1*@~BK)Q;s2HYYO`ຣ/-}u+Z"YdvԼ9bf._G(P&Nx#]%/803gpyhK c/-XvA(MS<vQOfh];_:n_d?MWEv{KZvv? gOex[q<rvr~Q^jBQbJfByFfrBfB~BnbP	fNޠaRXWb䢀$6->dF7 L'.	3x;c'OA~f^B~q>+9&;I=]3!"X
K2&qKj$&+g($x@X83/9UlT PXYU6qN 2;x;:}C=rf^rNiJMqIJJj*\<E%E 
`=^.-Vp(jOU04j⋤K#ޥ(<3/=Y|r!fn} n,p"+x;{+f7<^|26
%
)yřy9
EE
i
9
%@r=^.-Vp(KNU04j$	2J#(3/=,0KN81 (_P4h\07?%ZPEƣI,ڼE2.q2KJK[^_}--""̔!iCeŗ@kHL("լ;9?HY%0 R!8,N)HЪ !
jňxO`8YOeZI 	/x{}cNN&7M 
lx{Pxp -GxTxpC䇬F-I:BxWoF~aJGԶ{mDsJ_V{U.,q]/N&i)"ޝov0_|6G8%0b<bh5qW8,*Yb\XQ<A4К)A+	!T%C']xQ~Hy!%sqSnS}++i[B(\Ͻr
t7/f6.{6Zo&Y
{L{zEYpNg3<˰`OKQi%[H^f@|NLg$/N@,\3"q5ӹs`HbwB@$55r"fU8c0oYaR`/eyK+?)"jAj*TGdFĥg8cjCH]Vq[12Ε6XgMb!Za1֠	
wZG"Jwx&
Pێ@cXtz_ӡ{qIlS2QV	KZt 1ǭ+&j{Sރ^)
/):os0=&=Y*+`_<,e^2?<tDS5ıcѨ4Zsi>uO~ɯVU"{f|bjXx^Y횣A\89^Llnl_:ihr_TnT:j@pT$͗#5vО9qwP91l3~2Ik
	kV%&)]X[O>.xKaۂ"m_SK2ڬvdBLTعmKM	IE|۴5!b'R`9]e0GcHԵv/䭲{'7{߫puushTĪo|'	frWi.S[իZ}2Fu@&Mm;<YY~@u'^)̓b];b[sJ..mj:Z?7gfa?&_Yڔ:;?/-y	69{] y[fIwʦ=&<nCG ~_<&ziS&3xP*F(ބ\| y?jL#2|	99oM}{a=T[RćߓU*^GDŽ@o5ý7/n6^ǦxY[oH~pJ 6<n"N-+e_,c0Zcq)b!&[HQ\o朙9?pbArpٿ7&F#u
\ta݋D|.av_6҅["pyIV*	bXqD`N=CB'X}`M2qIό3n!>˒`s!ȋϒ^o^_I[T8ա/x6=Eȇ2L{;{zえ|(Q0kĎK#,81 gВMPdS5;uFNN6Y	C]UdުڨCGSD(JJ *
CEl/,h$0D76OꝟseNU+:mi#v"6W8qbB7Xv|S'xtX2o	8gǬ5l粍ucY+rrHAt App`/87YIL!Vc)^fͲ0G	7fgU1 EjY"򈿥Y
x5U)yޫcY,3򍦛J1jcUS@EFJRg.D{4-}2XR0]*XGa膥^KwSMSyR$hw1YL=!( ?iCy<FC(j(5^_+-c㝒cǸ| t""d9]Uxc+Cʧ`WU\OUx2Wi2F!OlJIق}s Ez9<۪PK?MeO1'[Ӿbg<t<lXf~c6ӿ	ua{L;yH[ck¢؁i@ym*gakp:PVwߐzy<8A!B,$ka:-p&B3Bxlo<h/4:6Ĝĕ9L}j6|F҃8>!o>r]c{q!3X$	x>'uT)K	BRtCkp/0s/e^7|ۆar>6+z+K+y "RGuTdCi#z/~'wty<oЇنJ\B-yܣaH?cRTOBkԅM_ld >%%ɻ8{1NEhvVy|o(jې݇ȧk`W:\jzepʈm7M~H➋dT SYAq"٣L68v \6_'_<BEE(8jTi;E)(4i3[Q&<w=iݗ6T?~Bwh_n
ʇ(:xXaoH)aH-T>;5IՁ
9ְ{%68vn̛73og߃wOy&SdF)t;0AWV 8)=%>~TO:pE%1uAJHю%<)!N89EC"
ާ)ܦ#11>*M9A{)~@5<כf]"IwlҋJ74"e<Sρ'c$IFOY8'ȓHF%Nrq[ybM,A]0]Nut;ۗ#GF@߶ȴ-vuMk@>DHҪ.-aRS곐]<)Ȅ$YIAJ[H18epyQj2Too02;[40bQQ4`}͏Y)	:ߋt'A
fY8N*iTos
mИ4P=vFٍ׷/>C]YV	BLeg8xg_оv=54FlJxXZJ+N)s$H	U Do;Rx-rc ?HxV9>˿q2>2pց2I^x)%F,ꚰ;fɝڮ7r+Sogً<q{w$
5!U]AXFg^|z5Pk L=UE}_4B}	M7oU,ix8V@ª $${@Y/Scag)YVw	NI6|;[Sk1*UbZ%YmȔK6r:/Ib*bqүj.s&-&fCZh>9>gg^[4~ǵcKYga]ٴe.[Jbߌ\a\u"Ckk|hͧ']9+_(KjᡱY8_r dɅ!n0/O*1Cp\<>Q^ZRtD`yr\c(FTִ>UKT֊B2fIV[o+gz=:Q} S)+A3ESEgdo`4fkPWLD5@E;`w͠](fCϜši;ؕd+hbe,ydy@(yR§H+6*yۀy*yP-TE	VѿE,ozC#_zU_~,TC([<4,x[k0ǟ[w8/U6RΊƞid]hg>!_97΢qr%gEMN~CGYvfSMQaa(ΊkqZ%=1!&ـ% j]f @>z rN,ó_B趱̆6ܳVuJeC[BK9jLHN;&]RF$Pu4;ĭƣ[YXgyצqLUmCv*s9G$xQj0=0e98vaL"Wdgl{emn31^h@y{|ŵA(!N4]; X>-őёk0;;NkJ}ۏe	eSԏhTc`WD)"ı>fY96r;eJ[u+LH/djZM_pR?ȎKC{<]tg=vEݟʅ_3V9xeSk@ܠa}6Bbhzgg݋TA=>^FIH4/Z|Gr8D#63q7/#i%rIB)myH!"+$^?JB!g`VvSݬ}omb-g,&j5>b]u0P^nXRm(M柟]mh޽qw̆0};$UcKi+$vU4-+*J	i5|NrA^ޭpsß^s܅/ׯpFj>s̙z3<9㢅ixsא|rj[Mvu-XH[0T'd<! әKs1~Ӄ"6FS}M~?e	ʧ~%A{<xSj@}V}"XPBQQ-ivv7wDM(̙sLf6IVK0 F(PuC?od`<q\gr@	j{k]axOpʙA뚳4lpү\(g^WZ&io#IF"#ޙl;1}aSvVP8ӡi^Os3h!^UeuҿF[ bbp3}jIWk^]OEުaoWbv~%d`lĕש{vI゗4~ .6xP
0b/m7KM7ҤݤM=BfggvX$as:q?DdMq,[J5ƿj^NA`iPMAۦ&F??	qakRQ}m[,J}CNeE:vX׼t*q.=ѭjk
̧W4%ٯKG<	'xuAN0EDv,!Vp j:APIZH7^;Oۻ|)50aLB?H+Qv+
@lED
m1Bu8kmGQ|A8bnf<J=}P~ D$W#Q5U\#qOk1$÷ʌfCaty2u3*(&]u$q*R&ҁ0U7{Hfut'q +Fgx8qH.m[[dv{ztά)m&;x8qU'f-zzqJ|Dh xhx8qn)[fILϫxZ9cM4 Ax8qgҲ+Wy}qVߺ]mŨx (1&ՊzZ<[}4x8qWt}2aS]w6 _x8q_qAfNiqzf6& [
x8qHM?Nn!iƉ6 ,5x8q`ϿL7:{M4 `x8qȗ]w\
ptDh ""x8qLSns/OW3Y"3& xVOFE^](IZ
ڬKް'1FkJ.@z4P(Ҕ~@O
}#ɱKyykp=,$hAs8Ȃ2+PDuȰp)NiYRrFHHR)1)@5Z_6<9YB%d)E#,	(&X'#1X09f
"Kx")52Y,mns1DEHig`L1!j8i
~1aK 	2|# .LEB0)4wT
gr#ueDW<Cprpb8VXpc42l27km|;þǖׁbF:*$TRiYJԿ/Lӄl.fdJaʯ1(HT7EaN*bs&]Q-V^ךl-3ϲOq~6k5FLss䨥3#`|!wIWkԡkwq&9uo9:YsZدOM\h6tW??~
CݮU7/WwoD6X{;'PZm<,?&R#l"0%XXUUxe{zaYW*!f
W+VkOGcΌ'r/+TWa|]5>,φR>:U;mC:𙺫쵼=Ph襅 JlѮ$]K)ލ𺍶E]+eܑc=S#	S3XjюR(ޣM),<TzeݞգtG&<k7>-x v:Gj4׾`8Q I	q6q㽜j䨏eAP9ګ^`q6UxNզSǢvY>Y:4!W$㫈@q*"6ܭKfNյY;xSn@*R@H#E(kDUQRU P4ihfP6K~- Vs~罯Տ! tvR&a2GpFK~ڭvkkIN)\N1v8\E# \4鬛|h'{<!e{vYl$e8 e+CHt9NƲBNG:lVȄk4'F[TfRܚen6u:1d2E|T)V!}Յ</&EJ]MsoN:YR#P4Tֶx~.؇AekqpܱC*W?'̔.7tAZlXӘ(q5At|rֆu\C² d(b`u{	#JϓsT{yKO	)%]nkx1c]UAtzIv5WM0:{՛;~z?!(0x-rXx/̪~aA~Y:
y:
%
~~A~Ύ!h\rMz^{Y'g=X^.}}Ԣ<+Zwv<iv#g^4>L@{zixdֳ)4>doϦnRNIMKv6z@?]7O4]wVR`3i4>iSV<)ϗ~ַi'e=]׏0hcB<X||cc{p|&+5 な⁊tf쇤NGuH19]­3LH#'rmc +<x]QJ@&Q("X|4~Pt!V@Qp2"X
BiTdƅ+q,̙s=B%DKټ}`wp0SK99iGV|Z[a]F@iHmA	QTg}hҤ'{IZ$쳢}acL14Y}zZd~ ưFdy0ְaawEÂxɷ! ZYM2ȇ|?C}ltUk<Xb^["_6{kVg[Xu4h)^IrN2<.0!}	~eٔ'[<$.Wx-_xCj%3RSAl-M^Ɂbu9 x{+8W`CgLE7/ad [@/x{+8Yp)dCfK< 1	Kx{+WԒԢ̼TԒ" \ZTW_ZXP\Y\PZTY^XV_ZXP6 =,5O,14Uor/kd66lA~@5ubx&N6dݼ͓	 76Klx{+{C.d~6Ɇ̢y2 Nm
 x-ͭ0 `A0l%<vAD]K^XxށB^{,禺%2%6
_s1K!,,ќudt$t#/rn$QDe .))^ȱ9^j> {*:f}x;,|wd#67,<ĒɉR@!ee=ee0K(hM^vkr ZL Hx{{CxӘ'm nx}Vێ8}oľpnVJLw4LK+E&1Rpv߷!Ω*';;耕fk	Ѐ`4(1ݲb@ze4G4`f$ď4,0Z52O%b&`
=!L7YG;&BuJ[]$]J32:"Ul2v=RJyOPw|>&-xB[^d+$KT98TL2wA+#9-DLȜ-mA%v[G8LOݲg2Y9ܱ}xcgL<	L>;޸Yz@Lm)ҧTJ+Q"![qAb
q9Ǧ 	u%Fem$ĮZ+VH p'1N/2ZA%P;.QGlU0)"
+Jd*rX[.\U'o):֩C\+oS[hxg0ZH/2q]s:9{_t}OWS{j+1%?j9ϰ@۵/.q/fat>9&z&nbh$LVb5ɡmHd)ᜑ8c"4Ә8OA>X <~L-Eᔇ&nޖ39'"K\c8I#r8BiD/,]9z[)fJV*ŭ"	V]URM}:3{98i*4$m3YzXi۩B eL'5'e%cP9u2goш?~nOA8Rw%P$g'<gwdFYmu{x &O#4lX@65h4:iZG@]44,MSFKk"eCG?0t-GK?5	ꥦ0=Y4PxuBk;rمCP oW?+Z/xuJ@in*/C[қ%f7B	AEz,>CGNLAt/fovvzޫ^_zsv~=a`\q1;s!TH/*. '0;S
k^Y%> 0!0Zܤ@GJE=S{ۀ.iICP-0&J(f2сx}_HF A\(mGSFLZ\`kH3Z_&ȯ?A鵅2K_D#iRx/Aps> /Sx]KAaEZڊ*"BzĬ-9ɜA]sź(&Lߌϣàu EWA6fm<r]6w=_4~uSuӉ	0?Ol7ik׳ժط0Pl1&4|yc~966.h7gPs@G"cP&KxSAѼZ׍<qqPU]uIyhH)Gzս1[xn&׋9?~<=~s{uzbLʈ*{\եX"dm!X5E7\{k8~_M]@bt	Ӭ
*(7UTTK;;9:Fˢcb@18*01R
WU@tZڹbc,:&$sӬ
*(#yx\@5Ngc,:&$sӬ
*(#@iqUAw[9:Fˢcb@18*01(S\5ՠ;S9:Fˢcb@18*01R;-cgd y[$y|^tb#(G8de:.QAD8zrH|A=b@ Ū<:t	:	wBu{TD9Hܣ;=b@ Ū<Rt	R	wBu{TDyHܣ;]1EHٺ'<k
Uo^yṬ"2b<Z3O+,3RʓNA`OݺG=*"ZHܣ;/b@?0 Ū<t	Fu5߽ɨ^zu5Tl53ҷ/Lo_oߑߣ_?EnxSLKIMS731R3R0u9 MKQ 55B5[PRf	HH~BB$9? GA!_2[Ed" SYHIUDYHU-7y)i, )RŻxmV]oH|86cw0!	:e'"UU`2<?K0X0 }Xe`џ,x`<9ߌsҒnJ7 `$7Ɍ?Z,KAOa($5q*ؓ#؄}h΁e<a$Ew ٦M5'x`E~,VOb`=`ydr8Ƥ<Ί$i*'sǴ]e=	-K(菊$G]Yڄ +lτC8K#(HAV+3Nz #) 3wQ	 ^p[鹖8pWZ#h&D_BB }*b< 9X".VdKaEKAN=+E%JԢg	5,&pn{"R0ʓgOto%Ն]L	pѢ$\еm+L$4DY3^NH|Vh,cj0}է:6.	픸~J\Kꔸ)q+S$nu/][_p+[n}9íH-U1[xvWSB
z)VRKARKARKARKA_^
&	LS(1HF^Odc%8Z!(*&%
&)AXZ+1X+!Xڣ+XJ5.ԕ j\.xcYWxRq _DR`NPO+ph,!<-	|Y8ޔ)2R}1'{/J	b]Yo ]檱Qg-n>b2~rp'Qqӯp=sTms;t=~n/ձ0|pC{^6rYφ`+ufqn'VphG
xB4Άq^} äG>A_voix[-s>v rxSK)MIU)--˰ BxSLKIMStrwR3Ri`e9 ˕ZQZ䬤PTRXYiZēS$_l& U3xuA0!=oed[JEMH'$s[]/h#W@]OŭvKޝ:QfU~0i1m8uf`/gS\u%b)oЇ10^@?;c"D0+ApmgŞCa`(꧛n|x;lqfAxWo<>iJ[۩mZiVӵ$A2"AAxJ_ǉ;}'P|q2o$d&b_Fc6ڝ>I3ׂS@S3??gi<I%1xwf̀:eF]Ա׿>돊]2ɲ~nd52WÖo=7S93~8>i&P${`5,ƪUhC-+l[kg=띴lwZ{Sb@>ڊX-TNlΘHR<^XX7ծS7씏D;
kl؇(w/``dC K[~'^@UDM}(i>~#72˞1Ȼ/F c{_o_`+N6pY䩾$!˦f&Twu|$%3`jwM#ym4I*K ǉ`Y 	k]ibL<9Сªu(. IA@|$ȁUaM+~Xܲη/ oGێ-:6qFOSS2,Dzaze7^YmӯMg
N~@]}-l*
 lJ<Q)
\Fn2!Z.9#B$Z>c.*ۦ;a_~W||߽>a0Ta˻1F?ɖz:d"`m"dE~a~xm@{.jf*I<JWXe;60h.lIUy@NM	R!KMYfȞȸ=6F
Q.NQ9VZ LN-rQ~H^QZK?2YqwtԑD!UOwZ"
FJ^GjKQTR.+͜ăt":ŝFbRr+Htਿm*3AC%naJ*C!%iA
+|%N8?pbVyd<N&riקX­hf8F(U49W[F^?0#0P}Z7	5T]XRhna4>TiLVhDͶ>^~xmTOpӨQnl؏D%tPJnS$&ߠq	dD	';x2b<xқ1&4ăě!/kvjy/SUkQ"!VkjjU++J#vc̍9ͱYAőT5gqL1 n	SS5*;1'45V*j7f1u/GhT7WxVZUѿ4xa8pX2O4mGni<9:{axgHq>CD^jO"81I;!תZu*3 x)Ǔ|l絔o08iÕrz}Ǌ*rPl&XD2`AD'IkW,&|YV$Osi(-L^g ~tOg98ۇw\G[q!J9"h,4NW\>#btA6NM
gB(~suJ[}~6ׯUX,Ofpf,y=019{nڳ{]C7!"\I-\@ƺ d\09x	PgqWPK?u<n{Ըeۖ(LZi/(rRX0[	7w(:wɶKMRV,u x	>ߞ0P^ |	A= _g!QYam=^~DzpzoS7C[1ik.3(f 8xž0ܦ!F=0,C-Vy<xSk0~^Ѽ!lc{(а+G&d*ЮN4i!i"+-v~ӓ_I;C
VC=UեT|Oei0+"sGp'%8FB:+ZA+Y~߰_{8ϏDSUM),"7	КJUc
MC9֙t kkaUCdBZɸ7cʚk9BuMaTz\U^[nMN[(@5z$ǤoK9eٺRcH1C{xuO`kvvmm %O:"P<ZlNFkps0E
96hlb~+ag	p6O|NE^y
[bwx$D-%e_8%l:oϡw4{pA0xW[o6~n%	|Ia0D٘/E@KMD5x-'0|	]R_JlΓ]~Qv\Ѐ?ӢI;}RyJUrEf)*YpӢB\ѹe8Wg-'QVG*Js"Ŀ&4$
Jd^f0`')
b!_2/G&'1c:֘}:ݑjͼK;Ű>ך
n,a+؛IEl80شH˵1ŝThĪ2G7 +,ZxqFx<^柖9fpA;gr<tK9ZbĿ CP.~8Zu	+6p
8E%W6&εL0hh{zҽaaijFɪi)2897߬kHa9lejC1"y.#r9/O-l\nc>W6.JYZY>Y%>(J{a}iQ?+Iyo3R;hP_<`*x̧ӓb\S<&y?(x[Y	jP:@ˋTOOp8(!+ģC]eK;ߛϦba4Q4A>΢!]0/Js;zP'r{7Ƽ;2y]c^1f>/bToO:# ccHܳv~7fa<;l339YDHg(^Z}t.}d:b^0ëe2)Mi'^uҶϺDQPsd-4_CYqh9,ݔv*J9* GhmY'm/ꮲB-ӎٲv=Bn\=q"*mzGRƲۀ?]l*3m ¬pR)-17.}x(pNdxh	V0(V]Sfz^wWsh;۵: ԊS΍L	4˕cQχ_l$1xd֐r3w~zXK;e|t$UiyggpLcm"rjouϛ`y 4RÄ@9 /H 5}ȣ©>{@L}!l|܏vo/BeD{ǆY]AhLdh+2RIBf=~/%wH<!lYH[u<uF!KрHt;ŌaT(za0K'T6sx'KrC"7Cqf^r܂bq ,x'HtO'1 ?:x'ce,{Y&x8F\\)iy
.>.nA
 yҬY&c٘qM e:l x%FrO윟)-xQN0#edb**9%"|C/"@;{޽_]ٸ.<JoN!9z
4P-U`(ceqWjQ%E HOx}ة^\%Bb,:%տ$c}c?-jygyvƓRCHRikn!P ȒM8j1.VlOOhڙ]P{B<#χqW5_5 6-x{$HtB	zF_92 O@x;NA;*]Rp8 fwbנGbv$hl|X~]}f9
$Gp|Iqpާhu$U+	Y*R&3t)N-T&pmʆ07a~9ef<k.7x_׷.8?欤@B6-9t~JwN/x[qs2v]CC͉g$'4yxSR2R|]\}#]]݂\]*5'0#{;yCTh TS!h|kkHu~ E>PƛW3 CpxZmo8Piꐔd˗ću ˡw8@Pl)B\Y~CJHJmۜgy!9:
x#~5 Ca lW+il?Agze_^FLPDYm|"	vLOa:(.+000BǮiuoLo\]&2+/}ZQnA͛n^Loţ8:G+z(8o#!I㧱^'OJu	$~6
ft|w7o_RI^i(v]uo&h&:{խXT"Q1b,xx"?^">%,g]_?_.|9r+vݨwW4*ND0@+X"o
mꢠ6T(%^e^ ua؟S'}H`:a$6~x'_oq@0Pb#agYu?>^Mƹ7uwfC=fkt*ŅQ|So]MSLT3NWPt#L*`N赗qb{8Fxså0F6AQJ҅;A(%M90kq"QHLMJ1Kf2d52+-4ЗJr1^xC1.U2+	L_)F}*@;gky9ق`ng=am8~tb$x]j_?YWGGP|
n˔~EAw[vj=EVq~bi.gImGOr_{5tfrP=*`VShj.ʁjەݑHi6X2RybWt.aɹ=1^f6Bӎ^LM:>^
@҆VH0bەYZakE"95C8j})V2ׯ.],Yqu?+WD_&~ia~i~qCǨfd33 V:Me-Z3Ot)Ĥ`>1Ha"M`J,vɢtɚ=T#HE"1trKD(QLz#~M$
ZYgjڙw#,UvԳ5-Q=XM{R4*R0Sx.4ۇBڷEm$IUP**xq-<1,UtK*8]oK/@4A]H!:A0X$sd32V5};MbA\58heL2M'.W%OY fDs)r@P	l0-vf	[?6DRCY.>Ys5?Pn*gUrgUfg=+Fj^K3YN՝̺;$'5qV*&8nZLeZ'{,=VV/$Vz5uik*toī̘xi*U1&$>mlr4&z~o;!wE%ziuC'9z犄чxL !S\;;\@Z7ئXmlWrh[Kh^RoM9+TJ=jEOQ,dF֯l4Ma3nkrD[O#iks5Z˩Zˡgjc"*RGu=˲^6ke3U/+ЧXud*r*kΟxԽ}0UI?㠳fw_.
~%Y8Ĵ}ӱC\KϲħΕcHo?"&m)8D*eܳ,B"4.iRhzie9xLbSǨ?%ߨmmEvAjɅm"b;6PL	`Q6-lI6mg8t>_5M@H0 q}<$fy*{MX+} wtQ8}xQL.>L$ݾI6-9L4=L=mcb!*tY}\]W)-MOD KqrO.44ӷM,,iK@OJCAU,^[VŸ1*jA>(."%:46K;RHm`W*+mirB0gKJw#7Z[ jV9@V/ߪ*me L+OMUCQ9ǻ7T|mr-) wX˦sxW{lUOxۣm1:cft06k׵PRvac 84`bLD|Řݺsw=B*I$I?8eTRĜΠhs&1VL3m&!I%ZHp(9Lgchqq9lm2a	Ɍq,@ЖPtWlloeV$sINbpA3FXf$@j,`$p0L?>8]є"Ӷ |XE}^R74wF{iIjA'qQ>S'cR"%stPH%Ǔb	1svGmL:iH#'ө8oT@)ǘ8~xy	ਆ_<+5N)(UHe$臬git(`2cRL,#KBV;W;xx-0po:t l)b$'8BY_+:~9vR2é1=N5"aDK;㞦\F#2C>cS	6	Z8%NkI;=d9;`}3՛aewYQ!~64#CwpA_s)yȸ7m¾nj7f$;:NLX<[pLO
+hߝP`岂G[UqĭJIh?(nW HGXIY(hPjC-qs**aYf(%(A{Y:D*-eo⠯glp
5QYΘ-T!JVkf7\'f@âhK-!R00[a,>@"ÿ-:`[u_UKTHl+Źjk<kIg*@$!EմSNpAmku4fhKE)^AQ&-rZ3 %,e`i/au:bKb	|rF8=tQ- p:M:Dٺ|]BâvoZpKI[ިׁKOWHxROVCTIo3@@0r@5Dmi;(׍VjLvpln(ߛ@MKxXO#Ԟ&vHl5.HQ{Xi{@KTj>;YxI]ii(ʤى'f	vOi'"){VH {H(8,x-*J.#SKnW-|*lуܪn6+2h&.ឲ5m6dlu*F߱	os66xĶްuwFxݾ;8G.>vb+!N-4%K]ټW}e_])0f"s +zzݴVg<\qӞ@gJwz*ƫDD]tު[Cѝ0+B^]'2TsDSoѻ,=0C3ES%𼧸OdYkxSK)MIU).)K˰ R)4xj0+!l"Y&h+"
M5P.Iqc;iֱBIOERD~!yPs OKؗaJ 8HxZz/<8+w123txi,6u3pKc=󽐊m,R}Gl+b
ͦ"^Ȍzց÷O].WA
>0
mTt	c݉T! jAlb	Wm`Mdn%\$UYTk!'v?P3SKFY=߆˨Us׸-Dզc6*TY{?y;vxSLKIMSsqRd楢
3JrJA+$(OAYI"5/%36/94%U&-5(X/,3;%8*5SpN~rbXي̒bĜ=X[B( 3?O[#xuQJ1=KEbPbO"CLfl\IJIZ!͛73ƺB,ܕŐce\1W&OnBM]S6jk=MNu^	@q;GA#mdڣj"HСob(\Jk^1tqTo,B0NW$		r݆fCNXE4 D3Kn~dip.J˱s1q:QY6>QY:+66ߑ^y߻>ox,.k#xʲyɂL* B|mx¼yC>#|FW 
Mxmkk0?W?	81'Dv%Vٕ &łT_z%
yKJ+aQ Z>aX.UD4X*m,r8DE4m4_n)0ⷋn&|fq.1.Flpv΁
Y
6IjmXstx.,،ő*Φ^4}ȱu4"O"3w^}c۾%)A*Nz	:T]to(ң}tS7G[Ѧ&t<AYaL#!˓>+pÔPc9]kR%Nd,qxhZҤ1"H\V#>:4UΙ$j->F#/	_6faOԆG%ѓ7_9d3?&B_I IxmQAKAf]fVOaAJr7%lCY6P,;"d.uNNѩ_ohfUx}'q3.mw=e:t-*n[!~oȀtȨt%0C=ۖ:v=9͍,iL{,;}C}r>O߶pRӯuڄ` YHqI}dN˦$fSR1<(99kֱ
ָܑ$@#X\%u$uy&yY5_4PRHn߳\6p.eAΰ7,PqxWkoHL~++Th%V"'h1S!FdUνs_IF8Vm\=I1ocS
۪ gyߩ߁(7UcUhA֖gmW)ʼ
K5Qp!MJ!őpꇆ,3&7
(Uvˌ/1C~$"TcTӸXeF^#Y1V`]uoKpWR]65W/Ehn\ohgu򛈬TDmw52\@wmۦM.%W4=: Ͳk7	[QHh5)_r{|Ɂ}giM_\N$6\(XRqM>hNOBKꈯc-ڢVͫ\k5X r:ፅt.ȇ$K)K)I\<;Ȉ_2g`	1bEBvC`ڜs4BP"D66!/`/.m>u;(X M
̥vKǾ1}>0ܵ[ncsЮ,8OJӖ/G|1Bǚ\Wl,FIqo	@Wࡠ@gJmEۮxu	hvPqh	e $hVEipJ$s4]2D O:ȓ2o(H&V#OB*+Jh`8	"V]"QC@0$7$'Ds[@kWgn|7oDx<i{{/&t<PH@AہpG-Ɔ>DlEZŕ@(S;!"	 *Ƹh5EIS4v¡v'Ekme<Xݱ	q:E-	VpO?y֚wnxDwށC&!>^B?^RK+xeTKOQN_s@K)b)PZDCR }`Kb2̣Lle	ֆ3Ƶ;Wn5ą;Ѝ`;InΜ{w{f^Y%J_P*9"'Y9n:YH.K$O(7d7LMSۋ[+el53vZ9oJ
&ҡw!J5:y0hAgBk΋p֩t'\}T[ӝ+@p;p_JV*KVRGr1_]h&CBVcr:P^-doӞ(y"p[YK,7
>SrJ1[ڰ{œp֓Eޅ}oB*-{76=) G$f !囁{)G&RW%n:ݔƁ-Ͱ-^8	[wh;'bb?kR<`]fm3U
l@4 I;xB"<p?䳨]mi-^ad4y>qbCqDQ;\|#50G᳟\Aw1,KʴX`r4}H»@
~b;BM":`5)JKhfA*ElvאTꍉ`r[L:SF1g#805?̝<ѱumZv	K5I!_f/uux]o8]HD)V ig5!HMd:Zc4	ncؾiBYyQǻۛ?6(WJ4nFcy J$oV]po)_ڲ_(br{(JӦj_sץjӛ{v\L@dqg!1/"%)0DG)a4@dƸb!3탐Ήj>,[%뢖fXԲu]};Ikж)rJA}/<x#3"RJϻt>Y'eG0I;	lF	 3,U'!P&B,emN4<MMGDc]n	M<3:d#\}b `<k8G)Bq?:D7BS)к!{:ܦMC[x$!h<# x<XPr"|*f-u;ӧn܉MetIa|b8`x1ܘ:06T怳~ Y~dSvb/q8d՝q	fbpY1M< ǅM<бء a !CܿktgbZϬ,K-bM{pV$b`((6]qD!O#Y.@xi>
bSh@K a@s`bÏ2ȞC 1QŅ<)q6˟mȷG^(uG[mЪlw?_5M}UNWIJL^D}Q/|){bKٺ	ܬ,Nj=Da
B޸Gm-l!2Y#p⺣#q> FKPdi<We4]*N//2hX],@a_mY\nOo?avx}}o8J]i+5J\C:;E-Ul|ǹ
g7IbUdO3f߾yMEI4++-6;*߾!/T%x߹)bU.'d?\5n_	'B5{I/EY[2P1RUv%-%f[Oi*v@9ed`yEI_/OS҇m9WŚS+Ĺ2|XdlKfA9FٮzB6HXU,Y} uv(sw/.{vKhRjҍy姬bt-'zbTDi'sN[7><U!<D\SÄGQڜxvC-ljYmۃѣ(Ik4:ND qؚ^4üNBWdA{:vSv2G:HRM2ceЅTV?m|W"+	n/t!  ϨteNh光+"G7=<?HBHk
0P񍚢@6$8U#k+(1$\}BcrLpнWmokAvUx/js4 ڹO;j28ngBu8q ]qc tǟAOyjyM%%`^U
."G^okiWWY}[<@ r bx7zlvLTh[!?ޡ?dx6s·	cӑxPSw\gн8Run}gC}moCQb:;h8'c
>Rc,phV$CEY ÈtpA׃ӥ
׾xWko6 D/#kvْ+9Ym *!m}$")KsouWȆK}<>zC?Ţ5EB6?%|8YEB6	
k]_E8'Q	nNW4\3+dCh<#"H~1yV s*uʢ%:7G im4Hc1:	s@?8^d4CA~~&:H&ДSOZBk$mǶ9,١WsZG[rv,㹾X@|.laɬicO)g>t;4Fn6Ve1֙|2:4qYp}ˢ9ue	~g9aCKݜG;QneJVp$Sݪܚo29P4i4(zK8/9ee5t'3OYJ`RWp'H}dQ@NauD)]zL
3(Z*L>1ֱ|WgdO%c_L,KNɳ<.	HDU:+geƘ`jxW^NG{.VUݦG~.U5FC`jD0j?T퇒ِP֢B(gUxr}CՐr5mӌ\l{ު-^9&U8jPRLcpj+FK|#O~fɑmYj5DSseE!7ʬ2x|mfuei%ʚ`^ TN)pKgG(Q}| CM;w-W~i'$-^Tt!η[0͗B>nG0BBmfNv"ԓi]pϸ 
s/0D6p/[q"`4GcKy8y)i;kX\oƈߡz	t(S'_mTih[9/Ku׊u"呵2({Ly,EbUP5"/k<t:]՜<ДI2mm1!#Ϥ~Wh(Tpr0xmU]odVT$olhjmIڎL^ubKAA853) @\_[ K.\,JsyV-ZFO$tMf@1RelvQ-;_?}NVUɓhk(rWAgK3.?WJT<y88X#^Ҍ9@Y}]>k(HMs2T#dh:"Luqƍlr܆s ̽F2Aߤu^jK/
>j\)BY>ʝΎe+)x{!Te:߸~TMw&7fʹFl<emP;ͺ敄FvwYZfqQ+3LOwaqnTl"6_}ZODY5Vy0ܮ!]EUă8)ApvAgBu.*\Lq0[$B8
ŦCrj;\$:LUn"XSadNP54Yy0!̀g}I/uǑO!	E/gυ4AgU={䶫Qa)RAD("w͝`Jߓ˘inM120sAtXP*;9*kzX7(Pղ";i|=Og!v(7%ͬ3|)
@fUp~5X\V'ljrVP.&}H9p ໼vaP[Ä	ͺrnJʽQYM(VіlQX:_"rKu_ǡ}`=Gxi15:$ݜVN  !x
0}.S>EAv/Miade n:*:6?iX
4<%Ϣ`ZK!/u!_@euCYw
m@r|5RST6ouxHTJyr&358ҫ߽q"7[%}Ucԏ4-#77_mN;X	Px<AK9%5-3/U!5]C<\=xri@Y䂜bJ(I-SPrVRHKL%*y'2M<*;窋˴Z$#, +	xZ{o6[b,M=6%W]!hiOt[Gz.~G}t~(k3@ؙG?A	Ӳu<~
#_Q)6/Ek~1mw:XVH*ەF 0-%aX
C1{!厫Ve6XCD9a8Y}}!ݥ-RVXTQ>ے*7n0GI-"lˏ@% ㏣Z&kG\`KZI)iG$u.e\cS52Envmq4f) RE!ZC
7Ɏ]Q`OoL#~<q['31x?`f̎B,ǋp'#QJǻu<7Eq .A18wgp4j
 "h)4r|=?(}ОOeA8|oN-8el// q^D@sXJK" {9=[G-X5_)\u\4{o8]Ok&ɗSѼ̗/͋jGshz=+\֢' 7~e#=Y{߯L}O^v-`a֋O	wkBR{'/vWWr|:SɊ8e@{,G?̜ LS+sBiaVYQv-BTWbAӶ겑^l:F ]`~SOH0(t}z]*E6+
NT
N
NT
N
NT
N
|nd*>ڻmE7mBrV1#nWMϾnZ#H`\0n|\/~^Da~W#6M[$Y_B0}wFȡ:2>HH[(
JJ
JJ
JJ
JtFP6<(1Q{H{H{H{H{H{H@KHO>D Ҽ(&sHc{|"ִ6}rV%6-pfyЂ ϒrϓGICeh_ ,+]iH>ɍ*A^RUyH!UT[RUyH!UtXSO5!x 2qV$k< Yy_&1@u#/:"#3a<y'`'g\0Ƣ9fy3uj@&yjiTRR%iQ&n+
AN94->g *X8U`12`A@蚆:**> ZTM`} M*&"DTu?]VCbb5Kz ODMlv&N`Ӧϙ%1|$Q"y$06j,ɫe5[' pAnR59DV*9;ՏSUr@:oVQgb!4bXàbJmI\䠼	<ny?P\'(IGcw: @t=Rq-{ѾO.4tGTh\0|EYدvجN^~}#'4CF)e86CɃye`*X'uvq vVhjr$t>g' yM./A!GY*4>i/t Ot^;oVHi%_Hg65ӢfƱƣ$SMMX:%C,)/
}2*<֙:jItHv BEx'l<fS3Ixmn%P7Jmr m!3dnB3Gu@Kt{tqݫhtbhςO
:RKxmV]lTV4I:ɀt&麴,tk+lI-lX$np41!!$A 1	!b4mcL}/h/ƹNY:?,;#2j(ŹKEi?e5ԉڬ[8ePtMLϥœ\Fdu۪h۲">2tU[oMuXSlTȷ·[' ؗGRrkh515V5c׸ԫ84b;UKMO9yLt?Qo}<GMē/.s,thk\5q	y~QDhe O#[)daICz@ۃQeai	F[j6?b!HYͯ-/VV]$p>t!&Ҡ}WUqd],UY6]'8LM=o#pA$EE;Ds}^G8fb~>o13DLJrȍL01vJt4G;ln"%,<Hr1Khp)$,3
?;p˙ a2*$\I8#>Hr'`;	[Ւ~]O~uOBS3,i^{iC1E73ԮJ%2SHy'AEL͇
r>[o)`LT2,/cΆ5_aQ,f" %$g|g捦qYb-4|7pTp+,>yNq
0MN2$$91fWA?	`4XzER hU2l~;<;\Anpi- l~vhCkfrHCF:[mZ±`uމ_	yHeUǂA CA(BM(b>_ۂfbaHFXGIDأKRcl{7sp=0x92}I7A_YxB_,RsuCjTV=$beUKb,k1RZѨn&pOfw\<Ǒ>yO?,Eo#ȶ%ڨ^&YpkzwM!Eͺ6G|NO	9W'yI}Sȍ٭@~	I{gP:[n/Nt"FvKi0(RTDg*2&GƱ#⨳wO-t3VK0_ThV=uS"C|z)N_:TTx}mkH?; (QZI~L֫YTi˅26
RogGvxzYTKGeBOőr,
5zzSCכ׷EqMaׅcuWjzu2	2R6׻cKa$Sk`hVKC,qg* lfH[J&\S׵U>5ķ3IddiE7Tl#ۄΏt{Cl#hӽͩs#&SԜPp?K3~~+'%d|яgϧ<d^td~`Bg]Hɒ`CRq8p}x-gtq0 4CRlZ
`K|(#97&]a4OJ5)%;ZK	CBl!%*Hl DJJ!ϊ1Y[1rBe$.*1MPN+21>$!sKzXcj=VL~\c0)LTѧbԬ絹{Ȉ0'6+M=B`?liqv[N50 ÖKK8G!I!hrj$ӹA\DH6T<0[Gda2 Z0ӗN̽AI[GT>22c8[&WӼnKd4#'U 0q2,4Pnη&,jhfn,	o:R̐Q8d1({$q2D$Bk
a& +IDQ %'chC}g/9#%^Ύю6EvzZoW7}TԢ:Oǻ;l/~[o~S^^c]j5{4c`o5W2a5o7GT
xsX4|.ֿ,͹Ҿ;owgtZ~y7)NsVʛnX;o[|wn	]ʽFZrʒwA~ssﷸY7ii)~?[OdZV7yP<֯ sǛy,9nrxeoTǕ6M㗤ر$ 4"N$ݍ[YU 8qZUʁӞ3@Xn~4q̛7'($ȓ;Gy]#h2d-UcR?ԘHJ9#Jb*LmBWfu\U g6~		$xpw>zQ*Tզ,!	4J}V"P	_P.^Hm	U.Z~H8YJ;ZvZhhWyxZ0}h"	]ORr2]Z PJKn5 Uӄv2'qgazdI	RgTL_`{P]*۱zkKF\XZK/5PBY_$(]Ƨ2CqэѪ`a"\|ivm0ذ֨ ص"oz1:϶ٸTXSm×NH6ͷLY.^$)yȤ]m=]L (Eً0;M;(2qľHK	ߤ<[j'mN +WhO"a3s 5"="z-{BD=٤fѫ`")#q'1,q&BC_x4/yw{;X<vOg'I<zfmx'|\T ܵ5zQwÃUXyf9v:<(/@sω
?)-2:/Mlke5+W-%OǓc"pMCx_O0şKwX»H1p31KcE)61~w?-a/wݽ.E,-CDǉ|nud5$J3nũ.EdҘ]>JWn\z*{bvT|l([*m򭄿rzrh|P_G= $OS`s˲P˶n*:G9f]OQ3.LTHnF3IV+ī"P}ْʱꗉW/|<	z->NU*lwC!dDR:?2$!}g~C`sdTW^EM2g3}x>GS*!v"Z8TV29x1AK9%5-3/U!5=}=3sJSRlKR2J2RKJ3@\%E%

\@~|IeA5Xr~
X(hh..
LˋOLI)ȥXsZsv''ďj%'; q#^F)	T@&2JcQȒaR@Uihfc{k!+Lh|&ɻ'fR ZIJUuQ|hP-f!@nzfɟM9dq ax[o6?VwΒmAodؒ&izp59ٵzCKVA[~%Rml"N}>}^l3x5!{$x[Lz:C_g>˿|y=>iOCv'ĬS!ْ@/Ugpy}`~߯Ksyd&
"3͖ʗd|bTV~}eW ߰wW7b}u
?	'*QBrA&,
X`<!ֳB1cFE1ʌ+rDѨ=Lp`i0r4fvS˩QLWl!_i{r{sT6.j4ۯP8&nirnh28tǞ̺2A`fYF#;eN5ch$Y."1.w6ITfI(q- i%Ɖ+iE%MJFIXY)ǝ~*38?]U9LBcTYj_9зgqݽ]>jg
s&I
T+KC}n{.v^
R}T)ə(
8#kiH_]Q󽹐Y&{ž^ጣc:SYq	)A Oupz /!;tۙ3
$'{6AE;CbI0s`K:<!<0e(IE82ď0N#ԩ!	8\.{j^vא\/,kkM'gi^&E6SP̣YR&v_e60hu:`E&~B˟x^v?>7j@vE;W7P=U>'PT>*h=zPcY;&HG}|lP)ec79W݂8l߄Ngxl?wkٹQ>}tԣP/}gk *ܣ{\(3AHS:Ǭ6΋i>jqRNVk5JMpj7ƤOf[nKW7uҥ7Զ/e_v~NGhCA}*x37I\oXu'ƳO5iv>juA0dOҖ7}릚hޚZ=ԱѱVJ@u|5ud"6#ED&5bx4QCd#3Jcejl<96"b3d;kyăgmKѫecu2|xd&G|_׊]uf-7IKEә*mc?jҀ
aPkW:bvc~2PQ]VJ|2Dٜ:ةO*J#G{apxc̼q\`9j.`i4I&ԏ(?ǴԌ^N⹄Zm5i~n8&ԤF[c"ҳ&ST	5~T&X
VMw,&e}8I*N|eV\-ğ	a7"^fªmtdj{m9G$"j_NTCͶ UNutZLdR\MHʂ;cIꟂ8m^+ dW.G&YQFf4kbBĥ	ᜟ9] ļ{*@e';id^g5V,XBoJ֔lC){ZoCX)cQpC4](1+Qi9`)s?ŗl1r
mџpw*f_<:`*#1B{@77Tl<_?`qow׆|jҗlmci)%l?j-EGo~vW} (	JϷw)ya_k Ԋq2h>%	Kf/r=X?ҁum_
L0 ǥ`]hr7>ؓA>6׷U`e/ Hw6;K jZ=Ԩ*A9*-Ǩ~5$VkmڠꩥT(q:׽ڐվ͓(֬vwGjF)LՍ
-ҩ,l(Qʰ-0_GQ8&lŲʝK}gp;k69Ч"lhx(	kU3^waYĮ< ' ?Obԃ0r8Tgy>.3p΁QWsVlP 9G6n:߁y8<Q>l`SS~Ws` ;],|5sG3?b<1<4haEP	wxZ8u,1R`k8ZƁقGa34mYFCN,hCg/I$O-\Z cRd f i sV@/Ibsg9_ӣň.*]DS	[]-{5]->Xj?ӵåMa KPrEN8%Ic+gՠ'}aҭ$BnLeD)9F
1$GkoũC:Nwþ8幈"ޏRޡ7[I;(O^K3]xmWmlZb6`\'061_8rCM˔KZm1UUUlji[GlYYj&MLejRu9B =x{p{%[(b!+
BzQ'`
B:"+wKEW_hأبꞽmRY>?]+IBk;DT(KnYe0uȋ,	ݭ	2X{$z&d7vsyV*3R6ʥJ4ZQP|1{dknWyU2q@;^7lM!sxZ^c9Vk{^.q~?# ƒᕕH{'b@_!ف^88-~(~hZuwpbi͞X)םͮki-HY]p6%M`ƐK3\JXOS\e}]X$fɇAṈvk)^etpNꦑ]Ybm%"HtH2SBw2k48@<'V9iM݋h臯X`ixs6"{7Ӻ<g>pW
`ṶG3x+B yG"-o?0=|M5'Ukp]߰Z8;\ԪRpdùb=Oa+\v\!W{$mRg&EH8.Q<NevHhԔ>и(vN9U#.S	j௏y%0iF9%4AxLM!YZq xgj5zc:M4T.Dǂ֝Wq$fB"T|8
C:uX
?ԭ§:Gw\DHfc9e ѯu4|߀1:&uaI@6XOmIm!frdwSo1nc@h2Y׍hG(L6Al϶hDHsck5h3vk [Mel:&sy3q7̎8?}42PhO hEl^~yqBAQ:'l(Nt,mCȦ63zKB|ݵfx6ܭف7Az0رRe	ܙSL%b9y0oq#l 6cRT$Ѳ[vjMTS6!SoV[i;	gsBt+\>|{Rhs6DRkY6Ma /4cE%)B]UR1}7,|dg:_گ~e_ٍ`d}>k^nc'IǗSq'YH{O*P4j@'Z$֬D=:H:iIi&ө+7</6O`߱Sδ=yT.VHt2|Jk19VGl4:.2u۶%*|9`"ķo ~B3 ~Mĭ)J:f}|dܛLryID
WǛHLA/#~9ṹ'z8@9x	:G.ms0!͌sw_"&D%UĻn>E94,"5KFlYn<j^3B"Tקj#<Sa3E
|w~^FxЃRG+knE/yTT>K$!j:Uׁ0OTJbuTPHd'YVFJ9lj`˧>w.?#1<	xSLKIMSsxOx^.eLf^*vItf^rNiJMqIJf^^H dd)P,D!/8#U,K2sSdr 0SxXmkF@@I-i}7V봡K"RrؑAq4h晙ݕ/ʢBO\7Jn.@VVP@Yz5&?T/hUVnn\nj~z+\V9m|f޴g0\$ͫevrsHRPG\<qTuPz<Կˡ|5??]:WC=:C٦y`mɳ?fdgQ>n%a@u)t{s]}ݘ}tj2C+nf+aݶg>.w&>dҸODr&АG	4 =~hT??qё*!pHYݜH|uFb4Cϥ4\|+QEF|},_dzn\lEk;cP}o<a}B?"L6N'Ӿ	Aմh"A/_4?}+ d͸g
tXub;:Q2Xd$$20B9<<Uctn*at>U9zgJU'|6B	ks_˭Ɋ_bmϊģ\pX7+-dmܶ\M%ΔD*)7JxT	55SCVcC.Du,HK؄v}"h&;ĳџmDJ<׺qaY)qn1 `OW8~MYJ d'?FCOMYQѦ.smX%#yϠ
|FA]H;MM޸mPO`CdDQ7LA48_W'Xbѽ8t k#nR.q.wضbG^I&ѕ,o&dAa$DILq$r+A)I^gzCA
JBKCrIC|6
P$frȄbb۞4&B jxGl1L@+$.$bs!Rם%+@@1c8ic- 0 8.&3SR}t޽$Ĭ08'_$=Y8W8:0(+y?TȊx|FjfrQCMeЍ
K:0Pi/ؗxVB<4[>ЧM糎dVM{~v 5Lix}UoUV v/Ŏc;+k;[#$^Sk+MmTE9"nD#n8U "=#!4mjf{͛>~蒜nkmIm5;mBr'Ã}qhe$gIy@7f>Y{oLBfo`ߘY	P,~h*ĚVN_M"2vGc7b^yÙA+b޳zBxdOgސw:?KIsQx(K,Ȝvi`YCwSckU=q%qieN32KɼWDb/e/ŤG0"^m^2.sxV+e*#4x,S[{@hUbF4M@oqu]ǺQǖ"³9ܥ{|ZѥvORMwe#_~O}p͟^wUIV8N8
~	UGc
|_G\)/aq,Yt<;`-;S`06OKfcjԠD.
CC(4$|X)T`>;h_~%6ww\p"H^#C6#W1ƃvu
A6^9hMi6C=%Q0Afςj))]WˮKp߼Qܹ,gDPsZ%⠞,x~[Nc~qy[U{o.9ҭT:=m"7}%{RΝ'ٖ"Em	0Y8p 	g<ĝ.~ƛB!l{O"ZyjEV=9yGjʎ"k)OlqEGR(x{(OjEvoi47afDC*/豸?:Ne\*tNL@-Ģ^*W~kXR}JC>ovi6~^?r_YjxVkK@&-ׅLhPI'!]Σ3
s3s禧1&&c)c110̒#('ID1Z&ebB/? AyЯ1QA2f"y.$qJēQgCH(YLIl*KQl)"@F'|!ǥW
Mդ['<lWq-o}gMsbZūB9'EpJS. p~/"͊a]([r~hsuPvj[,]ESj.EԔ"ޯs]|c3zMiiM-*L
H,0=Vk}-Z$_J1N^70#D*4i0pA`9a
c`Gஅʲf0 &|&:he۲ZBCH3Ikb8Mis8c/3ε*8~F=zLqՠ.ӠYa=N>`YqmCeotp;4_K3T˙>þ7&|WE0N@ >z\9M7*pnv>
R3/h +5[%!(Q+J֊BDB/c0NyZ_T~ CIfU5kwl0~Nv|Itl=-Z9Q~Rx}Xmo6B0oiE!JJ+Òcrnߑ%(@P玼)/m'[y4rᇹ+:z% itb'űӬ,)5\ ڊM~:ϒˤȬ_`$Yn9XMi}}J'S!]v<1Kp'UHܐx6NI!ɓlv	3 ܭq}Sv:&8<UAs(cR<$W_:eT:q"ԹZ|&7h/sE& }Ѐ܀:!;#Y#wIu({I#:^}֘LrwzsyV(,anZRK{}^Qx9EUɕQo@\<?@a涻 8Kk#8N%#@7vqxX&1.LU4)U5]pi@7򭺾gGM-V%`[·n{'9n<Mщ:,:/_5MV::h]iebc^$ۤڞl;ZVqVKkG3V~yY4{TKchFhܪ*v7AxWɡ[{E.WFТ,V(YvڋSzx=ާ[^I-oQC(Pjۋ{hކ*)K]=wPE[ʔx]jiIuFTeFG
Œ&Kc"	a*\\-274kmĉ0][NR_Z#H DV
P8r;4>1F䢏\t>rANsҢ+ew 鴈܀8\-7 yťtZ[:$5Ol8A󵛗Tc'2
SC0hi ~y_4vŅu|w}O Yc`x + ҦauHL@\K4ciD@4+A?}iۜzۉH/}gX5vX6VWEqĄH>[5&[pmtj"."'ߚ&]EEE\\uEc<TʽX%y!^>ľÑ3vkyChԁOϡwLÁ"9נgZUIp:.LU(AMrlD{W}R/L^倏CObwY!vx`Oٹ:XczܪYa 7ncxMuC	#FA /Gt|xmUotW4m:$MYFIӦkH5ZtN1<+v551I`;pC@4?7$!vY#|}|茶;s'yJX6c7οر4eo|$%-2P3Lho0ot;TX=KoӥlFoi6vvaFcljmHWnW{
Toꍣ?Fhj{-Izdtw44wwzA7{tGUK@>pZ]'|^wimuU4ݖX,/6QŭʛdȚX+JX,m p"d.m_
%]z;9Wbŵ5YXI,>ہ\2NZ9oܖ\ wixO$F.I%R4lV\	$i(#N]bԫ5[Y)p
	gd>=X%mp{5M/RW+?ŋN*oQYQp0@v΅`bNv;0nTL#]fC^w<ӱnѸG<&sqil&2@xV[%.<mKi<Kf]M:8'L6xesR:mXaBpS36\Wg)L;TKL4d A*9;d9̲+;_QP?x>Av<?KbfYBz"K΄0Bv2'$?NʿsMC6 ˡJ>1^,^_RCkt$,VЌterZag2Bɭ܇6t߁\Z/+蒍(Ix><e¶7|ܳlL9xn*Fqo $RIE'z*ޝJăZ>UXTl(b1,T[dpG|-#x2)X"1:2ߺ\oHhԴxXmoL^)mNٱalFfȻ@uM{f`eӫ[$KyΜ93|YdtcH߽ 0/zQ&͏_9/a~0Þ}L?D@;Axc`<wg6TC{@*^xts{C@g">×8$yވܝς;x'"isc;ࡩDIN#BeJ׮,vHb8B+l1]2%>,E{1Hp/0$9J"L`Μ%Ҏ`}%E,ތʅG؏1pK
=fёUrg-mZ@3,>vb4"Ly'C#qJG`h"E7N0lSߍwn^̲$^xntgHhBݦPw9qjMqqDxnP
Ox#協(Iōw|Mbݏ;ܺ1"v13;_E qhK$cA{v	v [TǢuV{mߑM<EukR q%1x骨
MH
(`_ݩD]d!WD"tї/~Pa0v	<$<'ES𑈥Sq4D9(c6݋*"¹~<N*";QEdlA*
<vbf|jvOoP"ޔ#me[l%mXEmZy.k6)d08"f虀<,+ -z۔۴j6ʠEs(cC?!E{A,_- AQ3`)=Cm=EfxO>ZY§xd<L?smn۩Y\J) NFꦕYI)!AC<a뿵jj>0Cj̧Oplښ|T{cvEs	`<+"W@	/nٳ5DH4 r<4C;j4QzhGw.&rdcð4]gL5v|8S6	*Z|36o:!8.-`pH;Ø(W6l<H^,K~A;$&rҴIKe4M5mh6y(\U
zQja@MOM)z/}ӧ:g 5M"lHbpmmdlFF|]JchX25X'MKBrk>}c6ViW0W4oۧg*Ʀ
MxI@[./fcTppT[ZN۫!>I
[TMm6D( P]ч[;@e˪Sқǧ/#Zvd7͎FCՐ}ǫ,RGfu~"ѬIMʑ.4 ٶ:VjB
,*bt=\>}i{݇KϾ"_'pl&'Ie5e<P&!F	ЪT0R %y!&#G<y{#l_Zz?[u?Ga\^*Wb͍dִJtCVMk*l'$ʱmK_.ӲR,TV<
DǼ"7eN78Է0xu]k0#ޏ:w,Tѥ]MJ˺(M_ZEyNyS2
E%>"VRqkڨ#E#OWũWKF򭏕Nhƒ010%S}ڛ&BiZHhb~`^S~(yӞ 
-]@>ۍ.xK\F(~ <ӐKwy葍[6!':sEm.#I锭7%tngC:H#2 \#;	<G炞VᄱZx}_o0ş]}X'ZMZUdlQ,~-6U7
IusnMUeԘ~ju]Y7ʋmVsv<UYNNUStn5C,f/n}!;s(- )Ou|o`]}]kݹx;@qti7f5> f8pKBޡcSĂė^Ǧq25a!9$bK%`3#GN@G,X0^DF:GoJ&pc%^kͣG%]bOX|PI=Kx+>#Q<\GcDǜ|ǆҰj(NJ/``S`)vhICnB!vir	b[-#jOQ>+M	2ort6bpimBQﶏ7I:`^V "xmJPɟ[zmAb֊6H(ɭ&)jwGӃ "n>8Im˅yXķ/͖A[DsÇiߣMb89=#nY"F-K3[m~G̲4bf&nSoSO8*:f=QvsDh:!Q=Mea`\ӦHVVRj*B;\QKX5jQ)Jac	
l(wVo6:,9YBj(
'	pÉ:UpJ$|pp^4/D礔䚦
<Oo|<藏a7"A#"=prgĦ9xu10B.8w*PThPjR(߽Ԡvpq{/\,;%Xsؗ5ۄALT8I݄2>^ *"xJnb}%eL*U"J{EKeALZ<g_tZ9@E ZԎ.]̂Hě/6p{mcXd._go:xmώ0ϚFwou.d[4{")l)f~[P.Nיny%KV>Ir\+b)>ͺހ^@4E&@nLE6ڪ1m'!#cJvE#U#C!APAKڦ 8@	{f.~"S^2A%댻"c5kܞER
P.]$N0e9t-"mxn>Fm&Yć(>[El3y1L0؉tf҄Fo);wD(2>,t{tGb:&bm/g!l%jY`x[Ʈe"&N6Spe❂=\}|823&nQxKi_r=&g3*Oқ*ߌ:5' q>&y4C<-T|Ik/&))4!@%JU'1+N`V:35/%3 Bؼ?xu]k0AoV8[T*n(M:_NF]=I
Y.f32Uz3mD8תh"P}TG?ZAEYaF=3QiB\ɧ>eDp tlӂtmX
Ǹ }L˜tYFW{ρ7ux@Ԑ>:iuqIkH>rvц:L&S>"u:P
ɷF(ދ-,D@ U
B,Ұ"wD!M}g8wԴcy6ҒAv5y[ȿAHQucb*4|+21!VZý
HyP:*)&%ih´s2=~N{\ϖw.Q	x\moF|9`E?\*-6ȕņ&u$eY]r"e9qRVܙٙg'GO#K,Z 8/_|)VZFTDqG1SPPfXH][:(Mg?MF$i!V((BrY(Az#?XpGZR
>8mJ!w*Ϣ(=9Y>+}fW'2)?9I9/.XVQg/YϠoE	*h+R|EE\uD΋I>"fqH~ ;3;L:,lt9tp:Oh,z`:;|'^!8]fdȩRDˁs|)h.ZWR\72K`X:ixsRqt~ߪ铧O2sὙS!J-3,UN>}"o( I͕$WKXߩH\^9̖Yz1]'2{xY. ŧ;>O2{>8UA8]rCc%|y%
.A{
Os0=(X%e+eȤz,+nJV$4OebE1Q}OeFS,w~tMqy_G'~|LƁ3n45j(WDĭ}4x-Ḅ\FLw# Mb5vϲHfwPQ1adbE2g{њ"74EfϢ"?,˩_XBN7
.#L||CV"Brڟv{gS'!ČiWo8_tϛ?vqw9"JF<Hxٮd=?(1ѫɴ٘7Y<`f<{f57aw6hTS4:|{wiJ=zɤLn[AMκc3m3b=>6Qﵷ--Q>SMA"8Lx4Dqѝ'CO Iwx4]"{`4菽	B{)!Jz,}*`*Ɍ8< AZʺ.hS% e(`Kji&]mԑQaפFI%zD@2	dYQB`/{%<ZFJv.9$V+qeԧ  dӏqbo`czfr_mKJ9`jvζU	&r(<ZJ"#=&Ժ%C am]PhQ^7VѮK]d5<lf^mfYie3 -@PL e&1\/G@sE(܏	oXXpD'~wJ(I@P;>|pĺ<UPVw%TB}oxp rST a8	0"2A"F:
TR}i9CH
E͖S$h\v3v'PA{םO}՗6pC8!+r):"d,WU,ŬgvT"Kg+3'$⏫NLV0H+ "CCYnY=k.H)Fmr"K?1r?eu"UɝKUahc<H+-)D:.a;Q!d%؞ڨ	S4b^؏^vRpA17:)O2S,li6Vy.҈t+=NIo/>+|&c(҃[@wUa&C>=$/Y@slY,^Kb(mbhl9A~OIuAA WW2S/Bѥ+:PD@*GEZ``jp">׀(p"oa=e2]1.'	1N)AjJr5bix]xo ~R;CN<AMNu[콷hG<E:]7Y=mtGm"?~X.T^jiyf&
=շNw"펙e30rr7Lu8KN6#ؽKBV.mN/M+}K[jQl,ښ+
=4L'SHKc(T9; XUS{O͛e~
ў
>8$[@^s{7ό}¦keձoECI#{ V&{O.a' vyӭ3UAY*vhwh33w/LKu|Wg~'Qifd ~;$sG8Y^mbR9l@{Ҵů*VKln],Ň;垿1>;@[k|IL|ClTv
:0jt3q@7РsU#m+BNv~f=jTS?t&c!PZT|| #~--a͵7!p8uf	*soр-,dQ+CQRy1\.>^|a8{̱g0Hc{L
\9 [H
^{(X]Y葎{4]=ۡۆRw0x'u"58Ww6oIq穼ޞ+ʰn[Xh߬5z"zHU{onzoDe_KtٛM6](ЅFB۫olgXSu@cBzA6GÆ.-C3{T*#Z#'@?>Ѡv%Ho,WYwzO{TTX錋(vL )FRxZ[EvPQMw?'Keg=\OІ4JƄSû3jp eW=,S0JZȵTGjW$7XzbZ^kdH4YRַ;b#DqǗMw\Tt!eB3lk#&(_yݰA𫫂s˶z`"2\X 罒Ge:npI8T0l '3mϭy<᱾7jմ.o-VgX45o@-L[U֍53tFnC׸KQ8;=)]147+=IϐYjy"RC̝yg|.&,hu ώ[Af	Ф°5ٖ.` =wN=a*>`T5v¼Vv ߵ(>KX5]{D;	#!<r\N#+I575'$%>˥rg|ɣ&y/Gvޑ2y|L&PjML4u!mn*u)!ݺ(S&JZm#/Akx[2q$L& &"x[2qdL2RR&rJM.19SL35/%3K"49S_jg?9uYj7 *xuV]lEVJǛA4N8q$m6%v~ԱK]99^,{MP	!( x@HEB!^
P!$PO0vr>ٙofgfwmrJ^ӱJ1¹)5*5I\( 5'#N\SyQ)B0diO=ŨDKD>=	tZ9%uPµfkmRZ(Z/rEySSnhx[3VĖMbxTP5blq7Df[RKcu*V!22Z!`$3:a(eg2i񜴔ϋQ{*,~T<)%	/11gܑT2-F	E[z[smBPWhi>4yVM&""KZ VQ &{[ITS)V<NMLi-=E'2SE%"oRV'_3LD$QW7$(Q0ڼdﶹw^ը<6deDTiH`o1nhn]UJUD0sդ %j,}!Ẇ9^78:,&8e~;EKY;vF-QETOqk
-MYQ7TmNp/|;J5ftmh3tV$)[<egǶEXA̾O=\Ǉn;?6~9qز[+gÈ טc/ǆQ{a;1pp`+ LOf;ςC(=
f x/WPg|ˉ	'r\~2ၮ&4\7另)g?{!'(S)877W%Z57r3##H?CJZڍH/ "#톑h?bDiZψpX(p|$zizonx0-r<487E器X{rhVY9Q{hb$!\e	.Py+?cl\Ѣ
ʵ.f
bÈ=$c]k,}mFZJfRq'P0H*ݒ~±οѥR	q150|??32c+֓-oн+nDj=`xrE[lZ]PgCn=#񔔎/GSlml/ܙYG :wlqjz>9=''?QWu*Gx
@ky%i4>bcciacue,ƽpA^~V|;LJs4?. !(CM9˺su_ES%Y-eXVȕ40,]\-{/C{#dUi;2]y^i[h+x;ŴIN93-/%53> $2ރKKq'*
;qV)(9+)Ts)dqq)g%甦* %s32+3Kr@k'^a&U0B C*>4xn0EEhTQ,`M{mK򜅜bdӘ+8vZVdI!1sg)k/"\"GqTmZ⹮CF"G`tF5;d?ݑɝnIq'ʺ̋@BQR=E9,pSP4EQTe@D8"5c.p_v4>RFAJ,-vvphotʪVu\HF*$o2,~D׌\uZ)q/	'PxTmo0JV%MLj ´Vd8K	PclSl041,!=<;|hE$ܜOÁEmHRnJ='st枡?7Ou
#XO	1 *PjD*nůS{U%xāP1uM)pֳVLyUmiY='(j[iBLYMQLR1=H$.;w*lEE2]d	$uݺ
v͎![z-xe@\ޛy~4-h A3Fzm8{3&9w&]t&K+Yw5y:w8!bX:桮ewielVK__K,W͞%ŮU.Pp)J#$^=LZRiggz٣43(}(x
󢙂~b3IAjc7uwwxWmoJLIzoVj&T*x6MCXW,MmH&p~๷&.^#Km~oNOٽG0/bB8lvb1a"8bڢG ubr]LF8$l|~2&N/A5A,&ӹg5JtD[HtD^;2LAt904!npj1eBoPCt%`%K h2@=ޱ8i(C{Ck?DB	v$z0dFaD,!CVE(	n&&Nv> E$L5&W;FOIٞeϼAy.hw6v.yW9VIkwqIN\?W2/ꕠ4W%H#D(B̲v)ZtM{.jip ^BQkT
:-ݧX+EZ pU.vPa@i	)2^
Q*je4OY@b$ͳ,}ֿ_`	_Q-t.%sXSN(upt_aYXo|HâˡMI&(ajݏk7 M-2Z2_5 ?̤a*rLY*1/e&߬n$M?!RW^<]]ʭjOT+(wOUi@U)=jK9p[Ր?,r ށobƨP5iHF%`)dzds1nM]3%~MgrqF5Ν,/MCNT7szD<`>~jrXEԌI{:a$^TKVq]RN0#2	eQj#:A+]T-)4i40VIQe̪`=4n	g1d+n$xi_ơKI>IqӜ+csWplL˧4w9Cr0ٯV{Yk]$q8k;u!N+?09mTtFmi@	II*?(Lg
\b9>Kz6v_)>7zls_pfp/l;x{)sBfC'U &AWRRxmTKo@VJf7-\(6DTHMITpy)(TMZNc5Y{]Q\@*s G B₄ąg8`REXofv5u'53B7W˵YCF9S[n)Gꦐ֦B0$1SKhru<i؂eKYvԺxrFX{3FOUjYBk7X#NX']c\nؒU`*܊uz'cBa@ed|/lCښpMkpEaeEf-K
bS\!U85t(iZd£TzSrх6UvݒΑCSpC?`Gn]b\uyNdmYBücyt^EelzӲAgm/WU_
獖6'w`Y
yNp%!=mkdy%l]M+p=xeaӿ4wU GjP#"EeR{'w+4%箶= kbnޫ:Q)<Na<K3
Qn(Otg#H[Rp>6fl~KOm3RW8|V܇0؇rgEyb(qAYxx>):Id9{$D?0Ip2XE&b~>(	6॰ѐ1~%n)Ly8
?P={W w}O_}ǇlExXmo6 \T%Ɯtd:ZlgYLpeCdYw$%Y/thk<xș#2pFmx#l	Fqb?czC#/(7rG?O7<|d@pM4\w:atjt99kf뤹D#|HY[,I=pČ<J|Iw
8Lzq`~9635>Dn;w/lAHop@/w]@/=jǽ{qG{FH,Q)<ؗAc>`E}^GI- w%~a%d=}dS/<mzN#b#nCum#n?GClL~[?01AgdB5v;R;
uq9APMkLO9*JNrPI
aQ<&s\U$#h5GwD6O3BW@lH:'0&Mj"|zBv2d<*">2́oDMHit٘S,JU4H~i[+vrfSNqSBw	*;W,Pm7aLh-tvnNBCIQ@5$0(y~	C+]?e4H-:Y·gʗk\&WeA"peu#xbnnAy>^账}(kzC[4g>=G:oU{J}L]lU~ޮT6h^γń`@L-fZr(~5sVkgC.ih*N3}IW_xWs
JIej<?ǀGe~TEO5*iw^HUn_WZ$Lj\xFWy	%zv2m)xp)ev~쪂SgxfbǞU0<](=j<+WNI<~t;# 2sҢu!iB[O+y:`Pnp.]j
,ɯت&U5ә0Ll"}^MY%
YR/CW7g/^	$'AGDi³? 'U5F,\vDQFR&u0>gxj-z՗Wu$83Um޻ѲFUQo[>zs	&nCSWfU.9$xҝykl;\
|}j,dV)?8_+7>:R˖%wqNixmT]OPz`ȇ6M-f6렊i;q nSbL0ѿDoP/<b}9߼=1Qr0*F(ROQ)nYSGմA[2&Nc헺"Ĕ$`]+cfB0o@X_XdESbEMemUNfL$1H*6!lYMZqYZnSܦOf嬺x R,пKY(#h| k6<[ʅMdWy9[*i?פ@"5*JX4{,$N	ׂ2ȸS	]U40Xrm?OOEsQYn+\%`zpV.,qAm}4D#{qdJ
t4!}G%1L* Gae;k8f>S/f0|i*Z _uW3K\財E>V@wg4Y.ȏOAIf{`mUe#Ѕ-._(D=/ó:g./"53Y[51GardWH&./payj888QGXwK_L'(΋NL޻]<,R{Ϯx灸C8VjFuYjGi)_"wxWn8}۲}%ZF"]7}!|`E3l(}I9Cypׇ3O`z8֑[nNs-7QkK#\	]27+Tz
Q
kvpcD.GWhik-,Mk56ZpC\d̒bDk%46ݬϹ˘eCH(UƁHϨs}GhVBF>8s/XH҈2dYDRŊL\*cE;ʭ"tߢ(ڕ<U	dj
t֭q,~0ms;9Rk<]Nn! ɰ@%T%ϢOH,5(X*#P2̝LZIa|U;WOM7Tvi[bMy(rlj	g	 Jh8'$1]0s'&'xa%i2"Y$ټ-.BMȉIIN ovل\b7. @62_K~E+w*A/Y{%^7t54*;P0۫KJruM+EJKL$.:%vwZJ:]4\#(Ӓw챉|L>/pGUhd%UEM+O%y?qsktĎTAiy	OR m-#YT~(tnuM_I09ʆzlt!hA1C	ncٓOYv˖<R)7ǤRHvʈ=oy }yJ!	?eZ(S#dUTC_HRm98K6cRZXeؖB敯v2{Dʚb>fà6M
*݅EH'r%2t	ϾҬ&w NxS_vy̋Ej#HSqko1wу4?	yB3`L5$JgupYBp9<DT<Mn.;9jIYc+G~9	u?n|黧CeUμ
>^݋{_Gw_o?v|y~yG_zƧzԷq߸}A{_.oO-^<`syq{Gp1ry^?Oܒ=xu
 @AMSZ"wE͐(8h;}s]yNFڦ{CQ@@c8Hv*&^9O+hOVqs+v^ʃv)+J_^"8j¯bۼ `fx;tirJjZf^B|sgsO `W?xg__G?É@]@-8Y?"q|@J?([K95/%3 ׏"xU]o0}^K}"MK˚'5@:M'A臦A"Es,$! /OOΘ!Jd;XyqC[Qxq;)7s428wa
<Ҙ.e `:0,65t	] w\/JmR֡Nmx¦qMo[wCu4c
Z%\(s /X!j3T$xajU!~[m~Z+>$8P`3wpZPBkj<T+; ö2R6Mnrރ2U2>[%c<bȲBO̓:o.5KP(~(=uٻ=0 ïw	5orz,QK)*,w)ekjcӑ53N-(0U?Rw8MSPqD)yՒ	=n.
V#9:{g =.V:
Y8?=A-gߧ'(vk?#Sf),&$qlGb0Os>xR07Q'tG6BqQQ&f)*e@dEKWՖ~wlͣGrMoiU~񒛈EF>,"~¬}~MڥYuQ!Y8^.XP1%J.dAWʬȪHǊ]"Bn
\<{>q*O)>׋HcۣhJ0̵l/AKKJ,(N_XC۞<>)_~N_ۈi
PINZ,tx>!FT)ĶچV*1x	^j$#>ݒZWZaicPWa$c~d$vF0ڜ3Z4U|x}RKOQN)yqDyHy	%!7әvsgBWDM֭+6*[n]hp3mZd|~;E))pab/Xs\Mf[yFS5ګX<Q2T=[:J!o 7Ç3_.O2fqOW/?f:^[f|SS2!Hʾqx@!t=-έi)8OY`JP	ih˰\!23),a7Ylc0pÃ9	ѳp@dt,DtUA~%55/T&
'1ˈ-3vY1KLŔ1DT]pVH&/|ӢSO٥t︚hg@i=ۖ*U2I~1MMlXf/$˦"Lٶ~rVtBZqJ$y}$	w"}]Kzs|L[8He)^o4Rgjk^:2&W'21Wmbê/ۚM`jd;Ƹ;r^M	Aa*k'ئد?̱?Ph&0d.Va#];w:FȓQY]D]6,Ƭ秽-x`~NX[f.n"7-ZxTk0~n h_ba6׌AI5/.$`!<8r"벒DnҬcFw,銗A4]we|.  /U)=KE2@KUƮ2ɳ(s{Zz'Y۶.<oSlf4#JB#iZx6(-B+ꢨDxp0okILt.4
iJL+hXF]*j4Idz0e^ 8!ve

`2#v"ꎏ$ڄ׀nʮ3˵B["	IXvL]PuMs`f\ '/2b/ٷŵ9Zh5sBtBÛ5c˝/GZ/N:..J8]&e#Ski;߯gHGF Xac x}J@iqiۀ^MH=%&ilZeO|}_W0*-af;߷3/x*8gEhK=l0u<\@5z C#zXDRPg]yGG,s1}`Ow]6%O&GJ$0`0`ưuȷ8T suL":U;ov c6Œ1jQVRx?%xiݬ0}æTքu	
kBKo&Hdeq?;X܏b
xAxG:/R>x4ΦЏ]T.J=]]XȟōI %-5x}R]k0}^!K+R 82;6]za1)ͭ%qs9in'2Зp1y=-C:s)q	*O
*eȵ}]2I:wk cJ&M`}[ 4})EgeYΰ@u
Q"!pV(ZV~24l([g:#\m \۰Jqcp}:{Rh1-04,cvqO͔fPBKeW\j[JAzLID*뉿ʳ ~E]]RpHby%tNK:_kknЪ'|\ s^xxȶmHrJjZf^B|ckrfPX!>> R+JRSR2ӸsJSRlRKJR2&Ml7@M,)O),(A֙Wv[AdwqIQirBdFC.Zk~ғe'w0ZN>Ĩ9Wf^h+hiZO6d\$;y}LR ruu53@K^IB) &@d2xR]k0}X{X'
Uo\bGwS?Z=HsN=	g"6xwӘ8aBiԟiB|LQ"Ҋ(-c ֪,@\t+9^S9ReR4,UD3DJ!y" &i&DYڇJN%YQ%uLw	I<Kxc73o'KwޛbeppQ4y1OE\(T#֞;"H٨nV ]ZC)m|m{ݰ]?+jtSZ3zDxuj0D	sBiR顇*e#2v[C͛av-Z2`|;>_q&%Jڻ۬aHTϕN	 v+)MSSΐdIހxȵr.~zwUQ)ss`+ݩ KR+AJL]My8-i!XAt,dcK`ğeʓnNy[5d~xYoF ut
88iKD|94Eڄ)RGZ_3KrⒿyrm0"Yޙڊ.޾4! ㈱`T{&|3
a#ΛIɇ(*?otc9ˏԱ<{nLou)oGkcwwPj5Mv<U%Gſ4BZ}@A(*(ib}]sC5/| ɂ!;", c\|ݷ[)!Gle	^%xfM:S	5	294抌](~b
դ.Up~}6lUGTsYqi7,L0"'eQaiy\oHX8>.NOY%8NɄ+|.MW_>Y PS@FoW"eL\Ppu]=f{b3
\AMbj-[,P#PU;bDƶň4qUaJ!w#|с7PpP[rvt#j~Ft=7 -D&X4_t]^Ql7^kk/Uq-_2!I< \)Ug)'?#nF	w2C2@*س~6|6-XQ7l0ERCi[ʈvg?_С;r~Vwd?٨5}4Uu(;p}xXUcU}mt[E>U*b|_8/ʛ"_5 sYd$[@}l[kaov,N o9قѤxpcz%~"~ߠhSAR̦p%|p3{iҏ~T3ϒHcHq@BT?e"Q&[>iv"O
uN:ptt66mTc0-3Iu3zVk_U1Bsp*8z"X0_AEUMgZ2jPGNEoP+o*aH+qN[EDQCUimڜ
v6e*s;A)AWS`܅"!}>e} HGz>}M_oTZ#ΨmG$'I;U__WFT4 |YF 6סF3wy
wu1
?i)9`AݢT(8zݒ`U %NT9ǪY!-Ac:_؀it>u}4TyBr6ix5lw4	R<tٵaɸU=}25w`PX[.|7KG,{ gX
+V@8 0zyW濚Ի'ɘ]O:aw
tD@ ژJކq؅0!^0ذ,OƑoM=TZ=|cmGZ\6N=EoX/b3>*.5A%xJnhĠN䁅[U()6BZwC}:gRV!h8˶HDPGsѤA١Z[ኮ|V(ixΒSpaLKQK +cCt&4c"R<Й}qgn<ay/s6,ϕbڹWa)o#Zj| ~VcoyD{Mg\(gޮ;:[~0I*k&:vpn/-۝z6I=34w shpa?'ݸ5l
 gah.4SָugGUp>u6|@(})
(q[z|O}i./J?PnX>NyguחrRK ~&	_xVk0~nh_ҒHVB!c]/ Yr"HvNr9옱=졤NOX	POxd,`cSe飦	GǗ' (',ʰ<SBۈb&T\8ad8-QLi
Ǳ~,J'i
'x/&uiS>>\Oǳ	VлBu.7p2PWM}OoQNu#iP3<`\Cã/4"9?0A`~VX}oeJ7:>n%Nyb?Z H
%wNݯ	L݇b&j&1NDD,9z x 	uW󣳶i.*+rʒg&~I[bƙn99.bSU;&+R$Z"mKլpwM-ʞkul#UU7\u4mDsfͬSs71kkZD*DDBm#۫3o$?萷ql$'LZ3ګP6sIH*6to .2xuMkAxijSH:6m1bԆմIc*z2nw݉Fm(Y$̓xӃ_@P<	|f!A0{^xfxޥNoi놉IkrI<8jc % k|qggy[&ޚ>YUɾ/i7aY=(ϫŞ"#o!3|."fRzW]jԷ+2S٭l2Q?F,=<DHt/SHv|.ՉnsUgAU2r=:GeѺ'".}pL>h]ǧ}c[e#L`Bto1ؾ2^.C 94Ub$d~%_J}J@?ĳ!_k!yX
ȧՐ䓛"/F@j!q$ImhV!P)9my) }8xQl>4YoUIFƼqQ*i]zvye	-v<ZPDL6'kqTxeOKO0#,M]Fv2uh4W+,T=	[oWv]f"{α U#H!xMCNǉH3|ټKdi,i},wJS2K9u똥\hRoDY&kˑ%`N%m}å%sC_@xpxu
@0EA":uJ{fFb\ \@ŀZAi	)RR"Q1Ea69Rzu}֠M&29yҠ"aXFŁi}8xQV]_ߋ^_>&tXxSLKIMSqqR
d楢Ea*rJA,U\RT`%* s❀$X[j^Jf  sR!)  o7hxSLKIMSqqruquR
fb#@<L|2!*S4ݝ*]MM-5jjPD0ͅM5ʥdͅ 62O xu]K0IvY
yҴ4_Ǜu^>99LP`0nĞQCɊ(:l[l
\j~Va1usU7XE!McD?!۴ttl{	c}nwxxdY,:!)\eF_RϚm޿K6+,,JM%/ejEiP|i B:\ٳ'g'weݜxUQk0~?ЄF[Zil4@)ݿN,tJOwwgˣRևB2>[xne]!/((FTxvE?~W !]B*ѥjt"
ym&:g8dR宪EsPXC{'䮁m -qZ:r0Bp%k<`	Of)	;ol{d$Z3TxZcl]IDpqTU#=)%H@Rw"5Ea@uaTx_a<vR1öw4N/O;a{=9)cͦ}ehZב</_&|NLJ
q䌧R|oƱ9N-JU$+Qw" =87FWv>{y9zk$b́ET8)ڼ꫘o=ȧG26A]\~ߟ:FUrŗ`YFA}۷.~x5ytazy3ꎆS*/}y4=HxmRkA'ُdr(d&d'bҚ@i#M=KLvqaDzѣ$E$G
?ޅ\<zO($1{3ojula|\9(+J:5)\(o~'swPEf^Tںgj/V+s8q7<HhpnXsom\ӴZ/VAOgڵ[Njk\vs7\fhjsv\)VoYmߞn^	&F?pC\X@&!NXBUWqSB3#1b3_JQ"FB4$
W"I{ @'}@ee\In(D*0Ъ6n	{m2VC(oRY6u{I~nc	kܕQ,7!NzV604=i5t=CH}sU4}6~Pw$|,B)NG>\C,"T_J\RYftPp-Ixkos?,r*	:[rvS$W$mɥ0E*|q;._E3^2h<~<``DiEy5|E~
ܓ.#o=f'iLp<HF5URС6yT17If& !dٔRɤʘDP
^fz'<"-Ɵb62fyxP]YZ鲑bpU%xy5P$>}?yd9O9]N&ad~JV!nkم&/sm+]XEp9/HQ<W`IN
6]0y2H ~y%ɩbL-qzfD ڮ?^P<zk(YԊAӀۄ)MYd*Rٿ?(}NlazcU> ($AqFϛPa4Xivb>!)DZRC)t$N%yw3}Ø$-\Fp+hQQEZB-AQFe'te gv㼘U% GQ2^|,-b<pX%*ǧUVmbG9lvEO)
hY%1≊$iWR@Ga GI(Dl,elмU\CBѫ]cR2
+Ƴtf*L:~z"Hs}M树[)Rg|=?M^,ƎWeU]Khsmn쯋9[O&۴#Sߏir2ڏd}E=[3ְ <pvm*NAY7Bz9ybSyq AX#\;-B|kDZEئCE=?tEOI.Tb[?5ڜ85yhyTiϑov4*k'd6kL-syQd0HO޾%v<0^Z$#WIn>Z֝e^nEUU,nmU'iz1*u
.ȫcxxwIɭᭆiN4fQXJ:>\XGCW7,oᑗ:~Q<ڈ_8hFpjv8ÍXюr\c:)'BWK
#IE\N7W͉{@sFEE@wPyQT+I,Zs%h9B;HcúxhÜ)V/jB:8Ӥ# E!A/!]Ty>!Ե[Zd0P[`{'B|`	@-
1@	@-Oa
Qꅡ|ɢPf:t`"u/WAfx.	,#$1F'v@9Er5;d<;!:2؋b05_,:.5yGz\G.>|~. cޑ9I=mn<׳ԥ9A9ߗuќ_ؑ[L:Z|
?k70b*iI!Uw$0{J%vB`z}FWSƎH2qPWb[8F\_bjqjAnǪٮ*|M1LmĒ4
\~BGHU[:Lp,/y
Y-Z uٳ2F0*DWgzcf*t#}̹'dw`W,tvD+JC*I <YmRHS̂lEAJTV*VPJ剄(Fz17=Y
LKĉYoZ @4X|1),:(.9ub~@~}dzA#OVykJ%K
d(uը`DwIFNK
p%oz
J6&Ab*0[y:g|oΆaЃ Dòs K``6Ga7(" Cq_0T&ګtb|sݻHs!p녅N=0NQՅX+/Dkɢ/Gƚgs:>Yأk;
PTF΅@E˰5Kf`;thi~elCs; KHLn_Z6S6!i:ޖbU(	S`}sπjknL=FO[qɿv[o {:?͏e5{xsCfN%7TZ#Sifue
Ad n=xy]oBƺbT4;MUxkC of^BQj^bnjbd;U>Ҽd^V{7OWԼT-"$V\	/ѴA  (xVnF5[s-I0kѭNX+qaj) ؇5ѷtvIKRTT	"gf[_Ng:p1
P	 %=FdܧpZ;ߣ聶pϘ{>[wGg$O$Jqoz#\{7}t{LcNkX>J+mq\8UC	'xifxsrsa{KyC}/Ҝߠw{{5.EB72՚\RB)4$Q"8{SHjJn$,u$[Џ*dtT:`AI$^@DLR'@@PS?ԏ<ha舾)	ׅU|R@y)7^i_F዆:}ylKY,*.L&aE! 7}F7LV4#t~*	DVC΀>i0'&0*^qauM>04*00k 4{YњZ15?@U%8'tqLv63W~KU4UWmXh5aDi~5TR}_]dܠbu8xtDV2|gE2aKB3m&I|UAxbcA<`w!7<1YZN2ݢ,9M͒ښ]eF*v//|DB;V`/c)=>ϖrԜ.=SK';2<2o?x@,c}{S?TIiZ_7Qk/v,*r7O޾)kDF;]g^<%YPvq5'wWw["Ɗ5]&fX +7((-9t	5{*ֹ4؁;!}WTFCZt5_`c㍚<Uhyؑֳiٞ;g(këf3PxV[OG{W_ C`jRl	)s1E+cϒˮh"5T}HH	TUsU)"J}H_ޞŻkvg;=;gf׆eI-3;7W72+Ye@PkbCG&U:8Daemc3Mqi5;;8{y`j dSp7{0䏙hÚ$]"e폙]T:w{<U-E:Z+hHʂ2Y۪EX#TqqaSXruqNtrĝnzqof+t=ThBvU;duciag@( !M]zN\Nfa;w7$T*̎ReM(U4czR4a¥;EkUw-~z,	+z@K\45k_\T5KPۍhf	jHיgT,
|La29c1ICUJ%E3`@Gّv̄&	SG.1MLD5xDu_ϱ1NEŜ6d~+jsk|w|\zjH7GT.{Fb]Va$IpgqOУ!TItToبcJ&3c~;(ԌG9>vtHɀ,$pe[᫖uWKC3	@N\QE-y8 *
'܃8iM+}kRpk8^ j^=hЩO6mٌhCZ~nK i6 f"ZyzzֻFھ	?A$lut;0/J9x3j3n6S=ꦈeMdt28urx%VRA}۲S:LA{{|Ι_~4\o]]oZ|EyW_w"\5B,͉POIm@PFF,m\>tV/o"gd<]Ux'b05 |brVajIeE(kd%o<}x»IgPUqgG/m`Ku<S^A%d<ǯnx5{C@rJjZf^Bkk&/gG?wWCL%!!0%F@%y%
Ey%F@Br~Z" (K!xuQK0efZvSX-Ғ*ݤ=ޱ (n9#_ӥͬjTGnh%#t\WWW>\lA
:O=>|	gafɳ)0Y&SJIk-90mT)&<#-Z^^Of)%p|oF= +/X
+L|d^vA4Y̠-sB:X2xXmOH_WʎrwN )$F
ʋ@jO+Y~	u߾^ہByffwvfvA+8ǣsu@$m:@*/l'$K˺w>Xݮq;s10ܐ@VFI֘Q1ҥMU۴b]jKб!ѻsS*.bi#$	%1&逶y
x͐:Jeװ&.5B^HIIT媫שŖW+4;g1Aa&{"b)bO4,I} ,D#ry;ɗxmOw@NcS!wfp:IhIǀe|*."`M	R*h"%LYß]&ˈX#m	#7B?"Hݒ]dU	Xcfk}EX[HNDnFcRJ?'8rQT` c{h/#.e`֌*5I%u"KK43Nj9SFgߎ?/6b0g3`[z#`^ݩ`1W[`0b	Ӿ3dkw
! '-MӁm߫ Ǿ4vrm;blb7s߹O{o63Ve}2AN9fnOfKcD'ג[.(Cn䏒I]Kh1li4mk׵,kz't|!]:2R 3ST&F(7jp'k7g"T;`lzQ6s^oTuD+s)_5м2%o]aZ\QSԿ57.{ixjI00arĄ^:ީ7U!%Zh7<?MS&٠xMk")L҅ѡ_a}{G=W,2'y)q^]ʱ+95^q"_aA/Xi(McF)^ݗ;8]rJzyj+[CmS}ޕO߾Vvmȓz!iWodjWZO?`G"o&8;SӾP"YyQdE;^_WQn05 dd(ADQ|`gS)d9B"(Ol潮bk7fn,qzi_KU^շP"Ww.#\]֏NKhQxuTOGbYkbشqpM[*Ǹr	UwL6^ZcJZR^+U\*)RZS=6y3kĒ7f~6w:+U	בP*7mb7\gfB9|Hd.\l՚Җ0Zculd_\-R
)S&Kt_ 'So	-;}Q;}EeX!G-'?39ESH4jjDbz7E#Ϥf=籋u`L6|ƗUtQ+*tbSTRV%tW?1ۦcl[)yWYԚ@$P&Mj1mcN(k:Q[
'!OW?)?ǁj}Q6NaRK Lc&ø
&TB;ALcdrLy*h44T enpsXQvTs|b2D,2LP.9V g{K{Z*}x0$ew3<Vl6-h;lZ㻻H6,AGj*s_lD &Ssܵf5(=Ԋl`bh[m;fȇjel "B7\"*&KKZ{_H.Kv'O:h]6=}iyzjlĵ[f>͸v9EVX5eE%zw4_>c#3cV5:V75nfP,Bvu'<g~_ Vcws/󋣴o&{ѧ!+τ3{_yM'rA$E[s'}-:*x;rTu;G}i^qfz^jBf^BbQIQb^J~FY~f5/Ҽ̴\dyz>duIi`t3RxSR2R7qs 0hxSLKIMSqr	R
fb'0H0/94%U&-5(X/aF^~Q*P4O!ʥd!h ,"xVo0~.ռ@mKRT"aEil'Jm ڗI*nQxWo73GLqp(/AB<9(rz	8D8Lh@[{U7;<L_3X	ID(5?ٷ{v=W.p1]C_YXUɴv,nh,֧@?VׅdH`?$g6#3p	Bɻ`8#ĔPWx_(>kHheLMҀ.U!i'eYTOz/%B6[}ASNSϚSmcs3OMcB:+L|Y^cd$&]UHг-'t;WUOjJXFcu6לjOFI]Ǭ_ID>*Fȶo>}c>Un<5i	OW"9Ap}veؓ\cD9VqBgs5b̕}T#z:&XbMfN"UmѻPsە|@W4ya⍎^QOx3ǈI-EE%%u)5vұbn-*ڍ̇rTB_Q25x$V^93-/%53>8$=ރKKE
frJA+$(OAYI"5/%36/94%U&-5(X/!pB}||@khghihXU_Y_;%#h6S 9MH62Jp#雼QDetc:L*@2I,	dS&'0OKd0kyg@I,Z@3X*E	d52E{Ȣ$yYA%6Lacy&9#HA((HA#3D
"rdC'LOdԀ,eyw:.$oe'qb G[p<~Mf7ZC>Qlr8Pv2*$sˣ w` gW\ r&(.ع#7(Pu0$ĒSsS5@	kb/*Lԇ$U?5 :Ӳ;xQk0ǟWw8:^1ô8aT|3CKmI
]ۤ!Hxz4PN4&)%pV"{LSph%4̴R: 	%(=,>c
4>c&&jXԆXhΐ7MNv#|2FC4U	V*҆}R`>8fW|kmӠ<)|F4NS>iG8ݒ$4~*7.SLqܝ6knT-[C~0`e3E]%"M/2Tj:j~w_nMɿyQ=ExZ$bxľ=U93-/%53>8$=8ރKKE**'0WjEIjQB5rj^JfL3PK|qfUj|<	y9)
6I%99%zv`'3Mo<dFٌg3jO>(;)"WrFbV7R0&2(pe(+h 0nFN~^&qEL/01rMd+..)ʛ,Ȭ>Jf5ޭJ )d\xKo@Dw@!`7u\
/MT!,)*ƖQ6߽kgz;ٙ?4Kj#oN!+Qkrxw%׊ldrHbXr~ԛut!B'm2?~!poh@   N]#Y^:'!!2;άa^HuVH:u|W49()m1
1ۨoVS('_E
/G$&hC!$1/ߗmk8t<ug.č9 ~8U6|ӳ2V1YU%=omHf78vxEhb~8qB4A0XCxxDPPׯ8g d8p8hk1mHis423v_k. ~|ݣέ}W(,s_8xOC:ID9L|W	`QC'k!Fw>Ҭ&zzͿ9VlrAL;vz<|p>>"WQth
e>-[H2{.H..So٘ڳb4_<X?OG35'E,yKv xC/-ɢZ4+UHJSzQ	v4-IulMODɖr]ֻJ0 >H%˗4鲦]]-%OǴq@xgeb"T}ú(vXIV뤄:6/)D[&9]W_߮ftx)|SxOGޚ~NR=gA fֽ, @xB TQ1=&S$lYpHON?K|졢+Qj*tED(Tx \縥X?-0g$	.x)|SxBl⃂zx>ҸaҴq
' ,x,<YxC8Hn9y%J(ry9E ΅0Zx` cdefs.h OsRpMA_;^ldїڦ)oyHeue.h EnFNѭv(tBLNR~'FHx]k0Ao
"8:u0'#tmmZ}IJ?ov==)apᰐ/q	C#SO!v"9ˍld(Dqb=@٘0	1)8HxքX@kŀiWf#'.5ENU1?Fr˽҈J#yqxn8.K0'hR9afQ^-/?h_b`K&Asn&
)TVidvi~Zvwǫ1}f1탖>f|,}cOAYe(	h ި;T'j5!-gRVڷnC8}cPxSLKIMSwRd楢
3JrJA+$(OAYI"5/%36/94%U&5'M/Y$)X?<9 ,UWZXZQ"i(CY =CIxSLKIMSwvtpuRfbJ 2ZrJA+$(OAYI"5/%3j'CMBI	*UQ$;:* C\
Z:( GxT]o6|H_@urOmdd(EC6bٙ5o"~euE>4ޔJTղ5y֪G 
|YOUIOXJ} ֽjRִz<haUЫK2BW<h)ZnU5;k체P jgL[kW}'ӪLMoɖp'B{oZcaE <4;еjJRݻS?A#ktހ@NlmJ31t*t{|w_*1\R[cК$?-zx'T[#XE[P\[zn5֯UE-a疬=u[߉c.Hd1<ͳ3EtX8Kb
oSa!\xPtF4gBPL@tTr&i1OGLR'\"Mf;QJ=MX5˙yeݣaH0<*0P"fs%!x L쁥8La{i!pmG(y"餽"8	I@b"Gb_,p W
$"paVQ_D1B2eY,wd»W}s@:q}Xdy^L%+85DyR/e;?@ܙ%F(H/lK#>sH\+̐ķC.|7;:&~;	=FohkyNwc^Tyn6??Spt]]/mlpmv*n},t	^1ǽ͗ĥ0ǭSw:Җ"Wwp9-\l_XkxSK)MIUI,J+˰RNIMKU 	%(@dx PTxQo@ǟ5;L1M4Fsi`@iCan[,.詋M3ҘE$ah64QF*8igiɖDa\&yD`2~~fmLqxRc~Bp/_)ANcEh1Ry8҅!a'F)^`?P[]7<7.*ܳכI+R0UG%*v^UfE?V8b'˹FuR*Vc{OWr84:	R}PUA]rGWetTʦXxdY~B*kAG&BII4V7b{և8Q.9u%<Nމڝ(^ _n=,zF}9M C"5t~7$)6r	s.>ʛ_枼.AfMRf_\gEțVQJ4xS.O,KW(JM,JM.3@e 34%UX?(/_/N$_B(B FxmPJ@C{i4⥥qK5+{Z$;kPfmTyf֐FJlEYܩe=h	&4P5}q5 W ikTVF9֖xMI\,xַ+ŀHlip:>F!oQeR<dW\k<ߕ5^x(? 9ՖL5kBiSdIG_xW]o8}n~5Fl"uӢ;3jeLФ$RMgƆlOm}msgEJ3@<	d<<mU7jZ;9Eg-Xm)Nm}=Tu_ Kmg/>Ӣ&ONҤN}Q_
mhqu$\<ӲR%hLcZoe]mE{JClh29!$2g_SBnB23MS=rgE%kˣ`J|DSYvvfBV)a*OIn_m
EE[kXwk.b;"`}.F9vY۵ǡ/Gr'$B?-8Ӏ5"&Z%^a1fl8!;cT7Z걙Mgsc#a+C/VRKS*pOT(вf
>@Rv./e[A^W`oԢJRŲ"7ʚ.R"nܫ6K!=u8,NnE)~q'`h4z8(,].KͨG@dK׏չ	1}W3!qPlJx7ұ==E^"xF}#k3g!Eq_45dRaqخ/[$^
N<Aj:(x&G[CVt-)2|_;[,;uZvETl| .t: FQqdM4:jtPFJ/E5gFUȏSHV{pzw6_#e'/[۱;{N#s#:ڱM%1hN yXtF;2]c&O2f7Btۧ{.8׹x4`Wʿmf~6M?F8k&0s'Rp3?o4__m_U=Z?kIwb,/5~ϋ6̫1))L20pʊ]kJ~04C,xuSMkAf$G&MӺI_$H ,]$Ef1lݴRы0Gŋ7=AE<*D/ζIQ>~e}:fN+FXLx`6e-ē-!O nmя\!>l9}Y!V75['{]-!
3ʡўJcDs3"SL%z4qcj$ͅ|>R6knXUHA?Zқufl1u*k ;Ӳ][6ʻ*W&
]NE$x$!! ~{ڌ1A4O&u.k@%HrQ.n|_\
'M$
쇧?\\C`;〯a|ɳrE4L F0gkjYVˌ; 28(Ģ+ruͰ{
 
*8Z
,!w4cѾwnbX)Mo3wa&-\< _c#g? DGF$dbU_^VBy+]I !o,ۯ3'޺2:yT8߽q:%xS.O,KW(JM,JM.3@e 34%UX?-9$G/N$_B(B uxSLKIMSwqRd楢	f'0/WjEIjQB5PEj^Jf/ g`NC4!N#4!?'N4P?N]C<MsQ0i+QHO t58,EF  P_xSLKIMSwtR
e楢3rJA+$(OAYI"5/%3fFK|ifJ|	h:Ddr^rNiJMRfI~bNNIeAj^H63D8$h$Mk$Q)0Q쮬Eq 0MƲZxm]k0M:p<_2&GC[&2MY'ŖmA>9y%s3pR_xt\^\exVt%;p^`"YɊd{Jv){;%BnxtS"{ɳ7^'U^ӹZI%)HgΦ`DM6x~QS]@ꕖ".U^vׅa83Ӡ9 SWAVncG&%VC3ӹѪO/ŗ" 6dAѕ>4-n͙{dB4h@ѷY#@B>@-(˲ΏuWG+eJEU`cY]I =M. J1Z{~`*c 8ʎ
2 "xYB res?ƹ6 9W{2/ð1c֐0#́-|#.'/{DE8Mk,M8JP̝SPOna׮T6;x[krJjZf^B|pdp[dDCXԊԢ<%g%j.Լ4..̼ҔT⒔̼;$伒WqIQirBf^~IfZe|jYj^	N뉫d83sScj&ޕ[k,d' N m'0L8 nf2H? bVfZ@Ϭ]d`s Ee!q5Htuz"!r̭y%@M
&CYA!"U Zc
xSLKIMR3RQ2Ӏ
9 ˕ZQZ䬤PTRS`XRZZa*YR4a" z3xuko0?7RjlҔqU&9`n&m?6!+RT"*x6q.&aO,qɼ۹]ڼmu%IVo1v)=[V+t6NV:U~d{?Wm!T+~R\'%M ftY
Cib CI}Y"5%(CY\T05Ș4ۙ,-W2É,"`A2\i%L74t@&3gF剧ІpLFps	bYC@.&qZA.3#M-5wr1)skh(9r\t)Ye ?v]iH./\"cyDéxP.ߦR-U?(G;]RyS0whpnp^lw1ssҵr|tLVa߶G({ymLXVHDBĢ.BLDcb59O<*Crslѐ6@t.11D#<0  d\,Qu%U #䂐1rc 䂐g{Q#/!+QcJ7F.I[\<P1ڦ"]x4t0u\/zM.^M4Bsɒ.b;2Gn5Ƿ裌JMYx=i[6s2	Wgleqˁ6&B}|!Dk᏿\K.QMD3au<kAd Cfo lAt<hSFJYTxBtdhG2%ᴂ솏x
#T}I)/7^[^H>뷐?|:=pxmOhP麪pak(Ta6]4kc$B6۔EJkC/Z~!xқ ޽yЋQ/.~[E|xߗޏ/35v2VR̼N˪5}eu.j5(,jjՖuq5V-贚GVVgn^XSϹ\m5zFAxnn2ڒ0|S(uHOv8g(/L9 ʨFɦO1%q*_Rr;D[>BcxV&dմ
XVxWdg,EGwM]VTC+iQJm饲=k<]LM3[?e)gZi|?blduUN1蚩
k/MG8V#3ލUL`bU:).DG^'w4V]"%@t&x>fA^`D"-*߃`fN_=zW[P&DJMfn'k}5)
Tnu~/+xmR]O0}_^7Ʉ$`~<5k:8m6s.8e@3<ZM3##iו^ր~KZ
CQ
*2ά֊43
7&.iu5ޘ{]3/FǙ\VIM̋\雪T{/[/U}`'lI4.v`=wǏuL+D{羉U.\DI?I&'PE	?te&>V	&Slߞ$`y@\/Nע.NN\O? ڐ^xSK)MIUI,)N˰ W
xSLKIMwRd楢
3Ӏ
9 ˕ZQZ䬤PTRW\($g$)h( 9ָE6 0U(xA@/JNN*hFBJ7gʦEC8O q)bCTcى	'^^'qҘX:G~TOl&BB5#C2ynRrX62;MqdO6^RT?LM]cp/+UޤR*ۋEW ,X	Lxcg )˥;G`kP`Lbѓ3rNfkXx'0D'G1r@$dNf\ʩy)i\ 8)Qx[oFǟ)am
^54OȵaƖWv;ZJ,9s}4!	aKnoޓH<# Iև7)=Miɳ-&Y:iy7gCJvMelxet8(܋ǁFCG'Ihv{zB?AAP/|~	`@4Z#TA]f@Ƕ(}E-7τjjB{.K!h~PDU^^x<e[[.;bTq禞 ؏^Rm:$G*ʀd.x"sCb̦!g;Ь3f^~ְg'>|Ix&+<<DrDh/K4@h%J2	(qY2ֹJ,ԍO&$גpג$W&TѴ*?PL}VYHG]LHHwa+js%v^k6nTtLhTf:"!8A`oc'qhaBgPV@ D$0xѥ8H!R([;ZóKL	d+HB`,NfblzS1◊~kD9bbbM̃CYD[Kbg#ҥ,M,3B~
رbh88+c^8iY̱v{IqmOvt̅K6ڀk[mV)uJL0U>mv͹D$̠_vK8^9s!ORkþߒj%/hwOEyȪJȕ(`%f6jzLUUIoCVtmCubϫ#=elty}uo)==;S4/GJ<$+Ni\}ޟ[AVP,Hx["QfC/gf^BqFn|~AjFr~^qBrFbPNG!7?%5DӚ4/'3/UN 
YxeTMLAN[[n11.4ĸShhw˶imhh	Ơ	&Wƃɋ?onٲپ{Λy3ϼޢT
jѩJ2)@ISͱRDQ[FMmp2>U+|QP|Qjmj&۶!RUjRVE˽amcaet1BJI/	2	x,^([F1/ǈ}S,Қx(x6.ަlFXHPd1&Ȳ1ϭ:߭# [kASr,O\RvbXL˝!|ϣj^8b.pC%	q݇+av)Y(gP?/90p_%M#FZ5 Zd$$I	D%y ~,Q)L䛁4]R1ex9{\Ixx	Yrƅf~s1v9Ӥ" zaۥˊI*/f3fNߨtNngZ<Eq$y]2)Ö/Cp6Nv^le֛U0z٨$fpBJߗ09{bQ%OE gpc&^^&p*faq>33bώ
;ovcV'r5+8ŀw+I# h}31g|Qo>}7dvSjjd<_jum~TЦlh咶i"{}UJ%
6#Y(ֹ]dk+S{x}]o0@+?XK-	dV	-}&m$$T	rNt-\>0\^\Giyro"9]W2l
7[=lm?n&e!{\!S~cl-`bƽi5hd,QiJ Kdؖ0MC7̃iMTtx6D{N]ìTr#jm_#}	W
:go9܉$f	D/}Rc}QLQ,
wRr`Ւ;V|sHrjh,3R=p(܊fRI)Y\g천v}(y]xH{&
:aQ}KOk> |ܱZ`lPm?TscrψonXмcr_F|D/- Oӣ9hА 9hvCZu0mƏ$`76,U}]w4űk-a0Caa%KK]쫤aupa#!v'/ByJi|3ƟoE>,6vo߿}M_d֛쵂?7ݶ!͘&r@>Erqek=x}SaO0LHSGIP2Ƈ)vRkB؎[)|"Rx
$yLȟvN o`#Z
楂1WL5WQY1?pg?U&qݐB0[>j`/-x6R~E6۪Lq2W,0[jAɕ#~ajZstb}Gx< Y	༮5jAa=Qܻ g"겢@4g~$y.6YLWuT3/.4\y^:%)9c8}vXa5Al+l^9Nݡfx-T̳iPxP{r?d0F=l>f9RcU٬-t>-ܯcz[w2x}Xmo8L+ݶ$mwO'Rr@{MIhE~y0clޥl(8r iy4Z|/>߷7O7rM㣢̟%z,7[H)69iƛ'hm7OY	OtTI))⬃j;kt%z@pQ	dMQ݆xZAoeJF:r緱GjvFf}xVhEHe!;yF<#P,0|[͔>*,D_Ɗ&;FH\|`q>[ZHHeWtE	4{ڵ{tU :kUtΟr]E7Dypw=m+@zc=>p.±su-B:өGQ'CU$jp	L2tD4 2\:!5JҒT%OL;E`E2)Y 5.eن_iq;Ի(ꋪ	ߝS.XfQOd&38wVܻ\0c0?Jlp`onWBh!Km_pн"vStضh
@Xv3:Օeyz̚2aD#jaaOiDE8*%B5Ǝ̉C}T%%ٮ9R
qlqL}R~2ΒG,Nڻ>臲 R~)QiohDdxvR<p3sW:rU,V%hF:_3F8ש gCQ-qB!
Rb|#SM%:Vnq(*Ʀo
i2pp u#1f?f!w,	:(Y',-+cZB 'sHsh!{GL<)
\9`Wz9~AUN+OF&OsNZuV4\A6{}c߄[jOc~/t9OY2@68Ϳe_<&R|LX?$8^5b)E.gKaY2ϓBkܐߖ o_ʡBpi?z 'd[>;}%˙A.lD!~@߳ru!āBVYϣצ<FPBp.8}9CuJ婲'$vMWrM8nHma8T3I wts:h4fڦkhڮ5RMkA=qq`MbNjZB6tƱ#Em3vpKz\WXWZp\ٙWD?
B׬hN]ˬ8Z_w4_@^7ȊBP9X3N.dk7Q6OzR'<M$op=al?[Ӊhxվ^F3?UEm_D4cr
WhHe||&-O:z259;4SmnUhtuq؜ѮvdC9m<_~q=)/mÌҦ5ڛ	6@W^ȹ TjD9 't;V-%]>OXxwxmOfאxGmM!eZHlAj!NnNmZU(vÄTI=TiRC+Uti8MժnoBXyy/.?y3AXWwUK:q1ӪwN]jM̹sXg]Ӵti0dyi8͝|x<	k]Z΂(hJ3DVe3_AϯEޑJ2JAsdy-1=-IEQ@| <T}P%%JgU2*O-* >'"프o7Nsj^إ5is	b`ڶ,K
}[Q햂v$),e70جm[PHer@7
E6lE+A͗XA72Ev+"S{kcͶ,4p{W8~Ӛjsլ>/j7&n{"Wq /ooq3;TL={$蝂ޱ1lښ,!{1U- {gitID7}TVvάe$=_K:w/ܺZC4$PF2K/9ABkp9Z0k|Ont;f.oլV{1tnYqPGF~>}Ui.4.b.!7;`jSvXNءjOe_I_>=9"'|lPW8<Gma:P=jM*TP=JspwS$[\*dyTtu=/k(ѡiHRxhφޅh{<2"$ !VLNϬ;u.·	12F&Xt<):7etWi;gViNKhz G6ňeU6Q1xmmk0F$[7m}]e6uC7Fŀ6ZTK렉)7'>Bcmg'rG4h-<$o6Ъ)14h֥'S5 c3 {2z۠嬇I6?D2z5gbXO6PkjA1>4 U SQ6u2I^0I,HyҤ9;c[xPR E7` /-19w%m@RO[Tn
yIRxI)87nxeӆBm
?u&S컑-4Y$Oe4\z|+$Zu33q?8wxurJjZf^B|pdp|coD]q)cpzd \)RuV069;9{F)"yrvrV04640kRpqiwU054BGACPK4(g:FLfTȨ5pnF"lLJ5䁢LK4&cRS`S\Y_Z_Za7!,tNfnfI1P'5/%3 Be]xQO0{7ܧ:H[҂|iԁ!Yи̨iΑ9Te(J S0\NUu[lh|]*6gxEJk)$8g82!|)8Qqw
^!y8ACpf2sgrM#KL#!E`3#˅&$&gS)}C	K(b4;@"\f h!wNWSjh>alz)> Nλ:nGA;:Wg?>L_\/ퟖ7šF"2r(򴼚{.C7O\gkkϱ5H5l~Fc,T+`%PcRsɇV.$՗N #J֨Uꩾ[V7^Uu ˧o|lx={;/rJjZf^B|kPgHd/P&3(\SZ¼\%Ey
JJ
@y)i@Uy'd~Fi&#d\&O0J-Z9/4Bw2&PIb2<$;9c"ڝ]x'od Jd6EH肌cZ͢$HjvV0H
Fd?!J #+P}i<UAW"F A\eAxS.O,KW(JM,JM.3@e 34%UX ?'G/N$_B( 4rUx}Xn6}ؼ$EX$EZl"%HcZwDI^C Ǉhb$O{[89y|0L}yM MNOǇtm'^ǧ_M*JKt0֒	f.yI#jA3 aߡZeŅكe-2+cZJPz7.qi+wL+CB8ۘgF>5ijy0_N=o``
/6g#x-G#xŤ/Gp.fzd@Q5܊R .툍Ϲ %墭XKE4#J;|0 %!N4͙EH8$@.3kP/!6}+>x{9dq\fhGGѳlЊфBTBi@I8JԲHz\9dwuŖ\AB@Q?/=^*̮<ԃJk]*lÄ?2cyXt1Zi( =Uf7ێMXJLهqD|$PslD7X):CҜeiLùG4:4YofY]5.<D>țHUuHDYއJ7fѮy&RZ3y}A	|nN
83%6Q;`B9L^/or|_EprR诐ew.ӕ?^
--˟@汧y|F֯^?oq*
*j,vtCS%uvk%ZK#!QuĔFZFQ[)WMB)JK;Gy']tr(
]RdȊp*V(R_zL:i@>}"3?:<O*mh.j1*4uICFV4!ÔCMf:&0cM6H󩟢I)}yVHSR@K`yb*.ΐsӼ:VUF(b;^TL/%'"C=uSNmP)pV
ۨ3Hu;=#>vzSҢ%`9ȶoI?ȥВS c,H,3z+KGkY
()``}iZy\{nwΧSQÛ;ވzN{<c⌜nxpf%װC[	wLJ#gIƶ"M8P10yB7ɂ@o(6˨h뛜6B8_DB ܔBҶgB>z¥n#t}xuUMlEu'Mc2uڂ#7!޺V썵@#!uZ2\*T!.p !nZ	nz(\zCH*nӸV7oN>Y*	5VcQfnjkevo@5v=g[M28NrVizvݱY[j0SjASkRҌ+N:jqP͒k_H͙3EжRQD8LScUӪyjeO+ MM{,Zef҄ d!1x O<d+BCG顰q>h}~}McpXjnygiRCiF!Koz3FW+!cBIi6=8,[E:szZ>VlOOl
ahjfC	c8Y]̈́,@4`[M1708ZhYV4=TB#1h܇Du4ǦREd"/kyg$,5;!Rd*Xpߍt,(=r#'$>Q|?_GJZ~^1〨</b-2x?naӝnbl܇+diٴg׻6k״r-^ͺ]RrI<qtn[bcw7<,jCȺγ|ئd ׾d֞Z8Jw@v;g a88'lu7{!_~dr^fB"DL&PHB4
j-75=%ę"zg!~/Cr4RtVQUkIarFķ¸a|
usO0'9x7ƣ8sS{">DiV!M?w7? BϝG<]XXH?޻Kx}Tmk0@hu_ 렔u$l+Ex(KnO'G{L
A7Ka:ELj8Hdʌ
=XMί ͥN
^x竷wlm`Fjb3=q!
M|(c}p#)QnZO`#17pZpLTURHN 4֌ v/8KI:`Q@-_%٨@cqLjFOMRN%>&Z_$/6[նGSzi׿J_K'e{$>~[W%x;*izM
@9(9'mF!WVUQm:\nZɳR?u=0ip
V׃wZhe4qHg^5wlxko6?ǿhl<$lK(wnPdʮ$"YS@.zI_Yc8r\L׼)/ٚgpπ=լ,+6f.+y_Uˋ߃K&h	>:1^xMAc!8B,"ݙ1zm.ݛKLbF4V>@-@5N;b<Pi4w2ױnáePğ,Tmzm
E8V-I]SI+̦86/ԥϷBD0bRP@b/!j-"љ*0{D$Yjלv3F?3$@#x7 i	ؘ֠D~a#8
9?\<O<tEtM:h]{1D*qQ|GeZقt ׸QߜH+22+l_d`[׵#1T%/`B50v٠o/ؠ2pV֠x~#`zܢP~ۗ4ނ%좎$Q!kx=Jv+mt,K+K Rij})Q8( Y\ۛ588Cnso5'K<Ph >b^5M;c^W2IVuyNk~KVmا*EvIEowF,ɘ?fd_()Y4=~>ϬNvIbf_iZh_49Ht/;MN't2*t~,[YUtHxYLއ;3bE]~][/9\󊲲<Mߧ6̨]%wYlb_hz,|.2ܘ35RUL*\245S)t~o"2&bxTKOQδC <:<£3&4IʔL	q	Dab#\ĕqc4zShS.zz3gзgǒ83e Mhi5HIyR@+Dc5l'!AVK"Zb9g[3-wb6=eO욌UO*o(	5SɥS+2P$,q=;-yf%˅8	o4\
fEEH_j@d{N O\N"-noľ:"M`Nº}<ΙyB
a2
e茈ѝhipTy-ҶG8jCmkC)GYᵼl'`mn vll]~Z֪KU#~lW`Pꭳf5r5E>7`~Oy~'0<I9ztR=1/p^^@+qav@LRz>H&\M H7UzP/*r2ZK5&r}'Eu/b_J,qP9hj?mu&\[{M3(<=ǽ8%q$,DGq}4p\͛ErWhU,I It\uМ'iK,d/^ۊ=N;5L%K+Azs7j4)`óU'tlMCSkH/^Ц] okԶj9ս#-²η\,Y6<Lx(<111g?+x=s6?^ʑڽ7s^,1rҼ錎STH)vA R.8,ł~ut|@s q{0^GQ&EB}1>=3kӟ~:5y83ܓ5|/aEG|}QpBHo RF0/O2QN:Jbs(&YIg!}rAH 2됯$)?٬2 atHdhd&_9|X?k}X$_%<ABqp?(Q:9Nd=7Y+B/ę@OedL1-%L:[2LGLG&8":@B<m @#,uF"+Oe2(q?aqРNqR4S1DH7j<HHϡ-DUT:$G0z8{h`ȒW +VUFs)*U+88fr]N>.7{½ %c;7 p2o'OϞ^&~$7chL뛁p 7x!ް?:hB޵7nQC@H2$_{|]z!Nw	Mo<ޘ܎oF>t]x~X&&{ WD'@*yE2/۟ =ŧ>ptZ}?@Jo/	Esj"ߎkDߞor;qɻGP wｾw`Sn& (oo&hF@W@/(GCJ30i4pTʅc)Zy&YX2t<znDc3}4RQX()oxwCygPJ3ms:߷?oMx<Lc~;e:8>=)H֝^MGQOs<[lwA+q1G6t4|M֏+f;: `l`3zM20tEbA@`;eX" #	X4)آ(yBp[^iw$ph0,8Zn`Ar `hY0[@n hA?V#FN܆]c|	jEw72`ߡ1ϙE>/v).ܺ ](B]9	E4҄B-jr$5eYx<
YP $^н]^lcQ,e
NKwE~
>f!W{7!p-WYȨ L利^ʩ*R*P$@u=KZ_7ӧ_/S^ oJ{;fSno؅(z(J[(95UPFN-MUM4hzsJJ6HӀ&gx G5[0i[Wi}7w>Sy%,s(:(N_CjB"rKS%o3.&sYO]o^l ǶpA00T%ӂ NeK!r1Dŵ&!V2BF3xy|yA!
fDb(&*ڶM<	iM^B\30 NhccW~hdnXL7
0a{xE7E$+w]^<ojGSoa ;.B1hejA0#z&j7wH]zc_:tUA@ÃcGy/|4,:5{:-~ҭcicF,D#ց¯ OL"-.*s7.'&T2{޻ :ܒ㥶P@/}ݔD[l;FCFMO 팬euwjǾ` pZ)X(p<hB>';j-4[f`Fh?i`D<_݃<XlП]_iIiЁ/ހ~/ґWݚ'O!Η$&O 43`2Cwv;ʡC[J)TrMpv4Z[J&,5Dg m 	u(	 #-(@;p<`DpA!X$I6#8\da3mQ2ekUG4.@&GJ#2+ôN[( 8֡㊁u:]v+}F~\yS6׿}mD6NȬaMMg&<cŤ%0p;OI,&vn>(Lg|qG&4ǘbŷYr;@)kOJSo71
ō
.f(QxGi"|=zƁ2ajVʘ,'(QuLlp$7Аͦ*AdTys"\+>Aמx^o8ʢg4\~3;7:M8kkgtZsb[UG3`N*0y
G<_}ꐣiت5UxSji:gL;b.lXG3%XB@ZsItzCղ-4 fGk x֦\PnxE;aPr *G8gA>-W0ުh"4HU,88ML.uXiޝoΗ ej#Hb&fX;U|-BcHS$hXzmBKɱHWVޑhg]Q4!+0+OEy~CI2haGlHn((I(!-vAΊ8o V02{h5	0)oxp?팫&JVQIشohXrHjd1Gh&*0E*);Kۗߴ*{nybsk
?jVTDz9,Y0A#,]h,H٦P /uJ펪k]BS,Q#Q<Lڞ}V«7h
`&)%G1{"l`>G4nl+ 	N(7;=>)#:]-{d}jU`q|&xE$Y\6N!Y3PFߠ;SO驋'foɸZ4y@ ["FeC{%xӢmgg1HBi=)S">}y"-A0}`[%5(B[
t]7&BɵZSZ˺ړ}ZHՍ:"JlOf	XP"Q
:l5M^K&h: N{GCS]f>I	p]hF>ipO#GF%22>(n)x85%[7S}ʉʘDdݴjulI.ӥ(]Q8^$u˳i"hUoɆl ɣ枼9Xo D7L0UEqX5#3^9(~͟~)=^I@w̯I0ײYl2D/?E^	OI:RҒO.[rw!72]ʙxZL<XӢNq#PRez~I"#ww,RӞ8PTDm!)̏#6CI_nvZ|h?~ˡuH)(>A^-nYgy!nް 	f
 DsPL"1r;ۅSvE<TR;z^($Z~WԨ4H|9YZ&m!u@(TF	JMVaT_jXpSjJ5/"`_=Ds(Af7Ƿ]U&R塇j 0_tb"(QyΝ˨sj1O.TTS$AԠ~I¬}sWtT2βVr60( hPZ
jui20PCYUQ$OUsIԖ(n)ߺjZڶ	JVU|HHLԢƮlہl9֜_fJʼe JOQmg޶d9+X^iU9rA+24UvUdn*rQ],V-Yæ'ZMb7:3E#Q QB?+LA)SGPTafU{Yckb<iV!4R,}*V̠Ԕ3Rƫ-]/WaAMv,?50SJ
;4%8DkT8u7ϙA$<)d&jOP֤諜>ݪ諸+ꁂމ֞rt;thwȈ֛i2:XۧW4kouE3p
tIЦ:>9t:v$-LYZ~TbSr*QN82B%.ecʯe䯁Z'G
'VK57UiZɏ1eFT<q'14z`Q庣=hhZ2ޕKӇ5]v֋R ~} S>lӵTj4|?HVdOW;[+llB¦<T$b,/5hW
TQ5TҲFrjoڱ&VnH77GגM+J ASaezr=.F~Cdi,tvZ+ҏ=ntr"iP4
ޛ	at
 L
dÙNd^fS
[Xu2Žֆ\avr"&Rid?j˩C۝צW3*koJZDܡHWCTK9ލ)N;mrb'{ZR<ԮJyI^R[s&!<7_7֖ԋ~VmrI=5+֓.󭯆A8<-*7_pg1Ox4LX 7Y)_Cٌ%>M:Ai&h`<=KKIdC1}Ux3:a4)__}Yǈ+`FļhއC_l8TSKO|m>ɹ_:\1P5fZs1U(U,70Ks7&`[ 悖2c:]QU*{UZa'HVo݊ozo
qׯڔͯo𪒲Zo[b5|p\hQ;>4Th6y/g<3gmh5Hřү1-l!㈺x}VkO@\MM6!nyȚhL*P,`OC'iqW;3.	9;vN{B4b/O㙋oN(DHC)Nb.*)s=>ފh1*4$ЦAR\EHÛ4?T{SGАȖVZ`+;NAVqxdsD5X&9 u
;hٲаmu8*88wXM;fGk:+WL04R<4X0_ˬXݟw`"M9x45ݺ-Jh1mYo:8oǺEL.$'ş]*tW[2BMVVjBwSyk8uU}!mȦL{3o8ۥmi$y-yȶ)V"h
y!UjL|x<B ~{7yH\rohfQWa
JѸ-1kִmjdniJ[}rnt#F4-pΈ&uC(|g1/eP@Jv&%=-!|ZÄrʳ8L:_-h _#MG,}y906{cvkL\om*-*=^An0EȽ*(.aK.l
PYpS"$rY[sԵjYI>|
`ɻS=<kw]E@*ܾh)T;vT[q
'(p	c2AXtP KpZ}+ϧS]!?Axmn@&mY ")Ҵ	n!(VGMJj	4Jb8%* < -+vHXe><$vZK㱾g"֤D&ս%C&㘐Ƒn@ڱuΆ	hJNmUiRaGݣa4UV5
t_YA[˙$W%TcOn<rkd,ٞgev9rנ-eWvVFɄ|fyGDlb	^O25,vUq_~2Ԅ,qt{RƉ.W86]|-Vedc~.8>6r
D~惂IRYR`9oCÄ `qR!dZaaE]FfAL>!ZGiZ)x3(cZjSWӋih9Wh뢙&sS5NSJSkSQ8
_XR v a7FBrUu@i ,lgNs3Q'nz>)zufJzo^zyOG7v0i4'xmOM@<'TDY"j<uZ}klw+YEux<7F!9uV#K63P.fa6Lkbs QƇ2'`~(8@[Ԫc}LAwO銺t'S8bo+w}Dt<	rlh\*$F칯`=|xuUn8}7x_W5iݗ*uR6'FTIʎ<<<3sf4:v<(y4p7<9pS$s|NKBcPyDKWӇQi.x1X@8-;*D5@K\@*e {nEM-!kDy E3Bw)јh=j3*hNEH˱;Q֠G> +IY֤`{
F!i7\lenL>(L+uMD@P򘀞CʏøX&K_.E1DKFYт]xobQT6mR)e6/ .19O):a#w%-׶$fNT0^]XndVCZWQnhָߖy,*m>iNxʿK"Kp~ڿUI項 ¿?#ħlmQ-,_!}\Et71K[~߃%qB|	ŧ[k8n8ɐQ	ܮ/=3vFgg@eNVp-Ѯԙk
h="nȽ	mY)s(6ꖜ@vHm-bmT=9Mq)+<`  NebS戭5U9^a[U,>b#KbYZ
_]F!<'%5Ԩbf04M (e4&I>&jï"7`~j񼺩-u$PB{j\mԣT[oϪz76enڂWbbxc^+)cGf2l'9fc?rqY dq̹ɏJL_BUu&c턭qDBUWV]l>UALp01gP)AD*},d0Mj40ihxJfix;ksS+ ;*xSLKIMSruR
d楢E3sJSRlr2s3K2K2KRI@E0Լ4^. #ǵx}Vao0JVH&IQ04Z,&Ӻi$0oAC[o{wY \`tuoN/Jh"kA]2=;xPpn?BҀs-4u4	Y*Ym[a܆pIyvq"6wEq8V&!RȆbID$y.$'s&\[2ofDbE[)v "4}  +prpF/D2J06 D&ukPvjV]P*ЖmHEI"l$zǜ X?La](C(;e!EKbi3yfeRKHXHeW|Iynmȅ<ήԿp\ae4<j-s:&EtDYjiEБuՒ"}1TrUceܘā24[96i[;p-۠EDխ*3WX`=!3WzVI0U?Gìqp`(-',%|U9[;s7
P45AȜ-=1$]45Mid<9+uP+s.i-Y~FJ? Wln#华eӒlu²{QX|(GUh%FeڸQ`Y(G}93jE_\u~wVxTn@}%$Q%kH<Đu$(Z9$@[~{gR0s|ٝ9A ٥5;X'̃L$̄=]4!"E>=0LY<QrӹeTNX]a	ő/vdy2UH'ȥPH:+6ћkYp:pR
,"a=AӗE9ʳ7mJF?Uq@J{@"ƚVQwsK~#+zcJ/K=8%5
 6*sa`p4''X|{!#cm =8J{t9L߶x53g?wڃv_Ԧ2< ۍTvbȔ{{Ķ'i{9M/'d]QNȶC
}BoK.z]ů\W16hZp9{pH9i;taα5iM
'x~|JHRa!
PiU
xu1N0Ff|"JJTELKƶb5CbB\܁3pn '@]`{aya8ed4]302kJ 556I	08:vJ"SdMe&<ϑF HB®D4>ZI{)g\ՈcW^HGvC4}yN69u2	e8'WQӶno=w69?7sq,x{ĵkh=rJjZf^B|pdp|sHrfP\!>> R+JRSR2ӸsJSRlRKJR2gVƗd2ŗL\ =q=AɘZӋSKJ,)O),@腐`(WC#B\\  &(TOnfUHKn5$cP['03rM.cΚ*b1EM
	ruu53Ei27ૅIB) ~|eLxTn0}Zi
I&I]6T$L^,8ZXؙk&s&8(zPЏ^\b#WWo(8RiJ^WiiW)2w]8Bqhьﰂx&\h\`WlDᤉ{$_\XX;~IXrZ=e;s])>;ϳ[]YVq-.$G&?c?8.NA^P;11p/8߷Ax=׶reo	 ЬTPPpbQb!nD<7P
U66ПbkV^'FH>VXQN?]Aҍd6q$#oQwȐՒէ|;՟C{Un1\ʇuvb`G7Fi6Hxdz[=Z>m"oxeP
@à$] l@pgiApWoʤ,{oWpɐ͎HcBwTH'%x7BkYlo+	N(P2{,ʚ!,9t]Wp-ҬmK)qGAy.J}熘K;	9ل4"my@Că(?i|ہ4/{s$xw/k^xoo0#N4ZPI\@@lZ!Nkg;4KH$9Ik;+;)kB!iB1z8هpջWAУ~n{:>YxO/*nm- 3L'լ:1W##I{rC
1#lZGx9FAu	cĥQ|7u=}ݔٟٓ膮'>*дy}G=&#/.D6.@3,xmK?~֍Fُ30EܵW¤?&}, rd=#ͿtTqCF0%i1,$n@ՆNG7Ja
F3>]F0/#	1.#'Ī(Ԗf6/# fW6VU'i-j.S^D8dt]qCŅD^vԃ%i4B!oAH? UebdHkYLdC4P1-Rv/t*(xmKPƙ
-x$IJ&8%i;[ҙEHBv}F]xw\8x6{=ۆY-$-0nS$F=$yl2v9ɽMn-
<Qbfkȵȅݽ%l@|VEbiN\R.mq&<c)i;V7JZP'!y!ޟ29-t6_9#tr#oXYjEd_$(W
'(V\Fݗ\XaR5w=^~ўd\o
"*0H>B'y+Az/~rp$ra {ϻ-l"l/ԴpwCMNd-wqsǴxS.O,KW(JM,JM.3@e 34%UX83=/1G/N$(r!)C s7xu]K07ۍMYc08ڋ("!ˇԴ48dn9y{H'/	N?RvJRT-/A}+&NhjGW0
LZ8
]sMe%>'ij69,9P\(nqX:@0I;LU7DOX҃*ʽ;T>4 eYQt¼(\f[dmhw/B^'QܕWbns&~S5򃷱vcc<=8իf0ߑy)=m6&']tV9Uc6Oқ|v6^AKxZo8?"ΖG..dvȒ*ɉsBrjcKvo?>$rkwW@ӈpRf/dM%{IYjWWK,߯߳!mwwL",VgOf~Xe>;<>ʹv:d*2˖SO^|aimmvC~8Wgӽ<$
WG(bǙ~qZ!s֢$e+{,]دlLx.C~Afa<1y{	gT6{i/ϷnⱠLjaώ̪cp9 s=rC_:1ç[ZRfLX..Ul<wB	NXV *bˋ6	tX|.ڸՓ$P-~;=*v7Pҥ_yM2a6sl.Uz\L,tfE5Z BCx1ɒ4FF*PaL\Ld0.۴HFmmZtHHс{٨!RR.!C ~aD+1Fl$Xg/ȞMKD"KxXVPaH=E>MCm1SqXXAJWXa:JnzJ\E4Js:&?eߧ0#	u'HSrIo
'\Xs*G,s7K.]LuC=3D1n%0̝4ha(
|0wNyQ}y}08uuz6¼	M00/Ľ0/4J[*Kڙ% ¼x^jmuicoa^!຅yJDytǺyyӸ0/س1/A0hcYwʷՔiש@iV"]!|d5,S2V 0H
dJ*Uc[0EDPBHߑEG(uTn3HerّJ2śtZKN5w$JzeG8*3e%Qp%IB^ ݀EA	P	$,G(x-*v֋~E,"X,E)_y!߱XFPY1H0x~"^+C<jᨼFXddA8*4)<^w`ёEOc,' NFYL'	uᴅ&҉2a\B68L2z\'B'vz4r|J:CPB5i2c|D5&2&fp9XgW9XbI7Qk^Ksh-q],9ejT%嶥լa-X3LC7;VϘ*c+Ӈ/j:373#"w*3`|ϏwǻsIs\4IqΫ>V=ұ16KI]RmWjW-6ՠEF&s&RuR/MXo".öŲ}Z_ju_;K4+VmN:Xj#Ȧu2xyhjo/pƔwP' $H؁:;Gt	S57}WC)ʻ^zG'=nN5)S3nBSymէnKgvB'rmBN,
}D1`7,vʍ_)(Jm},ō&Yr`?Fr22Ӫb煨ckYb"$gLs]OYD^᥇0~ƥ2۽J:T'_?i̊ktuSnpc:!շ&ډv)ǎ]_Q,ۤVP]_Ä%c{R lc1z7Sᣳ˹ϏmI[}~:]ëq?ZpV}lLjuA3orS5'Yk0o]!-5'Mk0OVd1<=Z=}*6gB3Ճb;ϟ&8P6F¨>	ƨƓU}{8(QUVjRJᓣ=QBlP8jhrPDC/Kgq͆_ƣUA0F_GØ{_a@wRmWa]C
;JϫQRii:Bȧ	)99zS /z]&4OwzRN+Q_f; ^T\Az_:8ժ7&Y":'uz91hnsQ2i_R}J~'Q`vx+ri' 0-3ʀuxXVk~ZGI:	_>bzg1{'uf	.BEJ#H|\EwUg3Gq=b.DeGc?Tþ
Ϭ4[d<~Ea-aiwwĖQv3fv7ͫ,cmjsW0/@{tI5k)\ԛTqoG\+ܔ?9vAYO-WEf@L$ViInWCngy~,q5? Um~bf\R_^A|I$b)B\a%Cb7j^p3ޛ6͋qM0˓^, _Lʜ^=:6W{_z;W1^xuWmlgW֎MyώϾ9/}Nlg.ؾnE01u;Da!ZCV> P? 
`ilbcBCES{I{~y'xmAWj]+y1%؂JMDSk g[n%|	ZW^EoJޮ||IB59MFzMCĭWC%u3W9\	c}JZ5P#'*+浭.vQP3Xm)FغJ,Lٔ lz)U1uL@%zVknXČ*1Ru[:JY+]kƈXweu첽X9բ>OkG{CtPw_*W-Y^yWȫ:ljO+Ool^?mm+wi<'G=ܑX#G'#1	k5I5QolnRSł($@epH<gajd"YJcԠuaT	ɶǂ#lHqB`CpJ3VwOoYpY3"sjx_gL'|KQUnM%^	~Ib-}mm4<0U6;A<"Mu\\1W?12NQ{
<eҼ&}m.O45ӦqdRZ(OpIw
Bg0p5A4y kfzA7{)Kyq_z2wF 3sK	\շ}4?,?7i+-1Sb&/'`j$lP@`>0zz=h,l8-Xk1.STEݳNY p*10I.GXPt܃Ɔ\ri3BD>脗u{%9NLv`A 	 t[̳<'/EET:&]ALvh+~p>gqt Dm!e9vMB,tg@5O1ԑ}jG}72$82dQB%"Xڦ]Y¬xh#8aE̎'FCP`},!7i9K${),Q>@8x8;hc+]N'D4l A4\@/"x/2ve~Zp{qݮ;>ko  cevbsL{%0!&SE$_LE
O9}ڊwm3xh, _#1Һ7I61᠁F0vG!<&#Ǆ	GgQB<2Bg"y _L&bR1D<qQx>F^Dn1&0X	.~mLT#q?MC)۽VрOA2x_vCvZe9U-!KA,Zx!ip}_@?8n6Ux~<o_Djm RXMvߏCTQ^sӣ#Uڥ%Rj6W#|a	_L?&O(S~?yn*g4(_o##Vm$ _slޚBМG浹4<[TG9vibo)$ӂ(_#OLwQx4GxSK)MIUI,)//KIN,J˰ k	xWko0<$JL臭ZH!.	i,5"ݺk;&cMCH9\u9I
+~u]zxXƁ`W4w~"W!V6*@H]}pe*xրn Q>\FtKƔ6Z'#Sާ0|B!M.>geRل.V%g':'H?/$.By>:շlv'zCF"X,"ZEb4!;1SƲ*r5)qF5r!_>N[Gu5*X"-["-_"-MN>-f<06٘.v?\G}׭
._X
\9G[|1Cs87|Wmkm|a3N!͎ꛢm7E[/ۋsOg-<a_=#ӱetØ"vmP-wpc]g'{Kx0<iJGm.ѣ Jw^Q4g21QH!xE2YTz^fMB-K#Qʔ|"BV5XNgNϪLfFK\捏Թx0.A-v>{viI>4]~GeTmNu40Z-k]Gܱ=KX
c-<Ԗ.7ѥ3MXXne IQQ
GuSPTH* a	K^ =):GR)v,1;pb^c#o@kȾyO4<9" z!a+g~펆I[~gљK1OoxeOLpǳ̓nCVBpv2bb3h*CXgY&LH<ً=c<{QO^P_M^~`2a5eCuQՊd4XfHm;mǈ6t"?AI[&AVt4jvgh/%ߔ5ہS~j5[]ꇍnhXұtEic[,ݬﴭG(BJ y¦eӵz~jmf;(|B~VZZU)gD<ϨLE1P"#2n
:'Q)W0*-=8
h1&u,lvi@G́v887\QdAR*P)G*t[vS'.̰BP2cY^d]h(2U8ǮY&Gfu,$CQp=4wCyxJE_iSsk3p8EIvInLcG<!nN[4V5̄Sp'|ٰ_ǚ%0]i~/JU)M$@\ֽ0;<##	V(#cP?,מ#xR$kjiUe^dD(B?# vNHCNQH+!xmOk1.wzQ)- ڂ`PJ	kАfV*y70S`od5)zNSFPata#27;F(^u!$y aK{}l{w3C~żUO(}?8:vFa3 >2	f9TSJ8$5΋ aI<=/r˺ݖyQY4 jh?A7n9.r}SPV@MxTao0JKu[R-$@[4M:vnk IHCB:{80*rBp<q8UoO45è ϥɋ"1
"rFK<'T"?|Yv	r1S	2^S+)SCʹ򔪘g
JՂJ\Hv/H|&dɩhaKϲGiSZr.RKe݉1`,Z?nr F.B?^`OkT|:ﴬisF[L*6	)D$vyޛyJ_6gI?5600L[LHCZ@g)W)li3O	'8r@a<\@@Ɠ`xA8g7~8
V"/AP^=ᗜuִFq\&ݳxҵ׵{wnY1B*hW"oa߉ѕ#pQ^_u0q5_Gk9,MRokq=oAAi!%x9srJjZf^*g|pdp|pcH[pDCa7ԊԢ<%g%j.Լ4..̼ҔTĒҢb;.9
~.iI9y%%'JM\#-U\RT\P\XRVP=55&1L~(>QhQNq*	b;Ii!W5d&LjkC\|"C=]P\\LP\#\,&0K"K:;{+  W04,=YXO_*C#4+]<F&/00rM~liW+3.1''(h )HFI|	_F`
q""B 0DxSK)MIU).)/()˰ [wnxSLKIMSwRd楢
3JrJA+$(OAYI"5/%3n'X{|@kTX`WUgS][X%.ΎA.p+vre(')h$($g$)h( e4 IbZ  CcwxSLKIMSagGx^.e`f^*8P&3/94%U&)X891'G/, "+xuK0ǟ_TKD7V,XeHͥIȏ6`ć}ݔ3A!\>|ƫhڋ\@ qx_@	3@P{,_^)_dE.V]}ڕIox )*-$HB=$VZh҆i(05@1:'Qbj-RZ)BqyUB֋e~PvKNgű׳?8O	X,gR
f4G}xH1HbN?2xSK)MIU),O˰ Rx}α
0BP!m`q"4(FP|xi3|P,WmY 2gŏdn1f/Tg-jB@4gγ H;1K>avLH@Jԃd_E-[6өs_d>QR;JLӮеa*fGx<ABK9%5-3/U!>82}=2YE
1='N^
Y6;5%LBRSAC!f2#d-FތJ\j`㣩	ԟ &/xS.O,KW(JM,JM.3@e 34%UX$(73X/N$_B(D l!9xVo0\S#U$5~XL]m"Ii,fD &ېjԆ{L:$JB}:<AH$a(X9pNBYqb7#5M11,/Y4
)~=8	H(RЪNSyYz%[oAtZFL?Y,ö"zk+_ R	e-puU7QKϠgW濝$
mgKo<6~~]-1c3H3LpK:RrD"[VS>S(otjʭib8";Pr6#V U1FϥÁٶZaNTܶ|J:[PەjӫR_`k29Gut`t	'f[C5ϵkvv+Gr]GwW7h1v2Y bQBQ&*T H=I@8aj65}Vme0}q=VH1Wg)UAGUݍ+**2rF&Yo]\ }u#R 7j}R	b`(5xeRJ1e}Xɢ U(bZ@I1PGi2U+ō;W:ֵAt
zSv '7'{'[E"El
Vv=c0&HZl01PsRq( E(nC0Am$`ɣG)ZRT_kˊRշrxcgSϯ`f9erzLʕtbiP؃pHj0/i_KR\vbETOFv8agD_k&GIN~q%x _9	ݩΫB9VEv<}={"NAaδxy䦽	)!G/|jcm2rgzgcE($%|l/$57
(??hYYwZxeP;O19.UT]1@O-St8[]߉s*PÎ19_eTߛǲ'Դ7a0Ϥ@Bhn6{׻LZ^;6$^߶ }lTI1U*#2Z}/Б$2=lmv&pJOf\]Vï«z\泲0C=ɦiZ$?35Xv>&xu_k0~KbҗʠM3Vԇ)x.+a0ݗOxr庐B(9+/4{ܳ'o0P*pH^`Tw~ilMU)9xݕxG+];w\aNIdҫH#%ƿqmw26!4firZBAEn:Aډ|cT%i
ܖݢ?UaRw-8}ZetWތ`WdyO+uDx{rerJjZf^B|pdp|kKDCakԊԢ<%g%j.Լ4..̼ҔTT;$伒6&Tk 0Tg?y0Ȥ4 W f&o3OfYtW-j V6xSLKIMuR
e楢3Ӏ2
9 ˕ZQZ䬤PTV1%>9'?9;dF^rNiJMRfI~bNNIeAj^HWqIQirBIn14N.?$37M`2V0 R@b$4qyŇp ex}]o0`7$˪H&Q -h,
uK!gJ66*y^18b }X+^ΐqp16d#~PbpmtLӀQG/8'mL0M|+O	~E5(IȆ)˨&Į4#xw(bPIEΘ|f%~P^myAR_*8#$!v͢<6(%γ1 y0x腶ܔUgLh6NH+Yp5K)$ڴ%!nn!܄qvZ4oTUlnMG_x*vozt&Rt.R?Ђ[bUdl1UMeYJEgJxe%r4dd6 U*[ΥmWn@U6*zfPI%h	^ĝ+uo(i-#Jj_:DY#%t{y4s7@w<liNr?Lol{9ٜx(+E\e9{6iW5vtfb]ѮAuh`
ՌN;1*:CB\$mW_R`G1ȭ7'sFLk0F랫RGVl}kE˓~%l!@)Ř)ƌmӬ@Ij?K]QXy# pr^a~NZ4jOmvr= ˰<hz5ii!6cmi@}Sx?m6xmMk!!MnRnVb,@aMWWj88fmzuEkr0}3[?lϲ?AjhR%Lh_ᮤCI18,!酤H\j)i^۰s֎ӣKS1ňM*(mдi2^:#J@ME=64~KK8,JКK56峢u~- ^b͢m Q+'UT[h?-/	N/Tvţi=gH`K_yHByk߃s6,׻|xUn0]3n !*@HІTEWVƾ~@$jn&Ht}:ׇRh-K[Qa'6>80?AK1Efs TWѸ^.J]S7@9DP/9.QtSs@`^#x-nQV\lnL;#aPBvoVkn.$2[wp3MH̯X؄hQ#KFLf2J=nfkͰڟqczvqE˯W'r{ӌ#?{D	cǏ_cَ2ҺȮZHg*n-6~V.Mت2ķeEvU(b0mSVqn3Ѫˠ&^?|G^IU:ͣYP\C˳ӗ"lpvY^ͻ6t7w_~A{d{{xSK)MIU)M+I(˰ cɷxMK1-?eW$`AV0졈1l0&7nmK{!ygC2#X4Bؕdŷd!W=p/uFR<(tq mcQ"y)_'y
V Ӎ~~D:񡜽ZEc];gYoہMWd*Dz{*^D&ascgi]΋ĦܞwP]7i/?xSLKIMSvRd楢	f'0/WjEIjQB5PEj^Jf/Hm^rNiJMNfnfI^`qIJf^	`i^&P,,Ԯ_ZZtF-n Bxu
0E
CuN7ADtck"B2v*y"i`},2g%QlxdG:C}9SN.4Kn(|vgN H`i0tZj-q ˡ|)\+paͰ5dLAU`匧ٗQBM/(r 2uJ)yK^R}῭zyxSK)MIU),/.I,I+˰ trxSK)MIUI,)/+˰ Xv^xTmk@\0BIw64	y,mlЖkn^nP33<3$1&g(Ѽ۹`'%m"n8M<_ncͶ1΋g_&"P23ǲhOcy+gzx<d,0'Ϟ2_3a=7o1gBveMsPhÕ:a@uTJ&Pʈ乁Balb?V|zs2sDL<>&뭘okjͬ}hBvVgIN7/ewE?üF,*^?1)RJ=8pf䍜7Lk
0h<kP8A넶U_^xڋܷ)!CIױP; B#%SAQ%i*L&0T%th
3m,|k-P!}9F$mvi*B%W@zUεN&C&GTbĎY,vFs Qh/[.*=v|e^t	P/xz-%_x{^93-/%53>828>3$ރK(*UO.)-aԊԢ<%g%j.Լ4.ҔTĒҢb;.@~.)% AdQę\\% RJss;(*.@!$@<cZ!%\\`3K42J4'+20rM`h˥PS qbFSK|h&3sQɊLRȪ*/-JNcҞ<(@АpsW C`_H  P.S0l,:ٝYtf@Y;ɬ;;dIɶ,JXT&L>b80(jfVɽpM 2J;x]K0-?'ï[E(]DAdtUh1,Z(9oCϐ3 ;}0w34rft4^_LqL8s1?2Jw2X'Y$~[:]4$~@ž̑b FZgq*xep2&I^-3qGU<X菰ZN#e?m:<ΚVNȭ].(oSǖ}֫U/#4x>}(rJjZf^*g|pdp|cHHP:\%Ey
JJ
\ʩy)i\0
~.řU%Ō3sJSRl2KsrJ*R2 8:*N#5:PjB&2Nh4d&W6<dE&v03xr"z&>L3aҘ¬59Y	H"U  #NxSK)MIU),Ĝ;^. ~سxm=0$`h4ʔV\X?[{m7jlxMIHM,
AQX~{ȶ[WlĵPZ6#=ݝ~kzW#",GXt¬B	X-U5+ρsN>Y/9螱k'}xkoJ?Rʕ*h|mU+$ADU[!MaS|cgfٝ(L0]7s@^Bb3/e޾O{Yd6	r,~Qf0?$EQ\ -gd)뎉U08V)ieZ`Ԕ-{m lZW62is'83_9Rso1di/	}Vڭ-> R(fCy⋰;	ftZoUYE6IR AwR3pKmm7sԆXa8nŊIZƝKc)}E6m<E5mҦWHe{$dlB!#eBUB;r&t@hG҄	tDQXBǄvT	%tJk֕sm.w!r9ayn//Xsʓ"vr)z=7wkBB}<BZb;! =&D$/@gCDIA>rX ?=Ή7o8??fV򮭍G7dZys|o<|z[x@q'c|/oۿ"x޳M=%[gF-WF]I[׬@s$3(/2(9^ o{V#Z}Ei8GGcAfU$O?~/'
z~&ԱL&[g2"Hgf#,T4NZ*,J)dzQ$M Rͭ0{?1+J0.';DxvON8B:wnɩ$鳒pw$,LƍO&Z xPQmG1Ĭc/9ЬVO^UO)Af{1Mگaԧ,j}d@qR1HLT߀oȓ7d,Mx:<v?y){lonBxeSOAMv.^!&cݖҢEe;˶-.nTʂm1!΁/xѓn^&ޛ}3MtciƖk*Jmצ0<i.8%v>/uhs1:kcggG|,
'q<(O$]S.~MEVL)V/[vЕuXex+!8	%,4 \#cqF\Z辖\b(7.\	Q~Δw,Yfcd{%uYREO-]ż'Bϯ%wX8Y
fj+JS!.SG;4<*oU<ݺf|.zUJ[\\\0z]gbADhmc3lFn'PvC]ﶜa{&Ff70Rsʵ0NƢR5-u\@ѩ_tǑV`L;3MZ'Fv2z}Gqe#Xۭ>LK+H-[V\
VL|cHeh:^dJ(G!z2EOꕉ>	4&x]0sAÃ>.ٲiA)xLu܇_6^Vu=nJ{؋% `ԩ䑞c[|Bqe~qNLDW(P6]!me:8O#rmq@8o{eDuBtBHt)vJt%Vywt;߻~ng0s.g!z܎w\6?y&Ӹ<xSN0<㯰K*Xih-^VS'ʣ;;i(pH❝jמ /iGX*hCȓ¡Do?KRN sJσ`Fɉ=) ЖZKkiNq7
8f[1cN9,6	 ?LDtkSsMφy/E)؀Y_.r4_=匫d2*:v&]8>2ӡ寳r]
w6.P|?T!tUD|#FJ%[{\,FxlpV5vL4=ОU>_'\jrQKHnx;-T93-/%53>5?8ރK("L+'0/WjEIjQB5PEj^JfPD?1iA@=~.)% 
 ʂTyřy)
E
%ּ/1	1䴜t~
F@
R ښQwr&Ψ$0e>1yLF #2JJNM*JMV 
( 	MkdJQbfX!oe@&TZR;Yh,`6E
!Y  wtxXQ4~RJ(]*n[q:CZ8R&NH^8qlǓvAH*oy<3,~xwrIfkxəˎBJ*v*ԁӔEqj:*Eg8Jp =1US3빪\Yc*T,=tr\Q\/qܢQɾc˕ll ϐMQ1*Q/_N4~9:X4P7߻/j}:n>̀S?_{}O8^t::0f8Howɱ^:ZoBnK|M)Ɏqxv르I\PnUR*%V)їF?(+f3Uqeخ].Ğ4e;OR5VBWrq[0~NyXV|/rtۮfҤb&Tϟq)Boϊm^cH5bz6:k%@t#LbHZ
d Hca[^sY)+SckՂ~] yXZg|R$4%;S<VSȁ :KHt`mtV 8nW]ݽs4JWMVm	[tYmYuҋ7B;Sx3fI5ilM`~_6X.>14m]LQELxCVıIȿtb\#Jq!ou,hC/ Pk2%͢JH0KlJΕ/eK9KQyE}fCr?vptVɨA{م]{fZ^{O.sCIf boлp7L$Xt\it!س<IpQOK?6Xk"Ě9U>Fa9CŠ5Ϩ.5BaEgrc5Go`եh{p,6<K&aNyDW=>wWYfyNDCi:=[ßS3`"t>x1M#$(.t\/gԡۆLx@Q8w?[\bp9LrmQJWqo\ɪ	bHa)?A<2qMllܓFeZ,kQ̓]=s\]Ȓ]IWԣS>%xl|PuJR)p$gO.N yԿe%h=`=Qw'l=W
;
E8v-u)(qϩ΍uj3Jo+dEeRi*qώ3Dfr8tA*JߍR>R'+
xػϛ;Oj\i
}\UwFS"-*s|$7бoӤܕ/;b=۔i?8洗ʏ0eŇń%jI -x|ѨC m]Y,(ԕ"At,
/n5EmV_7E]Űs"@Q"fAXc% F:v"Tkx6:2ޓ%M$$giPxFدgie@?EBϧ0NSEM`}nD,vf	Ն*Hkf8edWS(\WIKkZz֏A@',3̪t<?%HsSg֑(=puCLYZKOv9{&XGa0GC 'W
,Y̛Yqz5n:<E?DPTlyn@Zj&ߐinF:2`C^GBOaL i`;%N1&Ĕ:ɹԁ-~VQ$3@$9''
Fӯ>dL%PĘ:7iP@PͶJEJAAwxuUMlUk;qRx~b;q&i&!-Rg^;ֻzMmz!z@$H qR!8ď*R}i}7o}ձ3B7/lOgBHEY,Ǔ餅9p?ÄDJsnlwJ 	e;yiYo--KpEFEn2D*RH@.yZ*!`i@mQ>Ti}~{(QT"+3.ʄIjSU	$-RQȄx}nbGp:Zgt-bDPNRQ OuRַV/8W:p14"55^J=jj-\}xl2òۂ٦Q`p@n[:{nv3v9QJiIt3!Ɵ`Bz'(=}i}eԓ0̑p}
&==چ]};{$©XiDF[&DB!%Ac;F='s|{3w\q54ˣp6)+r:s[k5u(Rw:G5HOR "'+
E\פ/wt^zkB~:&EC5w繇YxA;ݵZ%txlpw3 =ބ1.Jn*tdc{.,oīj+E(46'x&Fϩ9U(1jyΌR=*E1'HAHAUgTDP\.`({>$E5H`Բy%c`YnZPK77H*DUrOҤ@F1|,,pjBeqYMPi\T<M'"R)~IUR-򜔖cd"P7uHcGlR$@\F\_pqO'$Ʂ`Da3IAgl689]6
.4zPM|c ɁHq9g`m0\ ep}I蛁W}/bQU'=70O 0"~{D!Cb d>'`NB0E}0"-աiE!vxU]O0}U/
FHmޭoB؁4$$r~sWL\ (L5/+L@oA)e[j=>'J||dv[@VjP51Q-3ok=Y*V	[yl+,,riH#ЕW1Z;4 Y&n+/X7\FyQL)W<!N0.\.鴼[YY,&n$ [@kB|VO=(l<qu^Xp5H}lEeEPkҺĴ7c泒7`v2_9tK#@{c'n2Ks`*qj𑻊Z l3Hmbsz{axgAh<mוoU
}JV/*}ĝ0LuNldyjgu$(*&et<riGv݌] 5I40Z$5R{M3#.&{+I+_ZzrMߡUSլ҃``os.ْcX>NYa!܆S^s>r{b:[rYȞsr#p\@`0 C`4KxmRkAfIh)ҟcjZ% f!9!Xb̆P<x_gAřn).ޛʛkC:=QK\UX\7_A%F4`E>N%1HHmL,B^Ԧ_9d0d:䳲f2ySc X#D4gèɼ<\"
'TiӞa~`;6BIصy+%$s1j	 
B~3x&BS~M%5B֕u\{暲:"9@O0uoKsJmn*֊۷BR=\QMBezW\...7HxeZyLq/irK~N`Ӽ,o<[$gN2mQ%J"zNc'΃],or۩P{y0oxXmo6 D-l,ːl6D+BbHT_DHQOH{9/c3_߹J:#GFDG@ϝ#C"N[DYӑHcJaA'AL4^O(޺
t@in#GY}kZ5RDH	ySq:sV7èmR<{i<teh&d,>aKcaA4INu_d_$qx=Kk-U`u_6d#\HBK>˴kYY$0&Nʢ(+t<x#QSƐeMge>#3$@6 }y.
gh**	!/@oz˂!$` $m'uFH`ebvg9x8p4BDC<j=ƙemu :[u
ӕTUOÊ*ݨJD.O59IEƻY)ŬIf;qmhe}wՈy[omN9n`gwŽ^&fY[AnJ[|Ǝq=zވQ[ҿ ̏&&xoΦ76y\#ͮm ,ޠ(댐YIHK6VL^HMl"2.ETSjCSҮeN@

n
GJ	PpE%z1m
.y-?hggf@| U\/}*Oكo;Pb.>6XƗ۠G,MiO7؎g ̒*,?//vInfpf?|w>\!o^q1QC!o!gBΗ_:Wڜ+tnws@1GCjz(=-55]nai6Hak[c5B~c5աgZIr>ɱE9<[|6B_HxmToG7Ilq@)viL"KMPR7H8Y޵v)	
HHQC/TgĉVQ8pRo]fx{ߛy_3s/r+Y^MeB4TL@'H@eLoXMw$wm[ѻDaV}eҹY:=U,N]X7޸Fe5zxSk*x5qLc0U0Qlcyy	s3yp8[~gcFbWE8S[.]_#nS"غ48v˔⫊esf:P~dYg{JonSh"'L[ILp*u>RnDs"]^qKsSsM3!$c@kuT%~әi1>4R%xҙ" }(+xY(c(}q63>G]"-y/?kxu~Tw=ՈP'޸0S$qש)&ݝU_&/yyҭl"e=~d~
{\	p{Fe6TZ"q~K{?5!'I$a)GD5mYwdv-.[=qƂUxp7$wdAweWpXfm7Ej\wq#-ni^wlxGi/`bl"#\\,|]Keu4Cz	S#K3ojp_Rđn也N= !MdۓAR#p.5v݇/梟Lqj^&_\>=ݭ4l!$R~	\ෲ)xOk@aH.6*(i CEٸkwFIC衇{S)Tfva0WS&EgbPƝ07B`u*8z}# <}
z?i{t`p4f+D>:7251U[ fj4wڗsI>*G :2fӤ%و>7,ǒ:)"gE2&N>}2MQ%2M!o~z|xK93-/%5M!>1(ރKKEpU'0WjEIjQB5rj^Jf@9a"\]]sKKRK&S`XRZZa74#dFɉq@! )N3j6Ah @CxeM@aы^2mY]5쿷Vaw9Ue|*u|KSɹ3j,ׁ)yf (g3jePk#ABF3I.*a4_gA#QbpNiiI酶6oq^
xSLKIMSR3Ri`e9 ˕ZQZ䬤PTV5 '5-3UE8&lZ, \1ܳx[moF lN.X,Yh{ EQ2kTI/El"2%t_~|.#FZ<;ܝu{N?uƢ:!)|}o}	8]%kMU>=\ZL|]? HG (CRfۗ$#IY@RAe7.F+S2.]&6Yy}ZZrA!ĳ1ɒ$o[OJ!WJBSr4{xMWD}Hbɟw@Kv	kQ
Dm`Cl4JX!l:x!A&t)_B|Q^ǋCysJ}ǜ6PwmyJz!N]>,"Z.'2*|m8G~?I?"U5uE;L[	%ؐ4TZ߱
TdՀ%mJJ)]. UбH^.ǄbuF}}K;e,8˚	_	)m]s`s>ΗW'/_<Yr+}YOK
VP$T*?VBJO~_KC:Rdn7޽{'iw,62B>"ɓ_gRJ
ܝ3QV0>L=sxc!"{87$-rC,W j[fP)r9'a0^%E)'%Oߓ-AcDI(l>IL#Y|d!}cR:.ъPs[k)$]~>fCn@Z/e]qȠ9+"'kg	gGBXkjd͕Q8.b9%U	a󞐈Idw+h(! ufFɲh,aPޥyDĚݔdu 7YU;iqҫW$ש>8 4?K(\xtrmďUt7QayMQ'6Wt14|aD2qK[VEBJe_<'VY-m8A\~dvB/5IFS"iOg9sj`]GJoSߦW 
eMձE"S+}ԧt,RvK0Y'(ڋ^엫V*@ܚUoٯLm;MɎ
b)ٗ( _kp-&R3`XH2Pf~CP% 
Ξ	2x*= =V:]sħԸqzz~:t1h0e
	W@|¿uǊ챴$Nqf}iT⏈{QM+qʕ9c.<F}ś#PI`zS8>,#ۊCsj7=xIxY`C'Q04m7[K;
Rئ9W6	gaԾ;5x_\خ۶e
̼Dʁ]v?U[ORΧ`kaf A9E#]Afrui7
ݑкsq#ٜFVBQx,fsejgZAu?2W|gv@nmbs!qS!	_}(3?L՜TYd@Sjov,R@VhK(ک,LNp<͐τLH5uě.&D;~j}t"kY^&1\S/,6Kynn&GN.䏑Z -v0#=J:&V`)d0tidӅg#ӰU
d*DC͐+Czi#~BEsmp/Id]JboY X yŐ3~/#B'%UW^)BQH
-U5Έs9B9j1e,z$9BKj( r'cH$i)Ud$ed*vpswۄה?d/@;@cZG+W0d"_k'j&ûM o߼GA=h_W0^H8̜s{a1߻A
--Ɲ7A^Hd:w]rc;Ӌ,w@<(-EVCl28_(^#PkAZ'~qhig
oؘ`Â6X9Iǿm Ϡ8suhS;$(
U?lf7"aSUeGkPqLɧ:*ɗbj !N(uԦ*\R
Ʌ|\g)v:i縶Nn;\O;G]XΑkD5#ٔ" 3JO
cxb[ڰniCCaWWڰ,0;8c5̦6T.6T|6AwfCFqY d59c@+~2ps\du(SӺT̓.KѪ,`XI!\tXZbq@k]1:DDPa@uЇZ Ge@lh
C,sN$m:5y8#A n";ƎQALL^|\8G&Fp|\!fW	%-/M\D*\ K\,J\.|hĪZi 0=j`S1m(sH ZpX³a %}EZ%,X}-	+m旳\isx۲gtϫXnM9DԝVp.ŠBJzDAeY8BxU:[ *uF¹Mϊyg-)كYc劄h$5уtoc>8(UʇpnNs7:G8r={CU1
sW;U"3?;]̻͟UuC"̻ͧ]yKe>{͡\Ͼv@]O-U;tn&mڥX:hڭ_L^Yڭencf6cӖXﵹT6z$|
 +"=fdb:<nD]jI8q%۔?'WR*$2OEao=mEYm+LY?)o!'wWxOj~-</bVSd*_4-/'x=3gn̪=_psk k5Gx}N@Tȇ=(bD	"9 EZ83Wػ:4\"Hy^K]'!>S3b}$֤fwwOí*jt8j@iLgb4~~Gˊ2
{W&q%/3ydYCVf$S#<\nāfTS)Ԓm{I3FZ%:|C"CyZv:D%
Bт@Xf$AmalċgZ_o )~zA{S *oQ#Dt@=ͣh=HfP=N~:GC4NZBbeF^s[N@bqO$zD86|2lRpӠGǋɗ0Zm:(b?2XxuXkh#fmOmY/ɒMȞZI)DFX$d,Nh)P?MiǟfBKH!lH$i@BBϽf-rι{9?*df
RV1aTLv=A +IJQ# ?Q%rOfR#zLsrިʵˆfjEÔ#B4r2/BAؗBaU;;T걽XD`}eXqo=DRXԫx"P$YfF?<[fBviѳFS.IQAؑj'e_\5
Y		/LLtJ*Ts)5
zXߨ(.eTg+̻+,N/QAX6_)
OH-TmT:5p>GڍRFc!M5Ln^^;x=>Dgbt=&Z^Yz<I߾_Dt4]e;+vz-[vh͜(֫R&]oFIdabRl_	Z-N{ޕA({+UEǳnYa#4JB3Mknţ8,Ә>4dl\B
"/aV_'LgDW~^P-8Q?qnDu5]b+*R26RPS(l<cfB-fPꛒo08vEC^m?Z!hꁈ=0:ߡYP,%u?X	X*τھr/Ay`׀+i(Ky6WIO1rڂڍ#KZ(KA``OSXH[am$E!^zA+A%<iVoTȨ],m+Nq;SQcOԅrbR2atrdVR+rESg
lKp(mq֩#ObD&P88k'S4z][DioTPZ.kH2M5^p,Bddtv/Cٴ|\&r1X5Z;EգfM:%"ɜ;C+ktf][[S4,|⃦>GFYN/MgI.]/T˥K,{tRQʥZ-Gp#Uz-
Gfܵ[&U^0nF}
ύ^Td90wNZ,gPBiCw'KR(/^4bky,u\t!gs0c.O M/{.u<4p3`ɴ3bᘄL6J=*5@yrS$K&uqG7qCSd1O9賬{}aO$ye|CRDKcaa,aux4x 5^(b\|hq-ŤT0b:hGL#'ѐ$Ƙ-xpڬw)cDqءKd{[ؓ]pwiש&tR0"F. ANVˤ&hɐL6cS٤"R*щbq!<XM:WbR(M%bmȺ~T;If9Efq_&	݂0m
ǻ!	;]>ρa/;&Ⴇp=JNt$$b,[:8x=:tD*)*rexzֆNd3%&kY+9m0dq<?G)&bPpiyL'[g;a|sp6;p,R$['PׁF0"XI<D]3:;=`\I2 NW.#b;,X)ЌЁ}$I|Lf(ؠSьI}&̚QJ0'$顲o̎PY#3;Շf68gYLY-J	Ǣr7xp͍9/SzgP$bxdM0[>OOt0.0[Z^fkZ¹<5o_;/.tQ0D`Շ Y_zpHL'0#>Ya, f=7MX3IoV[w\NL/Ma
7`{q6mű`(;.B[<p $X083&	r<|h5ߣE'ny~IĽ<x[DNy$:x]R\^=(Ű[oLxM+c]5HJH h@m<gҿbxf
_ve.skExvN#OR+xlkG
xy\E(IY|w8WU^ߐ7r&X#?r>0#]PATAxc؜{(yd&k_7Ywׇ7hDO5pW!1RKlLUGEc`åY |c(}î9Cn)~R[]-&]>Ne}|KCү{KW1w>/.( 	#bhμtU P@4!xN@'YrA(+m$	ݡz6qލfֹ@+\:?e<x6ieid0Si6
&l|T9vd|Q\\Ivo Y%*L=f:Bɶ}8`*g˙,w$@"|$7mDv=BdqׅaIqV*k\bGAjj$M]e\ċÎA~\ࠕ-npp&~$v_7G֗I&HaVN>D0#FJgVU]Yb"&V[J ۥ=|+~Z:NɅ?piӃEhՙT6w u"n(xQhCDqU 5{xeP
0<[?,zQ[ЃDKM7h4P7iC`v23lOI]adqJ:ťƿ8+S)HJ-r5i|`ͲYU8*6,vyV0X?ZwurA&s2[>8k Ny'y8Hڮ,]`6#sM_=p־8x}Qk0WE}07Z+DBiSTڛcߗj2Vh$M[4fVK(# $+	m[1L#E4,LxD+ӹߔzO&ˍzՍbv?i`Wyhl+ $=-= =,H(18;-ccN[YH	*QE
Р,(If [qY=Z#DᫎDO@S6{-R%> -^-d@zʂÔ(Jy3˶(ܲ(Un|ŨcLE#ROsmUS#;j56֠?_sT@㯹~iAxukK0?+~QuݜTpk֎^0$&u.+M:&nݤK<'IwDIP'/`HCMJ>'+ArK:4zYD	?ݕ`1r QF1TA_LE,ʕ(mFxGi*>:
1V*-r5#BR"RRVy䃚Y1Am(v4\Ln)VTe$S	`&!+*Q;U<#DgCނHeetN8{ofe$a嬪.+[-fr_&;SB^MAcm仡7'`t}0Q
h '+ׅF^ӨF-`84rI@[#wd7PG3sh>u5
}虫4měF+7o9nJx1cC.\ "\U7xen0z)=4)V2@@'vB]	#R)=^	;ʆu )H
y^ԽѾF4 Gˇv.79zVXDi^E8vaa
dX䄎xtV渣Hg.fzo,h.v+}=:, /kVW} j:giv
9q;*da,fb3R'F/z{$όI?5Vb!R8N>h=n*æȹl*8 N5p[Zcg?\6n }ExvR93-/%5M!>'58ރKKERK)MIU,)˰h11]c;5&>Ҙͨ1لQkr<	_O?O  K+(H䍌R0J"8F qKyx:y
,$)ԴK'0I	r)	21dr-3]C|\\|	VsLr1dmf9}e9Vdq cxSNIMKUs
SP233P `h?xS.O,KW(JM,JM.3@e 34%U<1D/N$_XB(A iEx0Q ytxY[o6~@;'2`:tp"^< dP Rvu})Q$gѠ|yH> /ˋ+H"=sSj
-,`_R$n}$FfN*r`N|ZBY	ff/⃷scSnk].dhBnޯf:'p28r5{d: ߿W5B?.?OVVo\^KB%9+8x[hXe9%$)E_}]];0*UZ~zѳ}f6[RCP?ePǐ6C}k$Y<`4rهxf027L4:(#H <E߀S Cq`Q~1!h!P3ŪrcI R.AK#i+P!!R˳/8B=:Ik"nK.:h?2x}"a%(GQ^֬z%= GWSOC<7;0p4$↟%Z!KRnvԗY
bMQ:cwd
R-i&Bu=E:G-w{ѐgLFl!Wk>	]9[0؄ɚ @B:釓!)C%Bފhp+ڋq	0IDb,Wx-OAG6`
n& 3vX̼
j\>q4.Y1V&d-魨XZ)_L(;5vݨj$ݦKM@),*j͵`lFwe }?)U]g==1;lnM
]HC79RS?yZPV<FnPCQV*JFUճPkQUlN?g6Id{<i\l+{Ew:s;[eHt2xG`wјh9-2vi3!M~MfS)jD3,LqbG.I/+h6)ĥOMJ4)ݤnkR&	,r=ԤLy磱rq}fqV2sOzb4|Wg޹- g~5?ɟ;!]--x8.xuJA!W>Ak@,l%L&1;3܋6>s8K$R޽O7e1
i.DhC
Ip^]P4B2Ьr>ȰƐi,P=r3%i=n[C1z6n;h趡A0v	C>DCt'dNOH2&}ؑ<;!b2i3?&=_ӫ*lxUMlEolbM$&&&i$iuTr:ufmiJ\*U;
ĕ*Wz(9R8 ]zoYϼ}7ŨXB	sgy+QD]4H5EHL5XBP-g֛۟fڡ:^rdY^ƪB
Dm mmE_=@;wIBLYw3JEo8]g48wh=4:San"a}-q,gS8;6N̤K\5I2t0lNj6b1gxs5ΚK'}1wd=ѳu^ǧ HzM#_vhHq,Pc	㜤G{5Hyq\+	Iwh!x<E|WqL{xy2jZtt;s3`.ٲw>"(ŢcjW{NGe? 6p~UQ?Klw莿rO g)	D''3@ҩ><il|#тk솋Ƥ`9Awy%SHL6fml	Q5]j\f)Ͻ{.<*jT/	Ŧ-çHIxvԓZ|Ԡ&N1aPXہt7/Dt+Ͻ}X@g_tCp7Y#Th>x-BG{mڶdRq`%WIGh}W|`L.(RdA!7x9 _Et/oa?^o!rn4A$T|x͓M0aҏ]Zh$i-VQU1LRV[ckGfKQ@_.2q<4kiEaljG|ybzU.UL69ۂST~y;̲Da
[h<!YWY
OOCezоG=afgw~-\KPn๚_R)mpmmU`ʬ>?Ϯ`/guzK絏RI{'%UC"S!3	늖(;^Ĳ2ˠ(2s'T1mS<Ǹv؆Vpty JyFfࡷ4do{א$&5Wn$;pH"qfvv.#8#xqGp:/SAW89pG*ܑ\&}vhͣ{֌x~?B)xuJ@i&q/0&V*,Aj Jbi#qiB+">E">gIbqGؙgw's߳we2Z+UO>Qpk1:!(
5~3жG]&%Y!
ee:۾AI5wi3&G\U[T/uڡ -QAqо5;PL;fN"l
4TEޮV>imjny	haLN1~Ÿ9*\՜*.ByF^baT;u1jv[
yፓRn
s=F+!tR\R	c<׆< >f.xV
r+3SB
:ԅLn⇺$/b%xuKk@	?\]-I,hGZ`ubD&m#]}pιBVCfȁ.VTh*sQ{rORkD{+qm-N|IR}գp]7Xe̷_ÝCG#Oh(̡.ܮ&OҪ˔?Q3QOX./tlAĩe~CpeB@l:aC#(É8h~+(xu:S|f^By~QJjEFr~^qBrFbV||QjqIQfrLA|	0P5/WY~f
XIZQjbML (%w
x\m۸_A($wa\qEv!XDLdI%{/z$ʖ ]gÇ%GՋW/ѯo	ztV_
(1	m#to(ƟA=Dh".χ_SF@cQE aoۡ(h0@$?8DȏIHTo	_I5DX܃OiQ<0+Γ7n4vӥ}_&`1D6BS;%`ۢ"oI1XػhyX[b@	7:hsˋsuKۏ跫nCۛw׷7tu;ͻKU?%TFF,{X]r-1ZƏF`&Lt&@	ɚp7FMG#PS>v\w!aq KtV1^̍/CGūZ)ģ|7,?fJeeF}˚K=uz%xgg+ލk: $Md3"tX\7{2.TqP[3_tyN.팕@c>h.C?uPV'Yt!
0f:nI4Qe 'R<ˊh+̧oَA
Y?қ̂@a),yٍ[WZTCb&:+} yBB]D3Q5ɨ>g$Խ+ron!T:$)2TH%{J^)Ix_L%ZAsV6:t[iyTI	lJ-S6elatӑ@CO`J<w7	X>ϥavO;aIjػ@RMޛRJH/[xjFH͓~5zJVyW
Rb%-I-Jbj1BS-$1BS$1BS-1F"w[5V8R4tDhTK֧ЅHS40xt ʁC(2fH6v*;#V|7DYl	bA!M!d1>vcPctlj
2ֱѢhdSyT6)׋QmCRBNYHHe!UaDVR^YHՉe#Tc0Yao'^NnFn+>Yf
3:j!QaNw*k:$鐨v|s湮{.=vr󏕊weW&,9/n:ums1tvLLn[V).[JtPuUU:)Ake[˼{8mͳƌBXg1)polYtz>B	 8NXƅ<iDP7^"!m4("qsn"qh $T-hIM2vJm vDj4ϥiJ']\^T;&ukJ9oĥYڥ./ٜp9h|U/x	1)ݹ=3saXpli[WC	1iMHM+p]AYWLQ$BZ^
̕JB,.	"_[#-ض,!y
nFYc Sv;4w`Fl!W&	<H/Oo|Y&)b!i@bjcYp]Wn\mF! L¼"TuF_[&Q-9JW1Q㸿Sĳ^) mgEƧg^]l5Ne<AS2(0/tx<}{z.\{ć't:/ cmCa<aCz %Do`hԁP@-!MInD
;p+ftF.q[EbrPȸX:[,4"XC
¡B>؆좘`h=쪌~(iGXˑbe;Vlz+ُ8cf?fl+^GNgsZ;6j؂kZ[<dg9lᬇ5`?`={kDJck+YFٍ&o[fRG/ݮ^ǻFn GldM~4¡Aua%0|QwYBgkqiTv򵹾 EQLDWuꒊ;
}TB?ʏi6?]z_$kUi.wXVLØ2wT)$bWp-Baq4
|z 1C.طOLǐPխW7m/DmC`J';SaJggKvƨۗ05t9.n-
ɢ%=l.ޡIbF
)ϐyGPS|Q/g^%<cRIGDy`c:1'Kv;]KCNTiksPП2|4j)~*9 j{iJ
HSAd,´w4FWMYSVeb
uh9J9pVguؚ9>w`
m?YG8%ꁺBrnYҳıިSQ)gjOO<~Z3=fzvx3fC2յ\W*j*'~iQ)cQ	C١F'FfiQ ZyO|du՗w:-TO6_)qtr5YٜtxˮH;r݋Bg3o0@eVJy2ӓ(d%#`0??ӗ/ӗ(ע)OCQ.NZ􇢺E_{YkޮAe^2ucUv<8pi.9ܦ;4$[yǅS} xhz8	'fcyMx {W?,Tv7ŮCe:Z,i^Ycږ*.kҗH5^tRkitH4MTဓ聒=`R5z3-iƗ#%hdej`ֶ+tŴMjQoe!P5j冤ndbW#|+{A=۹^cYfp8dbA-Hmӄr'%1FgQʠiEH͗<՛d&ll};qHW9񁂥-,_L:e&$~V7Iޞ|{U8|%}/<A]:OHmЎ*hLy,Z;>FXЄgic24bkuNdn}xt{-S]%M	&5)oCkZ	sFApiK"}*<oEʪ'2d-(1.ZV#BB&ߨ5.@eW= 2e]=P\:q_pqfZ~#vׯ̰/u *|6s'.BY_.]Z?pM(YPyb&+P_%2R:GSsY~Zf?^hnR':Tfo~1KyaoPy+/Hy%BClM`Å9XPd<V$'kwU|OTwZ+^Sz Ht.Krja. ^HhOL:<T	5Yē!P
೯@9BHػoVD'hZmjɭ#/U9JJ~>[:#4<@8%,I@͈|WZ$|[i^5@{ˀBnoBGfMy7cA(^nπFjIF!42〕VFDU89iXUű^yp a1V֫0+1}"8r^4mWڥaZ5Nw` U*R@ltm	δv
6NCit  ϘTCL+lN
EP;|2$`&dZPI@lwiT !ǇX="uօ?Ϲ܁[`!>pV~gu;Տ_uAz:[]*Aư?rLrNqSh_˝k _u⋺LI#L.S]E,D+<.k :9bAzϨu[ *^:Y`eo~%S'm2pc)+47Jkx8I׳o0,`X$`7ՁEX!'E)!W󄰼k o"60ɵWnxĂ=4 _^CW|itVkP03@1-ڋ/TDnQ*tOC`S*e-/~ͱP
<.l(MHl]ɨ*nzސ*.FN\'b?.[tɸ+:-QɛbR1([Jc|Txjy2^
A[س,o:C]SktsDʝ2i\ҁ"@P4@ѥ!Qt=0gvJry͆mT܎	ջk5z\Yw#j7I П7[vo`ީZ`&! *\MZHxj}}1fa8#Sw7S̈́W9Jd$	mCi7-JWN6k氒"#1h},,s͊1R52J҉k`2,鸴=gL#U^ ~2pi7.),9<%*
D^ܷ5YH%ZGz.c뉢9WYo$2-NQbNHAn-jxʶ	h4+t/Ť!~ ?k+d"K	_(/cRC|kZl08^#`D7'H7AH '*nhWB	N|3#РK
<!@p&^)"Qwe3P\ps.UW"DbU+X{<dDUL$K8]-R^0`s3h5_W$O0!P C?p)H /!
dÃ=fr5>^fQ*;0<ܣNg"UiLokt7ET+c%4(xW}LrB[RkPfnרj=LrЕ˵ tC+&>V[a/BMةh[߸tۓ[ڽbVZǩI2Q$^FBC{r߀6ğgQ	%%eB
8zIڦ0):Q\K\ɦ#XǠEwZ䋥CeqS*(FF)"PYT->
DJ '	iIgT`l>ПǙ[:yH'<)>,ge۱3v);?X*T7VSs.U#T}V0Еz`XbfjF؞i!i.'?]h$9	$a)Ϟ9֭Ðsg$9/ӄLr"`z+Hqo
fˍk-%T -[r#5Vv8F}oʷXo2gˍ:s(2_׿vW_w5e};LM}::HdϞ ۢ||$!~w&,uduJ軠SC@`#AaلЀ!g^;38ΣcUAi&ܙu"cНRLf[ MKx[	.(*!T駟aª$+ X7 kYڡ s[E<NrKx01*Lh$DC&B~]pݗǫF]
Ӥf{[NkɁ4rxt߿o_E(yP2t/qz?{+έ*Q9luB}{?JRDJ a]®S 78+&ku"[x(繅ંgApc hyx?"E?
o_d{05V!ޭO }E& V% o}/sR{[ToPnAt]o@ ZCc	{;F	}`62UTY~ĵǋCY6:2ssm1VxmUHj_[_cM䭋nJBZ'_- {PJ-K/]lt}oTu9 +:,= ^1~9sh!-r+j>@ppq0`eL06/r{XIOT E%($w!N~UHՀpߘJ=CXK"maPG61j7at	#1=AtA)/-:(ijj0C}KKNHހ-w0VOl4hKHyI"@Xu2 ڲP*]H}s)si1jNIՂBSmie[rN3JՐ蔽^K4,Y1vmz,X7/#^vsOڵ=)OcOz2sIRe,=+LQ2+ sHBh3.?*]OoNA`C/e"Jw]hCN9<j }#Zs<.TgNE&; VζZ!i}CuKL?#"b~}=zj=Ԩ"ύ-O~W|$F(ʓrsT~Shݓvs9K5H{kӢhqGS}^>'b{43n/QX4097w55{^OKG꽽O^
N	+}WpAl| qg)XJS2sL{6mZ Dݘ5հ/*b;$x1ѳ4#	9ci 3{3d3⇧F<ho	|Zʐn]Uǎ%"0Twvlw.ͺ#=ۣNxB]vv'2Kޡ{diC?p"l(_iko,"xQhF"3VL3Y#D|'|9aҴ.)8ǻ  O&dtũDDi^Vy.6I֖zL	"IpOm<aeR2Aw6աˀL0CQ]2'lALKfGO~:ϱ\63G~9	sJ']*q#	b0^bLŇe8ݼ߱a45+y3	gO:8&@sPEzVѭ9AP$s<c1﷚#0 9A#Z }%M&=CL&~`0ʓ6=f+i)HAi4)!^e<tՎ;_$zR_>3|eʴQuQmio֝?CuOlX@>M^%s{C}Fpl#xofc?m62\{|epK.YYBRc>	" ޞ㍰K)7tV7c7 A7FXpRF!qJb=`4viȄl.Ahc١ 8HC&T2CaA-â<Z	1_	),@HP+6Q%<Je07(JeID-wIAgp']5rVle:ԟ#2G}FߤE$ɭ#f=?vyd\(}HEnUL.tqHҎE{w^`Q8$nyqa(q* I2Ўȕ3=qĭzl!Jj.^ښB4F0Ă~\.MӞ6LĦX0TJw1
s=bD#cT	*o$x,TcUM%8(,\X-M~Jh4kEEc}@f HnHLn eO`X"^\iאk[+HF	=_(\4F`A;ྭ1.'LOVOkx_/N..P (c~DO+e9=C0ޑfAk&t-u|-/oJ}fq,s#MRXW'>]D򪳎1h{3Uaԯ<ٷrb,WKfYhқvx-y]_laxâ钦0C'H]ko7-Lf3x#Ġk5s'^r+:	ãrAl5G8Oԋ3q	r|lf=s#D?/3>t܄s8n!KB1~5kg%}6C#hbenٳ~'M 3+(3)/"QmDUW6ufE'<X38sꋏ	e|cU9TM#/J(sGU*AT0gz嫍˔oT]pih>
F&`4l0`J_ߩ.e&Cտ9E/C(c .0Kg>r#2CN]Cm>7#%EZ6(#7ʯ赌|ac([|^^&*XEx\"g5w]VF;kY*go$1J$7WW>A"l~n%Vi{_M`&YAu|`AUhF-A|\rŗsZd&Wo<L3Qj0fjR}ӄ_ܴZaDi	B^B}&Au!7c_$]*QS<ty6k"SWTc5$EhF03O<:0>|%|uGݷ,p
]e]Ze(ěO_'iGЍIE}(h63h0l%(ySQK_]	(1	4PѫE#>:^~(['ڟW_)9f£1
ómn7-.T
YfӗtYZE[Qߊe?Y,e(w3˻\ڦFQU.v/O;]ajsQOt8,lb9>CHDeO+bTƽ6EuJ^'"eU@gu7P<YT	/R碜,䩴|~Zo1~rgn6]!w]KЖ.nTo@mZ'6z PoJ`W$a|-Z3D7Vt}c̑jv>32ư,
ScYT6օEUm[NUxW0nQhk;&0CƢBjVݤT~B?v!u
xD1J0?[	qss0AJy eU!F#㧓)l5I۩.L`-
0xv>s9۝HS
M.d,13[]8QN'R۵iW,@kh"Bj7ۯye`Z3[%<Y/e*gOҀrazx[ȼyEkD'GX EO 0#x[A*bC/CE4oxkk`iÍ\\ 8`7xkk`>A=brlIĜ̼|ɁbU" .lExiƛy66 ]9Wdx% a{0"-$⇓
NACRxL 
&dc	{0"-$),aÍ
_baWZxioyE&I&Ey)yiE?ډ"&Nۜ˟Ė]R<@R"_\30`q|FqWp2L߼YZ3)7~r$[qɉӥ6ڧ_Z12q6 +(hg
  *Hv	 x}\yTչ/tz_f}zf A@ƨbϝ˵o
j|DE'bT{eT$@ȫcww8wSo9;c?7c|1uVOb'm&.$UJ]-օbJrŊR*nU̝߽RV{VzVfUO2L|!(!}zVduCeJscB~80qiõ*bykUKCJ!Zq&hԊ)	@$<o?o>bϟ8ӕ|!wsr&V\i@WK2˫z^jx8iMS-=h"譛lsHݶ(#.);UCٽ͞}|6.rKp Q6CȑY991$`;g$<_1 vR1
k_k7nJJpW;9w]<?uuQL(^XvwP|;D .7PS\G<a!Άzҿ\ yonBVX_fN;aob")ra/	\=R/"&TYy3>[Tɨ:Ä0QNB4DQ.fz?՚r	{Zpghk0:\,	ʒtVszbf(3Oɶ(6ADvru*Y}CETY#sR"`Yʋ6D`fLzJ鿸Viq;3"accERYꖶKB>`#eY4>+G	x>ZtFpQN\˳,G  
N'
'-xTC⭃`c8YYˬ}Jf/ 1
٧dSjDt3":j3.6u&?u"󍮩eE67\hVjú
jѣ2I],+yajX|:#`7#Ĉ?gc*f*EN2q?(&$M皀76$AکMD#NA?FZ)巒M+<\l&-Fi($VЄ'bX<^XcֆTܺq r	J%	[hYN%R6+,Y)a@Zu4P-bTF6ɈMNr3QI\ޘ=&9$/xR~TྮܭֺP^WL.5-K"Rq 0
1T'WƤx%:UQ!%}lJ:Se)<֝nyd֔JvrK57խ	K/Z4/`OI=	?]BdZҨ:x'1t.dCN1j@߬glAYvLlY|e!$zAj97ijR*''ZfpYYtuTo#w,7fsRiu0rai@4L A5b#CMNV
 ѹ	X>6톭΍J\PZLwfnCRRAa@TxKk^Br٢@^\\v:Oi3ya70d^}a/t32ZhF,kN<a/=\!^	`CODJJ~
ޙQ\лXzV}G1DD>XЃ^páiAښkA[C0J$>W,*{#uS+EI|Q6,JE<{E	,I(W~[PǊmqbb͋r;+y;[Ӌ4cR#gRVE0!g3Z勿<ݗ}1|;dgYCՅlSo'ho0ձ%$JlkKoXXdrCq[K1XRyWPղ,a{&RN;g˜Tz!9Ֆ1a]-E1n`^e5QQ7F0iq^Թ\Nݘ, 1*J<F
hG1;88tL^҆uG4*p1 ]%n#L"g]	:2oG;``6O-wS<Ga̓M	NgEGg:뜎cJ4Z
ŮNjqJwa~66F1B.ev˗s|H^TUH^R5/v9R[Le>6~]Q?߹AcryGɫ:6x^mMC3?Zxv5\TkFZR.8j0/ǚ[YMѥ"J2wwP{V'h֍85O8k5VJ+ְRsfl>lJ75.}\sgY5^uTNv^wXE/sz%[L+)$D`0Jy<ߤ*!(@\Wཫ	+Gf\	+@j>Xv_mbYVl"_O1Ik5)x&1.Ş֦Y%prP&<:uPו\m6maAonćFZ(V3wN]+-u]Ղ\虢7u\iO:utk%cZkymC'Yk&ˢ^6T˶U//YZ;)maWהu074~}al׻(zARrF89\mf\l1.brخ|M
r&[\<E.#Jd{`{׹)+}xtiKxKrI犙[kxcXrf(%cnH,L5$ɔrXjz;LAʑ#c:ŀGOc2'(?rnJ82usVޜ=7\!f,I`K%Rg]*#K`w	┪ հsѰ;uHuSXNDRuy/$oKXZo>2,5w5zk
o[qAs.פ%]Uj|&Y l]Ώ֧RJd&~eYɎypUzm1X{%<y[1'SnO5rJj9Ёv{=nOʹV˙[X
y|I|hwt~vGâr[P ;AgCn8(<_oHnH@.'b$2zg0~N2NpgC6vaY溬ucK#IZ'1n|1n.54z^<6g	}[G6EЦ.xwS\4YZ@)WF}-<xLVbw%a]Q8~l8uW4Tmü	nsN)XZZƩ͑N$	ÇIQ>[J+Ɔ;?tw7x1Pu9t	RDc fC㴋Ԇ1q6T@kSxSD==8.pZRӼ#~4VC"Y⸛Dج8juBSc{e"GڴZsA{Њ$X0vvBA_(1%F ®Ȱh2^3nXvWKamIdU^t~8GA
>z(~R(ޡSܥΤjGc9eL꧘9{]d\^FW_0ZK.Y(^o[j^y(\NKrZdȓFGM{xB1RP͖V5]-o+bS-v8łFحԍed*z8׊凕ZҶbpɚ)?p@Sj|KTZ-3cf3Sf}-&&(rl"kfPAp(`x7wfD;S^T	'JNX^n3BgЏ.^8HOBc)hnPyb4yTmp')ת~3?D;=^Pjzꦘ\]=d81]ьtk8~f.f1ʡ|ͪHKg׍q՛G.'[s
)fZ.pל-&AhWOjJtEo٫;9탟^MuZ1"PedEpO<-f=hۇ}°xRvNT;G6rmL3G=#?chRNӐ1CܣbJᦸJ݆g[b]QݪQ?J@Z]{ӨhC|0xvA;ֆ1duc{YB!qN	&BAVǭfZHzVV+[#pp+vn>jBxvk0/4\~]!;
q{c{㒿WSaIYF+:.[KkК'(UvĶ l%ס)81!2VTsjSȜH+ۣGxG/#)3µR.[-+ m<4mqX8	i@ZH{A<ZYTSJ7q,Ď0!a0avRŐ!?@2b۶'wa܄7ع?_|Łl+lrn/q?y=DuA4wȱ`TpQ|ŗR'Y:aG1ݵ`׈&]!:=UM<tMpȸ	#˿4:QÁoخcpUnspY?k$8E}IЕM167irQ=,.ܮ'䭍9~}Cq-xqq<y͜6V.FjwwTж],_E,v@y+nQޱ]qHfۉm爩LC|Y#Ea!7A͊m)dJc)K32$:ɽ)>|>Kq#7> B_8gVTOrBҔaJ}8`ĀVfʊndFtX.nEc"ae)fF$ LcɗvʃJ2wLo?TыQΦOi>&_qKj+i(ܼ)[pgd>=:}m!}TUe.=QiVr>m#{ImRWq#gшg"':	7ō^nE'3k 	&BpI	;A=@څt|_D{ЉC\X9]t8ǣxj L8Gz:K#;17g|Cq?:D""LN"=y8	W8MVG7i|;9=#@zqj	jC|E2S{-FMC%cy'[¾1t?UoL3b0t&icnVNھ{.,8[byGbVr|O>>3ndO3[L6<tsa|ML^z2bp=%DP7|%_rl|J>WQ,/)׍oUJXU7_tНa=ZMkBq[YF>zE.i؜"ϳѶ7daM[3ս0>B=]τ^7AB(J3Qֺl&Rm^5.q~Ǽ}ٚf\4ٹx14G}8VoWD7"I|C
ɭt{zpO9/&wiǦ*q3@> Æ/(= 4l8m|j\Xk2~0{1?DܚOR*6sMHp)a	|{dZFw-g	Frӏ'`qi
MbaWM#yc1w5PjwF?AL*>J$r%!Z~kTV U~."V#Ms ?z.8<gv4w~Yᐐg!Wy6~(\qAO,4;+µ"xGN.4eb2OuCOIWr);CAx琍 p(A9f-mY.!t4ُT&|"8ǹl`r4_VndW_^~></=mL4)4crrrMtcq( O_!/5fg=W3fyGnX=Ln鱍Ac=pEږK(ؖ8WB|3/y	Nv30!LaC=8<_ټu8>fj-ۏD'FGt[;"okщ5"'3?0Y.=Gh{)><Nsb(}1K8*/'q8"">(!?ihWC/~U4FMt*;980E_3NZPT.9`O(?K̔*7N>;r3m_u:52
gǣr܁o#+7sqΟt7jh{tuŕ{iMoD>z=:"x׻r"4yEE^83>LSuq56!~|^"ƛ$2If<d^W0;r59Rf}'юU=!<r"AǓU&JJF7max_ⓋRKRRK'odOKɤV$g$楣	CsS3K2B|%PsJ'~A礖N(Ɛ|R$ RdcxoVr)@RZfQqI|f^IQ~JirjTpyrqI~J|XnWM KSx{.FƔwImd a!xktӆDyʂɌ
Ysʊ+s'7*m8YOz^e xR Ē̲xG'O%+jPȍ7D 
%$Ǘgt%E%9e9@is$Լ9T}F3k%,gL>SxB !A4 [7xQO0,bA"&&9!c+k.kn{۳fZ0n-<IQF"LYH\mdކ0pODȈ
^T`Bnc0`IH$&D&m(DDg}էxi@IFk[EhEMgٹoyOdgt5a⫐Mj`N]%oC",&\dT#u\ΖAOh:ڏ;xp9Z2jJA8b<bAo{ܾW]!?[Wed'z>2ݯk`ƀi '%)jxyB)cĲ}LeR V
x¶e#Lf6I Rsg)xmC13 xyB)cĲ}LeR UﵝxUo8Wˢ%vN]uJ[:zҩW8ī#;Vi9rcy_y/~(</ୈ%G	t|H0!~sJ"c8p<8ǃgA@EH61UD9ID!&xɹp"`Zr(/zm6zo&wקV6]NGJh~\=?P(O;WN>/TvfΟ4R~/J8]ԕMg(;xsV)|yYi!$$1H_{	+ª_NK.睞aBkM◐ =tgQ txǘ@ȴ⃦1>t\\^L6CT%^B}(6ތL,SrFTrc'IqU*cmd7+Pgi@jHp>8wu7$"eW6ƏI$I\hЄ?_@ogKn=	":<koe6Г˷90Liyy~0~BHkNw{d{!n*K!_*1kM ˗p{Vڳ~dW'\-tkgV<吇l	+jq{ݔb5ȫIK2M9'>QʓSV7SFUr5KPP:ئ(3~*̓фe!2!ܓ~aoMy1)~yU!6`76}.V|mu6υЖrxX`V>w(uf{hl Pq{kܬSE՜@FT;R~ڬ@x*Oh]FXL2s2
*K2RrrTCC]<j1lva {%Fx'tExkfBnJhHgP~Rf~AeIF~~Nfigh"bJ2R&sɘ+- ,"x'oB['10mfgܼ	 	Gx'oB['10mf} [Egx'tmB)cĪ'10 :Rkbxs9  (xJ@/gFxDOtI7ew(!!|ģ_aPiStN?3ˣ^e-*-R~F$0&o~R@*ԗh)8(x ˠPU2U*Eqy2n
F݂FN_\Cotoƪ둛61e]!ݺsu+Bܰ3g.	XhW7lj:0`nXcOc,L`A-ZN.B6iH8c55Qx[ǸqgJMׯ{ra 8ڵx]mo7_A8b4$@ۺH vzՊYbW=g.%K%.5`[y!9C=H'XNwr?>LJLL\q%BH"޾Kxੲ:;xI֌kUlJXWo\^͋,7h,LZdwѣxфJ
}㩨	jV4XyTU3c1ZR GHdU]5WĪ.__.~|w7'^<{Z1~${c9x J*aH1+n8_=g	&",Mf4ˈM D&	IT"o"?%VfBZ$Iwq^ >4yRJķqŤ9iN]S^! rˋZ,e-E	YF\QX.E³+̋;"cب8衄G5o7+x	tb~u:{s)fE"BVgl[L2Bh&ωS!aKdk?9, 	yUFNEQ*nn\qJ-Ê; E"Gv WO?xǶڌWFCI'`,a9>?<{ u]QtttV(zytw(ZEO9XK0PTP[Pc0za377ߊ\:0>"ETzut}sF_kMqP3W_hOaHXqLk؊E|::⪎dYe![ӭB!wTp(HYPNND)+/f5F Ӻ$*t&kنOH6XWSY#	A˛,[4+F~@Qqv0i`F<l~3/׹GN{Y
$$D\tr`_2wHN
~v2khqY˽(2O*7,r
<VlNjkQٟ5YHӼ~7<v~|0?@?惰WH!)SO6U2>6lԡh@F!	{`<ЙQ7j9k9KdLJtA9'@ͺth2:L&s鄽@vZHFSD:vsNM;1:.v#rS
&#F3I_Hӽ0rO~o`mm!Y^XR|mҿ$)&ZcMꐀvhbV<IC:3gR;ꁹs0zxhֿ;a8<?e[@M$0--.\=zM2
tQ]v;10h45,Og]H?	ĸDvtt _A@6׏^~G0Q7D
v1<y!|/IUeeAzE&{eF)ȍ$NWqFWyęLp^C8 Eᮽ]E?Н=YE<o#YpsAӶFl }Ƹ+ʏ6bБq uJN=(488wR
>JL7A[?ʥЬqpfqҺVik+ӡ<8].d%92&w0irqh;NՎ);ա=ןn'/gPFZ6y뾻Is	c͘! [ONW-id9Tku$6<
{
Uu	DfcwY0yM^o5Gz;V(oO]_hmuts۱Vцh|[4/WcQ拰AިeFken((۝Ԟv D_8pET6ʀ!XCKǡk2\cC_UD6A2ߵ9^[c	'Fj˩8قN@mieޡUΨ-[LD$uTXɳpu	9iW7@qO/^j<)L:\_cF9)zzs&>L)Nj1A9=N͝HsM]4;b*?-i1CGVgM"lOcǿ]Ŀ4hKRH6KMhĵ1'\>6SP2^@AU-&щ@I:P}Fw׎AaptqT1f yoOݵxH=	3h!0,RZ_28rt	'8?&v+xHUۮaZms}qJdw WLai~\\v/_xjͭ}ۇ7gFnMT,KmHgx1,u$a%6|ITӡ'ȅp8f/՜,n0ɽ8i{,7^
.SF^yq+#O$RqBWvPKqU{@P t.p^BҡWw_]׼$u+lY-Ӫkm9,MR9cq'P4*y*^jJk]xB9f(,1o2WثbUyth?G2%c( !h"ñh`㻠nO;h[RA`eQ^vJ/͍
HϖT7yB4X}|B_@c	8W]\S`CFnWRPc0JZlWJ?ǣ~)iCF5pP)jgl؏YmBx!I3g"I][~N%o1PJ@BxlxNyRwT՞e4B祍ggbLU&?;^)<H~HP͊k2<GC|@xv49ScZaH|CŃx uUWMBW~L\N2zÛ7;k\XX/"QGj1U	
#	Y\K{DDE
'1jI@[;Jb^l+
ŕ0ՃO˛~eaDSo8<ϭHn	u6T5DN}ϫzVw<gەQ=0]N<{(z!JgOG`?eM7fvz
7Ɓ{j(
O$;6hD0aA(#OQJ}=
iWZcvonH~f 
 CMp	3S6MWIJc;E@o8y`x;K[PGloQU~P[Vf+HϘN7ɥ4nlpVGq)քM?:4Q*Znl=\N!PAX,,ʉx}wyՉ Mf=|`_WL&ta[u6e"mPyLfHj(FBt#RnS&q˅B,RJ:,l(IS0KҠham:۱<ku$P!H;)#.שS>7FmÕ$i-ir.Q[@Bv2qzʔt~1]+Gf t0<iڄ/.M]p2VDKE'
A/LISJ:or>ù7C˦<_P+yQ.qh:O`/ŁNm5}
@@>yw +47IGo/2Ű/בҡmzU~g7S^	x݋
d	'Z_DFq> RC#5fTZpdk3KZ(~0p@ vX{eěl92sQ:
`VSuCń^Z%
5(0>JR\3ۖ`T,&Y
BeGז:1<a`n=>
;?9r@tx9hK1C
@8kWJ|#{^tOuWt7[b{{c
w[11 K53k\>-ԨR=ЙU;j,RΏ,S-)=zoop|!(r8=!0ϙ KƭX<5~/ޅ\{AwG]=UuHP|5(7L;iMiNiK>H>B9}8c!Ǘ+2Y	_NNv1\
5˶w)VH[ۡɜ_lK
DO2*,n|-@$!!NhUdIL&5|xG	^L{̚t{*BDR߼饂V79{4AQ)5 ;3_{_n
xk}qf[&< -d#xV_oGE?Љ#۸vH*(_!.l'rY߭%n/U!?%>T}+J}-T >VRǪwc'@%7_/5S0aִ6T9DLMN])9T
,r-)Qb8TШJ!m_RaSIJHk*"!5Ҁarp ́2)MZYtF_g9jx<@'NQSGU-UέT^'Ǹ4JJubv6+dE-C6}2C.5XJ%%䪓:6Mquf8f׉M%n˻Ț>ISG-Dt![HH;Jt`)Kl1<swV67 9CGtӲeȓ|RT&r,2S18
Amc5ȕu&qtVcpOY{R8+LVrsiIUIf\zUb&?r+[,HijFqe}X{S|v1ܡÞxPuW2FFb1)mbP(w6\&/V{ΞC_4'rFK_ǘ(FU].`T*j_i8.mvU%CYPp+5jⷕ?$BЗgzߧߌ&⏕QSaBk㺰V(CfJl[#<>sA1tv(&Jl>mG&n%AC9z뱨DBl͜XiWzzDwK	7xIٮ8,XWJ8xrnzK],HaJݴ0|pnM! YC~e"qDXe`MkI$TMs}D\]#CJ,o;G4osr\b2GtP_o\
\kC+FK]5)f[gZqc@H40b	0][ccpSHKJz]cWtӡB6㍺5{GO^{voE)=_+g{_.f	[PުkE^7p^Q2ՎJMMG}rV`:P`ȫ`&g.ỺXD?#\W_=@^\^1NknL r|#i%T;az&+.hr\
ug:$~LNlAf[ia"<r2*Uy.d7&F: _NY8ӑ}c6qU	z>
b=GgO1s⃫95~ܫ 	DdIw?n[`?_\@#^ono^SO~H%o| 2H*,xX[s.gm$x_`mM6ZPbBɲi<0b`)ʵy^@S^R{[^RTe@*9gF#;~ܧ9}_o/vjU*Y.ҝ@Tu. ϭwJ_*HxA05	kB._&sUTFtVGcD9PSTݲnT_Ls7#}dGU)/U/kNuPmPR,ܓ,t6qfjeESŬ
+k	}g|$P@.ť
pi{p jX+IJV);K[Y-mc3JI0혺LjvףRNZVn)Lo4-(b@t鶢9$SbT*NMVS-egoI{0Lے3--^&W/BThuL[j|󷪚Rpl`73%tpêYfg"׳mAkv`2۬ep0 _JLtd~qy7!Sb2_rdlr~m~u$)]<_Y*%_/WG`eCP3e5I\!rinrD4,p,UI_U
%Tvhjg[wTv֑artk5]Hs%ckX	NQj2 ̕
`Jzu>23"Xpp4ⲽĆNqLFҞ܁C> BAۈ6E۾H{X̧.C)eH"Ad|WP?9Qb{zj-|v!\	RX_UΉ*@R\&ҽY.B*V}jvˋAWw}l5Sᐊ
cWt=mPͽEkI+'zק-&ۂ*߶$F![$og*8Vݮ	RX]XHqY|a$USuGӨc)579]j[2WLwe':7満ݒd^I޷VЍS{8dU>,\qr5[E(R"
_Wb`GT(^l3^ڃ$IBKtPS8[%;b+e'L0GOxsEa='xQי̇'_dȂC,2{ӨXjXQ'^p7Df4;d[|+r6*TU>5חc1A!p2v	DF<͞b4s4ՑQa0 5FOq
eu	e6`{	}?'6x4Ux{ڵ9Ze&A@wT7E&q&oCf(L;-/v	uq,&4UX|x&gbJh0!|poΞ_DDlWAGEo
<ο/}S߭e_sP'Lٛ	RWt(b>:R,Nna>RaOq3VaOq	BBl=c7֠QSIۑ {|"AxnB4h}B<rW<_?<ʿK%DyTsGoM[dЍ-7hU#Z oeeơX#:ƹI<gg鹏=yVf+ ڽ&au0 iYc4ax테}jbdiLG@LV7EMςjHfeP{ћ8mūHm҄i#mXCasaDvA">EL0i17hs#$y_}l/	k@MH<N#R<ꭕ*08''º.u@gԭtKJ0uV!׮~÷1ȃ	F̨\шSdB$2c}l\ ۊi/͆s^!*KB@":y]' omrz{RrT[:L]c=0}pӎ9ɪ4Xϒ}M7CEzrn1=fv`HRj>O1ENh͞TE q5/<ʞFuH~iB/
+Ci?Q|t̲cmVb_|ixVKsE.~`ŉqȫ:2!@6--;kG@ݑ4jv+.*\	-	NT\*?ʖ8_?~xK sj͇0vofz-c&d.5yf2\STD4H*=;:݃}<$܃
s|X
~(i،Hm"J'PV5wfrF-ͬVsVr\A/GّךŔ:ʠۨբ]Uo+\T3A]hL.-f(sD`ᨀDZ)KZ)X6Z6b^/kanEڊ뛰`X3:JurUO.b7
UCQ^&'2ڻ8̭sO
Mc:2ufvLXlWp+k|^I%MhzP\q,i咲j(k>c{>ޚZ/KHh!䣾Iumع؆u[dkMFÕUr@64H^('屗M>Ϣ=bt d0i2\ub7bt.|PBRa:/.ȃkr|<<(V?l}??= <~w^	==uc
E$y0텎S$LbTqJ R]in5%Go(jxeuHOL$C/'m*Fg2!}2G^8G8JRMi4\
ǽWJ<kIȐ(TL/\q"'\_aH~/nIg}R\daǩ筮y:vJ>E1(.MMyxV|?Fs!vʕ7ĈJM!ijɨC?i{Vs$ęOp[]b$]cw싣ĠME&GߺBUGlYQxw-_7;],cn
h={+ b5~vƽnZtj*I6uA,ٵ/T:&UnSx($c0y 1/cK97ON5Ϯh>X!ywl&>OXȥ.sD+xkjCtCRQfjsQjbIBIFBbQBQi^IfnPXQAbQbBj^g^Jf2Pi1ZlfQ~^nj^XSqf^r?AL:Z#/ 3EOӚ=.%ETu/)@\'J  f%PxUJ1OAR('?'/""^4;ۤn%wo #"IvN|`eY28A%r_Ƃ
ph?\]_p+7LdFE)km\FOð4FCʁJ	5a
$2.+x(\NÄP{S͵͹t#I1KWE`*:lGbZ4GY/Xו`V`<M[1.1.Tĺyj7* cAŅumV(FppF`;0nGxr<7_k}d)wbkmeL{׼Fa_XH)xN0,D@7ҊJltĄBUsi,>vΚ'xfނw	V"$>;y~yWX!1,.a!@@P)Rg@:cBEv@GuHA_>[a$+I;=QqmR
;+e؉,,!HM+F,o)SR0Jnq:'sGV(],)Ԟ=i(4U܍ã7L~89LwA炻ÿvj$ް$Gz	OAxo{aC\CRQfjsQjbIBIFBbQBQi^IfnPXQAbQbBj^g^Jf2Pi1ZlfQ~^nj^XSqf^r?YPXnr${=PG<TF^bAf<PH5\RK+(^W)@\'  gA&xQ;N1WUh١# Hi!٬%[!\r	@W JhG},g#-n,<I`M%@ #gY#i!`锒:Te$$66aT7ZtCE6J4{!ZTܢIEwNh&X9eB5glF-VZ`K&:Zc:^zdY;0A\2~^8No%OxSMjA^53lW2fA& $pVw)]TUG
R<^@U"n^}}՗k"܀PqL>&\E!JTrX('0p%E3 l=Cy1"FA&-XءJT0u0݇H
mT )Dd]pbfzВ0Gc/;''4iP`U鸘=!Z?UL)er1#mmvP̰	授YFBS)FI"j,09ȕQV)"]ɦ0d!^d!*ҵuRYz2*P\Vbԑ9y>tP(G@	wب"
Nt*ff.c
St}D^-Ob
ݶA,-
i}k~AbgZB5EOɼF!֚kl%o(hPP9YczhpUqt}!_tyC/>%x߾]mOV6bhbB4Vx4/h?r߯"wZ4^êRD&ڐӯ\v1$,ܩw\K}&qmy\<r!ig7~dSx[ݬUtFYĔҜɋE&&  T,xkY,63$6/|:YIf?P7Ed'eS(LRHI,IԴGnYJ֓X's,/ZĮ:Y]K!(*qM	%Nyd'qO4g˹8'/6pOd)ֵQ(.4Y@P̟v?7d]ɟ@,wmBJɂ
լt,񢧐$Pd^E} *7a(pxAJ1W:R.*(\u(\	nw
Z!<:i2&ouC=xo =:n{Skz|٘t:pfy^RRI<I0#TCV6Jg]8-Fpc##ՠepcU^(k i(*ć6켕74hݬ'
@Anu^<[̽mnvk@TQwٶ{T'W։gS7bjb˚;V>bP$UEčKyu.MBx[`d/w}IeAjJjBY~fV^bAf|^bIfYj|Rf^Jf^z|JjIbrF|rbNNRbrXQj^@B'e&32J4`%攦l
@*B&?,ųgr	|r~jQrj|I> z'r:L`|u=60*@P' uaӁ/Pl&H i~xXo7>Th@ Eih H	HBƷ3goބw{׷"x-]\tT/>/ߝ߽ֵQTFT;*t(;Ɗ2;coi@v
f\ꌴ&WI*:VSkY2V+dhsw|</`p~j{nsU]=UUÉWéUcmOú_"t9	Uev+o/OWw>~{xgDJAlPxʦ_G[1 /?匃:Ь.H
[?y9֥cn2 !:||^q%'WhMFVZ(s-nxҵ,zZIWfJ%\fӾpr$TuS]e~,ЦÊt!Wud	G	8e9BA6xǋzNtr[a[UUfM'ꓽ>8TE]TԉJ=ϵL\Z׸rCQy'i2dZݧșƋ;t۴qdܭp..s:lᚏ;+?9*x"WH.wtx}W^J{T7,J'N WצFi/V:kFYw{Zܺ"Dm<lvfQ&n6t%՜i2}-4:VuDWA-?]CHEc2ҙg`'{6txu-)
2m>Ѹ>B(>}Fq ,J+Az쎃:1籔n*6bg	m 欗Fo.ʓn<Ρ`yWbm5bJLQD!u*k&j2de)EPk7>(i6ĩ5XǄ,%+_x|sp40n
̛bYQ6e.r0fP`Vʣ3֊	4ВxQS1]<8LM2?^S8'N!̅)dAPqO8@E`.S#«@a`"	~3\V92֓a
+2g&Yץx 6z;L!sAuXAB7cD;Q*-Kg9W"ڥ/F@^&<@	4C\0z(/.(5:$6oNk~ʄv9(M."4*-J{pbޗM/fG!ޟsfSs|u8 _|<]cKkS؝%dNm$wsZ
LQ?RK*W∻<ݔoՈS?)["R+력HnXA r*^:_Cϊ}1`UMFY+o}0\W o6VV9/@;k2s6+WqLr7~ޥ҇iǫώZCLWK8"^7ʲb2b&dC@\>pUbxƉ{XttLxCr&Ԥ9Z_(͔Dd/2̻nkщ[Ã[{GiC?t~{H4&_i>ddc#TR?eAex_yC$I\z@,1Y[aq7; mNxOy79'Obɒ

$,xJiBi^iqjW i3gxUMk@W%1h!ℸzƫQ<+jBn,˕7.+hޛDq84nϘLI&-ʢ#Ucuq$-[W{@UQY.I*S1tN]>Bey1^xE(0}/nn=$rE͔Ys/i#;[f;\^(<#735L_@Z%GzdcbdYѡc2x] O4\?YmC:SE:"̦*?inc9oa{%A/h?VP¢wez6vS_k7N޾AZ:!Z*"TA=J%0pmV}[WcY`_aaK/FGyGy`{ޅS[3&x}{s8ɧfT63)dD-)޺-,ip~ 	zfj$F MǷGkVOov Bپ첇ǃ`WWWreuw|mǕeYjet|iPʲn?)cK^Cd-wijm| 6|bm:[?XsGiY >bs|JׇVVzxLw	)'TH++[[L9]?{ ݯ(	%W; M~6l	mwlZd ~5(y}}

d\OѠ-TUqkP[STlC-?_ f|m߬l?H/N }~yNQ17 5Ȗ4!w)Q_BvPC:c١zSk\V&nXab&z&Om8 bw4fE=}~G'+:$
AÑ7ouAQ40 IAػ_n8'PpzkxzӁ[i< ΣpԋAE0M	GG+߬h+)hG@1h-:  Ձy7~|w1j"`#$ӺOVMhEI~'NT6L87^JzAEGfU/$$w %۷d"]Zj8{S헏gu`!}~g%Hcag|G7l}
]h %Cl07`dJArv*V]ϒ;,ubLobHW Ȩ+EP>30Y4FT1
Qk|3;tb
Q*2=?zDZLG<CpG4AAڇ݅z
d&'ZB">?b3勦 |GLSx[0̱%N;o8QZw/Aӹn^zu<|3oNk.kX)rÉwOp;<;l̀ӜwE.]nvh#aeR9rJDؠ,_Ʉ8wdl9:("M!`t\f?`,vLX,'heD,U66~,iXӤ8?
>ңsFPR<oW=-L0OIqflm=)&5Uwg(HJ`M'(q51sxӯy"\vfJk ,]-8y- 
?UrH}')`BS $f*;bA+Er"Ê:ʐٯ-Y6sEx੷;`hHBvYV
,|w؍<ebEY1Zf0. 1tF]l|u;ih蹃$x⯓x~|c#phXhl(&a(	bVip45	!RI yFMx)[
J$2EjT# :hzl4Dј9!7N]ftdAZH1&z2u}B%)]J|GM;?,wj$:[oeBj(@AHMA+l~]@4 (~(neUQfI׀Bۘż}t$q
Q2^>\E KXe$^"̫Sѕ{Y#U%_"B%"#.FN%iÊ{Ovj)TU-gxwʚ.C~qzd~p\G)PdkM :yjSfO"~F!.dsd^@'^%sb_J
PAB2La|lu6|2u6ԕ2	[2^s8]g}inдS,Fb740gf8fh 
{nŀvI:'l "L>FElNQ`P\'}ArEd )ázyaMPoI$[B Nb[Q*za,9ZHvjBX#ޝZd6ǅhiTPi/脌z$@IDyS(DcEZ 5 I S&"$ej>5h8ٺ&`W5tTKttrd42z3GMrãuw\.ӝ"(A5;	#Ir`?`$YF&׏Sd^}&;u%&͙~0l^yz7d{0ӽAƳw0̣zӑjiԡa@#^1ohDbUR'$QnLk6f39hMFkh-FkhmFkhFh&u~2&`R
!pCt;J&.lpM]@YLnp'#PZnYM~MtʨR$ha$|Q]n
k,ex#eaaҴ
9BTfǇ\]PDޖp6MLA "N`MNOvdnG3g%Zݶ
0/Y\f<~4tE1	x0؍a0a6
+^{0ܯ:0; wWT\`8z@z@Zz@ڨ19,}:i2_0@WyPL2cڕ@<(?i]6r(ҝ#aMG@zi8L8IR׈家s5n8m{=QS !3`T ɑfIfΓ}.o  n_?$$(3i".qP +>MKF"\[e#7SFjԅQe4]nAᩉ/0T=YY1<.401^.WjqP&Φ@eeT!|@R
@RG8$-Bs G
q 7F@r-x%!$ac"yq"eӁ-$uM23YwilR(k]dh 4K4B-l>5nPcR`8*@4nkV`3id5wr,u1mpފ[+vv֕;GL
qtu!Nbʹ۪bkvNjQ8BG>E(BјVQ`9F)#0H6L(ҪH-4a+E8`H 
8tz't}1v^8:"a("꓏a(NV'/x̄p|!\tI]	uhuFS.u(P,EoA?[tSB8"hKdwsP%N.H]$H¾ƿ`%D.sQi"ɫh8eJY..;_)$\pRW!59IrB5FʅA䣂4।!"IM1`wT'"T%[D}ִz⎷tYQO MT rȈ8 b4ͺ􏫞U,R+d$#gD5!|jG_VEMBTv3<h~g#0=h3:}UP 0;$E7y>`x3;ȳj	r'@M5ro@(qk8w2.\C!*Qk<rd[9
lLFZ@.2~	ڐUt_{֬s+ĎSR8qC9!-SR.2V	ᡃU	TjAczQRu+1RåbMΑYzdgF+=!:t;zP4]I,	CY TR]+I%mˏcW26L(G 3.Ke.d((*C
U\99fS`P`ؤvE$1VECƎʮJGVeWU)PeWU
쪪T]U*QUUU騪쪪j7rp$yD$ÇV番W		vCY]&)KZR/!{K1I7P19]WոAG@8k@ڜ. fY`*ǔsYrՃʱ(Dgfgm~/L0ҺK<HB(ǳqG kF`ìڞ3  M2&۷< @1rsYvoTr7tޖyVQ.~HK]*.oT$~nK0 d&G=r`l c "YV	m=09/nNK=xU3dt^
 jJ5OAZ YpU	6ѐJ,	&Y/s8QNI~(FSR¶gFy N.րym#ʵ뵊`}|HAJ=(Q4ŢѾ1N?]j=q<[0"6  A6='-tv6 W$ȄB:b8svV&p>p=VamuAMSȃж"x7-*[}*<XZV9@m<h2IM(L8ϳ=2GZbF@:YI5t/"Uo V0<CNT'$=G\96NPꑨ%B9P"/~CQN	ʙ:@}̊'~tr?&Lթ;ǀ>\ɒpH]Fw9-.5/w|9=d{(w䳃
8Uw#ʏ|EFR]>4fAGF+kei!Vz1";dP"Ъ f2J1rtea0oTVxu4.JCݐ5SJ޴ s>2X[3S|O;AQ*P rlpJT&v5@ee<4P߰SYDuC:=#x%sR>jSƥZ<vFD61

b1t;b=аm,7y9ff1a f~Ϛt @ڻ޺'HSK:J-`pw[n>rh80'vQZuvI`OKr	xEu0ʡ^Z.jȬT0UzQBA'[2=\iɬ'Z{='$C~s%W~)6#Rd+$HJbϐ#j$Wi(̵1-?fğ	^&9oԋO$Y hB
<&@omI:]q2]4
>9KMq.K%a.\/-ryuo}Ymv9zٷ]wc*|`*ub|"CZEP#hrm	ʚBm߫xe)Ў`6O/r-RW>eeJv^tE#;+o|_+%l]p5;ܬn+] x&d!Z.7Kp3cތf{쬏#T慃C[ѳߍ
=saiُ#ȇ]̀}L&ێd}#7}L?T
2
&Di	~-+ۗyoykYUp]dS%!^%7>N]ϟv?WG6CÌMzrۢp}HҝU"b'ԛY=&VV*#{ |H:3JP|Rr"F:x\ȸ~`U)|3xopu4Vvᐟݲ|xKtJQE^,JC*ȷ2ϞO%ET̼.P) +P?W֞5YTQvw=7U3+2y*]^	2_
m͓ Wأ'GWuy}S^ߘ,ߣYQT_*a+2Cmc"\ ^}nV\d}*sx\N[g`sxs=+!׋e2㚗ܿթ|%$AS$Auh$i'C,^&::D8
|0W!EܥB!l*-U?]3RG`+7_鄖f{,䨆+t_yc)|?gkk*7u6=)e-%lgP
w$
rK6_=	Q_Dzxr_4"|^-YZ;	2E&|5?~7PxίMFsn`R,IP7*yZۚybZ'uZZUض)WMq5r,u.֢_Xւ;XkqZp k˝&U3G:kuT5꫖Qն:t'}Y5-XD5u{5Tj񎟰ܛF-qc5h|/4^C%{DϹ#+c[s[ow$UI4&|chƈ`nUjf	+1B|#6Fc1Mp;?P1c;LjѼGyTz[ZαUfefq	Vn˫2zqF"  Pnu8m߬jj8acŬjnda0:{XJi5_9M{tARoE&.2_\or*wMME<26YSc7f/c5eczuRJz86'}i $l1޿<JKH̽xgRҬ,oʉmSyXn6W<	5YtьFu镔OH3MkUk4X0Sߍhv3CrSԍrqjkGr8M!Njc.𧶱
ݓxBt7nٟvVǋp\<O9c_nY9sxct3<lxO8	#FUM"ZDQuݤ0Nng@0t Y{Blv2%ipDS*`*|[g̑^ɐ{|	BU2G-{3fG~w43;s46#0?Uk+gAC4$p?${<'	@ύa cuJObvBxUq{(#LA.Tz˹:]Ss^t{6x>n@aC4O`&0gO):e=7uE(Gs[`iN"OڭsPZ8y kL?r<)|be8/~Kٔyw,f3hfϥ5o[pjJykYuK}u{-FcQJyU,ܾ9?y`q
g8C?ʑ).`g4&s)cB1%7h51yORz AݝFxzOPc,௔y0V0/4r>Yjcv#]筞n 0VEISm\
Ѩnv V@dNXa楟6°zA_+K+9wEt@'MMY(kBG%W {˿Kf
%&i]ImK6+o ]/E
	W.-يu?oOU/ ӵp!9$Y9bv*v7Uq3IK˹"i!_U(i!f3= cZzp3Ը08LNN.dglP
vҔo=C2v[ĝ1=pA+P#x_zV:RuFz@ЕVKjUYY8՜Q:c?|?z		ۯ^FC,.ޜ/yt#Hg_'[%3z.Mp @btO(a0Cؔvf:j9,}NAn%I-ݱ6>[ݓr?ޤI^\yxw	[;1q3)<.s __^.:c,qs/ɲXp%dXFZ8k^JP<:OщZ:E5AUWnFI$viN$ldm|3[|t.7wIGGmZY,J?˥'.+Bmy01݉cn!4$3+1f<ݾ88ǲy!/hZ&ܴ|:a#bGq,>"vlϴ򓛬{.`Dch]+F1bF@@5My(͠]AjKsO6mlgwUG[%GOjy!7ъަ sJZk6,8/fzatq7{\$-!lyiOw&iapduvIX|f`.cotp7I/M<wFEDW~w;&,MҶ#]m~ >Aop=x*,WMzE (sۏ٫䷱I[?
|YCrtqB6;zhr_ڞuf7ج
L[%HZƕ R?6[&MoGrPӋB :mqsΒz" nO'?1B2$%tW#4RQh6+T0]7	f&P񈕈^hrM>Qѵr(l#fOojη>
kvǆVVaur 1|_v[8CϼO!:DQlE|L.fӧޭ#9YM{ѻ)!ncwԎ R_A{j	OqM3:nyn'z;PlGј|M5Y%}hyX駵g
RMP8s<O?Xgx.8?KzS:|N928Jd];S`ZU8R}
ܻ02}O;=cUtUz_WyD P<˂[yþzoV<PV5'v붨&=BuC4/S{,D,22XF:Ke-Iza=e׬`Gے%8J4h0H.1Cw_y̣JeAZjhdTNtQ]
E0"T|E~#Ena#@zE@dJ"/B
ݑ'`䛈)zަoQqD2P5:laC1Fh{M"h/86
,lcʾ(Fe_͚}n4-R-+Ȧyhb/cA)U
;)Xvs1\'l$ҶeBdP1"ĉښ9;_j]1z-=FCBҺrhj.ǫE[Cjyv/MWpDx/0Dnw4BŜ#9DBRfORN\=N91P,xzl~$XizᎣrM(ܘ4Ұ?2uk+vѸP9H]ԛٻQ>am[!&@@"`7/,o4UV$_\:@i$Iwvտ5lOlOyZb~(!:P3=&#>הgSQ|+ZJ)r}8V~z5YC[g<T3Ou'LPOVvWz~<+P1X<CODz?)CODq±Ibp->[_fPTmUK%إ{JrIKuBLV,o{Jsg0[?:Bȼnkk-KiRdf3,xMˠղ&3Өy:BVC&t1,Pczr1K=7qR9M5
ɓSH꩸qݸ~׮;_cPzURDZpʣjh)dn;I
A`/6w{4_E.˿5ɵUmG:dk[>A)-Oe3.aTGCm2.wŨ-ͨmèQ/4KFPJ,]f͵Ktɔ6ח#slTk͔:fZu=0v|]_;Lk5_ӚniõokMך5]7tZ&M@Q"{rHzFitN΁x.{De1m+G[AC+Ayͼi7A:cx"-|%pr(\g\gX΂5)\>MR|vU`LD]$<mqّË8H`=

@*h
h@zߥͯXtj&XdDH qiEhM"KZ
:%S.Mϟ+uu1&a<J~8 A$KRWA6CY!0N{ BePݫ:f7`Jv2`8'd@W2hסo7{f쇺QA<	[vG1Οm=VN3@Ȏ3w`/ ONm}` [\J[~ 4D< vH m:$ĕ	!W4f5\54)W!"
ruF\i Rs,wPX.)8@MۣrqXY9O$.8&f/̐8	i_־Ѥ)h:='[uѧ&!/y|\6o+ʓB02ݘb'	zڶ*gE9r-wœ'][f޽drC?Ej+)ϋYM6ޓm Z#yu}(?҃aj*Ne6`o~#&{!7yzbny5Wԑh_,+%nk>*,jYeu;9FF?XXG^(jM3#zV{lV#PG3f0:rF[ب:U^[#YMUt:ц[m#9^4!
-7Yri,swUz &IP@<;<'(LH Cnq-}fv2ST=4XKV(5|_Gg6 }N?9rRS*Y$?$$eQ2>AIz~tmt#52-PL@eoK?Д'+O{'	M(	MT(	Mڔ(	M()Ɏ)ϑ4)ϔd)Q/%")S"B5%"S"B;%"S"BA%"IT"BG%"T"BM%"	U"BS%"iU"BY%"JAF$Y	@ȯfk*ĨŲ9gژR+]s)neZٜGDxlk͹ID7ܜrk9,jYNe	qs42XƜ)6!c47<1hF45B!xh4G14z>l(4}Nmfbۼk{՜t[Lٟφ['ذ6МkbÓx}V((m?F񦐥nD+u0UF5%pvrTmR"%_aX-0l;&VpYX'SiʺߟbŎ:A7
S2f=uIv4sq^bz/TlWVujYu8ujICuwuj)cuؐuj5L?Cٞi{swO*}g=se.}?gzN~-_Xs>?~lY1}'~"g`X6O|~LO')?Y v$Awo5.`!<<7(զ|㚈ا}j51fg3mQ) qg@lA_~6w*=lqAѢ˃g$y!.X.f@Rn6j0LDvnl[4-zD<构3}׋YJnѝ"Ļ(\,n/%OIW%@/w?]} @gK}$9yR`dt 0%p1*LS V>%ٯDLJ%%lXchfMD+@aT9^rf"r<mZ*
:JVN&R	=ᅭ(t5ը"''Yeevu?ndgqM﹤xܽysH/}
gozIf$A
S ~KD(Sᑕٻ~#<@(PʷG~?7b>&MiI_/Og1m.[]?SY~颽}[}vjƿv1^mlzo~;_zJ7_e9W.~2_|KtwAt8ˋ ^C\|)p_Lүa_AnG]|Owvs}RGlwt{xYL\,6KixL/G@_Wo}ھKuW&d"P]c96~#Ƀ|~葯sO<cWJTHQ8|@r@FԂ?6O2\m?5"I,~Ȩ/'듿x`ZHqG_hģ!QҠQknJ|۽(E/׼v׿]|]nZvAuqX=֫O{j{~E.eu8_nE^j~I
a .2!\.Wjپ,O7:*>٥/My ֪3UaQgzFOp!SqSk( M&hX hx8߰"]o Dl[{FG,3 B0ۿϓ<=2p]耖owQܻ"\+ t "Ja%@W*dơw8:<!H7Ar\= z^ 4l}9_Wv&  p:P P]H\:*ҵ]c p#Z=vj
 tjKGh@攄^Ӹ-v	 _K3hx>ͣN/$zŴu@fHEQ hRDdF:m} ҨF|<-M|~Z -9I<}Cүy8q$a?&1 n#$Ja?GATWt4Fɨ?'kQ֮|	EVW%/$$CR2ڴ2 !VhCA;~t!}Z^bq6:3`nB?_^?_.^/qEbw*>WHWdyt E9LYg.Q]Yk
)u=]g/dѸXUPHjyV~Kx_ϔv;έ e(G)L2k-ϏOkbVYhpgy~7*8J~c{(HNiN_ȦrF%?ה~u57 9>(ïxa	|*|XyfIsĮ!R6oE|86@ 6@4m&. mkpc [k8CS [M lyZ745 i ` CS M l_745t`hj `nhj `nhj `!t;X,-C`iKKwXZXl-Xl-а42
wY'dG6l3u+o9[߅t*w.5#m(%@XC YKMпa)!P[A{֢.e5r 6jg|بQ Q/T VQP Q %+ jr% ҨƓ(I)_3 i8ҕ]< &pbhV
QpPE
Yt83|p	BZI'6`OjIaf̆484#y%0		Јٞ3!2_
@5HFZ@ 
aN.q 3Isa~ CrAA#6Xa,rYvuyqu Lh*Пa8lG* t^ h E2u  7:fd8 62@`Udh6iG5[uXH2`" H61ԇS5Qm	 u`& Hx! pdܢ"Y R-`G
^ ~Mƣ~85]// FЌ4LL e@tf( 댦Scv lSb2Nexf3HI<v.6twpZ, (0â|as׫=)Vً(׻S(W-i/]CN~YiyxzB="%sU.uz<WTXmT?}/Gk"%:dDCBJ|ICBF*FٹHPHE3f%=v%Jzm\Z<,k^A`+<J97J(qXRsS2A%x,)YtyUYy%KqoU졤g@XUu(Vtf>4IiʗHuRn;iV$B&ViNFٸdNl|G&w]ߧK72 8S'q""Yq»r.]/=o1yJ7q}XP{KD}i7x!l5xQ0#,|(,/Y|%Cgo^R0K",h<(6mQ.^*Ӝ9aŋXUJH4xF6Ɇ/bU)VWʔdËnUphX5O6dxѭJbbS>6KlbQj6Kh"]6Klhbuonٿn`qح~<;wo߭~=a%9?ףZhؙw)!Cݮk9L-@s0Xp%vn%w~Gv(G !i.zi W@#@ W LFiȮomԙPbW)9VLr鬶`pD
Њ'KX2@w6lKp|2ԃ+ u@'nrAv:z aW R9@zsCyY3B7/%GB @vWM&{' 4,e'aN$IT
 N &8P8ORd6* `DѰQ@	 }:y ݀^+ n@^ 8J-;qCY\qyᣆN	N_%$L2`]oH}k` كzC, PFZ B wQ2ZS'g2Dt! hi 3 M
*@ؑIA؏Y\nx:lwd9jOpm~?z*)>yۋz0#Ipn'&'cmADtuxI-bp#*Q;dʱATn'u+6IfL0d|Eo=~[H7cЪَ>*ƙqF)A6(hlҋ]
_.M7込V=2Zp![.&?APcUU`.){e'iRb1΋(TA% d
ѢЙ}(v{vuYGROlǓ}VQjǓ~WGh0xգx}@ctN
0JHrhV"T	
XuQM%8yLIӤ ?J|hs,c	ޮ7H%HQNTⱄD'l8 WnS-|'iS\%[t7OIJdvjŷmqr6dϮ-^j+V׋Q y{n糾u vٺ:U;r̖0'mQ)zlo][G;.n?"u-smI]Yyn'}GS/Զяwt*Km=i~G~6Гwlݗyo|¨m3doҲsbKٸes"ˌln͜(_-Y簆i04r9]H[''nX"9ikT𖭐v_͈m_Mtv,|Qwd^=>w69o&D<0Nqy-gY+ R	6Fm4F9F pqDɬŮ	0ø_+O:M@ 4L(*  j4B}&qH9|4#퐉ՒZ>OidF V (3 D0l	$1l m ) ٫eJJ1#nS8@n haȁ4nEj" H*W0f p2d 8C-+aIk:C'&j g R?Z$b <0=ضRTn?Y gLꬨgzg9geCU mx%(5 pIa ^d&5{Mjp[XzPW ƀ Dr	7 t^EL	-VKN"l!Tq+ziEx(#,aHƅESB`hO̇yY״}Δ/p)#QM(Cvih7k0^_|uGrZ6lwD	0o5syc
)lh%]F_j΄M^XJߎn-!_]N)&Fh"PD~~]m򯍓6Kj{䪦F(%&GţjlmJHؔz1zUGvuP6ۨoeI`3XE-4ۼȸrdEUK)8SB`
~ؑɆ]ґ/ahHsc  5ϣ( Po>k aKl-B_7@dFI\Z Bb (fh؎I{ЄV̀0bF d;p@3p2QpX7 \ X7 \ X? \ X?  X?  X?   - @  25  HSS@f M	45  ij 4L дƪ ICrh)fUa?|Q-)܅xʱVCH˹ih
"Mk5oՄ| Z!B0qXmx&"4T,ԇ@r"VOqJ1:)NPGxS H-q@X).Gf8@v=+`) 19qlK̉c[pjiXZ,--3ɼnL\պDrNP Cu)+$*-tgP`s
9KwE7jq7"  ԏst%sA'4
 vG7'WO 'lE>!֍Ey:J>v"]0؊[YX  A8t6UPE剔$giZ! Zj!de[AQ&9"}ZX1xo$e-D>Q I]g`ޥL.h4Eh"~ M[~bq
ZB\)9,iOq?l# H$. /%na*Kxӆ{+eI;9hx*|ϋU\{.;$SfQڥϹ]eÓ?;'ol,fC|~-^rjoǩV<1?j˗P2Q1>Q15II*vSNE*sqM\=~nW8@6懽rL},_^s12^z;dIm ~nn?Iw>e7Q~="ь1^?.";ua$b]vGB9A([`3d=LÎ!+jo	cFjXP6VowOx㤻fգ(`QnC9M9Pew\NVGjYhP8I0N`!6#EjZx*ƿDx2;f#,y"7!+ރ<)nJsݓjU9<ȍ׶N]':>v]A{bvp)h;{`7,˴94Ρyv,៷!K &5`콕<2I[&iq1&tarE]YѮAB~-$A>~W-|Dgg6Z;pvXN34|hⱜgЁFQd&gЇ>>j4Ux,'9lىz_i	$RYf,ĐxGgYvBƺU:j36BQQd%gеSG9\+ck4JpY}?i8-U9Fstu5^܈`e[M&_,}=iSpDZUnҖavH7OU_+4nl+HM%<O0~Oͷ7'^S֩""URR!c>]*lsEǼ:L`M5MԷ{)OΠqhYD%k}5~+YkJ~ \opQ}5>FfT`A
fᝥ*Q<jS;){EI׻
D+'@j\·z5`fRR?^d_l_za	+ZRjxSRT'QU86^gJ"$=ޡkO=vhy6Dy&?]t١8YdHeeN=X(`,}t,rQ~7,.*KmA\"l;q@u93oQghrN`ilۇXE[I>!UMϪ}HUv϶SΤ}WԎvϞ}VӤ&Ϙ}VӺᣑ+oLG'zOTV^%ΉXu&Q(kXsHU'YFfّD>aP͠ҬZzZU~&$s:%RgWWd?_H_"4 Ltlh m '@A!hH@j-9= 0RkY6?Zrz`pfxrf	syh7k* &*E4aזWЛf@@ XI@J
/@ӟa8lGhсCE%0W땁pm% B'(? Ze;|G߸>҃|k5p%,4%+?|3iNVKP!)iՊd_M+C!ŐRu
R~[]ID#qͧ,8k4(~~<wdJg+=4lG&> zhX ԍ }q h M#@K#@+#@ iIE!i(!c4QBI.HNIs?ѐXA#+ߐ*ã)Ȱd%r  ԢHs2}'IqDn?ڒqxv"9XgKC!T #Zaàt<;V *JUڋu&Ѵ ]rp,$nhնKʖl У8hb\Dꦎ'P+"` X8f hA
 m @ RNGUZK32h<f@K73@Ksd9t.F=DX;2v tzڍqTK8JqW\tԉ*-*r[IV,9ƬY<2YMDJ ْy/F嘱J.:#b!&tmJ
G hfpϤQGm=\dY9@׮B6MWd*~ڹ) M+;+`U7@[Xg^KVrh%;ZsjV% Rk=(;{(! Ӑf Pu)ZT!T Nr"Ժai+N^Jаq M@# 3
 h k S[~ ܚ H~ &  $dz  2tժWtN@ '!N@Q] hz!+= ʧW $Tal:`82` 2*JPx@NaMval (  NTȉ WSgY$H+v&جЖb5ќw>54zj?jyJET,;rz+e\ 1l6/0LS;sazQ`|*<mPMNg9lh!F
VWLB2mf&4DΉэ:4q*=5C{1vb+:ʁ tUg 0M940 k7B2`Vɝ zv@3JH kfCpNqD:X|mw|j?2(`>Cu.ڥR 3jKh3tzxA10a[$&=kVJ@@e"mx<3 ho6%HVUA!D5 6kGQbi\"K
\ @эp nWP-+ m+:V@SDVõ׵@o鮵?zKw![k]kZCt!@Z!@ZHK[Cii9]0,* 
L
=uu	P7b: @`EqNݝudO]	 g;ðO4Ȓ2y{,
[cCT
46+6pV_N狀o386	$6];RkCa @w?q=`P&0q_ehItBf(CYSrCsj
<8 
&8z:	=Ftn}v<d  Ad+0lMFCw ضpŚOzv]*4i m|(- qpq PQ8rk;Vc r#ȣ>Dj   ڊHf2mnm"Y P,(@NZ?s<G9 Pj	h(  4jurT N k5FmiVؽ"FCK8H!s3fԨxB<9LIQP	U 25gڕOו!nӾ_/3p/F~yqc]\쾦ELFMO>opև6KzD(ٲ1:֊z2yK[h0v'D&r<¬3S1[zɯE~=.J¤ .Zd.̤ z}~IZ,-oa&^zi=ӣ6fʐi齉K/OVsGTγ'MU<$uDG_JeF+TG3{(%n$=JVg&6A,*YdU}d}W"'٨dY=VpD zȈ%%J\]"yLefJԥN8v9r{*=:3YݔGDĥɈO_<zg$MG29p߁Gx4Ƀ;j wbD\LKӥ8!qcSf<*94G!?SKVngK4n>%L`-ͧLQ(cL_D3{I`b$dRщLK	N(%Up'G"%c"hCJ4#0ŚFwY	\-EԷtc"E4NٔH8uIUiP	LN(/6EEp:K*q	(B"sL%?J_\Yt]^q&Ir3g05&TozV(uON[
x
x<ǧV?b#L/y |_C!/3y\Wz	x^=lD"Uꟛ/8ot;u(^^+H[8[ۊOOީDU29
t	3=r=뗧M7
43!vFr%0Q&Y]UO`̰bKiƤ~Mw>4XЕ@ޚm$X(B+Li4C:utx`%B\œkl.žS#IhF6	gx:hh{YmrfoQUGŠq>g^%$G5Ց	C	=e
N:v`ӟ`P"2uf&?Vɷ͟|믒!qPF5dɆBu TǪ!ԨPUyOUe+K-K89kKnCVgn%rgyGhٞ_Ԋ.݉p}	d',q%'T:=ƙ6;Mi_KR/K{P>ztRJpmI=m%thh@m	"qy-cqr&1Z$\o:5OY*,`IDAEr&ߘ	#%I[2bfLƎ+{ァő<պZ3T[lqHJBҧ?baq8!\8eg9N"}ʽQ=ܶ}:qXo?4vgA0gѯ8!-`xzuPz8LN=@ÊPW3K*,^')%]3:-\LS߽S968۬;aÖaNS6ԔB<I֢vhOStq
P .n(DdJfU, tL AM9+   Ò\HyhN h<4SHJ@!G(ⷶ!©)G.SR B-w4> }izdHZ#J>*+ j>* jЂ _~I/IM@aC @ͩZ 3%؂r9KJCڛe+@ %\A
sh\i Opm(yeu3@ArdV nm =5SM<hGڿ'zh ( uТQMHU[ 4Qa-6ZبERKr6FVm*40B
Ts1{,,o(	еJРBP䐹a
>j@(
Y`2@-I܉T@l '3˂r̅ k	53@k # dJ8 viP`Koi(ke/)6ؼwK_tEutp]9	?3xȒ*Nu(v>v{aGe+ZlR&JFj;8+O"sWOl8=uӀge/YZF&S{֢]Oy.SY?wC:UQ?§bWyws9ӿ1\emkC*6dM.WJ0:(}=Ye
(EQs+hWsiO(ؙG`CeM "x,D&Q4>3 jS[m-dv
f3hRè[E3ȿe=+p
8q?>I46d2%G>0%	hrysVգ0Hg3Qw	_9Wi#x	>u\٨muiFj@|> m/ܳ?O9?7OؿofS\5O/YmHߓN5ݸ`NVܧQEtڏQ2;JuP{  '1X\  . P,$!n ;ëf)wyA؃0Ͼ-	eԁ3'o dsCG0dQ7źӹEt+Nl*nl9 gSͰk@# u:}Qe:Ea?)|"ͺMm=0k
0$HT-Yߦљ  9?4JáV=,$}lGӫ<TFShԔsœd|YR퇶 R:$^H.@.
MSS$-aL=DBdV9
& IhBy44 =a Z[pu j  Ibգ.#9HC!vL@ HsoY# dm6O$tc5%HƆb D0BE*kiaZbjdl
I%]zd ƁaG+>&Db<HnĚsGg hrU<8 _ 4j3 4W	?  M¨gV|bmcz s_P[.͵.)5D q.kh3ς?J5	MNmhO'9	D.,v%IRDC,wEEo"e,MfzCաITɺx-]iT?e%o &,Ɖ5/W
)ɺUzIGy	[J+F
(2]*/T>(y1d)Q.5ȠV_0߁nHS`	:t/BO~^HZv'.xGyݒ{D9V\sgdR.ȮIWN=ˎhY~=x{p5Is*kwRsWD<	&VHJ%%zi"#l>#+ qIXhj~w$Lx[\ψr>˰b]|l}7/)}AcxFd}FeNI&@JǭV2	?_ 'W>ĝ>NF9O}2iב+ٝFh>   1
.tf!m49݉s$Hprf;VЖ]{[Zp[)+jm
=xI>{?C&&< j+ -J3@ p+iV^+T4DtnuU@251f%)'ѽ
v/FRXhRPECj|f^LltGF+M?
l1rp.hkfUՓXF(""Ix(ދ,gIؔwreint:ָV>*!+Im&-tf=!eع~@KHIiȈñ1u_Sx.WWsQ \ۇ59WI*Ok^]CI)\W^cw(9k5=_yJY^I%6eK!f<EFe5*Yld#ڣѤ#ǺtOns$Qޕ'Vv+Oz	:XXe9EbkTQo/U3EW˂hʢw˂"T2*`*v
vorB^yteU%YQnC+<b	YK{!`A.[J5}/$ܪcP>ob851Kmg^k9'.qϏsYC'You"%5*e4nS﻽'ɴͪ0vhS1x/G8_"P=gt&>DNAҝ̌N#M(UPǔ@qƃr\hҭ3KtryP.,YʕiB.O4$Co66ݨeek&`ėQ/JFv P$F)AM,^Od sp8̍<͊eur/oU&ڲL.D,Ë-$)_m*C'armk-˟ kRB Zd~2^8ˣ6 h=jHv=<VCd  $`9: -c&RsT : %*2r+TL	Rfh!n 8.SDQ@"
q{{Ԩ_KJyu{`:ih.B <D@@Rf-v`Batp@ E]Q50Լ1[ PH2L6r BK'd4r*aA<\yx$7:v<: n@ݪT8ZWY:$p6C$Ų|$"_t@M  Fmӊ]:uYoC2/ f )P{$	KxXR|0  pq֗< FY 7(E7T~q2cz'$ 3L/ e GE]kM, m.4ЖxRka#}TDlb5 o;CF?3"pX6Rj^
ukFE(Y1t̀j8jj4$hJZ3gɺ2ܭuK9k$O9ٵ"A("D(}hTdS:<4Nav#G6J<u@qxf[0H.Y@;&>|r"~swv*JN7\97?)aܴRF^KzׯߜqoQw6l[wyO%'!7!-MP^Sΰ]9xdR3mĖTCōRZwu`=>gL/N)pSzRm*<ÓCt}odzZq~NyS{0i̻ҊnٿniLLZu:h~&I:80Ac
Y<Jb+C$-DY~d\_H-iǚ)o.37QF,g}sO`vN#Ŏ&ӰSӓNH(&3DT|m1ZΝČѨc6o苛.N\;
ELH:R
y"Evj?!Pc1
(x;h{)"A
A\}W+~%)!#&[,cihX<IJpHtL-qԭY2vN`S_2K'H-JReMDW_:SVt`E+)+7%
e<byr'=ƹ7Ex8V?|*ԎуO]Uӧ|HI)kc4C6KĵK4Ӣc9wafOX7@%J'}UAXxE,1Sp23rX_,Ƭkjk8<},>$&ˊ9ji|\<aFh1Fw-@q'm	/Qtdn
RJ&ˇAIү܎xZ;pfMmE"ݚS;7΍>YsΞnToBbHCXA9ei݆~ j"(.gF bŽ; H 4L 45,  'eM7_Ǔ}y8Dh~ 4JyGhR
CjI_"in $Iuyuij7 \yW/$N>wy" ;f]W$V,tմզs@Wp}'kZj,o^8,Iե{2̮:0Kh@uid":E	nKaJ3xQ{% 48<MRpԳ配1rFь}
%}5eT@r ܉lJ\9|['Q?
@6V8b@R7RH,v?<Mhaf)!lqpDOvL'u6~b>d!I>hbՑ}>O@Clek`&M3R*gGJӨ#jNb9O-82p֦|*$O5]
,MӞUk.Fܽk6+MS4ЭɁ#櫗C@V>PH9} 2> n66oJ*D>ʧe^nq#ʒwC5dˏ˖LWRdq$ks)tJx>[fA>Zʃ;Aޖ?2~wsR~\NKْ~`θ;dX7)(zimTx.[뱍Xl?jYJul?'7S,\׿ol|`gRًǲ~V%:UDb7~"E;c/[_UWZj5~>ǝP;hG=\Q,jo:#Go"j\ը	#kjR!$.Vԛc?YSԒpZW6TBBFe;rNO{Mѽ%9SQHr%0x^Ɨ5N]#|$McxWo뚶Np
>?lgos2g{ep*_[`b3NP9HOxyI+rqp*$YpoYp/ORpÕt޾ &.Zw3>GtmBAF7?CR;Hs5>;jw!Y`xelNZ癮mw SДr3$˪ˈm,l$gBfgdFvranuVB<;z>LbKp#zz	eY8?Jrt|2KkSP7Ouo/RBx.\_K&(aGoiw;ɽHx.z]w^SW]i7\>'<{}_'x;cX<z}%u9I	<ҵ#)
yrpp&Q_HmPg~NK˯44~q7T3_f>Hr-x3ܜbC#<{&e̵ɃB` <$jOj³9Dye[*^ԨR2Jc.T둱IB8ݍ%Znwv_v1SuaK0Siowj]$ոp3VC½TM;MAXw c_6]-e #!XbQ1%J^=?<]۸ '4B {yJ;mL?!&Qːsܡ	k?n.{wS3pHG EZn / ^Yve}P 癢qoH2ZK*C86N5p]s
@Hds< B-	!CFH<NSrSsK84ImYbJOF%,KE;ʨabY5yhbj!;(R&8RyP]Wթ(2 BU$DMrrUQMϺK2.=-\yXV 7~ >#8:dM L"B<֪+oy9l&-\8YGt6ȒhھpZaTyM+T 55pqה@<.o?+lLoi0$ad@uiPt)(R{75-)YR{n5-(,3Yk6䜶v>fl0w9MK3̀~t5@aŘ h; 
t@ݔ9QH԰Y\  _se%ey-X-h,^20 4QY}
t> X:X 8 U  T= pk  B Z8 U M6 :2 z k䠫\|   ?t@ * 4T@ɡ \:  u Z* 72Ȁ[2:UJaDn؇ѤvexfLCMJ+Ӈ,mMާ[dmjj$a(S|EދҴMBR;45KA%P}Wc2@Sܤ
M &i 	AUNcr$rA d+x0M!㌤`[캳CJa2&Q"߱nOfXlg?.ie"Mƒd<_)l}Pt
grU8_x"	u!#6]2$AGdͪPRHa-?]N_sOa2]hwdnJw2%x#!
-eR酓QA\XO)gx_sV$d|\Gv4'qL(G,F4'$vcNj"Yr,LN_SsI%ed)"<d<ꏥ΅&|HQ/6ŦL'卲9@N4s. }~bWp()BrHaȎ)?OqQ"gn3z:QG2?_'5c8)8Ⱦ/r薿F^HO#q<DpEU|>Bn~ftѭR@?<\7-^KlؾMF4^Yyٱז<smA+3/ rkQźPrl/ P7BgA@I<Ԙ#K~/ 1|ȌiqD}~gЌJY.'+ Zj!f(Pf@0uJ
f 8f- J(Ȅ۔e&JsPAGCj;` 9"6HA0F oDnIsɇ9I hG:Bf-#@Ƭ1K
| Y5R|U<HԉqH]Ɂ*C | s@j1zƽ`䁌Γp4Kl:`HwQ"Ihw!'.lZ  h6iNA8 4ϤJGIi4( Fp 7F.thH21c" 4F;e@K<LF$NDS]x&1  l"uMhFL	%% 48R;63!7qԛZy]ܻ@ zgAԉgw>_hjz1ϒ;6n+ ?p3 2GӸ+! h3Id. H$m5,$cCy EݡD4yz 7[[ m[Q_i %6injtG#HV|#%$^tdgiqE9׍nw u  A: . OkԵH@(|sBs*"@(|vEE  էH8'1r7;hu[Fae8 תNO^{HЛDP   ZY$ @`'
 à
U딬㾰ȿQL*m#7 VmkiV V cz*T1Z=UkU ݙ-5w+M:Fcm'DDTE8(;Zv<7@ pDvd+]$; iG@ urd & rA y	n m _1BHA66!e` JMm\ P$. W6x/L @g!e4$m<T ͦ##zlֳZ\3@qXJm)p@KVQO?=G
 Y Pj
[-tl3s@Bd1EH) 4 c`E /X?!qu(Tٱy !]L2!rCe($0͒Qe)CP&uJpc=`Q)v)^=Ale I(}KMB@&C1YLs:! @7_@  \b\*D_ VT!@0 ^tT+v+*	[QH uoM 8ȀF;p{5  p4 .\  1 HZ2:4 "0@ HeZ"@hT]`қs% K
  ֒|_ (
@`2@?`8# 6 H8Y e5 Rp#`^X+
 .tZ"f @!c  "* W00pz k-ȣr ~$5GU@5U4@q<Q߇l yztW?fH79szS"4C:dkX~ʢ+u
89S{
 8dw$ N1vc S6$ :HIb^) 22>hаG\#d:2ʑ(b4! ?X/`8Hx)\(KڵSjaG쑓P$1@hhx Q1?)  Y uQa C1'4mc.APYjrHj̮ hifWRBHnyGҡ mG:
Ԃ=jN WU0";P4RFpv1-:5MdBD@ vm@4N*k9fS:8R׫vl2 @i,VEy<jtJti9Hy  p8dhS> f$xނ D Y@N|'#+qDfS R
 ژd/`LJ
&aP&>t8m81Je	_Ɖ.Nڭ}yr=	_^^rEzW"li'8!;_⦣OdxyU]KciTlv1k4w4A?k߿.*y$ <];{,_#)wOւxGd[5QʯslqNVnjV+M<$빘g-?YLYˏkן?_{IbOqi⣝p}>)K3#5B-<Oy}>(ϛTVsUA$ HLGK5z:vJ[+`(%(ИeH 2q=HݰYB1œ3|Ɵ3KmKJPVZ/Ŀcj,_v9oV$<m0wm9~BERد3P\;{;XFiϢ[&`)DBQ6_=簡y{QɕGʄڧu!@Cwy#]2jY&a( Ԓ@-ee[}U?1hj	-TT#$sB.VّqeFPy/ ;WUzZkkEkci䜔	XF-wy[?47lyr}:pMVwyMԚpz܋ntYFz	&D1ȘRuů2`.5m#-uȪ?R4JY+:Rb5S(bڃg%⋩}&hXFk%k =\`55Cos4X]Q?.ʂxsX=9A2g<iW^20Ӊ(𰫶X:`><[gqXd˱Lmεڿ.Oۗ㡈wiڋM9PןN$e+J[R;RfgsE1b@zxƫf%2.A3" |GЧ4){Hу67@{`DG*Rsd%`"+ʷ"+xn£de<91$eTl*bƌN1gd97k?g,z|[,Y+3#ղa;<#32~I],g5
M4/hz5qi
s!<p
ׅ">QSߙ:yOmD9LM_$n]̤ni͞Q:ϲP˚L$Z&P27G U=|"nĿ='YѬ*qx/Î=ь(Kk9J$|aθ^Ē2JHp%Bp:h\cz&ܬ4?g 9Waҫh-s˸ݏ=(H6wCL.9GY]	FJ*ir%i40ELrSQLрlJ،J	&F]yoA5DhsOU2x>ͣNO	tl8' _GqaQe^y^/:@W:_ݷڢQ--J
'WlsZ-~{O?>yIʇDnwnxqO~.;sD7XlRRoޟrO!ruxR~REšgZ{de|,7Of	RNApW[i=7F/\J,{d!Y492oi\JgMFȇl8$hd 5 /ߏV}mKW4N$"ϖ*X Yntֻ~+F,b%Ihј
	VDz ;+,\44!EzJlMw8 d6}8<4 m]\8z9J\&QN|qqu&2
pa2j͒<li bNw2 bQ8amL~ԟͲH u@?w$ pf_̂@gF V 4J	\Яa)f U,79HuG%	Hɍ0 O!p 4q+Q"QPD Dg	m6u٦GtMڞDΪ9]a$zJmO/;jj`$v8yS\^&GX}x~#ǫi<s=?T&zAnPSrvsۃ/T)^,q9|"En
RG↘N`_l*K	hdI(t%)"55*l.3١PUE X$FqpA /FLNbQDiMJa۞dYF ˲`
-P-:kǜKɬc)f8OeB*+G7e+f
V++"s~c0Mс+~=F+6@>*	:ZM<"?p:nɠuŨw_sŧzObV7ѭDv61<b 9XTBWI|wO_j˃.%7j˃EabG^XZ.ji8هK0w]7zTth,Ȓu)V@U|$5A$iٺat5ɁEAE"ZHKQ6Uvzk~B|-8ali RniYc&snzժJe5ZqNQw/ZIq@XIbBU
hjJ]҇ld$GQ~K+!U~+r/" Ɖ~V+ͯduPY-'QTkХ<JT*tfV]1__MfOcqCW*,XcJ)-XiV([Z,_YvW	0VB87+$UrEWf'hL	9;iZ|z^!0(u	/N.a>3hxTzo6- b[}$*}}ϜWhxEt3)Ʉ,Gesxb$6y|W^K`_Yj
<8Vp $dD=&d⠱?B[fnOuHG$OwG#˳RWS4.j3OFo̲;qԧt_WzqM0O8&5T̂]b谜3I\?cf:#Dh=T9 Vj]_v)_ddPn[IϙT7r(cvzq:.~8²cNxNr{|\ea9Su[i}mӒɳܾ3eXR81$UcAɰuLw?ݓQTF'GJ3hU/.ОH^P9/-8n$߶r,FhLxЮS~y@hI-]h$D?nܟ=|DoUϖ,E4/c]xX~1$lf@إ_1ۏ$sbgyqtBի/pG@`$ fOM%5UIvYl q<u'4;%tYh)E W~qRQ N;C
^ҽYwNȐ67YZbW+;~[}
R~,^!w_ȃ[fR`;ۼ7MwM֘Df2gV m+\f1C(u~E#a:"tG(Sp'QU 5wO9gur*wZg^=]S?)h-$&wJ}5t{SZN滣eu _o|<[9+wA˰'4D\V\Xҧ?^xX!Li_4MfMʦ|-FeQpZ{f9J(T
n<9Yk23,!m;Vʄ]mySK\S[*b等2ƙvZX?}~>*n	oL5\ۋTvgK(؄ZmxOKfyu%IпOgVW"ʜ|?߬>]noVۺdU7w5r!s{d._vU[hFOx
Sķla6ZV/W3l*rOp'o6P4r?INٙ)GOnmWDv>Z0+1@/I|>س#ԫx`ghEKv<kK)츣6D딚s᎟{}Dd8]>xf<(	gS.5sx<EPTGF0(!Sq%FY UNgb3mw&5c4>85Sg##6JRO6ђg	wJpz'>+e/[wk_Wۍ.kkgyn+ӧ,+)MoxzOxv]U /w|\ϸ[ܐ.,ٛ9={_Ysq9kE}6chwf.`{hV'YiNd#{MrS܌<=w,d_z:5m]owSΘv}~<U3MRpo`Z0w²e#gnl!X4
?yMxN,<Ǔ=K!y{y)o%$ 9hkbP Y-6"kL:ͣd4\(52Q2OfA<UR串X|  /Y-9kr$ܚlNw,0  3Wg =zш.iCQ
@R$Pa @w;Ϧ 32 ںBA ZNnmXnBTV4LT]l`)7 KL3B8?"5-  HJϜg	4#sm NpP Ա_eMQ;#rdR~ؑ:v?J j>5Vm
YH.|m%f"_}@4xQ$jOۣp܍. jۥO0A@&Wvt<~[>/彎u:slyx:lnz/^֋S?j&mD}^7aQ1o6s+C"~dJiJyŲ.V8iͣ$?m_bZ?.DG(Ƽb}?30tND^TSEF$v#_(6<74fsܙ!qSf' !*7K8|)=Ho>o_SFnR-w9RkDGIc</Ewb3R9i |t)UH8`غN9k&YWnG8EgUܿtfdF2^\,RZWƨX݅MBC󿗡ŃgI:?s.#IV'/TDoZå)G2Dm5 3kܮew7|&,UN _P<#HcpTK:R#|oltKg^xWky\'egw_~.j#ZF]Ń
(ue${/|vdXF+ &&V/hPX;~ a7#d{9nxRn7^\k0 I^$}D%OI5юQϓw5ܴv$wѻLFlKx_y3՚6ƾ##/Q5u{1mKm+5>n#z{,Oܫ{vT%e#pxZ9	aw|:\ПHw7L%ݟGhDY3Ilԅeɔ5NFv^
z
Ps	ct_Kkw}i8ouRԺbm.vlOWLϰό{rf&^B5kz7Gݻ5'+W'\l'fML.\돔RU)
p3^1p̔JRw6Hk;~7mFI7&)yzM|z]
|5T"I 4m З 3n'~=Sx7u9]op`s:5pDq,==e'JHN!a?Oĝ&E⩔ppxm?'yݮ(vHQ}ܺ<0tr;LE|v>^S`1HEd;/CJl<%$!	XV6"D򏿰'Ǽ򏿰n/vl<hN7m!M	3<d̖,V|k6EaGͷ'oQ`kBm~I{k>apDQ=,>5YLsL7B _|e?nN!Qt"ܭۧt#-[6)s6Xjv2^ IwA0u,6ύBop{}<Gqҋ;ifZQ>:i>`r0w( \ڀ`:j1C<ڋj|ۃoƓ>5	b܂w{(4H;jJL{Ű
H`r[ji-H;@;b&f|=tJhoǝnf1$_Cx[ M%D-׀9@Tm s<*oZ `zvwzop<ظU'!k#]Dmw_gdι੡zH<\p>3,PٔgvZ"oxIN_f%O~;.&^.MTL٤<W1nEѾr?̾EC-D8]6o֯|$d&uyNuK}<ǩX@HՑT+j8	VT]`C{lM<\K`J?p6/>=/g=
gg]ҧK6[VKZG W@ )u&lϭ |> 4ui>.bDl%Ja!5a]W;)1~J9)-_[i@N.pI * T)5Q$ \R \Q& -Р mpCb㐮@ ]
t5 * j T)  Q P,	9ZtMP|'5cV]˸Il&ۑ7e]khek[kDI';mjGoRŏBwۧQQWg?W=[a5ks WBDz)x%;IQ=9Hvox(y<ơEh˧2y?ADWdaJ6H
q.nk>;OAS:6H_㹥n7'﹀pxTiJM0ٖ>\Ь]fhʵѺ|K_lsi-j[e0>iODL$uPTYp`tJ`FDx^6z̷Pܩ7eKbB8J }1Yo-{Fs7KHo2,l.-[ZN^ƭzח@;88\;0h\_a xDp(nOGV$s:@ `+0R,gN76 %  'e21 T= Р   8ab ya Ę (& mG5L  :7hE=MR
@_RzY@xԛR#e( A Dlڪdj8"\ڋ(Ri,(gaZO)I|LI굯+X3"f0p0 [шOluD9P:<	#P?l<SZ1G^UupbZmk97fCRt_X] Øqٱкqt 8:Tm vj6 ;HpipepmаqtA:j Dj 4  h! F TW F TW 66 2*TW xzxzNU 62ΞFCx:{UgO#id<Ԝ=S[92de͡JBW!?[HSIܕy$D	ސqI(=Im4}F>5!{(c)Q~,%C(icZ!W^(??xh͐!aC_,gxh\pmj]pKWNoO8b%bu[A&\c-cC*lI^8"#r%!]ELGHQ
!	ī,ZQA~%l~*Br魟f؍&uS}μ	i"R!U)^	Ty* ]MﬅOΈ9$eNOupO?}岘(b7>Wɡ}جYGHF˝[d+pTq7@:v]E^Va\|Zs%Bd JBP=R]>thntt}ufkKvDc~UGDfz[VH ( hueE# . @o>Z)Wu#nAi1XjX&u}Gq;u
g LCsh#
!s&ö[6Ȓ " p^Sw n;+}緇)m\&4Dvۺt5+^
!W$@[qJ!خJ>{UQ@9J|;g&,dqƠ'=a脒CC<9zs+ NO<2"czghvt(p:XB[4:kjBk%RFP1h!]cLv$=8!4ΌdHV([etr G!M*mr8]ZڔBU$lŶ@q3x."xE+uݳO CV#> P . 墑Jp6f܀_$].Uè?&'GOU3',pۡ)jŨYl&CJO<DV~c('QsX>UXɭh%^)PQd;c1g=rߘ~CfdR`3XZQ8^=>Q`wo-S>zdx&,:˲)1z,,=5"+%ODV	gK`N"A32BgGBKAjEsn$]}Bd4YFzlk$^?'?љ_hӏ53wcAۘ8zoj|g";K2ԙ;9"m"I|U\pvˬx"?8$2Yo{CWSucxL:؅v/1h<kg7rUmK頵SG	Z"uBA+NeHw~:oZ?9W-G.̖/",g^ߕخW]ũ\%\2^BwQ#s+7Nn1v-
`nv!wZ^Mu֠0M!Os0A<rQQN7aq+*4X9%[Hd)n{rphP{{p1V\ `rpm0hL ZN( m'ٛ9 N@E:rpʔC
@_ u8h;GzD$
 *8 Wl8@v]l @d#87!@* {6M nN  ö\"`I`d*z  nf6 phf Wnf6 p6:H nfRCiQtӧ
 ĤnP bRԟ 2  e Je@ 	 m
X& ۟1O9:: O
1z$1  "K8Rxv@y}ƂV\%'B?a<BK)'T[Ū X_~]s*ցõƸMgرޛ%S?;J3<}),[Hğ?(24BasNj놏#RG9DªT kHTv2	.:OMʪX!OabFܮ?*`|b2	5PA#	sJ4hvkM8齜5t}G"ߒ﹛`s6j#TһoKw({YZ2r'U}b(ѰJ9,B9K*ӘEXg!b~`ǇGeN(Bt^ٝwKւ'婖=W\>Y,>e<BWm,s;C#w!LdKI0"U.3ȷw#b|?b5uyʝYʦ~:_fJY }qiQΆcxQpPyt&O'khHi,B'i\GY_Ʊ>'i79E<hŕiɼNR6W{J	gH	O!oma_-N_vgvu62h'q'3hb{'t	}4fT$$z(E톿z[FI5mAF&&lªuNsa2-Z.g5iՈ7m&5hǘ2Ѝ%^4'qJF5j. @LZՄS6@d\ !W5ƓVR[p fK W\Y@8 C4,@\h2qͅpe*@T=E  5j2̒TqS~#;ێ%peB6Jj`rnj~eP>l`r#\ԯ_lڋ'YN>l\8-g,nӜ(Ͼ $(OZP: j"!iD5j$y  iD5 HQt FT@8_"o<Nd;f3Xx QM+
	g/1=ET<QXoHw}a^~Z24>]bG!Q}Q?Ջ~r9Ć-ezX6|/cp?[<W*e8Vfo=/埌I/#΂\h,OIk~<[G~r ⦃ H@clbГy]RܸDzYT/&ͮPz!
)[#V8Uقmغ1hSk4D5F4[ƭGU[~u[pd.#vqp;ު! Gz Kw^o]! Gz8[w^o`Gt5 "@t5 j 0  hc c  DWs@DW 
 Cml<T=Cml<T=Cml<T=CxzUWOcil<\= _tY7QH xZ,fsd9ȔOb'!F5Wy Կ)ٱ<(ċuKAQwv 9m+(!UsSVIZRؠ~.hlRުWy>W8YPs)tB+INRZ1鏂Gk>YPs~W~ szq,Xsz!(Xz鱑,Xbä!]_ϱjX.}i8xW1\k>W5(AF_\|#D)2B-p	<و!åAD(@"cDUukPwB媺K]:UZ/PjX`Q?ՂO_H>ւP]0=BւR_>nKꦱ tJ=S}*[/6t^FwkP5veiy-+_{'6ރ'M
M@  6Q<fx W4!D AſJJxk'mlN4Y/_v܋'= L1JQ?$jƷݾ6t>Vo(D c7~D} muB@C|o6nZZ|?'`(z8_rܜ.V*8	#@)CP8x9u?̓A4ayLa1cuVu/\Ov#^&HSv{nG$4[ xM%2T<gNџgRrF<O+o1ZDy*CFqYlK>n?/v_-'p)?6ﻓ1'RQ> tLqà>gՎ|3(ѠѤusHhX1ǌM^X 5o(R2OCnUvBA Q>RQP`j*يg1;wֿ|]7mO@ rsHB ή+jUBnw@}lY\^QOpm:L1" Pܭ?rT=BDZGbw|;8)l?V#H9)R/w~Х~C1y6bZ URTW|Yi9{ص`!sO6IpUhQiNx11Qg{z%r,	vzU"7p~<OW>=wqcXoMn )Ίy/V)Θtzm24cŇ|8-Czq!E8Vs"R_"Mb mi-4! D|S, `dImdMJR(7`xcQ4@LI9^H9b]l%ro>9&m+T(Y)BFe\c;yP,ElcxK0-}%}4t82?ap2zH^G#/P$K
T{mZ"U+q?"yW;\<Qې4e7=hf,/bC\"4AϦ.c̣XFYo"[KjvxAؾ~?U֢OݷyWT|jȏO[SэY]G|d&䘵բ4ѡ<CAVϥ9Y"lZ9(E?N5MUuaDX݅53Xl_l6h0.KFwt^uwDWFX|O>%2pPI.YK0Y]^>4!<ET$٠݈})B	ٴ)n20[0p;E
`"z`1|/Dd2X`+\|4ˋ`v;*Iy!T2pͽfW	jL$xϞLv_@"/c
7z\\秗/j9SF8>c%|ym~ RfQ6Ӳ@-+aWԂq<6[5=boxU ^JRBֱRv"9"&36/E0&ےO\O9j1B>V<>醉FDr
`Ge<Ϣ/KŘm怍͞*
@!8sr>bWOkBE\b4'f2&87i_#Y]6v&
8)hVb9a;"l>|u͊4QD!IhN=b2D0-_~9ۮBߦa[_kʷ3$yQ@bj O>mYZ's[4M$&KA-@ xx mI8k[2 g YM\@PC hMCGs03+k@Gk^60 yyc}4qt=D<cvTU 9%U 9%5 z;JZ&NؼB6P>,:*!v 5`:b5#3u4.|`! PA n_	 T 1uۑ- j6[yFJGIԺ .1;(}G pV5fd1LGB4B
J1羰Z{!rG6r]<Wvhӏ X(f"	Rʄ.ȈEi\8|M_+$uM㑤PC%R!΃bW]PTHp*r'5S,G/5JO=0y*f.U)+k	+LG1Q~B۾bo RٯV/D4%gY?]by&¦9læb}G'0}g0Ius~;Vzg*.AM?E$`+_b ^iL\Wb|6INY,Qk?bC5-
[9fĭ_ϱ_͝oD^moCv?ưl! el}vBI/}lʬre~>lJ]*"ZG$._Qꉜto9Œ	pP|ӭhxٌZtm"تt!d50ݴ^ѾTߨbdu[JaQv8|CPƃRz9;	T}ͰX1c$\/KrA06tõͭC	iZw'mb=:NPكylk#]?ʢimg3p\E@+
'se31kaT
nC/>EdkLC]k6 :s"cBoA~I?RB\͞E6x$yM&Ο;uᙕb?6-器rp4
خy wWYXy,g).y!M}QrC:eYv }1u"Y~qvfruGMrqI`1C~/N!t<vâj^p[NhX#՛Qv9]	XÑ؎ 	
'|2d&_GGH!]oy<"o`D9:9<D)y'JM]#k]eAlX:ewvikWIj<~ڰuhab5vbp:2YxڂӲO>ѥ)t#ֱd3L濜% 1^]&,YdL+ۉ="墉6Hb"1٥vK"`b`Wdi|pQחz><JIqXepߝ AHonS+~{[xŴF&8J]n7Qe
UZp3U9J]M%Ҽ4)oÙ4?>ދ!LEug[?Mn<hYkFֶ1 ! h}0;%1iδדpxIsGy3:Er>/C>CTش#Р
̈́MV c|FtF/<:Vώ,	+5_а7wQ#\@,r
a~,P{o)#<$RCzmgq1YovD2F4^t?`6m|*aCw>AcYOjdNXoM]bp $@l?iUY1[;c?<:j})˳XASpjTfrGQCٲ<d`R)b@H#'Qox㉩`]?V }/RרG82^ h.RwC nEqF0, 16PS r{k;}.< p32ιT O 5;@%B np(#y)O9{*'9O{#$yj^z)u	4.6~"DM#ӾYQAKbhN9><++P l;W@ -:m#oKe!@gǥn¶foPÛI+yJK}F`0z_woo)>ش+Gu֮kiu'"~M񃖡;ˊŝOJ϶Q Uto 5@a8C_ywK'F&*qCA4x#nx(mKA~ ږe  ~h.܉"<{ m8DR Nhv#C %`4	hiF Ьcf	C.wdl]0-a,#␍3ht\\_` *Ⴧ.z<8PuPuh40\L$@a<m8P
	 UT$ h"9 7HJ\q+
ʧMQu4͉- Ǝ",(m
 t嵞~ԽF<uoo`6	~?tFHpԸv=KE*f<<`Ryc df |IJfn߮7rmt$R/ 
QܞŴs\ifko(vdU,f4W%8 O}76G~ǥ n8;.7 S!
Mr[ 6|Tv뗆^p М4 W  !kp pcRJ(/ Mh Zh+  J; L FYMlv_uԤ3{MxNOg|/AѠ;΍1dmnҗ&ٯ3MuQhy,d;in3j4p>q[䜶KrOII"vR9֫d]D^5,bmu	ZN~X_t*Ο3b-ܿ5,|cAg0 9 X.y1ģ//آE24KVM:6(^wԧg7Q$.!Eک?8N	Oq\;F{!t	|9V.yϟgO>vR,1ķVd1+4MlJ0Y-[$:0(!QE'ͨdv^vݨnb<<1Q2%o	p0O<{["g3H\lMGqD:A)%'dZq	LD파+Uo6M-Ϳ%w?MN'B#\az<IHY)<kT4lR:N-`'dHD'f[f*'.diم|!Eu۳6LRP-eXa9(B~iA-SÕ5ߌ0	W[ib^fe"&
 &sd<1sNAًU khFjɄ $_fbW	QL> hG4Ip wO
 -@vʖIGZ*q{d 29ux
 ]W(\+pi5
hЀ
7xǡ] *hWЮ@] \[+hW hWЮ1Ю@] |<TЮ >dOP%{*5|<TɞJtUkx=M2P{UP{5;bV'|{:ho	Ar!!3Ѵ4!&S!v5LN}]t(GS_'M$WK8]#vaW]x֦&CVfjs1M0M"5|\ti:q:8&NB3l*1D$lM$S{C{:Ǧ#jKvn>f/͛DDrZJaf0N=LǶS]O`FDf܋y
A ^FȈImu(gputa-6N/t5siVTR[=j"ƺv2uQ;{ءԻ~3ʐ XDZxx @ g7uioX%8 @ Pw
PA mW hmE# H)f-=- 	 7	 |8xfB_ZfG1qŁISs]9NȵQ>5[vWoXlӦo0@BDҲ8 4m_44{z4`Qn"c+&`|ϡLD[oX=BS5\PIxh{EС(Q:TB LU(1]ƇGWM?SW:zF;F7vڬG[E[#ԳYjz~I-}d:r(~W~e* >@o<P;U h6Zci3l_ձJgx[{+.ߋ5VW7>S ﳅf<[vǓ4W\bA`L❽VX(nuDAtn#6@4rbbvbYRcbRRBRV\bG~U<ZQ+9
iHQZ!e<zS7t]OA]/YXzF6.w]_?rVP?i<
x=T~3zYۘ,VYLBYۛ,6g@2g2ާ]}zfIXđ*"Gq	m|ӥlh,_l#)=;Ԧ	uB%u!!4"L@'ߛpLv4<K4IU}eC蝮ߪ~!NօUg{j'Zxo{ڧZh{'Zh'{'zE+_SZHe˨J0..lC<8P1O,쌱s:S/as=fɆc	;Cxnğr(p$r gū=XAm	E{,vGRU4:ؽ (V?u{v|H]h<Qwxw<7~h!܉Y2&wryf݊.da-!YX@-$Y0͏wLGb>d9@M /N2N SA7hE<1[=/!fN^{1kV>=)35]oίj`hkj)a`QRO	rA}LߐF$z/9yfbHdmVB'R+ЁRe =r%}b1)rT_Vpr7<(~?G/N5J|OnJRfyVOy
+CZhwg&8{gY[:/:`m8n;euRʙuah׊pB<79*l_@."JVNCQG!z+Qy/B$JT(QO)ЧGNX5bRhu{0m.(tѡž,5zOrBlaI֙zOW2dձAw
ҝ\;9FCSkxK\)Q:@zHDH9#=[1gŌpyޤ;}۶TWdK{EF8I) 
 L޵;hNG hg<wѨb9 +Agh;.dtCԒ"ݘ'&`M#8p MxcD1+c )]0!tz̋:c&KBkLic=+{-/Y/I6)oe9"(mKSzy,@D>&GY9ϏaRJ|1g"F<3Gʆkd!r9_ H:;R7?Ē;``B4<^cG< 1<Sc>9AS1Ժ%*g;&qbtRvxǗmj81{_غ,i@bpAs:X"Z^tjd@C]6,g]y;L!5!0.9`:F<Sx5y Wqzt)i̘( pҌVf <=&1b4ڧhԝ^\^o0Q'j|7tzsɑQo,M|Ս狘I̳]h5jqSMEOjٿgSxJ\je :RT+P \9\ 4W
*L h M @"5]5=jV`k-)a*\v(aW*bv(]aLF5k0JmX倣)bR9)Gq&)GhSC Cݶ/2,L"gt,_Dr7x5xɏ($W2cy"S/&#aNRw>Z1>u/Uj/o*9<}e09g%OAv'a*j1BT!cĩ9	WGT(XUFDᕈtG&L`؍QA:Q%.dD~uh<d*sV"R!$Xu r*fVZzqQ5CB[*QASJ1ԩRlk u15 u J`!QYō+ͲFf7~,AR~,ݽfQT?Fx2	켹ysA" er{4/u $:ΡF.b@ PG W/) U+@W@TAJzRD^$d	ɡVPNˋfE/Zu֟Vz#e;-Z8CF,?^*qy͖<^ܕO;~l|8@k6%[~&^
iouHd<!do%%5RLg'~(*Uqf		26Pqin*s	Ys1ȌwTT-⒧y a[V2&y@o6j'.vL
($!2{Մi1ejѨUܡLvރ2ϺMy-F'd2D v
gd~|?tpVZ(u҅Jz;pb^zIrr*8?S\)f3U4Z*l-8SsVX}MN}V>:.Cx	3Ph<U]mt/qmrܺ-{^JH9:|wrtRAo}};QFgCHo
]r)b( ceq%RJ!vf`p	K{=]w<&':^somkٶٜKp2	1p}F?r>_bA !3af+q|J(Ȱ`/ֹseO ~?hX-?+J};S'dXHU4d~B<Bv)ZRuϺUZ|ZɧC.x<~{>ͲI֐/ll5e@̂<_0O~uW,cESޢll_{M<. c4#mK(4O&vgH:)䏖4naʼK̽-%䓷O^8skvç&:c%6"JN<xpx8RP7poΓ26CǶR>rHF68``ݜ#~9>k*汃[lZ/۔@g}O=s(b3.Z81^yǊ8~kmtُ%c:;4+/U6{$#^zx"]?%?v_?ϗEq -M w/5jfةZϞgC*bL#gwB_2Bd9OM(3N34H@R
l/.=O(z5xy:6	{r:`i4(%!mtu/s?"og==+
}1R{8b{)ډskhcs\s_~tO>b6=G!ݜ2x`pޝqw'qqAJWbbPp@OI[E<%\Jpwf9xGHRu^pԹy~Kj6JrɲZYHIo<k 'J5
U!HТxv~TOæ=A4e6>Lwen7]^3ԋNq1LsB  X'zml^y|"ZO `ac*A4Ce(׎*t$F,%8-
wD%n=N3 @vӅ9S\9L/'D=H\s(,_haۅb{z>eCF`)a8SdyaK-  H&o5gߔ e1_7ƣKo4n ?}^a4οj<XZ(5]$+&<AkAF J⹄IkڵPEA*[ˈd?-xU&w_<bHGmR0dFuR	BC<0`s(y!cs\? p;֢M"-7u"jĐ
G=Xë'20O3y{k_=SIH6]VHƕ@/ 5`TuJ$@ ^|TezbmV䉨}4eC6oeFDgpI	MfHΟ]q+SPЙ)@ ՉD|ߖɱG"xb5aKnG џ4UO	T}3'`%dx)$Jև7QWhNoH`t?3__߻|YR$O2Y^ VI{rT-^ܿɞቲ52ݔ@ @3E_R6`?#1{{	 ݝ h؀V4o	;&Mi@dMǓXHaQkt vy.zJ r<-ch; f&;l8 ]<R.=T5m8ӧC9YY]pe1s_ux4)&Pj>$VDV	,b2-/ȷ 1PYarSUb1l|loZ*_EhjӼUΦB~!|*QHm[R$`UIG@}砒_%ߤXFcsF~&H`7<q? v} II?FƒC1XvSfq܉%U'oxY-劼}~?2ā<ؒZeɾ[{y	d=i.D?JH%9qZG2VG<RtK,O&<e/
g(kd:dp&Uǣ	Cj5q$	]Dӏ:vAwxDkb-	lNWxٮ!ϳ
J}!}T)c4%f9yʴc{d6ɍv5[8O}ּAej<
;5
"XpHuYY=B\H"7݂ԙerI1VN[5m*tz;&xOL@!,QYGwUYCx8waeypOR?m҂v-GXBK*ߞ˕Ts6"Z6R7"Gȉ-l`;D¬ca49Ϟs:CR,l>I˾#sJM7gv/|Ũni2lNL@zVȸTI*?X^AN<ĭ*Q )@G*2i9uI j )5%҇ h Yy>j mV fSZ$4r߆k[`\9,sUw㙕Y	~IJ'Wng-U_hiܽw.8 Cf ( ĠNP DP3 e +KW W(  vt"E(!R%DG ТV] vj6ToDG С q  @YP 5ǘFEtl [$ωѴ巶U'8C1r^^57^^+G]K򪟂7'akPr>UX?UeVCNQ3xf<NO3x4MháxLfdVfD3]/HTY/CQV2ƁOM,bδvŦk]9D(6]DN17٪{%0ϗ\|B!\O|2FOKV)YkdV2tޕXI@Úڝk)Z~H֤mw]6K~^ՇDŞ[=?[<Ezf8'ڹv<r%>pؖD65tKgT;Qദmlg_e|µ[*jmdP":v
^ӱsg`:K#yLHGķ~/Ix,r>{?'G6=R2H"N2^o~um[eseHh2uhrt>h!y-c@PC6s].0nC{(Fqv0*x3r5w] E[QI&T(H22xfm_:NƱTچVLe ygS4D2h k 5ߝ4  4Tp!fă {wVBw~l61l7V1Ć,30o+SCh3Q/ɹbś&'Fq>Ҳ9h"d#"s419hz1!N}I>i\q1D1񦑧]I d$
DBsnSi=vb6mJB_5a!ʹk	9z8jy!ly9,"%_BcqMCv3˼<y[H'jg-*BbVl]` oh# @zu^aNP5fk#jƦd)1Y; _>S1V+[§`:&aoa<|8tpQ8~x5 ù-ڙowٿ>'+K[]<M6.};L&8DA V#%YDKwrGpg{oRk*d-JZdǌl+H%?qz2H0ٽE@"%No
J|j&}]G_2SSm=w(Fٔu/Pαdգ3UhStW/ YHGf
k'tRcFɧ7fDBm!DK"Qh~$Xcgl%XmeՏxԏzCw4<BrOA.4Lb _MabJ5c&.ϔ&?oj6@[ԝ]{Lr|C`!D}ċwzd2SxWQ
%=Yn>{[w8mHC[-(=vdW8mHS7vSQ)´rm-,@l>yd>!h-<y~C6n6{'scV4GQ<hqZ_K-%z!s ͖/f<&l[29i- hat[+7/= h4	3QA jm KRL/=9!%?=;hiz6PG}}ړL4Fs J
V1	1,x\fz^W4)1̧JR)2<F~J9&Ťhrj[2JfpZazϣY҈Ycn~{Q+N?ͧB!@P
 mRZkY4m5hCgcă>tO!&xbÖD1l:Zt.vY$CeÏ-DZd|v|0xx & $vcMFL3Q4)94B]DBؖk,0FHb^{ۚ/3֐,h4 x3~ 2DM_Ōq'G|+n Ë=IwrRgkПt
 0BF`Yi`Jy,+#bXsH-aHskHGن˖8OJ=
Qh7eÇ/gM>`U3.*r1_OŸAWc]lQT0̸-8sb5Wd- % 4`8ÄZ"	Pce.Bչ ( B;KvH,5؎-sH`ʺ%P||*٥&)4XSqrҍv(Jo7dc.8T&4KY1.0?G6#/lAfgϙ,8i-c. ^2Ǩu:8	ꎱadh$t:>[QK֤wwD8"UNrP<)]Z\B+Fz]ǖ~jQpm%.n*>tn vW\EmDbOQkUbTQ^ r9X };v_ӛw4p * nV\Q&J -G+  bo+0 tHċsgb<v?R-_`,4Qų:NrtzB<^z.#2>OI6ۂ5~eSR?cM=q.ԑ0SgVuhclk'l=4KZyC2m֏uBX=^Z/D]0Q 4c5F6) VxЭG@))rI62gzEm14ퟔmm>`<wK2TwM@ԧI#n{1T;Vؾ>&j6򃑊?R8,xd~[Me3 FCJLFtikěe3?\aOzh-i~ 4	*x& *n3:,g}d^ajw%aܚO wObi^-Q\b}EK^ܿ)r]  38Ɖ5 ZQ c]4 gVt=Ѳv:gScűY_u	f&	wǹ%i̂wf >K58DL<ڂ܊> 
&t
iU樯BOf[}B(h<1P&iNNê^|#X=P:ڑFuYI75qF=`1}b8Ɔ|n͜I2OR󠸁GP=(gLm/4٨+g/'|I5pxB:	E `ܒ99Ȃ,MpGÊqTmpN=#Gq :,.
hn_E\zjmU*qXhx v%n|oay(s%Hw|4ဥuhFp֌*튓Ob~\qTS "qutL;"
A!&|XJ꩚x2f%U{{aliڞ(evYqg%xƠԗ"ы]yb/>~QU(RgabuQ$SMI#;>GfJY_OO[(=/}{L)ɤ+B{B}-k|e>Myq]FU[)/ T(RkP P 7D4	5hh
St5 : j]P `{^J  R P HWs>I!L_٨,ζ`ǥ3iB?j0?:4 y}ՠIR BO:r}0X<_ީjxqG
1Xny<m}5}p	k|6#}џ|}Ô+Пdڇз  xϫ2h }^6 "K No6
 M?X' -5*zØNUjL/tB]\
_Dl0-%s&32]FEuC2H<*ݰb^Wl⥨iϺꌢ[M.j3p6nڲo&ATL wPUT@`{P7A\ lL wP& ;	 ܘ l"@] m@w5 b@w5 :jYBw5 @w5 Pqγ75k<T5Y5Y5Yik<T==mP5Cx{nzxzxzxzx	u3o~_ Po P1A
%=* <Բ nQo[ ըm5xxp[Kk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<xKk<x+m<\Gi M=/@O6mz`O 80"+@G衊
ջ Ǽ. MUG@ˏ6wx:gg|K
 MyXe+.61	`Ɠ?1 i	Z
0]Fw4mXcG< *Nd0zHU0NVj~Vp5b(22>}+F 6,$2qݍ~M)m	  7L& D$f cW1phq9ښ<&
V%!^=iA<:ȲJH;W
Od:opX
2LÐ:f PF˽h#88nKnޤF~['dY<9$XpD@fc|Hyz=<ޖ.4\m҆"`X.yj}?~m_+F.(ZESjQowM(\4=JՉN1.7L3uv`lKޮr-uf@]V0]8sB-)'2VQpM->QbD$1H't?PșZ/۴ZM%Rnh:[SqZ k6xEǬΜJG:[t5T'uG4ԌaO&޲K,Cy^waϧa0}EpA՚/q脹}( <aVm*W[ 1.-V/k#?OM34'}RtN& q-~(s
 mRZ~B/{UϬ]
>$#	VرՋQ2zlӄ0dZ `ZDoF~2u#a[O$$DBuМYk6 TI@0I?s j$!V=D^)]ZfccrB{5R5<0R,䄺vdLR]3m
!"a4!ݜSw3}%Ì>e뀨C 402,@! Yq̝r'+i~)y-_~ŷ#oEvڿVOm{(_[Sk,;_տvr0Q>JK#F<w2vt5/S"LZWqaBeg`nu 
8 \is2Zk_ͨ|f@@GjSC:baX&"$i-@X,l㌅h%W,l|Jba[XJ+-esb]o/bhKpkLIܾ5_3qL2 H|"![bnJF @_q<z68*@ iqŘiti" 5ǘ:\A3jw܏Qga:Mn;6le#x@6n}޽f K.CQ@CM7ȄY{@+esI&"+g:(GAwg@) o2a	B`R["*ێ+BnK#=K%?ʢ39mfX:Ov<{NYȺ^ֻ{Z;VfRv'\d{(*"pH3?inX%*6[])C,Q/q!Aob*hm4o"4kbIOZZ?_υ;)bSt,3Ħ"aو*"c3:#(댢L!LHd㒵ݜ%Ƣj
RE
z;zvC+l? @  
 Xk  p- B
 Xh_   оtB q[v-A_`dXo_>BaFJ0
dra*&*52EA[BPf/TXb"[ESTiJv+cF6EY\j?!tgTުWyd>W8YLs*t5D$?r׊)wb\Ψp=O|
_+b8׊X-:Ag1gC"Qc#Y.&cXN>dcMGx/w\u ej+eԯa_q`_e}vk|2[#0W^`EN>E2Ū ؄&NªS<8nC-+C:";FPYDH( 9pd ϸPBTS5J?C!wb媺K=+!uR-L?!wbz<ՂOP>ւPˇ<BւR߳P>n
覱7!~j=S}*[/^;Iu^Fw=uq{FP>8A#Pvj9s/BN#t7M#nνm3{y!O1ZO!صI{|s9_=ǫou*<[4|'{	w}._]|4.Z-0( & bs׏ c G'FoWmVTi./2Ǿ k}^"LJ8fWሪh~\`w@ \"T'P	Ҽm@:# 6:zT;aЛ=nMZ5oG!χ3#0e<33RO9y D)cy3&b̳&Ղ_$6i<$dVu1iUxuj&6L{]	2ˊwW| rZF>2 () _ !(X&HAMi_Wr
{lƇ7B(/fu
.l+B[j*}ca<ฝ5? :A:(Ćѣl5̗Se3eۓ[7qrO8 fQLE9<T( и~@
$b||\ꌇ*ذ`lRKJsGRs9fAp-FiioS7n SM hP;R
iLkYɳQ2q`Ael4,hsrsvd(Ҋ`]O^ʺհQ@s@G? "h(R쉭@yI>36j$UeN(St k~]<%WWlAn 9-Vof7V:4\&j	 n
X/jmLUdLVf5V¼" #Z1  T2:<-}<͓lfnza0Mc=;#-\\t͢E|Ֆ	pmkkf JTk
X^^M'
LT$Ri'~g^ǡ{I1Qye8:Y(6m
f?knmD
JdE&Ozʮ;cJ Zi_xf2cUx,;}:cx2[?1wbQG KF*
X']⶙OvGg3`Kn*fF7kN$iքW\M٘X]&d"i,R`HTL#aQU~"<"3cP|>_{ ?%,=Bs.8CSir, ԌviQ;&ŝԌ* rӈ^s:KԁSK f, x|+3Q B õp@d(\  =Gc	AM-M)
4S
""خLtBr`"52pkeֆ,e5[0AOpg^R(}-^~.!w\cWn'mӽ'+!:[PIUzk.EcJGM(HhO
C2pnraV}gWlDJ-_,DZ4yT?Hf.j"i
&o,|tf cYk	h31&EYƇOQDjj5~BevHMfS!,Ĥ<@I֛bEC?KߕQls.
ِ/SG @u>)~l0@I;n6f<40X cQZeArb   5!(.[pq0Z88  \`WGؕvEa-Cx%!LGNt<߉ňhùp;'KA$˓ҐvZLѻ	H)"TIuNxA^5B/G]KtUnE>@X`vD4,l AG]OyOD4jxKTלz朹% v[;0{QBBu.rY]Ў/e=!ьᩛl}E&
b9E, lֹE)h9E#lֱE)(*^P7oڕ]7s'nwong8鬷?!{DڈrSzJ`9GV`Leo!ⷧLwj#"Wmy=~JQ[q黇Uѿcz9n7q1}#̳_.6?)unCqOxHO*e<xmEh7~^\V?OO,rof	H.s,g&ɢ@j=_cTJII?ߐAB3m~QrSxPTp];t$>3 BJ($#	E7j%]5I/6#l+>G<\Upe
dd|Zp6ެ47t;lO0s ވ=]4K>U#ﲞdt{3O'!ħ-w8~f޿Mpݏzoa
ȃyƷVҋGq2RFCf@oV$Ѥ׷.uvu9TNXjaؐccS"$!EY.S}F-auVCX8kNJK@GbL_Cj^T%E}S*SO$&q,$;Jُ81i[6X,zMQC<+py^ցj@zA\NNg8'w..y'|Mz[v7Q^6ۈ;3
oU8:Y%85MHXrugxLz<E."J\Tie`*$F|:gyZZszz0!JODJ7*zRӠs$aMa>=F]î
IWaGf,Y	_/*9|Rw5gMGp[Z0AUa₣s5H:ug'%?X磎4-=XJ.MkZDE΢c_lɊ+:4jVى^+mHOEs"CYs74+:C 5)?(C6XQ`݁zV2Zm5m2;PɰE1Ƅ1hUM/=EZzWTiE9(orft5*gqg:\ǝVZJUӜW|́zß9<|dQ}3K2cZo:|yQuj;nvpY]
K.㳝vr_)}Ա3h~cDRzAhJ},qrю鈓.1'iXGܟmO.47W/MՏl܊$o2tw5>iW1=w#t	wa2%qKCf#co0q]1=RGH_Js,N";XˌuP2.iӞA_5*W܈Pq4{B?AuA#sDxjwWo<;飉݋㏣q͹,taO4GV&*~H %yrS+oEeUЁ 3;g^;IϋG\8Q+ر/'~Qnnq{M쬗W!|kO\<*os#]\9Vڢ*>呸Bq9<&r;'"I?ʽGא-;LzUZnA?țio*lo뭾,!]KO*XYY6hZ3ڧݰuԏBAǏ ?]d>9>l<C{ֺW>͏XU}}aeWWQ~ʮ?"c 6|nLw{ro~0w8"t9VxV,لc,9d7PIU*L|f;@	fجbv/Znp9:Gۅ̞ƫ.u0« Ɏ&!R=Gt3~;s-XֱV7rVM{+a:HلEuCC|!TyTid.+Xku!U4Sq"r$C}fȽ9!泻Henﰧ46T*uo8Ew:x\2۞~<l˗xنb?,כёpͯ6i:uh*EHR	*-l߫xvӏl%{ebŶ:yVyBޗUb<BDUAH,;	EqԾ#lզ"y& ~K;?C։[]ąJѷRw=l[,pdɱ:tV25&}mwdyY6]RCiOEhѬB;ڍ*Ut9BuQΞ|﹭C1x+?ǕW0?߱Ng5g[p<}*R	7Iu,<IE IYRE.lS]#2"{^? ?B^@TMkE7KRb~*(pzBqҕ
GjQ!)'MҌP5\!j<GrbWM_aCN|^-E6/="mNFDAQwًu7/ZǓʅ0lq?yZBSlugI<f;Pά7=<K@߲J<N&;ٙR%;*ovTm]*}ϲwڟ=dsKvHVC?q?q5>s?$}Azn1ysfߙ؞$(4^p-=	C.L]D.(D!XhE<o\b#ůlΨ=;`^T%!z	g/4jS4b"{OF~Yu#,%cJ{<T.j~kU.sqzl~x_l7ż9>AZ&i1urspy}Z._S.KHL	q0HFK`|yYH#ggRA0tQ1mdP*GγnRs@l!:V/Kߋic|i4[ԩ&?P_U1ݓ,-PM)lB4NG#qۭ_?o"^6ۈ;Cfc`i/G0$[\'ζ١4lЋ,s#5z2zdzqQE5nȓɗBV~)s˭܂O&=1krTI ~}@B/k/R5Wl>Ӏs3F7Nl窭%A􉰫2Mj%.`z,B'Ƈ͍ʹʪ}ރ<ΘZ c.!\)~mE`wR0NO=IfF`{#r8@.gu6NOvt]OêjnBO^Vc3okAue<Ӏā](Xjm2
VWYDذh$'OSy3Uu^I'^&ډA2'>R\p?^0^`G;jCtuyr)<x=g8
K|NN>OKu_qƶd5#!v>-)w-H8x=.A5;s2rG/(tcη.ϟ43;]THub$]Jh[&PH^Bh1Ciׯol_]G{Ny{;"Ǽ=n(ˣh]6NeMLVrȻ'?Ov>ɎbN>ۀB?~x
NzAɑ(Z> wg&GO"wxkCd/qA~K؇1a34!H`U7)΍(Ud gV#ȋz{P{ n`ZЁ&E`=r%Э><y4!|{kNO+Q->yPU'9SɻMdPFJ
g^αk8Ԋ̯̏*,T6b:0U7e7XU;V;̔Srҏ|WG;ETA}KC8=wGQ{z=<{ҷhӁZzꧬ[}4n{z V8ʏa}N96>c8g%Kycu0,Lj<eq:ndÿ?IRZB&KTcn"*ʾh}(U՛Y<kV6L%֎yvWG5i[49^9rV&p.rH^Sy;7G>d.DKAnGJ,漊&ʳ-MWHƆvJQeyUUZ#9W[WURw4~1]K>}($,oO]TUpՏJT&]a^>D=sLa%Gft8XP#{lMtߊ"cߖS/yCEQQ$p3-Abl<EW[2Pwٛ?u%C#A~aIA@6fUFWR\G`ƣHtD ]6:/`c`_t}ܩ,tT	G̺4kx_(PA:cAG#4]W|?.qٯnGf*G!픤MAAduYf	WJS<ghy)_h!#Sl?
`>|?BxyC`TjdN.t5Q8
bŮ#PDb5f*##Qife,>G>.Mp<=y2?V̡Yۜ~p~aH?<,6^GVʥ0L>Yd>ٱ3&O᝹T;at[(<C_K(]yP<Y!|6 RXOlqR 5_~8ǳ4f%wT8(pcbH''gOV?OV??hҳm=}*zao?OP&s|)P~u\:\{ܯ^.QOܯrJJ 4K
5yI\j,)2K#DxˢY?C*fy6V՟䄸x!Q7S5CCmiÃjٌlig?_WRbJLMn~.šfsZm[Xe_j\~?F=2&tkQP7ˣrDK9႘[*SE/ȪszhM:F (Q-׶<2&[,׷)ܑۤy0VxN1$z :u!MՉUcgvz]i5&4¢'!'Of'qNF9uu\d43ԆQ&l/5&|#\UyaDlV4 b
dF6T3P~VD<zRvIG0"}{QWkH):fD˓k>*b/KbAr|ƛOr:qzʲ}Lm:jHGy^L!Eӿaq2'v"3́&q2 i֞ `q10 h:0NĠH+!N44/ 
?<ДߗwPAt?}#bU	bǬi,'Îo+3 Zv07fW9a#Wy>}\.v .c$Ps	QgHokG:.\k+EWU$9!t,PVfEXHA&R|ow%|y|1L19h{^,+vi:炛gdy<k׬XB7z OhJCRTՉ)hsYm٣nدőci'C>AW=]hG-e\iݧt)X^~s8Ů(,`
|-{<%f^oO#6oe8O~oԎILp'N4'>kE@!ՖsTfO5 +!+n*d~w32['%]ه/^G !-lHrgK?@uǤdL}- h{"U4 7H4NgK|ӄ/HsQU]0ш)76Sk\YPÌc= }Ϩ	8&A8&o
 j߃7vܑΆgFəPC 5 6@4l&h @ 6%p '75 "+ZV@]Hs v;RgR 3~vM
:)NG &!1 FmJJ aa/ѳX>7X=?@M F@\W8,҅ Q!M|nna$ MN Mut5@ȫ '5%<؃G]sBfi& "5MsӯD`Z̡XaѱfzǬS32l*23)E	}IA+q&Dh</@A߉t!.(L3	802,lcၹ\ S
mCs KdCn΃7C{S4P:#Bh8[f;)P~9'YiQ3G<g|lG`-2A5)9FCQ2D4nƏ<+@O8 |508g\GG=tc1xܜ~Ǎvx#`1zȯIxv4Z|7
ȮHhI{l~O?fY&&7I,%m.T0@ .X>@L;C =.@zGI/NF}4|̺+v|W+&0xaQ2FtN(+Or\[8@|M{lGNzr"  Hш,>M\  . MR 8x~dӠɉ#P 2l"kf>A3fݾ$}v^y<Gci$AXSdVd]цW)hһ/*uضs.G>t{ByzǲB.1*d4Ǘ?)~p3b͍<Kgn6 [E+7\ݰ  @FMtOmܾ۸}i7q[^`.k
kn D&@ h Pi-"'EiCN,P@@,TgƆ 5'.N@C4A h{$1w
U cH B~e%Y$dZ:gtH=Yf^ޔ2]ub-_OCZW},ȹ#n'8uUꤜ~6_ҥtGBKўܬQmx}&ȶCEX[~{h{;\læyb6l bPZ7]r ju oYhf8ϰڞX8+Է^)C(S`#3&=OAq͓PUxJ͞::lnI.&;rXo*T[}%'nDFnW=v-%Q&tb*e|vxQ
O`}$崫J7MU<woܼ{+F -ya%۬FVcjcSnt05D'xP[({RR~f3=N}RVZߧ
=I{j+,ᠭb,XG<JjTSG8"1i=HVR[)aꥢU}`{d0<G\7N1hWs	FZ[nc-.?,&6̓z_7Ugf qpWl
rk?N* v9zVk)5sH 9 Py8!]]pOԓ	3MlHb,e}E" ϹLXc*e?>NLT;DU]qquxyJ[6C9Z&,0!X~}Xu1v+*aW26a,Z'dN"+RD	4IiuCV( ; Q=0p@\(%e  :0s@Son_=MQc`K LzmT`
 Gh9 AiUvҧU6H!.6tGzB%4XYJE],b!Vzjk%rpĝ9fOMPxIQ6RQƆv?fKD^Q{zƂ@ڨTߛ0@n55XL!MiIoRFǍFSO	 iz߹DA7eӻ~,!~Jr `0~ Ԭ {jh]ۯ ǂ7KN6z{[/kYs]uiOAo{[:tt{_!֤jiW	J8'.w},"c{ā)`\Kgc].4v H8s sqJG)(})M\!NSe'4t(Y bhH/NKj7E<fw
nq&#%k[	r#υEbǌ'4}3D(#t&.a"0LX;KWpGēB9fEϿ^4Qd=F|jo#{.m5q@yD?Il	vBr\yr-&:zCStQU`M~*+8ngUS-/ۖLQv#vXyxYeYJWe+\exN\frҞgk|5n"(KfCM6sfJJJ拫øg4"٫)ه̯^䣦S]L%GUq'K̬D;Bsed-ޟsP㴵~aNO<\v#)VIVz\;Q;u0}֒t+Q/48bkL;xau}~8cNhvHʒjOW}}[o3חa}ZVA~.VMYF$r.C WEvq z. C5//L
čV6ɠ_4K\= P=;@ҶaD%qŵָx/7A=[`P*ɑua5T>toP;̓CQJ`2e:~2o/qO+
;	t4D[kqeGlln6W., &!N[>]~b5]`sEbL6U&dGSGdx^[c.[56]]C,{3 Ӟ]w 2;Hr̨W HJpf b"@hzph ;sP.t@
Dځ8̖L}p&A iə9`@ۆK ڦJ5_3}pe}V	]޳sf4*
ʶw?|si3`H'l͜W~~_d?l͖KبAωB~Huʦ.t]k>Qr
"lfOd)Ll23U#'Rzs'4mv")y	!(ꛪ$,Hš=8jOv(beݐM>7ho
-~eKmM-KȤ֐gBxPݒܴ?k} sh+0jz XV:]fd<߿ STXd `  )V9 IlHHd" Ɇp?q%0Fw,j~(n?vGiM2(u^\4ژ~L6^{	n^yЯִ IlCTozy4 jm
99Lz v4XyA TvjKgè7<LJvG wʹvZR  hd{3ړVڞ~Ҙ3<AQiEC^XDdAC$FcژlA۰ѐ@	tp{a_ƕ#%QPs9GҮi8{~^(":1#qjSZ^,os?U3G8` Pf@:HSX9S(vc+	BCYR+yθEM&_ (NaB]6 ~Jf<k LyZJsLxhN@#CӴi6z5eAU6}!m.e&LLYȀNOpehNhgOlŬ@=x9LpgMln ޤ
Z jۖ_AMX+֫xM{F=Њ	RcYY^MT.&Q<vn_tS{R(N-@I479bF7g \IR&͎3C(#(hpfYWqpveilKg^B uM&'_y M4 mkC@z9'(&Eӿ"V[&89yd r\z	^ՒC4{1eW¹L(O!VY_}-銞bj%vMQzdWH""m3֙6ٲZIMe'!4J(G9 do /Ex <8i,@n>Sbb7F\5EN(4Zbρ7lL?llU|{H'J|6.*V˿W7FԂGle_
q:3\"-j
ҏ#\s .s1ٗBP#DT$R
Գb}k_sMMK'˥l`_&+D%C+l
3ĐbC!/.6o#?|sc(INȸGXK˽GUJb*-8GO^]xGUəDsw=b93x)s||b0zRVlD9aanKЍmL7zOӛU z~<ڷ@ dR5Lxu
TɖD.eƴgtW? Pb9,4 F=J,TbxJKz.=_a2΋`AV(q[\Â~vrr8f^4AU(XM~0PߢtQcEcV|k,Vm/M	B_zIr'UcݕjT= _X;-&Y!CD^h/.(et87o^b-?r1.umseʋ	qC<#Gyg>CTw49UIzm)6)ByPKb.<ހ9`gy0"H0Jwǽ5&C1p#vG*>yux*2%lwh6*'Ywh u'|{Kl`u+ixd*(Yȋ1L
&}eOlcPD){qY)<Kvhcƀ[G~杒fO)I8@Xq2ZO5IgBy]>NGhw"ut^G6{Z?MҜ׼@5HvS۷h8Lųw9;X*_AiK1s5.^g/ty.]E1&[q/A;P/戾PI^:\Yu'KJI$Ҥ`2.LӐN,CWcXtD:@a"J#q̀N  Ht@gMD԰/Ftt@{	QdZR)D@ht k_&P$ol3 \ < pP n p j h < 6֒ : E< 1r̓.μ y\Qp;   Qp;9
n' 0G! h' tגRWn%9R ga4p
W9P1 iZz H{G0mqYkt2lG3`Jb)ԊqdyXZ8ɛ$g'wbu]
9dl"G2]Ab&z$a䠺^ԔASN-x卋x%q.m%)nW,zFG4*9H+=ߙ_sS'wFS6p\rXWUv).ȩ?Hq[qgP־vA}jPDD/a	ܸt1'œBn*gᬗ5_O;N{Sȣ\ \Rt疏uuZiLԷf%g2"kD:}Q(">]]u݅&M ḟf$!h^\t6ՄVCR&׾\MVՖ\O+\4[:Jc9uM}Cp_Gm@	h4n`׼M:xuTvQOio10(}39k\5 	0 h/cRk҂u5ۗ4/#Xt7עCϚ&(E#P`	-18]];E2skݥ#=-pWt3 X> X> $L }A'wiu @zPM,   T :`M
`:h & paԴKS-! 45ұ~\T0FS=Me i`14̦!M{r@ =:
o<p@MԌ9,Zc4i4
+ .j1R ҫը Uz@
 ?FyD nICʷ9EU: $(9t0@1> 
@OI(O]eV|@VV
>m fv[ vOPHs})^ȳ݅UJl+ `GŷzhFl4 @ L< ښ2 s;i0
Dm٨qa ؂ l^_4ʣ qAPgmב7s[1[;EبȔsk'j/Ư9- dsُ_Ac׮5-:{!eG~ tّ VGE%_Pg2XUGiVB>X6aYWMGCO#l=i7G5сKI} SXxNbp"ę VV8 7aV0du;$Tw 8̒`h!곂(ĞYlaLy&nild+n0LF#c*whܮx: bĹ]KXݗnV	ݼ.-g]'SX{jՕqh[X,K@f=rKZ\71nOZ96:&Ked ,J@C S O{}mu̦]\g<ܝ^ՔNP x^xiZ6(@ gEARkVD/Tą&y+?t& h zK:flP~|,"&;=6F6Їsm
  PlM/)
 WEq1:Nn4Fy @{գˑ%@>LȐ
@v=LĔ &d?< 5+V@W5+Ƅ FTM ǜ S5 L:* P,kT$ yQg5lC]I='+
E1.4wp EŒn~[izI|
GtI) "[u9zpȒyIXln/X&2,㙖 pԎbQT?Q/FF}1T^-@0C PW%A ],  k^Kի<\jd  wEA F "K-0 h9\J<9f ԇ]ܝc\9p @zԅ<4g+m!{Qi5]sp ".쵤"35㬵  =h[{RKkNtPZuͱgp>t= wU pW5\8 Ȯ9]r>Ef ?0# R W3 \hj0` ?nNpr?0 h(%J2)s)J&nә*jMS60NҠ3w$8({%T咩;iD|B}C& 1\vOD<N}{$xZ!ǝa&R3m@1A?V	hOp~z!lۢbYooX
ƭRҽ	^`ܟ&9 6@?
Rv`Ps|BeзoY1 [Z,'%J@P@9Gv;$t0|otAțteXZh^ T-l!M/=喛]Ee![d,֛ny5qM~;dv'lBg~؂1IjW&JF`H*xTem>dHt hzНGNUF遒:RFjR[_45Mym֖lFgJ 9.r@]`|	 i1Rܖ_ pn`?wh˯D%I pe(@@| atB\ `a2:zFJQ%r'+[#?=ꏊԡ~n6(MT7n4n;6?KyCR E5<es1"^$wO$wxdFr.Jn|UP	h$z5nWm+C彗|z{N , o[/UO@D^OGtq~}V3ܤ  78/ 7MڕQ	 c  7iW(3 !CFͲI	 \"  n1n 0ݤ97ԴMkKVԞZ,~غnM;ӻ8jumZ]}x5tUS[3f}f b \q^ ߠ_ؕVߠ[3 ~х y@jizYg݋\7"CXZC]I\o]1ܩmAr8Њ {OL@":xj{B1j
g.RpAgUARC=q\MOO |M?<;oiP4Hp ',9 ',9 B B 5LsmWOJ4WN8-x5IEXJJ)QbLyREgj>|j 1B1;V[Y6=VB$-q4@TtR_/_a7C7?. -DH Bx6RCƷa:&RO,Qg<D7	 :CZaG,xT2ߦ4К`͆ػ"Gg,ɾf6B7:p\'7s9EmY.h;v[bbEOy=jйq^Q;w>6_&ONg"?V4s!6Mnڔʕ믧3\1a|̅zd$W 0D_E\R~31Ufle/8:|j$9N}<1^lwqr`ԚmC4]Ԫ6,އ9bM:}=޳%a\ͶżWVܱ
PW¦ PP ^\ pm%<8J@a2s $6L~e% & RbDHWg&0D 
P7rT`	 MD:7L"I$g x   <~ȡ  *5 bca#ή lI/ Ul1ZE  jR <WX8_`:LU4E3d&dgU rSM0H-w^l;sEV-*dYOrc60?DU͕.?il :a1YfrޱOa+c( {y3	l_r"QwQq)vB~Gpgft[q5m椭c7}$N^
`Nqz!qz|\hpH5̈́z'mSNF@4	 H]46$* Hr	0^"Bx @x  2Q -k8p 0)xͦHvoЕ=/cz̾s9A @1jH3i-Fn`|btɉ7NEy*Pn]Ҕ,$Q*Թկӭͥkq{ۉ(]܃`ßҭ=7WWݾ#0#kXq GUqwART\ܙ,a~Dxule JxJ~d,rE5G_	 b4	 p &CM	p hLX+R`A @ISķk8 Rih)Q2jQE@tQm+ S$cpK@G!(@Ja/pnPà0Lک  F\ =FteACw0Zt@7'T\ oI`23\8 - I6.Uj
 q
4d@t4@8W uB4\Ktp .W65 .r2 2! 2 2\8 p)v%v-ZP[u[P[u[P[u[P[u[P[u?4C&9Mb =68@ܬ!< g @R'Z& L*0@SVJ	!I^1_  pq!v\'$lk8KNbМMp]E5*]gJrQʭ2M87U^\w`q(.)|Y.csԱ%Ա H@OJ#ppe  \ P  nw2[2') 	* O]d"uΤE
 wq2ȉ]! p ?>Ma 4#xc " .  . \+3@I' D8 ' U m@e3-6&A~^\LOjqtQ

	CL40/
0(jꎶ~+^ ,KBTRШApc/v8,Vz.~y-~L>&w?qol7OgBQ`5zk|wU~_t%Mp	Nd\H_T.˱|&asࢷ]Dodv4\Ny\=l ŉM2q>Y&vه6+D5|@}%=j3mwo=
-@FW]zIh<l	|{-]N]3SV2l_-JClE.oK-#
 n1Χ0/ui~D=k\}3?Ə0n?Qo}챈wG_L'mڡp+'-jLR֪=gQ#<;e+d5GB0iKMzΞobm1=@VV=6vBuOBNQ)5`>fmew?/]mQM)4_:=G_K=֡KCSgt>,f>[=#ilSѨ3^Jck!HDF"JHBZ̍DM\{ݛkvP{s+-ԙfYΨ\6"}3_6t6mYM(aNYM8EF0An*n>Q**ͬ[`fleFg4Z)fqꢛtwNECG&'EyAꢩ<Dik|z-f	5!Q?jmHԈuYa~.V/J~tk'9dWP3 56p0p -ǁj@6_.$H;rDϰO $>gX	 G9?dRt3̟H(ahkg>OxzO $BYHa9ء70Jx d7J*G(G-dX5|'աO+@>LMaWwi!Ð7ESie:&$UcBxʧ/6_jh|U%XYx3m(M͉ɞL̴Z/3p;Q1lprf q PްUGlT\ ) 9	8wxc DkCyT4|׿ߠAE{;"ofS1_t{dd{赧INeUْqТ봻A8Z'NH$G*y-_ |}[ov#W!>j*s3LaL7SueSa@ïAiqrܡB8ђRFuAu'C+B* Eÿ
ʜ#+ygw XQ5|,&+T`Jb>7d6c4X)sM?L}+Q/()t6}َ" :L x\u6u
\^2vRoʯJuE7	0nxu ]Zi
 \ JÆ0{ \azD  
;m ]3 I+mAMi9'-LH[͈(.I&҅r?k(5X=T#C#*((7@KB8YqF_FlyޏvgjP.#&{*:P |S:Q1C"A\60ߝqSH
bfblYˋr])Gyqoö,{hM$0<[ d4yB@AW ODTxNdИ0CI{B_o 4&&3&wں>K~'MO_s☙TY.EiTz$nAׯfEKݪ2\#0Cۤ7Nh)3
i4᱋AbiJOpFp5$x$wOTY1,!˂4'9x⹣MCӻᠩq|H{Hģhe:i"٬NmN7wȿʝ%CN
IM$f]WNWѪh
MDn[<M*𓚹K/.dAXB/,@ pѡ<.&͒΋cDU01*B*7_zͧ-Ԋ6SnOAJ'HMiHvz	K
n:R|) 03 hZ1 tQ @Z0@z&
 (i{q4|sÕt`oPP|D]qxqh3\kbG-d
}>8JTT)11)c>7cY+cIdN*FD
%s._U(3?gN%ʼ`X_)i&&9=7))h>f|4bm KduݻN8}ޯی2yqh湾)!y,>ϞvU\/-~rJoBψC;`Xۘjk':ޑ-Mk7eNfžՔڹ+&IġEY .oCC!nա` \ VH[턵1)#;\kfgտ.vB+qTKLt22+%K ^b#Q~c!	HAHɲdQmg48?]Z{FtAe>tϢ̱ι t	maЃD`
~ʍ"Q$k2jOwQrJh0>7Uk$dG[zM@@mSvT炃ʠZ?JG".my7zOƥIDt"z%w@ʒ]Z}_˶i4=Xݱ赹*b^LsvfһJ=6W6=[Dj4%OSףe@vfNmWOy DpdẺ#N*}+TcڣZg̖V@6hv~>8RzSJz$@Nm]چrNay`{́œ)Ĩ۟iOøzKUɉG.TٛW%nԱuGj?72&EQ)v5I8u$E=ࠛnBb oQ,pmX:>䐳_͎AOlMB37VƷv0Tj:whsB{B7"uQVDwA[@1+&'h`,Y6bĴnƷp8LFmc躃\8'SNg daKJ=Lq$΋_ Gב($N:Kr~+܃Z>jqEֻf@sKI{6_zdKǗӏنq}2?
?S3uMYaL4Ol"/_nf?۬׽oV8|c5BxxV:WZ~/4.[ȓƭ:2j6	0IxKLmlD֘5oba<	qľ>޶4\ZXbFڥʽ߰&d]f#`la)Y@d_,Ie")@d$D)Anym'ZgPg2Ony:}!ǐAi`2o$ku]	$Ggȷ@:YP 8<F3@ m!  :  H)mKm$%礃w	5ju0^vK!.a:#Q>JD1Vax&Fg_7}'5jsFnXٲF"biesoN+b	'ޓ!%4\D0{X60b::QZ2;8mLMFg)d]Jgm0QXCXnu[93~M*&02^}B/uMիn{aLb_˳+qVBn0e:wlzԕ="Χ"@]{TԈV<
Z' AK3 o"5?${| QwH+9I1a`	e$!0c8#L`_ۀ{cj qaCT0ʏ֚a&|8vc1	;-6l ,+y0LN<߼`>ѩӉV86:mt"ۜ%::
[І)Izc7,-OmNB۽ahwq
sh SPe[hzۂ2%9V]SfeiLDb*JVIl6MQöx6˝FMlkGxzEUN$[0L Sv=ĎCKDcYhEw&=8Ogwz?g11X<%CΖ3u*o!BGe/g!S	~ۥVCPIZ8rLeE5^SzX=զP~`;{i3ާdqG)@F:Gi
'*(*k<OO)%(r L7Z=i(~UALh",D[ A(Pb)_E;S;i	<G)oY"ChkM9Z%XGdi=?S>|`NG`͵Gi[v'-$2fQ:{#sl֖ydKPg猌if[a1?iVAGzE-dş\MP+hF{LL2ٕUeJ}X5h1'-۝Tn5/߅D|?HTBn-̕mY+goRSZB?y#ʜ'K2+Jc'7Vķlv3E4~{;#uW{<f/q6_=]GHæDY"bKJE1VFyLyh܇h뭔-S+%CZԕ4-Z©7tl\&ۣګצ+>InN-KLvGSq	ׇr9>"O> 
QuC -#sեTdρ:j!# xVe'*%C7&JF#Ҥٯ=&BzӋ.$h LXx}jO-a+(e2ݥ_rJ.,X2?7֡$E7Vb{W\`7=$ɬ0>)#62Mg4t>߳l0_~dzԼ۬P,Ƶis1{
k4c/T҃JGㅂRou(q?'(g~w'-xCY1U5O7}CGQ7JNAGQB>^Ҭ!FpX-0oQ2X-֠ױKLc#\-5IdvVd'pv;:ءfHu+f0α!=/VUbťC-yytaYU<M,9ӮFݠ}m0uH:q"u?.h^@Vp$Ԟ~-l͋tS(	\:Y@a{
R6cWz~]O|0ztn6m󶢅+jgbwϭVH$=F3O"DInȢ9C|#6 ajIG,T=+:צYEv}Y!ujA%g4y I'50,XrMKn{y,n&VuR'xJzNHTB a{A7nv$:aCLqF[aGQב4 dth*1}kDR-Ġ@.qB^}uHdȩ=1&G>%RW-`nhT4XpfNe!IZJqck֖
K۔$nGycpkt U@wrgꃆS30EPILoj"M$607Õ׍p8q M`4 HdXQ[`Vd|X H:ThۃgLi9tjWЙ`PPn\ P 0"]t9ئ,rXG>2jH7j[ ߨ)n]}\}\
p^I.MCN;yާUi$Le&W`䵃h8LKCUclI8Di6}p;1.TӧG/űpGdF&nG\ٞ
_0iX~MYj*Tp-e%OFg0M=ݾ|E?ۧRIc(bߦ.U;l&K:j2=(đGyph!m~}%X`qxǲ莒M`E=6V52}%VOئ@]%' 4h*_ID 4MùCHrabHM΂x1uS4Fc"~kB c \˳1)[9D:֐R#ot1у.ɧx| H-(k   ;8LS@Mg @;'܉&Y&+acn)MN4eΫLMqSi:)E~@	G-zym&Q,?*}L@QoHe(g˧ym3wKS&]zo˟XK~S~C:dhzX`Fq}j-ie#
^YȔ7Hʂmc@YJ@a>rd yjOP,R|w6;HɁuL]7j>*dkmgdR0vK& $Nmu
Rg5Mkm6m}&+(yLEDz ǹ@HS ?y-J4od#RnDC3Bm}ld\<Կֽ-dYjB!W7{ác)a͍Ah-YkϖK+tj"y%o]$?OLwΣk۽39՛
(<<;:S|cuၾik_{kJ/5Z
c"sѹ"BF*5t@o Zar2 6 {C15imD,Bs7RVN\;Mli~aNmFw`T<$F0$ԵȄ(HP
z\Y7VfFǷůl9 bKS2|$3xAALVq:* èwS<<QdBMѐy ֑FƈJxw.KPCFTy7zJ~mF#fou?<$h:1<KKf1[,) _W	XI4S֨ xj1m|蘆mj/5h~&!
 еI{
-ߥvIM3NhܧdsYS]]$V@
agA}15+H=HrK_)$g`
=L1
Q8ϲܻ+((w(nd0mEAvz>TtgkqTiY@D-t%4{Gq^t7e@n]oxP[R)a:e Ǵ$`}CDL3s>lw+
NVҋGL(WdU6<!Li	 5ֶ
o\5"kU]
N]fq?>1CckNb|P|+6	~M_5g!-V(>oZ%#$D9t1X\~/ɿ|zӽtz{+5`?|&?[屨q^k,3]хUJ/tڱn:%U[ݳϯq֗;lOKlEyelώAGX2Hc>df[)@,4ELzbsd:%.	 u#!T0 MCgA& 5}D|dHjk+;퀦sв.4@ p;Zt'65z5w9PWu@SBs}ul \ 1줎
KW7ou5W2y/72Bû2h9ŷܵQ[3(!7 \J,l:l^ɏY}PuRLroWoGA꼺v
_6AA3fo<V LIt$Q=I?V'N璘s`a,RSQauޏ. ^]B:W;4<
dmxZX?UKHyO 5Wm_ q     nHtT#J0ȡQRM'X:?ZҪ[@ vQ݀		0݇Godq*- }N4#όcKiT%qc%:Bˏ4X?	yxC*-D%>d8Sb4-JI_CAEVaF}<B?א>A#\5;x 'S4(|1iB/@KgLH;Se^$LCS-*$Zw^:ks"9/|y=8
(Rvs\q#ꢔR*pOyfwgm~T*uKeeANyx?lv5-I 7\P6b3-Y@hn o*\ޮ_hF饈G>!>Jd#vih/wk(RY#<|H~UiO,`Hp2@gJ C.D N WPY MJ$ \Q  J, &4 \j%Y  $ t fa1q>qmIr6? zӐCZHsd'u\b>"}R'P4,Lf+<^LlvTxyЉG  %dp)i.ax<&5Szv L GDJc7Zf'5OrB6fY#.ejKi35ueI 3Nm+a"b
ЄKxsd@ jVUx
@^?-N&|xb<(1mOH{}m̷6+yC& {SW&~r}m/=~٤K*wbnͰ%)Aٖ)~
B/[2I|f"E;O!Q)qDvBW1K<k	'Y'z:c,y6=]6AN6&Z"'`__HQ_) |b1SZV Jmv'2z5"|N\c2pNn?-]/i(b>!+!A^J?V˹@VCԻ"-fI4}2jQ |1"c~(RC3Ɨp]Pz9  溋'yƿ0 }r@KW(jj~ʍ?Nmtߩ,$L)Ws$bM2&wi4SM'ƁӃ"_#\wjǐ,el c7K3z(]|K^mhKhIn#,'?SMO@wqĩAvo+e|\w`y#vIdx;eտvlv0M{خo["N<ݚq7Mǳ)DFݼԌ3>f<U/ ^{;"9#ќG|,?َb-WJ{]y1ʿ,]IPJ+,M'wUˬ>CMt;Ê&ٲVd8_W;?5*MH~nypG߰Of<'O6U`^k	Pqgm (2u'b{uDQ	y \Z
iDJz-CFzD1{y9H%rrq\xNJ"˛Y_W7`':j%xQVPtDWPeI4Ԫ,G"U$/xr$`-uMaҬǴjɯ6*:_\׊\Y贒R{HCJՕ&ͰMbc\?~`~8~vVZ_^́!;dmIxΊ3=ϕz9٣<홵-r.KCBV([v9x B_h95nGiB*%6Fɳtw˥gQ8??rxR7Nk&S!>BNgpR^.: U1fcXU(5mIhx<mS tNN;  $著 0ڑ\ ȵ	rIM^`<NWpN_nh8M/?(i=/NrYDOOOO(~VTE&&{35辄3w0u\U>L#C/%rڡF!^kV/"6Y^XPU1E2H\^l<S|
2תŤVF~7~fp#y,iTƙA+ϋYV>~Xl g.IfzrԍU4oQ|`Tk- YQM0'*вbMx֙fSvO0nH.7^N.8g&x1݋OO{IS7W$^zN<[W?ki c,K!<Ix_u_L<v̀o{ɝnNtQq-%k5Fb֐,)WvPpu$<[F)3$&wVq+˸u.z`Mɵ_-%Y^VI<!C\fu'ؼuFq%\:Ǳ|	(Gq'	]@ʸ4Έ$,(38CJ`!J}mL!h'iC"$.b
OAmj#F$G\<uMbx5ŧg)O^LӸͧH(/}^Sj-Xل.cansXG7࿈	m=!L?q
8{0$d^'b{;W1xa;O(`uGŋɔxA;ɂэN LՃ(*X/(tU,y1t@uZpU&.B%%hxJL]DJj^D]yيB)%mFI-FDjEo:rԬ6.&Y[ӋŤl4$es18dɦ?,V%Zl
>|b@x"S=n9X`udݑl3F	]C7RMKLzg'8Cn<Wq7`~Pm:Ql`C*82ބS 5oɭsJfJ:W{ʼ!	5V6J5V>[O@.-8zQ|aUx<qGjί*)"+z?yF.w4ކ]x7<ŕe)u3hX/r<At3K +; M{shv ݹꅸѰ(	I@d(D1-fs@(@4zJ1&0&k;-8bU7*T9$"ŕv'1#,d:ŶV+J=ĵފr:N޽2* Ym% ,C4ash')tmΰ˳O/hgdAy~`qP3aRE8=owwє3YYitgH_z޽ydc~ms9aďHJ輏K0+,7[gZ{|j*_y
?Nb'H9etBC*Sup	=5>F싲[z!$zD)O ̆ w3FᕞB["+a5LZN.G $=^i;{fnI߉ȵI`ii-	 l/a4cA2 p4&@az$05a\unZAK~MLF~u5&oP@YIuڄ	"v.ꚑɀ񄧱|@X5[~/E 4M/I4A ZG2{nҜj*?3%$>&Qm٠[Rj~i/*Ew	G 6R8 z3azзZ@2`>$ZHK5'!)޼|+(Yy%~3@`BQ
NO=9tsz6곁tt q㋇EEPwμL{;`̵Den2_I*M+ Mi2_|6~6My'"-~D*9#vǦᯃv̓FTCOǯ}r:F~ĴEbBUC%r1Xtuѥ'tkn|V!2i]tX䁿Uy 3(=hƫl2nw0$\G4@$
L>` -0"_Ӈy<4!cJ?mǝǼDsÞ/B߄S֏158'sS|ݬ4U26l0.6AA.ft@K*u-K؆#Б<dߨRV9*yQ\.U=C*ѿƫ8{|5m-ڐPUJSc^bkSYkBNܷN?`c7"Sڟђah]2jO:}K3k|֖гK
WDsg))۹G'=Iq{lBX]Yclty;MlS1beb,J1g}0Uh,ʄ?`㎈|7^NU1vkE	juQeI 8w	 {/2!NF/Q=M݀ \ihM`j wEC
(<	ZE|l')ķt1V:*u+! УER]%@`l5s45 yGBKVM O	 8 ަU fV	@ lLhː @7$|~H/  lw;-M'0SZ4ӀZ uԍ 4q|
 |
hh"GqHPȖf~`x P +3 f鳿&pWV@wMIHVuOg{͛q@`pMd axgLn
@i©.P/
7pi-Nx.CCs'!_7:r l]CG4f8<Arc./ PN&ɜu(? KntaDꥅJXT bt߷!
 ݼo!=7tGaO[ AHŦL}&* Y\
3<b@HS5JB;H@	&5  \"ACD)mT&`i4*Թ>`P^bN+$ɠƱȜ|8Roi+ts;D24#VNXqd"@I4GV͆ބ<IW%+i+]w1QNwI4G}+y$u+SM*?x~ItҖOX:A@-Ʊ&N[>c[u8VdjrQ}԰=H#+i
xM->LyqE]&u&vѤ33Zx.NS63aQ[GNwCSQ=**+^A)bޔP1;QtVU/~Ԉ4uw`§)XyG	B`svTd5\Tmu?A{[T*X6jJRw83&N6P!vtTI1[(TAЄ2v iWC~Vq0W{EᜠmH΀2ڪ0Vg!=8VDF-Bz:GXzNOh+3Q'Xqzqx.N*;-mtu_<%i \6Gp0n" <*m4hj<<=5Trv?JJmyioRxT kx PÅbah5pw UḢsv8n87Y']0[)RYC,-!|xya@?lOF\W.Z+;O(nUmT#`INB VI ׁv+'&.|[1=Ŏdt.@?x J] o%@f.ׅAIO-%N'nB iʹ둠/JU*5[ )'GQs0\r f{zW|A
x8~9J<3udI gw9x	yY㧠D	q?j=Lw"R(̭S 3EI&5۬̐#a*f]u1#4LHFӂOzYB}x쨫b[Jھ23جևRϔOMWo00z?0-OEN*cSW]']~u8mHD^ԎNƏ籇OϟG2A~C1zLpw=\v"2iPgȫ$(ć^xP`WAߛ<?+0\vV%u0S~9m6د^ _HÜT}J/n+]=@*r4q]o6wl($|@|X$YWR,:D=TCSJ}˝ⰲs܉O>]B ضG2Fˊ&o;/n-AgZj&紞j}.>U~#l5Z=*K>o["+	]~*ʢf+6{߯*].htI~W+BzuidluqL]vjUX~[	VY_ZlYEi]-3^[7F
s3h?~cM(b|~W<jo~͡:`4œc^%3E2QIVG=>zt](j}殌=oE(?rQ9,xQY2ZԾ_YwY}Ѭ~v'p&n4t{~;Yߟv$򒟜~NrmGrTU$m<Rn_U[y^+|3U`i,3YAi/n)^%2t[kV-K Le#(n--V]"P2hrM h՚إT'gmyO1yq0,t#an	'%ОfCA bPbA*h5\L&6.Jmy6~S4=)atLxaS0g`ӳ~#ώƋTįHᨍUw	H rfFb&0?$;O+ުT%!L( AS9W^A/ХW~fn!젋<J|H;eŁflnOa$.=(Vn"z!8Q6ZZdb#z)OՀOE}^>!6ڃ}6oeΨIv2Kkq:>sdXuV*q{8Kh݉ckAW9XC}HQ;';&Iu÷Rћg g"8lvW	8ڋd[7J}wX],<rU.)EH_W[!k38ˉϚ84.ULm4~2Sp[;T=f=U0TGf3Nk:N^2ܶ=nRf~Bf+`;B3(ϡEB8oꁴ iߕ?o_-童x <ݐix+?6!j3_2g9oUN3$^`!LnDCA\^ =8ّy(xin.*Wx'xpqwjևO0毸Vb M9:8X:jDQ3~oy<ákWJ9|A~ 5#; )^]gx&PGgõG%"Mb`OE_؈?^v1߰5'Mk(O?b٘LJ PiD2 r<ݩ W$&	 W8) >(o.{Mlﷷv,c^{Ie0+ɖ*"ckQQVQѪ\ꎦͫߛpՀZS׺G}G=RbD%0 ^q8`]5B4vdt"8x:]t3]id?ph׿ډ]_5
Hɾh̠	5Yo+'mF|WH*+"f2yjPv	BU0pמ^[P
mJ
2ILC|9mDҶ)1	1'R-uDp:ג U	W*Nj#x<4M;g]x7Q7'$WPL!5$~} df`\Ѵ &[~, Q4I0Zm7njo)	uO	8xƫlX~D8@CɑnsKk鞦X猗yf)xW\@<!~-d%y?P'yt7uخ9H
	Ҥc`>}޽=1#`8	oonvGwh*τArfI9C
k ]3IG pE HbYh qppB&Vڔ Uq0	5j 0<(ѸRlЪ T:J+ da٘˖i4URo F0Myr	C )@xC=D( 4nAމf   MG	K umu/s? I@-}0BZKI(J,@Ҙk3]0):	: ;K@yogoQ&͡g\u=U	BjMR-ݸ6Uz4mTiCׁUXG  MI0R  _8 !8.Owi>Oa]  ?d ?- ?d ?4- ?& Z@>iNI
-6|u3BAPZ 5SUr6wHw{m_/H5~{[s\­l4:eQ7/(i4^}(yI#>9uߏ>U71tFy}<VPUGiLVoK@& ڝ8qǗ$ՁOJt W"]罅CLz0*sTy:"tQP%d<6UFk,P-j+r#F2rSn;ꂸ)!iQήhs^ݪ ,u:ZZ4$`/ŘquPlE#$&NleOM8=軧]"tb7什?o-&nOtXy[o<^cn<QWlƳDs+۹
DDuzSJ2xyJc*F#.Z^76[BMmLxX[4b5A,N$s"Eb+5Ayܪ"j;+qaQ>Gp,ȡC}
J*Y)2ts>_4{~l?zd.4cY)6pox9\kYh,a~<oN6\Fq<)|fq:ye9tFDyrG$2z#C~}3O|zPNML+b0{VQ~2K2tfX9{[?ρA.bSđpj]58rNիOg盗sʺC3p܄gNwIK7<ظEhh*)Gs^XA$s
XFly=?dD̐>RTHL\F5hՖ{V[\ +Tk[]$ٍL)Ŕ*1T+E2Z0rʜ@>J/P%J~̊5]WVyއ([Ӟ_X|H..pwFjlaaBz0/zZVG,ۖf{muCbT#ElWhbqɺ:	})v?kMƗ!!OibXws=׌&ڒW/sA's< /̫?U=	E('ViaoZ`yfM7rzzNs֥kb+\*(pֹfy?Ϙ_OdaOQ`bT (qxگ/}l^+fV^~XA\_&m^*9 Wjj@QXv?Aߩw)pq9gzn~#6մxQxݼWx Ug)>8g{叮=TUtZ.nktCAk;Ft5Z]#@ȶzv߉46g͚igaͦY'25fu૵	X;/Q0Sq(5t\Dj4c}/A&\`8	]e7SO/۩t I]%"](\ϤSCd߹-!$]8<etvWғcu۲jQ
Zu?$LKUntLѤx:ktz#6>a">K>=^lVǣLӪ}8CKUΒ:J:~nPNu2qTZix9oN}-ӼT$گvs<y:P_Γ)l@yn*<2xd{<N'Q'?ꡩݔ/ydPu5 !LHfaC_=?/#|;gwx1G?RRfC	 M\3phrGE6Vwb˰gw\NM]hD
 =.YX?	Ce$0Qeo(X=3mnߎφZ+d*i~K)aoKH0
^C|rC&b6	[" :hVgbu@ BƢry7&5eD<YbIȻ]lmN l9PlQ*A3mބx]ws \)FS#|wփ
xaL/M_yoJkzVU+y]4,Z?TY%d%~F&U_kVX#5zI3_}URU)~P?1݂!?yU7/yy~g8;ξs	[0lQN'遏 :Kd -u[)/m 顫l)(؊Zdq Z|586λddɧ W$'#L@V%7m_ZF /*@>ZqBVr@;vbp<]3  %UO;daiO qÉf,/8 X.Ny 6Rf P j=,S$@R9ETHcf5hg J!ha +ĄNF[z*Z:;6ҚhydF=0 \Ӏ	vvM ?I5@tg0~(SbQ5!hQ3!r2bF*K~C@t+<gȰyy^!\
Akb hf@倶T^P 4b  }0E` Jhk>UY9i  Ν  }uh  pE YAh j L\ փh  k'R`ֶh'~U>mj*̛ue' P*vS7@9־FYO ;L6r EKN݀+EKN@@Ԓ1mC6n"?6j@q P n&@p#47B  | % 0%KFׂSn|8I+-DT&\nNTi OcZy)nzrR&1_jSzy}).b LgF  Âe"-@2a"ti\6 t\q0:R>h7٢	 4GsӚ~FD^6z[oO.p5<v#@~h߼S<=HN谹DadfKa@"Lc=2ôSН<6K'.LߔlU@K%RYsXu៙8Ѥi-uacKLHD?9YOPh?a4h 0mj$ޜ&]zw,Sb0;	 a"  AMiYu'lN~@gr. B kt\^KS|;1Ego? f O 5Gdn !{@OPva"e
+fiSrph|D.I&2ldOdQ31I`ԡdF(\`dUsu<;xv(NPi,X/@zM/EsmyK1[
a)>m򯦥pʿNx<o^M̻y׊-}^KЉai1*xܯ@-m)VWPK|%H~{?۽`=\<;A\څ37,Yn
*bKWD%ZOd9鼟j	%2oVW9C]\K_.$-tITOH&[h쯇#[ϼI4mi2vI!yVث&[Cyw3{,>zzY{J{I{̭.aIq$}dļH,ӝ~4Jej4.kbH;yΰoKlnh'$z	eR_(+Z҃YPdɜVEyyL\u.ɴxz[/moݹP_;XL1M["O&<|RdƳ3i&g.[T.۴2-u2NjCDC-]/NV9du8 R'/M"]ɣ^7J@kpuH	з ]Um8NMIwʳ ħ7ځMx1ޡ
; }>Զ=
C}"xn0ߑO#NhZ=>aoAg譾g_s\=R@>ari
^8JTe:!e\YO;JJ)5cU*fWΆi/Jn
zHءy2  AzS?NdG˒XOs[C	o?n?/v'1kX8vښ*j<:vv؂pL4A-M5ۦoMrx
	 -,vS
o.~^icʦnhVv%ގ.p`g Ol9ɜt<ؗx<2f8\jmg\n|wUC
NqOJO7q1P"'8 HlV`*&P͚#[V0o A}:^R)l9CYIuaN<4nb>4Tb9]j^Vs[J%FGu*񲊼9.ixf͏&z跿k*"M^:@H_(VEHJ=7K
_ׂ$kqׂ=|I1S>Jqi<Ff`!Oj}U'hסCct`W'yR/bf_#Ge:5'm$Z/HU}=x4⡍:GO_^W=Tj=(#
GG՞G}[Ҥ6|qSl\"$=F5??ᇨDn7zӸ9XKR1NhE=>8H'`E 
@v @hسH$  2Cػ	ApCs NIuy?эIGZpjkiC 9̡clkkjk LmmIdժZs XM KP0_@bԨH#p^U46P8EAbgo|+m4ڥ]}П.')S)˻&"DZeVCi==3s.wPhn9\aD|wKsMy<U"Mo-+Ns(_N+<nPu,^e^x]Z^*"/J܅st!-XWQxr^%%Z6"`"|x
/|_C~,
@ &Sc\PObʟZ? xƌ}~al @ҳM"@.bSB)]@`  ?̪/"X\մu%DWc %ĄjSP`@M0L	@C40&hY- "T Tj<I 5`nI9NuG;f$G)I&aLԓ4䪡fxɻz h?iAmɷ3@@!LF8B ݊&i(*YS-ɀ
; p * \+Z@[k2JM rPT˖5u
@QʀPƸq*sUjP 5;v@C4쀦hWhi m;Z\;Nnj @Ut
: us * t *@5Gh-??PsjRCZj9CK5Gh-?TZjPjhATZ}$L^q:}t'KH6-^7l0aziEwn?YF)fe[];^Th\He[m؃w;xPe/ɸRz)NZl?=}WYs!UK_^9Ozr)$@\lIݏL#ݦI{O/85ެdXvĔ?~vRx:ҩ];5N}
~;x]}20jUCZJh[IL.?|A/8׹wɲ9%Oyf&-Fg u
ȹnZx"7Jtb\B(%ݾKFA5wkC@1ҟ5gKN0)P/fOzېb<>LE$b1SdY~4JZO!f(iH*965/
H#buA«P5bI8fcY5\MmRc*3TỹEUf.2 uIG/2>Fr	m~5Nql"nKx' ڂSQD4X=2b6q̇Ƅ̆L&EFmjof/ř&sN=κu aKl6-<𺓻D
9Ee/O& \Bc$*X4Sr+uz=xԫϗ<8ܼkcJq?]%=-;-0i)f]]R\M|nA^(iz
a((YMy
YRJXbx݇إfk<CRXnGe܇ڴ٦xs܇ټx܇ZQ&@ZQ}6ťQ 鉒&[|M@'4+7ÔrmyP&G˨.r̺:ȁ2 tQ/]^Do:H?k6^uw]q0;.oe˸2_<,9;Z()t[՝N+;a]%O/YEjP"%ϋw*M?F](dzs6T^Q8g1@ j:`0bF%bu12OPjmb0"1K1TSy
ZmX24bS"eT8vm&j7W <$ D 8fBu3(et+iLQT[ d( ^?, yN`ř C	 @ϫjϫn[8 BcngZ	Z&jBו*4н: :Jک<({%O0 Q6nnymn$7 ELAQ&u#It# k!+:5sN(nβx:}snl^B$ĢȓW7#<ra_r/&ZRBw41@b/%B68y5gDӿ&IRqmi!sӐ{?`fRάEd*-B.!D2i!Hw	Q!	UN<C"<}/B{
_d>^|7lkibkjwf/h<0h~ ڜ6vVwx0Pۦ_,7n _< L݇td:S&P 3@͏Cq348䀦/ʏChY8w VEt\)A"`Onا^f
uX0G)k(R֣xwxF}]vp7
`ݞ0{Bx{h2"yG6f!6Hzlh  ܬ$.O),c pE'y?t@$Qe@ntJ$ ׺3Z?hg~S}xID5S9@Ѐ	 9{U9yG@BB,aӠ{OcKip襤u;A>y%#dY{}Z+sW4a$rJ.f60Z)8_V[mN7oM1k+<S.'y܄?6gԚTU:o+\"I7uQ$W}kaNش.MҿeNA 	fon<=>EJ@QlY	D݆=
Ό<<>?S+!"-FF_CAοI]*E2BFT+kDOB֝dٰ`@?A&Vmhb
n6hAMqhfځN>Gp@Mt'DCJg,ŤTsC|<}or/20Np"<\@8bϸqgS>#@(I77?}ͩq6>TDhRw"° QT԰j*(}6 PCi Uwn<JF潨ߟVJj$J-j8MD$1D4P,y8Y1P  5tP$:(}J㘹V̠	T^ѰHtKںsC.Jqo>9<Wd.+E0#6aq"JRT^ IJq}~tOXM}v5K$а  r\
 @]{6i :# MTyox\<Y 럱{4g?k=ȒTv@@ ਷P	Q8̀`0d f*RAxʒ  G `mKjrM(|Mz{>ޜT=0EdϠ1Pת@E^CR~ٍ3T3 P&6 5mhѳm{ۻ(-4e'jIy[k|r	׽wjk+ ȻUkD5T)9~5}d0yhn럎99FC?	BgqkOJ P1A PU+ ::ΡjV[-_ u% pmj`0SL 	 SNl	M/i/&\VMGox:W+$h3]P}cexs7jƪ@!,iFI7&{JȀH*Cn&X&B]9sZ),V09bV\F7R.Iq[Dcwin?QLG )V]N`;kjYÔ! V$B 9׼|[ZL>{M|ü/攺UK`>^Oa.%ΎO_hj6 X9 k2 u"2T	A[\L ZYR,C7#$PUk	ֺ$A$oGm_ϟ xFRv,Ň+L@U󦻈Ą
yNGR2}5N86Cg; - uz |MJZ;@ES~y#(M5zf_0h<fwb{.Gα qH&M< P# & @hj؍9 &G3 MC>
(I0(ω>pAu mCљh} %ZY:to]lxJǅEǯ_Wׯ]XfsroPe4(#[ߧ
Yh%/?ĥi`;扢J(㿯OO* Q`.<6Ӏ
ᱡ;|MzDb0홅Ômr>6mq(e^˘A12Oen 
ڮj7_-W I\l޿.JvQ^.iz S5lku尨xUZYTJtm7<kQrʏ'QAA he\ 
Kw|R\L3ߜma)tXX&ŮNQUtuԞl6-Ⱦ>nFڤ	`HCђ FZy6VѨ"Y	FIkH88= *u	pe5 [EC{ 3@ fV \Y j=  >0tf ]k3C`u+Y .@[5fAe!0[k_m	_@  [_? 5p8*I85=⑒bGď.?AkkH
 <`E(J:w'h0(BD	r)1Wg֠^/,)IGrYz?D ֠QLz?ʡi'݀6/IެUi{B[SsX-xu}8BTCߩ}Sx9]е: y.&7`|jTͮ+|&c z: !#R, i )\Uh ) VZZi sXQ۷!"J{NrnT84 PUz^l6kfr__xjER`%d`%YU4)
NK<5=4iׂFR z)CHr"F
&S>ADa	Fgr]P8hJ%o0fiT NQ@ߋʍ4nsixЭ(ѐAA-u|ML	0_od)5Հ3}|Uoqk9,FC1Œ\д jpek@yQ*9q,dU߲IO|-us c1J	XHT׹8(ѫ}o(~Pݪ5%|. )z27|o}k2Ĉ/KO( "
A@ԏ6p&	uc*i * Bx@;L 9i,:r5ٍ:d. hPʈMT |	~9	JI4j<%Kt*쾁`@̀	̀:	
P{ $7H m "I@"9U2se.H	n҃1ý'RU]~ѪGMsvcD5.h3U/Ⱥ/kF}g<PLj
t
7Iơ`u1)F_)֦)OV*T#PJv2)`*Mk!_·77bt{Of}.!w=6X+}SE,JA*`bR~s.הCpgTVcW@s$Eo]μbVvY]h{Bmuٜ Aw:ROY@ ydp4r69J4Cb?>6,͐RuۉL/Jpk2F7K$Ǥ)-o"#&L1/6
%'"jp1O]6 Tlvc)_{;$Ǎp+*#.QFCs!Kk)^B8M[`=	m:C^Z<[cY"L4zтLVh}ZݻKĻaTn:_U]Yh"mWR
MJp׻{Y};@4DG]Qj΅3:+]\Mͦ<k#JmjaeU(sa͏ڇk_B)V
[(Gi5k%~sSs$
'eKf$ݒЍEJKHF<
تeǯ^CtoCK!ޚ֗<WJL 5@a "sY D2IM%9	G"y֋EX~VBP=[G%9$#6LTs5G %)+g)\k{2Zo׎;.{Oȯ%/Ilr|)&þeoM}a3w'(J Bn$DȻRڣ:?/f>융BfXV%Gn^_+iqZOrb-jMӰLt<PC~V)ߕg[!h8CGճ k;-!N2]tz+-noj U{tއڍCԨq#iC*sD$ {Q 4xr'BLbzZ/:MY}q$(d9'hR}],wuiϦ!w`Bkz}
y w ez@]KgV|gn^
t=B&)[.(H1\}D'6 S5t6A!, % IMX=e# <çV:8< aq,ɨRpآB"1*͢;r7TJQHQ1 =1Be@^($AMC  3oN@3 vfkؙ80
$u.>R+`3טW0|ʤM?IX.7;=V`ʣNH	Ff24k<Gz٧~umL51A L4@ǢM~V6OHZfEi#i;:oL4550W3<slcf3[D&'QS%`u{Z$T+f~72Fu-jM/y}W5cv4&_ah6 PE'Mz+;v؀]=;MC M2	@_6jX(;j#M~AiŴ6w Ul\7yܯ4z=: .GcL+;wJhcqf&B v<`vL.0cȕǘ2O]0DwzU0BDM0D`S2quLeӠ(0^>ˠR >H
<F P~=elu!Z[L q:  h ٩KˀH:@Xi &@5	 OD  YN>Ȕ$CXs:%ڶɥ»MV{"FEƏh?|(mϛl-oٻp7rH.Ibd]O|cwQRNb1<j%[sMÈ	?ON"W -~F
Vi6T\b{/GӾ${l2{4 PVjNF# xS$Mq义 iHbݏ5k6KౢErX*OlH=uFu{ZlDEUH|`IS`F@z/1 p@(F 8+2XR$SBt,I'SJBUJ!tgHnހ@[f_CV^'hT#OKUlLЪxONvJզڅ/>UbS^ob_|1#${[i¯%L'QL;4 tN/L&#]مt&U'XwL#WHڄeJ8Ry)EԦ>);Cl+IbY%UQ{$
`6^O
 j`4AY
P'mn?RYb	$cO
 m+ l8AT< 8JMV4b)>Vg7  ۘuh : J!R @[LkV$! X p&1kxHkR1eS2dN!!X(U9c)zԵ#jCشȲ$Q&/hdίak<҃HeS'Xo%Sp
(4x6Z031uPus"`{=C??>?.-^ggKW6L#^`.*kh$COUΘTRmJRo%]1fwWl]~2iZb<ѤW(xv5uKtJoxW=Քsj\|0]B)V8<m֍24vJ>+\Q`~΀ϙvvH꟤RP~5cK6hdfܤؗphb$OzH=5*b"ЉkJDb. <Fs@ߺgkP}!k2a(""B!ZYNKOwmr='87ѻd|/#>6?ƗIEٳ"/fXx47qC?d.bkkE~)$gt˯hE2!kb4	͆glJq^>{B`Jp
7COjAa|\ͭN3&E~9c:2lb3Mђ9aԙgAT܍aӓi9%rUĘC<%73	gv/iYROՁ?9ym,egoBS&vu-YMkNׯ޽7Iܩ%߿v}EJՏJֲ"/XJ HE $E *px_=6e/Sq؝Iv8 0waHWY̟%\VB,>x:|oDLyUɒ.ty>~ߜlW^Yx}9Xչ߼¾x3agHbdafa%,,		$jhiXkZkNoJRk^U{Պj5jj=g$9w2(uKȺ^E;"#bǒ0)Y, K=CRw|PI[z%@'ai`0zzc}D4*/	ih}|k_vƺ~)>&EbRW`3A}׏H.,w#Ċ_,V0NQ~H ޡzPB蔗Fu15;-?\Z)5vJ[th?6phx` >@Jwܠn={b쓮8Ұ?XDR7X<;2ޞ`/ta=[c]OsKHv"Uݨ{0ۈ:cCC=}c})]/uđWzTĻB5r͎P|xYȥT%9('YXO{oRoYG7pntI>op9]F	-V^,ٸ~ZmgHwo<`fU$<zn\TDwOw]T>ᢜúA,8EÞzʺpp	$p|'^m#0bm> G8Yt9f$p̖\<@#U64_o42ZjNCE>ǖ"y<g~YJHTx(bD&X_1f»;$l4p55<H&V"Mrk:
fm'˞$MҨhu:=HYkCRӨ,^il6!q}2oNX.`}ɂuƹ|k]3 fux~5P.!Nvdo
ɍ~;֌v97Bd]QC؊s8_7Y:Vp9N?ʃFoSKS]DX^gbY#UyqY6*$mHn	iR}Γ?f77QTJ	zV[^ZWjĘFf>0RĬeɢ|\WU0,8\C@zzΈ+{KV֑䟈'f$SۇmZyOFkiExCfK#p^yMRr*#HDFukw	3cvTpjS R~VNY*:K1t5\AoUҡu_QҢF-u/Ql8NB(h:Ԗ:1ܞD7ST]Z/wi8உ(w VarZ|,G
Ȫ-0(kAt٦`M,Gmc.>	GUιصVb;Ju'c)Z:uUU\!-Mmr$o%<`A)Gm5YknR1K5lBԔN")y*}Z=G2pY]R]PhZ7qU!:J
z_*Ie44Z݆.]EUꉆvV86g!i%2Y{$12!'[*["\H^Cna>g0{:b0E4UΤ5;@Pt`O	G2W^$+Ju
j#LU
}[j}m@L
{|,gUaֲUUަڮ(U5"T*I7ֺVT1s;T<_6R.U=F7p0S)髽.Y6&ͥ)WiQ+ohj\z]Qˢ9ϭo*͌Qj"Rhf"n"YF1a r;Tl xwU%(;S!?)/L\V%2P4~hw	Iw|,+H;(%Bqʌ Y\fȏpMm{ht1>yqlEEmTLCعϱ"ʚu*ˎ:|Rr9Jg8*P")9s3ij#$LG0934s|3i	qk<zd
.IK{'B4"w{D3ifqi5gҰ磠RO4~6OoRv&Р	egՊ<Z|onQxtg8s:s@1L!IMsYF7ȡk5bVN<Z@4.q >VP-m':܏ 82]h=飨^%ӱӜU`L!͹T`82'Mz6Bt 0c\xHsVw3iUR`bB	N	&7un@0'٦t%,e>`G/Pfgu	g/>u0Zӵ3ۦt@ӣ|h҃C"mFȤ	גjFG/93{E9";V)Yp¦YU!-uX8Ԇ-$0J+:Jk
u+gQSY}
u=fEH4'T P
ͿFS&oʱ6pDt0.ucGhE`rac!ܫ)bѪfA,@_L|"K$#SgБX)4o|8.a`#E©7vP0 W2LF{'	gx	l9
M+y<x|kkഋ1שR.!K`<
o^^/%7x#ud@$ô!4#Nm|,P瘷w~`#+:꼾+CH14cbJx"Se00"07ݰ
X&sF7
х05q^\-,C?nd%\ZB14AuraU\2Vꂓ/d?0tBa*Q!`^MahXOK9=3oԯC@e8,H,ѵFB&Px'Qr4B
Y$6⼩ǻ4ˆHь Nr*d>Abۀc׬	-1* ۠,RD7>RaX.'-X7<l~E6DB$",V9຿)*|i
Q6]aW`HJ^Dz\.8y%af2vP;+pla\{{룝1qxbfIB!eŧ<6Ja
Q&%sc<D15*x\V#mmMm6Dz>ws6xz9a/ާ.H	-!UC\`tkOq?W"UEm#xe3i|)DvJPΚ(-Vxo|PYP";U1GsLq|,-b0O	nmԪɰA{	ɘ1,P!mavWP5.[ 
_=&CQtL:uGgY|Xዯ*Rh1i:WբYD.aQ.G5GpEaD
ĺ-|G5|pwwlME. 6г5;4}q%7A`UXĺo1* $+ 7柃%$p :SPM0Z!v$yoIoH5MgpGU|8?K.\FC!gբ.xȐ#_V%?{E9#4diE>G,ѵ\?!SldgF}AckiCP2X<NAv>׆)0
{ex4r,~YC᡿ET yhWOɅZ>/݁Ph#P'@a)\~ZH v"]۶>'kzݟC:r`_+4y@S`Y,R+mNG0/Gm#<oF<o3nG	xb\\5	09wi]9./h@QČjTW*xG<x?!+jewѴγܱɬ\J+?l^XY
/f?CIppIC,+
!x>:V,BR
`)Qѡ_.XOYXP
Ƕ"AޝjH4+R&]#C1|ҾEecD	{_"G
*tF%oF@Ep:Ywniq|%lsu%%;Rac\	󝳨E>Bn̅ww
S$Rdߴxgo&ru4JRY0N\#p0_GagECܞAK*byv<LpiU~dK<h?fl7v5a^4=ͮo6"t?v6<W0چZFY0j݅/?g/+l~L6E(.%5Kb&$v=56EL2Og~:^vX8aU_p8mQ%^/Ꮫljf`bi#ʽhy_>ymz6jZL 2m5hO)aIyG|u#kkU0>X"_QY{8|cĹQVțe@*ȭo*q[`[,`q2>A.jZC(o W(H%~r0Mqs)uk:`6R*fFXxrxwԭp}IB8szir) <+6Y6C{%]KAeӴu==fTm;Hx&nG fSNn7sr|8'BAWz+.'iVYv6ʶ_QO84ˬ4eǜ"t&"3*;v3F33ʆ'EfAHFʡK*~cFʸ	nm"nިH\3q;NWQyxHi\)<_?Q$
'r@3:=@χoUv|?@݌o6(+_?ϧ"YVߠ_K3H9AQ~	|_4u	銹Kh#}L`;(;RWDHG?2ƄWR}
F&3
+2?$E8+J/60%63R9#Fhm~T/X.Íb4݄R Zy*$-|>r>2~̘a!x9E̓废0pKS^|Y
34e6hz	?s [2*bs[o%8WX0L'-pdHN2 w7<-hλ*R!`Aj{SlJó"X0ʷ}f۰7c[Ïn3xvCID(N*/7Vʾ/HxK)p(x}s"ގs؈(:PЏٻKЦlˣ{v_)U)R3=~LJ]m&G|X7͝>mGߏ?$_OaWj=֛;7?M-?};lN5hë{!p??բOx<}ps?u;m6(X{HVPc]rXu$ꓧd7f¸q4"4͒tt{>ڗpw{hoi_{\ @HjnWv?NNooN?ߦf
	PoEOnuRa7߲^zڮNwO-+pɚOӢw_](\d>Byy06FQ(X[~5uzm5~^tّlw0tOS]},yܜN/z=`މGRg]"Y7'Ֆ~p?N	3qE-2pG[%Cw=ppNQ~unǧ;F#wɚ~ц'Éx\<r|o/lԟoO0v7o{ᓁ{?sf]uc>ٝͿh鷷˪ZD<q<nHfY(2%E>$͉YͭFUy&꜎*iݲٲk:Ө< p)Pd8b qX3Qga>O'x)<
bC3@ b9L#,!hFGw0c5M̪B6ۺ[<X2Y/GxX@<oYxhX@֋<Z$W2]-<h]]ӺZ|1ΣŘAz=Z(2ŕFX٠[fOoGg~Y;	!DnB:A8x]d#a$̓Vh񐱀h-7)@sПOG#:7j;a8
(4M#{xRj;beo0b?MP}#3hWr	avB,b@A <Xf\WlÏKΖîh{&c" 3@ tKFUWLxfåG[^!w1?hEw(=1dQ5</8fGӀ-~?~4NVN4e>X<fU+F%G܄=Ֆ'p639 abD7N#)1&9 k3.Gh2d&,iodN@7gBt=aO`3UKjHDKG]&=C`Rf8&&,߇Y4G~*@x"[h`q"͈0pG#hhBRM8%f?*6}nIhiu" $*拿)Mŀ{A F*r@*f t%UuQ%;h@*c]vYSuOyiK j˭#c,%G4"0hF1PC(MᐧG\ڝ~@pl BmG=3@#Qx/vW#h{e BW[Ud#[7^o;FMح戶h@!Ƥ# H! |+yhd' =d0Id6y@yn|:F6ݒCNKgu5G hFctO"Ţv44%7(_cfd'@;a̓BЦ̓É_h3j7"<K6'cb9`+K6GR7P-p130%·eK#!Mī*0J2D{yHiU}f w{z!MuF(XtOd%[mqc_[^#'vȏ<z@CɎF#n
[2"t.ԣRQy譇]eRѼr_t;v/SLF.@@tp0އhm=ǃ, k
!Fb@X |Q PUF&% 1).C=EƖZPg:Bsh@lT[*'s@j W'V_а"a,ӡ1}"p~0t@\Q92K Jȥbao\!]q>Ziw̌q`xȓFͨ,SM4kný6QXZGcqM0	xࡵ
x#]g2w`؈h>T᜗RXW`ӄϏ,FH@<XG}Wv8v)G\;(tAkqQ TeD@
ȱ۰!ȱjj为!qն!qumCcCƆ UI%N9NDD:!0t: $ѣ燡AΏAΏA=r~x>óy{,}#g9?<[ó99?<[ó99?>'GHcNM!K.}0GS^[jTF/`=͌6d-y<2 / y-2-k)E(e좽db	!,50[UD-C菑?O#,}ޥ>Wə*(g@\ER
f9}N+Z *EHE@\"|KjD_Zqr
-U.TQ,g-}r;"&4Ùd9#B*'Y0@t(D*<Ч?l*߽ vN&l{SPg(E	U;@xT]9@4)L @tL QhvDb
{-UW|̴DJۑZS )Rɚlg-f;-uET3#ޅ?iFy̒}'h#Z	!Td f(L aiyzB\t<N%k_٤0>@5f*P*<MUo/@ER	?#<\
m=ffV8|5ghad 
Q<ŉ.^42 1x1%kE zF~~2W(6gչ-He餚r
ose ǃBӑ=MOŵSt>$O?STS'okOaZͻzp@7upNovGpfBH}ry|>ݹK/ukFR<V	Sˡqz4t+8&1g̙lkNO|?$ɮy{NoʙWvQm~.nF">wI1˗+˻UǻiiJiiSʲkGS{`@iOV f:ս[wbEU;:!3Nwa4E(I(jo4ˀ,}lOZ}ۚ kmݽ"7(fʼeֶɗd[mSVY	QF /~yd*.N-`3J#_hn-vc^#iy*uMA_TߕDV!zJLJkRycX'5-C]Ԍ$vS	ޔt5V]ݩ^egYAQA#uPKELTGrewݭ3\{g
p/҂}F壱^=U9
X B:Pe͉ XMZq?0N;}5D0_8Uubܺ<ytbڏQ`:0.q,|]NۇDҺlJee$76dnLײA86ȗ4aT#\l]`15f3ϷX26o9y#LR4X.`z)az$=rbQd:+7ޢ"xTU*ؗ$/B2#y)ȡsI
|ղ@7O+S:dj`kjp|4X24k	^(|pLmZRq2JmƋ{'1Wv`e
s)UL^G	(-"dVXnˀus4=SIQ\íbIx۵ 3
& `;hU.27U+Kےr*ŸܘWk-r\Օ>v֗M^5{.D0iYO^֡§!E1
%DLk]B˵mޖsו!gk\B-;WBW0 ;HfDD|2#ЉxxjW+w%BNef[Yb?m&[GiX	ެb0LXP}[E QuԗA0ʉxe .
zQ"wx٭\M!erboofw_ g3Y<..ش.\0\J.%T'SLkS~{ZINAG	}ueYq?XMڗ7[_y`%V8/dգlVv=)nb*5O,xJF_YKFr䚐Xlj2GeqRUb\F%G^O.oVӾ٫Dӽ'O]uyH8~i]?J-.=5裳)"a;>폺pDpC/+Bb5Ϧ#%%AM79%V[U^oIMwT:ҷ.{uӐ4nh$=l-;o>'/V8%޵{|I"[D:E;1dERNz<l>Sk$i=@VΥv"C{Ŗu(9LDA9UJhm`dVe?6NxJ`mNr̑& +NouZC/^3_ǔ3xHng|ZGļ\Y|)/kO`KNw#.>%6[l0ޜk>'x=>m	ZZ\>$c^Oy<w;UAt6e,䋴۳U_yg	_JÕ5~F.LSʺi*ynm/&Dci;BP26݅tT=NvM4݅OS&\_F+rU";Y Fi=GH`DWńH된@ӵgaM4VLƘM	V>/e+O`f9>Vzz{papJ8,J:UN,dGF'1hz3qlakąIZv}DG̯ˋrlp//&̠d-֖#%ǘNw_kJ$#+|.ӂQ<E9l,,g<ÁnF=:tFN1܆:4R"'5@ɹ-+tɕt$'G3\e32Ï#漤7ǓG֞uȑ4;$H5r!3BhuqH鼡H5odo>ʇVBW+tQ#'?]qyڶP&O.)_HCҌ뙡J7vL}*6KxNޙ3y)F"΃J&:[n=63ZkK,iƢ-=93ŲL%GdFKvL>tfɏ"86ůi`+ E%toRE'zfj+wQ21XӬag%#+xuOm_vx9^=>m`%ɘ)!Ȝk{N&"~s:.M)a.6pkꬌ3Em#ґ'6YN2Q&O74t<vc徣'zަT{wtJ;MVJALM)?g#&9w٢b:EHEǩ@ݍϿWr.%j2zV]JH^=^O}]75,}*em7 uޥ
^Z TsJ9*v(e$5Wz9&Vj㑕*,ug*$d_XVUyW¢Z]~_IXtQon}É1Ln-7oN7MVjon\ru5KY-mՃz{b<_H蓈ha6J@4 f	=L)i@2~SԉJ4+ߜG_ [ nPgy}~o ҷh\"oή [6{*+x_Wѣ0}bMޔQM3Fqi5{9PM-EGq؃K%ӴwOvG㑽+PyZO@=8DSSIާL>e׏;5yB%L~׵J2{Ѷef#GO\|I]iѺ}Q![MwՋ$bhmnKUU\\1_OYG|M!KV,>ضߑcDx᳉joާ?2300]~[Ef}tutGDۄ)@\%Ȁ1!mkB\	A97&DhA7"Nf݈ :#t@xFhDͨ]<.n4Hz=t];_rfq~W}֮/HoyZ%=w^uP1<ԫq+!c *n`2I`MhͯEk0ЈǍ	al9, >9hq-|wfa9dB4	9e1>kcyu%$WDcwMoU@ 4@J͛xZZd#s(}kS clc؜I.7uV!tS>8Xۢ"fx9{e6BF^h]Sf?fRO3^L"H^ˀYC+@$P[bъtꎂY:MG	Y`0wZ Ub:F_Y4gG QRȏK|LKg!A6۱
TPu(LǰըꃷsS( P<zuݾm;nKx\k<:% #, B+Σe`<| 7J+3@ иf7[_)č7" ԖKAa-+/h`PT֩aR&"b/`#'nD`͐*E*7\oG>hK]o Z.Re c'0ɔwn^݄PQr j{|6:CvWĄMmn渮0fYܝ'閌$[Fo( 75p,.pJY	t].%ص>cD,t> nIR'#|3m@<ؓ\Af1F{4Դ0%_%&rxХ
|"]BAtNj2c̣2xp==,@[AO5ir- I(/AH2H+qeE	Dۊ&Vd-j!7ߎh舮hꈞq#JF{[C !u}~4::>?7:>?<}޷O}~xzo}>s>sh}nMDc<y1&8Wz|zWj}S hhˀWA)`DX#x.!EKS˙?`@VA\B)k"~?NQ8y|Ol2npԪP@.E8mm 2N<ZpڠRP)%m	a]"acn)+(Ve] oVe] 7&*mBzOBRUGg̣%7@h6 o Bsk$"PCËѲ}~kTOsΣHC%KyhEGVcgT68!6T8@m/TN_b	} B:g^O'eL\Ѡ*sD{ Tr'@bHBVMVZ%ҪK6cH?D5~ 3LmaJiGS~#G!=Hà!p5@PI%|
h-B܊A "
`Z!#+]-@Z ` 8E3"?1 8d,d3&UXQ(xKF΅4 [~l|/2uDc^3fg<Y!M=?`n
Yd`}3 |aW#+qE x7m1.NG/@P[pZ
I>"T%LH@",<\ٓ?~wB5i0~dh
 zT;ׯFC^rY[X'd[y%]tzIQZR)K,~zAr(t(vPs,|[
Z2&7"qӡCc<Bd|1b@ VD@@35F.{f@\!Ny j5SZ;JE> QZy'VD	Q^x'1@-ϊHc>b%|CJ"z~7hZxka4e%}Fc)3 5Zi< 
	 ւCByH>+e=[.d1x'v`q 8ޖBTr߀؉Zh4-0) b`*ƁjCZXq&BMy4q&=7\v%wDH_k)Ewkd|9\Jvkxiu(^O3)O7{(/<}oy;/UdtxX2g6X:`sRcE:vJevsFjkge1(㵋LpU4up3r{07)E^XGZ"+i"% ;)${BZ^7Gq4%RG{uY%!?_cWD󯡉?g`v\*Q$`M'ǆx*0'G1Q;.VB{5Ofl՗JL6*}xzϗ	')6uLj9_VE!W u,RV,q2/y!6ZERº=;HR/	H;.c;a3f}Z}-+NAg<5eTFO_7J/qpL$*\F U[.4cC5)*cEeGݫfm i\{9PFҘ2q9(Q#mNtЛ"D8UlLናZ[Ej>9-L9ss;_Π=]ԗNNuxjD-S߿I-W35G'!/)WNب@Ypѫu)c4H+QwN|Z'~8ևOW`v+>"Wf%~+Ls⭬].i$r=$\V?lNm??G'zּ8gqUA`W'LWbJ1DBVgY/mQnU^Je緱ru!XeFKy<A\/	D]xiUjݽk]q<y'ymǓZlv	ؕw^½HozA-S$yi*cdo ۮ$f {"K.U+/SVU;m٩W_Cj
/F*,Y*Ej69%{P+*oNl[	~4Y49*wVsf"SH*lUkR	eSWmpJ5qG@0#)^73Vfމ~K%-BWeVfSM򵙮2-^\86*饴Hܖ'[ol{RpQŇ-B>*( *¯=
iղ(Z.	l>vZt->3'8rڎMDjWg?M#.)G?^t_^:mz^1(J<c`_+K/I2P|8]mM~..bn]HRv\}'6AE/Xm%:hwiK۸)*?}{U6le>>1Y?BK8Hv:'Mr9%,&"C1U)FGNrARt.=y;ph(@qsjm7+=7]e^WOhhL|-kV]D
R+ԻwA[ϽOnwugS-Oop)e>-B?ntޞ6"dN]YmJR\Fy]ZRxJ1ʬ53rI-uI۷cqw,nIuzWx#KR8IFVZfMdnĆ=sԒkv)Oo6..ZY|3]wWJbTi9Eyys@2Icxg\9Us^ ,Z<jJBÝjG?ӷelmh6Waq&x5Wj(FgW7SOV~YY@41>LUUͳT<RJQDƳ)>6)6])=gU[P]͠j.ejV;8WbriK0B\6\ʊ%nX3q13Ȼ)]]\9^^u}Hm͞r>H/\/^Htgr[Ӳ*zt\j<f.eD'EekmX%\4ۗ5}`e@(J0iK]S"#Vʀx!0e~XmN\oC6b]lHȷ[Rk*-ť}2Ԣt[;6>YM8u*u&^% T)oy	M5vJ)K*V<][]r݊[t˧|eU 7uODmyIn7g/S[#Y06@%D/s |ԛc%p6BqUؖ(LKk&֭N=ڱ7lNi]Eyigm,?QuY/S>*Y*uN^\R`6aQ]w.Hw^{.O P|q}Wx{z
rfZ^JjB||zNj4ψR
f"o^jdMȸ`rSLF'Nvf V.x{uC=As&' rRx|p[y\)>EhJ)IcD. Jt 	J2j%62t7il;iԴu'i2li+Nt6&Vd[ok9>p}@4f=ǚJqՙϟ]+=^O\u6;v{7}[{>ĬLT|+=Cehˍ}ۙm6=3$`ζ*#wh<gyoT"H.ݡ %N|.D>OOdA8߀9UiLpfY	>ؓ<B<6?|2gk	aD,s,/CHTo!X~#=J	'Q!KcɅT͢	Ũ8p+ٺ1VbN\,fy~.&<*n"ɨ1oZ8Z\EW%,&'<6LBjK2)tRCAx6*e]X:HXt>[!a8Q^Pi%M[n;>iڠ**XeiNo};n{Cӛ;-@cX}a=T'ˢهHn,Byz~S^&lJ6jޑzS:v9Qŋb#0-W35_0$@-<w)D2ȳll+=hMQ[-]HJ{boB 3jަ>BT$dwaqg njAbάH5vz";?hmͦ"Nr<[xerez3ZQ86RNMt]3*O~LjГ/|2ihY\UlD-:YTBT.J%4gS|_5kw$l2OCՀ
tQ2<\f/$l؟36]0.U[.ٽӫ tri5w1>
x~𪧷YքMci>{iZaw:U%n+D\dY!.*Q P}}`%Ba·u485$ўz07zȄLIbj)]2REu D6[a\F-:.v?k>D}7:rokxdL5!Ea{UL4jF{A3II.9Q%%j! 	թ$."? S9Gux,fU|l{_ʘFUC#C΃o׋uJ>W#,-y2Z"	6qrTm>F<3VAÞϥѡkmvqjܦl~Ͼbһh	vQXUѹҋϕj;܋Og<cBR΅jwؿ
!UȂ%1tךT!
n^~@M1,*Jo?8	6/%^W))YET!qU!h2Җ%TbXv1]L󒧛-$F]p}q6#
<S8tpey0bh(:C&X\f[_}18σAqq^K@%(.n6|6br&7KhAL/RUaa(㥗YY%=,|S,_FNݝa<:ƝՒC^ΣЋF9'R\myFwAejqXK#ZwoS:A'@v)t9o7~7.-3~O٘t{)nSS),ݭS:"	7@D(7>kyMmL+鷑Y4}7Fnր&E40fR &v`̑c=mr΋Z}/^=bʣ'/hT]~k49:k#E<<ш`yah|p+}5kx"n(|oD֛@
a/Ʒ?Fh^9t 7}7QAh:gn>yj)a(pozfY#+MC+> uO/&"]cXP,zw *l߉x8"8K.R=-cTY\l!I	Y|G(`JeRBH*Jx@"ࡼHkW뀏>8$KF`)&1.RCNiYϟ*/N;
/mVV#VeYX)mabj/n{{^F⼰YZqNiyH'62>6n/cϕW\{a/<~	x֢\C1,AbKf6aGŹyvۨWE3][ff[sH<̌kSw( &9qoP5iҭFe)Y4NLz?ӊhۿߪ2|ӄHUЫcU\C/ReT\[q+~i.*및$!8i{Vo³Vl63"ۤ\~
^+L֩ӆ?(MG&'z3êx>t;؂xIku%/A18w`eNU肃zVa.l|ZCeg9I|yX'ԤbzCz^ZC	7z>&<>ݧ֏FMxFn~4
]^ɧWjgtYY;yȼud>L"T=L/|_.hBp0zBo=B+NƷ~z	>=Hګ-eRal̴8l0tdg4 PٍPE2(zg1r7#,dKksp]\#PX^.zo-?SR4֦6MKZ39Mi>H{=W}Lk18Π8+WN.WʅrR@nPEvfM0Rgԅ&Lw:~tP~:)mC\#^0ǮcoQ%D/#xd+XlW͉Ϯ27.I75zT@y.^^(ndFr8Vz/C3(jiF䆓B:жq-SaӞu3wW*o*[;⿍J,$&X1Hqf\gT^\)*܈-?"2Y(^X-V"&_?qW`qϚ=NãW/l͝e4̅3 O6+$R1EkW~:?1dA"qFgsbZe?%|S՟?.E9WX)nvL, Ôⅺ[L~Y;-[ӛ'BFIZSfF(hqV0{2l}*eX(]0eOtɖr%%>E1_}0ҭoH~,0tb*3ѪT`84bD7F]ESz$.}'zG
1<ک#%Nɳ%n|Jqء0яƃUVL|6_WӒDmߋͭ=mu^(FM>sxw?
p҂Aj-7Җou<Ы8f|%<Lc{llbeg ?P_  \O۟(on_
aX6RGщIJ'tI(E\W
1{<xu)<W"݃Z$Vׅv`fوGPȒ9rmM\}vT4R~B cqsvVW~db$s^jwD8Vv"%sg鰄1HiPeGBR;vknfl2+](7}H#`@*t:S8ǇrUNvLkiҊRZF]\BbɹV8[97sm:ZhOkNx_<jo yEWm7<&sqVe%ǈJ`wۭ}AOτjK 	1~)4q|=>ڂM+?P'IBr1ĥC0TFPN Fnڰt8\	vq?fRV?r1r{'HO9xJ(KVϠ<4{raE6`Gb^'>.Fx.K⯄8txA+73JrecH|<L`hv^xM0a|$kگ>)DF2a	ol:FT"or
lNAdD9khPRX"|LpGھ$S=IcwH-FbC}h5 YMO<jمXJrV\#+
l:%dY)n{
r9o	5RI`D`6R3ry)AD0XSi=B,|(If91CB+YwR+1UW!<'(W]{;=<5ڐĮ||GYFAۿhwd.{/ܛi[eB(&{OK«{ o!> `1:TtVvS'S/yt =GS' <%(DmH<uil/sƺrAݚ@N2o8!b"0˯KKtEtO%Ɔ4곩M37IbaQ%tϚ!$'kZ 9JZ!@h$NI1R8 @]6xe,A6'ËhE֠Akj1ե\1D^ZYCex٠@d@3u(9Dy} `M"Ͳ@64\T%1=SQ4_oRTpwǵ@EA0&TcDj^2X=ˢ|U:˦N%K#1!U[@ҵIq)Y]TKĲ8u*ѐp ײ)'PRn;f7jĊ
t0^ɉdY!kXumǕRL{9m*Ch9WRi%@DA^ֹTWSI ų*Fhd
lD >8LJZB;<W]T'LtOt/5'g^v4ES·:RK*J5G
T\6Z6̽~k D!ښxLH~腒t~oDm#uTƬF&͆hD͙#dϔ8]d ?0Gp~22)xydȜ~Zȕ>8/\J1${$?g[·.Gx$(gW猩eS~x׸,_1ֈq^gOc^ço)3FBP`jI2#kAj!"|x'oVMfC=Ẍ́e9Ըi^UmO`ָux"ZVEuIs[XjKVEbij
]n~^g'Xh|"ax?ŌK	D/K5yt{4@ci&}AK8ݙR5schBuyP^CN˼R9sp"ibtAOѿ68=#b5=$Qh
VpcHDu'$eYwSh5rih+w#mB^mmWqOup33+*$SLִ,P6?tnkٛ&I/z.RI(v2
GrA_'ၚ̯yt{Yاh гq@+Ӊ.:Y8h4b(vj^a&x^Ajs!ԯJ">Zꗤ4%U^$
o!ѳ$SZ15"XeA+lU:92W
aK v5Yݲ.p<
t)ѤžhT /fپ}q(pu R^뺪:-a[£B7:p[Lk#Y~t
jdlqdɚ!o>G
|X@g^g#{|#!pg]ҋ\St,py{Gq>9[>[(QADhOk^TR(V,*͢,z>{Q71+EJNV*稒b
U*?ZK<j"$$Ǣ8(N]wVHPT(,vt$̠]աD諫uHyqA/K;Rh);/ _m\.-Հ9|@C29&xJ
7V­*MV:X.NI}$%TLt~h2Vz&ƱTfs,
}gMJqRZ-IrRȻUVXWQ>~MX@TBրv*ۻljcꚃ(7 \'3}7?icb<!g󵒱BIr9ҝv#cPk\ⰙԿW$ga۴Q}DRvm\A+g!??11j7R>,i
HăFgöX|h;irl
'1i|oZ.R%~c/ӭd^SNOz /5LV^lJVuumPq6V'S"Dp)y-cFdl.wk9$2E8nx*vA򭂒f#$R"񠢧*E9֕@\J/ml"$iYlg2Sn8[ɑ"b?2!e2GI>!^bz0@u5bk̄xQOɸc9oIn.;j#'Gt #&? _8?,v0d-W/vHh;8׫$K6gm!7"[W$&9*QIϖ ǹلt77*ۛk?-!~_V@xߑtPP]ĮI\bEkHѮ2o߄_OwHc8J/H~Gzsftj|q/,~
Ԣc8>R$A<r4]ٖQHmos	VÍ=PQnʳ<Y%9	؁T6BrGgI>|9d(q.,?6afkty~i=3jf)E}2t<an"V\G\7O/;tsf'/]$/~@5]Z/ᔄ8q ygS9`2ֹrY(LP)!+it~J:݈p6tFk\̆f|)P!"m1Ɗ71Mi!t<?+]g#:s}?7vH$1
O\ zv+[Hۊ6VŒwa<y"waJpyԲk/L7cԧcVTFTKN^АT(~Q;n	<${\+L6zSǮLqYx;4rfZ^JjB||zNj46ψRf楢Hl=i&ƼE~0 Wxxw㺱'=k2WΉDQ̴^!)%˴ͳeɡ$??xģ sg'ٱ$
@( U>m8~^'w+_?鿣Mtևߟ~OsF%c˟˅}/VVո^/v]߬烻dKL6)M]L tw,llO/Ş>{K6_?n2&D$n"e{bDh3fUwa8by>_i{@/{q߿׿>e+s!꯬'H17y}/b]C}DNj-GPk?]6qmuT|wKsRNv5K$~7~ yZiZ4ݬևG\<>{rze,yݾEzk~q*yP#d1C.߯[M5+ f^0vt,(R@k+1G7B=Ƴ`0<D*4\7N0 }ugè
m^M]C=<ݹEpb=B GDD F)
bYGzaDc-}>^abqM}'|/@4K,(F?G~:1%FB2e+I	C</	^Dl' Ybgp ZV%n^׾%6hnu	/S]+U KIri;*ƞzq߻qnB{a1DjKV1y8<+U"*hh<VM7k9^춇l}߇qK1ϻ_Izyev5	Y|-_rS3=xffI9>-"{̦EuI WƳCH+GQ)6#_bAtLE		D@E\ICP?̾f#oRJoʝM>jc?#A\j2k.pYt㉳5A0c/ٝ \bɄ_5СӁ7 Ӂ r_IbExpL~ňnCP!:B#.R)kEP׳e E]!ctC^_Ds`~!:PsĎ/ct$OF#hS!N`К#4|q%NDXxFf<ڠTsuXKNi:Д&!a>#4i/rझk28i爉78i1!qFHKem1xߏA$R1Tx&!ѩl\آs1r/aEnkK%u\$%B]G@Vҋ,z8<,Nxxb\s^cG^3EGP
菢	Цڕ_`
KiJm3`6W?R	=Sg1Vgss髂܈Liq
YY&U¯چ7sz t_BG$
oUE3Mo _@ޝv"1{	UinUgL4o-;qVlze2՝z9FLh(Ts\V}X泬7{dzjfzX5&Y)ñeex|0NXzmqeL9МCK}:c^X=@$(	zW׷t(i7@h%0E7BInMF?'DP>@Ӊ&[g8fiKd=$FȢ,Y>֨)>v*\Iz?$/"cie0fA*ҝ0Ea{,
ґGZ]q:Zcc. E<tCbu:61!̀(p"ot__uC4x7/j4 m`Sr8td߈!8wXx|23H|M?$Ӣ08rXnO~ii3OSo->i>t]{(pyZoB*ׅX(Ƌ9$֖s*Aee˷t]aW"ߓu>UZ&ńU$S^kY**[?E\ز;<<c^Yߥ*\ŁીVnA,`?yUZ;0gxPDF0q	}QSu;<4Ar? `X)x<TXoSp͆.hU	*`7ET IW*Mk :/,؇%Ġ *~yTMESax̑jNq{Խ6`+jĥh .yDytmKDG\U#\,`%`DC8Vf#}eBkh"HM'0<N[ڬ.yV!ej8~Z-puW<jUrj5rj z R퀀uŸ
[du#|aԓgN`[ujԓ)ΐO_ٚA>!R da,sB8%"Rdxj΄,@?exaSv-:IF6clk	eD0NLSkE$BA	"tOG2 Y:	CċE0܈Lr]ehЮ-H*0(C>UfLhds"K d/[-xbڱmޖT@.+?wxh_7GG7]"G"TW_
a]-BWKB_+=M{ZfTtDo?4K{--l~Op8ï\lV^gXrXq򞬹w߿m@}/=oM<hEgWmr2r7Τ4TGLQ4}!ci͘MQ:xm:*SӋ rߛEh t" jz+%`vSw)RWH[xC2']%gaO&=R[yy	2dzR_4QuhH≼jh>;{HGy8(q+ѯJu$'J@w`Tjw*Pdb&4HwgDH=H#4<j
|WO4Yid'*ce&듆 ǰEV>Z)֬ *d]'Z**ic37&軰ȻS9:XQRKbI|](p#XREQjO8՟	ø`}I	LI{2*ߪXS%_u JS=ﱁG4o	M~QE	NU`Fn=5,ާp'#E*kYI2X^-b ǧmS5}{]) ?.[>޲d˟;W`֚ 5g?7NVe@P93SꀢgHv#o6 ]å;|,]á4>DjOz7H"ʯF?4>G\,V3[\ c'fŀ@܅8j;כj+rB  jT'>]5pA`O<)jX<s*DO;Xt*%UtlTJf-"wd5?U9,:K@u9lHed9i~%F^;.zidE-nH+C?|-jwnE)1(Bei(f֥tY;:ZS/ yQs{R=gLp:K5o7ҔBySɐ:*X'(Ս+kl
ٸޓp曜 ~\Ir)oNRkB79BPW"([;+<~H7K
R)"-KYo/43Hè:"b(uTgyvٔ%rь4ɐ+= *À8ȋu_J28!ٛ,Ƕ~(ja]u蔿v?;Hm蔡.~Gl:V|$|1AOrf3p5F`1}9%U9I[Ŵe@ H'˷>R4yb'iDy(AZ  Gr{wdJU=xF<e88M66[X!9J2.!C9E+>Y$~3C)K>Z>2Wb[}fcdr*?fhk+Ч{o§oܧ;ӽ7ӷyj}hm~ЍMςʒ%<R,2h75TESNR-HLm9edҼL$7&NiH)
D 4<m;ɉ+q5%#x4z ѓ&6 ii@	tVײrhq?w׷uB94r+q&]<ORG*n+ϟR*:/ׇC&&$i光352KNEB0/IΗkR٩e`@9#mޮ~*(0+
xK2$dhmD[P=)шKy>Ӭg(5ܳ@q91܉ו㲬*~y\f:%^z~
IUHN[}L&zׇDk%c OZ N]Ӂ|Qr&)T?`)rq^H-v\qZ'c&AA1=~Mut)h.%2JGxCNFS͋ޕh]DtxWrUHl%玫.q#@% l!nGpFo%&q;s!hre@ۭz*Dxu֛P/
=OuQ^cf"<һRæ]bzM(06y=PlDVoQ	vUFwrU`59عSEu+#ՋXz׻TU]fǪJ_ܧrS";njD.Aեfr̫(TgմF9hnUVqR+9Ê{q5̷8:#'\9ZMiq¯n	D]qH|]1TY~_\	T+]`U`í$= /- \44|r y@wy)Chl%NY<S9A)#^JwH h3&f[coL)&E1<_B MƕwE4\~w	'3[۔r(YFy⻑Kx=BjcU*\k֋dF>=~U~WsE|k;OKhs`'1alB~e;KmU.cU*ZbR%i[|'mM_mMxx/4+|hjOjU1~YET?uu<{h*WҘ}zI.PO qRYQ-_6͌o%g٧-js-[8WcYb;]ht#˪(XbyLRɣDSW@PP\S3IsXBSׯMzPߌHVӡC^鎫X.:Z9y͆şu4=ܖcBgW?"`L \T89	p`l zє{<VӷE*Ax.L/4BG~$/?Lۀ"W/
ňKjc5WsNp6Fdb-RKKr"GNbǦ}v!eWWpdAXǲ!*'PC.vڼS14tD[<w"❆.x#%❆KaNKaNF\žW7  kq WQ'x@[x5^;uƫށ;^D @$c	YTcyb3]=砅'kz^y 	J4s+ǵAٷh>N09tP&F̂(P1ԋ1)F"Zm/)_EFm_a^+H#xYq3$%GRƪRJ[I-mc7Ȍ0g.jd\6gx(}БyBh=VL&fnb	s@;S_3}8Ҏ݅ ik8J-MagتԻ_C#%?x+{հT!x*WI3{O?#A%.[q FcB:AQ%EGx<=2YD82Z(\pPm>E4tS\U/PYN(AwEKx4?V58惤$>gRWk4$X
[]J]bes%EVIq=z#Գu۱i%m=ՊTVp6#MZ`bF:'#RٮU"Q#9}쪺j!d(%@W-eb)n6w8bҸhi!9!޶^c?aYq %۾2@0d 	crbF  F,ۜ!4q=ջ,3"2{ªzOr(jc~"S#O.fWOe2~}Pق5#V&:|WUM瓥9coĩ;~eY&ӇxGz~+nmR3:zlj,ۺg})iQZq4+G֎p&,. TЉj3s_Q_'0^d'c#zS 6( 3DF<s5 ΍
y RCo+q,uuSgg>N HQ=9ǻZq	&n# ׫9<(Zղ/ibx)	2E=_	2fs֟PMmacwYpHc-J@+lNoIFXv")y(1LeuQÊEݴ!eGsAhˈd6Y
p|䬜	cBCAt<z\)|4b#g9Mw(kBOIb4ɊG.;+iVDd_!$mGz9S^7,<\Oud4pf/6dwM9
)lұ|z!CDڵFLȓcaHDqjx7dCY(g75Z3N~ݷ,onBš'[R˵/>v.tz<r=Bm<B,J?mV^q\s51Nj6{"*&4yN&mO%* u1aWN:KPHU<`WtU1`;5qɮ\
*7<xpTh;uxE#+g &p(lOz[6#r$KT ±~Q!`a{Vw|Ԡ&Kq/1=/F1)M֏x~J{ukN.em_fksGzΕ4GRB	.Rj&Q	?T=>懞*Ab) .=f;@"sn,(7Q)uD+t =[O~~^hxw-iY֤DE"0~:O}d'TsUP+ mMQ*]?8$ζ$06Jy+Z 6^X1V(qՐIJ*`~HS^V
 YtPH}SW"9lGn<@	ߵk)|]GxGaIwM"$wAkEU&[nva.n{V`4E*I=ny"p-ټ?Iq G+QǐQ2!!$d$SScxNǔb'>؟#{!HBih7	фM=#RaD[9q	#.+!|CSz$Ӕ}EYԤVŌFp@1RX lxfV8<&=Zq[TѡMFmeKy-ȗnn?t3!Z9RӒ#4=kut`*iutP#@с$OYۓ'y%$DVsP-a8C;QN*3|~L;TۮyqJ*Y an:Cgq6Eʣ>XL&Fxzz?*[(+RKՅWج_In<s#'jhs(7[hٔ䩣!ZTA@K̞Qñ3=RE88Xa 5rZEՍB՝1uHR:^~"Q4A}EbQkBMB8M.3.Cza,D5Hڢ1'i|9'IYaCFĽe 3/;5VOb3"0-|XDfe$kt/sz.>Wam!^!*U
VqMSLZiN24l5,G%{jIvy;G$;,i:R"hN'f,)Y3kؚix*gz&N.mE͙/6hJawu+Ĭ83f4s}=_H1Mij+"h :x+Ι	juj(c_	&C%^LvkR(	Y.(HT\` h)bo3o6E+()PqVuq!?PjwdX3V݌n %ilFcnG|9 [)2w6Hq#|򖷼kL`27|ovC-O.Дg"xWTJ%**ME(l {ɫM@wEɡ2X$+asɀ@$kv>jS#a|~X*Ke"TJzb`#eCl:5YʋOm؆N-yjK˃v+|(g[A{)ńB/|OgSP jftlYeʁw(MU$T
y㔥mp'߯JAYR~X ?þze~wv˥(o8 _vEH1~jri6m!/|nLqCHygIn05IYl@a17R^My&K_kAhݞğ.B27Rb*57q;<h3,=f!PGn];[0\]>Wό,bfVJEU84 U0:ӭm);=oQo\%W3tCd:x1K2ɽ__Jh+sJ;?o&ZzNk_f?g˩:TB~A=mş9urhYE|ȃ!!c	"r--NCA/SDODw$b!K-9тH9ڗahᓳ|w;oGW$R8#eEbjYxNgC9o􄉖w2H;# HugW+ٱ=9]2$	ҟMcfezb|EOp%qꄦc:mE-FDvGi%Ͼnپ\G+J4FȞN&\nw߼`CyǳA*)%eAX<ɸ3lytS<QSWҎo-#FqaPzEct^!xEZf5̜ AED뭊ƈ aƈ aƈ aЉ5Va;	\Us<a(:;ˡn{O׉@{	@Yq" =h5ANS浝ŇLֆDĚ~}Q"MQi8B 'h0bB"S(.[M0Y1oT.߿!@}/8=o\ I&NzB_ΰRf&& 2!o	ʹ~y>&x|HTM[`Ͻ1ZXbAXb (B<fqݔ^{-"eWxL!⡇ܯr=<T5)7ճߗ#/Rj;ߊzW-)W"@=!1&1#Ӎp);ٚgЍf~D2]Jo"hk-n_}SCR65_7$1AW*{f?!0ML{~ؽ秼}	,Ѩv\oI݈cg2Kaqj=򾤪Xj%RI;EZ!3~:Z@\'pVy3N(Չ,:ѯ63k8)V_n\,!TNdFWɢn-rBqӓ<iI d ĥQOc	B87v桸#x
m̌HaH]>Ñ !w	{fpMŗK%ᗤ#Mtr+yӁ	gԪ<lLBԿ5TR	bMI8PSV#}K&jrٱKS6p*chkpe(Mi*u֨XH8]pk,$c9OfBQCK,KX`Jbj;\8#MpIC5uyגc#}X_A~xdQF(3O5`;/[΍w}e]@y͙vz xH^-Az]BbKBb+Bb GEQ䈢6!BbF1C@1!uOۃ@P :#-thj@DK : Z!픤'^hh_"Z eDDۈ sͻ kD\K#
@\= 3"ĵN'ǌh9ϐh׌hQUC!w\-~5j-avQW<NǸqQYN_xcAraᐞ$Coj/|vo/Vp1u<vY_a]-	Jn]G2'NUs e'{;!d<ŕ9ʓ3Qc?~[rv\X06+-q`@X`.;wICj壕2YE"_uIci#0A%m2XGrA1]bQwe_DAkKӭ<ԷUP-J<'v|
7}ֳ{NxtLB_~QDgZ )P:BϨbT)VAp8L$zlp+=)HZcr`8]٢mHѨS3jˠPbm>xH+dG9]ۉR$iw(8nR+C)!1.Vgbj:Ĝ:Uf>cA+2(lfgIOj`݈8HmWFG">/<xJyk$qI;o\ܟL\҃!!̣gB<MRu Gt`&(k(Dxztv}9P=EHS4l9;Bh%
t87\A]@;u,oŸKO!`\8+8NXyn<tS&qGr%s\>s_MB$\Ve18w &yB8\ bKsSkgA!'SC4wƅޫ/-X#Ť<0ઌ{~J8)	ؙxI#o<Tȭ[iÉHV]!cO(YKq仛3<@Β#a)C3Y3o`vnt,4̂׈^g'Π-?}&r@&-TȢ?#neAyi8:V&K6;;Þ.
9qs}8^ymN'l`Qs#,J/֯3{p9پ&GF\Jzmʙzwi<fucnJ{.d/5u+M3Ї݈u-`'c|!&ޯ
OoY2h[I
WlZpp
)-ocgw/Ji3GA <ii AT<C.!')l1IDzhЬ8ǂ*`Tqu>/Y@N%PE<9c"Aڏ!Pn^Wݞ,=	dqsNXD)
i{[Eh)Ďý^@A+Yy"y-nHC?|)RHcq/hKX'u)*<'>/Q6̉HJG=8.G:>xWzt2q*+j2PkoP7q2*JEK_q2?}I fqF{MP)Κmؠx;ő)[- ⶗]nNВgTr^FP:+^ғ>qț*Js\`.WvQZ].`H;˛C1`a9cC&yœB=ActTS/՛`6%Ydo:s\fz)v3*YZT瑣8"^WRƦsׇʞ qd*C
4Ϗ:,_5EoB!Ʈtfě̔Up(Z܅L\"xP@fl!pl8Sݔ U1n/ ǵYAr|_7",gk<ube~Na?6aVzhT!mmбD$(&O*6W
c+d O01YsLp"-խND]6Pam"U7We-G;A5^V]'{O1$Cvg[BJ~f?k|tO	U=ܣʨ̰,+V	r,s;G+eɻP>b٥BEjQLcMbqifA1MxKݨ*9B#fa,YVk#&@9ǆjLLDtYٻ'ɰ|%+O3k	:9)L2F5טZrVgy]pP55T6,Z9?$=X[ZU~QCf-:DհrliIH7t0lcCtZrM6F|[{ey\'Ï?m1f3%!ܺGg4e?m;UWv"Ac!5Hpt/9[{Jڃf_+xl\V?\"#<aBhYGC>a?͖V qOǩ4?AqCX7妩1nN3<hk;6 %TҰraf}TqDBB<D`8a%S4%<ф9[KƊU)1fj#ٟ zo2F&<K]g]>E+D1!4g|uut5Y/ٚB+3<ƫ~<tP/*Ak\Kaര383=cd~} \B	<Xs'ZRfpr ]-Jo[1,t^jסO6AloZZux{[i[@AȟvhfTdhZ$G&\t{O?'T1lS}MO2WrfPJ@x3`dxw@-5MDbRJ5;nf{䦎wr7Ad>bOPVܴپEzG]O58b.YI*7`Z)-y(RR6Q%=TUolWaپ\SN}a͝P~'.N:8N4;:m?QQzy*$?<ߏfx6^ω/12
!O{
NxχMߕtM}sZ) ilOMӥ$މʀfkJ@[Uaf)~Ƹ?[LIfn-·
29DDՌtsWt/|M~'|>&|vng~+Og5ʲ'=}ĮZjł=]<;#.|=-CTRV'/|B$ \lw֬Idxdѯ6ܸ՟ot{ LGȏzs#ec><[?XݡRO	`es=-whOl\"RN#u^X63НxgB5cᶣb $e @	j[L-=}y ,)a=<CpS[HwSo>6w4	h'c9[J)T2ÛY͇h[zYB4.j$9mPA.tL|^Sb02B+!Cm^I<V2`טp_lԞ(~s -qt_hFC#FәbCINgߦ:&!/e䬿q]RH?TtCN8y\[Ҫ7^	O3l>wCB0hMx9[SXW>*N2~XьX1w}8<ģf.C5Y]hby-knIYQuXK+kF,j-^.H~//}^}iή<f,6)&$<ӣyݫ]9~] .䳈ij kR=
<Bv%'Plil,'jg5Pb-,ЄJ"˘._$=`G4!cۓ3H <!jSaf6bILk	C'c\z!ZF D[_R(CcjQ\q}-<zP- `cn@4AEnY1.b͑w-VGW( bGo,KIVb`:D~J%ߕܩۃ]1tƿhUh
׼*Ģnb|xIq	8Q=MC]hAZ8Y_Q;H~4VZb2ݛ珿nJ7Wi*2SP ,(&* Gլ):L!@ejwp!hƢqMOnRx!y}DvbKx\<)10B4$>G9cCȎ=)nwdJm!X5s~0,E=7Ք:	RB`Y*S8:Hz!81  ʥT#]ʄĴߤN=1Ia2A8c6&TOҷd;J~btsI	H	z	2C\pGU*cag͚Z8x$x62rǂܠEv}>RԘ*o]=ԻPZE=ә*r}Ç7u{>GK.[Sc&=UH$xd-[G'+`2ϟݷ#^n߭co_'}}>F3A15bDw,\9}.9WQN0>\S-|3F"{n|Nʃ[0csshQk|5ZG)<hʲUsFGL~O'?]O%`Я=ӷU,E:k^WoOm8+*9Mp3ۚ	##8gD ;U$ES'2aGxHWU4UסG֕@r=򺨯]`D%R$8_0擥+ZA=ڊy-ֺ#RDSV>W1iתqj=F?'ۧ|ZO*csI	sz_Ǣ^,Yȉ]_#KuQ.Cr-<͌nq'Arn)gu.x֜}/\֤qҁf^<i:?q~cyJ_tke3d{SV5ETcQG܁N0\I cRKxīK%5M&z{w :[?ИK7;2UEM-movD%`s]NWG#'N˚D 1T19n45s^ȭ(dEU M,>~^ok$gO/(Ǯ%$Y%$NshFh@Q9YS!$I8f	F78e^ytѷ!TFΝM>Ndnn&	Ou%!w}nP/[$I渑#!,rd#GlMݱDEO*ͶYVA~#ȉܺF2',;#']
WW'咬>jEJ^oŊ1ϒ#ZSxiVd@Rė/ɧYߥ-OYz׈.s%o	sPc9[2ͤ8Y~
7 Ϛ
QB461حD4΋dBkDNػơ\yp'!zR\0BJ"DUSW`n'!]DMD?ˡ-:{Hd@ĵAQ}Z.cw}44ęhzCp8#/<)=ٚ/nY!~<}u}}MO|,JтRq]Wvu
0\eD*2^xۢ6qr c]j4o e4Nѱh4<Ab}ZҌ$7d0ǳE4_D"`*fMՕr	#МB;ς
A`|m,AH	Bp`="m\<-+<#r9!*	b "`D+eXC)8uQ(pfJԀLqЧ_!oeF64> "(SQY9v+j G˯Lt+#3C
KڻTU]fǪJ_"rS";njD.&>.88~-_y,K@ZBË5~uk]HP@5eQ>xaQ-p1{IjJS<XY`I=8{ ߃fR@Xq6*0.L	ƊFe8ׄRՋVmb3!Sc3mh琠Bӄ>5XF](hHYQmfk`-{Hn2 J>-js;d7Wb2'կ;Uc^vC(Kj}TR1bQXˡf>d_B5"Mza2"[MNZux|GU~Y-`dl`56LZu4P-y>f1泀ϥ`%a%N\LG=єO޼wm5x(#F(.i_[6ՋB1ۘ;Ck^]
ūPe[d!ci	RN3U>ndǦ}&5;VdUٰT%`y6=~@g:W׷hۯd}LW/jiY'x@zx) )+n֕{xۯ*ty9̢xҋ]{©%'
`p<sUJB-ۚ4u>~74oEM6GI _`iglGDmr;yԦ#ڙ"@ˎϛDDhc=6%n]۲MqkBӄ!ږ$ժg˞+KJW0۱DBKv.`f;anZo2˖sp1qpWk[ $fԚ6Εg`b灦*E3;xAi~Q5~uIw}}KSZT^xcLp9Ң4 ljn^j XJSG,腀P.śo?w;^,d_UQG&z(pz=^PN<S}O,5PaMkK@d	w1}ߨ!c^,۲xG pTX` `$^uL2XnR+3Y~øywzH?`= \	A^ac/#LLB~YozĘHl;Y$:J+%C,ed=kdr7zPuCzlXQO^3FA@Ds4݁~c+oVI5$[	T9UFUTmF3mW
ε`i^Wɵr:_FKon
oe抙9j5O&eªlDRrnф8QL]Fa/}5ԉn PDWCp=`A`̍ UF43I%BԒԶl0B0m}y[5seN\wsf|1oz_O
#Xʆh0
>8Z+Б	\>fL~?:Wmh@gU
5Gu$i}$Gu'Y$F^U1/T?;2IB6qHf;|s ,/PW#,nn~Nyv@[[uzU:Kz]z%@:О ׁ^PJ4Vԧz(*԰	DQ6/>Kui02i?n4{!$wg PSO*rV҃0naxڥ(+-=-X2_rڗ=iV`h#-O l$yl,yH{<W(cs&ؒY,Ѹz"||ʖ#(A"]ӱ_팾ϯ[%:	a\+tx(~7Q$57\ɝ!1,ɑ"H"9T!|Y`#ɏ1~=R@)'4>aXջ&iu;sxݼO_AX<o9Q<kC!Ꟈ4Kƚ4`$]]fNi|:Q3)%.dojwq'x܉7I͆D!@=}]ύ B1!A2*3UnCI3V aucXgoEI]=OnُxLhn2uiu!!OF#L8X6xqh8}c\fŢx!¿LR7Ne&ڔ߈ϱI8_:uVWX@9FaeYbGBY)҃<Ք!%}g5k顙[I]<ٻ%7[̓pg]>3ZI6T.􆒮NȧSea)H xJKM-R։"ǽ!zw	RgqdDVsإ~\lV[ƮmZ~O6*6+y$Y2ƲBl}jԕwD3aOiGdnH~ְ֭3W| C9c`']wZ*ƹYHe!*r;6}(|%Y;'aD4y@s5M5P}R"<gJ>iuAŐgf밭2?ˎޓZd\ɛO((W,Ǿ"$M&in Y|A^ԁV 
4+М\%܆3)(X:"_oySH+$9fc~kԖ}o5om#q6B,cY<5/$r]x%^L:zvG	`HrV|57/uf]*"O\cz3{̔(~̷,%LX##ެ&?dgN7/VtzC3:!NC[׀H.G'T2ԁ7w݉G.b39yb
r?8K)LWPzj-*Y #͔2rfj/c(Јw1РFYP:^?}b8^72 b0"GDq'k.CHg},:0H@Zk 8x\P
TUSǟ9Ϧ[U)i .;<fP:PGp0	l6j`S4xPJT/t5Сn0|ɅWA vq}oOBdV$yb&'(2j3ROA$ /,)NͬҪd4̀i?,$Sm~D\|VRYJz/kT B_d?\Zb~k{ڐtyT^>8_¢>}>ԕ%E&MM冐$yT:veɣ+/n~OftDQ̄,o(fF3AN̤m)ysƥn_zVIj3-ٯ:4<m/46Uw}2Lt5WϘTuglSxɓV$jhxsIf.N(j5p;eK1X)o1U1V-ҏcB$VwTţkUz	[3J>ӕjDZyAo!ՓshIÒKzf
Oě-Z'kLagƟ^y:XRI@b.1ֈ@@Y>)(Əhf9vEAAkǺNo?;UCԉ$F*!@X+(DiMBVpQ!s!q䤨[yB֐;h-;':"Z~5xZ:ZEѣn>>*.ӓ cȻ%qAjRn7qҧLUj̇Hj+?uJ4q7\3NPn89UEڄU脋).t@R؎/˭Ay@Nc$ws,A4$SIs<<_SyH`SBxfӿWaH=:2"%#	zJRSÓae=̀.C+}Sĕ-([|,vf+G],&DwE-qg6n_AL;S7!xC=
F?	b HYG
#:Qa Qw)~=uH}9=A`MIH4v!< B;D@h zbҬhg~@t\z#Njost(BL~5Ak.9-x,yKPDSES Ӫj.l㜨]CxHYfèjRej5Dj(RATj=VQSw࠶H%=o[0qsD۰!FWym4[;A{AAt>6<jĴ_fYd+`ְm`7ḃEyжvyܝ`ˮP_rT}UrfBrq#83@ݐAT!_hDj7B*q bySK9emE/\;ԏp7K8X97BI>D[;TOr}M?F4\.:-1܎^ͨ;Ԉa7KFwB4,Xh9<)Yѝi@{dz2@7Yo-/:,jUQ绱XՓ=څܲh(fWQD9|D}w<_u}J{\;ac0:rZt/D#ZkZyr:LEV1?S-YJqT[?]81+ҝd囅eu)=D.]OJ,ҧYl+F>\%F]SHhƪ6e6)XR;%x%w&HW J#8o?şk,-׾T?@A\tX]8;}}R~qY}I>o%}rY3ed@:#gEAؓ8y6Swl0s!r9C0RaD@wTcD7r8p%!y0<l1Wm]9\96Ķ¡M4XNj_ї27c[2G呼}CSSLǜ,~\QD8
4Hnxݠ\T&bgiytS%ڋLY<Y{^Ker]	U_AT8QÕn'!:ĥ!t!::ĵ!RW:CtqCx: Znh@DS : ZZ"N'yUwB'΍멈hy=- !" TDt ] DpK !"
@멈q dN'G4UDߌh׌hy'!:*BIaV θQ+,_Jv -gU4C=)(/ŝI&
n'H}OÈXeM,+8}{ޭ-a5A޾440Eb N]'˖?vy|#g	>,uaLXjVߗX}*`Tʋ/bՙb=[qlN_3;q;=˘w}W|8_EMW3'TBD!Mۯ!ڳof8a|{fVp>gأ6L>ofpK!bogەH.H`07ŷe=$5sgf>+)M0@SUm}?<KWՖxzƫzeQegز4AIq+/%I9Wtɹja}"mZ BhҠyRY1UDASS>D^ّ1sciEHT4WS?9M3T'>q!)T|36%>B=V@GnoD黌T3aIw/GJ&p}4JY[Nz]>̖¯?s@>6pj+ʖx^/OlWԖTK!q~AOzPEnaٕɩ"8')D~b֔,t:oJcYُIyE!sTF C6Urm(kd(RF<SŝT]y*+1=qi
@86>PE
eF>&Kq/1=/F1)M֏¬O%OuN)_Z.*cFߓGvlSm8絤rh@\K0Bv?aB<ڝ7ENbw` F楠ń+oи(myv;csУ/F-Zyΰ:T,nLÚlC3mlJԂyJb1þr6)_1%e1Wg/,~obae~GV̳?3QopJs~mSH랓voI.]0*At/E%y;]s;brhg/;HgZP:p8F4m6&ik:%FP+ [υ\hr3E@.49"4'hB0<BmE#%+BW@7( U_Wk@(!=BC-PޅrEBB.Ѫ@ȞC8\T
*eBJ]`~DDh uGPz'Ch<Nx!X+kqtr5{do-[§58 |W~s>Q{y'y\}"|.U>#̞ ;@;OcvBg3l6Χ1yY3frX٬b޸YeUø:,1/jWUK!?G
y9R]cga(H~6GR(G6)-I/"b$9lr>ϒ6řX˂j%Xn&V:'2RWz~.>O$>ͪ5G9`մkc]JǌO4N4J}vhl"/z:<ZG's ;g_wT j+?}\ͺN7R{Ŗ:Lk/R~wOhl:!S1ܓH#f#% 1D+,L^yw8811.[?IzC̾ڴcNM}!Ju=CMW*M7A+jkJ)[[sen6ځ9Bt_ќ+Qp1F8-yf_*
BN43%Oj{!Q43/R!hH}T);v1qRT;^d,<L3d׎
C5yf?eyX(@e(!&>z#
b8=	!YHB?		<*R&!<uJ!q#wP|Cϊd!WPjPӆSDgLuKU}.An(XFt)%0&qai$ɨ#7Ëi.?>y)ꑁzuax>!tg{c춇lB,94,b,JT$6tD1T=J\́&`&!EK]-56}UzjVou5[يlD-AelA8'Aᓉ5FD|[8U1ez<qjO,߁%Gc[>㿤AgJ	47M*/)!T
*?w	٤S$8FI񃺭r.BWYOZPZLCP\EpԵI7qx,v-r¯UGN>E'gW!eFD$" @ȤeHm^h'M|І"TF]#sF@j4Aߟ^W
tGA0AbQQAv@	4TU!fxs%g+ś4OJhwS#ڪQe#T#<fh)ze#p<bȀo 4Wco$>< T= ˀ4C5Hs(pIڪX4 v4])wG*H.T 6(tEy#U+ m;c8_I3<\ ?'-}-G0RKТʆ,7;MFP{k }'D?]aPǌy=P,DhjBTp6HG,sc,$ȧZY8	N;(N3ڐ$~5rxCJ?]Is㸒Ow,[̉(]&)],eM˒	p A-UWmIr .5m3+DɻQNO65YiV/hEcl}y@Pʽm[,߻:M^'>QކgBjwMxiQ Z(
$RChy  @"50VsٔN}ճ~ZbZn'U-ub4۟A稍gSuу9`z'ѳ{-j'oOʿovOtk<@ckj2+5>r`s|K&EvS]]"`A4[!(6%K>[Pod9c$-+Dw7Ⱦq"FaMCv a	@@^R@@S>CH)'|pR򈶪GW/w@*vAgw9R<i\^KCBW*eq">pծ"hS<GJzEt5RI~Sn:l
!?3]D\a"LEȳRq|eN!JeE0!J%"Lpd;!䜉ߔ/%鉙cgiNS3qx'~_smָ{"BWA*awbY@xă Hnh--Be#e#ڪT pnqaFTدq a/J^^~ӸF,Aq`/Fr6ȔAȔE'9*Ci\#S܅!ں2MY`dʦnѢ?NYs8e@܈}gx8	Hr xw:p閎'a(;SD.^lA8j0R)|LȒa&d0*y(B"qa9pޮ-!#bVzRoAz; P:HogY@-K#-G1rDrQb;?Wv@:dSq!

q0b5PҔ=G]i#YobuQ#b8F^J4:R>UT6|Rd4
)/N<VL#6NbSHy9qNFbGgNb''L7$7qǡZǁ{8}?tjN$FML٨@lFLk3H|!5#H v$B3ȯ	8׌H_K	cxwf-h J+w睅<.5& 4*%<$3EHƛCGQ!ej S-wBYiaκp_3@C[:EzIy Wv{	K41` 5 hm+"uNʏũXs{b+F܂TԃQԓMjkyPW8ٔTUA9KPM`jkPAQWE1aӡƠ57Q~zQďBLqYUQtcuuAӬ{8GHyI>Ak,@Hw-f|OSm .]L'(q/b	 bRW): BD8d1~߿%EH{04[g~I*p<&tsr7 ގek±J9v."5gSVA<J&܎QjPy1"We*\rI@Np@#n9)A9RDp$;p罆y- .ד+ ^DXĥ	KX: dHblv2_!b
&c˴A(\?qU1&h*]*jZ	z|ѸcWQYeDz|tnOVT꺥D%N%Q8,g.~<S D[eVpI}Dmy"#3|m?b?V/emj{'.Dt0lZ%"BE-6}].B?q}DB*5t^ݜ*/	_lİxm!Xp6ËBЯ6rާFܓ[XT#|Z p0)U𛃑O0EށdS$Rc$	3N_wZ'sȆ^-Mzta<j[.zo^&WJ)8~١wp	'3y-ydWMew&d]
-fv3E.LrV"c|LlZJb7\?몹y7nٚ\9M6JN7(ybqک^mSv bճњlu_ޓ콅tkMC=,knu.g|ve.1~Q\Y3ڤCE.v dMଃl"<blr:0uji oLZ[4UWܮ֟m>b2Q'OooJ7,fBuݭSLc飯eIXhϏ*.K}s2oXѽc(Ѱ;X+FrƤ%RPε5W#_>pޫ_=X=ާG#Zy7ZlHk]R/NOS~*v-k޵ԲYe#CT_gxD3v{9pQ#!g!ilu@My|#r, Js<z4\vR<ՠ=`a.fzLoİBő2=u\0Faelm3	T 泔M#,ZJʭW?p;)͗P> [{8>y}\SϏv}]OɚܛT~:Cʹu(}$[A>O#	̼K-?a||1<
F8=DNI?UE}l|s=X?ʥR#S<H?JԲɔY04{˂nHw&gX@šMqђHP{S$ergFF(k<ce|:7Ky$7Q"Ǟoٶh(t&V/wq3lQ}Շ4Efu0+UǛ2ΏBȐfVCqg[yTJ/U%GfHټ[Lef*4k])Ò0^if¹̇r+7Ւ3u@YuSg6[)6Wu[r˂Eu#Ԫ:7ފ\o-W.uˌaxYl1+ru0'F8/1+2+n*>-H°Xd\\,ȳіsik	f
Uę/?4ZF0sgAzxO=)yЇ('F$Ҟ62K;~IVFez&AWo\Wpgڪ'lMsܵlhy*K[O/VM8hUǌin4ws3fwջ;?ƚm?d2U5b=
N6,1̮#)=GSr6/b喬Hg~S6,gP@(yB+@J*Q[]..0O|R	 9:}J','^zޠ"nJT:*='gHNj9b|Rѫ+)j$CE<:>˴œ&n%C=uњ[?~,	/ʸ
7.C'Y Rt"/尦)DT#Db))ML9?Pf*'Ga+sQ&h/Z^g[J]	LOh)u};*!.2g);0űWס&.:<eJ֎IR).:ŵ2@QQ^sIB"|Ο%Vt^Jdm2VVKVH	Q&-ula'fzy	3Q3:ݐ=d!٦ee=\-Ø-Y[zPF0R%8<ǐm!G ЭaogF:PE\jT,HbHmD&"DMYalm׈`8@
Wu^@^Cلvj&!NF}/Â;pٔZ 7-Rgˢ8){X9e"1-|J+a/g"Vq([(MFM-PM9UrBa*(N |y19p#k8fK	ā;I9xE 9镢Gt5VfpT-*,o)u	d7[]=QnlG^!1#@6:Iߧ݆Xryu(
Bfoxneۄlf>??GR0ąEFBG!~ΞxH2/@pU~kn=&OzzҥОI6d1._gyuvYP]AthdX,Wz"TG(c@2mv?*Yo'\XQy@;7a <'crk,#VAmݭFdܮ3u+gON!bRD\_a;ɺ:hgP*G@7d|Q޼?ᗵ
ZoܝZp{Go
6+]=NuC0D~v~n$lu"Prۮs: 8a0hsC%d Ҕ=g/s/X?l- U[Flr+$S*_&6Krk.9;6_:3?!6tUTx#FI1}8wn|,/SLVְ]:~iv&qbv!?$L}X9Kf:7V&3햧f3~g<HZv&d_kh{=V[sgU@jqwlCmTUg.fM2f*Xbu7kRPk_u6.JF529qǓd,<RF$[t@,'9B6-w:;&9TfRtaΔfw%n(p YjbRgfC:~imnqW*
bjZnϿVmL2H%QֳtNx$yY:PJȭ<yygtYけx- j*W?ԬlĠt6!
!) D:)P=0@rZjEx^;s)iHQP,}(0
>pC]U&niŒN׭jjO~j-jmdb3@n૵4a@jQ{Q)mjpqDFgG>Atq
.
ZZӮ9}\|^WIkV&ԟVd~}n8ذdɯ3&>KW\d^/zK9?FhdeϖkF8TݰKkibSoCݪFh/z	T]k/wٌ]:;g@ХO|LzTvU$IUSRƆՄ,GOѝJJ}*%gݴc&-&tVABfBL'z:QMƦflb;TT]2NKS{KFA|s1MAGBx(MK%e{h[(<K%Ҍ/[Wfă6#ǌ":tFEkDW/~45l=U3K>`Q܅nAQ_w4uqo3uv8h3G@Zը8G	dʂJ36?+㖒Y=LvȞ=BFgwҏv2}Q{eI31v8͘0jiuc;pS߃EQLd~|+ ՞]eG{kW;Zb)(y?&iҝupe>]~}Ą:
CAumt܆)eEhy^OC(`'}'#!wVQ鰾@uAY*kɕlۮs٤Rud݀[x[n`U"D7q!uCύ_)
ja5&WzZfU	]nIf6) a\H!@dOf(@Y$|vǀhB8Kv{nBø~Kcj:v&9RdKc}R~6F%>:KSBu`j$*6OuMAP=h21{! 838GbA7NTNW(v}yNqKE`:!E28#M/E}|}NL_20,_'L*wV-噽]DX2WҬ[w}??DRA{{H{Ӟ`p!D0XC$a}g]W\i$ki;t0QvKZx&~h)?e鱘4)JI!Ecx^CF(4X ,L 6̲/;s0)F ~+,۴cs1d8|ЀUħW3awj5;X_RP@k
h14[M]*C_7K~D70,0fsI_;kO؏2KUe2k72YN	1ca~پG4WQm"rڣ59ftdl1Y\f!9#ц~VVeJ%!Q ɁwCmWm霱=Ni%	uy՝)h7r~ҴTJ%8{ZN[{~O`t(jǸ%kq
n0ȑ!#3X%unFXNK72zJr"ވQb3b.dUsLݽc2[܋Ҥu:9ڕWv(Ey&	&/uan*%mcьOKP1!8{Ji?`B=4I_ýn>p@u3J#'>fb1	?csFV5P:%U+k2ʳUcm'VރW1_>Njb]!9d1gŃ#Gђ%nh,߆*,^הC$b|;86(Uϋɐ*}ފ5©,H7ڎUeY6U-H.w3D/Yg!mnD#ņw^D#aU຋)lP槸P"S20j<8C60)VHX8p@02pTP6(}mZ%4'<}?[^ǌyЮ7v{!apHxS1ZJLwOڸd7UN;t^o7|#YH rqLE٤.ΉYY-ўmDs<&}!
q!omv`n!?tZSCStgA4!qC\5:2LjQMmD4+#F9jQ8mF]+<naFլ@ծ@uUBۋeFլBծBu%~_bjUTTPmTKA]Y2U:QMԅj۠.eԕ`mFPL-jZmjq+kTDej٠KTuQuU*6ƱG=_5<Toi6[:݇-YT>egۣhYqxq8?׳m\?LvRHu~Ch憎:cI"#x+"g',yD"%Q	Q,d6PMn)xmOK1~vփPD(*zӲ6$&~{Ӭ/f2ZUT(ͥiJ_k{(d1Bp0V^zL'Wt2YJ;,nJQ]߽$9ReEsdgRHJ$?L!3P
4C`eH-roq T76ápޤ=YJeDzɁk}[|"kPB+oyz,ʾ])ގSJ6,伃VGndvW{ю,f7˲^
}>ɱY;Оbl߈hڊp~y1_/oy~9۫Tqy͈'iebҊx:W93-/%5M!>>=h"$DFz

@70
$g+hr Y/x}s8wJf9DK	EjHS*ZmD)eݚ> RIUNnh>{ixD/[[NG_BKTMF3Mdi(^$||՞`ﴧ$IsNZ~6a"qDh1G9rig(B9N My Xmwp)ZI'QL7[Rd(/n%aM9 Cʓ* z%&irV"z?Cfҗw"}L<\R
pi\Ht@6+6ϗxU >5bE
p
Ȟ24E
U)w	r"Nٔ՞%/1
1\ */I-2$̷wn[upM45ܛCc{Nlw>뮫4~>f6q2ٴthڷ"_̱#\\34 ol;OƴL`Lj6]L-&Swxbm16l'}ӌ{ͻ->Ej 6p&y{kw54ɧXᆴX9~~k`*a%!'S|gWણ|ӱAc.;ԟMxdF3ƚB"" R @P*ByjCCԙA^&\{! {!~#~FpP!GVX.dAI0!yA,``G+PG'm;o=L۳f7C#d|ܥ7W>G#]!dldo\aju"<n%a/:]t>ݹxOƃWps=>j?d}mLu3nU̞oP, `[=	90/qkNl"ކ#⃡\n#JQ.k6ul,}Xd><zAܑ <r]
98	W1C;jB|$>mDS-kΞ_`B"7}
-ZohEQFkܶ35γv,\[Wju.jh+ֹW
GdJp5z]l.#[T*+=-
YN`p#l8Ϣ-E_˕8?zefzǱݞP` x}!wҒb	Vr=놚iv+0OSBOXhvPs/as5INsԙ7tMM2o7j0hOb:ŏ+;oY gδ@\Gٯyl0Fk'B SFR0ahЋb}Z$*t=YAhg(0#5+/EQ,/4~ x⿯yFkՍO!hٸo04*G98>ͮ߈
̃333ER쑨rn~Apfط	Ru<sG`áqoj~ܛ7^ ::K@/pK.9`lͪ |A!ϰr%7uA5^Иw2oJ20|}i;@KAMLfUs:#b9R"Cbͱ O=s%	n1A)ǡi}9[4rU56\U5w=c^]JR+~
*I{j}1)0&'"e_u*.Eԓ}A|K5?	ڠ8__Bt<K<8^E6Pc5|6<_`N 7D'5xQUDRR:mVTTR]qrC:}))0EΒv\BcY[n|(fCI^'4x0K:L<63e<+3+@\
fd9	=K 5jdKis4PI$-E#O'Ż-u~Sƞ>XlʟߐWBG$%awi߄%m"pK:h@J*i\ܖnyD'2ݲ|%! 9FGLﶊ50ve5[Wjf{i]3=u:諜e*9^	/Typ s9v*==!;*+.Ǿ/:^(uu9WW]G~=~TccG>]M:1Oht;rGw,6mӕPQ<`\ (שa\qan`_4\g`EÅaʚ9J`2,Ns%Q_Q<Nr3-+i^}LD:`$0vB`2ajza2Q\)a8\=^S5nNi$I(*~'Y-kS˟y QpNfUЄ77KFwu2kkety0ccnZSW=:?;0f:UҠ;XWo\sp\`n._+`.y0Bq餬k1̕U2@\2Agjѹgc`;4lR7<Z(5V88X[ߐ3?go<\!ME%HTScqBhSбjp(L0\oϴ?Z8	*).&!%ٚlvچd͉䯏<
Sۅ-]de` ,MQn8I\ƻf17ל@ރ=mlhIvn~:.=o(2Q|o#q\5[ޭV(fVԠ9IW.Ҷ!LSˢĄϨ0e[ "+mrl2w]-r-y|QcaMr︸85zikr@8%E]N(S_(F^F57@9pש1U|.bM4,WB,VF3!#{ҁiя<V.;J.7q@۱5dd%EQ(5kX WK騔ʸr)%gFۗZb{z͒rWx2pbxi-
ڼe}9Oˊ%?R,.3щdiKHJ˪Lc.If^RG_U"E*ssRQ~qR)7;.D/Žw+Bդp:vO{*|zm("n_H*8ZD'JԠ*nX
k*
&[,8 8[cy8TY3JҼskٰ<goB~.VM.w!Pe$&Y.d J38fW7b{8Srh[ڹx?{p>lCb,7~ٍyk(Υ[Gbou 7
H|#\8RA"TU)Ypi.810Gr2e]]KXZIi{2{SJۗތ'Rs	/[)템Vq_^h'=)G)m_JKiۙIoT9@E_,	g^J;6ͤRYSwԲ&ܝ?5::fԷӟݤ˚>q@Բƭ)qn'Rґޭewd-ەF=Y#k؞VڨB-OH.knG\(2;^Ȕ3@iz'`{O4ky @P*{ӨE惗`F1 N<( pVA"QA;?+%Mk$*T#U`vZpT/8	U>9HVvK?=*	9#Z:X;-rR5uĚ%+f9 dtȆrNŸ}Pi_.`b}*1|2 QpwtIYڏ50yG0a_X$o\FdIzG}ݛ`Fa<s`\\.yU4\>RZ:d[6zg)fVB1(f<3E!ڲ&DE%}
;͞'[
لh;aWůM(-2?)=694يy"MeQiN\JZMdS^s	.}#BE?D+G#J6cDpRW4ӳHZ>YO՗h{< \s)%	R-~ ϧ;B1sxK*>4dYr1}6]jWI^=f"!nz%~bc,^;zzMd]!@w?j>iB;:o苷<E)
ѰeGw%"I5<77Bc4ud|y-F8a:v&dF]<60X(B.!VXt⻕m2.hη=1t77\P<N>$Jh%^\mhN)$ 6Z]9x٩`@I0	=&L_ZᎲpFwVj
l>#@gOȍ]S$b'Ιې!Id9LK-!+9Rz3͆qhG]\O2l	oJ_La10CSQE+B_n 4[z#D0B
٬00q7)T0u&X4%,dP[ւ7Vrp)c3`\%9M{,o
rw-5\n؇XrUj&S̸Yh"ys{Wa(Ȫe1t`lGJTJ#C"fR'q<TR3%J{l)fiW'`N,Hا5b6 D9?(AhR[o+w*H^uuw/ㄬU?ф-*;4B+
Y^vň4 ]%\^z@mFS:31#>*AZ6yuȑ 813ArV<TLp; o|v~/jpkw/iy>zLV~okX4wǦ}xh<umyV0cU`҃T_uNՕ9ԧ;8L`ͤx5pRu	?/P	]AEqQKܳMA)`5)'6#G6vFP,d
~q1* OkIOڑpA&}wax%Y~n)ܘ>:
 ]r-z
1oN\qz*t{Q`0wltϕ8jJ+%Z.1d.@
s_&JH҃M`?v+mD2"HHJӮ!)ZȍHYJ7" e!U∀erkЅH2 e])T-R6dLjGR=S̑)T{7fIzV@ԕD{!P*W;7s:*Gq,%N,Nf62-Qj`{+#tvutu>w맘{&bA_Γ[g<ۙ/Mę ui	[G+M'sTT~vf rsp .xM@>^m~+6y}-e~ƿ8`CD0PrL
t '`%g-)[ XEKժ>Uç12RvaѭҷJ'dyuxXi<LDk_=6<yzLk䥩\]+amWupsT"UwETo8j<^eϊO=*
)ӭ34fy,8Ft+$dyA[Axo9aOhQԄK~ac}yfR55+Lngs([nBӴu%/r!	+p  (1I
N8&a<"@DsD^T@0'!\Y_%^f}A&cqdV<ѹf~4>ƛGԓ:ZNITS<΁$P,.?VMv`=2mr㼰@MeskaivS.<6dmo!EhU~d?)T(NC|(rj~)])hS0L$1 RաQnB_EAc6>*F|5ҝjH6k{e1״_(#L.STSlS9TX,^ƛ;?5v[__v貭]qI(ex߶,DG,NX'OK!!~Jzת|g2i<RM'!*v䢧>< 'Evu-h~?=чG~k_0vrTq%@kQw4IRd_d"\ c><2-:be[ۗxAE+3*yC>*U@276c6P.⍎!sWW0CLu=pǻ K7!(1D8N,WZ¾(`Um`C-gYq	La<aɦb8TByuN7>&aŋxh~lOvЮg_|L=2VH$`PF{âH'm{*7\b])04ܑ|VJ/|PZKz4.`O#͘{d=[ԲH5Yd9I8.6of@Xc'FȭYHe[L_l`SSF
MK(1C*l=@5J浹r{9
DHZ5~pq_NG#* ᠉pu&AgT6a<Br"^YC]"&WV}	TǸ`o`n:6ReiH|[)*q=5w129Fy($@byI.b^kszYRwFU!JU%Tmu:5*IᦺY׉/?yw3OxH/cAA0ߣ<]ߖ}'ڀ3
&歚r,hu7+KD`{EUqk\Q$dj!.b}J+K0kkK6MHZb4!#"x,s>HJ?/k٩
RYx}q:Cv9a$EC5Z*u:TD/(h &"~PpbҮtNgTW*bw'?w 9K_,_UU5+ZEۦKk͐X\1	͔Us"[C+8` .å<|hض6'?vM仼_epȴ+V}9$2Ҹ+Н^Q<~t}tdfBS	G)Ǫ*f7Y>[=tisb$e2ҘnV̱RbQpn#r\J֏nOQfQ;=+׵x 帬y]	k<U#8J*`$&TvD493W:o}2bI3?cLYDm|Nݪ/ Uל:t,ͤ}f4̇v$_Љ;>Zmi/̂2j
%;N6XI*$Q*ѿ	zT1a<G\8)C."Sp.>^<hVuD=&pMdo,' Yjŋ1|P*!naմ8sVX2q!Y/T܏^\Sw'ä+ҞD{$EO0<6؞d6H v|ӕ2tW~*RWDWrf3o8u5@8Nc?HqGlR/X8A6MZ@e/H̺g>
1rP`B|Z ^+_1IIyLΫxC0PPS5b>#cE+HLLR YT[`*T/Bz|Bʋkς9
ŏьo!dFoyk!Ur((?Oˌk̜L*ܡ:=nO
=inEu%8:dsQOhi6{ýlf;v*	:ΘKX݁C9)n(JKwo!aOrbAYݠSe)$<Nl#`/ڞBr08'&c(cI&ƫ.hBF6~{tuBTXxB=p<՛Ec{u1)bS#}jE;6-˼1/;q3u_+&h5ְ'R\KCDtxN{}845ss2+ :'aݞ'cU}\fEs;GP,s,}+˴ǔvјe¾FϬL?Peڻ4{Qg- %huH^p-g	gx|EK2A~Hx^}Z
]qTeK!l`Un1t?BvpkIcK:^ǫwe_4E\b#[k+9.ayBݝ1:?T9I&rd 9އ51H>|,|kӷ69p\:FC]lexYa6 2Zv/旤ur?j5Rc	΁m碋m	kyu)~Ls^2;v6vWU{NvH_"C8^bTwZZ$#Nh=iZSf|N\~ĵJ)i{PGi9UɼkO<'/p}^aׇ3>ĜTzƸ{Zz7Ju^aۅ2hLT}hIӹ;+a^$bι4rTe+eLHʱ09"S.c_=Nđ֐zؑI4܃}^s?PW\:gXplZyH_+!Zx7'g۝<x%zx7ra">-CL*d@JJ  fv0W!{/yG[l[.@ٕ7:egw5s\FN!Ļē0Gbrql2]2?\\0"	YaϨzm+g8-P
/SOZc=fYAQ68cO}%U;FJ5& G*B,ǫFKFyp+a$~8R>>W"GNU˪ARWߴ瞇v8ǖL:<`y!jJV6hd|ϰsD;M3pNCx~2WHhj^/}zhm`)sqŽD䲩wz9^c^XN'#Vs!D,8WT彡vĻWdoz[יNL1@3zJ>#1Iblt@5RAf)ϐKlamniuvȸO`\,doxgx2b|Yg~`VV̸`LfW
;NyЀZs۫6Et|88E@jD+D?Z?a0W;3k")T]yU뻠m#Χ0IAc.2ʿZx!Dm!>e5M^W־x`Vh9k6y)VqpT نiF!U$؊%Lyl,sZh۾e2BT+hn\4J_a~A(6$Ls@&DtFIފGt#I:wӼ_ .%o\hIܸ~PۗpHk$:S&LD~o6KԬu0t&,}$)\3!.pQ'%He!ztnڿDڔE2
-PN Cm<Ng/B<X/ MQ5ZoO8Fp53~8abNWRiNC!y^u`Tq0E^PGKNA*SPb?NOY.㧧aպO1'u |ʣ#ɂo'QHo)QS~Q_t,.+Jm.S_A+ٛl?R3vVSC֪/
&4Dw#h<79`'n[.1P[:M1IM4?dxMu31l/M+9+A *~զX:YgD$%_<Lپ-06%rAx!͈ek2Dj4yY KB:,B-'p12>j̑aso8X@7PMLD[^.*E)!戴}|9c	b"*dx,*㚶eiΉ|[C_c:xƋih).T->L4#WS7F!t|6^uhA&UxGzf$sHփRM<.mSGFE:X5s*14>ە7ʲ*>֯BἨɞTzz+(ZP"oV^Ь"Z(
lG6hb]sF&,|évbhi0M`G;qO46<1ߘ96GATE8>aM]{~к5%b\׹u
/ۆV\.~=.\HA7Ƴժ	ń3a4E5FP|gGbq>w[XOZ|"/<VȾr/R&H4GI)%>:p.yݞR)arxE2.`(u8*)4coW#f	AQDb#p$ԃC%s<5Yx{iJƺLTMԒ
D~̙C?t(}X>CW13[;t"*lC[霈)k7'~8
'5'uSz"W})B\QHN}Ku!DAv8b&xYs
yJmJ::3i[Q
mE6nm(⼪E%@iWSdbIVF2gųs<JrՅ#5<&epֻv&b`kZS5Q}bm"LA	ewg]>E7@͵v[cpUG;sܢa7IA=ٛ*(kz

u l2(N7OzrʮRrʞ󍌲/XSODy.ri/DǺRD	OI)D{czʏSȴ4	xbvfVciyFduBmҐƎk8{Ġ☶OC5nH4pZڙQ	˗nml4uusN*&V"y#%K1?r+VB^mWBqDY8 ^=l`UAy±?Ǟ
;CIαRޑ mP,R&a BWy}esP`*/0kc`~"V^NezCB(9:Z{Nm5ZPwٶ>)ګH~l[m烪,ް:mfɻmf{mUgm6'G%Hl`]{2?*4KPn/2h5-P  ui܈jY<0ymq{XH0g2	rcwa7!.~/!Zϐ/JGICXӏֻxr6%N68نݪiVRh(B:dY7ʷIhf7r%G&"IFQ-lgXmF=4`ƴL4<zf	=Ldl*wf&LJӫ̠pB.r\Lx,]Cn
?yuXPۥB%\ǍS!IOZ1kja|:J6=ZǛwFn\8$^VR.m	Ip互8N9F@Ue<]_Fo9VJs4lsxssgl*9f<=!ߘ}n9hXFMO[zÓ^7i4摊gVZŐ)?iqzXotϻq9aݤfblN
<@M%/C :bU38D@F67/I3RqsqrՋx&	)33}ʩ 	8ߺCFtI\inW.Tb;WoH6'y4@EM8zk|ed8UnWxj
d첄%-Rp(@Yh4Ra!!6`іi~l5-͋41:E˿<vSq5s{m\%5ed:ZS5(#>ҍ̪Mׇ%Ɏ)(]6&AotGB)5rpָ>J<?𭛣[cFAE4J6Uq^=;̞3a>=m\+Jˠ7C|YfjpʓՈFN7Gi3ϰ{ѷmb}kaQY*/g+oZ߃$Dea%RPS [A9䟗(
#8\p2D1$ߨ8X(KqBZ.N/EߋLk襤p'=*'PZpf	ֿ7*Mg8R@SO{ql^#9^[n_~Z
VQ.A۔^/k^BQ Zlch0`u&nUKaZGB&I%ܴ
j+&)Q[2)>	Ff̻IR,DRR$5/`4sgN8>d]¢XD9e+Fm5	7mfMv5rX_h	q$pC "r+aa5S1;#%a&w=%Lab^JIvbޣ,7֘8?h-Hx,sW&W3Cl/?KDAhj^;Kh#/(6[xwH%.4J$G8A@i;5!\O{r8~&,<BT`h'RHٳLP+n+}zD
֥r+G!4r<ebl Koj	E.N0OFN.<.䇁7وO_0tj/]f\L<\^ڐ\XfG=Z(,xy>noZQba"6cՔ5NN?'lYR?n/ӛOHw&f
Sx|y|[Օo]K[qlَglɉe+ Y,='"HnHyeKЖaI3iPL?d2-m)P`Z e	-dV=I3sv=_y^ceёے9)sr}6\_dKo6|Od{&,(9̻vszx"K[48=䏚b!gr>Y
s>nEt-1 Kds[!yCAg^j.iRgU׿eU
)mCv{ۓ]t{My>{9zsځ7IpFx;噒k,Fx=&.0Z(̯^OW>-)gd;
Zۑyc*鵻WYv/`#Ul
aw}Fm:h7!/~N`(i*z\gfi0ϳL.Z`nI1T@B8,p V{Zb*ﴣ~ګmiTJ/ӁJ8#WN!#bpqIs
}T<hw(	4KP=ו.D{J;2UôKѽ\v6؆4Z+'VωV[A~|Env2瞮}Up)|_OU#,*|[gUUt~WTÇJA+BВBS#{[oaZ|\LwO^5WKճ_|~Rtt5G5ѬH]S2aN}*<]Wpg>+/U;>$ULAߘELW/ =rthYmd~+gt\M4X5t:]R"ellx9bS@׊ZJ7Fh	"t=^qȜw٭=ݰeGtC4fc*M)NUS'7ձQoLO	֕
rph^?9i.Ht
edemibCIp%Zt@.m)AZZY;(:Zẁ[ BY1ևeJ߇aQBʲ<6m:]fu$,|x~>_Xc`7ryc=Q\qi~JK:ؼX=и0v,zpۂ*$KX?ZcM:L-k?ybC1XQtj8-DΏi.[̚5;e]_VwdP%W;W1G_:jX?f8[e!S9mbɹgeAjQ+Fl:Ӿjx-Ə$6ꈌu!1j`yWYdci^+;s }kȁ<+pLםU]Hֶ {*nDuJ9?/'	d3aتIZi-MwVExp|k'QeA3pQ'qs^eш?FC^
"< *ߤrVaۥ<h]>p/~ѳ\lH;[x~+k2o)4c1%5zdQ71 DD7)FQ9B4ySA^@bx f7t~s<124
LvXn[SWURN0BAdR OLPhº<ǻe/PeWʐ ֑P$fUsO
jQ5P2EBSӡ65P8E)<#NNF4]2aZ<`H~_Cbf`,E̸ x<j
;O"/YQ-,2ptG}p1ƃ#62u+t]Vך?π ,Ȅ;oɁ><TVcG-r{C$@ϐ*C9|m:W1=40ww]7=֭/mm#a"|yuzSސX/1Bp^wh3	85hqd{6@twlY$_E}2eeA$L6SyccRG#Rqq͐+eD$nT3wl(Oo3d>Tk۰y&P^`hd$R~L,OS"
xGк-RRt@!/liBFbGLu
Q_6ɯ4ƗIWh	uu,2J7P.Rʦ: atGywdB+4D{B3 >Isyޖ*fgJ3E`,fDf,?XW(!1?&1>ܽݽ&Lxr+O]
C>?=? ̭($m:p{.!H9l=h̚,3Ô9rFtߘqw"OFm\;enp?ܭ[٢x(R;4x9d|erp4t*M<ˇ[%ѧnUgk[K1NnKg[m~#[(i:z|x6Vk^c
hZ*ŨQ$CzrTAv! +2P*:`z߯YB
g'JBݍ.Rt`'jQO0a,Ovvōu"6~pr}9bi`nOuO#ƛާ:݈^^PcZS*]PF+xˎ/(bR0EVʘ\<=	eڬV
IB~/&NMJX}vjN>5S[|(Xv<ɔfBQ0tzIzi=Na,^\yjMZڹMoK/!6;('oo#l{EJsRDf#}t؉ڹk?î%f%`¨FdW1l`YL_jr۳ᗾې-i뷣Fϯ_/63ܡ^p5FoӸLPԞLM=<Ãnh(M
q94<7#:ۨ'7-"}i4C(}l}d_6i4.4hrh3<_'n-nqH'V3`3@:xQ4g<p
7ׅo@7|Jk"=+,;'da/(#}MdkceWJd
&4|Nf#,N? %@1Cqfܢ)V}e̇r͗/tا+XpwI"J]d#w6ѫg-,֡ɦZ ƣc_T^nHTs+}	ibgb-Ӭ;c"\r30xB5ӅJT;iT{?{@M{z}d1L'l a5<͢El'àJx^@}M
e#	TU?4߈R %ABȿ1#ëP3Bc~N@|ZX(Տj(7Ġ@c	?^ܦ3)epwC4$=='-yX*;Ch"ivs]:R&(v#%P(tr@Xv/e/\#HCdsvheĲ3Ą=
I,";\$n-%%pwSGuyJ:b )}y֑\{Lt&_G7NL) kRI{-8׈O-mEKiBwe(r4lek7ǿkÖc	efK"	3D?<f&;'RDDHt9+s!DWnT	D/ձsO!6$~YNO=B|QV
V?0,r.ǃ3l^t*Z ӐZԊLvTeϕtsS*72ݛ	Ki]8dLSA	/>_@hETjI`"ʁڭF;QNhK'/!9 kb=êPB4MHϽ QNKfS87/x*
8 KA]D/V4Hl;^4(I@sE!\|nk1zظv(wGŁvEw>0A7_~0X }*/!x!-hx'aۯ.()Gc>K|7(p513)BaUq*FrHdM|f̟38iU `S=֪s|tƹi&%𶗻L8u{A3:ˋJޱf5udjʏ['^T!i(iWϒպg)B|)g&	~,YkY;Ǌ^pm=W/F0Ư!["V:=Z,k7&!M\!_.""#-²x>8qYc3{/_FUwFϿj=_}Cq׶ca׷W^_@cx.|M|q696'o?sxY>,w>N)znǈO#D#F㼞.|;/1!Կgջl9yn|3ݥ|pz:
W ־g6_#IsdM\.'!KKY@(*cÆ1vÿ7&)sޯTmx_W'j5F<_n4C|ͳT|K?>ЩTKkʭXR
&>=ɱMjP
j/ThCS~6bFy,RdDtt<JR2Poȵ4D*+%&ޙդҪ/1[/6lsb*qek+}E?9@L*TP?J!{q'ʦLWQiiL>9Ն%jǱyjTV\A̅SL%-3`,˗U-f[	U-;A͸	/LDdhTPq-+bWhl/&6N8 ~Dhxǰ	j3<~EY&GtSPq6೗n{Ǉ)<pZV8Eh@F&b#3ynqphA8ʊ84 Fy!#4damz3] U|y!W;"x
#HģS #z[8˿] dQ	{+$:r(*gfɫ*ʫ.VF
ߙRvBR9KZ*ڶ3U*_hhQx+mb0@gRP8&oL8O?KFih:82tƐD{LTzjԚ.b~dJy"aJܧ'	.}M/ZEKUmYn3iSLP?e)E%Ċ<#ȱzǐhM}IKcXkk&m'kԻkFGy"z	c/T0ي>Rd:\<AN-L	UQ6vKA7r TS,*g/P͹  ЯQ#,7=<OcHfԠj>!U`pl|T@*jw(IA1h%bg3a<Q,,b	aTDn|1DT;;iķ^-񏗀WAu+Q8e'pK<@)hYG	ñ=/SMKPxӊoi~ef#ȥGT0>Mn&z>>j/A}J]6(&VO*<,Xȝ\VM k=JAd:_HKe'[J"4
P_(*Qqx^bxK5@6Y[@<HQr̞D/ULg@N{K5X(2׀ZP?ȟb7ION$Eu{f{@b*7 w߯M},"<0z%W[j8t`h cϺn)ͦsJ&tb60%O䟙
ؕ
ǸhԳYv7n1=|=pj)zU0 -L ;Y\\yud\#( YSdqRvFAN+ami,D/j
lhlQED3I&_4`v3(W~9< !=$6^FBl=i<*!VX$D0Gt}'`x}kʃ^LkI~4_	[8 &TK9Ȁ_0xqIfd&OXW l;(r:vPIϺ/^ ~_$l/y +S.;ދA3-B!t_؍otrx	(餞R~RP!Zwu:{̤TkoHɰZ֞>|/iUO:b
7/yW43I)o9e,d縛|Cs$?	TMvb
P @/ʾq!Eu|C17VɈV[ONdnrw,kr2S`VZ5*5+uúH.g$X~{CVLćB$ndZXuah jANW?w*L)Q΋m$\F.Ur;ϵD*=89	s`h/Xd"\,GCSlg
GB~4xDѸ6o5EMp8!)+u&@(|NFM^0cݔ]#+C_vצ_|,~9	_<?Ħxg-wZduY.#n ;&{e!hn3/Q\"&wl'Z^k5vlw#?"=a\&urPWg&q!3ؑ0}k
0yׁ4=|(jV0D*r=ВOCfa{XQp\ar#q&7qp#Ht#L?q=x+~FX1ht4F|U{4=P[ujqV7HJhhR'oH^MRW d*Ϊw@MjrraIli<wr^qӆFwKGbApL"7o5D>wq"=&|-ekJ(SFy7Dn;~+(o&Wl[BCĉp[MBpQ5 U9yԘԭa]Ju7w@2@<7ʬ洗vZ!0g_B-;J/ 
&Z0˷{FxމǑ0J+vN1f[xLF"[TO~Wi<*pfA̔s~8(8]6ÅKB|j$MËt		wN&DH/i>x#c˕9':ew	I6$)PKTЫܘ2n-7#ȯ;@nTQ	P0? ^%?pe!Ò093d3NP	0Bo;A- @]ċgv 3x'qF,\\
Z@ť?}c,L6l㜬;Y_o3gq {TgSɧ<>7]='_eÊ jB=&Z3XyĮE,T6;L] -xTQo@~ϯD)TeO)#KZx%\
l/+Tԓi	,J,4to]l#$@ۂZ5zD7bYD;P<m@S;S!Y	+)(0WD*O9~ղʳRјbds!LTY*tuUۙL:i-:#xsMwNSbQ%T|,'RՔ!dS&\qXPdZ3:̂JyN4SʏаpځX:ȣ;	<M\' }lo_\o`b7Mĺ	8)9F<&%IRPE\Bw &+^ԥud'mGNꇡ={ph\d;<-3p4e\XXD4?G#3}fc^ߡj;&C-㘴x(Dp*RQ?w@oBNԙ:=à,#umUiÞ9.#i\jyJ9q2f0]Ǜg`	t΢ﭦ%z"B*sQΥB}BAD>n܏qM6%s;_]!Il:QV
{q{q+rG]MGTl[PqA: >+u|iOx37q>U.ޘG2kҌ1U0o}~Ыyw&zwv_>I}ؚտ߿Qye/x]An1E9/	#U* uY`A+6^}&wΑXJ*z[V>
aZҞ#=P"dfp .
ꉂy%n*|7V_J<.Q	/t{^M&$T(zXyHZEŦ6lHxĴi+D7[ b/ZRX5d&F}  ~hx[X=lb+ yhx[X=lb+ ybxA1gmn<ۚMiT[ZU,Bb˪⿓œk8~yٻyKx 0_Gtj"(:@J(:77g0ID
x6>6A$'\CӢCH&lmqVRoP{{pw.-w&8۾@OmW9hWCЗ`0juSRMԌAziCSĤZZǩ`M2s(-'Ɏo;U=C$u>,rvfpVT))8`gSDzgb&r||1N)b2PI{NӚJmOӒl]W6ww߾Ƿl}YN//?*q<<憆ze;xȘ"R)^euç?vީQ* .xȘ"۳1^_=?= ZxUMo8(@ac]^]:N"ĵI,
([ԒTc}}7öj)Y^hpf`|9DCPBH?>:ٍyك'bP#Ph
5Om(+J\^OC5,P+LAJ
)!d'ǱXC5A8
u DOu>~4}b*hU[^R@j&H2G%i@H ¨n$ӌ=P"ФLihJ#^Ay%¨gHvtg0y8'c|>u8>ŖaTISd4(ݐVh2`i<IN!Tr**L*-&ښvDGTH|^2E!T?Z>CRKIgճ~$Kw!Ѣ$E0䀟?q9ZǸCƽAؙ+vEduR(Fv1ᙞ$g,xuu#-)){aŃƟҌqj])Fdqv/,u|Q0LƓIVHq?/<,/<rW9EZvYĞ|Y⛟n|6Vu0
s,km3sl<{E亸\EaOف_`ͶYV}D<V"y	;meo'{	ᵔ:eB5ۇtu:֜Vt-$^,|QD^
RA@󶿪^G-V ;Vg?#bnx{(Y`D'pH(((d'C(%^.$Ē\e x[[sH~&d[Lj0B2$4{R]Zngk"#nP؉9sAm᭴ӿ+fc*Hތ-{n{@悤g>HJnKd4=83iƇD"	Z?꾋<鯒8|}\/oLcépS'ǞMP7N$/uI^kw~ma莐9/9N#N{yg?Kjp.rY))Iq.β8v'>IX\J,\B	Ѩu `Kﺨ~a}ڿ;E\QzVwKds47jIuBk,%[KٚBl߄X+2 7:H}ص-e0X<SX*6V S,7b
$varjkLk8%cn0m}kI,6;.ɻ2#վ$׺C]Ұ5c2(lIӞЪ "7x6׆\OVnM'ggkI!ې$:~eAjI,em%[0jY`yY섇VYf/W*(~B81t)tuhF,;Ԁ15`Ҽ8/d< a؀Bk@dsLyQ1b1e5/K98,sZ1贔ci)ǤRM
9&^rL86*cӫB	Ǧ[HKNS'6|HMݢ!a+(hMVL+M[Vj*fEGqh-Nq`iEnhEn^fm1tٲ})ɑA52q~dPb,}RMւ8m"0t*H֏O§E&'h/j0i6tŪiO1¶5+$d-f!=[\bJtm&+̨7:3Ԩ4QRΥ8be	CWr+A"`9鲹P-VkXQV)Uk>&8-ӇLP0KŻqRMSW}C&ʿ[UWN]qNI}Q=aV[sMЍFF߭hsML-YAVӡ01ݴrmhr1b56aAQSHYv&Ɉ?h)83w,Ƅh3ԛ;t>36	?S	QN&fc4xm%ue癩-rߥ*L+FɔhsekEJjn{ΤIH~i~GTSN޺d',jiaӌ5M{<b&_S422ϴY57SHmag IIUH/g'=܋5PIsWEJ"s&qSEv>rz\ʶCVsM;Wf3Ch~q1"_i
!C`q[ؤeǐHɕ
VYh]	I/u<^IM5QN
y7ky{}Iqm}RXYrMVlV_W7kPG4N#"ۜW;+4Q?1"s+_9Wή.?'('q#_%k ; ÉC^E@g wo%gn'Dt;mA8: g[*MPv嚢Wޮmr-u)NNvẍSh^~:X۵29TyLM-*kW^}֚&ZkPf
{RS%}*QrLVLqCmcVbᧃwCON37-ZwmNlt/hyz ϒyE"1\<Y9C	DKm>!iV8)Y
 *a8r!wuă
QKhjtV\vIhjtߠ`}~LHҤ(%_ܚ7;>T$
cHo̶LW3Å)(*0BTTzzv{lc#j$j͏NIҌ7Vԫ) yF>sޅڛи;!eyTGc'ԙ;<^+llJӖn=LqIj
Ĕiq+!hBS\I8'A@Nj_nK^5BҔ_=8{ *@,?
,}ʝE{Р0{-%~,@5<[:f둆
3	ҜsG?@+< #vl͹Z,?P4X'eޑ񼹛W?Eʷwjud V8>WE?:2EHQo].㌰=xOi/qk

&p:>svw*:18POP{mN%OM$GӕuZg{W\ī84F	"a*Ћq2rjxG
߽
 *7Dv`zBPS}q`ER,Jk2kiZS*#!inr,R-K~IC!Igh1NH	Ӂ|[|WB3 OgY];
O
&3f1tlyX)}W9}h712+|d?@U!N
Ga9u96Nhpa%%$H3ےY~{#N3PS@o;]N$|T#?/1߃č;'!ɌG`hU}V`?ɶĊ4bXy
/e#(6"E+ԧ$,[Y)o Ʃ[V9P HpYYycy<r{U?IA'1п"xXmO8_a;t@jOw'݊kBZ!$N=q^mһJ˼qy$B}[z~;C<P~_\@]MilIwLb BjY<#C5x B0axA}"gb8<9yǵI5 $R2%fi<y"gwC2)Fˢ?oG6Yk%c2+A@P6kRH S2 "Ӝ$ҐiM!Fp$hWIoGصKjyC(7O{gͮ.ʠPFzk%w#n09^eԜ*{y9M`5B`ߨk|I"HO΅<Q{	iEiԥ 3PSj)ZH2.E;;kf.>24h"۩s{NL	Xv-oL*נìDpV|@sz1I\ņp^BUg&,CN:kDȗ֐FYcmh!ڃQu=EɟqSN%kX{E-=̺ĝ	,q^w37i5۞4˥&`"ъ1-r+t@)iK	'Ո='@0ybgo5P#\t:¦eSEFؔ@XFıψ'83PM[͚xk`jk̡@*gXAZȼ~8=`(4ձTMK\8n+3FY*Um;HMLgSWL)wŤ0PǼRo<+66JIR+`'6Aa*s)sw6֬}A_)'9N)si c_Jlm+jV']tΟfZ[`<X5;	rzTk=R2AgL񔩷E-1q~eimWȴ4T56ݜ`o,qiIe2)hjey֜L^wNa]6q/v:e΂_gq͛k:/ylpH]~Οv ^~x|f˔jƴA#6-"9(:[9KgzY䰾2+*l!r؞h[+ڰjr"r8g\ˆEM֮t&[b/Ԕj^bJC{Q[4c|}&l?0-Oƀ!v5&4_=+yG$1	eu.}}'Boۻο ;!	x]Pkp%QX|&tf sFk%R:!i	GHlLI}7/g/x<<{Qn`~x_xy2KaL-s+
"'!7XiW\(7C..rj9-KA(-૪NO-${@jwBαѴ/b,WyrG.l0lM14ꚊÓ
x㧴?$9-yO,>y7VW}K־a7*YKmU+vnvyT3C5,*g}\1S9wpL)ȣx^YG?Y|M(y(k)V	KXN>TWJXG.qbqBUO	]D{*dŲv2Acyf9QgnIΞYzvfx[YoH~ׯ `H8-Q1]#J.lYD(سUlMI@:>9z6=*w7uE&L-ǣTh0n2y8x8|?'DoHI/z}ԋC50}?0ߝH9QӦGC3rs)˅nteK(Z7xqXD@bzʛ心Գ#>~TSiѱO,ߦ9F3L%i"?T3?(3_X	(RXtC#0ѳĦʛ&YfϾ!ca LW;Ѝ1kr1n#6B_}eē	YCzЖjg(#9y
]W6}!l$nKlJ3a5Ӷj>2|9[KΊw6)Tٌٜuۂ,szؘv>zNҔ*1MCISz,K= $ܚO$+DLroB踴z/7AE˯KU_O[Ł")L&dfaZ3LzHW'҃]~^Gzyi#9*vO5B	Sg0Ouę[RSnЮgP)"(
5^hH5~G}Ο}ޟ:Gb )pɔ)%S+/WLi_Ҿ HW`+6$.R_]A^s'
GdԊfXm#[uSHگ'\҆%,^Rјйril(]\>ɐ\ (˨A>D@rjg˪A~yF\^v15GkE =ݩ+[pA?ϟ#Ђ|,k#2vV3mFu&/%HAY2P-.p.7V|Cl˼qK!bb㧈G,L\1˂IB&i[,ܼaXqUrZ\ y+
7oFvvݑ]c۪
RgtXa`D';0Q|:Ȅ-rѦ9^: KmI_;8lZYo`nER~#eNQ-9U̳Qjh;/zcblbVO[8(M )bIO?ꥲA]65{NQzN:;GilNiVu}J;'3]9yp\xsǅV4z!3f~A8c]lٵnGn*V|-F&6>x΀QBc@<pD7@$qLHvxdT,+0=I3vTڽS%0,F*#+\2̕Yt<[v7]35ԛZyMjuh &5Ls;6`~=p{n;n8:W%MidjF5_
Krn]]!ʦb؞xeaG+8'CM}Io)xez/7[B.:ĳyLI瘸.,{oFVo=c}Y<QCL1]L38! ).=XShD0%D}$7\qh%pyR Ie_{p K%-͉΋hJ3Sի_Yڐ*lxb10kp`v hLH>iĥC|jxE6h8Hb9PcD̖/JtA$ԳhT+wi˥(B_'bAxGPu2m*ᒸ)2CӱXN	Wɓ'GE6%rZq1	:4s~ 7:ҐX'(l0^h8$-z<Cz3&ǜ%G'	zhK@r}i"DEl>TR?+9s섡!9UF	ȚQd=)mxpڿ,ǱeW-ߋHߡGʏR=hDmNjQhBB aGϬR)ҔҔiJ	\?]HBC󁘶	#PSIY|ЁbEXO9"(/0(^ f+fVpfTlO$m :8.& Gv'H!_83\cK렧Z`+ ch/Ƴq&T;Օek2f'O|O)=7	C9tJ_;[qN)\/4`O3T5&~)_ToKUɇ=P?hH\7WgU"3°=o4YM&MPtw*Q0xʀ-6avߏ*q\8G0)	AE=!făhH(	'a$/f1.Ս,wf?;ҭgK5&Zd[mn:k?\6Fo,(yIeA6^bcaxMd#y8I3(LZVhSSSN7yKs y)<pm<_
t;ؾA[2{}PN|8-O:F9xqx	؉?C! !L C]/`
N%^a3 V(˂M;`ݎCwĦjD-A)UK}nbh4e^=Ǳ;,o8{[^{eEبK_C̕EX c.CK#`k_1xoְ^dՁz B9p70CcuB-IU ˧?wƥvl{x37gB:ƌ #CxVmoH_1"_ }హZ
4cXu(QY	mjd)pw	&77Eg[
IgCq/KI@~}iun XVZIßZ2juOHt$HhEWf˹+Ê4ݒ$PVk0{E_(~4ԇ-En&-s.Db@סGCZB׀OX$l\_CDL
#S+F,71=?jB4eZEJòuWT0A0'
4o@>(-8UusΪЎȴQ3:fs26oˏ2+h׺9S6ʪٖwx㲩qwAct)6vI
K}Tqc.Nf7c܍ _t<ed9EXKW_PO4s
ic׹~gk91	Ɉ;]msՋ0ޣ7C8OrZDTDDpo,4uXTy1f"-=oKmDç~9_eZ&whJHpHּBBo!m;x/mH3v6ړ#WN1u&^A3M9~ʩ\iͩV$8X@@<sn5s{Pw{>@ߓQIE)"1Ur̥5Y*Bne{H?/[QmgÞNso5G.JGC`|p}޽em߶ e jl9x[$HtB)2. xYmO8_a;t@SvO짪-GmrHdiMtA7v^[ց"mxg31#Mf _>/x45$0r:	UJ^}BE7+#.߂'1GH-si$أb>ci99/VL%^-iDQC!R;.T5u؍D}QTDhpc>vhkQ]Q 1<L#^[CP,h,K-"34(
DJR g;`p	lu,}:`҆ht~>Mn3aTs@];XVZ5z\Ʃi2BGٮeQ<טjZ WWtG&:IЫ,%0O"uJF]7B.$؆.NW.V.gZ8he_):l=(<l!CAh[{2\5R2OMxSZ/fT6*\&}|w۟<˶oI9ꭘW^bvz36|S2& kGg#DNY2%!{UlM1_S!X%b%~mwUM=Ri?LjwKDDŉt8fm% !M<5D|g!vhǺ
/nc}.TIHԸZbU[K.s|Byd@s4,M˜e{)_8izф{vBppI(Ǟ[5u-S@YbاPC%R7l$iGgKIPHpՀ<!r
%aa<<֓(NV@mw[.	v&䥒bG2:)4x\NqxG.Lف^7׸9Bp ٶ-,.7߷i1
,$RQ|\MԏٓwKCu. \['W(+*٘NU)8֪J Li4igyvE=۶ƄȤ]a@\,Пa=>2]tlV./gJ@KZUWs;ҙc/D_5jW
H	H3c.`xg(y؟[NyCzWhnHt݋6{C`xض<t*L66/{8m9K[^t%#ij;M+ckc+2Eu2V]lS	=<ca*]~E,eoҕ$W]ֽnH5=SE>G=(Ҏ	e-LqT6/mFO~l^?dRjs]=_ NL>7KeM<k"Gp!:}Y&¸lxgztB)Ʋ) %x\mo6_!md:NרlonPd:VTdR(('`=3$}#}o58fnjrwW18\][!or''߿;yGK?n3gx:txuDa:$Q;{hBXί>7=隇ywgޖ7|z{E~Sg5OC_;$9}|qCͧ΂?ieA[Cg̋<'9I|3[ Oyؓ5<J5muI41w{*r(sb7M?sHls }gkzA7u=1#	?ͦ[N3qaϳѿ'C#x4"A?O7⏥sg2LnWKg`wZ
gŹW+w6|6kb͈s]5_YMg)XjF_KGB?sj:^-|4VFԳ~D0^6Ѹ}ދ-&׎>gF4
/?-Vl5Yi6;jTRºiKfFdT6ۙV#68獬SNκ8''K!09l}Oc^GͦkV9ГwъMN|:q|x
5C[s@YBOoch?\KT{6ym7~& >bY3ـmf_v	3۫LuB_&ly5]NnXHw9WQ~DJIiƟx(~20bJ2Q4
:zC-dJsAQ:Ѻ h	E.;ׅj/-95f)F+2@^_7l(|~Ilрt\ 4),сlcÔ۸2,OZRE:30b7fTg6*-#+X6ԸQs/[5:r>b	>^O'"U&6C6 ;6+cT^ fY??egg 7{\R7:xw/{7;eww.%j
x/%+o~pq~ROЖ=QV2XU$MW+?~\:Ԙe&Ӿp@{'J{=cRĠ3(`F5}fGjIrFo兡;O zGC_EKxESU};5l?|Ls7qw-?czcOnC:PӔoHhzSӽ-!a}3r]85(&kДLO;w*?yG jJ
-̇<-g]	}@!\Ov϶X{J[p+[}$k]5%%NIGoj(*L?zZKyY{_ч69O:ObJ.q,qG1u,γ2{%ɽ[ڻ(GC?:_$W\4H~'%}C($yE'O|Y(L)1
Ưn@*I{ Usnjpqe|G	Yӌ||RM"|\pY#=0Zai"G3EnkL%ibb [xG(T?qFyq$d<	\'mp%.XtEabƫȥ~Um%HDZT=;h\7ؓvc&X)쀺w!{\prTή+HY2Wt%2TdMjE5a),-Ri:1\9HQ)*wkIn6ZMF,QiqZI5&6(U_ڈbĪ(6a"{kcPʧM*Cᧇqf ?fkBkoϟk~^m
T]kn}VbjfF7*Puσ֕K`φgiK`կos4%:oM%ZZ8p*6{\ʇ=H@eDNDo0"eMB'6y(cy/
LďE^Ha-<l1*cv?Z#s&	iIy_t.*\0㚰ۅBF$w͉_p=FYy2c㈖`:~	O(VCk7lh
jKHxiag`چN#IЮ9mAvAd]Et&Pu-}ʖ$hӕIW>X#	ac¢]zX5\Hv{
IJg;|Vx(-
jaJQETƨAewi]d,'(iב ji(R`7r(6
޻PZ]@51叢&\q/Jʇ;.9Fǣ]OT>ˑD"DCQT{%wb ("ʭRi
Q-44O89Y'!|),o1GxQpU#qöOX{Map噢7Яrj =V1*pQ7'~
:ξһgJdF iޙXLGYk#P]ޔ1vPA$k@,d]"SWݓ3<Cn",ES>Z7g9z%L)H*CRXŏYe:֬L@-8#y=CX۩ va|Oq(M}"S֖Zp+	,*'΄s\3J17Bc6A^Ț|,#I+pZA@T2jĕ*FKPuZQ u&WAr6HgE,<ʂo0b!`'pRڤ{qp	xA9qQT)SKfF]910As@%4W.I.0T!-PTj{-(:GȠ?!]#UN!C@q%,$8J"jF-2HjaK1-..3o21pg䷦T@߭n|1)H1&Ej|}gZ*R~ŇhK<ߋΌfzkt	MrD*kX~Zɖ\35)Xb1w--[oֵyC{~
8Ծc@4>EV&A%QfxƝr&\A)l0HV֖xZpRMwFIk) 7/,B6q!K34ReiȆW9fsT J7m({3#b5;FFּ1|VQGWG٢D@MwM0ZGY\DғFA.:HbT"}Px9jrVxeM `c9:2K`pH3/~ԉ#S:AD>Q#HVde&2,[#S)}A+n\sV×%ˇ:!!I;Aj
"Jfueӫ+{¢!E]&[_$c}3#aA_1i!_cZښe"zqR醎$K \:e*fd{.$]tH GS>9i!%D/CTNҍށo;\/޵.$ck.ro?Cap	Xǥa`ܡ	--95XVu4Pӫ̴6z7mvbCAr%wkܡ%^&{a:4-N~([89{B*,xg*V7BH"q#oo~VlaVwsj	}R?Zӫ_*[t^[uq޶YEy9LnlVLs24"GRN|'4zӇ}	Q;h۫2qD~;^sd>=-6IfHKԏ\1p:yTbJ?]2 G;`Z>$v]!<MZmJ!jGS~,Q.xRbQ+>߽Y\\OS3!ԍѐG+L˱fJaT!V)utxӺ{?G)!/(lҩP|oE?A*ZjM6M(diq\$eL:.4uWg{]weԻmz?lO}@oR2d(^*7JnLnx6	錦35xVn@}WhnЪ*O!qJDq*Y8^uEwfK+ڐDHx|Μ3D2G`2{qgptT0t<uꝞB_Z,3vyF0̴{79=Ng#4t$$H+QYN[[y&d%OK#K	Z>"ZHz f5-y'"u^ E^%-od"RZ-N$0V	Řc&gvDPh*aYF:i@T<7͝ɇ;Ym+7DW=ޖ?;6,x _t^A/rSnjo5ذnSƎʰDpq_4cqsO>\z Lael!uʠj7ZSRS SuGK)h9Qa6\AӀDo	03JI )m{|R,D,`yDoZ7j}pkwC{>.`V*Y"R0o6LR.0A}-Q1]2Ѽ!.!/Zpd~ɐZ_jRs9rQ%&ρ<fYz/id1Wr'=\OE£Ur<BXs?w_*llx#GhB)26N $xYmoHίX%_K;
o
TFU׷ʝovmlc(Cf}y\s/pGO1t.<߽72#4Q0i57VJvlJf+FVRBORD!J;,P@s3tBmٸOV\.,`jO5CJ2ΤOْ+-Y׸2f2 W+o.PqO6Vl8e0cJPP
)%$YFTwA@hRDC}_|\?BSWw+,T;-5fi<4IO0<*4ϧژN#F9nVe٠Fa\%VKRT񪡷!3m9L;75"!х>tSD<Эwͳ)mobb9]zR58)$i<>`}lC8X2_SHr{M7ؾiZF0Og)Z%U®(>>:rNԏp"WVTs	LxDQxe8Oui#qiãe1M;FKAyPܱJޓC.WHP&`U.Dk~ha 6LJK7.-IQ!u0\W	E)B2,0Э8岅/<X}$Vuwx=GhϐA0d0ݼUuS#Rqҁc$SLnyGQ%y^cn+fŚJp-7S0CSI\Cgp:cu1S'DSIb-CmL.Y)9q#YW"/d$CMlos5H@\FEl]"Xpm]=G]f*0JHyfxYe~2tq3GAXsU.ŘzXHߔ iE]
%VLa2@j.z'&l5"k:xu'W/gv2lw"7קA8:MUёdU3ʕ@U_!/JB/!A4J%0ijTAb"-RO+$ȈHQD*#$GPVB]@%[@u($a	O$ou-a=	Bt:Xe(/bRv(k{Ex	fy~w
I ;Jej5FEOשmHڢ[C+1FsU˙A"_]i󚜭-]~VKш*Vfzted=#}%ə*j} ybf$LP
<ԙ	D!S/2E MR6gXW@ϩe2`ꟗ![2epcYj)$ ?m/t5ezOiI8=k[WC
_}~rL.}{%VVo82'GV4ce(o]cKNE6BÌ}}M_vlQx[fjB)Ʋ2 !<)x}Qj0}W/qX^F8Ɖ]a tk%#eۿOt
9R+(uN4tS$%Ho`I|JSS ^,?E|!VR#~Y*P9YI4`1^,d:?BL;B
nL~$3ZGYwMoCCjsO$@%dd>}5Z VhjAAiF8k]b}Cx9XwcbRf4/ᘤބ|R+T.?_|_>.u}_ϧeߵyTCu_S0
8_t:vLd̦lx:uB:& 1x8qBZRjiTiq- ?xVaO8JKۥ--VJ
(fɴHv
huNҤj9!mPUꌟgyIVO,'jٍ:}{6I"208tGFבJdJF2pa2s#;sv##1!Mn-bNBֺa70qg_*	BPbTFTYTW_T Lvt P(X.C0)BA7"TȯΌ;2x +K\"ahh+T4(*pL5NDc?q	A,F]%%Oڳ0|.lxوR,zB5Ɉy=tl0C6sz/$3IPu\`S<`w~shcƍQb*}|ʌISb~3PLfh3+} &._Rn;x4k&V߮Փi~wZXԏ9wTىwԦޞ\UC"o!_)6ُxТ3"SC0yևBM4[B򥲶]Ft+2ѐ|X<2H޿rlYq*E*mA&t24Vcg k;k_tFS0$x2TVǃLp@SR^ӈ
q[C]삋u[]rkM} ]+\m׻L֐rr! y +]
$i,O@FOk<٫gIxp[RYktmkokaLlpN_<mZE7wZuBiڧu46	|U q)kfbA9vIM>ԋw-l|G/.UYA_h)}-^=^ܻilcHi7h= I?|f_q,bM퟾B-{<x,Z7b7aOO,;`)bɮJ}}NuwN^6NWǿloF\ hZ(lix{ @l%F+5n l x{ @l%F+5n kx]0MDLevo6dDT"W"`K
~߂.sᴯ]vc,Aǒ0j-nzJ+0g_J?uE(0c:,<&nu_{0D}i0qb	>:G^Pv'}x@PdZ G+CYO-{	sb[,v~bGJt])`AJdVapaft)g_,̥b|ab ]WTs@lu`.SٻF|a&Pk7)UeDT\h6V_h$J3D5u=.!5j,yrVl]RDtYvck%o\>3
GSc ϋ͝qMښfߦ[L@o?ܵf8^SqrIr;w{iK31lv1;n%N7Xs
@WmOR:`l)xλw3Fb6  @x{g3FT\U& Erx{o#ɱ/1p0ccǝU"SE[ 8{ZjI~We#"2j\,"~Ǉǣu.[l&Uo.7؏w;o4y|Q7c?:Z}|x|>_8`i,nvϻ?w8ʞ7vwdt|i~=ۗn>ˣlYջ__(kG?ߎQn>JjV?]\uSTMosk=z7ϯwGǣǗˣ;C6ZWvwout}ݧE`-eOyӎ75HmVW^[ͺ7'͸XmZ6Ȏdl6m=_}8=;H(>Ƙo>(nktɊ̣n7jm?/Fw7o~=G][5,"YpwK;n2G/ldLf&ٸl{oЂNIAx!	3½A#ys5ٔb[<]<T?zxzH~/wl"!&1;F'u 5zMŖXkˑwy.߰]e>?_w_OۗO_o[6f<꟯=>"^*K[|YlOܔT[>m~ڱdˎmk7Gww?oo"|/k>2YpsVƻ#~e@%|?=bZ:"~:zމ-X<~iziXPtX|Y̳i^k1e`|Y櫜h>߷`8L{J~z}aJ;gV/l0=АB&>~	ٶ+~~)fF/U/9de1Ҳ8Qc[q!⿣ԤFrH+E񯃋bW^T̋
xEXEsxCcZځ}%T8_Ǐ7L\uيZIs gU}j|KoʾV׏wo㈋۟wmue`]d%ӧ=6ۇۤv_ܖᴲs8DlmxeYI/yu[J'7cxz+M	$/j"kst_?^%frƎ?dr~25tRe+jM.bY/M8=|;KEV6xmQt3)gw|a9+f^כbR~|b1du]omQb)lx5&EV:VQˊUSpQ?l7e8,#_^^7$+`*&ldĦ_)^މe,x~7X8SHZLZQn1/ϯ/ܭiD/N&yYEb!^{ϫbW
&M?׹0>mhd0uUo\VJ5QN.!ѫ"+3!Ӌ(aRad}~WgKūfB~K:qaaSyZ׹Kw淓K5/pӺ` ;wVUŚTU#{Zl%
meUds{^G\ٌtRy^[T'wՕq-b9N lN^!m5(hI{'=ZflLl:<ѩŻ,ywltú)PռVZCYwn^l`ZgMM([uLJ QS}6"7ia6a6?lV坭Yz=R8}Wyy6˙P?QnU? Xi^aBcuuJņl-+ם6Ƥ YMJxfyz޶b^M$1-fcFg@\OuçS Fx%蟜ATSTF/w=tPV3-M܇0Zu_f5S2تؘ"C(|=.u``7ܚjEƶDřgdӫDavmAs"_Tk9]D;[\N#ԛSPjAjsƴkiʢ$nߌ%^йEwgj&Yp"v-dR[+i,szz!7жЈn~7f}Wl,$xl#!.*[Vg;(ʠ|m~&LatjIʲ#Ɇ#WgPOPzփSՍ?E/r_gxaB69!m7e=(Vs.=ޯ߻LxJ-!;YCE& 0֥WݪM.=>5*M)PLQ[ǒdCHal\^0}|h[A׸	JӀO Mْ[4o|bzϊMQhlW%P#bpNټ l)&Q|k[r3bT*Sq({]Ծ$}t(WHyف%s2\w/C}]\~΁I1sMpQfx܋0CdnPxhT]pKLHMeǊ<gV1cC4qVׅCA5->$JlQ7ćbU!9|jfi[C˄t1[Z	⎇ %X͜Nx b& S`{jO-l!z});k4$Wq(YcSuPND5-5>o,,ۄ_C{Z"Õ"gbS4@m2ƽ ۡ;<bI%WFb%,]5FY8ܮJxtNIFKTy1F\zvBwjnY(pZgX=ߩL_E!a.K'~_VwFr]ފ둛g(Țe>=
44@!!veN+oH]BlG!Rr Epa4 e pNC{85GDjź)6RAքȃG=AJ0#rPd<Dv}H.wʉ<4jrD_=?"S\JlR*KqRY9rr|4kGK1Uv}!r5IP>tZt~hy[\IE<4@B%.,AcHnrT{r0-0r=qFV}s!3@NCT}R:{oF3
In!J,C߬(^2]Hs,PPTK]1-^mp1Z,u5ӜY^
I8Clp49#|uJƏ9B!9[U-5'Cbg#^Up3-J(CqkUWe5r۪	:'4]!8 9$iK"ztmO?G]86ږ/ɴ* ]\D6vFVwm1J9"Ue0EbVEQ˵XK4oQ|~"y&0q8NF3Z/i*
!<z<t'17	Ǥva`;K֋1Y=o3iąi>Ծ4mr{ܕAV*A6	6Pm#ąi&$'# HBԜ\_I-Pi(0ߚf}bٕȲa?,P	&#}bXȐŏ]3"F-}Q1ڔX`j ض`DptSqƔ	`9ORZ	uUMR6i!^[M6yB#wWbVuNB 9}x`r7e"~CSvʘ84AlK6o`HP0EDN"X<+~4׋e]-׾/Ǽ6-TA?iJޭY-k0 DpqNu؀ǂӮm6*+-? > r?Zq"ȧ,Vh mMałIuVqNrYxhA+:(#D\@~[`.7 %#'DuIKpiۀ4 /iNCQ 	rq$Y+f}άYM6S/q|B5]Ԑܤ;G\pC!]{<uit0$wr"P-?xqTu˛V!`9KA]<AE?1+)L[zG
CT$ЂwS&g(؉F64m
<8[\Q)tv;gjgaE_^lm֕!hQI{B?Ȭis#zw!tgoI}u1:؛&2%boMQng]lpC
aS)Cйll][:L1aa0#oh,;o.fI1Tg|17Uֵk% ͥh:CtR-ƈkjP>0E݃<{ERp4Lkּ2 }]Vv.3x9]	'ƒeaj#rp>#:Z]O0q'PP vfD;a LVM·~t!Z91x!	8g;{HZR\4_76[feE1*2Mwߧ)eǧ!1˭lIv#JKslS]NHi L^LTZo6_=2LE
EQ	1ɖٸ(0NHy*$ԊRUBřMY,@A@ҍ|MFeY}M+-BŒ !@F:~>8X>i~H}v]rb;@]ar|_, iOzHqImIM`<DQIxߪZϧ9pGWrxHy+31Ye3OD;Y_}rK^l}nN;e\ 7@xPp]@0.hZk|-J49oK }P9N(!IArA80sOܧy*4n Lt')d44x9O"7Z-Vt"-	@8ynk\%OpN= <莦o
CHN@ܢr [lI1"0<cG'k y#NjAb ":hPp	[ ;\AJ}5zف	a\OZ@Ǉ84$D 6U |q1irc-r͐
@P!ɄUKqm54$G\t֖04Ҡᆏޠ6eJ~-Av}1TzKg_fIXf]!
\fMÇE򢴏/3L搟g@ަ!5 7l!se8rs6a\nSQrs.3\nӖ<l)˄j`weY8h8!8GNXaCK	.[_ڨ[,[]5`NJ2_3[1;-5\RIU/xLdݞphî3G2lBuĐlp8.!"v\p˯yʶRg@u^Y f1Y.UBnӎQjҬC]	r(r-]dLӘ|N@CsNI @mG.f]k"b!M nFG<]S0nYB%'+E8^_%!3	: DB#]P!>XUAأw+:A" μga.g9AD_\q.rUG5D;CNދ0"^`Ϝ+*L}o6T
|8<';͉wM<5gC樎y!TYU\'ݡ7⶯ m̕tM"]J7nwtNt-3{K5%WAAy}%X@|aBվGYxBmfZأy*t8	~uxHh`r%3%"TR
g-x\ˌ߮mg=nvkywQ۰GgHқq{y [	V|ŠGg誀&!]wi)><LPYd BN	{HHx5UKoc-@J D:D:lrrZ9*ҷp@2J~8a&7OsdFX>Q_}R.(ivՀ^OͳIm~UQ6Ta P;a8/]V*&c*ntw>i~"`' X-O߳پj(:K1ezr}<"O8}xoTЈL 3Kww3[\|C]^@VfrZUz+'kӊg;2:[M.e?dsEp|)tn[(IR6^dmcoiՃ}V0"C#ma[>6lHIW.EqݘM:aFi>^//vWy.BO>,ke+PGV uQNW;Gy"@S(keq#*2hVP5n!@CS.BC(
ɾbv^#t@a
Ncfpԓ2$ڥ~%
 &?@@()m")Jx⏸(0㟕eEo^I7!+a;QR& :]2Q	!2⢰eq9P2`8+T"@8cH.&uae1)HX4pDk@M.`aϝ(ҧ(<cZҾ0m{xx<}`!f)B'_$ypN:	'I%!V֠6DyP$l3۬d'_FZlj6X6fnz|DY'Q
F`cueS#l7+pLE9%L#؎Lz߻C Ndx?k! JʔFP+IQ";M},J^^q<g&DЋh=:ǉ!^D[<&,rE_AA/	'6Dm>6撮sDd54Kq]0.N/1o.ubo"0h1dXvtWe],Oä\7"FoR4`^=u0ĒVwb^Z܁!TOz3Yg'a~̬-><E`0{411e@7sOyq1gF"4u1ńv(f0MEb3^+\^m8Bj</6>zA@K~@|UÝ.֓˦4T*ъ?OKruk}-+ 8}i`&`Ť"c:OqC.f9]\N#. rȀ!p㏼`\zz}&@B,l4e'%H4b4bknkr:z[E(+t#vp~kA-15}ځ	7wONoט5ͽN3&~k
~Az*7TQҚs}ah)M*tuFfo~ Nc&0V<jfsFӑCqHY#R7{n<hwk6ځ;jfQgz2kxҥuAD@8k޻g#S!t}<Xkxwc.KWUܻ@v0eՒgӒ/N=JlA(y:q,3Kc=f-p >Ђw]UO՘qjk@51fD<nUDiGPօ4M[F?MzrrJ:KǷ;NUn-кTk44}:ݦK:-F5OبPVW|K^5싛^[*^  MNy-|pĻj!`gxF)7d8ƮJ.RL1i"("_dC`uis+tMl_gH6OuT<xw0o`d/0l:ԈO8"Q#)p yZZIۥ#i\>c\d2oAE,ft4'nqމEѱ rY`%AuYybG0]l3a&4g/ TܢbpAyb\g1b$'8u?jj-Ӛ|ԒOK,W<T^qSyt'L,"cl& WK3E}kAۉ!l\dp"e)NsX[--*iTh>3zdh~r+&B+&c¡z׋l fP&dA
д/b¯,cLSt3 Sa6y|,^i]+A{!૯U69V%(|mjQTv-_XPԪJf8i&b{+~!5FQ1M:M]@+o@ zu־-o0 0|	XwDR [/2c#
'hĀ\21庹>Nə:R$h[k${ǆW>hppGGyV<ɗP]k_)Cfy`OKyt%X
Fj!t¸|@h<A"FXTJEPƚy%8	q{(qM8t%dw}Yh\qUoWiDá|	-bAo`4`X)(~1$\p\PvВ3HZrU͹QYбc9dr/R<eU-=1%$CC>-l"/C8kTsF2JŐ4u6zNhPb?
,KhiʰJb>p˸jJ%H5%⇌:Ni!ƫjFiOXdPҡM1/DdZVe5XuW&޴tf ]/ȦCzfG@g{l:cY`Q/d+{)^sC[zY}E?}` ,^ۅ  > 18HFZ<AnuitqE*R9ObuFBwv)=~܍̈fwB]y.9MȀֺ>l^^,ZyՕNc,5ɮI^7+M=g}J*P͂h6ޤb!\hc+rΆ<S!v ɸmܪ|e_G8fLUy(boM&]0F.:"X],4F?jk`,K/-hc:i[M	h{Ñg̋x(0` AJNMfeJ?](`_חA̛b3@$wH0e'41.yHe-	u=}2ױVs=TŀxBA`'9Yx[tD@mΦ%A"}MĚŤ#AkXRz}n5ӁJʅ+3Lĭ
:}k'+ lxB:1߉u#3SAՇhqؘy!ajYr1ڸ;¾/l/7O'b[symU?piY5M*Wg7Ԥ3frO5l@EdtZq$)6C:*8lL%:9EvJ^ejs_@ǊX̪h?\d9glaiB(kcgs`B, W 1['^ԫ+q>'n1HNc|ӹ[_E󀨐.5LK yj!lTI~^AtLhP5mgFq>vãKɸN/WfɓAq]>y&ybG_po~4OiH*\%Lo|wc14ݽChLKn'^r\Z̊,CR0-4f-.Ac i`\e![7JZwP/M-$HL@#2H:h9g]Xkri71 5ijҵZI"l?Ue]^dLÐ'0Oaëԧ'>4<Ohg9rt	AhgՓc;/~s0Lq\޻-5+	MƆA^4#ncY@2[{֩,ټnX)
W>&L/V*24m 37'IiD$\f}V($cb)3Cݜ!}YE;lT8~YV[ʼmҁSqx'Pרv|m	»YRLޚx"ZUaq%NJ1 wD.vw?%0Éԭi-qT ҙѯnδ^U
K<Vf%SCYGr!\x0JefM>шÓau@Iur/mx:&M\@:$ꥥr
90ݢ]+NilpMI>
;jwk;Y\[/$8*q%,; +d!ڲhӢPhXad&_،)g8|:O;`S#޽nz`%-ˬ{fX7am#ŐXO6z86e6?>]fQf򮊹2ZVA6JgڳQ{.s	$\dCA_Y^,4!,q`n:r2?0P{i3Nhe*a`6Du	OzYOfW=,`kL~GWDar`]][VDRꤏIh'w$.$_=i2
DU F
GddPs,2c(GUK~g9:E/Č0PR,*oxJϻ@
BȦF+hDjbS&iBѯvIL˗tsƄH̎KQ'Xx-If2ctn5VjH=411!'%+k&	ёF_Go}DEG)L<nGpcn8j{ƃ[d!ys$cpÄYS{̗
ݣ|,@UfhHZ<B |:/0l}h ҡFNӾ<ށm{=L;Z(Q8rDl6B\<Cf:pKbńQ!(^g}xFi^4W.'ô΋|=ҀC00>4T{U]mïA&"BGioQeA[3b!ˬxb" $IZiKuMn!;j,L<X&^Za]wق&{'a䐛uSEW"Dl|X1J3OpjMu J4>~sW+R 
OgAE5NLW3@`F6 w>+LJ5AB1i-t@?%fiEe+z|#$R$QX]Q=+lJk<q
i	pl0V`D'JyxT>؛8s L~W9'Am[pMµ` 1R"TO@TԂ?&T񚧩ǟvwT=x'I=F%Ml9t9ˉ>9][eza$AhbYҞϭYΰ GAcuG!qȞo^Ny8ȕ|gDvdK0o
C+2
*,*wbpE(I;|ғcr@uNDEǼ66vF/9kɱMVLUN=Nڈ>Mgq+u).̛&??Gee?ЦN*=D
wQ&yS͘." o[\
Іk]`6{0iBB'.gk7zUBLe%<	ÊJVT_i !0)Ǜx_piپnwgB`3oz8WNS,ʈv8:wyog?}W[݅Pǈ>oRkdH]ne?%a֭/dBKwP 6HAG9fxah["븶#\jW<E1+	 Pbg!MNb䢉1VAܘCn`Eƕl4Eq3J|.#UuG,2.Y
yg芩N˗59kv<=,oySM<G[ak#ژ7[fKضaObem:[l0;X!
yY0b؆YK]zD^HPٽ-y òS)iׅ8S޲n.Hubڿ$Bd̴↉zM*0;[/|V{n;r4=8hB!*GXVs};;%"xUQO3¸reXQCL	%Q9Q*RG`/|y8͑ãG4aυ47RЦh<.GHۑ	MI`QYp	M<	i<ݏ)b
{nVlcRF%L+@O'y/<0->=_=
!4+TV{?sŗg;l&ʲpQ\b1>FᛄbZޭc|axUpw~Mmu9K8i|@0&1 D21+-:lNb.8Z-4:70k\`a \1z=iRUDl>.^0|Xg2[ޏ=|Ţg=^hdT/t@'}'v'p"G]wbe(G~p1@2@T/&c.gLHNf>7WƋ"3.qp` CyvgbcudH=jcnspx;{ȝ*AXm460duoP7]5Y4L\ܬE=zNj9^2yPxK0}L;oo)߀x-%V^@Ig0Xy!-,U{]@3㬾yFĺEaToY>~oCDǳ&zOeAKNE}*mC6P+߳	ܬ(ӢyH$DhpŤك߶e*6@5NTzb![sNTIgmye%k5H|MZ۩)~̡7ѵ	 U,m垜)JW"e$.rWW'i0BKNy߫X#JB=o-`;~lU5<2gټ%}FP$'WVrY55|RT<4N;"R6`bE21)c̘>YchP8 )lP10B3M7P->cP"VI%.UROCu"$qF|Zww49t@1  !C֮UeaAāyU\$2Dq$>)82ˀ82j*٢):+++)fu; L&C.)F~mE#	=DAzQ`%2/ҷ!c֓{fO<`5u<
-?},G0ݒ'MOq4`)!j2yJ+^ޡ$\ZhMFB091ɀeQ;>"mvT1IGai'`N.puz1Ekyi].X0M-Ly_{]JE#[b%5@fn| 1lIUS[E' 8Q&Qqh*L OIU56PVԡJj(+NTN87Xp`6z]cU=W´K|æ%Wn\`W봸U/mpSfhh8o0817vk'Gbxs/q%rxb~8s9Ce=Eߤ+q(Nb.pK/6:A|R/))
umnZ(fn1=lii柩Ĝ\ix>8Y6w?-oҰeXGJ!FoǬD0"e _y=pp
 }܉o>Kbk,	a`rxZHr5z~brM9ykoTxNbBd]Pz=Mk,F0\v<1[xcqTO!p!#tN|ve}5wazz!78kyyV_vw^_[ό`y{M7vn?=>.ęe.eHd}@-^ϻrŨf;ɔFd]M(&UYY~jbؑ  Uy9D8*곌9$A~"6fSNewgW6w'ǟ`NW-43k!LfPMb+VlPflbLo*ZOVqKkVz_O4sM[]>.3n-z=bSdJ0"0BD\;֬GRl $l>Zmy&q:5BYUzfIB*3|ԉ޼|5 62=ڲګل%iDkĊ,#Z.y-h	:BJon^6o/BŻE~a+&A!l	j&>sE[a5?2[A5I0[35Dy[+L][5t)xE_v8"T9"BwDA0RmqBD̚PcNHH~ϩx9wIT2MNoS,"a<©hs[*X:VXRaQV<^d֝pAS?Ʃg%OXsUڢEu
3w+'F=i*H~~;RZe}hqbyR UQ6ll2V Z?f6S[a,q<7<ِ2(yna좘6ӃW#-&)H5q碭rIhZ@WzJt4Bk` AYe..֓˦Z|&a7\UEYsCWrx2D9A[_5.Ym.*3|Ƣ=::|4D?6LoQ)Đ|{}t)x,jQ5ԙUq	z ASh>D.1[hD=|TC-șAjRje~kS
w+QH͗fr<ZvJsLy@LI)F͂qa[/(gaRȖhjg g/#uL@vOf/m\clSP}/汌
Edz82e303	{'v+1ʁ9G.GdtG7FQs)O QPzYOg~g6dznzw9/H1hz6vTqֵKQ|e'C2YM7ӍC!tfg㮉}HxmdЍÂwM9s5חtSQm1tS
P:_-l 
DBm	dsD3P3ɘ\3@HjW%5ǬR$ظt㇘|1bR?SQT|Yw@]G3sE{社5iRPe#b_GwD_(`mJK:J&&ux;==dR2;v%qg["9:qKAڑ	Ћ&J/MtQn(ԡMr.&ƹ
q
,l# c S`/+"l[H
B`P]@άvuM=E9Z{rf6&#m>efmVaۍ<6ڏ	zl ؔ9&jF8$ZYcot;	gDΉN:ݐur9'!DtĠK}mϿؽc@rZQt R4c(@H#
ےeft;:],(g+Ps[de23O3@֒BZQt r4c(@ʚH#
$ܒef|;X*tɀ*^m|{ bj,g=ppnש5 ۵+bƤ{IYކ+Td@7(J+wi+	3ZR&}bbʁLЃ1FT;\,T.' 3ƥ#2WLAI@akeGMoI0mzXF,rk-3 YQ Xb0d3ܒ:" ,N9@%A!sYRz[R09	 
-
ȒE:)Qg~M:jtԙWS0VdM";t#$ t#eu`SU0Il&9n;X1Zolt;nֺ~k&gHFɶ*?>^Ƹp0 .{>dHhg>c:Z1Gf}~woZ0 `::00|@RsS#a܁ NFZhuڱ@c;{Иd3ŬhLoxl}ƀ$gHJrc	1&> I:Ę]Вx4G%'^^G>m
1E|P #4"
pI5xj`֛bhRC!l(PDyjXg!,1VƂZw'(b; &Q
j,E7-Z7@28&aГr,̚o^Mzx4-M15!x80"%%S}m8ϟHfq>6-)e6Ï/t_ .H[7a,*nAŰFXJcTqK0u0KhcXq::y# Pvz[RgGbOέJP|xGP%2KCZ-kZFRZ~9'X <c97@Ϡ?ˢCzǑ*|{2[P(gBK]?)0\h)Y%1ckD|pX SҜop4<_#	-M(3Nhip@	YGY!Jǀ!$Wy\\Q5N1ўx<ErʌLq
Qŝ X ӟ 3h{t{n/ۣs˵Li] 
ϐ hZ^ZUQ]T/J2!vEaAi>k(;4'z`e??5dSXRO_n/w7nǎEեHeO5l2LfR\WEZ$ @=T p$^w/e*;)ɤ\eU*U1illflePy.Wmn{Ͼe"|Y^Ugs3o5,o=JE2TM9[8ϺIPM^w t\TZhZ1W
&`e䒧*oTw^m#딓̬rI$j2ͲV,o UpÌ6zs}ٶ32]f"߮͕ƢTɺUNU~oVZ\,f1eUt9>|dO'I(~" $U0v4ﰺ}ud=vRA5du-2vy1Tvi{zC Ɏwۛǽ!q/6ǫX3W]aE`k˂m& 	[aѤu3:ԧD[:unL`)j}`=%i+I*,w3?z)oyB]͹jɦSh/z̔U7ɝ\<bnyXſdIUO;rh+P]YW;dPMwȠglBu/ Pk8np)P}Jou]{FZ[Ud
5[UK[&,@/C
_`UdCvgsWT`2;POM
TY.W>)UbVYRC%ڃiSQ갦XA}ǦOٻP)r+݇z)[J@=(yCutVA=IN*JDCݸ, -ԋt eSn.׮0PrR[8zsb#9qf;A%r8\A(3ٖ,~襖pA)5O;Pg*RbjmgCO쩮f.5ԟ_'g;:p\z#ou`H0xYp<fUU_˼qúc^Q@x7ձ<
aD!EY>nl0!N<l?4/ ^/y1Qr?Y`ڦi&ETM"\M%_YcݦJ?i XٟVygwL.V4D]jM8x.K:j'v}Sb"GA"7LcdC	C{J5m+5UΗЅJG>\G}6s%[7M&qU<4`>MU:VڗE3a*]iTЁ֍Ϛ+6اX.;ΉCG>8>]+B.x|N	p `= 尶Q	˧6mv[u] \J!?rЭgYVАZ!ZI	l3h1]zR==r<"یh	'QJ~h2[M.bYC"Tml,'`@}i2+uգ\MG#T]tL@èqqA;<谓ȪbRb]ɽp;Gp"̋;]W|#{T*^ +XLulONs$R܊?(Ui_gC1+ܲ(&2YHՙ-1vb
Z4){m ?:d1MeF첮w|TK$@tm*}|3
$gr,I]&BjS	 t0v[::W(Z)_lti}6?1|C%Q nn WrJFZ0 XTUc| 2}ڛ#s|&kqQڌ=' S&hjc  l~cEMa	;
ƛOyg`a4)c]	4bGeq}G: |Ұ"]`(C# Ԏ0^lUSǥ(O^.7XBB_w|gR=okZ<<Զ_Zvn!+StCV8绗_vǧǟa#\ ǱG%e/Lb' eDyq-0B<9kܬ_YL8>i|}Y$tIw<6pH>	4E\M># vnI;vtZLTa/{nя5>։hXL\(wQSʠ嫔=bҞ3h$[C/d]R^p2Dɷ`{6͖|[-mA[R|]8dQɓ8M= \muq2N ܃$N=HR\fk{k	$HZM.*	1jPђ~V/+JY!Ho#pM{d"qarM!j5q wH1/~0ےHɺ7N:sfx0V!*\5Pٙɶ QHu74Y3T^qBd8٣tS pw~~ٽLϦӚGmy$u] pHͪә/	W2p4viXNb	>'F	boYI?4 Bhf@ttuv7ǽsg7xq+En%T1[Y;#==R7ےpw@G0pehړ0=m] A<84;ҵ3_@ol>artFkuLsa W9G4Uch-UzpkEP[4\q[n<C	Zͧϻqk1K$#ٿ5 jI5	[E\Ku|݅Pw=fy#>iXNዖpݢL}I{-rPbEZu~FT穎GwOvxb3~\:[^dg&U}Ke>W@w]ғXEl>w#uG3#g;8x1E=^\gl{iɹen3DT\hn"׏wr޾0d5kOj1 -XTcpս_ń%ʛyRYkN;c 3VhT  Zt+]u!2h}~<>4Q9zcDz8Cƹl 
atrpuPV-tpwa&-\lxwJ9
ƅ0[=W=ZuvE6Z>*d7i(65DGeM=YP\߭,?e&&Pg(pjQRvy&|F{нcZ)XӭUR$(w{߶ U9CPr&,׌Adk!;A&e.ͺr }@'$rmvŏt z 
6jrTKX4P9 :!^v
"k av?&ig=ZG`"u7R;gpDiw9r(fR8">Un,6n,vĵ|Όi`\e~cB{F	"w6mb4l҃s|NK9>g?ssQNP;1A>a/F'+j8eދu&ʞ{g2yDL{<y" -[U<_nX	ni@l Pn<!)pCG-Vr%r<nA<n c
 &D[[neg<.g׼*%8z Iz2$w<2WJ*j$j/Z	/jua/-(8e1)L!&W-Mr;Y/W;'XaZ01^,V$OsZMÎl
`ܞ}p#TjDUD(WuS8Jfřeeno|O7J8K{ #^Èهi|hc6CFt96IʈڍъD(.΂1"h܁G&{F{&"5܆7r\u렯"kr jڇ#%V\bu#=ܪi :!hUWUIUUG!|Q(SƳZ*/)Ɯ Юi]U/ƯwviDh+ج5Ĺ?N/yaQ㝑_򠉇|7WnH Opsuqr=VQalH"@}hξ)2\^W$E@H3wcxE wl`Fc]wvt+/L_
YıwAޕE8$6N+:ۣE9pk(Oj1ʨ$CGgT=B:H8)
D@'I81B(e\W$d$}Ѳ]u&j Vۑ+CP_H$kuU{
SFN'@tBt+T@t!YєRR,b"Q иef,zh^q]5*bզ*
h|y5Ecxa=~V+BL!s'Zð\d}!Vm6V\湭jf.%_	mo[F\Hw_.w'*H2ϖ3ܸMf,2}l?:KMFs|_2e2(If3h  Y͌sDtM}_S:ùǢfp	x"^KADiqf) EL஧p;˙0@aER?^uu+bDJBuۊ1'	iKslIJK> 6\a1,(Q=o,dlH  IgsWj:Z)5ZfH.įD+i.asr_bSRD)6L&ALbH~*8qfy5Wla8zg8#δw֜uK'0	f1ň  ]g6á&@I= 9g!.nq9^}ˏ#d]SU/D
}Pҹٌy-lzn6nUEMҰu߽`o}},p(]'Vj##3)E ~'Wb>j8$Q@T<J S0c(~Nvt<t$UCq]1|B@L4S8TNc'cBԉX2.\9+Aĸs'9NyFo馅@4HBw%;x>*;%yO(~yDٻۧO	{xA_]NtZ^n[)*+J@s@8tcfX[__n`O#khV<S<cv|ƭCЀ/'
Jg`ڝx`0^$C[8`4&ВSxI8hu10,n-]WI@+ݏBw,fmWWCtl,
T0)8R'ͺw]d1$1̍P1i{~:o%5㯑}VP^=Vbq2H.wQhO,ڌ-ߟNIͿLbbAp͆0}0U\xWgb#C}'aExxZJ%Fh%$f78БsOq؁trA.`RqGӘu%(HleJnH6W]P ]?
B⼐O!6koU蜢Vn2Qp2Xr;E-,ҏޜwrqQh\ʹ)"bBCrQV`'lr͌	yڼ{sKb909,1[2Yp;ˠl]0"QDWwô}y>3H}t\?|?\!wuBNG8[?mow}ld{	w6kk_בj1U^뷋G	g5bYC&'z3HO;
/j!}z6vھKKsi$KOJOЗml̴h/@Ak^e!W"e˖h.nO	u͖L]A&wP'jwI+ɱ
Rڨԑb\n:θVbj/gez}'AE Nʪ/2SH:/tRj"ľb= lXWT"nP>HEpVW2[LKAE /4 5s찧c$²6lA	0­ܸ0/4D 6 9YMc]LH,OŸjbfYe
nö)g*U"yz3
+%TN-qԂFMZɦMqpN(o<J*QINaR+!@\$gƂ`	43~ڎx,9%~k61y8T+!|M덊-'QxSʌ0Ve,D%Y	{#aaSS)*4.!TXP#xC	TCms51 =PLs:ʛ[Y iqc!.8ȷ{x<IF5Bp׆ŮpEW|wa#xɵLf·,?
Ke1=q&\]c[6?mc8Ϫb{h[x0Oѻ4к!"'Vvؘh҈11L@gE
_!.v@H|p 9^CC10ƃUw Bţޥ3d=O8L  yԁN ek£]W+Z>=?>t%sc\ۗǇ$F~Og}~^YPz{zԼn>L]>uiUaJN"KN)<H3깣)]5wFZL&K#6r*7[8)LB_(|6Au8cMp)__}Z"ev]:3ļW$L0\*	-pl
G&a%|%; !"ܞhIu5R7[}%M{HxݟowO/{`IzYUeέ~P	рSRXJBF DF X0]z󪫼VC +7w3R8 gtD9^eUN=XBdv-|P"	`z:fJ`o~Du	t>L(>X>өx}CpُE68/«06@'ve\RR xrWd\VͧϻXR,T6N晾&>5U=EjYU,?(mxr*B4 Az2Gh6T3[/E(ٸnьXQ/{Do.I@Os;T&f}Qgܾ"+ҹ茪XČK5NQ⫹|3*=8DRU.79m ިb[&OO^n2s;DlAzzP8ˇNqv4>"F4:pK!~hp߆h*4g_8%rg>
Rįe_R;3uz-yA-#w>>ܒ~0G|sQG8B@si[[<[ uH@Yʩf
Dt)e`OmUPi"8@^5IE>-"f|9wZŚb4#[պjyxߖ%DI;g<>єRmܲ'D/TKɩ Qq {2z9䰾*F/7n.I8H"ĩ x,65E09PQ;/QxLeD/i%w/ow/*-ށ~VG6$V ~Ea\ V1XݍQq)ϣ'wNA1>F~Z1#3
y|x~AAINBwfJY+
IH,o*vJmE%wvs{~3Uc#o>xd9hɚ/Wa"ĭb0~qƨ{3׊%^wOۗOjwl~Q@NF~7!mDU8x(}:nbvmʔ4+hۉVlj&ojLkF"!ͮ>l(s`ڊ l=_v$=neK')Z`$KZ'i%-uh&?IvHaiu_Hst?d{`n6Xy|.w<*-"wZ?_#w#Y?cP?ǀq_L#ofiGOf}b2s[\$Ҳ,{wٲ,W/oDVn?ݾlqN{ ~~GsנVvE')@Pk(WNz/c^ȖE/z2֏z I;&>WN[?a
TwڨmYxM"\w|D
*.pdHm@'Nt0_Gco>mgXAt;p'h鮣/X~a(Rݮs=/-VJݯؿVߞY^~#(?,q5|ADkCڵTT#|BVfMy"bi}30WHױwLwx8Hv۟w芑NݨtZ%![ri-`Q*3TF̳iu<3ڞ*R!'E7IY2a<Aq/ۮ]Ə>@&>{[Jo({/iӓ޵uIzPki,R?ˏǐVvz.%gp8$gRp'TT'wPSw؉עME2,j.L6p|E!\|xt3"$>'Qf*p+*aK{dS<$έF]4?ȥ*`d
숪$rKcj !i{Q@bӯ<u$U`ePY>X/Ԃ6>QQ4cCA@_惉R+2)S,7!tlEa>	P剱|6G>Mv1lܒ+S=rKUSZFU$F-Ubv?izkavY{PZYRWCDt.oG1Οv 
r1G\]-=jQPMtm c\R-6l`^r/23Xot{nNZSo<S	UC_.OKu<"ibSZCRd}v0sh	y)l]tX^84	h'O{V#X.!1FJ3ŤrΎ
Z5jJ\)f}uL<4bqV:KR%TM?zRrрpר+B$0R+Mn;7FRnc<@6!N;R̿f5eSPRuDNaX)?+=bE둮:,֪@M7husNr)uIuQ.Zz"_{y询bj$D$xQ'Fڶ=ȥuW{IL7-3wzBVd0fQBn(NQR>z'StZ3zMFnT6YSW%3OL=guU߭|kp([TU`<EIB7ɚ{?Vu]Aj7>kJ6g]Ʉ[8E/j=
qLvç8L7V+f_* bop
4fښuT.kT,c֨: 2Vma#֤)W׏bM_fªˇ,=KXpWzvDg;R!Fm}xbsq@nr5%L254"MSVoe*K}(QPKغ{A}ubgڍEe.5>LZ(!k;\5]ȑ	[x¹ȗzK
c;$ݗdpPA*ѓh?ӏpbpvB*
wj0<0o,tI8PeLr:휯6vmW =oL%R5ٖ%u9C/ &K/^%zuJ4{>W"*ZhW'l8JR!񣫏.84C~ vE>kP2YV!ɐ.h.2A.l?_flA@\l|.	3%TF<]=(Y*<	Bvnb}+Mg=Y[~y4R?nz2[lf`Y,l@W^
|I?ICM&Vvٯٵn>hMF	f\nТGj<	>֎]]`ЊlUa/Rbb)M6zOY>
 calUAT_jxQ8 `_V
R?b3=ԏՎCDnߓ&T0(cھ+j2\bC),+u{^>1Ds+GѪK&rbxV=KB?n%ať̗N楥GhC6ɶFℛimjq	5hOR~t@ Uy[ fbau~[=cƈ4AVr
n	!RLRVE-LHqeㆀB&ׅ/!&Ep;.cP9Qe$n`((bhi)LtTA -챋BU1MUV,CPzZ2rD!skgAJS0KuH*e¨te8IAaDND]b1qj	-ch6SX(6ͤ}KZYkv%+vPck;ITP-f[K8(%
rdC_/djD\M#U R )0^3t,ӮU8/l6,>c< QVʵۨAe!O
{}"a߬>s- ^@Ϣb#O0zIxȊ*.CGWJV>n囷Ɖ*TT˲B`*J 
)G^HWIOk(vhiUl˙rE!2[1khӘփ&dD2,.ár/P@`x1̒I;Vő(
<B+/5P4]ɗ{ũkK@Ǣ4F+a M[`W
Ms[mkX<Jp%ί_@aIk$L*˨hZ9#e ?w
eI# j\2ѭ*Du
6^'"z>@5uV
n0*Yb">9h\K,cBWʹ$zg	+s,-#bה} EFPIe@q]\|3[2fԖ_v1Ӻ(łgJ_7v_˲^5nB<bE2湄Ƈ[q*hU$J$՝Ppj꼒lCh3-w}6+xd4*yӶAT@=STYr	Ȳfp$$XLQJ'fYm>=
:YTR{g1z]0#
.Q|à+fav!MWÕou'O'cqBPK"/n}m:1qqT7-&ƆEe$)OPgvkjZ{lTm&>V1ViK	!)N-t mVȲTq
V=~^E^2Rh>KẸ1&We xy&=ENjRQ^VFm`هpYk80R'xdi}rxDz2ICPT7CymU<t{Cqy>BV&Y>;/aeE33UnMLo݅\.4x2?~qX͟X/3&ʍL"&-Y'YWvWsdYj. mE<H"l (ֻMz=ƾߣz&(?>lX6CgJjw|f#*lg,/ʣ*f?UtPWtaocjQ^Џ^vn="O1k"Ze:EB{<e?AkHgr mC|3-I>S-{Lyan(dX{wЭUS `:n[O]<'Y&6k˾.ܲK*a dq0)9Q[ubV*ab['%j	 H+Ծ.m&-HdٕewL#s֤OZ=7(v6C7ͪ0	i!K<`"6M>rQ| X㋘ӂ."\ɁAh/O,Qp
Q:Hj4<00Q	j>rZ)쳠ХӔ%__J'ХѦETF9-iRQ[V9}d(n3KHHe!RZ.hBꭣMY]FZL_m Ƶ~s?D-2~:[DzȌlw'2nБAK셦{8w@UmPnx@]%5_染\FgE&ƚu(xgwCP3|BivHYa7'
qku2`Q][9]J_RlM}9\ϟ$%yUkyby8wtfpifQmOPe2|=y"e/A!\X :qZiJ5H XMc8qkTC.%!V.*v#(TyзifZz"{fo0:k7_1unBE+vYUm([TcP@!{=7J^b3yl*n?:$UPwg9I%r}zr/9z4s\CL,NE EV]$CtpmTiT0ŦNj_Sѥbg	I4,5OK#J7ֱxY{mфf]9(,ʠp/kR^pc&XUQ8PG\,𴿣,k"iã&s;"P%YToՒ(_9#b?ډ`Kw}EMT;;N`AŅ|yeAb(,Ƙ+a.GTXɂs>?%FH豐|^f]eaFUyόӅ5($ܭ߅]
LaǦzC F6]S e\-#<fK	y[o'2즢I,jV3񉝝EF"٣:5]_[e9oNQMI$rm/|{Q-$.cd-KR^OD3BBz~̉NuȘVֱ2J"}:AEԊ^~-Msh9:J,xJTC/=dޅ6|遠rb,-51Z|"[,*6X,ɝ(Ӹ7۵ǚyqmA]37duW:D}46ilڵ^\Fh:n](</JoqF<~<ebvZ])ݤX/u#v@Y'&yH &CgF)i&.3 ܌[FtV.C2I(QVPۖPPDGQmEuF ÿU`JHq˷bE-?#., \Om7Ub{`BVIA<֩Iߺ7U<@'w_/Hg=kՒ<!8XW)%˼V,9CVξUjTiZ g1u/ʳ:t @ю!$ٯK`%/lD(`GU֦Ϭ5{iժed+˳}ROV@y˅}<EKEA{EM]b
$;M$bk!gެO]Ea3B.LGkZ/W^R?d%(!TF0i%>rf|_SF*sJT0KzR'INva=x$fopNŴ@Jx?s8׫DD"Ő	ÙsQ# a g_ke::v/4L*ɳT*jRN_@(lk:HIWvOn/T5}R9ȇx[g4[$n0VC߿JĶf0Og.7{tĥLh< b}n+h)+ oe_MK$o6ha> #DD_72xt#Nrc
I_l 2R֗waW Ώѿ +%^Ja\'I!OSW<Ae;J(a5%n"$pH/{hx0ҨР7'lira|yeVy1#2%[PlOY3`k&g>׫}yƚH#\-#b0
<JQi۪vڕdh8Zi.X@`AE<9~17M>B:ܹ-%SBcs"t\^7ɋDj<
JB*Iқ_Ar$;JˍIpplqU"Pe\q+o>Z%Vyj"Ͷ@tVa]a4k,C єPJ>u01)r*y(6i\rx'J-^$fм
+Yԅ	@sxiY5.1a!r0FMsB=4F$)"_~6[uR9`˭GroVk(궄P4,qSJhZiTXS,dޯ"2s jB4V)XzPpt閣.2֦Et'hDcH`V]U TtRfP"\Zdv jRJ21	S>"[|KKX;0ôxa G1,#NZŢ^\AJ.OI\^Kt	g
.syK[eS4N_VLӽjo$h
ϥUHjy<2!#g+Jc<1WsuAueM^B$I)eP_B{RfkV}֬~43xrT,hG,12p\`I K0<t~hY9ZDVKgA2S^<Y+sʷ5J=mY5H;O+D/RWrc|4@B4$0#N޼fILm[t2(pW3;]YJ6deh	buBJBh^BXbO(O/ԙlaƷ4_ت̣rݲ|o&[F-z\vf1WI%$TF1Rߗ'ZpB؛L"cɯV*\O HDqbU^QE npG[EwGmK,ƛJHjiȗRji|/{k2NN8(]ugEXw4;Fƀz'Cp_RhaQ&۾/~+/aԹ^\&[jW+PazZCzNpr%{ߝZt]AZҟFc3%\/$CI츟{e;Mc/u64jCَɺCl^n&E+Nf aPh21#!_ Nto!kz`# vH<i5o83hF !~|rؖ#]wp>Q8;Nf0%t];Z(/_SX8	>%3tD])#G	+N%&YVj½b&{8V дe(%>-L-c0zk+/0*- @xMsXOF(1bB"U`E?r5QG*$ՃsdT6 F<vx^cb!&{a=  ~,5K6K~ܔ=c:;qKv)2nR$lJNTSb h$u8ee^o*\:'mZbH!QU:)V xYY!^ZŮv-p^8&@@0U_tգE
	B\G<Uq_H0CkyuxqUSFĲf^9H\\,5dҊV\-vjSS;]}[M>Ev#tw(*QBE[<Legkx-l+<"tzh?} EW)'R-oڣG?IM	0$$@t&{j'?]:UMOdppk\VQt(FP"1$hpڐ0dl\-Z[ah1j9-%qP:)t4؀Cǚj)Ac!'-15Ȭ2qBʒZ~yMoh5O.o)VBN\Q qwlC䝈RJ+WlO"eA<Bbn+S4,:*soB#'x$fq=Uf'uB@K<A~Tp2oRߨz=yTU;s*J9IyBZ(#gx$^~q=嘧MlUV]u y,Sp5D\5&E&SpB+mJ+W[^qgIp*>?)5œBqd?e(	h?R5sS|:I`Ʀ@<_)9Oy	ݕh-0jnNv:[Odgxv~#IU	&S	=(hJ_U{|JdRkט̐O"qh)9>R')YSaV(۴`(),'J.g%X<4kn-s7ˈy܍5׿ӴzǧdS/߻ 畴_䌓hue|nᙚQ-eIQn9_$JksV|朢%w2]-,Fe8V~O&Z&+al$IOnÓ6ѳMm|SWu>bVTZOd vڔ<8r9,I6V>4lc+|<!qm8Ip}%]g%۪	HVYgg+:4\nk,dsQK
]>Y8o1鉟+Xn8<!TՅ0FIA.8ݲLtgŤG،GLdfM@)G+6-biIDs\2D;!Z1gQsj8.M DK')#A>)폘`LoRmߪgˁˈW[0U۷^zpuMֻeZ`o鷑.DHr-hYJ}*> Q.6=zJJj92C}9<t^IQ3?ru.hf6I19#B>Y{Vn4<|e@]$%[*`lcN竘N3y"FE\n$}g|Ou D_ xeRQR56堉9",[-3 ܷmklcB/޴ oߒ>rNcl!a'IN'oixX,tKZ
%,]ƗSB \7&
_+UUWoF_Y]$P[	uk{$˹FK|fC{d(驄˪f4nCoIv >d~J7-k㇃j<o~|
!X˳YY]\g!nL.4fՑ%_?{-{'T&SwQWwi_ڽ{Jv7տK[KV;ҹe%}5tӬ`̛c5tDۘH'~ZlM>;I	
gDKTkR^K54W۫8"j>*RAe!}OLْԸLPƤ-:OR5l2:!i@Gm~G]3<"*d!440fN[}k(GS+>ևvo dJc@`6Pb0YI(Ugs<4y&lBuf9׋i$mBuHJcZ)G[Rax<tҕ̖^Z/\Örɿ%ޘh?M?9fK7+H{\˿,g<,=G_O@ED4=u=4` K~E]|l67lH/M>j\^vOSNV1<r>s?᠙`Ζg$ȌNuVx\]Gux/?XWA8R|O?ϯ;O'$kEmo"ZQٴ֛]o+ٵvaXkVُ2Uh'~GnxBOffZoTG/%P|	+AfwjيV_ud=A8dLWy/_N/|QhY~s?*W 4&ȿ?Hmn;_|-zL*ޛu;Jy+uE>p<zUdMMjb	t7VګdM֟sBzn>vyyx\w9*|_ׯfp,֚ꉻojL*+$΍Fe!q_u{4u/@MW+0M!t4L^/q`>w/?шP/rY*'*WQ-}db=MfoR/BOMG>ovB"AǗn'Lӏr9*BϪzHSZ?>!x:}}T;CWRG|D㒫Q8HꉄVAcTsUn`pλbFFːJx6e&ɥxx9;<$ R/{y*1ѾDG.n'iؙ@fZiVf^
[)7F32 .Nv	i'є)N0tGq'bf+Do튓581,=l?P/o8C*h9_T\t6۞wY~}Qp|0NTrfuNTRcr5詤FT԰V{	Y= W:Uuʏ@kDugֺ`LtxສyJ+U'nRq^pIL<~F	
͠9Pdc%edlj6~N.A8&@x	| 5G(,%GKzV);d(q7&(`iPy"% 9Tѷ }^`"ZA3&Kt;*(!?ZAv}>Mrb4+Jaa%P/
N\ddMM.h"V.$anG##ޜZ]_g807b~qi9U,6 lV[sBr6H9g@nyP(z
1flPd(]cjIVR?u1AQLz%MYj*@oƴD5*X$zÁ_J8gh8iO!!0ȩbd?|hlY^ĭ՛eMc~-Mq4M-j>^cD
`?a Tv);FJXoD^ͮ* /DesE|y͚V)F6V]UKÇ\h*!6:\mNꄝ.h;|o xʎrol1̤{\Ƿnry_&kH+fla<Xp@@.*t(6h5 ,6<)YB$Gm`o@CL)nnknnehek+ISGϪNg4ל\*_7cۤoP\ &! wr S&}ۤfLBܿc$XY6v;zY(&'m+čaH|1@`+  r=1}JܦM|	,U[v|jkPFZjQZP Uմz6^r rQⴻ*D*5]_),YD]~bnqKJ8* ˏBѿw"S^|&;7߲}ʪثo67:A#xwV%GX2&IӫfF։.o8wN)˾pw&ίj歆7TdCF,:AT)d|NvJ,B8r {UA8sW5vĻnM{xw?+e0yWtev$Y8xe%*N	3Tzt13*r$gktј\MnyӴēx4dFrpøHF)	嶣/fA{l3>g18[@&dwTDDAVQR{0foXY/2[H|ϒO]B0mx4UtNl4kPo-~_ͅs)}3+O0e$KB eXj[5!ϸD[5B`ZT&{_VVB,\%J/p_w⎬3YdV85KN>;2cvlc!Ar$ 媶0 ,.`1r46 |*xv­dl~^m<L/[4a`3g;43Jv1B8G5Jy0B꺤ӌJ#{a)-)-z&]lhn	2*xʻpڇ@Dl]BMnaf~3ΐ۫pnWa)
$d*~Efjg籩.0Br/.*S`FEt@.@lӟЇY0[x5R;!̽Dɱ`zMtV1[oKQ<[[3:	u4
?r5_|v'8-f0ņnTQlKc@O~h]&2|#GYv~
>R;p*_0Xk>ȕ=<FrsA|,O:䪓-%+B<ZH0<)6dWK^ cg){50.Ljaˬj[nt:0Ʒԭ;isVR> L">ޥ(e%S["$hS$Zb$xR:Jf'8͎.)҉|5H@sQGHȼ/Z<!39c j4ck`sIǴuN?'0o&,;r}j&6}֫Wѩ:97ezţ,hmxPk 5ڛfMl~Vj
Es6VbW<G Vr$c_:Yj4/v,aG;upaŪq0бF!NVwvգ%ҪZ~.-_+DYVBIu{Y"~mAJ@ǲһ!K\.l9AU+
hU5Y^4ޅPCbe+5s`RzoTb#*s ObTFZ=j9ZXkN~
t !g($EDp[7N
V;K^C<F/1fݪ4|S[wTw&R	Kr91TMk^]4&Vr/B`H<KE]eopyp;c.|Nvw44Q"5QOT5w<}7-?.j{#6(JRH%#;1lķDQf=;+2`n&>p=x<{Y_ #|%(["1Sp0szVBV<	)tc*jT[UM|o&L\ãN53VSz(ɷK0+;u/ЭayOzHamuT@4pbmn\f7eB	!Lu|^mRsZ,ZGsGfFu?-b$`PF( c1ُnyg*%R#ID_M`C\S41M.bh˞GїQF B/3f!
<h:n]{&.ι\9_T6)^^=E!zU54n^њ<usZҙ)%([L:tW@լ;8ڲ;
)%w͔4 ݚrR4)rt9zE\.d[<b<R1#7'GoHy,pAA1[I+K1\bu?@̖[(/% Joqt^=ֻNZ/͖4cPʐV k|.e]Bh.ԠBMhRZ^Bѓǝ2a;H/8!脃wʯ^L(岇qh0t堂ვj@VWC5V;6ݸڢ_*E]{Zب4#PRp+v|GǴdd0S(^"5Gw,*Uj܎Vh5k2),YqSot{tV*~R%m5S)>x򑞃Nq6rmo,[Zf*-,zwbjfZInȖދ-SDQܖtu#c$kh<iTq҃)T];Zf٭T{!Hk)>8&T+吭Rc5#lHu9!Sӿ;I3O|NP}%eצݞnzE'3+xsʿը,z]p+3@^K״)}5+v?lRuzv0@:fa^~ZwZp?OF;帯1xrWwC2dk@xLҶMc.U :˱\'ߠ+]b<)y/;QNw4@qW:͉⥼{(1ѶE
 ۖqf
}g㧲s9 o	q]Ou𭤦}I(ic@رBLZjI^E66l)ްsu/`>^!ӶKso31imv89-[b@EYr$覡x$"%{iVa,Fm.{MçᎰ)/Xxc`i*5ޏ12ʵy1L;OrN+o6\.;䖶~n^Iw8O[I֊h6myJ7i>J?:zkdmZM-ҏGt&XvQWDɏYoTG.eYޅ_N^N_^@K	2WV=dFLdfj% 烠NT;嵔vR@:ߡߣq7㏭j	bQ8Oq;$NbpAx\w;@xaO,H3w'?"5`~pS25:za}j_PG}b:
:!>~,z9R;	02v	aao`?0(.3M)	v;m{Naƃ~ÄVb枂]1	R!0̨̞;3-"p"9IHDS+ԫ p2Y]@@aˑ״Vm+P:&(BNq
RgHca3UKzhG(\D!P9c섢a^
A@r@A@O~7~~ybvznV=gs"gEoLɄ0	NHd9wDuT+.%Qg@TlYۯoüLB@+xaC|@^qQigQ̂GY)߇˫iH;2T2>(b#L*˰#習1lׯyJ-0;W~'PR7A  XVP؄`tE9=KFmb7E~2rb,Da_0BqLĪqmVc2JŰq8C1"%}9-dļωJ!JSCq*J3SQ[CQ"xq7b]xPNL	3 8B	;v򯆺~dUVeW^<4 pwGNfN0% "^Z$\}FցDA^(f Q0vq~>TY+_npNP2bf lCf_+.|.bִD1 GXo<>JvXf@0hYpah6 dVR,fJ0Ŝ''Ǐ$&:4"XP~z9c3ߝ,β!;[Ϧf\.CI=Q$Y|b~u \<|c'pY;j'z\XTD3v 7I=iE,8VI]Un}"WzuZ):x& tFP$Pc4ݤ5݄K!h7IJSJI^s#*05u)`O6|XEitIZɭPe3 =uDHƂΘ_dN(yG%E 0جhJ{uARyCȀ:k@Ku#u8?ls~ #P.;ʡMһ`k,^Ky0 ѼK+>$zv5|MLb$OO&x%V4""].8V8{qPmҥE>Fs3#q)G+(ev	HV&eI1Vr*梜#&
j іJxu/P٠e4nTEsr >G*IV:W.Jl.@Mqpb6,&Z.lWLpBնabıkU1aV)^'kuF3_XX^3wX{%U`qxYCօ#3 ߆#[pݯ>xm
JL4_*h()D&ÑG>N>oq!Dq9vj|s0vXP L`7bE֡eցR!o
NƂaApsx~k]5ԮvUs۳Jf)>vDP1%zmЈA6n=<wW~>Zv%],]oWO.i>^IS~\+1$ҍC$y9v]
TzXe.ɕY5#w6pkH3?` naxǱ e)*ԃ;@8!)Ff+O[k7!*noIj|-#C*gnްh;	r	0slSIW^zfIMJ!L/vԍtqt#=ŝZ^%6WbX&)֍㓕Qvހxc8c&):@FoC
ȠWPX)wHY^LDǹ`ON0׹MBGDj!Pn1rD%Vk#W l/*GCO7yTL:ZIWʣil-;@V?cgw#G<Cb<{u"m˕3t|SU܋
Tw6w;l-`ێ4HcH^> pEQp OQt.JajEAcTQV/yi;{`<)Zxw`{f#@A{>Pk3c0
lo>+JʾLeoIӘFZ^aVPP<yǝκtz^k+Ɛ'v8|Qʫ!z0_?9"/`w;Mo>7rk7=kTNbwTv@27t֔Gh>=\D;kj4@7Q9ɋO^4 *O^i䅮@G/ʕQ\XpE|Oˏ>mGY]'RSL}+5s [
7:S 09|Ól`dc <xG_lbG<ftlp`CG=1fL^KI<G8,)cSk)w1mDuLG,R*^9U|"y_L6Z8kT]VNsN>[,/xx҃F|k-]pxd·YF\[|IgzGhabj	()"e	mMT	klx ^vv̉u@lm0Z]pͅc0hrtBMQN(XM[Y5r2N>h>ׅopKYKɧ;ˊpC_h!zUkU<W-g+V:7{U%	@amB6^?{PQg3s8k5{(%]!hE`LOi
e:dds(7
hVbTT{<%R{IK_nf!Z."Mӥnћv[dVE4Ե4}VMCk+lϯN&+iRY&4/Q;vQӦrVϒOba	P,,r
%c&R/D\wl9m"33Xq('Dixǫ<fVBqJ@&ڔn@nt$ʅ3`b/(Jٲķ	G*ޝfM}/<")@1^\Gqb0G~Q#k'\Wߔ/$
vV(@ϡa^i;Q$&},~hY^C65EsJyN^1xek[V/ju-H통/~z9=7Aօ򩪣^J-=t:Hx$h5H&^7F[в-==	֟_M|m,dx˸2Y8ev&HPe+R*,CTt_
rle5A_/Ռ|A%~"#/9a
͊O51[H=v|09̧Cvw`JHccn<0;d`{daύ\јI{8Or]*y^.֌{/ӥ{[_m ̕1#ڏ=ȈTUQNPΆƂ8if3Ed/70aݲ{7Ll0:ETַtʲ5Pz&kpni^S-dOKqѧZA + RrC'\mGX ڨSoQ)qb兎*¡)ҍkt貗`j7LkakOtv'`~2JVDQnI[Qٴ֛],7-ւHُ(Y%XvQcߴ$խ&Nzyb]](UUͫMU6ղDYz@ErY<;A0u $ӝi*8`d;JM& }`Y4k/X^ )\(QqLi/°s	^CԳs
S5z6YWݩ
<{ᘗQ͛hudڏB PAE>]'߱tH@;Jf>>>&!1{l<6~L	Rxx%<Ta:@3CRzm0ÉZj^|5O^jv|iNk.7ES{~0~GT'PTQf}%B.1 ʸ{ E(}x^k 6@F^`XU)g4'\IЋ|&h*2JguCG-1#S$XV@vD,J.'4tn)fAp|xkP؝q~t㰭O؇B'V4@f𳆀ON8TL'*=LdN`WHT݌	;=e8G/e?Lao
TN^Fhqz8751l&	쏷'O:!&
pc>N>XO 5y Pq0ei|p")} Sf7 %Г\I3uyM>	׳{Du`6L$[`4K=OsEdD!8Lq7qqxpH,aI՘Ym3qY mh=bhT4olmp*TPTpTp qQ 4m6\7L%Mcc"F1xk	y},UgWkӐv?iH 9=If0M9@ah#b\ceuH_I}R`3X}t<k}:mHu-n8=&{`qrJA섃IwqKftR0y?|?\OBB~'Q@zV@q5އ]y8V ϡ:x'=DYS+ 15	>dQeqkxʃeHP X5ݛQf&(9Gnq~Tj#U,ST "d#G yy;UVRHoRek3tU,s}4XX `N?,͚®>٠ˬhֳ70; kc f!wMDn^`rM>6N8Yxݞlkx|;=\g(p:yFgs-iVNP:YF?V?u>)04
1'Akw>a9yTɪT	$grC4>%4`deXwkYBe%6},&`-ka1v|]-eWzdA6"ps^n#Ϛm-
VުyX/U@nqհ2[u,[H}
|钳y_=Tg%iH؎u(潴vbJMOg*}jSrAwnK̲5f޽5a M lT;	mZDRD8mCd^bEc&qwD}糋HM<v_x(99]6ew|s_آ;u!pu,5XDoUuT.DLFء26T4fW.ꎟL/ͽxǒɬW=Jd>	÷h.
̨LfQ8o&dַŭ
6ze8'x>oe	-:߷l;_V'[!(z*3ݶojE-pY](K!/	ˣBnW|B{!RpH
4
GX%$ߡH@\r,fBʬlz1P{XgpGhtKlP5 /z*}*:U.]rLtCmKzw;ag9n:3;jc=Ώ8Mm!!93ԮKjFƼm#Z4|{2jv._Gv'	f&]2
uUc^fkdu1MRbu.|5 Ԗ>_;,Uٹbw<PM$GP 87Х<.E]<ѹĶKԌEmPĠsz:pYN7''ඵm.UY⎲ni`;:w0<LsaqCĸ3qiY4>ƝFNin;szw53HM3kY׳gE5Hѷ(ֶ5׷Cqq?[jE~kt<לwv5:tFfіҷGfЬ}ؽ
K_ :=%*M/gئb'DueQ&5L-xM]DT$R]L" Lݵ`0-t4(}1ݙU0N4g:Jgqb}Gb~<\4YϳurK8t,0]"MMzSW<.]bVkoGYRm.EK%~xs/Uoɚe]CT|J7-|$~w~,=wf7\rGdaO5oi&R8Lt]'$Zߤ0E6l<dQkqw'#(,+G	)֋&=3իcgDvu䵜H3qa/})rTv.LIힾM?I/ELD§rN4t8N:EԀYĻCNTeE+iQd6:^RSkp+2gMQmXg_)Q#^6؁mA5֓@1M5ibPlT~>kYʁb0j߯4+b} ̀˕FQtEcjFY`?BE3
(iT(QGaVC3bOCwWbz`E@.,- &]BҲύh1Xȼ~nWΰ&4ւdm~Нwl	ȭRXY״-խdUZZSǒz+ӚHSN{xq#LLl)}@84%;dq9}wՇ)=t7A?O[+u<;")0irRAޛrG|"a_Mv!5*;VMЊtC;\[98sgB>ک2cԩʘ~/G(lZ_;&![7 Σ4M}~mG͚e>$WtH ?jԿy6_>Cw**7uA[Je"mX.>X!J4S<IaW:}ZTԲ!zvcDuZ	 oE<ּZ˥۱Ńό5*Va,'ZYgܲŶ$ҭFZh(<ѺoVR9<23&yXԘJ4rxr|Vإ2EgًW{s?
3]k/-!(cf%?90DP^uYyDɮHh =]{zLH[:ʣa0
e"]:A?+8TaZd=(Da-(1g̘*{r~Qo*⬽>ԜĨ:Ąthӌ}4Sc54\^UHk]O.&Ǭh!J-/W{Hj7y%/+p)xRdNW^^u5X6f_ąCY "x`TW_\âX¬5͒]1$;m*)i'Il
/>|O;tȫ8t1.X`Cqx}RzuJs70#C.Ÿ{\uc<,L)0,||bq9GGO>=Nrj[P-=&]Ť۳5>¬οL8f7Zs49:FFkHkFy{q4p[RB3BCq{S>zq$'Dt峣~Vj8&5P~ۓ]uo.u>Mv[SfU?C ӃRFVFd鵞<!(@db~]Y/'x]Lz}E;zSX;̸N/rx2GfY۠}*X*
1{h95VPjBd4.eGYJ]K@Go{v$Pyq#_Nb@2?h<TLdsCx&Zz/ŗn'>U'dqHVRGUhpY	w G?	[ YͿg*{
vb,ELT-RΦܑ*;Oi՘	u8d1W"˜mF̹oW1#[h#R12ѝ(@aLw4̦WH/yi,Ks^xhԥ.s98Ks\rp+xq"9l˱c7`Ek9Z#i9vEh9Rxcf9Z`#Eei,$b/D>)4o0ꇇ#LCxF]ǗUU7^ZdL /@Q:MVRZg%ʯ?N)~Z>gXXV<tG3	2m|&wQ9_rg{tikpѷeuVGml/$-	I<`['ծ]0Gqb0e*MU{ҺkJWؼcJJcN2`14KU`#ĴՊ{"%|VBhF'&RypCCYAdChxѱ)|Uݵ/rkAYm#w4*K3F*H=)M*PĴF%}m.ra\=O-#ʧkQ%זE1
rPݫfcA" @><豃-(~[O2DzQO8XufD}j{TEH۪?eeCE*no\Vo5Hrm<ffP!N2xίixSIjݛܐ\?)IɐVVcζwfǟuz2`*D[RjEx9{|΋EQ"ݬw,ۺ-ka(3jOCMU
?= ݤx'rWUf"OAș,,ۤ5xM~FRB^EiU {DmfQ_ў$ˮM>W.M1i)utHT[*2KFJzl6/1(qVU0_fyUG)~ЧL޼,՛\[F<6Q.U-mvN-t Op('2UEhLWUl(ݡk+-|E?#5 \|Nr	1hg7 <5`$k$~7p:~mzk^~Q`PTNs9*^t@/y	Ay!(N^-ڠ[X/9:({tRF䍀+xయF#-R9w7h=L]^(mW})rLTl|B8w7T؆yb|#ϸ)4HW#weæ|AAV8r4&˞2YoT=U &eq@uGBWMTL=qHVPB92eg{Fnwmg	jل#.bqH#bh7V6<8^nlyu+݀j+a37PI0VN3೴88}Mw(hkkl7=f]cVGDQm5gi\DQm.>.Rʃڪ4?&&&3ZU5=v)BSjۥdiտ?GwpUI^j[*SFɴ/ܘ<\&~.ҕj<fsk%\ӭnX?㡍sWwOo||*B]~Q yC \	ü<dl\:gWK#r]+X+]\ù}\mótBuz>TC"nxmKw?Dό\Iw8ZI֊8ۤO{lu65F&Vk6-EZe?6Y*b#ZN~<k}&dn7q*գ=+%P|ɫ٫Q[ܕ ~lE/Cֺ[dA|NTxeoxqw8N?'w'?ċ1T12qpE¥;
{A8g L糋p<?kr	sz^ߝ罰Cj䟊AM
(C8o<!a~U<1^Bu8sOc/T?JH5*yܠ˰TR1+nh]:Uk1j("x/Jk*F4v/WhE4=Y87|OWegW٫)ϓSWq~Hix}z*NzX ^
T$ZSpȃSH^rr2bY'<4wԤ;Txrfp>'*|WhD%~8
=X[9/:xNr(Pkr	0NE%cR
|?[G2RRa88hN0&ƹT\ 	R)~>,~9T%[_[bCe)S,`Vvǋ\P2DOCbF|8"@ѽe{gށhj;D	p8=G]~v8n~t_,ҝij~L朼>EIOW_QGl$'584JN_(#:4$_rXr.EC1x^xo4j,P'@~36r/芩Ƞ9y-SR7>Χ\'ﺣKڋn9ywI#LQs2]dn>M5TA</G2^%JΚCgU<kl1	Mp\*lAi E;MjLIL6$g"u9 q8bI8SM2cO2FAݜ94!g(f2	;*6{q0m.Y(dc\Gv82b4D2R>ugG'djh]bО4#Z&ĎĀyNDʘ^Af.67r?,_!4n]>1-LAzz<:ti<#Ϛ/{8"R6v	ISq{Ŗ]a<hCicf8YX\(C~ròtiVt!c$?=im'єP/49<d8,q_^6hSwi 1L~Tb׹M^RE
[
`6ϧT&b2n<;)<t/|~{TH2Z_6"ڳ hٓva͌; 52u8 x6-uem	:Yo(#Jt=wˈQ,08Fkj_98܁炫=p޷D߬yjS69ϐCf ,V:4[Ԥ৥]#5,C"]u{ h% (#ewwӘud0}cXv!Rb: 5kt{y! FgEf֡:UBpƓxf!f43kjErQ:Ѡ?1֢V/V턓lN;QYBHTJ@3qG(%QJPD@9,`öxA /CUWG1cUW<v{8'SGÁ*puvn: <r;]'NI:"љg,d)دt{Glqy&ڵ7]Y1t+lo!(%e*J?Kx};eUhlx9F/jcO0|fAT.Mn462Q E<RIƮ$-N7z:Kֻrˇut,(S8fR?KmsG(HΙEꎇ읨, ]'i1VU%!10xPyGT@`9,f|f	W< Nل߲L͚Sȼ/-#?-<#Q(H3]jd=,uQzHO !f%$_Ӵs84&ern KwknI7bOsd	yHH1oH%lS$5[7 uɪ!ADE2+3++떕g-ULA60xS,g|.93]>ζr/wv.YsҌE8Qhӓg6<HZt[%ָAT~-L@61!hE=x9H~BkFx<u))
.n7~ALHX[ɐnDևn`SXD
>nT\{o7%=G0ƽ? &}3b:&k9\fv\K;e@e0WW&Н}}ANH$32>?ie65&K2/U؀jrmQ:EaB!@" t3iX>y뷻6^(b,mṓ
7m{D/*㓳N`V7j/h1,@@}cs]Co蚯u=xy<d`p|_5Pw>q'D>hAC<Dmvb#t.tƳLi=ґV@" ,4gr%7.*~ {Aw#Av.	ɓu
DVcnn ;x%ټ= ,N2.8T0y)yKAu4__RɮVa@KqVnYLwGgsbE!دCS` IFҡГvej!DM(m ٷAp7>l뽥}vԦ[?|긦C2OwUϰN&m}BCwW7]8T[oyN? ~@rOt>l*B{'6(qsEPl^~g`(,{;[B|p-O $=#2q2I/]0/ƥ)4#.K>П~-W='`60<lO>?r9<z􍋕O:Jz@%p>$:[֐lfK$s@1_5/Z~`8Aˌwi仆ˌwϰ8UX[>Kʕ<t2m$S|Zvj~tq6YƮpUoI=ϲ[YTlYquh٢Ȧ4CUaRl=f'5T~M5ôh^<Jm44,5eW.zo>a"ဝ}u\8%ff#xv}2P7a}4MhIN,}IHխYT-U7^lņZ^O>{+!7!l֎ơr]ΜIY3~g}G;`TMOÏ[{׼q[Ӧ+rH/OmjF3c!hOpM- 0kK9J2;˷~竻=xwDop{3a #(>'-e-?ƀی}yl3OIrrcmF(+y]R`6 B lpwz-%W	(M(W{(eVPn[r6`d:FHI2Dvi1ʷHWlo+Oo	lծ@4r^P\@m]BE#V,T	;&eNMI'Y+( h.z=RE̚yY@0pr'AO݇EK˂/.K^=׸
`%-@ 	(!"He^~[fz%=z#Wg9=`\g^^'C%U\#*Rtp<{IʹU5=2f]^V.ӗ|QdA*U	l xsט2v<Ds;BTuď $r-9
[Hl$hY3`9fe챠U,g8m		'.	o#g5ȁtB?ᕵ:Sc W3a	#8|Yc|jA~rR/Xx.O$(X	ƒ&NFB  T^ DTy_hsm߱щEW_"whe	LLn?+W
|!ǜ8,}]8ŀ|t e VѤ[r m9!gA5#xr)R\*>4Z [мh{*)j9{GV[J͌X't{u׊-]˿rche^|ӽѮ>|	l4>S	fj̕1W(E𑷶U!PȨr-4<in]6ihҎ!()m
hIJggT|w[ɒ2I[]oEL}Bܺh`xxC#8Ҕ>93rG12ښٷO&n )Wv@ڤu(_(o]fP62z@* s;o'l|lfkFx)v'fokz6ޞNzzvb_1̳r_"J1:S*Y/YC!KJZ<'@NN7KӗtB6gUٰ3X*m/)cpO>G%ehiNx0z1M*r :qb(uj)u_D3W$w~zKBh@dK`.x8MS'/}")P75)`Jj]> -n;DRD%WT	i
Nb6\' 2 jfNiS^ȑykXັҷ0tVu쵥_`^rzou/Eŗ{
BقX,ū[ZOy[Nv'wŷ|uRN9g51wݿʟZ4]DV9([ekS;i:\'յb2UZagD4 :;}SE]Pud"۩5:$40cVXrJBRlR@ʬZ,:c#֚	ھr &	+X<}Ew^72vA$#8lΚႥ2XNu@N83E
O6k2;}uw4Ҙp鏯;Ѹi
$ww\fi1n6i<7[;UNPh[Er)֢PSj%O^Vmb2H];=+ZpP}d[򽺳*)Ph:mDz QEUZvZ,
֗ڪJD^Gә";)͍ea@HTW '"^{QƸGrBQZ @dxu"O
,bCK˓x"}XP#
"'Gamkx(ҙh#	4A4!#p$"1qp6
Radj^Xu|[H(+6qQFw>}NSZR & ػG숍OgXךhjceX[ڟ#dylhڎGm~(Xa֪+/Rce3ּ"_38?>+VmxTg% |3&<嵣qB:hC[BU%$)YNȒ4tt7f'WԷIpԝxW`:ab;p]M)J /du;*>oՁF:&U,n)iN:mًnbdWh:VOb C'Dp?G8Y)KwIЍ9ئv(떈pWYz"N"'WVo{1.w/`>̳ҳ2@byd¶(ϵ3;V&`!2X
5.x6h)Ҵwψ"	ADAd~]}ba@/_/Uށcxp`46-Xb|Aaz)\*ÿ8:WrFfQ|)↛@ӆN4r nP }N-P{hY6JM܌{0/r%@s7.Pǳ\4\cBFg~ ̜zXY0Q,C#f6,M5LY Y-@Wl37	:3EoapMR4={k!l2V;616!L2R^G@!q5wJ=ࠪBXTPzSu~$nB{ĈJlQU5QE+a$lv/:)ӗՕLzY6[FڏFy*w3	"7Dh2ס&6Ϫs?6ufȕI2: OH[w-=|3Rs܆^!>k]keA348_51Pj3\+bZQ]s9m]{+RJ>7gD#sTi*8Aλdb)v
>_2{lȾĆ<> @DgfkiFб&qM_ZwAUt<Q2ǿF [,8^ݘgt餥7V8f>ߪ9bGf6J}sp`4lq@kcn>F]QWҢERXs*=*3\4rP|Wڑ0wy	k |h@^ /&B\	#CJd/"ZksK}
yʐ2t3ܫ*Ydv"L˃>[>.q|K	8@bjݞ/_n6e|>
;
p%cKB|tHArx)rpr}-UsN'A{$rX~BZpŉ}0jBY;▐D!2>xH6q#
ؘNPqDtuʚHwmڔ*e:Y%Pu5S&4M-*QÏ&}sSkP^_;eW۾MsR>\υ+PV0!ߐ3.J\RxA*HƸnkE>Ѷ^A?JUˡ:?Xߊ~P߂iTIQPGly8N(yj^4!_6>ARjvN,v{%T@V/a}7:Ukŭ6$#9jr<ʳm\\Wų2v͗l勻庪0MQRqd4zWZ\	kA.^V, $#J;{J9,3o^4}FS#4{ga%,.>x:2KtڟIg2Mgk_~HPQQ ك<˸|B.KIgxUdk3vHZk.GdDbtHCQcEb@e!}3>{V.LgxV7|4S} -{w[#@[,=2ZjwY:`;^.u=p^|sޞ":@p=4Mhwcn6ܽ|w[n7IOmGvyz
)jP+&;qFJА%fѸ2	T(;su̎X#
(ĨCJqfӞF)#B$!}>#	La2JLA(p,|8pE٧ig8ПtHQFЅ6;iZ|[ḃ,LmZcWIkJQYSG~хFҚ	W|"u VuNQz陡ӑdԧitU@g-!g 
2'x
J9{U!lRces=zb ;ՊG ]&3`yR*f~ޙܖ珰Y{jж7Hl2CV UJ?`![_B#FH,ۈw;@g14JuSXQsaV|Ŋ힌<!,Ճs3Q8|#7MgN7[,6pC݄pu*ܦ,Lŷ<ɉ41gPsfsܕл:6W<GGLowT DџxߙTFa:fC1N4"Sk(iZ*U,`NV%@.8ҿxRk{ӉoRMH1ݸXwHd4$Ԗ"UQ莑X;׫$ȹ,o 6D/u\:t`P艙6<Y@?妁IT]Z~\b2q"*OwZJVSM7<ס婚wz*p`jT6Qj	/p~ub&Z\c)_m0ZR]+X	ʜ :	h`CZdYP%%jdP`GڞlT
(G*CZ6i9g(=híEͶr4lЬع(~L#k"EӸ-c2]Ԃ~<%CKIA}Fz]MkNP*/ojLWOֻi@/&JU]\5HqjGv.G]Auu
ˌu_>
5g>)<PYJẤW]?<d?${/M$=}!"!	,!fM_hG_uͷ١ PGs9mS]+u)e
Ms1[V HDˁTeaiԥ3N~2A6(h2Nl"GZLsQgԍ2z
S~n˴yl#虦m"5pזߔ rV̮GN-/djc4UO7:y
5LM;o53՜-ruf,.hmwhUZ F-g]UKjzYg؛t2aE9{tB߹-e!Vq*7*i犥ЋnJIu>8]p	7י-u
hFkkQypyMh
$q',gHi'&.4(L/O?[,B=F4/fwrAܫ\I2,M?y@zJ9WJQ?..a۷J},_;`T=ŴM]4^\5tVsm5/O^|oJn:Mhj$P:-X75+`IJ;6fJb4N^eWJ?Gd6ak!qg,1-l:!AcVc*cA׋/e@E{!ބYOŨl6le[14|y }XA˅IDH_&S3D[z9!taL?\sR^;.qc4'1/ߢd<d020rɐBt&	ё1=M4υi(N(K<EUpim(Fs	u.qٻ`c@pLl'5.y"f^gdB!6@:fc (^D]2V	lp#Iq:c"}M#PBiL/$T I'#yLxt-?~d!>ҋS:0-F!Fl.$L4ưAm,= mcAƘ"k:,f<ȁwCQbiX4O!+8j$,9i8t&,|\!SPJ8J;_{PDuS̓5soE'p;>u H?c0t?/!^~a9\׀jOD@/Sْ[Q3UO}lQ\lϷC	ɾW H7low$CVMzV=[cE$<"}\yk?v)a>m/IMlzyP8d,\P)p[6FAc/a]CԃiEY#q-֋'|~wY/'a5@%tӵV2 V(3*$ԨHWlAҟlǚ\Tǜ]yb`la݈6 k'bbtÛAڈ,o`	NڱZ1M1jeՎyfZYky]YOÆ:5(\`c4'[Wy۹Y\B0Ǝw0V#fһ-Ka"َpt(Ǵe1ИAId-lq4ק<ݕBCj[_EK%:a0MjSS*٤G%:ZXE$9jx>pH|Exc2y,SU[	հ"Oce5ͮIS 8e.Iy(P+6)xI`|wĒhR@Cb6pH3/2i_X>?]/iC	#TKPb;JareC҇<d#V%ƭrc|)<uwRWl+f	wYt9-?yyyy9ixxޚS:-j`8=w9/(81hȉi;3*$E(	skq+y%@'wwrtz74	ۇ#&Nh֝&FtuƓ&*=K>$냽Τs$G;P9o^"1Q9M4y8:E]K~DD%WHù.0:fރf3ccZ|8N
}&j(+]SqRJd[+Wnw'p<H/îXcrDf	q,aϘEqtb"69Ϗ<<<o\\[4;lgP¾sº%,=/aϚL5-&lS.!"]KEu6VgÁx`qN@<MH U$	ܯr6~~N/p>oۢl}~v4qXʠskv4vі4aTo<wjDۃeBBM-76pL~.!l]Bx;(=6H/3D9"/I],Y|ZrZ/`sy|N%/}[C|[ANP"x:?s_֏`3ꟛ?Ǹܟxy&;i477fn.%hDߴ.f溉s4w3yF|+~7^c<]Blyyߪq*k?a嚸.3
9+`[䅒nǋYuDt7u P2i Z3܅/ԅ<܅Y]C]]z.Q.;mI>AioolVo"o{<{X>R l"}!e!_ٿ6+q9_7ڮ{DV|M'4U)]t<DIlϨsCҐ,	ܕ.s1(@dFp'Ȅp%4^~hB5jS>N2V{ipc`5H/&"	Or?]mam#hމyKyAFu6QMش6ۅ:v*;HU0UTWOڹa{PbZzzϨՔXUPg"ߒ{KqL,>	pE XfF/|m9gS_}_(}jb|IVv@qL@!vfJ*xuO3̺PttA,{dd>B
	~Q
GQȐUy03J&IVd5k|coj%*YȓFVuqL"|%(ko$Lx0 MsR#j1[*_Ҙ+cdGLՈpx0Y;X㛉r}*hD #_]A/`"D^tRv=%V2d]n볏>\9vud|e'on!BJ	1PˡH'_^AݎI{'SXGPiU2#	ګWVs=N^;oL4Ղ@lI6wM:[JId0g7;`5_$x4$ci"g(j=JCv	>!2[t]=E
iwK#3/iuO#Q-]%$6 p54<5 4B2?`Z{ȃ2bz]6mf(}iJFӱ;cFiT
Uvor? K.Ҷ~3br=[[lNY(_QZlS`rp"T6-82N؛Nb@~3T.`	T Qh/_KzD_X΅:3R".UO[{+lNjpgi 
h}
WSm"A &__I/x!#į/ߎ]4pm,ּpXCCQ\M6,l>
ҙSjO@ ro~t5%wlm*of2hED2yKX,SNƉgFDi[2J(C=,ةK-laU̜8]Fs:\d"۹jXИh@!*Oc^/'⡜C2Z^gaJ}.\50	;vWp?2 t(Tų9=/֫'X׸=nuXX7W9뿺^!?7l%ǖ|h>о;WiOr!EϖeV.bv=(y!P*L0CVASIMP!-.Xi˖6ͥ;-ygf/5p`|PpZ<qO#{Z$*+kb=͎*.|E|HC D iCb:m|#%c-gܕ}R[:ie@O^c$?6qݔs̗r1 Ӟ@B:TaAKv!iF%`8u43_j,a(Dwn۽zR?uDڗP ׅtWHji]6~I>WU((2&|G,,-CQPV 	.jI'& 8'v%J`Jy?eVA+razʤ#h+TݦrP,+AxxGZ9DYE/ ClsOҷh_z`a:_@,j_ۊgUm(@mỸF\*k]뱫TU]i驼f{E+,YdxPp*))bMY[h3XZl
_ ُRXVUqmjYkFM7]
~Xt-=k{8BP02Tdi>rlN}x{b{MËɪ\m&a4^gڄ>כh@vݣtZ>E)iUEPniic&6lb'#N;cHz֋n'\8Z(cRWt<
"݇!:duGob<pɒOrS{3 (JUdRI H_qfu[N 5t P%Ą-y,}vl[rŅq8!pV*&΀BJsHKUє4eHƪ'9.݌]gf'?LHx8ytcV@>2'e/yᘔF%p W[mjfwmm:8&8}G#/d\yRjtAVS^*;,b54|Y_-l&vh'd>NtA 4@$Y{e5)G&^U\68gKS,:wz<[2[-j}HnxyW FmYY)9f4CZC=l!-pked*92ūtܣiB>hnz۸{a9Jr;Q
%}n
@ql	!G(|hbh^7z4#ޮk(e]~B~~cт*fٷ$uL $B|K֔Wڪ
TlC}׷tr.M,*}GkfEHIڔQn@=[Yv3o4qY4](<` $ıuqJUBu`2 2\(tRò8fv0@l Nj ƁX$n3{1j3*5piUojxE
"^ω9sOfl>ѽ<)N/2Jb|9IZ {t/ (Ra@ݨэ>0@T0VilkfmQ~uZ"ځ7j3@yNa}WQ@]Ͽ[0Ӏ8΀Dߐp6_[2N`YS}E?sg?ISVVl禇ld43T}LzG)N`CwE]tpI(-7=YXoTŨM6טVu>
+tW?n) k5iz\bkgEvoRrG*ej_Cx}CtU0}m1޽k&sERPhHw6dR*>!0spQ"Un`诀5[(pB{i^nXT QuFn.ꔎn0U&7(lI	U+s:Tr? nF!7!yW7"j֞DMR7 ti
(ib@7-9C@@&^C\i z/tUb>^v*MdTMdv$(B+?Х{W :E ;QuG^*P_&QY[Ǩ93_%moF/,Q:J&G~+ٞbڝF3A*piʦ5RlyݛnrH~p9c'(U+UmdY,
=3T
tD
GL O+vHp5ȻH S1az<a-<Xj(t/p=Zzӱ]Ɲ$^-񴡌siBzޤE zNj5#avi؃ev<{v(M׈~	%++:O3P(_eݩ4a2Ӧyjٲh 5zq-Ot.izLl4F߅@e@ar	nnr`*7EcA{FU% 䗣p5_濤HRbҹe0~Y IK't DZTgnYe9O,Q[Rw>rQ}M_Y'\>1@`Ks:,Kef/9R;%Ħ[%F4E^&ِν^{PdZ:mW߽; 	 C+B
d>.s5"Vhޣ۠W;k,*`8)JIdA(9u+1K"9V|ŎާD5gr;j{3>W!m59,Ө&tɗ[)@@
>qtzsRNe>UZ!6X>FPQ`FjϏcSV
[a]lm#:vI3j?~2AuKAf齶g<e<;2?&DJ,2k#]Q>V7>rɮyTmqWL$ږ\+\jsW:M>+\f5 @u[ @H=oOYiV沵uVqB|l]W䶬i5,&ݓkocbcqh;+z37yvFP2xȂ~ɣER^trysѫw*5CvԹoKzz.#RI@jm4^6F}Z_vCP,-G7@-JqT$$hhh=,8|˶ds(<miT6cM'مP](2;܈cQD+tN/ngj
Ozq:wP6
sL T9	nF%ӫcB/u4x&R]f< ~L5k5L<֋F,9TUS[1X??'NG}d?T]	Eq4{Ng} κsd{gldqC
AhEyQ䛵G=j7ku9ns*lۇ:ڲ!:QZa]/( kjKJ<h[xhQx`Wn{
[ao|c0@s/
v1˪PPCq{qC]I{_̣K^X`d(+QҶWKrvRAj^^
'&Y/	>$$.ECn!r9{k/欄o\&-	DmDίԹyUh:"]|mJA4%_&@K	(sm~\u~ڱ>[ltDi)	kq-#908C ,^V)8o9xhu֓tV- 9ScDPb+Qʔ(xJioŸG^oQ9?U[~NX 3-]k	3v+q2ǩw.e˵0c~j'LWe
=ld8ogDg]{k,+z%}QK}uۇ}d{MRZ&^xK+cW`#N]3C/Ww=5=v`:h>Pls2JQwdύ,gȀgӕۣ?CØI)>3TVJBw+%6|50AZD$gUѵ٧P|݉6a<"fZ2&Їy kǘ7.PksyBKs1@ȅ(=x9M":-G3HfÐa*lj@15__ziu7!w zsݡ7Co0w&P;ϓvbU2"Ղ#~؉w]2qױ{NNO	̈́11t@328,D}=cW:;0GI^$Nx*oe vpl«݇E4U.mB_"TQsT52=d)qbrQ&bI[3<6ٖm)sQ6U%x!l)Үr#[4Wc[z-7n>lXދyָ+t0*M|XE3N_.h{/;)L\$sn>Dy[KߟZGAiJ=Yz(Oab}QE <2'޸~Pg,^T`dg2]L
[ueacZ֣@I#]rVuO7nIY.-qHw`
s:ˢzmQd=["ݟ;o^6\/ŷyvXDqZxJ_/q/zQwԋfפ# :ِB=VArQDϓu&/Xrm9,B4ܖ~wϿK?aV\,mDjќkg(+QH9ֽf LY쏊486)56UX>8fZmڴڱqV;PfJy4/!/5(\i@ifؽSWԆD%dP;HUYw-[ҙF~W) 7/-W&ztFsm	pPRAyKAe	հ\ff[žD^:V.CtI<J7^vAWFo<։b*X==-tXTET*nR>g0NR֬Fҩ)GiR2.7chvnㅎ@N=3'&ZZ
\LVɓZ-6rFQPT/?zS/}+p[,9uo˖w)5}ANQ_SrB.%-6n#򐎞R f)gf?	rFz]L7tv<Dݸ?KtԿflJ^h.RƖ;oA_/ 9np=JcIrޞnmY=,Ж,θ{݉t]XH2<4@l?d 6ٚăIo(" ol]t笐3 7DTAZk֒U8CT¨di,-VR^
-9%vRi*˓FzRN+|;ʛ^&̜$KB3u<~*-xW{vMxSWLJ+QT*)MSZSHOUA-QLi@-:/0Iaya0E}_vegJsnvpVҹ$XQfVUu]8A<Lh0O{=@qp@uZFg<-5۔eҹRxirӄ3%, RB)`%4OԻm}('x1lG^Kqg`gA`_؛ i_͑ NzftT`^W]'3۟,c%uv`!`0wĄ¨6BۯA?Ϊܜ!°S݈3=Knd;mArŷ0R3nrˤTMʹ$J{rGu#ʾ!|Bt`o^j|.emaq$2{$rj1\&[-뎾y`A6Iw->6xM-͖&Id򣍘
z7Gǈd;;$tȓoeT}i5'7M`L}>vgD臏e'_Lw΂	v;w()XyIH#'Aym|W$"]:	eFLee׹mD0>,|.֏v\H-!CP>m?以1JsNÆϥ-k8*|3\~\e˶4 3~g
\U n_zY'GA#rSNby8sl8Xexl`&2͢lmYZRKW.HmetN qZ^J'z<p0K6ȝcݲ6bzambns^-JvTOSbEq4`/}"0I+i٦~Z[Ze'7v=Yn.mLxsBNJ Dfj.MӡdkڦN"!M9% b_BToVgWUAI7l|7hݕ ;Ju -Hٰ 
cc,QąTr_hΎm*(Ͷ'QJ;?wfRآr}nK3W8E8f[o#^dK<n%W8Ad0HlAM̆nB9VutSY0i3Tb0uΰIzGhKu0S j0qEe)BrL:ޑ(q4#K[E(k<p6bC1dh=Z(tcȹ'f4+a;Jw1rQĕI)vyȊ"TvQ1
L{H$V?zc<V[Ia-ӍP"i-'׻O}.&ZПRq1^QΤ{n]yA?bÏJHڹd KzNfv2KY/7]<@HsU94UTr	J!^cZ{wt،΀:^I5uѰAZJvUҖQk\`fScf˙z[_p[i4SyjvL< ہߪ~9>ĉڶ$SzG u|/vb}T@d2YI'q?1I7ߍA1(ة|̂To=^0bnhڑ9K꾣ҲeG?1־K,wʕK,U:3ka=(CEi7c[O'>!ݲ[bX1?2X%Zw+{V<fkxL%JԖ@*eo=$&Wu+x+yCO.=9ĒGU$G6튺sja51IMԎ+͖-}&"3`cvJKo8WGn_W]{ٻ"@oCyհO}p\U`XW2Q48$aUs+C{F[@4w135!
Q뵈aTkO7	e	mhl)C7-)1B9@ǖ,ž|0I1?,w)v_@l:M,TL5\jBQ+>"ٜ92r*ث=d)bhh2*Hi2[oI"G]F34^3{G}{KVW@XLДWi4՛vL; apU1c	Ve-o#fO\/mm+ֱߏ/NoAcQϋxx %U+X;mq]CZZX՞c#XDoԯNX9ճM8w6H2E[s%vg\<r/mb@+7m8JRtSQS)De+rw cW,4E@M6.qT(o@d
T&b&U4TtH83OcS+u|uMoZi
};S	u"% 4S_z8A+<&FVU&OPEIhZՒ	N6`/+Z>`VQ+jLaUbnD~vؐ/%C0"f_&Q"H	q<Lq7$:3^Ѥ o|۴XBk~MTl8R@QCEkPRx┺aBҽHBDp#iIkb Ηy|E윣44َI<!P=5q~9ABʁֈFFڔXK ֚i
xY2Sv\P[qP2[V⠤ahMXut|1׼e.)^\Փ~8%([r+`chd5%)~9'/UA_
gmd\eO!	y%mZ	mO!#<??[Қ.^%,3YsrG
}duUT޵&ȸ!̪愶Q?Cbͥ~
͘}i8d>AALֶPCF%{$kO.T`s؋rVeFEHD|4AMKfgJ!rٔ"+s^횱ׅ>VPN_cϾze,ڪ13Z9JzsfE5,ޚH#DzkXi!D96Vkyi!>Tɐ!X4DUΈ]1ڕ- 톄@
*3ޮGFeoariO3?~T:f+&2S_u?2v냉-9GJhrqF`]YzF<h?rR֌nDb-|dauG:l˓jMnU΃8U{)yi
+q}%Sp3%yՌ1mzi~B-=F923r
OrlCv+S%GvCϠU~^\ImhW/u2g^8U
rMBtv
B&ΜT*\V1Axvb$$ߞ/L fX	74*jX _؄@UUni-RP"Fwrg
4)PnCިq 24&a>,͎cF4fS#nV);V
'Z"vbEQ<4!'iHez%>8?Jf*OۖR!Qc5mjvTjUn!Oe~Z,$nI&FE۟-Ôb|V%>Cdզu)J̢XWMOЦnMÛڤ+Xe{=DӨ+48֫a7S`۟jdem}b:U¾L:Wa']t/];ŹԲLwOfgAW[Ta8IM4Tmۅ0WBŷʮP2\C䏛}]l*tzq*HIPnqo:ƦKX|Y4@8^ʷpX;s1 -S%~,ƓӏfGG"Gu+% ߷Ri7b^MUƔ> q?d"/| 7=E@Cm/GyQf|Cd5Jq&s4vG/3Ej_GR*77摝 c@ڤ ,DY}:|rxg;T,'3e La\`'uKۭ`M^l7JRT]׬(pCeW }E#DOl8DA	YTa*7zKz]H}w>cZޠ3 ]Gu%' Zh:	\k:@r~*kn<(eus=	A(&eCcY>(>'|P7)D4HehQ<0WB[sFd*݆6Nf6CF<?mfL:_hvСa7$v@Kcڈ򯭓qs,`͘1IŤ#o\zY7\)BQ3r2Lz? ҕrD
TPvb׺X+[T+v}@(7y0:ڱYpn:p29bo|w8|xD5{fIA!Ǯ@Z;6X[o"D[
i%*dp:_Aa-`ذ0=FPi{Zu	%HffZjakB	4&H@|>2#n1\re$@Tl%7j;dU9dyӓ`E:ij̏gUv-bϥ"ιbsnȖT)bw3;!ܮ[|,ޮ2o՗μ,quj=c~|yB]}[-N0
,ÉB(KVܓ.tozȾrFշ|{[?\_Aς1":¹1ú-8p">TUC,$	g~ku~^1{k`nofj_lu(3zv8,J,Jqsע$bu!2WwΥ[)6_*u3܍|QY[ j
6WbҫHS[8AOb(-bW.cn)%腕bԼ,rGL%ݙ!'WRjtCA1w	Z˟[h{?Gr=J]uwBW+LC´|ڭp1&9JRV>ݬw}'8*p4Gi6/I:ZDRS%|sjjQL`-U%̻-VOP`=F)hN^;hugG'
fJxis6g D/ gЯC*kϒLQ$#sO~w
We>n6QX1kT<lehO4I._[D rQ٥L~gQXբ䏭&{(ybk٤?vԤ26zH|pL"ޛF(Rj~+۞U ج	+z	ZYWqK g`?l1,45v	R[Y]ge-*bP`>Hx9{
W'=6K ɗy*(U蒲M[
Z!%XۉkGDod&K	:[-5(>UU8S1v-x+pV::??U!:z|ȺdDRwv we^N{h.MNSA]VGiu	N`#N2%@kk}k)BVWm~Fr0cPb^[;p[^4IUh}"ֆ 65PeY7<|4rUӶfX'&4ibY0+4B 5ǲ[EyoM#ÆnCޡ*ೂDC[a c̟&:$@Xi",n[՞ΐGc< ot<Ѩ:wfY<rrފrgri<8KUĽuh;wH{g-6HY"XEߝ*N6t?F~@ OC΢7ML7p~S;B[.u<cAP)O).@	L]z%0uJ`)_S~	xYF`Z7i^tw#u1KaqOhJ3_L;PGN
jSw\頞+oխwV,1ܽ5H%.%|3ڨ/3K6Q@#wj1̙9zELT⫑\/ZFG;-UrH|n{]=X]s#!63+o+g[m+U@qKD e[K>lB 1֔
`<7_|֍?\ҺִrX]{5LVw]->a>`/8	y|wY-&w }YWB4,VP!-b5_ɋo=[ҴE](C D]Nuﻉ{hֹ9%eЋrl>uP;EӍΫK,a!a>z//XUu%~Ն}6+VbT ӵ;mx@,7GʒN}7:ndl50cHz:kPn0"fC܆삀Hd!(uJqH$.{m?Q^86o#'N65lhTosS]JJEPJy
@e:@'% z$$4rJ#gM2t"eONz#ݍQ8zqwptfa&m{xxՏNonzQLq/N"{aIbp!zȳ/>$dpli(ӷ}Hh@Kfo0_W#/jR(-vៈ{ѯDq	R*FTyeuW&<% ҷ8|f#bڒ3{uIG,vԥ2uOt
TQf3ˠ*W%k}!c\$T(c<FڔMT.5$jVI/O:mj ZY  ɷ4a[zJE{ֻMa8={ܤ	 #i'tiL@J\1It5wh*w$"3L5/r;Ig/2<6FaiKuNov:]=QAPgC(AYv8UϱMǴXz/G74P,@cw
~=+^]G$,WTOpbU4TLZr|)%unWKyyg"E4uzGd&KlőYnDۊ,ώD~dr6[G!&I(C24&kЧ'I
$|2=~jIrPIr'gÍPY~>K19c
KHe?Ug--B&(#c<0UAHL
bhڲR+Mt5N>[X
ɠE-mc^!qCi}EޢtU5pG?`mfcY5wYʞve-u1pj~\@L4tKR@F<c2/ԩyRnФ(4ժ1OrS`u밆C%~!ȅf[<d4Ai_Gc|EU6UM=Ȣzek9oԺaa[/tFtϫwd[i]UȹsɂLcR(<(XTJ\MNK/1.Y_wʿD2CbqTg5 }stumϷ	1U*7yti^ۈZ	mA!aXa&4M~!A+!1aGnݞ0439lNբVPnIm=I+_`&N7Gmp6%u@:%D8 t$- ɄP/ͷņ%y3an$ha`oYa]l_oz3[Wm3uzt2JhL{S%5	02ˏ_IlǮYtll<Igg$n;F7%--{2acRfHݒฏ#hEzVIeUp1KGQnOj3]64dxI'QJ@:A"Yz7B{5mc-\ctQ
 `|EJ	|fIMgVM5e6gjw1nձIB[JirL`r\`l$c	s-[)틇|6E8 q!
::fx`k B@@&koMhg3buI1!2hHow+?IyG4vc^Z`hJy
 ȈGK"s(D*SpwkE{>@*=j"XUz%|!VvA# M&E)}SVo";|mgKhVWvBPR*OWqlV׃;O0?%r޾ֺIƽ5}[%Idl 3}}32O8<]Em]F	dI \q/2刕2T^I{*Γ(]HVwR6a2lka.;J;Tn1d+J {5`
z	x \7RZNXOR	)"q1H)V2\*P-9);lH}1U*.AN|ۤ#X=T]pmX䋔)Kd2a'p *<͏0;fEes//Ox"'J1A&VG`z;Ԑ&dGn^epD;W4^@; :KKfBv0-3`7+n'6CAjnl!jaZfa0-ۓZ6 WBq =SU)"ux½}vq1t
Ws' #Lyx_Z3/bz	ty]^wNRMuFՀ[ȏ
pfٲX\e a4j[Ch9'C!nzT:Iozr9kVJ:_={-8q KVC"o܊񃹃}!4B)ޅ>F)Lĵhpl$578C|}\d>=+V\9ajt%QkS#dŸaP\4DC8>þ_<w8r\]|3Kv@kicgh:g`zoz@S d4W%̛(PoĹB|砿<GG5T03yylYfmvG#R{P~*a䛌z>%ϋ8z>ҦdϖUw|h{\e<GJ&֣p4nT_riH!.~.;wYд̟Rzo{**N/{1=̽k5(1	EM۩_MgӁ-(=ˊ|5J>' sH(L7,H UuPIff}S%uoJAy/LD[Ž{K}qr[w'+hkZ҇,G0d7W2No(&\~?pR}cq]dmQ٣?*:ja;oi7^-C9Х{m]cxB ؘg1	~FL3v4ǦF~㐠y컆Q(eT@2(y7N"ǣ1BBS8\<7v7mF⑦A:7_$$B$U_l6 jLzwoQ2!b0l_K~#0U}W
ZwiZow3Ҙ5PR? ":zq:Lם~4{]0#0	whEӫYGDUҀBe7ijFގCqRhB6 }!
i4-˿EOAg|McpsLw4]L//KQ-_("#iAjPD74 ;K(LFn⨼W|QΎR~6J}źv$F!*~hZ		=YҴèFUhG/JI<f9JF[R2+<T4g8+ 1zâ*8=	M:M.;~	QsgLx(̉:^t|H0
DGr(`,b>7~U+1ZߗE7qĀ\ׯOߑÔk:dn4]Qc{;-W.C~V4էU ;&rqd6Cש$ax t	<;2AؽN㎌]?|ђ6Ӌ'ٲvѬc:aSA\nm6.[+y>_+71lFXgC5MYo&
U>wwknG3vyzkh[S'&DmH]>JⒸQgaDwYdf"H 	 9y/&8I&	`h;>!Hvܡjplu3d(3!x:T{vg% !V?sݒ3z\M^Ucۭ8tFOeD+omGw-NU^Cx7PƑ}7~ڇ+{ݦÖ<3Q|4$Z"Q$S7m@?.uپݠEkB-gڿ/i%fۻ^ENX{tHfՌ[lPQ=ԣ8H_/
'Ǔc=r>g`۫Qh`좞;~ZtԽqyU9W}|-՚ywpܢ<W?gC*فrZ"~Olm;y֮Nρc|D|ĳy2sC+fI`t>C^}@s`ctWzNfꪖ'/FM5(9$P=PYXLå,JDBV (5	rmyE㹘1pag851fgװPfK)[GjֵHKQ5Ƹa#DM4u,<ɞt+s1_Ao0X>m']nFVlNĥ3G6OiJ bTgjTY:>f6G1M-=,{D"<{=2qޭ++WsDM@@\@A$\n+vwVf,?Ԃa8J|oiDj,@9:b'm:$ykb#ޮLSl+4JN)31ƽV* eL3}5%%CjwFͬ2ͣ)O ۴ktpuvoH~P6V8.I>ջ쐁ݯ~H3	<&4kIfg|jYWzfd\ij]%zYRD0SMq鞼0Wp(myg ZuD:IOܩ a3ߟ ̳U9pgd΋fK;#P3chme^ݙ(ZM5X(WN$a)!ǥe{(U]8s[hpJj^qNLl2O%u5(װ=-/w֏~!h8PHz9J`o>+庆$?	K|-o<hGWMzzZ5GǥTW	T)	߯1АjHZ/$@eG}vg	#j0d:+%mqW/4Anpp?wٽH芦It"e{3]e9mO={3R&(-PܣLj+y'-Mp[i4v7aw|ǎZC\O3w72N!s+dg|1A6XZ)acTG>3ZjUrSbQgq[9"_Ϧ8
WUl0\8^I=sd%AJ ov%Mרu/C]½%SU
&#8Vx3Ud!'w<*UDK䁽o=_lxA}E7`29
5c9ɱ2JI=/m7i=W |K_*XlcGBs-6~w
B#?.pyCLw vd\s?6_3V<'7%D
ѕJ׷ f} %AO۾mnvL)b| r|Bء*GW'4bugkubx٤E{
[w}C${`XiCK:-0]6#k'uio
Ԁ,	м}Ì;2¡V5qsrJ^]K&sOj7ASϗj1yRLV[Js	1궑HYLҔt׮,i.lqpLh*V-2=-tJE;(>$AC&u?фbu	Cc @<{teW # 'B̩U]9|Z/ZS|N<>y9S]leHZ[4Oye$`&rqƃ۹+0X҂/<<S~He.]u$rN0A '@UW2iCD\K^N-#hZ.Oz<a"8J6zU{^- É5 ?о=Lӏ7V= ͉{G+e qrcPj%C2ݪ4hQAXi3.
D3zen9(HcAt6fzT$y"h4`fjȡ/,ЎIZ}_<y;|c	5gN$E%t}>W HwH>nq"PlMGղ˧Q!Zi_(C$YsjeM)wRTU-( PXg<Ƿdn|{wѴ=Ƴ5oƯŦ}G{e[}JظR@O-%C_ Q2(ESKWSMs9Ԏk6B'ݷJî;zl%<rVfXyX?6T	IX-'+M7I8əg(pw.@+/%{7ZRo!Hls1?ℊ$П$D:KqBE`SP<U{Dr	A.}v_lw4mUHѐEj0Ê
k7l<@O@AO?i"N?~i5&)ěʧtG~e8~!lC:Q$lhalx6`xuwf2F+64/xx4ǧ|K#svIˣQp8<58ˀ R@ Dc!M(/m=?_5`A*JE&[fyJuūl/īvF|Xo}<;dIUXuIS#o;~$f.GAbOmkY86k>yE84 hT$DAϱk+(lTJ%bԫq+@r^Ŭscaƛ-D&		Ԧ?\v<h^1	xgue1Ä=gbEcQ3LHǈ7>SVw5L)ys{Sy>ḇzrsԙ-}:s@3@%gUTx/w0RG
a\
v#"B\WmKtquLSCUAaf*^Zwy*
)̆&~myG:,ӧUWy
E ro2&+{mߚkiaOhKp^Vr_GեI$׏{88-oZ&'sgqƪ.EWyM#0?#oKϩrw[|c(
5L!lLhB(5x;CX>tWS\A:2+M	 )n̠]!>j$ϰ`U`JfqLkeo2VI<FS8΢m993#{`|p1ɑwdSu;uM8<	.5l1':7wyR&d.g{o	k.O␯ v'z<LI'i!O[[?Y֎xМ^rX<9LE>]_vJ!GrTr]j-BDYh6zq9!Qh/Z2ݱgّ}[򇇏ag
OuoupWyc[uVΣ+-1utc`sbaוּիz8{Y/Ko>a]Ż(jκ8s3Q[dF7aQ@MN 69c|1I*c"VO3,fgSTi"3#nOkC3jxw`2Y-j?T,ABBI34d8ZwF:KsLEmZsH/"dX@*} lStg!FʾiHz{0y/eS(_$^ OUT0{!ln'v.o©QV1l&*L)P(R><5zr赎*`]og51\,76"3s_73)p-IF/ *$;|9Uٛd;rp$ʅ&WfLwi<򂦓G8\_'l1>' 19&F>7|#^u|7@r|Ud>.nk(.F5@6j[M׃dt*St%yoTC/>>_'>|C!礆<ۏ^yZW^-~V2gݥkb6*<k$*Ȳ0@/|f&H\ҤIMysɈ_ηKʵf'Rիo>+
fMGC|e̖ꘁM2l}b~;xCE{u\:>q
2s$Zf4*".it*j}D3MN4Xf\2Ϸ|pR>X5t:髺fKC\{p{>9$a`uG&CWO:KYCʞ.2KLp*U)@=	wz|kOa:G*|!J9 !;1[a\XecoA MjF¾[IrՉj	ة3pe&XTAzUb7cv1;d4NXUОO)4z~U[A|ƦI7Y[{K4]:c/B#uQ4N̞L	ą_&?/* 7d`zjfduʆ	*:k.JTR6Jd]8$VALA)pmAQ+3JmZ𒛚uf삤gA:Ӓeq<t#Uf$?3Z]q\Ƞ98tGq)Z[5$t)>pƗkrocFea{ی	Hj\8_&&=xS^%iҩ	ѓ^ЯwآiFPu$H=$PQZߜե}h1J.Kch,3E94~h8X Td-#[b)HM?'/?}WExjy4,{7$|B\k+p&x񟹙,b?lJ2}azQOCs4FK˙N'avQ0`w?%R7\(i@܉vxW*RHב1΅3(栕=`eOV9a2Y$K n iAC!xިmWHsR,RbyID߽L}r˧ZDeh:M
)f7^W4	Vxu@uxv*F[UbgM{Fg.̰cGO_]S`,Y%\q2FsN[0F1Ch:u
c7uЅ|0急^H!
?;U@VSB)A1Z_>ŦeO2ņ>IHȂl9w`ޔ,}DQfMwhꉶښfUo5,1.^AZ.M쏇;$꺣F\O=vL:Ҿ"CI+NOZ8aclAa,G@[B2Xh䊜)]mht]x:61@Ҥ!d0hDv,86&T$Sad+`$ 1<Zc/<&Mkdiw%	2U\4s4F1톓đ:_=bD*M~V!H I8"(Gh)by!=\[5aɅ68p]#VX<i8e.M++_rޔyZs3OŁZVyx[7Ul}or8-0Vhd4nZxZCl8[9m'zgՀȅ  0S=Ґd(([-JPQi|}W)񎊣 =\/q?q{}wT(igXP\mḎP6hy0
j&KM&+Y(Z\xa4Y8<}67̋ǮAz~Yċ8FW18A$ 6~(1?b}x|Lbّ@hv;[(7We1F|H+M	t/ 5룁[EQq>o4]38:(͈Wx7ŵbG(g+	6]?sE3O$$Ak  %G^mSqnmEЅ\; 
8!`=Pa.=HH%Qs *>RN#ͦ7"cEP4ugk/Ye06
YXg׹WqlJX4//~QI,i% phzK5IQh QYJd]e4,/gS8n@hD'7 v4Zf.7 DzVL>c/_#3UZO2uC% 
Ӏ`V5Fzg$#6wGtw/׻.^#);m(Zl͌ФGI[V-]<hYי)C("U\ kI(CR=>x+k_P5h#Zai$k>w:{Be7S?CJ+gU	A2rtQD(n6v\=Kנcaq$o1JʇGVfGj"h4߽UT4zxp8;o6g0T9gKW%]'G&1ExsҎk:T$ mJYC<Tm9-4LY%e7;Ρ[tY<&z>q>^4-5LG[Ef#1-NGFmgtvfmh2}(Ϧno]y@*ICf43jpDr"(DKmx
@PR"c;NPɏA	#»%:<CQ?}yb{8ɞk 75:48Tj7vlo_0}J^hpnG8Wlk%+A$& WD"B!!c t
!0fR'R8!Ϗ'Lg|,?:SvDHAҺtD7DH|@8ܮ-;n)G}b0֧x.^'=8	b? 
}7_ kZ1-X/3NeY6:'NAvkCyXT+Yӕ}#fHzk'd Nnr+W?BLQ#^MֹڅM\H!7*4TNNYEѶOu4/vX׸d2MYC8GnX.N AW֣PuޮqߘU*YkZy1(wvWt\LdSCQ*(A(š3ښr~W	 S#<G8*Ke轔[]AZ=K9h"RfJ QY'Mmf/raM $>(Ԇ?<7ܔ$." 	CZ}iӿAK7k_]nb),Ч4Q0uG|xrLsjEބGvb8"4[=cUG,#y}t5ĉt'8Gw/KP+C8(~"4]{_Cd`ߓ_E97&c縔Ts:\<[-A8rX00	*Uz/K@k=m.$~]Y$DWޮ9WPOhn!H5ha9p-\8\JµH"Vs/R>Vv*w;ϓv4J7y,@_h>r'Xʕ5Z6aw#;+OXK+p
)nFj.xSl{bԲy!Wk⫀On=yxVu|NJ.RwѤ
7|NjNnL"Fh8"6ڑ8mϬaGѤAj7')gE,
c5RAnIp-3U}sey}jĂaz$h@i`8O8N0^J%&?Ȭ'ldj1SO^;N;]11Y٫-*V؛`r*g#xWRvn>0UJ^jil]"Se}{i:X=ҖPJ /V?dt[E*Np QJḇ2ĉk͌hr?2qu~&P# WrɳRS?]g[iD`]:i͊b-8â:KOؔ'<Z,?-I&qtUQ#s@5MZ
zJ5ߛV5F't{OpM~H`n,]76YdIXUnqQx$DXޢvUQѮ>!42f/#8/"WڭJ6_xLynһ QCgE>j?]t7i2#
`
~Fw~#m+~z#硲<3U*s.V|z-Z*id=x=CMȏw\]i3Z6;4nӈVmL.)Z]H#xw"V1+MҺCH4G<Av8S#R巬^\	PNbY@K05^%UGy8dI(!$	@gd
1m88n}'1oLUu)#!cb7t/2="6(ծ{sJ
{JCI_O4NjQ5[hZ:X,GNJ87%|C/8cB1 Ss
}MT@P#+Y~{Q"ήV/FMY	lר͠XQۀBIAda,(;vFr݅1n!?jt^:;`C}7?Ӥ3zDj ;)N:KKPnx@Jpfz)/A.fQMu~8PH^kRhq<MzY00%/Psl`#qEFK?a$T
mG9Zvdο\Hd-72\*d-7sOQi#?ݷʊݑh3ibaqe9uj@-fp<5SE/ԀX=\n-G]0V.|9
9Ex cI6;^WHx,ӾB%'y#'8H/H]ڴEm[W{7<{h,B&W{|/+@/:|GЦ 7SD[zHh4:u_Wu(R@.ຳ``謡x!΂mL6.kHG$҆4L[R#Y2McwΰXC_k~!>>3ճI	c*Qzh%T*z)ֺw>
h۩'`m(sI	)n^6ljQCNdǗ)<%KtA> }..DC4Ꭺl2{Ie@C!-]gv4k:OvmPVv
V.ƋYO?&rC/M? F);X0ֆ$J&,r_#mpɀp9@I@//p*_{RSWAB'Iǯd`}N(D6]Ili\"S&mr U&bgH^Sj0f@l
tݔg8ҟ~O)k8GI:OܿprH^{@-CGBmFA_ׄ׋< l,zEy't`gC񆮈yIƛAOW?.yxשE}|PWCCl)-M_@$|JVdTGס7^Ú6&iԛĜ!_c]X~$b/c@1t)Nmrw|+_ǢI0Tx4ACw$1v4trqO?
%/Y/ֺvJm1@{4{I:\wd2&iIj0'@x᠇KN8W@P6A8P0gƅ p&WZ.ەs(7:kK.zo1e1Y{@l8rT$fm^Wk:(ho0Y@MQ%6S\X4"M&$b<Ny0+"^ju U:>[y %KuMn@aDx`>?h258l
waZi?'`=0=ZiMλfs(Q@i%%8`Z& q֊ |Fw\p"d'L+W<#lY`CE4",.hl> \1*0)	ݐPO^%ǅࢥQU>x=[z$in mV}LN3{;07zC3cEbXSJXʫmqD̶/H /ݭQ'nyrAZZKFL1@XSdY>F4&!eSfO>+P1yݮM-ɗG0jRq9YՇ9m]վaAkE2<NB}ZT$~#h<X0	
üP-JBu(4F6Nnr9' .5Nf^#L_9ٶ ,`5[Mn|~jeB= .+5I z"i
Ȅ'VRepKGn?;	BԀjj4ZM-aY0# N*J9kl(л?yiP*{ci|> ?f-ЮE:¢>3 xCi2"OʦR<tMͳbYtbV/M870`
B*m	泅Bmm#\	'f=FG3eV@&M _VoR~ʹvAdBh]<n%b,̯00ܢtL~pú1KQM8BSnȗ.ӱM:8b y
rd⻯_w77f~=PGƮ*j$A¬z5iԦ&@Bdo!;Y@ u]vASYR@85:
WNmKtQPi*i4`?-)ڭNR{NcXq+\ }	(1X8oNer#uMjҦU>lw#1V6%]U\
,>;,[Z^7^Oӻw6c9Syޗc'P- ,42%)ʓAQU(9KT!U <|Y(Bbux~?xGTpGB_zU?i4VAs/'3*
[VVIBPo"搏&>[ζ#pGƦe<mx)9|d~9hnկh֥_j;Ab8%TZP(AP]EX!tu۶"~_Iz!;yp=EY*3lӊP	xѡkS%"dIZ8y{,:
ᵼ))GVc} :3JSQ]HIXx.$^t+eMY(sZ?|ꖑ`L&XkyuΜuΚi%<mΗae:sfI舚TݐɛJ݋pz{ rn["G.	bVJ'f3~I`35^Ն,lPdv -e/`ek(۟e໊4V=CLޢ[[-^#VzI	Jz]˖}1Sh{p9O)C75m%h	vxĳx<;!!lnBx'a_39} p؁̓W#=3a]+]\x_,;%f]8I{AOlȪ%:4MAu3q].ZTJ9^{>4Lx&Cj(/k[L$OnE4W	:tqhi40hiA;xA}NeCKG\w*d0Ip0GJLەrT97`B9q7@N(8!FyE|.ӮHZo,dbDNT[.h<XLwgw95Hxfܐ&YgPES<LB	uc0A]" bX;/>WHycJ1OibKū7&[\"8wjfK0p.}z0}_*;%e+;/ZQ?' &+$;N\~ƁFQɞW=Ј`!2^uh{nVp\]UCHyp w}*RI)izJ~"HO:;<	zd?m"ܲi=3E}4?տ!N%c{(w뎆{3}}41NAbxe2'k0##WP2 ((
AI<Mf))g=2@>Z&X#-KJ&G|:Zôe.W8'v?Fl3vdXH[sdŖy닍^MmΉaǰ%I1z@@+@ u6,n5ŢQUT,~_m!vnzrVZ('v>ZF#chtVI>m)TsAkg:[UUba{]zۑb l7!v'8bm2X)03&Ch">w(%>FeTSO<b3kHX)6)Aj={Jd,ԑq_m6~1wSf:fg_v}'4[pag g;Ou(D5)9rn0qv9IhC
'W;u:/؎ZwsHި5C$JG'#~aѳ?Y%`EcئPhDNWsQujys'Χ.K`FOBlp,`SYQMC"y_fhR,PW 8|nlUa+|#c)@=V:WQ$߂iAf~ǠPe1k@J3?a']w|Q|PXT[w*[&W4M4B$3hbM0"$(♸<v*,*ܙCBDX@f~0lE~:Sy"6y8DFV1oHV(m0=7)
 _Mhe;.u*]bϻ7r5i}f&%vwNKg1x@=]\HH>5 "5v>-MA
'FE;u	) /浝"ռ6`;8x/*"k?K`R|g.qdBg9Uc$aJ~0`BC);dQ9ȍ$;㵉/͕<yFѐpWQ۸JVQi㾭ʮJOZ\TYtPm/QR>+_w1G}__|d6U|߉z,^Y,M<SH2Ena_ft@mZFN=OuՀd*P8=e7
@y3n4\n Yu{mzMoXЦj`sbh8b<دt3:sd0M%.^T*E_Y	^YQ%#|VVOޤ@Mް\3u<u1aiﰰN۹^δz
c\S_*:t/X؋~|7Cf<͑ٻ{dX؜<keslS_z50ymBBT.=/45;fN^ٳUs]A|*ID.xPkwoXUZ:sQoZƼkͷWC5Z?-ѠzaU^rQL>HUG_}Udkv.:ЉX5;L<5T>mW
&'uVR{򺙄xXl#]ɋ$W	 4 B?nп׋q&0yo3Qv	W[Wp]'+qH?%Q	;S
9؃QCi4FW8a5x<h_qr=IFYп,ȄbTVXd-$ݛ7{o}"NG1ÞaQ4BG(Rv]e]T{96{dJ=j|8MM:1OE4*cAqTĿPi삍L\톛" VXǋo%YdbvLhBKY}ҞZfey4JPO-|txBc6OhăEAvHG!"eSOV /]Uh^_8pQpN
-uaWa#I^ٯz@/}!S03O9\y>^wL7!)+?4Ǐp5k' 
beULI=o*m`[l]3}O4B!1d,-7L;91nЙA"W='lYfM+NG]p9QŽ[ "t1ڱN ɾ7➋|'<ۼך$5ȅw>kn7ef3)+VC YOպ5i8'ђdk!KհhDk3z(c1qP%K/sRs`Lrqc7p-MIvт%nlH|-KPЖ1p<鄽eM릈-'cLf=$CmK/=+<+`W6*79̋'HLk4/a zP@5qr\PUUqx䎁5J,t9Kmx=Ce
hU0wRi* k	uUol9?E C>KSuN<{:ئN̅"]jzIe; b!o_OzG	*A(}P(^I	* %;	»%Z+8bҪ%tUOE(Oq}ELkq C,(H[jLnWX>d8>/ESh/6AwQfgRBo4Rjh㒅P
-:
uVOr>:}`}
<7V*/&w"d5Ͽh
!☒l~OF^wziRC`/lcM(wܧI*$YM~y-_A %\9<D=%$wu?]
kEe	,R5lj3)*,s"u&Bd*ǹbᡫBڒ=K״nf>4T%p"Kmp&>P3R@_a`*bc:#.fOj],f {9@p6-!mⶡ"7"
gO]gLVP
JObS$o@Vr㘧qZNT g\EnR1
0%Ѭ#ԑtei1F%Wo65F&d Nl6	b̰@ jcfA8Rhr'ɖJƁ:]8ۨ{ӷ:[B_@^Pq8珁	?GԄcL㌣~""hx'{w'[!?K&..wO\?]m
ām>z7fg]0idƽ17krv6-/a))j5Z14M4:YFDӜk*(MD-xdR&- 쳲!k\Z<cR75WM\R]J	JdR~ʳ=-oe<q4ݎP𠘜ڙ*Uc9v5 r['`#hi?)xLgYi<v6Ĕ\+ޑS!25gA@G	9W4D3ړ)∓aZ9&G7qr j?Pf3[0[`W1a82{35ẍ	#8FP0wDb׋e{L3 L2vU.뮊C0*41|1N P!Tr;"&Psֱ`YfO99X;q0ڥϘDRɐh|O,ONʅ:[]  9&x֪Y'SXI_5{ll,ZUOZ"pX4dYDpǫr
JNIXGj{&l>9Չǽ0]̰EژL2 3RO%&݌~&K[^>#x3m3|8tg/<mYK?Ŧ1l0ӌSrO<T8ӫOHɜ;!vhHWzT r3f?Zܤ$5{7:&WYT.}$Lp9i>4dZgܠ֫9<wy5Ǚ&qOguL7cUs7AdVurqoV{qdrE}rz-ƃ_<pG9@"	?hPj:Mk?iqi>Jnb}l DGoK!l&j|6a:oCY|*FḢO('/L~.Ytͷ4%J	{OcDԦ);|tFtcggc'MU~	L W./0aLVq}|5oT MvǊDeU]VRBv#jJL"pU6BȊJ5l0_6«,e,f `\JYgp2_k٭:b"Lbh~ë$/+(`,2z48Ε?	z@	z,X"jAϱ:/#|!qp
~i(0Z94 2rf?mtZ#<?xc`_;jT|CNU!SΉ-0UB%^?eV'aUȄW	m-w])&AmK	L𩌌
BXɎ3'@eC^MM#P׷_5+Bܠr̛]aUo6Q	[^e5hS6`,b)548xY/kֲ^: wիm$:saP4}8݇`j(emkahTrϻ3IUl,%M>ԄغS-ahylg'Zad}p=Hfsx%h73Tscf޽PBarCdep<_gKTѼR8\;'U]9C?5j^q_g2ϙKD[!,D<m|jʪȰpTX)VȬҊhcm>N!zN0vE m2 Y!!@55T+/p0컊H
% 5@jg\>!vbow$)6A_؏lkΧ|$ikfA$26(UI1z(mxI݉8R8.#q0:X1TW<޻5$s#dpH,P4ir|bMI~$:[xoxv8Qf;d>k !HdI75UPzgeVvwf
*+u|/ˠ$qjC
}jV ,&8|V' '$:8%*(r+Ph9ϰC]uSjlΒawY Jі3J0q<JS6ɏ&̇d/	 98i;=gST6|N,D$o)nQ>/MZZk0(5`0xqtUJW4<gZa۳#"9a g3<oa@`;ly\7-/Nr=\7[$jwQӲؿkֻ"54T@~͉O?'2͞6;kYys4[_c
?I<\&,-L9F}^7
Ȋj4Mp"48;3G< dcJ+sY
abol
=Nzt`U"d/F-ˮTr}Js9ʪ߄2[;"iť؀'	UGGf;/v3~YHЬjz9׫М[UG۽jߡ⒑ כ[
G"Pk	GYhv=]#&=-PE14[7:3 v?W8Ei6V/ٓ~#;`O~JiH|5>]z3~(]ET+O`}W5USۛL5UpCSOqM}/C}u:*ŗ 3zOdh;3	=."kjknt.sYАNnvGͽ;	kX$'4~PVi. /w!wry uئ{g~rM\h*p}
Sfk<
BFa>ѡQ6jڼn5
p6KW_Y|vC:P8`{'jOy[)̃,<1O?d_C߯ݱܰ)D/0h44?l__eѪ] ^~4c^w t ٞ'oeg$Ez &1^lzAt0W攂6)6Ŗ7V$\ɑ$ƢKQ< ^;mŌ<yH-</KᎾ'̥c(2z0#r]?D[( NOrP `0N<qt|awdW .l@fD(¡"mM2kF2* #}q4n8Y/lJWn,N|{2s5}K2bk8Oq	h{3	֥ȥn!Ա4hmڕ|Sf8U7Its+cOr~*AV<9Z<z)@.޲Ar ܸutR/_tqRy A}v_Eٌ(ZJHD2@GZ7E_21`$-O''V`Z{֤tQxWW 4uOhNy&̄iM4xXo$q[L*ϱ\e E+E&PJ{wV*GJh@@a=W޷;+/%	  gm*Br^!Be<qUc1kXAV7]{v*QZ+]XZg{=8tb䯫S!GehC+5X!O)_Ixg/۽C[AM~<6NI;o[Fhar	|wK05ѽM3IUU1*ep]e?	#)i4GV#Cϐ0G̗W#_$M<Ʃ6:7%{<m5|T-hH8yTkO^exLS-j\]3-z^3f9Z	'&@(D.fq=SKO~}L#$?`̣'&ŨO?ӘW/1yS}lmouhӻl
"d<'{xoA&

Oƨ7t #i쵮[`},upP12.z8 (`z_'өY{Dm1$}ig7^hYlmFWn>#pRgv" z}CKSpS{jq+v٦eq>Q b咨op'x5N8ʸCީ>^2o$dRYWt mR5E 
z
|T68%p Tthᐯ[.5 沷,\mm#?8C2T-יa̪eUJCnQ|UPȦ%*>2:^ha$77e~Ev4~XFĴu%/Z1BՀnù`e{*;d|'Պ{TReIrWY CSヹ2cK(`ڶ;T;'?4S&{BC]	b3Q:VOD 6[@HԷ"l)]խWh}K5hAU9bZjP]*fP3'S_R,9WSQ;$?SY*\5qPB3ۀمGSiK4Wvu0EIE	8٠Mm 1m8̦6OT f6qhNMlWq܃
)YW8)_0q[O'e芞ޟHy\x&'waۮ) T
&JbxA4{#$p~Fp~!ugx[Qs~c-/}̓.&}AaWkZfj=3 gfu#!= 6ZF&xXI"}\u'^.8Har\\E`rbE#.;R̷q.Bq4natz<NcfBe*3!g	9fB+11ߥ)AW)蚲 8Y蟫m <$J`6$6WI;"@g}cqy [ΨC}) XFQx,BkOG0bM{p(,?#&#pTC-_4&͸DG<d4܌izǱe3@sG[ŅP.oJ{KқE)S2iC?&IlΓh<$#Y.} 33iXB nǂZZT:C)e cSj?$vfڟJ7R!;1,[$lz_dUd;ڏs a'y2d 0@whh BؿMq4/-hS܋:Si/3pCN)0#8eÍh[R4CUVkz<}+bz\c3!/-MNFaBiVzDOZamp5k s@n!jL3"VWK`*cэ<դ^A& 4Y|Fc	LVIM ih$X$E4̓ qj1N:J-m?#}KbbrBjxЄjǼN5X:yc	?&!F۹H8o[c|.(DН 	M&}Tja4(|ţ̈́en/}OvE`c	ܫ))oWC0GnHESIYDAW?E/6-8	!<-*CLVyRXm@%)Cr<[tUnUQYW	Z ʺ~Y|zD"#g`) <Q~S4f^wtT
;.0ltAiףRm2EN
S6mJ-׈G^wF.<Qڪmkr-*.'#	^|cuآQH"E},H&W|+q]C(}t4oa]RL8a5Q,}SUx7bMwZ	(-^6/9[d;6DMz+rDY=&DgH{v/!C?,"Wa3:hd`8E<Uu S}Fz
A+	ioUMbZ^wõuRzdr3#2S,FKc@YfIjy?(.Ll8ʲ;[Rj>G<HU$塤BnIJn{Efo
YY&fH|usf7{^J4--jؗ3sɕ~Bqny?GN\6"?X8kڛ>LcE F'6k
pՆ2~J<1BGLXzī*AWI<<B&f],n2{U\Wu&lK|J"KRw~oеGy8CS~yz}L:A:YWa`UTuKXY=ZS#2[>TJL;Էnc}0Xi	/b)olaWEUbI\ENl0d6{cųY2;ZO:v&' NzI<,[<zp3k\'h1RO`<ws$~!vlO/ܮJ2aW3gVmlPl.=X޲*Ŗ},gfI6 Z|̨*KmNq|fB z&\!nu\$ɂ/5*ψ@fޢdanS 1z-mۦF-L+,_<0sh!ʹMO>o	}zɅ@̙2$-5ylzUd S,Vbԯv{z]$sV$(\ꨊ:gP5o)tCTf>bX	%**DFvP(_ڽIn?Qн18-Mamxm-ゑ?= vI49ē;ֶM_0eI)}?ob7V!jdY5c'_ah^lM}[ޫ #~.p~fCYg#LZ\ mjTs"ïOPh8HtZ+SG<JveC+W;OL`wL?eNFp9FxS.)
7 ]_y2> ̣9d|Ք)l+V/8'a^($'٧/ZxK$ၓ1=Tcy?`SO;ѫUpE|;oɬ>,3	Z5jzj-~wH8BtWfMqcf",Di7U,%;BBX䅬5 7n͑`NBlDncIo4|I d>Bk
oAǩ܈(7sW]gU%Z=۪'T2y-bm툦؁+1ClQh3P?u0gW%ϷKݿ=q4qKP6xHrFMC2_F=<"paA<u
3) ԗB']3q磌dypT:TroV;ߠ:ʺC?QWX9&V"l G!Jd< 3CLI#{)nF]VP@7M!AΤ̩p}N&ipH ,z_}RfŦǝ\Xܯ_\TB"3i`E5PՃ~U6rP /pٖ-&<m䙶W8mdG: &;$I	˨@mlgkK4ɉ='6o/;@	m89)%WJ:AUh"×8/߬]h8dtZqnyA|ħ3Lnp<.<eu@R&u2DhZ);oSy(6ƚ<d`LZs4:`+12wNc`k='O&OIhO!GY3~j3wHCn\\c(p.ƍ{si'C~%!{#/ +a\<S	,?ebMk$OnYyᨵ=(Zc`T=2d;m=4}lڮ[Pg+wJmXiFx5_^}WUX	z[,C	Bc<	GƨØ2+o$ǀ#WI8#F 7((1!0؟_x:$>F2AI&J 3$ibi$eb/z0NFn*iKe1xǠGhͦ8{Ua-qq=EC^wk20N&3`O:rFC1vŇ%hO#ɳrEɒ>#3Iyu"
wQ`%ïi48p6gm*Jl/+|Qc_Vv϶[FD`4%(GE.i!ZVq`g,AB'7fe,;DZp`eG:{-w<E\|u֐Ͽ\PB(\|9(\ .%
?STxdΝq!MylK+?[Z0H'fqB<`GdQ,ov7>L}s.7Q*n4$nCBd K0iLRGghٰMfGYPW(Cfn6<"^NMmYvw$q1QPH]|9K)5(Tv-Kz(%L7;~}(GfV'W8o	1%WlppwYC]Fy8a}dћ/5Ѹlg7쫚!$F<|T5d.hː"(g~A=Qi:zs;OvvWuvd%0OFOяb\ G|,2ޡiL
]Wgd gZHђP["	9G6Ɔ+:"P~#
t^f
_R6c MGRť&~A]036MwqVSNRM$GFEZl5Śd.,[}To:SS^C+XoFO~,!sjZ@>>}h2ahS0XIs_ ez"NzfkaJneN4
-g`;E.|iHmrք}G^2دm^^^4C'MVU/I/hIVnS&+[Ē,+ƼbDG#dToAX7bЀmEcȤlQô67_
y^Zހehww&[4Vle7ːvT{mVSeeE-Yr#BTHaDsGݚ%M6;JK6D2L<+h|@,c&0`*1؞ai38KB=4Lou3jds0nbhW|Ϝsocբ-xRC3์sd4,f&&Hb$#1*u+h^Th`a_~|-;
ٻ[/g 8p()"?pSdSU4 d6մ_%74++a_/}?|?[~	\5ҟ 	:DM T ^ C H	@xB  &~! h"7@/ xD !O77~wUTzW[pz&F7^8kw8,G=]j$;XbNCe!u˯?ڈO;!.{^ul!wUw@>jIV^M|nҋ\苬h>zd:WQS:L0:Ym>膕Ond:3c^f)<4ӈK	ĥlhˠ˷=T|Eե
%`#ÜmJݽ҇`*+@JPt7![Bmj	Цby
şCn%y.Q߉q9 OFAĽ@bHreBQ󘑹lKFmɈ{U?qF]6|a|ͱ]^֢Fw񸏳pmL.n2]O2iݿ6<!6'⼀j=
Y)۶:vhi NRD<bR@r
<~6uX#̣eWU~!>i/0odY׻ZBUOY}'ALxf=N>5;Eۃ	~!/bkΊ^YHq@O,F׋;U=t
won0eV43BϞ S{:ٻ?y oKG閸e17#C2+/>VGeyuAMN<O$tBqY9SsblNv-ѶN
%y2bmDQ~РhMv*D7h4iip'q '{]},ݛ-82$z",6A4IqH?F(	"
KNY5,؆0w	ES6>D"	XnW9FE/_)>|
MhMD~߱MCk򻟿zjfjĈ(1$~Ϥt:XBa\&>3rSNtv@bRi=[s޷RC6PŠ HN4y0f[nܦe%
=8-wwjҶ0J/#ڇS%}յ[P*i1yPuj:O^ueW/d-czլQI!XȄ7p	iX>̈́g{2q9$r93\58Ʉ W7+hvȜa+BhViGӗYÆf}Έds.!34d.!3Ӗـ $*1hH@>c@"%;P#&ЪkĜJ@A# sC.jK+O8~тaWݧـNudڏF})bX[܋j9礘?4hj3^`qԞ@U*1˽@JykCu_1agc2NK(vBLyV0]<a!cFq aP^`3rqڎ&2&3qǀ myjpؔYMr v0+PUxnU$w-!:M!)R/.JQ)ڂMIp:u|@M]˝ qU	@hG@xb	fqU=@TBw(qD66U|9]Ο^uVȚZTW-F>d89Qf^MNO+#}5MgTHȶBDx1{YBdU,G%̄3z=fp3a)F}g,QlDb2GLA".wc8*G"b@|	-u(cKt?L 3^]1u|<Mjel_0Vݎ#ذk$Lt`(P)(6l1P|>?.tIMYhJ{n|HA7ABlR4C@旫NLyomK$5$Xaq_6
a; a:T[8l-߬Nӈ-,*bparُ6 a^XܺDAdDʟiͤJiF̊e4M:0L_9SLvǢii+WGD,6YǛt_jt|)6nCea!Ie<tl13(MOq 0FTBt>UB"[)=&ޘAɁ<b>mhci1F+]pV)8hРJpYevjKoq򦾩ԅtfji|4)05*3Vx CE4:r;e/])q`MǀtߩrߪjNSvw7yIKGqp؆c#cH	7tNtr<4t1cw5ciuj7=>٤C~ܮ}WY)O{דŸO oS\!&.'JUg8;U0ٸ"P\+;PeL$TwʍT4:Y@c&ݘe+݋d*w"BXQB:$OJnY<HAV2=%mqcny\d4X\~hեOp>)"haWaCQԠy>c8yn#9 iM _N9`oO5|w SB& h'-S1$D.2͝\n	JcU:v}ܳ'C[LIb3LܓBXWUΒ$*,>̟d	#9Y;. 3*xa顺Y$${t%EW2,R0pu/_t%M6Ӣ};ER@R`E5,V6TcA&hj̹aT$4*6,i>;qv u7N2g8faZ
 aOtܪ	pC+Y*u0|c(tc3\;IJd\ׁi=Ui WҪ`U(xBjxih7XU3Uc?[l`~=
,^6C"t[-.Wu0/ez+uCРD8s4{9 #:Hִ=M٥h¸uٺN!IDS2"Hɟ$CIOPcnB0eNZ)\l/2\s`+O9Kěl bSNA1p<A	@V~fl;cAf5ΆFj`L)
J:OWF$^/]pCP"_9yX'Ev(A+3>(`BjW _k}Kcy>te!!V2	@!RtּJjPFߋ{mhP/K//OaRԠ)NώJ}Qx7ucJVt&iE'-j+l}|YUo7kxIj¢?,w?iztR#̾៵V׃h#6pj1~׭-c6iW}POnwH\jHO2V6UTԠ- T`zՖd]I/Sǝ0,:>c sw~/*^wCWaX2	\t5+牍9ݧC5X)i5]Gl[Y[Dqܥk	.CJK޴ɖd8^R!7Ę`6;v^uÐ(<s5iУ&ѠMFW+o*_sEAuψ[)u8n)A/d#O{{IDVZ`1[r4̅`o*e!<!"{Lco2)0*JC<M*wֲ^<X5B_qe~i̳2P*{	hvD;gt%k;ZKg҅`oxc2oEt,r~)Ӣ٘AW)6B޵D%7\L7m8ؼJBBPԻhk![d"]#4Iϐ!t,"*G|p=R_Z@Pcť'S%
PF3t@1Olh	peXL,k'CΊr(eqFKeKC|/t\O <'r
~oF2xX
k{
Ec90kZ{QH(%k/2B}r^ŅnPzi  ~i%[X~ "sԱ:%h.{]^T\řDc_ubQ&)GI:)[|CBȻPu_?ArdXPkM._Wš*d>ӞcQ+2/9}t (=
BŰlj,ޔdOSJz&WUi@~7]ܽSaoyb87Kr1<gNUn pY9Am)Kv(ݭYUۂUg;/bfR|otr3P-vL?>x!6LLh<&&}+K
@ºdv*;hK+-laHW?RNPUeLCm
|E\Cc@ /t+:J=0z$ԃsc᪇M0Ԗ
e<AGaTxǬRFɪ
$ƪDRM31{Fw#*V--;Y
аۍҏ;7Up.)g	'UT?|02RIy݀*_- v巜h5]UlOI/0ɢ8U㠾'KvNy>%w4
Jާɮt[/_Yl,Y^RՂJ|%)fG$ WK+^-kN7NF]Zo՟oHOt%RT]gZ`Uһ~9EOZt8}	V͛ݬmuz}O.\/bO.\Uhm+asCѵb]4ߪĭBS;,lUf*mFav};:<u$}Kj)kj7o4=X#VonlN59h>Y-*(9&kzT&&E-۩bI?$DO=rXK\Z73xiM3Ws=4_>8f4D[n5A1|zjG,_7Zއ:̹znZGV"wFxp#{6[
fU<֝-ul8|E ~p8	l>7<伤@u%?Y#/u}*6vπ̸W-C_t5 Rrzߡ;SXŭ]!A!w0~Vs\0oi"Lq<*<9vC@8STO`=mi>4y_=:~_WHˤ+RkOJ|Lu>Ղ3|HA)L `ygQ$}Ud)ПN"d@GO䎀6/?YPc\O"rXų_~q6aJD{ٿfP,ÜAէ,3E:ÃH!j0Jv;2{p;TQp;KP
Zg>qv0曡Tyekg܆:my)m85Iq]pmd#濆[fT98D0btYm~`UR0Yu sUSVA`Ouawg1OB4>"5-FU%wւR+XH{tߎkFllk6߫mvUsC,IClO: 3ý`Fd<&CP  &iR[u߿WÕ`
Vb!a}@=ue=%BM-Tx`ݧـtv0zxN*]^ĩ`1A,IiaPmM 0\;kJ6ڵ;5Z"&`*̰&-k3C kjAu즨!u0kG`0S	ło9c=R\-((vUNpIJ7I !	};PBzixSSO
:.p֋95sfLx<,pRA50ِm~+Vū	P;((RM zM	OYJRZoJx_=pk}x@밷ߠᮩA`5L>4<P,nxsS߿7@~1E!F9}ds+vcpi=j{[HXҌd;/i.4%&11N_]H-MsqMzm%YCJYG`4d4Lop3ηGF	ڳj+qlϲǴbVKZޑ¬"t=ٜ諡ug1 O	̌(W+{F$Wp76vl:*(-*1E%Jb..l Su=/8fuS0 &sUahfǇMv|y3KL4ċMڭ?&q<Q'6rl?ܯYť^&
nY>Yi<K',.s/7%pÒ5AɘjţrpjPY7Lx6kf^.lp9>P97̙f\@CrVM)s>^滗O$c;2L/R<Em(m	4@Asr#,~)7 э2g`ј,-ޢb&r4k0>4{z"C:?0yILRp~׫a 9,zg&^bVY싮jJwi]iv,X:nya`'c<VHpyH+;0$gm5^ߔ{1ãQ>zCؙ/yU;7}o9VZ0p͘@=h9ld=4vGٝhD2J6/Љb֔Ro41	rX= dp2sSPwC <$P[Gnҏo͐&'cLXf&fN0p"\QDp
0J2<&z3T+{xc \a.b.3VPRײyHxzY0}޵lRhRU36kX.J0C| ySSXB\QkB]OUn|j-R=:LYPg@5$:EuSYcw<tfFSJpL}n3n1mg(xX/t04=ϰ,4hž.]Zngj !!S|R5ȔTuf;ɮ\ qR@H59Y`ΪJ
7%~|Y	pYu
0]/bèUAVߎ'=)bUqi#WSũV*1JB[\( rwQܗ@G,VtjZLfpAܺ]:Slr	]#)̊K*KK(J$K|'KzWJhxtws6MͽG0!F)=9#n8E8J^dHJ?i0aQ&h6Ѥg-d>䀗X:qi\[Z>dsnWD-*LF`N4aN=7*&d3*c3.bggl.֨8Q̀U=0moEGG//'ݰ^v~}qX&[8HR-!qh*;(m(
,|ilC>߫0]'m^|ds#p;!CX+f>æp&CNԅRRAKEǆKdL7h&Xj<QP&(X46M"545T/8(Tzv2qq?&Tp"fa;s#Kl=iۮp0@oȐbA7-ÿ*dy$suὁCtV(cU0e6.އ5fa3GfeVa8[ \`g^)4ŀCxO	ۤڃ_ { jP7DXɏ%1y|p5T^uO?fkcLBp~+%x d=}Nzh);^Qd"쾤u]r/T7^
!P:A-
R%<{IpJ-ebwB8UnKL8l77j,:D	:gWUo1kPOHi~,,]v`F3AJ&ZBMexT[%JDH:2p,IN|nUu+ Y>b؈Mbb<7{$$ tưbY EQHV&Mvf20WeleL}wqUA/ͩ;
gs"}7c`xS9uY^uo?gOMQ&۞|o%&2Jh<t@CWO`{Ny/u6-/qLSc:\ɇS;2A3^٩lsBRH>&y IF5vyX.N`9.m;*xD43)5/?ZqS6X=Н5qFVTHC=g):_m)JZb!y\Yɜ6f)ZbY۵*J=쎙U1}h74IιF\Z	fxv̫y#ҙx-Zn뫟<&YrV PtUE'˺dgBGoQWhSsRT@xW-.:X}e9zr >ew̶nʲzx^LʆElXfBc^5fw[E֭43ss%
*9Bbq5ZLu!oд4[((xpMn70p%	zҦ]r-BSwF*kKdT_cy$':+%~_hF{V[³NǮV4i7YRpjX	?ZΥlw̽ч}5.Дvbyfԁ	Mogh/𪹀0LSP4uUn@M N_.!	(sj?4;xq)[F[]=lA]+b&n`㪂W)cJ'坏 |ض|Qx P,04N I0ѩ$$lgkXʂ8 N-wDh%
dݧS#V92ȗ9]>G1	6:4ۀɚjdMW(bDjDF PFo@f}CX߾A\+u[A~ï:/FF$ghWejU.b.ٔdjjNmTo ,RF:if\Tf܎ƍcxd}G滖lߠ	F#z*U4.=;9n
ۏt1qJY3fx1Qbh~0@'vN
AG^-,Y]g	thx\go #6hP4Xbڢt1NlMяpZD:Rf<:]TC%q*)O	:o<mÝ'XߠM0/V:d3p7!A2ޤ4~LC m߄a:i2"wY5G Spn?K.쒱,̈L> d^08	{Y	}Ð|FwWbxp??jpT\pJo{jxF
aH~Ls%0Axt$O|-nnE4|`7_3#)kqotDK&PJ.f=^2:x.t)KDTZt0\n9^@Of	jBHf܂UVe"BI@~w%j7v$@Tvyq}%]r"d'M+s~)a.Tɩ1-;J>QbFɠz`:gyRBij[ɇSlDnKyI.9\6q՞VĝYр(pQpi#	6<D?+7ŨZ'L M.XJ@-D'R/QbTf	n`4xO$e{8MȀzAc֛EVQy9ɦ2uZ+Ծ|FV2gYq`ӦhFϨ ikM oB.2.XݰNf9!s4V@C>u2ψ^.0d 3łȖmNU-L?wзF({/#`h;ӌA2[^:β k7."၊AJ~`fG:,!9?K뭀y엀L!
GSrc0;yL	i;TBbls7#<tLMkإ
YM׺Ah-Sk95;G+\ihiJfl~ Y\7dx7rR2w5(hKlN1u4`\	AWAQ.@q&[socfLY@@-w?\307dԏSE<d7GzR00Ph-5M4KHRF2iLQ0}rxXE j1(cWhJ_5s.\iE3ge.&(àv0
o(r >݇$	 x셧7v7pr]`?xIL+{f!	Np?_UI~6pW?_p&m3\? pjn-{J:`>0è~]dŌ΢:3;9d1L؄JF)98D5K;KZ;ί=_\uK@5\9Zld$p-:2kEA<SwK<CAs=ߕG0"(Z[ݢE(.	{C;k|1$@шuD )0Il3d˛@3 H*껵\GIe\㎺;/wt`3U0˼y)D`HA&~Vg|;[	[>>~|Mq@S 
3_ޔgGq,:A4|^nPZ*5r,.s2gϳ(Y<0j&OilX:)P=4m@>36سسSCýlrI0}C3:%#%B=V@Zs(*1P̉]l6Dd]r)'_EF\5L=L.z~6g_	EGe9̴N̠/q\@>
(X+wd~4r6߿2l߈>M WxQД#9Mz}ZQ0??)@ߕ]m\?}D4	ӅuY>1Uˣ,g*J	Cdz&+tn\Jpy$5&h'򯙧Zx	2 >)BJuZvmF̮#MOp=׺6K`l};RzXQ'~d>%˗xYn>4o0z`~F= ƩVඡVv-2~pҵ\%h%28 JØ!Yu1{v:CBuGqù6R'QZ9hN+AT-wG0dw%tڧ`<0BPx
?'*ȃ' ߆	'E/R^ZMh2XZ44)\ԇ0ee)L8tT`͹M4
g2^GwE SlISX«.*Sց C+;kLڷÁ[tS{O6MD3֦Q9s]Ce%Mf:SPf0w%0.%b"c1.uwZyW1Ro+qD퍣'픻)SwEk[EeaU"N!J!I	#kѵ>dO@l:!j9WH8hQjR'Taa0%N"<YWQUŌ/]Z(U]r;rUͺ}iI6,se?-Q,BބL4`V@0V#-fݗ;Qpkʂqqב]X"0zoEFf>f3%ubxeJԄ@绉.Awm/Vpѡ wyCQ<#DkrCrהLVVIp%$̀Z)>}YTEZ\6iHC 0ZY2fIUŸZD^3~ (>PuSPټP gt%Rs]l{%Sjvjv|xE^8QZudMmJ}P?&_8gٜ`ޠ*Sh2ՍS\NqcZsg0mvRC%VO
JDQoyAL\;6c*ͱGB-[j:JlF`%y+k*zK :u/%Vl	Jui'皂<8Q\p5`;gZG<8EXA<}<	6eTZΝ}xy>e^VN}r֚Lֺd5;*w6X@z`a4a-<<`҃v	@׫mRL廤>zHHKK^̼US"!ʎΏd/%Y:>76C
A
Mcu6dK1>n|uK2ƋI|VckឧvrE B'
Na K<WIr:/?fn| Z`4e~3:"BŁU׽`Zs֥#vQhɘc, j):K&'_نlfPI)r2h3UR4$k3Zz>G#έ;YMB*iUR(XS8@Ѫ>'/a,Hs)M&GZ(ϣG~ad:T9#^LҜ:Hb8y` jl!ʾA6ګ9y4UPDr̉Xp%4-s)nv3 x)7r2>*Z4ǼG ^;4R"(9쳯MIG<O<&ɛm	s7.Fcz0qtC̉W`{>g1'K:.G1Liep}\7efMUchDrL5gB5yx+H
]Df ౔bqC*a!K
{f Ȇ./ -Do?4i,8MW?-˽װ_J6:./4kCJK^ e<
W5BY=wSܵzcR>:uDԀ(u@zv57bhD_k9<K	"xngVmvNX#.`H#A#Zp'NAm' 2U6ٶ/ ǝ{GveK7d_)׏#2'td_qAblBHMpޜ,~?]^a<y7,gT#fX9chx^o+P |Ic1{ Ra82仦˗6jvMGL;dŜ]-2QN	p	@ϟTA	~Y$Љώ1<*caHcgAwjp`$ph-mΞJ`^Z"KpȶO	=.v+"6T)d3^@p*R^9LD.jEy]UzjzBDYZf8	v~o-;W1_@Qǵ@ XLJ'KX瀰|NG4%ӢՄB8ֶ+5oDNC-.kKBhT/_4~8fkfD}GdXDĭLd`qu	S^)j)+q%YGЬq%ůДd+ 0^\Zgds];ShXBG/S0+H{$U0Bqsh;s$f]f}ǂꪳu%7";50Ec1^h:SP8!-Ok琪P|HםhQѸ"À$_)׮aX`FWcK
yD?Ő{A4aj/Ji.ڳh0_ Wqk6Qfh:zJYӸ%ٝFO)Lo&75Y)n_P .͝A6o~" 1kdtLl36	te$%=\js.oYg4e+8ӘvK|ehʑOEYdls0\4&]bSM{&*jȞɺ~m֪h,  6ס_<^b́ɴv<Ѝ/ԁ>ڤ(ffN饏Ea.Zd!UY*	
_,gg)/\b
iw (uiveK_^k6۲/%?gf*,xs:Aa"I-AYN\Zu5ңjXĉgR[IAI1Yd<dqV"j@6~ީDXY!L-I~Ӑ"EoNq"iAéGK:`-=MQ"hjr$4$q~_Q)b_RF&]zs(Dj}G8 m Z,?ZSf6MEL	-Gs-k9U{Ṥn2P0t^2<dJ<继8!*k^]/MKA.KwERR@Ʌ|~ИV9-))c!O=ڍ(JN~sgC*<,lX]a?`삏,'"&zQ)wPsP4H
rXJ<vq*f@LO3Asn@LөFt`vΗc]_52RQ2~ޏ6u.8'cR`J2V`Pԥ;*T#N&dQbNӆu	GdWhxPOI݂j%d^cc29b,zHpNP0<l}mǇlaY;>Av3Ω7zЋ?;D'4B6hV#/̃^0Ѭ'dL /aDo!l/q0B0aG2q8`8 ߹ S-/J̮E&(TUS6#O<mJqmt	7z؜,f^=ј&j֧ufF9ɥMT[DyBp(6/#2zx=z}jZf-{)Lms^Hدns̮>Z9jf4ś,hl+k+7 ^vz%CWC޻B*0_d6L[lN9|X^8jk<7%!R(s8'N*@"^LiW`-AMkXE_gVy4)E;u0!z	v/W-*?^%tgr~!`Q}Ϧ='DYS4/*(TA!-rox$ƨ!am*O>n!ϱy9!1^0J&tcwԡYt2"4jnw Fz;+5O$3XWAHKVBo"ayG!;t0hdrz_.lmFhvՌӼd`4hd|=	"2ƚǿ?`.EXe6~:h
J##_RKWS](K(j X=>6ٻ~bVnL>ɗ8Y3G.L Z 8swhWM╪{|	DaJ緞zHޗ&\5q}NفJ*V?{4k<;Y M1MT!c@%0\5lpҩKC5!9tKȃHwZֱeć`>SRa;"`eEKrBl$Ʈ=D Y=0E]/kI(D'Dr01#<D5p=ɪ0nj$]U{Fnkzl@2%ʣq_C5GSAo(#ՆfAOm\Tw@uL7dy%Xhћ/blP&" .ib,ɂpA`G`|;QYC )pA`spgLv}0Nɏ!J̗تoP|_(ђ&7Sɀhܴ2*"9VcV1dFd^ÐQhARHKaoWq}Gy}zXM7.?o<UXo{]^|k{ݤDQH?uq2CW̋z4X%~akM^I5[sv{+?CmK6C<Ѩq=]~)&h2
òfz3\ЂͷiI6|'p}{k)^q<rOwٮO^lVBEalWFȤLQ08E$LߟwW
>DSL|0[[M(z1glZ!bߪǒ4<!XY}Zʗ-!hMj[ YG~8a9].?nW&F!BhF{])d]VܰڇfL,#S+1<yme$Je='gcB;fgpgΊpg)= ]9lBv%Ci\^HYYĮ]d`җxEg!:#8n鑋`uA9uc9(Z@!#N`v)cF/|#2_*s5RN0%>n.=Ihq}	%P]*AN_扣3y]PJZ\+~ZGdeL`C39q[|)He,~t]G؊e۔\MG)d~èҐXPybu	*@ҲJmUΓ׫DCg?*{'~vUO)[AUM$ۼtniOhg$E@0ޚNgBu1ad"
f#ҝaﻪ!H
M|Me-&NebBS.?;;Y'#0~FEP7WfG胮P
]Up=Ze2{r/WJzNjȶ!26	o}οM1ױ6&\ح&EK"¡`Bn6;]lT2kvZb%P3n6w+Ҵ^C*;0[9U@e*IE:blv{%Vs8g	^0WJisUEw&M:C~"6+(er㎖y4X.ǯ3}ʣNMwѲkZ{!;GwMk]ǢAmHh&WGDu  0wR'.DEu#v8]-p6D`/!.U}VOhi1V8QQ0ɟKhξX>hG\Zg65Sr}pƻPp0곺t{Wq3z!ʡ%jpp^λ,}ƟH Bx\'>yLt:sytI54:BTʶXK1p­c*{pTƢv암f \޺d>;ԓAd|%1_.@	R qyү_+OgeӤL㭱x][4>? ?@Q+DR 4:!@ۍ3c>Rq@9aV 3@off2 )ߌݸv7yPVl@զdow(bmE|XfJs>*):Hְ'w{._tna=ٵ
b_e˙=${H LŅ@Xisl-=D\XLiW?vuҶs^:_{؅ \-C㛎B_R&&1O,"<IŌw?8t6DYhC);+AFeS(J@;Cq_<;B]Jp1u(RGhh>?LӐd,N2m#@P˺ЙڷtkaK-ɏS%Skf;]hvq+$0)swHP"s=O߳s?rƃq@X$%_|D&G 	J:vARa 0ɳ+KnV0	(]5Ŝ_@E?R% pYtzQ$OhO,NCQH[_BO>VM Bk7H[wTW(
ܐRS*\/ 5D 59\5`i*lƙ4eKIMo bߎi;áE;Dʶ+ipNXQe\2ܲY3"_e%ys*~T$$TWG;::Y|icrL9ԥךnKDFc&Mz^4>H!司Jh@^{e T=^*usmvȒuϣ,}B;|>\99=1pbȋgaaZ_Vy2	lNe&X?k]D<>4ra
J߉.mZFqms/痤xy[Sk;[N!	yhںB/x7/)b]Y4{5|XsiB	i켑T1ΤPX5b
8`,@BCmW}PU;A`!4vYŸ3ON)ahF9I}6w2R#EQϼ
B#^6#r^̷xm6|8JK:_Pc*<'lbLv@캕jDUM+5Ƣ'ؤT/E&ɽ;>΁P&8!c<(ن$RYXYOkUAJyV[+{٦7`k3\Lr21"ucRi&Sڪ=?_<4" ˎfS0I)C<S);jL^!DYqv|Xʺ17C_LxkKh vyBRB]t 0cOܦ(iؑƚM"E]әM}\anxf_]\[?jĔ^]ΓP~zeJpaCj,_8jr4KbHd^KDKkzWۜ1H>)ڬO	V庻hP<sbwfs"dIl%R{VOK*f[?&aQo-L`h)W1pkkWw0bp5a_;}a^K?!eDcQ^dvuF!kJ6+(yr)(rq&=^#eZ,ɐ8iQ򓠎8ŕpTz֣?|\Q͓֌UV:;p&yJʈ/i|P+K`DoHx<mW0p~Fҟ
Xq EjW"2FB@ҸwTr^;vKDi5AH&m!Kd}9^ͮal]0M1[!ۧ@=
׽T

4 -,Bǈͱtkv,+r@2ߡEy_qͫʰ[AǟD8}<h(/w(pd_-w=-Y	j\VJ9L,U>7J	u"1sYE[ɵ	~.Vߓ.Od97,U7!ZDd2eq=y49r1A YI$15oa3Dy-i{9q}Zp-^Yv,2Z v9KpT2t~>qsז_5Kp\nܪ~Q_5WgT+Xy&38JWU@d!}'24.<i35uu'\slN~%!ADxauBHAVhMQT&='tOqbҖg̎>uANؕ/婟Dՠȼ`+ma
,YHGy2tu;V%-.Sś2\VE3?OhЋ&`jӲ쀀eʽIU9E_5S쯗:d~)$N<tcqRn"t+Gybz1i|j0Xhs*ب=䳩rP40{M{=ěQj)*
g:=
aD8FݖZ/Ѕ#zcVafl҂4حN$I;H1Fm+AF%+ΑELT)IT̂R+Jsȭ(9F95-=1KP()أ0!/} H_eJ/g> L$nʜ1؋Bڪ2iGtaS5
xVѮPsat>v Ph[v1 ^1\r9@zr3/fq%PbOl.`g_`unxG0<[sWzОW~si%_Tx!DN]^T7e\atQIJ\?2 h!W yx88Xu-xTP?#ޣ	>?yD̛=X:XbZu5݊AcuAGC
$;Mnò#QD c5_
y)0j3@Ouy?uW{e,0bA\vW{+LX ӜҔ O%%Xh+gm͍:pwd_Sex8k5#JU0a48~A^Z'h(<r8:3J,fa|5SÇg=2iϚ,|>{Ɏu	[zNuA,	2Z:]Ժκ߫>zjwɩ#-48|(}{{JNAf|)՟W<i=b/F[\4nCv{+ϴve=.N&nG/߽F]XZ)uS:K/V !H!Ifbܘ,vؐ4cDc){֢Yvb"V6(G3G0)V]a?&FQ *U>OX)L(%RJuQ`@Ʋߐ,쩶'86eeRA j^nn
dP&((}}\/)D6ӛVӄeKגTTr+V@Oct,?mo.hB=J68sj)~:DϷRmU]?װAHl14ZP(sKB)l-prnaBhe90<_/}Ŋ Azb֢7ɛl}EMmb*WV~:yVm\VhJډI@ؠ*I?4Nvd w
<~?l_|m)$oM:I賑lv'nQ}IBllǸWW;ؾ7(xl,pd TT|>EZnaO~&} }֩V,;51mܪ8,h̋ct]1>t_ecq+ '3?ʡ[@Fݵ	E.,PW`:P^ϧLdiWQY.. #n#+1@3\c~khLp-
N'p6TO^>Yfۧ:KGq @z(ϣGcOqi,1+0  bM?ƳFm4YL8~*Nfl՗/ P^x0n=vCC8C E˜sWhyiԯ °.qg'd=᠖H]vL/@jbIΉ]%^#rns,15	}ǗiΓ=B:S0,[N%>ޡ4ny A1B:qjwm7;5;$Bd呻Ӱ}1UVߍMKOY@TxRMzn'љĹybg yH:\=!m:Q6(s	b(qSmSV:KkFrMGGR[.`6Y7Jq6vT~jjU4SE%|F )xI@0-gŎjI;iU"UT/1%I:$ȍH՗lvs==CX.8U9J2E? ;qh\˧a18VہS?	
W]]nxxYALi]֫X8%+oFdmzhuJ0rVU*zTkZ먍@T 2Me*$-Dj)L	zcs=5?q2iU2@KN>)st|Z.ط,C-rqAW*2Ե?e8 ܉km`yAAYO[Or5XP7z;)t _a..T&H5hK$IEhoq޾+	F'|">)/ra0B:fuSd.b$g겺Lv'z2MZ<QdloL}3";GCR*e65E2D>gpf<Q& ED8|C,Yv9d펵&{w<	DgOL-أ9:
DlW^[}y,x,A`y,ax\_Ox uO78 M-a`4ͅGDH=&̬\(+7!p!ZIu͛[	μG*K*ۊ#-'lj	>g_)iw<V0uVhl:CB<(1tAu%{L&VbQWlE9<Iп&oUpu.~QWoca纘uPrڧFqVMKuNCf):Ir>?Jʿsx}xw|Toi3$iaj
[P HH{=GzPQ
BPt˕3ߗ?&{^{S=^ߒV2ݘUⰥogܦghQ{tcШ==';ˈ<9h*uckԺugTUG&ٌ4Oq+""=z83vGƦ0Bx'}TރV{JEQ[QݚW̙9C1rq̾g!Hޖ\:y#KW\{&ƆOl\<&5%vj.Fhg.+-KǰcqbX%YL}nͨI	0F$&	dzuԼE"ʚc{|QƒP3^X-27θe=FYK]F=.O*ґ{+èVȚ?hܜ%Wl.b+f}^m=#(Ŝ)Ƴ֘Tw:JHRqKPw?FQ?QF0	t&E_uCVabM0-%fL7k
K1^MF$Vv#{RLY$Mi5XJ#ԬaQ=ll_ܘaY&39݇=򳐶O@us`:s\cZhy	ױ #sti`xiF/>n8nRB15`)@6K6;YoBg!;;Yf9(1rXZfF՘?Z6V QF֡FΤ<E/14I[x5eL1I`Ģv3Qб[[
	-*Q3_e=)An8tC	#3@CR̵^uBň`cJ2ӉQ:&mU?+mnnij7ngkJIrf\OlTx/2+λ]vQR4Jcue#b8Wt"jBb$ʮ's>P {p!v `#Ou!l@7>f9gJܧ)y끣YS36au9"0ǰd6(&&/`ҁgGj,slKSYK_έ9͑ϰ̺ϱ$	2?!cQzŋMϳQ]C
sNkX=CH}mZLNMD*ڙ%[4sk̩*h*nod:RZcgox Wpk)Țf
ESf(YmA2{)~_H즻<&N:;	)@OATr:͠3d19Yv2D
t܌'
	Ȏ$}oqY!,h)([y;}W8:G;]fuz"a4.	}gTP!;\FLƋgչBn3\p
-_ɱB3Q!Vwcɴ_q$XNj`h6 0yrłnR,dXZ"`I~TMБsi0Ra2^XH,fMՍ[qtCfkjfǭυ DbQF#A]/;wiQ_Q c[l^!|!8M_m(+{VYB$b4<[N+_%wW(DPZąZ'L]b^)ͭ1{9VD+QQCY-[Pu~C`7hS<'H茐k(^i<@[nuycp!,y^&`z{'\CM{6)
Gn;Gn{lwήJ)Wƪ~{`V;Jǡ.㿈4|mb.@r٣.1'DjN1h .fetBRnF0bE	JB䝤9 kc<N;E+d,W"V׊`i1N8T+EiXsT]GC;Ck5kW%W:#vyt,ښ%Xcn^˿&NBsb&?U:`ωp]V	<|]Gy2ryrodoȅ'EpٿfzQ])FS(O[K<U['_7S]h hEQHb<M pl}"5尣?H|twXr1Fķ'	NFn\V<%6"	bб掟
ݜc̱^ئvۨsղ*i&dUga5(-e0<I:9ςcK%a+
'7}֙;M]dVx+\S$,Z0',̋"rknOU$gD>ɯk,6-x^CNmPԂ?a?pD8 c(!'7hś<v&y#KVl=as		K:\4ͣby Q0c`\v˒8NOPO/U:O2p-0ټaW+bőX/kG*S);P(LeUT:ic:yONoF0^rFߚw~KR@КGr"I3 ­Bh[ ё-}r\1=,rȰIuďΤ:t}ɦː跂Z<[mx>$bZFEO;ڼ(3b(鼉?T	Mx!R*V>5s<foUU*dleP`]/|'7̗R;oLiCiR?iRyhtmop4<=|Z,͑Tõl#[2N'6M|KNxѽ5٘5 ؁)'(TPcNwBΰi#PxZGVW J6"\TF
vjKƿ*_3Fީ)%~1UW淔h<$ŔnлbDKYM[pr9X>,<eC&/;TDZ/;ziGK28*SRp3ț"-=tr[!ؑ㜅qN? `6$|0mS:ü-]*qnu	PD}}	~G!=#Tb#EGʏPyJsE^PñH؞@.nX'K]t#9#Bn9vu=2BqwhTBlPO\PӲidgM)	7ߕ^pAN{,^uƚO8kly[ͱx#ak֗VK:JSVfٸmBy	(d/Bid=oWKF:9ǅ	dt`^_O	)K("91wy> w-5M]j 9Bp,ĝasEٿ͍9eNRer^?q>O72uԙ(?m3O0Wc׹VW7_E(M*GC/-@ğEjS?XlQkͼN#	K
VA7HeK#*=a>/djԡt1jy5Aٳ_ m=ǳ y>
åً70PyND<^͇/Gu? m6@.Е4_,D~Tϩ*Fwm
\r/<^ϛbtzaFKzloҶ=QMX7쭺'6@SԞivЄhd^Np׽WU_{9RSL?/h_dnlM#PQ{c3/Tp.KwC;M7J!(Ii{$kJ2{E6KƬ;ujqNztia4PH2&_x4T#@ I{?JTn$nO 3n6.A6 zoa~r_q&wv)Jh(5dw!/Q`ف>\XfR3 fCvry4QZʰ(;qH&o& s0=.6#=DnOсNʺ)lJm[ݮ7qEfR(u.v.+v_bl&๻B.?l@.4=LJ>m4bzV]DND:A~K8&凨g9e-[HխQoZC6J
'qQQYoB㾨&[˖}ib]Zr` db%_DgH%tA"wڨ,iv˵v6_ў'UMg;ʎ|RFf93Cj	1y*;)|ՏPQCrytlcSCg;>9ytO(rmQ֗mork:I x%ԎIsZ|szD#V4_I^xʡf@^["W-ǖN?˜R;%Y\ZR|sC@[n)F4TH=m,Sf6R+)ϵm(/OG$nj+pvFq̶yEs4:_5ĦJe}8E<cR{~jL4ljwKrk	X.7͗)~p2ؿb[U	4:$UC)۲uMbj`'㤾\ϻ	^!Oy~|^v'vBwQC͝+kv Q2)zosD<\˯Nn81{lKuxb^#wꄚW^\aMT%|KO;HyI@IUțdz8F1]71YsbGӠ~W}'#G*n r/nӾ跟:P~vt=tSC:VȽB.+v?w7XT	=c,LcΈJ#1K=N_6MOD^]chpzUw=wg	HƷJr68b6& }Tp%@jZIitWQj۠A$G*<]dYtl1%R|=)l(ϧS{d弬J4rfRbP4SѰoh@07Q~!:_QN@v(?Q\O+!8%ڝ(Vi2jR޾})e<M{u2Gĩ'Ĝ`3v>(mP䵥/RgdEBf=裌-U`J$b[:]Ve5;BSiܫzqp;؜J]A/VuS=9_cj	3cô/໳j *O3j{&:3ݔШP\truKy<.%[c< φ4z)'*KP
\OөFQ6_m""FXQCi5DI}F=dN/ߨ&5/)uF`$P$Ѥ|&YϹqOSKl_`FJx(ϕ)-q]i;X^Gl<W\,:}jׂ_l|1qWwѣSA><Io*G874մҾu^B\dHMf$֘0tZ2%;Uz$*𒞄}z;kz.c\U1s45})Rnyn_\_||nR;MQyC#jZgD}UɽzMľ}vzpNZ<CSlՓдu;Ң[iӠaCO:MYjk(E^$wq/:OžZo*h;'S׮D9IT#3+>Sպ$̫݇wJB'y6̴,ٓ[$pVJ3Dj2yZOs@*)D~K7i:v<<DQI(2},rӤ?3fS}_?Ӑ{V)~<8gG|;@AR{tRK2K#A#ӚxB>OmǉThy8xZ<j`ݍiY0+~CZkMVWG~@bcu)0ե`3T~mϛ>a?OwD?eJo
-NwbNKWЛD%wzniQz.<T 6o;5Ã\+bA+׆9Qqw\;!=U\z&ƹ^1oK7z(:9EЖnzr%9f\+?H2~/Iԑb!b]y7ٽYE5.]1T_T%3?̜rjڸQkpjtOC<AnȞf99nFݶ8f0=?VFYs~?Ra}+ps_l@f?5FO5x}x׵7;;uUo+$T]BUke#9Mp0#\㊰S\$/ƈ<ǉw
%9{r/]|g
&H ͚7[V:Kb{^S[VU9 9s¶[]tk[no^nnn6Y{r[m2re8GT	r2B+jaUV`Hڂ9luEkvz$ɠI2('}!fhtZF&1vWjee5(ummYrbkvVV܂\nT8+ʪZmmqDQڒWnMUN})i3GiV~qjivu+G% ֢iXlML>ew	/_itf;:K춺{-G1a+R}kPd㕨rBrE?@~(W9]"DT)#?μә"rƣre:.ysGxQ:QD)ϮY6'lILXW3p.dI3?K	K'8de@)<lrii|̙MZ(kd8fDVoJH41a)&f!	fL	I0jW"敞]IhCjByUYkvhsr01zڭ{f1R4!#]VYR'AS*ú:[Qi7q|*TJUS 71K44YSr{
3J|k3>YLGEk$L^@9p!R>B̒m"{ݶ$63JY<q|rJ-Ǘ+_/S\Õ)Rl=噵Ѱ&ƤܺǤ+nQuzgEUq}Yg_bՊ 2gsa4胛W$i^=ۆJrh Qy~TwG5E%؝{b?:磕HWģuEcP:~[іn ;wj3AU9]͑ҐF*jʕ#\`1Jܰ= GOde@7뙈_$<1W
{E:+G9zEjryeCqJ`,2ɻ tE15'jϯxb@0?}b̢!?kM;Kʰy9z:jJHMnҿ'umTl<j󔨣7P*ev[vQ^\x0R;7gJ"L^,ٜŇMl=&1Q)#Y.+UewE37x!I`AaQ8t̟yTX$[e]xU;mž))8?	$NG;j">VqeRх1VFi|NЫI@9Ƞzrk$*#|7Q!aRD{)Vׄ)b^qLe?xCË"(sɄ#c$owe_]_HaIg$`;^SSY[A8Bx۔*q&XҨ;35k`O#0dU(`*}{o`o#y10a4IHP{B>ZYG0ufXu5e2Wl<,ma*mEkHDeup6QBc{c(WI{SN
AQ$%kAkkVR~&lec$jMƫUЁ	~E>|Zc)l镋͜'&O:)F:3H\i2RɎҴqwD4(*E*u%y+³VO;ܫL)T|V#VFZmsb$]qn{gߠ37,#y2d)%3kѬU`&64;q~'R31c@WVS8Ӕ%x5yTiD^(*ګKhTkEPj&F1>S.eToVq9RGi)U`ׄ~VdqV9mEEZgQTʣj119#񵶮$@JS޹;!Y$ccQO
P%ϡmy*ç`!;0Z>(IRPHx4G#LV>"383U;X*Ue	E &Jg%3|L3pFudej/)Ͻ#>Rv%rEةesYU]]U`/w)[)sIV`cSkl1%/i?_{S1.]rղ8	oH(1*IS<xh؜Ĵ[!JpoƇVD^5a<ҫ-m޼,sEJ DSZ8M'kGlцΥTǓ՗c,g>V
SDiә vi\pe+)pg2#14+U$GQ89*J+4sгe5h5YkSN
h/Gk<xCrS{>&jB!}FلR.GV'iU[JjB/X`!mL$#91BIOm\NpϚܶg!Ͳq>kc}8e45ޏk̊#Eb]#.4GtkexT#7OS*#ϰ-/Zu4=Mpc1$5REXՑk@<fZF*P(:бd&4W90+rI5I42[T!"P̿2ssk4$ep$2l|- R~KhН6L tdi`8ʊ=0W'.k*meE:Kme>F󳔳}Ǆґ4<DDDI}u2tee-W&s[@dOEulwAub"ܛ6nTJG_6?n JJ,+~Q j."d)G$
o&SɔJZy.)[podP1RDa{/\N4FIbmc&yt*;c~?3^y5$qQF0p3é` +F*K03g~޼	W`!DsTj2']KTMdb}w'lO@{@v1q<#VܕGJߪ((_DB"-b :1*Vi|:iK8\8``X+K,zIj`g*ܺ v;
w/d$XIFzDpIOV1ӡŤi[ZW3[Hqj6r><]`a5ڮ@u`ۙ軂4_ilۙ(hd&TF2.6a`!.q&<dO)BJ#ux1dD)^Ty&U55CUĜ%Z3~[4Bѯ^LQY&jfb  )=kUy?l,|PJ"zq'Hx E"aO?okQƠ%+_#!l3]Yt<VT#q#Hpw%2xUaND(X{x
3hdm{q-WG.}wf$VUϠ u^Gy/=ǰ!sr[l^ØJ,K&eËmȈ	WV~ò+k0(zWHb^z;T^}>@Ls~=e&tm>uL62]Wy7`h!ιvzg01d4tv^abT-! L xV0q>[Đɰc0	=3f-Ì~|`3~%Kqp|'s>30@f,!ώEx{-/Jcrp>j`	N'5Q?.8H\\_	pBL>!y1s	2)Z~C'G4"h	.MCSPi4uh;ߔO鬚2fMU
*TtJm힂4!,Y
OoFΊ,DxZv1CRg
7xb }XtɮJȆ
i3Ұ!]DCuhiϏ=cGJ91_塇H07=[c2%8SF|?aF\֭Llh-5F(q:<z&yWUV'^YMDzۘgCq\!wȚhBi=Ȟ}ǘW}Ij{qT*5=+0jpշ$g'p ׵9aV_Uc&ǙxB*W::ΘeF
`%&cy)JDL/=:0cӀKtŜ/窯eH)ib)4V-jlCȂ7&5$C1<4E[?H&J8"kmGrbu49_4MS#s^#&pMI,8BO}Wb%P-h f:֗U('u<x$Sw8'C˺5b`W&>VƉЧc5MiӘHf6iI8M<&y5rI`iL$II2)ϲb`BGpȦ	*'a
5M<໙ZmesΦO
X_@D ^HBŝ\Md{V[VKRZi&Mc-D5" pp";(:)j:^[#%8BYILO
+ DTD3ճ^>VSV	Ϸit
5*/Aa{f~ޮ)z'ۦIy[Ӥ7vh"lizs&fwks+L۪٫pW8wwjnf!xmDFNM$i&O:6nti4/Q%Alb;*W{qQf
vf+wku娈&9O3ه1CL88fЬӦW,8VUkjK:%g}i+/wٖ$!Qyό9:{eQY}.Js[ʉgɯ5e󱡻͵ŽܵUzjheǺmvod	[<::A\*]K8wBspIOgeB}^/z]5zMHqc.Рۭ%Vℬ^3{Ox7c׍u+}(ĕx.R@r.>n<q%T-oVVBE]FHSO+2CX|ؠۣJѮYYSVtTuY[Wԗ	<B	茰u!vVv#`WAmw5ml$QUd;@y
r?lnSv;.:~[de:paW>?|'wޅtw܃:}/7ߋʆz}N^߂܊gpUefv6"Κ`$YH6-t0"*y6Uk9{cT2a=z;[MF$(si;.Żصpnu"lգ0eyvOy<uŹ=#!%3E/@=a7ƩZ.DAA8=GY	̯ b  >Ė×#({G0({d98(C+YoCai[(<.j	?]Wg=\^~]G!=:xu	dPO-k%O!lK[
y5xy]̀~3q=&٫U߰Ql8
M{vmm"P^0N#hxel!FŢaM<Gqf"8O5I4/D{˃Pb~ϰs4Y6=ܧzziǅvtAU96^d`v1˞^d1Hx	"Jgz2R"[{3g^1?
tK;~3QA#l:!5FX:`[qf
ļ➥h8фb螉RLTVCδ?~6['dL)vd
9Vld
JfvV\0;2٘4F:/l; rab^6/{6wcPvTt{hﳛ!,չ0TtJ8rXK>b9G**V+8*atW:kALp(XIb=g6iAxLϿbex]]R;sUlL"}a3&[iDA܊)NCSO9H!qd3k|}x{s8|z cOWyGuE][s=8D pGltB֩FM7YeV)ß+<飬Ot5DMgÉ?a*$?M7+G~r$@Ǜ8M邎f*ZCֽ-[\m̹Cnb㙹7][`_'vcZ>A4BJ'Y(AV4ʊ(hTDJL/.-+ǬNL%)ШKuHQFi%	g59)V49ͧzQlZ MD׊pZ+ #Vk]E7PBFYL
YqJ(&XxaGeCHR|)dIvs u|ƺ|P^9p[
;-yO!Ҳ0grϙKM#?M*rg+zA۫yիP(OWԾ<N6zJg<2543R$sTJ{yጔC4R*TX;*Aa:#!gT缳I>fJ	7*IfB;.6bl2 e)0S	0on:Vz%	IַzK_n;ý8u*z_DXĴx&tt$Atp0n|n&Xq3ءxF fR	X=> @'F=xaI` YYf1UHP,Ba*cB</i,|K%6[JS@IQf	f8p[Ej{}sWa!H'HNGMYE|!4s'3t^RNx6؛y0'4fRS(Y	ʿ*nU(s<|aV\>tV>cazZ}iBi@ j`6WOZW` 1?=T"y8vQ)աST$k3x/%ibpn0slӤ¬_7`6m]6vf&|\lR_E[Ir*TTSóT5}!/.]F(I+	2Ӆ0vϻ`+-`ƫ0`t,oW0u["etهq3Nw9"n٣0Z
 :ݚDR`MZ/`Y[FĿ٬M>Vݜ
T$z\;ftJ4ԳOѐjP5AnὪ'|z1)jیGžaX6R@W0o9BzՐc&V	0\Lp%?(VZ'\^֩W>YGCy,*n]w35vGM9GTppbL'GMk$(fe3*E50ت Y ->cu8,ٝdpۯQ.>
b^Ri U<[j}+-(]:JZ]=Em=]-\opouw~vV:yVSpCRd:<[o7Zj.68\N`-8,ݍ#oc*rpcz	ӓцڻ{Z]Eۡ36^ݽmDzu!]2C[<!\}&S}jusXI~w0ht3Q+֡/YErmkwFwWsfߘ6;zqmhn/wa쟸6'mivv7Q1BޖW:oK<,fLjaz5 s_/Yeix{PCk%<״g8nrɋeˋɰltN_cG8y
`$L6'/Qyyo.<O<)>hS \	w`jTu|n1"X[?%C:V[u06
D߸6}
[0XPUˇ'_sv}T%i#S`0eߊɡ|ǭ]08ZjTB!{́?An]keu|čP[>Ա<Q'X6)AgRqM3FAgXܻ>rkF?f+Fh	Ւ;&2HLC0X@UKgddhKZJPx%4m>͘E,h0P,s(,-Z_r"J4
Nh`d-?f"vI$zLZ+<3I	%x˞SW5Rk
FIe=9^{|2NTi|tIQHT`L瀑ݺϞ­ROBA'iJo77Zp%Xv.	F,՛E^I"NJc<\;m!abT^R}8.E![*7/Ao5i% d@s1H404"D^6΅-VbpΖz9*L*5eBCk!og!dJUa0?_ࢃk[p>IHpݫszsӎ
Iz7zG=퐽vf69'èF2vwzz\juxum>B^]'Ц=68rLbiC$o %rB\,
;Ad"qa?L(#(5QD
0K#Ntp0Ep}5IE/ѽ&l̃W$ɬ3",fR?
fBC-WǰHm*ݱ3ͬ,{0jjX,jS_RNreE+"+68.E8.'h	^S
+
pǦ߷`L8oH<nvPI P*",ce|^T穂""eO'^Kp
m^am<ekVÞ	c	 ۳wxC4ɘfߊFYNB}8r<륺@um-z秸l{L8آf,?wЗaz{w {(|%v⸭&z3+Lf4&x}f >L4E	ºX?x_D_.f}$κb<&ߣ:\􋒱Kt:6pC
ϖha{z	^c!+r0M7BvC\M3JPTOAt(@޳u'ЕiwkM|l8Џh'0yc.F
q<VOv߄hMoz>jCwM}02!Z	p2ֿ|T4Avm:rvm`ڊ;0>KNrԿIu)̵ùHb&=ѥ:عg^fY;d>f.qrּggȸyyN)T+LhuhYb}IᎭHC00 c\?*R?<зU(VQc[x{0]>r̂.L{Mh9RG[
^iMH4U3OH94p#.s"ufGѶJ|Yuںaऔ(1F,ons4wt@g
N\gi4n9x)s/ #R~+SઢX`>ǣaP!ƭ_+ؒ/kb{IKg⪯D>Cʬ]\w؅WhW@3{S=ӺH^&7c?(YXprB	-ى5+F7Ͼh]\0.Nϐ0֥MFraԦBmLG/Rj=Ī}#2'I̚WO.MF. *ہ{H&ߒut%B5aupe;qXMqp8H6]<r-W/hKmƊZ3lh:w8#6=צ(	u(Yc0şmB~7Ţ]BGa^')^D6}&uW5'p]>=_GKzkHPSIحw3zDMrt}=Nb|A/Ù߲XƱ%=7szqF	=է롣Ũsɞ H?YM*AD,ЌQI{CW#0pr,Ğǫռy_?E)k%	޵_EȓAM8'Xc,[M?ԧ,T,sV;e%%U56NXhVcE
#9Dr EyDs0RT?YÓWaûrlJ܃ȓOvzϟvs&єH!{\Bne<p7Ncx|8))4J{"Opi0{\#!)'g$j/C#D/-oQo˴KTZ)$}ǭ\o4=~G5&p9\/eN+/;QTEgx}N,p:J*0EOa+q/ĞM4bb8
-2I3Տh6S=|a2]^ֶB|ð?#yA,|.7~KN\,[3a^2<ZmDg 9!P
 7s ׸1LKp):W<F(keh!o{Q_gqt'̽4`\Nm?q,szw_a./4e87_r[;۞7̡Y_e>j`h')_e-2k	;./ ZruJW/oҘ8NGK)aΛd̹AF	!}U(4
C߳	t5O]?;<hӯŵyYs?	澫мgQt?'S`C#SZ$UuHᷗwO@^\1@ &"H4J%an^hUeu|z%	$LPZ`
_g{RL=a	^
M\>0	s$/x^ScN3r>称YS=p(|K}_	i̚v0b\NLBn:ǤM+d~ռb9}o{O	-ũ{P2 #Z]ۚ[B{nvj`qw"Z&R}1:13H*e"\ҨZ*TtMH~6GC&62-阇-o%]uX_rb'y6Q᭳,"'v'4>Kgqe'G+~l~[H\?Dv1"Ы˼4m02i\$Lc@.Oz~sي>qDRKbwo"d-b=UēꎶN271$d4m&?nx	ԷƕD,ѝ1b=H3fn2ڎL]57ڲ{e9P5:Ri[z!ޠv*7[z7ՊVnKmE.@wMo_䮢j벶wW}، #.ES(6V:ܛ]sHlhohnqoά!Q*3[6
߁O`p8:S0ppv>hcs7yS'_ފq`t"K8-'x'ֽ\s2ම£Bߘ+"vNWaŮ1w'g$ oTa~vݶgERmZ~PKKdh{<& %
94M˫6A|\^ug-?|}-JM}FFu	cLA0:=9(dtf8XXzTS%1]W6h$pK}Zl\}|4Nsn`m5'W%vu\=]>A2,C} e	`էJ7$6̦>M
MnBCTXmc:y E^%-l~(cLLdh	W'EfvA0niMk>
#$>&P-m!Z?2*f%([ւY!*}աJ#3x)x= 00%[ҭ[ۛ7N,9˄F͔ĵplP	[ho|;gW7Lkp0F'Avj୾)zHய<O4WZ{?KLX䩟7Gx:HZN&bj*10p FgCoMuH9x2htTB@v!bNcEFw	slq.eN.3.
gCdhSļ~C|ԓ+5PX)b
[J{q'\mg=	V
ɑN܊qpW3KQ˅{D؀ZTYobQAo*0G{AON)$(UR̏@`Ո8q
G{KU.,ފuVdj,Pni]4mUYrzH9kk6t.fы{rZ>n&ʊUd{~aq*Lp^=.|KrV83WUhA"(J1K2<WQttoL=xZ<˻\m]=^м^	F7a%Ox*Ylr-3^n!=`=D'uģ
Mky`I:J>c4[Zwg/vJdBXQ۳1<1 0v~)&pl.Cd<0]1evz$r.LԅLG%gItTmy&r\?=>PͽRz4~@{</;֓@Z!|BBnv|FʍZ";P("sS5"yQVYWcsVU>aQ\̔HPZ?'LDX_Y~!žNs1[vfwhKh]I1sOurPwvPmQ{͸UH.R&!I@1kee`DMLI	e>ͥ>GXee bHPQVIIidCkvڴjY`'^|}ՔU2o΢jFt{+eiU`)+#f<mEEr0Ay^
B:2
[>j뉫MMm]1NAg]34k8bj']YPJ8E>&G:Ju\}aWN|'\/	.f-ӁN	#L/+*Zj4.	q9п8X-=+ܠWzبOM\[coU@ot2Ћ+e>&Q`N*J>.󇼤5R6l%ަzR[.wǀugQ#қRhs`B4T'(pTN6S|Z}o3I.1Ҵ6!!`|.frno2L>N?3^6mnq[MkȮ$az*kXb׷5olrSj!{2miIgdS	)&1Y.äɰA]&ҤsNkX9η1}@nju`*i\D aޫPihonS_gENf5s@7/kMZ׶j5ɼ`ſp.ӨztBwwYp&'5S>{!9ft.>Fơn9|!})\,1FC4\>-W<$%$ɁSnnNDi\:1&&Cퟁz޽
qTUC[םIZ.m#j/cJ[q9U$OJ)2mb	SqkV&MF2NH"fV4 tnfrY9:.@[Pv&\k$+~4xc/χ&&9'00C9C5#"9ga,+\\z<KphLX.C!'6e[OTxÌKeNB2kK5>g2XueU |e~K+ڸe;Tj3r^wloPef@9U0~u-_<*R4Ѧ `
x>y3mVHOߡ/>	SE:3h ,84ڲLa4~~x,`[B\ZK/)<.^~GS|<~9qQ1`']4Gζi3o>Fh4kg*Sz^=%4xt!dFĠגNkU,3NH;G OVb	aCZ"11dW1LS7~wĐ-%0l⍐W
YSo0,՛xKQ%<
drg(<O)	FTWrO=_J骬Rj:/ú?{Ut5bXZoa+,B٭;#y}(1ixd1sFS)F"R/NWvq/:ū3^ٓOd845
f^Q]ǯ=''<:ju;o\ C08$I	P8.d"Ch~_KUW	#x_qsq{!/>u'װl.M8VqvG[C~sziB'zڎWb8SHѢPRFB1%igIzϢk\,#G&?jУe)h4KӼmr {ke8cKr	xtG8/a}{[&8dku{,\Y,9\m%:HDӠ|<Y׎lCa;C1umRyG崈5Їi\`Ev#f\ҁ/ţjb&<}Sl7SqAOݫD`4Ά&.B$<SH>%o:K-%Ve_i\l`>CӠ׆w 9{Mַz_<9w}hh1)l
tAǨbM@B<#Ȝ5ӁH@4b>oiƸ<Vc-mN7Y񢹭w\RޤIl1GӠ/FC_qɺ[4e\JaϢ&&Shd'Qp2\$
[\D1o'#u42"J2NŹ9G?"sFr+S,I ܠWe
vTh-
OUC<UU]⇼p|CB,ȣF}=F1KܥBz'"9Ocl]{n<ݣUK9U04grY&rZx{yCtS1?ttYe92\&b&xsâ!Yk-DeZ~׵zf&n.ОfwwyswZ#Υ~b?pD@9ZCZHS2 E1	S?{;"ȸaUC\9jsvc60]A@]B(,MA*dlw.F!$mSݹ0JAe߃Ʌ$҈,X3z+dP 2S)s^>b;
gd0b`#)*׷ܵA%{KxLc6vXL- Q
ȗFLn7atM"~N7¸B
 C6DE̞1&ks.k#W){pi>;+Vw'upd[e>:[A֔Dl]wZǱ8*Wޫ%k]EF8\.7XX}>
qp]LFCoEx]*EGLUkgzL*^Gԣ-5,%h8Xt0c,6zQ#4;	b']-]Puh4nOqXH_'X&{Rԟ
E!	h쵧UpE~!۝?w}s\Q<W$%_$'DԀ|רgzg̏X)!+gwwU2aV$Wa0rQT艈0/lAZzwm$|w=Lqۧx1YT?@+|J$fx1y_ c=I5|1_bn1lb:Oz{Ym"'wqrx&ޞ.բϯ_۲phY#<ݳvcBdTI"$Ǣ
xgkvq-FͿ\*c1Ǆq%ϣzψQ3;h?̕țg<8~M+x/cw>t<X,ɞg3H7ji7,
5R~`T#S#VKVȯ,z;Fp]GP߅"uKha1=Rtː#è#hLKj/#%NFE؋/xC ][=Rٴ젃
e>ytg~ۤE'ݤz52֣ҸM٪?)jR&Z.HȞ(<8/s:9_MF!$ELhA_!!仕+	3y> +_-#
HD¶yc(pb"bLr2-](B?R#|	V"w?pmG?0m<?zHx&Jv>{HKFh#oMv([	?Y'Dlrv0~Ǡ%pzK~iN޲L%Bܥ\cH3aѩNCeXhhF~Pm{<VvwmuRzy%z)z9Mމht)O4I
^	f"oڳWPƍ%o6913/oQa|b4mSr"ZGDu#?}ييsSvgzv8[XD2M%{e8{JNIt\R&~&I,%*͆r^0Cܫ_وK[m[!SȠɄmX\ǯ6m?͓pG[UX0׬-)j4ȃ>C<|o0z<fV-Aw4$o#=O%x{Ԩdi
<zQ'颫}q&)R)4~ J	z/V~.&B}Ւ$|ǆvt*ȧ^KcbTymzfUC qijiE٩l4F]B`XMA=6Crt56sE`KT__ϚXTjC=<NIzy9L	w\ dh\AC2@J2	Ex7
EPj뺩%j-[n+]Zת|圙sΜ	{<8w{mW:}ZBU9h}NClCMܵA٘wAe _YcIp[@𣤄C.^*!nm'|h^bU΋۫F&M$Z(-<O'WPnzhm它ڵxH\vR
);6ѿݴ;i0fedҀU⡀P} 9PTx`jؿձ*eUhSRZ0zv|JVZ3lbj+;#8ʨJ.J|&Kd[TrJ mY&IKyj',Vg:y=RS.q wYps;G<!뼸O:V8w	$:J(~Q
oE,4Iۏ?ڣ1NG(UAvٝ:XKHhj(Jv-%)&롦4}T{Ʊ#EgL9M_HΪ+RG3:r%
\(Q9
XnIqnfc2~0pՔo7f B*"=˯=Mg"^"P'޳{$UosxB$J'TZݰQhr<{rXUג*!aK%@yK!#O6%K!Zbb/7^?jGd#nd/b*u7B!%z}E_ntTvuT-ViZrX?>|+t$cG߾(J\߼'*9''^Qp)#M^:<|Jp8Kna$X쓷s~{vK?	;ҌEAdqI`Eg-p.>9uij*/\VAڬL]/ӳ4&RmMR_݌Y
UЦ|BH?]8;3-\
d;cgرK<'vv2؎) oyF1q8TZG ڣw'X9s}UNƠxR=Nvxp/Akۍ׮ug!\w!	N@޸\/
!=d+Π<K.a_ɮkO#0!jLL	何+ЏfBRUF{T VUpOJ peS'{"ɒ[ِ-nc"oDbccxn"S\gy(4ܼqđ'ՓF4"@g)BOWȑmWBn<E_
>E)[7>TmMm'*km1g$#̣3?
dLޙ5щpܚ5w ><12LyWkLCR~3R__$QK93yl}rM(*/X0{ofQt331eO"Ҿ%fԮ_,\"Z/uj>=mq@%DEuyYҫ{za{5jAU]Maa.TE,Y:VolktD1f\ mx<]F:f7F;m=gL_j(K6SP?S<-maȭ3Ӓ;)v97R3Fñ-d{؊	>ƋsI5xBCp}6!g/3CM>"F |skBiPN>P8NbqU׽*"٣t7B-!w+ҙ1$x}kG[0fȳ-.zۜos@;2lAh~uobf63[\Y!!87	vp=m(+{uGZ[A<H26LńXHlc1x_g&#mP4,zQklFwLSO
AήBBJ|ǗvG##fz\&24-664qgyU
pB*It V	v^˫"v+-6/CW#ym95>v9{M}:!/FQ'ͨ
oXoQTjp5jݭB)^Pb!5G,=!'>r<&XÞ2pwm/
ҋ=mX0n
%ԻJCOwjWY4Cp8O=-cߒdN ?.Pކ`54{Ul!BY:S)s6ش\F٪ ek9'UOy9wl9/IZlG`"x<v~_</ǡ;u^=[=93|yi	*i)fHR1O{0q7&[3V+Y[73/0%DHjq(̆P?~#nZ=rHVe4o+3uUXk0ZAΦ<BoRS0tF%-~Z~YHY=j ]B[o5IX)ƬƯQ9IdsAY֐vǒx>peU|n2:B}jC['q{֞^U~8oXy3J	t{뙀Q
w.p8'T_U3pZџ#;@fBinx҉X|"^[BԱlW+ԣMH_#
2h	]AB]rL^(4O}:Ruz~(CMW%`ԟ>s~C:6ˑG>xkةȴ)K9ÌJ!r]ʖA"FHo	.nʵx_ר<;-Ԓ:zn˱`)rK Ѥme|)	i%۵}CVǀ'M5݊2E<_#]dHn	%Qr8T;+I;OwhS 荍$@GD'U|Lb89xWB!$Qth}L*UB;IaP GU++,Y`Ê$uuZD_>$:I%#ۢiWnسY`o
7:c"柪JCX$*l	++Пioh8N%No8ʹ!YreM.vB?	IFpeo1BWx;4#Ԑ{h#wƆɥ
vIHt"Zm)r/tؒ كdW夌Ӥ5"A96%.Ti"H^axq(	O,tO
z~ر҂JsO%\`G?8dt%5;xBYouGB	!C)Ge kPՆV	fi|Do]
t78(0&둉%LCh/,Ϣvlmp{l%cc;Y!"D[hfHj1^/2ml90SFMq&}<ގfzb-9jb.6VʥT9z޹tP퐘밧8}cgW.#q[+:SM v/'ui1In,ɱޚs)zZ9JT˶BNE<AMpʌ ""$D\2lQ$,*}IZala5eyyB)?<RZݬWZW Hn AAhI"01I\,'140O1&ʥ],Mkɘ70/06l'[B
?2DPՐMf<3zZe'
o^CDHד5U,ǠYDd>[͖5K.5jlp;*1ST>w|)֖vr3[;UpٳnX#ȣD~f~:ũ`S[g%wѼ۔2WfgO+J9i.u+dNٙ]+k*xxv	k:uz9&b֥/:C0C~T5X?HŽVAx?VY=м*6;ot7l(&gz8Xҩh쪖gb9X	oѦCpfiTnqKh{	&0e?ndݽmd,ت)`Nh%&
gQ	*S}d]{Zo!L}!kDV,֫KzՅ@0c֠[|uYKgW2Et!lȮC:pW0SmwYù"]
9>~ _]yBwItHHG	v[5-$39:G>/d<?}&Oj;DXKoB:0Q%8Sqe8a:U4-d<c~T*6
1/~nqlbWhaN5#^&_U~,g]+X۪фaEyS4n<7f϶a_ƶ|)闱\@3y\Ŧ~K˭,jsJ2b;!,^F&>]UJUeGfiF|8L+[㥑@-446iD`R? n)UsX .<G,Ť@L71PkfnVW+/8k_,&&`z9̬Su1{aֆ۲pT,P,TN{>S׍\Fpp6.̍VA_wJaI؍
_	̱
N\WmpypccTl?;η%߰^/h]7N%]QfTl|gqSށOrDtQJ\^R<ǎh<v	f!!#yYSXjkazbXیdJ1aۗJ֬>"VH8,W>8Er|ӣ9JEcbwQ7y|*ɴh^%322(dh~W|qrT0AAi)oH>z
kP+kGrpWlv9=ރ]yaS=⻹Bxw*!D^G ;5jYIxCrgnpc0vq{XrO}\D*\g5؝:ΡN9ː;?.nGsᗍ2*qPр-~pyV
Mcw*Hrh_ 0)@-}kben1ےd0p*#O[TԧKQĔMr<9"Ox{=*b/߀XR<ůYF	P2>SJ>˰;s^<|S#A.Ca\a&ϒSp6wqSP!|asĢim	S"E~u6=o_n)\XE)4jDDhҩv
.[j4/GVR
}6	NGp4"F%ބܰKb$0%$}6υWa:-nVxi+Wܺ(9k5zMjfƿ
t|0ym>(HN6aNpn^Xb?;ƶgV%i85?=0뮃b*6A΍DcsD
:	<H4aȵƕ)rz&Zid:o&V0B^VNCnhjrzHuLcO븶m5t0J;.e_)R^oau␢	;!Nw5 wz
\'\۝:q}'mtk%+b4(N=bţvd Qg:Y2UII;zi f<z8ۉ6?>R`v6Zy<2RFa9ykH`f8^nS$\%c$$N9,'\o@YGp1.y5{΃ҳ6+ĝu nNK/%g09|,8He|Iu^`bNTZo@`f6$)`vU倴`B$ ]GWS9s
ZͭfѧVǞ>ltSe4(xUfTns@[rjBh&[St'D<O..s3݄zɳˤͺ:@0>i61qF^Lil6"{1NЇY˥sTmF9=Dr[ N'QZEA"OV&T,\"xn	R>;)r2hrfd**O4jlGIh&eNnԚĐ,*U\%	wPvV!i3HG.d9	T75U̮XaL<J8dgK.AK࢝3 *9Ǥ|nD] [`[~aA '6~pd# {9uF%_H*";6'\[[T"T+ZB+'.h+#+2Uϕ	?W}#ς=cqQnhGֱi>Ҵ_AI<{ďJ-~٥Ar+熛xOѡM^+9Ϫ%(Hƨ;a#I!:U~$چtt4/vN4mbՉ3?><8iGLg;8Þ}#obz$x, '@!,3W5jaS^݅9gWم*yr܅BiLW6n<c<+ ë*ء/T5bt!sR1LRFDpo7js3/3#㾘Vb)))w-unEvEi9zTߦdmE~4ɶ#xu&ԫT`x$`K7ҵeI8Qc-+qZ!SRMKpC)0ݏ?cU-k,+$z(ˑ?,$ #9q?!e!
wh7I`&گpkk(֣!haFԠOe.Y@yKlگ8]]4CQc^P؋̳z l/xӖD;V-|GH<BbT7c޿2L[8oo[k9LZd=îo+85a.x;?]ׁYP
#Y:9%\V;% 4КV_Z&l4&z(j́计n2]HS<<Jƫ"*>^ÓYG'ǖv
_#846r!n'yf\07:m+WpB:;rj#{YC
5p^Y7"";vB <Ztp
dhv|_,ַvGZ~g9>&IÎ>u׋F:S'V6SOYӘOn甫_JxxL9;@|[	e҄^)י#J ?yrz9}酇n<v:ZFqTltuqC'%_7NGqp'^{Ӗ[ L=\YRUJ$LQ\,'nPE%J)ܩ
gn-A前Ng!,z`wk1</ X/%>Ns-84t^\ק'.py^I6#cr+(Q^SvwcAxBDǤb,z3N(|S.3xfP_rxFGHB9.ϋQEF3{:"®+ p$	FDw6Ѥ.Ϧ!'A'_5   "X%@*< _FدfAMz2~PH{$(#&~d/J%.	<v:ֻɱ,5-	OWw[G\;&̒Sp	r@mZ~tT"ᶰeh+_9Y}\!k!諉 NIxm,69:e!hmAGpL?r:֧i	px:sD9͉^/9_;JYtdIx8y|Lڿ̜9=L2I&B	bK $$rjlQDST-m JQK{ZRLL}<><1i$fY7ѻz6yTD uߡۦ ]'gMLcp10Nu}T()X/H[lo<J)5Ka.ߕv

p]խKT=/N/Êj\I~QNm[G=1ͳOzʻQ&}U)%:s`KN'9[9mpܘFU_ƿuVnw[UnWS,#t1
;HI4}i>uʂIs=H^{{I<+R[^)CGd{ڣؿN]ُnY\J=>X?[29YXVx6%KOJ;-9;%:5Jfi&Dp@\ci)Y)IY23z;f;71]67ݥ TOb#l+`7ff&KLNOJNM_n|T?(i$}W+WS|:ߨNR˸RM+%W&5-D|JIzh|},k$EeߴJ^Sbnqq	7-QiϕoZ:^:Y֋edlѥ)Mz^ƄkI?lrңJ1Q=Fzqn`v#׶z\l6w)mM헮g`
3tk7sff.]ԋ7v݈|0g9[gi`9붸c\'Α^Z}o:#Ct|$Lx`$z
i<|[=`cu c(O;WSAnSm!+Ѥ:KeG>AUӉ?0.6LzЍDE4V^N?GωTw|IruⓍdau5OMЏ'iC o
>PJ#LnK4hCzs!;Xp_y^LͩzJTGEPX"lCuI^VΊ_#Gs!6~f4|\
>۠$58^TM"?XSټn!Q hS9) /'&--RvCd]AB9|,]abˇ<n?O8⊀S |=E SuWȧaKDpğBO1Yrl8{ڸi{`.ó>jH:p4ݤ\˯Ǝi֮A$sBm'@U-/HXӍݸ+Lޜ9󂊽l|5O"h}	~ͅ4Qp.kPox<\\Շ[%?I'\ðvuǊJ+- B;cR! k11<cΐ^PծBÜC<.dՒ9+|W}_wdlP9E>:9	3܆Mpo|<$9
v+s]<獣&q(%p|&gͳ*x{Xy%#ϖsq
{o=sZ%U^ I1<f3a!<KTgCW tX]Km4om?1oߓv~4|	OxN>>}pǷtl`~ފt?CQ9o_,+|Gb	Cm	`ګ| iP˹whP^|ai,tiDV陦wmX]aeMKlrS@,2kM&#tm 6Ǵ7˄ƙ[.<2C5F#bb@ju*5Q:z34"L2oj
0mH PpG6whX6F()X;4)!gł«Sv	y aNM.ֺ%_LܸW&L8*,79sǄ8.[+(*g=5Vq0U9'\?| n
kE8𓰅Ǐ~9"nL>,LO xi/q{!ăb Wb;Ȫ]@^bOsf|9M!t_8sq&/LexCcN
XŢBh 
f^4yyS\|ॷD_XJpS-R1˙
e2	x]@{W?ŹE'wӧ?"*fԉ `˚&i+`v@ XM'o'ieZL q *Uܮ~{*mR&xh]%г+lB*t?7,jH^o*ZVx]ZArְ9Vb7Q_m 1z=S켝%ª,ۯi<O_-a.++Tr55t#}"Π0:]grEL}U6|EB̎Aid$Ip@V0!5Lo>R]F5'/nh8SXK"~'I6ڤ `NR,'0!0uGJY:1Hl.FCwi3=<<#eAG'D%IV$=5B-}$_699"u/*TiJY9B^#FثiVɑCNtYEdUC$X6@<x%ޞ/RrI-%#ߖn*XRCElÓk_/375bmvtFvk&]aT..!2V̸$S^sOj25$ث|Ô(y䓐[aZOy*x5N>5C#9=a˥Ap72\e#F._Rp&xSb`Xjs̄(RU4i\ɓrJ~l<In-Alc8G%y4z%;i*D	D8N
VW-8N%(:b yT9 w۪>E,
O-rdB];ݧvt{4hNUhK0/Lj<2$<%K=`Z@Ge0AE_E14i.װphCX9s2eW)#!# uEqN-R(Tde׉Q epA}AFTyVX O$ 3OAÂr"~5InK#]OKX+Μ,1`|`+.?'.4ȃ8y̮d⵲>Y+?]/nw	\vbjFn_v[	ɟmc"ݶ#˫	2-lQksUA_$#rXno=d#qL?8= `A\pb	QOSL6#q}f<dQ@ )NbWg}ݩD;hn`rαTSRi ԅI$KNiMLȱr Tk04or8`0u$dA2hK)]Vx%4.]XQ}3'\$tخduրŷc.+\`StjVG9CKr~G=Tv꬗G1[mɺ	'^|ɀwpHW/V$
c	p{0{${=h2sm+EW>EydUR6\9uVVQMU!XX\Y`t8m\RCb!ڲ9.߈cc%%D[@c_jŇVJ[IXv97^}c#ślX!noxL4+~D9-Ë'D?b[:ҥF+ýhؽkc4 E!l*[,ۯrITcOd*~`?GpnYV={5-0d0+eP8՟-eu4U}@1f+$,fc[uD2lZƖ5OՅyĦ ;7o_)*:N$Q{'BJzfVvߔa!Ҝ	*-/ztbh9zb@,؋ eg^1ʞ?nFQ޸qsa>^lЀvҾJX&4*)Y%q`.a+ `vj|cأMQ[.jM`c5)*S];%/<맾aD6x6KnLvt,Pr_dUTⅦubUWw~ڊ`lucLZ9uKu!X38}P2j}ncgUϪEoU/WS5'=Sg_FiD[ iG	8qQ3"KlC<P#4OE)W1|68?XP^JvNkVBph&Yb/AJ1GTߣ%PѧZ
pȫ5[6J4ۚ:s[Cj/[ak̃W.L3X0g(i)x}	|To[gLd I2	#YLpɐ0eȂP~.[	Ǫleڱjڪ_U+gwpU{{3f	?~{vϽswʶ=Ҩj}q}77J]%m{|}~ˊ!w4KmosX>at54,\cYtMrk&[&LϮݞ^[*+&	b.E;IJ+aji\a
SZd>B{1]303Ŀ<qp9zXjoB3lCm8q{l3bZF	?S-_K3'SibgiVїMhښ]Zbm"o\l)*-)))5WfO747:9ZkkqUۛ-l[YKR~*b2F,sx|}d&^cX?G-.wx5E,ТoN@3ŉwtqtYX_fK:?ˉw扺<5Qe|z;Jď
ĿZ6x	7̐Ҧ//I./]+=xf[VXę
"GLkN_2[+%[Wŉ/kնlНoh\.|ȒSWJKEMFJI״\f`h%_6^K)&.%}ד(C+*k%ovZlV{U>o[82 MW&/N-NLKs%jq;0q۬K]v[x+UvKX%iF@ PfV[mYKAe}COdOSKZW-dk~tq#qaE4s~/k|8N*HP9O[xƅ*7b#
(wo'IJEجFS4)g:ET>K֦sLϒI@V8&qFFWt\E	kH'*JļYʬ-⎡ Mw4bd+ BQUKb0a	{g׾ .Jd[lŶZ8X*u6+7ˤJKI/vv\[6[6. W:CetZZѐuŶV[.ak7!\bmr/E"Z](`J˜!VyQ165\5-HjY\ eFΟĎY^/V?"\2#p4s9iRdf+52]! 0HyI|l\(bWz@04oo#M4;ĝe3p!sYS&NOͮPCbd%2،<hiƋ	C܂bBD<5VsVWki'BZ76b-ora$np0d
ޤ@v{M<7%1[)SY}45-H'g
8?siԵlMHHlő p T/(İO8{b~ ر;f$?ɼꨙ[V[*O$jsu6]c1AZtݚFHEa:qD.p~cKn"e:JL*Q{?҉nuBMXkZz֜ZuD.T d1rP{߽#qԱ814qLyK'Kq/刯ϕޯ|ق#FsHksW+Qe3.*T|aT{E13<E\2=	NLz8%=c%av T"PcVX%մZEq*/KpU<M:Nu/ĉV:_".SEؾ"7`.4ȰAV'GËOGdf]yAY6UA	93s<OҊz]u[]oS6$'ZUזVP|o&
bz3=cEҊIS4DSPX^*nwV	@jmȉ-Zk5RRsHʖ|!(~
9+
"\c`yݩ4.DD~B<QiKa#XGs=T`"5.ܰ7z)vnnk-t4YJc;#\PKh%\T>!n`c+?z"*ihM״4c/̚A:b;E!6&q%MkטğbjhsѺ{yD.|7ǬIL	7NIf]d%!،]- UO5ﴁzzkKcx98|v12~MsM-d{&;kjoީ8PD"1.۳3l1ԏ,JoDi
Jd5[lMXlt9[QƔ,䩱0!)C誶ۛQUMdhMHVho c3ůçX1w)$>Oܛ[l5F
XdJZlE6ER&ֆi)|nDq7RO"^} 9tdP\LHpT}wJdQx΃ٟZcj]cFddbg&spݥĀ@5dcVbfaBisΎ3^QTT$&J⋿jl44[CVRě%!{RL;
Ž%9@_'𥉉:qEFk+
eSmK6[)&X#ڊJi)a$-.*U`,tq.Ebzrˌ Ȑg`TH#d
j~[KMЭBX0iQ8.d8Ɋ5X띮 C ٸ6'f	AǾUxxG<23.!*릉~i7{\%U1sƉҵ3P,[	8pݯ8kxG4R	iF[l-l!<mlfCx7:gҫĒicHTipMVš"j|N[k+1iT,yNio7M
24ث[oinsȾ^\	).bĶ6'$Vk|D[fyF6C1	朜p<pƕ֖QQTA0jr ވg &,bШBZdxt`0p)fujlhKQGЈ?<+s5DƲ`?aH
S}R(TR4|tp+SO]|F>jFd{.D&1@]Gާ_q%wrx-B&c+}@2&D*4'aZms7VoFti(poO+CPd2)j^̆"dXES(&TVmq(~~slxǐ{_I-zK8l	42^/AqފWleR!yC83SEyDkcSo$
MXQ=nm8֐ŏ(^!hKeCX.A\X8+e5-#Ég2{ڌF!t"pYCS'VHa8
y0i">\!.&L/j3"qk%v>
2w	ԑ5hHU`3G`zN	)A˶@h"w]FG^de+36ՅEWD޲,R6K4V[tb.$.xьͨR=R^%q-EgiX
If柉OJcn3	z4~4T$JF28Ldq?jq5Y*ҼcLxr2"X!bF))#2H,b?@SD3s{K8:bEcymXXzmTxUzvLcvF zm54krskER^[uiRSشL+WhRiX*(3N3@&=+4S_RФnK~ 4(4lK).GcѨR(YafXZWZ=~zt#x5J+V913e;4SwDM"ߥI;np.<3L4qG4S]d.FygǙsaa&?1MfiR&k5
ޘ	M$&	PK/h2EĦ9IJ9MyMMQQǲ
FMÚ{2PƘ0Z#e#@#t1GOAϛzֿU g4K8mSph	ʨ
2.::I'o/RT>Λ(өB&<iZ8TksHthd*l(VQ9~g9#o	,M㤆)T:lEav+_3`كs)5Rk<A"T:FgB7O!rLYT!k8XyǄ8 skBS2iFTk ^quT8K%O1SwpbiBi/	y(sПb]5NXpu[J*Ҡb*o(nOQA*Jx3MB̪8`WRص i3<:wG%[IߝNB'.YpD	WbƯo5/BiQn@M&IS"[k`WrK֖,nL'n6TWb9sLQ:bL'Q!h TP~u xmoOHcC=E)d@<*<O|n7%z2ظ )iFeeŞxM`T`P6F>[!I;(a,IM+7?Nkұ^q lC
J]hPI2bBH	! UIz!"ԛgKpC%gc{cc[+r^oy;)Bi˩KQǝ3TCˑJ^D-ބ^|hn4]V)<x- R݄ۣxG<_u4Ծ 58V=`:=?Kʦ#*^.GOǘldmX%lnyQWE]65n[K%Ot^Tg39iWt.wҟgn/^z"Mφg{	">OS/6*rI7Ɯ<iz⢧ZC'S!Fc	cLc|$J(}Z[Q	Mt
{J2D3G4ko=2ѭ	xZ&8p  r	#48x=wazUȦN'D[	S60V,ݴ$<D>4"{QF.50ԿQY/ifs}]A*s۫y^PkC%Mi{Jt9^ K;!cѱIXʔg+Juשd~jt^dLWD#fϙ*	_VJs8a7EMJh	ND׋'7M\Ls=AO ʝEO
f>V'h9,྇IBho#<t0K8\F9>P7-2ʜ.55y_"exmj5܋\{m{]TccmX"ApWTPMIK!ڬt6<ATPǛ%u=5.<"&8)yM*+`JdE蜰uT`x+@<c0#Fo	~Ĵ6X"2h:k1K+zΡe_wTd>|4qjҺS^ri0I5kLP1V2g#TQ!:#*K	Xk)1u/?а2f_;XW5IΥ(3$L! 0xtΐ>&R#Q+k,}en:\aQXFZ!mj`}2QN>AЊKIa8ZcHM6~jJ')nM=u|8
Kniuқ<'^Lc2Ph2nm~d1%G%{`_UFȊ^"	Xg
YzeB.0+w;*v^E`轢Dob$.Lĳ(k<c,`cIHt,8OZ8_(
eRdͳWGf9|qµUsxEYxe%&4 @8	_p4L%Kbn
츱!Y=-'@^}˽Tn(LK1e*uU
;elC=@zϳI<d%{!XXI VT1VT!X|!#YK0͈Ak
fbD4aZքJPuT٤>Y&>>ޗ(U3vhXQِh1Yʼ=NO<np-d&Ck'wݽC~eϸO7=G3ͶvJMډ`R}˜}/Y;>^kx/Oo!Wߪ,ȿwY%0#|_{ai,Ku,?T<qٺUgڃA$e*cz-OJp13К>6}.]0h/T4bv!yPyA<*K'R!k	ىNPF+cNR,Zs]li.J-MO1jooԧB-k
 0̀IBp(312]rDf06툦I5XYr5n{6uiPՇ(򨐒H^m_*';4cu(3==}pkʇ#& A=vRlkd#	
ø0ްsPEL@_D8z/o`r 1GMv(3fCu	JܽDz%'5O/}KmybM=P~*S겢%Y7,VQw`,=7P4̱#I9RzlH+iȲxq%&&\[]}Vab(J|ׅ9=(B@z<+Q.2Cg(:xv}Dy2"
Q注08Kn:AVGZ6fE3F\xEI{XwdŗiQp2~.q)Jwed6IƯ2eб]MEga}ͻ*aיEBPbe;X^C|P5pw"y=
p|nt2(bψ
PA)ٽiviYamӵz`U4)=FJֻt&SxieAN;erf2E>#TaQ({Mb5Ha嗎EA3L]y`X
ٷ.w0X=4e?\x
ytjFQ			bMnaXy$-,q DO!d.ed,N0PnH6,ټ`]L9fV6ƴaX%C_3s4&aeۙ\&dHg.F͊	et~W$cBm|hץiCXfz	,/٪HoHpaFiD%g(f
>Z3$^&[N_ k!m8ǅǴaGeȐ_K3z?cZ߰g46hެE;)S$1:081gu`c2;K"Fg簶	:t^aY~a[LQʥE!D-ܤWw01Pbjo80¥ YF3b,]p WIQ2T$5bZ\~Q]mVWMq $-
lE@҄%`dynx
qE&)T%aŔNmc-Uji%#Ls]Y\Y	VȢȵLA	K\Bz*xNHDNKYd&U%@tts.ӕ/0YWfZ#DI|煍B	LI\a	h'8p1_Ȇ7hrm<l<2;]1=a]&Qr38Ș퐃LSHnʑTAX}_%)K
5L
Cv[V)
\o+ѰS6 e0
R}?k<5$'	=
z=Nӏ̢
z3=]\^̍i_2mZ%"p=Tn|ngS'OxLh&W%lt`tF)3Tnd0L΅+dcȶUo
7-2a0,\Ml.Y<Ϥ/0W2J [%((^&ϒ\J8o2Sy\ޥ.7-j&W&4/@/=ЯADfN3Y$?˥
'$3XaTvwLJf<H!cPr2$1?aD_s7}|aBVk_3&o/!Vm|AG&7tlu:6NH#(.2O٩ =j#/_C^_P"*ؙ1-eߝzȟLc-jU1-ae]u{\>1ʲ>])6BD{g51zְj>a+SzUeI*IDquqe^in/
Gf%MXȄfBfQ!$vIj7mgX/e$6[UCKYqǻ؉OvvY\u&-g?"d
6Ce/#i5XWU]}T[ުIsWf
cU}K#EFt5+$b#/!d`/h԰`}*Rm\<u}95f,ԉ!%kշkQL_\H?]N!e6K4C>oWBao#*f;^P/;$!;YJ{wu۫.6Y
:w/<lT`|F2>[ms7&V=x+b*7Qx\1o]QCoF>(ߨPIKl(ӢdHZæ"ʨqzQ4z6<M&Kk[|vT<22ڐ$Qlt'LBX ]Nʉd%(ǇlL&F&iy$s>k	0}>F8=K#%jdXF ynG61:x 58RgP(;@+]ͻ]49d#?TOAf{M=sI'Bv*Ze2_e5jle&rI,3w8uۻ=#idmMs.o֎ц!s)/G<,,|-Sqn~0e
}iB(\d+A#f;jbc`K[S4BX4Zn̱(V
Z5«銬G^Ej"K*OMFV7G}2sTCfD.nk`gaab*=5 l`
΢fuO27$eiw5oD\rPʹPr[Qsk-ĘoukZRtOeӰ"H*M*1В,u^KaKY1`Bɑa`{6sc@ 
'<(.^J#YPAX{xv5F[5jBZ!dn]0/)
 VxXE	f
O.̏էpW)1Nk01Ti;t`gX=W6yNmweu|$/_lxĖ\|g<T(zˎ[AѦJ%?.5w)=
:O?b(;{9$܎ϵ)(eYG&Rd6+(NWzRv䜧+dJ%_Z˖|@m3&Wrr'o̊`$FOGQR܍c#cIUQ V%`հ0[\ȹlzn{Ɏ |_eNZaMC=`$-5dVk=}=^-Q4cyXlua.q'J1KgO
J;Bp6^@ŁezÌJ!'+!?:YpF'q3fy{^7j} 1:]3t7+=c,P@oQau)Δ>0cOmxK}oв6^|#vYW~ώK'N).gDnA5\@~z9y:NYg?{Ck1xO.h Iq}͝=ЌlA?:NrX^:5ޙLrRfLS3+M$Eȓ2a܏YO>GeE!z
P`n&_ Gz@;[o;9IS?\1<YTO:l69oໃI?{?JĐ|\~-|6Ocm@ioZo09k$zi^Oz;egLѿ^fs`x @?l I^赍e꿱<YЅg']uv)ռNV9ǨPu֡?==ޮs[r}[RQ'OdMOYʆܧ^P{d{ @J3~ŤXz>~c	<y8_F@a3וց5t4S,HR B%IPFMaBkѰ⢹e.I4ⷷ[[tPho(KdRyOD	atCI:u,qT>wŴq>5	3T%6GDXw:p[sE߮?+;5YaT6L0pV_={XXGSU o=+XUmMud!8\OM[~qVZOMU;
sN7@64:zLm٨yX"ÑK28pYL7D"z:S<F<4]{	McvHo256̒ԱHZYV<:Ⱑ.A(,Ɲe5d4EpDNn0,GqW`FA Y:3vc bG*'MֳY*Gi#`8м+	B
|P\zޢښX
l] U!~N->\|b	N="U={ZXoOanl_r<XM\
I0}wFSu1e܂KK'r>ppET&4z~wB9Az8!zhBaʞh=LxN%I?G矟.}82W'b;Ak\3:	wv'w~OUMq$pt64[,]K<#|olYgod[t=p_߽߽؅둻<5},u9;夡A88]%6Vz==pƐt{{=ҭA%u[Kv3<7tlQo_s98k=݋]ogmg=}+=s*#?26R%x^~P9{jp}\3qPolk	XyrK8aX-i5QU{W(ҋϓtw-W<e	-³ʓ NF8`(	-؅yZo't6#+$uXZr'X*G
sXP(Gs(9̔vR2yty`)3Ë90H.3txfã&Lgn`}L9Pt\8ʎӓk+eZ>Y	{IatJ˵΀X2}L(/g(4"B& `bPOc&{(צ	Ikp=  o>=va]Cm{fg0LJe<8X:Ⱦ0^Y"kZ̓E:`sN.lAdHy!4ůEiV-MDՍ 8(yx\)/M׹ݝHHo'\=+UNR>fǇSf,;F~Uِ&v`x.#cl`qPuXrFI'6cI1e>5W?v?HM޹)B~qI&HG^4}MB*}M	>KƳ҆RtVV*F!E.B+L)/#tvַդk7ΔgN的,3++\"xZ8F!Bj@YHg' )Iq n@.@026zw66
\Vl0l!E̔85T:(A^Q0/sL9LYY` JPti6R5B9Ȅ">	BIb*Ziv_ (#,4'kf,jnY }%S0VʚfӃYҎ:klfT7a@Fda1&.jҙ`N2UȇEB';+<*dު)?UM[결p.kgP2awy*U(˯`Iq<\b,MVFdƐ=|88YSL? xAK 3右FXlxrs;|$v.se7>;ً~ c>XK_9d§0)h`e|J}oҞF%^)I;HHD
ͯ|.[-A$>x4Q'([4B7KjaQ(MYg0bcp#|9>}9pn4Ͱe7
Ew\JS_e:ow`i\<[Bq. ?F(p<BNͥ׳Ҏ#n~2 #ͨyGzL:Q gvon>n?bsw{]Ao1Qo}xhχQ/y>vpv#[yMjg}]V~ź('[q-OM]ľވ]sޤ4{fns&h0c+oaeNA.ز&1qmE͕m9R^-_=0nہ,.g+JO5b$] 4؉8O؉Kw@owC`?UWTkMj-ZSbRTZkߣX*cJŀ2b[[z
v24d]4Lezkktc "AOFa/Clჼӈ}@DsIWIgϬ6LROr/p?d3qbgwzeS@9Z{Z3d3ht{KN,F<B6j*t7h&m(Dn>j^|(J2cSGPt<@>hȳ.!{j!ۄ~e𵻻^C+kM©,yY.akx8i ɄZGCbKve -BC*r=<vD:sDS
9бMZ7#ݭOʗ~<_!_p(Y[P{ʇ<ѐ[Ap]:b(Mq*!ƗuQlM7㔭!,&\M{o/Sp^Hewr[`YtI@()
[C0'fI|jPp`48X+aբyn-C7І7)UȀnw#CY6M>U:	$?LQaTGUjbH=tB TR 'iicq~sƬ'Ly)d
8WjIõO%W54[GX猳Te]0ZԶ !-Tx$^!$Z9v*xGq
cLu|]q\KcV`F	8T3)T}m\j슐Xm)e|b/G?ϥs¿SJ-3lA^ת#JQdg߲{\7/^>Wtt˗Kp.N یV$rϣ9|^XZķ]-vxK"wkW$:R#KyF.m­r#rDJ#.Tۮ.ϲhٿJu-Fw'/kckEg\mL >P;Kn>va*q6cc/,׹=̉&W;j9WXYu9W<g+qJK&9?_P}\ܱ a!1Ժ+m!>b0.NEywfAl^dKm%pemaR	o\ސ5\ݢQXj*ߚAWpw.ڧ˹\K+yFcSykz/W	6:iK^.d>iB^OjqZ4BiNnb-T^o{{ժg/7rFW߲^π0Hg'7=޾S{_sFqWKZb*ʍu7ҿTޛTۮodр1fWtIeMqv(>JAo]IqTi/9wz{q/T%g>\xT@\%g,P1Q	{fڇ}4v#T+Vd߾cKws4O'z:O'}膅`IKۭ/T׏Oi)0|^\86ajk?u8%c81)>ΘvyV@_s*o#r)igT{3ڥ6zp	Ř`eW3rUyuI^邤R!GX䈤	'=Nm5Xj``2S+Rౠ9ygEpV&pI+aPJ.FzܮeCUɱ?r=ӞW_[]9vXU?_nlT_jFR\{gf'Sn{_PQp>w;!7jrIc	rI09>h7/w:éx>w'\|W]\'xYqmy՚4^@g@9~!r%ϫV	pϧEYv=NwJ=sEuY	~1wv\I͵x?3@m=ߑ0UlSYG	gpHM7>w`g{J)#AңLZScs:QLxφf#xKoMjg?@,Y߭9m[Bc	>OPyi62«-s8eh86W τ_ܿkő3e)?0_ zs>_e]sa&W=7>~yWSۇw=wdaHT%B/xiOzȆ8om&Obl8^\v~R{W}Q_Q'@£Gv+[]l^"](Eo$O_dxiϩ)q'gGv}2Ou}w&d{<+/had?ڡ
=xɃi)A#XN/wyvvxר_~ϷaN
Os<}}e
 3^I}!|GL;o#R>?K/>K#|ޠ~\8`K(ڹ%~h+BuvB<?i	3zhЮA6Td:^3fj/.FsU&
_	ڗ̈́ɯTdg3C=ҘȜ&B߿oժ?[^$?ZKh5t]kP
ҟ\ETROk͓>F8ER+xť^)fGo/&rB.MF#//=3dlAauPF:R-.EB({Xz=e)I	)zKc6QZYEYIiAۏi&L~vLſrADAuwW7Bw/ww[(*RAo(%Sg
j62^f
RJs[گ9@S]yFj]g۪;S"J)}
E#Ǡ
17J3;.Ms![Phaq!r'm3̨An2&أt8KDRq~
l(u\ ms[ >χ#Et\d=\gg{]Рt7$~MIשׂQþ,Q;0aR`u)}AV/Rʄo^TSzl [<|V]ڱ!8}k_(u!M#I
̥g]*Í[˰-}W5xzW@޷$nhw&ɜJ76I,߉;QsNjS32^<ǁK:^:Nou5U?'/Sʛ4᠖$=M;As:AOw3QeipzrWn
;U`0p;-GޥsrB+x4K6$Gn!:
#U>phF
Y#ZuX}S1$`alPARlwxa }ilX^tÍl.p[@2%]q!tg+51B۳X34J »$|. 7ED?!ɬL	4]sYֽ+HwTk2?	|A٬9G.x>$cNrMTލ="hn׬쩡ieAQ
QVH\G޾PŁfJ`+1 @i'*0/3Joz,F0|u匂BϼfȟQ:-:^ʰfSDC| 	_w7$᏿HdA,t*U	ͧSϭ>K@7 V/l9T;PKrc4dxpts4RgIgs)SN9u͇zNA'aY'>ԉ|M2-6'^qXlM6Wk36-̷/O؛w/-I{H@fBnBD&Xݜ9auX-WsRd$}$y}{BK Ybm_i73Ȍb;Q0o9bD sr҆_䲒,r
rWm-FJCvR(!#N
K`X)Lőa6u8Ztv6Ldq,ԉ{)8\h$6ǽI^EQ<6sk"p`T<Y)Ê#וtR6S(vqtׯr:WꪾpK7GeB6	pp A\du̷4 C㌁,IBv4`	Eh`v	<L
̈́h}8' YD/*$HW:uW%+IB&bp]`}U_P,x] Ȝ-DOrCxwF.IjJ9ȗ!%}pB:2x=O#p
f.lq,J:*ьnMc<ҭOR&Rrt{MNh}sFWXzvUڗb!߱X.]&]<
\&$TԦ9~	| lfII9\8<J/&I!ǟD<CU+36"CӯW=Xx`lPp2z;7Uv6o@JRG7ҵQqZ0컝˂y[`x]s9Fz]`^J᳆k1r5zmȝlM½3YZjuZlr\b% lVg"j6v[Hgi7	_S5<&K1ǖ7R(4l\b;uT
|L	0mm{`kY\:Pׇm}=<ؠˍ_Oxm6mf!V\g$)&ȭ֧@;T>2 uS9KiRie_qf\1HE(PGrF
dׁtˆCb#sBnuq"qZH1Cþ4	/EZ{,ި4~f!?f	ibxDJ;ZCD(1`[ExPvdhDaCSp*\^ջIG*V|5A	y&{q!!~{;zޟ`Py,<xa/|XQշam]	sZtCjoRN	ԡa?fp9BŨCݞvqcR jjI_`ki5mMBW,S,7M1倝XIU(cvd޶5m7,cY0s  tZPg+hZ!D>ŕSjX[r{N4>!8D/gn:S:#R<n8gDWӢS::lJ3Fg|j4t}6OҝCBBsGWZb$3J{1	t!`Ky(|)υ5}ޮ@
|ߠ
A^">^_d
?zoNlDa$#e}FP0(ѹe:'pۨ?֌F3wƖdK~?dpb'$˲㨱-[4b+dNH8.n$e
%)-Bu%$?JviҤno{i%=~c`Z	5Z
>p|WoDyLXB_Lf֨/	^*$OpO=5|U	+?vInr[j,Q,QY#̖6ny/T_"c*xIɹ$W[y?Y%;E<6ŉ?#x%p k;Lo3W/V0mixAa|8i:td)ΓǱxeرHoBO5S Z7jd,EkEcsa
KNx{=r.V sp#Y|ӊ8\w>5͖#;<l	|#8߳!J)'nmH趁ڽbȲqnx[wJPWjE]7W,F}Q 8*``=LJQXJI/1LJsgR[KфU$Lz<×KŴ(4	iQ%h/rhFfK>@Ygr r.RlH!'M_D1v䛹]xV^ANܾԤ_#JqUۋPm1*Y7BXD.aaq\
ZZN~."K$_FZ&MgAYk)VY\4J2^FҿcRq`+!0KGY+q<qw"1+Gn_`lgJГ1B~5YG
*VYy
-|XN1cljDp8Nˢu^8xOh㿵:U6rLbI,).zc}/0>\;r{b4D9:#Eo5k.?T6[tH,uI:Pipuj@Ǹt/n,H_>n!/2[曤䖱z5Gr}{XT~rX$ "i52$%M|Fᵕt§uĹ:Èi0~+"V`gmK"mE)Udz@,<41WIVi'-'^_!ҋ"w2/sNl}~-KbgXmBQC (Yaj-!_:~:H.2!s|73rs-<U
6+e5$5\W,]lpˇ%+$6R{s%P"P"$#L6/%lGy&0$ `P6O9?'Nvj/cha<;DӶN+(	Ua0Οߖ[Lpk_3Q:Z!aD`-H(uLB+!"UXT4xptZtƠ,^)/%%\.߄3"<k%kHb`{) |cLȃwf'o W{i<n)fopK[XGctjsbev/Ĉ,-¹Q)_~k>%UW8([9	a]F#u%KJjNCMMOdxk~m`9)1mf3k-xif֯x5Xv)-¶Fٶf9}sL$I;d"]H>i_R/'f)mjve
I2=Sx}WYv
\^'Q-ZpY\*O_=~L>іp|M>b})Gb`r,2S_i9+TD_{<X2Z/p]2*ȝ{]0.ooE8xq;v}(c3D8mL&{@fߖ
ee],.YG3*׶}-s'+AEx}Tn/n!'>OhK[!ZaT}i#[QJW"YYyϽ_dxg~y!&BunіpG|) .xG<띳;.Qf.3^%OцTY$dTX$n̨7Y'u]ލPhL!4_)vն*1S?)J"kKbᑾ=_)/)3GguTۇ6O_);#(x<qmt6Ќ]7Pzݭ%aj/0F?[0hH#%P(J$}CqQY8ngOW%ǙE7
b[bq7V7?pbW7
^rxkxe*3
XbHhLG`׳r|=u(wrbqOV!{ZWɧge/Ub|/xYkјV~bd$0:>47^d[|V?@H
wgm$)xآ9[^']g/G:[Hܜe+ N2"o^'B[sYRj	ᴐN:q&I!5w?r _?:{ˬ'IHߌB& }T\v8^OgO<-|$תE.];#Ñ?ΦI[խGᑈp5Ti&z0~ԚG9Bi˲/LS?igeȼ>iN,/]\%ea$6;f	ǏG?%%:xd
T61u5S'q%K|%včRI90?)s@A*9}:v^QO	%C%sƾmY m,YZ(เ*xrD*Jr36mf:i(.S)	Bh9*Or~(ԌMyD+9
:fk._,֘1UพazِГ?*`0`#y)r'!)f7g^5.f7t\|[L?E
gS?$dLwjT<$ Ȟ#^(9`"Jt??Xd'^ft5F.8֑̋'} L-yT6zHȁbIӲXg5ttȊu|2du56tQG_3hoʨLd~EqX{*hF p=u׹zqٹ'N+-OF5G{nRFH̓S  9<\lvzGZّRCu2O	X=AZSSG=VFF#rgY@IF6#' xRevG஖FDÁ"i#8t=5P8SڢQ68Q(y`|	q$'mlz-,g}̤r],lL^iq]YnZ),^/rt4}ƍRW'αP|_JUl$/F!Du{io5]`	K%-`9o_@mZ	Jqr5҈,dW$p}T项7"&Yϧ[O$^
wwjLYwgX%kub}xBC2ĖԂdhvtrMEpnSt](tip퐓g
^xc!)HT$-.J-p1f;q>YZ$xQh7s\m^<iF<up+PV7+%nJ-uU-EɯCvjӤ'vRl噔 \ٺҦ$G~cuMNBԢ?8v SF4GSWQY][p-/9e@ps6%صDV{B(tRJ켷-d=px-MdD" Cxƅ-aW(?H|jDA<;Q%yW6{_\%I2P֖ص~ıG0\ٍof+2KhDtYd=qPwm9RD1
:Ǭ"}qf	c
X9G	8d#ԁez8rL`ٰǢ5ǘ<b4g}VXHA&+]n꺿2e0`z[6#͚CO1yc¦4dڌ{#)Tg_tt)^JkhZCkdy*Gr0Lli2\wYoKZ"#;Ru"'(%X)$-Ƶ;"Tow5Y/-p.JY1' |i%$CDL<:Q&C*3HTzhLV u"ca6,~G^<B	ThJF5p#r"6no[YSN.b\LBIRH1ё\l[ +SrM$q`WuJ2թ	mzZXBF|/:0썫J.5J^@nGD#=SV$<+l2/ pv:@NTd!
BT2"x&iCWeH*g#:tªD99joSNqH䀡B/D*p`d{Ɂ?%TNDȝ%Zʩ,YnpY,Q7*P\S-Tg-luT~UA2klm6Z<"r0xB+S#[Vy¾òc,|+Q
c?T  1 jHr 85.Ԍ(MEwzxu|aIy;GbX`fCl,im}o+N[ܕgɽ0q7B8 rʅwv#	 Ay,'
Ie 0ƨ .P#2,,cln^zYq6V6m6BTs<<7H84Ǚ9twV(-~*jA`JyOA]wF 8B*F|8~&e3}F=`$dlΆ]cymN!y"ړS7bK}TLO>&&>rDG]qz$*T]S|_!h.< Τw	.Npߺp%Dҹ/#.y7,T^_{dZ[~zB?^Bə$#5څb>Les^Yԥsݥ6W~D}=nOJ$5J?|e$t|]q%u9`bRz]sW7Pp߮0-CK?ך3PCп1jx |?_Q^lWP:]AN>hxLhz£|rQ#E5(Wn>Gc^RPckWe5MS8q3@W4-bE#G7W
"#XWij2dNS@ƿ.v3'qI^]5*U@5hY|;i䰹/>h8KH&;O0^_uR ltʹY!ea<}93{]MFJsX-*]xK\)^[SBLv{=d]2Unmb˖2~?gK!C/X!pX'벥A+)Ptub0>>N@g}pby
}$89]7}r=!FZ6ԢJ	Կn{BnW<ޯYCK]oJ FroIvzd.^NBueA.5K6haicZ
uv5³WQzK5i!Yc)+G5ZrN'iÔS,|(SCkeUYUYoJĦk<5 6BlKr;"b+8S,ُ^$6G9zBpt*n9
C*<xSpoYv>wrMl.rF:F;JOZ6{+7ԭ!&09,Uy߰wtw+4Ԟ,u"=}χUk''͗ʯ=koj=:8橁E2Ejw-̢\O"l_̄ 3$&hI'U wC8'JR(!U.fLo@MƎùLje㌏P[q6I>$8DJcڿza!k4pyO3&Ld'`[G4&^e=>\ރalZFGqh8bkff^-9gZp1&[\&,ɓ6+āp܄[GvM<͸' 'pkš.ej3aKTeKbQְx[&?J!.<-씍oIEd-&G!<s-g*Fq=+"$X/hQƴ(kgH1~O#˲A=
]&fPnd`c  & ҼB=ۀǝ|IN9~MS"gYB	ܾRf
%Cg|3 EYO*G3aI)r*BəSw[
R}UENC&cԃd^3vhHȑi'[FzCXx8	,!q3R.֦MWxuv4	Qm*Q8t	swvP~Pd 'M5b"MEH˹2;+qkPGzRVdԡw]qp[YfGC\"9IM!a6kF#mYrCy?9{*(in]o;儓p^$Cu|X3	Re4/]Jlo4k5W/STLڥG]zQUuꘪKWMKu5૧%VoYuy*uCH2?X%%~Udyakx 6fcfc++?
xʺ(Cz&)?Er`SC.&NTjS!d`q&yj=s15ƾB,qv׌Vv{Z,o56WXh'eq@) xyEwy 7]muֆf#.0=/z(6y&65l'bdYD2Un%07Uqmf1a|3r=zzA%J]Q.Tq7asSIWjs[Gg 4$E2Fθrʫ޽s{iZ1{D0Uf$#fLnol={/6{¡oŒ>ktLl	_&UX&xɠoj`*5LQְ)c;[MCKbiZ}cրJom°ޖf]y	mS1<76TO.UЊO[+G6,f$5lC{V?	lf$3kjRVF[hr3}%ʷH<SQZbLMFyo9h4w	F#a<w%X#wP&-F%[n]E˭
gi}Sv2)A{Lߠ[vGrWAV猐H7@
:I0I:_
S`sCكǈtx@Hxx$$D@<FI.˩2)]	6:$9ԠYٲ1 4eIqhU?9Ԯ{|)+τ{&ь|ETbD@G/qSC65&<}7HއEjϡcQ!ߦ)]tye+MGoH`~s˃²D)v:ܼD?SGAxzp%"BCSecZ77Ǒ5v?|qQ/g&b@l .lmߣ}6\u[JJ<P;X4o@Q~a|	O41!Oe ~ǒpb5w3lDI$!Q=?%01NI_m#oVͱ\Sujj]<7vctq)<	9IMM'q.*KoћtniG!T]v/MT;Ww*	a:I Z'u	/!pކd>[L)!`Dc2?'w[zx$KNNZo6 š_ '7gx9*L\X%p;=NKa+1Jʉm̠LOcQ{Ū%r{^}C6L枱޼Wtd)h-ᑞ{;2ԑ[x7|❼ڀf	łJq~X>jxDh	s%NrO_8e%_=GZ8xp~8zY5<!Uj?z#w |CRz?89އFS;.͖G.ST=*.au<ِ9}XbP/3ll	y4MI^Ffml7jJ8{GBRF9ŤF-*2nGljn-&-45@Dv>om6l6̥"xW[׈sn6՘K1M;sK+߼F
w<~dtt"<FůKy]c6@8]'3EAg?U"XifBڪl3ȎpLf_/&oiօxCdGdP%m&AJ M!VF:ϗoƟ*Ò iUCb48[6H7zw1dhZmiW*gjV,8_hQhRv*Oȁ~{44<ҧb_L	z@a5'z7PX,^4JxbyÜ61gދ*(8^16O,
cx(h	ǯY&Q X
*;y..O.;`ұV!*W`P`kSU^c5F"`b gM]dEݿ>%ZVm07;\Pk O4FmHK.Q%֦	8"eyWٴ_tj(6%.	$T'̶)'7l1i,}ɏn)FCQ%dҐnP$7᭹f-hpÃ>[!t"	q
}|r۰4`(kE!@4ҜH{LG/K-	UbUC
&I2ﵙWgɭJư~]]k%AvO^yiE1݁H|eM+-v/L=$G	x\[oI~PJ^f,I<3(/`&yj5Mazi8{.UE5`(H1ԩ\Tx*gb|u~y;>yXZO>yyh'4^:AR$N2>M6.w^3;qB(Z+?GKƟN?NVp&p*3DIy\:br++2o2b43LE$JRh]v31KRZzHg~ OE20Ɵ?zv-Lz9l?+90@</a<Mnp2@e簾Y,EnƇs+yfy+geakxGveI,^Vk/f!hM%$;cȻNǑ57q䧵TDT(~	^jEVxydx(~z+]u% bxrֈ=R#1N><g(+"OX<k? 瀲pE18Ō!&.ڙRHXpJJ' "_;oWy9蟚_ug^h>OWV/;mo..inVK)·Q$yEz6o움H,lt-N"`$U.6Uz7Ge_+E#cEx1dF)2410S`5VZZF
#}
yx u(ȸ,@I8D6B3=+RI~TOlnhWx*h$XcE	h3o8\GW7x	8Uxm:QN$ew8==cj.b,#s*	c3*`UK"ǁlʂ$ŭpz`E2ZUfECJ+'DJ;&!#oguFɲ$$JZ5܄ܦ޷H=mq}nL6eHfL >Mcj/p-R&.+*ni8!N:#	ܫ{
EI  \( C\3|h]uLq 1<$f/"i{Uqjͥ'JhʃZRL*M*Adbpj;!o5	I	ˊ Y6+"X8c!$S2|Db 3\/&	{c=73@\ao`lx]_j4wb5 a@Hi+\e(+<IUrh؁e+O%#3.Q!,cWq*U8F Dv\0'$A[b!l~R^}GwVovSP ,l=!)$"蔌
zQw^tFڊ;ʠF+X&kJ xU*wEA%:D7*CUЏ{閣K}E}ǻikyc>kcϡwuzW<r۶S	eDA>,`e

U挭[xlt杠UVq^==,3JA`FMwjmrY 1%ԠSr~nk^bUCU/w/&Iݱl))Š}Ir1"tTWz
HEV@iF	u@JqnPx~2g9Llߌx9{`5.Kȑ&=g>bCWjBr^~4ĭ!įHء(4kn0/N8?b~1e,ZqrQ _Jmtz"P$13oRKniĵ1bT:/[ǉ@sxR1t3H?Tx{{)}ug3F٢rhE]5}TZ	556u87R/k{W[vm#P`_r0Jjh=sXLAUfZ}C^UOl#-ӉWxTR.\vXh~@ʯ<։oAR<?'ꍁ8zTʚ(K,<UP(9wO0Kw"LjC^9-4v.w?:M+Tw*mH)7P| A9.6(Fwm6jU U?e&RD
 lmU܃Դn͕~[^8\B2gC;23#P<F.	Oq)iCu͍8j.-z G{RN>W5ȟDB)H<,k
?S+nӪ1}3(59?H@z.F2~T"wP8>,x%[@C$1r
	* ~q"$SXB~s@v$K3$8O)WWSMf7%+ _PwIԺ[nmp4ofM$@ux[KTPܦ#V	oCz6,7$ ]_6aQR]J@U#Tk ^F.QԅwU}jPU˧{P-jj]W Au]t.pgp6M'κL9m9xge)>
yYP+a`_U}l&~ʇHi3O;L까Kw橓9%@bwY*T+/0RTVg@KFlLwQ* tjr](fGFj6d{"k	]Ym{mn~. (V!dlXoC!v/Pa.sFe-\\r$ڸXGԷe\Tˡu"bz{D$'j!*Squ:I}@R8J4A5pReOP6I51	CqSΩks[p@mP<6	?$hp<,wd`|9IX99(FvA.>,T8Yq}-!8҄Ԡq6ĩ!yG^yc5OaLl ʀ9ԧrܰO8f}fdumDmu,uq8Dݻ4ô] *)F	T]p|	Ux%±ǆEއ!-x &7sp[TPYΪnJT>~AUM;U{8]E_;#HeELWw\wF)Ld`a}vxs 绠7pQrNDۙWiu߄Q.	*5E~֢,p<&^V0mK;j@V4>9hIp2Vɬ;>"pu&av\58)K]3Bw\/o+=xBM
ʎ6tT[ZwkWs3i%pa*4R`礕U'ѴUlVZ&Jzuň)joe-dy'Uzs}f((Bz:g5sxp&"\{c+ m[`NyLf%N/nwT乖̻wYGFWz˚<ۦR\G@Ym|<2D*V.LM}V̝vX"&_?[gl5'x6d8&/Rg m'JxUQKhQeϤdb:LS,tFͧcb´6HKL	&Nӕ?tJ=+)n bѕ]t!Ekwt_&Qr?|Jy<AEW&'LNT*:c;#Fu!|W->=v,p&1س(2x3=?T/-U~Sh:DjTj"?=?UJeb(N>oÞ)ZTèQnl5o8{rnַW(K!](vQb?D1JOI 4X?":&D8HW>^4g]ȼ.'dPnƝxb8^9Ee	eg'bkLkf*N&
fc2BT&kF.>`-\_TTMDOC\)h՚ԥ60dXp.436'l Gmx9 3FVt,<?>ǫAG)*K.j3I^)7x6 3FVt,<?>ǫAGK.j3I^)rxUn08@$vнCyHH%{lQntA;|#>@vAlՍݽ}v;u<f[Ѕd^xf(lG4tEk1y*glhNAv#~mPh6m a ݞi@h	B\pWdhPațѪ$D95׬ղ03j4ҤYdEv*]W>jtfr+IAҨݮPgeO3[-q(_G˿/kj)Ρ*0ڣ2'؎n>	NGtM-~h'4Ol4}N@ ~E9e.+:Nޤ?F,Mnv2lW9ْBeeLddwc>@AB#-$^į}/Z4^N4Of	љޠWAR;E]V@?来<Q~'/c 8E/;'߯]'13/065xE8ĻjL|zrx
`=s#[]hjYx&piBK lxtiFIF :xmn@݈Bpz@EB8qlcOʪUMbϾ 'ON]ߝ0l'? oec2OGw4,60ѩܹOh̫ay/LIGn<QRYSb<J61oCHYB<!"`@08atf6gLmc'02͵$bN<THeLG
%<6--3&YĖ5YӡSݐQ|쇒XnvT_h#@2ɷU8u($KGK2+21ʨQM~56 `[2X漁Sdwfu>EZ>g#[E+Y+	CF[J$ux';;SEwvsb|_Qnv{4#;+y6|IsT6>޳f"z,{y}WNBx[]9(3=D!/$39ՊkxgDEAT4#HlbFW}&3yO`򙼉I$t23X6'KA+51O7'@=13'R
|SrR@@*ҫ2 7!147/S/91$59C/5 98.xS (C) 1995-2024#$ICH*GMH2LIdJ"O%0WN$1
Bcx}Xr8}W8Se9\*eN8N&HHDL Jt;\,8}Wo.>	<]g8n+=(	KehZXD!\pm2!fU%BP<)Y/
?ºZzU$Nにw'vp~.Nl]+#1}PKbRQмLϴ
̺u5q/hУPJսA|{$^eyhM v`ؼ%܎AVϕZUZ;3jiD#ʋ W vLs(
 G)RA2gݥ^)< Ib]x'fmݍ6KC9`,NN h6<Oq`:xU-H2Goo[CdENRl>[J^ҵxw8t!UeB\P!;>E3mÙ.YeK&*y0bzp$E@xH!l|@bڪ`9kKy_ɕu^_	6]bmT~QFFh㣉=TdC[h;Iޟ,mU1P1rnۘzs(DNSʾK#҆uEF	|Yck+)y;)qz~.VQFa%*Y&9׏Q=y 
ărTRBD*6v8.ll+JRx$gI &u/'ZCR,Rģu4T2F O<<;~+>{~|7C,m!dDk-=%Ya%rBIsR" 	rm|-'کóS;?
ꥠl<DR7YI]9}+kO􇴏YjS.e"R"ZR1}HR=vɲ6֮@BM8V+]Da=-c<RP1*<ڵv>[Cu1)JUQnT^jQH\ d@]3q\crSǨR_	 4KV`2GՋWMͩp8}'TƃKI"G\V &m
cs^I:%$90ꡅPZN̲ˊ~%cr9b/.I4{I<^RggKS[%y@oՋZFgxɓgA#OVll;xz
yhsjGw):tYMtm=IgˇOt?^w.zpDxa{ٓ\qOG0-xnp45AVn_f8b|cxhi
y|>f)WG4l1$QI6LsV7yD@ъϲ@7N6_,\eϲF)NߞǇshM&SbAh'fIمz)hTOSq@MΪ!B8$^}(\;B(iK薷C/?SG3QImK<FO8ܛ̵?qElb.d؃E6=Y VCmOQWg'Ԗ߼ζ	z)"2EWq}ıPШAz7Ʈ%-\(i#4(Mh.K]er"8FS"Bۡs\Tw$LI5.6g.цJ:m[ļNA8!AކR'&&"7D/	eH\ENh{t|txt$>(iƕme\&Sxj+tv֤c$L=*MuMҵNKl!Qӌ.HIh!j}\p櫈qv̢hmNdA$Ȥzot{j3#7]Jx Ϋl^Jp)t;*0IZ8@(q#I F\RbO#?ZS;F&rxp	<䱻{OWRۡ</-lgDi7k݈޽t2Nt,hŢBѢk;G"1lIkg3dicbxvJJs.tqXTPwF29JjL?U(w:/؎ǲjk1U4fhI^~Rh/rknrW<mVXBZ.<^/2z˨O%EρMd]=q$3	Y xvطn8^RRkVq;wIA_}U[v?+q{[iThA}I%1갉G!PRޢ4StҳfZ`-)FnYNxZV_"M.fVyRv'Hq$;-;~BcGܰ,}P4x{FkFl z>> e+ٺx[Sbr2gUX._Vڑc?>=b_~=Ke3`'^,)eID"'^a/Y?l`uV߽e{px)h?0ܱl(Ŗ ͒`S^<{,xeQl܂;;_^OC'^K?;/  6le"<%(W.v<%
Y݈*zϖy P'{27rp>aW4I/w38}6Orq 렺{bE1Vfԕ*"CumH^$,ܒ)jdw;bp(lkoB!o	+_>AzAd|ĩ Ly5C[dWY½0XE]w-Ysk-Ƌ; a5DvIUqC$QNpξ2Ӓ7%,q|8>r<O-3 MGS*2)q'@:٧qfR"YX&AMފpεs'%ҵ	LXWjf+K16{V1dņtĆtTn@tg/֩MC/q@mUæ@$EG5y|G-U-rG4Dټ.g4v+2+ԃ<	I'4En([{6Y&jOb+!2ϗKFy
/-&-z]\ܩ?4$ba-%nЋP(?d1LGHqp	7P-..&!	dWwPyܴAmjPRKJ%UNrdt;ƒn!]oM-zN%rV"I`/m9.m3T"cp%"nayҋr-rW֒\?q؁C9d{G|cf1D°m橷s1wjOc՞A)4t3	na3^7D*%b
nmUp^-b
fw:o;`*nDAGf[tUzpU-b.!Rf!8؄"P&jC[T-rㅁ_Jm	pK]!$A7tH#ױzue槁(1?o\AVAs .N`ޗG硷J+	7DnDBZ#5^1ҡ+lZacy4n#n\9ぱΫqK\J	WxKK'*{ tI VYwq7\=A]L43'^
5FK#U(OMT&RXTqo
	7y\&Ѳ)|ЌZ8$BfJHqTrD!8Φ3g+aJPApoEtFT}𫪭ML-AEt1L"K%Vu[o%/U7Wճ7ݢbr7cweo=0cvx|:2v:\e$[u^_r+8(uyWE!
˰k!T nL:<ޟCc]c2J	rZ'b28O,m?]r6N8WF~B	Tly}wp8Cẁ(;/qt~>΍a؄yksFz=^zjTlOjL	sqrTo83M6$ZZ$fAن6_asU8oޢhM4*4:񾼊)Vxc-Xm4:hxJ7/4s(梬<VxiC!T_11K#'S>~j";BE	"}~K3>wnJ.ݺA%4<.*)b5\лXĽ[3CIdL>hp3I?pH۪#͜wa+*4k哅_z=K/*;VOF,f1KE:',% >@z@OUR 극(t{.٤QsM}	>pH<HflJ^+<--;j:dZ_Ae(yr!ΰԦa'#2\>U{(zyɨH3K0>
kVz=lWPQ6tGYO(ioKpd>MSYh|8<*~_wwq@G>|H"X%P}kϷZПSȵd!DPE<գ(LuCǡ]Da~6Cq
=-՞MϑS$bK&EfP󖗬qj;ץb޻h2:FOj}c[3eu11Hx֞.i$TU17ĩ^(|:؇	=^VT~ YVRNc(^RU`n/e06='rh[IJ_zK2
sBuvn;|ϙDpnSjBb]om.@ZX	UYeQqo4ΜeO[ЀQģ\w̧~<5n*`']RJkUds#{Ce!=ȧttr6U+R :b<c{=Po@Y!PEdXnDuW\SQhRrWF/hs(peo=<vDjp	[SV_" XӍX08*}j~LAԗz0)63Cߋkm$AF{EԨJvؾG|K1Lꗿ[WQ
0KW»Tſ\ӪLb0yr=a9HCNDoZJ y v+HhszcszPozqLAfV\0Şϰ{ib̔ﴢ#9A>e#m|87=aF1ĮRIr^
;F8'42z]op,	yRXj˃	Y%SU'izEM*Ч^uZPvLjk)/׊~IW_'';]HTgdD@w%n=Nj/`؄wAKyqb}F=?-jhA.[poH?HY7U	wQ{]C΁}EzY\̍Q5h:)Ubdμ"7GGKII>ru<xR%]ORXhZMRلq'{5m$ar=rɳiZ5^0H-giA]-<`j#^f%t;bx1=#-@hp|6\_qqb&9rb&v)Wܔgr# ?gmL[0GAnO>*_~.<BbJ_Ní7|fj&!AkһO]1Oߟ/^ ͭh#cO垜{aEҪBf<v` ;&	X0eʷVS4Lp@}m>u8HV*4)D]|z~>\q<?72o0ѹWkuf@bDmQt	aj__Z]ZyDf8#;TUd.sLF<ݕw;2FvɄ~׶	RWs_^&(q!|dm,Le|۬b,)+߷ţ3rЇ^lo\uol0>CniȀQĠ?CΩ>Nhw%Ƕ~،5ʛRhdO[
+ynLcNTu;5({)؉jS,<Ē?%"b\x[Uq([}r~nRf^j|zjT'%#s)+(y
rf&ԕ_Eb3=u<>pO?_K/2bQu.]x0P?x4D||cs|<HpmrBtMPQؙUYZ=, l
/x{wV'>{cRM1Q9ıd3jA$(M< hY~kol{uYa~Ԯ篪>,ˋUvpUW4|Vd"뮊>~w?,ɗzӬfjm[U?hf/}r8=MfvvWii˫.=g| {Wz~&˫96;/}}UY[/)2ߕbۃ?ɮtMV)fu,0<Uw3Ͳ*xWT<\zдE]9,.X1*,Z(oʶ.ESM+&9iR4
ÔFe'0NY͖9vU4$_fy3x	bu0Т)$k7-f>Xe}ö31.p
˃+*զ`/;5XjS'Ma$oKܲ/+h<<,ʶ/;]oz#\r$f|r
l^69Vv]o|/d(Ǧţ5nJ)h/zzoy5,]rfv6_
x)_X`$"%RՈ &LdٻpsYWPusfUtv5-=ˑWpp|72'2pE;yΞ=ml:P >Mc"x \mvu_|E~qխ_4><$/ѼX,4Q6¥7ӽ/~W.*x$[,tMއY]-W||^nZ߽=S{z/_{+y؋٫ӗ/{M}ãكW?g/g'<|w/_0 ;pT+ PFŦ	+eeSvU1{۪hʣ@<HnS*:v^ME߽*ϕ11^]¥V-ueNCDC_
OV{Dp.n3"e5\lXUv7EVT
z?#+2K۰f9HwYa.̾H38L$ 0Wf^ǿC']>aAGyμv3MQYvR} g\2?n`pz*`x8 Bk&}#3|nȲkbxC6|ց$a0'#3R-(ĄFcY	*2@(֖H9zK.T_]X.?ܛ#]"@5e*<C]ݓ˾Nw6v۶v_Hgݒ)ίpa8!EDln-D*/+V.R)$e%c"yxAVm*ǀ_UUHok"gp]늟7Vr`bhKi@rZԗY+/+~7	,Ǳ@2DxuzRY-###PG#z7iZRTG͇)1"k
B^^8جn͚	$񻺜h\ZF#^砂L)jPO`OFS8Cɟ 1pq8'*taaI|ᜩE9n[}w+$	e_gEohm_oV_㖿%hT!]gmC_nnjx`K4㩃LxbA'izY}7VςXQ|98}<]]U<{}᪽MX"c(.
lI(Ȥod=;>h;RĜ7l.xoII\l+}[oOhOQLuS_\筌3%CՔr9^-eqvfN{/rY%$^-Rie8-2<=kت׼C9c?i
Miأ OxӍ~b9K Hb:
VXTVƑ6/@>ɬv$-ZcrMs1=o<6Wlb詀Ų,ޙTƧ-UFZ.T}pЗqNU?Fx\_lQ,xVn'XlϕN[H'/aY%)xoeX=elDۡ*踷*ha'BI2hRGin'I~}F郷OJIjH#"ML:}8~u!}b;IoJ;d1_?=cz=dYnsdr kRMa;ojюC/x?uYѕp>"&"H'(f-FZ^7Tٱ<08#Qj57ao3ceN3Fl"#V|lMKu7p, TOrbG`5C[JxmIy`72G|8_.ZfD; L+Fz(:?	=$$A,«pWp9Luq(񂌃.́W$ސ5VőoTʇTG>#4u8;т"xV4XԈu_Vᣃx3Ycö=p%0>zGO1GjpvG/)-dR\%zu~bO4:=٨	vGp|qY?嫉6ɈItl<
u5d2K7C+ɖwpykm0@<AкwJ'(qskx66TO#!z:ErA|'rw_}{Ur	T;T^b9#]9#y
tS#r57I]b(@T^opm:=(6˼Y'Iяs< ):=8QNcTl"KRHC/^?{ՏCX8sE_?sTߒe_o{O6Շg''G{ha7xiXd#'Ft'dc&ހ|~{oϿ?}:K7Kltp8|w|}g
ݛg;'qX:s5[4Eq	H^O$Z"lK5}亠5rqvӱOO_+
>w'^!'q[~Wtdt]V3ͳO	ٳ_|''kߗ?%ˋo=Jf8\˛膜pt?'[O{k=~?a'+/%clh,Iz/}{cRW9u~8Ys ʯqH
2B	ְع@cʲpSȐYGDW? j?-nI"_`Sq]""o˙:9{yg쵟ѓ-4ǦÃ	J@5n:h=aJZPVo(&
zPݥe[镚o@-jtu+Cz[6wxxUW-
ڦYr?#WpƫНkVSx:0Rlya-VJO֒l[x,yf Z.4*Y
>op#>
H%Ĝ!KX[z|yNR%[J"e=4mZhi0$--;ti0lƴnf3ris*<o{;;H<*icEE6q9嘂U8{}$o09yGj/s<=x;-2.2Ia]c+ }y;Toѷ̮biQ_#ʡᶫ-ʌ	<fjh(EcwOu1ϦWN#U]R4'q#όΜkvqb&Q+\V>b&ځȤVm8:==l8<C
iy5w8:9705@"<#38Gӹk̭E#kǣ3Oݭ_AZC
EYĭ(7wΑ3$VYRN_~ܗd/^U`)L_/#'E\6\DS@
^	ĔH
T%02[ >0aZ1ϖc,Epl^Ջ|DMASP<_GKCUC	>q|a(zUExYpy9;V&D{"0˲'oIɁdX+-;:|S݆eד޴Rw#.Ê0[#𴺜RW&$0ByZ ܒZGh({˸gV:27nh%5xmkW3W`l~HQJ%$$ߗ+ty5g|\KlB[Ybȣ>Ed0@\:W[J|$::E
3ve1IdrI'v=ȍ Utsb;pIOFK$:i_S[rVDKǈ$jFHKv	%hF5K@"DFg=tQo
p2gOb?v%4SGQb2cm	iR"GQp,S儕&)Z׳Sc:|G퉾jx$VA]4T<jn::]gLCn+Veס	׉Yc(,Ю)HSD΢\)F `{=A~ҧWQ
"+=nI~Ai5&9<k:nIL2SVMUeX	11)ٱ~wy5B:0h3`7-ezf_afgfU$`"bW2l	ֱwɆ#j'=.ޕ큽THHn`2D	I,{CIt6	`[4Ǣ%l^1w1	ĢCڞs?P2H
J$l$؞¹3vqw'3EC x4PHPto`ډ~p1 `Xb=IH[B
ϗ8(n"K]Ą &NeS"pȟweCϰ/#O[jqwR>.Qӏ yaLA_+e"e1r]^Q>Y棂!)rXYgKB椚#KD3 1N`.B3%w[>YJQ'z"5{L;J~A1flVUrY)x;6)m y,bcԧm;5BN%rZ9d"c	7H2w$Zc^&@J͟Ӝ()CT T#.uMĦtߊ_@%z"^Mύ,Jê%<7$h.bT-8Y*Wc$A
=9ݜ+a#G{a TQC/^/EiOQU{st*]]H'=٢bF {񻉘h<pl$`HB]6r=
(&(φh:vLWU~S)˗n]@M	%q9<_a}{$ eqtܭ%!!v~S+	*P4RNc 35CT$@.Jyp96UN1QRHNx Y;)sbb
(P ME Q(xp?26V--Oar|f#beaf8#%慝̶]`~5|l=2xzavIO+Z2߫w	FfĚ6,!n!m{n	ۿdu	fuU8KGtf׷Pz`FJOJcqD`U 2c`wg'kqkCLVAeE	&(>%F>3hxRow;& OB-i|ܰ=sw0'vjBx7+2!UaSUHbL l\,봬,I#6aSۅRq<ӛuȿ>!Fu>-}c; b
d4'" \/G/.yh?iC!c_`\wِo=oc7wJ}aȕ_\HݾC
ڲ}89(^m6Io/ۉ;nEewDe;: ~`z@*ukG,cqҖ<0c&NEG,)PrOQtK(eyȖʾ=.:*"]y	/1`MK3DE$ksԉԜً5sng58+N2$p~w
4x 7>6nPd
z]p TK<:{b I 
0B'!֝/;1b`hv,V+a.$~PNWKjbxC0(GK+1jTT[.&_igG3&7`ԋ~a	M6!3
gefRniT!vJ	&gɹ"I0/*]`ndv{YtZSQ¨+Xȹ|^`*ɭVKeA;폚	@t	ܑ/m(HXkRK9{ri/
Lw%K3
~'`VDxQ sV
]B*$9+XڀKRY8^doT0`p2\P1kfЋ

qʅe|wik.g?Z<Ǒz[^qg`➏M|iv,q.HL,K"T?pl!'Q[]yN#1s(eSw8+<02.+ 'u%&%3Bs5Gcyr9#7d0vlPy=T\ְy;UsRHdq#6&Ms`h
8,y~Fݺ)ũw#H} 2JԩMV\5CjqplnLO1QTeH,|mIYM͍&}=oрa]x*gHGBF]eCȦAR\R j>lڔzifh푉3:+_뎼{/jҧ	~U-61\\5#")DlXC辷g`q S~pjQLRpkLC0<LH=l+'(d2/GQT!KerMdM8.6M<t"M6S'5@~`,IEsy+[AT_T ZVPxWY@iSQQGWٹRƍX&ǉ帊J̩0\8A*螂m*eGutNԽ,Zt䉧Uq !C*'*&?֔feR"Cנلi/'OfYgGGDGP@{$7d JIlS\{=8$*+mauIfa(V;i81WQbճTuDt8Uգ]̰pjC]$Rx+e7e[]uYì9Ã٭}
lY^qHH4:7촬$HDM5c䲮ߊA6oMwmMnW#؃X~[V`p}]̶Gem%!>Hh	p?*Zg6n/q4:?*E>.1O*h]󏝛V	% +"@8D鲖N҂j_ĕ:ΔOo\΋H}_8;/z2g$zTpQWT<_<Y $z:=|hãvYgsq/٥ZH[=Ԟ{A01OlbCDx+l	<"7YrsfN;19NgPF@/B^@< x{wdf< V[3Zuf\ҹDKt w	`y:ū">H# ;T\M}c%F;3.m4} t| irLS*oӋ5_VN?jفئwH3P4ܨ5neՂݲ(#"lG(焄9|Di~a@ڏ\杻,SOXE3R1wCPU3BQn\ънWI롏Ĕ$8DeC_-Ju1@-bR>̆;p<NK 2nC+sxNz)ɑgy#iuJи$)eDu[ADU-j3́Xʲ6doM prt_ asezN!;ZfC_hY!_ޫ$`#BWdү@bN8A]Mop,'^UbBݦ*z:PNjW'<PqA}U$d#G{ȭɌm1ԣJDld#/+
K$s7^| ]iD{\Qk%cDh+5B82Y)mib FECNTGh3\sVQ¡-H-!"5*pbĻdY,Α,cY.r̓</dt3@	T1:@jQT7c$ܗ)ic:Ys//~ s
EdOK$y֒k!G^zs⢐Gk"!Ȓ%2Nވ+L8O*@H@7p3*_6QD߯@9<YY!~#դ73"<T&D9;H^Bt
ωzU%фXW>"瀵fVELvQDie!'i׍B){4VYtx'"ڃ)}#[NTdƿ;=t^,	RSI>TW hZbC`I/.B-TºGW8oT=#ʧiQb۱AiVC* TY0JqR˘Ig$+B1
/>X_G7KZbq$-O{08=RꆝD+M~t,`䳛'a(dP;3i}_I38/Xxgy[,4EZ#p4Cl)ژuj
i\=(0Gϭ wMnȦU_:'!Poߋ;0k
	yiYnw
zI 㱁q8zt%Po8&1o	RKk3`Fdy%//YULOW2""UDYOcd)GhlU6$'E' r
ŏk}`n	],jrn9*L>YIH(mu_9nT5q]ՙ?WU5%sX<:CX7կz56 \He`DN'qtBUJ,^27e 8wcbat~ԍq!u\1jB}kTN8@dserBL.s\'5A-CeپZ衞|xˀM=edRӸ`ez䖩뷜DK1 ^Jd?+n~TRpn~)hCT2ӣDI[:V&7eE{^h=S"~<z =)+0+r43Wsp8~g^Rf8B8q7 $ƴ&oWYg|7Z"RS9mH/Rf	~NNL=TT**VKjiZOma"KꙤQe^ס̹܅kĠjv{%L$; Ɠǖ7WtPbY,P*,o2~oM\n7b)fv'].Ȏƪ	tje!Zw;k4=4P#&ޥO@BѹX^~/c20A=:|$I4,x$lV4,-`9a˵M)ܳz_]a Bro(<з%biK~hNnSe=$E3ePST>f/5pr4pWuEw	PäToȜA5&uN\TFc>rIýUރIv8~t1qBfň(!qXa:ĝF2Ҧ,00Mi
XFu]v*fJ0
pXO/e;Wp=qeM
:ahheVEա	Y-uckYKtNVM:xYlDҝSj8@,U0]dIqA*nοen(*("ɶZwPR-;prw5=tWn~뱠Ч7&CAmFki5Yc!¶t8cC!Է)2jъsIC2pG>Q^PV^azFl>)4UB4AGMMqj`b`fi*JE->墂~j}ԘP&`AFRQMS0'jJk3Ҁ{kvES!s73	ߨ+@VG/3=;1BK4=Qr{TYp:c(m?mhLWkGm~^DD_rtȭ1NyNYڧCF.jagW߹ITP;(IOɔ{vok^%B_)I`u$y$yֺ[dFEErU]A{5O2iMyW"~wAp]Εgv(/6\;>jJo-p᢮qVX.UᷛKU	n_w~糏p.T8!rcAwܡ]&)cڎ{bG 0Gz~E:\m9gܔꞇ73zZ(ҬlE+z@>NpዣPJ|ᨊȋ!nY)qF2D8U[4굈+JO`7G1Jd1491.$]C8<tJRGʎ	8#CMBP&f"2p$UjV,	J	<Ip2&fZQG5*s(CH 5TZ|}gᶏmciSE,LogX(pi3psRA|j/;\N@Eg +:`SUmkHb^WK1Yb6RN$K'$Im¶@.JuIv=LH@ԫ~'["oEjo;$ßF/DQ)*[p:cJ\q}tFy	kax ZF,;7ڱ53bVȣ},7(8]\f~De#_5䤑pX{o
SIjeJ-=zr6kmL9@3 	ɼl9i\ϵ6 ÇXRbz+|f="!ዧ'ᨛT:_ο#q'~f~ʺSo3`m@}9Xߝi9tƣmM96'GieQXxL	t+uK\AHr4[$2DC,Ц5:JlǪ_8H\h%w\pkS%8Ub"E	ֽ,]sǄqyg%'ڹY|ڼBa	a1n<*X`'M5e1uBiZ3ܙC"^9K(blrM@#V
*>ܚ"5RGA۩cZ~kwSAey>1g.@tX˔D%Ns)ÞQ)Zg8c%M%EL9JQou*c0/\ϮUC^"KjTXГuMR(g7qpS,0Ps?۝eo*Lm*~ӕ˲@9f4%*W؏ACB͚=UoQ>pJ=0)WZCAwb7&_}q|&7$8B,%:L(!۟ggOoN)#߰pm|n&ɴ=S4phU\OkxmgeKM~^c+At(t^i>s^;H'#ޜ:MfiIP{&Um<$mCeW$pXAK~DܡD4Tq]! 4/X6E8ڌLHi%$(gj/QiWΠ&a$G-3[zN2*hK"+^ӹ
;&3kip}-"'(껄ʲ1[vu.`$9]Nsk]_9.X9wC/s7Hw,W}DWou`35-K@?Y2a%uZ vZ:pVbˉs&<yguW.cN2KiN".HXuT68shurɛw"T8X2opi-pҔ,$XfLh"3LԽIt|bNWԢ]u;:y/tP[ir#Gh0H=#:bñA(`eS jv+Ro*7}<#e~,FWg1:ݳc;1:iK
ۢXNQ$*QBY~136c5ohIw*'`=2|-xҞVK[]O8LtfF2׹Z-RU4 xUʰI@<E?D`;| 
Ni	 	0	@U`,Q Sw5)RJa|"MG朆I%֞g-NaHF"X曕1q+͓0ұs`nV#C#@2^"<KZrSzHͺP+;`	ü&/iDڍF&͝NOSs)wXyT_d.DEK
pIx9IS/wLgz3Uc^^e8C{7TuŭF>@
N T?f*<BpnWȴ|f`Z{"뛭ۈ!ϔbHpר9e
=
eG_/9 fΆ]yi^`x=+|sJǇY
rq>PayHۣEE|~+1=h¦JN_!ޗm|lW;Ay|G؊xTmT!/f4ټ`_>ץ+77	fy;x)EA4SZvFj~)11GHq/Y[O+@ዻn}:r2{TKEuj 4q뤉c4(?!2ؐ[ˀ*Fx	X_
!D@ha>Ի2-+8ç|i#~9nv1dYԡzB%%iϹw&Gtɱ*C "`4s@K&庖gOjBy+X
nIs(}İNEc#yDa/,qj
E4X|:4E<C	©}cSQ2G64
8JKXB-&j"iIZ++b
urY/γWhx)ԋm56c*]:,TZ*bBб=X@;B[c!7tܰeRb@Il#Z^#h
OJ@py
gbT>\(sñ/ۂU6f{	u1ӌNSrGq[nдk֎l*;RZri꛰pQDi"MX_=bHΟzZ?CVw`iQȀ﮺Y>2Y/,k(@ .~ws"(E~%V$ueH<^!=G l5;z#	%XX	c#A$'ـ0f#8~Ɠbm#Fp8|ERnhx;<)]76wiDy#I!Y,saO䢆dzFݵKo-ŎQuU$%rN.ATvc0	pfYۑMsK~\J*4casM9zIՠ]ſk|8g, \C_H}8>$s3
[43ÌS46.qXN1kuHI }l,avvI㽮Q?X,YIbhl-__IZ@#@_7\Ur%(mҝJ={۱EQC@;Վ?iB
nëDVM !]A:|X.oaBgEЖ
.`iQ4T!iB9ۤbٴ78y1uZ~,(D|8y}EzbI}$],_it S栎Ψ"@Sѧ_;%JZߚ>
i<_+*q[
vibeW,v#T5Y%ֺxQD~0(e{ߴä֦j7(jg-4n5nd/˭T@^' CY{/A:.4jnL2X+*
aVV`J,#KOsLRX^~^c^VbRY(뚰(t.=+)֌J9L|"8ؤ4&PT\˱ޯgRHU ,&љ~".<NT*)-(BkL?_^lj	B>}VAVBVNfŰ#焦z@Ǖ%C2_!Iv"4 qz<?b{Ԍ:m_$
^(.Q-aDf.1ex\a[pk)}+*WV|c69@NsK[l%Q9߾1-nPP

I[3Y\\[rex1xMY:A8c?|MEB3o%wAKx+[NKqGߊ8fhˆ׎l%q{-AHҪ5ݜvd9Kŝ'tv|	LVkd`p蓁3Mc%9qՍ7*L9_2yjUQ\(Nxv1"rK ?Ƿg,h8.卿q>gA+{GusʛA$s2Mu9P牼Le+F nuoMHXRBpRmUz`/p;qN\4 5Jyj*V.>Gg
\_05>=oh]`$|l[kk+Gi40GQ;L$P*e:E,5-ESQhN0}[E_חG?~?!cޝV
/Gc\pUW^d#Q?L|8- I9K]Lu,7?G<Ύ_G<'/:95ȣ8bM rH֬ v8{0Լ+c^J#?Ŧ\jҼ3l|!fSua{sg:-$TY:@1\Fq_|=?	a8,Ená>(u4kU2,Bw6G7HϿzsA8yG"'R	oPui.p(^PdӨYw8AaĖ~ťt (EPFNo)kMejTR+#w%>'X+}y7/%hR-Spr,!# ?;~k_WBGT XNhr2QMm/ꬵbD&"Ζmvhqԧ+E/7T%`<~ůnXYP<o2#D劀q$"7l5FjD~<#XL]0B{[/
Hu{'!LO.-KMpy[B f[W\бHEf*3n&E&<Q/JFf/^D-i#47MަC@`Zh&m!EuPT&W2]:Z|
R:x)+cԝ+.^SJ5z~ݽwW֤1.ayCiyu8!R;RXP`dCu*O_PUHKPwTۻ~r=ek?z'ytIk\9$[V-->1gHƶ^t1vpx?J̫@Ce.V~h	}b@ M׹4lC}ըaP%391=iz%кTuHo5hɔʲhfb,)!eۘ&r"eԯ岡)ai6kR]bإԲiLp!Q#H.J_y+(&.(G/-H<s;>r{
@8ա5u5g47mY/U 9oK ơ"\vkĕsݥlz{hǃSi#A'H<Ɠ׳Q;  ~l9(}[s,Vv.? 0qcΊgr-A@D lIwu|O_<.hƣ{=d</At4%q>G7ڦqvq_3La)J_)<ZܛdgُVyu@gD"ett=P{Dru踰>ͳ{T0guɹQBvZbS}_1 +/V޳Kgi_vN{=W	/w}לFQHו~r ԓxD9u,9=[p$QHhCiaei}?m^1;1rlv(
٪t!ƥUa?}|%nƭI*ea6ٽ◉M4mCB\Fn<k޳읖p1^d[)/Ͻ:*(xZ#ңd!H|bcft,^~$fikJl^*{fD?QNj8Fݺ(.1O|2>CPr#
u3(JzYt$p&$},2&Q'Jc%\JkOXTTL>Oi^bEX)+
[L)J-22V"(S&U~Y0NI2@6Y]w/Jm𧈴6ڍa	"67=Ip6}FYj=&A*5>8i8g))#n VllN"ӹ5_hwO恪b>oXlYɘkLTY }h%
\Ng)fl]	_#O WdSS3Iy<5RTƷh3.E	ylmEdEf[@@624-tA- Fo6m)<Pu~f*}a7=oO`7,o|-is?P*lb:d7c1"$79M]Use>n
	Bvwִx\&JPo.l0ﰆ lst	g789+GmymLJ<<OfhwfДi.\+39$B	'2OിQ&aX X=vIL(xA|eq.[]JItMPd`wƹ%?1zPCC47G_t#
q.F"
#mHZHj:'맫na:$dlm8GK~OCOl
Q\͹7}-dG_$~rVDyQل&H4q,,ד,Y׺sAǠpyB>4.v]]g\g;EASjF*_~YUțY>i3J8b<~19[!kE5֠ʀiiASԑEIx˸X%'o-<&W*2t% 8}2vyQ]5Rplc\%ɫǶ7ckfR݈aȍK3v";K6}c/dyM"cJv1d<Hڇe(EV%g|5&
YY\Ͱh7֦P.ΫtmҪUH	+v˼x4bP;ҨIy썕_bCC' ӆEf^A 򃭍QM8vF iz*`ޑVmV\Xm1"I0,eJG׾ y4&Kn.;kƤ  3(@	S-kَ!$mLG)KOv~V\cxv5Tg-HJ1g]IX u&HDX1
z}l
KN&eL.;UjW#O.m.5G	Ub9KS{0Ĕ+؟F֣q2nGb??}iYu?XJJfP	1v2Q)*V'}ؘ#-8v3.@p%Up'IT+eE[hZ7m'jf)jFK{И}tM
<r}.^MPp?Bf-dX)h٤6cb;Itxo˽zxOyd$3ZQb]}2!T?$lK/c	KFsW^(^3rk&^#\(\3UVgAvr9+R	=H9v}5=x:!-[{!}M}.ϦQ>,FvlK'So.9nG!3a&'OI4q.h)yI]bX_^,&{shأ[dۤ83ċ hr:,!gڎ,v)gT1$jSe	N>]|l<@9?>!>tmK&[l6U$V2<YRdރN-fcU*C,&_Ņ2>PBX(u'v`<Z %?*fD ^AOR_?sWiCzĩQHJŮzZ!we<֦= 	JuC韤htFjm@kڧbk<VßaB

O+sh.SռNd8el ]ե\*r 93wrCV8\0u55c/9+spYn1onsjKBՓjVl͉%ZSR;i$Se {{uQI %jbv㓺y&J;L<]lXHGޠ(NS)UP"haT\	(KEv"'\Fb[">@`{9p|#2=x(&N	RӋGݱxp$uv7u2L
,<U*Ӓu>YSk]\)HrRna:ռve.k>S~z'Aj&6 3	 mcg₼Tkæ3!rj-If\] \/jJ*_6p@ǚVG+kLܢr.t^A1`ѳx
3FJ~m#)
m.Zr1@B
,;FxvH͆:~1kE I>ڟG>>X!mnY}IoBe+zypÈuQHZɃQ08\jO6{Ld/&1ԸpeWߢ1/N_q84*~ja&*QRjT~vƑDA)C7\t@ًHidMEx-JW+tPc?f-[Í0c!um"EGwqP*ק:!CaGڝa(zvp&"+:ȕ⨯[6tV`'.Guڔ9DjA	#XpxPNN~f=trD9EU;(2iNNwmx1KML>Q P{tzz*Eɋ38l
FCj6V& 6j"H֙GAT5RV ]^lYfdH`5A3sVAZW4pEcp,bFTV^B@"t	Zv%+o{~륟hTfcyr
:dYK>a-D}}q0`c8
l9xl|;_[uPJu;4b8WUCLM'YoۀTkFk栐ts^bDҭɱKkQmڗ6jL\5{Ax)t>_f ΫVtvk'3iñr.o$*>\_9eA'e)NW'Ɍ>4Q4աX*DMen {$)/,@oj)~.aX/!i!Xbk%h=؛y*Z=Q7qa;eB*v#Ι
U$/։+ֳT"Std .lELal䦠fH.t᭑(fIW!.HH8|CȴC"
aI1q>IFobṁ[D6mVw[
D{YRݸ6g
S)\Q)rQ2c6PS;Q34@2]Gw=a(G)ǓT+:F1lê=AKziNԈEzVƽ&_@jGʉI9Xn>PNuK>FǂPuDx0{sDe<.K H"JzxW5*ƃ7|c (H=$Gs+n͕ٺ25a*!5XEAeF_EB21?(<zxu$NnwG5^لN72ɻ-OԷ]U[{s	6T5y$4k/@%w+#Ax\jUh_3!1}Gnpg괣4-Rp4wW=@;
|a~๙ޝޛ:{lDA'"Z)Wz{1zRYlBu`DZ325;JϧOF) ɹÒv\դNWwN%<Ҋ!>q-D5-WPĄō$If<JAo4RExj̎_Ā%¥\H2_+`IÀsP֫Pݠi+{%I#\!\jk-}L%vq1_PREvpç!mv\'i2e}VqxQطfIJpcR*N*/nyEaƾ􉵒&ܸ"\7ssMi(dvqDn呫I(F*1
䴏#yé99">mv&vIY}h%ɝs{~WaTvEeIe"9K/=BDb_nPp<5*#i6_5lgR%B/K-)46BiG􆤈kpVٷz#t+
wmc$>cMk18|۷g)#U$=\%W7%Bq&xxV.D,(2'ޤ:D`GTރ7z4'Yu<;tQA#!JFRuH_'C!hr`).Ή.inS{_7i9xDn)1"-lpzU`g)#anR(:$7Z}gf1^ٮxc(iu[lxfy,i͌R[XA	}E {Q,P:5_l-o{Dr]|\Na"ߺr>T|>7.>܁s
3Mzݍu.9qSx'.ǕLx	i0>Zܝm*F\#RyowD
|ށ\wjkm-^ ]ӫ;]=@ u	WWxR2XxapAG⦿׷ߚLRR^yvY6$0EHR|"2fM݆B-%7ƻadBM 'Wܯ=̐|g(s7{dV=L;Zm%v2Q敖~G=J#v83\ǲkSܲ߀VSy},gώϲ}#wCrvO? w)t~D?;NOΰ̈́Oza[;GtE/^/lw/QvBmpd0$}c's	uD7m{zN7y9yf֑3{pv;S#w,_&ރ[~3Aj3!.DzggY׵Gr@^fVB2U3:QÀ8Ɗ4O$Q>햲Lq1qG(:QdU,lp4hAMQr[uS83a>\o:o4i'r=?b:'mVd`2aȻ;,'"<n$\d׎6v 0~W?÷4>˃HWmdy,g図'JA΃/]&5a*G_>{[~Wxf3. JBFcJn@Ky;Gxs71GlCBG[_Hs23#<{;cn5EF?|6-0ǴQKl>!yA2c~F@l{4a:p<HWΑ"_o5:idi';1"w<~>3}EzD܆r,@18m&s>=kw<Sٛ}ۓ-;݈bNa.T=v1j߉dɮgf(9CqR"η]<J<xP؝1]ѧ="!*g)_u\ϻ5 	R!zs2vf`-ؑw<B$h Ǣ	#@Dgrtmvy6{P8.i=/7h|mٍ8ì2xevʑj@翞򈔢/MA鋘	\	Ζ~&vk!~^tTxr=qb]/(n{IZD)RFy/ Id.|^nZ߽9Χt(xVlL871,vLH(t!I.ùgMQјhZx4VlҺ(!];-cPi2M;&l|9e=nK	>D^r#owpW,*kuHmkwnތvy=oE@}h%ؖ_ShU12ш,BW8.pB
:qwbSՊwq0y~.
?¿YrnBр(VrBu#>#аA|\@$"SBH{n2-f=~3ZѝA	e!!()nT5+Bq!&ʒPP"&K(GA4(8TaE]n[nvdRH5.1DJVu@3U o{d"mQnn&/o*ۤv%ǽx!xpP\Ct/MZHnZ<,&/1?D3~N|_jg7Y?Ѯ{X>S_vh䓧4eig_+5k=ƲO_~Ȭ:"ܸdl
7䉒\h{9#=Qk#|4!h+oiG>09X@9rL*k%°A$ɴ8Q{T3מ-?{6+`ҮmsN6tb&ۀל?|2/nC6nr}cuN'[^o@bk?7j~IfVo|4+//=L:Z<|rMgWWL)NNM%jqǵ*G֌o\ԊhV譩Or5w)^9n96ϠJl̊c66Aҏ
RLpD38굹-Ƀ?A4]-[swDR(uǍ"F$:s]*sYk|flm;<jXDj0(LnVȄOut䄥DpbsA[O ʑnѫ-u>j:x@N+\iFAF<fsrbap(Xo 
o+TV}nXFoyJ?5jSZo34C
=҄eulEzFeS)lYoP6/
FeEb_m3G>vҹ	Jv8{p.pp>sl|*IAc=$e`#?_nw\2Ѝ.Tcizyh-`QTh8KZ&	:F@D-jpIv~f9Y9'#`13ВrL1pGyXH>vG|۟kn`bZ ?%ؕ\P
	♚ EAe җ fYgEa#('\*+AjM1HV/=N U)C\ӛcTT(&09foEȴr=whS^tPiN{A.&h@[Uz;,#TpO\x-!7*f͟
hFpOA͌x1꽁<<@t&^2vbdt']a䷻Yڕ[e;͘b1AҖˬ$xK>")(dSI)jSz:q6V3:^Eru7xJ2	qx[u	z:
^yE
FF%:
FF&-XrJ\)iy
Q>NaA~
F)3obb,ٜfʘyBk9c	fe1mPgL`~\Z	_T0Mb>[( @05xOo0)V{T]!
h/EN<q-v4vXՈtUL<򼌟uvv\!Ym=ɼ`gwQc]W!%H,`ńpAcQG$/_hAZ9!d֛3cwwiuZW%lG`
[!qˍoC)ԪV6h; Z@Ќر_ ~h8NYxAqk:0(Ҕ'i#GXk	4s( $nBr\@G!rd	jG#x *	},,FDؿl"aj`oG"EFMw@2Q?4Q.Y.M7CɠՑ¾a}aíi֚/&hPTŰ_rB_
۠iVo>׉SD <1^V9jo'ZR@{Z	Ʊ4l"O3<x}isʵ+P줴XWS,eH"`ft7 Ѡ}8ݧO}f%}==ֻ_W]ꇯ"X|yYxVZ6Xo''ַ0͢$.[oďp}RX`oInYkD֡X܊bkl(a]?>bQ >A+i?wY@ %?ܞ3S Z|i,E{+P`V<AwiGӉ%|!.<E^N ۷\]yp'wtb==oyc[>Z_a
cOc	 aXa0H6\DhG)0D6L7QK\fm<ɿe<I9X<5Jhf=r38̭0M4=...iP0/րܳ^px#{r#:A̓g,K}p"G(ߟQ;%L3 +}p>φdx6pQ|q0.60<_'ans]j/o-߶T}xN8)2Ȅ({$N̲&EVZ&!}H.+~E8,VA"- IE5Jc8( -	 ]3d <K6(sr rب 'ЏU['\D%\f#xuPzzюS>*EZbQa[8}\tUC$5k^H S	ZB?w/v?_p]n7A ߈A^,h_udݝ=Ƹm^Fx~Hs d6&[o:$,~8nhJhĽw3Tn/yHOB3ϛ*3L1h@	Y1fP6l6C@4;ެlNV@GJe!u y̔$0zLB/' 0L9?;Chx#_#rB,E9D6H
Hs폴ޏ]  IvH!g$%
Z+[{1  )n> #L:BZwJy{?I}]'\-PjD=0_zZJZɆdoFt4>TDq=f%ЕBm.8&jz_AE#8TpqHi,p`,``Ŷ0\y.rlJɓO=F䎥'c\jUn%`Gt?{$.E3J5J4}sSⶼv/xN0kB@w#^}qBk^7rݤo%Xi(Z$Btxx v8*z*d[߂%tк ߻C Ա=!n&yhpU'E	36p=`9G"X'ֲ iE=
dheos++[خBJ$$mhlKq@ci/.#{.r]|}1}>
?\ށ{CCu@}M_f`o
8QHj:ػh2k߻Oo4
O=wX[o	q~`p:Jb?]Q[y.^24ɲS/t,Z =(1l}}f[Ed
[[ 4*^1^H-a"4Ȝmc鞑4GޝHw]9X
,Q"d6\Zqbݝ_"v9u{VۺpcX8n${3s^4e=lb{Cd%J9kY8u!ܽK["l>'GmLxo3\B鸍nfӺr$).9V[+\$2 XYɵu|CI,sÅ`GM1\7Daiv)#;b	pYXHgd04&73F7ƠSCk0)h2q~o2 <Y$"[Fcoy#.pG`-e䙬C=HcϞNdDE`AQ"["PKoU.b>(eu#p	8S4dY$"5	t9`uVda
Vh(O#LEtHGA0ƹp̞sƠw/&)p늄zNɍL*({6d
?hvC<dTUgawn`w0x9CSM\2msLbm6I|:iE[`eE4XJ蹣;g<w{{һc4qOޥ!e`W" cg|&-t?Wf$Q!Zep!~¦y#XI4?VpޣB́_`SSqYۍ0t$.d9TچlqԬK 8)תŝ+UV3/["EAd#U+(&1Ξ7Fuiv{ &\Z>aRhkJa);l>{0tc,!Qĳq2`	r"CCE<r?\%QUerbd;Ek*CG<M^
;R+1C&2.yXd*}1;iMB!	<ͬy$k;{XRn,Sd?umH\@O:Nϻ)&Ij:v֤5DLHNr	l(/ /kS2y?c6/
%dSٽӏE%nhjM=e'.@JQ@S2Ԑ*
fX):@$U$D~0C`y9g",rp.7B6I#V(&U!6e^69G+:03eUF(@۶\zd,NWW\q),a
I>F3ߺ_0·G??RSYM@1?ET"!a"ӜEKy^=9Bf~{2^-m%.ٚٛoQDV/\xo f_y+(qCnŀMw}wT1Y+@K~0*Oi$C(ĕ1nS[KJZ	0X"Ud O<.tVShe:(ӄ@J p.xʎE(l]G/!Ui$(w, %].|FŎFFg #Hʘ}5u+bEF3fI}or8qcw8܍D]8ZEԓlc1L$k(1 _ZuLLB$٧Zl,`==7dPYsQc]?-Mąd
wAnWH".ت[F=[欐k	 *dub עJraY(|cҞou$A$KIApRUz#F@
E]
i괱z)+8/TL5iڎt*% G9 ]gWehOЬ$m 	=U^(g8`u~Ɉp
󜬗B.\;\0,劊[%9d<pik8-V;c9]2dm2?zEK(YB9ΣxI֧iE`Y;_fSN_\jq{4JQM~D0+VwWG|atut?Q-)>qx~=e7]w6iv2Z"n0	"Z秀vm*LBI$M"`ycSǹY&23>l`8
Hb5%`2oS0XI&dSmޝrx]%;y,1h˓ǑӈtOߊfQ=S)DQQ_ze-r)7tCK1J{v!`-=S^;wzǑl(#)7amq>	$sUArwֿ'PĶ iR$k=y0N~sG0^Ģuu5gUF|CT92Q'Ae/L.g*1(v2t70.9Lvps-f63@1fde,w0sopt.Ep
( jS')l%7-j`i'[sJ!h|h~ԸyڃGyP('ZqZ)2[jt?A̇#IcȤ G5֫<$YxPKQwz-\ǳg7W7e#3l˻={8$Cf@l8ߍkI;K!D'dpj36	)u%&,nK2k`g\_>-dːXP>z%	siJ)(ktpҼ"8Z̐Ѐ
=^ 
TvG)ݐb-
v[gTǾ;_kG!L{_T-p)Jׄ륡`O'1H!NBw!
`kɌ	<1WIn_z%T_>9yCVKo-K5(dPT`	S1W5dSL8t޸|h'* 18i"?Ld?q=xH9*'մĕRfJ<n^l̺6.s*٥gːS@sn50Ѽt`U"
d,*G"I-6&}=dGQ6Ē8%<-A	X2W55S,"vX\,"u͙>8SH<SB,	h#Q {w"2*md%n쀲roǃmͤa"s0W6zʪTuCق*K=X?%)\"QCq(Ѱt $2 PhC_;ꗏo]]YaE =BhZ"9dTb=J@2*'ArFWvQ	(]{<x4!v	5.F5%C5"@$XFfdR.icAX0+DFJ@tf(⟹ntoĘhy$`DaI7f}?l)Ea,(ct$j`= j&] +)% 5>!Jŕ;V%ـ˘/GkKSGƭW(tuMPp=SjkRzFU%n~|yɋ;R>'XMeg'm	;\\QK$YԾOS%ZJ)pJ,
$g+r<aٮlSGĕaOf[iQ Qyd#M.'}p-RPXOL݂7A䇨4z+@JڅylY*o$js0P rl"!bJ:s4zioZ|c.AUy,lȓPvjKב?jEp.$},+V8mQ*aF6B"%+|Z[*KU uusyc)7fv)L/(\2ܩ]R)O̉j`4O,rk<aQK\ƞO(f$AZP$]ط^*e΃aw)_`%eO`ey(ȚKQ4+|<gB(̩$S{Z=MOLbL'gVBΞ$~|4t̵ҀaA]LEjY.
~J@e<ˣrD,1rK$3!ѴrqI _*ggCz6#zBD<<)a3K*թ8	I͸woxb)qL[Ȭw* *?6#	'c;fKnՄ1QѮvCQ88% N*55ԾoꡑwƟ&GeL<
{g-*ZTx:@AHtÉb[*fa}8su:M&xmkHV+tȭ}M^H^ZPaeToBT߼;t{>)*gE1#EIC=J.l~fFԉzJ%6ۍuP)%h-/B3)rՕPT˕h7}!IKt2l^d*k!]n9`7k?FبF<l԰VJv?ŜDE v;MMs3VfY5?k}oRUUc0&O݅KQh=8WjXts@9d	qqoCC`&S<?	*GҊwe#Vf6~ KՀ:RI-w54(b%ŦIRJ 9w8}sA);TQqVs"@L>0-9+H*W1ڝm&u*Ǌ<)K SW\u1
VeE=8~y\%T]Ƈxo'No6p=AǷ$Ģ%	<l)q8d?} *o(,V:<hzPrcPrBCasԢEKʍ$YXOIv8\4dF30לʟ)ow2b9@}׷f>L,鯺6,b"MCSR}+ÌJxXY̱:Q'gA;1p]ƅ*k 
>3tQ*L	Va1S]$4s%y9g%pv;mCBӑkvPh#7E}jap:8*@{bC/[W)AyrU9굜Z&;_;4:TpyNN(+Xew@?ͬS	"+Àgbrd]LO{{^~4yIh0Xbx'[
yPzԐ}Վz}Pz1p#:9
ݱIcw4:gsz7V?RY H*
Oߢ/^Z@raߺlJDKaf)K6eo,;	s%!R	4mjCm,'XhՂ+,RzU1m2zB'ȶT3z3['BCq5M(G7<V<lnwϋ!ipUhNnWuCSYR+tݗTxqկ(Q'QNF#kbRy`xk )X@ԥ*̳߯:DUeKZe|%n(5)'N]cLM1ܶ~@aEO+(oR)tqŊ=7r`iSS:WzIQ#	K8uK8_W2fJ1Q]T\T)Lw_|'X5LJMJ դS[4јe(<푋n6 k"v kwzScݟؓ l6k&1=$ZNj͸x1E~Op|LIM/m>U4IR3掽|OlP?כrfsb}u98n#&fYcm~e\D<X0pWK0~Pۿe\~!MN9a+YaAN}&FrEjwTC&*ZAwI!>2>4M{:]otn_*<zmZx!bF\Ţf_L[#ChSB٦TI>Ew򧩴'|W:btB9_mN$ϪzB`La ϫ/ɥv_<~C_PM,\edO`aU`(|pF	q@8>O-?/޴F >TςquzQzULZKǷ7"OgghU7nkTo^fX(ak0k~و 92Fɩ`#ba-!TW݇ԏWEёN5Pe<(k:8xXejқ随GAJ!_;0opi#}.z1ԃP+2D"UDm<dy9ؓwe%f]|nQR ]ѥML_b9r(Έ)$%PFR$pN˄SaH$gI{V
 nBZ#jWd6kbs(HMb1T\FU(08ru$#^)OʨYh4{G#:VG9rnXL.?$@S*PĥJx.~ =$"RAızSdsuǥ&`PIDàIU_42wqCiCљ58I֦UޟD;ΈJv0#E&T?wn%bWq*:l{*Y+oA1e/k#^0˾uX_mQܳn!<L7 ̓̄ KՙSaN;e7i+S$À ?gǠ!:Q≹Zj4{oz~Fw&KhH>\dyLV5L<kDdVsTd, M?8ŨYw䋄W8+_2L3z1O%N8(TB-hdĠLH+w-0PliS9س
)ü9>1`l
蕫;N?aCXEA;a,7vJW^~|\K^o-$t^6e`046FV7^Lfsy=膞p*[63a=8sh
L^k
Ts${5b>(C
zp2{GÏp@%\AX>=QUVU`v<(J3C9͝-*wHxM"4jK-&E\3R{$wA_y7VM&4C`*X5#5Y24#ƐױUÅ?5&dN"-D.n7F㫎u%iTGKHݎBJan׆֩j "e0Ь"M^WP(r٨iU1Fx{VwцW XS6Oۮňn܇fkr-"/  D8" T&uGSYa9z.2qh^6z;	N˽T2\I)Jz0(CFOC!OjS(4Zc;cpOp-4eTaM0EDt"RNF0z+87375N?zmx˄
vhb'-liʑmS;z-W-!J{%SLC]H8	O g2GZ^OD썩C:11B{~	n+,` 3ݘ9<QtKPN943:}ScPpn}.5,)E7a 7!iMY͚YnS)?ǃp٣F^?.P鸮EVkŒڙg2S5"K+sHvLa2?}|1jvlb!Ļ\X٭Mݣ5A೑KUO	(Rߎe2L"Z-"zJbQc8JrWV<:ubmiP-`3=MKpT11bUW4uWZd<m=Nd]_^@а~4nVQp}0EVjV^Ƈ/ zTSCU
z	bE 潙@wVoz&VL=yaoLiY7upb/S/g5Z$6 `{=aAϝzjgYCȠg>
aOp=ʯ=RZBʉL}8%Mޘ  0Ob{A~	>i}.=[΍?n2ímUR#Qw*:@	MjsA4-Ь/3kבҕV(R :0|E${Gқ4Gsm}<W`3bd*9*=LaB
iA
5;۠6MmY~.O޼xOwү"rn9cȔ="F,̳Ehgzab=+ћs2X۽uu8ygUx|SS۶/,ꁋO>8 7P
d*`gdЕ6F}ƍEQQ.@[r$.g/`L`6HAa<riת"ɾ
-Z['TM<m:0װ4oBsUɡ(ac6܋
|gz	q9nړpE<=HF%R|BO*T,>q	ՈxJER#ǧi"¥e'tu[ȯ|rLeA}5`lc1
bҨW_jo|7km*{ܻJGTN8bDnh|ۻѮ`W{
	L'TS);ѫrj@Hw?c/Ӛvd{xy~AAb|k1wJ*jAdIS9n"tq>u]ffc</JQ=]Y@<j2Ղy)sTIDPRY6bzg=>jQVaPk|8mC8Ü~wrsБ⌀o_2΀i}x;xik TxVoV~_q@%itnjZT87ׄ"~5uknӦQѦNyڿsm&e9~d!eZUKGahpSp
0F.PCb &Y>'<FJKY,j0#!GOp¬Vd:1Z&@.b@YL5PV
P3ckY4ܛcgdRIhiINJ)1- hѴQ&6¥6f!)]!ղVh1ؔQ8 Y`&&OfӜ:r֢;`4QArNR&2
Y!H,21I2i!= C.Z6 iRMVP&B)9iQt"yFgë <)Y4ꊋoŒA&G|Et-LcĮJFsQGr6%k7/7ڜ{?6/M{ع¥:r;L.D;2C 0qURރGrs0%5v7{z׿{w^_ynifww	5^}q#d:77b}2ٚ],qr¤F52)tNS[ut02B)hjbʬf`D4eZ|wb},`FE3>Q'DaLDrn`ITUʮ1rySq#OowN{v俶ݸ\j߼^Xw'v~ul@/i66̙3*ӊzZQS⎩O]_='G6!dEUVE[ȸӯlx<&1U
xbEW繏hx~ډ
C<7b.hW_Jc;܆[Mg@OPmQԁ(>WFnl{E>'eIQw~o^BV<e1V2]{mn_z_^Vdb	4vAl;KW){jmKưRپKL'7bzr#bnd닅2=9q[rɿ{',O0~
FHuℷj;4grRV>XHFCmV[CϫuA<d2x]msH_1|q(ws[*
'F#c.~3!M!楻y{rA*`$Wk#BkNifShUtjإW:$*RR-~T{m7r.._C,xHfւx\00ȘG0|`9S5O4[4I[otCbIh3|>YJkW7ۭo@'ϥA@o(<Zlk֜pA(\0ɼI|,疠8)("`5#i.M}Tq/!Ran4fkv-wNJ(X桏@@L֤zfDs-RSyКP2Tx񩘱 W5 e3&-./.+ʒ,Ǒ|"x<I=iFT{dw
٤M#P9ftQs՜{wqHXbҎC{}-=>2|2X s\mk-I.t/}+6یICw`z4nw~3?\rB0%<Y+{^d30`1ͱftŽ~G,`heV@jKcwA%\6.Wsؘ\WM2XЋ8śYlΈK	PkL/cLwf~gm~\M7á-}~1h[=d3jh*dAb1'Ж~dOSQgzc8`ܕ?7%_Xh҂k9Z"`|{ym)r|r]pUzbQ~G
@oֈ{Npǈ~035u5- 3L5臨uN`5tK|G1<O=HdJ*hoNPX?pS!@o;<2L7aMޯߙzJ'C|j^NCS@2!Jz7Nwh>zP"9:w4#}&Xdm'

6u
n`tx]2U\[ 4^VmCl@lb34#(r}4NeXuTTUS#(X=X.ETkY)DX⼊ YTnő,Mr@B
nIIdE147Hz}
 r
z4\+Pc>$ {F5@YRJD*_`=6wf1
lL-Au?G 9~@.ʞZT4̪9Όuc́w $Ѵ0PLAZH#/aEm9~C!0d ujR.q5%(zLlw;h(!=ΌbtsIY.Ԗh3E1Mlʪ]τ98aOh\h ָ2/9Ed{eKy|B\oz^mGg69URf;+g6զy3XhoVcd=Znߜa/֧䜷÷͢k09m^CU)uAmJÄXG"rM
w(QL*أdVMlLVԃ#9FVm(>4;$x[az_YS$b0{[vlݽj:T%ٙi(**#ntċETq%Ƒ܉[#ee ?失ӕfkưs,imdcEʮPhRNAST\)9Vmu;Y[Ohu+~±
pĉQKQ mJ-OhB4  ʪI{eV&_4P$/K _X%׷	]9<L;&{"\}НUY7N[E]Wn9dܒ.({R3juJT"?Rc6=sP4o_qTJ@(r\cHH4*vwEJEQb	+Ko a;>+5~zR(+x1ٮM, ԋ`}~PHbh!/>3]\>z6Z
sA8QnlʀZE54t QT4Wh$P9N?	 ęZWVK7.u{ S+PNMAb @ϮMҥTݑhcTKk=:Ӈ6^#y,R o,vRȂQGUȄ&#
4^ymnFV	clGhNb;@XldʶUl;Q)Km==.(_Xwvsd`GSa".,L&0Yqp	DJNyuvgury䟀#@Z}pqD/g'L_+Gy%dJifN*ԯpn[v7޷C$Ttݎ 3KD <S
a|"d[w!@ahyly?Q':
E+֚Ƿ(,
rg|4o?;,P4]x_`#9VGQH
*[%eSL9zDTx^Ш<3JOߺjYu:{^>Z?6*3%Rg,9WASlu/uΖHŧ9lܝg*:X! >ըRg^۔0,TI.3`	kŝÆDm*	SɅ57Aꑉ|̂soK˦_UebRrToHb|_I@ݚ90]BSLT~Wȓ:a<TſPҡ-'nDb䐳G2(*_҇>4q7gJeݘmq._nvs"J`UAQ$jIM)LtxvISx&ȈO~ɳ{r/d{ɾ~$7%#ʈ.3ـ.=3lT'+NH|_xNOvHl' +ixZ[l삱k35KKt==Nٝ̚:UPZi^z5T(URM<f\vACy;sΙ?']rV)!wwp]717%}wwml'sw#yq|tcK3KQ|a06RoYtLK#oe4:YZAŞNm'zr'B4u;&i߳ZLѼXH-O}}x0UtvTCCJ֍S p,sUϡb"=syі	[$hj"//m<iQ/.|?]nOM깁4t+ZAQ˩}~/^-D͊E~E~bmiSy)>U!R.U@("z|,3q #,#p`Rလcҗ"KӯPMKffd&32Yo*gbS(E-:i? cQ`I+:|Rie4cgTs	έ3 mO<۸O$Vcgz`}Hي

Jeb@M]8s ܶJ%pK.dӜ
Tb,j
\u3#MJׂmĞ[ASh\T՜Z,QBN206N\,.-MOf'Ɩ2s٩O2XZ:҇_ ܗY*0snXp!ʟ3a)17|oT
ՍcQ``v9Ub8BǏYؼj/~#hռp|Bjf|бvV;}. ]",+kHĿ~j5겏7utqN͆F4a3Cp(: xOԶMy{ފĩf?Qנ6OIԂٌ{IF\0M(Pd:tTR)ht(b(L+vј,k?^>=P8(ءќXCt"í:BɃIGpXFY Ya0H´LȁLuYEE :W>ڂ#ۇ2ITCM.#M7heGc",T2!끜4CedSfEH"@PK* MT|?ii=Ĥ^-ϽbBL}AW<8Y,ҵ[@0VUgс<i:xez׻ncDaPLa|&	DS~N"zjӟPψ7/P.;<D@6?wL&Ǯԑ@|PCn_[*V݂ÓC[F@ٱ:d?{нC{bYRDrٹSg9(	0G0rd(Mԉq#`fA
WBMjg3HH
ûPn͕ŘЛVD%oW!+h8L7E.PG/cԜcK6U[& HB1 v3ZmiFBR!lr4MӼR
UG)67,`?#b6=ܧd  &V*_
Ycn !K"!l@P&)/n% 5!91	6;&w:^''>5"h.$m=8jr'==	Ї2	U#^* ,+kPi+n@iS`Ƹ.`V N&"B7lG_LϫWww޼a%gRbsw>'hQ9Br[lg%ad;%4S22dBC\*#_14

E[*;tGU*AKGQAꪪ)D|Qd]4dJ1]L30D=`sd,ͯDrYY@<"H/ʎ"';dbz
!R쒑mg_Ef[tr#~9w=D=g~()%de0Gz}ݟI-?JZ&*C-yv*/Ǔcog>Y$ nǖfw(9]g]pҿ}{~/mĮ%	,u$Jŧ09jl/nt%Q rV g+z;^MnGHeVG/stcd4iOV)SZ?) W|Oo#Ggd;'>66L17QUu2`n}m= 070Xl<&4.f*fFA&4? n~w^G{	k^'@TK' =Hf2p䴠q.jnзϒG?>ܰVEo_T~Tio0@u^W/GݭCP _$낍GZ=бnc뎪m5uq
a\E\~eHŽp{iU?^套@	MHHSgvg5"U64gZ	Np|	WZ~x&D Pi	Ij>+OAn'B*{.xDt[,1Я1j? Q)KOgR%t.zV]|J"{bž[[B.Ac;kF$CS<ѩvǪP"7Z/o2H5o5:m53zk0o.R=|bդYZ7"kD4`Ђ`U{%֞uvdQ+QmqSQXx;v1Le3r3SRRSJJ2Rbe9zxd7wJ21yN#+j=ITxDNڴɌTD&sOV\--1rs|*#Hp.BrFbXB9*:[7_c2:6`, ZA3f Bx;vqI|K2R7e,/2y}<fGLP< uixZKlЃ,ɢ-yXMSةa;ULǖdIq] \ŅRZj
9a(:mh/z
iOSE3;; `1?v=ծ֢*H]i6]n"!/7+]Tܽ!*e`oݿgnl
><ӿoYS^F!Y7tdMV
nuXs >!?$w?Rg;LDr8dLLRu˖uI5K՗%ƊZDE\QG_K1;q_Ovb9g}g;֟HMKxL%,Rtok:
?GCiTt˨仪ᵣgDkLe<Ȣx;GcRZ\M0]CrlHZT6CS>@?3$Ւ/۠/yD?g^1Sgn]Mf^LIݕF("TuIV5Umq㯄@HI`gM{r:J|ѽ	\]ڣZo%N`#[;d<$JըEG4pSgA 'GjxZPe[ cO$$Q
2 kFd![$*	[*q<!%}"XTV욬ia"f<~{g cӓٹL~j,wmr'
V*2|~xiek:OvT΁3ҎQOOR]{CgD@Ź>u8=F/\$s;
is3On'7r&jus>XiOĽD	DJDaZe뢎wTtUuZe5a#Gp1+. hOض.<4o4;􌺻jS1X2ʙ 
zMGnR:JiL)f/CEի' &:2+T~3u]𽞋uiTwI]ҟ>[^8O[:C)Zq1;I.?Yl#͋5?>2Nsh@ط[,t5e}Fk4TRjx~qsdPPQ!}!A!o<[owNXӏȏ;euC lq>ãc:z<;*ś|TS2Nύ._p׽]y:R*o)&R_UDPl襉^"jx.wʪRBӤe;d*1I .9Y Y/ڮMѺg0/厓-`KObs^a^	A_ ;^/m!D^#5>U"VwٖʲF:~}}ja{QTAF閺9Α=MSL
:/$o?C SAx ȉH5c3)0l$H |֐_@fꨙt<EsQxEEFDXF=U}wQ@˪a!W)zt4⌗U6j3H`'VB'>7Wm~qwfۿC_~rb5<p]MU.3$~Q8Rf[lg[`mz))4"k"d/C#\,ɿT
I[<0`YRن-kajX}Mzr\Ij,T2v ):ϧ
~@3I! adaX"KmJ;843OTHDPH}I: Dx򿌯s^|qb
O/6{5^p>7bKљۮ3Mx	=N9;c#d DvxlMS^B{Dޤ,XքFv]g]*p̹'djGtTlXPN9?H|xAl
]^g{,rDK_֋ꥬ%u?yY T~Kf.
"D WDd&; 2*;xƖC}/FYc]'Az@yH3U:{Nʁ+q<>[F'G5:Yjp4ن>ݥ^ӎ]TSn jʥ@a=ΦzNn:k'RӼ2u
^D?Oz6&OpKkk7o/!h/l5h@)PmI+?mO l5!@z6tr
pR$&t)F;&/m	}UF궸:=(:R;dX5,!fkc{BgVYaa7ɸdf@ÒV{5pUk/W60Gys͙D/#6%r.+$.Q6MYzՋd=j PjZ>pa#ŕT0`̹A࿴Ԝn/~ong93"&GPQ){۬Q~ʬċk 1!^ݪDѷ,FU{?LFA4t*87'Lśžl&,<y~ӽ2FÃD.KJ*|YV.
x;yQLZ
sLkm;Y]h3U3Ql͸6/gܼp#Ldr2([t nޓsLqvqO>l!?J8{*6- {dA!xE Load
mG0H$#'Storage or S<;I313z`%HZؽxZmSGίF>%"d2 JR)"-eV*Cؼ,gcH ;m*ߑJ_@\g^t?;Ԉb(*2:?l-sgruDaGMA&)Nx# NB ҄z9)̋5Ӹ6Y|IDbHe	s@~>!Ɉ_
yV ü<T4)Of;BoXoPCZYp(Xk;= *pI^(?P0%H"=,2/4/,}@g:D
xcAmiD9^tqnA.7۝^.!:noBhpB `XA@	pD" ě$D(IC|j 0 ?ˬ*364X5M~8 Kѐ,zCv> ]$Gj"
qB+B4~GY,njfeByRٞ̮gS%cw4ZaOff~/5̓&JL-a?BhX`T}|qâtC$VA9,jM7x]2Au<׻|vgOh8m?	SR--MXA7(n1?
FwK@n8	?]Swԇ/3'Γq'D([ =RSK¿sӉ3Fv͓^X_g2m6OT`'J*q)\w96nwf!~mmd:uaԊBi= Xμ;e3yLي_c'_B2!ښFÂ0}_@9O$'һ dffclYг4]Z ~F2ru`yU<j4_*6*Z`x"#wHO10rɘ]W;;AFZٟ=I:/@%"}俾O$NxF`.ٟW2Mt:}=$:#vyeOu"ЋǱ(ֲQ9t9\>r"ejRy!l}t]=72vq+I ǆˬJk(M?Z 	H1b*NFQvk/Uʭ%Wh8VNWtFjgJ|
b?Pi_*7M2N5#t餌SfR.x0HV9%VJ88}y֋$q̓#'ff9^խ+8QfԇJz&Twz`7IT!dab~8G8gޭǋ*MfWG6nvVfۂbj4B!Je) {P䏐ECRp>Q9(ÈPlp@4R<i~
]]OA2qd#ʓ_IP&rw7T:2b"(8R+jI1_O9i]op
=?[ܺfz651${fWKJ~.j@z#_71$0v=8}9Of@20}@AuLݤV]˼J**j%\`S߼ĉPLtq$=B  !t#oDl1	Xx%:JsNhׁ KFp	#<n#2Z2'@sUƢFۊ= ]s3=雞'c.WY7X}d:YxFa)RD[[>]Uh5*yT'F>Ǔz @>N1!ʵJ	*|RL\Ded=BrdYxBSIE(e_?b T};$fIo>+;ϰMT&9l<W^&Mkm4.Icw6/H5:UfFe(OɆJHXr?H+qʋ f/%y
tǚ3sz܄&</(`Hǳ)%ms9n566}6k([+d|13ec"0UԈ*x
2πХ_,[oLD"aɎ&~Va!j]Z%E9xIU44Q
tǿMƛɹM֔:>{~wqvb N#[!|)?z~jHT56y4r?N^ƗB)A(ed%Ԩ[fSo
J7ǋ h6וUCb_gcl/w2IFѵNԽ{u X8l>)o%ct0ODPXAa0YTgo&~[ cv{
_a˻.:sFq0V k.^ﮆtW_Ki*9pPu5S;Nx"-OE`e1{g}2UHcQ?%0	EksL#Np{h=x(ɢjZ $Y"&PrEik9i,D?z`d8t2J+s >}~ʒ@	DbXlyo?~XK$G'K_`nÜ֝\l$ e^\^!AJ	wVӇ{5Δ:3}[}Asv:8iR8Y5c"?b:JETE/udږ b]Vr
Ќ|0K	e.oL;ْRS1 osfsrujQ	ƛ工JOzq1ЖYRÔ/Ǻؕ_TV\65g=_4xc1^ U2TRzus]5rÀ]qК"kcsޘ1w6edxV]PWPӒکF"DPHR;LU$TFX5VbGFh@D^D&X['N_:N}MA>lnswϟU;Ĭ#Gͱ/cϨoh0[hJ~M\io1VkuY[gQ35zJ&@TܼR2ʲۍ:h޲cއ1&>*OCWo1'6PCIbx眡u6+/ROBj
mz;^!Gng?+ݹmop{nǦFf=lQQܽPUoP[`nbo;Z FNB`Q
B=̀V!F"Ȝhi,ټI/-\PӬ6k< a\-5EbjѼXrR]ֈnQjN! WofFRklBQ%75т⍆Be8?TglGö=j5.	5&M[KM54aZX,J4Dԓ6ؒJ&y`-f[PvuJ~&M&?<9>~>=F:CQR14z7Pʝ8p\n ?FOS%Ȼkbڜ'nϖ'rC+-MFg|+Pf2QJؙ%h WrPEOy-b>]7EW\!>W|r
 ȡPOv=Y`'[`L_c7HlD-{ďL_	_g T%fW+s
>S:('=4K'=\pYI|%S$۳ebTBn2*ކfC	ī83ZL*muֆU:5'%?";tz0=R|J5ފ>b3UAJJefezpwgikɽE[PG8nO^ G8u@pܯpy|Ga^mShႥ;1
 Fdb0̜qk^]mg9O3^'FN<F
1}]SZ0͔6QQlf]mg/xڭCQ͖=TAa9?@t0 ov^}_łQ*{4lNwL4FG$x1=8WD~|" "ם wr;:_`aNS7x9SG;M[C(}<Fʆ{0"4)M&?d3m<dK)C
#C)Ġlٺ\RgaG)HGJoKWJHZ'ĐK	\P[Q̟l_|wΒqkBg*zi"^! $lu!]̍Q4;w7ɥz&}7y5v㎳Նܝn=tN-h 9rb-j-a;D\ԻiZ"0/TYiOǛ_@72Ȥ"lse+Ll G42;̃fUWW@J֐.5KȞ 9.|<(< {P^f8QwF#ޗftSOha]<7j\g,npcSMd;xX[oV~p8#Kf"D7BeI$bEY;ŗ6nd[5RD돩D?/R֕ 
0s87sf59yPHQɏ?s|!t Nb:`ZQؒuE95dcT?@װEF3ZE&"t DG9"a2X5QFP%"$1-Cuۑ:6DACUUg0?NNNzEi%[XFB\.QYº4 t*x$N"ECb^P1@3&E[8YI6N[<QF}AE>Ih
}L&TQ<BX8cF, ā!<j,p0Rq=<mN)]#N<Fy:d
X :K.f-LC4,Sϝ?7"fהh Ub|`JZ#8rdng ui"3{I
 Xfp4q*.ۄ	+,PsVf%UhF**wD|]}X[٬.ۛf鐮ߪ={޿ٗ'7-Jk_w}l²8fRm.3M{IkVxk^]e$
C3,ψQe/58S\H@rJ<LD<erF*d1H7iEwٰ6-S̒ dTUB}*$ז;;1`xY.מO3B>QT13Cfd26k2F_dR_PypEWHZ0	`28¥$@|)_Zi@mⳬc1a8`,I]MtWvY1_߄ezk؍Sf?p5[e@?Cwv1Ƨנ!.:dØߝF:7ǴYަ[^^,ćn$kbk՗? آ+8
}?+nFnXӴ:jkQn5Gxs];X)z>.4{nI.J1<&h(9˹=:Y]λ<<
:{'rJY=Oo/4[cT֪v8fVZ;OoXo[CU_mk>]1c:	pN] b7j{shPKvYvegL4b=ߔZJ:~OWZݞn8=55hBx=/w+wץKK3Ig*?2}]/!'`Byq}.pҤ}zWn4+Gba wr&ڄ/n MN:}1zܦ| 郳K% *n{4 dmwS{򴵪Tk{@\tj6]zPw7]^`]|Fqhl	l}sczSDEWb"*jm}&U.SNR? eEHoמ:귚ea-kfst-7BKdZBV+R(p!?z8H~<-t9ag` E#yvBQ V/"3oN3F=AUY&Aގ3UuNL՝ܙH~kH¢ţMo,7:~XAWnX&9"m_nx;Y{FPzlKE]|Mk{۳gsot^',>8L*@w$.UPw1.mHw7Dwo;>\\p1C| _!o" 'G@	/k8[T}r-UC'	)Ot߅e2B独g bR7x;Y{Cd=6%셢.>Ϧ?ٽY_ǳ7~:{~LP;y*o;6o;k;ي[Н|CqZ..!ȍHz܆p	̓ S|C#F M5->9ZH}*ㄔ':m~2Oe!E3 mRx' ++	 DLP 文件的权限信息	;Jx]SI_Q|Q."޽NLӱ
LLܘ jUFk|(Ap̪zuWu7.FhW/9yNS'uBs2՗{.±qTΈW%Y8#]#hΩ,}$)*dQ)-$)%F/^FJ+r2!jha㧱dFDR2mȊ ]H)UB$ٛb*H?Bwd*Bq*W/(*璪tիWDBpC2s2N*'υ[Z;ZN ѬD\R!-OFNÀ1DEn 5.^iAIKNM"WӲ*'z%Si	ʊ33D9_ PѦ!qT#Q|bmS{{SkgChkZτ;mpzAĠZ*# 2eDS3!IbIJ"rL=GzWtF$t*@`˽*c\#GN$Q5ٓNfRBSpW+T"OF3qҗgٝp!"G%L%1#e
}&HcfY'tJa2Z,5\OdΒ%JgbnRnr[{C[nfokCio2*Т7vnk/t7q'z+75rwZL0F+%IҧDĔѧRo30oվB$L<N
_U1(@/8MoZZ:[>k"xFQ"D%FőϤ"q/K&cG2ԾvԵ
<(m>*lO:e巹e:=}nVX̍r['LDQCVO@ k㴱w;#hvc-{3K)vIGIwS]+'Nl}ak%[LW:()jLn[ؓiWj^o]!{/ɷ'cW㻕N
mċ
P	Y̔H't%`Hz%)GcuV:~z>#qG ٭1ƥ\03ٝ{P@zM.u[81MT4)ߌ,?f7MXlK9խh+Wt́oΤAsv!ҭ?}dpo^_Â-L.Q)̔@Eꋡ̹΃D%UĚq|?ɨ:aM/u7^[H	ge@\׆V-uJM5 ؍UjZL(2Θ޿X}mUf-A)Fi}it\aF(b8IQE[e043ijAL Lx]n(#7KId^"$wI-I	R[Vk_)fO`_[n}3
&jTԅ  ՠ^zhP%	.+;5\n7ima5,jO;3~ASjyJ=;E]]~eM{3f:"jU H@a~큁]mxÌ5ъY}h	f,L_Y=2ី,3-]muۿ$@MM­4.P8 66&acGg1>QJz14:,gӪ0;L:)wɂQOe*s]mcKLЬVl,	*i/847	z9wOj* q 1Lx&dkIJ*57H/tet!rZ=?Ng[]S].ϻ;^#N1"Si9𡑽`-fwPu<dV<?CX	[~6:r#()L>~/8Cʯxx5CeڮMd]3w#< ɤa0sDyj+Rӿz3X/=>W;bxR,WfkX(dtAJtrDm	̓"Nb_"}*Q-T<OV!f!'$(R9F;5ɴ@z.#߶^# _	76zEgEE'g#Íہ&H͑L>Y$>m9<s<3Q|M!'32P`ʠ^֒15>6|f,ۿi:nmij̿_^&\
4ut[.v^GvJ]6_?\1W1uDPMQ	PViHM *
8+K(Jй[Xdiީw6<Jߙy}|@!#meі~`A7mܠjc/rήc{PLZZ׆w;^^{P&c`2ۛeݍ> #ݜn?l%
AwBr"Ę@n.Ȇ&1ƝzZi[4xyLw[Ojdj	5wϕZ.k<o?tZQ|L>!vx%|΀uFc;1rWR/%I-*C+Q'VVkİo{m(Wǌ
p%8@]
	%"MfR#ŉ-pPIjEGPƱ^"MG<`,u*̇}dVew5]Ω5;?d~<]w~ )\k~+:SQ/tk@tiIxW5ܺOw]+H
8jQ];؜;HRzN#/F%W/r3T\TrxyբiɌq"k-f@Mu}_fiubq-耈q@Qpo\kwŅ?\a#K{B8#"ZG1k#+m	}c\|Z 7$Q򷟍ƀ1cmјĘjGf?Ԝ XzsǄ/=Зs?QxL/fW6QNDk5skϴо5R',>u \32_I^ /TZNO"M%%|EpQ,JT2.wZ
 ShBnH^͎2p/+HM %@ɤRɴ.,ί</w{Dޟ:n}oz!&Zx!_h't5tsOCyk6s$-W޾-c-\+qL"=o8jnہWD.)"<$=2e,ȝ=9 AՄ9O؟S7@J-AyD'T|E7B!:i{`#B=av5Nbw3m<F˙͡SV mR#O};gWoDwE9 s0fj잸^;#=$NE4yzbZRIxUckaLjn,> [%y(񋓃>B7Q3o/:"a~\^XԕqGRYQ9<{n|;+,9ggDR#N%w/ܺslu}>O5m yĦ9y(t(	
Dlp&&,E?0n[M
zhW*Iܖ|`Sb7TO9 ለ1s$n-`h'"ewzj#jË532E9<a)BAi?Y|0:>w0:mS;F֣x]H7?Fu{E9-E|8!6V2%=` RfB@"EM筰t>I&/52/s1SO.TeӅMg#WWqֶ_G"&OzrG79K TK"Zs2\AO)ښtBs;4+=
d}d<ݷ*rgfBGs͏Oi۬=}dA?Fƭw;C7s/^YVcxS߿C޾ET/QگzP̟p0=~d. gLϹؿ$tw.2iCɪU2"XՄ#2ܼ""o*{J0
gxAy&<PݺB//yP۲-9D	U@qcz8X$D6-k_;v;٘N	-~w悌رW͈j;rG>[^Kܐ;Ln|
.>vI˺<Qgf{GRlAaxYPn}W.>ײ -dgKw]8Хomذ*јK#W8q}c.(9sn,RZH0_׸QZ_eg}j>m][]?`:	A5?GfL)wBy(_bЏҀsf 'eo5RgydZER?Z62jerwKz\/~ҽ<7ܻ&}1gjqB,+w}}4P-~08-{bv)%Dt;X1r`OF@G͝wv}b }_px}-چ#=28đH-ʐgnj7d+[@R 9TQH7mӓCl는MmIz#IW`sPncN~IqSųsژԃ|~]R%!/eEN6IvuJq'3	UG㘛b?Ɩ5ek$e=Ciw؎\"g8Taj03	-1}>BsO[VH@	/Q(&V6ZOv*n^N&Dg7q4kdr
ي/ڣ	ˌYh:n(FGw;R|+
+G[n7J޵SF>8r+oH>_NNyq[]?w&_2l(_TfrȥOeJ4߰<:H%}[ԆRpE'#'е3ha֒64ylx:+vvBf/ޣv&=Ę!Tj$˯fRj0)Cv' 4AK@B~Z03~hc`&j={lj(B~m	 /BMvnv|J3k`-Cqo48Z~H
YT Pf>o<F(1: (<W%	(>TQX,!ൡ"3{_~gJyJnjGq?<j[˾	\8,m8H|~k[;[e!V_aɽ_؛tmmm9#7*`hU^Ť4ctB;Ump%ɢ혣0a4ˬZ3ycu|?ab=S"2T)Jo3lJ([A̼2;1<G?^G0Fbcӝ}vO}^&YR\m/{3uBfsd $݃%vO~Q/2$<)LځlIS~i?.sOpdb(-7`elʼ}	q=i$7Sm6CZAcSZD,046b`[ng/&D~.hV+.I2bʈcx>O⡳N FAXV>Qcٍ0\@b R%>]7 F/1fb^mHVn7ONL  GsÛٷwh`Wv<m̓161DS-*
%4+:XvAVFz:%W	L-FCdsqWyҷԀc1e婏Gy++pɵCfm v)xa}}@^Ie9l={Dے_E]c+HeTK)6璈|'@9j͟`FҰ6Sb#}FXq)P8Im-H2Mb,k!o}4e)mE5Xk71n!*? [زQY	Ҳ<W/ɑKU9G{);К
+*2i;%D	`C+WÇ4BQpLL{X)aJ$\稭repopy}ޘ涨Sקh"	#)&6@II9&KQ8ZKlBE LLcل(!k-,YJ$9	"x	s'ŬGx?Qa.}|2SS˔-ѹD@*ȶ1.Pyh1grL<aWdΤ*+edC	b\T#cnx!
XnҪ0tm0@=#LcO݅%1K'Uwƣu~֎{sڄ4v>dUH-O|+%RH8p0^jsm?6n(}#d1>j^MEDFήbUcf<TJA07WTV'E{SbH	:f͓5!mGa#x5M&б{7iؕb&:t&Jپ$vu5p3rMӔ3)&~fr|yR{w䴢8k"b42S>0YǴ5'{T994;X3Q19nc9Ԓb{:ФRq9N'zM"<Vf*^ߢ)`8ןm!WuwlׅԂKBX+gux
;Ndclm¾X5ruwԌx}kS]7sv9{f05PIԩTFSN/M."A1LV'yYZݝ՝՝u6Lmнg=}IGqtW߅KbPhE9pL=bT_[_|#a᫳|ԗ Hp-1`LDAB0,tG0f#JT]2x 7_lC!M5w5_ݸql|6r.DιvGW,Pg8$bBT(VrBa!W"7x0|o"	fXsZ ,ypuz KN㱵vw{tZ[{𽳽 ba>@_4b"W5"FH>;ƪu1	}bZ0^a{L(x-ɥ2ѹ/8D,]'	/N;~#}߲ѿBG4r=#ƄX $bw\ƞa+[لX	M!;PAҊCF>OY1# _#ڨC@4t9-=y6b%bXkvEY?"	Ʃ{%<߃Ym>pi7xO0?{#JW/_`1ZSS_pO~!6v|qn'8m.hSW__ 8Te{8pCŹw(66KϞ(a
0@'R}Utsjn%[Gjnۅ[rZr~uZ]/[ޫ>*=-4DJYr98w9<fG50B=DmzۚyXZ-8[S%"Oü3iacbeЋwhtm-&`Vϧ^NNr.gfq
\v
''ww|tMԜ4ܜuXV^1`_'(Yl)5;GR~a56}p8"ij(2b51Ia`FޒE2uRr%
QO>́rxlP-LWV\0Sw\]$xGjs}5ˠ}K^8|fOiLu]9}4O՟դvgqe򷹛v2Mg(5Yi,q&NS#ZnIoY[wZepwUc(劲dlʠ
$]	&ufJO(M#z;}%gQMx|NJGkynIڿP*/|x
26wg{3ќ_3EXB3T/i\zlvѺev^3wsmn$+{28ҦQQ3mcxPǇFnTC\%]GGI0)gWxZMuOR׏P_/wvvm\Yɭg\z
6`[lb)i]\tPJ^gFkdgshJٮr(s&:"`wv4=Js{4SwJp~~sqn}/'rL.Pd.k8Hr4(Y톞AwK?	7`B.Jژ@CkdJrpsB%Z;ȿS[ H$Y-PmpDPῄ
0LIcUj\QPQ;hӚ~7U!bŨXYLĚX03+&
p}K\z82RK02F-ۋQ`;@@٫T47z+=lP,`բjM1|f͟e5`2em>7o.U*6Mj%8D)V8 ?rǵ`4d۞3/ui:
̖#V݁y =[!-0҂\Nu餑{9iap:AbN(Sx$b.rQ0S%Tm2op3,z~uSz6姶h?a%l]irC!aP>g3kmvvªp8'mRu@uZ`4MPgxb}@X| aң7' Vn	IކzJl+\i%AQI^
LRkur	9Oc(5-$`~@@8B"Ų\K>v|64&jRY7[y1bn;=ƐWɁ)*2a	tD6h.<WI"{\*[|h+8Q]vT{08\)UĨe["nO6KEl;[ZGY57"TÏ8Ԫw
%\LXg%=:zCI$U ^8|XzEb-l[OǙ5#E?&-+1MdD6ϬxN66Hi@W2bi#AZie5O[5#eвh6guipؤx#hAڐi(BJO*ڤ,piR`pv1|F.mG9OzME`Xom2t:aj"Qo<W+vE/N$F_noxtT!qi=$čA4
biljlU3Chc&¿n׀T!9A+~-Q(}!JOdz[7Ԇ+nd6{+l.˅aL2cwqbҰ*rvp6]t:lܝ KPWX%qz^/@}s:'XdN,Qϓ%:'0ZޅA"dp4zϐ!W}4}En]}%i$_ckvc\0\6J?¦k1Ikz;e@f	mSSuNLm:d)lPSzgmRyPwb p9a}Z؃`7?'e\^/#{pT<ԓ쌌Kv/9w4: 	k.^(g.V^%N8_4'+NB4;fhQ^XC{>.&Ǌ˻gk=ִ	Lq({?}񥭣ECأk޿B4;DLht+2ަ`Cbz@wv90u@3O3NÿK~vSb$G=`,.F`8jBݿB v50D> _S];6]*>~AW
/Q>ng{o\uimF>w.]HǓt`6N!:;Դۄ0z[t ?GccGp8_`l#H[(O۠>C4:@[)h<R8/xULo)	n?ŃŊ`XSd>Ѩ)Si6Ncʑ3EyK8 Fฃ.Nߎ;M)T\)U)i<ha?	ZDb3V6Gn%:z#W#۩M,$'co#[mNڜʖ%@B$D+vx?"rY2UD"`,btPkḝ\b3%wY|go?JQ0^B@.+tHwYл e"۩T%fLޮfkfBv](,KU&> w+F pT;i<\)JVVVTQU{BfQY,]E5? H.Fn.`ba.`c4N`dP^UCr2`Mg4l@LUO^Kc0#m2vB҃:qC`Q,8o~^LѧXbf񂕱܄PNN[,!.lC%r/,L%-$t&3؞:+Yimi9Z`z,T&or]XgfzP q"oYa2IcoGepbc-z>./48a~nzP3)Znjz%
=aʺOp9];͑u)Cf ;r<b~27OZ{
pM>e's}"0N~{_+-ĵ݂CNWǪ1<6;,JNba gfneR=fw=GwIT9(~CVWӄii⛲			3M	
5 2K,y
G6WP{d29i9cW<ƅ&B<m8 ՞>l-xp\TYDR%j	low $ңqRJ^I)Z'cj H	Gfq5YD_3_wa[ilWQ"J_GA{k䤛`ݢكaA#=+'d=Rb(15S_1ChCr03[auwG[7={0(Qx(MHZ/&	~2Nl'33lAlSWowz8+X6TK%oJWsG劊hl嘾oieȗ 2o.G)na
G1_6?B3RZ2]LTY7F8U[#TM4!YmQ ->DEs4n*q3IivDׄs^`X_$&64,2,Qh&P\xل|rT,O_'NS *;<M.678zyWg	?.L
_	SйiE\+1n(<4BQZU=ZOMřǅmm4U"떀ޢ:l[ѱͷ4]9d`t<h$jf(q"'M
П_(Н
ArW
TNd &.MQKz}]W׹8@Πgq&|cٍgCh1ZQA0*1禜԰{yޝރ;./<~\V?=?RL-O3YtɊ
Ǌ5|sF%Bt:NV9c!9ƒ<K)}3wFĆŞڠC!@{~5SJ8$M={ 9ߐTe=:#umgg_\HJepRbkV_يhMDa4%v=V-@G iM*lo޷"1q(Iqq22CDȵiLЂ[. ^ #{Eeif/z>2-^M&*1gM>ZU&Lr\K6\x,c'Wds_\4<bSU8qXUfq#ddAg??%pԙWYL</48I[	-C74"p(Ka%?J]LnR>58neql57* .ѽI} JլI4<)srm~3k:Loch$q./ܙRhRMFU^Pˋ(]iZX@4y"Smy)_1m&(a$I9q]_/ɧ6!ĆoEB`Mh:z,bJkٞ&ԉ?KGV&SOBbzv,7MQgX8FXn֛z`pwkn2qxo!?"w.yZ/ҽ8ɫ?+;_YX$6OJ7y	aDD.}fou8?	fenj)l؊Q}@O|w	f8]z@?gj}dtt;?&7448v`Efݸv3՞KOT'\ʠ"Ke&iX#4G>8*.|yx485{E%~3${$s[qƘT$o'Я7KGj,qO( =G+?uV]kɟ-gQPY=K64>~EQU]\5x<^ަ(^ӚOQ+*/Uyh~	OW4IU?	lKki0NS4&RZ(u??1s+^Uv5揚!"[ɔ^4[j]t8;Hj$i_IDAZI|l%=6٦lc6P;DʳM6>f1FR+ lc6cQ[7?EY0d{mLϵe6ƾ*67lcfo$j6Pm̆GyЯ)y9%Ixq'2$/:Ƙ=U0ف$yMk	6U',SԚ7]$'rƪ~';sBIƪjЙ]Ǡ8Zѽr`/`hIo)5=
Wxr_^$a02k=uLWz)y5(/	2^ӏO5-46s0y*=L?r@jT~}MO`A=ϛ^`=$d9%eU*qځ/U(rӱ*Gka:d*-_5uEUʤ5.٧Urq9
3P2 2H<-0#`huK8).*EC;)ѭaQSBʟmgDgOQ@EkU/cW.`k-%>rzKVwz%%Io8ᦷğ9YيIz7bz3/;7's-f='vϜ,Al$wibz3K32:dGr1eޔyqFq6e-y8\FL1OsER-J>:tKdGGM2`}SIB5O&/*{/*wzQO6m|Z`jIRTk=~:|ݺ!߸t7_f?M68_VN.dk4do<[N|[CyZw6<U:1B={8r;LW"e]FZ~d$<pTEL5Lu 0~GFnq%q]*fK>Sl xJvbE͏ 2j͓R1\cvbg [.|s;B<g\n\\>
Ǽ1c|r&ɘņ+mxC5Tu]iaQ~}%Mn [LIM'6$ڛ_]Ux	|y
ڤN6;7Vd!j7g!i&4V30k!g6qM2c
68C?˅7%''h~eV4'*Qc4Vǭ:ՆH_Y<O#nc40;{m',bu$~gWaz6:=va'n,œZCwZ$ru,Ed@숃Em#~wwmHյdBnifW%gI/Ela)	!I\eZJŪQ"рE):*WfE^ɣ'hcfJz̶/fkϱI1vf~u_Cy(@Tϔ32r'*$LfȔRؠCbW>8нqEWjEz$#Rwk7*} u|)4/Ŷ[0%`d@5+R@[E<f&7ߤ̭g_p✦+M @_@6.d#RϤ
#pbFU4,|Ǻ"2,`8VtS?Y<Ѷ`NK7Fk67McyK3FVyjœ.\@qyzT[B[w:83jIGXdaZ`LK'̐X}ZH*ؤ3,tsmu[tH8cS0,[gS!NárwWߤٯ7Pwϕ X鈄R(тaĿ]P`Yr^X/ί7.)k+Jm6a%ߐ1Ld](b\7%o L6Kv}B/`/i@~Νo?8_"ETxZ	XSWZ\ H- 1l	, @bnU%j"*mXzZEiujq-VԩcqAkR˴;^޽/%~_9{}~~_,Nٺв$)h7%Elۂ&i$M$m-cZe75[%		8&kyɔ8<&E Hd$!~@T~R c"?2~lehBqY-Q6/446iQNdABIͦ;{N}p둙ԍOTqQ~5V9/2C1;ғ=6vx SYs:ك3[-إ_BkaP0E\\M5c'LLC S<MuIp892J)"GD	jPʹ(@`Ba JzcҠgNQ8+7!J`orcqVZqSgDwePuZ
AF1(Ƿu8$аNp	$n:֪FZܰX'NwwL<)m
f,ʡ{AGx&T(Oi>i!K+Iȧ`M=wv>|pI!B9TZMӡ<q%Tr!`:"(c qD uI0 e`,z:k)E٬6һenc-n-C03
]!5ǓA<BM;#\acPʨʏtx~d T6!vCˌ5*hUyD
鄺hwmѳO"؝N/c|>m,!aEX5:fEG¬ltL'bbΪh*]YVYb`7;\jPX}.nM8a0Ab$\3~%^G1RV%ք. (eZMy&򰎓4kFVTե1B/N؎YZFWVjk4zlFH^rrG$dgɖ EkRZhc4GP#q/-7f%cb Zl!¶P%ANQdij6ڛŭ8K4tQj
e*tqHڴx(4TDSX[XY_3[tјF߇Z2oC1(<EQ\SQtjH<_X6f}bɻ2A)` L.[DWf,D%L̴qO7ΗN5|sc곤pV%9<|_>c'|SL3
4
j@kZ6Nېbn_߰>,-lov"Fkteǣ#%2=Ysb+ʘ9)rc*2&cC'cl/ӟ.sN_MsL^|T9,\VsbrɉA[0l̕Ĳf2rMoOIE7)?"C4{`	GF-XceUha]4k_0סd_)-#BVEKQv4"(XR׸\8cPw825Z-#^Y9,s#Z2`xGYB0`fi(vhԂ JՋ	ΗqS1RCQ^ΧLj{ye(Za:V
2@GM{* .isuQH.1}W-I#VkŰ|8PN;RQMǑȐ©7bDUxYW9vVS#Q_dijKV;Wg+éc;ͧ/zu;]Yg>-+=]jk3v!dg3!C1RGWYdLMM%#o'h<"b9G~{;W25C+fjn0ūw;>Zl6-;SkOjGzO>k?{_o{tzmx螡mӋ"b"r7dItG8-(HMlf|wwU?(B+$of;"BL̼'%<k,u䳧|[윝v ϩDQQ,{z*~/nD04E!_+/K'`uQW1v謿B|mѕ鞘3 `F
g+<0J!TY뻦BLtvj_FKi-h	MK0ߛ<ƳKh=jXm9_4Zlv6omj^ic s52Z6,[Jyn\%&ΞBFN_Tk3MFP"!ƷAJ>BSk7UuU/#p\R`8*O7":w$!=_BObi)kkطs㢃j#ޭ;6M>Vmv掂͑@i[rs[&cö-eBn-=zK	ѣC;\;u@}M\==]1 $Qi9~CzD=SK"vtk_8zGJ
f~bRl"lpfG!:VFV1}vOе+!`"tBwO hv˜>S
'}z^uS
T |UdAO~5Bߙ0 5}U#v]ӣjx>hYw-5oһJ>zP,?ދ9\$;bx	NBJMvt"L#Dz\!m9]8"XGƐX2 ACF1JHqz82UvQGU`Ut_-,>wLܣx+Vk=VG_8>zVN.us:w:	seݘx&;7ۅĆe21XFA$[Uφ˿3gObϖ@^Z-- ?F#Fx^i_Eq<\x':\H$X^XCY}$>9fu!U8XKdrbG]YJ)՝)7JMD@?8{PX{01glm)E*KN-j6	);GUEWcǯf6^Ok\M'_
z=B?N| oGξ1E@sEƼ7'tpZo"Qs,_jrG_m
bP4XC3{qH
CQ#4ù)|?"tf8ѲJW!>^|*!{+μO&!Ypm{½9iZXĿ#~{y+?$ܒ$
1xs,~.iy

%)yřy9
y%
%E%:
%
E)y%@%E)

i9%
%z,V (TXYAorcd[_aAl2bOn.eg1B @qnxt-,X^ :pֶx]Sٶ_=9Nǔ*֭T4Н9STy  ' cNv'p~t;
t^{Z{wwWʸj9ڣw&tĐ <\upGR0i!sWEeTrgpӬٿb=r{8Iָ* QĈ	7CBTDɝшK}u~uFCnxC(\Y+rUqmCӢaWDhUW]=LF-RDPUN?&*0S!Xݜp|"@&cQrN۴n^0jl23X[+x;pi7c"|͗[k^p~klK:wPS	 1GUMKS6F&`hR{ovKP$NQZU0&;Eȭq*N(#Úܮȱ(wMrw=/A
)B"
m\"wai# Oj&Ͱ|p/C=2r?LAaa!e4먓0)HmV wUA128qj9[ʩ ʵ
>pwD2DxDlUxdJE*U&nrGӣ(Q5O㡪XJNlq _ׂO}7DIp`0TnIH,,pZJ~;!
zӁKv*[vZe98m)Jgij9ޠ3N9GD)*.aJc^էLlQߧ֓[;h}&&__g-SQ^;|al(Vrwyr[HHM85f*JCS3?dB?NC?X7kjfosm{_cL2	09𠁦Ą*\5>쎶k*S^I@NnLS vlj
L KS-@M?OeZx3C{Lyq4njjtlhlZ͵5&a >Gdz`xv(-UzW닩;Ѫ>?.ڈ}q'	"4z#@E^<c41îʄ `D2ïL~fyPP.I_Eɭm'8
q^rlMǟoqܹ_R.9&*K=ʬqʭDU%`FD!>kWoht=}Z`B9Æ&'AgvfK03P	-@\h=QvɽAOF.Y{gO+0 ѡ8((7ݣm`%0Enʍ!k~o}"W-"
Μ|ۂYC͵FYaւK5+r#1Qt;1 03Zʡ"aSYj\uSc>ȨЭ8|`wt4['HWU4˱PI/;ru؝l`ԃ[fQUihL>B@]C1P#N"e`e	JBwdUAVz`T80IYa2K4dDʅ ZNzEGk9pQ?(X͈忋E>tIadQHTG%(LUu̼87 ʝ  c6IM=9#c+ٽV'3zrr]OzoXQC {ES,{*x/$4:-b{y ʓ[kh뷇#EiȼfV	<M sB4RAj"YKHZ#;	J
ZrJE_fv2үg'wȪ'{iz#j"vW!b':iMz_ kḷI}a1|67
yz9\ eI|Orl湞lQ'j.l0<v5*Su1`C#c<~~ !jowUjg"3է'1{nB|_zn[҇qkKͦ+w闋?]ACg{FݸW0YLm2*"|-RF-Ҋ`1L,XB6xqGYspP	6e[m%i~hk K/	Ej6FaŊ_JmQ|^e~j!~mrkD_bvcaQFf+G@ p-kTu||R\'ZTqa0EsBf<c2|H'0>Gׁ37`5=1L~!9@9"Z~)Fjէ޻)- Dk3ngBhB
s%H9CՂ7)^8xw,,+HrgC
GjQjn.;Kd+lMADKY &1l^Nz6J<Ai<SSy"c=ȨDiӻm%rw!KA9	UۅR0f&B>#9l65at!rF*Ak[{4wC\̶/$Sko%0Da3_cuP1,v
&ޞ"d*M"Xe4)>nawh/|jnل2ԫcXP^"ۉ<*8I"8Ŭi-AsMb9̽q-NF`tN-E&[͍@!XmjnZ3uImSD;@E
=Qb!ˎo Wu@ަ3nb^`n1	ayV=(>n;lOmdlEv0sO 4MlLOnzF#\sK+0:
ď);JǺ#V>t/s),xvɭs="!hӅQ39G"~z28J$>=!l֑Ѩ238NFC&hځSGy6n>'hOQ?uL2MxSPRlsLHs=/9DpT?MfwBp48b|"֛81-=ɣ	'GaG&t/543;AIVv]<jsM?Ĵ0pgh9.m#N-w5V_1n,}5E"WUV.ɑ(KqG$Xn]e<#&go`JkMf[uUp!W8Lk4> }4tzUiA羝M pk0hvj9tPn"v{Ċ: Z2u/hR9(Mcdc|?xͻ_UQKpq?.&剪yr`<<1%eV7C+YvtuMAҿvu*Ta7&TzvS}}9 34roYf@"kwrkMAwm>NlM/ˏ
K_8ЧXac{c@!:r_/Xe^
C?5L9`,3U\螝v$340	>Ff=bpçZWFp7~_*4SP53Z?gUG
54Dju:,3c`MsoRstSDřs[,<~F_D	^RJDղݮ
Z/6}$ȺCNǯ\ <^EwFXV` 3==cMڙ̇xZǞ0.v'Rr^d>f&q6awf8{p mb,iv|MP`&6h]T5Ayu(n&u2M=[،S4aw?RSsF*ǭˎ{;q[V.]鱾Elx+/F6?1t/nr9l#m1Ǧs{?wNO%<{+榵gXTQ:[zb
}I+Q606^u	AY`
v0Z>C
Vj"{%L4G yl̐G AvЗE>pc9=zZJA0(6;o݉0b0tyT5j8Nتc&؊t8p#--f!Q]+PM;}n$%iǃ:;εل놖:k~}aڒmUz䠵5|6o3J?mcn4Z"i&^ܓƨ>"H^jT}'85_ε!h)u+#niIP?'F1g;0'·J&BuhPS}G*8"̚"X? *ŘӥccmEh>ؑ3J?=¬asfj~EƸB(f62̗3ÜPHPնXıeqK^Q&T
*D<\"~Y)[6gu-fLP@3"涬-u]ʠr} ׄ5)h,xmW8|R.Eͦ
F` e)r,Nŉ8N"8:jwAZG~Aioۙ7,Ծ;\
+kH3
ן@܅^_GMAxv7o!~r}Б.6=al;y?W	ғ%&sN^)Z('6!{m/36CysqF #h#xvq 2Fux;wq7a>8ِs~6l̛90D&˳ql<ybd}a͖'@:LPQs'EO8bP)29$?8rob1RZ/)J1MsR̫	n~]057+銳L֓|^}p;74Vafqi8oDNfPlɱ˶yk<Zy790Yyn{83}1nveybp#'Wmڬ, v</0x;w7Owc2od䊰MÕ!gx[q}m^++aN^+˵/ xY]oV8*7%։]l,%)W$G8w|!$A)P([AjVH|IQ?f'M)0~}8I$4BhTkw=#_æ\)`FqVs8Q\@Z2FQ]?we F{7twC4UR5LCb"Q0'Xg(Ut*VvQ21\Hf`ʭ̘M$RVòSpX"LH\%ұ/hiBUa 7	jH֡R4Ű4^tF02"0b0Jr&a*v5 dFHJi)=̃LJɉRDFQ2F1)#% &#Rbla@:;2	G1PDIH5d%J*Vj@F!dO$ȅJT3u4IԂVUH@S.r":J)R'G>7OB)(s3_FNSXefV:U[iY刿DZ9[ueYi0+eC`)#B@SadSFe̩Y%n2t bЕ!=(!*& @~ sI*RrwhR uЩyYGpeNӅZX4 SHʴȉ09v'(=1!.R
OŲIrr2;Kdx&VD}B|,1X!iJ<	uӧ_iQl&"C6$ :5RPNzPu^Y.p漽v:ھ3ӎ.SsZT_{ϫ9܋3	$9eqNvY	nbfB77w_XWDe'D5{}5sL}5;c_¨(+n.4+Ғ=GV1ǒ7	Z1Ao5
d' Ǌ53'3zEh)Krsqvݾ{ǵ}}>y#i_y U5ظb^.@zIcѸ4:8X;5?Ŵjߺgߜ]??MDRhe+h*:jXݎ$Zxظ:c߹l]\^M[]q".l~rITuX%6㫑,kt^}15nzZ?gI5<l}7~0ѣY=O3o;~@?S^Zh-7u_k[
G;z:Ӊxb_*:CדM;ֿ\Tlxȃbv#ȾIGл;}ʇ[;߱#bci./VGcx=7L. $ҹlڱ
9ٷ5	zwqOrkG@>ٔݝm^y;w(/34>
EZj>[\pǩ0u_dLL4A5]W_lHБ{CLCKBlzfog^-s;q>v~Bx,߾JY˹e3 <3ԋW=~;;LCӂnxUmoG_1
_ JTFpv@H^žޭ1E2IJB۳w=)3<3ullQ'a(L(D*	(Z4PTb(\ EucDY/BA.3(Z1'@(`@5P􂑧K<mƥ6f2`Wd[<9ƌ/|R$.aI7j`8ASZX"5tdI)r&YIղ`VM"`Tj1OEU5$ D$1*@.FSId$8'bH22ïs]Xh*y M*$^Q% 
PKӲE9K _&ADW-$
<-P&34PHJUYS/R]ӵg&%4T%R(tX n2PG1-7AAVLb_x,3PȢ,1UnD@00NV:NRS}`<tKgbo6n.jowZUl5;OlҦsoXtr&OӦlQڴ F8d4e2)vגu@4v2$# w)+K^vPfTd8:>:jJb*:HmTc&`*%0qpmTHK_/<=*˭YOk(6),h+{ulޮo6|isk^C'6ڝzvO?D#!Jf̕KՈ-ؗanTWnQE;W6ϕ
n ^s
QFp:߬⒱U2 Оz؛{ǭUqVC[/^7W·ʼnݸ,bVϫHd,8u믺lֻ5$|;o
=g]t(t1!fhY;P筝/:f!t gzh_$tko=x|~X\,޳Wg}tT0N$+=8o}\<Da:9;Ksze.Pj2|N㟐 y|E҉/uнs|bShj2vu7{pFC΁OSl'x Ax8F ͹x[mS8o(CÃhN#@$s'$1즻0u	Z0(TT@b@0$
n6!#Ͽ9gw9jPJ|w_S9c9p `E-JF[  A,!#{H-%hGTJ<U#"ATPDƠQ_ంxp0+=]wS@	a
"NQ*M(J\]]Rw]u-&g%8OBXE\
pjGn	Ø"R%^Z$]J?'a&ˊwF.BV'*UR%W\fw]{<6Enjr9\>."{w蒫Q0dkaF n4UЋq]"sI  4;uc-aIPKL*A&
hvE՝8QWe[.TnIQ3tjwSqj>>er dTRr-Eԕ9eyPOH7!HÂRK}QȫrTpa
m~C9$B65"bCvѧ7x+8&`OXzm]I7+[2]$oeG-On
b,qHBxE'E(`ME4D}$E+XvI.3cY2*ԄyʰDXTiʩn?Ed$MS~$.TWc)(^by9He[fojrz$\JL,bJJԙyu01JF;/{l ]1Z$]sbI`.)< %Lߚe:ё
I^ͩEY%dv\}vxZ!V"2Z,Knv.)8>\%S_km5>Nn?5?סfwNO Rgo/웅'.[g7LSf@٭90:sܞ߯v9=$n@END2{-S,T:z+w?~ްh+*j<:eCasnԋ֭ۡΣ6-|EgLg4K8Z,P_FŃgϣl0c)SךV^,X=J19w+$Uu&F/Fc}leT_Af?4&X`VjzCiYZ"U0w)&{P'X_^WCH|*;YESP+!@U0@_A{#NKuvAM[YL̳9d|T]^gjt7*ha燠 VAٯamЀ8zKVn2)igGr@A2{4PBMҚa߹A!pr* kQbQ{;/:Tؐ]u:iJu-6tyk48YMScd4ɊQD~AV,Ďz=0Ãu <ㄽqƀZ8)xˠ֢7qNMlRvU@Y&3K3E%,YCF'˺Gwf>Q\>qS$^Ne8gSkc7{F.u+}"_"[ՉͿFvbHR-dKvՑd#f7?j]pvD8PUCzҠ|o9][l;PI,O'IۡVg1rC#3w{6&z6?Fe=>Yc^BnsmH۽WG6)WZ0}t"Oo}W.	<h$%׹L6LSHG=`~~Rw.)"C,{b)}$bitϵ<}8;-mq=>o $Hz~UiփCQW$^Qii|ZcD֧Hfmo<<5u2%;p}ڸMgl݋j'@܉CX)B]C.,5$R~vHzsSo`LO$1y^n nf ?=Чr#b1 k:Ӝ䯙#@_6d2Su2?Y"+AWǤK%ӄ~M$+۵U˾ZuDc̤WU)'Id"@en}:p.͓@x
̓7S}Ԕ ){8Hԋ6QWy{@xOBסWL[b*uJYiA9jvЇ3RI7撕#`v9TR_i)ؖy¡Z4{y2A(z(?*hʼqЉhVEXIQ0,wDx}r~p%th}'2[ϤO[>rCSs<W?pe"ϙ}4?ijvkxXUO~ڟ,V6e6!3l+m\O=N<3#?gƇ*U^z=Qp!{0Hw!I38Vg^`
?7a#uJ^kk7	EI1gԢ7޺3Uߞ7Fzh_0D__ӏ#++ze?6dAWrG;iBM$[GtTVs\+/?I@+	āćQ kh scΌLznhx{q8F@g -x{xqCrfZ^JjKwcgdwf-oĢbTPZ!4/$3?X!-H!19983/]!1O!3D!%,39U!(?1#DoR͓Y&OVr|ōYAKa kdV9߲ƛk3BMn<_@vPDW}brHM0yd?IEd'rL, Qi̓/e|7QS٬ČmXf,+P2&O6AW5,ɜhJ$c'GkO~DJZZ

Z\ʩy)i
Z
9 , ƒdx;ʸq-bYdY&?	
+a=6#1=_N9m+	Ȱ\g'=9NdC4'Ǌ5C7ۉ28l).YNS_Ąh!h)3O>kX$0́[gBKe0gs7 IaxZmS/Ja@ݲ[[F2+-?JMܙZT1 !(DaX_ؐ1wz2_'Iu/P><OL돠z"EGF|QsS/B<j7y[$mT%GH|ӀbQ j5cT;@Ua A/.>!AzC>^Zt7:́8BeDTr}}}6Nw&ݍ&*5^rNƠ` K¼#.N8/ "['>`w.1U%Ya"f%aVDuv7r9Cvqف].{{͍.lout8tۯ!b`
t&OYW%0]su7{yfUTMeN֛̋j<r^YnQP<hm6}+]KT\%Ha6c_ b+z9(H0`MCp }r*2el%$ӕҫ5,y=>m=!7ԇU%;drj*#sS'I-ΦkY)սRo"wJo2jyP/yY^!9^wA6I`|\% |mLS2㶶[2[#G.HyuzX<9υ#Gڝ04*~>(z~+Y3nӭQc/KD@JK}(rvq%FB 6{KK>HPDAtb,N} 6 ,yjl-0:\is]@Ibe,]XGr9]yCGBO5{d1sqyM?SȘ:RMcUXHJ)~S	2Wvlp s/!:5']<6oH>Y&,ĉ\/*DL}>kڋAABNY-FVXNo4 [$;&I"@h4=@bp$Յޯ®/9Z=W.嶎6
uzC}QM-$m2Td`GVL}UR+vnp=T2	m}wZLԂYztpk{s
$*i]mPg뗟DN{zo@޺o/IMqvsFwU른9!vzBI>Uc^-Ym=G4a4 @_x2ǔ_j:a*SU MVFJ_ƒs~DO ^hI
<(lpa,>QWI>I{cci.9PGJ Sd	.B[4ʢ"n,wX#OPϔ4LVS6KzY|ΠlL~[QҩyaF@bˋj={hi7Xcuff?jZs5Do3iCN'h5]}ħH^l
JoF
l+*
[=K$1*	h?M=g?Ty@cW'_S83h˥?թ4\d8=`ax(<8Y ~hd՘4[:68w8sKS+!e6٫ k\Gx+psBwO9@^]]{?kU*1uljQuvgRL*HҴV] ɵ%2
5;wJfV>D{m]\-,eap!>\'/S43\.'7l L=956Ed7Z\UicQE_&dvG5'qݤnGZ|̿e'бMMG%r $1<jF@g8y-PSpp I5Yk@dS@&'ˀU4\(;ydfJ׆q Jͧ,8 s,ִ١@'N0[ef֋ (}ژ|Fi;?>%R%~cC? AWH>B7VC>Ww5+v?~V+?XT]}809lP@1 Gra1MoZAݸ# YU6)*Z:c&~#BĆ6Ua0c]KX2]"eQ f۹%e>,}EZ5E+AӒ-ܰ5둬.jdޞ3N':,dinl*P2Uf(5`Bd$dEՙ%&F/&{8MӦ>R̢q y2p繲+qJ̧FIφ1f>MJ!lI{CLq>zjEl0؛hMg;c|ax͝l ɠ*"WZ֧7;zs r+[˛x8E7!; ~$&cP/aYۄeys=!8??8~!Բ"|uAW北zk;5Shy;:;@hlx[(}8F.c  usxTQoF~9/wk7mOLmҠ`{uK%;XSCaof\\V⻽O0Loa-rXO#XllFԘA#2TnRvFRt<O&`x~b :@:RCS#ar^ k. eUp&(}9X_r3@槁43͵׺qڶ3Kx,)rjgϽ ~!҇Eu
iHlKTւTv
iOKCU\sA-s2&wk4;Ti xȳ7Fl|/0y,7
~b|hr&H/i߬
SJvBUt&TkNzεƲL˝Mwg?4 ock%_xs0$==Eg*3f57渙IF&61MkrBW[T{aiA}zd4$,r	SPʬ)SVA9kɷz.A%\F*;%+7pV^I/(/\Yblp$6j,C>Bح_UhҠhJcቧԜA$ZWkd,~Iݤ)6o#ymc$A>0hP 9fE+?ivza	t:9<S$ܥHn䮼?RW7U%U|8Jpďumv2苘)@n~}ByBi2:R-Յ&xAH<Mτ$M Vޑ9F|`mxc;24oSDٛ9s"Ax,Y'f?d>l§s?r?_tݬ';;74q)hM?AVpL*J,Tss3KR2sR3K&0{1*Lcu3RRrJAK!$(OAYIKA95/%3KA_KKdhRQfjdYfyI"V`hs)LeѪ .g}K/~:&<DB1q`}5(([V@"ӆgs_Μlz.bRb-E<h~ц9Fa3O;{_tIϦl6~"pd/~bR55ԆƖ@`3<]; i%;!<V<mklעH+ePgsV=H-?n	Psl&XY-<sP6"? 
 F!PElxǷoo̺, !x[7oC"&ɉLm3um t6	T$x·oCvfs~Q[fNwff[ 
#-MxuRMk@%ӂ !dVZB/i$QD]vW&CB՟K@o_UHiy͛f@҈˥7ɦSƹSF"f.3|o}Y)DFGn0A{Bkei[R4 BI(,zĂJ",S4Fҡt1!kx~Ɨ٤ߘטAtvDJ~6j
1'cg!&#KBI 5Q $J83+s4+$\0SŒ_u֍g޳:vAV_H%'7q7ƣ,Lx(+$PmFڟa!֘VO~"0߮πelڴȪͷ;Qh"W,Qq%qȫWN4[Lǽ`[՟ǇJ.  p{v6xww`V1lk +xYSY~篸/He[[[!Z&P	Sӹ!{;EUQptg@u	01i_sv *SC{|wNB((+Egt#Fg~BD`!=gSNN)ϥFE=CaU#rϠfmu>\<
Eu0 J	#<)bEG$D9HDgul/VmrR\	
\݆HYgt][__PV~Y7	'=a,'aMC*<OTH6YDBU$t\PNr>i IMWI2v bBu(Fx$cN.EFFѥ@,Fq4Ch(2^FDC>-XO** $IًcBZ!i
IZn</c4.O`5!Y1F50H$KtAnybuuZHR)]W异BP 6*i4$Aky1и*("2Bj:Q{ Q8@HB&Z'lesbgJ$5QG),Jf|%Ar`S}K؉
Q@rN?dݕHR"8aOk2O;^tD"zoi|7Gu4
&"X("ы见`)'9|	ɉR>T/*XgaUՄ(0g!	QA;؍v\@)ED) Lb<+?63>#a0;QX-@I֥U71S~ T.L
]x0as.Isֻ5.|>5|5Aߨ<So?_iJטeb=<ҙ=㛭}u>xs3_wwt+q6${7^{&d:!JɨNKnߙ_5oћ7{dAMx:nG8	0hM.I/)N\,ƋUH^{[aY߮-en4*6$Č埌uZ6ʿj:+W;%Uh|+<ì53\XLf딗hi^j\Z4E_1(inעcCCʅƳ[KD±p:gH(1>c^emƭtM+$ؤ)W@ӥ%3_y~~hVA7Fiu&Ȩs|*3[e  &*i:i)we/6\SUq=*gG,L{j)<OZ!ݸM9ܣ'^d
H7%	0VwnWoP:IWoW@S+oܾ@Rz2 rmyYY\E#`q'p]6oxCfƽXyN?'RsYOu6\-|rt;<{[wsHy#v+vͯ-GaҾ|{[^Z4Kk3/V1GDjMKZf{vz>d5~;O:{s`rL]ٷf}nǾkd(utvDΘC-PZ9 @ޓ{Pˏ~kc>޽æGy4 iFqĮ}Wλ3=ʊrkPؽCo0c)([4EBKv'5l3-o,&={4~vd*tm1_xC2Ktlizh]_S +pdd'ͽ"hGaq&w8Q
B+nϵąnn]j./Wt	;ƣeyl>~Xѵy:biAZFsDR%bXH$n@?}FRR<-W݆?x L,2i~Rs ~kmiIm!b;eNt`j`0O/ZE
Nzjvp,)?:QBh{96eM5*)?8xhbAuS&́L.3|MLal^͇+'IDO/Ŷy)&,'	dNᛜoZ$y"#|,k6yR!+%yR
 =	,6xVkeguXbjE&Qe2dJqc(ӽ̦-IFWWWɍd'kˏv9$5\R-RWr/>|>x]xw1!(*:c2l:ͮ=ثt-~,|`!-B~KLvVӜi9{# ]gS~[L(p%~e?a4
}&<%#Do٥}tQ
~oRwf4_,*KlٿZ3+wd9Tn6=:<}GB4tK4Zf{,_p{W,}d&]]r~>098Xzcxï,46),zkK5AmziPF0SjQF$$`"	Rp%Yޗ'TV銠g;u	ys괙9-=A>b0N3s$dv:2	lKf6Vh=GvYB-cM2]FrzًA@΋ [&buDޚH=;T+r(JL>uk!Nj0		r%&8
z~z^n;ۺd{6x-ƚOƈL񩎭lx>
;c'%ޑ#&'LMX4|r>ٹ&AAGvBJ[qtT7b??>v.52lHcl߫KV;C3zwgTP6ƿon{IXQLj5uE6mzMD}/.8˃)ՔNaa\7p0F&r]g=h H&"W2t|VnO(fG/Y
\Win/>rE*| 	42ΗupkqT]pK@jZhy_7ᴿt[c%M$A^49*-䂓RNszy-4T,ӢQ^WZ&I&-OGJIy
$l#k;p(aͶxZmSί/Ja^K~1EJ`$0eL@VP!pUe^	(W^ȏdpOOOɫE*afs345&dC"yv";1 `eiFBt}(a}YÜ~-,JBmK<5hԛ/|K]	 /!?Ⰼ
 υ`A^ѽha<2tÝl8Lu,288h`-h	23aw!`Co(%	^d=CC@^aA$d<(2
4#I˃/"ExBVrujNn;znvV㰻Pٺ=.]?]Z0i&OČ=E!^{!P 0
XAF(~^J	ڣ@--M8O	v{:<"{Q}t	yc)CQ@}BGp]f$JHAnR/TDW]-Ft_n,}ao蕴qhQ^FVN\[4{DN=!x I`	I^.\Cmg!ҥ7^s#em۝ێugf9hC8	yLX|X]
c6 n7H2DFtŨQُ7,]Dr| \ꩲ0yJ~Tf~ާMpitx;mipϓ~v7On&E;$nX4sH2Oz0CYq,$~~.'7{X6.	u&T&b](˨Z.d<,7t0ϠP/YwNY?8RHg "&7y&pDlj-b٩l,+KkGFg@$hZGN9tv;A?X;N-{i-̉\>/t`<FYa60y}_Y\`l!VWs)YR CZ"l [dlxrӰ(Q+\k*VfHdJDH.{ Ue惚\ӟL.SAjZ.O\	EIYFpԩP(1Zl(3|l-*7thSvHōuaiQ%ZXϥfIH2@8n!m^.=K$rLN	@Y_ɽ sc_\eÙk3j4af(V@%QGesH֐[a,D.@XXBz̹K``N#"|$*hF)S^Ղ:ЇVI$ԃMʯdtH"phxw	rM[63y[ZOc	}P|]'z G">$./=0Nvx)C褴P\0T-hQZ$RO_3UCgֈ !3n#O)ylrY7O+@,8G1w%Uʳqǝt%&Wqk?ZzDsfFq	MšEWa>W^7Wpxf&]c1j=i0GZ4ISS_:ʫa
Ɯ>;yKP$"dҪe,ìrmr˗/YZsW^.Hl,*:P4|#Y>5n*YkGw-vr	"1Si6~mf=kzL8B#>fԪS"P)`S!]'\eb"j2No{ݬpzm6esb}4X֧J=zo1TȭXnw^AX 7T{dlWӮ*A)mݐYn(g܉+eAoф*6b}9Os'zy:-X+8`C8turn"ulM8z0CG(źS/+q>,~앋߀(Ne,JzwVƙ2wvb35;4"$E_O%C2Od65j|IQ@lP@^[חZZу[*}9O
EI*_˹e8A~lA2~f2aLߍ'_nEZ:¤SFb]bMz?ߢ#l*<LOQNն[-TkԨVqQҿ<8\3nbn~c/`i2ZB	eq.lT;C[02`d26ZݟvZ:짥7#JTwn+EUpX3VCM]b3BWw|lޓK^`X*d睱bφN^
ǧω%\uKyGÅеa=?k_x;p4afFVWm x=kWG+$_ٽ%X`s	
l,[BJ7s6 lm	Y͌)Vu<4	C$BꮮWWWWW:%T	`'~CN{j՜g.m'ԉ|^Z3إ	Dv+.(Ԇ<^Z^G|Psp|⫿#`AI芈 :|~QbH|} '`p(95=!u
	bϳgo߾}Ð=_?faj/F"BXg/#xBs{n7)$_z	vH=a"RwKʢ (	_Զ-_k[Z6_m~ukZ[fjnkhmhn.	M?
TW-@-Gq))ZD1 	^_S\\[b8 3BbAF vu$ľʙtԩUxۥp+$ԅ="'No}bp%kA^<NnY% V#b0QDH{zh#>Ϸdg>Ȅjz<37lՅ]6gݰH$AA8l3'	:<]~=ޛµpWɿ' FD@9lgƟ]|gH=0aL $M1WQoA!CP89MD)p F>I߼YSSǾ=kiS?	;z"^OHhHbzp8k4fS_:@6:W[Cj]}[mߞ~Dߠcj3Im`x6K=!1bSă!&
QCڼ!W9%|Bԗ վCeH|.E5,,oTl߽wuniE@W''P*![Qo{a̳9*ˣ+y~]ۗMb,oKvX):|*ӻ8V*.GRɱT|;"/XT06.Cm-a|°lH\Zǡsr"b/թ'o<#aQɃIez;$}0%=.`A>ɟ	~.mTJ4[Bj29MxOT@DߨY9Cy0u8KT{rU,>mof!g'O4H♅rr39U=STg&#
xzL'0Af]u<:XĂ[ڋeBҐ'B٦!L82;"1tW*O穝=t>&xf|Q[JK*[ܘM*љto Q%-5ʔ`wچU:9 2僾[R懸n0D|3VLTy։`\=mhBPw'ɯJPLe2"O Nԩ֖ԇF~0WqiuzY(+'11#q\:=T"ܟ$"iW} ^v7aJzw2@		>EE_Y`.248:NW0+xLy8%diGޛfϧ~$`8[XatrSN<	+Ckgx̮vFI h&ċԮ<1ꚊM{%Zب2??`(LD,QVP,	Trg{ӫ}=f`cZtIl$>'^tL1P89n&dpCKql~|T>f*ȺfEeVhE+XLoVp?Ya^Yhݩid\X*¬T;RX,REz?[SN<CۘPzQ/ۢKh2:Wc`X'ͥSX
'%X/䡗AQ Gb7s]Ծևq42+=Ar̽EٸpGXSp0as0s q5s	f$wܕ	b7N0l]]+QqK̪dm P&ǧ :Pf*cu+ 3[8 "JNSler:kSG!ɫJq:NS8YON'*`9C=ʃ'md!3w;383"_B(8ػLL[.k#Ԟ~hy[!5mR  Q]T4B|BX}VH>V He9uȩnh؁ao{s*`W[#+V!(Vo//yFkT$p CYxνS?tth;߻p0,fk۵mC<׮mClF_ R-t	}?u0x0;ْ[#wQ୉_W ziSPŐ!8ojgei/[((; ^ZM0<$xLm)^ң!!1O`ׅ甖|	ԮgS$*EUgb+[1[%0`(	ȅ:mtB[5q}_D>mLO iLWbQ57a74F[vEiR_'x`BPX<3}aI6-*Tl "EIëx:ed'oc[\--8mdnJtR^tQWeT"mhGMPa*]YI-7;WaCMSO>	gҚnIqDp+X57tKHJ4*]oMmͪl#0U\M~I`rWZyP$ΡN}`%Q0@` NV`Jm<7~>І|$ϘtDI]qy+RNMp(Dy+_GaE$I?ŗ61Kǉ1 bݕ!ek*?!uXM`7yT1Hl;F`qDHed(ɖ +4A^R^^:7;Q*jzŀ$㦂4 í,a$޲fc9dPN(b@kO,SLR0sGw׎[a5>{Fiu`^bs%uĪy'!,ɸb[?2zl&cAF^~٩Hkd9FOxH]V
9M25,E͔gTv2CgNdjeiI̦7P8o0+%j(%p'Ff!HGmT'|HbZb wnU8ӏN]8M%;By3ma턽)d+$JCF[(d,e|+:e{/Ϗ>71X^xtN[X8f6bE(1TqlHKE23D&(`׋	BO`j
O3}:FyBٚ mv6%~,{Ooc={xM$#lrsFݕ XPH2	B,48w]lM]Z'jNlY:̿ۜCylzFV>M#1BI͢$0y{U;lf<`ۛa0edңw@3(D[ֶKmڦe,d`u3tne4/s88@-'G{kaV6xFReFu.w[#n2zY4*PM]Aف,t6U
Ysv-D#Fg~<e?!fԩ7 Oza<4(cشe;6uϏIȺI8'Hc|RQלuP	jqܿ^4"uAg4_HO\GzO!xtح'lh!%:R7~tݳ7%H/Fy~1XHYn늘SuGwGCm @`԰Iohɸ2zXr^3T{wM[	ivtᑌ$Oo(+\(C"-v6bq' Zܱu,~1|wX4O~ +*PtJn=+pp!'ug<9WMGT7@?X?EdH>T^r|]_I )}_a }-RpLQߍ$p]u( 0ݕ & 8T̨V}E?e+	D}XjfmһEq@|obȌYhH!O(|l:?k77_Ɩ>vGx`aZl) Uڰm;|׿)tW6ߣ4(ߗތM?"Gf60DobppvK\M<E£<]8	#pIv=<j&Fb	Z=KQ<hTWj\E5HrI?>+-"YG銈.J)t
̎|1	5:<'OIl5;TQaX!fµ`o0M7h&1$M4<.h#&
Z/ɜ.<_ߏ+𦩰KU3{gzWp@W2	c[22s`FiKg5CYe*7"'J2ғ=d49$F$l=`:F36G;٣l<R_L?#TM><d"oԅ\Lo<:êbI}P&"3 Ԙ3xuL~e'K7B^{<k= 3lA#(4Ki*' $j~`4>sFt:yEk쇇sxy58I	Y8}ۓX\a->D\7ޢ</4BuPf*&Xc
Iq#V^ЮY?k{m7&zI7r$oʏM^EDV_+b[W&cN'$
+ef0 wo#>qDWؓ[ELCZo	X4֒U;ILU CV#+%V[^+hrz?W%45;gpE_G07rIMV+SI>֩JbQ:c
U٤$M;ȓO@5Di?4 %3#lPZy2SNy]åK&Wmʻ	\`A~LRe{pM -.[/DYj9c螄OxNdvDfݽ>s}f[.$`m@Zc-{?Lme}ur yZ-7Iq,#U(<sNU4MٱI%,Qʄ<OvD|SY½[v;k:853C50~)#QiOŢGLL]JV;~QSSq .:5
Gq{v1K	ٲP9#'N|-
Vɩ*q1jdh$|Yj%bd:z>U5;b">,+-hdy[Pa%vOl&ڍhmzvUZ2KwBw:]k	yx=ZPC5	DűWg#?u7VÈlTCaדfO)?w_'f1VpcHŦo2;|!Fd7fӫXY. :t>/x^|N	67DÀuz&?u'R7j[\U#μ}1tMFbg8<:sS]%cIctDw	gR'EXR1%j3_,|ɢB#h920}x$T7:'1y=Wf
{wY	9"9=^7q-EB[y$-*]@NqIKG
OvĠ' ;ִdnV؍	vCm|Qf)F~8fu^F,qrNIGdf߁`GY8)!M-5vrK[SsSnAoS}BS&cZݵM- Mm.Wպzw|th4/7X\mM?Lhaehȵy-7<ۗj94WƷ~zW hc>kjٔY6/Q.~O@]]cԹc@667%xx84Zwb=vvV#WdHXFkr15ϏܼFjd{j-V}=|b@b_By""뮕Ɗ:ɉIMwƩ`NYufaʭۘ@)f0T:dLaT-	j2Pb/cRCʩ'B@CfKZ)ܹB6ۘMql<|%zklfZ
dE5&1nOOn1RSz٬Nih"5G^m(%B}܉n:{]rKa3J[`ThP)4)V5Mp0 >ILe%IF#'>uzx%=;ZuӀ-$dL?LӫheB::e,Ox00^j['7u"yCsgSrP5:n雓ʔ.}յH2Wl[K((WջtzEfpXM<]){Lwp	&Ϥ_P+fŷEIM6Va
G
03cР䃤:b^~_n=)nmX:M=l룣D.=/@°>^k'gx'Vf\Mpe%5lK³RŰ$v8jGR+љP0cĭiZv
dUv/Q|MgV _(nյ1za>8HAɄw
	jpKGtc/?-"+CØ"eP ϨE&Zn0U2*,a"tLef5Sj|WWyqy1	m
 Yзz22O > P7A}\ޛ69p( Jirhn o>d֟+BOgkZ)XFF5\mj{/mr-eN%Ƶed'n޴cJn'? Eؓ<N̎ڕ)}[6l'>AO`Yy}G Fk,]t ,|©,e-r hS {^FmP.,b[ْ12U彗ߤ߭ee>pT&ʐ2hL|5l2)[c@؀8>|uOwcXk]9!X^*E{D<9Aq;kG;!'mA|_vY욜'ϖVx۔ev5HGuBQH\/|+.:5hYe+,<X&TR6p>Nk	]`f>?ѧk+8K'L}R8c?u9.Gak;iY^Ę:KŗaV_Q,e.[_<S~ޣ`njrl4<ᆑ'\Wm.c&l>=ir^#\9'X%ȹm9m;sG!ʋ^eqW ]rқ =ů(	y|]ڃ<mHqXTz>茁q@6jv]TlcӖ#cu`bB[7?R:7wl9erx[ʼyf[^:lfQvI̋]7'Hif!=.|   hºx=mSG]"hȽO<T.O԰\wg
<)'(hTL`ggvp}V%;tstOC$B&HSRwAN*Fz^RhU[CZX-vi;Nc$ĨF~JR~ētYUH]1rRS$!E5HJ CIFi Bj"%F?#020CtH_D2)7=:00P+1bkUh7ӏ44u6}g8uK03D$z̸4@TH}gh!+}5DW{I&&&y 1I!;IKarm:~oji$j&mߑiik!x`RCL%I:)- W$I{(>JTS#ZBQ:C0q9!nBDG:aZOSSIҨI ^HM䴦c D9`='NI&%(*19t 1	Fpi2.ui~4}!Y ݫ*Fm!}]h4yj5n@k$X*NΝ5qG!q>OEZ]Q)I:t&{l
8o]cmzQYD3Mݍg[Nt7uu<	< @(x*.ojuG?JR!zMS:wTFH7&t/+&;<~o3Ù՟͗ẇܯ=|F2G7[2rogykbt_cnL9}޻XB'Ի"sA`+GΫr"!-dnY粿^fuŐ .+J*Ȏ?EHfu2vɚYs#csqr]@$ŷ5x[s櫩3?L)޹}$j-@0w8ojzٝkk8UZ܍7Óŝam>
8/x-褬hf<[kٍٽ2΂u[ɕՊ8kj<շwo=xjno
H8Sٕ9x}q" VSyU_1-fNİVWCt[mj-g
M K褆N)GiB8IRq}Jchχ,C!ӂ,eiPxF0&%MJp-TN{G{)ҨQdS٩@X!7#W .G|QאU'>HqR5{e+JqPQ	Cl^($^W_,g3sw5ºԜ2bvf~{nny9pqaH"FM9禢	Sx .XOsםnҚY]o0oys%򪦎ȶo>]Q]i+[ӆэ%:v6Ázgi#&4 ?05H.=OTڔu<ꆸ uߝ=tE~ӜW[+aۡU-JS*FRRVB
w?ى{I+=^L|%!݋g }黂{pl,lJ r0\
P,LgOgwV5BK濮vӈC/w0YO`-_yφs,ԞrZh~{o>Y4_M(Շ24:+r%\\]X^ZkӹyY\|49Ia0۸gne(&@o\cw^Z,!9-@J]"mV6f"P5Ü&}}EL:m]{;<3_Κo?mν22h+U~z[sjVfs"r.vJTTunFU hi.]Y-npހ)5!bȉ0p&Ga*-|̥in>ή<67n?P_ݱ۹<ٗ1~;!La?|	p܉<ʭ7cĂt7D>囶*pu>C!t0XA^艼\5cCBzY-Zo{`i~sr(皥m=c9.HސBʩș
Y
(,Kƪ]#0(d&$\I`G!fֈշ͉ wt7vjC74ІdD#e6̑ke93^陮Ͼ!9p\{&;3pL$^<bbфʢ:444uvk6͇	Xȉ`2C=)4X@;
ŜǼ>E%=N;NAQj<+Y#ḆKށo57;;fn]8;udJ
T/X*6̻ϋgw.`wxg0l8yq\|KKQ\%"Sȃ2 b\(:g,q}ThHȦwhxVi]lS+#L0qV6m:	m-?!bkܚ]ijpwy*.gSƃ2nM. Ihm>n!q|uJg&,[ߨpr_(sjjAB9>$Fə93]J Rz(2$U@@a@NS%vnI\g,ǪrmT2hĜ`/Qf9ǱYEz00b3`e4D)<"hPSi $tM_q/'%^`9s0;̍ ;+2N-&7E6}72t\P{d_G)nc3Ă*`<*\kY9;pt,xPnH*\}+~&),e7k)ݘ^Z37:U,6lHR5OvɋsSL{o&Nd!>D+u0ieS\+	;>8PEQb7=G}=k(1<79坕ܛ{Zl2`3vӸ:9&[kxQv'kfk@m	
*+T0'ٹy	?wy3P"Qg_>4ɞ<[>i,(u`kvq)p|۱u{@i7l9G% Ҙo+bdD82|ˬ^`iWYr(tɴZ'Cڂ55d>Ecoof66=gAo'=ca/3݈Khr5VFNt.

>Pu+IyHZ`	6;T<Zl)[ToIX  3%F[֦DQ{Yvz:<ܸow+1=`r+Ցp3]m'Ɖ]T=bĆn*[8xMsYg h>DG}b;;8/3ϗXcәId_)Cc1;.	)f	Xӱ,[BV'ɾ!Di]NRdmlGp﵍*nR^lgȀy;
h9 OLCw*[
9PdN=3l-_tgk<L.Xs(#٪W*^jC<,·%5HQM|Z'+JuR2 z7)xH>E*Q
!}^X"Ρ޸ԧ$ʉTkfE{55`}ɠXZb[ԤU	{Hzk팢:kAQTv0ԄRPcRh^	8pOf=vj?bƔrNQ|z_Be	i4NGhPAq$%`ޣ֒TC5Ă+.^-Fdn#E`NBJ<%+ejw~A?')x s$-
1:|.*!Q:D^TJbVk(U	·ﴪl⩱ŐR	bmI&Hb3'J9jkj\#d2勳 Wu"CHQFn%֟mNe>..)8H)(ݏ\s	\[p^sj{빥%<=T.26DJ,ܞl6fO?wr^ot/[c9׷XҗŶs6Yv&wGJ_1QͲu%p4c	=P wv;H=.6&B\:#DQ6+\T|m\5^}Dc*	5̎k~ۛ]{\
 5(fGuս]·}/SHr
s&Xb^fmli_F̯anVu"~7qEJCsH,[?@AB[+=6X@+V꼿eN/)?ޘɷikaPbTW,ɭJ  "́%=vwp˵0\(.AK%%&/Y )7Q` xgĬپ*;$~k++H-)RS~qB0H%P|,	Ai1[y
p?Dh_@'	ܸgM-V򫰸XnXxm<&m^[+-p4A.e6=]|b^] Ԝ1}N4)
?}9%act7^^bGuk|(qC={V]ljy
b
=;"A}#h|"8SUdV>+ѱRz6XL\ց+.*4ڑ)[`w9ʾ=5tGTh|&z-9؊DSDpLn6Hr//DK\ggeu웜XFf6_!Oly3}o*~<	z$k焁YlSģVufwBEyJ(zPnfq>\{fBMko,EUQo_,=3Ga`SH|J\0Q$QU%xq32Z&ӵ~:qV;de)o[ xR]xZ{PSWZjkkkVSRp}v5Š(,8tngvOg4LqCrIp7	A3ZWBAv|$Tp3Ns;w~3eMOHG3s$K2>z%7ZM]",Q<l[Þ]ߠ&3\t*1aœ?N{q6	ǫN]k-{Sї忱rqy-o,./`ueqEH?+EJfm!{^R2m%!U߆ oՎ˦/N
Oxwgxxb"NdfoSG9Mn̦#XW.4}<iUZꈮa;Clk:ӎWoR\`4si_R{un1 ̟7{Ǧ 썳'f+JR9).8,q.9V(,EF6ԶS_]v4X7$҅&D<\,[澨7ddthܕ`a{@UX?N3ū# Ƙj W{`0khIS,gˊ<%Ez&pkbMDhfEl%j̡,*bKldr4@uJT{wE>&D5䍫Fy`/:']f+8#꜂*)Vo5z=^U\􃉬5~
"uK4Z
=xZ={=Xpeۚf0ޒJ6h>jqD9lW	:a[U31V@SFpy}D)cL
x4_7WxZs*;ejFjz@eϽ,:TV+ڃ,P.iBtp25$(p /E
n_bJ,JeJd;[3.h	zWqd=P-:RHyh>S2MeFy=3]4P~)tL<&S\&ݺ _e QMĨ[3*LSq`Zάywvq'v1HO (PFJ2TzN$w
O;ϥJdgOA6\3㦠h *PG)c2J%^#-! :}Y/D헽dOPNhX$bp` 1$8ٺv|\]E B$HB3bi 8Á_
-GB%o^σ5w_jjI$\뺣I\-%o>Fagjwykd f-EI+CTs^ }k R.ntYRăo$`P?{,j,m,Ƞ폓S[tknBʀqQ|+^Hp:K#CoO)90'OhzL<>QPJ*b^Lyr=Q_v'R",'
콺4Yb*Lg\(UN9n!a<=rHuZ	&+bM#RQc0_Ȣ~i2\âhãZnt.#O=z
<ch#Ghp`tk[`n_?!0l+__Ɍec4bQaV	PZSRKW
hOF*=7{QZ*.pylh5(".Y^tO_CcQI%%P^G	)AA_yjs E*5;8B~PC*S;
,P)jv]u\KyNbЎBȳr-̙TWK#%V>tk~G
g^I~:˹R>zy\7.˕uE/R{0mJ_oVf%TCfIK!̟FK!*S6pqhGJKItڕ/ Б`)J9FHfV%7N!p毽ahי
.W6񏬔y?|xǶ^[ e'"wcfx&?)@!x{bC+TashשkwAĥr^(Tn$eLcUq{Ku&+R'}3Zb:
e!hWYǹPrҦgHE؇5HO[4>i6Hz &['bvĬ;ded%>u,kr{Fae(~qI 7lTʜMoyC}+p7S0w/$_uIz={GqB%eˈGMx.z"&#DOBCS/{,e@QZ7<q4X63qS6L]iϻN;*>cT-\rH>̛@NӠۏ1U핾u "0{yz8#u:pYlB-0d_lNDu֫;}igZ*a7,uQ"'*Bˣg8e-DL<
%eRc9
A6AJ#K=-APf02t:'V8|:X/-lY_ =	lv}[g'.ˊ	ٶ
wl]yNڷcꡧF	,M4i$ f@n[_=5\N{vɅ|(yuu?xlP8b-=$3#f2M PQb9`@KLt
cUsDE_K l}мt*,	=Sv_J?ȕ6
bF?ʕNG󓻣4}")d 1a9z	Pu:N[Sy_l@59|-_,"\2'Kb/]%ETњ}a^x%<MET ot]VSxw/\!EaAV~ 
eh?sƛa{/0M,!C~J[ =T`,χ&ҿW/)RMWOttNp/*,,:C$\[=p(Z.=\UMSH8RhPޏe50yp`aL|VG{O䪻GmeSM M'=Fw_	xX]OWEIQ/ڛX%&I\Yzl3;XiK=Ph4=Ns<UBYuUA2μ3`Da,Q14O"&(' @#,#[8
zSrLE7o'>"р0P@+%,Ba'Ul2DtyS#\?g
+p	W!R
cCCb1Ҥ54Gw%]Ö(gPHvRqSSȠHR{)aDedXQX(/zÃP1EG$%Gd, ccG/ˡD"Eh4£Hl,6(>#ZOTd aQI,KbBƐ!Y&VI-(Y:dLLZ`Zh$OܥAgtYjLJk^όS3"5&H
*C#(K3GTA֙I1 DEPRSSJ6E~KP'FW|VʅI4s#4V5`r3?bMaRbC$JĚtAjv=\%s^wU#T%()eJ(Y·AD#pÑ`ܽO{Ç@3(#"T$K.ESgc#cD|)":~!@VHCKhW)h
g2Xe\VxMTS+XTQ]; If*{m~<aߙ9૯~}gmRM*ydl^57;kO';K7Z?UX,_=ڬۍdC2PJF:2MYk|<7^ӼRmEf^4,6h|SEj2e߿}R25z4j/[o+xnZ3[ >T9;-<,=|mH1+B}Ic^_-7vf[_͉z? ҫ^}|[AST& L<5>|yoUT}B_ݰW3?+PZ;chbhFi:yJ Օawrv"ƙ|$J,vehzYi>=vֿB/C0|m 0LFQmG7 <%@ kxež.a[Ȣ-ܨm;K뭥j٘RTV/JAÐ9̦-gffᬲ{T)dY z7Db4<FbP"t!
9=̇<\|S-73+?mFBܒ>]qSjr"dg-;3ۂoJjss s"&d%w/qջ\BBso7+VG?t$|5_oHYt+|S_|N!տpf2fިlO1X9נ8ߔEZHen~NX[z{ .{m+QWZ?vlklWҷ7[ʭ2Gߣ3 KIFiW<ڿr@Й)O.l_x۬I{CNf-! "rvxU[O`x$&dDlHLx1jxA,a ^/`fm:Vh-u-cÂ	 noPIyyफ़vMCEpI=Q-םi"2>03&tQ^
=>nU7@2	wIa2`1<K8 64ǝBZ 0Π7huMh[ːp?ؤAbgLNK࢒g΄H A4|7Bhnq"/C)F%$Hk>jvC
P?GfЩoF^s[xlAܵ.ĸBI@XkP(
*o,r;: pyXzCXKGK~%	ݢ^ݳ-D5*!ԶutPt8#4*^bMM!v'ES}msw}3#Vt{c$t.WeaM[S8>QNFO$Lɫ]׮4zU;2[[(rF캃W	1
L|=w-=@c2J`FZANQ\C@b"7y!N Fx|uC\RB?TFc73; P߁}Đ1w*OA mj62XVs
ᆲZ#U̾aFԟ-&nssZWs S2$>x9"!7d TgˀB0HM^|w_x=kSɖΗAĈݽs'ΌA4vܦou0T ApD_ݟ{NW݀DtUe<y^yeG2:uWJeE副ojXQ/**?CX&ԐTM/JU<?1GUKcQB~K*N%ӕdBz%u%Ux$BEގѸ `Z @8<EE]/_.pdcZK?SW][T5 ,*FDB$tS	`Ќ.+1M	k*|ce-ǔDMT
't-ܚm2у^brIk:OUUuMJCRP_S\POST^k@3T{MjC-F(%j0Bע@.ZzU#@& ;z@\9rS@(ڵX2h ZXmSiK
r	p"JeҮAd鬫Wt%D!bQDH:yw6a/	<}/Ql4#uaMt0P2𷀫tBɈj|Ti?-WYF­Z@2FʗQ<t&ԙՎjp$w8ʚz^_&|>Z"nS[Ϝmit˹Z~8|GU "$C&1UMi-XH-xWޟ-a]zL"!"G	r#_rG3sVfs1[OV"ωJO غMv@[
ʔq){_ved5uը-?sHyUiw瀢5`ӸI'6(:Y^`o`XOOudhWI^{42M׍YzCgon5j<-,ZI1eL֦lf(3?i}ZYW߶jeXc|iq	^j]Xμ茾K1 6p<;wyn(5IzaLt&H4?Hޱ)xl=$U61KޞYr+3ݝyXxach  SN՝9|\m 
֛W׈` fסDipEIhc#4PWcmc?})\\T8iv,h1vM˘d+nDȠ)I|lB#hcڤ=;[USrƮsj<cPVjd%^0j$=2)rt*:;#͉=ly>;K=1o8Gԝ:UX[_]haa0Q_]*z7
sCC&|c(7F}Gjk^H/]e25IoS#0rbnPmn9ħ-g~v>6W՟o;_$pWK.UʩH=cX8[A	1,f~z<PַƣBu F~qq@-bCw٭jM9ȗbWnΧ+l`xOwDx0f}h9jby p/sBjm&=4;0l\-AqNUĐU{IX׆h'0ן?s<,7ƆFʪԤl-gID-p\4Yec|i\K|Hh2w~*=w:;e,t۰\]cKȯ ȗ6`ҺhOQ]5k{%>3lmޑyj	G;:c`&39L3Q̥M竫kЧMOQ$S:>d` $GPokvVVl';	ФǛǜˈ^oʸ7oMpm·qS!i\ג}"	#_pӇImne#~rELWƓy#pF= ԎF(Dvˀ5IlJ'B	U9?DQ
$d`ưXNJpMI#|cKih>ZsEz%f_Ƿ_:mk둜]Rc~mraj#
J̅3'ح18BI_e(֥|YqL Yy?>qOB;3.CzBCmPTTVm6Ѵ-{K9yʼ_5&{yxL_	ǾϘcEü+@x̵"hTL t{xeblhM 'j->{;ʼ" S	I !RU :g2'6sAcA`L?*K>0FA
ģ>x$ר*W:iit d6,=#kQŧ⫵>ȿBlIa&Vy{5o*@ΌY U҂愵;a;וJ$,hTԐejm8`)M>aoƌdt>}[Եϊqs/x,5Yq8Qz%kN}~_HNRI,b+Ƣ~8CQ#{A
`R!X_+J1?5RxO>-	/n1ߢ{A*ܘ~|=7}Z	Kljvg~zcN^7# حax7*=˹N!4RpBWǢaѫh7{ZG,
/۸uBI~-cR}ԎX+bފzNr-t¦K+m*a(܎0i-eVh>XZqc#T|upúG3>\͆;|2#>p_ÝoQq@JEG),ׁܩ6½r9c1~#;WL`,!+Bz-d|+xj'eC:Q?O=zx@ {ii#@FJ0T'JSxWd K)6{cl)7f>S\)ݍ!I{MB0{Kdvj2V+އ¶|7+[DS+#`iGJf:_pTK##QtřW CXܣtOi:-5
~hlnrMl}U(/Tj?9=1oKl0l6珫<Fܭ`?q}*18XEC`@G%p,Cr9?lIRHM$Uw^bzmхy2#K	|F}ϕ=4tɪSXX@:EUOׂhB-B)pT?Y"rgJP3PٕͶyWϥ"%iEØ'V/S+7i|p:~ܻ+VO#ryg)?Cb)̚|AD+_f[Ze9Zv'<<I9'Y$6+͑MT`%D/y`!|# O~yb1RQ(bʶmͫn,4{ti<>*ێD?)('&"32!39vfF<\l h|V,H;GxU@-gоox0:U1*rc6DV]S,fk7">X ndV*Q0cƽGHΑ讯6	&fS̓8҂OVNf\%6ynݴtw/ٖRGZp%_b)	HAKύ)r1cߠ	m?"mSH⟂e>=<e#5s&~'&$N{Szu[V\wUQmvrKϯu'c.R-8S?OZCWC O@9UVmm	U/}T\(*LK@Sa$Lq%􉇠dT)weA(E>(LF~4GvY]GgՑ^ gn`,\'c3+x&mw$Hg{,Zh#	+k-LN#:qi#%Z N&l9 -{`<5΂;Ri4g@puXFzX-7V
YsɭOөbL`'_JdR$,qxLGIVr[aŭ'K#SZR{פ镋}g7	h16m$nչ:\_,>,>gٞӲ}{Y9 MUm4Okb<)
T΋&#/ߔWq`u,
"7r]
0eᘒ [2-\k-0]+	e}tyKUGyq`KT_曄+qʈyg3#^V|?,.N\ˈ8-o;vAgd1߫I?A)Eur?wl$/@cQX
W:ĲvN3).rȘ:AOw3Z:{BI$Vp^^'H((9[x?SZ9,<kmD[L(8q^x*uV6R0J:V#SB,b*J",R$N^yD2AKju$7C9\:Blhf7ͱݟ]mw*Fu~RZF(D>G[/ɳ6[c&q2G9҇b"q`LHn1gP9Oŋk@
TBRx]>m
.ֻz=钥 FV.;`=]0XCtό|$]h W	r{lcBbsu_<m<2~]}NKy,M.]Vs~ڐܒwF.O")fvv/zNMRuz`h]`]8i7ytXY|Eܻg%iK1v+n9c7{u 'pQs:#%dfKIҹ.G\^ys:+ڰPjU9;/גYd<4l?U ,Eӽu]!I^t^c Ȫ#Wܺ|(uH$۩	cYP!1gFs+aLz ڮF#zH^_dXd|pMyy|4*GMH;afh(*ZL	bo%FFPLF6P+{^mLKvz4SIO#X\L.=dc.̈́xfC3E/#*ʯǳ6=ЇoS+ M|:+^W_%=6fpNg ؀͉
K)7TDܫh^Na9SlsBu&DMڶhRwhg+b!I$wuEͲ&[}\ IF[@deu?2V٨#7RSɈnQɂ]eCNpͳu<BDco~1&,(ۚg{FT`Im(q<g٘x6#/P")/$MפV\=6nP<O00SƸ~X`m@df\ҥ7clUm==udcl6g$ֳڼCefۻ8]G=?mh/$=״kc)'>rһz-y5Q>m!̒Z	,=<#t7I8'QPCjk^H/b\.J76g@"es
H3<b9QBwIE<$$&DS6+"{}!H:s	,tۜ_&/gdZBf5y֓\z|'7([66l)|߁`Pֈb6Q$Ņw`<_=f
uOCGt-%"<{e<ƛ{44+/}#lwvgAi_ԟOͲ耝d*-5͒@bXз>,yB.g  xDE4zn'Po,Lhٸ[Ya/iQ?wi/N7}6=#:r*_hn͝)B<>qCocV0k>S`+H (et֜;&ԒcC\\`zR6;e4o&@@o CY0\2+VD%m"wZ۠;n
vUk+aYdxXAn"&x6[zniP"%s)[=L@sw>puowhr9\kņ8Ǝ$ްH0g`(hX*)ld*:+y ]qL9?ZD!ۉ+y<∊jX}bIkbWiq)P8I˖fO$iO]YW+	Q3%HQI/M҇~^-7AQH!;FѳP0뙅ڙE.| =l~$y2r튀hPӴ3"fNSՓ\1еEw>D;;Upf$7/<)kwh@ב7hGL[m;Q?Nē[(R\n@{9xw۟]T= |0o3y6DoSv!j5,wRq_]nWuCccmusNE߃|&ｾt.""C/#{o$c
I ʎ8L.ɱE5<ܑ5Эm(yPgtq/1o/koN J|鹁] :m,eib%TD&׍1u#SS>0RE,Js2xP@vZZH2z5
x)_E|8:1x{iSO&5)Nb.<qcsrCX_؛ٸX%yul>[Ÿٓ3d&/%,"8[ho5Ua6>pn%~	IRWQ^DU!p&Y@e?LaJuEf$2h3ћw `''m7UoY&nLP_OǷ9e3Tzsol5pX?1Dt}ͭPɳ#7Kb	l˅(`TGS§2mZ 4DɕOJOTe#Bơ`hpsq;"ֻ660ٷf3_#!m]٦?#wfvo>ҭC;yTWfd|P?+RJ G/ MkE`ZL6ǯoa (xX[oI~(9/wV;/ah(OPJ/vPd	7Cvb{{ǎGz-1C5aOU5(H6P}\S@CȯY3:/_@#G3)LP O׃V˶aE5qj`%'6Lh{g0YFRlbQ0·d[H&tH*"Vqp7n:qKq	6-*$DtƲOMMy%W3Ê3!0~
6MdĀ`ǳH!Y7i
ig2EԴZʚ$idܶjQ
 b}1b)]h14EH Ee@E-o $I,øͅ&\2u,!45mKi$6Tؘ &˨	&LKRW\GLZZli
4.җS誡M$ت,AF(mHz,!·,=19ꊔ6eҥ<M'9\e	]2	Jaf݌7ĲY6y'NX,A
BB#	[r	-i+Mb!qH*dܐ, >8/kʒbY~`8Qz#ooA_hΑBD(_z(r%qM/_сs DTI9Pʊ~@f1f+u6 9H<IJs~sγ\	:?ÂlRKN`7ڿy=)BVkΓ{_>_.;bXF8C¾xs&kG?Dt,~f;:Fc*< U7YUzчyU'W{_<y__҅Vޯ҇\G%C@tVÍ]nt+5.kxw/Ȼ\3DU?a+3c`ˆZGNHWUʹJ?B?}OxOuw@^XQmE-Sn}b+uZ(fUt'TF8}KoC.M#fxz<$rw
΂^us~Bi`!%mi Zi|}nnW\t:wg`BLw
M]oLRItמTIF(uHsC}Kn]\8Ko{yE?UW*ېziT0V=R;^M04ï%lM;Ϸk77sy\;DOJ	e5[RevFǢppD}h7F5@ĚW5=e=0/L~kTxO䗖+GK)-T?wis,Ȃ2V7;L;F=oWg$?SᠾXC*dwzb'zg5>
P=HOUԹۭt=+{*-<{Ʀjti[HS*ԎWk	T9bޤuOݶ5{14|>w>eګR]z%#ċ?)۸6qoЯo)7> ~6IIKCڷeo=]<iFeȷ𔷐 G!GE,S'8v\qq)ÝsAUץ&nO]pxrt7Jy:^.2uzoOôNG"ɟf}ohN=K=ِb)tC0 w(Vc]͓M]Μ.W&5(MвA'J 4͌6bbxH ..`v	D
 * @param p)~	x\[SG~Wt"`n*޼D2VqI5H-1b|Aem1w08D==/h$1]eќ>}>}5UY^IbcjD"j7EZ"{h$^	x.,!'{,` 5]DAo`u(Q$F>я!	v{DգyaavP w>!d0]G}}OOOJ~no[mX+pI?Qv"!y/N	39HDYt֢p'nbXĎW6<h BvW5lq]{6ttZmv:do:
8~@;j|+$@"Es\!}uob) -B!,uahR7~[}T.ZQ}UU}C[땃R0BMǷ5DCץMыA;G<]H&)	.C	1e|KF^![*"&u&ӟ tzC_(PJ^jQws2?2H?6kklbIzߎ {u oIo#7,n+hCro'/Bg!7MN}p_\98x/t,X⺮jro#Z90_PݮX}9IqFlU7o5J. !HG½TiS>AȨ2).=J,KvS;?'ҿNjDz8IfxA40vdiz枉ǲ$Cq[%p3(z?/jN2mn}6GAVya27d9QVO A*\L>U 8"jЉfJКܧ,F"Z=7S;	G{Kǚzls:[ --&urfs
	ͺ83l-2DQ)6wIV^[ogJn2Hf8|D4`~AŦ4XO"2/@ŊL+<,v@7j|UdtJ
Zpbu+
҄!aulȃO<W7eIf2IWJ;1Hb -` LPrQZjn=7MbI>S.irw<Ϊp:8֗ӯʽ+ymFhfJf2hU%-Y8|Gz,JGqxS$ō,=0ڍrH팒Fd\XD	iH<S~eaUMPflP 0}$GTr~lv%LtRi}$m XA8>#"/݅)`SSOxgYC	Bg%DE`$t8PXn'4} #d>Lp3$3r36sH)dѿV]]>wCY0n(ÿ6K8Nc<OV>SB-Gw
tnҁK]bg,T,?%k7h.N~H٥CLi*S8mBm<JO	JhcF<F@Ct#	n.}uog.]D^`:,w>7xJ%YfoZX鱌̗59`v^u"/LjwB=ne6@SpM/6:?$ b! :͂ k&Ah"yA)JugfVa]Vx%6AK)s{Tw R[MlV>~g;} 3{!e/:U(}W0TBpn|UĦ3VJv&u^F,5d5ט0	dsMt;h+\x	<{%GSY!ơP\\Sq_GwTIfx179\m^%S|:UD+wz{m`PF͜AUb8[2lVwNOdsJ]{HO'(WlKvenONWZY_dq?|USj7\XW4W̼h"=!3:V}sH)}M=O]jg?J̧ѫK$+wpMBϙ4;|RQ7k7Z'2AQeXXLj 3;H&bdc&;RU;Iw7 ,ewm>ddelLN/^|LͼSk8F&s<2=,ZVrOYĢVVn;l+-6r{A]eyP_Y/=
vh2Xv2:l_° _0lQt96E 1c`FLs;htU}
m*\rW2uo_:;~FM^SKy?Kz4DYuEvq[GƳF\`X<eĒqemZQvsP?ey'S}OQbHI.dqäY`1\=ׯ>s74vH?7MTCߵE0XH+lENv_rr91@@nCf8]cnM2{3!YZw! #soVXLMاXnfR̷KPX|#g}e)e(ֶMV9'9"cHYkY^-|E^*?I>"C}*J^>BA6`QK*">sCWNQZU@CE_Z)-(ҊX^MvVy		rW^~1Rҟ^(=`|1*<zMk+eoEyG+Q
;rX1E$
HҹYS{WG6B֍dcnu(C0Jb1y5G "B+Pn'M!gڞ6q`P-XHן -m{/ܛ
CV5~^zXCDHmbweN1BNTnyaIL*Nձn(KQџ<a?aL>[6dA,7)ĀI<Iu|Vʉp\ #>ڻ<A[9ϙKyLE}n }JrMƛ^P,E%>PO/W'MSo%7jh>YC)盙ElI4q0kLtF5ȹ^ω;qӮ邀mgMH@QG|x0$Ưk'dʺqCyZn^n̸!Kfnn&0*`y!Jo8[\z60c,X(foq/hfFd9	ɫN^"	߼T~
Xbsb7T@,*pT-.M'4|_{6BJ64BHWag(Nд`aB:fb;%'8rn>eUoTϣpc
,  5x[mSί/,e˭[~1r5ra+SjH:0eɝ UAM.o./^^?$|/ӓd2	!f*k̜>}ys{hmn@%FbׯW|7_ÏJ<jǃ| Uu(ڤ2R1rF 8XyQ@m-Q5ho5~7"&F C/pDA@$st?+Z?-ub9"-d6DԺ_Q"mmj`[D5sz0e$Gy	C\
pfB>	=EI}$!e0ueE{J^`f@PӇ<F9+]=uvv{>EvO9;Dt;< L"{>B,$9|Є(ׇQ8%F"Xeʨ0?+]*YC*b$F#]v^!$A:
X'v'q~>@	i8+xXAAAH<хڗA]4[ 5(-u@蕵!pS{;Gb0f_䔮]G֮]' ^p~},Q AJEҩ7C_s|0!iw۽Ϋ~p.o .@8C%I1[m+-=DQo AՈ7𡂼=ٹLrL,T2s]g2әuM6]M̪+}L~EFGral=sp'qٓ!I]ī]]Ao!yZnlvƬ|[(WTqƾĽ(N].v,>eS' 5~{(yo5uůiF.	Cn5"hX:H?j8俰QlSF&V`Րḫg2UU\fz$``t8R]MY#Lr#;|<8];q.\3M3	r+7]1abď~h@#"TJ`@x==FuBwzrwR##Uu1Ք=T;ԧKJ8l3̽}\z/*3h1ąeT晷OԩJ,JmUj(PdTcڇ&X[53J5
3>DcS'fɝe@Ϥ2z"}, 8w+5ύ"ԥb&sQ-z=0&$kV?D^X1'福j't|Њ+c)X/*D-F*}WENחMNKZR	?-Eg+_w$U^flq3T2Cg#˕!笤SYrNH);38sSDT
3чs63);1E}I-g!9OlsBax̤
59©~IOCGV"zŲ"R51}לűi6*3VbmaYF5}*쎩YspduL쑉6pd?HPV꽥u,c/@ !.tijL@ϕKISI9&H{ :YӯLKQviW<d;IgEqQvAO`$&Y]dAtzlx)[)S-k;[pXjf_ox:֊YoymF!eCZF_?'Gx<.ũYۋֶIf|ʎ7EoO򴠷bwپ+mjV/4{TW MCk<Iܤ#"
z.^ٯhXW3UA}hFERSE2{%2E5̙iVhr/PQz$IQNnMW,Z`1@6e*qAO濆0fIQ끺n*1̛P`KOo-ouHB#Kqa]liT6aά*J!+ǹ[ 0L_.idL]w0Rdi<5T_'a~bs1*q}KqI?ٞ"dj̾ u:ozV>ԭUD{s&G@X6Bdh)K2ʿp:xrkPFbvCc>#gg..Z*E
%P3O5	w[aѣf4Ծ"wV3.j|sX(uI'!_g}p@˖=rc$mRћV⍝FZKWSO?:+	nev~	Qg{WC2j.{E[(1v{B1kF_jht1ebeWL9jwMaA&|Lmxv8~MwqgSDv# zJpXYڤ@AXrcKH)𯗭Fssʞc+z(+:vOuEC^&=MoM=)1SPMѓLXh3TkvonOl+i%[,vnЃ':GX; )%]|4{|aQ?	}f*wtdj2;A?eOC_>I'29m~Į._@Xg~oޞZykq\Q[6v#g` t]|8x^tC3{Yx'ӝ&?l@bƓ&hJL6\Ȅ.8Cr[p՛y|@&^qܼR8̘R{Q>d$6OdܼPl.HgsD7fq7 f;6Ge%!fmalpq}0)JE*6Lj0v);O&nvҙ	lѿfz3m^h<rfخ-r7x rwn	xTYOQA(H[.kIȪQhBLiiӖHCHa\	O0/vfxg6[_{Ϝݯ<ؕIYT"`FT+HꢾDc*hPhٌZ_w7ώv2O%V$H= OTO^!1_W
LSWc:-VSUUr-USnbZ-v7X UꡮhHsLE NоF`i¢m d7;~tҋ.9;=CE!3ʌa^Vnxq *rZR FK\4dU)֣	0o2R+xY"'AF3qit+׿XxJJN0zqC
`|I,Y.瘞bCd/.BhPfIgW7b9֝40T){M V$vYtK^zv-Qlu쎁' z!3AFNѵ.=ۆ2opПXBf
&%_H5Rpjj^PigTKS퇒k_@5AYr:Lȋ#v2C5G/we '$fV~K#6=g^FfZb)(Ŗ3"tXfBkc씗"|;DSo4PXsh"\Aq;l@;xlgU_cz\n%Bb|_Z^\x֡a"IuY6'f( كS	Ȱ'69/hgnmd e_Xwr&P݌ TIxZ_SYS0U[;/fM@wRҽ eQ(h ;
Π8+0;a'{oӡ;! ([9sO6ԁϡ_.a, x|GMH*8r:_xtkXV1}Y2ݺ~"/ GYQE9AAi!ᱤ"!xqP\:CL@@s TJFaGrWSzP$(H	28#Nx.	ffa$ʈ1\SEb,B)bZdLԤEdNëjx qYp}돇Dph_/p(1Fp4G?s8DЂy$L YיIy!-Z?c/a9!	˃B")&#
*S.D]mm]\*PPA#=}BBRp]!!,+9~ q
~FqVRLc'1%R/il),]	@6IS@|s\g8с\`Z3ȑ\RlR/c(DhғD6)ĜgNF,4K\Az6#$e%0NXAWxNB dHRjg~w}*#nO|iXH/JcȥD,t	țvYlxA%	˲('x1}ռr@,H$x)S_0f[/l鋋img?o<veub gs0|:7*.m%h/^B@smkU-Ho(z]Jw*[-cqK
ŋ?H,tc1cڮQĊJW`9Fۚ'VJ0諛__~.+͙5c~Ϯr|z[w~4fwN
X;ƣ5mi>)5
wL:DcʛnG3% U
ԹC7*Ϝ~KVk$iaC[T=:5u?:rЗaP:,ܐKVaU}&Wfw[¿Wz'XZ6TVWㄍUjoF2D
i h~	+s-LP|m[0kV;.QfUP,A	W1ԝ"P3E#򍹴=RYgyE'g+Pf-+{$eQZi=MbƋsY+g2t W	~=xvG+-m̉e涝ERjqD=OW
Ɗl	hы	h/nQ190$Tgohi ۄO@QdU0"Nlh;7/",7-uMW}:Zh8p`	Q7E)杂Qs.*5˶ Cg#݆ڳ#ʮb.Few|T\(c#sb\X:nY̸G"a)YGB:QүW8Vc!ɫ'yqkҝƪ{y*(q |A:$6Zjv\?ʖ\cC1tPlTaZB77f;`3kc.pw&`=4ŋܘ^Qc>lwSQ;^,M-W^섶F3q`S1VPT3:B^ggiы.Eov?4(G+`A%.[sD'"O,z[صm^V?!)Rc)?+1:`եNAUcZRëӌ 3#CqYf4ݑ羅wU|؞躴ҽS'A	|}LOv8
:v7)f1.\w0HKQ\;GP#{Vռ:RVPD!qitx0Nh'(;bzs-RS1~j;/LNX닜>ȆnڴҜsߞlӜ428=oـts
Ut?oxJϚUU<@dqOp`$ZLÞY
tj[o
ĵrL߰3{)I3'`yvȸ<,'綅 'X3NN@ϗWc 1k3 	dǧȴPU4Wa{޹5Y'j5xP0IԦ98siTf|팓A(L`U6orCb'ph岶ɔTnײqf,ף`!LԿ//}j559=\V!aCCޱx*8Z}?.S؉=r@x;>js7۳:1Mnb>YA[b$@F\y3E
8=%&qo!R7Om>AEpU yJ3&l,Mj	D^+qRMAbE*{!gocެ 8A۴x[[S[~Wrƙ0ŘDM55jLwd,A&Bt@8pD	HI%Mr8x	Uַ46ԡdݣӞ3d9E	>#.	5k^3!i*zQ<1EEd?iU'b@^a eUxH*|"oyĀ$?Ƚ$A|P9U!wjl  uoD[M,PeͲcfW>QU"#()`l G5}B?$t+"D~E$	r/("aTM:Zrc[ۑ];M5g֫岶t8Յl-vg-7_-v[ GPD<)赋b
]2SIKi-nOT`
JI&ht."zjr"Ȯ.>ߩHbjS>+BXzz"u+BGiϚxKC^DCҀO0Ig}<5H7Jj BbW=v=>Jm?P[}҂z2CI%^"nJ*7/qs-v:A w}ӛU8z jP5)$m^-vsϏCUԝ]vؚnzr~jw܎SM	L_6UsO=Hݞ/ugDToGNAH]ł~ʌ?]gBN'xw2잾,[Fe?PiWwAB0I-pe>g?S4[dew>2
TTʬښWL%r&XㅻȦ>#<4YhsX;JqH%~v6Z*U~5ϜxqN'+[nEYȆ&2;lfS j"{ş#8	֣xb61C'B@P^>̋R$Vץzlq3x>'YR{XWxr[݄e"jAHZ<G>cv>k}|$87ĕi'^ɼ}q3v(
( e$Ĵ\mn&RKf6?FzfhDb:gV!@<X%3lTШ6E\WK $vXT?T|9=KIelgT:V_A RؗyY_Ovr61)CQdvItt &^á].GEk~&5L&Y$<-+"ffuY8:.aO'6PLˌ&2;fwE75uUeos	R7ᒍzӈ/C@m@rא81sP֑8@!HIn8*qAfdӨ#~>CL3И\yLBEU"ה`*wxJoHn|%IcdB?w&Q 1Ңj|c;3Hlh$vjo!r4sP;XEsƒvK!PݣJ3Wǔ<6(M֩*mmB8' H"ʹΈQjVoܘ^淸(ICCIο'O$F](a"7lr>"!s)D~"Q-<	û(Aciy7 g45Ii=
*}b?hUToJ͢l{Cvt)ȉo@
Xߧc"UAgI%ro0` $4ُd^{/1@l D# 4$f^;BMe$}LּrJ7%B"TKvҘba|Ccq;е־(>9'q}xsx9kIc^'kc<8Z}as}svC}i %T8?MYsGGan@+:#F)CuDX=OIS/՞_@'G5e:	Vp,< 95CΈ\q;Ιsd&OC0ji:FmP4CO.j/Fֆck]5<Y
0ӏYv(fC%M2Y[cޛ-{$3I''OO8|a7!@R[߱uM^or,8nI|HCPSNsA\ʹ1Rq_C͎m}S
)+9ڌ/+pdQ#~eE@n/S'* *$xsZeF\qq>(_7E)Pn&(#Re@%#àIi5a>:֣r.K5N'd+ɁfjΎYs/%p$*wIer#(ʠpd/Ҹv`OȪծq2}.`瓗4f>6ëC\c4|[w
t6
a s)nL$k<I6zf' ʊdDdMROEr=1U(H. >	poG?rS<El)1M'Wg!mr/x"5XW2: Me#F[ٙ~(w-J]1;82L"Yݲ>YV2."TWJ2}ilR}xkVa錓y6K>c<9Tc(Ciɧك&!<P|uQ&VcuQͺ̬Lـd-R6?c^esKQ"lw1Mֲ :+xYO~RDMCý/qmKMdC<Yzlb$W 76
q	zB.럁DE3sΜ}ߜ9kz;P7əBI/Q}?G1A0AI8t+&1f^t+*Ө5b:/\dJi*DEq"aE(2Ұ}ФC, HNRGoo6fYIJ|;BWe0"[#
$;CBQSHVP0QU%DR8

fnbD
h^vx{ &Q7N70'WC#7
#PS?򆮡C-gI&CR3X$q"Bj&$0JcXICF(Q*cn$"TPC^lގnɋB,F"kW,x4oXH_Uˊ<FbtEX$TG	E$a8S<NQ{aA,p4#	9_%LDϛ,i7u4g9\{1;:aQU3,	+M~<g?J1M2xCRAH()$44:T)~"H2rR=y|u0qlGiis6IBs=hiUx;uBW~ɢoJdT(c4Q+[*sr(dP$R)%9~{B[+m)8G 8E!?WKk^_ :qV4n\EIAŲEV5t6gتlFŌ
gu:эs ]?>\SgE}vM/wݟJ/TVo;7L5Z=\qc~?7W_;m=CQ谥ndЧ`лkL&1(u	W3LƝf^Zۮ,?>Z~X-+^(K[[; 4]txUY3
+z~'#dyw/428hqd,A0w0^a7pZqy~շEm؎`cW8+́q:΀~ENCQ$&YRiʥEU7X<}>ztW/x~k?i<ZwOw1?6.BR(k})Cr	YedƷGۯ?>l/ʻw<bk>jKl;ڊ1hN ^%Q9OnkIÚts̘gn[iهg'{nז_X_ I U&S^-w,oS̤F ٕZɱx܆ĸaܛ;^~@v ᣭH}Ѐh<	v)Siwe_-S+':>.[;bj6٦ͱ.0{$'ӞHǊ/-2Y㿷+%&^:@ cgR8%+ZRgogaeӪxqմ9_ix]-.E[vlh9o'i jqY JK=wγqm5ل=e4UȹٻJ/v˄_{ՙ-_>2mnRSC4*uPJac ے~gI52w.5zsG,7f*;Ya;:,A!A<gQSo]"+VΦel٨4Vi_dI+x٣n[ iCv(+gØۮn;ZPM##>_ a70p3cv	0Zٴn0˥ql|$dutR~Z:wMKexc+Bo"Nx}o|(X{P\yj_	۔ϣ8,%=M:5<4-K_zZWL:
QrYaAu0Hs3vږXZ?:q{US)}=tbi"P87'ߺqZ9uv,=hTnXYz	RA"bs8!B1ܦbj2;bδȜP=Om+`.NhM.U:xU ;:45	ON	x0&擶:	b	uI/I@_|xU]PUKUJlѮVO8P3i:iQ8ys>Vqln~ؐXd͚,iH+<Ђ8ٛ%K(|H&sw>οy'e0e#q1")j/+qYR|AV/𩵚l]Vᣙd6o@>-m1X?ZEݡA1f=EjRʅc		P衽yfl!8h;;<rsC/h[>ئh4b\c6% 0X΅rS-od/k[͖OQ|W2\vJ>Z@SwDAyxn2Gg$Do#R"sYܿ.otQ#%f;ZVJ'l8'N.Qk㿎h6NMVs䮔.Mnyb *+Va6M(^=O, ;I%es\HKt2|ӬC"0eG7u)IDʬL T
?)*~1&P7t{=Ҧ.dbf}O*դ@ہtB<8;+s\<+
Ѿqgb5N_wrð5nc_z/ڭ6VO5EУUYFBݧZӶ0ظ6bZlW'P`Et3).dPrON"=;s*U+]ڼ_Ajius$o_bKJ&Q[_Dv&wѹ^s%75wzVfݷ/.wJPuP0.dhjt&cTʊ(RE ;e9+Unl2ڍP+=zL	'ٱ{J?YAnRZ0osVgmjS Q>q$fF=BOջзEW7?IX>GTss
3}NJyGBRy4wuٟUiv ``HWSwap47Ӂ%7-Pvll2117zSd"^AR}`3
hU֧0%iŴ5>n/S_o:/Cx:/*
 * Copyright (C) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup avmedia_source
 * @{
 *
 * @brief Defines APIs for AVMediaSource.
 *
 * @since 23
 */
/**
 * @file avmedia_source.h
 *
 * @brief 定义AVMediaSource的结构体和枚举类型。
 * 
 * @syscap SystemCapability.Multimedia.Media.Core
 * @kit MediaKit
 * @library libavmedia_source.so
 * @since 23
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOURCE_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOURCE_H

#include <stdint.h>
#include <stdio.h>
#include "native_averrors.h"
#include "native_avcodec_base.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 声明HTTP头部类型。
 *  
 * @since 23
 */
typedef struct OH_AVHttpHeader OH_AVHttpHeader;

/**
 * @brief 声明媒体源类型。
 *  
 * @since 23
 */
typedef struct OH_AVMediaSource OH_AVMediaSource;

/**
 * @brief 加载请求对象，用于表示媒体资源的加载请求，应用通过该对象获取所请求资源的位置。
 *  
 * @since 23
 */
typedef struct OH_AVMediaSourceLoadingRequest OH_AVMediaSourceLoadingRequest;

/**
 * @brief 声明媒体数据加载器类型，该类型由应用程序实现。
 * 
 * @since 23
 */
typedef struct OH_AVMediaSourceLoader OH_AVMediaSourceLoader;

/**
 * @brief 网络加载请求的错误码枚举。
 *  
 * @since 23
 */
typedef enum AVLoadingRequestError {
    /**
     * 资源成功下载。
     */
    AV_LOADING_ERROR_SUCCESS = 0,

    /**
     * 资源未准备好，无法访问。
     */
    AV_LOADING_ERROR_NOT_READY = 1,

    /**
     * 资源URL不存在。
     */
    AV_LOADING_ERROR_NO_RESOURCE = 2,

    /**
     * 资源句柄的UUID无效。
     */
    AV_LOADING_ERROR_INVALID_HANDLE = 3,

    /**
     * 客户端无权请求该资源。
     */
    AV_LOADING_ERROR_ACCESS_DENIED = 4,

    /**
     * 访问超时。
     */
    AV_LOADING_ERROR_ACCESS_TIMEOUT = 5,

    /**
     * 授权失败。
     */
    AV_LOADING_ERROR_AUTHORIZE_FAILED = 6,
} AVLoadingRequestError;

/**
 * @brief 创建一个HTTP头部实例。
 * 
 * @return 成功时返回指向OH_AVHttpHeader实例的指针，失败时返回空指针。
 * @since 23
 */
OH_AVHttpHeader *OH_AVHttpHeader_Create(void);

/**
 * @brief 释放一个HTTP头部实例。
 * 
 * @param header 指向OH_AVHttpHeader实例的指针。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示header为空指针或实例销毁失败。
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_Destroy(OH_AVHttpHeader *header);

/**
 * @brief 获取HTTP头部实例中的记录项数量。
 * 
 * @param header 指向OH_AVHttpHeader实例的指针。
 * @param count 用于输出头部实例中记录项的数量。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示header为空指针。
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_GetCount(OH_AVHttpHeader *header, uint32_t *count);

/**
 * @brief 向HTTP头部实例中添加一个键值对记录。
 * 
 * @param header 指向OH_AVHttpHeader实例的指针。
 * @param key 记录的键名。
 * @param value 记录的值。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示任一参数为空指针。
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_AddRecord(OH_AVHttpHeader *header, const char *key, const char *value);

/**
 * @brief 通过索引获取HTTP头部实例中的键值对记录。
 * 
 * @param header 指向OH_AVHttpHeader实例的指针。
 * @param index 记录在头部中的位置。
 * @param key 用于输出记录的键名。
 * @param value 用于输出记录的值。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示header为空指针或索引越界。
 * @since 23
 */
OH_AVErrCode OH_AVHttpHeader_GetRecord(OH_AVHttpHeader *header, uint32_t index, const char **key, const char **value);

/**
 * @brief 通过URL创建媒体源。
 * 
 * @param url 媒体源的URL。支持以下流媒体格式：HLS、HTTP-FLV、DASH和HTTPS。
 * @param header 附加到网络请求的HTTP头部。
 * @return 成功时返回指向OH_AVMediaSource实例的指针，失败时返回空指针。
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithUrl(const char *url, OH_AVHttpHeader *header);

/**
 * @brief 通过OH_AVDataSource创建媒体源。
 * 
 * @param dataSource 指向OH_AVDataSource的指针。
 * @return 成功时返回指向OH_AVMediaSource实例的指针，失败时返回空指针。
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithDataSource(OH_AVDataSource *dataSource);

/**
 * @brief 通过文件描述符（FileDescriptor）创建媒体源。
 * 
 * @param fd 数据源的文件描述符。
 * @param offset 开始读取的文件偏移量。
 * @param size 文件大小（以字节为单位）。
 * @return 成功时返回指向OH_AVMediaSource实例的指针，失败时返回空指针。
 * @details Possible failure causes:
 * 1. fd is invalid.
 * 2. offset is invalid.
 * 3. size error.
 * 4. resource is invalid.
 * 5. file format is not supported.
 * @since 23
 */
OH_AVMediaSource *OH_AVMediaSource_CreateWithFd(int32_t fd, int64_t offset, int64_t size);

/**
 * @brief 释放media source实例。
 * 
 * @param source 指向OH_AVMediaSource实例的指针。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示source为空指针或释放失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSource_Destroy(OH_AVMediaSource *source);

/**
 * @brief 设置媒体MIME类型以处理扩展媒体源。
 * 
 * @param source 指向OH_AVMediaSource的指针。
 * @param mimetype 媒体源的MIME类型{@link AV_MimeTypes}。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示source或mimetype为空指针。
 * AV_ERR_UNSUPPORTED_FORMAT：表示不支持该mimetype。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSource_SetMimeType(OH_AVMediaSource *source, const char *mimetype);

/**
 * @brief 获取请求的URL。
 * 
 * @param request OH_AVMediaSourceLoadingRequest实例。
 * @param url 用于输出的URL字符串。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示request为空指针或不存在URL。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoadingRequest_GetUrl(OH_AVMediaSourceLoadingRequest *request, const char **url);

/**
 * @brief 获取请求的HTTP头部。
 * 
 * @param request OH_AVMediaSourceLoadingRequest实例。
 * @param header 用于HTTP请求的HTTP头部。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示request为空指针。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoadingRequest_GetHttpHeader(OH_AVMediaSourceLoadingRequest *request,
    OH_AVHttpHeader **header);

/**
 * @brief 用于向AVPlayer发送请求数据的接口。
 * 
 * @param request 资源打开请求的参数。
 * @param uuid 资源句柄的ID。
 * @param offset 当前媒体数据相对于资源起始位置的偏移量。
 * @param data 发送给播放器的媒体数据。
 * @param dataSize 发送给播放器的数据长度。
 * @return 当前读取操作接受的字节数。返回值小于零表示失败；
 * -2 表示播放器不再需要当前数据，客户端应停止当前读取过程；
 * -3 表示播放器缓冲区已满，客户端应等待下一次读取。
 * @since 23
 */
int32_t OH_AVMediaSourceLoadingRequest_RespondData(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, int64_t offset, const uint8_t *data, uint64_t dataSize);

/**
 * @brief 应用用于向AVPlayer发送响应头部的接口，必须在首次调用{@link OH_AVMediaSourceLoadingRequest_RespondData}之前调用。
 * 
 * @param request 资源打开请求的参数。
 * @param uuid 资源句柄的ID。
 * @param header HTTP响应中的头部信息。
 * 应用可将该头部字段与底层支持的字段进行交集处理后再传入，也可直接传入所有对应的头部信息。
 * @param redirectUrl HTTP响应中包含的重定向URL（如果存在）。
 * @since 23
 */
void OH_AVMediaSourceLoadingRequest_RespondHeader(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, OH_AVHttpHeader *header, const char *redirectUrl);

/**
 * @brief 通知播放器当前请求的状态。在推送完单个资源的所有数据后，应用应发送LOADING_ERROR_SUCCESS状态，以通知播放器资源推送已完成。
 * 
 * @param request 资源打开请求的参数。
 * @param uuid 资源句柄的ID。
 * @param error 错误状态。
 * @since 23
 */
void OH_AVMediaSourceLoadingRequest_FinishLoading(
    OH_AVMediaSourceLoadingRequest *request, int64_t uuid, AVLoadingRequestError error);

/**
 * @brief 创建一个OH_AVMediaSourceLoader实例。成功时返回OH_AVMediaSourceLoader指针，失败时返回空指针。
 * 
 * @return OH_AVMediaSourceLoader pointer if success, else return NULL.
 * @since 23
 */
OH_AVMediaSourceLoader *OH_AVMediaSourceLoader_Create(void);

/**
 * @brief 释放OH_AVMediaSourceLoader实例。
 * 
 * @param loader 待释放的OH_AVMediaSourceLoader实例。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示loader为空指针或释放失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_Destroy(OH_AVMediaSourceLoader *loader);

/**
 * @brief 为媒体源实例设置一个源加载器。
 * 
 * @param source 需要网络代理的OH_AVMediaSource。
 * @param loader OH_AVMediaSourceLoader实例。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示source或loader为空指针，或操作失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSource_SetMediaSourceLoader(OH_AVMediaSource *source, OH_AVMediaSourceLoader *loader);

/**
 * @brief Defines the SourceOpenCallback function which is called by the service.
 * client should process the incoming request
 * and return the unique handle to the open resource.
 * The client must return the handle immediately after processing the request.
 * @param request Parameters for the resource open request,
 * including detailed information about the requested resource and the data push method.
 * @param userData The data set by user in OH_AVMediaSourceLoader_SetSourceOpenCallback
 * @return The handler of current resource open request, the handler for the request object is unique.
 *     A value greater than 0 means the request is successful.
 *     A value less than or equal to 0 means it fails.
 * @since 23
 */
typedef int64_t (*OH_AVMediaSourceLoaderOnSourceOpenedCallback)(OH_AVMediaSourceLoadingRequest *request,
    void *userData);

/**
 * @brief 定义由服务端调用的SourceReadCallback函数。客户端应记录读取请求，并在有足够数据时通过请求对象的{@link OH_AVMediaSourceLoadingRequest_RespondData}和{@link OH_AVMediaSourceLoadingRequest_RespondHeader}
 * 方法推送数据。客户端必须在处理完请求后立即返回。
 * 
 * @param uuid 资源句柄的ID。
 * @param requestedOffset 当前媒体数据相对于资源起始位置的偏移量。
 * @param requestedLength 当前请求的数据长度。-1 表示已到达资源末尾，需通过{@link OH_AVMediaSourceLoadingRequest_FinishLoading}方法通知播放器推送结束。
 * @param userData The data set by user in OH_AVMediaSourceLoader_SetSourceReadCallback
 * @since 23
 */
typedef void (*OH_AVMediaSourceLoaderOnSourceReadCallback)(int64_t uuid, int64_t requestedOffset,
    int64_t requestedLength, void *userData);

/**
 * @brief 定义由服务端调用的SourceCloseCallback函数。客户端应释放相关资源，并在处理完请求后立即返回。
 * 
 * @param uuid 资源句柄的ID。
 * @param userData The data set by user in OH_AVMediaSourceLoader_SetSourceCloseCallback
 * @since 23
 */
typedef void (*OH_AVMediaSourceLoaderOnSourceClosedCallback)(int64_t uuid, void *userData);

/**
 * @brief 为OH_AVMediaSourceLoader设置打开回调函数。
 * 
 * @param loader 要设置回调函数的OH_AVMediaSourceLoader实例。
 * @param callback 要设置的打开回调函数。
 * @param userData 回调函数中使用的用户自定义数据。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示loader为空指针或操作失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceOpenCallback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceOpenedCallback callback, void *userData);

/**
 * @brief 为OH_AVMediaSourceLoader设置读取回调函数。
 * 
 * @param loader 要设置回调函数的OH_AVMediaSourceLoader实例。
 * @param callback 要设置的读取回调函数。
 * @param userData 回调函数中使用的用户自定义数据。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示loader为空指针或操作失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceReadCallback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceReadCallback callback, void *userData);

/**
 * @brief 为OH_AVMediaSourceLoader设置关闭回调函数。
 * 
 * @param loader 要设置回调函数的OH_AVMediaSourceLoader实例。
 * @param callback 要设置的关闭回调函数。
 * @param userData 回调函数中使用的用户自定义数据。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示loader为空指针或操作失败。
 * @since 23
 */
OH_AVErrCode OH_AVMediaSourceLoader_SetSourceCloseCallback(OH_AVMediaSourceLoader *loader,
    OH_AVMediaSourceLoaderOnSourceClosedCallback callback, void *userData);

#ifdef __cplusplus
}
#endif

#endif // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVMEDIA_SOURCE_H
/** @} */
xl"xR2dC*Y
 &5RxYOY~7/HV}؇͆kiD01>ۙxkL@KF.+`)cgZL):ȎKB{9=@35+jX:<t]IBQ6!Y#"e0U,L%L./:WюRt)$+ TCQ*Dn	DHPD 텊a 7A`C-断mo}9Wɤ۠
$Xt[;í5Y"S#)U@&p)#0yQNXҔ(ObF8"8n'?h 2(`8n\w]A׃ΞPkuuΖPOjCrH,Dn @TR0!e JS@T vrL1b a2B*a	Y۫Dю#cKΞ	;lĢȕStX`!98SKYo0J*SH4l|7uRnDJ)Da	?Fx]l;&Q!L5] ;D~uns|XX3MV+s;j=@yxK40KA"bWV$4(8I4CyFDyq];ɪv9GQKk/q9r`ʤڔg	kַ=V>@nA¡$}vEy N
䴓1?^Lc׭hj\LO %;wX}Iu|eÐrx@ŀYň4R}{w=Dp$1C]}T|OJ%u
~xlj3_6>8«+X֣X n<ʏeN⠇Zӻp_Yhwd/X?8Qs+N06/KV^V 1yxG"fY@yWs5Ó9VᢆqE+cisn5NPiLtMIQ`3's=XQs,)[d
;pM/[`~sYnbx@wFIqey]XXm}\:ϋSE^	sٸ:Q>ᅜ qm[wOH?d9\k1}fop-2=m9v%#3b/D0?>Z(=jUgL'P_2vo \vs[[]"7Xɘ?Zɢ,>p{X\M$7*ˁ<ޏ3<5*sTl6bP.kztn5N!64#R[{PMEءR1ͣUXѩ$9^iZW(];!F֜*Je^QjWj˨
\ǯTYQyzSގ_WԺA[Ԣ
0(,d*w0?_wr,x(v*"]m*c7V+.9-0/ssn܇%3ʰn3e6x*_C+
ɎV6?an&n7JTGN~vxַJ˻pJO25IEJyܫ*es_tuP/%VA;{O@ -:4[2xǆ/.l$x;lujC
T{ $#l;x;lj͋H &KTSx;ljFf͋H ;Z1lxTOV~G8J_(TmUE0a°ƾNplkB4UJt4VMuZW2i/a,vε4ii"||3c0	9ϯsVH0o;0e̤Ұ --/`Ԃ(Yn&P.´6
R7ߋ{Խ '!06s(MWF\$PcIux%IO'{	D*lWWEJLVi$&yq,ق180k@|dfuH<)椧8-AxN>R (q!5@7Rp7kF:rO_[\]{laE5`qr/}`^/@Q8D7}v@LJGiP:DR§&۹倔)]\
|ʫLHъ8$qldxTf|l|,3(:C,Kze>ua`'ϔ86,qoYT@vI1uDԅUrRbJN\0圷F>ܢkk$$%bA&yj:xL,ĢQ Q{a%Nx
.Ř +rfHekIBwm_VlTce|qb.}#ЮBZ%sʝnդX4}'ǆtS KZ~}P7+::j>wn~v9?20xEߌv>A5j|XMVEW$TH+m?
OLR3zsvy+&0z}#8'j}mRnVCz
g't^<QDE8	1ruGx1 Wr5%zD~y4mFߟE;C|wnGO_&J }~ҾSt}q?bS&pUA'L|%aH}wdRa;`AoUx;λw*6^^.}--Z-}^. E6Ռx ||2وTr{,LfF6f-x ||2ݜj#t4deICF6qH*x ||20J[֏conF64*x ||2F!#=d MLHđF6n!xZn9}WK'Y,FHbA-n5{ImSEvuIb;HȼV:uH$bhճχ?UJiq:U>t*u)+\A%S|?:mJxN㏎XZ,ZƋ)u],Bۯ>q>Ǹz0ywюg}j՗|ྱ"\ǝ/?qP	]kOBV8T*8j!WX!gVgСWV{]zܯUwzZ-Żܼ; V8h|,^ƣq}t}ps3Ս^]nGW߅\~oFg=`1F}, dM<8Vd_"RuZΔ%n$*eڑWё
^zhNN62ofԕԙ6g*5@-s7SU.nq0Y{W,u LîtpIˉ9	[TVbv^-Tگʴ[Lh$o9M{"܋A[K5KS:1o.spl\CC&xBOk8dH;cxsA..|8?7{3y}Ct3,]ԙpN?w>3[8`*Ϗ0)CM&iUԎOc*3oP|4
'wpҥLHA&(TŻѻsוb׀Y,ybkQZI+b@kJsm>"T:] $w6>x}*_}Jq|E`joF-
 O2ϥ`WwL@\'^:$}&>O/0\ZY/Zywp/Q9tMS/$ޕf>HL)q;&m3O%N(-ؿPb Нm
X{atA ֬ü+M<ؔ\,ѠfrA	$.QNqHodMS"h[a(o4m(8<sk)V9I;L+ɭtnMijN)L:e@_!1B#JrRe
ZTI;a;66-(JäjF$ɵU2$?@eͭJ.	@CLz)㛟[Of(TpqfP6z@f>Hz,-.zbit&h2׳-u2]PuÜٰ媊1KȳE=Nd)sC5HC1?t]!=,Kٱ'Vs7jm95n}G?R ˟xZi_ji̾H'V'a0FfdN*IڃO=1jz};c쥍IgSjFX[bB1 iz!
Se,3P	 LK0ΨjO$!}Hybd?<~3RnapP0Rq*i懷o3v_r<KQu.%ԤZ6RHwБfx(e&&cCh*pF+2JToIEOluZ9~@7-uR (o?E:6 !XYhC-$T2B9t6jMA`UgOu.!Qt)gsk. zrz x}u\S}t$tYG=gu8G'`FG>6	!_'fO?ݔԇFv9;+XE-dYGYWX7s+H"/x~BA":$ȩ^@3^*]D&D__1'n
Щ&eلYg82BSYSw7kG2>pltJڡ(n.dk}.SΠC;vr%^c=S7A&gb¡LEoC+#'TjS!G#kQe}fTGE&4
6/
.KQ Md5I :!#+yu>wH M_tDEZ.&E?oU-+P%1¶a ˥f/7h(lX:д29U<mjI 3nr\P="ȳIjᱍ:>QF!s@d:Me0Tzo2QsȺ*kW,dxiȯ/'ԗe-݀lIWsEA
?[?1ϑ:x6}*s$U@Q.7=Lms$M&0Z3RPI?$ޤy"=ZYZ/Γeq6tq7>PmBg+cKP"Iok<H~J u##$eẳ+8(تC2/XNSf^ҿ4]|]"NTBFOlQxc:ŏ  -=مMx[ʸqD=xY>hDd_*9gv 
مwx[ʸqDD]I~Jԡ% {*x[ʸqD;+>3R\m;#^ Qx[ʸqD^!5R 7՘9x aaM #1RY{քvHŇ*x aaM2ȗQ&2{*)'x aaM79΀-uUS:A鬤x=is7+P~X4uxMLiIN^mwYg90yﯻq˲-e[@7BٯkEM;cGGOῗ,unN7ЪQg.$K9kΝ1{^OWO^0e3g0aia/f1y9k#G!4~cātçݐ9	4I2?߿m8l#hwZn1dG34}疅su։8zqy4K Ŝ=iYi;:38^t}vcIgй§Sv'uƁZ 1p{}3(LBR<coaj4uM0#6̋1 07'Gy!Q'up霝y}ÃKQ	屢48f~8"*4Ԇ 4GkIxh>N:4b#~xa 	
<m.4pQ f
t r$}$*N?[ O
̛ @w5bU~#"=Ե., V3L,tS3WdsQ<9RAiO7&NZ 4qRzDΌ'oρjqͼ`&r0<&B|,F]~
}ݚSacj|,2'ñ ۵U:h`Fm8RGRp|,ji,YRhQP29 b~~)ׂKإ`8Z&J7:{ȉ0p?6lġE<v欿>ky>̼qxFΎ,Ӆ	ا	;?@Yyy~g;ߑʯad?u9!NQ=T+kVɴq;qŷ~84; :'쯝xzBA:Q"[QI@!u9|A$DD$8
 !pFF$#4$;,iq:3IjcGEUA}''' A\!xBσir
Ly9^6{wC=<ow畐aR ^.p^a?^ t&aƠU*C'	ϴj"!
eMS#-HA9lZl.H6qp}r^\{A{x윷OղzCPG8]#7MxA.2p$ir@zˋCv۰k>3zvpɲ6lxʢ
te{㩕NiZH9HBD^Cp(S\8-`"ͫLPsZҼ?h:A].r.n]:ߠ3\K:i5wó@ZfRN$dJ-l u|+X~_t 9u&"CWK/@۰iS>$qdk'v3U[eK	fz;F	th¦oYiQ<S2ml{IƢ_EmSlc򎱛XC3Com-,?f;`5v{큛K؋Ğ Z.Ŵӟ8CLIN%PpbBTX*'9O^q {-m!a.P3bp$c<mmN;NתY})Ɖ+{YHnv'+bQ锓ihXv`M> dZBhaXR	oǋWjD>Fjg㌜GKM
NB4cvI$orf .[W 1.yB4'E.|'/c@ձMC,V,iδVm1Xv^b}R\В'pۭX+*ͧ^J509gNSAYI!y)Zd tzjYUV3;Oa))ZQ%0vnߜ$Bԑ"$ C3qMza<Oי#sFgu,* VLÖA8u!G	n<оY/Q7B?Rl/Ҏ:;^|VH-"E)&UC+ cgw$N,\D11\m5V[Οm%C7io
VK,?S{Tq;xQ~خ$vizdA>˝O^挭LD(b	F'>wPpbgaq4J)pd=AD
כ0bw[Ӄbdn	Hͤ9>Ckmx=FtZ\;#g`&p)M_XV/A4?5ɭY*ڜmŴͦ$	q_+	%|I&LN!).%C`!j>LFQzuy6@%[=}{/S|i><4vK|^m;534XSGͿv͟_ͧHu9,֋:ua'ޅƟ)<4	yP*/.]m^v}BP{("Ba	 ODތ	tc^>Duk]HO@PpZ38;HPPE&IEݼ \'hXP;5l&}KDۜOh`iyD)EưJ8	g(.vF&$\c QT)J6pÛS|vDq8g;X{Wg>O.>sOmݓ'N4PGE`#
ΏWQ)ZM$Hݑ(75A37}P؛l_
QHɕ4T`!v]mJ5YvrOfŚDO%Fwc,|#YȏE6yl{NSm|Z0~<l|\\ܵ{ǼU0VQJ=ʖJP$GU	WELi4U#2D7´AIoQY
i>b4酁(#LMOS%&W['L`	t\/;kM9LPXɡAZ`gGCUDǎ-f%
eAj"&V͒x:t׻[뜚ZC٩Ҁ`b%ލ
^Z	jKhE&bU!OrlN!_Rxpl-x!rC쥒mͺoL:$e7+ )VWKv!ȵ/AʴHا\v po=2pДB{NRA-Ѕ̄-gCl/$S5˺%2Jz+ɠa!Ul,n	uX^+B,.xmoLNC+y\ܬrNI|s|?5ng<ѽtL::*Hd`jcx@3M%HQ5JO[]/_1#tp?#a2G!D̰5Od܉l"'DcgsRj]<XG0eOhEw0=,fڀ,YR%=CYPʺBQ&9˂Вp\&Ҿ'3²5sT-]Ti֕WV.piXf<@&,v1O"$h Ff
rV]IlEfXsd:>/ F2:'zdy2񂉌yr!IpFKjoeb"6CUcWt$iOk	`MubF$zEUL5{j)#L4+VVJGT)jZ%y0Zh7X` K,^&|܂m#$C{3!{oAb%aa2>O{$^%;\ޣoSW1ggL:q$:J6+X&av6TJ&!\<8I1F (^9.C4sVO	:EX%nĄ:.c6ɹ2Eknۺ%._h,. 4,}M.KEqB
_
Ed$252c<| hmVȂWNb*ݞ]a*ťRM=}aZYibj_TX⋋LM2@#"s]Lwq\68~d5#;K/Fra;cYuj&Rѷ/.XG3f+oJwZ$70s1IFK;F^r끛잰"B'աƯ)$ȓ[X[*ċ0Xl9$KijL#9G?M}A\@Tl[{IF	"A[*B-׀0IFīFkmA᫃>R6t^KƦ*$fB˪2;87qnZMThn_kP-[nˎHSj,IPkGF#ĒXdX⃁HVҪecPiCr&Ų6ʈ8ŐbBTlRw)?JbAb1MK!& wtrA80$X!*KVQ&i( uէ<9
Xh(1=V+ ʁ*y0!gh(2hEbd"$LH շ$aMg횈uZǭ
^2H~`qĪ
95J,`4,/Gϱj3<NzP˚5cgNsrZ|uz):Q$ƮZ8u͍V\@J.E2U_ }OQu<ܧܶSE;Sm$ag_)ڗqEt0yq3^#1_5b#.ud l~/*#J,Gɲ?Rb|DXbPJ'׮}Fi\Znݢֵv+D4ͼ"Qӿ(J:bcG/^+nʹ}&bz;jbb $Vz9Vu/Ys˘ 1wL|YD'JXDU!Bo#aBe y	$eYR{޾0QL0:=2C%Q_ib~؇*RE:Ͽv!K^dI]MǻꜘqRЌ񑯩1١]28ŝh|*mx;Iu\-5t"HKjMJ{ ^w\RO%>:G:|ߖQ&N٘l^⃉\ė@khJRv<~mbvnX;pWQNM1"	fpjU<;1__\08≥T؜3b^W {g*^3`p^(ZЋ{1 Zk=8#,oKNgT vi*EKe|l:?$uFh.QZU$G?"tN+f X6"jX̷G5;5{NtHo kXoC߷VZ7o s@uwԮ$G-wj68E_yBAg>Bv$(ezeaǅ]
x=S,Cre:)/K*;l@`P:wi=z!(/{Zj K~*ĮRM%bj <*VrqSĪLƊ}9)bAީ
=5}rba:ּѯs7t.QG4i8mL#\}ߵet tF7L'uF叜	brD:Ԟ3
4wPbp܀a74K,<zc,QnLEǟc..۽=<mv'0-1K)qEM6n˩t~!ɄF)iȪuefUr%lAf|Mb+.g	sx!3t*:/Ke[i͈lV2,@DU aL.~WY뎋9ￃ' vNY;[o{1^\uDX!t@OX6f4芲m|o(Q >.y9-"نb9Do.<ni*3`AyefؔMf]+0}ʛ76u+yAs6Efx1x(P]1Z`:k"2&(E]DLNl-o]tO;?gB%T&lV/V^ "*_riO1<W˱X/@*GKǫVE𛿨ITQu.(HV{t^y2}^۵h˜ 1im2<G[f7<^9/KBA"^[_'*|N"=+ĆLH"*yYҁmSex773OإohJkn>ކGQA	;ڐ{ɒ1$]L2<d7sRq|:n^6d.T5;UUkhN{.RevjF'9=ڽI7`g=a@Ŋ<j=<k޵ l>&>:)yrbpG;ѱ X.3AdxFY*NebLy<9)zיkci/i8T(StrKQ}!rP'_,3Lo̐{RԎAqhlXJnYڗ==jw[ۿ,C'6z\68;>k$+=#RY'/EXN#)`&hWOci;o&Ox>;'-J?rvx zzf\~k- ]AB%qm?
۩x Z
&1,'KmMn%sr7Cext_api.h Dah\DH֨H\F]100644 tee_log.h O\ZW^45]cZmA79Z9>@y!̶P˯`!E噶P]qH6xh =NfEC#^QZB߅X| P@|B
˛!D{OisqvN.Y[$}>ȞW_0E-x! h0*fbb԰y|:(5x[YsF~ׯ_dBfu*%$HCrV  v Ad8{C'K)N~->ڧς6=+QȣKfQ9\"Cg8[?eÜ-!3S2D
r>O2<	PBd333|!YB<YXH#eYNgX2i'I;}kڮ]4B r!q%Mb	l*9b2z!E&)$[0Iw Lqm@,rOIj02]8=khlv'|)pƆ'Ff
&t9L>}Oqh4gSG	sRTS40 B1ԥU.Ũsti) ⩌-A_2OFw")7cKKDsen(K.)%t,wf|8E(e:31`m2 ^xLZfJLe'Qm{VbSe 6R([u[(Jmjo{I jA^@9哠z7t;1AeM蚮mϦgƥ9fīw]yGM 'bl]uS!葻tߚX<O<#~aqQ &/AeCSv<R~XՐMmUlrWՔ-sNRNAپ*&3Hy:MY@Y~|JbIkp)ye4AuO)
6I\! qceYnDBVD^!!ȇmDJQY#Ls.OqôMFD+ o
qZSW"LGw3p[673Jzʢr0J5|Q>#8Q{]	v<!|$G;q*-M n⧄I6݁X@5atY8($@ib3kq25]@B"զZg(\gg9>2Ɩc8P;=wE6p'iń=Q>.<Tj=7zލ&>f(ҡݶ<6h_K4rx{=jϴղ?}k^ݱ!6#Ŵޥ9\»0_0lUZϕ*i.'N1ƨ*0Q){띏..WXWSʟJ؇q> 
HyTc3D^&YݛJvG77gãTYTR'I,ggoKf92[Q'^_+,G-γ(k5:+)>pBZ͊Or'~+V_+hlChgBٞ!4%f
St OE{8ECO3#SUvðRfF(S5a8LqxY矍ӿyy5ne*pe\+OH7E7V0O|߮`-Ufq9CơaMRRN1myȣ-)]j)Yw4^?X՘A-`t:kF|#=N<ӄ
NhX*N1 bat+BҮߊKo7ij&,F5k8Y U?Pu"a3t(SrnJK;SYW@d_0`?6[BçxiѪՕ4)ҀF-:K)S<Y_TO"߽Qٻ9!xhgE<`T]Oc|+	yiY)gAbcqWzjv]jъkAOڈO5ˎ-qLUema(7~qq-ڼ\թrk˒#G5ˊJRͅ5(o,C1~-ޮ_T,nQ`9BB\wb%7\9B!{8޴v(hߨ^Yc0*Lgn}5s՘5Uk:J+1/=щ|j%8_[Ϛ?">Ir=-ك}:/r?xV=SG@|f`gP<&P0	ձ:%ҝ&3Id"Hu:\x*v*w'I	'_wb-q(
cX!"'H.CT9,5왍<0vreEbp<f`S"1HiSi JIj*Da(&᷶m!<DgJXm1Z	#"۝#]X1=B;o^\cWG׈kJH(f>CT?x21DFLLg2%7i1&'wWvjlGfb:\ЂJm HjVVXN0} Ecx3T&9}ט>,e+R9XbT2صz'رTu)	*Q#rEU3#=ҫ)ZW{~B)WZh{;s
KǜJyyyY3
cM刷|Ddxexb~4(gYa;GI<sw獽E#~{4Y,eaީĬ"ᮖs9BMИJXIyS+2eN1\Djm[X)JO*.9<{Rrp$$m>mQA8mRfY;5`0x&=Y.ʧx{6@m#\bH1^fɔ{!8=pM(^OJħ(TU<3wt>ЭFU=E%Րff!8|A>e)o|QsQŸ"3s;ݷ'f,pS=0B?~|=}nxգrFH=V)Fb$~563B5IATc 14z ϙNֳ?^^3>}bi&l_i.Iry3;Sgާ}>пn7x`kb,p+E.확%fcuMgeY̘h/&ux^['.)e׿ApI4g{XxBwf!exj=2o)#-qd5/1hg!trF.,;fz޷WF9{r z:?x nс nx(s/&=v,*ev, 8
xْcd	ɲ̇&mvel  p=xٚcd	ɲ{&3ovel  y	 )xk6V|, @9Kx]Ys8~@9/cx6Sfd:Z:r<(	HT~Iݴ*#8O	4tF㘽.~`7v>g:>">`7!ǜiǏS{W8N:-	S1K"NĆ f$pCN<TS~/)9j8Ù->ѹ+׍n7`:}<XJM٣'B'v)a`8Q:$.Y;hwZhFZCoF1&w435̫S1bhr9mNC>/6(}g5o#F==<8jĒL؎GsYK{0Q'8ezo+~f;1i@[Ѽ]Lvln<2@B44Y9O7v&|g5V\FIo4rB6V@XĚexŬGb8E7>_NcBH<+HR`$N}at׳g,p8"_AuH{؆!za0;zZm-St0k~iui|ִ֝n^u<^mL8#<z}vفsA@_ǹ/db
-ѷzH]~&=14׎G7ps& \67ѲnM3S0$IĿ]עЇxp2B$Ѡ/Zf\fq*1Q6=$)Y2
0ǧd{E;9$/X>Sxm߭}O>2L&=Tx4t"Xl|4X{kۣol#{Ʉ6@F[/,cFsμqP!{^oMSb޼Ѭnu[df_ɱ(6HAz͐OȠ#fKAbl׃LkH~mYS"ykq{)&zP]YyL`Z: Ʈ^켱jG-0eقbjrr4Gǃ|7C11rc(<Pz*lp!mEǥ'6yY-Z2|7iJ}i ŐTa)A#]y#Z#bH!Tf2\ Hhɹ"fV!̿!m6*<Fcno# Ui,Y m9x镃H0lz[ vhOh՟y5>vBߛp/f/^d-
 JeDRX!j.2bB"EvgP3.JGX$g,g"?IaMy(i<NR[$RF|ðY$onc5 6{13rR@%"L&R# &ې}Zڝ`@&D
n'Ӱt󃥽3;.)j=u^Fv$nYUޱVbZJÈ2a:WzHZ3mgיJ(4<`UhttK6*0-;g8O0&&nҐ,%=oڭuMBױV)r!bHu
Zvű+Jis PEU7;$'ݑ&|#DKSٞTwTTHwaRMBF҈anh,񐏩¨al>Q,jF3Ն*IbI9<4iԒUiXduFT0)pjѪv`%x o+0}1ЗHy@y#'%AUm#C3ڕ=!YKe$]ȉ럐?%yK{|Ó*fKfT6ȗP;؛C,kE)qj&BFJ>HoA	cT= vq>E6D N*3+ȴ:Fe*8odHC5>bvĮ4'H6!*Er
1\aOC\4"ĖTT`(S+ob$Aᢉ HA}%M5RWVFb;aW珨J͛	ͦ~Nm?F?kqX{TG-n&Ky(R+OI,E~(\LTO-IfJɥBJ C*4y8R:H(Et2R:d^Jdu>qe'dTJgUItPs[-ʥt4#S T,-vKS7rd_Q<hwoH@֓.Ewb5Z뫤ogIj/q *1'JkA+/@->RXdHo.NdC,N.._F)-8]t2d]s>/EV;X/w-/jbׁ%Hq/xf|0yVsB<l2Ks4(c|y9	R& ,fjߜlJ U~O+%=U^4EZyhDz
Il{hWWb
($ݥY}+lf{LY)b%8֋mdFԖ5䷚il{B4c(Jty}f%AdkE<+MTҙ-%R kX]MS)2r=CZ"Jz֕j5;>nܢv	EYB
:\ֳ9,b'!};B|@~v|4dxQe*5Rj$
\ [IlhD[/[XJVAfY^lܗN&Hۼ%7+8ᖩuӛZT\"uXjUWlU~#WDL)Җj w O,Xw;aɶ8?
D^ml8Z'7=RAl[8ebcVcO!0=aDfsphEﳤ0t-/o=-Uʒ?gGk(2t䉉ClmG,Y";B1W*S%Xq⺀/8e훪ph n25;=T1W,H˙rs8AB$jb.s(q١=|wkhcD|#zƁo
!\IР\r%m\OO{RVq}VN_E:8E黯hxdmyF~~nq8fYGG`Gn"`PAyUA{eWm)E}6UTh37}qRz.l!.Uqݑz==?>yu>Uel,妏3kqP#M?\B9
(P"kEpUQ]*"58j(ެrgvMI~3cV C64.qOUSQKث\Bj*j	;TMET6yؾv[2{׺IkϏlG~%ftM3؀(Zd'ף	\pxz)ʎ\M'4e<:ypѽ}/}'JiЕ%PQDt`m'r
TBe)HX7 
h(FzewyoNˬNE q;>X\(sg:׷wE&7ե (7pTA6P@U0Tcם]
;y>z+`(k!WQ2؈}{{:!g9sfZ֭i[1>踡V
'yU{׭;uc)-7x\_GҴ:Ғ4띓kS'zg_Llch
˞=>/$:-OP<
g$G$I'zwf?ͬCɷxG'_?4gCg読ݤdH0nQbFc|x~jA4ў]<_R֌oUH%nD%m6mmp-mT.e^j2Ï?M.t&.K=R)n{ğ+UejFki(JXJ:uJ.,ff45C[e?==Tk×OͦM<4;vg^TͯК͗n7CP)2;;2-@<6.ZJVhCөEv?8fuf)+v>_%̰mv)L m6m'mtpmӀ&F6,ұhBV7H"M@Y6X];@zLu`aly]ǡ:,S#7haG,>=Od`1-m[5䭣f D	5DGHs0bEɯ/fRXʖ)/T*K륵,4~Yfr:8Ck!'G@0\P,糅R5_, EԥPEe;ͱA; A|\VW5hsh ni8	W+>AaT!-͆@/mnp *k+<85W"a[@qB38 ϓ5j ] #:؏AM|Һ탋~sl4lJ9H6qd\8C綣QT<<5Ǥ+lm 36kxܷW@VY_b/,!"+*hr-MW[!q6I
C"{TlB$"1QX5
:N{a:*np,g k%BYA _)Ma&u}˺_bQ)*R6!V+|Q)VPezw7"= 9r8
\jcmRSeθk쏓CmHrRk,˾ݢa	U<^8r-Wv0M^	n؊[//Č4_,{'nO,V5@Icj5mAy\'Ay~i&/R^IqoBI=8Jͻ;7yKS;F<;h[$-zͤX(mCP*I r uKQt[۶RWۼoujLm6>O6;juuRXrBp2	-;`/۠QY:@dDؽC=B뚭n=~vᇢ{SjnQOm^	'I6&iQ[xs	t6n Ӱ	p|!y2?yJ7!3V{E_
JE[MDF
K4Kj`l䐞9xlNT05<v6X(yahZ|TW9i'j7Uo}Y;vIB_a%1EF#V8r!:V܀Vx̍@Z{FX<VZA1rN!*'. ψ<+/eբ1G1E_")zzjf7q&< p>M.ȾCb6L'u述x)բE$lPB&J@W9M>*HP![O'G괥v9= ׷HKS^pn+(;87x5Z\|h=aHSGH8^-eSpv0M`$TJxvC=Q8HHƘp|2vD^f$3gsO6!*j)WCb|jx͆xJ|i#9qCx+bߒ~|$ލ ,pSmu+\MqK'ȧ!kⱄv!vq|Hu4Q_W剺,}P`d14<gLd!- FɢE/ byEmaDvgӖ{6i .yn<˛/I(^>w;SϪ7
Ϯ6A*ZUִF.hCR!euv9aqD\$y|gs75б~]˕j2kдau*!w<-%N˚Ҹm+i\Rô?&|dQ{`M؉S>r=ߝx޽T]R,eY@F(=V3?-u~vEׯTEemن3(of=ϱ_ua(;fŌWp.
4Te@_q©\~gњoo*aK. dbYj;	M߸@*rvi]gk
FUWsG\o0F֟{~ږn@J౉	6"'|#ܚn8<WL6g6d\}<wrVWۚ=|C1]T5F>O<AG8RwHqHJND 15F8(\ta(;v{	,٬#^ЛD\,6PCms>60bPPAIsΰ7ipC`qQ6q>֓c+weO!rܭXZZF!ۨhߵ{(I6sv칏~v0N!H	J}Q	(B!~<>W9Ij$Vlzš:mf[dgrWMvv34wg_\>5gk.q7=#=V:t-};5^iK)߁YrrB+<%!yS=yߓg.0'; d=kraCeO0~'seX;?o	YRZ3#|Iu) q;iwG:0Elh-Z80GŽ;.Ys@{JPMyPoa`m4U=(	Gz	A@LZݱl4025o9֚qV:=[@ _gN_}zŰP[9VwscHqb6
MN:b[=u:bg(ÕS#BBfϜt??dbeycoK|9|䛷4e)2<W(D
ۋ}R½fGOglj\֋Y qaA>׷{?\vܩu%Ǿg 	QީS$j#A{`V?'1X%pT2lYoؗ|ߞ%0͹[Mg=ߋaTb72_
m@BX/kYj|.[zBqse0{mLD-5:6⠡>^0{IAު+,Lnq%'yw'мof~~i|ϳߨy/O]z?LKcwY\$0{6#e/JRX,x㘘gB#! %ÛE-}GݯvˁbWrVoo/x/k?>h-$/n7N;C!>IR'JP1a.<(j)[
Ny;!9'qQĢS06/ᛷI[I
١QㆂvKv/lGm_Q`yDnO2=Zql'\'`VO/#vԻG4R_OnCcq X$t|tr{Y5+љ)f;1Ν=?I{aSQI[(cU@xe^X
ɏ\жX%"~N'oY]1/}x M",/ŷ
:x\_GWriZMiIɵ)M(w}4={|^uwILu,O@P$^3J<TH}FB?	T#7]w3 ќ3|gpۯO~zO몭ݠdH0nRbF$ego=:u!s><7;EE{Eg&N}T5DRQI[E[dKm(\`K0UK_YׯgvOgp:.>\){gşKerZki(JXJ:uJ.,ff??9M[e??]TkCNͦL&;zgSҚ͗n7CP)2OmvSWx\y`%˴";VMmNLaw;f6@bͶHԭvC6Y:8Ͷi@[|#yhXL!+xE&P,m Y=6|Qǡ:,S#iaG,<9Gd`1-m[5䭣f D	5DGH0bEɯ-dRXʖ(/T*k,zYfr*8Ck!'G@0sP,糅b5_, EԥPEi;ͱA; A|\VWUhsh nj;8
/>AaT!-͆@/mNp *<8UW"a蛚@qB38 1J  #:؏AM|Һ^st4lJ9H6qd\8C綣QT<<5Ǥ+lmk?36kxܳ[@Y_b/,""ˠ*hrMMW[!q6I
;"{TB$"1QX5
:N{a:*Np,e +%BYA _)Ma&u}Ӻ_`Q)*R6!V*|Q)VPez3w6;"= 9B8
\jcmRSeθk3CmHkrRk,Kݢa	U<Ş=|
MWv0M^	nز[//Č4_,{;nO,V$U@Icj5mA9\'Ay~I&.R^	IqoBI=8Bͦͻ;7y۱F<;h[Y$-zͤ[X(mCP*I r uKQt[۶RWۜoujLmW?O6:juuRXqBp2	-;`/۠QY:t_}1 %<Fݱ{z5[h zw֑y{SjnROm^'I&iQ[xs	t6n Ӱ	p|!y2v?yJ7!3V{E_JEMDF
K4Kj`l䐞9xlNT05<Ҷ6XyvhZ|TW9ő)'j7Uo}Y;vIB_a%1EF#V8|!:V܀Vx̍@Z{FX<VZA1rN!*'. ψ<+/բ1G1E_")zzjf7q&< p>C˾Cb6L'u?p1բE$l:PB&J@QYM>*HP![O'G괥v9= ׷HKS^pn(;87x5Z\|h=aHgSGH8^-eSpv0M`$TJxvC=Q8HHƘp|2vD^f$3gsO6!*j)WCbxbx͆xJ|i#9qCx+bߒ~|$cލ ;Cmu+lMqK'ȧ!kⱄv vq|Hu4:Q_W剺,}P`d14<Ld!- FɢE/ byEmaDvgӖ{6i .y?KK(^:w;SjgWUNMEMkZCX]:;ON9}uXW9I4p3b!Pf:okVMuXf5̂V%g<9iYsZ8y\m%+RjGRVL9:jO I ;~Oǀ\sO<^V^^.*rW,'Z#SqZ+Ν:`zkbQY],rqa M>7[esCwyG:
΅bU,akWO?˯`,ZM]>l䖕l\,K-`'62[IZ.)xMJ6[yHuڧ)9xlb,f,H:Hr[6;ֺ͙#Wtq'ϝFն@1׿mgo-D<U͢.OYfƟ8Rܸ'9҄Q#le7n%;]g;JN8y.|ցclv/[jb"@.dk!6sr9aWp~1(h(n ߤ:g{4gW!|QT0S8G~tMɱqϕ;Ყp~ېD9v|VwVleGvgA{WS}mT=$93ToryJv^;wJ$q(`Q	eo{G?@an]ĉӤGdg5WZE6P6f3]e	-}ab_z}9ū`_E;~a;Tswj.⚋5+}]F|n,|L99!cw*wwv3F[uA692'wd
,,)A|x΁spܤi?84#G6k -#rD^S9 o|`Ix=n%&W^0#L ^EDR&?X6z7Ĝ	UkM8[+!{ J';Wk)q1,VUGܸI}mf;@b.>ὫJp,=+ఐٱ'p2tw}{xĲԼű7N~ESc͛E~qL[">)y]#'3b6u.,}|i  [b齟b.;||cߙM(ws)X5zԍ 0#UtVEz"qw}oOKwwp}l3V0z2ORCh~XN-6 !HcȌՁtAJ>-{GRi!g=@v&"wHqPcݤ oſK&79͒In[мo~eϳ7^~o(\c8;I`ze-rN5_ng}eXP}Q1IτFBAJ7Z2:`ڻ_\
U$t+;(^!^?kr9p-$/n'N;C!>AR'JP,q`lAR Qf}Ýw-CrN:{Em`l^7oؓCJ^J>I2<!ܞYd{6'؜{ɋON8dŗB͞^s)hGɷ>4xi4*A{Ih:NjW.3Sm=sCD^9àI؃GQr.K#<?՝ݷٓ˿"i[mW3JE6|+~5;O}߲c#'OxZoW	Mso8mQҊN66vkn|!IΜN<sf/UAr@ Q@* @
HR%y/@	933k;HŻ٥v<<;F2)%GRJb钉ɑD8Kj#o'#Ý(=9NtjEXuei%Ke4eM
F\S$Kiԏ$Yƶ%=CR]A*bi*YBcqM-@Piܗ[w=g3GF:)LNg2z~繓wř7ΗT"kј(*q+ӝc讋},X- i^>۱\A9NP`g@;~gdt2cٝٱ
6Iy>^G`7ᛯe
ltb!VTũPw0RwdxZb;-:sFs5Ą72ȴ`gjpN/Ю3ȩF.S_:$fVڶo|-1Y"
AAP2?+֣&3]oŅܛzG9Mk.11_\[Ñ樦BlNl5;0|G.srY.+*f4%e ZvD1,ȕJeQyd'3=O$%̒H*$/cm/XHhdYƖ)[(ì:U	*;LC;dBV2OS粱P\V肄:*cTAj2Wy'1ئ@n[ZlS8na&6ί%UnxSW'YC$4=͜Ί0}>dK<#]E"}#X0:77]{c~OroEG
3M:D9r`;usCn(<fgǚ~Iѯd}Q`XV-84a9Q<6vIZOOLɒtTrh(\orEk0?~p4':<}~rxP4eL}W0E?|fk_d׳5U$SgdE $BXlJԏlX3Y4+A|C]ArM!%AL\TI)dgy*vɂ[a.Lq$3r&uSr
~m>7q[o~xomϫK6	l[֑TԝUpt%gމfA&5F{3\*\R 
IQmuu
p#:2`vKh<ņc@A(U	R4_#Q2W.@}q\XWLZ+%%yfDdy?J!(}ýuMM
Ŧ _^"/Z)^	ީ9WseYcr+)@F=1-M3eʁ
l(W0YcohO%J35>S7Ӿ=7[W;ۅ`7&vkao6j''rX`Yѩ[HL{NrT	o&m3Hts,=UTPuqp@AngF|2mЂ>y+[ubҖ&OH6!>l"톇'I4]q"?mB2cbdm61LIx	Argː|x+/δwè,rL+NnFĚFTK<H'L ;6n]/7V0(tv2XIƐ|`=\[C^fO[	ІeHHIڢa:3kw"p?(=V,lXGcގko>2]8[[8)݂wM{ws4fԼ%[P=y:
 ~PcUۑH=RoBW}ZV-WYiDӷ>אņZ<6 .UKmAe7ZMj0o'L,eGs`PxCv89L*B撀dkloQn*Ȇa)*(R[`.K/Zİ!e\<mk)oqMPʀdEOVth8$'_m\[qr%7V()/Y0 a
	t7|_m_nMiz'/fhIQ,l5SZ5ف #.׈Qa]_$#{doWAC5bBil7͵i,$QEMB6_QmTv#^oxmG3!v)\&㾠o$] g@ti1lxgv~W_xx[4il?XR''*Mb~mfdY	 $x[4,'_dzev' ^!x\sW(iBC%4Ȋر%Gm&Mb-K]Jfa:3 @S'x0aڻVlSN[K|.۳R|sn8)!ߠdICՈ(SmFV21!5>x63NmzjH\nM*zTEC#Nkj]V扤xY1T"|6ɢris-[U3gt7.$w/Ɇݒ^Ztq#uvYύOn..&lz">Vg&/U/Vu jl\Rjv5݀Yo=B:u3xG!&D@N*~,nD,=s_5d,!^]_g*}
ݼAqL,dN6t҂Ϻj4QpߐH N:+m`r.V]cUEץe Tnk KWk^'3t馪WN3XKS^8seT( 
0$AyOR[!Xb\όOeR-UV/+*|gY xVh	LAUm_B)WYĺ#AzlReXX`q5h\/:\D`9.`ouu\_\Scr~҅cg*I$Vi3
5Bzo)U3T.Or?ߧ- Vیڀ/_̬m&mP*<,gͷ]=]Z|/Fޯ&|5=zVܪAEMӮ98z\{;OROWJ~&T~v|@+%"5#ZW!ZX"p5
KgȻ#DvZ@
r\ z\5
~૖duv3r7|wc}oUg/\Ȗ,G3*v-8Q>yIZOfl|wY,V] BTыU9R2A{A9^V͹җN4=#h)˙(ˋdJbM 0] >ܶ{Hyt 9vuvs.h.m{w]-g78u^	AGu"@꺈շ[zƌXu`(l,Q*^m{2 PlhҎqթ^9J^~̵{m\b-e]~8,igBa%tq}<\	-KAW%904HѥIڐmFAuِ="-6AI= 1'B@-a`-#X6Ǒ!ڔ#i0Ä1<Ck!X~MHі],$7^3$"9"r$=.GL&ԩ"l'LM JoI5ȏհ}3mN+MbcSs=MYA
>\xg()vh,joS,:$1"5ᑛCތC˥|FLKy^ @N?bnbj"Skk2_JlZG7LhǳȃjAWsdL0U3Qã-Zκu!@N+
LD[!MeENjc"'Mio=3:_5"қraM*C[_C䕺{FI$zR5naEy_{xǤ; 6C_ox.	دuߡLD%A|vHzƤ=[6M+GD`1dFCHY^68dߐmj<cSL'(Mbv(H>H]ZxqbGOUR\$N(S"W(, ZTV@aj%`?3&	Vhqn!2h,XO X6!XͻS	%Hg~T]*<jyT$s/H72Ϥ#| 9	mWUDѧEkrCP5^qoJly;=:p(XiqFw_͟ T!ke[Z&-]AӺNRuӶ44JWmqe*h!Q$;\
]l'a:x5?Ul%KeNMG6CϲLrR(TKS\@7mG4>rn^G_۳Ka	ۊllь]-Tк\qx^E5]FqX<.AQ&RPrޜ+rd"/gqg*CO/\w9?鹭a,fpќMwDoY#z$t˚c\}[<<:4qEjU5=o;#=1BCO.O!6pT8ęZm8r?)n]NI&. xvnq#g֌yng/ ۿc`<o,1%ޠF|r63,YSItxx݌@xe5]R7nv\_jZ>v
xkIVD C+`(4gJ:hpWq=f,`W5Y^<gu8.&U}j{pJn]}5߉;v~j	\8l]<w9u3
C\t7fٕ:u-<Oͻ/@U%Opsj(Q~~\C:gF0>Y\GՒCSꕴ4kSOusԨF:su/uIyY1]q"5B`g_}<	vN	~q`;BNs}iq}@Wr2B\NH]PkR=^H:\Sm;<zD@߄#PjBV#o<VHRr[,˃z] uȒoIYl:j7Ĝ	j#yk5wkgDlΆ)Rޣ$O{#rdxlہ}:
5?O,{ʒ3q%`P~FMqb<AC!ʤ9Kl 'MY$(3ohB5 u欭!"O|$a~8VS=7Vm_샃[9G7,akAMA,Nw95W1pv{9mw0ӿsȯ%K@bc}(x1'Jbቤk@׉s{d 3郯]\}QY-o}c(ٖmic-|!K\o$ǐ_?NGw&.cNmH%$LsO;^F}'#qc5==3!}פQɣqP__Gs0O=AY 8(9SJHNY囟/~h.U㯟?dca:l-,B?؛o;y*@a>_ZajG|Z׺/PJw9
ioO'<;U*rsKM7tuwS Kx+{titV*bNߐMWН^ B0GGETZhG:31ɟ=əH9*o"`yA}	мMt\N}b2MWaǙA\`Jⲣ{?Oju	̶!јVϝ{Ȗ׍1Qq3P`KAs8zP_i;ʦⱁ`|?Fݒ'o?8v{clJxu=
x҂N	^f
!u&
{Wr=1lk=3'0uBX9o~PL99u}>OOc8fx6,a̞Γ7O)L `p Fx687+mQ|/
 3
hnkx6i,R 1sx\sG/KvBPܑcoveiWX.;kWv{efֶ b8*@rAQE@P!U	Õ|_wV^I;Xu}gwkN3êl*(.t˔Z[Q&sinؽ{"?Ҥ]Uc/s%iM+2U4FdR&Y[ -/)&]fn39FvpTY]TX}LQkvs5ÄLvg#|8V{Q&j}Җ>Mk&xBq@0L]g+6\d{} Kz冇,QS%4H6VMQZM:)D1H۠uP
$ŋUX9j%umYwZƚǚ׉ak&]4ŗNN3XKSY/pF9˨i*QM)d\7T륎XzVV\T.rBEUiz4# cq$3C@z0˅beR(."|3T]6W h<-ԇ$^fRŹED/kERF`Wv)s!d(z}aq	s%4A	g"O蕺 Xu\B,y/	bM]X:o{Iㅍ`\\ DSm=YyC4/\>@2ma+ѕ[Ϧr娀p߫xt*0:cb*pg	Gg+jÔo8=eE1;-hts+t, Gs6vFZk+vEk{.ʞ s=B,߫%U pR-
SAll*6zC}rՀZU*r2D9gRQB$cj{u	>{!~ ]L立.ʈu~ՖN[cMڞDH<#3ŅR9'InT*\8BkJ+a2z~xz!LWi+aŖ>OxrPtacr.PuP+nMd
\t8uS۳
xT$wκvu7Ns)Ǟ'/x"UW9+2EZ$^RU5ݺf2Xq9d\CP̵("$lnA]28QגԨ%W/,cgm\c2@|8,iwBa%t1F|3֖UI.w:ďU<jEfmvNB+eЊbCNZld}:#:龡A$)jAEo;x9$w>FJk&w Ê"'as?$yot/qcE^Sti-p)	^Qj+vmɔa|kFLLdۅ܋BwgP$hMh5gհ͙>8/؊}k%<P#uINS V|q&r5, YO"Yʢ\nQ;kj5P7u
iLMD55#/ޗ˅q1-'`j\dP\+afe݈ÑȬՂWɤׅ`kn"hǦΦZusB\7v|0XMm@N<$NdMNZMyj#D3>q5C1)
둋#,V86ˮhZʷ,,#/%GwyBB{0ut90Bs}j?wIDǓ8K;Ҁ	cO5a'\o(
,/@1xH?|Я-{;cf2OF'GRmZsX^,/c߀q??e.p䥁:8h>	ǋBbH5%b;ma[ǋ
`]DdNgχ ub1IMa4
y_=b̸-A:థsKyTxnb5^,ji˷dgG%8vhӢ5z| xʱn{6,qD\#|ĉ'	Uo)b-YWנi], !IXL^(JWkI:e&2sɈZǔp)GG×Bck92{طOeteZX|#cDi"Gա#zbb9܃}gGٻs׎Uty'35y6Pg?PwǮ;sW
y[O=)JށmU1gƝbRR;oUľtp0ƒhw*uwL ?[͕Ųl
d$*BU*\y)0D4:$rig*/*<Oy?{c
,f=dgGI<DjE5L#z,r3׵˺c|}[<<:94	Un)U5FÛt6ct*z`EC%\Y6tmm39S7/!^#L{ݬu~g7 ;wh\&m,aN}VFih?m-PgM?-:;wF|=NG}}d+9s8=&fƸh|_Fa;(Ϥ6beqF&ǛJ|Lgw7ĘÑmWt6[3lÆq
~Ob}6;wewG-NP7*[_Űs˕X	k4dɩah]k/tHZ2=/W[_pj<\v}#BUH

	>6BwαX4_s,};5^iߞR-tYmUОH|a]).N73Vl(d7ПLg٧<<";g8A+nlhop6WW+T$ #wB=1En {z&!ϥf[W=Fw6 	~@?	԰Q/@ I3mE- uE\3 ;Rj-emP`ds&Tjwo@l}o$P5H\t
Qst؈k'Ri`{44Aitob}Ԁ-gm
	ktL%auʦG|/I>^mŠ4$,3KiBDX,|buFfϜ>h>$5VP-	k=1;S#/VcVlj0]R~q=%lꦅ0QL6\N7 =׀0{دv.{%F0b	JLEϘPuǪg;>+Afz7+at(Ÿ<zw{_ʦYZ,͞`>%s7c(/feOwj2WANmd_:ɦB=tئM/EMѹkѸ\Q8h 1w8iN=EXM&pI 93H^U?^>E6_b>>v_<=?ddQJfd3	`Vexsw`r
Ek1O'Gu:._ǘ\﮶<.jFkbUZ</6ŨƛP.mNo7W(8ЂśmCާ=a|4cQ@wCL(.a7N(Jw.bs8׺>g^$ocM}y(b)Ʊ[Z80'㸁po$d"s浴f"C	P=3:PlǛ`BUzo`.i#+oG[9}V:l!AH1: ~ysB㑻3˜YNI@I
:ugyaɮFT',\]guF6VصN~q
p˜E66'b?yO?vdbg!owR-cx6'wn~,̶YGoB}AV Swx[ʼyCw)gd|Oٻc;h&Lb`3ys~"{' !Cx[|yCW^/30OKH1dd(c7P|vĴ&廊7C	|' #bOQoJBHFkCo~.1 \[{x<y;SLb) 1frwQE7p2bQ}8u,B<*:]V8k<"F)u7H"*-c{_ 2s;kxSkA%bR$MQPMO~DZh"Mb	%Pa;lw'A'"RyQ<ѳW/œ&M20{e/剷_cY"KHD8}@y&)=`A/YNE-M8'JV(i҂V)}`BQߓ(&Efˆsظö)/GJRƙЌ,l1Ֆ.\0Q2+:4zWj˥&i2kq/XUԜF_A+Hc|GlfT%P>)^)`v)j,h MG(N\Ң8Y&i Ė Έ(|gױxlnɅRsɺ>mޟnr2~O7U@!*3è:k;l -k&N@mp9OvA]fIߧKF6{}y:zH,\ps"+f7<u)<̓Fo	x{&7JN^'YG v
&x\sюȏi,Zqv,!3DG0 S 
ՌC:C{k.=Nδ=t&2I@	J'!o}~ģ#C7Ĩ$}fy5e+2FQX#N:7Ó$|@ךbvUގcQZF䒆DIɁCo١7vKt<cu!sz:|RNuMi:YyeuLiLC5F~2Fkf<)W,vq6*6Ld|K  ]O#Rd Aj!>kH`Ԧc4E.b-Eבw(CUX9EuuLְڞ4^ 6W),i:5	\Z,Rvu6_)Wc<PϢ+hlPZf):YZdk:u.Vf*"E\	qqL\|vqr"fHv m gxoR0!peȞF@R91|7D!q\_s.fF*nbK,	BXpvcjF_-esp301éjF*t@Ҁuqepqo 3SV+,Mvsřy "xˢ$C*Q`06do 5Q!:\a,kqE{)
@	/`
^.-k<>7r1TK,ӗe
qo:+5D5rqu..-fKzna
lb^(CEqaR\+bV\)LQCːh%!艭q斬YgtA&B@Y*ac/
4}45)87L[`bYYetA9&(fp-En׫:z8mKb!f+,ңzuFu,.t=u^cw(XMK^6b.oNXkeہ)juAAU[fr71$MWkj,JJ@^Mp3vkuUat{=T4ڃg^%>~+L360;1ph/nQ2k3ʇ3nVO+k;LMQ;MqCԅZeK`!	7OeldǃgTI~H@)c	c"].̜|lM>T*,#H!p}BsLN↊62bRgձz-v0>UT lDw|O!8pӰָ#35iPǱX/Csreo+"9fhrT 
rV7DI̔">,D4d*ꅊB@+tQ&ؒtZU&T\
14]*S|ZbGj
x~3lU򒯣PIv[ծme`Ƴӂf+3j"hNMsj72W =`s Mtx"IZmQ6#_D
Z:a7p[Xe@mȎ}3H;NN=8L;1&ԧf+:"f4s8_zXVD6^wFx=81Y6?B0T(͎]iň:эf䯉lZP8,z]#aCx-`p&q\[NC꽇Wl%ۺlV0[)sƆB}?v!vA[SM,1GmasNFg{ [fV7h7[s
gÔ=DSɼY/ s-6ֹ-Vj]מ[.׮:xyvպ$]Pfu2 (&PW%q#<}?;X3FGF{tߺ@yI]̏#,UY/,\SUXAZPM#*pr[˴	P-WVql)`#cbѩ Lȇbad+}?d^TfE:dY$6=dQ|䨣;'+Bu~4|=y|Ax~||qA;CՑx#S驔+XTulZIi_{9ޚR!)2lT(9Z &O2PR,T;YgC6FGjn#m1a.-z+q=Wi\#C]'"(ViQt:.ө_TyeIki&+<-	X`AƄ&iؘt>><s/LTm©9޾S
k}#`Z:6qv"w5[z ڻ 2t"MlpϼUхTo0˄؜Spm%Μ
i66'AGSZ=^lt'FV*y٠q4m܍҆wk$m8b6}Vm-tcp.#{:\:Tvȶl(ǟd-
X|Mڲv$"hoTrt
nOp$EOQ$/q5{k=_IZ{c80Ze6EE@lQiЪYnޣ/(ɍpF"\:dl~gailcFozئ0n[}bx$;~m8	DW]2*X"#{#&MM[*hG˿{oP
o	@}JP٫o73Ăk։ڼ>M; bй	g^晴Ó]z o<*):2EM6]۔-ArK##A@![~MbbjYh:202V9#,[YfA_ Y<p3AH-KRuۀc߆H"^4d	D\Uu FVZ%L93gLdǩR;up|ERM!WOfdTɟNz+TFXt*6Tz2{-/ݓz5-!~Q9=%N T ƲZY͉**g|žv!AûnE&+ibN tKFǘ4t/YԠZmh8cwhe{PWcxLE[m[9N9gvwۄ*L
_CCNk(s?3N>@i9=ow]KԌۻ!բ"Ssna3%#țhy%weF"K	Yߓ/^xvy+á<Y"W7k`&O($w~M 39/G3O}'h,UXrGE#%jڵxg*xrd\</Թ7P;A#'N"/ؔ͒&ގ/W*7\5F*.I1$<ŷKKow#b5bߎwlisް5kw;'*9{Fuf:'=ٞ?Cw[79?6w{j\l&G[2уъYſ.d/zfЍpTM%L
/lh7/m)sD
a.?3ĵ^F:okU9ׯ3ܷ*=7{Wd,l]gnE`l=?CD}ֈ/oG?vo	x%-(=To*tǧ}81Wdۇm'x\s/-0`ppX[ Cyx=۫JJc}Hn%%J.)T%9\9*|=3ܑ|;_~߫ן|>?f۱dhZ6QG3,/adj}M̍sGQl@:Jq>w=	mڊd')_33#*|<	EmmLYdiUSdl'[k~[[ѝQ$/HL2$1Ld|O B?^dH j*t۔G
vtC疂CB&nfя\ok5f>VԕU0J{"0xY񏧰ʮZjZՕ,,TbZTL.5φ4=_+bCbQSt`hu>-J\\O˕2@aun=qisŅucp?P8gf IJ }oy΁XS+qK\Yav032pXei򦇳b؞R76bFX
;i83DP52l6mR;ή[:(L׋zyHlyaz* 2ޒʽ-f06oU+bk/:(fNkEߎBr<kiK]ep%Pb
2u7%sK!7Z,5~REjWY܄"/_IRcaq~XKS\dӖut^ߢ+qoK`Ol(M;_֊:jVie&UQKh`lax<K%lyYaTtsi1؁B#(GĚhZaq&Sfʣ5,pғr; ^VkJOXYZlz..09ʸ?ic4l\>BL{*e;cV̖#i3fٸ`9ft j*J7CxEȠ58'1c2&FA~=x֗{cd(ScS׸L:69jf7p6jSڂ
DZe07n+Lt,~?#"t]Ӂndc	+9X BREP
ظ93O#1
24EaG	t$DPwRHXNPS	
ՃRkMK!58$g '|
5|ёa޷ʵ@vNZt=GeG-'R84CҠ5A'̊[aU^xo))NZ0Z9u2_s|y
&t}b[;4]P`Sn"4&!LWy1d\[g9H0d*<wp3o
":u&>$;(Bb7WvA=yY 	5M;4LSq<˺XnGbzti+bDGOfP;1@!ˏ_rgV$/^Jy{.?Sns1gD\f	ińrq]	4ө_2i5@Tz`DVf"."LocӞNAWޗ{}<Klܱq -,;!uv7hXd /'nIFg{(s[䮴N]iwFǋWCDS|SDɯ sғX]Vښ&m-b潑iu谭+)W5ܻ (ޖ܋AM#c	n&;>@r*7z{|abh*=da.22m+-PTS	:Mur2=sTjx^!EnyLL:՞m7b,ZnF.;7w
FyEt)@m8$9p09<|x-J17]Ie,MAO;O3!/={gVD>~CWy#{P7`T%{V,:ׄ)_,FqfMJ[9<؀RQ*5awM|X8z8=ߐw@6AbF40#Wuq+|Z  Wc`dHx|"S+>֖R?}5gS($&p|vh7)ep!ˎS^롦۰swVˤ4`!G:7б~Sv: 6Qަp'	_phoq8{eZ۠ѓwx }Ay vPw.1S3Qboj1EbU;#Q6V{1[:jv>6q#`juA
Q' ~[s!Du=Cih=DWa_1jA@szҢD1}hͤ|˭fh^p<z,cfuF80U׈S:lMŤŝlB*7#'#`@{Jv#͓έ G&B,I䩗OҍrOp2Q06̨]gʪb9@+Llu-jr<»C,GFW]$X8!^:8LU$!6h"<LB{Z>}rߕWk"ķ5CuKK'6i
dYbh74=wB8L ^fx6]i޴BzWC\i\KU:}cCN}(d͖Kn&#ȑ
@lr!zN|/Vs5\LhCHf<;\7$%#ț_EYr	u,2uw&g'}n?(9G>ywcViBJ^ By<*}|ljZ5;ܰ%%QtmQsSrm]<W&aʹ&.St1b~n#]rW[)HgfbR#lكݱMrd[\N32%j6&qNRr*fn = 	/=>GJo'Ѯ,s&bV	G_~T:-̤PY{OG|uiqgS{'yTsN\N6R-5Է^H\:|5se&o8^eff885,9-7fk!vZӝXQGN>ɼ63DRNj$o#^t;6Txk4'ӆ
fT̒y7b> )txlcƼ	s~ZY/91 Y$xlcʼac잓٘3K<sS3KR0OaZ0.kDl@2E
6syeq;$y$=Dx7
<	E3BaL	OĚۤ@g85rfJ۠soާoB<>Y<Vb-&27BONH\o
oV1\ 3\&k!.e]7YUƜ cB{9!7V91IC	_	oȰFYx2~l86/+OE\j	2٬ֿl;݊*cα|N8W`̕0glc7T}`= df,Zx^ gOlS`*E|O ?/-x19100644 oh_window_pip.h rA8K1FsVf*Ixk`j`+hk%Mg[,ol0 )vx^ gOlS`*E|O ?
h쥉F%ߏ!˓ײ100644 oh_window_pip.h rA8K1FsVf޶+exk`j`+r,PPG3%0 fxk`j`Fȑ{O/v/; fbxk`j`pP}Z]ޜv_ī AcqxF ?/-x19100644 oh_window_pip.h ߇P$ǘ`4m MWx6 q
tY8]9F /-x19+wjx ăZaQUI;_0EIxk`j`+@U[ĺY,k<qa< *Gxk`j`F4P)&6''R+.W 
@ox3 a!A}%g4MFuw5[1"n)!IdA!% nxZmo6_A14E//,tŀ%QYH*[lI-qbm6D{7kdh*V]w^˘N'g잻V5J{rOB<D2҉7u'5..I^ɘNI(4\.4!q8
8	׷DQDp46D.$TR\?ZGodҠFᆐf`Uzp
N6}쟘K0ؙR.u@ՀN$wZ5Gu'T2q%wb,U,. hHv::B>uo.{oȧN߹HON{gݛn>]_CN ϑD@Mh2c9|aURs]0-tH3E$brzU	kͣf7HPb$EI'jk#9Rs){P,]+?UNi
J]nT3lI䁷\-@7r9{ɡ ,%pJ~e+W7@((Dq$$2eah8cn *BjKNkxZo.v*F{VC=S҈J)ph'n3[H*6.o|i(aqMKו>'zuΧE|xY{yJbJ{q.z#DH<q8t V>ksC^~<{@k ?]p]baڭo:criOiZ
cY3JAT}*ps;l3/DukQI|i~ww9,{a&IcY%$KUTrc,AKԸVR)~ <Bk>uR
6
f@@0o[<-'.?=,zi8 ,&ڭgzD aP?t(M
S%4I탎
XMºG<)*yg{tAs~΍DY\f0tMB1pN<	06	#N/߇a{l-ȊK0K"FkUb'ͯ&1i/mg*h(wwh
x# ;
uGT-	H]μx'Gɽ@|a3-Jly}ʁne'vL`U^d]eB>IE W$oQqht 1,`_ i3ԏoL]GEXie[A9{RG	]nԲȁ=bOMcb$qpe0H3)颅V>[bnzwU1a*5n%bHM;_Ҍ#j\C#v+.PZh,)(+sA5u dgllc Kj*WF%4]w9VQpUf,B.7W
7Eh,)O%2ioƸ|~Wzn*?;Wl3GUwkY'$/ JAXrQ"sb~.6D1{c,_v`Z'>P v/̘)v*$;902\,wdZ^Rx]ݴZ/1~#:</?"1˚s3!]1ym$l_ŦVi5A)U#G
x!Y{|
JQ}ij<ML\pIf0YLUٴaRYE_FqR[%qUwڭ8sdXgwP}5LGyVcV8/?3^1ϳD.yQ1[i@lHן|yɏ E|7{r4mַq

o<o7CznUc@Ƨ "vG!now7,&yl2sYYKV|S\$*Ǘ|x5C&Ƀ.yB͒<S?Z(xWKoUÉ<cq:Nv@(iţھLX3 B-+M7He.wq&m+;|{7}ˇ?eItax~-JBq$)%d6'IǑN0;GXM쉎^̃"]
7;N&kQ
ؓCKDU7#C*~~\"FJGr4ZADS-(&E47	2L(K6eM*Bsiq]wb҃+M.eL?3ſZ
5ž&W81yѨ>mxh \*S[&?:_Fk!lK"LM(p38}Ngi(Ml+Y%t-_*ep n4mB:qC%3j.$.1=D"v${)B?G3Jh(D2YsgD4J3e; sKkIz|[MȐMeKSa.:87ZC*Cx!Q|->YEѶi٤>ݞҎmUfr&I1cNWU~TqQrɲVfF."!*s:4*oHh}H-n^^":V]eTZ?^vc*O<2Iy@ |־  jp!1὜uۓ++FE^O$mQ bnT?5*JcEfq[7f#]?vZPAkx^Q&y}1:ER&%-Xh섶!~gbνl1Ӕ?l49H,TQ_WN~H-& fVU404uo(wn[r1д!ܶ-!JdHZ&QvL:(`=5}x*mXPum7Xt;%s]'a?micn{ֺdNBgb;>»<|.?6R;$1_MNq5bHCH*j[~BK
//x;=ʒJ+|}Mаp5Ĉ?tÒAj>eHpp?e'?	}vgE">x{v.VCDxWoEÉ4qÛ	#m"EDېUPD3g-]kg@r8. G$zpz ffu<6ޝ_ov?IZA [U?TDfUM'tiFZg4cQ*RMkYQJ&7^|R+Z!*Z`{p% /P񛯪csD=\r)"^=mZ`TV%мҦacމN{ jcF9fc7:1VUdFɉq(*AʑbvB|Kevq.]tXIH1O'C`LQ_3Zl	\xFe|#EvP﹃@qHZS5Zf>oa|Xf}g`p]}]7T^%h&--r#٦5"v2е|6EPBXjf5H#	Pq.IQwds(KqEa\u`t*5$L-&aS2L;JY2 ꃁ%x_XnIHLaW:^TP$E^rzޡ1GT;H}~o,ȝez p1$ru~PD4T듌,3Z(o;Y&pPw{I׈uݿpKٵkx'!䣬F*['L25|P>mGM!ktBrhgnE^[1l),]w%=1k}7[hXRHouSgDS:l)KcsŲ8,D۝[RS'RS+h4)]XeX$ oLm4v{L&o
'~ɿMMDXeny2ݑBW/N0Q"ko*^anyf4-!q͒mo lN1Dx눰M/o7Y=;5zZ
n8qZ^]vSRye!1
t	WQ%^5<(vgJ]qGpp>dH
cPD$a``ʛpa$U]%Cu}>D٣el<qe!6J.	wu}3cryNߓ9("#qvF;1lBx}#zfM &,lYxAesK& #,xUoEVp&Np	UDU7**UCB2w_ȥ7 3āB$?s\ofEHy{ޏk ]=~̥
w&iE@i^-@x~ǡD?MB]D Ořtk	Y&@V-*ɔa采i_Ϭ7)u#"CmCPʕ~\UHAVGF<2?lN8p?9}~w
qR"h6n?6J%k'<Oq:[i&!goѥUPt~
чrU[u`ZzFq2ug7	t}薬	RMUeDŜ{{㋫܄1dIVOå!nK$ױթydeJj{^dZ9PkitZ&[_'JfēIlsLqj0u 
}*tAgoM|3<ODM jNi;uD.4'W7˻-ÎzC$o&
b5b+0Vr+".AbJyqpRg]DxXWrj\J!MRBU9lf.ǨՍ2Ҝ)z\:ǻcNkY0`T)pZťQ|234;z>b=˃yu\Cۃ{#
RM|Ï΍'8LQLlV4نurbgŪdq(S3.1߱N	eXȣ{һ&(3N	/f]l<b,~?{;s3e{sJ[)i
#W0]?ݥ|''?x
IM~R_f0	mx[I{ɫ8/Mn
|zwR@>$;̼M$uB<;EJ3J2RRs̼yXLK&Gp"=x'_e V+$S^1O@sr拼 /3&xۤ=oF,#KJK2sRL&b|E$99_.PْUi3P}?/Ú=9O=3$d=6{8[]l-{5+KN~^<`<M'*mR"7H@o<Jo{6Biqf^BnRf< K1c4Y[D#9?ًNv '7q
R-5YG07yLj'7M*άJk ⓞg*Bb#*lf_6Qa|JW`1qp7]!៖VZ
N kg(1(%Z\YP_E0ε6Oaj3CWl  @ x7oCkf^d+^0%6p -xw)`bnn.-([GG!H(-3'U!X!4'H!18_((X&F?nCnU4:6+(0tJo,D6߅ﰢxi1*1^2,(I_&+(yL(x՛ʻ
J?Y <%!"x<`CvfO~rbNfUbIf~wfB=Y8U a7xkAer$83L1y'V,3'նAM  EG43x1j>MѼoiVn%qyrTf}Y7 nkx4i\h|dpVot Pۀx4iiU?+ruH/Nނ_7: ҌۀEx ͑ϵ l%26["|,Kۀtx 2{o=#"N#+,*ہ#x wwK!ۜ`U@,rہRx4i CJMςdot Gہx ?.8}MW,ۂ.x4i[Ǫ+r1IR: ۂ[x6 9𘑊TPIoxMvkXn,sW8,EGx6 9A`tHRуUnߦeV\=ʑMKMҊxl(^,x6 9nY=ebRcUsM9B"&cӑ,Px 9B"&cӑ,6x4i[Ǫ+r1IR: ax4iEV-=?M7: ҽDx 1Unm9ckc,9x6 9nY=ebRcUsMsVQ  VW,~x6 9𘑊TPIoxMH<Rq	+:߈g,
x 1Unm9ckc,7x zC &qTOC-,.wx4iȝrsS[uo_G.1ԙ{ *-x4iӢEUnIaۺK^ 
7(x 9LysD0ٍ-59M.M,x4iJoyMWS5v Vx4i?sX3Ӗ*z~ v:*x4i+L6ꄬ9JA (x !/|@Oͩ
N%,L,x4iȩ7?~Ե[ =(x4i({Rgvow=pn+Éot ѓA*x4iӫ|/[dL4\\~؅xr 4?-7-b{9	ѿ100644 camera.ndk.json iuiC]o,Pe0",Бs$pture_session.h E8{>WC>YW+W׳/\؆x _cR	cSEs:~؆Mxr 4?VRܰ,=PXgx100644 camera.ndk.json iuiC]o,Pe0",Бs$pture_session.h E8{>WC>YW+W׷/~6xyB¯ERL{ .!bxyBaۯzVn\xwؖ[kx7 _kM+&U;Z%>jzj@s1<u3Czw!׊xylXWly~Ƕ뀈~ rx  Ɗ/&>KX!' xy/HN36-:CQɊN8Mxy/D9↕՛}3_}adE S*zxy/Hj2H6k,xtdE 1'x  5?Mrߡ5D!KVxy/HFcPv|6/8RO=<Y: 1%x  0+
-!eh=xM Axͣg
n~j3100644 capture_session.h kKfVz]9{W.q",\x- $100644 BUILD.gn Uxߔi,x'`$
P;x- $100644 BUILD.gn d)8sGaTP$
G;x &100644 BUILD.gn M:@uH\'3100644 camera.h ,? LӲ?J100644 camera.ndk.json x, etM100644 camerMbject_ext.h eABvx0^1Ө100644 metadata_output.h pc}9޾1e(@[igxreIVQ}p板BrbnjQ^^J^Vq~Cb	5'+=gs:nн(JSR2S21w>!-ѹ=syrV_R(v6ݱ]b*ЀZX_ZRPZ4]pۿսe;<X,J䭌"Sׅi3".])c's2 L&`Wx  t^17p1039n섦@S7hxc 4?9ŋ<&eJl100644 camera.ndk.json 'ja/
Jw:seH~ -K"ba3e5*ŗ*rxreB▋{Mg
rcX zLxP _'aPP9%kt/+Fs,\IwwSO%WV<C^OI-V?!	Vw#_x  U>SD0
-D	VS5.x _݄t
=k͂S3s<xb 4?ԉx)ZfHkۢ9100644 camera.ndk.json o J[@zӔ沁ms~Q;G#NVOA\]!`,Cqx7 4/[f5[jdwHgYXZ mH'!׽*Exy/Hݜ/+13왿cLdE qxy/g*934i[`ECɊZx  Ɗ/&>KX!'Lx7 4-7-b{9	ѿHƊ/&>KX!xl/*
 * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup HiAppEvent
 * @{
 *
 * @brief Provides application event logging functions.
 *
 * Provides the event logging function for applications to log the fault, statistical, security, and user behavior
 * events reported during running. Based on event information, you will be able to analyze the running status of
 * applications.
 *
 * @since 8
 * @version 1.0
 */

/**
 * @file hiappevent_event.h
 *
 * @brief Defines the event names of all predefined events.
 *
 * In addition to custom events associated with specific apps, you can also use predefined events for logging.
 *
 * Sample code:
 * <pre>
 *     ParamList list = OH_HiAppEvent_CreateParamList();
 *     OH_HiAppEvent_AddInt32Param(list, PARAM_USER_ID, 123);
 *     int res = OH_HiAppEvent_Write("user_domain", EVENT_USER_LOGIN, BEHAVIOR, list);
 *     OH_HiAppEvent_DestroyParamList(list);
 * </pre>
 *
 * @kit PerformanceAnalysisKit
 * @library libhiappevent_ndk.z.so
 * @syscap SystemCapability.HiviewDFX.HiAppEvent
 * @since 8
 * @version 1.0
 */

#ifndef HIVIEWDFX_HIAPPEVENT_EVENT_H
#define HIVIEWDFX_HIAPPEVENT_EVENT_H

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief user login event.
 *
 * @since 8
 * @version 1.0
 */
#define EVENT_USER_LOGIN "hiappevent.user_login"

/**
 * @brief user logout event.
 *
 * @since 8
 * @version 1.0
 */
#define EVENT_USER_LOGOUT "hiappevent.user_logout"

/**
 * @brief distributed service event.
 *
 * @since 8
 * @version 1.0
 */
#define EVENT_DISTRIBUTED_SERVICE_START "hiappevent.distributed_service_start"

/**
 * @brief app crash event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_APP_CRASH "APP_CRASH"

/**
 * @brief app freeze event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_APP_FREEZE "APP_FREEZE"

/**
 * @brief app launch event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_APP_LAUNCH "APP_LAUNCH"

/**
 * @brief app scroll jank event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_SCROLL_JANK "SCROLL_JANK"

/**
 * @brief app cpu usage high event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_CPU_USAGE_HIGH "CPU_USAGE_HIGH"

/**
 * @brief app battery usage event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_BATTERY_USAGE "BATTERY_USAGE"

/**
 * @brief app resource overlimit event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_RESOURCE_OVERLIMIT "RESOURCE_OVERLIMIT"

/**
 * @brief app address sanitizer event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_ADDRESS_SANITIZER "ADDRESS_SANITIZER"

/**
 * @brief app main thread jank event.
 *
 * @since 12
 * @version 1.0
 */
#define EVENT_MAIN_THREAD_JANK "MAIN_THREAD_JANK"

/**
 * @brief app main thread jank event with extended params.
 *
 * @since 22
 */
#define EVENT_MAIN_THREAD_JANK_V2 "MAIN_THREAD_JANK_V2"

/**
 * @brief app hicollie event.
 *
 * @since 18
 * @version 1.0
 */
#define EVENT_APP_HICOLLIE "APP_HICOLLIE"

/**
 * @brief app killed event.
 *
 * @since 20
 * @version 1.0
 */
#define EVENT_APP_KILLED "APP_KILLED"

/**
 * @brief audio jank frame event.
 *
 * @since 21
 * @version 1.0
 */
#define EVENT_AUDIO_JANK_FRAME "AUDIO_JANK_FRAME"

/**
 * @brief OS domain.
 *
 * @since 12
 * @version 1.0
 */
#define DOMAIN_OS "OS"

/**
 * @brief appfreeze warning event.
 *
 * @since 26.0.0
 */
#define OH_EVENT_APP_FREEZE_WARNING "APPFREEZE_WARNING"

#ifdef __cplusplus
}
#endif
/** @} */
#endif // HIVIEWDFX_HIAPPEVENT_EVENT_H!x,/a9fc9} 3x뗝-a9d515̒ԊԼĢb=.- Rp(KNU02<]xrD|_|GK7PpBNy^0 5lbxTn@(m8#DadnQRj1$8V{,qvUO@ʓTO1k'$m#Jrz=3gߟOǓGXnނX4Q A1<p2;q[` c^?n4ЀlV30,̺+U tZqSxv+ΈLSaEoFY&z\ڞ9J*r2둰8vy:e G'9' fhYA$EՄ	Q'>S1	MS&;M|9وvR靑n"41Tn/d"kgLb'5L4bIU]} ;!vUbaHun*6hse`ӝ\wϼ^ $t8,l[7gi}F
*kw>ˑ̅hU,JgPmW\O0L1NpoEQvjG ,'>lp(.$BvjZ+Q늱>MIzI\=_8_2%KN'ZLksx].Aw ox[.=If/WbABvfNNj@NQ&#ɍʓ8Y=}|\]!̼K GkUx[.Mjb"9jxuQKQ&׶T 0,)vP.dBv&uv}|/?!xD"E`i}1cL]&,Ov#:eg8{N(A@CpwDQ*o+`( ݀;QO@6] $d(1r4pRFHUԒ*9w`)6mKvqQVr`u+y;(\x?~3w*ΒC,mNfVJah%Oх	ӥ?f!HzX=Jmo[3x[.=SpFYOYlA{x)Le&gb-H,J̝Y,ϲq2ml
Eũ%
`T"BvA.
J )J\\ZZ\
Z
IEiJ,.)L*-IMQ *LN '5UA)8\2K@f)	On`3OG?q@O8 ;l/x) IjKf_.[L%@x&\zbĂɁbfٕ'+pyx:x*(9x', aAxwoTvfB@jQZ~Qnb^rc^bNeqfwffv}f +x)CpTvfB@jQZ~Qnb^rc^bNeqfwffV), a"bxmN@ڐx1='덃M=x1&]qmQ&z![ܶ(/ -l?}|?Q?utd$Be{3<.NqawD&R#4l3w1/P=_m㯸;<iO^Åk0jY- )K#J(s##cLq)*.
{ahk4IoB**=#.A@eNMP;kGin<JꎍhNinuܣq$x{+#E*;D! (-(71/91/18;d3+v \r3x둘&5AUdD"hbABbJJQjqBqb^fIfUj..A~!QA
JB9Er3J2RS󲁚|=C<\]0D&gp/ p-,mݒx{I 2sSVilHSUM/c=+(ԡh0QaHsa&֯Owv	 .Nx{I 2sScju9s˿ZQ BA&x{I 2sS~
z:qSco亰vFF ci7x)  40000 image b3ڮ*p9ax	̫ DGWWox{I 2sSVXzW٪/Mqo
. O;Vx{I 2sSDqF(?|cFF $	
x{I 2sS:lJǯm*R0ب K5x{I 2sSj&k=ZuFF 43Qx{I 2sSU$9r:眮aP9FF x)  40000 image >P	r>\l Dhʱx/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

 /**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provides the definition of the C interface for the modular object extension manager.
 *
 * @since 26.0.0
 */

/**
 * @file connect_options.h
 *
 * @brief Declares the connection options.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef ABILITY_RUNTIME_CONNECT_OPTIONS_H
#define ABILITY_RUNTIME_CONNECT_OPTIONS_H

#include <stdint.h>
#include "ability_runtime_common.h"
#include "AbilityKit/ability_base/want.h"
#include "IPCKit/ipc_cparcel.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines the OH_AbilityRuntime_ConnectOptions structure type.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ConnectOptions OH_AbilityRuntime_ConnectOptions;

/**
 * @brief The callback interface is invoked when the connection succeeds.
 *
 * @param connectOptions Represents a pointer to an {@link
 * OH_AbilityRuntime_ConnectOptions} instance.
 * @param element Represents the element name of the modular object extension ability.
 * @param proxy Represents the remote object instance.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnConnectCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityBase_Element *element, OHIPCRemoteProxy *proxy);

/**
 * @brief The callback interface is invoked when the disconnection occurs.
 *
 * @param connectOptions Represents a pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance.
 * @param element Represents the element name of the modular object extension ability.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityBase_Element *element);

/**
 * @brief The callback interface is invoked when the connection fails.
 *
 * @param connectOptions Represents a pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance.
 * @param code Represents the error code of the failure.
 *
 * @since 26.0.0
 */
typedef void (*OH_AbilityRuntime_ConnectOptions_OnFailedCallback)(
    OH_AbilityRuntime_ConnectOptions *connectOptions, AbilityRuntime_ErrorCode code);

/**
 * @brief Creates a ConnectOptions object.
 *
 *
 * @return Returns a newly created OH_AbilityRuntime_ConnectOptions object.
 * The caller is responsible for destroying the returned object by calling
 * {@link OH_AbilityRuntime_DestroyConnectOptions} to avoid memory leaks.
 * @since 26.0.0
 */
OH_AbilityRuntime_ConnectOptions* OH_AbilityRuntime_CreateConnectOptions();

/**
 * @brief Destroys the specified ConnectOptions.
 *
 * @param connectOptions The ConnectOptions object to be destroyed.
 * @return The error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the connectOptions is invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_DestroyConnectOptions(OH_AbilityRuntime_ConnectOptions *connectOptions);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnConnectCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onConnectCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnConnectCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnConnectCallback(
    OH_AbilityRuntime_ConnectOptions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnConnectCallback onConnectCallback);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onDisconnectCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnDisconnectCallback(
    OH_AbilityRuntime_ConnectOptions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnDisconnectCallback onDisconnectCallback);

/**
 * @brief Set the callback {@link OH_AbilityRuntime_ConnectOptions_OnFailedCallback} in
 * {@link OH_AbilityRuntime_ConnectOptions}.
 *
 * @param connectOptions Pointer to an {@link OH_AbilityRuntime_ConnectOptions} instance to be set.
 * @param onFailedCallback Represents {@link OH_AbilityRuntime_ConnectOptions_OnFailedCallback} instance
 * which will be set in.
 * @return Returns a specific error code.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} success.
 *         {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} parameter check failed.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectOptions_SetOnFailedCallback(
    OH_AbilityRuntime_ConnectOptions *connectOptions,
    OH_AbilityRuntime_ConnectOptions_OnFailedCallback onFailedCallback);

#ifdef __cplusplus
}
#endif

/** @} */
#endif // ABILITY_RUNTIME_CONNECT_OPTIONS_H5jx2/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

 /**
 * @addtogroup AbilityRuntime
 * @{
 *
 * @brief Provides the definition of the C interface for the modular object extension manager.
 *
 * @since 26.0.0
 */

/**
 * @file modular_object_extension_manager.h
 *
 * @brief Declares the modular object extension manager.
 *
 * @library libability_runtime.so
 * @kit AbilityKit
 * @syscap SystemCapability.Ability.AbilityRuntime.Core
 * @since 26.0.0
 */

#ifndef ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_MANAGER_H
#define ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_MANAGER_H

#include <stddef.h>
#include "AbilityKit/ability_base/want.h"
#include "ability_runtime_common.h"
#include "context.h"
#include "connect_options.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Defines the pointer to OH_AbilityRuntime_ModularObjectExtensionInfo.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_ModularObjectExtensionInfo* OH_AbilityRuntime_ModObjExtensionInfoHandle;

/**
 * @brief Defines the pointer to OH_AbilityRuntime_AllModularObjectExtensionInfos.
 *
 * @since 26.0.0
 */
typedef struct OH_AbilityRuntime_AllModularObjectExtensionInfos* OH_AbilityRuntime_AllModObjExtensionInfosHandle;

/**
 * @brief The launch mode of a modular object extension.
 * @since 26.0.0
 */
typedef enum OH_AbilityRuntime_LaunchMode {
    /**
     * @brief All extensions under the same bundle share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS = 0,

    /**
     * @brief Allow modular object extension abilities to be started across processes.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_LAUNCH_MODE_CROSS_PROCESS = 1,
} OH_AbilityRuntime_LaunchMode;

/**
 * @brief The process mode of a modular object extension.
 * @since 26.0.0
 */
typedef enum OH_AbilityRuntime_ProcessMode {
    /**
     * @brief All modular object extensions under the same bundle share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_BUNDLE = 0,

    /**
     * @brief Modular object extensions with the same name share a single process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_TYPE = 1,

    /**
     * @brief Each modular object extension instance is a process.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_PROCESS_MODE_INSTANCE = 2,
} OH_AbilityRuntime_ProcessMode;

/**
 * @brief The thread mode of a modular object extension.
 * @since 26.0.0
 */
typedef enum OH_AbilityRuntime_ThreadMode {
    /**
     * @brief All modular object extensions under the same bundle share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_BUNDLE = 0,

    /**
     * @brief Modular object extensions with the same name share a single thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_TYPE = 1,

    /**
     * @brief Each modular object extension instance is a thread.
     * @since 26.0.0
     */
    OH_ABILITY_RUNTIME_THREAD_MODE_INSTANCE = 2,
} OH_AbilityRuntime_ThreadMode;

/**
 * @brief Gets the launch mode from modular object extension info.
 *
 * @param extensionInfo The modular object extension info from which to get the launch mode.
 * @param launchMode The launch mode obtained from the extension info.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoLaunchMode(
    OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_LaunchMode *launchMode);

/**
 * @brief Gets the process mode from modular object extension info.
 *
 * @param extensionInfo The modular object extension info to get the process mode from.
 * @param processMode The process mode obtained from the extension info.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoProcessMode(
    OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_ProcessMode *processMode);

/**
 * @brief Gets the thread mode from modular object extension info.
 *
 * @param extensionInfo The modular object extension info to get the thread mode from.
 * @param threadMode The thread mode obtained from the extension info.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoThreadMode(
    OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_ThreadMode *threadMode);

/**
 * @brief Gets elementName from modular object extension info.
 *
 * @param extensionInfo The modular object extension info to get the element name from.
 * @param element The element name obtained from the extension info.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoElementName(
    OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, AbilityBase_Element *element);

/**
 * @brief Gets the disable state of modular object extension.
 *
 * @param extensionInfo The modular object extension info.
 * @param isDisabled Whether the extension is disabled.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoDisableState(
    OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, bool *isDisabled);

/**
 * @brief Acquires all modular object extension infos within the self application.
 *
 * @param outOwnedAllExtensionInfos Information about all extensions within the self application.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED} if the device does not support.
 * @release OH_AbilityRuntime_ReleaseAllExtensionInfos {outOwnedAllExtensionInfos}
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos(
    OH_AbilityRuntime_AllModObjExtensionInfosHandle *outOwnedAllExtensionInfos);

/**
 * @brief Releases the specified all modular object extension infos.
 *
 * @param allExtensionInfos The all modular object extension infos to be released.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @see OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ReleaseAllExtensionInfos(
    OH_AbilityRuntime_AllModObjExtensionInfosHandle *allExtensionInfos);

/**
 * @brief Gets the exact count of modular object extension infos present in the collection.
 *
 * @param allExtensionInfos The handle representing the collection of all modular object extension infos.
 * @param count Return value to receive the count of extensions in the collection.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos(
    OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos, size_t *count);

/**
 * @brief Retrieves a specific modular object extension info handle from the collection by its index.
 *
 * @param allExtensionInfos Information about all extensions within the self application.
 * @param index The index of the extension to retrieve. Must be strictly less than the count.
 * @param extensionInfo The retrieved single modular object extension info handle for the specified index.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the operation is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModObjExtensionInfoByIndex(
    OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos, size_t index,
    OH_AbilityRuntime_ModObjExtensionInfoHandle *extensionInfo);

/**
 * @brief Connect to a modular object extension ability
 *
 * @param want Indicates the service extension to connect.
 * For details, see {@link AbilityBase_Want}.
 * @param connectOptions Indicates the connection options.
 * @param connectionId Indicates the connection id that is a output param.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the call is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED} if the caller has no correct permission.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED} if the device does not support connecting modular
 *          object extension ability.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY} if the target ability does not exist.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE} if the ability type is incorrect.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_VISIBILITY_VERIFICATION_FAILED} - Cannot start an invisible component.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_STATIC_CFG_PERMISSION} The specified process does not have
            the permission.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_CROSS_USER_OPERATION} Cross-user operations are not allowed.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED} if the crowdtesting application expires.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if an internal error occurs.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY} if the caller is not a foreground process.
 *          {@lin ABILITY_RUNTIME_ERROR_CODE_UPPER_LIMIT_REACHED} The number of ability instances is
 *          more than twenty.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_RUNNING_ABILITIES_WITH_UI} if the target application does not have
 *          running abilities with UI.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_UPPER_RATE_LIMIT} The API call frequency is too high and
 *          exceeds 20 times per second.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_UPPER_CONNECTION_NUMBER_LIMIT} The number of connections exceeds five.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_INVALID_DISTRIBUTION_TYPE} The distribution type of
 *          application is invalid.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_ConnectModularObjectExtensionAbility(AbilityBase_Want *want,
    OH_AbilityRuntime_ConnectOptions *connectOptions, int64_t *connectionId);

/**
 * @brief Disconnect the modular object extension ability
 *
 * @param connectionId Indicates the connection ID.
 * @return Returns a specific error code.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_NO_ERROR} if the call is successful.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID} if the arguments provided are invalid.
 *          {@link ABILITY_RUNTIME_ERROR_CODE_INTERNAL} if an internal error occurs.
 * @since 26.0.0
 */
AbilityRuntime_ErrorCode OH_AbilityRuntime_DisconnectModularObjectExtensionAbility(int64_t connectionId);

#ifdef __cplusplus
}
#endif

/** @} */
#endif // ABILITY_RUNTIME_MODULAR_OBJECT_EXTENSION_MANAGER_H
޺vx{wLbu'  b"x[kC"$LmYC]+JR3<&7
3N>2ـ%1'g'Ϧ
R\쑘jťťTZ\R_YPP\RX\4ꅬa}9qԜԒԔ4١&N'ǘ:l@f@<&s67ff wsDdkR
I`$d&' YRqT)%TO( 7jNS'?a)l'k|%ȶz%% gkg\6QMU|EdrZ  (XZxV]oJ}G?K~	Ǹvd-V1^ww;6Dj6י3h+	%[q~/b\kͯRyepf)XNq{dЪo>m1ֲ%[C.#Аya@e	c +aQS2A0gDZ3:,)VU٠R{Y]7?0c7yƵſBaڳ5#
6WI0"w@Ԭ}"QbV'3 rh9AΜ:/F7!:3}/ph3¥?tcGP*neA_<1|^9*Ǥj)4Wc*Ka~bYf赫FY9W,`t1cZy*-Zә<"TX`,Qk)ClRLʌ[TzcV@ֆ/]$Ld¬c嘱ׂ8ºX(nӴY_$0yngH*7g$*Tq0:ylP6Mݩ(D7+ĲښeȽM@=/`)KL;wga:LKN31S=Y0pƴHJmHQRdיdïsޤ8FlqV&&wP(.RӷH=U#'"^{O_NY0g&ߒ*ha)Ke1R(8Pd!PH|RGқF3v\?¿2n`o	7@܋	=
ߕ v{>'_DtlDͷ4 *\oI.6Y*J2=knp4Pކ渖 }p}h.{+:֟xW^@kz?v&Aw`g7al<|nfS+*9^FH/SIŔ
4{\*E2\@v8Sä~
p|	'v|>9OlW(	idDr&;ǽ)8hgPWmG~j7OpU8D>?6~8I,YbrU&{txX^(YwQX#T0Xx(uPr/&̼TCb%
yiE%y
I%s&($(d*䗧)Tr)h)@AJjZf^jBqIQf^z1PG"ȔԼ̴J$Z-lr[,K'׳*0O^ͯRvɢlJp5lX՜bӃbǦf2Ϳ9>W(H*d2Tӆh:77q"42&^. fe`Px(Aj3d{h̼ĒbĤҒ9eRJ2R
SKSJ*Rux %5-3/X(3/#hdJj^IfZBr~QQjqA~^
PSH-O6eBb-%Y'/`[Px?dQ6%H6ujNHcS3bLyu$&71onf0'Y &Zkx u@r/̅W1q+d)%Liir9<L%x Mr/̌˹x&sM>ϳ |Kx ]|3d{"ļ̼ԢbK!-3'X!(?W!&˥ E
%
9%
i`vbJJj
0 aBf^ZLQnbIf~ByfIFfBfX]qB~d]3%&_b:9]e20>&!1I*P\YX07((O!'3/{|NͲ9 F =\pM~ˣ<WS_hL-P|'dG^% bعx[ms:_i?lKhH'Ftk,_Ka;=Gea6dvo2l>:H9>: G-UgsE5%f\/I,YH8d)QsFZ	þi,\yBq3ً7Hb%2+E2ɀd#FmExLH"NcX~\ch6>[b(0!oS 
h+x\6f)qdnu^vu1)I~x
OV&T@'jDDR@)W<5S)C2!*Lm,g$hLF;zF~jԽп"ZawHHywL~`v(QXpSaX	 Z<茑ai.ѪL\QU&0Tb,!Q@cIٔRqC&5My̑|n6XtJg E""&&W4!Tl[Oxժ9Ha]Jl)/nGO;=_njW>*hs9"05Jt	l*D1f9y Mb$׍m8M,zJ
JE#}rڡ!
QL#SS')MW`ǉI
W'*y0b)ƿQ]Z}Χ6SVo6:8K2n>C$ 2-~F<gqȧ1sኒ4
_^NV	X-:	(J@ Y ,jlEu?ILg │+ƃ;. ͳ
իohā;A- ǵ	t8(΢ظ0=]}GE|<h[z]{~O#1Q|u]{q=D͝~urrZCt8h^\u[*ų
E
mdFΰJURwe$"UڰU׽`^uwP]RIBhIݹB&$+
:C@(y#l㟮GzGm`6`(~Qb?WA`"Sؤhb*պ;Lǲ,y=*P*@(rYAV13^_þWs"]ms>Ykƚ6 2v!(v˹1u`\/O[j.yJ(_X8Be)KkjQ<|Sv?:]n@^la&mBz=4e$\ a/]F3,NN0g:=9qNlܰBlM*іscdޤIQYJE1`;ӥ8jYl"1y3"^-^qKC#ps&'yVu^XfcڐBm 0*QgxTKU}hI͸bU~mh.VNMh%j0NK^G*|ZQ9)`z'eX8d>gL80IV86j@l9͙ZYҭ,R=ښF|ږUXi8yX
(aX3	PV&E'M14*t XERaRA0/P`2BE-P	,7nj0 Νw._ա]r.VTg_cNofN 밸^SUmKwL}-K R0`>* <A;P@
m1WsEtGd~Hv!-.n2a7$osA^|ʒ4?ktcvCݨڣ[;+l!4ѼaMy	F!AwC2O(Zqr}mj~O-M'PWv oK֒V=Oˀxaj:<t]nȀ:r1
Ao(1am]#Åb$9pR"@	2*O pKhux[GN?ꔒȖQ[*Κ){b"TDzxEP~sZ-XcC@f散T1LjPncޙSmq_e)ߌfXoW3>v˂zfvD`fe-.s,9
&jlph_88ujHG.@߳<k#vQptBgݖdb+9_o7@)Iip0w=[-NT}e/6]O/d7CΊfAbӽR/Mw[ANᚼ$A&ezڮY2˙7AWxm$Y2PV/E@4KfqVvVA#rÙ0u;(oj>ze~򍥢zvBU03)?)5mlF\!6T!Ós*_nxޞߩY<n|mϿrR+vGl\ǒsE9S)mଏT}3|qOKQtw
0s?nۣͼ=Zf/n_ s{W_j}r_fA+u׮KWxfxJt	Tk7Y5ʆ-)`@H͝'l)wNoY{jk[
4ܿnx|_!}$!ZkKY.m^iRڒA}ܤeoY?j1{<p 2^x{ ƶC7o r7kUsnk Ox{e"]mxI~zIhVTƉۜD䮮lkwe>)s<G<Otve'^oaYoh``fb\TYP_\YZ0#f'ft΍\ziJl?S֔Fd2vyťP9I mPN7xf m"LѰr|3%vCDd28}6#Rݞ-<100644 crypto_sym_cipher.h jR;- i5ZE/!wx fZ򝺶¥ѦZ3$x5 Oz=h"pKN͓vP'.ǪMv;6dVhx{eHލ`=E>t)smAPHvOwˬӷnh``fb\TYPX\Z9ӈY92.6o\%9<R|q眨`H?&>	R8#vOa$7˿j:یJ~KE583=/(h|eӦO'ĞnRAE2=hi8G\|˘͖  q2CxJ ?IXHlhр	J100644 crypto_common.h 6@T(T}ȳ'"!XxJ ?D;(zc0Q100644 crypto_common.h m"LѰr|3%vW!xXMoH+J 0jL$0'ۦm+j$C⣫^UWmj@s	/p%eЧR4p#=MY?qJ=b
s
zB\VzZΕAZj^|S.rADr,胥೐]4bpy~伈Sy)`L+|&	ܐ/DSe?rHW"脥eڹs`s.ifL`H\2C!Y@AqMry)dqІrIUn<Jf*!&iE#14u,	u۲okr5o}<˴a8c8[k8_?@L@`2@L)݂RP #/1#HX"@O	Y$_TNi$'y x!Dr;i'X~*~9ȺłP	xCG:pOslJHT|JdIb%>qk"ye^U
:J>1sts06	g1F(GYC6DXKLVЅ;g
5%<uIvJ5P_ʭ?蒋ٜ1{1&CǞ:Թjyn0Â5QzXrm,)o&awQ	3{.fv	f0r67hLȇwfB!8"˅$#D!؂Gc50Wִ{~}Ba<@3H>
9Tqp*͕^kp_*.G,}	U?10G43Ӷ*7^U1\tgVuȯ5X}g[tPHU6L	wpGxbruYp!q!nxpva"q-ϑ|s8Ñ9VF?#C`wmՅS)JpD@k~ZHƋ*^ȢNd--7qN?׌=OudkM	(u<k3D1IoO+Ⴕ(+UOz:P#r=3hUd>Fr?u]Ur#c{ˋKz]7W&ԫ낷kR㫰Ղ3o?A*LǦnk_iwxU}OG_k$-wL>mQ'@ G,<Mdu9]Ȱ#;I}p8Iq\>*?i՞ \*={xn@4\WU(LRmڔR/$큓ڛd%gm"9U98 +"<]4ƣo~ycA"]3~Ӷ8,>AQ;8>1jFmLT^9:i2gf\;|Y*CnTcn4(r[VKZa<}9'OKsDϾlo]w8zDbo1H/_ݝ/<=Ɩhuuş39&1^ab:\W6(!?b}dʨFa%M!(Fm%I]d?N{w
F;.(ňA#Hܶe`}G*d[hq4&^ 1DA؇fS;X@	qE"-DL]_R1"1`vƍK4j5C%K䡎o*XxV+tC4啪;EM=^H.KSTxooS7)bIնB	AMV2@ؾ3Pň!\WZ0sxǍ ?s6y~MNONߒКQF.)4h5ɕtZ
uH9@I;li?(iaCs;bdj͉K

}0Ḁ~i 	OY?cAczQfiG҂| WdCbIhσǳ٬e)[>8u׃/`нR!Gsb`mTךk)>=L2o$˙)v0!92D< fy= !Mk|m^w@nss}ѻ\ëO}'ܻh
q跀`&hR)ƾ6Ifcfk$&L'=O
0n\6eҒpッㆊ8ҟp?eskqwgt3
ҁxJǖ/B3eSġZQgb.l+ tځ|Ѓ't.ir%KC;P6Je#n9u:$vx![ciEw퇝vӽ^rWEMvCB:{BP簱JAɠ0e@5~Im8B[&nɌy@R͐fUsL[S_Rpۼ8Ě@eMVV53;hV5GEsf嘹 Zu}7F|2)qG7YϺg4-39!)zK}2C~߇	JS&T@a1wﯮ⌙%DQ؞|4QRpӡD^DédCt~<`2$f?ppmXa_ 022b+F8DGT`aW#yAA8/,U$(	s)0Dw,k[br$&*%=izD.rhvqyU(ֿ=+>Ƽ'`1hVI9` 9(Qp:HAY* ?$]ӶgPʯ`^}D'@!cO:/lg3SH,eÄvq`)Kv2uJ&&m}*\	.7/1'?[vtk:E` u	 #a519x).M&]}ʼ1tg
cMnov]OgsRg~x$XQxӤs
β-5V4֊,j2uD]^BߠyՖSmJM0[_nbRS]gs&S">TN,gU`ջtHJlO]3Cnk	%C(.b6rbܛr{ ,rc.ssW:H5骮Hi.)&]Bc5Y'tJ[mM=Xy;{KvIXM}VI+&:ҩiuz:Q߱#=sK!\K\5G"9
He#mV(KˡF[m4OovrوG[v<6r(VX5G[R\6{R5ͣ]y6SͣQQ,<UoW_f%mByd+|n%U w7W8|sQԀJ܅G6G\Ja5Y;f^䌶Rkx$֤ ㋁R}[9Dl$j'L>PgjM*tMHvK8]t]_}f*pZ$
%g<h(dQ'JetIX4
cl+|j_KZ%n.iQ嬈fm3he$P{QE"S zQ"sfl"!53"A"^2EQB6Vjh_I(.T<JX2+@PrUEi[D~˕<Ol`y5lbr`2`i+Ru!]ZBY[0B!tʆJ$ZIh2Y˅4%*l΂RiՑJn"!q|Og̌I.%z5aƹTݗt2-MWd;x蓼2T9{r`֮C5Oz5XUgC=	#O"Jo1Ðͤ2S n*k}qtRԤnJ]z]!GsqT/ NPSt5;.u>t]dxS)RP]lI!ޱsڏX/UR7Y r`7M34{ql;˛KMߌ\V!*=5\Kd?.9&մE)vM2NR`XKo&,}!?L_W>xWMLABSE ԵQ!UR@ڂ(ne.B<11<5zP/B1&Fыc(z01L8Eh"-tJawޛ{ߛٙ#o.ɪe
\RtH=
֣:{fvȶ輲4 pP?~-K9~k1bG_@{:N"`E1xĢ~/CD$UID*r_5i?QNw	[A4x]^VpaO{.ɧ)5"+,P;.\00_Lp;WS8Lw9Jcs'Uy3Jm)Ԫ۰eVSfS!G8FP|+ːp5JuԤQl{zi8"Ne,*D'e3"> 㲠DY-](AQ0vbĤ]s&zp`
Lv60۶]MP]ў^.Ԯ.AA籌xIF=R$$O=>(*,4홓n
)DroQEZ_4B&/_D%NcW\*î?71EF^IªHSdEx+7V⏽ԱaH|]xp'UلFU,mh=~y%3G.>5љ?'اQHyvE&xYRۍ`n?V\xW7O0,ӇCֹ<w8De
2M󅱀\f2zd4tiU?|4+sMtQ vx9I5IrOEc)FQxɭ7ƍߚ7-\υ7-(R'v馋W<mp;axWOlVWh4iI$4e&<&3 -[$mIi9M،	շU1pభ8 !h !.H0Mā4iYiMWUCd~>?w'_Z،0
YOO܇|gǅ9kHy>PGNm~rMN ?VCYV֑~Ux3[p0XxV7?xxʓ,g,9DvFfɈ-8E`ԛN,)xmZI`Sp4~6B`w뾱b<	Fha3ôS	+ɶd~XY:
l83ZUQ%4&;(]E5cAԹFOi&?Tv5-9*'s FBz? _760$L)Xjriؖ0'/bSz9XHhmӎ>=Tfa1d'MN
-jŮ*ښ	~hwh6%c%ĉ3)^HWu:-{a9{n7`=m;'4zݶ!mI
>:&Qpa̽81o0AMΜ,2Q yb"BU/EH0ONޅC4~QUW5a0
[
0{Qd8[n_|
0م숬$Ljiiq ChӪ֏h m4gc.O9<\xzP٦J6أ*5/?	۫g?ֈmMŉ5a"z:Fs K ~]y*mVhuE%aQ2{
	ϸE{=+ 	cY/kyZ8ba[45_[x:a\
Z
@0&?	 t-x:̛U&MN`33%\$ES-ENhv1(j؀2YL^ ͶÄs֜?YkJY 
|;yA
|VPQͼ0acDNA7Pz8T.Ps~+r-xL555j&kE3Nn˃b"=1;௙`G|Rr;87@DT~t^pтNtXRoaG!z0an>,f (oxx:&PܠS a	6x8qBw?5qS{E? ~!Hx}ksFw';geIu"K*J'1Ipвf*$R5cFO?糧~;=q./F??Y|XFq"N/(^b>+<|g"?Ρ5$//~.,z<2\Li,⯣xQd.Fl1M9|!);otXDx/,E:Q/E^=<</Ք:?;>>7|v>\d.<|*5Pi LDwY+%E2;y:),oȒpd&" h.;g߉GgׇXȧ7Qtqsvz-.~G_.NE.2lT3Ai܃1\}/Q2IFд2]%"YcP1Vi̒"*G^HoHtG۳%SқIfI<WY%9?.n:mLApĄ5RDO̗{,'BP^-GXej] "sbQqf<)ҌSBe&Oy?fq{FuSzeUu0Ga4|\("+Q>ސn9ßί:M>/؍G7go~;?=g'9CCC%H9K<gwP_8M#5|x\ ܢcwq| =DN|n@e'(`.s4	;8a8!#,*6;bHGEp_,/`@im5*dbͰF<X&^3xxڗH,dAߕՕY@O0"đ	F@4\nN 2HU|΋cXO/f1e.8cZB!aX*Qm6Ck~D?ǚ(b _R9h=Ц@()
4u!I$c_XSL5pWG;|y{q-~픞0=:q8g)f:-$Հ*W,{P>WOe|Iq0NPk/	ti10a?:N"](ci2TpL7HyE45[9v'\XWFP#24yRV$)87*IP)~5]Px|6]se8¨
eaT}5A1&Y:K-4~X\LۑD5ͿJ52(77H@6f6MG%y40{lx{kTJk-hQAFhMR+]vi@}:x;eⴊ-vWCI(*F
Z{ªrpwY@퍲d.Bi_ZI!1ڢTw\;j+V#Sue e 5;Sm>C(1V0-Vk+cRZ(,J![2u,8CP r[~AV$n>{iWTY˗C]
,CeU0N!Ƅt9C4ESEYY,zF-LQdA@#>CCLs_fIĵl}U!7b6ݤgqD\]hcRz=ra`LoMl2Ȥ_Cy<00)P 
:pV)
1\Ntpq9_D:*օGpF"UWG_NHUg-Ne9GZ_L^
gQs(  ;Kx?EOp ŘN:D ʵB S
vIT&Z[=MpFb0! SdZ3GbMŴv qtp@H0zS?&>>P.UI%A5=_ Ď2jMf!p3%3STBainGMYFGK1m34_;/g8!eh+Oo40<P4&ɖs9_"=D`ԔK_XsWgNOAmEh@6Ļˋ?~C8iBprz|ه9Hs)XsdN۪].߽>EѼn,s3@mU?::y"OC8ö*ssOPC۪	чӳqMBlTcHmU/'`@,6m6m>;)`GoBm;Ѹ>납mu)/?6+pmU-l@u^wGQ(?Q[G$5[TNBEn[Onۃ:_UďeD[  K'1`L#PhafspE-ME0	CicDC$lPZ(XCt6Lʨ!ZxԍG
n2a(	m産QX\B"e-H،gOq1~SzZj,k"#*n/5(7ò\?ti1Zj:K8>Q@?\v2zr6/Gqā^klrP  [{	ǰ<zz|X
U=QP#ɬBH/8^vhbni0s*F7ۋtȻY*X	8cp+q5m6y]afD MXLVACLnԇOwr-I'	,[ZՎI2yٱɏV҅U8H؆ZX7S\emքU#Vp}/`jq
$T|,tUy&Fy<L	5}b3A8Vz˧#FaCEE]j;ϩýT,u\ՖT:җynwv@{	}kPQt,9Oʅ}\s<oz< ˓Eo9v~HUF0#
k"w6&7I兙X}z\9L#Ug(#ANpwi;Θ4Zfmh1ϸ,DǊ!PtڃSY:r4ySh@Q{*UX-"4%Х>9NɽXQ@rkJ{z.I{FC+hA͸	hii,m5\`'aHͮzr[z5L(Mjа˥sUpQ-G$ [}gi{=7d	-tئ#dÆ?N?N+VG#30Ei&bUeB]\Q߂b`4;x2pv܊{XNM<BPDF-H.F7ww^kvab6gk=530;}6QՅŢ	lbR׼.,~TO<d/\jYXs!Z[~3unq tK e%UN{=1({DO<4lU9dx=dT,Dgp;QVO2(PFݷC<h,{W@R~cٍ23 s&7L\OCi̷XndraVm)tc,诘|k 'fh\JvBhBİ_%yX8@^2dif5/7V;vHm((mU"%ơ(cqY`׊e큲 '@[e`(]0`ǩPW<s2[]-
v_ֶ֋R#v\ȋVV	;]#ؘ KqrVLt炩7"wǣ~S^p;d8D٥,h$;r8Xڴ*y :yHϓm-*u,"t<UnTrQ_*(2$aC@8/%UDӐH\5;?+^gW7RN?a@k⵩B9?ܖrr4+mġ><x~/]w7e<WPQ)LN`4XY#bV}MeF>'d!"qj8[聶yDǦ=̈́솚h-Ѓ6`	z0>B>]Q{~9X8(#xBڋ7NF{{JmW@XH@/jb-a" D}t RZB#"o@@Y20$$8D4f	l&zǭA	nYE򄝁"*2b/#~+ $MH,} ŏ1zN2e4$/t2MQr_D V\$'5oS8g?v {i5H2D	nSRتNz
ųJM)̘!h"n\A8M8J| Q8yĭZяG?,U	WXC2D.qDQ#6RXbBpm_"Ra:>x9:Y#Ñ{r+!JQ#B$%DK NHK8<$c8oL%n'jSm"'	i=fI5#G;q%GIzophior<Rs?CX,v3`뙩.x]fb(5b&#ɬO%{a8YYOd$z6Œ*Y7W/=.D4<M3
GYkl5WA8 ^TyR%lQ.z*uY^5UEU"jY*s%ີUxsUꗔ|][Bس=?afs?+͌,g;ky2WFy;gJQr>,8LMX."(Ĩ"v<n:.pI58,BJ!	/v鈒" d2ݻCwuAI.:6SxS"UɺRT`;6&	v0 Bokr=c[BaݒEyZ@#i2<(B rH[Ql|wcJ]}ѦifWiͩ߫[!hqo?/Q+J+^/-F;^7g%ۺ(W#(u+%LZ~1=uKQUаF	e/D7<l)*ƥ<N^T\}[pmnVg@(y9*L@WþZ7lr/q*mY9lɔ,b
2Z{NT?+-wPG_}+m9F﯄bvq*UF|L&:QwQ㬌Q3ɧf̵ÉOLгW%M/U4mlD-g"]{Z"S8YD@[3DѶw#LwMsVӞx:'uX+ϙTh^`mԞXצA8D=<dC^MH{4Ie |^gLAW=^u7̒x"0fĎj-; 5< u=PLO#5`v87OniVYͯm  a@1UQth9|/ltMrReAu&0n6(Kj/҃l8Aw<ӗ[_Geuxx,uh\JCjGnfxxӻ{/:%	tWLk[BSΨ}wݡs.nWDt*^fp lm6Z]	3Ǝ33]ch+It\b%k=:qUC(VC[ m`+cwk!ht>eY9m9.xpEv0ͲSC!u$0H<j9T
0=WQ{u؅}vإ(w]FUJ`C{m2h^< 687Ka>&׶jݖK7.8ݖ:\n3܍Hw}bnrnc h[2ZW@CI3p9`a  
#uмݓB22vxt4k W/Ew"b8)p)tdSÃgvhGa2Ĵ#zEvFH}فe 8\_zE4rYԒ$0]bhfQv[Gzu	~W>R9g+eRf}电##I.橘;pXp}0W<oPW3U71L/%7Zwfx	MVY[尭D7x';0})n+릺U>
+euf
(Z۟N7`#d$@moW5ηי*YW5Zu3ʆT)IV;c-  Ayt  xeiv.\p5'aPa."UێtX%ɨ,ۆ?]E Z砛;8i<lK7 GoEb#61fad*EΞ-W#]Hc|KjGR5Y/ρ>;Gx$*!rG_|plOȴL%֧SY@ GgAjW?:rMS \bI
}h4:뀦i4"8C1ىDʞS Pz;	Յ<$@lm&
"ҹQ03q҄B$a=$ya,{F,å,4Sc|3-9&bN;=Aqn^5QY"ZЁV0yk۠*upl{1GtuuʀE juZìq;V(+U^iNEӡ>ss"ԇ̵BadSvJ~VZ8],:L)ìC;hZ!A. U4l9q[Pi*,Pv*\*}Zc\$OGELhT[nwCgQ,C4@nxIծ"ĂfMhQϙ\ШrMuH>L^r$
EWi}>vǔys8G}b_9 ?M|ˁ078|8θajLZG1-Faț8+vLy:Z01'Ob1/.  =Y&=#;hfk	vفN0Q9%	=5Uݰ$ask`Ek-M"[%`gÞnrG\&K	9}-
[)JuYjyNǟ@s\ĪRzuC{HfqyϨڅ\̎lI䷲Wva&{\^C[Og}
Ej1X$_,Zf!krǌ63:+
,#+7氖΋l	i U`_]]N%ȴkrUU0T9Tr}Hp<nUrZ #N݌8za)l|M[>Q۳i_.."C"@MX/G8'iBr8 5R@dAŌQjmnǍȇ6&GR
 qųj;hW)c1]ws$%7bI ,&jY$&"u 15R_\(m4PeQɒZGDԏ]JݾYNS%`nD~I+`
HFt/gƙȝݱ͞7W	^C3pH,v
Eܥ
@)y*$a:[C, 5=:ESL H ibsVI
A&}<uvySLJ'fl6o?KrHsIt<c	v+zcwwpFq IC ꕘOEc^A19ap"f{m򘐣7r%cʆ/BVNgY:ALV5'@-v$nL] cm7]5;Pn!fr#+Y韀̓W=7̒x"iAd,rIRy6kg~J/`_x"Ǡrb4giH.>e8--z4Ѻ;KukUJfS27g9u)#5h}0em+	m,I;!S0De71.8Pn%Mv4 .rH'5(ZxCᡋb+ rк+jCaYK 7 .CR~E#$oa>Hr B`--84)qL9ʲJ,ijgk1[MٚYӲ
ꌻ2k;U`FXbENW	Rfr)V7dː2?:w8[<Y,gn#q9*9s!i=;U5eH@C(ednm`;/\'C8,)s34`CTԼKXԢ9d/]K޾{w\ϩZ}kDa=>Cf03[΄w*9nȶT9g{M.iZ-s!f: ƫsgm='(E>vWgOx_{˲{;[{rzZv:-]_v7彪:h7uj(ă%YO7'To"Qmj2dn<}HwkqPO(\F)5Ǡ-$ S2fzȚw0Eկ5YnTvs`Y.T"zE &t
k\NMBurkڶm.IT-v$ rWt gmX`63\D"^{Gd*buDaPP-hKGᘍ qoqH3hg#mx^] {Xz! ,?bG_ǒ.K*q$-{F"@Q~bqD Ǯ/\] "9h8Fw"KH[\CwC&d0#C4BR]tN	5Z/eu+*<+ U:.8қ.NmOjμEԀ`5<c#i^N&y\lz#jii@^ս/=xӚܵ K{ΩZ]'w>0%cu@= D>*NcBd8T<QL\]Bxmr/{ܽI<xJ7 N:p~ h	vY	Q5y\N{)7f@4.hi)r^-=-uK>YY'WsVcw,@m~ZۻJ\e*[b!+lP_;W=uܓT2yK)kN 
C5b	_u*\z| fkB*c3MT[WeOe+e5[WQ[	QL"v_U=aia{! *ҿLo\f|Q]ʟ|WM)u+\ӺgmZ2Lljⵇ<hz/7ҮF2ظ3YfxCEj9=\3u |ӳ|2DK=NgnJ{O}AW:iJ%MP@OoL:t@CJr	6=VP*. ғxc8"U2~lCm(Ɛf;VRMNxX8NF?`O~jP;4):ur¹۰H4W*r*\Zq-W/l51kN.50T4Ct,8:*V8ln#*LD:F8(Eyc&3蓘dlSt@=ՈvCK5bKAǱvB&[c\~δK>.uM`G),n[̅Ԉ0cЍ9,Ɛ"Y4h>Aԏ:|g|[*شu6(|oj3˂%TDwS[)dH<,վ!'Jl2Y tnP$.MǷqs`zA/kJHp2W ( C=&zޞO	ڀKX  K])3DuS28	&qgC:o@%~er>4n2ܦP^3hW7
jMʇno}
rȵB16m:eRPMjfWdfvɮio;J<*N0IN&K_eTt(`d
>/ӟ%gdɢqāG)AL$KўvoŊtqO

߰r~pP'w湌~EtTk
OchM.(Ls]m0AݪsPJ$nx̴0*C0=*_1n7<j7FQa4q.Uy[deobJ
*JKOlnD:Ѵk}^ow,;N2PQ(IF?}3w%:}Pp66dnxr9<,y5j\Ry[j
 >`/c,q<WIRuNwB+iY-k}gqVzytG4*0HVWʕ6@rH W潸b[@&~VGbh4Jgt͠vewqQWZ	C5xoǾ--( ͐fکeaT\7X(ۏ侮[8;0WZ+bU֋zŶc˛2^HR[߮ה3r-fuf
5(G0R >G*1Hd-:RM[blFM'uLAO(	Ϋ먆DUXêtm)[1j)R3/X*\ܞB3ez5H+K2!"sbtd]˝Wq,۴IcM?ʆkK0=+&	MGLgC{~EpX#:ZX[d^x(8e~=S?%],z0)׉z=dtC`qV(ڡoEȮC|UL`lk+')c5wf(F!ͱYJ5l*{*Ja-K{wZZ9q;n֗5ޫ'	^Ds|h\NzKDSO*o"JVغuȃdPS3@F
1Z4OݿT"*/qOwB 6'S|8<4={}+@YJ$I9g*Dp|a_(åf27#P:@R-`#Hިɓ14Y󧖑MOt]~SO0dkޕju*cV2kKu4Ti]G'G}Iڶagt)0c|BOӕ"zyH\n#A#3,y9]Bq4kK|6 ?C{1m"Kޓm3ķ󕘏C>v |a[K~m%+Oo]<xN,tir7َ4YkGLrvy5jvGjқR[ezCwNeN]ta7\km:.؞p:*XîAHL=Wn;hqí&4() Lcy6Rn_L/KЊd"b`eRu)"H!=OC3?{˶\؎-Hh㒳ASW Wwrl[=sƑcϲd\B
x+KUՕvldm:ׁp}[j<R6Ƹy\q7m!NaWRya纴?ր|<݄%-yBQf)L?O9돼Rǘݐ͙Vݐr{ 7dR^,5K]<FPwwcXk4vu>چO4X<=eJ
i!nuIJPk[u儽J3>#ȡ/ҭ°NkeceP@d"k(ZX@l;ZE`Ni'C"qv#"=
D>UXOy+<:N,͎a99t7zj[ŏUQcOѝp6>GbFvCαuhW7^KɵOJ١rv(tQQؚ.i:<0VSrH3؞nOIxӢ@I k-Ԩ_#ar4"i-It$J.a%sN˝Es[pg	x1tᔞb}mXG@3;$:'XS|KDrH]>5N'<31O_;`{pT,v~Ɛ0	IΪIHtXetcJ(-P$>q>ʒ`x^Gה=yKxﰪq!6lւW.z"KG1/I'(,w}ֆFB$)hNtYR9<=WcVjE<bg	'p3u:B>2*$ik`<WSULW紸ꃖMd
gw&7MXj@Ewm[e 2:}ydHABOA3dFIwpx1~9ҭ^N,@<cZh]F,נ!ӸryВEV!&[2a"Wخ|YyGVwpvXLi~yr&]Z>a*S?#}Zn8Pm݃G<MI}y>Te#2^߻чJI;[z06 5({C~XAzB;@t7}\Ј	RXX#Wox
"ˢ=TIǊW[*UꎏUƈ7F#~@#XeY+b.S?A?1MLG9[i1|R9jvB4!rT>_`].!XP[ ʻئHS-ЄZkٸ"AdFhu/h]̒2ZM:DO|,?+昤/6.:Fn.fЃ~DG6Ľ(+ZY:^T:$4_ģdSAMq~M2hS׀+e?TMj<M]<DD]W\z
YV1_NH3NTgB~B8"&@4}<F(O}[ 'OL]puAxؑv搥mX<`Q2R00TE=-8EŇKdwpԈvSd4kS5)Q3nbp8}/f`~:ʓ8|,sZA7L`F&UӗSqX?LMp~L0>e;oCL!]Wz%hsٯOO	o~ǰ@mp&,x;yugCOӽ&+4d&)%dNweq(?`# T$5Ŀ$3?xe/`T`?EVKAAaBFN(b~|1*:I=b=C=Qr$F1'1]DBJ,8U)R@PjB08(!^u(WM x;ǆ
s*2ZVMWH`e3o Dx;(iᬏEbj _4 x{o^V
Rg7z4.e*|`2W*O2'M6 ;cx{tDasB"EXqM6 ]/cx[oV
Rg6zh4Z|33iURy" X#]x;AmsɛYYJ*R7?f➼UB!Q(;3>2'5%(3/=%8($H!?)+5DKARKJ&*(cQ	83/9UdGvqn$u$xĒTMk..}-IEi
A9œ;98 (1W"JSϯNH$=Z 0✟WZTP
T 
':`@)d+dr'd H4B GD!9#"xHA]Ԥ7@? ^˩l{x;Ma8fUy zU5xn0QAbأBUX QU̈3U rՀP"Om[<%Z*Q$9/ۧ:jTr5PH*EJa(L6s=T}c"jJ~ilyfT)$Eke duMl뗄#3`vIP~l';nqf;ddS*4C;yΝY>˘{ch'^GO9CX])Z' 
H8|zBT+ӴPH3"l?gp10':XLy켊UxuSM|H`u-٬έom#bC&^9LP!NvY%
'+m{o@mƵc(4$Aj
ʁ_X0`,ϣou$~jЯ(>]u8:O'\}\vx]JAcHr U!ACP$pV|w쭬8m<TvehöAEKS-EVϞߧ%^"=Cs-Ek\gZ8]LYm"O3cm2AN%
|M%V=QAƼCi0<>;ǹg0I#+K`s;0eSބ(+ؒPS 7<O1]:lSu>\@iB|c'5]Fy1xk`j`F4P)&6''R+.W 
@*xk`j`(Y,VMZլ-*&v CTxk`j`(bX}ނP28Ή j
xZmo8_A_Zu4[,wUl@vhYԑTߢfHI,űӽEbyfP9kx#b{h_|"ft,h5ɭZHLdĉ?'MIED.ZmN?|AݐHh(2"s2}k#Ur5K'b`<2LSXNaCŅjXRzݢpKYh[{t.
RD$\1tM$t!<A%<Z4s+-,%eȩ3&\9cwD!nBs7&Ct;qtMq&a1Þc Ld6cJBR1`ZH肑xb2H+	kWPYxwZ,Hbrϣ@4<>H'0P5!~Ȯ;S/OI"lC0H,-VEqEaXN)0pZM@Y0?*W%+x:I)ie-iL٪4oZK13>/z+3I?gx3Ju\G>޹5s؜M0igO3Y&eԏD0sJ<yǢϷ.2SNd<R\ob*$F#ܿKUA!sIW4TSft6N[k7\44g$q5x^}FUIs DTlt&p7RȀ~a7#-FI,c0yb.!m+_sk!6IKk$O(-!01HӐYTBOME_Ą>qipy
?884=

@%Ӊl<V9%0BhVIJ:3?7<]?m)4M{7:no:NG=PcAEɍk)mέ۝郶:mTBꭧӧUoz0v2ߍFCo_햣&ݬx(ݮϘI[2),< 4^"5aR>OIo\^߹Eԟ@ku5 Ɠ^S5Ĵp#>J!Bha䎀7|^C&~@?Fq} k59dC;ׄl:~`"|?
 "#~Leǔ799%C㤰(ǹMz
<tV10s%(<#1zhZ]VXOn7tCH&d<)+}AWo	#F 3qrF͘+򝪸|ڕNp:LX|>Q=e*kEnj@WݶZq9pܦQ+y'"MpbTvNBzX:nf&|7nzWCT{/q"3*>p_2uݎ31GB c	D5,yZ{ҏg4'M/wA=]CAoת.X+:ïz@MLn4{!,	+JydKBq;ѭyvZ20<lL(MBޥ@g;m&e4`WPQοcl2`7JTAk&"5uEbvLZ
;D%3W(=sצ*"1cxgXgdWSPj iR1酮1[,K`?p&ީ4a	uqHdz"2Zs]h,֥!K*=qDc1L8<#B@ omsQٌ"ZY|9॓Kjc0cEvRQ=<ë(85IRUq9y.eOSa[sj Qa
Α0#zkIז5KR풿$T9~S{-ZɊ%^@QZLT}a@TJL<#z\H6LoX&_~pmҪB".qjtSċ#Z5t^^ruF!x㜀W+|t,lۑ[8S Z̊0]{cao!Ky)79>Ƙ<=kvgnV_mh~<GqˁF֢aQ|ȱz`6U*/mpGzrf4(G9vh@a,X'o̙6O1_#t(Tod-a>rXxC'M#yQ#W>!+|%gҧ|(3b-e}(/w	Ko[f߲)!왿&+ʾ߯ax/
~dF`' /?@ )Gxys\X27s1O$("5LHl L#8yr̛%6K(d <0xV[oEVMĹ8ǎP+qB+H$ Ҥ$EMxwlΎ	QEiAB ^B$Dx H7_$W>|yߥ^tꀬRиiltZf[ꋮTCb<2,ͨԙ%|D]=|-"YRLb\G:n
&(OήFOtH' /G5O'եz
j_U߿ S3WUobBIEhTW&nSӴ""6*,yA8TqbT?-)CnG:Ӱc\bͅlsN,Ћj=
-(({zT$aHrbtTO~I, 
}.ZFGG+Ǵi&5|' "AH>gtC=HUibԎHÃOäE,:,FS#Gz;	X edh̜qh70^i8Ee̪ [I^d(s
}Hߠ'Bw56AEbiDb[<߿GƱхK'n`|JZ)Ih|,Lp0CKDC'K6ƈ+X.6WXH'`U֚7r`/!kRPƷc?RgnzHV!tht%d/xJU4~- 'VO]8nomO*T'c}w<>#N,7]}R2(\`H\iB'+ՙck*Ο+AttreWՈwe[:كC@gC% iXnp =hEU^QjN-Rg`f4^N/B\2dMrl%6۹KaxaLowko_h"sޟ4 !-7dؤeyՂۨox,p)ybv63xlU{;T[3t[KD.;UJpx>&)f+uk*--b;U5nY)xѪdՙm:k`&Iǃs@RxmKoQCkcaI	hZb4&&$K?Zh|E#-G2SiJ@(8`ιwfʽs{WLf9sZOUfb=rh~o=5¸XuZr~W,zbNR6=+"7E1>C+qdvwAk"(.V"O|y՜7Q.)!O5)͌͡rzHi։.DQz8n#MeeP&"tDVQO^`1/\=m?RԎ8j.^.eujD 8 4[4g|۟%WY&EsByHԽ'V߼>nVlp=	h[N֨Ӕ<:3rcq,B)ؠpY7_+3? {G }Do$5Iwx(dhT3l-KXه@y]|pȾӝ[6nI4XƠO5C-LjdEFVp:1ǵFpsI!3ةtj8P3=)/15*#e_+ڿ{.g%#xk|;	%@ZVܛ_  i
NlOxklm>a "lfxk|.f= &}xk|d{vjׅ:xk~Jm{vy̛pM- hr;xkp{vBKG	xuPJ@\:,W AQT4X//znl,
~Iq{zvy3_\,i@XP9;VBrUߣĄ"\]"҂b0LfYl)(4@9C@7iMuJrA4!X"n-9'b&eJLGĝJ%ĆYB&}լҚ@BAU4Jh,v}Kƪ3wdlv=튼|3xk6a`f^Q|Byf^J~gdVZl7blXxa=fW6O1 #.x}J0qƎԩHD*TM	.BMB֋	Pڑƃ'A"lÜ~wmyĲ<jܯO S*.켵6e'މ[#4W?oc׳Isq$<QXmj%Z	9rRq+,7Jrօ}a N`$7ڹ
MEwGJ!LI]8I-窪YYe*5g).?~.&!`ø.&<Sx;vZuC"&ExĒ̲TҜɍL
0I0q)hsM>ƲB4 (783?O!X!3,13'er.lj8'eUH,JťDf-ɡP5|L>wK##C\}|}@9=V͗93B7sgO)19g"3zAj<Lf\7
N^39Wlɼ z"l1y!B>aEԒ" P6Ԣb`hN'3?ur	V,&O"8dA:Mff o*obxۡGwc.ԢĒRqL6fcrul ^oox;zJmC"$&L
702M.|eCjQQ~_BAjQnfqqf~lv{+?  _`O?[C. 
Z
PE

ye9$M'K9Y)tI-LNU/Q(.-(/*у+,0iWpqtv
qu:br[=M`K .ǆg+&%)T_]_SaWO͞hYÁi"ng@wm8َsKnB23x&?5y%o065/HV@r"<$%d.lPkf w|hx;OuC"$&L
702M.|e_bQbBfBf^YbNdF).RpI-LNU/Q(.-(/*n/``a`79dv%ļ""9E
IyE99@6f_4YKks7Wd;/yR&	LUdԛGl7䕼q@;_׼2@tT /H[ɉ@$?p@M@QoZ9& Qlx;]uC"$&ɟY@@K%,39U!/D dr6kkH|ph@PHP-ؕrSSe+$&&Tۼ}>׼ڛ  -~|x;zNeC.X6Y7W  W.x;vJmEVF>lR߰ FvTxۧ]u/@6F͡|, 8Yl
x[gpf6F V%l!x[gp/Ŏ2 (?x1c<Y'3Oγy.ɟ6pdpO^¿ }a;x籡ys+\b''l>'Ȑ|V\bn̓pO.>YWk{qiRrp%1J;Ogx1cCd.^|D3`xeeP);;_?WAz|畲 

xeeP)Ll?OV6_zzn
 %4xeeP)Xiq[+?V&} lxeeP)o\=v5^l,. n=xeeP)|g
םnA?[k_F ^9@xeeP)%Xˬmi QjxeeP)`FbNgvN*,^ xeeP)Lv@g:-K+ x=xeeP)R.5`OWwHS f{xeeP)b_(0TGmyRlU ;	'xeeP)Ǩ&v5݇ӫ>ft  UKxeeP)2$#Kufv>Xq =sxeeP)bdcPbmv  	HxeeP)WӰGqɔK{WZ: gx?xeeP)"Sp$}]AчF gxeeP)R<Wʟ=1n_if[ xeeP)+&Mƥ9ǚB/N  :7xeeP)bm˝=wNwd _xeeP)9ÄY|ҝM27> pxXMo"9+JA,FjEȤ5QN-w4va-@`l2a)Wv5h@WKɦ38x\VdAK)h5a=/\*Q	zF!(I|OSpf@w?|6K,Es.4TLA

>!`3kǯba5D	'8\7hX4?3Obh%]8wT{vѸyAID%A$AY@bB2	JzA$53dIb}|s Fpcu8iN.FA4	c;z$Fغ akň!7L4cpLM|AJVdJa*TΙ2*H3MڵZa!YT6>N"Qt*x9ySgV0Q%*Ґh(fr;66ZQ7-Xy13g+9T@/cҁ؅[H"$~<ml)a2I"ܥJI	tE=:-gpIt!m+	q/b|A8Gzat1/k'؉쯝`*Y"DњWV~\֬^yiYTFA[	˟ǔhd7!qcU#\˒\9n]qdԹj+!*)y$07"hh	\;s ",ɦMH{$ۑTWHM<.RC`ίޠ_Q?pw~]KsM&*M1EUU
={Bl0~G
9oo\좇;#n	i8+6mB:#tTܯ*<jVEZE[Udg2*zb砊VmeQu]HR.JxAl?~3/D<Y`k晚	W:URo'gy320R,jS̺Nߏ~8LT6k7vtӝ3Mcd#UWSCէy/	.wm$}XQ`/Ֆ)m4P!~uaIK:POOufAhkx'RbTH[=u/UócU1́Vjvr܄&S6|W:tṴC زxhm!EM93/94%UAIOO?(4S?(<1)'5>%8($hs C|ɜDa**'pJNn`Wz&)d Ua*la(pO X)lQ Hx/*
 * Copyright (c) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup Native_Bundle
 * @{
 *
 * @brief Describes the Native Bundle.
 *
 * @since 9
 * @version 1.0
 */

/**
 * @file native_interface_bundle.h
 *
 * @brief Declares the <b>Bundle</b>-specific function, including function for obtaining application info.
 *
 * @kit AbilityKit
 * @library libbundle_ndk.z.so
 * @syscap SystemCapability.BundleManager.BundleFramework.Core
 * @since 9
 * @version 1.0
 */
#ifndef FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H
#define FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H

#include <stdbool.h>
#include <stddef.h>

#include "ability_resource_info.h"
#include "bundle_manager_common.h"

#ifdef __cplusplus
extern "C" {
#endif
/**
 * @brief Indicates information of application
 *
 * @syscap SystemCapability.BundleManager.BundleFramework.Core
 * @since 9
 */
struct OH_NativeBundle_ApplicationInfo {
    /**
     * Indicates the name of application
     * @syscap SystemCapability.BundleManager.BundleFramework.Core
     * @since 9
     */
    char* bundleName;

    /**
     * Indicates the fingerprint of application
     * @syscap SystemCapability.BundleManager.BundleFramework.Core
     * @since 9
     */
    char* fingerprint;
};

/**
 * @brief Indicates information of elementName.
 *
 * @since 13
 */
struct OH_NativeBundle_ElementName {
    /** Indicates the name of application. */
    char* bundleName;
    /** Indicates the name of module. */
    char* moduleName;
    /** Indicates the name of ability. */
    char* abilityName;
};

/**
 * @brief Indicates information of metadata.
 *
 * @since 20
 */
typedef struct OH_NativeBundle_Metadata {
    /**
     * @brief Indicates the metadata name.
     */
    char* name;
    /**
     * @brief Indicates the metadata value.
     */
    char* value;
    /**
     * @brief Indicates the metadata resource.
     */
    char* resource;
} OH_NativeBundle_Metadata;

/**
 * @brief Indicates information of module metadata.
 *
 * @since 20
 */
typedef struct OH_NativeBundle_ModuleMetadata {
    /**
     * @brief Indicates the moduleName of module.
     */
    char* moduleName;
    /**
     * @brief Indicates the metadata array of module.
     */
    OH_NativeBundle_Metadata* metadataArray;
    /**
     * @brief Indicates the metadata array size of module.
     */
    size_t metadataArraySize;
} OH_NativeBundle_ModuleMetadata;

/**
 * @brief Indicates information of application
 *
 * @since 11
 * @version 1.0
 */
typedef struct OH_NativeBundle_ApplicationInfo OH_NativeBundle_ApplicationInfo;

/**
 * @brief Indicates information of elementName
 *
 * @since 13
 * @version 1.0
 */
typedef struct OH_NativeBundle_ElementName OH_NativeBundle_ElementName;

/**
 * @brief Obtains the application info based on the The current bundle.
 *
 * @return Returns the newly created OH_NativeBundle_ApplicationInfo object, if the returned object is NULL,
 * it indicates creation failure. The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 9
 * @version 1.0
 */
OH_NativeBundle_ApplicationInfo OH_NativeBundle_GetCurrentApplicationInfo();

/**
 * @brief Obtains the appId of application. AppId indicates the ID of the application to which this bundle belongs
 * The application ID uniquely identifies an application. It is determined by the bundle name and signature.
 * After utilizing this interface, to prevent memory leaks,
 * it is necessary to manually release the pointer returned by the interface.
 *
 * @return Returns the newly created string that indicates appId information,
 * if the returned object is NULL, it indicates creation failure.
 * The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 11
 * @version 1.0
 */
char* OH_NativeBundle_GetAppId();

/**
 * @brief Obtains the appIdentifier of application. AppIdentifier does not change along the application lifecycle,
 * including version updates, certificate changes, public and private key changes, and application transfer.
 * After utilizing this interface, to prevent memory leaks,
 * it is necessary to manually release the pointer returned by the interface.
 *
 * @return Returns the newly created string that indicates app identifier information,
 * if the returned object is NULL, it indicates creation failure.
 * The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 11
 * @version 1.0
 */
char* OH_NativeBundle_GetAppIdentifier();

/**
* @brief Obtains information of the entry mainElement based on the current application, including bundle name,
 * module name, and ability name.
 * After utilizing this interface, to prevent memory leaks,
 * it is necessary to manually release the pointer returned by the interface.
 *
 * @return Returns the newly created OH_NativeBundle_ElementName object, if the returned object is NULL,
 * it indicates creation failure. The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 13
 */
OH_NativeBundle_ElementName OH_NativeBundle_GetMainElementName();

/**
 * @brief Obtains the compatible device type of the current application.
 * After utilizing this interface, to prevent memory leaks,
 * it is necessary to manually release the pointer returned by the interface.
 *
 * @return Returns the newly created string that indicates the compatible device type,
 * if the returned object is NULL, it indicates creation failure.
 * The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 14
 * @version 1.0
 */
char* OH_NativeBundle_GetCompatibleDeviceType();

/**
 * @brief Obtains the application debug mode.
 *
 * @param isDebugMode Indicates whether the application is in debug mode.
 * @return Returns true if call successful, false otherwise.
 * @since 20
 */
bool OH_NativeBundle_IsDebugMode(bool* isDebugMode);

/**
 * @brief Obtains the module metadata array of the current application.
 * After utilizing this interface, to prevent memory leaks,
 * it is necessary to manually release the pointer returned by the interface.
 *
 * @param size Indicates the module metadata array size.
 * @return Returns the newly created module metadata array, if the returned object is NULL,
 * it indicates creation failure. The possible cause of failure could be that the application address space is full,
 * leading to space allocation failure.
 * @since 20
 */
OH_NativeBundle_ModuleMetadata* OH_NativeBundle_GetModuleMetadata(size_t* size);

/**
 * @brief Obtain a list of ability that support opening files in a certain format.
 *
 * @permission ohos.permission.GET_ABILITY_INFO
 * @param fileType Indicates the file type.
 * @param abilityResourceInfo Indicates the ability resource array.
 * @param size Indicates the ability resource array size.
 * @return Returns {@link BUNDLE_MANAGER_ERROR_CODE_NO_ERROR} if the call is successful.
 * Returns {@link BUNDLE_MANAGER_ERROR_CODE_PERMISSION_DENIED} if the caller has no correct permission.
 * @since 21
 */
BundleManager_ErrorCode OH_NativeBundle_GetAbilityResourceInfo(char* fileType,
    OH_NativeBundle_AbilityResourceInfo** abilityResourceInfo, size_t* size);
#ifdef __cplusplus
};
#endif
/** @} */
#endif // FOUNDATION_APPEXECFWK_STANDARD_KITS_APPKIT_NATIVE_BUNDLE_INCLUDE_NATIVE_INTERFACE_BUNDLE_H
(px{dr'͖{ Dx{dߧa3^^q>dG6_ldm`*YGwr| *,QxR=k1^2yh@.ń+֩R݃\P^NT't'ǎn!CQ⦆
ңyܽ74R3#qsNlM2\fK$.mYZ('ϖ @+_*K(s	@H^Sn>@7lUHr)k'muQ8)xɻt-RAl,
!63%~h5kSCdl6A$1Տ{zty|y2:e|OcqeiƇ$]]
APF)ѹ֍s&?liGllWh$(cAZ"ܤ WA3v
y"k[ؗ,ua=vtO LsxnrCjo8'[pO, M'qyL.犞||7A l:xnr4ͳc%*l5x)} y77q:On 	")x}PAJ@EIMźhjRb]N_;LJ2HOƹV֕"p&4X0{^{*eG.zK}8wZmr 7kZ!W]id
Xp]P`~6jJgDCkjY.6Hghj`ơ|,#s LN%ūԲA
v'1w=dfw9!*#Q.vp}[P#`|\ɕ*LW4BC85HcOUʺqe
t}ZSO/RƋ4[뙸D_lIg(.5e#ߌ}!!dl x)LnCV/ 'K{xS rn-char* bundleName;
*Xapplication info.!		N
e6O?bxQ=N0R9ZuD,@(,p'~ivZeyؐ8 g2<	M KaPOh &RсH,L(t8VSWTp[9˙(D$Zm.-]gBQp\F4{7v2lԘ)b*Z@=i/Փ	7UruHPCK(UEPj.j[`/9	_UXe,7yIfSw[oiw^t ՀA~J]*8eRrBmYR6tQG[	A_VcE[A.v37.G}x&[dCCRQfjg^JfrbIjBf^Z~QnbIf~B~BbAAH*|Ł83/9U( ( \xŏAJ@A!mQ"LJ)vq0&/d&L*uӅsOn|(Eĭcq6
t%eVcHUA_ŸCH
GH]+)
+m Q2Kج0Ck_[	)`}m!k1
sdo?"r*tȒ&ևfQ]K~3T_;Of
`e_('Nx[$~JbC'.ɿ8d8J*RSR&3O`Ǯy+ 26x;%NrCXNfRQbQN*KIի+Οoss&C'i Bf/uxŐJ19=TB,g+}l2ёd$ՂX(fw?r2o};n9+UDӼڗB<GSph8>NKgHY3;8IUo?ڠ}b%fJUӡS1E@*Q!wѿ7f6Z<_ҁ 1t-k>2>̺p}7!<;_ 2"Y°R#124bݼ0x]s۶_IQ4m=grck$;<ih	8H^~V;.>H )lvfDaw "GA"!w㇏Թ.97BN%>oNIOiD%Й_6F|b77> %KgE !iLa7&3ףMh'`z[7Y0:bw1Fp8܁!|@SlI1	{7ߟzOt{4ID/u#zE8ܒ "<[ ӷM`:anDuh:,jК7ސQA_^\]?a!98?_/	'_mBAc@ޅJ lM-8TcapNܙ;y)74A"hh0t'a_BB޷&w$GA'컿\:#c'qWOI,m8.cT\'r4&q94aQ)L  LmCOD6zshaܸS87!Oh+fO4Stݿ9Aux,⎔9v?@:]:]93ei,'~>c⇛n>{uD+5c"8xd<szn!s0[d} ,3[aC~'^:]?IV!;*:<7Zac$;w	@9zC>xK;#]tItbp0)VThڭI}7o?|g='#HvDBKG`PV4,f~6,ÈMМzșwDo|wne|<Ѯ;Z @cZ*Rew|z6p(_ǣW_{̞&/amJ0Ftί>FOBGwߤK"y߿q<wGPH2	}Kk	KjT2.p5qw0؜d!m@hx1!Yi@E&DGbi3 vA}2	f>|΢`Y~+	~$ƾC̵('%G,edwt7sؿepF_lXwHJ,s!|!XVl2Bك4tR/բjR:MNWg}ժqcg9c<M:нUUXi'i8}t.$އ93V'_P[힝J8OaQWşGH>Fc\5EV>SCc$ʿЊ$<	朗߄}P֔jRe-%V஀.,k
n*@g|.1!μ:qe4ץVf,~C8Uhn1 Ǐ_V"dx޵3x AD4xi-42LSe ( B<(1՘4cWM YaKiB0q+Iݡ͈-:jݚ3#N4Om	XuDXA*/^  hP3譃I.VuU3'\~&XgcјFC7(mɢP| ^B8<$3nK #r
y
UEъ=$p![DIVwgjgbmʊSk7st_rZ1+y0\ŔkGMʇ1=$
V|!Zd7%.) .u$e>RPrqS;1ȥYS.-`lEb>``By`aI<+uE?^r/HE+Q5{QiSc?K'@c	P2׉m]k-yYPưdSwc?RPXbƨ)F&*H"L<7&]nE1W26535:%0c`'j1f@(3$HFș?1o" M4YbN9+ϷJv6YXuc*sdqڊ)^/oVl5WgŹ.{g3V:9n*mf-Ny ^lmU	Ktݳ@O׷w@GdKbw;_ZrԒ̒~|`I,NH&ue^ʄĲwseA:_0ӷڮe^#X٢r6"	$0:1E12*OMn tbF]4̨Kٶ	irTTnē*lRYMKc:#^b*&UƘrY.{9s<Yl0ƭq`ʺِ@oV';ЕIW(Vb#&:шI)?(7a`f"Y8˨e5 &lW-5]=W_Vi>96%sU	!9Km&&6q(^׿:`73Kf5Sb
gu5Yh՟:R4!5-M8	Y|,5XBH<{ن3QLj)]nQ> 7-KZŭ_{WC5[aV^SeɿfVףeQ<m.^COi5a/]:F+ZLH#~O04T.T&l#Le+1jYdfHB^PAZ k~B{s6R!j#mZkQ^Ehƹi")@uzHDhӒXdw{P,Ŗ  IY!IvίEVf
0iAI?Vjkجpdi ] T*6&7Y.n	9	}I&9GPJP[_QJjFO4=*&)֞l*-6	O7|	^b_D{>rE*8T JnQWHdo8'q;LlU*lOS[kgEI}gk~}pIp͒C0|- lsa|6m q``L8xznl /k05<=^wv ndwH;o[#Qߞw^3+ uUmS&l	?J>..;(Jl{đ\Uv9]&u_퟈aR}5+bjO_wog@0rxoIky2ß:kz &{pjYʅJSB鵆W	:U"l̗֕Ŝ1v) G8zQ@<s){i1eCnxΈV3ڦa(9h)NZy΍z=x	V=!λC`"
A)^Kώ۔̗bc%Rh28)) vZ̅R39,OCenDl1\qͿ嗛5vx"IR7Z.gԊr`"]PVԗ3MC*+y!%g.&cIۉf(NȨЮZ09t.223M|jȺ_ǅrHaϴ.(СEM)%\+vΓ,(ǟ8{Fb_kt#H@I#ee!+![Y\&CY2%\bN6KDUv֛6u=oGJ3&,j.9vl+AͧgrpIQU7ǿ;FJߋAjfPYERvPOýLq&G<K4WhAb?/*`xNvjʎхϝo|, (X··*tQyJN
8Neo*':]3zaqւ:<>Kί*+r 'N槣S8d'}{zi,QޜثL,*5hTE3EWO*j%HnYuᲵ0;}쥌^Te,5
*Bk+T>J]Ԛj8l#fe!GQH~K~+L}[YIWS\ֺ:wˬ~d+<٨((|E;JʉmHf"X[(Ǐ4Þ72+3&riZ1o^ 2qI}GTRbFnr.2-sY>S}vbY#ZADVTD%g%
}z6Wv-c@k4/ObЈ!JXR/Hg3wXCw[P+k+}D>?Ъ,$dԌY5D6<3x'	Ro*o4ƕ#n0y&ns.#ҧt*/x+rY8bgS#x2W$k|OjFy1?(41yX==*(ǸF᪳>^=Iu#
G|f8$.LG|p8va07˛4A?_޹մ#oSA>YZrqwì2# GJZ.}1mV(iSM[Ҫ?m)^5g+jȪ>{)ƣUfOrpg|m<-zwj"RV| s>]c}~ʦ^%E+4v#`IVb&"]S6F5I19:;s.
ڛYZ@({gY>48KMZt͕BosW$K]xnlL>S5QgVD<Մ'o}vߚEV-	ԦWWFmρm#4*4'ɾM	wv8sGQI3F]i}~wN	iJPV-k]ݖ]o:D/+`<#ih|=9q}n4rXZK<ߚ:ˣqԣ)>>1'XA`Bx,vy$ɖV{]*OpeeZܭ1G_:Pe%ʒqJuH"*کy#̑74Q7Q䋢㌅K{9,˚-46uo!j*0qp5bN&Yjg3UrufUT/
jr-C嫒$f:Z޻JZt2FQlH\M\ѭzЁ,bHX8V?
Jj>Xz#eڔ:ײlduOj]9|{Ծ,gzhޞz_o7U/wg};z&J)t[6 ={0eO;w>VVlۖVGy[Um7j5-Wpk77|چ-뵎Zͻ*,%@[p2ђs뺂U{(̦͆
آSEEugSx<	4?ԝ13 Vx[ŸqBЧhqq{^2U Olx[ŸqBNKzoyVV]Ē[U.0x[ŸqBȁ]ܳ竟;ūUP'剭 V]x q㹗F;,MVX%Bx[ŸqBeYٳ)r_ؔm]^ JS2sjQyw莜ȲS?W =@x[Ÿq4wTz<#'r '-x[ŸqBHL~5vgY1U KSx[ŸqBHh%anKCYezb* {Ux[ŸqBHf͈Io\صVU a x[ŸqBBAheW}kw%.ت
 U+x[ŸqB᥁)Sx8r[']x3U Vx[ŸqB˚']9)򫉭 2'x[ŸqBȾ;/<fyc=}VU #x[ŸQ Sޱy˄fNÉ %tjVx[ŸqBȖ|<׸.Wt[U^x3 S-/mN]jV)gtg/ %gj
SYb>Ѯx[̸q*o>AGmm	} ق~x[̸qҀW==Q9ksC ك+x[̸qx=YU\^,)2s %<x8qBH~},uYe hfx8qBHS,7(WnYg} *x8qBG%mse2KlC> w'x *QT}!<Px8qB΁5U?S>]]TƦVs OxXMo78WP-zhB]ٰ9	]fJr%E{ߐ+J$K%3o<mQyjt~Gg/ξ?E)VR@.U(1ӦKuܜK<ʌ".$
zӦߥ6*NyI仟u^R*֔J#aDU"Iކ2
HJم[2P+0^`F<n$ayA(oamSZ:9Lr'pnڻ,ƐJ#`Mgo"Vks-J+yLە-)c
J]! '2:Mh49_zѤM/M}7x0zh<hpȑ-4 G*TN$C81B*V!楘KK3Eԩ2^#TReujV4=>:>|"E|󲠁+uf5Jt$QfopAـZrnr+o-EhD -v+	EA2J]wzϳAgЖie@17__qvڕWBLƱmg@	ӌXD0i@.NΫ5[:kʃ?`e(ͣ2?*K=Ϝ
kgU:&#Qzb/l4_g7߼g2C1&e٠nׅ4	+YX$%xQ#	(ogqȧ:U?zMHXXP4ª!dRX2	AV̀,&`S7p|}R[Ns]l .f_ų;O6tA2Q{6a(f=X,k;.)ePf&bur(֠F=
EJ|M/[Q|-mqN?WG\҃.OQ{dV>}4
5MN l7sZ>ܟ<^r_cUQ4T=#@Q!il|-"Uܒl^>,R w^
]«i	h	\2a :wnPF1ee}IycSGW4-ܱ;*<ceskp}_C~7\ǺizwX_4"Hh}k;7%Y M 2C@a^fae1#)fM-|[qRHbel)crPsbv
iߣba %H,g_7 l' +@IԝnfsOJk9/ўGq3r~)9Nt*nU	0S7͝tXoG%6sE'$ˣ2ȋmywmHrk0d9+ gtco#htCDKw@ڕ9[pEm!6t'A&u5ۧ\Y>YF{:m6~S긴3;pķ*pU<axyqj)#ttpei}Ǎ?ǫdfĽH\!kA+OJfgp.|:'wtͻ84HZ*ڭvO
T{Aw;{ObsKw!5x;/4Ab.3z~)<)9Eۙ͹>`	{<.>A7ȡ
b|MEYҢĔbϼĒbTBD&?,q/CAbQbB̼<
Ċb-Zܰԓ_f5yPĀ5RX$\
4O#-'?D:

RG:cEQ,%]("PZ\R_YZ
F[  Yx;To+JbqBqIeN/B~ʓJ[9{8xĻ8{DƇ98  g^JfrbIjBQ~䃬b8tOg	/*PHMKKM.S҇>_ ]
@̼ĒAn(/".f6S(,HPTt96-§P&xTNA+A5XI$f]h-QHD&"$EvgvN՘^1yFx睉n݂{Ξs9%;d'sv46ﳓqu,בFvGYrhKۨ~V	esMdb9V㷨
Lb (GpjVYڕH؀@ Z@054 %
Ik8Će)voi&^};?@% PLޙc~$Qu_:`&3kf
HnTZcFvH?lIkp<TfkwV*Aa4zWU@/ףiW}NWL3
DUP@ð y)+Ğ$B&|bIlA-xsOVhkkuhI3ע	ٕ)~Uh~O.y*=geھ$!V48lvɈV9-`࢐5gVUS#T.+B*U\"\(gU/7%GNB0^8>CVx>u{?c\{Xjk~:`9Y*{=@*^Blr1tfx'p
>s~RV/HPZ;+.xF no5"!|#ϓY`jJ1|)Ʒݝ]|Z8?=z ޣl?	@/xRAkA&Imuy4-6
zhH1PVY&oi';qf6ma#'֢3ڛʤNɰ18@<%srw\?+/,W*:*k]A1SaȈ@	S쑈omBG^SAȢv#0gBb	OWr.<2IZ~($	+<.(R|Gt #mo/sr3Bgny3OဥҾ(	e;D4v"rk2~uU**2j,
<B-BE(K`lJ88n/,nMTq+6,>h*MUS<1)J	ae`-_{lSkO-϶z6^N+ȝu@ßp|{ Pm!a)B?
;Q"<vKT`cPy1:x"4\7+$WgܛLN߿&sOo}|tbǹgL˅lt8M2i۬kբ_ln4a d:lxkaK-{W\ڽۥ7lzs)h)lܷ[nuז>zx]oCNf^GKQbyf^zkQQ~s~J{jI@l=rbᵭrJS2K/,|k˷NmμuLO^*U} l=mlqϗo|1š (1WBÓ9ұ`J9E
.^=@((Oa;ez4[\q5ЩfǞ&BjMN]}caˇ9rk3HVg$$VBpmOXmP,Q Ex[ToC
+x͵-6sf8mfa36OeҀ1D V8xTnAMhŊTձ	bB[Z.	1f3#&Ɵx!_'%|]6Rf9s~|:TPi1:J#'ɊRL%4Q
 ̒?Vvoꝇ="PUm<xe3JtrdZ1Ǚ,F9ߖ<rӬ'j4Ijض	mbRzSi<W˚zTzQoV8:4m+4ofA#WL"| iԉ!6!E/U`bȌ1yv٩M'~p@D\g}KD$Md?^?st6slm±N'u??6TF5L%Ke2ܭX˱{;p}B~>W[ỵiAL御1]Ļv~qb`	,gj8?udM~vn鹎=.KzR;])D{K(V~EPcĈV4c ?Si/3tw>d=@B/
 5x}R]kA44f6pAR4jMӀDI}*d3v3ζ[_o7CZ{33_+_]o(e̅ПW8Q{Cǖ|{4IKhȼx^3W!s%cNOkUKLi݃t׌>0Nrun:vq
u7{>To/@逸@pZ`gQw~PrcQb狟!	p6jH%$&C>&\	1oHMTH26"mXBFiDZ.nLhzلX"ځµT3a1~\!BL\$??G)$
&HT		r?P9aHֱuվdLȒDrt%B\
#l<Jy9}&UZTM/+u/wq4[Zj4VREPF$))x}PJAYDB!XZZ*Z隒&FZ1;&MED|.>Џ't4)Yhs=^/]oJֿ/{{i6Z-c'!?1N}ϭRCS]㷙
^oM2_6wXOm%3<(ux%җES'`iӰ_M%nw 
Eh!/3	)y'kUAG]K!a:#v)sX0ϗ{Cpٰ2 m˩ͲHκςÿXx32PLzx>8N?ga̓ۤnXڣ;ݷJyÅr^$ˋ|xhÖSL
%],`xnA"EEA\+$B 
 U\Ycطn;9iP#ľ 5xx
^3PpwMƐS0b\h0%c+?Vln/J"?m6	qJm[Ӵ	+ZsM,xP`d9_xaPN^TF9?'h%\޽xm@@qɐH&ZIRHHlwJ[knp@NAlڍrw*tdƒth1+:
ǙmMHQN0=&.\v$A3OJB[2+oҚCB~ހ9Om*CB5; 3!7mlfsZ-C&{7.Uk!B
x Or~N~BZ~QnbdBI%
H5&grŸܒ$d$b1In#Ha6n f n;oxYhr	r 1""xQNA11BBLcrB1HP"mr{86!_`q޾y,OkҬ<lnOU$ A$FiBWP" ]p1blAh*0Ɂ+K*<DN~G-$[/,nR&=.Ԡd$L>rS4U\`U>n"b5B	BrA+	aȂ0 ɹ,m rdKvt
-ReK+&YW n:b!zY?*%67ۻtײ!5TW$;K	:6:=ny^}"jNRx%'a;CJjAQjrbIjBqf^r/Ciqjf^qIjJ\@f[~^<Oq|` 05"x%JvC)ͥLO7oce&9'p;V9'fWO>aDNRNc5ڼk#Tr)Hpo# #)xOKA1\W%?xGCKF
1L0ݬ[˲6̸ZDE:][ߢcбCc̼}~KهP(m_2wQ]l
RJnܴ/4[ȴ b3)_O<>8c{d̋CyGHbd'Voԓɣ){0l8z1D.&?	t@J	].+6§TѪZZU4
o/\ӄ]ݺj[#٨YCEӶ>i0b;T=Ko5]{,O.</arx$I~DNF;y'snbNޟ 
/xr -2025W#rRg g%3Jdepends on deviceQH[6qJ(g gpuContext);m	Iu%x"Ct''[Y~fdV	Si#x!zMlDVQԂĒ̼TCͽհJr)h)8f&(L.m2? ,nvx!Ct_F8~1 6xmrt)qvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Ο <W~s ߥ4x{y[ۈ;T4skwE9Lp"F a
ߥbx{yމ#5e7#w_1(WFE YOߦx 917ʲ:PCweStݧMߦ@x{yȕHfKRO>[ӽw# pߦnx 9ȢaS.9KHMoߧx{y}JHDlCj`WSL@!,>9?%5!M|Rglu|kD_+
|f[ǳK7Mj{_}&(V	ןAMMLO/KI,cXg"U~]	MNvdTF0eW/?9y/ HLߨcxP 9ڞͦ|hm'ۆuM;BW"m%c2S33'2j)z&x 9wSy~0,^jʱMx7 9cY#Qq))`_=XMmRۢm{0F*K3٣hUx7 9cY#Qq))`_=XM{{gT!ECٹx{y3ɑʁ	L?n;)}"F PGx{y}JHDlCj`WSL@!,>9?%5ab_=X'=u}mDV\۴[aۊ}I#*]87><MBaQZr]?_XǰD\+V[Ș!ܲ	,׻>ƺo^F# KCx{yz3&X.grfYFE  x4ivgܹW"]RfLĪ}61Mx ZJeiȟ>Qf1,ѓA|xD $100644 BUILD.gn 8tr<F6$$g08ܠSB.)	fjwMk:1x4i({Rgvow=pn+Éot ѓA/xq $100644 BUILD.gn ?';s6M$=ӳmu8wZuBYtB+t|:az9TNgt\/E|f3/xq $100644 BUILD.gn ?';s6M$=ӳmu8wZuc4Ԇ6x90yT^HƑTNgt\/E|W*3 x @oz:IiFۢtD>,-x4iB.6%uZոqbb HXx3 a$=o}21OViu43C5kez܄ x3 a񏓮	Gڂ@`u43C5kez܄0;T\x3 amDN5bi֦'*u43C5kez܄x3 ao``a"W꙳ /|&쉍`u:C/C8[/3o%s`x3 as+Kp
շ²@u:C/C8[/3o2o6"x3 RI2Ȝ~=f#էB~,cJp3w:ydx4iv'^YO-˷Ml㉧}x4iv/gƛPrҙVtMӾ [:x Dʴ:FӑMgx ភ
0r0]9pцM٭rx3 aWy<f.YmiuMsv]L*j9!ljO4x3 aT54GLuێuSJI<*Y2FiMP(@QCx3 ac"^uu~,cJp3w:	Bx4iB..]9kGlbb ,x}Aa"wo+Zx?*eīUNb'979kh``fbXYXXYRzW?'9eKQ<&ɫyE$zx&Qi&r= IҔd .aʒ\Ve+I'r^b9*^avJ^	+GMxNJ,Nj`,0ۓ}Go)L\"*~/f2פ.g;]@R`7;#o9plȥ|ڜz.fN^~W 5vx% *5d(loMn[I`$ x: OLi_D\M_2PfcA lN.feeJ^snv5y
Ix TOEϚvy3M
100644 native_avcapability.h xha<Pcf~n.m_)i7,fɓn%rKдwMDAړnencoder.h 
aW*ؤA _5RKxv O0"GǱ ΓcEG>pfw4>xCn%b6JHvuHY̓nencoder.h }ìVНkB7x{}?kR8F}^rFcoC3Ē̲ĲĂĤ̜̒JgtBP,ѾyLbW1>Yb}HV/zɏ+E;:-]!C(*rU8˨pKry)E@[NVX9ɟrwN:0I8.wRٿ&1:pk9䜀%Lχdyi@E^nUU7zì&OS'Oa9l6=gEA #}x{}A;fK3]վ8&^
cyak,^tr2cȤ_fϔ;7>\÷HªrrrbiJf~Jj2e0XzuCEQ-$Mb=?]cݮcA|Ew;LEVѼgY1n'[1 wK9<xz 4GعZKni}M5_n]H<8ALfpU;ғn%$gB_O,̓
Dbnencoder.h ﾛia+[ˀƳK5gEx{}?HPv^c!$ͧ sx{}CHn_Y>tk5J!xz 4GعZKni}M5_nx},IL_{˓n%$gB_O,̓
Dbnencoder.h ﾛia+[ˀƳ80*x> 4GعZKni}M5_n}m-aKr-Qnvy:;x: OLi_D\M_2PfcA lN.feeJ^snv5yx! ZTiY;cܢȰ^ͳnv|`yx! Z ԋ5CV-Znv(x%  dT.[}ˬIвTcAn:?:Ycx{}C>KuvZ_yByLe Nx! Z.~%{UhEz6nv{xo OE)PৰВܺR100644 native_avcapability.h `3Bhr2P=nMzjȞSnvm/;x% aV_2	@z|
On:G8Ax{}?HPv^c!$ͧ ox{}?H"a{Ϫ^daɌL '$x{}C^x/֊e\aGҧ4铛Bx{}CHn_Y>tk5Jpx! Z؛+"ʿ%ݍ4nv x! ZJ~H(JɷnvKPx{}Co־l9=yr:<2F ~x{}Cȅk*Jkw
_jyLe |,x] Z;-qϺԺNn%,0$"G'}	nencoder.h m5 L,#x] Zu#/}u{x4ߓn%,0$"G'}	nencoder.h m5 L'Xx{}CªN/GoY]yLe m"x] Z~sJPmKPkI~ʓn%$gB_O,̓
Dbnencoder.h ﾛia+[ˀƳ,'x] ZL0v(un%ו2[""`]۷+nencoder.h )
۷/KE!3+zx] Zw/R@_߃;Mb7n%(	)ȖҌ%ᆮnencoder.h g>]Cy) !fͣc 0F&1fxg OE(jcH}NԓczsF·oўfFun^QC#nXHu.\FhS<h_glaNR(51<\x: O)PৰВܺRcq08+Pl 9,L}Anvnx% {$Nk(bVn"F'7x{}C;K*w~_6$V>9IUmLMb',dZ-(!# >x: O65THr+Z๢>c+cq&}Z&6ꠕznvv?Ix! OE(jcH}NԳcx sOE65THr+Z๢>c+100644 native_avcapability.h `3Bhr2P=n`uEG2g4nyq&}Z&6ꠕznv;s;t2x: O!`i	5'E*wzt.eēcsf1pt2߰nv{x: Og6Xf.&(ޓc8M<hR pQrrjnvxzDx: O	%v߽Nc*d?rqڀl|JCnv]Qxg O:{9&BzZ]'cSYY;d**18gn^(xeJW}w*lEqo%$_&]/_DKg-xg Obލh)Z.HK+csO=~*'ڣn^Zʸt!1nד7Rme 2}S262_}.Ayx: Z/ޘxCeUFn^5nըVA{ngYO$sBx: O182̕z0!9kcd̨&hڒbbfHnv'x: Og6Xf.&(ޓcd̨&hڒbbfHnv93	Tx oOyϿ(ɘ3fw*Ic8V`j?e nna?aXa|IY)7nbase.h 0h$(Cn^wZ6u$dޠH9Pq<\x{}CɪO5kϿ8og[yLe 
x{}CH鿮\LI+L؜T 8x! OE(jcH}NԳchx{}CȩG"bYg{EYkFR.x{}vF?߇W4Zl	E3<& 6%_x! Zi.6[ѹذnvOx> NM)z <k}.[nyi.6[ѹذnvsSY[x> NM)z <k}.[ny	F%g
) nvZS(x @NM)z <k}.[nb6JHvuHY̓nencoder.h QC#nXHu.\FoB3_ sO1dGԔ]0EATbuFԱ100644 native_cencinfo.h B?x/U<Z2{ᓔPCTKvx sOE	%v߽N100644 native_avcapability.h -'	,T}#5BAÓnNM)z <k}.[nyEβ<CְӮTw&ĳnv@cxo OEdg:/#100644 native_avcapability.h zEeu}W?zƲ֧nsf1pt2߰nvG2	~x% `3Bhr2P=n:L_1x% 4H!v8~gRn:\ex{}CŢ;Rj's1:;prUVL !x{}?aՃyFq̳&'3~yRS6s^f0wՇyLe rh}`x{}?ݼ7J3LP[֪ E'x{}?H%<XYwZFd% RUx{}?b¡IOOerjW/L=9	 2RQx\ ku,h՝x W<SYnencoder.h 4;
QkƩWDF0drZnC=cӷfd'N'\
<x ]/r0sZ8nencoder.h 0u2"L|-pߓ[&vC`'~EA[8d2Ћ7Fn100644 native_cencinfo.h d/S}|*\6~sQr/PCC51x{}CHgKs=KM_zmS z-x% } L4f%3wPn"=~;`x% PUrÐcn"iM
x ]@@.40UZnencoder.h fz`C q$۸7U+&nٗ0tȄBEA_T0	b|0100644 native_cencinfo.h oz~Cegca&ַxjͦPqJK1xD oK/PG[ MCnencoder.h u>}x6a=0՗0x{}CDuo}\o˧MY9 2^x: ONSDnX}Vc7
u
>]E'b{@nvXx: Z> oиA3?n^>Q	15g
Rm-pcE*^x: Z*zfbz=Fn^>Q	15g
Rm-pcE
%'x: Zn<ysn^V>|u%&BSe*px! Zn<ysnv x6 ZHsy1_Jnb7Rme 2}S262_`Ex{}f]*j|o.׻L$ dvmx{}CJ1_	fWݺ7C+yLe }Nx: ZsO=~*'ڣn^1gsD)IxO O:{9&BzZ]'ciZʸt!1nד7Rme 2}S262_B#_&x{}?IzE~ehF	}hx᭽91I<;7t`f#3] eix! 'Cohjɪyx{}&3V]]q%̱'/3L, 
x: O	%v߽Nc_G1\##*++/hnvnM,Lx{}CԶ<̴z_?9<2F Uzx{}Cd|By;_]e<2F J_x{}&6Vozܝ@ L, ,0
x P+H5cv{9]blvn_ s"VN"_ZbnS@,lS&
\W|ݓnencoder.h @kd9*SS|AyG8NC}Fo zEof`y4ĸ%Rbg}7GKx: O&d
`- \.Qc-MO')nv
x XO&d
`- \.Qc-MO')n%,lS&
\W|ݓnencoder.h @kd9*SS|AyG8NC}Fo zEof`y4ĸ%Rbg}]Bkx{}FmvS'-c\I:Srd)&~SfX;쥟R|ԄgI L_Mx\ )[BNnnencoder.h ˨X[]ʆ
Qx'Xpsx"rDTyjsg}-(ox: O!!8BXuUGcyh3rEt`(z:Kӳnv8x: Ox<LIC6)S$6?\c(h4,rnF&nvxu K	d>_hnencoder.h *KcKN=mgGpŕEsF]fOoI疓g}=7Fxu >,>cO	xz\r|.nencoder.h USzU8AxO)b
.̈ȍE njʱ7H g}5	x qZ'8I7p%qfn%er$=]7lRnencoder.h G~EP?;.
KLFEYо+)qE njʱ7H g}B=U&x y_+QnwzCfzE;<#@;+OwW>/100644 native_avcapability.h HBDS[Gښԙϓn>{WC!x2nvX=;x{] KS2SR%F	/3pڃuvͧ-flz2~G	UM[sЬ[dy^u`S\UW`f36C3Ē̲ĲĂĤ̜̒JN3n܌{ki*ζyrU"!Sl,yZIՀ%2V$=d`=+cʠ7(Wɜ4J^(| Vwnw5@	i<K.8:B+nyc*O~T,uO_=xkw̎6vfܡ٧PeQ[
}YfJj~<lߵ}g/]s|c\ <x{] KS2SR%F	/3pڃuvͧ-flz2~G	UM[sЬ[dy^u`SEȗxߪUoasC3Ē̲ĲĂĤ̜̒JN3n܌{ki*ζyrU"!Sl,yZIՀ%2VD87eFՍ݊끒"nȿ۝ vPBZ.5"lέЊ[5mb0|ӗex263ޚ{r:whi;TYfkVB|_5wmKr|1=,_# s-2Nx{}CH	{wZ1+1|ta՞yLe *|x: O;d>g2n\k	cۺױ΋6>|=PY*qnv1|x =_+QnwzCfzE{ZP54k&vO8100644 native_avcapability.h <IQ
`Ɠh	n BkJ-|?O"T*n%	PBD2}#Vnencoder.h ~QjpVAK7TiMx: O#F÷/l4@kSQ`D\c#~?ݳnvKx: OyϿ(ɘ3fw*Ic0h$(Cnv/__x: OC~"pԐr~>lPœcTF ؟%W!ynvр(x y_+QnwzCfzEG\dw100644 native_avcapability.h HBDS[Gښԙϓn|b[hInv@Ax] Z
Df|SK0;;%n%Z?>x;ܟt:1>nencoder.h 9>SX9w>h"&~-x> 
k+GW_@~V}VnwE!c0-;Apnv~9x: O6*<B*ĘcS$x 7vOo8_o=nvx: OL+G-xow c"!UەvbdQ
nvmXIx% c-h iePǓnh3x{}vF~uwYn(9ƹ+yA<& #]dxo OEC2Ŭ~!B*100644 native_avcapability.h AwDgulnk&6&/z`%0Hnv]0ax: O3"IuQkmck&6&/z`%0HnvB|Fx: O:0wS~X6Zړc"!UەvbdQ
nv#xo OEWsŕw100644 native_avcapability.h XMBTY~25Cn"cM
 |nv1&x{] KS2SR%F	/3pڃuvͧ-4]$6M9yS?ʽ&^740031QK,,KO,KN,HL,`+4vȺFl'1M^+2uɆbYd.~pQX!cBݎ*+N΋yLe HL?x{}C2Ӥ}YjbB˱yLe ox: O-Ś*~4Mƅ9c؟>*p*rnv&F;8xO OӛLd/Su@4kci̱;mx*^R
O}]$FuAVoA
G$&x: OWsŕwc3,:G8$ knvmA_xo OE:EGDo"{?100644 native_avcapability.h AwDguln(|:pax2i_Tnv1]x{}-t2V}<r}($秤&'%2V̛X7<Med"[$ߒpm)/=>p<&U7 ߊpNx(!-2H/aֹZq˃fUY~b~OƆ~[3_sONgv1vW5>m*lbJV[2SRf3<];{rS/u x?kxS *QV-zlMK	׽'0>3,<'_  nvIژAGg}(%bxS *L@hJuh"ZE[4s>~~à;>gtM9yOnof`y4ĸ%Rbg}!wCx: OS\t!Sޓc7~h-\@I8[*hnvqIxN ZFiVw.E3n^~QjpVAKhS<h_glaNR&'@(x{}Cҷy$eI.yLe 
x{}?H浉6?zGwܫ 
=x: O&\@@#AܓcJ6҅q!<虖]nv4x: OZ<6Oo_}]Ǔc` &ܔ!jUY\ZγnvB Oxw *9L@hJuh"ZE[4s40000 codec_base Z<6Oo_}]Ǔc&oF|0KO^ehsnyr9삓4)\!g}3Ax{}CB>znyLe ,Fx{}?UR][
~5~9	 7.x{}CB>znyLe ,[x{}C!+F>d<2F x! Z\c;m_U|nvlx{}Cw,^-MY~sVE黛	.x{}C0f*M١$$;9 ٸwx _+QnwzCf'.x% HBDS[Gښԙϓn:26x{}CM1ڜ]ZU2<2F f:dx{}Cɧ+mkMfIx: OT?XQ?i^ɥ)'cIj	WY*nvbx: Oe6EՆg7Gדc,%8.KRwƳnv[x: Oq3 [:?̓cca/	o Kanv]U[xV OEi(CBHTX<100644 native_avcapability.h <IQ
`Ɠh	n:O"@x: O;<#@;+OwW>/c=BSm{$envf	x{}Cdu3:!NUhlx<&ͫ %;x! Z-%acҵ3tHknvx: Ootkԉtb]9cƒIETxOnvhYx: O6*<B*ĘcS$x 7vOo8_o=nv"xV OEG\dw100644 native_avcapability.h @
MZJа-"Cen:}%wx{}CH~Bĥ@N3L-lc*c ̥%x: OCc>LKj3`c.W,Utnv'?x{}C_zvγ8Tٯw'3`sS# Gx{}CH'fa*So87m<iyLe 9ux{}CHbYWތ̫TwdvX%oc*c g#x: Of(XV6{l
JqAcaW6ni&${\i}l:cnvxu Dĝ,O%nencoder.h \sp{T+0CЅy/ /H
Ex"rDTyjsg}M3x{}d&׋Gd5^s2_<&͇$Ax% y{3!	uhޓn"xux{}d&Nƅ-Õju~rCLJ ?'x= 	>A࢛FB(n8'|HS8"ek_LxD LWC	=Cnencoder.h Vxiʜ `UAxD KrP\^;*bnencoder.h =*G		!Dx\  ݜ^tdL~nencoder.h ˒BD~\X1_^ALFEYо+)qh({x{}CY? ]9u-.xu ,lS&
\W|ݓnencoder.h @kd9*SS|AyG8NC}Fo zExk|<A1g}3Qzx: Or2WFn;TcΒ\%_r	8q6ǩnv{+Cx: OZ<6Oo_}]ǓcZx̥?fosv3EnvQAx{}C%ʖЦYK+̺9 ?:x{}?Ȯ7/dw.VXtV] nx! Z9}]
\.KnvS
x S*jf	$jhSݭ40000 codec_base SEpئ100644 native_avcapability.h d#7ޟu@ )Փn67urت%l}`zTo?nb
!w)RB< <kg}Gkx{}?Ȯ7/dw.VXtV] x{}CȎï9/SjOnx{}CȣUʤt<`NٜT Ex: Or2WFn;TcΒ\%_r	8q6ǩnv{+xS *QV-zlMK	׽'0>;)hF2unvIژAGg}F&Gpx{}CȹIw=Q/<tТlxS *]W\<)rL>;)hF2un8ス--Gsbg}|r&ix9 Z;)hF2unLD m v5h\EQ6g}"nHx{}C0Hw5>0<Y=9 ötx: O^l4I5+R(*AcN74ǳ[ #Ȟ;unvYtx{}CH+7m>W1{ݖ<ux{}ACK߽Qc3G/Sn9NxHD}qJ_gvQkx1AzdiF&{Zu_	^pGIe C3Ē̲ĲĂĤ̜̒J/K4NwD$uWlռ}>'1M^+{/'ƴmYvl"HR94%3?%5|RgיXno2l!:46Sa߿<7IJ'%5WI/)x0mUgHPʫ|}hUΏL1
lJH˥,Vo4g.BʒWM~$%Rܻmv7??{U%e2z38oe۪=KAN[s#hcor[rGytZ *Ux: OX;xaOؓcf]pXfQnvEPIxj Zo#h8a~6OM2'dS(̸":44]TS"$RLcVg~ѵ7yiSnv#0/Ax: O^l4I5+R(*Ac9q%J5cq=1oIBnvsF
x }Zo#h8a~6OM2'dS(̸":4yiT Kܦ
ic8%.42a	-6n1Ė#О:g; RxS k\MCcVuϓ4vݫ&q3L&c:ǥkR?~2@%znv%j4x: k\MCcVuϓ4vݫ&q3L&cΆ+x _+QnwzCf'.x: O+DQɀ`FRVLݯc
}j)XjpVINnv>?x! Z$ s.{nv3ox: OU@Q!]ӤeZC%cZ.wrrߵh@&nvb+x{}CȄfU*sx_,SϽeYx: O"\2_v|kc.7Ư׏euLx<nvS"x: OǄD\4kFc7_m4/Ƌ"pnv,Ix: OW?/=Yy_c-gmP)R\yswnv %pyx: *QV-zlMK	׽'0>vIژAGg}yx: *J"ìU<N3}gi(X!>X37Oo$|l72ӓg}aIx: *[0Dtmgf>3jz&>:Ga8g}Hx{}C0[e⏬-1yu>d19 &x{}	gJ<oϸ6=S#Bq2&  GGx{}C=J.-J=Z.9 @ux{}CpU{5DDlc*c Y.x{}C:sl֟{i|sS# 7x: OZ<6Oo_}]Ǔcg]ecpO|}2B=nvN[x{}CAf~~'C%>zM>=ڜT 5	x{}C%ʖЦYK+̺9 ?7x: O%7.]^6hœc69)$Us7uwS ӳnvZYbx1cCHoGܤt+SKDz7hDz?vR{@	ZLx> Z]4([pϏ߳'"In"A/NV=n[xxx% ՐhI7++{-5Wn[ Lx1c&3Go/j잜$y?S4# g|~x1c&F\6[A2=$y?S4# ,0x1cAa"wo+Zx?*eīU[\'>/_KvJnR!C3Ē̲ĲĂĤ̜̒J&9?JͼZ&bݛPekF$KS2SRh6)KrYK$){6D_ԫx?V*{'5YHR:)8yqG8rvHXWPsƠۀғ3qq\\Ğt*-s}3_:F;z=Q&1\ں͹ke:9y .`x= Z
O.R!WفWfn"m=+RMS[m[#,x% `d	3"._⼹Mn[#c`x1c?{cc.bv	LO9q; .xv OðeqSU!ޓc/XLC nғn[rKдwMDAړnencoder.h 
aW*ؤA _5w7dxKJ'bU`#(<svVo y
.xKJ'㷑lĳW^L-K2 MVx bbNztYI xKJ'R>kOa5wg[?R u
"xKJ'Cfľ!eWJ AHxKJ'&>-v_0; nxKJ'RhjCvAW+W w
HxKJ'"xj%*g/Zav# :xKJ'R]G̿}Om `xKJ'{Ƴ=S÷7Lw	 xKJ'¿vU#[V8# },xKJ'9.^iP( +|RxKJ'zW".wMVtzx1 h0xKJ're-<wI] &xKJ'PߢkMfV6ݴ QUxKJ'"q̭sүK?>r>$F qIUxKJ'R4wz)GVl{z	 {xKJ'qsly(<sL !xKJ'򠧴.:+/ GxKJ'RM3dWWP `GxKJ'"։$IUWu#
 zW
GxKJ'2LS)~V_P˛G% 
.GxKJ'kLXL^e >
^GxKJ'2'Eo4d~ǰƊV  
mxKJ'/RӹZN
  }	%xKJ'֙uKlqM_$tN )9xKJ'㡥4'mgI E
_xKJ'wmiJ%ש?be 
xKJ'TjԢVx3|oӲ +xKJ'R\#ypOzYQ <dxKJ'ﷵwڰҢ`dq ?dxKJ'wR읞Es5Vy< \

xKJ'T,gOZ۽mKxKJ'lKwjT`:#Ş sJxKJ')xD^H~l; "oxKJ'ړ~}oʓca| xKJ'oա%0Ni&'~Q=9_ 9xKJ'@oZ#}?% 5KDxKJ'"cWoVOw>L]  ExKJ'rҖKAz^k9ct6 9xKJ'2#s٤#.}Nt<"23j2 ;DxKJ'pFF5~ۛu;,| bmjxKJ'A؋yM>q DxKJ'¢_S3QVzb/ xK
25xKJ'Gъ|Եj+P>I^ b[xKJ':{A{}dg~o֎k ]cxKJ'2%/T'jέVr+fy 
cxKJ'"j#-u]Ү(3 
xKJ'ҰvGWX־zor2~ M?=xKJ'bTlipVEk~\l1 gcxKJ'pA,Qnpx9DIrL |x	BxKJ'PDpj=edi 
ghxKJ'rmE~eK x	zxKJ'buw_<C`i^lD }p
2xKJ'1C'<00 'hXxKJ'R#q#Ov2ֱ, 	~xKJ'Rz VQ}־= bxKJ'_-Fۧi-Sp 	bxKJ'{᱿5X;^; mxKJ'uC$̜_ٞ޵ XdxKJ'bx}v}5lOX _
xKJ'"wmJnz~9p =\LxKJ'bCkJ={L) <qqxKJ'[rqWufRAnoYeIxKJ'"a~B=y$6X 
IxKJ'6d'1+ 
9xKJ'@F31I/\m{ 5_xKJ'Qz'vlĞ 'xKJ'<ѹ#\)ԿZSC5d1 i%xKJ'Ö{:mTJ?5 H%xKJ'6uU_,*XfGN=38Z Y
JxKJ'qTw_s_.k 7oxKJ'٫&n$ה%tR< 
xKJ'r)ne,Z-=%Q :xKJ'RRcJfO˹Sm2 E`xKJ'=qc]kp xKJ']F^݃3yk=3 1rbxKJ'ºSzM͖Ymx /xKJ'tį￟mL V	xKJ'"svpJ״;U6J`2 /xKJ'yHCζ[( LxKJ'Rڵ86kƲ>@
$xKJ'r}կu.66xYys |
SxKJ'$ݝT~orw a
&xKJ'0d㌒?.f:7 `fxKJ'{kL7UvzkX  

xKJ'wepΘB"sN! LxKJ'-1zBL6-ʫXw fKxKJ'uNWZc VxKJ'rI	l{bg  :|xKJ'Y3כ
/K3f{T JxKJ'<dlñ։ס6 &xKJ'=wv3WvſÕ xKxKJ'r˱[sfҥ .Ͽx\koF_1p>lj(r,v*+XJJ 9H+}ϽwH%u4v[H"S}Տ]jV\=zUx[mԹ2ݎz]zDT:UZ^~Qt8Rϻ_±h]\SQ"ӘdjiBG_'2M/[y;o㽝#^^0 ٩x龨ъgɷq:8a0av(YRSaRxS^M[SR6MMnUGe2zYyf,
'w_ ռHj8=Vi&q8{5~;S?&h6Lxp6KWҠx?&) 4DM-j"y/sh,E[itD*dhK٘Q-NNOg^*D8>Mr3襚ajh	4|Y6TJG~/i6e./Lh]sсo3$z|sF8{WXJsU0!LR!|D?\i׆YfzXح9l" OjTln0N|8[9zzEտʻ=2]aВ64IXdH!~>z,kV0_@д4:m8˄ϙ.4=Ts?l5[h"%Mk4ްhl kr( &r٧JuFժY&!s3zI!nAfb0\|&Ҁo ̡*G"+NP>>y~O?!Q_~4"hK'Bk/U'DZqàU '/F@JȈyͧ#lm5(qX!Lbу9?LX(=`j~&\	~C1"/eqBH@/OK9De	&{4콛&2/X/qlY8m%)YH*C[*ҴoY+Շw79$TTa3 h7jzp,֠v" %9h<\'1"(yX\^X	vx	]mhǓlyb/R8v.gs^piL0^{ !:5k.ʰ`T缈"ŅhaG|g8>→d#pqR}<S+srp) u]gciuj6c0sʯQVHba7TyrepZQзXzz
xtPIMb:i2$9!r7~7E-=']Xӆ^!iIC8F|jG]&P'%uhmYvKÑg4FN m A9jR9MzU+sTv97 Bj9<{iƗ	L|4b8i`QRX0E*6c/~l<xZDY$qJ_@bT6WaJHnEftOjmqُnZ<Rrk./mBŖ܇{V&ҡLs//E
q-9o?XzB_;"7thn*A!/0$ǅ}/Wl2`_XXk^qQkWWndy$t:%F{TP-6zaߣ`@qi.?A`¦Nh/ؚ1idy6igxq"4HL2wQ#^\v(yA[:\R/l!y{d='AV9W7`N&5yv.)AJmO<h5ڪ=k)C9#irУ>Qۗ(­l?
$e#=e%i\D($*)Gy Lݚ;E~u{"a&uD\s>h5	{7xfY"*mܤF)6{t@#au8)$/PA)et˞q}OsϿEJP+5Llį1yxeZaTbK9We2ni \,q	JNC-4U2+Dx#xW^(8#1/ %f~$ϨK},T+ڨkgm{H,J&G%7J\-2Bsae":*k*Do6X1P"U8ЀN픛4RxGUK<몼E͑D24S#X(]55zGbBmo ӪڌOʉ6y Q $^<qQn+smiU2Y\e5zʹ 9ZA''xSWs迌,NO"넶fV23 x'bFC: 'v|W:"FIK"gx+BA~r5ִ(ODש5?.;uf5S%e3S$lD/ϩIZDIc^lrHfmh}j{E=llQGz+ARGu}^nKO>m)UU<s.J
5ED5UC>Bn#pSH28bZfj.(-;[/3&{G}J*2%AmĚ8g+頖횾ErbP&ܿ}bth>8~~xj[)΍'FbtG"zeۨl]D3C/q{|gf"w0=+)
'_ـ	kLMxRiXDE^`&I=a.%;O
 (u9}3⟩o}|퓹ɔ7@AO&NwVb%O2(0wx^qR2mrI0G>N*KCOqJj3bs,PܙFWF%Zs-HҞcsk"G1
Yb
[>`,2+Ft'WuQ`鸺ć{iZ&9f|_44X#u&S~Lm!|eCF>09+&iho/ 
MdЫL#pI_`k\`0~So4c2K7ؼ`1C:9Z6Q2jrF?Vhyp4	F:pQ~I#:ފB;GE"N7ꤺ:a*";aaTt#Buz>avlI vu\} *`j8Ue ֍Ot[TnJNʀVI(B2+2c劅6+~( w5;6ZIM{ +De#UT9uio֘8ݛٵlʁΪw^tѤ4|uaRɠw1~â 5۪nF+j[ދە)Cg
bfع\b+8]38ҖY`R?k5fֺ<;kfAZEww,>2PnuvSx;xq.-TԊNڌ:O,I pIx;q.-TԊNڌ:O( wx;q:NZp( N@x;(oC&dCf=̔bҔ|Լ"ļT;9 1)3'$3x,h- 8Mx{w`C&S}bJJI~zQ~iciJfs~Jj2C532SB2RT(槔*e+%dYE
 
y)y
y)
@M`
Ɠ&'2Y&$* K,,PZBǘpqkU XK}x{w,gC"d?w
eEřy
z-Y&1<" *-3x5A
0PFR\pE$SIb"emx>/ja'tpX
w0)7@:gVHX'$Z6|[
nd~g1?4i~B?Rx;ss&ԢbD8rK`J/r,]57b3B2<"'737?O[̸'#WIFBrbNNjffdY,.%O36װh|bpXdL% ZCGxې9o-&f̒ͷL Bklxۜ8ofF %]?lZxysCF` 'Qlx;c} *(xMKARA/ Ru1X	*^e}6יm^%~/gԱ̖9<o^>o^[o{tPJ=T%e|c~X2iZ>:TBIDnd/R_vw$"UTGÏ?t0 eR3UXqr5#b-Pm|T") U,V*-T=ʆ`vjN'фg-lFo	E5@_p*iUܜQN*yʊi:][@%#QgaY,sAU[^5g.}($x[}eX]}xXkA[VWZ[{4M$OaYgg[^DOB/zUo7IKò3}ߛz=j.E,0dh]0
Qqaf@ܟ.U@%]]A&ۇJZ_D-!ΧRx"[e5*u`pײl%AH`|CX+XzBijD}Ss@,ӹ kMxdvy~9zHXs $iD(P{1XL$$x5PJJB+54|A =z%֜qCۀ_:ݙj㶫֤GчƼ
y^E(iWxK5x{)B"Y\	T(5W+De)U15#p-V}
҅$Ty(?|;mIa:8jdL`ƥ7	vlF>vz6e?vكvKS{o)QI?īloۀcxo_v̸/\2W6S2|⬱Z\2~&yш|Q`u0'(?ͤ>6cRKQh^7{l;PqSx;}|<AcJ$2d*5H]Y#
1L@
LbϏr	r'*F%*W-:+S7k*=W1-Qa1_$)8L8(7XN,?*vTs
n5oth?%HǪV+#w_4Jx1o&sojJfwjepjqqf~BZfjNCqf^rSZ73 J*RSRKJKЍAOfUlCa
JjrQeA	H]f^Z) QNT(e$UYdRZi^2q{AbQb.PSriQciJfBPjaifQ*T3?%H!H!/irro'ϓN-q土>YWZh~R dhZO6Pq IT(4xUAkAU4т6!h.Q0J51Ng^3lkВaWoAX<x?TX%"{Yf{}*_/ʙK`{\Y:ቯ,.[,ΤDAA`L",Vg"<.}n{5MJPRh`cCX=b }
Jd=ewr ⡘4FМƠ~D \*ACz=`:+BBfX%c>nEseXB$L0ƅR޽[o9hltSh-!>%a!`}PTĘ46'2±0Ԇ a0qs9ݬdwdK6PM},$;dt!فũޛ1pL?whO;}Za>F=Ko~\]q/qLLl[^mf6~rpˍ-dʯU%_+
;|,fQoXއ xx qƜhuٞS%^OC:nٍUuK9IA2x_	100644 pixelmap_native.h r⧫[
GrF9	x;tiM}U,Ο
o4
 2x;ti!﫢M?MZ X^x4 d/0H&W*QBi>`mJ!x4 m+*QBi>`mxdx4 5Usah/0>}*lsi a Eux4 -úR3;ufGCݧ/*zhpT07Qx;tiϣe煊'O`sO[ xk0+s)evfeZzCRj$})tcb<6AȳK^$J{_c7!U6!B8V'L,1qˢ;IgW|\qp>*LFc=`#`#`'`+`+`F84E,3E\'8͕)ՠ
OZݫkH~8\DZڅ"V-@Vy˵}W
YW-6O%R2x([;_gR00)Z~2LqKOXX򙑹hKw1ɮdpC7e9U}ӥui_`x[,̽Aq)LUXXb d%&xk^óA%43d&Ҍp`&8S+KLLީKM~̾	 NRmxkͽA%43d&Ҍp`&f #lxkε'fU8f  U+xkq*쓛9秤&ǻ8'$&edL</)ZTX_TP _(KxX͵a3SiZZjD(k\fEa3=r,)I
&&.PXZ2 B5(fE~6Ăedb~%eB-W, @ǸxYn9}WV.,o$r`)AVwɶsdKoIx1c5ŪSt耎[K3K?г'ϞӫJ,y	QIĳIn䄪|"5ٙN)
#-ڨ"gz/Ĳh.*#aCJU&I~JdiI2S"egn`Ź{Qt%is"	xEY[n/H8BOۙǴ#/3iiG4/Ip*cTKق^heU>m)RZeVn`b!Dޜ DN!3[lC>t;Q7sN N3^'-@JMhJdWٔ2QJZ>TҴ:GDTJ=Wj]\Yaݣ59jb2TU	2yX?ZɔFh^L*[RM0i," ychs9QR-rQ$&yZwTɌB/x=)H
&
BʪV4\+ڋeʬrNDoٕhP8Rr\Ѭ^cq" J fNL>M_s۫}T1yx3qZ%7^8Sq#S9_ӧx>R)!AgԿpi<~u;\$b,2go[ϊG+]"M4;\_"sc{=S>tqYe@~ؒC|HyuZhl	em	N+|3!',%/֜jݶ~+6U_lRX
Ո4E}KfVTR;hw`kgʂi
-%bN"$8CqK.VYĜL
Kx3Xl:H\,\\"s'>+OֶҸ-\>wC3C`P:H%?ɤb Ji zP1uCye.w+S*T[(gz<_~'
3%!YV$B-zk'rh' jG mI@ 1(,r[HҰkn5>Ğb=)9IE@MQi ]3eה:6cuToF<a5;C@%r̹sW솗ΛIΊ,X=So'7X>{;zlϷ|ǈQuׄVM
C}ϔ{bWh4ȿtV{ZT:c{`1e$k=$*Va[8$zGzqtYCa-O-ds˾[>?6rƨY7ԀhxO2Y9RC6&8{1wG7dIїtѼo+YAwkWvAVv|"7w,[[Hl)I7i':{{u7vrmA}$6?L}|]S`_Fy4 ;oQ[U5]p@Bv-)hp"+BRŚޗ]Uw±{6rV@i@L$N|̻! |wT8m\z7*Iwԍ}٬ݺC䛻'I.FNNp$HkЭ/bD닂^8mi1N/MohxoL_۱u܀f[ۗWjcM+wwpc'Yul/xhpNdyKv #Fxxi!ir	T@Q~YfJjBbiJfBb^2_'xD71` 	x5ސ49zVYM>#; ^ix-jAD@rS)!zgzqwz1A.Hq\^<yti,	vEo1+e1nsDCQ\Qn40H'IJ֪g/֨/uP	^m=
KW`wZVjP(Oeq\ylrp7?|~ǏӪF5 YM!lKxg|fM &xk>bfkĢTҼ<̼ԢT4ԔDĒD⒢ҢT0͛% 7	_x5j!^_KKAK!-3'U!/$,5>,4--H/(M*LMS(/LI-VH,MWHKQ a3KÜSR̤ĢJ !75%31>9%U8s̼TCLF $3fnnxMOAǣEPLiyD@[E%-x0,mfJILxx#WR\|Ii?bl/a＼Ұ3?j(nHA&\{#F{Fbmym^UdƩktPC0PUPrmk~ 5RK9#Ih+CQZWAJ~wvAyv<'Ed3\$S;4A\(8?NG#M,.#ba={dBu*=WϷ^,,a3,+Ԍ'}/3{jo,UO]0}XEhIPυ+bu}(+ܔo"-ʹnlԶ#0	̦ K>NAaEj2Xu`4uĸ!PI}*h		XAıQ HVSw6'MP++oG`AI7l
V9Cb+.AKmWUnvqBp.Gc%)<'`ʂ
#	v0"]z+#dk{SsbгY#@}25#"y~Z-CCsu7P(Θ*X:
ek߽C03 jdDmr[~rCFZOǰL?3~[Z~׺@5ݔڤCl|n#7#}k]g|P_:tr99yy[7^ݝU#LHzMd*28Exjrd&f̒ ?DSx[yw&9̼ҔTĒ̲ĲҴԢ̼ɟZ6r( <<xۭS}1fF78M&og,&S퐓TZZ\R_Y7ydfɻY'INè7YNkJyAj
sKJ\KsKR'OMJDG '58U(hBI>'ph5N2"?&-\ë<M<B\H9[/od'	MNX>ق~<Myf1m^[Ʋڪ	OKNU(+IM:f&
"\K2Ravr*Pov	 ^l{xۭ|S}1fF78M&og,6Er^,wO<I (1W!H5/94'$uDNɟ٤Dt
rRSRRJ&/8>ӜEqn}l-d59?d\^8'{;&ĻWN9[od'	mg<udw^%a3x1C&Si:]
@ļT̼&krYHK,,K(0hkx.\xS}3dy!Q,YL\@BCNf^slϱYnqC{=3:>6V t!xQ}C6D~+YLI3ٞ՛OOb2473r@UO^s,Ǹ9_" Gx[msG_%8N*䮄SW]bٝ"){gA#
	\LOO32ݮWvBf2Ksjh7y0UԕԪtj>œ$SIR#EIxSf$Ԩ=[}c)h茆:VC5
x SmGNAEX0`x	?xEY;^N@dq{w0]L:Obe_rbÃ0S2);kiN.#Tr{Kf^;@jAB.muLCGNkwCgVu_'lQ$ݨI; E&*Cbke\*4W*M#t3j#f)cm+n騾S(25`rb9 jH=phlJG*AA~DQtA>Vhc55L䥓0#|'c2&M:CER؀<9hdkSwY5>s1c;fa.=QJ+l`hő
c'gTUZ<Uq'Ҝ'myqͅo5: 7(!^ˌpVaHfuq\u5{7;XC}ov9e)1PKG8pk.L% 	ҁEl;+&WspwBo l⽾V1hk3`N}[9Ǖ@ʱ_`+zxA q]>O?_x?i_j_7jr뇐Y(\{8>\73aƔ0v;'bjfRh<Y&~5\
{A%a`%اxئ	X>@vaiRPG>,U̲w+-2K[OrY@ pX~U9L`W4gj/gS6^f갂ܯSDŇ&O,a/II]0gc8aU29L5$Myac8E8am!Sj(QSvn}uul^DēRe΍;mreo]Z6n(9*PNup[~~TGJ!w:Jo;%!53?GYѹ5DktnwR|ì~{e|ʜccYDu#9iO
/[Ȍcod%)r\Hnh24j. ^XRWyu
΢^eu2m=gKҫ$WM697g͔Ւݲ?Hӂ۔tJd;~R3oq'rDSʪdUJ/kr@-wn.xۥv綊XƵCU`h}j?5~OW?4Q~,rSTIln>i~;5/YCCJԼS^W꾋'{U͙`s|1f_F@؄bW>qc\raVu!*'ȐbL:![I YY/oj$ó_Uj'pg:7CQaƐ~@|?г7CO\r!ÌA.'/\/7IwiMc`tdd	[͒0S'l=6MUV OT	"1.]R@x:CTgᢒڠ2'x[iQԨHUNkKKA"*|dʂA1_q.-s.M>ߔ@0Ab0!+_R@}]BZ+]i-Y[`X !0C{8_#\v%	 Hdmjtqu(cpQ{f-yEP.aX'\$3Jy*x[18tTX@Nɽ0hrCICpT΢S05gO#IL>EЂG(#6/[YHo<@HIP-ZNJ{mQe	o4* נR6%hN<cs8Lm1#ȭA#:xŎP0B۾	stˮV\'ڃ̬-H.h~;x,^H\0^Lד7GsEF^5F묜;G~}k*ncyѰX6#3o~+/+$5U=sUXӬՃ슃'24bݗ^/W˫%wrLλ+1ň{\1#Xy Gx1t-::^<` p+(49O03B	LOPZAsC^^uKjMq8#568xRnAQD!;`uA`lgq"/4XJ5^݌14||]$)ꈙ]ʙ;їY$2
sP_u0զbum~͜`t>77`u7ͷzOݕRl.\z
!鸋xGHr$(5X吿c3:P:TZ0	6$t=T$(^M^ͺԪ 0Xɵ<@ZsR!(2)5g2gTfZ{s*ރƥWEM,?B(x<N17̞D%AH<Eoxe:jV8JcF=$$t-{$[z_k7z`g13Ҵ!z;-nVM"jՎ?ĢӭI!Pe9ΛOzY$<xے~&ou!Ҽ̼Ԣ$7	02Od
͜OΔ(ol4yB<'	M/:V{Eaq" +o#xےޕ,[;=xے~,|C&f̔bҔ|ļ?_!mY̛N>"<X j%o]xJ:Mwaɷ5,lvxJڑ!}v/M %PxJHؐǾ {BNfqB~Bf^Q| Ҭ\Y'+mqqrAN clvx;u<jC'.} ) Ox-JAGRmD;Qdnw.s*Ać'|gg~~zGklT TCע)Sw[<b#TR#fI 08`ǎOzEO/˖:1-`,	/oTKHiiGYL1i6)+eq1XgWd*	}$'Ba*'I:9US~f~ax<x-AjADAwsP.Mq~?VDCx ;x&dSͷ̮}ҭi>Mg=V;~f1sDGQ\Q40M IJ֫ad/h>7d/a>DCDn1ZY;-+-(DɲK8.Wv{?4תZ6Lx;=tC"dmYX ;<dxy;rk4?	9x/lC"SCZfNB^bIfYj|bYZ~Qnb^P
,TP_ZX +@Tgg(89秤&9IEE
@jCnjJfb|r~K^qrřyɩ
b4 /;4	FxuC6$6?1m7o4UFo3#?x%a<2@Ո0b27ʴxk!(G	HTu04';(Nv* 2Jx wfL4 A:%^x[ƸqBH]6K/4=>Z x gv(xG-6pґ{+xx=ioH+/-cw1DD$QO><زP>Ԥvvo8꺺sZ;a5֎Ip}W5̽;f4꬛݅O,|솳қM]$∝7KB~կ>»gQ< #H<9f| bx/wAvCx$"㋄O3{0a	́`(ɲ/wwwmi(]m]G XNG!OS? f[A3o
d]'b$.	 4gw^YL /Epm y{r`Zg{tGsk8lG2gNcl]Vd;uAZ[&$X=	X.,3`-νkή[D[d)#0XGk|!ӓ	7:%k]B'RҿM o5S\G:f_VlAvOx̍dF{0?2h	^fg4h^@Bz5zI%L=HXQ>Щ`䳌$x/R
%ɟ|2Ƨ `x=u07xƓ9H{zY5t[_bYI5	߀"]N.O~yAď
hY- 70>|&wU_N/b2-<Nԍh`#?dKls9Q4^<@BMTZZ6[@Ļ_ks^=13+?ܟ/t>fK0!ʩ՟fr.-)*z3`9St-wvV"0^/}mOzTAkHWÁ>4aAGz5JȭKpi/Ucݑ3z0
	J{}RֈrյZz8O8Yk,~<lBe?P`V&!fW~?Oy&=gѤB,E.(:)=wAK\	 iOJx6c2t(85K\~Pu\J) ĻEhہx
@J0+8&OsD/bE\r'Bhƍ,OehghBy2EIA(F aJ@. !r:eV}b(*0Mj.
VlccXu֔tXY%z[<}AaU{;kbhr4BؙM޿^k/(V(5')j]sw	by҈^-〝^Z|r2I{p_󃥰EBih
"ʆa)BBHƯ8D֔Y`fRNp@p-abȎqC$Vxb|z̀Hx Ӵi7DV!I28IʪANHP%,< ~ =:fT_ReWsQJ W4Bx9/HDд(0CZdhjjϵ-Ȩ)< NXj$Mc& ƅ\T+l`Ŕv	$"!<bHG~F!Mp&/<~Sp퀇Vl:cӀ-[	= pwNS3?
Ȫ[[Hh6A5"8/V-P;i_BdV"FĠ@UYnq5:8H4HH5-N!a6g~7Tr)$j	D_.B\qUZ.`#Qh|?-GRr
ࡪa~_\XCsW̀[ 8l؝&`2w7E1)Ug4WE('h8ՙf }k1j2gu#ȗǃĺry";c ]onN*t']ӹ!{kقd۟5+7{,B.cܮAG~נwJ٣e@|" 'dqei&Z|;{e9VbikܱIǺdnNVRxx&R\_P!t.%4shֈq.AX/OGlVQG,߆yhN+[Be]|@M_-y{B7pM+g%Z ~b	2͗BSZDMtD3 Ѯ*lIVىJ$eW|s|A9BEƚ'x'V'BH3n3Hh;@1z-XZ d8f5wH_T}	.3:8Il<:A岲£|"o!]t'v}	rtVp
IlvKPYy.e \_(@@ixfr?ۣt`gtif`BkLj} c#XQuEhĲBadS/qˊpSgtD^Z04šΚ%1a䃎\Q]Jgfw,OK#%`0O0dEw&vOMlkRyXU	(uFTˇo% mv vTm	rOA=(4$v5Vk_p&8 1HklNhYraҺP ғZ1;N"4U`MǑ)9x"4ozƉdEXh(EUqRtzI@m5%$%/)#]	Re `	yt(f3I)L˽"eқhB"ʗWM*V1C{*"EIAsX)qX#PHզ+>1p	P#QBJ}88iGp^7V5u[.+k۹ᤓj;W6B'-P"B0F'Ⱏx0ÓJ29:78~j%iebaЈt/%~WVۜAD	NjǭU;>rtG%Fulb=6hyFH.MOd#vGG#ʐ<@{<}qXV>U@{39*SvH?I{9g3|7/<'PUz]йQ0
^|NJEm8s.OŠZ8O#aܣ=%PGX<\1@/bm݇篈*֐wduZ8av Q=Zg\K1{*a哣9<^ԑ$.P|j,AD
Yiikg+Grm92K|f[a%ҒϿ}ǫx1<gX2WpR}a{3ZZZ/:dF|UX<gt(~SD'lv,S+zMus4{##ÍBcDX)aQމJiDP6]_E #?+cCAjP@)n@3d}\\[>D;DdGg]W$B\IV-xPlH{uҧ2KZՌ#)hZILixQ0G$=`'y-sEy%PHtsgwMD/]~%0
ь,	Ρf16LVbSw2U+홸he0~3xybs6|r«׫PKoqīGi6$RW'!t}yb{O&+ Z`wASHW3T_R4Uy-#J&Xl`Y	bTmե-Lǆz*{)<Thm?"T5vm,ORؚŦ*Vƚ~6g$*Fd"Kc-RP=~jr<,:GȾ1;#<٣_h>Oٸu~W<!pUkw&W-gGB%Enk	@3d;ȉ}&)Op+l9osO}s#q-ۻJ\kHH:]~O)#*uUrWR,Ox0pjue,#YsjH~GdN9#B"\kl9*u<;MER(IH97FjG <_I|5_$v(ũ6yĶo\ꇡ}EM7MWMAm62Oe]|BlsGZ:a\>r.Ǘ
LS7+K.6'ck\(e| #hAIun^ҾKzt1K@~F^`#-[XHŠq/sgYlBS6^9/ڹ>w4zx,HA]VHGJWf3y^x߂EPϗÂ&"Yzx;-d*-3rbt"20ѱC	7DcuQqx}]-Dg'<	Mz>i'TSt/y8xJUϖ7#fԏs<k+aWHApZi<̗ʼt',ͧXR| o/t%J"0C*1Ga~RpzUz41;PSCC[C*\4M^z2C	;\pj77!/wp5?fG)Oal!ov$-;	==ԃ^\dx#6/%]qrXO
'ty?9e[ wY|zMKaú33u5Cʆmj3i
$1W=Yl_Z$su3Bk{Mx;"dL0FSS/{,Riı_}TXO{Ǜ?}ZZ;3cs zTĪkM*r
J-]}4#cƸ}PSx<^HGuH6#߷Q8YA?PA2`D.;KO:V5p%3}ȗվ0FΨU/Użʅ^lA%<(K7	6%q>uh}h;c/
7pK@Cc i$
%l\5eGq|"P={t.]{rkf:7XXq<k@w`t뺻0]v&C:Y"3ǒ#[B{5&]al]}\ZA<A`P4n@xuq	"6Dgq :xX_L\YϴZ(XJC-Pnia(n3;s˝{7cb/&7uc41fme71nS]UwL&T};;s`,/=yWWZ/ٟ<|/vBGvmCzHYb:HW*;<UgXHc2Bu01ڜE1Lr*%4B=ɱk`h{<r|e5MBi2>R1
**_vÊ#Ϻ$eSY(XeLuxuPO"`Ȭ|]"AlI3,fn}KcDՉd趪;c*eDu7%UF+gg٤;d9aھ .WrL6 9Nn3ɱ1&ܰc䠚*e1j%39K#Hp~w6r)f\~-4$sP'RӴ6LMRkfmH.!Tx#ut	v{YuQ̭KJeexwtOe85DdW96Nn&%y	IŋV|'sPƯ#FJ$8[R%v&K2$Me\m;ēFsJV%ܘBeg<5x_2ry}kT3f2^A1A-G+k*+S7lUYҹ}Xr%	S&#KTsXV^E"[Ssѫsw2YṁB97 +2i#`6RN}&q!|,1UcD|sP][&erdWAT	?"& >{|SE@/JǆCȈK}f*^%l?2/R2$<+
d	]0xA\oR;xU*(j+pco;m]r29TOJNڎ'mPyLSBJ!4ٶiBn}C[rM-aM9^=(Ay) dތ65Ҫ]QG0}cO^5l!8`crMvA$m1}Y[TP*z={.,0{mX`gڃQG܈l*PyRy	B(|/~:@\ҥi\4@z{}c1':.5~RY>oW^|J#B'֠ _r6zkFq8>{WM4eU%Йבfhl	v=*=Ek܉pdx>ˡwKPc6w>>(TXH2$S͋r'sg-e`/q##ɤ+k`tM=Y5zIMXNVmMEW{{RCm\珠`*nx5)`:MkL.a.D@H-8 DL"Q8;|Nxk;^q\؍7Lz I
bPJhfK0h锟^N^}lǚ:|y,;	vK3C0,{^k-hvD-VG<uG@PVj̹İ|w1xa΃ݭgf$ĔN&'MU܍ָݦ|{o#}ThƍVT%׭kLw.!/;7gp3-<{^_<3,B_cO%'!:{Քz1u|R9jt._gjh/CHv+)Ws(K_f৳1P{oN)51硕@>Xı{މכ BKXKا2d :W}|$<\__`x>;VjFOʕ)HOC~˽QO/?~ZjZQ񰅑vJ{̲j	ZgňOOpŇA,*G:.u=ggMd:Cl ȊXɧ#0JXy)*Io|Lp6Y?9/HX2Uam7.ra&/h~zՎ!-=Έ{%'ċ
/O+Tpe[<ťm\QMOBXV'L9!1/l{b}c1WsrcHkމGKf7۰1ָappՖ@=TvG+hd!ھn,-^@5Wlzxީlq$/&@?	Jhxuo&t|!" ^	'mx$ S( B z'I
7m x[qrϻn M
?xW=D}|" I|sʞ}c5kFΘ	a	C/@Bػgu}}r7>yp[vg*}mWrS']ƣןY<~j;0O_8	n]{ck_(F׊ޔ\ߺQ<tibB@	L;e{iu7m{d(8M1怤Аql !>fiv
)mY㙶x!A(Qfbmn`[sh4>3D$r2& PG(2-o=c 1^-vpCu'H#L)Q;AZ&ci8~78@8 O08p- T:A!NV@襲}K#t#g%LY%jd	-/@ǓnjI8E^I5'b!	QpOWus&tb6~aB:QuK|zӹzD'ř]S*[^%yޒX4[79r#$\ķ|XY.h'	BA١{e,d-LL-H@9ˁ՘D:0{p5$ca'R608Lvũf\J\I'P7U)5᱄qheLiNò>)R3347L16\d>Fk47Rv+$F'Uh7F8dQ!(rOq:`2%
Pա5o[okR"J{zsvyds 41|Hf/Ybe}=MQ$ sZ6aLonzgpbf*@@ɥ@Fxp,0nc-H6=w*Cs48k*iJr l.6hi*:@hb,uXR]$KEWKuL;S3Obk6VJJ_.Sb,fOQ0`OL>6,w5cêqx{X'gPI-
LI/-)(-QwID_@b :	ߠҜ4B>X^KAK83/9UL@ (URYWdԐ|!PRRRSRSF%M`:??4$ 4$[V`=DĔJ| #/%T#=}]pbzdrrF 2l[Sx. ʟ><=H}o?BB/ExX e	yi%T	- (O9<=H}o?*IF~Pb!Owx{qۘ''rMVc9y:dAXb'odd\ɽirdKI 0`+ɌҪ-K'ǳILla0k(?sAɵQ 'x{qX';
n`{!?B>L/OӜ
 z 18x{qa((9Gdw z Ddx{qX';
n` O x{qX';
n`)X=O|s<1  
%Kx;52L)NũD&2kq;&7Z	:
řyɩ
FƓEYsAj&0۳COdV'+ǡŘ11u1yYlTJT̲<TļPvjBZQbn*ȵ( 9\
%)i
y
P]ͥ ZZ
 !|`'sh.;5"$>8YV@Kn4'D7$ 5?4f!6sSK&N!Ynk0UF8
3J!8LbU-&g{#"Z O??6x
@
"YX\\|Wr9>JGrf		|sDIRëvVhr 2 38@JdeZA1)#["#XP"
kC%yeпPfr?im&ApO6~:}khx6 ʟ݀	yi%%JA[93E
7Ex8bC$7u[ ?l`x[aI (~ !x]J@hA<E("ciɋZbKnfӡݰٴD^	)^TU^fg}3~ǻuj̛`T@YR!D0&ʳq$bp	00h0?3q9ƱHLE$ŸҖDZ!Vm^)jQM	.&FP0ǖ$5߻jy2;~=j0ZC@0z\JayYoŤ8{EN}kw=8U;\gx$B){߮Ykg/5VZ=hll~J䍧qxWMoDV?vJ hMEW*l?JhMjD^Ԟ4C;,Ѫʉ GP#H q`8NVCb|3o~zi9?ṩDfl2jIЊm7+S,U]S|e6~G58s4.?ym\7z_5}}cGnx
quVO<kv}A<G/b>IX&50#.bU^ea=B;Rp ɪSݕU%5Ih}5v޸2/GEHq0 9X}Q8JO^DAVrN
S#9e`nL0\ZB9QIK鬜3%UҔ|n5v&yeb hءIKxxBpU5 &攺ZlsCgO׌82leȨb'Y=#k8V4h\=r{R1cѴk^JƃA0T1e,6Rv@n"(*$K*Im)q|Gp[J%+9MVRAӵB+ ׌pVA0މnmTzmlp9IԸF&#-e[>Wf:țZVrQK璊O"'e_RFGG{#&;<dy_/䋊0ޑ!)ϋUZCH}XLD).[PůtIU\O>̖y}<zgvQEMbdQң8^V2r^LhѨUBO7&mfee/~u⺢Ɗ|J9ǡ\,JyRjPrC[Ƅ@XC)JY??|3w2bCD, C۞K(C4f?*iba?vbtb&mqc:W4Q;Nl	]goWfNFT?@MA+8*ĭY{BG`T	%Q_6m:g`U!1K?&
,44&9~k~oB;/{CƫDw g8wxWnDVBKZ	Yr@(la:Xmqؓdcg,j GPH/#08m&[5d7ghk9@ƅ	-t!dFplwߏ2ḿD@>hnb?IXemmeqk=< ރ)?Y6 E>a/@=SHhvA^8Fnh򱢛zje߬n~.pd^[cфIR).B;FkAh^P*\8y)ZaC
O4Q(ٳi\(+EXeCVrW[Q*@<mZ mDk@:T)vg{&ݽ}Cq>V,H;_=CY$Ip;qBY+ȵj%Es%-ǃ'a(VoS*T 	a,r^5t!Yu8 l	O!A؋g{~vEjCfƱ,)IV<+lJU~B/Ս)بk$lJC-\Ἔs1n֣o8[uΩ$yMސ	y>xzR"KQLZSEv!O4/x_/n+/̚((Ի	P\7iz^Npq~>Su;;6l2IoEj~r$cزcï|_Xo)Ǔ8Rj5G޲p/y£	UD𸟀Z3ՆG+ѷ[핌zW@8xyNY#"_g/wm;㊑p-^a?n;ͼgf\X ]99@h6k1h% gFbռg",g߂W&|rQ
	eq.,|F_JװJKo[oGav""6)yї5~'[s?;ov]mZ}=S抃l3xntC/y̒ "JxnpC/y̛&iT)&(%dg+{ s7od)e|Ci3O	 0#cx[frC/3OvfojJfwfU;5&srG2O׹&spGADXL'c2De5742ݬS 12(xkZ c\s ChlFxk8pC/,," "dz5x[p`ki))d*&)gB)
%%
)eɩ
y)z
U
yi
@( $5E9(Q (1W!?dBCNf^bA@  ŉ@+J=AV ]lq؉@=yPץO-/[1_@T1??4$ 4$55EV\vC.тl CZloxgp7 )xhp=`^rNiJMqIJf^^fk0 
;*x[fxh(kiqh-4ʼd|bHIFBIfnBA~f^X	"Přyɩ
FPcX|wkpfa q$_$x[fxkiqh-Դ9L+rsRSSj&O1-KNU04IL䒔575eF2ƛn hb+	x[fhkiqh8EL+rsRSS rZ
řyɩ
F ɂ\:\膈kaf]J> "KxaxC6l`2csw yycxx2eoɦ:lY FN x8q9sIFd/  ^#xȸ&|L%9ob kx[moF_p?#(r!Z, Eȕd8j~3|$qhygfק#b0vI;{u#H;.X.:m6R^@r%c֜u#ǅMX0`gW?86_$a6Ζb@CH>g#Dp	`;ִBl|04¥rsDUC(^+9=8l'oO}<{l6Kb["bveN;̹9S!2|%6J91G2*DeƜwgl8;fΆ6y?_L}w:M7d:gn8m>s@MrmVfIF+hmrv~q !Ѣ/6B9UNN[ȷ696BI~av[KֽJ{sKfc?ua#ru=yXŉP ƃdjkHezǭtͶRM|h)|WN/ԖQ(F	E|x[aU
bףrvWtq>^O|x3X ~6<AkaI@u.=pO|ဿa,;㺗nqwt?[,O$w?+8v;f}ORXYϯؚ;d4VըF4+' ZUoMd2CyZ(/q WX'"mxqwfwkjFI:>\ǐGݯk$w}ȦkfؽmDَoxt.	{J`] 	ex`L]$15}ʥ$ս)jk@!b؜g:B1X%e^x"{M`:L^o0_ثѾ-9[ʨ%v޻x2_L=]OG {PA:zþVk'D>1h_\tn~3
r2)֐<i"ai]٢?}`zY.dU,&D~a?6M::(Tֽt3w8GO/^ \	 kI1UFHJmJiJ2!0QB$'qS_u1˥BKu)ދSs9!y'g&$>x #$pӌ#܁kYboZ4mj]j&2rí5Z/A&.WE_/<FQ$W<!3/cşmH#ŵ쨜J3׀rCe4YlXV5i󐋏|r}!/(^^góivKÚ5_`ˈe`)	luZTܵ@nF)mNA$alZ+<~st*jQޡyf˥6,z\0E6Ŧ'48>~*T*A~r(;`(
cްѬMnw=ݴY;h^G⼴pނSGNaZW!|^a`Bc$oiO2vh;o;fVkZ9$keJw8HqY+SXZQV+6?l&DbϜ^9;6f|F"H
.$:	t$o;Bbgҋ-1I\!9!MPusfW?PﮮM(QVBs)EmdW]wcaX&n`>3t/v9Hy8YZL#$zF ōK2N2^sx&-!+`k^gWW|_OyJH nUf}wSoS@#9s^w)[=F>p5J3q8	mNieڢy#s`Y+lnsq_gva,%x^8!o.l}5Wv#؞Aym5Z#to|g+c؈Kl'cG{!1!ACV[iUI=(SB@6Z}v4n:Nm0"ʝYgXÆVntSCث.:Og3HQ9n!g1?no{J[^u<$A"U>^-J5i;Gd\_Q<pݔ(<lNP:$Z]:'8ժLW֥1p&iO9LAM"u|}~Me UJx0P+fK:} _8S_	pIW^J~1^Jj"".Ƥsed6bOՋAXOgUI;Chչ}< PD(ZM苝`&@o2%1tИ;'w5ơ`2vb=JduW(kY%yBI8,3m[+}FnRWU{ !H+@.y̘2D7qxtOq?E	@:kQT81" nYS{RFBq6CKXKE]<kRg0hJOnem3dGJZh咛[P#uCH)tؤidMi4|e=s	aNH N~vًf'hB)<hlTVˎ}$X@A`][(U=cyORiM};Tx.$	،[`+VyQlQW6ۊ"s4 Мک_SË10Rէ2$,6a~j>!| ۮKE\O2nUV|S5d>x橲QehNҜjR
z4WCoĦ!@(TC0<k8>zdCHٻR4I{VY/7!\Բb&88lY5tXe>+LJ"ueS'Zf2wm\]+ТΑ6</JNvgL8Ft}{dtt *8k\_}Xnj;JsPj@ԋ	Q9t
m?(7P%-g{,1_wwң[#K-V-HV	ӵCO2U>m<@Ӆ;I=R/ooydS
gw7mO wa=\qZ҄SR5w	-|þ;o}zW'<x[v^ n5<N/o	A~Ae
1xX]lWqƩw_7'mv`AS ]ϐٹ;wHZ@ UB# "UB<T< Z!}(/#OH<P@'{m~Yϝsι|AxvB	f*LOw[d$N'a\_)1\P7Qn'¢#5LʉV!S3]t0$:&C5m,hU^xzyfA魀Њ(s슲k°]mk9jZr,ذCEplfm&5sp,e4'H9(v\A3}ª$qRa&3Sov#lР ,?TWل[]p+FBW&YE=zozt!1e;/P w Nئl9w6gtű+PF#ްPV	}t(C"%,E!ϐ@Xwu<PKűc#&c+dr0oiqm"n^lKdHAW8&R~Rӻaޡo<N(0#ɖ;yݛd嵥Y P᭣ٲZ]/?=ENjT[qxH
S_"L
&lwGaŽ/<P<X	0aZfhW
	i±ށȧM!SrLK&JTS5Ojba;z޹Ho*$CvMzGezoaQ6{KTG{QQ-Zd/"cfaپrUjWK1f_obqe$<.6	Lb!IlWesy[=07_~aV3/fb)fF}yϔȜB%
6KԯpZ5UNT[v6<V}qk
:$~D%wu97]OHh뛂 ,X\LdIuī8(aGwu|J ]Jڔ2no/j*._(4ˮ击Ն-@}p O7dP_$QԷh|۷J;>?z)%20	)|{8	oexpT	|CeO5=/GAWVTʩauĦf[1cS*y\^qMA2iI/FVW!t}Rp!,LzjY=iAS	8&R;jł$w)gXfMUjpZG:*$5igǙ$r14[UݳUN$}InP~HJ[
1mŚBShp=vITa	^)瀌ve\33T+gP*td4~Tٶl([!1vz'maZQc\ZnN)!pF,|65<r4nc~H$ja-d論
1a)^z6'Ϧ
yDt[e
>OҀ|L\|ݶȗ2C[j2ߛ9 (eHt[ɮ	&s77cvR]3Kmom3}_.jӱK,=wIҲJtʣ4/x3X^	X=))7ȥTAb&<ێr<=υ|NMiE:! yT,	~Y\~JOPkbnڮ[gajg?H\tO1>0r.$@qW~? <Ja@65]m\3C䋃jvT
p|t )rOg 酗ܡ|kj5W4|/w`Kc>>~|W+}|<Ys>(px[P2|CHPjNjbqBnjJfBq~iQr<"lPdaɦm}]RK+5=|A
&J
oN_)3[\]{Tx7o fM(txUlC[Nj^zI	*ⓛꙔ6+Vp Ex DۯH_,ɑXWӖ/x DpI=i8\ÑXWH[x m9KSaWß5rҲđ.kx mp>bN7ZkN.á4x mfskjݖ7.?Dndv/Ǒ.Z}x D(.F~&Rו.XW!v&x̜*;2dW\56Yo_? `nx)i?|
'_p xZmS9ίP9_26V^M\`\ꊒg46ci"i0>~ݒ}lBsIVݏzC2FҐJޥt8`<`0%&Kx"4I*BY22Hh H|bJs)IㄎLɊnIcFCC \%1_sx)V/^
),H[TH8?Kc~^U'բ9&(݊iMroM@A՘T.1#Q↋Eh5Uń\穩,SN^ VtS2vxE!ǳw׷3yps3ƣ)!x6?`O.`(<њypXEH:t &)]0L	8IZq^ՠ`bbq.ܨ?<ahB4!>zV>+"|L%y4|^69+"-^I[V] kJ0 ܏)H3eq=%xuC4 &Lc45_oT(_'Lj%Ŧb |@Gu@n@[2, 09δjq({D+wLXt?7ڰnN+~$*ֿRPsƀ]r| "m?yaH,Q8nt@2!=ѻaZ
5tQT 6ӻw{oO.8vw$qg=u ipt nȉ{hTf0܆t.5|h(x9b`MoQ~߿\$ƙ!v6ϾTiʻ1X?@1-no⇤cfUx2}MTwql`8u
ձ7Ъn+Y**F	Utg}(GyJ1AC+=
qI!\n/M	w`:) UGi|FyN$S'QPP`J1~	S

PD!t+4j$pmf-_4<,?id86q;,]Ju9l-_C6Cf0UI?',X_Zq	: DepSőt.8E]tQ۽j>z-2˻eRRB@HWvZ~yCX
x{fg^VYEގ>B4_MG)ѻHj&?~ࠦ֍K?zZ|iU.NƮzMꧭ+S=	ܷ]
p{]Kc+;9mjtE_8kѿ.y4'm/SkZ'po8TvM5K\S&2/dҺ;DgQnsLKC#n5cWI?CtBM[;>J(XXwijVX=>N740%Uc8rV|Vu^PN6ܘEhٍv1ӹ>gwNqӧ叹3˶*K/rjel8Ksl~DbAFgp$T{FrcoUav(O<z:]&AHƱ\GFliG#邝A',jӬB#d2R=rG 0
"LBb-aR!׳BV;島_RQ\/ ZLn/7fs0Q& AwlAo6GAdw{fDxCm!]x:eߞ@5)mRXCRP>5S]um,F~eYt6v"Xk̋E8zv܏-)"+H%T3aĂMl8GJJZ`yfZ96j9j	dlkfN<rL!+̴E2j+A]%bjfa鱇cNHCjh ,>ϩf}lq5'ϙQd5Y]Fkp1}7\%}k/#ParWEؖe\6+Al˧^"d*	~b!$>! @˟3[`7ϼy`jye(V+;pQabhͤ#aY[Y>>#[$Jg@6~y-n-4Nk!kGHdL*l?BzT w
_-FAĔb^VLcomh{luuJV|[ww73f()su+{v<]FHMvݠ^XnJew^]"WA\IO"sx>=~<ٗ⮌a㱵_euz:n9gק\җa2l*/r|]$2C'O5ru3^&]_,s7<|׸r'Xy_~׹Y<wq[RAΈLPq
/7;Q[O 4.**hVڅB;0V _N$ݬh7<֝D:7d>Iު8Le*,Y@!{ҧnnѵ{7o)$uA V|iTC-et1mmʢmMr=p?r"ߦ^l[ÅOְ Ov?~WRpv}M=uzv/+ngr	Og%_ ?dx[k[<kXf%o [kx[}V|4 x;+B|C"],20N.cq|e63L6v|N&@x. 0=x[!\|C8>霎L <|@[x[!~\x8F?LB
9IEE
@0Xjs!f̼cԒҢ<ĜT[[bԢTFN8
(1cs##Ŏ UVNx[.~@|C%HvfwjQ^jk^Fb^rwfcv !%xPMJ1Fr.t#<ZPTFR*:':^3Bx
Y(jn|2=d*w*jݪg1w8q1
>0	ӓ8}PHR(P[d])T7DVǝeJYO$/I;!ɩv'(Si6X&+ֺnZԲirl^'SY[nGfbebRta_/0(#`	.>X秠lMx;.|\x8F @x;.,!5(;13>?8ރK9%5-3/UCWɏ]> =xkP:I<)] ̌w 0 1x51O0"1tF̖X q(M^{ѵIqe?3bbG~swy(6Lجx-rрI$قUGn·zPlHLڥpô;!	4&3`U+{n *i 9CXnYSv؛իlVC=iJ>oϸjxҙd#CGEv
?ɃG	B4j܌|͆'9ǓӢ* {}x3 3_}Z\K-/掩QM$a=G8`J. G!bAx8qB	Rd07٥ H
kx /ĳv#x8qB	=(ٚ=[Y.]^ ?
Ax8qBUOv3u[  xkx8qBǛqTpo2ш) cx8qB[,s
h}wv: 
?x8qBH3{Qܧ'lrȨ Xix8qBȁ^g}WVr2
 w,x8qBHF׳br&r 
3x~ VC7}CHAŷ}+US;]Q*-y,/I㔦xV[$8--6({ pZّHVhXI!CV|6)x PgkٷpܼXx~ &ICdoBUM3CH@{vTb%H4ڑ*s~ڧƻ[*_ёܯUb{64O"ң`N	 {
M7֮8$2$~8ZMxŴim)ߵ;=Yzkx J+Z..xŴiHGT{Ӊ<8oj( (xŴiBȡNr.h{W(GJv*xŴiI-'nb]4uĻ ɤ8*xŴiZ}B$>=3;;HN6gdF= UxL KR#;aPVYCD\ȇK=	,2ិV~N%,xŴi
	XIѲ' xŴiIٛDئK~9\Hwc<l?xf >U`K/^JCH2y?V B3YUF!_V	qz{sxz_
;~`45hM$04xŴiK;v3y~J 	]x3 10$47	B*`EO6&H4($響 s`xŴiBa*kL1s:ih?:ql T+x; ɔcIHNpZFCϻW4cؑa1DIx8 	b(׀ќcM(C26Tw'齻((rDG%x6 zǾHJ[L!Uⴑ*~"kUY)jӼH ]Bx6 ^x$VumhtXxzyt@kڠS:%ά60>%o{SNPx to1pΩȴWOAzx6 +24Um\@k(Csk$ Y kP>a4x! K)$Coӑ@~ux6 Gж)Ǒ4K~@kF? 00MmV9x! &_ie՗㛥PVP鑑@ix6 "=7݋a@k.r)BǀSExϸqj\VQx)p8;  
f	xM %,M)7x$h/+/K|4CH%88g'ʾ@N{X2"VrlC鉊M)%"ex &څ[8 xM %,M)7x$h/+/K|4CH%88g'ʾ@N{Xޕ}!*9pe0T1/!ucxŴqBf"{:PS_ݵ ̓<xN >U`K/^JCUF!_V	qz{sxz_
;~`45hM$V:"]xŴiBJDRnsnK9r xsx a2gɀ+0"rpn4x &lgưo .txŴi睻\w}ww_[wBQ x]mOHίh|a^nnN:f	~O[KB&YNꝭja4m+;!z*۬+:>	gY1K9Fn'ǉl6'ӗP0cCŵ0eYчsx2/`p#/Q2.Teꢹ/DcuF\ihTq0h]4t'	ccF^R0fU,Q^p͒pܘӫ^eNLa`OU'Gձm>nv{ժ6ڶf՚Cm7Unn3aj(L:8nN"^C2F"&5}"^⣉(hgccgKp*uq5򨓃[e.Y<5#0Ƭx &q}o;isy9qzlcz~'oR` ClHB/GD]Cb049m<K\
7`MTB&KNlc艬H+ЛÞD#]tP=zEAp4=!9[޽SnUu/P̜b`"xlžws{)7*I('`5sIʇ5q?VjE
~kG'9GrItbcA"(.go U4`j>.={l|6GnYBm)VT̃7HwS(#)`JLr'9<aj&,GnYҿ9WSl$D~?
 /$BRmBאR ARnI5VA} !a.MM׊Zoө,ǹc+4ˁ4SzP cZV<vn}ַֻΩh߱_vrc%R&X8,bU	JV8RÕO27:fJ6gᇗlkB̙qRU5IbfIF-aS&ʔ+$Z{ M$$%ݓޟxq*11Y
kB⑗mьzyO'@2Q
8IlSAZ)v~Yp.N%Dj6+Z`'⹗(a"hOʆFiЊ?\!\L79_@`$X/&،z-FQh[4>i.~VX^S蘰߽H-ׂtd׭njA7ݣ]T"|	0S@*=zLlҖl"ynvkv[@ɵLt.	_eĳY]蔵nZ(`5eJ]t':Z9h䧶؍o#Wb=;+<K^DHyziص{$Wy;ꑓ1mr5l2\Yv5{j6[f>|!PBnl <A^6ju9\#CF#$ K(QGb]=}m8ߛnD}$qYB	ɇz=GViYb9f=F=čwfd❅ER% j.aƊpz	3ǔ0rK1@KQ}0S+aƓC*ˀyub]iYË7_>'*2aqF|s?&"<t٘	̅fdm6{FAMsdF-xz`[ED{o?z>cP&)"bH
zhxF/ $CMU)68abWDpF[Hvo;U.J<Owb659|$PO6A؃pE-WʨNaة|(Ke@gDJGx{-Ar;߇ܸ(M\.iy}Sl"w̩>iV
O/tMsUQ]{kt>R]]OM$d4|}.M>y:F\7<7WH632
ICXWNk05a&gfJj|Pģrd	2fJ2PՋ9Q^7 IOe|A'%) k4yј2n		22&>9V(Hm <2O)i!.qlpQgb)D C(z3_Sh9!weqܱi\$JKxQ|M͜0i-`?H^ч2=@+4d0VL6L>TgBy,$[ٌCC.c_*tA P!?88PO?;N-b}Pqq;Q,RGn
%OOqrUg+;4nHb{5IrUkZ<ZA9-]xnLj/|**]/~2GeC4d_0k޻IC,p:3)q$u1EqdPHC)71Cލ63 bE<u9vd}1+AI znE
nZ!Do=Tuà\/ ,h*Cac:&nsd0LU崻8X"
\X{"^7˱%5RA2{Eta	KJa"[63p^s=S2d
M̪c/xNŨ*[]I/T7pZU-ϕ3e,5riK8[tKfhdiK."PyPUG[>3YElp}pc4hGz7n2z8%rQ> r#M%A9e\9a
+x?q/&JΣh5jp~:PMwQy3ڨ!TO\i<=jYՔ;jZ&WZNUP!EIv*n(?D`;w,	@:LM1=3MHW-NH@6:~WOio	B
i[ˁу2z DovppۧC}qbb3dC@*ߦOOizaAOӼ
e^? S+9ȇBG>Wƀ6d%7u/c+i#MblRWJC!0(=LS1$fVSnT) R؅A)A(vjyC)\ax0Cz
ef'1OQFtÂ7Z1b
l(ϧ,i.pc\wjS3SwKx54vk:ĝ6.^C]#u|H>+f/U QS>[-bvdaa77NoBX!@OJ6EWT5ƹ&jۼEP>56<wD2ˮX}cpJS qRU9e8*Ue jȐ-O²{䁄]4*×GLY|h,eDtQ"eJ3 @ӹHp%RAkɕʸT ZDnwxB*!T	p7&A}m1g"	|輈s),w8?2Pϯ:^l[~ĉrS53#noge,eGCK6X{F(y!sj}M.-E)!HЯ~޲1BzVR)q2;>Jc9J,<!W{3Dt*o)ɘ_˲r]
x nBB~R ]DGh K|"-N8wa"
	Y.VEe@ PTjA_q\/3he~3ĬN#svl!%"w7q׍<ZdUutŭM#lJU۔>u/2H"XmUH;[=st8-ַ)	{*玲r2H^$U7[5oh3,Q1j~bj	]@-k獎P}~0౴M~x8F'):%\YǷ^WX㑗p*.,sGSy{?=AiM7pQ-hrc^m˭]9	2:6$nbKmKo^bnO^i:uj5f˘RzImëp2^ɚ?2kk \"8@y*^<$7֪zױZv͚ISpG"i<=bHM+:OC;`n/۸66<('?a;[wNPgy%x_HSQǹ۔0Ґ8tAljsy{SQXnANP A	=(K=q5͉Fy{NjyViȌGH:-)-H01<y$"lHj^$0/n!ŅiXò
D1z>m¬Ŋ
È+kp+Y0_Gogq7'5Ia.2SԞmDߴ*xQ`\jFh;;b
772B:εf]Jt3rlJϒYmȬ%/ktB^wT0Е=@dqQ$7g&0L\~`_0'@X_ZlwB~7K1Z9YV+|%6ʏvGa6/Y[{曨hh@gPH</~UID#7Ew4iutY"u-TN8>g8Z)EIAl>c6j&7중?Q1C{A̹5ad7VAa>TCYVxsT:;%պ&%) V" WOթ Ӥid=u`:ܝqɠgtI>kƱ5u0rM.2oW=``r?`mIWq(bNA;Qw5'uOXw9xqidɿ;tSR3S2&)(M^୰yD ;^%r-6/W΁_f}KK֒ԼͅYsJS'E<GwQ(Hr`HPqeqIjBjQQ~B~riQ䇢]'kƨ %
٩
)Ee@-E'}`\I3du5hFnH׈ ?Gx_PZC# 02PUL[RP_!$3?O!-13'5~>ޮ.pz]TYMa CC<F#52/D!(WXBcB#f`|sJ+8IAavɻRGm<'MųuiĲ䆪}eyoТ8yWM(Gcv9ym[2ofn>W\Ʀh)&hKYM_8ۧ1ΒQuòc	&{:soc3crWFM'xaJPiF5}6`-@[3yy%
ũE'zmҌ Abvxxq?s'LfTPy6oe2&[m^٬o2yCWJ ԭJxq>S&̘|qrH 9\Ԣ"ҢEWN˱iF5}6`N
vgRKJS<s'O,6iFGI6<xXKOW`R G^8`hJp+<,PT3x3WH*EGʢJ]dWMW"U&uU% =z^^)4Rzay{9wT~agأ\eC춁5bPfH/`AJ/!lMAÞ]R)J:*h$by_yWDdETj`Zo0sijt0Q$uuJ2F
\μs\?[ĹR@m'˃E+fOm@1ꥻZOxz	^蓲h1ĸ).%tDz<
t_$^tvdٶ OI,]SE.<g`cWD@: 0fonAYf&0	N^,|G-LSpm/iӟTjK.N,*.FY/kމTX2#C4 \SӰ:/hʘT[fB<-dћei	CT,;}YKF}6<	kqt]n'kB 77GʷAˊ"dUt5j@
NYK- I49;ZtF| jY 20יd覐C|i2*/bdԊ_Y[^ⷹD#аuK;<Ҩ 	y`$Ȫ`p$yaK,A>=;{GTZƮBᗶڪ8y)p<q|)j1ɋ(I	tD?qQ/-`C4I(+ݜI	XQT&8Z'&u[C'['ꕢ96KZNSf"H,=N2^tf+{DTCuZ33pS09~Ĳ!NhTP7Y8pMn B6 @/尵>:(=~.Kpqb;IB{Գձ)@v|!'ðepIHJԶumiD!n$Cv$(MEl8w-/|\<,Yljw]$R@/cBRWBD"#ȳ7.3rh!՜&&ey ƙG{jd~KGgc2DM4]U9X^Nl^G5!3@gIH#GI6446s`C%,|Vzʸ_	++u4;DMo=U3#&1h%E2>Zl}W:l/t,H
o^GOTS'NIB4l./dl3Z4JĬ߮(	'n[M_+n'ī0fs~$eR*dM%-9Q'W{3%pyM3CߙZ3$| djŅV28Zн)ɻEZߵm6T4{5Թ2^f55Ǳe_2q2_(a:Δ-eN2vZE?y>thgSr"yujc]9GmhI]]R?GA
za<Vߟs4C̀)Kx;I\&2N4{5yaBqfT;27	nb޼Q	dL?JNf	uΰ
W*)'MfL1o:n2Md-'jf6!d?EqsuL+gܬiL@!GD1M~l9!ӑ4	v_X4'u%?ȉ/nf|F1wsb6`K77V!)6Ihڵ8C60М7[1Ls6ơdfN瘜o'3ٴ{ xL| xXoEWZm:}кq8nbhc;!Pzw/]5j
!$#D	.Hq 	.7}y8!~73_Jm\ѕf`MV*Y:ҫXJ˨j[SwETE@a$)l&XC^Wq+WpU%?eV@vQqLcxGx8FK+0W6W3vv	D=iMc6"ΨUXa;RIq	er_z=ϥV
\&qKɷ~ρPćrxUa͒mQA9[`^2b˥y0_qd
FiE#`!Ğ^vL`x	JD->'Ul7$r5/Nc2[ mӤt]6Fl*[@4%`jXhGq*2&m'cd*5]L/ɺ=Y)RtZX^YHX^ǗwۼdU!24=H.{3A@<U<MoSQ2ѾWQ(;S!yW"%2,lEi	X_g @]55_9DBfzEMM	|1dUq0b;Lґ5oj5cl8Eaϛ,C[%Ap'GoiضNU<6laȝ@nSw1Di<*NdȽRp?i6APȲ*\a{vuC):qGtnvшqd7\Bu&2/#O{ÚU{ZW3]}"C8QF(YCVK4g8]<<|%hPמ!m҉rܜþ9lPx<'&Q	t=5	B]#y)`I%`mԨ5ml*JN`aS%IạD&F`AI5`OygaiyWvPfoΠSЭ3uT
9KpBQkJ"ᕻ{blY&};\䡉<FPt`FI3S{KA:Ttm-꬝HN)~'׻5\RtL*7OU(C=0bPId]EzWv3Ys9]Ca1e	S6(m	vW gNAWrP5LË"x-k_cFP|oss޾H:6jo$Ih@lbr7:7@u7ۆOwx5_~Ք2bZXݨ*vi]Sy/h?EP'5(^cwGϸՍ$˦ۮuu]3foumo V灺+Puh)v(mo*N^VGKmOQq=(\y#=|F47	e%"x;4I\9M&˴Θ 59KimnɒU6{K2N^У<b,'nޣ¸&fvyﷺlofGJv@ m1G;Ip Lpuܫ'?T6O4_%'Ę{s:@e|Vd~w8*aaWfhNtiώgr ^$,ڼ1/ɬ%U!&+<hؒ
uaN6\ͽMA`
PLP%DOY)3 -ix;4-	2&e'L~8y|.- RK)MIUP(.ևK2RAb%zJYN,:cr| /ͷ&|40CJa672N/6Bb
,HUlVP4y.'d>T*`fUhn3eR-TY;Ev09f]NFĜԼͻ3J()dV*$&'+$l2'	ғ{K&M֌⛔%Pf$O2AiM )ڔ ɶmқ[?1b[ٺn
3C10S&OԔ8d>c tx;vq-Y9FU&Y W3lx;vqeqr )+x;vq-9U&Y LIx;vE{6`d|Iw\9MNJӷw=|>;O y637L^+#\~-͓&M|A><K):(X'j2~H&|ܼK5WP9`].	\`ςECfK&S/Bvpz;:tR4d]CͲvLg803b(|ep9|N(P:gdI@kC&0n~_¸33~%=Y+Xxڐ<_>Mu u\x;vUL?nNe8ŚW;$(U;dAfͪ7`d|Iw\9&/~2y&>1ͳX
&_4*62/g<Ág~_h`&` إHl_y!f.&D7nN64@V~qs}99'/pxef\'lf©jfĜԼɉ0NBYbNiڃ=%'x>G1g9́/"NmKVLb2qsg?fʀ~rV&F`%C
&8mɸ Izhxv-9E&, LOxvq-9', Vp/xxqEv\
Z
P0nM(bSM4W5,H
٩Qtl.A3aH5yU7[ i5R-VM6̞,eM7SaF},
6km"FT6ed~-B22<RTNNjB~^NBRBqeqIjBbAANfrbIf~^f	7ZT✑7Pj9F`:&9'g&^ysVB,5Yp Ntyb
2)c97[r{OJh儻Lh̝҆fL,7 rc+rxxv\
Z
P0nM(bSM4W5,H
٩Qtl.A3aH5yU7[ i5R-VM6̞,eM7SaF},
6km"FT6ed~-LZT✑7Pj9O0Ƕ}Nk'əlɆ7j􁕐7zM`Cܼ0%~7OLQa|^&e,f`vb[nooQimp	]ѓSЌ`ܝ ͊aExx[sXRKJT@IMɅv\
Z
p
y
EEE
)
%Eũ72}F6BLB#&R{*g)4K4eF8o0bjfPBvjBjEfqI4װBRZ_тMݒd@SAn:X!$#X1(
rrRSr**+KRs
r2K27KYSu6(0bB
I$ˉzd6P4!XM?9*wr{آ͗)	Z''wg 'yAVxxi,9E
%

ũ)
%
ɩqP`=.U'a+PZRZ'Jj2fN.U*T+(VHSH-*/RHOIUWTYy#/;'odsڬO-Ĥ)4b!rB#NSff(Ff?;R!"У^2IeJ>05@`tD%jdb&lkNaL%X<;t2[oBfݰJ
ɿ'GNn[r>%1,7 Pdvxx[{qEXS+KR3K&or9 Q9	ex{v.fCWRR3Tb JTK-)/KWH)-J,)+I-JKLNUHNI-*JMQ(WHO-j
8g$f*$W%geRSO~-☗T> D7]x;!P_KKAK!-3',Q,K-*NQN,./JU,Js)lgz d	Fxk!ir R}Zf^jBIFBh^fYjQqbwjeqI~Qwfcgg%甦*(efCyy%@ ʂT%Z̤ĢJ ZZZR__TWW?9IiB>h `6x)vCf懌4'`(.Kɞ켹& (Y3x;#vC3~^bIfYj|Fivq|IeA^,Z 
,x{(vCJjQnfqqf~B~F~^9QurW QwxVoEWRch&i胆PiIF6jҞݱ=zg5NبJp qFE¡p.wn@BB=#@|3x~I|r*C	RG"ʦeLats\%l|1[&uO@(yJ#A|T	zxwYE&AUAl3^dLC
,
vqTu8ZNզn	~w#70gif Uˇ:nw
lj,#FtvLSe$W/e	XebG@6E9- O F2ɴtrCQ
el@_G-Ӑ594,WEGIPn2N'CۡԽ(=ҢkCdWP3Pv
[YPtEYuSg41azVaKE)g[o9֦J&>*u~ǷzQ	sP-UObOZ9a\+(iSRKvmja}X
0PfYUk#32&-Y{cV'/#q	`[>\'VWmA ΠꋥltG̝?qgQ5+(?لOD2R_.S[Y=_kOǥ{mX,.RD=61nMs̛)sGcƆ;jTz]XL+N :Iwп iRkRQ|h1=F@0	#E <˧#Fk+m*ÓVW;MַW#Վ&+t:Vds|W l3mfJbrHi/Z31؝誀f+i 9ze?sbY/>K57!åG
POcj=δhg:&*`cvBɷcS=d?ژ73l~Ȣ}W	4mbeea$/R."u>.vD e%T"cp5ħJFdjd[aYU6"R!_{͎$w.:57:U}LY9(.ӻuK~ed$^MV"QwWX=xTAKTQcLjLG-B@fhݝ4;9mU[mڕ=-hhQۂZ
7+-|}sλi6zy7ͷdK&5FK{m1G|x[)oeLz$iq%;,LB88X(%U%U*E!+QJyJqBC}\۹
5(#/*Hzrk6C='h!,OL󧶷,}uuZiT5陲HOeP*iP9R0TJI_Ca7%H74}ĳ5hQ2xY=|MKC,|ٷ}wLгF;MwJKSXA!]eoGd>.2پe/bD=!5{ W.s.}8ܑ	1FDj椥F)vdd\80E0m!싁Wӓt+=Zl-˵[u[1QyVn0q	`tx[7}q⍛}d1NwTHKIRR ̴J̼Ԋɉf?OdS+R3sRS&36^1U!)??gR 9&rxۛޜ0,b'slPbK(I-KQH.,(WHKK j3فd1ɋDJ'/S#jQ`hd F

i
%
y
E%
y)9

y%
ŉ
% e\
Z
 PPZ_Z2ybkp;L{}?&t\tvAKrϗ 9'Ƚy)ԤءnV4~bn ;jvxkbqgrFbNNj^zf?ҥũ)
iE
٩
ɩ
y%E9
+:eofx'Oairfvf.+m&g|+zKL Wjm~pYrL$7̕be,T4iDLNpwc=Q'᎚o.9v:; WSx/6'?|t:; #xoŁLn(s!C@3S2&_PTxN gx?s'gŪ__ g:xin'xm RYxOs'LfTPy6oe2&[m^٬o2yC bl+xis'LfTPyznQbߨ9_ĎiϹޓ}[aV"fI&:M6Ve]?YߒmrP*!ff}K^	N۵yJ&#X&f8V(Ci3w,3δ#P{8ٵ.lX]fdDg'Xಛy@6@Nޝ!7y~g.޼'[m0*`_b!|fZ5+ٓ'pL6|}#HV Kq5x2 .Coreh Em$+ r s+w}x[ʸqDֹpTKp9JuLn 
'x #Yizہ"1g1mϞ_#xXmoH)aJ"@ /}S]4lӗNb/c~k0yyfv/OO%Il:iw..',Ndh&E(;}8!qH9-%)ig3i48+:{VX&9D@Qt2}h*$4b$(,)MS9V:IƂ=7R6ٴ"τHߴZŢIf§0Z}S7,8GOfpw8<^IU@5"H8)H$gdD,O28[i[q70q$3=k#hYi`;֭陶zYi6b>\ƀDL(칔n$, 9R&)1(H)L6CJ9Dg;)IT{"$OaM2G}J1gtC|g!jPE^DAa4O((ڏtc,bbX'ITay֜XS>1Q[SڔP7Fl	_bBsɤl,M0+mMKn_1ii/wh,Jq!wY,ߊAwzB3>q&Җ;_3}{YHX=Cݖ~C
kSѕMwM
OǷ2(LFpnQT#]7\WzR(NS%m; }CX2W^w99vX8-}1S?wdp88:vT?9֢W|8xрƻ]Rd5p-8&=@qp*rj6@ufEFQ%3$b!9EZ,;hs][L>|sY#&vz3{="9NtyF8đtpp7OIؼ;n?^I<e,&Asy܋ƈ:IudШ?[Vh  7&㎁{<40hW9:j5@;HJg4W}^"lYVDZVO
GSSkJ:ayr:rd;aϕy,w}$UW+֩GG=luJk,aȽg%Jc.=<x+zdCWr#oiUz:VXAp~u2$B>a$W#:ֿШmgZZWR@;.k}+o-s"hHZkIi8WULu2cl$ӦrDvc:W6ͷxQ^?TgFfzOi::ekkJxΑ*q%se/jJJ)IuӭܬCP.wEr
Cv7+	NɚEm-qꦈ?WLPy*H	|x]e#Vh]C]C{:7fegtt47\0	&o	& <?@
L@ Q||S_h	B[`P,`"P<I' w )$	xۮIe#VN]C]I\bY>2skEb7qfA| H3@!1Dhs#2S	TY1_P$d
U&
Rf3*s 	Ca bx&yxۮңaѳ	OK	./JU,I}>يOu?[|B;n~ַiM15C=Yb{M4y׶g4lb^h>/dWɧ&s d|Gg	xQWڰ"(,3%X1X(5'$5E$_73/% (U'$U!7?%5G!3/-(5/9Uo撌TĒb|@~zۙ[y+CluxQy^  (~(x8YY_Kk">3D5.j9@dF971Ld3)iĔ̼TD5Hl&[9w4!ʋ3S,QHIU(.I,)- )7gk+cV@6y[!\\@ќҔT⒔̼;`ZJjB||rANi1sV)(9+)Ts)dqq*{;z;8ͩĢ:Ey ĥ09Mt27+W5dVɶ2\\


@NNe`䚼tGvɯYt[>MLv|]
q$@pMũE\"jMp@w/J,Ș|O@G@d3w 	/'L[rO eG5 C%"Q|@>}0~O?7נxO0GO[U>x\[@t@W-4Tj-Bj0# OFƋlmx\nC"^f6^  w#dx; %[|acm=1p"9aV'`	)I

?0x.ҭ;7YLG٢.}l |x٠"ߵH3˵}wvܙyg%yN ճ)x٠"nfz֦3E%M+*6V3md9	 RWx! 
k`MN~B{]
x٠"r&luюhIro3X65w%yN 
5x٠">a-<u9Mo[Ek%yN ףcx; %呆'n6)=LO 9X6b[{JbFi5٣]qcH1x٠"tbzmg>pIh%yN _x٠"rk<@TK͖,9;_x٠"ZrWK~׳/lr m;x٠"jWQiq-]|8K7rmd9	 4ix٠"Ru-w8ʇglr ztx٠"qᾞEC论ْ<' Ex٠"2cMu}Ɏ܏bdْ<' ׃Bx٠".¿]iߘuz͖,9%px0UD4n̟\V^ټ5 hx0Uɒ.Ɏj쌙BcRd fx0UC?֦LU/,o楬 *Dx0Uw;ϵ]b*?ٜ?t5ke楬 m\x0UdrVdM`Yk}BKY9 	x٠"V3tFs̟xfK n.xR si`H>_$Ǳ\	C׀	+A*
cBڍ/<7q (`x9 >r<v/.0>\	1Y@׮
l'x%b{9:7]_N{f lUxS dȾf3V?5ZnUj) sHp1b 7r[7߿wޓIc(cWx-)zѝܹEF6\}of	L  5x%2æWOhԼṮyf lxS dȾf3V?5ZnUj) sHp1b 7r[7߿wޓIc(c x Euqe;zU`+YcvcF
|YO#`F;AiX)"|4>Y}r#]\D0CZoeӣUnDb
p_XJzZ:Oq'Ԫeի1גSix; U)⦽i*w=!"DnmMCԽ	WZg:?ͷx; JX[PpD+Y`<HlZrH(9]xD]xn JX[PpD+Y`<HlZrH(9]C׀	+A*
mYcLk$^<3aZx EJX[PpD+%	NNg=T꼓YO(}5i|3Z)Y`<HlZrH(9]C׀	+A*
mYcLk$^<"
$Z1KP,ѓ1;&T#x!100644 aio.h h(Lh^Fk,\!X=Fs4VWd<R8x-Y 100644 malloc.h ͕q^;uo4t>Fv=j>K׼L0Y34V[kp|	|P}}
Dc
~pVbtڢplC3ĝa+B63->"@
nyqw:x%RH"R</<rf Ӓahx  nEk*HLI4]x-+wdoff	L x
x%\ɏ/O:e3GY\[xS E%	NNg=T꼓YO(}5i|3Za"
$Z1KP,ѓ1Ϯ$	x-tF}K~fs
 bqx{$Hz;}?!Y5?9pѬ 
@
.x U!100644 aio.h YےOjOMiOn!N||cD2B?%Hեe\{)'qwCYcvcF
|3Eg#uX n2J]9wJV?=,:ߍU5
bKKhfx r2execinfo.h S|| k+.mI^*%1a~FZݓ=
,.hѤvHKئ<
Uj) sHp1+Wse#!9ty3>"Mx x`,lwRXmYcvcF
|YO#`F;AiXHmYcLk$^<Oq'Ԫeի1m>x(2#TsGfjoeUTrǸyc (!Dx! 9fƟTPhǆc!?txٰG{ɽd|uM'c< 6x0Uv~lڻÅy)k2 G.
x\m۸_A($wa\qEv!XDLdI%{NI-4E3ÙI36w.W^W/^DnP<R@%z/Y˿AW"ۘ.0>O{@	9&	CB
؃t%7aF!z5}Ʋ.ڠ5ޡ0h	@P4 <y$ȋq@qT"-]CDs71|Z!B_g%Du+c[AґrsV"Àpφ2|pxxVx"hw˨h!@)7:sȹCw%`v}{ՇW7׿ܡͻtu;ͻKDU<LFRF}GHɀEc`\r-GB	[S.<P6h
#&Ǝ74]/
tz<9]ԹuVwC1UYعԏYٲ3geOAX}<lI,ڈO9ʢ({w3 `)Y}h([`$ϵ͞d<K;.j ETf$̗!O)եX9C`"k9ŋ7	t#
0Wf!^+>f[NΪOb^ie{D`_^@~|!v[zY0-%;)=u x\rJdr1(̬g~	ϙ'%K4s!X@چwQ=J粗М=%R
輿y"^O$J?+D<zfgƞcJNx#=VBmY2@iSiW	 m :
r9؏a@1qp{zE`C\:@;FP*fgJ#7揽[J$%{SʕC)_ebOS͊Zuhyr?FO.3zU:V-јU5n)&tSm̩Bj!aȩRj'QͩRj!Uϩ6B9>l՜ZH[Jmc0gP-YB2Mq,HC-׉(nNZP*yXWޙr!
8N#Hm2&И ۄCۄcPSrl΍JSMY̧_/FMFJYU8e!a TUvUZYHxe!U'PY
"
h;A050w	hV9}O/5fu6CUtH!Q|s@J\
SQ^;x*Ż+Y\Jmm ntxtۆ z0eCu̼K-e\.7ʼJ]Z^$h#^CЃulkYwgZ}1y՘Q0%NSm5#NGdȓh\hEO?q%i3
5CysmByh (/s'][NђEx
AhԴiK'6c;E3/+Jw br.]dF^]ͩPW-A6<4BKu5rh1Af܄4)p>94{uJIH+)wRP'&K(֖mK<c(+HB02*ۚܨz	ǹH
{oX8`xrKzenbWFzy~
4Uh,EB?o&=%uFϕf`!!
P$*+BXWH=lU5LޒCtpe1Y5A;UA<kUPHVx[to<F@~@bgqz/	ZRA+B-w-y@ӷ!p#><K}hC<	f#Z!bHtA]:
1%HaE0%v'cr!#/zw@CPHX!v
l#`|
`v1£q0vUfIk
?~e#L+6XfA36h}f^/ۊ39rtU-[\ce5{l짏--ApSu0=w$95koۍ%ԻMt?zǇ(c$ 8޻]n8Kkey]4_]a!	TĽӗ/
.K|-/\_0bd"ouꒊ;
t!ogtS,&\Jus"F/@L~5m\D_J1;E}Һ ao5%d$
<'AQӋPVޏ=/Qĕt}zPTf:	W=fr$=R:iI)0Ҡ1IKU_t9.͖d{B}ْo6E7WRh#aӧ`	A!B3a,kE𤢜a"QfF=uj:9ӱ %K#;nG V40*iF5aռ@S~ׂz2e* uq@{rq-5Ц
Xh8SMSwVer+
uj9dRrN}r&w`f=(Ѷ%xC
YTk_(VU!;OO
O5r6KQ5ړ/mfgw8a:!K]T9u[EmŢgtڤlwʜlTxlvi3QQY}{llT9H2#wLV]ӓ_Ρo:{˖r'_),L~Qhs_4nx{q|ʛ(nֲ`lo"yF! *xc w&"

!cГ%		*linux-aarch64") ]"ٓ%cFh}!۳x">-b jqx;q,糈Nfbͽ\,%';ߜ\΢S;Y[~q+ iY2x;D,糈Nfbɽ\ғ[&IO>()3;dnD&hL^x ֞	-b` D/B,d^gaZ V!58UZ'UaaofR*-;Ln{m A7_ A42Ԙ6oNZĸRd3)j

JJ

`Fɺ2&ɈUi RX;YARwr+N6dK,zj+vR6/ krx[0TX'lzyr@JbQyfnbQB6NST$yg =*9x[0qJn?k CxP N
O7<#f9&p -0	h !'3vx8 N
Ob -0	h !'2Gx[Ǹd㆛LI9)eEřy7gbaL)I,JO-ǧd)*(dg%甦g+q)NIN,(LN,A*Yw2ʓ_	i{aaܓYYJ2'oA2#iAJbIj
̄v2iURRP(N.,(M^AP([ ԡd&%$dh   @,VTc|&	`+!v :w˙bl3: t[x[xjC##FlIO~"6'䉂2[8&+:.ɒB;&cӒ<T'rio6~x-06dMᙬ.1ف_gr>;r~OAEiO> *7ـjr"{9tbzE9+,Lb7')0N0 KI(N^+5ysa^,_3YH|}͒F`n& !n&B Mx[2$/8242Klmr2J+&pJN>#39Ul^.4'b-7*ns9&s>><yx8XL_`r;)O=yd^ɜ"8'ONDh1sE&r Ŵ&S|w4@WHO^ˏ~%KU''pL烰A.ly |&:¯3BHj@il$8$1fyU,QZ % (dټIH y0JxKoQ30/8
4`&.]65۩ GFsmdqibpk+t)ϖz{{x4ߜˇ3gҷtXj=,#ł<U޾S,S1V=E!)Աi6"dfbvF2ɰK{IudyN'Ep71?+w"fzw
uwEQ`l~Qxň[xDENq	w-↱8Ng,zxmW̘	KLÆ؀|n(Ft;.,sG<9GKvYx1KE1Rsn)YMAk(=Kt|}1'Htwg$%IswHFXʢ5nFBI))p]dYq%O+rKIłna[L?2'_#LFQi -H%AFh~9bNYIX@>m	f>-⬝qXwkQji
oj YB*RrQnjVც]LxoQ30<3ގë@IPw4Rld ZHhbbm5c\hܹq?lys;{<OlߜG#g7tTnl;&~Yl,d7TVV{JuZN]=-<-5Uk+ˍBd)ٮB*o&O6&ټ.X<d=T(.8YU598.S'aeB93vNVȨ=DwTUɆWe ΋GI4&Tp X"d~7kg\F'3e6(!w;6WG]
ܑ!uXx1KOcƺ54VP,rNWїyKTy{H"\<7T	q&@gq!$&)BdUq'Ϥ+JSյL'M$l)Gĥ73Lu,kzP_tGzm5|AlHyH]І|f>-⬕.UvR&+>nMuVG햺d()!lGrZom/6hN xSMOAζۏn62]RI8o(7Sk)KvƏċ&&潙x
x`Eo^HpfBC̼>;ÿ.|b,Bi5xy`r\c5d|ZX]_v#D7sh =lFG2BB36?Mh' uY0yS	9N<:Q᧷2^b;ۑ/nు%^E#aۆ@aGNA"En4qy/)B uvmC#!Ǆy|"q ouW;`
v`;xm>
*b`hAWqD8i_[;Հy<9q~s-0*ߡI 139*enl-K:nR2r1VBjYNhi&}JI슞X#5FK[ḰX8wiE7NQ{$p2YXB	rJf<V)W21%a; Rvsz+k
<`]I;o	r,۰o`x
_=6 "I8Q^+	xV׌R/K20ANWii·
URKᎬZf>?w|@`xkQt&ǝL&)IGR+\j-;chbAQ7VqsU
z4i:gq/w9;ߝ_>W?HJikYo㽒%<cBVAD[_o47VB;br\ج~)IW]rNk]wizNwG:§Ű%MF.VyJ7*^0eM461|{+C*@^壞1"ڿ"[{ީWj?^+&:ot
)]-'Lp!V
OݙXwBJPK"`g7$;Dq҃`I;?>1FPxftSM64(H'|OBpKCwdb޺&١3]r
qe`8MRVg'Yy๕55ZY[3s"w)2'l˃d_M\nnZoܦЧ)<E#/\`)_80x;RqC#&,v.Ģ88@] gy,x$8|\2@}5ddK^aT|^~T/n4[ؐJLgʧ,\VP7yHhr!䗢&=J*pc(OӀrx&/␘|_G"%XV!ZA
DI!vz)`
o4jdVMjޛY5ՓA^ Bw?x;RqC#&,v.Ģ88@] gy,x$8|\2@}5ddK^aT|^~T/n4[ؐJLgʧ,\VP7yHhr!䗢&=J*0cLzS2js2+*tRt-L͌tLLM''ì!3y:)


JVJ
Nج'tVxU-Tk&jOV̪ll-( QhExǸq WniqN|NfRq|bQDתqs3L@BL8)ks* /;r[xxqt&OP,h3PxW($bjrKss23L&'*Nޫ.T<1vs* exϸdMe꜓*hq'%g(h*DO>`QĬ
 >xøqCW~F~q|^Jv|r~A2sK2rR̼rJt%&_dVP/N.,(PU7
 &ix[8q;lⲓ7d  ]'xVKlU$?c8b'N؞ڎ1mPUq8qԦԮJebA	Z >SW,@C*xoxl;,^~;7ryf7Y}h#n`IN"<Bxڏh`˳AfÁI}7-t`ОDtѨUb]*-rTU]km)U뫩ZCxr/NqEv!^p1,Vr;ggʭ\chTR^^+)^g5fP*q%2$uH<$uFRE\B5F<V1k2#l5qǘV_b@a)nVISlp~x[|n`f<oc~d,7eC;tΫؔrN@|eaHEXGT0=.Ҟ(Dg)*EX$!I	E-Y&b5Sͷ6-a\ܰE1*WF1ZJKlU{ѡ=BK
'aLS
t%بGX8]ZPӑv(wwpwW#?ռW[q9ɾ(g>֧FCEqVc+/dD>?~l25Rlr^oWi쇱!JҦj4*\hny7׼de-Ve5>߿uz.WRw$*rLF)cڇ@~#26Z03(2ڻAp5x`t|ZN1x/~kHGpqun8XrH,p۳F+)th($~fd.x*'oZO	L|.m1D&ϬiY(NYtjxI~fHC\@)b-P0HtD~\=&,ƷCTsNaHP*D NqvDX!}טŠE>yuS;5\H5?'5bmdQyִWo#Ж/0.2,EQH?{Qƺ\7U)M:
2oWN=	ӱ	ewCVcr_xKpMsAqOĽɇg<+&`J:UXד&f]4&8z 1puދ\)0n$!d2E.	ǿIUdTIn~u鵴K=mSyK.-2]p/gU>=|4;V+ٜ..䜰0k]ѕVXџ	od@*>3{lbg%_lmyfp7<}{^4Dx}4UL4GBo5	fºo&뛉*i\\! Jpxi w)toolchains_dir = "//prebuilts/clang/ohos"Ud?
S>\$i8(cH'(x= }
  <$+@*^g  }+;Lx[q
5J%	d$d&yiKuEKSll|YEI8(DC^Vq~dy )8xUMlUg7O8ެ?k;n~qЪ4!\g7jBU犪p)HU #$@*%="zbf7C7ofo{[nv|W|e6!KEYr~ᎳP-\nQ_6ruOӒE}0cMuޱSk$+Օ^+ͭV&4=Z{$敪$eYO_!xlBs^7'xUUqZ]EpNbc޳Qg,$|-܃{jlb4ހ{ʟm6".ֶ**&FsG6ԒuDYj*z;M1ǜ#=!.P7=RO֝V/k?o s:U"NƧnPnf.0g[>gzт-~-X\jҪA/we/wRZ6|;r¬af[<<Ge8ōӝp?OyO=1'3XT̲rc8JQed'#sjYk:C[4V,xq|T_k\i2j%jFCxSE)JJ('rSj7hD	\Azo|MomKi.אLo	I+1z$m~?ʚ#!/)0^e ?D)y=4^	p?CH@0^qֵ]}v{0oMaO~),Չ1=h%Ԃ0bvPs9
1@d` 0#\*D88=AI=	7DDߏ&5-R۝HJ!c]ƇIhiBOĦkTi]byb|k萊{Z.YsXyU9B@?a笈qq0"?NOQ]!7᡹aMOT6Ħ^r4+\}h+Q*s8R1+Ryy7N5O.[ (e|/1TKO'"^4ɯ!K;$:$$$'>X	#M'Vif3qX΄̂LSaxxz*/;)\$웹2tLk;jϊo5}RYb
ePI])k#a3HaύgAi(+%,uT0FrP7kc'kڹS\.+&Cvh/	jeI]&<iߧٗ"|"ct1nN++G9f5]IN>z[2xVqbpJjrNbQj|bQzB5d=f-- 2x;]b&t<(9i\{ e`f x[X9Q ITx8R KJJ]a;N`w&+|ܱ *Fx8R SvJ-w"<ۿ dux dpx8qBH=+ޛ|&P/4sm
 -x8qBE+=;PzCLSA ?x8qB8v[_pvN4 ?gx8qB5*2:_#1݋vx8qBH`Sׇgݸ%sjo 7x8qBgKRzYb⿘ 
}_x8qBBLKrڪy`ܾ>L Wx8qBH)3Q>Ni}*̑ 
L	x\rH?O17Un`V-
v\{)t)W]cܳ+\$$$H%U3=랞W+vƓ|g~OZ?ȘSF茙4ZM݁wZ$r,pB&<ş4:"GϿX!
4X@F̦~2ӝz63X~	_'ٸiЀL(;!o|>ol14(m? sǦA@| pA2!js>]dz9	Q87|d,>FaNg	 yv hpsI%TEm KE;kR*H=R4ׅWD^ߕQPC?y>J l2&T)ͱ0rKGM6b&#cL؝QG)Ъ0h!MYh\޳g{&cߍ<"ޅ3zZ͕swC o
kh`΀h*BhL&_CJL:'M͆/@aRݱ5WL#"(2&9~<lfPF/4:"wT)ɺi&zArL?}2u:.Y=7O?%^$u^	pgr\Mp!E4.vwp#5]jI@fscI"
XxoLi"W0rswi6g?ZǃMB6A$JfodJpBD±b<踞,*Xǈ0`NNc^>#߉Qnf)-w˝^O~%g^`FmQ>!@plNmu  Cx0;W۪sȭzSXo! D."LY
 k&lN5qj,>Ҩ/D04B& 2s26<Fr|txp`n{cL_ҹ~DFc<#-ȊC_<\mgbzkm~@rtC(^=]pLRڒ֫q!`@н	<=9GhR50m2f5]
W`QɃ)A@F'[D2[\j^#9?T"i{.Bh{ kB"(Z26opTG*]qy$%!&!__Lkə3zw6VJ\Rwɜ6NOn-jw,7}Qy
ւ*M5@zA&!/\izAM?%><d"EAE/ޮ:ԵhO*Tg0&!_Ac3v{Uxl/+,H`$VCr[~zV[%	a-h:,8z,P(hk
ɭcs+	s+vO֊yH≿b[T,uoŵ_X~ʗMr:/F1$@ƎǗweVk{Y0. NpAUQ樷{]ҋ3iՉ6dDcWhkkh4k|[G#O4\a.`|J	.6*'`oE@qS9uQHp75yVzJEޥ~ɹ+OjA2|8#._X&ș_j6;{ܮiFJ6C`t8kGcSd#PdXQԃ|t"8>P'n*!3x})nγ/MC7	D9r]8KB"F w@"וh;v.I"LWo2n%⦓0VT̶Qi+[Y9/t9Kʝ7RsS+__|wZuZ:RX(<8آ4l3y&P5q׵F]IREb	Ejڴ!BdMV:fr =x%;8}~ <M+)RT>P@ 0251K"09~	kMLQ#CpQ+k5+"RZdRz(-<uϪ<YumY_]'xRtZ=@ϤwR~UHN+;SY6RsppUI鑩v&%s<Ϯ(\.v՗\Y bʉe~[o-]'zb4Dy=cv<M̹LђJϿz0 UvR~
WC,y[ǺUweU:h:];z۹a[}U= ]TRtR@f?O2S+x*|E*YY!4sN9n'twyAyrd?S0L5.*(4H+O']U樢!#]ڭL`l?`؂}aAl0ĵ2ZI<
J$@	vBm'_*4OUgUwH6[\E8M%DHeyK4'>#Z=˖MCj֫ܓR-)
/w~6Ku>;Z6m9e9*xNd7Lh
g?O8vs]eI'N|s׿	Izx!x1!Z>#p8>,;o[kS=*iX)OcrC0s:s2 ao"|7Fa-,,u$j 3ԃm)n#dgI&yM]+
|&AFEU݃J[Eg 6c :06];:t\vqʲE!)k$&?B%~X*r I1>WMb9s 1fc
?c6:i^E
YNVY
|:ǂR(w:1[u
M>M(O_7`ѳɻX2xYmo۶_A_tuj0liq7D\dQ#);C!E[&qehԶtxIͧG)ib)dɓ}Gޕt8i9xщ+2O$zʈ_>;IENμU*$3$ФTtpER1®cVhsYqfJ!ƚ8J낄jEi7պxl.ffEU xE<cJ~/ *cЉdpO\| JzA%C5	WZq7l `5GG?TrFzÈ\ߍ`@z}uaa ,B	 &Gk2cRa!<1-tD̙D`rzUd|5ιpQ+$ZL(˫a89;I#2,<gQL[Ղx95ay9ő$g;:E#hdM&cI=1ɕ?O	abZRi6k<z陳V)_qmp<KF}0ȏ~z2#xtQ=Ń^ jÅ]Yyӊk9d0hSv4.l/2I5"\?ՐX?6?2MnU.nFLuED;U昛@L1S$,՟ bFˎP2AJ{.rrLYਂJ:cv5xJ/W??C#I+hͣ+;6 /ɹ2tw7>ĕIhg&k8G!tr
ine~]>`	$BPլ۝NH*e$ ;B(fȄf_sug":-D75P9D!ws ? QHxt+h21jI6~6^>3_Ș* ֊}pA2zmW6D~u}Dd[zxR$2d#nWO=Tj0ӰH	jC^	asbNܴè77HAх#W 4MΡgsD F%'Lsjh<!9`(t,U&v ;['bGڥ43QCy2ȲUuj*U6ڕćX8oNb@d*wGXB+rbr *+hqNDl+ʀa:m#oмJ.*GDh5|L2Ff*فo߰{7بrxP7KL1UU,Nbʡe2^?l#mz@8::AG_E
钼<ݺPs޲* O%,	IThusO 4'2g',R}pdFa:;[,oE[q~fBLʮvZŻhnxNh+/O9$	lVAtdƘVz
nf16jUa(ك#'ψs~SQ[[a|0v"KAQ^=,W=kZQsì?~NЊ6yINONۯ5@fT~7HM$N|w0ms)woO?hnV];/AfníF|."K0k	a+BrjAsi_i#qw5DdאNo'BSk'xa2hr6sFdR3oT&O&ΙEԾRů'['t&3euu|]Ní?½_U=Ѻ՗+mz;F;rH:`wilWժR|w~[j{0M%:;x.ȳj~=͛\ig'i+T/֕cU<0@΋`x-rĬtzyΫpo* bzx[X:!Qqa',Wv&Im8 e#x[X: ,5x aiOux߸hu`u.ذrdx[̸qBm~2_sdK -x ⛲CK)wZS7)x[̸qBOX6-5LlpR= cx3 9ib%-j~_ȥM\v&rnqVԫ q2^Dx S9Ce,޽"}~,x %b+uz,"ݖ}x+*'»(@مU:1(I%+ v	xV[kF~$ةˁҴ%6"sCkid/wݕ;Pvw.|3;E.`zpJZFH6ܻ,Ɛ%B?=ʓ6|AcV\G'm69v[$B"S|0s DzR(rnV<o=w)dJvA8ei-~v7MGxmݴ`0OGtRKCϷ 29AM0HgN3荑NENFd3y8 RĚPpҟB0=4zʾY001~a#?`JfN $d3d"#
M-r@X5EAf%-gͤr%p~(.vmkN/3!Ln)XZ}=7Fg1^HjʝC!Q<1Z"J\JBtGK\i:m(*GEfyX-=ռU8*)711TQXۻvl<,CW! 1׹NU+X{Jq/c;
[KttKWrOeBL`8݄&mZ*"1yu9İP|FfFY[Qe^[bU2R
pL\`nFd[O6an3G_a8hWlעӞn]V zY
iIi#W,:0w}*p!^5Di^FKa+\5C>v(HS ֒;RߍaDߡRlM<C4H0}
`p;܅A~?2eG.Xi fǮt춨ӑF1~稶1Y5U<`)1ϸy7LQeWw(S>ZЦ`/cIcE{0.uƬlB"vuBʓ/[YK=*g;ϓRUDWjP2b8߀^>5N	b;Ox5.^#M͖">eeqpL)G@K;gxf<yg 54RmGc'?h]Iqdl~-P|~tU1iDP'0G{\\Dk(Mˡi^'\(܉T"HxZmsڸ_I$)%۩N˔ ޝG45WC6#ƼrL$`>G=rD*a4|0=$R|HqRewe0X u/:ĬOCF)OL<HX"8`?,I $1wY$	" ԏ*=F2㳑$&D$TPѿq*zh|\UF~FI7g8ܛQ.큩>P:.y0(8
b<9D<? FouHO.NBv[~htɭn[nfTj[k6ZZ "z}$0c4`PGw`# <"#cVc0b|>Jӂ_xoHEe8a.c]଺]Op摮mľwO0@US^Dx,&1s_7wHhLPWH_H_Ut#gw#4zsDl4¶F=/8cF8u^Y-OFTu}Ii16
J bNVf{	iXW.1ԮLb(LQ%mW%N?Sjn;[s>=;<`o>#ob	m7ɘxq#?c K+37͂rUKPA>ɨ͌Ofת;lؘ0Jz c&"\`jQpVԛD( -]Nڕc7Nz}(JnLiɮ*N4$e읬VqmoUۺgtm"wm0ܸV[A-iM=%~:00ǹ~'FXu$60:Je١+C@pߨ,M98~i)TX]؀F՛kPX*dA.6rfHQ[
Z>lҦ`D(|AwƠPĊd3V+Z]4San8¥gaSTN9vuy$b`:UH<&8G.fZXuFJL,aDDLt<^ϣVn!5
|#Q{" n8J9(CAh&iHEZG˸~F"9:%N%s$.Bu$\rfD#ER*4+ 3^@e9ijN6Pc0y
pźqIZҨ'GqwN^u9\gpU^nI՟vڥoW]N^%SIWqS1&=ݑܳLBmz:.*3>,|^	ىriK|-uIa~NN(mOrMϕU\#XZ#r	ʠ7A\'tM_^?n/*C<.b3u£o.]ra=gL8sBm`Ŕa IYb=懺o2iƚ5ރPiN W?<.IYҜIPu"" GTW}IKg$x҉vDV9"30Ϝg'6uۉ XUy5DliJ{lH3fYj{lz~~ٜkي;߲]#=ڲ75^2rOm7䞽M^pq8\_ëmVq~~:Y>?{/)pgw1U?	
t,aHН'ZϜdɎ	Yނ+/8縲%U{ڜ4	+5S<6|iRA3/kyS
<SR;40fjœ``!q"F4uǤiқ[7%|{HWZ?LJ9k֚Ռ"6
g~ϊyoټt]Ռ&͒Azm BV	& rOߵmsS؝Z]j K|etZcͶsiULD$g~w*n(6ܼ:+ھn?grcķ<凸(j&@9^:KkQ :6(#Bn;ɂŊhiYU\!@m,⦅_jEOek 1hi^x33;_D&ff9)gЩt }B}(yT2TH=H+ɄQ*/ysYGA zi>NF`<3/_<;QzpRPH/'oتuG?x?	?E|1Gнb*	Oqq ELl%6tڹ0ހӘ{С^RO!LnZhɇ}r0`X&D(*ΕU/J;2d~4[	yC8
"EyR هY:=%!x[&t8D(Fŕߖ0NehrnFɢ,bF\
Z
eEřy
z@=,R/Od"SUD65 V</Wxr"'<ONY(&dsăTx|=\Lq.ab\ǸXh
Osyް0Nn4_}CXY+7YXXtp$Vilj. (+/Q)ͳl.'7_X	e&%H=2U6OP:$*KNUtu'Bjfmn8BR6bMVӳG_VP_(WL\ʩy)i\ ll\x{:tfj (MxZo8H?\9nöw(l~h$[Ò-7n %%M҅әa{>;9:y3>[	бإ;8Z,}	f܃bb_2IbhwB$c_81,hH
&<&c%QJ43SP!140ÂDL73&p>w8	I0̧^鏜Ţ8Z3%~ˤ'S5s(ƧJIP蹒FS$0s6JN2ӰY)"h^ V1۵G7eQoD&=qu޸7Ej1>.U)њ"HAS@zZ<Tir+TTHj}$Hn֚^pg,I*R6b2&JgfΝ!yķR%q$biq[ʹ2y։'L̛1)i(
{jiЅ$SrQaF "LRSj%FQS}mF7bvfM+U(Pt%Bn^}:*ĊM('ty#ZB\[DU:`zB$ĦEW2 ?ҥn|＂2-#(6S]gprp]/3;@.Jľ+ĕds7V2ɋ8]&01ʆ0f@c,*C&Hj (AYs&^
uFLhTd ',-dp0̍;^HzIlTxS	{f.7	һy43r5y .	oc`(tRQ8r{{߭M: L~ps-"}Z:ű̱g
i.g%H$v/^ccC:JiW 55A-Zu>\4 Z.؏i4d )Ђ
a|NV"汓7o/H`Zp(W6NH /·@㣣˅5A^OX,;h"5If0OsLgY3&MriRwd̡ 䡈mCB'&
 E`/ЕN$V b8CG}4;.eMaJ=*\}^C3v9MH@UEiR3+a8L)nvZt;@FW+ VzQv@kt0| <f\2,͠kx"~mϲZo'/x<6kd gFP  cioʷ{
\ǐ̢'pI
$}PgcUg0<la듽$`x3ldi=9]:3clp?T#.~;&8q'I@S~l$6$!k6h=	}%vri=Lb1o_ElDH鴲wK׬©E0O^i=Ϩn0(7͎od~M޷˦<S<.raw& C[TP8#Z
u+KD)XTw;k#)cgv%I#=W7U/!~ 523A{MbR?5X}$63Inl粷.BD{H&\uLi+ܒY`vfLz3	9Yr 3	 ]@RσSĉ>]w|޿gGn/o}-*=U}xKUFf%˧+7mπ̠ bb. &4QF֪˗3I{fɒBAȠ:P?dMUٔ@a~LGFk6hBWSZӉ؍ikacKHbw̉_6!~ǍXss#t|>`e׺GY1+`_wŎu2v"DO}Yᢝ|-A0L%vW'-gԡg$fҟqjisn7q&} یnЏ!K"6l\|=[,ڐ?SmO?EN
zr <E9HrHDy q@Źt{)ю'(ϴM\d^?0CgK*o
$հZc,\Vr{1xBl@TA3F8J臡UxLJDho"rL:W|s?/k)x;w8D(Fŕߖ0Ng1hrs)bF\
Z
eEřy
z@3&AfĔÂ]|Ay<6_ʌPQ&\=?>$@q
|X.Ue泃e&?(ra)ɻq]~):Jzb.S!5jЀ9j]iPZ\P\ZTW S_XdM(H,JU(I)KLN,I=9Q`>nɎ2j~Aε
i`e33sRSŒSyHJ=15(/p̼c$iZO.d%4ʩ@Wq -
lyxwffJ &xYk۶bdz7޶mp8^%+deMB%&**IwHQïkXK3sf8i.
z<X*xM{Ț2+PhAm-wICȒ
PK
ݔǮ*$	t7\\ڥ-mb3 m0	sQM#	¯ZkŸ3EPBW ZZJ?__61X\G~p{sE4 l$E2CW#.,5ŵkK-|DPm&dR	6TE*.%zg(՝;w`8ppN Bw޻Pdqc*t&l<5<wI4`s`h"#
" "fRgU6)̭4a5	Cg)L(Lbf%L0:<<6Nb'1M\HIy@iHD!\Ȃ%	ړ
IIiBZ\BEco0!]шڭvdb;7Mm+J}ee=m,f7\ 3)t񢿵 b)M{rD۠qoKE?Q{||<ühugx%q B:\FƌAeR/%|xFKJ$ ʆhS"3A5d)X(CS`z~;1_1hk};]o:v|o9G>imф
<T.v;iei`Ig`5G&]{u}H锇[3}t0o7كs[Éi̱M@O;}RjXQv3Կs0Q6}JDpqPFV{ngOVh8UʡLvB}xӑF;%f7idGCQǬ TG|rd
CZ_5ۘ\	(my8ӊS$c7y`ڇ7M#<q&|,PfJ;`/Ѳe,Q?W["MJJ^+MibYom[th݁QR'21GSH%ZE5w7YWocz4ElT3Q+UlW_`=d~O#σS;X(b߭رY1aJЅczViWDm.F-2#@J	6.'WϚ\eؼY-S>9;184=<KKt)>pV4Y-8RWǷrssiz4@.(\j_PLEzY}.U~snoK=T""+8[K6r$ࣖ~>ЫQd<I[f87[R&*DK6ؗoawܛ6gQgۗųL޾L'~<ڎ7Ūb+3z2g T
;xZ?/3f/$P_qSmX@}݄͋'|q[}ݬՙ8m}%ݜk\: "wP>`'Gt{˒C}v{f̵n+:lc407vS6ϳ_jMʽ{H7T~oՂhOwl6O͜Zq?U~O&+CofyΒ9qc<0|-յ6aeNE3:?FKx\mo6_Al?4	$\[ZE؁(-1T(YkX$9#zO1q*wsI#r~v#	;`S'S9gY~Ozg	&G=dJs+.Ȍǌǈ-%	24\ΕEH'r
Kkf/$TR\><<PIݝz87{?҆6$c<'+BTD'jLHz1LC%OzD3@3l\ȌOrYY"Xn/ фp o?V.A{c2w88g.{@{\fhћLGpXMYUK.wܥ,K"dق &.ToمNN'TwY/IXUafq6#Ȟx=dyD_Yq|,+AX'<_a|GsBiV{([-kLYr5UH01o ()gqDN
+GĞWؖ<PtOuKBςk t`+#^jRc>h"G'.N+!XpK'@$HdU$78p셠\xu|S N8Bz8PlkF8=[;Lrv͈!AQ1(t9pajd\IP{cJq}Q'I#PavI}JXInu/SDZotQShDl 9zAO-j+q}eVچz^5BZG$fp9t |:n=YI(Ihþ7ۭy&ܿ֦O!`eYgK? ?nWO?;`4[kI!3x}%VacBp;k$7>O9{<{s/&b¡D]"veBG%9H3ڱl-/77h?NBid(Ki.&ifs^LU9 YGl9-3y=')vL{n=j!ԍY$G '|	W|0&M2P|P\_OٌekpPEq4}%nD24hIj-2B!&N0or&`?yȿYϢFB(~q{Nܣ:N&[Fea2Vh1~bhQb@+)c8Yހ~ ݡ5sRd;@QMSH$*<!xdwtMKNW)Dq"x-Fqy7;{7],2\ުa(۹<87NBޯZx+vbNc(|Kb;ٍhߗ\Q!J}OCAC;=)kZD* U
QdUo(|\Ec}L͵SfÎƨ*t<h6ݽ5TP9[e\_Fj(nM6f;0sQ
WZ:7cNvonԩrmM}GF0ЅMΊx'>Kezø4ABwsᖽHaCc|{-;UuM>@ycqœq?P[#B/Ykh}`$t*ཤH@𽟙7D4,pzF֐k%mMQjt%-Y5EmAU]I6qZ=Qe b9\P֧*nh>MKdC	VAZdLY&Q8ݺ.OEƳ..\=,WÇrnaFL.g\{7<y<*;ԇ^ cePB1u;n(g*jQbm8hXֹZ ֢Ʃ`;53S>th.ո@+3ba̅$o&z"N!Vb`')?K.	h~ZI[Mpoo߽FojԔD,=<g	Kd}݂"^	0镍ʖW@}tj˶r<j;``j[>UkiǂՈMqƳkngi2@|&!VoXMW 3)ߧ k'(Bĉ`RAYZ}Dkww+[ C)Y*SfݪgP[~Fsوװ~=EUKdZ`J}VmJjA]'.Tj>YvS)8"OfE^=o}m #"<Pgh<_nݬ_6LӆutQ[^˂iPRXiDXčџ3>IkaWA6G!vm֡iɃ9~#sn> #Ag4 f6#gӘO[
9B{Cd'&aQ_vDnA-6&" <Rj3Y}==*\L3E,H)XRkQoV)W?yÕR%9vN|Cٞ!hug.kPuWM5mLu!'	$P_#jv|~47 KjT;[t䡟Y}1@ꘫ.K@LeCZ<e1F֧B	wLoc_QP.3w\q.ShuMĂe69n^AcӠFfInc}PUxM?Z֭7}8G<2~db,LuȮF:vN2sPMca=^sS˖	`3dt&j?m_*
KTRš7pOkQj)W("{L\UuW+ԤztKDƫnʂ2d#*¥b֠nߪnfQ</vЍO;r&Vۛ|j߭ae=J4tN߯dܳjkgu>haMjYvҨՆƣFupu%yz1xRUbmnUw]7b{YREQUҫE{E_(Ori|RoˮX^lěo@-nx}J@lZDA\H*B[:mMAdH6h2u2Qкy|#7TMf8s}yM>'R-c] z6t)oA1JyNwId'գMhI>I"ko6Z ls|N&Lz-6Bv:c ׺@/zJGda%dA;wnKy4jmT Ju0YgobT˅OC
5;U?1SHo&CeBdIKxVEn
ڵ*lUXr` RU[uv}m	Gӏx^R
93(38G a6x{xq8D(Fŕߖ0Nchrs{bF\
Z
eEřy
z@H{dKJK'L>*7CɚkCQɧT'?|}r}o2+8ϡ&`l:yd8s&?Rg|ʞ{	7hdo@'BTJo)%=d1[&Ӛ#^z&~
&A@F|E2e>аSfufrA,.p_}sqlH"(#<[Nouρ'0`jbQLcwfs?vm^kižmXpql y9'L<UF@_(W\ʩy)i 	nFxxqfi6 , ;xWmoG_1"_lBJۨj_SRlnEin/{gvV$3<3==Szln8=wp%BH
6Y_Je0WeH駑WF
zp
F:irPTʂ3H>\xbmAV.hsOŇV mETY?skr>ҳnTMu<+
1
44wRSJŔB-1H28襖VV6ۥn2iSgw0[Ho+jV?C&\\^OM4'q4.$OWH>x[k΀&
wBUԘ\Z5sb0Se5R 3vSRZaҽxQ#y&̪V	D;Czɇ쳩$1DcUUUbeO,ZLᾂ:%%tm4eET^5=Լ6lixXꬳ0{ELom"jٙ&IHhf':)BN+㍴+i+CxEB"@eDD洡>xDM/8zB2eٜUP3ykOqU!ݖ߈I.g|8zB#lKƳUCFR|VPjE(%$JU<ܹ8uyNO\k	s7;u<Xh$=_PD:Jwdl׃A4N_LQIOdb]9Ef^WqdF&;龤,ǲRlJ,v+ÁteuV%4Cjc@öQ=ǛD0ٰ߱h@U`\C5D=$MVO)irqx2aE")lSw{G}K*|y#o1:`ʕ6GCmnhjNxۗ.e@xY0w޸{Lc?D(\G_I4
>eU;>%d %Ǚ*_jh&Z+'H.hgn̳,y\S:ZMqʤhX'.wն;Խ|k"/=t0}>^W@ak7LQǸVzh2wIiwP~ڶ=u!W%]a;w}KSj
+&oݾB;gp]>w> CaAZ>LĿ=Z$iQL<>>yyl~쎲NۻxWQOF~ϯ\rͩUվaAJB):U'+Np3k'$"ޙٙo6n5*/O,DN1G	'8A	6n9=Pd1j/]&HA`^;lrR0%dBabHL.܂ R<"N>uMC sA9% ,5&濴%\-25'JvR44]HMJ9%9(b֬ZZ`TbB#Z
"E|ՀPy{u0<µ{a݋I0.ztx8z'M@B\sd4 q-DU)#ȈJƅ#uFAz*wP1ITZaݣguFF}<qlX"!Pu+5#-1E?I)fUqLh`T%D֑L'BM@u<c,eBS-A͏.VNk|5o3LUiUɌ|^/q"yw6SlM_VEfHD+:&iKyVZL*0()iwIox˄6L )XxzC2<yݛ4d 3|цeQZ4\raZ'tXo_ia`4MCwL1:A-gXBՔ{I=\B-`Dj{
Fm$µZb6&Q"y|I}+H`V1g;ܶ{^5)$O0BǓ1!Qְ?-h.#E]]0x YV4 IQlw^z}w28)*@i}]o~eVR"hͳhVW^qADEsh;t_:tp7WE}#!9:TMܡTֱh<W:pu4'AÍDQy&e/ۘHUj'v'	#L'$t:'m]Vlϫd>:50/"?ƌ[QI>/*ܮ4WFbDA돶}\R^ u*#Sr.s55{Ua_U3WF&}jA2֍|6o
Ku]Ӎrl+HrQ-B w_[iS#E5
i7k_}%U/ ixTmo6_qp>,;/[DUDh*"Na2ߑݸˆ%ޞ#Wj:M덅bЊ=,pGd8GޑKhe!hD2PRft4]NHe59@E5X 	65	d7Nxs.8UeW~k_~?D>c44f}'Y14^u UC6&Kr=*]մjfG&$t4Jda)Aq),/EE˘W!C/ƀF;x`xRH**\bV;ԒAzKu0ҥiKVX^t0^y%EYZ֪m Ctk|ž_i
0KܑVrҎ x<'vTE˺wPp[WTOvbC[l@}>cfV,,tJ<.nbiocKakrdaM朾mSmhRdss(՞E(JkZi;ΰ@vc;?I5~g!.2?iOIL9\$'EݖƖzm|f8ϋn{by`8ʒo*IۦQڞdqCwxϤ:-'ל-`e`VG;S Ley"p#J,lĎ%{9ھu[b=2E$0!5-:NToN3z=QlYnj~}_Ofʕ2,&0xW[SF~W!k!dD1n$\iYKk{'Ү9+Yxq̀~@_K-fs{>s\)G^>جGD`Qt#F(	GC#jwK"A g8"R^ZRU`/{=oZXJ6mHJ3`X7 H?~Ek̹1W'4:<Y+ѨMԜ-@i`3*2zrv4'10VkLD!»h=dxrpu˳x_]!˳.pDRh 4y!k&LUe)y*"E̱ZGPr]CQ5h`FbrQˬ?t<oYY5ʕ0|Ag-F^}ԑx[,]ދknE:}	)u"r¥s`l-X+GzYzd|CMG++N ϛ[ꭼ02p}ۖpMnbzuHDjrad5Ev,Fy.&%\FaI{a+Ӗ)V=1?8BL1SHPV2|BI`d	Fv.&@ TĦ7$-sgwYL8\fbzbY%+TBZʿeÑuD{LJ`1*7+VW}ݴ"TB`'xyx͆݉k,33z<WNicz(b+̥FECTѱ('nRRP)A   I$@&Ht}nQg8CĤ,EBĲZETf@|fի#.DvN=g7ǅay)H 9)\7<smAc,FB
p8NAqGaן+g fRfy(t¥+Msy+u)~5mWp"q5ӬY֘TVUX[!niQIaf?vn|KP\*
Iz7 -ZЎF4z5yqu*G'[ܮzCk4n*
|Иr+-̺gpQq?eT)7)@ֶt4tÔ|"ndf%]U}Y:+.O^٦B>&G9AHݞZVݚ	- 6EnI(no(^d Qc2A|:hcիyq5%DZ
DP"C+ԟ#f(U~38lqҺQާ)af闀{-xOY[vsXrSI_tV)"?v9i`z+4PI	UvF"kȺPԐc"ѼfO? $txkQ^,=AdDʍoK'ONddh49QaSf1C#.-Ԣ<C= _r,e TAL?)̼3Ģtk. @2MYz FSLf֓ٓ*.)*M.Q(JM/IKWk16j)I,L\!1yWiqBZ~BqqB~IFjXMBqFbNBfz^~QBf7i:PkJ*RSRJ@ tK1I)%֓s6|>9hynA3y+0QԼ"ƼAP5rp<kT嗖XocgĈb O(L Si\ljx[,Hz2fzN xioF P4.M[hY$*0"Gl(CZ{sn5!g}\^Zgzo]N'}d~WI2b/C>$QH^u_zEA좜l莄QF%a3CE84<[<
 㳂-2
)lBB3Xge?T܍U Wgw@4$ay/v@G@j@IJ"$>WF&<3CfD༺ FC̚g\[Sg*Dqߍf.hM&u)MHo4;3n5L;~0aq ɤ$,#IR3/YE[Y)j5}h&5BDWWBog*򘸌IoJo	gKs^nyf/5v$r$e^rԺ	E	MIY W Kv 
Q#%%@-j.Rɾ팱y*Әw&;tD)YXWVW/3{I:v)Lw@W=00kU;s9P4w<!kyB/}F~L3EAwo<g( $H2{q=d`Y|YJY
/!cxW*v1OuViۂڞ̯g;c/!f'p9uG֞'˵)p~' yAd||S eYে7lOs{N>o{П"?Bf@ )Rrmr\BD$8JM,ĸtiB=Td.,<
>!`uHB	C6hd"R]܊k!s}{8my) Y=ݥRc_o`[AEC>ϵ`Jţ~m#7JII)-@{?"Dl%	+v i*ѧ5ӳ<Ǡ[;@iLJ'F!c-<b@\I׿@!k؟Ltj CxL,9܉^iȸ
S`"өШ1J[T(Y򘥲hY25TQBHGÒ$}llI'ޗ{XrGa at@"!/=nlk!\=r I/-!JiuYa<?8BYp VlZX1M<rPCC?/GD$^'(QX|!Ih>&ZpQu@6lA#~ľQ  "4.ꗦ9_<4VPn]5V8T	Dy.E[?6tOUuMW̖ڪ4-@*F}<&~0JO3*=`*[wծbsIx kD0P46>/Qk&
m|;$G蓗IV.y(%ShN+U#o!mVAh?87?UݔxM\\>z~?k[s_!lk&HAEoj>~,ߎ8ȀݱEZ,sm ɚdm[QmP~"ߗnWu;qPpF'dca0"Ն}XR'MbT,QN
Px@^I	M퀻poM<H1FrrA/w^%@8:P%,3UJ_O2ex8JXR*=Q0Hj^YchM\D	oS.b9
:Jx,[y,O.NqǑb-AnU({Ty>A2Kuܞ)dLfqFQ	Y6dʖm%^Y}8H64Q=W9vS-K.ն_+=Fi>yk)PռWU:VhuQzKu*QŸ&(j`0UG2x#I7Lϴ>*,SY]grWtMh ?և@Vgx7i|۴TQBEY!CT\!rБUVB?j[G+3KG;U=q\hIՍ艼TWJWvqI#y}sXڎ*xūkh_,M	 c/!oYXrXrph@=H$6;+'ЖVb;Br!$C\ʐVCj`X<<݇%!kVh"7HεԆց_HrPéAYWG:R-	L]nKF ^n*h/At$ EҽczP<Z:7"Ɗ	HKQJR5>0DcԹm'ːZ[or}4&쥉Ej" #Ϝ.oYlxxE
O 7u?tz{@a݃j,v>jJ\%Kڜ*ʵ 5NO5)-gwBq_~_1.$,˓׳Gc/. t]}_Zؓ	k?[v퉄)QE	fӀG.P9#O_Kp.Nt6\2dV)1v$[u?(̝nwhRN]9N^ܦ@',Ō)WXB#Ɏ>vz0kvN%֠ "V)X`hҌx(V!	9:yF_7" MiVmQ35gAtgq[3edx]2:G8`bV\O	B4DD0˜#^Bϒ$3ʕ5l>jDa@n ֽd*aLHᙠfs1o$o5'D
fMS` $s+5!Є~v[.WWy\hMIl>7¢W*SfKRM_OL`щɥv+^Óјh@,5rXpQi1Sj)*yXENt]mJv{˲ax~ S)}6\o]T?mWm׌<9^$]Ӡl*h=LtȈJ1-N:Zu!{<Fe7	HQ]W^ӓH^5(ϚݛzPwyŐzRP\nhB*nOr'WA;}'f4$.9^|j䨾}_#4oHH	u ]%h|]8Bf'7|ÿ́˴I(~з{|<y?v 7Iȧ7ɝƎhnJHV_vA8c6	e u8_Ó+-^
kPB~uvCkpD2
qh¾=APj>FI)9_La͜of˖y<Z;9헥d-rN\޸,o[`Iʀ1c(΄N1a|xO>e2ET,x-¤ҕdTd|=A_IѨI,hj.)x)#O{YTZ)zv7Bo>[ug3Hհ*R"f84ZS4h:^P~0-oַO{Ә-Mj+,(X4I/HKin!~U۷Nŋ˯g,:,)듓1ZyX`CSO\> ">x_r8D(Fŕߖ0Nb1hrsKbF\
Z
eEřy
z@dWFԴ̼T
`6`2/V@6+;3U`|C|8'(s/.&[vs"o/XdK~'l,f3
LNDЋ)?m%TPHfEIf!s@r+%`Ra3x6+հB+۰bxrfX$7˄)Wg;aaqHUey$6Y;:m{vƓer8RNKL lQxVrfv $txffP.#ƻk|9!S
 cx8qHҒ_r3O:x{εB x8qBHw[k~&>=y< =x8qHǲegJwU|I}r/n[ >jx3 2)`>U 8aF@%dCQCbKx8q%Ϛvص?mctŇĉn! Pox8qB:/WNWK< txf lk7ŸKA}&%I~=֖nvhLb>gz$s`n5~ ;UV\+IvIf?3}?,:vx! Hu(٧QRķ7=i\?(x< #Pwk	N0Qx#%QkO3P/g={.uxm AR)vϞTW<[#%QkO3P/g={.aDcC0^heUA\g\}7
d)8jF/Af/tx7 l{cH^bmIq6RX<'HrjbFx>}Hm~)~o	]<7q3O&{F 4sxj #Pwk	N0Qx#%QkO3P/g={.eeI9[)\+c"{t +ϟ/6xQ rm1AjagCUCEdG.|6MqZ*~G\%)AN?semwb#dxQ ^zLvzo'Wbt	ʱr\g^Q=0#\RdYE1b` ѝUrG"<@x9 .}GvqWA([Ԩ}\?{HxQ AR)vϞTW<[aDcC0^heUA\1kG֪ёWS7$x9 WTDpU&dn\W_^c 4Fހ24\?Hx>}HSnԫ%oQpos=# uxQ rm1AjagCUCE`/2QUm6چ\%)AN?semwb%2_xQ .}GvqWA([Ԩ}\ ADơeɑKI(x };`9{uXP^
 NOH 'fO2Wa4ê**_& ^k:7Èx8Γ\RdYE1b` ѝUrP#mU[Q'ˣ)rCo,8xm K҄Cɒu́xOSMYJմ<u8.z.dG.|6MqZ*~G\%)AN?semwbb$/xQ .}GvqWA(evvOAdw\%)AN?semwb%px>}w&G[Um113gSLdn	 J`x>}w&NgV˿f{J -UJx>}t,(ĥ T9%/kL ysxQ ;>O"DV}rN:BOH#G>Q-}:F)(2Bk8M&cp޳\?$3Sx>}H&ݦ7?2MØ&{F x6 Hs)}r%3\+ƈ8Go8q
6n$|:%Fx }%FIENFG~,Tx+r.=Vz&v"79t;\4@T4}DdCq7|ƈ8Go8q
6n$|;Wx }(h2h7BruقSG~,Tx+r.ތ1scV|*^<ȓ\2vqAZ|ƈ8Go8q
6n$|:gx>}C;dQ3Kz.)Oɺ T|Kx>}w&sޗnf7{wbQBD xx9 H9jc޳'.)\wKi86Ȣ6 Xf{9Xux9 HDDšP/Cr"\M,z_ut8ʓjGx>}?ʔD?1L Gtx>}HSJ{䟕2VnI
'nag 4Zx>}w&,ug<5kJ |xm <*@VI8xp摫#%QkO3P/g={.i>Kgvivg3\RdYE1b` ѝUr.80xx9 H?|mL_1sL/\V)&)QoY@x>}Ȅ/$E]Ɔ+֛cmznx>}HϵYkؼ}S@@A{"cix>}MKǽ<$cYZ&{F Jx>}7+Ţ9ɞ !4xx9 H]]/tA#12\cfm,\CoHx! HإҘ`|L	m\?xxm <*@VI8xp摫#%QkO3P/g={.ș^ȇmn	7׫,\t;P|_I1_tx9 HbNňeӳϬoHv\4NpgbdA<x>}Ȳw|nG^PQ1L  6jx>}HE[o}ߗtqjYl~g&{F Px>}w&}U{	{I1Ivdn	 -x>}*U1_,c[^+eSjc>ZxQ %FIENF (	ZCY/\eL\QMPuw~/@^sY!Yx9 H+F&n砶>?zy\\M,z_ut8ʓA%HxQ pv%ZK%*ܙ>li'3Pq\M%C2HVXx&&x9 HqY?IWc;10\cfm,\C1nx9 Hq<|wТjn\M%C2HVXxR cvV0^0T7oBiEJ?*AK5\32N߬y!%7裪o $ix>}Ù?Lɑ^۔&{F a
x SvKPҏ=,jàӱ]rZ=Jٝ\@~%K-(ZC<E=]znP$J	p?R100644 native_type.h xv0zGzP0٥C	R}VVߓo,`$IJx9 H'^!dnʹuq\M%C2HVX'V1x9 H*ܙ>li'3Pq\M%C2HVXKxj `k3=@Y	_*;BiEJ?*AK5\cfm,\CP#mU[Q'ˣ)rCo,؃/Dxf ^꫉uU,Q<&\8"q\([6x8]N>|9d?UG1{J	}:5+9x9 H2K?'>*\ry.f|1۞XRXr%LLx pؿ8+fLR_|~Jbo:;5+*\r=9Z8vo0l"z|100644 native_type.h d.F09s69zmuC|$XGo~+aT=x! HWʭ0Sib\?ZOxf ؿ8+fLR_|~J^F^4[Փ\ea0:$/沐[`vv|9d?UG1{J	}:V-Dx;h]ub.#Q!o\$OHV>dY6{hSO6]or1Q`L&QR)]MH#ڿ.
͑RCjyu.s.sńokZLC!\}KkAx_)!o0E=K3'E<9NlB100644 native_type.h $RY#0×P?=fAGaؓozC=:'1~N}`xQ cvV0^0T7o32N߬y!%7裪oE&g&]/P<Kk $vxQ cvV0^0T7o32N߬y!%7裪oE&a6M k1gx$VVx9 cvV0^0T7o32N߬y!%7裪otN	x lvKPҏ=,jàӱ]rZ=Jٝ\r=tR_{&Je`f100644 native_type.h xv0zGzP0٥C	R}VVߓo,'C@xf iʫm"`rⱫ?X0:E!vf\{'NJVt!L\|9d?UG1{J	}:1_x  tR_{&Je`fx9 m}"K?SѻDc7Eutiod$XVx9 /S+LKDXɱ041\íy~̳{x9 1'S6YW TkE&sv1	 	C&h/4³\?i1Cx9 H9YD`Ļ*`\xv0zGzNx>}Ԟ&ŶT-g]S9ɞ >9xQ X<1{k<M@ꁦNeJrSn\e
eFK(	$PM(	xQ \\QoWmgNeB/3cx?I#1:J\3iEP9?1$_~x &ﻸ_<
vTiMCdxN vKPҏ=,jàӱG֑VjqJ擳\+ƈ8Go8q
6n$|&Ax9 Hץ	,qf<c\([6x8]N>%x>}[\^S<VכcAx TjWɢ0^۱#ox DQ=14L֙ox9 =l
)q&$[?HU[^G۵t.@1\?)Hx>}tio&Fn9"[jL ~sx8 oˠ|-ÏUy?oML>lzK[,І0cU9xQ JY7RmT`jD<Iai:Zڠ	\+$sI*n)2xf {I4_ 04UH]Vי)I)%M<a!\>:IGEjcL`|-wO3R.'x>}C;e}M|WzqZ '	Px6 Hq='N_|\+9d?UG1{J	}:,xQ JY7RmT`jD<˻	Y?ӹfZ{\Tn7Vk[ߐZi}e(uxb H#́!Q9\r=]znP$J	p?R100644 native_type.h ea0:$/沐[`vv'zfxf "3nCǴT3a@=`g2 Աgwj\-zUݷG>6 蔤7|jQAwٸ ,כ2[x>}IK:GM϶̜ls=# C	xQ !VM)6G,d	ñ2D6xnHFKnf\gl3Vĕ0|]4##Cix %V"q:NdٔNZor1Q`L&QR)]MH#ڿ."ϖD㾣ˑ+ڤ\ѵͧJ _bE=K3'E<9NlB100644 native_type.h sdT]6_w_P?=fAGaؓosT52!<ٙ"9x

Tp^Rx _+s%S4&wB˱<t 0<e4#\ѵͧJ _bn&ZpwF\\w|-wO3RL;}.x9 eΜ.Ys=
pѵͧJ _bVPvxQ !VM)6G,d	ñ2D6xnHFKnf\gl3Vĕ0|]4##CVx>}i]̬Vm[X,1L <6xQ &2]	ݽ14@ӱpWi۩l4lPA?*\Z'R4(c(ONX[#dx>}Ȥ{|RY%9&{F E@x9 H*0WQdΪΓ\PC/RmAT"pZCJ,xQ _+s%S4&wB˱m&2ޮE`>B4\&ZpwF\\w$lx9 H@<	p3\(ݨ-\cI_(pojTxf _+s%S4&wB˱m&2ޮE`>B4\&ZpwF\\w|$XGo~+aT*.Ix pD.| ƔW}WP-U,jr8\r=K3'E<9NlB100644 native_type.h (lkնIOM,*|zC=:'1H=w;x>}c6Yq> cs=# Vix9 Иc('Saىi@~%K-(ZC<w1x9 HTاA+lhIEĥ\U֒wX&F~&OODyx8 (r=L$LG'ە_w`]!@x9 HHDS>nJzY\X?_N}k2ǣGQxMx9 HlB
Ʒ	AF9gڐ\X?_N}k2ǣGQHxN QV2ds!trڹWNArv<=/\+zC=:'1-$CxR c+c";_0$:4+xѥ:&\ѵͧJ _b*#-x8 'pM9g@BZXFL=TT!b6yͩA+7x9 1"Oz$4xޱ:MԬ3dC\?X xN HwE?AG(qȓj\-zUݷG>6 蔤7|$XGo~+aTW$]xQ {I4_ 04U12Yt|[%}L
\>:IGEjcL`5!E=x9 C`j`KH}XyO<%?9YRcliyO\?uHx>}Т/+ĭNl7ٽ9ɞ fux>}HfM%2/u1L <"x9 H2~+S:>iW<a\R?S2kg#WUQHx>}gfsjhi6td `|Ux8 ðf_KXNPUL7(RK0.=^sx>}H4og9o՝IךVZ~s=# ֦hx9 HÀ=W{4먳	J9\-zUݷG>6 蔤7GgxQ eΜ.Ys=
pw$ma>#1|<ˈ(\!(%41'Zb22!Kxf vKPҏ=,jàӱ2K?'>*\xv0zGz|ƈ8Go8q
6n$|X.ux9 H՛I~g8u_\([6x8]N>Gx>}ȶKܫ\smc)ӈP}9ɞ `?x *$100644 BUILD.gn VCګl87<_+1$H"A@y*v]> )b=0LiXcg]@o_`]m{nE,.5ߧNL;
ٛrɸYCqoz^vrtSan:oIyщT|&i
m\g]#x9 xdn:GgGww45B~\-<*	\?kx>}GOl9Zcu x9 ;`9{uXP^
 NOe`,ptPzˆ	u\?ax9 H1FP[Z?/u*\4S.Qa9g)xf 2eP~*[`>GíW4E7?t\BR䉻^$p1|q.\^ṽ)^3ȍ)/^_xQ [#wMDc߱TMm.h-TY\n[Mk-R1 2bnUwG&p?x $100644 BUILD.gn Mn`Q~/
t9$H{cH^bmIq6RXބЭGbsA
niEza0FLY#)/vAj.CAC\==$BS#100644 native_node_ani.h }KkAx_)!o0\n"_R7轳5.|dKKlU0d8x{mFA
5֓:.|1LB fx! H1r,v/h{\
>x5 Ho#@Q$oX	\ഽյ
kujZx5 H\:-ص9\tuZ6R^jxf LM째/LƪMi."Һǚp|\n:.kP1͵	Y ֓|tuZ6R<2x	x e;L_O oS?
OH'rY,,uGhL4w,+f$Yb.sElrzg3DMF3w)\n%bn}UVO^s)xy^+ϓ|tuZ6RJA}xQ N#ftp?䉗챫jyMFbkdõ/O\犧9;j-RCt3FvR&`xQ l"A@y*v]> )b kNKWYꮮ H o@NÏ\?"?x>}C;Hks.~]ǣ:ucR= hx! Hς,O`ͬ\?mx>}ȮDe]2w嚱~:}s=# Fx>}'?7F[lo&{F Wtx>}qkېasD{_P喝as=# ۶>Bx>}ȳK/?xhPW0|Ӻ1L k.x9 ǯԷ(X'$,O鱫F5ߧNL;
ٛrɸY1Uux>}'?7F[lo&{F W"x>}efWHW\?]9ɞ ׈Px>}W&zM^Σqcޭ1L ׫!~x>}qkېasD{_P喝as=# ۶>~x>}Hn"';yO1̝ݷa擴1L ,xM Rho 	ǂ!8@}8Ǝ^-6@R[,&i
m\gk1#\x>}^>v7s;L_1L -xQ `9wip1,5Q=aALhO fP(\Dx*nЇo!ϓa#J_x_ $100644 BUILD.gn VCګl87<_+1$s6KU׷"5}qϱ=dc2F4Se4%mx9 H9߇دB$uՓ\n犧9;j-RCt3FqH4xQ [#wMDc߱G)jYADR\n$Z;hc$Xڣ..)x{mf;_=O>f{yj%1LB x9 ǯԷ(X'$,O鱫F5ߧNL;
ٛrɸY1UHx>}^>v7s;L_1L qx Zഽյ
ku˼lx{mC?_}ǖ۾6cM :x{mC\ZO_u "zx Zഽյ
ku˼ax Zഽյ
ku˼x{m\󝭥l<>zs# *:xQ 5u ^
C#3e/[F&np*:Li~\nDSZ/. GS[q]S$x{mH`FYK_s^^lab x9 פu8]-GR\3Us*ŕ}q\lVx{miNY/8ho9I Dvx! H9ldPʊ钝\
(Sx{m-ovF~bm7l&!F x! H9ldPʊ钝\
(1x{mH̥䚚}c|=XK1LB @x{mȩ<ճN!%+62|Fos# t2x9 ;h]ub.#Q!o\$OF7cyp.9:|:p娳\zxQ ;h]ub.#Q!o\$O> 5HpGb
Y*\nWU/tkz\h$%Zx{mHF[~*~Ȑ_ "x{mH)lD/vs# ,N4xm 5u ^
C#3e
͑RCjyu.s.s:q4nwfՃC_\n܏4gkM}L@50xQ ApR:8ˀYcq287QL.7ӉHē\n,}|pYB@Xr)
x X;bK$8ǄdOHZ[ƿHlC4 xEGb+B:'z>\E=9`dG{	^100644 native_type.h ,}|pYB@Xr|7(PQf+W}JLx! HVYL*K\7uFx  9`dG{	^듵Cux{mCBsV>d~{Z YXx{mCBsV>d~{Z YfxQ /%YЉv a\n%bn}UVO^s)xy^+ϓU\&Fx{mȖS$vĿg%^Fyf `rx{mC\ZO_u "x! Hf?mլU1\0KxQ <s(=;T萔P}I)T\n|9-k|UFMDyC'ex{mҭS^ջKt0Vmǽ9I +	x{m\k$kiyo˛c
Slx{mBqt$oNX|s# Sjx{mEI,!Xi$&>ys# Zx9 H_rbTOv(a}\n;Mh"-2`x9 Jmd(17}[WFfVz8Z\x{mȖS$vĿg%^Fyf `txR '&۪}r|R~jߓCVq܆,ꚩE-\n;6%)J zIP	k&Tx{myՉ܉9/Y#>3`9I x! 5ߧNL;
ٛrɸYiTx4 2eP~*[`>q.\^ṽ)^3ȍp^x ބЭGbsA
niEza0o_`]m{nE,.CH!ӠWCEj\"_R7轳5.|dKKlU09!Qx>}밭oS[)YUc&{F ̇<x B$100644 BUILD.gn VCګl87<_+1$H"A@y*v]> )bay FlaܶF5ߧNL;
ٛrɸYC9%a"Mef莨DǓnM`!/P:Do4|&i
m\gTLxj "Iom"H>#FLY#)/vAj.CLhO fP(\nDx*nЇo!ϓ0HExR ynWmfbDpM=r=or1Q`L&QR)]MH#ڿ.VQ	~ֳ\#&xQ =0LiXcg]@[4%̦-'\n:oIyщT'!x9 HkY+%ou{-PԚ>\n0JFx*:l[wװNxf 	zoP)B'^籫TMm.h-TY\n[Mk-R1 2bnU|dKKlU0g/wx9 ۊ<YVۘs|dF5ߧNL;
ٛrɸYiKHxQ 8wGGe +±8	zLXBHC-OY\nK]o@Auu`A?Aӭ"'xQ [#wMDc߱WA#_6Wߠ:N|\nTcZzSqdz*2`x{mxi-KSQz}Y&!F sQx9 H}sR%Jg\n&oH!SBS>kc3ޓ59x9 HVQ	~֓\nM`!/P:Do4
Hx{mDᣒWIݼ6;ġ'~G1LB Yx>}HF[~*~Ȑ߇ Bx! HńokZLC!\?T\x>}HzuZ?)`TP1L I	x>}n{'*Hٓ"Gds=# k7x>}HOj&c3׽	{;1L exf 2eP~*[`>uXM(叩[p\BR䉻^$p1|q.\^ṽ)^3ȍP0#x y\,R?<{eHu
9Xy:PS3.s];QYt=~F1GmtCZN\ѵͧJ _bnM_BGҏ|$Ca:8x>}țqOȼ}wj^\1L 0fx8 DBC\b8̶EN9^Qo_`]m{nE,.mp-x4 V>dY6{hSO6]zC=:'1򡵥Mx~ ;`9{uXP^
 NOHXJq)M[Ul_gz;?\*H(},D1@`.|zC=:'1n;fx |<43btDo .+i="#ysLmX.Ic0:IH	7\{Wa,E.V5
ZP0٥C	R}VVߓo,5ixQ V"q:NdٔNZ"ϖD㾣ˑ+ڤ\sdT]6_w_(	x `V>dY6{hSO6]o .+i="#ysLmX.
͑RCjyu.s.se`,ptPzˆ	u\}KkAx_)!o0n$RY#0×KS x>}HuAKo߬ǘ w .xj D.| ƔW}o .+i="#ysLmX.ˇa.`ϫS׀o\(lkնIOM,*$-	&x a;h]ub.#Q!o\$OHL"cNfW[oI E
͑RCjyu.s.sPXcy̪Vt.ؓ\}KkAx_)!o0nǷcˡ!zK%>eEkHu
xN &{taJUI1TPNW;7)p\V\+dKKlU0{gx>}!ݵ>Q}&{F ݠ.x>}C;|^q٪{ ĥ0Vx>}C;J_}!ߙzH-t4 $xk`j`pPݬ;ӎ=VX]7oī Qxk`j`pPKJu3\^ﴛl3qWտf~xk`j`(snW+:y7 (ZxF ?G6f\N -n100644 oh_window_pip.h L.Z&  ,hTx3 aଯBQ\7G\|uwo{ʦ0>`f#"K-BAxk`j`Fd?_>z؛u6>b  LxeeP)b_(0TGmyRlU ;	5xeeP).=~R%] u	acx8qBNy/-eGԉe px8qBȿ\oA5zry =:x8qBȺ;ܿ^m:uɿ
x8qBH˾-g})-wǪe l/x8qBȑI-u;vp^?4uaˍe Zx8qB>%/7UYrI߉e Cx bWR7T`r?ӑvd2x8qBõ=E;ɣ늄ݽ]x8qBڀuiܙk re !1x8qB{3mN뷕/0L 6\x8qB=3/|}wiEہx;xqHsuǄ-6xy9jQ~DNv":5?d~޹OV  ;$Kx;xqȝ(w13U.?1QlkdÔe'-J̛ǎgARd ɝ:Gx! Qalz_xTfa4	x\moJ_1JV*HB j[U>gf1$%m&y9<m99>`Ǭ.'SŎͯo~gC7aѠZam5R6),qԔZeT5i(b+;\dlY,R>È3~D0f%Q6TS=EOC>HL݆WFR?NNnoopUId[f}#L?Pb9L*j2!?IPR1V4(L̮anH͏aZCo+yÀQjAgw;֠u>VQaD
0͐9|_l9Mx K'?l"n"p9Sєp*_K+,8{trpprFJLvk5{N٧^N?P|̮	G<e@%RXb+Lŭ'>Ə2Ύ._eDH a!:fR/WYfbacf\+t!7LHb0>mEm5&	7 fz4!Rl6iM84}-,oS3EL=lb#1Dc}DW^)T&?5 `=r/䡘l~TY|Q
ץG1օ&W:e̺瞃b=7^(qTHXѵü<#"!Wm4C(KS 	;x̬o!
A.SE:n'hI(Ֆ>-Y,0=BB09Eވė:4VX)waq@1Lf4;5j\C9sb:D\@w3R݈pĎ0v	tc
 ,?@c
 x
-1s3{M`,ZnA+2i;?jcVhaV~\ʺ [*K1Gܲ @fgP#Fi>4}[ 4
$g[մbZ銰c!C, M?"m̀)e%J20l&SwFd5VVnF/lSIG^ZZjڥsCw `@2:t^U7h6܎5YJDCR%p#{nYt+Or@c\W@$O0nwJlgVg:Ka yG6g0}TlHW^2"M7f@ØH(ف$<߲^0GT"4k?z_kd{}IDg@|c X9f ʼ~\eW&@}}zIMS<EuSrUK\%d]$A隬̭£il鮌.~J\%Os{Epwh~g5v~$`ɻw]-O?6/{Z*
o}|z& OEyy|+BnĢd;~lXQ"ȴkeU*Q.}'MˆlH#*6\'D3iX	$2f\x`_#On^-=[N:\ 0oghwd"D;nm!M1:iBbYb}}N)ߠ
x­@ǽwɺY5%0E3mpno~{?@ds} x-Ag>+&EH&#ޛq>hI1\{>tu_'HZU+b,wMՖ*/=skSYi1dUzBN={xڠ}׿|߫[=d*_.'j@DrB%w^,>ZZs>u{Z@th.Ἦ*>"[
rub-AZ/CN\G!W%-ZŤTIiU\5k'8%6>N#2%:E,]Q!5
iN4^BEv^ߔK3>L⮢g~+OJJ+uAb>rntI>[kJM}!)+r;ձ"\j4nURPߺHz6`eW1#՞Oȍ#P۳p8lV{(\㭬+8 n8X@wQV2Kћ&V$*_mkʡgY{/c PEP[R@	3*{(*0/]
aw$6z/r.Rz91m]IP[pX!O/|$oLX=Ԗ~k*ЯS),/o=~P}UTeåR<:X@|]/}1`I섚E֝,Tx>3}5vb9[pxבsz]{
	Z#ȎNx.=J\Gh'YɗwܿuӑvrN7cx8q$L\EiEyɩś6 
	x8qM&Pkd&O} ,
RRxT]OAMEغiqHQ
Ai)JML6-63S!$y37M '̶K%~9s\;LbfŚBb)с
ŵ|aX6VPX6R]]̖κpUk§"՛9G@BMoZDB|=OL2C֩J7HǼ0Rso6MKGcR|Ւte5<}訄D~BA.k(nvhʓ_
oCk(sWL\[pe6CTp -GbfZPǺK7adLvO=:6Z"S/];Cm
ԩ6"] fxPH̺0ljixL'ŷY=mGzeKbmv4>7*hANr%%at7wבRbJ6	m6 :/O˓BB!/T{FN'rkY"ETLWBfgYT<)iwb[5ɓ1!0c;Cʝ@*8AA#@?;i=Ė+~ٲ.\xuKAp4	hԒ[SAMۈmQq%%ؕ,˘}.lfق^_݃W/"8[&sڝͫT1"G:@a#9RB
𨺟]Q3u~S5{=mv'Wv(ձ{3;PFfdpH]O@HZw4+z+=1VAQ@*ЯA\2'̿џ |(\*>I&9|O eR1~ͯk9w@x|~0w[}SFiDk׷-8D ꝱyDcD_2NO$M玈pon$M,TrAu%Icq0mC**5Jhjf!{Nk9VOLa6ӿrxOAǃPThZLL	`iJ-Dn)]-ew*6p՘wN^f?.LJ{fgw>޼xϕOߛ[zH{%tBk6X$3fB"Yb&666^.G9e(C%8H"Y2~mq׸6xET]-qumE'2<UFA L,d!VλQrhɻ[FaB)ت0K6
Nfhh#%ftՉj LfI^Tc Ienro*TWݰhnG(oīJEV	e"+kPaO
^yl|wH	/ݽ^q&d+F΅!OӭU bf%`OiPF,b8t9By|xI #-ۯ7lm6F[69>sÉf	[ .	q_d_2V;/E=A=˅K\ob:0ק]4Ԭ}ĕaM;|H_<|b?nV:愑ʆ#r q/3Nxne`ϋ&b
X0y1va
4|CN=	ī]?lG-&	]ew]yY'H׽|VYx|WFo/x[!rCd#Vɵz 4~Ix[grqIJf^d^Vͬ&M^j>7ʖwb3D:u<U&l6WĚW\2Y^GQkp){O6b\ -x&vC(zl4DʂTb҂"=.- Rp(H,J̅(+HU(./JLO)T;de+%C U!Y)5eKA&FNLC%<<tܣhtsFhZO6`ܨ V2xkh%09@MQ52?$?ϥV!3/%39$X$#U!;R!%/QH,.|^KbriǙ5`szfl_% 1F`xkKT$#U!757R85KAkh&T6oX4Nmr*9 I-xklqIJR~~^rf^rNiJP03D/ceC ^5x-rCEZ{U/0MSbT\!yC(r:N 9 5xແsAPxO??נxנ Z̼Ēb< '/h2LNsq1려mW=Y		O %G3{A?D}YM$_A]a#7W=dfs /x}OKAƱD%}R(&
"4ٝhh<wӁ23[(?g^oў	zgsXf=0Y׫RJCT$Do~mIi3YA0.3W0-\B!F\ xI!0嗻ȾdWɀ"T̟rƜV~j	^y"@eC{]e6TXAmoo,!09R6svjjiRvcHLDjg&}kyyMۼfolwvjz\AC7\,Sik>N 5%jwXi>lB~r:+f\w#O6t}&؏6vFלJ7(BA o _Eߕx3 bi#׻;V'LWQv1tvy[,l8m	@x o!Ǜ,}wŮqڍөT _x*-;q?;yȬ/ S(x*]0kkLaf z
vx3QMd'{˴դdi/lIE1]"徫Pe܉5v$U100755 drawing_color_space.h  o̙DqyNcE5rYf4v{U<RV% x E˘F[y1QTBzZyap}&*ֵ-P['Hh}(pOWx"[1GmAO"Uu_?HfAv8TS;"r6m觉f)y:x3QMd'{˴դdi/lIE1]"徫Pe܉5v$U100755 drawing_color_space.h  o̙DqyNcE5rYf4v{U<RV% x E˘F[y1QTBzˬy9:u-P['Hh}(pOWx"[1GmAO"Uu_?HfAv8TS;"r6m觉f)~x4 Lm)HBLcFsKJxat>^)Cx {\Jfx&'zkLBcbژQ#&@c4pst\f. /AyUXp{pgd!PwoY:)+Xx*_D)E/=3_X=ԘvMƉ*o;Q]"I䋜ީC%g''%e04n 噸|O^O{Tح3or*yr,;w_w 䉌1YV,i}H}*;-M|S$:ܓ</ߖE_^Ѻnd3fOy?Ek7,떺^̎y@ו~y~uǶA;J
0k욬A.뿥}nf3<7wGbQjzf>ȐVzYZԞiZV)XEw,_wnWEf^îƬA"B+8*:"ѝs]&~wޜ<iM>úAd˨/_<1m=E&/ay1kچl5?[T,Kc*|%+gl, "-|xe%\	$JA(~^\ESk`%PZ1m*&n\Z),HMKLN;->{igVn杪ߌE5(.S{cٵRX^7?>YCId]I;Uxb:?QhgW$ w)4g#xx*_D)E/=3_X=ԘvMƉ*"M>,'>ۧ(Ȥ+v{y&._%Ӟ颿 }*wv̛$r^,)WH0y"sD+KZ}&NbS'd?-d-KeїW[?ٌSDObwK-ﺥ.W;y2dvwY-sK6{ṉ;c)EyEyz˭
l=eӴrgIS&ʋڶMSnݻvVۆʓYDVrqTu<{E;L	qyN9sq?7yҞ/|u֗Q_xc(r{'L^&$bִ*k~4?YV("-|xe%\	%٭sҮ>(X%Uh,,HMKLN;wZ|Ϭh;U7b5{jo=z,vV's(}kWfkU^
{ ZN,x6 4!PA$QuJMhr6m觉f)v?qx6 LBcbژQ^g6$.{lezoa@qxhQMd'{˴դdi/lIE1]"徫Pe܉5v$U100755 drawing_color_space.h  o̙DqyNcE5rYf4v{U<RV% x E˘F[y1QTBzJ;AQDZԠhe-P['Hh}(pOWx"[1GmAO"Uu_VEIVц0ÔGj>RaTL(nEHfAv8TS;"r6m觉f)_hxN 8[YȾ;tU(dxQ?D.d[DR7d&%VҪ_$m]xM \Jfx&'zk^6]U#ren^{BHQCΦ8fr
?mm #w8xM ,!t+O4"^6]U#ren^{BHQCΦ8fr
?mtc#R7xo |Wmm
SgwJjgJ$bE9ߠՓK4WQA哫aDp{{,JmeN󉴢!75x  /AyUXpo-x5 _b,>jK{sցb{4%s
{QsqxW |`)-y8`P哑0zB:a=X0dΓc<{0"/zb'YWx5 -	#;C[=4iȓ{sցb{4%s
{Q0x5 mJ\6&]>I{x	W}U pxf=_xR OYKþ9_M@om*`rw;
=ӥƬś{x	W}U p'hx  D'dgb΃8~x*pU`665d
qLS6y"{l u0x% ry=}Q)bwAp>dx% ?wΖ*ߘpKwqx% Н;p1n{5AwoILx*pU`66IYm;dR&)؜~<ôcDvEh~x: |Wmm
SgwJjg{,JmeN󉴢!+ax5 CXr{A-U$;KI{{,JmeN󉴢!{f%x5 ǆ־,Ȏm0-ב{3:ƹr%[5FixR OYKþ9_M@om*`rw;G~V#t|{$Ȁy⍥Z%Lax5 ?]1:9tP2r!Ye{T$qs͆N|%UwzIx4 ^6]U#ren^{Pi? dkjOx5 ?10VoafEL-
{{,JmeN󉴢!tPx5 YJt\BvYD6{{,JmeN󉴢!dx  f рm-+ex*pU`?TRƉ{LmerDv 0x*pU`&vSa"^.6	v]xO ̉&Ya|28*u3d'=q2M|4{H)1+؇Bp}G!!!)x6 ̉&Ya|28*u3H)1+؇Bp}G!FxPx*pU`&v]ϧ7c)ljNi1~ }x6 a)ohٓSgG3H)1+؇Bp}G!7x: ěF,߉QMQ;̓c<`~S1łU+~ xn Q<;;>Me¶îʀHNڄF#3q=",22sc*rN'rv}4Fx: E<YX~-"[ cH)1+؇Bp}G!x*pU`<󻗚':~(J	qdc
l̪ 6tx5 CRP:6)rd1F:f{d?|ߺB˟T; hD ,8x*_D)E/=3_X=ԘvMƍ*ә&`9nZFm߅Ǐq\ykwyd3fO[<2=ïOaR̎Yv:71k2{&NePkS3R32؟(,ͽf'>?ĺ)7v-kAy7lzp͐ʂԴT1q7~fEfީXT.)NާB{##ץX<YCID긠ڪ&pb Y~jx5 |Cp(:<Q8q{*rN'rv{(.xO K>$FL:[oYW 1c=H%*R<#Q ԓ{7E*?xnxJk"x*_D)E/=3_X=ԘvMƉ*"-gnl"=JOOl\.4q2Rl.<~#ʳ]˫'1{驮~}
3'OfvβArNvzli*P%gge0?QX-{̈́/O0E}~ⱉuS.{ʛGk^f$O>9R{4CJ*RSpNZ{y7cQ]Tiϧ8y
eO,\z`dy%Qͻ^ʏ3k>qhz ^bx  q>>yZMRݓx  h*߰4iS۰Ӆ	xg \Jfx&'zkU'+- i>BvtCRP:6)rd1F:ff{d8Mv2CDn,xCDyZ3]&>s	2x29Z=>Υu<\tT F[xN puݳe"P,/c˙b!f$tmm	H]~HDRK~-$T$B{xg puݳe"P,/c˙b!f$tCRP:6)rd1F:ff{)J#㵄$3Hwr 0
qx ]puݳe"P,#s;kGe/c˙b!f$tZHg uۑ̧1D蚖my)_8y2^</q1~cj%5\8Qk$yLx4 \Jfx&'zk:&&Gg>Bq)BjxCHIjA(ULw4* W)xC; 2_-̟>]4~ fDxCHN_eĦ[fܓ_zx| [omɏh=v[Ө	W@'Fc6hIs*+OG100644 drawing_region.h :q8}<*AzCv8LUP@uJQҸ6S45xCKzIn/)lT t9xq Q<;;>MeWmm
SgwJjg1Dq=",22s1~cg|XSZmq69xO QnniD/g$.p>eXa7M(#X1&f{tryGr2GvI\$^xCH.ͨ5~Q]zK~Ɇ"Sx .Q#s;kGe r<OCNW7|B	W@Uh'`̐D~"{ĢK100644 drawing_region.h FxąkIrOX2س|ZHg uۑ̧1D蚖my)_8y2^</q1~c+^켨VXn+\pxT Q#s;kGedySɃ9e|`-K	1~c]Pړd{VC 9"MuxCv؀5R&L>&9LY 7
lx| ǌߥ^kjl`?	W@G&B8J^㕤nL100644 drawing_region.h Oz8>RKbhAj%5\8Qk$%6vxM `@0,y)dL&+C100644 drawing_region.h f*K%׎SN벺@ֵ\U%"gxC:4SVUϺo[%, !x% V6F/b.eɡ[ɓ1~w^RUxCrksx=>ِ]ds[9# Hx% V~'M5 x1~wx+x IQP1Ql+  QΡiq|݃q¸6T|"tDf_ܸ)5a_1y
yvnxj2ܛD9Cѳ+fl?eg)}d91OǓ".╞lB1<ShXpxCiS^+kh
ԛ a*x 0QP1Ql+  QΡiq|݃q¸6T|"tDf_ܸ)5a_1N{|G09Fez-f
yvnxj2ܛD9Cѳ+fl?eg)}d91OǓ".╞lB1<Sc{xj 7dW3#Giq|݃q¸6T|"teg)}d91OǓ"g0"rssOw:o1$x5 Rr<jk۰1f{zCv8LUP@uJQҸ6MFDxCH#osʛmEJe/:9 )1,xCHSDڴ4]_^囜 7V,x: QGn$XE	-e={
$3|ohXftHx! Q#s;kGe/xCSG:wVk};ړ=,xCΣOf33ow4~ DBx ~7dW3#GQkAn!nк|syy;-&b?8<9:7ftvm !tlug0"rssOw:9Rxj 
!ɀ# 19dr5NGi9v[h^Lx+ģYe"۱8gţpy5Kx5 RoF{?KXVf{lJ$DP6sxDx&e7'k<YUqxCܭߧ0?skl{ss? cZxQ L!-Ӱ׽w6Ur9߫\eГh&36Q~4Jziݡ#x  }K0Ķ1F;FқMfx  /AyUXpo/x: VEIVц0ÔGjc^<ʴu!vvFŨۏ9wxo \Jfx&'zkWmm
SgwJjgJ$bE9ߠՓcPi? d4}x  uՈ>7ӀXQtO
p+x*pU`&v۸_wn,jc (@x6 Rq4V|}VALn)f{S~wmqr]z xT ¶îʀHNڄF#9Y%j}:kP"12Ty40@{$RHzC,hxQ QP1Ql+  QΡiq|݃q¸6T|"t2y4pc~%% Hxk %}{:>%[?be١X)9~yuk;It'q4V|}VALn)f{	D f]F:l}4-x% p["=h߾<'LmqxN ͝nGP{g1I1!q'G^C zԅ!(b
͓f{n(^}/]"q#FNxN ͝nGP{g1I1!~f瑲ri$]"OUf{_5Zhqʕ>S=$p"+x5 Rbbx0+MϜ;f{uj3k#/,x4 ɬ*P4BWzR.ֱ:'9{uU:Gq6uoxCĢ5ZuK]vJwss5|6RE@[p댯 Q2x5 Ros>{ZFٸf{tKy5cgھ*-rvxN yl_DV1!q'G^C zԅ!(b
͓f{e3D*}Ӻ=) 'x4 L!-Ӱ׽:Ax B,?H[x.ajx: p["=h߾<!(=XfYV[&GXl-x$100644 BUILD.gn E1n+Wrn$ƙ&m{-R?;rH"W CI|@(Id]~QP	IQ~2x◼̔nLf&'
"QhOa_Mw9yG4U!V*n1dE*Yl=IѓAD_1%j׭c!f{6)K_fqayu4M|Lx? *.τ1-4q[2?%Bѻ?̡w1F0mxp Q[h,@R<Rp	ew欟IBOila	=x8I%U08'Of!rIN.C=jis5^/Elx5 !`ohI4*T|ڗ5{ӟOOUFt{B+Am0xN gg+-sFGܘH{1F*WW,S{iJ`kЀnF#x5 !os>{ZFٸ5{g)f)K-ѻ
??Qx5 !Ox])I/ד5{ӟOOUFt{B+x: Q[h,@R<Rp	e#LL3>o<:ڬ5^x "2R/}y5$x;d(+uxNj>7&._%bԔMzp*gɩN"f;2_i3&^iPfDFDq֮Yb+7K23Yx5?}L9jW7ٟI\97^%;0~S-'W17츼oF{-u540031QH)J,K/H,`96gnwG~h^Gv¢2>5--5lkVOw
y}t3˗?cGB^&_7M.a(.̸̉r5g7>N:?ْNƪY/.eŗ#l"ڊ0N
}zQ19-lJh=ϣ?s61XV:6vդ@7>E2NK-\\&(r.Z%ļl	+ZyKIJ}ZdYiWoVro<]QD=sugh8ٔUB?GWE֫z]Ӽvdr㯖gLRXp/  ^x> !rWjۓ#LL3>o<:ڬ5+x5 !H7hXJM5{ӟOOUFt{B+Lox;5H_癩[kElrEofRV wx?ZQx4sm"쇺85㾥|v l)meB6Oi~)ގ7gz	0vm]cױ|Ԕ|>~OE<&P%[Obĸ100644 drawing_path_effect.h uvPub~rqho%J8AM4tCت`Z{aѸ}:o0=PPQWߗrk9
O0&*ᓵL Oǵ0~%bQfHLrWGqY-0~n;!\`KƓ0run.h r76w']yu߇!'_
|~IhS=؄5Eb(:na"t	R"=G<MVnj"lx;d(+uxNj>7&._%bԔMzp*gɩN"f;2_i3&^iPfDFsEzc|}cs;MW$.俋/rϒUgөv\7=g(%g$de0؜T3;#j?@O#;VaQ\Pg}ag+ŧ;ļ˙wKm䟱#r!U/G_&lyzBZDf\9ǚ}ElZ'rcU¬[QՉw^˿sd6YmE'?(Or%DNџBZ?,]w|+XWjRHpM'ݥ.Ke\g|SbW$J>-2q֬|47c+KkĮ(f:3Ymo`l*b~Uo埣̫"si^;2]Id\j~o8IOڑ i+sxpR`~$=F"o4W{R-@ kн)dDeB݆sb	=u"넓m#ճwe5iSet|O4xSҼtp5X쫫=Bɔ"Ԡ
!a&\tCgQNnĮ
#;'<0=e
rȃJ [PsBJ0&ъwl:boD醓0~-i;qPTv)jJ0-0
ge!00run.h jޜIibW4!@ٚ71?R5Eeg)}d91OǓ"nWRp/)ׇdxpR`~$=F"o4W{R-@ kн)dDeB݆sb	=u"넓m#ճwe5iSet|O4xSҼtp5X쫫=Bɔ"Ԡ
!a&\tCgQNnĮ
#;'<0=e
rȃJ [PsBJ0&lSq@˷30~-i;qPTv)jJ0-0
ge!00run.h jޜIibW4!@ٚ71?R5Eeg)}d91OǓ"nWRp/)C	/x;C9L-O>'<| f ]x: ]9syI&EV\n<`yOl'qe3xX 1U\6k\JlSq@˷30~2ՑUO>&]qHH})x; ;I%U08'O4BfKY*"g䳗-dx6 RQ~2x◼̔nLfJ{M"Ug tўvx;CHS쫾D.tYctnd6uln %(x; ;I%U08'O4BfKY*"g䳗-rx  {-ђT'x;CŮm?s:&=w>m:67F =Z	]x `ZQx4sm"쇺]cױ|Ԕ|>~O4uvPub~rqh ت`Z{aѸ}:o0B)*&aVg[vX5{9ϴy欓eA{ҩ#6x@L8-x  !@ٚ71?R5\xg R`~$=F"o4WxSҼtp5X@ٚ71?R5{ {-ђTZ6vx% gQNnĮ
#;'<0>)x6 uvPub~rqh~uVrT d
＊nx ZQx4sm"쇺85㾥|v l)meuvPub~rqh)*&aVg[vX5{9C$$?x;C%">|Ns}":N4ـMds# 2x ]9syI&EV\ni* IOOP5MtPPQWߗrk9
O0&*ᓵL Oǵ0~%bQfHLrWGqY-0~n;!\`KƓ0run.h r76w']yu߇!'_
|~IhS=؄5{<`yOl'qegx1U\6k\J쫫=Bɔ"Ԡ
!a&\te
rȃJ [PsBJ0&#Z!0ΑȂD5,K㳓0~M΃qNIuw!0ΐٟpͺY
ޝ0run.h 'PD1*JBC>}\e!YgPoPyH#[-x5ED]ULmNg|"Qհs% '72Jz$s$x= VK.eŜE[8M^0~2ƬH[1 Fo5%,kx;C%">|Ns}":N4ـMds# 2x;"Ȃ+ky}۲ٶ:|){? ,x v-i;qPTv)jJ0-0
ge!00run.h jޜIibW4!)*&aVg[vX5{9C$<JTxa%}{:>%[?beّ[h,@R<Rp	eBX)9~yuk;It'm#k-`=l<l5b\O4!Lf<Z<?ELvbx'Fc6hIs*+OGtC$TZU\c0#,e$0=ZHg uۑ̧0&蚖my)_8y2^</q0~W}CTҋL]ΐ0YKþ9_M@om*`r0run.h s#8(֠9!f!rIN.C=jis5Bƕ.px6 RQ~2x◼̔nLfJ	޼aPgGe&n(\ӵ=5x;v[{G',vZ.'W )xT ;I%U08'OhgQNnĮ
#;'<0[*ɵhn'܍$&vx% gQNnĮ
#;'<0>*x4 R`~$=F"o4W	u6\zW#Pldmx6 xSҼtp5XX-W&	'"٣2x;5ʳn.6Քm7ԒL ;`x 3f	q_ܿ 9z1Ӿ	mSu<<G~;kyBP\Go%J8AM4tUi^w|ͳMfZO9EKcL*J7#5E8'.Y'mJ>)ē"D
ΠE)o.A^%;x;CH==];+euC :x6 Q{R-@ kн)dDeK͙sԷH{H'x;Ck[)ѣ鮟Gֺl"7"?x;Cӓy{{rg,l";qx;Cڏξutq>)<m:l"3`y#x;CwzG47o:67F ,Ux= VK.eŜE[8M^0~2ƬH[1 Fo5%,!x;"Nck<(1?9wBAɦ ۨ;x5 !kJ2fy ]Eo5{g)f)K-ѻ
?xi $100644 BUILD.gn s#:(+|<|62$Zglobal.h ztD[9ioԟ[ځ0~2ޞz|
aos\/Vx }[omɏh=v[Ө	Iq4V|}VALn)f&:q8}<*OuQf}TFќ*F<1cI+NQAo%;]gxi $100644 BUILD.gn s#:(+|<|62$Zglobal.h ztD[9ioԟ[ځ0~2bN+I@rq3jM&@{*_xi 0m'~rγ#S;<Y$8Cѳ+flDUvEO$|39~K4xi 0m'~rγ#S;<Y$8Cѳ+flDyeY2hwIҶ3x5 !ACg[zIoKӽ5{6uS~Ox5 !ݭi^mSXh.85{<]5VNzFԵOx;"ȾM2wH)cڙ0wdS~ s|x4 ɬ*P4BWzR.ֱ	m=Vuo h.`Qpx;"Ɏ.Kfu}mBɦ x"ZQx4sm"쇺85㾥|v l)meB6Oi~)ގ7gz	0v	}Td;Sݓ8]cױ|Ԕ|>~OE<&P%[Obĸ100644 drawing_path_effect.h uvPub~rqho%J8AM4tCت`Z{aѸ}:o0=PPQWߗrk9
O0&*ᓵL Oǵ0~%bQfHLrWGqY-0~n;!\`KƓ0run.h r76w']yu߇!'_
|~IhS=؄5Eb(:na" zf;H*CcρlxuRiC #yK\t_rw!YB]R_mgr.h 1Wo:xH	q_ܿ 9z1Ӿ	mSu<<G~;kyBP\G(d01c9tr !ؓRUi^w|ͳMfZO9$6UnՖ(٧!
V q0&bwF>zOVߓ0~@m )[:$$uw_)0;YHqRap55E8'.Y'mJ>)ē"5<9w0ͬ}Í<Mpx GRiC #yK\t	q_ܿ 9z1Ӿ	mSu<<G~;kyBP\GUi^w|ͳMfZO9A8'.Y'mJ>)ē"5<9w0ͬ}Í<MVKx:  e7AlfkdQIPD
ΠE)o.AxU vi5H
{NP0?}y #>zZgj!ڟLcaŏSaܐu5,%ntx;"Ǔb&M8zfCNev_ɦ ?:rxCve)ǑzzĕpoJ x? \+E*O7ù7ztD[9ioԟ[ځ1FwxT +$12H5XYKuB۫3q٧k12@R$B;;n0=/_ٗ&bx: 7Gl%:5M12NK ߜi.FK|HxC;ˆY^+ZY0ِ]dz67F #91x% 
T؈k1=;1F@O3x? \%F,U?S{2}͖=Ù!1FDMx~%M`eV\}N<(|e%f }-x! Wc?a0*ܜ4
̳" :/x? ¶îʀHNڄF#9Y%j}:kP"1F]q Rx! ?NlKJ!2m"?%x,ٹW=:}COɆG OpxQ QP1Ql+  QΡiq|݃q¸6T|"tlJ$DP6sxJ$QxCvߗNP36xHMU& [\x3 VwB0Ώ }vpj.^LeXᔨ x[øqBHHѮoK.֞ȗ,' Mx[øqB.^:,-|oA'Ryb zx[øqBi=/
<sb sV'x VTl GԴ]TJӷjB!zx[øqG/%VHN\.SUǿ "x3 V@uG7d?[itj.Bsaxi%wLH[Midx[øqB%y=iҮ=K	 ȯ4x v>0>{a1N"rBx 	ϐS/&?5Dx ^LeXᔨJ,x[øqBȫ/&I]Q5[̓ AWx[øqBUpiƑ%_L-Pbb ,Wx[øqB+ۿZ빚gIּ51	 +x[øqBy7Mc 2zx;|yHKmKEi]>F9 (x;|y;ݏyvG|Zs߇Vx PeU-yэvksٕ*݄x I7g@Pz.y40000 av_codec g#XYx㐔M<$o%zR*yCL/̇;e?2r2ۥ{`*)7O040000 media_foundation ӌcNea`ú%74<
"A?ZQT|c[2ԢNSx;|yȩ#!'\b\Qk# x;|yH'Nɇj?P"qF  +x;|yHOt=_2fTvm}Qk# Wx vjȀ$	
cNp*;x D;^."ɒb#*Պ3x Dw>sCBa*>ax ^Axu*4x;|y|Lם]&;\5۸b γ0x8 9Ia1"!_G*g7eM381 V.?)%@2wx;|ynSKkmܞ~yFJF ̶#x8 9jXE2A1txͭNM381 V.?)%@2Ojx8 9Ia1"!_G*g7eM31w:t{U2њx;|yD-'w~9!7 ,x;|y鷾Ug6),2}+M~ex;|yoSfֱf x;|yHtlI K+|mqw?n}jo%# 0,x;|yVW:iJ# A
!x;|yCwô*s}-[S_m)F qNx7 va"phső}sˍUC72ݬx7 va"phső
TscaV#	_˓2WZx7 va"phsőB$)^>ʡ<NǓ2i x7 va"phső;9auRwN +2fx7 va"phső2<KL`cl4c;29,x7 va"phsőȷ8SkpoGHRa2Nxs 9<}G"4gYOp>40000 audio_manager `7?/^?(auci@$l%}o7@h]TRg^P0x4iǗk	gW!HA< D6xs 9<}G"4gYOp>40000 audio_manager p+oufv_6n'uci@$l%}oB1!MH:0F/X3xs 9<)/ S_}|w40000 audio_manager ߐ6*ucܴ5>_k8yPuiNuhx/_3x4iBH-+gxb6ebb e+x4iH]WFYL Yx aߐ6*uJ!x4iBH-+gxb6ebb e1x4iµ50Hl*kb 
)yEږG{2ٔ";.Jܞ:lCot &x3 a6I\}qʠr	Guj/o'obbr0Bxk Ii[ T 5EُCqb-}4I40000 common =5~u}p}o|*̑9eߖ<Q}/ryx3 &77z1=;Ċ!9ƩlHt.8ϷDb:x F
HVx	ICMgx +FQ3dّM2tx3 a`7?/^?(aur8"NH-EqVxJ `LMr}ޯt:i@$l%}oj/o'obb6#(6x sszOjܜh?`Micxqdwx4iȻ-S{ݟfWnsk@ u x 꽨L`ܺM\jx{qjn/WndbIb: xK a:i Cy}҆u6`,M*2TJc(2us>&E4@M nxK a2
)iJ 6]u6F驵iigg64afO/}שq~k-"4x{qjn/WndbIb: _x{qu.36OCʹ":n ?x3 a2
)iJ 6]ubATk5i\TN)_"jx ۸	\7摿,x{qj\9Ϥ'7dNe5壔ަu ?+xK a;Y^=
yh:30 ؑu6n`[F<_VTk)Y.#M?C$YxT 5}O>8r[ى40000 common m
r?kWYkƑlM$7̽rW<)ubx{QD)E/=KLS^dl^ڒU )G8x{qBۂ
6ΊLTk[K Dbx{qBk^7*h{&'-}> *`x{qubJN6Kp6 F
`x3 aQ?뎾`:Ze~Гubr4|(;dRlJx3 a@?fdކ~\^<Lubr4|(;dRlkx3 aqn\upY:ү4OubÈa}oۂ=mށ"Bx r4|(;dRl@Skx3 adrb$G}9?Ǩub@@]a`i^YWHI)x{,x3 au oam ~5)rub@@]a`i^YWHI)onx3 aze^&Zy/>zl5Bؑub@@]a`i^YWHI),zdBx $8#Ʊpkx3 aBъ`D.7Xަ#ubc@٥;G2~QSx3 aL.e\_>ubƩlHt.8Ϸyxx ƩlHt.8Ϸ=4xk Ii[ T 5g)O1wqMX40000 common =5~u}p}o|*̑9eߖ<QF11x ܴ5>_k8yPu,r^x 'cP	b\8,<dx4i-L:Fu{_ib6x$ D`ײj_a_Y7^R=kx<ynJjYfrj|j^FbMKLO-`Hm;Xj{|'M9) }2x<ynJjYfrj|j^FbMKLO-`p/kNY]ppL	O zx$ D	ῃAձ<K8]/|7^D/x? D`ײj_a_Y7fչ]F4W"fp%%x<ynJjYfrj|j^FbMKLO-`q2!9RB=L9) xFx# 
̔1>ϟe׏|9zx<ynJjYfrj|j^FbMKLO-`|y3!L{>cBӧ yAx<ynJjYfrj|j^FbMKLO-`浻")_t	Z~=6sS 2x<yl9NӰ\gOc:,1+}× d7x|iB."	O>&{JڨM'a:Ad9c jx$ D"C9' }ȜI4&7^x5 ȗֶȲ"	TO>3LO743e9ܫex? GKO743e9ܫ74d?-Cz^Jȴn|p%qgx hi{6hbA?1r!,xtiȴο2U[-f5qmlć"Ug\xtiYdmu	SW;y" vxtiYR!:QQ寫[ćE 22x: h"µ({̑%fչ]F4W"f.%Bx<yȜgN8uGBu[T.W< cxtiȴο2U[-f5qmlć"Ug^x: ~B1[y{%CN&V<k]i.%OOx! r$}eo Q@Icw@x! hYЇENd&(3ܑpx! r&h6tD_3 x! ELS~[Px! x*;:'tq1 x! e϶P'_yUkJ,`0x! le
%k4MeQ.dugߑt`x!  x^ahOl|Kr\x<yHT=*oYrjƷ<|
BF`x" -E|g$*J!U?^9x -;V2L%HtIASڦgx<yK|2`l01  vVx h"µ({̑rPx _؛|t rAr}x ô1ws2Pt7sˑrqZxtiYSeu,ZvoSexyg" ϕ Wx# @iCGqĻcӑ.%&6xtiY54nӓz嬅FM }F\x# ad#:̠հa
3.%#x# yM20"Vĕ4".%3?x# ~ߌZh#H2:e'.%"qx# cFF([{;PIߑ.% #xtitNuǶ2~)K ć"UTSx#  "M'QSRH.%CxtiH|a󍊷]bɳ=aCz 5x O743e9ܫr<-x! Ya䯄YBS*\A\x! Y 5@\ɍ·W^ٵQSq\x! 5>`:͠(s n;x! j>\5[H'.[?x[ƸqOѵ#LtdJ,u+<Ad[ WP&x  @iCGqĻcӐ%OUx  ȗֶȲ"	TO>3F|/xxqi搣U&vh
^6 'xxqi?m["e[/t~5 Nxxqin%~|&Xܽ̿P T
ux wȋ"@FVYCn5j9[x 4~}UmNpH
xy}*9k.=])D!917(Q//%[/8?g%wϦܭ%twbGcߜ[^|8\(:ňļ"G{~Fo&S'~qhQ͹9sao>-Ǹ
 'E_xy407>F 7
[xySc\ϰ.7D!917(Q//%[/8?xw]L,?:%~bTk9Rňļ"K|;#:ԡЩb&~q]XέMr[W{p[x* `Exb 4?z9?*K\+RZ,100644 camera.ndk.json <
5@hґsAgϗucXUц8	0,xc @3Mlj{?5lSW[e100644 camera_manager.h *L}84	,BБF䗹sߎ[PZNRg+rxyHrlrou-s0Y9ُq r
xyQܟ=+%DYM.~1uC3ԢDl<jϹX=uq>nc4ÄbI.6+/5(,3<>D/	;}byi,:1MawI:G XD
1xyUӺ?̒횾HQD!917(Q//%[/8?Agz&nrhȘKN.{4kי*5(,3<>D/}W	uJ-ȳ{b9F1c?V8L|ov<bc zIUbxO _@^H,"Iaݪsmq`@:|_8Cp*hIC7wCJ9!cx%axyș?rEVv?3|Q[]cF 8&
;xy\%m.e[/z,ch``fbZUZ9w u.sm,ftUL6fEBœ=b<?fe痖e0<aǛ}oS5V2Yg9F1).IG?6|# `BkxyQܟ=+%DYM.~1\xyUӺ?̒횾HQwF qxyHl>S6\t_ލA
>xy{vE?kay>^LLsSRL$y_(}7?cԉŹOe4;׵O>, nDAIiQj|qjqqf~^¯	΅Ҟ5ßg"L!p_m<}X/ Cpx7 _["y/SJlD"J[s6 cw[`.U+O	L!שo%xxc 4?<\EK$-Xš"!
100644 camera.ndk.json lSDjdXGAŏv}sGpUh- cU<{ε`*&%jx8 _lSDjdXGAŏv}sGpUh- cU<{ε`*P1x8 4<\EK$-Xš"!
HrӐ]d7)"5V ,*zxxz 4?*okIT`iwjfņ100644 camera.ndk.json 87dgO۱ة9՚smq`@:|_8CpUh- cU<{ε`* E7	x7 _uV5#/}Ğ$ZsArtɦ7 >XI0Ox8 _#B&5"1oǲ񄕱sGdT
~+/G?3]JJ*X/xyHfKy/R'-%n9xc 4?X濳GqGq:;.;100644 camera.ndk.json LMm$^(+l=±s'g,5`IV*+x8 4])gJ&ߐ&HF{;A_WNN͠k[  VH9x7 _nh˘sARlz>~h	[;H^0M3Fxy/'jx^Kb~4Y: mrx7 _kǧg
)uH*ssns;&|JVH1!HExb 4?B1"De^}hDG100644 camera.ndk.json [ȥosdHbl`fre[U`!+5xy/ƟZ/m,o]U|!898`"u x 4>r9L{JױH#Ux{I 2sSDY]*opүEiFF }x{I 2sSc֮3>ۗXzbDnהd>moq]v+@	Dc|AfEjN|nbA|^bA^7F_-I-*l$51 *4x{I 2sSÌI.T&*,p'+ix[[)LL 2+Rss22d0r?jHJn8Va#lq #+m0x{I 2sSNpywj5e.}x7n# tex{I 2sS~l5Z?3rktڍ
. <Kx{I 2sSw^nkJNޥQ $Mx{I 2sS/a}}[<2٨ ?x{I 2sSX\b}[@;5\@6x{I 2sS6L(`>i{$l3bVlTpa 1?kx{I 2sS?xi\oՇ߲Q HU x{I 2sSXX'4d魰
. 6\Tx{I 2sS/v	15)Qh֣\1x{I 2sSt]vR*.lYkڨ G$=x{I 2sSvUMtt8X+ŸuB\)qx{I 2sS?;Ff'ۖdqnTpa /&x{I 2sSnzHIaם>Lި ?&[x{I 2sS#hΠdMY߇o7mTpa KHx{I 2sS|<I=0CLǞI*\>ExQ FOX*K~JLA100644 image_pixel_map_napi.h X c$=TĎ2SP^c!px{I 2sSgjo89׉=Q @Jx{I 2sSM0QQ={=:}Vo
. SFjx{I 2sSޯ3T=3P'3\+x{I 2sS$|?믉fcῪ'ݨ Jo6Fx{I 2sS*p}p~o755\1 zx{I 2sSe6<2P"#u# ~.x{I 2sS>]:ksI>NLe# e:Wcx{I 2sSsdd,zEto27*0 3x{I 2sS6[3N=-ަ'lTpa >mx{I 2sS+y$S*Eo'ҍ %?x{I 2sS6fc-ieYfmTpa .Zqtx{I 2sS] hm'䢚6*0 G_)x{I 2sS.gӚz^E錟6*0 2Btx{I 2sS[Ϝcuܦv=/sz$oTpa D5x{I 2sSg`&hټFF hx{I 2sS:;qM5\ׂWSsי\7i4x{I 2sSL6DOK|FF ]$ix{I 2sS^bdX{a9/Nqۨ Mx{I 2sSLedb|Қ6*0 9lGSx{I 2sSNo_\Ϻ<3Jxc6*0 Ax{I 2sSM0Mjc7@yɕ\1rSx{I 2sSܾ*6b(~rجoM\Ao$Rx{I 2sSf=X57WGX|uoQ Fl5x{I 2sSf{pyB7ߨ 3Vx{I 2sSlf>X@ϙ)fiۨ 7Q;x{I 2sSVxԝ$MRZӳ6*0 M;x{I 2sS>?ԕ-+:\FhFF q,o%x4 )׾A.o#c1_q*m=5e}
(0IE+MjxK 
J9޿Ok*0wZ3Z$,kEMW~㌬rcRc%NFx @6yo[DTGux6 @CЖꑎȪ ;0ZTPzedfxlt,NTǑ)<x6 
J9޿Ok*0wZ3Z$,kYx6 @Jc{/:NC0&ٵj9TPzedfxlt,NTǑiZJx .ٸiഢcd]nwx4 )׾A.o#c1_q*;jځ\8`X~.b)<x .|-qCpb{ix4 ӧc6i_?ʱ*81T0N8QM-\.xK څm*FDq'97!4.*5	YR8oF^54Elu~OEy+ex;tiHN);[!ݯ%WJi	 
Dx4 ӧc6i_?ʱ*6iy		Zsd	g,Gd3Qx6 څm*FDq'97!4.*
eEBε>@YQaQx4 >f:_r??v*3/,N=6x6 L]V[>*'HQ#Z ҆Yixx` 
J9޿Ok*A¹dby&̗94100644 pixelmap_native.h MW~㌬rcR-wx6 lRm\NebY+*'HQ#Z ҆Y91x @M>On7ănT$^x;tiȃ<J'c憎! 	x;ti]W˛ɹOTx! w4x6 @>OGy&(IבTPzedfxlt,NTǑQx;tiU.IN~j0KDė <xK Cցg?~xHDHe*z	KH_I,+\3v/~=ȉ|`:WKtϮm x{ mj|Tx\w*G
߱)?0d	KH_I,+\3sϯ?CH2UEP>H'dv`w.;dx4 f&eb$(ci-bб*%İ#r=sv^1'x6 Kj f7a2
B*zRlԞe;^+O@M|Sx;ti\{7>s,l}4O 1xN KyXEV *G` ΨgG-<;% 䄇Pf0BOmW|,UY%]x;tikZ$ﳓe3oM}a# |Cx4 a]&onrU:J8*WbMV.`N$s[wREowxq 40000 core %vMp]Ӆ_	C*1N42m|/	xpOw·䏯~.O=EZOhgCʠt8
^j-2yxI RZ,i՛sY-|\ 6v	1x ep=v g>/	 9_info.h w̥b[B_%+5eSŚk[=AiV'5Vx#m"i 100644 native_avmemory.h (-
M#䗜X2^:ͮz@\x<y\7]K7JY-]Tag }x{I RZ,i՛sY-|DOMk]e3f'Me߲KwkBRHݛ֓u/!xx{I R}t$!߼0"5Mf}GnKV bLEx{I RZ})|+'oM;%p j<;8ycȉLʳ]Aa. wxt 40000 core di7qfʍ$i{)A6S!P593D`աGg|0~7AgV[R:-G>7QxA 40000 core di7qfʍ$iL_s9~tW:-<!xS pyVZ8e^pA7в593D`աGg|̘)x#3c)+ZlT:-s~%2x  &0~7AgV[R:-/x{iȁw{DUپ&9{iSk/lŨ r[x! pyVZ8e^pA7вģ
/x{iO?&*7+y1aHd^( ,x{I R.dzbyST*s# P$4x{iȽ%$yѪV =IJx! pyVZ8e^pA7вģ
zx! IE,Cj@1à9k+摁ģR*x7 4Gݺecq4QHύ)$"ȜU,C(1nZ V,Fx{δI RV&ޓC=`Ixx ODcc:N%A*Z i_x ƾ?!TIT1QZ`Yx /ЃJw	xqBޓZx| s߾{=2ґ5dvdlA88y&9=A>p+Uh诚100644 native_avmemory.h g܇M|=%yRPHυP:x8 c}-NTDN)N1~V϶=ZRx<yd[t9}b1x7 "uyk ԛ1-S"+l=6+BC.2DQ()88/zHxP US8m%r  0፪ϑiwuwp7=E1"-HBpr=p"8/F#^x UL~ք^-uSЂ̷Μ/ޑi
x7 UW93˘P*8ɑigԷ	F|8/CrxKM(^feoݢ|/-z FxKH#Ƚ'n0[A4N (xKH#>+Lqf]:\C $x3 yҥG9Zz^L?yc7<=x}mzkHhxe ea )m@>3b.Xƺ V+V.ǥp	_b2^>[J?d8yc7<=x}mzJ0^vx4iBȇPCcm9'-\.~pO^ *x4iB̭z9<gd QN*x; ETFv岹n@pbM8b.ezl4'
8dx!rWqԎ/V,)_y (x!"'O%ړ5gW]X I
<xO ab킬9`*Qc򩛾u2R Dh4y9Kq$~0c}3rMgSM&&xiC<K_O,lu B+Gx _'eN-_CtxiC<Ȫ	Or.~0 *xiC<f'qOW˱  
JxO a5lI3:p2h9u2tiMOS~toXGd"`{6M&v,"C`x [|}$Q/Ֆzl,-x v]aCj6`;;H'p49xiC<)#⛲]jsj x ͂Ŷm"Czg#Wx̘6W24a&Y-O+s\Xi $x8qBS>:?5ia} B/x8qB?J3s'ims|t?Jk Yx8qBHKg-'Jtޭ !x8qBHOaYȇ>"s	 M-x8qBHܢ㝯c.qce V xKK$Rˣ=Kgpx~(HoT\ &xKK$2ɚ [[l.[o. LxKK$rHθfq_F& rxKK$dIȼ{/Ydc݋ xKK$gyΎC}S{ 
=xKK$kx#9EL%8 cxKK$IjeFK%]Kl {vcxKK$r[ߕ/G\7k2 =xKK$x?χ$L3 _cxKK$b/!r᦯?u3]\ 	xKK$˾j#pk^, 
e/xKK$Afs-59\uro $crxKK$2uG⛜/t͝xh xKK$bCzM>Jݰo*qC rqxKK$$P'EՙN;k®ˬӧ u
xKK$aMح«V X<xKK$r?`μ_!6'{R__s ;1bxKK$ jשd.!zW  Q
xKK$>#Vx; )XrxKK,ji7JsNt=ko [xKK$Ƚʌw;xg:og d&xKK$rqg̚G7[=<z L%xKK$v0ڬ̩_< y(|x8qBȱ!79l% )&3x8qB	|>3.Tz[1 
31x8qBgMu[=tU4x"h. JX(x8qBȺ*"O+w~4)|zl% Ox8qBHq??J^ufo (
vx8qB:.Hҹ 	#x8qB[7?|ϤY1 !x8qB5ە/]\30vg Ix W]%	好'"sx8qBȄM&[eWjj +3(x  F>E8(Ix3 ;:e%ֲ3lݍO4.yiL0Ǭh."=umWx8qBw=wӪëXѽC >D-x"~ۧ}wd?Tq (yx QQ=IbYl4e`/1rL}!
#x QQ=VLS]Aj)
Tx QQ=a@5C0x$"
z2J0rB	'x QQ="Yc)2쐊q}	Pxx QQ=Hd\3nW۶2$^~
'x QQ=oUSޢ\%Iv#HΐC!'x QQ=|VA#a`Oƈw'x QQ=^NLqOen{
t'x QQ=ZE-uXgSB'x QQ= H-@Ƌ p.{
u'x QQ=-POgͪ@.I"Uv?	'x QQ=}B=,(lg'x QQ=@}\;;43.so
+x  V8/)'"VX-x pp0}G!ѲQO]u͑D,592x+-(wOLKoEeFg^ J
px" .~+	r#& 0lAM 0hxĘ9Aob5 90x [{cȴao#\_x ~sr ]_xwx8qȦo[NT+/ӑ
i\ ͗px8qBHlRXdqH:51_ M
+x8qBr+Ϥr-K(Li 
s+x3 :j^>.nU+~N0YltJ^&?~I5Bx :XOϨ¹N1ʊ'͑NDnx8qȇegߣ4nD? %x8qȅKJyxd=Wz~. ?Cx :*8V汣nNDox8qy>3c{~. Ȩx :צǊ qXNDGx8qȷKSWyK|p
{vπ'\ ƞlrx :tYQˌ*;NDx8qO٥,H<1َ7UWщ~. UJx :NPa6T~~\NDѪwx8qmJ,ٯ[7m~. g"x8qd-^~},u~. ZzxffP.6C-"ӶҺ P$xffP.R$<:༯ZW R*xffP.¶1aSLk!7=~ x aiJ׽N;ՓCuQ/xk`j`F4P)&6''R+.W 
@Vx_ a@[V4i$Bm&q
100644 oh_window_comm.h #ӮH9sm_j5"IH?K5[1"n)!IdA!%%%Cxk`j`F8bIj\))wg.{ lxk`j``%Ҭs|]g& O+xk`j`(Rk;姫z_2obi7 HUx a$T@3ƴRݫ?u
xk`j``%bfɎִ<-84QC~ ь{Txk`j`(zi$ϙy\#\; .Qxk`j`("}LL7GΟhO3 Vx3 :+jľxmH	B$}NL.Z&  =Vlx3 :+jľxmH	B$}NL.Z&  =V-x3 :+jľxmH	B$}N^GW>a4:@Kx6xk`j`pPݬ;ӎ=VX]7oī mxk`j`F8bIj\))wg.{ l1x8qBH䴾'<ё{eׯe Ӄ^x8qS6kuDo/ NIx͸qȉJ[]Mqڼቺ} _Cvx͸qȤ0mmq'GD> u#x X=ϵI"-ARx͸qHاiߩX>OF`n ȭx͸qŋʔ(k~asD> Jj,x͸qȭ9{)y?Q Yx͸qv~ͥE;x;en #N=x͸qOMoIV
iٲmn thx͸qHcǦ/NE|n ʝ"x :#/HX7ßr%-y@x͸q|%5էoş=ut]uV\jx͸qDk˘8nrk+5;̘>Q 7~x Jsp&30lՑ-Bx͸qfޥLk
Ox{R%D> mx͸qk?kYح[}\D> 1<x͸qȻ"}~u ޣCCx͸qGuMjN/gbn nx͸qٽ?7,ԑ`Y}pD> yx͸qT=Mܗpd,pmn "Dx͸qHTdĄ}{7_x}%} ˀxqHĕ)K(4PbF R/x3 XN+C)(tQם}e&׻)¼i8caqxqA2?u;^_wfz 87x7 9Z]Ѧ݂_EjMײh'w̌&àNCw6x7 9Z]Ѧ݂_EjM\Ev{ʓGx{yKmFCNl!=%vo] }uxP 9:aM({SYќr{a\2M<pօ\7:˄SSS$s[ꜱϴoyЬIrVyA^)2&;x{yH
ѴrKNa-޽J;_y"F ;x8 ycTUqpn*|8ϴoyЬIrVyA^)2x` 9[{~ǼӥM<@	/ޗ	=%player_framework ,%IF~2.p6x{yBH֣1[n	>RjƹA 	2bx8 U35t5+=B0~;
FOF2?׶.02{)x{yBӜ]|-DMO{Uu F ֖Ux{yB]6)MŐz F )x{yBnoڹz	32D87 -x *g.SIyږNMRQ9[x8 pօ\7:˄SSS$s[ꜱ"eBbiC;2lx ˳7vf*R13x 9Z]Ѧ݂_EjM0x{yBzF8r|facsHx{yBbWE:T| F Ϊ{x{yJFD6[MaxڇծR佌F (x  
FOF2?׶.02rWx @	/ޗ	=R:x Yr<b׫*?R=-8x` 9[{~ǼӥM<@	/ޗ	=%player_framework "eBbiC;2-[ox;|yCe贴Fy때B*-\:y
 ˱@x;|yCH"s-}0<jWk){F# Hx;|yCJoPll7xu)F 
ux;|y囕OkmgyK PH,/N-.c{/b{mD1h}ӽͺ?gNA4禦d&Ƨ$8V2+7bՇfg:.՞h/"}++o/
2z!1y
 D1x;|y{н۳ob L	Xx;|yetual?+ BbY|qjqqf~rƾƆ<7OoEV絔(L,`^lj.tE&;.} 975%31>-4/%db۟.-μ@kZɎ~6NڦG
< FBx;|yXLpԢ=վ\<.#nF9 .x;|yBrƾƆ<7OoEV絔(l,
a ͟Zx8 9^{tL;G~M3BOCSB-;02VTГ2Q!x tU%Q!NCO<) 2Mx;|yt<<7X+Ud@F9 ~,x wl
QT7ے[汝)Nx;|yN^Ó+'|٦:y {x;|yțOkmgyK G'x8 9&*l0 5DU'M30k	=s U@V<ٓ2lkx{|yC> X_x;|ye7.[*Z=|41bo%# HEx9 yS&^`-u,j"eBbiC;2eB@axP 92	bO`ٵMiM<˳7vf*
FOF2?׶.02С$Ex6 EKK>R6x	Y#`IsD~gh$	"h1@xK E_!.ǈ9
]1]Y#$➪)!)-,
zzHyjX	;v803!hxK E(}zF_X&蛑Y#!*=R/C}M҃i#<s	r%8x;xQD)E/=wwN~Z+/rm\ C7x6 Ek?GbDG4 Y#1O4,d*\^gg뽑1Zx6 EчOzi/|cGxVY# G?Xo|1}x)"b#ۃ;ejhȎ+_ u%x)wѳ<4_;Q BMx)zᡌI17|  ux)6Eo<SRS?-E y
-2x[ϸqTΪ3ŝo<1" ŢI_x[ϸq?&'[]vqĈp  x[ϸqlؾmsO͚Ǔ *x3 DU*2.X<܏ǧuXCs vк0 \\kx3 D=JOr`~XCs vк0 \\ejx[ϸqlؾmsO͚Ǔ *x3 DI9~l9,mXCvl=쉽L|le$lx[ϸq{~8?Xb"^"ujʉ ʅYx[ϸqHӡJ=:4S~]#x[ϸql	/PZ􏍭./ )x[ϸqlؾmsO͚Ǔ Qx[ϸqloLsxu
<%
 <
yx Cke6*x m*իדr)tܛ(+h.,x[ϸqlމfwXު(^ 	Sx[ϸqlm7EV}K}i! ^zx[ϸql+3}..hJ7wQ1 9M!x[ϸqln-a25	 ,{Ix[ϸql3g*>kv
L(dfa-UV qx3 DvO^~-g*XC>x(uQq%9@Bx[ϸqBHyFKQ&m%Չz *x[ϸq$q3g*>kv
L(dfa-UV @*x[ɸqBʍ.Kr3v+j׾Iب *x Dd椞F.XQn,x[ɸqBH{i}/[taF 'Vx[ɸqB9Gק,qW})S`r&ꉍ b$ x[ɸqBbŤT5U |+x DCG }X`SXQܦWx[ɸqr93ffpZ#x3 D>{p:QͬBX=g[Bu`E5)}ܛѲFTlx 0kژ~O޸	kx[ɸqB{~gtv>F Ӄ*x[ɸq̍EY-88YϲzĈ@ 1Tx3 D+U(a66{{XOBVؑX=bIM~dZ谧!kx[ɸqT?s2X^ 8Ux+-(r8*z5'\ٙG ݳxT_oH9/m5W@v<*v;*fUml;θ=8w/Woax6|"1nxT`TOM*P^!x5֭⢂soLA[` v5A%44
	+Xs5
rK*r<qaL3*gAMO4jswv0+rmr}4JT
$pID,#%ۂiM#z+r J,I40WZ%%$} `vgpű?(QY4/OA8 Rbă4H&7ib	⁄h%s9Y[",eEF")k#_S%+
-R45xa!}Q4Ke&9.*5J5JhB2T KgVܜ!=[LkYR~bCP
e[߱o.>9P"JI&wPrLQS9!)Č\k4einx	_PT͂[?zY,I{'V<~ 4QGMQN*kmjct랽AfpbլtE7) S3_yb_94:W(Lo|/>pqgsM%Q?L3Mv,G,cIC'9Ʊwg1LDgU14kpq4ܿqG4,JStѭS\:<PIϛ:ʂ(M9N+F4ZgͨU>ڤOϝud. Vx8qB6.pgjXѺNk xko{~Ũ&nU	8U&WWhzPv~ϙ?InG$`uDZ/mė'{)\&t8{28iaudW<HbROEu<1=9y("!k%I",0&< X>x,S ݢxiYqttb#婯ӡݷF6@7Ϥ$)<S.>|dz6boheyth@b;Oyϱ6"`O/7S7FSrxB GڄƀF(QL[aBhd\.,dd)YD$dњK=D5i.ȅNN[Job$$ƞ ]	/bvq ב&.k}P-+)(DDaP{@?"`AL܈).o((qk? ~cB$E#>P)eMeVٛې̀:$xY`Af2R2>|>heܑB󸕠Glu?趣i^$XkFVG;5~fx4<S2;hO@od ~(_E$f37GS~I_cZV Y=bW QcLvL.ՋTN߹0G9	ǒ+{D8 %J.G*ip(,ǘRs_wHbKLS EMQaa c	9.̍wu<00J<UzVLgW5XteV1塔qEAvIRie&>>χv׹N2Bq5XO!;׽5lf|C|#k55)~7)Z_(b5**Uцb*\<(_$κz\&I0 z4J3 V,#8UUBDK__hb`9KOq>)`^쩊~r@V?V*$)|k;=ˡUJThVRMSP]Wǖ>Lԃ|
-nLуJ$4KS3}n3?`)Z1|¿ΞA4c̬֚?n~:0OB_?^.']2+5b)e)p	3O UyxK}U-tc1ji1p\YqN2\akyI	\) LT·[5qƙ]O=rײש" Pʼ[Ν?! gCp½DzV}.obid=b_\ ʔ֒ztc~9ACui6xWhM}%u)UoXE8 `7oFJ9p%N㍐A~@ϊa>b<=z%00g=OeH_1n.>Zmx7T,>ӯp}"c]=|պ0ZY	XC%ϫFq~v;Tѽv.hTi3\.ZW"K1ysɇdPuc8#Z$l&h?j|֊кւ\3R9 6Aa3,ގ)D%N -2gWp=9͜\{6ްP. d8.;y!K8ykk5hPT:։Ҫ|
f+]ɀrkbE͖!Z%UPUDA6-:)a3v/oܑLSMl+DO>Q0zp( BxjY^a@b^;_.(B($[hr1ŕr<Զf0Wm;U겕˭ո#zmC*]gGRV#A>pp}/mDa4lPL58f@5G]@k*N ڰtQG?Lԧ2Vd2zS}&\M6ú+pa2?uoһ٣(Ĕ(;', 
M"YK}&fa(H͑ELQ}	@fqSJ6Y8RhvW ;vͼBs~nEe1,;2Pۦ",W[zC&We/D~gA}58kJrSBՖ'{ye{Gɻsb]s-~~iRD	}ϧYt:*v_i%p!w u=b X b6u߃PXoğƻN
s2E1Z-(@꺿 '1Vs5s:8)*{\ꛏu~y%RQPK2ۆ`iY(}2+bd(+Cs{&'RrQSo@iN6kw#
Mw9A(%2T^}`!c\ah	6ڟ09wSI}
F" fX) *"X:e>HT}N?4ۃޕݟMz0ZE30RibeoJPz_-ǧ%+9 eR}gjlX^?؟4IRWb+[,,/(>m\T811e~%XJ+Waip,j3r\أFDE:xzPC_"D7"?Bss(xoXoD]GLvE!_/#;tTH\TG&{)3\{k8>ZSk]3GE|eSKz'ޮ`,bo~IDV?NMuͪj9Ce6 
Wo  zLp/Vm?3Ly^֖((>.;M8\s$=Af)!NY4B߈FQ6	MVSJ2%eZkmokFeHo9>NΫxRwu 2}5Bk\fTL8"t_z"Ia ga9۪gj4gUO⩾5eZpϊ%h@;yq{(6cnHÃ1ՠƀ`643,@DnJZ<;;4-^fGļH&ǱOtM_|Ņ59VyX b2.Kw⿕oҭb,|3q/kV_(wiƌ*WP1^g<:kuu@">3id`xƸqBRo_>)>iĩ ?Xox+ xx%40000 ace_engine QKùTVu%Sgxx1 }}	Ə
$O^)@8=|I')(ɓ\ x++$)uɕ=.`\w
  8x++$Sۿ2.ˍ@׉-yN> 
%Bx[˸qBtΓN7}}Y*O&m  x[˸qBHqh↝5k㞮Ԟؤ zMx[˸qBHz)ǎ/koSyxtƉM PBzx nD^&&Ϩ`j+4)x n(2fNڃF+Bx3 clJ)B'Sd[(tTho8)檏/xC`UBGEx3 *vtZu,5tN&(tTho8)檏/xC`O^	x3  %՛`:^(tTho8)檏/xC`lMx3 `R)B]fT1#(tTho8)檏/xC`xqVyeOs K\x8qB6.pgjXѺNk 0x8qBȡkw://5^ {Zx8qBǖܱ҇y! bxYko۸_A_]ԵݍQuEQDD$QKRqERym։Dgyݓv*jZ[v?f/N_rĵ,؆\='!Phfׂ2bBRsʎpuxElUe,7dH"&nY&S$%Ok:K!5>yji9,!B-,kktͦIَҫn얙xN.mPo_`rx
|	j|Ôf|
hiej1"ZP21]7E|Ϧco6MX:zzOh2h1ނsMPS'CB
r*L2rlN"	HP0D1L؅u'<ZigPo!׼]z|-,Qaδ0k7-|Y:,Ӏ4AahCU,onP_͒0V
D|G?JBC#nE|Mb|AhY7 J&ޏ!q>Qq]4\{pPF5O,.拉G\j [PYF6圱5X!2v9c+iOo|)Y:h0g^% 7Ck,xvTK	^
x^Fbdqn߁A\׃g"etPNl	F`j ьx!Ve@)jq+gg6A	,ǿZ@8=یX[ ѡ IC9&85:'B;Lt
Hlq>X~r^^Ao[7|z~{堞1Hiȭ\'՛HK2C=Lܡw7l5`kvJO d6lS1?V%H=`ȝ	/?Z.uH=	.$x}g?\OE믜VM@8/2ޅ	`MQߞoD(rs n@YB-m8=5hF~K~~ߓK	jR$7g*ѣ%ùgJ^3x?1Ŭ'rr+* M| 	R/ƽ7:(5s,pH:ٕ߯%HQ8dCx Aoq,ާWڤiK*KYLg{N[kc mLaďm?u>hRoL8et"6ջt{LlUV2h1aQazԭ38; (ٕ<X WU=Cjl=iM~GTǏ4SVƴ\<1KI%;D?'xoX])2%i Q:m1Nj0=L> bS
)d2Qd;=xS֣e؂\Ai xo .pkE"|'wmW+@:-~>+l%{q\QW`휲sH(jǠcM^ZYkźTWn\7Xe,(t*Q<uuIC+8rF#KAg':5|4a^«͢GZ^>_kas(R30wf;$s>k_놤2?玨7! x#K_Ht[WkN4Jwt	EY=4,)|#NiZC&i",zIΠΓVgNxE 7hJ,ݘ6"HF= a[_<1`./ /ݺ{Vwǃ s 8Q
ܧV8 ouق7L3ŌL3/YUbm_$>O?̿zw*cuSN#)e:2Ff),ВջVw\g'ű{Ht<YQ+e3kͷR C07T{a`lllt\p*]q0g)*/Jaϕ66B6/쨒;=n|J<s4
3
mX]i_a0{1pn?kW*a5^"=TхW]vg÷.L{%׵>ڹj-_^P@Qwa:uŌs65EmJ8Y5MMHG/[U|E5ܨ涭z R-vTsH7wjF+
'B=aޑ]E\ɖ~cLLkq=_ >$t|kKx{awnCi|  @,hxQkA',ry95n/@!H0z_pNffƙٜka{QZ[z	nC%U}/>.UbgXV)rH2/GߧrBgWWӝʉӾ+$^h}!%0)5g=m3H
j:m=\>0Xqk`Ơ'`\Dlh}`,n]7W yGYsF+'6$n滹V"CO03Q]T}jzЪ.aW]==|j8\$Zt }pk۠[Go_["έmІ\N<e<7Rpeǋ1D(V9:Fs+\ځG,N:Y_/ӷԘ'3m<j<n׿I2\x;myrC*l@fn< }	~x;myrVfF[73*Ly#ل'WWx dl5x;nyry͗2 *A,Lx;nr23deK
2obrNs$Oͮ1و{6([1\*Q3sb1Ow-&
t$d_ !T$	 5	;!qȢ59QLt3P*@2$P2C/I3NNI DC:x[b9r⒔|;.̼ҔTĒ̲ĲҴ"%lEY]]\&CA!4&a;.,R9ـir=-W5's0[jr9g;>66*{n %SR&O퇋+W7,J05N8%n'aHT0Y?Ho oaxci	R^bIfYj|bYZ~Qnb^rf^rNiJB2((99PFd5k8 *dYxAO0e3$C@1i4Kу[ENjCӼҧcև ];pCBۢ EpY9"^!FJ@ckV6pUZJjڨxdu
d\0~
ǽ[ф$ks`
{^ȏ)oj@v?VV28C/m352*r|(h*}IںJM`w0j\,0	oqɭH7am׮?.:;̞ =ݲxYmo6^~I%4B;KbZl2Q])%Q['ibmDj7?*h1_8g\@Dq@	}>ޒOʄk0Q>i+$<o=SpR>:yQlRG#TdX-L0YJ3ޑ7533U?n<-ku9[Jۙ\a{?iS Bcس=6E0BΛPԬN"
̚*?1pC8>?:ptV^t;Qg0	{c $:72t8\5ŀ
T9?p"Uީ"HEɹessZbPs[0̸{7BsK?j7<g,Ikes^\~ElOJH	OBEpHS&cTZ!HCWR?{sǊGKK]gȧ_HW[?ݢwOfZיH|-D\&>/LyD׌X9qe9@m#DJӽ31LoZ
U)bxS0f"fӺKDVJ	ܽ Rt&^DExʯߦ2,~GD4cŉ(c'*zBx4vˬg'kXPʙf?57VK<VV h*B"K
Hf&ĸfR]f	uAӧ#-<qFh-T8S
ں9EoA^ua7^L/{(V,ˍ>UwtsvJ,γgšRP~p7?G;il9(I#VRPY.14Y]I%͒-]LklzHzz֓OXyt4ꍧI4vqgPVWI¦X	z.1!=\u9nnjs"ʀ`5hP2"U>+c.bHa+'_.A Ti먭b(%%;Cedp`j7{N-m=`:gjjn)~!Q_߻*]ռo]op?TB]ͮ&FVbSBdߤ>~L;SH-	ÜfgIݺǓOj*.bƽC䵚
rQĨ:77سB68PrxNg5uuSffEh9eJ*<+l9j9nϊ&5tŃĒ,v߫l

6/S"Z.G$_	p0ԉ~y!ݮ 9M"	[-pwpp5-g,~v(^B\G~o)8&I
	8i7<nhH2wVc])kR ̡>n;l.LGsi^+?+Z@> 0;soB̍q}.tLYߟږ17>xv_EҺo";7h:5<[C; |Bս{gk0w7^Ϧ)GxmR͊@exX0DdYdENeLOw<ɛJdI_n~ݿ >~קk&dS8<fiM]Abq#wKZR
tN3C>hg:%A.]!I-?m /E厕YI+% PhɁ/鯪,)7=0WpkE}	akNR)+lJHk/PItiuu=7`8͂5WX*
VlJҠsXE5}]?mf4!Nk%3>5v6i@L}Vqs[`3NE?¿K>?/yz>ONiAF>ݞ?۝xkba-dEAq"j9&)n`cd9L̟';Yhr N'ȭhkX.~WarX|3S2'wLE\'
d$ S6y(&(
D5p*A4S(Ȉr2LW+M.+\,Pa2T'n*pś_Ia
,i9S` uTo qwlxkoߠ⛙Y%L 3:		xkox{&KF̔:,Ɠ3IlNaI`RU@j'9g@y׃T
)3	y#2Fy
0ŒLOPC&o; 32Y{x{bwnCd;!0n4yf+CyyIŷ38Kބ2  ^ֹ	xR jT%+%x̼x̒ĒT%ZZJiE%y%E)ɩ) t`1׳-?$ $5ŭ(?ש4--H	+ +Jx=ks8ߧ*pVqjjogkkΨαs3EA7!H]@/z8Q*D_ht7/:O~E]q>G/^=~έı\	ovY296g(Pr"`"c̤E_7+/Kq/<?=}X;H SϗB޹2J7G0[/QGwEߦI]z$__=tha|ՋA|t5R)?R/)`T3έc\~KBm%^p*&N,	SIӤ63F 	HFOśh0_/>\w~98_.T?wAG.q0P*5GR1yP*7\]p:R\72`R"SHZCߛ{гԨO~zӋcdqF8vn,?wcON8&"\Rw&%uD3E`D%b@8@1N 0AyV/7[_1_X%\'q<ˌy'P;0ibNR_s:t3눱︟8NՌ	7'4}9LrAܠtCfY*UNM SwhšFM^"z線JGƱ/iƁ`U)PB%r9{,5$9(
>Oe*Wه㓫aկ#Gl~:efBq_DΞֽ,"~SJ#|#zFr#?UO i )07-Ie$͘ь*LcR	,gQNBO8xlU/JX>	rU6pC]˫Ѱ5<Qop~m5%9q$(P(FM݋_4]bw}3RC~,0Nj'Qt`' $2?atT9.u*QG<Л</B;J0I+&2`fA@KIf)􎋫:>?|&z8eÁa#'(-EU<=bXwloegiwNt+d{Li0zN%q$c:s@E7wzoSJCJek8pv́sQSI%[C*%!rGs)r%
z{r{˟AA:kRiq,fF"LmMXmtJGbFO<>9Bn	81p~@;-ȉZ)|YK|=C!Ѧvfo<2	SU['lzgaɐ723nYKZ1ޞאk+`/IpF+<ȏp睥d}64J>V '[6ػV^1W.l!Om*h[ WcM#G_a{žH%Mpg\f5{ɾq^V8`؁!]/Sǆy,Vp]\IUZI立KD ϖEɁM>'DӋ+dڪ+EQ<j=PSETiOQyQ+^KՑscBij&N*qΝ$=	k]֎Lk܆gE^Fi'9=GdnEf$e
QX^Cd.;f =5щ+y:4w&= ߳$|O`ybE^M%;rϥnYAj 4ͻv3X8@aj;xtD:K'Pα:OD17.l3؇=>F@V7+wLB17E%	$y8c( ͮf<C"i:DMVd-^^qԶMߥ=^S_Pi$k@-Y+|d*=9866'R7k#x1v:::x+)UR,j~ɚLK61S2083W(+$>0W攘	E?aw
1_ΰ3K>\0pg0cjpvEe\J^^fF` k̣*4+iKwG@jfZvqAP^OQh)FN2t}ԗށ!|;q)MM$W3`f@[		(9QVlYx&*	LB6HY6}[g0GoCOAa):

_%%v{J(*+V?ZWUY2J9,^=џ;NJ&Qel:0
ERDű(@G&x蛐w L&t+\NQʰgTpsL!a!`~x˞+	-za)ч~d4B-&J]qk@bHgU`):և0Ɉ({\[o`t0Ny^l1	"728R5:փa}}'\j@5Gfk~3f@$z&̔Cc~hZrU~p}%:h.[RorY{J' TS>N'y.=n.ƽ?/!	^j!Gk5QIb+*XVcwy֩
Cb~f֭ʠީMó;eȡsCTVLBᜒ	(dMaO:v1a^̉d5vgYHrh9xn'OUՉF uj{08?Kҭc1.:	AUa"0(jVR3k¦Wۍ?Zgj&a~6-{6k@9E+?%#o/Va@=}w`zEcw__;i*v]K%iPm4C0lzZ=oDtXA̡>zΣb<V騞Iܠ.	Oaí"e@p=@YKs:e?%f\TphҾR6rvFEN)q$5ޙ
Nv4YcX,W4Jt⪥i츟4-τGv앶ٙ~o28CSS#_^XЖAol l-K'yiq9z/P>O~˜3Ƽ:y[i (0st`3AC%Fx|}`lSzn}68?1k`;vg-a`h>8/&^rڜ\B$ԯ6Ch
<<.2j☌Sb>'JHqo}LvKLj˜"z@]!᧝K6[s@u0HFvK<'"t~2W..N'8w|Ipݨd:徴)Dx:DTsaUMY]BbBF[A"̣V>ӟ@}WR4x'[#Vq{<'u[=+v@08`%_"m־&ySiK#]SR,fmFI!00=vg_wA06t]'o=>ae{퓇%kKyȔbU4:z}mO-%nVn536)bg:>x%VcfUBEn>h:"_bjCo\ܧ6wnY-_zJS*$:p!rv0mI%D	g@hPѮMq{혩h,&~,PqXG>uۍg{1"x5&#c6edfu4s}/XlOcib԰9s+e$tr_y0ya{.#OnU#:bŦh3p/XfR1r`ki֔ei(dmvZuw\\Ϝ9v@ݖCL"B!/f.:	5?ޫy2N>^Ӵ4j}Z(7Z<řPE疄0Fn'r[^QXZ=-k'ڨDVTPs-$1ogTpK!kW%Ona$E'&ae_YxsJQĖJc
:^Oi<hťj9jiVkE"(u^`JyrRZt}Xt8ZnEFk:L_qm 2Z&;Oa%Zw8;0HN,F!nh?[g!-5ʁg@.@/?RQZ)9SdAr9~}0}QQ<tKޚgl.=O`JoЕk	QkLTq42:c[βM9֒Cnh:KȻ3`b)4nV][qb=s~VJn͂Un<aZ(!DL%/-55,d/Vs (+}cSև3	83Uf@	+gz
o6OEK`U̢6ҿ=pTb*?u^@L7 iʋ>_:q\d`;wڎm5҈I_ 3u3Yՙt$[Ί	jUu򽩓|2Mʼ'V ;Mg(i/#P{4y	{K:Qg|;f93*N5.EVX	vتḪCQ)
;Khn+zENRPȾOLXIiOpjY{[hH6ʱw3v *2ĭe1+PCLg1(O<LfzӋ~+cbkt԰Ƞk+xۋ(NLlYU]#q$Jүd_tb<$N7Ԏ%,z]<1~Zﵭ˼g}u#{ҶminC懒9rJ,Z4[`+n[xX~O}d8cdx <ddx,Oᵃ"?[~fwQ״}m~&[bWܻ]kMNnWCV%戧V	yvت}XU29lxө-+f5Zm
dxr?99\}EoN@@G+EpfQz{Ҽ]fV^ܾnÓ&r*䶥5l) zxvuDַ0uí`7]qN[dWsmTiB𤅪Z-`}䫈bMǭ"4:Yd\΂!L7/Tgq-*?B)<l<NS$WKpGF[B
kShJ,C
Ng^$fe֤zf91B<\;ܴ^dc$ջ欚FYz7~mo7"Z}L_5/cXwFDw-wX-Swy܋M>M6ch-!cI=|N1!h)]B^{qD%	2~=KGuku
@1㎒UY~-uW2$6\/l$rHұB¼Կʾx]{siRIckΛ[L'99N!A\Fu+yaj^CzY'iN`y<Ө,^RUa_|'>I]бTޒ{T鮞-.>?ccc+I[UIӗʄdx-Bkv ZlV+TnV=kZX?aFxC|Բ<26{m,jŬ.ikKzMԥᨌ0;a0q|%=ZVz'pmн_oym"u f%o)t~WbjjߡCgL<nͽ[-vo"5scֹe%K렧E9MgkY.3;t-6!VSS r;_^]gO5ݜ6
7Yv<BOoO.٧>z 4+i:6&;:EHKE#nqF7$E1x&)z1#"&ƻ2*z`бrGa~Z4C|'w"٥S*8FI}<Rnm,GAN-%Ǯ9]ӚI}7 Ⱞ!Pa
%kAnW
]-G&P2{bw˗LV465mYG+ٵmޫIdLV:g ĞM5qȣN	Gx߭k*1yqYfaK4%e W\KmkSO%NY6u@]C<Z`$ZhEf!&Xu6Y#Rk0fT#[3q؀d$)mŁ%gGVk2/LoklV"}w"ȣJ\l 
 }<کY^AV
m"'_.N
>_}7Sl%f¾bݫ܋}VJnu,^ͷ	DhUFKV3q'K^Q%T/_PeyYk+G_*bZwI[nSBVܐke/8{pnmc6) eo-*ry*ք~I@3݇d6뮎$_%cwƑwr8蝿=;iS՚;Pʓ{*՜VkAJܟJJ-Gpx!lҏyF~`]g2!o[lrW#Nk'ܛ:o*K|nj
9T߰x#<k3^zߨeyH)Nscol{ν ~qmC7|UPHC6l;})tֽkG=T b5ہ}L&u]d<Jk<Wr!a[M bnGoLID+?*>/ͨe)Yw0ZxnXo방+fY,0BvO8_@j_	zfm77v?/ BbȿlOrmVr^'M5<WXӁb|=|e,?kZ+pc)~X#[kѨJ5Q"7i՟s*3ְئeݚPy&xͺѵ}U1ԭ"Q>Fx/@88.O& LgF{LC{no-7
m$+%_Z,N%alx9g7#qLA[Fnwa]nFdTlbvRP!;MK>I=b=b[/kT|-\	8&:NrZ+jcEw-&ȕƊG{6{c`_[oIjnw+,ͤYn5.ۆy,3EʛjvvQ=d }Q;3eI u\ӬT1ݥd鮏-M-$(+Oqp${hG}LXCw򃰲瓢l".l	-/c3V.~"G-ގ[rlaI6|iS{aC;gj4:T}y]svL3)[x MD"o Γts??kB.\*ܼk3Bc0+>Vj買{ؾ
֠of]PTht١ЬF^uzԒl_y-W΂CQIvVg{ca6ֳՕ#~,yW~'tHa8һ̆gf7,+svbL?i4	x;ti#%=2\aɼEu4xc R4t[	7.tsґ*@J =jt100644 picture_native.h E4y$_Qݓ-*1txc CM}qH&;*@> R/HL0oN100644 picture_native.h %	UULј3,-'5ex;tiH}&M9QעU$gx;tiHת\O`ߙ5$vvx ¯K~k) &"x8qBF[~0崼̼ rLx8qBHԴ{/xsџu|wWDxq˾Ԝ?ق6SBCb d$qx ߷H"ɮe_lͼ@(ʚM x x$da˙ƛ[P("5Oxqy9*s>[LD ^|x 63^260c(+x Ho5H"Tё(MZx ߵT@'kd(
	xqvxZovUHD -x nUw{k흯/(4Yxq.{{/29! T
x=WGK1`MryAZcIIhYI7c`n	09gm'^Nrﺺ5=glS]]U]U]]=}fW5+s{qѯ\K?+\pFT]-*J+*7{I-wJ5s{5k s^!n#p¯̉^5V{q;*LƇ*_#pUo, {egϞ1u>瀇ښm~DZN#(J~#ND?$Lg%Q=\-%иŀ,AY'/J@kgs8lZ@޷6\S{[ikoCߎq㶶ZN@BK"SI
#GH
.[By{|qO@n@Dq/h=j$n#~E3WO>Rn$
IwFt*i@	 y|==@Jwۅ[S@氘Ge :*|#>f2/BWuf-p
*qB/FI$nT5' :( I>r-ǃrX)tDS`G35`eDmWD0-uz;Q55Zp}>wS@$8A($EH
qlH@ ZklYEKFV%OQxP kʑ2Be&zAYE`!Jb3!Q~"Z'/qo߱2o9>u<t{+1,ԃ SdͿi >MqEl:1Xj RDf#2j~<xܩ3'((s'Iv#tEbS~DX.tݯ>.9ׄuA׵gDlH1[x]FkYG]-6ɓS6eXefO-podw}G_(Y1e1\uufL5Opn{G:'^>uݚÎ|z<h|x
3Rjx`BájћOǖ> } b0bst45Y=u IHSKM%ѱ)vjkv-'\sjm{ق;TȧYxY/v`9\mXx4AکvX{G[3rDk,Utܠە{9Wm(@9f{^Ca} uK~vVْk?i[V1LRX:ly# O_&BSTčUn=nG}msC&p~ &L-oVd"6FcrH}9nAPICvh
`D9VIc01mPAt:t3w8-NikBU*`hVa9?DjI)
@bwsěPSNOh̄x(!pAR@@*QG{#-N~44*V6Dgi4RQUR8.zyF{ʆ8+jX @]_@K`T9陶[+] Om.Qv-D{㉩a:@j%1+T`!@uaR};+̈́DP%Wq-Ƴܷ9M:U 6H
j`0ax،~e}fqߊ̾9Zr-G\^xʶC>/wrHks@Jx8:mcxzDh%YdZh*ٹ4dbAdߌgV$4b8h=VB@\F)|/"_L>>]H*C_*1ɦGrK?5{ka3dwkSM%tQOll?679XX\Vt(I<KI#h뤣(:S_mYk	p"@=[n<÷퍇 y#z'5-.ڽvKjK:QM+.,~OʲT TU
tT&q(Ğh҃qd}`83xg5+W27#)h&y#ΪgP]_zx:8=q+G?|L/\j"LFX<@n6#2'GʹI\E\B  c=Ole> ,ɰ2&C?k&9p:T~PM rz/ߐe-|!1L)0g$^O>ODLĔc\r gI/t/j$sd*ĕ{+7#l2Ƃ,nkkA+Fү3N?	JH6mNh9hd#V
K`@:{L%#UՎ6YMZ}8OLJ	..FW%@,)-9yQ$9` #3.zrOJ͚d(P))K.I3mC+[B\JD]$wflUf|n8RcpJ6 fIٍp:*o_~S*vL6V8. K%e7TM1>|J7 fIٍ}Pu|U;G1h\bڊk6z#di5{ZHݾ`GxJ3Z݌+WzM`vb)uMD_j*mt%D#bgtہ+-)At+QpDW ]DU(8pM`'+P/I/Gfyd	2\bmf3~weq<C	V>8,a9|$N%"d9Y|St/ɾ홥_.~}Rj?Zl,z,;8Zf6t(Y:!Q%tWg$l$kT;\NM1+|#(5Tq=1 YV\#t|BY9tĄB]ҟi-5Q6D	L>okKcļ6({S'<XUbTowJ4* MdLFBq6
Fh¾d6C #YC}!|5c'OG~%gF݀YTfl fU|܆V͛swpGkj؍S㧊:hF=M;a&MGg6!q=%'`@/5\CWWɾh<~虨<|7pM6bSs_>O럳8
q((Bȃ (a`#\dČG}Iaq$-օH{Paˡ+%[>LՐЕ{Bd]$F4<N ooU'lsXZbj	.ny:
bPoqjB0]v,p|kn@_fbC	ȓcז-c?Iű-ki?2wd~& QMM-i*6z5MbkfGkχW i_6FrN	
gN;\*@|J>7Bʉ(K<(ˢY{AIƈwz,PQH)h!yة<h; 00FrjҳaRfm կz<~Y*'9ƘYcZ>4@ q/gnV@2f.IC%4q);SH_iqAxfSf47nY5䥓tk p
\VJX*/3EGsS	 +:OV	"kwk4U$JdHKC>Ќdx5$	Ͱ8'z*~-i0N[|FmC1EAtزQȔK輏iMPs5#wnFRK[M?IjQJHWTðR^<z!T́NAXt:Cl45Bp[nrnFxчYh̖a%_c7ҳIfԁ.ԶyD
ȓW'Uqkj[" z\XT}_|4Y73pƀ$3 k4SI奔s(dV49O%¢oL>ڞ6u?gWߏsAZS8{y8;#nB]HEhȃAƥT|X&,,|rB(1~'%3zU <hPa΅I^u+Z]MI6.M/{H_uMS#fy}C9zٵfm p0SF۠04CJ(SBm~>&zaA))oĂĈy#΀7k({ 9k 5xMIѯoS_Kq(P'p>FLFr-bm$*3`LXQc0 Ղh `cKYV1TAqP'swJOeEȱcQyc Ύ{`y8x~tfs ,@<Zѩ֕+P9;9>Qvt^Coiճ

ν@WVPa%Jǰ	E77^KoSӚ>5Fuxw%4mf$9 $zɊƨuReՅm3	-+):jK<I<INC"v*:ib|LpdFu/" ~J.즾9}3BU]|cy={t#Ą~X3"HAJX,ǒ}SJb?)<lj+eom0HhpHbbqx	E8;Ć##0(>bmyTAYИ[껅xV=	kuWP_|mA?
ySpn85T/y;yN#n߹4 u/:D
-C{`B,?19^E};(10xg盦mg*LCG;~cfĮbET=as-
@@VBtQW9SJ1
0NnG'2$vtȼ$S$ ,e6m2KZEI˗RPD	]%(h(u{)Ʈ_~p/bO<bWiޓFމ)j--WbMUe[]tZ7,F{nHv8EBTmXf\g'5ցV6-CSb6@.["	;j	~$ݐH"I!kg?91_S0 HIeFԫ4.'iC	md4{W8&chS7G^ʵA?o?ٰ;it=׍I^=vcvU5,f4 '[\a`swr>$%/;oʇ0WU3@L@i6P1"%ƚ%Z@;w` 9UboHNWM6TʟLPPt
H&ÅM6z٠=JQ\;uf9	>͘Y|l.=OfJbt,lf:L4nX%@>S 4:4u.y]٫[k,٣%~#4^ۚ;Y
+Y"D|kch.>}K[f#Yd{D􁔾/^ur+"ny1f^PA?UyK܋oabt
iA|6O/em8(犿ӷ㋽NPE^:zD˫wI [)y0B>0U!Q!X	93J&/_27,ի6KlQN=טpAb0/_n]!:Ep`ȑy)p7$]tE2{n|P-ȼ7
\1I3"}D@@wnup{"AnJ	?&ZMDO
',6n4~ai;V\UdT_~93:Xҫ{]MvŴr%8ҭ8`Yq4g{t2q?/*Od~N	oRM0R u24`ٚ̚{+!UFH>*o]'O:$eY\n^K4 cNj؝5}5]d3W@y(y59]mb:]}2?qujk3PLApځLD.ƪuBuޣP/ƮSqR^ m Gv/f[l<yCd1hN߂%.qqI1`T IgxO?zD?G^r&sݳPʉ)Hgjr %A"\3 12Wtb|lruXŪX2Wy#PSh7Y]V	SweIFv"H
ڛQ#fsj7V[TD~Zxb*]6NWtAp؈q;/%ަ'cFU]{hȱy0X8 "׃Zeμף^:Ĝ;@W.<	-Kw?/({/2%@EI 1PͱAƺ"U}Kz7%n7y{/3`tN
ۀHSlϐkFn2P%20Ӊ5z`kK!Mw&'v!PGhxљExg ;OmQOjY$(`ɰ/K6 `-&*mzoXi+Vɣ9I5_2s@-]W1VҞb7[ƽŽ; )c[U*fSx8 S7xĸq;'jgFl\Im)ٌrdxĸq5Y=9sMx P?Gx- %40000 ace_engine SSS5:D	%rSzxc y	vǳx`b/*@B	L®@k{X100644 picture_native.h FC
T<}GDq-ѩ,tx;ti
k&T9UpÍZ x;tiHs7^XsR5"puZ 2sx;tiV`XM*F-	F ?!x7 ިzXV_xzdܑ* +>a?-ix7 ިzXV_xzdܑ*ru%:my1--1x7  >Qo0E9yNɑ* 1>%Gjysi.S-yx7  >Qo0E9yNɑ*uڣN@=Q,-Y.Ax7 DغlEOfו*U>-I;ι-qaxȸq\}j2l?hRw_;;^xȸq\FI[e6CR 
}5xȸq\Ylu7͋.u*:%
 R
zxȸqBȵ_Ȩ}v7'xȸq\bX6)o'Wxȸq\vl+_]yݿAr` SxKH#rzm{]a<F @x=koH+/-gy.F1Iԉ3AĖM"|.߯&E=goq`XWW׫{gq79{}./._»`a@}$ʸϊ)o9$~o욧YGu^~EqVAƖAI΂-U^H(D'	#`B-́a(GĶ<òݵ=,'LgK? fK72C)nR1|y4Y/{/<E^"6ļv_wv=r3wr3f]gس'3޳`{MAZIR P\ye,HXn
pW4} rh/Dt~v A~ߤq(xJKJy%]uFvC3[̓0q.p2GW]=5(<XkHTvD/wа~nˤNUE		iIBG*SʨP	 l|r 橗>X
s+7i<.Xl0Oճ;Qޏ;30v&5Pw0/)SmdDyoƇ/"Є;>`}V|y\_%\f$,2A؋x˳!8PȖ9W3%L߿#Na)De
o/M9_&9uy0S;8)
?IWPc(mq^oLWNt6wYIM4~V/5PGS\y~%vgvo`6Gu߭LjI`/1[Θ_}h6Ga`j!w.A8Iƺg4o`:	2(椮3	M{<^-AcouI?<Mts5+yX^}
qbH]YV!Z 2VhYI1hY`?&3Ӱ[RM`s{qm;S *h Ҟ"l C&aQ8KR~Pw\˝J) (ԻEhہx	@J0+8&Os7D/bU\dEixpq((ҔG9Z읐r\QdJѺDD@)R"Y>V}fg(*0
NEh"D@4v8'pce/+Fef17?a=	ݺ<r7EùkA]X{\"!s">6q+k8_$HFh)&ᢤ4UðQ!$XLQlJQ7҄B?,ha xFðNdG˸!hPXZ3ys@J~iڀ4D"*N!Isr<i܏AIȴ^,,<~H=z&ɪTl4whR~WsQJ ^4B|/HE(0GZdHhjej/-ɨ-w<$,^iI汈K@ie!wls12AN1yF$$A#*e"sLc+8q{ᾕ BY<B}gO˽pӃ":mP\ @΋nKaκWV)2@cPM q<mPaT̚MG=Uʟ$drQv8N:0q?Tr䶌J)ߟ>z\q-(4VXGR
Eao!]K*[0RoSc〒"r`wr{`?rQJrTo-(bs*6.y@IP^_qqs8@],@[8b~b:޿Ee/=n'6OGum	zT8C!@nI۵!8MՒXs'c3@<,(T-v?hkn+y\GǸ[	}-A;}7'}ˀv#ȓ:OD&eʬy7Ívpr*	!5δg;umwɀMqapI[eTFϫCERLhzSx:_*l ߙNFI)X-vjV(5[d)x:^0jHovYW//KDLdӏeV$B3ZDmtmD3nlIىJ$e_r{|N9RE'x'TVBH3n;Hh{@1/z%i|rMa-2Q3;$o`ԾE%VkrY-hB}eDO>
.p~cӽW9:SJ+WȇdA%-@WCJ2A ./աeVN d5|0IIj6pza323-0!c@~ c+XQ|ֵhr Rq6d3/qˊp-So[tR^Y04šΆ%1a䃎\Q]
Jgf,K#%`0O1dE4tf@mlRXU	(uFիgp mv -vTm	r_<{PYHzPM<qX!Ab7`D2ВpaP] ғNZ9;M"4U`NM)qx"4oƉdEXdh(Ecjq`tyi@5$%/)'](RU `	yt*fIL˽"eY-xI4ZQbgL&QHAzĘ?EGT-DNS"HDAjVJ!D#~@(j5L|(vM)>eDy]}JE8/-XTǵ<p~̓(!s3qOU<kI`-'y5UImk8رBox4"`	M3|XgDi=h4'g QB&FikpOO\]QɫCMB:2۹yOZG<qpo=E@E]ƑƑ{ȯeHe}h;>vP92,MC:0;)SvD?I{9G7z
<'WՉ
Vs`7aDZi\~uQ'Aurz%/F¸'U{*N`|f^<Z=築*אlw:8wav Q=Zg\K1{*aՓ%"^ԑ$.UP|j,AD
EeP4sP#{v}UmG%^=w}iE_ٍyՉHn JeO?NFLv8xSs- 9<n*2{t,*܈3Pq?kD'3sv*S+zMs2{ÍRcDX)aQo_^މKiDP6__E #?kcCAnP.@
@7`}]u\[>DDdGg]W$	BI-xPH{uҧ2ˈZՌ#)hZIMixQ0Z$`'yw%zE~{&֗.@whAlzy̡SejtFBf{..Z)ߌ{ F~8^^=ܼꥹͺkT[$IڅTIb~eޓ&k2V/}7]oErZ鋪H%D,6tV1aEcCBJ%<HӔ^q4=m?"TnmwŢH3ؚŦ*Wƚ~6gUTbEb}Zx[j4~_iOidF	/4S'l:XF/Zӷ{#}
>w~NƙNp+l9osCL#q-Z\kL=I:]6RFT on+\_LYjɝhjXE*ՐjYÞ(irF>Dh7jTxq!!>nQW~pG÷X#lk(NhrNvD7'BRl~m^Цk}@(N]İɳ۾q%Vx\߇25kXo~hþjgb("eC?*Ji tITe2A_s^M!>[ČGY!{+iQ8FJoLu:]^CuVWi_2K7BYF KOy;bSy	i=	dF
rX5H^ؼ/B:RJ7CȽz71,˿װR!> +'F0/"^;q|jK4i._\G`E>4ݢN$z}ΓдWEJ"+1E]KU^sƳrUxv)1~\`XDBΎʀJ}L潦T=aY1"؜T~ |Qܝ-Q8<:UA9
s˂k+};u4R?ƦّvKޚ=VbCiJ5uJBS	y+/96;IyJ+yC'1 l1OQd"[	~I,\jۥa
P:	s9ۡ+wKZ
[S񒤈6 m<;Nx)&p}$T@h:toYpVAPLi#r#7ucV:v&z{{K2]H@J=v'YvF
rrݟpPHg髇]7c^[nY0P|gyM(dv7)<qHMc뿦CיzYK}jpϨZBQܯfoÛşĭk+i=p":ݎi|]E=U5cIVM_VgӛKkqb0k:x]wF?#1ڮdr:yN8W"w3[RKq=&a\GȾO?/x',x;xq	"'̑gTde,WI$ U6xKI T%5ۊOM]W 1x&2}"q_+lZUB {xTnF+RQZ0C+2,ANĊJ4a;lq3oy4jg0Lfr{"xcX̳:3E
!XJ_1Js)`MWóhe%kAHFr^ C. eUp&|٣610
gP[f(FggL7M1װ'/P/pfo}'Q֠Ϛ+"iUT6j
V!in7\lǠend\79"1jL0XA`d|i ^G, \W:Z|1 )FuRɭMpxB.t)yJĶf[G%TJT55Y0㎾e#'%2#J4%|0qFqV{H?7C)p5\&wͮ_׹RCL|y/F1+7iw|tSVːܶ7ʲȪQM'7c~	I:;c>8xupM8:S4S{֋%ҶrUQk(
'(2$綠1ό@.p,Ί/{y0X$7Ae1JxHK*45uhmF<P$7l$ri/.1p}`Zn}	u4|:yK'/l3t:G<Id{QSZHA3wAȄݥScFeW!d+e9'j 2Il_/r<|mΤQogxsWUϮzcѱǝGc{zp#e=N
$5@x{*/!ir"SL&`֟|YSK93/94%UA)/$>$#(,HP⚬̢1y#+OOe3
\M^aťP M#SxV]o6}p^%BŰvY1DD%R#8^KJne}sϹ{ڃSb#rMgsdM\;SJ'}o	<¨ 1^|R1a_/L(!'BC(`
RQ1-40ȋkWbi9BN0ƭf.~szKrfV^yL!:ϨR ?%Xb@R1Y ՌAH KIqMCz-f|9 %R&4	SZEhPP5¡?
(+/|
h>7	f=r Cz_HSdFMZ9PB**J1KYeIJAAeΔqU!ĤX4U.Z)/Hh,SeD]^+~0%TF3O=*\$ef1lbMΙk
C&6қ:%MG0M (c]ʭ25BAamDG	i^#V4cW.X</96QJ0gRW	KщIMdnn$N[5i(.RA0wByҖ&cџ_x?ܽ!ć/]gEg)AܜĀ=eۛT㷩rkh%`~vQ9ɍ3(ҵxEdc]a	$1DJbYRmȫ?t0:|x	J
dE|I}cζm$Dh90 Ĭ^MV NRl/XbbU@GřDQԫó6	|A0ɛA"ZY-Qgܽnը)]8MmIǜ[峓{4(toKqAn?#򓣴FcV;
U|1smEs;>r/k?a8~!qx@ >}x(@rCD7Ml9EK_kA&ɾ,N'0Nbٟ-Pͨ0yܟ"Zs*02[sN6eIO>ξSK&s(Oqb{snZ

Z\ '3	x[ 9Gr2l-91M4َ[Dob K
Ixȸq\9]|;"<~7ây -"*xȸqBHaBՌBFenxMl k'xYmsF_q|qzڴq= 'b`N~7w	L3=	@/Ӧ)3ٽgw	WOg/IѼ$dt؂ԪkYH2ĚVLݩLi.ifN_FLȜ$d#FCbC /Y;u>ÐcCa91|l/$R\1wrQpMi=Jzm;=9Mw"bZ~MWT@jDD*B=#↋ih91K\ǉ)l"|{D
r띒ZU'w7"?Vo:I#߃o7ջ'?N0az\%Ox GӄNSNDb\cV58"LPc/ON74*ĤŃs{c7cل\i@<fQAG!5D1L+dҵ5HˢOpa4Yїpچ+P`<Le~ͩȂ*Ƭj#\b+ibfRlsW#>VT c9+:W.!HGns4x+mؼ Qn<^%y'M8xwy0;yp߄"+m±Qmv]ȅkhm~GƟ`l}J>`"M\8"3EMp002<obXPT`dH(FLp]x4XXЈ$ŷ޷n[gۋ|.,l9D hX>Sƨ}c~{u~u=ؓ[P懅l˽71L*XH52s[smg17sQ9K(8L'8.mxno$`V A/[*<Fu`t6N<ڲtjC9>R<M'?RF=ph!:N4Jkhhx.E+bVǒ	>&|& g&"h'(ón~~Nٲ=c/}MvBӞ
`^m'wP%q^(z֡mN":d E<TYL'?v8CWbj+C#T*pˁa)fKpΖc@c@.>8"
 US᲌Gh`@ @
=FͣzF9^x08\X Ug:'x8Q	kGY/'@]KPYvFBbA*AEQ"=9'd%<]0Rz̅PhĦYʄRn\F6u@f|D';0~c{64U`6F]x&m6763ez|UK-p-3EFYqJaHVIuU7b'2)4J `,CK=\3AUSfRLR` ,E4!߬-td\wFu/LnwrPven
מ *m9cV	&a_pĂ+))vCQTJ4h5Q9FjYro~nRyOHe+|h0>MTRJv.vK5%o0rke@Hq_PX8dmf乥M+ۖŅ)\^_lxg"e=%y_yRVucxisf1d!q2:\
Z
@0YP\z1$dYyy`TBzk86ϒĨ0y*h(s\ VlWx;dsfCD % 6fmxTMhA%鶓i!6!&QZ%qI?&[ۚPJ(^"a@*<SxŃ^T
i2	]oͼYY]`
4~h9q@<9Шk?Ȍ ` ̢30/)H]8i4MЦ΍lFqMGݥe(.x*+dd>̤X6):B-)sB^lV,I59RB r*Ċ]}EXZn-~5Q.'J[GQ=|.'d<<>J0W	ưc60D6}2*0٫F/m'kc=tc:NgL}j
9 PTբxGS]^uj*~ŅL:uI66T\.^ӋO.bz"LeXXjղ_%O,R\#IayD,
Zmpm[J$,_K
MƎJ̤da	)h/GdCIp N=&,2BO,Q~Z")e|G8:Br{CNֳ鿲N=~^@Zh%UyR`wUrpֺ۲ex8VvgNCk&#JbG_-X˞cvi^oo@k+ahSl x;hf?	N@e 	(x;hfc5|&so.e\5H`t3l aLxTORap )
RhYmk1<<P:GmnjZvZquTlg<x{{q@uUTXr#\y9mLP̠U^(iÀ^\HP\j#q`_ϵԢs 34y @0At&yL(HOUNVu}QGgv=Bt^m]('NȗLBvP{V+>a&H2|_
nc# [Y&WnڟY
dKkhNNBW46C=tK3Tjd=кezvXk!ht&YNP'՝BӶ~Ԧ7mSe&R4ǅ
Y -=C.-Hkn!-Xi1y9*S	:yavnn6[/$LgG
l~SVA$IOSXtDGA>S6oP\FSxl>bq4}:BoB{ArE4O]'+*@Pm	ƌa42%}״L)K%%۽cmѳ(mڍ޷',>-j5,DS,wtǂĽ1Gx;U1CˀɁL +tg2i0<`XDi1YG#w>ŧLˇv%Dk6|bC' izƉFZv]Y~Á`YLjw"*x[n}j&ŀ̔bTĂĤ̜̒J|Iz59x'3MŔys,>X&d-,f;|6ɓ&ds-KB&Q\~~/op8ncl-0KLo,t=h7;ܑUy&wdL9ْkr3l
&˔Nޜ'j I9cx;iujɿx\|2sR'c1C Jxȸq\?:}YS3D:wY SxY{Oߟbֹ`$i{CT]Um`MuStSɔS@IJM4wIw>6DBy9gٍ3R%MAxH!7%U
Ѻ~S\ￄ>YQ9@wݵ|^OEDI,~M]
`d0aI(,B7 ']2.KkBT>.ǴX@o+Ga7*ώ94	5k';WHg#c~'qX/|#Xƿ>8"0k6|\\Kqg]|>_Mw%F3}[%28h2s/{3V-0O?>i/DI=Ǘ
etSQ+Dlk=kjj*FBs4suaI*Q],kmG*@~~n)cl2ДA9HB_ToF7og8S~qF^D'ɰN8P oE3u<<8W$IP-ԢIXt&3]ئ"D^~{Ķ)c7n[GX̼JL#\5S\`QHGT[JÅzj
עվ1bRQ56k-!9*GIkEQ>:Mǫ"$x:-bѩT<Pq*-bSxx{XLҐ"N+|:eVT%)T3^^LUJdJkTwGcfjZqPLU5[$<$e :ΙԯWQ)dN"RdJ_C쥌=wfp&U\B-/!ks Ԯ!R4,v5u|+BgsWnՁPH8!Edl1/SU1TM;r2 ( ި"7K6(m #2.
0aNwkCqMPN} a `^e@ц:"YG-So%7FY	AGU嗊V+Aq#0Vc^'I0)#d3-pJ7w+F}HC_#f[0sw(#}PDb 埐?PȴB>3]J893w+ӆdYLƃ4M`Ɠ .}Wz#7,S
?KkᰬA,^ JQ*J(Vo p:!Izb)2dɧ8ⲱYi	iҵҠ+E U\+.4S`05Ӥ"7܍`Kdy
N+N9`SғY@Fb{b>{8C#0d<FnS'g$\%hg!R]o2j%7{
DoL_d&Kw,[nƃ%} àzKK[O\B{µN`f{%Amcelײޫ?<le+3lQUE~B2||?GōictO鸷	jU߻@S؂<)<+wXih$ʡK:g5up${|93VPHۥ쐴,$
2SJ,+h\eY v"RD'kĨ^
Ӄ\٣pނ?Z4r]Ol6wc!%HS]cm"T|r8󤴒0X]&?E1]$A&୶#(ezlm33Yqfʰ;"0v  ld$V]nlV60su栘?Xd4f3\x}.s>W_T;ȨGEF[P7gCGItrzaYf8QR#8Y8MuN#a|4)bǳfnLۆMgcH@'<˫d@A
I
r!kꅂ?!pŭʴM	l8F֋#u<̘k)ww0:*bfA9n4#Gjykg@.e2Y-C5;)ٕzNra医w8L?wۯ@~͚AՁNl&FAn <
HAP$Cza].g`)9+6	-N/'?/^uEZ"!'"- <4eU|`T\2: [Kү[IIɗ>/zg|=!-vlc%>|VdX:58}L3pza%1Z)ROJc4fdѢ#9z~5st8YG^HS@>f #vLۋ!TzZ9T7E-vi-d[~ _Jk<ppp1_&C#9m_WYa?&;/^'wg\2θkOiW0u>/c_zAx@9Fpgg#/p=|.q'4}mN{>G?AYV0'f*~zEPfg>5R*71ŉ<^Ŋ4+d$m|u-ϋCmJqqi2E2lU(U,0@M2%g';A@'-> &	0hqgX:Qr1t_G=I1iLeu享xr&XvÏ#eoWJۢxY]OV8iQI(zQ)
ц%eSb5YWJ
#t|:%J[ /k\vc;ǉCCTMUEn}0'tC;}a@߅?쁴6OQ7tNy`4(L'(rҸ2Na49G  h_T#ܐ0us&01=l!.}NxGxѪ3T޾3jpvPT{{;EiRQT.A J֛JqAٞV?ɫ #}>R1%sS0TIM(azo䣭_pa\>G1䝔+,^J]ΖW3k0^:zHx2#9Vڮ-2QfAB'C=*o)Jfٖ&᳗VZ?Ͱa8FV4Ue%Ee0
0(5ڮ?\2>[VYBj`xKޕƁN9^tb=bIӋp.Z[f|a6ƭ@msb":Fy1{!6Ąam'vzӹ^ǳ6US{ѤH.]QFW
<g(I5f>#L/#U%?UT5i90%UShYd"|74R^
3fu176aش׬Ԛ܃=>O[t`O->?p}X쎴<%<HLOP>ZRICĩ;kH.j'-A =w,9ol3M 5FS:fJJڲk)Fj|:%ސtN夷cR@]X\==@ޭ']uJi1\x,}FTj0GLf*O5IX u-ןp{=z+YLUmxNNRF)eoL&©
ŅV>V#=u~T#4ORH<sܹU9$hEFV\87'9 f.7&_` sTǨ!T'׎ۤrMxv0U5"Sx5& B=ͨ
)oW@cQ됦*AdKL	RqJ<aԀ%8D!&Xͩ%hrH=w|J@XBQz/f$H2̂P8mj*{{oɉqؕUo0h)}	A	IO.΢oP4G;m[JUfmrqdiU|@ca\B"XfDBL%Fc]),\>G6"[ړ{`}t\vMB:r=`u|[
	M+>{A<^6$Lj9VWJD= b'Vx{ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "KN~-Eȍs2g\Z`=|MRLʤe}&U4guEEy%KnhGي'܄*d>r7]T/]d1f=nbsNX tcrsgUE3wԘ]:z%"RK&m`K^~u2ӛvQ!Hmڲ͂?uvI'222SS*es<a~2W׿Qq5y%%)>ݿaÿuo[/OyQ[oJf"ɩ,CYU~JbT38{Fd&f؜9=LLRKSK2ְu?fp6፯leŤ]~3a#ۊSK`*~_ej\e[Ԟ^vᾆyb)% zS-ʅMD)^nOl] @x{wF('9<Ow
}yL@!(;4$37g3KVcXP@p-\Ui&QMG(O`>pd9Ř0|
)W1rrw\1S촺'c]ә󲎆[edɺE.[pgN^gNlbLJݿ=K^?−̢ĢJy+f*mO ykk@x{w(8&edTzg0~fu571W7z3E=yͽçUW3ѝX_TW}%n+O1_|,T 4!c֤[ʿoҲ;?7,Ƽ)˩nSu)%EI%)E)Eג,׿N7mɂ,3E$}83};척'c[babmo][tVb~ni)9y%3nn*88#7?1v}49ïSߴePM>W'۰X/=_oҩO]Y_XTR0TVt'5{>ѿ6 	Ox$ !LLf(8ݔ5xb !%40000 AbilityKit Fj75
r*&Kq!7 1}LU`]-t\)&kwϑ*sjwx{wF9l x!%40000 AbilityKit {,BſPqK0[%$*ePsRj2nzo[8\zu<MKط{n=;+ҳfDqC3놞稄TvA[ߎ6t	_c-7t\)&kw40000 security Tfٙ|ۼEa:b<z{,V_4OXb01mGu"x !%40000 AbilityKit {,BſPq	)-ʕ<MKط{n=;+ҳfD	Q9=kc&aȓ[uS]~á`]d-7t\)&kw40000 security Tfٙ|ۼEa:b<z{,V_4OXb01kjGxm VkMNDajm͒$Mj.΋2\T}W/1hAv"`lhl=Wf1XCx+]{e:|ʶ?B;)qNʭ}?uᓓjm 5/a,Q<moWP7z|s;i#,u*P7;9mً-p͹ႇi![>HhZ; G.-)dp40000 multimodalinput ;iH2[,hu#0z2
.b߅R"f3_40000 web +܂=w{߲NVO`}y၈}x~ VNʭ}?uᓓjmʢjnx;Jq3w>+ך}2 m240000 multimodalinput a -;)2;6&Tw,R:
x~ VNʭ}?uᓓjm͒$Mj.΋2\T> շ5i_pkܵ40000 multimodalinput a -;)2;6&Tw,92x! VNʭ}?uᓓjS x˻w;T<ɔ,^Lf&݌ $.x VNʭ}?uᓓjmʢjnx;Jq3w<b:z1v(j;k7Ԧ%##o\(40000 multimodalinput a -;)2;6&Tw100644 ndk_targets.gni ޅg1n`40000 network 	!QmQӭ#!րUh[d-x˻w;W4	WpGsFh3nF 71[x˻ 3KRSZԧ8	~˷{#A8&edTzg0~fu571W!3S2SAJWYU}R*qe9&dn("z㚔_˩Oڗ6o8yǓԣ؞<*ͫ_̂O,ʎ/*+Me>/>T*gWUpTĒ+c?e^L6"%R!E.w\-mdkLg/,,NrO7V;CLL,.)L*-IMH,J)O,Jeh$dunvn?O~Ƭ+Ęs&\cQBy7?6ɏ~1?#,3<%(#?)S
}T̼ҒԒi⺞\]}}S|̧CTB'%3嵍\iς=~cy{93nn*88#7?1v}dh``fb_XZRɰƿG~r:`w_>)CRK-9V75f\k֪!Yy徹A&ïSߴePM>W'D/=_oҩO-,J/H,jr]{ނMY/oi^5Ngf$W-"Umj݋<[  VIx˻w;ӽYxed0v3nF \wx! 6uٷh&h>6tTxv'x˻w;C+޵
Ks\Uyf&݌ PUx˻w;q]|W1$f&݌  x˻w;Yy0i:w[bf&݌ I1x˻w;>ݵ}߾Jh6q/\u7# nx +NvPFm`<.F4_T}+;D8H̑44xEt40000 hiviewdfx (Bl'nnF;7>b7A=mͱ]y>640000 multimodalinput j0wo*@s&hOR81ȳ,_O@ǰjT#[gxm zCmT[<.F4_T}+;D[SnJں7]|ⓓ#4[.! ,^0^ux˻w;߃
wBnZ>EL
 s#x! 04Opve{~ǳpSx!  EAz<_sx˻w;d'57.f&݌ 1x! KVEU\͛	Ł3x! ׸Vʷt/cx˻w;2AEE~@f&݌ 93x! kKO&B.V̗bcx! al=]EԂ vm$+x! x]ֹԯ;,Cx! y؝i`0^9=!!#sx˻w;i&L2ſUxѴL.sx! t'}^뎑qIx#r_#x! NSdtp:JSqSx! ȨXJ(j4RLĳ 1x˻w;gL',0Vӵu7# x˻w;Qb<"׺u!c3nF ۄ`4x VkMNDajm͒$Mj.΋2\T<>wXadFlmbЅ;\ tT3zƴI40000 multimodalinput Ә)Vl_H100644 ndk_targets.gni N{|G3ETñ40000 network 	!Qm:P$:2k$i$ex˻w;-\3۶][b3nF ~x˻w;Lޖ謜fᰙu7# #Ax+]5}kK@7YqkMNDajm͒$Mj.΋2\T<>wXadFlmbЅ;iIzh$]|62f7@Zr&jZ͠B[>]5ܯj]40000 multimodalinput Ә)Vl_H,:P$:2k$z2cJG!єQ40000 web 9V	t"_rI$@k-RAx: k7Ԧ%##o\(;"5N{F2&r
x~ VkMNDajm͒$Mj.΋2\T>0ʊL<k540000 multimodalinput Ә)Vl_H,9 x~ VkMNDajm͒$Mj.΋2\T>cIw"Zu:>40000 multimodalinput Ә)Vl_H,B"7$x zoUDwkLcfē<b:z1v(j;D~Kq,۬K㪓[(7q cIHжzkEa9x/
D^91ړK;wx]{e:|ʶ?B;)qf 5/a,Q<moWP7z|s;i#,u*P7;9mً-p͹ႇi![>$6\EʑX_98K40000 multimodalinput ;iH2[,hu#0z2
.b߅R"f3_40000 web +܂=w{߲NVO`}y	!zx I;Yt;mVռ <b:z1v(j;iBrFF1!Ó~Kq,۬K㪓[Ll9݋=;|CF>M2n|adAe[ 0zcJG!єQ>V9fx! Õe4d~L|T71T`x! V!ϪFx! CN+[)\쯳"vx˻ 3KRSZԧ8	~˷{#A8&edTzg0e^/Hkڃ?Y{(rJ,LN-*LN-)YOOL,0Clg^R̍BLQ&k~3zEz7eEEy%V!ryO^*dxs9ͷ7my\wFͬw6>}_gk͡}̙"MLJ/ȴ񇪯O-Ęs&\cQ3vVc@/}ɯ%!#,3<%(#?)S
}T̼ҒԒi⺞\]}}S|̧CTp7tvj2ɩ;#mtLg]&2qg3kniuMaܝɂlUFNL4o4HfՍh+OMb*q+Yզܽc ox! +=Ϝ&֣m*SY'ų<x! s#7;\̈́lx! CC!v^da3Px˻w;zriJhugGf&݌ ux! VF4Mx`d9ͳ~c4x! ":rt8_س&4x A4֕K.K}E1=YO>Y40000 arkui nVܠUV[8"<tTx]rcD	9뻼\]	;DujwÆ}2(@/[N}L3vkq)l=9r}k5ēzGy&[ȥa1C0QVxl ԭCZ?UAiӞ{=*X66(7q cIHжzkEa9x/
D^91ړN1x˻w;/p^1ϙ,LT4xh]{e:|ʶ?B;)q 0[%$*ePsRj2T^
3ǮC<MKط{n=;+ғ;ilI~	¦61ѩx[B3a\d7*T.J'X8~ɛgۓ?/DvN,40000 hiviewdfx 2X _d6pK7>l*y_eV!kO>N40000 multimodalinput ;iH2[,Tfٙ|ۼEa:bz2{,V_4OXb0140000 web ߁o&1 t+xO]{e:|ʶ?B;)qfBH巴A_՘W<<VQk ^ ;ilI~	¦61ѩx[B3a\d7*T.J'X8~ɛgۓ?/DvN,40000 hiviewdfx 2X _d6pK7>+xvD"evȓi40000 multimodalinput ;iH2[,Tfٙ|ۼEa:bz2{,V_4OXb0140000 web ߁o&1	x+]{e:|ʶ?B;)qfY62HҜ)Du<<VQk ^ ;ilI~	¦61ѩx[B3a\d7*T.J'X5.GH^;sWTC9ޓ[>aSMmަ!)Wz40000 multimodalinput ;iH2[,Tfٙ|ۼEa:bz2{,V_4OXb0140000 web SBC-׫WAIIWCx; ԭCZ?ULl9݋=;|CF?Yx] !40000 .gitee 'Bp?GXC!^Q4Q
94G)*!ޅg1n`WfZ$"Ex! G<K
UƓ@[ux˻w:HMX`
qH[p훭Jx˻wC=Ȗu{+O|[.)ĳy2 \x˻wu&9&f]gEN)LT	x! $g#n|.e◭ӳ[Q9xT 7/<(xz32s<6znv+xvD"evȓi'x! 7/<(xz30x! BH巴A_՘WBx; BH巴A_՘W] s2h|,Q~x; BH巴A_՘W`)@nV\Vx; BH巴A_՘W.xT#Πc/,aBMgJx˻wC=Yֿj
=$Yjd-& G-x˻wu&},A!q]sfʕ0*)3 q1x! %;6er[dvL0Uֳ_0x! z	goK~\ѣ
S|C_x y0[%$*ePsRj2T^
3ǮC<MKط{n=;+ҳ;};n4f>\#I)!AmPU2nWf:Fx˻w;ے 'ZϗsZܻ'h3nF Htxk 'M#@_'F7)ʺ;B eZ3u5 'g'ÎZ@@d>uƓhu#00nx {cz0_<	,~8˓<M#@_'F7)ʺ;B eZ3u5 'g'ÎZ@@d>uƓhu#09;x 4O|(AY8a<M#@_'F7)ʺ;ivr<1M'p[B eZ3u5 'X;/c*:s=+[̰(Ihq_ɓhu#0+܂=w{߲NVO`}yH^[x 4W"U_ODs<*,	~8àuQ;ivr<1M'p[B eZ3u5 'X;/c*:s=+[̰(Ihq_ɓhu#0+܂=w{߲NVO`}y
]5x 2BI?>q[t&2<moWP7z|s;i#,u*P7;[bcՖOQ'XhP1mDF}s[2cDz_E,Osڽfv{hu#0z2
.b߅R"f3_40000 web +܂=w{߲NVO`}yi9x >2E^e)H[	iϓ<<VQk ^ ;B3a\d7*T.J'X8.j;|U+P40000 hiviewdfx 2X _d6pK7aSMmަ!)WzTfٙ|ۼEa:bʹU|	xS '<VQk ^ ;B3a\d7*T.J'&ebp0%  zlm)*!	kx eŗ}fϸ+<6mg<*,	~8àuQ;ivr<1M'p;/c*:s=+[̰(Ihq_ɳ+܂=w{߲NVO`}y+Gx; cz0_<	,~8˳`"1G{ Uwesճ^x; cz0_<	,~8˳kn}aR#7{Bd<>OލN(x; cz0_<	,~8˳̰(Ihq_ɳ	>9xx Y62HҜ)Du85.GH^;sWTC940000 hiviewdfx nkc
?$JZ^X79}+AcpR(iU{3@x˻wC=ȄK8Lgp!κ8<,ZL nnx! Y62HҜ)Du}:^x! $K5XUQw2Dqx! }HvmBt$}!==x! ki'T,ەG邐Smx! Y62HҜ)Du}:+x! ፜|mhR(V[x! x2ҿ,>Yku
x6 W"U_ODsSBC-׫WAК^Px! ?kG\qp5 
6 x! O|(AY8au0x zὮan%tX	4ޓ<,T^0^樓;bcՖOQ'XhP1mDF}s[1!1R HPyfFAx y2BI?>q[t&2<moWP7z|s;i#,u*P7;6 s"d

I\o "
.b߅R"f3_͓<):#x˻wJ6;Ml˫%P[ )x! h-v!8\a߳3Xx! O|(AY8au/x˻wC=HkW'brؖO{d-& <q~x {Y62HҜ)Du<<VQk ^ ;B3a\d7*T.J''azP>!lTfٙ|ۼEa:bQ@&xi O|(AY8a;/c*:s=+[n|hWSl+܂=w{߲NVO`}yV01	x˻wu&rW;'N55wWډ[m~t ݉,$x˻wC=kCs;p핹UlIZrd-& Rx! W"U_ODss&^xS lI~	¦61ѩx[B3a\d7*T.J'X5.GH^;sWTC9޳*%T%?x˻wfJcgQ|+'fb 
NřEeɩޙ%KN~-Eȉn"-Vݾ]}~O8unxQԼx|ڢ:\nNbyn3?X}?gfFDn?v7hTcÓ&[3ۈxm[6e?Ƚ9]xnfIW[^g9Mw0GH--yi77Lou8p:YL{J4rhy]
ĂdgWBXSOC ̲
GB~-Ojx^YN춺KE9MT7>޹͹9%)9y%F?\&{9齛L!݆f&&
y)%E%zy_.ugR~ʀZR_(ta6F{y7n.\ɚh![JW炷ͬ[\ZYRɐldafkR!wg,VeqP|ҟ?Zd-OMb<+6߲{E=UuE!xT vI~uZRzUҵ2<*,	~8àuQ;D;/c*:s=+*`%zx]5}kK@7YqfKQc<][V <b:z1v(j;i~V뻏gs͞q?[bcՖOQ'X~Kq,۬K㪓[N>@%fa|2'.0x>M2n|adAe[ 0z2cJG!єQ40000 web "qon3'MppArx H~P|t5B-)*ǉ<moWP7z|s;i#,u*P7;[bcՖOQ'X9mً-p͹ႇi![Ciʆfc	
.b߅R"f3_͓LT|x 0[%$*ePsRj2T^
3ǮC<MKط{n=;+ҳ;D8~ɛgۓ?/DvN,40000 hiviewdfx 2X _d6pK7l*y_eV!kO>NAޅg1n`WTfٙ|ۼEa:b߁o&1̥j{xi M	Z<Rw 6ʓ<<VQk ^ ;g'ÎZ@@d>uƳSBC-׫WAe/	sx aJb>x
sZ Br<*,	~8àuQ;ivr<1M'p[B eZ3u5 'XhP1mDF}s[T*<ݻ(]tG; xi Y62HҜ)Du<<VQk ^ ;g'ÎZ@@d>uƳSBC-׫WA(0xP Y62HҜ)Dug'ÎZ@@d>uƳSBC-׫WA߻$wxT 0[%$*ePsRj2h-v!8\a߳(B eZ3u5 '$I:xS g!9(~S~=lܓaSMmަ!)WzTfٙ|ۼEa:b&q$x; '<VQk ^ ;aSMmަ!)Wz-G%x! Fb_V̹_UUx˻wb͟f>+Q`q6o%,lL 6x˻wbE.[a߳@떿mvYؘ 1x&2{,BſPFe`O2!f[س72/F={GqcrsŢ8ueJ?64Re¹st40000 hiviewdfx G:7UN(>Kk7>;'cYFPmT40000 multimodalinput "|)sW0M,7t\)&kw40000 security [G^ؿ@Bl&z%{[T,>&18p /'>Ax! 6Ɠ6<c#fOAA>4x: 9Fb}xnIs-x<+7c7}Dمלdn5s;#-
x TԭCZ?UIzh$]|62f76>(7q cIH40000 multimodalinput a -;)2;6&Tw,жzkEa9x/
D^91ړE09w7}zUx8m/jH?"x! T8JvS%GRx˻w;盌/*m1*H>[{f&݌  x! 9Fb}xnIs-x,0x! Yxn=PD\Θ>x RT7^7t-"r#ē<MKط{n=;+ғ;ilI~	¦61ѩx[B3a\d7*T.J'X8.j;|U+P40000 hiviewdfx 2X _d6pK7aSMmަ!)WzTfٙ|ۼEa:b߁o&1;k<xT O|(AY8a<M#@_'F7)ʺ;D<"%	(] 1Ĥ糓*t$ax˻w:HMX`
qH[p훭.x! 2E^e)H[	iϳunx! hP1mDF}s*%0x˻wu&QU?IVp?bep*5%f a]x; Jb>x
sZ Br1!1R HPyUIx! bcՖOQ'Ux  Tfٙ|ۼEa:bHxm LQ鱙%spb/ēvr<1M'p61!1R HPy{,V_4OXb013`0	Dxm jQ	^DQcvvr<1M'p61!1R HPy{,V_4OXb01|-0@xm Ὦan%tX	4ޓvr<1M'p61!1R HPy{,V_4OXb01 /Z<x: Ὦan%tX	4ޓvr<1M'pG+x! 1!1R HPy5x! 9mً-p͹ႇi!*exT #'i 8|]
nz9mً-p͹ႇi![o1
^BʋEwf(HxT Tֿbnjí+Si19mً-p͹ႇi![o1
^BʋE*#+xT Tֿbnjí+Si19mً-p͹ႇi![/~BL*I"Q_(xl ]5}kK@7Yqf JdmYCQTC9mً-p͹ႇi![/~BL*I"Q_}m.Ax˻wC=HkW'brؖO{d-& <q.x˻wC=ol{~f^͓Y [x: hP1mDF}s[{VU4J!dr{V7?#x z0}"SԚ#,u*P7;hP1mDF}s[2cDz_E,Osڽfv{
.b߅R"f3_͓hA x! B eZ3u5 '4xT ٿc6P@Y1!1R HPy{,V_4OXb01x#sxT '*,	~8àuQ;1!1R HPy{,V_4OXb01 zx! 1!1R HPy*x˻wu&FNyf..QbzkK YXxl 2BI?>q[t&2#,u*P7;9mً-p͹ႇi![Ciʆfc	A2Sxl d@E㙏讧Co3#,u*P7;9mً-p͹ႇi![/~BL*I"Q_%6NxaVەnJ(,DEjm8]AB?~d?	E<>wXadFlmbЅ;iIzh$]|62f7~aLEG<Irʦl[P[F'_W~зO40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 1φ}#nC&y[G^ؿ@Bl&z2R/}Hm-ī)40000 web 9V	t"_rI$@k-~fx! Tֿbnjí+Si1gbxh ]5}kK@7Yqf JdmYCQTC/~BL*I"Q_O{Ր2c.ZW,Gvx9 ]5}kK@7Yqf-ႰuC"TU<)t
dx ]'.idea D0GcJBm!ʢjnx;Jq3w!t.}YZ@Zr&jZ͠B[k7Ԧ%##o\(:P$:2k$>SK
x TO9FWSҬEV~V뻏gs͞q?6>N>@%fa|2'.0x40000 multimodalinput ;iH2[,>M2n|adAe[ 0"qon3'MppκfMaOx: ;Yt;mVռ >M2n|adAe[ 0Zx˻w;l4PZ,ڣaf&݌ [!bx˻W 3KRSZԧ8	~˷{#MtYOOL,0ClgލEOߨ[eZ©,AYJJ2sSVϫݳB/*WUɰK^U1hDwlj,l#f֍;γоqhLϺ8~޷вfs.|9Z񅻉1)Z?L$5ٝ%4&~}^71iw222SS*">2ŌmwN+(-M-Oax!7U߿g|J<DUniȿ)7tbƅ7^'_|cu
YU~JbT/|WpD6hC3ĢԒbL7?SwFL\κL$dδ7gs;I٪u&o7`~dP$W-"Umj݋<[ px x'GԭCZ?UIzh$]|62f7&-,l5iœ[Ll9݋=;|CF"жzkEa9x/
D^91ړ1]1;$xl H"9J#>o"_ҮĖ_{ד8"%O|ӫ#-F,XX[I)oc,6ufW|+'.x˻w;F(::\ݐs1L,MxT _vۘݬrGxٳ#h S=n(_liiAޅg1n`Wf0H"l0x!40000 .gitee @CbRCFXcr:1!<{e:|ʶ?B;)qF4_vۘݬrGx40000 arkui $g#n|.e◭ӓ<<VQk ^ ;D~ɛgۓ?/DvN,铓69򽿰{'l40000 multimedia pED(&dUbwZAN{|G3ETñ³Wfv!x: 	Q9=kc&aȓ[gPi-|!jx˻w;_E/%x&G֜쐎zu7# xl nzo[8\zulI~	¦61ѩxʖ4|bKV[ߎ6t	_c[4vx I2Fj75
r*&KFK4O?.TFf'`쓥2HWgBF+[+R,"_ҮĖ_{ד	Q9=kc&aȓ[2ᬫa.OL ȑ72xcROdձaxQ]xl H"9J#>o"_ҮĖ_{ד8"%O|ӫ#-F,XX[ߎ6t	_cH(0Xx9 2Fj75
r*&KFq_vۘݬrGxٳ xS "_ҮĖ_{ד8"%O|ӫ#-F,XX[aǛ'Ԁ90I9I*#x: 8"%O|ӫ#-F,XX[ߎ6t	_cߓ1Kxl ]{e:|ʶ?B;)qF_vۘݬrGxٳ#h S=n(_liiAޅg1n`Wf@A-&x; H"9J#>o h'.dVVIL|	Ex b],%W5a@qFn} Y2I9诞"_ҮĖ_{ד8"%O|ӫ#-F,XX[ߎ6t	_cAs	-RໆG,WfLXqxy Gx8sJ_ȳ~ɛgۓ?/DvN,铓69򽿰{'l40000 multimedia l*y_eV!kO>NEz84x! 9!JECb]$+dx˻wD&5zC]|"MU=aϛK$X flxl _vۘݬrGxٓlI~	¦61ѩxʖ4|bKV[Y\!QA@<lB,5w	{x n]{e:|ʶ?B;)qfGx8sJ_ȳ9򽿰{'l40000 multimedia h S=n(_liiAޅg1n`WfI?$x˻w;7k*.Kv%L1o3nF U
<x [4n} Y2I9诞40000 arkui H"9J#>o"_ҮĖ_{ד8"%O|ӫ#-F,XX[gPi-|Bs	-RໆG,Wf7<Mox˻wC=7T]^y2 x9 ]{e:|ʶ?B;)qfGx8sJ_ȳ VZexy Gx8sJ_ȳ~ɛgۓ?/DvN,铓69򽿰{'l40000 multimedia l*y_eV!kO>NEz8x9 ]{e:|ʶ?B;)qf;VVj
P]!Hx˻W 3KRS=tpN
rvHYj5싍s 2Rx7/<(xz32cz0_<	,~8˓<M#@_'F7)ʺ;i"_ҮĖ_{ד[B eZ3u5 'X85.GH^;sWTC940000 hiviewdfx nkc
?$JZ^X7̰(Ihq_ɓhu#0SBC-׫WAw	x o!40000 .gitee 'Bp?GXC!s ǹs`DPCL<MKط{n=;+ҳ;l*y_eV!kO>NAޅg1n`Wfr9E<x; 0pp :gi$Q߳l*y_eV!kO>N H x 4n} Y2I9诞40000 arkui  5/a,Q<moWP7z|s;i#,u*P7;[bcՖOQ'X9mً-p͹ႇi![/~BL*I"Q_2
.b߅R"f3_40000 web +܂=w{߲NVO`}y,m x .2BI?>q[t&2<moWP7z|s;i#,u*P7;[bcՖOQ'XhP1mDF}s[jo_a4Գ2
.b߅R"f3_40000 web +܂=w{߲NVO`}yb`x+]5}kK@7Yqf;Yt;mVռ <b:z1v(j;i~V뻏gs͞q?[bcՖOQ'X~Kq,۬K㪓[><x?Y&װ40000 multimodalinput a -;)2;6&Tw,>M2n|adAe[ 0z2cJG!єQ40000 web 9V	t"_rI$@k-/'	:x nʢjnx;Jq3wIzh$]|62f79f ^իײ{8*40000 multimedia (7q cIHжzkEa9x/
D^91ړA"Zx 5*cQ5/Q")<C(\U͋og6
;D_w%k񁡓[>/~BL*I"Q_40000 multimodalinput ;iH2[,_2p6 &9S40000 web O{Ր2c.GZ|x; Gx8sJ_ȳ5oz:ř? coW'x˻W 3KRSZԧ8	~˷{#mT$"r`jZ.rpYgkK \8Qx; 'MKط{n=;+ҳ;ޅg1n`WfIx! ʖ4|bKV*x6 .T[+90p9V	t"_rI$@k-3Rx˻wJ6z˳raS9-+QWS![ ")x! ;Yt;mVռ \Rpx! *dA<ja x ; JdmYCQTC<C(\U͋og6
;i~V뻏gs͞q?_w%k񁡓[>/~BL*I"Q_40000 multimodalinput ;iH2[,}O{Ր2c.!Ysx ;*cQ5/Q")<C(\U͋og6
;i~V뻏gs͞q?_w%k񁡓[>/~BL*I"Q_40000 multimodalinput ;iH2[,}O{Ր2c.:[Fx; ~V뻏gs͞q?6N>@%fa|2'.0xmxT ԭCZ?U2AȯlXW|jжzkEa9x/
D^91ړץ'sx zʢjnx;Jq3w<>wXadFlmbЅ;D@Zr&jZ͠B[k7Ԧ%##o\(:P$:2k$<;x]{e:|ʶ?B;)qff?#D8TlaD<moWP7z|s;i#,u*P7;9mً-p͹ႇi![>2cDz_E,Osڽfv{40000 multimodalinput ;iH2[,hu#0z2
.b߅R"f3_40000 web +܂=w{߲NVO`}yEzx ]{e:|ʶ?B;)qfLQ鱙%spb/ē<*,	~8àuQ;ivr<1M'phP1mDF}s[1!1R HPyhu#0z2{,V_4OXb0140000 web +܂=w{߲NVO`}yhx˻wC=w[?ϏS0|n'3fE͓Y [-x˻wC={ۋU-Ty2 K[x! t4Ui\ fmx; *cQ5/Q")N>@%fa|2'.0xZMx ]5}kK@7Yqf JdmYCQTC<C(\U͋og6
;i#,u*P7;9mً-p͹ႇi![/~BL*I"Q_>M2n|adAe[ 0z2
.b߅R"f3_40000 web O{Ր2c.
iwx ]{e:|ʶ?B;)qf-ႰuC"TU<)t<moWP7z|s;hu#0+܂=w{߲NVO`}y9dx ;Yt;mVռ <b:z1v(j;i"І8^ē~Kq,۬K㪓[>Ll9݋=;|CF40000 multimodalinput a -;)2;6&Tw,_2cJG!єQ40000 web 9V	t"_rI$@k-'ewx˻w:Hnٷ%יoS8kͦ9L%x: ~V뻏gs͞q?_w%k񁡳*~inxl ~V뻏gs͞q?_w%k񁡳jhu#0zcJG!єQ42rx; Tֿbnjí+Si1oHnI+rv9@R8)<x!  5/a,QK]x! aŮɝ:CexT wl<eZڧgٖnsudK~V뻏gs͞q?6N>@%fa|2'.0x'[px VkMNDajm
MD&+f<>wXadFlmbЅ;iIzh$]|62f7@Zr&jZ͠B[>d$1ous-ƕi40000 multimodalinput Ә)Vl_H,:P$:2k$e_x_] Bq[4ݬ#qەnJ(,DEjm8]AB?~d?	E<>wXadFlmbЅ;iIzh$]|62f7~aLEG<Irʦl[P[F'_W~зO40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 1φ}#nC&y[G^ؿ@Bl&zR/}Hm-ī)ϝ@x; ;Yt;mVռ u;n|ϽCV
xl Sp`E0(".LʓIzh$]|62f76Ll9݋=;|CFжzkEa9x/
D^91ړ,{xS ;Yt;mVռ _LgVNTd2IE>M2n|adAe[ 0':\xS ;Yt;mVռ ɠZ+&
e%cbE>M2n|adAe[ 0e%>xS ;Yt;mVռ #,u*P7;E>M2n|adAe[ 0'!x: ދSP3(m?p1賓cJG!єQ&Nax! *cQ5/Q");xn S0<Hvf	CPN>@%fa|2'.0x2cJG!єQ40000 web +܂=w{߲NVO`}y.-xT  JdmYCQTC#,u*P7;6xA[!䡷>"Y}n'e$ox:  JdmYCQTC#,u*P7;GYx: 'moWP7z|s;PcJG!єQVrx! S0<Hvf	CP0x! tWFQjzi{ힰ*W/x˻w:HU&zȚ+fk&f [-x˻wJ6WJ].ϻqX}oA9 ^x;  JdmYCQTCvɔf"a#2z*Ux: qa޲+珂̊z,;iH2[,8x˻w;>̓Oα}vFg7 P-)OI+(-a~qb!ɧ{WzH4oެ: Kvxl )EC#RתJIzh$]|62f76(7q cIHQӭ#!րUh0{xl ;Yt;mVռ 5Hb,96Ll9݋=;|CF>M2n|adAe[ 0[/|uxG]!/gH&Vf-FiOOqەnJ(,DEjm8]AB?~d?	E<>wXadFlmbЅ;D~aLEG<Irʦl[P[F'_W~зO40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 1φ}#nC&y[G^ؿ@Bl&zR/}Hm-ī)T#Px! {w'"ԙӂ&r8|	x o]5}kK@7Yqfc--	!9Xx8br=jb&40000 hiviewdfx G:7UN(>Kk7\GjԔJNb7*>+cx~ VkMNDajmO;4؁!_uv>Yz!wƭ40000 multimodalinput Ә)Vl_H,79px.]WYM"d}⍳qەnJ(,DEjm8]AB?~d?	E~aLEG<Irʦl[P[F'_W~зO40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 1φ}#nC&y[G^ؿ@Bl&zR/}Hm-ī)hq-xT VkMNDajm͒$Mj.΋2\T)-;OVčԺ$"nz%x~ VkMNDajmO;4؁!_uv>ajTXce9To^$40000 multimodalinput "|)sW0M,8Yx~ VkMNDajmbK
ZMhI&=>ajTXce9To^$40000 multimodalinput "|)sW0M,R}6*x VەnJ(,DEjm鱲?M;!:KP[F'_W~зO40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 	!Qm
z$\>M*˓zR/}Hm-ī)*iT9x˻wBՎ]S|EA} քex˻wBȜ@oe0f}\2uB6 &'Tx˻w:HU&zȚ+fk&f [x! VNʭ}?uᓓjS2x! Ә)Vl_H,`xT ǄឧX>w<b:z1v(j;k7Ԧ%##o\(ڗ&BxS ʢjnx;Jq3wk7Ԧ%##o\(ŁF_B`|?Ó%'$x; ʢjnx;Jq3w(7q cIHn:nx; ʢjnx;Jq3wą_㏞9+\M;8x~ VkMNDajmO;4؁!_uv>Fta7}8`e40000 multimodalinput Ә)Vl_H,ُ9Ix; ͒$Mj.΋2\TLU0bl>Z
C@Wx˻wu&yAlc얕{&i211m~d73>+$B}rːwǩ,41 ҜĜ̼?%Yo}`f։ `%<x~ VNʭ}?uᓓjmʢjnx;Jq3w> շ5i_pkܵ40000 multimodalinput a -;)2;6&Tw,; ^x! d$1ous-ƕix! O!o٦`%
U=ǳ S>x˻w;Y!SX_;?Nef&݌ lx; O;4؁!_uvwFꎦZT3d'6_RzpZxx! O;4؁!_uv 4x! RՊvPYޚv|y"gdx˻wu&1<UL;Sm7M5[i(5%f Bx; bK
ZMhI&=rYQR*[DOx˻wC=<U=br)<sV,ZL px*:?ÄrL3ꔌU슐sk<h۽gr"e31ɾ;"ZiL#pO0G40000 graphic <*6RERZ40000 hiviewdfx G:7UN(>Kk7D:8,
\QÓA65R c/%h40000 network 1φ}#nC&y[G^ؿ@Bl&NfvAx˻w;>vdϐtlXzLR3xR -8-w!FǓAN{|G3ETñW:P$:2k$}%YxA '.vscode ݄8_t3 Ң(	z!\(+L7?.&/p{Idx h#viJ~X<h۽gr"e31ɾ;D8*kCBz:E)m40000 hiviewdfx G:7UN(>Kk7oѶ[mYi^XA6FP=,P+!40000 network 1φ}#nC&y[G^ؿ@Bl&4[jegx˻wC=|T'_+4} 3,ZL ڽxrVNʭ}?uᓓjmO9FWSҬEV<b:z1v(j;i~V뻏gs͞q?Z4'{+640000 graphic ~Kq,۬K40000 hiviewdfx nkc
?$JZ^X7N>@%fa|2'.0x40000 multimodalinput a -;)2;6&Tw100644 ndk_targets.gni N{|G3ETñ40000 network 	!QPTc7(K|̳iޓy>M2n|adAe[ 0zcJG!єQA1x! W?7/@*ax˻wC=/?_>+'jqÁ͓Y x鱲?M;!:K<>wXadFlmbЅ;"Z4'{+640000 graphic @Zr&jZ͠B40000 hiviewdfx nkc
?$JZ^X7+hQ>ڜ*@o֓A6C8_R:{40000 network 	!QPTc7(K|̳iޓy
z$\>M*˓Er-$x˻wC=HA@fyoϜioq͓Y 3Rx˻wC=yu~k/țy2 kxP #{Qa?*B$Wɳ-;iH2[,}"qon3'MppΌ#BJx VkMNDajm\z%dS=52,!<>wXadFlmbЅ;iIzh$]|62f7}N"
T|ǖ*˻o[>ajTXce9To^$40000 multimodalinput "|)sW0M,:P$:2k$`	9x fʢjnx;Jq3wIzh$]|62f7@Zr&jZ͠B[k7Ԧ%##o\(:P$:2k$"qon3'MppPHoax; zj?hH<KE`1Ll9݋=;|CF3~@x! S0<Hvf	CPpx; .T[+90p/~BL*I"Q_:x: .T[+90p<C(\U͋og6
;x! .T[+90pUexO q54HJN%<>wXadFlmbЅ;n9V	t"_rI$@k-sCx6 ~V뻏gs͞q?9V	t"_rI$@k-97#x VەnJ(,DEjm鱲?M;!:KVr`gk,xx40000 multimodalinput "|)sW0M100644 ndk_targets.gni C8_R:{40000 network 	!Qm
z$\>M*˓zR/}Hm-ī)oh/DxS ìGy~^Qo!%<>wXadFlmbЅ;iIzh$]|62f7#	bx iVkMNDajmO;4؁!_uv>ajTXce9To^$40000 multimodalinput Ә)Vl_H,w+i nSD;LK)
GAex! ;Yt;mVռ \Rx: as*5lf5vIzh$]|62f7+Ix! ԭCZ?U@xm VkMNDajmt@jUrYQR*[cJG!єQ"y3<x! P[F'_W~зOɳlx9 CC8_R:{W
z$\>M*˓}tx: kXR2Ļ%R/}Hm-ī)k=x  R/}Hm-ī)lxT V]B47)jjnϳ-8-w!FǳR/}Hm-ī)#x! '7w೻3T*-SQRNx! '7w೻3T*-SQRN0x! VەnJ(,DEjS_x6Ҵ> O	-*:?ÄrL3ꔌU슐sk<h۽gr"e31ɾ;ih_>|[x$Eb3ZiL#pO0G40000 graphic Zy-}eӏ/40000 hiviewdfx G:7UN(>Kk7D:8,
\QÓA65R c/%h40000 network 1φ}#nC&y[G^ؿ@Bl&ksxl 鱲?M;!:Kp{S 36:#AC8_R:{W
z$\>M*˓A.{xT aONٮ`(*oܶwP[F'_W~зOɓc1φ}#nC&yD'!x 'c@yxnYDˋەnJ(,DEjmx_KwoUx~wÓIzh$]|62f764'{+640000 graphic *kCBz:E)m[oѶ[mYi^XAFP=,P+!Wf$f,"x˻wfJcgQ|+'6QC"/%Ҹ m݌"x;O_׹rurH}ی<MݹE2_۲ʸPJum);E95>(+_tk:($d&%U2xm[6e?Ƚ9]xnfIe	9[2r]Z-"Y.?0RQZO&ׯ~!6nיO]ube)iɞK^~wFK?i5y%%){dO^<
_I=U9%)En+<[A Ŵ6RgdU)9`S697Nz嵈].eh``fb_XZRƝ௉fNoM[͟^l![JW炷ͬ85(!<vÌւB2WX!<YJ䕠ݓKWٱ׫$G=/ )5xT VەnJ(,DEjm#`WG9l>!^7{5['wx; h#viJ~X3BWN,,Kb7l+\Ax; h#viJ~X=@qK0(-D9u`Q$x!40000 .gitee FD4Uf,켷9MxȥT!ܳ)LJ,S)<2Sg<	^{!$Dmr;i[il*1dL[=tߚ;G}L 40000 filemanagement SX[
zgPSEPٴb7͵Ƈգ֓7y|SCV96a):40000 multimodalinput 20DdKhBFV100644 ndk_targets.gni zP`|&0GT40000 network hNvYzc-zyXϻf(3%m-\xm R:(z{3P@?b.q1hAQTgކ@
fW4%{[T,>&18p /n-Cx; ~_}"TTD:8,
\Qól2x˻wu&߳vj[9}Lkx 'I/Nʭ}?uᓓ㓌mʢjnx;Jq3w>k7Ԧ%##o\(40000 multimodalinput a -;)2;6&TwNN{|G3ETñy:P$:2k$3z2cJG!єQ40000 web 9pD6	hR
ȁ=$#ݣeo_x$ 'I@K((ZjRҜ`$,x$ 'IObߓ^\ؗ$&Ex$ 'I'=0$7xx! '=0$Qd=x˻wJ6̊j.˚a_6 x˻w;5)vXֵu7# /x =MC>*F/9?>r<>wXadFlmbЅ;D8@Zr&jZ͠B40000 hiviewdfx nkc
?$JZ^X7kvCh|wr)AC8_R:{W
z$\>M*˓AT x˻wC={'>0K/I,ZL 8y.x @Ҵ> O	-R:(z{h_>|[x$Eb36iL#pO0G40000 graphic Zy-}eӏ/[>!^7{5[A5R c/%hWfzW&|x 'Ҵ> O	-R:(z{h_>|[x$Eb36iL#pO0G40000 graphic [@#x,'Dp鍗Z>[uƘqyׅjc8A5R c/%hW4%{[T,>&18p /f_cx˻wfJcgQ|+'6ѭP
۷K/	mO04\g{੢L="^[ִ~xr4N;YRŕ+օpG鼭DCKf(l{VߠcER&@^XP>˾C;ew\
QYZV-eepϳ9Y_x8y;yX(*ngO94$37?%1'3N݁#<J:>CD!/%;$(=X/=/%L
ZUr}OCRK3l>695aC2AoY785(!<vÌւB2WX!<YJW]TE,?͵:y> J)xm pZgMW<>wXadFlmbЅ;\GjԔJNb7*AC8_R:{Wf%0%x p>.;Y9<>wXadFlmbЅ;\GjԔJNb7*A6C8_R:{40000 network 	!QPTc7(K|̳i޳yD%<
x VMC>*F/9?>r8@Zr&jZ͠B40000 hiviewdfx nkc
?$JZ^X7P[F'_W~зOɓc	!QPTc7(K|̳iޓy
z$\>M*˓|K?	Rx oMC>*F/9?>r8@Zr&jZ͠B40000 hiviewdfx nkc
?$JZ^X7P[F'_W~зOɓ
z$\>M*˓C@qx; >.;Y9³~aLEG<Irʦl*S<gix  [G^ؿ@Bl&rxT 8]AB?~d?	E~aLEG<Irʦlj[G^ؿ@Bl&br' cx; BN!m̂%9
{@Zr&jZ͠B*l,x; BN!m̂%9
{G:7UN(>KkJx! Zjw~ ޻(Ht ,x; Klk9"}P[F'_W~зOɳ7A	]x n8]AB?~d?	E8@Zr&jZ͠B40000 hiviewdfx nkc
?$JZ^X7P[F'_W~зOɓc1φ}#nC&yDc@,}x; 7C>$/kBz1φ}#nC&yDgGx! eX,])gB򌘳yDWwx: nkc
?$JZ^X1φ}#nC&yD@x˻wC*H?_kjDǵgn2ٞ|s%# *nxT ]S2p_e$V<h۽gr"e31ɾ;*1φ}#nC&yD=$vtx˻wC=EݗO[Ÿ}ָ,;, 222SS*ܗ4߹.t4xKfo 
&Fx-Ҵ> O	->20IF{FK1WJQȿ)ݩVVW,=l@ZiL#pO0G40000 graphic ueJ?64Re¹st40000 hiviewdfx Í2X`qi#4󙁴ѓ7C씵ֽR 2,Y;A5R c/%hWcC7R=;Tihz|J3epoum:x; Klk9"}\GjԔJNb7*i,x! Klk9"}x˻wC*HN>r&+Lc}1͕. A5x: yUmJGɅk/)<>wXadFlmbЅ;)bxm n,a|*kCBz:E)m[oѶ[mYi^XAFP=,P+!Wf4^x: >.;Y9<>wXadFlmbЅ;|Ex; h#viJ~XJ۫t0ܛyH^3*9x; h#viJ~XU_^gb5N	qHҳ;IYx; h#viJ~X{-}SX3|YVWV/jx @c@yxnYDh#viJ~XIzh$]|62f764'{+640000 graphic br=jb&ԓ[<9ӢG*ybXKAFP=,P+!WfhU8xT *:?ÄrL3ꔌU슐skIzh$]|62f76D:8,
\Qó5k&	x! uƘqyׅjc8;ax: =lgN:VAC8_R:{Wfk"*x: ZgO8)wECAC8_R:{Wfzsx; fUX:}|jxXGoѶ[mYi^X\=xT أ^6{C*kCBz:E)m[oѶ[mYi^X-*cxm *:?ÄrL3ꔌU슐skriL#pO0Gq}rHoIMϲ灚A5R c/%hWf.0*^x˻wu&Q-+-E>-P=qkK )x {Ҵ> O	-h#viJ~Xh_>|[x$Eb3Zy-}eӏ/[D:8,
\QóCQ=<x: br=jb&ԓ[D:8,
\Qóx: 37 nRqƓ[D:8,
\Qó,|Nx! oѶ[mYi^X,
~x! D:8,
\Qóyx?2'6t3!.FjX3,ҳcy̥,LJQȿ)ݩVVW,=l@8ueJ?64Re¹st40000 hiviewdfx FdS	:vSsQ7>Xf.D! fn6{40000 multimodalinput x9QAXzHcJǘ,,7@Rv9y RSi~k40000 security cC7R=;Tihz|J3epoum:ڌ~x Ҵ> O	-6.x: TiYdғh_>|[x$Eb3vx˻wf7lv5+GQqM2]y3+3 Cj
qx Xc@yxnYD)}SM	6|r64'{+640000 graphic br=jb&ԓ[\GjԔJNb7*AC8_R:{WfQH}'xl R:(z{h_>|[x$Eb3*kCBz:E)m[>!^7{5[N35"x˻wf7lv5+GQqM2]y3+3 Cj+Px˻ 3KRS\LDC]MۢfvG'@8&edTzg0o?ovx=vFŷbz"]lE흮q:$ºY";26(Ri6#Aj}Sw{|LF">^:|6vϞ˳qk&[\ͻ=dی39b^@ܑTZp㝎I5C.9?77?/'3(kؚ/OAf{'w3K(+HHgG'`/,~Nwo=볅a	i0sSJ:z'
hzH՜9I9Mԫνsڟ<*(J,LfX{Cl?T3<%e)i/nnI2?X{Y+W~q&3$7$#?S{o~]+	ޔ*4$375%3!,kvCݯZ.5V#+OIt`$oerʹޟ3޻Ʉmh``fb_XZRկ"mD`r8kÆ oe+^~7o6ĺ"`bHv60ciջ3VOd^q~w߯4AFYMsWM& (Cx˻wu&B_\ZikK 0x˻wu&xK	5ξ=~$L^x˻wu&u<hU4ncskK M.x: <9ӢG*ybXKAFP=,P+!WfMx˻wC=ʺ8
Y<X4캱y2 QxS r$*Ŷ> X:[uƘqyׅjc8%{[T,>&18p /#rx: r$*Ŷ> X:%{[T,>&18p /Nl;x˻wC7H=;5CO;'g 
hxS .VC\?+K몣[FzCf{v&%{[T,>&18p /!bx˻wC=ȲjT
Reeշ5nd-& -x! E6.+A1I/x˻wC=HT/V3ӃR)Ys,ZL VY-x2'6t3!.FPf'3!JQȿ)P%uTz`	2FdS	:vSsQ7>Xf.D! fn6{40000 multimodalinput x9QAXzHcJǘ,,7@Rv9y RSi~k40000 security cC7R=;Tihz|J3epoum:I|EVx˻wfR"iB>??zz͸;Yx! 72/F={GqcrsŢ4x; 72/F={GqcrsŢ6ѯiFkISγ,
Qx PӔW
ua0Z7Hd,'l(#!Obڗ)McA# oFhW	{œ2dR*f-˃2\[>,a:ݺ$"f40000 multimodalinput 20DdKhBFV,KxS ݩVVW,=l@6$HP=nOḼ2u t\)&kwϊ{)_qxT XT-a20:{-ƲTݩVVW,=l@6靠(◫*q7fT'}x: e`O2!f[سJQȿ)2eIx! ѯiFkISγ
%xx˻w;_3mNYatWXa3nF )-x˻wC7ȯƩBYJxÛku|69 ,x˻wu&z{E'M1aLYx; .sQ[b`hC씵ֽR 2,Y;Ix! Í2X`qi#4󙁴ѳ/xl `3#+Ώ,k{ݩVVW,=l@6<f&<:K*3cC7R=;Tih-)xS `3#+Ώ,k{qxIhPmEcC7R=;Tih\#%x˻wu&E=2~{}_G"UL
x! N!i\ޞo;!VU/:x! C씵ֽR 2,Y;0x˻wbOn)+{]~bu,Yؘ Z]x: FdS	:vSsQ7hkmơRzzUBHx 92'6t3!.FR4SFHA3Z\H7ЮaHݫj㓸oUń; V$(P[>,a:ݺ$"f40000 multimodalinput 20DdKhBFV,@Rv9y RSi~k!0WOx˻wH
˝79F0Wyߕu|f։ xl ӔW
ua0Z7Hd,'l(#!Obڗ)McA# oFhW	{ųE[G^ؿ@Bl&|~1{x9 cC7R=;Tihz%{[T,>&18p /Bx: ʶ9=?%҆[C:"˷jcC7R=;Tih
Hx: }4hYlT;⫴jcC7R=;TihCTx9 pS`$XdUOT^*cC7R=;Tihcx: Í2X`qi#4󙁴ѳFcC7R=;Tihex9 "mƒwn{+iWh<cC7R=;Tih'6-x9 .*vcC7R=;Tih#x! Pf'3!0z!0x˻wfJcgQ|+'Ŷѭ ·J[x9 靠(◫*q7fT@Rv9y RSi~k9rx  @Rv9y RSi~k.x~ jDGpZL| UǑoUń; V$(P[>Xf.D! fn6{40000 multimodalinput "|)sW0M,4:x! 靠(◫*q7fT"2jx; KMƓ=a8Ef3Xf.D! fn6{
4x: oUń; V$(P[Xf.D! fn6{6Ix! Vi}.SƋ/xxe Ykrrf:Ǿ/T9ͼ>,a:ݺ$"f40000 multimodalinput 20DdKhBFV,*kx! jDGpZL| UǑxX@F޽(TYЮphy?RXm&w2T]3q8$p١6d,'l(#!Obڗ)McA# oFhW	{œj1=~@XvhC WړP/ ]`F%Ӛs40000 hiviewdfx cI(KIM(T40000 inputmethod +p)tWb40000 multimedia rO#N» U D5})
AYG16#PBk57;W4>䣥Jt^L'^|=Zx˻w){pz&vHrf։ .x˻w;ÉVww(5
f;w3nF B@-x˻wu&Jrh}yE~aA&Ll2Zx! 8l?⛬>}	x! .*A١Qї~F\.89x! >?SC=]=웳9ix˻wu&^hv+ϻUq&鞾Lx^x! H7ЮaHݫj㳸F/x˻wu&^hv+ϻUq&鞾Lxx˻wHչ'U4V,\+[z:N6xm bp\k$Ô9ukbQ5#kgP{q9wY-FPSFdS	:vSsQa20DdKhBFV,sl02xT >Y{	PA"9'v(ʈ9c4LqGkWr~a20DdKhBFV,$W x˻w_Vdg 37[
\;cdA5 T-x! x3<%aYY=ѳ\x!   7Ѯ9_<*x! wJQȿ)2}xS Zy-}eӏ/[D:8,
\QóR/}Hm-ī):[&cx˻w;[ptzAL(x! FzCf{v&Ax: {{R&Zg~[`FEi<E/5	x; *:?ÄrL3ꔌU슐sk>!^7{5[mx 8c@yxnYD=[ H狼jxb/Ld,'l(#!Obڗ)McA# oFhW	{œoUń; V$(P[>,a:ݺ$"f40000 multimodalinput 20DdKhBFV,ǈQ^x˻wu&JQH~ dŽ@ykK 9x! ʢjnx;Jq3w11x  Qӭ#!րUh_x: %F9h\LWiV7jQӭ#!րUh*CHx˻w;W*WΏYqCw}f&݌ F-x  :P$:2k$[xT sb+Z'g2@Zr&jZ͠Bj:P$:2k$'=x! @Zr&jZ͠B*yk0x  _)yLH ϑM_P^x  A1qHOUN]x  :P$:2k$xe VkMNDaj>{[50f :@w40000 multimodalinput Ә)Vl_H,*ux˻w;46Iv*m3;1ya]f&݌ -"x! F-@m[ár0vKnwcxT VkMNDajm͒$Mj.΋2\TgbE<Z7%+tx˻ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "ԢbRAE%j'g"|r$Ds~^^jrI"{~'e/G_nŤe}&U4gĢҼT%eg]S~lwnUf2|<;KKd6	FĮ<"1c&]hl͜)Y!|h5fF^I39ysRIؒ_s]'Dԟu*R,+jO,g]p	↌̲
y/|kGG\DMf^AiInjIF~
qO{oo>s޴CT lkU''OtΫDV6o/e;Ξƣ6gAμxC3ĢԒbLeN*MڰB_g9򶌓YͿk[c&LҼv$b[qjri0a0X~ߪ藻Fٟ=W,$mm	Mm+и)aޒ̢"=o^{}TSJ@T&1[oYRݞ*ٺ @+jx˻wH?1Gu7|x-tt F7o(g7Vqpj;K@qP($ed2:Wg[5F=-_{U4ῇҭr[w寙85ދֻ]7ٹ7f,_fkfF5/o*黼ZYM'"bdhms4{uJ=vm]ck̄IԎdCQ\ZYR2qg3kniuMaܝɂl!V\Obv4mv"/-,J/H,j)j͹U%O& 	dxm `N>hvE
K?hv@ujwÆ}2(@/[ep/~ӑ*!XIf*"'*p|/h&-cax˻wC=HiVZIRr3zWd-& sx z4O?.TFf'`쓥2nVܠUV[8"ujwÆ}2(@/[Mqr,uJ R'l=9r}k5ēM;1x! Jo(9&'8&i?x˻w:y-د=bfJOw5s3 =x 2?	BC]*Jeۿw\s#GձF*MkśBο_BC89$uثC40000 distributedhardware bR9f/62RgJb~XJ"~B>k[>aQmَp]r L40000 multimodalinput Xhۂpo_E,Zу]7Ittq"x 2?	BC]*Jeۿw\s#GձF+hOκBC89$uثC40000 distributedhardware bR9f/62RgA_ y 7[>aQmَp]r L40000 multimodalinput Xhۂpo_E,Zу]7IttIq%xl Jf$:}1Y_g8[xL'FmC89$uثC6SdU5sϰOR#ECB!<=RؓP1~x; whڹ
4}eۆdhU@QiګgŇ?,Jxl +hOκJb~XJ"~B>k[aQmَp]r L;͟9QwU)wLՓ62Dx~ U\"ڪ&?LR	hLujwÆ}2(@/[>3Smr8ldKxdy}40000 multimodalinput ;iH2[,&4Lx {2?	BC]*Jeۿw\s#GձF*/2rZbR9f/62Rg7YHi5nlgZу]7Itt=_x! 9XXPzt:^ݳ7x˻wu&+F~&B7nL.5qkK ?qx: =!lPaV<}db%{Y-w#*6:Ix˻w[\&=8unLQ&k~3zEz7&@X_TWʰx^o"|~^U1L7:_.3d̒%Ԥk&f)Ĥ:ߏL^EJJpӽ'D8rWI&eBL7̿k[c&LҼv$Ң̒J;ӶߜYs{Okb$Mdzㄦinhy0DoIFfQJ|AbPJ&O,H4t<M =x˻wC=HiVZIRr3zWd-& s{x I2{,BſPF	)-ʕ<MKط{n=;+ғ;bR9f/62Rg	Q9=kc&aȓ[uS]~á`]d{,V_4OXb01mR@xS nVܠUV[8"k}0wn*@G϶q1]rH fp@c1*m$"x y	)-ʕ<MKط{n=;+ҳ;D	Q9=kc&aȓ[y(R944lWȑ72xcROdձa@u7x˻ 3KRS=tpN
rvHYj5Ǥ̜̒JC{+iB?SҚB9%g&e&VMeԶ읬5Oq́(uKM.X/e}&U4gĢҼT%eg]S~lwnUf2L5rw,U283O~d#m=yB܇3eddkLϺ8~޷вfs.ȄK8Lgp!κ8<,f>ݿaÿuo[/OyqCniȕ)pOKͭ옢,L"~wkϺ3vmh8mg5a4+/?}CAIսߑ ƿ-xt 2	jDk%;4TFMqr,uJ R'7Pıi	TN`40000 security l=9r}k5ē2x˻wHJdz3k?d[zpot+g ex˻wHg׍'b}$ cx 2h+{|ںFw5?x˻wȺ:;=;
MXdpEFr6 "8,x˻wȥ6Qe3f&ޓ1O*Fw[9 Wx˻wC՞=,ܟ^.ѭ 		+x b2KY^0IbFJЄeN뙐o"_ҮĖ_{׳6>Rkhod':@Il`1*J͖yznW_~o<z.qxMWx˻wu&4Zti>;.Uw3 ۀZxl C^/?tƝICKܳ[r׫%n6[@BuAOR#ECB!<=RؓzIf*"'*p|/h&aF04)x˻w_V>zeWkNmldA5 \Vx9 SdU5sϰOR#ECB!<=Rؓ3px2?	BC]*Jeۿw\s#GձF+hOκBC89$uثC40000 distributedhardware bR9f/62RgJb~XJ"~B>k[>aQmَp]r L40000 multimodalinput Xhۂpo_E,Zу]7IttzIf*"'*p|/h&}x˻wD&5zC]|"MU=aϛK$X fl.x  l=9r}k5ē9x˻w;5l2:=&\\f|y3nF ]gx  e
]+AuYÓyDx˻wC7J&O,H4t<M J\x: {AM\nVx%Gy&[ȥa1C$xS Lf(8ݔ2:@Il`1*J͖yzGy&[ȥa1C\%bx  t09_O	ސ2)L&xS n} Y2I9诞#pĊc	Ҍ`5l=9r}k5ē'rx  ў>%1@ g'Lړ!x  E2%]{SKa@x˻w;m*v}KWv!s!=#Lsx˻wC*HϬby[z{OfsJ6 f x  e
]+AuYÓyDux! XM̕TW$·7aI&x! *MkśBο_Wxl whڹ
4}eۆdA_ y 7[Z8\)[0s ][	Zу]7Itt8;.|xT Eo-MJht3'}ϔJb~XJ"~B>k[hU@QiګgŇ&6^xT Zw_╁_ob|ujwÆ}2(@/;iH2[,r&(cx˻wu&i=L=29d[<rL-x; :7Q;#4'޾v49]+*K	6hKz%HgùJoZx {2KY^0IbFPr"?oV=!lPaV<}dSdU5sϰOR#ECB!<=RؓB?kx˻wD('9<Ow
}yL@!(;4$37g3KVcXP@p-\Ui&#n7z&
p㚸53Gw
>Jٱ=iX+:_szh#eݧ7&X/=_oҩOUY_XTR0TVt'5{>ѿ6y> \D\;Lx˻w[\&=8unl Kyx9 2Fj75
r*&KFN}L3vkq)'Wx˻w;YuR/OԒnĞLox˻w[\&=8unLQ&k~3zEz7&@X_TWʰx^o"|~^U1L #q&ub]0vEUl~4Qd5g v__oUK<1y2KȇſG;t55saYL7̿k[c&LҼv$bWqjriQfI%Cĝioά5sw&Xq=}[qBӴEJ74nx$#(% }tL=9׫Fik	<M ,eax! C^/?tƝICKܳh0x  :@Il`1*J͖y%5.x˻wu&7#YW(f?Q77jkK [x! JЄeN뙐o$/x˻wC7_]n\tZ^ [xT C89$uثC6wKu8\nnW_~o<z.qp&ix! Qﺳ7J`*埛$>x! ӡraGH@Jk۳
_nx; `X#-3;hwmZOSkl$8x! OSkl$
hx T4O?.TFf'`쓥2$h{kxRHMqr,uJ R'l=9r}k5ēT:
]+AuY40000 third_party Gy&[ȥa1CG"xl 4O?.TFf'`쓥2*M	'.eCA˽fӳpĊc	Ҍ`5l=9r}k5ēC1ex! Z?{g[#Sğ+x! ڋXs^鵸zE8)[x; Z?{g[#SğEikGV[Zub%x: lkLn02Z?{g[#Sğfnx2Fj75
r*&KFq4n} Y2I9诞40000 arkui 	)-ʕ<MKط{n=;+ҳ;D	Q9=kc&aȓ[M8U~<Ϫg)7t\)&kw40000 security Tfٙ|ۼEa:bT:
]+AuY40000 third_party ȑ72xcROdձax! Z?{g[#SğLx; {AM\nVx%
2R;BSv{5*U*x! {AM\nVx%dFx! Ӧ^L ?'vx! nVܠUV[8"*%98x˻w;&V+WO7)ܤ~{3nF fx; z=&;>ǞW+/681sk̂"0x˻ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "Ԣb꣩Ԝy)9yy%녘̷w}}oפs6QX_TW_vk܏|~ML6S~~'s'_ɯlDr̾-|EYk6ϙl͜)r羙:Kɘi=ysRIؒ_s]'D[쾭[0ב;6OP↌̲
y/|kGG\DMf^AiInjIF~
qO{oo>s޴CTyP&ՋReak=QįnYcƮgC>D~m˸\ʶ^fC"&Uq	%ش#HMg!&1hi`[^-q&.ʏ x]5}kK@7Yqfʢjnx;Jq3w<>wXadFlmbЅ;iIzh$]|62f7@Zr&jZ͠B[>k7Ԧ%##o\(40000 multimodalinput a -;)2;6&Tw,:P$:2k$z2
Nm$PV0rJA40000 web 9V	t"_rI$@k-\sIx! "_ҮĖ_{׳	x a2{,BſPFK0[%$*ePsRj2H"9J#>o8"%O|ӫ#-F,XX[I)oc,6ufW|+
=D+8P,νOm@x?x znVܠUV[8"ujwÆ}2(@/[k}0wn*@G϶q1:vVzGy&[ȥa1C8Ax˻wC7HNW+om_`=*y|69 nx˻W 3KRS=tpN
rvHYj5싉6"GSY}99#{'kSs6*0EoFF}IU+lbbbQv|Qi^Ifn*C|3)r?Qb;7J3L^ş[ϝ|'f͟0:ogT<g5sȭʟf-x.$c"RK&m`K^~u2ӛvQo{n_G|>sC322SS*es<a~2W׿Qq5y%%)>ݿaÿuo[/OyQ[oJf"Fԋ{v*zФ'XEְu?fp6፯κL-׶lJO*e68$"n [^M;ޤz|bayj	oO yRx  Tfٙ|ۼEa:bx  t\)&kw$^x  uRz3G(R]x  C/4-FLž䖢{:;x  9ch܁͔P;x  Tfٙ|ۼEa:bjxQ 2KY^0IbFk}0wn*@G϶q1Tfٙ|ۼEa:b](Jx! (䌳p
Kq)lx˻wȦ]EUq895EsVFr6 <x˻wHԌgxH#Fr6 Mhx˻w[\&=8unl K4x  Tfٙ|ۼEa:bcx9 ѽCLnxzw{mhTfٙ|ۼEa:b.Hx˻wC=j@KYٓ%ުxbd-& ۼU-x: s!b*(:-Ln^el+%Z(ƄP
}Mx˻wC=r¥>_|ib\q,ZL yhx &2\-r<m]=ݎFJ"FnVܠUV[8"<tTx]rcD	9뻼\]	;DujwÆ}2(@/[Mqr,uJ R'7Pıi	TN`40000 security l=9r}k5ēzGy&[ȥa1C(]}Qxl 2Fj75
r*&KFHWgBF+[+R,681sk̂ȑ72xcROdձa-MxR 2Fj75
r*&KF2ᬫa.OL ȑ72xcROdձaՔ$/x˻wu&""JK[mR~mfL^x˻W 3KRS=tpN
rvHYj5싉6"GSY}99#{'kSs6*0E<Qʎ7SY &&ed2/)=]"#e+s4A2Ը\ם'{ᔳlL6"6aٓW(}8#mQKOf[}-mf8ʊ;<;9;d{.4y9y2qO{oo>s޴Cܐ[reJf"ۜvM{Jp2_ǌ]Ά|8CY7b+x; H"9J#>ogPi-|Hvxm 0[%$*ePsRj2H"9J#>o8"%O|ӫ#-F,XX[d:Aڊtr-"x; 	)-ʕn։h-I5- lx; 	)-ʕ{CciU1 :xm nVܠUV[8"<tTx]rcD	9뻼\]	;ѽCLnxzw{mhn^el+%Z(ƄPd/6x! C-C)fx! W]Ͽ2G=2\xm 	)-ʕ<MKط{n=;+ҳ;+uՒa d8*	ȑ72xcROdձa5Xx! +BG<_^PYѳx˻w;^A.~+xys]*Lh6x: ujwÆ}2(@/[3Uiz^,!kx! 3Uiz^,!k/x! 7[BrI&!_x; n;v#B7a2mGNBԃofeYPMx; n;v#B7a7[BrI&^]xl 2{,BſPFJkKp_CHvQuS]~á`]d{,V_4OXb01 ,x: W]Ͽ2G=NC9/;A1ꊀ0)Q"[x; HWgBF+[+R,= wBͳq%x; HWgBF+[+R,sO]۱=8࿳|ox; HWgBF+[+R,Yvn^3İ>%'9x! sݺxLlmi-oix˻w;C;>dTYiWLY7x! seJL3Y[ kGx! jݎ3Ʃ^$_wx˻w;zͧ;m&b\;LqsXx˻wu&3׆;rvLgwPx! 7[BrI&!	 x a2{,BſPFK0[%$*ePsRj2H"9J#>o8"%O|ӫ#-F,XX[I)oc,6ufW|+sqC/8#*ıPfA-x˻wC7Սv,;Oix5zݹ Zx˻wC7ÆuJg
?=Ov|69 x˻wC7HϛgeSDĬ l4x: 'WSsP`&#;Pƥ[S%wBN%y}x: 'އmvp~N^$0\6;P2Hys֙$wa!Fx: '$:pncd|N@;Pϓ+@5e[,ke tx7!40000 .gitee @CbRCFXcr:1!<{e:|ʶ?B;)qF4_vۘݬrGx40000 arkui (.֫JUSۜ Dس<<VQk ^ ;ilI~	¦61ѩx~ɛgۓ?/DvN,铓69򽿰{'l40000 multimedia l*y_eV!kO>NAN{|G3ETñ³W4{,V_4OXb01y5Fx>]5}kK@7Yq 7/<(xz32 JdmYCQTC<C(\U͋og6
;i#,u*P7;[bcՖOQ'X89mً-p͹ႇi!40000 hiviewdfx nkc
?$JZ^X7 GFR>M2n|adAe[ 0z2
.b߅R"f3_40000 web O{Ր2c. ɐ}Mx˻w;?OษxڦDD)La	{x˻w;xG{K=NLn)x˻w;fY1_[8e_m3nF ?Wx! %\s}x옚q`x! A*U#>'Ljx! zK#26ҨSwRg;oxE 3 100644 sing A X<t`Փ3XNC9/;A1ꊀ0)QO^Cx˻wC7Hİ^y&
N& Dpx: uS]~á`]d{,V_4OXb01xYKo8WKkdlasj~ݢ'h(-jI*Q۱#M"4 [hAG+ɲ7[|%YR]z9t>MS*A)I[>Rһ7&Yj2)VYA.4b`85C"g$L>u[:jl;PmZ#`OȬͫP``IΩR %t2R9Y@2Id9(1K"I2%zgfD|; FrhQQ$p2Ohap  3@qbZH4i`DN	3Q
K<+IF!TT.2*,05i8[0M}/Qh$IjIQ0˔	[=dtwRܳ*.33݁	k*g$y(Ti6b5Vc9|Oc4N20^[|.M8Y	:nSru7~x&Ui:H$%K;ۢ_l*\ܧbnT5FR	) Z)M$qW^-hʈgS{QQn0}dfgl`ÏAO0'77&&ŷ3}:S	/(Ƚynj2+%i·S6{ tF<s.̃<mpJ=%3~,ǈE!R(27ذիDDT8X5¤2::$.s	QLI%:躈Zo>=d9|xsϖT'qpϱa$ BqĂH;x	`Pm7nΎ켖;EVOa?ģ q4t(ZӤSeQNHFQ>#vׯSu$#/9/:LYUhCd4g([:>NBd+IQK}T+0IBzbGa}j5U=+]'L",fzetgǁ0h[	I̕DX<&\1v3mרCs4kibCDIRJz[V"CwC28c4߱qJL =chaj9x;u'`sɪ~vpVgIz`s@BwܵjoXXOZ^$ԧ`իvMaϷ[쀻RMWv*]ǳKwԖҭJU?n'hrw7.ċ+(sU?'ۚeWif}-/oEU'||T}vzm::~bxjwl
OD&3 Awxjwl
OD&3ʇ  A6yxjwnfsևLj
Dƌuyl7(eN,wrͺ<,`J`FH$Q¼yf bx8qBw=wӪëXѽC >D#xR jJiE%y%E)ɩ)JV
J&J:HJsSA.>%.9EřyyiJ:T(3=3/1-3'$KM==R+jnpj	XǂtjMwIMe/W, 𮓄Kx̜*r=ǽ?|?QWL sx̜*r؄	Yg] 0xkeje )tlk7^6q7 "-xkeje&)Y^rW4<< \c-xkeje0Ev^7#OU4e8\p|X *xkejepXDvEYiIw
~8zvlu= *xkejeQ1XB^< q[x3 ;+\ΩO45	'R%eKx3 ;u#NLKj<O4}\*Je=o`aNEa x3 ;W6/XGb=Ѕ5$O4僧J*`wU(|_-aSx8q(ۢox꫹4D s x8q,%{S.]sȂm1D J-x3 ;NT;{o5bߞWlO4Uy4Q5/uP|d\qx3 ;-&gO4Uy4Q5/uP|s.x8qB$snNk7M`yU (x ;)k;ZfOHRzx8qH.\'ںLbc;5g *
\x MMkiW<-K+"-x MM	TMr`GO+"-x3 ;:e%ֲ3lݍO4.yiL0Ǭh."=umxk`j`+bM%M$SB*'. _gkxtq I*gx3 ;g[	ZuBZQ^O4Gi7CZZ>3i!+x8qB--W68wR ܳx]mo8%5N{ᰮ&q`;AK͋,()o~3CRobIvKp8p8w;b \+9_y^OJHv*n#AcC	%+uC?N}*^wN6xanxX	[5% "2b3	&>;",COrXxA2OH09DfؖgߎWUӝ@͏=8:>.Gg? c׾')D*tx9|
z|\	JX6YJWF$.	7 qX6Q\pؽFl0di\·{ҿ<m3PQBF#!
LT
GΤ	6naP,j)#To,DǓKm:oZ?s׍
}.(}T?O3v[
o*=-Z^ѓ()̇oshs$:=-XL4΢QW8/LKbu)uQ`耲4]E D"FYxP >; N}jmj8b3ؔ+sM9	9yTqeL0&cՉFo䴎:ŲVAB^wf:#A.hhC3PO>'"\(]3l88D^/q.\^$΂~p{^gtU1]_Nu?',=LX.{-́1X	{{~˳"Ok$@ǫ 822LFszKsbx0 v˽Juj{5@+E`4.HncTcV+צgW|~%.raG,ش-S@?c eFАvs9QY;Ĉ=%%1Kg/wgp8gѸ;>t\;=#ӪZ]~.
tK
P4u᭫]%`㏯'1n=O 3#e5ZDX6pNl[fGnLt	c9`IE"@BQ-M}\2US8Z;6.S|Wס`c`L]"W!TW|Tk'bjytrv/ORBkxgPmVJ;-sfa~׮d4\Y B=2x͜e1\T@M~'n5V'p#ڛ=LAWʆǞy/x_^dl;⿂*}qSڥ*rZmI}mCh{r*G[̔;7,O{deJ1R2),]cbtM^Cm7R7NG Wm雜=Liw,C-7RfӘ߈L81|o~/y%SǤ@	nYp#G	`4pa!D3?YNB	ܟϓIv"[3i~x^]
nQ7|(
,3^q%1 Gt}}Id#O5Wa̜reg꼤?}ӊ~6
Z.f}!<ɫ>ɷjS:Κ-A%M$XNs5>=ws ?-9T@I/?wrv+mM8nFz0
VWf8)?
9qɯ"=9avXkCR[<AG?T/鲠egxdP}+°1WeaF\iڼ\=m
7}۶-P~j&Yꪛ,~ygk`oXR»a:ӱ>mCkVxh{" \R5`+V8 kpuEϕT[*нDVFowqUP@KS65S:WJe97@B'6pDi3cX)WbM}`N}dd}g~i]jjcIe|E$>H\°O¶-T)RT	'$C63FlJ
nr\djnС$7@w'g=Ǔ`8>;m.GI*sSiAt=cqGx&ƶ-`VQYěwn(<Ge)[q$ߊ5H\WIMdcB5Y7]nedr+X)J-}
$8W``cdM	pEPVҜ
/@n0\4k y7 rg6ȡ1F,H?#*}U|>ƺ3Jy8<N DΨ<e!tiFJ+(<upg^]d`/k;Rd*ﰷ(="{!,T?N%>bjm#=ѬfRxnC෹212WEb$헓vAx.j(I9ofOt[-bokciY\	<DIHcV<ȏKy.̜LA6\"!sPTB(O=< e`[E	6ޕ:74}zN9ɶBO&%ޡ<R_>m]-&)Neq>1ܻQoxvv9uóB.@Sg#]-XC0k_D\Kj`MՄ ~,(*/6~}ztᎬS)h[\ҽI٪)7(ap
G!om"?CIIja,ޕݗ[܌tԩȟr>Ŋo<IR>jmYi#]#kU֬I5"7ߞΤc|`Ђ"Tj̶ZvKqyo>mgrO_Ĳ1ED,{pfb ض6-,>[KgQ{?=_ܓrUd6]*i&՞'/6wdV!:7[\H<CN"<"a9ft*S	(E2,<D:\VX)B%)֭L'l5,-*<PI`@Y\/
ZD7GPE.|ž\w=M6kFz$$#F,e58f<yԟ1uiI;xqK_Bz%%4F$B?1<s'6qѸ/ӄ`qQXQqZӼSc[8} O̖'WƟa↎!%bZNcnˇ֩+f6IP	TCx<d:YolJFzVW0JL7Qԟ;'9ZRӅV_RAb-lmT%>	˥ >f#w5q6@Z?Z]}$>d(&}pPE
!=S/BsbZ)Z"SQEt }Lꚋ-}V8ehTiՌ#	>&D?Dk[?jrmsX`f*';<zb$a+BZ;T1Ee,cLɨW	HkM<e;q$^w`x_Ejv:Gl684m	YǓZp$>s,jE+;z-euQ
s_%Xt.ǌ<8JNL1KqrgUP[^yy:6C{lTބxnU47DzJצ*/nՆ`Vb^?WrvBҦCOay((Hp7"zxZkPWp**{5>y_ׁmΗxPq* haԘCa6jbZQMh{H,tz;D˪J Ӓ$F`n=~xest3TuvXBk>)@?/l(ou~t(^
&	,;Obٴ5Y @
P6JJ]եgnIșծi,<[tm.M݅5vVhSOY!;*:r?ٮ&iLEBj<E0P)e,NS]ܳx̃:k;,p6^ʾuW6I<iGoٽmEpnf'tof#
g(:_k''
?Ionbw 	I4xN Ker EwIFU[*[Qe	b`ppH<1u"x{L11N.bò 
x]{oǵ_bjc2%mQD
$eǸ Vˡrww)Ya\ݛnMlq@&٪*4(nQI<wgvgȥ,[Mc,83svwl"32 W=kq) `jr%pc@Le˄@v,.=r6@i@Kچ>ؕqpz:`*;	N'إXu;e@ǇMˆ ^5a; Lն-AݯX釵Bȸp7P6#@Eqio)?XYY-Nش?1SJD44cyU`QHzX 
,gqn3X1<iX~Y@'q.@R3p"W	p.W-Vq#TrZP
ȗKZ\B^epXI="҄tJ$4]J߆մLĚ1!Xt @z-ǣ#jY_dpݥ4ܕhHj>iE RZ	@ngțHH9b0qDKmEj!]VII\
|#6:>X0<uс/:ƲH؋.mk3U$Z:%.)wBd{W䗿FTW mKT,UH$<K5,g#h4ws;m@U^;VIvdR9Qeݞhx|~	|~~$ʰ(YM\^7vQcڝ?2x$}(\%|iXͱ	tmu	9r'dت#ђ+:v`܆a[NLK8VjNOCPvo};}^u7-b-6&ņUѷ'^pdϕE#X%6ܳRB^Tʕ|yPrB=wTf"wfSfN$*x((	WV
k*rբJHEc=RZz8g	«'0(^k|T򎥭w>t"~r^+WjiU/ڍ
=7KrV]Yx$-cd=U
Q%9+P;ūp3]:)
5 [>xˈ普VG!dCcûsW	R<FBUyA@ZIbbM}̙ԙ3?f
Nx5DHRvTT>rpIl9\J._~GY*B	-cn_?Fƶ2uY0!f#m6[oܽ>aYj(ƬZ6@zA߬"x#b+inrCЇ15EZM).f\%7HEu{&;rxkVmL~){W4)a1_]rW܇m8kjV-INcύfԮ<G3yftӤj)nsBsNw"\?}s!Y*J=n.c܏}G8:wCc@~~0zsup]{z8zEA DN棊4+WlGTR;,nG[`U!Sa^NCn dὌn]*%%גyQO~ٛfoâU$QG*mo>=pw~Mf'Ӽ3+~Q|UEj{7aYaMmNB+,Iv@Pï$kQD0 ˿ ajz:eGg'SJUC%[fêϺ]hѯBRGC~Н0K~g*ŋe86YˆZD{+XRŅ8RU}BeX%Zso=a!mmpY\p6CVaXǱFwOK<b"jdv3A)#q;$5H|cU9+	GF]b34WC`seifɮ_ٶ+`Qk]9yWj''7О5ک8D
DhaiCd61(fdTveKޞL8Lnai8h%:$	NyhhX~6VSލ>]]Q2cEX~bb0' j&j>>aX>CDF!"2Y^]ζ/)[ﾄehRǁԦ$buR~ZHA7Bas즅Wf?ZQӍ"K6Z64|Fx){;i;=y$[7T'Llw3.oV7`1ź<yϛ+ϣh%On`]LO9%Ʌf|q_:&>e|yM&&Erp-lj_(sZXږ쳅ʞd]ao'	-Bu$q`F5eXZ03;k81_ӊw{':~A`hzwG@ݏ6|ejO`4EH7XʿϸoR_49RWkz5_)J|n6_)ӽXb`eX3~扞$8.4.ŬS
A.+8$qPaIY[ǄS!%=w !GljC~b	]9&3l+Y
^"v%xj]K3D2	1{7XyöS4:-×QFW
z_.M"_Hhfޛ0NzRqZ;bHko:Hd"AĩYۚocwJ4+^Fs<E9~W	URmŬU;I*Զ/ԏԳNT3a'3B:c&|#]zG}X;l/rGL|?Zڀ왆c)y!nD/2S_WlE#E$H+|{ŵmw>ɰXȭ4)1w]:TyƬ>iGf?r%.$o޳͌k^
+S)РOAR=W'v*2P4ZHoޱyX=<zjYpjLǗ%`3V^A{RcE._>C4jb/W*|-u|?J[`K<2W<˻w>Ob t-\Okf8$`-wE$tc)q{1/xsR7|G8?F#7jq!0xؖLXg<#+iP,4Xl#9i{4>ג75>>=_ԂSLB8nIJӀ/Y;KdF#:Z8c|9SR9xK*߻Ѿh/R ك7vK$3~{6Ņ~AE-ė~BZ]E'ߎ_X?JwhZ{:6bzrgRwՏ)cmp<BGۚdi8Jj4y}݁\[̛(y{[E6p\8ʹ-}!Sw,"ȕ;7.]R4[*JFixSrj|aMnByjvz{6,L.D}7><q a=qJ4ƪ4e
}#xxLcLWOT*	g[]8zS,GhwGz"IeJkbAr#,	J,){L|I
`j""]bEaNnh*MbN%nVС5~Wy赭.jUB\2Eiv+t_!wj<5qJQ:,;pZDXY}xXx{u=ާILpO8I4O$d՘n@(oy; 'ԙQMD_Aϊ&B>KMrUhvJdHp0yrc[Y3}=&Xp0/v̹oĞؖG-Tq.Sw425p^]T89<0i(:wzQmb#{d,Fbd,%cme>mse%	#o l?Hn[X]*yVKJ=i5ٶ;>?6v:9>iy_NT{UxZ}pSUc*Z*Ђn6
HEWe!`mZǝ7_;%J4/iZ$$}*V*RVj{ϻy䣩4E{=缌<@@hANp[h1s
ƍڬp`;N$޹iY	)IQǨ.<jjosmVZw:09:`~yī9=$ֈ6UKj$"\BZ&vJ^>vD`TTM430<=I|Scf8/]#@(pQ<*)RLL`u7EīVa"5k&f0$>&,0d2sQ`qÔ&%v5-",3dhQ؎Hkq?W [{{=rۦ>CMgnM[w|og\3gg|f⟥JΨo^t1/t:?*fTG[Ѧq!wk$Q]jHE1C^xꮥ
8gMߒb8c(
[vm.C"FG.%9Ya``ğ3=.Y^˙b q~Kи3RGH'BohyQO"iRoLu%6dCnN]#3$[D0(xcDܛqOѲ,svUk3 I2HU_]cJjmG[$!J/ pGl &uA!,\ʇ1ȊO$"ʒ797[p"եw(IJuM{ۉ4ͪI@͜_#{N.(7GEVlT2
֊
cyJ'T兟hΨ:܅ri\2XҹbG_jZ0@%5YE'h\b!N̴y	b0$kA$9ڼ95$f$Aa4g"=Ό`z][<zɓgyvMAѝ	57^ UvOeU﨩ɤQ$H:U9[2(K˜l?LhZ豾S;21`^{
ժm6t3 	G]-!<Db#+,R\ʳ; hH8:SVlTs^/U䬝m%Q:͓X|v{P,jQj{?YE:B߂_OQk@9>+8p*̓b kWUPH?|<d3:LD[jVRru7br;{bng.Cw~0_ox%WO_j%/zWa9bH]m=n
68FU}*%F]*˄6;|;A̹<fRaNmz]	dtĹHY]b#oI]C2ѢS' T!"˫>[Uפ-/U{e|D.yIZ_y-ھ7(Fc5pAN{a)CzF8䖂%u*ݪϫ_Sk(VWH?wL.	YY8hhXXELpz`m4y'ɕ`[#M3Dfω@ gŔxppB}nǗ*f^$ѢC99{=A׫
58\twy+bjHM:_m~J'u˳SǩO⊥q(2MЂu|2g @vEOuJ]Bxy5G/c!%؎e+J,͂?-.	oӵ.VYmNRQŀxAK"%l1{mtE4n^%q?J(/t}}lޫ]=S^7Ϣ#9|}.Wrq黊	}{Q}39tc"[xZU{HM\*VmuP@d{Vzǔ$"
͖vS`@̡LXCf_3i﹝Hp]
J'`>I<_	pSƞ=uE噍{A@oZEkhsQ硪lڐ4ByJFlQ5R˳#eO
 N	ne3"v˸8:>1YρT	֎t44J;43n{86&UPФ&Ob!q#[vB$ܻ/dAtp^c{tM(V[>IxjtViM%Mܙ"El$VǠ .\Ps@/EPe]F@@W[I*E3!/94DWтOWl$I_V?Sb#C'B+I4_g'w}HYk1)=^%CqVZK3poo"Q3E(+)E7{wacC2O&[:C/8v/M+<_XKyBӍ.KeA~5ݸ6dk!$u|=7=*Q0qP2=)\	2q*LmudH@^Ϸ:84=;ɷhaA<=]:S[G<G3h-hh:a/UG
LwQ`z@97_oVRzp݅7)ݗjGgqt^/B~#=-k#VG:soD\x7fKdy__#H8uUDA\w)~;/W(dӘ60Ts\HBa{8ƭsD}Pxvt|s $W9HZ@`_ľ%nld;B#}֭B%	.Ot&ų߽>uB}A0CMWmkUShԱz
%RyA5x/jikydVZ="&T CW0-x{nFFL03NNd*۬r, 5	xeeP)r{C,I5r7 +HxeeP)r^&jΟ6K6` ExeeP)}L+拽"q0+GJ r#xeeP)#\f҆oR  
Jxi ;>O"DV}rN:BOH9	-;nӱ,J:zVP\XŰ#wԓ\ݲ>TX#A'Dv3/$Dx9 HveV}ۈ*m͓\ݲ>TX#A'DvxQ 9	-;nӱ,J:zVP\XŰ#wԓ\ݲ>TX#A'Dv$pxQ ]`McX!ii}{c5;\p7\(]rs=%[x4 BυKGŹN8p䑱IvIf?3}p6KxQ Ξcbg BM	#ғDi7\p7\(]rs=&+xf l{cH^bmIq6RXxcVI!Dp{m0eK]@)6|m\+IvIf?3}G.nux Llk7ŸKA}&%I~=֖0YG5 #%QkO3P/g={.F}Qչ8V\"tngSE&CP1i?⤊'InZoc"{t +TNAxi l{cH^bmIq6RXPj;vYJմ<u8.z.j8i
$&1σ32r2|_x>}垊r;^o&{F |xQ ;>O"DV}rN:BOH9	-;nӱrK1J-GB#\?x"+`x>}$Y+/[~3%"	cPx>}tLvx֝HĩMHdL X|x! HZz/r3cu\?W,x Ll{cH^bmIq6RXp+k	^s20V	#%QkO3P/g={._& ^k:7Èx8Γ\RdYE1b` ѝUrP#mU[Q'ˣ)rCoc"{t +PxN kL4(0ؤŁ7t$8rx
\+F舧hIOFGr&,e$ixN kL4(0ؤz/Uuj6I#aMv\+F舧hIOFGr&,eO#/:x>}긚#ۮJbXW9ɞ ڬbhx>}t?vٰݮgݣlI׻6(%d'e&e0~b?̼Uvsu)F=t&n͹BG(鄙+^Lfer=)p@y;o3p&O\W}a쬞mm楤mݒeEV7>~d 伤wĪe<ۗ/6Jdn	 Óhx>}H~߮o,էp)oag 
Ax| <n{;)d椊񞲱pHEp1\G?E5h<.ö100644 native_render.h atDC8VїK:ـ=:Lx>}?H49SNf&{F <Tzx8 <n{;)d椊񞲱#G~:pJ?Z"|0!o.x4 ]`Mc^&h~@*	Z(&ViDqxQ 8c}Z9m'B,J:zVP\XŰ#wԓ\ݲ>TX#A'Dv'`xN i qK@d+>4B&z7.YSTv\+^&h~@*	Z(&VS!\x! HA+U2
0n(³\?GuxO ` XrU-MWғ.}W@&HVIm3T1\U>fѶCG%rSx ,!dO3Tvٱx>}H~߮o,էp)oag 
Lx[øqBHbSun's`<!$VCpb yx V8Ooł}yIjB%(x V2/
'td"|'7VjB^x[øquwT{{ژB~ɟj) }*x[øqBHbSun's`<!$VCpb 	^x lǆu+?i"IW*_Ft7-zU[/eyS&^`-u,h?rv ;fo40000 player_framework ^U *UWr{$UR2 Cx{yHeQɮ%=;^*3Y& 	1x lǆu+?i"IW*_D<*8mOyeyS&^`-u,h?rv ;fo40000 player_framework ^U *UWr{$UR2@Ux  +ݺ@B:2w	(x d8$AyəǘwR*Vx8 d8$AyəǘwR*JUÙd6V2.x7 D<*8mOy2Q`De^ou3'/icx7 9[꬗<AOn[vM<D<*8mOyRx{y)?ҖvxrэZG	-x I7aH1w/140000 av_codec  d5%DR[p4!%M<˳7vf*emӌݣּ-XiJۓh?2`W2濁uC^40000 player_framework 
FOF2?׶.02YRrx7 0^d#f=;C(Ӈő*_4PS]o]F#Ruw8x  {_<̈)<D2Vgx{yB+Z3lͽr F Tx7 ơ#QXkI"TŐ2Q`De^ou3'/iXx{yF[)0bN?6損Gx ѳL/靑)R> l{Rhj x{yyjsE?^
ӊ SR%|:Omcx[VLqD_&dcgr{vDys!H# x{ydQ穳m{oˊ)軈 x  {_<̈)<D2Vx{yYN8#; z{adF 2":x{y36ma8HJP˝ZGܾ5fx J!ζNQU='*Mx{yJF=閁OE}*&{ zx{yJFlVg=6Kay5y/ ex{yQ__{-¯FE $-x7 +Gio$xS'p*_U35t5+=B0~;R~IKx{yg̗k$U*~>V'`QF ،wx{yJFָP&^/^ܪ9h^F# 2$x  pq4Wuɓ2 =ZSx  EJZj/%sΓ2;tx  FP	EI+mki21x{yȅ5	:zyw[F K]x{yH5۶_h*R=/o׿ZGrk	x{yKmFCNl!=%vo] }x{yg̗k$U*~>V'`QF ،2x{y-oŮ2zdC\+I^t"F R^x Z;XaaQCڱ*hx{yHWS[sLX͗Q(# .2x{ySWNwF u^x Ft7-zU[/R
:x{yw}EVjrIa:QKZG68x  ~2`W2濁uC^]/x{yBHimIlq;,Xg-qn# 2Zx  
FOF2?׶.02rx{yHXA-]:_Lt"F ^.sxO _ #f731A2ȗsm{'zh[s+gh"ӑhYB;QG~*&
SxyID7|YN#HBrbnjQ^^J^Vq~Â_\<sM,g4d+(OI-LN`ڹ~푱6qTk9Rx	W+-dy	:Y: ,Hqxb 4?"n*osp쩥s100644 camera.ndk.json >+]JLt蒈sm-[eJ`UU?+"x 7/ɢZ˧ΊF3+,Px7 _M[G4&<oHŔcsm7/ɢZ˧ΊF3+,mgxy/lօK'>=/M}"u Cx7 teyc6>"Iv8po@MK^&;Vb [M!jZxg 4<.*V? nHBjd
+P@JPb٢youϑE\%uB3w>!C40vxO 4X
_GM=%HBteyc6>"Iv8poįkf"A:ܧ!ט$[\x m
sE]0>ܫ.ѧx[ϸqBZSO2(e^db 8x[ϸqBtod׬̴H8U|kb RAex[ϸqBӣck"LkrcrtF= 6x[ϸqB%Gfh9]\ővF= +x mAK/6ϝ޾.<^x D'8}cAFgdT;L&=ϑXWx[ϸqȂ_b̔<}ᣰ2GĈp 6x[ϸqŶ#ܙZ*'޹,Ĉp ax[ϸqȃ{'7f߹8}KEM +x[ϸqȔIڊ3Ny+Zg,[z y	7x[ϸqBHeYk\{|c[ʉz 6Wx DۯH_,ɑXWӖx[ϸqsF]_\޻7Ĉp P/x[ϸqiV;.+>.g^#vx3 aޜUۉ+C;o0':zuSJI<*Y2FiMP(@Q6P:x4iHǌN'z&,6'NvD gx[ 9<1Enw!>4_40000 audio_manager ܾ1"ښجZu,'Ko1{xd R'x[ 9<ЊRYxvW>ďAN40000 audio_manager ZliDomo	u,'Ko1{xd RJ4(]x4iBj_.w[tL,] x[ 9<Sļ7}QU}v40000 audio_manager j0i!_uSJI<*Y2FiMP(@Qa&Jkx4iHaRJg_B[{ԓxx4i{{US\&VCg rx̜*XtyM`L]^֓~y /0x̜*r؄	Yg] Xx̜*;2dW\56Yo_? `$x8qBw?5qS{E? ~![x8qB}w[mat;=_Ck x8qB[;>ٺxνe UZ*x8qBw=Cċ]Sm uQx8qB	7Z;U1܏HɫUs 'x8qBȴ+o+98?D,T Nx8qB[ۂ|9nOc`qmo ]ux8qB#>}CgO{3n x8qB6͗`p eSx[øqBHHѮoK.֞ȗ,' Ix[øqBHbSun's`<!$VCpb vx[øqȴ7ZQ=awaM) =#x[øqȳ}+dEwAez) =Px[øqDhK5B?GLH _}x[øqBCԁgZo65g8sI닉YN -x VE?\u7-$ jBbx8qHεZi~Ѩ%k HGx ;:e%ֲ3lݍOH?{>x8qHy6Os|:QD xƸq"C%.6[%zN Pw$x V8Ooł}yIjB%xY]OYW4lfcZEWt=a:39C*Q**FX
cL˕a3SJ[h;h9xwy3%p@b4U:N<#1qPIFD߆zֽDF*x%(TSiI*|-EfN!U4ĠR rU":GTEUH<)Fq`\."9s0'ιS L&X,F7@.
12 I!(	G Hc=	IF9UcmТ<adjpF#&.D`^n U*(`8nA.{/K``+PG_gh0W(wu!<IE5{ÄT@j.$C'R	1i#%! eF	1w-N!`YZi^l՜kZgCIXJ"$H%F9u"QǝaQ;6&Llg)w6"(NmLO
'=t`~!_Ff)Id/*.S#eHXGI:0BS0ǌ(Q1
GQgEhP_wPGPO1X*9`G8	!IWLCkrCZUݏRݺ׬Y
wYka0MFk*YdƦ}ǋ//I0|@.Z0\0PЋTx48GR3tg7LuD2:ŲwF_/\~yn[Ph]V( 'C/o6v.f8</VzZ^ͯ<&'8gٔ8LJM:5oMSmDi2Qέ	j.zs;:&.
l '?=8Хz01h4hšXtk4*%*
ݵqQc5f:_6'={Ag2iM,,.0ү='H&y̥ yNb7]kPPj8Vj6*1 *ǊpODaޝּkg~me&e Qϣcv±3*H]I+ֽlja|~Ze3D:%}kM|eg:	GS~ԴV2bs;zM6rG*kj:f<ԩy>[bߣKtSfplNO¡¶-SDKc^ie7j cI\K;Mv<&$7I0h*@ǝ_hz{M<=؈MU9	"E]VE8C,-@O-_O51i-PN\v)L+k흵(do)NU}'PoE{~܆Nꌵ2nUؾo=^ȭRُLQ_7L7<HN+x6vF0׭^F7Gc:S*DKӋ'(*QY$5KA׋_Σ@ UUTEukOx8qBkwZ|-}# 1
x8qBȓMSiA5.G\y ŷ*x8qBHʲ*IsMfq8ڵ 1 Kwx! cIxMbɖۼMUK2x5 >RaTL(n{ql+Eu_CxN <݂_.V
zdSFM4P/J;AQDZԠhe6?srԝ΅翁Օjr%x6 fa	VRyWSzQ9wlG鳊!xh,!t+O4"IE0m'~r100755 drawing_color_space.h zbq^l5rdr5NGi9v[-	xӃk1uLJzxQ?D.d[-#$JOpuM>Q:y;-&b?8<:7ftvm !t&@c4pst\f. /AyUXpEFĳȂr"h$W6nYymإyx n̗ =Z!_UՔ..`x 9kk[4tD,-U<MV/x dѯ]IÂk4%Z5x+\/[x dx `h8q<x+nx d#n݉Wx|ɛCZیx+r.x ql'dn_a8-%~x 5##MlISvDx 54N9z[ISYFcx8qHεZi~Ѩ%k HG'x XN+C)(7pxKK$YyG>aBĤxn: xKK$m&Mi;P]c. K=xKK$=5őܴ6MyF+ _^ax8qB)}/T5/=/|ڣ x8qB	w|K*x}sƎ8 5x8qBT_f0ӔN# W*_x8qB}w[mat;=_Ck Tx8qBC5Py	o=d/nex; .{x8qBѧRΊpj,W{? "x8qBHo=kn/nҫf٦6 Jx8qB#E?~p}rJD= Iwx8qBf{)Kf-jg 
x8qBH~= 4O Px8qBHg-6{.P> w0x2 a},rxhQtSJI<*Y2FiMP(@Q8sx3 a΅z֙N&'+u= 5Y̾%[Idz7x4iʮM:(<1#	 /
b{x7 _juӨ*Sv1Vҷ՗s֡sbW~.rK|!4CxL x!H9VKnk~ I9ZbIxD!}Re/6Q
s%;7䕻3#%xy/Q͟6,-nAi"u P
x3 :Ə@뵘h)W92T!&TLxyFF	ܿeeEx pp0vgw
A.D,(tx ||h7Lp" =X-[ҔUx+-(`n1c;><PM 3
}x+-(bþ|5gZ8 
'x+-("'sI_=>Z  ~?	:x8qBH(WD,Y9#xIQ×2 'xcc&W7;b>4yeY* ΌѹxWQO9~ϯ/Ӊ\HJlZ)rbc^BToe*pi!737^=/p9|'[		ZrQ\(+(T"n8>ʙ|J04˩bX5(}H.rR<L+~ҋg995-ߵ۫*bpͼS>A.U&#.gk`9lP3m͍9	H'ռVnŌ 7YrVA70kLA;	u'I|^./sw<Fcp 8-1G"@)B'BlAHudse*9kaF0Ki&&KC⢍ڍF{g%sH?H`ӛ}-ar<$Ke2;?õ.ن+8FK'Jd=G(\ƈQ
nqm#{fŔhᇯCe1SCA3@`p,}<cX 
fk_͈uhK9K4V.,/dXafn!m`zB	(5smJ*r+nl:2"H/ÔD06n$m9=ew{Tǧ^PU(V-g9L։e>t눪tz)yN#a=PW2EN0ݸޏ/MOD*+txV$1LNDhX̴΢şۃR¨XJSgq(WhJD5/?90z	9sm	C0TyᰥZbLU`?GJͣ%Ps ?KIڤ2/;*ܽMV 3;b{M&CA?0<GFCS
\Wč2RWm `"|˹4}o;Ctq^{@tC8)xt?G|a9`HdZR,5
wB]TwP[p4iHy,]In|7G#)#cQ#j;uH}bY!+vWUN#`P$9l*?ϖFOU-nIb5;n5%%ri@:;ίrH:??R*eҋp۬wŽsMUv&B{Q%媔O:);TBejvד;-}oah=J6G|Qy3Kým]EI	y@BMS5gQ߭h_ɾ5[ԧAg՗UhSQz:jqUꎉ҂[΍9+xAk@֬%mqVD芶1Ml=TЦm 4uLLQ~(Ϣ'.6eߛ7}S3oH_z7I2	4,䄦!}Cb\
y)\jTXbiiL|ǵGϔ[It=FI!1cxli	s(A+ĄFs)ǰ#f8CR5*;;gjZK	#R1.n38)+:1&:gqZ}麣`!L*ldyhCvEki{`VP05I5Fj%+fS7>0	/f,\?
}l?87.]!$!-D/_S{do]}x!泭oD&u&Gt)*6W׶i-:w/A+xKnC"diVr񓷱ObV*.IIP<5{@ KZhxՔN@
 D
'ͲY+Fmcf'ʹ]	!"zg*&w9g9sfU?frBc6m[ml}]sb4R>{Ǹ)TpOX&O&+Y@С	 !IS쒑%DT0 de2'@YFDD坄 8/9yJYH`m]&_}XwvaT
ާx2kǋ7R.&M^QIDSd{xT D.p#w5izܨS"YQr&D="iR΀wy!{#l:{iyhwWC@ H'<%\}!*#y-ݶ#s#X_]"1UWE#'ogΥ:x9)<I&ڵ6w\|d"ITciq/L`u>/clG:eRQlf8KxQKqG$%?pg92a>:y7v_Ck9sC:va7PSM/>*E4FX~ :x[/_`C-C*\ZZ

Z\ yzr=x[/0K`CZɉL-2m t	]%x%N`5Cvfs~Q[fNwffG, P
5x%Kndfn⒔p t	%%x]QN1.@qhT A 	!(HE"H7{Xګ,U=o.UTy3ޅXyw~_0X]^A^*mB>^7HF;chPA|F}cو4M5u f&a1"KF߱Fv|NDפ=#XK焱qsÍv-/VQGdS??
B١ʭfx0b:e%IJʅDv̄ܐDUe苪ۆoW+n0P뽓Gnq'ZK#yV޻/%lz7/s`?y/],x%Lnip+$e(m< t)x[&7Clɢ9xU7`assv99x %0Nx;)qRtCSL܌ٙ%
En9ޙ%/0MNbʜR>}hV/قpFM dx;)Eta6Gs2N~3"Dor  _Cx;)@pCdN/$7p1xor  	x;)zStCCz&/.}--Z-}. {*Ryx"zBtUfT̜T̒ G6wxJ@Z,wGPRlDVM
44i)E|C.|g5Mg39;La6˶JtGB2a7~h6ZvIRWUT8Aq$|mvQ83	ɠu*sj.#؃6ŐUAo--ةUB>p=aܓq!J^k#>8$`єf+%5KP]*az֙n1rhv-bL\`jnnـԷ}캒hm^#PbF( $"gywj1KP/ڈXp?T<%Utv1PGve_:.?iP-6xнN0a1T 6&NߌI61R	±-ǩ;+7BՋ6ڪ,U
zG:l>b=owRWdQGiRJSqD+]x)	qM!AL
B	Pu0̲;n0Z@Rn3C=2I2ʲ$qC>cm=[#
+8Ëymqqp?
](GB uJxRn@UF^ Uc.ͦXUDeCU8$IDx,k&ՙqc$@(r Ě@Ǝڤ]g3ssb׽NMi?wگY	8Le`?Kƀ|R^H
wL
>D<V?҉ƥG#C "HbW6cNju
lS :Mϙnܝ	t2uC<o%#`,8~C X8nȅC;6Dyx槢i9NKdXbB|
%(AU.Iˢ+DJĸ3lygX4,Z3TV_E*wFJזK[٬Ho%OۓCpX~_"j[UYyە2пUVme
ulrex?Wx;|ys4m\Ȳ5UWI򵔍Zs-x KpNl$:^*5x;|ytOxgf-1vrF X.xK 1#CqjF:m?6a7{HeKERR5=T,#^B^@FqP Uit"h
xK 1jds@6_ER:6bnڔ#/ iHEҤ~A0|ugK%P8xxq)v;ow"l6]M.` W(xxqt9"v;ޑȜ탠 ~RRx6 1R@a/8qSnQFER>i/a3sdx6 1:!X/*ER>i/a3gAExxqtmVw֛QS}.}e %ox5 28JX˵Gi&PER+GىZ*)ht]3yP2Cx Ƿ٩^oׄv3L'Ҳ)xxqtFKTxq  Sx6 1 NsM}ܑERWM_2GV%*:3Caj;xK 1ݜy,DzI6ZER-[rx 6Y"xIpv	_Kf\׫s	5#%xK 1ݜy,DzI6ZER-[rx 6Y"xIpv	ɬ`ZCQr"$HoxK 1#}$	*gS!ERQN&&Af!hUɬ`ZCQr
$6Ix l=n{t3fax QN&&Af!hU3`x6 1z8@mXౄXQVERQN&&Af!hU3yxxqH-煻/<A7ƬI3c$xxqȣ-gSw_Y3ts+x iHEҤ~A0|ul)x (ƨO]sz;;39>JxxqLS^l,UTJ38+x3 cE>M[?Ƥ|mwFwSSmʴڈޑZNAxxq)fzW"F2 KhxK 1kLiCF4-/ER5LH_߂*p/<{?)q[ x iHEҤ~A0|ul*xxqBHLcY"ӯ	/W1< /+xxqȣ-gSw_Y3tsXx 1X cjM=SE*xK 18?rrr'ER<~[f"۷bXkvAcJu1Y3
#_xxqR˽/:..}|, 	xxq)-˴;.0!' 1xK cAL: w7
L*xIw N66HcA@ߚnWsփR VfH&Q3xxqLS^l,UTJ381x SmʴڈޑZ/xK cE>M[?Ƥ|mwFw ]w;^ȕ(a*QLK^q`hN9$]x uua=𲿐F7x+-(꼦D):Sޱ? zFx X ,t-=)a׸l+>vx8qBHQ97=^>̲l1  x8qBߓ=[_Ͱ׾`x8qB97S>SJ:*5ҎSэ	 DFxJ a@9t/ljHewܼb100644 oh_window_comm.h #ӮH9sm_j5"IH?_B[xk`j`+rSA'E$U*IO\ xk`j``%Ҭs|]g& O+xk`j`(b׻=vK?>.qOaibi7 ǹ"x; x&aCiJ5db&pm	/s*mqHenxo x+񤐽+{va}=O	ܫ`F-*s]l68 G.h (-$@KiYaeJ4xZmSYί_ ̮;_!bjk>:Mevw@bv"dv$45Y!HBPʩfwvGJ):VV	7}=9s}I҄Z/cDGq|,ă+S+<&MDAHcd2nӊĂa:Asbfx	DL|"F%r, _EUbΐA[n_hk21X/8j&u,8\(")
$X0bq3x1>>C+_+y4xXQXWHKG.7 1lv 5;lVprw]4>ՁziO琹+G[Og+-2 &1Uρq/O!AfF>~
baAQ `%FU55hLфt	!oX>XE}E=D͝7p)1e:4'9|(xF'isk/2&gbGc]# ?&acX䊋XiT4h;p:l=%ЮeT[x|JBACh(Q ~Ĉ
1Zz-$|Yҩh"ɯ i%X;Ny8<tt\Â8	9^py6闆X.  ; !j4+MGHZT8ʏ׉QAaZR!]|/l".+3N^j 4K!_շ3?aYہdpriA{XL zUv&}LR9"Q o)ۓoRo/jVI.,L#Cbɥ|:*>=ݭF/^<k'l7_Y%`VKfV?g+pz<o>x*8}.SDr+4=ߐƷbYҷwd{<ZmS U塺1|6K:)U;1)INʋQ^]"S>7/UOs;˱.X)lf%ܖ4u>V#tZd\lÅg27^I
乷kw
9u~]=NBfJ# *m9 frɞ'UY @d9pxJ%!q36`})M*RK%jEE(6|O꫻л'T>u6jYGZ"ꓻqXs?ZT'D<@ıdyguU ̇U+3r2*7*aU TV*3X禗2HfT@X쎲r$t2*$Naa`Vaڿ\[CqU)M	4[K(2ᶤQN@HK.ڨ?&"
<&Duu(B$[,by.#ĤߘMT1FgǨO8!J!1uvfO<ajO>Mn=rgZ [dxiaE]qL		gP-'d*9}"jGICgF[''Q1P1ܳĭ<᫘cW Rʠ}5wHLfa{7ڻgp[,V{r*5{m_KLo755p#xr<C!p6!ϘjwdzR،_6/fe@jei|dEmAl
JOC2ZZBղcO=ZZY+_0ԣ]j[aC2mZƫuzrպl-5q7s]'䣽~ƃ׋R1htr"~8 H:T%ٛ?oEcI	"7^oGͼI\D出S/%R⥖,gx-1-O߭I>*Sz^.m*{H|J{VaI\owQjS-
} iK>o`)~Tʎ^-׿<Vh'e=([E5Pv&A[jl-w %IRVӷm pJn8)v9{9.kCv>NtۑY^EXݩ_JX::Y@wtxrxA*/F#_љMggx=kWG+$_g|	,dpRck-$ذѓ d$8'18؉Þ[եZB	$9'}Vgn:tibLNװv<ƴi9:GAgcڸ653Do:sL/[cs:CG 
( ;8<39p.9seT%ף`xG<˳E\Way
y_t{>wN<;;L]=+8ø܈سBgQ3%fsn}Knoskf<~ ݶ_yj- `^ia:z^at4;z>˼j6vv0f݅~`ZaP=ܐfڀ^$M8fA98"v y@@+l<W%tAE8܄9^B,"9t^ag6-(<_Bpsv'p~)uN0fm9kg-Ay["m 2sGH0_=0*9hf.HdNtC0$(l,-l<pͺ,6n;fÈg, SH?qb ϰºam!P.F6?狊p JjA-^΋6+*?Ϡô1LAqO،o DᲳÇ(Jm<!gL}]3m}mַ;NyU}ЊRv,N+w+a1aЃӅI(hzbd^+WwXaWM1M/<˭gRϮ.͇f?
-!8bh#T9Pc*ZMO2˯-dY85wzz̦>s;z@Njm.!5Ē@,,ҽN~OQŌ̈́8̻Q{Z0]"GP>ya??IjK[ &GV	>+G2PXV@ML؞W&7N5&Gǡ%ǋpQ1
/5%óP.kS&7(G3A3ĬW*BNz,07#_߄4.~d>Y/>Ϳ\ゖӶ!~ui]ޛ܂jUVX7;@XK*)(<YV	/WSФǺtv"SL|?ZFZ,Kkir[Oz,S#ԇQ7Ci?hF+t+留\$XJu<砼q&UTS45?֤?Oo!Eϴ4:U:PWp/I1"AH󎜵+^i>i7ͨztT{oV(R#Rmky6kǕ7)0okП<*KwSSyM)^O^ɦՠy9F'TϑA`da96Av*,=H$~,0'O_u9ZZF{"0$ T4稤$us4AK$X=? բbjdv]e{%\)gaF8 Ɠ@8R7#<hk2C\:S\)6E\\P,9FƜaZ"W7|(<Z>+R= {$ɑ ֌_N7wڃ7%"W 
Fx|Lz(Ict<|ϡ<pgOb<K$. AL"*;2xnX07.wÓ/nd hlC-ŏPey/ͽWRdi(!ןBąTTی44
LyUd9wMՄٺ#::_B&G.]:\kuwEyrQ^b^kIKJ:Yj21ÛQ5ѠkKxcr:^ʑ(4WC,ad&%[)?HQ	Rp#|S+H0<ti5Rhimd@S~,Qgn/2@fb|3:a=%C-"z7=FWQ{63v'#pi𮥼#sPdX~OP1	AN#ȠM)2ȯ-=<Nf`D	ML~Mf0*K2|sK,&C%tJiw]l&6+%ƯfS[T#=N_y*)&%Hly#B14ZƠQ?%cbt鱃U
}!9i~x h)C.,L<Ƴ-1N*]}V$:cnwnbBb5WC/J*,jEg$|/=gLLNoIی;Ȋ 7w*S[%~>:7MF1Cb6˸2mM,W\mֿ#¥wM#j5:P%AS(7w5zŏG3988qMa9d/MMmFl6Nx]{ لEҤoj+3iثkD9mȯP1@N+[ Pj4˦ܝ佅̜7RtȻQ;iWD-MI*	DtH뷄ko<eLEjCodew1~GşkNɫxu-zjZSɌ="M@,H)6;"GhHDJ_-id趱UmUx2.D. EVnۻdh~\d5kУ 6S-J$u8]yNlJ,,LohMIW7m$otӛ}V9Kd(.j-Գ1\Jqu1:HG4Ύ}M}KxK<78Vh=E9mUe礧Qbl;5Jc0+JRrh.av5{\WɞM=fsԽC}q4)-*لUp=ؕGwzl,|-t߶'rxX꟏AEqا;zNuǞ |j1o]G"_ٸ%(kM;'O;1w/DhH*ťeqZ33㖗ŌYw3X&j",稈]|jx$^_IPAi<[KfQ&[`%V	ì1 Ckeu>gn:پ3S 3S\4ZH@Bvgd[»f@BZ;rX=(!E듘mubOXɓӁ׃02@cx#R$FfcCgVL6zܴ	}u#.uNW	gMx [Y L!O=[6qh]"-?C*bMA|n├)N';-
maYTu#aVPDNa"(&0VD> >ܽd@fA*7hJ@Cfmı^ܸpRO<	>M{_C;+o4X[s$;34J{կ_۳pb(O;q{IZJKO&;3 â*Y<^@\͒4ո^"ko^A'G翎.b|Y(//sOGB	UTy5xyq?Lou9WC&0MaFPNGCJ)ʣp4&h&_K+q.r*1`'o/=+kcъQ1Ĉ~Gqwƭnv%IKDM=˱R(T{*Jr~f~O/+BU_4GCIk;bSv便<EIhYK7^ަ*k.Bk-4ZViZͦ@PV^'BG*s1Q\ҤAg"D8@i&塚y eg$cx딠IAi-vz	[̜u:*OVdظQV)u9RIFBƪ-|K1xߎ~Q(|jy]sjie)e@>h<-ա9@<0@0`Q8Yw*&#[OU9rv	̯7A<--JQ!gĥI_무Dj#u$]Ο=wE7ɹdViq~']@71jؠS;b_Ff. uKU-p{@ J'1>P"=vto:^m)c &,-c_NNaez˂߸wcٯƢ6"QN,Q%><H L.NR4)?H^44vq-?9gkDWY^lV˞lzQE6jڌws9I7Tp;N#"x25N۝g sAӼXX_/£HҤ:f?[0C?4TW[T5h7hS!wqXݞd:SgLB8P0~$u8nn2Q~*0tt!i7g7%<3mnmAht˫d͂xjViIF^ANGkehW"
98V
KAσ_^{(vnИ]lhITh3vTAՖ*V\^VpSʾUA	K9OWXkJ/y
Vອ45B_/T+S^y#+f>ͯ"F#Pm0a\!OP#pX}/K]ffV(`'UrӾLvkuMFŸ-:J!OAC^\a,3C=45w;3;y\tJi1*̳\-u Lg\yl>_D%3e v ^7ثMA2  K/F@*hP!XʮrA 
XHWK>8NsB^ՍEae>pA_`~ȢuBǄiGKG;#s9_ܼ@8seK!=9ݼ߼ȬH"eAV7 X0P*3sFU@M;I {[5<yYt12ʃZdVfx48T-)D)#<V9IƮ0$!2HpOnmpih4i#ShbI{p|e`\xsD)jK,+SM86tzyݶ}!hE+Oa*M)^4U 7)d\Ȟ2:r?^ wi
#Ųaaw܄[y~786zlm~Dgɞݸ51_|9CknAm6"%HRXNoVӦHCwJ-瓙şrjеvvngK'9aXN;Q$5Z=<;9uJ_G$껬]S
n$	DwE$0[:Hv_fd_/.d>|*)nֆrKNvz{*&1y Խ|P95!D<;p9x|rj<zq9%yrRӘ坻H1UQB]/9TyM+Ҝ_
F4'Цѧ.fgcr/c+98
ZөJ-Mv@d)ɍm`xl}Գo=\}I-y^,QO^wr3ٞƜy2Q_܅8(N#dφ)	(BΣ
Kٮ7(RX?:Rn Lk]t2If}7G<Q},|=w5z|bq)Rv&Y=%)I"Z甲;a Vxtn":9rJFwYZKX^1*x7y}T9)5	ÕZtxj:Z<5b|&2D c!j>؊lB0)uMlE*t꜀Z8f!X&CnՑ͹|[֮W3wfH%ܣ	8R e @W]M}=tI5@>M.NEl/NfT݄Y^<7T!+1	uZ^KZw9=6<N!1V倔;"#X#ORfXcS_O@+"g8E$(LHPMzQUܗ[!M&7*p\tLFPVHQ=R3%68 VFREO_=ܧSiĉ' Ju(wli k*j1-9}ŝWj+ty2;BɯWb5B>6b'jCXD]$gveU*[]SUkMxU=U
*[	tmWVأG߭-#&1?kS[W[rnG߉G>gB
cHf pR|ap$J4;/E.K,Sk#|@<;
s|9 *KdIAOp(%
9u 4gX77X(ao\TYѤF櫑jbݯwٗ޺p>/VIus%XעײvMoĒ08WV8<QGw'±j ȸCKf3Tߛ:Tĕ\Se-1kp?I*.cWqR2+L;(t\3A"G5݋VE7a^K+hN4`%a쾓vRi]&IL -K+wء'rKyЧ:ja=§[2 eD%@ABƹyڂtE>h\0s r4>!(@
	Ӑ\{"f2x4X`dz.iU0TV9=D?'.:qI*7]Y	K_# 	ԬLUo}\* r%sRG-Q%ŔIjdV%vSoK:ZHlh^&[_e.xsXm 6Y	x\OGbB"ʷ~II#Nt{VVȥw|sip8elcRԻrצT&iZnΎ&oޛ>紜k@P	gQ{k+/?^fP'{sUsꖜҍE։n'+ iE&_	
"ǻQ{s+jg4ҙoEÌy	yEDϹXĎ:X87rǸq#4IQqUIn`/l	7փyeddQ-.Ll6wtX^]("}	x}>xLA4ĹK#''Jtó.l5ƸgПLV	c]bC,SeEi{{yd깊llB,0<L4YYV7~Is੹ k3BVD1.nI}T2/訥圪ɷT:f˲3x̓8r p֝u1Q5:i0:TCLrS}F)vYOt0d;܁ǹ8׬ɡ=*'a' M-6U-90N׃
y_Xy-^ bDމIàUIDKby\ʯ8Ȇ~,u=W:;K&bKιJMuOM
/m<c@|VF`;<.0љ3<R+P(r3twp6y8Xɋ,=,3?	`:#{ѮY~I9TC`1t{*,G#P~F`)aMc}=TiSZۆJho=snt`KsJC5znI3BQ@	}zq	LƔ "O	xx("XNv |l?	|J`66ƳНxpO/ҧ5"pfv7tPNj	ф(Uԝ>R,ד8! Ilfp]f(eO*0K<~_ی-Mgt T<6ʴbqy/JB&xQ;|Oyx I5w/rjs`}ʓ{橈HrzAF'	F"t]?aoe)1Ub%zWEϧm]:wưq?\wF*Sp)Z	N?]zƓ[^O7n.dKD%.7!"Gc,,]K2o͝&RRao)`Fr'bGym/,!KPBWUC*ޯ|xB7}ӊnS6t1FƲh,/<h}$
ɓ8.twmR|0`sxdev2WDn0oa`sx!Pgo&Gmۢ~[;L]v[نuw7rdp˕Xm&T&*/2pH\<ؼ}.6EulyN*1G#0H2MMLt2'D1>u}Ouf8k(嵰i<UB2 2`](#j	oݘUA__?Þ12} g\"S$	^:S[:A@]AtE-OȱN"14*8F
h4l;Um_eHZ	ͣLϻ},g%?[9YexMƖ0Fl5{ $ó7!-T%!igq&Jr2)N7Y&j\g-QТ"Ќ7I+٣7s2Rx
ZhΦqSGwfsQ6=WKG'OMe`H6ytWsiȼ -UDɋ]FxM9zz92W%MfqRboc/6ƋүS>B-.T@{o}OňۦYkS$XzsM[X[\EIԪ7>O\LxVÉFg">kߩw;C
08tB#Cl\=)HՌW?xqyYRp?4Hgr4F h"ϋbe'	 (,3"J!ڡɃu`+CA+<v8i5[nj&uTZjYuM3,+"Zm	%0͊X:l֌=V<ɕ$9d4ոq20|znVkѮGι9VuIv^+# hb[L=a ̊RWz]ϦS}3Zobf9DFYj؏AtP	r2rTMlw=ZtNsbPSqBS80Dal벝c nS?IƋZ1pxgEO9OA
.|Em,*?QDs[_-ˏS+Z1P"T	AP| ~z^^Oj#
H	h	SrLu<`x>ܯ}ƥ	fT&^
9@
 -
O&әuJvrtQ<@\lڍWυ{$a%]á4	I1x@2!uXA%ZRcDNS@=9V3oA#V! A4xe~ RʭƷ3 qv)D,d?eYSe'흕vrM/y./*h U:˫sA]ϰj&ojv_T`"9qL0@_:O@+D!`o0̬c*GOR'ѓ!
E0ELk.::sn:\ c5Bv+KYbv]~^
Ȁt]$
@XVԱaҊD5#XdbydaIGxN)xtn@Ra>`wJ uԆZGEX7_S!k?Y&_(V,lvn*DBƦoJ`>	%Ù/n -cV/1MAM冸X	<V?.h,ΔZ22"e'ޕ@Kr.)|@_[*yCJ^̚7@ҹ-x~0geZI6jCw!RAQe}R+C$ VaiFF|f$'#Gd寪<"BBYx!KQCB'Xt?zB5"~Y$F=oU뭳l<+`o?ޛ_O[Ub|ꅊ-I 3#;"RTIH<sJ9LmǤSAWұ?OVdV"P2)GɌu<8S-崢QK2<#/+^ fe%+*N5{_Vil>A?=ߚ_OR	WD=NV?;zk: Rx]SGbP,\ͥPgp%O?F݄ڍ%44A6l$EPI^&ޤ'[ׯ{Z3	I*f4{uϩLtMey+ϛ;Ucz+EZsConx6g,X%yݜt3CJ7~$f28qf8;˰V%0:'\v@_˸
fB9*XPv*BƴB˂S^f̶9Sv}\_woPJ;v3<{ǣƎN1bjEl-W'Xy	N`*	cq;Ǆ26-ܨGɋZ̀$fq0'oZ{}\fbᾁ~VEB.Z@,Xs.ʍqV4Ǹ22+,@-b\,?AnĠع	N]Pѩ'N`I+["Z#.p"ߌ;ocv$976qXI<kDА 4@e&6 S'0]eo(ovD)v)b;э29aMCv=8)X?_Q,TIMpN^ xΆĠ^f,nWڄǘIʢJDr-ST.{y5ncG]zȅwF9JljؐS<GNvI0bIN`y!pX]v?ʜ>kH*ܘ
?"{,̧O|RxsXIGP=ux&PZ3ShS/MO`o7XH{dO t1"H\=¨uӹ~:yɃJ ?)Y~*fx"{G?Ъ㙝|}.7)Bc>%fO-,I}Q]9Kqm@BmgGG/;D?-JdkV4kۺߣYgkW8$D7_eXa+IVH
@1sK3L^L߹s#×. +AdF}M<[}Hp3Ptj7|Ij'dhDeS˷Rrno@O}V2@q	w6Tr_CSjP`3>,`TFq.aSQ)fR|6BPYzzF>~*QM)!f @^{ƴ"Σ> !|v8o>f\ 9;kET޻x_0{P:x}Qm(WfCZ<KmASʊzx+&3<M)\\h@C=em:;<ra`;#细7r6sOB]g{"+5Q+c myyr'-n$NPAֈgn"vYI^|Źէ-e4ilU?ɖryyܯ_qr7:,֎ߕ`ԸX4Y=h>!oJ&)jT,+LIٍ{H4*z!bܹT dwpp`s}=[:ߋ[#iLHZmRį[ZTTEd:U0=Շ¯2AÌe~?չ%x^]##zt⨆= ge4Y3Z%^\IJ:>J:5u4b(7tbwwА|Z3LsV2)DVZYOb:tnZsx;hUZfsƹ{'\21#VoEֽ 痎j5S}d%:*Vsj<??/g+nqQ l^teQ~袑
(!rO8Ho4(	jhUsk0~ւ5ޙ?ЭՉ;ߥG#/il=|K*%}Iw<;+d$}0Z?L`!'_6M/N'%9o$,lhʴ!~$E$H{*&Ke8ǾU67pZY'HsK;IțRA;t0zٕb!!o'zK'ȶJ5DVK'`e	h4Ci)_1'cŅPJq	(MXeHJQ(v:??13^Nf˴fP^BOβ\uT/aR[B;N8+¿OJqH(,n=,
 )N`vS)n..)i!C9OE8f{Cѷnm/(vQ2dg]J[iw-ts_ѵ@("b'0l2VQ7R.	hY}F+&B(%]}  p?.2𒥎~Wa.ka Kw+D0cof9I aj}4wNǄUpB.ŝBm|gx7D~%%VK.((ፌdO<K:(%s*5tOULxpbvE:F 0kiL6fyDWX.ހ!VN]Zgb3`xXk'd8QݹXrZ5YEslhFu)uw]  7s+Cq^,h"h@ե=SNä']8@YKN%xUĐYN1F6 5p$Tj/\{Z_a<	`sfh9?zVvb,\^F'Uy"XW<&`Ҁ9*@5{7Cހ0N)W\S76͉2-Wʅ?o)8<2pfdivvL`4AGKg$914.1p|) U|:]6[N}F򠏸i]٢]۪(;9(0j*s8EPal4M	sԋkBXR<ۉ.|&1b#yG2>'\spgw;yWBpr w+e߲Ve-J^n* b~!FW)M9#iJ43kxNk>,\JҼ{(7vVBKM7Ķ<Do@ٹ󸘥2Acp^$A8`];H-ˁ ?qN*:
`0 yE"ۭuNzxbkFNo7<8;|p ^BX7WBY(JQDKyMACJq(%-2:&孷Qחspq7iK~S˲Z-|vdi *?"!~9Dom;SSc,GpGK6yЇ!kংmtg	m-RzAQCQM-JjCL0$<ڏvԱ[9~ #q¡	
(Bb3܏G ;%lv90m>mp!hK5lh Z & ؈d/xNw,/ٴ3{hsB}xJ`)ӥPg2{!n=a8^qX)9ǟG WmlVUQ^]vmwmp}͓Jq8OBCD?=yt'~pO;#dӢE[NUNā8SWyt&14Stg,	ͧ:[x3P[Sƍbлg׊/Bn|uprbCx%B|#w&Ю~2J@]Lpv91te|H[7wiba'if+IVׅ\lJjezZh?V-9`sH`>+Z(\HF$]2B	cDyQRm.7)Yc7븻@z+9[7vDh2jnÑKR_S7@陎$A7C=j0ur	xc,WW&	UQP	ZBX%J"MD^ETЋ>^(Bd[S]4Rb6+%MXUf*4-:`up)8x" s/Q[؂@avdzgNf)CJ7DFbOJNM\yب#7?+. ,h8PS[
~ap9g{,.ldLJ=eE6/"qER6Yt%[YLts**oUL]@Pq
m\xFW?/̥gIV7{f'.a!;#Tk4]zl)Ef0NǓb|w#Z3 ,O5up֑ :8Q-Cd5
FӲZerWǁQTGYm;yنR^z#$:&L* 4oVW]pïT ˱T>}FP͹$)H^bfx4tu#'Xxklwjn־zt@Pz^=1o!l:f~oE70A$'Rs7xHWkIDOH>[_树4ݤOB`k*'674@7znO\ 7VO奆LW,2M6׷cGڸonu5Υź	} [QIc$zjAӽh^8 4<JRe}JܕdăXM.x1|jbgQ{88a!L9?N
@0(!>&=&7l#]2tU)DdCrMBֹ%$HLN<O^݅da	,$&jT(JTE"&^:]"JQ2^=bUrõTP &zGN,¢܂Ӆ(TNʋU3+NW5N@~Vknk?7Fb{+X	\Itkb+TfKW	M@&AD@P^ۙ8;9E֨hhݚF+tבtajM,J~ϒ!1j>j+`CDrvOp2V[Hf#Nồ0T#V~b֝D3j$gt{C=)lV/O593W鋜+L1̋
s/B D6k[Zeaɸ`d>'I3 4>	{j#M>f(WwWv40@JaʿZ90Z4ʄSԲ^?beuq~@HPp	M8
hփF|i_>y˟}_Jo}59aZY`w(}.Yd4"!rZBM
@ʁ[ Df37?73_DV 8"W5;[|چ:-c0%?__|l>,9{O	mp"j!|~C%󻤊Hɕ(VaNE[DMR>y#щ`nn[Pcң|2;S־Ib;А!dNCJ .ڑ$Hibxy%D^t) Y%z'=Ӿ7"4sYpÕbk˸Z@=g`J`1o?w\s!Wx+c/	*1Fi3U/?M,< _afݘ[QRy_ŒPԫn"P|^p!ՖGKs2")OO{+	.e7}LԹ4d4T9w9xeq(96^Bs*".Ѳ6X%"h̵OeOk]
"*0)X.E/#ӸR[dfMwg[sč\$fԌ!mIKɺ!8[B%|E)g
;Y=Y3oVUo×MZ!A_z_菌&$+AjDcUٖ0[o֩ѷ2+FV%azPzM_#JނKK@qt-2)
atoxpft\Gr;jv$P	h&JtZ4nY3~VnP-)KRsSf}z_֍	%硟V
1%*Ҿдl;lk[)ќS?|D4#"c#"ES&ޱ+V̇_ܽPc&f7fC7ډXP0$ΰx[WWݿKʱnOk0ڜ`"3C'_DG/@ qMli~itΛ댨16Dޛ4MHtn0mq謗I_dl4jmAݼt+.#NCӂ>YqPGIt? n/#/GcF%B6P.<HZD3>t<)<9*cQyچZ)V7$b\[A7`}.'qeXuQlb3rgiǻ!W~biPcg8e^
/<u Frfl0޳=}d{z31!]k1og	قhal&H҄=3MWp8mcR4w_YyhvQh5Nf)^TLԦP$RCXCZ$?@%͉߼.QN'x8`MI#t۽NOiOX3ظN񪓱;i4s0g<<q2pGl5;p20}_l_b]
λY׃*^<ث༶DqK>aT s1x/c`>X'5J74-Ɓu:b0:Ne97Z6;ڏlN'5Ͳnbsցf~~Csr	5妷Rխ=g-f8sƶW[~@A|aZ^UAQD~3y )dTҼ5Eꅰ56@]b4{rBrviPwK:q߮h 0w'-#>?xB V[VУ[أr66^BC#GȐpri&
qǍ}ݩ ӛL=&kZWo@CԠX, Pp  =0Ќ=3Ȁ0<JԵ{>!N>mDr3 =_ŒUlwn>3υ+Fj=l>NCu01ƹ>Q88xb">=䗩HH?(l %l-d&MAqam6NHZd~!yo6;p-žf^?z2JA?oruna;!`v;kX6pZhn;aK7LƇ&U4Z8%"%Z"T;;{ǃ&\)ԂD~KF읥3>ssEN[T 5OyXiۑ|cZSiu7PTLj pQpsyn6iaf0K1d%+Q+N^W9E RCBXx^	cIԑ @]5aW3@$_`&d̯iD8^>?XAL]Zl0(Z*ZAEI IHT<nSoeTN#hd脝?=: bPTƄgM^k?{tfO:ȁV#	rnz<_A®EoqQVrOl=
4>m8Y=oT oGqώ7OWpjjoLoƏv9n9Us CG?G](Ъv#P6ۚsN7ɉ$'*JT22NP>7c<:;rp8rr҄?u4/dP^^e*Z$}-=^
09^;6u$K`l5HaQF0GGZ;GM7aȅQ+ǗiWcr#hGGڊy|ɱ59^17F7XfGFWn)ot#tLO!I,u_`P'"C x[#A|د3?3g-HȰէ-]#wAD(
D@"KPȳINa{![`Jn~I LZkç9nx'09G	A%s=VDd3X;RD n̆ʏn2#iರ	t0H=W_~Ox`r2uSyՙ,L"Jr[kiϷ*+{ŷB|0+|cJ^xn??WHM	0Ok74FxHGN`.(O&6;aަf\a'lW
9VF%h
m(a7#~}I&(M^KIkyayB(V=HmiT!iamSɵ zQ^TGI(Y
,24'lܛ~R=F}@uxJ`de+
)j`BLyinqb-͸32U%^)tV¯Aa ~&ϲVɼ5&ҳϺVfdD=2ww|ca7{M9yk+Nz⬲s'Xi4	TNhi~"I޾ҕp`q"CtN1X~$=MydUh/㷟w>if뒬uoME~)UQVaXq5.j*؃ĕ/B<$.֏<#Va.!eDL#~^}fOF}Do.o2[H,O< 3k\U>z}8P]LԮ#c
ۋg2@e4AZpxs
'Jҗ$1[~k~[}ATUeG_K:BIlV8Tpe!+D27jGpm_w^c;āYi,6_+cvѬ-Ȧ*7k;]a<ų%IeUD!Ee-^#> J6g4	A9%E~_:9帯?cQY MfN("T4V(&7'f̎*ъJ Ng#o-1J.F뷝xZS_F3j)d$'4;1IJ@XX!cـ$!=ظC6v>w:$6g{ٻkomBB;0({lɟr,ì6꒼mEp" 1F,c,,ϡ~&B|1!
`EcQH吇
Y#GXiPYQDKgB"F" =(I_1jm0bb{fv'k
}"@!&@0$L?3x1&cr$>i0$A/=<u APՅfpYG垾^ttZ{vq"[OwM~Y?AwtwZ&h?x4 @$LĔ=%!xzHj@hG2B,"0* `#*GMM*Ub3Bl5/,^D՚/y`DI	pA3xoOC5UzI`GT~B$~0ݚ~ȫbH0
zgjmݪ~'U,TsamS˪JXZ),	0%`@A bDщZyt0,@$E36~ ΰ>bчlnGtZ8/v[r2r 1yA/:Xxὸmd\
Cݞ?(&)ElkFךΐ|YQ^rQ,P~IlÑiEٙ\.,'^EݻGc.Hi#k
f6	ncBMB~P]9ci2(B^×~^S/άlp{	pjVAeVn'nMdJ<#hXNֿ?hw/3%Wf_ĕpd_3>JMRr",~Aފg);ӯ^vSwIKkloB:/ŨX 硍6dcZ۝'[NvgEED	f_u!e*caInV.AQc4	o槕KôPy_^W|i(#0o!k5'JZOQMi ~smp@g7
G௜Zn"ga6cd`l?3\5x;7@Vk?I	^=j>̳r\X"an.^\N+5F %kkVxoi`'>߅>쾯?Tmֆ֝bulUi/jmm#ST%]&_ՠڌCE	WCF>LVöVpdƓ$>ij^Txk)(z1	ʟdŃt5DeHv#NGwߔFA !B^i(|ħ6cߗ㉥]Y<c^Q:-bNNSӫ
¹O%$K9nPgz\N{n1GoXb5w$Ģ$&T/Mt8|;&6>>O+3mLVUd4Yy.WJG(Fy'LÓ;7#[Lˍ.r_=jMo9pvF;D=n'&J6]t+{$h3ʔp1c- [Rݜ˙jZ@:7T1O.J_z{IfA#nLMFjr;X2څxYqlvh*Y#QM Td4x8m܂(vg`(?8iY΋G1;yK 6g8CkBg?^/˹oU
hK~3C)J	}VW+#XǨ7INWՏ
KgS7T~CyEQ=P4w'Æ燜MT)va?p^@D++"Ã/xѵhZ	M+%?SMz URSQ(*jVm6reApZDi$5/wrX>[1*HU= 2op0vdY!6SetKPn?ҖjՆnn7\'YrNu5tGaL}( ^Tü(44i,=)yEK'x8_?LK^A[*j' |{!<=]x6*õ ?G<3K@"[([J͆4fC̆L̾
9na|Nuh[ղ ,3)%LM[XP훓)yJ#^/>!WuF4zZb*Q8l԰+kvO/XHqEx묾SKKֹG1orouҁ䅺2Srt~d+x"' փg,[Or\~8rOKq&oD__&Ԣ!zVIxZO~篸"/&m$Vڐt=ә1`E1`mca0l0H*mҪfw)%Ǟ1>	{ι|;;CowFNQJ~ȟ_+	nȅ)[S6P#w
D<ea8|TFzu,+Gv@1.⢊
&6E(Fxǒ8Ř8~DP<+ԍO+6Đq(H*bDJDAzHU8M{LL8ހpEa Ŋd `CII!7eʘ"8<"AQG8Jux1.:	tOO_GNrx?Ex]=<xT! Hb u.DD"a^<	->1'!	1A*0
1ATzLMHb+(Ad|1$8c>JSH"γ9dT50+:\UlND	8M/cBT(
VM}NN@ddv1iԠQWo
*r7/˜4$EFL	"8k+
(I$H**9	BBTPy3]^WCJ*\8QV=dqX @UdwJP$h&届GU[bJQ.i3'cc9!BF3:\^ݗ	yW:Αq![34D²,A^cPŸCxR4opu:;ѭs$d!R+kAßx:x<U%Bˬ0'b8"?0tKUFJk>s:=rZ;<~?vxɕIvp|~|t^~u_=Ӵv]s]	V
#5퓮|ܘL&w-^6gK[ŕG{d TZ|t>=)P: ټnifƘ2iu9aQo+l~%71$q2ӛ,D Z F<]mpP_8>
d;œ6Ǻ+\	<X1"r3eYmkOo
o2?_';w3C$Tձ+ͯeAHq;׷1~~uG;IaG˵PѽN*iJIUr!4CP8-T*աfl,B@JWS^AThkLݿXLgvw!$V	XJO*A'^,
hlIi`F>,ds&U p}dy}KMV_2rO՞Τ2v3_h'q-JՅb\s{vol~OmV
KoeXm`d:'Wvy^ÙqyZ1iϣH4@eZNl,/gouVq7xǤI7H*Cl4/rzkD	h1[l_#QS=S%U?q|nD(NB+;s{6攩!q_A(X+_#"V1=DXMjѥ FTz=AJOh6vVV6<;Dvf.9"樠3k8	o^fkUoRStGdYJxiePtq㝾m`Mczdd[6ϖoձNMj-swO㵄?'g_ m6O"[BN3,l X[5#$O*Oh8@c.^C!ǰjo̫L'IH9lX>-˟~V{*uZKS(r9'_kYI}EeFI	fIPM;t>ч.yf3oÎIϫa];|ҰN"lqm;TLf7ac~:}!SJnE?O{ow31ke_6Z}	<|Y(֬[d)efC1Kq+I&
?-4U֬Ƥ5髐?g }?F.(ejƕu?}M:ZIN]zꁫ1AXk^>v|J.ȶ kh-Cg],fU'l67/:;Ctr`o$^\,/O@*ʓa(5HHRz#i^)YQJtlz\\i[-L71a8=rxZSY_q(	wc5TQkk+$2Ig; k`+q@bdF2CS0:33[+V#ӷ]т*MΎ6ԁgctvt>R4cVt'n#NsHCF>9aHBA]y~3P1zCnV@^:9'K6# ƍld(76?òEE;(PX<ZQaAsttTKjYnIno;8v<8/^!ʃQM'5XQC	,8<1 uG;3j򥺇ܨ]ߏ脾ܯ%{szE3`6^2$\@45vK"n2I^?M׸`K1ƆCsy!#4!͹fAq1%ȏCmmr&kQSXJ;M+>>1lNۜ8uۈ)vRɸ촬e0P\$XM\d.(0cuF(n4Vege~Q?ˀ38aLQ?uFm<HQˈRGeunvcT=rmj8vT{mÈΈp`2d
%AM #ƴml;8F2X=Fhџ3MIazc$Rc^Pa!yh^;.{Vr!!㨠7뉗k6ķq1'ĭ6Nfiׅ '㭍̋ZF*_(
@)_-Hw`Q)g4
;_&tV?ͮ'`b">Sd1*z5hR3fҠ.!Wx9};\tN
/C&[6zO[[pagD'W9r%ŉU8ʅ܉KjHqԉTt&:˄3m)n6-x1bBHmRT`vQ/c*p__fL." A]n΁Եp, 7Sd~!^<LŊK
tMjG+wy )"0#ŔqtVdH쓐1l_G!)/#k3j_#>X9puu8}r!=yk1]&c9S0>$ CDI"
y>a
a2ˏ`~2S֔z0V1|6}zidàQPp6>7/б5֊WSkI+^MOx)c!~PW	u$2Yx4*MlI{X"JFrB@2҂Km{2٥O43p6'C(`%X(C 4x	^晿Ҳq8'#ԝԦfԥAg2A;HOruzWҸ͔bɻR|~X2.O+9Lu}1e^[y͉*/t~;CFN%-ACN/$k*ӧi|,@L(Dڅ|JfʕsZ8, 9D0Ѡo)ZIW3a܇WSu*X:yR;{p9fm۰X!mDF-6M|P &,LͧR|IE6plv<ԚZ
e)~}'R.]O??<LusڿWŪZy*	ї)35mmp0d7}_K$/ |cbIC(CMuGN=+{0AZN~߲GkAL=J\\ePV0kr%I8aӮ	L>0g[r>Bi9}{`y	\(/
Y*8!{H(ְGXmwǴjzA]1kxD׵<?JӞwjphݩ: 8kW5o!Y3pc:\~H)АHzf\!`F0q{#-9M! HfRCs8v߻>E{gnL'zw"_;Y&tA\Yo0|#[!חuT
{8~=ݾG:ߚ.40Q;i#-xxK4n)=2Ԉd\)B式y?EFco:K:´z,p$Ha!Ym7BApGP9}_Nim~Xn֬vlVFYyGe`݌r7d$?4W.1[n}xP<[#03<鿑JHnkǖeUM)wef*ڬZAh!0UFpʅ}ov#=9g,A䝫@;ч6օDn9sJ4M3.OM#+}WRJp#)Il\43.g#,cokj/ &ի8lt|LV{xS qȇ>!c_!ciY!Lf<Z<?ELvbxpOWx"[)dx*pU`BGz~m~??3e"|"ZZ_r:%ME"z'uڿ_+je+zs,&3-w8$g?39440031QH)J,KM,)ʬ`М*z=[_"eϋN6c;hx'[{c?t27!%@#$otr=}Cw6y2sH{&Xci63c̵_OO̚mGXd+].^}cP[ʷGYZ\֫?e/|q9y<o_PU3y{xl3XE~\Ȕv!GȺnHkMNf"3_ޑu]\Ql#0y"d{6v(޽13Dg yl_xk62g0n~ cI#x{εuĴ_&a욬19%u, x\SǖbpTm[V@U0^WjK5HLEHȘJc܋PbzC$"8g1í=#Fَ,TRO?N;>ӇRۭG-NAژAQ	jRn(4NڂIOQbv86T8,=:|ŐMCSn`]T/kc(悅qk,hAH`2I}8zxUQ'֫H<
yAs`mrp}6RܮkMwR3vrQ_nCh'"B 2m (c3r,Q.G/?Hstce]<
~Y++ vDL5&trVup:15.DTAߦIJ?GێQ`L8^!d,l/kAS>sg8;du!Ѝ`yEU󂁚j>9y֎*gyXY+//D2T	Am.7t\+wC~xOXtY=-Q&q,2xfPSƳzSIKoV9NsV֡V7bs]`<_%}kd"RzM[kF6i[ݺ6-|@FCo*y^-4mexD wU
=4}a	H2-NhH[Sz[2G	N:8d0Z%â:|ex.f?d`LdG^HC^CסYccu1')qvGOJ$lbc\|DDP[I^jk0,MnWO?dCEs׹N0:1qhJFB[PzShƈo	B".
oݵT>N\I/t?.Q)dVyá4-񔥟樣0#5XfZYz5G`[p1)TgI11?@K+l~ylz'~mƕȣ?%{τ &|ho[ê,w\n!.v5X1^#ji$IWr/9ԝ+VcهD?WJ!#P,<v7nh4NB0	,L
̑*mxN+fo\DN߭i׵_%&(YL%^̬TuvFZo8+'pqZNQӥE$w]6ʍE8]cm|p>"7'+)4xn4I?ȍQ4 &Rs$W1Hhil@E\Hl=j\F&TLDP\õ<Mx.~܃ڋfggEDկD`ePxk!lVxCb!TU22}(fVIհ<F4!EZ1꼃RGeWyd"(~VQĠ{1M	l84nO_.7|1hJlmr.$*1/j/07,ׂK^yAP k:qM)=k!wۂ'_4'T,=,8F8,_pPNJ@sYw}]4I{	
 bB¢/9Ay&E8di@)w(S5⿼_2zwy, de=Phi2_/
25V6x|YBf6/fɟeB&W.,Rcy-Ht	f>=g6`t=!&`(D؃ruf6k۵vYs;P\AcKcDo,P}מap(N}M`HaE(l)(š+3;gG~yzgum]0Qq"PrSZGF|`tQ+oNc;h~9Tћtv]rժO5hQ6I:!Z5!|YF:J󬋤w]ؽ0(- 1.͍7%1ԁM8c$ r.Ni[,ngaW9ǉWzW"`d+hNz)+i6DXxm` ,%ե7_ڧg<3%#(xs\1z%Φ x'
l:cɽ/$V1(-?pq3p))+BEɊh̭vlԴjg}hBJ+	_5O$2=Xo(}nnH3(HWSo$t׻R`]5}JcXڢKW'Gshz̧j2L^!)'B@Lj UC-{ K%\9}/xx߲P3/x9 K_E'۽mK+`v1I/cX1&\rH&;`.C`ZDce !:aPZ/(fS-xv rRt!8F+zd46{S>z+)X
(h]p$g1$
lQ]ls+[nrG; +AKzi+i>5$RcoBx/.<VX^Nm|{dB!apCF3WѤ*KD>/|Ũbk]^%ܼͣ	Z8g(ݓWSW5AUzHp"/lC3G Bb=r[0/M7;P;F(3y^rڭ}l|b:c$Xpra5+ӷ EAe{0a:;(e#2p#D)7"+LςpBV'p伊jKD
^ ӷ]#Bpqi
@<vEXX|Mo0^!v$;%n#ډi ku->!\.CG9
oa/ق<wSNet{I1Hqpv/-fJ;N 6  LFpt!Hih[层|[)/*w
WI3rJ0-;`Vld4J@]h%U/w}ݠ@^&8O$҈2)קOS2<Kg<<1L,n`Vd*?F'Kqh 㫋	ƄdQg8O7D*_09=]\ߐ뇲ri'rё/t6RV%Z!U6cMj<e>ѵkЄQO& }_Zg󫅫>\s5 S^dSD?)s@^Y~S.|I8@dZ+,ݦsV T)|~,\_[Χ`b3pza,--.p\&%n%.2̋	7$voYqfKd``Zz#AlG.l$s9YmQ;3#lAfĶg,/uõ(>^X҄1y+$1,Ch^xqLl"~b۾3!E&=ןF-zf$I%G&dF46tޚ˓fCLFLJgw"9Dn}@.,֋3ssध0<3,x7M̽|&9m7>9l'NKѿJ2F
">#\,2[l'֢3ߥ|!ϕȊ'ގǠA$C_@H,@,#Qr@j
u*џ*i`7
Oz*95Oy3ۡmbXDW#"R:%TP#3 Xn=~(ucB,55@&':T۾NmZ{g'X]+*7EPX!xcX!.cߤ;Bv1\^l	x Ƃ4Vgi8E_KBݴxάHWBdqL.忎	~\Wh迻nHzKS|S	X@QzˈT
^䕨C|)J㥑t|wf!i]8֚Q"jD٧4r2{pt(F 9
sO|!lBCOc@7#ֽҲg!purH7Ln^vTv5^ej:̭4 {	do~<<Vw+wfNL\{R>/z\VEX|V(8ZYi_گvqWH -x7Gᛸo~Y(zd.5.	W7mcXF-Al?%6C{ZIL E0Xxm.e Aq5/f^z#$Z86nd\ƀ#G/VMq$ E:h3vDnG&vib,nv|?5!LSx H
	O*o9chv+<x`7뇲J*.˭NZRumAZ<C|=?"#(BɟfEGm9yUF2I5ȼ-vŎZz$cV*sY6>\<LOG܂'2yqIrJ
5h8}7//.
\[) r
7Rk[2@2$A質,Lcw˰uQϘ(5FV
C!jhF|
0#:YRE74LRwF}UmDJW8VGϕ}xDdMǛpOjptwmTw^GոtXݔs*(ub τx<SڿW(Amμӈf!v2Klf#2-lR̭		G$.km-Ϋj󜳛.mg<ysyA5w\{G~2],g9LAt }nV@b~ƅQԢVVp6D `j? n>:nE@"!rBGB8D3?y1(@w.C5B{[ fXpe$	rl[7b!ӆ2].]'rZ=b#DkyQknA֖船RHN[ǛN9in9dGMVɆ!:aE,Þ0&dZX,p.<4_{igQ;|xD
\ 4DF$M%Bu{IOgY'sŻY,fyCmzѹX|#Y`#+"}1sdPṷ̈̀'&/&0B7Mɺ9y6x?jlg=66ˉݦƠWm2Ɂqq-àNĢ<1>Pa;8ߐ<ؚ<fvX[-NϦzgb0c7|.o͢?DLR4u74-26r^0t` ÞcZ}-<vLy"	\<!wWC>N~@KΉ1xNCƸ>?|M'R'Ar/mU" Mǝz;
`rBOe=j&x̭Gh#s^ "`ᨦ1 dV`q,0 >8l'`I$55'9_MM-ɜ8qcX0Lp8p0D}Z!N T1z@	j֌{Ha3:]b_e~DZUJ녭A8ʈLq'7uup.:KcPeϱ L~U{:L[Igy΍QφS+~#B:!EAۇ"bLx{SMa|xU"8c)_5Z-FSDlc+kصWRhvbd53ǿϬ.C/_Hɕ\>	|#5qCV>:K.-$r|Jr
Mw/3VIBD)Fiz9 \GfP
QS
M}l֫Xq}Hw#>N
u01&񗑉R9J L*7KO^y/3)ĮQXzjh2=OW;χ޺|2[A#/ćFF꛱>7x^ĩ"9딩fAp9@N[Udk5z0'޾]䣠P)R-T^{LH/GRp2}G^GXL4Bn4zU^Vnw6r4ţ ؚ&)¢HGI
M}#2<.jk57X:zM (an`ll'lMmRb.*D=+l<l::"Ғ(W|wiX-UɥZRpj<w>7>7(w^3X:36s_ƋhXo[b2v
 R߆U(j3<UG.%pnt`]%@<_v-Yu7ֶk$S&CRqWU3ښնڱ\B5ݾvY}/|J&FZl[6d˼ښiBK]奥LJ
e_>@teW 犏̒dfje%[-xk
l:y93.~%п7S]^*%"7qT 3/7CAJ[1:dmoJh[嶩m7GSNЎC?K!ޘ5>2IŦp4 Zj*3QQKj=MgYC)&]879J!CSr,TLL{oN}7?&%8X,]އro;BXG',gV1/6Ŏ] ]^Ư
8utێH^[gK|`uԩaWh79@Ap~ lr?X
-޽*BbMF ";`}JlA`8ƔH(k
'1N4>8_eN[:B|~_bl-;v
[-cMFѭIhα^>XXN^yȫ䔭T3VQP@1T0& (阵Fa'veS
b)GJcաH~IJog#~ 0㞉!2ʘOh_u<~)E )"$TP'uҵbbӡEx˭2pv6YsE	5N߁q.lICg{oןZ(08O'aB6R~V=jkb BCU㌭e%QQRHuHe4O@ uP
sjl-D"R0㧙^!I*&,Rة*,+Ճ**2k*P!%`;uZBMYPfd,fjf[ y"X,=h*.&~r+;xN<SRG2#KRFAW]┺ 9~55V !2{u^C}Pj
x]Lx飊2wo$
 '"讍;:oTxP*۹{ V<LJrz?ڦh_v:9ϱKO؃>(wߡjg+%d%͂eHfF.M}wtwȎY`Z+[O^+[xNA 쏥ɩL":)R2 SCR8004>Ms
ϝ1_ew&fǼ@G5F)/jDSǥX*HG.̮Iv~_FE6C^z7FV[ [դxHKV_P(o&zPENI3]hz·`ZRCz`bݾkJUL"RYsVQĤ.+%p~(F+eL6sDA:
)D9˪hClYIJ
@8:Ȱ/\֣_-NcXPqќvdq,MH79܁.]HiҤx"w=&R2tFfzLjDӷimްsN68)k򶣗,k 7Ҕ"o|]\ئi)3k~>"p>,d"6*	,{b\޼ڿ~@<+pB_xC@+9_6lz Y}]4
B)7mƋs7yZDe:	So
%	e7勒u"*F*J1bdDQ@S"DyW.@QgI8=tSwuT_J\fJM߸۸Eə٩*8ed7qj
,~;I@ٕ6^lrMT-FEK&{3+VNC~E7 6F.Ӆ,MV,&ץГ^
?Fv?+UÒ>tEvs{YMt8%ɧm:;.w"}A(z}
qgC)y!Pd3z|.	x	߅1tn\;U=MolP+mEM JƩ ^}Uc<Ϭ\\KgCe۟AcupOP$F>B%1xBazT<(%dv&*%o>Ήgf:­+|m8H~z)ùQ~il90 gI/<u\j~3y)7x*%'Эth#GQV(wsvj&%"U(w\z"'aECc&eR`)wbEmUV	_ȦpjW<2	Z+)J{ܱ._5LoX[vYlrc*nޏdOt'GȎ״M&_*ka^6xa}ו\vgG跔7hq}F-x3ϫ(pMK\6(oQؿR[[T 7yf*잍<
?sO2COrRrnMfR;@Ll(LFP7c3W5bi(s$<7@j
nn@U [ͷR˭gxދc)(ծqpjtI0FңwM(߿5b:zv>!_c@񉨍n4ѯ+ӱUXy#§e8uh݄VġRI Nn,õ{z*k6Ӛg(O{p8ϧ`_ց bLͥkRXx޾ȏ}Wp9@6,$f.B ,@!/ުߪN=(Kˢ2[>N
# 1?nA\*:sQfYfOB#`:`._ANR	§s39H@:b`%79syĺC Ѱ:LҢޱgh|bMoHqh2=$]ASAޑ,p};PN]%W!Jr4w b>MSJ6XSvQ)X *
es+*cp|4_vO;^7o`U#շ'*:d^Im2;ge5{Dd
ke,tN槣%&bmN{piܼ,eW:&6uUdf>4j­wsyim0Ғu~ϿH|{XWg:N'f8J[ =kU8҆x_;l Ë[eң㷝gn.i^&	pB@|}lXK)^/[J^UM+G]׋uuk$PIҡQzY&^>Gx1Dpu%WɀWBhM.`bWrd`*g<9C7K\/ZĐK{]$`=ߩ.fig8_[[T^aBJ4,`f2׭XMn ]83xYOW_qEĚv?l*x7`W$'kaΌ!VcFmnxxIq8qcDy5M!j6jϙ?^jZ$09ΝLڸ`gEv:q4b(K  `j!Ǆҝ0sqÇ>B.R^` 9e:APQj<~U3aD(`e}+n	 nL bjGעqY3 ߼傄AE1֡!:kV&&vZ,6wా'ࣂ@xCa!7n!)̉:<ĳ"k!+<x܃ 1&@bu4fтJ.Y=Nrm9w6mOlL:B-Cy dIeA/$n-b()H~V
X?+2:TjmhhmV<&6 z?t~s<K40Sհ^ƭydL'rO=,C<ȨX/q`Eu{uԅe*(7$ Rb򉬺ԥu ࠶E<axDBA]3N\5)?	RA 
$gH2"0S_GBD`*>c?/֋t|nv]h8l֚e/AKOKcEJ^HXK@B[DOm蠆Hc[#p<Xb}asj4?|*&"m])|Bn1|9[e˥5jX^nOֲ][a᳕Snv3n=ɬJј2-+ϦmyoHTj}q}Sbmd:ZɼʎfB/q9Xmz0"~ʫbz**=_m38gl 41R0RB}`9CkCSX~㇆SOwߢR`s`D3 L 4"rfB&C%6ε+}jutvGk5t<-7cEL419B]K[|yVp%Y.CKrus<C#YemQ̳rytx&32mk5[OgQJL]kv[+;iH?\{Nٞ^ɨԑ0v`co=K,h*SG5ӌ٪ 6%7c\<"F
	WdxԨ7F 0\nsB||mi<r&Q
1so#,"5JmDatw\!FuҜ<z%'uc5=pVpx4vv
]թLN^h99O-O\Wgq4AGR4utLQLB-3XSOi"6HVLY"9y]vVcEVCơ9f'ԡh!w;^	
PbyeQϙkE8pR[=T}j1K>MF'NOENHL_#TzfmvZ\6vYҜˢ<-''H+7aQD,χvhOreW<{grx5?5H	ڡ	Y{?+PZN"JDE(ӿ
7Ə"/MxX?:B)#44Z͏=zm4Ė%,3[ZߊH:TlKWY%9O܌ѧofH~*R-~Tdaa\8z)oE9i+h5DѤq4U=KaTWrKHv-
6e,i/?S6gs?g^a_Isӣtr?AN<K]deƦtKFVVpUuZ&l#Rta3K6WGJu]wzGw7 å~jWc*X[[*棕W\7ƒR*ia1u1H|@\ClGi%8[N`D__38ZZ{2CHRrW"~KNbO^˵+נ:(^6 GJvgr,*vAX:\]vlkNܛck>]=Pyy+prN_ws2ε}UyS]x3݅mpiwWĠCc6e聟e?
>H?>>E{13g~X`@5Y{&לyK-"63*쮔Q_``r0)ZUINȉgVZ=f$-ٝF"e[Ytz,"ԟk5ySpeIZ[kƒs)"xXmOWί"Ҋ jSVX!a 'k칆gܙ;7ʏ!Vn06/	0e MKK+m@lT{ό_fi%vE<眹c{cjDN1 EӨPaLP">lM6d+y<|쫸ӄ$Q@-f ŭgDXTP#AH1Ad'("Pps?LhEAцB͂L)k8MCLw]7B$B$7fF	=*aP"4!YaN`'2W|౨,cnrף9.wE==^Wu gwW#G肫	a-$$IlTύ_4 !#~c	
7р8%EBX
**3<	 ՗G:{VnHɇm<z%ir<XdW\01B1$0!c1O8sӃ^!9"tP})@'joXA#}\2A'#.*JtEJd(֠9$*!ƭ{ׯV]GAWX
BѱgrcTR|@b,OѲ.y:yTƠ,Y?E~u{g[&Ô_@1zO<m\eLX0k	`I%Md	 7kyg=Zw
<W(d$3=L<|cԭ3vh{KFh8\)t}Y.\σϟcWXIW;/g+fUg}Of 5L%2Ch]Cv
62[(*̬m7ND&YPD#(|#?
W/
LfryFd<~^afuHhsC0ys˩xjV[[݉5i3J	J U,9GV36UHh7lZ߲F˨umJ<]~=\Xf0;((բsRsLV6۠TQc_cg	@n?BY
3L<}ĺq?K6KKe8%K%Ժ+l>Bv [27A	K+Y`mjT>whF:v؃(q%>݇Od<n{OUfVy'ʃ=m6t_
pa,=C ~/.m%s/%qIrUHsTUdM~y%lU5w#E!O&Y+$"Hni{@If(,X^~Өjwm.qu͌j@Ԧ$?pQu囵9ջA;p_J`žKG``P%i@EcԧlZXY竩8hNhNy+!r|k'|[;ViC<ޑ;oktUx{LF/>]j#:u_Ϫ]PS*eXz4W7&£Щ(?Pa2F_C-&nC
XXfZT5Kme}.
6blCXU1Xԭ]V7X
+sP-iCF3W+S=[}JlS+Q1*D;&2[0VF0],O$F'+}acVU;TܶVRe&ͩ:F^m{L+c:mZ9a*q+.#:ZB`C;_~kدf}i3*0''狓RRt<#Rؕd֦3.p*h KTd*/bƏρ?N]+"e|#horj)6x[ϸq;|0+  @
cx2 ;},Dnu l!0*=s`OM?3 ӟ[d1NriZCx[ϸqHE/˫︱˭	 mx2 ;mhL qE*ɛ_b^NґOMLQ0`j\pjx[ϸqˣucrk8? x[ϸqȵ|3KE:}K	 UUx[øqB^SJSG_?YN /x[øqa止fq=PyunD RZx 	ϐS/&?5)x[øqG/%VHN\.SUǿ rx  ~2`W2濁uC^]#x] 7B,$beeU!  Ic40000 av_codec /spMQwLdM<*CbđxғWg(x] 7B,$beeU!  Ic40000 av_codec ܫ%w$k.M<*CbđxғWG*x] 7yJz`>c"40000 av_codec ߆ZymUӖM<A^wAsx.ǾnғW+{x  ~;lؗ@vN]**x  ~I誰#Ip] ]Yx  ~s^z6]^x{yCg$K;yt-{qJI 
x{yCʞ/FQB߹eZkRg~{$X ݨ$7x  ~Jں-譓]@fx  ~ :1P+x)UƓ]`x{yCHf	?},7/Esrًɓc9Bx  ~x~nΎ] sqx{yC'OvҧeYVV<1 sdx{yCȻIᱎ[_Z`wI FKx  ~cY~
e]zx  ~x(@CQrq#]	xi)x{yCG.Om[DdZ)a$X Vx{yCȗ4stuZ2<1 "Rx{yCi8n$X 0x  ~@ڒu".;K],_x{yCH*/{-/\aYsLs$X x{yCHy6IV{7wg9yc, <9x{yC1s're?|:Lh$X ؟bfx{yCobMܚ*.3XnyI x  ~gAqW
]T{]Bx{yCHq/+SV`\Zhi$X \ox  ~/n9(C?`]̓]Dx{yCH?aX볥ɓc>Kx{yC_}=jzͦie$X xx  ~ǿAvezS,hᓒ]Lm'x  ~݋)AHC]`Vx{yCw+^]8ϛ<1 lx  ~6,&'.`ȵr]#x{yCHi?cYB[{4妙I ڭ0x  ~ZK]&P,ځv(]_x{yCfv#W8ۨɓcOx  ~)FYY#hn6퓒]'3x{yCk'x~$X P8x{yCHѭcwoc6mSɓcex{yCH|Jӻ](f$X o6x{yCH#}bz_:4˕WMd<1 3cx  ~.4NKC]x{yCȣ*+׸=Q񷩐<1 ~-x  ~و``ЪJܓ]e.x  ~4f<*![]\x{yCf][Ľs1K{3yc, @aZx  ~C'YgA,fH]Nx{yCו2VۋKUbOI }5x  ~ݮVX[.wsf]bdx  ~bɹHHw;Ø#]^x  ~D%B7xU/3ο]Bx{yCkc
NLeTJI &lox  ~kO]aCȸƦo|]px  ~4́){eުWQ]	x  ~Um!̲v3jQ]/x  ~/S*Ʋg8Ƙ'I_]0]x{yCHE/v-J˜y3I >	x{yCV&鿖:[ӟz$X 6x{yCHߑʿCYs]GDeI cx{yCNԳ8_8q->r$X [~x;|yH-焀}w<s	7so%# *x;|yȩڲ^`'y}+5Xx;|y39߅L2d%Qs{ ԊxO 98r_if`M<xEr*A7EDἮesVg/~@ē%S
x;|yIَ{TEŪMI t 7x;|y;~O[4&5V,Ƹ dx;|yY+.I4-Wltwd1 Sx;|yC9r_4Ͷ4	d<as QZ>x;|yG̚3g~VSx'b ikx  9z;ë5E[xnx;|yC0	)\3|Xyb xO 3.լ9'&*_el@m'D@JRneem#B"#R;?#yx7 el@m'D@JRnek&/MW&ޓ4Qxh 3.լ9'&*_ps7Zc!eTF;dI/.ަm? ̤g5<ȼai]\,Hxr 7yJz`>c"40000 av_codec 3R3rUVM<*Cbđxek&/MW&ޓe0xO VynKUp*_ps7Zc! ̤g5<ȼai]t#^x 3.լ9'&*hx;|yHʼ~,63}7u]|F9 п3Yx ߏN溒5>*x;|yHN^J3'bݨ5 
2x;|yC(HS$5n3w/ې93c[_x7 el@m'D@JRnek&/MW&ޓ4%x9 k&/MW&ޓ?~<J=Tli];x7 lt/"DGjJ"1**_el@m'D@JRn)xx F7Bw?7o!srIQr40000 av_codec VsyX.LYxM<JHUј?mBd0|es30 Azq8bnoPjF3Tθ5ܾ40000 video_processing_engine K<g[fˋwSVxP el@m'D@JRn5y[Nϊ͒9דA?ܺQxWjxsj?2$_vx  (	utumX;/x7 3.լ9'&*k&/MW&ޓ%tx7 3.լ9'&*sVg/~@ē-<x 9/$mK$ɵYMyvjx;|yH=_̫R鱱s޸|o%# ޘnx 9^ʭΎ\;~[MyeDx;|yȓ89݋;'ʹ>q97V \px;|yȾ39yD~5:M1տѷ gx;|yȋʏWX?!-Rb+Ь˳ѷ Hx 9cԒ֐B|[*<My`x;|y0Ot4fKqFJF ^x;|y׈:Nxmu⍾ 
x;|yH߉՜\]34:}?=io%# Ƽ
6x;|y˽>*O66K|[za^ ^bx;|yI\S3-}ۼeo%# qdx l	KhU۱±)Qfx;|yB/{s-k{$"HfE! />x *Cbđx)lxo 7gL4^b40000 av_codec 9O펣@ky"M<l	KhU۱±jONxYd>6x;|yBHzYu楊"o8W Ex2x;|yBHe
 4wmu227d J^x;|y/eUtD/I,ZvF9 
x;|y܉/y)mݞ BbY|r~Jj2lܲ5qOf.ѷ zYx;|y"~v'ӵR\W^+'/_Yfb 
e)U*?|i۰'e,S7V2 20"xZ 7B,$beeU!  Ic40000 av_codec 8r_if`M<xEr*A7EDἮ)6'Pix;|yH-焀}w<s	7so%# x7 9~C`PH!lQޗ	M<܀d> fMzkH¡ޱ)*JZx7 9Q$6)kY͓<M<*Cbđx)7x;|yzG^QkÎ]}+{rx;|yy%׎%	N%UMn PH,OOIMfrNk?(ѷ udx;|ylܲ5qOf.ѷ 	x;|yHգJ8_6xI!Kpԍ  .x 9߆ZymUӖMyTnx;|yH-焀}w<s	7so%# ,xo 7gL4^b40000 av_codec fO.D|gkh-\M<l	KhU۱±jONxYd4}x 9{C`ҒJ$᨞SaMy -x 9̰E1Ν+߰MyZx 9}nup{Myfx 9ex>xuDǭMyb`x4 9zy
^K􆰩8# jMe_<?l!ʓqRax 9].;;;WSJMyxL 9zy
^K􆰩8# jM<h:	8
ȜW"3k_<?l!ʓ!0jx;|ypGW*gG[ 
Ex7 Bw?7o!srIQrő*_JHUј?mBd0|)zjB\x;|ySoG̅'y6=,:Qk# Ex;|yBG[趋3E$rRjL8W x;|ylܲ5qOf.ѷ 	Bx;|y&F,~o^P k) kx4 9~rE!ņG&MejONxYd]lx;|yHJŵ
έκ"ko%# Snx;|yȑRrǃ%/>&ѷ gAx;|y/eUtD/I,ZvF9 mx x7A'=k3pb?ʌo40000 av_codec VsyX.LYxM<JHUј?mBd0|es30 Azq8bnoPvMX6O#R=;xZ 7Bw?7o!srIQr40000 av_codec bb׺(P$퇑M<JHUј?mBd0|)%7x;|yOCٿB߬dr$78to%# Gzcx4 9VsyX.LYxMevMX6O#R=3&x 9].;;;WSJMyTx;|yHJgƟTɽѷ Dx 99O펣@ky"MyuKx;|y|N18V1Z$5Yq F-x;|yC[6ɟAWo BYfJj~|AQ~rjqqf^z|j^zf^*Cl!-3Lkݷ j%x K<g[fˋڴx;|y&FW"vR^nZɹlQTx;|yCs{wqSyPMw< n,x;|yWwX&9dBVi}+Wx9 'VCjtΠ&ZRHR_2x 9ߌ?!cWMyx;|y&FW"vR^nZɹlQx;|ym㖮O$?ճ>F kx+-(r8*z5'\ٙG %x8qBT_f0ӔN# W*-xk`j`(fϩvEv&yߋKԼZxk`j`(Z9na3%mamaK--xk`j`+b
]X8oą Wxk`j`+ߢcrE=Sx4qa< 3x 4$=>֝_.xJ a@O^L鱘%j?({100644 oh_window_comm.h 4$=>֝_!Yxk`j`(oBo_~0nO,Kn*xk`j`(2\>qqS9 8xKO,:k_oWiD~ۛ/( Z_xKO,bcm]\ G	xKK$dƗ[#{d*{ 
ylx 7	AgYĕX-)őKJIx3 7	AgYĕX-)őK6']-eFc"aE]An_x8qBH䴾'<ё{eׯe Ӄqx8qBȓMSiA5.G\y ŷkxKK$s+G{sEm[O+ 1xKK$rZUҤvRQK ;xKK$sn[N{T7Oq cxKK$rh#Cxɚnݟ~ʹVl! xKK$RgYtԽiIO{<c y1" q3xKK$)ZS8aw^_H hd#ZxKK$R}^uZ]w
8xKK$QeK?;Of( 
ExKK$ĭ:f33lzf rx7 _kM+&U;Z%>jzj@s2>]f]!xu2
:xyIBed˹;O^~&ah``fbZU`>i	ֽE?QEi|JjYfr^Pon>k6j.ӝ8OL̥i;U34+߼\'?-
{SF{8r͜x Fhxb 4?s5{eB>TNٲ0.ss100644 camera.ndk.json ;.vIsE27)&p9 w!1,'!xy.FzSWH(z;l9F- 
FxKK$"bw&mq!oްKs[ x8qBT_f0ӔN# W*Yx3 aJix7҆Mfub,l
vr- %ʋw\Dx ak̃N-kd}לuvRpx{qB3{oEΏDIէM-4XZ "x8qBT_f0ӔN# W*Lx8qBȩbTYw~b6Ms S*x8qBHعlͳjksƉ 	8xKO,{i˼ (oG3.  
`xKO,yVvx=, ExKO,T 7yYALf x	x4ivE)<"TCvnO[?/ BKx b𢍔NP')0,2&ǑMczx :ϿM&I=Mэ3)x ث%I~9WHuFMXx K^=A'JGM`$ˑM&x :+滹5O0K[.M tx6 9N$M^?(PMG$sd#FDֺ}-x7 BmO$IC;Cfy'g*V'D{:sa͖refx7 BmO$IC;Cfy'g*6kj1D3ĚI~.x7 BmO$IC;Cfy'g*_^QMp}TEkeڣ!oB걝)Fy	vx l98r_if`M<ps7Zc!e?em#B"#R;40000 media_foundation 5y[Nϊ͒9דA?)2 dmRF2AAlx;|yHM,񎰸$ԗ"Qk# <x;|yB[HPݱa\MF ADx i"њ|u!!*1Lrx hTJmcw*# x dBS
 wEwy*Nx;|yH6Ko𮜼X#acZs΍x;|yȤ2R|s\׫vwVj{ʍZs^x ߏN溒5>*x gѝ	rR#():x9 -w,$cX6sSA+A?5˺&QM-@xx()vɓ2uyx;|yBܹ,&7^\T #Pƹ .x8 ߏN溒5>*VܺQxWjxsj?2!	ix l9B`MBWl.d%@ÑM<xӕT8ᣂsʮ]!e?})M.:QD40000 media_foundation w,$cX6sSA+A?5˺&QM-@xx()vɓ2<x7 9B`MBWl.d%@ÑM<ps7Zc!)Nhx6 ps7Zcfem#B"#R;o
|-x7 9}@fS.mѦڶऑM<'+vЎ>nn]±)̘IFx;|yB[HPݱa\MF A|x;|yg\_*={+M@!,>9?%5ޣgnJڍ >/Jx{ 9}@fS.mѦڶऑM?})M.:QD40000 media_foundation w,$cX6sSA+A?5˺&QM-@xx()vɓ2dr4
x;|yBȶ'd(S[lU,iq&# `6x;|yBp/Y<\T,wj]쥍sdax7 9B`MBWl.d%@ÑM})M.:QDēn&Nx6 9B`MBWl.d%@ÑM<xӕT8ᣂsʮ]ұ*Zs x.bUߓU.Z]*bFo `x.+lPbA^ӎ:ۼ w	:xk`j`(2E<<@(i&mNHM, .xKM(	usn&9~> x mAK/6ϝ޾.<ox[̸qH׊'zg! O-x[̸qB՘}]12v!'ב
 
 "x3 a-4NYܢqihlubDj`(p<c+kd<fx3 aP&0scB$wIub㢂)s/֟9
jڽI*x3 aw~dКaK"5ub@.>C jwTnx{qBʰ4rE~UK @x{qBȩv5I[AW2 ϻ&x{qB鳛8w̌g֟j0؉e ֚Qx{qB,;β9P8M"wbi Ѝ{|x{qBHRNG9,>)uXZ ;3'x afO<W7guv)Tx{qBȽΫ:sO|JR2 ,`x{qB\iD\Y=^^k]? *x3 a?kNH3jɶ/ΑubxƐyb̜"69lx3 a}9L{ŷubxƐyb̜"6fjx{qBS|Q	Omf0XZ $x{qB%}1o"}5K П@x3 a ?lկub@.>C jwTx3 aीMl`nv&#/ub@.>C jwTa~x+-(b.9'ѥMTk \
(x+-(%ҜYHY=	? 
Mx+-(#N5->3eCSE Krx+-(rTŹ-^ĽZ֔) x+-(r<1<ܺ^.m CP=x+-(R]s{T7\ ,cx+-(rjp~݊EI.r  ![&x+-(1uju}O%Za {Kx+-(2ߏ]B^va>V=<+M 4px+-("#s7^u<SoI x+-(;'ҫ/n[u2?S} w&x+-(QvF.-V?SJk ezKx+-(=?]MGuL 7%px+-(f@4ËO>#!$ Bx+-(rH+3zcץ6}qI W
x&ceYbq* xXr0Me;͖! A  U
Ԓ ?T[>u %UytHѦ}?_wg1eeNN삌`K=){̣>7g4"EєKJM#h$&gSr$w\cRuH$'EFA	Ȝ(!$L֛bp`%7$Gd 5J GY.?<|?l~'b4Tr4^,#)`)={$<
$IIH)=ߦ,gGdor=͊]'_ <S\bȥnk5=ȭ8Kla[׈(6,G( &QRJҚD8mh,E,(Y$4!(e\[<975x d&R;gMg)s2I{Q"[rH&L7djNJjdEcG<	࿷UZ0GdIɚjtRQ֍"q+P=O>{l2q*J0o%_g,'eZYȢ;Q@Zy
<A&eC	@d7L<g͡&P#7Ooֵ51HEܙ/HբAq0[k.p>ڲPg|Դ
XtQKdfُO~,3hqQ-r~NOD>~s7Jyf.ɗ~܅XӔne˱E]7KAޅpBt#!/=IGxF~*5+S/yt ՈxH{U2ƴ폧O>{|]bBxȻ@``$P`p+6<T}V6R&}Gl}WU,@U>ȌfbӥLfj󺍺*So'JU:5})bJ[mƾiΗCX./"k_H1mܥpGsH`UYM]5k(FWgNk˾m-sTeb]_fw:Ԁj=B<)ʥņb
$޸lƭ$fh\RRumȂ_s^#{ʝ?V,+囖ؕcO'5-վ0W:UJipF>.ADsQ~[A0٨U4m]*b;vXWeQVJ0.@|/>+"Լ?\b۬
)vk;N*]Vh؅;{DJ;ض& @7;;P-!-*a4Q䊘gȁ1p[Ns|é mE[LoB+I֨o%F?1nS%1|mD$<;}_5\#rƭca^W3ʘλo*屋J2 L~J-4iC ȑ`9[T(fmUa0Dqǭ\۫'>VlW<.ZW}2·AX=`nkyne,c[Rx7zd,$YѶ.]iyz255}+A)ý7cHWba@NN3q-G+JDpulQuc,xrRĀffQE9>8|<Ɓpj G<֭6G.Yzx'O;љk-%|t14dQCQ6s"t/@#OLgǬhpz`f]!kökæs7vW#a[BLIsg$?p%ZJRLS_b΃/mmQڼNmxek|]jΣjUeI%oE#_
_juXU=8m<ɻ$Uη_FEW3Tn%>@½=Ǘ?1+x]s8*MY۲*,;-$'ݚRQ$da"Z>ȌHt,sj&Hhh4SӘqMF6zxX4+ZJ'
O!m\:)RG*RywUQ俾Ow6>N厲j{wDN)WȅbJ(իH}Y*TȿZȐߨ}ij&[ЏeIUY؎IwwȐ*S? T0ɱs3aGc+w-(ye[mhWj}4];;vDju2J5Z+a|07A`R>>P;3ͩƔ220)>r󀼗u[wz5J4zTʙUlplр?Y]wȢE$ddf"*V F0ݢ&vΨ{Kc	߿a6Q>d8c;L=9&:9PEQU+rԨxguw~R.$b?, BugNڢp41L 	ݺ[~g;9{p0~_][nr@Aj0˥և=lbF`zLu&c{SX۩pC/b:(JͻA~^\#7za
|m|vK bL[*­4Z騶+>ZסCW D/c_TDA$cA[Tc@Iġ0e
0Yl#SN#gg?3)}̷ggwI<WFs9G)BDO.!* | Eࣜ·?7@$svvy2#H3r$zx 'h1*\8qOj5M˝*׿h֨	lA:<#^$k $3UJ>ҩֹFBĶkzE3ji}zWKK%?& Q6}R8!>aqtVa3e<'
L	VfO5dꞷ;ic8T"8R`Ρdi|MS")pF5qP߻0nՠBy
j՚)!w~d9`Ժ>V畂fBiJc۫VRrc)U`qln68q75`^0e[Sð+8StZ9!3Ak.%H)َy#ڢSX|akTQĘ_<I)YôMԚ6~`,Д	.V\PMJb0
r)u-BKWaުa:-zT(WF)ԣh`"xjLTi
iK3i@ڸh;	scoYMAְ59~UD9jYC{_*UFB3'.>psE:68s0Ni?	I4pn MK	m"{.]v8PsB鰸
300͙I}vQʽK15t).3
䮣$r_~
ɯ/HjD,PG2k2|6]Etc1_<}#+6xLtBw{{;W@h`ٌ} oUfTlI '` jBC4Ŭ;=Me- g4f3o6`袉UnDbjb1Hw3Jy8{	g@chq38}5N'asN\KKq>0440w:2 T0<A_;Uwʝlmh-UَaieMF#u03ޠjw5{Ln_i\+k6nb6kRRxf?Ej:yu4&Aيy3aeqQ戼T@{PtrmRXzc/aj!Jy,/8J|f~Qs,l`ҍ=]k]ܸAdnc[6hmuyZk S:7ХkM|y,[bU'[se](t0ʌY*56Y!3n'J1:> XQk|VcL[9w\t"]v=>\{]X(^GPrхϙѪj\>u
]( ֍TNin2Kq "_EkZ67W[_E o`v-R\Cێi:Iֻvl҅
bm
l;J˚7%RQ)BoI~fLḪڤ(&t&fu&pgRwrK.E1Ƭ>-~]=G,`Ш)wIq0a1%i=:El,Qϻ{/K|KuJYq
BƷm1LjxǤ@(6|;vXG~7%I)9n%!gaUBӿ~>S
i'ts{2jϮ/:C^֫I7OT;mu>>&-mfbN3NQ콽~<.aS=7#"3=Q 
թqULozNx/'I84zÀ:/sҾ6Y(j)NGYu,ƭTJ]KTn+):@Ͽ?Bx(,%6UCpk@1:0tPF1,(=ujF
w޶gYx+Ea^H<L(e4TVf.#D0&]*/2] (L Ƃ
_D~P`0t 4ӞLlfv3a)KVm%ML:RͿĴ㦵- c3B/0d1!+ [q&˹Ń=-uCiF88,e:$,Ħ|DM>OnȤL:*j(b8Rd
dӃ$4ۢ1%l-؅!#* :E-V69Ͼ iR	wԞ;"K`iR>7JzI-q=G4WH,𧙾b(7?)&M#OWHs0u*C'3DTO:'?	=哴ƣ%ϥ>(݅MCD殍jrnnerG(UN#Tqk.˻VTrs'H8v9X"Qn"|ج {NƗĀy9|kᛧ-^87sٯJ]O_veR)oy=KͱRQqV̓f.iniZ,ה!Vr~RXѩKY.熚ߒ"$)D0L7o"Y"+39&b}$wSN1?#2MLO 5.@MxpbB[i޲{zӻ
&/b3amJZ2q=Zn\TK}BL\ρu2c\fWgR$_mb`H@iˍi)M"EWm(d~(THW1}ZuO>r,N9s+,95Ǣ[`qbg׸sP?
`\FSS丂+0b":qa3t{|"%{̪ "_ԏnEU@EN$}<UVj#2xs{_bߞ@Ww{o2QϕPX$W68N6*	0ϼУxʮ-joថ'Y<{0O]{R00Ц,܇J$JlA:A$㞹c$%mhf[~
r9NORTJXg.#Rނ9@R '3#<z"Vw81{*so#	"OLԉKWC=:`.[轉3W0v ?;' ]?0<F' k5mrK/tȌYpr/dL`
[cJe[x"~"rʱ('9]KQ:|?~ vkXw
*mb=$7>26AL[m*
Čf8Y@y6;>X4V{i̅(6[}G<VmBpk]7UKfJά$!f:Kͳzq2)"\$̕V\̶SMâEZaK9ӣ	4d%ܖ+Dbxc3y@18?0iU"I蔢]_^゘+={ mruS3$urygţ\R[D2iFQ1xyd~K,9VQT
027愽tLQVLGCЗ/|4=.?SeDϫdtx4%-ۚ!0} bvb$#1`قLļ*to#$pz*	hpooLpDO`|Q_DUG'$ǈjNoŁRQ5GһgRfL\=NXN?wXB|%/)JKL-k/(DNǄ?fiم/z[PI(R:f-; 3@	=ŎtTg(iq zW8Mx. dsgrZ_rxCT#PKzҥNXs +"h+&7j\.eYZ6|t%O>O1=b|?MΕN;¢[scˏ䧜JRL~i~yK^w{1NYA/Q/1?MD͑|d'p^.M8e7/@e^~1%0NFcLrPeɸnH0׭{j=F;Ɠ,#Yu=oAO),Ra?%y	~eLC'饒O@5IorgU2'"1ZSdf@~돩=3#No!4R`\0[&T~[h$%InCͅ^ =x*Sx_2@gyS$ " N><G4`ڋ<*-7@%TnݝJV/VSGX.!ox8qBY$\o6ӤBt iV-x ZȀa˜Mvkܹn,Yx ZEJ^p+|Vn,8e]xc >f:_r??v*GqIߺ0X<ƺP0wZ3Z$,kE3/,N=68/rtxc g-8vmUU&l*GD>wM^1LqçP@[d/]!'*E!W*1h7mn@,ex4 g-8vmUU&l*!W*1h7mn@4cb(x;tiuެGsZĐw Ze_x4 >f:_r??v*F,NGHP$;1x;tiuެGsZĐw Zex3 @M>On7ănTF,NGHP$t[x;ti7Yn?WDx] Ekx;tiȅ7f_f!lפ F-x;tiKu]ίF_8N0S
 
i{x;ti>px wd#83 Nrx cN	5*p"x;|yHٺOt1l,rtF9 Px ,рR7'y*5 x;|yȥynuYuC;ұZsѬ.x Y0δO|͓*t^x jNhFVKl*E;ix[ƸqB
4NY5M 	9x[ƸqHYLVĉ}w~(~vDH Cx[Ƹq}߅:Z*kL97 ,x8qB}w[mat;=_Ck Mx 9Ŗ[>}'DnӑMY00|x[Ƹq AW&+5#sKDH ")x[Ƹq-]$g4ȾUۀ lf9x 9L%,͓tMYx[ƸqB	ˍvqz#Z7jm V-x 9E\,ȨɩoMYL=x 9O)4Q;TĹIhMYhqx[ƸqȲ&k+=uDH rGx lqS&d:sx3 ;62+..1sdO4lqS&dZ*sx[ƸqB	iܶwzdܐ5x g16LVő{+.yx+(#OcRsQ٤V\ G
x hHn {_l籝)n;x7 90@mVvߧ84%NMs[0LJ&XAdXx;|yBow>Ͽ<ީgb 
ɉEiE@<(!cG{ËI36ͩ~y}|Ns5E#Px7 ^1ݶO޷d.rc=OjDa1`Fx;|yg\_*={+7ja E/+x;|yBH\/ڐ\So-Vwzq&# TVx;|yCHOϵvh,zF# Wx;|yt<<7X+Ud@F9 ~Wx;|yBH\/ڐ\So-Vwzq&# T+x8 9}@fS.mѦڶऱM357ٿA2qx 9}@fS.mѦڶऱMyx8 9}@fS.mѦڶऱM31plff*Ok>\2pex;|yC]jҁD:쨨,;9y
 gx;|yC]jҁD:쨨,;9y
 x  ,Kͯg;S<Cx9 ,Kͯg;SjҖ`++CxMUޓ2Hb$x7 -O߁78$1`%@e5n< ߢ0e@jx7 -O߁78$1`%@er5#Q6]s 0x7 -O߁78$1`%@ePލqÒүh>#x;|y^Iv/<Yaf]}+tYOx 9ٝGVknNMyn-x;|yXLpԢ=վ\<.#nF9 ;x8qB%'lhS·e Yhx8qB/spnzBN%xb< vax8qBHk|5IVX& _1x8qS6kuDo/ N2x8qBHSGK`eJn2y Y]x8qBҤ/X̝r;>&e x8qBɯFa?fX<,.3x8qBW%^)Gk4/0L ",x8qB`Ovϸ;IЙe Wx b)>1(A70v)x8qBH;l˕n'q&N, /x8qBH'wsW}$dde s2x8qBȿ\oA5zry =Bx-RtGj+:<TjTwL< x]o0p$n liYҠrc548NJҤ&$b}sZ}_ ϊ<rEI5eTp':k8 |.sp`\!7#8w=i8vd7	F"}%c7vIx	H|']I?2pg,_`s%'TsVAp'
Q1 \SҸftt-ۘΦPN;}S&M-?7xUPX,zs^@XWYIݼHY^)ղ/+ϛw맾;]1q?IqT[TeYT
+Я[Տ^9{A(
#`[p/kJIU؀*_$NXR۵6yiY8$)k"'DnFv6^콨;Gk\c:׼j<<>44I$;D\ƺCo? =Ȗ(BBSym(>9)쿧7;='x lqS&d:x[ƸqBP_ɷuWxvJ (xYս7|pn*+k$={t@O 'WV=vwKmʄ &!!L!'h$v*_[UjWJjIƖJU{_N`fZkkn`f qF%1@ZiÌ3H/'%,w־#w'e]BxxmkNڡ5o_׵]=aPP#Hqr]iIk5WT{<do7[mzF״#L}nL{.ۙ:fuM  W!W	4YH%f}2kel5D5mM괚׏+̳lM'N-ioꕻ8޻]ǴFYO%W_OW/hscVNС:ʝPk{eRǞ\2C#p}?p{tWkOSSgan9Kn>hVK6'zړ?O?{+.On|6~닏^ظƧ6>9~W9%Wz9w_lz_<aGw%'8Շ~w܅/k6ͧOcAmWfG/q6>շMW?}n[Oٞ5VƧhړz//^{szՆno>s{L:__x{aIm=O6Ͻ/W>7w?|ƿx52CǊkqmpqL*s/]= Z7OgqH0c!R3_HW-^Gdca6Mq7alt"~;R:_҃=ק#<_8X۝
ov$ z_ʿ`+bS8!@iD 96bH4%PF2`u:$MZ׾نZj~P5`3^+ّ/l̵7t흟oKoэ/|cjLe[qhp+FaRW۹c85Xo._TtM:vmp\t%!#	H*j$y8ιs ھD_ ؑJ?3O3sdR?0C&\"AW〫X	Џa9D⭀.<5Nqc7HՐ%qg%S|;Έ|ow -&U]xCCa*5Q
qqx*jA^ ,s݉:Cp>c%Ч=^pp0qn#a0Gj3op=\	I@1k╍^ҫ[~a ո~摓YFΘB v[SL3AED^AJ K`ID#F8	D:ke0xIZӹ,#Tv-A6m; z㪁.DSϯ~vo`cgHZMEFڅhl!/,ʻA\,ʷ0^޳	Z"ȊIDX/6q\{{fںjw(AVYh,7w`O2r:;*=w! 9;&1%j1w>uTV
`r_aœq'	G"<\^Sͳ#⎃1zL*x*I&`dRIvcdRIOOdd4%n*Ƅ]8ϤDg40Hji5R2q88(I{ѩV[[퀧Րf}`?I$fř5j]>1'x^Hsw%Z_iȦB†l[Iv{jrx-8e];{d7N%kaS{7H$29J{O-H,6378.W	pscL$W\ÏwJh.L̡l~Aۿ?x}xx=@x82h&D@s^acJӼ;#
j:uS"Fw6{w@Tvi˛<{we(J#1 1I愍_;@9x|R<~1}67B|y|"]
8FCD!('QATkB1X́
 K	S°dʨ89G#@ky9Y	z^7Zk֪akZgHp\~FUҷ}ѣ[y|++oqa5BgcZNx nulOfbRڎl[^?w}W\dFq29?\Xvk8R<Ĥy0уLO:XS`"}><܇\!yjXi4J9UlG d2o"1KsF8<x)9K	CH4K)3ŴZMUѐvs\vc]<g3*ɑTiT
VK=jܦ,NֿچZk݆eo]E$H}xlWуx|:b?^^z/UK!5&iMS'kh
uJ;Z.RBƜD5	GM GcM3Լ_-u(9vs[d2kL4ޥOq	3'N7&,1ZD$࿽oI+( 
if /c5(sQ>oⅬIV&;nK蟻"r̚`mN-a. HW6VY|ӧ[L<9#qdwcJƜk[o-tYXqxVC@|YqHS]c<:Fu<4PZ
bE-KD#Nr|ŤtLGZF3|%PQulĪvzar0-RH	8B`^z^WYg&O9rwAAt0ύBSX@A2#B9f٧>x12#iKYƱT)dzgZQ21ФkGm=9JNSȝrRY	Q?wX)Wh;OdC8f@&0w:,aFELQJ7 dCrrxhOk>[KmЕLRFڠ)ɐ&o)LhTxJgVpl@|8c:2щ'B3VA LB,>(3QAPN
AYD Xޖ)*)8턾:^n׬m[-F.{ĝד;n0hXfqH.=
A61gMSdWI&?@ܠ$MQA~|&;	Mg4|:t^0# d{npH&CfRh=1 [8|  @0# їF	WIl-V7$7d&ƙlD2g[,2Pd&ۺ&FEPJR, (Pz#P!@k3{
06hzQ*&F&?*jIx*f%z
|_Ze|3DH2f" S-Z#h+G%c;oNdWF[a"9uP̲
ظTRy mK5+DQTCjI#nU=+ْ?;,g{W~ƕ_yyvwY?*li }lH=$	qô %yBZR4^xМzB\1qEr%i]m<),f
6|`AhTX
5 9{1w%2A){9fM`X;:j6[])<3VͅEv*/eL8ѩ(0\1@eڶrZKa_Ja)FrgoSmZJ61Lt֊#+5<WfÇڮ֭!:VX_k,/Kf{{Νn(;Jjf4[$Y"k۔e%	ٔuHd:خF3ƴVb	.: 'W*L1$e0Nz*B"$504.M +G|>ع<V^"x=Y.m.#u:=@bG]vsuUW}LLfk<XF
;2Wqd**~,~e+2>"7A>?{5o%Tv<3
 A+:$ 9YdIHl|Ɋ*IrZ; Wܰ\1F1bn*v`J+d1%2SPä=x_pƢ-Gι(KɞC
   (	ʉjsh1'ΧAiʪMrp5hl
.j3tz,,<8n_AvѰa_2FHP 	G,T xIU0 	8bK掙xu<ble*xVX3ccH~m\^-2o~Y1IB{5V.5k pr^:Ao>>`X"6'?RT3n+ݫT{rzX&
(V"`6QLW# =ɻr]g{Y2$&ѪXK/UlP7kP5(O0t.DLY}1ynGO<U*ecK}΄K;V[#vNwۭUw%p>PJIT=nٞ2!go5,f:tP%VA(WW2Hfvt`UPȨYk/	O:/kSJLhXo$, KI`%5,Aw)`*Tx}Xl`Lg%k@Ugs::Q5wc>ēL]T4޼vʹZ'j~Ǘo7søe-,ӈNS"D>[KJJg˥`OXx!w *%` 5O C  BZoTCՔsUq;k]::͐1F,4/?᨟PvRvw7
	'b( -וPe&5#à<WҘwpPE9	G^Tua^PU`(Ƃy1*1N5,ϒ["YZL'z1a:k`dPdm,@AΨ:-EFz)A8AƢhTCy(d"(&ݝrb  %QHQI*9gyK)00IőXo'+%?)"TE݋<.
E(TnTnpP*10O 69<+kEhqkJYxa~4	C˝-/ƙT[
2qV%l,=V{cbί+nCp5,hz;Nj4Wzo:'3;$"BgFG'|@We	XO|\0s<v~ɣC	!F*MdS@wX(b2j#-H^BcѨ^IJu6>}yFQ#'Xd麗#`*Γ-ǴRg_!~7ҢRaLgA4XQmh0oWIk+/gh7L^DBv)S2ULv4Z"%֞*9mt 8R*~ZgVtD>QizNw=QǊu#ao.YLt4dӭVlPCqS"MnLtT3h#v\.U^玱OPN3 ̄X<;AP$l0(_Rh[~t3sH|zx+|l_zeN*넥0d_mnmj_)|^r3zz?X)~JQ8 B!u	^B	uLx4A8{v
h<ր0bt#eLU'RvyZ1<V ^s!.4< 5ϫfàN+$S7koI{GDۺ.JCϭ~e{,d˲_4ąP*^DJ)	
pSnù/&BU)*EY!j`f) -Ѡ ;`E lKDVNݼW?XAP] Srw	!9l<'
C&31Cz[&'w1D&Ë?q21d@	c}as=pqլQSN^r=)+d~ HTvi,wiQYgJ88ͼhۮ$¿o'֭K:g;FWVsxuՕinmV;[A'\
w~;c2ld.ٿXyqZd8jcqKzd{`ˬC<+%`go
Vo  Rj<КXmK  JƸkZg>Ǩ2xRf.Xΐ3Ѳđ3E%sYՀSђnAb0UA/Qs+ T{݋>Fp%,_T&,R;RM`2T]̃T,F2n9+܈4x\n(>B,-E
zEV̤%Km6@?wu 2,ۥRI})&UcٳDٱs bקA2"3d']u.Z:B!f*˥xbbmUa>Ȳر ̤1Y<:TUxӷPĥP"&)_x7t%H"Ytx-.鼘Cd%MSwTvxaVzʹ`F7
,;Wn$'rv,\)LNxR$有m9x/=-JNSzvR	ҧBir;k^itjVw1LDUդrvDV8äUJ-
)'P:-^@c|xVZi$Xs}?xp;;p]_:zl#}|}b,=N_njYqFJ%GVg{Zh/%"G8ľXgL.L'y5E@`.M1yPJaYl{H{0rtWm{/}>x_^޺8&Цy38h\x 	;zbIWmu:vu\68sHu:9䷠CZbf(5蹩EpM2Nk4W*|h׷?~scGK'n>H5\KP  yE,G4>V]eXA$шϊ	8@\bpA&XI΀*	wZ.+fJև=^a@5אrI]ȓV|\3hNiU؝+w=;_vd=EatjJH B[+sHbTw+@`<<wRAi)bb,4-Q#qI󴪮Ҙ@r]Y5JEb7P ϥ4,XeJ
m:^禺L.C*<ӌ"<hj՜Rawy}h8Qo#E)_ \દ)N}kb㋷70<1sWeީ,PJ{&BTd'VRr5cBFPcYbZ>AJ28ml]?wuê֟Y
T1sx/eԊEeА;vr]@tbơr@RKAa9lEGX1FR.}B2yܘQ9+ȯ_3DcV'O	vW81~Ԡ7g#9x)P&XcΡZO$0jco8Snw\ѕuRwNc9N21 ƞKLajerüwΩZJ/)XU:f"ˮ[jQXZLID^f)ts纱vQ}ԹL;v2ť;f&XSI'uȗ&aݟD5!1@CtTu$ժ rH䉐(Ox٠!PUIT$Zo6]
qRw:{Fu:Kn~{Z#ꄃ lDneUƀN={<e8>[a^_IҥƛsOo<qr_iNwۓrv[o|^{oQ Fc~02E<dI,i0C`WPo c\J#sE>;pn0Q. 	51[LRrj݆=3m
THgE0-+ɷO>׷/PߺXKڭsq:/C @5 sH	LBQbYATUsن.p `ՠ vA5fcBcLR!$rC1*+?%c}p^ǛrCZ;T*LpbvjFNqC1N//lг4C&1&Opz~!`:4I2vR~ɪ_eq)s`IB +ra:ȃe@7GM:A̜!I51B!!9QyAIf<P:~;i	F
o>"U>x^z?q郍ϾO}_:>#X7~.wˋՌFN7>w#q@9!rvћq:ܼwz ۆ	?stnQ@_y|svxVFB )da&0h
hl:#$RM['i
GZDp6AcVtaTի)Ъ0ZC̅yO1oGv#+nևd5Fsylr[R/#ee3NE9ퟀtFO;݈gpɔ3GzSQ!E9hYnsW4dRa¾LYiS{ 22
MR]kaR6ł,bRX@N4!EzAc
Qh,DT))_I1c9dP;"<q5 PRxa<̝XIi&e$PMIM:}2gWLѯ(tKe?N[~N,53UShimZT/-Q\TQf:NyQSQvzY&bWĬMq^\_ne{%j-4zxZD?:EhPN
$]h	=l_w.Xoitvfm;;278Wn"ۮRׇo6͉i7^wVk.\5	N+\ni'$,G<6w,Qn;[k!<6Qk_((Ŕ*<hII%$Z՜:~i*kC+omgvf҇<{x`5]6%4)uqdJN6M(nZ=M6IE>kϼKnC(4
(	c켂)/!&܎9|yDQ||s:z}gȱsw5`%ƾcjCb0S?j|(FsrYRT3s
h= jW?'Wjg\{k}Qq3sre25/!jUM2k*ٱ|9cl_}:<%w\EXp+N(B$Il%FYw+d^J
:?Ţp/l|S?Du]a;u~FS#ݫ(<(-x,}X}ZsĩL"z4s΅cc9 4`!>0'Ơ1\r65 8 .ag+6d5Ġ%,5@Ry4!*C-/ m篘ު.S͇+toyZ\]mYO?cvK#={`
Mei{'Y5tU	AljJ2Y3J$ȃ41h;aSD2kF'KCK dt b	t5ڲ4^t^G|nO/|,N4&%9a(L[&<1H!Xp'OuRb**dX?@'EJŒ,!@$N9	l4Y@&B8S3魀@jH*ba6p`,ɂFb-:A@uѯ~O\{,<5xK#JiAzg}mRLjU9E݅[j{0ZTˀWC  Ԁ{!@Kύw )@""\HX괺-guPWχՊ_9ՈՀgdUjƭJm=Y?Vi^{7.=?_¯~PT(6-Kdjdqar}=G_JU&JP~Tzҽ6ԑܫASi/^ÜA^/LE#GgܡhpRv*jl.i);r1)(-\{&KG@wn<7q ]*5i0^Le8['X0c>u+Ni_
rqBZ3)!c,A׵aE0Ǻ1S2Ǻ[LАFİI4/yє*zWkՂ`$>3'ruzyU)XU.eS<%'J^}7xѶ͗_uH"%b4Uq$1H[lpct->88x1>z"& Z'Pf**' s>1gi!(KcNX**xlQ)bHb b`PP1)9 ANj	7ɠhć㐟S<XgTvh֭0])7wi|DLωN땂
7f۽'=2$Loy  vǃ;߸㛯k>G_OAyvpp`Hw0zFz,ya9SeIvQa
)O{3"Jc9v`N<: Um"V7ddE!#4aBsۘEbL[1s9Ă+J3C1Ij^Yn[mfw?|O" wD}eCOuDAdZuVW6l՚qɩII,vޙŎObgdi B<vRw7 z9ؐRzäc)8Ǝ*D`!=0*hskFBQv a󊝴(1Dc<:@ p6U\!C	I\S8]p!|QA%Șa6RF@^3,I0&l>>O䓭;'l'{G*]8x;jA=t΅"u8$Mf-V*1YVRi(++ " \[a=@#j>V11QJԓɢtCF|GxQu/1c)&pj QAbBLykF)g*Uv:apQI+%"Ǒ
SZK*뙆jp)GsU}6	MtbL<08*tx:1"923dT8J8,HhiR?@X-Z,Z6T[oQgӍJ2lZ]HTW۰
۰TAǓIdRa	5Y9.u`,)E~vmXpƳPAXCb̑
ith#t*~Xys58)(R<Sg
UJx}bӫ/<Az O?BSjgG;6O[@
D؃ӫoq]tz)y]i?t~P+1Lq4NLAs	r`H+͠
ᠰH(zL!h39gUSv;z8V])*/'cqngP:OY9|3'uHr!VhڸR	-_іRcn 8X	^}klc9 ,#y5:+Ǳ/=eiqAd=Xsn頂|aQb*-N(Qp*gVg(1c} 1,,5Eù
 Ra$!,ͧqqcGJO0mJYi<p9X6.sLv06in rn`B0PQr,XJwJxR1(")^[R+s6_KUɾSYF^TO=WC. x.4` r
d#\s{w_:Mx4`zdih1Hf&[ c_a@A!RY5~Z,8&s[G䑝}T<lmb IgIR#e7hteg>GtNCIdR}>UDMt>[[ov@@k3aPJ kZrbjv[rŭ~/mAoRM'5c$/ZY8.T 0%X#7[ 2l]9fwH $c*oD̸su!hPbCxML0(SXR'6FT:jZQ;T(ELeu4A\b	@&v\q5sZ\x̅6(xD*|7@;#uX&guF[
&Zka53 ߘIY꠮=2+HA!Teqm"<`>P0ehiWV[,b	')O9%9|t5Um3*W	QimQs0h^`hdY }11'#ƗPTCM2	axe`<$H`OI|{,dh"ltcNo}Վ[i#ZYpm]f?\/mRm4L};Hegu7_|˫s#&Dt[ksWlwwA׃mV{|}m#6;ݰ~⡷h>qڬFdjs1*g_[B`C锤zb>PCG>AZ,"|7X,?ν;@\z_~yxw/_;Ե?ev[Vo=W?SpeŵT3Z?n{N5fz/>bφm1k4DZ(75a4۩hڭ_m:y < `ɝTa-F8784dmTڼ'AJ߻j^Q4edIX')EF3#M>N	-(8JmmHծk/EzB(Y,QW	bά(Iί̅&
A|Vrւ8q(w?V'ΊBkG2B;) 1' 
Y⤕E v(¨F	.~ݮ_ӌ% bm§(Q:ͧIZj^%h->.:'$6Wcͷ޾g6LڨRIÉ,6Ӝ(Df)tRתt[+%TuM5\#C"ܠ"LS2ѥ}}QMWZIřeк09GMTN+BbUVz[0nsɂ;]gyuxT&<GTf*
+>{'\ E T ARo+폐v?H)qTYwыJS0[j$:*1	/8SLy"w!T>v,wnQ YE@!Sɵ(cCNH
xg_|r߇K5pJ-i5;ݮU,M	_Lx:T
'!11L1E*)dIQs2dd xqKndiVWlWЫcBɷ>E`ͷHI/iѥݙ]px2N;F뙓&nòm0ݹu	81f,aniO/lm>d3oTdR%3LXip7^朤ȜXx2>p"{Fb؉톄QbŬ );č nĎ5RuW\:Vw*z_a5骥~t) lcнT=B J5;5*񞆻SI$b ҽ1xT띕Vww%s=û\?b?W?XMcCы;2}INɓ;?s+L`0gVB̅&1xbٓ5
Dč\
q")y
b1"fQY(` [\Ry!C'z;by1gkK;s^GPk- a0=W
3hA_JY42[9׶%	vRrA
P a&XKB؄PɄu~ Iu̦0^{w[-yjkpՋ͎~(B⓿_SOg5 clkjxO*Sn05=E{N_=8Q!E`d*2u$0VI`M.kDBX&`X=u?3\5Z0`8zpej	V#B Z t\1uߟK-#\P/WQ)}F( ZFEA>P#.Kd\$jVK/SNaAy~nD%J55l^替Hڹ7[=VnZh3kYլ܍}2dM^/Љ~
'PU2jf N8҆y̷ZEB<ʈ8r]et³F&4+v6bG7W˒{5-1^)ikcSŉ{*LcN?#g"%woAE`))f`P)	qZP	 j
XCL,`%*lVf݊lbS܎|Tk_-,/dTr=}%+{Ra2,XJ
`q̒oV◳9NI%lLCix45gĔܰH5XtwcQ갢 WҗW._G^Oq//ƮĄC,dSnz^	BekX`OKAZ`T8~˾:X4EWEGvYQã83mL8RTTpRc=0@JOa>UC-IM|X|/G#èk^h	UЪi{Kw7c	O7Cu` jݤ/Gjy<i]ص?3R0~ : b@11ex<[aPުk@P[TD*3gsnxpGP)aTrtĔOA['caFjJE19m%̲DUIbfYD<3vA
 ʶ^hRP`lj2H;	B; 4,CmnkD9}'
b!@KH$ŗ{i0o,6	r1q`NDCV ݜjDv99:Q)+%4YkckQr|Pk4; g39TrJPS(%Z٠|ixfuB)sKOi:I:+itƥ/Fj{ͿOZs3I}wm<qEmQ`KȒfi*m޴\3$
!&@oRU ȏe}ĮB c,DͫF[ zӸǞ-޻bmk.`_KMT]/lDu)aɈӼ<}ꕚ۽FPyv/{AYW'nMp"a6Xh Ƅ[$eз1jL&F:qWvjjmt?۠c9V~Wڭ[\p@Hhˠu /5wcŴ|u>)M<h,XTB6&*	Ao"[<Bա%)8\qeAM!(KϹDIyxGAqg44b}̢3K^-,䞻n&GV:HY̧-M/}Oix6]V:gVr{ͳéP~2Q㥔ܡ!I*CgUҋ2|[-+2_e8%`}Ov;_q,	ICXg3.  201$8JP务 (̛	P QU:?'i/͠j30jlk`ϟogWm/[DGݨ4{4'S)$0ZY9X\L0fw:I(P4@(՘̗M֪Aڕ»qjjWm}nPqԩ%	2"̋ӭtgלm׺@Pbvh,t#9vd .oo^&ge(o&@h), /@HcZδVrjV~Ƕ5:OR?M>bv`VYP<!VX*0~8:~VS^xrӴ!-#3"vVpJpRhkOT`	#I;9oQ{BU)ۮkЍVpj3`K}9p<D:[u]wkoi($icn{aIr{VUZ]t-JE}̰Ƞ)3dGn˪f)#8ľV(]vhťܹA5hlcNHr*<Zu@j4JA@cEuЯ9vP|`Q*C$EF L8E
KMݻ=Ba dQ۶%KVȳ$h3ꯚXZ/_53	BjőAz=lXD	?BP8r+6Tqâ71X;(Wy6僘]VW2'i4}jd tV?'|{JoN:מr[4_d ZH捷<آP`TgXU@"JHQ3c	8qB):'XNʪrb{,0cϤAt̀$hQ"X8.l+1)m@4VϿ>.	W'Xg/>S,ߙteCPW-a*8G0QNb-@Wؐh)0Ja%-"c!ŉ[P ԌB#Dd`nNͭ[2W,*9X_j4}k|xHQk뫮=V3In4FkS4bAJȜ8ko;?aW6/ep!8k{ipryb/?,H?[{km}ǧ|˯ǧTǷpoO O٫O^	O^WÖ$/|R)lsZ1bqڗI=UP++ 7hvPJ󤞩P`eMdUwg&pLLr2#@Q1-\YWr(qhdUc4emۧ.(sX"X1$p)5
!Ym0o]u	d.l%!fRNT5p0B%Z Pþ}صyQ
ޕ_W> Y
t^zuǮώ#(NeC 	8.Xސ<3Dyh>E/u "[;(5[fUM[Zc#ҲVqqpOh
y% eß#/WbM%{d!}`dnB	UTـ;N	D;BsYcn.]~iتg-ѸKbU<dP{czPEsj4xS-/(XsǶ.Vvl/?9w{zݰHK(YπѬgy+e0/
8yۻv]қXAH@+9
Jj%0b=xЪ&&V)x'<.kFXo0{lܐ;nm<bJzax%T^C*6+aؑe׽Knpc\>[Dǟx37;~zh!~k0	0#z)|^@Gm y:KL~ja Zha+o\ }E°FYT5:! |H
uJ!v_UifH@jK;ڵw~/~W'EԔʔ ~u?|ݸJњ2RL "%cb1d-Gk
Nr'Lcꈐp1 qzkՐ96[>gmKyUa;Jثin/Qm%%sGj/A¤yaL &JĄJꝌ5orV]%ű	.\tg(`^zbb(5X	FX_2͜Ⱦݳ<DQ( G&:+R70L	C@hAceY,§PH-/a'Ydަ Tg( >{V{WXj[޿o?^M{lN7Fh; &׺[>OOK?>b T47&;)'en<uj#USᚌO!ھD_fo(F|lx'J/uۛwSf^3cj$Y=H3 $@j甐W5d"cg/l=Ĝ0A0JP.}W=vbXWRLc.)ȱ"b3RΕD@%gZG醫:moۯ]&Z.r!))Ԃ#5A('%0`F37{z/&:]*9OB~@A'(k/_ݣ6'7}gb%h->RjVEE3TE=5>IKa]lԗo\XpxiG1{MT_)#W>̾_ꌏ YsEǾNS5tu @$zՑ@:eET'vfVwfVVWUWma*rϳk=+?n?L2[>zk{?RM57ǹGv=ܻ7pz-;M9 'ŝG(x](y)u!8
!a\Z6R
XhCd̀ySL-p.o	"9RuNb7N>7`z:X|g/ܥ0|`*~5=7):h௄r&Rq.,ojl<tѣ:	=R-S֚n)^T-pWs)[zםaI쯿"of﨩0~)e/T$Gp!cEjLDq,uxłpV]ʙ:~zQi&Ue*5mFq<õ*UWWuya[z4on0Ɠ?I|e2 / wwg>;}n^-ۯ{% qphw76}_[KF艢2x鎃/Jg~6z7W.LQZ';8ݥiE-/(ȸ5.rCuq9n|bC?9G+*D~i` i/m B]HV#LR	iőhL\RJ6,wf<xcS6׍b7E05o/fy8ksQ+]ݖۅRGOwZE K&w>~AUUkT+0x[9MXR[9;YSjIwy2&jN+~$k<F4V.`H̲zf5GǙIї]eIEzъ3*O4IDi	62A,V+ukEl=UNJ?p'Ӌ\RoL0`Q{-(j5QRX@?!(ynY
-<Igo@kʒ"ʐ'5Q(v,8$	l"ˎn*j@vP#z8{mrOUzV4h%n]Ws*(=etG[RPo+hDR MᐔS #=e*F4eKS{/]-vIђ9\)gB'DN{ջ*L$Iφ~TIʃ{;uVI:XFF$ptTeJ4Fy^D3JQKbR1<G\0%E3g#We)lSz\.LwdJCa.h"kS֭?퓘<DWVFHs&
B6X{@uRj$d+?9~]ponZ(n9P[Qig(c0K(.Ui!Pҙ#~9p=;'I2A&6u[🍳T7(-Ƿv<G0FN0POV&`͸y!j<᫿^/cӀw9sK\S{7Zz8E}xR@4e7MYX2yl"2fǿc5 O5KN`9;t)`OvLU0Fh.-2<80dX,zZ-[JGELGbHtN#"q XKQzK@(NAI#܃zLtQsBHNnՍ *FE͸-7`	QKa-!NQ,<n,7\@9{1kc43	pdj
ұ ,3Gdq~ډR*5
́Y7mǺ{=!'Moc<.|qpɌX&/̋r)_Tg
7Π П^-Ơ$_Z1^F[9vkJ!)A
Ｓ)Ak+=s~Ӭr.=!YMAJ.09P	=}k7[3a]n.L']&'CF耤$`-SbqBʓ
&X%Jh@"#aj_;<_սϬ
-0,9F	,+LPq,RZ")4RZ3obC>xG\L+^[xkE
X	xf k2՝ F-#3yZI7ҜX剑2v$0wJ)Fظce#έ;ovW>+a윀}JYt=F!nA,v>ysܳ?ye{l|Jo\ݽ'Ž7j8xq^,=v
r1/CWdqjr
(XVxD%7)ߢOBP#|e.TMB51j/D1fQ`N,f!}tH3~)/
X()2MDX-J#פ';_H+?tZN3GD>Y!C5YJ$'V4X+v9֊Nt4MHmps㼴<('NGB0F,RX,0fjy<1-i:	HS891vY
7뀣Nu&c]¦9"6˼q DT1]\I/{wӷ*߼fs}{ܦ^^bD{xRQu87.[,EU!%Lz묫>;i'}`l>~?EϨ 戧KɎkc
V iD(p	DM	Ղ҅Jk	R>ɲLD9y58Z0\D9; ,>r/Ɓk*/T(=޶n6'?:;O'O>tDO2)E̿pžY;{)!i C2k9D<e Nk`"Tgx;Hv2KtY
OOf}}uo+pjz0Stnflnʹ<ut;>|~ޓ ;Wp]eqtb}pN[| Po)j@>].A\b
k[9TTOhNfs <7`n͝㜕	6Xl=gFTFU:Ki\yP掜SO=&G?5,2z7K j޾nݺ%фhfc#>(Ϝ1)bVTL*r
h(1u(vj %4""0qG(gDp-KV0	94fͳu~ )؇z)zoZ^ є'-eMqV.κ׃]܄c3(>Pܾ8E#1Y-?D*C<bDyT#*<.5n$wsk-5a>++w~cxVvOyf<$\AX^z.+OP58XB 0MDǊևY{c1m{ZPrHz.^vxG	Jc%'M DUENp]0(heѕ+Aa:)o-TiD.iL&R 17q[F/}_fΚ+,r2j{	4QA<,aKYq]
)P.(ELHNgʏ+1?IUJkb ĕeH)[qvj +EUCIqZ|UjgJ̀3fȂ:`n'`%i] $;Ƹ4vu uľQ\ϿsW/>r>dMpɵѦR܃%y1;GYi}%7-hHakw̾,	8IeD2*[%R)	?$zeC!o 	Ćʖ4\ׁ{B)F*<͸K`	2ðxͰ\2"pMy`g̍;O;͖Α%=1H2~zqU&B6\I	hsL:pq\ 
W4Wz@[-:y;\tυ~tY_D5S
AaLr
[
`
aU%lP:t-O# yB]&nQݛ=CsfȢE
|&4
fU9-U,P	DZZ!r+Q+TjͩK	S"(muDꓶ]vFx5ܮPRo=lxW;p	YY˵}+c:;;o{/6;7]]nS|2MqXՐj!cBLMH@Ȥ~<-1In[i1 >f2&=h=F$GvI+Jtf1Z'?25g(Q\`kYd͉2ܻ\ru#[}evB(}CV!(ŊԈ0GJꖷ"(ZZCnqaW.I'/w;	;C>D]WR*+Dj^*6P(LRd#)kNړ.kß+Re?A ͛᾵f:77'>w;-ͫi[sQit4bC"d',Gqsǔ0?>hMb买QR['
 FXA( IudmӧyǀcߎCx8a4C,2z5;-=քAU4jygzWB%́=}gtdh_:`ӫ|"qύq*b
ޤbzcA<V	Qʢ蘒"$gl ÀfJu44"4EjwnjnjIca3*NM(ZB	:L	k%oեI_̛lEGNc@%J<!xJؕޱ1b0Ot;UYW즍^ƕLe;z>:>SOQ9ΛlLL|ւo_6췷?geu&ɉsn?YlxDyџc>|-薴wP	;۔n}VA76bHM5(ە6*eՈ@VQje0bVnv+Z8FĨ̤{5Ҝ̵	f$WH:]yc'IY)i3Gx:|1U
F6NqW`kM
"bX-%V.XIÊ153H4.Kp]n4NcTNS4Y1(EN!jA16bi'K04+`2a̕'{F:8,^LuRl}U7-B#IgJ8$Z9fXĤ߇x9P`D0b&G<Zs%XVFPdv+r k{ns-耝Fn)	\qn#gvYLsS.Y5p͘c'u{a7qSBKqr]4"Jxv_;8{Շ,`4Zh#p$ApAw_|$;GzEw\M	@IM 
wyԩuڪFKq;`9R:8+^˲*ovu9%Z]rImst¤My|fJJ/nUٹe<xkգ6["sz'7sh	W'(mx=ƓBy_l0zuRa 0PgX裏F8mDL)'uR7askkZ#!o)|cU[ MtVY,A#x+JWoJ-.8DiQG)dihcՆPcBy##:bAs-1Ji8,XsQ43l^j=攊Xu@	@F`-!I\il`xx`ֈ KXK^$`Ŵ?ەIM\ExDqG^OkYtRIO0^iǨzͳb.]2ټcZD sBsuu`c;X(0WgpkH*)2(Y`Z0}u]l'o'"ɲTS%]ҝKwA\cKF'nt=X9u0֎fIaܟ+\hzڴ8-&u$ NOwq6=)}ᓣ	^gbFKE^G1Ka	rx:=*Y'Vgc xicurX:v0˺>D+GǘPo'}"_6ŖsKᤛ"[_|ӟ4sKLv.Y(܂%0ZЈ%fbcA2.OIic^dʿqW..\%)A2.]2Y+|3m5}+`T%#%	hljnH2+e΅eow(JeiHl*%ӽ1%^9lD$8ThDhi\rZoVQd'sDPyq)`iTN	VPtJ$FCuv1u	GU,DFU)-|Q`ڔϩ#"ӎyS]KDO7ߜ"B;N~8>M'-=7Enu|;n9!L1ֳ=+[뛽+̪3Jf5nw-%Yi]v-Ϛ*2]1,q
xA`!X34͌FY<Ij?|"m+?OF>;O5̺dΡXatFmooޤ˧Ɍ,<-&>Q(GQ!LbD3!fvRX7!\튿b
T{uoK~$G3yp3-_^"Ͼs_|6#g?>1]jB8GBIAm5_*n{.@1Ϊr`e:V͕P+2ҩ#Q #P`/_K	SA#|6{d[VF.k<7fdbjczx@}%$QE3	o.)b'ۓL']i;'2 쌏̙h%R/ԸT 9T/ȒOWȦ웙pͧ}jxA)ބ+uV9=b:*l'!P	J$V:.J3qa3&n6|3uvz`,W>AG*u'ߏG
TnJ ҭ0a¬A!jX9Y쬮۟}Q>\|- WFxL{4Dg%wM8H}xVL6	|bA0/E%BGQb)C$RxPd$D&(~Sv?eO<\![~+eMN3ks*elu_c>ptڑ$lYã(H2g#-
ت4N{ݔ4HٌR5}1x mNS!+2Č:r!he+ݿqR6u8&7~g_|:1MLEѤb5|gj r_OF|~J+IYs%[*Ċ&̬-Zi5Z\M6N~mSDQ58plڻa<W|Pǥ"d02>)3f+`j=V u`y-gDbB{$
:x%\;0v$x!Lvt5<B2nz{}l*n4Ӈ4GN
MK6㠟z.mk=:A`K_Z߽/>Ogns-e>ST?{/鏣O4ǻ|BZOZ,oaϡ}{Jvp/JTTZPh8h+9b|U:$6xZ]oʸM8U⯬NwHS̞~=A}?maͤiSP,g=Z"V>>a苝9@sq^0/΍/+R_<YP}}-/D8NˈI4b%RcD0Sfs`\ A3du<.;?~ރb߰nzX(Fޓܱ`ۄ66{Ybr>(-2P~BgsQRPt.,eeBF8i=5afI`lirfH75\nJqw)Hwy8
8X"Hpdt<TN?2k$\vnv;R͜u!ch.t/]YgһǙ}"yIZƫ?Xx0i2M5JNХ(?ٱJ˴渷RJhӷ8GedVfcq!-w4 ȓj`9S9ύDqDA90KcTaLa6~v?05ߔyb	1Oyۉ#E3[VB.Q
AaIdu3 
FgB1[s<ubg,
$He
ldfͦze:S]<m#QRƕb\s<2ƅJm.YH3K;7]piApu^$[QA+)EY~Z"	"4<iZZ̎>x?&"HGeIXǂXIaj`1V5NF?0GAХ˟5.֛ʍsNnnED23ei+ }KO^B(gw;y^rF#-=8L{Q+I3{'XɲlnsoEYvfj(gDpʥ,|TyCȤ:2'~%aA;V1/mZ=$e?cԸcͨ|wɪF vXķtsfϬn
) TQ%`yS1ؽ7mny_kZ\8UƃE̱=ݓ[>J,Lb-`Ԏ*$ss" 78Tf<=]ffZ5]s	kr*Pg:X
7_?i=qDcɃ+IK+n܍hg3zo7¥^k]0zrGjW{scTLb
_	G-%/zzΖlki``l`ASnus껟mݱ`؞U"vr(s25@Z-1#R9.7mQw¯#44{~oKð$l^$80 uh{#19{y_ޏJA| ]9q]\,jr7fX=OE*}V4\S=u!KfRa(Ҩ><u\6F
9⺹\tL ~FRz1򊁽rLNO_NZ'ɐ?C쓀t9oo5sex4+y9w毮湸>w7.[,krwx.۶MDI=)@EdFfB7LI=o`,jI;y5GSpuzv}<mO'߽vw~|{t_ri2]|k	U~S|-MN+KKKpBzʚa8϶a±wA^n8]pir$2֥C?HRۊD	XRbV*pB6"U{.8i(|y) k{ q?|Y>z]sp42M
bM3E5OMS)<MR7Oyvrm]q-(AGZ6!jU1*xs>-f/bʞnN{ Q%= f<{@楅4":ʬJ 'cuGa25RylO:*dQo;y4v\W̞fpkК:_]^j"fѼN7..δ,/MC;e/fxV{0 }cHd#!* gX(QQi1JtT}(Jd5bӯ塩\俞A8\sܕᵞ|kܕ'K 8>Cnbo==ye5peЫ#nciuR?R?Ow'Sq"cGR:5QUZƛ{	Y
s^BMdt2LVYV㾥Tb؂%C
'72zkf7^ ?pz!jčeGnJ2𨩑}Im,{!Q#AvjI*hBػ2:)~ussٱ9֭+&\GYh[4WFￒ ;	;z;Mz,:,8-~a)z,$1,ho^{ywHG~=F_.	Q)s0cebp9GI̓T>h4
L3qI;6r{+2fyJ~J =X O޺y?~<:W߹1һcf4٧>-B[ PqXc-] gJ5X8M	<#ĎaѵLcqb$eDKM$2:
"1aeu1NWQkv`t#`Wxo+_魯?6X﹛yJ0ͫS96z$ex"f 0ෟݏçD$xaj>|$Q'r_*z)ec[zyHt(Zv7oޓujAkp	$xeTFb	N
=t5NyuYc)9{0#"Rd7*d!T56olBgTwd <}Jj0jUtH#aqO]ج<Rc|(z哆@K况%kwՑa{yUVMXjՠŝO6U*}[?W/|VC>M=@xl	'c%MFH(72T'j4]u]Ҕ*
'=bqpOK.W#;r{D9,ǹ-x;UWj+CX?{+4Z+nY!i[szi_㎥$w֬	3WkRgN{ZZPX)֎(ue0HtC:Q.]֤<d^߭o%;7=L6ɢ1fPv n@q/8.Mݻ
\<iGkkZcCOVk`kah-x	l;:m0Cq9Kx5XZ&i<HFc RVRidK:cը\dS59R׎w=Al;H0I
R.R.WH7uOv6R_i ޔ[,g76n\+W6VR,փ)
[nqx2L7LZ/O?6\ƌ^x~Y,BB-d:gY)%ŎRYE-d-_e&B"dΩ8CZ Wv,i^>J!,ߠt>lTYT0jt#BqeƩlw:-9VkDfH-!F	~6r'A#hSN]JofϒwCd٘\\uOqj30O8'1!DQ^7@-5b<wM\bZ"9ˮZ܌6`p|}~vϖ!pYfUbbZP8:sV	)k!p)ZB)>R)L#)Q("K
Tsc|#ۘBy)[­d0앤vNmXSA&+vIcY{voΏ~w?{IlｏGL_~,ۂq	;zO?;`\B򘖓5\^0_hNɿ"EOߔǿ̗>}+Rje0aXɎ3acTj9䜷ި)Xaʣ]q{DRs)cbu,;P52ZaJtʳA8@9gL{_^77T=ɼHEX`1J8RiÉ7ܳve`DI61&«-pƈMabS2m>iIfOmi~{O2wOνpgAwO"lIEuwy;*0Q(pXZYzqD.Oipqoe>'qp~1z?"~p>!8eg7c!\cx,|?n=v9v9.i˦	TlDMp9eAV'Ҩlݑm{"͙%P#]ĺxR+"ٞA9N^M>)0	J 3GҤ )c]^D ^DH\T/)R{m̈́2H)Ʃ2MhQt툸oD
q9'z~uwh7z`=~*Mĭ_]]/fo}a3{̛+kE{:zrk[Ok[46'uNoB)w67BYٸ[M|VPHJM~]'/ug.8Gx5	rUL:.Đi@I'4G^7ƫDh:+/8)e%di`H%R~<[/gW/`䥓Suyg䐷yw;vQ(j3"bǉ'50ij]5\9<Ti,X%2Th'AI;f.
6ԋuVfOqgu"4N/-Dl:q*eIrH**_(G>caJZR)EtϩwY{rJ`#zMs	"֬9sƝsAR26i<-x$ }9rWtk!hU42
.X2L!1ҡ\G6	!`2ȶ9ܘO.U)nf}u_n6zoɤ;
ޫ~<M%%^n9vp;ji狴%HG3joKs>ĻqCf|OXTleT6:&bHf
KãI+jE)ggпa)xՌ]`3t M?\s U`"Q0K8sT[$48Rby?h"!:r"D+R#KH5mc=&칿ԟN.k[+[fhRHdyߴXq1㓌ӿZsb'b1%2^"i,Rs>O@8gDUc10
`HGR$qEU*!Kfõi:N?&prA'H=iCQp$F opb5qsj$B1A
ThaT62HY"Q%eet\t?3`x+fsO_)y<`lSXhó8{dC$~4!:Y)tJI9Q=ʺX|R 1R	C@(yqڵ5Ѵ1G0n3<ͤvƬUHHպSlU^Jz7eQ K]R򊕳@ipAiVf\|wcJ挆׻`	쬂Il2DKO&rE%[Yۡn'g jEUו{f5]Cg0p_ݶp[iPͱ|f	WLulevzH^xΛqߵaZs)3<5D |6F%f;okG߅N'-tLZY0"J0ȝ,Z4;IF
Hn>,y,
B+XRc)r}G1`;} 7L;w2m
;s=+ę~3ϭs'~Cqi %(Y(`(bIq"B	j>:L׼bHءF0FY8nnÇjon¯OgQ3XRq#2rIU4*+;XRͬu`ؐ SuɤYDFЪYAG/Fz.Y&x&t.V^T3>mJ\ւ<*y
Tp-MEgҤ0sV67R&j3>uQSy:K73	.L\2[k6B{@ޛrPe3.Νrwۤ4[	L|bvbym5YYH *G5/0S<DUAlUILlUkRß*?>{}ֵ2ݢC
2(J1$ rR$f6cI!&^o*<M͈WwYs)-SBe;LDdhhXiiuWp.<?><Q^2Ӛy$;d`IZh>5~8nkys5ݍLK"ׇ_VS(b0XNq134Z2m'"OC?dO\+SK8U T`(mj`<GLAj*ɪjr5ADnWL!"Jc+A\&6OݚT+Ф+̾YgfMN1PaTT#11u:;"YpgjoweiɦhKT+_"!i,i-,'IU.-tY'o``\HW~g AC,m<`LC	ϭN8A=SRm&9.mlv-VJjһ1%fVڼr(,?,4燩Z1"I[^(҆^)>FGga<2ѥDbSVI iϙLM2[4v9'8´!$S(?aL&8SL7ޥl}G00L!61ce`hzg%" IYcT';Hn?(NAk*ݝۈ> )^՛ut,{/Cc5C-zaȍ@YZ{H'htTS+I__Q8wRt8>SapG	 POpG(=wP<BD	ӶSSJRoiRb+GsޙޕCjN1L7NӷR>c8zｼgv^Hϩ1KuuyrB8U05gӞ[ 1f8<Rm	yߎH9QK$4fyJ.a}FrMS䧓kdnkWy*[6뜵=QHĒ	Ip}%<޺8: v['RñF4ٻHw9F)fIv1ٮI65p7Wzn6fgذl<j|ziX*,b%,w++D?/eA67`;Λ p}_<\|ٿ%/Wh)XҵO5oSLdRk-yuhDxc.i#L$t,Cd=
YkM'^s0D
H슡Ys6M4i+޴NsNV=:ke&,*bdbFIqbh:DtϐR*ca8\FCoIQ,ƭ:`>l6 .nWn&$n?G}@I!/ܡ"gCŠO|'8tX7TZCfsV˿cDZ0>z$6k|>ֶ6F%سV̉KLͩnn6LV Ў쇬¥ޭS\8IJZl۷ŝ^[Z;])ڃ 9Xݔ7n> ~RIkMQ`JR0`bqqjSaM&RH b8#F945{~h&g!fÜtdAw@݆YMX[NLrB4I7cNA/k=䙰il2.A0u9G?oLNGt/;0Mѡ%HZ)A`͕H!1"Ҝ*%DJNniwD@BꨕgrNu-e"Ú`nhްg u3X?	΋/lyl9v;c"gq}=-bqGW.WC*2卑:m
 eXD{8vhqJ'(,鐙f.<p7wnnGGp-K?s`_-wx.n=np`×aPXDmV)品/?c1lloKZϭ%~G򴶐Xp\༖j%e0JĊVM(K~GNRsk܅$u:'LdjaJȌ*@BXj­0bLM)/#H-LH5S˂RF˝9$rzBq]jnH&V(b#T@8a$XmDl6^	ԙsM
]2)8Oc˹ 2.%KH-2l\ 0wxSc]$2
B(Z2$^sX Yoyt7 5)i'=2H$Țpا3G7Q:}^˙)g${uT.f|w1}aqh hxpKqq@ns~m+=JSSXB<QaU3
wí+AIB%!L8))#FD..٪{OZmEk)ng#׿ecLjmpZ1FN$!UvTV D,[D wyFXQ_vö<A-с>N[.v_)YjּCj$Sg.mc!8yDE_w1	}_цP.R]&j e|_bx;QyqL$#qVW>N:ekc%
fv$	I^3+(0M$N
OEwhHEkR׏2
#Jf3r*|޿q[>`.Y#Fo3zӜA?ԙ1%J8檲V9&ݽLIo<!a0.2Ŝ;Xi+p$0E4*Z!֔Z'd;fk0R%KH`bZHewӏKIz+I)fv>Of+{9 !.K
yXfǘIC^h[%j@e* d0ef#t{7:jlx3
ލ[7&T,/C_Ǉs,o/>?^
'KUƙ̋3[̽;t#cC6O:]gW-GlHJ	B5%XQ,!cSw9k2Fl٥dJ[S1OGڧ-zS*47W{[I}ڥqϝ3,>3/c}tmO HTPGrH*$Mys88#XtYcO*:鱄?=CX}Ï<yap&eӛذt-	zyUL,_<5H
]8;ǨUk$bżw9 N+1+v[H+Y`# G;Or? \yӌt$HRQ 멦ZZƿ03|<.|<D0qt%eݏ=0Q( &$fk|yxq_bfRE	ӽZ*\gZFx.AF9e&>8!%'{[m\n&2Qe	:kU`KΕ^zBi	u,O.27R2`k2JClRcj6'spo3g f"*hT^d	it)MҒKFe(gqݎ`r0W96O+ #uv6yf&߸ܟ[Ia-+[0i|D!xCbݓ=wveu3%OlL'&?[+cBB}&K	ZoٷIblMq$ƆdyVe
(`ʀY"<H(52V"9RvLIxz" {S8q,/mSW+$怵Wt$Ou|txS]/qFߌ# g
$8,+0JwR5KSG:I7ӯ78_O Gk2a]rp	ч}ՍA쭇sZX}zq`+k3-,6LIAp _Tl4m-5|Usǳ.9&8		<5@
>c<URwӋ+$S	b^v_y_g>iO#˝Yk= SRjq vJ//VM5$cqI8#{ۣ!(WG9T+/,o1g\#zW(24v$BjNvSuyn*O-nJf7qzہ{O]X"q0Ls,4tfz݆~ñnb	PjzctxZ˔2RX JdpHȊɼ2)b5y_LKEMSOi8e(*
Le#>gl S"1Fmw;n)fyS7kj3=ZhD0"e9ցԲơ2#M@(Ne҄F)AQDr_l3LiHʸ):SBb%yښD9	,3,banLzLŒI 1{LmlU-yo&sy78z3i}5gѫ?yFk[fpkn5T?Ό	ięRaIn}"oњjck/8Toi.#J8|/an:	+Ŕ4a#g5VBMV|1@RL6v;$3t@@9H-&
p1*m9g1iiXin1%xW.oʌ^ό{vow?ͣ efjðNQw[Sנ6N"} JaaJeO%8kgpב0~jz绯%(XtYQ
Hȭ\a0
O)t1),@ETeW,Att(슰`	V/aށedUK|y.N :!,c]rTgW&}V3[ocgN]R!q,mal¸dm7|_UUDJ@ReeDfĽqOԄ(
$@WPӠ]@"=q^{P?x֯zYg_yO\VL@%u`/<L12XyXtáaꗚ0!=JbPwJI(^RŪ
iF\ -'-PNlW>\(~5%l_UBTmI+fp?^{V}#ɯQz[|e%}d'Xz9{'7ΜÄox/ [2߃ui_N ;OR//te)v{ۉ2wbrmdlRnoWTN9YB!3qMb$"aXo2p"JS51SJ`m2t^{D<iBx#dqu-y45~Ћ'hnGnz.noN2f4L;
XQXTn*maÇ<*f8!(i,l*QNFTgߩNT;لdyǳ&uOg:Ml)b&H'!k8<rWfĿ38MQf)NZtO<;2\YufeB/^Ϸ~O.+z$mXQ6:TGJP+AijRgHF
9C2	)v%hzG'ؒsj#{J]ajTӰqHLT/w,(}iu^2hى{!4E*DpDC1}/\ZTJi\+Ņ7DHxxZH524ZC?wUw))	%.x'\Q	blޑpىxA0rD(xdQ=?gO).7;@a|F;dDa|mvaƌ
T&P!gj~3=Fu܋Yt	LCh6NB6;?(QOZ\妩<6	_.ϯ*ĕoo孢f3w~xtYß|www=TT7vzG3mlY6. Ph	|QV,T.zQpzt֎te<b|=}~PncڝWs(zvH#{$'!:A>B2,j<&Rp&%ZJwڽ?.>'I.7#qy'8;x?ݒ<fَ>2[2jN?CfjdE굶`y :RKh{LmGyvb -aƹ<0z=:P8]E,2)*	q%)hN2B@*-Lvf8 3-a,
amRy'L`XtsȸxaR
x;uEFPE΄Lx8AY2ʊW)%.\"idI~>̦X&0QY2l[t,zrQ-)w[(e"ĺ͝gij=)8sxa%6;"6Ltyni7so\l{VO)os~ɭ~p0WC^yz S5'\&}co/y/=oo<?͞Esg,S6:%%?~a|֯%Gy$/wu'W*3`5D2}TJGXp`++Atp]qd\<d)v`5]}?XfRPz*e[şc(1TP4n%y8rBr؂%i$ڞNQŐr.CX0ںJP{tNybnV7Tî%Z?<w ~#l<_]o\lshHMT~?8nv{ 2e:@Y"ܿ`}{^HԮVS_hbm>Һ3=I]Ltc'7-g`]*ilPDsyK|EoDQ/`{L[X^i]0r|i1	3Ezc#g#zĢ/UK	Q|iTDUV~ϕpՑ; TbvņP8MŹy"ŎcN,$TsFى7Bx'U|)/jkNz0H0,TpZD&YA\I	Ts!l7FXꛜЫӝznu#cRDo][]KǺW]\[߀r<$Cwɘ[}̘;k[9u2	|W:8|x@6~
 Z!"Q0-"hTU,ŜXj8u:C{WFr[=0HOwPh%&^5A
5;4*d{AAvձa{wƸ
gɑbrD#CPDh)A,PU_Es	B%&J3蘦Ko=䍭?F|뭟}޻khO<''fM::xDD\M@!! 3ӰhߋU_+@MlmF(gD4y,kH`	eMյgG'?	|ɹ^P[Ѳj7Q.-wug2S`R1ot#6Ό"ռVmj5m`7[xAĤJ~X]n7AL9Ʌ؉˹8ZCE P,=#!lHG=<T(CH#(Rg0=!FJ3xJGFwR1>y#\45|
<3f;rVQ5 eZi#@P ȍnCi~ww}\3:i6Op8԰Pi>"F1aRH`	AxeQhTUuWX}s&»8+٦z-Ȉ:
!jL;bOPwx?<\/bŃ2#Ӝn!Hxm+Pd'xK-a"p[?z
,+k?a~e`O_7*'WUXʁw~Qܱ]hCʌ D,0Bs5:D|3;z3[Fd!1r5-Gd?h3J:mbX[?HWDHQIucp}1}HLtS,q@M5·1{?zsgwO%I|N;;Mon|b&Go&,>v?Q`;ҁ;ۧYPZAbu!ה1G15h'j	bJҟ?Lqz}K)J@Se#d<QXaTDAϒiƗIyw%Nx_x8zF9kp1<ww49<:#lyFrx fQb +2KXYMIL @Ii2WO?*6n>YiƑ2p❦i{1]-Ι:(jyc(=(=R0Q#sii1kma9/m-MK"ˤ2h eϿWuv~>fJX>έ]l;0<WVݎ qn'Vu-ĿsC)Rm}|=?ЍO?*A uO J [o~g{]-qp!oKecQ5WVQHo:Ѓq"JdfZ/iTښ8Zey/*>nr9hP)X+U<ji+4i7ӁB	X%dBfFq]t]4@|5''MO+'O,?qZFä 5VQPQ3{2rm	&9")gte=	BjUɻށk<9+~H.qmA= P";<xb`)bIe^UJ&Ag,JiDnin6٘*Ϧw]<	`|~KgVVqOӷO~xSC_~?.;.$|?Q7_~Ow$=|^P1Q9/u4kD@{c,X	Q,Lx5RZa1UqZԃ)70YⱭwd#gXDF}©y*1kj=$k3)r&r'k.0HHmHmoR0x${N-C,(i7K!RxXI,G`c\R#%>=KMS9}sRmopaGmylyX^jK[ 񅋢)z,W~䀞Fgonr敏[`ì|ֿ}g_hz /܈jZx6`U7խ_tQ}=>+Sǐ\AwztvӇ{K黨w)N(.PJ+o#$4T	w5qSbfd7ђj7)Gl+ Ck1I~c{ڃ+ OmsWVY]	8ԧ~s< ;g /%f=%17:Ď<o:9EVi/-PcnVe'O+wiQ5?VS_.ۈ5Lm;oǈ 
#+R`FTgbg;/*{ZDt030}grN"ziF2)\`Q9D읒.^[o\h묇G-ԽṜjxza^PA/ބov9ۥA:);t~[Xyb 6/?ԙu,{+gf+bX[k\t`rL3<sK7JxF@d[mPpD3!*ȢLTsڞw#x h;opf`=f#Eܟyf9<DTac;%%gyiL/ܧ.?||nl?uM9z)-5s؞_|+kև[gzM}{hꛋ[~tk串KI=F	5	m6lC3MA6@{DZio?֖X~O= ؍?O=#?t
Mvs߄ۇ/Бe!0?jx}d7]~Ban'r@gJz68r0bHp;5F"jDg(`)҉
wYpTO{ӌ$>"R7(/uuNvγ;/[),$
]{7Ʒ돻YQYd2bxԹZ +BI	w/rwJ[Zx+r [[lk4]ë(]5lcQ3K,7ZH :|gL1G]v'c~Z-ҙ]67tGKIB	)QD,sDA rJn_UL D@n~??yOћzZ McƲƉwh⠀Iv᳣2)KHnK6nd3HJ-:hf,qrQYx[[QZ"(0_b;Bݖ/^' `ibVydf Ɖ*j(A`P V0D;.2
YP7Ck|pC[dH$3s`X!t~ӿ2>0t%舛#aP2xVw80*HǪֶFe2J=ؿC֚k"G[Ms'k_LYPgO݄r9pɶ,xu ڋ,w_k}:wչȒ>B!a&lxD(Y)|(4:ɔ< FtBG{a=~;6=.|˜ R|;gfwq,LX= .~mu	kgE#>B_]2wW~hO!CWϞ{`MeAFpyy*B
Y#	;kpd]UfH+3,v/@sK5%G]rWa,u}NEyƮnn_/6Xa.Baw$[ӣOn=!QI]n+B1rDDOc^譥*?~ǫ9R	s^w#^]"J xD
E,Rf0fG0xpPBQnڭ'%ܚ(̓JdAg+[Hz|bEtSE*pp[rIHYdIس"OX4TcoS݌ON3|R^D($5c	SVS0!gwΠ(U+ɋDN,BPitU['L{&Dk'Y2JV1~?oh_x0fx<\F3'@OEOCY``E^{t@廽9U\g1(X𽇿|WWʂVa>AB_CT_-+8T۴dRm?9Î2G=Jiq$d@Բabgs6Oh2:H7*QLv}/Zg+`	bJuI9.Vd>3ji7HUES.x,l"χ
VeTʳxZƑ5t6͕(7xlzl_ >H5#!\2kL" łۂ
U9IM2tTSUDtNQ0<4aRV}?^{.dl5pT;n3X`bGQ5jb)RsAo?Ƨ^VBлdZ`ֈ0zS$3t`.{,S4
)G-]~;d72MKəp	ybQ+ijH^߁{!=1ub*zHz0Kޖr}wP| JhU7u$6Df2oDpk^;>Z\}js0IUL┵[쳙hMw42V
KZjV\&܅4}So[ڦ+̖BԍR'r)Пl$60BO61dQQQԙ8QWKMʹ%t EP6L`]y.w=N86GBD\rߦ<_Rxk^AJM߀%a:@\W4:"*EehA2<O[(`,5g
"ѮRj:کnB-"L,&Hl)a)*"k`;}Sp~#Ùpc9c |\xRJ;D#h.rAALQ!Fi2(Mvuoqz'.wuvqe4G$Bɝ8\J9GRY3'#A-A%Êw4FJ¡ݏG2<i\7\ˌ*P	>p2"Ac(hIA5ɛzew}9oþ[W+n_z^ݬs+[t[]!w@A+F4Zdr]zwΤy._N;|,~$
%6qt3ڞɌ͖>q˱H#x98!"CI%=pmL$pz`:>:O<=!6xt+y#BCƥXn$r7o9֖/Ϙ[wo K/ÿ7_֥n]~N1.x}xu	&*Ns>D$:xeVEyRgfzKiot=2pf?Bюtt]Xk65UW&h\Zh	s '>â*;QxO(X)]{u5{^2_UjIP4F<:P<gB6DiKf`D:"JwR\h`ÙՋ#+WZK}aҭⶅm֩E30Z8f0QiXw6:˅[?rt#½e E$ى[b7Dn\?qt](0P'R
xniYPOfӳ)JRfd"A8tWoIX!5_$HDv1<?nOQ'N򯋇O1 C`yG
J0Dkit28]-+t+::4=xaL2k5pJug>jH799`mGӦ0T!Tm~ͦ|^zgV_wtUoV
@V(=wUTPN|SݳCr`;l0 ЮH9V#;hMKx{H=aR.o Gp :9e4B(Fh#$;C`1焊8HǱVJ(L5A5@ziE75):;)a/A7奷}oZtǷ7~\?|wa_|Y_oJձc{#;MŐӡ/UŎQwJqo0b<l"@(I!k|#n8Ndsli&O{R&#KIa62&,zxOUeQF]&$V;k·	vpʲsI<v!ؔ@lV3qd:Tt,9c}1SrR
E9xj!XC
RKybWl^&?L:tXsM?\MJ;E^kE?Cxkrc> UJ{ga"¹ߍ;Ib&Qu*j6Ny+m,a0)GHsJo PU
-,S+39V8Rr֣fćdƝu}"&Hŧ.ܨH0gȖ	\~\3!qdǱ~~i#Xr0,"ai7[< <W\Ki1Ę#6R	`8MV1\;Cl	M
 |B+vtC6]F%ͱ8"RWb0Mugw+Z4#8pͤW	l% -Fj;]\Ĝiki1f*2X<`''AUK-I=]ב>fJ'3k}~$ZyY:]<3c7ƺ83 eWw	i?߸jK_6S+Mw()%R2kn}Lb`]%jArc7FǘpJQ#baM	.X ;EeyY"&?ß|w/ջ\^w~Wǭ2S$bxjn&YrǂFXô5:\N<9ap枕~5&byI4-e3s{
@.KHS$THu5D9dr6LeBkMzGonKD)ok7'k}	fÜ;őj/11U"__gᛀFn||¿9ז={9xj&^C+OHjٓQ4ơ'^KM"{Nw~kSde=UH)4NɵeRQ\j'G
$3εQtTW	~$$
ӵxp?lcW&$etg۟TV_U7Wjʳ4^n|za~YXX;1䵢r廋gݖ{kܝgj-z7~ޅэ(E#vC )t̥1(%F	O
"Xlaz_#/Rv-3"'h&ƻȂ;j6#Xu4R<"\v|1(hX;Si_6q+X%oތXS;yQyks(""dB{@ʪe/:P<6TɏwX٨	C09sQ6B*nj=ĜfNyjB@ac$g`΅	wCq杍ا'ke)U`j`ږRPP->jJ`ɨLRbeҳ259juA}cID*BNיW2F:*ܪ']]HzCv~_q<AuLsEXñ2|W1BK.Tw$2GK)ښȨ`C*%4 FU_0 ~ "xt(R꣓1JN8ϚT ֡6
;R@W52DQ$턟;/AopKףG,X{
]`xxEB#ogDzy'rpOB)u>FsUYni MmA:LZMe9BJdH?XF#LE XƽB\"g3ck|)dç 97L
|ti'M#(@Rx29v>RR+8ܞGVҒ"O<GaTD+lܱDIMmZ\Nx˙4<`ʽFh!%]nb5og#(pbfI0hm;fFvx6$'mNcp]nV4F b9')Qq.;}>G=19(	B9a7匴So\-ZMZkk'O껲Jl&A(k[Ez\-f:18ϑfRY:OgfiAͶ6S=azi}#]ߙei]ei]9s8Ovw v֤!	7)0FȂk͙2eiUdh	^3:1ߩG@?`S?$SLpv!225龓>t^"z#XZdcPS\N|jQLE)(X&6mZZ&*0	MT?i)9.;t$nYԲh8?s78Ae=V;0Kt|ߞ(1k=TNc@Q"hnXY-Nd,;ػyo)1+5AɅps,X˖R8%
K	%#+
3CT40R0 `SĒ{4b$s*Tr.|wLSB5y7}5)2kZj4G:ow쮉R,dkONa5Ol9dQɃ6jW8ԌO|jmYЋ	&zi$(M3̰%I 6PJib	5yt`xI4*R._6:b¢!0!NZJg=?9/URY0i6WRXsʻ#򿮅7o(%R 4k8~ے8蘲y"es߷pes.POz-r0s++FbA"Д,"2PbadGB@8V^[AΥL*k
s9S"骪ԯtouߑ5y-8~OjzjviN|sI/pd.(Nt4Dl^RK%lF
TQ'g+L`[FT) !LX`^uyOKX	F/wMN3kپzA>v&lu-J% 4+JFiW1IɠR7_^zS܃
//U~΍?,Ѝ/>zjD\ȾLCyp'0e)r@F "{
HKЊ%^RyzOo+">ꡝR#JjJcDh5UNi<qܩa,5sR^!q&[?`)-pi&lkApg8]>yo!2hyn^8Ig^B_$n~qqc5S͗in %zL"uA&=Fܻ{/v_/@tWl	ziOA%)1B)hd( WASj2RqHԳ6Yi%AʯOa;o}~;|7vp!/ل?M8ҁ0o(`LC.ud틙0DtS)(9$ tk;f|b߭VAі.l{35rڎbPo(')ao"@J|V1*Rk"Fr)Min<5icɥIvOJa%K'	N	0Ap,gBR1V>8a٣l9Ry'2hSkd8Ijs7ʦEj	J0aJTea#<u<qSG}km2xJ8S&PcU'|2"P7A"NپPF/K4Փ`dv&sRHx[K\kDH.374}HJzNWU~ғB60	V+2EKlR5q
'`
?S7ϟ_]K`_1S`uH0ȱa0aMkdwaP	=T,cmm$F#TckuIʂuAP9Ⲏ(UeEm˸~6&{LAܔSƑ@qC@)[ J'<ɠ{}\@Q㟘 czgNhuu筙&9-/5#x*P\;Pѽ"(3c$v_Eti_WjotS#C͸<tAVE-aG
4QmhD9o} [_\MNN~=w]+к3#Om+o{̘(_$-5<ᣬ {qHS:Y1/#V)("Db@0WI[jδ*+C*"l@^()(F]R*b5'&F$\p	ų}ޯ,́yBVʄ<M{Fٖ[߻Wѥ@=}pEWMb-<{_n}bȵV(Ƶ_:NBs?)4Ν${rtvC1;<ѹІgƧ"QqJ*@Cyf+ͼH3aB=8|/Fzv%w1aH&.gS"|Ύ.銷fi4+(M	OIa*VLU*h&I7TF;HJJ`ϿN+\鄍}lW[q˫`~X|X|W"P Ήys-d^FJQ𞉈x帩Qon3JJK*H7DMzEXcBֳ՘J'Wz^&ũ'.2ڧ#0ɔ#=~v.O~$Xu:H\4lyahQJG1LZ"sY:4^fBoTE#<Q'?tj}dN|Sm8}]@9Ò{߹ㅅxu=W~L$AT zB4gQS]0Hhn2W7+͂4`}n%K߉ϥAl,F>{z{>L76&V^PFԍ]ylOm9FFB_͂*Wu@QFwFO1"V\YdVT!$2#
cֈ7PI-Z>m	Y>0Zx L0 $}dVz3;q֬\,BH/#*3umv$*a,#D"!hdghNyn4j=GL)Zhc:T%h-^VS Vbv|ɔceuχdEK;nLwz5Vi.xK})I%EVU6G0O%b/if]lwTO!)3u.h q3AtpNµǼjzl) 8uŢJkjrcS_K31K`AF8.;P.4(s4g<&ژ
hɳ}	Z:W닛0IMߛv}q8t?֭'N߭ aAF<%T1-6x@kG]JN8E"xPr7#MBp/hӫÏ[?^Y;QY9/jtct]ݯ
7?sv#u.?g.Gmr?֩ɻ`*8$[,@*v)Zxq3Jvokď΢s
ɜH[#`ڪG˱voUeJΟ ė3ШBDBB)Dtu٩(=71KĄJ듁ҟI	fseu)
</]ßWOIflɗ]>S<9\8G${hPB*Κ_F<{01Ք[/&'@%e,JUz	Ob;;@Q3A4D&GoGg%g'\H$o<3yp85mYqyC+i?Aʝd,7BZi$Apdݷ:g:2:-)?'Xy__N!,@J@1Y&{AXHBtDEFhXQ*	EMosl5'כ2mHǧ-*U˿&N׭c3KttJWC	TqB1>bhk)nzGKђx !84k++Oaz63/]
	^H& r(\>έ]lCjn}oDYRY&g@4DI"FNfx>(Q7R0ភlfS.c+eBT;vl.yyCKb֋ؗɚNMB`^Qt=Be2"DBs~";F<%$ ,[42=q>}vɷ_/]o0|Û?u>*E0ކ
ٓ96"w={K3D۞TaO\"eEO9BQRCQT?"ʨ?,wRL fXi^G9a".*73mUɒ2a&r3/USuLZKhkf9]PT (i$817"gGYī|y\KuLu'W$PD˫Oދ5ųiՀM0oڕ5efƦ)G?TΡuL8NƎVfV00YN")Z}fn0L|Q1DBH))CgHٛ%TbxK`c lX[1!jH)o>買Hg)*ΰSg`A&HxߢSMm֕"\i Qps.$q|z-g`6NIs9lg6}nk7">k2jnuB\	ng6򋎚g~5(k/K'77"`I';:k:f(4·GِQwgLv,t|XgI#lцx"lnkqvA$AWҒI4Q, T.Kxzb'j-.e˶ى+}9fVRyt^v*MHѓ7xч]>u}_~'<i9ҢWsX,zߞ7͵A~/V=;܀o-E2~r.jZǰs\~o<مkx06;n@{oŬ%Rb`~W\N>`:طN>~7:LΓ).H$K.0iG<΍[am9Dvn/?'z~u|gOm.A68D@mc`/T& lXNv49ONtc<19p{|jpR`mxr
fĆL"hN7S@r!ۍ1]4
Fe /#"X5KV@g;Dx%aX0Ilb۹A&0tphr"eSRs:ޒ";/qV*sxkSl4-4CDK\[$iᥖ5SFETaoԘg/1;%%Ok_[M2DH\huNRBzWƏГҨN&QE:m2A(zՅ^3aH*(,JpEwOӆwGD0R_QlcS\L<"(v Ӱϩ]^+yڄZG	9A© z\䋲aTU--3F=l Ed$jI¸5VX7+=b]?`ߩ4b RFeMhZCDP`+N̡^
CZgKOֻ459*(";+Y=nUbKhRX K1Xj05t'yf&2*
	GT
m)yv}//9|.mx}ONqÏ޹~[o@[vtZ֎PwczʁN%Y3E0g|$IݨIPQL}[XeTDZEl}ҍoe'n]FV'6U [o[/:|勭~k;%MY+)JPq*Ttٱzͅ6^anZV%:^`AM~L><pbVVR=Uo08#%Ps0]D\p䌍<f:$-=rcpmm0=hAD>Ė`VQ!Pf
䢺Q}qC):BAF	cVLMobSóL"s&,I zB)E^_PZύOӢy+kqB#Z̡@O{AZ9RעH=1"lϪz f枮+ǥ3+nO]`6D"0qI|ic\B`,k_KENǝ&ǜXZغS稯M9J'Tr-'2HDRi-k+QL	Fb{Zk#̽:z߮ XNn͵4SKtqe7/_:|?47ǂ&fO|?;A~yQ`]NB5j>H =M  &{#:+ f&QtFmTd!d*"XDpC)Z1)RScCwP*iaWsLǶ5Lov
w_pg>brJ(bjQ9dכ]ٓE|θ2v;mzf(漄v,$v@`%bvo 2c}Ee.n
Ok?[IpyϧJz[XKh8[}mUl.Nrdv?:qg^ov{^ltbJ~MYnL5#kYqǼIC,SvzЪJHh5*Q0+ D kgP=&ۑZcsho:(<6XbcxNmk35Bί]/{H96. k5nkz#DG$%0PFvYMĪmeLDq@ɬ{h0N-ͭ&S?,r{X}cGm*S8*!C)xڃ2K0D='Q(M-gB,ȋe1[ª5[ M}Fu bLiS#%(ƔcXTEEct=JS͉<GA*'AalUpy"$'=O2DN "̈́^rIOi39$VK)vj!L+X[ҁdouu{{]PD逸r
N,ΐ*+tFaΡnV*덠doNLXVV7?=*Ysf ˳R5Fw٢#8\
-ޥOXw.}~݂גϊo|Rqv?=w1pI*|Q7.$]I*J1QDVFE*e %|d;v8q=*T^~F|lqwtAؖ]4-'bֳ#Qeǰ6$] :CL*=)'3w{]N5;ok$`ai+ȵ8GEJTki60`&Fvb\ƨQbHzKRBR|rlP]Q-V3UDtH"BZ+5ק$/{/Y7&kj<",o#5IS`EcZQ<3*@A71'=gS0zhcL*lyJhW"J,&Z,//y[^[m1 [w{E)HE¨ k4&=eKBaEо(G\"}T#ƈaZ<E[	Ŏz.BTkvXA֌Y3p}Z.&Rn12(/\yRjCfI1R0XQ =__t}5̹*kj5]7EJ{ײߺ:PW^ύh#6fy:cW3K5@  d<Ѐ>SUwwUCe@Y}YY0yZ_@ۛTů,ƶ
NǨ[˚^y~#I{35}'<խg$+#j50KBsfk&S"l"3Ѯ-iiCy8p=_ 
M=cr(}j]WaTV&NN8byZj[8,Ss	Of-.?YJJꥴ7e!&Z)aق4iH" xSǂ677?郇vlt@XG-e-wS뿈לQ\_AW+tfE<{_^?`-ruujVsO].+_zIZF,L,Ř dy
ǜM>u*S>y-lUss䳃ݴ3/.ūEE)Gb^cYQzu\&sdx!z/aBһnQNMl[2qN#ƨ$xª)c:v/|	>nZNPڰڽցz<~݌})`hߜk
1}mRL	["!-cJ~8jZg< S'컗n	J4Fxht*K\~"vyLsm4{ &l`CBP"6sawGlx!VI)z3nknRۿɃaoѩ;/яq_ɝa:yӢ|^_ wW8pڼe=H[jYlG>!=	hW);U$m+tq̤98٨%1}ղ]2mpqJʠ[)޶1
.0ƞOi{1'2PmhLO@$15kX<&lJ4b?j;`)V֗LYĒZ ?Ώ[G쬿k㇛*
aO}Js@Tm8hw uy d=1d^ni7=LZ+{Nm}xJ,F&|Qe 2z)(+nW[$I[z]?ȅK7yswqࣃ46o]KkBDKc^O1_YzNs>LG,Y4@GNc3f$N0Wd-Fʄs$˨8rnuH΢θBrq~cx.rҊ
sNI0Gf9$AxV|fQ>e)Θ!5NSZ'2UsnDaxum(hv,<j^薆ڂŖE!b"quO&/=X:gjѤ\{ƍo:]7?gm1MV}dj#+h^Bh<`s0Kg8q>;:U38vdC2TRS<^_2Hx243*Az5'Pʅ4NA3*j8cP`\JwN=[,[ٱqܛo3G/{߇mi5YލI}k/>R|>-{*d20~LpV%NG{?XZPՆSv-Ų}f]w̱û8#n4ޛ^ik;78sޢ11k	k/qt2l!O1N]z^ ZQ꜏0`6la;`(aZ]YSZBa!s?~֋_a|䓜?~3珩͜^R#q4Ducd	2zmrY"HsRp1WJ{/jv쨕7T.ʴTM@xhMIt-bܟLPwNݾh!V]LMY;'5~-+#[35BVICS^0_jJ$$ek29&2kF*wZpF]4)j>gD+&
5SG6&ej~iFl<?i 18keBS_PGT#Th+bJ3RJùgu2;y|v0UTʁv̋SӜ{Hr*bAzgxR42AM+j0EP('8<VGQ8TY=6dC ٫эU: d&Wl>wO|tcjEi	{aF7#r,'&{(f:t>rH<;-s\@9Ͳڱ.>8G>S6`n>z/:'	z*&fTgTxE^Eޝ\+.ٓϠ֍Gwma	oӘ=ګ,Mgp}l>p򣗋.P]@fy_SzTZLͰxSyg	P_[nDr}u{?:Vuv߽`"ml5<j4	`wJyBYmp!@@,?Wv(F)*0{p#9O){"sd=֊mx>+&۽|b]z+}
9]2<{,iKkL)Fxŉ|HއYvY	b_g2M`Vxf
՘	6tjeWeg%k|ϷǦ9h^I"#v)}>0IΰfrrNE}8UB&&"(Md&JgNu[7,UߺQTg:8oRWߵ7Ӫl#unl%%L'.rZWYFt6݈_6t
(#Xt.2UA$.$!D%03dh!F(P('Lq1/k**jo'mocI50Y=ma֞arHcQ[ݸ/Ȫ|U?S3P80t&b k%&TܹKgS`B5CTZ!5XA(me4Uc=O+EߢO3' 2bguʪ;Uh;Q9ݽ-Ɇ5fްÁpO)%jq)Нr"x(f&+!MӪ}Gܒ.Xau{TY'0& `"w|<@r +	_#aܓȔDP(@]$f*UD͐g(kIWaX0ɶ{2Q_ik?k/ߦcѥL~/}|,vիodW2,MBKYkbSl77 K?X#x
#
R08z%avzo|N9ɘHd0G)>I5$cj.{TM=gBfLI )ǲ4 ݅ѱSQ{\Y}rZl1OUCWT	bX_H&w
r2NH%9tmUSҭWAecd*tOr>?ɟPrӋ<:>noj(e&SWl/9h^a+fA<*R,ygl)0F[n(aEKQ!x3etpAtt9u\Q
Oz	N%bHN5ӈ|HLyFh}Y;
~E3C\tTl:WM?~^n'6j´w'.jv#SYk}n]/hI T h?I6UWq{𻝃&3ss7׆](-zQF={b4I;e2K3̋(&ڪX嶻ǣ>o2BP-QY4}7/YgwHllZbM`ZsLF)V{Cbԕͤ*o9ٳC-_Zh8n  Ao4jԯ88{dO<pu=8!pZ'}0yNN/l'<Qqʴm)z$\%ߟIa>(C2q>$rc	Dxl4&3Yғ8.4h
j<ѝ_bV͘n 9oS_=z?f>i91BrVEѳf@Wx6P\Q/G:ys*Ĩ:$,RƆ,	JkNF|$2bс7x{4-CA:CޅRv%}"q*3^Pͤ\;:{nX 1ykF᠀yR32QD,Y xM@Wn/]b6%# nayKܾϷ"F	N) r|{
]gLA瓧iqg6~;iwr iPoFFqaܵ>}}ykT|jf?ƯzJ`Z+,{ُ)'˵fyr@G>D5mhq`k-'K9ffGUy.eIpp"D)Nozbwզu;r0%FP˳4yi\p,Hd][}$S2HwSL*-|g	圩i-L@zRԨwp*'GrZ`"poS|K׭WS EP`sѣt{.
 h3cF`
L\(Ocڢl#A\Y4I3eKo|x(%{q/~r쳓ߏ/Vݻ\-[σ}]TNG¯YJ?Н/Xhɒ)3ZÉ
43QNѮ'4 g[p*"q%P񜭕\OJn4PR8*Gg/ ~\w__aɸM,6t0}^z#Hk E`.\np\.k/ Ȯ_s穧o}뇀_|՚Y~D	5Bml,98!NDw
RTyXW
:f0ζ
a*`iJ."3fpHM ǂ		VcKp֙vM/LSC[qztlVEpo~;/'E-h!u	R(0B%relfتM(+K_amͬ\=LJ%|?"u#OǛLX"ytsk>uL3GB^]tOHǅclM8N)Rt?~n(;u7Ws|:֐ǃWZ?qeuLdm:cMQ܍`̌Zʹt8֖`C;t#9A5.0OUDs{$sz`" |F?. m6 <o{}ݼO_j)"jIwY1P^0P{\n[2K6bӊ morR~,c ޝG<?!$[OГ5* cLc^&N<Pc*h1f"lt@Sᗿ/^޷VOG_VKp=|+ZXg6\rfZ $5O4h\pkw.Y_R*i\?ˌ;Su+=YcP@<SXIZJ2! ˏK!
lp"D 5ڞ\ARm4jj
`˹!&Qd r[D.@a2U}h%';^:v<f(3Nm<u ue-U@>E)`<BTN6k572ajfOG]6ߋn̤0Q%cĽQoc[	ɾ董yH-QvuhdX|gP͗=|oሣo󼍦F_p#I,M@o| ,hACvIP~ƨnu01Eyv[RUx<iJ\otk뮙[?i9:VA!2V0ѹ/k=*ټ[@5Dli',}=Kl/qnhP@?''QE*o}MO^/P BTۥ泞xʱ:9GÓ5lg````&؛C5SDN8QBcX]H ziiw\K4Xy]eM T*8D٘Tsaut&|L^J)mŤ;
]_ p?픺`{k~4ulڸcv}[SB`שDu)Q0<YRv7l8xXZ$rZ/AdXInzєA<`& D>-Ci9f8Ɠ6Đ]lWT#^;^yf7f" i	{<'XQ=pɤ[!oI  e(tkG+^jO~=ڿHq97 bmEYᢃAL?4܂-cs6ֶ8ĩfԣիs-y9hzY% nkpw\y玾y7L<Cd8N.n>fL)nvqHTfCNGS_x.jwXV
16\a=Τ(ۇ[Ԝ5Q'O!pF[Rmbڭћ/_?~9֖4nبl*29`JIW)'gkil Uur:dPw2YB'{#D"^XsAEX8Agp{ gkkN:0v*ZPmQBv˜GҽϦxtR\>ٙx]F]sf
Xdjsqմ,%[O4<Lm8\	ic*P\`!Vκ]G KGx7 LW]G>uo<W+j80|pÊ~[ov/R qЗ*.cl
[bJ't$;,<dfSm"&!@L	^2I+;Sqd<` yn}ͣWߺtgry;sGF(7о4<L)XjI$y .&NK@
A~+Ԟ\y =IJcD1igw#Aw*0)L	cQf
lGCCRώ]rs`?(s,|!=a/#6H\RB8жp.1
1;dT{wT_VXxe9yu	g_렅&D <U
1$<,MĵctZ`Ml:'-1@l\vs!	BZ/g
LO,ki֚[ےJXVȲ;8[DjgG_]=̒Zïv31 vYQ	@ShO`>Y㧐ha4nE}㞸XA&rO`H풖`Tna֛%[Ņ+p]=K=mߏHFG)N3KK;`Mm WW3PH'՚b&T@Y +CLcFFOo~=kOFc@T(2>Q'a`[Ct-q׮@GTДEBtPT#A+OLѝvf}[͸OKEK%7çf9kR'֧ϐ?ێKVEFQIؚ.{1FeUe@10=R`6L0]QXoLY)

XOeϰx?~AܐB!pyb8<*&(o6<؟iHw7nXRD)p$@i8:
DjHe`}^E(_)ߡM>-75:]ܼTIăyq>pRʿFc+ytcߋ6S5V2<W.Kex#,iK|Qyտ=.)cvh6i.I_2rΓo=
r|zY^fK3*qEHY)(6iqcq7SBQ&C`-qf!ݵ7*0̈́%#<c0Ff%PBYZ]/c
V9gzPDi$Q 1+ĥ7!X*sˑ[۫6X$Ze).2 Fy&3F	m]*dv.9U:	Y^V7՝lDh,_קּdkq͍޵UQdfˤ5tZ
0և8ED s4"mU]4UWz d0=u&0lI./#H
I"3mqMtJaPܒK׈n\	Zue~ݝs/}@`bt¾3>)m8$X4)t֙=̉CI#ZZ>0ۯ;OW_+/.krh']( ͉	]ok:$&-X`Ep8ZdJOki8J+G7Kion4]`+¯o}y`)ׄ8Lլ^H5p>pm7*B+tƊa;bHk?q;Ꮟ_\XEۇOpE4qg6Є dJ[3SADU4Ws"@[25oG䚮.Xt毹c)%4>V$oKFנSLJ=~Cϓe:w%WT ɥlzK[U; `?@C[K?MrOqwJ/f~'W׷'w&Gw{ǀp1O(%gF!(*x9DMUWtM=f$:8hiTBN*pI8踕\gA chĕR5)g;|G=;L),
@FQ0d*{"u/AHTr-CU6ȭeuIYNN8
YUBq*Tz6OXk6{v*d&l[1@0<>ģx@[-@wP_eʷbsQ/m`"ĤUNl2`'(J@Џ-׾|GO.JįO	^<g	m8,`LPI\(楙3ў&;lDl$c T(b7(/+7'[A|]pf`@p]n͏  8W2[`9?˖sՏvK`t
˙`2ft-%]ZM:&dRsTfDpt5ueC\a׸&1KIIМNN4k`

v+7oSLLږqNrx@gz s3@aJ1WG_fpƦ<d(HY&cU|G?/Uڛ%En`9xK˴/ke\L'luȌ6V JDQ1$`oHEp^:ŲE)LSSy;_BpN)LKh1(~1sb3VU-7DynpSFԖ9lEy]%mL8cX<x@[/~^dslخ}H8FRe#:	mD)θw`J@q%TAh¦aYtvZPsGG[yNkVa 
=mĮh㲃 S"P΄1Ot!a%,k6R*F:l<8o:%Tᒅ]&hmp}G
İK>72N1b~Jx`\䜖!cʮ>iP76;7ĂDD	=.жQH
1N!JFv8|oCqoB"M;W}op]M6O9bYA9W,aޜ
;14X-|n%ueJA:~3P'w`XGXMr0ؐӵ!+tjUFƇk#ν!8-doR{Ĳ^ƮE<*~Jt}lr[_Wq0sן?a^4lA#t	InX¹Blh4,D_D^,ȯyx,8+|[ =SM/ r5-,
_EePx`4NIX}BsY1py
\'ggIFTEX(/t'ŧZm<h/^#x)Ga2ޛ݅~^TR)xXp 2ŲodCD1Ÿfhmv6N N9%!g-ͽv,'6Xpb{|k["&hDN>Nc{aU\P N:*8va cҴbfm!xÌ7~^;/sbl~cJ`780ځ_L?HhV3tM!8udA8%+tlNZcBX7J& Y)Dac&ޮZ'X
Ϩ27Bi{|EtƳ5-,EH&`5
^pfVKggѓacKNlV?6r9P{X^5Ed$&z-`%y4Z NI5Pb?;|ֿ}է~~xw9@q'On=9ڛlWu4Q)B (Q:($ȴS̚Dq#L=;cmNzovTFv.Ho>N!drj f{;Ens;-nw~+~2w3l$mmFdFJS^|c5`)"pLJueqCqlzDJu[q#FHXZ-X%A(]JВW}uz&f;7gp͆ڠ*Â uu*?(̞x&NY99,=jwi	 +f.rI:/P;ƚkcH@DȄeFyM
R4c$NoR9~aM}(FX>r&[PgV$n27<aVS; '.L\AtrU̵3:p3`皜j<?G'
Qee |%oWu#|VC%uqۇo}+/`ۿ:|߸/pƗ2t#<(sk .vitpl8$``EqIì\.VlFqMƗhiBՎyށ\hP0QKdQۏvhYg]j o0]Sۣ~Z:L:6ս	%5fNA9s rNaY:<=ij0p'sJuKRU90|D/3N<}?؉{2"N"&@Գh]Kul2:0N;)x^*y{73|5V1K]?W	cL2D(EBiB WQ2H+Q%{8J`w<`#^i1ކb)-ǚޛ0>A!@`Bd֮T`PKtKҼhKʝ~\oO闏yO٬,e$á!AO ]byp6*RtxTU؀l e$Q28)FtWԯ	,tv C8,1K	trެzȚL/FTM_N;}ĮWflǹp0u!z彄cU䢥2[̬`3R%	x<Red0Ď!]}i4/oփ738YZX튏s@^ΌdƂ96@+8O/Oܹ{Bk+`9i9S50}" |cx3poHV.)n5+YC(&p^KP݋?E]5
{.ܽy5{su$j_o}'p0WM B~X7~*m@nh&q-J ݂a86dG;1@N6(Z|߾RX.0^r(¶ ^Y:_pV0H5j梴?ni-؛y  9lf0h9B`
 [meX`2*魗+50d |Kk=8{-lEnk_;|w@#i#.-eC<x,
.*Z/Prz{/ĸLJd쎑ndn<NNaIOg%r ZD;Nc9+M -hq>BcNv9xH!L!
 IKA'Nc"Q'OC ?;SIG.ldcp\V̝hլ)p%X-Xr	t>s8{Ȃer{g}'F K |Rgm?VHETw,n;U8]dNG|xpz(fH+c@QCFIw:ߤ/[
!].aRDrscэ8jr=_M8y1/O_HСK~XTڄǐ|)wΜd2Q8+4ؾQ.Ao˳틇_9-tR/tJ44E\*σՖP w7Z٠s(PW´ek!/֢o'`C,ة6S欀sIq׶'{F;E8Eia+\[>NE`{nK |j
ݵjVԞ4iw_=@$McC7hIB)SP0Y|8+3 81ZufS.`öPJ`adYaIPXSL9
Ξ 9U ?&grB]T(j4r0 x#Rph()YFg[|h(;6*OCf+s\Xh,R3)i첉*yP;r#ƹ{6a:4JR-Ղu$N߱Q$%jVYqgxy$᠘&zg
༦ݱ}MPqpS6yUi\^IXA(D eKL#F5a?]%E^ݕl,CPNp';&$
cQ2~}`J6Z\ &׭6zi5۷؍9<m4]?+G2?󔁥s:H0z++j]p-z[<p<n0؄[TeGC[Yjh /e|(ON|8Q_EO	YkQb@OM2dokՌMM02?@>Px$6wt!LHu"`S\:-ii'qQU78)_/]L[c='y^Y7V[萣.*& xAF2k;pO^ύѲ=C~	j2/5.ed &HdhYxn̾oIT<I"Ēl6Om2##g|!S5O񨐉y ekcB5_*뇠4ׇl2
\
84"%q۬ŕ[#nKݴm5 [̜$O
'ʟmi:-g <dA	$r,^7*QIe36MssJDȎ@?%p$PJ=SIur`lAxi& D\fe8 Lu&@ueAPʝñֶ```M
ͽ]ř=Iy׏bï^AaVcLd`bNɃSϐޏǫws$ǌ޹``UPT
g56{a-~~A|f5)7sdm8Q}B:'sBk*Ύuv43|*K>AA =Cݶy ¯8X~0D{xSgQ{ҫG8F	&L3jd0qX
^nCE9yeK>G"EDdIMB!qo^V+ۙrLIϼUu_íw_H:角:J.f cZ\	e |ꢚ}ՍH>]Nf≺[iAe^`t6 9d6 "k|ɸDU!aNj;0vָNUݳJVK9Rm]=>84(.--i!=@N8DiGV^ѕ!i1Ԏ[e콘RؿTeڔ~X7A7/x\o`g{zeVDG)@1*>ǔL{AFj`7w=ߧZ!Xu}=Lu0p tLS8;!o
2RE68&탄(z2<}0O	ZiDVOLc3`~<Fy)P\ǗD8KRXL$FYGzY<|vOUb~xKGx7_:էn Tݟ	y*A,ArV)Й`o
7M9SU+-sPTۓ8,&^}ޞ4%Fz?/@	SA>@͂JV(eVN 
3G8S/i|CRffnw?5_;2VՄ]14c~KCL@&LތY8@xܦ?
8_Y\uJM?je3E]Ovovgl||VQq(\9?~zS	bN7KEyE;՚.^		@+0-h,fwus OEۤ*LUG.bES}I=?|hέX+%uV|*)098b75xS`T10813mfhU5jեoytߥG7E?oo1hb=v0)ʨ1D1(Qk$t0Fqsa=apj3M9c~wz@{,~cը2qve`b@'4VZ/u2`nBYųDZ3<s-j"f;L	"9	!XГ)dVJl59V	
82zzN7C L`f7|/~$'u鬧,xTYG(PvݖSSɛ"ږcRϒM$& ,b1J2taZo6K>|e=
2TpE[NQ" 1j@z!C͠$ \OjV,êx,[`۪;ŃT8,J0Wib$$Kg)3Y";/Y^vV_#*~ǘ&8+-3%,Zj@=`w1)U^sgl I`0[4⌬Sz`ί塻\||ңoGy{P|G7/<Ň.m^tC_}cfᗿvGnM~ؒ$Y.Qc_l=r`bnq肚g\!vY!{qjr5N*T"\~oA\hI4힥[%\s,=XMXr8֡ei{~2.&!f{kx۠\ZoV}~E쀅s%DtQ8h._73R&}|YV'GQㇰ2NN2,	0ڎw۫ny]q[e2xF\~j7NY"	PXͅkVY<gpAHYӲGixI>谯p)^743&z0$ub  5U`E`3:&?\ۙqBdx{o>H~xhܼ~[B7?n`#8Fh.&the:be*cĲJ\kIDA{{i\硿#s^˓nn\?>Ys֤  1,I/zƱI\28=ԠwB, LW<g1I/&ƥ2``0Qdb2HU{qܢ#+dR]`vi֩7y'G 3"Bf;)&wnzxwRР6INkNxMc:NaDX퀋TI`+
lsb%Ot-F9ch0AU?`ǿ~kyo?{WHq@_OjAMGߺ~bEYF=讄S@}	RKuNzo0z>0a|"s;;7O2G{0*QJgy|^P	S]Ӌ
&"!2e>Ik3L`7UiՏa}&'
ņ+4ڔ
s <7+iSJ*SM|ʗ^w[?3ny%צEcK"Yi"wz>n'&]N>^{;)cBrZ_?|w^~7Vu큥Y4/ZT&\ђ8q-:9Òö]Z+qWBThG=gDy"n#u<fk IĭXAYc>@SN=n{1?~wND?~uTT|5y`؈T `'(m@)#̱Xgi{"?4Hs0XnnUlssFO*O-ǖ@KFDt&)MJQ]s
f? 8slkYXOPq1N)M`V\sB`_⠪̓5TO9Ӱo%Zŏule W{1 N"gTXcofhAK"'H^:*i`s9q˻EO$ 82HQ
3k38	-F%E=(POYx;mJMp|hONEk>jdAdf!oAgM& Wd1wVj`Y-?ANA~2KR :&L`b'mlsxqwv5>2Z7{tHga1ARA{8;< eg.z0Q@.KT = >"RFYiSs	jZa3e3;fg2]Jyf.FlcWucgeY
&xDhEX"|զ,Vsfp̻IW#׫EI
j0LYoQ$],@ Hl؉rڿҽ`Hɣ+mO~*neԝ~q=L'ka2^fdF7P{%W-NN$uf`︠az걤mCsOHde1JK=@?]wIdSۛ9]}o(_=|t%qXH#YE:+<.}b"I)n+g̰@]'qr$'Mq=U??1h	*
I_-nH,/U1rPb!Xv=?TgʪB D@1,6 5Bg^\~@ʠBifr(pɋ{tk)"̚I6Jtۢ$\~Z+i$*^oLJ?H_*Jere& Ġђ&c'*AR]|o3.iے :eKxE5܂M>Y=PqFio!)fŌT$5Vmh~iH:$ٚ:'8U$	44#%!bR3;%3h$C&.ȤeGdw$ ";ƦI|`xy)p.1QLu XR9P]yHaLw $OyF@V(K(9fJ\s 3=_l {EO e'0*ؽćaf8e'JIuأ]H:p;GVmC<;/؃?G`&SkvRЙXMLǬ"vLH]Wx$[n'=Ts-s-͜[_j'	7
pE`fGDaʷq)UdmJaB)v朕?Y/S(X'qCеk=\"`{d)@n\Hpt 0{U3}NyVmـe[o=S,IY%˫z;&K%Jŵع3=9Ǩ$\@ðEu&^B <0n ew:W˚0"[c61#ݡp9Srӹfg /@}	1YHr%"yP\N"y	G`2͂	IF`WvZm *yNme_?Zݍdy{0C~#l6s?<+c6z/ aic,pbB@֬t=5jz!2X@!Z~Z8W6tJ\ƱY(8,@wAlXi!ÙPqz
J+&N*i*Nٲ"%jc\i@mKMft P;ЫxߢZǶ1N2)6Ǭ7NL!6Q"m5jDc"-z*s:$2A8wxSQ
pX2&ʁe
5F~t[~_;|G?7u89} <
;-p,L[+@bTD; RZyXlf'+7Ĵʓ8gkhu0pB$FC]>۠0a4YJ8>͉ZM92hLhÙͪ\J[X]&0^z7R0m{`YY4h
reFw-d<q!_.-ĞV:F?so&Wu}I54dv}Y*Q\B|1nۀm7t_0?UUҧ'bU{g*S6ekŊx#VV&Ge@=8<,H0[=w)"T_JX")8hTd0NU.aJ684 g&p*R;edqa@>"&Z۫),UvJ bND@!lXlW7>:'k-B@ᬦ5Dt@\d ,3=k+i/U{m7Yv;×ޜ:=jVXl&It/ \,YH 3eHwtAo;
s311-+ہϱҀV("U{E_jhEO(Pe2G|v:QiU.QNI%D>9yhV"0+m&QxPEqXxӷh~7^<LO_:x[vw^xm>j;aI5LrJ@`i28<%I!H9t畩j\MInm'(T-FڮoϗM\ 9F4bm
,-"8s 4YrH>]/ԗґ:(CjB08,;{9I6*X,u
(ΩUf&'++Mk!(y@}M!L\gSQg:[r+pZ#ؔ('Svlq3kuhG6Nr&vo`xd-!hjӧ7reO@!t_>%aDtu	
IuFx{Le#5XƉN	T`72D<FbzLy&5Y
aazMWQĜ4!<ʯCg*H$cʞ1~z=>O=<<'CP)7V&CpZg!Lf`nqԸSMoZ5@zFɮ=4`+״T"<kZ3jIEb*Vyscbwlrv=n:%9p	n>Q(KG"zNR9JGFn(L]XVuI۾~	֞e+!<\ B$`)u] KS$+b=aw(sYP&2EBs^h|	/䌚孩g%z	untSXEyGG2hYxg4Z{hAB޿/~έ/>?xu:չ@7XkK	*|J9X<A;v7{ V]| )6a(9ӭ0$F T<3元,D濠 {sVaW5 %WAt7!Z8n>P-1cB+GU%i0\Bn]g?ׂlfmS LD0V_*ٳC5n_B$AL,l3-o;mO߼L9w*wjj n"FdUR1"UXٌ+i*r!i#鮥x*=2)λ:M=/ڶN|Y~u=m]*8D2J,2Wk2TSeuU{O ːc
sn)L~O?\k>	ɑZ4)"R&4!#@#.I]l[(JT:3`df=3cxCSN'#Zi[$Lv;@h n#,&02HJ`-8])2ֽR<Ɋ4Iznp{Gz˟|Sn}>YS"h,p<R-%C.xaSOVmyH^}O7/j(6AHjA`I=#S.ڔj5JNi}N,šFAc&y ^'CǈFQ!c~ID>U2Jm2"rĦO,3/d`ֳld2
C4KQ=*#j)q`O)=H{mwC\Λ#d˞2%_ޘ.g@FV4sOom֐/Ԩx(]%[	CnYY
Bakc܂ľ.k$BT<ÂPQZa_z1re3G|}8\uXpvhkw
]ZwU	D+=y' \XO-fB	]Z@옰NfKfl t8e* YUU{xLri2%F="/a={@p\Sρ5X=Цe4Ԍ);=kq"4FuU!)u䣒-KTlKdJ">֊S8욭]7ptn^h, ]Zx+mâu21+X-{)4[j"}M<
uu]ùQxxfFlލjrӉ q!'!V
uYUnz{='Vg-e꬞Su|BVas0<K\̹qٍHN^u@BqU]}1o5-1bǬ8c645 ,9&An
:h(o(.:j[k^Zi (!&Q0`޲ZgN b*@*U+Mq	3qMz7uQM>8[Zg^D"o)BfG]Y-#L"aelYO>l;i+y=	agM<SzGh
Ԉ@ӚkRAI+H@\dSpfy)fh1^ܘPonA}	cy&x"m"ZD
)=2ܝ	B3lC&{4}&1XDRKgM3OE>ﻇUmΛ@bf:du,eRe%h60KȲ	^MS2"UV}f,\(%=<Yȴ9F3Jqt\͍dl琲J*+[O1͢xogGu[]w2ҽye>>%1YA@\Q&oֺV<kv'lsqe1gh]aD-Sp0bz`G4e"2<,í~s~wϛY;VR?ƷLidc<3Ϙp:{^u]ExCrffrlya#i!gl`4#,pdp
1P1})yJSUI_=Qڨ!c	++?"D@'{7`Tx=JufI>h	$ _^Bd)! ڸ?})i=t8pN}Y=3ItC #K[&9% !1Rĵ%:YKB.YVK|=Q%ôNpFIS7َMpIYj.^LJ@ڛi^LxhQ}MǼAe֝1x2Ȁ%2 ΌSc"K HQzħ
b׭i|1c*L[6pقG\'0ִAzb,X"z* ;#Dra0(5~aA9:FX7Fzz>ecADDCD=ǛD6JYOQX8k-Yxpo3bAo+I{gcxɧ=r%Y||7iN5j8ੲ :"TDxwn^EkM4!bpQt8YԳ{-i]^&J,E^ 6|Z
z $(AZ5<`:??0{M&4ܥjM/7fꞵ|u^Gyp30v`$v^@܊mi+)LY)v	NLj@1Ɯrw*WE`N[fVwEbeAaYxw3'Nj30QKj./bިHngmil~b¥$&;()nO^Xn+f>} h"|R9+ٖO=rI[&USVBLsYO R 09a!&XVJ1v-.IͭlE X])gHxH*p>Fl*+Xy2ٍWC܇x	۬mo7!dlbZ'NFS%:E4!L8)BI@ojk}sZf	fw̓OVvl{=m}Zsn%	LdX:ǟY#p"R֐ȊcE>-NbNDXod&V@P$S|AEd.ED`+$".ǒb¹{X>>eݕ<lR,D5/lfeT>~*ǻ83ZݵꚙN`(]aӂ3	a#!Y@ AŴ2o^(JhlZ3!e`<8>)x<eC#CD^ʺv6Ԩb][[υS;kST-YABt2Q9 BD"Ɗ>ꔒtާ{`=ȴAnR%!xCv# LҗObƴ GO|x{G{ot	o|#uS}`=F֯5x Ox"pKo[+@	6$	@TTS}8Nz24Źr/ڊ_8=H՚y:DVx 8h)R5<#߹?=䣏<pf&#W.oRˈ|}~u7^;%@k{pIf8J">aa7+8V+쬫5bIU3Ez"}nogw4A@g{KXvҕ^Z1Yڶ$z%&%N$`4!f7d>d]_Lo
E8k$qb0Gqe
~I "OLN,LT|+	8&6%8s9v,tXWľm:wޝK-:QRBKMv'??xqW?G~7S>SHyHd,1)bJag}fKvҳvhJ#ڛG==ޛWm%av'҂9Q>Ĺ2x%/5O&+. xP.]]N׎},dm?a>/OCN$3TtW)d/ "IIB]PM'iu<**w3l,8vJt`0@	&ґ=bU<;m]Nk"]HK|SO|oH/tVz!;кzP?xƋ9]6+41/ae/:~ot<mVB&w 蝄'vƛ9k&l_A7F'5-#'DcӾ6=VTmF3΀O
8xNF#-Ύ4cۢE:}vӍgiJkL2vlzgC4gSKPA<t[nv'0\Pp7s/K6W+C^x)]m1#ywɌvܢI<M8!BeQ F$rjdh7TF}QE]TBg|9jwĞ̭L
`9D&:zE`+Ƅ g"*ŗ(ZA8cSF?ߺ>43Iuf]t$W7ILH l4PB!aq9 )(l-)g65{IvY{0eJZR #\Z@B@+!B4,KSGB<YgmۺfnS69Zqԁvk9~聽y NXQNR-4NfF՝_<|Gx-$JHA𫄝 .ؔ4IeR	\3'|
:t{G'}	\a9+%)Wg|T0wR8p4$&3MNu9
<0xs޸݃a;I:h#X=[8ʀCr3ѰՒh\xZxTPcH=B{s
% wr`;G-9u92;f$l(gVbp>-w{v53h5,RF1jN*P	;8+@eINjeM;-Ct[$돧fXi_Sk'ZL6w1WwOjN *akO
G)wA'BM;5;pE9&|H1c%LpXs6=nk.'<h:eJe$'8HIe4	h&)L]b[B,J]JӒX)eNCE-42<ʬfSӚ--ͥX'-\-6Ρ5*(Epzh L߸i2$z+pmMJsuw\[vc1=wz[gdx%=iv#R1(R9x2Ɲd]"Zjcoo{%~ZoNxbvVmwⅇ}K߷wOwW~syo
7w1Op__?jx(ڹQkfXčWKIFoefa YfncQfUTwg6iiε<áxĒNPɈ$xٿJ!Pq;g1}!	"CKps'xmͭꋃ˵F}[3
&B+Rkl^̯FƏӵvXpĤو M6*<,%	!jȫ&m-N^ M[Jt9ĘS晭O<!	?DDS,UTaӊkJ!VGq9@(]qqy.v4U{糖^& ޽%Ǳυ'%ĺ%E&opsS=FC(z@-(MAU18[^HV]L]8TOG=ëG7G%5f7H1cۍPHsjFu	!.׊* ;LqH)%CE/R;qRb"qόupPF(%j IY(`%hT8[eubzIk`m=+=)w |<R>\6.ǬlI(=bMULX
1,"v͙DZ S+dk=`?oHns?\{rYi29! E+3[PޝLh을g'u
	)nIRL%:lu_.9.k{^/j=@d }VKVg%P/cdv80xˊO~WpǚSs5!ч,Y80#u!Pm"ZBC!ISAlPfʝ؆hӅ3Ex犛Aq,q;֞=EBu:
"<*R𨱟c4%霭I/C/4})aCw2Nv`4 q"fS+DZtFV8ݶQjJ"s("^3[5&9SFKM/BW}VWmcft{.y /	Jqdwc6G	lZ:2FiI C( -iPѮ(Jxg+C_+&+blRtL3بRvLJ	:{?u;xo~gƧ:QNQ
lp5O$gDa(b?xK	80xQ| sy'"тHWWbv{׶]0
(-Jm81>YbY*]!i5Q	&dƲB t}gvaW :sp\3 = n
E\E2.9҈l^D(դb>ۗw9e&	鱄NA`DTה&9f:RTmbG.!7RǬ3A1VhԘdmob&ӭSMRkz[._{a3ޅ|. H[{Dl.t:YyˆE)(8D2-v؇tӉʼe*a6')<I)Ez0/ψd'$%cYe@ۭq[@Z1HĪ:yTK$W>{˭YacOHlLYmҎi̱[V:`ڿ2BiÉF:,̚8Dgl~|@[ d cdI,,x^I˖[~UlmhKLEN'*D` HjCLZEbtӫ%qpdþ3Qy9B&!ļ9u:_@[1{cdɜaW0G8F%fRa,Iq/#WZb'D%Ƣ:* U}$4BXT)aن-ɫJKD)_ĝp#BI,`$c!Ue_b8/\OtN]\A"YI:x?Fɫ@PD.2q/MhkMnF0"J)sDy	7+*1uCv"u
Ǵ@N;33E32>ǸM*
KxZH<UD3W 2 @IyAG"8:bbLk+ *Z";_zؓ<*nӁD2Hde6>{,(s	M
hVj`!h<ܝ}t/mDYvm}58NU*QTppʀQNމoxے\uoa4/}CHnpVu Eh9uxA,5A efAe[*{x×뎑_
H&\jΒ2.Po8f\aE?k^/,bûq FKҀxgX,YmQ	ZtAȇ"S g=k6Qz]qxB3T#/f[IIZDJʠsp+cAlV-XYUVu@vP`y
Z'5#IT>f
ă\)Cp.mlH V,5iRMXˬP̄[Hr6*s$LRL/AYӲ;:]Ҷ:2gxKFRY"Kxj T8[psU_3=R;.AC 4ajV1iHkOx\Пu(FB2'ֆldC;tڮ5ӧrQ՝žn	wr"!d8+q6)vyewMxÖ)@,yp*`1u7<0pp௹g7Fo^n3u{őno/5M$(-EG;m%@	oi~~А/R_hDvbnj'I@ol7sAA"yF7-)?b/'?KdEpF/c4u<H.ә;'f^c5[o\T4"YT+nKk[a&d勵5ì4cLE!H\"ڠ8#2]UPc&b#7Q[y̻iVK9&_鄩3b$I%u9w,tQ4W&&KO!hkB╺eݠKkVD}|	hiL˔!?)B|nH&ʺm/o~H׎x{.ß|rY?fiӴ;X2 !rYE.gB8C8PUSkQ5ZUT9mX?pD> 3`ĭX`u,P.j6ܞMW}QtbxU!?H6ԷÁp[kLn#I!D$aiirwap5f-~8%kj(⎻Z^W"w3V$n޻_?1O4VCHqɒȚX0[DOHm/yB.8|W2U ̝i3[Q+I}ܝ
-Ax<'KXYo)Udt"(74[jnRhuW7aWqNK8moaJQj [ӵ WOwN=Qh>cP	W(tVúβTԯf38/T0gy%<C/e)Mg4ų$L{0~K!>aPrv:d޷U|0j2k@ĆSaVqB}Wclۉ\*ՔSJf֪`n]qp<w)!p^RK8Eݐ;5sҥ+-36vb/Τ]vOuYKW-YUq^:/=V",t0w8iG]M[Hs3i=0*f	FpRs@	I
T}Җ acD tt^G\2(0O NuISk+|XvbYfn@<A!/M*9_nI'xQmb;8y)Ė7vpUMx0YbN2yC:nO|P(WKz$ݭ¹1'XH)Xd	O1*%A,ST5 II2/.iw#{#BHF2)8D_Ap	V;4ݨ2RE&H/wagQ` uf%QB9.XdlZ'1ATΉiY7Q'wncݪ7__8#1{ǟ>j&<=#9{8g#8I.괷>.,98#c=NX8;Qm0[4D45cYČ1ۤ$֥ȜA+WW52)`xUG=Wj˼dTDRϿ $N]nûx<m-8mv4e2	[884E)ebTΉĖbzx3\[Q3*[}lٺ`z a2 Eh^>6mZkx74ړc{֯fD|6i"rjamRi݉"vaDB%h-Ig"Q!){g}:%_ɡ+3𴍦KXtk?7hS؛h.`lF ﹉dXZlLY⤂*^!-Ӽ)팜LFa[͚ԋxwOġ@pfhIlTIU.DIpy6@ʉŬ2 mx[ysJfDOiBlyVӁKфૄ9ve8OIXU<+d߽>0:i넍tf ljɸ
}H;6BUkGm)wq3kxmѮ<Ev]B5HRsy3𗔖Mx'Y@5/W7&-Bx"<N	^+&JU }vc1p@өaN_U
cx
0(^EpTf"(B-/Q!ǧb)r# G
"!$)X5_I@~S^gΗ;xYo:*,Sڱ.
d `@VO)ycq8aI MRHf0a%xB\ouonY#%ͤڲrȺxohksTEV$I3DpYʚTAl2YuQMRicڌ8 m\TanO۩I{QIi}|hg reP;2E&MPOYM.>xuo<[-R / N ٪6:#EV>,ռ\}5@cuГ{J5kHڬl@4c'<ۜ5W)yՉ?vE|*]vI_7iҎڐ!HN4po#2VoLxVil%椥gP0Z epr#L<aJpcDi]o8rkۛZY*QLY%>䰜ʐZNaC<uts%5PFIڹO1-Vena~6e*%=W979fA+ÑQV,;)D7^M̀2sx;6^8)cHYɐJ*RAae!^8MfiN=In4l߁soo8mN*ٸ*$.=$@`}уAl$ 5
:&%UW{rd, ^ |rsˮPwqti.vxqŞlhlEVSzT&I%ݭ^zbm~eiX	t'	G(0F-dm(JYζVK&OMi_2yM=ViAuxhF xd&
Mf9rldR$o&RDHnA/uK5깿lJQK{iss=F֥z},G:gGR0GPd&TĭGjJԽRD4[_;sK_k2\oEܹp16V4R~5>6 =b|\_fd1T\N_fݽϽZV+W)M@Dp [-h"w8,}V3E)Wj];/e[@yGx[m*̝]/FSo\'Xą$1q32a^)sU펯stV_m!2qgAԶb39>9sN<L!(*Uvݵg%iOӔe(0`PRP.5ܼ/jAiP)베F_q+&3ۻdT5d@$\w LTe!kM(sL܀	ʰh]T9){+kzzmng+]ezu^ր$/єsX	bp##1DPA߁#wW^ؔl	"dryKRzDtSHJaɄ)âLkϓt/{OYRQL[!fӯG-UR9)@uOuq;?nm͂@QHD0/)eB!pay
JJ".k@WV7;a_'/<x#_=\h{fjw;*NBN2p< ;P;fpEE!')|+zi+쳭=	><w<ќ8a~Fp,  !u&X`_cԭ#* ъ׽!}
.? 2S_=vuES [wO?O`Eo]M^w%]J6D   F*dp~(GYSғS!z?:zo#u{"9B-7̵۝$L,s_qYQqn]ܕ
κ㚉X<G=uxVAk)>P&:	BC>ۨŽp$j)Յ҈MK>Z,|δ=-0voēOcڳ.<+qN$_k;q؞ZNQ C=1:A:ВAyi[.ke «6JO_,yK,8<7^o$Y
b>3j:1Zm^ɺ#t*,`5ysbXlӺplaK8 >yc	F@#̠sڐ&[4\ūLCB|nCXŹ40LjXSs@}rA&JfNAy$"6^)*,36~eQn2*+0ɧ떅r9'8IdKx{a()ƣG7=Okg?h[Y8Jqb0ybbP}J=Vh9^U_^Fm18xw?;xw7-/??	 ڮn\fe=퉄'q9'rN=Bq"CZSyrX5is櫇]'꼷g$dOi2<pI=P
|)'?'Eʹ?D_T3"% Ӏl~	kI#]5^//q,Flٴܿ_ޟXD;SZIRI`XL	#69+
viW&8ͫj]~Z#+Hw tfA'ŉ6Γ˃k5v5Ccy`}FDZ:+m(IÄ,-,ZP<,CŞc9ihD)GĔpMY@ ©wKzkC&W0l΍9KɃ>E bLƹf7cl>i@qM9USE0HJ[#l7Ol&xiFQLLPB$A2POLc3VUGtz:^w`5U(:ß}t˗1ĕӣUҁppFJȉi@KQ
B=PqOoS[#Z`o<2Ά<Legti`!p*:Y&2h.P; +{燐"_8-#	, ]k@D(+31<Dϋm w(;zUbAa"^x9
}~:XӍ,AݜVV;iR}1ߪa@eS:wLG<8	s 1"XJARΦG8j1Ɠ{b>͓;`<5r$N	fMhy%	%b @B`dbP@=ލo3UkX8/Y0uF_SFAFEhS%f($qb`Zeគ b%>&wz+@߃V8A88UJ2l_(`(%DW7Fh3D=rSN.Ut9k3:2t22;хȀy
-L3ȏABuP@!JqKyM&gVod#/b4T1!>Hᕈ! 
iMV[~iK#`CΆ2Đq'< a&olIiqtG?SSKx	$E1+ )FBfjx<"٭`$O-2:pT+D,R/yZAS3- HI%K8
ޯ^8EJd)cSfcKUu>{oo|wn}66g/?(3pR&_`E§`g^,vǼFѧY]Mb#gpG!?UP6HF=i}Χ;Z5Z\nw&k"O6!~aKBfN-)%H2zSbrDsUV.zd_I:vZYBK|Ms+ofF'iRS/Ph@f
`3۱;%YT Sf%*̡Eixuhwad3;gf'=ƿ[1u`4`<)̀8{m**pWmEȒ1UFXbPza:"V>YڼFH̋&`ISm>rK5,Azw1L;UXKY% 0UF9ټrJ_<Tu{e#7
0MOZEn56Nf"EwFb:BcGH6*S(ŐQbU}sDm$vjTnQ~MbUC\ԚtTc<d1{_3>ODщNNX'!A#H Ģ	HEӠ[JuVFNVtS۹:ڪveTgYh߻T.X!!C$A8YZ^֟(*pr!x)JRcΟu~c߷wOwWSLy-|V8dQc8CldY:jժ5UbYz/MnON6uىr/YR0MVahpY#2GHkèA-XUǣzT۳;z|KoA rӑxJ@5h.^OvH#XeO>(&kٶ?އ\Kh[[ iixtJAvCz
I,.{`oüos菏wG{#J eYrpn9Y)DyF]n	i>c KM?6gr_d+MH	<ҐA(~;ss86ϣjE/~`S/Khx?!mBka99[OIF\+Y""xM`Ƌ:]*ӓSɪm5VkI?	t簧Rs`,"9X|7gՅܔn	fq3g`mgkS1|v/DPY0<{n*Nx^.d Qى+}fF/ajK;},ʬiDF5CdˆyBedxxemENI ާLǡjv##ބӰl_lh)xmos1W?;o+MW7ˣZst7)NC)2sf
ǭ5q4gXַK4w{fVYiyݛF:$68@yB\2PzG@[_<>&mf7r4ND`QFSBNCYj2I_va/3!
uD눹I3EN
QCPR&X$ak8HՒYo+CJՄA䔴 ՝?/yt.$ľ~';Z,!%D9rlb*ہ̐*fz:zXBmv
|ppu)9!&
ʺ.~J8+ےۖkS¯n~RKW?_:n{?mչoæDzfYඝm}cv?/wfdv3Ӭ9u)FLfBŨ"P)r3EE<XzbV<QRY=з].!ic
SVA˼u0B8A}s0a}cFJSIJ_Lppb}r{?_ϽUooN8GG?~볗o}
8[_裃_|z#7P!Ā3&xw[`jGƃ0U%Nƿng|%_3 TE "2y$8Q%Do!",,[ɍ1	tΐaLxe?)Wm3> yo3Y0'aa4LH"r]SzR;&F;\H½PXuVTgUdd(`	p$/|t~/Ɲ8պftmmēq䯓MY		;b	3 E89;p.fںfLj(+dC\K,eA$aCf7 Ou.382stP̲(	OLHYh|MTؤEJ`MN}x+!FV<ęG/:S'~J fR\j{ɞx+3YݖǟݹWWvn;ɬf[nn刷B!-H(7I'fǵ $1B]MS˷ϳt%"Z{bF^`9jؼ|-MʥaABb\yɳ}DQH+DhH2^C XFSC&-k)B<&rPp#:;tĠ U»\eCױc1,OW/WХfV%8@aG£wQ@1%,kSI"K <\щKJl"."Y# 0(h6gQe^tCi`E$岔b=h
98:q?OXꤲx*t'c0-1Ѝ?@hWr󊴗?8xyTK~_?yU43DI#p.x31HH5E$&L;G+")Lrގ/&
ko~q!O}㝟N?M5T6[-PACցilT2 Nl\^ຮ6=Q9x۟~Y[7߿?˗)U53 rgS&e>DdmlM/Ե0FA'QzF^AI7)7͍NZt~yabuz%Nxq$@MS&2ii{;ZdjDeTnxawu ^C$.*de^=(=ww{3@mWsEOG{"_i2G8W<^"=SZfNM[b"2#d	*fNrbN֊6.m57/YI؎f0~;Nj!n^F!|88Zk&Θ#ð
>ng-m22ֱGe
`~ɜg@[	w0ga!䵴i`znP=̨XWmI	7v8w4OYBژL%EX"pZ
ԧ`ZU?yVǷ?j? n;B
ӕߊv`\ /]2>$C"2c#D8p8w?OE6xc1!VlhI2DZכ-ExqQ@2ȈEz<FDSLR׌H2	JtJv"t!4TtyeExa6rR=~kBї޿/~έ/>ϛ&xF}?oN0ݕ]չ_Kq_[oj6fdhtlT9*2l.=NhsC `TOk-}:qHH칚9=s<Sg%9FS% ɒFg<qɲ h[myhUHC|V@ӷ8P\V!yrOp^vO|ׇ s01ZlQd=11pz7b#5)i
;"Tv^hfF- _N`vɸ8hm$$^Zq:RM86abzZʚVI)N^Bt3ւzG* ,IDbff5(,2d -:fUɌt5}/t='0GWZûego|vᲬ cm >3"J-uK6$@xq
6"h3OMQ[l-L|<ks4?8GRh0ٙ-hK(3t!J[*JACpnQ:	@8ܛ@}fRl#wLWV/@IL T:4%	g8`6$\ow^6&]Gj~җ`gʒ){Tav?K	NXb`9%Ց8:=u(-(siWN說_7K2lH#J*d&YpTv;Ny-'1qX@8F7Ybae+MByKa.QtU5.g$KbhEGHق"MH<.w5JD?ȸ{Lx
Gd9&tDV/KPjm:ka}jE-CI	;D9?sXt2ñ2DvյvBizԁa?i6D$c5QKna]>"*M:ť	Mv}%~??}mIm8Mރffָā	;`74
Mlt<Qxv $c`d>D=<&X
ID c}qW=|Ukw<W+^@*Fv=s#}yd~\UʊgFI>݇o&kK;NONიnɟ.Vm+j&fJs&2ga%A9lt6ۊ4Sv*̩Ӌwg_Ƨv{c$/l4Y#IrAs3$%Pj5JL79OK!OAt}|$Ճĝ&VEg<q}hQߚ< klmKqj#+JJcD_)Mj퓏P6A^cإE5ިY8xsL*NI7M|2N8Ea,p[Zam7ޙ?c7'7Sq	trp\!ɆOOVFjJ4\XKB4m)ž :2z[
?U1pÃ9(udq
^e(ԒW*J2.2I`v~-Hn䘖ϴlg/AYommg7t}~\xj["=,[zn	
Q\$g;dI"!Fgc# 'h#A**79H?LEv=p '2@f̴Dl%
x8pyQ+/[pk˱
4h,l兀N]v4Aχf'dckI&YQ9GY#V~+QHk#EcV0Vҵ+c@`F((e"NC( ^M%{%ZF0#EǾKޑ^>ܽx|cK?M<NX)eTjسĐS)!njՠ<n4g KD?1T^tu	㽲KQK V2 <<azeo20*SS"?g~z٦wŽwVG4b#ZieP#{$dgRGQ*	FPҜ bT+nsw'i .r#YJ*b6QY`@<l5Zg&%b r-&J37,s(TJޏl+PHDR	,Q!o|^Z"Gy
FxqUplsԢi[Z3<H?DG<UӋvۏA40
tOGWBθu\<u-d&-q/F'J:&  "Y?N3i]Ȕ,S"iye2D<+[8VNK 9S;&8J@HI@l#v]㰅]Mx|e4܂z.3nvjYg'Jdd1Sʆ%m:F,yCf5\dkOn/ZwTgE T`SQ(oi/
(6Ne#up
ѱ۲PpX(t^tn|/~sLЙ(PsXP^hI!~%кХ ݡ|yٝwc*<>L,7r#40X멙QF]ރ*RJ-UQ]M$8N&	OJrtz vOC6o)uNO9=Xg_7{ίg^o{VV
OD,!L!b,ד29FSārKs)YZK^9K$s̤(yk^Q˝_|aW8f(v̂jÊl4JYҒm`a-eRz\s8lVBXVo1TmobIrY_sɟ,1^G%P8Wz'Zp
كNgXXdnOR2zɘ!bOo@mR)8%Ƨlc AbR1Np؂UhJzeF׌phŌ[~Z5PFG3aZ3}B1Mnqj߸fi' +p\`uIԃǍ1
9$쿽̦V.tIǛ'WnXvt"і>+$&UY ̥HɁH9kqw_$Ə$(ie*2U5c! ?x6HT`퉍p]xW ޤ\g '
Y$P,q-x{v۷¾ vX oL@
1>KBIW¤ex邘p/QKm\S2SlSѠ3eM%OQFcs
Ʋi/љz֤ZNyDC	II"ɵmA
hҔ-	6)MYRh8u:ls&, lJz\M9g<3c̷gIsǇKlW{~Mu䂻:qb5L4um߈BnFd:y<tNjn>
׳eOȹ|١U?	(!F~!FEKZdТjZ]z6mZ}eX\'abp-D*J%WV./DqLBdVpխ"H@e{a9$1(.	OFmly=P}SG]Zko,ᡧw?VvXy
*DbQnFq+|̂&Ho)=@# -d|)'&uƗ.,;㬰IH|NK\Kk	׮ݼmt]Tŗ	 r׍;IL8xV{A (|&|=8ob{|wvcvt}X.5`cdD3ܿd=F!Yٔ-4xw\RU|6
^IŮ:38X)	=qNqZ1`äp{IfBíd:VH }w>x;o<|Fl85罹wUׂ}cp籝g;w[a5M),l`b0XԈྻ&b
c韷6}d+Yne+|nM!0R\4 JZc@g8)=Cf)k`q=V-l e|Sex]=H1SwI9>9yE.Ĥ>oK1EI>we~(_V.DD1ޮjکZƗ%6J iɫ*	޲@,M?Lq0*q˽WpeF|E+Nu:r+]
ef.1~
<ey@Pd+s[Yp/uR$QJ·=s5fdbșfFgı&)6۟]?	Y
edv E|O	11 	HB;x}9}牌;_x_ǜoM&|n#_x݂#]haYlpB{O|Y"b1REOMS
I{HD 8MQZ8Wn:>,p[Ҙd_1NOAo9ޙ@_+FW1(+r=iޤl`9SdFPhOtYɀ5`wzAd'S 	>ѳh RelA	h	-[iu6IW4 {`B`ɚFcffIi?=BרmT hq6PG&x6aR>ᑓHԓca]J VbWiB	[SO0#JgoxwZ>ni!-p/$^m	c*@K ƸVgzިLZ, ŃZIxs($ikp+
GvNEOݾyxO߿| >zY |drd`'o-$jEd$P
B%LI, 7r/sHW[Ǌq]ڂGK8`I&GR!#xW $q`U$PG7}d鍮:n\,+[u',$ G<rP#o\bi B
G"q?9ۯ	NpΒߩqSo`nV~®
o{e`얕3gAWv,F@er:Aɼ9P'= %p^Zޏ`~ʸd67fY(	ֻ;Ix`\J(:i]Z~1]3W#Ak!,NXdC@}jj3I@H'	|:=pc@B2cӬƪBL3}ÇS)qX^H _v$]WWfzK8mMk&l[rFQaUnbɑ	I`ɴ 2|[/~?:J1#yerV8x9xIG|	m-W3WJgL,5ZWIB8}X}3s!*Cِl-I.jA \zݜttt8K|wYOo|of<.7ٝOd$>y ۄh%0|&isEuOx#6&g+}Fa/J-wd|y:[J_2m嫬G.Fb2abލt7OݍmytMZZW?L+9jS
U X@A%^2u_b%3_cٗ $,.)rDX&gPPr,$Ґ3N,i."EؙWOaeJ}oa/^ZnVA6'Ϲ~i7d|Uzo:`lyTk	h3.mPCȼ~53^2%9&J)t(.xF dflUJxO9j!>B= ڡL[B۽w-$~ܣ->ix;f628	ʐ<2	Qi]f{uH06ߵ=cd~%0*bYИm'6 bi0eOo>yqղAƵjuq	 LXũk%Q	qAM 7ì٦3,a.X;_~
}^%\1tU;1x9%N85esX4a&F42k	Kk7Ey/5u;}~6}	I=%esNz84H[a1fk(#k;Y-t6G|x罯lhvÌIVs\`E'tX.eDvoǘ}1ij4o~I?eYlNy[~,=?sͻ+Ú@)6 cZTq6;?w?eֹ	KOzl:Ám7ބ$%>[$(x.ÃϺɊ}%~@$̄ڎh#''Q(*!]iE񊻟{ۗ3bMxsҏʧ·3p+N#[qVlXkfnCgCNA3:I d0>8lX3e6WL2HdG=(VlJނq3X3pfd_ib1 P:Z+cr&7"d)?ԜL7W,_hM7p,_9kw_iݷ;Xo>UV4]
(	 cdJ&B:S)Ѹ>FևThxHqp=pD}X)r;
M4y{#)b(vhŶiо`vC	DZ\mE,#~w>ۧ&pfwWy3~u)/雿=}.>ݚ[pIm؁Vr$,P5PV'=.wؤ4oHLĴ¢A^*d1"0J&Pq\83>sh/go}Sqcz#9z
V.6WLc)}C#zH:<?9reM#@tz*G,.P\S?1[:]k6#e^mנi~w^`P8K߿1-~fO6^(n92Ђ $a[8${>ie8W=5r}1.Lښ.jl+S*"U35.+ћ`"XBnD:%D'LmCkVXY.8!gv.pp$8!9k.i: T 8'8V3SU`\$JqeNC!d$7DP7	At-=K Vg<?deNX1n*IQh%TY&	޿ C#Ym%#aor Ի?`TbKX;C?̸IOJ2A$N	`-y~؍;_`w/6_+3(2p&fR2Bwd \&fpیE`ほ9ahע[d]hho&.PGA(AwxMhgC)zJL#ë΍Kpu&Y	1 4;u\@9W-v:@#p"o*P,NJB9C6+ARA&$XS:b :fD :H1}Ul#Er |=Fs1
P L֣JW EU_&Lr(Hp(hfv_f$@6خNn<H'n8qi2B>M0)~S5QpnQ$H6;*ƸkmM'5\8gY=_IKHf$J
@P8d7"LVeld(?#O|'?XDKOϿ~*<i@`h78Ii,08eB'wa81	zN`՛i7Ɨ`ۍ/=n	EL{]HqQXdv߸9=|.}v:lx0mP&,W3e˚cF	&@.DOgP@	60aVyd+=-@y:dHe'GK%sq
ࠅs*rtlÑ60H=@MƲWBa.ǤNp/5uGvޙ@6p??X!)81dP8晲8뀬];b[zi.-.W(KSLܨSgpbTƶZۮF侪A#Y9*$k 1<~iP&k`-{	.";Gh `ADJT12jS6:GPhX#:ˡ1Xp&aHtLkXva_}W,i07KyA%"RG=`mdYD[O'N9Trk Ó;nÓhd?6Cpd>>o99B  {+`WZJpC&61s.qIgjc!012 _a|~Ϛ}XʮQpv-fq뼷ٰbhv yAYV&{5E,u9\#Rl\)&xeTH%7
KC V:NK4IL%H|%<6%bk"\FJ( Y&ezN_~}}6ԏ+tvQdI&ү=&6J8^bp>	@J[?S -2s2ZxΒBڰK ,FԸPy}P?7&N#kG'Bر`IKdxjmT뫰#D[N,8D@b32a$M!8օ*jO>ܴ ɿxb]ʟsj3'챳4QQ&z
IM"BNC[#%Am=ZF@O~+vC&pw-#4H(V`Y$K23jox+rW27,P+eS%2(24_k,Yu&O*cF9GNރi	|(U<sKq;wîѠ؝9&`KП%r{̀ :$ҁ9n lQ*'0uֶ]0ya@#0^E8M2ȺY3^m\cWHdne~YI3q,RXa(;`?#|C<S/~Y<ZMqn񴴍.cMH% c-2)Y5-!uY9@IQHNstrR4ٷWADд2)s8ټ4)hF!UH|R^HYy%8M23յ(\avnDҵ*ӟ}~a|BJ@7Eh㖣gp%ԖT^OLMUWc]0@LFKi% (c@q<sy
:0/ cji\qZ0S>Bz	jrr8ઐ`sHg5tH伃q%a$e_u=S`DH;&RNф߯GЕ#k^	vVx$pŠP0ƨi<
Ob#nZ}?s_݆]O'ǷwX?Uܖ9N]cٿ|o'R*vd.3a_p)଀i%4wFL[m>I~/.&]QC>V.0R;u8< 6pCh5,i#7ytk[ZclD2٣k;;Wlg}h(>;;L<J Q)'a#T2R+8aQ c! K`Aa4&r2:!Bſ;X,o{KI@!CO@Ia6@f PhT dS0.ׄ͆\DjG[&b9}xo2o89/y7q݄?^q~Η^LcR=,ĒlTVc5oT7*=^lRw<t!T,!LpSGT`k$ó{GF2DE7$Ғ0iig=`ڞӯ_9ZEp܏%5tCFJ"h$ z.ePbk<FRUO2EżIi23L?-0l" o
^ qX(Bo-`u LηO_/>}7N7?i-lV3Z$<oG1¹ThKR̎+ioTCj3CL#q^ծn9I`cȁג87zW`N$I=*jҶSEX	ǩ;8m㴒,e;hakR6D {Qcϭv*7&GݭG&*5X?hxo3"HV	E;/9̙"$3l|.7>8|wi2[a	\nC3q6xa-!r@ߜv35M]@o 57<yEtpmjFQzzBLI/٠i4<věװڙDfNg@U3<!<$64ߧgKskPh[|Ҟv=AE0-KA8`<'3V9NײT+mol)+`J	#ءuhThf|1		Dܴʮ?!eg'Ĳa<ԭrv<|C;74u}f\p89]#gVP&0D4m.s--Mc4W	U[Ni~xLQdGԔV!3WmXRW$L_|=;()\l Ih#u ps/&^R\qdRVGhsxpPk?8܏|_^98opaχvݧώjŴ δ9Hb87Ĥd5.荂]r&^`e'c}6vξ5\hݶeg8
<±z?U!Q$E552iPO)Dw j49?xӣ?4O'7'/ܸȌcsƍ_1b	Ug=UNAwYis*q}л{?~1Q!HS=Iz1qԸ]MzcwM`v&`Nb.'-l^?@Jsp54ǊH3JKX5<e-	Hjjd0 ]) ^F<Zwe%ۨXk~^qZP񠋹PG}!;mHMF竈	:>4ҁR]{pQZ?IGc-T^S}r}ɏ>0R/?_꣞CO/|U)-4k ~9YICOAQqJ+ݖ	R]&$<W"ӗu
tOY׵~w;1=7P	)܄"
Ʒeu+ԕVc2axm٣=V!*nUVA	%qơ1*}Pja>;Vv˿+Ä6A3JP`Re&|&&Ĕ=i ),Ncc!gBQ3Ƹy:S}QwmvQ-'kDJ-gJ !Ʃ,Y2;+ky)f̰{Md0eW㽏NO>9}<8'xQ<;(#!EȰ/#)6WDj2x	(E0jM97/;O=x?eY&d_,'8iqHrVD){/v
Q6ǂ―X[-ñp-u sc\t^rcV)<%t܎[-.u_~,<DBq``[%vaYȕ,xe· @0	}ӔZ =6o 3R' g)f;.7[ dTo p5\V4X|%(1 X**FdZ.t9\t u(Tfg,2$GHaDtpY0~Y <ZX֗v$,2b
9P(;Agav% _ȇVq]hy|4T>vq|FpIg郘VZyOٽ`٧v^6{Vu/h߲C>9X-f֣(b"\V>̋LuRC$5F2\2I%ȕ, AxK?`21=2FʕDxdq͘򎄔ekܔ1O9,旔mIfP'!fbZfJt;tI<xprmC+Cb+({[4 7H²l(w2fC [锽?'%~?9RFPF׀b2!Ӱ; I^c&y1heYI)	ӄTNߺF/0(3X-\fbcHշ:R^9G;}GO3vpaE]g9IAxx	5ΖnJ1A56nDpmwoI?RػӾގ~VNѝ^Ó,1Xo ۼK&f֙|_U?M-V"/M%"aـ-o&s4ئmSkm]oBG_pϲUVQpq\RgTc;MZ4ߔBa2:$h:z٦52`1Y0!uݗtW]war`\n]x8U{fLef࿓ ^IcW1|xHr+`}8!>8EkƝ']sճqb{i*W9`eÃA	OlnNSu*p.0-+=NFDX
;̖;EKIG sElq?iT4Xw
IZ3!Iq7i:$kvuÑV9lf4^8PQˉB=](.o2@mr*,tԫ979zL8uח)X^==?\e29$f;cۅH:"u*$Ndkty|2MZ&mWxq_xˬX6;F	
P3JFy$}ba\j׍n;9"ȩP|ʂi`2@dF&;[Q1>Ä)[:Z^;}wo+gG^9=55S's{i" Im2G@F	$7d6,0wؓH	p\ u^UF4 *-NZ\ުϠW#/c;f28B),a4B2o2y +j6+]W=?O~pr}rAJiKD3q{;ˮs{?w滿ztZPJ)P%֣q#(ö"	ɤ8!q,ZE3JɱJ2]19q5&(DkVO TXE^;y![BV?3I+e
|fG&7+B2IoH훜kX&vvN{G5(BKu)4GPI)7N%<H7D^Iv2Fo;ඖ眲f<zo|ny)O:>w*Kc01pDZ ."&Ğ-C Wvr֣жUWKw=R/&:zSD5cOE7޶˞pʙb¥@"XhF{q0@] '*1[rm5d
Dn[S"UT;5<؃۽{ٙ	t3gbD2L98_^C@,?Fng犳z3qk[߆>'+((Y9VWip˿}Vujr8q=gHc>P,g2]$l{cg1;x91A	|?2xۇC벜%KY	f(c۲ў[	Ȗ0:(8WͰ/u0J3
L46IZb#C5QnBw
!mљ4w𳰄l}Lใl7NDdRY$|	A 	&SW1-Kq''hݷ$Y˵J{AO8G_Pk%+	E)4 #B71C	ґ'L1:VÛǓ''˛	'ݎv.>aY>?a|;"3@	i*G%k<+B$U;Xx0hC?Kp+?ֲ}u=NN~6a6kacЄD{f(,|XA<^ێjOf!@Aft,֕腸BvÓ+wMUgt )sPQYGLaFZJ7΀ɐzt>b6mUhmW3&vOO@p"<I*X18Ŝeq/63P`sM:Q*3mFn?>jMmh$jT>WYũv,ˉ
]-L]]r5!JDK`],` rR
X/[D?4%+@BkEJr7St^b@g4=#V`-N&Dd3(33}_Pt$=FE&tGM\Q^k"j'HGA`WNf*hocAQYl]Be-J]_;MO3M:D,JQÀ}3r)J䭗њ+zOZKxʌD<RCz΂q[p k
>h7xZCC²KS>*\@+2 Y 9*E%n+J,4^0:am	ևaOn,'~k\!Yڵ4Q|?ܗϋs;{ͱ;	5+Ҵ믽'7˔H `^m7Q<{<@p">b
̿'9083m9kt^>o ӻXtisZwNna%ĂSU6suDIG2OhXVsydON-9+qڪchSU} ^*UTi/
I4K&!jLQ*CS^QǞ69)Vz,32f4mMː4cۥB-|QZ11|Ldg]jn-<hf(CVTeN1a؀;DqUc-(wḟK8ȳpxICmm5.DZ"xXL1Agr.w+)4%6c֥kڠWIV+}Wg/jٵ/v|L#& ",	R`8\^` -+5>tq@wp@_&;N\N29pc\(I:ioMq2o^
Xql
HQ䐥Le=uȎX~BrRsf0n$zxp4;a3`{L NIr3"yIΐwk$h\xT*CQJ/pvc>q[*0jV!Lu{ Ou[O3RU&"	N[q\X"݄{,/yuӖޔ=(v[Bebu$jw+ߝHq,+FNG!$A-*r̴͙[X xkHVzOnzrk<G*u':xGp>7'dOpb)W
)WãQ&zx%#d }H`P>d h4/V
H*PCxUaՄeyf\8/QabxF(4y~Ko7?&+d"#-^M5LB.㲡"9f<NRHQMf6s,WeG2 V%x-LGe"{p$Іڋ]|)8һ_7\Xgty/acĂf2yj*fNXPS&ƫ@m
DdShg/}ke"V;VI0S˙m7IJŨ2	&bg,n\<'ɧUJӴ/t7{9YbET`H=Ƅp5'4"9*ud gä!ޅ0P0`<4RnF%VxO	>׈/]QώG 8I4cjJRRgD̄M)!`<fE+G|AQVD4(~aRyӪeÖP>96yu_O;@@g|YAN&05tկN 2{6	̭Tƌ-Ki7'w{w;Zv˧0/<Qzo5*(8fB|##JilcY	
O&h3InDD[NQRX ̢z>l}w/?
G[%ڧsZc
d 9ʹAWXₙ6k~3Ih*&1H, #:ßgX{0GA	i[s8h<MHɲprp%Rq¶RV)p5p"cSC&򠍥pԵ
YxmqrNP(#bHCi:a	f,2$V9X}b~[J2OK\pQ2<NI(M*GBJN.H ̼>}sgtʏO#[yB&81V$>kFSiM#sPMzXf@Hh#Էc:m4p~E2".#>|ʓE}> P\#VE,ݚ7g>b瓃pMĸҲK"60cd
lgY@-WLF Q&QЛA<և6m}O~b%(Ǣ֗9iIӇaq}YP
\Nβў1Qp]AgOA#1V2KGe6e\hcEZr:YDIYb%'@_	l"d5g`o}~绿k];?>ݯbLH&>VT	vr7^<n,*Sn(2+т-%&F_*He%	oQuH.dDDj2GoK`3͉\$ql+Լ],%33<OL#}x0x˸GZ }0_s䅫uD@GCn(@G;hX}UdpYKD<O JHdNBviJa?*vO~*Nd8A:$Xtds_(fG/+5	W}"e QGǪfQuf~_i30I ݸ,XQ X5yO=?e}_VGHHcHz=v$dV28Vg[sqz mNj#)7g\i::<['on]V9 a/vܙݷk3t h8fmz:+\%aA[D*!蜽p>JZnOO$,n> -{Qo7{*pCC1(CG@.{g:7N'~A>/aپ!	EI@vQ&zd+IeGD#y7ԅs~
MMc{zCL	]`Lf20bN Ro-07y
M5Xc2u8 Fp/,wAVA;3%BZ!\	J5
>@چq]Nj~M,ʙNv/Ja:Eegz''°nlxZ[
>awl>yU|pcgfJ34%7äKjXg-p Ƅ-hbPMTFkZP%I>Ԝ'k~/~?Z۶,A#"d9I*&$ŌÌRDaG^8QYh'ߞ˟?oQ?z>;?s?^f|FzqN2퉰BDI)`iXʑC#-{,jt6o~y=r7n;X%D8:x{3DGK`	qL
֝B꘮I
	5tB7N'7RT\'l^]hݧ}jwlLF\*Gm'xiuћLG)4Ώ~w_|X*E`
$ނaN^Aq(A PbPwnJirpzpGd}TVM\$74#d ;F9앯~	&PVI,-uҦd"X5,T	T[.&mmIz=p>V?BS^\Fn_bɗwYob[?9|`!ʉm5]@Z"\jɟ\oϾ5
7{&}rN}zzV tp
pɂ؈d4%%:aw?u}ըe;p<jA53)ى^+ĭ`EgTD
#hC"|ſUqztT"?N>PʾxyPgL:pȞARM&P>Wv>xi;x]dio;Yn|VZwDbP:pʂKtŤ7xp6*lKK/2OQY0,ZHə7ցg*{zLEh+0N`	,Nњ]T9՞mC6>f *I9ϼbٛZ7&y=in[qa^$Ǆ' / $$~ z?^[ cTCn	Dr {78d"9\qp&RL"Ě@!|yqopSiJrI1?U'@o] `HhHr31ҡ؀<1ǎE ڂ^z}~hy/ӿ;or+<wr#M R	`bg[ٙr9pЌ9D5"Sp]W5#x		Vhm/o7{gXD|~3v$2xs'V CxɒCJɔX&}x,8ֶ,2tzdD@6c`hZ(8|Twe<MK^bD~tPhrۚk$s1᳅nF-X( N\Z;C͠dBmw*U &$p8Y9Z2k%3-5R.L%M0VPl:|_/ԛ.I8IA71c08n쀖s[63'AkbRdY8}zފf*lJn4ZuS˓ eŅX'xo(I	l?ߨy(22*F]Խi]u.WvθzFqG0.㎺o+mTUⓜXƴ1&'$c;64%QOgT*N|<jnlbvv/M+~yy.@PlgcAatގ*\堍-a-6WQ0_Gg4Tx\}}ǯw~ro7wg٭x  wv$ƴ=hxwg8Ux9IL맮K"<^Y(uG${	b|F"$p@&a,Z\#Q1	=E]@1N_x1WVci$صcmDUC8KZ8%mt=z9,]Wp{dwŢы6f./ec:EJջ;X͙]@yK5v
Gf!
c6xk΄кt~lrBag;O.gkL0t>$YL790и`=V7~?~b3jpȝeϙ3G2eBa{3f*%zVhr&4gQ->x9Ki|oOʫyGIB-]ˊ)p`ԻV
fRfkW"X-oLM{0=ͳf'5MB1<<wZFˊfahIhp$7J#V@
Q銋<5!l-K 2 %^xiR}7_|cQG<Æ۟aW
*V<$-PN[!tmn̺r/+4*)q0Vj:rN( *jz02(? 
"G\D%W0qu.$DeZI`H?$"T17Pf^pd2~dtҭw{utxHfLN[	3OGYfLP2<Sw^̮M-ԥɂ&f7~PcxGDI@^Li73ib{*[`Prէ^3I9Zp#
恪6I늠4<fWДJFWuئU4\>[\w[پOb<Nβ6I^ٟl4E`ݥ&)왫+ͳS^$PoUk*S9>Mg8CpA_p׿vd\:(`?r*%l1Yr+nG(AtAbW'8V-ؕ`Q&H-؂m7T0n܎PFJ23GVK'{p:1nTrZ'ں+iuGJYH2䠔
|)p	
=*hJ[fs&Ez8UŤz}2cxA`ժ/7u[o}枞_hyc$f>ɠd B9qQ>k0cۓF]V|S0@rxI*m}!HmאKr0*322">ŁZ^ۊ"s(%2 C)尿M͏wݏoMuxWwPv,fMQsq&`ZY$[R݋ZG9H9_H=ڵN2mڬ]x6/~c=_xC<zቇ.<أ?qpjo>T9ݰL`51$ӄ-D}O38]7|f]_^bϧ^ t\!y#n;x~wo~7?\aY660P7&W&cIfA4i@	^lN}hyrZ5ֿ'þG|jlӃn,qo!#0X6MW
OӉ>9pl[~~M U?-zq2lyȂLtJo3 {
0N[bn~MlZ࿞Rd6wm>RooOm㤻fpm:lfƨl$54s(fl%$6>s;]}rugg{dټ{y0R`5^8J	U!hτ! 9<ggK%=OШ`kD9vGP7L]Ǩb0#\nW04~j̱>N/4B! o'y
-av˘2mOr꾸ln	u+SvI.d  ]IP^ȁ6n=ns$؉slf>Vl,fL veiF)l9E⩇^7F-j?^aQ߮Vű݄='
˽qxUmmppm=VQe簭ŭ0Q)oxCHcճ/Ҕ5ep]Dt f?ldG0;tnw`]-4ޜ:m4VIJL0+	_v;O57'0Q^m}Wfŀǜl8+y} !l(9 F!%oIesJZq޹;H1O0ɭK?΋{σ~v5	!'dJңL;̰<p'zBVGvYE娙L){Ywr(LRʫޓciO;4}3\ΧLEBB7XW}'3@uepK䨜 n:y:}B0<o=yd]$Ԑ"3Z3B*r:$uO+f!&9 \͏>3\V3VÑeaAEp#XU0#xIWNn~:|*,`R8Y/KY$p"ƌ͘HNMWlBu5@Rą(sD=nٸXYR/~򭛟~~7{n~ᇿ?7͝O~t_w;O{TJD0',ڡi\`O޺gĩ}w~<mF-Dip/c}=/+L+IѮ#oӟa,L^Ow[q׎K?KMתÿ}dzp]M	7??xo7N>	ڝ<ƭ޹tڧ72vB*vsoSe%x\ rTH<$*No;Waw7Sol+X(@9%k`Wk ]ęa~hRWb2hcŬ^Z#;_.aĳk0E HDK9:"2󃬄hbRSSK~N$z'dHsO9Wlm9^9bVY[{MIz9M洘Zp%31> L e :BX;pwWl6!b/ج#*spaPE\ʹt^'5TAho=08`'1TO	ŀ68YȒd{#e\U9ʛ@>jBrhJIIXG?'k˾t?kO6 &%(5OF=	I]*+BJگs?*/ET^pתfaF6"̉G4s"r &Yu	M"uFiP}+/h#1ƒq"'	کƞ~TB
hQy+tƫd>H3Lyjer="lnt^uVS,58(3}`]]_ͅw򇇯|xK>Vԙ;%4LHkhR*lג(fS[CH u?*{9	0
p%H9AיBDЬ3sͷDmo^m=\;|a KIYK+`-QhDIwU8Il{ܭPWn0sV:RH%&%z"?62S~;|գ;{&Z",Kc $*hlNAU(&*CL2v#;.F6u|
'[JNoiS`]+Zn$rc`	7 8\ PMQ$ڶJ>q%//w
ƴqˏ-X-G1==2-Tq09EC<Fh\>4Xs/;qM=gdk\l.~}tVʣW>(Y ^9YE|0Q\52ӖP"p5樑ԋV+&nbG7~L=W6}%g?ivZ{$~_8/,DG%"aQ;aUM_,h8~X=E)7K^3pp3@*8Krӥf`'ȁ$".юEiok<E@IFiVVQkSl밣tAV±O'07"
gSp'*heP+dPM:	s&Npfh<JbȬsk57[Jd)R,,Dt_Gx0WǸ^Hkċ-鵩`_ۅ3 fԦPL2x0G4QHDb1ϾO	"NR*0LDҖ4Ax_z[xOnEi4Ev8(\1I XP2b7n]K7ahrCHvoNl􇡩v4NF׽T{!5` sA12 ]ҼH2kuL' ::ZJ`\)v[冢kms۷l|R	`3*8Dl?RBl֪z씔D	X۟}/n[7?~':͵'Zŵ?~H{&ypA jva0Z`$@1̔QNˡ~tMSL U<`O9G~pdr>;=dzulٻqT{c 0IkumυHjRdDcfђ,p}Tw,p0 a5)yϕ|Ec E{i(S+8wV#zjl͏ǞY%nl:Ui  .Yff~3NڸƦQ 3HQvox3"yDoPYn>t˓ݸ9ظ׹{awrm
^]6aT9?u3Ww/_wôFXO)$Ym AMʨNpJ3\[]a%ws,o;vj8`FjLbrFԤ5_-.I[8*;bXe=
5*}&|mQp&J(GP!%@(%iNQ
'R1<ͬ	л1@mqzR$_HWQ5T4"KYJޡ%*Ta2;Z?{M5 ̙"A
(&s M>+ OX/\,<	iábn;C7LmZe+g)O{2s%pQ7٨))]0:Yg\a4Zdc+Ӕx`!>t(	Gl'JAUrb[;渠&ΜF\z RQ)O-:r%kfS~K/8v{u/iZ'
@AbW!^k-ZdEN\@Ht(q%M.d-Y-X+ם''.i@NukT#af{N-lW,URCN_,$/LDe,AtM@"Yaڱxf0,@\w9'fW~*uuDbFPX9ea> ObϢrS&UvA$؜p`%-:2'șv=<5ٿ\0p1`!myo.4ͳP=Nu'm։=v(Xv3V0k#GNЩ7NJ/]=tէS|`굝=Etʢk˂[`sC6-m vfdXu5O'+Iwc#6Xl[]dd;l8bkk'{tw	$X',I)Q6hT:Xubu\M1 7|ټ-]
W!d2*g<2f$V`
@KHe"KHRn!QKϹ1R,1VOkr_z>Mr2_tg@S|f1EAX~,vFIgάcʀL Q$D$gx]qgG;ӝZq_/}'_Cn>Oˏ<Xa[%=F%X_R5ǘVJ0-- $A>
x˓F'y$PĲU+$v
O1kz|fi0ˬ#|cK.k.ϓ?=m{n9oB}F1=ǂJ4>eNt$ƨPg}u?3E&.;&E{T_;tk0(vG,):Q;O4tE7J$Wa0*ǌn+&;yS,0`LP^'Xåu/P*Tx\%ZQb[k%i0L5)xPي,& MjX,,7CqH`Ab[`uDfKnhBZdDYP]Вю`ZaKQΰ:}=ԓ)3BT#)&ƃ_tiUeZbXf0pz྘+H(JO(k^騕pfбSy2mA7?zϰY#irNh{0	nj1q#4f!Q=`sz	%'`X= W ÿ~`#OJxTLsxe0 <$(g
G:5u-D53)Rw2		V1Q V$a$qH!(l>_+ܒCB!)FBj7Lݝ,7[	8%@RKf˒p0ش{߮kK]<5-!j/ڙ;s[3R3SiNcciV}s<,5;E}(esB{ꦃ7j^k<'͜yr$\9xfga:ec}j=\2;p fd66_R@؛;s Δ	qF-)u]\hS*o^}VD
Ɩw
^4n2f
K2p>/""EgOQ*PI+,WK:z[ͅS2T4rNfD&@luS~y58knk8׳咳e#+2Xe9#.k'~h_?nC뫫2*W[qyrr 4{lhWxa+( "
ܮ!.f8J`9αـR"w%T($d;ˇ R1u`ekJ uS+ٹe=)~Ӛ%ehf	xHsMݔ`BH*rvZSd&~&=1۬bnnVVkvi[C摇>`YrKtv/,4mo;۽hmw<Go|x|Uf5YIC=~	"F!qty ]C;4unmA.N`eIF_Y0ddmۧlG{' ]e>B-caπ(bPh	B8L5аq!Qp8L@@"[QE钂p!n+=Fc$DoB 78G&vX%0THb^>N559bNmx\"hX?1*%$F "=5?=n\j4]+F.GgG\skSn Dt _y:.Zlz ӃRw[]a(׆ձ[`.e{E0cry?'.gE-_f=I	3mrхd6`m/L`d8pa
^bh;m:/ȊT&HnPg
1&sxY/3`APh/r&IA>61+H|zn,vANѥel&`p3!V	JS~DƩVrggkC)[C$&s,Xb|0,Ayn{7^Lؒ2PL[UmWzax]KE9 ֣f6z9*Duv tQ/޺t=O-,Q"BS{ j4#H5۹'gzJٞt1^$'oyqN`Lq": ︡E$	;pdq0Ǉd)zaÛ_NӋ
W';X/÷dJ}.;#9xmgfWcMb'>_?OV|鶕1hUUe|JUi>s;r9|]OXaxZ mD6ؖ{iG&GUT97L-`*P9x,NoEQ-'Ϟk`wUvvpAcΥ:<:y:!35k-B]1]e1C.b.O:
k>sv`C-X26"I)U=ش:559y,Zjۺٜl6@7,!2bH`Q	z`g~ *'֮ki:j?fImgz}<`iĐ4&zFGӍ]c՞f=T7 'IY@K	;y{%d){ij
0&FqjgiR:F ,
JI0tˍej  [CTlwѧ0D]_koZ؄N՝8U;~5n`j{?laR}xFR_lڽbڤu"[t+60!h\([%%JF4X45,GN<t.L)\(]ehDȞmBP-*Γ ۾"FRPLx}AY1Ss>y7/ã޹*j].L|(QmrS@{`,Q%')k1va22SΌdrT06iwwgZ(UbI	Pugc4Q qY!-j3 ue;8ՋuxFKqK(Qǣ/Nto& ]:}T,R2Tew*$65qF@1]>yNdxa{[np`MM$3ACO)2Tn\f3FswsykSs{h0%)@T9IgWdv.f޽Jw<-產Ο#zi
56ܸmQcZa_M۳c6
\0 k"9}[H-_⩭	5uT_#z.k6v0>᳓9 8YL2p@SR*љ4KՂxf]F\%68l-4 Z!`J%wkF͊, !Eu|u.6K<O<y<ھ}HzWtn;Gݸk{[Pdf@e-(
x/B)>HI14}6biA_9Nn;k`/h||_6.iDI7NYtf2`_!"FDG|40?,:Ͻi؍k:o~.ꕼz[/?lNH'fzv|\ayC]I3x*lDؔD%xJKhN9h٭>Tέh'>>{Xɂ:,h$k)4`8 -nsC=rԅjuB1EfoW*2n5  Fi:`D%UΟnY]Y+xX(C2n|kyK-/'snٻPɃT/b?`5V;a-Qlzу#yv<\LBhW Ouqx- %FR~wa$+BKV]Ӡt-]4VUڞ<Ѽ#Mc&82"xM	&v`$R,kիG*ωκ\G$h&[]{ ͖`5#jOqR_鵯ԺgcVKٕc8v KTz5Q`-B(t@Hyp:LvbPݝkKxJ-koJ&|R!ˊ.O;#spYEPXk^V]

sQYܖw5Sn)H GMO񤤍wZǃDLU1mil|qpoC\3I{" =fpc^ɪs-ŸƳMI^N5vN Ka4˂-30tNNhD f)`Ҁ{?g`#-~Ҕ:
F!.Z"@2lXNsᤳQ6V;ՎEBPnZ#XGcڣPa	GM}}cN!uzƈ}ʅhB,b9ޥ]lՎ@Cd207pb8wRlM]jU@^%ح$"iq,&hQ1_`!W"%B:Cd3ǉ^(Z*4c	QЏ0zʓ<ґdW9)lZ''Cub\(R] #
]TmItkK6j6>i:D`[u:)BbEwc&(9b`/MrXS8u>p^5MD)KPi2k`Zl[tԾFB׊HlN)-S	וnƯo~Wp;nESXyub׎.G'Q+{TȚHdP	b_4\F=
vNy
(6'6F|+M.[J<',3O",=tums.ݜZhŞZeW<ˆh5 	q>9A j
Pt;`)ʈknA]Xt'.nKhoWza<$c|V>=X=mT(٤1iXйI,Ɓ;!j,)ju21H Eus0~tag;O.-fwW	vBAi}J	 8XD `[a8z6'Euw={MVbs|_3~oۧll?8yL"RQ6y`lp_,UV;&4z^Ȝ~<W 8{0ɩ׺ͰGh*8qM6p*0.;JGFlPA1`Od7֗觿X>v~aֿ&e H`9+X.P3=yk 7Csvmi.kr?h7KiDRYƉq:Ӈ)Dr&NK'3';ŔKUl癴{r>ȃwʃ1@%) +%2+/3
s"SF*eu994{XC?~o#O̷~ƅG'-8ЉA^kA*pONܲ/)ĹK^.~:4u"1RHJ+J^ɵ^G$4VeTO2PH7xxul0KM%_xы+/~Qf?K\rRk
֟SC{,qJsf3s;PSMvyz9[N/{-)JEUw92<&ʌk8#ONKIIzlJ74I:6L'#Y)A%P6b<;A?S4j%J/>>N8`q+:M?l&,z6$fށg<N-&xKKE4Uo[D>%?`XEa,8|Ր ~;7?~磿/ Dsd8&3zdK5m59mufނ^ܝ2fI֣rH`صTE*LY(%dNs0CYoKӶ*c2ֻ_?w圣P.Gh(ͩ ?(BSزL-T]Bns8ʜK_;7qgC*UsxO,=n?}'Wئk))/rG4qf')Bcv(#nlw:RТ~UJ_=jN~s<OSf89B:6[	M|& 5Eݹv_foIѤ{ܸws@B&.$+8X*`)pqiuy9HtRIli~a+'I` vLg1&^u3]YTHCs;(D`D<f;`O b@Vhv@bk>]W5tbp[J}5*+FD짙E8.H`?䒻ov/Â=9$c,3%<A͈FˬuX$R62Z))wA^Ę
5koW6q7M	cN##/ǖDV#*#i ZXEls%8+͝Mq<VV50U,r>9@?]zH*9&|z5I&ڬ1$<u. W<Г&Cy 0̊s0ni^ƲoS(TL`dplU؛yGj_IAB[ѻs65ujlH؎Ѩ([ I_n"*:(=3ő@N7wa޽o}W騧jcGGntg!S=Bm^Ye0+
7f>uZؙ$ɒ( gKlDe}"9kŰ&c6Y2mC꾓sQ77fYUxChl%eԃUz.^_Si`ӃVF!q#ǃS#HU݊_<\(13p2QܓI%콆{kDΙJXctX+ewD>1svo(𽗶pR:qGJYH|؆0z`:]D͜PJQ]yMUki˩rwp[zبӍԂ*"|~=tg`NViM?a 
f_g:?_Ӝ6'dsc$'&lLNG.ê2Ɂ;aˎR>*Fs<Rא[ Uz)Ӈk08*t+{zo<ѯ~Yjsn/;ｋLdu&Wxvߺdn1+hڶ9w,ႷT0]D8 6	p/O*$Hj3gzG9i+߫f8sXpo m؞xv6
Qt$+"sQ-5ApHx ԛ jO`tt٠ na?	{mrrA~(^Ib9."Ueq&YkKCWIpe/I]nte3l(NZn!	$}&2P3[wQSz˾w$ 5D(b1Sm#,Ԝ Ya@Q99nsw9CeY_BrE7}:6Y"Иd&Y`4r?AAbV% ~ĕH Ḍ,1Oa̵,V3,\M<8$^QLQyd7 ~c\7ZZwR&mc[GlņPMxcBs3nyƦz.po]O2>K.3I^q@`uLg).ᷱ[<p*'  vzzrBΉOEo_(m~c7W[Cۢ2(8GQ¤e7HDƑB9*t: QȹL*]sUj-7-K..n)h bEU +)kJq؋yeuDAYGV-ʵҗr% 5X"Z7WGU7e`Nw
f%Vr_/RwNM+ܒL[gE1[y=`mQy}6f\4^'*Ԭ3 	DɀrXZmrOSԯ8F.9*&]92SJ#o>޳<*;Nb&2&{j}S_]z|^xOl>O93p6~Yy܅9/+Lg`7mu<p¡ .0pdXuDR~4@u³u;}Ch-J?ۛ~7owo[~wz_x?>|^	ǫwa$\
pGY8&~&1u%xFUuӺ*f²g5Փ?ȹ.8kiO|k=vSOGXи$xҜZ1hY:Ț
o#sx56>٫.74'o_Re11relu*hFX+?d8d,;+lb'yTL/,w_eDVip&P
<$eᏼ܎D+M밶biY_Z>͋i`sO1Ji7R)d62U}ɏӎbB&p]8ls&鐵q$WQ`@ȶ(f+J;XMh֞+`y3ۋ-B{fdZh| LѸ[ݚ\R7`sZb6xTlRX'D_#}za֠	v-advEIƍeӺJHپo(> 
D$"Ǻy-B ^H'MIaI^X[=5]PMBJyʂO䰷҈9"Dʹ΂I&<n"r*VӚy`.-4ERXlZV9aˠH!co84Udu#02#Wݥt6;oYK-8
45K`9xw2JD'pșTaoTD@~Y@ztCU5h㭟w3۟vηv<~}n~xͣ&^pWƪO;72x4ĘRĦ .꾓Kn,gI3=@鵽s&Ӕ7zhTo|+0<bkM\lTٱlO@pig>	_\iaSb*ZROILxؘ)ɰ%"
E4K e<1$!hRgx'3v(9Jjyk]tUh
ayԣj#ۄlL(Ś.9ܴ>9<>-3(h.F'rH}x5h#iBV umDV3%=VXC6nJAkGON+n$v,)7/{k-n&Sɱ6svCUÁ* ,/Uh\']7tLTsrr&9.N[:em]pQ60khb|dpƇG2_@,r(Yɛ/ ENb&퀪``-CMx,13/vP:=bu N0'B鋬dm8!ZCyīKdH#^0,Q׌9˨寪>M΋YƉig^\ߚN&Xk[ n]^pO1MҽS6
&T YflQB9+cg'ZȽ&F֏31eA{`Oyn
Kw
Z^؝,Sb;y_9LlXsB5lGIrƢčO&Ѿmsfll:U(J[WԙgD-!lN.r^|c
<5o52S9@YKybuArZkk8Nd(XS>x7w|ѰLMiOL  &Hxf\
#=411L_uE)dsQ==>6JIYx,=c^ ,ŠTA*-C=1~jBQ'aa,Wr\Fw1=ke|{ 
3	:vNZ&m`(ZNO:Go/^י/k6R,d'vыN;,P&hv	ZKl)c_COe~DL`D{jt. BkJ[Sj%֓,Mxn cZHPЌL)h3$g^U$f)X\Wk1|%4mǦMn?Nv0zv-Mo?f߿ޓ\qE3(nXDog6ח?k*:{Pҽ
8dYσ5X氺?u̽,8
7ymuwn~F :$\(e35%ʤE
kb˕Sl31)@wTXjb[t-wh");Ԣ)[~L82΄F&QKTkÙ6<zTrko}Nqg`5&E%V.Nb{֤,r_*'	4ǜHB%wycQ
_o0`}XF]uqTu*=L\{ß~𓣿w>O9zO^YZQ;_(c`M-nI		V(~[	KsLC{Qrd%kGo_?+xk͏>^e=횓"" `)uXңSB]/68EN9ЃZ%࿞pPmT4=ۃ?wA<~ˣo> ]|s?d~sOۿvmgwZ}퉿Y__sVa{$|y;C;u\^0I{Y3nB7 ~d{5/}rL>x0W	,_qӿz;3؅*kSɢ`e8hwx]wigWdκh^_)֒el`qsK4qk}d$]%DhƄ<jvm`61s;z`n~Ïm̝759D"B<ZPMQq=LYob4* {#J9$t֑3Vy/?z?щJf,o"d [Esԛ;ƃpy'ԭ`Ly.QECB褘`"m kh[	dΦX-m0cS 
(΄]
)4?>TP<[ޥZoZ3A?tDp=)
%>)\gPXX0\ÀhchIJ:UwX0LՈ!ҘrJ)t
P*X5%0D\z#zGDuG]Diwz/~AE VpP;sa;R ^A䰈j=C fl[l86NY
":p#^3`c&qNmew@\lp&s1Ӄk"pb>E:[gJbp +w(gz;ϯ>Y'}eydʚl\lTRAﶩ^?JU[Q:]^FHP[Z2*^DaR2_o@0h*堚r:u\X#fY`  El b֛A|ͧms{\ZA}I9NJWE^iXad6K &)aqmv$R580J05dʜFNS%jRjt9$
px#zS+PԄ(d}ú
Y5ViW-T]j'`ܽˑ0D9j8Tca= G;<G^A8e~骛lRw"(X/붪ۻRx`qo_Ԏzf;$_LС;=!	dc +[Ȑ`޼&jNe+#sN`ȹ,u(;"^zB\`6N+-/V-ѝ/Oa<9%ƢuT=c3jxW\6,'%(7{JYmG61y[6YetndƻEn AgcWwi9ګKu6lpt3!!'baC-:E!=u'>`z$Z{n06a~Ԥb:Ul`~g}I٘M+#r QfI5з(
/pX*u:Z'rySw?M=S)w@d\".p	3	kM8DċU9뫿o8Ѯ^Ệi!ՀX!e+=b`dGDڲax*[B=|$x*m.#Pܙ6,~QC,Z9YoĴ/Srh|/_;)mTo|r*.I0o>ƿn>ݸ>1:/M"sQTx*-T]K#b8@DsP$%`7Puh\>c rQ U@
;yt}˂Ld"I."8BeKkl	t;}ڦyj8pnvx{5Gѫ΅Sl+4Dow&Nh;<]-A)n
#J@dKF8f&u#kH.8]͖Զd6$ʙhgg9~d_GM>VB-0ۻǣ=|;&_xs燯7Go2.i>v3v=jGgp)x	<Xvq|sqbh$ݞ_d_<ʭ߭{?O£R~`oHI at LƅG퐂fǁBK-v 㜍X[:~Y8&ß(U@]p?߿O~pb)'^ #2wZꏬ:Ϡnm=y`>q[1Cõd.խt:X>k;mwٮNYunʻioz:SoV%P _ gbjDs2ղXgDzzƚ_Z$_NS;d,p>`)2,,$vJTufKNJ6H8xx]3nUr 0HTQS >uwI+(x/Ri8G߿o~y֏>:,X!VCh&AG[u`.}(:. ȗgAJ!@5lw7ѝ6Z@=[3Jb&C:4
~ Z^o"Qy[/i{V|lw'w/z[Nڰ<6¥26Z@ !-@J:8O[9T1,~/0:=W̽kde.Wr©XAŶ=rת2ʼ@JEug4[[(tWdV}/9%soDdF&mwcUfVFĚegޞ)'2L8IY
SK\qO@ "?3$HL#`4eL84hfJ44]Od14VtD+t\&z!vUs𖲇'*NfQ!KoJno'UX>SۿdܨtrHe0
5jp-}pgљGܘ55뽺^57ityb"(+q`Υ8N(z(Nl6C18Mgehc԰{zv0(J>'4)Zy/TQRhQGʮfϽ$=5v8Ep]ƌ,ҌmN\
+=K➬{ឬZSh#p<5qiQǗhIJֶIPT43kxZZᓦ@0ߴ4ӓĜr[uGvw݅d5tD'©4PDdA 4ìҗJ`u`cY4mYIڵV$ʬp,R"D% AU4L9>U)t6 92h^VQRfYF,!oYD	*iU)>%dB&Z.r1<+T sO=["lZt핻qZ1K9RO	7
w,<JpA=`& Zك5=I?|cǳߘ2uG	PuS(,Rp0W jp3z`9a=x饻~oUGwu{Ҥ(lw*8$(5EJ̩l $rӾLi]|lTsڡp;KBh"c2C Rl;`hkP&ݵT!ap%]6!X	@Luۻ|t]2E}%lsYBN{l%$
#х[thq&,5U)3Am/:lN=S2͏=|ԿhvѧtQHƺ(1.WiQ*)b,Oיr8H;)zu7!<6{o}x'; 4K pa(m#I	Z9T'욥?|ֶnYZQMAjDkx'kD#ǼB0'cZ5ar$h+@VƑߪGRzh)@Iuai?	h#$sR.0y" w@TO$%8sg.iGj\B2}H0q*IR%Ag4Kecp:0LPq@+K9x	pY,:~iϸ6ko<sσ~.2>𒵪7fN\(} J)T1jsr:6AȖVo_xh[$I *:VsdB딬iTX] M!x!r$݃B+8IN;N^{,`2_(|YPqΨAza%:e=8 $oi?/1i&1aҶmxUl\FJ/Rt)=U jtAbd>Ig9	Ypz3`U@U^!ɕ.RXeBFjЯ31{烷b/k=s?zg5íޛq9aynV#c&NUi)n4E}VjP{lX*KIg[">KZt4NxjN. ;QxδuN(R^=)av5+M9텣E&~ouJ8%O6Dl",|𠌷%=3NR)p~ӷOm8ihŃYFM ElYj~n|Shk3ZSUᛋF_zE	Oe{"	K˸P)X2{Lp SaYkiYf8)zn,x*6kwrsIrl[hIKq$34z1`%V^&BJl`'lM|;Y?vTmٺuw,Et%A&0HL7n)Ǜk..J9Qag~;ܼV𕃑h^I
&r,JC	 iw<Ԗ =	s"#?2VϙU>.y?n?W-iW'[iD9Ho!0A%[Oq2nw(ZFqGJpMNl6)Ck|q%T)bIɅr%!
yEUŸ_|ݕ]@G].8Hx~9|pœ"=9s~H>pb-(!8)4 i0Xq&tAܿiƈKl`yJNkPW=#ƚI\nṦrGm4LjF5Kkw%~OajʫS>c\2G"$Zjo14!f~`酣ȗZT)LI A"T;[#%	W"+\^wL=㪃1P㉞\/''!x;m.3&H9IQLMb
Ւ,6ۯnc+ Ɗ'*CB42ɨV>-*/,/:W8jV1f"%P!	D6yְS-._O3#`aZT	T#r:0x/7=x={ՅKS1t<qB:SZO#Vsa	gXVAwwKLj;^ zk&bFe%̂tdcO?&[Nys{^Q3/^<{ ^r{oħxs$ɣdBLI+ڍȅ ւC yJ(t
A<<AK9/	Տ2<+O: Kԇ$btGz g+~vpJfo?N7>~I|`d}s(p'v1&r8Ƞ$"tٱ茠CQ]9Y
>ռT{meX[g)Z2N]cҨxZR}+P\?/^||J:<Nb	ujLbSa4ǡ7DM ǖ<d.@rf17`&R]/NBnV*{
nهߍbnْM2T20 ~T9܍
6\?𺢴H5k<pvv&v|/^U<Ú^`\hpթ $[*e").ɧfXr^VT!+12lק7$i	,	I}MKE%&dS2ڝp^o(,|ispWӎ6?ݥͧ˗C
lF:Pp;Y"ZD55mĖ\,hْl%SS`
M<ܹMU6,sƱys1Dp*3uSڞTg7*Q܃CҞr-Ɍ~\4+I$Y8xKB+Z#ULvR'|64Q>,I)aċ
4ځ?DH>IHç$*-E]_h}>:v/E Y@Jϓ1

7f.1/Yc!@GϳcM<ptA}1
|@	L[wHaBޞ^JhߖIۇ+o;X.Qqy1+>(>`ێGP	o^Z!},$%IF-PgG20$g8	T SӼj1]2V_H֛HH,'n*+]հgi٪ĭ}_eHDn*q%Gr>#PhI&R]6>FyIATیTm>xoߚwont/~yDցᇳ\jqQ@cO*I'E"_dMRq.ԡTi܀^	n蠄m",:N6/,ꢨ6 88nQ):d9q*Tk0,,MMDL8DtގS8 u˅"S*FV4gjbP9и]|M;wfo<_PIaA5W`=>B蜔Yr</	j[4mYn]WmSYbL 8\f"M߲Lv.')*V:.{Q>Hm`RyylfPRJ%;9]RK~IjGקL$&OѪ&dLc'YDFdRANOX[8hTfhn`!27XP4vTd"ъ 7Ճycr=~q*&͟ιfbVy٧Z2:9
sAdrkCVFI]PUQT>kh7ÔtL\8M>,啖`>Zgm_N1(peY-iKx!mOo\;bR ,Mv1+	p,aL;l9*td?MWxb&g=ct@uHIHi}i}:s"m)m`o.Z(#f'pNYHԗ
̀-9U/&O@ð8dAuF::ZX"Fq"T
qv;vYjǍ$,Iแ6[
&:S|`WRw #t0NY$
?KmvkT+EyU'|ٽV4uj+ÿ3MFS3Bx$(:ɣ9ȨRJN> -5~#YT쬬<iPǹL1tx?\NFp6$iy1X# a:U8Urea2@Tdws	czKv̥Ԏv[F%*e6X  \] ՄUDAu'{=<L^zig*:aޘ^<鲄rhi @Ht肮Y0xuW^`=@JHbM=>1/vNz9t[I<BRsPh<5;q:dL'kvnlY[J)p"C=|O`E$˵Y}&4,<p>oLSƩ(Le)^S''Hg!ggoHL NI*em<SցwH>4)|䟪ݴW'Ikv'ţ.K{ϲ#3ނ7j#ԸD5.x8J=$F	qϺ[KpA¹n-YtH1szŸ1 ;+)rP(Q"L0:8xawW2bE-R^aH_2vy	8PdAfQ!:,Ykpm0Y5ޛW~7ؐ}ٯ;݇7Vvߟ^J;t#{;ӭjpN{WY_ڹA1!FkmSVpCU>:9^bFR:s|Hp?W)&>W}y|?X7hNn{k@p')<»p:|	
p8*R23FG%9N1.\ڟޘ`jAK0|taQM+{>Fa-ap؃=0[`eeNϵ@1HɎfym[+I)b41W#`P2id2
*V`n&ɇjF<fh!h9b%^|ٷ㶏D^ph/p\SI2R-#)tgY̤ 	.<}#|
NJRn6JVYiIJrDnHeIGr4*JI?3j[83RY46䝽~8O7n<{ٳ{{kcz@h+NlPXt| BO@
6ᓲ't[bq,
Д	5"K2,Nfq$MLPlnIh}H+MS0Dx6?0WN	얐S 矬XB(rv^e6J$eޭ-VjQ1dŪQۤ_9)(%C)lA,ƲOV,9
&	'T8!h
&JQO*lF|q,'ax^b+6"#eR,dib&OVƘBx~ Fx{Ebdfb-YS] inmMR3csO>^W7v7~7l9|
VТh;Kqp"S& M=7!kUsw|3̑PtWʝ;+CKg\6MkNT 4;)_,xo lDˍx;l֎l_ޟlMeqnə;Ś%>ŦB@NIј%
cN0 FJOV'Dc1LS&D圦q'^ļ0CG]9#:$>&uE1$L Nׂ<IR:WɆ$jG~9@vTvrxGw}ZuOބل7,`wQ+lљ7s_9z\bqdx$7LdSj)H3A]Qcpj:szbUV8gGρꞽ݃܆#~_n&Y*چn*R	YPPNe
XL0ER}gLUqtk"[5\Ј9iOxomvg7^w1N7JM2D2X45,&JF]ufj]\\ڔY7ndid;mlɓ_Ә%">Έ锤-ӢW\I0tsBc1cz}Jf?~=41fT$Μ7d`C~Tm
!oJGXYU8Vݷg?zfYEȦ:Rʄ-nN+̋.s@9sP|a>y7,,m|]+#&+l{$$t3Q7h.SEfҍ~P5oD3ybvњ|bnL8RKyĪDfNG@xIK~c\; grrBzJc)ͧmŊA]bddw$LEeiȠ@ghs&f*^h2\	(N"j2ó@ڐ1Wp&Wk[6lF+xÊ[.N`\JGMn	L'B~1uI'zhnxW'̍SύG eʃIAfktng3Nu	>٣mN6
X .1n]evxY7/"Ʈԣ[yA,dwEURu#TFszk64SYӇ߯{M̲C~rl32Xq\ IVɤ^ew`)5ͧc)S8Y9yF' 2LGxNNS2f9 #p"9<(cbV~E\+2N[ݍs/P[.Q%@`Xn/I&k6;][yOC	URn8xY$ERMaQe`7NʉbJpv-m>u:n:kK	`wl}RzlC-r6)Jc}k=5M"VGؽ/l)cͯaInZeJchMw"K2[sXd3(o3[кxA}zjht5`\Ą'Vj_vӖMU`k5fb䭩lѿz`DB:؃|`s$
᳖&LAI_ZH3D Nqy*Y|ı|wJQ3^Hpw# m^(ʆ,İ.Iuam#-Z/ҩ.!r!1P$t	Tc2?"w^kKxg\yɹЕ&%,5[k±5 ;pU\jKMK[kKNpe+`g#ϒXVJ(<Jya(8^ageK{DUZѦ˷|3ċ$EWhfNCvޚ>VbN6Lv(DuX?ܪ;w/O-.}QW.%i#Byo;]Gľ$5|.浝҅-o9P2GzNnYgD:$@ 8LSn9U}FIx<

F4{ qz<77i0
/M=__X􃇆-Sk )\BTNQJQ,c$Nwbo%xNU-*;xZw52>$$H4Ԟ^"h=B(Vj4[bvÍ56	H;ˌƠ	 <ݒ<&hVNĄYF g>0b CBxfid9X=vf/}vu0|npoϞ}aS}Mw')RPHQ1*cMLr@c4"p<>Noa0#@Sti/^QC}w|W7w>?~)h1O]4 JdBXp<}͹mx۟;BeEr{wʡ<8i	annL((A@$I5.ģ!
G_orUw/"dQR'Kil%`)ǔFHY)R:ܭ袱;8߼-klyF (37~xwrАNv'[0.G'4`Y!KW}ʈ f
B
UE	)&VZ^'*՝_ofn=}(&YڣQ?z_-iJ{^R{p2RpL p ; p~{8aO#a~#ߘaM=jjOhтhkfovK媌VoB+ãA!
ɁU=e,uʎ'
>NڨmGY]5OBvSҊЗ.<RHH+3
L8 BqV[s?2۬/^ۈmvfLHD-FCX睳"!I;tGX̑Q,!&=_	vൗnKy|6'z>eh\]ki.,73pN)E7GtrU=Ş%vVNq9$<[Xd,7`p#%<老(ʠYJ'	n48󇱭rN;=1 5`	UJ7Qg.%bqi*xM3l}"ŧߡh7SeTwhB"{Cnat+.=rJp/M*ovd8<HY繦E0qJRy|B|x}MiLbQJyXؚ>ٌ7x0DlR91_"me-Aզ\q.@BAfp  wcVn?=*Sx~6aFH9(V21X.Op-EfYXʈ|姏4SRGG}:'rAHu!3L(p9u?pzĲrd!&2a4	Yih)Xg]2Yi]rg!F	]bKdң1'^]_&糠IN`<hUy'rbCr,Âv*4$5/M0pdblH.Ww$Xh~VA[C*FlcTi %-:87$ONV!vB.]ޤߏa-֤X&FV1;y5a"Q@C2*eH-bU`^V.wR^͛Bw_z2ܪU|y ٹ62^b*8$BEUҘ\uUBR귯G!TGBzSDYS{ieBA}!]ISFJ6[v^tkj9ێ{ږc[;	\zZK2J`3;XaSEx*pRKrQxm`Oڈsa%Vں%>x_b|DcaYx$2yq"j{/뇿wgoGn'[K;Ӑvw7Υ%zߵoƖO;>=
*׷ӹ	rc 'tXh#`[Uu:*@	HP)HwXs$d0*X]QcE
:X2\:9ݥN8GM!L-IPGb%+olt!^@YWGT:|G?\Bܼ)آfݛ^lw~+gjC1seMKWI0_!>)qdW®3[B81EfNW΍*%`N`d ȃ6FB09`|bZNUQfj<rQui8%X3a"{|G/~s$g-$i;.^؏;Q+$&Un;w|ͨ9`Ii9,tŃ3?rlIb"h2Mقc[O>HUuQ܍S]np5M<ybⶵmMWJʺUFp=IPL"|
);&t{>.p[%xtJUUY@c\P1+̈́S*A7eV(yN(=``Lg<
a$Qd;Є
d6'Iәu273҆{W>uMH7[?ݽysq`*h06ցZ {`1ǝ<:E~N5R;e|*W\8%	3`\6x q4<xܔ:
G i EXgiYBqEICb<T%H/}4g*S%|d ׳2fw^~-YȄ9g:1ْYjrbCw=,|/J%KαI\ &$6	'71ڄ~ٷ_?xf/r7~1l;ܺ~e#Q^o,7eTG4^$@\&~<rn>cm>_> %NʑOں=tu9SONAqWx#&PlNF0G&`[;_4VXdY!6~\;W1@XunH&ĖAt{:\G/n nyQN](e7h ((mUIHG]X%+$ٸΈf5wvq.ӥi{Ig`:}{ 7wsXn8`+cԍx	p{4ESRm|mrcf}zL[?oxz[WSp8 ~DAٳAV8RE54vVV2)O@8sibt8vCj:`ptLN3|E5{GD0.!0 l\wwzБ[Yﴟ>ܹ'!J JD%.ѕ_<uOc`´ƊƋX| n
l^x+aDp6P|SՅ'&T{ ET?p 4W"(3p\Z\`nDWՔW/ ϭ&AE+!:&nP9& ܈ZH 3晴nq,Tc;gkKǲ]HMD;o,D{,گ]FݖS'а́K\!b(HpCFjD2J9kMJuK&<ܟ.-C[M_MFŕmu S TGpz'q̆bUrjhCOa%$fZ-6RG,;
	{*욐 #;˒
ISHNXѸ8j
d5_ 2gՑk<?X-:.}rhF/TK6O* RڧxqRy|0EJqOAq!x	mT+4F!4)pю-06z_Q:Rv\$Y}'E0f1NaT>=	[8oT5-q+Wi;W|hl#'[D]  zRP]WF̓%ʥ}SD#
+esXcpB`8;GjtTe9L2VGCFc5{bu!7_-n70T,rXGSGz fR$411;Q9Q%zGLǵmCXM0
C~ͷV4nύp# 2StD aHׅÏG$pIT}¡Pi۬:NFbtD4jjR J; ӎHh
ѧRqf˶Y,5F!Qj٧ښ=-CQ'Q
@L}D`>vi(	~,`ciyPj-q?6NÑ:SǨNDhEQ9E:nQjW3SWED<x+`l(47q4` dفTP`/$jc fԄ,F𐬵,L]GĔ2Arb\«VfKqQ
QnohQWƜ@̖yEHHc|4BdyR@G,sn)u<dtX-ς\uwVZZ$'
,af{ɆsL%R*+f6G҉j8JDYFYpDҒfvWԦ/uޟ^ǿoVRM6.9'e/Ib6dA{	Ut<ߔ,t(j2?0Q|ܜJB%ISP>j2fan' ot`q ע&l8xTuMTMyhņlyucڙlOU]H%@Eu\PLAԘ8
J	\nHq繤ّ8D5*cqvp>`kN0l_+_!p3t%tOE]i&t_nuxk2HȺ5phw7_X歑`Ys,Ll8\)*ǇA(q̇uYIMc~v_~G6?Ň7ZޗKrG_+Z<0@0<hFkg>ZT+Ǣ6l.7)	64(+NCEn\@ǐDH7vpEb)Z:˽fx]V퇦O/]F~鞷XjĊI3EU !0 1 rP[&zJB mWs<||s-~],?, xxࢥ52&(c׮Mw6]Ƴ$+0KH%%|=ouCtZyj3Q":ٽ.?"Nm?o;Bӌ#1K0J'&])O `':]&!䀁X=R#>;9Jϡ;،洧	-ԛ㦩'"1h3uઃѢT[on㶪*քŎ˟I8)j3ʃJψJ~_$clœx׉}1dT%
$zr	4v֣}yz
1[8`xR$& Kyrh邦~OMwIkڝ>ݼ,*@ȻoYxhc63j[H4 L E(tSi]9:>+2Dn3<0ʴS$Eķ:[.IӡfQhn܀'imS5{s"Ocm6wŭ/: 0Kn@בx	(#!woL:m؂ƘAEk'&na $I/hSYX@csz-ȩ@B-@MUQvP,J x}&U@@X&fHܚ>s,O@uc>!Zr\_w魍>TTn~ydؼ%FWҍP2
Lvamq0I"M`R)FQ'&]Դr9$JK..Q$;Ѳ2KI6ǥI7<1_<yP>;A	uQ$6vc)\+X)߯U(;u~Phs4/N^zوkPXMt	.2m#8|jyS'xANX3X,H"s\FzQ)/5Rv{qPW\|QPWB\wHPw\SFKDNěݿ5p!ֹeaEɩmvU@D@OP+uv-"a 88:~^:V/Wr/o~~샛G~?}.;(ƣR+s S?Tf2 BJ\Q/|*2le7o^ho~&pZD[OFZNFݤ !N0G'HAF(4~Cz0H2NԜU_qW1	<#&|pޏ^{#>Pg+lY3KҢ>Z&	,<Tub_DrW ]]͞&(7~xMX5ߪ-x{򋈓T%lhd-G4-ŠEk2ho"YG kr(/p8]%xIܫ]#zs;jsRǦ1)°ȈV>ASbe@c	0zQy@.QZ
p\-*1$1L3MbJ m)[3C%. ]t@U257͝_ڛ\Ma7
ͼ& W6ܓWӞ_s:]Mw6~¡Le[V?`8>Ԝ*`3z0.Ki;s^Pp V=s'ڌڈCK`ȷ>_R]D	ٓe.E5!h!</	z8!=noRuf)Gew	ғeP>qx[$>rQBMă߫gAvzG"]%O@CQ0<YI<VYp]V3\ceLKUVkwW#%{.a{7,k֤V{Y&x83TT:jm3Z1u	[I_K^WcZ9|z'/Nz|tV`yƹfa6hN#f^h	0I4&55PjKm엓`w(2RܰFfBg$|V__~*oQ<z	N%ȌO%Fcg	Hunv6ݦ{f=yZ2
`79(9sX |}RN (T9m`Ay\z	ֽ24gA% Tk0SL{9f*_i|`(s1yKW&{M!_gZFYTJ $v4vrdi/&]jku^'-6?dDۨ	XR sUCU8}Dsw'!6~u(IZjJPUA+lf~eT`\MA+FFO[46nmhIFlB#f,2GNYχN@JwҐàkbJpdqRMUG`$Pim&*~ewϿ8ˢ|y8p;#UlĩH]n@6|tMnމV=/%l-A"\v;fy^?Vڥv($Xc3遨	m&R+~{vgG#+:(C,5FI[T(OQmR:*	3!Rpj $ڱ3/JBjk	Mڛ4UQdjc{mFGE] ׳zȽSR[:3@]lT,"0+@qp]w e+8bD	m]>?ki:G@S$ʝ>
0De2%93y"QdQzdssݴӷęu8Hc[pa05S,YA^<{/,=8/[ U`UÄ;W>/KrB_l+tՍvf؊gKˀQyt](E5zXXkTJ
u{w>~}g/|)bog&qsibw.CҼzqJsR$LXTQmp<gI8~*ڰg]YX;o}/_ßξQǝ>_g}\o/ሗ$ִ3){%IuSiJsEN J>Gw?aeځRbK⤷dND3Mƪ5a8x) Y.d "H];zS	yߠ}4P*ۺpEu!.ǂ`.=ELsGE\͕ %He4'7UGߩ ZLl*MԟjcՖ#pFfihc;)˴h3{ƅV3a_D`^̂9H̙
IqW-qgzobҏ^Ò50]oAx}?mlZٲJB# >#8Is)aZJXn-GMEYN
@w·ߛov7gYU;݈7x?{o:Fdp%H$̀%QIh#M}2mՓS#B9N$-DNZYb1d ogAƅ?FZ5Nusݶt KQ[K9# X0$',l.#GgZ,
CɂRho^~ΞQ gW_=sry|]A~2.ս_~_oԡ'垾v܌i+:vqGnMxl=GYRYiCP
8˨˵ypmSZZſ/opֶjy%ߥ^<ٹ:޺؝oet	ΐ9U`|2e=66ܘ2D!J\qy3M^m'#ιdULF]P}ڂЦ?09'Lڊ3t)HxNUazi{47TV%s<}|?|<Z c,q弒ZfOhM=W!Wn%:fn(UO;&T&.{`	k'd{@,_pr+D(,qe4Yϔ@.bPnZAaZcKhCh!ؔu_X筓DO!r$YY/2CǧLʥNKCiHN*+t޻oGhf'#P$it e"%}Nw\Gks\Mdnʣe;Els%58'1J-^"4~Tz54wzNԡ?W]Nգ>7(,GLW/	`%5S.B9Z88"*)`ܞ=ښ2#S|~&7I]U?.nqi4

03B;@D%w"`:h	Ȃ WtON|ڵ4gW-b5êVlο&ףVCʙ(Lp-MzM:"y[@efyza:s;jN*lMpp+嗓8r$]V׬8(l	qz)!VɉͱRi&71n~JzJ!ź,̿pv1)ra28PEtLкP΂i0_Ń7}_c3w}S,j;63;}fÑR`l3U^'Ġ82YupfL#
~<@Kwg~SBxrUZ߲ڝh1o+
'I\DeLԌiKo^/:૷$)GyR}T>l	ٍQ3C'Q"R<U0Z29&Y$r.3Ma`Yո'	tԑHꞺ#lbĺy
>9#	c"
`=c_!#/$^Q?G/gC>NӉ6
7ghDFxA`f䨂l$ZNY)'2=A6Nۗ2t2ĥ؆8'pl,7QJ`qs#kdrY՟?ݍT4 @b**(E-Y0T	_w3B]ɻ-K= {$Oda=SQ+:▕8s_;?~/^·o[;pi?},p'x\	EX]U
N(0eǎv*Y8m4/'jW=OkwRA۱贐)yz5Y'"r֩M,[Ɵعw_h*.if	5ӑb۞[VU~jb ϐH!V\tO#⠌oLkRX={c?e$XDc5`8o	#nRV-aȑ^=}NxE(Xt>x^Ҋj&0gDBgՅ=$<榘S%)W?x1ieF  `	(R̯E=Η4h`g-p)+l!0N:ܦreŮJSjz3އNs<hG$j-cν\GGH'Ω摮f{](bچ_ZpSTtPS4f\wͩM&|
>,4P ԒdΠ,`ټF#.a\*:C\:MX5JS6xp<V)[w
ⱐuM] #Y[<O[oFp,t F$Ǯ υ$It9ZfG͂lH5wNK+k<t`AEP{Y̽i\&WΧp󠥾v@9#f'ʸm(2S/ܽϐyΉCFdegϞM,E)5f@JO{b@~0!  =h6dn,hU*#[3ԇJ\֐/hEǿʫ,<AT=yՐq}<6q^(aȕl7xGƽ؟Qڣ)o8K)#jI;\rt$
[$3\ups%+o#rW<?߷Zي
C_wKtw'Ϫdu{d^&,lܼY7{^(@f KybF%cOD"6[*ׯ}:Iye.=EeNIA֢A5:r3]&hNg3Ÿт)	9!0]\J9&̩~TFe$5zA@sdL U9v2"UIT`FL;Ap J)*jђs0.'iMjN^qܤjoL%vOaY29h5ү=ݢCm	+eZۧ+G :$>QdQ23Jb&𠃔1b,Nf<"W^MM31<N51qk2cSg:N =Nu|F/oV
lq28y\Cu'6(l^8`g[0΄D,p@npVڔ
搭7'l7icwS!,;4d5|95hȝEmPmg<n7RWX?D&Vi,wjY)0yi#%ز8d?E9s|{{lFmtf8Rr}xX.۵.˜\ums&e0i\um>w&~û>
[#:ڨi<^R
pi yL!H&JNS|qQWTAZ>/F$O)sf!ni/֖	1ɤlte$qP AKֵSj/ڭPGH]]-AG2cQ%	I7x,WTh*ri](7~lNH4kN;'A̛ի[NWrCzLHr&w2,ڿ5+CM~yw+
\m}:N4Nr6jE5^s<.䀭=5CPsi,T'G|p*<,TLZfp+Uri5WR<Opl8Ns
"w\D&6LDM{6c?F/TSQ33)nq!	vꄂn_uxX3B'I("˴6淰5XJC8T3z;NbT)~zl\:r7vml_ڍ9vcox?|ny%zM+yt\m[NHK?ga% us(@+zʸ@#gp Nۅ-cd
B5+֊P$W7vWvqP_K;{W7O8Ho㽫ҝ]MKJ&Bp;&$+>n;p%,I}\ue5Yq5~)f} G	|İ4SQIg-r,38yHvq.ڢ<!1XOR[q9#N2\Kz9X)@J pf`)*ZjsVc	,'I> pԑ1<n,-y֊B:Ţo(%%x-t2QnZg!,]6X7ei9Ӻn&ė-=!w&I\QTg	
{#e4$]X\*-0TZ7_D}qa72?}sy~"+YDd`GxI[d8K"#s0ܵX\lNݴߌvG`!.$wƍuꨗrsCnn޾Ya#gnEƇa]<7_k=92gHףk#r^+׮l#5UdR.]~r{gQXi	-Q#Yhڵ$qk@tz7|nl	2p^USz$-~sT!Fe& xDD:LCXq3R6Ԍid_n
[1o7a	3M-6g
%o,'DTm"Qi(ktO"`'h)xwQش}w%Uծ{HrPͽq%]jai˶	eC2'x0XrZirXk}LY</⮃Fr[=9Z_J5-₹t&C+Gt&֬&	bW	< KI- yծ+lHXrLl`W{a?xw~]i{r9s鼽wa8Y$Wf@Fj1_(~N;8v>upٌBj_SO^6|'7ulLpxpithd2bG
dg('I4[p\nF3!(f[.	,6;
9Hq2ϕg'c67oa}[-MF,2ƍAG5!hG%wKek[b1Xr
sw|6@ªHѨk;mxzl- 18~{xÓw_i9׈rlz:i#x `H$-D`IZfJaBpм.m8z+oTEW;rDbZߚ;ӏ'?B!1f|6٬ltWB[x)b9I@9H"oBzJ,}'됪:1ZlHsMeXh+]oQ{FI7=[ Pۛ͎8N*	Řݵ,v*֙V2uvX#6gTd\[V	O(Wlԩ"*kgU}a'kG.§j~٢OL5&+^'2h춁uq1X	Tŧ5%OT#:ݴU9۽vZAs '48yN"8{Z4)1RKY<:eSW\?3ߟmN+8z6<%'99{H7HQ[aODU\]MS0٤pjO=F$9Pp`Wd\35n]։\[3$4ZoKG[[CtqyQO'JoZ*7L6H,v 5Y6Qf23f4T*AQW`{< ^x `gP ?@![Igޫ"J!D  q7G;X)xyǟqB"#:=1w7=J	3'U;pZfS%Gm9J\Fu^kSEK Jm[bzƛ	_`{?|NL৿8G/	6Yt֋RaE41#JFc^+u^|4'6떱eA>94,ꁎ%i{^z
r%)+onA
pCT18H`:2dnD{ǯf47\Ǭ,ZhS8=ph'7%Ojd,Y=LaV!"O	>IW\yȦ5O[!Fr\U=^av[XdUp*E0Jk/hkFyN3٨c;I=
<qCʳȂ(ٷr+aIlh\/q` V:a-jAz5_e-{|˳C/2]9e$l-DXGBЎx1p9 $%n'S^sw5{$imm&CE[#IKXfAŁz[y{Kmg^IrO#ĬlȘ7ƉW-aK;"tcԲY{>JVKp<8>hPZi4hblLp	h ͘щBǶ#&	TZ,UtHhS['15dG77.?cx=y뇇Eq\x
e	u\ p73xg8EZK	t(PhT[5MQY?Eei |U$ͯdD
U_i/')K0ݻ7e|N*݉|RsܞG*|f!,OpA<D"l+g%Ȯ0UWnj1.yˁZ̝.|uK|oF	^,At</^Fz<9Y1qĹt8ȏ1DTa
r(M<1$<H&@sTgViIXI,=J%#i54;
!)g(,u.dg"'A#h5@xN)X.}$NF8 s\$h'0@/ye[ẉZ3p|`(Rh#u3ˀteh3PV
,w~Gcve|lIX3$݀:ƨ2)Ik2qJT"("	hJxWEV
AXghQM
>*V`|~|R+9}idc+Ͱѫe̧\J9;HBvI6+ U"sii~?G|}e|>۳`"5"
k[aU:^OOHED˙ UV7VֽG~6wc伯zF9+[M̵'4
x:0`-<7p%2NuT`?{ ~o^£r`$쏑ot7J6I` 5D男AڼsZДb.0ir6FxWIY>QlJa;V0 ݭqVxm~Ah]qWےΘ^ULpJ9L9N00 "ۘքSfU-.8nfkf;%TᶶπDEwvc,mw"y	z:~^1.SRFDˤ9qFcH2	K'F^p.ZŀׅbYp1fT?{o&y`L#pMde|M{WZQ 2rF9{;H_G+E	<h3w)Ƅ8%H229BR4u)+`Rq{c
bQM3@#n'\>x<kg:yh6"(#AhxdmI`mT%gwQ0(S,W\QH^A(\uWќ{1D@VP7ǗE+ȲiʭSߏn*cZluDsK듐q[U[j[i'jEC/~`J; 4)'~|L"!ۧҐ$xwh$8/ཁb&qx)pjU&?7Ӫ.&^dm؇N:3*f؏]H$,uS7<y￯~ZuTWLAF(B64Lա_}iI4일|_&>ß<ί9<uZB&E`U=c̛Y>k{sˌThJc&Z	s5^iŃ#Lc!'j	,Ɛ7z1
Cqu6vGd
ψ",8 k1bsn6lzf^!E?+n;=<G Zǳ睴I8zauvkṚ	3HO 2̔P8'I(eD}ʰ,Ñ$wЮ^);kC#睽2R9siFƺzIfp$ <:|pwP.9oe	,./˷`tneJIK%}%N[2#O>UĄ(]{\2Yw#$pŝ=w=nFlQRi	% 
^9.6L*@]YRzFt[[ߺ~(V"=vy0OxWo GԺT0ݘ\l,S7%'iǬ~y~W: a<]R5.;"4Z.K"[:Hm  L!FWd	n 6cǹ!0cL?9'St~OZ`.rx0az&#fX`CM`iԭFф5ŶMdF\EJMHM&c?LV`[8=o))awvfWwv]
&_ DiIPd(o{c5٫:{b){U9OLBMfPx6!zP8 jJZ@(6r~Bc˒c/|^uIX\V̺b)y'Wc|b~׵B!r`zu~W |ѷSȣmH7S؇*B]*)uʪs,TAN(Q?O7v4sCEC)x" E2k(U:OTW7P=HI^rjlT7K0P=?Zp4QϜt`RQۡ2mdW7|fYoK<s.;{H%7ż ʌ`X曼TZ±`;j$mq欀H6-m9Á# Xh͔qUWyG
868#	g!X{}{s׋eĴ44Ћ 㤦]pM<RsA(˾[-A==v^3G'Iwm%(U(yV<d.h<m3%8X7l
?{lTo$\#*(dDe=LHgN&EƩq	ΰ$r""nݨ
_n>㰿[7]+hvW#zÉ@kD"WSUR^MWhѽiflXd{ݽ9u]Y,2he^%pHl8߼Z/FiR9ѭiAӢ+#F3X$rdU f31P̋XU	ǉɩ$8fPE8G!R&uiݕt^>xN[5`++*0';{ҺD:XoWTrrgf=(P"kY\^ǱHg"g vyrRz8 DV2'.Q:EE뺂6A
Kq,^t.pbvRˎ<E|KXOKp=mM|c˸Ù$!XC`(Mۭs"N+OWi,t H[0U)P+zu]_pOPduĔ;xM:=~j6[a|tl=JlכE8hc!$=-Q]&x	I8EbSIG)d.éNl	p
F:eDV+S׷,=68󀛙:W<^P#[meTpV4Q8"zfH-2d	]%Zj0Fz8l_|dy'["ԂQVf{l=AlSH-/,\>r<1${-taheYȽnj/A{&SjbppiWmN	lQnT۝Y)vDHhPbE0RJU6$H2]掟MRki04$˖2g8I;|*:%`A'ĮR0ںܢ$Ѕ,pgڭmnͻӉ&\D-M4q2u`2>z8s@IRp+vͽNT3ᾒI	zb2IǮfrp%,iWy`_#_Ӛ	bb0i<u9}ÅvCi >@2</Pu6H9XgjX0,aѬ^jqc\GUy{{uMڌڞAܧ:,8"'\
@9RqMOv\,Z{o/"_hd&&
@5NppKk;xs?e*CVt!&Xŧ#;z3gWv7ɠR3Mg``TIԴz%_}tgAM㙎%¢2Jks04x?[#\)x[6\;y*_csV rXHT`٠n:-j4THf<2~{@:ÜwmO)*xՅYBAcfD_;)oGNzmeJV{ow;gmbwEA80`aEhIm9f!ɾ9r[3'rRS>6/]gE`&S@`Sx=X+7>|fga@Ȥ",0+0InV IuDBD[KγFKeE&:D
J',[ZS:8e8f6@sF!e ;Vza-#iͺ))F'bȍ 1x
*Y2$d][DFg;sq
>r/c7;&:fT]:=0Qa>?;J;viX Arx<$rk3,Y.ThT&Y¯m	la--錽nѷw/W"XY×2x24`@.Hܿ|?~9,|08_\+W'Fd5FTN!+A_IQ`Wq~4`CYq}11GR^![Y.ShQmffRʊFfڷ]~b8D;;H&Yh@zbrSh%|7H1CJ3/(Hj{~nk3o3:t
TL_O{}'{@Њ-@s9"$$Ϟh6FHHn'r7&gd#!Lp^bL>yn6v3BL/FU2(瀑ajg8y{G/>wɋo'ꕯ3'GA?|܇zd`%!T@0B%<:H$UUrsew_6 ƆBBDY8wMf!Mw[olxYg g f'	0D"vs)$ qJ`-7/ң(QJp6jIHA }"ރxGF!T@Kn]I;[##x{;&+W0Hu	2hT"RYw1nNf1../!f7&d֢V1DBErTȬr	ctT36%,J+
Ȗ%ÔŢ e$ 8Z[:2b}hrM7g q' WsOX{͑Q!qnN+R٘PTcz::R.~2$8"JVmkV"N֨$D:ocnԒrō`vƗ對)c1Q"#QΧwۂ+z&lBI:1.q)QV%`\`v\[54M򌄠ykl# L"GaTb"XEg$WqL7K@6fLtRu m:̳2NZW*"*"أC3B *<-ဳ&cIIMk'YR	XN,)iiM fzֹ\Ef3"*S^Ebe	smP	gKdYUpy`ȗ4Uk.-&wӏiG瀗ЃMuD*㵋 ~7QO0w+̪u-qlFdEUwg??'qO^|.9ּꞺ<!7.mVo:9 /gpWE TWTE-#ujgdW=7	a}L6	_qtί'h.	 @ha:`	w\At~vFQY~͖Uec岢^A<|GyTDP'%3bMxkGW0I#:JD".Ďۨ6O"H(F]s9f@=?7IJylwSGO.4#?L>{'?3ڎgRl n 0yAdJ>+YYe&V8j?޴|rޞ:icUf:+VLv|!ƫbޣ^^d>Xq+yt\m[NHKK1+]	3% ;GLCQiuGrW7_c=5aE>s|Zʺ.MT2<y[8vb*L<VQyτPpNInxk}	_.&* XG^ygnoߪB񋿼+ο!UجȎGڍp/ZEQ
Ua5GPK%\ꙻ:)Ir#A DЊ<-8#L
W#J
YO;w3whߕdH{mDylnpM,n] σEF8Qf$#
!0=-Em
iJT*l+,IL)fY<{SkՌD0o<̩f^#ᝆdRlv"S>ﻺ;\Y7!
dj;hȗ`+<5%ZJ!tz
tvoתJ=V=x'~|_έLgOo<=ڻ錪DD	qZ+XRpzϠ{R=ĜnasRived\f 5<b6H*muo*S CHRު}fmfthv;Ip0Lk%LS<;\IQVq#6 .b
|H,zO>6.P)\ۭAw0qJIpeX	Nq=ѡ9#L_JU/='53g?sUԹy<R3HIj'	xd6!0s̎oqLgPcP1J9Ĩt9kvŢ ۄ=w2[L8JG".܆z^iJ
0Nʕg]AϣJz,Mio<6vńFe'2R'pjA	bP>QD'apV"?)3ߎ#iwm줭jhnBAsw~ɧn=%:P	]Xm$GjO9@B%3b* J
ZlCڭ1/ԫo?=r7a۱oȣJjqTV8ٵψN`7:pĉ]MXgb
R`kUu9{Y_}<6W'w>;&%)\$-s=St+C5-K[jGY5?<FO=XPV@mzj"ǓSJ&X)['0qӈ=kaT6ćAԱW_џzSO^2Z~w4kŜ9.zMprN&S%ley	Rߚ?{3wDOY#9۬R<Z;^_b5+4>+ -L27Wͫ+Dϕoq󽃟4x~lszxd,x(<?0\@Hc$(!Jzk܅ &Q%C n#`%-8l`*}룐\|کƓV7inJx=}y`Ĵ|sx))d$8zU0\bLv8=LṕI*
^{@r0CoU!2ݭfOmaH{}1\YK$f0QFJ@FjR(pĺcE8UNm`?Vt :\T ql8I@<:0M:qVAhj'Y0-0=W& &É}]S`NY}^0 7jH1y71~6-꿏\5x2pj&2%[wh1N 0PQ
įAHCH{DidʠӸD.Nq\opkEJЪ}
tjHYOэsHZPN$GIv3?~0rKK%ZcJ`dupH8@g%i˜)D'5?G~7XӚLy_~L=_~tb,X@j(\p<2hasa3ws3t96k.9:綠ɂnjm^0`Z0_{m8`/RXG>
BB	5_J1MdзqNɇ"+Y`pt=<P{V UMqVrKrUM̻æEƪKan} pG[2=xӏJ2>[Dl󙴽;#PH7lMػY`㿛
DX< %JX3)vz;e`CaPY.Bs31j\ЁE}m":Hf$pz93R8BOpfMk5)' ɧߙ||J~yك;?~ݨ(s9R''>;[T=2q!1+9͂&`<( W1#skG/gSqAS"#ۢ#C'dC"620$,<<=c|J`/@hEcX;+_0કbb
XRt}8؉uIE*3~½ޭN>`ssҳF`[Pu="7!z"ĩp&iT0$0H?X t^/>3Sgg5 {Ԅw+\aZy)N>,:((dU4ҔҒҕӡIEX/G22Ym786ʈ,ey3Y7F"D$+sÞܫr~43u@F2_J!@uP|V-ZCI1 [d)Xj!Kv-(!)vE;$S2	
><c$HɄ|?.>oZQ?9~r|Ni8Rf/P߂疱|-!`-~70|~ϕf\1)4JqlPUM&Ia堽' UY*Tտ6"&&,+rd},MZڕ7LY[PW7K_UWw`7F7uw]0PzLjٸHXhf6TN#z4~4O!$jFzrP88
l*-g1ŧ܂q278o'n}HUf;t*2` `KLe=4)P$0CioR/]QpPvPֳNhu
dvg}ofƱh$Hᐌ3N%׮D]*$'&ͪ3sQ@8YmjP.tke^w !͑fckpp1hde	Yaps)TI|+5}Hj1
dYw%s7b'*9Ze̲G=}߈p0w8\D%@%~ LŨsʠN 琕o9Vk~|aޢEq<C<	mm%ӟ{=?!HʄdN5 i>UCe!_?F`i婛&Cb!k +qfFN<8xV("wD<vDJ|'5ԃ
wxgӳH^	4Woo=px*Ǻ Qp ܎Ƽzai{c+9(b4*ehYhُfy΂JYk.h
Æ2ʬ@5-} ᬈBga"gh8a`e5b@j6Sx.{=X{cP86fՉy8 ?tO]U5]oM_szF<S%XFMv?^;jp`MZԣ-6G20i*CSZrI|~r?}^7AOG̳9jTLNF%JxDT"C.
(OR-74da"XQݦ%4\dbpc	([٠"CpLNX }xp];11~34!.x.VEe.0NZjO>ɲ"jծ`b#4G!s^}Zz(TlMظnw?}_㫗e9x,p։ݸn1n${џFJL^2Gǿu'Ig0Lc%SAjo*֥/⤡	NN_X1jpU?c4>&:B^qX.p:Dd5|H2.*rGu⥢\Te?m *w{CM$xޠ5"E,zˤlBxљp':1+C6`!.v/O/Y(i/xe%H.
.(b*58|5
ݲrSCJ7*F+ܶۺaS	ڴ	g ŸT.\,;q)/Η߁5DB-<瘀%'4NjSuD褜MIlrUe^K3[a<ԉ[8ig30<)nw.=g%kl ϸ !^zd"Qllc,b멼ٽhZh{{8X
O<cC>pgWU٠Gf×Wv|D]J%L	9Wđ]yzZ$~9!@C Uix{o^:==ת+uZh# ㈹!Ѡ<K꼼f)T1}x_xMC1pAI1Y8|n]YsK+-FG1=
Yka7AC腃>	rټnB?B_	1"In#H'1iig#WZqѪ[kfvߝ|O w>_ 2_7jRS<vv@-UlNP5&#g'蟩jsAD5$!cL©:5j\>{'Ry9	?zWtۏ6I֭Ͳ&|nIUq)8'MGC,Iiܯ#J2Yt|WxRNB$(/0;t]Z&
`X/$CHE(C4H[]1>݉j`BaYIdЙN\(OI`|#ӆ8"pJWVBp,f`P{_?Vys}uє]ydxH#Z\'{5	Msc|3;ε:AGi"Ĩ{tcn!A9%O3O4w91ӅI:ZGől&5'fUpa&K]?|wh_dF=.eb9G+2qI6T8kY՚mI-*])}6[W`."݉Zi+4V2D@.[
muXQq}U_~nSPñ:~=٦p;>0N{s\9Ӓks92\J؍u>3<A@p눳
(VD8|`Bb%>~w?>=<x-Tۭ7qERpNF_Dv"ud֒Iykon7nw·2pm%Qyn[pRHp8ӱ`l|iT+lyƬѓuJO>N׻Xp,0,Y	`&Kh;.n
Ig.ZNL1 eQ]]~쇽:Bp(]ZPb>tgFOܱ	58O`9Fd\ΤްdB{ },VlES5ѳJ$fhJJlkeM7yHiI~/uk.I9@f.fonփ5T@3"םƪZӞU=OwD5v]|:IM2#Dr i	:^
;=(W遂*Z0^\ X^$F`6s$uMtLp` <&ژ*>K<r
aHEOObF%
Y*#c䌛j``]I72^MeڟP.-HNr9k@H+c}DK$2HaC59٫÷C>|O?^~&~F
d<Xݔ,
 <LĔNUBqsczyh.(V[Y?}HƀYq([cqU|EMrzAhZ"U_?x-p>WR!_g=r&%ANidxVr_oD8wkŬX`s3B,!C*om~@8jι'y:xh&N`F|E^pu/؜a[qcKr@Xvܵ	aL 'ZxY9}ՙ8u}DּnQO'tk^.Cw؈cBKѼr#a@ibFLU*$*U)R$0/]NX74WoMJ(?0F"ZYB-7MJxˉ {9e#* Ҭf*.D24/Xb+JOv7v{9΍[Ѡz5F+Bh7s<y* AHZsʙQvL{u>eq^OreJ@	
j%s1uSr
\S|2DZ	ۇ O=%Q'96re=kzHrJx΃g'uȒ2,;;Big@Ay^5W`r?z;8s~wPin#P
Re-'thIaz48вJv'lmթʔs_~u߹]i/oV?s{('ͽf_]I&ԬO޺_w\ysj#T0]d㰄 p6P$f.I\^?,pH94C	ȪtˏNp+;,~%**" 謍c8#^.xrFI"[8ڐaAFM+ԉ_FCEO#IIO5ɣ一+cZL	\_Ur_mflt6(Fז.R9;SST-bY?lu0vf]'4g\3mAĴN"c/yo^UR٢ΉQ,gIuJύU1v6#SP$J~[
\\X4r+Շ/.=H{c!ӂjrHdGqE0n
R^Vn%b7^;xOwΘk~{?썃߿QUT[!+)01<@IHH6kGT/(e]r_=@?aE+y?)89h5`b?	tG0ʖ1P!qWݸAb.Xoy P xYcw}+ !O3}:|0ott_:lՅ{nrm<qW̉$>DAD[ʞ)ծ& W|4M»aH:X	u!0|	y1;*,ٮ*TuI-|LYN
ǠܿY*5_F6H4B#OP\vv~9շwH!;Aq=dQz JSZ[@|Zpei	RB`MơD$p{
M˩cYGh6gS^tqGדּ!<دiGc2k7ÂPqu4͸&e1<rJ,~g6im
]g+Ф9'YujVg^zk5#8s%u*B) Hk&HDLr!J1ܔ2C\+W_e*&lڬ&8yWW}cz$&3D17ͬ2epa)i!)+.Db'RH[aP[I&VGa1.10F4N˝IQ *W"aMX~kvC'sFg ^MW`h{t^Ip5\tD9Dbf"Ic*(UU,2Y"VvJ Zm4, 3'3h=wrk,SZI**:a%I`:5raAq%wHp H9b
n>x]i8*Təix'l8Tf]6(ʳFa=U[WlFeZK0 #|ݒ[󟵛	%\rdB,!נPU.`=rpKtbc飐]h	 S"#A"ʬ#['5b-1S>)
fB8ęzk E0KGa'V
,3%u-gou+X@l9 5i`aM]qmǨ/IK J$p@'#=m~Qm;䲔)q|pO7պ{VN#YFbpAS,x+sg uv&.oaUy%+"s^TCsǠ'T̷^{o>1M䪍#pRVd&zrhs1/b$4	s(.cǞ8`֧rB0TȎLR):A{f$MԈcXNg	gڡv v\= ]ж~Ĭk.zL <
m0'r4JOT#WPn(C#˥x|Ix7ك.S]ٶ	ЪƬXe'ǧ=h\op&B$:ĥ=V{5_:s ^u|Yp:v^؇+7f׺h`6VliCxl9,"hrxJ%X?Ix5)'GJ`wpp3-αUמt2{ki6\:hV~TJ0*-hJل)h'슆ԹL>?w.Ip_{Ki /MJXg׆+N Bphd瞴럔$aO`C#g</O>~ek5u7EWd8CbhiE׏88nM=:(ɭ\[;{2ZI2@L؈<KCBy"qhޛ&?y=իʇƝ,L[Pt(̙KNwY[֝	h7lhpuvyo;y&}ggruqz@?Ò	`"1*	p5}rzZ>ם/7Ys30e8hl	X#5;8n&z-GR75AeI3MvU׹_YUN҇ &!)CʛWiKn$_0;!vlhwKsսk_zw;ĸݭטq^],GP?}mh©nkcY
ҀO Nƥ"U/jPu}W玌̎b'A _O^D&r`/2ߛQEd	݋P]1࿣JKvxJWhH䈂KHLښ3C*DI6,s+Z*qPHͶ`K_"ؚl	wќS[n[VRDҹRhdpme#Bd}᷌
`Th-:yd$?>⶞qTK+\lz,dE$4"3'fUbۂBpL@u2 Y6T3tQ5TU"R%9kO- yb^R3!.91 ;L =cx27pmP1BI0bс#XL4HbWsGe`ݨғyss8jRdp1n\F7g!zwR e|$v΅֥5@YڪU4/{ėVB,xd/:v+G&[된s,F8ʠrt/XFAbȶQVt^'.;{iDeĜfN;6ʝǬhS;)oE279f~7?7Q-$Z(IH%bZfsȉm=>fSc
ߤnogr2*__X<q,F<(bD;ŵML:.p;+bJh
Tkr߼9}÷=}7?\ڍWvo9ԕ'Gd!M[ֺ̡*ۺcwd3҂q>^%):|&<(Y)`S"BEQhuG0
B.BAC`9D,S!"ǢDWA䕐B `mA#ą/Ͱ>]Mԯ#RF/5β%	)GN[e	͘#Sub;ku3,EڔN3AY(	P4v4SG4,͡sis(cr[/)#r138
,	ڒܛX-=pZAc2VRa= jɒ"8sQ8Fᎃ)i[>eBBn+٨a_ٕaz?ӌB`Q۬s18X_ߨpE<G!!k"ÁJ;.tb7؛ϰMd
F`˵ՉDQ[?X_q!#(%܌5=M..@YǭBzȂ#	wJy'5$>	RisA(cM'ٸVm'G+ɃCYu2G)5=,`'zMNғaf>Wj$Ϙ#ίV$
B	FzrJ3\$$f,	$e#S"IJd5L0mpZrvWQXr}f!G,reI܃Jq)^:TP%vkD\fvdA#9|tnFˍ/e5{t:A|dpK@P"ࠈĺv+wo߼璘|p뗋|瞻:0Zp54f!.Ra7N,g'H1E-ƪgQiʛ{Fk W/I؅7I	as?rwvATc].ĜADM1ς,*lHoܥU8lk 0RqϹe4iEfRҀu<E$T'0
Ʊ*yJZV{G͘I6>n8,2	n)n˴"MQK6	p"=1."m!眯Y6|B6|d]c8H߲7ՖcAt#ep#Kր3 ]	W'b:-{G,%mk;&8 ~?vٷ&)!v]FZ!6z9*\n-Ȅ!<b]jd2XHFy,wwDI+'x5LE\ò8T%El"X9L$7!{'9SǺ."FO`!Z\[[(DFcm_7Yz>=/5
\GjI{R)bhFa'{=*v&x :]I7@uUź/ZuܭsgcaHLm&N!{͇InOҚCNRo!w An>&psů{^K6jÂ2hjԳ8~/Ē|iqL1zφ.
6^糽VIlEɄzE&>9ViOx6m-lD/BQ34OHP8B0od^fVNNzE/e┮c6;u1_Iҧ]HT6 &)Qa\:ℛN"1{fCKS)_.͛l}j@fAæ r28*95(6_68	(ݳZVJg9DL)')j7GbAMuSkcBJ焨28Ev mzA0ta*%H#,CHEfCy}k"^vQ9HRGC3/cF-)	Ҭ gKS$w2bgP> 0NMUrޯ"AÛu"R|&LÐ<?5*&K<U`I18BjndegrLcVxv^L1`ϲԆRh.)jgRtԇ9-e9x^Ne@Hvh~0gShS	`Ws*R$p=@-[/9~}dSP\kK"X2l7q:4<@0x枭HOxs=V3ARsΆr@=fBR`!Qd CW.9$E#ƉuP+B[;6@0c3\
v4vigܕ4f1B#jցE'FR'f"MOB#
HPpwL@9bZ 'W@d	ϢG؂q+4zc8&N7Fym/Nb%0T2pMDVo5^NG)5",UƜH':(ˮ*9ZS\]uF MKkCY\[{[oѡ./~|~+?ߚEIfCz~Η a	DiʑDlTk9׫ǯKoؽ_`Y*TS=Y)E>jD<|B}jVu僜!.7 u&9ze0o!V~F9ځj˝3!,tkN%Tnq&u-g~H7+K?mbw$\riAh(^P|vDyʌxu 0p*v5ؔyJu#s0.	mژ=XVB#	yivY-\|ZO?W#`ٙǙv2c6©`-W75II06^^GBؑWlc<t
mia"t6!&c%L6Y	!',?y=kGv;M.=Ѱ,MɪdNjK^Ztp9҄PܐnBOUJ!iC67ޟhPLt6%M*';N"' F8`RQEdZ= XzfUd˻Z3҂NUb$PUKFV I)a]σlX#S$W QNZ(c.v@jxRߋWm`숭Ώ>F"R	spOUncJTxR ^g"8 ~6gwkwuzj{<zO,ʼ_HʙVYaJ	b
k|4'NAk3IUNTV:<֥Gj6k:ѳև4qiT7<O4CȶA%u/:֞^VͰC,'ZU/D1T7±R]!z)988żàiFU =ݻw~eŽK>-kk{L{O/Mno{蠠IHJ+N8A4UMص53"GiY6tw~t!$H܂hh}h[{/}ޟ~
s_ufrDv׍Vl,`IdHkAan(	XT)8.6v@qR!#,ŻKjmLqwpOڕD!I%
#D
Qƙ87;Pc,ZnX }kX, *6Y0&^$Eb@2r>L!#sڮ7 u^cEV9ШdjDi ;Yj&])zo
,w!p`&FPޭ6e<pOH%d<XDHybbݱc]ִ/wՇ{3$)޹>=Dt!:6[}M8r((Ļ`4-t8Ы.O뎇DO$rk4Ah6_U4z۠ц"7v3T#]'׹)hGVJ_[{o~?#M[w?M?o鬹7ЉFtQ=]#;)G/]NMki,NK+ciŮz(pj!L{'|?/W]3Jg?Y/ oy!N։*7e 78%tEb,5p^%1^0[=6Vt;'7ﾇ~<t*|AGm#c9Pfv|gh_D		XIQQLHvN(3mg.lh'p}L1	μJwp.aT+:9fDiYKn	QmۻZ&c^*-QţɃEf2x@Y*.Z뎭Me_5Nmޯ/O_BtoNv'87n4Ώplh A'lNtӓ`>C2̏;w'e˟hSocP	} eű~\)NGo`cZEMP>v³nkoH}< m'F/T(<f*2僉mRvm+ǙўC	cUทgQeup׾si]+F߽ҽ[Zd)N4u"33D+O,.GYaOrB5X>Vu!@c5ds6ي>?ыc[åpYZ		U6Z]c
npו,``5T) Jzׅ ՀRB%i"PP)~;y͏&;Qh.4mGO߸ߞ4U3hT2`ypV<LGqҝ.tZF#8')"39
п<ylpb/bLIpt>=\Q @1K}i
'#5DI9DO8fhd7G\#9yNscw[ᓪlk!̘>$i0xHnqk4U&F9Cc%{(m4U#Q/Jz6	S̒?󝷾~a>76/=ܣ#_$ZJh*ah	^F$]%iw_cɅQk()?6_t+C~9ٻ-An|?{vwLZUHIr^c1X	whiuAsI.YѲ"۹?94id+5smx/2.|k<-$+8K&)"o.ǑQWK}&xO|jh_*&+BDpr$s͉rP(FE̠FHkKq>,bHPuVyT0J+%Ȝ(&^#0?:ir\D!ژc>\&D**Xbkq/-&k᯿WǘG~;}.64%/J	gɳ`Z{KGDi
	g:CGSXK1=Ztu8Iyt\n3?I9(8+
?Pb;҂uo^ S8Ɓe6 *0XRL)s;ZNXK@&|
9Cnٝfԡ=3)dvDdz]pa	L!v )aS7 rEgۊA#kj1;|k睃w^g,"2R?Ocnr
dM5p21Q>RY !9'Q>6s_g{bJpR)-p+Ȉ2n%",y%OK֞UFFjj8/+qqg{Z.< ;ʦ?UVMIHM,*q kępGwR%^hϬ&5ăyzO$(WCtK{:%m9)9B̩H>eo_FXD^~~
ADHe'<u*%.Z
+uJ}Jб'ב`c	i;MHM:DueM6Ĭ1n4^bNTT.o_]I(YוL_//mWQ/tGN;jٮjy9Pؾ!(xfȠׄOɪb
C@N#*Sd)5jZ.a46+IqީwZZ]V2gѠOhG';A͵e`5\o#ѐ@vYruPp;
S.aKՖXItJIu96]ZPJMd^D҇Põq83CP#rFQI%@WT"- 	z~bo{J͏Fdn ]n-+|TlHD=ώTAjYGwe%d׻2s&G.')/]ؓsWҍG&8.elPZ𢷉HT.؈X+UHΟ8S<apƵ3fPnWHlb5B"N
bs|iɻ萊
L<D鑀	\tU=tUX=NgKE.ژd'io$4xCx1;--ޠ-h%TaU|KccNA9N=eO/M_yoZ{K^p[nqYY~NSU:HJj_(Atyk+M=z6rBKFu^\=/<_?_zt㯿S_{o汧{_^8ݯ"=D_W~&{iW`E8nLX2Jgk&7 +h`H՜/o驪nd+ a5b{=R`c,h%DQ=KF=F,Or,i!yhYjSM~!-
g!W\e$Q\*+Tݦ^Mu6sG(Yg/0F^>h64ؘwޜ/Rhņ,cDiqֲĘ"_n⽸oӎ-a6Ʌyx(|Y8iD*Kf@)g4<MOvv7P4YlLhŅ>%JY h氺{i4"i!P8^m3;Kxs,rޓ[?P\ЈJdp$|G&,k3zO	
Q[N4"&ˡWg?9I_c'~TH|	Kʐ7yԍJŲ
⺒:XCHKXE
$gZb&x~n9s&D؅aSF+p8 +E #ZH+Ӕ:FP>?fqk
kUdJZylau(1E܂YYzlQ	Wv"U&R+^R~Δl$-*$4]9bD̰yi\=?ZKn3).%5%;QG]J<qlkM24BAւbf1	ٝgOwop u<2tӁt, 
\<r,_ *D\&wYQGtNR>CQyw {i3$Z#Pǡj\,mN~ .$R4V{<,[$2֔~G,Kq+hH䘆kꈧe2Zӏ3-Y|r'gkvXZĥh<-l(Gy@6c}VKl#`k03vWS!:Q_Gai<BE#~4^L5WW
@?=ޢjMw,%n+HML'i&%uGZh[PyjZw}V>)(wwƥIܜfɽqhq;?Hf]`gm;Sٝ.
kThK.2Nml+^{_f:x[-C*򝃟zN.y8I!X8<	%1#SBEe 2&EJ5H5xqOlhD6[ =k,kY3Kmx@v}@W ~)sY- ;A%;BR(0,P;'b9kuqt/D&v<I,mpzWŔ7'
 SsA}mG7}l㹧G/n+v M/8Xϊ Ko0 Wszx(3G9Ï?NZiqff9[Y8HI5]"piN4bˁv<e^j9+ۧbP/!hQA{KAJ0dfl٘kL:>֓ϥ}ݽ}szx:f\9Z`RHr&2K{٭Bl=z9'{
H3:Î}{Kj#Q0j+V{+-H-hz:a,sa2ݎ1swGn#q*0V1`9]֚	I_o4CS__$1$c!0H<\ ]Upڡ!Zuzpbf .p,g,Y1ko*XI\ur[V1@jb۲,R῿qw.w z{ozO?Yn<}uqьD^i]DZ\4( e@xP&88i!zhᴇe˰7_*"#WnX;(K?/S%HMγ$v@
Rq\qhma.yrpO=D4k',7$3LDBeH}1XJ.PgW#*w_@ORdTOl{o$&@U
T,b7θu<?R|<	QiƷkUPֶeK-~A}	B剥<QMA<[,n kRq:sg	юuabtjMUt^|5N?^An^#1^m@%˰&F&i$\TSqz+ׄD{'aUO͘&,@wy;
jB"ސAμ} !#*%շ˭YmJv෶9}P=m+R6<"~wB`8I%5 RiۺpK&%u>)i;t~Xҭ{]~M`C8MB8LS"bvHO<9Ҽ&HrHk6J+ZZNޞC8X2uQZƒ"r o_~.J)݀?>֊cG%#D\hǮo>[ayju_l1?}io:Lr%l3/j'KA;$oG.8s@υ%G9*pG=?KAiJit
9i(1%!<pTsEf	rZiy1E4mGM"$bVgu5`#/lN|D4cSg0n7:yز"NP]ɖ۹Q=ǷWymƥb1W9KԨ` `=2!B)yu;մ𔦠V<VЁjHp	5)F/[dFʅfNx蠩w9AΚ8DTXIx&O	N?Kh(d̯es!%Gf:P=IhSk.zt|)lYi!ϰ`yҒ뛀&0ƊHZB Jќ+p_3&#؋A=*p?ܻX$J`|'vRN;	\ݪᕩaQ\,KyApc
cD2	ve!a\`ci~O5ԛ{fr|?qI{a[Ī၆x04N%U^1xb|vUrI$xℂF$W80*{8qƀZ1%
Oǽ&~s/|Gu[J݆r_M_}_Bw
uL\>06M !<+@xu84cR8b-Xv1QW)_FYE. Fe(a
1TIA% =:&h]$0\ ZJS0d:g	n/Ѣ)5	%cm{@a6<z<Hv*JۑzUAt{sPQ/WKa|:饃^?wy3ۂE	NF>fuL2Df4mv|'Wx1/=nm˽sOݿ)͇<ܻu2Ay:avJ 5&\#ƏP`{A-rGxd$VDYӹ1j=(ԫ`^0B\.g.+	ƱaIhȍNiNCU-㈿4a>dJ "̐R&e
Fz8qY&ZxS?boMyEF1}~ú_'wR/\ze^-`^,:Hs M-j5xw҂ɏapJүlQyƱ׌aWǅz?565@-˙&5
B!t]_)=4u<ҖݏBpfN/HL`l>s!>[]b|!lhm_VmK		B7e_剆$@Š>3dv#%qPLl,nXL9 x"D.F:{uX]\zz9+@Z͗c+4˒8SP:[p8KB@)2hOjMj8
>~2NjPY't7p1U:4 dSN#:ɺ|w_<ojk?.]0>uP||?|?ڈV}t+j	A$"JJ{BqoKIzt4r18R8+<XӠ3M?|833(7C2NLo(;9`_cvH!\kw#{Sȉ<:Mz3EBjd5K
͐elaC'v&;`Y6p&QMnl+N<ZBd$&Yb!yD٤t*8Ųm;N3ҋXGaas[ݸg٫F dg9XUā6mk̲W]Ӯ-\٣4%|).ݒ;WᇟLߤ˽wտ58	nf8J8TMU<&p.O
˥׼R!;=ZGcb6()ƺijX(UGe@W4-3YK.0EqsJ+\KNX҃䁅.y"..xCӄdF_ն	H57qYyh(⑥Xi"	j8@6;d]_kdv jxHXo_>˻?~_f	g\[pCAʈj~m}I0IU1O-ѩN\o9XS`MwV68}#ax~8~	IVhPrK `V )9Z5*~wo.>߆[
fvn`SgpXq.p_&I+ixN~?x֝??ͳ*մwb7qPej#H@ V#h?)I׺קomxh^GkU
q디A^j>:u^"[@=	3GBS ei7f9CsBDQƊb`rHGݹ#c,m-8'sl0A4m@
끍kTeRV2BTBfM$FqM3Zl(l]̪'&ݵjW;Oo9c]V~C7ι{5|AHcG!ZdB⤘Pj算9.g X-wW"ykf;1+~SmЂlpHuwrLhpilW;9x:=,*t8({FN09dC=Asp\L+E(R"K (iumM9
XB@<tCⴋ2VZ]$YΆn*v$#}P(bm^YJ«F24A}UvоZMos:&IL$)şݿM\<X7яAg~jrÂF#*tGH2~bN%j
G1Kd\<GlNe Q:0Zwm5~sNkW~OʀJ`ep!bLYojE-%w͔yք&d{c8ޜ8otUc;]գmPE<:F4į15Ža~RNDMmߘ;%XPE#73¬}G"!Zd)i¼*lUORdYŵ{Gem?&W\^~d'{?fǮk36Fڽ4ϑ4BHf8Ɛa[dĔiH+/)grry&΋Nάe=Y,bbHAH!{p'y\XY'AϊJ@Hҧ=%?86CfUa'|@Uwo[
W~7#WMZsbBCFX4QlAåq qVdu\Ug뫴?jч;Cfj'\&8XLӃAnVHE `D;3B 	Rъoߞ>v٦m?ǿoXn1;cJPA&P`fh^.Ip
zN&ȮƳXl!hHчr)<yirmc^݁
"cTH*S.VDJ!<#IAP	%-Zvt@:ӛw=
 YэB(i0vX(v%4m.)e=ijRI)7a'M[`	n3P&"x@5L!wنB&as{?'UiechpX%ݿ.qW]0]G PFkU_A ŴVL'xp/3Dދ[?降е	xWOlrZ4Qc`."W @qUYyi[EM%3ߞ~S%Vupb΁M%:DxI$"9)g6')5bL4!ta-6ZafUE{vd9'7nuC4ѬLQ & B_E<<DMV	^A4ygn;ZY<FaLh.I#৆Nr4X]އ< Al+
;:sIHyή1
ڊrOE d\Ǭc%g'4m 'ȟe9-p$fӄq:bS<2
VU3SY[yǂ2! 8!f=Vy1PMnk"h1X-Dck	7TfMu.YGTr.}zR.IK3Q\z%'f5#RǺɗ.ݞXC<h	X*VbͭiD98JIWY~5xyό	a{,_D#Pk5R	tVh=iE=D')x5BhMpn`ݨ+]R.N\1|.,,,
y-6D)hw`:ib=mgp1\YJ-7Y#N0P4O\̐2۩bGC[T&h([pb:P{q[A*4OM˽ۮ j,O:ޘd7j@6'JhFXvGe9P=9GonǷ+-NˬXA2ׅ?y k(eA&!RCj1Am[w=Zs#{؂*dO(W&DAx
L±Ƚ,W]IP53JIᥡG[7p'v&8$݊գl҆6?vC4;n6ڷie0%^'h#IHX/ѨX}?z2882T ji 샀 RJ*m^J[JcU̯BP5C40e~y8%&^2HÔHP)J/&֯;˴0,B۷$׃K_n6agy6)2jM͟G֕H)F,2V$ʏ8!Jc38dLL)|[3t*lwӠ+n cH=@:*8e?~sOTp}j[^Q)i Ns1kƺ]	K	uluM;]Z7Tw1psZICH+T5#վF,rݬ?<?~|g^OQ-,0l\L{_3B*	6}G(P&{*ws)>=0;iNdVXMP3 =\tèB<p.HQNۓskSad!i4{tr(dq+Ò	bA#o>¡|w7"8N >=4P=xK%IqB)1A*>%Qo:BacY@I{_MP<ʒO\X1.o'V ƁK(pm6g{QgZJRJE&Yɐ($pUV}sPTŤpRk>AQ}Z(\0f!0*\11םUϵdHs=jQBVݚcb,N:͟(%fA8xp2p?̱|YMIbę^Xb.bo4W;JCJǜdƙ4&**)HJR8)6<,4xΒp* p:1p;LBz^Uwi\?len/.%KŠ%Ci)C-:LY$:>vghѲ$X8Ѵ İM箎ƌ-sM)-xDSezJ37Xe0PDcU->e=+ܕگ7k_6}q㩯?c_G_i>\9AGiC쨓gfl9&$՘5.aEKfֽ7/.y~&ip	'T*bp
ښ9i=p6 s-RK`*.#5>EFM	٘CmYFwyd<&QjŊVdٮ$ᒊ* 9%dQ*&y8CG޾5s8e1&jlm!W{S,PRVBdfv/S/e"Rq#q 
9<wKG&<	nV!,)ʠDce*bh)NOtPDBx{6XDѸm_a[r^f)9DNrb6tw.

yYX{#3A'jBuY@p_oN}unǅoB[93&",{E
lR$rR DG
2:CENmo 3Ac[M?{]Kې"`PRΔ)BJs.u-4aõPXQ_y8<LVyj/>{v*(G iְCM@pS혩6AO[9+>D;1+āCv({BcG:]<#akK0& \B{^Vkp+-v&⣱Y~䠞Ab{$ a9=0kr& ^uLSg`RIqZk0V[7ۘlt}em[qs@` q{p^,H/ ֓a])kh^=еɽ}o-K$pG2B1Rpx3f愆!5).tuG]0=le:wqf*{,T"J=gqTњFmbhhw#FY! +7;wZ&/m4~c vK^J|F ZEi*(k,UH[L#7ۭ|J[3:ʻ5;m]n܀:&J(.
'"־&X#3c4c&椴#uI/*hI%E	OAk:$nd:#Uqg\Oy.czfJ99*i2{HHZg}hSS.ݿM;nmk7<[RctZ%<mEr$F  X-IeT[UNDD"<юL?^K7f}mw顭CpAv ։nVw]#13尉ր%4׭f4_FE%6NTUk}|+u_L֍}0QnmNւNG1SEl껺7ĝ;W7򎻚޹r/(t%ؽꃗ+<^	a186EfЃkKC, Lf']윀95HNh&}B/d/$&)"A,J85'_|v))
Jd)C:MiL2fFfKP,Wm\H_!AzLp(|PY3Wshm/ש~Sf36uҞ1q$+z>bk!,L6I͐	
rFS8ÿYn?>O
Qs>OV-Z}%@w"{
U(rjӏZcT) ޽sg
r9KEx.g~ *#zgimlZ
$ll׬6\uSGlNIzp+^y.\3]&gQmDDj;7WbsaJL~LϵQkEqEi;<W9}T	*'Y=5:{Eۤ納th &"6#4Ђ j~Xsd!jC#N -0*n>.
&}'m"x4ٌ;iQK}A!CJ4y!(18~%p̚CGL|6{OY+!'X8G1&PgJh2F%h?qLi`) D#arr8'hFz?x
4q/bvDf$Hpde8bA<hT	쥅%DMJG'g#Z8{lόD(2h&J-G!o U^(udNce޾y/2*?Ԕ6ӓYE_VNpD
ĈIgSX,D@-4DO3sR8 j5GOCQɥK
j|R O9l\5!ѥm=X.upaFDT.7|l<t'on~#.*+E2$hԔi!M.B LY]rN$AE,܆ι"hgt㘖`RQU'8mԜnR+&j~dhS&cF2:繃{r"Fo#!"Y,v
myWLvێ`i W'C{FYBb1w>dl~twB-~QT21M k<BY\.]3_'{R1݁!lLUax1"D)&zp%|ވ!Y).9	(!u/L6X6qƁ2e2Xvþ? w>M'H`ڵ!X].ΘY],Pr-m<[N#Scf`A4,R0i`q84`4K2O4h4x1`P5ʅG0 4Gێ/. ߹9&Lec)ɈKGԀ?R&>)B^%#Db^$MdpD*k-@QSظv$@y!a@->bhg8!UIYЂ")hJn Bm__@5úo4!Δ$!Qt[PpQIkE6ǋQYU03US!(`]:{{5HO
R$ϓN1野wsw'cj7	5 V|@x(L).^}Pn©StNK$V~e -M,V`}@m*0pSYmvsv*swN3T447ϖFwvLd^DnO!f*a_`K=T.vγ,l|Lx|Cǎfk))gaKXwg]YƔTsZ4Ԙӗ6YϦެ5޼Ώ~(9Cݏ?;>6Dwj"JӬvG{$Qy%hׁ,G,)-rwޙ~oKQ	Óx?qrW<x419;|Q^5G@d#>]GHy#d.бÇzOC>:Ղ~>[P\~ؾ_q6_ͳSA+'K՛^ѳjzf_[,cVE)ͦH,+D$|̀U#{^x	Q|kM'ж4ﭲ3o5QD<^<ucVzC>5OtT6b~govpͦ@K"lt)Pzˋ?ccv9`>~&!)ENr"VG*&M`͵1bTb=Rn8:pT$igGh=^3Te`F )uwO~+T~Ti; q{Pv̽is]u&WN]uS2y`ZclwzG"$RAhr<,ǊN$%Ǆ O= {sp wI$;Y4!7"'NJH#9'[Fk2(f'N/($K
;La8ȕ2jdLk/ǅCia{QM=lnp5GtޏZ;~v~8e+m6/o<wXA` CR̤1Yq%s8&nC2Ӫ{.G8!+=5++P5l}F=|wWG5PGJZ<ɬ
Tk{@M8͸ᄊ']&W,|H{la+n+6YCzx-qqe';E#ƺ3N\SUtZB2:wk n;5w.ZȜc%r\=BiIk6<.nm_Oas59RMmiҍYt8^n_cG`ׄ	Y@PyYpV<MMB\(4'}+rkm-N7k<Mڷ'/Tcb-ѕrLʌ!BuE	>WuP@ES_Κooܻ+/.Y)n8H˫J9]{aDp~ B. 'ns][YPO(gc!9A "֙MpiZcA~ڭ1v/~_Sizvi<3zãi1 4P_#e7o&w꤯z~gsSl䠥8y*֞SJIXx4{ܝoS'<RDf!(@[|)V`wT?1_BJO5X>F5̤XG<_vTtBN7n,;+3i52jA ȜiVPc9{T1ιũZ	_UshOmM|PO':ZڥlHy,١#꠬MzAuǳUfZ'7o](ye1}vE$ $RFvi<$W⹷n(QttlFb{oP1ҤKJ+(6@=CKTᝨg&X[eYg >"h_vjyJ8sڷ?F֊JX:0,uYѰŵtgc׫,S=<ΕD0)+R^xIx-OC^]l=.g   '#<|zs:QB_mY:p
[̹ p{PVZXt%\lhϲ4vi uޚϜdWEsy=@c	TIG̊1([Sg l9xfK;[[{ϗv?Kg?
\Q/гQ AF{C=5>5C+Q@@ YqQ&FnbFj}ݿJahJ/g>yf6VJ!1nUmUplmUXP)\YE//Jj*O&eld33]FG<&XSZ,VAsMG5nT:2^RӽSLCģeȾ&0*rPkL]'wvIoy.(2tml+VˈlPnLKt/ j?YSVa3*ej.\ZP&K[MjJo%>k7vB
NCJP,Fm*SJ%SrAIhj+ӚIT=\;K.` s섰MxS-]m$d*k2/ԉgy8M%U\ S_ܮe]={tR悟v&v&&fr+e'JbRZC0*M
X%ԦWF{:އgX&qvcfr8/4V
s:'Ye7ey	ge.R2BuL6hIFL@)@y,䫕ؔ@/Z'ۦÍ'{hw7wv77o	VE9Kηf4N J-@|UFge^VB&	w:nfW۶3[7Y4sڱO#byZ0l}SiXc47"rND&# NnT8υlqe+6߄	 KnC8
"|SϕR~9Mک}!"<hKPTFeZyʱfvc4i-^[q;/mG]^49#6F%Qw(T oc'h੃I:'W{! Ԅ-ڎoeAMዔ=zGo}/1+l(硣O)"rs,F<g+ ecϥrO:2HC_ïӸ0O*9S}ea?oF4ٓ~R-T"$R2LǸb¾ Apdnoz׭/Zscs1h\"gWIRsJ3o Sc1d}8đ%>G^o^qs	D%A4SXJ0$$o>:SyIS𭻇w_oT̯0xBh<}HZhSpg:ATd9ݴh[t{ww߄z;׀3K"rZ;)8rs哣1
jl8f턻dWx*\:VI`mht{Yt/ң~0`k,ʠ-U4C:UtOˏ|"6MR-9v([Zf?[r7 jL+.R1"}p!KIؽZ%&f_]*vlΎivP&vfs}_l(6'm*Ӟ9[Zr=f9ȋNoy:{
BOɹsS̰]qRYmǨ=X'i/i
'у}^	@.
Qv`+mm݆ռqh%,fAeu"lUm`8xxi1c\kٺz%ќ)_f>^?|r;l:*<Lg_@S;Ah?wMoW͖~%bz!LZ{uW;KT)Yp ّgS堀9G4Q!9eRSԺ蕗~{wO9{KiF=k[Z5ճRH&VR=0%PYBXJZcBno"fԟ=z`mh|Q8]$j, HXRG7#й㋇c-)ĉe˪Gnc4-Q  _]̹0pЭ2/z]N̶ke
uuTKi=oU*Y-,yeY8!hxhQGS;3<Ms1{|ˁF	.Ф#կ0+:3L3hC
Dcg|Τ=|}q.b	M(?/y"K(>}g
WXV8
KV&l
o"<4g:Qj=G~l?MSctSD#-]IUjҾJK:ݼc٩JmY9͛M=3.ŵeE-7қqσb ^d9ejZvvz~zM`.337Z7%:fJ]fX%Ұ**qW$kvƳo$ǅɖBv;aFCQazc.Ǯwsm[Q~=Ϗ~\HA_PXљ8%G@w<%ޱ2j<!y	")#';P~xsAx=RYgDMxKyzX4tIϳgyyO5͸DZ(ivPA T|
c/Xy*nrIk5T#aAJL}Gb1E.;4#fgOE0"WNwZ+NXgUq7[MيHɅq q1nXW*5U!1`5lT<TѾC7Lje=C݂u/>ӟ"-;{rыw7_}oo?8|2#߷%ܤ3DOcc	rsx9̲I1N"k$t퓛TXnV-z17Hw[ې%F&cjLٙ7bmo&6Lb\ggofXMfYfwԼs.	ƲH,q3T\*<Myd虨?OC!wu}g}y/a]9iYh$'?ZLDhT^Jѕ%r^ŦhIۚ#_> 'L @#HBJ\҈7O1p^sTbf?_Ӑ<SSv˲ዷo.N=4M'5Ɠg:E!YUf=˅5<-f.Rg=nK;{{©| \2cZ؋'SFIfT^=Ty׺YNUWj*w/xd4tS~ݣ7ߝv- Eqkb-U>}Gw,CU!!Ctz#%G5s
^R@8Shj}":!ZSVpyJJ8@d)!|V2`ofgF	ذ<zU_qbpZDs+ɔ+K)s2wOϱSWGTsI41E|%~YAoʭ[(}PG;TpE^ʳRSđQja}WshU=_[m8r~&R_0¤դ*a h,Ai'b%H,8Y5Թk?M4)KS &TJˤwpʍAHŚQ>E*/T@s.!=IHhTP w,F>/Híd"M֔KiF=,%:p/ZvE]lhE{$}\NGXEk<9I̾l!liTXna(k7Lv7e@I%_F{dTԿwlaf[ƩwШhyIHԼyj>iC#MlSF~+<yqe%ICB5'hI3~1io[IY8.uTڕX h!M;P`f5bv}3xMv}+O8o/
TsNNfLNȑ&f8,8ť@擑6|IAǎa7난F_}Ľ\rhK^&?/GQ ٣D?J#coo6v0.NPexSO;W*}jo|v
w7pzig~
ޕO}B/u")i~Dָ/U+H;=ڱ+CJ&~Z3Rvyn,%STR
|3b٥o:jj<2˨-WVXոsRm[ϲr.<X_v~4bqo:2Ue+9:dt9uKIQKAGɳveuDP}u?,YO7_BWpŶɑǒgQPHG5,6;KīEzY'u-lƲӠ8-Pޤ>__ Xej=?!R\!\S%י
e)IK8QHLϮ;<f:矛NCT=䖊2#vwʹ[xW"9NˮgS{aj,kd;d^qC%G"*46yHI,w7!po2.Xv=SGS+S+\8ظڼOa/U|}xZ>^~TnR\lv?u\F`N{C͢\l㈳p^ap:rE'Mm[l箭n4Kֽ~>M[нx͐ivr6hFYfK74R49Kdm
pfO|Plo[&t6׾¬ݠ2kkI:UqWG}\4솞MN;mS`,M/HW=T +f̹-^CcepŒX*S{X\3[r[/mx<,]L^qn%7j;Ֆ{ԯgta45S}pL11ZKȦ4'?6>ا>*赖6q뭫LhVQÛ7	=JJG;Yy(-$
8PWaޕݰq:}e9/8ؘhZ<eg:ULp^#.*>NuŇ{5%w5fX6ʵ|꠫[z
qC-~. \"&iXQ;]%;(TIYC(|-o|Zv	y%jUS$>ڒBu<Kd&M.dmnk-MTt"Ph쭒\FNE*BIqIhfk44eS3yCzZ:ί>z;um_%PEfhEeWD>ʡ3{O_݋kyepH'̧XMnaJHd++N7p[@"J__jٙxzIUDjѐ4:>H%DĭOg*eOY]C
XE{PHMqt9BuN^Z6V{~XZN"9rO6!8jL0ƞ]\63TSJBhs<W҆TCЉݚvMɵWS AUE HA^Y"1EH*2\bQuC{z5ܼy`ghg
vT(tLX=skiᣄWI2^	YgEm"tof_<cZ74j4'ĕucif]PXY7>ZZ+Sg;7܍׿vy?<|%6}kBu9p/ؔU{!}{|<.<bfRlZ!VYX}<Mҽ<%Z%Ai(rJӈyXC:OW.g+"rPp
K	LQ{E|r
F_Bt[+gLkjzss.yaaԈ㒕xI`8t,[*xJ2'DD fd#)>nU<_cXp?-)k˷&Lٔk(&kHJ +gSy:<ɞxT\{k$YTs`3Ғ})BC8o~6QnQ9T.猬+9t
Yc41'J8+E."[qvO'SrӕL L
kXgγcJz9d.րMhsJm_:<5ũY%vQ@RJAp*s޿66-"eSks\5'u6/>3HOps
EU	XIڢw;8Κ1pq=ͰyIhu{-4iX>G'_c	nRȁOM\ӣVyISGAtKbַknNc4u>|bWя9mv/EN>ߩqIUpy"5(LL:zCD!HhkloJ̺BouӋ7R*A4G cm%]&f3K&C92cE'=ҸkUFck
0JΨ(J89?]5w,,^8<q]Ѫ-{/.IQeFŹ8`!lfuʊU$G:_qt֡+xϠq͗_^.ʑ*6d4WEd4 8q~E_ǹYa5&tZ*fhtKƛ$ؿ ;(Ne:@TE"$J(`AC:G㩓IzdV}E;BJtUV{5^ZKƽ^s'M
B)UKwk<˚)e*?kg¶xs\]h8Ұ-ME";yD4ꎏBf$i/ ]\uJJ\VDf*Wf(	b־6wt=n4W 'ZcWhVi6\-LsC]̅_r>'K3PmY%El:9u&'zRe'v/Pѐ,q^(@&.ώ̉&8l0I?K.2ĨjS;;J	Mc#kfn	ˌ 쪘+(s;'w\)FnR]Qfgy`g۾/ܻsپk{?MsB*z9R
:#WS[Qd紨Y9uZƼN
UZ{X"ۛסuuS21O@I`/e٣+˯UE󚕧RJӟ%>f-m?/m!6ANDCª_,weJ_hYKxJ ʶV3cR<Cb9wMƔҬ!X| ?qDujQ2I<K%EB|v8@^I-HH<l0$o/|	I9PG?{_0x6.dRa
@QZsb"?.73mS9-, ґF֋lQ0D-#DayLpY-%EUJ/mUY%e.rIȦ&~oϽ2BRIpfl4x2P)#5>Ž;xS~޹5"&NdML86bm(TzE.xÛ;YɅh7x8p/QAB5C}?1Yk2IB	L3,nۤO]Is%dd&LV*38omK?Sެ!BI{H4b1`el
7:o~ǔxvo#pC|rgY)Qlc]-Oe,.B4n6㸠W4OAcVK?;uٷR˻.p\.`XqGm8c5\ģJ;e2-4>fK&}Q8UEhSGf+G+re&Z#p^.ßp7]6WwCܦkr+m@c¬	yNŌx\ȦB47hx̖I2=X4ފڷ=ΥT_x2spE7$"ۢh` !5 ?gyw|*>qy4{{n*W?X3mҠ:)m+ LI0
<3k]%4AD%=gփ臯-Lc:o4?V8)	jY}5'HuQxNا(Dc<a6a6ʶO%IN"7oh~F6W="^5Q[!%-5r|#8(cdO%RX̾Xn{G}՟v/1S̏g{^nl~v;.zXkt&;Bsp;bBC(q-z\\=lJ+)2A;1s4mB	ﾈ52qYPB)H7g6HASi.IQB<J	uaJ:S6:}|܎`&""+#d2@?)TWgmAq`sX<;Z3j"p_LOgY}:9&L5NulF$3j-)2wARS29e"ԒyվKZ	pețyXeorOk<k#zI_NUTfFԌXPglcV@&Wp~7X`D"9N3(KtE
hRz{q
ӆW	D<^xf~|,%U<TUJIrVĆ6L	?|{wy/b8*ރ=^'u,J*sF38QjJΒK{yPz_>ӛ'~_r%9k)ܳǩ{H!;'tJ\:vzNV5E7_~8RƉNY) r6#Ra@m|YCUYu0gV7nnOl ͜4NuE];Dv?1zuduQ({jYL/O^vaM[nR\ĻZ]9۬O8.bʂ&9RccvjP0Ɲdp<]֑ |Q%~9Us~9DKevS&OnqB!íJFa쎊# ixOnɢ
L}yF7Jm/~wYQfzkʏ|RLa%Jzx`Sr.g[Fꉼj;uӯ?7N8.I=TDP1Gb@v<CUGz>d2%_`b9f403]纺*tP1o,T
sSD*ȍG#_wQ]Bvzn*aoXv)X%eJ-j4<l"8_;jtm%Swve+x&,C`pF2 1&U*q`$Ŵ__5O}춝~3Tp7Fu-59*T֖A$ף0O_|ߓ}l	ӱf9Ɠԑ>[#74R
MoztIOgi)q+GﾽPP&P{<JseyvӨb`
NXAވet{;QTq 
@2` F]d5{c	ޜVyͮ}jB>pnpc2
OU@ `Տ˕pK4*V.'+7Z:>.N2Qf3,',R*>OC@ٞy&?x" 1@9+1jNd)޺dk2՛ࢄݱG(탕;K&:vLn,#\m.J%K`Ev JCj'4Nd~&u4ˎo(*_?P/kwW<-m``+Wvwo?B	GX\/40ihFfY-D
<Px;L7
.ŤE<z3aT0uVun[~[R
t76x>]qd_vifV@{xuǕI٣'WV1"M~Ik~G8+λ;DڝqYuN]\Fxl܀[eO1&X"ER>|HT*cJrL"nƜ,g~Q[cny	.o&ఝQqS `ƭ5	PƧ1N\c,08ݞH/-pL?gTO~t^/-)sNWyNDG<:jN4B!?2xw)+qq't_۫D]p{ׇ/w,}%([[VK{KT:<sMLe7Ɲ>U-Cgm}SM6ǡ=[(K1EY#g%X<jb4WQE`faWGtCB*q5boev<P'7}|=7{n>ۥͳ쟞blZ3p):݅b3͊irLR	L­p"ߍUul&3'նgiY~?qoR-saw[<Q:'0Ys!J6;ǨĈӍcc.FxO[ǢHvʽ̄|t[XRBisQZ&CC?4ރWf:38]_`<;s(-~}滇/|e@R %05A칳Z20_Pi$0,r=M[i`VYzР\PHv<z|}D0k q3%y)B2Ve
1\%9V2sSqڧc \e(q$3CDs"q-VċN
at+_~8Me+n<#"k)v&LByp=zyC.&jΙ4:gy1uaD@Qh酚0ɀrEz6NlvdkƎIE]`B&i
S8ZD#t~7]Lp{WA98	FXSv"UU>59?j~oeSZ1w>h?GSo4 iםr7K/N]]=\ĩ3ɍ 1PَZmm'b*ZNRLҵ9ΟoFfYG*!OzJX>g{ĔC_P!z3%eVG\Wt
O@,Hei	HEf6^v7=RbXFSO?m|S?ǟǟ}yb_B3d୷_|qS܉ӴPd9AgZ}Dz4+Dt:L.tɕ~O?}_SaZ]B"nɅ8h*E28%y%cAUӒu`{kcەPNv`qC+Q3]ԹImQ
\XoYE
!L5YMHܺyDIQ3K%phƊ|J9RREyjp*u)K*fnZ5e)exYSs+ёėՋCm1D|NɣP#\
cƤ R׌fwF^氛7/Fin?]s-ƬA{]؇]	]s(4=،0>a"*6myD W<wʺ6Ll/Vm[s,4X*_-TTVzNK3
L1ىMrndeivQ,ŭ~ؼBZWVY2n_g+U2)՜dloY0P=eGʇ_wR[r9i5SקI Z,G¥XfQ%\\,,`}C'(f76p3˲2]g^
 Ic'rda]z4v@{`g>Rk
G3e7|l;!λ]W2-Ń"rzta!uZV}(%C8@h6FAdD4Lή5ꙃ-x%o+¤+7b+W6c;`_fqԊwۡnk`6AhRa-i9_y1غF,ו}&,h$0hǟ}7{}#"}v#M8Dq׬	:F[d6WRK[BUB7d5{	N )w?\굓V>\zTrU@T;2P%JCc`I>΍1RSj5[Xm{J)NM5dK	vTk{کRD6SsIS}7M<^XiS0<*|{5&q}PigL?8ɘt~i;%>x>wjz:'WM1Ti9[{Tά|y$Ħ/V2X×\2Ep"=e'EXXT4+5b90]qyc$w@fu@QbgפL[Mg|zEc4yh_ L:UpW]i*9ѰBȫ_j.km)X*Xԥ!&|8)~"GjB5_>B:}<[0[(DUUyB nn\"SlCvЉF6zl)"U Qd$2U>*w:8)([KW`vaۡ~b~x臯}zs=@b޺w煇w
SbG^Mt* &'`D+q\aJgM>2ԸE5J0k1ib%^P~r6dʩ=+gͦFOYrJD$kMC]~Q[ČC+$5Ujg}CAGI|fs	hʷ}W<"N͝Z$G7)c7p+0 9^m;?mָ[\b2D(ɭ*&OfjېW+@,^sϴ*U'I+ӊPeҰ:\g;t#	5"H(̜lՓ>̀|Mxa*źqogSZYВ%WieoЉi~^m:Sۛ"H?&Tnlo,%{d*uu\YRpU֚u6q ~b6G3B93cK6[8#eFc|/3Ne@B(lQG?~ޯ5ཏgc
g^rzi~X%*vXyhؒd`	NxfE Ot^(&X겺³=svZ=( 3Z
يleΤZ+MY:MSI 4m5R #?(YV{$;Ӫ:Ao.Ja gPJi+M \v[\&ln$'Ӥ5\aR.x*P2YlY\@1&=65"]kEi?:|>dd׫tkoxnN.U"\dE(L7չ(aHZe?^!:TbrRq7{^\"*ړqŸTevYc; TZf~:n-%dyJܴ[t?Ҫݵ^M(s?\Yq	*'<#fxm/DX1]wP*V c+Ҝ0mTi^B,̾3EO7chd6WÏu}'>9<-Ɯ=|_8Wyޝ?޿뛻y
/o߻Z|?nFg`\~N>S2_ݭ6	5dfH+MûB3g%9EJڔ䬝b<%?~/@%OssNEa34sa62u
j܍H&T;~륣'~Q΀LeounNb!8QhG*t ^0K*#]<4	HFol?x/὏.{?yKK~~h'zz:ma]^s"s)S0
|/KmKˉ)~@zBHi%;s`evƳ6b^Wm-̸t#-RMM?Յo|_"וJ#LQ9	P(b/s7H!DkQgZ~i}]sZT%Ui㸴EhF  Gэp^S _b[vSڶ)\q2aJƝ5\P t
Iku,M*ð4ULtǲ4q!. ͗M5i
FD.g}lF$OR7p1jJ-OL3]h>(s`,d	|O?{?_|x&-IAӤi8EOYijNTo=z66K7ѝj9.h*[g!!1\D w$ӌ)cѡM7өz|M	vGwsTeUX3$r"WmT1s=J>hVuyu
i7e[{]Ovw>%Lmm(B2ϓ?-M%0j^ㄢQNӚ39Hx@
fz
L4o7Wňɒ&(Ux^x1&M[}b;޾eMߝ8l^4wTNEEm0܊;-h0< K@1YM6:[xtVKEqȕbٷEH#%T%j~f}/?U	[s&CsC'h<fV N閃t1*޺+F
φa;n_[4ݭUWI|qXӞP/+͵f
rPN0Ca#K%,8.$>]5Fwzsumk;._(Om@. J Z8:7h@ju{yu9 #B&pxu.nk8Pww!AKf5M/'V˲Ok[fj`z۔n.gxSOqENSҐs%f͂uk*c-ZY8 ~VvL췲kl~#=:-9[44gpe5mW.|8w@t%M0K)Ұ%Ւ3z|A	zf=x{{LYyk/-PU$ SWUUԘ=68a	.j
d';tw}?;ztІWXdr:oݻ8_*mp- r1p_:4)YS/I٣x=--Ġ0x-VY.Pab^U:Ț'j<xU@S#(p/?פiY:{ɠoZæ1/9r	U	rT&mzOa&:\D*"cؿat$vITMu|ӝ)Hf`ʧ lm>8g_OD
Q.GrNIkgzlDne[1lF*" -BvGeܸhg):yt	9RPeJ_0HȊJ;NVTx$	b[x|}1eJY&^b#.x͝W
7EP<3a4Bq
JTub2GTRYeS\ہ-3/=#߳6՗>{?N~Ĝ")iFNͨ-Ɖ)%[ZО*x֬n7VL9kS4Je%ZDɟ	VɩO1%vՠR64|IºTCp rpqg1Zsz^4yom,XzQ"!c5]MQ=e<9# b
  &Pl,f=],A3Lrڃݵ.^kl7W)p]?Ӓt5m;wBvf!VZ68v:Xb/'륣W?9Ws|SVIcڴ.}CI'w2fy̓9Ȝ"2JŸ^TŠ:PͦzL8_^oǟ߻½;>۟}wѱ&8Nd@A _efȚ</]lU`r hWFSfK0K@vZp7|W9f~QQFInBhh'vlMѤ4g-?U2/ p$hviA2*0hApd8wŦ~ՔqHԆr:H)U`t빆dMQ_ò@}pq528)bu?=QkCƎൎ̸g(01q54DtQZ!hG硂Dխ|'z-9ѻ8Ak^4#x\'F~A)}\k,Z#=LGFV=y|`fjURJFg@k'׸C<.3XƲO@6ӨK!" |gls+LPDa\0}0Eb j/I(K3*K'NxCo\jx}VYR4ju+/	9lEPFHeeǶNXvx']SWyRA-"-Z)P@x؟]'wި4qRL*A{6TCRMuNnp*E 4x*QjΛVqP#*.S+*jjw}l|<jQpp4J'C'́|paL1fF%FRsGͼ.X:+ü;#OSN)(ͬOb3ᓚSrh34J0Ph2bLKLb^{N3N*2Z~O,təão1۽u
x;HS'*">q{ȡ{wO.=̟ߏI6>}	Z91xj̃u>aBq	Ilg)bROPVH*f.G1Mw
MC1V42Bsu^sW5J#3.+@&U@lc۬j.FM6[NWAm2ox
iÆ-ν߼wWG֒)βn=}}ӻ%=gxzp)]"C9WAo$UWha$k̢y:0ĘTD_pwl_\[^X<w{EZ3SVJ2EٔT6\GzȗK4uXVD d58_U^wQ_,єLGӥ< ֠]Q:!:1[%&xF,%S.7IU,\+0\*cSM2EjK|":BMipł01dix
6%Se4 Tt1i̗^@L>Ϭ\[%?{j[$Z	,wl+aЋӡ4&8P&3=Aߵuomݰ14͌9eT
ȁYdά˞<؞=Yn6EM/TxybڪعZ	Fϑ3M2éEy*y\~P)0R}}VA!Q?>0LhӰ8D룅?y>jY%lKf{7KnՂ+!CNkH13ԗ
H%e
`ԏ1V&issO%j˄k/w<vu>U'K3&(lf*a"-``ݭC@2e)]yW#!UrP:y7`fT"ι`K]c8C3!z-&(})Oi@%Nf#mi54$p*

pYXh3)
e"bdBy@tԩK^?7aO-~v!mbI9և cLD:Sb#B//irIXӥ-iSqR4S=ƞwwje4:$Mʈů󰴇\sr]`qJpfORT;DN[FKJ1SRjKF4:h;txS!o޴9Z+?/蝇
:1`AvܸxR@U>L|m(JR{9(%:ځRRrwXYӳBWcǇ`Kؼ> _VVE^-U+$$-`:b ^rv˻[H]1j૦F|@z'˲eb!֋[7З[۩Jg5OF#vE\p$*2	4P^APDZvS+=8[b} U1^F6lxRxVCfZ	~5RZpE,#/g^364
`l} yLPZ.%c1 Y:実BR"):ʖTBt@+`|J< j\!88?.YipYDhb!!F @	=(?#q<'\nV:iaQסDW'xwyAӌ<wG$ ^Op`0+JxJd"(Θ$ʵB9y(t@hUМ2"Xeo&(o6cj9I/2LYЗj,gg3go)w~u'u&Je-ep\޶#5v:;NX@sZTS3bX"Qith2kNQH~uB-ѱWc^/:\;U-/}o?"B><jv3_oS`<w273Q:.ENio5-skē-B읲8Cu8RN۟NG38":(vyf(/1!FiVx:{G G{f5s,`-,A$i7$hW[I$eVEɷXJvwE'N$<v\{VetM	 (Ep|z=ҍʮ8$J(ܻx>+GCkso58!{o
3*8Y7.ЮZSMh,rXDj}ZuLx4OBh$\d5ˊilGxǕ4pe8	'l89.)?/N?﬒n.0s2
z:e@VW:kp*_a-8)gD+uBRtJ6#(6w)0q<,m=2xZWsjhg/Xa@40?K:kw?v]R@-PC-^<:*IJ$5"H+c<]Dtmv-JdU's8;@ML>(ZviX{SasYhG_į6d_<T	J"xAE/xG:;p?5cBb<-2CZt5aZ$吭YVAڀ6ABaS9}zjNڮR$4:dhH8˷O?Ac|@`mme"tR2n7ѻW_C:eVtLezTvl%tb&J]$1)ԱZeO8=m#G9 S$cJGIZ EI(lVQmז&Mnq@n)ge&mZ<"0JCVLtRCv?Q<,ňm{$ck.'v-(#oʓnw`$)cXAHu[I9fF7M˟LS~.׬
!QڍUW.ZWRr6;樖"1'!NH;cHXďa	@a:2eD9*kAp]^bIS`N=84H(B)5-twu汽s*?+-d1;[EX{1CYiR@$"u,.7MSZ_wcƆ1n-T+:*Dv}
^kxk0VH4kN% &|vroIB2Lt0l.URHϼ"KߔR`Yhwfڀq,]{Em/-2~ޯ*n)$߼?:yU|&_n1j-Uq;2	;ΙwG;oX%1v>0x+|!ft%#4Z,6 Y支^ц~mǇqqgYybN#Myc^Oo}g閈eP'LBi) 0)<\Nbc; ObKj@z!9&A#eUIwg6 iW,u!T Kv[ş#!pFGh hEE
 |z)NXKchG
E}~͏h{͋@)T?Ebi2X6[-@t$&Q9r%י\wZP,Vone@nXJnǻ;lDHۊGoLz<u[bm[.BA2(VR[zJsd<Q%/V`U,`Y#I%4GKD &`4>"+#ػN%;:a`J+?>u乷&|{޿Yz]2MM8"F͔(KDfj'KJ<m^aQL5Ey'O}6Wf&蹑)p{gqL⤟<99;U*z~e#-RFM}t{XY5ʩ''%s{FW zQU]wC]x
?7zpwyT[c5䴅e4u=u=ɇ\6vbq)T/`I9S"ڶHqzk$v(gMO'Q75(90'?~_R'Ts7?mǯo;%Ǖѵ߳!QH3N7_m3x	Lg*2Ah-xJ\1]K7?R7:t @~R<qw8	)38x4on\Ȗ6R%][m(z
L7ؑQh3T8KB:1ce!:u#`gf_^r\s4	GW|[H@ˋJR
 _*gŨ.%|؍]_Vȏ"0vHfjt΀Gb(C$'DX	au-kMG`6M=ʎx
c`ͅ	Xi,Z\FKj{k#DhǗ׎~plB@w?|ߟz%^v~媾QQl5պlc)[%~E(h|wpxʺ|gv=zp s`DÆGsx@Ƅ0&f=uy%8퉐q;R_^X96uZQΰͭ}=?vӓu36c+.oY_Y	׾>g#'qۜ8IP8N=YZͺvQl入>G'FA3ۇ$`-4k}Ȋj\9u(9+Y5
VT5Mqk:|cࠆz eu	`G.p8	u8-H0Twysޚh.pw1l?:$&j-XFΈ$a8"Dt\h.aBa'`(ݍwN'Far=Lɹ>bפq%#0I,8xjNRH_VX=>8 |;_' R,nΛޫ쀗%O@;m;l&VGLn$5]/v?5~褯lF$rRIim PIr-ԹH5;/_{TMnT$z5pEDJLҩv8jNrsO:ZMփGX$)eh	,# oINDY44, 3/M>.goɫ/t9~8`֗}"[=WYjDiaS@R.3AT*°P/QA⯨Kw1ݹղڋ資?T j6'HQCyI)R>8ڔzqfE;EDs`fvr
M:#GVNƋ"ytrflp
] 5>D9ؠ [tp]`c2HZTNr	hMLM;'nۜ_i}KOÞ\`-NEf3lfaӼWŒ>+wU*<;/xewpMHLų`=*RͅЬ V'|" U C."
X߹\F4nm-V&	cV3e|!Z:қgmVe__${}#{}X7e888ἥ	%xSfͭP>áA~\Q3= sJt9(˶8x>\< (;~|3Rhٳ.Cƪl+b:Hr"M^[Z&!
rd	X#tt9n2~dy]jaZռ,Dj2d|m~ k'
{n;Xj'Zk{U8:9H?ʭM1ڤ (T"zX@SN׋Dxs08IhW,b#Y)#[pw茧\5+ܬ$3џűWWXO猪PC[.mo\Q%DkdyO0HPEc'R]z,sǬ?"K'
u}b10ς;;06IvDEGםBTom[1tdɛ|ӣ_SUְV,=we7cvZ7݃9z~w0gS_8ɍS?pX#xty4<Y$@!2uz"PsUO<D=\q2:uVVt|7\sw:z*S,4Mq w#<50fBAUҘBV`s3m๣y?>ywI[n]J{ #ו$jTHFdfoE$8Cbgl@i1d7OqHgC [5EJ:j4eʤfcyp,{qLXYA  N+*p;g\H	у0$T-QqG9ZHpcX]=ëܜ@49Dm[)w~W.fE64
<ivggifv8ܭKS!Gئ[$%\
ɢ$d*S	`a8 ,4"c>Rwާ榸#˹Z6`"O{y+}l!Rgs|8n[rX}p$Ȭk
bP\*Vr	;/VEFOpxNTXF:%!δvPPԔ֞\_/ÙlTɛ(Up?u5UZ>/^{ghSp>01hA#'pĀـz&[`j]Ͷs}0-GW6of6DwnY7hs/͢즌='rx͑K2hK@nZ߁SNQGb8~_E~"%M!9P(@2QL$ (JDYk^v© d[Kj76`fMre{Tݒrߵi_#{{}<#<t}ǃG7|G-UI\{cKUMᅣ1@(JIdM:!'*K^=u<@`dMFuHzgtnN@#䓿Vjxe+˕+y;)<;W1]R2oBB{ld^TˍiAcn
Wa ܮ
?}_5Bqon}IT
VsEKW&ɻK8$0KG8h2duѦ1,'3y~v(*FEB6~ʹ޳C<X,TBո<Bד/Dl l_FSç,t}cc'`3bU*c.[{E%FS-6F'=I )eyyCInwo%u^Xi,ܵo]צLq?;<'\7y@SK-u#86JQe( 4\5aQi'ϳ`[c:
9A0~ak7#n2Z Rq@(DS2
T Rk:XDښ.%FK
O7;$lAOcxBQR4>!ji] $@J]ʁq8}Z6haDx}^pM&c7]-o@7]KvE	n\Z}PhE)	[;zF.!$y,Yn3!RqQx9~CnӄLD&'wO6aV罴aGӆÝz[AuIQkg]5X rg*R%=mu.mx'߾ߝf~>rgZr,RxU`8)9q² tm6ۣ;hd~X\H,.P&0kTb{cSm)@ЈX>ɶRHV2sXU£<Ns9\61q&S.vAl
Yf-BֹA>ybk-f&vV3+WzV~x^b <yAGp(Hll>pZ&YU`VCW6d~K\)^9M^_v;s;g-cI,epL(W|vE\ҠUFs8t6(k"ǲf'sRxa9=j45u+!W}X{ %a|	Z0$==g: ]`+gT2J3,
%2]Gzaܖ%'8;*D`zms@1;aYPFC\ ':[:ˍ64=-ڨTKKJWz^JTc5DBCaw<qNpn2¥5USKΪkVνT>Wi=?~=Ϊ\M:Mpti06LX3{}~bO	E.	Q88ONFejڃ<T׵YW=+jp#,PBc7OZG	>޺>Smo("Ŷ,F,19MEQp
K]`

KiqTb'}	O=y CrS8bJ#3-&H[SU;F<Gh
ot#\h4"wXB'vԛ
T#!`ie `(GW:fn
2Y99B5ܱ,0%rhw;	?_VEGEy4ao;l7,(M?|\gSL"YkNKgЁ	ܪzfT~_$n&_yO6\a%HrNR%3>8@d}UY|6s1KS),o%ZA3 8gx~T璻ox	h2d*`W|rkYNX^u_(9xN`xO:uTU{Z9&hS61sN2=˒C}Q+=RIs%!*Zhl'R iOhkW)|V^/9%Tca<"O\faAMW 2n"BcQM9qgAzd?=!<ɦG($c%ʙ#6h(N&
D"	` j ӟ~5*\`i%VK*e0G=O4L"SIŐ+oe>apa,i5Xk B$rG~PhZN-?mv,fUR<xݛ"!7tDmg69rk)A #P3t-)q4UBqA)4A BGSabˍvFUl:LW,q>K$6Ge;Q]`XU9X8Mww2?ti5cp7ƛUWER_AFDA%2<9Y3w^*.ȡ9=0Sw1Q^<al6х5IE0v^5WlNE]yn-Mv hqfEC?;bS#fNsUL=NS& v-$A5 02rVus@l\>4ǅV`\};,(uppe4䶱 1oC<_reo|9;KUsЍ	Fđ`pMJt*/4pr7hY<x7CW
?|ߊZx1 3M"(jW%ƻ/bVb4
6TxIo#+ÑDY LvxTHg(8^꛴_;Zl%OGqk^WxvNm{%|2)DMfAˉLIOZn<aP[:-i2N/AnXES7]Xǻ$."ϩ-67g0`#(DP$lkt]SҵBerlMWq=hi;$'K9`avZo]2䱫|E&Xsq")i,YS\' y:[hT8:Rx-ˆ m+?]Ūoཛ:y;?w'u+@k}/omL?_8VIJ)/Dihp	,<C:>֘e,&e@2r"
fM0Pfeaʘ<ؤ 9-) f'.bR[ʈ'*hM2B6Vh1iK˲XRIЕ,;-;N&`ѺixMTUk&1`R:CqR2Xh`|higJJ `&	KB;I,BͿκ&ĨcP6W<ڠA<@2+O+="atKGI/0[Qc`ӥ8LlfYz].nl檸=cV_,ҧyZeo=bn6-%}VsdRՋZlcs	YkAA:8tɠHQ	dfN?{̝PCk[Yj :Hwؚ+{X?QG6T ը ShY;>+",:cCNKs#Xv|xo2"|	Cs#lP7̈	x`eBZ6]NkX!	ס$oɯjQ|[_>y>b޳g
şTKED$s	Ԅ6jb4tF;QuX%=WUt"=FޘhjaQ(skpiƁKTKbG'ȀoO](4VAgHH9' ؎[CI$8K9K*]hVPi
 }
2#墼tI(V,3my:4QujŊ+@0)S`!6Z"`I;!E-UN_l!G$yƽ#.[)>UrrW	(+7N[ܜ?+<Ep`q'	X[I.h#:y֑%Xʇ\xE#qNIϱvmk[w^	u`3Rn`?'IO͡!ň<IDE5'op3Zi-ȁmFzޣԻ$ 7J
%LqB}
odFRw0:eVP&S2e'"!5i6/(4Ip*PD0ACO JlcuPe#_%`QO"^b-VSx%oEkQ 脌:GX`!҅m,UVG$thsAIuekNx"dWtFAJzJiQ&Kg>ªpnA12GFt%N
`iz.>9hWn[vM-0`IȂ2(+,	/ڋ2Da#\&Vtw]|~.*{ON~c"[=Q#;D3m,eةz;	˦YܬYO
v.NJLHXdBɍg;S`b`m[ˇſUYr4sFآzL5J#8$q-9޹n4}ݕ)g#t~*ս'uF`pFI7G	t^u"amtY0Tx)TU݊QHꑴ_;	7v~;Y\1@K,x&TxKU>cyT`;J?n_d7t ޵!	[eMvz.WfVr"X$%g}%c'7v]4gCHzҮ[叿B֮,1pS;v9L쳔 tJ\{dg+U$caKbt&<P*W$>Vked sџ߹Gk^/ו/^xOE7>{|H31׮+*FhاGI8kigf]a,*3bu\Wo~4zLn':ys?}׍vNwB?W(ؗѮn'7ZA$y2묜.gRT! !Q/92'X@ՅOHhƇEŁ4)X3h*uaZ p.$|aN :45pn8[:L=xUՎPZN+zdR8bE$W#i`Lt2\=,j-:yD6[b-ؐ]QA0p, S8\D# D@rZk):z*F1bJT!e5dpuZNJIhݽ&Xisrĩ=A梶SRg"
b(>;G	eL*Сum+~;zEG7g* +db
 bNJ^@>Q;>W8Oܰ fbB"PtRFaCyXg%F~S/ʲY\N-!|pVi0IȆ  h7KcZwZD X١v],eqk".J@-0Etew"
ݺW=ߌ!c[jG9!!}~3JpaL!%ۖF)r5}yv^O\q-C1KЂ{I2pBaofqtHx<ios9Q`A?s3e{NYaXig6XaF385,9pq/]_/Vb}'*xAQg
=Jׇ#8"n@6xRTbOZTFU7S&Dif ӊ63M5L(UtrĮr@a=Ot[MqGсS.AeKak7^@8u65@O'e]%3{-9vf 7@L
f-99M6K6EuWXy3{n$BpzVϛ9: 
ycIhM2:f̟?%lR4O)6ȟ@eP*Psʜr|IJνdTecNNAqW.r`w;K[Y`Uk]3<VwC?fbzC)bFŉ'q2k'_-ݽ@;b?7+~j/Qpq%JZURH"KNwdm,A$mAeL{ǉel_|ޔGۀ.b(h>'0[E$l,X	tIEyH眧VY8#`bPb@ۉI9"HY^-&+ʇ"M4\U׃^}wUG?9~Go8L}c @,7Ԯ+l`Cqg^S|sI2Ijc:{cJWȰIeK!L1"B8=Ȱ{+ޟ&/z)h8&	1]XgԗV`/`"brii{M\]V	IQybBQ;y%3}9G_d%hez=6˔ȬR֪ &ōI&<PcW\2GJv6a,[2GBaB4Νzʥ3!L%3=7H \Y
I)A߳j6[{ |~w'Vu0re1Nj"\ONb'r\6lPدo<t.n^|Gwևj]uǿ{a+NIKL6h #w+* s/<jfǈ8d2>?8x[MDGS"9]d+9g(y:b> {u\XҳiDrv?LUF.k&C]e ^f-#CK9f6ۄ!gkxG/e
BX8qւFJ</Qi+??[~t챆?6
@1fyvLP,y4}Jqm_-$Bh!*}T"+s"%&CCyS>ixו4pYS!H.8dңvlbV(Dxch9өNǊD{sji.C<߼p.S嶩X}Z+@]3ڵ8 1)(HA6
O;!)c.t;NK{$2@) W?U,,M*O"D:r{q
YF&"INv:H<Ї82˜OZiQS$}'<!NH<:F'}%P}yGA8KpiEl&O]P19z*8WxХ.h#tl'3 0xĜ\8wq|vQ2W`˰:fh 2"5=ըhgN]WagU>	*F(:qf z_h(>C;O+C(OCpG?hr˰p(L)G@1_ƨlyDIs9]haPhS]MJܜ-ؼb]Z'O?_vl2}J8ڴBPEЌ$F+8))3k[	vi*,߹` ͏_`+E F5oӝtWa3]sM<VYbeWȏ7_Z8a+{A%TBxJaO]^= #y>ԏn?͏?z㓫_\eҘCf*L/V	0,g؜wT`7>B#t9$zƽw]PmBԁމo錣q0T	 p6@A&\{p09sX'\@ z0<8ȱsN%a=&aaMj.@1P 148Q3jzLbaP+n7gG9O;_[œ'Ͻ9y<D'e/_ =nnUoN^W~tE]kEQ^7!HArMNsT`8tDcKpyb`nTu3WK`+$:bCoa91=QJ%3hT\A[yd|;L/6}#{J%x;s䖂3ϲVAd.q).wSS*r Nx;N*5P6zvZ`2`"n&_(B3;<{U,_2GHkƓY$+y4%]upK4 'h+nŀ/͉l<.&v]h Ӌ7ZVÓ 9M#,90oD	CT\[
<fp?ˠ:m4 :$S]XκYd;87A}D6y*tsa=`Dc=Xi0;FztX# 	If-ץW^vȩPf7Z<t_=~7S^2E$F&b!`0p7^ZɋzUy.UduP,>PBw$8c
*^@V Ho,。<&̞@ҙrd=BoCsx=~J/*P?
=FPajH,-SxF=z"Q'=yHF7*'fr˚3 1v*F0'2<Hd!iiʼ@D`y-*D/"т\F&yB+vb)QICzG-֋)Ce,XX<cTpr2)-qN.& dHfRfn榓$-=VnHqO?_/tæMi8u<?#ZsVH:?Ǩ۳/L%-xHټOb[dZH`@$)k2ى	]z:g.k<cHTơ @~<-0ۑzp!#lcqvC=io^$<ajZdj׏dX-56n1*J]'u^rٰiS_v/ǰ z!Fw󝍒<hs44W{ U\gFK]U/尭oˌS^.Y> h__'v)g2[6g`@8\br(pP|QKCO+<x8MFZ()I5.uj:[(t:0NA$-ZdWQxQ97C<Ԝ3KCdRx]";405?Pa6unUsUtZ"|wyV\i<I@RJQ<Ef	2b/kutӄ¿Q`]΍F>X@SÕfcKkGa5cyMQZM:?$O
lfY0Jt{jƠjtIQ8<z)C"wF{a+nW}L_6ypp68mYK7W8Լf*1lxNfx`TSA}NzcGNC/[d6p0+^asPq6OFՊҐjt/!B˰N}|B2DI--և7T8woYb뇗j1`Kx;Aac4Ȥ`(o[)䌮}Ze,pR%ϡ۽6r Qe.jɑIp&c;^@r!'L 2:7T34c_={tR]~hg<ݸvO|<z̑O/&eOnDv4
$yVp:Iw>]#__ޘA9Oխ/ߚEU˵>Kp_xp ,`-pJ'q\;IU6p#d6ᵍK 9PL9Y@	!L)睂Еw"+ ݐ|'k],H.6E
u1'FKxU[pω|]k7rk&~~?o'Q%ԚxY vnf_"YZaH,!9$ƶ	v-Z*C"c_wEf8mmn}T&6:mBZ~K[7)mU5/Qaeb,(&"TwR5Í>0Xik9U佷o~߸%ڭ[ߔ3*c]M?To'O?#=y;q\ʨruW_/С/.;Ȣ^jZ2g\)jTI{ϝ6(RYHY\$Fmdћ/}O?2;kʍ9h|Yw!@`d	=b
.-!`$8AeCQGĭTxR"gá}1az(n(Lyy<NRl)1Ҍ-Jlnp1RC*:e9lrE.xwQŻ$y=D)z}"#S3Jvn%vQ잸LK%[M::)re	ǲ-g7G{	0`=-࿾!>tԾN>к`,;>U!\`Z	yz79+wq=ytL>x'/ҢQG^Z+6bz"mmƻx6gcLQz@et8Q;yĮsp@M	#mMeEr_*,h3g2l᧞A8'1(a}˸"	!5A3}ȿ	yw,4U#؎bُoM
C-$l	@ecEpR%<:]
0TUD%OYG;M),b\}P+W"聴Ȼ'gK)û1#v!Lk
ÖfG]C S&q5':(lDFM<'T/9-s785gȅ\.b#}=w|ŹHlH2F2C84TǲOS|Ng]57-lQZRR|Ub]ӗw:'dVוd}ļX!{ZeQ<h^v6ݬG0&&Pϓ.2#
V|'N0X^"!--zF8x*]8G8.HN^$kd=[+Zf8|ܲ(aQjfUxf}]To$da0mC8P_NJFPIsgT,zZlSR;F)x
`&+~fKPU,pgbpg#%A8Wv֗o۬)1\ȒgQ
"2	
n!3`T@=XBF3/{^bK`s>A[	I`鲭>:;rx=rGT8:s\IrZ**3
+BB[>Bq|gWYy7k_~O.dlln^%:$)U*}$OrҦ3m_;J<?0gR-ăd奡 `L;=/<EV8,gTbCÏ;=iaٛ3ٍ$10$V>rit £ _hh	&[u}Ov64լ_^c ̸7| \0:K,xd&bƩ"*-zöRUWn:q`*S2)OW 0gV9	䣣K߿q5#~г絠"Hc8&\M%ZN\dPEJ֒BkCp`Y?F]:gU&m4o_@7; a"*ʝT:T	 ڒ<np{Tx[LpPRehwuIpI$1pH $jHܛ^	nT~Hj,tδ#1	DFYJiiQnuiDƗGkL7_o-(uL$=NEl=ؐN
םP bҮ.+[QFS[Unܑ;TY8M$
l^FTup(bpv09]҂|oq ֳM[31e\p.E#OPtӱGsXU4͢e _MLcܘP"* J"{T)cZdS )SЉ$ץX
pju6,Xzf=l5@B" #g4)IKg<Vs8cS)`Fίuڋ"0GgMɎVl#V1/U9uXX0up>s9I<m pdWZT%ϠY0
}5{ɖ9LS7?~p6t	pv:wgg~V/8t8a_<+p-5v;Wg.t"4jw gۤ.Bv~4!)kLv28jC pcX9 y`ceJ7ߝ
 x!vʄ5!k$VIA炑?ׂ-|̻`xyҺ ui8k/)HnB	qe֋d"IsqPݰ}`&"SaC/=r$<Su6{$
 4m[T0I rpNYY;3E8w]+9ѭe싓kX	B2V;R{GE?ۀO8>ܮer5뢸
ݍ-.`a?|jt)
i "Sgʡw\o.];YX6	mPw/2EQM lCKm*$39k.ᨓq$)bN%+Rs<޻~~	qg>j4`X'F(	9wVh@X:feN.-C{=]uaɐxg#74wi{Ybf$SdJF pe҃1.2Y=;FŠU'rǓ\u/]`Cg8Tg
+T6;hbdF0ɶ$VpE:l`e	p y/Pιt/&￵<\Inxy'\6T%@9)l46Y8N\TD簛 c6J̕RbǤ&%X"łnP¤^ǩ] 0=4V;8vZ:~jgW.<
{]@&#ІU6ybʢg"%:dRé#cϲ؈;(mhyviBɞv80LTXwoL_|L}_U:u	0♅w8U}xUd}z.Pš9h
26V	JV<+<E72So_v7	/5Ah;[PѮvxƌwkE1+O~ZqkU4!_<Ҝ^F a8Z5s#\	b!H{nqCڼ-]߼v	cxqz/cAz{P%ΜI0@U/"f$(u٭uAFa3'ȶGooԳK7Gԇ`f!| ;' &_>z|z%fK޷_ظ4:H	߾Zō%FIq<,K[~Xc(5 [ОjE,(tVFZړ~%C".#$pBS7풫ʹ_W_;Zjc!l,]׷WwT@O`3OP@a)CUlJa~O2ω81dDbwrA$R9~l \My FawUBEI&;A wmӭ\BJӊT2M&.ƬbgE6DMU<hi0I>#$Kj*^_۩&۳Fd[rx']NwT	;|Ey%PP4,br<8JF,81+,݊OrpTȾjpZ1(e$ڼ,4@VO};و>$ZQĚy͸YI:'Y0QAz(n+JѧgƖfdB12űJg֔`g_Z!7b%B[a2:;YH #SA/RHӖ#t.4جхiD0gl赫(Z	 Fs:	v/ʥvܞ9菕ӚHoId[sU(,Ni%F|+ 6hB(ZXY7weU7y69uj՜#AXx SJT$v؝rUc
;ܴ/W5_nrA˥
=K4~8+hӭ29CZNS8y$ye/%#{ͫ&['pX2Λ6&F#C&>
4!-I
<E=+M9ߝXP7w3a+}DcsЮ[MZ/Ўn+i$7tB^eQ/eH5GC%R6ąGB3;\6oVK4s'Q1L5s>32ZFXPJyNW ;9\(R;8{Bv`UΥ,ԗu>x6XR)$:*GoY*Uy̫/Iॏk[SrǏD+ȤpmRHXDk̰mQ$S|y-jp2NS}BxHBf	}R6&he3?sRKE2L6M
 U*ݵt2bsi+//Ϟ<1 EpxX=vvVE#0(Fڂjm|wg}<Ktw6xd^JG(v$h&	o;IO('HZ8`	E_!.lu&m'?~Wo~TypLwls5wGdƅd8W\Í$TEXsYO377<7p
5lKxCgoo",`+nᱭ.KRZ4Y|ddէ'jvbeS $dڥr2VOpvN{Hs$y`)i)`y*LXM4SZc^!*rl'w^W)S}O/M+5F){$&FcP:[.#č"[Q4q}ZjaܫorE,hUz
 X;߆7kkp%öjj{1d+HG#LH˕J	X0[vɈI&W %bNGZNhkSڸva8+,c#!D*V{Ƙ%Zԙ&	ؘ[mvB3:̯nqU~ڌpɼ4Plu#!``K8&v|MKa0mI}C?I.S)sp7lU8[pIς"p;LYtrH*T21DHRFI?q*wqg>=?W?uq~io}{[j<(5,5`H+HHtR;lϿkN;U"gPT)LQlV٬3#rIUs{gHpu8sI`ƌ:d{
HwENWhK?Q:'OၮL8[!q<a4.'p]r"U1^̗T*".WZ#F*G g{oJʙբ:P]m[{W*P_9BY}wn]qx㓃Ϟ?46/^:!ycLJhh+g""s	*kN~Z_東 cin qFNI<oENf<khwmz-V..zY-~Hd\LRҀe:''pi̴n^qxGODhWVݷn]25.ؼ<v	P	(Mͩ2dQ z8-ũ}]ҕ<ʄS(Zydklvڽlu`#`w6vzbVo@_}3t}9<3|iƾ*K`K8ʂ_	cQYJ0:	^qKHXq3]|5eb\d:& "3fD !Ǡî9_i#SJ(&Zfzemo4h _Ȧuq|Fb密:?w=ӛ~g;5zqX4QĂGHK?g
"3մBZϯ&b `aہ+N2Qt^a )6bȤ94Kt;Y­K"73Qr^:Vy֗>OOߺaU0O0,SvkBjFx_ F"8$(B4+UlcOx7:5rf?qDTL-n,בFA/cHle+(
8x+8*ՐV}%PjW6.FjJR̝ 9خG_㿵w]jNHq6Q{Ӟ۽ք9KBXؕ(KkCaH*/4ad,ivgqn:c8#J?Oi@;m{
FGI	J#|^$	G0}hBqWifDT.E\OW^IFmʠg:FZuOUɚ鴋^7nH풌>lnaV{lK0'h4:m0ch=B~19w45	S>e\sY0ݒp|[%b`/N*lIGin_~mdp.P	'o?@^sd"QNn6hgEY 
	~ZDBl+;|꿀
mRYt\X={P)B(-8D3lXMkkЙ>_c>S<z N3&YUi"MHir44wC$=Ebى -,MN01A\C<(X+1~u᳷kVdp.޺4ǻq{x&^`ɘtcRYH)ҩD!oڲr:aod9C	^+ns<t$ZY1% 1I!8ki_$Jvm.ߪJl1h(a}moo~O+O2HpǚhaYv*lBQz<%D}Y8hMq飐p=D%# I|zQP!"E	>a}(k^:LMDVF8xLRՈskI.'FkMvUp%C\.-CAeY'(Zt|C8?{g_o>W6o4͵4x˿=
1*4F~xq❴3vƌIuaWZNPu	<w o[<q,G}ys<uϟ_y*	-&GID-cG#dfFE3#~ wxo6ßxfJlZ?FBK֕q@P0@p'aR奨v{o>T 祭bw<_ᓯ~׳rMٷxGıȱ:{8)Q1'=ܝ ܖUJȩ7}`͞DɇNx{*vyb<~q:eJDhL2Sw?tePA?nlZ Sa0q	 H)̔[ua`sz8;X?{W/@D#03RR^)xϠRggˉe{O8KȽq^ƹ^s(H2딍js,瑄Yv%c(ZUK9mшD $L12N?>0SS}3GB9E^+/J;R\Y
ݖU:aɧD毧nF&8#(L6[qh wp{#^nA>ݐӶ4J0jLuCY.	MH
A4\LF)/	˩8	#L(MP[igQn׮L+MY5\7_;R
'b[TQႧ=	eأ{ڳƚ[2E2}`拍;ҀWgހg2]sHG 5F.yT+/=N{·v_Sz h$pN82jt֜BߒbrrA?E'Uw=w^8y)YO*>4\ bў.JPѴ\bFj) ^$xlDs%B"=&܌7T!<S6RT05FW
@H
PV+ U9MrI&V'	&2KMK ŕ zzYa}bJ -pRv;0Tm5-4;tk/q(clU**<r0K,϶X .:^c_eZDhMO{):HܐI5kw^'0Ź {ꌐ#4DrmyҴݚбۯC6:m!+9,qInQQ:*<KFFqI^f,RzX$Ӫ&DI1,%GWφϿw??0Uý	&P&8Xy-WL8W.Ԣ[;	.|IILLE
QpH!$aR
F[GDfSUڑ	p3KpV4ʼ0g"}~]+½ CFrN 1%x7rFIvdqp`&	S <b#6	yF+@Qv,edZ9a4FqBS0bBotlQ
rJ QZc5SI1eȎ8	$Z|fmQmRSJ }c+ L~ʹgws+7)Llo-`-$L; no߱5A5!dAVd88[v, ?JPp^,\%ZNo{>m I63G$MSD7ʀpcNNpy"jM"Ĵ]oⶎ3:kM֗_գ>BkW]ݴ?vvC	kD2;$Ej"U,Cap
KĒujdHz䇳{ʵ TIA't}+K(x'K^	*cQ#)vW i66(vz?V^wNYmJqhe26_'FAьTƔZێfr̠_BiZ~gNao{4DC`5	Qw`2zUJ	\a,[dڈ՚	aY[qy)FguZ_Cx\S}X y#@?SGRiFi<2]*LJKP{7Vlo
ٍx\vYE1?&0VM&&	H*J;{`u۲I.:܇e#D{>cݓ$!I1뙁ERiR`:d߮D|\:	O06hʰ]]rrHڅ0]LJN~v֔=悅P9S&yV{ ,\k־I4})4b(@d1L\ 1Fk0IN\'-G9L)O<(&qyUfwasɟ+fw$M$jlJGсk^6RzO\cnKtf^)ﭳ'f։T]C=vΓcDʫ/nLk8J /IQ5 |bgO1cF?>psTp8"Y,mkQU!$gː1Bg}D]E뿋lD	?6|oö=ⶾ]$4kk~_v{;ݠD *D#cx_AXNko;76p:pW6/?7l0E1,FZ@[{@IGBSna3pV][X)yq:]B9MB0?\[ҀUUA, Fb6KKW g@Ӟu)`ML{PpcUhtZR0z|R8N1i2**%SťE8*Z>CH9P7a;(NV6;x"7z5`kz`/qC>|o~:f?(2E6ynw8'F* |k%J"61(8e/BNo0zwۅǾS!8%YD&2['`FzeX4
/"d`;FN{iUB.ԯ>#IڮN]ܚ3&7L%H
G/s)0;!%:@T{~lopR0tulltd;72ł_a+o.+ڥ;0Z^2?[a>?x'Oգ1b|ÑJũS`G pp.D1>_8^Iϼo|y>%C1klp dHZS-ES#Yן;x숼&	>٬rQ'8ҡ<\F(⯉lU4 )٨:9uZ%O s[U~eKj@>ZO96sE$X 2%}? c$rp}"SufPNnVv(uE`FbrqVFS|;UGsp6r
$ dPF98Ig
o|Em7یvEh#$hN#zY@B4N^[&z5=C=	
,=9 &C`gFKYc;H@vI.}rJ)o:Jn~:/÷6|:=zo~r2Mxd 9qەo1nJH?=^%55E`>,E^z#`ah|2,i!OK|&J  ) ,NNIc
A@HnS9^L\ݠ@eQǂ<
A{;㾁3Nz쮮cff4\
K'"+&yCf]4I<7%ưA4W=tŐ[qk7Ե	Pdk!cI#_g6P	Nsc+|DMXc*:ūi
`O:HXh#TEk9 5Q0R1gJ5>9Ǎ-7w0kȔWv*;ZueE; B/=8҅/^|`=/\zG>{VÕ_ʥ^4q%fYAuCdi)IpR?ru"$ծbFEi^pȤڔ,@wA՚v{iB7-srVsY+Ni@	8|B̒"<2
W.RՑ>F	ܡorqqƃ5F?
j%q
+𫵎BD饋f$CZSe;/[$2[$EA(h@S<^r)]^Z0Tg"Ksu4(%2D
wR	>2m-uTOge0I$#7@?]Q_0)tAO̴ 0S]mYxU ]
)S+?]*.o|~.gko(o۽?@3"%"P8"AµV@
Na\_vT)k1{ƺ_(U&^4.0J+C*0XY,
Rlw7d^d%2l18tcDWdpo?zz}og64wkA
	,FSN1JrA$\9\؏O͎ۀ+VOŰ|u?DnʾeU?u
͇=9	c,7@0$ӹad0|HR{8VNxs>׷W DGVN?Z؄=S+|:b1ӗp8ŞX4p"p,x 1D{?b<؞^b^k?'NWYd[D<0,f,.#b	7[+|]Щo6fwfksJW|$q6f¬giFc7 2$A8X&0`I>uPLzcF @^z@߀:9i)^i=A}%?\MUo&K~LB8JGv @G$vᣌ6']9 Ὣik['nK=\tŻW./Λ+9Z1G
\+(@v5K\)A}eV:b[yoc	gMOyll成f|ȊS|:'}Aoޱk8r)VF<E2Fnq[~zOJ"H)xfMYl9IphRrADr꣕s֔s" Tg]yq]:[o`Gy/_NЀd``-71Bp_c.0p`
:(#麴8{|MWhʚ1]Ijx&Lu`w@~B,CL})qXn==9|͍fϪrhPOx	oTbj?gMmsg]4%76k^{O߸v7oNsN_^wjqh4*,OT&fǑlc`
g kHsokT]B)VX\*_\fHpw%Po␡l2Fn{fxh+eoM ꬄ²&\ ZsS]]ɣDp-`dp TZˤȄ<FKJt=B
ٯ52,:	_ s;"\'1B	+M\KjUZGª%[<1pLDfd[V0Gu
(/N[RsGSM	+ޗc.{fpkqs6zE8޸g#\u$XMjUV; OR䓣&QiwѶ(PTf(\$SF1*D*{je*u䇕>gs
`SE7YAykkmM[9[(Z2B?LZy{.\phI1ErZtGP~GY4*20+I<[gqM'8)h $yIik@H621	;Q غBI"3Δ6
gC*R:L^sl[bkR!UC{߫:O>GuY?|3XR rIBS`pfu8nnkʥXUE~a7_'?;Of:6f?lQ9C0E|/Gu&b[qy"S8:tNoUVM'ڧqmՎO<($@Ca5U^K`E2`S^3Z?L lKØ5afE!Nk=|ԅe	NGR"E2h+Fus9wv߹ٹAH
`E!áH"Yl3w@۫/~w:sO^v>{Ƀ/PϿv͗ :gˇ=כo#5?k_}"uы?9o5/__;Uc7hгͲf8Z|)q`Yhpt.E*4Bt@lr%k	;>5%XRYsSDS#UD`ʊErMAD	{;fKg}$"^+gc{q%@ٲaӦy׽->+SڴVU?!VN'ZrX8G6p4yei[<9~Ƌfk ޼:qgYW^yav>򘨐r7gmf']Ng1q7Y)$I\rnIH-!xFr*J.,`qt׽d|y&)~jx<n$N( \<`[mRqBI|xRdwsΎ $LyGvgc1R=T ,r,jpDz;sn:u0G	iA$p9v픆.DP.2Mi	<jEɜw7AVby?Wp>cQߍZ"e9eÙ/ӁQ{"K8]Jdk!8MwgPZk/~җë?;_x_}un|po?_  k~85zTgYJspGJ-WTpd4NjξS
	(7{ollu7XsZOGIi\IO̤lsuZՔJ$)mYZ$wFn~6z;h|z7SnI}PcI>i֠*qR!'2_ 2[I+]dTM9M5J e6nqXꭃ7=1ag+U$qHeKL{Aڞ*)446:Kso
^zΤҚ.Wa
̑(UΞJ2e	ʁc-RY&*[N
 E={yIWvxܚ{Z?9dIYt<эs{+k/F-1&d! De}fY x>pѧ"%l\cG~im5lqBk+;{=D(̜0؎x3N[[+~Fz(&*y7;x﹃C Jf$+*d88Q+M^GYܒŴ\ooqC,5g\Sg_*puh
r]IȠ7^H#yߺ,#u8n}kس_eYfzt?:GAsʩqp=!̰IƱ. -!8vY~tPd^N˒;bymG~3MvQZ̤Zn8u1BlpZ[ca%Y/8Ъw5nJ	͒C)\zox0ILFRGSl\8$Vby<}	~0<0zOL褄ϰtk8*?`(o3ې;4m,2:eep
\Kkp]/x5(_
M貀X3-r%14g. k<%*J29'".d?:-d]l>f=D@7__| =rFLzp+m;̣VlWHO	kbL@d>iAsZrl,dmQ=mg( dʬ3)ǝڼQ:H:QM{UdoǎKLpɴ/"$5X#^G}AhinU\?S9% O]("Az2	JPËKa;nÆUL+?{_}𭧑am6-Z)W86kWMB&D]wֲ[z+{|SfuL5)T#ё) lD院Q"@ G gIǅINbGL ޺­~_~@)'Х|dkZm=;Zp<xd5omn~s/+W-p=6.7=:HIq=:gK栬aQԿt}KuF0L4rIE1mn._?BHx.5,0}melSS０rX/qpO32q0GUX+考)Nwkf
hTkR{xepge[?~?p*Pef$mtC9kdז53۩7>N]~ثjYzuN\O:dʻ))HM3w&h֧qjſ޺bcygӏTJ~<[8TSlLZ K
d\Z4}B<3F#$"-7& H	Z[X(Z]9bv'.+Umt
4N?|#y>>UiEjE
:,$HJ >RVj33ӗn3D1
1s^k%qTD(*¶Pm:=0>a_Y Dձ76Z{nuw.nϴlw-#V~6]WN39M-8"	6>0G=hy2TmsPУ/^`RbLh!dG1 xRks$\?em$̐Hy}_ 	9<G4`%Q&y,ZR
";mLVjIy%%Z&Ҕ{MCX}o3? 9k.DP^up`ta$M[qIhZtF:pr7&A8z9Qx5l҃r6I'=J\IÀgwWd۴O!2÷s_3;ii#ype<g	} P^ɔ`gp$ [Z"D
"^ͩg%pBؗhЙE'nbqܹyIFjq^DpEW P=uqc0Q0,.aS bLnbigzk]Y;7L;~>FeQ{:3NWVs"18хe.-i]*];覊kPwhydXI31X	qJ[(ZcQܤ<8]X5[M15<drd)8I$n`Esۘ{̫MtgKT;a|2wr]E]I%4E7Uh)cob;
w
zhWFs"3(E_apuXgb8a>Sɣ,<~YDH>yYenso}&)ypSr55xc#)F hN`R6V1EKTe7.䞴b<Kw8eA5n3|sL'O:8ᰐ2`]j0DtZɀeX/#?-,Ѵ8|;7w3 a:MמZ\ JΙ։e  F052O<OB=]	 ^jZQz޸z խTn4ЮN*wA٬AZe'p+T& `)&A79P$%1r!|ٗ!]]`ጓ8Qh RЎꥭ:Lhjoe&.T&N%C"% #MZ +6.慄ґ2y Բ'=aGWW7גvRv̀ҭF%,\KMhM꿤{
Ƽ	Q˶^Լv"\$q 똌8uHNXY<x_&mLg&;B8'ˢ.S.@'8JHk]b\]GK }ŏEv!f}85"RGƟ؃[Uc,{_1,$2> <ApXNC]*pSuVhIQ)ƃ?tɯfǂXwvZl}xYYw[#;V9^eN1G',+ZF'}D6Wx|Q $>GX4.F{[a-p7V>ɖnmr`m-v;;~M^><&
괰J>	.Ƹs339 z`=st,64}GN46ͤsd2+# )mP2q`+c%塴ecukTw/IZ~յ	S6*)Ej}w9zppH,A"
S4rUaFr_?Tf7_ r?TXft79-IR!81Kq,}L>y@aɵ^G4s^W]5IKWA-PBr2	d'ֶm=R$|ג_m?6џ>_{чO`7>{ܶ{"Vu$wl\k6)?nF| ,&CJb 	mfG}^8ґz=崿?ڴ{A;Z#L0*S}(,W8L4cP	%RkLF4͆0EQ9ެhČmRE:$<:]>
ad<*^h#E># F͚9>FUk9#}*NPM2 {8VD2vb2TѦ1	jz2qf܈gZrpbl$3+Vipf,lC4L"ׅCON ܣ2xᵷn?>xoqvx«/n!UlfD`CY5qp k[f{Ysu#LXy(`[	N,g!τQu NL\bh9*TtAf99sg`*;"fHouҳ\Td%
ߟ$$.o.٘ &L8tYN@ŁX$[I㆕y'qh)h[8(6 HhV6.
ni}ԡv޻2u ahI'- BC"|3w.np:SUA$us "3d#uya=,:<3{'nGwū,Yq'I&
`_Xkbۍ"iKAEXM:P|r*{+QrOuAirU4?OMcj`p71ܕ5Tûg:zmȧ3y~M^)C41 eg[_r:ڸEA*7ߪGm3Ï[׿8G/FlWTsـcϧ\[-ʄ;*NbD$lٓϯqXfyjEдwc5ڼv0$vGG ;SR	<
$Emv4u_߹<_ajkPɛ\*ï^<gܽu,SoWFk*@Q%$r;ߡBB]Gm*ۯW*Q%n3:}i6[;v6U.'̾ls_/Og5=G㫽V;udy'/D#R/;I
HR!-:8Y#q@f18mVF\L; $ V9-[3ވ	(N~'|_82¡TCCVFHGՃN)E{Z\;v75mExj%I)8I۶9 ώzR-,2.`蟎L.9*sfUݣ?Ы
ɔ5:#eEp`M*QZlriY-<<d)w)dܽvKP<ᶱ dZ)X\XM{6 g4jFoN"ql*0k/U\gみ~~oRkވ3sK-:*֖#A,8pB5}Hl·AS{iĸC}fbxXrD`2 e=OF]-g,/$JNej+Z1XXvot7}0ݦ+3J\2k3]CqܓŹFklhd [rwmWfXL#/n<Gwnm$ >  ΂s&XTm:VPɋĜ$Ju
dəxzx⡇hж8i53)'k~܈LYDNDp2`Ru'P%GlmIIe~XR޺qEW|}oguYKjX4ػ_s-?.N~R!-[\j",ݐxDLRXYF<CFk;0ĊД½Cs?n2 '?'l0KWX⑞-&xv$ho*N+hZ8|rN`8gna[-K0ؠIVd#:ELvVDc0_r&#ӖXVqHNǙ'!juWWH/vQ-e&uts9+KѝꩍˉS96$!RqVk[E=NU{?.+YҨ"VB
e2$ #S*q\"vkkmOj$Α}9ZGPNCkI]b!n5TFiFP<6'PAS/ˑ"Uaiot<H !E%ʇhMXR ݧK.8ReaѸL̞,ěYppg$VG$pl®oFsލ慍;@$AEsTդSZ7\+B-:L"箳Ԅe@0t:³PDl2 F8X
.{P3/v*#h@9կċU^f=~tp$QAR+qp tt*L}Wyg*HFSw_*7ES,̺FD=©/czbG
Nh}޸ollN'|F| I~
"&#JElI1h>5~! y|N|20Κ.! &$2lNlG]gW>|я
}ېD3aղ	g[/$jmku:}%o?OnΨKun'u4/]H]F e9K\_-ř=+mGvE7&dlR
fb|d%Xإ7[%¨Emq)oj
kL]TߚuZ=r`"Qȧ}dx5
 ,סr{fAyNHJj+2O<IvLQ=嬿2r:7tznENמ'%NbFfbe+lWW zFq
VK9Apj
ؤmkmd٪æ5TOS?BD{<e42xEdM@演?*V\$°xI{HI4]mq%aKimp_@DvY@HbU /;bNs;-gN`RiAQ`zBݴ8G˦f28J.}3{>A 9hIǂ	l&wxN/Qd=0OH%5eMgLM1d/.\ޒo߿V$bL-:ԭġ,VA**Wk	cZ߻FXO-{f>3'Nr }0g${ﴘU.bBA΄y#,	
\ܝTK:Û})ǉO e, )FpYm8Jc>I/D%#l橈٦E 2ܰ9[W
紗5>^;3vHۿ|#:3WX5 if	7T'C(vE[3,Ae?=Q|K˃V-x^|k=_*~8=K L2Hrv $iELثij^~M* hحY'<N^K{[^BFv=<EɵC՘%3SK܁SmǨuE_2( *&x-	8x#M5^kgudb#)G*7c'BYtqeosmH`Wx}?ʅ{/^.NG(/725YK,e{
(='`24Ԭ$r/J]MUT*	`cɓ|/32/$QҎEW9zz#DF
Ras==VXg/f/)wGYFVœR&L9H#NKƳNWe.eO)&U'BzF+l˗_5>mv|Idj""(.p\}K5W bQ7K
:xřyJlq~eoRHa+Y}-;Izͷ|+UM(~VIp QްXӇ_&OmMtx_oU+J;2*YY)rQv
.^Y/iun!1}|ZW$~{&))9 I&%'VVW \`%Ze}-FưkxB'p4_l<RSf{/zRyH*hC J3!Akh`nNӒ#I]qkP\(ja~'M2&1B	k`qwKi1/DpI
A{)Yd[w:/z~[S*[ʫ	] ig]q~_^?sU2i)j*˱<q<F\3Ǽ4Bp|myK}|}W]Я*ګJvf	(HN{& Lpo8BD=0)s~us*.u0
sKU]ݠ4 0 RDhwI<$̰{}l5z=>>sͫSnm`-X|F,⊀ *alYK{Y$13 )"`t*\ lI{6qel&÷0y?;Z#F~ʠH+F&+</b2&&$<Wf^ыq}V'q/}y3kG{Wݩr_gJZNBxsuW~sr*xbXױ*2C9ߋ^Ǩ3-;>3fLVݠBjԽY\W?Rẽ{uy\eCAUu\g"E'3''SeS`SL驾B}{#O!j"Swaߞ~[NfL:+-iOݩ}罙v	"x I\aM<֢^6V>&-0
wR'A/ 4]JWZ'4Z`Dr\}3!5Vwpߜ3eQK6cJ&i%uk3Z<uK-=[*guڴ>vx%[8gDs7)$6(cOg\9]4@)j`p֙.!l~wCxPQsyD"I0krDT<sZdV#u'_ 	Sd2ռtYel F,/lz_ހr+g'gbfO`# Q1K2aKIȩK8YpʡM|_a81<q;8sfdsQECG/4xYYfĵT&=x3g.߽.~0QLǑU@W'7Ʋ(D`5X7YP!31j%
+f5-E&no{/L=W~[j|י1WJepG];3IVfX l:x|ƼZ˽lSB^[&gڻ^55;=3y{h=Gogv H'
^TC8qʄk. P2(	h,CTxz,Uje;>yNep5bXT$pyʊd'R,	\WEO:dsPޑhI2f;w'2'+Dq\%?i&vjdكTFp̹ g P	B:ZaZpA8S},`Ny:"5mhpp\v{Z*222L~\RhRNTTT-F9]O8n"3 :&+¦E3m4S͵$POC86HZSTatiվCLd9 ]7^沋:]M0wn2dd hNkl4pJkxIw@K0ǹ.RCB XD5qfT#DE2vJYNtU}[*1^}7U0oVys` &DyQD2`G86QT_ڃx0p{i^-=*
?J$W
s:.w1WyYl$Rt,8'/"y_=әjOr,Cp%OɄoM9eRQaR(ĸNzغJ*cpx)הK
ٕ&ruO"Vy=/`-cY¿M,! bO+ќw~NĄ}IrenJ7t8w֓=|':GX
hb6u*\ ~38'$3FM_cLBZ|z.M (3!vT-P3@5ؘ%Rh@m#LSj1u݊ƨz$1:sHN|b9~?=%RzU+nZ =s>^>}27|܍Ϝ=<<P	i	\Y+T!:jc)/zH!5riW\:IP7ئ4	<x	5z4}%ZRy5ҩXd mLq@-5p8>,[prјYX!s&X26'OO8\(KkB䷇};ϡl ypД:\RKvZe靂ܥL~, W"zOW) s"fZl&`iַ*=8Q	ԩUD	4L$4FeTvEfBB+P	u<*x߻^G[/7iɷϽҎګן/~Ӧ&r_M.OwDx$ic"E4&iGF΅=h9(״_]"4F-.[\S?Г#u3搙J@u1)Dñq?H<DN5$GfGYWg"!i3-f]RJ\xIFZHγAZPufx HuW|Ib'15%vщSi^ӒKlx}4阃:S#RJyPPcR2xWh
k\/HqTד?η\Bo'T&s	2WGOSu(#wqYzSllr^'/8&eñB0$b̉8pX#,H6m|ђ	~HKu0xCoPCB&QUbB°C7ow ??|&f.Ϊ>( tO*Xp4)LXuߗF]0*0b(#7~0,k`4Z : guh,L)z N=hoot>FwGN(FTd&*m̃IEIH	9mU]]&}3&[(dYY@`46O'	Fs(%.*2]uf[8M <S.HKOE̵T5q \3"/pkFBV
Xb.YŖb.#`Q=bvb(Kdaش/p|5D2{/l2%m\&'ڹhU,bW 4aESāIX#cÛyAJ%+Qr6IКgf4?z񫗖e{{zzw?
 Jk ىN*j	.	!)iRY%tA	ʇ8*\e!c	CtI3nh2ެU5>₫(^Qwi|e	s^4\wt>[lVᔓB3=Wz^xiߍu@Jr9qD@v*I͈(\1kW0aJ󞊂Uw"V#Xhח?'`0 L[lPA;:>H}ǯvҚN3NVF<%Va̽MN{LM#$fgeʹ\c(}EEe2j+s&9\twQxڟ
/ai6[z	$~O?p8kGre-q(
|RAD٫z
L8 6m+1Yl J<Wq6LLٓlabLt]I3X$,۳\>c7i ŅdiƧ%署ʟWMkppl`J&5cBiI꾫ԅѵ.psw	L)} 7KLk6+&M{\.uo{OggF^
{3Fmq)"n2֤mu ~`o?ܳZ9o=fRJbFK1_ͫ=7cvTRJqt`Wa=v{85 CT˥MJ2=5_+^ö]Ąg<rH
NOdfsp,M$P櫕-,!=WNlp#OZS39ũ蝑2fK"95ɹP2Gݜԃ,S*X1 5fij!gB
UTӉlԊV "NK&1`:y,Hە%˳>Hj0#}4KP^lT@iӶ3Z屣t%_'hKp:/SB^|wB.G/|l,jD| ;frP)sBwJd9%scx.p1i@[Ygl=PpC&`$@|hCYjOچ{HD~XQjifƲ=N~9[vҁ; m( qtb
*)&b\Ͻʍ*HI٨T`#+~6}9t}-n5ˊW`QRDǵy+={-I5۬&dY]\gop O$NQH~g3fb錕-~8ԬOҞFd	y4kw	KjGmǤ_Ԁ9Åh{vu*wxO33[EyGvaLzBB墈,9>MB[8ʑ,6vV>׬Q{hk7]ځu.oqt~{~߫>̻מ:3~keC$wrF-IF7Ng
~D'.SEF#pt y#䍷Azw$|Kݣw2U _d,EVW&$	LHKGjk?\ѫpƜӍ\U%j	!#R6%1ܗF[ 5`xw!%7caגf\Cȃrq\HF&*Wk̔Rw<ov&l	23&b.Kj0Y&D6mH\͙.EhYE[}rx[;5ڝ9I@CD۳3)4 %PW
7 ^V^謕ޤR+љ;l|wՓnw8uK: MmΟ_ޚF<֥H$oaօ>+:tZprl&>ex/ʒ+KUxP fJrwEe L-
Wx FK<u/P	*) ؈jLXS]jl\+n7ZV5b̐l@^Ż;cv<
eL0?$˥?!ȧn;8ibʣqi|S?6!ցΒS:𔙇n2]faet48ͽ zj'aajX%& 	A$nkk?]ݿ7_<2|ZWr}qxxoXu48p;I׆~B=í,k.0Zx/a,o[Gr;*9"/V,r&P41Zs8V+<G`YB
Ȓu|laҍ3#3  H;{B{3΃7>rua.NnX;;$mP)v#:`LXtk[6/ņX*&Wa1S{C  !QZ^cB(0}¹pBU6HK!Ĕ&|JvBp6VI6{x&k,UFJP ȥLOX-9"DQSteX tIΐLbS2ærL>XY:]x+r9f+7xi#'F'auՄXqq&\uǾew_IA]mk;-@|3_Y¤1snv	Ǟl!_U|ꚡdg)Z}L0@: Z$62I+|]=Z>+/"l6w-x AJ i'J%XNm\GTypݝq_V26iGFkgGF3Ӛ;;EQĀbwd@}k5'ߴSx2q沖tG̈́ǚS^!̂_A$[Į!h|	WPSLRRDvO~u[Go-Q}/|9䌛>IFx4!Ԣ 7Li&"
\٤|e𫛙c1st3mw/!yߟ<eIjBF)ny)V+ô<`G"YG·{f BBb`Z!D#I2˕ =d*l+Sҭ~8yG_n?IKv'k\3VH@Q>Q#qԓ^k#8wz$n%eBc|BÞ}]?E!f
sJl6UXoN &&ĂpI) fL%,S>ё8`;Qny4+:,@-gjY+j<qlJfeh)k&%NW, X ʃᯫ\
D.J8xn "<TffW`FX]''"Bh|k|▥Zh&JV.EsZ3g]&<DS"Q9C4~ ilcfQI%xݑN* b(X+L>)*gi+v!.ts6*V0u,)J:$Ͻv2]]nK} )"`t"0)XG@Ph5장6hwDPFQy4p 1_`qy<~r䕯EWi]g,	b?	j`HKt"aW[3#|<C114wJ=1Y2ԣ
,DH	sѐ(mEpw&a)Kw(qga0~KmiZ{KQH8w"2q.li1Jr3A|_hS}?ߝ[̓x_.4e"fv*QG^M`; |jkd9r!}dMyLGP`_[~<p8$4\S((2>lPk9#uaԩ?w̭B2%@uW8fweiR&JF	qe)d.pdD6&Tǵ8=er*'ǣ=.q{w,
h >X(L""h U3`4"ő0zXzOv5WblU&72y﫭9_ox1Ϣf)19D$3m*"o^F($p=pYL䰵0h}櫲YLwk(\GpƀAð	$;Љ;3+y:* `7;ܢf(]lPҍصN<ˏ.
!`{tiXRsm	U	Խ1:~=S7ݨNIVWA&"$DSr`y,Y+EzӤ˭qݺJJ9Yf,ôy%G'W.fg祀=0S՞т|(- YVU
2;Ji.d# 88^\\>^Q4'W&xd*)uPF(5QndM6M%\`u;;_3B}foII	.Q$@>V@*~Ƅ X:==O^tNh.*YR};dl͊ncxreQ'4Wi !Q̓7'p d+jmhY]<z՗};UwW5lp9
I~1}w8zOe֧0'˲EOM4!zd?1hs}raQ=C&Ur1aQ6@Ԁ#^LBR3҆F8[S[S'W5\*H]V%GUٙd3ڽ=>hAn+L* Y"xGBZ.XSʸ&QL<gO>|[>?w#> {k)ѷ_Vt]jw<lT"?4	^\<|y+ؼΓEtb?zsunWVk k e״Јa1	ӽ]ɋw~To5Sxp+8YcYFJ3~EdM0HS	y h&z\uF'Cd ۾ʖ{O{&h6ȥ;ѕ!2&K4Xp]Ԋf"$"VUMq:FݵVf=M~9}Q94$ƙ0.kR70=ģc|<sQ/ll],?i¸o?isy4X]!<&RM(Q$CXv빴t5V_Rq\tS[oMHب(N$:~`2}޹H$Cq:͵ʵ1ik⏱Npn&RM:^*ݬtywT_HHy;sUCRs(D}S?KwMF/cN{{<TXϳ@^fbWlRHM+*Ja2^NT1UuMu{, XZCob;6A:|C *	,tw@PGNaO;t7tWa6M+ 2G + e.'܀lUekʙ׻9C2΁3IyB*e'?HLq^~9#gvUyx˛l<H6N)ɰTFׄ%c-έDŵkӚ=b|݀!/]6`ݿ֢Åv &-=
32Z)#6aϱ>ͫ`5dy#\7g`>)@s%0ddb%"Ktw%xU5kk
LY2s셬H~OFE0	<[` !beeؕEʡx|ϟz(
81͈VDA*εђ"=;yAݓ@S)I@ Y?`:J;8U2Zi8Zu׈#L&EX??e4
LO^~c8{p$b'q.'rFYgdWz͡R$:k>J1ۃw.]q;
q}o__?z	j*MgdνzN{JI6m6GP!ZMBZf]λ[ w&D{7k׍&Mh&=$:h[g%OE^p-hf][U_Otz~?ޚ<n^?nWos}㗷Z3F׀.k:718#́[ev
GQRj?8x~dZUa/̮>#{_-VZYc*렅\rN>3DGpL-ow5%8+vA2'3ù ԙaSX4,AzƱ[pN]N+Ya|S<v)sse![MW/oq_R۽]U=$"Y:;`eH,u/-4K[5yRzpΌhEk~ T6HlfpZ_.<$x1yb#<,m} 0,xG,H udO!3G}2LΑ<`hh=:)"V:Xޛӡ8ۖ|Ʒ=R=5řTYaHWj\o}KD\Ze%QSl|4 ;4{6OT$
 \jUO`RWp~R-UAvN! XWWA`TF(IʜV[jZ	魓p38pçs·Kkc% r-@}Fc0b@lLVN)',#|̏<q(r16T*k]/TH1@:ɳE
(_%z({·&o4ƙ	nig֊"N. 9*#?mLRJ1j)K_"#խwɳ7^xaS^?*~E$WdT6;2`?t"SEP8]3Y*{)854ޚC{I+0˯p3}ύf2"1f#-qKÚ}t;Mbn4KPeYFoq0*\i ('UߞY). 
,xH>I̤NOܬA=GpWge-#Fw">Bimp{cEJ?ڛO"n{Hwp9|IAE4Owg_6@oUqh읝65ȐE)R(ԹAShrfC4Үg9XQ 8
b<ù΃jkBz	"fΚT4	`spb 0	\c/y[++~ ׽kU&.UN{ub4J'[ÉA!5H{{KB]^ֿ
@x΢Łs8i%r:~}C)vpb:>ߢ*Vh2/UC('Lh2$2|NӳiK
Uo|p&7~Vtwtoj m-󅵢Pbb`6V$[YPn읉G<Ti:7E }MBXqQ:w&Ͽ#ִz"wW89cջMt1E'ZPpƵWoS0;[׶jAMg-.Wfo.dPpftNeKxp8$#\#*!([Nn&8qlMky?ˁ5S)lBД{13k;0"Kn;;;ˎ(NTg%5S\:sdftO(8awpaORxjćXCnbOVQ3F_VՅ^^pucǀ؉TVӂZ=i(dX	 755!-g)δu1&n1myi4{wv~mLnx{9~,IH@jLpuGY/(,(AvhAX0^p-N ϐ~0P	Ԝk8 -.:z"73>PN`~t 2jr9ƪ{|nǦG fɘC1-YWDɈU
6f/bpb%8$zr%r_?y{(ꄑV2j%
3dXbʨLStT'`WBᜉCnm椋afB?8?5pK'~g7ɝ"`LSb@*সe6UW'0,1wG;^:;&c3ymb_>y#?~~L!֪m*t8ih,#p&6H:NI*iynϞ6*,H.ȓȧ%u]6 bIN܈PF<eŁ*+WܙiĶRtpZbe"Nm9B
JhEJs,5Y>O{"scq]Fc qWGyQO:=gc2U.x!%8fiZA.]h7$^Sum8
I@( b3M^ιCU%x%7<TXu&>
	ޥK"Pnn(S&4x"xX:d5J({嗻Qֽm˙ ӕ'ym*Re(|D@2^cV0o%١rUsx1Qo9HdVxa/~	Bo9qJmE4s,M6ߵDyO}x	wx/V٬(X:oGwM>m=|*h<Sdc}6{CKA=Hi&_l|2* ?`S"f X=7QW)	x=3Ƣy֛pM_ 04As{xps.r08yFz !"aG6ZBFK_ RuyғKɵ}nX9݊CBDPLG04qW?%z,M'֩므ƦRh_xrS\#!-O"өoیZ/1Zh鲸մ0u!oX[8|ߛa<H"t 	h QX@ָ*,*~aa)5JFׄekOKd~kt[0/'7]Fr
(6)(NlV8zwfd,4|ʋ,\ugH*$1+vo* Ej	ϰl&*%^>4:UDBahX:daKM
Gj48HZ@˝Ӽ
DGۘrӥ4F
m3 ]8 Y'4E(QT'lu0iRgüs6'LH^,P WVX8ٷXXS}ᇫGzAnQv)(rvXƐGdtGQyƿ0̈GK4gmnvvMߐys|{/tX,C!c	&.OYSL_.WDqv_7$X18|edň6>Mf ڃ5hd62D$c$$}OI-lqH65yMk䆦moݛCwR,yyŒ$GxK ]u_E$ݍ5ga|ifԬTC#n"s	a=633+N/]3VrĊ9CeA	K %	6e-#د2ltTvv)^].$MY8j2`@"`x9{wtWeE<L}v Ĥ "V 2*eYXh|iTC+HOV^3K[gHi_ET:-llvO-1?jBty1<J[؞Cve7Oq(jc`杯M_};RU7^0,lpBex1JC1J4ՠ{"=3탘:nh8T +CmY437Y-@^Y6fp7fT*5V`rLI
gKDɉ
He(hm%3ʍ-k};PԜ*oV>u(#4Op|4Gl"2 	ā^Y=£LClPYLVKϒ4>oBZ΀(F]jsa0
y#TPcml;c[WBzISZܯGM$fVeRoUB'+*ݺ^jtxm)~.nn_D)Z:Ldp/!nʃ1z
oaS#][z/ʥ;Vވ()DT &ݰ4+N2*p;Rm޸y ;ϏqJu9yGy?"3_=ۇ߸GX2?	9dlsd{rc<#x?<5H)d.etփ~w?Μ(ǔ29gl\1`c¬lBDJi(qe6HQU	lㅆ1늂>2	ac@GzS5&vR}%-VMdv0ً^"Z'|'#7,rf>!Dc1-5%	V3yF.!h&&.28:B CC$p~5ֱʓ:CZN]5jZRarSw5y׷޹	;<yXܫ8z'Z&Ͻvw\r:>><}/~γ/
ǝƒAI  k`t㈎koqB [W1VTغ.ꤱkJw<f6=T*si֙RX.3LĺkQ4}pJ*$ ZS*Įu-y(D*s{69BQ\T2_N@m 'iAo.ZP,;A ,	O;}@
;e8<kFuPLsCy9
'2o&(1	ݥhf8`~T$|QMf4Bٚ0k~]d >$GJN2GnpVøcb|ud}߬^H3cSQ<hg}B:09ܝ\k
YLƔ^ը@jl,0_0Âw譄o4Rq,JvQgtWj7iMX'{L2wY,4AQ>"y;椊
4evA<QF&/{Ҁnn|Ww /̬gxǆ$	X}#a0@H֯X*YJC3Hh킚T;~mJ$,.jФK/2t IDFIԉLqAt,mnK7-<?~νRqH 9l5
 CRp2ǒKCTeU r)mW\b/0^	JNx(v c6x?^1I#\t7!H09 }ВQF %s;Cr܂H6b֬v	~>[|C[|so=<ɋ_i**|fWv3n|-Zs+;fgu>q̘pxo% g2;fS	VdU.즤n{; .$p	'a<$,Sc+MZs^ $nFF[um@ -8oBG	[BVEF[y,0
% 6s`	 p~z6ihU9	|ڽ,ON IV2F)YLW#nX6ѵCaYp;`%OlO~ɍ[o֭?ʂh'5׹ڷ|BQ6)DiA6I)>p
ATxa	 :pݛ+_ՎFMo䃯5p}3KL-v9T pSvdk_̉2&Ckhu.dH?PxMsF =Y<+Y9Ǒ Nȩr)	?@4wWMg]3ݩ428qYlfrmmzW,,(vo62
D '11Lenhxq;%i;&,0#W%%)ry{N~ʽ%P`ee>A^3&d B9I8'H.[H.\4RW~z_xg0Qgw}o<?<L]Wk
P5ג
@E@8mՁcruG3>_~Z|̻3ݍ8,h7
FTIUw'@ʦ}2A\WRJB>S=uQK st!䭿oxX<wK¯h3rsH`g0hcE:΂¹UR(FE5	'3s=zbueԏGמGz/9RgD>v]
nbY=(Dmb8j #$J'tEX!Xr8yif3\ąBrmvifQnD	,^/<st&F4H-	&	HI2ٷFa9jatI%u\ʒ+>0zGŲp4(iW1~;a3_9ZuP`Eb2 />sϜ;?[عږ늊 qD3C E-N8`4QPKͬ܄d|gR%@L[>]V+xqr;yɋ_9ނֻx3hw1g*-	L9Tݓ`L$8h5#ѷGWG[	1Znz	'/ol[Sg8$Rؘ@7#vq`qoL	mTCY9 /t3F77>&ߵq_T.(mc1D-Q),ep"G:9bE2jp\=iaMaz",BCRHLɎTٲ&e,s,f&Z-Ƴ888oC}K# xe6'dvR\"A.TSC~V|4wmɳ.#4d&)qxp?%[l,ςۆnSREpA BgJ+1y4ƼC"]p"1 3 ONe073S>9j\ɘ,? <z 䋺}`4'ӥMUPj8i5T\%O2C m621)d/c`{8*l	>"=igb_2nNn<{f\N'-lTFj*a(8Lg.0ֽxR$d.cPg7JQ\:9vBTipMS$vC$X&H#SZ?ED!kUY,Rk5&Qlux`|aL{;cdj乷oLޭw5vMlCI@)_q1`1ZXc%UJu0zR*US޻Bq~M7sYpY,Nݻ|b_'DmdA)(44:v k8Я:VknW~[筿|Ϋ,XKd(XkPM˰NE@FШ)G)yF-'N<X%1WS$1XLfjWDy^YTt;Y)Kmtp /]{Q}k/-k:D`$2X> :`$(E0
`p Щ[ gYTwc8Q4*iqpΗgѺ@7$p](_kBokҶb&,w'Q	4Gl,	mV08	'rE cQNIsB/#;"+Qv{R`ڀOf.1J5&[:"P+`*'fҐboݗFfX+1̛'b4SypsyXI.?PO\c7luX[]W+Enp>=לX#q~&b7ZZ "MfʶjG$|.\=	pvܫ^_iw/$RPjpVd`M$fpxAoY݇6_/ꖟd#êRvz'!h6T8cjU]U $д&EB2pM]GWڻq<;_2b ],x	pIBxJJND8Eh滎arw;%#e$E^PpM[HXNE-YXp<9?0ڎTw#;Mg$ݙu`%
̓#0ۉ4äx }tyڽdQrz4'h=diKJ
 &v~Pju_jYW&'ʨ$ny{t%Aħ $h@"5>\wddIH6X7%m%Ww7<M_{p:աM,}9ZJ3lz;p	^ߗU&[9*芵jԺEFK/:^232y˷o3]X;?z/<3=pu4>C0Y}BݘֱA_!>aav`hn7\iC YM{yO]0"@OH0k543P(dm$*	pPF|Y3ՙ	'ʟAy34P>У_]wa-8SɱQ'zڇ;[,Y&jsuJj*h#6Du],Tj[tw%a\xx6=-l~4Z'O)Hl$"'3 1hUk 49GӮB ljZiJY'X.W{lxƢj1h,#N0fҰ@hX`J᲍%/a\yCח&F`1nsL'iGB<=\K FztFrcqq$?
4o)ej6YVOS)SȾlao5T*T!Yu?@Kxl@7)o!PWҒ,Mi:L2K$"R)a:(9[GReO($+otlB-%J=YGyn77u7GoL~('$>FO]fX I@2%}$ Xa[t.eJJYdBh8<ep5=I}SCYupSA3Z&$4HP+T{(^dq;$  *o\r:SڊEښA;=匃LG|O&ڦ _wрc/LM'kV"*&Ȋz#%	Cߞ"pŅZ.4uluN-ŏ4{p.Ug.	U9 RKc'Sԝ JBű܄ri栿AgURש?>898nDx3KlN3	C 
a8q_ ?̲XGIӡtvU[M:L0M:\{_
&<ͨaCyUY(cLVSI.p=N,B:oR2i#ɋ/^L7.Xf-PQ%E(4Չ'Tx@ZX
<,D YgToE:^tmLwp~]L\t5ų߃KF3H~:
gDF@Mf pVh)\̦^W>D>0/1O4>ۓ;?Ka:PVh-Lp`Tf #"<Xͺ3qixW3_*$⮻lK\ZdO~r}tS$ d]tFp^cl^oJYS<e4NzLg3#:$KoA7Cj2ԋAgﾚڻ2tZ# rX'P(W5+ݶ)7h,e!°v65!HL-Sq*He$%Sop(ױDO1Jeo3B#!pT* a bz!k;sn-gP
ǜg,u1p4)F5N{R%LlSyeg^oeA}oɳ7^	 ?|j|z	0@٢eT9KBReaNГݰtsܨi^C\ó:.:;	d [BMD_ yzh5f)TkϳϨBjkS+=@2
F\Ø'Nt;Q	 H<@)%Dٍ>ƬD]{=?Sc;HY'@>ɭmw-n=i\7?2;xOc-V'!>eX	ְd7|<}ؘnURi'L.DI6U6
vZǰה,FtP-\՞nNAA|7֒ ToE	+Z7}9T'$6X?33.{0;zPKJ!`
PKnL{k9ST& ΋^XK,S׹AKdwR/2?}vQ,+l1A*.#ҙhB*uo%iU~7EgjqVZewo\g(#3*^2`8߁[m׺_E"_ybȈjQȬ眳޿=vH\e*1pcpT
i6lvAڰB
`Iki]"zRdY{&L vKs:A,]wT"@8d2Fp!iU8kZҠcfEh	pvCw):ɉܱ2]nu~6'N-`Pi2),Qlb0sZ`Vcc9O'8pǘ#l I8sqʔ*f0-\jd&$R9n}[%W}T&G?ａ|"EQ ]F"^mi)8S̃8 JfuHaNu#޵__@z/I"Smג:PIi&Rv!~V5:`9y0^)NnЂp)&%@Tߪp-#8xoђqi9lz\Ӹ=u5'⒱`LG`m߾ΎztC0\RAp1cmBA`(+PfNf?wQ-"n5I}V8OD%	lX7|"&otN4nZ
X$/(YΤ'6x/D3CkJ뎆of2 5PW4PԚ<D	P f-I`^ҳK?GP;de'#Ù9eC:Z72yJLαDɐqI2+ocrTHwD/e_L)y Ycs?VgHc'0&O(I%ŚAJY],YsZ 	 0Ed%&Y [-twyͿeyW{p
bĆ[磳%ʕp:KO9Pa2dLMVԦu)IrXRrB$;@}s։vEiP<Ri®;|`3ƉVPpMVɅ\^,UIL_1
TV8y0~oŭ!><9y9t0ԭ 9D9`C 7Ay	}X$T[zxyXJ!2`^єe^{[anÝnnU%+fZ[b 45̉FHA"^)keQgJp[%`qʪRۼoPwgYr.SbJ c"UI0͈_y1*Ia ?暿7n+O,4t&׭3&E*HfYRwPed䚯U_8
KpVz8<_֕ɻAt :$3Y*nZlf8U+Yx&r|*UMOO+O!nόrA50YfLcFV=_wP`BRD[5	pLYD{sRTOKxjacbvV2dҬ5˨z,YF,uq._Sw6bKSsjCe>*aW$H1J<${*KZMM@`Zw?u7F7pt+o;[?\epNмޥstp%g	+%-:'	qDĺ*E$jPp9+KXN`qwtoyF>-582ͳ[H3p 
-e*B^q]M}k~;O=܇<}ɛ~׎q|M?xW|W˵-gSےP`l!!,@'+ ?A3{tf
'&oi1(>˜r^Wvg¹ŮI1f)fȪYF@-C9#sg_DPj9 `|JL@'ꔔ7)֛C&Yde%h 78LÕ&%\W䵮bxcNݫǬ}'7e?;=0rUI|i"rPFsI#&P(4g0h@ s⨴wf^%j\r0K]+Q?~h/Z>I,|G }45ȁ{ PnRg/V
e=J<Lw^8zR,8kI8e;ѮEx\J!8v~y
'߇2f6]>ʸ҈QiDwo
>OM87V}kfȮ~q%)b9?y}:#5>`N1q+KįzW`ݔtKΉPMRXAuk	57W0_O~pomtA
 eJzpc$jʵ2c咢7%)MZqElAfxjl0*,JA)G8+L%2M:X͇%D.+R?}G &5?q<7}f@8
j#eÐ2$D"w@5u$7`#סnL'/bO]<ĊwԀ^pANPTh?W0Q*I8Wѿ83-hBR`OjV4H.  &KOvРݏ'8*Ѝ^{.OuXWO|mͫ0_o<Οn(5& `5hesh6pƧ3W*,=gSW|ުd=i4#y>Gp!LRⰃu*W]⌳"\&98>wE7o|kN(fwϞ&k@z	SBPYcbڌ /ָ{%ʝZC	z2X1\	9gQ=18jT̈́¢~יI?Q^gMY'#?dV.sh\];=:^g !4z<D4]+IЃKڃu]H2н[<jgVJ/sg8LX8G}:mo	aw{t,&++wtu㐼i)TۭC7uiq@Ng=>:|O{ӟsw>>h&\Ϗk~SޜiUr2c}̶B˩!hr	pݲ%t3벾X^!	ϫ77>#{;[9`
&Sb>xF
VznHt}FDt^5Yo#Oλ\|SV %;M!kSBm9( !*(p%D%NeS
3s߾|Vfp6`sG4H`耳vWod3b˗0\I&I+?Br_l,N 6Yl*
ۡITӷlj`n[O({l{,k"bxNɇW]\q\Gq_|e{p"ap9ȧ;h$pͫ5mO$>6JWNV-7.ݴwp_`]3԰8H	?]2ՉIs%N!hs	'Ƶj{qT(Ҏ8K 0%7*LD'\@M/# &UgWD]jkh(=5`-ʙ6
iOG$PYHOF °|M<uIhGj )Fj!ÃLwkAoL Jd4zAfƮ=귮=jI1\}T\>x'ړRl'XB 
.eTCJgM8bC8Eͺ-s_<[+d3ůa	 "q(qu6k&cs,oG=VM;ac.FO~coqTmWF%6VL[	6D7X*	7+aS4U;iMhjAzt]l)qp#fKpٱfGlKԜcn`ɵnș~:n`Z`uXciGtY*0cT`u, UUmd-ĂFin=_:zrha#D $=3HC'TJDnfS_:;/KpLu3Dq]p !+LXP-[$BXp"Ŭ;+]boGgz@)QFq.KbK$Aq-M	Ud(8Xm9`4PUI c^J"ug8WW|G/>uߔۆÐI̉H 'EٟE%mo296\mggX_'Ξ?IH¸Xx1́(NLN` >L`&\gb
z7r6BO[|Xx MY3g|LJdApSٺcY ǲi	 *{aD$jN?նV'p	N~!&NɊY8k#Axws(@v7"c7[wK\f耛 QԠ0Ӝq=erTddWL(|R_[3FR`gűsуՀ@p1;,5,'љzzT7>8Ϙ҂Wr%D<NQ$ܨGR4%37$Fsa=U=mwuI;f dJQ@5kboAz.f;z;NArp݉0* {PXls^*י|_IJ,Uj.ZJ+ҸknAW4"3G8Oôr0=xkWOdqP FsԗJ@~Sd	k4PYՃn63WKmuҍ96:ޮ3`X>ؔ'*{<<Ȣnw%zX8M/8UOܶZi(X6s,$")kb/q>/kZ|CȅpU*`JeV)jvNlR<%VJXpk½F<ջQnC8M=@WpҖqS0*'q BIl/RNMUJjs@9Ƀ'0S P#HXląj`$E~Ox&J_3:X". v&WyM2{-399IE`c2䵽^YU	|͝q:ძJ}Q.)#CucvVݗyZbKe7jyg't7bHfc?
Ն9E3a?2):@LO{G|6zdEâW+TR]o6bis3up4dM<+#	z礠&,PRi%im2Nۤ-e^ONȭ*$i=EV,"S=40f"ώ~ѷ;}bt=HFG{y*m"Ձ,~b2{HM>%}dD&++{Q$%ˣig]E89hX?Rm^۪~z/-Q  M>O4}\iq6Ŕo_1=6
鮋ǣhLndnF,'#xO26|ׯr]:yԩ`)2p+Y8g
q:zro%fa6]Vعv`nicΨ{Q9 ,TI
TfÛA9|B +DNZ~An]юϼ$:?2b]$7A>* gߦo\L~{_]koziXMOk3E6)BknTo#?YYh_^J
Њ0h	8OV.dp(ٴn4_X'0pR;DQ0IHTL`S#:ɅL`p)*8y.ZS"^ׄWgk7{`/\VoG2LL'<x P츌|ZL9^Nʉv5EQbA=GQy?3ʠ%HJJHB$	R߆cBg:.u_4KL&̤LFHA\.IH;:*(+Oy2dr`u2OށoI嚃2%ۖ.)iQ(X*'21[tlDJ^B%]`eI%ADPTxX	KBRr{T1Pu<$	]F-9O_jjב<F$%i	 3i/d1lW^eIT?ʌAxvc] y*U9lej)ޣTrz$$e&fYSuÚO9Omo[k`+fc@ hj0NPAi3!3 P`@CXI% yBFCG{럊U=޻}	_N#|nVݷz~,j.P88GO[Γ1?w)*V)X+a7$fǿ\h[ퟧG;TF@`r,kɨU%^J)@BUe_(68gWyؼ[
Qq&;%Kag"Up'Df A)At+`J.FDMG_ 9fƗ$Vx 8$^f)'sw>~?{*A'	NCI
`yḭ8hЕL9&U%~bbOGp0SÎ[_{'>|iѩPG&P,8ˤ+߻<)NతA(U_r9fF5=(<|e-9p_l5pnV6`yQzꟗLX C׊fI#gHg+41s}:3$Sp97jt%,>#cRPW,I;ki^B::2kXE[[W:@<:aFtq~igb 2KF%xD@eIxDC~f"@˚Rk5e&3k,!{DBkC7$ph.H
NjF+lcֿC5$d!;B"z锡LhK5ȕB̖u$] d ^0C}LxϒLU`W%okOMRRT<|omzzJp-xG9"+9Ǿcx٨,cl]O#%}bHwC840n"p%ah*7I+3ՃY'.GW;k3\遼XG$jk|xe*g
Lk8uP-$˨7RR`tU
;iHD0xND'O@)vVr(8:4FN*iF 0j\.fJ3<Ūa5ZV?O?>/Us0 2!56m:,DԮZM. Rp28Y!y|vdF:\?_?7ƭzֻjrקŧ~g@_lJ퀤 $Dn:[Fiȇsa3C_F-iWtN9lHM'a!Ƿ⾦ir.._;`>YiU"mYŊȅfY5JQض⑖_")"7^iq(O.hX؜H"{geN2sU6tgK%g\9M8Ɛ 9P&Q	!٘qcM3MR*g	$Et̉ٝS2gOOS7[#uFl~{r ` R.J
M9  ?AY pj7!^G-5@]5#䐐eamb8oϞ/xR#ƻnmAkJi)མaؠP 	Ù^ycf0cgFDI
a-zygIBRd	1[ᢰtעv(!}#FLt%7&h4Hׅ!Ruk3
[,M`4s;w-/-{^G͉x0	:kM'nd<IcEp7KyeM=2ӗ?0oAC--Bm4L<
QM`f\n=Z&.8#i)9qf~raif[A=9\L'F{a0ⓏI*-,V4vƬ|@^qU`U1w]9o$W,0i|jª:gߏ(EJk,ӛP4ϋ˪)̼קO[RMVOgu 7~_7WђQ7;}O=ߙ>C|͂(Cv.Ś0srjN%S.V&xM5%PC6p$-/tˋ]HK,c Rǝ%i%\?&7uo ѱa"+#ܹ:3ߵ9H%$:ZCDAol,Ǭi%CJu
sGI~D⏖nFWp
bc568$Ҡ"B'
¬w'?qv<e5fV0@霹Zq"i{0(ʊ<t
|
SqQmQVF0B	K9`te}u}Lqqؚ 0ރo6]?Gq^\+!TrMpe@aِv]ݞl6	k}7Ģs*Cuzuwjn@eiDf(61022Ӕ갂sHd0CW~`EV3,T
)n:D"0p| NM<].`s|.O8e%@/& E+2=Aϗ,ĝq	Q 1$dLA<YD0kkE e%rO'w xw_o?who0}kK`TpI1B=E("#g9$ء.׽^o%V\=ЄJ{&u-{^)WyeiHt+6+P	83[w?ye79Kqmd)g^~A~a1k[` 	K^L(P=D'}d]rsXN|X׳'HuOWrI_OiSB9@"Zq鄲֋֧K}r^ߡFW%!_kOkn<{@&l0'I.xO^vF@ȢRz4*5K820gԀϓ4wLU^0d*%AQ;:y!AY^ѷS59X1a-^K4}ILXCG
KX>5ԗrn*!3l'1Wi!Uj􏲽<[B"!O(GO GztdkA@Ri}:if~f-WIyx/SX@6Ka3r\'ãNRп*Oe8iw7Lx>J9^+)cq畍!tSf AS>ҩ6n-X|$2l~f}5хfC38jmPTVg66Q	A]]g,5	L%'ZTDE lTi *
)ƚIӫDϿ?}nbNc2KG?|:X-M[O<Mp3 G6$B9	a%ƻw2EW]LeFyA |*UbֆMW!t
!NK
ٕeុ"AQsV3߸pG/qz٦nH:c̺  7ތMPRkoBcN!+28yz	86%NvQQn>vm$ѻk'x)TT>$JE%v
X_Bz$go74	^³Z:P8$,0h`?ۼn@z|]pǻ#AN:xvg\c B_BUZA;'(*- FܤDBBݷxrZߥX*[9UҦ$a$,1mDLJDU"[YO(%x43o_[~h]s(֎JBZ3pBn`([/7^>K͚=&	\wy31_up23OM|Ɋ=p_`q1ޞ}\nہ;b~(H~!u	F5YϵQ(]a[$b-uɓhl\gCFul8r&!s  ʱ\EI3KzГQVG{ߜ\>6n͙4`9W]tg#`$\f˵xAAN#1{	mJҠOPgo;}[Kt)N"s0ֈ0_]iWǻ*pen28vM8<? y^yjk8  !f%`VwgL4р=%:*^
)ߴz](I\O>;:cI6*b]eM1!ӷe]#$R&bw#}*%lI.JЛ	R)+&7}Oxcl%wxveK,& 8>]o? gJ\Tke~{Knya$R'F)6]^f! ;@5{wҨF_LW.!_-I"S'B"ؠlm45yO$hKXc
cγ?~O4ś/}|JJd%M\3ڤβ:JeaŁ\a i$xΖ(l;坑ze9?XJ(~'Zl58=B vԻM*lOpKP؏+.lޏqՓfGiq	'DkU%g*1uĖ,2w?yܴfDYcH$xzpєTwJ+WAIk;5&*4]@NlAcnV#,|̱ᆘI >Riք;@Y&̔z	\X'5h#݈k-FPfQfgP`M^2"@L}r<Tc^c2|LSȪ @c*&'jdPp/qGS!s~>i钚DyU?v[3&xc1Dp6t4cL8"}9٠3+jryn|=Wx<{ړG?KWQ1&It[Oi(;il`W :'kjtK}<6PeO|;L/ђLɨ)˸D[>g>[ IveQ (8k	Rbwְ8`%J̤ n:YF%T6%X=Rgj7:d TFiF9m̑`Xړ[ɠb (-Ю#^OY܋9:0h҈utHJ##e"&5ᅋQ3U`||IgCe\5ya$'cpf3x.L"\GKo$tEu1Gr[!GN#쥭Y3ƾIbJARndHU쁞ʲ8iwtya/e^N7[Ƕ[j1.
Wx#&G 9UD"3ʃ4DۍrodXC*{BS	J&D' !>mnz#Ϻ;XJGA% pB1/Mأ~b''U!zyO_w6}O~<o8[G6DPJp{tt.W[>yX>_]EZZ06pO#@2ɟ(.2<&f"/!`C[pWcfWJ	=$^KVܽ5+8qWI'h[MWG{X!m$j$N3:8Ш euW\E&t
ɫ#N|؁ܵ?_oM?¤{l4Ia4&)Elst?=ɮwphԓ:(
'ĤlAEpO״bZ/
Y*.[U+>Ooh'IFy
I޳X#`6Xf}fK_jG'VW.KGTYe;uy m1[Xfa-,t9|w,ti1ǈU/ˀ@1|2td"e.u
l{aeQu*	t/^8neђ_`Ŝ$[$Q'Ml&сPL&ިV3n5mw(uEi\Z9Z:;d͹gpv	BS@҇AW8fGL	)uz:߷>[powg^ƔfO m$)D$aVMu"%l%ߴ+ZTLl"W<ULe66a3w{ >k"ek=gt2X	0DƃV4?t6
b%AxN	*F+X&b~P8T(˳ڄд%eQuj} I|8jO~=?nr!ؒ<Y|¥`gC* DĀs#h)L^%jz>hV۠|]y>5.t)lׂRM" G4Gm1n?<hb8zgOz4</}Y#rG#U.738SNw+ggB)q5BPpfb$^L	l\V-n**234ߜ04^jb- @q(qAϣkj$vlcYPY{f@,NAa'0nU&664Rx;?
!СL05`H#bg<co0?>9></[/r]I?8=+}0Z\$N"*Bs/pb(9HUQ
0]o?{~}_[b6jÉ*鈶1@A0(RY>\gd`Wٿ8$ӊ}[.%ũ1.4huf*nWݴ,!8DVyWdΤVuj#pN:NFcIj!VN|7IXYoRT_A !rܻ|x 
*Mb5ޫ8W(C!ڹ#=cջ11XM%cR,x50K v0B^+z);yga԰-'- _.okr98ZF|H}^KщIU>J֚u<^f%˼Aryy0;iP\~I Op	{;k>	iǯb	n4褐b.Rn#PB~:Ï'PB)}@O/U(yOz9S/p"xt0L5ۋr^jy$yQA_hY s24\-;(Āmg#gh`;I壵
;_ũTс:1!s!LyJ=@։{dwWyrAh`YeC$j;γ$$A\dxTQ@O@K,r}#M6)8G'΍-}h!?M!jf͉iNv ky]HyijMɴLkmUE@˃(*pIm3\bB n'z?[~9}|Oݼ7UvLm;m]qph]ۂ:~lc^rk!3dr9!)
	үS7>fqhT5Vlxq/B
e)\ t;z04b|)À1K¥t7xqxRt1VVTJ`D8I;+ft
JBrMZg9sJ2&:Ls9mVR&K:׹VE9C9Wqn]/>Ϙ~/u}}dHp/<];B:p6$8gR` DǷ:ޥuԲ-pd)[1ס=U|Yn`f!p12RDHNn \L|xz\U%g9:)[ɚd!I߁gE	i`rzX=-EX$;u(.VV#B#Ο4b̹IBq,,{О8`(2
<"lC%RكI$^w䗨&Uvm5/Ǥ:n>rС]NRggȭ^v\Y,%Pv,|! /?Dcˬښӕ'e$]EE,ftVujeهɹ]PU$˟bvB}Z.e 8B<wEicсjρ~d4Vz~lvMe_1vB[~O?w/zW5/TM6k\_dZ#
:D
>'yNP[:oK$NN8',Dm2rR5g92;HëA7F?+ư	͒jXV bˮZaaGfehJg#VE#i@b^@QUPC̤'g" 8JoM܎yG։e[-줹e	FfaIxj!~v@jD"!q"iP~wqilWw^ic  a.T_93YڵUl&O\BuL&h(52ME&H,d4rlɮ4Öhl̘h/åtР/};)zc=B}k	 {0VsCfErΰurP]/GbqAX]5	h?>(Ln:r"L8Rdb8Tχ3e<'H`>)Zߏz t6lS ;;p4Yt|L"r[ADAץD-\ڻ~AO-Y+Γ2ÎTj@#XnLB_,Hշexlil#aߑ>e$ôz*Ҩ4{٩~џ&®R<LDt;Qȹ?kuh!CPX &8e`U}t%ZͰoQuwT!WQPg ӂǙMp@*C3j[977-x	,6ޛ)x \XuW0$^+-4in|&6& mT2'm.8_]%uoձجenӑ%E[{?ʹg ~#,.;g2=	+(5&) hmwҐTO(*g==:eTΤ|`1R2`rj!*3-\o9l녚jS*wF>ܮB^Ŗ+Sd1RPiA(^k.Y^R"n^]>v"
mdDD
-SƓ0Q0?S|w
"I0d&J>xd0Tfp27&k<)4eYljuFyp*f:9F/i0lrGYwH">ioǹwjQcWP/+j~ùp{wSS@aYz@5W;@jv5ktK {KB2T+54KܚjpY82zy|!٭} 4'MCW]8 |20mT:PiԄ
X֭bl k}mɼր\|x}rp~1h/yyb4eWxTTi2a%JL7-xSE^JHMoZz/}fB 3aZqj"AQN\ѦAc5-$e'4{V?f"(;sƍ GBVÊ/Z"r*OuK[@cܧ\Wg4b#?%
;(O p.3$`rݦ
%P/>3ph]Mmx>nLF>LSȃ]2
avƂX;L,^I*WX7^uSM/z߹_,8Yfm$F^	@(Cx?Nm@)cME(1IkSMWgx~N;<M|iXd[+Zx#Q
T&cĭvJԺՊd Ҫۿ|q04ߺG|uu|򕝝k[[/wLh)	B@
Y" 5C_νD	_S1Q	yd6?p7Gx|0q<\a=,G0,PgNKi\̕DNkh;QCVjߺoቭ!j]su9pfENZyG'X)ܷۣ?ka4# 07*MqeL1H`'ed/:q!:IN^8/eFHYƱ V-ĔAT-AywЉ^HςP}xe߾|`?ڵ0*I4S#I	 >QQ%u<%Җ|-/0}G+ߝ>~ObX[mn+bjf6J
B1.1h,4-A-<=>B3!(c̓0=ngb;W !bp4}n6.8Bќ CҚ86N`|Av8<z"/֞X7jav;7[j:J]A텖c+=EJF.M^ݒ	(Np:IVDAY3>~Ul>|[8A.s^ .v{q|8I{[iNi&pq mV**\v+Rdkծw#YS,J|}w3o\ޝq pȽ<}cሕ9V7X"FiZ26\3CӋ赲W>8Npeh'0~TħҠ]kUԬխ6}?}73^󃓻ev1:N3SY(hlL-`pXV'5"qǉ"lbdpiOKN{_1LQb*2B2 RxfC_ə0YqEn)J#eMXx԰q_˓)jQm҆JM`Az`9)6\ѐJ$G3̲bTs-53MdJp`VYVy뉐}MnI*PJdȻ&MgOm_3?xC>}/V{|o_-]p 	0UWˁvA	Q瓍I#U	<7TGQCɚz?_P_?;oMƫG_e7>|P~;jbA
?	SESv葋3%JVP88F0XD5L,vYHJ7*emc.f6P[-7vZw_تx&>ݬ!P/
E5
J58Uv3
GF	RfYzl=ZKS6dɤ	m38xX4EVp(1r_{uR20$dZ?l'm9[eTPcb-Ili`HeӜ}zVp.OR@eXrLe$Df ZHXX	h"LzpX q`	5ѥkhSRf݃)z&
%?Gf:m9u<;.a-8Ya-YY]1E	\4di`|{sn]lK3sd4O)BHB 3cLw V+mbEL)-&5E&/5Kn?mw.'hQd KPc4VUXeu f&t?P_K.=K-Q9v$dwS[d@P]W#FkK	ź]*jhn/]wyw]lp̋hn=W܅u}D2JDt2vlIdu,Omw(@م-QuR8neJE>S7Oᘲ큫_/PI$,p̣,GvV+|}s=zqF&o~IarnEqp5fMpo}wnjfw	q:	
$!Q0pd@~yV}7pr8cH=]9/yaU>> aHr0&X}BUxN+CSbS}dHB%m7n_>%cǌɪ5 s2d4rT_1lo3xslmsS:+\\C2:y&<8Aid7ғT699+Oz/&[Zjۈ:?
P)R
 6]^VkPI>.`)
KWZ/8Yvl!d%v۫؂O오|AnPgsc6\=NԞǵRյ!.p?W]MaA3*`9{.]x#ˌ=kq6Do'k\A`.,j8ecs):3샡H5GyM54WKKlfq
Q?]~>I)TLq,i2:J1Iٙ6N2IAeV]I	[m+\lY%5u7%HN 96vo|o9ԜhA 7J'2(ժ(Wuewqt;WKsƚ.S
Am"uIҐm xԅ{.LT<hk`+;Ue9H*}, nƒ`WPfU}p}s"ODdF c/UDVE~k	{AG|hFʉf֜InH]1/f)leTIH3RmDOSeh*M6O̪/_\K#j)y=&&K\O+̌Cf9ZԤFޱ j%J<˧YtB|j8] V^Ψr u=e߼H|ut6eL0tQ.,Q`C]&b4NI!Ղn9ҹXK
?`t'3wkdq?cdHb-U"(Q̋]v¯3PI.{pʶ(\zb=NJ=o4IJLϭI/)Xcx% Q[KkJ%YiXƐMDSD:`|!)#xV'qvgtڋlg?>G̎~O|}"{Zg,oh:y	7s:8{G5ܑeTڳXpȽ(ԡXlnQ85`6%ŸCѨPeNB#%SFQxgJ((0S5X[G!r!؅Ppa?VidōooKkj8N͏iKbCNO}xv4P#Dו\{ggq#k&Iف(ml2ߜywr˷tA M1(mMT+U9TŘa7yIݻ9%֡&(2lLzEip  
MN
ruAf'sX߃.7.F}6J-I#*u/D&h)s΋kpaH\{#uXcVzIdUYfV,oY7<.BaJco:;;GG%{yknHnOݘ߸t=5!DLp<%S6YqpEn&{IL0~@3;(!P[PaQ  v Nqne%R=yhN櫭kjW_}η_;~W#$FGX!L-%8׺Z [[J/}l!=zp5kKKW6.XpYcBHSV,J`7vnP$-UP`1T$ ˅+TSZ/k$\$Osk`(w>Q|t+S~ޡkĥpЋnq˵|߿<(ƹ(X&^eho#Uz-$V$Bp1(G|u_8	L$T 0l
 rUHΦoNrHh`upI[eLTH!D=9QJ7?}iG9ު>+R[
eAbRYWMYfAi,Qdp[헵1ReP?VnqLC}S	e 5eiYEZdY>0pxv#أby{=9e0SK:f8l?k_Ѵܚn<P~@]XPJѣDևK5(Dy	%`
2K ZV[*(ȭMG6]RBЎ.t?~zt4_{ijN:ګ4u?_/OTWޓJu+ 8k*nbda &,H-QXO i-Y&I3/n=x	XoGX2Xh 2%[GnJE3J,4M6t7э͒硙VwNikXxq/px,`y
UX+ɓԱl-)Zr%"MX@X|+mW^Qk8asBXLE**[^l!.W
m'cC6
o?xFW&M{(,Tؿ(rMITrY@BbT#2/4#tTM)Q-pR˹B F.dһO\R Wl&Jr#~ۜS
G%iM]\,]O`[-yAknw+$8tN%	gt&e&jDR'ܵfW~LH*U1+DEVT:pϦf,>t 16ùWyڿuـ;_}~8*Kd*+Y]VBnv4~4A{ÓvF޾uT-@П4֪hzQQ)x|TX?F{VeR$Z=G
%&pncJ-+-23VU\klVpmZÕwm~{x'TwjQrAԵnC~zqzq+W@e>5dxUv˜Ő% lR`*#r$yS,>UtyGnNm}h'l-.49pqYdPrUO}hbM/ݒ`QtX&943`Fه;eqO.^Z+߂Ψ*/resYzX)Z3.dبwrA6g55[,X9ěU*ڨ<;	:ImFTUJʻ5ш)Tz!kEʧd%(jRJ4eQ袨_΂,J PFa'S^Y$鳁^L[㵒n7&ԈR	hVDɺ>'ǩ`hJJ4<a>Q
=Ze%"Z9`*f6ϯWi~p[0ō޻>3unpB9n:$EܓXذ27ŌZK2C:&GgMm9~;oΏҒU>/~v^g!,D$KYn~i6\r	ɬ`-D6/1G|8#e1"8?wR;"/evfdL]0<ubD^5'"+)QsQh/DCM`t\\o{FTSUpT\tЪNȊ)ù^-%,֩0F]5DV3tBWZʄ?<ϿAϿdXg;2'.ѯL[N	']y+`h@oͭZ+ p7CuM}@+%w^Y!:2MhpfUvD[~S|	bXn[KF{c#MR(kMyb&2.=,isiBSivZ]ҿ;:$a7<jD4熊#q`yV3p5Bsj\rn\	h>Oßn@?<?\'^c\b gIiJ I:gFT	^ۈ2nObu/0f
RեʴkF;'SY>{g* =Herh۞pM&&^rڽV[5!K.ΫR#YnDKt53J֛4k )(pKO[.FAޒ{7*eL{T:x[\ c(&SŇ\M s'+4AJnѭ[{- Fr$0BIz{1Z2 ĵFG*3s\3J-7c:c=ZphM®Sj,ԳALLZ
c2Ty^X%ZvoNAmOd/>tp{7w5ky#ɇ0?VWS4((1aBLgs0jfpơ)a|waTjȾy!+^L(jtMZqw)v1i>)+k02ԙK.dHuWt^fz.X*`X*QI*@GHgJMt`O]hͺd_y;\[V㟿M)N)'#e4
`UK#PH ADRS)` 3mǯ\wɋ/_|oi
MpM+O{!TDšYIU<MOKJ5SI?n][!c)3ORebvЍR,R%+.`\(
GXe6A8fE@t9_B>ԣDv^߹?۟._ˍq0ڸ*9sNAI i|+jJO8]MQ0BRw\lL!<>3'w|zMǂJ4y0\ŋ[W$lJQ W%^qГvS$%tι\?= =@{{-7Ȝ܊8ԻjM.4"W҈KHBG\<k(G6UyWy!R$PH%RQ!PnrE}EiM9];uYZy!V}UXk4ASٮ!4!|qG+TFOĥbDulɡ$'JL UJu94Y\&wO>ϗo"eb%0x VI^$Bb-k.m
T	xԵvY:upkowφIFhxp\$vؐ+DlpA/޹wZXI_ePqAGcB?2\7O7|ү~w_ɷ^_(^>v ipd
:"Ċ[v!'ilS̟*m9;#χS͟?I)*}H-_+(ɸhi,V4,d{EFdMq0D40`+1 3U v5z2CxfERGD
'FEG@2Rq:xP7gv!wNM
˼Os25u.ckãP	{kx|LJTj
uJX0xuT3s&SH·q[.2o6	Өͩr0V
7osOET)q\BCh^c2*RrT`42M-Caa!k5rkD+t!6	g:%Y n"Aq9Fee!2{۾_{ a@?$kщG)5b\TW"dS#{^ېhjNEEOڌկAgoWw	~lRΥiX/şg~5ɇ\epaK0Zj/w&,8k;%eLTb/JuL \"E:<_-[_ #\U0eOEb`VyñrϢ侅x֧iH˽oa*\E^5WG3HKLyȦaX3^aܜ(spZī$hw=w>ISv
6;+N͏~!nG/o&`XYU.5:.Ҧ+BsA_c!qUpL*PY9T-}
aa٣ox7fPDP+݅J呐K<XxNΝrԦ)Ik(LjVm~C0qa.DTO-j3E63 ޜLuBۚxt3yh:i.C;ދSR@^G-*(Nc5eozRϹ*)Lfrƅg'lY VH7Րzs.bOn|? ;IxMj΃ak=pg{nNu炃%"Xe2GO'?{vAۼk%=K齉c⫖=FbE`MmYtQs4NJF5-hM7ԑ`bCP0G>ue_|_2Φ!N3JHU]	lĻF<90VlSϨo|MB>w/3oZ.&r ,TSkSQZR\o/jzp=St{%o[˔r+8V($	d5N.>)"vTs-T^OQI($u)\1pL 1vlwF.0y<:\ 2 KZtFDkLFb"qG71^;/LoQTd"xr E*cE# v3i$x7Jaqﶭo:/֣4LB\ݓWB48@ҹbb*8E|Ⴝaф2N3(%ˁa(7:Le8"y>sSB*2/^N4XX3Aʮ5bE>)-@R1[9y䒅H̪>R!PE@I آa7T<N}'4BTO\ɳ}'?;/EW荿~?F `QVUY!Ed
k\mfK`(/,X&VTu>y2SZR1E`TU/C,P=dC;-HMfa-E{f+&FϾ܅hjݿH>ѕ=zw{϶W H9AT >.UK6djBW{,4Ǣ8eە+@}5Hp	g9+Et016n4ox,f^6?&ߞ'Z+j^ڏG>9GmX! 3#wp8eӟ&xԽ^<mc\段;g
YFf喧e;I
-8*|6\NȾ|&OS 7s<D V yS)p/Yb`&\wBoqضNΞ8npFweYHm1&D^bl25ACgυL
vT;@w^f%q>K&=TkPV$U.45K萈  Yir:B%Ģ\bK5W4N"Gv#^OyuNp\Q}u d-e,zi,崏lV{OT47S8O0$DoyְXBXDYHhQCr%+%
T%1OSz:} F:b)M#	_yu,'/H9-eҦ6(
<(#k`7Jb-&Qm5IOn#a=m <+9]{sR%BO12'0hr`n^ oStE>x)J>Gj2T,LQ`x0%ATZϡ7a8hA-APȕ!KLQ˩RMܔR,1,]-fYż2DT"Wb@ۼnMBˡY9+a+dV-zX)UMP`('׈w{'[?vc٣ĶO@Q nE,0^4ɕ%KM}dH֕/0љFmg= BGwgyuJlg*+crEZAM*1+n)2VGƒ6EVjM e-Jpˤ7C\3#|Jk򅫴D*(JMI^V,K'z=Y=+Њ\G Kz0.\1,551<5F3,%$n;xX,5=TO~|/_L t*A}^"!Ī
ѳhQm%2yqZ2.YSfB]2!VF^Djb=|{ws5e-SbrrV6{%5Z9SuihX"
}^W\#oL Җ\	g+ȉ$5;eӹMք&zrH ,mv\{_;?zkϝ_˿;ysg~;_Myv,`$6\֥<n,s	WkMt^MjL5?n
& 3p]Q(y&Jk&!!vv*P^R"Md7;#{_e"m9cJ{U
sFsrиW&#׻JW*c'I@n@ΦUAиWl`S_|6t>t)]}495KXmƮ;^E>0%y׳*{L)!jx'sl2+P9-K0P[W[: yU[O.B_6֫yꬶJ^yJG؞ŐI=&Sl-u&KvTLm7z7~[iš>o>[du_ϯllN6Siw:cep	3Vm~X׆Κn*0y΋l4oů|<u0?8h1J*hҥ¤UlS?0^fWᾏ(ՐP
VwBp"uu)O= PSԗ3"jm$aN@4/#ƓU׎vWl,^ELziN1	$膵`*۔xU[p&jRklL~@y1П=D)Ǯs+RzzB/]9zjPM\,a9Li0gϴ
>qM{^CM4fhpG?8Km5ԝgts@=z=
RjOexN <-HNY1>%".e*eF#lx]7ieugח.5	>}h42+ᓄs,YTzlEq<+	9AՅPTɌu1҈ޠMl?%U.5kǠǛٝgҝ|N+[ Y\|Ƌɛ{,Uưw"ː`،gv .ɳXuZDڲ6'VX|wY;h
Å1R3;yj?rܥZVaR_G%|y^AidѬ4JQI<k<)jҿ\eX:z!3OqQ,>x>jtJ|SU@`KR\ƍX&ZJN$|.bًD%5jZxosDF0dљ V2fl<1 Pw8j}>/{ԱTЇzs/vps'סb:딧nkUaQ\N[oGK01^3Sei~/Я{E:<i-M\w8WxZUq@D=.*-g|NU'_x>o+!'ci8Q,4H]4Z¶jmi*t<y7s wھY5!j([+RNBCQtܛPP0MS:$[|.KƂ~r;5jQLDcѵ(tlmBM68D,ߣ4)߿8i׷k\?l V28V&#B 6%kb#i-̥1iv˩c*kYW>]i|r=LTB{#b*$S293~U9$">1dLXp44-ܘ`bLi_xzF ԧZJ	U㡾a-7^p $~KO.
\P.CXYa{~j,v΋`Q遣=B>hvJZNG`8-l;L+ECp^s1Q(qԸ6S#uOS8!(q8L1)Vϵi{p|,Yd}-OU RUjfDRmsow>?~wnZ7e#}a/Pܪ#",p%XNGg {u懥g_n37o51ZeAVGQ+ ;&&l-/	Aƈb1n+oJۭGhĦY}^jl,^,.O%xk\Dz'<'K6hh"ԤWáSyRpM)9
m7ZʠORL0IkF8o2 tIiPeC!u
D|ΓO5n<͌kf<=T-gRYniN Ծ7%2G:w/*oD6wEuU%@1cÅF34^TKMȑ'\(	G4T
8π2C/ZliFFpdIdKJNFԚ.H{_m'nyYE٨-h4bІ:Aۆ-lR6GUE!/i͂eѲr="昃&:{;O)WbzqNXKgqA80,B DMb9_P5,.]'	5nn'} x6pHl<|Փb7?w]0uiAH?!nf2t3pb%}rzҋ*3ɗaFK /SS/cugl]|YYmf똊3i^r9 h dyd7]5>W4cmm2Fg9,hL0cyH=eKFV3N񺵬r:R-ڊy8	F+}soᰓ_vT<sp?^?k5V\qKD]$<V#Uμ0&dK!'OX^$ދ|,T g	pGXY3ہS_@+Iz[))@P ⦊P3_*75|(Tf'q!:H,eָq]NP?x
;L(+iBe/a*HQ_F={_5K@Y.ynpnHp#~DWIlh8)=h(' ĶW`][Vk_1p`tF`!mZh(z[ɳ_9/ύQ<}"4$df0i..SPtX:m\"O^K?شwLy)vMNeGuF7eS{^`*8:_ˍrXfG`~^]K&	繇3YLP2i9\ek41݃`1}%׸rN++>׀FT3LmDURn8^
9MjYN2~ڟӃ{ldUp'G͏4Yiإ!ax&$cXpiO_d}//oߑe,nCS	e;h?.}OϿuۧOuy
}>c49ahkLtnIFҩg׾z|h3yY[41~~Nq>bgIT'zd;r|([P+20>pMnD?E>;u.~~ӷ."xi5йq]o	[:LPIVF[^fI9ɶ[ **~N8~/}Oes_V,?z:=J,N[WU
O0΋)٨x⽙}MhPGmm31fklqL)VL_(#3>T~>{O^x~w7/|+sgz偾+	sm*V:?.9Fu()UNQ]nܦCܛP,~Thk2I7\n.rbEj8~8r}:rvzqi!0^{#m*էUCFA^i		worJKe M	#LF	=fE%<eo}mn	KYΘu,M#hF{fyJxД[)	q1OP5b7Z~]ǉ[k(46융gdĴ홷,j^.`h˯uzψC114DG&v4]K@	|LFdm;BL^䔊f..C#4&ÿZgh$䈐Lbg4自F6dWQAh>S=Zt}k'B낁ͽkGT9umqe":Cd3P\,b1Bٌ/L\P+޷l2)mf!e)k,:T-2׼lr@ߛ6a	L n-=(AGJpɅ3碋R*4jyS{;R772vvN.(JdhVihJuVYZmR9Bȁ5ه쑽TNs?{o={7N. 9@t\ѐ&f
'	5T8^cP𦉒|\׳*
LT$J:Rj*h@P1nƧek(;n헃?`*XX2,
DW#u0lE&CW=ĀkYx){O?{+FSy
b7s5Wm|4e]QtNHbTfNܹ}\8e(+p:3ܧAgB5Dڶ$ʩ-yﭯ?|KWaP32y by"Y9~)JgRX$;_|g_Z/+cJP'߁㝂90?pS+QyV;׿zer9+0f(a3|fB Hy'SS{^&W=Xy^cjZBqH#sC)T]XaJ?;J27~zerDmc.ĴѦhhu6Qb+V<ư%{ uHJك/z,A?|klOqV+#z9Fj*-,ڢB*3j.U"fFVyVp96CC(9w<y6C j
R`s%װ&c5E6:F8̌=8:՗oUH:ZaḜa8gwQ6{鵩N
Ȟrtʇ£,Yd\y6*n	#;~{::86lJ F㪙. 0FHUR@iʩ'QeGƪC|N(ug8|?Cvo__㧟w۲+ixe(w2_ԡS`-"9J3mR8\NUjSQJXɴ\^kBjahT9q!ZS%+;7q:T
.¡W0t,.^"l9Vca4J Ջ(a(>&]aS'UtZkթ
Bxni̭ҡH|˵΍ҹp~eDTnf:BSD|u^R]5U[/Ė{W*<ZsV	2;꣮9}zKc%6>ls&&Ưs禖ϱFnU,1I@:8d\PYRmEcwGgGítsGkm[NGpJpX<9}k~L'<cUSdX 4l\8HGQjw/`"AGᬉS40K{3ތS?8/a[8&`(ySՑ45{.-vҪ$RSJnjH"E䆸Ip.ʘ#|RE'{
w;{9$5ha6L&%]?Y&(wqۋn+ӽ]݌gڄ]HH-N"GDVk^J<ppvH3,,A4>6r,?E{	M?<ڻVOаMYp.c&mн \0܉s~rZrLͮH:> n"2^5"gd뵆?@;%Oҝ:\QldETʱ'h+iy"mlJL'r+5F2 9P'oE"U
Vlx:snMh.7T903/f4:4d('tہx/{A *cԋP-Upy,?grFk"[7PpPv"m %,\8sㆥ:3x2Fmy^8OPQbE;pJ7V8⼈7ޙN #|iJ=v픪-c|uӀ`(}@L=^T%O1u`ͭAho؜\ bضưN9"s툶swwoǯto;7ik'h#]
NmBƹx
#sm&2zma85|goh^pM'+rטhy]45ZwgO~k+sFPQ'Gf2w|X_ >>M3Л6WL+S2k^OhO9,I{}M('`XSTc6 (*
^ôrZ{_`q8F$Ѽ\`2W'xЖ+3٤[(I =`HUf+t oa|t._\#)Mz
:DR[_(znahop$ %(?g&jZCKiE-T8յWbr0WJNsAW{:y@dhk-u)Y,PD*߷Naf&֠W޻1K=bl]R$(ޅH*ih8CCW$ktQ38t[
Η;(f!jh58B8'ƶiV>dhn
H0KGM!ڻDX&\>yHuGW(8P%:hYsJNS	MßN4\94g2#/Rv2V#@r7BrIf	EA,r	t[>.>.V&V.b6]pe#aVq.ҐZis
\O3(]<r(K#SN휽XU240+%e>IY֓wjB:Ep='&]~kkqm B7,>%グlHvN9U=c 3䛔VW=Ќʛ.z=}w}Eg^\7&$~ "|3J>`ʤ&N%E%B8b6%oq8{XBOs0y2P2Q.VT
2r!zcp[^pױ{blH'*	I:S-m`9P-g{MHBw[oKl8g[&2'2'>&A<rZ/]W-oWlf%\?mrى+afXjXG
RJrѐTz`w>[{ep`?8޵pi>y|pK9/:{܉<SCS'] QQ's,*G_Nr}&rV"n;@?_jrC7/ϏHH'vH^EfX]`<
J@	YZ$7)+rF0f߭u=M>76@) ,̸n<ijBSKlNVj$
9bͿre6SPZ-:tܧgytQG,ipЉk2g|J5|Dk.vmi݋By.Do=98(Q!*KX"CE>ؔڴYJZ4̒'Jh}5}d8nv\V4V $ #LĽ"+҈q4rJO|Z_`g;}]EWNk\4cBhux!>t^봲q@OS1-.l{.xY1$5nv6;n9 d4aS-\N "5IWmBvmGʠɅQMNi]#1ÆB6;OȼJ#ixJ)j="tTr	/ލݠIS=\QD)8T<fȘ
'XW>qGUKp4+JUrAeWd0:p7P,'q}VVio
(AHF%#R1,"0=:u\}d_f>
1p*`mƼe\G> c-c:X ȦjkI3L^U>#F*ٕMB.}q\S!Uu 2\4pZ44rT̪LNnoh?MU8׏(Ҫ"Szzxb72fSs^qKTCd2VXtE7L yo:q
8FYa l]ܴBGiL[{˷'<q/_\?Ogyg#3QS"=y&in(ײӑH,y6mr8YN5|Lv"6 <(᎚*/(1+J𵽗URsGvߘS'סRI;4.ͩ	F Rco
WKLGTI,M&
s	̭0rk\|P$n5D900m@dRYZD{U܇j,bV*u ~&T-ASKPre@Pm`%Y>hUO^dA`$C^R	іt1f@Hҩl{oQZO_|Ż?|\sc6NՎ.p>{/>;<d\#DM/}#-X]JǛP0JR\
: \fp;)#kg!FQ%`Rʰ*EgB&SL1C
Ou䯞*W xKո𣎟yorw_󯜼/LJ^3U6z6kh;~$zg!Rf"8ƋL1{@}4)\fNpnO|xn87]mRi/8uYEgV?ǒ2?#[|&~7>T	MKg?!bŷ{V(;~^lfaĄsEWj-/N0q}@ t6lZܧSSCskw?w^y6jr1:ɠ41+PtĜ,kXeIp1L3~BIퟞFa'x?[.~_`JZ{Y*4,*
Q6<8"׳IP.ˉr'mؖ|dn=:Ky/V!_uoׯǂm*<&.t<$tV'WH˚Bw,BqAdM4nl;辧ؘf2%1O$h}Dᭃ];-6,G7N9<?jhc[k{~3LI55m"C( qP_zM%TڥXQ$fB	^j}ͪQ(ɥڌ1⃟ʸ|kޢY[^ʜJ-><VULܰ~zZ9cB֎*rR<-d:]80`NhvVV4vsls	j&#8EhS
Mcoun=r*CV+Ԕ94](Wd]4.&dIp8<wO_ftzt^ȭUgafYC̙1lHrV4Pt&C7L/b=!&2n~wX;1JP}:{G}]87R1}hrUoq3/!+[ʂO3Uf;8Rщ(͝M:-f<V/`Y)!6:4j{*{.(Rj<{*n[ᶞە]tC^>|n;zfIXNTin<EFÈTLkvG878_/w)>Y7wStd>V-"X-%eSD,;iVO_ك^
m6n.l*t/p'K:sA	T+qpSMHMXPfV%fnqv9ѐ{U=Y"جr-?y|9O};|yp~Wĺmp `} 8+0ٚQ@v#,ť&b-flAaEhѩMa
[RIs녠?^dyY$*!,Oc='nBI`4;jgWpL`DkY
|ZX =͌5C)2Ћr7 -^
Y](iN<u:ob_gJ0=nz.H|CJF ؁|:jJ{DSåā2ZzLɒ#0p3XS.gx8sxԨ!AykFnl
gcPO7uï\ySwi7R3gc(V`_hzaXB;O81V$D	2s$YSmm^#$8bMHd"~Ǚ,8U+[jTޔ
ڴMn/Lb5y8fK9yRIXʽSdØe 
(eB(Ɔ 3L'^V?yv Fiijc"]ub}))p~R'EչR6,Ox@).G@Q ք1$,TB&"$fSD<PSP%c'Q;NѸ7]͊)؊Yq\7)Zkx8|A&ƩNd5*R¯)*dEqg㍃2ђZ1HXpA8ʃ$<iʶZLrѲpiu4V\%tJxŤ2Ub uDeMjTعY+df2ZIUO_øyߢ3F)V
MqFE-]bTfe87IS294@ B*_3!CIi4Wې~$M$h0Qg(FFUmd`GuфS}yΪ[b2UP%N"Z"h!#x\%nSՒ=0p%5gxź/*
 Ž5=J Xx`9u`M0+$s#-+M)㙮	o6ݭn0lXںBEe.{ݾOoqJZpinb@ W prq#J
<4dA.To*ģřɫ*c%Đd%BBȘedF&B*;	+QLq@P">=f+j/jԵ?eSQp^F3Fc_$³ q[PzN16yC[x}n*Tn?{n_b{'90eNJzF+m7-LZOݛ6uVe;NDs0zAmlqcC7ѷ*YUʟd122},Iw=d흹sp5^ֳgROSpMCDODLMrɉ" a#(ltg.g9T~_b-]ڻ\'{*ڭLFk$x(.[f}UЀ[	mp$BV]<VG3 8cL, z )kv0G"_Ι	<QA3P@")L;ӌrxRjA/ 9
kgA#P;kjzM_lJ-p["\o3S!FoJqt9&̛Ȑ(;c@b:5sz~ը%	޵^&GE q⃖	$N[Lݻ$YctqHÃt8< NL9GF6f]v/hKL˲žjd!S\LZ竢0_ȥ6)w`}%|TDbƴ]@1ެ3ؔ۲Etu=dnO^~/g2'ecWƒF:*-"ls>,8YGtT޷V U^t=w|'7evc0j	B0.ioα^*9$m;!&Zj&XgA(󊹲߾97ʕ{-/~#[Q.6ZDbR"zJD#xGs/%#tUӌ7'O/xi$cR9r|#c\X0G'}r!ez0'rkpd872<vO:Bmaa$e딡6]a`hRp桝3irJ)LB|2Owu0㢑H*u{5<N,LsWlq-G5ȣw\=sqXNSQJ@&і]\-rDC ''d'"NeE.e/{Jǝb♵1h _.{GZ)G(t\+(Ml܀jHu(r!B|8O?ĞM9L-AM.AcH=Ġ-h adpIދG6G'6:nIէ'*};f>jaB +;uД#1]3[ZϦ:%Ag<5u)H'E<+x!z"歉[VĳeyFEep.4lF 8b8NUZ-~kgZ\b:(j(ZwP.\9<ێ6
ꜩbYR*K6<+rT	 h^/e1I(e,}i4㵃IiҙYkQ:k(l	Պ{$Xj%Qo'@ Gldm]T:Z{tq%?vJX2iǒh}.\Qik.֘NnƲ*hVE hS!1%֜SJ2	~䮈ZI)HGұQ\1ѥ:K
4`/yg[x'{	X5>/QAѽZuNnm%sy"`?vK@XfQeXv
`Mrq5a3FH?)1HCD~@I1	=U, %Ja
$PDc)FoDJg0ҭu+)l\*sݲynԁr8F7kd11	48|YK`<s,jo(g<SR,U\pn S	?fINX-^v4:Xe7'iCeELtooQ;9Qt8(q	vJKXl| uja_tݣ~^[Bލ $bw8Z`SXkBȚqڭ,\%4I5+r)U#ٮP&VN"3|DNีB%c5I.cXHX˃e먕Чh/Y-pA%!"*J8e[voSqEvi\M}d)Ib0ml[Pdȼɼ[YάHx.֩A/wWE׾J|؞ȴ3шa@L  9PXY`%<ܒۥ5.<1N$4a+cMCܬU>h½Ye羛ۄ7E_3qD~E8!f0&Ee\F]^_YK@3|	;7Ypk SNN(/9Dmens7W_czy6zQM' nt ta= wJ$&>ꣅ)rb,kQ#-Az[	i[T8[0$Lk1jIO
o4@7In\Ӏw|8(o߹xYTF=ϙJC&hr<g$L{|_Ҍ_y<q.w/Yu
kVOaM6I@wpS@gΫjR)+tx46w~]jl0ψu9&GObG\`w*1iŜlv_˴r&BN%`nmR(1ӵɸ'OJWH7Bqp]o\n?xrKztMUc-DWP)md`Ulռ !ņg$5@$@%,!E(jzMu!Io׆ =sE6jEQLyJCg,`ԼwHվÚx!)TQS,PYQ˄VARdn:rJ,<[7rf$R#5r)38s8bu*. &H
]|f-K{0*ty="}?X`_pqgRH&rLhpzOyhwʥk֞m7?|k'@j>B6 rFsѠ8eg@លbKzlɼ@〻 >D%PI8q6J{GVB
M\POIǘiA>;pKuk_FnxpF]#+zK&;qÄS^p7v|	 P1EHNu3D2㴨8hotzXǰnU)RQ~S*OsX,g1Z\:ZZ2Xfҍo6[%HĹ>Fy&Қhl'Rᴢ&C8XDRjr:`M֓<g6f[U#˟*]48~u0Sĩ$g^o.(?0vDY%!)-vƴ[}l6C*dn:t2oBJX
k}4gMK&H=aʝo[W|é0H2KIS
 8v%ߠU6ssfp?u$D0֖ԚJWnٚ:Ϛa,5?	t~*YA_VKm	C.Q|}*Izj:=}|m9/|20A9 %?>3ΧJ*j J*ڒH9˪2j5rB2>iDI6Dl,Eڒ08ڃ&+օAғ	,4aprX+LopRi\Y%7	K'<@|+ZBY-<]A`#'Ѕ9MeVhř8J[J`})&KP|f)bE/FâtcJzrS&3S[}3T0x6 9Ë6oSJasd, 6c`7''Gvm42/D@@*8:n)  V6Xbbt8wON~?^WN4___~ۯ|rmja`iL̨L  rGjb.*Za2ՅZv 5'ZN;$iC}ʯS͓s,28[<RKM;x]`f	JN	0Ȧ!OسtQһ{Bohf	x(ADCUJIk@WF}SrDfXZ*4yRqkIpro7PF%pzz;m$\	, Kh3iVf#y=y|yxa._<~">~~4>l:,/wٜ|bڭ8佲𑤜s7 
 HvYVGk׭zsn5."'5KVpvçMξjT<S`ռgP$Ihd* ^_.TmxU3#Փo;~[/꯺GU*@T;=B!1M!iN|g(&dALBŉ^Gx^g`{).{wp03TVÝq)peVFe%;$dY:)YŌLcطmp8<6BX.11	tA%UKUp8KWx.dNAgUFÙDi%SXʃZ
-S;VP[YDh@|S-4%:X[>܅k.'4P3^m$x]xhk{(
iuČ!8B$*SJ!:>ȓyއ#~<o|s'[Y{ܵ9sOE0nS`= vXca^킝v(@	Hc: m`rK%8!ZIXgbdKjB Tsu6Jr9S,(0,$.4DGv	(^BR|Ohp8^uP6C,{u|9$(@j#IPZ7Ơp7VZ.m&%VE+9m_R'4/$O'Hh-STzA]Tbvi?>p7!҆pp*T0ݗ<v2$ZpBRyKd?",XFj%_<O^7OJwK nST	Z	crsnKT=<UIe}_Ed^s<J w`M+U$	u.bJ+Ǜ&vFVFjiyMq󝯷렜^7[`Q"-nV#+N9
KdV7ڭ8/pĺjE	x_0FɷRynz_.НouG.$uO.
] Q0GN(jx߈7p۽,lgk؀%b+ECvlؖX3gж8։ =a!)4ȖE"	\7k3ݗDoYg#&}NS%DpJ]
,Xg^`[n;QZy'o;epu;<?W_wJ):*e	$[ڱ`$5M5etb9lX4d`HI34Z} W-yՋW)'ťtP`	;(.ҕUX~ز/<3'`^
j >f62JiTSN$RNF,~j~#%F4ΡF
HAPRl hXnYx %rj3+#ʎeݖX$ÜE'?`%kIrF;'bv"8RV2ݒ	7G{62Ke b\vp=a;zDiO=L:inhJurƿy70
): &(ĹVay&괭5&xm,A*TQ@kp| LE	{S6wOB.-(M
3Dͬm!m΂f--W[HLYz.ܩzXVsüO<EL()z벗때!]iJkG+/_aw{8VnH;Y%&ٷ RNk$)*)
^H&$kh|lrSn@`WQ?ӽe̙5!sH^ºt;c/NTVڿXrB'X=1IOWcHr^4Y1&-e0\]YPZR1ɻ41;{a]p"kv[%w;NG/򛪥5ZKa~)nB)!Z(# 4Cg|^I@&тd~6r=#WS+fۮ^<<|pܹ	QmYz8M F1D-mvԟm/NSp|Iv;!7YΪ`wG/iWN^E%wޣϚm
Lwzyxf&@YM>?~¿= ^p5~SA7O4K8h3,&J#!b2pKU4xDPsPMLFy/j7!cHgb(nwm@TRIM9JY+bd$`H怞
8,}½']=
w[ә^hĶ ,%6:+ԎTZ5 ,Ehs}\(YN6ۘ-vR:<sF51N{ib(k#9&uP|'ހbKڡFo
`_%;V d<e0!
VmtCb`:Pe,'TpLTSQ3Si_Gٚ񠷽9yt"F3.j"YN	-)BN:ݽQ`%Pꄍ!TX@kHM4r#%%ZwQ#g2Hצl=P'A:	~FdX&zЙ{	kd9@XYH#Ƶ,VHv+y-g3asRΧJޭ4ɧ;y?Goox}T\ 	`l8c
i]0z˻4j%1C!G:OW,[+L
c~F MƩ):LrvN?Q?[HkyƮd%fs4F@Tj3K65JGgKpmOc
]q}DRIcr4<d`a(ЖNd%_[>ƛTSGEg6&Q-?/X_Ӗj<s9`m"x}K)(ͣphBIC՜.^nX7@BS(*\
vd˞a*R=q(U (]SvTl[;NNőJgXtс̽oƼKoY,z@$)pfZcNE(*&S`LقxmZ9N	My@W/'Ų!c3ڂRFw,9Jܬ%*ӾwH)% nf)S ."$Fem8?^j2U43>!oi#5lMږ<J!]<hYVhEe򎅨]:D)H:tSuMˆlmٝnJ-#q!IacBs@QݥF^±-ARـ# :.mFvsl!g	V(<7YCKBwUeGq	H8xeW藁q຀~Ke6EpkFelF'^cY˨>{ x7	:*N*.-f\P%"[uq}Rd>6DfT],b	$B`_LJV'2!/W1(8-mB>xm,=<PX'*$qLI7jN8re]oh2<"
b ei(X.2Nv댎R2$f*<l&YEY]y7nVޤ?O̖ FA?8P!9 FC*T"&jnWu8Ѝ5TmD&Ɍ8v>:sG"@htЌ&4J>'i9Gג
&n40/Z<8$:>Ҋ3Otq`Z:'YƷnHap*	
b2-hAmmBHV%oT
cp8>0+ܓ	iiӥ͙9cwf՗E#2RIK% 4$jd8ekOdΞIIPj88"#pwPp.G|ba0Qe)f`趶CT.	xf @!c6I/'X8Ԑ-IM|Ff޳d!*LFF0m/
/IY؀r(T_=L \L{ Ynp`W~p;?՚Dn\pF{-mלHs$9_g&d-&lFhSC{;I&	E  )GYo6MIrЬFfЍ_P{䮱xa&)spF| "qwdȉ:ۅ#{a[9ݔ#&`lGp#Iĵ>!/g#B3"7$K,SaT.$k"8!NM 84[~	%:皏KOGE>pXTJp]Qم\M⬈Bwg9#NWF{əeAZL94,eQ[z&(BfY9gBR1	*Y笟ɓS1zoňE->0.VE8*{ˉ۱YD$Oeɵ&cMul?f	rlw^q뽟׾^^H?>O?Ĺ>x>Ob+5sѭ=v.JP+8̙Fg,$H^` [UwVۧaMՆ]eN.XClH'"h&d`>-O{紤Ǎ3@Z;TL}\C2ɀCFy'aQJ^ra9'uMqh{]dpa<e-|&yM<g?8C4 3 #jRT	;[g'yIin9	t4
3X5R[,FfT9w-=';[hi#nHjf@'p9pjA5q2Q$Uy0Z΅`f"o*`ԿPՏZyxuvr{nyU((U90(I8}]8&O: )x	"nA2[)x!nP]ޢx{oʒ*
qٶW_0
2sXc:K0*7~?~I7_rg-V2f˅MeJ$&.Pfuk	
ڜָ̎bfjTu3s5jn29+]O<$y \w^`L0u楟.vɶT
᱒]#zd:<Z,Їu+ѾO{vS׼`Y^`G904%sQJX?5psӷ^,~|h]p/17}{O>ؒt3u"ߓ*qxfs7N!x /	;1|bBO
2XY57QLN	)1Qs#M	i!M~ރ?_Ӯga	|xfrI#%%ɍIIjf.wHcn#hu :ex5K:[X`8xv޻s+*6qn*.ݡ3N#83D ($I!L!^<'":`Z#T)4\}k!H16Z/g.Sֲ~~!6 37 
@'6}+OTy8#<8+
䒩FwFI
88Fy%X֖=xJqޒDhwN
+BEYÙ8, z}ނgas)t->Ac7$C[%٭I&	OA1Wڒ
ѽqpճ]!@ȃ4) YX}(eIJ)	9SP,z&!2kCI(('@)Zƶk&&%̓`2MYU`ĢqIxq WajI/[[i7t4(MܺLClmg0,.[۹N!Q-pROI.]K nlf@	kt1 s34ՇNW.7AĽ}H3I`|Dy pCm'ӧ]*gh?LuTG30'3H?ĩnsi48>EvI8戃}P8=DE
l6)1ŰkfLhU2~HTBPε/yj_q3IJNہ_`pW,K1]@H9Ɠ7WNיZZͦo=>
rptt)*8vopY.;4NS`IYiۓ\␉'*(#WLA%GWTmTb->Q2\uAj`. FÃyyQLDd&_C"9P:SڜxS
xV "jh5l#<O髸kR-D^'agLW?Ƃa7Pҋsv<sD4x趻֙Ik~pXEEVʒ#E0)X#v \T|*6q Hae PdRm/jxms.ǪJWW~>>nk_SG&*l2	LsC#5Ѫuin	HL)G9_N*reփac2OCZ_o.&	8H\id/P=/F͟g)ov%OD872m	Af+;uHϤ/ FhS<z-;"*ks?߻,5}4=9c5R	)<UY65g`f358<.s,rř{]β5M7"ds	 P DLkHJQ@|Z'$ܺ\e_~p7\t4b~|㍷O^YRb,gvOF7X'LpD0YB^ ZO#[rJbXSRJaI$uy\gG4XڀBN"&N\uKR )vo%OEn?Mޖc^pzTd;L\`N2Pᜒ"=AQ9C5,vþ5|/fm\B	!沮Fvn#9H[<뭜Lh$ȥ0t#^,Vv.,e	w%}(xY)-ɖɷ^[}g'b(,0^p k-s(+9'FkpސN Y*w;Q8u@)=;{j
{j"( G2#cg%Ϛ&j<Njf(^o#dFSC6*BJJo"05]zP:RLjˑH_\cֈb+8k_F,'-vaZzbꆜ0܍cdZyQ( e_sہ~%RP8K>g{u[j@tQZ{hh?6=֏ʕ/ˈg$oԑgViF31iK!ϊ+\S6MWFpWמ7[+%dAk2;) 1-[eeuX]"fRK 1F?A^FmF?S5WA-8 sвM hv
c[aЧR= ?	w˳!<^HyrLZkI0̕a߲mePxyܵ`Y:#w{8KqΕѮIbI%UrWǜ"!!]n * J4] 7,+QUxPE>Ol$Z ݈0s )Oͼ!Ta.YkXbӰg[ڒڬǌCaqhR\v ɮ:w<	_0>:<,]ExFe	^doZ(C̒ڱ/INe>>.%878ڤFz&\ܹ*tarǏ!x j{ev/W%M/ T"@粌E Zu\]k=Ԓ:kgjfki}mibtpcLd 0tu`GUF?uiZ` T[|p$O,jR]8qS%5 S ,Nffr=~jtmy;6,Si7^s&jc%$Ff	<dO<a<
ChIO=]ry]C;ՕApUvd֩3K}	.OJeVi*^#l	+p\ރϙ پ `b:$C&&$N!;bXԷSCE&W)
RH !;5٭k9c]^Px￉7o|p?}p.~'7n@k@`t/҄O>rCk6ZM3<p)"3{[BlUl5Y$cE7{'_?'7nTet*c͘$zFcWp&,1X4\C(\Nڪ3'@"f`,B⛳xkVsA}-=
esۅXD	x@6b#]Ƥ
]gړN\{/L92~. =u?<?v*f9Nc SPށUIX!({aRz!hE|2	bţ&H:>qG;.WZ6a? p9˄-"FSF,K;mR|Ѳ{q*;M~v<2g%>
c`:2_k65˼Trg3gU:{U\ET"8Xڡ8N㥈
HuJ^8-yTC{:Dw9v;@*|AUG}>AF1lHd9a2Jp";2p9^XLXҔ-k*"!ab8)m\E[^GjtixZ{οID*Y۰u[VMǳKEqq/݄UW*yulNyD%#xgK1 CM$=aہh/IBܠ17q~%" ཏEٙ8:M1a*٢AXpI$pOF4r)09N5䅜`zէR%פգc7tm)Ne\~iMO=}wkSOd;b$XLfX\O:ke3q$ȘFDj#åS݋[~)NfO}EwVx)R[%n,*Eq[} LB-*g̦ *cԫs%^YE9?UH&y_Q\ucr-yLB-19G Cf6Y"lFq+>hpQq#tb	3(8{n`^TvU6[*̉h48<>wDںi?S3{_Z(oU>q7SI upp$.˙JiHfW$Ô|gI|R:=]?ŧ(@VUF
%2$xNv | 2'ؙjRn<#|{Is$OJ4^*`FC2B$07t0X!7;;5AB.d~+Yآ$ox:n/y_v}'ԚLĥ%{^+!CCN*--#@KNnţ^Ss5J18<
z'n$h@pI_Ω@[9Zk︐.cw(gEn@y	\ؖs_Ap;byXeۗ-ʔcaԣ?p>Z;i"|"ãQ*`ߍcu=pS?|mh<Q%J'ۅ2X0$kM=/{|Բ2ݑMccwLOω?Yt$}ş>GA-SGp+3s$:Fl̇Ь	U wi7a982	IҮ$ǃ1ͳx:@.8lRfhp]b8K̜` v3q9&6/.*0sNu̛x3ys>g	ee&.[ds;f߈WrZ4ZNR;b,{&'3<8@=فzTs{(iDeY巁u4Ŵ;x|vhp|X,aFko}Vy4ѬQP%4p,fX")JKHU3(ⅲ)k6Y&z*nq/_SPw2+L	[<l~GR/=Kԍdz7OmvBӓT\ 8)ʙT (12QrE67h==c\2B`N±k3mH$
&+UXvRmo[/}UI?gH]o?(
X+ʜH#tM6rXO]$M9dYPGj+Vwg}b?"a$xwRYA66P-p&l }	(o\J	.Εap?wWu-E7<<Q@bMylX,y*#Il޸df&^aI l_ٴ1[Tu2I-yz=ʫ(}`pF\H3 G:pYT`TڊZ<8mchGO=D][!͔1Zd͖I !Yځ+
<֯Py,-9^Hc Qr FtK6I̊/%sN;yA"(UoRpϹ-"1-m79ckCX9kgZ"@cN8%Eq iV:pLP $=i@eR}6ʀ2"Hb́hPP#؝ogI4z91c]9"GجqTzM	ep 
V c̆(t,nYsy
qp4w`$DO`7R~1 $6l{MPfhN<Xuh!(WDZ࿳`ÐfCrojG9G?La[('"g#5ZECuL؉
he	s؏3mZXI`NȁYdɦMdp"M,rw#N뛴xZ,{-'qGϒV!28_8RjSVh
kSQ*ˡi3<:\O5 tt6n,N!IBq<gBG:/Tf*FNgui}ECr˗wphz7*g\,z7 E"cˬ=22%Yv=7phǒ9+o]6,7ndvfwmʍLkСPOa^FKuJt(ۖ&0{;'\\uN#6CvS
4c#XHuǁKQ/wX5w~S*~bR fAk.Cќwb4x	ڵ#~VIYg! "C<i# pZM.RS,"y'4Z`6ɛmwBh	G^YI_jvKWYrNr]%zijyu`2sEfpcxPg k}nSqNnWkߨ>BK^{ᑟk>M?`-!僣BQ'Hf`)Ͷā3[7|\ƨoe_MbH2A/S%UQ2:ſռ;,pD)"Ϊl7z:~o{ D
S4 $+$B9_,թ/D:Q~Cb,V"G7K?_կߺQ@^_߯~ׯ\taIRg2,pEt
&eU4:׆9MVk=:Az!V X_2
KSΉ:hELpify(cY[~z,8	**wozWH7!]Eh**-5ÅZ2 [TNps3SUI۩Ĉ´Vaxf1u68]UrR޸0m6,բT1~WՇ~~=~{?[|1Sf=S->'K¯*cݴŵG\4w\M=W3N\>L"GjD*)H+y	ͷ7
)Ki+Y[:PS`dR _7KU^g(wA4-
=&g!
o pD~F.jdWEڶ
Vˉћm::^H'`dD *Xm4Q ,S;g|;>ԠB|"eh	hA=lm	ZzRxXLiTKp[K)J[Geۭzce.X'Ͼ=~|G7?gosk{p򽯏o#9f%i=muš$>52Y6g6RkyIb_O>'-Յslm/F9ge+d$>tF67Eg]Cu܊O>\W#io
zO
-tRq;RQ	7Ƭ|1.ڞHf]rl˚XtѨb8<	dh@VmfsXE aXK;8pUĝ}!ZT4H{V#,i-VqLBybf?s:9C;Rh%6\3,
d.=J N.W$U2j%bܢ¸y16p3aS͉
BpdM㩰wjph%VLX8;e
]c)#pgx)')KqKHIf@PvyJcՌ3Ux.d^6w<ȥ`!q$͎NMʦhA@jVU`E#/%^E|`+u3Pdpld\)YWl\Á']cT1NT9|'0xܔ]<a@rj\Pk~?`?yq~*}ͳK0<tZHWq g(9M5WgUB[ʹpbbZd8Z)UﯲCRPL:DX5
Ph7?u	uϑ=/=K("1O,QBZ(,IGuhupS0,V:Yк,EOE\ u; Y4enh.ZDU;WSZjɶUԄPl>"6P RaT @9p
ꪵ&ҵ/ip*Xoz@<ж޸`45{GD;E|"'(Jg$*C/nG%%H	^0t$&i$Vepæu[BW鐜
=Iu$ٙJȫc7dlG>ԆFu~:,ߚAZ0!(fQjp)Vdtu$&8+$7.z2{ T+[MURQH;Ý#S>N/7X~|?ǠKS*c<DMeQK-'0S{KxBbl'F]4Uj^u5*5AdǱ Δ3Zy2ΙO(+$k&4~;ѫRÂSVU*vT);etF-40։x;D@2mK.	,`РNq^'.%ozKzlhdstpaSt0ikæ<ԻЦYuRp;+IucY?p]q_մ{ eQ_;<dG3$p$31HDH\%"Nv#GO>a*%U<
޹՛"|#%B> ymC#\fP$ZRc*3?glm#1/__zq|\g`'(cS &0K# 2sf*m8;-WiX.8,xFl6'ȿF:1(fV|,Ub~dd߱|ê/fOOJޯ#
[̠Ie 0BaJ1NX`s}Zby.._~8Mw?EL/mn$r^R4(@Ѩ;L,W
Bn(<hYW+O	Ym?|)d[fxnejd0p?\co#RHiSmk_IJZ.'rr-;_w7|kU|[/ú'ѝ?|շ~zڳΛç~dH7ٿ:pz'		J[ JJЮ*FO)6[Bs*MmY!w}ȴ(Iw/]8u)ZLSWB+b:k6iձC3T0R!>ßѨ|uWY
E,. )/}
aTL%Ip11wbl!E H}_
{w߿2~]=ʿ`Uu"WUV\pzA
/ayi܊
M4ۧ6Czf%BDr$pȜ@hmuRzHQ,*Y])LΙdJU~Z$ hpѼԐ3԰N$/GNw#T΂Yp[S4+@3R`#^a%1Qlײƅ`$nĺ]">_Q፧ߙ9sՅV
Q8gh%r83%8TlĊ X8mQ G!M.rW\:WS{?~cuufpŹ_I!&qE:uvx,*uwrx9w];SN7_;ηƎ')!BkSR=XE|lr֬rP]2wgW|nt1#Epl\ >=Sjy[B_WEAP{WX-^cζ1&dTK.n&	vf'qGsK:#uF]v3}I{.\vR{`ttND
e"ONꛜ|-$pme;@_sodU	(ݨ<T	[__e*rWA 0ƌfh?Ǵ2tz==y29%	=zm5fow]_F4p;ch훇\R:(>1ڙH^ZpbC*kzmILuiUQT(ΫZg÷׃˻r(>}_|}4v[i&E"$3lt"bXpւt[;흻ǻhUeBu5I^R9HW$ӿXJMQ*eF͋"p󿗿lkg kNlwDE6#'GM+Q_xOZ3/x( 3#I5,C@n?#V5MDtuFRW,0SyX	Rrb`i=H	ɧ>Mw
9MGߴsiKyopdϕJי,0Id<!zhK-4wOG頵t,òǵ,bWJ\uu\_?`D뵷ߘ(!ϧ/T/m_OP<[K#1Ĉ$yV66k=rb)s).J˩G'ID?ñ父p[VM#MmWWt죡"	alJ[jD~hr`JCf*B4T:>s5^P]ΥGJnL*Dpkk_PӶ\{ԐDϊ&oN%IF F	vUm(aMgpųq!І	$"^)dMk#3
"A]w;&wi8	6+)p2|:"4-)\!H`5BƑJXk-dgkeFSP	ER2!joŪfONM5oD[:$ehHYpGEdȋ}5_ppXMff5;拝%|Z^y*|8Fȓup^6<Qaz0bQ}_I<Yy\ex% YS4cNor{]Z蔙Wc/Ft&DFszccfܺ1@3otۍsQ-8`SwF*d~ttL8Svd6	udN,qEh;NMޖRm^
UbDVU8L"q[ډ־uK!;	@O,"}fmJf5r}y~m̺gx\Q-llZtK2c:=x\*0|3la	r;eHqͦ蓟PiĴa<S:#>`i`E:O+3N^LRR8$1kkS9C(XPZ{Od[JKߵpUa%	=7V&֙&h)66S{];sJNR]˞{[K>5\ &{@S
9I+²jڹTIfkǪSkHKTTDP,fAjZEA^jI}liKUdh4!IB
g*ňcK{O`$PZUX8!dM^
%[{P,ۭޅwIӣ#mV5BzJ:mAMw@e*y-R} LSK48G<	W^oƇJsFv:㾖mA>˅g<@+5
%fFf^ا駑3ۆ3M%ם2ܮ?o9xfjGQxo{=Mw}|V̒9 l%V֬tZ	EQ"3Iy}fhU0E4ʭӍSъ *ְ
F=>,:$}07D z|}݃Rڃ}k~ykgミq"\"?~?[2[)+JHH*>HR5-sAF%N9E4lO|xl'~?u8V}1"0]"oAAJRu#&M\ V=b*)U'~C'H9y@Q"oTa4kI> F')sB(åDteɺʂ BePWݠ۷rMmJ?HNJ,iIXe,`d4gZ]?O4΃6Z*c2X L핬"VZ9>oj2޲d3@04e9\0V҉&cIOa[T.<ॲ $VٳD>&3/Xx<>Ԍج-*\3\~Iy-Ns=7XDPCwkN(MZW°CLMr=T's8zbX[x%91|`U$b쳏zֺF\dkYrbA#Kb?1Bӭ|٣K/dǄd2b&YjFqMd֒ QQ	ܭ\oC#u`Q	4|B:,,n1Ԡ]I˴%7WPT;-L}Wc]8V~ѦȊBrԘRf58wW`evDFZtW^͉G_hGb8쵈@g }Oy}ڏ~oM\JQ䄴PqGo<yU3xI9<>Rax|ey1Z7Tge:Y8nTe&=V]'SڮnJ=1:y6;YLnFVyv%?rLx	sgV,5S8p :[
6&GΥ2Ȩ7;55h$8W֟筸jryy;Y,#D"Xa˖,d|Z{K26eIP\$漷%YՌ,lxƚڿ<ҔkɆPcFKRi4rq႟zW5O*6&-n~%?sG:fRό*G-YFE
a?OsGFfspd*j	 "Y`\z`!5ޛk0[WV=B%ͣI UH9m<$
ז-rGWK^cE*dPװ<_]hh.)S|ȁVǆ@}k,
V*~r9RyïuK	_pzT&IxRUHZ 2 Bw픫&%]hh`*E]H(*5KDK:ӈ3zJ3!;4IPmE~5gM? .LSv&g%/Tj

kB!I	VN,:7Y.1ޝ~~g_;oTv	Nc)G7^L;wnsgA3KQjѳ2W36`F=/j4MY<A(3uWعj\Knu*Z &Wx#vR#Fv;}6\	NL}!G{Ե05ս}ƫ|qE\		[7>1
1ԐRp@C_^Rb1}xNd..]8˚7=qbh9m6úeq'6'mh!27zIͺsGu>ٹy'`yW4^f5;k1~0Vyq4:7j ヷ?맟͊f~]pq^9CIȺ/NK4z1)3WxC>հI)oKLTs8*hp]B6 hgN2j7h*O*G*AtxooIpǯs<{*C:!s5ۢ%KX@GL)6s뵑kh1˔C"ǿl{NaCp]N8<iB#*(Ufā0*_̋"bb_ێE9pCbϿuzg/֒Q??8%(\Մ!eokWL>ǡ֊$#Htbr[pOwZ_.pqRiDBԄ$]2eHD{nGMJ#dݔȌ]ǜC8Bx.N9!y^J.mC{tFjdVI/	q\suBqV}(T2lh֛!!f0d,eU*-٦]Mp\wRv誜ke&|X;fu))7ΌtQ_jꝓarU$_GbG)߁x!hXq6
PMq2-W!|V뤊,[#15q'"3Ð7	A3%5UkUOIy){^+q&{I]S}-ND>zK:,dH_'2M,	k< SawfjM7d>B1m) +eTu,&n{ې	DJ9#'1|E֦_Zةhss~@7VR#L@UJ',Ro!k.5iyCo!xQE-'m2G9J̻*%:	E_mZhy*~۞_/yWzyOOdw!/ ˝UC?iku;e@I	!뚄{̄扆/K^#6>jBag(l'og?vV]KV.vsʃgYk%pq͋aQѴ/ZiTa[}{NV $RBYu$zM%`&mjf[2p;HLؼX9ua!6ѐٹI5TtT*(%Y,:%v,{ao&=uvZ$mJȔKgM!LQUEs"woag-PG MȬ}:V$I&!r!USܟ6mnf)up8dVH"GfG u.gM:G:֥c:\A-OdR,,
z
9}PHHU]^p˼K_6	౪"8ř&>Bq^
U#(BT7E*F+SN9"8W~9iɧrEy8;$l陲Z, 3JS@Б
cIbQge8UHE܊QRM4_hrHk2=/O/x#4|%8fk7]nn3y$EbmjMȀ4fXy5,_6>Z$+gQ*%ʱZns2@
Wm@tN܊ 8TW>gBqj/x_C.ɨR zfꚙ*1r[ݸ$|3U(/'^wq^:F"'TiEܼ~S||k\Dx4T]5ұ':Ȍܐa2Jd;80uyV2Z_:B Lٹ5}l[/Ͻזn
WRB/2>EBqoh8 q$PIڦUD?3HYT6fIF/TAO_:ϻٵN/XTWn3g.N
Y-gkKRΌ=B:\|Q#:ź/QR'LH7_WHySظ!J /)`"2noXNt"0VbW<y"!r|^%i9dBh|wd#)KGMFҾN]NFr$KD9".+^'}єne9+>(n,y7[*SF
񔚥tY$T[?fĵ.j'.n!.qn)cbBo
U	y(PkĠ 6jntKF'>fK) *fM/3)2Zbu$;°	j|)4,̵ZUrq+<olղ;~uُ-FrNMU^\ѐ}9@ sn04dXkjIpFÑhR-}sb[uR@p:=N;
e#MиJ̓a2N8?=qwE*0&»Z2K%"	&9ڸAJ4[=c&FHHy<lOL"\p+y@U9?]咗js}-YD4-m\{1	rk.H9v>gU;J
.gNjx`	0uӟǞΟ=x^nbq5.qw|AE8Wlkƾ$X
0WH1܌
kb#*spJ$Y7w/V]#0|5G߿m={#/lL
ʣtf^?{ƭjt/F̻GǇdzLsakDQa9[B_ZТX)]pNZ !I^uu%k9b:&2rIRpMxpEB,YKk)$)MFьP-,ʇ۳ov`;oj;b5$CFbhQ9˭!a)GI@ jN}ϫgf.0r +sz+Q:C&l	㵘<utHQ*('yyK#IVH.l?:ép[Y
fFI(DL>T!켊	T	\׵p9MQ٤5FQ=sϖOORg3a0i75t}jaVeIje1B%u1<5fAXҐ*.Gb9J.sH;C#Y~㦯ŒpSJ*qs,H'7+MJ^<t1U#ஐB>Šna2G8RA,ED$QsEuRJG@Itp`*=*5Mmu1KHRM
+a%#Ͻ0 tTmdy-RZp\\r`X|BziX^Zk[

d5w286\ 01`]S.Am,T?{y"kp"b0՚yHasq8䝋&٬/@`}LD\YޣD-¢$K2|@1	T@2e_5\.muJpe?YlFm*~7<?~E
FՉfi$X_JZI#kh][6XΒa褴HL!m-)̸BI(jVRXsS\֨CfmItpG56!*l=9}4<US>+'7$iWV"VPɸѯ&9=u)ZIpU
])+c,?u:,<|l+@D086>9I%g?mפߌ0B;髿ђ6%N@i5HƵ2};w,51T;EQ^DεEJQ]D0 TWתXRdbǴ^*(aYq`'MDs(9w yff*f|V8H;ƐbPw!ˀ~Ak$:WCf᜵R^vEi룁"@2m,u	v5WȫXV\u7~I09i-BW"{nK8SƏ
j_znot8lG{`y)C0|xg >W㷗z2w0{0hq89&d֓i}a/]2Ȱ]hr=Nq`%IXOL)q>rkZ.nA#G2$CAvB<{Tf-\~,v.^iOE+>"MbH + IrdMJgTFYs?'%v6~?^8D}}ƍVLzV.iU= c	HuvG=E	޲ݎ4I^hyMȑnlstf(jHEKm{
[;.!A6W0ir>\)sg$&ydOao%Pg닡\ŵ%#s֚,
;Sη]pxe,«8mfazB`ά,㪰	(D-U¢h✋ml!:hޣH`iGdeFĿjepN|pyV5
"k.cYAHaL7Ճ;apN5T&h}3qQiGif󚨧&;9Nv}gvP		"""fȄvS;ٺGt5}ݾ]PaY{^`%0_٭}j/zufO\|=8mx	$a2#sǮ%Pv$Q$%ҽH5ZF}qđ`쁏5sǈ0f5+f9بq?w ;BLdpOO@1ʹo}BN|?1ql!zYLrxf_:8,Td'<p և|6!ՙ fW|FlT[ ܧ|;VwGQTd#Y9i.ΐژE)JԥRp[=w!Oc4cIl/SglCVJ9jM>{.hvspLXCS7Q~Sy9E#V)svQlI~q7UR/&Di'jTz,~Ps25~V^.]z_PU	DEt*c pथT*VD\㫈4υh\Do),ozN҇Ms&H]3y]b/RN'ECL$.Bіml5	M4:P=xG#kQofmtEh.`
B f$EJ1R=DKI::z"$"U=x%+zǊMsMw4Nq+t	 ÷:_΋CI>ZS$Y1;9:?>ǳ|^?StG;>2䕶Pm9\n8z0 W&#$bߛd^#s˄"^jtR"PJXUD<.Bф6P9iuͥ]CgD]hf_rJÑ\S1`D\%	SC(k?b74%RJi(, BURs-GYMTIYq=9zeB)oScp(rj;
Q
EEhց*HK5znPQkl&-RYm1t-꜑Hn
\*}u'˄y4<HiFhKCGE楪aZ&|s'=]Kk ?/q0#Em'zFUlȨp75>"9[㲱zMuHM!z8F`%z-ꦱp:oHTt,L8H݂SSRg?==.K{O=~kk4]Z,-I$йFD
56lˋ{1O`<6t1ty"6ᖊ>}إ+$(8~
b@F8-3'pR>is\uȸhwX!oӔIlz?%0z^p]A>@3iIZLٸK"U'g} uS+p<de2*TVJ%Ccz"*AbN rUKMok3Zᗟ|H͹s['4O)hQ-(FU)j+ކcQiѿRᴋA0}Y':2:b2.W&\㬂WZ[;eN1U!"`̯i6\#MQ<͖æ-Y<V .e8?)!YXa9a?#@<4Q}ɦW<ͷF\No./263	ޔybF	,qXz獁`QduP\ r&GuD|k2908.ĵp>T|qtҲhĘIE5>RZ+THUD,b}a2S| skLÁ\m2(?䔪]emb
M(,qX?=hpQɤ"؜q!S6"mRӃX7rVhF4)Y^^# /E9_jdA<$:\X!KbQrB3xbR]^~FKYSk}XGo<KmwdϨrsߴӨL=\UIxR֚6kQwYnE62x\rHqhG(K3uEm84b,qpkJ5`6%1ij\DDDvohjW.wdw/o~@C&p%Nrc0^oʹPݐ(4}~d-i]7*:CV7@ś\jSѣ*7n>}_3?9B8~b\THTB3VŘJ:?{=Wݿ),3TՐ~rs{mny{Yϧ;TOzF-MŖ]$q)>W*k1qGi.6a{{75Uu]ade݌"7HJzcө:ICVde; XɭoS臝sjŦG G)E/H
é%/SC|E92MSG|ڥDc>̼lB[-B,)<⦴LIF搢3 ڨ;Sfg-ۧ_Bv9cVLTWRqUk7G/zٓ<g*ٸeEbD4fc.6zHqQR52gLQk0{fa~WVi\Zgc>"r	;f,[,߿)	09?ޅ~gWٸ}ao'XIؑuqPwF	=uE<nU4h>jC2&62&򊼔(זax3Ds݌4+@%6HO3vtN5I4W0g20U</	d;ӯD]:a{p
X(]Ӫ}uhnl/םpoVMju%DV[J&8hyμDs:RӪ{EVY_ڹu1U$
 Y6,ܯglj5XH 'LfJI-ʛ[n*}SL?=JCt"p- 8sJH 0[͒[` >+ڶ	ML%=stt>>iΚH+<g'Ma`c3;8}ukՏ{gN>'.CX=^Tc ΒT`új5kFGfmaE\BʚE5O,yQ@`u0}e[_H>z~]j٪;c]LVp"33놔!%)GI 7	7(~d&ޘ@6yxmfjl햆,@D+T<<]䒔nnˌCv{گWkuqVK$bTU. rQ2|).Ŕ1nbcFoÃE@/׿o߾LQIVoUZU[EZƢ' ra`"0krS"ؽ8c|4Ś!#+DEeԍjT_4z[yrI9<lʈ4.x]犏w[OJu\NãDÃ|J>n;W)D+ecM m^klyD pZƤgzM$7n{qbUU0aZI\cF=ZeWع_<SYU.؊w~=P۟!Zي .eu!D$E^MԔ(Uhu\(Y҈vj{/7$d
5#Vk\!od2jr-11 
I%߫q賘):)Sv:,HU9bkPL#kWEK* f!f"_fME?f%էiK~vvjNy΂,4u)j4/"~:֦0('bjcЦZm3j5QGYU%Ed(S5 C#2҇GZ=g9xT>A4'TMv[[-cZGUaSt4O`:"*6M7[[aݟeܧW[ٝ6s)E ,̦Aqɱ}7?D#<Fa<1d!"jF' Z.uڌ?;oq۵p8A
frԹ2^Y9%/Z8sw{p#;0ԾtdNRIe2QGô.&x
oV,AU.ݤIWscFջJr6.tY8S1\Bfs4\.ɟJ5(/"Q]RVTG؇󦣁it$DHp$UνwO.=CN4Մ*aL[ݥ>$T0@0*Tdt0%YBJXYg"7L ȝG40stPq$(c}h~0`/q+jVI45ђ]76uʪuzņnQTҔ^ה;yg:/Viz1Jp9J\e=GrEof?=LwM)^>wGʗ-Y/*	_V:aEհӖg/ HM4+Rn'@H$ęeX9QX?+!uxߓ>o}&+ݺ[/{x_rJљڏi,EJ$_\5?{ǟGLEEq^RY #:iTWD$L1zMYԹSZ""s&sF)Gٹ2H~,	h&{C#Y2JÏ,5mo֖IDchr%Di/?O.WYcI6lhnzD2ѩ$GdI7Ld75R%7( _.d6y
^J6GuA=1Nj\͡V@(Vc>]8hNCGe\(*Zdj<NafsfT6p8Ϧ*Ė35\|;M'lvFoC9cKF5 a
:S:af+в?l촙N%T_·ycr=%W;Uᅃȑ8!8sҸc8j;TChpL)ǔ=/NWݽ]nuJW'oHL&MzTJjQЫ9ux_S	?mSMv0}t7}	'+͎UAdu\LTJiihpsM;a?ZVW4JҶɌɊ*oˣ 1@cV?|-&M=_)_V\13hY)@sIYKzsCS.)`Wcd,k}̞~jU'62W&#תQ6>\Ոe6\X	*sv㦦~qὴD\fJVxg+MDJz1eBVѰhνH?`4#y{$d9RqL4[˦;,)+PYnh`؏*d4c HxY\&Øu9ֲz?@v'Ʌ6!+2d1BD,.7d+x.v.xn.g{M"W%\Ld8#i.i`1'ɭò?{jФm$#v^8`5;fCdEz4Q&Ր<[U6hRn8#
ɛdՃ4t'vkٝ&g׆UL%=@&1S'H8Ol4_	vch@C=4%ĭh%=wl*$|e$Y{3AP{-/3.Zf̄Ц[f$tWJeTIH&;W#y{NGg^#Gt+Wwv70\Dk®,czcza=GvDEDȌ8H):6U6ܡE1C5uelB
Ȣnv"uptTOZ+c
OnI'ϪBbUH& (QoDxr|2Eh=;h0#<ۭѰ!+'$q>yHsJ2MP,2yGf70U+믜y@rK/?綢 Hj;ؿTAbWC54!H2M©Te.{Z.TqsSI3]KsM1\|"aUEM2@l`llިKuiUDQTT[[)Zk}1릮_g3˯#w<0c'[㺫R GK:˓k=ŒHS5jX_{a-VJ]XVR1,/rnO>pXW%~x#8&t|?٫_獟-?pw{'6ɂԔ+D$!'5zSW0Wz'Ӹ`M=Ջ
|Q|3RWwǹBR7(q?'$Q`&JdǭNËD3G7oܸ{\
qGvwҍ]CG7qO6g7?BV?}\!]fu/ͪ 4FZL
,(=~Wjͼy6X71rw\lש=g¿\5[ae$nsCZ/LfVlJp#g앏	1;}׿0]ޓj!ak+C3D2R1>s RՀuY-(	U(ђYC1i
?4c{8Bt&Rx5h@b՚<ԮSO?
{}򩏟[خ7_>:OzƔ-;9j..*[BM,bS 4NCp&UJa,x^c$+fAF9ϺM#$X,rD\Ldz>煬BSI9Kd#k&TRmFnܥۻ9FYWáR]PbBfEBhSm^~mLxBR<!uaHgA%GR#:|}" qO#qίr Y7孀0 _q4cf~hl;`#xmq*13ZjVCZ3s9>IBk]ez3ɺ8}ه>MS+=}?֍|9<S;ߛk	iY|NF8%h%ֵ^pW|t})`$Y8i'FbqcPuI֕0FLiTW'%UC%e!=3^0z@~;CژqqJx_b[S5ÿPqm4XM(%A癡ά-w;A)trv?}~K@o> ae~Ӗgwnaݲ7_l&X1ģRFۺ}l7fdln}l2'M=.HY1.Rv['DI!5ZCb$]4+LfaY ٽNL?>EWg̓O?O?~'h*ئ85'iUXDݍ^o{Ij~GgOys߿r×}I~2M72P|k3Ŧ
8@+/U@3iD)QrRڕMUOHrLo|߶ۏEjoA8~;{kwKίrFzR	%efކ8"PVɭj_{O?WG=e2*\
ʳ4~`I0AQ!9MR<ϲ->p+/|/cf Y9<<8\l'5Q7,MQ.ڒSqU^IЬDZևC^vm¡mÅsT渮&<ёxdw^	MmRGcXpxR"EJ	z"<Qön㊳RŦR>jf>??Ɨy+ܕSNYqBXulxwO4#݋,kZA̳nTzT%Z!'&vp1zKYyr#XRyk5O<ѧ?̟yIa^)&j&"" )xQVgI܏Y&F8kਵL,:L[tҠƚK`sqcbdᳺǃkNḵf"np]ξO=Y[vyaЫؚώ˚B,1_IFfJځf6fVgsOipZ,K@]Z _!tRfW8;7QT2~ZW<+9֤k̰lH s*H[2$jG(b^}a94޺v	)$'M ӈt[c>VS캄ܘl[gE?-8V4|[+H[\4hVkjh^X=сXH}$u"Kt8RAc
A-	Sj?6[Mek=%p ,^c@LvZ0g# %k>6k3! #mW~=ys9̕RހHE{cE
`2C`V[P0Yv0nSO?~q֢]WS$uvBrv>𝰟HzbV-^nEk=f	B6Lq\Fm	)O\gT7m-i@ĸ&Y.b8	RjEMxH701lsW;J FffWdbd3*5r ܯQ9||ݻz _Z^}fx7_%=ZW|x[̸qB7tas?3A 2O&x[̸qBH7Ou&i8-}6yg %(Mx8qBH=;*l't& bVx8qBH=;*l't& b*x Z`տy rk	n)x8qBϡ}9!Vzi~ vxSVpIMK,)QL/JMQHI-/HI//..HLNի Ox}ˊ@E~ESuZH#($.f%!]jcJ;dblsnکL1L>Ơ*6N1hi2j6CW!˿Co2xSHJEW&[z?ygC^RyBȎG6b8Zsb=bP2
KX:؀fm.`pɮ:ocEչ[_ZպxK@6EPZkMCF~~b-s/JFZ9`΀N*{apw%$qUP4_rq@H$E2H{d-7kgݧ1Rilf9VNtخb&4T9UA_rE-+\]%[)+ZϷ
xEͻ
1~b^`adNA"f&$aѷ7lw8p\!AϧblzcAXҘTX*.&5?CJ-Sfl|o!D!T3ͯ^ֿ 66A`x8qBȿ\oA5zry =TxƸqB`hԿSfV
a8U 
x* "100644 udmf.h Ê	;ΙpY"O<x* "100644 udmf.h q鍯O5Є"_.vxƸQD4%7M/A\gLg7	:~bىJS !1,xƸQD4%7M/!25_^^ eP{w fcxƸQD4%7M/!{]z:\1c{D) ._	x* "100644 udmf.h 2xU&"A ]xƸQD4%7M/A#]y~o^R6NT rxƸQD4%7M/"kՖ9,lnJͭ<Qi
 ^xƸQD4%7M/M΁O/{xm_~D) 7sU^xƸQD4%7M/!vW'FxKhѾ:Qi
 7xƸQD4%7M/Ipͷ6}(CJS C+xƸQD4%7M/"^𮟍;	,p -7x* "100644 udmf.h .qKͳL턑"I @x+-(lgnxy\rv }x8qBH=;*l't& bLx[ƸqBH|G*R':Rd;e Nax[ƸqBڥOM9/`>3Z 9x[ƸqB=^=4cUm5u̅g;x[ƸqH]ә7Ok4{8| "g<x\ $100644 BUILD.gn :9իŕuu$Qb@):̾`tQgփ͗"Ļq+Y*6)x, $100644 BUILD.gn :9իŕuu$Ifx6 ub@):̾`tQgփ͗"Ļq+?.xk`j`F$jev3Ҕ犰)y C
Xxk`j`(ypIxrnk+%nwg|bi7 xk`j`((=D3.=1pýU'v )2xk`j`(<Dˡs/X \_xk`j`(VXUgؾ;'X $`xk`j`(2?'./~7k[W|Ʋfbi7 9xJ a@kՋ:(P5}Z+c100644 oh_window_comm.h F:%bA!ޮ)̷Nő_(LxJ a@R:~Ѫ`(!100644 oh_window_comm.h iPʱ+nd}5_ox3 :ǳ0\G9<Nކtq@c7_m3xZ :;S[#3100644 oh_window.h GƋ=hh`uww"͐%GWw#8°LG)xZ :;ǳ0\G9<100644 oh_window.h GƋ=hh`uw:H;0MLt]Ỉu(J	xZ :;%mz9٠x"F3"100644 oh_window.h GƋ=hh`uw
Eqa)xIE#(Z;xJ a@oJ~ ه!BX<N100644 oh_window_comm.h iPʱ+nd}5_BYxk`j``%ҽƽwFO [cxJ a@a4J7`100644 oh_window_comm.h F:%bA!ޮ)̷Nő_K jYxk`j`+uafi6Nf~Rk:ą ^Sxk`j`+]`}\P-*NXdux +xk`j`(<:5ژk5;pn *xk`j`(wul8J^M<󿉥 ЏTxk`j`(;&XMnX8!zFIq ~xk`j`(2wMig-kwx܉ 
~xk`j`(:[x=Ȼ5 ~xk`j`(AnBvɎCE_g^o? nD~xk`j`(U'K˄ChG7K<\x3 aCMɪ;1	2uw:H;0MLt]Ỉud1Bxk`j`(bR+@9ʃ%FNw[n xk`j``%R]Ӛl5>l{XZZd>o rwCxk`j`F{m?ϖl*sH^i? . gkxZ :;+7|Gߓ3˴>weۄg100644 oh_window.h y?umRnRP2nuww"͐%GWw#8°Lx&-Tx3 :vQә1X)06)NfY=b6Ui99+x2 ;DLp'.:n	̖ˑNg*:ZK.zol6)clx3 :¤6P103eSmNUKњLoѹ]x?mh.xk`j``%r55N$}& Yxk`j`F$xgyE"^Nc Vxk`j`FdS2m,R廞%< (x3 :)3d6K{hUN:H;0MLt]ỈuJnixE :;֏FҢʦ100644 oh_window.h GƋ=hh`uU Qxk`j``%OZzpvz& |xk`j`F ŪpͿ|\qfl6 7xk`j``%Rl\ ń:Ⴏ3F	 +x3 :#d-\aҝsHeMNhN(=D2ʜFwdJ+0Axk`j``%aǗŦ56w-;o Ɏ*xk`j``%~6`Ϧ|ūil22o TxA $100644 BUILD.gn ܥ 2["YtZ$A1
{搋cٖOxA $100644 BUILD.gn CC+M`.W$\i |+	SM[xk`j`+dJnSV<P7qȮ{ܒ<<sB.xk`j`Fĥq\JoT3Z.0a Vx -+=^η[xR j0YT\WRRddKM	{%d:ƻ88d&<:k!А(k{T32SH0ݘ(7&f- abBOIuI-LN,Y *'u'x{<u}ƉiLF*q{&槤NJ y9%)%J\
@P Wklx{<i#3W, xi4FU%}3\sRsSJsS+ 'iIx˔9!+ s1x8qBH{낗UO5_bˣɳ^x8qBHvL_Qٺ[:e m-x b!^NBDzv-,x8qBYLfjvíS .
Sx8qBHTgNiٕAaI9ܛ~Α 
bNx8qBJ[]ԒZWf_5 \x[øqBy7Mc 2	x V'튍luD`۳.ʼjB޳8x[øqBHy&V^8u_vጲ{ $ex[øqBHIy}ݏ.qm. x[øqBL&FOyd^.11	 ?x[øqBFܯ[J;h͎i1\cުYN x[øqBHI5^Ui7/891	 x[øqBŷ[#+u	i|`LhYN ^x VMsc%?K,!VjB֬ xqHĕ)K(4PbF RMxqBH"ׯ8p/'s&= ң)ZxqBH"ׯ8p/'s&= ң)WxqM\=69b">Q  
*xqHcJ]zR~5D x 9\>kjphįc씑MY61x8qȻ̌w흥۰Xƛ ǾHyxffP.r.rw{=Δ]x^2 ^
x[ϸqlr5!LϿ
|c1}&| E4x[ϸq`yURZL˖j  ax[ϸqHƩDLTjp4? HZx ;WԱtcO`Ӹx[ϸqȢׅZ?L|]LP`u x[ϸqT՝쥇tSɶt` (pxkblb'99fݥ*O랭u_t *xkblb'r[]qNf<\1jfB zYx3 }O>8r[ىڑ9(w`?s Ҩ"sx-Rڲ+kv]_:s N(x-~ڵ]=gau Z%x-} E	Ӳi >Vx̜*Rz2/RP!؄I {z}x̜*2iy]O>?> %x̜*GpIJ<fV3>n	 Mx̜*^>{^Lg 7x!f3^;6] W8x[ʸqDhŕ,)sz *x[ʸqBHKn?_4+rnb6 )*x[ʸqBJ{2[/wIIX C*x[ʸqD>}ig5''x[ʸqD+SWk]sc6>ү.^'}'x[ʸqDd6Ly`r* d'x[ʸqD;+[M#s~9 E'x[ʸqD]26;gB 'x[ʸqD:ԥrx $'x[ʸqD-ўڥ?%J59'T}^ 'x[ʸqD
nn\2? m	x Z`տy rk	n)!x"ҿ.uZwGyvVSgN 
1Ex̘6W24!nLG1 OtHx[ƸqB;#^*x`ab6 BMx8qBRL<Ç9͏x_m 
wx8qBw8{лPazwF 5!x8qBHX䑛gNMӼ /x8qBHGZJ+_ܕrY ~	x8qB={?l˞4с9 x8qB={?l˞4с9.x Z`տy rk	n)]x8qB={?l˞4с9xR ԼĒb%+hX$5/95D79'4E/9?%3/]79 3'D	. `_5Dx8qBx^U(
JϩVk- 	%x8qBȖ}VYv7mx[醕۸^ /Ox8qBȆ9mS<`Ph?Q ,Tx8qBȊT})&GxS x ZN(q\ڠW~_n)/x8qBȷj,7>f k?^x8qDоBނǕ5 FwZx ZN(q\ڠW~_n)*x8qBHPR;7<=+e 5Wx8qBȵ9j	>wRa߬Nx8qB{3mN뷕/0L 6cx8qBȷj,7>f k?x8qBH{P܋yVZ5s<M wx"2!Sk)%1v:EM8]	 ':x+(#²}᚝d)+ |4x+(#²}᚝d)+ |x3 5i#׻;V'LWQI1tvy[,l8OU]x8qBH(WD,Y9#xIQ×2 x8qBz|6ν$ S|:x8qB[eq4NE 0*x8qBHERW4L 
Qx8qBmRn;$y> Nx8qB)yZUN 
Nx8qBH±%)zQ3p@/!~ 'x8qBԾ#Gg:Ocv
 	iNx8qBfZ˟[F*sU y
'x8qBk?wI:[nvHiQn 'x8qBJ?NHj㱸и w
Nx lT%]}wx8qBHN
Cr4 9wx8qBR|Bpk\B: lwx8qBﯛҟ'4ןOǛO fJux8qBȦ?ۥeҪ)-[> 2qKx;vmteE/fV-ᤩ#:99 CzxR *fNG7fCECE"ޠ벬 A\CE"C԰/U4vhG%cx9 c{ӊ\O	za窑7ŀ _ЈOʞkvJO*xQ ,y_hW]QgLc{ӊ\O	za窑7ŀ]MiP6)?O-Xh#
x  H9`|<7D:u\P9xF $100644 BUILD.gn 	H$=r6CkHmF$$D[0;(<}gQ\UJx9 H"oԡ4\E9m%k*u\Clԫi1)=O"ꓳxVx;vmœ9.~}cG/-:2CR6ϗ{$xcYq3qC#NmF~=QB^bIfYj|zjqIiQ^_lq(Ig#]xUT#sť%WDN8!٩ey%@c͎/}yh%ݞQ۫QU姀;v=O92cM| L")9;ªOe{=L[yDtɛjD=E//*K۔v  @qx;vMD)E/=AC<T9wfuۨ" NE+xK @9׫ s Cia100644 native_animate.h EQƫTk(t'OjlD9"x;vmH[UNp'eyᚇO 2x;vmHk(TݿX1#1Lu_x9 c{ӊ\O	za窑7ŀFN0RNs
ertYOXk}x;vmGFVQJY\99Y+x;vmHo/oH/f]Ϩc_ hWx;vMD)E/=AC<T9wfuۨ" NEx;vm;Ӫ2no[EPLL u(>x   _ЈOʞkvJg%px uQ .<wU2o0Sx8 iC	_vSNU]@ If}밦ux;vmȚ);7|ް)`cO`1Lsx;vmȚ);7|ް)`cO`1L,xM ϛ:utP4$qӏ9y% xxZL\5a p9py? Wx;vmH~KJ/k**EILaz Sx8 mTNUg+6CPБo,b*.D.4Ox;vmȚ);7|ް)`cO`1Ltx4 7"%OT_xxJ&􁱫])m	Yo0hix  
KӃn4Ex  H8搤%gD_l%\K/x;vmtkx.
Q:53 Zx8 0cͥz:Tum3.*= @#yjtP,Ɂ x8 ,=3'VLAoK77YrELv?.gx9 S@976X<gMat19*>-OjRq3/x  HA(\H^xP ;vX< _s钛=gOH榔Ь\s2/.MUh7\(U'xQ O	a=jL9WDkvC=lљM{2/M6HhkfB/O_ߓoC%nxQ ~F$̯x8CjAʑCo c1diM_56(?Y%NxF $100644 BUILD.gn sZgU9$$E"ޠ벬 A\xx;vm_￭`2eZtm<1L+-xP ;vX< _s钛=gOH+U>d43N/8TN
P1mEz$^x9 } 741tmU=鱫t19*>-OjRq3,x;vmȟ2&k럾46}N>һMvz~wf&&
y%ey%zﯻ^xludFKu_&^wqG.׾?`wg*D5</?d_￭`2eZtm<1L"C]Zsi `^]x8 &%?:a
՞@oK77YrELv?.Cx `I bAT6rl9HC,y_hW]QgLF(kYO!cl(\C]@ If}밦|$-v̸|qcIl6wX8Qx;vmH/v+v6s{rs ~x;vmHO'1oX:e U+x;vmj'?CjP냋G &XxM \όFєk[~!`QAI\ޘLifgse6(4x;vmȑ	eU6om5km& `xM '|ɟ'̥˱QЭy T0bAv\$-v̸|qcIl6w9&<xM 92ܺD#3ёCqTA3t6-jթOJ=\{ed?*4!xf b%{dTu8}\=C'̜Mÿ9]f`)LurKD{p|jթOJ=\{ed?*1Jx;vmtuz&JXsrs wxM 3Bl]F>Q!qӏ9y% xxZL\5a p9py\x;vmȑ	eU6om5km& x;vm;Ӫ2no[EPLL u(xQ a2J	qx̱ve3Ad}lQ(\CJjAz2
GY%S.jE$gx n&>ԪN y졥C]Bo2A(3?2F(kYO!cl(\CJjAz2
GY%S.j|$-v̸|qcIl6w9 x4 uI'\;|Bܱ<E/&+0&>՘:75cx;vm;G,^Iz{wLL ~x .+CrJ4C,y_hW]QgLFFUgkld_P\C'։LRa*Ũ<p|7I{#ӢpU"4V:~x;vm;G,^Iz{wLL ox4 htY?g#}SvI+@ڿ<E/&+0&>՘:o2x;vm>TăqWuг0 ~I[x;vmQ,7*x3jG٭{Z'GvM|hmfB^bIfYj|b^fnbI^ÔL哾ɒ8=mHW	ڔĜtoS"ǄO_94=HdcSGjif/_-Y3Y
OiM.ej,&29.쾧>;Eӓۖe?9Iv\s+OV)w[潬CI % ;7:.6lu_mjߓ73Ո07+0GpKt~
  
4xM 	<j֩U.f!ĵ[3c)Hs|C_pS!^;1$x ٓprϩ	"ΕCr
g*Wp6VFW_`oP0s[@B\CP1zZXx3[|ophS;C~%b:@x;vmC5;K(t8%1LKx;vm>H\u^2e4  tx;vm{WIe(aRY[s3̮1L;/mx;vm|&g]Wzl%mL x;vm{WIe(aRY[s3̮1L;/GxQ Өpr\47F8;z%;[5
ń Qo0$@)Kx |+({Y,DǛj'4O#J:.e?firQ*)GCNM\CU98-FNwN'|m`~=e~'j9]x;vm|&ϗYK8j/-s{f	 A
x8 	<j֩U.f!ĵ[3c)Hs#bQx  H$k_p5+˓?\ x  	^YʺM\A&Xdx;vm+ͻ>}=tS|
E\tF>m[^QB^bIfYj|b^fnbI^CkTx%F{|&ڔĜtWc/5$;w~U'4=Hd콍_f2H۬i/	<Y1L>Zu,Ug7 %'gߖb']tcqVC`ǌ6&kDr%u.:"%)aTS@v]|gsϯKBN[xtZ1L";b{^\m['of9,ǯ*{IRL #_4x;vm+ͻ>}=֒}g{)f&&
y%ey%z=OSŖh fdjS2sӁJ;\厽hfITal"	2̇K6Y m$d=0Oz"^hE\:VS[vӍFǭ[Lɂ%3ؚɕqg#x7QO=q͟}[.ZzbNt}I&g/շxbC؛НYκFĸs⇍M#+m+3g2q ]x 7g	,+ŽoaZVy?>j.J	7mFo)\CdHqs;n|6Pœ|4}mH;e$,:~x  ;fu*bxRwOH &-<Dn =*`C@eB'lC%apr1100644 native_gesture.h 92k)#..Nt:0値:>.eϘù
	$:f\Cb+D{k7֓|%q
 r^S["%W~b x% Ňc%?ؖ-K;.`T34x8 w;)N>׳
gC)P+>QO' |XZ<Xs{x <;fu*bxRwOHZRhWu%;&yC@eB'lC%apr1100644 native_gesture.h 92k)#.8_o^n^.6U\Cr$wYgjԛ>L|%q
 r^S["%UMx;vm+ͻ>}=꧱tsp-aYFf&&
y%ey%z=OSŖh fdjS2sӁJE:8ޚ(PP^'T%E s<fuMäC5e_2YKDi+?mXbeCfBǌ66&kDr%u.:"%)aT+S@߮=/YG5$|ir4¹]M0/Mm;5VhݥɛjD|-$|߹W. 5exQ /fcKrL;d-l[A4]\C'VUjG'Ix;vmHmNRw<j5]
{T -x  HumE>֒^(\[xT %CJ?&McTkKez_WblK .!F>
Hf\sO'Kx  Hvs}=(JzG\9x;vm܆&ɝ\3bO Wl>xV yEޏsbVv;.eTPF3ec&5\CX\bPY˹V޾zIÓ/;*jx  HumE>֒^(\x;vm;x1LAx;vmFm)v.O76n50=$;YQ|cF `;xf ~-d*LpZp"<fnrGr1ҒɫIn8*Y\CScs$xɶ+|"kؠ}aYe-ux;vm_F{^,wS1Ly!xK @cITWsZ'100644 native_animate.h MadFJtl6 {x ;fu*bxRwOHcE13|B.!)C?eB'lC%apr1100644 native_gesture.h 92k)-WG~,Tx+r.	.Nt:0値:>.e*q"fPZ<}IL]\Ct625b U?[$|CKRWNΝl}A'kEx9 HJ"jw5kN"	\C[){"vRxK @eF$eVҔ8ZЋ100644 native_animate.h MadFJtlu,xf )3u沀3~[*@&_tiݝ^|\CV>3P?sa|%q
 r^S["%!1R!x;vmHǖBl\MO{ݿ1L4x4 x/<	ܚ흀<M")+[GWˀ~Er<ix9 Hc|wss=ȘK^`ڃ6\C*Zksf7qsb1xz 4.i#AP,n`t=4m,FO"100644 native_node.h `9[&ޙx`0\C']j8NHI~.lB{2~:x;vm+ͻ>}=tS|
E\tF>m[^QB^bIfYj|b^fnbI^CkTx%F{|&ڔĜtWc/5$;w~U'4=Hd콍_f2H۬i/	=Y1\>Zu,Ug7LcS[vӍFǭ[Lɂ%3ؚɕqg#x7QOY}vAY?.	9-l5ѥk'09NQ,~zs'nFĸs⇍M#+m+3g2q !x9 r
g*Wp6VM~}os  4IR>lix7 ;sZu-UEQZOH(Za7/xQ 3aXpD*K*xH[Kc&jP4c^\CVhfguyέ20-GWZ!Gx8 )KdKh~|7]i;8 iHDK<}}
\u>xQ (XV>ZX840
:1u]Wޟ4\C
Yݥ22J8&nxQ ۱+rDl	땢ugx
6&^_Z3fy\CV>3P?sa)Nx;vm+ͻ>}=N0q8'"ڐsSN(%d'e&e0_<M[aԺoMLO*p;RIRmNs'Q}JSKJ$@ƸszQZwP=hvȁz]"R]nl66:nj`zH(!>1cNV3g˙,pn׹eӅKSk͸ZwifE7_z=	wn'9 dzfhx;vm+ͻ>}=oa_t%.lkLLK2R2sKR2Z{/Ë-@T0j7Qզd&v{$)6߹>T%E sMUMRe9V>;Mc9'⅏V]˥iM>,@	9E؉hW?lltܺ,X1cNV3g˙,pn׹eӅKSk͸ZwifE7_z=	wn'9 ;/x;vmj%fޝ&1L-x <;H*󃻋15\БOH@i$;>Uׂ^<oLT100644 native_animate.h ϣ%Ja0&21ZّCl )Od.*q"fPZ<}IL]\C κΦP7ue/*U~ғ|CKRWNΝl}17Y/QxQ D	W
 Ig)2CE(C XFF J|ח3El\Ab#1x8 v	<m~=uG 8'^~o92k)#. 'x= mEͯOu$[IOd>D+{屃32;05.`U5tsx9 HgRoaR`a\CV쇄-z?];xU B	̣D'AoZr'U..Od>D+{屃32;05.` Dx;vm;ѹNB9Ϊ&
7|i3# lLx9 NL^u@=ft_u2BtI7Z{38	x `և1!e!`oZr'U..VXL*~Xf{kL%.	Od>D+{屃32;05.e@h˘yD1%^wѓ\S; S=. dExf *=L47(Liύ5}@'LX\CgQiv+OPV|%q
 r^S["%.x }և1!e!`oZr'U..VXL*~Xf{kL%.J6#p?FА%\S; S=. 8u!xQ 9UZ2\ZȻcڜg֚fRi[\C]X;1FjUD'ax8 ?=&uVVSfYG	>aUEIRc\#HxP ;fu*bxRwOHڍ$W}#ɱt625b U?[$x '5xf [x[rTe%/>/\,ҽI\C"g
Qʶmz|h,Z[JU2ux;vmȵ4RζNLzVq/hk	*޺TR'm}>B^bIfYj|b^fnbI^ÔL哾ɒ8=mHW	ڔĜtRѹNB9Ϊ&
7|	UizjqIif;?Lj:G#QٚʓD+2ӆ%Vv;df/JO~hcov|SFs/4^jE^~
uYsn+kv'1L"3ﳹdj?EL4 /tx7 ; @|[&5$4gϕ7OH5*kX$Qtرxxj rlع{4g7uQ+otk'i <tT#.*.b-XgrL{\C?x uv^ӖaV2`yx  H@h˘yD1%^wѓ\&'xQ 
ssi£m|bÇKexK,.ѓ\CT{8i%\Nn`
'@xQ և1!e!`oZr'U..q κΦP7ue/*U~ғ$gxM /fcKrL;d-r9XފW[bK)q2lŘ\3~IYy<yhr	D!9x;vmU]M>fk[3ߑa( 'Mx9 HQ|H{p^էJ=5\C^5jUЉoȐTBVx;vmȌB[EBR~uJz׼ ZBx8 mEͯOu$[Iol )Od.Lihx;vmȵ4RζNLzVq/hk	Ro?%累(%d'e&e0Lt__>,S6zMLO*.zk@A{y'Pmˤߙ>}19Y1\;9:!{*k.4YQ|zFNJaml͎/}yh%ݞQ۫QOYՋ3/MNicE^Җpξ:{mk73ՈQ:wo1
EqTw U:x;vmȵ4RζNLzVq/hk	&K
g>KPY/˾m140031QK,,KOM,I`῾|7Ymi*AUT*:7I](YDO>*MO-.)-lyǗIM3}(c$*7[s.cAwustBTLז;\ti"zwOXi+2%3._\K=ͣWZq0߳͖[gM7@R1L",+c,<<r$&]0oL5"wT[ABQ\p?%՝ ߒqx;vmȵ4RζNLzVq/hk	no\]z]Vp(%d'e&e0Lt__>,S6zMLO*.zk@A{y'Pmˤߙ>}19Y1\;9:!{*k.4YQ|zFNJaSE0v=wއcEznŗH|2y3Sթs~POIu'; ф>@x;vm;ѹNB9Ϊ&
7|i3# lmx;vmCAwustBTLז;\tiSHxQ 'z=l'*Ƌ+ub?ΰL1?\CJ+ MGqq &Px <;sZu-UEQZOH
ЅJ^j\JL&|C@r
g*Wp6V100644 native_gesture.h aZVy?>j.<xckhBPWh5\C^}EYD|W̽?#	!O^"6[Yn"x  ;sZu-UEQZOHͼ%Xݸv7va GC@r
g*Wp6V100644 native_gesture.h 5A &PK+f6ꤩ\,,.Ňc%?ؖ-K;.eW_`oP0s[@B\C)(3<y7$\I+mn|ophS;C~%.bx <;sZu-UEQZOH@0^!岉NC@r
g*Wp6V100644 native_gesture.h aZVy?>j.?firQ*)GCNM\CU98-FNwN'|m`~=e~'j3YAbx9 H1\-,yQ~Q\CŗQ2XKw"`Vi6V*x <;sZu-UEQZOH
ЅJ^j\JL&|C@r
g*Wp6V100644 native_gesture.h aZVy?>j.@5{SXGb@'\C^}EYD|W̽?#	!O^"6yZ|x9 Hނ f$+s]h\CŗQ2XKw"`V"Dx;vme7ܐ=ߢra!<1LU3qxn 3aXpD*K*.Nt:0値:>.e8	{ة0_>Ǔ\CVhfguyέ20-GC0nxn +8bq"=T.Nt:0値:>.e)b&c|hX1瓃O\CH;kfemz]Y˔1kx;vm+ͻ>}=-5%gHfh340031QK,,KOM,I`h9x/DQ5#èuޜxYDgNBwDzKhLcѻ+~گ`OX퐙(!>1\I7=篋~HIJ?>~=fQvͷs7	_?9YDܮs˦ךq+L5"΋nzܫOrj}y gnx7 ;sZu-UEQZOH@y^A;|5#S3_x;vmMY3V;O\ѵƔors jsx! aZVy?>j._/x9 r
g*Wp6V^}EYD]@Gx;vmMY3V;O\ѵƔors jfx;vmHï}{ܔݯOx499 x1-x8 HJ	7mFo)\DdHqs;n|6PœFx4 ?N
E"ɱm`~=e~'jx  ;fu*bxRwOH$}Zڋ!ؑC@eB'lC%apr1100644 native_gesture.h 92k)#..Nt:0値:>.e)b&c|hX1瓃O\CH;kfemz]Y˔|<F5gVgm7x7 ;sZu-UEQZOH@y^A;|5#S3xf 뵨:ݞ͂X-G񱫝Ϙù
	$:f\Cb+D{k7֓|W̽?#	!O^"6/}x  HV
L)mp3^\A,x;vmtH{<3ϟLܷgB^bIfYj|b^fnbI^CkTx%F{|&kDr%u.:"%)aTCS@&ZHP)- ʦswcEKx~-52MbV7gfGw/ ʹCzs: Hunx8 ʐ3g;NJ;y}ЙFe~й5xU ֵ񃲫XDH=Vȱ'4O#J:.r$wYgjԛ>L.*d	x hzx?ۗSF'4O#J:.<=4m,FO"100644 native_node.h 3< ~Gp\C<iSP"M\p;<N<e
x  H'͠{^̆ڱA\)Vqx };fu*bxRwOHV&AWZۆo92k)#.;4vy 8':Q\C.r3QzB-V'&&:xM Qk#̺%ol )Od.R%zVU0neIG$7wx };fu*bxRwOHcE13|B.!)o92k)#.twdvK\2 pee\Clh}wA3@ɝr8x4 +T6EgN\7Ŀ:qòk@мKxQ P!/,A$K?OEEO:TΓ\CGg	s16Nh?(rxj 	<j֩U.fC	^YʺM\FW_`oP0s[@B\C!ĵ[3c)Hs#f2Uyx  H$k_p5+˓?\\xQ >#Zĳ:BZ64걫F8;z%;[5
>HGv@+oO3ד^%4`x4 uͥpt>lHȰp*$1*"x;vmœ9.~}cG/-:2ѿ$ݝbBm]3mr}8LLK2RS2s2wxzfJ;qx2JSKJRjDgCIO>9Td="
i,.}/r$r/'29r?sgJ&>`rmC*Nz?%ڒi[x4w5HyoR]`f;^8gn7OuW 3!x;vmt 1΢}ޡ/t('3 љix;vm:=Wؚ铵> FxUnF+t2,/\."4˩bE]vwiY)}d%m] ;of̼йk7HNޞxz5S0P	}tt@p`ْ=%Y	>gdSv3"l\G+!"uLď­h&.5C!iQo7}8: V><_SNO%fWcN.m!?;bCB/krtڛhl=સ֞qqiBfo5dAyriKٜf~9ĸݾxKwg77gW9]vv}_6T	?^2rjܜԻ6QSyٺ5S[C-	 z%5feY֌pq3MښpT9 umm,ԃT4UxjA}RCkD$([ޫ%k23	ؿd=Ui<X.Y19eXWrѳtM==o? v4fߌ3<Hle EM+PifJٞX%"*44$?Vd"qW,ޕR"Prvҗ	)
!xm1_%4I>RU[}ǃud7js\!,)Q;+YZ6M{WZ;^	$dizy<kiTEnӒTEE,j_VS0K.)TBDy
.T/Rjtp}κWl}cH*j_(jƣ;s]ØMnj٧|C齅Vσ&4$ ,%0MEz ۡrl	eCj5[Q'e2[*tUe剸??ˈ)g*9_,to(jԗa"Eow0l"#~c)!ui7 x,a{bQvif|CL2RSR522R:)Ey))EzJ:\
`(OLIOI-N.,(/,̞X
bd&䧃SKJm94obrrjqqfRfNfI%L5-?lDvje|jd?f1~N#>/ 3,,HEvXqIeNjJ|qIQf^:пy%W  wnUwx,8k:&Ģɇ.e&k('e2b3dR&1Me,̒
bpy DIeA^(+(-\ļ Ն%Qex,xk:&Ģɇ.e&k('e2b3dR2s'23MccOO-.)-J	Me,y)`N#>/ ē(,HPR %y%W  ,	ex,xk:&Ģɇ.e&k('e2b3d2sKR'2d&䧃LeSKJm9A4K^~
XĈK,$J*R2t@	h{f^Ai" &30mx,k:&Ģɇ.e&k('e2b3dR2s'23Mcl	姤 F|^bA&'QRYå J@[2
JK&1  (gdx,8c UVxkY%kBqeqIjn|rbAbRfNfIR0X.X	%JsrHMLI-*VX]RR_O,eʰHBy%e)9p]M,R0M,20f+E	ƼPE\ł XVqkK*sRSK2&U\KNկH-K+џɬΏ.T x}l>xkǽa, !mlxukf3MF .x;kfᔢĤ̂Ɏ,_30 50x{k6ʜԔ⒢̼ɫX  
%x5{sfļ%w3 ;
|'x}{Cdf.̤̜̒X7O`` Rx˱a{bQvif|CL N{b xù/#51%XC)(4s&#0Y)l#dfN=%.0PK,,KOI"\RY:9y '^Uxs3Rif|f^AiTfɡ, C	E?xxQD)E/=aCz,+2G4r<>YiF Fh;xxqAjAQJF%v_"t`m 'xxqH9--\YtBOyDv U
x b0	kٵzvі9x8qBHofuJ'WT3 
LVx" cv$s ~x"2C߭wl,8 WPx"w^h'۱vlU.8v g
x[̸qBOTMg	:S5
m idx 2FU&:Xѝ<UFdf/x[ŸqBț/Gvl\G;*x[ŸqȎ5Z_+~r&ߛR ͯx$ =g1zQ"Q5.(Sx2e-]KHe):92O>9tZ. {x8 (sTZ%m80	#űK*m<)gBGFM/䶓QOx2e-1foTU#-?MKh:y-c +kx2eC䵌] Rx  =g1zQ"Q5Kx2e-N^;{d[u{@Fk 9~x= =>.Y#N~++Q5-؊@{p{<dI`Lx$ =".״&5W0GQ5 ,cx2e-%S%,rcZf49q? x2e-!knW|@ Uxβe-ȋwaٛDjo1Ilr 3 Ңxβe-H˳Vsab{6ս5@g !cfx  =#`.Zڲ/Q7x  =Rew{nЦLÓQQDx2e-=d>'&)r;1{hNd U
x  =eН81#QNqxS &Dj>5;Vp2I!{0vodT/nQ+l)8>!~3)djSxyF3 
hxyD,oW3ڴ0h=dቇE2~!yTɭl36D?kS偉(%dƗW%3ݘ{مهf
~K)ЊDQV_ΰ`őS^.w8/qgzUIFx" &D0vodT/nQ@x  =B~P'MSJӓQox ~(Mrm+nS}<roԜ_}< (8.Ñ{ j"?T(X	Q;v=i[ [V9k\pD;8JD	G%[!Jw9x  d[q'pqD\3 =xy^F>Ov'Dmꠈ䋌 mjxyCHmftWgax-c
<X  Zx  >բB7;	I 1xyTF)S볺8w]Ӹq5䕌 xy<HD}gH_u|dc 5xyCSv)vݮ:wT?M tbxyCMJKy߶brc "SxyCHe+/?|=oM R<x  n2ڨ"zWeIp	kxyCHݱϱgf6Ej<VJGurc x  8JD	G%[!/x8 ʌI^$~g۝n,#)ҳy+qf"vF)!uxy^FO4T|Aug䋌 )Axy<HڝW}YΩƌ+Xnx  V* =g3ux  z%37x  ؊@{p{<dIfx  tKّ3ܽ" OYѓ38x9  j"?T(X	3b؊@{p{<dI~]x9 xn>}O3b؊@{p{<dI	h%x9 e%B!tGga3b؊@{p{<dISmx= [)><6j7_jbfence ϑ)!Ӕ}Yv'`3[Q	9xyw-xh=&.T㙐3;逶mpό'3Z'fpT61,'ݨ K2Rˊ+eg[<3/%ws؍f-?#Ga	]xyw-xh=&.T㙐3;逶mpό'3Z'fpT61,'ݨ K2Rˊ+M}R6MJ{[*̼rC-b76eҏ'_dT Ip	xyw-xh=&.7|\ܠ4sṼd,lh|rRg|г8w7 PK,,K/+KfX7Iٔ{.7+Ro(3R~79xjm޲sK?r|Q Jpxy<ȽT5'r2~MHƌx  "(lKU3~nx! &4 V<
*^2p00x (h,^)GG<G-x (&:y7A
v<]-x2e߲ܦY_RgO|F+ ˮ|	xyw-xh=&.f'w?RtAdcFU]2\l!eg&@XY_V\||řOidRwEYyf^J~9úK.S4eg+=*t{/2* lI^	8xyw-xh=&.1:u[n۳"4O6fN[5/%rXF	}Vmb 
y%eeŕy>)rWcS
{_=-EYyf^J~9úK.S4eg+=*t{/2* HJxy<.;b/GZ'K2٘q? >wxyTFci9/tFXVdaxsJFO Zx  G2ծ<p$][7xy<9׷~P9$H0lƌ5xy<sU	k"?,]Vqkƌcbx  x
L/pi[36xR ;쯐?TL>q5[B3;ɖ3/q<\.9#;T΢33j=nΥǓ!cN'2x2eC֔?JKa ;ƖM--x  nc @ޥh&Fy@.x" >5;Vp2I!ēH	FxyoW3ڴ0h=d5"~V\X^>$?l36D?kS偉(%dƗW%3ݘ{مهf
~K)ЊDQV_ΰO>Uڟm"UG3ix  7ǚHW̩qē3u>Rx9 1H4@\S3@_I q!SׁVYjȓ!Hx9 B4fbm"yMU38JD	G%[!>zGxy<wxeLoqH]=|1~ 8sxy<b9yb5w~}bdc >+x  T2x
n"P}3w|Exy<"(GsKxFjޜl̸ rxy<F۟f\HywEƌ)Exy<rwƝ#`CƌLx  cņ&5^3m$͓3/x  '=O}?Tvϯ3]x9 A/cW?#%3bvDO3" eI?ux 9GxE~N-x9 nE6R\'b]ϓ;z
 X!-N!txy<y?MWH\"-=iםƌq x  W6, jJ3![xy<UKJ-,aTƌ,7,x  ֑J=+23n.xy<8LWʹ\kT;dc  ,x  1(ZDj:3WV.xy<H//oeݟVaƌ,x  U-]0&3.xy<nuCYp6>/Y~1~ ԲZxR /CϞ&o^83;E6R\'b]ϓ;z
 X!-N!#x9 nE6R\'b]ϓ;z
 X!-N!Hx  Rؑkau;(*YIE.Vxi vDqPÑ{7ǚHW̩qē3;ɖ3/q<\.9#;Te:{N((I
!!k440Nxy<t}XƤdpl1~ M8{xy<ȎsRn2XVW1U?]{udc {Rx  %?_rİ!Y/x  ˯y6ԎuvO ͼ!:.x  ɾ 5ο0X[|ВMr!a[ex  +B zIt|83(	/xyܚ-qךڷͣ'.Yrm~)olv/b}dcF2FZf<py`b 
y%eeŕyA7&~^va{J5"Qg3諆轚U7Owf䋌 I7Sx  Rؑkau;(*YIE.x  E:az8Vf.qTՓ!hxyoW3ڴ0h=dK.x7 oԜ_}< (8.Ñ{1A2ݤ|la3txy<ș[st.^aZF>换dc S!x  B #8,27~ѓ3GPx  1A2ݤ|la3}x  }VӦ=~I! xy<$/s?\*۱س>}dc D-xy<H߷3-Ͻ!dc Yxy<H!k$8XUx.+бƌ/?xy<ةXo?UDaƌ><x  E:az8Vf.qTՓ!hkxP %m|n.ܸu+7[JP:D;`1aͦXGZI)!B&SxP %m|n.ܸu+7[v=i[ [V9k\pD;2rCϬ=
!/%_x  ֟_(ڌE\3lx9 nv=i[ [V9k\pD;T!~QQ7e!tcx  AyTC=WԽ)̓3X/xy<H_͟x;-Z[j1~ x  Q2|.73lHx  a*IZ'㴏s3wx  ,T}|qs:ٹ35&xy<7,yD>;u1~ ޢSxy<HSn̵~Zl}Xm1~  xy<s-,['jdk@ۣƌ(x2eH١)J;+6WϾx[ϸqlEkByMbٿ= vs2x3 ;vF$	if:Z-OLMm>FuiaҲIi(&vx[ϸqlb;,J>-|^e  x3 ;JZar\Aw 0OL)o<a`	*n~\x[ϸqlr:\Z-~9	 x ʳV"Qncy)cx[ϸql)	LR#wYR^ Ohx[ϸqlr5!LϿ
|c1}&| Efx ~R:eگbx3 ;X }bUWG(tfOLIj/:xbHX tf|lx[ϸqlQvK;X)xig# 9'x[ϸqgNspG1 #xkblb'J_]:I}e+0 .Mxkblb'R/d?؝ǶfDj+9o 3wxkblb'r۷;7$]0ga7 gNWx{qBc[k<?P执kR"{x3 hTzssj[ȴ6X|Q8~<Ǔ LGHx3 h]͏"9EխB|Q7]>J/5dƨ%5<ex3 h98Yڦ6T꽑|Q8~<Ǔ LGPxD $100644 BUILD.gn g!	ܿ}-$t6O|t6gfD:>5e]x3 h_,{TP;|Q@Nxn3a0)X-/`gxK a~9"5	u6ӻ~Q2Ju@}TJg;a_g U'Cx3 ln1Ap'l-':3nr`Z x3 ՌC#Y\ꑿw>r
{αKE&Pbx6 a%.n}XcEhu6/S0E-U3v9Z,'x6 a᯺
5	BMܿ"u6/S0E-U3v9Z,Elx u*CG&Ƕ,Z7x aL=O/ZqzO@uv'-x 'Ԯ*ɲvh8AIʷ~x6 DN'h%!H<&̜$1yl҂C27? YEx! wd]{귝`;U1$JwxxqBJ5&yvN7e;9_N4mbHӉo<8M/pHNySf_qCc%e (:Zx6 YF_Ll~=uy1RX{H1W!x6 c<D6>˘/1h0elKnmwJhxT S'@jZ6$1ZɏtT1%ڷY=B)[v+	Ox! />ްƬu`aXP1$(xxqBH^K0}/OVySDCU ^xxq~n7$->KV V'x$ S4nuޔ+Q	1S6[xxqBn<̉oꎳۜ};Pxz f1x! {\<C51$']|xxqBh.ĻsNzݼ zDC&6pdo;ͣ+;B
W_) 
t!w0eVn74&_Z &@]xxqB_ټ/Ii>T`lHx$ SPl
AaJ %ď1SbAx$ S1͵E]ŏ)Q751S tx6 2Jr-A
$Ǒ1^ɖ*'V}ΐ9xxq~^T\Z[dg9Z ǔQxxqBHECa+sD0xDC&6pSlS֒?3.t
W_OYjZbn J&VaxxqB~RC.nYٴDC&6ptz4L&UoNW%"* |"!*xxqB_ټ/Ii>T`l8DGb;ƟM	* #x$ ST1<VgO;ߌtS1S*FxxqBHag$+E6}"W2c^5Pxz Yaxxq~Z߅7b}yUB Rxxq~Z߅7b}yUB (x$ S'@jZ6$1S=)x6 kaXԹ3f.Tqp1;,%G(qx`Tǈ鸓nx$ S#r9觪6[uZ1S?G3x$ SngB4.fRt1S+S2x$ S.^ ;Dkl,#C1SHx! x×YT>EتX1$Ox6 qM:4kQ棑1SJeLعlFzhcAWux6 kaXԹ3f.Tqp1;,%G(qx`Tǈ鸓	x6 ݟLNBM˟1^ɖ*'V}B%xKL+qUz:{	ͦg]R 
(xKL+R:7pmO$Q	 bMxKL+buOiݥu}~~勭< mrxKL+bdOsY'8}d {JxKL+/j<1sf<  %xKL+cӄ^uO oxKL+ɳwOrN5Y  {G	Yx),It/Y|| Q(x)xUbwV[/:BY	 %x)m{X	k (%x)bǭZ.)(>M9ï8C d	]Qx7 _7/a]M-/'3ۑsn%)9BT{O!׈Cxb 4?]/"H5w100644 camera.ndk.json [ȥos4M(Sp<큆!s,x7 _3=2_DT&K5sn%)9BT{O!tTxy3ٷXEYnsws<C3ԢDl<V}Ōֵ7dܙX+bv3T_Wͻ`#sS2
W|ILnkr)[^?-()-J/N-.*}<UM~SN!/fV?Y: N?xy/sd$
Kh(4i"u '1x XۍVΟF_cڬd_xyS;ֶ%]Xl~/, ,xyȖUn|SR2ͻ:0nxy<=$6WMgv($'%de1pLxN,v])tJνo28Y{C1">71/1=H/!㩌&?s}z]gnPۿ6Nme=x 5&M	(xyIV,Eo߬gޡD!917(Q//%[/8?AQЫ,}me[.1ԲT}}u椉_6sckWӣ<'?  ;G8x4 _jC:Psq">s.. Z"I/dSxyB	%{Ťww|Q꾮|cq+# ^ox4 _}N<X,]ұsqɠJscfS]ZWl.1xyF'x]+NN+ڨ ʗkxyF).IG?6|# tnxx{I 2sSxl8ٙ^b'и`# M/x{I 2sS_T'Y;B-7*0 87x /!@.hH;Ԑ,x{I 2sS>?ԕ-+:\FhFF q,o4x{ikJ{rոx.ri	 1i^x{I 2sSM0Mjc7@yɕ\1rx{I 2sS\uu[܌FLOX߸Q W<Fx{I 2sS˘"z{V֞o5A&nTpa @amGx{I 2sSM0Mjc7@yɕ\1rix{I 2sSvOotHy
^lTpa >ax{I 2sSni.3);Ɋ)²\:thx{I 2sSzElw28,Xb
. f/k4x{I 2sSZw2GnoglTpa C&hx{I 2sS*M<("<3g47*0 =34x{I 2sSet-,7*0 0Gx{I 2sSްl8l٩nZW6*0 ?>5x{I 2sSWoGY7
~lvϔ
. hix{I 2sSν[FowWR$Q ^rhx{I 2sSVK?ʭK3q}w# LY4x{iC Ȫ 溠kTt_MϚe s(x{I 2sSjzo s[
6Ğ<UK6Wgɭ7Ohh``fb_YXX`q렑>#MO,u91 k0ax{u۷b6sܵipEuL"r6۬?Z
O8VU&PBN&>)8U/aZW{]Vwprҩ2g 2}&Mx{ulҫP$]~%L"_x	&<|0+kY%PBnd x= ,0~,.3:@!bYGHA46@X
>gx{ui^0[,bd&Eo9&?=zL|Rbq^Cnu]'7)|I k"rx$ aӣ:/<wK@XP6g%x= ,ɕ$L=WUjK@!lYƗ✛
PYBV@XU@Lx$ aԽ._yOB`İ@/4[@X0a~x{uC"fϝO%Җ9 ;Kd&ɓ" 1G0x$ 2!JҚejÓ@C2x  ,q|;؁s0ԚE@`x{ulҫP$]~%LZsx{uÉ1ŏ7L8od&Ex8'(5k~@	ɓ" .B#x{u%h_yjͺkv悟M@! '2{wCm+{~,mIm\(^9+ݐxu5	PsQjr~QJj^?3˝N;:ꨒ0;`nFܕjzjK9c'%MK믐~ƫ\$]UEyɉ%Ex{4}US{+7("ʷ5S]yE} Jliݨ+pGح'CB$J~X8	`Y&9 koLx{ul&<73NiHo[djLr }x{uÉ1ŏ7L8od&E-v}X*Ҽ?@	9Tj#
rg/M͝0Ǥ{ 2 ]#'+hx] 97<|%y~8LN/GU40000 avplayer =|OtrpēpQөKJKi;PD)`Tx{uC"-{o?SdS2(ȝI|75wL>$ Tvjx9 N~Mm禊&f$it;8cДU:@Kx\ 97<|%y~8LN/GU40000 avplayer =|OtrpēpV$
-}=8N06~'6x{u%yGѢ1<"}:"V]l=cb 
e9EWOg-QlTmorqM?;0',Tfٌ 3% x{u#HV.ݷm-1,t Mx{u#̽̑;W*z,t Ywx  ,az|N◛5L#Ó@#m&x{u%F"No]N?Qėc&@XVXZ0aĊ3?]itQ}sc5# 	gQx{u%h_yjͺkv悟M@! '2gKc8?c\s6Iksc5# @m!x! 9}[+D>_7MQx{uӥZݬ¼yVݳ?%'KL̗Z6() !XQ )/&M -vub3[.}¢҉EtH<,ϔ[F_+'~P)=,A;W_Z_ySi[7-{m=k^&@XV_ZĐHNԔ{bWM28gh``fb
4gh퍜Aq"ԼĂҢTPs/,cҴ05e|;Lx܅k
	x VGo,<ej"!sie5Klg^,Roed]Z0.100644 avrecorder_base.h i&TD;?1CP40000 avscreen_capture UЦn4#oH>@.Fpx{uCH٤	}ic޻0W%wp3|˻ xP &rM	6I}(ը&5/~TȔ2opy|I@7''Sv.֬%z}x7 &rM	6I}(ը&5/~8F tʼ&4E*{Cx  7''Sv.xrx7 F&y+e/~$?^N8ƒɕbS=*ng8x7 4bièj RN1/~'i`__k y9* i~x{zy:F Xx TȔ2opy|I*	oNx 8F tʼ&4E*|x{uHzMߧ϶%]_vsCYSF=L  `(x7 Wp=;GBeBd/~c(MhdE$u瀱*VFx $?^N8ƒɕbS=*Ux{uȚwp<,vwJuZwwF=L ;xp LA[Kc/7bZvDƾ-B}2M2xN.h tL	J^SN&<qdTNq2:x w&aĊb9HeT7ͲP>']2ʮ/P&LvDƾ-B}2M2xN.h tL	J^SN&<qdTN?ox;|yA.Gh'TK3:&yO9wcd?F5W|۞H.1ɞ@	ew`x= :<z>\2ЪN&F)k;DkdQ1NK<kx;|y+k}iZw䚲Td?F挽 >1x;|y(߾/KC,Lu;-bHF^?nݷ= QI@	e'xl үq#7l=F*?+.J>LA[Kc/7bZLzbv:6H4Q;N&F)k;DkdQ1NJ*"x WT=xLf0uOx6 үq#7l=F*?+.J>^'HJcַvx6 үq#7l=F*?+.J>0[1BE>-@yRYx{ &100644 avplayer.h 5Y		x|Qi~ޑ&:;1~f!8>0rdB.N2,N.h FIk/ ӦݙNv3cxS iyӻ#C0rdB.N2,N.h FIk/ ӦݙNv(Ex& t0rdB.N2,N7KLSx$ t(V=TUa𡒓N!\3x= :.\sɡ] f^N&{gm
H伸uNgHdx;|yBUӥ^<+w+TnI9 hKxF &100644 avplayer.h GK(	d?x&Ƒ&:QөKJKi;tӪ{x ']2ʮ/P&LWCx6 96B8S|@2lÑ>QD$m*{<(	Oѱ"Ex;|yBH-G8.mK|)9 rpx6 UPFB_l=bpC
>Ƞ`EBsZb\ox;|yBZ#]ICnZ+u9 ox;|yBȭa?ϿY:˖qBs4B+x;|y-.7UrٵZ|w x vDƾ-B}2M2x~xj GTkڥ-&L[<,silw(J߁y-'EMZe:Eʰ2/ƓDt;8cДU:@5)gx{uH"\:PqqYZC	%&Kydr2Iũz92W9Ut.`Y&9 6"GPx{u#_Z|6^%oMLe .}xF 9zr~Aś	<l40000 avrecorder _d	˄PسX#$kx{ui^0[,bd&Eo9&?=zL|Rbq^Cnu]'7)|I k"Qx{uC}L{?:jnZjF 0[x$ aOᚪ]7Z4n@X4<7x  ,.=,UVœ@o6x+./l`KӒ4Vz 'lxϸq]G}앦tf621qDz &Rx6 Cݮlǅ8Aq
ԑ@kQ&|ISwwx! F{mꇺ푑@
/x! C/K(!O仑@a/xϸq		]9ӗH]w9muaD YRxϸqjϟel[wof?559 
(x! 7E0+c@Ex6 *sPV&eWZ	o%,>OI'{uX&{s*pZM	x v}D'4`͑k @Y;x;tiBwRzGBR+&}wąkhx ܱJԃjOx;tiHMqV*ϻ5fKu~/0 HYտ_mL@!8r|֝S)>xH"`vFm}	I뽎-x d1Sx;ti4矊#mnbup?YQ ϺQ x v}D'4`͑k @Y-x;tiBȿSB]TPyfy%ofąkiXx;I }47f:8p[3goc \x;tiBwRzGBR+&}wąklx;tiBwRzGBR+&}wąkx6 HLb@p.%m3uw`Ѱ-kS-x  W9@u4>Zx;tiBLVv"O7}H	P[rąk"()x;tiBȄwUN[r2evXqM\ Tx;tiB-nia9ֻmąkՔJ+x;tiHq@_j'8gSՙhg7hyzɴ_<x(0\~.J#lWaz`t	"p/R7Zܟ^g} (;3~x= n3'6e9겾F#^џp40000 musl sg& 㴙6uCKx;tiBHj2牻?& Wt{ZL@ąkux Dg2烷.!x;ti{{4j닼HlULZul} giLx ߽;	pfZ^㑡.x;tiBdHD$		~pp- k/x djx߬$Z=ґ&0x6 *|W^p:$FheC`>O1Ny,5hR|Tax8qB[|V>.7[OZ>, +x8qBY§=b?)n :Ux8qB +{!W6=JqX 
x8qBH$^+
6.lr )x8qBʖGnO=]4 z7Sx8qBb2Z9zIz Vx8qBȉGQ/W#
 Ix8q1vw<ܤ? Nx8qDоBނǕ5 Fw,x8qoN]MloCi= l_xffP.7&L~mKN? ?|x8qBȉGQ/W#
 x8qB;2'EK4E{ $
zx[rezGD
=](g$'U$%e0hm9_ޗ3yM/(181$3?qMOQWXigqSEZ[|}Cktk oGPx5 T@W}@(*G*-%[
'v/bBbf,7&Zbx[ȲeF9zOz]Z x %;nΩEΑO@:/_οǵC(100644 oh_data_values.h y}
6fJ Fĸߟv2*FtGwO>s_$EG\mf_G߷fr\2oA%8Xzg% ^\t'<n_2J4b`x[Ȳe/Ƈe~6sƝ}D	x{ f@ !X2J#ѻl1 K7f100644 oh_data_values.h Ӝ^)uagyC G9	gnG4"= 	<yK5
5)
x  SM֮D89saMx y!>zY0+ZD 4/100644 oh_rdb_types.h YL- GV5uOi+Z,'7"_error_code.h d]:]q6N؊7,bx< ;/*Z@8d2Uܢs_O[SL>3l	𜄮n"Ol`x9 !cnxs/.HK ;5qkSЌ]Ff1ۓ9HxN !PP!_ *&Ñ45{eAY0yWoqW%ෘ[>+/CWo"s\xc !>)qWR)웇y100644 oh_rdb_types.h Pd_a{B]d_utT}&5β68.(ͣ9*qx[Ȳe/HʛM+$.;icߌM n(x  5ݮbPai9.x[ȲeFEC?Nryc r6bx$ ۇ!_"_BPϓ"Jsxk NBѰJY9uX
100644 oh_values_bucket.h h1g uDĦE./A>v?,+g:+Ut"xm+xy*F{Uv$4襹jJҗqFW 'R+x };nΩEΑOB?N8/3u*100644 oh_values_bucket.h ߷fr\2o=J-FM|bUྯ!Ǜ"{S84+x ֒](A4ŷn`MZx\ a=y-gFy40000 audio_renderer - yԌ3V9KH9sh6+NضWEt''GxT 5,Wx]qq{O40000 common  R4xA@+sh6+NضWEt(x{qu8^dxѨ6% (zx{qͫ&u6k3M@!4%3?>71/1=au%v<[U[`bi  ;Mx aOqĴnyeuv
x{qB?bu*nc01 <֗7ij쎘rK-%3& oLx WD߫E#[둿,MAx9 SfT2	`QFi]W21?W4.GzH8[4J}̯L"xxq~+MܫdxY6U{f= `x+-(rt/iι=M\t`yWWx+-(꼦D):Sޱ? zx8qBHBMoɩGgb RBx8qBogn:p: 8MV -x8qBN&eYE% qHx8qB֬)_|6V$}ϥ.K4 ^x3 SQ3:,k!#Gg/|{ r6M/	&RP5Dx3 SBJpihOZ.g/Va?3j[ фcx+-(tִkxfٺS]%~'[ Oo/xO >5lI3:p2h9R2tiMOS[9n?R X0s7Ip$KxH >*&L Nyu%100644 shared_mutex.h vt! 2L*GYx L!iޡTI*i׬[xtiSQ2诎|kD眍> 
qxKK$gyΎC}S{ 
ox+-(rrwMk9L~QK x+-(O̔z5̏4 _(x+-("z5Un^#VVC Mx+-(ra;3;omv3  e%x+-(GgTcM [x3 u5?=n B!QQ#X1wBYi xK D" LXLX7Js {O+<7 Q#X1wBY' c xK D";Bw"KXA@h 5nFEQNɀ	:}1ຢ;m9-"zx3 ujfBԐU+Ы^-Qa#ҲH~0bKx{qBw9kkw>eګE;SxV+x{qBȶFuDOc~;S&*x6 DpG}qstuu`X6t}L;߈yZV{!e0KDx{qB5כczVk^B:T .*x{qBHy`J:S|Ln|.ynbg* v*x{q-	*fn~xؤ'ZkͿ ;1x8qB_zĊ%G׺N [x8qBe1ߏD*xu? )x3 KiS(luA7_ /Kw.1NCnx8qBƽǄT}Mszh  kx8qBH}N޼ 8 r'x3 KDyh^뒑t$'PQ}_ mV\{A:X˷8Ex+-("'sI_=>Z  ~?	Cx8qrykJlU_ꕜخn! $xN BzĲQ24$.?o<g".Џ@_2(Z?2_sәDz%xggNIuwogTx3#/ yF2x! BzĲQ24$.
	dx dx_dұ#ǘLڞoBzĲQ24$.V	~Vφ0	'.<
0:Ys!'w~{ ?Uו<Ec| ݅(7<k%TKx Z?2_sәDz=x6 BzĲQ24$.Z?2_sәDNZxN BzĲQ24$. X3-F16{7Z[G(Z?2_sәD5$:cxk BzĲQ24$.V	~Vφ0	'.e{ ?Uו<Ec| ݅(Z?2_sәDhf4~;xf ]/Aݲ>$ę @uEX$3\E1Wsh@Ci(Q!)+6mi0"xgg#KIOxbo)h&uOlxVA>ghubB^bIfYj|b^fnbI^Ż9oCI13w{鏪6%31'?IuwogTUizjqIi\M5[~IR"?YQJ$y}7Ouۢ})	(!>K@nΛI	6s6k3O0"PCG~˖se8UWÉ3q9Q"K115Ev+>oፂ>x	\T#q5mCDQذ
 LnxggpXDݜܷDęx݂	 U	,xggpXi?DՌ=>xsu& xgg#KIOxbo)h&uolg λ fx9 % \-f#U(CJPշWmUjYgxgg $rs/N?8xs K5xggIuqG]WG}L=qY~ <x3 4݉)igB}H@\Go"F*DOߋ3j^x3 4݉)igB}H@|aWۜxOۤb{wLS"x3 4݉)igB}H@@b) Lҟmo$&h`x3 4nĪfYTu2@^xiH@T1,e[8F-uBx3 4P2y4q	oJܑH@i|1fj	fu}:D|goxxqJ`<΋/[0{^y xxqJNWf({g^y bZx M`v_aVޑ,x Р3ͣҭd(Jl&]V,x6 _}*yЂyX0/<s6-NxXHI,ё#%Dx Ø%fe,RZxA,x6 _2\qj>/}(s6h7ixǻ,K5ꋑ-DxxqJ|yH۬Y[^S}Ľ *xxqB҇J,{hݓ밍(%3&lѬһl~sĽ "JqxxqJϤ_Z|]-(u$Oc^y qx6 _Fn+%aƧs6.]kሚg֑{5xxqB?ǻ8N\Ws>xF5EL@(w*ʏϪĽ ^yx |$#ЖW
u1ɉC#xؑA-x $ԂON|0Ӹ'EH,xxqJݦ*mNUY9ztW *xxqJ̖y]Mio[ڣĽ r*x {Vh9J´Bꖆ,x )))%"4I.,x *z![5,)VT'mM,x cuqޭ^%B_6,xxqJ	֦0i5L9q< ;*xxqJ;v6K*1hsY{ؑ9*x /IGxIP&mTVxxqJ\^eru;VxI9hfǉ{ċ xxqJ795zhɵ7ќ{xxqJ)I2]jyqb1@{Т.+xxqJ^S"xO+=t}^y UxxqJ$dW<5Gn^y zxxqB҇J,{hݓ밍(%3Q?m]pYof)-4q< XbIx6 _Fn+%aƧs6geNǽlӑѧux }n0'ܗ!H*fX-xxqJGrUڝwĽ T*xxqJ&:kMFOkIĽ TxxqJ9|ٻ~ۜ`Θ7}.Ľ Tx< 2\ Sr40000 src ?kfk(fcuJxxqB҇J,{hݓ밍(%3}zw߲P *<x 1;oE/	xxqJ{䏚]Xȑce{A{4xxqB3姇|3z;)~GكI&@P\phÝyMUwȜ8$TV8q< ^DPtx 67~l4xp xxqJkME7>l/: x`{Wx SHnq&Av>xxqJ
KtMqǚ[l^y 6TWx Վ&!%F3#¢Gܾ.Wx dj`NQlk8 *NxxqJc=5^-}!	g BIjq	ÎIm	i|Re7Jc 6wxxqJ9vNi~EEG晸W @x ܳwPoS{O:&jfmxxqJ/+TL(eǧ5q< xx ^oKxn 6ExxqJJIOGwg9N+ 5px bеAm,/Lkx ]ڤU  ^lM%k'JxxqJͲgs;d#+ܲxĽ Tux3 _+Â;uo?x9q߇ts6HfM(hW>&oE.>wx AhEf`.^snN<$xxqJ$޷\YwnuM^咉{ewxxqJy_>u)Ж۠p^y Y"xxqJ!.ߍ`8M7{ָ+x @4Q&|QXc߆,.,x FidCKT4z"KXxxqJ~Ne!j{ǀxxqJiZzlv~K}[Ľ SUx %N
۫4JC8O,x ,1jq)$ᕎ[۴},x ;26,x pn	6eq陴,xxqBHq\-Fs?jb 
EAY[,0' ǐHx B*Ū1P`(ґtxxqJɗ~}ͲKa^y 9sxxqJoq5a#sz1e\!>q< уx rS23q@x3 _D7is~㤅l}3ts6.p]yŝR΄x˸qJ.'/u' EJ*x 3ݻU^L!cITx˸qJ?ʌUh5mX	 -|x˸qJzFtޝZ8GC* #$x˸qJ)uGrTh6򌳕oi N6xR _2KӬˬ㕵T4ޏs63O
-DA@4Kx40000 test pAV('ᴡK$~P$mx˸qJE;kXkR ~x˸qJ_%/1Z9-kxbq 2Yx˸qJC|yAyMok0 iyx&r?<9?k4 x6 75w+&q(V)l}M4K޵6g!Cf'}#p}8eLx6 7USU
PPK2cW}Р*?}8Gxʸq+ݭG벞~qr'D, cqx6 7GJYI`!KrU}@~0I^{}8nxʸq6zMVVw-R,%/":^]^N}Z<Vk- AxʸqB5[ON
J~ꔏɄ *x6 7=UwJiK@ЪI5H}l#2}8Usxʸq{~W<kB~ 0+x6 7USU
PPKOAqv"g<S~RO;}8MxMs0+2>NOaI
嫇N#KQGmN{eC:̍a}6N8ArL>3Rc	HTP՟kBXG1n8$k*.(Rc>$Mȥ2|M7p(AgH)Ȩ1B߾
]&`%n9u-	FR]`UF墮zz
LU	i=D'eۚǹ&rR/þc&pnW=w
XVĖ;ŀݡg_9iwS
\!BXSL0"<b'Wſ_~rqf-mc==]y4Q;,PJs)'izAwޛhD[!j #&	VvbS?ANW`.8FQ:OqxP鰢"^0M+vmΔ
ۑsG\㯧GFfRl$(v/v&~zX .8>o@	xR j0	JyJV
J)E%.eɩJ`U:f%(X '?&;x[ŸqHK_ļ$4&_a:- 0-x 2o"1*[ʖFdF,x[Ÿq8l=s@lD ox o\)`į]kQA5\x h3D9ͺfξWp5|e_^x hӓ/"%v_U~8|e
x{qBHߣ%~vӝNR7ډ5 Wx{qBLm5
=ĚT Ux{qBŜ %-8&. >& H5Zx hpV4]4|e-x{qH*wWTi|)m,\촉 5,*x{q~@e񙺿8m=75q$ Cx Y鶤0Ƣ3a&S^(/Vrxqȥ	&u{ږ~")D 9AxT 5FO9x <40000 common )e{=tc/ߞuygğW$$)a&x3 FO9x <9uygğW$$)x3 {Ƹ_ɧvF9ՠ*\Y 7^Rkx3 {Iܺ__P9ՠ*\Y 7^Ml-x{qB+AF15$Z0ٺe /x{qBH
7+~Gpf|Ȏ;Vx{qj9IOv9˫c <q *x{qBouHvg>2  dx{I 2sS.I\c:\b\_1Ńmۉ
. 1|Ux{I 2sSLsY6c^Ԧoޝݨ A_Qx{I 2sSnݫ|4GV|ROrDnTpa PX{nx{I 2sS|^oqŒ_aL%mTpa <kx{I 2sS~՝R0IO7lTpa G6x;tiȎ*,}ε fax;tionN]6oyǉcx4 ,M\X%<b ±*YV覞pp@3n93[cx3 q@xQKY898>vη(_[Bx;tiHt5KKܵ(Ur tGjxc qm`Ǵ3%P@VWwOs}1K100644 picture_native.h [K`[P-5Z,[x;tiH^OJ5B,&~
 frx3 qqdMQsJđ_(ZfQi\~Yx4 E:np*d],[(/Q∭*"gCx;tiڛ}Jѫ$|# q+x;ti{ߜtK֏ \Xx;tiHt5KKܵ(Ur tGx;tiHk ooztZ( =*x .m/Д#?Tx .HϽ蹇IÝA𥫜xZN*x;tiH})*:Ww. Tqx YC7,قG|* Ix;tiȮʚswogN_ 9
Gx4 YC7,قG|*b筅jF6
x4 6a>burm*}I`sd̖=&lwGMx 6a>burm*{x4 6a>burm*HoѕzXݪE>x4 YC7,قG|*߭0>}v&9<H8x;tițڿ	)gʩt $/x;ti߲qjSrbiW x;ti5>{eA<St
 xh
xf̜31O [xKK$R"6vi?J{6 (xKK$қ&%<cŭM^( Cx&ceYbq* 
x8qBH{P܋yVZ5s<M x r;b˜fȂ2Cx! xd?ptZD@	dux6 |~hdT]$!qX@kmay+چ{
RgER5rn<x @ 0tg򱧶7hxϸqjv[7vn]/̞byż- xϸqj~o)[O3 <xϸqEW/䩘[K\򸲠ҐkD cxlx6 	8?d}D>Z@kz\&!Wd~+FZGx6 6"5)Ĥ!2D]*@59@kZK>6{%O
\2vx8qBl>RwlV߃cW"x8qBHݣXm/>ם0E2y 9x"_rfIi_ 6x*21,?mCKyҠ	Z
fxkblb'|u*3 5
)xkblb'bmiO}e*7WyP 5
x[øqT W,[nWK 
Y8x3 VÇC-f/ըQJj.}{މ:_u\FvDx |sBkud-x"2޾m'ķx^7>[8 2x;|yHUż5zjl,Ƹ 87Hx  )j<նJt[Մx`yx;|y}~Ymkʎz{mq PMMLO/KI,cHY~*f̩Ѯzn<ّ rZx;|y.垾dĄûTMdmN	)Mvdl {0x;|y'/vEKyrg BbY|r~Jj2L3'_&ƦOveFJF Ux;|yL3'_&ƦOveFJF &x;|yHMZW5/t63ur (x;|yȒڤeb/"|lF9 pr5x{qj;Kmdv9$4V:: Kbx{qjKxr|v:r~ `Zx{qj~ƶiA>Ngm_vq~ Wx{qjfU{8'kUMP+3X1q ȫHx \ Bha/,lxKK$͖\tTw%2V+ }
xKK$qϜ?,ߞ.-TNQ_) <xKK$wWoXT n(xKK$b:/k>'k ~
MxKK$sNhө	[[j7q ?Vsx̜*zYw#k{vo땭3 nx̜*r=ǽ?|?QWL :x)61إ<[s#'3!C bx)d3g|S;y 
x)7D"ㇵ^v Cx!Rk܏BG=\jw hx ]]IÜ* * x)61إ<[s#'3!C :x)R9dE+LҞ)NUv (x)E"ܕ9tW_o <
Mx)7D"ㇵ^v Jx)d3g|S;y Jx)a;xs|=T. %x)¹5jsɸKnqџ8 NPx!Rk܏BG=\jw mx!VKLXtgpyo6; |$x .$100644 BUILD.gn 'F7'hc$s/~93 ˍ_d(NCÙ~݀?7,7Ju;=*;xgRӺy=u100644 native_node.h YFZYTӲ]7>\Cs0y]46U|3Cޞs;:3̥=Yg{x /$100644 BUILD.gn 'F7'hc$sJ:J	ifCÙ~݀?7,7Ju;=*;xgRӺy=u100644 native_node.h x<]ԪݰN4\C5-Ї1uCIӇIgI}P?oS0_U]\x .$100644 BUILD.gn 'F7'hc$sJ:J	ifC 0r`""?:j#;=*;xgRӺy=u100644 native_node.h b|~Sɔ
ˡ\C,q`"74[1Fғ|P?oS0_UrZA	>x o$100644 BUILD.gn 'F7'hc$sX')q`_5s쳱dIt5C@@nA\CŊZp=I*ʜ੘|P?oS0_U@_x ;H*󃻋15\БOH%CJ?&McTkKC@E(C X100644 native_gesture.h tk'i <tT#.Od>D+{屃32;05."_xcomponent.h ^ *krɦH|8Cαz.;#@;\CX\bPY˹V޾zIÓg]xf ')Xjzm.	RL.RIt5C@@nA\C<)yݝ"哳|a?XTѹ.dySid2	Tx ikL?OfLO )yC@Ϲݗy	_8hrZH100644 native_gesture.h tk'i <tT#.[7d.T]̫\CX\bPY˹V޾zIÓ @l{x;vm;wޝ.V`rhwf&FG& 
*x .$100644 BUILD.gn 'F7'hc$s&ݶgUY֔Lp@pmCÙ~݀?7,7Ju;=*;xgRӺy=u100644 native_node.h GE0k&NQ`4\Cr֐,!+!ն|P?oS0_Uu]x;Ϧbh``fb㢗uBo^1Ws+#DbSE)YSv.:vZS2Ңujg3'mmNRL+sRJ2o]`x޽C\6%dgVƧAT<tl>W戳_Uq5:/?%Gkϗ7LͰ0Td&a۵O<2MQ*, e!us:gl{*M=NT#"etǮ{]?[6a j4x;Ϧbh``fb㢗uBo^1Ws+#DbSE)YSv.:vZS2Ңujg3'mmNRL+sRJ2o]`x޽C\6%dgVƧAT<tl>W戳_Uq5:/?%Gkϗ7LͰ0Td&a۵O<2MQ*, e!us:gl{*M=NT#q5mCDQذ
 }ax5 V3;ĥN6O2xeg8z(m9QD$ܿ3Z[Q%G%xgg $R|1mG_S.>Y9 )Rx9 ho'U&,f*$(Cn]*DcF\`;mw,x9  0r`""?:j#i,q`"74[1FғY[bx4 H:DJΉweȰPXQt^9^AHD%xQ X')q`_5s쳱i,&i*Y8W(CE'XR"N.cSlmXT"*x  b|~Sɔ
ˡ(L94x8 /~93 ˍ_d(Ni)gc=~ٗ(|xg;oh``fb㢗ǰxkQ3wo~.O\ļWZww14}|-G1,&{:ZmfrߩkW'do>8qCܱMls;?*쓍XYZ\RZ
4[pIF/K3mִV$\ZT-NEfc֭d
'g9w^)IE?>c_䋌R"&kDr%u.:"%)EE<לĐ[	'k09NQ,~zs'n\T#\uz 燈.]x;vm>p(˟숛gV<T2 M)x4 5Tn2dBK2<4K7Bn)x9 ={JӐަS(Cxi,Fv̴iT KWxgg $fk<KM?[|d Z-x8 J:J	ifi-d߫ʖQ>!:ٓ(_x |$100644 BUILD.gn sZgU9$s[Ϸ+<Vafsv±focus.h yEޏsbVv;.?k
Ɠm<A0xggND̡Ȇ3\o&&1In3#/ -xggNwUrƷ7Xd\$屙	 n'xgg0]٬w{/"gN⭻`|7>swL{3lDN:[t+sٯ*ߌƸNQ4{{綨KTIҞdh``fbXY$22>}oDC?{W4MvGU]RY
Te!us:gl{*M=Ng񸚶k[|fhlXz[ Gkx }J:J	ifC 0r`""?:j#*;xgRӺy=u9ST{$0qŲ&ړ(Cxi,Fv̴iTS<.x |$100644 BUILD.gn sZgU9$sIfH揕HLNGy0Rfocus.h yEޏsbVv;.<)yݝ";@x }/~93 ˍ_d(NCÙ~݀?7,7Ju*;xgRӺy=uO+äKAi};
8c(C5-Ї1uCIӇIgI9Qx OD2jLoFaCÙ~݀?7,7Ju[d38.TDuEX$3\E1/$@R@L!ɓ(CG zK~1(YKB|2>!EΦNWQSxgg0]'owQJ֔ݱ򔌴hYIuwogTx2n[W7l3nw9DN:[t+sٯ*ߌƸNQ4W2wW0M9k>dC3Ē̲ XU'޻Bi;ʂTB-s,3q=k`[Siqtr=Su*utnل~ cVf^x9 	rdj]JIY8[d38.TD>x:  0r`""?:j#*;xgRӺy=u3~'6Vxggې$"T/5Onʿer= Ihxj [a)XͩI"<Z@uEX$3\E1Nۦ5PTM'%;(Cs0y]46Uo1yx8 D2jLoFaiyU?iszQd8(%K?xQ /~93 ˍ_d(N@*;xgRӺy=uhMZ݁+I|-(a$$xQ /~93 ˍ_d(N@*;xgRӺy=u*v箫"q͍('sxg [d38.TDC"l(Bqk&#.rޓ(CG zK~1(YKB|2>!EΦN,	|xgg $¸u-UqkK]J| )xgg0]$k?Ob{qHXSoлwx䋌R"Z`] JۃJVM(y
7icjh``fbXY$22>}oDC?{W4MvGU]RY
Te!us:gl{*M=Ng񸚶k[|fhlXz[ 4Zxgg0]Y'cS ꟡Չ%W1y#)}!ffm	3&_dt><|vn-=|jh``fbXY$22>}oDC?{W4MvGU]RY
TxMoY'/`TE>aks[2w09x\M5Q-{GT346, `\xg {HTWǭ):F3C<R؂%1&(Cs0y]46U|لayWJ0cD.Rxggې$"sbiJ&f[L\4 =xgg0]'owQJ֔ݱ򔌴hݸ:1;+FÊ91o2m]ݝjh``fbXY$22>}oDC?{W4MvGU]RY
Te!us:gl{*M=Ng  :,4xggI$>gkt܋?* (]x  
|Oș<Ԍ(/x  ͒hvF&ӳ^](Dx6 {HTWǭ):F3*لayWJ0cDM}\xggIdK\]G1R:2,] xa D2jLoFa=m7:!GKtP100644 native_type.h %*,E RjXn 	GcqH(uxgg $R~o_}<BW~3is ɅE"xgg $]э{_[;Y9 Oxggې$e|s\ⱗ}Wv=i פ	|x gKh|`
<s[d38.TDCNM<8:xKʓ(CT*8	
y5Hœ%xVc9/C2>!EΦN>#xQ ]ANriZfGe/-r(CB;`u6'o4xggې$bxo篝\tmr= )4xgg $ऽV^K.-Z'=Y9 z/axgg $rxA֎p3wJY~ pIxgg $r-;ɨȐo</ob~Nds ڠx9 ]z..k}ťG(C5-Ї1uCIӇIgIox4 (f]m<[4ΊP!?pUvX;½ 2xQ X*T!S _lnN汫iAtre4n:(CJh1Okqk$\%Sx  mΕcMӮ=ƭ(x9  0r`""?:j#iZi?S/eBL	Jx  n}GћQr.S졝(yx  kX9|;Lݓ(	(xgg $qK\ok6iM>=LIUx9 RRJs}n(Cj\j9o:ڥx5 ކLkqȖ!c3(Hf%h($daxgg#Rc17e
i
5-L'668oMs2y(%d'e&e0썙Xs£PN׻[MLO*qXfhMoSXd7"	NVx_ی6OdpЙlZ~gMǴⓋDd'픷9PWB
v5Z%3>.$`;FQN4YSd&gSMqIߺiнԑZf}uL"tZԵ9]F;:fG-bw.?s 9}xgg $rl/_S4Hus cx;vm1Vn/JD^1;799 x= yEޏsbVv;.e"bXsj!FRmw\爤yx  <ܟZIIߓ'x9 H!F>
Hf\CSKmj"aCIKUe#Hx  H]Ԯ*,ؓ\gvx;vmuᏉ9uaz\U\199 ~rxi ;/h[zզ&B]eu!OHvDZ,CmRʷ而0CϹݗy	_8hrZHFkSk»6^Hh\ 1Lxx  Hb:&7~0ǰޮ)Y\&x;vm;Wc/5$;w~U'ё	 Sx7 ;H*󃻋15\БOH%CJ?&McTkK7xj kL?OfLO )yF{HTWǭ):F3C[7d.T]̫\C:d
!WS(ܓdS,lx7 ;H*󃻋15\БOH%CJ?&McTkK7Fx< ~-d*LpZp"<fnrXL*~Xf{kL%.2>Pxe #[C1CwUVR`PE$v$!Vtʓ\CфCSXGaH|/,F72]eҨ-\Dxe jݢ2[Etl|EرE$v$!Vtʓ\CфCSXGaH|"kؠ}aYem,8x;vmtr
|Z /exM Wnך98:O4M~oEjkZo|/,F72]eҨD'Ax  oEjkZo`px .$100644 BUILD.gn 'F7'hc$sJ:J	ifC 0r`""?:j#;=*;xgRӺy=u100644 native_node.h Zs?"';HYJ\Cxi,Fv̴iT|P?oS0_U{X xQ kzl[{PSXq"<.\CgYfԇO1Ֆ$ғ%j`x  (Pb4=~3|x  =̰kw/MrA;Ix;vmFm)v.O76n50=$;YQ|cF `{x  #Ԃe(ӣ2B I*x .$100644 BUILD.gn 'F7'hc$sJ:J	ifCÙ~݀?7,7Ju;=*;xgRӺy=u100644 native_node.h GykpNI|[` {g\Cv75ܖ|P?oS0_UZxR Ϲݗy	_8hrZHF,v(/RڭEYzz \C$@-DHcQz
+&ax8 콏((]6@cotk'i <tT#.'x  Hz7LBP%\֓\?xQ #[C1CwUVR`P։v4ʥ)ʟieL\CфCSXGaH$`xM \*=Icz]Rx^K.4hM1?uq=aۓ|P?oS0_Uc9#oxj X')q`_5s쳱@4m,FO"It5C@@nA(CŊZp=I*ʜ੘(.hxQ X')q`_5s쳱iIt5C@@nA(CŊZp=I*ʜ੘%HxggQdH?EgY$%? # vxj /~93 ˍ_d(NCÙ~݀?7,7JuamGpwYiwXlqrK(C5-Ї1uCIӇIgI9*x8 /Ϛ,m'*Rotk'i <tT#.8
/x Q;H*󃻋15\БOH ObwmT)ۋ
C@@pİ/hDSa-H100644 native_gesture.h EQǂ)!qpftP.E$v$!Vtʓ\CфCSXGaHHExj 콏((]6@cotk'i <tT#.;'Aw#{ٓ\Cjw+])Gf'Aꓳz11yxQ fA׮ -ѽxF^ *krɦH|8C-5j=j"Pֺ\c&xlvr<F<vs f )85@/ 2ha[100644 native_animate.h \Af U	뻅Oeq,䵵w"*.sJmll`x<B+@p9c 'k1Qpt9M⡰qޓ(Cʂ^bF+-҈es? %;-;L~@.[iCw-kOZe]-ߌ{u,xM ]ANriZfGe/-r(Hf%h($L%=xggې$˿bsz_;V'%sOg  H5xa D2jLoFa=m7:!GKtP100644 native_type.h %*,E RjXn 	GcqH(xggې$uhnӌ#ekVed4i '&x |ԣgR>uZ1:Ȥmll`x<B+@C̻wT17+cFa(C0fgPmV%;-;L~@.[iW9xl 8]mU FOq,䵵w"*.sB|\Y'\E?\(C UᗮñkrKMē~̟/$x Nlvr<F<vs f )85@]/Aݲ>$ę 100644 native_animate.h \Af U	뻅Oeq,䵵w"*.sB|\Y'\E?\(C"E[f#r4	H)%+HMxggې$ܷ[!u}3o̞W: Vyx  kǶRL(~Ûk}$$xgg $rfwyj)"Zzts GCxggې$wפiiڭwgNg  pxR [d38.TDgN;x/:2%xVc9/W&Qxggې$W>Gx8|&  D	vx / 2ha[㱫@p9c 'k1QFFf~lh	|qx뎮(Cʂ^bF+-҈es? |w-kOZe]-ߌB:8x8 ԣgR>uZ1:Ȥ UᗮñkrKMVUxggې$i7.6?Ptz	 Exggې$V.О'i
L rxggpXDݜܷDęx݂	 U	xgg $=?R29S'LgBx9 3e?EݎT3.(CM[D>*5i܎`x"r=5TuIo K
WxƸQD4%7M/aTnŲڦ\B&o4 #"[vx+./l`KӒ4Vz '	x8qBH^S<4qi;yK >a3x8qBH{P܋yVZ5s<M Wx DzNZٌ4x8qB[>_So av^x8qBna2C?\# &x FF3|~_,x8qBHW=Y2Gη9\ Sx8qBH|T*e?~=V zx8qB˹f2\hA l]x zzf]+!KY_Ĕcx̜*]y۴Vٸ%c Jx ܱJԃjOQx+-(q=!il}7TݜBC A	xx+-(}hKӕMnrvԬ
 
Ox+-(Z{Tel. tx+-({3ɿ"2el}  v
(x8qBH=Js64٭&: Rx8qBȮ\zE]O:وm? Tx DzNZٌ}x Zύ}awçZux+(#JIt=OBTdT:VL x?	Ex8qBG{DX:{.,&_pO 2ox8qBȑ7$:"/t΂ Tx8qBHܳ-1_KM44/ ns{x8qBwvUBV[3G "x8qHWT7]'y/~{"a 7Mx8qB){6vKL] zx8qBH{7vI7Y|J^ 
!x8qBs2}칸юC"r jIx8qBHG{[,+f--k Px8qB~9}Tu[.Fo
 Ox8qBH:>U5/6(
tRz 03x8qBQ=OKVvwc &i8x8qBRO/	&Ojx;4 
`x D@}w
czx8qBLY[?%4	 P=yx8qBHM<57(ԧ L" x8qBHTb̈́i>QQ~߄J }~x8qBHEWϖero! Bx%x8qBHofuJ'WT3 
LOx8qBH65m#Ίo_2| yx8qB˹f2\hA l#x8qBκ}:&$G)PMP 
(x b!^NBDzv-`x8qBzDC3yߋ8ͪ=lv<M 3x b.ǨǊƨ5Hx4_x3 K&*vtU<:K_ b.ǨǊƨ5Hx)#x8qBHPΘ;ll8jqz[^ nx8qȣ}uviKm+<eE=Us!x ZoyPZ~Րn):x+(#2JlTUcg[Cs9
-x6 (d:$iF{yq-" 01݄gdD:WtxxqBHZ:#Γ%l)n4Pxz n'xxq~GHpKfwoy Qx gŤAw`v.dx}xxq~_Pm#H\kZ? 'xN -`Cz-u"1Wc<D6>˘/1h0elKnm(!u_x6 (d:$iF{yq-" 01݄gdD:Wbx ('Uރa4uǱ<xβe-۾v<eoK׏Ɂ ،Axβe-ČEŕuɁ pxβe-iBet&/fW89 ņ_x$ =%ʦg~!Q5<|Bx2e-{E91O{
&2N^ sx2e-/K.UGd$I9Ufr 䵌] U1x2e-~N~Ҏ]mZ4tX'2 ^	]x2e-H%OS
V]y65A{Ɂ@	x2e-jvӸn_^@ fx  =>-ǌǡڜ1	s
o QV/x2e-HjmO=*ۦ}:dɁ,x  =OHuIΚQV.x2e-GcH׶1}?|>i39q? ^B,x  =<5_*_eQF.x2e-J'vF!rTɁХ,x2e-ȪL7ܺZvH@ S,x2e-H&CwqRZ~\RɁ@axβe-Hoо_I1.
x'̷fr 3 N7xβe-ɍ*$N]temsdX@g f]x2e-HU*&/z19~@ -x2e-e0[>Ţݼk,ȸ Szx Zύ}awçZ&x8qBFl>w\n;	 
Px8qBUbu[ x ZoyPZ~Րn)xx+(#VrObjY\ hx! nLfaՃy5*~xL	M";\4{PmbA`Qʭz7MD_XO:Yn/
4F340000 build-tools 0yYNfZsiYbF<gyXk8qP]DA:zOCQ0$40000 hiviewdfx wmeNj_dt
N<7֢|,Y!	ZXA}_ф8IP\yHg4,щl9LfB626P2(M:	Zڳ40000 web KI<m wx x#֑!tU磀:klWXfV>.|6hb
[1#GfqSg26P2(M:	Zڳ40000 web KI<<vx;sgȾ\,']YE	 љ?xP yаJB6q7H,60Z%ͳftS@e!gaֺ&{_u$s<0)L2b?93= x +2 |9{lSL'u]یFqŻ	6y{(XeN'Us8)_]# d^<[7;'6k8`J̎?}^a40000 hiviewdfx # U	)Ͷl^<7>g$gq3YdNssS,gyvz@ckxtT8t w}v?rk_runtime c)7{2"b40000 arkui UiAmWcX5mulyDjFCxTSQ*UܓϻL *~wѷwIk-&ޞES4HTkNV*X8dfvǶ0@^40000 hiviewdfx s"%xW}<7|w/]HN#b)6A67ZZeW(!՘/40000 network 5L1;1@9Ҕܿlt/낣62oMpͪ9/v\!u40000 web KI<4xS Xρ'e8K{ca/߭\+#8Mrj	B7Ŕ	$#ojF'8%gx; Wpy\\gl.wܳkKsn͌>O[1x; Wpy\\gl.wܳknj^(Q $C{XxR 
cHSKdҤp1LSȓ7'"7mV*_-oriQ0 Xs.1{Ab)UM!
qx Z"<K{V4RW`gˁ4IE:u-iW8F40000 arkui l	F ~؝kۄV$q賀fxKk-/ ;iBzH[_˛X%A|~Д#iAf	>04ST.ʐfJ%x 6"<K{V4RW`gˁ4IE:u-iW8F40000 arkui .r߿=t,Qf8p;NdjI7Z-'40000 hiviewdfx }1ZRO9N'c7RrR+GiAf	>04ST.ʐfX}x 6"<K{V4RW`gˁ4IE:u-iW8F40000 arkui az!`E̎DT<!}^f8y<?-QAh#1-W40000 hiviewdfx }1ZRO9N'c72 Ç=^[Q$nxiAf	>04ST.ʐflWBUx "<K{V4RW`gˁ4IE:u-iW8F40000 arkui }U2r7ǡ)2fa/߭\+#8MrXM8y<?-QAh#1-W40000 hiviewdfx }1ZRO9N'c72 Ç=^[Q$nxiAf	>04ST.ʐfbe5x[³g#HHSIES{lS0XX>tr(y ۅ-x[³gC(H?cy=wls&nF -xY "<K{V4RW`gˁ4IE:u-iW8F40000 arkui l	F ~؝kۄV$q賀'
gx VlzY}2XXA2ȓa/߭\+#8MrXM81Ε|QZ40000 hiviewdfx wmeNj_dt
N7:V^M!+:&iAf	>04ST.ʐf8HLxk T8t w}dfvǶ0@^[|w/]HN#b)6iA7ZZeW(!՘/سf?4nFx: 
}1ZRO9N'c7#3 qolCUiwCx[³g/ɲ-w?2ĺ93 ?6qx[³gv%/aOL'?>'*ӑ қ,x! &cĮ5 -ݫN*[x: <PMvV`I^3B*9._-̳fW	#x nlaz!`E̎DT<!}^f8<=M)GRE,&40000 hiviewdfx }1ZRO9N'c72 Ç=^[Q$nxiAf	>04ST.ʐf>x T8t w}YHx! 7ZZeW(!՘/سfFx! f	>04ST.ʐf90x[³gCHL7Ó#L.*% ]x[³g3f
/
+tu_ZL ?xT l.r߿=t,Qfp;NdjI7Z-'[AkTdzK5WiF&$cx[³gC(6_cOY2n#"o>ۜɲ x! UH<N۲eiT0x[³gC(L.)g9e7# ^x[³gHcJ׫~|y$r,lL IOx[³gC(t.N`~Ė͙,}x: xKk-/ ;iBzH[#3 qolCUiIx! U_˛X%A|~Д#igxx[³gC(Ȧzv\JXp_͙,{&%x[³gC(ȕӯ6.
Җz@u}͙,.x[³g3fΠ Og)z)N{dͿ d-x[³gC+_RY[Hٲ+Ot$mn`Z OH-x[³gC(߶qs͏>^6p͙,Mx! WPϤ1<3J̱bGO*F7/x; lb}!6qFTv-`opfT}Q" rJ/*Myx[³gC+_RY[Hٲ+Ot$mn`Z OH'x[³g%_Z";י -&x! lnVrE^Vx[³g3fu۶j+d}yͿ Rxv	 o1	  3$ni y?RXm&w:2O{R]]&usnpZG:d@ yeq;߀!J40000 build-tools ҭsC2}wQripy\\gl.wܓM-g

)،/(X8V>.|6hb
40000 hiviewdfx wmeNj_dt
N7 CzL!mKHIo4iA6: %|Q|ۢ*^v40000 network X)>F
Re.՗GZXވfM<Гē66P2(M:	Zڳ}0x! sfKU|pK{򢳇Hx2? |9{lSL'u]ی40000 BasicServicesKit e @@*w1r^qFq(*l}%+X>2&Tx!B)?&m$_+3˥Z*sxwdyFC!񇇠rؠ4Au	obQ>_[k-٫uL̌rXV 8eOڎҐ
'D40000 hiviewdfx # U	)Ͷl^40000 inputmethod -H̨3
쏃E,240000 multimedia s %q>"z"PA%IV\"K"9L̓$$6&ԃSd`0̨mmI69dY|62= IIo:m40000 web S,gyvz@DpQyx[³gC'mKͳ_|-hh=YH0% H 'x2?hDs:[s340000 BasicServicesKit 'l	tzu4dXqF"<K{V4RW`g> o1	  3$ni y?RXm&w:2تw1k!":،1N-Ýdjdijzү2 Apy\\gl.wܓM-g

)،/(XUSp2I:,D40000 hiviewdfx #kqxcogӮ40000 inputmethod DlFW
N540000 multimedia #
A^IǪmZoiA: %|Q|ۢ*^vWQu9\aǦyx0՗GZXވfM<Гē623݈
YezH8#HGC40000 web KI<8x! l*v:n[/:Chx[³gCYQO/yh|z% x! lĕv*̮ڇy0x! b3K(}캱;ђg G0x! ^o"Ggw8Е=x[³gCH￼O}\n߳% kx[³gCHG3_We	455i	3 ub$x[³g3f8ozGԕnt^Ϳ Rx[³gC(HVy[xq6N1Ips&nF ; x[³gC("ίdn (.x! lRkxA56^x[³gC(n6Vmr߼(.7jL݌ "x! UOUyӂ>|#i	<x[³gC(,TO_dL݌ ^jx[³gC(AJ}1ߏ62g":ޜɲ KTx[³gC(bŉ=ĖhV_9e7# Fx[³gC(HD5Blz*d͗kxfs&nF 1vtxx lzY}2XXA2ȳf81Ε|QZ40000 hiviewdfx AHK\+%R7h0;z6zvXi3{xx lzY}2XXA2ȳf81Ε|QZ40000 hiviewdfx wmeNj_dt
N7	jpi	[6x[³gC;?>}Nܤ~csf d0x\	 o1	  3$ni y?RXm&w:2yаJB6q7H,60Z%͓:d@ yeq;߀!J40000 build-tools ҭsC2}wQripy\\gl.wܓM-g

)،/(X8&cXqy?40000 hiviewdfx #kqxcogӮȓ7#
A^IǪmZoiA6: %|Q|ۢ*^v40000 network X)>F
Re.՗GZXވfM<Гē623݈
YezH8#HGC40000 web {_u$s<0)L2b?9hX2x;sg7bv]I,ZL `x;sg"i
&~=Ttf	-& ~x;sgG/?eG<({ !
x;sgSjz.|[E7){ .x;sgHeirmzD7Kh1 	-x;sgZW9/$,ZL ~-x;sgɭG$d^bfcYE	 Ȅ@x;sgHyHԗG%SםU, ?x;sg`S?uܰw%X F?x;sgH˭m+&[d1Y՛%X _mx;sgHSޖ9k.xJ,ZL }+xT lzY}2XXA2ȳf1Ε|QZ[h0;z6zvXi$x luCz%V+[4wvYn/
4F3g

)،/(X8qP]DA:zOCQ0$40000 hiviewdfx wmeNj_dt
N7M.yEEw	'icX)>F
Re.4,щl9LfB66P2(M:	Zڳ5,jex; lpZ:	&d7䦉UMowmeNj_dt
Nyn/x: 
wmeNj_dt
N7%qA-󛡃;|i^x yl84h~,uZ\9^Rc곪<1Ε|QZ[11H<evW^iic5L1;1@9D@_x[³gC(Ȝs̚o9_~yscL݌ xCx! UTI`G*i~x[³gHyn_)+,f96& .x[³gCȞ9B?N1cщLK9$x! U|-ժ	> QWifTx[³gC(찮i3;RU[%bs&nF x[³gC(Hy^C
?ȯb\9e7# /d0x! zg

)،/(avx[³g%ݭ>Zu/?_~f_L Z:x[³gCH57'kL{5M#! rsf i(hx[³g3fJg/3u:>y/f-& hx! UezjKeϱd{oi`x[³gCȯ+>׭O:+ݺո7% Yx! ^Rc곪za0x  6P2(M:	Zڳ>.x  4,щl9LfBh\x[³gCI?V}{RCT% C[x[³gCoMRgIJ8YDvmn`Z 
x[³gC4C{"Lrb3% 6x;sgC86WI-8rۦ!geY7 ;-x! s֢|,Y!	ZX0x 	 o1	  3$_+O{R]]&usnpZG:d@ yeq;߀!J40000 build-tools ҭsC2}wQrV>.|6hb
[nj^(Q $C{Al ;E4ʮEa|՗GZXވfM<ГēhDe2x! s֢|,Y!	ZX0bx! ͥ48hz:x;sgCHuf[.]bjO;w<% |.x;sg',M/p~|yB'&ͲL, -x  ՗GZXވfM<Гēh	.x ;%9(.11w-z+d@ yeq;߀!Jٳ<8#2F>*rSR_"40000 hiviewdfx #kqxcogӮȓ<7#
A^IǪmZo곇23݈
YezH8#HGC40000 web KI<M1UbAx;sgf{\M<.
c_kiL oxm O{R]]&usnpZGwmeNj_dt
N<7nj^(Q $C{cҤkR+~FD3kx! %8YKs\N+x; %9(.11w-z+#
A^IǪmZo곇Rvx;sg+u3og
%#  $x! 0_ys"DyTx;sg+newxx,. x;sg+5wn+I^X\_ 0x!  KtϠN2D*`x! ̡9&$P!pDx! 4_?꘍(D@x! ٙwOVϢg.Dpx;sg+ҝrlNdy;5X\ ]:x! 0twi/ʌwgdDNxm {R="॥51[Z(KZYn/
4F3<2vs1!J#=GX)>F
Re.D-bJx;sg+M+`2aX\xx;sg+u>QɍnyXv-Ņ &x;sg+ވv;ݶvJ9H0u,. x;sgC86WI-8rۦ!geי i4x;sgC8ζﶯ.(s]f8י a4bx;sgC8-Ͷ'E{uuyI2g}Rޜ|	 x;sgCȄ:SO:t__afx yLKX	>x n]:j;r`d@ yeq;߀!Jٳ<8V>.|6hb
40000 hiviewdfx #kqxcogӮȓ<71#GfqSggB3Nx;sg|_y.3=fJRuY,ZL }.x;sgCHù؇M9滃56cZ o-x;sgoyh*+f	-& g(x;sgCH	<ӯGMgyf )mVx I2 |9{lSL'u]یFqŻ	6y{(XeNY#khD_ʒ?|kf9ZBA
e]9[6KCYF H23݈
YezH8#HGC40000 web {_u$s<0)L2b?9@Lx! {]#q>n1x;sgCHù؇M9滃56cZ o_x! s֢|,Y!	ZX0x;sg?|m_Of6& =x; Y]^`*%TU-y0Yu#kqxcogӮȳ<bxx! Yn/
4F3z9'x;sg&G{r[@'Ux! ["BWVEzx;sg|_y.3=fJRuY,ZL }3x;sgCeV}5\G=Je<% 3x! %8YKs\N+cx.2? |9{lSL'u]ی40000 BasicServicesKit )2ߢ|;YSIԦi͑qFq(*l}%+X>2&Tx!B)?&m$_+) .Pn61dyFC!񇇠rؠ4Au	obQ>_[kQXt.#ё!40000 hiviewdfx xMaS[װ]DJ40000 inputmethod -H̨3
쏃E,240000 multimedia pMh8qAl ;E4ʮEa|$$6&ԃSd`0̨mmI69dY|623݈
YezH8#HGC40000 web S,gyvz@]	x;sgC򵉊%7Xiܷ4<b<% '.x;sgC12F8ϮbǔmI,;x[³gmRzs(8@sϣr,lL Yix[³gHvw{?zqbf96& x[³gݟM8jvQf96& ..x[³g\7sƿw`rrf96& <x;sgH9G6j2'Jrf	-& ݗ8jx;sgCHBc
Zg;'gHuyLK?x! 雟rɅbT&Hx! eg%^~ǳMcxxT %9(.11w-z+r23݈
YezH8#HGC40000 web KI<$cxT s	te3.R'd=fUSp2I:,D[#
A^IǪmZo곇m0&Ex 2 |9{lSL'u]یFqq(*l}%+Xv_+´sbuz_K ;ZQt<"]k8`J̎?}^a40000 hiviewdfx # U	)Ͷl^<7Kyi	mbxFd]Al ;E4ʮEa|RS,gyvz@qFcxP *N)︚TdTWftS@e!gaֺ&{_u$s<0)L2b?9i`xT l[_Q[Ƴgf[	iR%u[k,J$n))	Qςinm%iPx;sg ݎ\l[FV򰸬< SnV+{<ۦ "?Gx;sg	".x3#O+.%X J]tx O2 |9{lSL'u]یFqŻ	6y{(XeN?كj"c
'׮?koJd"2k9ZBA
e]9[>g$gq3YdNss{_u$s<0)L2b?9#Lkx;sgC\׽
=ț0R=yf .x;sgHz`TW%VHxmW7f	-& ֜F`x;sg/u
ޓq)x_n`b 
@^x! d9-ZmF/fx;sgHyn_)+,f6& "<x;sgù,;VhQ/ݳbV 
x;sgC~ZhC8sjs?Aջ><i	3 lZx8 Ż	6y{(XeNʩ6KCYF H0Fx;sgC12F8ϮbǔmI,sx;sge{쭎\WS_>qƒ{ }'
 x Z'Us8)_]#ZQt<"]k8:=4c*gF0w$40000 hiviewdfx # U	)Ͷl^<7>g$gq3YdNssS,gyvz@Jax;sgC1ݔI?lI/4>r?2ůxcv݌ .x;sgC8)gKJYޢèss6u& vH[x! WZQt<"]k
x6 WZQt<"]kS,gyvz@ZEx! c(az۟.Ƴ*tx! `J̎?}^aѳ*ax Iq(*l}%+Xv_+:I
ލm`?]\u	obQ>_[kƠ~"-mr,/Q[:V^J;8?7O*Al ;E4ʮEa|Rx%x~#1؟W-!!Q#&xr]e @@*w1r^qFq(*l}%+X>2&Tx!B)?&m$_+Z'VT}ndyFC!񇇠rؠ4Au	obQ>_[k-٫uL̌rXöz挾9'hq~k69-H̨3
쏃E,240000 multimedia qVISx?Z+|A%IV\"K"9L̓$$6&ԃSd`0̨mmI69dY|62= IIo:m40000 web S,gyvz@kax[³g HuTbQMF-eZDx I])2ߢ|;YSIԦiͱq2Kl?cD?Tcٓ2i2U`Y8QMgMQXt.#ё!ӓ[KZiP9yWiAl ;E4ʮEa|4
8c&1l=^>~DqQx;sgC8ޗы-^{6i}2l[Cי k2x! WZQt<"]k
bx ^q(*l}%+Xv_+:I
ލm`?]\u	obQ>_[kƠ~"-mr,/Q[:V^J;8?7O*Al ;E4ʮEa|fF<xr])2ߢ|;YSIԦi͑qFq(*l}%+X>2&Tx!B)?&m$_+JKBq }PQ?ddyFC!񇇠rؠ4Au	obQ>_[k-٫uL̌rXQXt.#ё!ӓ69-H̨3
쏃E,240000 multimedia KZiP9yWAl ;E4ʮEa|$$6&ԃSd`0̨mmI69dY|62
8c&1l=^>~D40000 web S,gyvz@(|x;sgC\׽
=ț0R=yf *x;sgva%/aOL'?>'S lUx! +(al䳞nxX A_++(al䳞Kyi	mbxFd]Al ;E4ʮEa|f#x;sgC17ce&gnV{شe7# -x[³gCƈ=Eq6X&4isf Cx[³gCov-acÚo0_wO̫LKqx9 q(*l}%+XˡH4HxN\ǟU`H9xT lH4HxN\ǟU`Hf[	iR%u[k,J$n))	Qςi#exl q(*l}%+Xˡ/j֜`ok7L\sif[	iR%u[k,J$n))	Qςi&A.Tx q(*l}%+XYE1.x[³gCȮGF		H]y|% /[x! l(b*;Ŗq'
x[³gC'tİ),~*i	3 p^x! GvuD3v*%x! c(az۟.Ƴ*j>x[³gC(ݔI?lI/4>r?2ůxcL݌ 9lx[³gC(H:r^*y}Khr
<}s&nF .x> Ani y?RXm&w:p: %|Q|ۢ*^vfEGzx[³g3fQo+83ojZʽ/f-& @hx[³gCݜqYY֪Oꭕ%5gsf `x! l]ıV=]YFx! l)6Tːa*"vx[³gCȼ	1YBXo :$x! l㦴rMҐ$?{pTx! lZBG
|ө1yx[³gCȖY/fUbx[R^,LK.2xW])2ߢ|;YSIԦiͱq2&Tx!B)?&mOZ'VT}ndyFC!񇇠rؠ4Au	obQ>_[M-٫uL̌rXh|`jT.b69-H̨3
쏃E,240000 multimedia KZiP9yWiA%IV\"K"9L̓$$6&ԃSd`x0̨mmI69dY|6= IIo:m.Dx! lZÔuW#ع L^!Dx[³gCʏkrtLK?rx[³gC?/9T[d&i	3 U<.x[³gCn~$ӻQ[neYqxsf 
[x[³gC(G:/WDw?]9e7# Zx: Ơ~"-mr,/Q[:V^J;8?7O*iAQx>])2ߢ|;YSIԦiͱq2&Tx!B)?&mO2Kl?cD?TcٓdyFC!񇇠rؠ4Au	obQ>_[M-٫uL̌rXQXt.#ё!ӓ69-H̨3
쏃E,240000 multimedia B	[py=l[0qi$$6&ԃSd`x0̨mmI69dY|6
8c&1l=^>~Dߠ x[³gC(G:/WDw?]9e7# ZDx[³gCH
K+k%[	H )x[³gC(HB62ey^ó9e7# 	Wx a]e @@*w1r^qUɾzhǙ|>(fV 8eOڎҐ
'D[qVISx?Z+|iA%IV\"K"9L̳4= IIo:m6Gx! {<mC (Vr*$lx[³gBw'ޑbnA&~zg;{㫛nviٛD~ۼz/CONd\ah6?OVa{641 L	{-uz1C Ҟ_JW/ld$fR@@w}D3cFRl=Yq݌n,0TXT`fpaQ90'enOV`ټJ{ʹZuiLy/ե/}l],E-n0$vh#R~CL/J,Lf0jz9QYZV `OLǌgw5W63#DMf^AiInjIF~
T3+^5^UH0DYniNIfnjJf"#SΛuW?]_dr&-ϰ,Q\驥X=ګ?ˌ<&Xu:Ң̒J0c7zN`5b}ܢ/L/vtI㜼Lő12ݧ>5ݝ]*!1d669  :x  4,щl9LfBhix -Ż	6y{(XeN>M";\4{P$ni y?RXm&w:2'Us8)_]#ZQt<"]M`J̎?}^aѓ[>g$gq3YdNssiA: %|Q|ۢ*^vfaJx! 9ZQt<"]M!zx! lUIxL] ٯ)m*x[³g ȇK|^!{g\T] Sx! QXt.#ё!ӳ*FKxS yFC!񇇠rؠ4QXt.#ё!ӓ6-H̨3
쏃E,2óDl)ex {])2ߢ|;YSIԦiͱqsyFC!񇇠rؠ4QXt.#ё!ӓ6-H̨3
쏃E,2óDd̨mmI69dY|h
>JNx[³g H֊~!o.
O痟X6 Iwx[³g HŊ3,6~-ܑ [ x[³g XyJKWOٳz+w; 
n x[³gT3+^5^Uf Px[³gC(F9V6Ǿ9e7# ELx[³g
VyϬyeJ{X3 sx[³gCȶ蛧8+PɚzޜpLKWEx; 	2&Tx!B)?&m8pMh8qi"Jx[³g',M/p~|yB'&ͲL, Ywx[³gCcyGm~dָa% x$x {l2Kl?cD?Tcٓ٫uL̌rKZiP9yWiG:7	˿2s4xz
8c&1l=^>~DJ>x[³gC
K-\M\}|;ck ܮ@x  dG$ MICGxHx Z+t]Dq35Οn) x b̮kQV3+~ƚƑvW#0x8q>#j>*ZvYe^ \x8qBkzP
UO7L .	x8qBH2kqvs!k2y [D6x8qBHnn؅"細\>L ebx8qBHݣXm/>ם0E2y 2x b0	kٵzvі]x+-(rx}5<ՕD\zx  l	x̜*]y۴Vٸ%c JOx!"Δb.q |&
-ax8qBH=Js64٭&: Oxβe-ȋwaٛDjo1Ilr 3 Ң~xβe-ZƹP]ޗŮ2?7Ɂ ڈx8qBH=Js64٭&: Ux8qE.k5J[5D h_-x Zύ}awçZ=x8qBzDC3yߋ8ͪ=lv<M jx8qBl;v:}6 x8qBwϴP҉JrVXi' Tx8qBH=Js64٭&: 'x8qB%O2h]VoG q(x8qE.k5J[5D h_Bx8q1vw<ܤ? N%xKL+R%{LC+\ac3 Nlx![^8Iyƺ7&g+ x8q1vw<ܤ? N;x ;buJs𑾕OHfjx8qE.k5J[5D h_x3 Q)ɕ
-[_Α\v!9{m/\|*s[^Ex{qjݭZKֿo<oDWu Ex8qHWT7]'y/~{"a 7Xx8qϏO(ٵx7K0- ex8qB'ޏϥvz]5Jl<M -x Zύ}awçZVx8qBϵj7LxSV `x8qBخj
ݓ/& x8qBwϴP҉JrVXi' +x8qHWT7]'y/~{"a 7.x+-(ZqbQ'xOB?nW Y>x8qBH0oUcyO2f ?x[øqBݥ}~:W? BFfIQbr*Ê"Կ.|Eͣ x |sBkudxx ^LeXᔨJgx8qBG{DX:{.,&_pO 2x8qB7)3Wx, W	2x8qյZ7ZDf~dRD ;{Wx8qBH0oUcyO2f xKo8+2IO{k0`xb8L"T<if}iˉTo$ŗׇ;ު?"|xy*Uځ=1vWYsz4f@f&Zzw+6`1<.QWWg	biМ3?}o#9Tʫ@ޢXr+:*(INgXyEND!5?B:r**45UV̙(N-ڟDvjwdp{`N`7C~D+\6uPЖ}E&#+9K+nCXOc e}X{h\U#!*RbGdY]\z(gј 9'wb:;13<9Q=vPw,tBql˨«lAv4A|IL`d-]bd6wGe'ĎR[]3ciVRUZ8J7=Gw6Э,Z,D]V*UE2rD(+"74n!Ub	b{b>pAl#XZZ!DsW9=tt1"mѧX $g.^g'@ev^A{bk|-uJ<bIFFJTPm)@;4	li.{)	D]q'2c[;H%cfO蝺lle57Zf5mf<u۫^ozG]PZss*ff
J3&4&hi%B&XEDUq(ko`7 6rڙٕPWuWgbP.u;nmJ2l}k]35Θ]T5jKZlN@ͱ_Ԝ<hӀxr"7.͌+^WB&pOr=H#G@OD:]że}$ofy赌a6fRKx񕋜_OyAbY`mhx#&B&|&B&r&B&rSǩTq8|>>>RWsǕMJ+NJJhB&DP:J(4%~ޯEF7vΎA2D աnETeQv$(Z&1qWK2Ƀ~Tη}Y>t-x ^LeXᔨJx¸qBș?>W~ꛞ~b1 ؊WxqBH+ԩF;ؤP2#-d&= :Dxq'+x+N=$Sdjâ Г.xbbP&RϽP|j __LӤnbI xXxbbP&H㱝׊{wO_ xbbP&#{J17kX{ CYx8qBG{DX:{.,&_pO 2Ex8qB'ޏϥvz]5Jl<M rx8qB[uQ+H\ٹ0q<M Sx8qB'ޏϥvz]5Jl<M xϟ-blyS7\"H MKxkblb'RmV7ˮ>L/f uxkblb'rhAK[zN4, &vxkblb'mSɸ l6x8qB$bL"y0S ,}x{sgBȹqJ&L[7n5vo9õ#M@%$1($5$3?;Vl
A)2Ff =Rɒ?K8\ЩѻOZ1YTͫ:2[<PM
D/}Ef4M2>WcQۗEd~n4~|9aÅkRlN<׼"gD#;N qHr~nn~^NfRQbQ%C3j¹N,6cs'2K4|tiCJ_/\jv*f][]rWXfju,̜ļԼoQ%"^fcfzަ>Vf3sw׻222SS*s;:}bUF!j2
JKrSK2Sy
_;_i";jRU9%)wel5ߢgL,^W&OcI)g5ւw|oE?5DIM[Ym|uCpcҢ̒J-;$q?ϲT=LI^q~Q1cvbڴ1esҹ$Vwͼ{-05zb[ #e-Wu	I?2h+OMbZ/u@:#s3o .{'=x{sgBȹqJ&L[7Ez%.ϗpzSwboWuexɉѓ_2h!d|7~Ǣ/M'{1t,1'hr".29x8yEGڏw̝z ssr2*jQudѶ9O/[8ٗYRKVr\}W'W1Zd8d26WCg!&e&%00$댺X.j0n07ްI.姓{.\bBFfYfjyJZ}tGGV<ި:DMf^AiInjIF~
2@kG+_{YW*4$375%3U~[̖i,"?efZϹz'&Þ(Դi+onnL0[\ZYRɰEt$xY[})+/*fx.^Q̕8S6l{N:7AU$0uofvWqTL~`,4a<iG6#^^tΙGTsg x
9x ^](#M1OCyrҲqP}oTovR>;&a8zތîFl𭓭ΪTLE΍NW-WzPyb*o3Kށ?K'[ԾV-^pA4*gK!
kx P]i&A_|"AƳ8yay0n	4EQWBlULzKЈI:a>Qo('[iM-fBoiWmꓖ*"40000 network 8cHbsK&_)*bL
+x S]i&A_|"AqBRd!bsw>:Ǔg2H%0xtlۢQ.(e"fcJm[Kj;UKZW('[!٭>j$-ȠTe{֓*"40000 network O}U]'n3}bIhx HMP}oTovR>;&a8*B
okvc,}ΪTLE΍NW-Wzz^d0d\.ŽFc";'[% UPqѺg*aB<`2.+zi	XZ	^,R0x> anoLnćǈГ%zHd*	K#sva'ùHx? {f!/`5GbOsjfcJm[Kj;UKZW('dOxX MP}oTovR>;&aPyb*o3Kށ?K'['Tߌ!I$'?**&o;x;sgBȷ_KMk\rdN28ٖI2\扝VLF"2EL#Ç2670)33|ft+M@!='?)1<s˒ߕ>ݺ( #35᮰%Fw>oSVXz"#,3<%kb'%}V9R3YXd׳T7lr\*e[7iKm޸+VbrqjriQfI%&,+<or) +{lx;sg#UʶnrlڼqWPַ ڀ"x! .-哷IqHIx9 ~UBt6!OD(P.-哷IqHx @~UBt6!OD(P40000 DataProtectionKit ީI^}-/VP}oTovR>;&a5@%>Ɵ
qI]f~KGuߝ~۶P[zWEcIeݛiccƈ60~Ϣ(Y;5oK.CSjGx! l/pI/,Ubߦ8嶱 
`wx 7lt5[3cr
@Ѐd@ yeq;߀!JٓҦHO`:QdMo8C;%*5C87>>!OǺf[*W;40000 multimodalinput %L쀵τܨ[£سW
]+AuYÓD|]XNx; lt5[3cr
@Ѐo8C;%*5C8$Jx;sgCH{эƏ/'?,rа3 4&Ox;sgHǷċ<>Н0Wxs#f 8}x;sg#ךle72?|zr([ G*x! f`"LtKt7HZx! # ɺDjnm x;sg#ȌOe_$#r4ɡok]x;ĳgɏX rx! 9/ťs"'}qM9!x; 9/ťs"'}qMz.8f29UaoiQHyx; d@ yeq;߀!Jٳz.8f29Uaoi9	[	Bx j
o61qb"lē7>(-# {(k40000 multimodalinput }ԻhF07>)U9?p~?VȪX\^xrHdAtO>s}GϓD>mx! rjTO':eJq 'Tx;sgBȹqJ&L[7nuko:TrKK<V PpI,I(/IM.,ar
Y}]E~uӧ5yS&c=SKΨE3YOv1>='?)1OM:~IŬUPX{&=olNpO̲
/\鎎~ýXynQkuw̼ҒԒG}ft|6{gĨҜԔDW;26sܚo3[&v/+3YnÞ(Դi+onnL0.NM.-,d"MG@j<,뭾HO`= פx;3gBțEEϯ!"*fg:v>|]usr"jCݷޱD"/x%~`\]čeE>,ytjE'70<IѲ#,oNhkfb 
y9IEE'ݬܵ@/m{cU?TtߟVNeֵ5ڨ9k;uڭ &e&%0l©W&;6Y_D۽uuνSɿ,%ms_cA-)MMLd0^h!udQzg-'MdRK-)/fH>afdJ(Dgu_wvͻ9-߄{V<14r^=mԼb{Uu}=&1YOĢj	=Z/dԯϱo=m Lax3gC(ȹe,xϬ+Nf۵cs&:F 40x3gC(HTҼq*iһuޯǹ9e# hK^x! UEcR;:{ix3gC(vKarԅMfmߜɲ $<x3gC(~8UXTlvzs&:F <rjx3gC(O:[-wi͙,x! U>pƛ=\2/#iZs	7x od@ yeq;߀!JٓҦHO`:QdM973Aΰ940000 multimedia >!OǺf[*W;ip~?VȪX\^x.CVx;sgC=Wvg|0g{jiy2zF 	sMx;sg2@kG+_{YW}?F \x;sg+V,yK^X] /,xK U>(-# {(k40000 multimodalinput %L쀵τܨ[£س"[x;sgCȦvS",#>~Fls!f ?x z]1L`xbࢱqJ}7Mn  :icZrWXS;G/l.Ƴm Rcp[[z.8f29Uaoi=Sx;sg%yeK*igЫf_L 0x;sgBȹqJ&L[7Y	nx;sgC(Hyݓ+c͙,7x;sgC(ȫ|i9nM-͙,7 x! &J}7Mn  :i^0x;sg3fcsO3'(bt_L 6-x;sgC(ȫ|i9nM-͙,7 Zx;sgbfoQ%"^fcvn& m-x: 
o8C;%*5C87oKfhڕr=JMԳixux: &Vt2# Uؓ[oKfhڕr=JMԳi)$KHx;sg>g7uS"'zsw(%dd&36]gp74ޅ,L-OI`ϕ9ڊU_,Ǣh{SӦ6o!185(a7I%«"U?HIڎ-WqSÓ  QQ	Ex h@~UBt6!OD(P40000 DataProtectionKit ީI^}-/4'l7jJbBox/.-哷IqHdAtO>s}GϓDbGEx9 ީI^}-/o61qb"lĳ$`Lx8 ީI^}-/(Y;5oK.CSVUGx! V\ZE:%qH*/x;sgC񑆻82ig L6-x;sgCHhv]8]ę;C 7x;sgCH~lӷ!d>-L vbCx;sg3fiKu?ˊnnxz}{_L )qx;sgCHso'TKInvSͶy xn M<A, R8%`
Qa
	XHHhm0ef/h&$DYH*}(j{pfC.[bK0x;sgCW}_[=<8# Uzs!f JxT $6)cF}Z@yscTɏ}4/u
ìy>1?%Ӣ$(6<+"
-x Y]rryTi(hkwӑq$6)cF}Z@yscT|b>oO} &7 Z*]Z?քxi6)ݱ9WIx.+40000 sensors ?%Ӣ$(6<+IMx! zw|($|,&!x;sgC:peyQԆ|}[ Ox;sgCt:igc_>-L }x! zSOh򣻀 FUZ"泎	"<-x! z>_C#T8ȵv\n'S]x;sgCȽKw2,Q}[ .x;sgCȡxe?7?JUL}es& )[x;sgCA	_7Y{]}[ X x;sgCȑ
γw͒_kz''>-L N0ex;sgC񑆻82ig L6x;sg3fxm?B||r~/(6_L z\x;sgC(ȫ|i9nM-͙,7 [x! cƈ60~Ϣbr}/x;sg/Z|eAvw9! 6CMx;sg3fm3]aln£(_L 	B{x: l5@%>Ɵ
qI]?%Ӣ$(6<+aIx;sgd_Fp\8y+ -x;sg/oWuex͉Y Zx! j{pfC.[b:	x;sgCcvbڴ1esҹo, -jLx! e]	Dجy0}TDgj	+|x;sgC(HبKv:zBpL \.x! laT&'9
]x;sgC
ݍo=+zo9
S Ϻ,x! l3_pZ׵V%kv:%Qx;sg#UʶnrlڼqWPַ ڀ"~x;sgBȹqJ&L[7Y	*x;sg'ȋE:^_4X;=|W6qfY&U CvXx: 	Pqr,Ja(OC~v{,H`;ЅT2//Ӂ<#x! co@[*'x l`v.lԦҡ#S/cxs~ypҲxؓ zyBDr6M-=1K~Z*kɜ;O,;40000 filemanagement l	(ê4VEy9ԘMj(ԨCP.^40000 multimedia % UPqѺgi?{,H`;ЅT2//`mtx;sgCy/,U+>hC I"x;sgCw]F'XɮnͶy :Pxd 	N3Ɇ	^F5]=1K~Z*kɜ;O,;40000 filemanagement l	(ê4VE'sx: 	Pqr,Ja(OC~vGbPt:xʻ;xx ]1L`xbࢱqPqr,Ja(OC~v9ԘMj(ԨCP.^40000 multimedia (zxͻ <aRlSi`4hx;sg3f{MyY8&_L gYx;sgBțEEϯ!Bo/7L,dw=+k-ly29x8yEGڏw̝z ssr2*jQudѶ9O/[8ٗYRKVr\}W'W1Ϭt 2'].V+z@L,L-OI`ϕ9ڊU_+(-M-OaX(|~c<JCTd榦d&2Diq?:jdiZX*OƢkh``fb_XZRɰXHI<Wn
=|7ԼԒlcfKtLy_iE'?bIq=QҩiVV7~ܘ`49uӄ4$Rs>?^?#F a=_xk ]|~`]:sOX<A3 q(zIi0LvT<289W-ѦbuWrd@'ؓzYٚ
u82Ƕ9K/2fYxR ]|~`]:sOX<A3 qW-ѦbuWrd@'ؓzp6>A(@*-(\':w%[x! 7tlxib 飬HVKXx;sg0H,&KOe
vܬ" ?x;sg0ڔ̓Of/5ai:, ծf	mx f*B
okvc,}zyBDr6zz^d0d\.ŽFc";'[% UPqѺgaB<`2W.+zi	XZ	^WI(x! fңT8K{wzXx9 ] m2=`"ècqΪTLE΍NW-WzYI x9 ]rryTi(hkwӱq~KGuߝ~۶P'6hx? }ΪTLE΍NW-Wz#բfGfĝ7&26x: fΪTLE΍NW-WzPyb*o3Kށ?K'_x !(anoLnćǈг%/
gAANWK֨iί2דK79u`eh擖*M100644 ndk_targets.gni s".$<աS]40000 network cƈ60~Ϣ02#բfGfĝ740000 web PRl̛%mo?/hnñ^_iLx% )#բfGfĝ7& x;sg0Hk))1z+uKVdYE	 lOxT ||W
rq 5% UPqѺgi?(Y;5oK.CS("	2x nl|b>oO} &7 ||W
rq /ťs"'}qM9KQ/y?RI{O3G40000 multimedia Z*]Z?քxiA	Rx nl|b>oO} &7 ||W
rq /ťs"'}qM9KQ/y?RI{O3G40000 multimedia (zxͻ <aRlSi@,rx;sgC(S<2w$J][f%9&#  x! U4/QЛꍁδiPx;sgC(oűVv>!V͙,7W~x! UMwjN<Z#ʳi>.x;sgC(ȔAs2?v͙,74\x! U% UPqѺgi[=x;sg
V[Y5̎5{X ަjx]|~`]:sOX<A3 qKOpenSource jJ[;&ͽDqZE>S^d<g્5>˸.QV40000 commonlibrary s~ypҲxؓ ΪTLE΍NW-WM8Pyb*o3Kށ?K40000 hiviewdfx EKWF7mf0!zXKiFڍi*"40000 network RpjZ`YX0{,H`;ЅT2//T2ӾG-8hp@40000 web ٫ VǠ(eUG9/xx: z8k(˫Aav1hE:ͳ{,H`;ЅT2//H^x;sg3fxm?B||r~/(6_L zx q(*l}%+Xwx! T<q+6+&>mH-Jx;sgĕY|{kL{Ҹ.,'{"^x;sgBȹqJ&L[7n5vo9õ#M@%$1($5$3?;Vl
A)2Ff =Rɒ?K8\ЩѻOZ1YTͫ:2[<PM
D"3&tl썫߱DɲL"]2?KLF7?B_ٻ5N810Y#2sRsSsSJZuF],
Xx5z_V/K~WtĂdej%\񮺿eߋ%e)i]3-?o&gX8)鳒dΑr,"wel5ߢgL^W&g$qkA;>7%^*e[7iKm޸+Vb]qjriQfI%&,+<$81xE1WOm9UQXTRZ`+˻f׽]_Xq\UR1 k x 8]1L`xbࢱqN3Ɇ	^F5]=8k(˫Aav1hE:40000 filemanagement cZrWXS;G/rA0 #JLDOVŕ4[Z*]Z?քxi?(Y;5oK.CSvRzx;sgC
ѝo8JWgYoE~r) Э-x;sg3fަ>Vf3sw׻&@YZVE+s2ϭ7jmYE	 bQx;sgH_ŏNJ$sd
 ߍgx qlɏ}4/u
ìy>1D6I~M6N|~40000 graphic ~KGuߝ~۶P[zWEcIeݛibPt:xh@Qx;sgf_V/K~Wt늖7 Kx;sgfD6cǛx]i.
|9	 qLx;sgC(HIwf	wKk
x'f9&# Izx;sg3f"kd_rLtK1ޓ AY(x! 9zyBDr6M'
n0x! U% UPqѺgi[_x;sgCGC_%o=sNC uQtx;sgCH8i\.-L3%;ZC ;"x! ||W
rq "[lRx;3gdXZ!#ix& g્5>˸.QVyG|x;sg2@kG+_{YW}?F bx! 9/ťs"'}qM#.x3gc[y+]gHTU*o
 
P=x! RpjZ`YX0bmx  ]|~`]:sOX<A3 qKOpenSource jJ[;&ͽDq|b>oO} &7 ΪTLE΍NW-WM8z^d0d\.ŽFc";40000 hiviewdfx EKWFRpjZ`YX002ӾG-8hp@40000 web .+zi	XZ	^k_Sx3g3H@z9gfQ͟cwx# F|x! cƈ60~ϢbRbxP /e*Ǯ'BޝܒYԾV-^pA4٫ VǠ(eUG9/%wAx; C+ܛWa>Uft&fz^d0d\.ŽFc";'W/xi fFS@kò -lz]>||W
rqM5mf0!zXKiFڍ٫ VǠ(eUG9/400x;sg0D{sno{1`逸Yd H1x;sg0;ۥ_is7-)[˽Yd `r_x;sgH@z9gfQ͟cwx# Lx;sg0ws,Ox̐LnSgfuY& 6x  f7nuUA0ɢz?Gex LM/ӭS#F6߇+La8gE[C7ʍ$O|%l)Sm~<ߓz2+xx7Gm='[¸00EƂa}\dZ]YmKW;9,NW٫ VǠ(eUG9/S'x;sg~_ >5}. Hx;sg9}tGGV<ިfo tx;sg0ȎeIvOeYd CGx;sg0wcfEs튕kިs:, HRux! 	=пj[ϩ'Y%x;sg0+s{U}ٷj*g,L _YSx;sg0HdJK_0Uc=},L D?x! fFS@kò -lz]>;ox;  R1ačgHٳԾV-^pA4z zxl zIi0LvT<289O|%l)Sm~<߳z:Bb7)9hZ]YmKW;9,NW2 00zx;sgC^f9[ȫ}Ri,tDqxh zIi0LvT<289W-ѦbuWrd@'سzZ]YmKW;9,NWOt,Xݗ5-B/zwx 0)YcE{|mx=!x;sgBƦshHnPl 
oJx;sg&\kLoz 
sx;sgC_$p: %x;sgHW7l<g_TepFDM  xK 3S2S3Kt._4OERw2ɉ&3Xh^UĥOQߤ<T/,y&k]r2AO,.dpnd,w޾u+}69Od7ҢeȳјTZ`俄y׻OLƧm;)[Uhţs*@HO.f(wbI8Lve6gjIu(\"b`&	; ssMb+d
22V_:|OGڻLlPuߦ	њ[SER3Bmo??vvdE)9y%-	TϽ?왜ò̬OI1_b?ZW8bDqj^q~Q1C]fݶtO3-7 x{HVǞ/!ُ}#,F|:F >c@x{7kS.oܩCN,\nx: .	ӪGCEsS@,B8O}U]'n3}b,y:xi fFS@kò -lz]>fPyb*o3Kށ?K'[mf0!zXKiFڍ٫ VǠ(eUG9/0	xx! ԾV-^pA4'xS zތîFl𭳭ԾV-^pA4Z]YmKW;9,NW'	xl zIi0LvT<289W-ѦbuWrd@'سzԾV-^pA4Z]YmKW;9,NWE@0i]x;sg3ȏ;쉒NM0oaS(x! zތîFl𭳭Xx! fO|%l)Sm~<߳zOx I]i&A_|"A/ӭS#F6߇+L8yay0n	4EQWBlULzKЈI:a>Qo('[umf>B%fؓ88cHbsK&_)*bQ%x! fFS@kò -lz]>;%x; gE[C7ʍ$¸00EƂa}\dJx;sgL&*Ly5>K^؈}18bxZ wx;sg0˪i=R~hqzS>Q٥,L S$x; M/ӭS#F6߇+LazHd*	K#sva'%Jx;sgCȎLhQs*SL .wx z]i&A_|"Aq(H%0xtlۢQ.(e"f@;k8,O;L[N;'[!٭>j$-ȠTe{֓8O}U]'n3}by<x;sg0Ȣ?Wm{oL?ݿhzn,L >Ax z]|~`]:sOX<A3 q(gE[C7ʍ$f]LKfd_r'[¸00EƂa}\d8RpjZ`YX0bF@_x! 
q,U4)@%z0x;sgL&֋33>sLә]x! p5ÑhZ̆'x;sg0HaՂY֡G&p:, .x;sgL&Χl+J(PO#UiZ -x;sg/Z|eAvw91 ںIZx;sg0Mޓ<jei}sfuY& )x;sg9ﵡzʸgG,I MW5xp ]i&A_|"AƳ8yay0fe&.gS<Dѵ'[nXAI?mHR=3-x9 ]i&A_|"AqǸPчmikN^ux9 ]i&A_|"Aq!٭>j$-ȠTe{ֳx;sgBȔu	Kc[}/aݘaceV <x;sgCH.'}-_];aU̧  3"x! Vmd!=~URx! rx'8=>=Z#x;sg0759zE[)'w\|YE	 ֨0x! `j@u`x;sgL&w˛=;Ҷ&Lәx& a}^¶ ;hѥ)q5xsgC"(de&'dyg0Xn4/N$+gw  twx3gC%;5>2S-/orgs:F ǀ$x: eqP tIa4[+/P	:)G_lONmxR B\`X͸AǨ}NeqP tIa4[ V>yur%̝`l?%Nxs; 2s2K*3K~x>2W$=(rJ,LN-*LN-)MQշՆY;0~3PbM"Ad^y/4]aߙ꥾!dt?KC6ىE٥s-z,`i^bΨlD<L]i}zm|)p3-sqܕ?#bbJ~r1CfNڅĉWnh&Vogr>sY^յ	Ӹ#s?>S_xzD_zQbAFf25bwY%Ʃۦ	vXUzRҜĜ̼˓%lZ1iU>ҕQZR_`*Ů_IwԦwjjm p
sx! oAĘ&a(D"9#x! p5ÑhZ̆$>K&x3gC%;5>2S-/orgs:F ǀTxsgC"(de&'dyg0г+ㅊ赬Lޓ뵍7'2d "oxR B\`X͸AǨ}Ne&.gS<Dѵ[UT#0/έlk($x;sgC9FO2ѻ"xf q' ax! o`hB Bx{t>?x3gC>{ʋÞZi[~s3tf mx! X+/P	:)G_lbx K?5S~loꭱjjKx{BE z`x{BEۘE"$d=̲睖_n9,qx> x8yay0nXAI?mHR=liVqx3gC>H	?)O&PXY}S~LәXx! eqP tIa40Ox3gBȆ}^J|\llv <\x3gC%;5>2S-/orgs:F ǀx=gBr~^^jrIfYfIwf	ÿcR¿udyho# Σ?x{ȓu&Wq;H6߬|	 }mx: n	4EQWBlUL&KЈI:a>Qo(Gwx! .}[0:dB	L-&x. x#onnectivityKit B\`X͸AǨ}qcx{nPgW_ىe# hx! .W652Ѩ9Bx{piO÷MIVlvbY "Ax: .,˦?(К5Q畓B88cHbsK&_)*b$Ix{piO÷MIVlvbY "vx{CXQucyz^=_e\ۿmsK# #x! e&.gS<Dѵ,jSx{7gtѲ䩗mr㟻ىe# OxT E{܉$Oت }Yf;B ndgYxۓ[ۣ$Ք}&Tnv B'cx! E8yay0Y>x}{ HfNڅĉWnh&Vog+j& 9^x{7gtѲ䩗mr㟻ىe# O\x; $P<T:Y[tqz8H9\ 
;]f!,Ix; ${܉$Oت }8FNcQ-m e䀳;³! lx! ۣ$Ք}&Tnv !JBx;}{/}\g}T][Եu":F E'x;}{
/OMMx'kXDLәi/\x;}{/24_tzUfEu "fx; t9=T"hP'hWV	>kLP>qd쳲CR'x{T&[XOzu'DcN,"QxffP.b3[rK;s_~b*W *xffP.rSV99[ rr'xffP.8%`!#)kj%j x3 :b	ڃw1NLV&RZ3"H2tl0l7r_x[Ǹq,=Is$KXopQj^ y*x[Ǹq,
çL~LG*+ ^MQx3 f_%AUΣLz ;az>ˮΟcgx"4zI{'*6+7 Tx;xq&)qf?zDK_nv /~x;xq`ƣݖV?4DNv":}ˊScgsHj otx! OA'TәK@maB@@`xMN0F(kN0,JJvPS0uKq$T?E3/whuQ=4+6( *FmtP0ٹc{p2U*RFj5j	{scp8{v`pt	sxjm)+-圲}D:p`#i:
u6.E#Z?=_V
Bb7EveR8(K@*d	r׃bgv\fZ9"mLylKd|A`B)X,]  Y$oL5@ ydJ%+a=dIR1l[xaoL !jrxͲ!+ R,xg9MLIEIDCpYҒʼ䀢LbHѤjb&AJx{swCd+6avLy9P`ijQ%H:5(T *.VD8x;ɻ_lB'RZfQqI|f^IQ~JirjPjbhs~^Zfg-PzT~ĒĤT"̨\_&Ny)9Q0,3F%U UkB=ɥE%>e9d;ı(5(X#5)Ppz 
D bJx$2C@siӿȿ 5g!=E0E=iw \ISeHQg
Ԙ%㔚RWY3Qa?真Y/  ;Ddx* "100644 udmf.h y1TM"\Ax3 56{Z6xھ믑I1?=1J6wDx3 5	 FI1]zA.e*Axcc`*3򪽇~x5EC5]=]߈Ux3 gܳ "`ܯMec35Iݩܑ{=Ir-Z`x 2/#=eߍFdӭ/x[Ÿq	6L.zSWr)R ѝ*x[Ÿqwolw=i}R *x[ŸqGq76=ƺOdQR L?x% N^v
%Ov;`_uxZ N^v
%Ov%bQfHLrWGqY-0?r76w']yu߇Ķ=&l`x> N^v
%OvSYHqRap55L$/x ;$100644 BUILD.gn M7%<w$8dO5S,tuz,ў:eeOt2Lzh8cInY!TnZGs% (Y5E:(0{?a"@B{4Yx;"H5Ub<A%^,+Tp){? 
xwC [í6ުif&&
)Ey%iɩzL_ϋֺ:{SEXT>pXsʥo:\RضNTiNfR^bIfYj|l"sy&9kwyqv K@x{_D)E/=ɛ~C@FfFS~kfĽZW&ɵjU5'X'Od|qHS3_pKoV>ھen<v4n.W
c(l&WZ\YP_P@ݹUˤw6OvT:'3/(/6l<цjqmվ yU|HeA~zQbAF%PeU͍+MWYzOevxMJ<v)_+;K3QbJV5t[f;<!΄mS\E|[f-ye[C9bv|MIĞucaYoҩze{
x U$100644 BUILD.gn V`, 
/G
ѹ?$oM mCKGϦ v(/W 1mevfZ>N4x0w]=\Nq˃Ekdx%{m1s"7S[³g:=T6k^u@J8x{_D)E/=ɛ~C@FfF~B _S#n9=y"sD|x
LK'Ͳ_m.aY(,341
'ħ'ee0$()_*/>sAJs2R/^]h7;{/4_WɇT%dTU~i8b!s##ZHhKHTQiPZc#6^.Kg:@iEI/$<\ZvrvGɩl"J?^oK&-fll;)YwG35ν Mnx5 QTnZGs% (Ye{%,%ApeE.}ax` ?=nrQ 100644 drawing_types.h :(0{?a"wSk,
Px U$100644 BUILD.gn V`, 
/G
ѹ?$oM mCKGϦ v(/W 1mevfZ>N4x0w]=\Nq˃Ekdx%{m1s"փ\A][(uo{K	xwmf	%lD|+Oox̾+YR 7xN x20ZS;u'4t-M#A?^˳7։׺$1W$|x5 !hQ}7FDϸ3Ӗ) 5{( jК<b]"&]KF x !N^v
%Ovnʙ'X:󺷳tbwF>zOVߓ0~iVnp{+%0m )[:$$uw_)0run.h }y #>zZgj!(:Yv!
5{
hrŅO<lX;KiB1]uxq x20ZS;u'ord_cmd.h r kqHר6@F`U7[p~˗*Zԑo"V%ݻD1U愇u52Iux5 !R4 [uB~ )15{I'T͛VpI*~MDxwC 7
%N-蘪)~s*c?+ G.x! 6ne\ KKճJ/xwH.|j^w':9n*& -xG $100644 BUILD.gn M7%<w$-|aF}t'6Ntt7eɹx- $100644 BUILD.gn M7%<w$d]x6 6c?HGz3~9J7։׺$1WkEx4 a'){	Цj-?W39[&6M7;3kifx;{w"H~7_l ʘ-x5 !TnZGs% (Y5{9BKrpꉷAqIRdx! )[BBji k1x: vi5H
{NP05<9w0ͬ}Í<Mȸ`zx;C%z{j3/HPT`\ xkblb'1gx% 
hwx6 hG"]Y&N3G|^f{`sSݑ5E>x6 hv~ΗF=+
=qɑ|$h4aқ5Х/;5Gx ˦^'K\5qvsx6 hq}$ϴm+\p0|^f{`sSݑ5<7x{q鸹^6V=/ߕ_>݉kLܕbx hq}$ϴm+\p0|ej+Hx6 ;>,u	%TV2QL)OI%a?:Tћ`C5BEx6 hP弱._'/oX|]0)D<{rRtn5߄	x ;<~q2Orqx{q%|m:q#}5 lMx h!wq5e_z|e=-x3 hFm?\rS|Q{4)g!b*ǓZTAx3 hQcOV:kby|Q7]>J/5dƨ%5@Ex3 h
=jHB>|Q7]>J/5dƨ%5^Dx hodF&Oo|er-x{qBݞioKɬsĚT A:*x{qBHdck>'T|vmbM* ]{nx{qB{Ejگ
ure4& 3p+x{qB^r>ݛ>:(=d<& }*x huv;m?sȒѲ#|e!x[øqe*g\hcp$!w li+x[8Awb@ 2@x[øqBH&E26j_gmÍmb 0
xqBAהJc/rך%/;Bm{&= ўtx ӿ鶒8ç
"86,2x  X皡JۖXl5}!;&cx[ƸqBOY_<?܌-:(?Adb Yx[ƸqBzCևr$is35B3j Ax[ƸqȦ=:;K:t;Ad[ ו>x[ƸqBkj/0췑	ݦ	" 7:x  X/Dűܭc8&W)x! *֑ٞH1$[xxqBsM/'晴๿TtDC&6p0ƚ-!>^=*uXV ;'xxqBHckOUݣRIL4^ W|x! l6*IţdN1$mx{}CP`CÑw6H]XzsS# x{}CȒ%j\-TxdyLe Mx{}CHLZ\}.ꑪltEdsS# .}x! Z '(7nv/x{}C콖WgMԟregx *sЖ4+Z1NxǴi?4-L_ӉO +R{xǴizWƇ33f~nGy'Q ՠ(xǴi+_<r4\%t'Q Uxy q
V!ruoF\KA`aC&hyH100644 native_avformat.h }*o@<>e>?o/NC5
xL qro	O`WSx~bzk:p!dS_+EDBU~<2Ջ3$~[xǴiwC;FGGܰA( ҏx 3P$Rn9Zn-xǴi.k5UX^4.cp\O ux;tiBHYu˶mTd}Ēk Gx `n2-Yp9x t#vx;tiBHufsX+vL, #xF &100644 avplayer.h D8n˿S1DV jʢZ&:;1~f!8>t֧u`xF &100644 avplayer.h ۣj_7cXje&:0oPghgO}t5xZ c7d3q)rvۥ!铸(xi`o^Q_base.h [58q6mOCߐ'#?,~'>xF &100644 avplayer.h GK(	d?x&Ƒ&:QөKJKi;tӪ{>xB w~1hآkTÛȑ_base.h <qdT,2x `P8؉o?2t~~x! `<msZ)ׇK(AXxYmsH_1egr
d# 㽻R!idsA4FQLtg䒨QK|X|$ZEoK}ArElY&&Ll%MHL{_$4*5!?~MY{;F٤SJ3dBϞ:F4<!fV"xsVmDS5 hZ5U;5tAMS?6~M-9jmI)Y&~OW$VKhnfY7Q^<,j^H9Qùʍ<КAmeC,X3\Oɝ1֮ecПq{ѤCVl)_Z(y^h2HL檦lLW%gg=YNφgk?'gK/rEOI54x,2O|fzD/|ud屴az_7A_,e*fR?Ozv8OǐBg?n|]fYdbx4ܬiE^`CvK3VYnvQsq|U#H/?OdtGܳJI<`͒ْo.LlM=?YXϳ.!^8g4z:
w<
<Rf`k䇒'Mq0?r?dIsb0&IjO2e{˜t8NEېLz׫wIe-Ylb=v3.H1~0wM]1-+y@۸cq t>_~0p5L[jǰ:501aM5a-kukcX`cX: úXðzǰ>?]299bsh)qQNXl!	v{KmhS'OwE61IWٯ>p*hF\@Ե~d]E+ )~S:\ C0V%5: CnP CnÆ C0`}Ű C*a
& C*J`H1AR7
Y C*LJ!!a7!lm"s Tp1Q0Ű)
!
 0wa-#=;0UhGknVU@%Ȋw1G1Ckq{v{ZyWr34]⯨ª7r\
b먉[~
EZdvvy	pۂ8`}7oO|i%b@,6]Bl	4kw|֤pR(=<jIu-~oRӡс/r_vdPH.T10* )tdmZmTW4<tPeos8]P-ӂAXk[!
Fa3)/D\B qCC1#T~ =&ʭ vzI#h;V3Th@S[}
%tsmP\JaWZ┘|83R
;$
7j[)P<®"x<c	 Sb:V[. 62!6cCӬ:I0˝TjytlhB$lN&R:
'(zyFknݳnAe.$ŘrSd21vt"rf%[/.R6P|Nf((!}#nG:E,Q=jZ$!CӅ _u!6]D U5BNҰ]D_ȃAC
ۈ )}D_yВF/ۖN/:Hp+t@zR LSݗn^GnGڼ!W.^(ry
79kU"~/a<+g;N5zd~4z7N@@d~ko~mvs2|vOQwg=ࣾ2|Փqoh:AIxytfP.^lƙ޸vL)=Ռi`%eXPZ^la?k@vVzOF85Ql}P~<Y_5chI?IkOUɏs=xd{vC&GkdkrJjZf^N&kJ3&1=4/;/<oDVP?o?p?[]ɍ"Yҙ'gڬ:9W{4^;Ey'_||`ڝOL7M;y~§<Sw(D;?!td&{	hO.E:Mf4l&?9	L>.=f<jZZ

Z\\ʩy)i
Z
(^ >dT7xdv	fĒ̲ɧe'ab/ϛ<U'?OVApr~5)u}--Z-}..Լ4}}?0xoxgx. lhx;o{vC13Cvfg^Aiwfbi 	xk`ᥜcgkkdk> 	n+xkga%c5L!2 /2xffP.y¹rW;1MT<7 v0|x[ƴiIͭ)Lxٓ_#'xV >7֨IMvY\\(,100644 mutex.h 9|1-S0u|J$r<}C%(#x >D9V2AѮvM	R͛x M][w/I9ICx3 av7h`.Xn=Ru)V".U*=Bx3 aq3ុdm'ˑu|J$r<}C%(x3 >k,{>FM1R5Mta? :$|{Q1Bx >I"'umCllR%nxY >cUIi}ʉ7]R:3 q&fPR^ڒQ}100644 type_def.h dZ={./>ST)x[ƴi+in+EkۏAW +x >Ԫe)O[Y&{֑R/,x >.E4RejxA :RT/Za?+O/(K100644 type_def.h 5Mta? :$|{#9nx >֨IMvY\\(,Rzrx8qȔZLH>.YRt*K"Ҥx
0}"dPZw"2N&݂[92^
عvFzb5ORgH}I8fCidT->+Rwac/cO"܂A^Hz0~p(x7 mڳ&hC/޻ցa⑁{spJ&b?3
pxib2Iü#B($e&g敤%&e0\u#xQ^Jz{81Vʾ5bTv>]#)% Qyrebo+e,'2*ջK.y!,uG {Gaxiw-~;{#{76ǥ MWxe ?BA͕}=100644 arkweb_interface.h {`żg$nQ5@{*VEd!i6אg-|ɓbݞ,
txi{:5|d_;l_BbQvyjR|f^IjQZbr^6yWs\f͕wA^[v~[S>|U^RRY 2F'g|\WuWdF?"1鄇?' yEx3 JKMZګLhM$4wH(HOL;]xe ?BE,q|5?o&e100644 arkweb_interface.h r&?EEJ4f{&7?npzM!Ɠbb*x xo͐mΚ	b_.xih(%y+j95I)e c y+xi/7ůISK	 +x ?;:Si&bYx8qBH0oUcyO2f -x Z+t]Dq35Οn) \x8qB[uQ+H\ٹ0q<M ~x4i+H+:fw4T(5#׻ +x6 u
 y:׳I6񙑉QsE	YN܎bjE;+kvx¸qBH>ٮYŶVUO+c'6*|rĶ'h Ax¸qH̬͂3[e;a}vxVnF?4|J dgloxmòFd/9ò/ɧKRCJfDbLwWU=< h.Z|ֿS:z))+[ +EzrY+k_N 0;_\+۹qNCeaQU]'U4Ir~BRd$T'g6q"*	/٦FV%4majJ iIP]TySi˔	'Vm]<0˘Ίܜ2H>#+f=^ԡ3mJ[h=W˄k .G=[G.KV~M:$f5sE'A?uڱV^Y!
@I<lH/WSg"vH.&(zMYZK_8UpqD ȟ[]tnx'7~/U6)|gH!?4ٱ{vܖ}/s{u~vm7s8TfCeI=fٚoEHۢ+ڛa`aBnflX03m>B0U}WqROq3	QZhOb&
#"joБx1tN谱77Tar7~}g-ubaV,W=JPý,F16c?qKMK>'v4&"(rIh!J=&M=6F#,RHͩ,øa̓C:hAFkg!bM5OFknӹ.KL=sa.GuZQH]`k.|@zC>06sFB`i?wU=b:-I<_8EZhktV	\?AgQ#F[$Ĥ>xdIbQ4vϜzv[;+qC4F/,P~
KE.&6ԣ|s\-o8z6Ƈ֪)*DwK|-c@;)nֶ៿nKQe4/>nD"MCE8|	IMgcr^9yg.uvx/s0kxx)1zDe %x)vI.KAD(((%*Y)(d&)rMeR¤ ZTWZRTfgbgVvI{r<dYfGY&0rr 7~&yxmJ1ag)^J+audaBE[̄&C
X$[ڛ>Aϥ>B$*b.~_~,\x^_xp3Lƾvu\hUDV#毝2"')Bj])8elJ"C̨v;aljQtPWD\`JYƧ gRHy+-?=u3yM LI86A'$l% 6n	M*Aʙ"SfH@dI2RVI[n84EԵ
-( J(P֜9+]>h\}"Z3"}xL%	=j鍬nAzwMl`IKі2x)2Aes3FV^X^. 5mOx)e)+/W,/ Hgx)"˥P"sSSRtx&¤ ZTWZRchDF`e'sN!5(dFZ^X^. 0Ox)vI.KAD(((%*Y)(d&)rMeR¤0ysLT&2O>"0م9+ !$x)Y)KAD(((%*Y)(f*rM>̬5Ib2'd~.z,ܓmY4&sLne|e:[-/W,/ ^x)"˥P"sSSRtx&¤0Ci9&\qHM>"0+ mGx;tiB3 "1tx;@~C+sni׳V2N6d&S_WYg9>6A^̤dɆ<Y7kq Mx;1zDNm\\ GQnx;01zDNx~2rr PZx{ yd6=Ռ\\ MT[xŲejfc=É{@d{F}0]x t	gxcg Qfhgdg8Y+ 66aJx[˼yB/()Y)(%g楧CFibyj5`œ9 &x8qه7ڏo|x3= \Sx MАo詡44Jx3 7]bapOBf;qK6?DDvp9&xMzfTDx8q{LZ*E[; wnx8qBKNY|Odo󎯰 '
^xôi{w9N
#]e]̌ .xôi{#L*)vU-=+x .r,!~9*-xôi{ŜWG{rmr\0̌ [xkblb'R)r>~U2 [xkblb'(>ig~VL>]Pc} mm/xkblb'ηA=HcFwG" }
Yxkblb'r۷;7$]0ga7 gN(xkblb'^hk!W- |xkblb'R/d?؝ǶfDj+9o 3#xkblb'{ORVO{6o" 
:x [9eT1"^05I^M<B8rN朎mɟZݑ;i#1ѫu;40000 image_framework 0	"3vG%40000 media_foundation kgcA^W.?)K퓓AKox;|y=։W2;v}+x;|yȃfQ]~^Z|pFJF #Kxb 9m6ZN@Q:wyM? eIxr;tHz/x40000 media_foundation kgcA^W.?)K퓓A_+>x7 9m6ZN@Q:wyM:!aUIZW&%&lhx;|yH륙L뉎Xnb ޺5x7 9m6ZN@Q:wyM.>rLm[[-Q
}x [9\4>8o0ÑM<B8rN朎mɟZݑ;i#1ѫu;40000 image_framework 0	"3vG%40000 media_foundation kgcA^W.?)K퓓A҆Kxx;|yBȯ[?|+Y<u;׍s50,x 9D6c[֩ųkMy%B-x '١2Hh%d@M)[Zxe '١2Hh%d@MFV!g@g940000 video_processing_engine !/ f\mEa#tAX?-Mx4 '١2Hh%d@M!/ f\mEa#tAg%6x K<g[fˋڴax;|yB[QYw?9GJo ͸xz +-gPO6K	R2*4?|&4-hA+40000 camera_framework Frv@XK_7FCYuȱhԟ,w(!7W93i]_4	x;|yB.=NwFլ/,>Nl9q&# µ5x ^[,Ƅس&ƒ5;rT|cx;|yCǝR16TϜ< ɯx  U}',)צ)Ġ` i]?x;|yȟ;+bo+_ۑ*}}Zs<.kx4 ܇H]{#ָizef*] jdńnC	Ú1Yyx  U}',)צ)Ġ` i]/x '١2Hh%d@M)[x7 [Ss((⑝etm7N|H^j 5-KUexL [Ss((⑝eԅP&;>yU/]j#%]<exz^m$kYgfN4Mс$~!x5 CVcC},qՈͬ6<exz^m$kYgfN4MwxDx;|yBWSkҜb]ܩ4gcQ# ox ] jdńnC	ù5x7 ^wOe4d:s _"r=Ю+"r`=~_x; Sx/N=*#*p=?Q>-,g`i]yx ^|&4-hA+rT>x7 ^&)tm҇@bܤ#rQ>-,g`i]~tx ^[,Ƅس&ƒ5;rT|sx;|yBqU[&->B|x;|yBWSkҜb]ܩ4gcQ# Wxx ^J2hK\pؑ*)%camera_framework UUP}u,K#;bTyٌBiN&w94vm^;i]"8rj]x;ƼyB
?F rx f3Љѱy>v9* x;|y2_1N&Ѯ_c~ƆZs0uxO ܇H]{#ָizef*:[Ss((xQ>-,g`D]&*Sx[ȼyȟ;+bo+_ۑ*}}Z Fx e$+΅6\fYx[ȼy]}?[-kj19+ݶ{ Wx[ȼyȝqsZc?wJU}C|+x #1ѫu;(Wx6 -kat9:_a^*Y@d`N>fFr6)Dx7 {}wFs^-'*:{		EDDx)U	x[ȼycS2&feO5xZ 7{}wFs^-'40000 av_codec 9{>ȾBHM{		EDDx)I%wZx[ȼy:]s6<m1wLQ 
x 
R8&ǘҪ)s$*wN4x[ȼyHZ/XV3UF_ڽxV9# c`x UR1/֊H%*wZx[ȼy	7U:-Lp9Z7 :x[ȼy~znɏ,Ypԃ}Єfx[ȼyBHtmER*/wX 
x[ȼyBH݆[ͯ<	^B f>x dБLe\PK׬x)6lx[ȼy]̼Rز\ď =xN <3ӨKظ.R&-*:h[7|djcQxeVC1nǁ1W@&]x7 q;bDT19Zj!C'`x3mo2$"x[ȼye"UoDn~5nNx[ȼyB΍/.Tpr:kO뜗..+4?zx[ȼy]"Sv٥6iď !%x[ȼy]ɚ;%gV(ysď ͽzsxb d}EzO,, m0Ԉx?*ՙr5A40000 player_framework :bT4Mm~mo2+dxO -F΅=<\37D,*Y@d`N>fFr6jV!g@g9o2!xBx[ȼyC4zư.~N~˼ ox 5 uPH17swo{)x7 dh[7|djcQxN&w94vm^;D]0ox 9ݞOjga!DOMTqx %q[:ocV.bJx[ȼyC4HR~0=!$qr> |x[|yB|bY|qjqqf~qU[&->}Cz#l?x[ȼyBț3[Ffo+\$Q9nc&# qkx t7_'RTT^ َs40000 av_codec |T!,kl9}GM̶0wYks8I#^xTFѕm3W?溎l#PPа$o2(=}x ^Xq򅷉crTttx[ȼyC4HvXٕCAW1<9 Û!x  [溎l#PPа$o2?NPx t7tҕ7QP940000 av_codec ĳ|9X~腅;M?jqm1>H*j^n~M hcCjg	?uv4
Ҩ4-8T苏o2?KIx[ȼyȝqsZc?wJU}C|Fx t7_'RTT^ َs40000 av_codec ݞOjga!DOM?E	"X@`l?hkgcA^W.?)K퓓?溎l#PPа$o2=`x7 9<G.՚V߇ԙ֘ǐM$@몹'VH #Fx[ȼys7l>&WkD݋V덾! ux[ȼy÷/cj
!x 9cRi}1lMThZx  [MFqŕo2~Xx[ȼyC4HvXٕCAW1<9 Û	x[ȼyC4Hi|K+LZ_2Ew|F# -x[ȼyBHVa.nC;	qg2m\ G+x8 tҕ7QP9*1溎l#PPа$o21x VC1nǁ1Wwzx[ȼyC4HR~0=!$qr> |]x[ȼyKXZLܾyqj/x[ȼyHӬW{~ȯѼ2SOUx[ȼyBȗB_[{l+4-'vx 9D6c[֩ųkMT/ x[ȼy3N_S<rϟ]c-x CVcC},qՈͬ6"x[ȼy]gzkkR|q Оg
Mx Y^J2hK\pؑ*:UUP}u,K#x;>bTyٌB40000 image_framework =Ю+"r`=~?N&w94vm^;DIa}>Kݢ6<$:aN5x[ȼyC/Hi
gRVn8r'ˇ)x[ȼyC//J-I<\_ x5 o4,nIUe钳] jdńnC	ÑQx;|ywi7떃Q3m-,Ƹ ~xh ;Q: zYYYS@:G*4T_F^mUr=Ю+"r`=~?Q>-,g`i]2hx;|yB[QYw?9GJo ͸Px  E1(/Jx4 $Rx;|y'9x>4\adQk# ı~x;|yHњW[.?ղQk# kE,x;|yH|<j=o/_P{F9 yx7 9PЏa_$a
_YMPi:, ɋ!ã'
?x;|yȶNhLsID_":Y,*lN_Qw'εvO/<[afM@!371=5>(17<(yͣW-JƏUoolԔҼĒ<lOU,6y$:!Xv#c+ 'J	px;|yɻ=7̿p-=*o%# ѳx;|yyGũ2z{cb 
e)nEu=p{5je}+mqx;|yOkYaN
ZM>y靱d1 e-x;|yHʯؚnי}+Xx;|yHkz6g=\;7N,Ƹ vx oPt:捕rNOc*I2x  Pe-v	(ªɟ2߮ax;|yCHgў[s{S x  B8N\Ԛz=x {J^
fePkx eQBN*+X|x %2ǂ~G.rtGx;|yFkVd2u[ozIXfQFF 8lsx;|yFEAO7+L9hwR&eƣ x;|yHpHc1_?U,Ƹ 
Lx  LlgbFuRImx;|y+ί{ET-xd1 6	x;|yyӼ"Ņq6~{w<b -x;|yO䊃|j:d1 ,x;|yȉ=u^{YuIӊB*b Xx 9cE5C֟ȱMy'Tx7 9؃(<3>MwChuR-Ajtx;|yǘXЖ$Lpڵ`o%# 3qx7 9S>5 d+2u&ȑM^=3´^g$Aex 9bbGuRtMylx I7
VL:㈤9+J40000 av_codec ¡z|jp$>b9OcMdGq]ؾ5cp%=?K	̮xi
z40000 media_foundation CX.;b
EA?Urn>Z[lD2Ru@x;|yBȟۙ~hqUM:j\MF _>x;|yHIOZF؄nwNܾKi t)kx;|yP/QS'}^Md1 x  0	"3vG%iGx;|y=։W2;v}+x;|yȒGFG]=Sb ix #1ѫu;q;5x7 9D6c[֩ųkM<'١2Hh%d@M)sx7 9D6c[֩ųkM<+N-^\hʽ.,D$ѱ)ޕ`Ex B8rN朎mɟZݱ)Jx;|yȃfQ]~^Z|pFJF #x7 9eT1"^05I^M=NRf'zAn=ƓAEx 9C}V
:WMysx 9XaǥMycV!x 9T;IݱMy[Ox;|yHQUGoW~u{}+j{x;|ycG]gM&Va*gco%# Z(x7 CoBAAV!N kgcA^W.?)K퓓A{nx;|y.H*Dͯg0>dGV Պx  -. g+r"ApJx;|y.ȚYfiNM՞9ّ =wx9 -#.NM;`]f-+A?FQP;`SX]b2s#?x9 -#.NM;`]f-+A?8W6rp(V`j+b 2[F3x9 -#.NM;`]f-+A?7K[7n9]ճnJϺ2rOx9 -#.NM;`]f-+A?߱-@' 2Nox;|yRc'O~O(j.?^6Yq -9cx{}?H><)Y9	 hAx{}Cۻ_pi/^!HZyLe [GCx{}CH%ŽqcֈR{qsS# sx{}?Zd;^a }
@x T /f(*F(ٓnIG'{%SM^Ton%2E% drȜnencoder.h mǰu1XbkETA~jE4,,7\ɟ'Ϥg}JKy
zx T-{[on̭Ft^.Z]n%EMU+>ʂtnencoder.h ދv}E1Şrqmד3H ]%9ht}JEyAISiǉ}'ܓg}R
4x T1M/vϬ<kNy'rnCoL9ztѳn%AdD手::ݲy`nencoder.h _W.fzWq[`쭴)Y
M?Eq dOs1#-Mgug}sHnx{}C=OL/pDCp<2F xW OYҴaʶm'=IcͮR^5FЙn%#))}zFϊe[nn"*L
Bx TCƒ6CāSnEؿсitn%k~Rz?knencoder.h k`=I/pY<=iol^_1&Gdgvk1|ELD m v5h\EQ6g}&wN/:xD F-PwQ	m`]8nencoder.h 3O=%[5V֩6_yѳcsxW OzC}L?"G,Yc#)豝@CtJ*n%|*A͕GQӲ+ua ="Qn"J#Yx: O'.AM8ecɊ*.ڑ7%$pFnvԩ\"x{}C'U޽yxusS# Px: OTtYKgі(cb@@ͻHVnvE:&x% Uu^*&\)`os~n"DZx% 8sG_gWc+n"i0x: OTtYKgі(cut6,0x^qYwX&nv.1x% ň'	Ep5Tn"M}x: O4<26cEc#)豝@CtJ*nv:1jmx{}Cu_Ο/˙4ux<2F  vRx{}?H5=M+}δx07dF& Ixo +b(ˈXbLnz0pZF߸c8%n^'5?u}L$#s퉷6	MZ}d4dxR Z}W~в{EZ;n^/I#h6$?u޸/{S%+0ߓC4&axo +b(ˈXbLnWI)i#n^'5?u}L$#s퉷6	MZ}d4
x{}C=OL/pDCp<2F >x[ʸqD|_\y%0QOWm *x[ʸqD:.j0È7;l'x[ʸqD6Ǖ;枻[7]n  ]( xo *4#i7V}JR͂:40000 libuv 	ƌ2.@^/qJtkhFsbM摡zуxTŵHM╓/K2 x;ti4H%!<gne~ޣߪOxO J	ƌ2.@^/qJtkhFsbM摡zуxTŵHM╓/%/x qJtkhFsbM摡P>x J	ƌ2.@^{x;xqBUSsNOxRV*#u PKɎHMLI-*fdzMtPf|[; $cx;xqBHSsNOxRV*#uʓ x, $100644 BUILD.gn wdї|"7H$Yx]MO0@:C;ihځQ.zETN!;;D߼u8 @BEv$FFv6F \ɴ䂴=Nܯgpv&x\.j=/$N$d%9kBҋsqŮ0*cF.F)jR,Z
'0JT/3p8lAGqI@%Xr`6q7i qp.(Lvkal!jLSNUkwxXĈ^Sv[vk8xD<.xfzbh``fb㢗Piݪ{zq16LT	8 K#ilxfz8l" Yhxf*2q Nix{q*OO$}{isU΍O "*x{qBsbk|o{&eVs| x*x{qBHgNݖ)/_tA` M)x{QD)E/=HU'abIm2 &Sgxϟ-c,5NˍT=^ 6(xϟ-_E@h!-Fx=  x3 >@/ J\QPfT!R<%1}5 4`Dx uHũvҙۉN;h꤯3
px[ĸqBכj6ohϑw|ږK Vx[ĸq[)
^1{շ\V  Tx[ĸqBbIsfh; &{x[ĸqBًu˧Qޝ]<Gu=|"x[ĸqBHآYɿJ=5<4 (x  yn}v[+Ox8qBHSX閗w,߼&a( 6hyxX8Ao3 W!xmn0EH(BCMQK*G7U=-۲CH3wv[	xJ\;r%(J[4A/E8z_>[;+u'h*(qţ!K!qtOcDaȒ8(Glβ⇣ g=x$9i;	L8^$r
l-f{%]Cn;0ij"T+m	D20!38$2_'Lhm	U>~+i
	Ci
4huS1^_Jxri4[XiNvbDe{6OgW
ezzFƆ׋We$'eO<Q둚ZT<YQ"RHI-VHKQpT(JM,.)TR Z^X^. 'l{xtiBľ  %i'x{ȸqĂB :h=x{Ș?Ae4o ;x}xkblb'rvWp[mMԔoY.ɨ  -x̜*_N=E?%ӈ"G oG<x̜*'|[禼;,SW||y= (x̜*MF)<rcX
 ~%x̜*hܣL1;ݳyK'k (%x ^:#qx߿ŕ!4 Tx[̸qB:~襭ВUz
 @*x[̸qB}tW(H9މ Ӽ1*x[̸qBHw/ZGnܝe([3
 8SxKK$ŖB:J=6z{ N{xKK$R"6vi?J{6 YxA "hared_mutex.h  Db?3Vqzu;&o|b?&?Rx3 vt! 2L*zĝ٪TH\CC<rC2VgVx8qBgOmsaC2y <x8qBHbs73)O2[y~іix8qBOuKEj}㪰}b< vx bf!rl`QZȜvF	x8qBHoy߯ȚGu[RNtsb< j+x8qBŮ?i+vW-uv*x bK.ĴW~-ơgvԞ,x8qBȽYv[|!e X0x8qBHւ%yf5Rv2';32y P2x8qBHUQSGŹ ÷k|3X& ¦uxk`\8Y883 ( #(1ϳ]Ye_>3nY2_I26D[g m~xqH]	[:L$Wƺ?>;Q {N+x >~wݐ0J(*Zx Y鶤0Ƣ3a&S^(/Vxq	Wd_e(D Zx FюԞ(fvx6 Mru>>"Ǒ1xfa!A-*I&=x6 <>4-nR;13)oJݵҘLmI5Qx Õ1A+Kɋ«@,<Rx8q~i_g^g9 id)x""n{*U{>7 dex"R7uN/Gf3cߗ} bk(x"bйoY+:}9Q$Q( ox"q+z7oIY4age Nyx{qjWۛÅ$fgr9l: xxQD)E/=aCz,+2G4r<>YiF Fh;xxqB>Mמ{wr_m)#obi Jx |sBkudvx[øqBȢq[.>\EvšA $/x[øqBȦ٫??2 @x8qBN&eYE% q"x[øqHO>㦿mzTD ¦ex8qBĖ};%GRy x ᕯ;OkA税Z9L`_x8qBH#W<]9U#N Tx+-("z5Un^#VVC 5x+-(Ώ~[RDE y7(x+-(O̔z5̏4 _%x+-(ra;3;omv3  ex8qHMד{|g|꒛$: %Jx 7@ӌMߚhKJ+\x bŉyhrz_av![x8qBH|M_v[.Nă 
"x[̸qB5;zun~l>_4B Ƀ-x 9817T')鿤MV`,x[̸qǜ=fՖz:%}}>7 *x[̸qB7OQ0ɬN[RK+_x ;g{D8ƯB]`,OTAdx%lo &Y~ |)1x8qBdWU\&i 
;x8qBLDxhIO=v+ U?x8qBĖ};%GRy bx ᕯ;OkA税Z9L`jx8qBLDxhIO=v+ Ux8qBٻ)RjX(;,cXE v!>x8qBHChPvUۤt͉ gx8qBȅ^˙AگKKM }'x8qBH>*9ef~mrZ\ %x8qB_g%b_qf_3 zx8qBvAmyc?[  
`xn`jb 
IũE9g,wʂ=|J FAx.5)vAOiJmwn;\  _0x+./:ǣYVg<oZ
 DxxqBp=6VKWNۺa UqxJ a@<M#X(3zC* 100644 oh_window_comm.h 1w5CVSÑ4DLxJ a@cdoB|z,@o5100644 oh_window_comm.h itc9p=Yâ|5֢4![xJ a@k`r.q^WA100644 oh_window_comm.h e9}@RYQ24ہ"3x ad+*֠3乑u`-xJ a@rz(}ao>(100644 oh_window_comm.h  h).L	LFL7`+Z4$x cŞ몜Q%оQPx8qBȦ7tP	<:|֔S 7x
x[øqB}έux__]1@`W,' k&7x[øqȡS\&m}:_WdG
 'Zx[øq}'miy*yӱ) 5x b蟆6T8K^vP'x b蟆6T8K^vP/x8qBκ}:&$G)PMP 
Dx.2Ѯo.۳^̎YR lx."Gj\G^-)7[ cxPx.o9
v>=%, }%x.bn\yv>s]^|T\ %x.R|Szzܰr	 ?r%x.Rûa%Wix %x.86k*R5`1 ax.rqǻuߝbpw  &x.9dRL~f<?L8&o9 `f%x._F4Kbw8:
}x̜*R@QjފEOiN<1W %x̜*RʦU"~}ǘ  <ix8qBַ;
N2{rk'G2y ˿4yx8qȄmjO'=zD D9ox[øqBHpB)^'M1P{.% ùCx8qBHtۥa]Pωe Kx8qBꙖVsKsO)82y GMxôi{ˎ/,P}VUs{GI-KdPx 7@ӌMߚhKJ+Ax8qBH}9J/H,Zϴjb ,x3 :0],I?\.'mhXhmτ:uGn$gFbBdpxK ad09QITO{Бu6݆enJgR%orƓb#)ު$#!1Lx3 a+N,.Wubk(dQpm}^fN!x{qBȷ^|$e cHxK a1Y0w*lq{u6xu1ddj(ݫcf"騑IB}WCN'j3%kx\ a=uRo"naWIP340000 audio_renderer P?OMfuk9X4|MAhNq(Ex{qjqmy{~`|u -x3 Q&v:-9t >GEnmp~F_OXx{qBou艹g^>}_Mf<_ x{qBH֩-s".{"rhbi Fx{qu)oU힧tI @x{qBHJǮv>K,髲]y #)x{qBHJǮv>K,髲]y #Sx3 a٫t^8%EyVubuygğW$$>xKL+"׽pϺbo鍕Y	 T
u(x8qBdWU\&i 
x[øqBȢq[.>\EvšA $x8qBZ§҆Gm5+2y  :x8qBQ z{/z+ϛi%aIkb< \Zx8qBH=RrK
V\cb< (x[øq!_*;op'BP0D Ux[øq&v{)^}6 J
x[øqB_&oV؞r,' 	:x8qBȩs4W%Ȧfeb< 6l9x8qBȇ}NFcd'rs &cx8qBQ z{/z+ϛi%aIkb< \x8qBꙖVsKsO)82y G/x 7@ӌMߚhKJ+JxffP.sNUhۼ-b+[iβ 2
xRPVPKMURPwL,w.JM,IK,,KuI	(ON-.VR bi&xkblb'6W<cءf/tq{ uCx{i](?SW^}VozCďu 9x{iC4%uVmps dx3 *VCޫV؏Qc~jPl)awT4:1xx{i]9;{>w Iox{iC4%uVmps x{iC4eigd~?׶BƣeTyd:x+` yKx+) ±δ~yql%x4 
}sx+) @KǇ>eR`z T
۾uxUmkH_1l!>K$8PCjw/ݒ~kW8fgOR;?O(
_DGp<;r(5UD^p2:4pS5(!8A#$*4JwF
x/2D_z99Y!Nf\}<͵mfzy=_BSȃXVkT|A,%A[E::B#p=HYjڲ$W&s:O#8tp~z=;]M立3>d>OgW#@ȟH(#4zCD#*K~A0h;0ѫ)'ߚʳ
jOYQ,u,N~CTpZx8nm
e-=Jr>eBcg=0RXւ#9BGǿIh.+"R^B(W<
E/X|+NCx]{~y{5"䨁ƆN_ :xE_DZNAb!?d0Rvb%⺔ba=m+WtŰhTmYVV;괷p>[Ò@uHQʘ@
dS	F?0[*Z9(v (Ј1)˿e{X<:
-/S,-혆^,n66aִ?\o	2axX]o6}.4;uD?i@KLL4eo%Eٔ&u>@:܏Cl%醳p!kddM\)Ƞ8@\P?fƁp:2z\Aldq"!19({X~L#FbtfrMHf9Rۆ@$*k[Hvz"p+a;ME{IW$m#*pw8< IOfH5"kH8S"L8t@$s&*	,1r Fbw'N;q'NowSؽ펦n[G
O;tbO i2MWpBi<)l|-3R1F)K&TULĖLRڵ,,Xn[34`ģ'\g,JBIXfK$e^&Y$n}i;eQ˄
d|3t:7lu9HZLT`[PxTh .a0z>j.î;r>ܼW$$!)xnag,y^{!==Zt|PAAC7fѨ(1ia7|p(J%?FFC0f-gD-vc&z!9`Yb.P3)O9K3164?@:=e=~}m&yWwY.TxVX]G}teu@+RzL@9%
#"DCji-CFͰ{7{zzV;pv^{j1M?]C+`}Ŭ	?]䤓Vʹ&;ZAZ,h0',Tf<ũRHB9PoslSKC󜧑43(#Pt%Vn߽vNn/,ji}8Ärg͡'Q4#_5*x`cV/h$U}Ty=NgJ	yRsx1%Οs+ueۋPlcR4TѪ+T
iW*~eT܂lcn,??gаd"k.œ>)0õ.zzPu_Z+Kw4dqxgIj넩@nC7ήruCpHwg,Jwt7/9ڽҭZkȅS[Pd=ƪꛫ/|R{}doGme_׾W	 	^etO~: xB)=#2)o8^I(eRRؾXPi"!/WBI-QU$gB&$06VܘuH'BK|El	2	S3scuV_'`9wJ^w0(";b_a!Ww39K+^z+sD|<"jSkETm9wTj nݚGR3r?$RVhhyjN!ZXeW
cR؅8ǫu<"́5nVoPCj6Iͦ*#@QuX]ZxS]o@|XQ.*_I<YyEo-AZ`8l--Ws]z0E7!Lv`n`P-Bb=ҁOhi%ZAbkX-(v䠤
%@굩H(޾!WxkLSyHZyoijgGi0o~ѝ9&/ bV+р :n,yR8]FX29oiQ3i;?$ԄVA]Y'ܧnm2ПNny:{H&1t yb>:`'!PgKΠ$X",]`d*Z~WQEgT2R,<dOY<c˕d|-Lw:(Ӛm~kӵGbŶ7Ӡ/Fa:ftPcA+<vᒩ(7/__v5*!7RE{FvQ>am;|@yԯIIQU!)9T;?ݩxuBϱ^ۿ<]w99UW:c8q1(:CUP	ŉxZ a'LU/W=u	Z!
2ēw]4_ЇE_base.h 4pKjx4ec%N,%+}x9 /I]!z_5*u!d*ڧnkgE1T,XxGxF &100644 avplayer.h =FwI	&:kYqX̼=97\t֏-x;tID! '2H/a5Y۝n_2{&6s
# :Jx9 /I]!z_5*u!铸(xi`o^QX@sx9 /I]!z_5*u!8V
!4+ؼuXϵsZx9 /I]!z_5*u!MGY,lmid-7X2"x9 )0l$?лȦ7΀!#iE@dݖX3'jxW ȫ|`U[_base.h p3^w f7(K+Jڑ,
3 Eg1r'x c7d3q)rvۥ԰n#x;tiZMmۜ}0ݕ0Dg|" 3.x" ڙZ_VZy,[G,x)"6cYqesb*~K: u#	Tx)bݻvϻV' "|x)"Ri6W^V𽿸J] xx)R^V#PLF뤟! t	tx)K[_]^5
 
px)rQv||嫒=[+OU1| %x)rc9ϷkK~X}9Ry  yvxff#"QpH[]Iys^sl: -xff#ķqVL)h3 @*xff#? .!FW^b':x SF*xff#(?ѯdYI-~MLrMt *x ,-pʺ+ޟP@K8,xff#r{RߑWoiV^6~noVVxff#u凟S$Lvvž ?P xff#"hoä=a˽>RSw7 XUxff#Pece}͕K׼[Q8q7 yj*xffP.xzU-9g#s- Y'xff#Uq'O
Ζq J*xffP.bY2pٗ]s8
F{  b.Mxff#rgJL{Kxc>9 ^!x[øqu
\nk7 BpKx[øqB!Q^mڇZ3]U){;1	 bx.bkvW寋ͷoTe Vwx.rzJRX^]CwϪWlD
 Bex Z/$qRn)Ox8qBȔ2|)&a{l׉y :x8qݾe6K7 Ӫ̄= cx MАo詡44	x8qȄmjO'=zD D9^x+*'G%مKlY}U o$xkblb'rZAmZLu 
Fxy=C.ɪL?n*VwsBrbnjQ^^J^Vq~C>ř.WXxWŹ"69㷹|m	o}q6*'KkFd痖e0?e6uYgkuLw'41 Fyx8 4PCs$%3V

uH*hIC7wCJ9!cx0Bx|YD)E/=!p?({[ߖes8ukBи~ƛ9Q&犼-ãYt6<j8Kg~iIAi^	FM&-J"fTJse>$RP>	vߜ|dO>(&b?Ӧ]A؆e?N  sQ
x  j(!ۚd2Vb*gBxyB_:__.#&'[ŭ ,x8 _NWs4wTlk]s'g,5`IV=rxb 4? VO%߅}C*100644 camera.ndk.json L8 Ҿ±,cssm</	_E:֤ȱF,<	[x h$100644 BUILD.gn 'sˈǊuh)ě$;P N%,Op)GvDsmB장a`x|Бgnative.h !hq	.gN.eO⭥/ }]7$xVAq&xyC
n)]iuj
 :-xa @֎8屛d1]#100644 preview_output.h \҈)ٕ-	_}E;{g s	wq(Uxa @T|JVVW
I<y100644 preview_output.h PI(W|)$;SyB
tl߮>i*[{x[̸qBHvoysOݰ2+-x[̸qBHCoy&[[Y^޾fn 'x d2ᝲ?-n賿Z|Y:x+ԢX,x[̸qBﮭ9S7_WQ^</  Rh'x[̸qBH^ڛże_􊕽ؕVk D'x[̸qBw+"/5;]Nm 'x[̸qBȂq#{$J<cѱ:u ,HxKL+{wrù+*r7VФsd9 
/xkblb'ckɌl<6
Hx.tT}[CGꇶO 7	(x.Qh9u
[
ӎ@͕' qj	^$x.3Qwhnb>w lkx8qBQM/~~\bf#nsefbx3 28la.@-Xs;F@ur@8T4&4)o[RDx8qBri?U/V/X`V 'x8qBT',wY|nzy: 5zx8qBQM/~~\bf#nsefkx[Ÿq4$߹YߛY ~x@ q9DmކC *	m܀ s100644 parser.py 7	$D^嗉{x <;EdK=S)x EpW̥̓(gsLQґYQWUx[Ÿq\ҳ[4?|؟yʉ 2xƸQD4%7M/!]Ac[ta՗4  $VNxkblb'%XӛIWש,u0= x8qȬo'whLbp^ ʕUx{qHٸL'g&KVh01| Vx Cǻ]W6\x6 C}։39eeWIʫ >Pht5/Ftu5,vsx6 C'xKBږxG  {]ՑWIʫ >Pht5/Ftu5XKx8qه7ڏo|x3= \zx 9Ixn6ђ`0MyH*x;|yM?9~blKL_ƴro%# Xx;|yEBN*tٞq}+x7 9D6c[֩ųkM<3~zxpKa ˒%+8)Dvx;|yHEČ|IJΗ ԬBx)6Є<q\? 7xR j0	JyJV
Ji 5/1)'5E	+ jP6]x;}{/!&#GמqjqtfEu x; t8k:XgT{W+#(#1@B G(GG!"\Yx;`b 
I9%ޙ%܍?|w|+FA9%g&e&jޥfy`fNX0YIy^YLF:djX]pT7_A$m˵l!e(C|L";^-v`
)32Nfe.7˫6awdngksOX^X̠]oG=K"
9LlfPuߦ	њ[S`p·kM2_mX%dE1˓%lZ1iU>ҕٛEq$V[ YlR2x;}{C	ȥ2_ZҶ\"&wf `x;}{9ݩ߽tG	w*P;бٛ +x;}; 2s2K*3K~x>2W$=(rJ,LN-*LN-)MQշՆY;0~3Pbb&{2/]ʼ??`[bLCR_g2p%!WĢLkrKWsV=Y4/t1gL6"RZy&w0en|>X`e!'z$Lfe.7˫6awdngksOX^X̠]oG=K"
9L-~LL8ٟZkՙ?YELd=VLZgDuϫt>nfia 8bxS B[|	{O-/BO&ǷӒpXk>D>uZBp&`KE&dx;}{G&5s>vq3+)& k.x;}{C	ȥ2_ZҶ\"&wf x;}{/H빩޹O[E3M9BxfEu 5kx;}{<fVmI9Z[M̲L (}x;}{G&'y8M\wʑ
m xGx! Ͷ=6=n<]мP!wwxS +B*L&u6-_d#{$.⌤CvY%@[6 ˟8LUOƉ#˳!"&Yx;}; 2s2K*3K~x>2W$=(rJ,LN-*LN-)]-hk^t듣~(֜I$K2e5|+;/:NwԿT{]ǥsO^RX]0wMBjΪ2.挚;قFvߐCJ2~S_!~>LMOk\^5qWDɬfyU&LMtL1m2ҋ22{-xgsYvU!ɛE	vXUzRɊ,b"SVn_9gO>&'r7K# z}fx;}{G&m'>-^˩,5^ Ex: +B*L&u6-_d#{$.⌤CvY%@ʍ>wx! Frd'ȑ5 pTrPs\x! ƞ0UN(.5ΓZP!bx;}; 2s2K*3K~x>2W$=(rJ,LN-*LN-)MQշՆY;0~3Pbb&{2/]ʼ??`[bLCR_g2p%!WĢLkrKWsV=Y4/t1gL6"RZy&w0en|>X`e!'z$Lfe.ɫ6awdngksO<V$C9omמ6K`dE1˓%lZ1iU>ҕٛ '~Ax;}{G&}k*dJKXZzf	5T|	 x;}{/ύ/+Hgwپ͊,x;}{/Hؼk>X'Nٿˎ͊,r
x;}{H=.ekMW-ff1Ɲ, ?8xa %40000 AbilityKit iIǾMbZ%RDvKW|g P\bPS	I!SҮ*px;}[ 2s2K*3Ko/UdúeAUW v)x;}{/HMزV.踳mܲ6,6+c 
.x: 1)S)ivETAoH`wnz֐Ymgs}mx?1uHx;}{/ȕ;4DkY}	Y/y":F -x: |,~;dX.\󋌓}|Vs
[^͆h-G<!ʈux: $lFO{	znU	Z8<9=T"hP'hWGa
=x Z<?wgMsדZgws)P4~AA/ߥ+$40000 arkui lFO{	znU	Z8<9=T"hP'hW~:LuPH!86%p8sB¼mK5Iqx;K 3S2S3Kt._4OERw2ɉ&11zrMω'.2<SN{UF}P׳8䙌\wu1?(4!ķr?]u:+g{{S2VZ]>sVؖ709XTNFnUm>Ω\39LW>3oN,>kG49Y__9+fzebe՝>yeBݪϋv>V&oq9%)^$.5S_+3lm"&aڒ@[No^ߘsʞ,͑YܱK_X"> &eT2T^))\lS
'xÔ3D?;e?a&mNG4>y- j,x;}{/HMزV.踳mܲ6,6+c 
Zx! ~AA/ߥ+$KK0x;}{/:>]Js_
XYe# 9^]xR <?wgMsדZgws)P~:LuPH!ӓJ'-K $c`x;}{9ݩ߽tG	w*P;бٛ +x;}{Hy^YLF:dj, m+;x9 <azE	j7gPwU.e2PDm@i ""x;ϽK 3S2S3Kt._4OERw2ɉ&1OJt\rXPLXhP
T;#1S۴UKerC%JJ2sSCR_g2p%!W\Ui&CzmtrՎC In9)%9;uĺe~:gE/!jļ"?&%d<λ}୰-&o`r9=o۱NܪB.}S\g2+s5e[tP|ou~۬Ex/7ޑZZ9uŧG_9.Llf|S%BiCzWo;r-9 Od&2-`,s#YD>L_[{:N3ٛ92;VT{aK]\`Ң̒Jk?%Ŵ~QMt|j^obo''dm鈟fZ^Y32Rb:5Z`uIKޘ;)}FV9 ==x;}{/ȕ;4DkY}	Y/y":F kx! |7SwƞExx;}{G&%I[Ҩ|ifVSL v.x;}{G&}k*dJKXZzf	5T|	 x;}{G&e+O^>ozdѩ̧ͬ Ix! $UsT*"zJ>ҳ8yx;[ 3KRS?,욽^뻲m=zj ȳFFwL'J֚tEzfL 1Ix! `վat5v^{jyx! cÈe}
ĤM!`)x;}{/Hu܍]X\7Kg":F آmWx! 9s)7r7!x; $-o GǏƜ/B=
89s)7r7!x;}{G&mk**%WsV!ݡ̧ͬ S(x;}{jA__3GƀzV 78Tx! ~AA/ߥ+$KKkTx;Ͻ{b;Y jx% Mnk2diQ@|L4x[ɽ{sfD"Fw-rBb<Oax! `}$*zr?fv~x9 <)&9kSohykPr`}$*zr?fv~@wx[ɽ[ 2s2K*3Ko/UdúeAU[XiUj x[ʽ4`RC-.o}L9 (f2x% e1:\ݯڗ il=8&fx% [ CY$9	pil=nvx% nQhVc5j il=6kNx[ʽur- 1dx? u\>WxU EaÐbD5q.%#l=5Z2x
+40000 BasicServicesKit \Tiy-m{Ec8<⌱PKu\>WxU EaÐ44:I׋LVA˞Ɖ^%ly,b6WQ۷A[>=r?T+40000 multimodalinput %v^~3|͚Tϸ%6y*']cǕq`K40000 sensors [SaD=X6*JGl=ވ~8[xknpIp3-sqܕ?#a}eL s%xknYܴ^ir] CnSxk^=ლ(''dyg0ݓyR,tbo0 /hx! ӓJ'-%`\h@xk~Q5  x[ͽ{=l>fv^bSY Ax{kf	|;WNZ&Q۔ +x  

%v^~3|͚Tϸ`Yx 

Q44:I׋LVeA˞Ɖ^%ly,Vi]Bc9?+X"$/b6WQ۷Ag[>|d7e.9 40000 multimodalinput vYtie&6y*']cǕq`K40000 sensors [SaD=X6*Jilk$x! 

Sb6WQ۷AgTx: 

k NDF/Bo
ib6WQ۷Ag|yx! 

-`GT}DcbnBH/x{k2&[WwmZRe0մmŴ	 I%x{k2&"ƀ)-c>./|D>ۼi ..x{k]jv
^Q/[lFmSV 4Yx! 

6ӭe+[m
)x  

[SaD=X6*JN	x{kK>&]MY[x! 

Q44:I׋LVe/x  

y*']cǕq`KJ.x! 

˞Ɖ^%ly,c!]x; 

˞Ɖ^%ly,=r?T+Cxx! 

ԘMj(ԨCP.^<xx{kC0X=2/\dɓ=[B\}s:OF YI%x{½AU65' #?#e:tޒ=:~~ G[x{kfO}][g}m	XSx{ʭjb 
I9%ޙ%܍?|w|+FmH` r<Ax{kUbՆK=TiMY	mx{k!H䳛:u)̓^=ҋYg+4 x{kC0r/w/T,r.ܮ*9'# xIxc 

i]Bc9?+X"$>|d7e.9 40000 multimodalinput J\va>%Jbm-`,.;xl 

7GYE52||~vW#i]Bc9?+X"$/*7 5M?EPg&I6$!b޿^A`P/6x! 

|d7e.9 !Jfx} 

CwG{KLCf*7 5M?EPg[>Sbu6'_̪=40000 multimodalinput tQ'_o`9rx: 

i]Bc9?+X"$|d7e.9 rx{kfG3jPWM,	 Ox 

ǨuޮS$^`Mx  

ǘ)E*@e
M ²`|x{kf?b0n>,s5қX)x  

z_b	2X\V`JXx{kf]|qƕqvyG
<Ē ׁRx{kfK>X-y^oJɆX=2x} 

CwG{KLCf*7 5M?EPg[>Sbu6'_̪=40000 multimodalinput ֎`>83/@5Ѵe`98 x{kf[Z?WĿ/Kb&F 9x{kf}-vܨ4,=cN&F 3fx  

_s$r[7`Zx{kCȋE:^_4X;=|W6q.k *6Lx{kC0jZ_gR0_{׀?.x! 

ѰKNӳC]x{kMFF+i+1e[bf Q-x  

&I6$!b޿^A`d.x! 

Sbu6'_̪=#C/x{kMFFrZ׿1Igk淌 R\x: 

CwG{KLCtQ'_o`ux  

%v^~3|͚Tϸ`vx{k2&"ƀ)-c>./|D>ۼi .#x{kf7t/yL\+ҤM,	 WPx{kC0ȿs}Wʪ;}s:OF .x! 

v0SJ詩6<ȥ¹ >+n/x  

C^^׬u)2毲`]]x! 

Qg્5>˸.QVeFx  

j]+uOO_Rѣ&]/x{kMF>86IT~`$oz\x{kC02#ϧ\t$mjax?6	x{kCFPOO$.$vx.k _7x{k&HNA{Y_?YKȺz-23 .x{kC3èW"s[[`y5y:I Zx! 

t?f{TÄ>/x{kC0%}S79x%nR<t柌 t-x{kCHRReBӅRmb ڭ2-x! 

m"~js,\/x{k!fiZnqFndw8s# `h\x: 

|8=j$f*F
T}[iGPC!Hx{k&!e(C|ͶL `ux{kMFFrZ׿1Igk淌 Rl"x{krLN #&h9x& 

5^򇙚K:u5>~гg1>nx 

%'&SZ&+hW/gzum2>UT}.VETz40000 backgroundtasks I@oZ{rha?<n؟iH-`h7Ug[	!dщ^IʳX2[J?.;ؗ-g40000 web ٫ VǠ(eUG9/.g&x! 

UT}.VETzI40xƵk&;r2WK+翮(+eͶ?-xƵkfnTuYT*YZys# c1Zx! 

)%vE%t\x! 

)~@&=%=;xƵk3&^ӧ;%Ol`q_L6L B9xƵkfÅa>ܕJOs-Zwt.F Y(xƵk&/GkN}rbf[柌 Ohx! 

W/gzum1x! 

# ɺDjnmICCx{k3\jB}4s	xcureogd &+qx{k3H)2B<}SYɓ ax{k3Ⱥsim|).\[Λř<jGx{kfY̖>Sf!BMX% x{k{G_d'kq)+ ʔ,x 

,6`(QQ[/y-v+K0SJ詩6<ȥ¹ >+OI,ϖp*O^`߭ٝ <8k:XgT{W+#(=i]Bc9?+X"$/eǣl7psZ4::gg[>Sbu6'_̪=40000 multimodalinput tQ'_oj]+uOO_RѣTpx: 

&+A6K<9=T"hP'hW=# 3fx  

ӾG-8hp@xƵkC1HBݪϋv>V&ov v'Cx9 

%'&SZ&+m!\(DЍ ³%rxƵkf8\kNT\Իys# Յ&9x! 

peZ:"1$M2ix! 

5rTIxuqӳtxƵkf{;Vn׻aOckGx! 

	!dщ^Iʳ/bwx9 

%'&SZ&+m	!dщ^IʳR]?xR 

%'&SZ&+n؟iH-`h7U=[0/kD"5Z	*"& xsHG)oryݓ7>l;4QlbKnv0-9Ϛ78bK;Q?d5S]2& K3<=uX+9Kg'f3=1d4{ng''vYI>ӅY-<\6x!?#,3<%!ߺ'#Y/ AOMV-)MMLdxxKbҳ9*=YQ~JbNf^Ai	CVmNJŴO4<(K-)/fx%<Y}̉yT\+_Y*4E&u?DkqjriQfI%Cg̂6;]Ϟ<eB|5U풝O(
 x6xsHG)oryݓ7>l;4QlbKnv0-9Ϛ78bK;Q?d5S]2& K3<=uX+9Kg'f3LNyur]ėe~!*?ytx0SE&/҉.&!.8}.׿j٤s322SS*Dzyխyޘr؜# jrKsJ2sSS22r(aQb~/eĜ̼o
{깡sֻ7~^(K-)/fHm9r;J^Һ'GwDs<*/,Uf"85(sBqff.gMRbt{>g[c$odkd%;.xyQ ' xsHG)oryݓ7>l;4QlbKnv0-9Ϛ78bK;Q?d5S]2& K3IF<tRQjOu}u|RifNnI~~N1W'%K|YrO'3eLYd!k:;s'O`Yp{MZi{.<h17#,3<%MWWJ)792&4$375%3aD-	y^V0nk7AlĜ̼o
{깡sֻ7~^(K-)/fHm9r;J^Һ'GwDs<*/,Uf"85(sBqff.gMRbt{>g[c$odkd%;.xyQ ,hx! 

&_SM+OjAxƵkfJU{ #35] hqx! 

|IFjxN=ΚXx! 

v0SJ詩6<ȥ¹ >+dAxƵk&HO3g	xs[M9f[柌 ox! 

m"~jIXox! 

Irdݎ!ĳxƵk&H޴7g5anBS7yf[柌 PMxR 

hAn,.α+iFЃ?d`W:R=6[(B16}E'xƵkf	|;WNZ&Q ;x! 

Ԝ*UK􋘡yJ$Xkx 

hAn,.α+.xƵkf
Y(/oʶZkCx! 

-$:,	KhIQHx! 

st?f{TÄ~njxx5!qcJ 1x5!qco8}<ۗ{$I?*;>x q
	a30aP Yʬ0ғ=*multimedia  =fC*]|#p8nR<փp>,aLȸ<[\%ym[U^yO߱1=QBB[x5A\{ٿ7Yn{<m67rɖgMzW%̝Ũ5N\#j.-Jˮ-,21 ĢLyWʜ,ֶ6Sl.D>43'E$??A:nx6	T;z}×}'<iCrS5DFfYfjyJZCuOF^@ԃ3R｟ QWPZZ0;BߚOrr?.Q[SP&}C>g?pzfջ\p3:0'|bǼomFωNrr.V)o7ow|'%/׋i," 
Axڐ,z[+riS[bkVV. Hl.xz¹ys"JF 1Dxz¹yr"sCIquU~0eg,1x! 		ՙ"װ`|ٲc{4`xN 		ՙ"װ`|ٲc{Lȸ<[\%y[U^yO߱1=QBu(a\x{sZFdvi3']ڐ;D惌 	x{s;HwR/x,'Zk6x! 		nR<փp>,>Nn]x! 		9~1ؾ/߰5}_x! 		F	!dщ^IʳZ0dx{s"HuOF^@ԃ3R｟ٔy=# Y]x{s%]Vo9J+GSx  		A^˴eۇ>x{s_&V&&2y˫j9x eF y0x! 		IuJ}г
`x{s_&򭭥wfm;jziʎ̗͂ x{s_&9^/{eO$/]@چe[fAˌ 6<x{sHG)oryݓ7>l;Q[Q]9dKγnΫNcԏ?'.WבL^eזH BbQvi&ü+eNNwWukmr)6"T[S̠ݏKXVKV<cT;z}×}'<iCrS5DFfYfjyJZCuOF^@ԃ3R｟ Q[SP&}C>?pzss&v]7EƳg@&1L}y=)?|^Lc fՄx{s_&kO4 M̗͂x! 		K!m&ݑ6ʳ%4s2x,2uhV'C͵s&ma9y=# 0U`x,bR|z^jWȽOͼ 'x,8]9ѯ'.0as4zF <x,2^IVFu|(3ͼ ɺ.x,R)wue9]'O+ͼ C[x,Ry-lGis4zF {	x,(߾L]7-&nh ޟV6x,rϞZ&/wuxCPh udx,`K{F-
ru|mf^ hx,Ai2vq<ⷾ9y=# ˷J\xƵkf8\kNT\Իys# Յ&
xƵkfEP/[SdRkWx{sCHNL>VܧѤϽ͙[3ox{s)o7ow|'%/׋i," vx{s;|0?dDxQ] *rEx{smZT`toRQ] [x{sZFIu>!7Om	qШYx{s+N]r'>3-}npߎQ] v6x{sH>C[ԛ2U dx{s"HuOF^@ԃ3R｟ٔy=# Yex{s2YnvU_lss# h@x; 		@Xx:vE;' DwkHATIگ+CZ\Jx! 		pT]ʌ)P峄`*yx{sHJ6YM=3ͼDQ] A"&x{s	,N?Jfo=ess# P.x! 		pZGzȯ]`.>/x{sȬؐ3NsuQ{sAs+\x! 		8x#?΍e  /x{sIw
ƯY'Xn(.F K\x! 		 3}FԳ#x{sZFyMU^3y|{]x! 		dɮcON@T$Hóx{sZF53wl~mg+?9m惌 ):x{sKl_!<Z/̧9 Uhx! 		'AI|JK
%#x{szfg5.|79FSx{sZFG])SJɴnߙxO惌 .x{s_&+&ϋ(Z0e=uU̗͂"-x{s>髝8N}z6HQ] h-x! 		(*^|X˛o̟}#L\x! 		biv<Bݳ#99x! 		r;@77@r#J0x{s	,N?Jfo=ess# P]x{sU,7mLLA&-x! 		+/X#3N5#\x{sZF/{#rۃ',x{sZFh9;JJitV>惌 9
Zx [		:Yf9,1)O˛~40000 build-tools 8x#?΍e :G4r!8hRhժ]5>oTJ8H,40000 multimodalinput ZGzȯ]`KW3xS 		3[($Ņ5X,U 0F+zkÓZ8SkwQ[;~+>$x{sZF/{#rۃ'Cx! 		3[($Ņ5sx: 		3[($Ņ5X,U 0F+zkóZ&N<x{s2D%i˴$^jM$xdcpm3u?&@X] ať#wS<npxE~k>UjSb]&0ןfk3Vp[R
11( #3Aڑ{,^QYZV*1[8Sһϭ-)MMLd(fiO[W,yQ69y_?up5sݼ]\ZYRɰ6%CWg;;s'۱Ɏ&H.JKx&c ,rvx{s2D%i˴$^jEZ9؜dm^4ϱ`2d[_\6 Cp֒6NONa*?ouͦ~g(Uື ҋ228ZCJι
QYZV'k7\l-ӣk jrKsJ2sSS2t6ΑYW[i6lb`Ʉ*;oַs|E S%gx{s2D%i˴$^jM$xdcpm3u?&@X] ať#wS<npxE^mF/w'}4Zs)L-n\BLL/J,Lf}źruvz<3B<ATddeU0kxΟx s+!jrKsJ2sSS2/kP\éOV콣59y_?up5sݼ]\ZYRɰ6%CWg;;s'۱Ɏ&H.JKx&c S9'x! 		q{
Q'>Wx! 		<fO
!H/%">0x! 		}y6ޫT>vx{sf5MKg~xm9 N$x! 		q8@zΞ=>'vTx{s&i{Lx3f}q8gX xT 			W԰;1oЪCylCPL$ϜZXN$aN]^C:'sdxT 		A[iEY3́쳎vSS E ZXN$aN]^C:1(GxT 			W԰;1oЪCy8pBE8ZXN$aN]^C:'\4x! 		G{`n~o#dx{s_&+&ϋ(Z0e=uU̗͂"4x{sZFWWTJhϕ8sS|OכO5x{sf5MKg~xm9 N x{sZFvy40ہ0^Kx! 			<4xBH#{x{sHιP	ݦq7hWe )x  		J5ؿ3.=|>iXx{sZF{)b-f<օa3ƽ9 23 s&x; 		JWܭ3HեsH9S E Z_hQPxS 		JWܭ3HեsH9i?8sѣPh1< k˓dS E Z}-';7x{s½mת[c5?y~ss# T.x{s0b	fruں9 ߦx{sZF&֩*s?kAFef &5x{sZF{)b-f<օa3ƽ9 23 s&cx{s*YSK$`qi5.Gx{sZF2MbE3*,;"wl>Ȩ \ux{sZFœ[Zavِ<O\x{sraճ=OJ=d%pss# ?#	x; 		3sR9(61ɞI5E`V{I+Uf QZXJx{s_&%4)
_Y$̗͂wx! 		پmj[Lu׷#vRP#Z&x! 		!pLjɤ]55b)0x{sHsH}_5s(.F -x{s2D%i˴$^jw  
'+x! 		8Jڄh"%x
ޤu&%!/x{sȚ{Jѩ͖+זuyיJ\x! 		FYڷqgF.愡Z*Zx{sC/	wvss
m:/tKϿ䃥($ef2H_hqԮ--n~>wA~3W
UT)Le43Vڑ{,^11#,3<%U\c;p+w/1[!Q[SeA΃ʞ:-j('uUwלR9$wDwqjriQfI%ڗ^MSx2_̝lR"&;^#+GV/|E s$x; 		gB<J0hȄ3KAȾoj-Znx; 		gB<J0P*hg|Los_Z	x{sȹOT<WJ*z^n(.F H[x{sO{qIQZ"ss# 	x{¹s*>yJ^z ө~E}c[.m^mipOZ) K3ߗ1ws'+Z"T[SqK)G_pwhNv猙"~Z(`?>Sk&Yb5/j}!%dd&3.esprń^,L-OI`pYxgǓow}:J DMniNIfnjJf"af;+֕NzKCK#EEmURYX v=x! 		}7*|z9h 0x! 		g5i}W(T=]mBx{sZFQݵZ$?pv/ǡ gpx{sZF"%1sM??'HO惌 ax{s:FaY{
(?_'ijAFef -x{sZFœ[Zavِ<OZx{s"HƌwlLWJ^
b>B|)zF x; 		a]~
4NE(WhQuRΨ5wx{sZF]J&Qo Xw惌 .$x 		9Wɏ±++Rx{sHGNmeռ뛉! x{sZFr6	o,sQɒ 23 x: 		o+Y8nNmHk^2ToRfٍSIx! 		!pLjɤ]55b)xx{sC HoGJm|^S6\ܷ& :-x{sڗ^MSx2_̝lǲ ,x{sZFRϷ/82w} vmYx! 		ը81ך[##zyx! 		8e@睳#$G48xl 		8e@睳.%ւ*z ZM')ݬ#lؓA
ɓ];0P6h3x; 		8e@睳%X7fp8lϙ ˳Z0Jx! 		F7Ҳd[T%Zyx{sHc:],5(.F z&x  		M')ݬ#lؓ/x! 		Fqe/(1޿ Z^x{s	BG*ĤrʤGx: 		P1ӝk>Yw2dP/2 [:%|z,ڐZvTx! 		F.%ւ*z Zs^yx{sBϢ;ϻjNY 9 }M]x{sZFym=fKrXq5ͼ
x{sC Hxo2g-mÐ& ]8x{s;F}n*
MI?Y$ rex: 		P1ӝk>Yw2dmİBE&̼n@LZ`x{sz2z(B3Q] T=x! 		FIEٲocOiZ&rx{sC HΫYǚ%o:wlNaj`  x! 		P󷾈E;"Qhd-Px! 		!	w-nb{n5- x{sC ȵ77(ٕ)$a9	 .x{sHٗj߭<x^wQ] 	\xS 		{6Μp.Ot905L4=`hRa~d]
dl%Pk/"Zy$>x{sC HoGJm|^S6\ܷ& :lx! 		F.%ւ*z Zs^x! 		W1*u{Ȗ@#Lx{sӔk](.F zx{s~W>D%\n8v(x{sJZ[mqEߠtQ] (.VxS 		{6Μp.Ot9 {]Ջqwz$qe Id`<0h~`cZ-!8x{sC CXѫmV2xnNaj` 
x! 		P¬Ej"aOKd@:x{sC Hji6;9	 Q(x! 		4gYRR}#yzx{swΤ9^\$c<js!Q] 4;Lx! 		FŉʛA[]Z%x; 		{6Μp.Ot9l%Pk/"Z;DJx{sC/l"lm&GtBFgf ӯwx{sHg̂6;]Ϟlǲ #x! 		꒑݋Lk(ŧeRCSx! 		FXbzx}2)ͭZ `hx{sHZۦ 1x9 		Ghl-u*++Q[?)ksShQZ Bz&x{sY3NP8Κ0eevS)vx{sHG{WLd:n% (.F  K#x! 		F!ݼ"KaMZ0x! 		P1ӝk>Yw2d,%_x{sH]({ڛN%f?0uct' ؎w
x  		kCz	Pno٨ծ(j/x{¹sf hCx$ 		1aYOmL0'C,%
1]t2x¹s;_B3Sۧ:M_x¹s-S5w[-QvѴZ] Zx! 		}ը81ך[##z\x! 		M\y2mF3/x¹sC,l"lm&Gts!33 $\x¹s[q|Zm:5%x; 		}4DK  +$P V].[*->Jx! 		}D_v6PG#yx! 		ƚ?M#ʈ*>B(x! 		3(JR񆖮 *3Xx! 		0`VQvgg*x¹sHE2V-yuvf-.F 6x¹sC-չTu%W_V=8SmHDi PH*I-)fx.pl3UO϶1Sd_OkTt5l?7g	SyGQho+'417( #3gÊL_Z}-w"#,3<%Ihg=şOM]Z+59%)sTo+)T R0qޏz#EbQ7A]]&Q&Oc 2i;x; 		}eL'z}4bX˳EX7\GY{bE*,x; 		}eL'z}4bX˳i6vG|lh?WA*/uOxS 		}1ڽC1776$-2P˃VmL4AXay)4ݳ*2F&\)x¹sC-ȹTu%W_V=8SmHD .x! 		8x#?΍e ;]x¹sV-ֽޫ2[LHZ] ZP
x! 		}b
W*Y(س#:xS 		 $-2P˃VmL4AXay)4ݳ*X/)0 B)t-]"#Nx: 		 $-2P˃VmL4AXay)4ݳ*	xex: 		 $-2P˃VmL4߸?tUjbAf*tx: 		b@a`bKÈ𬌗%J<yxdp[x¹sHE2V-yuvf-.F 	x! 		}ϢwۢPJNYYG#!f9x¹sj>yJ^z ө~E}c[.m^mipOZ) K3,V`inf2@J3sRtKs"ui1|>.͉NKGQho+'4ў^X̐+Uj֬uZQvrBTddeU08	gɷK>u% &4$375%3aIe?KyswߚJ*Q8k^0y xOx		1*CryptoArchitectureKit ~UBt6!OD(P+2Za]~
4NE40000 arkui gB<J040000 build-tools 8x#?΍e ij)]u<vL.#14o+Y8nNmH5P*hg|Los_*(c$E#pSm#ek^2ToRf>p?x¹sHߏ߲ ͸No!]x¹s݇09NN;aiχXx! 		XH+$^g_;˛:0x¹s]>E^yZ] bc]x! 		ͿQ{kWϧ*jx¹s7v{@7f-.F M:xu 		6Hr_PO!xڷ40000 graphic 5LkAՅȓ5jY}6ϯR $1ǀí*X'5 Z'4ZB0x2x¹sșzˆ|6Fj;Y Ȏ`x¹sHȖ',2n<kqs# x¹sj&xV?+NJ=h}~ _.x! 		ͿQ{kWϧ*j]x¹sCȟ],?3ZKݤ#ji,r ۫,x! 		5LkAՅȳy/x¹sɷkV_]2<?WvؐSt-x! 		0ޔE@ef£*\x¹sCȖvGU/ȿX x! 		YOmL0'C,%
1]!8x! 		BusP/0x¹s|,>K˳lڬ 
]x! 		]lF}`	_ T³qC	J/x¹sG&Vq3޽|nfV ߵ\x! 		ɇnκpᔪ
*<x! 		pBA XR~*;x¹s7v{@7f-.F Mix! 		}#yzw̰#K=x¹s-1r!O2Nof΋ڬ v.x¹sH[++7=ص'qs# دx¹sY&u_>;7	o~t ߒT.x! 		@ IB>T`~]x¹sHşv..0Cf-.F H
x! 		8Jڄh"%x
ޤu%a:x¹sC-ȹTu%W_V=8SmHD hx! 		}*¬u'+ Xݲ鳑#"0x! 		M\y2mF3_x¹sȗsޓ;X),H|f-.F xR 		d7෿;ngPl
Wqo܅qU6Pr*XpZ"$OZ	}П`W$ax¹sC,wvss
m:/tKϿBFgf ;x¹sɷkV_]2<?WvؐSt<x! 		B0'CЕM&u߽*0x¹sC,cTWR)߀R'g\.cb 
E٥Wm]^ˤK|q"T[SP&l_[;C˛33x.*Yx:|G6k1w1 }9[<x! 		}#yzw̰#Klx¹sC,HWR)߀R'g\.љ zjx¹s@ʦ/]3i0<TdY Y\x¹sȗsޓ;X),H|f-.F 	xG 		}:j{ҮG~C40000 build-tools ʓR}HAӳ#"Vx! 		XH+$^g_;˛:x¹s?	7>V=WmUY 3x! 		m{Q.<+*0x! 		*5vLk+WEĳ_xT 		XD7d1DY+g*5vLk+WEē5HF9 ܀ТX'^*{'bx! 		m{Q.<+*x! 		ʓR}HAӳ!	_x8 		jJ[;&ͽDq'5 Z'4ZB_x¹sHلxMf)Yt(ks# 
j2x¹s#L_YfIἑ~s# ݈x¹sPɎU7oMOAUf-.F -ux! 		}4DK #)Jx! 

;4Ytt^sF"x;}{9Wvg|0g{jiٛ @xknYCھqIWO8&w] Loxk~mb 
NřEeɩޙ%:/'iF_;mj oF`+WXz"C;'gqnd,w޾u+}69Obi)#}/K9+~	YUClM*KIMKLO-b0c_BsA'|
r`ryێuJdVv:3gƞ>)ye{&{2^7xsÊg^&γMa6K^>m!{!ַn9ҜԔDiʿ:D5+Ya"L	YQ~JbNf^Ai	ÇkKso;yAg|c){&4GfqǊj/,bQ\ZYRPy/rɟO-+SW_T4xD}lm;Lk2#k 8x{k!fm+g(>~UvoOk] ^.x! 

ƽ0nOA_xkblb's}\ɺ.\n 	xkblb'қkKLr]]B^ 
E2xkblb';FȦdc_0<kd~Ѽ5 [\xkblb'»hUFY8nb )xA (0-aVN)aerr_code.h [w!G&GG=$aeKFx8qȽo}x{TS7%/+8q h=xʘ?A{b fRx8qHGcwD x8qH)-֜!gS8qDo/ ,x8qHΡK[U㺖^fDo/ 	Yx o+Q0HB-A򼄽twx8qBQ z{/z+ϛi%aIkb< \"x8qBL{On̱|~U Jx8qHRvmm'.8$4] +x 7­TdQteUKJŌhxi
Hq!MoY\0 tQx+-(.SwdGw6+dy# *xeeP)wgݫlO5,G: g
@+xeeP)"abϑ=ZX 	?x+(#r7⍕nGVRا9 x{qjkR'myegʾ,y~ i>x{qBl*syvZ6#{y zlkx{qB;v}\u쉥e ax{qBEޯT=<nl}]V{bi x{qB;v}\u쉥e a+x{QD)E/=ASvܭ'xlu_ugq @78x3 awW,|S×;ůC
0ub*N) ݃{.zgyx3 {ȫlKR$0Usfr#{j~MaY?x4 YiMԙ/W]E*[O@1x@Dޑ}嚞
-?~[x4 K4]Ð76rXh*TCհ:ɯ7rZY
Kcm x;tiPoW{{^$7ꞎxv| ,+Kx7 q ecQ q/`Jz|6@* uE0 V-^kx4 +a $6k8FLW*x "o7<Q]uHc+Xx4 ӂڍdHUw
/8J*AKt	jls	x;ti6|߭gsږ-wx; 2x4 u5ʄAm%*cCAxwJ2<_ux4 ,M\X%<b ±*YV覞pp@3n93[cxc qqdMQsJđP@~TNmf[~9n100644 picture_native.h BS"L"-o+Rux q #H+)7"x;ti##LԯϿstG@edQF] ٜNx;tiH$wC|̔]캨i# nx;tiL>~OVTXvcͻ ?Rx;tiwzNxs[<KF-	F 	Hx8qȽo}x{TS7%/+8q Cx+(#5!AW+vS*,| 0hxΘ;A{b p鼘
x\mo8_A65\g/ánnI`']A˴,iI*I-vMM,əgg(ǵR#Q<h,ɑz;9OF\A/J(؀$q"ǌ4c/sN2.($'_
[oc(!:#a$I"2F؃bIx$|S_87Gԗ)4$T(JX_A-*/ڧn(m݆pWs0?#4<U:%'tܓ*=Qh(3f~"Rr[ P!9lvI{H>6n;}s~u{Clv:˛vK:}ӾOHܾ<8!h#L{˘0*yp#,"1_W(8nK*ե]8qM!2(ui]w>ِ@qO@L2,.lz5x+	u[(c
h<í	2 a׷$>udmJqPO$(nPAkCPt8Yt;}.	Iqmp|+
g8%4QX) @R0NQKF3LBO<!b\$Η {Lx4&ݙlr
5e(.i&mω?RyϢ\\CVMJX몐>@\<L uz=/؃CO7,,pP1၉2 	a6G	 %TX܏#'=}e>CBY(c"m(4a^V>a5U	Ȣ@hk	9xcC&feC'Ժ`,#:urTAn]e5cLylq	p巓- L۩Q̓.Q\`JIAY#?~xSJ5C|K.)>u(2=ș` hˢDƉ\\JVcUL&_9Y?t4H#p!$bKȑ;Wã2ATIj"  jD=4='}VA&$D"F0It$t?"7HGLH{=f vhswyNx	z˯͋YWQ$B+?J#sR. v(򍍳8"j*HÐGr6BΉj5xW<)i 襹[0]H;XHRKW:⭹5ʽ^/k.0a܀
-゙U*T`3]UlUg[We'`2{XyQ~;+ӒE4Q$yrfmUN}.qʙ*\J":42$okIvm	Wz,HKR(44)sdlolўVhfۇ R[Kls]ϨbIq:Ķr@)	|Mj2bݗQ`ΌOs37MR/ pclGTޯݎb%0Q>cxYcRZ _ywXXCHce hLQZ8]GtYF	 9Ss
&*!i9[f2&{T܀2[5qyM@}J7MܾVJJk*dӥ3;ŝMX+ -Q$V1jUBD|v>KkA:SN;s6;Nu`^#ܸmRf*Zn\g]،{+mla7I?ֱ.dE%PMLUݞL^,m':Y<K0Ncg%|f7[?=lHd맃^@?X7h!̥4+&e%7 VC σq6=Zּh݊xY
ƨ-<S@R?NS}S[q*kSTm՜	TَIh@"h+@rJ4-dkpFjNjO@cV2mRlY޲I-٦Men'7nr.\{C.^T P_V%hcKep^]WT_3'mD_]UhvV7PU+-VΊgk>XX0_,>=_%fe05*Ir)IssKҧk=m]_vSn3}M=u4oۼ]>~:5xXSZIym!2<\w%`3$r`U<U/ӑy?":\D\hdvt22nf^+I;"XB^{fz8i9hEepZ7-C+Od2>E]lH@v35	,9	_v
y:ΛWCkf%Vaa+/[S95XNyeG쀒γkz1on̻谮0*سPMե]*;2th:*z!P<$\~f.ڎ*zq(r0OE\xN/KF%wژA%	G<n
ZaZQ|\_uX:GTJ"R/̯]ٱ]ǛTtz'~/*޿=j7ee$Ŭvᇣr=g>X]M]܊_{	<14`k.Y	D|@qrjEϭo>:e^栓d@=_XN煉틩圂оĹS_"樜BqD@tPHUxƸQD4%7M/_OzVXkJ\c =@%x7 I0$w{#Oޑ(G	Euw^9mxôiO3*m_]>gJ?߹{5D֋Rx7 I0$w{#Oޑ(}1wúwg"8oz9Ccxôi{u!Slxn;xU1>Yuî̌ x7 q&}+08lR)(:GqyDBf݂UJ湓9i]4xe #m&,ZP$ʧ?(BK䬓ߥZ5]Kw;3100644 relational_store.h c$&}7cdWV&ظ9Z+<x7 1! G8U50IhpޕbB^(zPғXa=V)7c9 Fx yfp*sulƭP9=Xx 2
Ǆ/_6ddFd۠/x3 2>&Xo(-B>FPA7EE+~kl>TAx 2ܒ9cYh`DFdc,x[Ÿq.3Z=ԝ|yMrDΉn) ƉxxqBȇ^a*2Jח(ު
h(<q
 4LxxqBHckOUݣRIL4^ Wkx N.[ݗ"@_s4A/x6 :ZZ3@W:Ox+!NNFL)ޢ&cv~EOܑ4Dx3 cp3к{~DS<K kզw*4'cjAxN :HDlK_W|kW,N.}gՕh an`t^>ju4P(x3 :Y.<x j3Nk<jOG|Ճx DxZ }/SUu`/yn'l!"z)D6ZGbIC_base.h ~? 0F1@e0We,`&/x;tiB}b&=/e>&@XV\XPRZ)N=]ŧ}sl!x ^'g'.lƨ)6x;tiBϿ6yn^W73\0c% }x;tiBjNg{V{JxZ \&dz3`H,!` bp:%}_base.h cs
;PsydYo?ؑ,*3xF &100644 avplayer.h 2W\'Aʯ1S&:3%/p ]2h5t֯ixZ \&dz3`H,!y|	_base.h yn\ߛ2cC\XAN۾,*ORxZ <d@<>gnl3d!_h.Gq}_base.h 2ڡfݣ',C,Rx: G2)!"q	#[FU7D
eT^ő,$Ix \&dz3`H,_uxZ <d@<>gnl3d!ŕ9w<~Z48bH'_base.h 2ڡfݣ',*hxB y|	_base.h FU7D
eT^ő,g=x;tiB<l*re2} Rhx;tiB}`J.|m BbYqrQjj^|rbAIiQ*<l*re2}  Vx;tiBȵ+jY4s%Ab5 E x;tiBW<{Zm5M*4/bb5 ym*xF &100644 avplayer.h {wx"phn&:)gW5-d[tgx;tqb5 <gx;tID! '2H/mzsfXkQF5F MxxD! '2H/hE)b^;Zp9&@ WpRMΥ7>/t,c͠TiZU.?3ФHa7̴䢉ܧ,o4yx;tiBȜܙ;RE._oqtK_GĒk ӽ#x `׫{$0Stdx;tD! '2H/rY`Jpny5gM:> >ȬΖN*Y`K\8w'## ϟ!Xx;ti/qb
oZ5xkyݚ8_n  yx: RCwo=IH[[p3^w f7(K+Jڑ,MOx;tID! '2H/vkz3tJׅU_QM x6 T8`Ux+z3nD3 Eg1r0BJx;tID! '2H/A(V"yBʶlyXQM prx;tD! '2H/Wu6yQym"v~]v1תV\[T]d")=D	_!ܶ""+9&)m鳇_6=r?E  _8xW XzDOܻN'mh]<ё_base.h O{*&Nϑ,
k κW)_>]|^Hh'x;tiBȵ+jY4s%Ab5 Ex8q$W½?f1"Ksk8%.O f
=x8qB߮j/-H)z pb AxƸQD4%7M/a*5nX$9qrNT ~xKL+RPβ]Ob1eQw Wx3 d*?/(=[	<BjO5-;']FD=	>Lx7 p+0#;jO5-;']FD=	o2ވx7 9cRi}1lMTFѕm3W1\x -[SGX4,*w x[ȼyB~G8LR+1ˡ7! q:x EsƱ0Jn*wjx[ȼyޅm.f{Uk7 5x 9?"'Εh?),MTrHx[ȼyٞq[:K0;wSvx[ȼyC4%uVmpssr> 2*%xL 9] B+YWSniFM;.CZy4h5?O5-;']FD=	+!x[iC4%uVmps dB%x{i]3wrϐR<u'ďu YiPx6 9姒y:Mf۠M?闼pܥgsJT؝葠r|Ex oA+`5B)ޮûP	~t}x[ȼy]ɚ;%gV(ysď ͽz`x -[SGX4,*w hxO tҕ7QP9*!`Xe<@qj0jO5-;']FD=	o23$:^x[ȼy]9̓HwO0|Kv ȸx YaagcH63{Z#-x[ȼy]~吝S=6ď Gx[ȼyMS,Dض\fo# 47x[ȼyȷ':>wo }qcى_S/XG5?21 ԴLi>/R*WEdeiEEZaD;[vF?;W&~YyᠵU>Wދh[u7|F9Onh*Ff	i)n98# Q=xK 9姒y:Mf۠M?闼pܥgsJT؝葠)ޅm+Yo6D'x[ȼyC/͟mU+dLO3 3Hx7 9cRi}1lMTFѕm3WSRU1x oA+`5B)ޮûP	~t	^x{iqgOpziSlWhkxN|Hxmy?]mb 
ii%V8t?>}^U|運ҊsSf,w:~v7&M%Ak|Ѷny QH#x{iȿګD6d*{# {x -J/!6B=	kLǑAe-x[ƸqgSt֓[,V_\֑51 i"x{qMtEf.ñ]vbP9 2}x{¹s2D%i˴$^jDR6?ؾ@)yLr&~Ge, K3,V`inf2@J3sRtKs"ui1|>.͉N1Sd_OkTt5l?7gr
SyGQho+'417( #3Au2Yog=o:r"#,3<%Ihg=şOM]Z+59%)/_e wAE;#ԏMb^kyWO\yw)Cr7o@t&eT2}Pm4ŎG*cv,%"}k
*sDya~c,r 7x! 		]7E`pD2;OH>x¹sC,HWR)߀R'g\.љ zlx¹sC,7լܖ=72:3 jUxt 		]4V0{99P/{/o40000 arkui ]%';7<18q#xlg5V 6xu=O]12ҳ*|01x¹sY&_UC4fzsCˌ r_xT 		}>ax<18q#xlg5hی䓌T^i夳*)#x¹saf;+֕NzKCK).x¹sC,H_~_蝙z1dJBFgf [x! 		}j{ҮG~Có#N
x¹sC-2㇯U<q5Ѻdr8x¹sC-Hyewus\ve`扌 Q.x¹sY&â,وGΨvbL9[x! 		18q#xlg/xssQeAIcQrFfIjrIiQwf	ÿ_eEV~'PmFN MAfx¹sKWY*i|paqkEx! 		}>ax#qux¹sHz/*W_;8֓us# [#x¹sY&_UC4fzsCˌ rQx¹sHz}زܳ9ʫl۬ M:x! 		f;o~ȟ]lg^x¹sC-f㳓B]tm%[2yDFef [x; 		}3͒UD,l݂;zWlC< e?̧MX$]Jx! 		}&-80γ#?yx! 		};[hڷZ7+
#x^x! 		}+%T%J{Σ#[^x! 		MRLwtוc	x/x! 		ɀRnL h^xT 		}c5 *Pg!j<D%U]Ū`V	[x>.d-cp9EdXNv>G%x! 		XD7d1DY+g|Ax¹sCȯvz)&2>`s# =H.x¹sC--KߤBz6ז2&.|8扌 mx¹sC--KߤBz6ז2&.|8扌 x: 		TyU9] CL;hD;[k AY@T` 	Ix! 		K5M¸8H!gຏ*<	xx! 		BusP/'x! 		@ZGzȯ]T`~Wx¹sCHjIKWz|_=9˘[x¹sқo)Zw
\
0as# 3x6 		"K1*%qZ>:P7*v	IIJ)!(F1*8 x¹sC-hedȼ9*dA扌 |sx! 		}6e⣓L(;p#"x¹sC,ȹD槚F+\{s!33 BV]x! 		};vWţGֳ#k/x! 		}-VѭM`	8# x¹sC--KߤBz6ז2&.|8扌 :x¹sC-H.g_;*dswDFef ު~hx¹sC-|!iݓt4ןr&jDFef x¹sC-5Mjc?,|扌 
x¹sC-Hrgt߽;~;Xn3T
<Q .x¹sC,Hݎ8MivEؐYaаљ [x! 		BusP/
x¹sSޯuۋ<D?}VZ] e8x¹sHz}زܳ9ʫl۬ Mx! 		}/s/vX`^{ߞa#dDx¹sIXJTN:7ev' ĄS,x¹sC-ȵE*jx&#[mDFef T&Yx¹sC-sg!IZM\^$yv<Q 0
x¹sC-cIcZs}0K,zeb 
I9)%9O#"M|{VԷ50Uy)9yEjgvNܚEز{.0<q{,ru+&k1_yG!1hEpwئ1aǲ cAXx		%Loz6WQGOg+LOX$֐/iCGӓKX<)%M3,]ٴ40000 bundlemanager |aO!O64s95Ɩ-!240000 multimedia XqPMSQ2v*	Q>mIR_ieX8ӓ19a1}YP<:P0RrIh灔>ݪojx¹s/fwbVwmZC|, -x¹sC-!	yg7SN9>扌 AZx¹s2D%i˴$^j;Y T	x¹siFY5OW3;crXnW  .x¹sݴ[; rf-.F n[x; 		QXX!Eg仱*Z|_=|&J)V+*m$x; 		QXX!Eg仱*Z|_kM -x*x¹sJW6)cH{DZ] xx! 		}X7l?쳑#'x¹sC-ȵE*jx&#[mDFef T&Ux! 		}3ρfY6`Wڻզ#	x! 		{rM?{*E5x! 		NiʹQ侞Bv*2ex¹s8}syzhiZ] wY-x¹sC,7լܖ=72:3 jUZx! 		MRLwtוc	x	x! 		9$sp^xD9x¹sv̗#d6;7gx! 		44:I׋LV (-x¹s9{*&ܫ|7k{˛3<x¹sY&U?#e
(MӯaL5\xS 		7W/gzumKXMRLwtוc`kM -x*O%&=x¹srU*XdtO_Q 0,x¹s9H7s6-!}vRܶ3oMYx¹sgq˯gF
XY 2ـ 1x8 		9a1}YP<:P0S&-dVP"RlGx  		rIh灔>ݪ=.x¹sufNoDr=3Ͼaxyk UZx =		"	/	\>I\.u)%M3,]ٴΚLh-+4S96#	WS&iw)40000 multimedia XqPMSQ2v*8^pnx8d(t/~^R8Fva+SȺ`oyC(6V|x! 		5Ɩ-!2G:0x! 		)%M3,]ٴ1/x¹sHffz%4m*ITf-.F 0T\x¹sK35ls# ~Zx¹sCIj-=Ϧq\xA)h49 ӳbYx¹sCXѫmV2xn6aj` 5x¹s/fRͳF\{|, }3x¹sHͪY։JsdЫY ax¹sG&_VHͩ\hdHKͬ \4	x  		nn)m8]x! 		ΚLh-+4/x¹ssn>՚zm A-x! 		QXX!Eg仱*Z|\x¹sG&3zeξ/|Zy=# 	xR 		6#	WS&iw)]^pnx8d(t/~^R8Fva]ӫs?L^`rQ#jx¹sG&3zeξ/|Z99V$`w^ůAn˘UxT 		} av\b!^>V/+M}w$h̳*2mpE=  TpDD$cx¹sCNk!6ۿ-vS9˘M
x¹sCzv/Q0dǶos# ԁ>x¹sCH	`Kd^|2lo˘|x¹sufوD%vxſ{|M'Ax¹sufߓCD{J;Hɮ=5I nx¹sufn3r&ɿtyqck x¹sH8a_m̷r6j1F֯?cFB|51 ĢL4[kl4~󺗗Y9CJ3sRtKs̴
٢x]·|31Ώ
ɾ$X),І,L-OI`XsWXSi!jrKsJ2sSS2(_?}KAgxhLb^k፝HgP|wS#,/Ct&eT2|<oHl_Q~<9Xr~[ 2ḟ-,J/H,j]sU'~>0i,r P^x  		e_vs
i Gx¹sH]fݶtO3-,- tx: 		V/+M}w$h̳*2mpE=  TpDڻIx! 		|8=j
(xx¹sK35ls# ~%x¹sG&_VHͩ\hdHKͬ \4Sx¹sC-CbY7IS;hAtDFef z	x! 		@'wJ^x! 		F&RfհjL)˭hx¹s7rɖgMzW%ݬ {;x¹sCHOf)W\xʖcʌ˘6ix  		˙aK	"Sqߒ/x! 		ZTks^Ӡ?09P+/x¹s/f3ɑ+֗g:;g22 ^,x¹sC-Ue"o%eW=KW( BRifNnI~~N1q#Wl<}h,92 Sx! 		}&{;F Qn5#Nx! 		)%M3,]ٴ12x  		˙aK	"Sqߒax¹sH8a_m̷r6j1F֯?cFB|51 ĢL4[kl4~󺗗Y9CJ3sRtKs̴
٢x]·|3Z1Z+wIIF)cxYtM9%)~yѾ% 3g}s<46k1G084Um*sTtکQ[2M" .[oCx! 		},!eĘ2_ٍ#sx[ 		]4?`iд6ll40000 arkui {L|e[5T2'NKwDS	C?H(*GG'}[x  		,LtEӪPI+x  		n:%+c^ѓZx  		f[6xdsgv<	x  		sR?ʔ+yN4Q/x¹sCURoKPYѶ*ri,r Ӛ+Rx¹sCHKsmYK?t%{Gi,r 2x¹sHؾs[NzW\%f-.F w-x¹sC,ɹD槚F+\ K3*#y(/3gy]BiDFef <?"zx¹sC-S<tb5⭖ޓppDFef OB(x¹sC-H+Tn~~U.,	.x  		K;Ϧ<c^_ȓ\x¹sY&+맥dO[tLm	x¹sHؾs[NzW\%f-.F w7x 		^Vߪ?+޵5	x! 		7@}Xq_pwH0x  		@LV:$yx¹sG&5w%.)>e/v{3+zF _.x¹sC-c5nXy,NM@!43'E$??L렐-*еK|лy;_& EWSx! 		: fNlϷYx! 		2?<vd±jB2x¹s욬GM1mw;zo` Τ,x 		|SEXZ>+cYx! 		7 sǭ#&gWwC/x¹sG&3zeξ/|Zy=# \x¹sC-Wv?۵|w4-+qرy"23 -x! 		ƍ<QceF:m jsZ/\x¹sC/,.]u?
p~Zَ 9-xk 		8$6)cF}Z@yscL_z@ H00ɓWk	a?Dj*XO5nUb\X='R-&x¹sCgybIc#lNTܻ!h49 7-x¹sCH\
_)%uq7X,d711 pZx¹sgY(~/GY-x! 		z@ H00ɳ/x! 		} IxU,عг#^x! 		}C,-&cNuؾZتȳ#,x¹srU*XdtO_Q 09x¹sCȇ5ܙ?N;lkX +fx¹sCȒ+,O
֜^9X -x¹sM[mvd^;~b{u<Zx¹soƋ4~|xx¹s-隩OABaʦ5x¹sc	^_X|Z] 	x! 		I$G-ó*!>x¹sj&xV?+NJ=h}~ _:x¹sH1 ޘM9Z8V͑ݬ e
hx¹s^{f_N~R鬛<+lx  		M')ݬ#lؓ
Vx  		#3A漯m0\;jJx  		rul֬\ӣNe]?Byx¹sufb5״*<c&Qf2)gk &x  		W&qAwcc|aUx¹si8a_m̷rL@3;\bvMVڣɍj72F֯?cFB|L,.dXcVOne%; I9)%9?_;qe;vN~Nlg<\4g z=( #3a~TH%Mq4g6DEFfYfjyJZÚ~J}ld2EOQ[S ~pÚ[ɧ

m(/~5d-f_Y15	]Nӻ~|rs9'S7v"Ag]Oh185(y;GrdΙgSO_ݨ03d>DoIFfQJ|AbP+,O
֜^9X KG}x  		bLO!t.=],Z1/x  		D~S"QQ>_N)x6 		})!8CbS*4DbI1q+Lk(k%>cBQp7Nx3 j}ol,<HŻa7G~3a {? XFx3 jOXh}>~YCdu|^ .IŒͨ0\$x3 26uw?c>xr|7v`JF@1wd<NmSO۔XDx8qH{uq)Lt (*x 2ѬHkzz/CVFT ,x3 2F.܁uv-nF@\9X¾kI>Ax 2/8Uw3؎iFT41x~ l3U/&ǐzEbBhdz*100644 native_node_napi.h Sp첰>lBwlD g)CͺKt~9
@x l,ƤRnٴǨ_M#pxeC=ȭm$ĕl?[&EbuBɌT"nxP l!7|wl7>|0YE**y -nbaeⓓC	8J[rW$
_x Qlݼ˵9ɓhhZ䀑$Gq;ՋͷvC3CbT6"c^Ǿ3߇1<=qP%c>;Axr100644 native_node.h Dї휦L5!wCB7ߗ.:/;`Ox9 ҥj"lfC&CN-p~6߈ęxTw,cxeC=ȥ-YJ/rӜ{Xw}gd wx~ l
2,؉K֦B GH;)i100644 native_node_napi.h !h&[^W;qMNy(^S>QA㵓9zx8 	XS~w[[8T	S铓D:!8VJ:ԭ͍x  ڦ~((@9 { x	4x nl+ɵ3ZU>
Q;1rV;+=]PڙOjeo0
r100644 native_node.h w"Q§i08ʥȓCV<5r3oR]>Txh luqC簚Iґ>
Q;1rV;+w"Q§i08ʥȓCV<5r3oR].<Kx8 l;i7@C1#>@îؑ]PڙOjeo0
rj x8 l;i7@C1#>@îؑ[g3ۑdj=%xP lNB`M@?17Ex7C,5Ψ#aCYu/!`#.be&x zlg"ԖVsd(hXvQFJqhYHt$R\C?0_xùY1eHlhm,<gדC:!8VJ:ԭ͍d@gx 64bBr[ٱ_.xeB̉59v7j~MmInc/F +xe+bL۾I[vUp5DVx8 /{#L̑L9^D	8J[rWwOxeC=ȫ>Έfh+{{9y2s -xeC=W*ZCg?qruɌK,xeC=HF©e6KwuɌfjx  PۜsK}u#*x ˰N7.?ŭ%Wo,x8qBk_U6ڡBYK4 *x `=m3e~t(4Vx8qBHͮmoϩ` 2U 	x[Ƹqw;v'.䖓Vspc* Ǧvx{q=ZƖ|w?L}5g! OXx@ q9u
h	100644 parser.py ]`e),RucYf
)x@ q9E%؀m	+>!100644 parser.py ؗv{n1̱NK=S)"x[ŸqBHk
OTp[UΘMx@ q9:S_}kU[Fǵ100644 parser.py m(c"Qy]آ}YlCx f:	@JÂdrx Ey~7]#YGDV/x˼y+(ϹLQ2׷[8Yq jYx  |9;`yT!L8Xx9 9%@DqY2w?oFM;Kx)cuѭ~!l`uxh 9hL[F@#ÑF70b&8(:; nJ*ZGl\MO}M;E~{oė<ѓ!N2DvxO NOS)5ҔϨ9`FEy~7]#YGD
]cXi+!NH'Sxh NOS)5ҔϨ9`FEy~7]#YG;u'u3HoLo}UM;aXt6hR!-16Jx Ey~7]#YGDVwx7 NOS)5ҔϨ9`D
]cXi+!!i=x<aǷ [x Y/&rR F-x 2uamm#A`x9 9u'u3HoLo}UM;;i4/bZ-N +!^(x 01}x7UY4b+ux9 9xtHyv"	TM;[׵o{5̺!Gx˼yCnB.Uv;s&iUxaaSk岅KEv.4_U9RĳDx5 !3yP, VM85{( jК<b]"&]OFx $100644 BUILD.gn C#@xˡr9(E $o馄UуtrՑt3l_#>}"+ViE85Q(VYܳRo//uTč] k	?x؅jC-g{RN?4BW&%t25K*S4pOs]xF޳WFŴ	(ETr
x .$100644 BUILD.gn V`, 
/G
ѹ?$o5Z
K>!error_code.h w`qI`J?Sߑ5B(r7|oڡ1DSa'7ͬvo K5GSqDJ:Bò䶾<įM@@@fWYDg¨]?jxj$100644 BUILD.gn 5ya|RБcNT$CV{rϑ^0]{Ul\<;ͅ|	Aa:# x\⨓I*p߆Ŷ9IWk]6F8rkrɭjν"#iMdݲ,vA@ISĥK
_&
r~100644 drawing_region.h EY >>@;6&9_,FnۦeJ<fR>4K|cE
I6+{4/&1^")O»~9T%Vqt*	Yx bνe}Hc$𾳌CcG"jMf'\o?QPa(Zg&ړ	p%K6`:DC(9;Ӣ&vM{'BūTpyyzL,xQ IPtzm죍|yMi1.`)
vvٓ
WVh
_hUXYi.&x5 !-Qww85{vt.Jw?;Px% "]3-)o()&T44x: !
0t9@[a:*NlX&bٿgrExm$100644 BUILD.gn C#@xˡr9(E $C<f?nQ7c&]]{Wm%/f]TW
a#image_filter.h =k7Cf81U|'͓JIo//uTč] kI;ꌄJ(8I2CԓF񑮑c@!G(J Ț^Q,QZ:gbM(OA@A5_963Yqt100644 drawing_region.h W&%t25K*S4+{\@3q[*%Y>20:&̨cV`L[,"47MO]/_12׬fxD$100644 BUILD.gn U+"͡ʩF-$C@tЛP;9*@'100644 drawing_canvas.h 6> }M˾Ps{D׵qQa1h{xk@ShKB F8RyYH11^p%+h~4 qy8/awȖf4&]oW0=hWh؉h;R Γ2wuΌ*\"֩ۓ,"l vm~f4#tx6 4V0P0h\ԞtzOQO{G+Z9x5 6y?!.D]Q{d#  ;:MBN	M??M}x5 I>ȥ_	6zQ{ Xzx9S2K%du x $100644 BUILD.gn [E-Aߙ}E$o馄Uуtrձ(p_mgr.h bD?Jv%|gKT*p߆Ŷ9IWk]Ys]xF޳C.l>}H\Nh#ƺ2p
Uso,TQD:a7œ"76rh~,6IfuxS$100644 BUILD.gn 5ya|RБcNT$C@V{rϑ^0]100644 drawing_canvas.h 馄Uуtrձ(p_mgr.h bD?Jv%|gKT*p߆Ŷ9IWk]F8rkrɭjν0s]xFޓCy"hadow_layer.h ! |̓L~]Y6y?!.D]Q2
I6+{4/&1";3ZiCdZzxk`h``fb㢗ǐUeEyw?>pP-TMJQbyf^z|RfInb^mZm-3댉w9wY>gכ(裙WX4XTG3)gw8qy&̜"b+f驿sEn=uӸ''2MbJ>kR:`ECv4'W2yLO=Xpxj|RDѫ|MļŹ	/?l~¼̎"@XEKl|?NrG˿b'?`!F|҄w)g]Tz6Ty7Y(?巸cXZ]M9ApiaԞ7ϰ*܈6'yQay*| 8	ox b$100644 BUILD.gn [E-Aߙ}E$p_mgr.h bD?Jv%|gKT.l>}H\Nh#ƺ2 y" aPq"}DyIb"'*K`z}F.C{x J$100644 BUILD.gn 5ya|RБcNT$CV{rϑ^0]{8rkrɭjν^"hadow_layer.h ! |̓L~]Y
I6+{4/&1";3ZiCdZPMd?xgC/لJ{E'?]1u5Oppl䅬 Etx9 <keTU	 fhUiAZ	uXDq=88H<xS wl_#>}"+ViE8agǓMRJ P"m@nkhs%F[Dg,l;#2bx NypAb¿ovƁ*x9 f%Sb#h)O»~9T%Vqt5-xN 

<%@O W6 rP+BXBc5[_kv+uv͂zcr~ٛ&]
x+D)E/=!D#5xٮe^?URXYXoq׵YKh8#z*jbCɅ֖Z~UYihf$'%&}&WEwL\enjP__\
~ц9~ϧ;􇩱rSZT#y#fV~g[tlxYd:ѵW*TiъL"+x:2ap&7-d]}P9'C619:x._瑥KLV*Y枢<{6uثH
vKO̼CY%KΗC~^6EEdCb/p^Y%{'G,J"N+jTy6q*:7 l!Ax;D)E/=\bna>m}J|H;URXYXoq׵YKh8#z*jbCɅ֖Z~UYihf$'%X2s:s::{kh<!8?'( 19sdOswSc@3=-3$64GF
y϶>8ـȢuk+bU_#fףř<E2Wg;tex;90%LnΛ[IrNl+Ь-ȬH͉ͿʙvHi</f~%\&qC3(5=3?hFן3{)Zn{wX_2UdrۯHM@wy?ŕ՛ɝ,"_v7L,cv*ܸGpG,J"wlyq鍅6?Z' F*3xN 

uhp4}`3A@UEPe8*F4"gᑵsx9\B%yxN 

@WхlӾLsQT!S9B˼T'-R{Aޤ+rrdIn4ȱV%mx4 

<%@O W6 rPZ1NEV<ٍOpx 

<͆*<KrY|@,P+5Q(VYܳR!a@2F ѬߓEPe8*F4"\-$G0&;x+D)E/=!D#5xٮe^?URXYXΞ?4oΞ?>^>1@ܡ kK]t`Q|443fL~@jڇ;&.O275E(//.HLNp{h?YX9LO)I-͑B^f+³knp:N6`,hʫX*4hdq&O}No0Lpr	2A>y㿇!</f~%\&qCsOQjzf~=]|кWUj%v'NVf!b}ɬW͒%^ˡnn/"u{"!of1tXʬa#%*?qORX %[tIxN 

@WхlӾLsQT!S9B˼T'-R{Zu.03DO65,y4#K&x4 

<͆*<KrY|@,P!wo椛Yh"8[d\ x5kC)HAΦ#=⋶n/;7zr'K? ku9x ~

OZ.7Z0u걧*p߆Ŷ9IWk]*s]xF޳H}]~{ֱ/芢(,f?"-L4^	9s=r	Ix g
$100644 BUILD.gn I78X1piLf$o6> }Mhixel_map.h "#iMdݲ,v,E/6Qavl6zW3?"wf;u'PU>
?9xN j6CH$]=-༸E_ɍ6')aPfͭn"J"ֿJffo
@P%]x  Gpe}Hsi8.J.x[½{#HU]%{!3O, r,x[½{#6u-ef6MlQKMdQ~ ,x[½{Vo<s;]]]x} (x  dβa-	ׁ 	.x f$100644 BUILD.gn WUfTi0&$p_mgr.h O5iv[?pAA.l>}H\Nh#ƺE|_PJo\ߕgn"kK)Of-Kƹyy='x}{-FI2.'x+S/DwwOVxxg 

@T ⯖FUUYrJkT!
qv-ӱtuEPe8*F4"Fwt\^ c488w.^vx5 

u?`v&iŋZD{2*=3@iB>>YJ} Tx5 

uQ,wS2J
d쓉{Q;sI,i>x 

<ܥ@MuM>cP+BXBc5[_kv+tTEU-J$y^ym1,Z%D2a{ḯ(x=\jhb='x N

<ܥ@MuM>cPC#~ T;`Z¢Z!-:CA%3PtTEU-J$y)Ϫ3T5%F=;b{T!sR;R0ܚL6>k{Y:VՌr9S]Ox ~

FC#~ T;`Z¢Z!-:CA%3PϪ3T5%F=;b{T!pO~~ȷ׶~{Y:VՌA<_xN 

<%@O W6 rP%]:P8ia>)lȸB+}*	LT,0<x5 

um
yUMMLcNΓ{'6m2^3"8 6BJ x5 

u ]؄
D66Q{:[0]UŴ7*L@~BuxO 

O$"TeZf쁾NsR;R0ܚL6>k{i?y^;{M%X^x3D)E/=a_O3\nQ;ܷ&(<3/=>)$7@/!hC29O~(,bbbiy7K+*whkfFrb^Yb1fWXdu'l|HZ?~_Z.[f69eIF+{.-\wb2ܘ,)"wz7>ll<<[KD/+gѽy7&c	>qδ
/<'gD"'IaюV]F:*Mc	Nt!Υ<;Y\E|[W޾zݿiUVO~Ģ$Rz~nN:^>E -j	x	
$100644 BUILD.gn `J#L1hne{)$C@ܣ3XmoF4 /100644 drawing_canvas.h APhI$#gף]Cs&xB}`O ZDimage.h K.YRRO$"TeZf쁾N&ampling_options.h ҖI@܏Ѵ8Xv(&['*9R+"dݘey}A880|5xιCD)E/=_Pվ47w̾w4jJƈxUv#0-gɿت%|lo_Mbz|GOD|R95K|8YIL$>dB|}uy\ՋNbrfF,gA~&7N>d5ٚ9O(YAx_ABs<0y/ϙzݺ|{}>Y1Wlg"ٺM<hp6(<3/= 5-19U/aIu~0BZnf,~Eu1PcțJC'7((:v?LMgs۠U^ OSx5kd3^ly$$"0l, w,x5 

usR;R0ܚL6>k{C q%BBk^
?Fox 

<ܥ@MuM>cPC_0H]Wd͸&C#~ T;`Z¢ZL/I1{izQaITEU-J$yIep`eyAbX~tq?x؅jC-g{RN?4/awȖf4&]oW0=#81utM&#j qZ"")\5RwY5.ZoaxN HϪ3T5%F=;b{\!:^^~ Fcg 	5{&>!FWBEY`lL\]>xk $100644 BUILD.gn D!FUoe0
U$#egister_font.h \l smw	AYjx_q`-As®5|>|װ2ͭ*Wxk $100644 BUILD.gn D!FUoe0
U$#egister_font.h \l smw	AYjx1N0r~6SrU׷#+zx L	$100644 BUILD.gn m"	 A{$fn$oNsbPIAM ,X/=#!ath_effect.h *0JL͓@S(`M:f3jк.s =_gX(""[c-o51`]~uKR;xƩbh``fb㢗>[_Rs'䋘{3$2wN<%/_'./Oߗ˖rxhMbZu';-|>e)Ey񹩹E%Ez^rd!ߝ0ĒJ;gc%.BUYIQ$ryvh;ooHV)3.<@|%_ӭYURYZ-vf|UvLdY%:~c9)ѤX]^ {x̱SD)E/=~koL<}ÝƟElc]m&
P)Eyɉyezn[NWqE88RZ]yw::T~"
V_Ské3/ɬx qr?UvʰU
909uMTڛ}~N%/(Y~iCw[.nxu3lLB"_T4#S>?׷eYDKj\]g݄ĲM
 ~p|/*x 		l3"`h'mbqcNxRvXycLZLK.YRRe科hGlPcQ1Γ~"nG9J!"0:x5kC)p7:3Im	:@|	 /nxO 

Fe2/׳`_Z<  H jn{ḯ(x=\jhE"^x: 

F˾Ps{D׵qQZY1blnsxN 

<%@O W6 rP%]:P8ia>)H%n+HVNC=7H.
bxN 

@pNY$h#T!C).jU7_^q{iIDĠn	e:: O\#]x5 

u\>#FIwr#{=qyf~J;`Cx5 

u**e>yXSh BP{XNi\Kb~!lo*~@ Cx  

@ 'iR&Tҩ.x5 

uڒ9{B⬔Y<{8毢ɧ8++"Cx5kC) >ޤjZOd ,x5kC)H&,Y2nur'K? H,x5 

uMIN \v䢖Dt{Նf%svkC}_Cx5 

uBWJ&s@}/ȓ{It^8 arH`m:Cx  

@!n;J.t}T.x5 

u+ERih+a-ǌܓ{sH"m$GGTTCx5kْ{fl&\Y+nv# (:,x6 

{BXBc5[_kv+uĸF޵DYԙ½	4Dx5kʶl;WGx W(x5k#ѽ3&v랮rW3Sw m(x5 

uZ`ozxcϡ{u#^˄ 8R(qCx5 

ua|	|~N{3A 2'4>媔IkGzZ2Cx5 

u~[ wY`DRuK{px	9сh&Cx5 

uȾO{5l[Pyd>{YInCԈKHGCx5 

uKWO(a{Aψs~RxOo@BGrCx5kC)mQ~#obrSzԭVɝ,"Ӯ+++3z 3"AxS 

FsFރbթ<XݳZT ⯖FUUYrJkT!ǧn=SP"#]ax: 

FR:ۜAVn]\ѳZ,Ę (+N1(Hx5kC)֓MlWOrҏpɝ, 
,x  

uޤ pIӓt9.x5kC)ȟ#N:K־h2ɝ, ,x5 

uɄLB ӻ# "{:[0]UŴ7*LphECxS 

F˾Ps{D׵qQZ!Aҥ2+6rj"ZB29m&ax: 

{BXBc5[_kv+tq0dGPVD{H듉&sxddP*2YSv}:K/j~ Z*xddP*b#z6:ncyZwk A5xqDWiNW5^DyM  nbx t{/S!ܝgL("/xq	Jmu'm(rVD ZYxqr.ŝ"V_3P$9lF hTxqE*o=Q> ϋRx+./lߥ7mߜ_ش]u aNx7 9j7}Ϙ^}AMuu:{TyxS<lxO 9x'#j\V;M?ܽ&bBwK#hVy x
iS$%vxO 9j7}Ϙ^}AMbgwYC랜Iѡ{\uu:{TyxS7&VxO 9j7}Ϙ^}AM'}K)TkEAYuu:{TyxSJ"6x7 9ַSQm{fM&vXMuu:{TyxSv~x6 9̚y&^'ĩ UʫM?ܽ&bBwK#=FEx ܽ&bBwK#txv 9cKNy?-XCM?;ܽ&bBwK#40000 image_effect wUҵSfɃ]c-ġAVy x
iS&a4J-x k1.ѽ!GWx~Zx ӔZIqQ3{1uǨix cx2zW ~֓]4x{iQ)ybzMon`# Ťx{iHۤ;kOz&M'C)퍾J Dx{ifDqwvcɫ}ވXx{iHN	3r3J 3w+x7 9Ňr\e}:*P~w+M.hC äAl`S5 x{i]Oq}SʲVN?>gQ漉 ٲ+xg 9x'#j\V;M?ܽ&bBwK#=Rj;TMHDA5Ҿ!Vy x
iSC0uvx :a9|ڣyu ~mx ׶b.;2adɑ~":x{iHeoOԭz$6kzF_%F H,x{iuu"bxJ-uM+ooUb xIx 9;R[ךWڿGȜlM"0x 9tÝ)7z9?樱M"h/x{i
uu/d}r=f/w0O}M[x6 9VE;JzM?ns.oKQiW x Ҕ6R5u4ǨhzMx{iBHUz+	ߖ{30s xx W
jeiq
xsvx{iHySJ==ߥN獾J ;Uvx W
jeiq
xs#x ܽ&bBwK#Px{iBcNS͂'{u_<3qy ƾ`x{iB3SV?j3MN.ϝ_:qy 
0x{iBSx*\[xZwF-WF ܁\x{i}c'3wo=wgǛͳL@!,>9?%5/6rmLj?7ͮ4ѭ{s?eDmhMLOO+JM-/f8]m]uS/u: v9:xr 7?_$v˿Mǃ7j40000 av_codec [̺SȖk;f.g\֑Mf5`F.h[t~yiV$zȕxkD+H7(x  Y0y&~P-x{i]S\7FNKڟ  fx wUҵSfɃ]c-ġǨFx7 9[̺SȖk;f.g\֑MV$zȕxkD+)sx{iBSx*\[xZwF-WF ܁+x 9VE;JzM"5M-x{iO:ܝ%4$xF-WF ֙Ix{i?лYGO+ȉ#o# ;/ux{iA>nSŭ{v3W (Xx{i_LmƇ7(?%# x{iHG_ŌwwKĝѻr,d# ^hx{qjkO\$5t:Mg~ ɞ-x3 Tr
y	%܅ G}TuuQ 8G}	vGAx{qBWĂsm;en87p8 *x ~閮r	@}ר)x3 +# u~)t!Ñ]c.\`f[fn`jAx{QD)E/=uá>zcD NTxxqB.uw]h* V5xN l BIOJNn-1WblgKc鬔8h$rE13GPB<"3_x6 xc]^ϋoUoNF1FX^AE"hymZ,x{I 2sS+ue`LJv$\5l@bx{I 2sS6k06{~o+˿MTX bä]yΦsV]<: D1x{I 2sS+ue`LJv$ELN#npSt2bg ,~x{I 2sS&<]<cޗR>.YjFF UdN5x{I 2sS*EsnWʻSa]Ze\Ekx{I 2sST3:q}&H*ݨ OL"x{I 2sSɉNFEƥʷe\,Xx{I 2sS$Qk13C>WQ E)x{I 2sS{	K9mFF $Ex{I 2sS3rX%leزQ RXPx@  40000 image jQ@%ϵN 3M$bnC5oF%Ԑiix{I 2sSҙnNXd)]>uE7*0 6Ox{iC H='i~:k&j	=x{I 2sSɹו5;
rޡgVR
. /'h:x{ti# Mx{I 2sS~\<Qn$<ۖQ ZMx{I 2sSt:o:}[}T\;KB6x{I 2sS(}ؑ嶏|7*0 K,1x;I 2sS-s:c
o;o 0<ex;I 2sS>rmxn6C[3) (x;I 2sS><0yGI܅a[*\ ; Mxd oEgP65ZX C100644 image_pixel_map_mdk.h Q
s
Pxg|?@c= X\UɎ@)[x{I 2sSfN	jmi߷wɷ~/_Q ZZ(x;tiBgao^!bVZF iSx;4iBĉ'gx;tiBjJݾaW=wOܴ`bA yjx;tisؚ_|-λFW  eSx;tiBȭJR-t-2ӘF\} ʢqx{I 2sS쮴a_phHs_mTpa 6Sx{I 2sS䖨lyE"p¼CI
lTpa *;x{I 2sSxVof.ph%ӹQ -Sx{I 2sSyI7ߪ:iWq[nTpa HGx 3ܼDݚiD,obtxd @Eϖ´*Gkw100644 image_packer_native.h b?^\%mlLE}ِv}WC3-8uxO @ECW5W>{S100644 image_packer_native.h V+@Ӑ|_}n@ߑh jRxO @ECW5W>{S100644 image_packer_native.h +/T}O߰cX@ۑR"l0x4i#,-nkw{b! 'fx4iHbpou|.W0{ 62x4iBo7wm<THTg։ Ӣx4i6v9Γ7nw:ĐC ^kxǴiK3Ȓ]cf/y->Xcb3 xǴI RV&ޓC}MxǴI R~љb_\ػy<# ;xqb%]︃3򩛶U+ BCxǴI R~љb_\ػy<# ;Jx D¤; M:̑Xֲ-x W0%ÜBZYF,xǴiZ'(>0|Q.!C)'Q C*xy qPWr)<wH-KACfQʹ,B5100644 native_avformat.h EX㣁)@E}PKLf\i4~ixt X40000 core  E`[qXC100644 native_audio_channel_layout.h "PjMdPHO4M~WraV*1lx HO4M~WraVZx{q?U|><W_&p΋iZxǴI R~љb_\ػy<# ;x{$ob 
Eo?wqܪO&< YW2xkeje71 T>'3^&D[)"Dg XDx  hH%Ci'bY3Csx{qWҹ/*?t>Qȝ 6y1  x  k<aB.B)~CoOx{qךm%ZcU'^4$o=zx{qkW)ߔhBe=gEOo %x t-[ãx3iИ_ϯXx{q5u9Ad6*cN vx w\#]ۀӵ]V|7,x8qB[^)w3Y>O} 28Gx)b"D7g]f7 gxϸqj=kYm[
?e3 G*xϸqjMS2`_X ;'x (ó."~#x[ʸqBSc;}ˡV4R TLx[ʸqBK*gdR_?}*Dub ,{x= 3.L_oo.VKK+40000 node %|r39$Ix;tiB2'/6˗m.{Qx(姤2,}cot?)2j׉ f]x;tiBq|]}K&\:}Xj(姤2,}cot?)2j׉ +ax >i$dx= 3>i$40000 node %|r39$2  ^x %|r39$x;tiBIݙUz:W%"s P--a`. j_'(N\ FYq^x kڲ)"e'7P=x;tiBȡrۂgx<\xµ qhx;tiBHvclX%$Q0qZ v/+x;tiBSn6,4X.}Keąkqx;tiBHwQmⅼ_2WxąkG+x;tiB׉_֕EM}WwRĦ3 7Ux;tiWR͗[$]\R t(x;ti]6܇N.~8$њ 8x;tiBH|C28s_QsmąkΜFx s@*ndF=tb؛desx G.qTG	2 x;tiBHЂNlJ Zvµ a0x;tiBHJ8>oeK"mDC'.\ Z0x;tiBH)emO'J}XQ`µ ƽO[x;tiBȥ*UM/"wµ  Vx;tiBDOOu}>ęuKtµ Q x Pq\>\=K[4eż-x w)\C),JXF/x;tiBHuή\}ғąkɊ+x 30Ԯ
74GBJ4x;ti+zJύP/\VF> ͨ]Ux3 c Pl|V"P	Hs8o0bvx[x AJH Vzox;tiBk<uqw,9qZ x;tiB[x޺w7dzg˨iulµ (Dx;tiBpdUOV{~=Avµ ox;tiȣ^l8a[B w\x6 *Oht7@,^>ORǯԷO12PcsCx;tiBMC{y-t4:}ąkɉnx;tiBK[%	n)
<3>ip- fx;tiBHyWa-O]|Tąk>cDx Ǟ֯Ft"ID"kY qx z!IA
/݀Ox;tiBcpWRM\  Ix J{y"(h]vxU *Oht7@,^>O3s4x))$dj40000 node xcjwM^ɑ"[x;tiB[x޺w7dzg˨iulµ (x;tiȧ.onrc;wflh' 2x *Th+[c(Ŕ>T(Zx *C~[_
ű>Ix;tiBȟƐ;lɋ. /wpµ <x;tiBȊInfl
ePWvµ x;tiBgګ$=Vөi1Tڱcµ Xx6 *ͥ#~Ͽ?->n-DTgޔDcL~ <\x RǯԷO12P΅P	x6 *~C%P8%9yHpԄ>n-DTgޔDcL~i7x "~8`&е8udx! $DI7>р	Hs	
Fkx;tin%/g\(9,r_8ى .?x ÀW/=ifR;ܑQJx[ǴiBH4USi6]TIa<;q- 	3x[tiTfrI2CCp'mm*$ձ~ # |ex% $icu4c /\-,k&67x[tiTfrI2CSSeg/7Mz # oKx% $icu4c ޚ{JzD?	r.
x[tiTfrI2»Tfydٸ?1x[tiTfrI2zc17=yW.ܺQN gcx[tiTfrI2Cq#7}ԛ:щ7%{ # "x[tiTfrI2^ϟVwXΟHK3Gx[tidfrI2ґ"wK<We<y&QV ]xx% $icu4c JLt)D${,x }~O2/,kSYx[tiTfrI2HE':@F9F Shx[tiTfrI2o=~wɹF5L=x[tiTfrI2Sg;tz)M%B5ox[tiTfrI2C]jSl0KǱ#o*B!x[tiTfrI2xx➯eK43i[.<y # %QSx mJc;ٽ@A`{#ˑ܀WMx *ͥ#~Ͽ?->Ix *KB%4#>mx;tiȷn9+n+αEµlSϬލv ?sx *u8/Iŵް1ʱ>ٜB]x;tiGN,x\f9~N Wx;tiS̴sJmw=8|͇v Mx;tie5]UNL(4̎y # _p,x;tiȂL>kNq\<9mF;F Wx;tiȊk3x-1.鰀QiyF;F Vx;tiu/g.xNO)R3m # /x;tiQ{NJKv>gv q[x;tik[P	iu*+NTo` 
5x *%@F^^l>,5x;tiȦ;Vi3i]hv ^x;tiH8p_moqN >ax naKUfT}z~ xV 7?ʃ]rq:$@^*;100644 model.h R`dtT4ӻT^W		:<R2j&sgx ~}C(@I08ekQ,x  ᓭǥu7-㶓1#8x ipAa(ǭu܍&կ}%ǎ3ifx[4ob6 i|x[4q ,xkajaR140031Qp
qKczP}z=(;K~ />x7 W9$~u5 ߑB<{Y!;|=5#xi&R~ӎNl-) 5xa =KO.Q2	100644 arkweb_type.h ,Ni " Die}UN"or\Ç-UmS$_Ɠ=5 ('x7 KO.Q2	BN"or\Ç-UmS$_Ɠ=5B1xL $100644 BUILD.gn 2naW%zI6.W$=_R^$lDNu!}ݓ=5?S[xK AsLo<9,r100644 libohweb.ndk.json M>\9X[e"m5 =xi/t2XW*[x%36t c x7 F:jM`RIr>BDQի<jQJ+E=5oFx7 \sˆqo-^B$8셞ghmROK=5;Exi ?m$bL\0&ٻ'#SMG.
1P$Iֽ-100644 arkweb_scheme_handler.h wP&\rƩ4uX狅/wx3 m.0.ЯW~DaJck*ȯ"G]P껋x}ksYUS!zrDt
Eò"D$Ceg:Ǚշf <s~~jy3xz&᝟_x){|'G^k;=[*n571u0o&G+{l~'e쭢C<c{"op+o-׋yGyy,yF4x/hl:<n?~tȂOn'~j~6_a{w6<~55	X"x<lBnqOvz8h}
6!=|γ+g5?{~?Cp4}jv9hvo>4#/ĉnowey`?'{w'|vC=D_
;f9y18|lG)-dO?M/t6n݇c~/_ƛy8|ƞm̒|[[/lM,wxN8;_'
6__Fc]pĲyb>gly='q$KI6\@Ub}>)|y~}znF^_
OjxFpx8Spz`1z`,q3߿	I6V>=/'޺/iW[}+:smt>`UjV./
Q`Pn>%DFx,4mC=)d6`a_~^HbaHC++ Pb V7[(`+VṠ}Y!_~(ՂFΨۀ8m;)nzd@?jԹ<'KtRRy⍍.ם@Wwq7eDBjBBTpm25k(Gh=h}Y3T|EV[]o57-K_&X7	VY]o@vg0Bo]+vȉv yרh]<\#y⾷Q#iVt~Ngʍs[UD[@kw>	`n!70ȂLmE;XYh58-d7=l7>u5#Np71J)MɄn =vIxE0ki+5
͗#)XJ_5Qnt<s}X*_xY]݊f|H_X	&g<ܼf'N-@3>fcr1dxIv]>Ykb^pAd3hUgޅK
P%w_1$Өs3kuzeNz<D{h l).mU4gh)E7>:~}$*ސAEG/!IyhyXjqD|0>` [Lm|Tɤu = b5`zh]p;-1SO3&.փ}I;~ׯ>s_i{_]UGMJNEeNl<FD"o9EN YtnϣZ-rtZUB@s;:?*b	sU#$;Qɢ<vL% Ps"8G0]q6^_k!Xz  %nRime`;'ϡ[[`	&J>?;"	0. eiv3?׭k
(q= gza` /' 
Z;q%jZ4?Õʇ'z͠i0>+x|Uz|l 1;((X@j_/O-v&Ы_?;ſ~s]m!+AgF`ۙ|zn8> \4_<|_:*2 |aQNۀǞ?}[QPD(	<tiߊyhj@w44]s`ܱsDj$<%JR_\t_C^Esʇ5/ P	`q{>B@ĿzW~ӻJϟ;o)µ$Qc]SoPz7vBhoAavcqR.t
K&zA$ka{vꤞ-漑M8#W>dN׸&~B-;x%ǻ옙/+	Н_ 1)V`UiP	~f a2ڃ*HGS?<_="?:[
d\hf:;=zLBXl8Z|
>Z?hz66p	޷h	uY+P#Cfߜ]﷈oIdbQtj*PY]xS䠈104h
O_d"SwkPVOwJOSO+~2#d"NfnlXaTLxA/= ZE	͜@
,Q0lqȳӃQnX^M(DF܀MǱښF"Wdi8=ٍFݰ;t{fx
8D"aM׬ZǏUH464?s(/up&DHhRb^nFD'3m?6KGp]N,v"KUN]B8o2_3H1j"gzf5wv+iLp/b;v4c&d^Co5ڍAgڢ8K~N<hm@H+T&LX@	½L lVAó <FP24*[Cfa"grUEFs,MOk{`(BTvoP̥@ lc*2X=#CV:qa2-w͊+Kպ ԘD-ÆlٙShD90rZO7FC4WFAo˼-_¡8xQsU
k39`ۯQx)J(rnU	8I(U~ۆms8Ή|bhW!_B|iIKL@%NMINs< 5aa ^sT.m70-ydCUx}[nhYo{lPnrrHӐFaHLߕ>Qik'!)gO3D@^I7-РiJɪ[Z@윕)G?-mdV<P;]uoQJs'8 t&SMЕh, #C"8cjsrʧ=mNW8qZ26'c펓?uB*]VxK6%I`5h7?%wP3)cXA,/#z6~ 'F+lQl_X&Mw;tJQ^XO)z8<Q.4HHJaU9v/Gd&Oq9wnF:Je~C8J;$33IS8!2N@3׸~_2fM/Lv::!S*
G_N)06Ǜg!(=
 >[<p"r֠#9/J%JכW/᳄ʱ:^#C^z_M`fwXh(nKH);tjlnhB $CZX), \Kߛa]M$c󲲸Sʐ=e8mJ[RhvR\
^y ģı"'b-^'JR0rA66AI_2Z	 3$=1E0\BO+B r\V>kFd,Ch~k<:Opz)L>b!v\wokиCk>,}=O%Ѓԛ=Pp~a9j`Itd5#Verٗl'PxhszzTYd*@olJ\:xj#/Hѽ)rI(bcP503J0vR7i}{ҦHӛMp-ష@!b:LŊcWaM"adN?* fx@J ,<ߥ`
6R h]Nؐ9b'LϔwK2Ib>v<GZ4f2dz~gK:~%:)CLVl>l	,)]%色F8q~~
]MtFRZ4iJ}<"Z=ZN AP"e錉Uwu-**ￔqq4zv̖ZD&H"G񿠴&C<=0ͺi`=@f{1ؗN^^y)ESY:zHxgboDhհK1¥GӴCD|&skWPe
11)5DD%Icج1%	}{^'m' kiv%aڨH_҅Zpgä-tD7 [Us(6QǕ`qfF&\q"\ A qB5x©kI@Y>w!7NM`9H7y6r@tkޜv]%#Ќ4	s!W}Coѫ>7i'芮ްZFN&DzD  q{;1ݗۿFchz>yo"p띜a9	Oбz1XPZ FN8C
2&p)ܞ7Fo3H~]&cHd4ZLaD0NGhܤo6p7S:)HKb
F*RPEEj2Z?h,sj4?6FhN;c4۷N`=|룱kgN`gws($=h4
b)Ӱ2-a)RD>nIѺ
5҅Z2FoЁ9x?쟋3jz<<cbgǺڨ͘H=Mw+"I@rDJcSjfѥ@A<h&vɛ&S6DL5` 2X"S+Na8|GEy$ֽ&HQ;<|kD,
ԫ&.[T5tmDQY{k`R3Wp6¦34/Ml-ӛ?eU/+3BCjQ
c1Ϛ-Ewb<I-lk5#r|q- hvh]Y0o;mro%;l<k3<\L+TSi-h*9&dxl)HB/l
4lcBh2_0}a73<r'v0SKKm+K7p_ɗ}%6[еAC^
z-X zR+\a-\ӌuwЅ;EYos%Y%̋
eFJbMRPЛVr$e+g5	bTD8.luRp91:%2A)	Rb1abz6Ɛg` ƈg(h4}amY9r5jF՚%P}	;4du<H-A	s6@,;a}ϯ;r4DֿO%@ɴ.I7P'd^< l:1}x+i,{uԌ;<0`*eH(7~(Ir(S<"qQ?$kH8CҲKc;B4A)$,"d?.YR}bSt|!_Pr<
CIbY(}	џ$ؔup<0IPw~{mN.<t,|P&kϰC*SpL,5D'ҒZ"60MTr,oD'$ 5Cw崂IJHP1BSħ~a^<ܘ 󱗄Vy+E`%uC"ԇi|$: ^朩!̊KKLc/)5dU3ߋC4yOv&C4l/Rou0 i"҄ex~CwH[&<K~oʚ@1C8B レWz;ˡ_@~S+Jx&Yxb\|U2F؊hUq(y XG䓌	LMﰡY=	x@m,L6x	X5zcqx}~DV~]Ho6aP2H;3B=Q=4C.`~j0o dPg}͐NȹATU1U}=3nj#m,-a؉Ҕ x4Gjj3E 2>ExӒǧs|N(|>@o&-7kQBejw4~zY*^0(y6`c2#oQ	\ @]ͩ5?I@wN3}GP6cnOD2d3SHal+auΟ?*+@^k%0aiP(Ȓq0<{V{ڃvsM-նJ~<ဌn¹ZP6n\9:A!,6介# Z	EtgPl|h4
XDha	QVڝ\;}գ	zCS[AKSEMɄFOAR"4#up$)8?%i՗+3` X@DYD:-ܐ$^G%*3x^-tD/k;$%wxXv_GT݁b DHX7]ٶ-:$@wqxSJZNݢp&j
6s	"MTi}}ҙ̷|7|`f+xs(oEϦN~N%'CޙiL	f@;O`} mY!
*Ws>@Be-GVzrS=$#!c=ǍMEvp1;6ɜj>eTȿXq>$#ZKb50)O`/ܯ+H8RfLXlf_,A 6|-I$Cgvatׯ΂qSc R߅3|\𢟹`F2WҮYυwlX#r1j~5ƅ +:'۶ј-* 熄+qD年3Ȏ3:=@Z-q@z<YS.CpxiI|T<gPc5WqpB3emiP#;(d-|9q;4Cq+HPH.ẕ F"/!oݜaLj>S9hu.vV]6}~ě1FQJc,})͜J|`3]
٨=KR8!4[m5,(8+TC#D[ҏq(y'cWi!{@F-|p`B\32	ă@=C:5kJj-(%YcO$)`AF{5캧0baΘ$
f>ɒv|? iؖ&*%-w<G v 4D-̠Cj~EjCM4L;ٌJ)pt"e8Fa}~*UԔdG+$TSo-3X݈)1H&54w1XP
DL
jbf}LtuM5XWfHal%DK?h	eެt^6WQ`$(1p9&$5T;2jFuP<m昡{rlX<-Koc<!*;1id	v7&(] fN:
R )pDhUӨxפp6u<:,͌A^'1x	3 Rldh&#J0:	1j.Z}gLQ!~P)ȥD:.bQow4zV?KL?7n5L.-,FCn'5q"]Ƥ+l|߁g.qNUp>f: ԹG>E칋K_Zn%"cKvaN1p<I.jDWIV`mrFxoK-᳍6U`1Ѯ*Զ4V]M
	0ފ$HoLyP1Fr"pUr
R/J'NNL=8Y-k`*4@u+?@و`X"[P`ts-n! ajv(ѥLt15m"3M)TYU]a
h|g]s4ryzJ?T4bO{fL$ʘi"g6OQN0[c3}FzΌav,#xu|O0$Ֆh?1F=1]0uc$W),.ꗿ|-r1%۸#_C!_} 6rW*5o{fȤ)u/z< ц>bc1i*J`c|P5͠GpőȔ> MV_teRHS2d2l/U:	w~ѐ:QdjcU!Y!icXMC9¡T24`c_! O^SCTH1iπygc.N\5ߴPc.eI>9Rl1a>T'/>2ępS	"tK(֒)U-jtZodfFAi^y7衮^ /	3j$DY,"9wU@~>2X$0¤8}I͢RhlDEsJ*,v*P"~Вۦ̸pwT~cX@`6Dd,:3eU/4;p585,Ήd2´㽼[S-+a]85oI`-jGƽRKX^/&r ]}StYbc;{ѫ:]X`J^ԭJ'BPEC.̀_nkGއp1h3CR3$kԉ){EtwuV*FFMɎcXw Sp'R4/F|ߨ%ϯռFkhʆV įsdss|4d%fiL3wi{DU^3ńZMG
d+~A
2ADZ;,WNW["%'
wjC :HoQe&xyBỎ}A}9`Jfˍ:CzAS f(%p9C2^q+\=̀n
w֠N4D3j5﵋ť3Sb13ydZS"LH;
|h
=kHkȑَO
DqAb(jޅȋ3FV/6<-V4H7JJY.Z2U 7`N	,LE15x7AMvp亽LZ*Xܲ&sw
|p6푬3Urec)d}jv;ϹtrߵۖMo70-,lDq7LP/h'`[6Di3w{
-J|9Lg7*	.eT.|S8C`nU[l^aj6C0k84C;fz*Y6`jL;óJ́B=[njWo.Owߝ\"մoJ)YSB-TBx5h%սY@$cV 60,dVS0<
L||bܿ~9CT˗tʿ呛~в=_vpF1I๦ㆉ&}6eZg\U|͂>UܡeoSmجUA/APeU[Ph)+ABύM~3՚Aw sX[Zv5/pM=YVd\$K2բi4K+^lWcT
c+L}fFo:#jqq.I	#e:?d 8o;Gz%(WjK})d&\fhxCUmr:[.MV/2k Dl=Qh~n]OBi^}R)\
P%/6`1jyĂI	踵,R&~6
'MA|@ݣ8^ S{pc&aVB2UC~M9upͪH_ˉP,0#Fզ-5 Hƛr;m:xԲtE=!o_4qx`kzFu2Xrz'SDElL.3-+$b:TX4tD̍fK,rr:ARYcm2ɋA޴622bLҩZK}$1Ю)N=}V[UԒp\U,RԾ:貚BqꈂES@lFJfzQopDE#rӒL,w]Hdne" )Hv:iRēyQz6Ŧ|/5k-ɼAF`h5y2HE)MP]\p6$A)M
|!3٢j=q tX%T1@ ԫstc/6*A(Rb9z/~F	{+Ynbh6![Ԁ2Jk zo5'Tu}nGSF_ݝ?@CFuIpfhu|훨4J8GKz9^'(LFҦ(_Hϴ\K7WFGWJ+?ET2<D,diD X z3	=1E+
eAjlAt4ݳrLM{?ڑ*7S7V!vtq4uFTN9K9LL/i']L:B~#"X	dh s%ot7w 3*IF㣐3]GMk+lO p%p]P̆S`H|2`4)S<eAC&fց&8(Я8s7=tfn;zdO<$=pP}H{>Q65(ԭdλNÈ4ǌF'kJDO:yS.ä	{ _xU썆tS~BI~H;̙΍NUǕRHi#L^/Kw5BzT5`MhK;xheȧ@EBr{w6/"
mL$	i5PP7ryx*0#iH:S'Ļ%9.1;]x9 _f8YtI6xdhp=߳QCߨZ a4 LpyR8.fxSǔmArWM!,,,${4nP0E\E$wԗ)Μح(Y:l,zFr/dZNL#^n;\8̵zњ3̀49Cg
47dP{?-h7m;gtei}dq*ov%@@rhd@XZ wpX) c53k?DVGZ^PZY7&)d!/On 	EpT(~M6M&;`#j4Mwh=oFGjN׫qڲ߱LQho< qs4h}o} =U[:aHZ EdloTva4|+`>@LuV8JF,yc$YnG7@`Rӂlcԁ3\,69\P1J0Hے;7y_*<!<"0	wٕh/v@``"ؖ&HiT}Bȴ`=#n7gz"."*!xw0sPjكAlVѧ4֭CS qL˝qazfZt֔C+ސZ7 *'󴼉SDPgYkQS.p0c{#bäa8!e~hoݟ@H2U-֭Eyϸ֐K3HRT87C,o:w+dҎ,=3J1)1'sP-?c>Ƨ4[I&ve7 =Ƕ97ZA=E.koܯS#_,;jnqCR5,{}ʶ5ԩj}s&a3Wh7fPEe[F3߱[>6r[ySej+J`K@Qt?xs5_=.7x7+h8*pA59v/p1 g^$Q+߻	3_ʣ!sY"r[Fe<QewcsKb
!S~Y0_[ί"y0^l/KYa\-?j/4t3@S⤡A7Sx^#
P&.zesmtmI{0R1/6>n.	2_DGzѺ9;D8Y$E(+[>c4
(b!)lS=k^+(|@# 8upmCq!ǉqFL`50(N	jʗAXV;w7[1<,7K"5Tġ!0{綱3UO!_ %V6T@VB]Cy?7rR?z,ce9|5u027	/Z4wO5mC್u%-53cjb.64
 @y;O^X" =e] /T [H
u*HAyaafh9Ik9
IlvxY\+#]$%-FBJ9懣+J&G<YDї$۳7DPP `T57d|:Lp%C-E"cVtj6oHīu:j4@qఘb ؃K0%JԈmrЛ MpKR*폥ks7<9Pn cE>fpU݂M`Mn;F2*+%~IྍoGƇ)nC)P$0L#v~'F+2b#՞x,khnƶ$Gx1JOqNFNV.yiw."9GDN8̙*ou%LGcAWұ
I\	0)^EtBy94ry2p)aUw^bQ,Tu"֐6!QfG5,I/dϩQJwOp0Ô!ȹ7= ܌?xy}9J*RSR&f,Z@(;<5)/ĵ(h =x[yy}V7%MN޼Br:3ۘ<FkZpos+HJfa,@`P@M~nF͉&Y6M
et.f5XfY89e@u?U(6l{d/nvHAf `A6#xuwTW43" 
(EU,h舫k)X{aAQG5{Q@؂fn<9׳9wn^`[wo#R嫔)r%ו}:T].=ld׋RX3o}+`юڻ`~ u3gQ:3{av91+4BZ_&9=mr(78YIx-ڸY-2Zhl*Vzd̕'sofE`̒92{ sCE1UO(XQ'Zc<E_q_SZ1Fzdg㍵P&UoIN
7YAڻk%ҁ^ۦkdΫKa"7;dkg:ș9|O9~G;TN7r企YtXppQ=ʵ2W!w}^s!Fdw+Fb{	zh_1}mo Z.{b	YRYbO{a7/ʧ6Q*Nc[|Ж	>>,(7Ay~8u2;NbS?dz+Зp3fIxtɫt9Ζ~zxEPv!~SzlGЯraBP=l``k99mr3,OG4 4==. lXnƇ?f9jPeZ$&vwd36vܨ#Z=ZټXbžtAMvyoE52KH~{iz<VMMp6%5$\[lok" eR$˝H¹ՙ4ٲdy*9*+uHIĝJi1=&}ڑ&{ԧI-fَ@ǆ&:mL2rPvHȥ#˙M7'1 8qL:2dQ֖jXpm}^Y8|y7eRg+s@+s.0 POWn!|w"ޤpQ3i"\;/g&14Kmf7l]z9BXD!HM1nm5YGYAA@fC;7?GZΌdsCuUs1iOFI|<tFʔ͛᫜?BzB<&/,q&|gѾ-L~.JYE1E$b{.ej}IVFA%bvČ<ޔzPd>_7Q\OҪ%xgȷ,+W楘7d}^se&i9\#0}y۴h6*9]h9zyT]lފ0f+}+Zrͫp<ZϬj5pu?~-mYוkчҵ_7s :1wqOxnخ1~x=NWl}d6ēFS\a?K
܄M"iH7aL7gp3	Th臊u,8Ϝf[SN&[ҊۨԱC\cA፥n[Ўlǃ\CV;v&Iۢf]
i].ȕZwx_]0)9	Se+1ibpNS h!Zքk}\K<lCm}2${h?lӥ]|N8П-X~A=ꮫw<zފC~0X$J>qk }qH-l0=)<+y,>6J=Ur,LqlU4GwՏ{՜:zqb)Gk㧮T"Aͧ>"ף3Cg%g&ǳӀs?wspΑJkp?'rb$YyES6aZAjZTew^&֥XO/I|'_ȫ]^utz-/NPxpӍ!gl5M3ߴ_qjx2}[mlcEfM |w{C]=͗}.q8`='qF,~%{#cέH4al;9S#;LGA!WOǨ3 SW.EkZSbB\fJ[02_/7_<<yUODn@}[qhj֊:\ڜm.]ėNgxn>'=^?2x#>zБX
+Rp2)Õ3sUU)U3frg*GĤ[Gr^WwDtYSKWWX^2D9FM2Ḟx525c#9jfibxee!^tJsHVջ<n]yib" VQjxkblb'rXy8- (*xkblb'MnKEoK[ 'xkblb'`ad& >x;tiB_z}ukąkMkx7 $\l.Ȧ?Mک%zF*I6M1d/İ!ux  eis*ĉ/.x;ti4H%!<gne~ޣߪxW 
2ēw]4_ЇE_base.h 4pKjx4ec%N,
g=Sc<oq'zxW OGXUH!-_base.h Ikh޳V9g⑟,
}ZDlt/zcykX.()hxW 2>[c,Fd<}n_base.h )nXf	_u;E$,
zGiJ^-
gbL&<exW OGXUH!-_base.h yx:'%a;x1,
W'oCY-j[S)!]x;|y>g3i~QC3ԢDl<78YVbSn)\kJϽsޞTWC\67(F&%e0_!3e"Uݠ׷^Tig4b-wӻWϚ[a"Z _Mx;ǼD)E/=AtUI=^r4aSԢD"a*d;y|#O^tE^UM^J^Vq~ÝWj\r*מg)EVq
# /u~x[̼yHۊ9?J멩nmY# )x[̼yHP롽kFhF VUx[̼yȶ1?]) ь кXx[̼y3be3\%N_^h׍ь ѝx[̼yҩAX.snFhF ,x[̼yHMCMϊ*Gα*puь /Wx[̼yHz">WȗCxG4# aYx[̼yȮV;xH(:繹FhF .xd\8AW:9?''3Cc/7p8!(Ppj
 >/x͝)tkktW h x͝)2=~2=y k$x[ƸqMYe+ySj(xeeP)o޷uJo^wu 	a?x@ q9W/b~rKdrU,100644 parser.py ea"FІ`(Qqxkblb'rե+*o_h|)t˵p OTx8qBqRWV{%2M 'xff#r`+zKt,}rDo }1-xffP.r<MAi~gW 
'xff#wnf_3~gDo K%*xff#Rl$.El

)xff#UrnٻO'.nzqWDo *xff#qfՋiiqv=*]WrDo ExkfjfL$QK髗ε/O*tiyiO	 -xkfZ4!R&$B/a_\{"K.Np^JʙA)2x[ƴif;>Yo֋Gz}^r !(xK SUL|J8עϑ1wr+V 5t#|uaW7wɾo@Ҽ!Yxc >Ԫe)O[Y&{֑R2h_Gre-17W	g4W+a5fPo]yE9l_,x8qHDW2,8eUCB K;xS 		:iy:-5.Ƽgn[F`k;N
6M/v_f0g>U	ĵB[v%dx{9krAIFQjbJ|bII^'%SL|z/jb|]*Y ɑrx[Ÿq4E6حڽKL柅ډ= 1x@ q9d0rDay100644 parser.py YAg<4`Ln 1ħQx@ q99fX例W)x<l:b100644 parser.py gt]<Z^3x wx.m_MwhI13` pxddP*2YSv}:K/j~ Z7x[1c(+k:4j}8n K3ѝ\ں>=QE|i|RifNnI~~N1ÊْDZehIJφɞfw6=6:-\R஄W)/}moȸtܫ'?e4¸'RխzF"\4!sso]Q:IB%dd&38vT
u1	G|mmݒQYZVpa]vۮ~E`aD_W1HBniNIfnjJf"ZmsvKzk]52*^'+jյd9t-~ѩ<} *^t` ֗dd$T2L}ݨϕH"9Q"'!S?7HH&t旦9*rkx[qC 3S2S3KᶻsoGY_)]3GXѤ)UqK3lnhmF:q!I9)%9+Ig>$Sl/s.xYd
,KUqHsӜl/RFdfLoou_ל}Cb&Sj}%pG
sKsJ2sSs2
JKr3^ZW쌳p`6unϘ^o`]YM>2	L^f븿f>^$bvyjC_TZj^j  ǏGx[c?Q	Wzvfid5<ެ ۭwx[c?5^x~7mĸY 'xO F~df#xY/@rГ#3s%}.	%2
)0r%wJ&E9셞$xqcHow,W, HxqcHkC巕.܇,sܶQ[ ֶ8x[cϻ_Ů9!]< ax[cC&HχlOw\<}r-j +x  iϪٺh|cb8}=x! ;>]h%huﳼl6mx; 5ygu/96ͣI_;>]h%huﳼlx[cA~mzƩ[$nVxL?ѝxx! tFӺq&BF]l
'x [48gus-5A4e*;C40000 arkui Y"44F$tvW12#<DPpOO|WI3s5־%t1šC{k=5XU>rV^%Jk{Bٍ
9FZxl Y"44F$tvW12#<DPpOO|WI3s5tFӺq&BF]5XU>rw.]x[cA~mzƩ[$nVxL?ѝx[cCȌ-t# =8x: ޅcGwG#i5XU>rkx: Y"44F$tvW12#i5XU>r"q?x[c?Z5OnIb(kWtfeFVf )	mx! d"7Uصߜ[=# bx! ;>]h%huﳼl6Wx[c)HYo;4jxx	 נ|x[cCQJ֝	[J$&;ys x! T(s?#0KٳlXx9 8gus-5A4e*;C^%Jk{Bٍ
Hx[c?Ȥ{MlWOOʌ Nux[c{U]Oo3}]-̌ _D!x! o \8	6bo޴loQx! kóhWs[͸lGvx[c
&ԕeW	R{r`{rM/x! `w	lTY_x! 3Xfj3h5lwlu]Gx[c?5OLRYtޥb2#+3 Sx;  ߑb֌'c$EO	#mh;yY^8@5F)BXx[c
&;ԕeW	R{r` P-)OI+(-axi]#3i7?crb 0x .| \CT`{h$7<l5#/=o1ՉgAX6BߵK~~ا,bU8>40000 graphic سt1t=#Fs5>k|S\LX/f">G^040000 multimodalinput ػ({oqTA/HҌ*-3
Wx! 3Xfj3h5lwlu]hx[c?Hx]+;"Bn)Y x[c?&X$rG=?gfeFVf ܧ2DxT  ߑb֌'c$EO	#<J%/rӎ15s5RҒۨTŝPl%.?x! tFӺq&BF]lAx! _`v=G+%sqx[c
&y7_5QSd38?*yF qx[cC<.7
_b 8x; ;\{;3~
C#<q\[A,֏) fs ixT ;\{;3~
C#<Ʌ5AzGs5&5bIm6x鳼lu$-x[qC 3S2S3KlY'raM#ovWn` lx[c?&X$rG=?gfeFVf ܧ2x[c
&ԕeW	R{r`{rMHx! &5bIm6x鳼lQxx! ЁuA@4fٞ#l(xT i~ʹm#BߵK~~ا,bU8>QW]T9_N9il؈',
x X| \CT`{h$7<l5#/=o1ՉgAX6BߵK~~ا,bU8>40000 graphic pdHYݓs5,ky Vr*"ͫB6W:HҌ*-3
Hyx[qC 3S2S3KY1	{fT0vVǗVkڠ >xqcjf3«i M+xqcH8Ve '-Q[ -x; ;\{;3~
C#l,&HQ wx[c?H9+|}Gn9nVfde 
Fxx[c?sZUn]n1BDoVfde {%x[c-7<_')́L	x z| \CT`{h$7<l5#/=o1ՉgAzpdHYݓs5iPDDӌ>:d:HҌ*-3
_=Bx[}?K,s13 J3sRtKsV,~Ȗl&j*CORB}6Ld46!mẗZxw%hOO.f}o|CvK^w^=)cU	;jx1XїYZVpa]vۮ~E`aD_W1DMniNIfnjJf"ZmsvKzk] ׍J\.c,{B<5l#O}3$oHg~i x7x[}?+g_̐}p;WW4N21 ̜ݒb1%Zꓔw=3l{ltx}[^]	 S__`6ߐq񿫝WO~X==_ݾ}:-.̲
7tbv\+#!jrKsJ2sSS2m{tŞK{]ZW׳n^Ϙ&nTҿJv`IgyH$$yF:KӜ d{Qx[}?煝|j|IY{cM@!43'E$??aBgloV2$%gdOLc;^{WpWB+b>7d\jguGՓ2Vrn١YlAmBNAߌ!222SS*8ұnsٯ,*-)MMLdXkс{.ui]]Ϻy&?cZ&ROdE̞3/19hF%{Dj1
=1<5l#O}3$oHg~i 0r{xT ~7*`_:9B;#<3 Y1ēs5k|S\LX/f">G^0l!"^x! ݀vVԀ=lx[c
&MkE.2/-(ҭ`F 1<x[}?]ճzW J3sRtKsV,~Ȗl&j*CORB}6Ld1!mẗZxw%|qf	;jx1X17#,3<%('uo3bNJee(DMniNIfnjJf"ZmsvKzk] զ\׈-f<5l#O}3$oHg~i i>x[c?H[Ƀw{BZM~аY ԣlx; yjv8A8u$0T#}۝TVNU5)=9ڎJWlU6x[c
&熄5jZ~F dx[cC<iol.1d,ybDr_L[x: _pdHYݓs5c&^]A糼lC%ox: wBJ)lfaُd)a{^%Jk{Bٍ
v8x[c?H9+|}Gn9nVfde 
Fnx[c?ȴ71!	G3TmfLymY .x! Po
fJp`&\ڳBU]x[cC<tj}y#NqQmb 
x! _pdHYݳs:x: _pdHYݓs5Ec]$Gzn*dtl'c&x! _<PS׊rh3uϰszVx[cC<62ofx~b jx[cC<HٻYm-ޱ칠i+# Ĩ2x! _͜WH6ﹷ-uRs<x[cC<wzrlq}L[cx! IIJ}rFڧl cx! _4w&>qN]sx[c?ֳg+~X/]fob~Âʌ IAx! *EљtϬd>lFqx[}?o.{ت>pI J3sRtKsV,~Ȗl&j*CORB}6Ld1!mẗZxw%|qf	gF8brw	A,L-OI`0>}یCYznaY*
Q[S`V1=[F EQ[$x#u3&FM[dRYq;D{yjGf<	Iޤ4gA% hb}x}?ʪ v;Zn}`kfeL H+x}?HYwMٸ^XN2m& u\x}?M.fވ`8feL xqx z\7	OPo9,vCe#wBJ)lfaُd)a{zq\[A,֏) fs5	<Ԙ.Q33D:^%Jk{Bٍ
88=x[c?HeH,|78޶(ݢbY 3x[c?ȴ71!	G3TmfLymY px! _3 Y1ĳs#0x[c?He]sɾϷʌ ]x! %A^B Km\lx[c?HeH,|78޶(ݢbY x! vt)ںa#)x! ٞ9vuKvHrnlCHx[c?H{d9Ke_1?|azfeFVf Avx; 8^CVqMðɃ#<#-iգ8,~#.3~sc7Jx! nw5H)z峼lyx[cC<KmYǉEӿ-iXU@)xs1VF h&x! _pdHYݳsVx! _Ǚ}Y4ݳ7h.޳s!Cx; 5+c7Z1:LIǙ}Y4ݳ7h.޳sQPxa :R ;#Fy40000 build-tools +c7Z1:LIǙ}Y4ݳ7h.޳s)@x[}7>!Q4DV,6+o8p J3sRtKsʋ;EIoaR+=3El{ltx}[^]	&c+Bݘ.6YZV &%cB'^jז-)MMLdXkс{.ui]]Ϻy&?cZ&?ua).i!5jM^fgMÓ:lhE)w$;,
ﻻ?qDp&^ 1|hx! ^[sI\쳼lMNx[c?ʪ v;Zn}`kfeFVf .x! 6xhhP ȴelW]x[ 92lk7\U40000 multimedia 9+?Iǣ5?;PEX_ITc(g5ly&Rix! c&^]A糼lsdx! 6xhhP ȴelW0x! >Rϒ}y??6츙l)_x[c
&n?z$Mޠ禣}{rx! b+ڽa:g9l(<x! S9*j)Cq	hlx! [gExpOI޴slSx[c7fM[dRYqd.9 eaIx[c?K,s13e2cYyo׽++!c3~$vNX,ULǋ P,L-OI`~p6eG/4mQ[SȰ`mۣ/]ҺuZW!+OI+(-aПqÒbG9nsd3&w_7*s%RHnATH	\,r bOx! \{Ur}.ёxlmRx[c
&-^SV͜#P,ilF Px[c?ǠW
Vuk[ٲo,feFVf q)lx[}!ol$x[c%&܌֕?";,Mj}3&'F 6x[c%&[nھ!gLN Idx[c%&R]ܦ>M~j
l~ 
x[c%&uO"%'PgLN ߏ@x[c%&I7Wm>/Nv1<Dj3&'F G	nx% 
Z*mվI	k
Sw"x[c%&x9r34W_YYcϘݣx[c%&ڷX9TZoպx:gLN :x  hc¸̰-c~ 9?x}fjMk7/Xgr )lx}f_697_ao. Qjx  ̉1?iq7!Hx  [;~W,Fwx}fje8*Wr ex}fȷ,NۢUQ{or x! P/8viøBTEx}C<[)6d;۠8cYL݌ Ssx! _Ǚ}Y4ݳ7h.޳s #x; o[vD=&~&#6xhhP ȴeBvmx}?jfCq׼1KfeL {x! xp;,i$)߳#jPKx! 6xhhP ȴeB{x}?Hrmw]
R9b2m& ))xT [p雗~#`kP'9$;ֳ52tY+r0ZSm!&(Gx}C<Ȣjk~mc5]K9FRts1S7# Aux}C<HǈSS0)\ J7.x}C<ȩ&7oK.|𿸳Sss1S7# s-x}C<<W5&3{L݌ x}?jfCq׼1KfeL {Ux}?ۢ7&T?C+yfeL qux  㸧mS'Þ
֍r	D$x! 5ygu/96ͣITx}?H^8^+޽vhʌ x_ ƂpUR)#<8i ~L*d
40000 hiviewdfx >Xsg	)px1 $multimodalinput H_Ъ9IB쳼B'.xx f{A0+,x·h(O\#<8Qla}S}'J40000 hiviewdfx 2lk7\U55q
;kyxAG1x}?o.{ت>pIm2m& 6x  ߴa
.Ieex! sD
1(BwLx}C<=Nn<㵽SKL݌ NCx <2%mWWaJF:<>*^_WK#f@̓40000 build-tools wrƌ..xuԳI$t^j؟usLW Гs_
}TKW()vV2)9Òೱ="ZKb40000 web V9bqWGEt%1+P{x}C<B׊r.|XwQbnF )x}C<	;jx1X =x: aS.TQ@S4*J#5q
;kyxAGTx}?'S*Up;qsyVfeL /4x6 <>*^_WK#f@̓#-ş-Vo1MQ]f/lsx! _֯cGiFpƢ/s#"x}??+][G3x=Y6 w'Px}CȌ-t#2 Ox! 	йٴ:Gb?Oj]#x}+f<yx$I#i΂J ?
(x: 5wrƌ..xuԳI_
}TKW()vʗ"x}?'S*Up;qsyVfeL /wxR 2%mWWaJF2)9Òೱ="ZKb40000 web V9bqWGEt%1+#H	Wx}7>!Q4F7I&Yw-fVy59 BFfYfjyJZܚOrY.x][vt&SFO?kX`F,JQ_ SL*zUÙ{;n|x8 2Qݮ_5g>y	ОF2tY+r0ZSm!4Cx~}H7E]tz]%&?QH͚Zkn
:&@X]`TsZÚ݆'f3[.vgꑒ%gurdO#͘4cc'dD_PxN;3E/ FddeU0T%/'P]NS]˳J jrKsJ2sSS26W5'swGGK+Sy4ySHuϙ?>צz?nk><}r0sӀ9Vwblyj='Sx#rSR3n c7x   зIg+RV, gfx8 2%mWWaJF]*`n[<2U!BQGx  zzɘ>)!Bʷxiœuux~}bfG%0Vxg$t1ۙ ,1!x  c 6nJ`u	x 2Qݮ_5g>y	ОFd]x  (R86F)ϴN=x~}bf4ǦfwYK2I֜Y ¾f8x  k8jɩiCX$Tۻ֜Ygx  r٧mvӫ"!Qr	x  ^1@\(o{䢓Ex  O)`kgdѓ%tx  zQvHF x~}bf#ŽN/边+)8Xr C:x: yJx|r@u0S:RJٵg0x! >Xsg3x}H	ьuEMItlt 'x}C3*w>g_;Vg;ˌgttF x\x}(4ެƯ?-jb 
E٥o7I{?s]"T[S̐g:o؝}GJΗ]Tɕ=/L[>:LBFJlzLs<hÇ%DʇC,L-OI`TK^O&uû\Ng@d榦d&2ljO·Whf;V3|ɯM~|x`Jsj^E{9*${:O,}?%:Fާg Kx: ű(쬑*Q8yJx|r@u0T	Xx i4ű(쬑*Q840000 arkui nSyhhk#yJx|r@u0/8J
i8N40000 hiviewdfx y&ce%	5
wjtgXSB!x}ϤJB5\Oj:^44lt &x}&FPҍ
>Ul]d?u1F& Jx}{+k:4j}8ny33o& wx! _J
i8N䬳s]x! =l,&HQx}C3ȓn%%<^杮f7ettF :x! 6CSFflqܳg~jx! 艪EΞjG񋳗g%
mx}+fUG3궅7|( zx! _uՠ&+Կ&kl8stXFx~}$4=R*Eb;yF PH,.d0qw[*WJanCJ3sRtKsL-OH:r'fLs<hÇ%DʇC,L-OI`TK^O&uû\Ng@d榦d&2ljO·Whf;V3|ɯM~|x`Jsj^E{9*${:O,}?%:Fާg 1}fcx; 6NGFI&*OV۳#`y&ce%	5
wjtg@x p:qȅ5M&x~}{+k:4j}8ny33%& Qn"x  `'ϒфxVݼēQx: _iyy}ߝ;Z<sY`'ϒфxVݼē-]Ix {5n5ܾ%tt͢wJɩIē6)X6)r	Ks5z__cݘH"$⓼{{︫7.)S$,9δ[\b[B$[x}+f{J~iri; x {5n5ܾ%tt͢wJɩIē6)48]^mX9W#)ݓs5z__cݘH"$⓼{{︫7.)S$,9δ[\b[gzANx~}ȶ-O3<$|jI5o|x! 6c鼨?S!ܳJ(Zc,x~}©/mP!p"E.x~}Hߜr퇮g9n|֮^L݌ )[x~}B/jZ%mS7# x~}H^QC.i	;l mx~}H&_̉pGr+^L݌ e\x: 6]ohY q+	rJYNQ`I_YSx#ܓ$x! 6ѲcGǃvJ"Tx~}n[,uʯ9]\|җMǽmS7# x~}6?~sj5/Wf/nF Tx~}bf?gpO\ulܣۙ x! 5n5ܾ%tt͢wJɩIBe0x})7]wն|:`͞[ P]xk 6); Ab.3s5z__cݘH"$⓼{{︫7.)S$,9δ[\b[5VxS I)Y]
 bվIwe2#g-$ *!/Y&0/6DON=>9L؆As%38xS g-$ *!/Y&0/6DON=>9L؆As5z__cݘH"$⳼BE'yx H)lg> Ѳ{#e<V=ȊgBœ0/i&gŉ.DYWs5z__cݘH"$⓼{{︫7.)Sy2T&Jׇ7w/)qr40000 web $,9δ[\b[Y0x: 5~It1)k=MA8
f&I1~AQ)82̜vlIx}CHI?Z2{Μohrs \xx~}γ6YV'ݛ"m}f/nF 9&x! 6c\L*HڔЌJ0Vx~}\q=S߱'>Ṧb^L݌ lsx}?y˗-,*X9##[jfeL p^Wx}C3ܚOrY.x][vttF x! 0ͤJҮ~B<B5x  ?{{︫7.)S%C_x}C<I*վd?:L݌ z-x}C<1GюE>P.㰹 Zx  )9Òೱ="ZKbd[x}C<ifjREf̟ E-x}C<H
OX|3|sL݌ 8:-x}C<ޥdCU=֧ks1S7# l>x~}/f3  Ux~}?XIW];Y{Tʌ ܕ`Dx6 6LKp.@TĳJw$,9δ[\b[1NgxT 6]ohY q+	rJY2Nw/K@=L40000 web $,9δ[\b["kx6 6̀^uDǟ
?Jw$,9δ[\b[>0x~}Af{:O,}?%:Fާg  Yx6 6]ohY q+	rJwx
q!FD09U2x~}HlK7
iq|'vf/nF x~}_Wq]'~- ǈ6x! 6	P,`9]J^kfx~}HYCln7>^L݌ x! 6-Mf֗W.JkDx: 6]ohY q+	rJY(<h?ᵢ/Ix~}bfa2UfW?Y,qR7Gr x~}K뵢WU)R߸ً C@x~}ֈm͏4?69\ff/nF  {?nx~}YG^:6`Ȓ^L݌ ;x~}HJU65,(,¥ً Jx~}eOGR&7߽*S%>yS7# xx~}Hi]Ѯ{٫"ScV*F8f/nF IU&x~}%\	u\E,>9ϝ;Tx `Bx~}CU\3ٗ7Y6A+(hS7# Ex~}Af;,
ﻻ?qDp&^ zxx~}bf#U?|~R~n31 ${:O,}?%:Fާg E#?x~}Af{:O,}?%:Fާg  px~}bfM;WYի̵{#wQTŜۙ ,x~}bfa	5u6W(\Ͷpkۙ $ax~}!]"cy|[c^L݌ (p/x~}bf~FO<[X┚*2)Zpvf9 E\x  5}-J0^x  Uet=΃zГz:x~}bfsj^E{9r mgxS GQW@OO(س3i&gŉ.DYWJYT&Jׇ7w/)qrՓc%)IxT )lg> Ѳ{#i&gŉ.DYWJYT&Jׇ7w/)qrՓ%,xT )lg> Ѳ{#i&gŉ.DYWJY-HVу
vłWj@Q%xm )lg> Ѳ{#i&gŉ.DYWJ5{,'1u煳-HVу
vłWj@Q]3/x}/rZfNjnb^bzjnj^	+Ҧ{t\d=m3;9F I=x! g-$ *!/Y&0/x! 4'nu8`O0_?x~}{s8tOߪOtݡh33%& 
x! 5cVġՀ- v2I
1:x~}Af{J~iri; cx}/rZfNjnb^bzjnj^	9*Bl7fvs z x~}HlK7
iq|'vf/nF Nx~}?_RaϽZVjkv{2&& r~x! T!r10^x~}{FE޵u5)fB̌ E:
x! 0ͤJҮ~B-3\x~}{Iτ,]^~P̌ ix  Ƹc'(91e!٪,fo[x   4lM^93hKx}/rZfNjnb^bzjnj^	%Ae慠,TTt x~}Bݣ6U)o=r-_\85^L݌ a.x! #a2yǬ|Int*C/x~}?_RaϽZVjkv{2&& r~\x! vף,Ş#/xh klI(Һ1{x+Xq=[p5ŖYXL}J5iK&~>%.NM,T~@q D>.vx: 6 z><zdI
q*J5{,'1u煳B$>x: 6 z><zdI
q*J5ZI7XzF2j޳Bx  "5䛭i56x~}C4w^]tnvLQh|4 >:cxR 6&ʕ!tv$JJ@ Ւx+\2U|o4Ͷ'dv:ψ+8I Dxeui âqv-}40000 build-tools ĉjGrmݚ40000 bundlemanager z$qVQ-cvaé@L֓q3kQjrÓKNC/;YnmO޷h9\H?J5Y\%Qɭvr`69gXu|ϴ40000 sensors >r-PMF'\o44$Ve؝*]d1~~lx! #a2yǬ|Int*Cx~}bfsj^E{9r mx~}C=7Yl37zs}NLN N.x! )lg> Ѳ{#C%]x~}]ǥgmz> !u3 PH,.dEW|x뺵AJ3sRtKst}}#Νκ=ٓqUc|فYE_?<{Z	L"֑ym_˝!~GL^L""ފQܳZ&Ofjؔ]1K$-n>KSK2K*>Ydt_zD'koObg3:
6К&"{LTRo֡n>K16y; 	r0x~}<٧U*wܵeZ̫ӏ-x  I#T8(
*_qx~}Bݣ6U)o=r-_\85^L݌ ax~}C4H7p|U|4 ^Lxmu0LwR?q161 ĢL_8ﹳsj8S|Ri^JNjnb^bzjZ=Lڿ|Íq~ĂĢb*wI2ȷQZؗo6BFGCGO3+4eOL|Q7Ob'/~صDgV '%0Ķ9Ya7|2[֨C%dd&3_ yɄjQdjG_ᖶgr&[LhK-)/f1>;[dJ|a]4MO"wE'YOkMDJ9]xgdL+ _ox! YU]cH-iNm0x{mC$Ȋ;lb~x}͹LL fkx~}Ȇ;Lٶ0x! 69P˭qO 7J
Ix! 6T4:RƑAsJyx: 6;YnmO޷h9\H?J5nPnm4`1Ha'6BWx~}_5_zN־~^L݌ wx! 觽kVn^=_ ޖ^B3&x! l.$kg
D۳B_x~}Oٌ
ǼeY9xڣ+ً b
x~}C=7Yl37zs}NLN N:x! 6T4:RƑAsJjx~}W.GrmKwSf/nF kw.x~}HxfC{_>W;ӼZf/nF IEx~}bfaa_/6sm87y<  x[Ͼ})dW{<iQ~= '-x  59 蔳TJsKIfB?/x[Ͼ})2鳳쭰TtTʮdO4 =
x! Zh\Hj0;:x}ȔM]?]l>ilt hx}CCeӳ'X?M2ـ# '.x}H#S)cG|sfs ,5[x}:=QoYdzMGfs |-x! ^zTG01#e\x}*E'B-_G>lt ΋\x}ӹV/W,Zmu:7mfs a]ix~}H7uOxηً 9x! 6y;&Hg;ঝǓa#J-x}?gxDN{+9mެx	 Э;[x}C<H&#s̾(8_x~~L݌ R.x}C<H$wz:UuYL݌ Yx! ['A;Hlo
x! lƠ	(22Phlgw|x[cC<K^"EӺg^vtb w x! $o5+痛= Bj1x! VH "Cy3G6B"bx! m
un bƚ USB9^x[c%&BvvˬR
&΅ϘBx[c%&/@=sϴ[Ϙ$>x! 8idY>\ųBG)nx[c%&ȕۙwU}_agLN 9x! uF?$0ցWlhbBdx! Mg0ZStt
B!Kx[c%&zve]fB;rթT]gLN Byx[c%&2_.Ʊ
1*<^l)/#  )'x! ! ؟t&CǕB1Wx[c%&E+6mz;C, Ϙx8qBȯ[WEs~|`st>Ob}t N(xN ;<KsẬ  O>xxdf44`p	О	ySϗC(JPL{20U%JxP ;P%s7@ RO/BoaU
ӛ)܀	Cb@rpRG!ckc-`eB!hxN ;3Bٹ{U
O>xxdf44`p	О	yS,6𺧀'KyN| !xN ;N(C+92ɟݑOCgG7IPӲ/yS.b-N0`>Kna2$5|x6 ;"(CP\-*'&ZO}>KoMEx;<D)E/=h+SR|WWsAd&%&de1>USьr/XD] [c"-ex6 ;^λ0EO}>KoMe_x `A٪ƕzͪkst(/4x"b!IoضV*sL  ;*x[̸qBȕf=O;zz+Ukb9sD*gb6 x;x[̸qBC]|QnA,0ߎ< vexP JA+<Q臤$`K;׸l5YiJt8P13;,<tsVBʡJѦ(k!&d RFx  W3 ˩i֡f˥ũk!xP 
$Rș"ryPߜ;~9tC[=0);8,σM^_4k!2$?qxaaS2yfU7$ue};ĳ#x` =_ں5treeMB
940000 native_drawing ?xGTmn# M'I͊`&>,k8$bk!)yxaa(RԴW)wNlmͨ ƍ-xaaS䊹AU<I+vMPXqĳ(sWxaa0Ad?M2|;v;|ê<KR(;VM_k B^bIfYj|Yqe^2÷e/ݙr+(+K/gp]Q࡯??2lFE >=Px7 IGdϵ1ϒ&&SZPב)IKULF쟭Aίk!ݔxaa(jEBSA)7jBxaa31 Ww3=sfE,:{)g̽JfYvwb,'̛xv? =xaa(3m̈́maN-LClFE +jxaaSA/Gm}K_/9Ґ{ wXx- #isplay_soloist zujSepxaaS$R7li'&Mp u+x D =jͿu,xaaSDکV>0Z@ĳlF*xaaS{^,ĳU=Tx9 ~9tC[=0);8,σM^_4k!UZPxaa31 Www[6췼Rqj1ڍry x7 IGdϵ1ϒ&&SZPבIUXF19E
t)k!lHxaaS~qŪ!Ksd>Up` sxaaS`Ѳ%lZt|oys9b +x# ړU;f'㦚^(ؓk!4\x7 }iVhXc|b;f'㦚^(ؓk!8vx K3?BmOBAɿ͗"x% effect ׃aoc''+̑͗NVx ɹvݳUskc,͗؛Ix{I \}ʏ޹nܳJũ}k7ʹ1 *U 6x{i>Hڛ7v:g<"Ό G1cx{i>H7v-žfqdgFE .A_x xU֡vƶđ͗Yx7 trQ*;3QDXbv }k@L@S	+&C!)Rx` =m[wuam[$y40000 native_drawing "ZT=}6)F^qb	`뭲5@C!\)oxG =Vh1JRٕ+`tm[40000 native_drawing xU֡vƶđ͗"DxG =?>2tb0&\)40000 native_drawing xU֡vƶđ͗"x` =_ں5treeMB
940000 native_drawing xU֡vƶđbߡBG;1cq4C!.#	x ıW3n*͗6x ʫ?nSL[NЮ͗x% effect ׃aoc''+̑͗NSx7 _ں5treeMB
9JNN"lqg!CC!ex }iVhXc|͗ުFx  /#G)ϓC!"x{i>H[D[.^fZ7yɓThOx ;(q YR֜H3N͗v]x *
}H".ƃh*c͑͗~
x |AZiR͗pZx{i<oz}9vBIn% ەx{iNʟ1@}KĳUx }Jb@y
+V<}͗Rx{ir,܉ѿ[TfVə B^bIfYj|JQbyf^:CAJ)jfkr{zgDۚ}k3b=	v&x{iN)5m!XM:1cVĳܘ+x{iNީ&]3x'd}l m*x t	'cҏ.rf4͗>,x7 cM%:+:ߡBG;1cq4C!3x 쓄!;?Hxccё͗`x{iNo7pdY6t Ũx DZ%qI.ҫU;au͗	8x` =ָP<E'X_zq40000 native_drawing gN@בTo=ۈ"b\·N4:WdF+QӓC!+tx7 ָP<E'X_zqʑ\·N4:WdF+QӓC!Fx{ir,܉ѿ[TfVM\r  ]px `}	j/1GY,͗qx C]d:f{'`!L͗x e0D&6K𫧩c͗x Ҽ9y8&ADPF͗3x7 _?#W0	1$&בb`ql섘" `C!2yx{iN+q_gLMQxĳ/qx{i>H̡LX5z{j7˓x{iNYZʋ8LJM<; )Hx ڰ4؛qqks͗x{ir,܉ѿ[TfVM\r  ]+x  /	`뭲5@C!z.x{i<oz}9vBIn% ە*x ?>2tb0&\)x \ſ-AZ鶾ͦ:?͗R4x (ɱB\gCuMȑ͗	'Zx{iNK,zLRJOўz`ĳx OB6@3&^gXK?͗Xt-x e
@kSǰP}-͗,x 캙ߒ	PL+`޳͗,x{iN^FBmĳs*x `%P$ˬskS͗X#,x 89TZD͗,x -?ѥYw13Fq0@͗3?,x ~eajyk}N͗X,x S,nIʑ͗3,x 8.	Rn#͗,x K5j'5N%s㘑͗O=,x F%{aiwV~͗d,x ݅@|,X͗,x{iNUt)?q[Yĳ*x ۬t͗T,x{iNl}$8}cHĳ1*x vզ	͗*,x G 
0+Q,͗v,x -ּ(8KNYO!r%͗H,x{iN΢UWq *x Ę!0}X͗,x "?5-N$3͗vB,x H_4}T6fݫu͗[,x hq[2pȥ|%͗,x 1#bN!x22'"͗ٓ,x S`
Úx~>寝͗,x /.ɒÑ͗,x nc; ߀w}kCӑ͗l,x (Tnּ5X'g͗Lx7 LcS&E%+Iba30|Bݶ"Py2C!HFx{i>HHǦ3ϛvBdgFE `Trx7 ^yLNi =4dfULuđb`ql섘" `C!qx{i>H݅9ߴP|`#hdgFE x{iN]>~
wxv: x{iNB61SNӫ7J.~yW{ĳuGx{iNl;mg&ĳoVx 
%'y(䤜7sᖈ%͗֡,x OlJ͗Xx 6r,b]>͗B3x <(3@M%͗o:-x {=*m|[-͗,x QA5.35h͗!,x{iNnj7>Ny5M` =*x ϗ5-
Ug|796Se͗d^Vx  /wot\qVvq͗Dx UϜt8mF͗*6-x{iNYQ=wd>dkMxv: ]x SP:kdR֑͗fzx{iN|'ۚ%:2+٧n==t }%x 5D(@p<е`Lj>͗ORx  E0y.dܵ .IOx D1-cّ͗.x{iN
<1W[|,wxv: ~Yx hL&Rі9#U}̘/W3x{i;Ȍc!O~gSdiFO g1x{iNn{B/<mhlo<ĳJ%+x{iNxۂAf=|ʷ>Pĳ^>x o#"XomtZ͗h-x 7PD*W~Ƿq͗8,x{iN]9-Xm*oĳ>*x yn3F=|	͗@7,x }Jb@y
+V<}͗RNxaa(bbf}{/D/ͨ 3-xaa("%93NC32ͨ q.,xaa(bVfka{ūٌ %,xaa(RԴW)wNlmͨ ƍ{xkalaP "u~NImqe,. x3 hQЯ8hzYA"2Wq|!WW߲ n'(1jO^pmkIx3 hYd'zP K3|!]|'f^p|Shx3 hFV\F.p[_4|!{4)g!b*U4JBxȸqB̶痛ܻ:J,^sEζ5 ~*xȸqBWV~?ӂN3|蝦kL*xȸqBCUv,*ooWz_S $*xȸqBjg~qLFPeɉ5 .x3 hi3ɟ67ŀѶSvf |!LuQ:{̘U5px3 h;}En{i@G2|!f btEaA
]M"/2x hw̽N^Xm&U|5{>1x3 hYd'zP K3|!7#F4ﻶ_Usx3 hd\h͊Vҡz?||!f btEaA
]^-5x3 hd\h͊Vҡz?||!S270ܷ؆V8: X"Q{`wx3 hd\h͊Vҡz?||!7#F4ﻶ|29x3 hV4BtB$|!Xr]UnqOt)%HA~{x hq}=!ٰ;L|5ox3 hfVϡՓZEp:'|!7#F4ﻶNAxȸqBț}nG:'
hLggБ5 όkxȸqB9=,VLY7?҈WvS ƃxȸqBc?IiV]ʰd`Ή5 JxȸqBF1PGw1^bKrb) x hK3`^Sב|5Dx3 h%XB`5$LVݚl?^ |!8-AQ :o<"t/Bx h۾㊕S˾ڞ7|5nxȸqBRO;gŵ^ZrgoS VxȸqBeq+[gt$Xc
 zTxȸqBȆ9Fl"{ϏikLl*xȸqBH܎GҹK$gdPR)MXc
 *xȸq\!	Wew.(QU ZxR j0	JyJV
J!Eɩ%E%`X]223Hʱ2/<_?X iIlxR v]hf!,#$"VX*:%T 9^5Gx>;:ћuL*G1#%q!BOxU 9tUyG8a@{cM_effect ;E%.gAX1^' _AS'5x v(Ѵה*>hp~ 0dx SAOB9~ۯx% effect ;E%.gRyIx6 9HeGnR>=~CEMX1^' _AS("x Ε6m\˒~#-?x 90ը۰AMݱ*ތox: v]hf!,#$"VX*6%RHSYr! P91#%*Nx d\V$]Wx;{x dW7T,$Q#CxH(x[iBWn'ٔt\cQX Sx dD>
2xx[iBHg֫F/'iU0oYD4+ u0x[iBHOuy_-K..ږĊ I+x[iB@NARȥWe|6:5b u-x[iBȻ<8#dv*r}b
 J3x 7*͝Pk~1x 9.,FX7hM"
)x;tiH{OTO~.m䉾!x 7s)җ>~[xY 73)ȡz+1p?40000 av_codec cmޖK VWMc?2U¯0lJ+uo&Cx ;:ћuL*GVԑpx6 9YՔhWJC6{ńMi&PKmV.=5x6 9YՔhWJC6{ńMiCƵk4V:zxA 7Fưb\.ʹFd40000 av_codec YՔhWJC6{ńMox[i_|/2 'YiL mx6 9YՔhWJC6{ńMy{fN!ߖX}+px3 9
֘ݸN!מp{.jSߑM~:'WxR+Ey1gAx3 ].[eZV^Ja*(/7e=v6px3 Dl+{<}j*|{,xb!̓Dx[iHc)ݽfyg mxV 7Dl+{<}j40000 av_codec N0iJj}@NhM(/7e=vy#,x[iǤG+.R`<fO p:x% effect ;E%.gG5nx, "media_library V$zȕxk+̻)x3 N_o vPB eYjO1(*24pì^ia'k'B:Qkx[i3=fe|~>Cr x[iwM,l:*޷'M9x, =x #jܖh71CJWx Dl+{<}j*6x[iކɋyB{c1 v>-x[iHڎ쯏`_$ Rx Nh:e֡4z|x[iȯTFw^I>`_#wD] 	$x[i
>V\>8G 
Mx[iȒIQeZ佰 vzx[iNGD>|3ԕ5 <zx[i:~^O/q!dia> 
x3 GƝ^p2kL|\l<[.r&ULjBx a_dN~$QZhnx[i˚;o^n}) <eo*x^ 9e"MlQ|ksu*:<+GmVPݔ40000 drm_framework UPǄ+HoLUN8Q\(Llx6 9"֣߳uiM1f.HUp6Lq[O޸fT0x M^q#+aWCݑ*qxq˚;o^n}) <eo[`x3 9G|'EKvBM<[.r&ULjdpji]xxqBĺ* 4 xq+k3S>z^V0?x;xqNjRΜkxSWtfx mcw5ikg+x;xqBHLNL}ۡE r=x;xqBNݫWhYܱWE )x;xqN6zR7{~nɚq *x rs'ݾ7Q+NWx;xqBȎ/}^.eΟlȦ}x;xqBȹorɬiݮRe\RH Vx ^+xp{"]0+x3 ˻-Q3Zg/ fЀ*TU$+/0XtL_0{Ex! 9,בfs M0%'x fV'c/6vݜ+u
]x3 u F*2d*dlsM$hjx3 Ո[ͥbncLw*d|jn	s.|Ĕ2D{x[iHlO'F-xDo +x dM	iͷ0ݘF[xLx[iH%&r'Vi)8t=Do  5x[iH_;֘}U̒ cx[iɅG3O+d 1x[i;ݬs9 Zx[iHk2%go+ .{x[i_|/2 'YiL mBx[iHr;M{+ܛ;,|D mx[iHulub>o+g{ Jx[iȿ[i:�17b7 vux[iS+E	Y\SjZye gVx 9$׷βyfMx[iH$Ot{MJ{u7kSKZ :-x[i֩̉[6ٖߗ0ݻD J-x[i6-[ԟkFT+x[iȯrhnIvݲa2)x[i6%O:\_*o2	ex* )UTx d
1RGlmǑx֦bTx\ 9\fgvw
1TsMiC`E^{_}#Z4U?P1"media_library V$zȕxk+(?x ;:ћuL*GVԑlx yjFCu(MݖVcaEx [va>!-~x[i6fm	5Brefx* 1,x[i6߶F2=(k0~Xo܉ 4vWx H@>FF:׹VJ-x ġ"@p><Vukx[itO?f6(s}쇉Z >=x> KS2SR>QsLMTn7EVTTWKGROW?1~arWY]jDQj	h{E($Mw/~s==	=tOuA*- 8%X/3;(I5 =
8(9u3_bӞYS|x_WL17VDo1l(d#S=Gw_L$e_lJu^ǹk><  dx% 5ki"Ò<Oo_3Cw]x>}+c۞%t_w]*!;GQT/}c .xr gM稊9{/UԱԚlAY
B,
5`"9o_8cF$IJrcQ?ߓmhO)^Ĩthmj(VE2dx> KS2SRoyj'Ym	퉬
i_r-ćR =}xҪlHnS]Bbzz9>Lܬi
+Ԡ
&^ғxdw/oUq޼{~QSQ_Z_Fn~NI>aW%`_'%2V|6s։KXf{F}F}O\|}2=*N(69u\&.w|st_>ZQɻf8Iq?nMׇL\3֟yj9M~˂Ոdx> KS2SR7j^:9ħ~ДܙȪjz=Y5GTrR"R 6-!gr340031QH,XX׾m;.qU=(q)	jPYniЈq{~;e3oUeEɩ^7}o8xͦ{ɞw JOJ,Ne:>w:hu~7l(d&3i||,3%~kglmygyף }P
x8 KcTҴ3^Ԋ݀>챰Q\vM٢bM'7ڂΪ}'Gx> KS2SR7j^:9ħ~ДܙȪjz=Y5GTrR"R 6-!gr340031QH,XX׾m;.qU=(q)	jPYniЈq{~;e3oUeEɩ^7}o8xͦ{ɞw JOJ,Ne:>w:hu~7l(d&3i||,3%~kglmygyף }PcxKJ'/۠!4#sqfWh	4'xKJ'eI m֥/zT|	x[̼YD)E/=AtUI=^r4aӍ* BXx[̼YD)E/=ڙzGc|nӁUUyxE $100644 BUILD.gn ֭.hX]u>B$;mۙV^ǤC}0
.,Աs0~Nx[̼yB
EzUyP;wٴ ؗ,x[|YD)E/=!p?({[ߖes8uEX>K~}<vPɉE)eɩzW2e_럓'{qS]J70 *.<&x[̼yI1?]) iC3ԢDl<sߨ1bvҀ+Pge0XiZwϾWe8Udۧ3\U>vbzlⷵ D;$x[̼YD)E/=	Ի-2>gJ=# 5_xxQD)E/=-_Է]}u5͛Ձ* ^dxff#r'/ڗ5%R =hxf̜31O Bxff#ґLr2$B6qZMt ;x6 z3O{*bZ<c<@kC,Q S9 u7gXGxϸqjyDݯٚSXE+o4 otnxϸq[oca={o5ĉTxϸqjnA!٬Gj\(d
 
qDx;xQD)E/=TeC(n=gJ *;Zx;xQD)E/=nӎo{*d2;x;xQD)E/=[xW+f'tu
', .xsx ô R[-CwLڱUx;xqFX}֮gxdϿ ;
(x;xqFU'=^,.k[E âOx 95ĭЊQv cxxA $100644 BUILD.gn sdc'o$ò?j9 ,FZcOx;xqFoWTMS'R vxA $100644 BUILD.gn Loؘ%pTp%$tδ)apg(~'d_Ox;xqFoWTMS'R vx;xqFߥf6_:1;5 VKx zέ+w7kఐ"hsGx;xqBW&n1ý7 B^Jv|FjbJjQ16lM/M2y] NNx;xqBۣ2\KV|_i~&@ZT0TUjO2f{aJ 	x;xqB0lb׮e8 R3RSRyl˔2ٚ*rMx Dfԑj/XקWK&yx;xQD)E/=!4.I:vD 7B8x;xQD)E/=ds1;@9gD S8x;xQD)E/=!Kӷfzn@ms*Z-*px;xQD)E/=Ix΄-<b[b-4`D >:px;xQD)E/=!GDsN(XrpB ;xUao6nxRAa$E-ah$sH<1J[0lｻ{^u{-:Wg]T;pBs:N^55DS",g'Izc	b@Ρ4C
6PuZi<cAƧ1ݐbny
EL'bj[ݡP\//VX0gԞA9UKzYilC;QkMl 2-ְ\gb\%ݻwqq{X-ps7fOoa.Ws@
Xnak4ҍ4F"uXNK߼mF	ZO(6Qwua6ɿ
S#f:%x*ZvM' 1T^;SFg+\2kSTE%7CFrJz^<b3[T|(,G,Z{R4ؒIe}	6
c~l C"V4-;[.f?%H;=*zȳ&6'a"cF{!SgZ;"9.\QLc^%	\D^$(&kE4|ٹNć)FS^Ʈv6hd[H.^u1>n6I6LE41l?v,9ræx=&=yS&}vIQszƼICJIW&ysOFyǧ|ux|)hR^&;x+r{D]h1q)O|d$'3Mct{{ یIkr2&e k}L0I)q)(䗖%**(e&D+KRs2s2K*Ar`Ag{N~RbEVM)E@@yҼTĒ\%4ʂbL2EEd2ӱH敂AMLKŢI@K(I+NqW-}̚_0H#(9y) \"e, #}\jJd3­	3αJ
ԱK
` NZ(x+gD]h1q)O|d$'3Mct{{ یIkr2&e k}L0I)q)(䗖%**(e&D+KRs2s2K*Ar`Ag{N~RbEVM)E@@y&y)@,R6`y)%zJ:XHd#d@ir^Y|jQ#αJ
ac&\.M"P8%yřyp+W嚼Ysf)PH%""D"pk?<(@?
 }* ';؟\ [?9x+rkD]h1q)O|d$'3Mct{{ یIkr2&e k}L0I)q)(䗖%**(e&"Vg灤j&c58Hiq~iQrj1PER^Jv|F@u:Rʀ<Riz)dĔԢbҼTʂb%MbF5&ŧah;*jy8@9N	v@,{ &s6x+[d;/B~iIAiI|^bnd9F:`Q`r
<͢$(I)Vi˪$V`9VU KƖ$$"@cbŁ,sv\4;Hu;ĥ``-;D!)L Yf_qKq*IN;$	Rd90,"ɥ  Px+[d;/B~iIAiI|^bnf9fyv s	el:x+2SdC9L {#xmJ1Ʃ*I.kOR<zO5Mn&YP@<>f`)#$6_lW+1'lM#Kϭ3.u@+_o亐

XM$l.qw6EF
u)nsq͎Ȳ'Md9GJ,7UܝJ33ſ:2,v^l>~Io*.xʉ0y	ZpËd<;jZ-K{!sbDFOL͇߬#dE4-x,Nd+KfJ^,9A,%ɊқorD1 #txʵs#i]X5Uxs aqeqIjn|rbAbRfNfIR0X.瞓ihy# \4%RxMJAKDQ$(I,$	"Qub-ƬlDKXi_@g/?K77D>axDECAP÷.%%ǎCrնh*RQҮ5hK
7R#q
*-06¾K|<Ӓnb!gWCO%Wo|
=cS*LAJl»QJ>%q`I8Mb9a:s.f&hQ׵x6[ZTȊDVzsl{K>~d/i&SwML|FWrm	z+n}x-[d\f +LYx  f<gIǣ/K1x{{C,H4﹉ָ;*g\ٛʘ=-x{}iPޓ2*OcR6U 3	O)x7 CvHNإ 5`=1b{@&'$Ex;tiBHc9+_7gص` !*x;ti9HOWJ,aIݗp  (x '(xz$R:hmV-x `/hX2l!mj,xC &100644 platform.h b/,FY&_l2bH1K+Qx Xh29Kض=}glƎ@,x `3J|?|mxx[ĸqB;ٟg,xfqs]mት Ҿ%x[ĸqBȞEo}zTdm[9kIkU{Zx[ĸqBȓv&Lk9g$'x[ĸqBHn໌V+*;0YX9; V&'x[ĸqBKJnw?|rgم; 'x[ĸqBg#y+Jg(:h͞n
 
bx)ruKyy3yy` l
x)"Aʋ5uV)mK} |
6x¹sC-Wv?۵|w4-+qرy"23 fx¹s^{f_N~R鬛<+x¹sۂz[ܤxf-.F 'Fx! 		A%	˺퀭C*vxx¹sDUN_Ħǝjd؎M\Vs# e!(x; 		}4D;p.N=\n೑.;絅~Zj<FJ*
txT 		}4D;p.N=\n೑&dwBAjWtF?ikti:h*I`'#Yx¹sC-y#t;pۺM@!43'E$??ޟ,*hϱw&ogJgs,5'.΂hOOJaָb!Yo)-9+K( #3|q}XNdͧNxL"5^olMk&k1i׹}I9KϨe~55I ax¹sHR%W|ߧ7(6iss# գ@x¹sDUN_Ħǝjd؎M\Vs# e!.x! 		A%	˺퀭C*v]x! 		&dwBAj x¹s!sYoNm?rXes# ֒.xS 		}5;'DheYl ѿKyCIXP)jx1(oe$D*!x¹sC-I%r/m-U+1mDFef P.x¹sC-sf[ _stfIl˲`DFef А'[x¹sCȇ5ܙ?N;lkX +x! 		}4Vz6눳#Q7x  		]͠?]6ģ޴
fx! 		}7B$1<J˳#^j	x m		}:`JLZϺNˎW#5L40000 build-tools MQuYت=2Ƶ[7z@,zݓ5(tۯޔCLۋ*?EOt1&hkəEDx  		!zϮJAZVHx¹sC-I%r/m-U+1mDFef Pvx! 		7z@,zݳPA&xz 		}:`JLZϺNˎW#5L40000 build-tools MQuYت=2Ƶ[7z@,zݓ5*q	at*$dҳ*7F9x! 		݅G(4*ix¹sC-Ȟ/wQw5W6i<Q o.x¹sH{BN	?)Y K>-x! 		MQuYت=2Ƶ[tCx! 		gE܌S]X(*sx¹sC-֛kݔlvm=jDFef m.!x! 		6ܼh5<"*aQx9 		n(έjFCSjҙ*?EOt1&hkv9x9 		(tۯޔCLۋ*?EOt1&hkx! 		6ܼh5<"*axx¹sC-iSmd6GamDFef  %x9s0c}&Ãcѧo=ɜ&@X_TW }ݥMNMhr\Ui&y럮~q36Y_Q^|RifNnI~~N1Cr*|>1`W<yļ"Ğ7gO~ZW])\3:y|q{c	?M$RT'0>?音Q:@LN˄W$#}1-|z0='?)1as۵9W9_Ăd縵5yC&]*(,L-OI`qџ9E~,590MLdHc\ezʕ7Nb`tO;{+͸r|^3.N+/*fyLee/_-udKѮMJbKc1Ǟ7DkyjlƌfvïEUK kx¹sC-H<U?
Nb~`DFef Hx¹sC-£1N3~|okNO?vx¹sC-ެ<v7s-moy"23 I,x¹sC-[o}>8N`wO0ػy"23 -x9s&
VVBVvD_b3~;3s# /[x! 		(6YO;e׳Sx9s&%[VNPruVd *9x! 		zekOR-+NZ^x! 		 !zNLK@Sœ(#_x9s&]W1}*}[U9Px¹sufNoDr=3Ͼaxyk UOx! 		z@ H00ɳQx¹sY&}eG*d+gpLx: 		}`JLZϺNˎW#5LF	Q>mIR_ieX8ӓ$Hx¹sHAѾ[Qձhs# vx¹sHǃ|Z}]\6ݔڬ ӄ@$xk 		ՠ,. =w8}YOl{dO`ܓux|rc#2ʚV*U;" g++&60x¹sC-KV-M>k~;<AOMx¹sHvdCl]nߴ|s# Љkx¹sC-{ۛ.FL_<O(r2x  		U;" g++&-/x! 		ՠ,. =w8 bxcDE~f6's BbQv|Qi^Ifn*:v7}s85Q˥pU={]a|佧xys6|RifNnI~~N1Cr_u74[W,/%'571/1=!MSytA}
"%nqX¨;O&LaunYy╇BT!&'%0ly6:'՞˾:UPXfMo)9|QYZV <?sXK-SAjrKs@ApV[Zv_z&Q❬ż6r&Ck+9M/ؑ_ra"ĊҢ̒JyU
5ۥ;1?3LI^q~Q1Γe*+Kw~("Go#X>.M}Iy7&;իgo1W_ Yx¹sG&6b'kRUn)Xc3+zF 4.x: 		a1K~Z*kɜ;O,;u|N"uL<Wv[|_۳ivx¹sC,:v7}s85Q˥-x! 		.qZ9	;V/x! 		G5Fɵ|KG=^x¹sHǃ|Z}]\6ݔڬ ӄ@x¹sC,h:?f$4߮<}aHNͅ 9x9s0fSlfKSMxP7h6E=l9|5 L.xĹs0tRfNfI%sn>՚<m C	bx9sC4UOz;-tzsw)C($f3(|߾0KfԐ]f[\bTxFyy"ӮN5mΖF;NZJت=Ͽ1<5aecE3v;ע*% Du x9sCokZ;:GE0 Sf[6f<_4cC읯]~-2_ gx9sCт:+g<I$y(&1̶lxhn;_?ZTe ..xm 		<UíoG?^W瓝W%}&NX	.;X2ż[^ w8\O~40000 web 9h碘@]Gz73*xm 		<UíoG?^W瓝W%}&NX	.;X2p"jr,TTb(C40000 web 9h碘@]Gz7@2&x9s(ȃcѧo=ɜ5z^J-}Yu($f3.:+(3vzΓKIMKLO-bHyxTE%]oe>y/Hɾg701?$A"EuSX+|ԏ<?Cżs]9I9{ޮ͹*I/xp@%dd&3|8ǭ+
_w~6jg1DEFfYfjyJZ܏)roca>ޯ/LQ4P-)MMLdܤMjvdfMW]ی+5pũyE;O,Yp寎Lc	2ڵIIL~IzA5/3h-OMbm٘|ьwv|	 rx! 		<UíoG?^W糝^0x9sy&5w%.)>e/v{c ܜ]x9sC4ެ<v7s-mo9Q Q
x! 		x|rc#2ʚV:x9s&jV=d1KU9u.x! 		L!7IlRV[]x y		ՠ,. =w8&dwBAjWx|rc#2ʚVX28UfڜCjTI40000 web Хd-Rl|s@7qxm 		&dwBAjWL'YfՅ4کX2@ob.%zƪC40000 web Хd-Rl|91|x! 		ՠ,. =w8+x9sCђ+,O
֜^9O P(OMb4Єunkk_ÖW yGx9sC4g\QՓH)/ڜϨ ͟tx9sC4߆/WyٴG+g !x! 		x|rc#2ʚVQx9sC41OO	+57س!  {x9sCѫuV[%=uM-FO&@P0۲1b|rkQ 	Gx9sCmkuoqvWNS71 $ٖ{k_̗  wx9sCQ+o~!y$͉zy(&1̶lxhn;_?ZTe Sx9sC4jUxY*.ؔh|Fef S.x! 		VW\\/Lgw/x! 		%1~eu=q/x9s& @yM/=c9sO-x! 		Y<fWgd(\x! 		rGi҄~x9s(ȃcѧo=ɜ5#DZnno}S
=Oʘ)R%C4IHQ,V$#}1-|z ss6]sUzYjOe_
*(J,Lfm!۹'$QYZV <?sXK-SAjrKsJ2sSS2r$gt!}VM|Aj=vVzqf>2 E wKx: 		tǘ?32T74`d%^+;1εa>VbIx9sC'Hiڝɡ5:D}!y.WF 4vx9s& +nmQf] #x9sj&?*Sd"06nڼ2# Qx9s(ȃcѧo=ɜ53.x: 		LOX$֐/iCGӓ)$-2P˃VmL1vx! 		l,&Hh/x9sC7$L$YmbfQ惉(&1̶lxhn;_?ZTe dux9sfϦmx.[mƕF7 Z!x: 		hEZnLsT\8ݳ|\5&[ $cUwJkP:@jxR 		hEZnLsT\8ݓ|x%>g"F> Cx5=I>=yK6
lLW7%*x  		U;" g++&{x9s& @yM/=c9sO>x9s&l9d	Y3] ^\x9sC4HOz;-tzsw)C|Fef !	x9s?Fy|?Q]hts؟\BLL kx! 		VW\\/LgwDx9sy&6b'kRUn)Xcc qDrx! 		 Zi_meT6έO"x! 		aQb׀-
GRx H		[5:K]c/)Co:aQb׀-
GFړ1CՉs5WcsrS:#(}Nmv$usq^.ēR2"g\0g|_?40000 web 9h碘@]Gz7P	U1vx! 		Fړ1CՉs&xcF~F=0`MSȌb@($f3-H_wASuU?[ν.O'Oe,r_wq	G.^yx/Dur'SK7}P{L"ߌ0k>^pMSnO`^SX!{&/_KҢ̒J3flZBE=?)sy"LI^q~Q1Ô}\|#KN[|ϛdv=UOV4o2u/k,h-OMbX,9gϐ9|e |^x  		v$usq^.ē/x! 		%1~eu=q^x9sC4ȴ'yO'=l!Xaxyc6>jz#圕rjDKZߞ{@=9}\| JJ2sS>i__r}9kX4a~\9QPg I9)%9.F4op,JCjTUX޾q:fXf;̜ļԼSeHܬ<r{!kEvlXKɅl(jS'g2{p	)?L#gD:btnis)9y%OYMMw
k2dϿY+v)B(NM.-,d0S`kΦu.dQ3='N~mY_XTv=UOV4o2u/k,S`{:oΕGϟqzdx! 		<UíoG?^W糝^x9sCȅ)&l<v[[ WAAx9s&tC)'փ3w^9f.F .x9sCѮMJbKc1Ǟ(&1̶lxhn;_?ZTe Fx! 		JR##\kYfux9sC4y럮~q36Y_Q J"x9sC4H{KOv%ﳔ1n؜Ϩ L

x! 		ѽEE􃫐\ӂBx9sC/_+=Er\`Ԝ8ks 9x9s&5GWgu||qQs] xgx! 		cj/3p]@RDjx9sC4uw	.6~me=.Ols>23 3jxcF7 >-xcF~F=0`MSȌb@|Fef `q1x  Zrݮdt1yXoh_x C`h,f5hfAi6:t-.3eyT%[/!Ɛl N`sLU|5%cڎ'@So7) k֩	4_ow!40000 security ls	4JӈqE5ubڍ.0N
MSxx! ]6e7m(x! ` Zi_meT6έt?XxcC,HIo[ )xcC-&TK+Us/Tf<ˌ -xce&r6(NxMY͏L] ZxcȱG)}!rb	ykqf?Fef 8x q`h,f5hfAi6:t-.3eyT%[xxu]&$LpQ7) k֩	4_ow!40000 security 6 h6*TZiӑ=@#$x! {ו6wf>ϯ*1Tx! Pdb,<*X~tm}xce&d3nWț=UߗϙE+x9 ?O&m̤7x)}?EOt1&hkꓨ%	sx ``RM8gـ)';zV=	Dto\KEHM1;wX9[/_euQR vAm$5i*>Bc#X2z5GwIp40000 web ITl_yS.*CM!xc6>jz#圕rjDKZߞ{@=9}\| JJ2sS>i__r}9kX4!6¸wH=;I%D>43'E$??a6#qAï/xdN3FM.a\%QpݽOY]Z%y}SHprs
.dXa<&Ssڬ,>;"y}o'?g ¸tԯYEK98aeD%FoSDhuK&SSKNu3dbN<_?x }:;xce&1/S͚#g.3H2((9S# gix! Pdb,<*X~tm0xc;+|ԏ<?CżsLbL ~xc;+|ԏ<?CżsLbL RxcCȭO38!sYUƿL 'xcvfm"][2*nJz_j742 ݂Txm / \ymUaA(6 h6*TZiӑt2z5GwIp40000 web ubڍ.0N
>-Pxcvf3flZBE=?)sy i)xcCȦmJ!G1t=|AN{<ˌ cWx! ÙM~?jI?ŀix! 	0N(.9S\.;xc=WƕKܢZPjW]&@PPw`[zks5||5 'AxcH{KOv%ﳔ1nǨ 0x! l\ϞuLI5+˳`x  ?EOt1&hkꓨ	xcvf/od;o̷4<"}uie $<xcCH;W;(.UwՔ% pjxT Q:MtT}:Ǽ"ѳX2z5GwIp40000 web ubڍ.0N
$)mx! g?gď
34L¨1\xce&-
NM9xWϙW_KxcC,lƌfvïEUK vxcCHr*|>1`W<% yxce&vKUy\}O!8s.F _FxcCHr_u74[Wts	_& ftxc6>jz#圕rjDKZߞ{@=9}\| JJ2sS>i__r}9kX4!6¸wH=;I%D>43'E$??a6#qAï/xdN3Fm.ac	.WNŽ7Ld*RkݯSaYLe"%:21'Qlz rlSxcCYşEkr&uE\<2# Sx! iěnvM-)xcC'SK7}P{yLR^xce&goD>M6*7Y;٠zs.F  [xce&2?Ғ6gL] x6 vXrzٮ)+vITl_yS.[Mx6 ΣX6,iٲYOd۳vITl_yS.7xcC,b<xL̉|/ )xcCȭO38!sYUƿL x! ,!:[ў8ˢd
Kx! iěnvM-){x! ac
Na-8+.C- 0xc=f_3lFKo_nb 
I%:21'Qlz uux  rqT.D}b8׽\
#x UdN_<R*yu+5/ѓM2:]h^ze~$f40000 build-tools rêsOZtRspѽWX1q5K;a?;͐7ݢ3O9x! *}M~(q*Bix9 |*YlCz+>w퓌yUoͳӭ91xcCHr_u74[Wts	_& f_xqc6>jz#圕rjDQO-d_);s-k<L@!(4A5dՈ/Kw9tO*I-)fwt1Z7ycV֗2UKWܮcy5.vOGFa&1Ez_=٬QRզ-7OdjǮX[/6FNs-!d$d0<-[fzsVV777t.ldfel¢)b{:oΕGϟqtwxc6>jz#圕rjFm7 =#x9 |*YlCz+Hzهޱ;WzG2?xqc:v7}s85Q˥U:xT ac
Na-8+.\k=ICG&2'|36Hr5^i[3u@(ȯpal,#xqcc"GO'K%*Ϳz_%|($ef2̪p:I_V"T[S̰]aϧr=3_x{%b+$I:iۺ׽ 322SS*/>Ļŷjei.p.-)MMLd8DOԨy̷J'?gQ:vУ2zAŷ_KV}3٘QI޷Xh_{W:'$ys<z에k rx~x^Vߪ?+:bKsw26x40000 build-tools RM8gـ)';zV=	Dt}YOl{dO`ܓ2X_euQR vAm$5>rqT.D}b8׽40000 multimodalinput hD;[k AY@ee mpE=  T0ITl_yS.rxcCnC^mjVxx<ˌ .x! K;a?;͐7ݢ3&]xy dN_<R*yu+:]h^ze~$f40000 build-tools rêsOZt_K;a?;͐7ݢ3>86x9 dN_<R*yu+_RspѽWX1q6<HxcCnC^mjVxx<ˌ ux! pOp{Sz"κ*Q$xc7>Y>xCva.x! rqT.D}b8׽۳v8x; :XP'|Yş?pN<W+HEGs㳞g^x; :ߊ(pG>^!6,gN<W+HEGs㳞ܤ(xqcͮZiu]f=FUf xxcc߇[?-xkK./'u-k BbQvi&ov	e4)oYaO*I-)fwt1Z7ycV֗2UKwlXKɅl(jS!322SS*~\gN{3~}e*DMniNIfnjJf"bmpf֏7֗۸9͵DVWPZEu_gk)8pDi^jIy~Q6/,.]u?
p~Z>٘qtj*COD&>}v̐%E)E%oSDhuK&S$ys<z에k %^xqc˟d^yS<[f?FVf jBx! 4ٕ<@/#rxqcC7[s4><+\TÃkyL[	N x; :RF1RTz/+N<	쟄lr~`bH
jx H:>2Z34nkAVN'b*آ.!ݻl&}g2X
ӿ[hwT
VN5X% (l n_Hߟš'OI!.P42R8JZXAm8e40000 web ,s]DOAsnC,Qo>xqcCj_F,zVTpDk< 0lx! -7?tA%nxqce&mvyilG(O) .xqc"3Ήwv31 $ys<z에k fFx! }NAu:˳/xqc"ц~9El_z<ݙ Sv/_͹_B>/:n}> uxqc=ϻ_Ů9!]< I(x  š'OI!.Pf(.x! }46uJ똉]곞D]xT }46uJ똉]곞2R8JZXAm8e40000 web ,s]DOAsn'bxqc"GO'K%*Ϳz_%|f=FUf HRx! ŚрoJ7)2ьyl?x: cFwgmI.>Xغk5As4uiId)5lUxS 'b*آ.!ݻl&}g2XcFwgmI.>Xغk5As4uiId)5l͠#jxl :>2Z34nkAVN'b*آ.!ݻl&}g2XcFwgmI.>Xغk5X% (l n_Hߟl0/Vx! o5*Ʋ-dÄlx! J)@	unǱól{|[x! +voBȎl(TxqcCHтR\x	 
9xqce&bƟ3=w3|5;学L9 gxqce&E
7mdLqL9 xqc=
nn6
({:i#+3 hx̱cj)/;9~efs PH,ʎ/*+MeHRf\ISև;J3lnhmF:q!I9)%9+Ig>$Sl/s2.\)RQ!'`N&2}qO[k8UDiNf)\#23&z7Ƿ:k>!m<&SmA&غ!/e< qJni3)9y%/+yDvY80\7dAfG=O<YyƏ''vA(NM.-,d޴!bP峚}d|9hqUzuͺ}If/DoyjC_TZj^j  8x[cI8&ejqJw9x ߦ_)B75WKgx[cIzF<Nƻ x[}I%oϽy_.N;?+][G3x=mb 
I9)%9+j?cdK6j')>&{2fِpK-^A'3迾m!W;%;r1uo	Xޯjqn-D_zQbAFf2c'KPz4-Yqe)iwofnWFuCd榦d&25X=ggݼU1-)uV]KfϙSMM^f4qu=W"DP[p6'DB7i34YP	 >Dpx[cI}nǈ$}fQ=g;h]of b,x [Pװ|klnKx[cIKmk'Z=ɘkewIx[cI6+U#ճf:Wq͹jUƻ Dx>cAfTYswM󑳝M|ɻ]  Kx# ee ƵSpuگ9'Dq}x}&FcV$jmrX]+?!cL |+x}C<[:CWqbnF Yx! _s_jכC˪s	x! :?k'#&$9x}?HP<nMzNU/V:MfeL GLx  mpE=  TD2x! _i ~L*d
s"=x! [p雗~# Jmx}?HMkS.t2m& N	vx a:j;Z{VWssNIW]#:]m$8|H w[Lf5HɸP-Ra;2Ux E|Xe#KڶC40000 web ,s]DOAsn3E-xR cFwgmI.>Xغk5w 0=
ds_D2X:=bLV"Jax! ]0$x?Op>lJxce&ΕO%I~xKKEgϙ.xce&9{30Z5zTqϙvyxcC,HIo[ "xcCHr_u74[Wts	_& fPxcHD#U;bυ,To23 D.x; :AMYw@uHgIiN<xDtЌkZ{5㳞TIxcHD#U;bυ,To23 Dvxc-_.	~ҍn, ߜ!xc-@&S9yYo۰b~ c#xcHlƋqUzV':wJڗ~ Q4x! Q9θ%]Vcdxv ::SVom94u740000 build-tools AD2PAr*d.*zt_z^r\$蓴Jv:K	T15Kx! `rêsOZt-5xcH9UIٰ\?Cf#&{& Tcx! K;a?;͐7ݢ3&xca"ΠKeYCUǨ 
Axce&vz̬o/q5rk9S# |oxS :+ETXX9t3@\ۓN~E^]];\OVi[2!}ijϱu<E2B9$>xcH+u;Ù%nˏxcC_cV-DayL>xcGUw6><ev	k8kaFLL dlxc_&BvvˬR
&΅͂	 I\x! (EHƔ2?k]xqcd[ rx= 
I5Y|Zd2Փ8"Hykp~Ac%34=`x! hD;[k AY@Bozxqc</,.]u?
p~Z٘Y 'xqcOo/ݾY89ɕa\錛U,G[xqc[ⳗla|A]pZZ~ 9xqcr$g%6mM~ӈϛY\!6x! `rêsOZt%Z?fxqcjk9g`KRFLL  x! ::k0TS[N1/Dxqce&873K4N4 ϙrrx! XDJq\N)ƍl&{"xqcH;	wzRYgُ PxqcC'
gNL[r4<yL[QxqcHD:쇕[N_<:}YFx; :IGQe0ZnXN
D.*u2ci`ulJxqckܫ+-_?rzs{#+3 wxqcu5}iɧche 9$x; :XP'|Yş?pN<1Ud>"*JxqcCȎ+>u)Г%Um*ryL[wxqccͮZiu]($ef2u2޻kI^/_öAJ3sRtKs9t\Tag}:qzև(}RBFLnܗs=5G|}W6܌̲
5˺p<nǭZY!jrKsJ2sSS2R$Jli
چF'?g$utr՟=ƿKQ/`&FA/:,{틊8;cŪcSp|]*viY: q@*x! :xB 0/bo!%Na0xqcCH[b'{n9hmyL[]xqc"N/y6ӤbPހ{,&@P`{:oΕGϟq	#xqc"QI޷Xh_{W:⧉(&1X^Λsg|_t_| Zjxqccy_̴Iˇ%.9 BbQvi&c|GǟoMwOD>43'E$??aqN5JO{fK3E<÷]9fgZc[v͙QWD=IÍEz>)!hwZmd#dr鹞[욅#>վ+baFfYfjyJZÚeg?[xV,΅59%)k=N_w)O~I,?{>^oM&1VjaꚈTe[ۜ!Ɩ&1U./u, f\x! ac
Na-8+.%%WFx; GNrA9ua"$W.S9*j)CqJxE 8xDtЌkZ{540000 hiviewdfx rGi҄i.!zx! W+HEGs㳞Mx; `@A"l̟%tW+HEGs㳞#*Mx ]:K	T1Ů+x! "a}v+	D`o,Zxc|/s=f0ml'JD\x! ѕ:h?x^7h\x! "%NbP/]xc?7D[2M5(9X 7x! z^r\$蓴Jx! $ԸD$ʻsVzxcMf_&.1n"@d[ Y!Dx  zpyo偒hv'I,/xcMfݳ.w^cH7IŲo[ `x9s&y{=^l] x! 		./'`վG,URx3 -$ަvj{?ZAQV-K8`S;{%6ҁmxeeP)b#SCV[3"oeM 1(x{QD!9#59[!GAb)V&xnI cchx6 7@ 
i{8wKJ|._a6T25ϑ}89/x6 7aGGƕNJb$&DKZX9$k$(:v}8X8Gxʸqӧig[]?q' E*x6 7sF.U!LKXq5W8R<:K}8[x8qBȬONW6.%Hޏ: ey-x8qBZݶnۺt Ex[̸qȪ7Jzva Ѣ`x"yK4&YNI ~wxkalaP "vi#-ޯg4w5 !xkalaP(:싄饒N\Q~ JxkalaP WjzHe]h t}xkalaP rwm:$jrۋGe Dx4i15?ks~OڲD|D7 qx4i_5?
y&.Z>D7 ?x` q2ݤE@Q JPAr8
hal7100644 pixelmap_native.h _mnLE_}+f*yx4ix/KO_Nw\C&Txd2Q ix8!q$5 g[2x4iȥSl
Z0Q- x[x4iHw"RaW>oAc? mx` qb?^\%mlLEPAeWk_FUҤϑ100644 pixelmap_native.h P~?d56:Zyb)'x[ĸqB˓wk>_  v9Qx[ĸqBHJg]pweWtyX
 ~x[ĸqBHO|J"e>JxGW (x[ĸqBȴ%7d"rΩ KTx[ĸqBHiUnZ<뉾͂W,'x[ĸqBtk>[#"k. qxxqH؂e?jyYuڽz xxqiw3y?&nb5/5-7{[ kKxA $100644 BUILD.gn Z]'-IX
Ǒ$~˝1HVCEp<1xxqȲ5?RuZ:/g1Þn= JxxqIhKZOV9ѭ C,xxQD)E/=!#~uSwȭ|[|a: Ml9x, $100644 BUILD.gn dTs@$pMxxqȭïX^bߒd>/g[ =+xxqHRN)<[{[ȇz {Uxxq[K/mmd]d/ebz !xxqȕ2!?W|jߌn= H~xxQD)E/=xߵoo.;!v҉* Nt6xxQD)E/=amX9N<=Du HoxxQD)E/=6Qr]ի53eMTY !Hrx, $100644 BUILD.gn *kfCZس9━C$K,xxQD)E/=AIr֯/-[UVBɉ* Ex8qB{k,mSk5\x$ Aj;x8qBHj-B-U-DO} 
ex8qBHy,ίU?gj:E pmxcc`*t5',+6L4h:J"/ӓ0G dx;tID! '2H/A(V"yBʶlyXQM pr"x;tD! '2H/Wu6yQym"v~]v1y%e$ww/dZ(ӳѓ 4"|x;tD! '2H/!֔&-O,8^D ?\keI}wZSoG N .Vx;tD! '2H/I7YGJ9?Y?ji +bqLDҝiE4p,FOFF E"]0x;tD! '2H/գ%y.fθS'L +o*M˕Rҍ e#
x6 (0BBL^hDeIn[@`=hmx;tD! '2H/O͍ɋHA. +bู?=sSrԣt'## MU"ax;tik,Z~a(=0wYx 5Xx"ܖr̀MI-x;tID! '2H/A}ZuodC~2mTSa kx;tID! '2H/ᮃb>/ٺsY|F5F Eqx;ti]vaߖ4SVG̲q|" =x: RCwo=IH[[cs
;PsydYo?ؑ,Ix;tiBH6>kX?ۖ^\$c ŴB*x ^'g'.lƨ)x[ĸqBtk>[#"k. *x[ĸqBȧOZL~w5kULTx[ĸqBHRaUɷoSu 	{x i5Vujmݦ22}%֑@xccP%Du/n_ӝf.] pjxcc&CfXהg|:1K e-xc̚ yx*r~:fKSYk1Z f	}xddP*v)/ue3k, l*xddP*s4=~>{[ @x"ѦG=37ʬj r(x"ҧ4M}/<-; gx+-(y1!Yɦ  	shx{qjGۄj%Vpv_Kűu x{qjw\Rx-$(g~u'r: ٧QZx{qBȾ5Jٺn\zK0e<_ hx C_PX
̏|ő,x3 fи|Dvjadǧ
ڑTuuQ 8G}	|tx! })t٪HFo1${2xxq~3ILgR67TK IYx9 E܎8H`C(%\ʑ1Wn_;])/_mx1$H[x)ҹyס,rg4.m x)"Rt ڲJ:. a(x9 RFTDu@@=AJKkֶyfW9l9.Jx9 $!Ed/DRՑ@=2F9e=Y.bhx[ʸqD);	Oi͛O4Zm; {x[ʸqDs.06>=. dTx[ʸqDO'9Lyt1몕իbX  'x[ʸqD/>xwA x[c
&ΆK_msƖw{fL]{rFx[c
&;mR{rބvx[c
&	%'ݾQU{r'&x! =*'A9ž]l
Xx! ոw3;#v̳lDx! Iդ!.x}(<(ʢlsDx[c
&}}/,(2mF  *x[c
&k~WYf[r7fnl=L9 x;2D)E/=m%SފsZ-̤Tl<k̶D}xjeSByD	Oܶ\;ԉR?޿;rBۛ?;:$u}VPK2RSR2}*Kr}מּ)@grFg>M3$;\QC-7ɏEo~ф_˽ߛ :a'
x;2D)E/=m%SފsZ-̤Tl<m-u*&q5~Iى"{mw9~Lwb{7;YwtJu)I
ح%d姤e0p9̄0e/fwիJd&0:if~!ᢏ҇n1&N~(~Ӝ~Î&=-*_ޜ  'aryx gÖ=wKgĕ	ݱ{h)x;2D)E/=m%SފsZ-̤Tl<m-u*&q5~Iى"{mw9~Lwb{7;YwtJu)I
ح%d姤e0$T8Y}Sl *3="}fH;v裆a[n349	wO˿ʗ{37'  va x;2D)E/=Ao OM|n&'3)19U//%[/8?ǃ%ѯU]*X.;bbl]}~8U&k18	m7}`A[wrW;^Qjѓby%e%zz<}'+-'?fL Woxh ;L|ͭ6}鐱ԚD;WOמo-Q~݃{@5=&CPCe[t`eM5:Lx~ ;C6nfCOB|uIϒ/7xC100644 native_node_napi.h )18	g%" 76De/]e:x2e+)3t$= Y:x2eMS?#_u}wk''1 ķ|gx7 ;$uUr<dO.ɲEoneu!9x;2D)E/=m%SފsZ-̤Tl<ֲ[.f`3?&NWh{uGTd/
jJ^bIfYj|^~J^ÍIkNDVu~zp{W49	wO˿ʗ{37'  &O:x~ ;rɳV!^?;lOB
a},"$c|2ql100644 native_node_napi.h )18	g%" 7Lt޺5eSqҴNe# 8&DxP ;"KNE/#ygC:OK>ǃ: =~̤`C:L6Gp	Qz~〓en_"#xrD)E/=AHrMqqO?s>̤Tl<}&ɕ_ES*lτ*K,,KOM,I`8ͽzwN)\ugAݲ λ=U%Fee/OerZ3oL¾}u1 Ofx2eHz5u{Rӫ ϻZx6 ;HK%ޑ16|OmM$iͿdYDNMKxP ;L>HKM !rO<_Y0"و5p<^J7`CMẫ{ϩLʷdnB6e!sxP ;]S*ewO4F	ROv;n}W)Oz*`CXag.!d:qe#x2eȏK_Xλ>)U]vF J/x -O100644 BUILD.gn \Ni2-LߒMcrf$100644 libace.ndk.json 
ߢiۇߑOACgG7IPӲ/F>>?}drY^FT7m{}nU>I,tz`CW8.0:*}Q%F!=LR\OBXXx2e,ϖ.K4cNSPˍgx9 LFBgd␫ejH`CW9po@He}eCUx bj0ʿnb-Mx9 L@
LC{ X`C_Y
p*˚ZeFJx` ;P%s7@ ROc̊!DNMf~"_xcomponent.h kM݈̓[/fӓ7,6,xh .06J;.{kF(Mѕх4=7%r	,smϷ`
d2\2i8w}j
K+#x2D)E/=Ao OM|n&'3)19U//%[/8?cѝi#^yn,# !x ;̫.߃ԃW\ޛY$O/2.x2D)E/=Ao OM|n&'3)19U//%[/8?SݿKe(󚯶<lYF =!x ;~fH(ʑکĔNoͷձOKx2ewk&|q螸kg:x2eݍΝsMieF ӏXx9 LufY$~`gד`CHtڈ[yp&'y9e""x<e&ҢTQɜ>).~f&&
y%ey%Ei vve<eO)"=i%9F 9"x7 ;
ߢiۇߑO(2 ZS̗K}. xQ ;ƙM(4iwW= 3O)K>ǃ: =~̤CQ^0JVGab<^e%V`x gg8WTBpUtBÐ{ds-x  ؿPOS7C孈IseZw.x  9֟T*PXe4.x;reyFSUtWmYܿbǌ ޲Tx;xqBHasn+7oWbj Рfx;xqFƣrU;7.l2gxդu7.+x;xqF~˯ޛQp% fUx ʝDSE:0ıx <Fo58ʱ0,x-x;xqFxl{S+g>%' |Vx;xqF&gXsi}^] 
$x[ƸqpSͩ>5c* %y-x[ƸqH詐"U˶jTncc* gxee!2Ṏkce͆6l'51G -xee!R;=1SU&횲`b" Ax[ƸqHgS:e%{yǝ)أ81 V_xee!0mnOc\O 5xeeP)ĕ?d[tɰ 7Qx[Ÿq4l[1Oo)X3g, 
;x{qB]k_q~i2 '[hx6 ah<6\HSju6u\{
YcQaƚ,#/x{qBT^̮ϻn<Ka/q2 >n!xT 58;c*q;F|40000 common +0Z-{zuX\֪HgE}H_|@*b&x J[@f欝
𯓓Fֱ,tx 6y,`deX,y=x{qj8id5.~r'k~ /\x .w<cؽv-,Ҟx$ S%D?VMȿV1SB(?Px \BLHκI`yp,ޖ\dVxu dx iu;WŔ3%}%%e/x[ĸqBaokz-um_yCwb* }"Yx[ĸqBU";+?AZU ӟsx[ĸqBﳗC䪶մw\db* Wx[ĸqB'3B2M6;m>umKĉ ^cx 2 ae,_S^Fd-x! :VTl\fɳ#_x[~mu0LwR?q161 ĢL=u۟U0&ť^"TZP0!+=O
ĂĢb*a͂4k"0}ތ"g>Vui˞!ݣ1ynOڏ_:k|Ϥ&ANOJaPmsndQ*(J,Lf9E.Sܙkd&S3<ng;yr>.|y%E1GgLI/,~wۙbDD}<C1~\y|'H:Ww珼{-mg"x[Ͼ}C$H͜輀lXl:͹LN @ Px! Y6֠:ã۸O&V۳mB x! Yޤ}dwK0mBO0x[>}u0LwR?q161 ĢL_8ﹳsj8S|RifNnI~~N1z5P	1Zʡ3W5ޅKIMKLO-bt8y]W?1g>U2ٛQѓ=Ǌ.u8{;&/`3SmsndQ^X`/s@ON
e7Y̠RXkU
zPw5/<({9bun9l̗gbwE'YOkũyERlLxoɉ,== fx! YĢ^u#̀rOmB8x[>}u0LwR?q161 ĢL_8ﹳsj8S|RifNnI~~N1z5P	1Zʡ3W5ޅKIMKLO-bt8y]W?1g>U2ٛQѓ=Ǌ.u8{;&/`3SmsndQ^X`/s@ON
e7Yl3-gn~QPbּԒlmչ$/_ 31_9Wdr?Sszϛg>s(fޯ+C3pJ=/3Eu&&'γLd  x[Ͼ};F׻//zZޖM@!( #3as[s';߿nkݛUbPx! X˾92NG$9x! BߵK~~ا,bU8>-.x[Ͼ}C$9h=bʿg͹LN I\x[>}u0LwR?q161 ĢL_8ﹳsj8S|RifNnI~~N1z5P	1Zʡ3W5ޅKIMKLO-bt8y]W?1g>U2ٛQѓ=Ǌ.u8{;&/`3SmsndQ^X`/s@ON
e7YlSˣWG8Rt_ּԒlmչ$/_ 31_9Wdr?Sszϛg>s(fޯ+C3pJ=/3Eu&&'γLd  vt5x8 ,κŔzFۆ`pH8Av㜹;Eʀ=IfdvNx[Ͼ}C$5Q/j.[k9ɉ |x[Ͼ}C$ȱ)K\cs\&'F (|x! YNSdm$,x>}C$Hy_rQؗsb㨤͹L* .x>}C$-+X.IuRE<"^=sT:-x>}C$5ir.ȟ)q͹L* I[x! ĉjGrmݚ۳#x iԫ	F;hp~9}G9x! M$O	+,D$ix[Ͼ}C5ȁ#/0b1>?	x[Ͼ}C5ұmf/B^L
 \x[Ͼ} ȅEbT
JJ,qp
S7# )'-x[Ͼ}C$Ȏ/W҄zc0?wnk\&'F GZx; 4jlN;[#6#f5om-E{.mBIx[Ͼ}9Hʊa/$%^) sm7c
 *vx! Yޤ}dwK0mBO%x[Ͼ}9Z=Lڿ|Íq~ތ)L *Sx[mu0LwR?q161 ĢL_8ﹳsj8S|Ri^JNjnb^bzj{nB-6|aqĂĢbgϦpkVB1F]̮E=c|P=1CGcFp?ubI[Mà63gcoa[UPX0kY{͑Iv_d8Y75m]\`ɟ ZRKb(_Xnw,MZDD}<C1~\y|' 1dx[Ͼ}9Hm^J6{30 f6x[Ͼ}0rm&jϻdu v-x EԽi.kyf-x! Yڜ줻lDUnmB17\xS G	rIP{x#6ڜ줻lDUnmJ$TK#;8L\'3^&ax[Ͼ}?Ȇy&<g|7ޜ~ћ{ @x[>}C$HIӮ|Am绽7e`s.
# '	<x[>}KYySJTDk7-](~ J3sRtKsRme5thV<W˅\Uvd&So/[v{ȯYoAK-)/f]d(9K-Ǎrc29zngbb 1BgUx! 7UUSŦܶ%.dKFfIx! Yڜ줻lDUnm$){05x iԫ	F;hp~99cx: 
^
_Cz|c$5^迮=7GYڳm$,xmIu0LwR?q161 ĢL_8ﹳsj8ʌEũEVweox/lތ"g>Vui˞!ݣ1ynOڏ_:k|Ϥ&AlMOJaPmsndQ*(J,Lf(A-	,M'|91YlʩN}!Hg"ּԒlE$];Kt~+:Q~7z}P̼_+W x>} ȅEbT
JJ,qp
S.# m-x>}KYySJTDk7-](~p)L -S,xmu0LwR?q161 ĢL_8ﹳsj8S|Ri^JNjnb^bzj{nB-6|aqĂĢbgϦpkVB1F]̮E=c|P=1CGcFp?ubI[Mà63gcoa[UPXP<uX)[&YFNrb
YbzI鯜_2њZR_T'^͓ZDD}<C1~\y|' hx; e=܊^UW#X#>FԶRW"ѶC"x  {p'KO'Qx{mC5Hxƒo*۟Fqr? U~x  {jA$)شx؇]6-x{mC5H֖0Yg?mZ!wr? Zx{mC5Anu1^~ 	x{mC5ȣe<YRKar? 6x{mC5 ÚT7WL cx{m Z=Lڿ|Íq~ PHN,Ȍ/H,*N-bڿ[x.|ŋ}9fmfc4{T>V	DGRS,M[!RKb(_Xnw,M  qa3gx{mC5e/$.E՚L{yJzr? .A:x{mC$OY{i/:Vqoí͹LL x  {-b1d9QFg/x{mC5g_rޯnַQUHVsr? [x  {]-]PSv4㓏,xx{mC5Ȅ_d$d3;o;}~ ~%x{mC5Hë)Wn?s.oL Rx  {[̐lb>l	jx{mC5ȣ7B$t*/~ r -x  {܃Tk+'CΏ5[x  {L숖x*=c	x{mC5t~ej&$tUl\{mr? ېb6x{mC5HqNf̪kM|~ ?-x  {]# q\f𽓏[x{mC5ǻn*;]涝ܵLN~ J@x>}?Ȫ9%eyoX2eʌyL nx>}C5ȿ.ϻGֆ~=LL -x>}C56rr/٘/Ϝ+ Jx>}ɨu0LwR?q161 ĢL_8ﹳsj8S|RifNnI~~N1cNWyތhCr3E=c|P=1CGcF?qY^^Tnؠ>^ffR+'A,K-)/fҠ]=E륳go[79NTͳ^93ʕ!ZS8xs؞ϗ:~rY&{2{  ;p x>}?A2朣-ʺ ±rx>} 烰CE6._qe
S.# i x>}C$z'b%͉sT LNx>}C5HAoG5Ilc-F'Gw~&&F |x ~`D#	3ݴ%*x>}ɨ_];]qCˑ&@X]ɰFiSBjy+
L]"T[S`[anHX<Y񴈸Q,/˿wmJOfb
IlPpW/WU3)tKF&2-qUyקzrY 	Inkx }4$Ve؝*]d1x>}?Ȫ9%eyoX2eʌyL Dx  /<SݵW8'j
fsx>}0HjgFt=.ZMVg 
 xmˤ_8ﹳsj8S PH*KIMKLO-bPtQņ;>8QX_XTTٴNsJH>&csب5<c7'{왏u]'qHhwL^'1NZ?_3ivsssTbtq>~-lkԡ
22n<erdu5˨`	_NLVa25KlPpW/WU3)tKF ZRK14r\עǼ1TuÓZDD}<C1~\y|' Zx "sgW&nbMx>}K_8ﹳsj8S PH*I-)fPOj?!FK9aVúƻ3E=c|P=1CGcF?3ض9?]a?+O{uE>$
}-JĮP}ULE~n:X[C_wzyϕ'2-3sUyקzrqũyERlLxoɉ,== #aMjx>}?Ȇy&<g|7ޜ~ћ ;x>}0rm&jϻdu, 9;x  {퓁"rЗqqx0x>}?H6yҽLܳ:~L:fe<& G^xS ? ^g8'.`CL##FjJ9=1%MSC^,ZNʌ\Ǔ'j @x>}K_8ﹳsj8S PH*I-)fh]VyW61;|ʌ"g>Vui˞!ݣ1yQ,/˿wmJOfb
IlPpW/WU3)tKF&2-3pIok;1@ Լb\)ehuķyɞ h3L:xȾ}Df9 P(OMb]wO]: kx! ^;&''#n]x9 [jmD,:q3f>|a'.m))bgB`2m$cx! Uӣ
V0c*,.x>}?H6yҽLܳ:~L:fe<& GAx>}C$HbzI鯜_29I ox M:~/üܧ	%\^540000 build-tools B[az @wؑ#i1AI]x~('Ȗ+6a'.m))bgB`240000 network uvY=B2̙)m*_4IHDKI0x>}ˤ_8ﹳsj8S PH*KIMKLO-bPtQņ;>8QX_XTTٴNsJH>&csب5<c7'{왏u]'qHhwL^'1NZ?_3ivsssTbtq>~-lkԡ
22n<erdu5˨`	_NLVa2HlPpW/WU3)tKF ZRKXm\W%1aK
F'`*J<=^hq--uFҲL'0; (^x( _runtime 1>.aSh0`ZݴVlx sʘ(铒ROQ}x Yjq%/.q(_xeG.x>})w^]tnvLQhdOf 4HZx ~/üܧ	%\^5-x>}C'{왏u]'qHhwl^ P-x>}?H+78s\[s nZx: Ɲ=cմBv#m*_4IH("x>}+[^JNjnb^bzj{nB-6|aq PHN,Ȍ/H,*ڱʮQ)[C^'n7cSOڏ_:k|Ϥ&A'%0Ķ9Ya7|2[֨C%dd&3_ yɄjQ.c|4wȔDrwgiϴLMLmz;_ZtldOf  !_1x>}?mAn[R[!afe<& .x! ^;&''#n]Fx>})ȍ>[T-^fscdOf vNsx>}+[fNnI~~N1C+78s\[s&@TZpVӯ/_$pc}d7cSUc|فYE_?<{Z	g9I9nG,5+UPXp+Bos{;y
S6rr/٘/Ϝ+2io2S:^o[nr<dOf -[\x>})ȏ,nNř13TԦʙ== ~	x>})W,=Ƚ?ydOf 6x>})
:u6hf(_3$ɞ cx>})O烴We>Ь"-{' U[x>})W%U܊̝Q2W]&{2{  u
=x>})Ȝ>>x65֮7bdOf jx>})oYK?r;|ydOf K>x  5᫮1&IH; Fx>})?MB.vtt' sx>})>C}3vEMU#a 
 x>})Hs:S2aWɞ ݮMx>})H:k5t`83ٓ 
zx>})*_ۈP:娨=ٓ 
h'x  5udu(>+ԢIH.!Vx>})H)QdL+W,5s' ɭ(x  5S9 ]rIH82x>})>\z;5L{Ώ== _x  5ѽƛ>~IHJx>})Hu2yOjV͚%== ;x  5QdAݭ3IHjx>})ȾˋN'Ku&'-ak' Ѥx  5ݯ_ZFﱎ蚕,IHXFx>})HM%"=el:\X"3ٓ ƌsx>})ђ/mpRK9u٥bǈ== /" x>})Ȏk>|d"BDᴳ՛ɞ qMx>})9B;;$ydOf zx  5Ox6IH)x  5Y;H&ֿkɵFIHؖXx>})HӧÞ?MS_j~:ٓ Ϯx  5z65g͍hIHf\Ax>}K~N_ޜLiKƿS ymx>}?HlR/j:W-q°Y1	 	[x>}?xפ\7owZTmVfc <
Ix>}?Ecb%ؿjٙXlVfc 
Fwx>}?cNWyތhCr |%x>}?țW)ק];,MВ/lʌyL Sx>}?;SRwyYfoVfc 
x>}?d>2wV{Ǚ /x>}?7d5TpyڿʌyL ]x>}?z5P	1Zʡ3W5ݬ̘ x! άViL#nMDx>} ȅEbT
JJ,qp
S.# mhx>}?#	iAvt]nl;SX 0*.x! hɔ_ܐ/#nKx>}K]m_PƿS 0x! Ye&ijbĻѢm$HEx>} qB_Kw>9+jf\F w.x>}?7d5TpyڿʌyL [x>};Fض9?]a?+O{LL !fx: 7SC`Aھ0Z@/l#$]ј?VLiN'vxV N+Ⱥ/:>/s44&9ZS5ȓ$W\3Skaqw>^ݚ)5PA|&dx! )tԴŞP1v8#L \x EFndlemanager `rHF2U86840000 capi_parser yZd5CTRCKA"`v<ƭh-N+Ⱥ/:>/s44&9ZS5ȓ$W\3Skaqw>^ݚ)5PA&?Pk%xm fG ;xm?<+$&j߯ͽs2#7 fG );x{mCOKVWh3QhݾyyF 9Ovx! Y^迮=7GYڳmx{6}K5J|hHRk[LT`u&@T[S̐o.˝߽EdeL9v-0fZ}'6}F?׻//zZޖ!%dd&3z;CjNd*u6wou"ɹL^k4T<1|33D9? f3r\]&kxHXjn;Y 6OhU	x{mKGnYpDrƾT 	5x{6}?Ecb%ؿjٙXLVf<m&v;/A[뼒&@^Xp+Bos{;y
{3~>5݋Wpf늸ũyERlLxoɉ,ՙ= HG9.Vx{m y8Ͽ=4Ϲ*Lތ x{mC5H"Sߝir? T1x9 s44&9ZS5ȓ$W\3Skaqw>^ݚ)5jDx M:"sgW&n40000 build-tools }<n1Ab#iklI(Һ1{x+Xq=[^迮=7GYړm6?(yp1\Ewß40000 sensors Av㜹;Eʀ=IHjM2x>}0{ʂ'ofư(g?<_du, ˠ2x>}0HK?߳&j,٪8Y9 r_x>}0չp\~c\Y ٣FHx! Uӣ
V0c*,.mx{m?H͟G8eNifiv=feF& -nx! N+Ⱥ/:> x{m+dmFuĂĢ"wI2ȷQZؗo6foF& mx{m?ys}HDIt|~feF& F`jx! N+Ⱥ/:> /x{mC$Ȳw,?![S,1KK~\&&F \x! Y[#FiCJmx{mC$Hi?w|͹LL X9x{mC$HeqxKۻܻ[ys.# gx! Yp&ℝO⡳mx! YM0!=i-mGx{m {nB-6|aͪ^L 3
ux{vm$=u۟U0&ť^ JRrRsS
&9$uE'vRQX_XTT%"yYfMٛQCV}~I+#݊er.LKDf	=5ޛ?mo }A x{vmˤ_0	!Xa&@TZP0!+=O
ĂĢb*K훾~%ǧv$>ٛQ?9?74/39$3?AzrEyn:m	1,%(3$5%%$17k׫	K2ou oLLjrgޮS222SS*T.-xyS?jOր-)MMLd5csT)aļE̗(NδDYfE3%mbC^
 b4-x{mC$ϧ۟]tȁasCx{m9ȎWvJ1ub= wU FXqx{m9ȳg~8͵_p+!a.ތ*L ]b.x! ꚞ.Ēֻә8A$K*/x{m9ȎWvJ1ub= wU FX\x! 7,ėKd³K$!Px! 7eFzpYK$/B_x! ƦՂ(@FQ;Lͳ$K6\_x{mC$ȇ)%:"hWF\&&F y-x! 3kQjrÓKNC
\x{m9QT	.3[VvgwU ;	x! !z휓ZY"WC$K0x{mC56rr/٘/Ϝ+2 X\x{m }O[usy.٣m
7# C>	x% 73N.O"oĳKD6e4x;vm9xmVCLU? H_Nx;vm \#OY_)t
2# |x;vm ,m_ץ(5L)J:,f&eF &*x! ꚞ.Ēֻә8A$# f(Zx! ^`rp2$#$t
x;vm WyGԬ6S!^`yf&eF 8x;vm ƚ?-I4V|maYI lfx~ P3/@Y:-qQʹgK!z휓ZY"WC$5VQʤ}~/{p"m!Lcp<]U:"sx;vm uQ[~RK-`ܬ¤ ǽ	!x;vmˤ_8ﹳsj8S PH*KIMKLO-bPtQņ;>8QX_XTT5*\Xbɦ{w|_tz7QK39j^2˝ynVag+w⩟MVg3: ]CIx;vm ڝk<-uUwx;vm fey\-O*Lʌ %x;vm 7f֕s}n_]dbaf&eF Sx;vm HS]|b{f>Jpsi
2# AYx;vm \]م_YI 
/x;vm ?ӻf7]m\1Sz
2# D]x;vm 	vjsU,c\׼YI pL%x;vmC$HbzI鯜_279 KRx;vmC$آ2IoD/U^?9 ;x;vmC$ȁkk9&,Q\ɹL Zx;vmC$?qybe>,29 Yx  Y3ѾX8j1Ŏ1mrKx;vm9@/c/^/ϳ|[ތyxN 7n{0@n5y' %ѳKD(100644 package.json ]s\D!%]1 Vx;vm9ȩo9feĴl7F d.x;vm9ȇXYڵMsV~Qfo? [x;vm1H:Ww珼{-m#(x;vm;FqY^^T Ux! 7Or { 	K/x;vmK=u۟U0&ť^a_/& :+x;vm1\)uOl:yE 5Sx;vm9fA5W_NGH{fo? 1-x;vm Z=Lڿ|Íq~ͪJL KZx;vm H|@$亮Z?]*62*1 ѨD-x;mtj^q~Q1o2S:^o[nr<L `x! 7ѕoOwض_W&`GKx! 7Or { 	K?x! 7-qQʹgK0x;vm1'>ZgJĆ 4K(x P3/@YJ-x;vmC'?֞߯Wd-2yhխ}^ϼ5L@!4$375%3!`R2_$QZR_Ͱ8Fy[_O*>q]	L; s7k7x;ζmC1L zMx$ 40=xԼȽ>φ0mF8~H+ x$ 4%wMpAO|GK(H+5x;vmC5H"Sߝir? ڪ3x;vmC5ѻ}es!ު{L; x`x  {s0pW*'x  {suk
u(>x  {ʘ9׎F[jV
mx;vmC5Sk>*i~ nkx;ζmC1L zx[ʶm	ۊ+{fwiŞLwߛJBx[ʶm w.ON&7Tx[ʶm	HZ½|2U4u<d] lTx[u ˌ Xgjx[u ȗo.sM0zBތ sCxuC'{왏u]'qHhwlble xpZx sy9tL]ܸ!)&~Z_GH/jiB{s7)cגz)@?[1۲,
[G9738(	tz,ZKщ40000 security k{+%!zHyMH@+xuC'?֞߯Wd-겹 $HxuC
m7c'rsoLa*VF .xuK^%;Tԗ
IjX/ Yxu1#qR[v[V]qPdw xt sKcOW5sU0<u"TOXrU"G97{{︫7.)40000 security C^,ZNʌ\ǓH3:Zxu H|@$亮Z?]*62b ix[ʶm H:Ww珼{-m/=x[ʶmK=u۟U0&ť^a_& " x[ʶmC'?֞߯Wd-yc+# Cx;vm gv$ډ5|P޲YI {x>})H*Ǐ1]vqs
dOf 3GYx>}C5Hͫ{*Ok\hs~&&F x>}C5kvp˴lƥr,*vs?# U5x>}C5ylc1/tcsO)LX ocx>}C5[vwmӨ_|h~&&F BSx>}C5ȳt.=hwѐ̲LL 9]?x! {KH7tObjw.x>}\&E$];KtL -x>}C5\:|LՎRZx>}C5HlX߂G돵|(c|BZs?# x>}C5':
gdV* 
R5x>}C5'/޵iˮN2>}~&&F cx>}C5Hmǿ7l6Ei x>}0HP<)6Lˣ|[ՙ ǮA-x>}0%̺^6b4qeՙ eXxx>}C$ș,4<fʥ!+Qts.
# h&x>}C$Yͫw$*h=$~顖}sTYyTx>}C$(#goo^~2n͹L* Dx>}C$#-N|NQN:Xֽ9I S80x>}C${kحGmybsT^x>}C$9§ޯ> ɷds.
# 8x>}C$H}zauûDߗڜˤ vIx>}C$R`{m
|leRa uBx>}C$H3ƃ"6o~a͹L* v\x>}C$H\7>V{7n=u5ٛsT)vox! YX*Աyq9Αq$ק׳m$!	x>}C$>^g#ӳܲ`͹L* Cqx>}C$>Z-/T\&F 'qx>}C$HŬfl"xr]؜ˤ 	Wx EԽi.kyfݴ.x>}IS	rϺ	1\mAƻ[ ʉ+x>}Ie|\np`/nxǱ|-L : Wx>}C5ӓnW1o4qm#B5x>}C5m)?wZmQK.|Cws?# 9x>}C$H?,V]~3sJ)A͹L* Efx  Y*A1괙&zēmNux  YƓ+"L~0mli\xxqBĵ .Ox;xQD)E/=!~އ%En.NQ;Qe. ; 8x;xQD)E/=OgmTՉ*sUR8x tDA;ΐON9Tdx6 ;ȯSScEO%9_o-sa2i
9	x/!!!!L؜!!([PPT	Rc5b# Y5eN5Ix -!ט*RHAexx[ƸqBgs3lw[cVdډm
 v5%x[ƸqĽw8v%NDT n'Rx[Ƹqܒ;֤z\V~EiBSccx[Ƹq	sh	sg5:?vdDT ]cx[Ƹq'v,\zk~c* x[ƸqB";J~y㳱ǋ3SA]x -&{u#o-WAejhxD $100644 check.py H$![O EG^0N$h2-:)!9}vMDh=x{qHNaI"wX>iB 5
x, $100644 check.py :n ґe$t#3;x, $100644 check.py vƞoಓUgj$Ɇ<uxD $100644 check.py  6V* ЀLj($=7馎9T.'ux|Rx{QD!9#59[aj/ڛ֗?9gD vyx6 7ǜ3P<WAںKeT2Y!hs~}89e@x= RxʸqBwͮs-~1m[vW' 8xʸqBȗxʺ-^_4ok- `\+x6 7愰ɝ1\bKv[4pd筨9NqǑ}8rDx 7,ٱAy:SKjr?,x3 7
Jf#Է}yʘ൑KV54v-qGOIXmxʸqBȝ椠;ogܒ}2[Z ˏN+xkdld+}Bu[dLJ{ڟ Ux4 J| :
8xrkGcD(% 56I!jNxo $100644 BUILD.gn dHd>FwO$E$register_font.h \l smw	AYjn&8C&xyFl*DhxdL;
 7x[xqBjrbnjQb|Z./fxĔo"3ew; tx[ĸqB]"KV*^=uMi$rm K!x[ĸqB#OCxzM^IܽS˵Nx[ĸqBHhܙ䫟zb)ΐa11X {x[ĸqB~!r_M2]2_Q unx d+GmVPݔxU`x;xqBȵ)3yz9e^FxbE( QFx;xqBL}fلXno2" {V+x;xqBҢ+˷E7utaۈ+B^(Ux;xqB܌i͵呋q?mbE( x[ĸqBJLDSW0|V}b6 B+x[ĸqB垢umk?bR> Ux[xqBjnjJfb|Z~i^JbIf~CB^6$EImL?*2͉ ۨ4x[xqBRJQn|ZQbnjy~Q6C N%^~ڢT^+07 BIx[xqBRJQn|ZQbnjy~Q61rUeb/ݭ١>7 wv4x[xqBRJQn|ZQbnjy~Q6Tm{53{Rpo( ;x[xqBRJQn|ZQbnjy~Q6C^R{uXށ MWtx, S"drm_framework L_?숖0`ʑMU:/x[xqBRJQn|ZQbnjy~Q6ÉKLqMmrxDP (*=x 9,בfs MUNx;xqBȬЀ-ju{l*ςmbi( x[ĸqBג-?tWM?s[rm x[ĸqB4Y%s,&]urm ;}x;xQD)E/=!7qGZT-VMY뛨2 )}:;x V&-avZ:Ǒ,+x~= KS2SRSR\eؠ(}N|.5'lG+ȆF;N,QN8i'tm,%5W|W⚣v[Ŏ<Tz5#_~"LD])"^=qVpoLEq~iQr*9%iz_8Ԁ\X]jCWlsߥz}IAEef.ҳM߂VMf< TB&6N\rS>8[to;ke)/'_c{˧??}}M#du~vfǹ[>:9R3 x~= KS2SRSR\eؠ(}N|.5'lG+ȆF;N,ߕV#^Wd__[ZyWfʯrO='o SQ_Z_Fn~NI>aW% ˓SVm^tJ܃b.\/b"UU0Yn"=/-`kh&r57|*ׄ?_C3>yjwx~}Bo7%O{wcW 3 ڃ>x;Q&9?%5Y/aKG.&EzO^(-*)*ykuR;3}رW`0Pȇ!ټT<+PBlFvC
<>OZɑ{jBTS@e)1L_~ߴlHk+]쏿FWyp}k>,
4~/" oUC3Ē̲Ĳ
IX%i[{s&1 jt?xff߰I$<z~F\LGkl: ½9xff("X:iq?L>ꩨtu 歌%l2x> BOk)JlEud<r@*@=VwZ*},H%~xa g>Q-[}lLe@d;d#videoencoder.h P?+pD;'nFud<r@*@=VwZ*}b';xffId"Drz]<^:m}ond>Z wxff(XS-}NVg:3YIlVJ}Z}V爻
k@#cNxffߠ$rO4vI+9rOMz|dA&Lƌ *xffߠ$bѡ鬗ΪMdd w0xffߠ$2ÛO-+Jo>dA&Lƌ "txff(b6[}e77nl 歌xffߠ$oziaÕ^t^dA&Lƌ xffߠ$>ܮWY'{>[TɂLb#0ɾ*x
0{OM;;/"#nQ-izہ\\
Jo,תl&MW8	iЄ&w%友02Yڻy$ОXRg$\mS|JF%!qH&N/1r-9 Ԅo&T4Lټ?xR jT%+%x0ҊԢxĒT%Z<SKKK2tLI	)JL&d`IbQ	5E%9W_@@KjqIQ~%PW, y8P|lxti̒܂TҴԢ>xR jT%+%xǰҢxĒ̒ O%ZRZ\R_IH{j	_XBljX. pDce+xX4 (x6 Rf!TW?@k}2VhGFWX3Gx! zGVV6\!:Б@vx o%&Jq^Jx3 }ug$b鄳&<ǯQlUIڿYOkxϸqj5ZxN
,	unp gix3 }-%v}"mʧ<
7=riAx By@엦7cRU|jxϸqjYO5Z,Yǣ| *Pxϸqjdxߚe!m5QvN 
'xϸqji>$WinLIv auxϸqjgŏ6){]( F'xϸqj_zTJvz#_ C'xϸqjMg{\<dyx[ǴiHkEjK]2&[4OL: &x[ǴiHQO 5-nCs+߄N  Zx[ǴiBH..p.`rBG.Y才k*x6 *d" _^((	ly?co>N-DTgޔDcL~Dx mJc;ٽ@A`{#ˑ܀W,x m7>р	Hs	eVXx[ǴiȁIݙUz:W%"Ig [x[ǴiB`_Qºcl8no|TƵ YVx[Ș?!Zd+'Z
t|27	 ]x[ȸqB_=e|Wu F Hilx8qB Sn[x[ĸqȹӻ=h>*}>څZ e-x[ĸqBjc4LEsg9\  x;xqBȡ=l1~(`"$Y{jqe ύMx;xqz۵l9,&߭F[	 *x;xqzV8wg'U. J=xə!Y$Q3.]q	  Mx)OuI&ؿ# V
	xG @}`')/8F100644 ohaudio.ndk.json aWYl7FaxG @zV+100644 ohaudio.ndk.json aWYl7"M0x;xqBH#qTr6=f&at jx{qHyR˄o<@oB #
x+*'rvwi¦hD>> 
x[ǸqHɝ\>LN]2Уc Cx[ǸqBWY5>-,/ P}b 1x3 2-Ò%gjAD6 F@?,w
Pqg[tux8qBRLo	{_G< oWx6 }<Dİq\yw1@U}%"Ŵ;*o8~JxxqBY_'S	e\qt"LDC&6p8yo{?wI;M>U o"xxqBȂp3o6W0$Yԛr+dM4^ ZBxxqB0͜:mN<<^t7/Ta* *:.x{iOܧ"Ďmre 
iTx[ĸqBCjwZU x iojp3AݘuՑ}%0x[ĸqBȚF${}O(cy𧉵 R	x iQȰxt򬕜%:[6}%7x[ĸqB֚)̞%HkUtxKN/gqsוL9y_e1 !xKN/2Ufʆˉ6om8'm+ 8PxKN/R#.\?GR͕ uxKN/HgD>_C<n3 K-rxKN/mz|yCwf .:xkglgP,pnA|e%M	~ esdxkglgP,by,JZxo N*xkglgP,³bc@O١;L9F 
Itxff#RCYo+e켳'Do ^v!xff#eŷ6慄.?
6 aZxff#Hy19zdEa  *xff#GB-58U=_\{t7 2*xff#R4].Dg9=W'e7 Fx[ƴiI^Q/_wwngp| :x m2sDeOҶAx #.߼z3ilE=~Tx}sȲ+Tٺ&[9ǹ{6o1 c=E	nd+	{fiF _^v?0~4t7j87ge'֝=
exE>qklܱeԦþ)-?=8*WWKܛpИav,zYа]cNtvx0(7&y$/LoAɣ4	۷e.{[>m5v ^r+ߙsÜF搠oBvKFM{ӷ BBgEB /k={i| wƗZ[kNovSflpc=L}i7-:=˒Px`j="32;w	Eo f5 cڡG)`/^9Os<kߛM9ho<sI1C߶&ƥc+@WMcDlh;36	8PF@^"쟍n3yȷ[ C6KFH2<BI?4C6)F`tVE`9d,`L #njQ 2"MlF<6gȎC!x(Ei98/#ߧ3Q=!3:1j`jƠ9i_(ZȋșT_2_囗o\ԙJ;'//j_xz}uaT+Ju>XeTlPR~C>DI`'-wvKSC12~g}gZG̷6/jgѸY`&nT;gg-x;!KIL^Vfy yƯt=A&fTvZ-cf/?dD5OƅqPKn[*x}2uHU"Q,4oZDjdrehLJۗGc2se%HX{v;$co9EфR9~tf֏1	4Z>1bhB"/oa#F4<#:~3kJyGz#fGLi8 [pw&CY֊<*|/(76Yvt!22ظF	Y50ZPfAk vac#krxeU];:&>!>ݴ?ԵT{<?1DJgy4>F|
WbLma;qR˫~uf[ͫԂW2_L +eֿMcIo8*7y~~K:)C <韗3b)^.3|8ѳ$k;L<Dİ	JIn] 5{d58M<o4*`&k$PJ/i%C[	~Q&s`}Ȉl(e`[ӿ2eԃmIvSl]*hw;Mʟc*sꊦٲ^}2wZnqy*^GOYs"eYbB*q*gf0VYBwIǜueVZA-)lMHZ,	8`IB	c	L	cAq٨>[7EKs2euV<CA~Ț|iId|;%d_/7eFLB4e(WY31
W9`ĭ1	Bcf]) 6/
@&!śXM'oLGi*&ԭһ,PA挃kǆBHJP4,~#%N
-uC/[,U{'҆V~)d!ӥuѫm|8*JK[5Z۪V]jCA!RYQQI}Ɩ"38yDBtͨGZr֣ɡ]-D';ux}Q;:K2~m8OyPX.TFOKVɤk7f3(tfX&0-M*esb:4${dY r#0JcIE	N5֏FϬcCh"ZQ Y`x `OSp\]jB.dsm8jԿ3]O:J>Ւ*iԚWA.xITnl)yҘw`N}KbTb
!|"alEtd =E{lec _Ujn఼*
Ԗ[`B;d|6*eCk4`+7~zx;YGz\cyl&qR!//4fo%lђV߭{Z?Ǚ՛v'0=}f
5MOBLbˣm0gM&fX4[03&ٰ,n'`1#E	=!Ft]m.'}kl]e2BSqpv].T_ٵ'N~5[ Xn,yJQ8h׎{T 7*&`d#`l~z?Wc{=,;Koؓ2W͋v\<fS.L㺆!d|í+&oHlTI-RB&~*"DvYc-^;7>AELG8p
S*Y.j_O53P{xJu
KU.d4W_ukPԡ]HR]{7pKSFgu@{7mӿf9wӺ|)OD91BpBR!4OG68rY.wEyu*)/Bb!pYOnxIzYKZ`욫,-,>s 6aRBo^(Y.P3= ^p+,WP`,70^}|-DՉj5.	,+'M-D6<o sȬ]:7
w{:ͣ`&88h1״^)ԁa$QԄ0
ǧlT?G7omΝ:ûcOb͞ZX&w˼9	q$RI<cƫpB2otɿ0 ߾$]?etoq?fc*+fAbYB4DŷF_0!>e,iϓ	]	Oo>~R?BNXJ
u]5ΕWPm.'GF!TSeqro~@]ST3.RґpOk5wl7jYvllpN28V͖Nij}@0-I/&0=S*`)Ql-12pPJ[ͳaNjtw#-`IOG{o##3_#_dWkc5jYDG,w4?ܛA[	O]gJhZtˠe̟=9aň:zL&Pk8P>׍b7݄5"	M[˷X_.0 h{gw([
䔧 /'aRtO]Ml*J
K\V^D 7iU*%W#,cAtŇ
[Y8`0RԢ5Z4<!QG/a.U\ )e8eHd.R| eüLNeyeB qtN/m](X֥](^૴%/aIFe'j		LAVOOuk4455Fm1p'ŷŌu9Xw1Uc{5Q&HJݳ4P~DFꅮ~k祫d,!>Tu!S)EQY
),Pl4
[U4.5.3S \+JMAjHIm*cke**UKF*EqZgݥs	섥m1VLKa/"vrO	g|J^$Q2a-fRSg|
&Vcp'{#zyݛEd}ćZd#u=$4[^D_!Ǝ3I0=_An_DĬJ4ZOq3qz6td>hO_bP7ݱfQ/ʢpQs`]ld
\}	p)_bv0u9{<l3p;g{槳oVc>sIX*J~(moJOHZqv,0etk,t
.}5>`
v۽'+wz'}Ol#٥Uͯs420v"<Pbb_=Q땢"۪vxfBP{OBz_ռ,4;k.3xj,f1q"cpcNF=&^{/.+~fy;ad~U֘bV6#p*{C$fȱ^aA{|/-G?ߤޞMDEO4莃c%gy$LlJI=5k2l:Uom
jI@>
TndD0yn׌(yW07@'p_r\@\՟Vtka֗/Wuk-j>Xӽ(P7gQ,gnXzapL{b=dȌ:ԉnKv'.cdieM2"9DmD	'Cq^,2+Zaؘ|n;[kӝ&Fc:	}:a_ <Ȥ}!ZX|jWMǢq։G>^},Dש]O:} {tk.,QpcWDjLٛzہ&R<:u@I92wJm'ak$y%yu. _{QDG^>kaklK}-QZd;䭋س.'#ά5:sR Ao+>?D& &I)f&\eǶoE`DִG!>
/}4*:W>;BX	.]D] }Iƥ571[0J卐4+&}e>D,fز*z<.c%+qeZn}2h^Έ[*	EIR8IehO_٧2J[&+dÃ0i="n;qõ66c
N<># U	e:bUzs1ɒшVH5~1kH!_EL$LcNg1M
-MRb Jg*5O~rF~UߎM;AxӐ,`OF
`Tq_W5*+,Fo#=cs
r>S_ΗB[׾e	I</(^	.6*Qh!@>,(
קX4s
˳%Dp]h[ګDyŋϛz:1V"bE@8 [-|=o"ӛD!_T5y/W9	[ KA` Y@`*Z5qi(+}* ԣneGFwg=&eMtߌ5Ƀ=oU%"wQ-P!jiٶZǼ%J<ľizֲT*梙hPGlʪJA*SI({]=Ry"LJ:iq!Jxk|N2IH;nawpU'E}|@yȑ=YqT	1̿[zߪKvaXʷ$MAu
W,dོQ%yz^4C,4w,,b`hyOay MkȢb.AQ56d8n0]wa[	@ls']`or0Tڨ8-FԞ<N9[$  %A@ S-N0;X\ؼ *S1jKߖ_lǱkc/vǿ5RL^2gI,NUq\ֶ;=>p$nZ:w
y#-Αt+wwN.Lk˼nd؋ۊ^dӯq"S0)1҈k\ߡSw[PhUpnk1{3_<<~wk.w ,g/? m=,ԁyBq:p9eF=.чU/	kxDI	HɪP
k;tihosz^QQɍ@'҇&יB3 IHGAʵĨK5Zf]elnٌU)U
J3X~hX;U]%=7mߑS`3QkS!.؈2xwhdTRnVU+閐0.JYɕv0K1R^=ԯzOE^@&`qkNզ]*׽UgmmPX	VF[d#֏HnQM-l*Vʖ"(.]ڲEgJs
Gws02o/bcV@,!7ДK=PԹ"
	?!2$#sY
Lg9:h9"+o,lƟzBk$V_{NvN?)+$kȀtgiU3VGX"w9+`%yqE.UV VwS1}BÇǉ]m~k
Rsk<[Bk(zvꋁ!V}hׯu ƫhJ_5M6k̵iSiͭإIv<ˤ
mH
x#8x	dD΅:uZ]dVUKruC]rc)
r'UoU%MQ{dׇ;	]P@T\Uq|8%Za?}d1-ZU.U5vx%H db1}{ӧhhN`m=YAz{ӨJJ/:nS9((U+|aBTȟG<ޕ;:z_Yv$cM0H`kĩ7s-K4OYR Mg5EBx
v@_CkA2ÅVu=gi݊n`!t^?lkeb >.Ƣa^@f1UUz {RZA蔒]UCGC_y4{!jxx[>`d58zUc͒8R 3L`n3GRaFh!;JQ#jaK|3r9c˃/-2 ~6BIl"+=5ÛQ1Z?U?JprǁaK=!y<S	"\{IQk`ʶs2qQV Tiz
.~Hx.NO0.q7ëOX8͜palן2z[ӟZ&i7verX'\gBDtrc
#Ts;[Aɺ1lbAm{dz`R؆U%h%oXu߄nl:ک>})뻄	UvԁfQǪ~gPLaLh'C!Vrf0F^cKGxX81Nf<&MxtOe6n{#fi|Xnw厍[-(q~o/l]ki<glfW&R;ab
LRֶovW%[xaՒ N֚~?/c	
kFq\u@uOW>BzuPL֞:uYΐ !,R|֨)B5hthd.;	W[F˳gjb
+	43#]nsEvx2	Bì{ȴe$QC/ȯJYڟ]F7i"MZNUpUghAT!j؍z{.$Z$>0}f4
**Z'azkYXS|eV#8pVTu^C08#FO7`U|H54jcdtBæqCHp>gEBRwd+pU\SVTY&oegy@I{/˾KǂTQY(@tr$KI쨴(yud!zv&G	dOEn}BtѪyUHBVXX{Q~FbHѠ1ئ6cv/@@,g<Z8P`ǔUtP"|!CVhwdP<19[0G;8=5
̹M\\uaSFteXl͑lx
K?N	#:Ԅz=|6~Oe+ܽ7`!Czֳc1qPkxc#	hLDY[VW,)r^n"maҥdc]]
Q,%op}{_f2Ƿ{j~񵏡BPสwJ"HE\^]D@O<E_Y3băK3ExH4ge'aX#rhqm~6PDZhuJ_|@TR0EK_N"KnsNܧD%x<v}ÌZQlcR=XDYɅIUN.nG+H3!
>HnReWl&E+=i=ﺍ"ėwn?u<V:|tn9EKyv'kpOu=e{ M`@jLml] $Wx:@얇Ϯ<]Jcx=_]d
k5ۍyN_*'@^;Xkt;\tTt ck4`!6O6"Ur๓|'4n/][IJ^'c]A3u-Ѕ+O6^'hJ✩`C;-[k5g5IIîU>+JDZrǻUd{v7v;`]<C*he>kƠnmϠ"E^8Ҳ3.}#IEG@k7B$l[%<\K)k[otZ>+z&O@Y/{JEFkI-EK\K W8>u ڟ\eUDRr^§`TO	M-B;eԟA)H!u	u> ȰIq
xswڙ}+ȴBc~ǱT$~ڮ	>\S q-/9QhqבNE(dL ^DQd59b`rClLzK8rrHLH쎭z8 :wxylG4В29ӆd;±MɺCIIqGG,v$MeZ}Z#Wt-	#ҍ6l+:e-V,rn;<EU`mhfA5KCGtJ6%s#I$#	pL;؁&Lw.:pۋ({'9N^]ɦ Yq/̮/Dc ::R,z&n9פv# 㽺Zk`UKtF?1Mb޵%UY@@{J&P~=Cg泶kYlto33Ow^;!Juʪ3a(Lr*(v֥a":e^f0H vb'74ъ4i61qkm_Rʥ}my(/-dͲBeK{a/]!~T!	̟_Rs:ʚKHx*8M
'X#<*l>ys嶣V:흕hWܑ;we5p"0EjOI.|WTӮ47E/_REV4zj]9aoL%ԺK=dޔկ	U gЃY#9;Io M>̵C9%EgT*˂V0j#Kuՠ<]rfM`>XbnaŖ'<XY|	,՟=GCRw[U@&`YCslNCzRYTiIsqg{Q~BvRDV-έ6Qƺ`+d)pXCΒ4ݱTۗkVvI[Kf`
Ƚ병h}fP*]\/(%>)R0hn5:Tv7VڃA;a`0s<cz:QY6i]]tGe<i)E1uiw2	frW .Q64FY؎L}2ӷ:m<E-i+vki۠шS9ނȟk$I v6dW݄[ܷd7Xmb>IϴATN<'(yp+)45.EV5m	̑IojLS'F5^,ٯӪap+JcVp+XIS;%QֱY2	f˷V__cJg#Irwͽt
p(IY{	U۸l@EiCJi)}b/Ł.bCc71O\Ȫ.f(-ÏwXlgE)Rة#1ʊ?a>
rXwegfwS_t456"T=O&H&yY[,[8-F02eiGsO6k%s]@``OX{K]^Cv@q1gVnw,%ck!M	)J䯮=:_k,CsƸZOfU_!eA=,_xXvJ(:9T<[G[oT=ku1Pw}Y5d1HiUiE'a7Is?܅QruZAj;*z׎ճkDTvʑ8V)
Vwo-]#g?[gSp]&_,9v:{	AitL-U$?=Z"~&Swh8QKU`1CS}_(;Vh Uct1$'9dP]oa{Z7^C[Y+^
*}U`)Ɋ%-mgq99aϔ!*{Y{'g/Kڳ1n|u'empl`ͮU	H-dj8(&f71V|IBq*^K/ﶏX*:Ozy?߄B",Mr!7بm"eZ!k1BXlwغ^WG?
.mM.׶")B2clx/^'Q=؁Rدsk֥;tdsTG-e45	?WS"M18XNvX'
&#Y"X oeJ1Yc8=tDd^TbGԳSP4pt wcqi;,g"T錄+MasC6Dɣɠ	VA&|r>86Fsb̡G~rMnRf?}E_Ttf[n?pmD'2HP*K@o̥+1-Z>h.-:6!1oz3x7">ttj"?͛xh,][Eh>bWm#Ιv EjZb5֣Uٷ*{dݲG6"})+u
$9<YLЄ[ӝA&'R晏ڦ<&LoM3!jGXgJ5R	S;\}sow[w6+/w]qHIpci3j)q!͈hٷ2N&KnxAGxd(	IY!(oΪw%; ]`	odҤ6H$%.O,=De;;{o(C8Ss6`dyA{Ln*
Ek?)"bQm]\fvZHj&d]|aisA, ل{e7o;N߹kKjW譫KQ^]۶6`LMoCR$4?L%2,N~PV_RWV³ic' eXkꝱQK6~k]bglͭ{ߎ|Muf1U7ItƏp$60 Ygl"*]jXA4^;ZemNBRܩF`_:tڭo;sUQeyrQTAOrG?*3Gw[#{ej5k
Rz,,x}1u(+Qi;ͱn<68q˲w#-^5NH~|L}QK:Qo8b4ǂ`v=(6~ۼ[JItfmk}cY]ve+ԨEn^R+¡-wEOjz{IӮlgiSJ6-.xa5tI;2JS=Z."qD,i$:g0@7C͉1jƥy~"y_b$RVNџxHǞESCii')At85nAw_Ne>P 1I{!(!iAI!`zHPҽuRҜq۳n~kAs&?V@V0E˃-q^ƎP,L]z><<vQ`|o65\vBnWB~3l7c`1햭huM"#/<]}uYlqBN^.؉9T^k^:bX9"LC=ӛA9Bw	u	ׁr~	iۡ3OG:x\^ݨ|YW")\X/T[_g%Gst{=5#}Wzp@b'ַs=:yۮ*<u>B+xv\~i^6VsY`2.qGf"f6tn^\no@drFfONvod]9j%u/\BzAq0kyQ<:F@9­ty:b[75P6]ξX4af)s-eH`l ki.[O'eыwfS@zIK-ךލwߌd ,#rA0ifz{.A'StYiIXwwv)|T.ڊHּCc njv:ء;?Z9Tˊ >tn"[YS$G1I}l#54CEth/h+./T-~NÏAHs[4ռ+;?aO&UU;&pb8*ZDG5
D-^bH8dQBZdG_rWkPfQyàI)}y_S#v-%Rb]SI
 =*ɋ哰=tYY`+ŗ"[r[ZmȮz[iJdefRǁ
~Еń]{#K$ßWxA}@%Ұ,36LḰrSLz6	&akX\-蚺!"ֽYήDRq!3`g4<AيKPS6(@"D3Y`bsH[	n?\"F4ǧE۵U:;y{:}~2w댍>ӑўJXh
*,|Z;v@yRfSA.vڃFw`ď{f;!h`e]|/ȳ{;iU@$vG>Xom,{^(_FE J0o|fff$)5n+۹yv(7~m=+<|JGi֩[6r%+/Ad94L|Z#bNB$I
8<tI::yXRNFRX5p":/eӜw؀ķ譟lN<wT/ӿoQmwqx=T\+5}8ءM7&z?GD1czr$d.mAf)CeU`>mZ\\vڍvл7h^\|d2zZ:Ϧc=i~n{QXg# /^@)xJ1w{.S8%:ɖbn:}7;-Q@J &?#|m9eFtZ2Gu`"S(uCWZ!H{t y.$(hLw1EZ0wGjz.}4@B$MBRᜄS0$7˝t$3X31.{"b7v7ɓڥDNDe2ŲF7rZ9 0j=D
qĝb/Pܱ堓9|zۀjD#vYX5/H84bQC`ks'"qW!,Uf9Abzlz.wڃeE=mM̋^M9>_$Dŉ@( L3#mYDl#O)$i'˾	WG#r$,ґ7X oyv0Z[x[;1ǚB\6d&BL6?t$ϟ,ayups[?a\~o͉͠= \yOг3o;#]՗_5i"u$6s{Kң6jymj^7n4pdLaʾd9>Y%F\onCfS=ǧ֕<POFVVhcB"Ŏlro{qXj[oWpL8@#H|5j#,lyk2X0 y[;|wK8؟x\"އf8r2\^*͵5^6 ]%E ׼ú;t*NԻRpEp6>y9˄ô7mV8~ OZ2V8u [c5&XEeo,߂hrKxbNߘgaKcg̡닳sj46ȹq=H22[2+y_Ӌ/ȶI1^E	O.x8C+NvV+ A;MDLlt} >`-\{ό)3.'ZO-<i ApF3p>Nf<;?	usrXi':[us!SΖN$U$RHފ.ie9;kK&r"}yq!_jtRxUb٧S5fظ,k`nUKqY2ۖMg!x %Gn͇ƭ72VOcxT6J-J)ltfof͈#p(:XWݑOCl߻!3[o+uL9Â.\'tv yf˾26JP-5lZ+iѲHQ;r6jx	#뮙h䆂E. x0|DB5Uh Yg$h32=.SmF83F|g2=49:@:S0"o{(APNE|}B
f,(3aEcqlbٜMڲQS8
{(a-=zs9 ^W爔XWXtYPnvV&ksnz4N4zӀJv 5CMsM\zD5/?Q]quYCP;ڻm9HNT|PI4~0 !~-.)8̏(wXv#xyNMSB?&ynQ/YwS!oi+HhqC{ TXK}˻Ah|'L"1' 	Mbo'")\&OumA7̠D2}8=M*1<~qLԵF}gAowmJ G!ݜӌ&	|m%4(Ht~!bYFxD/A~"яe4!pE{1IޏaOH<~L+wJ.n4v~8œ+=ЊT7puj4])N`c^GaѲ	a8ܛrj:'薭"h.UЁkrV[*;SvP|"'bTz	UF&Ubv]N	ֈY.zX>#LܖhZvr?҅$3-55Paxb	tqҢbۍGgqLo֏ED<I&C| R2~~%3}eEԛY|%u/ȸza~iQ"γǄXv E.[g	6O5'.IS_ 3N>O?gQ9A}j1N[padMQ@+#*E1/QԳkzwVQGf2ȣ
!N@qFj ߺ.+*hN9iaBf, *eʐXxSLQ)IyV|=Bߗ5:p Erd"?JLb# ( vhRy^b$&RsMP^ݏ,ı(p85ziI,K0xt%T}v-!uc,T"Qx:55&zZZ9"oed1/rchRqj"12%P`uV
B\G'
}a4"Pl {8L#Q;FLse7جD9\| @ϱP'C3n;ƹwO^Kvv`%-pb|oqM	[+l!raHN@#˪thT$Y+fTDF,)v|HLC4bV@!&)˚`$^=<lxhzy0%4w>gţB>*rZYj(oh٦qxb#mR:d_s_X~YMnOv'_Bv3xJs  5$Adlq40C&k[%`:IQ5).5sbْ6s8ɧ?CU?0-H 5/0qa	VOa|YD_E1z)@Ŋ\8r+3N)ߚb a[Hp"Zы	'ɒ1blIW+%)q	_h[-&v ǘQ88ʑl&z[q]pL27#{"P{߼Ol"RͭtyWRXD {(=	e ,i/R1D(M&[l"K,}g" xNڲ1?1
MFx*!M{tՊQ^r~(hOTh0MY x3'/ؿ۷F>\?fl>x	|[W0}%v6'#;gm9Q؎4IԑXDINhΥhYQv&0J7aXӏ޷=rb{.ssCWPُZ:71B=rؤ(,jB,"и(b6ⵣ
l[vڙ(}&Ba!Z8Dm_?S8e+Gpz
}}p((cB{c0&
HK@wmBt4b0uk	?kApc3_!اk
LC=SA٥tNyRy|WfU\fC\ye'tx@d},~0~_ȴa{shkxvӦ7MiՀE!i>uΡZaZat 7/?;jw9xZw:33ݪGh:ycYMH:54蛝}'Su>:Jd0toxcЩZ?e!5v
o55Ԛ@UڢL-Jۤ7 ǽ@Cv-܃~^X ?Yi>ss?ڙ\EB p!e2yP]0Yk ?U}bVƆt<H+t:y!@@<n^~`qXӼ8ArR%]8(Sŵٟ(#~D3t޲IL{0kJ-bJX	Yٳhl& 
-46iQ1gK:wVbM7*Dē|Hh$wa-9yUhg}KN11¤.m8ƀMסZׄщ+ȊE;#75SS^x}">,=gp$~7PT|Yxy$no/ފ_Mŷ2`ʲ˯<~ G3,vK^s>=DpYe3|8­vllpy)o`Zl:cu/VzMʋj_16y}'q?[ڄӓ~$F;75[xծ<=)!:͊R8mZIF>
.[+oŖ!|om(%͖Ƴ(H	VCdèLE%!=0GvC;<o2fx
$wZ+"=!@۔7z}p9
9i!tna矘a^X{( P/'BaBc
~fr8*pI]qĄ%J1X(,HԓG9y:ccYr<R'vgW޲ɩR*P{'%6b\ M$j"|oG7	v.e}ady7c{2#גB3]*byè{[֑GM-~|#]LxIǌ'3VLJ|j},2)޻itTD/HԄ7C8STzߍ(^IIk=Nҧ@(Q(\Q>:WeLg)/[  3<ki_-`J-haOZ->֓S(M]mS>ɏB5~ܗ#t|wܴµ l1@k7atIϴgm92kcy:3:R-qwV	jn(gQsQy#U	mTN4>&tۤ՛<4%/|2R4keM5t>RLt*Gf@28޾Y-cJ:Q'[WضyTLvleFK7ni"[:IFBtot ;ZqoRKx;-dݷQ9si59e5)eps}ߞ"`.7m\|/jǇw}f1HA#,} `R`Wwn3,2g0Mnܷ{ཻƦ!JkE
݆OOgMldö*eH[L[b޾U|NFeci||@!5.	VQ'|Ul$ÎyP#L=gNLrhvw)uNd9{G~1X&?s݊!F)e(ܪ)F|'N!0D&-y!:6aVAn+Lw_ãG(ALأPD0t&ܺX>:H7"7"+)%]	m9u 2oqrVw{mp74c-QѥY&%`培RAQ~*v28g?.jNS_!zZxmXB8\6}:+*ooMsT742~Gښems;kN`V%):R2g([`铴3~m`@8#;yc;f O<%tWUj±Ji7:&>tM8+	Mj9䰻FNǐgryCԀ@̓aYZdơ""3#blƶ
\Ck:/b|qFbq1@}TN&oŗFr2Rmd+R]K	>j~_^{`59Owmժy|ܕ	+hm/$5,,s~"܏wzngru(V!C:omWm䋥6JG25[ l\yN6?(vBxXfixlR$̢10ێX_쮭ѕ&^UՕ"TGaʓyc]ofr/hGЛss=~i(6:aa3+VKlF[V>?NMG#[/u%0F&G-8Z(ť>+X?,$Lт%l?&;6/VJ<&Ś/M(w/葦pwdelc-gS .l]:ykO"	,o7-9t#*UE˨]N^㺀<7BȕT{K~qv|w~\u]+ifRwbBRq|eI2\`}QG
6/<jhd7YxSNCMt\;v;\nϑAǨ{xϱ@z#76s4
r̧f9-I?i06YפZMWiJA7)p/L{<~}c_(4}Ƅ=x-xF6јwri1=gүYMs>XW&~4-^w@y%a7]?:-bq|lVW9ztz🃎RMs4G_#E0ԈL0l>5}
_N+^X:c0捲8L|+oȓ5[g6$R|z7C,sBvlq!S@0Lh(~O=ORcE6\
p9.77sveLtXT )Ǥz;1c(+%'_G\}	q	ώAȨy!dRIS GQ9[G>Sۦ#{%CKܱ-PCELWbtqǺPR 0F?EGM{:O^wl,}fC,}ҀC&  ={uІi*:P[<;pgsEL^~'.ܷ{{۵vm]j0jO5\)gx	VA/p6kUyûgGkl	SQ908|!g[P[pj/_.fN; ;^;.1l`CoPeb&m(Ns\	$̅M^Zs3w|_(jPp{KW`װ'} i#G0ԕLcaR$MzOCOY.P:
Ydy2J51`?8IF58H2rsJ75-ER+dWQbE[#b	SBBdiՔh" z$Ѿ0#i먨6Qf緾?**&3];?qbBK]~wA&E/|V	=m4Պ})`"crj)?m^jP?g:{N^QzǨ<T޴ą&'Ӂo5n3M̘ +J͢,vuP*m<|{.3Ç$fxpţ:C>?u!{v]m49&LV|1WXG&;iVow|mEŤRYjSp׃VS5ф~Et;ZEܕjnYko;#7Ҡ5ಒUγmHnmW_eu|u3hAHhAY#XI ߁ʳ6ɱHDV,Gg}l%݆J\rE.ͦ~V)qHѷw}U%teNA;zdꃶZzN՘i(օLミӿWBiIAc8pnxZunjg$l3uH6X2O|reGAY*z	T	5l٬wJ1O5hΒ7\jUBDpdԹՠCmU׳.wpi
of. "ISF1amT{`?Kj,R@;FѹH~;r[0:r9hvs»:;lGYnP4o>pxgdE_\v9}x\-"x.#9kÑoe52ue,J>_AWßj_&3/piU7&I3B^R04)j|*>=o.R018m7\C[\Chr]NAujެx&	X#"X <9,F`Xhѥ	gW)1r:r_ǄeCD糸M+xor4#ZR0; 0M$GZޱb'q+՛)a.mi/4"Ʀ#I'o:r!y\y>OVf˫߃_=X>%ʄ!T{,O>Vc,AuxL
\kaEX̰"]dIKŊSuLS8o:r*.:3Hw(F|_+i`OIy"m%dM";O?Y+|eHOGsTe¡e8GѴviJȒЦxk䵣 2i7n%֏2Il ?t/"+4Iۙ[H@l	RF0gQS8_Mni\]RIY4G9ϋZjG!$"s)@xىl{+h:j1NW-E5f0hRH|(mSf-37Su)wt] kG5tKRوO/ϐyX.2qPyBt1e~eKTdeLfme?^眥[5K9%oJgTז̯5ڿTvkM&q-.ȰgpƯlՏְYE3dnMCg(]z>Od(߳$ǕE.(ceqs?<WN;:.7ϡlcN+w'[Fqs3Pr5!0Mɑll2kk_zzRԝsΎs|)70ewKJaξĕ!_zN~S?]o#?mkE;~Od%Qvͥ`*F?oŻo]}/
_\d͏}B9..	K5_劻_FGoJ	nN4 Řb%d|Y0-fn퇨&ܕO9R^F@g+#Tbً(Mo_F%8|S..zs%r)Y'_D]	.6ޗH[	̙FO@~Y\-l
#,AEa]&4S-xUc8j2;vtrf6Ş{EVcQ10!['5Q1̦ڌykf<	uȂT U$\1vj+.	^d7:DK?|
J__K%+FObX}0~0yqа͖|t ?Vf
AQ$cGi7l5g5	R$_rqTS63j#K)IYӜvDW*#ʮ
ej|,,OI#92ȷ0嬤b/[Eؤ-g9tKƖJ	2]#oD,6a3Yu\v:|J
3Un=l6S!'ף&EEEYCVNЖsPӗ`ұK64nEEMrl*tC%!7[h[ۡ78~*KA#EU.eݴ,,FЖ{ gt;f?Twz6`-C!	y>}-m3ќ%牥eҲPw+TV[f]LϹhhO6V4.ysTI:4Y6"&>K#>r7huqa{YNsl1N{sIG^ҝ!UGңp*θȘUFc5A+Y{4	Bg00?%31I{0vs	NB,D59rڡYu5+= {u.#\cĽJy!,0`s_%9Pf<1×r0ٖ$jW+B]B]nv=r*fJQcr5CZެ^8g&R)ʑnP+˲hHJ|dj\[
oY.o|t,y5fw;RV7E[\l".]V݊|9 aD5+{%xf4 rXM>YY]~' B>l5߁rkOvo$OU-<q6Bhfĕڂ9`E{Ψ~:*h^wwVI`Tc P^z5[#<:ȄttKdc&i%ըޘEdՠp~ˎ;k:r*8dsshSꔡ=I
&l!I[*u)Ւ.ϠT7)jD!پ|51j0u1],ciL&d%oiBe!Il@SdT@ą+7 bf6c>srm{G-XF\Z"[ry>+l$W:y%J=ұ]'߉j˝^6yC;9u(HN+`6Vڒ [Ƥcc#zv3"]bܳ~CO(;4S6Gvs0ѡo-9^ 
iX:ȱՖ&XNJ]G5uD|چj~6nMG|RbwFW7j^9$tZ$ϼ<\IaHsW]Tn|_A$羂*/Rd:ʩrEe!Ug@,hwʌ
|eftͨ[x **5&,,¡IPPR3J{웙)52g|%/mC|Cy,Tڥ<	4Hv'Ad%yfUcWĀOekoY\<)[ya'W-%=t!8IGy=[7
1^ލ
㡇>" J{{P׈Ͼ[djlbƭ3+4פI1}+<*5KR8l*#n'(-#OOVgzsqC5^zxEyHńt@Dsʩ=:">;?vsåx9& '2>vBƞD$TUX}a}\.7pV_t\-`p<BOC?Rf|C6Pr
/ҏdIT X8b·]߲-GwȚtot׋'b¨	l8$eWՌ[煃}4>_#Bg5.X0S1^91F% ͤ2-ttoH\ǄƬb%%<P+~r[`ZMؓj#ԅh|Ʒ~7o;nSGG%v1s>,bC:>߱!a3j wCQvǬ
<sChln;r0<kEWCVuOUJҭ]jjQ9N+LV
/B7s;cj*kRpsgL"?C#qIˡE1,/Iu{\O^C(O >6o#>]Jf4Ns9.];%23>` 3uIhO\3oͯ]$_A=C@ìDʜxfO$t~xW6¥ed|KJE'# y#a!1dCxnPYƼQQUO'}y(F~Ĩr!a5zA2LQN:Zaŀ.Shf	Z^DEӣ'*FN}E{X
ZZ`*j|&Z2hڊ|ɘ_ڗFV1Ӻ9LRєnJ1fM^aY?Иx&W@֒2cωrvԙ )xzFMxERX=.|eO?#6ZO|՚	xJC@SIponk(^ӹzcgu(:fѠz ӆ͹}7Jȕ̕6=biњp$b!gG,:1vjfۃ
=f>s??arϊ8Rs^ϲly"in9]a+ᾃnؚ{pX,Pa"g{c^}s;wS.!J!o	/CuTyOZ9۞7<qy˼ DZ_8$^Eh-(|q4T/FpD|MD醛3ʠ\U~|#7,LT<Q2Vi#Gl0B+34	kyRܣ!މ>)#D?3
rE:4pIUJ̤1ߵ{e6qхF3:Hs@(:aԡn3Q4u/V~<y+?/ùgg{]t=!wCmPGAwJ9'sY郔N,U&yfȊCDs[ yN>T,-Kjj'/IBG~0lf#}]?΍9D8R{#Z#'g#7߄g6[WKWŏ$>P>W=bKYאu}j(kyc|j iބqWZBn9Je庣2_m\e&|_ԒEuEc\28a3J͑t#X\DyQGQͻߏv1Tƹ, p՚ŚV>	-g$yP@&flӲ8ʵ7OD'-ܼJ,2)B}-/Qxd.TE잠@&e PX7w{P=v맬pF.QNc~:'ؙA*F0w^R@+ca(	y<t)haMj-H[Ъf{Xp#Sf~(EA$h($Q#aodZNx+~6IZhO<3	DeXs'QF$Bkˇl\H708|6LG6@GECTBvjQaSZ5Җ\6?V螦#fQ=JOB!NE-˳x3O#I##31С(SڇgbDU*ނŐ1]Bx{zEz8#&UA	懡;gLQ~-oC9?0evu`:s*O]Ŷ^o[43`I7CF{WnGunۢ#íwxta2J@W|G7O)h,wJDy o3ƙBDrB.ANǿDݨ4[#זA2ȉ>1rI]m,kM%)&M&hVMV`d( kZ)(LMb0sCg)QH#
kY|j7dmsBw9`Ok<u@»Yb.F/Gjm&~̸PnҰ
\ehwΡ5sY(+f!trH:a1.bs
r@ݧR8k6ǲkl	.B~(36[f콩n`yԭbN.7&GĐg-Ogg@M> mتXZ:r?Z!USOݏr-yLYسҙŏ5
UKN86\0b91=b'k5A[P-Kg-+7I7c!͵:eF 8J39K1#y-}ф>H	gm2
yԖ1й<C$$Y׻zRvkM1aAz*eB)C.;j.EͯI{<QMxG苹>tkqqxvJԬa&5xEW۹b̳l.nw˝KS@S)ؿ5L\h@9nޑFn~<R/Jڂ{xX150?=]MOكdGUbU	4{3:VC<?~}?+t!}8*_?jN`}Ụ$ (Id<|ϡHg~ѯ-550fNR:ΜĀ$]]Xr[͕ZekF%,1.ǈ= O R&JYfAbj"4Or8EJ),C5,C_<U&ጰQ.SR?Zn:ԹGP鬒amveRnnvB)4$
d9ԃ_Uw_ر3kCWחj_{8tA]o<˿ 孩g_bW\H\3[JUI|KXg,2-*(r G󜐧EyH;(<XwZLp'Cq
|Չ0&((6q}MG8xc2>bXDWPZ%^
Tvv.A'*)̓cxwZ;/PU7bT- T+ThJ@ݤ	&eeb9G?x)4 =ڔ1J.M+QX'.Wl_C$w/Z8]d&R(14{̛=0W]<lqaJ	mEjTVi3nݺ*A<l0cఽ9r&kM Gw٠.VcpTc?.2owIv<gQlBMl%vJ=lmC@T4gDXApR1F
K{!3|1dt{,\|/jKR8;pBGz	aAY3^'_Q]x؊$1:yʹ?t&ͫx"Kŭ*OǚY<r3:2hswEQ~"TZ!	G~k#[D_A^VB"O=2<Pyo5/+Ήl|ys9;|@3_𛧔QQFĘ|I<.`u*Iu+Ѵ.;s'}v+&sDt*R}L
(B |ɀ GPu,V>CLs]WO|W+z(4u<q6 PD؜UO]Z]ygmT\i?s/f;Rts>4zpJAC圪jk
%"loR"Qma`M0	tm	^Jq`&KLV6sv:x*Z͗Kb	T7:Baie"9竃R:!Τ8@b}g&LTN$<q 'ks^=gUä$sO_:~ܛnm}*+SօP

(~lָxZ2q/~k_f,g95.>mB|択{lUlGH3(Ps&O6WPYgj.*AhKRkC[_NCeMhh:t]QLp?֐M>{;aH]e,CDp=Qysj1* m|RĞ5Ü6T^lfTѰ5NGr!WA
n*JEd۝¬!Td֬ àU4H6r$DzK-lj]K
~=*SKC|\JV̊j))t*iS6ԩ ieG"=Ӽc6nHZ˗-fV?:<D920]-/n_=J *]BOX´w.r^}5>2AڬRK~/}`L{0[\J\rhT?m4e,+iS['uK>Y$}Cy_i] |OJޢnԤb}$r/ao4z:>vPnSIߗp;O>^	It5D'_{M{Oa*RbeVeo>bwS	#(˲m4yE'H:@TZkC 䪩q?Or(nytykR'gy;y.ք@Y6/t>LHT![j*Wgz%3J(ZU(%8md+;A(Mcp
AD{Yh$9:CC/0Tڇ=!i"/gmτ:VگfnYl?хq!dt36୍aF仵6A6!`D>?[lTa֦07:Г Yl9yn6W3S.GolZSryɇ-(WNV}"ҕXlRnRYqn%vn'-}anr!"zͼq-1'iK@?#j0>9O:'
l2.\!鰝bFjC,ziXZc&FTt\Ky-9_kЪ:ӌYL|`iSfW,q_LV":tI8ttWWMB1\k切*iV-&E̭+2eIjwe2Q:+6#U`;f6Eڽ57}')Vsķ?/O}&'-( jm_FJqK锢\WA4f
D):
o/+_O߅0DdB1o|U-40̅8MQ3	!|nTbfPW<[g~$ە#\HV:R`5:?8G{"G{"ptB,Gn*-)`'FoS&޿
0#]==߱|t=ЬQuoJ>S7A3_w{^\*`t+g]=)N0Ҝl:)D.o-1z|'WI=E}{}zsOrH=\96G+rwwQ|7
קQTvvvuNd~mPءț\L"T45Y+?";i|[up,SbKu|u$dVSVC*Lj)VYYK$יγ(.ݡWH"+ض'ɔq@)JJb)E)VCJW>ښг4zrHv)*)5~~h3H	6aп
OU(qod􆗚 YPH _+Eqb~dYE@C
^oa\Mt<dΪ,So?'-s[GE0Tɨt'H#XRvHF%kicw6[VƎh)<7dx9پ6O}lwkUAb0&&X4e{_c-s\&3#Q[=-
*Ŵ1E;>Y=VnQ@e,Dsi}m^ZU;rU^{ޤ@
7CmK-`@Rů!?>vAj2}V'A/]18NHq0XiNJ
sџvwH(-69X|55)/{#ξ}!x$-)݂E 7e;fc/y[^д1FbVI-	ԉR7wnbkll6%g@++R_ϓqhQ+Pi¯e6~!iHj04VkѨi9(pao_EPE#8_Y84W-JՈH[v[g{WW2D.u_1ZaLH|u`5SKO2OJqj^GFseK[	M$,g';fBXhũJp GnGb+pI	٠h Mu)"uEסʵ]fMD:T1!.]_BGDaMX(0&4 cr8_8jnIx3g#d2 óIgO
?}8`Dgw={xж
g݂Jߚ;F>*U6J&
Q;"j19V<N}daw'0쳔!^j7dQoڑg̦((Ag|b8&K6IJr$<03Q$^*uY_JҮ\v!g$61uѦ;
vm\[赠blǨȯ$_%AVg܌ZVdDSա%"KcPPӑsDAo	 l(יwvR~ K[n$ <O@XFZ5ӯQN]EL>ZKN"D)lSl0Es-#dݎA:H} OFJփQq?@FdT"=ɚ]ia-\[}ioRz)<Z9n3/{r{F]o.z-dj^F4)fOḲtF3By)nצ5f2 ą
$M,^0oCsJqo+	.&W?DbiG8°9"\ ,֬.פ}h9::K,gKEEAM/F,fSms鴜
j4V91|pQU%kLɌ37Ft:E&yqA56YXkzZ%\jDo5chE$eb.Mfلh*YoGE4}0A'
=HW=NB _dM>oO σ$,><oύeJL=7^gZBeT'aytx<@!Uw:T ?8qjKZն''`*xCƩZ]Qf"-eX)J޸VӸ]F%RRʌ{-4@dPjT$m
M	MIZUx:Y2V=f_e(rE԰aR2$]	q>s$7QUrˀ@ћgٙM#d?8=${zEϿ!2Gs=H"Z*sJw,o.z-a{EBKy|D<8@,@ V2wM NkEq!~-<ÀՠfyjoWV,Jg5BK-k"__e~a.[ۛڎe8
mP~+VjmSYx:ۄUe+ڠ7닪~dEBT'BabX2e̻+nmZJIU~^v eӉLBVC#5>h͑AjKB"}Q\r'	uN*Q%%U]䛎kQ  d.96y 5lJϑ!TAvzGBjvdEIUK|'EnW^>	FneNN?2DEMRƑz<L#&{]jm &Vs"c/8$iX}H/R$)ξx{M5Kn E7@%<4c-As#?x5 -`;9eߔئhOxl'	c6k}1owvsȃO֙}uݭ=2$i
~VyPK2V/zhS*FK'W4#z#%R^S36IߗÝbjNyXi]MetiY?	O+Em`wHɴ)i8`Y&ȣU7Yd]"cʈXdfɲ.+9:Z^'j  P,[CLM@G3)LFB<= rtzG@BAU%,~H@иl3-@3P\dzb-Bfe*!rXT`ɤlO5IJ3>3VAdpM
~vqH~05h/qAjޘ?Oj!9_E"݆$wvʦZda9`ݮzf|x jhN*)_j*OLl?G;u%4*b~ߨmcFc;$d	2aŊب;̋.o1r:#:L8+l8,Yޛ?+zA6wԚ(1p{{ܤXrֺ+bٸzfg_۾.wY^VÐR|!;S(}'µP)SFŢΤBN,I%lFjK=
ݺobwXj11̌lƩO3;k#̯_#YV3.}ڥɗ|HoflQ,xQ1OJq/ݐB,Y%.f!N\O},7`~f6a\SKR%@[+ڕD.{}cu۳bb!<D<yO,67@@]~~ܘ'S2!41Kl#B8@>}eםѻ	7<Q>vQxP]$59Vt |OmդNToGmz:Ӕ5ֽ|fz/aWǬTɰ,;tx0ulCHf4@&s@;#n="JU^[ңC&=t`={u0`%U .r=n[0񞖥ve/&x+6h&M&gPQtܤ*]m_g^[::D?Qus%:&7?<2cW	VT}nB91RWF=[F	pj|~K<uSjzJtL:P CW&2~琊";)*W.Wd&+Pd4C	;2aØ~S# Nu2AmUF촧PhBI3m\Չ.wkיis1Jש)1*L"[B7XSb$	:ŹHI589*#<.5jWGM|zRitHV	vj8샲=" #oɱFTB2>R#fr#L(?Lf69Ds]k-C)74-?I2a
æ[SL0h߀X<WFt<urzjAn3EK
 w,M˰lN
mSzlN0=v7|3vxitN3Y9WhšqVNv@P	j\o=QRmH22->HV&@Ý-7њB)gӃ6|}k?Rbˢo*Z)uanh:x&ъ~ȝFd
Uk~h-0kŢo&@mߥxA.'>f)QВn#snݘiXrK
j$-|eK0<4j#g>b_w-.]D5k̡0zL2y?{M>TcG3GN)a\Vb;~a2T0F
d*մ4ѣO\]Gef[Q6)TBF*r^g$B?.*%v%972v&'OTUBI\4vV-]'E2"
N:~
OCb7AҒ6[I3K)ʐ3yVF
?Zt2d K%U"Q3~?SFeˬzcr!9⢘?]ZgPCǛ}9*%?¿.,wf9\ߐ4ju>@"P4(4j	pxRB`(fkh*JJdE)}k	5oj5cA9׍2R+\N>:Q3&x 6KC9l`i5`A.3ZMROGdL{ÑO^"D.xc3;"j,e[Ynmt&!`(-T5/ݙm#?EE$2{>WH<db-A=B")4~A>+T/
x8YVٝBkCC'خHAo|m&4c*D	VC1&N\ j1) >thLF@X3:g9ZUA5;z(G/bb'h+@M{y!9ʟkvZf#pP#FZLx\D$4ES `XPZ]LcB2pgNukew͋:'[I28|\%[<Nf+dܓsB9YU+tBUvp QòJC>h7ٴO6#*`#5z<ILj<l`;Rt
*-}+3Aﰔӊ8;2b7_-3	*gwFD^-`zߠr(^=#Ḧ́HT2uHeq9Z*ѦfPqo:rJ~%ZݩJ1t]uyH4.!K-U6YܴyZ/sj	<=*Hby)GM5U2h2;ȫ>*3N	lx'~2+Ls's`jZ2޸wCKm¯e:'JRˬh#7 k=ؠꬋX.v.ٮm"\=M>=N"Y8t}oYXɧw	
l@iC!!V"7d%.	qK!o!)/$o KgY8*S2jgͮ T$Ƥ^<ɢ!̜i	?hЪBTgUd=sf^UPB~d0RDul͞VUdx<Az^I%b9_oP')dߩ|h?9J.f[+$/$c'zG*E\nr,,Be^N6[bJ&F^3J&H\ ge+-36eg}_-h>KY+ \%1jX n]eE>*%/Cl%ɹW'7	%Gq!?>=]G1%6!<;_hWƶN3J$:X9[B'`ƾ=*/uڒKvT[9v퍔nj,ժM>ZgCdh6B\.*+hZ9N:k,uMsS.nZ` P ?jʞoTWzrw%GVûTL>*ҽx4yj}*>6̀]kwzjW<+|?|ɗDN^|J.phV̻*tXm6)OGeJiPLUHsT!L͜j,Ӡt-y9[f7IrKNyiڒs]m|)./OeF.HUڪxSjM)u9䰻ϞTڬKئ^﮷"Yb}8;V*vZxVG"Qdq5B`sa.yj*4%o_̀*y!7YR%+t҉|B_*{Ұ\3,\BsX*[`-/0Yހ8JbF Szv"_"FuW(6%ؑ&f,PMqSśrpՔx9=2k ܴ8QMb:vDHR"'ysӂS|"T{
lbd^ߟ8,Y%vVF5s\ÇF:əeq[3`i5[z7I֏kYFɄ+!0/]Y9jkrQȷ-M!(GFgs'uγ9f1[Inβ#ue2pt*JQhb%wdA\IvsT_'xECFKdג'd3},q)vN/Ҝ!EoG5Q.E%J):(KTT#ôXܖj]9vҐ-!<`i6twBa	z#AmBg`3q,w^ϲD(^{YN 'yew$6%>0[{p^pX8_Sn.v9o59~Gb
T£7/p=v;HOҾxYv$+3uZ̈TV]f!|&{O.QCïWC3bAx$SGᒕ\cߔ;$^wq!!WKDue}XMGcv8teG(cKz& _WP),aPfzDl&*<3&yGcH)ֿrㅮ8a_I¥U;+YF B| V&^@0lL h MSb
&!U pr=	ctc^5ruS
Ϻ=rGFٿITb5$B
=V2;M?*4]"hTce%}NUfZMg$yx)iD5Jn`⣮gH[	kM`%'#-+Mu(/`5C+A|t:K+y}/.w]%¦׮7#>hs06GpvʌbV!'7,(4<BDCo@gr2˲Ay!EM	}NTGFPy<+ w2|v"+yʷ|5_	Vx+(iDFq""F5.OteOW{M^l{O1rJdP9?mx_wl(rJvk׳ag9Sbvr$8!*{RM;d͜
M3d$>ii",yǇ-ŀ\ŵ!9EyVFn9bYcoZc&l';B*WGPԘv=8#}WsfS^`2?߉V!QNC~$tHGo?m: 7ڎI)k($ YMsq8؎~`I5H!D"z]]l!P7QDJUJ_?Qۏ*jU5U;g^wckCwΜ9s9KpODiEO;d4\ @'B@hM̀{.VG	9[</M~!o6;YI%hacNHtbah70d4Zjd1dv)diϣ!*fke@Ƞ(Mhk"E3G>YR$:詔Jb`s'*1pbLjsM#S" *8tci|,S}Zkur@LU*c掠_lu39-Q+\)5d+,ۂ汥TC9zۜ26*0~:#F7j{ά04LHE&kÕ*f6WTA]|\K.dPSs*&M"航3lȮUЁb.)5mfukxo
a/U
aCdCkMMZ5	G>z>XmVOTxfA`mS	mkdEţg=2DB

\K!zKͨ_j 6fQJ=WݿxOIN5wݑHkYE-ARyht,W]"?G3GV?fA]X6HL
#9KhP[6e2:E\s钏)RL$	QirxL]}ɞّI'}J7J{ˮ:2M_v䁹5eh+_~ոaA9>c6(?Qxr9AMwqA#(&#U08RA8W
?h[
t!
-&Uyϭ!;4z(R>;Zy-ex5LFWy.xM(
O$R+2	t#CuޝA">zqsQO%_Lqc|ȳ@&V˘:l&k
EY35Dc|bz-#:7@@:IЍ,e>RĹX!*E=Hcdz׷tgՏ<n(8Oc5FHIqn>(M2	$Ά&8rt09:prßC'SJ=C
:RwTfP*hd17CU.7-k$_[Y$yv"j-)W $V9UZ)g@ran='zWŤY(l)$@UVH?S|Ԧܼzrj׹Ԟ'(F?H	$6`YCv\wep;{r6]CIey|4FKjfx<,HNKXd.*c>Lx{d|Ⲣs3BsKBႯv*<9́R@M;%,5BK.S|j12eN̖`JRtV*0uC= [x_*.
}}`XyWd{=|iԌ?6QnI-;)V01xRފ*w1/BtEZQսq9#4fG>z+`vUw[nZڡS((ˡRULlr'Pl8Ee|PD;{Ye:w{@ʵ~)>{zuCԋ{7=r%`&4;,6@WjNOju@
Кe *>/PCdO N1"dD؍:ȴey%SHz0tGT~}؆&0weIk,\ۀ]#L^\f0¿<a|TƬ}2#2CkcFRGKϫL?2R,j)5Р%PWS
"ׁ'V,OP"\\q<"_z\VB\D]ʬ|C~Nҿ4hp\TKCT(5/ |.-XUtB3hv ͘!5PSKdYUVekD?nߣ6噘+EQLRhXE:]Y"	WVQu{=NC )M*bG*<'6Mtҍ$;O5\Aw=Dgq3%+Hx[:lgq%t7b(nنk<ݸDBF8ZF9wliEFw!hpa62~ttFtu=S}f>lA\1eh:^)p8Ѣvrа;͂9b:(YMruuvF*A7dx,ei=Yx >ފQDrqE4P&"^3@LvF|%͗/9!PVRΫbEj)
Gf0ک#Ӛ՘AK&OUt4{Q̪uً"
:vG^yz߷81ڈ?|x!5RU.T'V12XInvC2z$T7rsu^^Ej&ٺ&O=߾z+FuK1ǨF	&!|GtC٤.=>nL2&TI&ŲL&wLr#"NVo-M_E+qؘMY>!|B%L{o>-#_Aim6@BO	:>8μ|-.cRbh_9sɜ׮-^"Q4',GIfg1n%<; R#UE;mR*^2o%zv%zzafڔp{ϘcһMk,{QybQe~ißNw8"7V 6--M7]A"w?3![t.%[t2B~ɿ4/1eLYl}	yGnFtr.8&ZF*`Qrkl&r`t2-Y	Ker\`\W>6ʴ;e7f޿[CGE
j)ҡ#@XmνÈ{ו+G&Qk /[8⭒77ٜk(z.vvTC#zQ֞CMCE )|/$6liT,QsKi %m3S6ΙV;~;bo"*#ut9+HYhC4wQ8<EOp7(fa)+eqͦΰDJ'(^TLs)h2"' Y"2__X]Gu{KIK=vx^+POCw+c9>?DYe!x3 -(o;V.@^AQp$IHhPކOO5Dx -!Ӄ4׷5C1Ǧ2;ޑAe,x[ƸqȢ;C5AB扎 JVx[Ƹq_'_׶7KMc* Tx[ƸqHܞ]۲bf|=Xt䉎 ~x3 -X]Nƕ)*naAQ>*ӗ*3K!&=-kx[ƸqHkgB7(7n+
 nGkx -!؁w[""ǓǑAeID?xD $100644 check.py :`q8h7>)b3$=ʚju9-ux?-?Ux{qBHAᒭjwxƋHfvy< *x{QD!9#59[~e֥7pZs
r VFLxə!R~kUO<B9Y{ $5ax3 bͣ44<<Vlo+Qv9cU2̕)jeWrlѫC;%x O*0=FR6,,xG @V&-avZ:100644 ohaudio.ndk.json b
(8a_	JJ~@EUxG @p%$kyjnrqTj100644 ohaudio.ndk.json dI3Ǵ(tcUx Ղ
l)$\˾)x;xqBH9rRcvL 
_xH =<n0UDnYr100644 native_type.h <Q-whQ+w?D29P8x` r.EHc&@-ܞ阑N=Q09dW'>؁N100644 native_type.h 3nHh@ЩE:l29))Fx4iR=W%*Yu(xdcɉ; -x W9$~u5 ߑbx-R1н:IJæln?9 
2x  & %xP]k0|/?Xn?!M,KJ>أ9v9ivct:[.yd}P>4z޻ڱ9: I{Z=6@a^G	*5YZ$6)ˢW='L$EDvl_8XrM(wi]N5xV"_Mb"OHsV%0y@N5V!
w,d[3ܱAt0!TgF?U ox\[yӻ|\`mH32S/lxYn6 pvZ`4AI8˲Zcb$H,g'!E[,;r. sQD"|Ro~|3Pw,7brĄayR&2x4oQȪ0¯V* e/؞(OS"(OQUQ_F!\gqȥ1RP~wBpG'vUĵ!iXއ%wOjkZ:Vn|sWÀ#˗+K"y@}	s.&jp=wpυqMa7CA@K	
B/kI :Lo[WHvuj9i[eִj=uNNjݮ誹`{+u:ܽ|176c.P;p^(h+:fm#aIDjX\#Q'b9.b;Խ"?C2zq/^N?kw/ّ;#'e0޴>y]X%fn6,b UWxlׅ҂ӀX-ryUcJ#>6sgGUkpC;@0(r
wF; E%7pj՚pGC$QYT ꞏg4Y^νi@/f45\/-iø1<~B4NgYd
;\sCc-#3KY4gRBGGo:OC|+]z٦˥\R[D/7r!Z(^VAjUCS@I8esX;1#aׁ;k,(pU>?׾I
b)dk`Lfa"+__Z&6E{(`An@Q>­ݔ;Bbۑ$Wy'vAX{j0>p J..$tT4*xdZ~GNqBϠPla7:9܁-D،'hkV5>)ߛmm;l1J_hPm\3V3`,@dUΓ0M!.]yrp).>	_-~HVd`=8
q3i6a@+ecJj[u3ݦ~3MV$
b:PߍraHeɽ|6KVIx20EJx$aF0L7;a},Z|l <:
<yy).SzBͫBwNtRwMFzĮػ{"mZ$~OcKjqB|</1tF#O-lfr@UITw
Y'lwtM8^w%Y_(yc/X'OUՙ,+hBg2} ڍArŮ:M/jm8?v?uɍxXmo aڋ!dŗvܞ$'Bm)
]J"
\u?3$MZ9agl	7[o"AeXJ/M	?n^'/ M%\6K /VfovJ,W[uN_8}ʁN&~^#yCuiK/i"$OeYRv"F<ꎇ3|XȐ/`6LGѲ+'(98HmxNjLfpF]p
X}+J;_BOl\jǩAΣFd!$C4%`a3!\JpA$F!>ڋRޜ+XD+!F@K̈́A`2y`TEVLL*	wL8ESfF&S;Fdue4>|c[ H6<@,'0:sԀa%L\~24@5bbhB%&Ek](o")3!ʒ'&3K
=#F%^C3צWMӴ3\?ptO&rvNdOhr5lYE?]8=0ͤX!5Y;%zh+2+5Ƕ+0uBA>يvɐʱ濳&B;Z0pK0^bw{f<_=ӼnK ӱ7OAu?cy[ut獂no}:ם=sB>ƫWtY15eK{}!QJQ]F/2D	)kt<--o\ëEp:|#y]+anu~WIC%?.xgzp;[w=cjinˁHs0Q2ǪIK[sEaIRnf'?=q׫MLkaex3A4sMF0ccQ>=<JT-]19t"'!a/S7ۙKj=Ae;F웭I`A24r[yYH+xg?7ȷ8hq9pPDZ9%CUq7\'ޓ?Vg]-ަ?y&C*lڶhv	ܨpݾ\MdfQD;n+B:_ڞ!AW2Dv^u`~WPm"<G|)|[ƚ5߃vزwGjNuӁodEp+ǫ<NY:3y/>@0yӞ4iNc,1Y
zmޘ9f4Enf9q&Z1$a8LB{;XᤛNYBLdvc&q L[zeRbJaMaln uXfZs͢sUOBG&d-,L'4ЏJgx{;`\Ώ#"DN/V]vF_Ѩ8U8:? G.1d
شKgc/Ma6?ԢFc/c~3Aw9YqdsE,b46shL&qn0ٚm[#"Z	~s_Iuj\0i$<>]lQś.c{TePcUAZrSvD.:sFMkΙ!4K5`]x-W8JNeGp4 X*gST\.\_LeUk
OI=@L*(g?)L	|m:1xC6v>(^[Fz_:j9U?\#ѿK(&(\,KHe.tR`s_<*TED_ױ@':l)r5M1j
˳?F1(dub)FMsjAE\.;?q|F4MH0xuT٧e$Sܶ4Ƽlqk?H6sMdrtǈwPF1Z1}6[_/BxUQoF~G?L
{҇\8D
A}d-o캻khTouvm蕳ӧCov_w &s̢qoPDm a3[ U@mJk0<A JLUJv/a<և!:%hݾs*X2˕dk%O,+ݩՕs0g4_F8׼9ǳj_f'2пT#3QWھVh򪅄o62ǏiLK<tiSU+TDFS< M~.՜(F@$9Gn1A34%=uN n?օèTU(!H64S}e_&	QO>/%7Qb`V\Sg%0|\
ulx͕ωG<|Dف[ȪJi|8ɏrj˳Z0&T]AT֗K8溭{Vꀚʜ4EUZxNH1S'jq5ЖDiSa7`5{ɹI/D[<َH}ae,kH_8VNMaԌUη'QSqa>x4OIa4C9VpS0 aT֒쮼1$R@(JZ|4Ћ~~%jf|Qfl+h-*1ɻDۛ~}`icP\Qo"Uw&MOjcge6,ιj6Zey>x^8ͨ<m+catikY;u?>2.=-sޤy2.je{3!>b=p9Yg_;HkG
ӺxVn6?@ xren@YI\8D[Z%R#)FkvGʱ0$w߿c^_	pՃbEiRw|(\hK4AjLv7W9 OU7Vex)rD8;>:?N6wuANL
U3;BAUJe}=~Ô05LjXOʮ:(n;d,v&fHg Lԟ1+c$.RL]%G rx⛯TҍK8ߗ[ݫ/dv-Ua}F
RA"3ٖٚ0,h&V6q%SەGZyӇ`buUTLkfò1[IڝC,Ś+c.,ܕ:c(7Q̴i{l2)3ЭE@&A@taCQٝX0a_s+nPnXl*[(xe	9h{d*Qi):j!^4[&TVyb9\碾qxR粩M)AANHfaw&}q^%Nj.Vxo~8D0"݆Fdol.c҆ւrǶB|d1e$RezC`D	FJwvE`6i@huQƦ+R]e+%SV]Ѽ6y+22ɳ$ͣA/Z&BSZmzδ!% YVh~np|ӱy ?bRIгt>6~NߟNu-e%L_)E|jni?Ve//CMEIp(_^4`V	^ؼ8bN&hL;p\{	!RP!u\Gli#0> M8	ĵO8x+Ee0Y\L{n[`b<SyЧ'&!3WX?f*8ܨFJa5%8,ngxc}2K˛/"٤Up3b#`DD`
3Ľ:GjN׉tj;oi0XYkeW^.O>p QNq4	is>:o6l&l5jw *xWn6?@CevŚ`T[I8XhI Rvaؓaىom؊HxۅW?3HRDj/Q(\w]K;ɩ5Bnj)J/ֹXĦ49>:>V!Lg0a2Jjnaם2݇0xsY@*#8"4ȻgM"*93BIsC"O|8.(c R0Kf<JX{=5`bfp%&2"ܚ ,Zb(,gmkfhPA¬0sh$	 EZL%"LBV4Iu]|\w<=qLə´IU[GMclCGx!N4;+a/"5W!| uγZc$
\}QT0$J$gY.h$Gb,Jf	OSAʙ,uUyc<4D| vXzf6@AYV`9"Jrtkgmy]%J׆l}O/sNSL
Yvެ;ɮu|<w{Ľyۇ9 vOTA7.ai1cX.`nzݹl`?T}|8oOoF<6o<sǇ S5	Je]|mho{ḻ-%MDʟN0߼BcwL{x>4PH{vϓ{ɒVܟ(dYLH'E{_ Ģޘk7|
ͷ\ΰ,V=b":23T
>NWi*0_7!y 3/@~{PǎﾈUN `@R.
z(iP"QݷFPn4Ř.#r1$N-lYMt
<֎MS	Qbk}ӘxϠ  rjGTIӢ%Wv	#֪ E!ԥۤ U`dV(HѬBkj[l	+\-#8]komtV+i7uIn6Qr3DW<Jk`+4Cvkpi.ַ ||?%#u6}œswo](I-Gvcrb_Jy."cvYI&TrL6'5UaNY}u0h9SA9I1WK010xKID$LƳuۓ4Ke=,Ñ뇣-Jixә͋v]ߴPdT9WW؞s6x[no`R9	eX6těM9${5agDq<P^#Oc͐Em#gzq"
unb$aA΅ҽ/}v!k~fɔeZy.Oj^f Y<]D@勣 A16p{zurg{ Vc$.2Z<onZ&^*(bHUKalyc S	 2	|恈Ssvs[q'L˟u-kI;橌Ctz%@pPǯ-?OuiǮB(xS;era<@!6eGx0DIX<`g^`l#mZG-7̳Dǖ82X߲JR޼e9e7/n1.AA?<Kn7ŧb@I$޸uE磷C97ENUc!{\yݒ)Q 'nIΉ،YZj>n՛t"ow6ɝhwzO7Hʛ;Eyqҵcpsyy>^??_~G?|:o,@QqN[bw<K<efH3bg- #[GCw .I	*Io΂@ ,9,
x̒ [ENJ@P,MX$2eB$Y:2!Ѵ
O9"S&R\x0ϻ_;L*ɢjt*t97ILU&#TܧOŠEDP:V2--xdfV!p(0JTJ]Jsx"92GxX߸Z?~њnFߏ>}?L!^nZTX8P
[$	6`9~isZFj:H']E0XFbB&CDY< 7c[YVRL=c@$ Dh$pqUe6d qYh87u.>'>gv&qyu??eq@:Z?i6sv@ d
 U[A'xx<9Qq8C,~LG
 %ފ&a.%lѕEDV䫌(Y*W	ڽ3ZncxPIk g9)
[,U&hgJv+EĔ).NLsU@5 w^qδRgBcGi$I pt~9A(b&`⭦џ [%Ԏnmr`W;
vzb6E$q+ڝcQtg{"y6`O^ZDӞ;,Hg4KA:3B7Dl
MxpK)YR,fPD)7[(PL8_lBHQy /X%Dlv#lHSbӱIX{ gWDe0$lSr{Z]	Q{0ؕH[s9+貟JEcW%Ū'uh񑳌O3Dz9"!n)y"ʜTŠ2UՊ1FSnk$NSW*wćYK$ƶDS͎yloKgHo~bZ#'	w2t([($U0G2rtU.)eC2Qm,r˱ޡ},EW\.@QfEkpiפ/bt4YOX>C:,ûeo|+uޔ|@8UQ'C$kʲKG1m_X<~2Wv.v]~7ua3hlSl`ߘaX24`o<i;T3?yv#<[ԊlB+/VR8
T+$ 3{[N*lLYDCA(EA^@	ނk	;#^U\.5»+R
HS@'LӖLg/5Iyn_Ɗ$E5_-//law"By#_]cӝ2\KCkz25oj9bz,H1٫DߋgjXSTɝH<? X-	qZh>mћf m4b{!{%ǮWcPQ< AnFCᬫa#]9WkţۖJT2yBM/ɔ
m&4'J!m2KrϠ\rW3՛N@ƊPn5JdrjDd* @ְWmA25[7=&inv)aÈ7.$6;,b3R..TV" 1,lB*O.H )M8I-jbmZFfٞ!3
W<Ga-;F_+M9? 8Â.6O<y:Td1h{~\r.C&.dI旅`6s*LZ>Ϊ_L~B@?䴒AQ\&ܬGlW"C'oXgf~w
=E.
FMaD'xIc`3/q3.xx¦,{_N|u <_C*ӲI/QW"fsjBh9_M3wh#qclf6 )}"Ζ(hМ׬UC$@bvة{{7O Ɏ>(iwV/TU+nbM,|Bh]&Ҡգ(V}6ƥ% Nscg-]ں;C%jXl`^F)X[&Œ"
s+Zꡖ^RzMLe PlEsO<V&g9^J
S`B [TgogZB,Z>M0].W\S	ϒa$}Mr1#[;V]MI4t`Ӳy gÔ1ěj`bIOd{Ət^VFIN8{֗	QS M
5
Kx@- ƈH k'Iټt735O
.bͥŹ2٫^xjnPǭP.\6Qܚ۞m981"_( $mˍ寱CLJrQnfL&Ȓ5+aty!{Ǡd	.|Ǎ݃d؊Y_yь>&;ij:e<_T9e!ltyMv6]Wb1p?P|1CImK#Dk(van,f>ǱKّq}a#iԞp(]N9E ϑB{̞6ݾo?ު̓'luO}]qtsqێ>l{6azO&kN6}+[0V/UgQ|xe_s?W@l7
B>S=~*և#Q;p_zز}:>6tNW'dihW; "AѵxYno0eF2(cQb74ED$Ґ-!w0;٢;gfBKr6nP3}l//q28~-dX*?שPu4z"+"g8ׁJXDiԩbso^i|.EEC^Ay5 8~"`f*2JSeAD1d9'90%i0Rߩ2ѱeI/]P,wX:ѹtj
G^"J쓈)|'N3dR>S&apҭra;8[:"
	G-QEqϟ}WiVz6yѯК4P~Y6}g7mO6\Lkd<8qwBBeaH?L+<YkZkqXh{ղAOD$X*\mbpVjLxx4	y'u,ζUn2E%([X(*ӀUd՚R_d%U
-]>IݬU1E4Pl{4
Rtfjˎ@fٝF̤D҂v-dOP]]0&HnywOIykU~秢ejWO)dT((2%3В,v'$+dg[m*&zD3J7kbK}܀5?+̚2tFVQVo:pGOE~̑7$,ʛ0LSI|ud	Y}_31 x4bH M!\̯BY&,@𗨟DW>ur08m*CVrgo*]uBJFW8$Г㦈/gϿ`0b=UXx_8]bl74\%6C6Tk#:u=~٘o1t6hMG~K9.+s:Gm)}]DZ(<DA&JҚZv']SbN#/($֕U15!kY [n./LJS ̩ldlv4gI"RM0Ԅ[icjJ.Y5r2O(6!':eqhBES Rh L,ik`>v0r:vV+ݹNHIeH~]}U'UGqG^qCN^~cpq}9ze5si'G4Ҕ :Mڮp(<a6JJP3@Q#@aYвdč=M0.T-Y7`g7&w+.k]Bq jcZ1(#XTMe[5S|l4xF)3TU[(l"RNfaKj$T9c	J~WMdaDmJY@tN,8lTu63<#	PvO8,`*hEI8$bÈNJ}<P#`늺L{Du"Jlo1glݢdv!`a'ьpuodtDGg.!WPy\a*y,cX*A5*~q[zJ#1uNS. UJIhبFF|ױ}>I $Cс*PM6⢌Mu#֫\mu.`lrf{#,ڌ-b!GH4Ǜd;M_pN'в+D'6:"en]Ã:
M.m7bVg'*4Q!V%XWπrVSz*RE*7rźaX>!ʵM\U=Ĕ?MF̠F$;TN^]fR5p'-LVfC7kaA+f{#a
Z}ӱ
1%TvU!uLr(w2k)J3qնrY/{
#:d<<_ٲH~?]TtOXaSF(,\$""KdJ^گrBfPdJߩ~QfnP|^]@o2cTt(1t> dL7W6B:BcBH9GĆv'mY_gb7P(hu;ҳ|E$7)ORV945N/e/<r84
9n#Ժ!Q:JC&{þ8iNb;Qhuz~z69]mÄoc,Qr4OnsENۘI~>_צqA2{Z2
胹on@xr8z{SŃNވZ5D*^~W=nx,0o*gj%16KቲƓ+]'?WiYꉂ߼,+zu?k{0Fd |9 >_5?!z=F5<IsG*{933t@׽;y"vn--$
yI/'\nsH,E&ZH2e1J8Jڷ#Ұ_e^tz2}`ًpj]tXo/\}l:{ysfdY  )m%E[ڋ˽/:U`ٻ)2֮Нbh0)550~xţ
$1W1[ƥ^}rC|}ʢW|:+#@:XjU%{z8{`	uh}k7_|^}7z?,JP3V	4)@k~l*彸ˬlkX Dxr6wDClD=.I)**ILD$	R*m- ~8vز@| ??/r(F^<ک?.VC<Z~qoU#>E_Zy4?뻶Vss,_?\,!7o3ۏOa"ZfM^Y8ou^*ipקv"X[^+{	hB-hs*MeM?a⛲jlv;U61eLNOo^ܩXmESUJSxQ-~+]~'1h`~eMWtZ>,-;F^dm\{H'|XW˅ǳw/o.6\\fqw}ŧbY}ŧgG?4[ݼvj}a]_/>]q~w#ߛ//o>^>~02mj}v~}`mfN-:<)>EQy͐&,ퟶU&Pz,vΞ
ݐ#$9+k#`⓵EЪiLE"obv9ң˹?Q}z-	\}bhjQ_:lQ-׭տhWW"_foJK]g_W5w6Is[e?~xM-}X|'7G.T>e2&ãI˛_LttQ\J(lLʔzC
={^*W$Lmhex=&ؤ mm}ycZ7ƨx[|cmNJ@LNU19&\wۦ>4Y[V&bw^1E"Ђ2Fʔ]|)hx^7w.R_!g]ֵIƪcBEKm2F@LkSÔ{qi66œIϙ0ʅ||y6߆V;[/LE4չUl{rjbJ-vCq/w~4Yds}_"ڽWכ/moP%X]pU='$y
%S ïn̫=mUy\7IǼl~Ӧ+IRHuPLoAkS:YPlS]W^fHFT=Nsp=,o~{<>?[x^]C][}8_oVĘq)Yh A)R)MGuǭkot]$l	IɈV*}W'`X]e8✉@L~ uiJh=zZQ4ڶ?0Q_	Tn0>s'-gwi6Aڮ]od7_<_/ ʼ	"ϸ?DͿ̿)2O#jIb	IbjwQ({O=p$0߶^ m~>d
%Vx-
kf<UdG*`XQyUd{_ߖ~fڼԺ}j2b`xND݇lBee{Js[	=.{Su^BB>@	bAV*7Lzh7Qi;V'"	}?j&A+jWfjꫠY
*ެ32))0Յ8PU^fźjbZ73`3A^82E%Z-yf#b_攋 {l6W1Dpw\'(q(!Z3@qƿgr<xvl["wwc`oYJ.0@L#rD <C0iА4(0U[66<WF7E$:v 
/ˀݥ}.kS /!+δI#5	90t#AQѓ3ܓLR}X>YqBQYi Bd`9 pwY|^TB5ռV[nabZlQ$JF(o)j&ko"y'lyb=HC%o@F/Nϲ-vS-cFt]I1P	_>[&%t
\fjjS&Du&#P/r?gg<`gJ<NEJ;Ilc;P"aBDZ$KPꏞF3guu$@8BvJWmMMbG9E1TyrYvSm{XaͼZʋy>~`abd	![$}@a
۪Qmz@"UosF*#֑d&Lmɇi<c`(Lo|-a.'"'4g[VRv^ԝi/fK%)Wo)I&5Jb=[<JBʳNl!o1GD l?>U]/ >
o|0KBFCI>U5nڻEni?+SY`"@ =.#5"\&v6|P&6co}j4:˪|Q51M{|Rtkh˹R);_DbP ۃجfW3Yb#t;<ڭ}tTGUHȕ XEuQV1CDF/oǖ5={#ӾNM=h7w1U{z2テn;	fcpE֖i~ X*iVfK:Ih۬S)&2
UjVxCgwY(ԦK%`M^ے}u&v]fs3Lihglm- FOnן[Bq~|UX~Sf@f<]-o~]>.Mשּׂɲ1l5Iy$?DB(!WOD}a|ܷ$Y^@ q2=YU[I|i{i,Ɨ0&0.34Iȍ,=)F@Yc0?fg7^3O((3^]eU3!(/;rFf'	/MX;"f/$")*;CFi&٨}*2?I59127_Զ 0bg7u&ap<aE`^n׫x Lp^#lOlj?t~*3㲒ȶ5Nٺb݋b+7T%ͭmNy8")4 N(9	fDwŀrZId.b5yý$g^پXv(-w
H"f&,( pTGnxhR31L0Dx<-m/p[r)bӱ"N\fĶOIZ5.ANY`%P"Odtt0 9eΞ֪P͙IXl7;>'9kc]>0♯X<q 6ꋘcqv:3C5OB{WA=B P,LQx씿SZ0寱)ݸs، "pr;A:`V삯h]Ξ`#X wm䩃øcKO8 @_2g:dT~}Z2UgS>n1Dhkn9YX'!DlqܤfI%U	bh7Trंfo3PQM@Ll1CKِ3lоxU3=D_ZYIlÇ9-[:El*eeLΒ/%R<KIXh34@$`&r{IlKbj&^5Ml6R#gshm0QPC΄3	PI`*vND6vD6v6A\ETftI4l&U`~>z/w,5"Nf0l 1E/U/i&,yVjjk5_/ȂɊtIt%9I2{wPt:"{Ï^9Ѥ>+O b/tf̭M_rmV#.NRr{ӸF.F {Z.$6.#!@ؕ`;ǀ܂@,xʶTգVۯP;qBfdzg+r{&'p>9DUy8M)IuBQlSluF^#nC	R>I N"ݡCHz( 9	jIY#-%V6-	bHZPl]ٻNDz*;YbZ5n'o҃u[[[_^aa!iiiŎBv7vGG!] ql<1CMqN= fvԸ]A	!b#A]w8`Nk eNPzf>֣@SҤ º2)1}Y 6Kv+i@#4n|S0Q	7 >Ra%QObS -nc)]J|] ?s LH'FwKf$(%*6MI&+KL<1;FLPl 6VIK~S"GLL/Rc@#
z5 m%V%krz	fHpV':Nk~~;4lr ?TY _L/mlLVިZ
"gQTap>^M/jkԠƫ\}B!D%n F<jQvD i9ӂ15M?K"ʪa]?uaBВ۠eoOJ}f uQAJrfA^$0 :Tugw<Cg<F`Cn__U5w/C`d]oDc^w:pCBos09"ק"I	![鏦|]J^E [W !DF""/h`'
mUIa4S%&ފ쒆bZgͽ.0CAې@\+Y0L{_
>* I1V½1IfuA^tOAfqA@VumFieGVn#{`_Cv+Fx xO5 %}!cY3mO@:P;:d)m-9* 9r̵͋p>n]훋iȏ,@@MuTDAq5	e0&0܆X`s|bv'~NYOWZeWy)K+jmb&eV-Un$z~6ĖV='48tri<Q#4L:s:OۊIMn6uK5>ЫHΙ#rs="a<-
hEO]%7U_1CaG{YҲ5ZjשYm*h33_axy# wL(E9msK!@TcU9$#{=acB!F*HCEQ|v+[ulud#XmsZ4vXoX+ ?a1D5T& _ciLW^	{FB@ֹՄ}cZ	Cה㟊]z<bw%G8mV.M׽ \5dIL) }`)"MӦArpHw0vp؎@$WXS%̗ΐ@nh1Iqd(w8bru1ߊ}҈1+sgz>m6I7L8jv|2ky)Fҵ|o-!/[Num<4]3Ɓ@NOnUMnwxɟX#@s";h(>/ٵ2-=7񷴋,9(^qB5'!p00Q뵧;^i$OɆ=^]/7Lxh:WͅI!N#v<fb1\e+dJT79i#UNE4LԞr1bd70Orj#(Y&&rO:?q f%ruu{܇pWd/R"a C%%aOA'E@wqE֤tSҥ&/@Uyw nkY♱{q P{l\*+<_^)?FH	!WBbi)*AģPOdʗbI'ka  ~{*y@FkAWH,Gq̾6cd;f9TMvPC`DJ2k=GU(FPW&_̆AdAOCJ>{h!Hd]>k q>>"MhKE߫lG.(J ܔ.aK#VA0IwUf<J `jk?K@!Y0 Gq}%^`*
=[.wJB
+5//7!w 7: QV5rOщbA)baRͻKx!vw[^zYr{g+pzxAP}	 Kbx̅=<5s8sʗ@U,X%c!ce,<W25
AukxJC S|YN.	b\vPgA6w172洛@!;)6R"yQ8I FP3vT.(E0CaTP1R喠%&U|[_
/8F}Vo2̜)cHQUuٌ-u2STAR9) PAJwܠ.W5	mh2@7vwÊ$/0ݚ/tGTBO8v7!h<<_w'],1Ay[oh`_ j[%!J<LnMdO;:ӳ:iqF;6Y
1&7I03wtG
 ̦֟m{$Qɚ\Xm :)A܁+0D4Oع">Pnq߰9ۿ?^ kboHz8/_];jLz=:L eR!榒cPS_'4wYw'KBn<FV.T~nc6F4eUw>'T0צhEqSϾIC%_Ƭte4A47EVNl!V܇'2YFL(] uj.t^2ӈrǝpZ}9]7)8 -8V4bAp'C H폞߃jvW5 1ԽhjX* <#^PE^#)p|` T4 -ICvY-LOrX(T?2TFTerPOJa&OKYb,c F[;jQQTK&biK-?o+
4JZ.>GjAԢoUe2Kf>*`OAسB!@lF;PpAUI#r}ʜ;Il;er5
]AË~!_PZrfuETr:]]EW@B!+uĄZZt5Ր^v(&BeQ}f\`'O\Q.{>;/!eh߮5cZ 21ԪS>]AaC!!Cgbʨ a*'d#%
2OJaL%'aSͥw#NJ M^?sQBg-BN'ILJ"o1ÜmJ3HQ&'m]²5
[/ݒs{ۭ:"\#)
5s/AW(L?`ը3{03ps{gRqҍ4C9sRG3N4yzDm#5&0nC˷0wJ$=(Y83J/t949"4<V"%+"F2yFKv :ݠ0(=az(tfCK:@|pdFMhԧԸDӞeoXTJI o\ֳB@MCJٱ޴OCʞR7&oke|
iĽ-urP
d>TN"p*(.$@xOg-M5CSe{d$V支IާQβK%fSƉ80P#?H
6L"`m%Yݢy6{<U:7CCq<&ALK!p+з$­/7(l[pt9#(cj{P^;b
1>/zzC ̂OɁ._} F]50{ɆBX`lsW#jv0AUwED7&quDI3̶AZs0ЧPZr)z1hSҊD1;0m@TuW.?&KMK{Dʞ0K0y'HpaT*a%Zl2j}@35++ jӒF<I(B֎MJ"i
@d֤!sΫ|FkSU.9V%rIJϩ9Y-$,hP#'AC6'ֳ^jjZ+rۀ/K'u `)Ó!5QR 
 GsVy/DwB8bS4U
&Cיzqe;xRR@J2|W}aDrfgZHB)}\+ͦrW/HCC$V:_E
aJZ]օRHaj6#@쨄I)(b}(L@L䑣R}جDR I$hP w^'
M3΁ l@50)~a4clkÞ4I1SZZfC!0ᇟ/^UГbWoQEC!3{,tRubgӵ-bu7bG-[P.)f c}dXk$*(!}$(PԃB	=䯜A k{Z[ ynR`("O/\0@c.1c.yWoAblӏX[6Q<z K7\7/!MJ ,v}	G)3K1x2`038t h7 +ayJ/_[HsdIKz0Ca/$}X ܛ֓%ʬ@)	u_$Q} vNFfs79 zGo ǸpW6@FR1ʞ֧&#6 Q^b){{.RD 0pk.	Jnn]	G:dA"P!8B}؟'z6rIS-l!U("k\io FpI\n<q%_ú5F5W{4#VŉM$YxdnĞ){:_d0Qz&ƾ*36"AD;lk(62?KqD=HÂlIn{V_c =]tTnkE@mW2/#VH(AEI:`h!PL]~QG9!C'Z:Ҧtx~Ӎ"'	[S>60H@{&p'z#ji,@XL3@=Db%]Z$!)~ײz-^N~FqX6
8Jܾw	ԭF
2L7&LH`ǈA6f|e
_)Q}c$&PgL#M	;h(ח_宏܁@4<2#:jZRq\q@Wߦ"jROSj7?3T?0Lk$G>q g\LÀ;8(D$,mdGwo4(NWr8>Ho눥 6_ڪQgJ7uuz&wPQ4ɝ'I[%K]`FO$qgب֩K2t1E/xzH>yŮ&pIlkK]M|jb:`-gT0::=,>,,vc~˵44
$?7\Si}:Вy,s_ؽQpvGM+})rC/vFx*\ͫNe9ZrS-'3,tB(Bur)ɾXnsX<`p.	ʴҳЗ`.L_$^gϙ>lO$$<0P{"g7%Lb*QI@&ݙ?Yә2 Lw}1Dͷ4I!F/J}J7<b`_/C6kTI c򂼏#aH'ԌZBV)3g,ht:rA D%O35(1)HSgd%뀡8FI[sԁ6yLY(ФsSFJxi&c)RoP XA^nE6t:`/x<ƙ^Kc30Hb77jP98FyJ"l
El∡Z`h
ļRT9ury38\y {Ic;]`fda?ﰧ:+JX.~"3`e?>q ݖ(A2$	{ӌV63]2ʙ{-T}#SF5T3ڊj,,IkfQ'F֫eUI+Sٺx7ޏfAֳoNkj̨hH'aJ$|D W>
boZRGbwXT؆q J4lS^DJPզb{
09,*aǱwIϹm@NE/FK#jƤ/K35~u4Npc/r:HC^Bn/e	m:3r?q'xRfeoB	 3:(?
@(j10&%aD̿Ȍ<ɱ&Oᤉ5j*Co!& MarMR
isT$bw|USS..,`ݽ?5 Z i%ɤ,Z zzDd[Pzy[n=ds; ֨U0@^v~PS~~|4+ tSY} mݑvD`V5芋J'V [<7j } .ϗWAʗ32ND"s3=/KS;&@KLs'	 !&K^y:cNmղPV>|{܏MzHiiZ4|%O)zv
%wV@isr +N$AxOۖ71|fb'ϞQȞz$Mcȵ±4q1ZLBI8jfGHlmZ4xrw脃|$"]5Svv/X\}<b41sn  m?IfG􁎩/џة\Ha:W΋q ۧr&s${sB 'A3n4K)̌ENrqj)'`n'N03?WO"Y$Gz^3#lI-x~I92ո<8K͌Iڵ8Pc;ÎyXk"КY
ӸQ'a\ޑӤ,i &:u6?#<Өfr_UrHCۧސ F$pS]yOB`gu;{9S:+.x&s)l4j <aLp=&1M@A
eUܲX^
ۧŬ0 T<bVM*ho}[rp&aP eȎ^%_"5TrTMmgji5pvA`+*n:0A@;h1 [d%`d7qzpIە~X*vW<%1!ת<4<Xpo叱d7<}Y69>)" I%[7O)G/	yvzD`-;V}BPtb.FC:q@O RH;b%l
"m3  FۊKYMGZ#똝
"N<ڙϲɵN$?ǻ W3f6o=2`kbPu|yϞtUлg:!R&6JR{0ە2jb欮3.G 2*\ R~"]}D5^B̥(]aM`)c>(ɗ{՞NlWs[QN[@ܔm%I:jbckzu?,r7KTG] Zlc*1=2>=RM`CV
]nữ^WN}]eqd  qRafv^ 776hQCHȵ:/)Td[wJ8Ї+K)̜zTl<4ӇH䩠kEUp'7<oTl	5仺:J%C59"׍˵Q(LTgz0.qdF1UA @z'#8i3[2yi2&({_};ЂbH'wL:o._'>6*	!t%tI BN$­KweExTBȉ=/%b޼\e(_Mg>*	|xhI8NYF')f\OyURӨYm^+YT	8&|h :Ev7JXRr'Bgu5¾Nu&Zɾ>hXU,(E0Nd֩~lKY-艡.nHח;/ݛ9?90W7uў)ȶ*,'OZDx,<a.(Z#A}gd0I^	=	"+:.+r!ǁQUjǮJzpp,Nr
󐃅MYԉ".	0ߋ]֨LR
ÞΊRHwI0i:(zK^$Ϯ9"n9Z`πى@I@?HOBNYB,k~YOA~[5H7@	b>f> yvp/bgz]R؍2A.ޭdq/B'D,e8`rm0]%+/ID7WDR#Jr<Ӗ&(Gp.	`/IBIlYT O0ïï$mUNu@~]O1H nw9UOLG	#'y۝/Ҽ$H`Eyk$`Xvgc(L#OӰN	L)jϙfl_v$a^)0nl+`؋jW;JΗc81(.3= }2hn* VAۺQj}yU9Qp!n(R"7GNBtB!XgSwne5M| O2\~iT	)~jyj3ҒH@L.MQ`r4yI(Dȃ>09b/DnfIµb"ƠD O@vʗ!= a(WGRs\qعm/ߤAܚcp'$[6H$WL1=*W-?Y⑞nۓ^feeed7>m")<!K^zvbV.2IKeUet23T	sQ|z2
ŜKqKr)̗!v)tIPQ23G&GZ,kY3eM5
P"{iu
DYDmYtr[;?u p:o>&=(XRDB):+Mp`"I}D威Fz{ܨAgz҃XZd9 ݧ0smi_-	 	W.i"u&jb9ıK}Y.IQI@f$=Io5ԓ0)кg"i#+ 8F)2KN[InI[n::S%X`\	9U#E/|hXb.f:Pģ+Z\)1:S<<4?1$p~' $ Rz.!Fv2N[ȨKįđʊx,q6SQK!FS robEU.	C<IcN1ꒀRU}01~56-ۣ$"+hVu-,e+i+0Bfo*YuuTU{}Cqυ;8{4cl]&ULfRvQM$fV!X="v_9.n܄ˤB\ɤJ6 մS@~UAA_!I(20q~\`4iE=8m50<4p^@l(^mQ7Zt^Qc"BT
֟Z%Av>Ym~nj#͈(­s^	K*γZl'ׄJ2姹
:L(ZئtA<^;BkNn֨f6"ncAj MAXΒ>ML
1JX!b
Έ7')x)WUA6W i9hs4xAtET	_d?=Rg\$¬d8}@z.SAE_'FOnDwA
QcaU<(pӂ~TMv5ԅ$`r-*r1A~( bA狡'ҥ h!JJmXJ  eWXڄR71B92Q8:07tlRIi \QzYmRgTIXGrڑoE#@ܑ.:ˋx"fێc-3p<=[W%}^!bCw0[`঒ƯWvWǔtYuc^ZMo<S!/YZc|bτa6QB1Df(	Fdl^S̤BPfR!fwհu&Ѓ,18%afMyB(FQ}OCQQ̤$­|u	@iRiquf{ oYhΕt)6y!D WzoX
1M%c:`?Uuro#n؃%s$B"$mߖ0I)m!*W?
^F*alA(iF4%i^Uv붮CFWL Dd:^	!D'UlGڕuGay;n~f)sC!DA[/J"蝲@+u «~WRq%h`nɸ,/'Ql5x;.jyqםngwAS64h.jFɀ]P,0".xm_JJ/^x/7BD`m)NJOJa$m,{{4WC=fj'~Թai s_'}0Vf|,2nl!3|v>^bŔ
`h\	4'1'2|`FЄWqRZԭ;@7{ NDP^^do;鍼SPTU\T\=hhafTfZɤHpuNL=nu=v`3Lֹ=@D);+Ul$:{w"bEl	d]PRr=8Ta݄QN;V& d\0%_ɲ%͖._36)
HCWa"f- 84,O[C b%haThaTiQ>]敹_MG}q|h0׫oxXί/V7cA\ļxXn6 p: dCS'mti6V %J*I5=^cO{I}9xsP`FHyxR)0dcQ"	åv)7vEF\Y?N,	C\~ElP6(܈i$"vwz[! }3g?_CrT	[8jɵI	k[nx2xΑ|(W,Ϲɴ0q4:<CzȤ(#ýa_󃘨Ok[$5BT,^)pAGonG7/.^]^@J;:WoYٔ `Fzt@L~6օ\(%^8Sp[HbC*6=Zm%s
5"oDǱ<rO&5%9-3:gAfƿa\~HsȘyA#WɹGq4bܚ}[8K<YO	B_s@_?zb,%z )qaWNνʯ`R`bs(=[]`XBCawE[0TF`t&%\}`܂,$y>.dŹυ0i'B	%=_'߂ (I׃
<qAA8ތRf||5B8$@|m4њc+m7k%$WS!d^+hQ-o*F1-#'sĖy!SqdBDݰuC8zv
3:1Y$lj[ސ娤"h i
'nRht;.-}X:;T)LCz
$vjE4}%hŹJ
؇&lt ln¥_`a@;_Sƽ.گW1<V	F.Q8j܌sU^fD&4}KUZ9sΈqt*VH(eSsQ$ 6TZ% uk߁[m	6B \%/@2*|Vc 3:kx$oJ7(ġ//kmD}zEzJ,y@ӕwߞ_?)&bۦ/ꂇKAb:-,Ӧv/@߭0ưLjCocer^I+ZƮ*_fOBDJ=ص7]pYްDFFJ~:x mN!+,@
z	vߋQz"ScGg7!*9o\X*ќt]-VU	\:	"	R5L:.)St+4Sm(uߣXTBlB݇\_4V4[)V>UCyHTs	PU#Q #d?x=ioǱ?t gI":P&B/bv;zRt~٫9	Df9jmT>zlҨu%q>C[t!(VIRoܼ,U>Wu_EU^lo_^^n`+/η|uU$jkQ-Sy=  SJw1p͢*ɳ(Uo2tYQ*/&J:F:֥..lh̓T,ZIU]O@83 jyuvnOWTɯxzY^!?f|5f:hP/ZBŅVD<>/M^ }u~R'1Bp{W2s5:0I8O"jSߦE瞧jgZVEWF)/tcd\S"HfTZ(+U(MK$S"TRLME.y^,̋2joL!AđgWῃ g`:1!.Bmn(Ú	 
W+FLpRkwo-KḐd5#_(γ*9tKz<jJXw.ho**Ah>
#p{:/Uqڈ5>j&1}}SuVj
e\HEZ3pN{QYi6P:B'}UW!ka!BuZ!@@<"$xD
u3#4{OkSURiVICQ&bx ;@k DCxKWp\FSR<tG>x<J2*b$AH4	^-bҁ<b$!z@SNf=hf,acS"*}8iEq |r-TyUV@FK8RW0zfC `4"A fЄ9n뉀Œ{1Alx?675gP^F#'
bweqNAI>yf=Ec5p/}Akx]/5PK!nfJ2+L+[[t63;0P2IALج'M 3P1O9 N ,V%G"~$ˀY[_<9C|].py,pZpw=~d#-@Ð 쁃	HJ9Tșӫf:*G%Zlqv?ϏHDcXoxꁵnKYB+BA<?<D%Qwd!Xxe\9
	ްf( \dcK!~N<BSσ#(J-a j.5"fa8YE *kԫlSFAJ,LRU(9Pda93+Q2 4AE^մZ4[]V3OW(p@S+Rj	iF@U]hGQg(|D!M2qT脌U>Y2F=GùI~Wׂ`Jy"*{LQr6BxZ	;Ag;:8Wke,	ŬMH%K]WTlĺg%P=c9%ҿEscv"!*)A:s<3;YQLL/iJƪB4mrٰ1k(YN -~u>M\dL^l%x9	ㄔf?Hix^	(DQ,,!9ɳƃCρvpRꥮC~I,+'Du`Č ,Ku'^& 5$F`k 9M6lSC+ Ҽ#'}al$t;˳:f-D]3Xar#pԮhuBO??%%j#ِ8BA4:Z3sF_Z9ϔTaGЪC#_i9v`V!]Y/p2FjeUϞM2>>";;߃}.^9|F~`AJ'vώ}:&,5AOĨyKXɾEr˦,n#j?7E~NX"&+AA) / Fˀԡ8DH7͂82Ax̺ 2F!8i@Ҷ5ʭŃ΋(r?NvN	O!vL`[^Ct &oǻ7cQ 8Ha|vۖ5Pßl=)az$n	uUa	pTB>+_BNZ,=sUV!Xx-U<NVbmúW&s}aD)[I΁V7+e,҅*VQb!
A;DKuke0TC`+Vs3pL#[¦.Ltfkk+v&syJÉHjl}SZVڤ9z/9$9K^(YF B]rLn'/PrN#;bĠ,a<;ZN/$G2eu,, <{:){Gba#SWN)Y/b'@Pf( BUQM?6*8cYPo3-F7,چ%&_b).2./L
5'UZz/Ci	Rxcpl>L]b"+tF( B0%jtT& >P؊  	AFT 5`izde2"\r"GaE~~MT&?|:>>gKoZ(T
	)g?;BX/^^@4?m'jt\t`GF:FFiքRRLOxi~~ȺKUFp\{v|p\&8xQgs,R9IMpf6__=4{c+[OnUh1ƍmKSN/M@DRB߃)[4tdL4BȪ\)YwK]`v׷:	y7t[QK|{mEK1'$G3*xTQ_r
=ƹ)8w?\/<ߩ(,r`}[dF
B`4TNEӉo	[IVj'S$Cb Zu0+	6R-ڸ6*ǤbpXݣ@W4 7XhV#n3~0sx3
jF7!!D<3UܿGv0!ߏOvN>ގbI<"~L?'ru6;ݓ+L[ъo<ԕR7fr})ׁ9:E\ESDq 2{EXQ^<Dϯzeh$247fV=
6ɛ?OrR݈c'K\C߽&l|5LCd7g}z^e|"!z{~Gzヷ^6IEEI/xWF]D$}3Pg&LΒT\f#z^RT\!Š7Nd|*^~n~?Y¨cSdȕ+פ,9P/Ms-yI-'s9Ϳg@Ǔ?LN0	5>8Ѱ5v*KzeJ].^pSMU^4X(ۗ,4hb*kEXҦ C")^kQVwΛd? =wgwEUvL)uDqG0?lXh6)c2v!wʏ{4œQpfH"e'.D?f/^,= x{CTubtgvt}'eV::6{3xۍ<R$3WZmEp[d:ZXuOFiI"BOBS >}s|?L`y^;[ZH$ET2E=vG.ru;Ue^0=\E/pD6oYf"uPyօ.M!MM;?MPs&*M%ꙆͨVRWl0-K͔Ec7h+) ͒V&AJIc9U/tSR:9]E `C+	Z8vZ`^%\s2>T׉bgȐI[/dL!aS	eK[ZEʬA4{<b֒9(>l:r?Mvp*e!wIlte02
FX(	~=X*dX*.(%njȂf if*_!v]DpIeKhyneyYĂD[8øQC:8&'P.,)27aڷtjn4h+ĺ,buƊh9BbP/5ٷRGڇ@8/fe@Wml>z׹1y&g'gGX厬N:	%~m[+`4&"djrf}m|cx."ls3T8;4F*
ߣsv2e<"
~M׏ 71
.)˻ A^/otj 1tU-Ay[f73q*JeOqe(Q*
Wi΁p-o``azۢVx@#p W^>0z$lǌy6$+ h,!O%#cljA#.WXnr4fe	MzUDӈKm'dEoiIfQ/xJc^KAӝ@4RCpD^W)`Vd	 ZS0:=|Bh̻D<	>$~u#ȭ_܊CǠk.;S k[:!/vzph'ƶp^Wb7xǾ) *DR#Y&,BU5r,ZGcM9'H=,fia1xe[Yrb*Qnl(zi4&ZTWc/<L,F)};mL݋%4!^4aķy2_kÐ<
E)@vz2	oCa0ު܌S> n=`plhB aODQ !O(r@IHpdHx[krXftS=ǆ;Kw]D0Dr`H^V{؂;X}?gM]*$`6(At} [00 
Meu壶N)COsIěz'kGI A&ǩY$lEg{.tpld1+Zư:()5"TD"II~(ׅ*h+~^LR"6#rv^͢'8LʒճFpt}"ӈjEڝ5!0ڿ/]Ɛ5G^M8{,:6E
wD
*	xmIIJ0]Jh:Az+"C!vS%iG3Sѣ Q9'#@34kRGfͯ,h5RYk<9;9;<pr"M&u8{2`l4R>2kˬ؃A2U2)8aSٶBT闷b!g<5W<v*P8oRb
1#OsQJJ%3;VԲsVKq,t^pw/Q#)04ѤʯЈD7=S$zUgZ/g Oonk[ n['^gɄszFBpl Xc`	vkE:̝Lx\,<,JTx:צXMP6Pzo{tc;^CCђfT~ Rj8yKwaZ.J,we֕vI۠]
cS?D4ׅ}s~wRYYK{!ERy h!5,Z>]
Lb5OW1|GU-vP}C^Ehp%a<㰍ߟ(y}FۙKݘzww]ԝɌ JbKƦ KɁGLͪK-&sgrp5>f1<8絈<zI!輽\7EcPfKTg{waB#ץxS-H*_z
҆NW\Ezmq۽`U	ay!1?$j"P2EP̲gQHUc!k-A@ &#i6?N."~	Ѵf0U:.DۡI7%>]m일dp\|lxϺ7A
k-ygsSpF}W__NE#wY&5y:cLBצa:+NxpAl-ɛY*Yb*'YOo?{4Fv[4/~nTWli#NO.u(=7ɫz?VϞz@:BTk!<z<@HnoHQ,EZ=m(N9+az{s !bܶDi8M7<4a)Dӵ.ׯ{@mR]?<Hq>!UKis邻8MnH;nl*wlJ}-ʹlJ5I{vrm3I+v*Y^՜&&Q+]^zXm-1vtHr4m 4;K:,8hRoY0Dh白\ҸU<zWe/|R\%Պa8_yt^(,P& /f3MYX	lՕ0$>m]lScD%9mr"ٖ]ضEf(GB'LcW}崛*lZoRPr:G+2RUvey8MtWݑUʾΓwIB+ZW'4flAUNO<Ew7`[ׁq	>\SE5!n$-Vn`n8fv3/\K-W5w(vx`Pc:9 i?8<LQw(-h~c${;BץqoIjCZq	4:X|e@1At|^R6W"#f,t06iʞp5%?^j74Tᵟq)֗i	Fp/6M[OMQ#:^Nn2r{E7AR󊶺P7hXn'͖_hvXl'/ñjNψF֮Q0'x
Z	l"9_<T5%5jKd3@#FN)rG]9ԖC^&2K/(g{uv۱G#u:m12S+7DS}v;~^!ݗN|jN~:*pwی?WE~~Z?>jߋ	zIOzCb_ңiz"M1~/
Pë1Kg[{}'K,iѫ(lTz29>q(]\yZvzb\|h6ne\4s=ũa[׸6d㺸x.yRŞ,r)gKVi_~Z|KUfɔ>f 6"/0ޔ4q!&}SӮ7+M(92E`ō@>>n'5u,s@g#[G-eAǗ;pN"Р5Ŵ?[n*!u5cuG0* (n8W澔e$#{+llx>椴s+F6!]n7_M&bп$oJ2Njdr7}i?kU||`"]׃`hO'n_J
>[֕00e.afKh3$=yޮz~z8oC>șPԙ70CdilQaÌ˧"_RoZu}>j7r}j]h7Gɡ;))Ʊ}psYJzPqi&ҵg-Y0q߯
qd<ĝ\3psHz(OP2TÃ5M(PMaҍW^P~pn<g㓣ݱB1/?)ђ9'$(wn*!yu	3\K]-x?*z~z?vcWZ&l?;Ow8<Lɵ<4 {nwBr,)x]rF?U~*E%ʉWHʒV\&3pвv׸'	PUmmda>z{ln_5x%h,B/kq~<=q}zg2IO/T4"y*_,ܼy~l>	nnm6aOz'8sakƅ q<"ow2jd/Z08l*.d*Or9׾ cRDX*d-?5nzμHa#:QD]~DceVa"ĨTζG<?ťܐ	4|OH.6J9kq$gi'q*&q5KY~4խ̓(_)<8%
\D#]S	MWDbs,I;̰SLoOR@(1H]YY{!OsN4#d@xiD(=hHd"95#rH	yAt"a403I8%)4q$oH8|:{EUZo˻ oa俏E'i{06v66_nC73-V`~hByiwI)4Ro"7`?k6!t,݄ (?PF)<ycR)p5oN$wq56~=#wPYOjr8,E:{a OzWƕ]C[ {Dw׽Iqk,Hy39 Re9
D	/sf|8-JNʈF(J$%>Ϫ	g5&4	P[[&bfQ {^ond
Ɲ6'=xed;i3v$L[}{ah>t~M)#-1lv	a6cv`$
F7`<+F{REl`)jP'M&g 8,eUH5-,ImR3<P3x<UZ~ШQ6cyA6 'b|B$
i#r;dhmf FDPHWbHKc9rO2"%@FY ц=qPbx*"^X8R"FF(+& Meb9w[ϵ51=K9N${,#!DQژz'-!aMcn8&o\~nY0?;@"ShЁX^m3Z b<//q.L,lMO"%)4HꉕdL)(aAeLڧ{MDg'Khe2RG%
 @zCoW''볓<zzPdg*M"Oo534"2@@;^{.\ch>L	
 B|i&qpA7 *d`
Oi!>53$rzDLITZƣ.e=?NQZ]ȓ
T!UbP@8<h~#^	2X<Mh`S" 20饜e	|d?k2lw$`ac>5A>l4¨ }*܇ a؎Ñ	O_Dt,ESGJ|6=ڰ 
؆3d@n'z jIwzFU@  3އ	O}lhw7gEfa­6F Fآ
 ~ϴ/D(;P7p1%aHDTXV 'әlY2'my0aLuO_$Q6W~|O2na+eeX}NT\@j$RwOgd?ڣ'@4<0 ,I9Px΁^&Dx*C#:aH/؏HЄAgp"nӁ,] >VNT"M(0  '7hͭ
X9مmq/ Xʞ>&9A{Oݨi0B-`,3
JJ*L/ #ѢQ_)eR"܏swl@ឌU5
cHߒ΁E#ЏC6Ly[EHY,}*:a]Z-G`zhJ؞F$08W8FzB0 w=707ePRK{A.*@d Fu:GV+%	z82=q3b3x1q@65?`	lF xAdwYАg'at('h00Y8 &m$7PT(n#*	Ysmz upch*:FL ^@q&%qi-´yȖ}	(-;@Q {=q	3 ax9-3V7J(얁;@-FQL`wGYIN-̉ܘ-}2,2$h]&SkN|s̤[YYER2z=S|>Q7HҌb4Jpjf1vV]0a>4ݮ~4V`B*1N&l3
4r'ƖR 6fGu;7-ؖTO)N[ )/7s./WYNnJ 4MiAQ'+mjFyi@
^CC,0 w oW'Wd5🬤f-zn	&8UgF1oM-Xc-VQ%>a S+i"7C_RuwnLJ yB\`]0=Y0ٶyAj0D3 {Z"dT2Q]oBAEffGaz05/
*!&T".A!BL)1g?c{]H7ig5Ov!]
'rHq>Y`>sƑ|^{>	ñ.{ydL cazdd?@gG7 c&z*\7U͙	?CJq31+giPb[?a,J]+#Dxbsthx+Z<]0)JW=)%Ĭ0yOKPuOR3I<<3d
 U BlӮ:q*S=rHϒ_ǯxh;7j"h%'
@l@YD2d,:d[^_9-|`83Nns4*ş|=|o>۾mܐ@;
+f0'O.3أŒU=Zx3nbTaÁN pFv3rl/btQ[1p"]|+_u~w0	S*	AᠦOzR])ݻX`CE搓ؐ!۶Kx0l9S`6<t@vrt5HN:ݵipY7>I4.(ɷGmhĦ8'-C:r	%ɋƲP	*pE8sŬZl8Xŝ`I󶜼*s!Q̛Qo9t:i)ǿ_~=>C`e:652		u{VnHڰ-j}b4q?*$ebi羀㝭~	}U`TV
~ ƾbf1;s]TUd2HM*]ő KZ^`鸺يJ
wQ㭂;s}-vxj{V)*J:VY'}udÏ:f,򨛏<졕$\䬊u^9![H'ٱ[t(a`dz)pH6þ5NN2`m ^SH2ui<RjQ 	JOW˲4a|'/^Z]7+"c/Eo,q]u{쎂.Muf `O=ݯݮ#
1l1j>y	9*@ ><ѥ1z$lvټo0
1l?4P4vJ$>Q2& LbEbzO<gQ)N,)f:X7s*2S4FᐔgTp;ǰ;:<YdqQ;H+G/xƹJ !f.$\TEe pJ(*K?T~0Q!>̀fߟz*(G.cTy&䐦=~|:?~Vn+x/vsL^~ywL'b32USf6gz}v5889eҩ# 9+vuß^~.~R65JF+)11\exz|pDibÀ(-A{nFܪhșb*O;R pZY^uqH֑JdPeJZSSʑӍƆ9Z4[-/xǊy-K5PK}F;X*UYP1$tfTgeK:Ʒej*~z|;:DUtuZuΎON5hqj%:Z$D˻'OSg\akCGqdoǟ ݩH:BdfTV<ib:f{ΖLӫ#gG
4v\b
sKU_pi^u@:hUAL&9}_%\BYv?-M5d]?9(ҐBVqgc?Nb ^@mMKl]mZn7P*M7|	=;5w$OqwQQ^/'s.Z6Y|>h DDkLS+vkV6kN}ʈoJ]lkFt 1LAPr1Î]\N:XkwӤݚ,+u|VlK<g.:|sz~`'gZ	lH\2=S	4b+kÕ>ʤ/荋~.B*cjc5mTFe1^%zjGewmVWW*닚MD4Um4m< +_!ؠٷ ݼ3v^Md<6|.NA5HmJw99b0-ĆWU47AJH:W_:9FwTF~ ba&H:gY0
qni30گEnm6mm'._қ{[J@U<rtTbTbvutɴmW]4wpc5)P 7;kuQPztGAc[70ްK~^;BZ嬸qx׉ri+`J_øll@5KpƇ[ΔZ @̂bbHYAPh)GHQjxoݝQ!w]&%Ԇ>&ʛx|~:LvHZR^?xʉsОeW^c:)]>nj+<!nkdZWP#CYɊ֭Y+ǀ򈅇-pqƶ?( "Z0GE[1:y 42 MoI*us4G|BɯII6vnMh&/Tՠ=^G~wWټl
Höxv>U=_(Iy@tl
X-Po׸栰Qq_
?YJzJձZH$
8jDZF ]#DX2Q$2PBQilM>ys76UMr"OV܂^][Qo^ayXM:7ŝjtd7voO..bt~zN[ɏ7*sZ[T `ݣra"1DUS|h	K*8͖E!6Fxc_402[ O>۷OV tO/X\%/(I<嗂t|lVPaTtT~1t:H+;7[z}W	V+ʆlH~Jv躸YǵsHsymhi\
hi-	h(RIBԒ)W-._2tvqi5td<{I
4,7aYSryjll62@I`S(`#w;Tf$XpHOϽREIHݽ`A]He[zw-a0[SuRU]svJ.7qeZsՑ?T3`nQ	w$徍!;R)Wʹɢ-'L	8Ls11jptt-gZU^I̼n IbEO:߅Yҭ+4X8;Q\5L~i_+7-KPxU΢o75o!DuPkvfgY~eKjll ^Bї_*I&qUY>\0:zڡ5K$oU5*Yǌ%=EhԦ,o2G9VH3qg'U15S6MO6Uҥ_׸Ԧg\|d#qa}bxxŪ*{c~6y!a[#B'(fYBZec-Pc1(o Q$]ZJvwHڴv}aWN]R=S.DSܹҙ瓶."by%^4ê`u(UX~cxPS^Wr24j:/<Rŵf̸xzMܪ8~=h*/[?rdn~1tݦ+Ԑ-)DZ>)'+G'kl'{oZ/˨7N/C
nnݥ~ʵ~%cJ.+ݴ܏r?-<W?}ezӗȯQ%R։.ξ6G4JԋW論Ka,juգ]3%0Su[_ES{Ԁ݉"$F<ƑY5lwz7h_<ːXDgV ǌeRh~{hK3K^ja<YkwCG4T@}#X	^Uw;OCgnG8Rj_gᡕ*m \7幵~jC[ss}ԗ$ZB/4ZRklX?DY5_R/ŗmLpo%05lذZU~W{MmflqbZRrVY#jִRe՚Q.(yS~];+@U|BuV|G>N}yϵՄzYjA
y>Ikk:tq	\qz#/bֻw<rl[+G<Ρ,xI?]ơ_seG_OV'Uon֝ћq%ʩOD"7lyVT=\ܝn`??M~1K.4Ϙn?3{tiL=u3P7\e!e|6ͯ>OWwm&(ڿ?Jk@ml+WmVE^.hՊM.ҫټ'Tڻ2'oH6oϴuE59L4_{°*gv[aAU<]Hby;|\:F(U5oV0y5t4_mN}|*`B˺~!dU-r5_$)\dXdE5T)D073]Q!3ƳnȯX_iz*
d7?[y=*l.oʇC.u:RQx1xJEꅢ]du"mr}{{|/8Y\}G_tTbͮs/x]РrfM?A"usN8K0c+\̨jN.gLTMHJm2:$y^%/-},Ic;ŕ
r/~$"e?e^L#<V!܀m4`uT{}oT˗C8곃%?	en8X5࡞&C=oe
}9Rs1}E`o,fA'd~TZ[j˨wM*d_-<TMV^G\[
8W83DZ,,16Ș>N@+@MEŉ]bݫKc5A&#\XQ2~^Ȱ65K95O!6]]K]I_{8GV尵\ڣg"U+K^mɼ;0&0J:̬5̬(baL!nx>~e6Fn.{c<Q7V-:Z ͵(\<XsF'[bUNCa'z.NȮ	4( fC*PR	ziLsw|z^dbvxc^&_LW]˜wYbhǩՎ'5{Q֡EڿziѭMgII,E7GZz*+(~w)D7+N]*dmE
VlZ35!8Al5 ۵_ysfN;$x+u۪*"P$WOF>2n_.-x1$XA+
sԠ$ƫ.6r䖾=pJ$_tԿ:?@Xvxpu|A	pO\_ӣ|'_?ݚ^xWNF;%,8Z!xR.48ne9{=ch5d=gNb,l-\lb_c4d;\Zk&xdp"!Svy{{kƀ f9*k-lm[9nc)
*|Sp\H.)},͵r 80b7,EFcOO(nⱦ	$k<nмV$4D(aÜr2t\M7g&6\~{ƅT;e4A\Z
5˘h:`偆MD6(èޚO9w4?081(f4d= S.Pb \_-=p;4Eb
ۚnl@'PVrFUcR
syi'E1jJ>rL3?JOibjIuW#.ܑ38z=?8v
R!TfdRhUUQ&gYo<@-}*΂28Bcf0U~+'v;=W֫ʱ&h<<0L-{p3D{Ksl^,IX<g$ԂubQieA\%AmJq2G#	DQze՟We#(Uk=exp`)XPª(DLۦ$rIො"UΒI5dq!6}qޱ};hPN5~	Y&:-WS3hbjv 'qKAGڃ0'4e(Ґz=
/{t((d4I8QR+R0o;d?;=cVgχ:$^jYY쯂\xڟn4* Z? ,iOUZ@CS!}	6xP@~8+t">NqF62C3Z)b%Q+|\Bo'/Q	L<S|P;~)vE{W^ܼ-ɚ"|c>ܢ;L'?}CԀ/_R}J+d>.RiIblp7J-h
`o![giR۬&o.[Wϼ^	/]§,X>˳B
9t2p|xee!rx!Ϲ\N]z*gMQ H{xeeP)z575]{x>"]< Xx8qHִwvLȫQW1k]JB x8qHw^-;^ޮMD ]}Zx3 2ܐS܊nW=xF@ҭS׌6j.Ax8qB_í~8˰\Uq݉y: cx[ʸqDt|7ҰTc ojux_<1L	 xR jT%+%x׼̢ԼxԒ""%Zg4K2sR}K2b}CxR jT%+%x̜ĢԢ Y\PG}PjY~v*K2KHll 2Sx LcS&E%+I͗#"KxO W} wg8C,kW})}6.ܑ<"4=x8ǸyӸeJ;ClEa7_(^MvC!)m!@j+x{tiFF /{wxO עgEkf| F<#YB＝w<Ig0;3\yXHlxC!8*y]x +4,#nxin?,x6 <T	U
#đ<|(RC#c_9pDx6 Fs[Vb=_`?$!.<`ujPo f8 ʰe/pzDx{i]ZR{oВ_X/ ڹ/nx{iwG+kscD蟘;K *8Tx{i3%ߚ߮1)`Ye{T=% *x{i+UG|,-Od2M_
 *x  /quGؽg?C!.x{i$_-'&8Es ̣*x ~0y쌘]\wp',x6 K}ݮ:2cg\ɑ<D{8xJ$p`Dx L[OTZRiϲ}ٝ#͗px{i>y)qߙ3j3" ޟ,xO ָP<E'X_zqʑ<׸l5YiJt8P13;e'PxxC!#]x{i>HOw}V!Pi4ٙQ 65x aGƝ^p2kL|\uUp/x;xqBS']ǣҵÿ)QKC9xR jT%+%Ԓ GIVb* F_#x 1p	-̯G»{E4E2D'xee!rx!Ϲ\N]z*gMQ Hx3 7D7is~㤅l}3tK63	_´c?cdDx3 7+Â;uo?x9q߇tK633[0pu2w(x@ -!package.json ]s\D!%]1&[.X@1_19a31*o%SlTx8qBg#֒%	 
xkalaP 0SX>%jJG}N{t
  <
$:xkalaP /YǊ<w+o먅L߲ I>dxkalaP r f?U5pYgc> 	~xkalaP ~iD*-bKfl	 Ye'xkalaP ,g\չo:?k ?'xkalaP cyL;y>: I'xkalaP(E[OqrI oxkalaP =3?bұSVg Txkblb'viNA,~3wX) 
~xkblb'by^ѨăB'N{ q(xkblb'2ץcFyN眘 wRxkblb'ºD/>rc |xkblb'r{ЦEAsEsmŬ 9	LQxkblb'z"v:sw?I$ u&Oxkblb'eљyƫ7>ČMf&?$Mxkblb'ri<Ky
 $!xkblb'rAᷮkq:l8]̺% Pf(xkblb'7]rO6{x %'xkblb'2ͳm1Cg*no~m$S Yxϸqj5ZxN
,	unp g*xϸqBBUzV& c^x[ƸqZK󿋯Ni<kR)kչSAx -Ox"MSUAe/x[ƸqHwbjEYw61 u*x -UppȑAe+x 9"֣߳uiMZx;xqiCinmr]_[J  -x6 9+wvBpV|Z
RlMA՗adizƲ}<*+}]Dx6 9g_~M}ϔsMA	/x)f:9^ >+Vx6 9A*"g sWdgMAHB 3K]WUﰑ+KEx6 9BWdu#l_MA՗adizƲ}<*+	x;xqHIg+vx>c<_\:ѷ jox6 9~G^_!دMA	/x)f:9^ >+vox6 95H#M(>//[MA{ڡ,Z4m<v+o023x6 9Xzb*¶^MAi;2:\2' C3+xx6 9F%별a֣	GMAQ7O!5筃+rI=x6 9M3~6/.dW+MA*0ak[*_ݑ+]x6 9'o>᠟yqǤ.YOMAN­^[Rh8+w;x6 9NINLIMAnx3ɳxY+Yx6 9yyv>h:ٰ_JMAjFHt	^ٴ#\$+؉x;xqȿʲkvSY=jAzi} 55x6 9Ե4͌F; MA{ڡ,Z4m<v+px Wܱ)e;tLUo+عx;xq-DV*}J׾7)%io M x;xqȧc~|fe	>`v+uo  +x 993b% 4őM2x;xqBo7B3ykݱiΏH raOxKJ'S\NGWwLr 	xKH#rrlKq8S: wYdxKJ']F^݃3yk=3 1r=x),It/Y|| Q x)&^INr >
x[mo7_A_CpEE&r`9Bv)rZQᐻŲB+r8y}ve)3'Oӣ9{]D\D@n1i')T<IZuѓ؜/Y RQ&syIifv'ŪPcá96	2n)̘brpWÌ7 vКJ0JTi);PE)̧,x)PL*)2ͼ0XQoGUovPȇC79;>/g|d?'&b0T8PS5yp(DDJO+>l.EÌX!ʹU
(&siV[KijԴTU*y6Ur^Fέ^~vV9.wЬѯ~\W<Os2 uR'`È1`,3iݞzL[/-Ϟ_.YͭQNBF%I!	^`R19c!UI5aƳQIo/4sJub&-K.qABk5S3E&j+
qКiJѝ!06ؠ;(#^l!TYUQҰyy`f)K<.Oq%sAv7rv Nߟތ{{::>{w1zv 0O*.܀,L8hYZ8~>}z^Bd2>
A Rn8XAczsCiDl*J;vOۈ`v3"*MV;ј&JDqߍoT }Oc rc:r#<	.yV	21XR?_`\X'`ūΚ3kS4@kDYYeWVֺJd`Alp -Be هȽ)y yܚ=wPCBa2&}dFX>6A|w!0qHk0lh,Q`'Tӊ;GgK`wcBtx~dubun<"^W-  W`Ԟv0k:]_T@=DR!!V4P3wY(|k
2֓*렁I:f J0!JpG,AuGD`;ǀl+ihY>oAҌPx'W\(rh`]_ڣys:0"r?'_BiJ	@T~d	{
c[59BPK{p<D>o)8}a<^ҞF	b>J3%\$kV)'.
4/<6l=$cZqߨOoĚ4ۉk#zByK5`[ZdP/,\q^Tj0V @s%r|ꥂBgܭɪ-^>P2ᾀu]#a@?aXqn2)q\m5"TX:X,2̔.^8TbZM`d@Ng88uai
Jl;Ϟ(2bf/9L\IZV#f"K0q3
Ns,h{MDU8]e]H_(?OFz罷WqRigta|ڬC]%peae[s2yjAaY#N'
E`"&+kx>A;Н`P)W?aթs
l$ QC6]}C?BMEW{VXA.䶥W-`18z}w@t0<? wＹλK%SߠtHӠ>vKyIu55iaIeb8CZ7[ڇ߮Cq]'6{Ymnl@={	uvvRcfdgSh ]]AMTo,`qIqD,4~Sa*qMPF#5BT2ae8Y-gsgOohT\ԫS7 ZMzNkenkjjJ9me>m~]	BĩNEd,po/SSzpKRQ({J/^)l-^jޮz٠H*/nO1~on]SD q@B {!T"Aߠ+Jw=zTW#72#axSBVDZ/ir=?{xM
^&xў9Ex|jB$/Eģ[Ru<l8{tE(+[m?avdZon{٭T5Xr/6Xhƹ.{-UPI;v$agC _p-Gv ?v%(7<XgPi|>usFKFi1H(2"vHau+ŗxm_;3[E&vr#_n+lݞ#NCͮ]IyJ̵ҿ"`B⹤BTT%9G79v$h˩,k'o'-yDx<
-1[ۃGNF35+FtJ 5LQFЗ)U%b˕\Jqd6ZnE{ӣ^K!z¦'44jwMbp}o_x¡a~NDc'dRv*K#`_iai]/έU,^Ǘ7O ⶬY69,UUjMb6gު/PnTED7	+8kXT<x]!
E؄-	&t]
Ӣ߾IbkR_qtqO$<6	ޤ̓%mdjPރ">TWo}v}FĦKfߢM#B$wa7XID֟;]"k>_:zi>I+OW8Zjαa=A\*3k#U{"Z5nˮ>.w_uJ!˔F}r]#5h͋Wivx=Ǥ^^m׽?slb	x;xq>lY>FfY&+祖%祖ed'$e(m¤ _㣐YSP\X:Yt3bNRl*	 q1x[ƸqgݚsL'{8
U|ذ䈊DT Ex[ƸqȜgٴTA4{DT #zrx[Ƹqȼ.>	E,s>p;8?1 lx[ƸqH1ҢZ͌g^ukc* 4x[ƸqҚWi=Yʏ:2y<1 ,fx[ĸqBJLDSW0|V}b6 Bsxqǖ=ښhH2Y1Adb; vPxR jT%+%xԒԤԼx⒢"Z4:x&h_^jr	iv楐9'84-.ȯ$M[QjcNR-W, |yxƴI(KsS=&JN՛أ3Zu&G3J Fo2xi<cDщt`$Fœ ujmxʹ+ pjHxiBcp3 g$cƒbxqSe׹j<UP; 
@x lzMwd 呀0jox Xy8[NV1Oxq?Vdv)|ݹz; (xqȷ]V.nNCw"3~-xq=:~]Ij۽@K 0'xq'M;k38LY 2Oxee!"{͛X%X7X=1G 2Q|xee!r,Y2鯗Ui+ )xee!tVh~\4|MlП31G Vxee!rabgw%w>Y'tfGNQ xee!!ū<,gyE K^axee!UWhqkmδo>뽕'LQ CZxee!bSЯ?·?RxVuؚ9 Wx[ĸqHq3ߋ;OyʹZ xeeP),Bdg=7 -/x3 lG r z?r͇hԇ0uC"DxqBH|7}5t5~^~ѻHÉ ҧ*xqCr3/cvj&!"3f-x3 lFT@[@p{:|L@abyn.}rUW$ZIAx3 l=`#,?LGAYjPv1-"9]Axqm'Sd܏8
<WǞ *
'x  SJR~ߚ,ף%|)xqifOl/wdbMf?@xʸqB:{g!i9"߅؅N  ??Ix6 7FҀM3C\(鸿jWKWzVD|I͙__}8 xʸqBI/{b͕\ 8i:x8!qd% XrePx= tx s;S[[E2x;xq%,z[8_qjӏ>e \Jx;xqȭ&KD2 1!wx;xqHNaI"wX>iO Li-x;X:Q`b+ qx[Ƹqs۟w.l^.#%Szx!xIx//> (x!Wu+eu}O~Y1 Z-x)8W6wDƕ ~x[ƸqY)2/|%wc* 9x3 >>'FK7<\+MR?Uyѹ-/b4H/6$Dx3 >oaKKO PR?\^d*xGt>Gkx3 >mA}3%F}R?<ar<|pg_,Vx3 iwhGhv=E-Ƽm}#;z$ݪgDx[˸qL7>j7}bA3 dx)x[˸qL)eRO/I	 2*x i:6yԍ}0ڳWx[˸qBq7*֠v-gsZ ܞ7-x[˸qLz1ٱN9,krFJ* 
'x q/j?_c)x iu;°ųiRk4}0t,x[˸qLҏ&6&jzdY7 <fex8  Zxxθqζy{vnĘh jVxxq;W\ZӒa !CxxqҪ5'd{lڿ'3 J>-x, $100644 BUILD.gn ߷^,ʸO֓x)$|ZcxS]o@|X(}4*$X$Q^õ{wcEoMHH? fvvvp8+WkQ?`%r.\gt"4P50g}m.\\
8AZXJ
4Ph$!)G")gڗܬ>FC.#:ޒm"0CT˶ژeYXm'Mv/dLޓMѕHQkP^Vr2%YMY	R[)$HkTpꂖ)B+sm_f'imxAΆtȍWag	[8f. %F}>Wvml0@ܱƒ1	h4*
a%P	rTvV&7G沍\9	!	̆z痡y2ZS .p/F"JD[8;G-AN0URuk?d-+V!] ;[hcڭ0,96	%azc܄h]"2piIXt؇X^oZ6|y;-~_F4?*퓩-):uA?ak,<֟G"5-)48x`_%0ތp[2l*
};3mW&^y:"x3gC:>fsFǘ'# h(x NaM},x[˸qLym_VM9)n#|bž\ ExVOGxr.rK\C˪H,$Zͨvg6EG%@T&iZH.TJBc]/}CCC-}yC>m<^#V'ea9=O,F,Mǯx'W˨m`"t>HѰ=`<F0eP&rS'jnO;&,,_|*g`\sa/8q,'*'|^ilGpI&-0.ڣ.6\i (] TSVs	q[SfWy]smP]Z1^ ;@45TE͊$ה	V/&aơ8VR&>B:|@1Ԇt\¤M"T</!:R[jV#Po!4eBU ɤӔk<zz4ʧRLD0]smc"[;RR~0*X]k7;ۙ`ol;owD>񗟅gֺ=_m+<M|W&I_3/ۇ?3΋GC	~[$8n7y	kEt	sYpnx'Iٯt?iҊ"%79fNLPdgBM9O6:G806R.&exy$uSY81U)W-uI	bnˠՄt"IW[FJRBr@!_Ԍ4HRjpQxo>=3lma5ueZ_n/K
ow=#+gK@펚]=d!X\ ƌⰪ"m_ܐ~w8Z[ٳ <|RrOYF	q_^0M`CN2x)k!ίo:ow{Kx>C季:+MA?XK%yΜu7܎'؝3Y8!+Wa:x}k<_N9m@-yeINpԜ%-_VC gFq~ $JgP&9ƓS1 C,oqn6d-N:#wͿgmMy6i4Jc9vJ7\ qDex*~V|';kj^q~fdqP>0AR +x*H|CTIũyEYXZ6 N
/*x[$\|fԼĒ̲?W |Px[$>Q|p_PrJjZf^t,yicX8`* zl7x(+us= @xV[oF~8r@U($Z)T@jec3qgqj{Nb"swng0SQtoa0;O?U(`#pkw$c(eaZ0N_f6BI3[!U	9;TJ!$"CG!v_iAB,#kF0띑{-&APU՘dJA6]/#"\BS#p#@i`FYVZX!!؊i$XŮb=T.&!\t7wNWb^ar17rA.p1R(>'ƭ{2rNyɴd)BPKJ
Թ0ń\XfkɫƞG?v@Roѽ[o=Z-h
6QefE`A(,JyVe1𝘳BDW@!.X9ҢN	OI\0?ݿx<+C8W2j4Y5mmH}UH:rNMKo80AiEfkdtu>=}<0,Ot/{<?י5'%Rɍ~7h˲'pK=JZYVѩYp{e8nMxswU_ϙ=Rp\N!"Ojal|/.~UZ]eEhf8;T,P7X]bá^OY'Iq _Dt[Qĵ2&:UƸ+Ӯ[JMS_kֵۙxc3c^ǀ;Hm.7uGOɲ5*ԟd"S^?5VӮOoʅлN8{譥*mQy0ozS[cQ0mPF'?$#CxJ0a/=(x% )>^֫'/H̶6IJѾOGQB|3y?|4eZed28D
-^nVu]穴Г	M껏!T6[~⮫TjIYFO'hEk+l1fL,=Y@f~tF#<1[@4g38m39o,³cKvOD)ֲV\
/UKL2h7Sm-m,|26גw`B%|P;x{KDY9(3=DAYSh9&ҜԔɏ<KRK2)EiEEy%Eiɩٙ%`ĂLTrNiJ:UϜy# L'x]]s8}_rխM|UlyuWgw*JhU#$Ivk$&E p n}tQ汿,;g~6	o'(I ~4LHYIL˺鵻ˮ=I0'q4ᔽΓ|i?yſsabgݓŬN;'0x] G E|RS?G~ח^]_hNLx>SƼ_+*IB2BGt$L
[:e+?펭Uu $VV/ίEj=_A4MRYRf~|%->%~-c8	%},5|b3v2w$kN`MNk˘֤nZ
=b2Q, :Rۼ=`k>5́ࢼ*Mw+@8x}1H*%h+/8Q0&>/('Dz1p|dٚ6@i.8}vťГcх.,$	ı%wu++w]Ұ|]Gkˌ6+z##EfY4BP@<RSwc#ܢBC)i J."-䴀{<ޝē:ڞwtr(+L3Zx(..D<)C{~U~:>l&޽R-Oگyo]^IKd'"%Q'SQ$YGJZ"
K\*u
JlwaXfɍȶSӦJ4t)M*mLFabh|B1*M3<;*PoZא@ز)b wRC!J,q?!d`)+<K|ag+z/ÐlM+0@es&yWDoΙ0BU]xaDT!*eh#$0H| >YM_"PtΙ*r *97(4eLߚWZ$;!/O;b跴HJ;dX){$L@~Y4d_dFI:-/*4I8N0x;*9.4I J?y(M
I(AKA>ؗ
5'cIGAH]L]#ׅGQ1( :}2bOj/'_Wp.ۄ۩Ď)?n99,O.	Q٦p)@rk^=CbaeB:d|r=LŖa7t [X J%3؍$bGū$74>mZc]&+MrQK.8Ltyޜ剾)YOJ}r5pCrJ,%?2UIEˮ3B?oPI"z6E" :fѐˑm`Evr{_|YL(t̥<96#*{p
3w%Gd=Y_Xg;: c+th?EOV:[#/#@OUgxx<1% h:[-cZe^Y 'Zj(D)4Q@!^+#>Ek Pr.Q%ت`=Kw;K׆MrT-i̱DuYS-c$q٤)	
P6劂lR(zp/zr4w#rl~HM_2NpJ>ɾX"&jO5_Y!`TcbRv#@cRQ5Oe[)	ـ!₄I *B^,0ρ!Eѓ7d' OOnYMZ3kVc^ޭ:Bp,>UĘuÿAN9r7DpY7?d]svj%=f>W[l	ͷ]ΩY E	xM/[{CIX[B1l{Uļ(شeBJ'th#+0#%<Oj$|t-2%M!&R:ȇ4},6/\\r9{4y㒃l2۱Y"s7ɲ١!|Y'4K"k3Da Ԛl}ᶻ4,r?w۽+Pě˲mqxdLF+G@}ܷUl83.xg^W'S`A>BOJk {2|,kp"7!Gxd$<ƈbK<i_\T;#~FCob$Z2Ne$+B1Z*W$DQ9P!`1PI@vB@nM^#Z?%7&i8a+k	`>$iS"NbR
6>}	}
ȷ$%͓!ݪq7}Ki'D|B|.UG}fe0{&޵x
UʹWi?&?3-kŕU~nQtp|eVLKbe5.5\"埐h -Ů1^ՒӹJ'm!y!4M8Lm61Gf
\@HEkcBoKX1{vz-͞}m	9=0f/2%W\hm'fk$w$s5o⒊m6!G`5"9$w<H"V֒;;\aș	^DkRBoKKP1{vz-Y͞wgVGJ|[!S+n֙(N|i&(jghw]}$7exA{Qp]3G$n	9r<QT݉tv_ᔍ2\nsL\>ƒniMmCY}&T_]^9Ԥ!<|w#yjĴ.JHDntsLg'G2Hs$oKR-Nqr-*$ہBׅ(.c)$Ho:'Ey_@е4gLͻ	6墢&Z֐[weSԛ~;Uc.L^^MGbJ?C1,)0cu2Ƹ\vDC	9:%cJbgf[qL1!ЄkZU-=+q5, WŶ.MO)G9 ]Mm޽:A90,f'6+ $\|(Y$l# Ǣa BQoV@+<z$Bq#5qDK.c^zUg3`4OBHMzH@k=@^d 	-y=Uo);_ۋ&qBJ ,%Gbk?Pԃז`佻kbQ+ni[bC%{8Bu-i.}ÒvN\jkDs9HUbWz>IGSAn%'UEx⌎w`	Zܒf\w[2Sqb3TQe5""O:!إ~;dgOGD?d D:"?]vu'$iM_d?T.b-͇~h_H6IX6Ge`5"9$w<H"ɞ/	ah![Z>F+N>K/.A魮sfrY؜*mJc[i9S!Yof	WU~29S~}<fPPf';O7c-y; ;Hweս tϷn̓ǂ4۶	MeNW <yǈ|k?V ߒ콘wj1Es_8{8r=~'7 8+7M9(B5j[ A}K'dv`LK;NZrg)H'AE.b!O7!%~;Uc.L^^	Ӏlf׹u__~. qpnP{NFc`g_;G>?dV)rλ7_:=k_f)NtѢW|4r݁-Se0Z*JM)02 (9-ڬ"gKQj5Anp2'kHL`gGoOn|^usm3*ќQd
A+YGBa`U4d߯:3%L0&prŋ{]<
E8a>fO,pESģhxc0CA;П҄Boݛ's^zw<yxY8}1_81Wptt,I(z;mSCi,5{~s&1 `5гx9!ę1z2]%Ռ5e"#ѧgS)٪]VyH
&>/h|0N]G0L5$>&<gWQk-7<ܺckh}kk=ũ>zr]|F@Kȕa-J[-űĵqrjRocÂG7>[ #S!sn(VB>^jOBʦԶV	?l:X{rs~٭ROQ`C%v]ـ`̅qadcwď<Ia9,%@@q_>/h惞
S۲0qNYK'JѰ6Cyח++f4jȺX{[L)ԁ7	'QgcE`4MŚ[8AxM+dEu݉nӌs쭲8-c^=IQx{IwŪ3O8HKbgpRX҉`%uG曷YNǨm=^ȿ92vN./.{eSƿO]	P `N.7rםFaϭ8I1؎ L맑#E
!NhDDy-ŅbdU/~m.m/_8LmĶsna !dG15GF^0=b3ALd(t/7ol	+Zk8,2I^2z3^%!?Ļ܏bBj8\HHwIsuo9|uq҅⪊rq2jdGW>gXs|.";Zr61q d{/%#y9s,w٩A:?#d(̀RS>:tHKd/@dY7g"/=9g$'^07Kϑ߬幌x*ʒq}q%4okqZ֓J
b`u''K+|$]Ygxa'V¥pMXDg	сJz	NoU@fy±Zᓄ#It!TTDőbP-AJM#*&ʋuw].UNBX	[PZL`Fy,ܒvѽt]r/yr/09:
ô;9M+o3sgZ]]AZbPyIS{;;ⶰMK-1J,cWxWگb=QRe9r4S#vn*M`ƵsY=)H#,kCۄqh:b	ر~4LHYN>tNT	-2GbDaP #-9YݰgO;=R1|ǒi)͢);N`<_#V
Dp<QZ^S^ӭjiڻ+!)	XbBW8ƣ_~9mf%0G@ 80p{+ϒ(:&sq,t\eᐒ1ŷd0"6r}ܤ+qQ\RZC:."+7|,A> :CB5>1;ȢJN1iB7oF-7пzQĪUbU~
aU{:ntbwȚ`3fPvt#Mp`Ż*xOW7_Qe}xWmlSU)ʾK}qlVFu;"T@qn+[qk/	l&{C?԰,f&~d$:11=ۻk
y<{퇮N4-.W.)(KASw}n
𻼾->l7؇=l-No':Dn	wx4eXqLZy_']
=|?`/w-/o_'>Mf^i+mmOp/x4y:z ]MEK/m@2uuvi{/]-Gx^^*b=$/c-kēoZ89/.y:@,Z`kMEQ0dAͺݚpy.%^UUrT:1)D6puלNrƅ,~Զ*2Lc+5%fL|l3'IK()4O8^ZK9j8'>ѷ?Oe<ݬgcz.rN_9+Aτ0qq΀b-|>EY)e6jIKzُt,
b2Gv:A!)@(T?hLCn%ZF6J8~1>;v?Pn$'|_=ьL1qbF9v,sR&hQxh],B.IIL}lMM|2m$Hѻ|m6i[Q4ZD7N~mPI:jbvkj =G8*Zkr1;3`qiGl0\lc&EFBNpg?XtcsByC`"p)^:N֙_޴HB:?s٪gLcG-J]
=gT֜"p8_}gRc6ՌC{6ZҦEdz`B_;߫Bkli5֫46k9ڱw|v_3i胟.!GhNh#Jj
3yx8:-w<oQT~xobkz;_ErT*3XM\pJHy
IۖF4њ$5.8k'Q0?uNei22T@rQ%BzdRNܔ!IAtBp"a-nSG	)m+A-r2ד\աVBtEI@~r
 t+cU? 	_G\Tx#l):"3G0qqI&)IR	LQId{2UQ5E4AUj|,Mnɻ('&5X20~鈔3"S6ȢfcL! 7[pd64XȐߎ<崏֠,BYmFݕp<L톃,hHEDFȑEVKb#d`~ҫ3s9O!n;:,yue!whoM59GNz=DN8>ZP!]u<4S^GE_aEb=ݟ⨦T={]S!זF{zũUU2z7dy&ü"ǷV.-IgKNORSc'̢FOҡ8鵋Z>1Ik$/eiEsjx[˸qBmNҽztS.G ڔ-x ZƦ%Cfk&ᕦd)x[˸qBȥX۳Vlr"d~!Gê X*x W{&ǀWа6)x[˸qLIa+۔O)׼1!UheY !*xkd\Ȩ`b 
+ؓ&0\WR>uSh)r@x6   /k+aQOfpvB8-	rxG+	yH떑\[Z)sx3 v:$=/`[c֦i=c,~\:|Ff2x.29I%'UowQ=9 mx8qȾ}VKU
RNVb ax{q#[q;`e^>3x{qHNaI"wX>il ax -9MSBrk󢩶Aeʝ/x[ƸqȽ}g/ܶkDoSցİx3{w)+^_tҧ۟vbYMW\WRWP_\_ZS,lZ۞~>%(3/*tRwO+X=au]Y: zg֥@W>]?|{r S%@
x{qȭ&KD ָ8x! 7t=퐥ھK %xUMo6W ^v#Hl6'F68F;h/8o|zpւ3bzctaa8mx`nҾEFB%S`6%t4|F]r%a h7vRT9ہTq	DL-7aq2FpF
A-6vgNp_@r0S?BGR`YopV$U-(llFY[*3[Ҥ4Ǖ9ًD|@YcڣW{[+x-#MC0f0'=@BH&ĺ!⁄LՒB늭	@V$<w&.hj,̂{2Jb12n[oo:#ϻeX__`7f-Q.r}wn:qg)1P`k6d9ԤM_{>c2~D0zw>{B2ULR?ltPY%̹C=qm*&;̝ĚS7kģ\@ʺ&^lL(x29ƚg/l:*uge#"[DV)=R[h*-:_^Do)hi/=zn/bktatEdǚiUиg*Λ h2Aîfr7RѼ2ΔQd.ͯ	<}MAiUNzzY͂eNfب~́
͟(	uErwkNW\])V,NP؅mevh\Ӕփg2D4%K8OѥB숓bN#4f	y[~ =WxUo0~81i
(tDjh>!j3);I
%;v0dAZ;`epNGѡcå;-\QS	:Џ|ņ[*zC3_jNĳH`I,XD>y48xbGpLb:L()C5Aw1-@4o|BOjꐔoGȠe{cw917<J&QH<2GY@IqMy%f<A^IϔlZ
(E#}	g}qmrLG)3tarܙ:1]@|_yS,L1i@(zl<ƃH%GESd4U!ADl4ѩiCIm41EAb"ɲ6a^7S)=IL.4LF*4+Ge&q7LjlycG*1C)2ai~%C۲nP#~܊_KKvK9%U`TS`$}?T/iR'Fl]{*BajK[ej$
/2X'>^Gv~_Ӻ(#Z\Skׇ(^Hu}=Q%:Vֱʧpy6ǽ[pW*˨I`W99nVf6	7jSUU/ͅ&7KqwYU ON4%-hw{ "M*p,yMAh/ܡs;Yɸj}KI~OIxTMn@)hR%mQڂ"A	m!Q-T#23<ch1X7pK8c;&͏+~<oe|>e:]z*V9mX6u~؉}lMQf;mGl|f-PAZ]*e̷4A6d]4}VEuC8PR&j&>r^
84mM'%EI=˴Y$C.2yld A֖$[Zҧ9\ʥ.w~l)0CUPQg%/_},f(sWirU0?F2#GvJSMzoI1._XhROS6=cU@XKC4ۼq{f{	WQuZЁm;A
[B&QwlMxBv 4.r-RהʘwkKrj>ttUdNa:$8+C=?
%{zKٙ6[FB1f'G7	;x/umKRs2츔3sJSR+KRs2s2K*2PeRy) q.v<T"-"Mj. (J-)-SH,5R̚ q4岆xUQo0~Wܘ4AǦ>mRAEM{LrdӔM;P=;_~]p|+*`E0.X.GHzB0B(A'N"olRLwvgh(Yi(W)Ekl	
_r,;jl9tZ64AVu/˲vz{\
Mk\܈.)XN" )+!VNgFs)beʖdM̕|Q裒RM 	h;>x~.mCƳ :39x)>3WQ˥ɀdrSLG<*I*ǈ/yDUV G<"IkwGy@V%QZ Z,罤}b̙dcnbSbkMЁvjjrFيH*uiC/l5n5eÓkn^Mh\ML3veIæxˇL&6Πb1-PӸ7KW~8g`7Fr!	Z	F,zJw,߽vGJ#?Mϲ<W=CO%]%Ksd.p{QESG\u*]u ?٪n:A0ǌE{"Du%QL<+\<WU
֣WW0nf79J=_jC9*@)Qwݢpxi 40000 egl F^soF}>㸀4)搌GLES ҇z"f+5ë[ˑ)#vulkan-headers G	:fo*Aj(zx mzoa2 A̷<gxtyv_+F},.~TWDxc^EnÂg'ytK-)z=W; WG_W=ԼҢTE;a#zk^8եPy%%z|e3jx;μy0F Ox! ,O=.W..L%Y2x[ĸqBj'4M)ԟZU 35xkala+sMm%7OW;=Kx[ƸqƉ'5	1E㉎ :OMxe q&}+08lR)(Bf#`@KfQv;100644 relational_store.h ,%-;\xB@Ff9#(Ax!u8/Iiu0 !LxR jT%+%xxǔ"ϼ|Z܊RS]RKsJjb#ZxUM6WS[NWF^X9	4HBRA{ghm-o̛yoѠhppxzw8ee{ӎA24
Y-Rk-CJ`'qTJ;h,Ri!%>X;
R]ե+|6񩍡N5#GMO\ht8Fӎ2o	s{Qh-HCn j-!-3H6H'nV rLZgq-{FHwiBACYC1ܭ7q^ϢMa*Zp̢O{-0ʃO
fBOleJ]#v;G"T2 ftD^Jd!m$Zn%0]I*ko44܊,szgtSCn_[nFR2#M.sep6I'JaʸYCThPTxdN&~o=*Az*j
pD2(+GuXI[YJw溪EP5?kpxEֲ!?SlxZ$I벱UCʝk
U&ssN$UdSTS0ZQAÿ(Q!ח1Y4{Ҳ7{uu1T&u8A vgkz;PߔR}-izJn8_X'_aɤS2V&[4!؟'dyy9^?x4F81=SzTRNW{j+GnHȽU=CMuFF+iؾ&VwI{Q$i!XTC8sVgyX<lHCxN	AG/"{)/B*P?(Bٵow+ٷ*<h] *^:jxTMoH+J^i#men:L6+pf4'ԁ2n	]xvo53li/4U^װr
U}2-JÃL<R6G(4*CGjcj#+%0Rʖ8V"hri`'|K&
Ҫ)o%>CƗFB; Z4=Q}Xm;yE#1XaƜ3Ϫ@c@k#5rQ3T0BPiFQe9ZTLVhe2iH˗I62O,P0b	A<E>ۇ>{Qaz`G/g Y0o0Mi]S25r'SMZDP.&2,%	BgsFEh2 LRVJ%0fR&<Y
ŜHʓVQ-iD]G<l⛛驯sLl8Rчp~m#yYt/4\+C3&ݤqqBWl&7ȦߎcP#-{?JڏՈ⪂àe6Т:6Ù2ނj&߾q#sBO.>J7N.KSd;3t̠}i:Ǐ//mzw{X$q,YI{6th5aYm/y5jHQ	ۻٙCay*㙓6?V.]ƏS&B/f>1`;n3Ҷ4w\ߝ S"hx[ĸqBHH7sUnȬaֿfQ f`xuk&ګ|xRӉӣϪvߟ& ix, ,api_parser -qQʹg%HxuIai?_Ƿc=p][&9-'1NZ?_3ivw3<)rh勜iH2cSU:eWU|xX P(NM.-,dȮ>X1GOnURXTRZP;B!9ԇ(,J/ *d+ed.Ʒd^I-j v]#x] 9:sbP-έ3n100644 README.md \"A`s)rdg866peZ -fk&+nxu؈NSHP9= axB2AS#6/֏gHh100644 README.OpenSource togwy[x]us9-hj	'ԏ)Pxmi)EH i3v"h,ƇAbR~40000 docs >,ص7&s.5[cQ7h	6=U+_sO54SI;-WG\\%/e.8X%"40000 startup pr&YjڊҜ40000 third_party [+ETĠ)G !l|xuC# $x{u1J_$/|ޫ xuC+ȡt~3(ؾH03oɘ ؁Ax! 	$BfYl0xuC# $Fx 2䲪%(k~(B7xqFjsxzUD1D"7-άᾩ+'5rFg9ie&3~<5U/7Piou'$Jw?sy^L"%WuzwE5ۼEr/2lxúuCZxF  oDxe8ɵ'3 A

5xD/ؕ]:t\wtxJC*rs=ٴ6q4?WNhiU!mo[\80Tk^n
K݌Of-\~\Е6aa6뇧!e,`9	 
@Fx{ºQ"?\N}O]ǌ\xx{2uAj^p~iQr*ҒnOQ^)n{tE- K	/x{ʲUD/ؕ]:t\wtx'%2,-ɟ"GW^+5$U/5O/7aΉL'&3Y]4Tu@E|7W2(׺͎n, (:VIx{reHBOdNokb>w# &sx{rer|K3ۖ-Wj PH*KIMKLO-bsfL1YW`UƫaVթSc&sL'$b@IFfQJ|AbQI%ÏMѮ+SJow'@i Ip3x;reB͚cO*n^9%q&@TZt\G?u?b0F+1g},rA֭W@(,J/H,*dϓssK{es>i ;ex;; 34xB t2b>qD_.yQi100644 ._type.h  eb^aZ
<nB;3I<x6 b,kXzhn~Ba޴v Om8uⶋ1ޮ(oxXo6_qP e2sX`q 
(Dj$wԇ%7]fM[<H 2[)tpp2dw҄} . 4!!S`fUtSKwбnV2@Hfkx-)pTY@nfJuR!C 8kfd'X,p/U%%.G"7"aZb\a
HP	YT@bpHBqE-# kxdamL0`:vQnWW|
+NgdSf2St4pS6ds3)@Tʵ-FBԒb
ʃ2''gRcV$QPybxBN<2+)'V2:.%vvo dS3>:_癵[b>BbfWR?0F{DsL&?Y/MwPe(EG|ǂΛZ~q8NގVV V&yȬοIB{v=$M\|+UjN^͔=FKgD-1bEӠQBV6{@ê6ջ%I^Xd"mp2%F^VH(ѰYL׏1]ٺӦ`Xį)mŦMxJ~~2WrC;y}0?"jqvOH;I|&#ʙ/K*(x]-}~e{#dA#!".)A"}gR~+N,[4h|hNH8ʊi=-u,jUSʮlQUtTtHpSzQͨҪ^-ٺ2MV	~5j֌'2>AT" ,7U'(MK(zK}a3uj?ڨ>P뤝@,EM]1{x>-AswPxo/)32 "	lW}) ZN<#JXzW+Oփr<k6e:3XoS7xfǷ#G\^|hm=?<d{#7K]4f(x8q| ;xRK1WX*xՂhAŪ!q!>cnRu1Jȁ3L&5~n'"b*t"(ς(Mp:={+ȡһ:;˭.AMH bo '"D,S|N@5ii42yؑ@*鞣z>^/cx̦D'6):Ŗ6roFMJ%uuu+TsȘX"DݜrBU_7zU)@uid`ɧiAwi%kv0b[G\{ޔ>憺oO[.'=}p$ ەA zxZ~kQvp][Y.Ǡ0QEFPǑZta'(d#tm˶9=+c'D7cx]MY!3$(-1958%;>K\R2J2x'*OK秕'*8%gd&NTWW\4SP ^.#8BTTSL&̤R..lTԂ̒Juss3K*KSRy'ciU[j"g\00Nv` L@<;cL\ ƃ\RxSYOQ~_q_lm\|3&/H$!$h
#
m1Dc2e)-]	!Udt
?L;Lt2,9w|PpOkBf46a=eE)J=(R^D	T"Qo]xzWCNVњF2+@Z1z2)pT&Jsxki	7a]CRSix%SdPXj %VZ ǪѢs/HVnP4"<|@az3rXn٪v;d?yBA
I:x432KߤC }gN#uLx"	wwlыW"PBFbWE	ƣљ-K_8JQ}YgMmxAu("TLM*<a<F JH%I9kll17	pO'0a0*Q1e}[u)4=vuN%2H)V>̂`RE-O6`\DKr'-X_gH4+sャVS|6V[ip.
Hz*i(1c|{-b>[ŤXSpܪӢg(	O{P;_;J}p̘6hݮ!)U`ӺemoxY[o~70GJWKYqS[(Dy
#rzfFP41 -IQcFI+O=g.K@ݙ9;gsQͽ~JL*.L"Yw-sy\SKKGw{,ċdeyR!"($Wu<qUx)"K$FNcr#!UNVe7,ᤌDAtD2I\X`UNPļĈvs	%xi60y$d٪quf/]RF%v rJDHB~(D]=9I	WZN<衂4#FykjNλ+[wȻ;KmM.lm^l62|y1$^. ѷ,l36dWX`*g11ؘue+[Fr&\N+8I)sMy{FB3vp_.Ya]޵|@$[9ˮPوldH&;B!ỆL=:SV;,A1U!SF.֧<%وYZ0-}!)1t0 Q	d[ WhtɏJCr
pT2
	|6"6b#gemM=$,;ԬOn\Ly]I
Bb@RH&j>H"KGf:T=	[46
@T;Hzfկ4"8cC7X)$}JP>:k]0	VVLH{6@=q`MKܴ2ځ`7NZP<Aw@r!Wj&+$ZeIET9T?jW5"p2-=|u;N
J-~lV\{zLvmL2xpQs"f- JyҶ
Y{Q$2TB;CP⺧n	"	IW"N5"Hiӽ
ѼF7~vFj(kյ8oSP\\3/Ac݄Fkv:<4 BYOgy6wLE v<pKsT2{ž%9Z\9Bi	@tPTT+DQDBi0|pzp[s4tcGkQe3U* :<rTӃԙgcNP!|Na0s&Dӕl_ڸNan'cF8;EIwR1sb-٤,7=$
%oj;SMX L;ӤT,!׮z1טkfϚ^pǰ\<l.tx}*4FTz,dihaL9L}}TI&d)vCs#t]GBay Mm"Y(pF`?'2Vv.v,J
e!@)U\%]@LMUN{gJH;M\0Llǥ/>Zfpt3[Ujgc<({7FW47϶qSc]Itg^TnT>~:{5k}zQMq%+[9a̗T+3eѪh//J`b6_Onվ(Ͼ3~oo=?x<צ6  5ACi\Wxey\ylBsMA2 9.L~c/~}?yGMdFWk}GnxV'vw<x]|1 Qyg{KyZt!}pH*]1ٷ~߼L֪1PЯH~C	U('/FE)hL03慪aՇ?~>~֣O~A*<ǟߟ|sog?~í;_0:Oӿ`Ra1˿xH{Lq 2=/;ieqDN(~?_D_:XMI4}YW}MX
xwGVݞَ߾ډBBkF!ͷ(L1Gꮤ<`Qm
*/:@KWPVeSsXM1+,vY>M3nr{MLr6g%>tC3;:_!qdh<y&uWAșhDd:ğ(1L=F	)РojIIyAP#1ҡ}٫h s2CyvCc\Zd1 INy",Kڛ>zK$aL"󹩼%GKkVK*/)q
aQos*8xVoTEO(%[xAGSURAش+4"9C9̙-{U4D	^1>!jo>h|Ķf\=wﻜY矶*$F'*y,,rH ?YnC	rqv{q	Gn裀8.aF8򀅉#,s/?:TBt54W"c4VkmycW`8T\5'^q~VC+&vM,fBI,ҝ!;]ہ&JШ&8F>C!p`,x <4`SeOg<fH=4t!Dwwa|JvdӜMd <ԕY{pxaoíSUX|{;ЁJI@t08$T5FHY@d2cU*$,Uj FUnzP.Vxpү J8]ةh]Jfwuwhαؽ ?ۀ;U_6+/잞ۃ[(rE%g[-}5͙cE51y l*&`3*¶]Q1/I|nJB5	.2.\J0
][vg#'0{rVVkߵ#im$<)4ƂA=PvJN9qsj' A:bIyhPA3&}y}~DMԭշw2=pN,IU*#,A-j 5ݖ݉Mfus/ff~ixp;-6s[@L5n,=jXb^"D$]x+-$=#>vG@t1g]gSG -aL]H@MGۜu.ǨP`_AwV>A)]Lˁ=kƓH"eJ$ލC^݌rןYkN1U%V6
%E/KqbrFv핳g\\9wOʷ/Z\^<|zċ_x_;;`ghCrgIFWP LfKC5QOM࿎*^֓
oJm˧MLkEOϛ_{1xiU|_r@eݫ4"	]Znrr.	"[xՕMkAiklMD&-9!-(AddvfM$qE"~z[M>$}"zfg=3Χ[?
V'4cOњO/z7xt;%^Xr= B*}[}ԱejDM;zˏז7ھ576U\=VHx2i/fﬂnY:S>w"d{\)_6Ƃ+ޮ4pPj9#a>\CT׸b!wkRJmKa;Y?Th<=HaFvTu
?ۤ\=vcts,<ݏ_bZu7,46DI7lVY3fNl_ L "J2O`Aa8##-w)L^ONcbwdX\z'uzdE*#<\9f|jxlRoH*Ǭ3AbBV{s@%b\cs&LRM=7HGİaa, M]a.6>#x]͛ڨ"[ǻa}>O%#4'fTAS)cgˉ%[l,6_KveKSڛ>lvHafM*kn x]ŕ\UM4#pb;wZ[iQTjʹgu?\R98$w$H K*@YO-Hc|[`I==}>]!;,.3<K\(l7׍o}Y~?$ddpAH6m<q(BfȳY@dO-39Y6ϐSX_*~*qixB(d@Fخ|IG,qUbBfL٘hI
wPǇ_l]Be
^uWJ^gRAaiZ5*O$`/D< [}B} g@vhNp	/Pe,dP&PA	
CBATnTŘεjJ}Iʵf -ZUz~rYjmHX]?@9 ,G2;Qd m>x[ ׉h @4!t0혒].Tͨ&$WMl}ufIhE;IgzAʑ%i
	o+chiBBnBwKCͽ>ݍ<cIgFDt"n3 R6VȖ oE%d\L
S[:`Q $s/Um	[xI-b!6Yųzpu&BCrNcwP:4juo9%o8`U#6;d Xe$Y.hh^\,k*ģ.[!udu$Ԓ	m	8ȑo4h@pO1ḆƝPSsP:QHH@C$Z]6/4㈆bTO$lWft1[2_ ,Xpb|)*8yBbjcHڣMsP=uYӎib(C5lxd,ĎAU+S&P,sڀV0-ш)E`ZYMSUǷ ""Y=ǞL"VO$ءN>4p~BqP(('PVм.bW!9Bcc_[
n.`BQ0RO `^oB,6fz5~Ĭ$%9\Ze&Dpj6bCt#T4$1Mg9G=rx`>X]&>h:SLI b8}҅Uφc=N8T$[İPJFpn$Go8%Čq2m")<^ A!Ļ*@ nލ["Ҙdʥniu	<P0ĉ)'ȀElA-c?)ĀXE'ЛC*fҐK'6"S Q}r#)GY{O$2;
o'@׮-DB`>'<f.O0Ph*nc@02z7뙫I$'ezNT0Ty%%U1wBݍ)n3!vТw<ÜqD
hG|tï_u<$_n<$|pu>^<_TfQöJ8cgC_=o_?5{:^7䯟ܩ6VfdM+^6+0#x ]R4=0H<#buu;~&K5l:LXaa2XD80,="#tm*5ԚJ+f};O$O+iG},*Lˈ^,0Zu(.jDav̓#Xn&1ECbs3F8	>[84Z:eOb={hы_tTZ5]acd)Koݰ\~5Wƭ=/jjx' |F(|6;:6.ws/ah>y 2,>D"ym鈼ce\[^iCc$`aPj_na=#ȅ 8>7b!`5.vY;rvnw<0GY`@r*DgˠK
=ch0r)0.[!mƫҲb:xo[5:ºŗKo0ͤ5YnD( ۺQ'#fH\ѥ҈hSIǧ07`Jq0|HVȳfrFL1f	HJ8Z$';N6&r;U󌩞IǐD!w@Gq]on+8J7ip0EpW;ؒ$'9B ̖ `n8y`%-w+;}B[34zChy$"ϙ	n1Q+0x4q"߾ѳzܖU˶s.+,y+GKJlFXq{p"?g ǓݬPlFzl^FE30iF9IfEllFQG{t!ˌr)g;Jz$Ļwez,}vP/on4m՝oso,Ġm\ZJ_~=nqSh8<ÍvE LPoL!94NԭG_Z2N'g[oGX&H2*->{w8}#Ii':b y|q-r<_4~	9x{uﳟ~HGQۻ!ܹ͗b]ēŐn-0ϗ
Xp)ᡟ/sBX]霭"!ܺ9g3Nwx{AE5]oPfs&*?X /sԑt)׾%0Zo7[w{ؽ^_WlB_LڡR}aG}x'Yއzߊ3+J㎼{65_QqX'76`pϏdއ}?WHlI@Ch]Sz8pkį'm!+'wDhT'V ,*J)PpK-UaT:F8P%ław*"d_dw!5y?h"bK8ܻN!8@D$`oeWx/Z+{W"k|q_jiTNC+na:·YcWy 8%ǈ ~p3/UO*~D=/ӖIҧeIIq`oGߺ>2͟;V+mm^Ѝ'=K}jbl/c}d@.dV6c@FWP`~!(Qpc`_{6c|IupdAz깅/xag(f>:YC[1.Rvfga0 ,fnBЈ,S(#Y??xo{wn#iy1ه28N	*x=Fo@PG#NmF5)n? nýO_˯ܿ!(Wy͡J7o;cZ	Lܑn}t#dI]Ŏe!KC?b)! |/Kf>>E8jrbJ(]K=InO3$K $=7Jܿӟ1ֈ%Ȝr |#y{oѽw P޿+[}ҫ~G?x{ɏ?wPgcIy2N 8AԨX3	=\7BI=6ٮUU#RG
iys"'oFAP\Lf:S6)ǈ%7<_fmU'Q_{e<ъm$$C 喈ntͯCԃ8*\9YB^Z"i;K'Db)Njh0Bǋ&ґ>F	$]u:6`;CGHTǜn ꄂu2V8f0frLٕv[0Z">3Ud$5yn{P䉳OF[4 ./#Z$>@:>3u$.<4-Qsg&aӰKNF AtV%D`d[0DbȒMnUUv=T'͊}]W};dMգ}{|I1.=<t%.ZY jdmƨ;Skܗksp$-|?ߍfӋCdcY>ad|9<76MVf)yjzx<@Xϑg-=z:aMIb[O4wy_.nfT><gWL=eԉ8Ҷ:P:M!}-E=jӑG	u̅u@#I"l{*iMjC+iCja\
dWqMUHuBW?uT]Qhb1iOz'NV¿M\I2J6o'D-	OX!K?E$I$`\;$6	>*U\-臩;I@ '| gz&!+Ҩ7*PdsLu6ȣT)Y6(W6Hyc rY4ȵj
٪\.oA:|<kkeuWF>STݨ6Uh֫Z0*IJIWr
٨/mT:*מ%jQ*"ܟ|Z@LVZ`5+f0@F\ߪ_%FZnVP>H(}bf^ڀUFXJm2P+݈ܽIy@&+.@VlTk U5]-+?z$-#->8cskYx_8'-}1!TDa<>уf`NCl.oQ'_Sp)
>d,:mOxHE=ؚiMK}G=KaU@TئuHKbQ aT@r"<\/A(Ozwj3` ԋ3g0Md肒.ԡ=1+smzߡ4Eа]JuSD3\):꣖zCT2s:K*'`M!P*hG[iL~ryAg=6۷"Iy UA$둺fBGMRȮJfa9|ZpMsb~_~]HUq5ʸpJ&O#:.+'OL'K *eÐڋ}Q/\	dY|R!x@cvI .4Ɏ,6̈;Yb+JG LHptp62E1dКӝ0[sy^|`dMv<ԥ9\N9L/ƸwƉqVfIqQ>V˃S&H.cy5l(,aB2u.qYVũ(?C:tÈ0M|Ce&)F'gT~UmLc4 -en<|"\Lr"!tA2$o=Y5#i!,n_8v@?<ASniyސ%ek/Q/_!'#x{y;FY|~W)+%*$秤*M~%2]AeQfzFB^bnRHFwFQ~^~{Q~ig^BAbIRbA?Hzq&C-"(\!-3'u2*'JtK&:wI,I/%͋dةgHfxPf!I))%#RdPBSN%}fL~+ W
Vov͎zĚB&m"J2V詆yěGMI0$sN 88mAc'Ol<+bPic̜Ԣb&`՗463)3'RGjBFjbJjBA>P 3T9jƁsBJjq¾f<E;@{6mltߪ{bzu;xó}'NeĤ̼ĢJp84 532ϋ4LW>q賞 ]lb.d5%l'm!1u
 2k8MPx}MkAIZ[EAҗDD< k1(
P&ݙug64I؛ B"/>/6@~R^y]>添]>W*7xc?x<:2;rӪ=]%OVZ7W-k×	
L_gK0+O?R,{>صRTf^Ih4__/N=myzC8gIh>񙻒,@Ā1N!M"bJ
BQ#
BG0ڐRAvCBV^Kn<\H(`R(,J 9)^OMCG4̧&=։FF5E(0	ql榪6UA~vKM]1lO+Beb-E?&&x\ٙjf𯆽Nh]m&w"g\(3Rg֟Ȧq	䬡bM`'$c2!ACb8bt&G;>)d/lqֻ}\׊#*y8kJżM7IQbs+Ԗ:f]HL?4ٙ?gC9[Ǉ`xn0z'֮+V`EXF%9Ͱ"=]dtx6"m"ɧXg GӃZKP/Ѐ/ozA؊Nx> q	 4#@F|,	S&PC$(㯷OeCɰIB;Um@)S9MPmΡxD_;cո%'g]U1yBmoc dT@td&yDB~ 9S5 :FZ!v[3xiN5`u-ɾ*8w*+%qe?mޯN|~^ٖeƦJy=6B-?:`rgz'EqQkՌ>ʾa%m&PxS&qGFjH1'߁՗<ԑ02.x	B3ZL>ʊ:$U93H.?,z0-+0]vc8żё@Z͸U/7^xuT]o0}.j^H}4iJXCTYĘ1mekm5{Ϲ>=`9hpZ/ b9,7,&oEG׋kP\qRTEsJPJESlO56q.Ūy~ǔ|:l;O*QRVwŸIpΊʱx)3jsA+ձ,R
%H*cԘmEnsNXes;EI~n'n#KP!`DZ|HRWc=NSj?M&o&#-V]1/v ^QD;p4M	hC4iu"0p54t6:2+զ2^	f~pްO)z-OJ.~t\,DRNhC:_\$|ixŶcd4:%J剓MQa~eXZ a^R
>d>6_%p[6;㍟fԾ]xj	v8hMCk=]bo]yt:ƕ7qöv &gN!{&\I\%x
ac8N2GJ~iI\~xSLKIMwwvRr3RD3Ӏ
9 ̕ZQZ䬤Pͥƅ_Y_ԝS`YRSRYZaUONԀ״  ZTSZ3 4 rHxWQo0~ϯ`KuHӌ%neSRPUEVͰ!ɪf}*>ߝϴ ah p5s+חk;By-fIswkgv44Nǹa__S7E!`6u0X\Fd
.Q
ZpIjnp)Ĉ2X5a6iBGOPxnlN*+=}$1Szs r#wp6h (0 XƜ+IeP<fPD羰D#!ːft̚-%*CWuuC="ڇiY4J5fLBAb-m<`2%7+/*[!_ۢ3H'uZ~<&S"d>Wh=PD[Id[$z	In|:C7r?䎞KYnj&gYȗU𼂻fE|zQPR=ЕA0p?Xx{P^
[ݱ5P@ٖFR#Tm2vkn#k0Y7bq`vήln.- [W0u ,2AꂐPzN@ @x@_/(s8n]@x&O|nZn8jPٯ|s`+KhRDR90WpNԗP*>86ds*	s-^w:xy&uAQkJOqVx[NOp %P.msJ5{溤ܹǣրY%Gɹиʡ](FBJ,`栯qD/?!B5H;2jCZǶUaՔl05>?Zkc6zp=rWWl+xm
0g1Yԡ*BťĐ6`)w7ifp9;X+#4/`/	`ǭk5|,
Lkyq7z{1hrΣFhZX_<5a4d	<ZǨӂ$"j܅$iLZU$T߫ߩ@aM3xm[K0+Bw1 
EXlӒdI)m6iE6Qp'yJGR/X=?R0IF!0f!^!0!F<LCX"$!zf̳bB[Ad90a UXU1 *qD*V `(fr)L6;=Ɓ=Gsu`0r(6!W]o{15W࢕%y˻gp:yM(ۭ]K|^z%)_U?g.(C!)luq,2TR,VբיFp`T=x
)z%5c.ʺ_~ xZsj;kiGkS
7n'LlΦH Cg2A;OGO$^D83M͉XwyQ^DK-]J§,Lb|?xAzbB4*d$EONNV'{uкz@4etKĹzn,F߭kcptm wԶvGSmA@h\o+ĺdn;񅣵
54|fZ}p}݆-xǩPޗaQOK:/m\S(pɧm^ZOP E3I*͒aeiFvqa@_Yh;Uz(8$rߥY=sFID(<1Eb/I k~͒jP
'	~pHhy!.|pPƽI5i5ʟ4Ry҇!^MPF*S7D	gZPͣx)ڶn+܅MCM@Xg!/҇#>M]Z):;n~}Bb~B3-5$+?MY۠:JQ]v_ʱIpO4IS -yvN~KFGϛ%s]GeV%iG+sX>O.Fѥc)V̊Yq}Iv	B^}-S'~\H5fh*b9rx\f~CƋ7Y:.m!!H\ӽMT$с	dHB$kJF	̩ҏVX>rHv%B+]i}=)K4@VcAo9''HmLy*tA<	ͨC2eCZ-AbE7	>L|:9m^BZE*@
rFL.MtsR~@NfCJ(DDAȄ鬼Y% ʬQlaof+f=n`{ȞOhy[ 	IÞMuFjpavן]M]e9.'fߛ9}zOG ȶ.`|?e3ۛX]*o^2xs>ŏ*B;e_̔a9ġ;lc;ҍ/5h#Jwr0C)bV+43﯇hYкJ$5.l䲧KhCiu.y2,HFi@g-CLC%Χ.
;`O:e`yݰ<GjeKV϶`nK:7iiH˂i y5ڂ4!KF[Ѣ ]}"?$xnCGD̊LueW,]Kd3%+jy
d\x}-|ȇhZv8R$/7ω"jpɂQnIὁ5YJ֐keÕyBKL]2[b_XdCˌK|B&/߰3b"9-<C|6\po[]fQ2R0Tͺ' -i=hmQ&c+Ny<2&2h^S *s-)B]"bH2c22#n<fnML罦-b3KXCPj)QܛM7tSORN	]x! uDoC ܨkך7HMq=ޥx#YM)ޮi_unMݑK2j4MY4kXp8OީS0t).kj3uPaKHXuz[?t˪4N  ÎvLMr`pIԟᘪF{_Q5eYպl+0=h՝3s2^sh\1:/GͅTjZ&)mG#uwZ':Ƶطz+uYgj:VC*\6:JgBM[eYfL_hʎ^Vdd{:VMKmfѲ:feuKYw֎b:%yf.lPmMWM]?R%mnawԈ"[9]!lV9-n:|yNʱ!Boo^4qԁZ/,W5CFHaJwCwa`sP9mhTە4tT6	W2ra%MXq2#Py<M|'YשA?J*zVQe[?Ij
밸`IGMHl>D[ЯR#>+fM4>z`r:`xL''V˳9ZTfxs7Mʨ#9E&_S=-?>%,V(	,(bv|b;?:/U*!KβEٻ_gJ$%Bi%9~k\i\)jK˄FǨ
P|N1ho ǊeP~
 6 c M~" _hCdU|@`=x0=Sx]Gطu/s۲c\c_
  (f@pe7PbkW5掆71

Zg\SZky~_3xb(;E`vC&5쁦\	Fڶa)WhF2:s]aTtq&9ƖzK-48[Er$4~C.]"iMFaΌL78w3^p\`W1g[J=:]haOpka2v́'$u]Mwz\E΀] j"G`<t)-lEҢܖ /Crz.'nO|S}BҋMA	?^{!d<kzɧ"^k{lX4W/yĭNlS"v'zܦ4:<: +	]yzHWz&"(a&p1EA#i,8G%t!<B	˗sIQah<B4& xVCҊkU~C~xSK)MIUI,*HKM-N-˰ G	
xXYo8~Eck[΅n%BKF6zR;3Av`p3ùgi"\HrYpgfQ `5˵OZ T
qd3XBYJ<=opY-k8|*&lUR\j``&a٨erx~bתHZ%d<q"϶x}_\#=zŏP(>8|]z#X_fj~ͧ_AfBO._Kǈ ᯂrYN&% 6_?_= q?0Ƹf'?@?u9q0閍l\˘Mш>\fFb5yW=++N84`c< ,ǽs x=+5% I(&lD!پP".r6>	_` !'G$(K9*\qo,6	5]8ǮR(K uL&gT.􍗈yXgsLϳDJ*^3ϹlFryuo0KPeϹX4@RFy<go^pnx=7#?&9D(=r':X["M+ծP`|x_o;}tAvIu.I,㋘nl2 0Zc;cU=й]A[AVoWH,WYi2
8euQӘn)(TedOu"iP2],V1rL:6sJ?F['3ق*+AyA[1Nl~xRu}IMfa@WR,եSD%qVQGuyF?c8i&F9EM4NHZuFC/*Ìohw"LԶhVt)%*3i')ޥm3[JWU9ӵHab.MI2S>35DRaFOqSd).E%,C3$wI*&0R4UhRk4RHeSHSVm˗ꁳJ=̎;p+B03"0!0BJɈv}fm:sEw\m;	iH1c8uU>]h3
wMSNNpi>!B8QEbꧏ/Ηe wrK#ڄO~7«[6]{i
`t}sれw$Ŭ&tO78`7|RDi%ÕHC1SJ@Er+)j0iuOo:Wb9&$ynr~4!=z^qhqh>wRoP\q:r,)%Y֖UC2ZK"y<oʨP֎24ʫE>$rlZ0X]%!UCdbPg-e-ow=B0C-inI֣?hn<gG^D3ū jNNjyjxp,1/&De\W+f9#i,f_g-5ܡQh\t'Oյ@f?Nhh1&0O7#m
0En&}T}Ap) _7MnmfQ=\Ы^gt[vuԯB߸a/3r6V3t\c'6_U++"xmN0)&n`]
Eɂ-t!*l̾-bm4㶢㵀ygri=K^	0JM|kqDBiJ( <4|M?(yAԵ}vMSW1ȩryobG=vR5/e9|My{uYz:,9-,m#g6TQ%8	cZv@A`yIXf9f[oB"xeб OAbڹŊD[h&.X=	ˑ.:N3x#P^R{Y)Br͝p>HM d ݝawصЍw[z3ՖCzgp3]`B؜Ωs<W8?	y.gPc7W
Uvix}O
0<wbi.*=	zɱ"^D$<pA֒i-(efgAnU+	|V(ӜvpcY ؒhcLDnMTVGnqDbtwVBaN:c  e\M1pr,TᏴw6k?c+Z˳2xeoo0_Oq7h3Y\eά0a&Xef^=^GĒE1zut$$X34&<)IhO:\2pP2_Peˀ`J7 :!ab<5#!0npO5~}̱
U\{gEZ6<𜒹ptHHeY%iΫ1ac	ϲ4+Et˥2WP({6hSEQ2)NKj̕A&[g]8j>yGj撵.RR[,4ᆏQl anHSS!c'T8b?^JQЪ7zz.]<_`pGCD*Fg->>W6wX'̱xmϊ@;O1K+x)'.8l5#TwVjW%_d`cGvLF,?]3{5rMacv5گN;,iD#}}	` СSs9iQnF"HuQ?>S|U'v~#RE_,t8?`|xX]s6}f٦N:! l&NG㵡af+%a}H@{t$YIs,zl>>V^0>3cˁ2;>KMqb}٤,]/p۸c}9v3?fQ-?\_%w@?v[~}nrٺ(Pݭyvmw_b1t j_JmZ@Ky;~;E{8j޽Gռ75{NweV&eU]E$!xM:BC]4YɴE`ctM5o%؁="i˄kFSMzpTCp&7@Y^ ƧkMfYHpD7ICMJltioe<z\x	</HK/l(Cuvl0%sL>K'b`!x}1W:OxM!(||']vE|"]i[1Q8HH#oDD%qD:Fk#)茣F}K&4Tp)@,c]	aMU
4T
3 U0s YYzO3T3Tsiy}np9}<1AC_ozaBZcJ&]z-FCW-HH4r0Vހ	b<$]>jrQ2ÐgSt#!)ר~y5ic|xQʮ\	ovaOx7J)>(WS(6T@!Ac3#]3>K	:
-yEUKIE.1UazH~D	4IEMTB\+91	Lte%	>^pW=?pk uϷK0IKs̣=FR%sby@8E/`)hzK
{1]v}Vm՜kJ,SO4d"l)$7)i!J{גB.b0K0â&I,ׇǄQ!17mʞVfKqN
b|5T[Kqj?'F鞥\k9wZs<vq"Gղa[s6<,na.S/"H7]Z$?5jaGd#+PL:Rovs0|CZ3ס覺+Gޚ^Mw!R>Awuh =R.V$}V_V6'ܜ*V?|-LW_&%ϟꞯSyXuUXOս<?.S96M|Z#PL2<㮦2!nnWL4$tY lQu CVe"Ľ`FPlQ>t}C#򀜱xuP0+1/FɣW4[BBbw<CZv,l
0,ӏEnJ@d!PR?<4ّ1IY;<jQe4R?&1HȅE?&&
[*غE_y\鷛u\&_}}o.x}]k0"-+b"1+V;MGu0zy7b[ըRq2L6Ra69(_m꭫Nz7Jl)Mb[ WE98(a)L,UDBe4szZ-	,f*%gԒ3\kPS;5i |2d2HBb0!3hn&;DKYWSTA^wۻ7,|~:m_PݡYMPym*4 )}_'a xmPO0?OKFFЙiNCtAP!k1%7hq4DdW(PZv(5LτGWYaՈ$%>"GɎp|&pF4u4&bB0Z2.LaaDS͖py)WvPEۿg{~n5/
pS*xKk@O1ċJhikmR(>b 1ғX] }u>7],HH9qKgI^5	9 	,xɪ&P553J%e)(\Zr=&^ 7# ڈk)@xp7ݗpZf{ѤӵVDҲȅ{(qvdV)ņVW:q`rF(l֠.SYU&TX}f޹>T%#ͶUgB=r~
Zۺ80mG>4N<"u|)_	"xQMO0=Ͽ"Z/P \sDnBQ:]I:;hq#Jd=ٖh@u/PV4ZџmA+ M)DcA:ֲޒEt
&idѹl֡|pS_2-V6u	GIREQ\4.^Kc=BmX"+~	
KȦ#Fb>w+c*~%4/jg9xmmO0_ⲽDc1AƘfBqM-PO`@%!Zt<sou'lFIPl<S/b	6|KB)]y:b+,;]ߠ*Ќ1*/\dg8ETLy dV1ݮ:0Q+XRK˻yDQ&<2k}}C藆ųvRyDHlL@RYHy N@*^M2֡SD:"QXHo3}:
h.\Y jzb)4udy;k^da[أFnu-3@U cȸ@Y6FW[Y9q#ҞQGCg(Pإ3tF.p|珏}PᥡMmpiWӆ^L^`1I@xSj0n"[ ]u`LJ۾Nj6&;O<'<e2_
( ,*en5C&(OEEX+9;/xFdDh)M|%v=}SܓµNB6ViYPAK$璈dϢκLz `{)<At.qazJh Y1|/~_7FO7?vn7r/Fxl+t.Ὥ`BN!<p{<++Oqr&VV[淪vdJ{OMY
ݤj%[z{z{Om~~OMx
0}.s>ċ
z7av)J7nul%__DLA
=eg<glh,Շ@YvOQm`SDd
Vgn
55u#1whA]Z{F:Y%,M."(cY5!Y48/B;A/MI]Z||^Kð%xuAN0E)f,!!,cQ	rwԄJV&ƮБ'~ټ?\"QT|\,叨,#FсO $Fr5w!sG$:m俸"PZ/@ HjZp=lq>[{͓&QN4~?X?;(E_p;M%`,L!y2Y)&E̽HʠxAo@RP
*YQ	R8Yi(+qԨgǎ;ϳ>AofLzk^]?ofwd˙Lͺ9?I^W~&L]ftn,W|e]EZIg/jܧUpTv[ylmQV{Գr^:/[Tj?eiu$^%\*8{8nU٣U++E#ijoVU亝&LIV%<+z9ou~|yzB_DvE׊̥bä5W>لIN҇ɑ:"Xn.87`@Zheb$2)45`#AD2G-S0"(XKA 1Hi>"ID -s2#%e-A"cBS>"ID -s2#HMd`#AD2G-S0",`-2A
M`#AD2G-S0"dQsg\j۲kVsj8(m~=ä"ʋ0,/´{wyM75l9Iuͩ ƾ!f"X*7pA uNt%:Y\2˴qˀwqI^v:c(ge]&.X\K*
zlс6!Iؔ,`6
UiؤK  -hӒ
p'zRDt%ܽ:Yݽ\>U&.X\5xqA[T:.,p.۠s۠bypa[nI'%i薤[Rm9ͻxM
0}HO0y'-ӶPԩg_X! QۧQ/i?;bJ7Ҍi3 AZݭP @'34._zQqxmo0)Fi89mtۊ
=mov9_ՉDRd㘴e94ϭv*C.Kؾ>l_'mjWj[wYZOV?߯T$B}Qm2^WQeyM|X<S;m;w| 2JCDR CTʛ *yJia7qR ZDR :g!p#}/3 ӡHy9D2ytCTz#*J_+(xbSD]1tg0lW@
{6" 6US2L&>_1΄^_E"l4bz1OH3Bosuw"+_gvQtd%:K4_|凑5="\E!xg]\1wɩY7Or]Gµ]˃bv$vj:梓9unl_=#eZ.|/O}L2{tS}\WxxSK)MIU)--˰ <r
xSLKIMStrwRr3RD3jrJA+$(OAYIK95/%3+9#HA+%(/17UӴ
'%c3n 2ڱ7xSMk@W-Ul6؀hކ5I$lP߻5zXf&c G?Ff[lBï,ǒZA~,[PUkq1p8^= qN'{řd38K.<½6a*"<۰CTuV8ky1f2'<;	?xw4*U\$qՆ3N	ڠH(aII
H2OBuݹF{>l,+:}H4k8Ԟj}L[[FU ~9xSQk0~_xBmhX֣{uEHrhWߧ253:}9Bs^oo*IFjI*E8Fo&9IAs)Oj@ﺋ&ZeAQj#Sx#}ϔrOX$MUԷ K%3%iJp+Ts+	(B֙u+:tPE5&G̛yr:v̐e5)RG+đljDz?sSB;6 BNY@3Otǆ\5i*_xb
yO
M6C94 C`)K*C!#䶦?]]V
kQ^uI>:`Nx,b'=m-[,ũXHlf/?-׹jxu]o0_a-UJӨC	" $+8X
N;hMs21H|\߶\2'eC%,)Mk5E4V>""`P9wn,	nؼsŀv]$D.%2Ta'pxHi4&ltFe y]rf0l~^ut{Z=[Z0,@Sv;ywaFt&(K)]ZEq5tEFvbD \9&Mb9ߧWT~U+W0K9@[PFU5yQDTkP0GYN0HbF>JbRS25;U#*뗂.RuB4T-Q)'"Iq0 FSݟZ4n-`=_86[kCX/u"$yI"Y=MFzr˭l:4]V[p<j@el瓡IWIOWA2JYAx6d
#./èw	DEV޷71	mHȥ2Z
I׌g?)#-xMk0clk`ty00-/bl+KIv0,H
Q }l%}%QJ=B")N9ʙXi,'p j.t^Hm#L9JkO>{"d_Hy
7^1\+l޽
hN9O_z܊x3I4ZW7xKL>	 P'>)*0P$  s"w%+m6`+FsYg㴦8a:κT
c	
xSK)MIU).)K˰ K@ٵ4xRn0Oєg| %ff`bvT(kKܲ;S]rLy< oȆRHB-&e^Cp%1y!\"CW+<ϥtW&yrFYU?cr1smH}k.=,'=>W3da}`eu="pΪdZD}xYH{T6,'q4!mTK[Sx5ʹd{TN]o yjI3?ZeɴB榉$7F]=8n 6Vf*:kFF2 hv绱v1?^|gx
@EnT~"XAܸ
uqZfRnk-IHMI.WqA	&9)|ULBgցȦZU9+M%\8~"^Nh3!7p+5LL;~çN2ەA<:0 YМa}{0=/l 1DxT=O0ڥ(,U"EBVp.خZP;4޽{/3e dvyFS2МkiG	ES	u!PD!y	dӹF$TVKǨTrEmdJއS^i+	%*M{7<c&ҳ4<2)2ݚQ?|,3	噄|	(;L{'LTh&½Q !AJ݇˳=U{`P`PWa--FSЕrqqpKct[4~ѨNQSʇpaԂ3+SWmZoz,戔gڞ^X7z~X  jx]o8ͯ@ӻ QV+94Vig5Z!hMd:Z|MdnRUyϱyml?~]մyUu˼(kyUBfh, hS}y=fШ_|o˺?*6U(7U~ߗo?nhynv/e~(cqWNHf1sɓK/b%|?aQ];ʘxHhZևU~]9)b%zw&9d[u
.9T1~:c,2syw:JqwRTLuJqwNXpΝI,4zqlĥy/+ 1&}	aU19B-5"ĴQNPh싉/$1Vgs7C)'3#V2*SP/qp%U5m/'uҐFJI\۠~O
픘Gʙ#]!mbbʈL0HΨ G.a붍<r&<c4F	ɘ*obsPR1u>RBIxi2:tԷ{va#!^qԵztn;!P+g0@D]E8D@DD)uQQ۟jDH#U)]ΕcBJ2¥Kl	PP0/HVˏ^$AB>'@Ч	Ft}꿈y}p}a)nU~͛/	φj픑PjNe#T8Ptԥ˙ӡ.C*|' M]Ea
cB֨+I`]I-%)W5]Rv9	"eNUyBoֻA9?&<6MvW鰈+<싼-[~
{oZ@xu}o6N>u+]IW[KmJm144TYmvJE.2)yBD6EVugפ~+V}Fgyy>%ۭӞ8x.(˼qdܯ8(9-x!囂f`+6@0}]filoe$`mqeɾڱ]Ii=(pn8R5;^mCw끬=t~jgP^+U~пύ[^d%1Gc̨V_Ғ\^-c,;p/9)@^,ME5Ps!]Wv<PF+$	0w˲F&>UiJ&8N*0>/Qa"	i*d[4^c5jNy5߸c	Jrݔ$Qcۖ*Xa-HG׭z,   ֻɄ6@x&ㅱ+uc8lS(Dzg#.F^i $Fc23ޅwATma3]>m)WL]2X>ZDh)WҘgjFV[Q `㾄XvB^s~#z:K7;c៼3u)g)Cc08<j@-pFz4@|._gDPfrIv:5J9_~6x.:Qp
Cd6j]+R/9R-|B萠m@BqsFV}鑞`r)6X['9	y0ĳ_+Kߏ7	#	xSLKIMSsxOx.eDf^*V9.̼ҔT⒔̼;.ʂTi@Ckc#LN~^.M ~/޲xVko@d~n7]IcJCCͦ}`sνgw.#Ct93W^ĝtV[bMՎX&:3Zt#hզ<x!տg"8_`
\|8Ly h%0YG	".P-9/:$rn'v٭0=ӓĞ8z}:.%r\9F˻dʩ 0Wj(!yŮ	:  XAFr|Mz@ΎTCZQ]cŖVi^!+48b"!]]W)LYSsL@aHiF7"!rx_
v́ e`ý8%0?oWpR;wCƾ5woٮUvddMclcw[1[ƾCu"%qF;f5cv&HmZ)PdFf49ӴS^qΝh0sim)wrpɖpv4Y7CG
:2e'QO3fSIySkB,P1<gHȝR\6x>s|b|ky_e^M{AN@-.SMO*<[ws̝ÓȂXa riAC Fj'4ۍ|[9]t?s']yْ<KEJv$7QLީ@ VKֶxXmoJH+ewv4޻8/jDaglvR<>g!_]!؅$vd> X^P}ȋt(&ߟ5:3)?a~D6%Nh,a7/ܙ4q?tG>G?I8t.3|Cb;^Dݻ,'g.y*q<j0unl3hv,r!=s<w}2C8X2?2,"d.#|xr!^nyH#K$_{9^`AFȒ㿲8X`[0'q1{;F\}U°0냎q=i<>Fc'Fc9?Ko9PfbgÜh,WNxaL/_J=r|[nCX.=7RN<u(3'G
|oɨ e1L1JS ᄟ(h㾇:F0=gFng=;9>].G1g֍( 1c`uDxxĶ	CۏND8GB;ƢA*f -%cIY%K^@.oc^8 ǺcQCurqD1xsj	Ѐ}19ٹ-yY꧚z음~LٝB]e!D2t_џhŎILp!sJB0U$,UQ%x86ٸ^BL	4	ձ&;$TG`dc"a_jv?]-L2ܔmc#[Ѷ -Ң6HC
xΦ#:};5EnY"F1&"XFs 8d^im]yjpФ|<bC h^@"mmҩdigctaFB	gZa5/&r)NꦕypO6օuCݟ\ԂqYMLiC5~LU	3in2	Xw$ Ko!=g\Lo):yj( Q
l7
n%xZ.gd:&aX:q96|!3&:0Ε&AE8UYޔuFkC6(>Tl34iJaU+Xl&-0I9-Zx|
ҏ9n̾]X|n`ʷjn $y*C*'Mti2״mRU]~zQ˪I7EF5iMNz dt%IUu^`/%Kn-5,Wmig^"^WLGkdI6z/4}}Aڴ4Mw@mפLz~+&`(?y4[,*9\G-d䐔$3K5nkiC^Q9c0a!V9ċeM^faG1  miPYHhەBu6Ɛ:F/A'ٶzA'Z,*9(rF1pwA+Ͼ&_mʸ۬d5Qz}QHˣ'ʤ6!Hkj`@;$O3 ߆T<y"K6z'CWB'-ȰL)VI^nG}Ua=6*$S6M9 M{퓹ǼEM2-~=G%J7HW9k-DZ<(%G{=^lma<,ں\+#johG<~/xu_k0şOhc0PEhRZ梴	}ظp)='Mg4k0Qà.ݼ<L_Z
M}@*T}*FHTwmZ=i(372b"%ԹwcQw4m)\\Rs
&OTֲp:ݚR##Nhmh`l|&FXou
WйFt(#/	aQsd#8ČFovQ;YaɌoDtM`:":Q<	+ qDJiB X8)'^{mx%|x9b^?6祼xm=0X83$q jSCʡM%{|1q}>לj]QbtLsWmn_@GF/>J0i͒$q!Cg)spϖJ;ԍPFU2"\LKiu(/eﱊ`qLb09T4q?fQ:xuQk0ǟD*EiQAD=צ4p}֚n+wb	i rINKӫX\n^$8jNiQx1E	<t~cR<Oij2 ^\g^ou+g-07^K6`W :xS COWVq؞@!`VkY6{n=*9LA*8QzēX9r!<F`\$9q<eʥYi\DԶU:BTݨZY:9!OdȺj(4AP	in{o2:q!QZP
Q%W`dXh]յ~JF}W< c"8xSn0=_1
EP@JFQ{(5K5fFC0}q7@bDi%,
s~ԉ )u*rѵTojMȐm67=>ygxJ^Iz"PR"ف
$1fQ#[}A*y!'j~f[׶p<vݹO>R@(%;1d89R!TM6%җu˘tT*,lVdZʊ4oANS޿)zLxT]o0}.j^) 4	V"Lk5MRԘ)>){%sk&PD"|oɵ5o,S0dו,8
9:kyƨ}H!5u$a[PJ0^ T6LT^*zRV*T LrB65VGayUog2Lk22o_pzi2$yj[8< 7
B@1Ph!Q%6/\v$ߖ7A]jӜ ղ!;dnVQ^H_ؿEcZ.ݸ1~1@PkVw5Dd oMċ\_;g"vaXfpWdwagχQd_A~u-jiq(zʓ%8KE^	gNG#6Dڃ1{4c4KPp2)?[Sm6?iJtxWn9=B@~@ 'jqM*$[Bhi
 >UdHN.\ԫWUԧo}2Ǣ	,S;J3m$%C`Ё~RXa |q\Q4"[3	֐JݛUL+!+smmwm-θ錊{gƋ%]QzHVD3>x$}،D`LfVTDtW"UI3d\Snc	\Xg K{sz0`E	b59#J]&p߁,T4guVbEJhڬD	~ƠFИfYT;6qt_Df` @60EJxza)A`TgPL3cH=l!g(-0cϐ-?|o9H,ıWQ-{] jIs9xHRkRp}@sqe!2~fo2H)Ra,a|8 u9%vWGՠ/ߦ{.S1)Ǧve1!8. l"Ȭ5ʹ@6aԂ׊F݀
Ck,]zJuE&(ܷBp<?(pٜ+j654J:uD;Ğ'Kf9*F>y<`h게'cTDŅRȘ.G)_]"5t%-@K"~(63>R
6x$J!֘LHG[@|k4-2w~|x^穥; ֚5YҘRk`2Tʞ𚊉f)1kŶmHwX]\G1gցv1cT֘ÅJD\/HhlW-)*<*rl6.\6龰E4O4vO"5sU
T~a k ㄵ@ey!qn_pA*U!~ߣ8%a^N]Yt6<lxu/G],2*a"ӥ)qr'/P8Jƿl{5G(5a8M?jfu7۽y2fK߼f|0хmcv9}{7ۿy1vWx7O?xeNП_ps=xS]k0}6"XıAds` q6q]*MOﻱQc%{rIb	.Ck0pK,d%X#HU*Y"iݫ/b1
nd!u0u)US12cŌIh 	X|0%T*,Q,Tj:h*bnytɆf-LzO< ڡtvۈ4yFF&M[Ni;
̵N02X(0@*o"@B)V]^,!a80LF^1`{ t08ϱuN'~]"6q=	E9%Ǚ54GRYViLǐ>H[yL;lA8+ߔJ%-xmAN0E)dUEPڢ"!X`igX+ݱ%u."7cOh.wcy!qXnF(g[yYu&vO/K\c$*?8gKjI,CU;LUsrޭxԶ2K^UebJuM
JGgFdJD[zV}צvՙaX#3мA=8Z>r<fzm\!qdL4#FOeL+wډw.[xYo6B<=xql+/ꑦhBD,^P$EJr_ g5zmӈZ0N#	w*w}.<վ:xx|iTHʣbo*JCb[ꁸ̍om\~(6^NjhgIfi	^iJ𘆱 Emo`e^%)}T|ΣG̻TTE$_zLLw1.IR~9mcBdw+orʅ]/eEDw0Z~{}>	jMaU+O|c R56襂~腂.;1vqa0 wPU(EI98Hukp)t4r4.% +[fu,7kys}sojmpekl?>4Bd MPG2cK"h;}td(svd(3}zw'6G>=9*:3^}#:iE_3%ڔ`j?nDqVM1VC3 
76W
9DA]Ϣ{[&`Pq$PN aO	9tu963MIӂW)6)̶}<ͦ "d!1䤶=	f=!ijX=0f$KF?;'Iڅô*U3[1VU0o
B	OZ6j(hE9m[(U̐˪`Gjxj sf}:}WG	ڇ9Tx,4$/l$:8vP)[*pt^/5d*)ۦcXcI^?$9sq_
ę׍A>KFlmwqlaw8NwN~j@y,mʘy<!9ed՟PQ*zME4cMc!)}zjΟQSГ5W[:ƌ-wDED2BiZp^qka$^I<fc =.SY}CSq#"ka	ha"*42DE0ip,sD]#cC9!u*:*JxB]p&@%KMg" ϰIBx$>L3'H ):dO9r_[172skYPooۖ39?9x1/g+LIZS .<ۓY0^'oMߋWNMwUv\M+6ƏU1Ӂ}*~~Ulи_[[5qSj?`2wj!do!B1$a^yS~9<mViZ1n /qihiu/,"g2V1Q536J^>?FEZ|g!&:	M`y鱃6Uqף|K4
y9\j'ӧE%ˎA׫%*-Ջ>XkBd<*Lk6ȳy:ywTDMX|S[k-l`:xۤڱ68'`emDn~Llhl<gvI(yom[hxԔ7LT\+Ohآ!3dLA37T8us~+y(zLT7maN]Q=i
mܥ4lg~Rue^/d|rh[u߳lᅯ}]}gܬ%"?p\	E#W$%ߵƖ\󹵱e 8:hlԥlZJw&v{l&dǂqcJTQ,HSJU(R6N%||5->-Ñp;qo-5[\t4aGCӑW?W,feU&'0&Qyle81{A,2Umr觗nN1}ýD'Яxen0D"5g.((JR\nVum:$
=0;o ׻g;Dvl/{B,kԤ457A)%Z5יmw$ػ ENTVu}a)r<6աD,\[p*HK$<OH'~Ǜaאi6b>LoF:U@8 佝'2xm
0}^6"zKupn瘫C JS~:g	#lfxYac"Tmh0e$h2Y!3
`]7%6RU.*euvqbB(@)!m9?(!+˘<cG%[2Q~9b/ HsG
xSLKIMSqqR3RarJA4UMK)NU0s❀$PKj^JfBk|<H6dB<X_|bQj<D2h&L 6xSLKIMSqqruquRe楢#!f&f
FFf>@5i
u)@u񦦖
55
("
v
BFr)daohQ)cli cAc"x]k0uv۠&Y1?~Iv!ys^_pE~y}
&vkXa,ӑ6i
13i&?1XEtK3Eg"Y2'洠'ۼu~֊<'apnߖ*'/ʙ#
Uʎ2*їabfkѯ\3SssXU[4B߁pA#@.3t@G  <I +&xu_K0).""̚ituB?k%MUI7ڪ!	9sM)&?gVQ E$
f>Q:5LgN\mp('O[ˢ$iow2q
֒6NYb'WH*c/R(ư8KFkiZI/pj\=w7O
&}N#j2װ8:&kпbkZO2x7uxSLKIMSqr	RebT'0P,/94%U&-5(X/n@^~Q*P0O!RNKLQ $+ǿxVMo@=_C>Fԕs8(|i7m
)*ƖU6{ۙyfӈaD*`X"*^n]?ɶz2;QY@Ա씞\RNR9  Rnnk~$%kRWO(3"@t(;\(&uY:>QG,|HdNh0c9>lR֍%I g_!\zc0ihOr<Gct4_L_l6d!v*6#$ܑ9-y'Q3ҫn<lL dh:h"[tQ,RƎ(f7'$7 ," 1=:GO jekMn@X~@<!~O2	p]8Gd.Lcā!]b	sƤaZGq?$,Ȳwh4\ 	3]KU{!:7b4&m'^+6]W9)eB {C7&rEG3TX	u-)aϡ*_GRu3٪OEӁRTe<NiDJ^ʬڇ+!sbi,в)ElN&iC}/>laC^imy^gMbͤ;e\æ)V]#M7}m\In,VB!YyG_$^E-<qe\%챻T8g,cNk^􂑌VCtV',"KVglw>m1߿W%cz'z/B?~Dxk@_wőoȂZfbbNϺxg?Vf/Ty~}$P;e@P\`@"NRX|8THĉF66ybv~QN<\$ۄ򘥝6B 828|/@ adqhZv kmB 5W=PI}EV%Lڭ0N%a_XM"2ۚ|;i~B𖩟wG]`K)Qx7m7,YHP&etIq}s;/Pδ
[]tv3fLF^i1W5}&JJP/dp2;M I5˧LW<u޻lOo6_xSLKIMSwR
d楢q)g'0WjEIjQB5rj^JfH]^rNiJMjN^@RfI~FyrbH483=/5E!'?/]!=$,1GE\յ 4 .BlxSLKIMSwvtpuR
fbs)g'0WjEIjQB5rj^Jf OfCMB!詁(BHN>
pP?!Wf^BrbrFjrIFY~fPLhZ#Ӏ.",VMPExB hxSK)MIUI,J+˰RNIMKU $(@$ 9Oxю0S7j&#1n48Ҭf;s0Pve+2ۂn{sm4j#xX$*DMIIAt/Iy"qR"d\<}diW|&4("VL.$eR*}e"qT;n;Lrٟ7^yp5\//pU}6h{MӫtslT^_Ůi;B)}؛#'aM鞼tJ9ue_ujU<[/֯J*^yZko1l
<aZjcco
T\
z,21Mop[`ǄBTgm9d$/e!tkB9gY8-}Gx@T@(}pᑓT\ "D/Ďf!!!vyeV-,mI]aX{8n|B3ֳU%(ߨ{<Py|##t;n:]N͌xS.O,KW(JM,JM.3@e 34%UX?(/_/N$_B `yxmK08֗Y@|FXFsqr&U;C~dP/xSKHf2$tu0~ABWu	זt8LžÞm`.Gz'F+?"dq)|-F(-dq*}	qξ1i$^S_5;h,Ewpoti?`xS.O,KW(JM,JM.3@e 34%UX?-9$G/N$_B \[xSLKIMSwqR
d楢e'0WjEIjQB5rj^Jf\w|!k	HA!
H|O? $s#B\2Jr5, iͅ0B) ONxSLKIMSwtRd楢
r)gU'0WjEIjQB5rj^JfBwK|ifJ|	`:Xhd^rNiJMRfI~bNNIeAj^Wf^BqjIZ1 !APAl.E8B L»xSLKIMRr3RE2Ӏb
9 ̕ZQZ䬤PͥTS`XRZZa,YR+Q/ 24aԢ\Ҽt4.D967 H(xm_O0)n0F1AJl柧uX$.]=Ps{Ni;LISM򈆺ZuJ h#``T!'-)0lvv$8$-/:bY>ӕ{a\Ԫ% 5mf.xLKz4J<SI]lv.|D׸7[7Sre9 ~<ϳ<.xGxWF9
nN6Y(piϜ$ыap\\O`j9X
ʽFnvW_÷<xSK)MIUI,)N˰ P	xSLKIMwR
d楢q)grJA+$(OAYIK95/%3+3D!;'?=$GAQHH,RQ r4Tc/xx}]o0+rU%BЪI!1`N(& X
Llc}Af)Byȭtm->0j-&Rk[?vChgιCVmmֻ&AO_~}}zծ#o(!B(&(B x='/)h0}nE-0t]L;an7	Nr]TN*yݏe=٫1si୐\FG-	{ԃ /S 	*p4XnID3Iq	MKy叩gd>!C+T%6lVO.p,chʜ
ȉ˪Eك>8,maxz2c#p)#x 𜑅iIl=Y!SaM.Jl <,Sb`/0!#NXKس_V ca~B,όzG$}Q&}T}qWW#Y#ePh.2G8f.ڡ?q!֓.J}Q?oŒŅ2̩NCۙL x9'7T@ɳ4-͎}v8۷wt,٠>{}A/tk	DDͿ˲5:xuS]o0|n~ŪHUЕT'hP*]U,`qB֩~ Hɮgƣzb<)'^ǬS慂)|xHNQY2׸^H0%`Djmh0/RuUb3#B*@f*KU.|/\Y0GhBgk؆Fp<s@.L؂<g_n@ݍ lm'7ѫC]TJ2s'Beeg4㪊jVG"E䫍8
g<x1|}
X!aNr5D},{m	q=w*ViPTb;P>z!e<6vuoV&yؙ2ia޼\[Ӻ]Ybi0>xS.O,KW(JM,JM.3@e 34%UX ?'G/N$_B  ;Gx}Tj1}~Ҧ/Bz	v
mC[iZ3^NF3gf3]he%(?zj?9UK_}o)[,J
Ya&<Qo}pS OhO"20]k,pmdAbeF/'I)P#bi|d1<2Mjdu"	oCa%o!4&ܯwŃ%(@ƞȉ.m%P(ڵ:@<TASv_wp
.V?볙.MHzV۱VxJCe*<͊ٽ~%=$VSl&q|tG;Y+SXC嫻Bp;R9=zeFKiRz=>o_oO)ʍ83Cf~ {2x׍@6wcv#*%9xm
@S,zVRQtT;ڀmaEޏX_C) <X2[	1%|S_|{SDR6蕘 u\FSAZ8#nPcg*VfYV,s))\{黹L#Zþz:ERa$AzӷϧtIg[xmY0){ѷvtL<*D}*nk AΣO%*(Kq@H`5%oU'ʊr';aހU)LP`h"?/4R4^Џ*>טDSeYNױkVD&2[5*7r=@x^UuI{Mo^nxSLKIMSruR3R3sJSRlr2s3K2J2KR@bHI@eEԼ4. #RxuVko0~|I	]m4	'E#$0ɢ<2oDؤäsｾ6qD0!盃l][Vs+}q
 ⌊>0%B ~H	,(XJ}(S4ՂppXii/3:=9œI/bw$@]qIcGl(r3>^?Kgmd=̔ƸzP+1seyv%31&u&'^Qˑ9tVXɦm{I&n{r'd2;J6ǖW^|/nB>oڸxA$ك(I>I0N+	+8hpyZX۶$ƭ!Ź] FLJByFTR5Z%X
nƒvcu8`,K{#Fmîm^lі9\d[ÜPer{kCm)X!ZƮi۬}ǉm9u[R[o\9X8w*BI̵VA"N-<qqd-|Ȅ%^&V&VpeyFdB+Bx1JHNQcܰ@f,?Ѕ@2j6Vg&]fk([ u*͉hm	
]0@f/(tR!xzz˫|vVy]բY#bi<vkeùa#QDA9+~VWDO[&-1HxTn0}_a5D(.6eCj*I݋IA=%!&s>XJ2Gs
SF:jN\r}9d'Ȗ	Ki(Kr%#k!:#┭hzN
ZC[b3O"Iz_\6ձVI'
=;0~^mNQ65{Bs+nls?6s#N+ֹյB:=	VbF4D7>[g?,s Q(jj 66eU bbbg5c.E=L#).`&u˪|xqm4m}C챥0Ųjvs]*%|Þaqі L_ \8[=qpMߡ=ћ~x=lxeOM@xEC:"3@i	--
Q[?۷XKhvh&%X8xj[c%aK,LV'f;w]W6PQJ|jP)%Bjɹ!.g>i|H{4i:4%#gOuYtMdjŹxS.O,KW(JM,JM.3@e 34%UX83=/1G/N$(q! 4xm]K0ͯ덖MYcP8ڋ("!ˇԴ48dݴnkkzQ<=y\R!^3==$%zB2OFHU}kVI8FxLRk$^+M盛DF )FkZ]<ے^Sf3E4~#Nj&w4z A眞B5á? (]Ҫ|B>Xe`P)Qd#l(J
37sWZXt*\Tklo{^W3Z|2A)=L]r*1ܬ[E85캷ᢱiߦb2ɕ~]8vμxSK)MIUI,)//KIN,J˰ u	xmOk1SRZ(eKAdiAJ	kАfV*ޤBoLV*qe9O$KP.,Pg}MePg)r,n]۝ܝ	*$;,J8-9ȞAsv$4Ƹ*-\ħuH>/ίhB]54NDrZde6sYͲ!=[x~=*l2+3¢oMˣ0?J)xSK)MIU).)/()˰ TaxSLKIMSwR
d楢q)g'0WjEIjQB5rj^JfL7'X{|@kTX`UUfKY[Xܵ.ΎA.p@re(')h$($g$)h( e4ii
rؼ_3 bfxSLKIMSagGx.eXf^*0rf^rNiJMRfI~qeqrbN^P*5/%3 )^Ժ'xmAK0We/*'Q-{Y$fIȤEV؅6!1Ѩ@sQ~co۽ر,ja.鷨\X~xe2B^D+nWӑj[z$S#(Zy ˭lhҩT|ZOi	}K2X[JkL$AфU{@71SΘKY7k'[zF-Yk$!䐠39]nrKlxSK)MIU),O˰ KxS.O,KW(JM,JM.3@e 34%UX$(73X/N$_BC /!xePn1WDB+.*Ieh):.Xtq$hſ7Qі!J{_
l*Xk5/P
1+B\ ;Vِb-C~jQo?pxB#*I7qd\ -Q~DI'qm	XMO2㭪rCO'{8ʎq=?ƽytҽxm
0ݧE=ThAzO4Pn
ò#v%S>/p2hA@TSDN$hTn%Ű_gM~~]xnbѝTajLze|y$^Lgl\k7.dx}mo0_ç@͛t$˪H&Q-h,CBΔjw<HJ~wgM(N=+\nY&BIM-Ww,.2H;Rȃ8h"wm:	<|aB(VSVi^7q>+_F_ba.Y~)w$B<{P^]\y1R⒉hf%}HyɣlfIRl$EkZ͘RmIaqCƧm8%ͳ4.,.3)+OqGGF=T(BpyXb,=,! h}2Ye)_3|IsvcںSDWẎ[97^&c4ꀦ=Rc2tejLl`-rC<ӾhO\#k:Wh%+Goީ24mm+u% i4ky&5Uz7e	Դ..ޟZ[?Dݚv{ זu~A\#\ͱ>l`uк`	2t,~hyaVkxe V
a>5і0y;/?.Z}'c[keޫPW~ZjNlN{k6ݪ/ͰJgl<};_SYw=j.AŝJjͰaVH7]qOg2^%gOg|bB@B^ uH,3xmMo0HH+܊V혦)IZ&0@´M?~I0v_Naݑ"^Z"ha: tA&]
HoUmr@zGm4x$.6HsH!Jw
 >?{Ώ~]P^x,aPU6Umeѷ7i:@VN>d▫tE2dLG.I&H Fy',Ik)X_	EfHuԺ~ǅ(Vp.į8bρ-xuS= Fmѣ݇Yˍ?a@/{Aq?l7X_ܻz)kNWr=lwxUn0}&_au_ !*.@HІTЇ>YY{kY|.vͲt\<x&šy@~RVc1Pp ÄR΄[Z#򫘁)N187i0Ooӯ,3*TK!{:spC*)*ۦֈ[VGPLlC2sb+34BvLHQ+؎䃔VqS>~K59Ȗ$v,NKBJ
#4Zt&eqojD!Grj5>__݀_f*g'(9
D#4,ݶeg.9M?[bXSF,<KزyllDR>f5]f"dOv,ae^3"\c{I4t"Vf؀f#^.]>]X:;dgdC2"C4MϞߍ*R?[h>ٛ?*xSK)MIU)M+I(˰ [BxS]o0}ﯸ]̾b|ٲ)s&N	8uMX!/\s
gGyt;[b{.E(Hd|Sh[I,>gOxA#\2\$Fy|ELK:Uxp^.to̥]l6vF{-d,QնL:?~ĕ<Yzj=\.x
5ȭQR\ae?"jyj%iQ3m`Et7HU+vk%YAJ::r\$PJ~c;LT6X5$UXOQ_CXfxKK0ͯL7s%TfLхTt!"Lipt濛N[Еι7'Mb%2Ī8$V2mr5X-p%>ônηK2&ERS-.*O𾨰|Wy
ѿ+ף?Rߢ+g/nֵ9A9oћ@M`z3Di_.o2{Dka1!$)C?EbSHOޠΖ#BN}X_xSLKIMSvR
d楢e'0WjEIjQB5rj^JfP]^rNiJMNfnfI^XqIJf^	Xi^&P$$Ԫ_ZZǰf# gB#xmOk@X꡷D^1),d!#-D0=7ÌFz}΋]-?ftT(
R~=X**/>UP@k y;5DDRoG(3w`iB1zy7YbZ.ఁA8T۳N)!c64}𕮟xxSK)MIU),/.I,I+˰ lyexSK)MIUI,)/+˰ QYxSK)MIU),Ĝ;. v˾xm=0Nah4ʔV1(O"8Ϩ|e~Gb[+x$غPZ[4j4^X^mrxG{-;7Ux'0*.'Yilzo9B	MnJ1r%'iאv%ʞvKD	|$xU;0Y	:#TlD0b"$,^%Pz'/IYMY"Yv93, 2W/kYHOJV(TSS	DMA'SCSѩSu?q 	#hi`GdqiqC0˕ŝפYjO1JE}=3Ú,/\C\L/6?j&x}j0E!HE]HbNk:rFmi8t8ҽHVYb=oEу&}bA[3bZe4[5V{t5vU;B(e^r*i&pӉ:ˁ;MC$H؊s+G)ug)_0f,4H#{댂]Z炋½1$I#tt߫dixSLKIMSRr3RD3jrJA+$(OAYIK95/%35'5-3UY4&jŕPYWiնZ z8^xeP
0W<E".-蠃j*(⿛6jEwK.V ~p%bVDy)m+Sm ZDp1BFgd
]Mvtwolτ>j,vyY,N28=:>WE A_V2S^0~B˖6m۠?zǣ;Eo]>xSk0l`	1qSX&JjT_{re&Kw2'C䨀V2/bG`~#	~()ï{CYߟ-h_
pio2X>m5pcѴhRgD!!ѻ.;/aVvQ
k럊;u/'`̚5!#)mRx9)SظGir^IY?n,vϱaGU\x#ah+F(8GAPh{[cӚuSq,N2%50=k<v\nUvӤ&\VɼͅeYK0lijI*iFcQ53,U\dGn%0t|$IѶQxTao0
|
m%lRIX$(mb)(v(9	NZu{>]kAE8 _D\
Z|+*3oK]?V	Z'VqFfR&m>[UBa쒄SAŷ_Tfv(f+Gq}_\QIiТLmؽ]C%)&$=@rZ/6Q,o5eLIo+	+-;4v
RC+>twzMߺ"7,kʱa%+Ω'{GQ0Ҕ!ҾX~)2ԁ	xiꑩiN0R&ZIY<7wM&ùK"z~{oq 5}y8N'mw᪋^De%vt>TkLM3Cdlx{@7'nfC25sk?j09k>_:ٱ:8h(xm]k0ͯ87*@cPۈ[[9*4@i%ImߗΉMEy'Yx	rY#@]番b;d|#൮y1xl+4!QTny?׭@(S8a 0q<M6N''	l><6!B:Ҳ"m)3]-%d65%E{onMږӅW3{>ny?vp߽cƦtt֏tys{DޠKBi8!|˓yڞ6~\2݆;>7cx;xqlm4L-4yl+aOD ώƺxoH+FNpQ"QB*d9V5^wpmoL"НT{=ݙӪAz_	6IhXM8=9}sDN*4du܆ki+kj!l g]ߴ+҆O(=8=>2'3%!x\B i "B_seG/E$*QDKMr))TYLJNgXQ\L;nltPQЉӭb!
L{
5StMrB0ɼiȅ)P,݇rY"e^4 jo@k+jtxꃾ1Fˁ>t0^K_(Lhb<ZC
|,J͛aPx(,PPqٜISFMy:+YnhSxd$
ǴXzxV/Z:る/A;]}:O*DԱð|7_@{uV{͜ZT~?5$a{ޣvĦYmfht9``ʐ9hdp~^躾MhR&J#P
>zav{o{GHŦOҖPuht7x\zߨ4HֆQMJ534PMU+q҆z;Z5^o⚡?x<jТj?v(
\Q[k抄j*Y0[Ί3TKsJIt5VCQmJ3OM܍qϧn,@/7ZV`IV<f:{>2\E[dz2йΡ#'+sW_0v:P㣊SQMHsbޑ*s֭rSURJJS(M^h!M6 M*[o.ލ(6HO|W>EբQ^7{I׿8͍0o{Mۂyv&94B2[qJcgi}Ze"3&G)jleJ9LRI>]~3~%v'[ajZCu^@󿌵X?#}M ա҆ɳvԙn$Qڗ48wӵsҟVZ!S^T{VVlTVg]mgjm״]peGj^F!S-{PXC 	~/p!:~}VΠpN<1LB0e_ںGz:c ͹;>V㗙`Kk8KfǾǷx[o۶ݿS!Yk-bACڅ.B)"SIɺ"R$;p	Z["tf7
S7)CtA]x{`KT ha_n~B7щVp/phO%LK(wf
1H9031l-įDT1gV 6Je0lb&PWt1>'P)L{3%H=JkAaOZ޽`utXP3[fB: saMq,@fr~݌z2^]̦l
o?W(
лLhAHHXV QV^|5EtGuPFŖIL	@%a[2+z0$U
26g!Ǚ9N{=[HGv!8E_zJ<Q̄D跞vd0_yv4|8C#!㊊'S=)YC8ʰPw|:AxP
bv?*cm8Oh\%쨹˩r2gIT:v5yr$"v$U˥&
5˗sSh fx-tx'?fKZC5Yjy;r,G(bleWƌhZA _;-@~~xuR^L>|]uP-}r_,`R<&w??O7@M, OG D߂&F1H|5~ɈT(K2LiS+,ִ s̚zY\) ;BKh UN"'&t8t=Lhq18.RU."eq|6UAc\˿5M( ^*$wPR8Nu
$<Zv u;R `#ـ>L%w%Ac\GdZL@C!

o\9mP)YQ=׿o{HA#>=b|\ݐQ0<
?z=O62qC-hs[&'))ņB0m3K<G&{PW)":X:%=kAV	^{bwv33R\K͗6m̚	LQLGuiO|jЪnVYbhi`qbr}UH +)qÙPˬpဂ.gf!;&ْ%L;~g	?_j4UJ }*n;,]gkhuHiSZ
2"Cvɲ)y+`1Jb{gGf޹
"cVF+nOߥTQlw	קzV/T%!vC}<Tͨi{_k%OhQ`qGŧt7<O܆Ae;y\V/%C{?->	''F!}1v=Sz9`_gVg w 
?rFnOO<×P:U@QL6'{YNX+
H;Y/1 ӗZ.dci۷ 2vDuG<Sikx_mN+U^{՘zG?CU}e9~<(>Yc=V"gZ	vNZq@]jZkJhEQEg'\`~t_W2@>BoT2}̯P`A` 9r]G)LTsqk*˫jWWdCqxN;V&5K6z=,73z.^Pۑq)@i57mL9@L
uZ>2T`2ZKʓ"jGb7-r'K2աۥw}	,Aap>t?q$VD
Wa9SfxGo uTxUo6~_qP mYk,]QAQE"Y,wI6[2x<^ҍY`.a6}Ek.`'ppt78!-O	7rM	ɍJ,~)UAIAe9R(8=ځTA%:[7=P8JOq@;QTuH[2YTt@ݬ_PpkIZ0[%7@5a4FA[&`Ujj8$:#=J֠c>``6j;Aϫͧ|^.ֻ6pY/Wfa	pL{m~)|yq[	HU'jD*%f2p@sS
7ӢY
Q
G];,p4BʸqEq%$Ra&EpyX
Ŵ=gi}߃FLTd Fܓn*#dJ8I	ncF9qOp<NDU|Eb㽯0E2N:0t"64 x aFhS7"&*ŔB6(s?fկv%-[_=6LUegy|+0;1'-x.*RLBA* 1WvIS_m(¶d42|k(lޑN~޶y-7~vZn>,VkN|Rr?5,(k&S2>	u2|C_'/3n	l|%|yrSMJT/,$79+ORv8g~Fg}KϖIi!ڨ}C_M}ݍsͱ떂 q瓑ʉ $4=Yg-ŀA6uPR7ׅlO/V29q_xVQsF~Wl4#2Rgac5I9|tRNL{0Єz~w{FA\l.+}Xh`"FP%IBi,}R\Xơۘ&&/!cR!
b"S. ̳"LP5U&J㾉4#wF
zir5yкz*\&ôvUÅ=9-n6݉\R@lEPS\K$MZrEz$0WZU[m!RНx`{]x7A{×r9q|{恻\ھ:6slHQ|*`r&[⼆
yC*M$%K+JAA2tUȄIy5wuDN.´H+rI12~Cwߋ<	֒4֝ǁ(YV<zdLC"#sq`Q(|6.$vc.).X^|[	cmFpqKvr>4s#!W׏қDv?t;Uhyn/15?1cxq5;LUKVSa%IXq^U.fzJ"`~s<ހގ9[c#Q)5\gr{,ܫՍOyJP׀&y$Rmzgez;>f]9Yps3Ʌ}bWQU[<Ņ~hS>RHb[jHSv(:-!1v̾2/4y(Fjc%BT	Nf,Uߡ?*7"᠘5fcjXlgs(f1o&aXͺ%LȗL(iYVa뺖EEj{W?Vkq4t)Rm96dF5vZO$:2!"[Q~hBn"4|YqގK"@-e0[Va+~X*ltK"uPJsKJ95c8~Sɥʌg2zSdBIuu ƻso
ΰ}\+Ui`,GTo4ocĊ)㏫JF6~vnd+Du?baJ&yַ*ÐMrg}5}g2_XCxVQs8~WlrD8	I<&bm45OCkl'1BCo{Ԁ#8Oҵ[p
{ 6̼c#Z9*07eʝ6JDBVul)IK48,X0IW,r?%KƧ#FpF)U 0CPtV$*TwGПK;֠L(JxRP(Ԙ Q"gJ	#dfZFYf64{
2H5&N4̝x%MwS޺N`|czc.?{ϿhbRe30U n&EH:E.B)5e,B{T2Rh{[X,a&_:6lN 	yU83hVP$ie*#*Sy1хx-hwlY'QRNeT%w$RIF)vQ%j*/8c@00p~ܿп^	7uNϊXܗ4=JWh3Pi5
ׇkǥx2`Pp|ԍէَ2S]YDh[\<LwT6slg4gwhx877B_fWMDM0ە[Cj49q
87M4,&Srߑ<~MIwթsҲ<O<BIv5pec-2~+S=^|>ح^F<C;]lQFtАag'aDF(jPɶV|ѩdq	Vd9|2Ԩ׈PT*QߚsL4Ryڰ[{_Mt4ʡ^xs$vJ!]#_q![!]ER ;n"#}Muj":q[qϢk@^;;Z㣒A'%^j9WqNꟄߕVxQo0'Vm{JK;Q]է8Gb5ؙ4E.$-bS^ϟ08\|EZ8pq~F+QG=۸_cz"P5!&҃ߨP.pR&=Q)֪[T
"C!U	&iRtOc٤82-rf	ZʲM}AVf0'WJYt/344-k`9%قRX	JK4R̪*R+dd+M,bQVRw".\Q*C8Mfd^G0t2tBn <¯p2Rh|uU)nb}b+S29rJID=TWTj(db%,G6tɳ"șf+iOO9<+v^;ՙihr2Y,..\jϱOh'Tsw*.P4M9bU1f~Q<Q3>QqFLLmyFJL1U:,ĘuyAW},O,qis[ۃ\Pr+e~圚fȌ¶))sgv!SQmfp#G&۸sŞn^ýA3l^H96B8tftyG̤>;I+5~y 9Kzݟ6ut 2>~wfhepx}msױ (;Cɬ(JbTʅ X23 u吝U_?a2!e%nֵ88}{̼*gvCmNLߓI<?kueͼ3,oi&}^,#sks~zum,jcnmj\,7&gt5)䳼ͬc)\/Mf%:(I>̜3eV,;M.ojN}YffX^|2<He綢5 &Esϗ5yY$ɱY)72eozцCv]L|yaɟMU^3K]RŒ6@gǢ^4U]mm-\z:l6+uKy,P͒A^cu?) j#b&fqb%LE $JUA-v4dE.sS:uBWde8GA	iY55]oʪɊV^}3ZC`$GdөkBҲ |yZ׀Ѫ
$o^Y<N;=YMv֒6iwwotk 56hfC`u`@ۣm]^4U9N8_jQ"F?rupW%].4u7.Ń?t`,W4.=UؔϒwոV[Zm\U߅4|E@3K[*7˝;P락=Y%[	f7tkML	UTrͻ@\hc>D*:meeO1glW|Jǂ1]e0θffyvp<^6Ieͱb2bDdh124jah\ޘȊM"㸃],Etb쪶#~^YX=u.{-t dZV7xwvLΪD,R0UrD4t)!Ć8t޳uvSmM""dp;{@ADh3Mk5eu
7a#`@:'A&ԛi	),iFEoqUoΣixctdttc4h͌q.RYy*̾ݞ}edA; ^,,`V$sC;S͘͞vV6+Fx2WyO:;mM/Ꝥ}('ڝ4]t}gai5LtXbK¾<cɘ&]+f4XTS-¬jmalmO:HFߚdrKP0'?H\اG#gƳ6=o'Bo|2I#"ȧ[t,F]ʉHh^e;ˈy$/?Na{oԷhqpDCi0JN݋ \BD$-XX6\fWyXW򷭭XF&%:n	
0nNA$Z5ܶ*r"& $Pr8]gOsȊNybsFdZCI$y+g	j*﵀Na=׳GS0z\s螬VC@ڮXH3(|Nmycfp{0YҾ	p?u"'gaGŔNUkwB?r#ba))}uBZгb^N$RMr!>X5*bYGl&aw	ϏMʲʷ;WyUZ}mqGuؚQVՅ0Wt4 acFi|YS5;/!%)~pCVz;q+q~65Qpj۪`;;Q4*e=.KpŔe#|xXK(i~D_&7	8I$3$o*	<Qwĸ`sOWz5#|}(l0!MĠ&3JraJ Ij=kDS"	fV{zd}ฝ9`p)E2KDYnh>!H<|v?5QfbeKdQBuk5x*H<}*PfNOU*nw:{N+{E%It"Sr3t,Z2tN9yO`ˎ]lE^BJw0&]Q)YUv| K\-9c",ŋ]74W2Ƥ%9᧴;AA;fpVbEw6B-T8:#9pNkQ3o  *H-"siD\Bۊ}83	b~ܧ@t!D5ץ^ؔ^[]óU9/av7B­6 Y㲂غ;([OKM޲uqM,E)*+N݁dFINB8Xe-H娻~a `d#ɞ'0SUObi)0q=Y	k^i#g`H파+/2П/Sl5va̱٣Y0gHLl}ĪOĘYBhkWvx֕ 2Țj({9OrBT4ǉ;eMx	gZ@ڻ:xrmh^9m6[ncyK{w[T-+# 8ٺUu\4q4MI9}Z:=wm2+y4/ˇOMo#/=g2D7%GFcطW8Fe镻j#ԣt A]uѦuSx﹃Tjb8tjiF')C~Hx:ⵉ}d:̷I L|̿qOӧ{˒;YZH_~LR |nEKc>)y䉡j~bv^Kt5a!~b+߲œmL'y7,vM%["ypLl Nit^쀗t/U3[I3*|Ƽ$*Zx6Wy_ׅ*zRQkြp<LU+jLPGrGш}otD'OO8x⇤ú
,u$W;J{:b=:*G4x?ڇNC=3Wl-T`C>	VbLy	ڮ,k?+qiK⨟a+1&DX:7u`u DQu!~kZ9V-16ZNf_?uP;@1)<$UVDMo]\G5}̳[d§ʪ;gIU'7AFB&ؘ!%}Cd|"W8X?Bg9߶"0rŒxc#-Nkf,Suˆ[R,GD\֎̅hzSeƐno[wNm9{eBWJ0p6dgvMH#YɌxVrؒ9kX?`j2eb(WC)ߜ
d[?OP-	DA3l, sh,gs[`(z /!Oey%3Wz^=$ͰgaQ{^2XQ:EH(l_)Nb<`Eo%гth.]2|CF38L+Q].9i}Gו.`{",7wĺ{a'|
nV^ޕf^Nʟ3Gy\)o@[#ƻjx4rxs$,VmyylC]ࢁOV 1#
LV&;ώ@z|VcR-6XxL62iAъklŬr1W}SVhOP񨆓l8p4_мuŲ9ɩ9ChBu	3-_Q0Y<Qڿ9Cxߣy#AWF5kh,yT+^Q:lۑT|ȓ4A_J'6(Q,"^>!~IӱL:Wc<&h9{(nM4؆r8D1v;jTśZK	oc9I唔%'ɮIO|HŶDRfCfRDW[afBr ҢdDo
s'cnhr6ovu`vPGS&ξBnen"9xl-cu҃5cvަtcrz\
^3_pnlir>U(0c4,X%UnP|$fB<U5_V9y혱%NdIۮ	M'RNm7fYkl	ybi	&-g D9 	ݸbf Ǆ[͉26r
1Y(qJF]D>n4ÄCDGbrS{P<:$Uf-W'CX";]@')Ӕ.2fCdZA?2|-ve+i8i1AuRI[HoX2b8bSL:nbc;WPwLO;JV_~30wqk @x{!1D:tҨ7@&*L'[g 5D2OXspv(̬DNB7dLrY9 "p:F' [XW79+a®y6V{Dp}}YD;6:禗jKwĨ7;ZƼ%LcqnVMe, AFi	vko,4K(h8.K8A}G$q$%K8څgg9YlkSH,5 r9r[-$?yV`ZtI8S>7S%	te1.@ef7
C`o(,k/QP[5t2J%Unf8$I_Z=/^:%c8b6j	TIk=9i$xs HQ3N(N:?/W3 75ڣ+IشltD"vy¹y)A1]C֖hǬ҉/-l5L搌qp8JT_eU^nkjE$]7e)xi)c:WUuCXԲsΐ-@\فYh"=xf[*y[pl#qu,ˎq d_tSlVA^tc L^K|W)Nߋfv],p@/DGrd$XsDM=Ya<WX-_PЂOZG8Yաcmbe[fEaWUƉX.w_jt_S/kGC c ,h!X0ۗ<$"5I¯v@x%F|8/yK[฾)Zl'e凥y8V]xsU'"M	atoU2^7'F7t?I?`G-(1.1E $?C=l]/lE|-YhCp"!|+'<#$7-w6'`ad{S'j^t̒baO޾8~uyw3Ay=h>9X8۲^6wyӊK.TBo2 ad"͎huvpAGbƭsTGzIV7uՍsh_Gn0'^dFV:x.Q xOO<P{;K#1bR0*O:9MA=jQi&d!2>(25~|٫ggo=><_q״4/3jU1:b"ltx$&O^>94["˲!'"dܒ<Y[i~Z~m!ddQh|}<%iN<JCh5_9#wACJ븶oͿ@_	tN;X YOJN*vw32q̒Ўj6Gvc!ѹ߀?֋ل'iMLg_xP_ -Q|YetvvhPX{fHwL}~׿?ݓon͆`*/w~| =7NxCn0	Gt-Zu3x_6^@ȖK{ivo Y}&a>6g$N:++q(ۛXk8)XDeMò_^Ol&b	$Se0%Ѹ^^
'	2vJĶF[\V|uuj$4Ru@bWg%l6]
{4202N$xjRc0TP?++Dj&mz/Fw9)<G&b+eo5㎃E<L&tr.@4t^b#|Vt%-q;Fe]Y KHJxۇmL@h7 10ViV71tͧ˦ٌe+JᕅH::g5lUHQN0*TR_q2]lO9w4D7*)gΌ`|MHQ#8p{XCY:U!xSvSlr%zBJ1bɅ=욟ӡ~!#MRo6SuNS}M7':6{.=ڷخVS+$#m66qF&Xkt_'Czqz~v?&q?\/"
i]Mۢ.Ir1DU.VR1,<2#x59ɼ"ɐ"9h8@ cf[ߢb‬5qPėz#a%k3R+*|bdS¡9ErDw3CṾˣDνQU8\J([UG$
X6^ %nq1>Rf,l&Jָ>๐xyBx_~%{C@;mYreRM6ܘt(YyrԣA-9I ߦV=ԧ	$	0Sq:UB3`{(&bM=9聭_ (nV`ȳRP͎̓Kk:$JA.UA;DDͰUg/zztf2$+Hb$f3l<J2-'zDRF%kgj3li8%*ѨyBA_2 r fܿߪ,(ɟMN) \欈.X>Q|GNiֵCKE"n'Ը[9ڵU$0WDXS]Jع{A
cȐT5YER)i0z"F9}e\o74lk.g\~H"R؍J1usvAUI뿟7DtJ}]K|ݒ&J ;ÀgQ q)BńLPu^ Z)=(zC;<,"Į@|ԨQ\IGc=
pfQ(0B)&HYUI(i9bM͜&9cagDIٌxg: H8CF~Iڢ!dxɒۢn7&t0œ5#!I<*RZ̷[xw.aJSNWj3x)S!DsgM߿Sq)l&:xN<c c[O$QsNΜ>yE=Sg"ُ /?59So%%|`pۨ'Vz{ޗ*++f։gCDYNvr履WDJ-{PMYsJX&&->b^|Y_cP.jY\W̢,g"\GW' q)aom s$KĲIzJ<= ;8IDӠMyà8:FoBH`РlU]Hz?br{LU9bUĊ]Hmv[-S3y-܉PS If0>iZK5I:3.c
%0슄5?aTCWcNyX4K_|t{^<aU$pW_-$;~S/ȮNb韄1$U+7Ǎ_g"^tX#݊.r	!G^XY}ar%f	: 56@`s0۰ϜˠY+mh9GT܁gI2-("y-i荺V^}Xg3+jd. mB4qԃmzY=`o勫Сʹzan#z/IY&~.'Y9bg@ǂ(ub+_ȵyRZk		z<Kl$bi'R}̓.}qO"CMQ#Q4t 4)8PG$JP&"D늴Mi\c|asYݜ{lѮ҉+6eZ?w\t̜ʸŜ)W%qnL%=rti|]8_\0[	Q\/bgƇGB	kMDV)`&lHl<M$K=P1ه4Fed;mts`[ Wg1k6⽖0v"3*wjie6tTÍXʢ[(&?U˞ֆ\WyQEdݸ7}0nHj/4Jk|P,QyFcoZBL6a$Ӥ߹hY81:]b2vku=!{>tAo׀8Ā>5:.-"HI%g l@ʱq%Z\"v/d:WT-$z𸭡Cd˭
*Ulnlj-֝~~ȏZ1$$GuMX
G#.x4CAB5HOȣCHF2Pm@1*"8$N,N֟o`0mϝKbgI?}Pnͺ =H$u]]sZ)"$P|GJ콤	*%obx92̑>2d	f'1fL<(g#&յ^`gu˝
`u(80Yv.~EIjۜm-qLW,HI9ioВUg&k}qI'$[
ˍĠ	sfub%$[XV䊉*qʥ3G=QfivfjrubBkjhZ6)U
C1䛲`Ȑ8+]2.DAjLѦOX#WXU5ڛ#Tݢ%l%!*Vu2R/ZxLJa&jK/A4eɴ'ƻP:f'7tTUם+<e.[wKN#Xs VK:x8Sqf{yrz_iRKBe݅Ѧ/͝#4;?ZEc,HUgw+#uhuV~"钌Zly)$ZrJ}y2\a$B6@¯>2zE=<Կ{6xLLnVcjCxj$2wrs⇪^Y}c(*9Jl}}~i=3Քw|iT0q4=Q׾ĎK9'Ԕ=2"Nt3fN&`$z69S_gj'Iwޮy&K-\k5&,"ߥ XXjFݕUٕűj
ut#`|dNu8"!%~Ҷpr?!3Vy֭#-NoL/]40ͮ輋5RN4ߥUK8N;W iѭpDz8Ǻ-%|l?~ a
JaC _!NaG@ZCσ_\={5~}>>?|{jwo)3eGU*7)N/͢[Hc
#k#j嶊\.pXe2>.R;>!'[ 1\h;I6kk0-Ehj?Y2c/g7C1 \P(
L/9bVeԲhpU*7B+aRKVni~j>q$&{6;#R~)q.G;[SE=#W|W~{6(+7b-"=ёɉԯŬI8DgR6Bad
#7`[vzK4Kar`!(`-H皸TGTC֗xy%ńw̺$29>-Z:<cǸKQa/9+^Ac&ǹvo'BYai*NfY5HQ$;ŕDz|B.P޽TIDL+$}аJ>9j68-o>=R%'HmzZ@¤x7ܰ{-/8^CZ[iVӊn4JyӒ&w_J3=,Y,S5 n0(Z>X:8ka=Xb ȻE8)Exp@wޗ0!'"C)^"is>J2|1;fb~Yʱ$lVpMH"})t-׶3B2_? }Hr'*HȚѻ\022N5"v">z+RSf06~Б'rx&J<eѫ8ӲE0R
uz|&qW+ҚwVAnN."#RjnsgQ]XLLz[$6s5Q=ea;(G0K0KrgETT6ջ9eyב34n\Efs^#MhbdPa։O*u!XJl֜['#@vDz~
!nฎ؈%kYgn	oΆ.j$gRǚYY&;b66܇PW,y@IT8!M]|CǐזiVOӀ|\=L߻"(b><Ȧ06t\~-i|t:nx^7$IS΀\w6՛FG[hg냹i5hX8V%I.WZ+eF-KзD
|y0v
Y07|mx nM1*+j\Ǩr'ŽpJ_iG9ow<T4X?as'+R|ߡFUCL?[ɹA)wEHK)|*_U)/	zrc$FPΚNvRyn&sy>߉V:_*q<t|%b"dKNjU_Jmmn]Ex29uw}RlJ%EY$]")I2CGtyr[b ?ʹ;=Oj>̝<O£'y-]r~"r>(+ru?,'CX?1b2q
P|"Sv[[\pPn8lrOb*
zU->|oKAi"I'$-sэu⇜?"WHb	+jΧU	٫>Qe %, rd}F}DC,ቊr)Y󰽅r._w4{=}R$'q\5_1/ӵnzX{jSw
$"gaj!S@t.qo9A FS%~Y	}פ#M2,~ X;-&kl
1T.x=pJ\̳09
dpe)Vw_뛋b\ٗZY5".Pj;m8¸>4z<	7kh̪:*_0<haL
k"Ǘ95(/4D.*XxxfrS\{quZaN.˧_~-Rb#*DCn~	baBo
ݪ:.Co?Cp'=!U5ٔ*e\d9?G_ůws'Bngh77XA$>:rLiz?"))]"ܤ]\v+Xވ|*EI5Ђ6L:|U"qn֐"{HCG;9miE.([)ٳfGf4kzq`ڃeGVn`޾x:~}y{Oz|yi⟱|o_<G;-f}!{UYv>*#QfR5^I\y!dZ<6I aO<OL<g0|]o/HsJEaˢL^CuZAjQ
٘4YDgj}S12tiM붨uSY\-ȿ
O=#,LϩzlEy	5;&#;+p\`n;c~J̳rz؂/a%;CYGKuӼMPtݫ7g*N%ݱ&?(zh7Da1ÒKpbII;H~;KcYXJu|JT]ľ+J+ 1'c}x$	yլn9jΪ;4N i}Hvlb!=4oIsh_IP>]}Hu r0]F۞#dv{wx́>za*'G.HNFr i|0I׺kXIhZDMv_J:FI8,ť&}oNuȤw_PnRB2
Fcu[^{"	H:6f\[3PCɮV>0Z2zg/G?$v,ԱxYms6_if|޵ȶfXqs;I>t:D&Z$@RΜXbw}z4dYݽoWK;?x$#n^.f5$GGg )CFNJXh)%O&<M7RaEFFRh@FR$eyA	y.f)	rF%OOIӀDDK21|%',9W*NX"R)QSDF7KeB%A^ɂ8*JP-#2XN64@(WDCΕ d\MA pE8K\Ƣ(A6|AP%TR-	]]| [N2~Ai,c}XU4D516SHQD#CN7k2qa(C+`F\Cr)ģ,=yx)kpɵCXuX7"L%4Wy<(7[ ˬ2+9f9)BR%HBɤ(XVP|nA69|^@EP1,xl &jRiw2~< &?vg3z}}{8%hBsk#(9W9|yS_3I|K-ڔԅKr`:do{<_Ac&(6Rߙ/Kʡ9607zdEo^Yuɷu!7^	["cPd̅/&0? g;*ɳdJQ"vb!<
>hA =&7i)2jr,5:߲W]* .Z*ԣGד4Js'K+ {ȩPj$]_{Iҵ?(WXi^>&q@-AIUa+$gXо)kzqTK.!wBWpC?V3iI BS Y[hM	O%e94(M pY$;JG-d6P{YΉ Q !҉إئ?vޒ7[T١t؇G
∬u:ڇ3֗|]gyRy`PϪAh<U
gU_.i[FH}HaM]jv f}uϴ9uhoX ca1iYlZ
j7y(F%xJT .O\[QEtCmW: fRc&;
;Ǖ	u$)43K4~>,d;Mx*( ՁVM蟊srKEڧ'YwXWE2I24xc0MdoXEA;,w\l uEe"޴CO,2j9;ʀ5s'iHpWU?*\ޯgsp@I;o=;(b$|*קAŢ@Qg\ՑQm[::p3W̤dX1'mn?1y-?.QW	Ƭvr>ш;ѡ\wTOB%O<Չ'N,[覺|es10jI	آv'n.	Co[$[t
Ę|huC0ːE	0k)ƖjKۄ9=Yd[#c==>+uςk3TĢL "$g?gU	:pf&cuL8?"X+Z֭poH-/F]uDzEէW08< SJԓҴb+xHZun\7_uKs.3:CϊΘ{ ߇]rbyuci\6ϬcVo&=ffh&ʕՄY6ŌL:B=I2n|NyPWUOH~-ʵCGT9gMrLv>Z\[{lj+/.s_7-L$zluqy|k}ΟI=vlÀ :tkQ繯F#z@Ha {qa/"Q@".q@@ށz>5.hmhUFWLU㤽оס'w1;luUErV[Gz+6K_ҀyǻhLy*ޕc/~	W.;
s*_pHx Չ<TxTn@}+ Jk$b[UD$C]Mۻcfg̜heQX@0tBt8N<ȌXi.k5(0^?Lk+k:]a`pBuVsZcN`Lxˋ#pհjBnղڊ
$^ZTvHZ d<B8yGi=9oJ#\im(TJ;3qv+)dM83Z&Y",LzaHNCB(~{}+D8{:M᤮ 
5n1	q]H&a[khd<!%c9*!DMF;f<G<5 2?WӉqȷsC z:Ēnz}we^׿NoGBrԌ9:Ȏfa+eɯ}v;iy*Y0fQ*);I1#PYVJuы]]L꘵xM'\N.ճ\xT_o0ϧ8tM
HvSŤmё\5cGCA;'J5i<ǿ?>]T*Q2|$>MIpʐPjF֝|O~'d<?Mt:pdU*ˌD҆=lyz^Bu
dL	^R,vLR59:@)Ғ~^-ziCiЪܜ`t~~9+B[2.1N(܎`ho<'㹔"\c}fE.,0 %G¸!рPЕiﶵ{;~}^Y`5J5"ȵ .Q(Θ=DǕr|`Dk-E9" ar
m(yµ}˫~l8[S%tyŁP7r[je,;U4ڢ:2tm++R*\eჯW$H9a3}`VaCz±כ`ڃ;nV\8jsm|vW7IomѿBl1p
#~æH|bVVio@5"f_#+AٱB5E.pYG*9;1;ZxWn8}WL;n- u\^(JcneKR"RL]foy pDVps}FN99_|$:p}.Ҽy^T$jgMbH`s7X)&v]r|/B3)h-tԖwpQ@!*3TT5WpjNKFPI6	DwL˴̩ [^Cґ%AL}L?;<s|"%}0)?hFs9cɫ"(ɣƛ]XĽ^G X^ߙ,.xߤŖ!/BR9jzܽ"4OǕ4IBc7a! |a(|eԎ9!,B\Y}|L~Z܏[,Z,'uVj>QAY(Wuᠾ\${\ʖgZ;oQΦR?KFBS~+d1$
f^^Rۓs#KZF2]J&6v(#nOT}WUٳSs 3q.D6ܙAkֺur?fn#PHKEuY%zgM8P3?98?,!#RFqXZz]]_3#p?㋩{>푆&x>!}Ӌco&SZ#;g	u.G@:l
nn53cqEu[q>,#.U5oZ(U^\)Il츅b7oBi|w(AJ^^	chg;ucawpSuYq$*vueԸF:@:o}l\01f}Q%ˣYl,̰SQ-7ݺmK .52H7v&xVo:}_i6Z:mT	&ݗ`{N}I:Jw;9kva뻛,+`GgrMOڙL`Ǔh6λ%:Qyb%f'y0E{]iY[vH(JpF-kE_P:R[sJI}Okci`_5[JDxi#o#{҅\NnюIn3šUze;Ě;ݐ㜔iobeFK7h*}(WJ&5Æ댝QPxq>Ebս:$Ci+ pT{^Buhm%N"`@_řԞt£gJ6vo8hU}~wO`ZLӎHSX|3Vi'@r^XOF|I=	_Y=&M;+,(sok91	_(9ᴖSKdRI/rB[cם1d-5eJ&9xQ?4IhqJYSHAx|(WWJY=h[Sp[V՗Ҳϲw 2yqOgǾ+xcȕo;ߧ~81iʓ$np+YlJ(邖zmelJbVɀ`2$1 ZI]ҌV7ź;.iFmKֲl/$+Ъ~Z*=-WmkCqVo!3etEm8[_N㴇PŞsncpԹRy(W؅s/_o`:?؟2TxVN0}W\KRuJ!ԕ4`^FSBqf턴\_s}SiQNXd}1E8)z&Ƀ +s|J˚S:JDZJ
7pMK܉.*7r5vr+QKI}037Z"dr`R@D@:iflZQl j%-90)x\%WTZJ=;QdO$3H`m>g7EؠGR\du3#;N~u2T{_RRl[񀩁{oۋk3RKBBhh
[8B7W@dNuKt l`}Nƍq!bQek?^!-v_Aj-VN$B-ved\)}#v;Ta]Ӡ)8>ˉM=9G`{mx~^q.Zzy]zO$~AAEk{8;I򶆵xZms6_43.ȊdD3N|8il2D"][ EI尿hڈoS"&.bҟy\`QpzB9\<W;ωLqD≾u:|9dS<f1#בH?^(c[H/`8]3=^(2c9L?&u?+f,0cc483#jze|iv",1뿺roI>*+_vmB{q>F?#iFp0d.`"Յ/WL<],VahOVA$dc!IglY.&"8lZcHń$zV:o-Q9z%Oa^zn]6V|<4io%X	?ֻyh9H:R j~d#} LjA͏9Do;(g4BdhͮaP)UU4o`=a<jlMxu{yU΢c!!W|"!""(RnBe$/2׊T?/?OD4GJP$J==l"`J m@Cɼ_역)}8Ք3'Cf v`&Gb,mRPfX~^s.ww4emk$b%{:EGG葇,g6@Xi2h5ZJ IIq2
1Dyhxa#I5"}=WT4C|&kV5C1"|)H,h.Q";UжC)p 5K$|tYZeR$Z.lwJaJ2P<HS(BcWXKʋLc4`1+7Л[VSREmdNns'[Ϛۙ[\:r7<g
g7;s#hvqrx$n)G0@$x$TEП
"Ȑ,X@ąF;^>tRAM9[fU1=$D4ZT(x#엱U_e"s"sj?J8(`l01AMMTgh	%,Uf7&ʔfX$*T@tj]AY9}]A%xeʀYԋ>0OD,mj>ᆹɇ{K=tR 7"E0uCFL@¼U! 3o"5(5RP-:]YXC9<ʹ|10U#ࠇxXg]
o3VaXYߕё),w}ytM'S٨g@2aa|5CjPzL$gonJp
P8}_/ɓnrGZ>zWgFxbFcwXy
FVm)fW\Q(rp!}O`+{EZ_w[c;淶.ۗiO9nKH)`I1'hF!Έ·'D=x2zJ5>ֻOVvS&ؖL+pHWyȳV5AuZV%2E8S:7zA\6WlMXTj/'Z5o$!KW=2=~k5Pb>&|e?հY.%o'5ow+)baJih*ҜU>Qvs#_wHRb3`Y Y,@\XUAWeɁzMʍ8;FsOEwɽCtjx+C+1Isj7;6O7=ۿ~XJzF(Pv1Zmڟnߺj>/(h0׏ݙTvK j9Ls*6_:ۮ*"!AC!-׻/o-PXY-JFu 	
:"1delS/y~yՍArSőEn9Ա)U;xK4WU$\KR_z<UU+Oi}_芥{mSEHe8:ڱ?%dOcb/iqHNhRC/H
7`̌ 3^MVSO|۱F[hg$Q:d=UAU?j7[vN7Nklü8fSWRTcZFV Gk)&n}o3h'1e47w
-1`P*SFbp}/pi%l{[VF_-	%)M%-=[K?[}́v[kN{t$BQ;g̮	=-ݾؓ|9,~/Viʇee/:X7xks6W3RfhC(0M3z+\<6dN{uH1I>X2].1Td.kaF_3IyD(&ncG>{1ZbB)	z^ʄ<vk	
KNM b7H*p.A2= <Ղ$f+
~\9QJtPSă֭O> 1մڵ&	{Hyi99
-'*Qfc[@Fn9k<dFTUΠ{=jǵϓj݂I1Oi+&L_(HT$JK<ݳm^ A7]ˎ9ޘSpB{2alwm2אv*Z2ELiXA_/Kd:3уXtT
&Nص.(n9rRrG;SX'7mtsbv9Q_QϢg ~(J>D" 	SR@EzK+HZւ+p9J熔+.k!#798tf6rtۿcwwT33;1uԴ8tKHƻ,uuXEe&	p3ht+{9A;j/KAs~sاE[,\Di)5:9x'[sB>(>ժ!S>(<~}lpϵz]ͣeuFLH;	މ8(ә:\+
=q)o&f˿bQ_%WdΗ.ۡ\$R'	mh횘2lҪRXl>Qv (%b:rƂ{e,%N2[2B]8Il&qQ+s*ClIɔpʇϹu&?ױ;90Brԍf&˟cSՍh9_M4.R wVA1yd\
!+N5Ѹԅx=ksF+JEr	J(^'Rn@e$e;[wILO*8ۏ{_YO\?s!w/^4MҬE؋^L"a*Y.^oa#
fCwt9Ln1a'$㩫\^`^| {_8g{{9C|ǽ"9'Ékr]ރD0|4|oM#.֬8+b?ىESϿų|j%Fy{{"|?媺uk 48噟+`vg/* 4I"vE/^<Y1O=!Frz>]A$
v낉Ry~@;S<=q$(~kHc{`Y?w £dxQp<M*}/p)G!/S>-cEq0^i/d3|N-ʚ&I	~`1*OA)ua.0vE=I3&˓
t:Tz!n$ȭʓ<v,Ex9;NiBM)5N
<8XZJ,,G<Aw=xgFkpR(4I"O蝥ɒ蘤 Gm-J#?Aw.Q?97ʆU
QBy5%S/r:JZ5#Bk3 pG<`w,(8H8(Whxf$e'ϟ3ůAQۺ9_x	5H cE,̕2g{1qoV^۰Z# ?QHu[LyVD9Bʿ;@ctlJOD~|+rJR+Cｗw _ĞYo&<](WWs:IȓY'ap.aK }[f<ŝ $)#W nXH
4qga88ta4ynB<Ϻr4͝ҺYGY0vxM|BQƛ]T!N磟spdyt2y{Kȼ9w{3Ls  G,˃~'$My}/[06p(ðBb<GLRRȕ7	 /8rzr8pzG@Kr7FSyeg)NJ`ӝD8Iisp~k{G`t~x#E5ٲRS(rups%J~hd	%#y:%MӧŸ8u>mnDnn1k2AƓ\Wui
!NX0vQZ`oJ(bt"tɱtzmTZ"48?!fd[@7Fɽ:!D^Tʋ K;6c9g\#ڤ B9HSMU*tU>2sMKjHNfh#Cӄ{sHh+6eɐ݁G]xk`F)#b8_Um֘<e=Zv)0J~}q>U|`.\E/vs~\H܅4?`,9I9T{攍
ӷԻ@FQZ^9dŬ!4oir9A\Q n3"U, OKcBXKev UUlE?h,g߀ҟeW
Oڝܭ¨Љ \	oiOBraEy}z)*ba;/TWD9z-;%fyqM!,wMCOA򘄇Ũ)>@(4xʊw!g&<pyX"XR[ ^yqxB,W	B݁QNSI6hM,fqKRL>9iv7dY3v.{>O;qχ?υ  G9☧~@Xscy`u4vZ@L9ߙ5G_<*1s6L%{UDk=r6'RplD6NشT<.OJQ}vbnO^V g{y5qÉ{}3>1l㓡{r|~L!YcI_گ	ei^ۖh?iƳ/<#7Kv]'Q? We'8qc<hUv6趦[NzQMٮ.F{3qx2]]nQdfM9qZf?[R,zsC/6iU0Nt89OxĎ3ԝ*`YiS{`ϯ,1ݺ2߮TӨ!{߄xڶFm(zkkebMJ@h/^BjYYmAFZQ\<]8؀f+w/ FЙ&p-+UƘ=y_>l={OUafG_,8(<)G@>Yfc$k9PY"5fcݬbjćCqZ A#k:ՃjeYFۣ`S%5M
`#3f,Q^n"XmA%O6NADH:8nq/7XXR3TNhVFWjRUOFA9k'03mB,qk6P?-sm_jƣZv̻w*}(I[/Gt7	QjB[5o^Nj|#Ǎ*p~qіpBgv|=55B_4-6Z"$!DYT!nO ˃`P98eDا߅X>+bk/k5	7xN~bw{rEI=	Ci&-NVe	gM"|#hgu"='~tNx(dM	V"MkCv$0kJVjG+z
:j0zcd<S@S^x>@O[2\O0y!PH8b<;6fcy)EV+3JaxedIRaM˺gV|8K- ԫ;r}:`نGYP^YwB^o$ǲlwlJFuPnjXLuRX1rzؗ
ډɡ*j*Mkfh|gqs%.W72B8:bÓ|!,(Ab%ЙȠ%/HD0M9Czg
PH!)\!xk/&
=>u߉\P ̸T@I u9T=٦;яfi8XY)LYm**:ÿN7ocu m޼c~FF&/oϵٿPp,Dot_! +in:H|;/YDy,XƆ1'^1܎Nus8Rfcxpm74nw̟>)PH9nKTy8-l~sz8Cɹ<"1.5qͨJ b-[3fɯw͢s;;h"Qr'eQ8_l2>9u(ymOðR}Li1/=*z+m{Kz?}jԓD`o5frK)$E`ɫ~~lelW3	syN\ۇF+
ܴo[7n?;2E{>B65z9<,ywd;]V!ʁFR]>4YCY2 Ř
4DC7-*/0m^1;+7Һ2ZeP.7!=-o^9е6?;+Y[޵$U+x,5e^6`"}R[jvvE^AWpm_6R6OY"+[ZeZ%r]$tqrrmD	wrg%%{9ֲM<7pr6/Ȧu`m&h^A.2Q[?6pSS#!4 R<UW?M~)屦(T0qkX7)ϒx8gOݫˡoj]+EUYp!]fu~S_3lp{"M~&JmIG@jy+[ LvH 2wЛ$!'[%Nħ&&.S'HAe/(a6ge&ӗIwFq8~(qM9hk<8DDѥ8*Xca + y3K] XKic)vW,KO &"B7S!98CG tTQ	)㫏(}f|]\CV{u	Ԇ0UMjrN\slƬɕ{|r23}]كihZĐ3Ͻ0X2cNR,J\ĕ|@oB&{+P'Ȩ1Fbz7'QGwoQMG96&ob"WYŋy/iO/ляa<{_~WMadnsڈľ%((d<nhiX{lzL~n[;OˋK}1~buJ$j`X!<Y~ֻIׯE*o*;  @2)0Ĩ!϶S5A]]3yCE<bښ'Q~wIRz4b~0nUm}v~})bWeݟ`v\a `KiafjUT	SW,I.
T(i[$WG.u֔=,\X¾83y(uc:
fp5;DaA ¢y&6s}o:G5cݮ\+]/o~$H'27G[z>bl>RV5i~61
7J]c8fxɁǝksZ#-}ǎԦ=Ovwb|$tC^eO3b	SXqPu.m.<35pYj&}?Of
XpFE$L7=\U3JbJW_J[m+$$=_W/SvD+Hg[ȷ'eG=<Qt2qTڸkv(_&AtbU,I yR*@	(YGF*wĶ#$+Vqp,WjQBK68.tLJlf&Pj1buQ?,k2ʗU{ "(EUWJ9kR, q~Q4u65+SU
۴6W̐fC\|ʹjNMcC@@.ChM7O(q1o!CT]*Ya6|H!O=7EFׁTXns]lq¥˲H"B;8ؼvә:keB2d9OZe5lh;O޵mDL| %f^\ޞݟ7ե yyឹ˟\[qY"[_d5\EsqVfj6jŞoy/hC"[ٿbdUDT=cb%LrX}ZKz12{O\'Qء4".KlQArKkhhBɦd2j'.tPD!F+$~c~2ܸxYoH_1Mri8br U͉3f	N.gI%>lؼE:ݝv||ݱ8rۥG&(g>T4 , Cp)P6$q.֥	:++LKAr 䮗fΒϳS |rQ{B)˅\~9d*4:3y6'&3	=qIHLWKN.$*`>e$y!Q|\ʕ+([?]ppƶ<L'Om>.,:s}FErZ?-Vs[f3YLQvF9ҦbΉx)C2ymAsMB'	Ɂ@"9|l}GVˆL-u°pmrQ^J#7.տ޵Mu_b>dKX02 nTV~@
 3g"?	>&*Hv nxZZINZ@,u6&O2kBknF`M|/Gl/ [Yk@~K~h,$F$Qql(X1]ZR5HʖH/V:sZA~|!/P%uʕ~\:doHEt0;}^A3e
ǚκgdj#j&fUE*TdS|Dywj.O;5ZGs:=-~~jNO"hb=V6U7mϰHdNǵ㪔С;2nNganc{ȱs[NbBxh"b (P0@B8gTU"	M(٬d¤ق+EbmDۀ]ԴuAxM +x7%SF>8y%f/.hez8F[Nfjɤdg{+ϴyDowX257W,e-/-kF	sYweE^b6⠏m*`	`F*]XI289/u`Xk$qSgp8SsCa4k5δn1v1B|aZsA@jTgj|}s]NzefVrѫ׭x	uӵ1o,-h\7X7Nh+quլyoYMyޅ$\Zj]f|;v?5t1-TTKNVWzN/ܗ.AH!6{oSz1>X׺s.».TV~W7f _KD`..#I):jSj=3zd6Mz'eTxO%HMZms0lc0uYB/ ?Y=[Fq_v"vuor7p^qΒKy<k^
9w̈́P2&᫬zLIܑm.:(QT&J>^kQG#z&GlgV~VRƈ(0 pidsa|T		a@|plPǂb	byןla086sx»1c\оlٜgLBzW(	AH.WͰR&'ŰP1wu!ڦxgaƿۜ9-bĲO'xYms۸_i(L/7r#+}c+'"WkT	PHK2IDgзQyp4Jm9!Qb0KT[m4@W*K>S$jz^_:\G|6g*	cV4qYmH2Y?&C:wV\lWWx=W &.C9l(<0ϑ&6dŻKq ~8**^DyW{egrP8*CJ<kB6-C0M˭ҧm_]>).;ч:'ȼEᑨ}x<G|b>i<guAA k~f7;|1bnDs7ELxH`B&KwM(H{:nW_۟(K@F. M++yvވȦ;\6ez`V!ON#@ruQ{Cxl[`ehɬc,mޟ*z]Y.[{UqT[t:nf]xT;[^;1mk0(4I6n!0y&"(Z~ΌJ2xkIU5sH`A/ ϋbs-#1V	*嵧PŨ>w05+sQ*bQRS<yp6RDCب(`VУ* 2%ޱB+,Q&"(>ԮG٦zG1܊ml	gAᖭ`f"V
3lQB!4 x$'@胴8p)R0kvɥ}5<ƮSQ=i,p=õ0W!Ü5a[5ƨ"ۧs_C?ޱ+-8~ Ж*R#`XLCĐq2K|-@P'_KY&&EČ|>MYsɶzn訹x,RXDW#MZ֬yV5Q=:UՏ
4Ƌ#ɉڈ|hm%B7T4tbܓS`A33\RSB"	Lڄá0hoL- #DZ79
'Y#Ms@O%lSzq|G	!bHR/L_^8u4h*볌ǨEĲ"?6AUsd4H8 u ZDl()e%8m yŋ7125Ǎ}S)cP`v.!PTnX_屡3?x HksDX˓6UBG#B9j&F. r
	bYԑgi&U]T^b'(N{ָe2R^+{s,ugP°ȕHyGOOo|rQE;v`êGlTvtU !q^>
"c-oy5lK힤6kҦz#Ϫ~.e!n|tdYX*n^b@=Ɵg7HY:ȖAF]ۧsm/'㴣}޾}l}n# Pnωo2$|v(yDHlRF\벇cT"KRdX7K]d;zWUUƄZ4>7,BH	\$ݭ=*q d9$yWr1gJy|EK:|}5i3۝YJ=X4ς'ڬ|~|v36^TV?lKvA9GXڷA}8_ۋsx^51.>VP_a8ϗgoY?9q?,a;skv;mhk)4@P={~9Nj'٣&sP>(!(~P"V_
q݈|sP"J.1?.=eL#q#Vg/oÉx_o0)aUn
	
@M*N:U Ú>_d=yϽ/ױ
m#͈1>eet4S0lˊgt{(}ǅab0+WB+y@<	<KKM^rWank[C6%,{i-΋5^ڨx'>r}HrR'әDِ1uSN9[YIFQ!Ļڶ$W'3<CK2>F_~Eh© H2މx8!y @EM2~FL:%EqP#"Hp9*9w;D$cލ~"Ȑ,*Ȑ_y j}}O}(M⭗/Skq-\Sb+z!@f+y\Q{]4q//x+D?P6cnXshD;r~yϋDxV]o8}WJWPuݭB(	JB>E&1mQECiV9g0Tc%כ~QGQ2/sPFT\@ʺ}*\_/DZKUԀbyuZ*!@ j-ba'*	jYsYr2AZOFZe#$*oQ!r%	"n.z* Y"dQ*`ʊ}JQȭlxG^c)ց
Sn,8KmvML]
(
X)ю[aڨm$lj_H,LZ}wdiREḔYRnRըڪEٝq2	
[_W]㖐;U޷E6T2 <`1̢𞍼\1~_8`$'$W~E^T|桙C>bbj&)K7	gƼ({E	Z[1KD10slC#DX0țzAGbBНcQL*!bw&?x>,V7]65kN;$Fb0	a3$OˍL5=܈ԜqNbRhp05,u@6S~E\ ?t~:I;_%K񁗒F yWxNv2K*o.^ٗ\Ts%ˢ,qgZUBS;gGY$%Jd.kw=i5B NO2o翃E><63bW
]KؖJO>9i?{=8Lq)|'^ܼG1٣mes^LqTcp ^tj[Kz,Z&'=v̀pjCLtpuâۻuWH{MEZ^?Q{=zʺaz/k۳DUK|6JEza#_@,yAI|A&l_
'N }QoMRz0@8/hay
9K8|||1}ӟ9qyg79O}x=s6@|(Mu(2m%$'ͥ"!5E|Xї] $<zכtZb_@=c`2f?[m6|l8ف,04=5Wn܈AW>۲Eh1wlr΂9Vm s<`@0-wH`x	`oVkHvXPD G9ES9@'qe,,F0md{ sW!}"DĶVַNf-q#A-h>=BqC .,H}p57F`b4fKr͓Ї9s M;cllJťE])@f	a Shi2f\R;
Hni(p yV50dt6}l0aѫqʎz^)pXo4ؘLhWח`x^h.W)hN	m`L 2h\ol0dvp{771_& q
&2#o6]^҄XxXGoƃ)] z//1\`z180i0AןFCO46,w<Dz01ڬ7L8gU!uaЈС! !.7FFMp޿h<h&֝cD%5ms~{[G}]e0D;%<#]OԚﾣ$t]/Sh:jDfm	'Tևm5ہ?OjYν`fyzKX((<+k;!{)YG
m/S836~in\?\97BVu[G_tdo~`(hݮn7֊Gk47/6j(CX;Ic
7uWM-?4{ 0{7þkc|/A*W{X&pp#}(8ɺ 5crb#uؐobU=q	!jcH5󸟄!ޤa/hTDAsuAqi3%6;f,U>f6`p2|o Nf%xoIZ]Lۊ%QNN/^?*)$oEUdAqXmF{	Zc/YHghI {GJNT,U{	]%!u`bȽq9XBc.'a9p 	V~z2y`aw75~6N0_dMWbQ:Q x	b_TV,z;`C[ޙ=$4K-O硕D<6b"$GӿCK<"8k` Jw|4 ^;EKTm%ŋxƮP[v,SxE=G6_]ychyd>r+
+Ss82	ْZ9]E1S&9gETݤ}58E7(Rcv~~_-62Ӝ~`p-h>ShG0+:MoϬlv8
N ls5@uLpb!C:t1_!UQ?*wT&x	a%L sĸe/-nq,5m=({k샾k
rE.X:yovk4G^ӬBj'B	R #W[s
*<% OO Xjlm$JD:Q)׈.he^q
AM-#:dC*}pɜ&l``dj弡Ө%n' f*]'R%shF|]^)I`)I*%66]~f(:jzxSt;%-ltd!AiЧwG`t?̸7L
Cc2Šr^	`839 ^ꄱ#yy騝`~4:tJl?{oV]	f86z$US:ub#S W/3~Dl$KG/t_)")G4	\Оb&@DV\$:U++z	?D>z2B;*B~S=i9V36!_|;uH\B83]Gz/Q\dM:< ԨHK|E@iw6-VHY(Y=x7
hmJ Q \ >THhKJQxR(0;?8l%oэu
=JMN"&D{jD|h3lWJz1d@ut?ltB G	d ~QD.i@\Rb(יV,p>%=~	\,UO}Ra%(tBI+Z(|g	oA7JRe?NrxXvE3._Y8Uu#NP1aBkl).)vS1l	TXIW| Z/(̧ː@cEmcC!-*s>] v1)tZHmbr	u@8Z!c~pPCdj5p_)$9y`{%Οɘr sCNW:jXf"'պ@jǌj;fDS=-Myd{5|ayr#Yb/!Kcl`H%@뀬'utV}PK<Ha2s_qׯ*K)HLJm9Ɯ2ZERध_Oz
s8ovMFH	U9	,)v>ib#ajk{zs6OrH0IA3Lh!Fc9f"{|hؘތw|d>"TSQI!JT"N%)KW>m!*|gm0O"vЛxΨi1@;0Y>tC9M:XpFt`HAnvpb̢8	i"t /A/mEj\mu-?	yEV)v6'-sB	v1߽PGyJ&QQMi|Brzr3j>eMH!I*bi	5lgg$[0	m0mQ9pf/1tMb;We|R̎1qhS+99i3SQhh|#OK(W̅]X^#	5YjQb-i٣a<߹FHU92܉7ң~(<0T S8ZP5_E(2jxEle"#	׵|>5\mj;˚WmbŘ]X?/yiS3p
U=\ƶO҃%H]"|K+?/qpe`EaXt^xGC	POXSHц\a&.QqśsXx;c@N_'L*Cd.t<Q"Q9YFAAv<`_̶1e&wBZ\Z RrwϻH8<߲s4t% H]L	)0*ƇxWr@ TPn0u#JZd`=	y6ASs)Z&X=d6FmC2|	>S}p6M	VxPq72to^\8Boe
Rl1C˥j/	p҈/Tʡ3D%S~aEh&+,\9*N<sx;	#q[(oUc9xXC	/1|9-STr]1Oj~jUx4.J̼:us_b	v*N"vDzb`)GElFQ
S([ W#&0'04J.$ˮ@2CuS]+u$|sZ
T拦"'״:
h/k0p,&',ma Bp,K}Nc/VAO ~WJV;ߣڀZ' @N$ZinG"SCͪɊXT]ebA쏆io8_v 50]u-'_2'jemmbeVD+Ռ_O+jGn 3k\b,9Qݱ
mT&j̗_rMAֹv&]U[Hl>|x#j?3oj`;wB"oCP!dD;j(|cUmObqC%,];`lECpI\+HQ:<FM{ľbe9{ԎFϢ;ͥRjԹ	Jkf}Ěk/_`+ˋ<ni5)`*Z͌DQ.˃ՠ&8r~XKw'r;* )^UqH."Ԩ-q7o𮦪⣤#x]+o;DCT,%Nް@xEa3t|Ad)o[00.ܵq@Ą4(Bi(t]$\v-=EC
6F˅gb!Z'!뜞
Sat,N/\*xƂ'HZbduoȸXqbyo-o˚+qMzx޶\,B<oadFUQ睔W6^h,y	-IBg#2=ʛ6߃"TX>	0k+|c-vZY[`[Y,`uO -BkhI!I%XTIcC`ZORqLY5sɗʴc@hNӊr)J(DjA ?V8K֐Ho,HhA÷n[s[wjmVly_g;oء	 p^iNZF)P!LRH0.oi[A17XIlm:֖+Na$~=ٕع$"{ilq~&c܇
zR9vx'oJF,ib+EMJ h 3 ,竈y?%u@|p4ȠӅEclc.++
uE60cώEtzagu5اw^箂W[J52o
u/OHYrUV+'5oങ̳(9WE_7pHx3BG,vڠVӿ#2(켯1GFrW >L'`!o
E;'#*#h!w9$0nh.V(6xzbN^}0ǟgMc@Oeo ,mxTMS	4kHY7Y#ۂ2ձFأ%dUA wA)52<됁|8$ͩⴢP>(z綳xV}'W{|*;yt*(Ǖo &u{x6-aNƿF:wnDY;Ғ9Bk*8kq*M d$|X(
d*jrN2zLJ@a)kmZЪ?Uq& ׎]VLA)4M>.ÜT1w?g{D3%+^/vUMj{<Hc|/|jxG7`ơRQݐB{'tآ=/;T1Kw_!9Ef^ʳQSi_J*2il/epp7wqf-]8=?P^\@[YB8.nba(d0<ȕ6Go$nD&GIT],IU;s=ρjcS'~/׽nK<FQ*|\=/$)<x~ap/(FT"Zc4fFE|V7^HwoDg3TbI'yUX>5o.ԍHc[tN]*+(|F+av1:rhzYQU;gZJQ* YDiӔ+uoךsd<uΕTfdK&&QF?7O~S釕%B<fzlS"x-KJ:ϞhC|N݁sV9?ީ;cZ?Xk`Ɓ:/k6BW/btH%m<m|S᜶$'=RrU4|Ə+i<p
ףrA3|TW4>u[ٳ,EK{DMȩ)ӣCtgA9JËJw)@|/bahw5:k'3aRJX+z%.1xZmo_qHd&T%J&1X IS]	as3u~`cIj%<sϙK|'O>ˊ>Yt4Scϊ</
%Y"D3HT6^SN}@4Css$&Y=P2!'SD|R<Ӝ)<J(BḄ9\rL(N\-3B! <'Ŕ/
ș@a"	IQ	SHYR#~]ErۇfJb&bڗ0q"JmḐ$!
ts,M%H(7<9rTn!J՟|-k3\)ԢaQ!G*Mxgp4eHUe /tuɍ4|cꖘRc*XBiC\r"
t1ZwWڡ!߹	49A8|>Ã p#87ُŴ>\r<0Ge6mݺ3LHj;X7pԚI|ē#Ce}1q5p5/0;K\'Ȅȶix;% ke;%>z0c)WCtK3GʱmE fV<>2m$MLǖ;z*ȩOy/s9>H"p&%p
^K;l82f!//zdlhყ0p;ʻ$|@Ä,>|qIX%`!Wq1=iX,7DTP|2:cbN3yTLC{t'|Ggp=
dOgaZپXx286:Ļ1-ҍxa푯ŭ~#oN3n6+<_G
\㡈:9
0҅}oITL1blmD:m:AJ);#ǆ[Q~Y1:?ϾXuc|#\};1Fp;5^3N5]R5Grô|ˑBo:Q_9:I*m{?>3oy
/аtlL;Gk/ncMxl	/j<~>⭫lgܑ(4fx_v=.
}uw{vOB%[m{w6k/OjwKnz%hH7ƺ7ʺ;e`o1Rd1./ͼ1iI׆v뗬>ӖGE8ڞ ې9h;
zQJ -g29-_4z&VY9\g`NygBXe<X1Nm[)N kt}WYwPa[ ~h6JPjH|GnYQ?_]Y</WOP{mɼ؞sT#EyhRE+|3%MX1fKuyV[D!- 
9[*LGyC윉9&8*8D$Y"9\J=q`&8:*9.csTBRV7|TVގ5	YdDf	nYoYUv|,]B>6=M"CEǯBP+ZT8D\DLZAeTz<Stt1P`܅*S<RG]|Gk.ɺnPhf:-XUOj7u!1ZX<^]7%c M?aJȓ	SZ0]:􄉽&jAet~ !@wkE%McR9OaXS%dB/ݙ1DJV~6J eVZk͵bv=K$ގ^EV*ݮeƬ]'̮H|qW)-(i+I7KWeUL;z|B
H̏\M]^olmMZ]ȏ'A1Eo iH>Jyze5j6'fp7Ugpc;lI^,(zn_]	%	}ʸdͨlNWڍY۽z3'=0{ê 7CcHXK8SVQI?gܑ9q{p7a߱H1bBZmtW21,0U/_IJ^H+.|}ïK5[%9|O}[/r5RU*[>PV#>3r>r_M`;/Ѻ oOk_4/w]/jjue}x!X)fa]~KgFQyRƿ]ƪm{KSBhPӆ4uO~<{KEwwxXmOH_1R)]0pA*AK?pq6ɞ۲$6f_B̳ػlU|8cY@Wljuhy|}կWw{j5X1/Ov$Ni.3F@4K!qa9q n$Xi@N>}lۆaN8]5S=1 <E%9-
(j%orpyeAhp'$އ$ȹ=pz
7~$ݐҍvM)}poɛCE8]؍b28`،dbGGp{Ѕn^oo8 L .OsFaS!!81=DXN@`Z.ldN#p
GDE<W/ }RCa9LaׄK90ʏRvВ]BÙ-Дp&<3YdN]gIQllo1mw~+lۅgQw,M06!b>A8KH&:m1%GpCǘ$">1_hV `l~'>?Qfe2"~Bmxd`.UnZŅ]u Tf	(Yh^'ږčqOÇ>&jԠ>o][呈qDN-8?^tUݮmnmINUZօn*+CQx
 wC ETmUhKּY%ěi(<CӕeD/+Xpe#?HS2w<D)%(FvI@,Kc/&MS ءyzO?es3'}˲xwkxlPK'4pD$9ym%y($³\7XQHeOgCe$ฮ~ܧb):T>25ϲrSi:l=ūG߅6ղdR'^ E)Γ#IR!uW[Kn#ӭt3fInZU~<1jP")qtVfK._S&hX2ê5m~ TЌ%9h".C.cHC5ev+eْ!VN!yWZ-uRrV 20VBY帪T3r"4PGTv8k+n|Rx7]3ߊ7Sw
^`ԝ>b$'MDAiLO?4{ӂu?]u2DGZ1NiWosp='|G7
iǒY#wٸˣAeVF2*@uKP\\1cJަ$ѽOw9.HwG#R䖖Œ\rҷ+b4	bJ@5K*Ͳ@QZeV2볲R%ɌqUr`ؚPh [c͖Xm)r9A݂,;9}JMeTHBW[qM au8Ta[m4NnAH^Hzd5\zݻB+ w|xUr0}Wij	Pڒ!n8x,#['ޕmC v9ZIބltj:G!M qutk[CӶPWˠKߙr:#rt3!ˎq2c"$pVD0h5AhOH&Z͓4}b8}~_ӄ$ң@.$	#S8)s$Ox%;4߽?:b~l/g_}/!ZO):zHn}zcZi-NOthvrZ<K$%r*s=T[מS cn]І8KfW`+o4ľlȲMwdt^Vs}dw9d\GE6W$oenU[u[(Cr6y6e4GA;iW(v<1z	 ρHS; =n2o7`|+E;kz岅W99RI}[!#V#y 'Kԕɸ4UЌ,8+e7њqlkmFQ5c.s<1N$MYu oC4AG{Xf8Oh5"Sb)+d5foUBYQ2Ǌ^xd09O	[/Z;#J{[Q5tQ|;?=xZmoHίH9rx ɍN'xcld䲻v@E']4]U]k7 <GrI`'p!LV,q2Ay$NEk/0 /$eϰ anc.`r%kAgذ(F>q9*A
%"yr"up8{7oרЖg1h"	82%Qo2/@%xUM b13'1-$[5!1)=I$w)m֡-q6{ߋW-z@|bDNb$Cѹ6		ݟVhµFn8"||_<'Et=2-JGZ(ѹLC&Іɝ-╃f3 sIB(EI`HxM}Fe]`N.LÄlC8wu= )f&Oxәn$j2f:2t|lۡ1dO,7r	SJ3t>\12/-41JKۇifQtb%7oIxgu4oьIZ&/3ڂh_tZ7XMJ4Rǻk?2eLƄ`2f,da-MnZ@"ӄAֱ.E!	~&ak4#gJi4ze0go#ȾoqخebAjPEjqd6jP8wbf<7:#em/ǟ5۾lzo&ƶ,mxځ ˀCڵ}7w⤽6C}BQPu
7FYq0*7Մ#5=x0:|Zwp   5!ڮaі-WZ|hǧ*gz<kYFteib3E_zw6HhrdIG;=7uPx00iɅ:&}x=Q*q;l7avCMa/.iК/iKw"[c(bv<2>/ʉ퍀vAm $C|z3qhΡH~i3tvCyDBԕ 
(1>҉UR/xbC.QtͤԾj*'M3?lFȹsoy`W'[z؁roobse U&e'!q@W<E)AUl"\&*`ѧWbsH-N_}]$֔.Q_T)t4-KLrIQ)@ˆwRT ueXoC {)W,1r
U;s(	74T+*JUw$(oYF:X]Tstj*:J%m8B-!pW$fSQ#ahRVa*yU[qAJTTZdY+'<*6ԿE|_ur	)XҾk""	#"zmP$!"58+ #:yD<msmP׍xkȕL7ӛ@!$$D=b~O1bl8A.єNC>'DjJ?+
z"uT[]X%&.q}gOi5/xtܲ[73DI8Й"!ȋb}açj 'f<7*V*qaaajf.5q<hAW£c2J|>ۑ^\01N҅ʽsRӔ,I(uGaЄTW>=[Rӧ/̒u(׽?GohĕDyFhX{jP^qZD"?Ho6AJ҉	@$hSR쩼)qȷb6Ǻ;)3n?g95pdj%<.`U3 	ֲ?L"/X`%Ϣ2wƊd!wԖf\S5)j|%uU		/[a-UC6vO̨C3'=1s!`E
G@l'>uFY04M;cjwcrDjm^_:h6Qϥ+B-;Re. `OV94:Ύkƕ?Qg;o.)+fvE9/}IVߖlq[ʙ4Bn3"Kңkq(vMty@~w[\@= %ũĉ@BD'μUIdțUR8In<;*c=ĳdz2ϳ
S\}ӫ":ֽ|PE$+֖_XJp><ZbyV֕*Լe`g]ݮFw*C0Sݽ1,۽]t Xwj7
ӭT)&O;}j<hմCl!nDNV Md4tWECmJsnS*/JF;<t
*ݾ}5|A>Ji,'I^]U.ྥ<L?GZW&MkYTUhxw|,~)v.W?qv5/&Ge6(p&ͭCͺyT
I&'Kq,Nwk{nnŹvVtrk;;SjĐ7?Đ7t:Џq)>X=~)|{FTD_˽ˬt;0zr"߄ߛ7QƋ)xnw){tfh Ƽ=za-b|~xZmo8_
'q\Iݛ؁L 8DۚȢz>琒(in1yx^B/zz5r/z-Y2Wʈtd^O*NMt&+Tͷbid-F)"ZITmk܊2<IdK!T&hq%4y( )bkp(s:rʊX$o&~ӛc>*V2IJst,L	)W:֏%(m[u,46봅疞G*6ª4%"	`ky!DiO^uS$kQ+k]E9=
Z4Ϥp2NH4{9E9O%sΐ\;n(]I1W^*&RP3ĉ	цt羘.q_&v<upѿo~T`Ÿ;&F;M`x'"5ǃab0u8`
У7q3t?r0ݮ펧uw,nƷIL\p0M8`"6-&|`b'eotxpy*>/x4H׻nر.7ݫ>oИWz?`MۛFCOo4qSle`BʹnڂM#þ#DoKM5G5Mhstdj!&Swҟ>}<ԡWMqk8a`8폇ɱxVxNgvfInυ 6OOZgF-]Yoxe%zTz{>ZٍD$dE)J茐(WM
r,C̵N+x}V8jos3gmq@Y/d.ώ"qÒ-S/NPYd2LT[xi񢧋,[²uݩx@ I<E7Hd@H!P2݄¡]+$Kqj[N S[<ZG2@e㳚T|Ø$V,sGcrUj;9l ƎzGT/e&V h+3}Z3 kn
=)n	yt1M.\%  V@dd }{`5{7yj'psPUM"oU͕{ /c}rT=_&gXVpV<7E	L&mQrD<dEnr^ܕ$ϑsUVű[9YvسvX.忓t;pl$VԃdD\2ƫ-LՈCwG~ST$r3TTXNh.N 	=:"j咪4U`WQjA:[;:y-xI*2m:|pRrRe4<}NP9wLȁdP]{Xm\0[ArAk	x}Cx/eJB3syc31;:fP˶Ht!puIvd.<hp'iP(rX).2.L&UPȱke@,W_[U~`6#esPo W?[b
L{ogXˉ 
A	کly.6Fm۳?4+otB"-dUlRU?==!<'Eǥ/}W.AT|z 
Đ2GXU@:-"n6fTt=B=I-P97*Ie܏JmR*ciUۅ$WoU¶̌5I9xJESŁPSA
X+ɧb.^5.f8Eb[K'A#~z5Ҽ:mmp[gSrspOh ޑTZ>':&/n9}8/C+J7#{nnq*$Ĕ%t%IĝJ?W ^ǧ;x<U9(~hk@pҚHQH@KVFY1wCȥziVkI-NVz^%hܲj#Z\ V\"[.njB桑a}LpwʹBڕqOxRT1bEt6Uŏ"4LyMJ-51,+vŚh2BϺ@\60(>/hFo:YVIvL	=w5kG}j<,2'ߍa RTcޚ^[U6jjQ>Q}e97tlt_KmJ Kne#0BRF<S*Hr0^Iˡ"5gGtjwv27"7Lfd$yՏ]?eq5-vDŁ\LKmhoOǘpPȩr"ZR5"ujkʸ-INnuRNU'̻֖i2Z 0qe	[Qr]x/ޠZ)'cYۍ;yUa*ogAI |]Tye%7<=/=۹D7U99*ttVF8+F\A_cNBW2AATV!ufP`4諳2a;t+.ADj9>PDuB-t-n7\.(\ʍI #iݽhVORQQ6F>&.ξQ-uq[鼞ܜtƹd+	*WB9߉7pob X/t!HbZȔйγAK_s姞v2 pL WVO&%үz	zgv s"ܫKhip e[]-;[lhYص0{.HāH#|l!_^pP:t!^jU;`84q0lk (;jU^+v=PঊYp+ŭ'HLD9O FTGl+jKZzd '5r{sJ?{II'
	m̔sNfnG/GVxPm+cegvt849~nQu&R/B#VwqHy,姓l0Y9{\͇6ɒs`N5Q*nI=GggtB+3OaF exy.k7> Mt pM~j/D+$K	Qh/lvG?"	,_PVxWKό6,6隆04b.5i]*}O}sѐc3Vk4<Ekƻb;x6O~ܽmA6QnN]ZÅOgXkҒm=>?=筒`3Xarr&f_j2*FEODc#jUO(}BD`
,<)O0Zhب4178Mt.LLTrv2admד.M〕Ҕs;XpSЦXy1WkTBRNVv P BS¢=5w;`^W$?@,X'}}VmGg`UӇ巈lU.rH#BK_畃9t0册jH̩#|=tڹ'W]JߟOeo;:j?l_+J]?{($[YrV%X'8E'^Tߝx_dC5ZړTd>ֆ5'ك"c@t`q8#ѕ~5mY{Y^EBlNeYVze+,w	>P&qPC@M;wbn-!&dg4 4	] >}R瀚OiR+F'fi!Hnۂh۷eX{jVBݤƝ ̖献)Ԡ*w	Ӝ4ԇ0?[ʋBG67׳(jf[zodp,鸥xV[o0~ϯ8mʬ9@$@
T{L┨;s!T\}L'}Fznp77DT. O_?x`2r((9{,{?2q{qnY=t<"F_%2bCG,ä	ŷmKSwPV*}D)R&'U;Rp*:dpV@hqOG PH#{Ԁ~7H]bL'h4mk}|M"$1UBEcO A	 h{%÷RٞW Y)sEfl\_lA)6`䋭]' _'Us}_onwL*2Esj[VJ-zsBUgeLqJMM:VtVɛ/*^+9\$'Ff߂)6i-I؄07曶7|}`wKA߅mT%QYbQv3pGj1s8jL
n5<T)}W&/{14Ѻ9@\uApխY5u9sYCrri Xu[؂K@5YӰ~K>Pzݥ'T]}xUmo0_qRVDڴ>\d~*wv^M>ቌ18ߏƟÛ$'t%9NxEܚ~0	wd6]߶A Y`yḡXhu%RJA XK	.;n=Vo;lFâECbedx.50l0RKvi`ji3d
UfeR~g\0&'R22{:D 8:tǔ\.a>Ve7ST	d6wh۔'=ş{
-.=$WLsT%i,+CʣtO1,k@9N٢pPV[ꝍ0f``
tYoG{Di5u7| nV,LMW΋Gw]sElc&Ya&3ڎ;
E?CrDҾP|M}XiL¨A5%P#y>;늏'دÄLBcLc;Vp%?B>"3&4PWJ5D^{0ƹBZt$,oD@P7cȫʩkSJ9Ȕ.jTLź"]D-v?fB7''<92D^(c;{Sz#L+jFNsu΍$16JnݐJ%|!%=R^.B	6?4t{Aw͏ox}mw6w
{NVrI=v=$ڒW䰴DȤJRv< "QҦ{	|hȿN?{/HvE\{cO yFַ܋n8@彸 1<O1v+!`ދP!L\?+" k΍<p R0tlrOX E=s '+q'<CgFF0A0Կe;#y]Al&Qf˩_7؏Z<#/СoHt@| u:ő`C3$nbuxcw	5G4QqF|"	4		C9k!@t/[z	`kqI
zc$wEI K00vV5|f-:q霴Ovs mgw1PY4D~{0@P蜝vm^t1Tsaڔ:g~5<iwN;ßeg%mfi]6t_Y;܅X'onRFXz?;^Ii[޵N3bYU* PJJ߾nӣN*fku>^w؇nU>Xmgnf3@zv)obN1:i7O w"9El}0r"wƻK7QL ^p/|݄ѽD O/PY/"גnz}-NA+Axd>AY\[VOAA&KI0&b贚ͭ?|ķ;#~9Oշol3ͼxp<Hx醛?m=(Y}bV[[{3xr<ޚ(n?8hF{h<hj>&v<rg{o@yGd%0Q'El
|W$=<zYhȝKF:|ͧVM>ɀX|ƝAph?/#&>r0p~<w9<W^<ݿh8 Peh5Y
	8F9#7N^ 9QmnxB|QBO[nC(@%:&;MF`ȠUP{{`xČDM 0t;",/Mj\C_ !Znxӷ;e#h'pba.%6}`w<_{d'GI4!@|7[bpu0> "`\'ظc)d):>UϘQ8ؙS,Zo{lNR?I3Lqa7>)DVn@pH\q	)М3~l20oa0̦9>G1Nu9$zaY΍W(̯-TRP0GE0L@qv"RH߂XH >d2|qK&) "G5l(?in4?g]=|S$3Zqg5YV&L\ $4*0ˎ艌dI~5#,zwj|i!J-h2Djcfr\pa1$<X05?9||tC`#|#N<j|ѻ0k
24)|pTl4[$_]H*}i+KHk|DQR#nT($1L{ecTUR_kb+f[" U1~+cjWfO^m!`=R~	 K@sr, tyK+ a	'nPQ,0C
&bu#GF?ߢs}i,pk|jW
<VSdGP,#[Z1T{8=Kڼ%(h~245%08,dMaVB2h50[I4%n1[CgW0y(%zt$2H2RlZ|rtS(ߋo:u %}9j;O<63X5
 KT-
 <]+#)KD`&W~jqm[$|SՓS/JYw$J/I}:ӴcKlm]{uma=6x.G 5h8<Q/%;*I2$m2=]>p<L<{~4GZj$<I\]~>~3` oJH@]kq򂹀UvALH~d"(^Ӿ7V aƱO-zFf/?e{U!%4c [!SıRpJ$g |'1ѵ jB v=<!+>tH@	RqhhIQR=a%&*pl%!Bjg54+EPf҈U,mHJ4g1LT5^C4_:n{7qD5vubfvL{V{01	=5dN7t5jv0w _ZY+=vV1d3F܌N4!܈k7*˵s_*4؋+یQDˁw>Z(sYNZH4M)GJ
2^pёoaz"]tNe%뛱#Γa8&xwh)swhhX(6.̻ŦAHѼ{X\)y3$GO!! mi"w̰FDD;.PN5MHn$34n>E";aN?OH"62aMYͨIN(AFf8JbfjeE45FM&mb2"#ą^ոniv|͡eP6UG4[]]U`yir!l0'G[ ^:4	p`;zV9Hх+hP#=`ؘ.fz^^YbL-+2뺄:c[YpWRլ%74y眸>(bMR2R
LTT,F]3T"hFW+eqWG0|h|Ĩ6<^ÊmA!Y++c` RL {V-AÏɟT%H#K8FleH`Sk jt=>!H4Ŀ	7Z*V&B^TJƯ)%zw)`,ȅP.*jzj\Wrv6xYzKnȊgoT1䄆œ;\HY"#+䎖:xIKsm-?t%iK_tE[ O-_ٿ$By񵘺P	?UZZΎ%.n_֫v82V	LYϵßќ*(ӛDRGƯKw]ԛ暚3Ir8-рngԪ+s
.؈6U0kcw᱖Ơ*0렻>LR.eqׅY'ˎ?b)ڹMثcT\ d^Ul_yvLUtzT,;^Eh]`I;!h7"gg/w}{hwTҎTdk"o
*6lf%nVˆfVxvM%_)\б^`vo]W:	4؍?@/Ln1O$QVZ+.:T¨VfY͐ >Y"~3+J@Jo}xabsr1f1tB*S)]0*enʙQ8>n0
rY>tlO|=zG݁e$ 74jcNwX PQ ahiKvY6l26"6'P7Dp_oݩ͓[Y*֥POcS&MH,GPt7RC=cjSR[YM? 36\alb"dC*n*n6?2^,3>S~*Q(*@T|uѢqy3U42Gaa@{YAD4]< 	UzM5":Tb#.e$JF$+rdÁIqXN6~W&r<]uNB%'f8gɾeƯn֢˔Z.{ˠfQ|^yWF1ŰA6;E#eĎx^,}c#.{Bm6q-<>[VΏ-|$%}~.+ڙ@vXu
N˯		`g0w>COWrbxEQβE$#h"ŒaX12gs|6ka>,YoКqu6EϧM.E?aplmI%jq %+9z:-pn?l)&̢ uۧS_[ L@gz1d0Q9֎9T7䚩hcA,Kߛkfر@0WS۷9{}wbNdq%ʺ/J$>JNxJRu?>$oջO:1%2˧S'Glhی_P#<O8ײupU5UGXޝITY=澠/%X $<d{h-
TڳLg|r*]оZ
.!iIgiC<|o뉥 ;5݆;G<[c}JO	-\L``Hqyf2ԮPy)( %A	Bڃ"Q0Ker&Jwu kn"5
OI`X33W-2ZLڳ
ӂs,x7WJM1(Y-VхT{ča1b:MIoeQ!-*dP<tMf'6(@-Mt_Y)R)sOdx~8],;ZYF$fLKBJNӎrZMt,,pdRVozH>S8||,WNGBTA$Rx0-nl Y({رJރoTBto쨑D@242ǧ,j̆ĵ4gSeJc@|?BЫ*%C	T$	BfO`c|Z9RA9;ng)7hI\:
ژ6o&t+ws.C?.#hVP/HDSJԖxn!q@'}0융{3x-ö:;m:-)ebt&O5z1zn&ag|P,o%z>[=IT+RW3
ҨՐeH`<cαソ~hMW\^ZښZMjS(BћPf$}xg׀ߴI,yxM̗2Oߵ|-l	}fαRaJmC,()U?sZ'J-;ܜ'<XLǜ=+'[@.4Yjڌ=mJ2DbPC$l$ysmWZAAPusgKHd"]_Bhc8|ҝ jc n:{-9-|(/(	S"@N]bNl?}?{=((;EX`$ tyRArH8"NdM'To)0E~ppHBrdH(Yh,⚭5⚡䋺*cD	{wY! ~fٟk͠f4Gv._XCfG(jai8iYvD;J{CUTۜ*(M-cB?wy,u:]^^X?h,^a(Y X17uPՎ2tILX gDCS O?		5c8/_7G2ڝ5)n1b2Q#TTb3ېl{s^|Ykau֯6<|1h"Lt}@IX
8Xzo>ݍKV/6v=4lu<Y -i^@qt[y4ly*?lw~AX6MAX&RO9Mqzde:eGtvԓv~l\SpAvòUN((Rn-ι#X#L:*y?u$ir,^+q/uE8;U`L\
2md߫fL."ELfSQ:2Y|WoYc<7ed[[ޘSr};w|3T̼iw{'aE͛z^([%Epka3h7,WW8'/-ؕ@T~Ut$;	IڛNЯ;7
(#xV.P kI˰,Kᤊ4 nbl~/Tz=2_YEI]&=C60=-F]!WFJ-dMI8*ȀUXI"-OP"Y8-&jE1eldBvФpBƍ.]^fe
;^6z!D'W7ٙ$M?n.ԿAy4\:E,N?f~o)*5'K?lRv9YHL^Ǝ_plzU:@37&od[<nܠ	:<vum9{{A+>-kc B6bw+ޏ*yCs	@YwS
;z>[3v}/mi*_	lɂc֦˯,[Ŝ3LnrǯI_K!J)tp#[WdK7)UAG)E,gI|κBlIɂ]4D+}&&J3ůDeK:M2Q좭Y&W_i7f񖼍Z|de'oLL'|>2Sf#,ț5ik(i_{兀1zk&Z'mW1K
`&RCVD,*{\e'[zQ.5ѮraJCTa"ȵZ *N,kbT!c5R@Sԏc|Zȭ9cSNfc>.K^T=CW**n>-a)6`x;H&A}Z7SA&jqHe5cLitd165o.8NMsxBEQ)a^ > \Cc0ioNM;ty|v-}vVs~t{'gq@KpXr;b&nFHxƍ};Ozflsi.mv|[Зmů=O!島rPE/FGq<ٰl9_"-e3˰FoV%bQ2e[%R5>1c̞w=74:,3#*hƱ8|W])'iy˒v%N=w.	dft,q+qYzT3*ePj/flV2Tk}6+RaeB8DB^sPfAUӤRs"|OW.W:fyVIkd8qO@)$s`BudxG;R@KSK1ȿAFf/#Lhw0P}I	k$E	%?1C:,%bіr)_I|#pE鞨`jHXV o߽4GXl9L:[tI$"oZV]a-$Mf>O
aB9sa̡GEsAxr$K8ңM;	֌u!|1w2 Ƭi
6ռl"7H:f9l9Z8A)E@5nJpK[O5,ZM8v/C'=1Z_wDaSF}IljSz^ؾ~Q_Zgu9rLTu7LYH+FiR32Y8=J`0>@zHss!j@5J-	j3wx$e
TJօ2ݫfǑ	,ip>B[)1G\vdEGkԖa[{Sthe[1t<
6 "U0`$M4a2у"@%WEqP1LF<
ee6G&r#SQ)1&01auöP_.9@rȗQq.ƫg򕬥gn\(M]62EK\)69̕)h暕(]QMe _]9 ؎"K()NrtJr{X8HpJ)/_\q?x?@-"s;jx&k4|e{:(~nj 1$	8R=uʌE%x'Dư{N4bamB-ǿ5aJ;¹vh2PփbJg.yN/ܠfypT)
C{Kw*,*K^ImQ+)hZ(&(Xr-"tQEU"IQ
5d]UGrKwԶ/`AĨyOޢ5>y1	pz`AKm
qIcvuɇwZ2n.j(jkHȆ|O+L ytpScďgxcL&!ѥv.#Ms3+Keso>&/TI@&t_3Iܽ\GuE?!0r<}Egl6ưF>&h&qD8/N8[A֕ɶ4j[F@@l3m*(X,uVXR`~'6.sG9m]^6_^Qp#B4	aދ|-pשzw"-m7es7Mߐu_yX-[8t̼bF30]( Jƨpk2 o#*l#'J*Ypa PTwn$7L,@2LF\b-CNKWMM1J=u2t- Iw=r9ƱPj#܎'v]/xP'E 4I[%T-^*wXnOr_.O)]tS}}rufj95Qoqʌ77ޘjЅ5$^!UbSV6)SrC ƼToR&W!SZ&zF XtykM_:p7
NPnpWu^IHyp{JZܯ~63?;wnjJLO"Q
|{P] R{9(L¨lŀxi8BI7/']eДi@Ɍ4	:KF>+j\]kd:GCQ˫3{ڰޘtGx< 9C+G\@=.t9}΀\} t&b_=2^5"nːVZHPP)p@֟x{,9{.>!BiOسfiSckL%E>gFVg>\ jd{}tNf.<WǶeZ#zR+8ZZ4if&ZF[2O%3ԍ9Vܿ- nf{܅4]26uH7e(>y^%FMPeCTYO >.nh4e"NS+vb׵I!JW7:kF5rtfwW^4Qt!Z,nѿm	JwU&tAmПGϼ`!h8#D|Cg7|zz6mo6(0ob<vScp?ȍ;2PeIޏ%RG)94hjZk
e<l&[z86yrtԏQjSw+JO%S\Ƅ,+)3CGr2oˊZY#N'Eުwp꧆E8(ѭٞi6|9"v*a4".?]l;@W,Z+kO&Э! )i5١z\K_v~j8n9yH Br[9oQUSof=t7OY\mg[Z\EVZΫU{bbzszF7NO<?kOVi"YMCy&H^\8uS>UTEl#0֌GQBUF!\*
A(B<KgRf4Z֥_u	.3HA0pvxp6@`]]NHLwc>.`~ȗ+lcE;$jބ
U^t#20?`)5 "/XN+ՄRį087j0AtkC`WrD6tE`VaT{fxFANM˔N#;*T7* 8M2ސP[J
Ws;8m;`:?f6Ok)wORWnxkSHTe%֐puue-\.k#bQ!z{5=-g?\s@z7Sk]z} 1YiV3ލ̼35tM
;fppF8Acgq=h'o{8oT~Hg/O:#'sL )TO6t'xe8Rzd5Q|~{q<K%DΈ> #"6z E&vp+H,O(μ>
Nq=۵gzb;sA>|p"?Po1n`qD\I9)2qndyr_	T,%q>I`gF}Ǔ<=4mD5vO8&Y K?=@N$Y<=b,ufE<X"h6 3F4	Rѷ ׶=sxĚZ#gVкPP.L) /WTaRMww6-^{ӳC_BƎ3ϯ\	ַ7v>۞#{Z`r9XA`,ud7Eg<;_9}0MWg0X%AcUמ^[a ~jf4^kۻr~v7G
ڍ{'W5ˣ'Vݣz8tE_u=Kn<P?xE<=,+xB4fDeg[''! |B H/8Gt\Ǟȏ$8%gkLXO&k#q\kUN
d"I!6g	W7Ŕ䏴k4vj|PU 2ٸ!9U4@ث!ScONᯅg4Ia"r5YE%ujAa[I50,cyX\չ\|8k|,ɰŒj\Ubz$n	(qyST$GcH]ee-L@hmdܙ#~:h h7Ź9VږRٕf,&1_]oUE <P1SPlAH8c>Ogin<M#ΐ19k=ZeUK?[bJV8$5L BۼeYS ]`v+)'5^6IF*vL|c#e~VRبsxݬ|r15̟*[Luh%_jLZJs:sqipxI@[ش9|S3L?:%Ocz"v8_UPzyCS
Ҝ4h0qI܃ds!NBJqGk}v˘%)'ݎu]vws?g o*{Q(I	_8}D[tL|	&vH=!{ _DpawvM ] =Kv&	A%BUf2RMX
c%|b2Xs)dUUK<@T¹33-2w2(Iޜ9xXp*>;*-,h0p*Bm<yjsPHXw,8!G2. x'	xht"ɃRupe<>A)Pgdlˀ?	1_52BjA0-DK$n^-tȫiUv6'NXgE?W קm0U+ZU!6g+!6	#mU1Xb5,Nv`*?Sҥ+.0Ϻ9Zż<;'?әL׃= | &IK$ucz=fNM^hKޥٳ1hj#hͣAf?gdDgC#х 8yD҇,3EI|O-;bErz='u"(cܐ\ɖԼ
).M,̂QQQ4vm<h7]ŭ[[!4Z=۳mάY'X4q\x=kf_IF7`c"0))c{۹O>Y%VCn*cڠx+Pآ|QBF=P~bfN|9L6W\7r.ipᭃn%$7DK@UN2I\r2KN4@9s.#vǥSE&@0)J~&q@9i (W0K䋀NR2,7Q%Q`e͡x"[1WQ:Q8&$%+(F;'-ܴn72\j\ͳ,{|P8LX{:OLz-\X~!O:.1!!]؂,5яuс`͙El,Tʌ dv{T[8db l$x.ԇL鑀>LġB<+$#W#P8\j_hHډ	2
m.HmINUN=X]oW<@H8F "5ѝD,x,6v̺LgI[5!Y>A~˃noOXO8.rʂE[|G"I!YlzCX=3͆6]ox)^ƫok\<$MgVK_kxJ_Uw%[MidhyI80UvX@(8PoWML<{+Nvm?KI@h[[o7I=!xOPܘT;Pƃ5wl⧩L|1!)o?4E'ӿ7enfzإ!Y2z.U&̗. ګvpI_ZC"1-ݘqMJ:HR/ 1R* n?F,PP`R( GȣmC ηnSӟQr?3is".O;𾢭3+Wbd+k74Nzw}o?w)^lXwSs{=پt*.mjnS#v/7UʧNHs'ۡT*ϞF݋*1jni;/vhƨ6wh_T{w8î_묾	H}uT5F͵b+?%ޡES2k`H.7lYw8QPuZ4hSu̲wU{5-`:)'h D'z B!0⤠BPLBP˴JJ2.T!ݶa8'?9{&aȃy7-tKOo_Kz&o x;WxEX93-/%5M!899dRSTZ_^XĥI,KˁĹsSS\\9
yy%@u
V
I9
A Ҳd||PTފKqrBF
 @2SRB*R
a֫	 ٬Uk59" ǀxx. 	\xUM0A/*RE&("xZv̴k]ew2s{?x5$a&<{QڸI y+!P d^LQ2w%s HqA;[KO]tj#$cj%.{\6_U;1#(@i#:J1YxzGhxW[OH~8m%dJ (j<Vȴ؝'ˢ=s3N-/g|;wIV&94Q,J;O	#Ƴ`mѕJPgD;pJiXV,,HBxdzyF	?D+E	O3:NsT]	|+Ɨ|!Y0AȈpYz2Ԣ-:ZdqO#%9_P	G7'օ>0W"_

\Yڏ0}!
AUNeFÃIb_ggN%>?^\CA*J2|3(F%64F?Z+:ۃxt9GӋ"Mu!lW&P[^׹R?93e׳}(t޿
rYsAUJw3	Xٌ$߀݂4皅a{sNSL\"9^vy.TH&Fs9\>:pK2I-?zfV!#ЦNOw圣+KW3w+YV(F`fw&Q؜joѣb:vlƗOI,$7)7.o\?e߬yl<>0/dz=+[7ҙ;}rh	$i&cfYct(L)l
k5gq$ŬBAe^
\kzTC1>,#36X,C
:5IנUPc\ebƯ{^mڇHilSkQfb+V2tmw_pN5B;[k8,.!A%qm[SS[a5uvTiWrqĉ32f,԰gP-Sf__cr.[ab{0{vR~>`'dF%Ռզʶn8/Z/[KYh/ʠ,:|LQ*EEtf+C*A=W3೦3es:&MhG||n垞ka*QTOr_i7fOb'0?4;2\L#6xx}֫7N[iI*;:y%w^f&Xq]*xQk0)Q:+LV!6Wh.M;ݗ2{$qA#kJIjB#E>◐((	7ڎ`0;q49B2YA4+=B$+*Y Տ9*e#J3#`Q w~Co.*JJLPҥeE
+mkS<PflNX^JvL,in`?3;yh7u2rgO+ƀؔyJY>wxav֪k=>vHgd'_ʾ)JnI`~ xYms9ί
`Incon+wM3T;HS\_Kv\#ӭd	\:.n~nƃ7^%1Nm^	$$3{Fc?Ά.4Pnz@okYA,WzQOK´j̩Oo}cq%ӏ4 MQHt*p¸J||:e\]W(ƴq-uܔZ; $ձXq"	m16SuM&Bz<ߢ-kb˼p6t>SLa{N&
ⓑEu+Th)!"`sLNqV.]0ӥ3wj)lowk fE꘲n,PɽbS<]}c[X6θSIbq-9hKL?E՚@b-`"n'Jwc{O [RCȗwžQ1qfLN@
^qBJh5SBlGo߽?ɭE" 2!8SQV{|''.q0FQݱZ\}b5})_@wZԏ}Rل&lNϚ;ʣZ.kK"T&MZ!Nj^T,MՕ;ErOخx
us5=!]orj#7':W\ٔL:	I\lpso
꺙	!=?D_ ޼+UH%QzF%"MƷi<\bSY|{?<y(tC9^x+b~I`tcG\9}6Ғوq!FQh}jnC'JL`%ba=3)"J!Q愯MHr500*Ҥ'~upַdڟӊÌ:yeM#qܩq
m}Jsur+#ݤ)	C%fJOqI5;k/t]:qYqR`l}{?r
`S%k:Yu[nłzNq@&/k2;Xy{5[CM!ɠ[S wd{_E-I"  -ZIqjF	wx;5rє
(tP6$菨OE;u@F]~~9(ͼ7$Ltа_^}:{\؇!dUN\Q.*df7׽d4GYHA*e_9UL3Pp=9j&7CK(_+ $"QJ|d\tv"xcIA߹e~JPs1%VH39n%
nWMsa3LYpK%h#ph){C M$Paf1#.#
44e,#IRY{ Mz"Ⱦa`K"h`g"pۏqJ#Ӎ4و
|'!:OR3?	%%5дKNj%-]nA0n̺l0f{$wL
#G3*HG~1[=gꃽg?2GfQNP+qER,{EA*#@zRoLsŽ{;7o{ߋ>"'{#uPܿqIaܳnRx0>bw@M͉fV=@cT}셰2&{;Z%1[OesͿWhąx[r8@<K2sʗ-EJגIeR4EBŲ'Γƅ El nth@g7vA|v>'4@vnl}Nv7f<	 wrѸmc?eہmP>q'O*%:jzI{AtSS3{=+o:o-ŻOxd{v^~6߱C!HJ<V'tܰ뇳ܚ~y!=X,x8$+(m:A5Ek<K83<,ګsgC>`z۸Jp^t=!>7<sYpe^#-(z2X^/Qs,͒E[^CI#!MCRЋi"7s8\VzƩW)sNRhS$Bդr~;1Ol9BgpH2 c\4[h:u^ʪ['I$
<v]3PjNApz 1ؙ<۳7Wod/pTX1hsD2yiJUnГDSvX3Y>_كJC̙q$WHxKd`$DKX+|
}f1Gi {o	4[ѿDQV']^̹s I`(;騎 :VX()Dx&cu$U	|4=X!_wړG0aolLCD[Zrjٞ&ܹ8prxI3,svݼfNJ_ѷ,!Ϙ`p_3]+:gmQn ]D?~XL{|w"X(V	X4 +9~[!c=Q!sZU9X 1aEy,,x:4!Xa:s王נ IX K7Nxv&Аv	$t7J*SM408K@I
M U6UaZ-v[un*«_\>rRLw ˰t{C0RfC*bVHt^%<+Ke#-j?:q0[3	=u@+͎שe\3`gJ%JCZl8ˡ&bǙN;^O4a"w
#3j8 MYXc	 '%6t8[޶Z|ism18DA[*n
 nA1߿xQK'	*GE;B4ZҸ=CSJh(gԆ9˙:w<^Ơqۡ8 Ԙɸ;~rlD&~]vigIhc̐Cl+AJ.,myitIFl`)%Oo(> UAxRb`o'GMvn-3sYAMvpfX4cq(,C)*E`S^WנL~.ME2*+rxT9p1' U#Mèhسeo<A#)O>!vE3kqf4?DIaӤ}l	NKąAs6$Zmc ?iQyйGUxM^´UOL覚H	@9	qeWVBUʜ3pOf`@=|0ɶ)ga<TzIj۵
*-<aKI=s`㥔NA&ɤ1Wi9𲯆v9dpL\f`f8*bM~{7`a!<Ũxt1vzׯo<|&޿:2H#R6A e/V\pB9sc}zŔ'clP'4A>~tNNܫRWsv%b$T'R/g"fPqw׫KMjNCF\m*-G꼋؝bЛ~W7#[ϼΓjiўY0AQ?}F]ڑ!4Ee mU``%DBssKUWT|`nB
Sjt^l M*%-ao7qC=eNKO	R^E7Q>60sJJqBc8Bw'xI 8goxEh*ԄTaLOi,uC*<#DkaQ(9y
so
Ry];譔7Scȗ5+%d̚ 9O"A
΂E"v|T|G!첽VX+VJbhN"/M;MPr->[qx]&=z۱ I Rl7z|
[z_?R t`Avﴌ.
$q<D8"@|=-RFBGɊ/󘧚KM6KQ( ,o̞}	o ھJ^Μ`D);;;a)åW/\&ޝ%&@4{^&4Dm6tn&xN<rL$uAcECNLtBۆm"o	si_Icu?_X6LD|vD}y4%&;OHFd3*-EDKK@7K'+3*KtEuoMiR0y'ιEF/ yŎHkLMm>rE]h<.$3}Ѱw-=tSqQ&ٯj6lRUBvԔk?gS(4Fs9jcݼ]'sfS{~݌f2|`e/H/@S<+"~H[s.`&q]x#&rAe]
 5
5OsD"~'dA' Ln`q3zay&6j`\4fKﺥ+پHP[sbnDŮ$[7(a}d f-8ݑP dDM39č	рaC)_]Ir9鉄[m zSZ|(S_`cGc;1`묰F%ZgFzKV͇_VGTXM+D0uN	/{B/X:zS.a/[V/U\l	[\h<ݺT,K$"25UȐҥr['7ؤEEqG!/}[xKs&FBb`۪3~d}o([xx}Sq׶Hhu[-G~U.h6y/ɪ|ykU/x;ޝђMpXq,8qǔo:j<0@.q!c=^!mC
o$Z3?Gdwp;XQ$RK\ 
=QR[ ^a6MIl_P(Lq%Nj㤖CˠvuP?ͮ}*Euw^%`Y@
+VIV8- ",$v؂y-mUQ;<wNZޜ ώj&%lml@H@x7r2jSD*Vxe ^TpiM}DEAx«4ywXpu9tqopds\c*V9!\A/Ga`5TժbDB_K%'3Ǥ
ψDV vDlFBp
f	p]\:UYMy?/{# =7%}
8ae{t'C2*;	Z-=
*zzgɹdK.S8"ZQm<hF
HS2:A{JIuM3:U pԽNL^t8^(Bp#@"T6.Ut%e0@Ӡ+=^(5!l{сE{s13f&Q"qg	'Q
\):RUm=3:?<${Bik*%m5$0{<x=ށ7yo2nU\W&5,[Egs!EXňvBEt|a^,;)N/ԆĚYݛ./yTxZl(#V<)-!*C}H`>:euRNÞ-q(Ӌϖ:~,[@
tO6h2e! ^yl	b1hҲ/~d q(OvJx-QhI
USecߔ\2*{R4Ӊ']{t5rxzK$00@:MFX*˲\`._}{J6<\pQʐ7ya4Ȫ"G^'OV]4K/@Tn p徃9*ߛD!-֭Bxogl	sZ!΃$PEnKRs((Eܬ( _6LK>QovT0)m<L]aZ~,qkQ٦BǴZ?MxYo9誦У4Ds6f޳PόB 7y߫Ǎ/Aݏ?+|/߷#im4Zg:fSkpr{JdrٹJaYu97\6_9#EזçnD^V	Z(WZYpc`̦J=%q2JB2W	c1"W RΤ#~1Q%4$#-
War!6$ӆP!ѓ'FKJ	 <-WId8\)6̡
q\*19cs%qgwۍOhV@	T*FQ؄ی)F|ɬ
Մ+wEO2s78"
4P@eN`dg_}g1eF0@fHF(Aܠ/0(}FsKn0;|H1<qryi,μgUxz{-90%z+@ZK9b;ep7֩@'EZZ{u׿*Ty9>:j§SD8!ybo15O::
K-	Ȍb<b6+ 9yRR2	jz6 tAwj72X^hgyRUtV ?__6j- [U>~w wH.| X'k9 rqO osdpX軂8[*U&
l z(YW_<;
dY>"9Eҡֲ)E ~oed&$x:(-	*tmw{phwbn\p2>y/q~#BW`C=wjM_(&x(ȁ\pLTXr)3g*~?_UP|
!߰V|m^@]\73ag;\yKko&f81S&}Z)qɘ*JճP=I+mPawۢLΗn~=CaoHy^o=vjxc')Ot	?a7ϱC}3Z+{:zZI[~:/QIO;:CH1g;ns).з@`98Uj Qof$=M0Ts`j2dV`<CUXJnUgQ3.&nyA9nYL&L½	5ltDU=qM4:ֹL0*W`rItNsAEBS_>L|dX1gf4D^UJsᯔ^@V#b*3pTaX0auYd
#ӮS#I_^s090f娚`$c\yWː;x;*aբqOy>jX\)|jC+gcC\@J-,摰F:\+xظ; }m؁7G2Ŝ`4EK%ApGgdX7\ADkTkJhk5Uhؓ.ƍgӭ}kײc1*߾mbK%_%<c$5Ε[pʃG~hIІΛ A Jñph0d{?v=ڜYӶFEC]>YHm1}u~6T)=rIV`B>v/zQm[+It_z>j^!aNYM`GX+V2G<gug7{x|A[+I*e<%յ/'.Dj~b1۷Յs\y_unaw֨D}_z?`V{0xOk1+V/¢k+cl]g%"߽YkbA7I&9)a:~e,aţِsx&ÏSٸ8,dpA7dR5*rM¶5Fbv)$BU-cBBkmJZ .c*`_O*rZ;k-dH^%Yr.Lq"x9? y8_x{ӫkF_Ҿ33Jx+xD#\iatn֙0V@IeJ-ԩ~ƿx=s6S Nu:N7-jmO2<,#)~gH~k殦@`w]3vz{m3A4̏44gǫ I(dA *޳S>ky9_x5o4lD f. R;/D$x "
Q΃%O$"cqP͸dA 9S].Mb@g|ӆJr3JVă?	$V,_N[o Y,H<r:,YK@9T)#whev	5! l/OD2h-2r`גC9M[N=F)P-AY-_%1咃|ֹ)IR cńi%PO&ﺣhx?1~fAQw0yφ';x~۬Qo<FP_{P]oh:NY?!1)tmvҟ 2;]vMGg]=   @Cֻl|=;#KhT/ޏoO'txv܃7='AκsymЈjJߝ?F{4ȟ`2mhM?X]k?F朌m܅FCM=9oTr):u 	xtWnp枺{@Yb1Vg{;x;ݳq=y,PH${-/3wy|xAPm7|?{ޚ!BdrMe8.*
-o_Sw߿t\0Ր [d"hPDK0O|8X$)a`4S04Lr_} mneݴ ߂W6H[N78ИulL;&O7k874.?(^ezg	"{7<V鈟S&[w;<;sfn%cgc34 EX{@$(t<0z
0܇{{kwG-3~~Q	b(Igp;@Y¤;N&m}jSn_BuKśzum45.ޔ:/Yk΁ww=(v{o6NnCL<K>;&g1soun` +6	4>v6C)DoN_iN=j3= <[og/?Q xT)2 @d7z$JS(tQK=(C;&H7GȰ /wo0,?FiH_ p/E:FR~ f8o!Hv-7Is9H_AHb<~. sLuWum 6/hyjCU@ංa>:^FrAW,;Ð9Se)8;v2 A'=f&S8Imдib{k8S")ք	ʝVk{L|,p%.f}MPOk#@:-݆I4`NG&b9QYYFlu1@@IU}('ιwZ0X)cGAGZ^ʦ6pJO9 M tDoˢYC
LnQJ@N/wAsmiՍ>lҧp?[%GИ?/UɄMHQvS
P/ɛ	@ȯ-rG)eD[n%XPvfW7SÆ8&:s1A : #/x8~t:._"TAs$}ՂpO_ލWOj6dCI\IQ18ir`݄^
waM)Ve@q$y]}9)06 ÀKlOpDNV4!5O$A#) 17E36Dӊ[o8ʢp)T[H{"Y'7vQm&ۦ¡qn5CR^r>%9)`3z_šJDdMjXUw`sD_5FጇKIQfEG@3@$\ѝ[T^jΛj; )`Vnz([ԕI1Th[⨼52\Q;|t6<]^5v$6\"y
r|O拵)z4oqQTR1k W`8DiHep	~SuD\$DL!gB^FSo	KB--`ƙ?Aw`Д$^|jtP<`+uxXIde.<ZZrܖ%<6M%&kC#kbn$=H-3@?q:I
׀ܻG22wZ0zY~fUz2قMrCRy'*(YV]K2xN+MLۣׅ˴';I
L~܋(s<@9ƞncu0o|E?[	BZԋԲjHLc7|5/91Hۥy(N]PL 7e5	B,k:Jc_5Ⱥo;oG?OyflSsm\=fܞ\ 7@MQscj]2G,5ˣO0iޘ߯voo{k`Im?jlwQFf|xq_9@d"SpM|GkvWVcX.Y}*FF!ͣ;2Lhַs1CX?+x=bu)QNiyfK*.PʁAx?gxd˝4y/ i<q<o:;<3kCrF]vʥx(^&򡰬BCYVZJ(([6ؿؿǖc$?3&	8/!TXC0PʵAi~ot"\ę
8j	Al@ws
@^眖uĘt+1xFw.DԍyV~S@o|.iW$NApUdD٘$NYz14Yп?ST^
j,.ȵ՚|v[fʆKT$^Y~G5U3rVUt4d+M&Y`$AUWeԎ?j[^mސ)2$ƦޗlMN6Y!YNƚd'[r"9mc`[e1W+>~8`:HJk~+%=Y3G1ǰ&b9M^Fg =a^._+uV/pŤэ YHf\C? WґLFVO_^~j(e4y+4 %Zf	ۖAĶcU<1	 @pj0A
Y1E7psmsE۪P	 $kpMSQ[ٌǘ|l	Fc.)>ZOD׎w{oyz)}BN,q2"0"Z˦ۍ
2eĻn`t" 0qoA<R1x~3(\.Rڽw4m1ckVq#vh1jc:Wނ*ۺ2bHH&p\xJ6hpe9ZQ-}TR]+SEc}\eD_.JP:Lǵ3HņT|Y4>Ez0>@r/(9	utnzx{u}HQ#)_iiUz9_ĠqzoP>L/3'eBe֗j|Hob5cVޚ6TTqqp"y"*[̓\B	g"̜͒Eiu:Kc14%\Ա'Zz#-.j
CFE݇|6qq))RBN0Em:Xr:%7x_z	ɋa-+Lx9)&K:F8$,gb'$H'B잋&B&"W6;x!Mՙɬ$:Y`N}[ln~"')Ap0gpã5xǮpo<p:\mGP3ЕMM6>1Ч@-`jdv@
ݮT@`Y5|zVg*_K,B%EΘSB63 M?bkOI/@Sꠁ7I6E9|h%Y6bqTO`t& Z0񕖄2.0wH'3iaX4ylL7HN3!fx.CVL>5ز*aĝ6F\Y@nM.W5(,5vHw毐(YmV' h)Lh4AKġ+WǑF>|Mtvx	zܺW14 IAZKƨn
TF%)#^OVzd(V_dw.'<Y<*4
L<ۗ,+W0-$?8QGrxS*W'u*(e
`:O[y	P͸L#ϮXq]rf8<+<) K-fO'%oYnĉPA:Q]7MԢ#(\ҫ
FU:Q .șji`7tm[?%Ybچe(T
Wu
:޺^\`*m0J|?\D2P: 嘨oEЀd`Q<Mh<Cl|WD%[+rkle<T7yxS^Y,uΆS;SNմuΖ`RB,Ĥu1RvBq
sJ􎊨I	HG`60Z&̬XleI34+~P5ӗj/
uG(8K9
evxXڞtaXn;ISՄl!nz"\= T7*_dG~쵹Ѵ-ըIR} T̣ܺ/LD8gtۑ[+{"ѕى%GHz^Him IΊa,dBBƬE93/`25O&eFm#xh;vCn9^l9KnV<J2ϖPPYo
Y᢬ۍx[ľpVa6i$I~k?x>G59I!kAtK\Rp	%q@*ڳf/-a+)ť>\t'yޘKfiBP׵ 0͞O=LƝu dij4w'ƱȨ_r<)67&s@2&1RC\>scy[+YwڋKSJa5wgALv9P\`A"б/uëdm\ErＵJ[|n렡6mj7ZF7nô\ȟMGʎ4Z՚{&7+l\K:r*V/W$cZcPJ1EjߝU°
6sKUDσG<ut#d/kwm<;c>Vkv
YoC%+	i2m}PYclkTK kf-j7mbM޹W-~$]}zu%ENi%Bn,H0Rv2'i4U]6eGըJ8	;M1O-$$|r,&	!(?0!LnlO)qу*N6-M/]<JȣjΞcM<+C;1
pd֤3^ $'7\TC^䛛bHTK4Za,<ߤ.H+FwÖ
۸5j4K%Cg<d3g=`xd~^	Bwfi@5,+vaOƊ,D֫Mg{a#xڣ oŊk:-""Z-!|]*2܄nv);ՀvwUq+OQX	I>mZTٰ;X7B[ۿ!flWtR3Eʌ@P4"ǿ}/Ͼ{m㷫L\i;4-uyy@VǵLz]HWʠmr.1o/#݄+/A3ס Kdͺ{HtngCiɈ2KEļP</]qȪnE uT'JT0^/k@׉+4[*h@-ZdhmP%'VKPE/*f;[k0;nEr}pW@O1Mv>ÿbq鐁§$${8_YqOU$Z)je܇oi]%7+S4ڊj[*
pyn&mI6e25TvpNlTf -ɤ94oK&Ry Bf?ac	AU۷˯}];WAp:yRzK(	y9lF}1bj/E\|k2\1bp0v6auL+/.;ޛIj؝'/گmv^V/'f{X]qK3Y]ml/CJ*
S)mU	LhE>Py]P
P4Qcqf9O盰U8.?POcImrC<UYz/`w!sM~j0D
w<Χw7Op3 {׻J!`FE(y`pX(#Lo˫fg3[Cbe1xx8E8vډ;ek<j9[4ӁQ0uS W`6`*v 3]f鷋Q1;'>_YMr/g{λU&^<="9E,f2kJ'{.p%TvM+D\B>\K򒼬+0[p og^O6B(VwpBL't01◼B$&fWR9\. u<qQͩ&0ԕJ$vY\yH13ahP3HRKhmW=MN<SA3D~*E!]ETTߕ?_I/(eYQO;k͝R*9+؛պPG5΍5+e|y1HF(^ӵMi.Fpǘ,Kudו`&hB?;}UJiwM}F)葒UmzZ[fr,T='Ԋ<vܘA)B+$*X
3.뱡Z4
C\b!NWztucw=ɯ"J̮ߥӍdVYʂkXSpWk)n&1ʻC(Gi`ڽ{02Axy*Kڂ⧄?ۚWK!-QvIn6V^n9^/oy{ي|Q[%ZQ#2fi ҒE P#OH*Yޅ ]Fw0)dJMdMߩN+^$1|餀{t6XeǑM2W^\;NF>_r>,:䠳'

LSv剴<YSY0/˳Y>_̈́H[%
r![$yL2muһI/~pl#Fn(o-$DmIҸKD+~Z&,ڹv?lw<V$HR~Lp}DDҕ#.n>zVv4ZVB7 ݵ
zQc Ur_	/2¹5Od\Fn<<Nz$ƌvVRɨ?xkømBU0ΞgOi尕s2oj ]X}M ?J
o4_-ѡةGkې6$XRwWTf67ꏆ`2DyK&%WݳKQ3-#+IL]j%Qw]OG8x,
/(![o ݄UDA%zsA@2oYp]'u7t-,FȅQg \x}ksFw\q@\֔,ю2+vRM	0 (Y7[7/ RڪEݧ_Ow?Jt1jSg׽# NaRQ<XǺNiDy"I|Qf,.EN˖ireTgL7,/nHWm.Y?U(׺(lyB"KmyYpȇ\x>Mq^̖ɋP
+{JY:Ÿ4CrNZe\f[np{dzi5|'òdҪrml 6siQml,J%ٹ(nj89s+/ySdQ6У.^ôN׷م}dnZE&xzoΫ~]܆/`A#''Ez]k|XyI^ :Uy 񼂝w>Ong<#~OaGe#=N3=G4xw|QlR:-lsuH#~\駿꿎ݍ<mQ*IY={цOY%@9Wt˰vvay=%qd
fRi27QmYAJ[*/[~ZW:6FSO	}K	h?~!j=EvQ|R@*:ejx5хV0t!Йk9u,t(2".PYd1UIQ$]3XTTR}S<)*,VaCH*UȢzd{@	贀9(c F]8OQ#X]?ei;jϥ#\1(Lbo('p"c"lGśai,>:?yяOώ߾<y?OQ<zکm)c9izoho 
bP)҉]\# g'g'kL㚐5N̉R n7N!98ԥ!2ө.#&:-zˀc"mcg[`WJs枚xj/	?f#*9BNvmEі ;Gm6vӱػȩ1t֟d30G-W	p#$#iԦzcGmѭa0;wyF;kN)n&0>=֨G
K&{Xn`_[vZ &vGg(>܎=]ف&kt\DR	z, H6A@1!H24K+Q*r#@
JխbiZUc`9pRۗAAt49˓P$I/'Jn>^Piżj/ 73v`7Q
	I/.',spY7`8-ʟi;|Q	zr"\U:ywj[6|{fV#mD  }:}0@lH;OGKVzihr)B֟xm\cAwc Rxj[=%4d`WzO~O_7_oZKEp/|Y
f) 7_Z.AHy# >&6)xtܬa߅FuMʒ{t7chFӈG?H&NtIύ,RTrK]xXd.@l#BHW^v4f]ib2ܺ~-tz0߫ޝ{]M:x>zA}Gb?vH0frA)_+ʿ]LT$eeqg$+>B^Q}e,Uޱe_uؕ8
/TNUf-Z+lEͧf.|c^|E BVD[P3֦o|b-ɍ(`j҉(=-iWYByKlG#tdW/aZ}Qv⵱\=ۺv.lvۏ5$V_5Vi59Gc+l PM4MY4ewFx6f5MaWi4+F3]%)ʉN({= ʏ4Sz3zEyocր,Վqήkt <V^ֹF~ӛr	<K\ RTؗcaÚGH%n_{&	ieU2/U)7T	S2SAo]%03C͔J]NA2풂fþt1&=(v^W	^sy>X&/GH!&cRN =RY)6l^:rm",!B0<,*冕rIP#V@=vLP ϧB&y~U%
A?_GE| ُ볓wqxat~Y ȟ< yJdg2%r`ہSÁFUP	ox,%	0A-lDMn8`!^QU,ѹreл9*Ptۖ;C' I"پճ:aIdј-Q6CphEgO j-뵧*oIWq#:pރu2:2"LJ[K
Kȯ#YP2ad lxrh\ٲc72Q
)S#%X%d88eBUInen{v{XfJwJkփq (4ϋujH$LiE-Uba-[[#62<"Y~]__GN*@^:?ZpfhVm@VsP,ېd/e`p{>w.4 6=d\ۜZj7d_nwQNn%նkFHt}P)X2XvRp&s=Z1jj7:ZxYm/gkZBJ`YA:z$( lpdޅt;B4&mnxcdNBiϡ",GN/3u=f\`Tv^+p 3|AԪ<5B}:u!ŇSӟ}$S's<?42V^h ȦP $B{+/(GMy$}%<0jKq,7LҸW [f2$	q@)ͭYHUY~|r{&6[69֞h5gC{J3<N=d5	xrGiìDl
]h-/SַPiwj\;;GXs4a8NG=?ȷTNN~"JZaP8 ՚gSR,	sJhZ5uى/yщ',B'<AJ*˩S]UrO"`{%
Gߤ"u9菛 qd@}"@#_yከ\_BQ>`۰Uk[wã |xhzD:U.DoQ2+֐\-MKv1byPŔ7IJ-iE.TNIVI\MDs=!׼q6$Yʿ0_iױMV
Atw飬m PN24%H'>Ӵ^&iZVq*|o&&$5A'N	AYQ2CW.
}I	dlf_O]sK>>.{wiIJ<`ɴy5ʜLq	=z.=
)@AWŌ'9'4.J`AS(g3U,dg<j%Rq2hMª?55GFヌwiaIڻ^%3(TPc\#NLLU	'n.s[fggwl~YE.НNdEkdlH0YZwh{pGD-m3t,ZnX*1q cP0WLr WYHX̧].)\nɱIe,"5gFV-U)ُu,=S@4mj8GyG`؟hrCacn;;uov5oM+`q?{urvqћxN/V] :?X-d-#aoz~#rzEh?8cvȌz0tD*LݫR_YMdc7x $ Go$#nm;;czߣ[Jjg˵Ϧw n[	4[)L~#<*'[tU2InSmg޶Go-,-}@؀oZQozYsy.iqihP#X"_7	Og86iedI)2Ƶk+͵iF%"D[;dȏq (<[p57:sKZ.Υ{)sgqo'₂1Z4egX3%0=_g40"`*FKׅM|6O&g$yu+B&)MCS\)>[Z))t`>N:,{Cq&5e^g,"l6U܇^SUrN.[s("w.in{?l*B)n*lmk/x.]ыFK=YPLs̸xktM^ǅV24K?!/2o5PV-}vUu$)8l#cCL' 	#fJUfYz8A7X@c"Py&C%$a.\Q%KmEvR)~]$%79)lz4)`	2_n67"9=Lu*vISI4'u!g4 	wo />TmGp(P!q?>|Y.X@v"Cؐ |8uNyi)ȿSηZ3֏x~Si:('>S@?@{Wh(NdѓRRĠN	<Uc?-stq8Z>ı9%TqSZ]+t^,+
=	cr4*\l'vʍ<eZ9Y
Wv$RI@\;f;.A`.u^p>aum2{]"nG6:^*wsT̃itbFM_d0Q#`H0\Y+֘aq[>.bO橄׺oJ,mȃȼtUŌN)#`)6StB׀e2#dP.k791,Xzi,*@a$EɸHޛ{BB<0Xz!Ahx^߂qI&C᛾*"LM@?\ώxa0{Le
lYf\_خhl<{\%U5RżۂXVv#0l!-CWK~Mkk-ВXI4O9L-z~6: 8&ed~m_W~ .*dhPp[EMAl	C;Wxub"k2āE0 ȉSOg`lq_aEvm8g2+G[}8ABC2dYUx1 H޴(e&R<Ggi(݌d}2!w;g $?$;fdM(TÈBG8qʜrnq^[_[z;YB4C݆~f/,_9C-8qҞmǲiyx08xKTjv	/ς`{OAЂ(hīqG#iJ(vQȚxg>2]@Ŏ5L]";C!3* p/Bh]۟R"-ޟ7U Zq<Rˡs_8gO{T=#ل#j?{R 7eR:Hl\|wv!>9_ywgʼ#AJy#QT[`@$_1{* 4<?ȢB4!$yVȚ?V"^!ao8ɈRunß4-kQP@M}LÊ_5GE	¦(Ym>>{wL^h`[8	'Q(J̱`7||Ⱥ  wi\3`X2ҾBwLz-#_H"#/㎍y\[ir.
ԋa>QC)XaWHק/u5OmyޤeǕ(
T]x!>%yB`s[dW&hӞA@LT)`t}qSL̝GR)蓭Vy&.ZJ-[B5bWujߠlQttѷl1+4}Ww3I0<k5@%c6 B{<E-g/_B0[t4y+)pm8HjJB$:A`]ȃ]d%-P"znp"gvhLuJTeV8=qMMC19T
TԸE]'8ѬnӁqM`bjw җV@qI̍Ctao  $,<#C3装 V#4!SLXNƲ x'`0bg1F[e 0	\ofZ1z/Y%#ga0QG,IyL"[ C5ǖ_L!C]ܿVJA9E\	n
1]J\fUwN	,,ztݺ>:] [oeAX{q0!}ȍ+kFbqR1päz>pne;:DsL}*6i\&h|!:񝤱xbg,5Oc2=;fEm^W`RJP
[7\$
'2)VZs_|0>ОTbl% 31XHO.I#!R7PK$hgFrǵm-F!%b-^Q	Ғ1>S@,	9rfR5۱fɓݍu[Mfd7L!v
 A2WA,Khw񛣿%vc:DYgj=>wXzywX۷2fq÷|y{4l;̌7&=`P2#=/<J$9ۭ d}ލG۬n]??Z1g?>H;y7:Sxlw\َ+ڰ&쵵araૼ1e6iuU^57Os=G: AIb*E#s!-ÎW	h#&_4b{BD7[۸f,#MRJ%i1$uW:eAzq?SewSf]6ë[6Zk#זXB[,[wzKYr>T\?|;/ap\i+q5 EgXG,U$ش$mZ` ͅ*:gE}ЖڕV]wGU;**{e痮g$%S\[얰'-dz]}1S]Mf!Yk3,GB_̃yF
 }_}m!5tHJVpmFAI	x3fO e!khgm", -t0}lv̝U0J M?LgڷGqv;YwŅ.*zœ0B?xk!:dȸ](O7RZExZ7p_F_%xf1B`d(?}v5(tD7|54MRSC}Hh$n<+]N]`],lջ(P xW2Fu#8u:#li=ěnlN`͠ղ3H=տA$ icǺ%b:ym,I>3{dW+U
L3KzRK}&`bv7IK׺:oax+4}YӛNivv8`GROIŒFy1\_	2`qRC0_e:ҖpE^R`RJܕ͕PzXTv}uckr2,5E?Juyvvi  Z*;s$[ݼV@8q`H%37#m{fhrB2Y( 	Q7ilVa8vZ/FaN"C!I@c^d0{ #^7-2(hoD_&Xu(7J
:ř6*s+0En@m
cd,.w3|A~NjF;Or2H n5;5Ǖ΄%0[ l5MaYo
h0Eb՟\.$ C'ͤPd3M>QnL2SMb^HZTSbA0֞whO~҃ƻ?s:Ys5?
/u'˽SӋ[D߂>gn=~@fI&+ؕ@ڼp5k!K!I8-	tҿN_@b66(5T|2?yaZ*=myfaZLC{ɴ ?;kЮ	++	/tԞE)Sj MUαD=pF5Aiϐzy.e"8v@<̐}qAwlTPr4PJ׋q~oFU~<:^xX>Srke%E;G;[Oļ ۶[@/f(_ +ea;ᡳPF 
JH@VFgebAY$^Fy[]8per2/8-*#i<?لfxS'fV"(Ʋfq7\Җ	6/r#H#wG4atI<VJ}JZ=F-Phꌀ.iclkᣖy%Vc#~بa76ͱި$JRJ%L<߽g.I#k{נ+jEWTuԒm o+3X8tg0]Gs;ëQm7@<ta/7xS[c	dmG1jb#>
v<e5{շN1%щ^[)Wf^U-LLmxeO=RuVb[dEݏtO,-5;BesY7qm<HGi6^e5j[OVEO'cpO pMՉz+ 
|.="CUHfr/>mQ<*rO\yY!eX;7Â-{	׈.l	e\PKP{8PM[+>+;_oӳ_6j؅mJߠ1N^m¥~<% =#
sr+-+QN_Fa΋S{hA|Cِ_ƭfɱ(cLhlZ #diKZATaZ7=4䶜^ !"󍠼Zӝ@uϫCk ׏FL4īQ!DGD8.bư0B_" iNhÑYɒ,hap(ص
Wzl#4Gyl_&U]9÷Jck1+4{Mŗle3s眼E:=˨>/	s3	zj=]N}E %9Z̉lEa3rw>kqeraVGm+6Č+I2)NSF3#y`
'[8CĤ.ThfUDtpchǡq:<d&-^iP&sɐiȿI$Rb:ޜltX`.
8;sC:xd0bG+1c%ormk9y:rO:e5+d=镆Nӊ񓜡h+$KJ	P9%e@o2-D>P4GЯ66Lz46C4Z)qcԁq  i{;QOa*1|rIyF%Vj{;:6kCa {;:zj<P&\FWyч-|΢5"ǋ:8`d:VDBӼ$~&ٍhՎD,`NearďE9˓nr(t?aw	7S0U3,GshnHNcPkPgk=smΊ$nvC:BS'ICmg6=Ǧ<+R@GC0}ze\"N  Mf-C"bRͪ"gʛ$_&SF\je <Wj3)oӯu=EW dK]RfQ	tÝX<iő-SE*xpgڦD21HA`Es;)Og/.n^ 1wEٍiz2󋣃sWf(nomX?X(bof/<;(eF(eQǮ5oZ~\s]:wUiY r|o᰹Q2U'eG z/
]q>FÒQzŌ;_b;yOjSܷAFj<UOrh^^c:	|b9y5ͲGY[Y3}ímZwoVכ&ť`qJ?e^]Νur۱EK֚/-Tlz`fr,Փ`LaÆ%Wwpy
ވ`<%ӂP(k r/>=~x􃗳`nW0=	%6 "w!FciDȾi/Rl'Vٖ\8/jS/Uj'-.`sNEt{=rӓ *V
N]ZIq톹gW&
_#zEFmF"X0W_qF@1Dr4,`$cF	=m'iw9pM/) $iп!yn"p=R/2h80S$sJKџv<֤>r O69Y5k-6xMNl<&hVmaؒ p%7J*yِzVVrȮޖM[cu6ϭ)&ܐ?UM/sI2ڜŜc&!YuJ̅ެ@%j>26jDG͠HfG(2MU''o-*4	
,yWy1{A;o
49u.`\;"TzkK6ކW0e#CuWV7iaYU^!ƵSg%|A-=QWxi9fLDE[.B%I;}zdQqď044APt ;
jؿ[qpҤwv
s_ßˬ@B/B>}vpFr^14no豍\ѓmj68|VLw]LPhC"s+P`z}֑xrÂ97sFA\]-6FjB1#
);i?cElM,%MVѣUB\OO>l ܦg"I'Q֯=s,~
=N/PH[Fnh.?TR|JL^&2"TٮM.f'QtP%&cΆTd{ ~Eo."KZ:^^di(q0oJ{sTy5%]ٷ@D {ioc痯ڴ_L2r416X^@d6PU7zfwK{ɫG(eKGy%+Z@2n$'`:H6yh쒖|l`nvUli7f#.HmGr-ZH~܏ǒ<
n)/kl<Bxޛ6~xۯe⤽BLzI$~kq$m+J02V!Ԓm@oO*&4gE4Ŧ:P;cVXR3:Q<wETaIprLS* ҷ4o3UGs<\HCrpNy	"n$Ms;K>P(\&@3=3{Ō]+Cjrp"I&eWcXpL&YDp=>(][խ \kH&(2b{Q=n9}ka犇d9x/iz(cA6B8^a1#Xr,+i׸qB4" "=D)7eLG$`_K^+.7o`PZ+tEXIYb?O/Hf_7M7M0!];Y1 ϖ-ܝ~0;)7MV3S!>l_m!x}yoGYfy#@3.I˓"8-AĮWsN:"^akebMO"27q 4$Y'~w2YiƑSId-?dp,f"Ob\LRO2?A5J`lHi<˞DR4"jgX,\THe搊
aR(f8D"Sha!tP)2T Oy
Me3+}|1aʽ)OeAƉHb !4]ԑ`A+Ǩyt5˓
-_4Axa(?$'CgPkʪl}hDBAVIa<VqB'/FƟ·}1}|OǱ/8EcpXy7Fu;뻫A7Wn~ X\cR
m/.!j0X|o Y| sqw>.>^x7C(ݿ@vs+-FWWTGhpe8r,.o!]wϥA.4ޟ_ܧ 4.4Lb<;CVLi0`ax{},w!-@֛>aϻI>Eϯ n'
gQ gb47ޥw'#ia2A}CnPz%j1#DT$dr2@/~tmn(Q' W#WIT$l
~OrK"˳psX_='ʍVCI!Y9֦u9-=7&Ք,<O?wO}fd2!4gv,;*$%6#Rx:;8LW>+;	
uh	_`܃Qv6PY,]6}Dd?ERL.iFP)k(xI7E*S9/*jvc(Z4=:h/,5{G]ԁ4q/'o`a뻃ȝ1Q&Y*~8`	6kXsS@kSڍ+)NE?2Hz5Ig2>:VܐmHj?]ݹ(b`]"ҍ<yaϋx/Oc.Ϡ@V'՝R\Jl˝|I~,~};xx(&">|.HNT}]QNԅuDlnG D5C(Az/'8=|/FR"c83dUEy,<;aȔE"`w<b*'r/+>gS?HJ@Obd4+&YY= qE`ʿ]!UB`ԛiS==k8sCo0:#$NO'0e2l4a/" H:'u-@xY}"n@E lNX,dWR{#,O@~ ҟι!gd7f2/?QKsRd	A8SۦSBř  yĔbO<\b|ZBbI˄u";YxrC?ŏ?8/,hk4O-0{Q53NHC \\Tg0JH>a$^H&4!P$. Sv\,8T,0%Trl=(^	XH@Vy!G8^DS=N1qE6RU$xlhcG{;|B,
/CJUch<cUWLK
/Igw
t	\sfL+3Ol -%
A8]i:h1;E*p2A`
TC&vEx9"~l' ĤYhh7b޵YfگR':zaPҶWV7;aƤ[-s$~_r1e@=IJq5.BgEu#65(n.c.B+?>W*5#϶Q~¼g#2&2djaBڮi%ia6#A}pͩ2'044&6|uZ`}7͓'iBvi<Vy8Nj2~	Xv
lo3:I,,j_Xԩ E%OڎߚGqOs{SqЫ:kXӦ-@QKpn~Z}	0:<a5n!y$SoL5D#LsIH 3ɣ4_Ƈ}l	dfq2~5=͔6(6,|{QI9UTAi^e`ޭ]ZyON_2YЁ8h~цώā*uʀNt_	0G9yQFAU;N>[s˝LH"dܢd*b!@la4mD30s@	r.`u"_x8#Ŷ	=&RϚ7C&cOAw& UT!-@[u9wmp@;UfI7w^5,:x3z:V;0i3ڤɓ80bQ?jPwPl,Pґ|ɩM{0į |<t?q`[yY.WZ+_;/=(Nt>(`fHO2zV~8u|Ðn,>	)etpdw,$,>Zˀ'`Md e* WŠr\{ph~M&/EԀimr>*`V~)/HOǌ(b=R+2dAgk(#v] XOÅ:ĞLV }׿ٰvxYX֢
pd>E'Juft:(ʸT!d:gVuQ|-M}%cm.Ҝc6cT֩soePa.+j
LWgv2U7ylYkOK?drX|e+;_!~w]ǕltHW(ycڠmme$SX>LlaJt6a8܋bötacs;Uh +@]GyC6{aϕs wۃ7 hv^zAv0Ms{> 2ʠh9<~ap#hQX{#2)M1Hޣ$zky[[xe[ȵP<љ#^:ez	6PXqWf2VA%6ZˬE{%ݓ {_<-!pW$A %1
^C5:e0JfZL+rt@vQZ(i[^v-nPIC:r!! K,bnYr[GցbC[8r@{ih
輖!j'v'bge/$EQ!'ve#5ANT+m=$2]ToL#4	lLyU/^uZ<ςAı&VX25T݉JFi0j9Jю<X55~%y{z$^"<$鲦6i`>Ch:<\_{r_+ڕS_Px*@[z.cu ^]Љ( fg)sq֡ pZMk!.`WxۇoX&ZN%_6	l0N-麖V at tEU'Ok Ͻ&v?pwZ%Ĕ/nE5UHyS=-s:D>/+sHۀ?ؚڠ±Q{afkӹt
=Mf3srXNvv KH4Y&Ox	apZB[n. θpXX'@TFYX<,G0z="/` Xgwʱhؚ|5^tzx#` V
i YXBK2/id~f~^}a^biT@wjEV'2-]JB5,yYk8'ѦԖp(3`KLKiUX\Vܨ}"W\c
R
%NtdѮc _@͒G}B:a@9Yfqqem+*Cwcg"uUgT34;i!'6X,-"Ιߝ}>A An%8Ԍ@NtS%M}/?Q
ۘ=҉[gCVUsTL|מ{
h%qYv~ـs*O&_1o'gH_^@p_2DfybMoaqxqAտoo[=ETh0cȸ}ީ:K	r~u`Bw0 ueʽ@e̷BTx]CEFe"O]tx1e;}
wǲ gԀP t wEk-`~d@]Y)sC/}ڽl5=G\!y{0`ݏG˲ĦYӕH0"q&6YT43=|h$x/`[3J-C;VXF]O㵊'%uɨN6n	5	!Ax~gzih4PdAD)$W<μFwϯ>fWqzg.٠^X4*^@w!vWD؀V6Ws1Ԥ/Zе'8IIJ~T:C3-˸] {	P{oH`a3`/`(>$&oLu{L7*Q%^JHR!+RKU`K~P]*iU^6f%l Y444g	*;>fȋ $z8	ndnkPz4r*v"@73˵%ڷ.$V.эmJUڏ*ޑM$>"6nBbk}ˀAbNPF9{Xz#6RVu]9M0(}e5Hm/X/@-]h4dFޝq #=
_K]u ¾,Us`jz)J D]+Aeb ^c,EgA(@`ۉ% (Vׁ/|I>y.YY7"&PN;͙8Z\%=IoتS#(B9ˎ|B*'Y?%~QXr'G269P,ǬD""!;ꏽopC=CUQ7W%^UE=9	(8T5{Iӵ5#ͯ@~y)8mgS)m.{z{'؞	uٶwheA#wquCd(j^e%)?|ҥe Fc=7|6?0ca<, ~1R.9b7ݥP>sQѻRښ4TT_9AMWqo~b~̯]y&,cm2!{^#:A4yg w8οe1sĻBMgc0H6yWP@ۓRWWOmtn9Rݞj˽.B kg5aӱ~y?Ixorx)=tC4ٔ-ŧs\`c[i{X^"mj=.|#L254%̃fAV˚:b8`(yCJY6!\;|z^`9avW!0=pDNJ)pl1tkO
+CGU^N|D~D;,
1U#PDaBDLuhLoLӱjSZiz'_,$7G,O/ojZnaԦUlz.[G'^oٓm;-E_)Q_M"%3Xea=S+L>|TLBrp~H%zni:2C9^,?6bh%Lҥ+J{J
ԉNhKװ'.=ik"j"G%wS9ԊHUv
ݼ8a?~Hv6!70Na
BCCa|sl)A98B5a8ǣt=;V[Cq1G|h]]1iS_*WdW+z;. еw@EVhC`J+UE4t:h+OW8:"ҙfP/0Z:kI9K?Cه$UoAB֎GFgE|?O4W`G t1毊U6
#<s1Y-Q'[y*}H75 ~H Pn47+xyai'M	:0k*kXmD$DLfaNk-w˿KvevXT[-W:jz.ґKRIxUtJ+Ԙtuh)l"8ظ6LϮ 1+~6֠._,}QKJVW97rٗJCƞN!g%*(1VDE*!ŃzXlsPo&HEV#rs4#} p3B(!LyrCs?oQ0,1{S[V7łܾylw6RMt2@-0*#K54g`sWې27Ú^c- V*HP{kOs%ǋ@k-*R~-Sg aD;ҪY	<e-k׹b|H` x*ԶQ<IPfH9A̛y_F"Mdfz#,MC$[El<ZmNMa4MWRϔ$~J?/iSzbNf$c;K?rX@B0wh:$-l($HkJDOod<t,ip0<|$dFiedr8=Or!W=5kMk)sP,,5:fv]*$y-ƋGPK?-ⱣP2&*X@gyUC&My(MLe1=yN݀ꜰcPAirgiNRےTJaJ8M;cigj~y.c|z|y:@r{}U
f$:cH\a59h|c9 Oqan#ʭ`S p)ͅxUp޳w'DgF8_7qv>6Ma;ژڱ	c3"۔mLkxcZܜZJfxzVv;AY &	s~PPF4A h{G:axJր,j	uM	hjB:'%w
xYtxh^?2y&4E F5s>#c9B4sRg#:[FnP\m1jX=ƽC5kNm ]K'Z|L+\]1ёA-zۭmUߨPِZ}U;TXZ:cf=vFqӦJ4<axDb8Pm&@G]I5IacvޣبUVqI<fsTF8$
c\{	8E+O+D
S6{o(MК?jbNzu4034멤j`^h!%M<'z(f!j+a}g"}?Dq
|;,PVs{L\Gw°N06-1RH_:G"8t3+i	d1Fݬ(\ґwzzG09]3r?53)ߐxs_ԥ+q{>hȤ_NMuf7|/lޤ9i5=-']Ov`%NpIh:04\VϿ06T_oA{1>^tJ;%¸<%Hf>5"Tf1%ۣ󶤰GjR8n|1{ͦn v2?d?4ucuGFbPv2:ϼEn]5^c(jO3>GajWEw@Y\+*G6ɟCPs]Y=Ҿ90PZXsfhe
ɴm{u|X)L #fr.?xH؝rXËzsv]k.WΘ Y:GX2yV.>]AmAJ*|uX>o*I(Ў>qrl(ގ	3J̟D^C+[6D #N93許]]GjqJ:פ76/2^Ղm\6L\4]<j!d pʤd]jS˫T8Y#G@ [=cu#qz:4͢6/Y
kX1ySvlM:ݸV$y:v+r@&_VTm (%Պ*RSSU{px	'?D2EseVZ-ɋVsTH_7*tŸ[c'?ipkbwz騻YFu	:	؃Ӧ۴nBIFt6	/C\+Vv^qTn>Yj3`d7R>j_ǰ)kcH$;i"tT	AD38:fSRu3B4S_2טv)V.1-GKYCW
ٖ90&{lBCu677UmwTc5,~x(0(rZV:\?Y
:bUMYdE0qֱ/ԧ*rեl&\a	)e$7LPsWT0ɉbNJK\#=*Of-IRꡱ&;Dy&rToYF C4`]ה,M&b]{[[4K'-P)
gkgy9wE)삦=*;Óf^ɍ!ΫɤjNiUө
nMgJ6|$
AjWhlR-VwFZw۷<6GfRݑFv(ލgV=QeSf[fDZq9(T!+Ɩ	KY1腴ų> ׽PC̡(H}RA,yOB
T[b?qk%GT4EUc5i=~M7E)7@1P;uh[ch	#<FR%P܂Fc`N_pB{.^<nTǋ>ȏMiHCKQbj>`23Bt|%=EaBu>IwIVi1|P0]oOCR^ӭ^/P2UZIAAiOA8Vq2t#obxS`nlȵG`\l)&ja
5<V6FeZQ:&$>g]'ӥٔ0շh!eXr֧bKqQy,h1=5U~=#Z,tj%kM]&9JLH51ǩ,mjT[mYɨۇG'}`"އ+2|_$C:l&MPJl/o-sZV@R, +}Crn6O懋u}!#ŃDʥ/n<¢z]@R1UNf+C
ԤiIL:[)LYNC?zhRGa-{-XýýYlb}{->Uck~
okN"|.GN}!ꕮ Ӻwº;[pz~=?/'{P襟aSgPR[n˼da` |~s39gԷq^'ںU&Zj"~8ֻܾT'ȟtV WUyE"fż4k.46Tٚtn2H·VϥhDw*j:nNcS@
m9?PdjuZߺ
2P&1Ӊr!vkfyypItQlr|7HY~;IkJ}iٰ8a U>k<w%X>3ƏԿMO+DN֔E6)e"KW iweY\W[:/*%N`[!Kz06Ie1) y]J?x6\xx,^(e7uC&@X@NObXR9^UR]ʑp+:T}wGOZOCÃ,d@іnZRV`P;$eעI!cP[r\ՄQ
Ieơcpʚ8Aq@o\D2ţguX$y$1?Mކeº=;y
)ɱWj~.E"G"
f}E:

RL.AcgZ)k5jKmytT%$_ex[0ƻxg)y㻜@(BR3-_ʀHNb6C%㮭h;͠JU;݇4S|h.iyϥsY1-E9)xqj;T.xY*U
EKqR}4.*?&~,ɵk1[Ǩ9S"*(eҶzvTw/ܯH+twZgVJFm0_Ż~
s͝q4Spzoױ@jwEp2yW:g%[kVo|3tI巷q:;8VzH$t;Nl]d"\
Gi}m]f(K$,`
=3k[	/=+2|8 6zՇWa sء}&^-2yͶie\РXGTi4BBgPR%|;2G쐦Jz Zvar<~S6'cj&%[%o&ᶔUcwpQ*tv*wCv홺9uh g&tF޳*pH퍂jJѪk"Di"7c]xjԏIp@6DPrvd3 "_"5U <}^yHsVK} +\D:*K>G5NbxgkWM2?U_W]?cw`|qH5/4;=hmC8Zq`5?jDL֦p42޽#^IƦZa?9غ>P|FY$zMbҜsgNǩmwt*VM u՟őSMI|ꧏKU/eWESRϼbQvzQuQ\s5j\KTfI`ͺ:&QUSYgMjǬP<N-K4^f=YakɑW,`=Ub3#ihu4C[r48jefB>g	:eTk.|e<NH^SzJ&0فy)+?n(KDL;3"!8'_DOI& 1Nu`AAFi;
e]7>ciܨѭ(ql%Wv;ጣjhN)i_)MR2*v"s\(3.494I]$5RZ'[MUTL+ELk3
zzmvVf7۪۬|eI_(m>ԫiF&IKb݇M=3QseUdo,pWZ*>ٮ;wpۦ|nZVG@DjKPX1km D.d6>T7"Qd-]AXa[ʒKo)3˄^NخNNXz
Zjʜs>ۮh.zN3xZB|a-Pf*3 ~Q_M|+$'qgэWQi{ͨa*<f\89V}[9Bgva(/&IwP[s+|%X,=t\QL3ދATֲ8Sfͳޘ=6k.66	iIq윎vyԅ;F#cӃ;Zy[
ļ'|ְC-3P9$ڂG	O Gbq\n=$ghڴҜ՚J	E*us\1h'X`%uN[7N[48KY!~WwGZ!8W9''#ZALOX@?FPL"gpVޘe=BW3uTi.lQ	M)J!ZQyBuJgdlj|ڜ^YwRmjvmsQ"[uN)Zkf\7Dէפ}_r=vl`iAdJDҬdWRJYm=s<.*OR{/d{OFп{d`(υ\6
/nͫ7@6a-\kޑmY UUtaا>:m*}/+śg;r\x*}9̤͸?9
5N]za_
x@*kspa:ammRz$fRAB35nR;'PD<	>⛈/[&%/7aSRܿ|U:6Lb4#*<2B-l5yWR7fw*=شHBv;-0tGVDZ]\w@B/luF3clt-j}M:s̍xM;Z,jlGҙ`YThc]C΃VԆ`=xH	'Ѥ&4 bB8 >nwL@`HȌi0ǀN5 q<mQNB8JB4~!zQnX7Ӧd)q?d|=O>C>OכqGbJi_JW??5N)\׌zʸF2F(+*Ze8fȮ"#]a&*6+p[ɍ]l̯ar&o,ic!wxUm>{7q|/8uM8{i;,zd?vQV2[>e],8!f3"K]į ض}fi:rGkD֓nӣIh淓_ovϯ>d/:?kxYmo8_1rrݽH[nkK9II+
AX4D9mIْ㤛bș>Ckզo"6Wpy:g %+Tu%J9~K@R6meXX@L[6J V UBBP)
AXTIɔ"L=JTt"/E$0QK
92h!dI	fDiQg(	4E~sAGn-Qv "?Sy`\jkẤqbD^$+
QNFECȸi⾫kQf-h>uo,hh!B<ѕYNSX3.*ZKCNYm2A5Xe&OZʕ$0$rJ}.Itc!\;vpd}47"@OO>72p upFӫ}sd̍7ՙuB#.p>wni 7&kåDjjpy\BsI93ǋx0y>8=+T#Iʑ)p?\DpO.;(}>uihj3Xc{fp@42\8j	Qg{QT7UهHo!guW89,u7]NcO.$68J䆧C^.Z{/r,Bݕ%fFwRM$z<gr`׫%e6mkiKcV:oMjc~w._C_IBbt]疕H0K6shW)^,6veQ{3`Ib^[Tu!=+IQ#IˮhҴRYcA꒘֔, $U"ϰT"0K)NksujOhr%tMj3gHXvOf=X +8Fc@#v^ 8ŞϜ|`V,bϞ9V˛ML'qkoL!rTP{1[$uIdU4Y	²Kӟ z ݈e,sY
m9+^3=ct1id9QE8J(M1i`$z3@Km+BsFQ❶2"ѭlcdU&z3?jSMגĨS,)ly.|ш_Qw城3A-&Aw38N8V_	Ir5ZĠ
0\g!T;sT(CZ}{yG?̹h֒rը.KJ-sN}~D]]ה+*1e۽'$gE65k1K!%]h-(:ŋLTZûBf	G8qE;~:6Byusyv,}w;	ְ8f3;M^f*zcsOMЏ8jh+Ak6O`n=άfBa7MP"92)G&,RO*)U̕dvӎUVI4yȷv.xU%KkZr~(j|쎠d@,ûnRつ4^ЂeCOF EٔSoCV^,Xli3p>rHb03,S,Vo'_矾QIOOw5X8pFWA^;
Wۧ=\&dsXڿ}<j+Ki]T5^"c/VjϴzdP_U?C'CA3r@Y{`4@􄄝ġ`c}\Įٌ?(UyַƮw|Ke{Fnn3K,KB
G}"H zڨDզ7KA:$yJ~`i+ b<zBodXD@Ǳ`HKLljIJħX0m}z%]c#sQpQW]Z?æ+@j^KB<g9%O#BkpBot-vi,d1VPS,p+DFEW8w	5UM&\Z*],uCk)WIM\Pn@sQz%0")bXx'4}"Oq˼s ?~Z:|&]w	
L.xz#@}kJy8ޙ	Pb簴Ҷ;yhd>q+KV/x1rc#W㨸g=:sJM#*;2anBfs;GYtnuLbciL|WevԳ>Pr\ڞ@ӗ?j/3o8L#"E!zŃv~ɔfcB[E7i,g:@k=u|~}6;?(z?v?:16#v#쩵UH߅:xWmoF_1r? Z-^%RGRqCU3UKj~3+4y晗^_PlvMybkBP}`uBx(8VMhhd7RRPJ@QՊ.,A,!_3wA	7B.*G$V$R=kLJ!yFLeYq	R$*]
9_sVUpP^2!DUKkt|$]!.EQ.۴+`RhṤפ]$*)!C
"01my%֧.amSa
FsE'6@KQU,JrMDb˵gjaCIm_C7F!gb"D؈F=wz_P؇$K؇ Y}
F./]xq4O%b/L!/|p,lx|pa$)⦑i?A<Ҟp'm0	G4DdC\f^ċa6gQ#"Ax!iX	!{6э8!hd᭏ۉowÉLuawkb-i9>}}034GݍST!ч ] .*EUC QO"L`?2/.f+.WXWϞ.;/չ>*/[UVӋ0,Κf>vZ7!OAOzSak,Y=E|bU:[Q`pᛛ/Rk̾׊T9( G<$(b?a6bo'W+Ǣ*xzH\H*!^m !=WƘVyoɃ1E
 +lڈ'\9qJHW֘'rX6Q[e F/LJmJsڊA:Ûw(wvszA 5w4q*Y:  WNj@	ĦE?s}kADԆܭz],xOvE! faͼk[sf&Ж֔]6n6ȃ@A.>s\$`JGyYFõ5VTXʴ5H&}]RC/me҃YZ81e%PA"_5wR4f*2`LW8e	ZDgZ~__FB'x%=eqqcZBT'id(T]G)_f7S%%taG͈+2qwDrL
o`)3
oS<ysmV?엖SZŔ7Us8X֏1p[?۲5}| g^i&Ã})%ѵ$zS֣5b[Jw``Q{s,)vOy5(b5JÔ;H^J)ho8?+&3rm6xW9+kP[B'qK?Йj?B(uTPaz;蘁z^JK#ȷ#ggO֑?#cˮJ&axv˫qxoW~"ׇqpt{RcgqwXOn%{=|υ\۪ڨء?p!!͕h2/7 3($rU還܊uHfX1)CrQ~vYYIpyw8qHu:ѡXU4)1j%
)t_o"/TWfΡyMj[LQRuU%W&$[YOg~'pLnɹxW]s6}ׯdT_;N#6xB$$1&- Ѧ{.H} ~WW)+GTKz$TNڭX2):WW4UampTη4B9wia$l%Rvi`ni-;QB-I0T|حd=#=a
HuVW`(\tp6m.\
@I-z.J׎0&c.ee	NEUz2nma
Rbo]®-gR ҆,K)`7џaEkvcc^JW&]((^,pWUfWZ-tYgv8BlnQFz˚dPځuÆ>ݲ+3
.GfbR@<x%Tzt|>IHє&s4tL}֥(?I_h|KAŃ.$tPㄢdXaw	8a4RcE)Xz&{a~m@[4	4?&d<Ab 8o(
Ga1M`8
Le<Dw)ݏB>Fhk-/E1(8fqs?|1]
hιMƣ.w!48= 7=LA7eNbriҟa8{L~녒om5y<`Eq&q0^лw:6IgnU6{6b[׮(_lN7?wGJڵ@+n;DkPm
ER-
n3Z"w*%:Mn{41JB#$(Ȟ茪rU KMS!Pqge_FL3S&0lՈQR8vܵAҰ5rEQD. =cR[Zf*'Q,VM&%o,Fоum2ȵKdmżWXyylξc0b/f?]-;q4}
m<ZZ?tZapϮKhib̲{7ImT~Wl\-eFeyP@}1Vt!2.{Qt̰Ӯ]ws<>{:Zyxg,Z޼K{
/c<{2ʽP%w%E6(A'AW0#,Π]˛P*xF/xi=l!xb3BER?oTI`_\쵶aޛttwZCatUW֏5c0ԨˣhP[ٻSQOj]7̵Mֻ[8jI^@dr}0iMی^=f߫⽾)Z27tޱj^vX%˵k9^dv[ŕ(n#aOeLaC*2D:Nٶ>z)6-L!q}c<YdG?4] nc?w6W-k?0c;l&`5e&xnn?~&+lCXf\82VDjgSa)4}m^/n.DCP]clŷj	3d5_1??F";<jlR
0~ZHG-<Xxi5?NzU!Θ)ƒ&[xM7oJUWqOGdw&dAUyA:t^]7R\vAes 3AZxkSF;B8U5dRIʰffwKmdyhFnyhFumU<w8bɼ2ӌ8Z	K[޺a]}fC 0ay=9oE("NVڻq0yo-eY^:R~vKyp.v˄ͣl'E8K$Yt5b$$[Ҳ)74up=YY$ÇN8Wf_Y$+MEʧ0) d7aļ4+} ,lEIȹaN0"$<$</R.h=o
ݱ<˙(|{;{@xs$=z7⽕po5/H|&IRia`IYzơX
oX<|`˝wXO'\vw{#~ W~ww	w
Z_D`D^	ucEJpWbЯ"LDCW*5pPZ<>߆=4F< f_H:E$<JCS}B3E]a]_+J&.BȍArq tO}qc[&.#l}ha,Z;P(L_ԉwcXhջ@F=ӂUnRO?HqmA($H
lD~n)x桯>J-<c5*$ȃU.t	Pܮ2v];b!\8,
e\UH*@E-=_jIL5*dGr)0rKcf$ʳ۾Hd}`$Fk1_3Hxq#>еQj)14#DTS9xYV}i(yN]#XKUD_RB1~l܆jO'SUhVY/n34AVm'voE29&:[vCeN`6G?_d"!N#yW% 4SC7(Ia:FJ.ԌCId5cCzYP:ځVYژv 	f/*W}}ޣudkMRWPf{aVT&gwLeCl.-jh(+㕼{fMcг>PׂzsuN۫-O %hEֿ=A;Vf׷ZWlXS=KI u%Il1ɳEVj會ʝMUgqQDWX߼#gF܆L] mȇgm;pǮ^G>ekF5G&[`
J_(a9Mظ=]h+Zѯ]`lVs;rړQϊ<B1prȹpTUHm;KZ_lnHi۴N^s)-4WfkK.T%u^WjZI(Zȴ-gY!Rv]7@ʴUJiT3kjJzYڰnCCQn3yӚõ9UQ*J-L#/Y:GYZ+MuFo'U5';+Dޣ<Sss51JU;r&ӽ:ḕ2z6_i5T93MS5xr?LC}c(&qt&O*4(̯4+܄r5mG<u.v(4p	9_2 *fp~I.ڐ=tgjw'lVM!t;S~<۫O&g'zpn}|Q"l:Qþ}5 ڍ4b,wfLt9[)6lz9dH|(_e(>qƐdKXZ	(pej%+#-ޯAcW,[)A!W<͚ =J#\{]K;i89$x7ǪO#݌Y.rmMglaU]gƖs%QK:SYxqYjECFꕑ$rm0}_|
ήn);be}`MX)<]bJZH0Z_e*]@$3OjAS7!K`<;ё53NXzߎQ\mY닻`Q /`v$YdG=p?ģx;{'k IʖOSQ-67}%D@2AUHifԎq/X٤~E5n.<Buba^=;9|Ϧm%٦G]w|]evCпxv8OGGgc%-r=J*l]շcHkT	9Kl_Ƞ%]1uVqnΏ)
ɂ=L!el߷R9}Jݛ/G%=O}]/l N!Q<Y5%7KM'@yмulXB2W|vs0̂|mWg'|f7ԫ>ke	p^=/+Se*B4@<or<G6_]j"vîm|bz׭-rK'dOC&)iVȩ+8o~,Җ4RS-;ER{q
DѾalGu c}Tgw,aդ^J	BVlXCIٗJA6	pT4ѪI:Z_LG˺7@2elIH">kG Oy^-RE#,U1ÁhuYBб-]j*ttܯp{IH3fC-1AէaB9o7ǀ}>|X=vtuw]]5˚WkuPoޡj;;kK#} t<-tFdԚݰ2 J55H.Z/b!2RkҒծJiӪ),jw,m<fyCMQhqߺw
_L"._tVe,,|6|@dKSJV_vj-XlPXO5jݦx$dQZM(|u]ӏgg~JOPsqB[{ .(҂eP˧:УF^|DdW{Em
Vhz ~JԒkT[jls"շw|88M?]ϣ17Ɨљ~T7\[P)xUmk0_P}HBi,IGGHF-KҍŎmB}=NөXI+4ݑ|0阌Htj!N
OCvb8ގtvZ(Ys@'kzh[Ko`Bȸ	JŁi 4$M@r E%8h0c!&`0g*>Vg&+<c = -o6.lj_SWyv&ϤO!Ѡۣ4,]|CCqpCEs#P1FĀ0[U~]ԯAa׳ֆ\nEqRxn=TISڼz=nFe7oƥەHKDQ7Բ*>s.z>ПDxO-8B>6t
LӽJ~UzZf[}4	V*wT,Le?f>L=.	-Ѓgǈ%ߐuq.j9a߼ܕ0й̟Xcd?qQ:Ej ]r0jq}1R>@׹l1||?
sqxg(D -;^+~B)xo۶wl
t{0n!uXcgAm"E9#J˭h~p$};cc?Pt0g,NzBϟ=F뵗p0Ԉ?XO.肋{W
2b}q G"P,h$c_[oa5r8k!],}"=o\#*쑞HȿEf3y?J[l7 ;Bp5̵.ڭ_o^1Ou2B@	pWZmŽ	ĸԆTqhLz"ј@jcs;zѹGɵ'/SW:hTlznH'T;`6K굚TRuA1I̉w)i2
`sW-(GUCjO>5[Af<X,p<טi0bEGcePC	^SrsJ2V1BJ.OvtdwH"jyEQT&1,A-gA}~{u?vgW8"*	)|Vz!cS3`|*Q<PS
%m'9$ɍ^Nbfnߍ)O-Qec|Ar2V&l+*=>X`jw;xY/vړԬu0),%[O 5qB!YBʆ:2 ˬըQm	Jqdzl[	9,رN$#de?zpud5
+I'h/Hx_O36,3ݧc.&/sc<e!syqAsqCB*=Mb*3WGa00&43.QPM~_/k﻽CwϺۦ?0 ^x("A،):ӣ}PNޟZݿAL]G$V<XcEP'
!eo)dEvXgCcd5y|tqDLIAQԫՒДBגP"6Pr ϷŖHmPx.*V
iy 2Qv.7-21JX2\s:"%< ڨi+Haue;iF01L֤>	UEog;u`t߯2:"̊]N. 	̒SI:Z6 6%&$.*uCfu9ݬ2+%r']>&= $@gǢ*BUvR%(gͱ|z18z}W<AкpQY aJmt@7He\d5VZ;̓U{|-rHR`8f`.õ7ϵu5\0:`I!!'fNSˤ@EJ!Nڷ\ܨ#MAFj@k aW>gKB/(d`נ?-T%TlKkfݜ8u\EݕK󤊎i킰OY>־eoYxP |We>m6&6˧&Vt1_R$'9N=c)hmRV_ʢT3ŘJr+|(nQ2T/uq!
/UC՚[`5{HT'7ŇDF8syo1>1=,@SkedӉg."~zkhxyRf=hZZ]t"6ROcȐ	:[R>(.?9 Vnl,TɳwKfpexBu\/놆dulĠ'r|ra??eT\4åT|X.@<z	X\xZ\(m9_xH)%4Dw%ߔتkXtᆞ6Y޲!xYmo6_A4@!a(@؍lcE`E&=roߑe;x[4w<s'戥<L'`:˨u6uRI0_wgY4zi<~Lv<ȣE"SZ%]>]<HTA$X7	KX
!Ғ7 4.3>orͲ<icY[ؒi,TZVSeEc F1ՊWޯ$a\Hi}6%(8A*E*"	*XL/QnA[fA?i[PE٠,|HJ'a%HGӂK>h{IZ{%d_3sjڸ'q[P#-3Iv-DF&vk`LkdR2{h'}KwOuz
d	beU:>HlO>	:#D'A^s~LSr<{F$GJ%
^PM4[Ql+T;D	NX7<)i(׉g֌Oq*3kRW*(yRî؟2{ϥ,h}98&k%`b1͢ao8Ga/]pL{ot[U%4e+,麸F	K>gbL(Y8#4.eRfJua,'nFd0	M0nQ1!BZP	IBTnmvE9&bRI\C퐧s[ܶ.VRhl\?q-d<cn?>U#yۦ)>F0|+bogEuM]Kdu=*)c|mCU5U3L3l"HZ!Ys	>mvԘޏn~i]#dq`/2P?c'0Б70(-۱-x1@N٧  6;Pu(MdSf/F|v譤l0U
rhށ0`LğcaxsJq5+v9X%nDr!l9,_Nzn4v_FwtY/2ck	ZAIכqp|/=sx>n]jsݴ~h0QI/6s'mQJ|]A~H\'oW;zj&N==bP+ێK|=&R@)
acgtG=Is:f97mMUM1/M!4-<	+)x٫#:E>~[բ՗ͫȐոr1A!N-lr-W^
CۛЧIz1.1Wi)oo*>m^ZGZҗ_޿ߖMA<xV_OGk I%JRV[@$`;DFCO뻱n[U귾#?_ߢ3{{LMUx@?UEOFc~$8;7OG~+xxf7[onRE$l^xB(b]TΓ<tC`~))<M1O#fc?g3k~D\>D(C\XacדWW.NP2L9r8v
߸i3[76r-S&)#O߁IP(Nb^vxSx	O,s,4()X1rpcfSS^݌YPӌyJII7Q/b(EjЗ=Sa3kk%/g8(ya_4^HhWe(v~>e!Q8vT`V\<ۧdSn2
i}D|mxd6v\^n%uR>!QlmTg*l$l:MbH%Ō Ķ0,Y0H]a5{kw&=.K޻cnoV2!I~JngoiN^SYJ_`PC&(WXhӥPDgBmԷ\"C#]ۢ;i-" &A݇FcKpuJcex	Tx9S+`*ڿe ӸݙCENjo|\*w:UnMisoQfFv꿨ܣ&Z< ybU\7,*^b}3(3ƁZ]<~MbuiD2NS6"iܺR0{^zqSvg7k3? $xZ[o6`7 Eo@IdY_n^HtU4o^EId3'*?f4딠681_WqF9V8!ɏvyFsyHě	e%IxQWjNY^OH.j8)H$FBy`h=6,wh{aWz"Ȏ2;L8ٔ9 	($1cWoseI*ͳY)p/[{'0S2B ?ÛbK}f=¹=6S*psP!13tGx@68!c6GY:"RщY;(5EfF;)m ĦH+@*lO'Ʝ2EHHuMHU=1<JF6%a/Pѫk,0`w	D=o@g 9jeP!ą͙8_朋CCJm,E8ǠSa@"M5T	{bhjSZbCGa4YWt!S>c2D],y|yf
>?(9iv+6Dh!J$sR_ qTFR*4h+*AP:Qi4XhDBlrA&р'I48`k\TQwLS:`ibn`LBo,kyh8Ɯ6p8W[`:mB<( n4fEwlh*d}KkHhhPkFFC9_=*]WxJB,ֽ.Q+t&UQH?wl)";:p$iMſo2gp8eA"7jw4(LR <%Z7댡5fHtl%VeQqdEAA4EO(M!eUC*@unHp9C7\,QPՔgJʦh9rl(HYɺ!2,@1i_n(r'ق1[<-vtx$ὨG8ztF_HB&Ξak|AL3צ=u_smLMU$;P.a;vNP8Gsf-%eW-9<Ys'R;ccG1<xˈkex+W>2qvYMG[\$`u$T $yS4*GS#r?דIhP<sYZ%Ar?HC.afxBaLJHz^a`-)|<][N2x]4 ʩC|.\7LG:%<+dK e١(GٺdayNLK߅oh)Kj
aq"Pxmg_߯.߼[7߼QBV\̠%"=DMə< cva}:@pF<UX%٤OؾkUFM̡
|JyD6
J֒HU<l|	6&y ^6.5
i'HrtP &b#ACا◪(H{!	guQfK8k;
|aqhG!*ĻP\<xN%׶JRtd#ZQ< [j0pΈgS=YNPtcg)vW5}5NGX`]C5EBi}qtvgFĖ/rb94I,fzWY,V"IkeQ	\Bilp2!mtr[
qa.",%>+FJC t{j_yg$ϝWqskTӱ	M{s_uj^2n0zYŪp#}띃Sq3xu fD͔Ay88B}.:oSb<DuF(x%heL@@MְSWQpD]TL. ( ،Eu;[x%fQ x׳Y=N91d& w&8>ɲh	=gO YRGWϠl)Eq^=j$vXc9w|+F@RVDzfk+kxϢ@
%̠4B V,/H[5Cv&Dq]{؞h7=?D=0wLOz<ڿh5O[[4*}Y`;Z/zО(gH슂Λs -J'}BQ6}sѯ̵BH%cߞNNgKsM}tn$alq}g9Rgˡ;f뭈?Q0:mxVmo"7ί&Rɝo'H5]I?Zf=[lBS;n\"x^?3ΌW#1~fpr)fgW	Igh,Dlwu?oƍu.9-JRiGƯ0Y90JgѹIB!ԆBޢ	-
Ųx卢/]tВ(V`[ĥumIaQ\:#W2EXM;i.ip^d3ٍM #wv `7ԅfptY:*ª:v څB氶ZHyZ揕$jR:C<kT[M*~n Cif,ZCeϪD#_xE))6oǯ*ΤQTc*tSTɜ]@4oo<Va%	oq/}mS;1KE=+T6
"u2G=Gv$2"[
r95Qcr>	ttښ1$I_9w+᮪jV47܊pA0<<MTP8²Zh%zUyN_ȯ<C9Ja#^{6N>Ro<#?4	0_{,z9Em Kf}4aOj2Xcݯ7mm=t|1ΏJPMs=j8w\[pjݩǨqdvP4؝J`xqCU	,)*&`w(Z(ONˍV/'Nvyv;lٕP![dE%'Z-\D|M"X@_2C،Tה(H%J_CFz0&YQ%}"8'Qsf}cyt~#˝^D԰-tO	_7\l&澂SyI7y婉ּl5 ESL۫yxmkzv˕WxXMO0+" A#nh+m=:.1ee+qӆ$a%Rgޛg<VX1<|^a F!#Cb»pß>ZRbB0rPT~*lhX*{[d|.r4Ɂ-U<?z*Ϗ3ݦC"ed뺆B=SՋ]?ڦ
{n-ho2LCy2gΣ?b3E`Ѕ AJ)׎i X!;S8gS7DVoPwK)2>+`7iUtE)Y9#
gq3{sL
suW
szђ	J3?Wf_=V+ӵKZ]>meuv}tx.Fc8kngӛN(1T4Nܙ!!Y_UgDABp4pؓMujHLۦ5JlUYն_`Ƒ	4p1`Er궐-)Ut[&:Vmi_⎵kŴi>Ѝ0Ky8R274)`p}By9m2&R11hUf.y8^P{#1dP52WJ2.nvCDCKЙq2*\d#]lڛ3.*}>J~9`Sacq޾,w89c5@;E7Y%gkl
o9a]฿5?cOئ6dHM[P$j,ŐWYXMeo\"j@~%:Y/c0zs%heRMTՀJN
C#P[*z*u4?Ԛ~zYT6^TW~-ڑGE xVr6+ʗ*Mn9eS>!/	0 (Y |ZE=3==\׆g26D[|6"XGʔT&xqeSkKզמ*kk6Dz~lc[`J*m S$ʚJ/MVu&h/aqpG$ӥ]_UȣTyDl֕w$	f^i7էKKzw9ޚK.PkNBX ]CN9u"[!_'*z77:B"o2,lJj);3qwI! \*Aj)lӠw{ʩc0=l&>}cUL,E1yQ7KHyRxg [Ehz[@˕m	%ˢl 1a#SR
!>-38O؀4tPMϙ]CBd!d⥱!adC~)%=h7Z%k*df쒺@X-{jfhOLA0(ocܳ##)5Qht	]i*UQEɻ%1Ĳ`#,<1Tmի51b=ġ3(~!YlK;lrԌ>ڂJwP&" "k:vyrx[z1YE1Clȯʻ=t mߔ=Tˡs3ɧHzTgD}cu1ТT`];kq2a>Κ(X/	qRW4Q/r}&*hY%Dx!YR}ՙ/P󤿭{::#Gfx:UU8,t3NsFQE'L3]]uLώޯzP|罍!At+<Ͳ0!.u;6
u*vM㚗&kEU5q[W:ɲm
)K8x3+;EKtHvk<'+a[BLV; vǻ!XBkE/k9STn$`Զy?m͋@
2&g."rpxs(ǚ'՜#og,xMK0% (ץ'EeDBL۬m&&惭Yzd&o-Jm COr+ʰtTr?5p-Ղ#z93vXAX#4xdtbK6qj
[4Ri'X+Lp^	TR	R{m8%_49w0g@͜t4G$RNt`@Жzq}usGӏI?dMSQxWmO6_+[U)wPJ%`i+LP6i49^S;v@lϯi&&i99gBL(Ka!$'!\ύD2>*8,a[IIIWBW D'46P6F୉m.gL^	FeE`$F#4jv7۝z~żl`!4Gctvs8|+	P<2eIYQ M)Fx!J҅zl0}/&aQJ|;쟨1!iB>5VSIEsC̾+SQq]Y\	`'eC[}+$.W/z@^p$rb)jB></3+g
b36Է8/a0uˮ%Q84d)e+DS^<I%zW˧5G.*qR"|>"EqO+L46>Fm@(iRcsyT_[=WNꆕ:8ZI\TJC-:;{	VrUO줲ku5[#Xk=K,b!K>hPE޻A\X=<*qkcq:@G-9Qbd%PhݵR-IN3n9Z.LuT)Y.V$աx/] YCzy|,е%џær"#)zUYOr~i6aHqcE*͗`]?r^j]`	Rˬv+$eYEI/Itl(SHJn Y
M&(U*ؖd.IW9}wp:5WDG/MM,&9W͖3?xAj\NY%ВИ?oq GA>7Mu\#?W`w9mG%c۷~X+1=5qTo<:4>ʜf.XM3DԯyoUw_΂JRG[#z)<#S07{soM{ :&|{2~G%: ߹b*T۫ޔݛ.y{3%7xWmOF_1ABP$zh$dg]Rt޵c'ᥭt|3m'\)Q>16R*f0X&,,INOQ\̡$=c
z=e/0$ު*SρgE"&wh4ӛh|iMw/ї(H\J% ɪT3<v.G-[G^)l:g1znZF2 Θ (fZg	JE:ǱҼ^~C7|=Q7ףt<cJa(|=)*1L\/+vv.2TeHJx);n^0߃/nЦt~ +Cҟcd C176GR[|qU9'kGt=p	Pq
_$2\V@"i	i`V9P3gz}%[	+4^Bζ|J.Gh*؀yZbTNoƪ]U%EC7y!c+%Z:i'Y2	FzQѬHu}L YWTޛQ=OObXч5|_in[]}BʜY`u^@8ok^,f\0Dp7-TV8>	vY.W%Zy`W<Q[F'㓗6Tx,ifq6=[`/H͞tZ+ e1cݪ6twkf8rUO"(gPwfPZ꠽_d!X>LaHqk(rI`,9"{Te S:-'4*WNC\I^<rC<jkYj"ͬ]nm=XaQ&XZcSQ͓J~}ڰzJ:$}M/%05lb	w)L@]DQ
f]+^v4y|JvGf:ekuE3F^1'?jCgު]3ҺmMtx3jGgyEXetKPO-G{W;2xMk@^6
ЂP<5;1KlE5i?޲3ofl(-*0ryDmS>qCO!;LuR[,w*E 5A+?6eCԤDH&M)6I)SKTQbcp.2ݛ>=eΒG	@鵔[IEޫՔrVE1bBRց{[l.Y*bƇ۰j\XذPX[IFwǻ-ڡ%A<u0;P뛢SY]!pOh )\_U;ҫLT *xRAn0+@͵
UC*8Z!V:rLPU݄䃽33k{3R"yXīh9K-ūфhP,v
a@F*Q:cg)m>8w٣dUH|{H
B5ErSR̿э|pܥp&Xgјj*E~`cξ9:Nffpd$-PhVضjN5,Mʩ Ģg& YsbpB^py@BHe^g-twMۺxXmo6_ tˆC_tʤFRN ;DYD^7y	)㋄.2iVD/%,a\KqqRTυ\Mϻ+8UcUi<|F@x<1Rɣ7* BvF)HETh,YGQV9dhhT)r	9hz{)N}(@}vwcш^;%΢跤#w[+T=ݦIf<>p;rd(o=9dfߊ%^b{DV@A6[i\h# ؠToffP	YQ)"Ar~ǳjTEx$'Whކ.Q_@[Hp""9ҟI<k}% )9C=Ow,n	r*",Hp]ıbLdU54>ϲOɑS=uɞ;&'5v;-U<v.# d{kg4(hwnI	 lsJxuIXo!vf#91K5K*u8~_A[\ϯ3A9E9;#sdإHZ4'I|t֓XO?
,EaOħC:O*{5%)^=WI8$aI*״,x@3ɳʜ5VӚ`5yIlŀ!O_HRR$`z`F-!>ƶi^BPڗUa_nyj!f8*
KL6nTe.
,^lR8{tTҕ,ψ"Di`#6ao2x
Oi'{~%ϳ~f7p&Pٮo⎟;ets`Dd[׺ER^5ÃW<!{|E戌$?fvԴI݆ _1f[^]0	_ /"ӥYlFW`,u21׊MGk|;GkGOtI9<|0vaynM0հcR''ȭeG$S%$:6alm#v֗([s-dU7KW]I)Mo5ِEA\Û'A eټkZ)T'$iTR	ZbLL_)d>#'5g^V$,B&
ŮJeЧ^@!Qvsfqs)馳|oW9USxmdRa&)	;$NB/u}kVWCI&Ӈ2\炭5/>8$d0s'{Z;zcXZؙນ
[o;n	vdSEK
q/[w='AZuow	sAK&v	JϕƸii`X	d4dKm`v"Ӛ1CtVGQZ
v,!h]kXU3jOŦ[cJŁj,/X:+MJa+D%pH6<g}ȏvŽ{so(8qȰBxSn0+C}@fmˆC"7Gd0t>I\{)`dGPf4f$iJnA,VT<`28F&dTq7jT%*o]X:뭲Ex"oz
2GP#XR!4O
YU259k[I]II~F8_,2L?\6 +HA( w45g8
 W'Ӟ;j/jQzwxLf`kttcNtwVK秌4_kh[+ADѠ怉51ן7Kr:'cna5nk}}TNtT3\I;GoC_^ȳ#=MDlC-xi2y?}U,<ǳ&~U/'xC++y8L9)e-4k+xX[o6~ׯ``c4tEP;0DDdңhCEd;Y^'Y9<;>6%A'\xyEniSɥ yQ&Q{NҔkRH.ګIeנ1'\W1*5~''Aͬe$峊d2悯xZR$Xbuݓ.[K'!
LѼy;f>ZGc"9Ձ")2awB[|eF D+,Ij!e"l߈j`CFs*a#łܚnI<3*&"ȼX
G-WUS$;yø(ڿ{:kCO?r6oE{F]_Σ."pclpOƤT,B0ӈd*A5_*A(mcFC=g<LI[nQh~m(>\/TO	aw99C\j<}54Ghl&$)&;LB{uMJyjͮ`Y8{ʜJioOuI-$U s"B}OVunPsIRh<c[XT?Oy[QauX5ͤvgZ="r Y]Gg(2+_s R2/{=5T|;B(	P?ҽ(:<Čܣ&(-9cq7/^NM]Frɺ4xq^}ήo/Wd]4a!]wvbmaM}
qF(]:$CY|bVLSs7>&?8d6C׏$qصjm6(ASGũ#r:E ق9R7,Y8`}PJ<ZPwnY]U./!
RlύG-Z;'KdPi2[0>];3Bs[ j˨ϜAww8<GLsfYStc>@̏
vz _\a<'X'܁2DO6@muw?hU2J8Baq4H]E꧿F0Tϼ:?){_OA^NVk6%gf<zuvp]*6NPH]Mp Vaxț@hI1"U]@=95M)ZYi;ⲳ	>DxS]k0|X(N)HhRy4E'&QIhjΌfڞ\(&wx2Mt>I~h<KӠG*IŋJ )-0ʖȝ6Qi\јڬ\gѬ@5ڒqF{;5:gͨFNjЧ,Ib(-+TD>q Ju"7Vi'_CXwA@7]1.'PXU8rPk)`.24r<Gsb[6PZYKZ:qBNSgZú^[g%I7e.ltcV-&&jq*U8Cx~eid6ml;fsfP=`rtCX|D`K9=RoPE=-;M~('AAjO.,wSxWn7W`Pl. ^ YŀPG%9A^pzaH|ǹKb|UEF|d\J5b^-aTAIGkVzxW-62NTl;iz̲UMD_LhE;OKB9ڵ5[!pJ+_	Snip UR	/Q+jk7DЪ)Fǟ!<|6NxU94-bC@3C%fBƺ)/-+gjjΘR㝋tt<a!uc?"g5{*3H%<R޺S"d]Wx(~ўƳkc]^I1 rns͍SlO%((o(h	UU@VMih.@[F׺ue;k޴?_iM!Uc,U$]t{iSaL+oy20Jd^ZXn)5q&7}'/ ([ i?Ճ惍ARr%	ׯQP,ZխB.[YK쌧D59a94!Tb{%NC80@8$E"9Gsz`.̲Pk"T;D+N122;~cG13η(ys0ꌴ =5Vy<@tӐVÚ[S,EK%)m3!\RA$ŝ1Nyqs'ʢxcr<u&uvWuqMQ:sVG:Ȣ`ʭӂqŵ)CL? kQjiI҆>6DbFnqՔYm|O%#{E<8{}v =U6q轕1g&'vKtŪ\=1~YerhOe_,IM+tP
Ix2 "уhrcMjI]SLlFͱhLbPɗ3Ј:.jOh
	I!^I9j?t_@ޞl}/&iߦ&zob=_`G0VhȳxWKo8W6@!쬀 "Ma#H㘨LzIn}GLNty|q+
kvu~,<-.HMH<C3+ߛN]JyR.A
(AH*?}Ui\y!\npKIB>B*M0c/IIA)T	^4]#Y1Bo[lֿp!֚2[Q?G=icöxE: vBۂS"ɮ,N4f3G8m
T{.,Pu׼|kU~{)
E^vhPZg/aGa=6ǉdOH";kL1fx=^}$rm LIfJѤhzLxh#(K@KF]6́N);R% ~FBl>&LbLI^.Uydw(l|MҶM'J\P)'[DU0u":NfLZ)+rTM+FpZh\AbR1@-tb${V[|[rAeHuیq:72y$T*A>+}Bk"Wf	6N߰`	/Jq̬vjв@/a5>Z|kG)5MRw)cV'pv1xL߬9Z0nL~Rc{?):l1ƆR
zVfiw:]ME0ПGN2yxz/Wҵ3.4=oLe'[/4bf@;S[<ϏcY^ۻ*q7CFtR>mV-~(Ǟx=kw6+lB$ݞGvm;ײdH-v6A %9GNO-`0fwq:I)gqZ,0iٛoom}f'N|]"Ӱ<qZ|Mx[4(8jkWi/xQGm_|6AK0782l%fyD4J|egi\ zNxʝU'ͶH<ͣNY2Y/^IKf,[ͦ|x0X
I/0ޝ9;:8ß÷x:git,)x|T#Y4˧<p-7DV-xFgHi@zVUԾQr^<rxJ'7Q:Mx-xTd@oq6[`寀(X-x/1H}Y` JQFe<aMXEX2 Jh9r@nwӘoVEɢEiԎ65+39+ f `2o$w,;Uyʪ4Na(ӞB(~Tfx^fY(4g_hu^+{0S`G?XPckvh	 K?*P<e;ϔɍ8xc˻vIjn弬XWɃEBWB%<*A@l!q)Qj&0Pmӳ$&Aٜ̓VLAP=DEB, w.54U\&ie UuO2DvcVMIZfE<l185[Q 8X/z(^36&݂:o
q_c#9А(9Oޅj'	R  <Ut$)*4zuRJĖIeu5a@Fd>ͮ$A	Z\K>`|$[8Bͦq4,$!9D).e*`Lad\*vZKl9>y,ޖ\\e{"R-EYϾj"GRh΀A谇:_圿ag1x~~)&'4's|[f+HJ )6<Q,z3xz|9)? 'ay&͘^
Yd,(* J[ˬJ`,?h
p\R2!Abx+gW͚E<RȈb}8	*Z  f)t)G+f/NW0.^W%7<c	2 N,zKat/G  \-Pƅ10s`pO򴳡ehkg%xC! ]cڭ:X5Xs]Ϗ#ѡ
Ɇ-z_[h8h퀈nQv
@ۃ]@'_c_p
V)ܾTܠ렽j#]+@X
K6F猓"&Y+ȫj
]QS0
vT};D?m`"265ӑw6Kb.π ֈ/gO%#{AQaN;(#ǔ)B32mV%S&lT.9;uv|Q_tMDԪ^(B-h2LJZXw>)k>*Koa;HJ/߸kӭg>TmD:Q~%x뫼kB|+{r	Lq-x dF~{1i٠_#AqQXRje$;SnGJΟ."ӹK+15F1OH7'G	_cÄg磓#'i Ma]m-C/pI)Qyl)̶ٽa/jmCߐ8䗃a(HMђliwB\g۴!ǖ^"Trȶ[T9mmFEXFpex5z{.<8>ã߰z-\OAa\MJ=I$s¢nIx	akU{aӓ󣿝aޅCቊn08.yQzY 3Ɂn'ɀJQ%Px*1-C>m^t@`Csʓbyv9U	F"J$_J/NUy	`wdiN`aCo"RA߷Q
40Y﫡Xh.'
 (1B1`fAo b^6UF#2zXl`!H^McQ߸2#rFMcҗ9,K3 ..y~+Yi? ܹCN @δVyg>y@O
fn5+smwL4D[Rn:84cʑKPeDˑ'f[mh-Ky}obD[*"SzP=dF˳a61&@t(LgyY9)ewf֦>2fk)Pc6]RF&lQ;n-@@:lr%D$@*K3Lz{K 3C!vkLMiV*x}a{sK(޵,b9AUa4=4 :'?Yjsk>RP-]V/JiήaiVƳQ!WCev@}V|&4!^V(i5򌃲K-JHGzm{ rgʡU[8	-P"!cD1M%&je^94Yks3C,u͑G^>1)R6fƋ}_EN͉Mk(c_x	^u|zgAx⤹#Ȩl?C_XN,W6N:cjdW?j١o|˾`b:xc!DM7V3?I9f6F [mh+v_Ρv<o[T{z\BU`hJ-(}6;B%^|)%
(VҰ/fZ/\doRXJdm1)o@:jœ~,փcN(eF;:OOw~F'bt:9=ˋN7CAw"xKV%RowYm4QwQ9f`ǹz#$S{0M'Q˼2??~?L]Š5 9xdQZEV=X# T<}0'8?#V+1İ3|%D»ړ_聮2VZ#zmT׶w=@Z"]"ZCU
ZSHZp@0Y2Ͳ|:{HI+PZOAo25 ԧN(d`&M3LJ":0E'SIU6Jg[:{0?4HM[u㈁#q-OSڿ
L+Җh\VlYr gB8cW=	_	+~o|y.c!!_sa^S| EL \[ɸ`
irGY
^RU!	)x1Q-
}bƀ;YB	Be	9٫2C$ɲ:DtE:xB=&bP2H>hj]/Ѫ%jsk$Aʪdc7sz͔1Cg$*ĚYZ"(z9ȲFqev
pdekx! (U hPԶrc4캟jhGneF3#ԇ%0ը=M+]
՟T f)|4"Tꗟ|/#MEi+J$vi]'=șoíV(^6kêyf
Kh4/f1jݴ`C%9ʇ5?e}3h<B4Ph /6nJX}jIVv:U5Up?jiM<"W/ѣ:F:xbWX*rjcxҖ5*_SӃQSKApmO_V,2QyݨmTjpI xF@Du3q	P(Z(<O{HlkNN7P.\39P9ꮨ":f	PLz긏ka.!aA@g|E:yy09P{WKreN-tlchDuRT=혞tz0sDhar8QQr֭,ѣ^x*wUgam4O߱u&DSK6G*dxTet<&V0Yr6z~%,T;l=1L`qW\ǾggA3^dU>"gvBtR-.Aԕ롾~]`Zվ79\`+f2qH\q4EYA$
DIXԡG~XEeS%OF)=	\[|oんפ>o99O0ڢ'#/J$*Y%wCAIsN{lPYuz)=ո;(D,
*kzgk|
[uB?^+}ְQq=${	E\z|C9roFA!ۦFxH­F} ݸTǇ<I|7ڮ
b!@&ծSi7s70۹+1*{B4TEpFR0R97qfjĨ'[V9V:jNJ~ޭ8i%]|$UMպfS[52-Sn4K!V76F|ɜ~fU  #n`7E="w@:7@3bLA;j|ޡc6Ƽࣈ3 a7ܭ{`[uҙ9g=s%-$C%n_*~mV=1kB& xP#%~:**)0Q>җg8jSFz("7cV B(Au~
8C<uK$WX[S$8.D{faYn6,xf*,	:EЫΎ|`_-Z`鳿N %ɁpSy]lU3>+l^ˢ{$[PbWmW/v>ɞL	,=݆?<41u̼Y]D>bt
[Dwxg^7"7xJɀshҫ4b>ʴJ8^ fNbP5nC]Z(jydq$m!	i'"֬b_RntYyOֶQeO%l}Puu^*&S/C~CgW]j_G!EOxF _ Z
|;Fє2Lbk3́q@K VԸX?Adgs#WK'ǁFMM褿ͭKΕ10Y#KX[@R[m	WM	՞[ta& l/k	y^7)ЫR:FV5;*,
S.NIZIGW4QHg"ZRmˇOVI9~q"a끊Aɮujp-1-Eǻ!ȼJKe2-c\PH"W#d:+_kRGm!lĒ׽k}<;M5P(<E!w"&-;Z
\='%,s@5CF+*ciƐbD9j.5eE1=K0+R]ET*9M= ѲId͹8۪7ִ,eOLWBֶ=QCG4Bg*2HU(@ST1^F+iÛ+,8M/@""/k>ʴk`,y'+[nfIVL0)!c+[k(Z sq­d\E׊֥T}Uv2ow%uR߮:dդi~bg?0QRxQv`)Xކ0#Źu7B0;IuܭMb0rmm-Bhb$vdBFT`P^1U+HhVf<Zͮ=3\[;`X)&44hQ/~+	lF7{	mVɨ1@RqohCKV,p^ՙktSͲ
+7-t_8]^xe]fP
Ԑ&z nml؄UjeV'D^5'6JP6Ns.nN^qWkutq YS?{ ^6'ϳ+O?>]93#+HK\o_W.#-Ld_qPR}HuS]EXD"5(7Q9ҌNBİ.py|bBHF	>~i OO˟}YfU)`&cxu=N2 [(K@LT^wktܖg?<wUb~{ŀ3	&Y GjJ0OL6Ji谿dYj2.~by~7Q&)c`9,u/Ruije{UH&irm9WW!wRI3t]QH*<q@/1c{j%5c&
{uU1d7nF+kԎgܕEmh56Gr[)R.klZ؄5 W6
n6r~s9
<Y,tSUM
w%-VoP
CVYU:E=!En0?h$no4Tѩ(6]#^TVDR>4}J34~Id+=x:96V(Sۼ9,	mxN|)qkXU53	x3w2>卷Z"+jcmTG1<eF[Ƒ]-[UaH9U;~k`C4ǖ%74*&tŰi/*ڌ
ȥ4--ҰmJ(4N{_}}WH}2Nce#_8
=} Z߈w	TcLΕ=ڍ7n?xX[o6~`] p0NjKE<
4EY\dR#)A}$uYayRx.<efK/EBb<]j~{5\s_\>qo/JTrsM*{$kN
crI49gViN.:
d,\9JHV(iEٽu7'L[G[Uq:H&ۨˀeZ'_	y9ˠ J?P#ЦXE֚{9+;rdTH lJfo܍qi\Vr˥=fɩdQ,npAex/ji&t=qm%7ye@b	6mA36:$\"N	cY:bȲ݋dok_u3?ӸI#HއpJk?bh{_ǭ%l\N&yn:||Es-E3"vmV#Jem':l21޽G~3.6סgJ4(8ʭ>F˺61\(co)I	mKc8*'(pdfGKO he8\
$$:Z`xGde0|o=4$w)ͳeڡvch,s$.s>i
Q0)$ =8 dׯK::38I29$Ξn$1l޺x܄b,Tbٞ+2ԅ\$wTX@sVQw$Q~n4a)	p(ｖ˴zCקprW?%&5r{;\*Ff?Ď~԰%0L~83)G 	J5HϺ~Rh>~"9M|O)wsC΅&WՌ4D5\J\- Xj#B2i	dQR<͌nl{5!,j60oG
)*ީ<()G羲

oF#,/t
# SD)~:`641ʱlҶ
E9X?B{ظKG`C{НSRA̠5a%;	SBN7<~MzF0Jd 4l>?WXh5LR,wطi.J-;Qg^IQ`tuݬ8U`/ӦKTi+13H؟'
;gM-a5;$Nc U:`t&[?X\D+o|L{p{'eHKOwJ	@`b'U0VjiyH7@ͱpjOj4R"۴ZR(sDByK,bPcn93io5eCT-H[^7B!N]=jN/ķ^K<SHu3ԥ$(*`(;^!/V}LRRgS< 6/c_FWBlm#A~n@rᡙ.kiבƵ.5 EǓ~giWӴxZs6u<TN4edG7il7&G!$dH 	e4cco~ϲ8JYY>}y|IEiyEKXyI$d,YАe(M84	ϫٌ#0Mr,	UY,XqQ@-E<4u5-3EX	n'ԋt:䦳(垾E%~zTA~sWC;	Vѩ+MWrZ-(/@'RVjpZ*0~5P/,MIrYF,!\'bN!<&gmsf(E2%RȝZ,H9.vpL&J>8.Y!#10"~C.5zp9<D@,5Ua3|gE!nI,8 %-a\!Y𤚑yFO Jq@q6c)zAB޽{Kד^p ."0؉QlZOֳ=AW4ʪ"@{IIEUfq쒣w21b6ˋr/^ō38x<yIF`䎆-Gv%
+ϐ;)@d2/n)Tzt+	Tg@Z`Ÿ4(8$HU_IVxV b`l[w8:JlAү=CC,yCEgdllf^nmmY,AuGᥢCMuM!N/!|"3?jN<ݯ|BיUm(si
ie8ɏ%5y	LiumXD@ ke=#=WBp@<%xf"mx	y`Dnr]D0~,s	%gt^qpxN4acZ8r2@wM	jȓ&$,yu1_cHwl)D_n&Aq[:qP<5fp
)yOS1{mt?@fțߒClz<ˎVъF"rLZpr	T2iyTB,)`:s	`+m=Л&;6i AEDKXoުeHu?p#o3\QQ XFLdul'N&fAMn4kO5]a 6t(7,/)\GÜm㡖G̿㼠 E iy XfBM&SR<jY{sMikJupm7C]Ƨ HpSG	,́J_"0ʧJ	Ȧ䒫:61bU1C
eJwV⸬z:k74,L%X2Jo~BOCm:*jMSlA,Pf-,bQQSgpPTĎ*o	P츱=`\/j!ڒzi@S!l쵔=_y*HK2Y@UaaF1	x fE)]2ݫ4}xA@ꗕQN!JroR:f-GSɾ5q[n\ƈ>A?X;rPǯbXZ$Br34@A$~[P
}TP?px?O.rV<ff;:ԉI_BPвFc3de^WodCf-<6c)_.&f:rz<C%rl+	>DR=V۔J14Vbʮ(: !~#M妶v,!ks=#$'R^)^/).Xr|_2*=~,A9enV\սknZ!m<\kb{Ygk\Fճw,S:N$	ܚvd}{>-Ӈ̕[{˱dLvF5HPQ~G9}˄ETކ5өѭʴ:Bzϒ6XkK;ȧ6`WQGG98ooۻӊc{ C? 9<lCK>?eɆAPma%c'윰Jlݔ2zmK!ݏmiԘ|4m{@kafɳa꤬m'WNNU\Vw
}[-F8n@]Tγ`VlP\mf_(O5yXH=Dl~4!u!ْbs9&gp}~[TuӌI늣feܝP`K \O)?UezocrwFv>w5e5b0Z.M!XցQ>={u+j,h, v
KE-eA;qo}Uq`}_1NJs6ܷ2ʞ];Dt2CgZ-U#5g GS|45alq{%	A׉]]m0b\m J[F5TW񁽾G!@P܊c}IfoU<gKI$Ui+Ub]ϪX-!W5L/u(y}bYY^ƿW)qpwoIs5ӫ0BbAX0JAC}-7䡳\D@myqak$Q#7ֵ_vo*98lIleS6ݡs
MrVp牭2fňdcjQo):Y1!hձ^ݻ[g;1f_]U>m朙#h3A߶ׂ_ c$Di2OQW5+6H5;[Xodf0Vx[hi}9Mѷ.Z<xF.='w6.H}e)bZ]w1Ce-bÁ%jeGAxquX`XwInaQ,g,uV{\Ot s2&p,"|}JU8lh(G=X筗Bݗ@k|A@WE_g.0KN|xVQO#7~_1	%hZ"@C8-Ǟ.^g{˝c{.}x79t?6XUjʠo~b~`tuaJƻfQ֏
P#ApC[ڀ5P&8z O4|Q	HNFV"<;`Fo'c%)\(`cnRU7	T''[%Q$4<*k ZXyOQ>Ҳш+[k^+f5x6/UyM ˚vWHg}[[uY? ]i%N+ *.r!]#%@\EeaSuʐkZ]FbZ`l5.Ye"Fh #-*A?5`.AnrNO5([J&АuetA詬#p<s uBʆxk}LW5tm8J2WlUh*<=(ait!Ԉ9EX߷ B n5`dTp6VIƺK͚Cn4teP4!{=j#n}?a㯷Q=wfrI)+8Ldfw.!`fCaZbߔ!bO%OʔL<8$8xp ښG끊9XMW?xXwNI8I"I䃾NGd[+y@˷ƨ\TZ6!1_cdg{o&eߠ~!nSG:}&6NcStayyi낓)OYޕ.BYy[WhRiH!Emf(VUF_~ r[o5Ϸ4P]Y9JU}{.oVZuW}^/?vxko8/ḛ(T8{fAXY"Î^oqZpf8o(	,`S8`GQwflp¶mFK>y,GVf,#}1[ H%+?(!񧵠q6~힓/Z̒E$[;x"9۟*>dʕ1dU PRƽ&Ao&,SHܪ"앻(a?W>qde9NOv@|HPvY;ފ66%$RAEG^'Ts*pњׄGh!gO4;
R̲4A6nb s\NKRh+J'l4@f%X؆2E*eo)X)<G)ǝe,"E%5Դ0AsI8m4c*i	N\اt^ud)8ɺt7_}o2;rՍ8pQ܁:DƏ%uӦt:e_x$EpЧY&V,9z)	Sřk]8ZүvRfCm'VQKN
]~U|9cTBkhD<%)ObIq(Rb4
e.'
ah!~{?QU@>*`I\9MdҜ{*~H&+;Js	TȨ㐤K?6u9.$?}ȸr;S"CE:N*pT Qn)8i4ZfI3d	pΖ]L'z#u!v<м|nTկ&piKv<<菽pr? `xnuyQQN3 XwIe *EigTI:K{2nd-"4Cc8۪!`8/f$NiZ eѡ)$,Vde3@Ås :a@9r!c0?	F& ܤ_F8%e~Z4bM(!Oxjx&PB8`G7-Hprz,[P {R.)ohJ^q
b՛ܠJcu-2Cp9Mlxr֒#KSMx~?X׏R-`~=BWh<'8fg
N[1E52ᤓbu#hjizNŅ<7>ww7nCd"qV\[mߘwbg #Gk%禮*[BuR3V^t|8 H`{7bȟS9i!5i"y1^DI c^6[L?@6iiAd+Ɛ&wӿr{7ڜT7s@ah.t*Hud;AN/2b6)Ή-p"I:J.{Uŕ"gP5ve[-OS',.SDY)
w^5QfD!1Fs-2w#\C,uUEՎ`{wh$	t[^ p.SrK\^ΰu T*O iISE|>QNaO(TXNi2z
zS9rC' V0e/=řnvPZR	ol]~0׫mK@juoضH<M2rŞ`GE	w4>#$NQ.2(ҾIH*Y?5(ix1%\C<<e7}q:Pq,/&ʌ.EYmb~/Bb 0μ1;BCCg9q̤k)")wP|z=z}vo?uy.4hfG&RUP=#ULPk+z|Eus9ai_芿Gۢ\c+P:MӅbKp|
fDjJQG"@FAt[w;hKR $  hE"Cta~P!!"FGR$2Na%Rh.H@k?Q4âړ$Q~z;|\0'!F~Jh#@jQKH6u'<*		szYtE6ph*-Z(ZXoQkJ-9o,[|oHJZ>t;JLr
p\SQ</%DsD=M_&MG`7]o<>iPgٕ0[t{n)<T:Eקdl+z)x:HL3H|گ*eikbwB^]mU|1<1tk`:fb(6x\._;_g2r@ˬAK"p7Ґ
sF5*6'Ws"
qBкe)mǆ2zsPb/#ZK<;R#IV'*{L0՗$ߞSՖpᡕTtxxrOYѲ$(Vdָ+B-`mq٘+{=e҆]Z;CxO4-[ס;)xhT
WLkD}aYٽK^Y+r>39ܨe=oUZFw^So\LD7Yo^)I+;81NG	ls\T?]l#~ՏT*a񫵩hȐ@,P`K|QOKK']\iO7gx## ?BܟwY+5a1:* *c|-Õ}ǲ+*+Yۤ+iv+Ҟ #^Zvd%antǜso*C^o W3I:Szܐ58`'M1F)jO(lmvrI%uI[Cʘ~	9
qc.$9'tw_BZru{O@Lͭ_PbD|:#ǜlíH $g1i߼ çptnFw}|4z޸a<]>cAN۵>K4	'xsFwusb&7iG#KQpho_$͕i3f~._Dq0/BJ(f)$,FsugzgKNɐ^7^GsV37q(@ktd+/fqR,K2V39b^C4OXv4pz |R73/{{HK<7+ap`Q|C$[<$O$:- nlQ<M~K~nLnWtmލMV6sXg\6OZ,:,>ĔkFa$^8'4^|zQ`sa/ڿnӗ0\^|XzzEVgCN ?&0䳈Ԑl-`I'h+8p$f9	f~O4%ar֏	"3:I$b]xƱ(ړe\NcOa\SĠ^-b<{F.=8鑖Q'<|晽WnGl;c\M+(6pmHbC|E<:ƺ0&F|_-B?ɑ|FJ3{g+wu倿%d2!R&$O`?H3g) ]ɐ&1	ļ.r7
['Q]C x7z>|b8_z秣rtdCKkVF+ nG\mbM> pb^`,!>e<)rzIY1לLϚWrLGQA itp
@z2ẁک7F(!*nbׇ>1pS[-jN+>J|ꂖXC#> b!\	@ԦXRʓ @.{zm=4W$8\ȳ)T=RZ%]U`1 %O4a-\\dn2{r_$Hf}<PWO.9H9'aopVbxt]; %WP2ݽ+cV@$%߯rMФBٓoֶ]VBݞ%zv&$ᴺ"[ ڠJc
$O2ÕW٫C"W~FuYQ>4Z$,,I^%-?zP6U2Nn?<#L]ch& :|F"
-ldS:fMLMIJ6DLP{;4/Yp:yx❟5zz5)7ߑGyUu>=攠M?ݢ?.y1#剆f%ym~;D&>eWh^LQȽgHKj^GDdP\aC..Gŷ@kY#
s:"Dh
45iv,~B8JobcAm-Hn0FhƏws6O*=t,efj˵åDOhV4ʗG$Tl@pez%O1=*û/oO<+]Yn#k(omnc$6?>##"Wph<aJn@[qHYraDmXakCY^@c2f}*tnK@gH|<O<1%jA
UӺ} y`i<t}&,|F(Fy_'ҚPAT͓*b)o5e	CN'<d[T*9ZY_KHlUFYvtYZCΩՊH<-XÊ`3Vuܡcvf(&îRc5XMWe,S%<1p=	Ձbfǁ*=_rŷكsE$`xckM,	$J7bX(Xz PR%1@lؠJ6-wSPv"ޫT[͎e<(daoF;
$w3sEe,,	h0	
dd4%Q.6M9D\R\ԀAY`r2_t	9?h ^-B#箱ysn| 
}[pB!0ێ]alAp4 *3>\a2Dj	]\99K,Ҟf]NAG#6Pod)
pބD'56
,r)pZW1WP,>/O0|/C^x>O~ 5eAP yBmG`.j(MaU7wk#|^!F15u[VJnZ aq<B='LX3-55_`(;:]i4$ɥ2O:Nֿ=`<%aS]kU1:}tkXhpK߹߹Hm.R^k?XmKd/v&9Ƚlj:VvT9A>4bUg9uq"Ν/}D%!Gȇ	|5aHt݁eIWz0`իwnT:`AeBԷ#0ׁ[}1anѲ<BZE]qfF;'6It{]su"/^-,5mEtmiBƜh\H;ήƪ9^=kdKupzy	z";hZ窊vFwUwwS.ɰzթ	}̑zoS?r˦V}Srz>5E:#u~[B0_[ټmv]/~k;q;86StI56zHs%78@VuD:R	-DVplr$5R=R-NxcRD4MlQ	Umr]~_?"(=iҮf
GC[̩Vɹ6YQ
ߴzdA^b3j2ު,L՛GuKeuD*a+]-ZcrRsNfu2ı([7kq>|Bo~uq1Kju˼4rE]*p.j9zǷDT}N/N;;?zWjxy|X.>0B&FeLR>#1,xg_t%._v͢_
e20_)3hCjl(	lJZj޸YXY6F)ƚ'woϳp|<Jo@i^8:Rul}}[/{]753Z]:+Ij	P{kUCTȭI7)]|&Ǩ"%Y+eϮXٶ{KA`j5>Ou9rWË1HJɒ&$Xǈ0"-敾1īIV{'}^W!OB^jc~Ox\\0~KԾO`
OUI۽Yv]qAo+MЎec6O}TV8sts9	=+ܿMq,Dڑ3e"F	mMKؾ(ȟGW[o4޵qEmWP5.SE{R|Jz7OG]IqXMxh_sTFha ´X"ƣOཊ߲M`ݫ/PߝM?O㟎/\tenQ*Sk"ˣxXmo6_qMnt/_
;P$Β"Mm?*xʤJRv;%ۊSt6'{;Eb*9Na4</G0ޜ_^EҵG":SRs}s6?x0~s5ӧr\0CZ8Rd5$L&A%irL@($C~% ԁ$+8q!&A{R_bvQ$MHf|	J/d1ͬPF	4&6btm		aS0:yr~Em\h%gdߴk5Jn˳S%%y"ȋI&^-7BcH3gW.maB6 ~Y؇t\|ܯ8;	X}\	#J;2Bsʓj!?\<YP킚Ǿε!|$+d4*8:E:V.vz$B\l;SDT<D_JTV䥖"P:?"Gn6UBC< QԀd	eєzcBR˩fL;թ3f-iߎnz4kj$#D=݂MIf3ڇUi9$t: bͦ_S<DHEVU(*0qƱk`_V=9cW%slL|2m}ũ?|faJQޏuWyvhj-4ܔTB2~f3vӥڈD%r7f#_1Ņ\qpM<QaX¯h*OZ'eyR&ce`yh{J#A9Bdsź]ZC:w͓W;JXvN含Fݕ3#
e/3%[_ޔHM|D)޼pkp?jgCyjK]38YkIbIӭNB)hj4kl0oW1%~x9N6{_i彖XrKj6qi,]JЭ߭Us/J.ARxj6tv@#M}S{˝|}{S>;RNOYb,;f*yxdU<hFjo8/ZLn%sT>}gŢd_Fv+"Y"}ofv.W᯾KC: 0x=iWI3.aIiakm٥JպT*ql7̬:gWHyDDFFDFDcLE(js9)Y+?8ˬq۽(Ƌ"uUe|@ϟi Z_UEt6
'yEɕ]4C(botr6ïod2)||⟎Ć[|+I0<H U`X+8sq>MPb/q4AMu 'i@ǽ$4.9XQR @ƲI2=+%^ao2[\Lb]2 иsyFb1 WA!5P&igx$a,3$Kt7Pc/>Dƃׄdd51^\^(lOBa.]dc?^9L,kX,˺Aͳ~XSgMa<M%`&E _zk`s[0 /^=dKqԇ8zEp*'2"+rT	![C sPᕷsP(=NUv0hk fHLio]e%ʻ+߀e0*\Q2m@]a&Fcb,6WYJ[_zc
%ǫKL@/$I5y8W0Fi^@-av>VG*jsH8.0IJs2 Á_Չ>ؼH6K[}i_ڋmulO%Lk(+h,V*dBV?Þ	PXp3b)<
艟02SKX޽WDtX[>{
\8[}]esO*!4;fke!|%zm]lwHj3IhM@&0oo7鈿Ax`ԭOVTq鷕wt-c!ag״z]qtH}Usf]P?<e`:h驥%JSh'_&V쁭K#:pSaC_Yc$yI.r0$'S+:xj3ݼ*>)MZY8N't^qXV:|q07s
c29KO\˫(I`iiZVdLER0feQ0J3kR6l]|۝]76"d%?0m96D
uoGߟt	?Fǧ46K$!Άrxm'&q$'u u3Pyq#W~'3I[ygwsovo^z?8b,J+ӥv̂a=ٹ&tӫs	N*bY*^c؊8q1ղFMbݖc(ֳሣ͐,Y4Spxδr>4!TI{:<
w0HcH[gBi 
XCcmt+}C]ɾq(?:CP|9@Ϗ"-بBHE1상/bb^[:"Ç3hAQ.h2M/+ 0/"0 S$P/(f68:ApL]mYlgƱB̀\ GWtw5@hb,EhAA "@cfQ,)O-0rl!!+IaJҙH6sqSAT%27vMRe2sFN_hNȒA3%9CzҒaM**_m%yPx#ʼO/1 Vkʩ ">_{g`q&]6RH7/K?=b;`L5P+t2yc	J& `0a n3h'þ3'q7L:O{w0I4^\?E4Ǥ}D0R
N`ϋ}P^G 9)9܎E2!H$ &O<RWX<\ ˥8Z/|@X~u N\q2zZT5.Q3IwLiNmvY<AiNෆBڙ>tPsRDBC>AYNޡOrwhIO[MN_͚(w"'$&)@3rBB0`TDSy6ZX;O^zr|_Zx(ȍ܁"-4i:OWSp<	5	PpuiF\_6sXo˶{l
aX|UC۾sv035&E#Ķw4֨6ۖ4z)lj+-2[0 9c*x24q0UP$W;"P# @T@	g9UTCR`8BK]S)\܃Y[hA l֘e=\*BgQnXKѷCdyIfyldϣ\v "cn-	l3)I{D ,fA$!kȏ-O%/=I9/+||$Tat^m?
SYc0@,L0O v@[:bsjm<k۶UcKI$t%H-}40c0KЉ".eS(zj+8Z/'ݪom67:%̵`1%7i:Y(3,n|&-O*BoRQWPV (~z7z]aòQGq낼|Bic8)_LEɂp\T\]XVs;N`/-3cq!3JSIn}_-r뾖?閛m-y,;liIpAAJ6 3_y&<dR\%^V; @oSӣ;ce{8yY	$>
WjU2}$X԰?_SRȾNrkG3~HQ1m6^/#fTIwoxƂvᅌcуOv	PH~o=NKzHBCs97Sx.vt 7gAٱ՞!{3`M6Em^){_;ٳ"~	!a^I0sLoCw6ba}*<AQf[CmYFCmkAjTog()0r%EU^<;L:E#Yh4lK1_zɡLjT4J/-'\ݦ!&ZTg5|Y(I]^xl&MJ5#hس  ƻuWz1hkO~rz}(W"G83ASZ3C	xn2#jz`~jSÄ.c.4#^7
ʰofLx9
<A%dI3|٭uĕ|	{!0OicvpIsq'~B˗|7t%%^(Xä[yD%itg$`re?WN4[v؆e]^lTkAu>BlYnMz7}Oax[jE/FD˼qPT
UBZ^Ga7OCt\_+3گ:tdqQYp[u8hs?8ޭP^+B0=ώsok86^[f}c>Rk"+_6DEiDąq'SspfÏ
<bB8cTt5}㡢Z/E G`@Q,YwgcBՆ}P'{M}٣ē6?Y5\& [rfsH>X<l@[~ٴ <a쨳gzkSiFrߵ'TsJkC{Y݆eYWVrUF.F<G:rլW1_m܊`Yqx Za5*Le-usoP@oat'	Ռl9fO"nIM-б<4vb6/NeCWWoƦӔ᳸crT#5+G+D!?QJ6j٩t!iTթ 18АyșY` Yڙ͕l0nо@eXqNx썛1vZ;^U6܊6a[7.(k*VdԳv喱UX3SWWVjTM.	0ʂkk;n<vZd}XCjL}O~NNN?,JN}OXI6T/19㉈$y21f|~ec9ձK`(KcVM)i[+``<m}|/:@h*s\g1LJW,[S.rMIiGaޞTƷE1]t9Ρ)n~A12HW::w%;hQosyOy/@	j.BQ_זGB`~JFS-UwW,?378Iwx90:M;_XÆ2$Gg`T98x4WJRFm&>[R'o2GuX[;y=΋,'JrAh(pijWR	rdyCUᾌnNgJ߳ߓ>	#:U}J`+@}&'=k "BgdU|Q.ݵjUE%P6vkȔP<aP;"Ӥi`\c^ʶ 
O[Aey7dԲIwʼHٰb*1Con/T%އ{wnt ]D3L!76ě /]YGm GA
y[<xp?vܖ	r\(|I:4+E	FTwbYqD"zL.,jU$ix
};*A5  ۓӽe<s\bJp	~=,M2	Ufx&6(pG,a:5i|!}/r˸7ҮդSΙ@X6	q[8QǧiEjg"7Vel7I2tP;kAs$WiF'Ǹ2ײ@melLJn//֐aWC0ZCrZm2i*W^ۙG}-\\]ڱ7 {ʎht!¾-nmE[э=hzUu#'iڨ,aJ&,r?	8'HH;1o,1#`ͣ.-Y}ǎ[YXtS!U!1ۢΚJ؊Ԭx.^1@F&4Q8Z6q[I|LC7ԩGtb`LjmT	~wr C?`(pg,*W4B e&)F&%bit.62!bUxBRV9ksFF,CgiAW	U}q|ȴZd)!>>U60c+09E:-Q]WM>晈J?G.o$P2w|XO*OI_1JuUfE5yfҭmQA&IEL,uNC#UhW]cK{ŵrȬoX)2ѮWI q
_q,ߡDg/=h|(շ̈0N?b=$.yǭFy؏ѡRZjp*l|==񂝯rvX*Y-u+Y TI<ڋ7n	_!BZ./pNjs2Ez.ɒDɋuqN7>4:u=\?j! o?;m~O)ӽ͛]l2LhLvyӲ/f{7ΧFyJC5އfzV7.4B Wm@T߬<7DW$4p
FWfJ\c?|̀>qӷK*ϧǣ+p(aatԳv<LH|fO&zz2|*~OV?~??:E
OU}zK=In$_$?`2NU'TZi<E'w]4Y8ol4?OH%f}U+mC]JTKcWخX.}W*Z)7M7GI[tӶғukiN43l6ec4'IY<`;p#\lRC:w#Λ$q%%/@(`>+VLCN8Z>Ԛrq{A"[t44݅z:߮kRoG7N҉,RS2LZWLbfs٢2R?]ZwE	.uQ1,5ړU|SAgDh{hhsԙf=qZj꺸q>n~"MڊkJ|_WwEE-9(Ip͹V|-+aqv[ghn	]L5jt|J{ے5x3zÈkK_9]t&ӾaxTێ0}W	}&!`˪ rXdԞdV^'rYU)3g35Qn`r>fWlxP:Q8l=j-PyAT""d)~J}t-$GA@)J;OE MK5'D­ѤN&\E	N<>d4ELE!ў|0bLBHh ^e	n9A TP\xԄ(
,!֖Z%wrЃϝk|ӭC1ہq17:l

Ј t,B .cZ*r}y?3d)A9n+GdG֠L:tʀQ,M"hṅ^\[Zw!W-1axBFLQ&Dx Au]Ja³jBJB%$p?qC<7LZLsɩvݻtF殸S|>qF~U4w>*?3!\o ]^HquD[@unx;mSH_KmxV]Tc%HfIOwϋfbQOOOwOOoQ2NitٜgIgmo*ICCHGfĕѹKݹ>͢|2=)xyS.f3}F`tmk(҄E|t0a"ecNÔ#xԞ\֚茒{vf ]	C+Q v&.g4klazdz.y1SlgY4Z\^<ȣZ ~svqy~}~x~-HJK^h'& nƀig'g]ᖦ!B֞vi#1
fܳ-8qzIuونdygtԏ0gOkOk"zR /\SPA{RC EP+S$E`f',
$`%>_d,L<b|7ylo\6#N;mw||8=СF.Zެ㴽<ͱyíή?b1жwۼgtYz	mse0uY[ >7	mC%Z;(Sb/%)t}bA,2Pt:\d Mg9@g@;Z1u,i0_ٜrI(,SY $A"e8%#oo%fNJ"n |4DLp}f?n:J-/Q{Gga 'j>"aO|^тn˄MAR,ψ!tg]/.gpw/+mFe
UFȽ|f޼=bkg^כdn7;i7gTo6Q).?lK	DYoȪ4>/Ų)ED _Sؾ%I_)_2cO.vZ	[^Ʌ2	\y;\nmȠ	<z:3_֭^դi?v/wHY)$:(=ޝ.ͼ3w; sc42`۽)>Kctu㟶 քNb_|u[HK)z>p:(wGG?q$rsfٮ2ҟ;+cJcݘ`m?wSW0;[	R"SƁ̃cA˩:=~4`ڗKSZq g Hc΁.bnTɑ:s\]_y5③ON9
*JKGі[+8&:lgZ:NvJ'o-'B0yt f`YqYk?+J5r\Dʈat ta ;g|8cj =/?(/RRrLtνN!wJjGk m})8둯q֬Y:b}5oF#>kagX恜av)8+8Jyp$#PL\Ӄ
[{8Knu84 T1f&_B"t=FCpO/aqQ>ܿ=:eQ¶yg(-ImL/H4<@$bF'y\i$wqA&zF璜hLvfgFӿQy84%y	`=!r{4.?#k壙+>A9쫶].KLmP`r0{6`#d"t-cBu~]0X\eI+6WnI-l/0/va>(?~:5붖1!q|umláŷz2g@BBY3QN%HBN0jg!͉L$peg-B9C"6h63͝2~[~Wb[ۺYk$d87uS=6tn3
@X,wr@2b``6UhLRdZK4ZrbUHiGAC]i*+@L^
,:7IzxJ>.=i>b7.jڳCfILJǔ9Obf[<
ӑ2-1ǅx2~{բCRIEAlйo5{]ӾES\H]]
-[j&Zף[BK{oz
iIfγ'5@5	^߶yT91J>Q'Qi69up?,_bu_	j52D=R2 kj5ʀGd&aUEe(i
UqN-&8ҿt?{1RELz4yS	Γ6s
vQUn!+o
`bud4+ˊn4*u,Z{9fm`}&cvLEb-,,4Q]Y9gKݮ1U{qY$	Y }ަ5lCfs	|K\[RO,v?M|'4	Qml٬TkvI{pBHO[N/dI[~A֒?VFy^+BX	6s%Ӛ	DjSցFu4bnl@{;=jcX0urE7%lqd:]k:\]i*@9kTf˄wSa3|~NpajˋU8g_/'=4j@QAH-G+),%N(f\'ŝq0J)ܒyh
R̗iX/
4L(9=m5>}dۀ3*Yb\09I8:wؠǠ!y}<e$FY; V4.);!$}dAs ės_͇CE6G#'@V@{2 )=iyu:R>c8*1Sq
{cZPpif!3	)`3tygZSgǫnO0P4H,rv'Kg~	{z=ǟ>^e3iKxM|˦Iӭ}g"Lu^\|b\ZR7[}[X!U+[wzlywVDAJ|UW_pmYG6w?I(?5kr6ͷȃ Y.dC55Ԕv_L:3<S8N=Dqled
$B!y'Tq&|N+THG_Aۛ`˓ë<xaq\R}8?QlEy('ŀ+)R}Kg7";c_C&~ضc	J"YIps,3ʋ)U,K3$½\kl/7W.o i̢=RѭJK[Ĥ4_
WG{UY|$	J7f8ItSVՀ`f_D$}`$$XVtX!X4p1$:B&\%84P$/E$|m*-×HC?oL/֕lYc]%RcJ}cJ<Yl/t敹e3K+܋J@dˤ磘YW
S̝K
vKiتb\~*s~$ bX|8{o^>voPgpĳ,Ay	* _8:sҹM@.VRNffJWgpooIt驥t*׊^mJ{jmJZ5L~ebAZQi"hllIR^?(8\ڱ6i򆍠NM
Or;,1N>׬ː-vRɤ9;e:Ȍw 8<%fE`s%Z}KcZ:&hD1%竗_t #.YzzlNѿcz}=˻HWΧ,xV̑.jܞ*M@,Ws}f]	7BA%*u_wC9*;wz/d]uׄw!#WjK>ѼB"^Y;m֫!=cfh:9&<"JPR:U6N3"(0Po>D͢NkR5p̋i=lukk:}a"XN8 ?9OΎ_fO6lU<T.&H_&y:yޟr]tL6-:gJ50V&>)yH*QAݪ2j(2s|MӰ9f/+;oj6A,׬.?[˶܆HͺOuQ	nVnL~ɵFܓ4p\Hi=Ra$2L
[avw1P^2vɝaʢOwJkk,`rxWmO8_1JQs*Urj1
ɴHE7$M"6x^y<9fs8qx?Iٷ,ca?hD4nt:֍"O"E8b\h!x\-:7H[spaQiƆ?G&ux1J).%)JHbgP(Le*$OG=2S6<PqX5<Ot0pNX?QJTOW'Jɂ\H_uÚOBdP&,ʥ"Y,V
n6 5ʋrsZ"n2.bmyd@EZFdq)(݃ᯋ~@oMmq0W&<6-/g [S|Sٱg/
CuhI߭V"ΰhqtx'tۺI㝰q~a8-!Ӈ4M2H@c		DS&UbT[Z8sBRwކco.8#QeWCx:ʄ#}
{>Zث1]8e|SZ>dUQ֢u\NNAjJ ~t	 6&y`KpϹq+*8#WKl~azYWFI~oL <eYfh:owR1zٽ-L_l\1NlLO	Y23mkUs]zgx[w#m)Ro\|&PcGm}?Ga:/sЪ skߡ7ߦ?mcMCMg==WMUTpܠ<X.$.pWNe%0Js)kd3y͇ST(	5^an=lMY4[(bf]a{ L~TѴ+)8T0݌Dч]dn=؍{u1:Nv$Xր|/}xi[-5Ua~
*$G2cv+vkZQ\ӴIS72[pUiw&uT].:̽i 3ɼ[wv+W:ح_{?xg֗|5xrF(P2E;٭_9)Ymem%b r(! . Jnr}$O`  e;NXldrOQ<-&"v<<Ç6d~
E8;O(/'b"8}{07M{"ގO(Zy4~\"f
~_N_*= |mwǇw'O{~|QAvQ|ۄ{fN_yz%
]:={l'q.~A*cB7?pqu&R /HܓƄ %H<\L `x~
bzWAx<I_a@,Y*AL=ſu8q-me"ͱ;MWƐEdxZ` M@g0@G/ތޝx@90$$	AMxL|+u3x&r? E\yʃ̔DZ&P/_OC7ecsLxf3)VY,3`5"<97/]>}kf{e6e'' 4-&}Vk3Ke7oOP'-۹E
NhH3Rr;N8]"~n.zJܑ9%yct7QA9ݧhxڅ'5ad:3q-S<fnsay~oI~FӠ+6[×_GFJt6/(QFw_<%_w^9 a{x"nx H38PᐆcGs`t	vtZa͒(2m[>N]8H0 k7(<Ӏ$4[^)eI>r {=t5A}$^^l@?wQ8	ҙߍ!Jodshe :]j\M4`?tNí@`I3.ĩYg>,﷔o>!"Y&dwl!5;xE2Cԃ#ODTRrCQgO	c"<!pr>Lnnf"i'+v})-.sP,d$DOyۀ	P.C:Y<ф{߼؋8cؓOkdGYx=VĂVfFwvxx;IA')"Eoΐ!	_M#jci?fAeP7`1 s"M䠸$(s	% +6؄,ofzw'BERRIcN٭f1X"]e`RѠZ|8EqO:WfG )RํO*DiF,1_Yj+8	JS]02``PR#mxSx1 U?x[*xƓ8O9ghȄӰؠ
e6/=Okn4n(=!qz H\?|(y~J8#7ڰOlDe|^	e5ٛ%Qu:7QF_EWf9uoC2-r3'`%(Wa\c(+$J8G$%
i8PA(i_Ŗxq  Ofb2MC,IfMyp<P*@)#?`Nk d<]'4$;+U`f/'Jw]<Έ`xW^ k 1=pg1ecSh\L,/&y3n?L	 :l`/jf۸lS4Me#̮* kߛЮghbĵwbn;@P%ʇ`6զRzHٜ&tF'MY)iJc@*H =C7dd 6kC	oٓr@I	hklV9%ȃk)/OGhɪy<7wYu@sEUrM ֶ)%gHݮh|';Sd%֘яh I=LE+#R҆i-*7);G2{ig~70bcDO=[3hm/Eu#jG_0𱳩RKkz2Ma@ɫ`C^
l/\Cnyh9\3Q%Zޔ0=M0	~OZz/1O鞅KLpɇw?`MRx0iqM$Epx]xol-K	F0 >9񖛜ew'): 0oI
Fp6Xy6xޮŹD~/!jRDWl]dd0"e@#$;Eϳρ88zO|1=GL-P)tCm/ *Bь\%|(5UrZ`4lr=<!|r y~D*8XAg}>zvj94MǞM4Oi7D	3OP;\KH}CW=KᚠA/XCJMrur)HVټDI'ڭ+:@g+Lo.W7CίfQ/]~(4jR~L5z]Z2ʇQBG!pU4(x
䑛Цgj(wȔy g#unmaҳƟkOn1V4_P z
8܏Xi1wH?5ȏ6=zn?RVEٞ)ɪՐKINTn֕C_8zJe%]KJP;-!v)2l;2+rTct7۬FJ,#/QcER+)f9G0*6]i:,q'pVH:庍2Ws:YIMtBTw vg AW:FP@$,b,mjZW@ǴE29~ɧ;Ayj?籘#vds:q*I&~qgꄶ-W~Pѯ1#x-o_UÒ5B2dGDpkӬZl!R&$pjk`+~AHRvE>r{Ԛɣw\`̤Ӷ77ɧK-9ܭ/,ח٦wч
55`ljjuw3i%=q/N)rHkn/oD`#q1O^lƄ\
a#|
Tr^򅛟{5<࣌tuo+D&Zkj#+ʶ+#8Ia`3QE@=DL8do>jWPvS4|J$eHU+8=k*&È -v?<pg91vXB-h&8@aRjkmaQqީz̀Od,ڦҲ:g]c tUR"D5{7pbF' Qq^%7<Go]V"35&аvJ?FuM%~*>k|"BX$FMZ,Vz'|Y!T:0odT]
nwc^jS4{ܹǉI㈅+o߾9-޷tf.<ag!,a>!;	P#ݶ`0q}!=t?9w&@FLqh6bgB:'Mk)C
bJ*78oBCF+8kPZ"4{`O _l+Jϰx5iAgmZ{a&̇GjZV2aצȺ>tn".7W/%gH	t*݃(OG&xb*Z1tlOHSרQ3-iK>)&<Mx-==
'|}62-^5fxLOWibͽg\:/{]Og;[vɟmnzQKwPUm׷"W͊)pgtMVxfwvG͉'uxcB#&nnMF*y$0k<¿nlGt@9Z
IL!W? ,r<7*JI<E7aLV/1.atKa5* *ZX`PSd&b;ǬMRWm0NI"2K)Ek	FI{ ֔Q
@mp@ [Pv%|`Qɒ8s.TkKBN	+_e89`hB0!{^ɍ*0:|FMѠ9uї0uGJ<<#GN0,IEΧQD\jG.R/ZXЇ-!S݉\z&=R0[+a3pu8FIr#]9k*L"
m!ux|FiJ	5%|	K+<Ls' |' x^QI>P9!}ixds)$rKaeXgΙ}wBq{Y9g (65_+ ("aHb[uM"f0 I8\Pc	+i*DQ0܉Βx("{l;V$[~$>8VٯcҮ5%a
>	!IԖҏr31Knlr#u#˂i>d,Z4@OAƯ0yT3<MtC%InG1lNxb^&8*V_b8,j,J%*M@rczim9T>o<}#@#Vq&!S1UuL4&G+0Z!X$FFF%atBSxNYD+PR~<r{Le?@$̈ZDSrј[G0wǭ5.OguȱYgZJE˫d{J*}J`r`06^R)#۶ZvL[b7d-SDc-Ϸa
1l=rU@8_-[ ƲՖ"H=?Xjm㧩wQsӼʀYGz5T
5'H3:M}Oco4V>ܤ1dRN^GT^rhZS;5Ty"}g`&DF[_6\ j]bI*I
u0.Ø
{S[6ul2r12\%80kL^1cMmHcR0|{s5ʑ+U&¶QgTO`dm:HLЎ]M˜}Oa|*tcDl+93*!ln80[0V`Re0)EƉk0`â+-Op8gC:Wh[ M%5LAxiAXz<X^("*Rd@3DIKz'v=rZiJL$.9>[y<RMce@TDU҆Ho/jwG_6Wo`!n0c14Ysψ//B6ϕ0sL anRGyb|8's5hK^eWIͳFk{O}#>Ukȹ2xԕ)
*ߌS<vbv%)	Grag?ӡe9)eti4UrB2"*b|Qv&Y:ݔZn _9@3k7&fR%f~C!W(wS"[rU:JτLE&ZlI9ጝWlmQ{ַw:mD0bIF׳ncBL.eHݦ_sSKi)ѯ Axt-"A(u|e6vsWR!lNV:_٠QJlʒy	UDڬfoFsR"=$`x紡\M&!51.Z&s0sԤ"aE	ANn֠H,kR%ҚWḦ2&0qM!tgˤy,+T悞jЃ[\VGnӄWn;P$ (A:f566H9XΗÎBۡ"/m<%EbP^I8k-r]aQ5kDх|W	5nBz,wnFmB_3/zt4({Ʋ*uێb S'ɦnZ7/&)a'̬ʦv*70Nd&GKH\nMo}\zo%7 eg(rBtd8,Vŷb:-'tU~uW &(8OO>j[WYK!PEųL_˭l29jUXP9,[nvNoRP!]J4:\+
'! =~ \x_6"x*W GT'P5|}v@ j8!=w-\ŧ6{BGIɥbRGCrQ|2]{#=Rpڸy2^0&=k9f{hoܷ֜}*'kYr%o+r3r<*T<S8? i%|T3V_'OD/NxɆ)K◶Bu&q-jk_ՁdbⲢ!]&sy[V/Q3/WVRՅ;lO~;%^&8~KWM[fii1z>­<M.Wͻl7C2F$'֬}ÍNmE 6AQX=5i]jjmZ9tD[a=jvu%bqY.T`Α"۠5-V|WZHBD\4#ib1QI@>yY!V	0	=xiR:uBS:{@R5o҃Y~; 
$W9p8Tٌ@~@%XN'Ƒ!R[&	0]4E!~n=sy29V3fax!i޶7tƧjc~|~hO>WTv3OUg(w
->hyys$O_.FHJ&=R*:)KZO)<L_]jn~?	=`<Mz$|J1{,50ev[qgiTxbS$)x:(bsu8I z(d!z. mH/9R]3%v2f|, _\4R,R38toN:;Ԟx^NIVE76*w^Ev1;yADJAdĊM`献V0:mRSgwciCPm$eGK×SKq;ϢEv1R|,摽&h>[l_me<FKvU
uۯ36B?:bN8]],^d:==nT\Jk9)VR7Ќ^?>=?Q7d6]TV"dF;>>>]X'ӏ^G{ݛ㆘n~t[М K_qx|p1R|k86J߂4~b7TP6TtROp<b5zCx<#sy0),̯tGMnh?M- 
`Z̹QV=_"ab3g1؋XCdexE~X#wCDO]DPՑm͋S!D`z6oD)!_y<?ͫx.
xWF4*RՕfߊ!fu-,{^Z:~iڪH)辯;tŒ+粁GMmcm^ ~Sʡ+HHuE8">IEZsa[p	{fÕ+P(Qݻ5K|ّ?yف+Zފ|LgKGU(Z{whWս;ŤPNۅ[sqYO^~TF-Kf.LD>ӒyjcϮښ7Wcu+m:KS()$G7nb}mx_՚i>4[^8IwV|17X.d0e9;ę-=C4>9CȫiʔvIe=~xw%?NC!.%6\ܖ}ss-b)zgGv3ScDn~Q~(hНq<k~VUy+;pQFjKAS٥;Po%XnwS;,ҧybZK.jjAw:wL?4laf#XGfl|)TqTr
=DUa9&'ʎ4VS;+t@lE1KY
Pn&!jJFH%k13tb3N8^{Ւ҆mi>6VL\Ho.Z	ױǏ~iؘ)[~>S_ǝ~$Ft8VGXdKu?%ӵ<y&\x8< ʷŵUPgίX^ք5ߵQ.q&J⌱r=!]ǿ卲0,T#{,K?{c'^KxA0H!zϋe:yP5S"͈kҬTίE+VP	y	U(_f׼*x&}],-]e7O4xxWeL6`	5Y  gieyaViw+&-z|+9&e5LƴZlz&\GFإs??TILGXLQ>m˗.ݿ:%:ʚ_a=V_ZEbc1E~2Wһۧߜ$9!UUI ,CX<uDWsStk`n=/A`&sE0>C<k٪Xqѭgn{qKa7;\*t~aH6'CG'No\w$YB}:>T|*֡TX#}<⑃hO>rMA,:a!/~󗶼_>}^ȶ:Ri(}k(?ԁ],:/)L`хU?IIHlm[`Vrb@wݮ2R+m}ka~RW%}C]zAEdil=D>Yp>6x-{NO`88M=	j^AK3;_R&{?Yy^mGS߳;,DxV.»Y2;K5=8f͛jz]V7,vA&TH^%m/5
Vb;MFo	U-zw$LFvF&ù
)j
at]g	:ZDeP=&U?0rIS5Yu*οȒ*Y-*;3`w
62jlzT[Dm҆?i'kBYĜ7r.t8,څO;0ہcr3߇ʶTc\ϕuQ&ӆjqi|apt它a,y<31NLϚfHaqA~&7@M٨p*0Y6Zeت~N_G'*:7_uB^Xg!9N4%9+fH1|M5N!s.8)!^$fc»[W뻘&+mU!Hٝ\$$z.r޿x75.Z8ࣹn	.^jeK`B'k]-~
TN˽9pl_xaě	eޝ?[@tl ORF{6=JȷMg4zʂM[0o,'DSzBPcQ<M#o:C\%p/B ,sy60d{:+/(slKMN[th`~>eX*'@BB7Rx](+,4RVUa֩+|܄}{u?j`=0!Vdkj| o
nw"+}=G?!D們T˻Ku"</QJ YO63W甔zQ8֞d鲶V$[5GSؔ=Z]
1g4e<F$2%8Tc\3ӣыw{G2}Z;+V!Ma-g'܏+j˫4$i?d*_^^8F\vJHK|	VM).IOse&VUh iP>%gZt9㴚6M|bsvw7b[ 6xF\)jJxDZN)jS?!_)r\Bq޽ZPn
`,]$B7KČrm_a@K9T⯂l7+\)ω̭Yi{.pu;ͩ,"DD}KkJ<̴tC}fb/HԳe¥12j9DŞ]tH ނR/!	Dx哵]y&#_[J	.|<|x8z9SFyeBd˟z̓,9f<"-e&؍+*]Ԁӹg<	tN]
؀rԟCxa~\6EbvjRă5SM`Z:Z3γ0<i~Ǽ983(F+0rNƲ[jl7/L2*E<0@$ɌC$ޞFqۭ0B$
Wx|e<P`|լNg=Z8Z5Ϻp˨<%Yq=k3[.FXHjU]ߎkbUH[ܝźXfDZn6ry5tΏ_m`䭶{jaU͠	Δ+.]2hSEܿdd`C/=gkj<U0iB\$w;mpti%tm	VHrӎA ^20.OR@$ӃԷgT0}$@@hl8`p->c҃e-0N.p+H8F@'<   !qA_)uN)JxXq>Dzcgp,(<x0ahb3|#NytEv\0(&@v>wxa0(fm"(%a [K
ͅ22ePW/{ `ۢv׺c$>lh	Fo 	*,UB/I'eBmzHwl^C>X/o[=vU
3q`=jZM;U?>t.*$;S0_ї2>ά%w6AmUn7:6ޝ~ǡ;94:V80?
PEzۣȠz^Abm!ewGw_<߻ꛖm?"$8AZn~$ޭz`2W\qfpKvH&Za&7>!L;'D	!̷!ZՒ('%"ÎL<ťk/uVdkClzXvW,Ag%X~y?q>49a"^Cz\MNn̯
NӟNv[^<<<j"<?wbAsؖS	ZⷾG-&uMhL*_'|P[@h7Gm˯W߬=9=>8|K$'Ub	NixFg%~FR}	KXh|V[7	v*+]q\-uHAT~_uE\%k('IVYwzS%U9.ZJcU=Vji2cQmRib	tVD̢/%ű	Tc2a&b& (l*(MRd1!!wQE]շSgmnpt,Aͥ>8<,kՔ8g;S|DaXCssԾ'2*q)nj^wOGTؕBFXZN>*ަ5ZpIãW0klRhMW=j!E&#5|ݨUͳ7.][-кc2+9CQZ!Hڙ[W~Rjy\g9KZ*O^B;ey4&X5WV(.xŘ(s^ &/BJ=r&f*"3	)X/<83]IU-)(o$+B*Nl)`_q_םPܹZ{K!T2&AˈfɱCa?CG*6PSW_c*(}΋oZZAE
6eޒ3>n+:`>\pR1tLգ[Dx	Ф,O0O[j8jAKj<`3]PTW8>zeoJ/v]UBoYO`˰B@/3RE${zd&n{N>1GƅNxv?xr.(rKuoPd?\á<(MTMԧ	'^>a*k[ y:Q\'GEnM%'+E-9vԁB
 դC@G#It
Eט~oű#l)c@!l-Nt(.fFc8ϩ,ÿjIfCGUB."O.!mJk!>kb`*% 1
eˤ[,g@=Rm9wjUfX1d5[d7<	maf<8Tl/rMyaJ~/Jz*0!=˦=#!|f	5LtXpEק-_o~d1KR~2_ecOٿKU_v35/TzX?˧		)/{_6gI&Z-G@)-#,
*UvUQ-+mocyl,²;|3hsD6(E3IG7.mfR__|c층-k;v\Gyڃ
K
yhSf/CJ5[~+JxPNa' )a!zkh9379}{ ߜb_N<Ij|Q׋V
&F-]^72!~έ&Ca.ᡸ9PkoUje<^S/vE.iG}uZ~/PL؅" 
%i|{ϧ,Y{#"Gj̂E]=wO5Ԫ)u'!z]X[a+f8u
'#]T6O˰*.߳kre<I*(:sB$O7su,rG]PaZUf/@Vn唜{!ÓC\W0|dTvE?_BqFZGUG."-Y.y}omRJXdbuu7yPJ
)BAbxf+WeK%m(U q9.5nNg}ʇ<{!Ģ<*^LeeoC$|	Ók'I,c~	c
H&]uBԊl>koӕn	Z[V	=;XX#Pgхf/Kq&clg
'
?z Q8ޞ<M" }.tw?`qN}""LRBuZ2Y~Cr$M-^󬽗<k]r#<фs>tWU?J8Ԩ^f26][-{~gx EҰ\?t\z""&#XA'9R/XQ|OUt/uC-Z\vcNcVK{:~VC|t)dG2γmp7ao]A{2bY;EЁU>iɚmwHmJjT$jc>vOG?D=g(M : ૾:OPg!#V8a\>)[q7gw^3b\Z}5*;;P_KLFt@[3.YvAlK7lL:wϢ3BrZ0i{NsG9Ek+ZmmfVv{!֐tBf:!t2XCid:E1e瑞^d4#u's ;z>-d/JQ|*,ñՕ%Q:fTzZ4d:ԉY2@F죶s/%zXꔩrCuDՁ[.jv|PBeF֖*i0|:eQ6UiZD\<, m\%R@eIĳ`XLQÎ
4pigm"	,^K|NxFck-PpDgBzm?!q=c|UzOk]ۃTM[ݣHgwM'gU]5E{M=4Ut^6LPz4'Vp=6Y/:Puz!I{"V~Arð4	4)||K=la?&g5x˟etsKG!911yj^w:Z!.Wm-U֛"6L<ϖjR 22?ID6+42iOU96&S	A8˿ڽ"nq|)h\oWΒٵ
`scKյCc5b=Mc5!4̷DY.BQwȷn0~A̮z.čuLg'I`WZj]D$4PeQ4iR{IO	ESYV>+U?:3]jr{SҠk[vmZUö 2_4VQW;b+,ڂK&ɂBewkC~brbʄ㒥'|RO/N@s#xdU,Ղ5#5߽<)2HV
|CT:eKpįa4ښʦ})6L; ]ģL&o֓趠,FZ-_Ks߳Z͒G"fN;;-BGRow($|{zUlptDQݠ//bv")ȵPιh@bmo;xSbHTHx+*Ydm$Vt͢}
+tFr%C4}d]v|oMxDl&BxO_涇*<R7L9¼VRP	DoOVOnپep=38dN&0ڣEj4g&7'ƷNf>s9ԁwޭyb.`"+y]u'}Zl?9}ilul*U-.k*>ơߓ`vx_zfi'&W|y4Xgj9WLQ<b
ω}j?U~؛fwH;˨OQ_0Yp3$@pxks6~xTVzw_<RȱRI3Ř"u|Xq;o]pN?T3I`X?=6'y?u\#iN?dWl'dy	I#r͈-W4y2- '?tcu~xY	Tg󙵌<c4eQhM|w̡+IW,,79~fpVBKB,nh4IQlVgZ.Y.#wGrZ-2aYL[CYeׁv[hlqр|o|@/º(y^98Qx'i0@rlg~xkΗ$m$~;o	ٷTώI*9찯bf>	ϷBS
uSAh!c45H*n<_/l,%u}i1;g_T81_Pn,H4'eMG37%$ɾ@}ݺ;v"i}K-ڒw,6nK8:+p@>SKmkggg
@	a
0ďYfw.% %lb\߂dA#R/
p#M:7q,M8 Rϋ,E
ŌD٘t](tyO</CWM~\ߜx<ǥQI1`ee݋B̬ f	]'.!ByuHT6m	Υj(ed)I.8u3p+ʴy/*7*@aBbfqX3,8iGUӮu+Tlt=Ζۍ%Lrxh+=.[`VfCKCl|MeY_׈O4uhCS6]thda07
ل%Azn=o8Mm0Oilu!K^ c}r þԫ>1UG% )y1-~cnA/m|?D^<po &.aÔD0#㔇YA6B&w׫Դ\"iv<*^vhJ!p]7_@SZWl9)CNXP_LQtUG)́^T=/@nddS\51y"aQsbr^[^Ĝ|6\4"h*\:"?M)O{4"(=)Jy0ݪW:P!ع4!<2l<cD%T#)ZN*P4K;V}D-qc03pfk5 0%#1E drESP5QlPV 83%kz/ca@:o8\yC(l$!4EAix坚dMw	>[wU+x=.̦/*uH>c0a_%56ۦeQV&,Th+e`яS{Ŏ!:(Ð[tfo/`@L)b6S Nan01 "MC	
 j4]`YNYje`Um/BJwMݘ_j1`b9ShqrLgǩ3>qNgӑ힏~M*o^}Kό䑘WR,Ē{0=<rEeLG{ O٩s9>9EO'ӈpTRi|>uSivOb2XnQNBiǅE=6P-&6qԛ.B`N$9pQffq@# +tMRgS-;Y;ֱ0f>\>.!7|~fY|ml'a:NoP}>O50J:8Ȧͭ]luFfH1.`-ݶ27X>)^lYzbrƞ@:-AG\ֻ]tY|?Ԓʚ;pf/I>,oK &ۨO-5uzf?'q|GKu؟E/^7unF)-}[6T $0t	p`Y|KsR;	wCAO>gs!dC
i->sEAE=쏓W$N5p6\W[F0Vyd4v!jVjyG}<
!Mm(vt6{6My=$
x79;4RLzqgnCw	FC
g6;\|r&w&I)%	aӸ'9H(d):1oX8ZBU~.ĻnXbu2P3CO>J_:>>&([+5K׌H'ˌ_$aqQ  4X{~]%ygRHV/$sI"QfXAV.%42 tD#/#1hnegM+u^χ4#
$Myuu03SZHBR83V
ڟs}륀W =mSi)駱ˇ%[{K2y߷%mr ʭX/	B$'jt'EKR,,E;,Teh"KFUׇx3-,D%oߠ~-Sx/IRPT j3fKym*}"qy{=&glF㷓QFBݱ"ՃJ/K2k(6`yEHR܆*0mȩiUZjXV[hA^&%niڏ)LW"ӺAbokjm6Vc}IzFh3y0.Яֆh<,Wd%WVxM[^hU>&YѨúKeaU$})ZE];ye8prNA'	}R5yPѭ.X&!-`F8F!*h3Ejs6'*X%g")QbDyJq
+Hɑ@WU!h2泛@\Bz;=˖R^kHioغ3#6jT+ٓǑY]鄝;敎Y@&9iٕ#"GRr#6 }j)XFK,wJxL7g SKǲK	R 4%U;7I_ؚvnSK&mn)LjR{XC-߱?(D5~b6bT|ZJTB"8PyDkNRӴl>x!DwܧSwӟLƣl4Yse`_~41o[ppvfTσ9']fusL^#	LW*_=/<sx׹.kTxTn0+ iz@ֹ-#XbӍ
[$ŋ7G)nK`|T0O/9KfY.f	,J͜}`ʄ [#,& V(	 #26|4LRExA9j˅tt6}-5hxp4X8\.-uwTj#%MDTN,
)iВN4Jz[Sظb%*a;7]SUЛF)p8Ѽs#y2{2F<Me^uNW90W
2X6~
N"BD8~4Uk{̄PڒQ-!UVp.WR	iQӼƭvN6haE@$_cZ<M?Z5YsG^oN\ѨyIJ8yIsrAپs{heV>K<\kk (S0}nx?GmwYY'ס0ΝΓ?d3	1Ac;ݥbFO}HoqkSbw"
;FlO/{05oډ;?dt]ž%ԊWśUInT+܉|!/ B5с!3(#J_?!_xmo7;IH	M7iHD	i$dLprWemqy:]ɝw?(bFubtVnW*OVT/E.MP31"Y?2f!SJ*p1.Ufxrtj"F sR4WIi4Fj٦&#:h˃A[
>q&"åh$+&>҄VP'-sTF4),ZS&*_m8j4#\I1czXKuB -%*x gƛA{{4Ϊ5KH
U2!g]2zT*ep14 @*J.)yLcɔ Pã0LR&%^]J1
}w/v;c_
{M%7ZS}43r?k9,&xuÅ̆I.ڄ		y
ENsIk@׈Ȓ$5ZI0ر<o%~BufWSВ쐭5Ȉ`t,(J_]1u."Kjʍr[Dj^.L)^F㡡|uKO/E؁`^ѰN铏V5)V'D\=*peߌLNȏpX.D?{{ioAd?td:wNB>R?d Yw80]-!<g.\O?>d\&#i&pjy}iOO2fK33ͫl2a개5צ5;
qVD*x9d;tӧyBo9T-N^ӥӫf1kA0E7..ҟEQ.vh4zlqOzeΒ?J\TpFr߂CζgbTHv=YiȘ!HfGΩOM=2ad՚)C̔\ 8	UP	uT3W>,!JGvjgJbi[vE+ ]`K_ya1[fs\p=2_#93oN쀽J<gUo|)^Օd=l{Q.`9-I*#wƆxiuL9`{a:A/<]ZoDa9II9-lFFSlFKNC
uXu|s[/Wf82d	zyCɚ&pEa·IV.-k1@	D<%@uyP"&lƱ|ަS0[0Δl F\8DFT'.O  V8I0,QrnE8<tS=PNӗ9{k'kؑ=Iȝ]q/'W,؎؃(MLdЌ?oG^KR/h{yr&jڄ	F`<[\5@bJ䘳$n%(/t&(}Dy_ %V[FI#hٞخo/5f^ݴ"	>A/PQj|8׾jƱ#n"5%G|Β<k߮+^O;au֠vek5KS|.NWVxTQo0~ϯ8	׉VHFA"hh{R;u߅@B;M,s/1`9bVKo8gӢPx8-@Ʈ{l=Wl꯼?hxITc+n~2~\fȷ,KQ|&҄vHrcSȴڢ7}Ї4`XfYS1R#y:\hT	+O-W#; ˳=sҾp r5OU髻fP1 B%LPLx
6B=4@,,о:`clrr]Ǿrc΄Ew6	]iz,U(Wg!LD6b*[1|J^,!\18ܣo6a[!SeڒM0.}uܚacvڗfq[kOrYՈKT%6M禡Q.O[
-&萐m*E~FPl. p:_hBQhe67 ﺥxsFw;
G&vI;!71 'wd4kibjW\{M׹.2LH,Z7)_6;oU2X&UTDToh^(JsœJc3_k5B/y(ROZc9co9I]n8TKW74BWI#~3L&V˓䒇}9UX&T2Jĝm=//U!O+VxǓԞ=c?/N߃9YgFhXجYE.״,T1K+b:^d(-V̤|:C	#E,c`%kK6 ӍZpK"Lcd2n5:BTskzrJ.4{Lȕ -k6SWuP8D
\G`2L-o-BF^
.i ;\y9T*ˣr{u1 3(̹ ӻC⩄>T,c}FCilčg-
.L_ݢ-bFJDf2h%3|ˇqI_&	8ثDL;޼,2v/+%mn-xE{`0zgѿtri-tz^D9Ƹ4>-fa8}v>F71 w=MѹLi_i,sֹ.΅Aȵi{m@c4,	TwTëczuYi1
[ttr£E&Jlju-(1x!!L-xFmR^g>Y,MZoL:wg'ߦCU
!JU5pleO*	0jΛNf"!~;-ɊߕB?v<uojyK/k׵⵽_
,Q'A"$>b^ΦSem	 푹HJX
>Z֞<#`p^F>	K'^%\y$+Lh綥p&BXr)zeu/f5BlDu7r!5ENg缉iMN9e@{4v)W)QT;S7p}U@ŝSz>q ;GGlm::=Ҕf44xYd= BHn+w>6Yhp#W)h$7*0#[eY(1sxqG7."g!FMqKILw/ns5#J xEpvdVr[ffܘGHlM=E/d]E|NcWP*6K*ڋ;'|V
P	1mc\~{f0	1æR-nP|ˣ[$뽸C$ X|f)B>+0AVo~lωl`h#N=[t+P)	aM8;fU"j	z*QZ䍊$XDf'ywO- CF
$Q!i|hMh-64_BPC!Ӛ]Ba++A~d:ӹt	Ӟ5垢@qhKzEǟT	y@	9t˭|P p$~[_ՠfLkp@9Jwc)> Rd
nv\yؚ<%~Coq?UzX[حo_
:(Q\2̎tTO.]5wSva<0h{=!^TZb:?Wìv&F48N yp*(20ŕG/ҩ"jGDœ"'+{svHݱA>SR'lxrtI3A/F[JE>Qn$˙P.cXkxUo0~篸1i`ihu+IiZ*Dl le6LjR~gu͋f(?D˳A֍X==]^0-8}ͿQ)^E˅+~<)&m:Z=nk|hVcR/I"n|7F!F<QџVaT:1a	cL㫓:1!I%HxZ''ߎԂԒTW.Hz&eLBu-eD[6j+	!ڂihGVC=f<{][15-e4m{&uqa bB*p)1jx׫)|<U^ɻcɧ!!ܚ&;8IkB8,O]x	9?`>ഹc'h,=7L7Vq=A%d|40J
do0/iZΌO#APj:$g"gO4-3X!K
*ÚΎSr9`8C$,y,aT&,m?6h5F_޳xWmo6_qp [^ܴGdkQ8@sˆv;M)rٰm>wGOJe[~q5g7ɻ+NH,vhϗ<ab>tȭJ&C|͕(QM|XC	<_.xrRHl<z)/ϼq+m C94QP	7"W~Hu!$a,J%|,!.b"GcVE@2ϥS3$kUZvE/Ŗᅒ6\dꘌNg[v4ٖGEQaC(lJ5qU^BȃϴMC1Na ^e
K|R@_='
f2iKKZf3XQrGPnU^uS^-`jM!XTjx:ׅ$5L]!9;nVBm2|l<^eh|ZӍX{SG=ɋW(/BVY> kI~8b ի2ۊ/%tӇ/fz~nA/quFJ&o4_JE;KSEUF*,YdU^nPFSFAkx8ӓ"e~v& hKf~"NaHgB3wGx>gu~=z+.5!ox"2ˎio
zWeJCn&F7	}3RPU}A5cUlTGت<7zӾ;8K>>J6z=)m+|;U5^x_`V^paanDGiYм\ѽ^ITV}dx;RIl9
h!)$awHU궕U--e{ɬ1Hz=vś[Sfl$zQ/$IXl* v2EKyFDBHzq K(hD ˸q $[zHׂgmvr2gٽ,ei9H@(I>{2DUP"[OA\/%:",
IHHR)b4nEQTZfI]8) 2utP5yWq|	RK-} W$.WZO5BOH
+%(L<XpԸqib?`&u|owr|=g 1濰~a?Ff}LIlp5,ΆGPG9s;OMm`͐ޕ5=``>٤?ή)\O'B`t1F֕5w52|epٿE3l<e:x9g,ah)~ٰ?U+8BSTϗ>=#l<OkσEb:&h_@@YھD ߯gVMs?r3į<EiBG90:9D;xLMC
QD0Oݿ#48,+!%eX08<b(-'JvCo
 U (t>H(@f AHlSԛ.'
b_.}2asjC/(&/ ~s߸㵛o$Yk`B)WDYv4AiC
!jQ%$GT (qvS˝H6)-ɱ2&7"ٍm o#M\n ;>$2Mc;3|lL̅ʠh4[xu!dF,I $r=ꦣ\H'p!%Bk`ZP0RhHZPX׃R
U!(yuaK	AtA9"u@|
7D@Ē ZG$	THKEQ滴@-v3!rS]e9mض6ɻȀF@zҿ6GWc7)*,KF
{!茧,We1*Vp
c0$XHRrܭ$y.*z/ EsX{`
)qaA"3 bl5,X>ȥܱUcW}1\F+2'&L <KX4V:d3m!tP(4ZoeɟHWԛ%2
l%ڣk
w*n/PQ	L6*6 4H)-r23"cqzi5Q ăp֖$̫o}]6ejJ6]+$at
hmXd4I'A;[Xڶc*bw 9b]W]`î1[5ʆef=@EMW,/!d%q126?!3ڞgV֪6)(!waF7W"BvgÚ<]W._JOT
!t#0DXFӅD~2!Y|T櫴	ڤ?_2u}oqƨ14Ywg}fV7Ϫ
2Iհc)[j+P9T޿6w+T#ʐPmN>ݫ@MͼXdǾ*In0(ym@Mmu$UwJKW6ڟ#!#sG_*k2<@#kdԀ08Mq(!EDJ-/+AIHlK z=qxX>ʂcܣn<m.\vIր::R1Ö!
&5H!AbCytذJ;-VCXg 
sGGy15᪒˼C˶XdP>&D'l,y'e1`~TeU8*1,Q*Vv#؁l\`%II1ɀ@Zp+vbæKVe^1|d(~7椆vSU>AU򗟋_tp?/^[!N<	NU-W}	;8pk6[x!t"`J$1vLV5X5>@UN@wڅxPacؼ!|\r~<M?<D۲SPQ*0Q jIU^~ٴJ+
} ч,Wr4 -4_2HPW@۱Baqp41%=1sj&dk+!r"wxrED 7[woExlԀsmt	Ć:˱Ok 0`G>3;`C{ۑ
ԃ\CvngbCA(=RC!S9`gOS#	T5S_wCnN.\"\o/v8ڡqWBF>t77]SF"Ab5ou<Eʬ6FAi';lLUsbk-R-'cgkCJ
&&<TԦu!?_mD-.DL]UTC
#<ʵH5U9u(|\*G3Y/V:ֹPĮSckw!ee'ԨZϚQb<\y(ɎWfBqRat|#<tHnPm.@OAXAǻ`ǮiZ=]=(]%exL-
"m< Æff!JteOȞ]sb; `RuύPOi+㏼9dCè+tÇk<0\qpD
k)6Ie=d?&9${5lG\Jj!jk=lMVgglV"v+.ɓzaJ`+lh4DiӈK9'0+pd"Hbc`h2dzo8:[
trktxE+)|ehQb.PNv42Q`&NBj-kirQBa't7dC݅8=[i,zvoE
%^-z	zį&F]f4I/zɝܓ7o~:t͛O?ݏx85w7|?Ȭ62 ݷO~&Hulv4T$῰EPc팤oQ,B=BիOִUwit+INO+FM9<F艹"Qw*U:T흳,nT"Abtxwo}B ܝˌKa^vVwE&˹jۃ]hݘRʎc`B[`LǦ('2iTYLD/8>@z˅'mn@lf,7;S]3+J+DTp圃b<=F1{:&4y%'':LJְQi|!#0w̶(<1v"*-dsx݇EJ񲅵@B'm\e6RڌT;j*S`Xg?taNB ]J9%NkVXmʕJI`'r{	YxGC|L_TuG@f^Ļ)5/*">9r
8+:=F{`VYm&V#)eޱ%- ;#>ADCuv%JtbK7Wz|Z۾G^ʃI%;%ffK#@rf >Vs2|-oxzV_B%G"Pj=v"pMUmdm3X30vFI6e#QhaFKNC*-*ؑޢ'^JOWBz׭bǖ>/p]s.DZ.D5}2_H:룿 Z߶VjLe%ϿoYe]Q?ܽZAz!7>s{v=kEHVLFj͒MD?
q2$WBoԡ]U7B^ywk֘	/m؇:#P`oD
B$o:`?cq4 ?]ǙZqtu{6/~}.5v>}Ro|3BR	k59ڊ| UU~#}:ngyFNm4*H['E|?Ud@/yAI:
(|U^3V_HY;&qbʪϜE=kv<b)߼Fc
Uী;[lII*LGqGGAY=x{jS]y,&1lFck4'6z3Q]B%߫k%r_[dlT9;єtnyQ
'ʊIjXI(r:~`IS2Cy1U=.DjE#+jەdƜTms>4ClOCH6a_TQa5ʽ	xm
0@|Ehݵ9iEY䉓(r"4Mzjqlu<5׳$ƫ9EBrS,Q+1~=!g6TxZ[s۶~ׯ@rd')QN3gΜ@$(1H wDɖ,%_,`ހQ,$Wއ˫{7Wg{ﵞ(a(ZOh]xF7fp5:n#&~836Kғ_?:VBgL̩H[;c!,0I,A$tAc!)'DNGX$p+JbO!?P>_S!iWv&IsWB8OzΌ+\;.'{Z-?B
+&)Q%lG>Yv1t>vGoCEf4*Ս11
(i#Wیo<7f??8]xOgSQ4	bvsF'5,#T2]u4~._/$!VN9w׌Em=ӡr	[E=Z#_x0/0Q&za͂"_5$w?FjšT644
,+`MP/
`MijR~Α*˦q&qV7)v{Br YmюW=
&oAL usҥA@cFX>	Sphx4#?CjɌic3AdJT0B}?Xv;ָHp6<`.d4vydAJhv):ƏrJ%A/Ur9+uc(@Y'ui4vIy>mweZ1ks-S'yĒDj0ðXWkH2jtWEIa[(c=Q k\m jDZuwgd\F`kpa+0bq ''tjuȊAOAkU<\-(jU?ڟa3)Cf,5E2s>y&gATNPJIIt47*9XP};X,1{@/9kS:Qf
k{GdAc+UBԼXƾ9~45Iٝw%p1%))ke;&o:L|"X FfS`[P;#Yrz:D[3QJ.L7*CCy,ȘȽ`dZN'r[4CBolJPh8ut:zPPtQ!&f>(?Be/C8)?(7jQ,f3rHdc t	6nt:5	o>H*V\A}ID 2?H0qjC51*H^0Nйi;}RnA`1y:#0T~:բ(ZP9IC]:	*' qА%ؐx{Ӷ~c&d>jp=)'5g4+%{ٳHDqz͑Dh^B2ZءE['#٩Xh@:eE3fZ'%9-:~Fބ>s*nnRacmUyjas|T(
^ѕ]^ev"krfJ{{
l6/A6-A `skevhZܦt2eT~=ҳGOߊsl>ܻR/jMli]c.,K&.s=Cf)MLP	*,؅#3>k6_p?S"x$H$H3c|R@iUIyNq!UttGEwc*"酭L
դ# `Yۄd
tk@?̾>]T*lo`<hӳ_gsJ
g,ٞ-;o5/]C{'}<`DN2g'ղBc`vC%f5QbCG2pf+l/}MAtƂA/BgqڸAqf/tSL|ܺw6އɳ%{K6ʊ6Χ*ճ/J>1Rm |j^|l'N@&9Z/ǿƐ}_>wW&z&"C^4T?[x]ams
,Mz^.r嚝@	fioa٫;6BƝ,#潀~/ܑZKO@Ъ;pi+Q⚫}7򿸶gy$U㴖qү<ZuLaqE1.ieXØ$Ɲv5oۦqo׋t's*a=Xg[-Aca-~v́g7i/crAf ̒ǚf_qϽz
L?v_wŹxks۸~d$|رs5~A$h1 JQo(Y4d&]r&@t:/∅"Sv/.O㋑?]_鱗/Y:A$Z8"ڻٛWQ՛|֟x}T[5/hÃOw<*
ș|*tR	t:_a%d8;SpbFO	׺
ݜ뿃 ]gݿ{߿:i	=2N =T&gBIgJ\9`_hDLYmBI"nDXGLP+Lߜn[C}'<nwZ0l'"E`=2e"	5'uvLaMo]'ϳ#<[}KP\;$j 4^ AǈiءYdwtR&P
aO#/E`Ԡ
Zd /n3"?^:%Eo<ނ2@z}Lxy,I,ag0*T,ktk
em^ag	dSҶ¼ȎSByKVnp:"!=nA|`8T!+3qA+4%;ųIBT1lJH)G5L$ pp CD	HVx<Ũ<KyU#6Az/[Dx <Q&Yl$66"uAc51%Ёmvkn^d
wHAs19%MaUY&8P8	.>A௥t${1\	؇9_kodA"ԥ%{H#MB!ǒi`sTT$$iY053[٧<Pa^n+maFՇ6ZRܒ^2h%VB-#CXV{U镥	73Rk=[0	rHk&RvipUcn3ҠSl(0W葡߷A"+P&d>bfms% f$	睊40STYmyq5ϕhոJF8\+X}Q>HȅA]?&r,"K=*C
&	%@*%P1PZvha=ZfCK5VXqn%qh^eHwE%n֭=O dN^v<]~b*Fd͢Ekp{mU8*sMXM4Tu.W]JJ@-}G׭zkYgYLoM?`
M
8pFOd+Qh𠵟T>?ݟ߰ S:HvQ<A;ք@D>uy Iz
B?C|6˜Q.[]eJ8WSxAt)r5.Xhc8X,2ݯIa=쏃U2ĚLd= Ta1;uɩIPeji렵mm2vux-o-9H|W$m~
L6<I2Hn+ia7>mIwAb"	rc<4h;Pd+]5):K̀}Q>U%ckik.|N;=ziK{J3À ~yτݸ2B70QSB$@PYצ"8Zjm݀d.o,y]U
eT3ײi`vrdzjɀ2s/5sapE>.O.e\LD<G(U,fZ1)`/Cc3>zyV?v/w+'ƖĶ&*4>}݃xT.(=|hBW,$OZkfy2]Rr!*<;KxRj[34s" allӢ:
)v!g%p'~;svZeni'?i*PD
!n?=	]bSEH^-4`!"̧M;T$X6auf/J3Vb,.s	}|3w.j=S~Pz@V{%΍Y`=/)gI7wcw
xث@.kpSwawVteOZGQLt֪^Ƕ+-<JٶJ5c=P8fS<qc,jm%Wvf;;ƸG(A|9p'#ʵy*Gr-qLrԺE8ѵߖ~l0sy`UFGTξQWik:PK :z%wsZmCvw=JwmZt[jV|ڶ<e7{km~0q6l*דTjY[ˆ݊qT?tSR{+饻?ls7·"lJ-tB!$

wP{{x=s6@JdMڛc+9'Ior gTIʎoOdy/4FbX8$)glJxxG}]K,1̣4qlIcϮ=<ϳT)OW̳	/V**'ivV8Q`L(reo(8&Qrq9_twvhe4bXIMyE;"Nͷׇh-SU;CNPߞ:Ma_8>x9
_{GOAG׵ٌoc~eWUŢ^1Y_E4r*q$9v駳W?ea9kE,'NMUgi:>xgeT\cWb%|PM/2Uxgp &y,2N\Tsq+#7*sjg*RSVO,N.|%H"~zeg邧CAgD.Ŀ0]FjCcmfhA{/9dH5{ݘx%helOes^)lPvA1?L-@
 *ڬE<Ltc})$_<GIVŜ7]圗w	GF%_)\.oMZf3>PIx%/Tam9r`\*Zˣa.W;Px# p^A9,Y %]gq^O**8HSQ\=f,T~EֲuѤJ~r]ЏO;,QR.[٫#|+J1à0bfv~-5<e|zJ  02fz IEۋ-Q&_u%-65m*Ie}GuڲXkO%HHX!I#H)lF+nMxn}"\0[0R~eM4 fr3Y	oDlV+"_eḓeOU@{g<mEz7lC왯&%vL'/{昧GՅ% 2)z2+Ili:y xu/H;JE!+񴜛(-NB#}/2YsSJ.`HƓ\	LZR|{qᮭsܙ6(ֳcئr8G3'ppz|ԇwdMgf!(yZY%fӨ,(&@J-ʝmz=jIAgqo-Th2ӣj?vz슆O(u@? 9+@e-t<+Pn0["T1@)J<'ԯӹ )&Afe7!>D
:0agA"3gd:ʃ3`4DyIn;!V氯o0E)J& mrw{&%a בO(bafw";P#)m$*Jr\gw #*c8߁9Ş#3يuk%)g[t:[L;?Q߳㼏u*z}R4֮1	TD\;{8,Ē=>7Q"G1- -JNᇫe_Lc鏆OM!ųE#<[hjm/'rO!r
''WThD=:z9!8$s i&v z<]Ju&Ծk`?ۡ-]Fk@9:@QJV`<+
95\)@p b!@b8[txڋ()Of-Vպ`F򽑔k`
8"r}>j#I+QmII1e:R2SZ.;ǮT_ՂfS.1{aU@ǊՕQ6x Dq$m<@Wysj<_)Y/JX_A>[a:>N.%O10@b&&dZ>9:=dcxgWQHŷ;`Xkh?#usN*k3~5<yo_r2@`|{{Gt5n;]ESZ]K	>)G0:EF("BZ}1K<w
f(*-JQ9
V<LWYS&uui|%3ޛH8 iOA@6N|R
,g	($y?OeCOK7MM)cQlSقc:0SpJm?sг8"?,(NhpA[]rqCPlaÀE,Ԃ ^/nMh¶D)G5ڑP'ڴm<"3h9O 'ǧAx:x7<x<zFb5lت$NK¶=`֗<܍6-pwHHP4(ƠNrhQa"@)CzT#̶aeK:/HBjM9Z<\+:bG6s+9*ؒO0<hKMwZ~32Վu(6嬮P<t!+IZ {([@w&,q%$jH<mF#f0.PĿsܛ-.ZP{6g*ހ(aڣ'6z>K?':l+ɉYKEm|M&HI$ <7ċ&/j,į`HpweHŚjSH=͚JVgo=T\[1J4-,I_=ʻ#)bpE`j0$qQ#HG'C+Sru>_ԃwmtlɷYS'_6ܼə2Gl2fV*wZ{ƹgb\*}+Mi\qE/86eQ#8qCs
0CX2	ޘ(\DP`h%۪(=<@\hqj.4,j(j/_R|3fE+q섰45dG5$8`"Lg	/fNU_A®x@\+<|@	ʦ.lˍʉ=jl$J
5^ρa-3X0GKT&3Oj{TUd{5w2]M8^w*^*d8Jbe
.8MJIW9^D@R
+5$cpJL[?'7[4,:SXUQrIݫ2hC(}x޲̊">K8E-j'B6^5uTy<XSY|>6m͸ c?ATuPf Y	R^'"cTXe 0EZ}MD8it8_z _NND"tb!ƽĤg3D)"> S(,`9P>>>U^IƚSFN\[s-@ux#5D[\c̐fI	*%9UIc
𢬌NLI{C?02_%c $]
ٕ2m_ 3P7c<U,UawF7ͅI:r䦝q*ScWv鸂eꘇAnb[ϳg3G! qs_ag9{jمMvkNpx@ b++n_ro&o7L<9
_\碠&_`gPc QMQAmӓk#7R6umn1h=d4	U	'΍rptK8
<]hi'y<o;,`[<'׽X\q8x{?c:wi<<ާ{jvWgfP'(qѫogA'A`O(@{$hup0Q
.l	|B<1gdĤqs	^u6p+EId'ɸ+2]:S?V*Ad>T;IؾmsYwEѨ΂؛_YU3׶w1sI"oѼ_U{tL9Du:N*.ix6UV!);^7Gi=!~{S̉R*DJ,0Y/WyjKwqwLZ$AzFُ:M(]rr\Sn}e+$&SDop3B84[eev:xe_zGɠ>eP/ςhKɞURBl<ŕ e3!~;Hg٬T5<Pfp|Z=yLZ?ʜc?W؀4M"h+{Ӑ~TW6F.݋t9Ĺx>)5ycflu$' 4d4g쪘~^"L6=/AV	۞.@W5Ƅa,)uIuq.%ʘBf+eƚ2PrgkۥH{$Fn6	#N!zK`2XMk-,^i>5!*Rd"7euioXh1;\eDֽ)c0:bmjzkRt:Lq;59xUWB
M:"YOQm6ɿ*e -op?7'!K	%/Lqo-pnFLmm׺$V7o.>Kpml֦m]s͜ƇEˡʭkf&67\s/_cOڠsb9Hwm4Iej7$)m2:Ƕh\B<ZKKէ4I߾66\*^
2w_F1JzԔѻY2-ϓ/=*K{񤖠%Pm#\zQƺyv񂇎Ǿĉ{\ϓ6(T|Ci2kHO0ͯ8O(MUkN\^[qؘGy:IYIzDƒ[@Z+:h~F4+=Db2^WL018{?cz=CWnfiC0Dk&zV&LQ
RL_k=ܡ8jSI}QofC<ՏRLԣxeB6n\	]f4̳i lb9wk׆~*:=
L{A]VDSA6R4WB7vn%$;fPH~7ݟsM:ڬ=,^l0<s*~h-#"|l:
.y";4goZg_Έ	Uޙ#Y$֎ [mI$6_e8Q6aK	Nµncnӌx랽EE^}ݏZ1}QO]t2~=188#[eQ`k RxWYs"7~W*(e38l^86eJ4X$6r~{ZGV}H}EsN:p4E'чrt&rĳhEN{4io2j"'VP<K\gB$ъCĢLYCl*Q.fTC$g_Rt:1!R9՚Ě))V L+a[;[RjV"\R4BV$Kt	,=aCd&aR4*O\Ԧ8N-Oa䝓wq[@,={UM$fBzbN{T<NbcU퀂`'ؑp 7܃aqoMyFTAȎN۷$7^j<%N8.4A\bZ)N[t"BA%Ksf@Ɣ_ەWʱ'}??hLdo-oD$Ul]kbΟ*PJr>Zyh.)B5ogVRmb.~9Uh:1~Q!rJ1<riV/h4\`f&X&үDx_j|&S&PTsJeF܂QrVm	R7ʪ}04_XoѨ=Uwx|KDa}2gRr#GYxC: l#|M̨L1kT>#P&s%* upqM֕615}Px!yO( KfMYy`Xb%݊;Dʠ8<{ũ[vTڵ>ȔWwv}rkw7ߒym*L,HQ* W>Q
^a`!f5zJIZ&)%MB.Jh	e]oKռDMQ׃l58nyVX;vmcIl
&aLPC]\󣃂9Hl۩'l'qI	\Nc5&AԸv$h"|DSV`İP76TBĎeӳ8Oj\2kزptYezi@4l㈏-<P{O<eXx}s۶+uR$'=NbˉNeIO}٬%Rq{ R,g4	,~a<8)nnSIiCtYKx/VƢR̢0:⤵wp AQ(D@S9}7oy,bv7!`>MS/FxjH` %<}bI8xI@
?`! 6VjuʗB! BAzS&3C0h4[}`q'A629-i~t$	S'|&C:b0t#VH1hhkCXR7?ѠYOb= a)  DoK3C5c[Jn=T*
JA=kr1b*i5CM>wxp>n:;{9~;<h1j'h?ugy8j0݋aہi$>B`"z݋N4N?Ón;!λ>@ -Ѥ{zkr4;@w#sOZ00D
~vG/a1by:2~<<{fwkw/O8 @#jpܡG>tIwGltGJq!ڣs>\4R:twR>@~#q'1۷Q"j!Ȕmm{?b̀Mn[/쮾ou,f.JRrOn{;oN#[W;B%od<|CoQn	஘ɲ2|/J^ E0zx_&Zly8ɤS,q疾/߻Σ	17\|n_u{V[& z>7'0N7\!:\	9$@iFԇh":Yt}#a猛/8u\B}_=!l'؁Y`H(vmyJe/Q!ŐpwĿܙ\q"0lc;' y.`w fo%CîuCPaՏ?ZHkRw4?P79 
dz]=:[H	O֏t~u{|w";~[m-~hN}exռ%rU[isHYDSɧۥ,Lac ]&OA	n0Ad%m͗&fn^;nvF6o,,Ce{1>u0 #px{ux4^17ij	LcMhE	?%A'/Mcg	3O$ƶ:ihR%o<'3PadOsFHx~{~7Is]  *>Tx>G׏'$<Q-e'!['h-Ta~^ЯNxݿ?<$3oMe`yd?Wz)()'pI6F{ʍ 'c2Tlm?z-0E0!dUc»Aweg8HGrBw)x"GKNmJ䖢B	PBj^:F@  d. /t0DMO2=]ǨXzkoE^s0Q6q#wMR\5dK)^0T!	K ;0 0	>u5,P=V/JsOy}eFfg7E;oA$%55v 'ua=s߾ԏHK
G/$:A  Ϡ]۾kUǴ)Hp $!A-6<c	jX  cX=Pk/q,>0jON^>LO}Dq)X&Dw:	x8uE9-NP+
bZt^C4ZZI@:ٳDr#Qk"+=lkQ+gyR2]ǡXif/{(. }^(	";R"	w`֨ydҪ;EAy	LAέcb2t@j#{0GnZ,]Aj3-qo~`K)LE S8ꐙ͗,H&w]`!TtVZ`BX.D(~v<@7q"wu*5İF	Z׹ m0 6>C=pP02SIgJáý8u4$ߥXvg6$&Vc+sPZ֤r kK=ܵeF@[	 @	lW9 zs@X7תyL,)nd,S#KXLm&|հoLd1w~[3XZͬOΫMIsr%`)	j\j09
1]7c8Ӄ&N0¦~`31427KfMVۤ
dAOE]6JR'L泺Q[huλ"Fh%f	+QPL$<mws)8w. r`lsC &w%8X	eSj#jmXy8{^c窾f3~t;"۵rFC*hѝ/Wܻn|V>W	%(h0:qhnQRR\pK,Uc*?v.fonIXTOШT'3<wvV"ARꚆgF㌌|ѦWkq⬗{Ėy`KG
;*<(E9x!ӧTMy0~|\p;ekZF̞>(<xaܙ'u#Qe<{& sgYwaI!&<ղIykrS=~	׮CsF h;lOPQ*Yy/lIhQi^s֯_'$3ķ51u? jk>o>q]7~l6?Z6-K8{7Jvŗ;{4O>#<Pq 0bv^mJFW+I
k,O` aoҚmu;J}vk$B 7fs6J[MBoFN(	f[O!=lePPdW0t6+xO@>Vݎ	6>KռN2=[%a|rӛAʄ{3}=pNQpVrgem
W?T//:q}F֦)SUj]eb"
;Fv)ȃT
u18ҍ\$@l*ɋϝ3wt\\;d<j/ꪩ2}!N_J'dfnו,{6|!\-)ꜛU$tW&:uA>ha-j/fND9Ǯ|D-1Ѽ-ps4䘡/@q?ϒ\G{v"9|w9!wGŹ#V;"Zqn@Kء"%p
8sQ<w6J[WAٛ`o&Du˗LXuermd	:zyĮ1l*1[=ς,X
虣P#z\5HCͼ~Q?b#1$ĀIw^rS?Li6l8FE)k3d%hڮ8+jWUd r'Cuٱ=I-g"[tl`H6(!oykʆ%}LpoPq@{)Q&*Y(!6$:T$fk	a2
K7	N}9xx<  i7~g+?BLBDY	k%ɘVl܃B!əZWdQ
UȡY͡GdG@p#ڝѝu?!2ončס;a3STdm%جj&ȖO`NwkÈLR<h"+m&BLO )J"A^ձeBhH<P7uJc:N{q_2F0%[z6[xIY:?:6(dIG8|tw kdkL-ѸqT Nyb^|gV3).^2B\Uf2S,%&ky<A<)а3ӟv^t{`0SJbL:<CԔlf:1'Y93Z>15.n0qS ȫZmXf9,0.e=gf*I~TeUSajrN\[3k̋lq7eMT' muTdVY[=b<aCgY[UJ}o`^fS&Zcsf&&4~vSk]:.XQ~y-Kk6MUKv5u@HYMfknE.,`J]=`%ͦXIъ:%t*U̥R/!h[N]pmG[9}"_G']NS<QHeS^v#
!b]v%-GPS@V4s v9@e	RWWp(aUtfΥ,L5:`eHz=pwfc;6sjx`QxEI3NSN><-sNT[X|Φɟ}8|8YZn5A)of O7C֭@ME}[evC[NGc-}PaW[$Vljͯ`4ܻHY~>3ˌ{fr-{Ǿ'SGr'_)`3jY|)ɟ{QuxZ%Kj*Q~=A>`7w=u/	(k9mc.)?4X	z&r289
$12ڸWZ>!aoJ}A *UGv)	ɠn9,`dKp:Ocr/m)0vH<}½K'b`NxO~9ܳ~~Q9 $ ڼA&wChA0_#tcλdSy)96ցҘ13GhLV`tيU$^Uʣɯ$oΫTɎY0sW#{wMK]3Lqɪ`.Ԁ{%wјX(}K/m04{T!_Kw/M,"A'L.;&o
EAÔn^rwHtD)fz||9AJqpc,E{.%Tfo2A%Qh @Lz1nnbMDjB8x /(ގLxop?Mn9.3Gg>iɌxșR|/Ǩ)}vfR(cܸpGi	qMR.]0oѤN?5D'1E/1+2=^TmFq0
fmS;S!x&a^Yڗ_h6/\}1Tx[H~k=ꜹo|D4\ uIXڇ,
E~|5|S55	vCyr*,&'nyO_K\\bai1]K9K"=,`xW{J o??4`s$'A7}sw4Q$Hh*o0Eo.~LRXO	h3+!JwGqw=ڧo3'ے:롩o'avʰ;|>O<RFI3Ңi]õ­a_mY]*u%?OS$oĊITt|fI_ݢ	xJ6QMFW;R}㥧y8eLK?FkKTDʹ39)qppLc|&K8Ir~,=%ŹO2LyfJZO<)΂U)PۗM-kgú&ٷˤ3(ɫn[:	qc.V:~#=g+$VśX /PU261Yr7mZyI;_yq=r"ܮMk)fzxiI5R}/,!)]pӭ}Ac!Tbd;.wutӔCqFT*4w13X) ~;[Ǹ%y@X\-yx2H/~ЊƠ"0ut7Ն|{=>#ɤk߁3ެel)kF 'n g{f'QDo|E"GcF8ؽ?@|suI26P0܈}ln%J1z@v-s~96߾׊薷Gcxfk)I:wI1)`>q^%L[~,v{6?.;Y.x<M,t'a{u;JԽ	Q+V$/:60ہ\9
І'<.mX]u!q6? l`/Ƌaz4koYF4Ty-HKhT4\Kʒ9y,I~t*cPаobkf
|SBAS/Hh:,î% JuFzH\m薝<ecC,;hG[k-;ڨH'.o{IgپFkKZb~,O(_ƀv#ô?hitj0`EfFVc]=b=M6sda@, xH~VDS6ܴ#FqMFeM&eO9)wM4(C\Mτԓur)X1r,mwe,ZӂU\lq@;~t('<ǃ]xFқƢZDihdlYQ<4٬PgMDj
`J%d
(0LW#MPֱ<T]ܯJi脳{XQCoYIHs`pqfn(x8f1Mr
΄E:<7oi0
Q39)A}P1Xl,FĀ%fGAD]uvGn%Mƃl_`J'*gFӁP{P[E[2ugIZ]ښ͎Lmk=ǡy|R8KJ*̊3Vxʾ&t S4R:ͦ$H܁;|Zdb'Ch$Utn%[/^FS3V{ѤBST6꽢3x57AD++Sk6èY1pM+pNn`1ȑ hmIڿ?dht=XM}ݽ)r 2Fcn*Fjlo"H`AI+%*Z,~UO-pЋJRmVF7`9]bhbNW{F0TGiX3}}kݨtkK	<]uE*ʖ^08 GqE+ה7C60oڹ`D1]RӍt'X_{B]L?p,#D5k;Yq$P!Xd'~-?^JSg57߭@r)J-q K3ghUP6f 2L
,a̡Ew9p޼t%JEMSNjzP3/[%YW.a)c'i1EW1+5K>o~ueWL®Ky0<yexl4wQ탕(
~|N٥e}hBiiؖ1gj5FX|QkN2 D 7Qr>T=uvRK>r{ Oԛݪ|ivtAXP:p]wG"rlcӕ7_wCȸc"_O0H-բGAH'v$9<h&m~"Sĉ`%؈4ErS9)T4Ż,j2SIʑV}FUumHv"zxlH:eRV9hp
V˩svrhAPlOL(:\P0[n A2k/ۘykB$V#!F%}mNG zQ?wm!nh]%lvW<.ZD$Meܝ4nPrNq4Hnr)}^NP)%9'՘9~U-3 h["u
9y=ٍH7RÆ!Zm'@im]K=i׶n#׳Jy7Qܳ ilGؤ9ЁJGK":Gܪ\#_vBN7s_`xAdУblT5c'JK!]shT.-Q=t&.=OZ)'G\W0l}2/ޟNڍ0`%ajٰRU0UnXTvH)hu[=
߱Uz;PSYsbjOBTS9|۰50fltkB@?tNK5u杴J=vr%ì)s3:drHխn8?vyvX+	6 M1\\dZw$I`"0%ІɺJC-C9%ٵgrt~a&*`Dչ=xM"{X77Sꡕe79ӗYTVoyѪ\={,a㭰L
lRuW`F9xǗ&^J#ɸe0O4.3u_c;t;XfS/7*}*8ټeW'}q|]Q69TnU}2>r#ef箞*IBb3?d%X2i9`cT7=5mtn$GC}^nCxQ*^أ|slj 7XŞD:EkX_//L6`1(ƞP_oO>ƹ&6+lyOVs>ϡ0U^&_j*g&/x;q2ͱ#n`+65Y:1@8uq_JabHxnd
w2A3 eCGG.0®ؤ7g03AZ|3jt,Rzkh{c81*Ė(.Ǣ6]x5D]q;{EPD;t*S*O#gyi%/Wu(^s߲lkU5<9wHPu)(y%-WfAѯxdeeg=0*}S>Da*	XB|D&˅@zY}=Np%DKĸdwp]t&O7U/&o_P(Y2M w&U]b'{
uF
lmx!8NShnE}w<ςS"ٵ'[pN]IUJpg2ҁ]mLKߟIҠ5YK<YiÙ6:ؤLV?Y½9F!%.h+X{Bơ6u|'%LӍ0Խ	}UN'bU뭰!N8χ}5<JӰ27EZTA-b/i{Ez~ͦ 6*1m;DAm(#:OSo$a4~m*tE(s)C0|1)[;*n-ف:S}}4KVTMl=,g$lur3F1U^+&
+)8[ө"\CzvԙN{<o@b_p5tpL̉:mڧZ, ;*dKL6آ YXXtYW
T1VJD8{jP,uʞ-bxY>Bvl8FvH^MMJ6d;^7zEpc?XbBGJZ(B~Eqp1q]{ZRuA.EL}V!.) z.Z`DwxW(Ak \XEik1֐]w{=v[<3*a)1(Reܨx@8%KlS!P<ܟ|!%g
Lx8b^ŏUG|gֈ66Zt ?#<G+ Ѝ?(M<Swօu TR=&z{*-]5DbG,ݍh};-ʨՖK.^\ ')h@]QέwJ? :~f#ݶ] ๋U5_Sɑuk]02_T:;DqBꞩLKѧ q+kd6C\saK_,;Q}+0mVǡeUTExwJ%k	C ´Jh2^f'
9Ė(9v|P"25Gq2^]/:Q6=^ttN@qt._ξ.Ȼ2:#+^IQVQ5ZQ674-|\uTR
7_BY(e!LI۾n3{'VzOauʴxZmo8
ځi؁l8YcneQ+R!%ˉSEvAq晇>:[zf/z)SA03tjs5)Ï\t*X*'Kqq[Ls)hײ-̥dnAOlR^DE0$=0lChT"Q1%SH#04F~SŪb&B(EX(;Ӆ4p&"1m,"%$\zHǐ-:VSWY1IILzɔ6¡':F&		Qp^kHQF$E/fz5-%o5J7>@S$zAQƊ\3A!1ɞdH:lu#3DʘD!a͹,1)pYm˄uhp:~vE0ID4:#<7}0>\V;18^Ep~x{'A8`,zy0uziAwy;<>ÛQ4!YBnG\t`ԅ'C(w(&ag1:zs	7#xpa;A喇G]9u6xwX'λ.o@АWzߟuU&9>x؆1r|h`m0QpNbӀ`kQKL.GݕE'NFqH)P锨IKkdkΟ=YoT,6_E2	E2^1IH E--`ȗPDNP"!!S|.\	5#s,EqHX\_K6꣔U\qVDQ(Zր)BA60KcܸX%y(NfLcs+ÄDSse&c9]R|߬XϹk+o&t
_W /꣍itgqNx']837RۮUscb"-Y5škNUl˙ͯl4;E{400X.n`bq#(Οˢ"όJK&0{u>8ŋNS559m']-z|ΗMΟҨUYQ7>nqdVayHp,[|P4S"e^_]5HJ$%.!x|R	I'Aʬ*^NϬͮ+ដb%,cɓQ-Eo 6G6s0/ 62qqd
<,;ak	)n/܁. pB3NETT:cK@05H3>2JBXkQf!&K3V/I]!yEW^B+="(sg)LdȀZ sA=&Lp-`/$okb&d0,0(yU6H8bl0bšc'	"CQU	(
^Λ܎LU$
w-nͳ/F3De<yyשdų뢱\v71FCcPh8՜iAA[ץ@Ċ@wUNNŃأOJ@]7Q2jLR^8P?oڝHGp'Y7*\_'a7q8e6fNiO^~CS7tA6[@|>~_:dn&R:P5|tU.$T?n@"7Z,4&-$n3U9@6R-K'8( [ur %8Y-E
q/q| ĭ%w,kWm+_0wXw|`6uz]Ǜi:zy;W/$2_)wK49TZ
@
YMWư[E=&4cǭӿjByno.xMA7.qtd(wB]GaخYxWtK>vEIg4	<MB$n;D)]ڹQ,qU7\GQig"ÛP%\H9rv+
SPK(ˠYFE
 &MH,ZW>|9O+9)SQqS)%y呸騯OY:bɄ9؍ȝ6f<bgmbk$h+	?9`ǩ)[s?׸,to>/I ʪ)f!|KD.HfU!-\'?&ZY	
dQgN~2/AS8Wn"s!fSO$~^-}+l
|5vZ_>xl^
#Est)8N9:(jN|4>'Yv96:lnk-lOh[l3j;vʨ8ds'f|ǹ-c 3]o|_?EPo~L~ߚMj`~CBpǘGBH	+	I;6U7\MXm98<gɫ0ۍULdq"F4kߙr<eM=vgcvv?i5߹x}ks8w
|e9uW)2kږ\޽EQdqLZ>x{2c{ 	$If{5=I 888on~ݛe,<H?n?kǟ ^PCwAJ+7n$>c9oE(btq 0Z|Lc]F8j E"wBIcp(``N].\OFCD #~K ЯĽ/$`23ӂF3/Hn+W?M"
%V]࿒N-[fF-xCQHzqa4l;Z#rc*?%@"	}Xg GYb|</GR]Ztrip'ifL~èy4(lիh4RaP1&HHX![&%FNS-7>\vObp&:O^%WCk4BP]^],xw/O{w-|E7ï/at.zO-q8q{P\]#q
:.#@Xo1:\\Pkp>{|pqj÷`v݋Nsygч 4j-zG}OwLw8O	?CodDg!rΆ˖@G-/4Ftju. 7۷.b4e{3l~{&wo{8#4
Jb=3/ZYcy3R_J/;}O`,/+?tbmѸs#wzn؇N&@b@z~I}3N˯gGo|Dl /?oۚ?^9XpD%R,x LY:A^9^?:l#":z~B}	m)k͔p lRS^F}@
 |4U?MO>mL6Q\씘5~ ]'oMO3o K{֡srĻnsdAѲfN.$az3w? 61M\o~A8a[9Xz?\{Nn"ٰ(/a{]N/,\4c'Wr';$CX~#̗}l R]t>FgPm"%sDZtsάr>vٲ))`|AIZp3VVg4~hH;mdxSg@mN:1PwtR 2Ƌ([ >S$Zz*ECoЄ.jqlK2}T6xHňQB("uyЉyG)u4cKkK V1?ĿNm`UA3u\
)A?tgt4EKT9B0;J7M$-)O;zڵK<
X4@ZtD`&ݣZ\ޏ"dDRf6x`-@t.ym%H`T4j/|vW=I:3.FEbh	(C=Sy"9k%DXa\l ~Kko;, @?c@Q; uڙox:ox2|)ooz~_u+2k҅D~{OivB.!D($7w2&a(ѬGVSoYym?,ӗfJk)){mov$&o߼ƚ%2&928w'G`-~׋[
J&D&ҹ] 2uf;(ĉp9'!tP	9(UĹU``V"nw1`@ ]u<U2TÝ+O 5GGdt6jQ()exۣuYyt/@alfQ<>OL?$ u4ASDM7f}n]\YCxQMB<뜒`e.Ѩo=<::D(rS+5?xञԸ#̟j=tU
;M"EyNR,Y9w'c1X,ܙKZj#d\{؏SQDEeMe DskQq#MqkaJ'CD]CB$p*N%HEPKs9¨7rOΝ3X?լon< No/F]*> :Mh(aX)(@Q= b> _qh5 \ݸ]-Vq9Es1d+/W~_ΉEFS#rKz9PtR׏@ 
5#i8`N`{ވ%}vHHtɄ?)lT;dHa쳛$/>//n:	ބ-.yw>`S-h!L5 T#ۗ3S&C7E=*d%sB 
\,fy77{FNŻ/JbzSێnqO	uUb&R X %tyx,@LqZשwQ$s[My0 t+^h-xLsa ȝdHڏTb/qGO7?]ġGhZ"th`B<EM4G+֘7hjı,:7:#U=q{!rL}q`P(C:K"g!	r>㋸/M6پi{r0CO=F=} fLRu!WD"!9MiNi/<!x TEDڠB%0OHoF#q{v 	`nOw2@עB[B83Pk#~<)(Tp۪w53Xm镊J<=k|2U@ip?vڢ!erVz$6,ߙz`'f_*zR0Lת+фb*ެ[/s7P"lXwVoA1΃`BIHډD6 klPL4Cߵ;ytGNC~~;c#.4Jhv/)%h.@`Dm*a!\00!41Mb
vȖ"Ժ<+hAnBO:K0Q+Vؽ#K.Nh V:XSI*8U*0rP-~^Ӕ~!kb%ףD!~u\$DˋlO:I	=)
UY*;	]0,[a3:JRDeH#osL'Wd`*\D)דbE	UvR2Sj:PؐTNsX!E70$ڃtΔ\Tmϒ_[G<ب
DJHS|7.v;WVRIɊ34+0nˬi;4Nat3$F%Y:Jƽ-AM̀XSEsT[p	[
i Ҭ;Gkq=>8YJUJ-	 ߵ Tm	vŚ8yg@mw/[ėhyg[Cmk8mrx/wz֩=\%bZ>WY7/cȲ֟8%v..v~ʺmJxwa4>>(8qRl`.Y
@<ZE|{||k}FyzZhų䠳H\ǁqԻD7`k;DSo.2ѓ9h@*:&WÆB?-nM%#|e#J8K` (*Vn$c*FAG``!8$ߐFO}6EzDc'uP0JRKA<}7CqeMy9+ Ent.jбt5I=yC^:70]	K5{	R<>ҟ<Y5Ltz2Kϰ4 o-"37lsk!d>YE^ߪ4*U^S?  CbF0eZb"eAZTq.{<T	l`UvC_?)y* >+<mx.M5aGuA{0p!N*<쥎`F8JD' 9İ3)5	*NeX>H2s2s2(L~Ζ*E
zD=$(gՂ~	|PihƣmRmB->U;:Q&l%c{	(+LKS Z*KߡkH0ZhE 8
R_(Z%)WVJ@@u0~m5d@f	@T*oth{mƞlg\ |F?#k0JqV8	d'3cBlM:mj-JQnQhIrT64" ܲTe6*Wϧch:!j(_EXu_	Sd	̿H-$B]3YF桁ZHq,D[V>jZ9s"EY"5ȇÚXi;d ^
<E7`(oC ;'-]OXeD	eeLƼ@ ~wi(Dé4s]>/us[2H9s<C,O=aCg$i>|@,$ܮߢ!>͍-Ft	CRЍcry*$q)eS.TGgiDFBO(89|EIG4 ^r1~keF35nqKt 69aF;Ӳ"-xk_#S`F4lp]Cՙ[]$h{Ұ(y;5T泊l\vD&GU.}ghpL7#ӈ)(r9dX"z:|R]:s#h[BPqn}9}ʧrKqdC*	o$V>8:|^ZN25^s#gԥ6pTTٷsTH(s2loO@G"1g2Hyz3ـ0{ӥD{b:Xd̄ )&zXkF=~XpBPOl02)6'Qq"ŅI7&twfcdf>-2t,řBU*)sƏ3ۅ;RfT"٠ȷ4R܀$golqpeeJVl`*RYCŪVv 5
&$x]7O
*1Tɶ,+Rs.F''+kGiƷCUe"I"A_unJt&U&jo6}3ڠqBԭV);Νr\fǎI;?h'F1
iE3S;y[ӈA1C5(aFE 62<S&,;e+CR[ؠ#:
kT?홖)SΈ?g2=J72#>8IH6,%1.-ybA^px-5)z*UK}*э)vst6A LcaժفSk  d#+v\O WS4K0p:ͶUuj)+#RlWK@"`?Ξ<X5iQun6<UmhNUMNVfS!K&.F"+#qoW`xIF7Re0)qCRƂPiS~@`JS
8v~Nӆ'>|3Ņ]F<Xd\J'Cuл^f^u@Eh*bgMY[l4SS?@G9{pNm>YmqM{aNMe( iA<+[8- <d^{tZlTJe
OLvz>jeZs!&-bU4ǑmΒH)=Lg<\!ubdRWi偏QU9Ra̟/WN)XhtTB%<16qQ</(O*mu-+@*(ů6ҡWXBT"NgS0|NZ4uH&N66E`[:FRT}?lN2Ɓg(z&܄t(Hӵ%+gцrwnb<)-<S36H˕m]{RΪ0ldO>g cp1zb+:EFHSQK<s9wF{ǽK !-k4߬:<	>Ʃe{DxRRRGɗf`io[B`R($Du/2tʄO%T)7%9%qh,߰h1鏕	
NEcu[]6I<:4yծM9$W=i6ƐTEVLa2$_g\ǋf4N4L`k ۞"]mv_ri2$'<.5!X`6>~k`]4_Z4:l|0*0c U3xj_;75'삽Vp+GUUi63#~ᰊp%3<ZߙoVleWlu?y\	I,?Y,̿os?9`< %}XR$kX%JGtU(س5>4F}NTmck3"sirE5tQ/Uhdk]FF6XT|CM>+#Mϸ<&-=['%XCuN~])p{{wAYGEjQM7TagR EN+(tidO>DzF.;l9x`oCx5OWV,Sԍo4j?'"UDή{v<ꝛtѓ跲K$ ɢBԔTR^3ħZLEg뿤3~B{ٳH&^ç+Nly;ؼo13z1tz!-vn}gg0kC?x|AFe+'zܱ\>6W1X;}F2ks"u|b"˕VMU
l,v=OGz%8C:k2ߧ˾x IZ|	YH35G_gX1/Չ`8Ycz@OXKkSU؎.1)R} UalWۉjSP'<u+Tv0/%?xVE8+*G_~SI62MVWeآؘ۬)6Km"|j@H*]ٵҰ6aU$$Y]O~Y;%"_;=QI|\$hm/<G:s34wa~XX4l{Pl]gE0`ze
zUqϨ?~9O*iÅּ'xE\\qyc\(]Mݚcf>V߽W^m+i#~;> μbR^o0il{ӂVhKTH+=UhL9X)^Kc8X3asA?,̷w*6/^"jЈtlOl-rE<gE+f;B^?U15[Gckas-!=˚\_\ uyhvз:!6L~4FiЈ:*.y0?ǜy}µvɤBmyUJɶ}
aTffAJBwam32o5Vz3sm3'wfG<cBww.Q`0ԑ.[-ku(+^躗wxtVmOa|qv6ݔ7싦~#Q $v%+}.lB,]ujсB*\	KEXFfU$.*u0,t<bW)`|0
nE甸	R1\,6I[5ـ_GѷZZZ`~XNcaJz{
fjʓy!^y@uU=#ς$V{^o f?ؘ:`Ij`U0%yP;t^?=Sn&Mm)7((0#|͜kzgKj<)_4u\%Kx:9G)!CQVRjαh*̮toQH.DJ`>&xPUL\mKP_HgNUOd7$\t"Qi:U-5k"V\Y{C}O CU׭Hv>.hS@dS>0c\uY2,QbPuI;:߉0uYU LSj}y/0$:Zϗ50塮ZShTʍ&]'YM1rh9C=t>sfդx:pyH0[}`ԎѬ;>W M?X	w#SWTi)w[ȵ
񘕥'ߒB*vcPԍ͹M3񱳫\vXc6;mx|źYZvtԘT`nce77F_rJ M[s޲<bFK-fdXX|/LP!:>HR,xCQv9۫+rp6YpVXdIJǈմ^K;_LbmeTzkfI%h9SX[tR9"I] lژM +]ScVX\Gt'کJPO5#Zi+/t黃&k+lUJW֭"A˭/Who"VA̫y%LcWjjsMFd5b5fv)Àk"_FR"VBM.hQa"#J99a?5=7PWא/(	,X;al>4;W=KR !EK5|i4nUwqt*hUzB-O`ֹA`zq!2J.zfU[,HFoLK!);*woWO[T3"&]g*ԉW۴>Xݦr]rt1DD-5'T?|(\>&n|kfɫ ǂ)o0g嚑&ku"]a뿣1Rs̃쪈PElJ.V'b,㋩ѹL8ƼxwT'd3sO\SFlMkz*7 խ,@[S\2c	ie:4!frfEOS	HP}ʌH%`u4]EdBV^`RLe6UxN)XP˒(Qua+	UN'C -K_x1 B$u",LwUTp:r-B'蠟;}I&
wbt8y隕[pNҏPKP渜-%sy4>R
9+^zW^.^ B7"jUУ>0C7DmKݑ81M'ebW^g+Q:d깳cPW;Ǌ8w|M8gHQsc̤WMmno('|Ut[nSN':JrC1p:-N#H9lrԍ+Ab(ő;HC7,K}-"Hjnu	ߣW&6	b]SnciS
ftpnZ -d=0i5á	kZEo|u*5jAdӳɻzRUG'J#G^g.s?-N=A9&=T^N'#
j^R*9KTJj]*k^ʽNvvܸ1?d~mV}}v^@IQs.)#(ݍĄRW%-kziK6X)<,Y/sZejr pGє䢹(rWs\-M`T@]p/GI[tmDpa@u+]ַM,zzہa{nh#ι	L\ÉWWOKeqf:{b23	40%/b
rfk;pcU3Ckd;fzkU(Gn R'<6};'pIx<}n@|TT+}Ԯtt="xB7ѹqrÃ?+/Lj66a/}䍷xUo6~_q diXŦcndHr<DZ%Q#w$
x>V덁?hɎ!mrf#2ƨr5R	`.T]j]J[X1"wPB, ۤj-\09oJc\lf)Qe,M!Zfel[cEY	G"8qm\
mMi6rk@	b2qU;!*벯CM[R[j=nWU7.¸x&JDA'RUE$%
{*Ԓ:lKBjiDlDf(TȪ7d8e^4G	2+y-ni:-IQJ8Eh#QyRٺߋT2eҋQ/Ƶ%O"DD^\A8/x0v=XU}0̃15'țfY|=ch<ra a̽(ᣅE0_D0fL",f,H0!ϸx--PFSp~i33;YWՍ|`wlbDE=^N %<ȟQ$.]%j!%^c2g3]L
-#"BpMdw4ft1?8.'FZ%c#gLh}שDp sZҗ׬y74uI.~〶)L n1GΡ>Hk	J1t\88hZt{'tVXe%z)oOƘvwbJOػI~U՞߆nuEm+wxŻTFG)J((ݹQ:R Ct^fMN'dnbVGY}
ggwiCۈmr1J57(gߛ:&!QʱUֽ~d:6		K?~ M/ܱx=ksF+&NjI,^)2kK^Ivv+Ar(" )벺~=o` uT,3==q2]nf=dfѺ'I{'[pqp㳫wV/yDEa؊.,hzó`I:a<Key?Y\lsy^,K3qEƣ:MivS(<,Fw[lx/"]ӑDj>	NaA}1K%v__zZˋpfyI]2d֨|T܉NތO_g߽ٓmv;	ВU8&D><J$bƋM0?'H݄aFqVQvFYmHD(7	p/h%1v:X4MK^|mTpE[{6.a:§En5IMǫlÃ8OEzƳ*	NlcxЛM'=,*",x,|Ɗpfł3̖` L$^#2c(gmbl/MunY0uE&,朡uZC
C@>&<K)j8g& <$'/^*bH2)Պbd$G=	Z[gH܇C=dœ@$ܗ}رt́{ZbGPthj(SI_ظ@HFO	!׀A`x^gt9ZL{f֛2E50Ir5T5
(p&I7<\=/y@˸-`ҝ#!v:L;((AGF!1' FmOR|<gwSvtĒr	J*	CJӫjN}@uC٭&|j<̈́bZJidiY"LjT?ɂnPa3~;
`hQqL
@O[h9hwx6mB|,Wߖ@Sy( ͢%vj3X`}[g||y(pE
urFTeJ/-f,.r[H	uMk\>IomY5{ߜZ@Ɂ(43JH	[/\1x愳h:yBm@t9qٻ8 ? ɤ;M4r,hiz#g>9a$Њ-Dunado6$ ',h6?:ND7W/bmk[.6'1Rib& NAv镼O@^/ylSV\]XB
PekY(Wj8zdmXg(&8sv.Vvv>Bш:]lKM-8(NSp:$jMk׀gCjmcTӉ3:8i @8a4-/0a@Q펒.?b4*C9l$.S4<Z\JE7ߧFʗQ_C7C3f.뫍 TYmҼ,6ZN /.f |2i#< d]P,lf-!"voz@IB{ca|,W"'FC?npkCYيtӲ7D?pDY%N
 lra/;o933hݠ!?ZKU.bI݀FG%dOj+q!EIr4Abn4jE0Qa7n8قB)|[m`@	YL׮%OfƑ7O_8CN>L&W;-IwVźxQ΃ZQDK	hgzdU&iV2U{́Hɣ@:m]+-aqִĨa.yպ~dHCsl	"k52%ץӿhQt|U~q^oWRBǒfi6H![]zX8glbXGb%!/-Sl	Y'ܬI$d| @ ^EP.Pg1SŘe;R ^gbĪ8i"dgi2N[E"ȌTqHn#}.도zȊTD&fip(Mp&4ՖqD~sog 2+i!}J+C+$~|3ٕ<1iCD[nR!\KRE@NQdܻvHK(䣻ưr*HtPZt莴rX13'p])
WC,`6Se\`%A,cEJI549
P&R}γ3e&pSx:L|8ױ.dcys޼'Ρ:@7HC؊b$3dyGrH	BNn?ʿ4^jЀ\GESۖV,uvkƙHY,k(<|E*{p~~Z+r9hZ9>ɈEqY=(I؏K$wvzu~ىۑ^]$J#g/i3w6DUZ2*fLeְcvEDY	AoXٹ*)C
̾cYTKx75-3~[ʎhy]p6Tkp1> "5GW\} VDn@.n0v׌Ml[{'qnrj2ەK"c/E1NKE	jνE1:Ir6&pTg߸g}m#ª?2JiJo7l2pf!τSe;bSMi\KiI%n43~NŒ.t{L2GBA^yD`I{miW XEvETRky3prTM*p̆f&ve=OΪ*<v#\JܙO.@Rn~Sz+*`'㋋*{._?gƯOƯ5D¢؞Ŝ$J[4,ΝI(#Uʴ)6NõyW7IN߽^瀑Z񛈠/oPY`Y&ewrg(ܤM3Ї܆
PtGb{Ac,2&,tDkaҪA˗IsxةIjJ{>	cVf;sna;
@f#@-\ˢ;#"RDЈ(
Q՚CG.OMj`Yc6N .e	@伇B@[RVT+'AT6aMuΚ0R0%){<㼀@s]vԶBlW8WrE޳j's穱ѤUXo&,2U]OHn.g@M\t`Uw<@8vw,{#4FW%J@E8b`d鑃v]&6J/aSuD]BK!UV\'7|f!V|[sy:03
ް@-ʤArPKOch"*.y^$|DCg
clK*.O3߫XN4?ZW*q2ׄ^*yw6	U&mۢDN[ꪢrg6zlMi䛌_(Sy͙2eqdӪի)b׏Mm[WF/Hs7Z[> qac`%;9Dɝ?Icu2bhRqbVZuZkmxmUpf%J0j\8ˌ?QT ; -XC!ų_2_m(ΕPO#r3qdFJn˽
)ةZ&֍:ѳe<	2Nf,_FKpy}Rb\bWLSlMr`"(ͥJVK*TY;{"QRGyF	ȡYc9J-ge:3tW
S!NmܭJC,(#3o0L<\\C8j>$X!tY+gcon;(|c>CH2B*Dxy LN'jm;uPLPQ9|'wԹ³<}I@ ]fe2|}@/tii7*ͩڳշ߼8{8v~#GΓ'؆jYpʅC&ǔ;x"'a%ݱu
KBpJ|&
"Y*y,7_Yxy'<Utkq峔Ϙo07-e(W,9Y<K"x&3;LҢfF4]KN8"<69zЩg"V(h⿀L{-DOE9h!Gv-2#!~X@it_~N>Ne1cZ!{C	&]~x.0@CT,Ćc>^Gzr/߁6@g	2.6E:g#Ǹ	^00T7<[I0xĐU=@={easY)8	hr?Et%*-r78{TCDftyG1SWOLYeS,GPͤZxT{q*ttr-J@lXtn`Yg2/[SBi"	A6B5P9z=CoLT
tlOHCUPu=l]1=/̗uއWwhR=Mj<G?kVjG{M{ ׭Px]z}!F3xV৛0YYW'8 _s
[ĭW>+uP x?xHhptc.U/g&'?Z8Fv폝Bb_}X!ѣxBqJv'u'BDmQH&&jh?=k orRJ!czNA`@꾤ہ%ͣ7ڊ*>y<z'Y]"[%tCyskT%JyTxh0ϒ ""Ϫr;R1p&>ȻםhBtm*93p.vcv:JKP"_{}75a9O^d2#Dp`$I9E`h`jW}Y<폴(){ޓ´I<깯[fCҒXLj[L\ڗSCŌw-蹎>V4v>`rSeŭ2&h/:$j^zk!Bk`Z1I#9pe1p	`k$	9;4jwKStWlD.z7qMQ]2ECd@v܃qujWwOkߑԚ4b|JS!Ն8
͵dBӲ=8z2D'R0]jߕԦvԮjQyn| >ʴ3HCZ	ozh@ sv`MsiƷYR#y5ʲ&7_5yl>$,̳M1}l{͝ԁ7N{g#Hi,$:xֳO/堧QT
o/ͼB+1VEwW\vKT6FbsceSkfyI<JĭC2]V|k5qq8T˞*>9gp[W7!]'WۭEfظaxFܭye+"<ھ"^%l?+1Ss̌Z&Jy`W˩<Mp=^׬W	ĭш0˫ӳ'-F@jͼc8kmTm@7UC"lL>Q2\53CUJM97Ol͏ZT[l4AjW2߀}T,{M=nQGvw-Ĺϔo_ s?\-l➺TONuǹY|+k];0g-7,SvΕ+bW/=Q!<t.y=F{[ۜzBC?Yt	Ev-K۔w]{٫;c]iTr=k֦$po]
*N|zgMR	ɚBC*_oP99\n̟l]ǿdt>FE}z{ W#&V8j9;+-jF@3)}|*2gگlҤ<vr
:6sxuǧCOvZ$-30||t:Třs%fΗsͱ-N鍺#P[c/X_{A}\ΕOx5rWQGX9JeqjEzv{WOݯJg&#Yadp)^RcU4%T	Wc6U`!PꠝZҗX9.RQUm6)(|Z}Ea+l010iQo[{BJמQ.ڂў:JLP=ٿsjoqȷۯ?ν˽{3+.!,HQStwmlӴo:'t_kw}\ke<Gt _w;~+/UnL|`2wNpxNW6=uDB閧
`=t:;5;"4<=?YOϼ?_<_;Tn+S9>e>i~l:4mÙ?>	:+m\'g=W[O;_'1t+_)%'[Zz{r_Gh,$3pd&,Vlgګ_Gz;ql>Yڜ$[Hv$ķΧ|irzb={
W|lwJptY>џΗ(B_B.P4#$`i&x{{s'0.)ޖ+~QSX,}ҕ2my`*#QB=Ғ$V>Z+K. 
D:fԺR|p@Ti<+xgӇ3AxK ~p9rS3ӧA0O2Vt_$]05-ݱVs{ݴm8Y%m.HBf7vhPIS1O~6J&<YlEyZډNq?}Wuc:;nn fi"?+Т[н}u:)ላs`֩V^%q#ZY|,mY1}WX7PSYyERN"L{dSOʧ
*N?\ Rv[\H2A'[*";xfѺC#$qٚvސlX_l,C[eT$3u{՜[gtn*]߈PwΞGgD5-9{lk6߸noI4TY׶NYY
Lqq^viag]?{).Smy*3ZnN4 '0,9S{;7MJQʖ󢦔_l#M|m6;N@,jO@]'?.8F-"t|Q
J`:-mgޱ!ϵ{zDր>zqu7<Cf`wg>7Wagq?-nvW?7:!d.ǢUX۫dwޠKo&T|.6Te]4y;=!o]Ux7twx̚OTWTmڠlLF?4LC(?cAy8=pfg;*6Ceo兎KuRѢwq!~@2p/1gi]Qޏjʛw$jt5*J.-}qʥJTMn鹿*1ϻJW[P4+dk;~ud7?p6"دnFOh&<:y$8(5go/,MR%AX骍?cnF`7Pj'3P]Uþ`/|x˓J|[]qSmجKVw5x}SQO0~ϯ8Q	%WJ]	[,'P{FmCwin"O3R5UXj.י-"Vly/~heE	")*N@4uY0[!/tO TB(ыU2UW8zN)jIA)Br2M*DsC)Ҕ{+z<FQ+$7L"h(%	B3⩉oZVU8ad|+x8SH,uVFxrVR'Yhʷ2YQyERhΌ?BYu1T]=!VbiQo-fwvZtҿ4n8}$LgToz?zwK8/'N&2{ 药⛐;x8BTpqɟ<x<ksF+rEk{SW)ҕ,	oi'v>"`M߯34w<؍@0wDif<Y5UƷa<"	ŷ9E*z1ŏ'r<0br~6t|~;?0^:;㧫eoyw<Q&fG%LF/޿?~ƽ*EoGEueHwnYlzqr:ځ*Az܈Cco'"
\$s1+(	,GYObLE Q"W"Kb +P
QN+b)\A(ί'Q܁=31>Vz_F2}0C\^e~y{2yQ3RJ*	/Y;,UOLCm U}ulVuOb@$t _{q-NO{w9=\ "^}VG{ ,Jn[ J>jM61L\ն0Le < {-<0 (o[x-+y|6 ݥfO?Rd.N-[p!̻-U$=+6;Yw݊B+6Ibr;Gb U_' SLҧ; X@nӧdUE[Ԕl.FL[l\-a H2%n }wfblݸx25@;.V%J8y*X0_mrK n) h[NEHnK-{­|7[ܿm$gߐwvsN+֯R{Z5 ҞYJRa٦ȸ4VKxa&x6]q'D$7U)5@<OO!=Yq-h%B*3=XV;/x㚗	ڐs*mo@H.:*uQHyꞞOßɧ,NqYd$,<8%y^ H|j(枌~B<cuE%K;1-p/V##d!@9X+`ERS2̋R!D֋
FAȃ "z
]SD­YP(`zI:OR
-A$"bmHk	
2νE%s[`w؃Ud9Dk4 qb`E7afL5GQ/5D
KaE1r0"D|
Amr7rDa9ޙyU{\{5m #%,MR:81 /Z#cXߝy`	PЊ{yo,-@RYDPMտڬ<8:3ޞz`#0"ʪloF{#2p3֘u5)O1g5vF	jR̀Y
JCW=@N(.V3PrU.%b>2TpGUƀOÝOɇ:!O>^>J!>ĿX.wj<#+@eHzqG`	Xs~PK`&:{`yOD>,y{'.h]3%V>;/:Jj<fyu$
#@m)2``Ph͊ye6/FO`ӏJ17
=ދ9g$	s:: ;*}mxh(i+ڙd&޹2pz-cg=X;=mϛL"KrL{iڌpK{a4'I)oRURQ(ɤÜf̬GS=lx\Ju(FY$Rb`,CJ|W4zxXg.J:Z\)ڃ`	o)d.CYBVkwmn ^LgɇԵ';NzOQ`2ccT]iU`M'oOtki:<ٹ'G}5 ŧG5څ`upZ]x+w&AeHS!ew";u62p8FjS:|H-]{]Biw;EML >/䠢,=_`>
^r,J3P~{kh/bU@)/3Ͽ~>p8"^#|K%3L`%t/B br,`ˍC	B!8ʾZ1.S lv	3e/,# Cف *.gN&Ut*KrĒ%	΢`Kw[wkO a&iNm'$׳6=c:eu,trtwm5WOC=3Ί`h|UH8ل23óFhcu&0kޥ`UX@:+RP,]ޖ,

$Q\kN#TJ24Ј"
,~{
qj40
AKz,Zv"*hxBʫ+<Y$^PPZғx"	V<?/"h&,`JW
D%WB-IE%y&r+qQ%$.!-D*\,,gX"j|4f(P SC	<|f"X`E .91+r.q8sIAot5΋εOiΆtn8hB4TD&LA3i%ގ"Z#*)	*QkA03EB֤n	,4 i!U'#:iRI~fVuL9JeR
M4M0oXeʇW1h8aeqPUZPu{ t]h`i ǟ֌y#U
UB:e
ߟ_~Hfι;ůYpp{>bQgVAi|!YdWn=۬:T8RR[OJqC(.;ɝ;\xp·Rr~'8IZ؇Ӂ%Cx 6L` KNb0aM5eB0owQ>Q+  ~ 33xMA0`%PX}4,oiޑH$HuZܳ족~HUPhDZC'jU܅یph<	"ƪBK2$RUVUKn[2CJVց[wVjiKv*&$4X1Miϭܖ~Y?[qh_ ]/
 cT2xKtl^zrsn#Q[:O,Mb`${*WemQi(4QZ:#U>{C\8ƶxY{oRX _R\[GXk82 !-#ຸ銫"^&?ӱۍ
B&"qxP Ry]%VeF'ѩxou~MFx?尳fc_Pxgc4XRE2JDC}ݯ5ÕwCg'^aց!` C%K	V=1}s&1@&K[N%(FE]7ӷ7s1JOV3  =|$wW^/ǘjyP7Rn,2sXO!6(6eӵ>vOxn0Mbye;-R"c[q߁$@SIǋO'xxt)gBř=,WOfȘ1qqՑ	BQ0*>SI!*3ZZKۻ%h{råc!Vs*dG`s
ܢ4\ !ln}V$ޞx?|x<BHtŧNo8{[k	M>8C?JSas}US抭|wo5L ib Z,C3!wY.|c6!Y5r7Ǵ]#?|cYB0D.a LLxCֺh4]AGNP?
P%/@z/M\]aC~(TeaJ٣QrhJߔ崊`godzUXc?嘢fK;t/ɑ bXi`am/u d~j}qY|I׌Ei4+5А&w2La}BPF[/]ImoAgooOFȺ0$Mg}(`J7Gh-j^HIKԻ[zVJ'-N`ʢ&LhER%mC ՓoϕC	2aX|	١8:ЉH"**0tg++E[Q"pH#^A1UPl?%ؓ|<&zFu.!Y@<0Cw_v[WZUhj7~N}!Aâ͇݀Vec'midy<o1nUOq,W/9DB-,u9xJ޽=Dȃ]a\,7G
/eea^p%KQSٽy@$ywZnc¿;+[2f.1mZdF|jX4TZ|cT2( M00[ꠚ3sK\ Ta|iKhb0cuR'a_|Y,1"RߛPȾfw[URh 5RZ8r:)Ŏxag	YajQ c?!ShK#cpk|׌?auB7lӂY-Fg5xlvik6ND }Tʞ	;$ƄZ
H)92c z`8n*b]z)=T%F}t{xӝ0b2d䬻Mv?5j|rS!mxuMfVU]]mW&nV?7ۊÌ[nrV~k<}W*V3e]<յ;sŒ!@\ub)M߭U+@:<ȻZYUH}èbI=nZ8ZS{$>phF]d`ZAkCdTt[BD7|UjV?S7e7(Uj~$5:Oj~lu46hiW{>0Td?BŷQ*CgKQ		AڄLQ;R$ON]&@J\Ac`tjǡ+ ;$VҟODn'EKUYWb.=P7M0e}~_>Q
O]guLnz6)Q֏6~hlM>X؝@B\7lRmfkӏF(}(l /He_0nכGȳFҾ?@LtHoJ~K/	U%~#}fU~<{ʓ
*Cc_IqEu{C}avH~|P̌'홙M+`o+O=u^VgQ<Zz}d^}  /G~0X-yN;Zoujr6֊jC`Uc#R]䧘w]e
'V	;' FuVa'ue[<Re{(~v*gUu͑n=4)Kv-߀CU5[=гWTd'"GrDyB'oHWU.lˆ6^kAĔ_\Qe1=vg5`dT~2i uxWo6xn}Ir`;m: (В!R^"ÏAtB[}0:3%@xҬG!~zsM8r/Htq<bЋD&j$Ⱶ%$i˓Z3xxNb憿>7bIo?!}xk}I.YԮ<s<x޷ʴ[Mb<W[CײzB<cD,6TLp	j`V%mIE	e.B*U]әQ.؅ӹxr"u {_}`2]{cr>Eo,poWW*b-m'aߴ ր_Jb>|>_Jv8ݩz61@ &k$Ekɫ7˼Q&$LB*)%
щe8O޺b˽\ӲOi>t&lhVN,v<q`YF>yG{"WA*Ti7 u)y<?u@qK ΋D@10faؘҝL;NiȌpn<UcQsh#m.)r)Ҁ
	ka!R/\I /ۨFbV8tUeBG| ME:\NE{
8V(8`@ObuF=]c&p7b1ͅ2C{lፈ7sw!sduv.iv
1-fMWs#k^ѹH%۾%SsS(з{ЦԲsanRM"&tm)ֆ}L߀Q9\tuQ[\,UHiWnMM4g,Vl-[|<h{n< 
ڽϖTSeIk1#Y k\	S[RbRf19bze.Q4͘ZFVA΅'em8c!DloT-KU WP0Cq3, j션\{Ft_跳r5I|CmȘn*eVFK#᝛NSmLWHŢJgJǥb?	,2%?:vď?jxsw=ߌ+|N`LZ@K;7E,Fء9}mo3$6쾯}o7nE\x0uGoen#{JDaqoSų{M=.*NL }B$IL8|]{pû8	r6_t}>hl c?v$fI@<[p<q"~IYKk>{C1u&eGUk}3`5qT!z5l.chpMƶW>h.A$Gn@c9xY;0pcJDiRl]&yr'd,NrbG>8Fy
ob>Vޏ?$ iP˺u2`us%i)	u<Iz$s3L:ME"e`< !0XM\6x6o"9pWvvKϱqjz*6v»OӁ7w$qp2"<ej?/mlTHޜO/rDtlr7ayjLt0<(\2rMyۮBndrSl)Etfy('"l]XR:OPDwr"êX?ww'\LL|ie_%hܙD9Ffd:Pcb0]Lki+ r AnZZFdQ+bZPF+gʕdTyRΐl%՛$!׿ B2w,7/"Igq)`"%|
d;Lu1	UV 4(IP9!*j].9B_gv/Ic&Q+:TQ/,IER#g{~"h,TI
j\?L_h_Di[)Ȝx.y"t:~qTۀ9Wmp2/%̦t/>]sS! L1ֲESGӎڡCN_褫Q8	Z<gR~cog&Td&Bү!؛LF#vܻq88!DGdDH1vg&N;!a ϺHfbU>*TH	$֕*sqJTExfL13D*SՑ.fBբQ><V}y!]%w.(yT/Syb[v HU99uY\*	h_܎rǩ_1=7u3ӽK@4 $sDĢ8l̲]zRͷWJs*Hҕ2u4&eWl.Rt 0|<+B:@)gYTIƒ2
&cYei<%9? *U0~mZ:xӱ3!=d$")k6U8&l|h:Rq;eE&7>'Bw_0tn"V<y 6C(7ZvU|TxR<LV-waٮl//aDRS&P^>P"hBSZd-T,)yih(Te>4pZ
*㑍o}s}Σhklm2g漫[8S7:0ԯ(	۽=PZw.ӳ>*`1x9f*-	oMa~}~|}cj0ion0ף)>eȣvEm/ϥ˨Mn*Pťm_v=c;E
C?#%X}ִ܈6NDr<8ճu-jX!NêH+a£O4	_gсnf|qx1{t:mp~y}޿̔Xn8-91J^DFf!R+΃f[H 4u0R,8VUab$=:J>	(Zj%7F"*-߭:`Ǒ@M2v^m7unt3/Ya9N3zgNTQGM^ 8yzͬ.zF^!x)%f<%5lO^%Tz|yo_<Ac/t@_:~^RQQ}GZFCX?
g
[,Uk}ۼ[8
(ce1͛B+z*x/|´Խ_V=Q&*YRfoKStƁ;h?ӨU)>	wO<=@9)@g@ai
Rwv_@ݚw_|I7A/g$ fD'ǥ$ėa=+d8N""K> Q4)2^9$G6:
\AGD(J;䒭x52r-**LOkrO֡g0rh.UeQ"T	FLJ願XշҔ
ߺe-lvW=5_&!n</kT}B/LL!SO^ۿxWo8~篰RT=B	(rǪ^"LoNZ~c;		tU%||3\ǐ0/nG`JӍKی=sߟ|5K\^1Q@>QQ(SM
B" 7[
O=.b 9MUޣ'FW>nrtB^ԎF@1ytY r2B@m8iyz5?5I?MM Dv^NR+H@v:e`x6:NWS۹`1pMI^TD49T>M9<zJ[q#4]&</fл$JA$ ? mGwԀ1(WݥTc =4&BrqLЇ|GPBd)xwSMNk!R	BQ"Aq$ڳuI$wN&a/ȦkfԤs+WWI %mq,Gp6-~`/y6~Mrw)E/d(v0}UXOvm ??13_IXu'-㎢/2ɑZi"]FîG``B7o~\4vmx3'@%i?+ gjg
lvj#@Mz뇆O=_ٿ>FHXk*i~ڤp|QG,NۉKܹva+(!f+􈻇#̄C^[Z0rJ-Xt>wJ=QB-oF-=fO/QbSY}s{u)Ymp@߱wcsx-|?CwyQe}#ێ=11EfϾ=1}BdI͹t+QN?{L5 mVmeF!ٮՠ|j|i+n]<ߌ^=S"QMM;egK^|8f=95󓏧drx=r7K*c9^KEKT,EH*NqCfChgY_kݓ\ `>!ۛ޲\F|8o#:߇2HLf"Le$zLi$?Y%a7*|k-8@rr/"/H.摔"]ɺHBy/ndCpx~WCPS@+' )ɝIp{ Rj	z	v92U@Uu5B B?w~r3E0u4]f	5W OpW1e8WnV_̏ZPcTMX.ćРSvtMSz\U@ǒB u9MDh.X9qhb zVX0dMl(`((g
HY87aDfj-ћ֠-:Czs>{!ޫ7ѫH@A7IEswV_!DuӆN{y}'^B^$ԧihN_AIeTQ s[Qחa8ȽN| /ڽQ:F`h Uۥ[0<iHwP^v\`.Zߵa ͫ6uzHNG~s)utHA.ШOpì.
F`vYpClooT*$ESƓ|. 'lWO`dN
e?AKEgC\'ҋU/nOD."7L@!7c=Ɨ.y{PRRk>?WDN|"Hyr Y֢Gtׯ۷M.D`%Wk5	;8AhM(D
=acGߵ{`&?\@ozGX`1BxKx3Uf$UV1.$ϏZQ?~қ߇`IH,!Ի&
ª49_֘ N0߁NvI	N|$S !up.B)wAu9]x+US>vɐ]rg%Ďl\bZ,^O`	P/F;i
ubSF6YOj"[?
T6%^/f^q&ZSE?پ &5pQC(NG5qB"ڏLԞljԉ[EDD.n^/UGWîZ?@2ш88YK'ϟǡ<]@e@lU.d T:QqR(A`C2"\PC~G"AH
jXS<K^8i]vU]hVGqr"bqDu#=O}tP Ёs#$o̎VוC/Ƕ7$'JN,jwv*U$oL+Z<a"(@l<J5es
?4`]voȢ8h&T/Nfq/ :QQZ#2dEC#/6A`}ٿ|'g	,Phy&oz$(>B/a=$=\ŋY#rKQ-
E^" c@zF#KC4HHM!2y#=?"SM`4(53CQ!#"RwUjP!Y^ur~.ݱ_ j-UPw!at_yΫFT7+E⥑\nZ3բ
-Y-O\q?,/Hk\JA^ƾ\onH{yWk#g ZLhusAU&R[Q d,(#^z+[|BNeL&Nd0)~ }TقP1螸Bd,dE\3O3XPR\PE#h*p8e q<вK=s$|p@p?gͼϝ'qK])hʍ+][HWLCuZ̀w}JHb	#1#%*WVj ܖxk	<3׮pvOlGQ5f&rpUr7`',y"h"c&)K}	č,**hq[b^,{eXHq@cXo>@HD"$Pa],r56FfC^*-%`m*d=mMS0ImNaHPJ}dE{^c#1(zRM0DaŪ!Z@*r󱶏(F :n3@өEC{`+Ok]3Ur&0Agqܻh|9lew=Opd\inLهC4~1Q \J/Fҕt[>gݧL?%JF֬f쿨5 s$ΖUOcVQZAsUVcr 40WD}pqE'+=_1V`2fదu&['oI,d7~ީaCf:a oa@/*v}$L aũU4QH\ ;nCMe[oҢ(L2\`qdx^3P%(RaT&6ZqaզM~§Y]M  l[9"jS0
2HGWF$+S]
vDTxA.7FƮL6b 8qm
\zAk[(8I$h_MM&ar ZMYTJL8h;~&VĪ`dրXgM&ˉebfeL|]V=/mckV=VUι`^q"Z.n;"ǔ*Ї!26vb	7Voie4dc2*	sd8cLHnTэ5tG3UG4Y|"oǼ'R1&K ,Qq"u;nw~EK*Kqퟶ0a|>Ѻ+Rcw,Y5	GL蚥7 ^RU!t|R@EUlV7:e\8:HauE!C(^
3Z_XI%c;A>9E2ZX849%x]A5Zuz\Q*"Cm/$U;ѻnQ mjdV6װ%gjmp7LŽ]/a}2Y"	1_gka􏮣U_~m8WFU!։E&.g?X]̧֞ϠR8D4#JۛDgeneN3Ev8[03J2ycm&NIDňXQ82VƗS!Q%MH3KF(E0-R.,KǖR@:S Rab.Pf1WJI(0V9d2H,QoS*750b\ƅװUyƙ,utu5I#ޠ[H9{d{Ha Wkt%S^cNߩ);oBʒ+T_SLn&jSɏ	m|bG'2,pdF8>uQ

eyjK)وsu#K'S:H9lt|ac;>~#
H-M\姇r~fM7QLJʵtLVs=ah ZcvWJ5d
ԚC E!`@WbNbuy]bF5±g5+qW?b6Ǒhb(RgvG$ң96RPjm%UJg"eAfLQ%e'f Z?"<݁`$U֗8fk
cC?'Y5;T	[~Љ:a<bL0w:T(,ٳ_3*l܅0j]G46K1q2f;jc:_	[-zA/ ةNS<sxդO_'o!R[LZESfjJ#F<u&	V<BvDCFc&5|=hδ)V5mhH	1F5 D)oγp~(oLܔ8i,EX<B?`
sH5.4O4W]^@Vtsae+9jBѼž05Sihc/R.V.9etZ5u(.|~Gg~Y_9*8ɱK8T 8#J!/kҮb9e`mSLڜ3)36P=,,lRm ΁-b3 Kcl3hU< 5l2(Ó, ~D,@٨)g,{looJO<#D|Lm`
DJ$$HjD2а;)E?`j*c_I-j1ƧE &i.䭌9-,}̿%!ЄV/btޭPFӂg3{`~rf7,KEH<0ﲐ:%@ʬ-̩&jy@",ӄk+ϟyF{x	u2^,8{fdT>`;lJBZ)M0'x΁8kN7mdI0,?W=1BFこmbN^9>Y?6*:.{l8݅șm(t8TMλ!>`Yt@G-uc$8~EE,(P/ZO:vaЎÝHCK0BaQr?i?c$b"ūN`=hp6	@̅ f
<x4<Si[EުE(ܮ2vP&T8ZGUV0>0o2
xHK) v,7QxZ4`RnPdb,<6uSuBP}ƥOW-:	ruCu0K4v{N#&ï/P1=AVL~B{* ;$*n`f@ylc,-c>[w8h2O
] <vS&7
i*Ӏ%)+mD<15R;/%"bPURʮ&L׺ˊZ>6fBb	*~=!ec֙pT)ʪelQǠM@ڨ#iK:hHoq<!yWIQғU;a*bd?rW-Jt`۷>DݏƗVѲ^BB{KG|*C#^PmB1-_-o}X;Mu̄QQxIX}*qZ=V0;Ginlk?qyZހF^rQ1%:?7^GU&3>h/9M@({i%lj"l)⸬5q
}SO"P*T:ipsf}V*y%_w+qzVLJbϽ؁)vRyw8ۮ^ص=ǠֿzOn6;;j[}
V(e-J-YkwNo!`h5q~crolZ"tqK2+׿\M
W*jY	ATYl!^guL̷֖WVS=*Q&*O$Z[Q?՝;MNPK;Fql&@>ƃe;9РC4c
 {Md!WJ};Lo[:Mձ馚\4ď@;/)sYAW&9"GXknӲ+V" רR|1?`bpM-mmUjà$SD;)pQc#/[$N	2>%cԡ4k@}U^P|l8!o'$aa|9o/uзKgseO)_m&1y'iyߖ?:B,n	漨-=#f@a"'>n{cXb3"qd	.OfFMjڔɦ?/qIoިzw'|}{\0GS5pB͹p&hkd_F|22K{׺\tPW8(%BK?nPir3ўpV=#wMFDX7΀;?EY#<QUoAdeL3y(k<l{*BRTS#Vda*HcaQQ#;\}}>]U7-K1hԆNRut,S;c[*+4:t-&EޒڧLbbо?lKszܶMHJbi'NTdT)cc3Y1F<Y6uNLXXWo4ܳ37t_8Ea^$z,|r[>Wp;]پy+<<7Qwhg"~ rA'UkNYLvΘﶸt9hR6A?拾qM&Ff{}:<];){  ,<RkŜğ0y5~熲=ͮ{߾_u_i`H[*Dv-UM 7+|! ojL&^Y_6,={o76G>Yl;\Zב&}_?qWNlȳ.?PRV̧J|aR|&'h+ǘ5>}m־(ZqNk

V=.AWoxNnaZN0Xn9ŻGGr	#:vH	et {24s?~hqǲϑ ƚxٗoG)4Nu**0MgOCLT_W\Wsdn_[t%LTbV.c9}0aҠ 4\㭿L	k󱵮Y9GPZ.m {vWPf/VfBibt:0WX6K$TFGR;%cɟ|huyHK35Mwt~mǝnl7P6"B*ܚ{iԤK3U\(%4̘f34\:*Ew0u%g:*}o	MߧFQ'f螊T	y8IcZiծ͂IĈd
|g<|DѶA]ޮĘha$/Jj9->w|C"T>`rYC,.hQZ6;ͻSG܏En3]|j("o4Gs<pܣڝm{d{+{vVo߹q(^_;;P tRɩ8нzSpdir_b`-r e!cԌڒuCھex
 }ۭ{8hl
CH)+m'sx쑷F_֒)&PƺϞϞGB@InA6~cl/$;ҫr vuExAHT<5x^1z+Exx=~Nsk>OX>{Zek~tWHhQrq:"0?nc5=)Ks&eүrgYSԸ-P,3 3a`QL+jX4Q-SF\L15fx3_WDh3D
!0S#_wv',w(!Bs]_ԳUa?ꤥڊi1&Ǧ~}܋.v"tf~WNAnL3=lnϴ wU2W}_?nܾ@Cro̮#K>try=]ʇm@fA*lu?[c4;2,o\"Es[45~G^pJ$}Es1WSRemxzso5&T*,RgxWQOF~ϯq+W$8q<&[or~6AKU"z曙ofggOOZ-7]
DsYSsIlf+ks9=/MdP(]2Q9m-*+.梾]Z@AϬPnI0T'X΁dtaעaΔ $:[-ࡰlP4t i\T@Ih\, aUOQTaǏaܕA(m:W.jV*32LLgbEtk2,D! N-\`cz!bUW0,ZA3,,	G*sš6)LKYS񆓲|NvɖA3([쉱(	|,u~cACh^yOAB8>x	th$b/L)^ӯAiIPQLx2
|,ao4j4
A
4r6[Oc?]  HC  M8zӑdOć} A8aazF;%Co4r)M0a4Xw9k7+7>N1P$[[
B(K(d~zQx"8E	3q](E 1	l}oO:wrYPn¨\N?ta]UOPk
*w*f)P,Bl\mktX2과t7#Y9Lgf)sO^o=LdwG)Vt1Ue?~L뒆LD>r%/^PC/r%ƭ>zW5^72V;k@DիM(coAsK+ǀpVn/ejo'2_'qy#܇ݜ'΁֑dZOi:8{K<ǬW8x`76Oκ^쉎ҹ6^-aڐx<XT۔	T?.Ew4Rĝ9)^-潽Z*f+otQib%<^ʹ<bKTn$%O^;U{+ȪRv+|z^#Dp3w/X6RῦBpffF6f rʘ|y֕!?Z+TA.UGZ--v)n)΅ZMu7'Xޕ_
|wSyFNzf-h7}za~:V6M/xuRMO0WBD\i9 Aح8o<Y[rƫxQg[>1o{~uzd!-#0F^d]g3#<؆Ī,ۇUiM}߬n&#a8"R('pԩ'pB`K!E:De鍸Gz"1]zL1<..;Y\5"s=%R(0l(HDQ̣	ܰ8Hf:v	Gh
X#cYWWu1Ø퓜Pq;<xTDŦȀձ}UkK/(dSH~~ʐl*h_$~Bȍ1Sɤhfe*磩D[CpCU]cسo3|UVCxVms6_%32ᮙŗClƘ#Ֆ\K&M{﷒)jg_IV>\9|tɒ߰l	%?'Ăi(iaDNBs)T{<{%*X`/ǩ[GDs%3P	^XJ+&-U@H[HWP)LAK(JD	Ħ,g!hAjPA?1D(@o_Qމ?eVդHKYKSnQ+P$C#KPFL' FK4Ow\Vpa?HMT9)1yrZXXV"K_%)|^83Mנo\[Ծe^JدhfimXQRN22'vm||(vVo4⭩YP]Z;^JawtDChtzZ%t5]~E`dfm%%:OHqCJ3ww`W-Dave/ m2fWIųCp)<4^3#
yFV3Q
R~c=3oxHtTSl37@C/ZK?A#Zs`bͧV9>
MXSr1?yB4rqTZg8?02ުwGǀj8T;{;"&,TG5įh.BR>+,L,SZ{~4	ǕDwB,䤆q;'XB{k9Wt's^0+P4KCHzG3,S}k;Y)K05Ms<&RfQ,WhDΣ6w6HǱgM}/t80M7^tn_=;,x]msH_z8[dV̝*-1^l)_(E18[tHSJ*6<sN~޿7ȾWosgzg,k#ujmUd_(߽y~Z<de[#+_or[+HS#3V[zeT9h>iQ!Z-mf,
,Rò,UIce%Le4.E!p6:]nl2~d}TEZBbVB
@<2-b=d O%$Ex{e<N=>}dYge[pWV!A(Fd 轏#=̭Xc$ȮbSI[}J\i2.l"á(יHZ)_LY]y^ވByvs_B2Mk!Y$T1/D*2#ᄆfqaŕqDSG Ӌ0Ͼ2X
)wrc&י9F\l`X`M9r\'Z\c'@if9V욁ǁCNؠ98 ClƼb7nSuA3d"p&Șrfpq?srMg&+m	DBD6>Nx@2L+r'^W uBve|ve:@X-$r_@ ߅XG63]OMM1.eͻ-j/%r/Rl{OUi:}m.Yw6]_&JnXv	O~w뛟Rhw_Vj#o.1-/땸Z7,> G}_}n^@ycnÀb9'eQUڙ'I7	<ViQlnJVeʩ{IFrf|H%Qƿ޼y*EXϟ|ܹe<[	V[g./5W=O(<ș1I,$:F/kUzs'5״,jm"BT@ 3oL%	`Lk0}
z=S \]5QXK ;ua8Ի.@2=[ 1u\@alJP
-M*B;$ݐ^k%j$4Na1%>+=\(NgKgKƦ1g<b(WӚj%:XDɱ}uCBK`:QDA!
P$$
cs=cPJ=WP,PגƎ%
càWn$
cB^0hΔhxE7Sboՠ
N@b:)jGXjʷ$
ݠl؀sfQ CoU)w 	KB-@)BQЧ p>%t^F(+P:̏skT%NiIFp_;w~TnX0v^">#": +,P*6}߇%9-Q	LoW(	 !ܐT,0 уD!ș<֗~4шQ-]{R)yoJm]?JVyA^0M;.P֧Z@Z{qҌ~5Hs ͳv@\^hU>ZQV!(3`% (?\u=J+h><fઢA}J'tw0L&PPz`u'5TC\裕ju.WWp W];_hHk{2nSeO1BX\	BeQ#+Sukt (-NQz58'v(bJɭV(Xeiv܁:PJbC3-2cq ("5U	!<u8Aj7,hj?` p<'rLס>AQ2Q"U5|RHEmɱE+/T)#s	kl=Ppf~Rot]I',q,@5K<(vAclj&RWpU#Gr%.3ꗭkԱpY({j5
eGII|sn50{}YP(5
e5
e_2Zq| l]l`*i?|wkh`>֛#KTh9];`G'E	S8l40oj0.8܃Hn)<&yW@;ɪQ({n
`(&"67ـkʿu<t)=)sR0r	ۿtkb0&`xPQx(cP5,/<o?pxDDԜ7WP7X$]gA ƶt<]kJwGvN97L\GuK;vz
CyYqGuN1jcap45tx~菺ܰ txl$4~<$); ]aOFS\Qc!BsMLkc9xmJJ,ǟ f8lZ%pbhV( K}K\<19>O,Hl&y	BVZa8dnd(gH6xBCiAX`IdK=RMZ	P̱.LF$7 cJJ,TAPV5VxQdz⛶xn+y,
-tJ1`E<̠)iK[ٌᬎ u(|&Tiԡ?Q/Kf5!c,Y1#R>[>$0(-~i wқq=A)~bX׌s'5AULk&A%PJ(Uk+ AY2"iӳRk3 F/]!q4{,6Soyje"?XIАJ%p"L.>́FUJPyROڲ1@M9pP.kPDߓܦ$(rQcXktezòO+3°ꐡWG&J#3a!e65[ȟ3VS{i눢G*9}e}?mlh_<"W+ zvOIׁq)6jK&5v䁫p걕fEJvM/K6HW&٦*,HAAuǎȵ9N#/hQpUilBǟJ=7Nty>.dY)n2	D#^fa$<!̸UL3,$<Oȵk>'H
ȈB,,6=ާՅ	;ݦUPS8HF OZEy?f!^¹ͫfnr%k̃ٱ2t1
J[M26/I%ldW*-KV}$.yrP-t|o4(zB	y]{dJ|,O޼e;/od55}W{&q3'	Hmrtج"uY\S9S[nq
0@=P0>[#,5&#.[L[ExIJpz	(YD{`BHj9IspbmT@
M>w͓^'ZxVzW,h8nc5wP50KߪsCkΟc5O?i	tGy?\*ƟqµG`,[e	9ʬ;H2{Ed2
%Mz<pd:ƎU4wTa	jXҴg%k3%eɘ։OJkO6E؄vc%"N\vT"XP|?݁*t&HBf9!gZe*}"4iğ!KFlz<&Vb\1שPM1<?5=NDI	_33a-/̊%+Gy~j$[33`"ym("FX79h~g,pӞS@f"t@`f0'OxvV̀և<mLdψQ}<bR28 JKm}~ȟJcՙ8J|)ͲJjdWcYoGjw/}<I+(F^++IP_KtX!//6BӯnUou;LԼ۷oߍᷧD0wӢor̾<~l1|?;wCݟ^Wa.^'q]|m}k} 	^~Wbz38Nƾ֋MUbfw4qlPwCvac@@u;\H8nxw5 OߍGU#n.XbۯZ֪G]?m:zҰ*ݠN⅂ut2#^A
9QTѯmP3ؔʁɂn_b3WcGu͊sl ImFl=7U⛲PxT]o0}Ri~HcSX& 	"܀Gb#,dUP{9S}/d0rhHXx@:"=(n3ꅑkQS;!Xlx ULLD.Aشv`VtX,@mJ^AB	%v5LL,	Z\*7L%a:U:2ƻRJC)$
5scPkwL,m%M#k~}6E&Tk^B҅H%%Έ>QT`#䲩ʹqt?smjD:(vzG'ې띗?<YǦ4t}\K,}>6veޗvj(Ax~9dM6?aUf	B+4xq`5%2Y?94,e"kD\G6Z|n; Ea>yF=qx=s3ʺ<'"+Z[K3fm]uweǽK\,9I_{\%	  @~%˻";Um6fg	˫k^ap6˳H/VU^//iYyҒAU~qǮ8xf,d븸mV -yQB,ͮXfVR_Vq	,YH0+2 E;vsf 3Un:_U%f`Pi6_%	Q5" OpW%mE/-Wn#$-{g<Æ0/|>G )mp:[!0A1:_Cr]:,Ɂ|/@|"a*Vȉ"42Y^lYT^0.)$IYK0˼~A+dr;G?Gl;w`z<:21o%߰?Gmٸ? јNN}<NΏW4dp:	֧qt_N7mr0dvYw<Ocvv>>M@/Q?vc67wON9c<A,{7);>}qz')1QOG hL5%i0FۛFCOo46w<Dz0Yw< q^GmԅF#M})NTo0:wO ;;;v3)EԹ޵K|wQUĳwO9VZиy(u_EqɣFLQU(E) )CEtVU:WdVbXΪ%*::8w=Jot"{x)^Ǚ':?Y/.h[L CSXAe]YߋN*`ժ}Y7~S3wt}Wq*)1m=| Na:+*.%Y*ę!.9F*_BtVrLox^eR
1T*"]*}9J|Bm_zb	CQ/KSZN	'>ߝg*Kݩ~wMT˦w$ξY0!~';CJ@MZNd@!X. (si2\+Iijہ>uo 2{r9|+ R]	3+^E6&m+[2J4egmǲ`R`UnCJǀ1jGk	Ypw-y^?m-iB@KtG+F'3Zpi)fA	8@BD̓\zB/ia
(t:C(lTP2(R [Rx8El&@fMxX`
H6%>2V	*x{褻ڊQ,)`=>{W8aMED͊kc5Z+V1	Ҭx  긮g\mѧl pK.Fg3ϭ,@] 
cﴽP'w|!ji]Qܶ2Immx%zk-NsP3ͩ2
OZ{v>|`gyvW%Ӄi;M(EF>AۦbB*b9*=X4hIG, *jD2@&hԒ-:RACc<U/
DAXօLnt}"~.V`Y@(Xy5 .A_,ޞyPY1efV	PPR_tޝp`MPnд^-]MfT!gw l~p$?a 0}VkV[XLlw,ʖX'(YVI
DAkkɡiBKyJPV	:L.ad%Y4yaAh&T"T;U 2*q,[0GRJBK2.KAy2ѱ%%="&?ORZ9:`)0KI#!ft	<\$=N:;P,4$?`%hЭLJ/h	Ib5QDNi)qBdoq!fjq9`h=	T\-!<&b$L<in2+k衇n$ӟKeB)I\K;Cm^FڸIN_Wh]AЛ!s=6T.$1%VG/Щ3ոU{Ȉq}ή\'Fol8Cv{'j@ `XR-oⶱ[ MZM!v|>xg%ǉ\y-*Uj&fiZYH Z]K$ĺj.-b{S$DQ!QA5[˪h
Mx,pQ~Ж*$`d)!`sv
X=%2`u[I:˸s9nӊҝ#,}Ly@p%jGnpH-񲌋-)U*q*yI [q<{	xݒ=yaPbK%q(GM oWO-mF^;-:E"LG-w`<1VI@X,M~g9zb(i9%*vߢgyۧF(&#b]1
ftv-lkĿ>:XޗC0D `*
Wdۄ gEzD&lSH/Z
QI#B?4WNyu|䐈n}?V0 7淽<xƅb{	fpYc}ϢRSN2!0:.nߍn@ 
~7r(J"puAc(j%B#gԥ"i%l2Ɂdmj+YJ<*dڞYaEe>L\lz9(Czmd{t>Nqo	C!+ᔎ	ZmZ)6+5*-MAI8RXCeO.,ZC+-YX bjb3k<-!>s5jk&,V6Xޟҧ	Ϯk\}?e_Q	6wvnz;޴rg+F:q#aWrxxHB?WKn(A<SVp㪬+{r%&I?i&҈j4o(_<!>@+%i]!G@No	XR
\!JQ`գNrO"r((pvĀ%>t )Y<ïtJ*b3SD ?ɓA&T`'Swj"f("69"p^4.R/^]]W/LpjL)qTu߶!$hGcFa~p1,ɯIMuBJmSbbך X3|:O~թf<oB&-IZ'W
`eyoyD;C7Vx9'3;Lq(S?zY_p4܏saQ:H`\S"XGO+>Ӥ;\FQKWD׉ZF	:0uPtW{ C?.$\}ntnY0R8ʞOAО>oĖԑ=_2{<d1ZIFMr!nY| B/t܈̰tOa#ƴK:m֛@@kOQIf7A19i.!M=wY7u7D[ѾM;\rM-\ BL~ҲTCh\Uh7v:#%[fZdj`ǖh>O<O0^ +ʖiG=Jca~gF}i5U
MCPhMr&O?n՘2$e</LNDHӎ+C_6t:{~Xύ
?§EXeg3=I]	+B*o1A3<<ϐcR`Kk)&C&>Ϻ 4c"#yXL<m(c"ѽ#@M<]bcv2!.T">>2N.?W%-HK	n%5F{U{eK\ڰuѣ5ag5ڒ!*XIm.#ux/U.ZNj/}D.be:`Hgk<Ect;@cx>
<Jam\:[.SesԹ"!n4fr5 b-zr7[3֘.!]NU;gʵxP?&&^1U~r3G4.oe@p?֍7lrl2??W=JkTqij4)UI)l9)fsw \}8Kg 	Geb{B-+ru\F\]ykϮj ıU`8½T<9-#'|^SRWx%IZm90W\
#iJ@EDA)7<-a!8+]/ڍP^
9}I	-gM.<8(`CԼ:Q[ahMG
\85Q(@-oC @WPHk"L+wd*&;&ݺo)h
tb!Ko-C@w<Vgcm 7?Κ򐈹Ym&q\&\GC#6.}[gƆ@8X[o̸	I"sUfF"VrGh؏^{Ezhoo4~|ѕG+Z6;8Y2N(;,*VcjDQ6}}^P֟@BioCO:ռC&pHj&6
fD(1"tڥ$QM7UxTlCp(ڡT1~\9OĘv5S1^*@'D7!Nh'"-'1>+M-vlXYtWVhե ö*Yxdl-/-n13vd6畘sdKѦQhm9&iV#ٟj(;-GeIʚ7AD g;CC;j[^6cQ}Ȳ`|d5i~h`?ԣ]-5ߡY!C"fK<qi4<?9iCX6CyIOtNrFXk]e/VgZ4%XSFF	^HۏZܨ{6 	<zih&z5E!ށ{d[ejGGoZ7T{U=23CTbEFe؟Lר;y3E/ïo\5k*ԈiU(a"33[O.3+ǽ8W']k:Z9^Rŭ&]OU١!oP{cWhBa֊1]De`lP2 YbCvU$eO$4ǻU4?b>EyaAn
o&[,Kzz\A-Y]*s[[@hp+2Q#=MXq=0vPmd"/K9pj!d- }ٌW`񒝏OD3aQ [^w' LĵBV/&ZhҶUٖ
`^F~wmi>:],JjS]:#zZ-8@m*yսȋjg3J<{3b,3yMV`ceR,MDvZ(Mē󑠟#ptwuͪ.w?⳼ 92Ť&KNo|5Oxտ	dj 兎ZqZsxjcAez,^3G@S
SW<^
Ae`[o7d@jOѪf0A&D#.p[9ffRxъay]`')4	_$H!n΍) x?5Z','+oiswgc̺Gbl?C?N5ug:Y9^Ex}"]8pMM*
Q{:{"ӝLh0:wtHD݂J;: '^P+勀o>SP^#ΡڎOjK,f<ԹK?(,ϽUrm#VٮO]9#hԊ$u~nV7;B܀xB1=&PE/o
\1]!>ỨA8}筴(fqR!IZ8K/8 9bVqwiE4
]ºL蒋DHx(狎9(z6PtOdD6_JJ]ހ*հޝI^U?RG)ϗBMk5wфj?Hw[-;cꍤ폓묬3i}\T؄z>	5
a2MȍR4,?N&@﹧>ݦ[󪩝Vswq¯v϶3
Bai!{Hb/-Zʍ7Ou6V5ʽ-l҆*ռ[2<[WA#ރXC0ZSx<zh0{28ǃIjW>&޾)7BdNuB$/;o N~{|2L|_<$BAh3s9@ɾ4KzFs`rMGcS壏\rrWhl!Qi@#U\Tr;%wK^B1DBwk>3 vr^Gm՝Ng 73y@e:9>x̺ _=UT?<gEZЧ2gFZ>_n;)aiz~'T-yKk
'Gc?4K˩'_6DsɒLw6P<.LP7>w;WDWT]c*EUPVr)E%Kd{ʹv2//ƻXW^3rhv I= ta21)'^D LƖݨr	j0K̜t4)c|jhIo<8F?{y4GSy*W %oMGZ)|a)Vy	/E%|s4xϤwЊl?5m?hy-8Ol<(cɊ^zN[fx_/V,E~ͫZ>ZUj./3Ҩ37'"h[.LLܫyLV {z+Nw:ք?8J\G,iy_6pa1Cue2Y$WQ&vd9:,'Mj[\ux
Tgm<΋uޝy}_tf-jE}B0)	otnCvOxQc0 ;OXќ+<+	 Pk;dl|q>@p48̄5I.T^8j6eǸTlt/a,q/am~æm&(0Op_#gנuq	ѰGM?U3G$ZGtQ<S?mx[\/NTi
ցf

6yRjObbxaW(~y1Bn$Ɖ@C\0
iiS𤅏PxX:G<<!YB0@?"6!'>,Jgx
}4<+@k@*K):=!sg2
BҢ]_=7:Seq%5Ȑr3dօ[{?<\.:Uy=+(d#je kA۔Io-m=vٻ ['޳OF4َsH4z2kNQuM\A^[mP/O^I{fQE
>pUgB\|A4(f&E3lkbZr64KmW]r=sAH'DteDK	Sy*{[I^f}VB1|#F-z=G|pL0%*	ۮԽXg2 +#kfp-4w%Z#|r~o˼.Nߘc&3|	{5*o6I@gt yhX`Éu$V-:-wVC˗l4lIBvY0 	DatH<RdOY	 >GDf=`B\A?gň'^FWl؍%P|rGPZ?xVJ;¯BˏuDK$"ϗa _'.D]{')E^mon[mvq-I`J&9kl8Tr3šu оOg"-mMӵ:=KdV]o!	ċ7DuM,%=)2W8lzo CMw~Kd=Gt$ƪb"79QtO9Bѩ{zdXO]&JP̩_o]<4ػ%V
Wh~-^J؋&c,FHqMiSWsI[4vb?5RR~tsyUOui]mf10P(Vu8V٪6S(<a1:vnFa:{47s.I5r[њ(yn,WgP|ӑU98X*;5|&OO`*]6wa'( +=${]}ξcҮI6{sv'sZgQaDo"\c |&秧h\+ÛVE\55>OQC#^-9&EG`h8vӖ[Ჷi}սl0wFÓ7xtOߴ)v,(-~Rv@%K7@+}ҏxqeDM43&`^[Hz{dr * iͺgp@hh|ht"*hZFOGG'DiӨ;aNn0}E(;a9ʗxYmo"7ίp/R;9!H2Cpٵ%Q;%kˇg{yϘ3>HA&m毃vVpض]9#;m<s׽W9)Y"ȫ!@w%M!#a%۠TnTK@OYqLkᡒ)Y)i:yH>X='_,*&hWR$ kbvAfj[	*Y ʢ&)(w^?'I@+A5#v00$H[ps {0(KA&=JEhCNb$';Dg}KcQ4Ș̀$`2d$Q\3>sA0R#$	 0CFiIj#'@FJ&$ՠb&7V~s!J;NZTkk{imۿ@P|Ԝo}FW,${Skfml_}nubjT10Q'@YrjG'x`:W)Y5IV-il@	8@Odҏ FCg+?幡1Vr,C;'2r/_"/')']xm)&Gl>_SPիr 9ħw/ϑVo^V ^K-0]Q?S)Xn?͒IZ7!
LݠV5"<p>\d6VKc8ޗueT/r$Z97},,S%ܗ]t+G-%A0mZX-Yi&C"P666Dd	zDIjO-5-=|Y,d$SŅ`/2ZQI,3f^F\%foƼHr}*L<88&9<#mn=69㾋72
zrf9Uh	g2fdfZСS#SKݸqD"T6YyCG&}Xqo-C;R.wROϘ'οb-s(ﯕ#rJ
fyg)٣g|@;yؽ-Ŷn3JSC'BJ)4v>nkp{Oܥ-ϩ4x0g&En1O@f?qM|2y 3RPmseq.#p1?
g8<WnZ+6/b(Sey*FYsmMaԜ}S׶ҶqUAԕ_~̦=ՑQCnۼͼ*ݕKbͰ^u j~ym|ܕÍJxё^IB^vdVg ]KeuT -1r[6EY`xZs6qg<B[3̤edd2(4I?]<HP[r73?$ž~] .N)٠V&F뻪1e!ⴠ<Wq)y	=vgcd<Cxkgi'-"pmFv٭iOE1NihywLveE1Erk2<J2V4"7FC
mEҾ$~p5H'OÄQy/MG,ؿs'Ӡ!¸h_Sîr'%H` 8h%.KH^NSO& $֜24iH"eF 1g5eBI&Ȝib)؟w z+`i^`6w0H|9	+Ã7ϳ`î"[]>~TȲlb|%QK/X18ZRqqxZ&IVp"S÷zZ` q2N=95$z
8_P4VamTrnwHorv}^L^w}v	)hXՔF;F/	֦xmӴ$(?)Iω$9d6le`$uQ1 !K?!ϏK:9H?ML*x8fy
1`k_?ޔ	{6VzXErֆQTSkh)AO/<wxXCWɎ9܂$>(@^H%`b
Bx4|2l\&-~iG΁m<  0.#jb+k?5umPQe.҂i+3ϹY6.<"V/H-!"r \EyjO&C-|a7Q ~9<)tm":Ar݅YjC4bL*
9m2`طŐD>4eP8cR-rJ/U`tgG;@3\vgRV.c#!x7a%58#ziF4z42H5mȺ V/d~߆j׳me؈䲜"l@RJYFZB]1zBZ`4qlb홍gS9LeO3fV/@/B6jZ[4.
x@e"pKY2Bx(*2+aY:»U&.ٕ+k[	CgP 6m(>AbO%q/j"(C"5eL2l"jg+W[/Atż4\f e'D+f>a7\A'IzX/#rNuBJ&4Vmuѣʊ9,-=ؐz, ~A,*ʖGa/6'_BpyЄgmU{0˻o(ѳ%Zn Vܿ/X2	4כweЃ<scLatC[7R&w#zԻ-]6!~ivF$':ghphc1Gs!.uC6$|Zw{q<<@/&pSu QJ@_}
 BϿJmSq@}r۩OvyFܐ!
ծ(H((N4kp`:3RuͨEM2S\BQqnhV}%+ȰXd`ܿw G}*-4shCrq.(:ܽΊ{r9o
gLkK&;/snQ$xx!W#&VO|c^	8+xR
أK_6'x˗:@-IܕjS<|Cobh^+NMj> MRCL!m3gD|&8<gV L YL<`UAP =y(>.s T[`>^+kFXK'Ihkv3yۨ<m5uWB8ï-mǨK t	
-fvȑc\kD* j~F jƋOJ~#~	Qԟ52eGƪQapM2߬ԫTJKbBKiAphrBF7ltzSwt[%Z,irДnqH]AQ!AJy5)#MnM&ZN1Zec9FTe)6*=Ɔ/竌_ij
Dٯ.+VKL{|rx~zwxhxpd85:`٭Ah>px{_G(?-,N2+ Nz-0ww?ɜs4#uWZjժ/NO>gM7`>:Lxzx%hIxdiϽ(h8`w_z 
^{o&)TGYͣ 1tg )/ 	A( $/g &/iz"J[$^4'_ywQv/3/	S4x@O,1fh!~RLa(ۦ7'%i|hM3R<O8cEЋ8p:E He"7C`1j:Ct].94RIF3|"tO"r}1CېF035'e'[J('
PK'i$|,u-	j?ϻ^o?Gf{ 7ޏЃ^>wz?w?z'gǽ.<v/zｷP?{'!M <}=|'7<;^}]]@>흾;'aF`}~{cj}8`/;{?.<|ۅw5];!:jwb SI?tQ*yΰ?Etsل*t^7@;4=.Tze@y{F`Q}X,os<',n]o/F0)x5QTTKǳY<x?\Giy$^.҂a ̿T|0MRĐ%i%z.eT(_}/ȿp'~㛢!c_,tP]'a0Y.Nn5Y4?}xe:}[ׇ'r>	/Yt08O~}ﴻ/_i~C$\>WETA}; <iÂg)xHpVw;}Yz`vIIC7tw/@,>/=QNI'5Ӏ$^	l3Ӓi ʬG@q,L,hxE£e[~8w}X~#0#6a?OdW$	oi<w櫷. Zρ`n>V%K:y"3pfq~<Ԫn90]o~4{n`=Axe.\fOZc=	GaAix7 j:[Sn,%};_>kM.8sDW [D]5NgS|*GṀڔ`[t\-t-[^!yRϙ}PEHQ(ftBߓ8|HY˯XVư1ZFQ؏Ilm|>(hK,d)ϗ<vON|蟵4#ۺ~@/`i'_ $CSLQrB2G!*	,O@pXhmM<npj29ᢍ6J9=ڛ^>} >v]%1+ZckAuDVu풎v<_,l{Bb*0 d`va6#9b
%Oa&<|[4tZ
[Nf}Q 2jG.|
lFy(3ұ$W&ލRgA	У~#95lX|EnFPËFz#Q?Q.NΨHٺ>>;]̷xkṢ͝z38Jfu_gX7!GAEk",r	@c{,Jo5Mo5o{K/-<o?t ڰߟs;8?/N<o5&!_R.L~g2p1bبs،G:$
pP/P[W<kI0b)#eצw1|J@!δĬ.ak!BVZTHi0R$iǊ9I5p[@Fy \zgE8GЧfq=8Ko7	Z =4|]6>+ I,HS8O4c ;ߒip% NM ͨۇ%u n|ƛI;L6(.&ŀo̵ ڳ=bp>/4xI5 MkxL;tL̠<ZI)liIt MIzw~N/ayv}oE"U(Qx`5`GaF5AL>EﱞoT2R/Z(B0Waz k~v_H;F2*ya<6Q׏J\7W)IKFUM	* ,*u8YNYy=ԉUKm64I\.<V?4؆ҫ_vwIܜŋ.?g{3x/+xK.5do$JFTC5ٸ,[ :*ؽx9f=M"}r[_o	\(i,FQ2`&>kxD99hiqg׿p%~@.  Ϥ%QE,|ސ~^`0s('a	^vt(ϻ|αP[||I vsy儊MAmzwAٞ=2
O2b;.eƤ+.aX|r{0,hڻ?/Z=Xv܈_#C㓐%B6Zq:=c35̩c)4Rq FaPE~bNLM{>b'24u̓)LRq|v2bVRdVY.FO/ż^}֑S kTMԌꆼ@hXuţ$i`T$y0Ъ@G#K¹jLZy֒ .<T,i4V%6A+,})K.I*@:`B{qH_(PKR_weQ(Mn dW!f87^nRbXb&kKkU.t;YAw5y`W8>!SI`y
QW4/ G4Ԑc`$g㑤4!p.Ml"0YٔV,	xq]!$>f}n^tfI#@7Y3ٖ<>IAa|X	z(i~'p؏σuV{{(AQwqxxoQuOw>y~ %t1u2
gCTyqGk;3#@4Ǜ;o=&w>dxw %㮏NQ<G5=ʎyh2<<4|p
އph5=1:(pb=P<Xǚ[/p~x7́aj,HO֢(E$GN7$G<gAӖ<aC-uA<}lPEX##LzDڞN9@^~<+ޫx恜	-:~6MՀ+1Ts	,]^^FcPIj*C\R⏭&#?RfS~x1QBm,v6$UuAH`τCGEvJV،F6	grn1=6_GC:Gdxfz'Xs[C0Ph">Ď}_']gezkŐK$M(l}(0 0Vٷ7,',&F (
 
h%[;[d&SFmT(l>BY~i$mcٷ[iG˫V%?pi !RCQ5Ce.F YNƑ8L5XIj	oe CB]z"Gٷ])*[c1~ɿ].WAؒX^7q2C	I ZØ&soICMOGPZ&SV%k03Ĩl$9FEtaaCCQg_E4^LF|cV010|W[nv1s59V舥OcF8D$3AmМ}Ya)&W`dN(#րL Mhbo/7
Ir3>yF"NZ%pLN>5ň'"t?,}he׿TysdWXRT;K_&F`?*WãRˉ$*ٛLz%v2u3Ccel4 sI	|
c*u-dͯo]ەi#V#R<])-D<^^a&K0kn /y(KȺ_-)+`|%P _y#NN(mdd1<$PLc{zBYv:é$P \XߑgPD-ݗвsԨDǜ6]R>
34K@G
x
L-3aYKa(c;6O0\,ieC<wиdCcj	#EPXSMVZ9XG:XFDĸn BO,	nheH Pz/Y,	=2cex͠ ORwn&Ip$}!psK hG:f=McCv@̦9ixq2aN14o%T825q	j:; ckA\f %YcB^c!B):AV ';Xn(Sb9`KaGw8J6ia{n:<ZA@zbZEG@EZ)F\``8Ihf7y­vl 2ok*f3g'q^'X=`(YmlG:" 1tlx`a'=CAL|#|&df\w_cO~ar.N{?yUb5<ߥ-J0++
oZ1<NA܎2L<&I]xFӓQcZۢS!b(N:10Eyw}/ADeB>U",5آٻO#<!f	gVw7e0
i0Aѳ$b$kԾ{&&xe0!e=u+~n_0U$L8ʷ5ΏEUea6~o'Z ,81IVŕuU0uďUuY&?sUgA̸Ir%kehn*k]Ym֕mA$+c{yҜ5 a*!ʒ&Bb!y0.rm9dtdu)ϭ
V:5%ax1\~V	FTstߔA+8$	b<x":zi< 
FH7f}:ѯݢnAM]6dXlV@+Wl=&LlFǤ`|D>y0i=  C>%<<Ȇm`6*dq	R e3(ͱ;FN=A.f뀫˪2RӳxHi=FJDR&)JжPh!n6d_Κ"||(TI.V32ʮ^E__LpF=aQXuT¼O|<9uNĵ݄?褡~lOL6KY-Sq2ƍ|1hP蹩qpFq@ڝyUJ+)s"bGy=s|pqBg	Şwv:A\ж7>}iގ7y
G9P*us:L/rTNV	9f,DnEh*0 jm0:Pt\χE>v1vA`=r JCq>pzC"W1/ֱnz/*B&ONJ$`/Es_L4,J21FɭW^CeIEIt,:3Ć'꧗Sэ/UTnH^$J1]8!"/ea`uXNH'(eiGy|ώ)PËkRzOo9®녟hea)PA
<	WBu3֖J|mR91M3hX=[)_+9/$se;-ˢ^veP+*=ֈ_>ƈ%%1= 뀴d$ ð2ݺhemZx砰+%oekhFhr:QfnjXotL=B2WfN֛?¼5s_Ň^9waŞߥU'f)W͋9ɣ޾E5ĕ8e38Kbxd2xpX'$X,|rUuBV܌YGB+N~CNzÌ4q31¼i>pR"82<~z'M3
o1(t-%o]̎7VPq
om#-IM޿L;@	WI0	?:RLlR!BHz/YA]1辇"^ѩdHE4ocr(ڒ-FyQIMH`CBw[@_0{l`4\cfB4`r[DDb;ڽS۔mi@cN5CR)ىkQҧUj#}vCfeA*"P~~>~XmFq}h41NՒ&`9ZFֻfjmvW!ddlt"\ݺNN4&hf\"}փ>@!#ʗyʻa&1Ù8EtãvpoAWE/0JkGˁaRR`r`Aw|U[PK~tԓn*ͱI%lnn<
ۙ:4T;bKFєRQ$z`Kѣ^Sr4^?2G
9YL?K-	Xù\ʼN|ȦS8il0n.Me'uꜞF;TLiV$PUU:mv
prrOK} }:Q˙'^4,n;򆴫Wt|7&UK6,7:u6+Fjݬ&@tTm(5+URf?7x}a<DFr"F<;IHyltXܣ(nnR]:#_Y._&3 \8`VϺ'7mwbVZL
EoUm#7f]Or~sN!+#$W?%1)ᚖ&_A%_sLC*1j?I:(ۙ_Y/JZfu-|@4m1닪>gs*NA) /8OcC8kTt1.-&#߫9o؉t1iBQBXO|w>r@].[txc]F{1SrRTg+vOG}`M~.?Fy:<B+Fm ~Z?ؔN^"q%h̒dcVItc\W9Wyn`$Eh
%#|D^Yx^	a>|r)F}A֔WV,9ܪYZkYnRJPԙ>&SVn5[&ڕkϖV-2zfjqI=a搏XSddߝwI{5^e``Yw]I&nY28[#)s̨nI
{UX^{OWX͗1CF|q(jrcVH$daw/N(	Hj\&0Fg>'m&j	&]cq`PFg`#L8
̖)M	v((z$7XוWΙ
bh+ZӝF =GQe+(pe ]'\F_!vGV1~0081+%DJw*HHY_0F;,G\Z S0ގw<dUn~IjvgcPy$c2$D1T^rpY^|s\eN׳i>x"d59I={nzY+RC7FxzisX&DnptN\( cvʍ(@!`VhXCň7ᜉ[{$B>俔;Z$oӪ<텡G
B3B8pY\b)}l2jͅiF:NbŅg5S"}삒=(q4#CR
QCSPfS0j8?Tz;s{AP3q@0G_KpOid%60)iȹG	Of-c/;oҎuތPtJt/r_`TC1LkJp7$]*2QwϻATY<'}`0/`58;x!xA5gɐ.jR@k֬
LՎ4L(nkY_}mmtvqa.&͵#G*vuO0֭>ICo_tix'3"*J4и>_s,G`=yrM0N!ZN.B:\0ơ8@S0gOğp7u6o76~]\qŢck+IGR#9IX	e^nUuO΍+ *$@}9b=/Tfc}6LO/8Z	TbdR8MQmpk$"i%)^t3w7xD] !eQ;ᜧVCn)\nRDV#/kК"<^ErK没pNdJ 7{˝w]mxc`SGeZ^4~)(>(F7%Y/we|;3<}gۇ.*딈bX¹ʙLE-r)XFŨ٪TQnM#}"+H~&5l2Op:mw.\rtOjUffg6%$LA6h+fh35C.C:\;FMos:?XQJΏW.#Nrn~CF3y荓i.gp핡, :nhʪw!mx@Yka>lY:r#5$kG«]Sx4-0ivIUoQ%.^6QfxSԨ<Lbu* kH=@ggTb;VdY>W:oe+cU]u(?ZJWs$tkl))_ы{ nLUy"6ZkO[[:rB{[Kh;'oVtw-uMs᥸,&E&6gK<@8&5PvpG_<4Wn}ΡoG\1JEqĮE,$D*;'N1i,#HT꓍V6j(Cz,<È(\~ޘF'bBj,]<2>Q9)Pv(CQÇQŭ25Z9ǸLYmU+hYZ|-kk<j"~L!%>J J0UqDp}±=|R  1wxchDWNy*.cϑ ;|3HBTmd"@ƶ4<oҭS`b 8c<KrO6y<]3ML~yy'W0dUe~zX*Ym)Qj+QplxmHs*kD,`2:^M1_22}CʂoV]	Rf!Q%cJ,6/{TEas8h0cI8N"Z\V<)",}BAZ(
0g@Lx\D\t+j7LRdr[Lo.N!Wt]@A{i0_)xUc6]zpR}Lg÷i%`0ҥ*n4mF{;߾3&S'wsF.P12dlOs0䴙^+%ﾴR.{V5ya's[;e)XR$+'?+?%k:,hU M*¢)gef&vtxgr^w|coX^|c w.87BSnm>ܕ 
;@f3aqsݴDn'R%^1=P9ZuGCzG)a}cb*ON
%/Le>WVƶ8`%}N.W	#rF0fhm)ћbvsۋwIϴGNDLUXyoCmBNEru~J֫٬F+s wLh/3q: 'Lң~|B=Y@tP!zЊS}g+Tظ]KjǾK7sQmcd<Z}x/8[n"vxZ):Ivsҽl/`Qtڻk-vT.@N.#sL`NƑuJ7Y?͹FUnkѼZyZ f?4m랯̚&$7nVYpFRF02f<
eoJxq/RTPT0@"q; =*nxFI@Ua#8mNHI2,n{'aCe5@qc?@ݟ	|RȿH_/:ً|1NetSѷ-GՀGe|RMI|zB;ih,	h$"DJ[:a18тO%d-3˸+#1:,NUz`꺑VFHPӞLd^Ϭ7F2~9dp|p{8f8W
ʶlbFj/'1}wLVd3 ]vw%{x"P+OXw\ -CQQ1DW
ELPDz+\jei8T̖,ZLeTNj^^%Q&Ja̓I\Kd-.Oyz,J0U!)9 }sT@8I+kTFpŧIV)$1.3MDh%)ڹx9KHxYpIEsqzs@ǵPUXMc' $yet(62^C_QD6Z?I
oM<>*Vxl%˾ihGlbM9Un\lwƋw*j.#&/.Q^AupjoTq}<LOĭ
NPEO۶A@GWQvmU	pue6![tF_&["lȩ'&1tX}cH,@ؼ UQe}sSB/00 Zق6NWg5b_Q׮UL̯Qes5P
vz) kr(xߊR;6D$J;$,up=βEcgA1ZH[-[5*͋妌~CҴ[q\Nf=Ԙ	'mJ>OJ+!@BiY x E9~(YRսrxߖ U8/"NjSqqj2K%l4"@W
UǴ䱝72UH!:/5Kڍc<'
ݍNc}
NcUb߯N-jpIY  YU.#?wb0 q&QW#7y8эb;Sn5.z{ZIsnL w,Anm&AE풔.IGwp}n)Ӂ׍>6M
0)QPNVywpJ4S1#Dmm0 T.a,ח{*yF$!ٶ{yɕ@)'ॎ@?<l*9g`/1x+-,t\Aǫ2Vx:A'N&zᝍpFm]@ןcI_IfwP0{M"޽|EZY?5gntb:]yjd<ܵ8!'}mڷRT-#ٌz[fwqI,O75Ϛ<6
Ux+UM?_u`SxhxHulw٢aTaH5&_E͂c"Mn<)n)F%0ebWgLZjet0tVzSQ}F{Eݭ ѕ(\j˗^AIL􄎳u-oMb$ؽ~a4&7 %G$̮IZz$š zeLϠmƃhva8XM<db/pэyᄁ_@AP'@D(OuRΠ^tՕ=RQ<XoҳԆtyOxQZ8w}_טD5+0o>K,y~BǔBl9Z`+)O(9+W@s\f,UtK>yx'hFz9{2OVaJi:c$u|SdįR.,Qu| 5K+-Z}|vz*	e{UWM6VͤڻbҟdeWr!yt1Qh#2E۠랄fOـ*( h|qZ)*c{a0#7$s끬/ĥ8@==T*#H಍ ]sB{~8i DUQ(7֬ŴgM|q1Dk (!*!CrƁZ%A%|yYz5-+xZ.;;ENA1У%\0(vDq#f-:ºpe]9y0bPFk|]w[tc-6%Ψ%ߋF;e7hMcw931C=z)\upz?ė3-E=kbmT$vlM)ם""qw*|^C(go˱
P$oUPZV&Ɣz<HXJ,yٰȉq_|4ESt.bezT05ƚXopHYIT<J[osvNqKl#5a@J:0dZ=z]s)PYlXIKc<"Ii~<fgE5UmbxKJhHV_*Q5:Sȱ6G$GJ r> 4
RSUDoy	G^ԥ|ZX;n,=^NTh|! 9U8-G1P5Đ/{bMSY1=~g<@BBsˮB?<J
Xmk8HFώo	?: ʕnwBplyY&$r~G5&O<a KݿBb%1zph/cBBؼ1@@/	ԍ0ChM @ScO2LI&*B#$!ԛ8FP7u;^o{;&ǜ,ڥol
_mAn#9^xlvO1"-!X_v)QH#AW*)VpqP=7	,(,}$WD"FUn.@TZ`p?yY!K4OoL0Vk˟{T_5B^09A
c#VNp_`ڪ¯]
rǉ7^uL%Fr4:
TәANLXqAŁ2V{MA@MM.+
`P'	T=C3rLĒ둈ֱ|fk(-#qM+(p1ӧJ!H1H0j6g~jDKˀB-zb/?(P 5d{dwʖm"R"T[Ji:q*#ܣR.>䷩r@^!ʧ+
Jǖ-@a׆Zk4,Le1	Z%q/+x'2Fڧau̶;Rs)Vi}.=YB6\A6~=~Qf_9eL itCGX:~-1G!-;x1(?[<#|i(ປr]ZOmo5;BL#rv]&`#Zo)g"A4 Ql["a[[)o˕eRΠg?dMU˯gʻ>Ltrð&.g#$InWƤ0kK<4NL$
Y:]{~_O?5F8N& biqNS.0ʵ{>W]s!Jth7Y
.w^rLROӖĔ!ODAFXCi+B#AX^SD,ցhOB!<~I.U~bs]Z}WHV\-EPMQ,@28[1;3xX-8h/FBq ??\Cv&;?H)L{'+RS0m{3{Sϟ<E=PqKvg)NPIBfw+fO4!2Y~gģcMS1ԥWHr܏BOMih~ IINQu|kUAzϣɁz o|D(&_eCkJ݁πu1P?X߀Mxz;|RgA.^US
Ywwnop&o}U@)H?>N{;;]A1,P=W BjPK)L4XiQO\({\/m"qV-fD4{myΪG29=Rcw0TM rAlʮ⿂w ԕBPE^ثTt?Ui]_Ϣ/:5.^ܗT/71iETt˚iq6]a4t]:z
1{* e2V>@FW(vj#L^efn%;mnbA'FEÎ	dP<Q dIgz4k5
R\p5S|=g-IPΌk.+|
&1Բ!4bجpWz(⾿ܰ08@-dy:F7yMU
"N$X"FVcykz/խXhF*ZN,W2]}qiL{*I\f2ƀWbm?`=(Dtcz0QGu66)u9O>0}o|>,hr<5o)q2l<<^aK]/wv%tbu15è?[Ȋk}:@z4y4oSI6̻4.q4/^$Ym|'W/؅Q'o]gߣɛ~)8ɛ+Ԝ?EGm69o?{a;MFϾ[ ]VAgs(~,V\F+;-yq;^,yꧺWߓTʚvqvW;S!1ŠD6-9YlJR"e9
ULk~`mm9YYP߅tשR0{"O+mϟդӄ+MMIZ{7O0^*q8R2JtH14f?,9
~PWm5|ko9Vn])y80O`P͛F"-Z@S`s#EΛd08̽& %u^n^YWy%HET?(ZI1g(H'(zF93%"-_4hzdvvoPF.ĘO'ֲNp9|c4V"@E }ӻ>UqQh Z) s{fކl,*XxE-)|0HkM@J{`atA'Za97	H
PN\g6YfWqnm8np34brs&3<#21G'T'7AiV%ouW(6yf@\ѽXΈgDBt,:Ǧd4'S
ԘtE9wRdD"mT!lx?<ĉ 	lo<JBWv<:0@	S3Go-%ŰJ߉L0d9|Ef6D|)PH6EMe.~l~3
ܑZS7/CA؅y$,F\bZ#ͣ)Wtr"q*Ն듁WeqtV4xM#5umR7㤜kWT_2kH"%૲ 0j2܂:ksJ9J;$$@eVj^2(%`X\ҋPiRVVa5󶪬]ĕmm\C:8Ē9=*^WNc+#%M)ۦH,Yrb|<QèI*9^'`sЎ+NǍtl>1(`ӞDP .&h.kIN|%`	43SD6RupOؠ)λ,DOAdj୛hQ09%>*	BbpD1nQ"'4tc(<X\itMoSMa+`-<b ¤Ikɜe^33vJz(ٷZ\	D%)%%N0b 'QaHR+fB~p^X>41#&/xY=Q-$lKma{^ڳ)opQ.'!P}|#EO"OkK:,INWVӮNIkGǼʄdK@-cp	6kӸד}|RtuT|6v)Ү8"`)Bf%غo>1'4&<C4-!ĊGл(N֑vE/G!PX`7Y><G$߈+pQLswwwmn|1bh|ؖt:'zNWSdX8TOQE;Ɛ(UI`Hh(K+ Ќ=riJHAzLtE#CbGS)a+7
=FhJZ=%T9*T]w8$oEk"H0E)5Cl0i7{	jYP	W!FmDS,{}ￗfz/3BmYq0gX**(9Q٤S)cfvj%	botE
ڌ)UG͞QJٷ{3U0&ap:[I{	w`s};";LUJG'(ΨyFE<}op]pzD-FNQ<hSDn7&&)m31G)</c^(Gw:'I[]}Qwp`Tӂ-"mT-':Η3wJB7Oq#J~~9e	@[\'SYP'xK@0'gKdc%tÀHa-5x-7%Jz?4ݼ/28ۍbE-8SCW&Y J"G^"q-%|jHqi"r=G熓 9vn<ȧ7G< }`⏢Tv$}q3fkpx1c"_0	O0,&4G!X<qkJSmm̜D$,Ӵ70@˳Ҥdذ(KW l#PxyD5g&g&Q|̅s.YʸJVlDԀ_+dE0'| 4:]<-JmD6{I6x%+Q$BQBgmyvݨۦ~u%B7Ƌ)w!-Y
{kZj`LB83nK)q2yH%Uh:*ոYgpw?@EWPU޻^=>2P+C?F0GB;I]Fy|,SjL8EAaޡ՞kuo&ye%
-34SP72-	\	sy&	vyZa[HR7\g*n/I4Gatrr*j'ZeKѹXuiuhpCOx;-jr*x<PC"	bEsVl'"ŵ@=(׮xS=D! \O' UdFPFGl{:2SrU6>
A-J)t:b`o_ښO;ja]z~H*`&48)=>n*^rjQ4{^(Qk*k5|qrz=nTHrhqRi4K[)&McjIɃorN@WB?yfj$WsJn#zйTn;;<YbKyP-EU=̂mvο+;jm<deb\_wPYY8+)ɳE"n'{D32ꆾ8xA- s&j1g9ۧ$/ɤHiЅ\'J0 +q-?L1ɫT|a+v>KE%wBW;?WkQRkj |]9[Ga2;yp=qȳ#ޙv>g0UՆj艰2mP~^I{udϡsYZe-r\c4FhESyɦĿvdu!lꑧ2m{4fkYe(o_N,`Kb8%",T{=h6NSM<_*s7W!ĩq8`nAno	HvƯvOӥ?`PEH4ano>!p	AqwvO5(Ȝ*:	C 70^ZsDn<6W.42{r.Or2e!dk ,c%b!aU[7Ae{w'	:,j@-/Xc*e8ϹeAC|P#VMQۢe@!hXS	KfOPs[r4hqV?.N&G,,Yv=Cz R w*@W#/[Ոݦs\KǸ×Y
ɥ!]zy;}wnX\pƖQL zɖ˚6&cɻ]k/ngZ;Qv}.Mw2Eq17|cA޸dPݿvSlb#jQYOUY܊#=?&G*zKsܖK\r2ru|!Tq{C}ԋ!{Ϛ=l9^훥FyD)x*fz;='$-S+{^LNq#JQ~#=Gu <
ÅWN]_lH5kIVVK_
J,u8]5,hԦt.2SDg$TgXH1IRx+1y>&2h<ffMOVN<	JNۊ
DR @U
9]QEFQφ@iXT_V9ikPwqDS.4K\0Dŭ*h"I6,9K*#h;suB#+Tc.G0	VVcb]p8
AhU|"\9#C@&?i.f'ZI{f9ߤT~bET9PHwc?J> 	C$pDs,碪
ھ\|Y[2ʔnlkɊnT,%3PSҧխݒb1ѷv`L%~N^j<*W|
2Wj|n&*s|;5V"n[JĚ\L-u`2iT-~\K J+EөdD!XpvH+R(p6/wdr"z}rb :9jlz@	
&񶠒1| qx~/3~_,n<zeQ/G.VbkmD&s*BL^=)ڗ=f3b>V8y:;sbh|m~VܳI$8#37dWߡZpm0rLAYt:rqjMqg6CyMݏgh!ae(Nzn)EqԶ0NBR"o$[A[Ki"腩3nШb+~$=:ptuq*9IRmX}v2zcu>)m<4ºisۑ2;ߡaAWqb(2iLO]
H&͝e4\vVBC1#T?8ȽmJGUJ@OFԁm7Prݏφ}"Th Vi?(e.*sJD n$L1ͩHJA$AI,NΎ{A6~)ۡ(bk\
jս
)l5)O;\v}\dxx  8D,syeYAB#Ik,1K$Erbh*KlraXrI}1/uoy^pم@_S1eIؖ@¤U)Ȩ93%)htj4!%s)[37'V582(ow1K<U}kمe)XA/l>wb> 4_)W(]yd,y|f x M\A8(DK2l02 A{8q^9!R#{S* Rwbx:ZMhmC3.a{PN#z=ojeS9iOo90W䝋6B垓!h)Q'4	"LBC\T]ʜ~Ld>gF*xk65]4KOcg"niu`s~E[0memGrwzy~{mlAhj6b4օjUպ$s!Yԏ-j~4S!TXK<əՋnentbKqȞ5EAyٿ(⎸L:ikʡ\jw>6_+w>/XدI3YP.ev
nW_עaȿ_yk> QtNn6-NU(y<a;A8Ryv@bΙ*4]mFM?)R^9z+<h+b*B[#&"W_ISJ3]@r{1veݎR*u^8Fet;>.Gcvj.Jd0'9ɭisƯV;J"[>5ÿ~Kl+ >`I^@SEz|N-K~]_se"ȍJqSoGXd`&RXGw=~΄871;*CVl1I8x)Pn'[E$zyːaN\dʭC~U8_.lma|V|Fl=p!tCȴMMw1FΟ塸Vz}'i	/XNӻ0B]zSp|]?a6nn\˼֪9_8#ܾVQSlU|0Ynu#m
n&
'T07!CRa.;mQcCi RVޜo2K$:xd.9j uDYCV&#=h,qK޾".$̮I#!lz8i<&a8:Wy٬.S@si-Qú*J-,8aqF_Jy'H'I8qD:d+2WYatJ1R8H(Xfr-k *UULhގ> ;}w]a\lI#,c.e~t4(3ZRB^,Xmt5^/U+ߑlm"rH٥[xPkM[>6q✲8oݡw0g1rnn!Vhy5"h%f`xu("*P0&;kI]l[RlU!Zط;
y:hz{((tgF*7DLm`S®"zs!bw Wգ(+Gd+We5f]Ya˱"9ÒOP~QSé5H1]H*y9IuiAQ]l0XQ0*۟TuEnf8yw>0U%x_QU]?Uw۾Ev	[b!On_~:[حZxY31ZUOVm3~ެp'/CQH:BӶj4فE#<j.auaYBNmPW]clgwWe5)䡽k<N610/\}}%V;rZK!qzX$DyWOuZɭÚҒl9ƚvgdKzKJZ}"#sk?;	E'K=ۨnkp]װNkh5t6Gv6 \rw
Q  hz2C
oa;z0PuVx4LJMr	S{2+街KEE[G*w?lc:Nti@cwL:dQ??+WH(ԝ4PAj-QA%]?ovwA	_@MÇω|"He iDzwwðP,ϝzk9ٌv/Rx
{ƚ5qcT,u`505
+[qJH9t֊yY
[neQP`q8SifЍYV[l3!~ھ@@I}{7ύ.2/hiưEo~Ai7Bo<RRٺia&k3,`mß'	Ƿ$TWT[eSkRmU*bv˰]f8fFm'5NJ9~h!'g5ZƷf*̢F؁ax,e=:e̤:䰈k x^߲e?DwT$qɗBj'7|,k?|d!݇f!qsrUEHwT(}-ZMLV84e0IR>&dfD%\t+Jn+.PTL;[YV G|Lz
x~h[ԯ>G,˄Zmj́Xs/jW=&Eh	2HtsO;5'>VF:lq;kO̲WBk'Ur.YaMQ=]$'%3b!#f#7jR6՞FK_NA3л{>>hv#29ݑl_~!?Y
yєphNBesF4CWM[KjA	MRܞe}mvLDa.>I6MZ)_0bq̜Tm嗰V8;vTKF8X,I\2I8%E%w"ULhS`/B/M;t᜾M>`Ƥ`qT*WC[10T?Ksy"ikuN,N/؇Otqïѭ*mX;FØp56Tyl]oۖ Dԭ>u,ݚ]a~f^_U{9yP^jWproN~qLCL$$3 \l%d`~5pHiڝEُA2+(qbF^;Ƴ  _zٻk؄)Ț7n+ؚyaИxqiw6ߒ޹K*=TH
Th^_d>'v.)!8=}°*8"Nkú%/=`J]n>?4$$J;? be*EW%<;eAFU_E_(W0qGvs<8 {Ѕ3eӐryq!?W7=puGzK$۶]]$e<=U4BRݮ \XWHqQ~Oqk
4?ap"8-}LRRiӌ/v:&uBs8$,f	$i")6wPK
S5]v(I4,NwtşqӐ7K~{%nYOptـMy<oz'QrchKN۲*g+'9R9R1Ch8Cz'(xѢ h௎Ydh<]b#p:E7R#H*L-wzi<SbP$-;ݗ<:www- 4<K_ .Mn_mSRzI^cFvb.jlD7ZG'RBZ) "\l0o̧ytb}&g-ֻT*e}I1M4	6L2,B7ĈżIlĔ[:,A`ҴAK@ /a0nI*/2:	SEzebq[וKRtUP)~[WvuʵsJLC\g@$bծ|Wh|lݠ)7Eq;044XLBT).>_
/'Vv\_RCH'^R8ߛN+.	l#NΉBJÚrKȖI$Bx"c5~ =05<Aͻѫgj~ħVrNݫgԦWuϏv}C{ZY>b#وWYu?RY%\n43ev}˓"Jm0fzeyPn`aU!ɐ14$r3'GƏJ5<Qɾ[@OiOHƍ6M$ƛ(8U}TYlRGF6BzCxP&
\dqZ,ip9͗[Z62N1*ˌeZ}Yū
Ұ&zj,\XF%zy&+y1#FnšlķY4oNh`jz{ovcb/!ke"lh_s?n/rf'_4ˋECq}󆎽Ev_]Iŵ9b):PxBr?i ~-S";;r+R۵цwUŖ)Kpbh=WP&1ѕ>F@b`<0Ls-xù-<.E^h[m_!Ѭ2>&Ex%)Ԕf t~%ogĊʧ-<\	o2w\qQ1۱-Enpd3ߡGGRAR_&r<\okp&X1J(sMҎ{rIw#ox	m)T.x50/-mז͝qq]wW;;_4rٿ	EmR:">}V*:jb%<T+j )ޗq-S@ edcfMدF!zyu*>pbΐg5feL0KYn)9E8o[8E+ڜuAdrpBfb.Idm4ԊZÙ~cWuu[`;{bK]]{YZ b_pV5lr2$

<%=f
RbZW҈p+LjOu.M.rTg ʏC%ۅl![Q+3TS2End1׷m%ay(7FmgA0ڍm`&I6
rbRKFXOwP1Cᛐ4^X/sz38hw~\*7(sQP8yH|SgVgζdjP?S/vY5/"!),d!LrY `ev4-31vEIJHG
X2 robqzд--Dtq1K\f"X"%u:\&[H=ⰎwD{z5diy	!ވjYd0VN>G#.sLKv/hIWav;.*n  
5qKIP|)<XM6N7Dܙ.$cT"͝dz$`ձP^ꎫpe`cYl|gn:/B5YCє̥4,`TAÖT;mZ6~cY&e,MA2TXtḋ)#Ȫ)#4t{V-[JGC𝺲9{>p4
Ǽw|+8(8D|c9TUvŚSFq*
 ./"֑fBQ#)Y8]ٟDtӯ?akrv`ԇ~h$Nb %!0qGoM<lhzB2EcيxTXfSW59t}|&u#(Ћe9Z{xޅ-<XW
ҞodP^&slj2T!JTrYX6<<H=w|/Nc F\$h=R6aG!f˴ 5?ȈwJb3"Pj[TN>$obrzEtR>xGw(ϖJ1;W:i}iDS&L\ 'KېV4v+X`#XL\_Dj	9/}Hr]Wl6?<҉nqҊGTYWױ$ew[?qIX$ȁ|,!_>MmH[+DHN8Z,+*|<c/;kgzu^eLK)9b*Tqk"|7Pb$HWwn]؊"J>4jKs--LcWAg~q8q&n0ڟЇ͏;'(Y0>IJuhF#\MGQM[BӖO<^/ߜ U|ꭶܾO]UȖUO$l12m[_~I:{ҩA(It<hBKF֤U}5{+:6`+_#64jamKj,$˼nړVLm+aZcw{W0ZTj`ZTjd,{[Rḵya	{Cb1jwT@/:~CU]ΓYb$eFDr &כw7kb>OXjytX?ˬjG<:tRblW-ꛀm~NTS ^uɭVYr[U}Um6hZ*%'5*e͈uZR^qer?npprxL`y2&mRGSy4Z6ǕaMhkJ{vz(Mf,Mm㶺q>^a7q+fXMx:Uptq9-#M%c>ۇ|Ehc⾏(U(0[lV~ˮcHWtj"JN<,
ss?bSujj|=<ZT2Jf@o#5	d'i!:jeb VYxM.
F0M7"pnUSFVUaBɳ7x]j6ڡr3<?lkӪXZ;3U=TgE9*Ep^?}GF|7ҷPNγ(|%	&sC!`@`;q\c@Og/\+l5982tu1QP`u|y._v^Csvc\ݳK02\805'~`V-ʩ]!=֮I0j]j~zЇnt>vkWtm!sA{u$])+1tmĚc|/CڍsE)C01:If x4wX8Pg2/Y'Q* *i{襩w3.vJg"'{&T)R*;"L6dmjD l"0߿zx"pHcxo:83 o{ta" ^䷺;+cvʃ$3L:#pj͗P%B,>/~-U2^s,:JP : Ҙ*rQOҙ@EG/v^ҩY#	J[.?I,O% 6 /b2ӹmAR/PԞj*ob惧j$ s@d?\H"X)^ׯ _zsHVR{DOz=I0AOfD(aߋοSL'ӖYcH ЎJgtZ˯B'죔;I2YMGMGEz2/=T͵쾶8uxV-A.`77]wJ̢Y}pPDɶ<ǽl֦O6erl:	.I]L8X
UBTӻM:d4(CdF/\1ݳקl1 M]5Kx8}f7eF(-s XA;zp&DvycڗjŶsi}h2wѫB]\D;һsνƼhXvxA|+H-[Ghw7t:+&6HX
8泼
z*S"[i8KafZSXGIOI+߸G|.nh')2/E#8+MqoϏNNN/zc̾<~McM
,a'._zW	{y?^Os9RST*#/Wu!ⵏr?J)#'8KPpjJDJiMa_QۇRhnu`!ksӡ "-gd gHbrތ<x^2j~}WLJARG#}yQ%NhAAuS5Ĉ(2u-fL6ưtGæ--Fыs'EB0Rb&\Cm!@`=Ls
	X,yMe۹cbss:tS t p}8h8bzLyw.n<YcԂyyҜmum9
@5}ŭ)q9ue)@];}UO	5f@x3zb܋[Z4_7V\RȌt=IQVizV5<ˇ\	ǖk2 G	%S>l'*h;g4xtQ('{14m1lٴjzⶠ*^Q_ƆQzZ~߃Cf9Ll.	 &}ũl46Zzk.b<˼2\N\Mvh3'+pG'z{}bezҹ0IE^9nQi^.WxR!$Fmܭ"|aQ{ݴbCů$#oö0,83q^8w1ppHWDprj56~׻k0TJ&Sy!@?z9cNUoح>%@v *|c8.hFWfpߜ(F-FHt{fR})yLA8I\p19 S!	zvkCF#Ӄ2]:9jcv5B8o͵!ٰ>HMө|OgpFo%\D{chl{QOqHq9T-tKw|:b364|:t;*E)+o|e!p?NR6S~h<%vtڲ-}8e<ec.WO
Dy'4KشJQqmޠ4c*%t_{48eX1ג	jV^3.}jwӫw~mZ?˯­uiURlMh*͝Y X9O*prK[Ld+NvݐRw=ת	ӄ+R'[(:L~55ԖBvJ{w@Sq"BE,&DZ"ś~^-9ԁBEӚãl+d빯	ߓ9Y(#2e9EFri%=Prlۑ3)_#>W`X(ǯ2J4<u^G9e,A	W\[
_Du^qy	-}%ok0W!Q_~JNaE(<ҋ<;rH0ӔG;yazl.4u!gw5տ+<׾ە0;7W ڬH/F6"T$tK4,pݧ.wM]xj}6"NȢ-oBrCj"݊kma'Md5h|IjcU4>Cކ`,ZT,p7*GG?zho"M$Lamml	WV^;r]S  ,*TvSXCC}8ٛZ,OW6R&R`,*W]|@VC#R4i!]P@!ڡ͢$,n!U?r׈{OM3|>H,O](>5~[P)4"8OU{ "υL3
4) ԋ ,%sA)Mb{_)^Ʈɰ!va5t VK}Q,n4VGu||:Ց62܏l	N	iEFf% tv$N1:pLxu+XY/7MlVmI4dD6nݚڗq}Za%BSQ{[jXfm%,365'TBv&,j|ouPi;"8VˀR2ٞE'8qi
H#Iõsm2+*r5ٟUWuisj
K
fm_b.AÃX	}(&k/kˏȾ#_ɠs`cY'XQJ0suydzDfEHHKQKO׫^]hMɐҿ]|T7[͞~/q/h&Neīzbet],HAse1#qi:㼋
%:_dhQF8|w+[\)GA\eԭ(Ki<JђNʌi/-^b;!/kЅfJȬZUxQi?'|TT:x 'Aؤ^qbF02Y~;Ԍm~NJ%_3Rk p:k8SpSY5}\fڷ*LK<c8JU]T&TѷT-AV0@ઐAvd.]Q	ȭcUdÕ@݋RV'Q'Y;Y&6!_81>h{KZVSfLCYM69Q)X+[mʝD,۷}H)Te0BVtڌfK(_)L'h1=+=2|	9kp0d[pvojcհs\ hJkFYa{7ƅ)V@!Kړ]XlJizߪP}X	+Z|OU:
})6vöu,@J.?o)ogp(-=CJ1`f;u~w4%\-Pxʍε>MFwNটtV9|x|VvN#AG5gYOrˎBco7i ' _NS٬Zs6ǆkrZcIi%vxҊ{
zV`zY{ެHـXbQr_}{q^|42ٌ2ht[*P8]Zܽm~H8bW1nQ\rry4Tp1MJPGbɨYo҈AՃFAzZ5CW\o8Ĕc"㦨-("9=NV?y{mMc+ аTɁo9-|m),Y~Qg#Qڟwn"t;Gpo:q'ʱs??ŗggqWy9yJ^oO__DGGozmh.*ש&S77@~%-",/v!Zئ<Hn(X
vܴgQ_T GrUaXu}S* 5c%7l:DWHS?EPaxl0夕[ыdPd@ʋÚ2-hrq`"uc|ܡ=mlJ.vt8I|T[]];cMgs鵣=hhQEoO
|M{`=ĥf;:\Uz(s֖%\ˎ/~~y~=ұ*{9	ބf>$/FbȷbyVu*1D!%*LR5+p%X,'$1uS@f.^?DBTls8p8^u|#ے72ks`|8 =3FkK{r=76o$UXu)еCC>A1*BW Nc^.kylUk#PMPZ!a
WAZ6rWo&B-EKP*gQ[WomY9ib6=KBRG	]k4c6yo	N^m-#"R1"^ЃpgwkXlyCܥ_QI\wQɯь{`E||ٌ=ЦDʬ
!X:ؤJȕ~ϰ˛.¾=F.WseYӺ-cO8m_n7ӵe1rf h?Q1O(-7}`'yp5`x7 |#e牫XWf8;5V@L?ƍa9@0p:I_c)O.UjnM5x~ &vvؿ]tOQ+U.X`>m|hNkxDWP5lHj{}4sጡC[eg湓XĶwo)S -Pe>_f,چ6(xJDG
~d;a_rA7AV`=nGBfjFqыrIJ&Et)JFKb8tI/JW*jBGA<k_"6bXeԽφXv^5'5NǤJ_rVǒ'~6"|x	P[L!@yHb,qwdG/;N<`|gXbAl0`{9:~uuG<[UGh08jR/ek+J<m-n蘉8`NW4UcT6C' {L-Lċh p\;G
'yTV5qw~!zxۅ95C9+*a32GVV{(Z7msC{
3-Ŏ~#oU`qaVݪR3!6*FiM(S=|t´
2N"L#0eJ1^._jR%g:iF+cZ9Dx*#v4L7f V^=!&yՀ{;?xbS<Nkl:la*Nhb'-#ߴ'C >AZwlf<;9k'|ryF,iݚkyFP#s_EP""}oq>ه-h}5\__H6/3;̾@EmX&dufHd~bjρGDz=,*8/)+"GcZaB:Ǒ>'zKlP!7Qxɱ5l<:tpX,_fj4Djo;PķLYtqx~vڽ^.mh<ڸ(v2)C[:^V)A[ȁڄh$/`
nLUSлF~2_]?l:|=OspF{ZKDSdvPsuK^=W36)WẌ$(ˊD(nʰ_*:\;sQt"2$tTCE&<l	v%"f8:İz(3+(eG&%1Lhg.-r%C'8( P):,X"'v3ٝx x[+])>-\9d BI 	='@w+\>qLVF#
l2#mihiom :WQ[Nh,bQNJ5z9]ڲ8`@ZZ^t醠]-|$DL'#'$m&Sz>Eh?	mgwAؠ]}OYD#fP%QE6;&[MfplZӴ?FW+;"217A!h/`K5N@$Dx^P$GXfjdʤ>nEm(k":.;D\e1V:x1r89L j>'a#)H:D%+qW^D٘EAK͊WN P&ĔpsL[΢ys}3O:%9%.lu*b)
'F$(@TG(vX)LFK'Y2Im"f/냨ҥE|>=xÇ;yڿf7{w5?Uh/N{G[җ)	Bl~[&4OIr((d/-=|@Zelsu
M>)Lq@'QyRٖIIY2?h8GIQJoWF7F8Ç1%ԝRnX:ё]cPo69p<|x5Jw'q߲@_Si28́,3Fg SN/6b&tg"8:01wʾ pa(`8/QyMSY.KU l5htKl)h/Ƿ?ĝqu-k!NJY2uʈ[wl#r"C#(oS}v{X9i,>Y%GӜMī<4W.mG&EyF>˦ vĝ4dG@񆫂5,F} h,G|bGB )])#V=5iKAC[ch]0Do[Ϥ+ܢ6KyE. ˳1N;@^ %0"[)|I+ǥJQqA<6rpK.O@2:.l2|$*ad%//C1cn pY_ձi]d̆/QTW8:Yr$cX9Cl8b=l 0ˌö[jaV24D&M\(CVegQ?͎t~2#t7Hgl/ot~B>@˅r5,PMEψ*)'9}㎵i65DDrq>bMgeNc@,X-)(2uw3q&%2quvp. |=>u6+*i5yr;*]|*40X#a*Q)zYoTj/xx
ښ'.*;MH
#'sp%e7S$Ֆld	˃Οb>Mn[q!G[G$ÿ`*{6<qH7ɔn*[0΂ {3lx,v"SycLHS	2-]I8#4{'۞2-į?芾f!OTwlK[bK["Zf;}5<|YчTgٰAE)A` FXU;<r\5LL7JKd\k&=Wܭ@㞭XjKͤh!!=4$mxBwO]w"Y_/kI3>6iK0]-M;R
֩3Glo9Cؓ
iM(-!Tӯgm/9
iեokCCgqBP#3#	5]4՟z
ot\DUn<v/,AmBPfk<92~]᳄wcVE@e~=7l+ڌY~d!s(c}B'+/'d!U7\2ţY<NP^%Ggb`J3[ $uCf6SW<%2m"	Lh؍	-W	u@j9-.k9-hɄJy#>NGވj/YK)M:㩱-(CJИV`XǙ(dkʬ%(3l4VV=v_GD9@0{Qq'^4Mc8x} :MEWm2ޱyeܢP3t사|/xLUgǖvPN`bԃnp"2^IV
4ԋv$@(yoޢ`]DVIgO?wT)u@-(8,F<'Hm^N_i˦qK~7=q2ݔzR
wO=^Bx86M)g-~5tBT֤e=J4P!⎕?5X5Cu5q	{5o[i<sX(lhUھ -fNg@ga&	RJ!,¶6JA) KCzxڗg6$ޝ=^ۊ*.o~;Yuڌ{\uQH]P
*.Ct4O>?-='T1GVʡͰн2H @u+<s}*w1:fԐ:*1#:ů@u+УՆDe/ R]K44=03 Cr7vTe0'qC3uA-3@-L# RL7p8y{?@4YzV1k7շz)sz%[aK;BQXuP6oO!pCϫ@zWT%ZD!Pt
VyU`NVD4[dp"};^",?H.<ζ$Cy$ah񲖏HT7!FB?lP^y|l`c&l7u%>ZL<wc,KN]׫;jq,](RE ?n	GTV͝l2Bd QF|M[Jjv͠9h%\qcP-46פp^nt=hY2ׂH+q%XZ&V#OS't[Xhp[Ќ\(I[⛢},XhZ9@Qwx%w^]=uKY"U|92Kvv"7`>lLmnʊիO)cJA,So@aڱFTq@ZXVWG6tT܌a2*c㖛S..VɹDPd7pIMKxKF1:JS>7r^&9;ĆNy-TrKFsVK<0:}Hfohs7g/[BN-#[z1*{u+y n%+OAO/4ޱcN]߹P+)q63B.j_&f8C͗xKMbs<2{mqi();:(HZ7ѷ^xn0J0Ṵ\JK4q?RrxxEalj0ꙙ(_)u[)Tld
Q8PH:5Zi[@Mt|f[0GOvH Kyd-皱ԓ_g#ؘaTk!)<8QbN_rؓнT̴&@oUAHV d)|;%fתL Ӿ}{-8CU\L8[owӔ%6W0Cp	=Uy.EKފ(p,Rj;7P46hwpBtPy.#T<Rx%phXtj6cB8:K-{BZ@C4}PpY:wqh"ďFEGj 6Ffg*oExmT%ݙ.`z\R~]NYIgӼ#ٻH/OQpqJ؂Tw"cr1@Xy+U/(FF4g[mv|̺j<Ͽ-gp]za^9;ogP	NoKAwtT"Nn/t;I][88!͒ySgKUy8'ȡg<Եb<_H" [
ϋLQeU_2qthuфd<(2$DiO%<gcnF3r.>D`ZvzR\*fO03+,WBOw q|_0{ZfT $FONCsoF*äkb<0&첊~وial=rIZqQ:Qƪ:< 	(Wa7@IxNP?sQ. z*
U0 Ff #仨uFq!Gy4&lV/I	𬷚&RܭַF\-qw\tּDso/~؀>_^r^F$>؅VD-CөAxqW@lyQܳhSH8vc⧏Q/S
%e߲S	Ju*lQNmُg
'grYH9Q6\FYOsR3v&
W*wbZWD;H}QTUԸ_jbJ @wF"})KlBw#[%!gjMqS柢r,Nx[t^ʍ[ں#_]tUbs+a5*n(|~o2F${Qa
|̤$E>Y4nGWL:*&kX`(Pq$p'sf "xlupA,J@
 
rZ6>m RJ"O󯟃t~Y3 ioQ'iU|mm+ ltdKleaok=Bɯ}%_z5PMZK'T/i$ЂYk}!@T	q8&Ϣ/jZ̫KЈZX{ξz#fIg-b D}<xlJҁ]r&;a1G#_t5m=o%3f[5RD/[(.H6R,*gۚ;nP	)~}=iFgKxkaP;Ol c
e˟~KܸeK%-K'¿db#JvC.ŉ_j Wq],aC*-o"!m9pLQAqNɖ#؆hYzFcx~MM97',Հ	TLJfP|^"unHf	8cFf(M>N-z!+0rj-/lXGMֲpOԺ΄-kzǕBՔqW[hGġ45slx}כK-I9cK|0g7dο?5ݰ\;1_}4٦*x</cۣw]/w+-}AVAVfl;p@xw>atM.]&TIeWVkظSW/OξKу8bm sU:.GTg\Mq74Y۸Jƥ=/of3l#wX<&ou2xߪ'
;w.?ػ߻9yMcbؼ-g}txo_o:Rk\-@M7r4Q-I>dtž>q-z%Lm?T&Q+gYDmIS?-N~OhD?)~nB:jlpۗ{or*HT:WL[r-!p)q.y9ڈH^w/]^v_,~{^כq.A-X}p|_";X;j	:'0[G{1CAMRj,F^vtN*#6PڮxeeǀJyP╟@qq2wTH1an\5v:,	IP26ERV[[$Ďee5Q{peӔ.0
GW'tLLMNXFt]_6V5Nr?gs3Yu-,.ukZa;e+*rp\u
M1OcНC&Œ-J2{AU<E]1~O-UަlB2@-U8HPA[_Լ"bWfxeK+"D]|k7jGY1O{[SQ<55iqz۵ ^Oy1>arʑum$G#bhshG:7ܤg,%+]QolOUƆ|rދ-}#{@{/E|ѹ|{эv8:omM[v"nC	@<A`xYHekvZ~ee\S98
 ا((ZʨTP8adUiAgep.
mR;FB\>3Fk5^~h?xKί. fޣjK$*B GcqLc|Ȼtt)~}8*1Mf\:*tITJbHv>  .a/񓧻}j9^vLW^_]/~"%:-u$s1crJ&K0nm2hn!2v֝`ak_Vg/ [t A qBkwx-u$U^t=zt_^2¾+QpUt<i3-M|$e5saju6s	-i/~~v(fevO/^ي@Ì8uZPB5"lN|xsx:k"GX%@>T}bccmǴ%:Y6J5fRC4Q16omAg#,ض@9uyqz޳́$a6pB)vRe@p99Ȯul1@'v	\R4 Nf^@N'eqwEr#OC2Rգ>,(#ڊP1cԴ3[Lc%ͮ3Eg;
iPAɣᦟD@v3J|ٛ#UU 4DDvA*5g=
A~
G1ʒFe Ub~ס@EcP
--;4ϧgXa(GSr=JnrW@.&d0V(6)FŊVtTh"eygYco@1dЈ,Hu{OG @|&N-36ieSEĠKBbk)eg*O]||[_9[QXF`M|XX@yΆKW w^t%էTY\P
sGaul>d"̝ewVdQ\ J*kzQ`WMD)&}|$(R9=%(=J"_4	D};NN\}zp*PgKq29MiME9oso=U!}͐W1(oh$s6M	PHKw4z7
˦([f[ǜ;?
OhV4d8+S)2"R{rВa4#l7ey =Oћg~I+G
"me@LLKcUYjTlA:J@("]Ȅgmoa#CZ5=wY(K|(jW:kb'p!TUT-W4Bb@/uIcS9QljLU`>ݢ҈ƌ?grvw|v7	OjmڞZoyhU'[e r	Km\D[\d`
Ԉ=aQW'.pe]/N d:_vTPL=7J!2@eCaXާ|?zw\z?Ob09ʖ쵮hj$meH8еIݬ7 t:Q(^h}h&@Ȍv,BȲ1:D"eMiQa@9U.feN*wj.kw~=Ob8JQKVwZڳ#
ۀ!f
sDٕ͵A`muL5j*0,UR[3<?3̥Ez:?~ro
Ih8MF:	j:!:MF!F;y+{v҉O:/Xp|]jǱuNrxj:O'i/8;^.56&`pzAA'YyM掋f{fڋ  ۞=Im (kU0xzta?U&i6Se/~d ?$n &rͫ<~n23
,w7^.
fJ7$)qwrpSJ^-l?Ԧ<=y"z|MO҇تʆZ{:cn;/%ate5/XdݺOTQbGpՅ@r5讻`xxƮAF.;?]G?]s=zmOR\zx=s63>Oq>D3DۺkD%i 5EaI Hdf27ml] ~^`p{yW#Af=eNdaK0H"o&ax)6^{a(_ܱ	lU9W];o$wlˣEx\1I	N@)Wɭqǡ9@-C7@\y>]D,EM-3/ *v%0MXcd zdm<R H7a(6ۄKo9o.|/^ҋ<rzF,澏D< :#`C[dnǨuчZQ sB[>jw&X"
}?ET.=Z|&'rExidB0^lɖUځa, _")`S\=	cFnyJ&&ݙ&}Ϟu-x~f9Yw<MYw0u:3-IMfl0&ƽ`|x2gh0	)L!Ȝ.~0k|9iw6>368N,:|#s<?xO̬pHv?0f76\\d7	5]oHQ$	Kc@b|0#z|ml<62|6r&DPǦ '@}̼G};rO~V5Iߴ{ߦ}i ^AuajxnݡbǬ=©<jB\ٳ Fw$][#Q
9tQ؋tV<NV^&PR7o-#BW,庾Q`Q@ P 	E0r\; 5f0^3'O@B埄[\Ť"P|pEn){+A#dnDϑ#-Z&#(roSP``&?.	(x0
`4\QY1s6iT6h"
Z8^sg˸N {d"$ѸYY-Tyþ}}C읆[!z&k'ag)u'Ș@(['F Ǭ#'Vݯ <u/4L1GCEql8l6a ]*vnҥ1ί{@f~L-ִFϥFbLnP^6Ơddwc[`@!
Be'@z/TeOgO7P0BiS:{
hm>d_D<,>UȌI9YGYzdhcmގz*-ɕw]u1}ib<]g˭A=؜[Դʹr/0lqJ]Oމ<&dTF-{ֿ_DZծVֶm}TG @@z^&5h*k-,L&_Z9[17$sz<Jb,12FKzd&,w}]P=À<OeԱ(<CUa?%8,k\t?0/
N7mv -~uXq]"RRHF'ИҾ#wSj'wrip:c,2[&6RSئ9WL!%e;2
20[*(!(-RR#(Vdj9Qs|1Cᴉ
6
o`n6c&	D% KTڢ|ž94DI9nE}+1o(#4HKv^FΠQsyz[ZZ~Q`_5-1
{`vĠA*1#V#lz@J(XQptR~z140gʐEޒB}u
-jO6$%ټ)/*1
¹F%`)C֛d"M#[LZFlfʫ4<.ncf&0)'xBde^)p=R\7A|('r6Ml)n[Oi0m&FZ~0~CgVы!)/5QhdU5K£'C&uS+cSxP ohdoczDwġx+ďuN*3@jNXmɕ?/y}(ws/Lz9_EB'^GF^Bl9 ?bb@v?camlixLJ,| \/ؒCȱK𲼄v"1WvbQ*+w2)!N)R$XQ-t>x֌]U/wmq"U4B_4̹mA~\!mV>=`@ĎO }_lWJ9 Qf :M;෶@Q]Ե@ iBXpiDB`Ni0ֻ4{ȟ/q
Nw{'MdϮ~Q6S"E$$qSM`1;(6rh/q3$+*!Ĩj杽{dY$!iE*ZQ $TcRfdV*&-!>1AM&$XIn`r4be-Z>l=)3NZn@HtȎ~~BѶݹy^饪<==v3k	bt]KЂ^Mt#vh; *IK+
ҪGkk3VNAaXV?n	֔,5{y0:Sd#GKfp*C#SId{N4bQB1<M9>nC=
sOjIzRbL4Q7EkKJ36O'6@ɽF'_638	`mGxsXOOW*LV|hr81EڳmR|&&M̈́itTފǆ_WsHms	HnwvXIRKK3#u')t[,$_',LQKNz|
C+zihnAAW|Xxx 5>)S*y	k?]mC;ͧ8<##,TϒT=g6dֱjUǫ\2B'*nhx9At+>-=\f~P7~mn#x+NSŁgA_EЇ%9eٺح-B!o1PŔGgB. v3k2҆4w/x?<
ħ̨DZ^g;k*		Edp0;?i!eT&Q31
	mz_:42,1e j؅V(栠8p둣pcѹI$d!0[[T:VkTԾIM$jkn2K1
ޢSqp>P/IȲWbOKٹ6"gg*DE~Ţ*lq\n uTGPv!mI͡q퀵L<1a);?:kSh-h(#.jUU¿E%U$h`v2{AaYq6NAEQߜ9"Dy$WQyKDKm*4dJVWQzso	PF!`GTy_2nr0Ӻ_HtEe/l}A-:rhjSEkJ0ob.v[<PUܧ$\'sCq
fst"˅PVȆ^,W;x;GHz5ڀueGe0x[@%81Iz1ݶY IВۣ[ΜFa"욭Go+;=X:2}Ч:}ډU0:)*FMUŗv7E7QK׷ʱ'@Q}A0L1hdjn!vPB6#7+F&H5DQw@snv9[XB[mwE~Z:JOuMQf;,AX% ڔ^u\knhѽkCci~CٙMxj_
[Z쏯G^,5߻G/wlev.LO\ ,	S&5?S;2q}f=4TOusFD726IfF7mJ|޵ s,ǌVIrd7JDy%&7\TdHj)ZUY?C%bQځ	zBULR͊Ґ2]C<R;<JE/CCx>@+hqy3ÕCJUR@ky1fCk<RR0n!\fHg{&Ric˹;=m)=ɍ.-YYAj񣃯Yg Z|!HMI.J:ϙ2_ȅ,1P&0a4RӒ>QA&"7hyV`AHͨ
QDs?sp*R,j&qnN>H)=>wԊu%r=^;L%DsđXg<N}qmJ4:t#dP,ƭPz\Q'>Ax+_Ujf/d"Bq(]Nڮ'o\xڣw<;\;WO5#tX3_@7iq\犂lptQAECveps=>ϻyPA.1{&{k^z#-dD%C~:9oyț=wRaHKSg!vފbbmEӬkqNoOlk"_u+"2q͕wm<6'#澉Oh$SP#	G;.z
t䈖_MkdoDGuTBFNEf؇Ȟ-{޽_exUn\4VZrEr_J[ա%WF5_`kέlѮgGR-iҊH]D̝ZmgG\X0`
{炁,*
B&^w6v BQuؗpeoUdZ%KYH=IQ"6Ke۠p*6G̊^.&j,,8,Px"l\Q
0QKdO3W(ȳB.p3
E^V3"TcJ.tîy=\VSg9)ܚ#ׯJ~evTG\qXG|SՏ?X\2V<фh0PA)&ɒ,{*<-;>F]hM1jeٳ`wG
'E֐r;:/c<+[zY!Ԑȹ#<D@$q;%!BRs-y=hpѺGT4'L4uV4>PxǋofE]'KenI(<Y>:T/هc/cjtKpDSnX~Wexى;L-ޏX)^J$s	oJ?
:˂Tܹ
}gwINYGKOa9BcV{m')lD?	_;%Z8Y{;Ka&z?zSwy<@I䍼ӏ.jd4AHv75Ƿ:Tjֹ4;&@sh퉏^,.Gdc@j5P.+~NHz'nWBK6ѿ<i݃-4!Ƕv]=Bz_$;
]l!t|̐^_@MdARI) k-O/L>8}*}Q*}[p:!=?tsCku(rEK_]idiYc
SY;Ӭl4jhP32Fq꽥Q7
k_s\)~ݍ~ͥz 흼\
|MvBO:{xU֙_]cܣ<xס0㆏1q,_8F	/Gc0;G51T4ЅXqV'ֆpQ'ֿ%	LK;ͩT[|eɬm&$`yI0<:J*]_8.:xksH;b v68M]ɲlI	~uH#$'u[[f_ӯ)F],=PX?OY$<fhΙ2IecD(d"a w)B-9gтK/~-&#ck'=JO"|bAKDbN2xIlHIdOXDDGSt VsL@3ŶB.d1O0>il 	1X	)~I((mX9oyDl!H`=u:b @"@d$dFJ$4Fܷh?kC`	mܗ ڢsGKδ!g@{9L9CIZIFYg[҃c<rA>GRr:\$\B=QL|mjv7L֟d{ʹbG)>jft7c 1gب:OŜ?g:ER	ߎ}?fu8A?!3JcП}j^6ʬt;lܙݻAgwhW@y&ȹu`Ć#3c2E)IfnF+?: _QtAKuչ\;8B28tggقNfJAiΤ?E&C҈ QPyFbwS'mZoSѣp7"=ap<6W|;Wƞ}pǌ>n1"PXlB_Z9&B"sx"hm"sIpZH)u$m{	AԮBoœ,_ւbK8DUꅟggC;᳈3`Y a~! _sy!FĂ7,Zd^=yЏۀKCJ1qyV)oO|:$DdsOzWB{_s$`>\$gHfmlUYZZh
{ :m($\.:M=NUN?*xȱ5ueST04%zp-2qT&ˍG[DÜ05̢9Iv>r?:mK[A쩸cCMT`܋֐haji4Ys_Zp]qjR]),oӇ̰XXr1t"4g
&?A*.?m)w%.;m߸ne	{wU8(N9n7Idm5[mB-IWCj$'?ʦ/$$kYFjKzQ ꙺ-&?޽3@ pS44wQ,"FizdWQV2/,ƈ'Ói8K$?+<H^UJ#!"4!1芄R@R2NJtTmhH#hgߖ~H3ȤBĤ-M1-ܢ :5J(͜Tg,m-<|zC%E[-oUQJ|`5:cpˡ/B!*yOR kD}ӪjE@'PCHKA<0EN;@+߱B-p?MPdGL->8|oP&"`ڴ&lWTYpC`?(#1e,cD9$TrAxLYdB/δFI	>fGbYxso[&ü4xY7%(A6:$!@iSƅB[̩[dfNVK1^}B#PV9ze U1MhHa<aFׯbv|i@sWwi]b}b`a
;CJʽd7	<)HbkRt![gv3j.0ZRڠHpCk7dKRS;
}8 8a17%4|;E9QVގ3FH1&>ttd8}zJEn20*^.e@k,3e@O+ }T
BYCY5hKe,jS9Y5Y9uzCZ>\!+Re'9"	b)R!Z8]s_gNv6?(IX-8zc"`pI?r<e-ClEn8TAXs GAE|[WCkN/o"^ Q_	9+	.1 ]j&Ttx!hVd!BBUDΒhũZT=ڈ'ibySںX yX-KYOIUv,S-rZдU/ret%EzbHr?jUyڣ_O5:
M9/J[KZ;QZ{̙CM@{V:%3p/d\l?ƞ-A4.RvҾmr%iEk>МZ`]r1y[HlЊ!#س\Z!4D}|L61 }S$V[6ϳDorr8tKS>Xk1ZHA9RLǤ+BR7h_>Y3S LHU<`.	Ҡi) lsӺt	BDXYHgR|.6O,+H6wgwIvukڅ &R%fb ˫"Pg?Z0ؽhq}R>FLT"
|!%YMR(T7X
`~/KV})KjXU2^U*:tHZb4 .BJ(rT;M;{MHI8en4
`f4WSډgCW9F&֪NULUi]b	
*xȯ:Q!ie俎.uA_PQ^$ZJc3+\RZyh@;@)ð}ζԬlsɌ}zUңJFf%@"N2y%`Iz3r{x\N0:𣁧4cXDe..ˠ~ҏ龝&$i7ZAP/f.OǅzqէS#5:8STaUg,1W%AET:/*@{)sCc\xRsܚl?\#nS󰵵`](atA"b(.%e\_M23ڭLTZRxV"fMIÕS&<bE(ZGuE	Bfs󵖋.av-(vy0zS¨TKk=͗G[2}T1)x
\ضKEW!k6"P|bm1~fth7ɬS1ܷo>qX74$S7re_BÒMp+hTbV~okۧ˽(0*o	hs00Ղ.EA	^(;CYXw gi
xXks_qĤJQd2T-$!n&RĢxV<oﹻI=Lܻ:;ʞry.oIe4SƤʵibAJ\.REFYR$X>}{ʅ hG'D^A-P2EE05$jUn\h¢P!bUXr%QP&e:jU)
h+˵JEg"QT1,a15E"7a	:>˭
hb/,=DG"eF8tr*D	;5+8%3ڷkw	ZUy
B
JQ'6@+$jG*cɮHåz3S*amu7FP,
![lIQ$$\=t.(ڡ7os̽+犎|?ѭ_{}|8?7ݝ]Y,X7'wz3q;{G`y>MܩCiV, |t;q=iC}w~2p`$xEԙ}(fa3D+[9n>w>]{+^Nލ&Cwj8s4AsMimv;G8>#ow>Xu|]8=g<=r:s ~@,Yt'`6}+Jc|̼+'?^pzupd*fv2$qG"E;l8Yth*S`YOYօСErU)QnDhJ`EN(s2P]V2ȀG.hYVhvjNZ,&yM()<&2}0})VC+)
SN VLBj(g2HP44R2ĹxF== wUTVT<QE(xIEh	侯}CboW9~؇x0RJYݾ.ۊh*6*'ӑRwpsLl;ĝHJ$	]ŭ,c6|zn%"%NuL8bw\ 0)S:,{Fv-Rak1
QӰcG7?g6hG=)  LwOyBh{ZBsB zT2&?b9h¥ۚLE95XLԱn#%b~jS0:
)6K(G[#l	&X#~\a~Fk9EI\芧ʧ16(:-M<R[ToLU77y_$Le[qFٓ}/ZIRL1HRiTvfS+|/ƘݷklK9
?2byqw"Ccnm/EUwW64XPcŕ,0sQgs/w>`5)gwin5`*#u04F讫e~!`p3`U^q,EDj0$F->:.8azYci[G_yXidNb'"/pdT).p[\=b xF֛0-X(&%g닩O} UcvaoF1S%ϜoN8"'pD*x59a*?Z:￬?!n_jbck,'M4dꂗ>=7Bh%J[C8B+ņK/6>zO۵D).NmDx/)2Q-JUuqu縱q)M#FgdaѳSr*7֘.V@PIpծ:]c׵D@'t՛Mdh]-imY[_o[]	
Lt0vkջ@oLb\Q.SuS~ٯ~lE.'jۤA.ǬnRϱ,^i>ԈQV=}R$-VLzë"K-6.?:So/̆Scɻ~Lgr.a9/-?x/yR/MeZC3Z͸g1Ag
Qv١phybahD̛s 	g~i29fz]S@k_vRUݯ{Čڍ2>%GktpMu1sqBY9Co_Fg^eEUYSGA?卲 SEyS7GAЩ_Srqk+'^2`sX/wX/NB%hN0*ʡThH=dcM~61D߾19S(,[6 ^n0#άؚz;1zѪEs'3ut'||=(ZK٢||zu^<M># *f{F+of9g,+^zW^oUۯxZmsH_1Tee$֕TaY"ֵaO~3H	7,LHDMf4Oɂy5$=KL8O<Ou~ȀaIL(/]9:d2F)<4dawG	8= e4S},>@ C?G0bipJGT1 2"Oa~s L&< Of)aa8?3퐇$fqf	LOXiE z#AC3$7G0t<TC4Ì	ǍMrl)&Q<!0Ae??NL$Ce+!1+dB~)=rHcf˄r{8V)6%CukT#GG2ݞ5t	H؊KZ_6ulNY7Uc5Urup],t jEݽ퐮Lb:4r(8]>5`Lx'NO1nPB^֯{.YFʕA5N5KS5 \qԣI7A([&Zkkµ]PHwh( 9]wJU
 d:@ 6t#*9_jqıUϴ4tͅGݑWc&#Dm!C.Mp˗E撣8f`7K0`MV?lÄ~G0Q@'OҘLKe?}n9	a=J$sўy,.[+9.楧)Mpy`1i|~or)yGAA$ڰG,nFΏ	d>ǵ\AJSa
f~# dV4\4Y
7MfGԼv{MxR/rTzo;VK*DWDpF0hWY+"WRQҿ7+A==xo`W/CUR&B>@ꛩ:/0wsi$
g;ͿWVNȿvͽ?' BIڈn>i?s&>5S8Ҿd񊨄[Qmia)UzzNx{ Y<\ JN+A⅁v'ǓRR/;wRdN$ e"Hѯ9$Y<W9ēZE){9pYM&Mr=Igk>r1pf]_WL]CI({IMbN16lm5{jmZ77MYM>Erւ[^9x
x%̓MZ_mb=!ڣ-Cm[U-L~Ci@^WR҆6axE<*]̡axB_H{[N{fv"u>SrT<&a n

2n5S¼<yKY~βOXPxTRoe	Q4T8*PM?Tu@jײIi-ʩ^ꬪ4-TUD
4*;e?AKy0e:-X>e84eVNNwrr_m@N^HFɍpdh@E*<#MkSQSX"

?.fL\]gG؟CQ7IY9;!GPNIDDa2n6eK|-g/liIe:*]m2`A[7-,7.U;`b,<NݶTHY]}(6춗=MlCx	ؐDX[C⧩^8ȶ1Pa-k?|p#Xh΋]$N?v~	TN	ֈ<]juQyT¢$+Q^-r&#(T0V|Τ%^/sT OdŁ݂21̯?Qt7ޗ6Fz/W}_Zeȁg5~쇕HJRDK:~7=mv7&zsqyyN4Vn䗅\46]W\@ݿ@m>ȅ'?yHȅTym)DÂYYR[~gQD8|ܰyl$~Pٽo-'vkRǂq@:7ߥAG(y5,gl4q*C#|iBNOI,`)Ǯ}q/vBM&xT݊@eRDXfwua	C[׊&ݡL,RKƧ|_ϴhs|ǧߏ~|d<G$n{]ۧ[+2J0S7R48#,Eiݾ~dg,ioA@%؊GF<Kb08` T,yܢ pfFAVPV0NJcnqm
+,al]6R+[
=!!p	^FYRנ$LMH,-,W| @MC(*"J7W{(M/qaJĔxru(mIdJs
	&K O&CBȏMǣaMs4y$Gî>Dvm
t3gDjP?7GLmIkҵN\W0,.NvndIeOr&n*qlWOOh<I J7//xRJ@ԃ9R$U%-Z=,![o
nHqNf޼Segw۝xTGex$ED숒jF'2 T, Q1Z[i¢ M`ټC$2-l 4vO}aE"wcxä4S#`!?j%( *pJV㋪<FoM%âS)bwq 3aTx؝lZ-=VW??=5Vt_ׁX-j\+x:ܽ,h@'
^dHb2z~N16W8SM[fiYf뗌C'&xX{sHOUm`VʏTa,ap!y}+%Zh`wHK9tp|}XH# \F"`H&|"Iw,Y4"/,h<a<6HkYIG<z|4R1^^
{	WKГrCBM$y!d[B$$,Eg|i#`2/C*>)RtmR|NLf!Om	x>H:	,	FCb
$01u!U0\UbSJg$	\xQ\KASdD5t(qqf+]xƌ0^ɹ,I%E֝Xo܇ہ7ں6<`|rLz#+o7
Gm}7od{_ۣ/pCv+Ͷ#[k wemknlwp=M\?M~r7v,4Gf[kbzáRػG7&Y}_.kW׻ZZz[X׽K	h8K
Aŧ?\݉*>`;VzۡLƷmX@!	ޱ
/50c)~ȱXhq Bnsapl<
yZ?F'r"RyK*q%BRE Jz@w^L}6XR	+OS3T )6MLuɦ{)-z:S$ >;>aH45lVY¼sPqE"VO
whL߂Ap5-8+4J	%+
*,Q50wO$7lByVyk5cDj#A?_G%v9Ppu&Sv0<?'py	=>sb_\%r [*gC2PW5T'ӐES4u>P|xq9lEZ荙S1LG|`Q4)RE\Rg3^B?i.1K[$c90rAhrZ	OqȢ֞6LVHDn=o)TBY:n+Rib5*?,g`bB)|053\4	Ʌ'4tTŪi0rzt:94usZ0ifKP
^άWgv*З?V-!b95RiPQjQ.IV)5XvC
-,9y5vc*Ȇr+[_YB6
TƴUD%<16ఉ!	h\hf~C 8?xqVӰ*s)*cpw;vIpt!T|2~}O_fe,Ze՚mS~uazWয়;2-4u嫭,M"xӻ>7|**"R S6m|MGI|>yFY;?c58̮5>M,K|{敽ǉCM:;8綞FhI졳-4>Ob@pBx	$
_
DL*$B~&BYutԉĲQ<.TV56Nbn#OZP6>WlB"t5ވ
;h**9JjFJ7BFBz__aᙈm RIS):lni-FbMFn\"WW,ôI-k m5(]첄hP.܁7v9h*3f/bU}hS_$K,F&(Ij"4naSW=M#u
PaW	&x|pΖb_^FRUI]ZnSU'q]NЙͱ.}.- f.ZR!u6 <XJBaG
5r-Wqћy~WzD%puP.#%JO?U_-nҭ@n
B)X;;A$\ƾffm>̜:ؙFcle1[d)`Y5Oӳe+Ao܏	xWmoF_1HعZWH:?XS\wiE%%Qgf]_\@*{k\B)s\
JdlZkYDTLL)豊->*!H(գ蓖\Q)*9qVd# 	6s )9˸&X)d1 )I@搳,N"
ZW&T*✲*Zfz.kMP(&a>N	ì-lqV(Bٌ
S_YOLfarD숂.dEJ9d(p0f/r[U¸D%h&\.p2͸4mdx*BjddM)nUjh)CS\ř(ЏRV&~
G6Mxo69M|3
ON8Boy7dd> `('v2vlw0:'Wi:!pCl; {`;Cn2 עnl4'^`#!]ǽȾo
FxlZw(8ˁ7yOFxhCF~ǱDCuܚZ'8z e6"ǅY\g๡>C~	>Y097w'fNk7@n`omFC.`yS6+R1D70	h>h~MV15鉱G"mߵ)~M/ٱXOt
_Pf+Pe/x~jU}확WJN
[GX;9LEcqN^) QuhJV@i<)xl[F]/2cjQ!qpy~BEW*FjW/YU4+(J_a,ZQw3bvA'^Lu	ө|Daq^"{\͢*|驐Kɰ׾Ydx cb4!A_ +բoFK!:6k7Qq[fEŖN##pX^>`oojL#'QwwŎ6o]ƴ948LLApO<	}n+Eŧh;?cm]$1V3/]QZH0ٙ S|3zU
޶{rj0==aYouP^7+%Hw4jd/4qݫ?YxM2P<"{@Ǖ>$M0yaqjDIQ䵋1v،n]u;߇IK`[mBƢ_g:˷Waw_:Z<I' UXJ(EC͆/|P}j3|ϔbpG1J"AJ6;«UYb陗Ūw3@nT:mh<4o)iq6#ê/Y{ttT|i:	-tK3}<>|ik?#|`Aeƃ!hsBTHfXS5{ RWkӋK(7蟗/ uH<3xi{ '0//VG?^x}[Ʋ
}Jlj(78$>%kytd{[doo󱟒,Kٙٙh4L&(/.DFta
?~RD7ŇQ<\ɋQr7/Q<Q}I0D]"nD'9t,	Kx<8g"Jɏb}uX||ͬLL_|~'ﮦ /hz;%.>d,`i0Q0,	6Ow|$݋W4Bqkj0X3Q;`8o  U}j\~t:+nԳ;8O'\~rE]0d<̾H4p(.{woIu{OgO?ߵw~ԌooON{w]b 0M"G( ORMա?874t`bE^ \T9,KLuE"!zKEV'ЉId*l
ϲؐ0`(jPuKo
U$FѕAXvc$tK܄4=Imx0֫UlzȏyuJ@?gDD<ZMK4zZcG,SK<N0A`O>y^xլ񇤦?"|oi(/~N/VYy/?<P_ϾF %?K ,$:ua0!'4m`#o	M0'^_d͓n$XLR8")/Ygq7WgOt	h4U-z̮)= =p@~:9mX]1A\+F+=IBjx֨qRZd ?6HjG7aGS@}[E7p ̿LR9@338W3 gA6Ox|,\?$8&Ś@8pRŢkCo)2!L6B$SdClm'yatjC&-~"M8ZQFq9@%0/Bv9ִF@HFm3Oo?;oZBJFZy#-絃r8o˥I~~ْԠi)B_Y٬te>&1w"	/΄HZ`!.Kk^A-GY8?BeE A  H@P`%qdZBO?Sh[4H,DCz}Ȁ2ğLOꜽi:' 8]	 >E_ `Hmt &	jN&-,qA
ZDJ4#kw{H~SwOˮL C1
UZQ&q|s-t=tms;8vN'Dяq͢	n_kcz@R(1yu8O|Xaagm2g6(Vѳxooh>OEۑkEѫ &qy"dCC+NؾM2aǙ
j~wf$FW_cwMDazlfiPiDTdݪcP>qԱu_ o۔~",eKqH%BnUM
26bD-Sc!rAv1~~=kl6w eʮ-)
߼/Sd@Uk G{ v?2?x{8JD6lH 
`ԗV_$ AO0z\xD^:$H/5 z  6)SZ8!B
*
d%Gݻӌ:W>ӭL,T4ЯnoJb2+,Yc9$ix>KkFFF5uI
&IfMjhZ$qB=>^`ϻvsiX}^o۽^uzԮ{@st2<+H7LDpM36FW$pwN~V7/-T:jz6uz'V:|Pe\Tfd|ʂ{:ktzg^4ZNרj/ds
I?ώ^^V| QlvLcB͗!L4;|nM
<9)e-S	Iy\j za^/f۳&}vy촿w,`aFւoN@67u15"b#T#QA
KQYƁ"GH4MN[v'\W.)$$y-y	tKY_v
ѣRkٚ !QOr>ؠv((~+hS#2_WZ$|S|8Pj]-SԄx_txLop 6F~am;Y\ollS9P΅#VsղM^zֈ1nBBdBRzG#l`SRHWuSds_۝gW<NB~9լ=c٫sRlH">b
<<)γ*7w7 }C'{a'`R&]y]n$,iGRF/[@EHSN6-ڢ:u#7#kJqVO24{#Wd"y9ϤY]Uςh$crRj^?`*cY0>@% *,nC)Y,քH$Hv2J_դv)JQ?fgUl6OLd C7Uzkhe@C!уw?`T_S|1%k)SW~R(`{
Rh/j&OOT8Q|*.
.eWTa7Ki<g*e;B6ٴx92nzdo'#3p+q
pFfYЫS*UPX,bb&?3S9#; j,T#mh>{81j\1}?z"H~]ĪŖ"+7GNcGu[1/J= ʔ9R]8"aQ/C6h{=&;㓘"ESbq4+3pAt7p>.=5@^pyKX,0N݋úI1	6x:ż,$$g&AQ|{)5,>	Ҍ2JT]LS2*yklT
S:-`p/~'7`%r÷"a@pbaPҳD܄<ܶg$XܱqAݳBfqB%(9Aý1/+kT8Sc[6P/b+P$a0cF,Do*2aSE|@v:#1U}НOPn{Ry;hFS1@9$*# Y
:9*s9,_ukX3B֜F8ăګ?g(g/}uEAoV/1mNv܋U֟;OuV 4/RxG^O_cYe4"9%`^>w(e7hSU	Φ(،=iRPޡ:t`Ӣt9Hdq='2S-]}4q^,p&)gcWw&N(xnO?|ᇏR6y$Q: 
Uֶ"-ɻ:&X4(GH973cG66/'&em1
HSs}gwg?5_8D<2!D|v>_zO?(SJvK\ԫa J$CFʪn]mq!I0Wq),@'uH 2t)t\
>|jj{x.g2.=cx,|SkYQeKd8D:x_^qmQ9Y-dEȔ˽%]qe6KJ2WeDym-|Y2:oahEJɯuϮlb{-Gݾmɛ^iHQ6>T˻bY:ߖ;V`{v5xvkP#ێ4ʆ۰,q>-%ЀS^i $rTE@BJJh@	z5XaDHtR,IfY[יgϙ4dkfqigV44Ot1yxo+-WTh3D8L*WOA
+kЇ,Np,$ؙؐB!ZYx#,EssXM՝w+`܄+V@6}) yA[A"=L@L}F0
aN1lJ)" eyެ} "I@g ׶6.G*xvJ88Cj]8䖣}k:p;`7{ -y$ ~ӡs슬2 ՉhKQem7#`a
M3*n;|
!B`$\0_϶54쿭)8StB]<U.Im dU`٠HBZL, M;/
"u	5ܶA2a۰{a0.E( m1&F6	r8iu=#e)Yd`oY$״JAʃgdp?|AE.O0jkOgaʝhc#RpFw0Lb
Bf7l諑B˄ǂ>EљU0QfsJ:K$mFAOtLw0QLASq,+N+"b:(ZQ|U(
J̻H)HΉ'Aj]OĒPH΃rL6؅ 4dq`>wd.|X{R}i\I#ne} sƷ~`a/Y!O8.P80x0AGK|ƍa$>ә!)>/Ƙ J"xECw=QHӬAko"hol|{hI<F6)#'$(@
tИO +K»%c$BԔ	,G0i5<YY3b<;u:</HːFrh!?Uq}96Ff2-Э++Q{we:A֮s"!<aB3=,ڙG`HTwz_^~:.ޗմ7?p^/8Vh_T3oZA/U6PP^N:6YQ̊.xՓE94OphЍ֦ .шDm:GoJt(Awҍ@'6JW/)IFRSG,
ᭈe5l%%6wx]ID{-"Vl3f,*֊+,猪;qTDɲ:3#BxV={CyNk,ܔ?އ-:W[iL ē8@OS0,\"P)1DIQmmsue  $&{ՐG!2lO<Sd.BT
s0@uϣH@$^4^{+ lvȮ.-Z]65@pBSς0J y{OS}]1;10f9k L)'^^H+Ù`xs	|q$H= ieNAѥd6Eh<aJ0RN Սt'ag[\r	{#dj囒 s`٦B1gzE:޲pHq1N W6adڊlH#soNO$ 1 7AB
%
9OHm9skWN0:ێ^XȌN=JxG!e_]ƈ,yRhӎ+͢VuP
EΗ%s<:4apԐX4A{+Όlgvr0T'l O;.ޣO>*iVNZ?-=:`l'Xς0MߟP]	{SĻc׽}o}>=6Pt$6y.џTS HL8ߏ5Ch;lf5(TV+^sdtfpgD`B D>ᲟQ4xBf0VT.`PSz;3'pUC,(@2Cb-8`KrY2VM8=Юe4	;GߧR,Ց7̏eh]r/x%O+$gJ覀粪d{g{6&!!!SA&lpKo	P@)<,	-9]*G}6t;7p|X+*)(^o*jP˦,N2V@OXQ<9JW?(l50B1Х'2ZI5a(Cl[݇}-`5Eֽ|cy[Og3w˥`wdI$Y@B3Ч?EϺ˱6;=Lr0_g[>++ʙTd¥V3jcÀꝟԝZZ}ѡ>F*y.	VD&[
dqK,m+"+q!)y.:\brb%Ek%mM_hxtgR/)gU^(3ۈm*-uu,'qxA%$0޹grH{^\II~@"L@NXyw{fvѭN_M$[<EGڟN=_Z:ut Ȼ?}ɞ2\G_FH_kc\f_p*Qf%5hu;Eܤ#3!msL/ڂDI|9tOf׏E:JN+T	 ^ljǝ	Œ9Ai[$s)><YfJ_u(3T+נߧNGYjS(mtvJQI"j.^Q!"h93UuB~U-⳽e
wj|kx[DqYBk^!!['F Id7QM'\u1KYHqb{MSxQ5b/QKnf^EiNWҎ|4Gx&ԌݬhqN;,\)w.og5#UuzT2%Ya J|R%Ne>[kR~\ѫM}*_޷ ;i{:jy9prLAW$5!1)>9\<bٓT"<)O(7:9	йt(>!>!E0_dzuDwL7m-Fw$@$3|mUJSaz.t|P'oV6EALT۶De0lz˓E3s T*@1~(tDwNlB3ׂ RHiH8 9@nTREo'>CTwjvT9rqBix:HFl
},9WWnV6Lm4u;:=湯nHRʢ䐳PRm,ɠ*?nS\.QB>dpe_l1YǠ6U`Sa8J=(&/#Ov8eXy@8bf}Ludr2&-q0}r2U"&BEY R:9DtO;0nMv##_`I܏_y <ϰUwz2>qu=ݑe`Wɝ)PG##ZI(Jҹ#"ƴ0%K<PgyՠP-p/)#YKΈ&.olt)8vG*qֶS )ݞ0PGa=)-Mh@KJalMFg]9G 8Mԣ^~LɣmY`1GS_zTs&ؠ2vAîoR/NC3@{@y{Չ+EHBv
]X*.bXOYpCbUN{Mt!wBeG:sc2mzOd͚5fy*#	[WS*Jx΂|5kwWBC!17pI:FUO"X^93]Mȷɍ+g^n}D4Wp`릹/jfC8/deo|ЪdAu6Kea;=?W4M(sv2z6UmB^[5NS7`,G{I~yvO<fn|x2XR
ܸJ/Mz
c#_v}ǧY<ft:|?ypδLhMM$Jϴ2x
rV.8.3;ߵ?(M u-Ԑ&驟Xj=< UϫiejBޕ/99ZWjp?*⅖^EtqEwcPZ#
'SE|yGUm<O+*0(XCW[=|F<SBtxzl"P{iUS/qW#Jt̹u$G	c-DM	6䶋bU)tB6 *-z| 4WPa9b
W$,,rk9N DG1LyQˑDպ^uC)CN̏Y0S؜XjAq 5#H;2]k/`NBȗw]R3JYd*N(+'v.(YDq>(2r_R40zMJSgJʝ[E+Ohмܦ)+jĂ3K''r<f.L?RwG0vfiUzK&3;9+9p-_,oCS|ZߘGka*u/Tszܢxf{*K}ӯMg伲5=7knٗHYC<xl\57ה-QhiSծf5{$&c"dfJnW/г~(9gs{\yYV+FԬt^Z~{Ϟӧ}&ui&j$h_-%D3$F5]fV}l.
ԁd$Y۷Wv+:$)eѩ{Y.O	;/),F9]RʑZEV=`t.$
3sq٘?ӹkt[>PR[S_ 2+դ>1qEh$ΦGh8FOţ)7geպvrag0ɏ^zA8@xIB}(~Xw3R|h,BҡZ%N\?kV3X)r>_V`8ĬH<Ֆ}.K]EW49U%jlx<꘺mtH7kM#/uGEm󞨯xoEݘ(MiY޾QkCloOj{Ɍ|h&Nr/EIpqm (ѝKں[g;2xDvrBݬ0ݰi6ߟ7n]VIc$xgRTjfMI4Cj%)weQ_ xo2-{^c'YW_=f0v	/OCzhTѷI.薖S.ʚ[`t@atx0dC|-J_;Yr۰<MN䴝WJWxi틋jggUe꧚
0Iz)(뽬+y!kPp%ޛ?S^zYG$0aD+b>su0cƸ'2I׭Q'1L(ov0txjp=|m{ELr{\/^*VƓWV\wy"5KqrUKrk$:
SJCƂkIY+QWu	LUsC /y/2
q*>CGNM!fRĢe FDA9m'RА98EB!qP+RKã:jc6#9)a3FpxC
)'-n֛h$$* k1i:)J0]
NZc7W4r[\9ksFZ 'L$'
H+OaFXG^cГIM.-5.XΨnĈ(thltEq@EC15a%mFܟe4@7*0G82c^}׿x4RPZo3<z0%NÀBf6Ӗ3+िIK2uwx  O#Vx<"I[, OYrV=>2}lYeiXcx%|qXwaY$?e},nߤޢ=^ʋC`aoC Yh:/9+_>6`Ladu+(*ܥ(bM-݄Ul@{eoe˼of_ؽxWmo6_A4@Fa%GQӬdXNaZ:9\eR#)7^#er,;n~0Lsǻ#y3BFO2(~tsm !:RωG:ð׏!i[Ee
䍐)D#k u~n~dy56	.Xz$5BI04S kȔ%Jv*HXQ"Y)å8n21$B0~QfKc)A#/gM
JD
m{o=#OV1u&==-ZungI|O]0QH<B+3DZbC~c9k@ w/ů?ZÏ:P㯅RWfLVlWLu&66fbw}0k]6IC[\2uTrI@ȠCmҩPB	v􂭝J@)a=I^˅a!	ˋgoOO2a]ݱ,ǰ!qME~<biWRLA61bC*A.qԱ27tf?G8qg9Z1sMPXIT&1|{ݭnFKl;P< 30!8èJaNK;`{W;6:ɴʹ[qxK`UlCR*Xt-:^bP3P!5eoiRl}=(w"YeD!6&NyvRqHO=!0E|=l4oMncnƿfHJ櫶ٿ=Hj-W,חl<V08mS5Ը\SǒBȁ܌du|Xӫat;X3 ¾^\+[RUA3xؿ[MvoKvdpJ{@PirWzlz ۗ>V@׽V۟j,x\ko_1HE1"i(%CEa1ڢ!ʛs{'Y _l9}joO7wr+v(וhr#fm%Eٮݶ`oO#N麦]j,&_oe5FJ֢7r(y'nSm͛ufU*!ԵS$Cum䊥ZIous%;B<[2ѳU%+ѬC)GSlob#;LբRh6}4OvJ-P\USK涸jˡfS5w~)ךP)nD'4F)@JiFwbJ\f6DV|dw@u{u~WZ3;r8E$ uURCl~]JBeY)r-IUh?nPPXWƋ.b~z09KP|g+V,ƳG1?G`(&?]LKjӓDݞw"Wxz2])9ܦ⧩O&#ugvz<]}j8Cw,Nǋtxgr8PgBm49Vƚl.&w<ӆ3bܟ~\L`n(o'Mi<'w"+FZ2~8ЭLj:ig:T.V죗~.'C1^L8Ph*9Q	iwZkfgˉ`2>V얚^z0xJb?&ty~t>x7k
D`U|P:Vl||)~I<r0{5{'u^ۛN|RKVnz6Tf^L4+8AK8CGHMO_Q"D..Z	`4Tv5Jqf*?"x:Cs*e^=$*@___G);aDqSN=*էkE<Ak#IkJPDDfWkA9?׌>c)vMܣkU$>-oICv
I>{uMѧ=$)vW%1]$>tM,;ǤK"؛("]Ddfًs7E|Vcص061]AkɣυE'a1Y!25'si'$}XG=FÝ?ei}HrG$m53|΁Z[A;x$SFO:or@jL* %|ڥlhV)QS5<uNO2koxUyll[V\pŕFO@!bR:ϣ	6ύN	]^fG.&\b]bͧѐ$<ZH2(ag$Jۣ)j퉱3NZ)9ፚ$&b`[vE|9K$9C ?6=dzD$2ב׹q @3^]+2WdL]
j֫wcDLΫ՜Vb"26QcjdXϒvIh81Q!s|#g6;!!"/	ˬeb#%ˣydF
>dЋmi{>U)Qj˻DQe*Vʲ9j,B{`Ns>z}	3.
cAA#Bag0tϨ9pXB2}]ODq}DA͹Ϡ9<Dys}k/~	~ޮrpk\E9<x	"0u72+j$(*0Hhz[CzdD?jve2FJ>w^G#!iZvX*b	ǬjxDFGȊ`&
TCVG%YrTi-vdugW"Ρ&Cu}v*|>8gTBot&@|^Cޥc߯/C?-`C}1qLLho7D&n0!j7DsJJ3`qd,F*:kYk- j4X}VzSPIf*@;Հ#t*4AlC+_*Ha?'*do&?
];BMcfF*]kXr2UȚȖ=nW+>xNǸ΢O'TLT92Co5EΡ_;_fŀEqx1BvHc.R !FbYS
2}>;'}߼*x%05}t.X,-9w8QbWdȄ
DV@ܻy-yIV	tf	.d]o-5mw=t8.BEߘo9u1Eޛ+4Ԣ3~ A#<7yaADO5'i">*tm D4% /](+uGY(K,e,ᎲQ;"jw厲v^wGY(e,㎲QpGY(kGYf8aػ22tֻ4s_R@K	
 I55jkƝf|G) '{
t֩
*:zX^9R?Q\"C:@V{,f
-Yl༢l.,;Cc>@KhX8bE'E9FfD"o!G?U֎Y^GJ"/";jdgE9X,τFWiUe"K7-n~˭stZދ(мz30FX'V%WLQpȯP1aYT"d~o3WZU92n͡&BEnd!GpNc32VO2U.fX~ў3U>=峥'3yr!u$#sUϩ|K+vb+Wl52!'ȵWc]z׾ݍ?'m7pU~JkM~IwB>9w*_'ǎ_?g/HRnn6r{^Oh%j_3zmlȬ8/BKnC"x"xE$1,&ѣDOsy((Wd=2zi.C.ɣ\rIe~G@sZӿwq-/ ӀxZmo8_@Wvu-'ku{B%:V+S^J6W~)t_ˇyҏ@=]V06I4]ux*lg*$E¹|O\	j3RoqDZ:\RþEJofSTqUw$DJC퍵@|-2MYhZe)ϽT6X*x#CoxMHfv#}{X(3r$	9X*Io30CEX.Xo"= ّ<M.ER!q}I&7EdQy>]|ڦ4IGZO``8&#]f{On
vSGsOMoNFGbFF78{|8OzBxr\^9Z.Cmg}P;OٯQx<q AQ~B9[yڝmhavQS00hrXF@	XZGaӸ+~:#y&\C0!P'Vŋ]]̀-("ĂMO?FSdANP#{Ͽ8(K'	E 
*t$Jҫ,'A&ƽO`z>Lqڭ{}kl8iyL{9`ޜD,Bݢr.ғWqՆSŚ!U3ƓTK0|7gwqe
Uz-eW?/c/^UEtG"
+
oUt'x8|Px}L@sf< +~%Q
=ʸbj%&j2{jh.Gk\aങ0 <}6Qp,pK{;^:$cB/WȊ`n+Q"xpi4pـ,uE&ZFr6j^ EKpRkch 2cA\2wIؒQ~]GS_l0H$OxҦ²0#q[&׭_D0w	LHc(
(QJ."LU]fRx<%#5lLc.y#	DP >zP`!5kQT] <)w2%ٛ 8Qiܘ	W!%74
XK,%KEj^{"/ӵe$JaJ,ϳT| ,QװY!h-im%	ր	J1F1b
jL("Zg8	.S'z6^	ؔc	E0%G~(XKXpwװKA7Pc*z>QnNGԅ=:($:_f5Pa$i	T,3 8 qQ\It兺e9ER`hJ&!S?	73
҅(x.LPqUXzE@spߥK	L3.F9V\{d.o,oo#~	'/瘫"2t93%KY]j,&'HC$wgJ
d
@$ߟ
+K3.cjh6-nY F5h>,!r"Z9djpE~,\yl|<Nt4?Ntp<#HMlQ Fm`\C#(jݠGʣ;)ׅzP'QVGلVkM1O]+P]vP]n +dyt~bi?iTeF)lJWzB4UF%?{{ɱwM5%XE[Q
}V^cKCb$L<&C|!-cs}RM@ٺk~8czgdPo3H6.&[.Erh_9`9A\KT<qTKv?st}gDQ	y^m
VCIhN} p:, sm1}^@^o6wߝ %{eh;n3R]s+K,13X*[1䐡e矰UP4{PY3`a#tm׏u*g[LF]2i
!7J/ם]!}}Խ$Y>P*N5Wf̂X:ODEk)s' *ëTǰ3
ᔓ8z\-+'0:,Z`}jJJz\]Coл[YgYYtY+5צm9L΢p]4 P3(t-}\"HAK}8N8b}I!Йa(vw%fֲqT؁{9Rfiht?3bҀ?i@ ~W'd܏.xN0zzA?ު@vy.RZX`Qk|Zך5npŝ2._={K"?Nōxɧ#@9rt(_Uw{} bG3Gc.&^Z@_bY7nE#CW)֫J>fe椪*.c%FZآ64j;pCgPd&s۝(iԇ;6vC::c;kуWTS̀S|6r`]cuucM=mI;l%>	DMlgTth6z~?&:;fa&9$)p[G4ܛ8
Z|l"[Ժ{%̪.-Vk컄;:y{pS/rGi]-&k]3϶zA>ѵ]:ewU#ծhLI8&ty(BmƠrjI]p!TotYؽOҾSu]xo0pbc}-:^I_jѺ\7h*6
Rbj{oosL:U'cB\7_ҁS#bg(k/i-;-}Y˳,L?At_%?Yg\yOOFt2k.ӑ7dpR| ~gT?iFvSxMo1+FAB*r$ACԨ8f=NEQ;M=Tgx23X.l6&l8^{5H!3mUVb֟,l_SU+mL*nHAc%sLHk!
|=cQQs0kbȋ)݋N,	ܓuСϭDC;):@?EǴ`JV
EfihC5GN4zZXg&sU]ݸ~X (
aVa
N+X-V3% [qe)Іí,&hfi_qcLFl9yb"ۡ5yl-B_e9`r{!g~Obh,i<21)WU'L`ɒ}KS8HCoI3ZGþOW2EEYH)O<\%P[͠5&QU	ƨN"0+'GVyKaA-hge{y/ܼx[sF_Int3dfڎFFQ#$;vN NvLǑN{ۗ{@;?$TDh/!S@?H$M*7+Y28Hn6"L x%"FcFxAD b1E$OĽ0Ƀy<<?34$Y$HwP>B"d}@LT@8
3&GN&Y!N)GQb?пL7OoO\i9YDQ8@@
Q@sR 0194ꚤI3͏Q}rXPV$S$? w1)2(ȵ&elO=i2P^N8M"ǉw]̠	sݲMF0﬎فjk\[Nwp Rح꿇~OCj`u9Y&6[vc/KA\g h9B<}i.άoÖX^ˆ=Ld}n@w80`wu[ub#=Acb㙉zkZ֥4Nuaʎ%k&vA_(`W"FfZ5"ۃv@`׾H$N`W#sQlnDJeO[
T#)/o̚*}l;:<%D@:%wߺL/QqVÑtL8CwdL۵^#xu~նfc8H>#S@wvyxw-<mN&Ҩ	";ٺDN)bE	ѹs}L"2u7u-oPYP6USnO+ț1>G?*S}'4I~ξ-_<Yq?d#+CL^<|@f|;/LBMF|Kp!Z\kj. `Tڃk״mxq[gc+Y¼d<tX=|03Ӛ
Af\+(SD}z88S]rRӃX_I1Q&T2-~=6yZZӉl8'K0Å\B^#シP_\o!Jp.S Uߤч(N;4ȟj;oK<C:-:Mh>`]_c{Doq56ϓxC~|oH_"g(m)<'h&=hE;=`߿= l5ؓB32VQU)SZ˱]!9َbTZ ci*_PXSDI?C3T{I .;̎|cfuoj1:=! =\@q\hfgHL"6'&nykhGOB>ӏV6+If`-OTcږ`RH8m3t2a(T7f~@op~i`P
4Ә|eg'F;IYv ȉV^pgN?LgG_Og_3_hvv`[;ڑ+]OJNAVY^"#[r*_9	>]BNPc\$gCvqu>UR"pJi%X0ʧ"5-^+/$OH^!E7bOJ>L%w,q{ʸpwּ6ެ*Zh k{9Id+4Y%36/}6 R<1UM7yNCZQINT+!11}M^rpNj.V?ՖbdMks6FU~ē{f@~ ?K|j4$D `EN6R>F|sd"J7tho*~jTjq(F92-biRC6)ދ?3n;Pg;Eq\QV]{PQT.RQ4VnHM{g1
nlTɥK|M gppdL1i^Z#vZL
D{ِx:c,P<Bd ڳ YcHdI3 4ONm$H~S<7cW)h^Yuy9|^A	^+QM|~j]0䳍vVF׼r"غduXKZ($ȇF̨2b&8	OM&.SzA%$FcÈƷTIQh#53knZX-(8*e6DpxHˎaq1d43/ZP~UO?J\JVCj5֝D̗MR%dncLWbܛP!Y>1CI.dR9UC)3'1cJ}wRΨԒGMItv铫>-
B5^gurrk䌩e$"/2둢9~Ì)-3vQTWF4NkIcPsL95"Z }_ܛŀZ5fӹ.-duѲ0ѤRvD9ʺ{.mtލϿP9Ֆ"ԐOdulw)c,S5/-vե@՝dIu)e<	֟*5t@R~&+ͲC{pfT:ZS:1q)HEbU6IN4]Uv@ ۅ09Z'
Vo+rйꙤq[TNo6y*`xVao6_qH.	\hX>)Rks$CV`eIOyCQrt>(А{x!v_f/S	]qkYSl
IѮVƙz!Le2%VN}*k)ɔE}r{,PZ	AH֔n'j9kM 0yC8d*il9]P)@IOSnmGH&g>)aڨ.#Xm,Ra}ژBme0mpo>deU1B>#GoÁ\\`m|l^rMXz |>W;
T2;.8P{biϬmmXlQ>ٵ@KUPjfbZB=qOP$yriHќfi%c:8>&]FH8{䆂~q_gi83TRt;F!x4Ggkd4nYcvhQ8{߆h:FCn,2 7Yfn4Kg<1(I(l'~`:;Ι(=IFd:qy_p=hn4[X6z@8OBp`EI%qGiW_6a4sqnO\]8%qq_>Lpfyxd4)j?ިRy:Z8\X,zop|Q84(4z^gǶ3`}?5Gmr@ kaQ58Zwki[egY¤x@%Oz0CݭƷ4bhj<2fTM<p
g,iR.B8
%+:R8p1~2-T9/
ǉ.m@Ţ4΅ZJSzn-"KևGequrb	3oK8y}ٔ%	|+k:o$_P>R$ǌy	TՕ帙PpGh}Mۘ}X_J=u}D"z; ʰ[hC+PDުT+i/P%vrzJRtBsA
ѥZܟr+=*c|	 *qӀٻC-i&֗8Xz|U7@L,+̖a52ܺ+9 [t+S[cbrZ"m|MEDaڥP1S?Z(9j@|'ufṱr4U+/Y.Dӎƾgm;дerغX'/|lRZ揤J_5>ZvLnjv,_Fs>]Gn4$"^r_"VAbhNKHq<O{x@SajސiH?rtBj$*KWVO^O/U$V:өxZms۸_$3>ʑ'vN({9;9e2$)Rr{w 	,'k;}Y }vige_ӰTi&<wTyl.EC.D!d˃(b.+ZCy6d#>KnN'\.3þtJSa0x*Dt},<+Gt\RsXz3(/H"(O2>wf	\9[E[8܅Xhl;NIk͡ -Li)"zNX	u~pZ.]c\9Ūp(.$m/h*oyg]ͨ>Jgd|9VlQlQ^di~|tʠXCM{^[TcK~eqKŊ%8| ڡT` jzc<"MxWG.OB~.Zi|"
j;1arp&78Ɠpġ1gE%q.;b	De'\ ?r/<Z=]nXt	KTBQ_Sx`(B$Eî3YHZ{~]!~C隃Z]k<(9vϣK#nv]`*v+25;·'|5߫Iǳ(r(:$iőw}AO ~3OwĞa#;X/~N,ߜO@Yqy3i)t$bTB?-C~Wx>.r*.ǵd#z܄Z%z&d8<`L?siP~<_8V	xiR
3	~W.BS*_vaO*;?bއӳg^KW@ "1E9$s9\$+[" M؄x-Qi,Jc/Sp4A.Z6#Xeь2Fs%1~/wԗyBmOMGj)1s>م"ީPՁ5Wk.w7"IO]4a<'5߄q2TrWLkEX<	s	i؅oVrAߐ(7N;ptTOڪ#ZN^)u|VJl+ρ,[}njÓm9I`ڔxɻsAi7^cA@qGRvwmw#4Qg[wfWV[?$t?NH^ke&Ap1E._Љ2WqT. r5<1*U2[=`7t@{w40+J+448
5yZ<^I!XRZYmT49Bt&dWaEl&	ϙdS4z@~H?apP9zނNmŹr'Sn8
`4_8|&ѧ/=Go߆'/K{GPbu\#n_2~K:v<%O8 r$c-%P:~6`s׌*q&lFTxU)Pq)xt7p59ۺ7F	ԩew(f7|mpCn',Up`IEj.j`X''R;r`
7D!y*ksɑ5fmm/4dଣ?'l0B1dH[ȰR7H62a|rU.__7)Sӣ0!yim]no\mU4Zzlk{G,/pMV6c~pCנׅ_j߮/ǪqMNpkƏF= rm XMe }WkeL+FDg@rMpᗸXzЄXW_p`UGPwbVa(`r3߶0$A#ߘlcHKHeѺd1{dn-lmXe馼`5퐪jW5ae@nh{xxQC4G귾A;rgbPʥftUYPqQ汮jw,]4BU(ƷVuro#$ƫXyMNdc_^!yg_w5^{=ĹGKЄmm7Z&TYM A&:t/ADŅ	g:-}=afzQKaMСj<Y$CQ!Dxbq܏G\/-}-$6nzO@uj=N(w_%ߌjdD8rw	7;B޹5B3+#|gh.:0=D"'{38Lh,Rҕ.!/98Bz'}ve:]ET&j]_c2%tEw9W} |ArN@Ԅ/CJllj=V;~ڂF_	{d*cfnHs_r<ERj>rbǠR]h^d~VUh7pZrȃRWYʒ6O"r>E7tmW5[a8h,;J1u
7C]F[{HtiN/3NΑ*vUsyu;ʮki;tnMRswȏ [,+dy"o_̫G{4.5I7w+Jn6SU}c09e/b*˘!zD`"RȃT_!Q"SOFnmxӎ
l8me' m!u|z]/ZfzIgzmՇoGT%fItpwVyUѫfJ='{<Y_>._EP(iG	uq>鐓q6@'Q#~K;{x=ksI+L5ٕ@ǴmA7ɺYo|ԫ]ܝcblUeegeeefef~:[܏0::$L[m_e׳,I+U?4Q8:0[bũcGs?/KQ)C  6~σ,	kv:dmWN8־Mf5_6iΫzz}o2yb헨kH"xoY,{kܻKe0w]}9ylQ\MRi.Nc`5-_{\JAY}ϣx o&F7`ďۀcM)t	O`@!s+"g&xE^Fbj?rd譟^-[[Gsz)煚H<͒U^Yih4C4fIO9|;HA-c?I\g0p:P@t:	 qM,u)ч"450S~<~$6}F
o, ,<fSf?	͐`fH I$́3)Ъ=.eAGUFWW|*W[,C6y6i:]Iyl?H6+Wfj/"]lA8Za}Zi߼[ՎZ@>c5u:^o0`HRZK/smgYIn,Woyνe(WR8Т
a^oX`2\2HLfewLsTNZa-}K:p%؟{Yh)V[M~")/U.HWc,΃A侢Ob6[ pCnU5tm _db.n8@v%mc+6v)2aI`D2$ޘh:| IH &m1]1aW{ KAi$	H|li}/?>*KE r0q0@inDxaOP(*Z@&
"X\f4mV^xh0oNDlmtHoƲp3X`Rرпl'kD"BV݋)wB.mq] 	DBDYv% ly_
?{$3	65đ4]\a96iWbL'P{/zafGȿ[~phlkJa'ȏさ]fkA~5ArJp&ԉ.f^9i=_S.˥dlVyga)iPIF&Ҹ!/̡@!Lim]Fj`V݋SPWZrmE-[G4?ToވïE,hmjBSј!14h(cp@3գ79N){}-wbߔøIqtl	$OHjOΏamVrwYvXO@j;	GN	T;Lo#_&gs/I_gfp1qdS,:PK
lnLqGgKԽ|3= TIg%^hްjEs$2q^[PtFAff^?IM+|
>|g-$D^|%g:m:F2l OQ[8(I5`߰wg꜕L_SɼIks8Eo`dB	P.rĎsB7)fN8g쌼)0&.,-pJ:Iz-,z3oWضUUs&7,pVnIh'z g zyJtn!ĩ L7E;> QksniفxXK!Q'5ZrMXHkkkgwî*f)Q6;Vn敞Acw/Ou$E-{*&m*^â& )Hԇg4:S/XstJ;}C_KmN&R$ewpґB0P3IO7D_kvv0YkakNEM~B&(.J^ˮWK!asU	ރ	da#{_׍w^4JR/3CTnBN/-8Dz FKa؃өdr5 24Dc<$aV4su;d1{w=ܰ{lc_u|]hNr= Og@4zJvZ {3Bhly?~918IGCT.ƾt&
RcⳄb>akFb5 ^Lb*]WB_$2I)ȈtDߛ:KŔ$00v$> 57N9rI#6mHꞺa j|#}t\N٬?6Qއ[urՖWȄi,@~n0|SVn5Tc@e3;4 R^s`"o2iN&]J Y,w6[XRF<ϟk(Ƙ5I!L8jw	=hv}:/$	g76 1oۊ-wǾhK)rppG?&o]$HbW=|hwzį֩J/b2rKn~?]<OQ}h,7)nN@Oz~xx aK`&J"-h	Ti)&6FS$+G!G)AD4ƗRD &P&k"zۜȮTFpbx3QJ~`ls`f9S^9p`8CZYxKRLY	Ns3'yf?!Rhorgf6;,rh%Q:;8N\(:~N٬Cș3$K)҈kg2q<JJ896]z4w`81Q~CJ0 ]"O
| 9X!NCgћ{KMbg͎CCy
,gt_yKI<Гz3iEKSV"H҅F oJT bO\'ŽT_~`DOOcdT>QYxQ3ܬ\KZ-Z]D/:8'Lڔ>`g(I{'۩.M?\ am M|*{׷0$Q\wKm&kay^P&wO	$>S&Ӱcy,Ηc}$S`$Wj|U_{e)ܹLv
rΉZ6_<w%$rX,n`s: X^&Ipujʃa%'_tɤ{dxYb/U1y< Z*SLZ1#񂎁'b͙;ҤK>VN2L.jZ(w;)2:d8&h)|[5K+,	ʀqĜb
d<,	r[P݉,#/EG	(+R٨*dw7}qًfNZ_($80@A9%U5wia#y!06*\Ҷ2xI+Xy'HKrw칂>TK
:5?wyToR$:W!ZLÔ"s#\
ՙ۝$jOSW}{ZB|hqRWLpq/
$[p}'0uO/>-@PnBĽVǘ?&bh"?(w\yԊԒu3t:[QU
mqԉm?Ζ2+&JT)[/Ĵ8oE,YGXcd"v"1nk<'mX%Xz!ȧ֭Y#)BV+0)L!(LSmQr*!T'7"v#ru4q@٫BbulkT|C:Qb+r4s:4Uc[GU05$pp}KxQ]ץ\Ռ
jͼ%sO%'?r:\7kh ?Oxi6L&0Di!nvgRvV*@u-ȐpSh@C!V
_<ph`ҸPg/pࠑƻ;)c㨦%'oo3+[VP3
SHثE3z]4w@F!#)"ԥ?p]E{YKw{̇[M@I<BTst=&CMk`X˳Qg8vO2Kda	v)ݓ86a'o]삿IFl;'%xnp.pHW1r?ys}#'8ǨX p~2E\#Gs?.GYPq0)CS{yVV,}7LeT4sˬFyjuA/ƣeMhcǈ	[~AG.	Jm'>.J=?vVdo:x^u8ht6sOOF #JHuTm\aGǗ}N89wB&acf'S![HvyͨaV'4,Ts=huC5	6aZп$ZS.-n7۪*]?<J&|]KfУ(=;Djua;z>1}FࢬUG|wo.TcԸ;|[A.CqcvdդW`vuju@Oe`l=]:\c>NGnvtYy݅L<nj:W1XFed,HR?zE-Keh긯(v֍990$ v:7GMw>T)9w_??/R0H +k+,GùB_SsV<%O7[/.B#7O_咄ɵS; jƺY\(6cQ{K͠/][ԨMm)D.r}zo284p&S̶ɧm!4~⏟^|<\: 8jRȔ@NvD=um|]/Y371\3fNŅ@0KZ/w.^r bI)F''>}|2UL89'yNHPݓvn"DV<jiܷam>9ˤ42e][}Xq~	.1Rp <tI+ܣXpJ̩Hnc>L30TeǨ\nG^7dQ}Ưqf/i\+0	xÈym6V~iୱh8_nn/T=|I8ĊGkPqBZX(Z(9QKvZs]w$+5Sb
!i\O=dzĴХtavNeMi*QT8G\5b|WtRA9[DOueէYw^UAT_1qϽ)zq:8MA7W|+,-utBYu_хﯜ\OUoD^w>pŅhkJ吅7r0g\%aOQo*hgXҊ *Ph*Gcd6gǿMt<-հ~Nps%5~R,2̮F$f'J+XҲ?=߬k%~y[U<4EL쁭jrI=(nJߔc5QrVݚ5[$5_RQŚ߾n1F0va[?n
|ݶJd	ݒ E^eJҫZ Hm0[XDWjSU&8QnxqP_0R4cq76>t?}1`
tq=S9dŔ<3V>A6-guʧS=,#+1|B9YJww\u8|B]	o_3M-uO^{*LbV٘#J*wˇ"~N@<%Nobrp6㫸;dŪҾ0EFQ
tU)X7sqhUq|N>%ob5+{!*I8.Q\/UV[;^@&
K_1^E^GWZ
f4K֙{5mE'p>C]梅*D`K5įu0@p"HpWQbyw(dRb^vVK`^TdILdIBԧmjA'4{|.xgLrdw%49Gۯ7W흖s+zw<px2k@"`=^&IғL<=z<@xg[?LGu"Y|Rh%
InL6Tۥ%x|,%drAk# ~b'F⏬JE14.Y'ѩ6|v6Uzr$
օXCzn$q(aӣ؁k|)?	6ڣ~`x~U#sUzF^imDUf6q,d(:bvnfi7-JzaS-P`Aj?f_1/6nvW=,+A?'.G\GQ֫-Yb$Bpzh?AܤY?݁$ha}FyQggAX/y!֑RѓPe2;aH@Cuq>D6P`_AX;{׸5>U<x:Pԩ3k`|ۄ&rOk3{;7tw9*,:x} +ng磓˳Lg1>5폇3.7TNI;5B9pxmSMk@f FGnFZM=PjYEteMfCLVk)yo&z/A;2}yk}>}7H<FL&z=zN4q`ݍǅ*!ˈGع9ͭi&,]7iѓ#5:YC)(	ךF&!M3a<Nk4ou*.ЭżR?mݹ3KZ;~¢@㖍ǣ.$7YʮXw"]γHI2fuCmw^<,`&GhpQ2j9VpQxcN
K#44L<u~5YbfLkOǓ"6gdbLH:$dXtpN
ke
sx*#M7=$.;^lVYۈ"z.s8cB	R2mSnQ?Ӏe+D*x[moJίuPzwZU	%kU[9ǆV߾ؼIJQ2Ϝ3pV,E5ݰV{{UDvݝ7-o*z_5yO\J$Ğ.oL4Xl?XʫWd(	YyR{F6&v˥StB#?)q#	hfǄͩ=1bGaLȇ9"k21U3涃cJɌ(QF];p} !-hOB~uґMha/-=9\ѡ/
SCu~B
3xT>I|J8k;}>3ćɑ:|_KŢgFw?GEA(F7G#(
K]2z7z&Jk|c|<ڳOdVA`rOm[~mJ`}[zv hHfЪBߎiH)KRqM5h5xYG*P[&SOSͮ7aVNLK՞b9Pֱk~ۨ&0ZiV$_|VO3u|XM7 [Ւ{=KW~޴gvWoP405Toel!-=aC_[-uUR<Z׺6\{@ @Sni5p6JkhZRo\ŧv[~>˛*MpP3Hr[VOn4"}@gRw PSZFOD%s{<7Ed51\2,a`#p3`2Fdtu8s {Xw\]A&;YW,2<Hsrhtu`nE^ÁY# lÆ:K k?tZZj6`wjK&iuaԆ"	8rJ%?pz@gMM9S9 Ƚ@YKn6zI[~g-(H[Zh9 GsVZ/PEJQt/Aўbm^"1CAfiG[.*ڛmmn|E1eڥb*^k9	#CrTTk>&Z+@6F xw4hWUAx꺼2C1IF5[I nALc 0`9)u[a2BҠ篟xz:[=#4l60huLac^fWqpWmNpsH\grE[kaZk5] wyjV'R,V.qhɦ}Jn2v9Yau@WJGÚcgŖQgYUYR!d<xwfH4,J-;)\ڱ2^R+ͶSwʌJXӾt>DgR`Sj%S{!86Aj%b)sD#y*aKP781urI&;C#c0<m,Y,H?a,t<3}?oZ
y^T}@a"׍9Npo'Cg;^OJPNE	O=Eȁf'x˝@Ng!|a$쀁'<jᦃfθG!@)ٕr\B|Lv.5*P^w0]>2y@ǁoǉ?qIbH}`Xp1kҝł,"	ȷ(u&f3J`1 iUs[ BTu1 :`CqC*8KsȢ9,;
]=@Z9b,BE\Pic:cXs¢ԲNu,&](BAz'[Q·s!xzY9L&A5ϥ'HRT#PV{16|It*l7Ͼxcy!fe-km2i@*H,_^vvXPJ9@ܜ3ȹvgbl];)IOXKrqQ5?#V]3]Q({:Par
g؆T3dÂ7P(+ig|D^Jx޾͉KQXNcD[MҼ?ko*?*ca (!jMoId?8fber_Uøv&i5$?yAʤl҃vESpc?xZӨ~*"?O 醋φ@4:kS(~L #<~sS04(Yc1?3apQ1EKٵ.Y@NlTF#rO`0#ԹH<ȊT
T֌]30R
ف_ҌYNO~TfSˎsJd|b<0vJzXoӣ}l8N9`<.?aoO6fbu 2jngSVx&1k'ҺaE-iGeIyU~Phx9LM	L89#
# ~M\eSiO0OAWTxpxI04tY- ɿ#.i_O݋_tEлlO ~]t۬q܌HZLpJNNP54[<C>|uYkϸg#7VKq.tŢ1K X؃ Wq]'',VK:	lcǏ^hSƆ
N-1Ԧ ,:BV%~%Q>?PܤZb~J!3ih򜒀-6Ш<HIsӈcFl;%
k}RvJe9DXIz|ORLU\xis۸~x(ERvg:QGDZJc;-)@!@%n^h9u;ޅw|,!ߎĽ^M}^LhdE8jhv6	ǅ̏ӀW	~NM/b1δb
ka ں9K=qvIo0sҭ
WvP蒈I|]%	8"d`_\ǎvq<J6p( uK'W` d;p)QO&ܥk5RGO#s&$)ڧ`MDM5cvK:2J|؄"cJ&szyW䠀^DQ5'Y9E4)oJ`Be0_v.2474P uh3B-t	j>营~qx*%mgtrl~$vZM6
hm(s`ɒ3y )RutƶF/v"=Y+S֔EX;
_lPI]Ib P_pmq-Ӗd<{MXX/1ƽVIPR4q8͖tQ&'uq|_｢NF,M&7k7;ctH1r$Yp:f
J>NSEB/WD<	?Tiܗ
H@V3I7@M "3%h_FGCO5ȋbrɟǣe+F')9Pi nB5D(ғb$0hCϲŸƁW6HHbQg,*gdu8]uQ5(8[~:)b|<|Kp`0e!\'HQPqnI^O/Ձ
/?q皾R{yF*Ҳ.e"Ĝ2c[XBaЭpתTԀ;9#voA}2por& 'i<1Ye|u~ʸ?WDڌiFfx?ZͩoWu+gb){xuhU㩎+TT㩞G\U(/qh"E֋T70WSXRC!|ķ&ҟx'Ƀ8tex0ym0kPR|̠ȽyThThxÆ$PC,\l躲ak15oqaWBb^V})SOQu\Jdqv0W+?	F	gk(;PCoAe5X_p/4ho
(7ZWDPtV=NkorMc>uX$	ys$)[Qeht0[`2k+<|X$moS`MoEՊ>=Aџ+5,I^ʅ;2-`E'4Jy f풑|_61^2Yq-SBрhsĊq[bVi9h;Gws|8驽P:崽aV#;57VmSYhp䀠o=t%*`MŶ|s&n/˥\Yz]s'YO@!H ϡ2CVK@c*>n@~+1~Gn^kwÇ_CJu
fE˰2JFw2e> XCJ;2^TOYrM<١H@4@PmI:PQygdϻ5ru!J#.vrp;%((C |SSpֽj7c=kسLҡSJ;D2+,B1
g硣QIA98/'R/I\Ԕzc`ۊ[fj=*\oDWU_{$J`(ѵ
;c)1Q$XP`9.Zu~4vkXU^P!vI7OP|	@nU*<(		j527rg7wʱ2ÈR˄P[@Ex_9H]qG|g h W	#<9 lДgm|%!Mb
gM(ݛ	Wn9ϕXNQPOL+n7(E2I>l]|mX.Ҷ;3!u6vFÐ&Y#T
\m0MRWS«
ڵo/_PB)]Be{@Bk!@VQf~Z௢|eX=!ZeizrQbGJh.xvc7"8 P@,;֛8v5)6;\`<\ʩn;tÖHkPNNj\@k#IO)]@qgH.Ձ|eGFw5DFج,/C*U)~bjPnj>r~>o󐲐)x}is7w
XS!e^'3%ۚ%aF(ǓX-)fVf<u{ƦǓ1+n 8;n4T}]QWy?VGWh"⤻!4H  QP?R7KqGMbWD.4Wj	TR/s! Dҋ}Khx Rb
z)69	B?Q-@z^ ~."Z*t(\K4vOp	ti4&קga\t8HxyG+BFJ0D t:He9nxĨˋhv	kgаO5wI%8L8%[2 ;>3&Y֌N<ly\xЍ3_F#(r\$)D 1bj7iMPxIOޞZz?';G?}skhz{s9qh^zUOA
pOM >~Ov^?v~ }윜w율7oOz@>@CiF`GǪVvЍb{ǓNw{=x:qkл݃!U<@'TRp|]=t`wAvNÎхJ;AP~#^^o ]!>2D^+EcuN[g ?b`3]VoA]^⏇gďwSW4FXU8IRQ;^z"_yd=F,_+/co^lMgҗ wxvd4K(JWs,]rȏY<!lcqk8<jxpVgp;wӫ v}P@<~2S8I	ʸډcUpޟΓ(
}of?E%#ow C ͷ/fKʞ4<&QS:A*ܟ>=yDyhՙ_xzI&@;8D2ΓY4v&`? 	_? pa
o+jɷf^PmQ @&0Lፗ^{`䨗ꛇ<asQ*{??\nZKszd֫#@`2 ID _F@hŜqfːzB!v?DA 9~.TC/IѤCR9e_REHϹ5ߡ֐[z\CQ؏O)ԋTį6IBp^ݚC:4>P2+>e͕w]Q̤t]f2+$X1j;0~+,THU|cPYWLxhy,[Caֽ0`_dim0
}%oź;Xۭ6oXv{-䚶Z$
u|bJt=g@!@Jiɏ'o4j!,xYޓ:n#>jNv#zG-0aGuvN ƣAR`x0FzձMЇ㽣U}GmUq4߁M4 E|v@TOv<P7={ֱ@]ޥLҫ7o컁sFw8,`^*_ށ})8V#GFMX$YGQN PkJpGbv5,SU0[k#dۡ}⯧lo(ۢQh~
~8nK9C_6N@K@%(-r 2S1aP$pI[z"q  d- ]0R$ug޹ϑ0Ѐf>:^|+^.'P	))tCp?hZؤ !衑?'T016BXR֙ϨmkB6[ƀ^6AeZm"jjld_ ?Zj2`r$d?}Ah9eD)Tۼ-hQ:Ͳ=>|+*x2i.N#O1k}CCx_^cã)$ڛ}hѸ)GmAn?MC܆!Έ#a*~E]6t?à҈F|s{>GmiDi~hI"i̶RԿFԙ4!`g/ł\ʙ{k*"pWz0IzBY/OonD%EKp' .|Ķ
m tԳՖycYM\ssxjNZC<z~HҌޓe<0<YbjI4/.E8V"Z~;vy0ix= `S2s.EP* "|0#9tF+&(Hv2RFwq E.g	
$ąEYZMk n Vq BG.Cwn4+aIgڂdǇ&_ߵv1 p> cecsO/9Y3bu;I4U֫(>D;Paxk:ةG[pAIa
xȨp>z0^lar6,sAwIP[mg M _8֣-uT@6I~n#y+!@fg;'~x!,c5!Vv[H0	a%~8)ӼUk4.'RR< F+L~6[S=r(1Xbs  Md!rfmo{Zu|csS?Oe?%yG"j]r)Dh`azQ1t̢{qE:*_oW/)8S,l.!	,'\Q4Gr+@QE(x8S\is$c1E5(Ev&k&]D_d #	uvz!]'@Mq|Gl3NZػ#lAPOm)ŗĨv
7Dr'ht*їYkZIX&HJ
F%6{lN`|uY ~q-g&\֘nUcpSߓc'3YD3R4p{a?x6CIOolɐc9>ߌt4Ϯ?".D%vVqD]z3ڷ@ff!R`r!2G߀d{gn$Wa
L=qHFKy8:{Ճ>㎵+.>dh!
2vT}/L|C@V7y[(:oDX@unC{8фW 3ΩU1=ĸD~vڽ"OTJ.Ut$јNvi]yස+rA%LlQ:z	Y dG2eQyC (DoDjK+l(mmq22_kϼPwB* 3Dl:6+~m3ȩao&}*cXKonQ:AݽGZ"}β8Fәj6-Ƚ!M.ɯت²PPC[pyE֕mY{yhXͰ#p[zًi0w/DC@G~:"S32ˍ]Q+9-/s,`NݗT&lgY+FZѸb`Zf~9?=uVwh&	4v*ݠ:ڞ̂df➶SMGJ]R\ 4> #8ZS+4˛դPٖJqd051)<tA27P[5[0jr d:hzEdjed^&sOG q=˄T6a,<&l6l{4å2.d@jop&cBJh66edP߸tf,:m0'QRȢ0fs?~zo`{؟FAephqAiG>>=8PyIU2sp>e'0#BgGoS`)KYѦ!gcIGqQS	x
I,1ͅCEHBv@HTG?qMT`ٓ:JW;{fL3YqI|[QW[c'Óۓۣw';oZqa1pPZ5on).Pm[	0'D}h$}>c s!l/q>E[KsP,|^9`ޑ%;TFx`(HR[mKa(7?4K)+1usOUQ_jlGKBqaG*UܔPq@vw^U6-n\ik5^?	8$gZz>xe5= wIخʸkKQXFkq$k$.@dl45(B&/|.#	i'BXL$Ob5Bxb%q{uqGeKgC?4*gnL9dۡ3tLP4~woZT*hTAiy4;kam3eH!.YbBϒLf&]k_}iPxP$>ZE|䉞b:1  mc6Vˊٳ
/k^})6AO@^cTzJnhڶ9jIWo?Ktq8Ae򇘣ce)s.Y6JvoǧںЈmY/^hqY mW4WfXt iѨU L0WR`CӺ5uU׽wՕk6S&"PuMhei*MeY]W_4p{K=XӚ8`ԊKxOzǬg.ay4BOUG:"s1YV}q.IP9A0GW>&`ͨXt`Sm"ҡJ_.يDĴԼ갦 *V0B(C)%8]c&
c?1n!#DO'K[8/Gc+葻%E%VEt$?id5	8CXTna4r96/0#t##4:9mLd[sq2(}BH-ӄB;_\X\u(rZ|*s8].Le٨WҥE6_*9y5,)ۊ(5("2bL8r/O x8QuCa&-pӏ _ ,\Тf-+|te%NH* 
m53 _1Ȃz$i4б"k ZrOGUsܮ&|hBN}}k@w8!Q1ޱhWʭ#ho<sv}Fӎ؋R{ndv.Fdo(4/mf[	PgY]@!K^vT4𹛼xgnRd@/LXy='T,v@G2>7F1c`TtK6up0:BPH@Ϣ
$,E܋?"~
8W@@MEO?V[RĩXVvzWWF-$v^nXIR,9veNh7=hӱ,|YF^>3|FZʕa	;+W(p@2ŭ<D2Agc
Eie7>.bv']xf&cByd,1iԾ-ۅ T-Gtɘcx' SH5h"l^).Ǽ;|!|+7]?Q_lB&|FBUC!: :N>%tl|lʏe&gt<Pp;10GҢM_^`r60oW`$ztE'=w&LbW'!xgAW
"uX8r޽fkR0pH^Ps"H:uk$cYBmNT5.ܮP,VhnZ ǗT|cZ.fSj(]2XfY*B,Wcj)]OQ%]As}"791aw	M1pY$>pzlpfiΦxl\ dxMM*8d3_
i{tyR:+,9pR}0:Fʛc`7t"1&9ZNamNWL5Eh X6(%C3c=?w0?:<r]mPVJ2?˸`q:/,k|֠g2Ȓ! ^´"FteLjFb|4ȫ Nÿ݉')+41꺟4d8+nm	r&ZnGmZ(n4Φ?j8M'lg8U)1aYY5VGhVt<4M1kNK9}9ԅ^i,*+rH?S=ҊnIJwO|ҞN*&NMw9ID>vm2	't[ϟ[);dEKu>.p܇bjXd;Lp^{$eInmo"9'cȼL~l{84&`Pv.V-cGhʸ|4*3۝/^7*b(o9-hA~}cf.{dV~)w)qe]\9ע#eu޼d=.N Ì0vK[\[gD@< ީ&XjSR]̱lNGblIC;V[*2./dV(l"a `G{@;d~=lwQOq.!L>,Mgi=!O5kYg06-CބRb%c@`|f޳Iཅ<dtՙ#<uQoOܱy!pP۴3h-[QW,=;2ޥ.x#ں@167)NitO,}˷٥>e{qkuȧReĂĿ|XA쏛;i\':jHfwO3ӛг}xgY7h8kIOPZdusdEg8N9	;/dyn2rӹF	nf~p|h'5eq\3-1-2SM'k	0WD9 S/Vb!ˢv|d+%m cvIpHg		 .BJ8@jÓ㣃;yr6Њjzj31=?=q{`&<}yߺfM'5Rl[F"z(`iMj:P[r,@-8y6<؎ŬF<q
wsEۭ }~",g<>rztQ 6=Vsf;#Фi9~ڴSzҙO۹eyB<>ZTJµGXwOGS$EGqϿzﯣr.A:d92QonY:>jvsi)WZd$UҥyA+X *B%g~>ĕFn36MLo@|p1ߴU=y,+]rix WF|u'?dׯi{ޯ+E6x),e|fFSdڶeѕmZbYkS=rx$jf0(\%<rZN@͡q4E^q?WKn{[[hw_}v!\ @/SSfGDi	{ܸB\GXƌ|/_JӔHa>7rF7h`Ix^k,Tfl뽍`P
&GěrSDzULvkZkw]|װBQh-K<ة9S&hYrFƋyQb7au^+-ZC
7w꥟5KFmIgMq0@!UM(uQ--gp.]fq> <6@DU_9PP8Cy 
#u]2$0&/]Yn3l-r@t3dy]igp$--YZH7`Jliq{O"y"0ZQ]F2#tʎ&WiB;~ ,i2!ޥU˒*d²l##FΕ	Wa7})בϊE
otWK/L,\$%\X-V7OWod9HIh%͞=n\ygLO Fn®7늖Sj9yHxRH;._=Yg.xԌjyf,%v.`O1_41 7c<f+a<:BF<U8ށPK.C%#Yda{cl8vbKƋkYnW`:YVjV65u{܄<[ص-䬛Uuu8(/lhx72:C̐`ʙc5%l/L787WiHtՊM>]_۬Oऻ}mZ;=~ܽK@+q$ƣp<l.u3/TD	mؗMҼ.oYACˊTv\,x		ܤA0Sqi7GH8@js _
S{M1[N0v0w;Q#t0(2F/DWe;ؕ
^duBZo4UM^U!]JN{EJ.WDסE`5}u-mHmIo1ECM7?njE4B
.!J9*tcDn4	zsʤ;[lT"Jgךt2m~Y
Krg
~ڡRfɸRYe>:S3+oU'wIS|JAe}K@e5(/< Rj䂢{dbN<&ݬ<^BPcWx!%bk/%>c#[6^5ǣ2l)K`.λ'ttbќ<Sg'GI&C!+5e.(\l_*DqVq#6q7ѷB5/Z-rmYDd\(<}S!s[F9{ҽ║.ӟOw[,'%/Nƥi2SMq@%"Iy:~<$F?@VDq0{V^?3PN%M7' YSaPY~ԕ6 3"/2Na)GvzJl	$7@KMRvG;?R; !Mqr|mym01ߺ|*3dhYsӮ掾Սקh؀!cqSo8~J|Y)WcX*G,e4B0R8:a\`TJoYf=k^Ѐa6z,w]lߵZim̼-kE`-A7=*SJffC@^$TndkܮM|^Er9bMkZ{;vɻ]n,7`5RB0Np0{%^.whu>!mQyFƶnJ@0rSWʻT%uTs87)Bl,(hVr*MI3,V^s#`UeOߙZ~`rO4Ɏ6O=QtaWxe'Hu_V^GE|-pZs7B+)F{;Q)AUD;EG8̎:o-Ry{#?XHW֐4'l3%mst]?}]Q=ATAz+,R-OZݴJ˲㙏%ixuOE<B5ϒz7XM̛4=oEtT&c᳏	Gn2n`/Ejn԰ڲ.KR`MFGEC]fݷ[[вsjwqRq,mamxRխS%pXs>7!w'SL\yBY		)	-Z>0A}Hl!QMOd,MAdlZv(/$":6yCy:B9P
ûNp.lXI|Bw}Gk~o?FsCL|vWg&z/=U@u7ȗ.m7e$/JǱP1t7xN[6wx	
M4^y=Z
o_w»}F:up5V޲7.E΅fWb|ʭVKW}Я<W-oA>!F]X@MmjOمn+9?,H䆸%F|lt2x%A̲)uV.eߎGǊB^;c]Mx5S?lev/0p9||y+E/*$'Q].B]A2&f|{BkgDNz*_ՙ']@"N\3̘"b ɸ!.{D<_'gJ>	!e&DuK!|*l1tٲl6ܔǎk\-'mU*pͯSg@m(~#=VV'6Fh耕rhMպMSkNL5=k!Me[5}%6&Y̗q ݅/+MÔqkZuF]Sz2M>]T`F1{,$[
(5cZMgtm"H
O5p]bt@|fp&&첞Kuc931P٩#n3Β t+KXm>om}0w%^{bC[*/6SS_Hc4Pg^dg=!l~|s
,nw^XH'\nqXm*b+g !~KFU8AlH;EI戟&o.9&yA,E5!f+w<fAڢ+p9ުuu,έmT^.Qk]j`Br4rjD%[ejTƺ̈siPZ\?Ҕ.-hvmD!i/D'_BVرհ,]:_	ZD+C</4VAZh'@m=xtgIJC]}	R@}N8&̧.mαT8TwG%w:JkHotm\S|7-6{蒏˩>.6O3[(iU=5vc].-`&}u[:[eAԔ9ǹTFZ>$3k8hGa\!ߛk+1j.Gǀ:x
l1]mY}BQ4inok73'9#@:A2 n9/R$`Y`TBX>}DowO:qtz+ BӟoUs!Ӱ	c8Cj+dbfG(Q"2$	VTs9_S ufh4 Bu£{,gtc^%CbfkkT;~_J~dϕٌ@
=)\0#eBv<>oX	-俐> %`zUѩ潩F!ytZ'.Qmt&|Җ"v^H16`i^Q-W"{@{ 7qJFрne௤s<mM
IaRS-XoE*D٦<0$~|_BcQ3MPL0awF4{3tRhl6ݙG	f*Zƪɻ^h]lcse*z4-qI$em"e71ʥt:7-~'r,c!PJ"iO xaxҵ۱d+|`i}+dsILQHw3eI"{û;a&0>z ieBnOBȨե26bcZYngr9gՙ@nU-ʻF]IWTxL.mۖ9'铢U@e2c	{~`p7Efgcȋ e]AD@i]n5O7c6}?~]BhO.Vmt4;	mٔp*{V֑S[˫1:Th8:I~>B\!ś7@׃	G[76]Aj4ӕV81ߛY	diց]5YOM{ULڻafMT20UU`=W7X&A MF'VmF,8*4ᄝKocVʠrK+o%ePXSrlq%+>YaIq?tva͚r }et1V:,ຮ\q[=Tp㽂_K@}Z%=]OlO sGŗG,tיE4t|y'Km& $d\ZB7ˈzW,ܕ9n"Mmjr]:7>^[pR^ <i6,eiwG%},wY
N&F,8ү[.#@+9v^ڹZe1* (\(ntMy[۝V@;r[r[)_
%բ``KwʄUdB	]"XI&LO$^
ݵ@\G"LjDBe_+W"ؼ|Wqqx+=\æʽf:0s]9緧	*e-G13\xynjS:wŝfaVPԜAF" y|Mȧ2elejPes݆u"6ۍu"NrǕ(޹|-n԰kmK:n=^-k":<5캬륆p~to{vd6fⰤ|T	QBb]}VX(Ox])~w$dJZqarvS,6wT~{u9Us_r?J9$ĬԼ[[t>%WU|ehs
~8n|izG
K JدALQ I+wWkӽxx^{ԉ+<.obv<x<V^2!տrc25/-zE^Byv5++.TwJK~ '`SbWֽ!2:V7vME4n uo4(p̪0Jſ%%μ[W.K+5uekُVWNJqU[k5t%cł/PL/NJzSIpO.*o]@jKFEcGP_bX8FµҒ)f0 O=WS):oKC(.I鷳MPJִVV,Mƿ_߃@\0|m׊Ejl$]t_K9f,_^֬u@>DoP:4Lz#ǡ1ءk.7<>{ppz?zm]a?AL\z}OF^i#-iFlm56'3;e仨rNU4!۲kg5X"w7fV%yzRZ#gtXi:qJAaү(f/S7ִ)/@k3&lH2P"SMCQn SʛX}y'fLuaIơN?O'IÑ4*'DI$>Fj)ovgRɯQP9U89JݺƗ0g7ΝV<XfJ^y[	P$DRC5cC{F(ntzI7۷lK:z8Tyը"iu9OzYug8@Zf?o7#ˠ*l@& 580dhhEqݗHt!eYk[#zi;R:j*N|oZ?vNXN+~%++cvf,esVϬq2eFs6smRaSgXU|EZ@%0"{YdaIO nKaI뭒g:	m1AJOkkNϚmqRHo]@!}"΢2X>dM|xAo{|tpIo؇'G;Iҡ[[Ķk>(xko6oXȩ^(ԇlAXi/,Q%)' 7ÇDd8pgȼ")Y\W'45Ѭ.`6K&|<	.oN/C#bUBɛLx,4	URֆpM9nh.8JEț()Gk udרHrzM#6Sz	,}LȦZYLÚW˿h,	+8-+5-vD?M&eI;XvDgb-H	i0!\DiF$pַy$h0OsI%[iq+V=pWy| #%y^Fٴ>VM0E\$_Æ;t5s 
W
$!-Lyƅ	a\\G\,qFx<7)C$ֶrA%{8+2PoXaȒrKG_ބy8i`)P/N/k_G9wYQR(aoxJ
O"X~=)71bDv<"OI6cYQ9mV'"3gmΊT0!(8G0O5܈xI{(H~C$V8 7ob X@H4	n<\>h 7 X_Fj$4tvq=,邊9|v$	0!@0ʫ\f(fF{.h8%O0ZAۄL-]
r%a6)n$kL8jj1PHmA0(~zP)c8X,10LѺcAZ1kRc90P/?k:J{Jyx񇙦)Gm3=Y/ano(bd[-}{e7Ү[*^tȄ<{g 9-`ZTk/.a<-ֿ߾uV1QE5-?((Sk't}@PV!h-ۏZzB0%ϫ"F=&-A=X;zG"v5A[рj4\2,<2xGx!nXNEF\;V	\y+#a}RzGδp|KO\zcVEs4g3)^]
!mrZIjr@RV!;(0AMO&5mVk\bQjpBs*dPkuUw|A^Hb>P4nLgF9SH\5nLWUXxɐAʐH&ux\H2NxbGͳOg,&KE*Ԑ9

ث!]k+8IX [MFϹ-&dߍ?'j߳CVҮxtՋTz2WK6jQfZj߽xQQCLd){	v7#Rl t.|YRʋxX##^,׹_k\횧2M!`r*fDVedoQWχnS9%9r _g>pk;M\һ/㸯j+m/~xiyplԯA]Jܴz|[5rOz#f~NfQxnv XoW4iNmwnq
10EwVҍQbʰ9X`Sn2!ى%f'ws{pt~݀ڲsdi-fV^L&jN֓,U}+V{!|C,U)6IK7=`qzZ40;A2XsAP^t4C}W/`Z]*8	WԦ.E:{~Ϝ/bB=^]`2
ipOFP,<f*BU\#K>y	9l'nE$_KugmĖ-@M5_e͟lv6muЫaW{4\jIJ}u~ rwJyK41l-{EpEL%ARLqpǸ+^sRUrw%=,]RFQAs X18d[?yƏSTS2ިY:6xT`yuG*!P	p@(8 0{<{,O Ii6ef[ G	컮!xnѩu}[Cv|*Ӡz@5 7wڏ|nTpUr"kzW2`dbU|<lXSUT)4G_M,ޤXd(`)\o3rB9eY~^:\jHt:3$94O;Z4`XvhMAhtmdc³Lp3K+rnuLGי"V`bM֔_km#`>'nt4s<gcaݓ%7hGObZkx3{Tk7]֎v"^f5=5
qw4A|xfyt罆vק^yO\x^u-}x4]nxֹ)22ys4g\W-|t
	U~ s ݞaP^x[$[\v;Tټ,7)~ZOͺXμz$n4<6n93@)^Uhd|cj/?CmX230͋U.uK*$'X>3c
A~J odTF@E$# rEe4A-D37pthn+|(WWQ>oK ?WfbӼ|iK/Yy#[y>Uvo^%j5"cm<]ᙚKxL3KgW=O&uK)FSpdWnMo~rx8-d.29-B_/ʝyuFGxsc,mؖYyycʣAYDEM咁tKb臤4s9pY|zSh*z7ߐHI/{*.?xqC%E1M^IT`~ɴW^q)teh$Ro^1Ø-Jwlو8x_V?;J_8v]'e $n&/ePc$$C}"&I3;ۀs?9|f|D4d<<O&Iѿ\_y7Gqenٴ.b>b8i|yU~QWWWU^"$8zqYU-χ*'-ofI1	<.뤨0=I|5<jVOE^Z_%,%6}mm^EtNQķOL<~&7gy>M}gUrQ<ϧq6&|ϳQY.lsXlޟ%W)4]K3бhe^/| w>xߞ's_Q|iUWiVXW8Y2vsMnmʋ8AVPqG(*]EȇUR?Bq3qt^&l N<Jj#J.TE;|qX>q݋r)RBk 0G	TS$ռlɷ@󣓗;/ǃggǏE_=>Y1<,nyˤL"Iz1/dЋE2o삧0d:cI>.ɣ2(Djً(-9LON81.G9r<Pvh|_֓4)Kh\K	)u2~VV L$IW{
Œ.GO 3*waP	>`ڈ}7Id6i*~gTxgY9麊oټqôAY>s(ίg}K<ϋ(M3%)yO:,Wi5AmE~?XF>K{ۈZm 'Nɸ{0ISWDNGx>M|w5J{5ؐF[N:
t8WOB(Q~ɣ]ʱ-EvSf 0ɼΓi~(=K^S
RЙ-cGڡِWZijWK>:(95'N+D?gzZk|~Kvh;Qc4#JW?yA{I470eF! YfE>+R'a˥=q4
k59MY2ȴahq	7RQ*(=fҞGY&Q2.-2"RRΙLKc#"iTxnD/σ2̒=îlx#o̡nRK$%.hZd	_hxeT&*.6Zg}0dtI"E~6ps.!oLuKC&Mt=2́8FF$0 nW<p 16Rdlna_(X7{Gov\Ť@^C/fbVʵT2bf/Tlrlo2ɰNU_85
>]Ck)\Z1GYe*Ie`,"2M<M|6F>+"Om6%5׻ϣ:yx6ꚖBDEOF/7NO7*zD:t= _a}fHZ)wUgcES* H0Es*4Ȁ{<8}GK_ދ:_y7ý_w^v3.ʫD[Ѱ-0,ӿ%*?2@ow❝c9N^GP`鲁 d<#m]Gp:8<?8yf/+J41`dgpLOԙ@$x>#uh^=S5Çi{{t*wSsHr[&(_% giyׂ"*)R*/
.VC5سxʔTt( \P;DSyN]+Q &ŦޗqW LvpBG*4X^t42w0$/Q/~1+z>5<5(.ko%T{,aaqCm46Zħnbgq
K'C6B!_E)J0#)H!Cy
AUFFIMA"Q2f#MEk(bp_3W#qPɩJM>;?95	1`4Njΰ!$dϦ&D4ϥc)@q%2}XKgJT'QdIfKz*fk!sRud-h@?%uAUY~4{
-e"c^%-ѫӳC:T}my
TU/V32}͖L[XjBWZ8Ί",Kꅄ6gBK "U<kk'\7f2F (*(o*G@ZGh(NQ@
&W E
t30JQga<*׋@7CgAU:.cՖ7lxD_d
HEUl-u|
d~ҧ.n$zR#"+rKO~EG:Bw]Q'a,ǡ%tqv{ l ^<"Mn_q}WmBu<믹-Ef|qQ'T(&}o|ΐ(eVPkIO󰻶{Eգ\;0ӊZq[:&:T>z+d84~tcv^w׾F$zfͅTuΩfصS9tvOnP	rά#JQl^k˕j1{3lxE~Ⱥ#Qwj6%p|VE5VSf7E<&$Fs&:>9z;-!^æd^`Cgm7f	9G _о-5K't9&XD#iQ;Eo\uuma6"qR'myLǝumyNy^$Y,:"(HqY;vcd1ZSW3=:Pπ\}f2|LVOt6a*4gZD	/A{c%y'%{7Axj*]vw=BۑGJݟT*CTSv[
mC"׊A&'b#	]iw&\g[[e \ak=*E0WB%; g|slҽՆ2~}\r<R:aS(4oȞPJY3¯TeTaqH+A;rr
*OǞ@rE0Re4Vrt<4Ao!K{WTIt:iG1UHe/]jۥexx9O	H{\2[!3	VΫːtmB)ʩSsb:E$;Nl,rհ5!Xu)u#"-txxt8>c~@\,Z8<J`O@ƔI8I|</X74w3ۍDI~k=PFM|ˣdG׭&#k/GwuX]KF^$=D"CxZ\}d*E}`$F$^b{<!j*EVP-허[gu%IVk3]J$).%)BCho3R\L%>>aK@0wo+b:PLa n.@E"9LvlE{i,d.aOmRáZu`pqSwPg[V#Lh㣽Qsk0Fwb{5d=L4iɖ|r{|#%ؒɣCNڍ|>G{	LcUGEzH}np ]J)Yi=0xؽ27vls&bŅZ/Fu{9\Ep1MCz:@//|bQp<FuKKg7hZ_LqpܢB)G.tgOoI	 ^]o>W%_P@ՋEHĬ5j[<!vl{!n'ST"g
.ST۶{%nS___l\8DZe64T6|lprpM'~-QN|{3Z;$E?66J`Dzg(gk(<Q_~D1}o/=җF7iXZ"ԄkȜ,L"(~1̢O|Tce 6A$de5+1,SNLJI~+*+ Fc^q~eq"H_u|)4K!m4Nb;>n<%`gi^w
׏{Q?u5K_}8T;W|zI'̎:?;!d%\V/j5#.ރowS.]5a^\Vy
GwWZ}Wvꓢȋ=nh<ዖWz24wYVNMEhTMu?[n~,Xe<ÓA˗S$QҟtOw]x pWa"bQ\jEۚGmsd-~V^Yo:-b}M~ވLm=ZVݎKb~-d+ښ)#ٖ;+6pJ${ڈ7+=+q6ffxV a`=!CIa;^иYU=RM'dD?ef`|LNN9;\:4J[k=St/;~GN-,KZel4<F	iх[17\6=!zmYWO8)Ft&p/^'j+o6j5]	)x\=>gSqv~D_yJ|W //r	K`i4BM|11#hMCi=)7;c5difĒ$.рԁQ<Ĵ:pW쒞L0W	wh@V\cŰjZjw0BЩ/Vq~¦~c"Ea·}˦{A^^n$*G+<tgs:6>%y|nzܮB:_yfu"I\xaVc4QLK`V$*٩r6~a|+뫃Z1K>ۻH{<Nmw(ռV+Vmom  'fCRԱjI)t`[X,	h[_bQeA)>d.[={7bY8/9aV-YwKG,uL'nTTʕ<nbI0E^?=4_[[:5K@lT0 ^o|0SwWpuY
G;u /reBN_]%cwJW(ؼJw-PAUUhb?l3^#ϧyVw5߮@EgtV%')U1Wzrpv|/gwNbwS`\,GC`ɏQ2-OhUZ2:[4>So4BӃ%cyFmNx: ϗ)GV?BZgce[Gg1s۪>_R}!Z<uu܃`>C4tZ )TjFVB]Qz4;oIU]HUb!إ^<9;s͈:';/۝zX?LJz0XROq3ą#+uy=8y1{uBXKz-!	u9R
\қM<VoNP/5@lDGH3(bA=>V1
IrʿGC3 05Dd|AV4
4h)UKJ!B7O{-*/l>ΪBUC)lvN
mn{lF:*lGL(	\(VHh/k.J%bqV%.Q̅Hitn#+	~5㰔v5[?z|3r-x/A?	biXW5*,rǝa&j7j}RZ+yX{CĜҒշK"Kpb.91K1 A	w*Ag	FŨk5>L`cـpV;e!	ǈ2j%ۼe\.=G^&ϰnGcg&yշD [$KMe`LPR9P[5p؆(N"O	jF):X8Kti!hLfcr9đzώTj/"2C_fnRI;ٽ!W9]2ȜI>ى TE^ߨ</cFbJq]%(i'LV$ױŪ#Zf!Dvnzfc~(E8;jkwұ|	?E%pm+2o\sEv/]
C=M)!(* I(^6Zek5"FPĝ]JPND=:7t5@0gT:EQ!2ezY16c&iЙcR$@2`L{vba[MuEܕ}`7<֖7[E4嬸XfBv##aV;~C+ yP%:;fopsf Cw볦ΧF.wZ|,^wV"T,\b[TFhkeQVū2(s*ؤaP3!9 !|
sD@?ϸ  ;uK!UColM^w_2%C;%/tvWZ1KGٍ[ ~D,ŲJgSZzR=b3sZmF˱ae5OG)ɂX/E
t"!Lx4Jb	-L 6NF$6G7Maw]ledRO<T`+)A~%ȆA׺_!^[10yxWLB'F6)2b4J%Bq&puoak\8{9D  =RJu;CUSaZ9GEv,^Ka@	=J.w|"6r@H:)0*KEU\h]eFA;cF,3s`'6mmRda9'	\Yoobm<}X+I}aY㋻p<m;X|Dj4iiV|ix֜]p8@@	+HNN`w2B15E7zg6sJE(xq4F)<Q&LzpPf*^e耆dMRX[rPܱ6T0)b¿!⨆%/kJ|,Q|T90	O\NTVHCʸwSf:a[{N}cbht犻T/#tI\4`-F]fN~1)_[ 60c\Ј&#WrsPwxXw@^${>\*̀mW\"颈뎗t1#}9=N_<<>9z:SJ}]#n-s޼	 jҿ9ɕDL躥Vja;#Lbб)͒U' X*s>qTѱ7^E*%bplsU&ĂOcpG48PV]M!6;;6c):9r!7[@F0Rᘘf:y;_WW]d.pS_ID)h9$KM0'ML58uաy#zj~k5EL69<}] v)Ưhb(thܶNlvB:/G+Lv2]ȁOu]+X'Ȁ5 )?24CЧß)/Gh0/?0س㣓QKe{ڱ}e4kNߞ"	lX,IyBAѯ#1eK 5EɔDlyҘ& )s(DAcV6ޅ~?H}Yt3)t->/r4+vBvZu}|% LcT<%E)swUDPD9$u!#*Ȟ3nTY
˔	%8߉2y.-T5`Ns:׆)."Y x8d#CgP[.v0݋+pu2lLm()9 $|чsouZ!(0E0NJvuITaM%~кtShJɚ̧8~A!p-@Za3qc.6DϠEc ݿ\Jl$ӸQAz
A=Jdj.gJ>Uʃ>AtfuY'+:~z!k9tʾlB.xG݌8`jnQR/-U*]d
_1P;F;]v-L]v-1גjbM${ 4=Wt}V n<F.E?a.nw5d҇gu+pTYP\%yTeavQBc7+!y2%ati;`qNmXV8_FKJ^a.K~f|r$F$
h !y%$(϶>y+ 
kL	J.Tzg_%t@/?.f9tZzԋA*{ЎH&d]L /r/GW;[qB&*@/S .Ӭ.)d8n~P3G'_Һb=*GZ2k=iJ!{bm"im5-E)iDyE'*JGXC&?aQ\JYDDFq1woրy9<IfIүS"f
>\~gO^׳N߰C)s[GPJ	,Oxc,%0f,}|b8Ufx! Y+^uaŊhqG0'BI/(6_{V!]<QO{[Hׂ bFsͮxޱDa6+JxPrz8q7]Ib҄"s?^&Mr9Y:KdVw:r4-mg$sevzkLsD)_L`ʭ.r~އ2_KAZ|w+({[4+<;;+2;k!o-x{	Qа{+s4=NQqUvx+)f >h:늈<6	CE*2|ZO,[?p=/I#ׯᚽ%jۋB?x!yPVkڌb'?dTg#,~x}
04ur:)ViEb'<1E1aJ{qMg:&bث$hK⾌oISKgg$F`mЏ+*qrV
S8pbs>97=~pZJ5X4ak2Vewxf!~4*Z.%3SۢKX&n"oTsK8䝝ST2_0fIkPL"9Qtj^k[Ťy6O4YGDf1Ï;S%]LtCkM]_0]@X}a)sq
	JYҞ"/AviǰXĀheF:(bY4s
 -lxd:z^!Ic%x2%ٟvwnP/mZUy(Bo25Hh_Z<Ξ[>vXJXYrC{^&Us[0,"nNAWu(yu3<?Ԏ0Ԇ9wh*y~^OS*✐m:y+:BN|wfHK*Y
U谡 BLqE>5zB8ϵECۿ=\R{,s$7xHWP4ҽdF.D;]*G|n٭8<5f I:Jđ5[Q&r O\5Ū݌cUba]$}#)X%УT連)ʵ)p'46-;V\!J*C<+Jˁ8Ѱ_C,
Qh2[8!uRXB#RQAP-e\20۰7Go9l.G$LBfAo$L<5S§H+v	[Řt,
;ZUZ1\4#)|$idI j]62yH0DxUnHq2@^hf߯-=Gm=q	|;ʦԈx'_NЕu&{./FY`{%j^b1]9HS4aCYזGTP":fUx6+q;۝Zg!L9bqh%k,378EI4̝hl^H]ܺPEhŠ⪕n;~k-lMZ}0ER7AC6D1#Q3	PNEAw8eWBNVkb%9^C܏C1{,$]*+	SΫӁQ(.Iq]x5RAvNB%YeÌZc)+|~<N($JB0f8#k|rs0shfNp;z|U`;k˗C+sp2Ū:2)BF_?'Cy1O8C;yFsAgN.DYҾMATi%:Nx9P-7^_\_9X0k$bYbj*	%CKG ){CM&0Ijz
EwЦzjQΞ	2uЌ09'JrFJ)xTBET7(A
L']::ɍgλOΎ~sW;#$-kdK»5?B\VX[4UDVͤxb F3D4 tD(rY
a"XzD#qmz:.[p;ۺ&lP\,q舟ǒuR4<$oGʅCp*!v >wYs!PZ]hONm%Zh+1a>X1X HV41,B3fS찛.QA-ו%M^"!XMNF:Q-F)YL%Ă|Ll${7IT
w*N
2ֶrMxe/;9ǅz&YT9s9K:=RGF|ޓva~ ɵuۉhܺ>GM*HSf%kTSu6ՉRԦj:퇜B<wyn ^&9 .LH6Ot`T6ߜhђe9gR GYIv#ƕuD%N0Wmҏ$?˟oo?{G{`Mm$0r5aogQ0N[_2/.WGun;J>7gwAا:iEtA/b:RPmJT75\4.il%ߝ?<k/m붠h#zle+1
]Pڪ:~.5Yg%.ol{2֚*oa6Ac(?x5OB1#_|axN{2b臑_+ppogU+;s6Aa?\;־DxJkM!|ks\.,r]0j(늾lPo$K3}2q&i)TYS-_[Z*Y6.j\<GUzF賹>-Z؍s&a.Ve
ʑ`>0t)a[!{(F %)OI P"!`1<=/XepXm,`eIGk&J'q&\rD?DP،&%\`CJAyZl-1-AXF͠ӛ$w|Yh:GX]	K3{W5ct3XUtJ$b27%2R	E"+#`a >?yHo!xAA*urבsWMۺ<E2ŭ/	W7.NN/or(}m<%S+64b\Hrwc,Jdc!$:j=Vמ,k/h<Siyn?N"Az7_2Mگ.:I~e,y¾'&~S@P[NΎ٭VGYc#9Undnǆ?Jjzc,<76C?EL"Ǎw4KDb =5S[ܟ6	\HS?x-KӴ\v3߉0~'f+u>O+ΣMj.G_G{n|bAL?_cnw?,`3O"{(KV=0{nes4Ji.j2psƕ|k=.Dӿ3jޞJ6-7ͭ6+=M|8\^nj(OI>7
G!z*^owi{ >hT$X?tLC:)m?&GL*Js7	7}=cmS3JzO	Y;eIGuWqQ\<FDB]D&a0j6!hcG3[T60	L&m4 
IKG)5+.qWqT?*d*[/.no*ƊySJr&R>eK9]J2w@>'h#VE\U1o|AwfZ3z3zfgF[gϭvmZ0'nlpWwމ'ѓO;jW|ϺmC[+5dV=$(V_=5z5KtST<5;da4y8uj-mH'%*˿1N"Jy$b;
~en]UnϾj<zºݺ&7KHWahͦ7/IӪü@	F;Q3QHj<m2H6|f?pLyAԲ>m|w/[A&1)9;^{yK2(]~USQ$̊ޡ)Ft#$=e !Uq(Ƹlg8dX(rnoB	܌fFEJkPN3S"#[]2IjVY#_,l4&m6<(뇣Y[)! nNrY㑗Q7(LYrn>u<@ES
{$$Htq
MqcS!L>YeQ2A&cvHe` @=ːA(|-)IlM|u&\WWcM|o>9dЬAflYJe;ME;Tm\G:3͓ң>K<ieК)(߱\B:.O-wxש9̼c2.<(
Ǿpw6^lT${9G$x(	
O>qӃMA7BNh(":ё0
xSFC}0;%Um6R>AۼK| Pd V
=C@%-j=pלh1\i|5Lvӟ70Éwz=M8r:to|W`S-@2;BEɉʋ}+8)JOyل TcfJ2\t\wp.2012'~@u^ם7}%AB~[gp_ĳNth6z&7j<,Fw*g&/z~tn>HC|n"X|PG{Gx<a?t(*+/_5g;9~(&3o^YOyN`2|LaSuўYBi-C)᱉kɨWCb%#N:R	<U2yJGR1c0+9 &ݴ
x5ӎ]PTn7Z~φCu奮\'on2KM7|d[z,z2	{y4js)0!#!ΐbFro܌BLY"M©M|[Jf0hY|ڔӱSm-T2.JYJfq W# փMz̚wp[<Ԏ-^[.'}sb"$hCZT,R84cPRU'Jމgl
F4ሁF}גs	gπ.Ôq/Ga+lgm<@gUijBgoMiPãH 8ЏrY?j .]`9g,0|7y}e[`+!XBZrk9"֞!n_Wcj+^%9d`K[RoѥƔyX)4Taz^WGtIAwqzB<НzI=$RvI?rYJk*;th1K-	BMqd#aҲeiv=Y)JȚg	$僅3nEI=%e;1BCeV!x79ZulbXUMEX=+h@lh{uJEӤq8黯><z9xYvh	s>載	)Q`㯭G
L	2rBSr'gp)ֳi.bUDIc&SGч}3<ժKCM.&Ͻu4J2 N`
ѝ+1oS2!)nݡ,nO(,U^`9W<;dP#
x0l2-/	qh<']KM'^*xmcm0YL/]$WhJȢ!ؑFrzr˂ݻIWDEp}!.C<8kWAN4/CZ!9aUmQYDR̥937H7ȧPOjDWn kS )
-{@s5ѼwA%6xJ\>7; 6Wp3TK$(}e8J3ɷ78E&cYZZ؆oRp.qҠ{Qbo/ӡ<Jf덳d[zDL1'	r2:H/I[aTPDqrmj8wZѢ^kzd{mgvz/r90)T6_'ի'N瀽RF_~};6=-X-h7iQd$D=BTC*ȴ*D9CYx#o rrsF@r:LBz@8''<D.UJƵVJZ.fWy٤M~S+XKsHiL:6--w[)3?a^Do33?J+}+k]M!BNKg{OEY$W7p扄^ʅ;v53jOMuGFAKETn12rQ{@"|b_طH)ik|@6v֟wwΆV֋ܙՅp'NhBOJ*[[3CѫW/T? rN*hFY^JwtwEY96.=
OΆ<Z;
2*M2juh;",Pw^ 暇PYoV0!j=vQlyv3ϭt,rY /6Fcࢥmh]*;a'{ro.[<`ɟK<{Djuʢch7J2j}i]æ=`p3:Є-jMƞӪ/iEE$Kт.6TJ.nXf[wH}m9|*F*Mr{p?rwҤjvWGD\^ΗtMK{T#ugŭn1
L5_;êͱN?BLөVTt(\H)EAQ<ԶH+#FdtyǬr&lQ1gLkt.lт@R&xUh1*5$11>;߅V]0
y[cZqͱrB$+)lqhe
ķ1kѲtMbJB-D[+;-J5MM]6=w4L>#1\[+»v'Ph*.?
ItoErgqw{=х4fVV+)</DyVkUo|{Zw^"0F7%zӢĂfG#j1zYRyevZNA#$ݎ11n}ilɟT	&l`R"vT:kX~oewU1_ylEfz}f"(s	;7Y֍P@2^DHt0(
He~e`+LkϋHq٣b47x4˭.`Q~ ɯ% -KB|㏡9Es9z1Fh=l(zpxt2<:9:|ssܹg4XIg
&.!دğ*II-Z>}WK[}VzbşE+6?VnU'3M椯rU̵|6++;9;BO-uaܰR+yJk*iO%77恳E10Hr
,9cU1S~UP>b^^E$.`!G+\Df_;~(=$yq\έT	M5H{%G/)Nw]d.vEvڊ[xmd뭭㓣{!q|f+VB,}o^a#YW97I޵ZCY.ER9DW|b\n*eo6'IA1r""?ңK/J	U7x>rxz6<?9}_=nM
Of>wWr7BUev.;3]Ԍ@N@gUjuc2Ng`JFP݋x?/góɩ(QkWr`k=!xysgBrp^+t+]gegg\b0)TI\I0}B[[,#_0N++"~9Ytk˒JHx"T1;AX@e\ÂS
:tw(]~&?!UAutN%7݄߭+ ø,̸kJ	$)A5$d
gEV7e-mpps{jB !tBZdwv&2+qռذͷ	Ak"XXN7'i6V+;LEvw9_Ȫ`!j!Y$Ȃ5Aƨ[J{):?lm19fDm{"Zegȳ|^@a[gVjyM=a5S
/vqb|'Uɰ77R3jt0ūl%&M[<vCZcB[^ ByXXGJxTS3SEL<2[p5RQ7 `R$JV vD))>"'8[{pi|-P1̽CnІK2vMqdqPn&aٛC'
L]r01Ej3IK4K}Y'p/iTmک1hW^|%OaΞv0+?Z:e%*ݴVEl:"	()[W(±5P_a>L7.ڟj>kNpH}}f@*Y ?@X\7l;I,'ub}F%IKB	Ǽ|]#-/GtJq~>4va~t-rJ|,,tԂ H3p|LKP&wk튮TG?({w'œsQ	־٢
FiIvyD|& BסXOvTjh%Ka}FvS!{CP6n5Lk* qv5ʺ-{hIZ?.|x(W	'ӽ:ue\9{-p
1;w8 ̓I!bmUX&Np{ZL
䡁˧̟A׳veg4xk|Ɨ?RJ0alP Nkvӏ_\]ΖYɚ1{3%XN`)rWqO"E15xdd'tDO[hIlw*h9]_pBKg|ݐkc8Ƚ<`'dVL5?ٓS/@עc.^-I;+8/!?,~g!z▣¨inVi0~7ڪ7hFNxOhN>6	Z$Yp_?.n"j<wԬTxϑt#Mჷ1@V X:W,1tm7FNuPfg<ͯǕcpSZH=7)#U^\8 iih4&b9&P(cs12]@QؗQ@:f䏕暠F̫ٝuTzTزcܚfQkPbϔ]tAB`G="i&6LmQ,.Xu_v3Hnvjz,-f.C_sUBPTP ai%qPn$K%NLLq+k7VJd6FL޿Af΢Ӫ:4x6	Q*5gӦ6(?[̰2u}!(e֘]%'Du9i̧?mZ|ӌCJ7܇3"|Vʋ" FB0^ZPp`aVUitY$	LLWx'4\|*Vq]8ML帻.8KÅQ|,A3=]vC>,F*(g昽W'OޔIcdд6<ze碴kfh*JRϸNTu$u79ݣ):RPY-ƞOPC|P=-1[j
"5p^b18^  XYuǺ$t8*d!idA7QE.ٚ*c3f^ߔZ,ҍu#XjshM2kYvx(
dgº?_&+%p0F-=u7Gi3OUᆼTΙbݲ+i@cĔM2hfr@hTK[VG9s::lZ(#3l_*Snu,.-2W^S>Z͋ ) ]UFJR~rVERYone8DRH/P/GBBNu_g%CwHW3}"tb$>HaqHyKicU[I.aHB
N530:L^G;WȈ1$ޕiy@[ՀvH	e
ԋfۄZ?!h  aA7A g]XBA(*%Ɉpkkebw}"YS9Ye<ƊeH]EjYڹUߏ},f]#4Y9ODB)5⺊$KU!_Zc0e%f1ul9/	_\OhU%SpsB RK\gm;_JĦ:8T>iO4FFd_v%tud'zq(E
ԊC	ç22R+ZB[(Ѣ .])`_wcx1"Jx@l#I^jm[C3tVeL?ik肺*7o'|,i{8&ֿ[va＂T0mxu7]/[n_BZ6yYH7]oYZV6>PO\~|5b(5#
_=50Tp[M, g~Y5K4E.DbM[kƘ
4?P
>bu|ӋFcR@&s5l1)CNM&?ɁH5_}BR!ofdy=V{#nuid^9h}14.awi	&ObϤ9y2~3kF9?kae=t@Ce̽GNpҭmnП3IYIT|HF tk 	m2ٰ>Uu (FԴquMp]G*C..&svmŶ2a械$@w7xY譼Kz۷"\8ZZch)EvP:G㸨aFp$ tkZȿ|>O7xjҙе\<.]ovr	Wkm?\g
%vGTARwҭ9.=wfcwR"C^?A3}<FUr7HWOq.`1)Hְ&B;Qy1wp<zdjDu?zEϩNjQOge2z89O{%`3ː~rͤhvǵ=|unP˗9H.1HL.΍FsA=Vww߉y6Θ+<E!5Aq;
6	`PyS?KϏmڗOݔ~;,R*Z^r(,CP2<م1b")I<<\=~afp>SNaV:qp}ÌW)SlIU`U@/*oP!dy﷧5_*A\2
%/t
`j:xA^yׅ;3%lԬeKϜz
m\ǅ9X"ۣ?RO-nKB68jmA[1xVNVp\Z 	ݪeˮ7ԓSW<;ng{	|M)WR3]ij[o7=0)̍oS7wNR@Ѩ5R&2X_:]SVQ&VA'4Pe.+r$#Jz%kW+)ғR<9`K:]樒Q/mz%r.BNÞKTeSUJOrg;~>hԕQW+N$@fF/C[.vp`l`xps0|wPUf-
Gx!S<fϫ6Y$klhV8kwD<9]=YV eGΞ:A	bıC65jHJyk/;/wg;>!IxǷY|e*
Y3_3@vF]JEQ^eʢ?_0TZwv$vNo#"YqX.kE졋C_{ab6ԎF7qq:&ksHB~/&wlkNZ"M<n/Q!wT>
۱
̌a,fY邖Fu&-Bx\)G5
PW:%$CY1O5<IV3G֔%h_(I/Y4YroC4SOY;?Y<i3MWFB<96'u0.o4t`e/=~'||ӮA\N<hZ<`_v۸Y/]ʨ򔍚:FHΉ<)Rs+}44N3MX3&#CͣenC?-ٮG;ovLOOUԐ5vFJqR3	RE?VdfFd^Ռ3 owEķ4.WkɕfSmQ1$ܫ/Fi., py#㦒UB=AYVoZ,URθa#3>,-yǼ{hѨOT45<^pkWfYbo۪hKJ#a[v)T̽$"Xֽ)')dX[h۠<Yzp֤n3+L5AH\F"tzˠ0B|N;|_#vTH7zp's(]y{7a;aF{De !L(a
M^'޾PnPzkk?\,C${I'nk>2r rp਄(ƛ˪|z+$>,I$T1EW~0O0u%	KS,-,TnX-JkkbRn#`"&7̀ВSS$.-raV5E.4;œ=4겹.B{c%ցm_xK>Nզ,ؔOUfEkJ F/R}C宥P.nDM>O6ǟî`
7F;۸06&?b|pېN;newWrz5Sښ[Gu4	\ZFCN6/%oh7	Bn;c2fĺ\F,zpU{qmiKuuu5>;`m!su-͍mN\?s"[st&Q^Vh[UZLɦkr=ϰfþs(^H.Q]ɢ7}(	mxp783kt!/r!ۧδ+.x/yiTvpږNu8$ݮV8\fw_ۧ#pyNuv?U3NGt%c"]\!z[TRT+"b\q<Jr[j2#v`
mӇ1d!򧵡iTxwɶ7$@59$_`fttw'68WXG}#qJ@v@+=n	`/>n4(N6%ـOM :Nm^ox,>/fq./,αvM@NhƷ#tXvv+	:i.O{ !oϓSvvW@=MS<]BTN-$YrVgq[N:} +%k՗XmdO#xi$-$s+W^z@ȵx\/wvR*~Ԛ|[ǚ=eBnfS!HOŠQr/%mɚp{`];.rp-i .M"%Z)L9Z7v2M#sfZ"fpʳN)|Fm-46*WZOE1`Z"%0Ib>l`9LԱspk5{B&17&3)15ԵQ>Ln%bA!Z.&)S׹:PHم+j\Lف-|XY0㥉A9 ܍$h ezD K٨V&ӉxQBeߏ(Ag4_$tyeО
p=7c;kBW\)Ֆf|,i4ŲXAgto&"=+ҙ\WIɠ	FRd%gsYGa=

P CZ-Aj/Ʉ\%[.oLh<ᴒ(3;_1KDLyRS FJ*M}}YzY@5O[[Wfނ,{}بv+H'YAɐdȵ͙Ӵq πvW^%T4ɥ<581ĿmRlSҕ(lLmnGۦV}֜fˎ[4CzPxy\Sl,12oxGKEDtq=,4BG唘"jgBм"Bt3M%SJ@}SIg7ќEOPn!9i84tv/KrWX- z|kaHhQU~D?!8k?Ma4lLRǉ[r_P\t@.bcDkl?6[7rO?)v8xQ!~l`2[?-ۛ^(xksNf;MveS'`2?YY'W=('8gBEQ<z'k>uyKmلm?uV񴄝m Cδ׵ta>q$wQϤn{܋\{m/R{)cJpOI!__hlA7cCO0EBYWт'e4sgG{Gx<IH&PGK>̊9GWr!5ľ3Iڃt#y fEPԎϠzJjćHf簝g^{}g"'ݯcA1P b e,]
gvNNv~p)BiRnL+P${C߆~Au)ɳzrS7̃(zxEkR)r;ES
BsL.CO=b*/i5pL)0zzi^i.VCu~<< 8>lݣC#T-z,x?Y0s{ B%ŮIERxU'V2]^SUJ$9;ňzZ<!/3<к_~jvxj/91(nY*/)/RI	#gxa|\ú|yBCi"[C%au4r'_XP>$K><M_:j8i/ƺݚ~Q!'b#xJ035
Z-+Mi$#moavx[S/EIvV9m򜮬6y ܒ9էPqW)㾟!{JXY-/ReW15*VԶJ[3nDP^5U`JL'SWO58@->3ߵY+Y'ؙ173ΠLAڗIB
	OsڦHk+;4i1L\<+Gr3#s+|₪BШᄟPC>`6WA 0
KⅽV=_n
6kBnک%XZZאVl
n!TVI;V Zumށ?
7WWѝ@tPϧ?PFTcD7$
`Ŝ&lR#'?WNkV-S}M_6F(tn&	H{.DvU'P܄	O&zwWJ$!X I{_oX4t^z*V`vLlXԾUi6Il8xL&/GENz*|˧UtgTN>᳤*=0m{⏗:tmW~>pxR;w0:o`'e9;裳}MR͡|պξ|Ukgِ1\/JT:~ʴ$rh)\Ƴ9>)RY<J";O3ڭ8^:qa7;'>qrsС=~k@Umݵ3푮x=kw㶱+_qMRYR%9ܦ%f,*I릛~g (:dmy<>eA3[Ѩ*x}{}Mx;ѫ(hwGA><{]l~I9e|S?fm/^ݲIƲ|9'lь$fx<d0|<-'gţ$g{p6Ka'r:)6Fa<]s]Lx@ 5@x $邧S1yp^DMp̞֛pvQ~;7(Kg{{q8"s#_4xLbXg,ЉE3q@3fli8L`id8ma.a4&Ȱvk8C I<{<"L>psG6QN,d#	].Nf|rwCj>D/I'Xj{,fGl4GrY_k%8&vY֓GyE@itLy.=6eYO\~~'D,K֧ɰ5)$![93|	3͗s _r>=asbKXoqǠf$~p@khFa:a(z^R!#f>#5\4~C.WQo5[`xi ooOR="^ƏAm^-ѠոB>Nr=Hn{ntyB??Šqۯ_~_IN{8btI=EAok:H	/ уw}v	*T|믿;C(.$g7	݆#;or+8L0Bڽnк~
:91Kky*M08<(Nk x +vD^
bFͅw'Z]7 X+.s5V~Is؄~msvW; RM_)~eRP
H(=IC0"h>jxit0h䡥9F!꧊.&7)<D] dP?c̣{npB˰~8RoAHy~ryƷ`AC0^Dl#R$ kGNӶ5Q&A3Dl^/0׸&LA2EbRRA~d!*ƨ'C|zq$u
f^(X>N]u.*?D`[JhfN<Ԗ
<Ky
YBqf)P<_1)+X욏qXK2ݜ%1PmZN)Vyscoj6:柁	VJ.qi5l(Mc j`9ٛF>&i\g{ia]k?ӘxG$iEօJE~eӸ/N'Vش`xc v|#4F\Cj]w0ᳳ3IpD㍐Q}`%:M`kpF
ƪ6>'&${a[Q܇'g}]^KR gTnpǰ3~zƂ׭ɾ5߷6
WNߜ{ʧ'WAa7<	n6JQ9!$7u@ϚX@,,A (77e38C}|
떬vC셄|fG
[=i8#xpzh$#N@ 7hF
Ot\R5="kQ~hcI;&5+Pt|t5- ZFw*l]?tPS˦V|(osr+'vlD戯R{垈o(:&{\0rb>ry& iQ/n8S&mA1a!T[m6=#K	 ZNDlv=癆q:4y>Rpݺ6$ `-dxdI<B`jrdM;
OoA aMmֿpɀ|=Cǥ}k8S00e2&fQPsB0E.n0GP^ۜvIstHm8¡fR9߆qO$Wp>1%Ss|VP<`FL7,\%b[֞6FjJj*IM%`"",(j:jo6s<>64/N%pe(߫iLaEv-"Y꧝,(j2쐯ΥaeODj)Zj~;|z+t@*`:rjQ
⟬L~uF{0<Y'xA/TPRO#̻=ƥt&<ա֊4`0ߗmǝpgǚ8Fl?gK4KM' su[EۦX4k`Ulys3L⃺eU~R0Wd/LP஑5<. ^mҺ2R4UE. [.%6EEĞQRWq 5ma^,K`1nh#qpTy.`.>JW1u̺@in9-y3|7%rtВ9H2"&ayF5m4QOԾ	  nDSr#pTC6
OWeJL4,Lb^x2hgXA%D`RTP,TFUйwkLuĄ$yXވ$zVp
Τil<Qk6d)۸Q}}ᠻqAP> c;r2CxYQ1KN!MH"5\^ϣ| ՌE};4'+ޜ!ù#ǕUQC{'X5Vƨ>SP,lƘ;f*m/.Zn@gbǄ9ur)RB	1ۢqyt+l[r(56}p冔+&0P?M0kx̖5jiCZyTKBVʄƜiEN&H%TPsr~x:ќ}ŭaDs~`y @-(VEkL`6̂\ﭵAXw,4S~׉u5N+`HOo!$Fw6iU2h`

L@*rܫ)l&"ČJODjvx9y5>YȖ[rQIC#K%%
XT-=ApskcQ݇[.:VP/@ m+jultV
	ea(kE->N(Z%or]M`b6m][2tx|*0ó	R4&jVꀼC<GG@|<L7;R.bXéިH& "J J$PFkX~_|!psC=&IT\Gcletj'	(j@Wm5']nM;k39}8YCU	䲆/Fb­	_x(A2C[YNb-'3CϜ44rz'+*D1<DMdy4p[2Ei:k{v>ǋe<΍*gaz#\Owx.; 2]a8-骝@r=m	C6GMeE1x&g(<[ifJvǴh4QzTON| D@QȨ8pHOց1LՠODR~rRfloeQT܆yRy@Q D\?nE\/+זm-/ dxI4lȵ}kc]*Ai`O8mZ[Y^+=#@X8Ѧ<ꨮgLzÄv<?Ծϣ8Svli4{	,<<ߋv (݋
lB_x*YL[vWiU-~%$8d<ϔ <Y	dALX3j]=t2<]H4$Uxvl{>`	ߍX:G氰\/f\?tPg3`J̳}A|*n`x@uV!Q6xG^
ZL%;ΡUs8z%yV!\Ly\1Jeʜ!r7b3Fo#*bn&_4)<昦2R̛8=>VZNp:)7oMnn(͗u+Dk쌔؏bu *7EDr:q\5<ӐKDT9FO<A}KK{٩vս֛+VŏO3WJb"|50'XZ,Yc;5r@O_JM"ⳉmU:ʧx+*n$lB' /I+ZiyDC-J/'tEa;Dc._d*	ӾtV_(ϗq:OE|?D`3ʀY~p1)zff$!t,M٘XQgE@eM] ]	Q­PNe"C-WHvce2%idZsP-(1Jsq<m3K:!Z&Sgՠ+X~h&,)j?s](ުYfE@Psjh.Z&9QU/`RK{bB|> eR9ݤ]-Fɹ,/5 a?k~ߖY_Ŵ휃>"u]"<~716װgffE(/te2|1:դU
NcJ{|?gv"SO	{Y ]5 mLޒ!K"Ot1mZj@:9ྖ@KZ+;lI@ҰQ^}U
1%'69]O1[VEσ^cyS־}>]	ȾG7$ˤRw<Pf~
om@`ꩋTX<Q޹eZVժ,5J-`e5+a+¤F ;f=Fl{_wvzZr`L K ~04DN{??s+k)u (!rbXT!<rC 5<Ϗ!-ϊ׀HVFS:\Cϕ
Xd˼ꌆNCyC@}!/pR\`v`G=NGE$e͸[sIwɾJSIo>d"yBNYW<еUDRI>kMnYu"RQ.</1 ?yG(p4W)'6t:5=c@"!ƍjGMaZUXd  T1)Ӓ?r &"1.tEDe.J^<$^H5&,'K0`bƄ^f=_`f.ˆ=dQ=Z^./_lʸHi.D&#(ّW2-2j%1aձ;2t# ⵢK|=1:/FK* )Լ9u۲lPQ	6+ihXwg{_.66U8Z[[>k#^5WI0J4]r7Pޞp{N,f#22(/z
oJkT&&g@? s)U,#%ZL]wSY03ٰW5`S*Yom!,I\}L+hh	6^!	1zɢ/0Xk'g%Θ-ɭ1jiiDMTkTtAiYb.g=ũlhAt&c:x~X5WN谺!Y|ŹrVU7ҁ!.v=Y/Qxx`Vj̗EWhM"Tp\\ud;e؊q[k%JGQE
SD4ԥ'a2	EZʜVJYXJPeF+Dr>fxQV?,Ɂued<hZEH-WHs/\c*+ޑ"2:Q^zSsqOKx&$Yŗov9DލMfu#4Oգ=?HICa)*yBYzqx4Et=ԥq09iK	zj#}շi/ٴJlOԍǃNݦ-F/KOѱz[!HʨSSuJBgx1;e%G3^kO,7Ҏ&9K6,,1{,ms-+y)LEO^wʔ9QUQҽJG>}sm*۳pl3D{ي0rH5G_E	gaQ nY%,֑f!kv/D}{ΞZ¸}q2oÓcb/1oEARAb~fFȾMwq
 /.nо~R9O&}pBP[.E!>4$l8gF=9-ʞ$hu4vŌE}̦8'"OQ}
~ggyUٸ]
)bE{VuP]"~pR2Cy
۽U5Y2hL"-*X<I0oHz@a1ΎEvר2Zыdo{hKuV [F,oĂ"4dr"Y6z=tbLBQ5Ygp(@6aZ		,x\RyDu\x~"	p*K5ܮ	0aF{I(,Fƿ3	$ڢI\\@e^XSU4O;-UG푍Pyw K eEptY9ThP[nـ$ǟyeEH*0^;h|rZǜS<)eQհ/<iPt!i0VuGJ	`(XptkĀ7kjnU4yA	!3?}pn)/Öqlj+NyH'Q	 _1G:Xc^YГ,}!0(ϬDY!xD3eXs݊];U:}P>&0XV}qY}f噄xN^StK/JkFC1P򌲈3ojYQ:**nϨ{PV#oWr3}+T=[D66yO^)Ϭ8͍;m^#2_fe=jdrܥXp_4}`o??c^礀&܎;$P%:%>ж86*;LM;(9\!莏%)"*uhJmnf%cW.^hX>1-%r
}}=$қVd{酹
ZgKQ43E.3n*xiLYMIUCKُ}nZH?ڷT$V&==~D^U!ӿ Oj;lz{:.;NF,؊_.S֫78^?yus|/AyNAWj\LԸB$$ C7!#3}h,Em1'c~Akʱ'+<__.a2jFlqѡꖸ0R's@}+;}I6ZwO7=z2½MZ<*$PyVHvJŞ؜͚̐˼U30['L]Ħ[i@4f6@0fϊ`:$5F3e{mz8QjO1r=c[8DbI}L%6UuGtkZ=Oӈgk.V&vz&yj#~_?6{WL.E|U6tL]Y!ZuX~ $L9&)^uFFIVlZ;Ďg-/ń#5P
;.,Rw8jtGǣ?Ԭ+\-{`k;z [$e<9eh ֏[ uΟC(Ziv6  lu7Jpyv{`lǅ (GxR?)7~, ەtѽik?lAok:;֠x>X /[mp7/)OTZW6[.q .y3ږsvvh∣{tS
6tݝ/W,uySNi=^h^<?k{ǋ"mzc 6;5@EXz-~ a")σN|;pк֝
)l7@rM#vU{~.J`g3n unm{ʏ_"K_ #4I6`KЏJz   䢵`P .xLzrd+ XEQ2׀) "B}f l ,Y]wJ	;pםpNZw]uR, ;J 4J"@_rmH̷   IF>n+ n= >X۾\JOcxaJNj]8:`<ϭA36,; fxXmo6_A$@awP$CEmt^"S:G2$kDڵ藡͇D=H4Mzf#J'gP3뜂1N9#0\.eK7oPxᘄ匣`9eǓN'2(yxbqƲlN<|%)x$F:dF'k
F?uvaaQ~]iLɨj6]ۮ]8X;I0=ל>8ccL4j&thtIgzN.׋z<N"#u 氯0s<SvW2HMXmPp"b؃?zSz	ѴS<mYxn]cl"9NOU!Qvjd:Mka׼ݍU3ZdW8],Ro	oB!j2Wo2@66	ȾflX ҇퓗İ}F(n+	'EݢU!@F1$;:E6[Huӗc V	*(  ;tK]څ9kBS v)DߧTg'hݍP˒1o5:,]J>2pLsX]ȻPvq4yxY]IBԂ~ە."Xߺ
Oq΋z}4W^(`q"x^"WEFYqŖFQ΅f~+yAsUAuN7ۄ7Φ#u?Pw~nrR6=rT4{Bp*ƹ~Bw（UT:_zy-3C)NaFe0Wi"Zls ͏PЂ-LA5b.UИ?ٳDiW=,[$C.PYx1e=qzkoo)\(BE̿.24r0P?#xOG/DЉ,xBU~=p,Eq+S$` (<sK{yPcp9Gx6㮽krikҪR	Bkm!uZ]ݵX,*3S
->t:<őJ`}IxXmo6_9@*/M}(@yw#ӶP(ډw䑲dNt{JS1SrGx^GC:^KZ; X4XDrI]	sSBuZݡh")pnf%3b=_j5<KYĉA%j5i4u9j%gqWA_b%ł}D@|w:W2bɩ:W{d! [d=ʹŌs|Kc]/B{Mr]yO |$BnşAdob}U4/Gc9)9+)>ϬΈVϪa|K4b{Y+.fzn0Ȕ^ܠuS
*5w-zbnS>O!oi7Z*6Ax&4+C҂$w{nG$?+ќ) LɹMX'䎁:nDiXVҲ#0Bd0)~*ۣ%u˿"U(Gֆvw'|$<3ij qŞ%[ԯWvmSlT37WWt}=aYWCs*	b]JpHFç.Azg.61㈸" ɿOg~2Cð@wN<m^fM<F@Uʃ뀏<%mW{Ӿ]\=rmӄLZEb5S{kmTh[ĢD흀 I6j	VtjoqCHEuf]3"U3WR6lxA?Ѭ!Y/W,_S[)\/; \aS:VPBsϹ}4)!NZ~jɡJ5ԕ6R@Zrl֭Fظa44>vXda$VgWKOK`~]~{Hۄ-Yx"W`i:rYsiq`H"Ŭ=5k<Gc;xx>^Kӧd`A &6
O|!zU4~TZXv]*S~<E~|g/Rnd~=m+YxRkj=SX1xA	QlnճD<u]Ǭ֧;]Z}n35[{Ӎe͡iBV͐B;ʍ!5]C!#trŰ̖i*ILSļ'O2;bfm1?C<}FG1< qM&{X@SM2LK<1
p.=g䃐wUz,9ebmiD6p&oBKZ:)ff&>0̋LxK縇׻>{Y5WCponP*im^Y 9a>)N(zUjP]&'F&ߟl?Ubk*;p?*I㠄h9ˉ="Pa.G,[ʿZj\L Ѿ\.;x]{sȖߟ7ʕS;L
Kf#.Bv<[F-5- ٞϾ􃗐"nMݿ>}&NغUk7t{/|֛fbnݲ5RM]ɻw9v\> S{J4{5N"/x8)gK	$D^S$g{)}凍_JW56J~ߏ>Ӧ]RE3~e]/G?FgԎDafli-ț8qyf[^_.Mi)#35!9@F^ZU̷sU6_NiSuh3'y3=IڛըM^tԁezj.%mb	z~5Rw9x&-4R˕`t4zvTnjJA~Fts|95xbWa=RgL27q]ǵv<P+M_KSzeƴrƕx
v%`DoNq-^jVU>ub=qbi[nt/\:
G9]s0rzu]W;8	5e%<TjC-N@c/63lKXN;a+Pĳj-ym+Aqk"X6vTK5YwiUQW'aDcZ/ xc7viA.5ѣAfz$oq;0u3Φx?ZkmO.8IP֜7)h=Ō$mzai'3:Ҕ-I5\OTMDD:jcXX5o\LEϲSӤ]:``MHH``Sw25xX7 x8ƶ/LU eUeā|A6Q*8n(/#LPrĥ\8Qn	1@eF潴PeTEIL7A\'Jg${;eA:֒.f)K"\LDk)=PٛF>(m(ruFOB#iڳR%(u8چXƩ $+[/Rxij"o021B1GK5\K-灉73>}q}q-Bn`BCZ1eщmGe\8u^AHaFiUjTeRM	/R"^95zE<I308HFcE<d%3 -ex*
;K|eoWR`dJ!QMږQc39sXJcckfIy/_N 7/*
5OT@W%e}H~$58&ZaA)Фih,:H`
۲=??o+{c,D{L1DsI?| C'>}'"tKGx1WrJ(-|8&-hP>P7wCqiS͎]	.P	2ۣ|JpA |ld<lR޴p[,Nyk[
vζoQ~<+oLj=^d@>~VOq"QKGPO@o27\c`aZgx<M'tCr{[!v/z9G%b`Rl@1qs3[ح?Y-!遁L#:)b˾=2,z*d SMmxļ$N!`-M&#͔#m@`"fG~SI6ndxSL.da}%BH4ǻP|@Nj?]'/w}>`(Z#:r<L<|u18墧"V]"VXE[#~1b2X<geO0_:ry#6a<ǎjHZK)Hݾ<aPTz0l&k鉰ƱPOg}8pWn*8Ѷ:۔e6Y^jBMV|N)-G}{o@i>%6nCHF'`츑qN]u`;ZB(dH@nBAlp6Ok֢;m`m>m(iqK̤|S<%[OCتi#j}1\7$+Ȁo;jg> s|D'%-FEY-І<33-?Bo!%􆆭Wd]GZGc;W[|iX+Yhm[!GOkjCoƙ<?,4 .xukWG!>Wl7S,:k|PEJ+`V`Bd͊GA\|EaB|o%8d1ӈ$A0"\h`A":	#XEc~_0eA.q`N̊؇  B!/*1IxM*+x
8L1Me4=`Y>jG[mB\hӽN69;j;;!~AfaFƧswlpu՞ʶMM+vޑa@xSBE!fcӱ.;,{î;oұ~<4P4W{G佫O~hǌd h7ơwÁO>d4e'waB>2POc
(Kxx	p#70%?Bs^g"B7ߠbxxɘoY&y1}#=ejH>1Ms^ч,=2gq$Y?\$)0^0'<cf<vOgț%$WSJx&3B	?>~XA%0$Kќ(r^qAMXBy76h$Ag~܈܇#BLZ^2<GWs1?#;mN1?.$Bz$9mF,"Vx0&$b6jyrI\?sHk ُ%0>boHBrIýH˶s	Gf{sOA>!Y`a':ߐq[_^xOh8 /\s)*Ϭ>03wϫ`I8{hşY&1,Y :q5~>h?˸@ޟÿ4Z eY-`5NzO>]'}3s#'@Z&>
^"Tb3)O J1e0D/SQX	ȔN 31vf3sj'y@	PC0] dlf%=73sA<ᨇ&\ّl fX)Hژb$6
a}`yn[Ru: pc*~\#˹E]Aӂ+c^0y>1Jv1fJ U[-MAaN9 }&xK;(	׳̀'N0/dJ8R;1{d~|1MZ Պ_/U;٣ os͈~oMH~@#K>z]9[}&-l_f w{~E)٭%2
ͧ:>>`$ڀi5d|z:Tp#cdAv`L6XO8x@È6
:
Y`XXzRiqxĴM7@ 2 jϟkZUuSqozcȁXdr 1m3w<72q敆7콿SN%6bvqƒ3	M#abp/%%z)ِΝ+`d3S!X{W50
(}^b<nc ÖG̝/A6wÈe?VZ!v!z.AIfq4
{<ĭBvPJ#b~Iߊvꆈ}{yъ"<3m?qF#tRa }ücm]%/%i|{L,LFʷF@/^4+&E_xH~x[\9r͙-/
lsPط}R;%*啋0eRYyNDqkOFz(ͯN/p*4 ~܋C@ro S0,Q[>'SF<IʫXRٗ~<5,YGft,ȭ2  sx.`qIN49?Vgj][LX︳_*_<*[?N[tYZ9)Y""Zjg\C+d8G
vrMHJrcڦO=Wz+ S,!y3#ir!]E72/\_I[J~;ɏF
/le֜p@swfGz|;%$Or $+f~e+Ē[(FEAcy ) H}*elɕV&^;+N)-mx:]MNDWA/ aYWw!`.9XNqZqrYXTmw NA;VR\ٰ2R(5#CɐV(tN]]]]	[1M%CQK-șaZG{^xAW~4I$;"Y,{ɕw' ~ =	Y{R /]=f	|ΰaE7W:Nd1O<K^W8mt yk8+8d3dUty¬פpPfl1O4!
Pr\F"`!OZ_g\L\ݢ3Q$*j4GZ_>yt+tpSc*b)(mm	u^vq~j3)Ntf }$DX=6]0'rSdy)4p[bd dǫj6?5|ZN@T>B$UV?n-NdW_6vNe1jlѣ	>d?w^8ǋx=u^įf3|Կ{0dJQW`-aېu:~x=kwr+)4CS+D򒔝g$Aq-r݇d5={%.)Jέ[!`0гgo#r[$M3&^8bIO$޳ghǱ4[qyA"g1\L^t)"	X($.6N )ɍIp{ RiK G~Io)  Jč,4a2SӀFe:LnW!}b0Ķ!V̟oI[/fL-(|*zF"%a4Gj	c7peO	5O mhOr`"<\.$8,ǩ-cMkI3cfflpQbx4&RQP3&!&q,zÈ-NZ3}{HwcXG}!wǧvo蟈v7Kwί3!Ptg]qVXuϻc;Ә
Z<};P~=k	mA{8v.C1#8Ƚnd9No܄X/w]Ngg4`1!aXώ(| ~7g뜵X[:АZ*ߟ:TA'ҧ+h#$ɰH]'8е0 @#ct {{+NȔbPN\FvEK,167>\\ѭDJFzح[/ߗEm^Md'GB^W۵l=ϳt]9Z.mzb(p`[Ϟ]J'iz?u/C|1iSC6ȯycE1Hɻi䯓K]K?m5A@Hk,|4,, jF+pϣSSXdQFfa%Gsޥ|#/T9EM8Յ&aI!XVHfņ孈W("	%2<pJ^d@,Ⲉ??h{}$gYekr\jGw{h	åX~N"'zkoK9	JTS$:jm<z	*٬0v7H~xY(22΀KܻRi/]M}RrfɈYr1frrf) 1NDJD\-Ê63@KC-՝&	^V5Cv9JyZtLdܗYϗ) $?wϽ<	 #@XXtQ-A10[T~-?X%%1bk*ހGP\F\QDNhWO= 7XX) $hSAӖב8ℹy+۵tq7.G9_պa
tЄd~	{XПsRc+kq
PΈ
0'93zZ!/#uթs?ç6H~͛<f-1A8nm"r	\0ϠbC	>	큒MS &ٷZ](܅nNu,X&5E\(,sT.^v@l[	mb]A?+mZv%hs!Bf
0(4(wk)FRN߿񇿰B<`ov @)fy2?2>zB纅 G@!Z}<TJok1Fnau-wc`z}pTKc {h$
i
7D0	rD\%`ap[Fx[*
$QCKPeǠ39zz/BZ֔PR
}̟ qAu[s셳ˋ yG "㺸71!pjA[kw,BvGеz=ZfUaYCU2c)c2bXw`5JA6
:7G~):-@\ dlQ:ş+\g۟%Wb_-q<ݛ.I-(->(8/>s2l
^d,0 |GU
Gno|fC_<AQ2m'ڡsѯ)Z"H6Vspƍeib<vRnzִlɛC<SM=A
`i0![)*Pzv'hg HW.,W5zq&ǅH4<iA+dvm	2v~iYŌ@ǑNMVh$c?N/#xiC@F%trpԍGW36zhQ H>]毻1~eҨj]؋J l.sOO?O'vJtsG`eh5F5-U51>=]x9qW犗%,u%6w,2}k<I5$_hAb?#8!FThو+37@KI=|L*haC:&C-+]|)w#K잣Y,	6eTQ轰+JOk["?ji[ *uN/؜ec_&NO7Rf;LOm3F[P7TsVMnH%˚+oDStZ cnUh.h1;ЃL+v5%X>rFW@ۛ&`~g8A-3}k'G嘮h8.tsNm3u=sh0/>ux<;qbx㋑;sg4j5/omiqnΨ:o<[eCL?PP~uXmVE^aefˊUSLu0"U۱5%|xH:>}&^Z*&l2SnVJ\~Ő:`$0 aO%ݛRbФ&"Tkk?
51t<Ch
$G@43+i+U%{J
Uoo8{;aQF6^#V'oNCb)os%E8kH.F~o03v:!Li8ق٠Hq0۾ܶ801% D;Iw}
#5JJ{0s[(N/t9s\ҿVR1nHkj\q֥A
$I?]_F,Svqd*<SʝwqR,	e0O?̿Խ; c;R|3f{ZP{q0q>ʶ<xQ
$fW
0;bL4|{d%9$H1s`2xPɇ>ǃ8N`G֠W -k	3ַ*!F]UsK=JԴPٰՓh"IK;TxZquLZIi꟢۽Q⬭[];	m(@ly1pVw:pܟGk`Z,,f^bwi.
Saf0Gva^!m|Bʟ"*xmc+B[5f_b)T#9L
#`)o{k,4%CRhd6JbSOxBC+Q *O?41Ldwa,?DYҌC{4!iaϽZ6*\N%-ް|6n *cx)AM}Lz i	175x.Q9Q)"D7K6|;L%(ZV^B[-#g'5pı{XjdUǦVLQQ?8~I?Z|
Vm	᯽HLn`hJE"ie&[|oY؉b5fJP
V٦lu_}|$Vi܃͇}g/bϗUb5'$pN'(VE:qq"Geޙbo54SIpbF"hm}XAPu+KtŕM\T+Ҷ 0Ab)PCRM֛#Ymo'K;QY@ uoqOS*{oq~8Js 1nAjdfX&r[+8ǡTR-$)Ge./?'gŦ.jr-Tð@7C)i!ٶ1Pլd'c| X	xLr>)8ϼZw
f)BޙU -

oy=
hsL"1Ǝ;Դ"eg_jڇA8bPb9&8$8tyw{oQէWEaq%-gM+fR5J5ir_4j5OK5<2X{I
2t;>/g[}^'~-ٓ#RҠ킗d4j8QOEUHbvcjϒû6t3i煭=U*[϶cR]ᗃA/]쎋`@{a[jlf%VW{ƴ7?8[8!IQvlVX"Q*~rEŗ rڳoex4bKiсא:h>N//%;&|l0z˜8^vVxs4 k|~(8
胞rN'dwu=&ܟ&l&E8<k'`#8OLlZw
iEZu\gH`;=}.v^Rs
Yu䶂nq<+erK-VGۆbiͪpKIkte5fa ݑ>Ng&QPwD?ye1(C$eȗkBxϟ0h'ȀqqG0]ʦK2q^ 7<J 3Zc-7!y"@
껱qpGvujE1WW7Wq8qPK}%/V$@,0Lk9ŗCVңT2 33+t}Ja^rt`C2V$Fx(z01C2aaܠɻ!30[V1/KhxBд=3Bd]`3SKǑ{u}}8m<|,	q ^yfd}joax)E˭j_UXz_dg	!e[G4ښ7-SNQG<ï(onP:ͯg( Lw|!GUĸ9+`˵5³v,ŧ׏<pGY<EEoRO	6M)AN2ڝ"y*.8zH.aK4@AbRHY[e} >yUO(=Dtx(7-IT'mHf틑s3-M$gR+xe\tY\Cs^mQN@VhC&QCz܋ 
jg=sFZLfȃ5smbCTH{+dEV1sG^qR :+Ѧ5<IB"N_rUEeþ$K"Rϑ@=wЍ~U.<8.H+)gn7+8jKj@%,C8[z4UvD<Z/cae8;!gJi$ԃf&ظXQO#A˭Դ1`Fλd8|4[*"rN_d<C}&s$Kx7߀*B${T:>WVe'q˃ojoԅ!PQQ\z\XyQ
ޖYExK ЭPBYӧ~NOpPc)D7kJp_`G#YHEq&}d10^]cѼ,&֘Zl{'}Y/pUx&+fIۏww$[#Id{JfzIcczK5ks}'dHW.Dϵ:ϝvK;ƺ*jb)"w]Ţ|1Sټ_(ؤ|Z&ڣj]O[+FUuNX)Q`?hmN4 UmS6&̞r>=e/L|L_1:U;q>\\FN@j+?Oco;"
ÄC!q2*SoJө 铬<dG[ҟH9(KK-}k7¯.>VowM(tll
B+uzKmْ8Y-l0ƨ(`UMmJ=QUsW|cKNMPYe`sVQOtg.9*=ZOvnfp 81`Bj=9ۥ}=ֱg&M[*р	b 
?n4vt7hd֓sB^:hR缬+yް!둒>y"|$FTb V2kL]W7YI6zVƋfp\uQ6:Q4{x)GH왜H&hT7@Fۯ.2WDĐU>7C"e#*`6Z-XF\cow[C5ܺWZ6^ԾvV=[n.BG&+$3k`nI$C/h\/t*Wq#SA}fݜM`ߟS(Pfw{6x{NhC1Vhvy':/Mj3 u,10>Tfm7Hɒ!C&|Ucps{深'AJo|}-0{IQ?`{G.n|*`tFwð$=EUT(D6*mXTY<NvhՎf~{wAlםUȦqGPa]W[G$,=}Oowny*.(V`_UiԌ)wQL34%0k%		n72oF潵r_.zlmq`k?~/yF74^a@hk?N(u$?|{OlҞKʒ~ٵ=/\b3dUv,S[ <4j}a;U"EG{{/m sekoA̅ HY} xUMo[EUPNIS@IM`!HU4~C3ּyNC0?%6k~bĖKܙyv;f{ι+S)IDw*u͏S[3Ÿ}ajƋLpyڤh+Nb]<jr֨ ]HLBOË9<sפ3Kho3+_ 5!9t=4#}MRQզ:<vhrzE+,h*4B3n
awqx}u!]	4y*9J/&IC|1<fp2}<\6l~|K_&TЉ"={^CJ҄FfBp9zp&5&
HT08z(&JQǅG:_Y#e~)犇v}gyX`16 ^|UV$Rh)r){8,Q03rw?c:<!+3M}XD[2!M*h@U F;RhU-:p)UE))6@; X _b~M:n56}K}?vΎ˘-70D>aAl+ENq'46Q	fƪ]XmGU?mSR1.6D<1W:|E!*;$<guEle+o?j|tHJ{Ɏ
ڢ:oʆsak3o]س^ kAOLi<X;&vMښSWr+òvi>az@h
]}*ںcmxk/5f`*ە	̽zo
K"k֧؛jcە^.ևQ@j	ow$?Qhm̃Υ#FF,`w;3YDi;z%~Ujq	ve:.lZ+OQv:ET)҈]J]^|0"~. gXݭjBB-F밭e3Gjl
x#x=kSHREd ,	[Ќ)?dNidmk%_=p;s[[2&nm]*E}yFcLg^Tegי卙x:3őF[̝0t|9!|ȦE|\esO=)l:r<Ǜ2Aـ6f )'
8`o;dcߎ瀡! Eۗv+4Ԙ[.s< șzŖN4<
l7&Fp#AD!L?v&?-넳*;<=j"&@Nq68!0A1}9)&q} #|"	4]_"cHF 58LGH-_31⒂|VfrbF c4ꤕ@u^=}v~2.*3A^3̺~2:U|}1msΡk;`m AƔk]Ó6t 2Mvְa1:=H;::]Ϭli#qu=`uyh0Viܐ`]4oW:u8]@'lnv=XЕM^e͞G\7UԅN]]; 3g6)Fz?۾a(><<a`+={|jn=NB7t2ШjHx H0GLb׭Y~4IuFuUȚI*A:ћ9%1-urK]n:L9hgktܲy֜u=~ܛ	.HC˘0Oͅ͐pU)`3t51˨%hєM}vΗh$vT Dw`
LFq&6D,%hѰĊLs߻OZ)z"t}k);Z5`"B<CN }$tE-&(mރ8]Æ 
BX	M̊$ K:V  pV((cw$G>  9qʁFX9?alEFcO:0ΣFXv=?]Hb:^}'{'08<-J
铯9 ןx2A-F'/Wő㮏p,'"|=(8z\
-VW.wħW+{e{%oqůP{yK%JbM%
S2;a។*4=`sބ+x|Z}  5oZEI#0"*ZWn0~y$xxpMnͶqqyilNF' s7?n2sZ :<Dp>^_]yݐo?Xsÿ.^%ykￜ&Pe.,=Q!r.F9<=[FF}ox.0/z{{m>8qמvO< ʾ[R}2I>n}rc!f U x|g;)"glՁރ.A#hapBW`
 |d1F#8zBkФn|=j=*1`mf Bܟh
g'Gۊ &Nң_hF@cBa&`=fT"yZff6 :`
OZ
{M0EX*?D3jI<&ӟAl*f/y1-~\_[ްz	
yl'U}1ol2aAMh?)8m5Q@[v)V;!}$!
\)X L
LG|QU^kA04-W	f$qmP"0Bo/A 07KPPǐ'`9ŇiMD~6Ut#q@^{n'o6'oإJh)1*wH\-Krr1<`sʣCSև x =%1>9&vD*{7ZӤ0&ؤnЇ@(	93l}n}! &" be,X	Ti_)VPɇ=ѷ`|'p-`(9	hZ/ cZ1WtiĤJyԦ5|W?EzKMD)PȦM6`یlL7Z?NX<?>Z-樢@[ePGV|zj9ڗXUWᮓ-W:=O	DAڔ(E7/(QY۬^_ԧƺ>-?ZTԤ(/((\
8j(R3N]򳟙*]D#Ӿ/k4&/YD^C ِ,%R,"9,VbXKeXIm-,JNiUn+9T)34bBS$Lt?vNWaPN2$ѷ!Sݖ[X0/4qKx>)d@*	K?ˑ5
o6yYr&9P֤c͹&^p//<C.Ȟ1-tv6-8Qa
m=MsqBjFV(ww]k 5*9X@$ﻬCreF%cnJN iW\C`*<:9OҨ)#>гv&?L`j[KPZU['1+T֭y<aķ/U&L)>(Ku%upmIfq*¢	B\HGPdU0DS٤?V2mup\<MZnݟf ~qʒ#C̈́%]?ͽZ2)d' *ob¬AXIamVXpm!OjYW<Rhk5P9h $ͯ.&8pd%3VhfX͚ZJ[exuGɦjZEc9y4FKьdzZoLjPD&ي,U=QoęVərHvH6yir9
J|qäR$KI8O- aj~~>yPY;4P,jbY=u' -Ң9O1bCώ~"Ԓv2*Ph$6,$/u@A+;e色0nmQhS Y`H!!LEs)w䠂6r9k*YPDia2ی߾}8֗qtaɵKm^N|¡ 0"4swW	Kc--O8Z4N*IOWī-џS6@W{g,JcL,D4oJK_E30hl.a:G-WHF&=ɔaך"ov6:Rb@ⲏi.zϼl7eslS^᛭enX4us4ÞU&I(4zPQ}s72U@t͡jMSн-wE8QrU	DX	B~
$?f(Po)$	Ep]vG`8fo\unac;w歶MjͶ^u(s9kZ3TIO8rmor0h{{⬒(r'<ΰ<VWP^y|ýLlzex|Ax8J^;[-z%׌V,w+kՂ@l@b^2ŏV^!)RLʎmg@Y-Вđ0K ]omskESL(R1- z\7)Ubdfaȟm[N$i%L7[lkT4!W'>8$NfVoMR'yRTtoayp>_SX\Lsl02(lWE2g4IJūLgGt7JD͢ (GSgayŭ9Fy\uv3C/QpA#Ct[ ǜVp=0	m+@cQO $¡e?r_^f|J+'Jxu']٦@nm=*D$kLny S_0QW5kv+:`t#f
 0j4H`J?5LLnnd>F;wEG`)c^cΉ"
m6	ݾ&\\)W\Ƽ[$di&B|ȴx^SVX!:Bt\>Mv)b5uq^'W9	<GhY&sߛm'\mcǊÎ^J!2	d/ЗxD4x:K9TlG4CӃt$SGGзO=b:Ŏè[@ #:q͊a8T:I#03S_
}u.ORnW2+$-<kh(d)T$$N*.E&,WTeK]R,C4;tFo6-S6hcp^`6aK!dt.i򥮄&ZS=߾I|?T Mo}Fl8\] {1w7| BN(,wi=`g¬PICgr&GK4斸)q][lH5U7jI³e۹5adSF}R4~~xo8j&PBn0Z8),Op{:-)X!Zr0]ˮP<
ڮrv\$ϳ[X'NR-*/2k?D~\'LVw0l0l,ع3vZg'^<1[w<N+|1Tt-k\ܹ|PP|`.X3Z%S:+0g\5{ö	aًoCҾO<p&^Vt{ l7$g~6B<߹{osݖE/$v&xgtٰL\>	(lL RK$h{mUNzA)Eʦ9hMU+1K6w׆z0(CJ4u鮬w7!Y,4`t !dj9,MKf<LRU>UY&
;(svl	ĞюZ@fhӖt҉bK	o1xk.+[Q\'*0@%?ōTi^QKa)l֗b3VC[%5 'F4p'4Sğ?o,avi#܆@ok]lkh\.2J>_6/'(x~`&h<e؀dcFvtppP;8=2idϷz|k;}e[oݒSlcU7:\m*P|6s}dcjAIlw;WO4]/4ymou؇ch<O.,-Y=0x()9rP=}^!4XIuOc}kJMkn4R9TD#My'DO&́zTUEL,#L/> }J",;H@#tW '~ 	er^?KiPYWUg
6k{/6_gߺU*NCCfvMPΘ2VԎx>p)yG5iB>sЭa'u5*q[@3K狸*r~ Q\<	qCIIdf\ݽjg>^P0r8ŖʹAu(.s1+uv٧4qFӽ `PxeVF~MU9mā[=Ȣc_ٵ+8``A<'X* ֆ0	B^4RN:51(f|lEk˛.͚91^s ػ~_{R{VƁq .YBNHrJA g{ FƸ*ɇLKO'E޸j;θ¥@np\2@r)h!V7F?m~8qxԀ}t3b5RSj)k0^Q>RfA"Ҙ57~gqp
áǵ R~|>hޙRb}ˊ[q/Y;l'ju5l)K384+M!4r	([M͎yg\UqqK{(-J&H#N'aL&jR,`#=ҟh܉;FZbr7/Ҥd20K"khn^mjzjOZhy,mӼ97a_5O.I(ȆGs_(1[G,=&*s(	vIv!>'bsfbH/n?&~YML\WD}2e!:MXYމ+,Q!AsnvjyIy̛9-Ҡe%>Ѻ,3tמ^X5H	 
hŸrpм5	trD%50#3hx!AHpƲxDB	[e3![7{":X,09VD\ʮqp<m=3-3?AYd<igY/&f;J*΍P.4Jd+P k,Y譭֖zWp0P,	/]w\TCY:FA홶O$kW>xzGU/;DJ|4 u}{e1s@\@4\4Q"Km!`h!쨮2[nPcyp1ĉbuhM^4<!+'2*G@89AYߟ{*!&3ThkG_ݤ~ҘQfQ9Sq1iuSv8m<5zpJh3av!_E튺8@Yxq84ԪQ2I7HPj--n{OmIH45~]hR`1ptԗ[MuXEF]i΂&̈JcAEQc"A$MAዣWo"uow?}%>;ʓ*WړܨPO3]Tho>-n-6?97E"ve>.j?HJsE]rZ>eeD+@0AP֨%01yigO	Sf(ã?ǻyj~HUUoci.TN!)8Yˡ߭n3،qW'T7C!yQ_|!N>MWE4x`HKk0|
bUpD8Κ=wt)=V}Z &(rߔW~L`^?f:muBdtm˅@D8B6#@xo!%LQx(9c.Ŧ\`6mK#_Ceg
Jۺ2qzf[RϢ~TZ\S;βxWmo_1p 
r%bKIu(r%mKqݥ];l%mrak噗0Ջ˕V.eփAA&J-BY0er͕ E2-5˻X@JuA|I
bS^r	)Ae	")ϩdƇT)!!YFSM&`
,t ΣVcL,-`˂gW `2PV9zB0[ykL~
C!o9_fyժK09WM1XQ L{(+>	ӵeQ'4Q-DQgJ8^e)4u^d\l)Rh._vRØ6,'(Lyz$Oƒx렷QhL:C8#<wэ,m?~`saOC'*L=AU ϝ1Ɓ٢Nx=q)SFn#2׆`!Lg4tbȾB4L?ap<cОaaD^SޏcA❃wXNLa} B#8vQ	A>gq.ƨjCnt݈3
I(T2|A(gEޣc{|_9[@?:O;e
42Gc'm/P-n4N1jJb0M[0X9&Ԛǔ%Ou3:#Cͅr2]3UG%)eINcNcXrC.C!_,bA*ի+5Lu@i]h0v:(5j9/~顰;dwewY
LJ|IT3J8#xb8N1(6|h!:f
V.p^z`T(Wp39ү(-8:/-B_g_0*=ʠ<f<[CPXi]~EOU,=R	,fZ|HU//?'ba0IBqٿłO޾y4%B1oE7y~~UIQ}t~$??d.;Q}Y*S5d/Կfr
Lm	{X{tNkw)dPU^N.ހi{5K*-?oE_ר=|4Jvβ~X=>CYT89{-ze$EPޒidlw38Mջ>4\=)1Qַ$J|s[k3H^]ChW]AջF8ؔ)8	KF}Y4nJ~{Zʎmo/i)B'&F/f;vuyZ
Aq_?s6@2Lhը.07hKiQo!̐gaƩdL	דQ`uZ-c\x$rqB
OhkSn%X9ScD&FeZ>'ͳ׼=1v7D1VZfOqѰ̹E7vm$Yر[:f;ov# c}Ճ|۽e^Km4pQ~"goL]m$4la"-ʸK30{ȏ}wF_CXpx[msF_1Tɤ'ul]Qd!+<BP
p${g@$HɩԽ\93~F|i!~RfѱXb*XHeNet~|Գ$$ ㅸaVȸ#&ZJ&"NvD@s!R@P"L$!SPդxd<WQUTaXВ$hE"ʳHڼT,T$JQMǤZLDd: 2'DHYb!
,9BvLɄJ߼I>8ɍ0x$3BĆ(-rD$x+p"f$ƫ?Nl}Kפ+
4U$pe{>(c ygF2Uk|uv*XZ	ʘHAams8D+nnR(9p4ٽp.ī:_n}QKu29G#]nw}{?svo\tiz}zW鞻׮#.]tbn;p9`nrca"g|Ub#G+_\/;{~հu׽aźt?:8 CZ?]9<$=I>Ak@e's:;r=hp$] P!D_? ;GN<¯|LXN7}^p|$;f	Yӟp@+8<hSUm k	IFaf~Z/t|Z($`Gx(6d|V#'ա`JS%>c}zp3/k#pu؝˔nWyUK̵$ȧBLܐD<촚+!( ~AA$
Ej$}@*v4<bo=2
Sكԅņ8/>xxat"{7D$\aH́ǂ	I6Q,s2DJ V%C
I?\(LӧCW?yHW?bL3YCd݆`9}K:(S,D2NN T98aJbQfz(ҡ/ˌ#tdF.Xd~R
yz'$u8?Ǯ`vnFa J`|'̴Pρs޽$y	ѻrzm377lJ 0;DSH4g'jҲkGY?@w):Da^_/x=/rHp- ޶Y>u]4?bۭw-m'Ef?2+m%7WGĊϠ"K7S$^Zp6pp|؇m_/zaME8+|$c&G2UVN$2BWvl~6
.CeNrtKA%uh%_HGsH	2ߡ~RRD:,SrU9pJKRnP2ŊV oTZCiCX1;pj{UC\j.D.rfGqNLPI_R J_2[pZϋÍT@]@@uK&%;hh-jJ0zI\rk8,~+FRLkՓCl7#_
Ui0߂㉄5pA-*),ꀼB4|16 2_LERs(;ekƹC@5viح7N൞gu4y |g)P	4WbKCcSPY7b>R|yb\/丼kJ#5}/V?cllp+gVM_jjUJˌM@,g
LX)S7#0]@(܄NZj=FS!G&sJzd:&Y9&|Э(>j2<◄,3!Dږv!~Q5#l":'r5rrRs!wDm<47ɨeM&E	̭]B?2	ZV[f7~񢐁LPښl ۡsa[ܮNs?'(5M{[L~JvQ?h/;r${@|C$	B]q=hDvGm:]JwC#Nxp{w&E`j26: ԣt*΋\T*5,)SOLa.w3)- YE!fR,:Td&Y}$bjef%
B.f;$hݕ!<68w+76/PG6F#,c"m9}Seϓg-LUSv}Z$Y@6FsTVPSd
}vJYUZ$^tY[ِi._,w8
dy豛;d 5lJbYRp#J:o[GsZMtDRXԾf\sM\:a:T!;U(4?wQeL? YR|mՖzYfL\]n+2_?f%EYDm_DikvT{Щ*Ә<I~K|^1ʍ=3lO{B?KYʝKXVY vg _sپLKLВXخ|()R():$=Sz305
;R9\8I$h;{Zq{%[ndYIMz7QֵpMv&OU.G1*`:PUHYK#+wXxkތAzZ[sk2LRrLU=^9	k<	}7_} 
ryYo$2]}} ;YGV1FcZͬ@r|^=u\DRl*[s|khbLyU9*yb9hU8Y"_:5''e3EE"=ڑmmqlîdO-CHem쁴ş[?5TmJSmm6`ԠL<]͒H܅jXVKqd4̶uʇ ?ZӶmw^w>F,]KeM6ގ;߀[xG[@^-|ѣسĶ	[^=dlvM'=U!	w,PN!W</nb4p/'ʸ{bfyhxfo\۽wp].G֬5PŒQȑ>{tst$8yزŚK~WP[3L1!7XC¶ᖁŐZ 2DU:ˏ(ݙ|GԜ		~إrE'͢4:8aYջHZb8_=mg!
<ɼ@x~M%l)qaNX,gc;zA蕇$[h9uJU%ډ𤋮Rju:OWfx5}QQ$6c[l~sfup_@SɼTrgD
_thy=̡2𫂧@*49Y0ס^ 	{t\OYZ]U]skY$a=Tȅz6piOw;'!qR#5?6$4bus4~=)\uwQɗVo7x=ɡ̷SJԢG
'D Ԣ\Md^/ԿzZqf'Jp]J/?{s7_ye`qw鈁1[G0
OfnKzxJD}I!/!5ZC?P@jbF[" yU"	2|	U?[K1!^#xWj.>fV\N`>GQ@Ul\ZPrfB]T*cpOU׿*9-wYCRC`crͪ)x9M
VЪ>;~YN;z.SXVڿon~k$`[4H8*
C3_#O`I"_|ʆe6,fbuyKwfo?2XCSfABiBNxl6uH>2qzPhXpƼV7Zb?
jSvMuP-
гxXkJί
yd2I$xo I6,c7mޛ60HՕvܮ:SP_oUX/y+ ;{db)92ʬPɼ,{P$QD*
+!H.*A%ق
K 2.6ڇ eH
TԁОJ6 $mb)˂L0´	4iJj;3n#֠?o]$_%y-ЁT4ew>j6VeL[,nHHW\V$ҧ.W2M-[o`."C&x]yÛmv*_c.`/8Ş(`?Rin-Mμ+ӵȞԝ\k@msAW7\x	t49#Lmg`iZCM\ӑmav)TG#{l{&ff[3rC>tf{&MM׳#ӥ;,81 c;g.Ycz0`΄K<lhFڠy0{ٟL?Уd4xj?tdU]dcM96-8%k^(Oţp]:?,ze,Lמqr .&UqnD`3k2G|z^3zJoޭ"J#e;Hn%j$W[ρdG{Vk;qEGc.,j[$+hBs7Р7AxA`˷."B殪h&5Z1uP_wrE.QB)k8jBxwUfM7J[f@QՃ4D2r?tILgv^f*D+n:]7H߳V
D֞Z\Vv(Jy*M2KGȸxx=ռAպ@a3.v!
!0S(e,s{lޑ}h7ko{lp\bcf?U)
޼4&#]׉u:׭k.E\P9@" X(I#DY(XYruT0N6%NnDkwOI׷>YmS<سZG̐h]\ٛ/^T)jWpt'9<;]emc0IM?ʄ BiTRAHaד2-BtS}4у'Um'DWGO4]oPk!ܴr%כӣ%4s-ZdZA+Q0ܱH$XoĬyT?h1aQi~_oNQ[eea?Ysd_ci2ש➣IRzRu6~=RwaWΩ"PDW;Հ`GHs}_pOYOJq5n?ld7~_zz}%qniywrWtfLOgfK߻{-[&d\5mʂ.BN0e_+<z\ʔ*q*kU}TRve7ܘև]M2ȗvW%Ϣ'e&Wy&
n^&icTPtZ~"NR2#n&plfۨj9R£!6}_YQ3zLc}>2gr!p7
f	8@qyEV"zHTT<>^U.oX0Вݺ~_>szATa[%C]!JZĶ	~%2]iW >Dd>tNҫ_ܮÛ\FՋl{-:۷68e mMN[uz'մ@:-"9T`tDPSb,a52P:WT.JM@kE5}9OĞu1IܬxYYs8~ׯ'U.++۔֖c1+FSSIH4 ([i\<t$Tjk`_ &eq']芋mx~b<xERS&a1m?=e
F2y_3yx5bO4+W($7f͢fq%	KU*fhms$7!qx;M**ak+.>s`Boߢ1/dȊ5hDz{K˔-N疃9/ʒ|MˑR$Y +SJl@"Ngw%p.PjZ_k.݀7I<S9v@'M
It:+, GtCc-iudAI?!?9 dYVsǁ{(>x?$D}I\CfB*HIiW:w XtX_VdIq?rz"`(cq HT9A*cW!+2katZuvE
rO;\\0M.">;Xq'Ԉ?=J`.U̧,7zY^`7P%P"wnv=l0> SnoRއp4Ç~q:.R	'!̫%zHRMKZV@ET4&8R֥&FJ)(|ֹrf'eEf:gCXx)*lH((j48Tٵ/α:}Zk"Gh0G43U3aA DՐ@\/9ҺkAj<j0X!  L:tRnpH[<ZRVE-XpD>OK:3d/'uFmҺP?&0u(y[^Pu.>S(%5r*Y\vOCC/k.djeZTnOk՚vw9KGEN5L)IlMYb(3"eꔕcz2TF
ptiըccwBIg+HVM[k*$y!*@ 6&{3RtC*>\}NmKeDȈTaknٲjqgy٭}_fwNvH{= y+_0:h c͗ˠRaө8xNF6ăNgaOg7Y;ᅱf/,Pg<y^xwПm\j[Iσt+8K~ҴKm09:3+P<,%&_Ye	W]}0L `!WOVog<ͯ)PjXc!wLWgmL1YAV"ºpevB@䘞$_)IWfy2G<?n[qbKi+f3vȧ
to8iW^h|5 Gw@USE٨7
Hf]ާ7;]` [+GOcPMS\嘎xx<FahV:~yWF2<CW Ҋ`;9;Qy 6G@2b$
-e
$3/>tx45F?E>OT,@ǵdtӭLvv%iq4Gp8O崭&50r{l6ؽ&B{̄cO4^jx '
Tb~QoL5HD]! gO)O<(q$AĠX7M/m8#\iVcl(LͶuk;N{^'J֘.W]9T<٦5ӼP.G_AHqs{妒G~txwtLTlt%2̽vD>`43njh]*z+8SmB1ݵֳ_g^-8s*Zm]W7YV袥~s
[E~".#x=:'yf_:+9vV:}ֳM-3<;Z/2`դK/U\xV[o8~WMV(m`v*<clvhQﱝ	͠v6/Is%9L1(ݍ'p:b8M?	sGA@]yYLf?gpz
-r(׉)D(PJT䖋ɮ;mlYNw7GL֘YL]£Q_bcf$w6lKVAB(K$j wgs`AeރVD2@3q92xa/Oyxkf!Uh(QIz(A^M	$bJU0 Ӡq^M)*U	Ib+n,-]PjP/S-'noL$YV\sV_5#7Q4<6+|$v`q*2
cI6kp1	d2R>wMZ,1}3Vli/_R0#Gedf"bX1q`'IAs'a9;W ;ſм/>R/Q"!&VkLHNCu߉ OF~rtd;Lڝ]BK٘L(qD6KIЂ=K}QE2mARu:lhsQD҇5}v[UWi*~W^Z*i &rǵMjĚ]M\6tc]UӬcӞp%096|pDkH5kek{P2U
Pvꋑog2)<__Z6]z7ݕnh=[෫	j3RH=mZukox\>ܨ=!Uи޷GćπA|uQYz>DCKeUK/Y)xku^Aso8R)?:Ș0XhPxCRCo/~2?rw+5`xWmo8_[Κ8/4ÊhGCD[2d9Yo?Ji|q,C!%Lx8&#qh9g,"VFԟQ:>NG>~$-ZqE~Csq82@-:;
4
ȭzNA YvN~*!gJ92Ybcmaz}=kV]!"A77!~@3u,qkj2;7*c-=``ؿG}wNʼ8~֬vu|/c㕚cCMMI,XrG׹q
B*aD5nP!ْ!|%<cg//h]L]H+Bm!$<Ŗ)\-+8KV@"4f"2&
\#+tg"rYި1Q
YTCdiB"=+0;hsLbGZ\WֆݎV~
m9GcR- agJsI5ľ 0"!78q F%L1DR.e ~`r{=s"Gk
R\깁K\Phk3T?2TJ+?yL3@ZU!S!I_
E,XRĭ^5}Rϗ+?}'
DFßLaUi'd%t\Frbdb8Bik7L
 C&őG%LMCKVCHf܅jM  _88lv1aWeaK^c7u{̢OJ[a7
ȠV~ZC+gl>>m|cuĻӱ+Pԏei*/,oby(զS96|'?F#1wUGZ/ypfld[ț/*!r"X4~~8	bk&kkN*cLhef7Jo&ŨEWV.(ǩIGsq^U{M9u84ue3њ2"Omu{ >QxTao0_qRk},]%J0	1rHȾdcS&Z{~6S0b̿=Lx'_ET6d6_Mr pZMp+e.B"h;
VPzMBgY4?@6LRy	 )$[.#8nl#XV;	!d*ѢL[	COJcB5Z R,s fM.)*:Sp>VYjD	Q,++FK3|EO(kҶFxCد-93IK%btaǜIPiQ9TupIrYl~aOBLE%~=sEp8|'z9w+~yLvALr4_[ղ'#Ag|\;$.dD8Ƌ&ǿE|D7=1Nj~jdAذ= ͺھx}rH=SnvD67dYvז<ܞ=ɒ6	p P}}} H7}sğb2[NE]SE]gWyq5yw$n^}7UlYyYݥMM>*|ONʢ.rU䅨#/U9uӭeLޞށ[i*G;fr}6)B7yoosZ05e?(|&z.g[gN谞dl<dt&	\&/سl6D2\qཚlƟ|T~_3&Alod8ϮJL[TtF--EEgYK=˭"&*	yVFI%u3ۻeԾ|_@?:A+w~|JJ4˪H}zW4ۓ[[4em	&u[VpmY0_n`l{.WNſXԍ31xH=o|Ae9sA"TdL܏ŪI@)fTK!'aiObO3*os;c3[o^r7O}:=IHyJpH{D'FTK3QQ=Td) $y,)L?$y-k1M2ilsr]
66ѧ<QK"zO"&*uf:6\\y]qz%`_& o>ܚ̲N8ɼ3q,Xg$=P#[b`$Q$@=9,n,h&%cq;T$ MiOb( ~sUU=gfikItt S։щFB>UJ{{J??	I @jGSPzP$y1CjƳ1Rz'9e^4?=N$>e{gvi_cRpI(/>Ӂa{}NrZ|ȧwGWOhi'<}Y&z	JݬFĉ$h|=e Ϳ:\2.ǟ>M3'6G+De:*ϝ'(+f+(y#!䌬\dx굱⊁D #1\i?z0ݑ~ECjP᩹McxH`fYD;1, Zj09fS#[49-A?DV,@'-@Q	M:Z't_ŌSy@#GEI@BrLdOFi˼k%;'9 AdeԤvuƅ 摌E DKAeڦ*HIPwG/DM_;%'?On<I>0 n+q9N4^8;{ASeg#hvI禌\0$'G2'7f:B\Ԥ^"T	a~t?g[Z%ugAn=&m];ŲN҃ŗ7*O=e{c яʮ+'h.tt&JjNy*ipԋPZkyCOvLL'~qK=:上_Ps'=hɬ8n Zljl)-a5!ߤ7mi jlៗ{Cm{c;~8jwfVu\oqmI=gR)Al:<D,/֥_i?%
,|88[fƝa=?vvHʉxҩe^l#e:1lNZ-akW1%M~>L֎sy櫟4cΣ ܑfi_ɣ1oup<L0t#
ߊJ:r@c]4qsV/z"=9>Lazv~ztgma1mN!Wק?-n)6;r_`ǋ7'b.\y?Jm]}H$
(B'<
(L/hnYuU"*h-ba#/)rʪh|Q:vv喚`uk!SsBrj^@;7+&ª$iIt VBLθ4@5)hm?CFq,,e.aPz8ĨQ IgƸb٨@ ;	\VIy[ cO:Dq*@q2<Y+~萢7zjf뫴7QD7σv:OFh_7<&S%wjTV@;%+Hפ]ތ_w&zr`[1ܥ;|YJ.P~(Mr/Qx$i+B<
k>@4Hȭ^uA1 J(iFgEg4a\[23uswtW&w<MFU>հQ5I=ciHC$ >4fn/Krv.XH|%#:̼(GCI'O.s<)qiLTV>^6*h
N ѼB?;9a]ݮ.眓wls{#9bBE$ZзQ7P/+bXFYYaK4Z.;2@y^;-qkĥ@SYh.RT+dohHBb̡T&r6a =L)J%(>RC0tsduIP/sf(]6@HN+'66yl̑[\a+s5l:%||HF佝-y0LF3E_=o8*cB֦YxK3Ĵ	nNё8}7/	s˃DJ͟HiMl7U*}[$7.?CpB>1*'g%N/`<S4O^4sOMeDh0`$/$'C`S,_*H;~<^Yy\8/'yzt<<M_nyFt!2] aG8u\mAvh-0Qr@m#l6ri,].[
->(=Vca@LDr`҉h24g T|zyX"C͚1z&V;[-rYZUXoK.UJhfwdA-t?V+54^0~)͝NL{6!c6WDOSdLQ=]5ѐܽc;'1zwDə RhEWys'{MԔ~zOOy]/??~?'6Mj-C(K}]HapdƒTzŷ?GwcftQin~ӢeKd4R}Kv\`6X 7-Wy|ZCz"䖜le1!3`A`i[lC(aY@v#)Gc 1iEud2-1|ˉƮ5IԊQ  X>Nnhdh} Tg!!%1lY]Ԓ؍9%NJXaJCA /X0bw*.̡# 6\bcj.yO0ʄKe{ 6e_%͐l&of<t٨21/(yV0"1^ W%m;~\Z'b#
>xJ>_@CS7Qr6);/B-l̈:z]	`np)T/*/lj1v,_E}6se|R<C)UN5ĜY0ElxTJ}&Ycu<Uh	߃LsM$xj+)ZMLSұ Fw|m6n.ɚ|"EU<qOS-/șXC҅%Hc]No<-}:7Ng6Dr;n[눗H
N6sX6o'gggѕ^GF%k7t=㪳._.kȻNDZ[tnb9A{'Oy n-׸Ju@'[8tFLŔ e,x2Gl)S7FdyW|tLb;+c[K9OYSd9=/EEWOՅÍt$b	8e/'{|r{C2qm1bw{}
xAЄ LMyZwM~CuXGOy.+<LTi~]WkQM{Vo{tcG;-]ۡ82f;P ރW70E'H{$]F
-E^Ȋ腛Y¹P)O	ϧw-/&"B],% G_j)<eTd0IAuԌzYl[3d)Ũءf/hz=Ha̿F5x[@1_]ue4oEࡦ$&〲wD8jbMeyy$";
"[tF@t0mZuՔ} NaLȴ%M!{x*Ip'b?jp%X1ޗ>+gLp딓ԎKv/= g H,zQROINdyJahUOfVKX\cjJ!vb+YJpzR늖uUO6msThң2"Sw/6"6lj#.wP{{oOO~;zkcX[u */*)$qK91*IMϒ{h ӃEA_nkDRud<OE!f0Ё4DurqR>cӥ:N
CBDAtMWefR.:F
-@{D>NE
JJ4Sխ|yB1%cA 6.YM5KN'Tlra,}@+>"/Ė0+1~Yx7k؞pquE#*;):,ɣ+^4׹0r0lC 냑v/w4HC%G^ߖ1K%<^2KKf`Qɬll-7_@gש+^X_ʰ2:8$OMDF3q& Le	gFXa18VI^*U'g `bU
04!s$I}^twGL7O 8GFl#kxe^]A;x˪vMPF); P54?o?c\Sd~:
@Ƅ2X\TeSb^rYs8͢^>C*Fı-U)6YTQG767wpr|v~<=Zku;@z?[F~4>'Ja`  .Xlt{po{1PLʀʯdPpFhz(w]+D$)jwv s\9d2EsgVp6r*%u[NcYNZ+g-$)xb0lp2b?s\PEG(/bLh[JS=CȲ 03%a͹:/A?CQ*tK ̯ayf(XFyJ'k5	h>%0ud/
CeB T"@YtW㲐ܒrV19ůe$:ߘcLMJT4L+-Pǂ%a/ӵ6ȼXJ+qkmݘ&~MZ,zPg{,А{{Z%L]|-lЅm^!CN5=FIu`<JVb2K,&bN2wXq<HzhOx+gQߵydi
YpPkEHU[bZ{),RR4k'V.6̎V#Fdi̪eQx!].7;8{`U9Ҡh+(W5I5곜&Qoݚ;If$Qaޏ=rI
rD25I)Z,q(R"(Hucg~aQ:kcIĕ`ҵ8`$VuGཨ2)& N=Iz[)E_݁b B-$0ʴacZҥsؐE%e,p_~~<GF5`bԴITt'nsgAa&XRU	٨c̻lV 	݉rLA#4Wטe^!UV_kɯkb\e6gyV~-8=v&ߌl`5u{W=QZpEv7+IFw=yQ9J5A--EVYZۣ7vkTN(C
7>O~궧jKgU$b)o`l	'8oEπ`|Mb	<W%iY5z p"9Yd?2G|zb/u	vVuZQDi mVJf}TZd
* Kp;ȉI.@CǏA	[מ*b.heka/w׵jƖۿ;;|E,ܩիrd,&Kb[KELl[<)6jvqBCe#/YDMo̙dg	`]r޵9vzmڙbׇgrsbѬ[CċP~BjN=;LD]JF+,؄NխVϔگG.Ii,k#SѿFʱߖ޷.79j̺#wUi-JwY~тykū1pfBRY6x_Ɇ[rl𺞜\`}2yCIϸvWrS Yy0{}P_7߈nZ[]D#^lK̘<e-Ց~D9˒h1C`Io..8\̭wt:J
2rϷϽW:Wm21HN' X f?J?%p\#x殕6,R`ISK<9^XQ6gx_{@ڿlKG1ܛtXniNi~V
=E&%EyuypwZ_c&683\}RkITuy@;:93[9P)z%ENOW %s\'օWrrI=R@ԫaSw~WU6OWj!`z9M~.Zz:2
<kghrT)KQ>_qCUPeVs!rY5Lgivrd3ӊmm:	sԠZ/D hasK	ƻXdyeNar&o6_
0U_cHliں[a_"z\E~%?MЖ(>YG1_1%xt-[N`t$
aAWgJͅ5˫kW@Y0/4\Xn{N?<~R+2/(_t瘩FE&
3 @iH=FP0epѨı۪QQs%2w7[=t̷OFfC߸HL`7̵\%\s-PIu^m#GOL #I̼WEq#3Hi
3F\ɜß1FRWVczGwK:1zrRQ1P L/UջcTy,1D݂u!&Vx+Qw}),a[˟(8.yv\\r1VY6*^Sk\cHsL ]:>'J
]편[g'QMR-684=GHUazՇcQza3L{[0z?vڛѝLr~xe9xs%rbk)9đA:NONwo{;]IBK|jC6Pۅo(u$ޚnnM͗޲/c)9EVtaZF(/ymvDx5V6u	J|W|GL
l۹Klv!K`1QIɇ*K$'R/UwP9Iyk9oq^	Ss
Pr:x^pjL;ߵo0X@!$_wꯇ{#=뀧Ozi\~楝GVN}T܀:5M5r]'~üUOƿ^Fhٌ4cԌw7eQ+,`K1X>apTD;7;3 Lsg[^,edn׀UNUշ|`VB^əgK+{,rPyIe&Of޲*,]bxbgneEꫀ#s/Owtry0 |Sq9( qr(랸α SrlFsP.N93oz*[ ϹY[
Z9^:z=>w'(%]s^{zƓ߭!drIe{,3Kl|%SI'nn|WښxGUrhbB7#q]9
6Ʌޅ/ IzoeSlttY-?ũrsiZ&墏E~혱yU$rPE@T@$[IEu}|-,mb+ƀu'<ǃ\ ׿+:H.p\`b\X%?fZ*ȒiLW.(t1٩E.(
@o;hWk-'5q5`ֲm,iIƴPG)~^Zҿlug6NdV]4E&:)PI{qXɗB2E3]Z"Mhqނ
7/G7/_u2^7ÕƲ-ݔGQN/,9кi~LB@,ł8嵻xFSE\G5?Ӣ559ƀ8~0ꓼL>g̪kǑz4Cx^C$TE?&g*YV["dAnk|, ?+n?"oܺV"_7z]J[$ϮZXKTL-ͬU	 F miЄX?lNd֬YjޖQEn_qFzᘇEԑW.)Ʈ6U9˯1Ě~HJ.xrZz8Vq2TcbU0,Oh<[SJޗ)25.x͍?ET|G"1v_krLIՍ<,b*+W'lAb>ISہ
5W}g=ˮ-1tjTXUC9c-)FF]2.<]Ryz1ӾeXUw|-nV1+!o@
RGl|4KxK"^m(zk
Kld,ljHQl>Pŝ)!0S0a9噶$u|X
/:<ҁ=OzRG@Dlg{qJߑ&CW
ty G0>c&~]}HFnVsQob;M(g3@_ZYCu|WZmGQj%謽*3 1惻0a}%gZF`n)BrhL`FO)eF09HyLXD8I==˻+"6,D3l 9G3襤F`G2/h8XoX#f^Eq g! ,Țƙ5#,?%]=>*toeND*nɍ\#lsl|bC,*2/z=ͪPuߛ{$j/87'67iw[a9v,/wK>Эٗj[	T\icyG*jm7ٌrMKn)![0m|S	ʅTZ RwBғ"A&!kB#=szmߚWT&.{8yc+~5'ML\*l͇?ɧˮ2aD%oDeq7/`jQJ-}u:x_:>yq9y1GxuϨp곷'9bGxZs۸~_IfRɧȝig;3Z77D.H)jww %۲Q$`|oe'"e<O&'/>FH⁧{oe숤GNn󛫓I{Ƕ8ވ|9	~U"EUoߏ3i^<?*4g6{Eh磽r]<gbRU
}R<̳J<706OF$TLB#sd>dU\VZ0235M8L62G9A,(UB!+Y&c8B(91-n;*mk%E0 ak}jɆV{6U*l`NDqæ`#7ן-\%U%VB~)jN$9Qyf[FdY+fҴo	:Z Eݒ^9[#R^°L~C)9tP4Y"YZiR N\XmZT)̪*ç^* NKtLt&0
'Y&hKˊgGn5iKoUz{s,,4b*~)ǡ~`> sZۏӲDC9cUp]pTvJvAQ第)BPV\h!W(<Q2s'H<F{0Ԭ˓U7@
vaT7e
m%O;)Pn6a5M>-G{Xpdl}9밍;c)+Yq-
ք|) 6jgs/`yK7A,r=-OPx񲃋~dě]%p:Yn*.dGpmz}HOGȇ|yϟ aM3Q`#cEU-*+iQR,A =&xo nUrXkٺL8yN3A$"-Dio>/ >,~+9Y=1x>k'}
n]qQo5Z`A5>ČaHy	zg{`p ` Bem2>3dQ!A" `	BJ
i:4_`:Euo[,(-\ROB 6!=m-2׹̋y6C~},9Dt٭2<.0'z}ip9gX	`HNkVsJ"Y8)dOVV2a'I!Gp?BU&`?z~X0B&g,Xtx"-AO=Q=J "Ν#l=īS&/Q;؞E!aw,pJjCTCS0d&B tbsP.V 1.Yq1*eLU%Uz6Cr\ߋ2v4\s?n|t	EesA5z2&)}G&U1_ⴇDy\"OU_{?^Z8dm4>_=p]= Z.!Ʊ 3<rQͪvBz8" Np{ t9e۝"ZR--q 2ǖoПnf ;rD,X󔒊UP ?:)e$^p#;y2
I!vIu?|߷0JX~Y|ïA<Y<=wb6Qc5m%(?tUBHᦞȖ22pzu@%æpljy+6C`q}8m@,+mBTHe]M:A}%̰]iO);ADts",g|>ǹ\
Cj=aP8x7$TPs+h&ٖk-ZƖ\3
#2HPVwPG@I`scs8J/La1aPQ@8C$Y$#V^[Zlh:X(Ykő,C]źR=m01Sg ,ݖF5kS&F.z)PFeiJ)I+żǸ.j̨9aaLzD @YEm7V׶{Rʈ#NG0`7߂)쒭O+Jtko,Ȇ	_Ne:YpirW  d$$uNؒӼub&1ntA	`+jʲpͧw0ʃ`oWbtZ\'_.uzP9~fv',l/W`
B݆BKfj9? l3t*$UC.Yubꊴ p˛.]\ltdrA-c!QpnN9wH$> /$-,]o<]p<!/@41w[KpYܶk_vX1XM~ L`ԛJUj\HBϷL ,^)N3`'!~{RHC4voޕ֎ٔ%^/TZ!gWK	fp"7t?U.X^(FG6zn]u&Jϛ{usKAn{LgƨXKUcˣ 9>VB;f5Ti|cFtj$%(vjۨ^3P߉w#R_&,բ<_d s`@mKb%_Eϴfw?ݎ/;R͌uzyq9̗|kYM9qKyQ~'1
\ '9nw㱽Lt]~vwVXpws8Kac;)2}~8!(JC/ xޕ[qW?]^vfF'E}<׽Ww1~Q޶=ҺSsj]\6eܣV{,vRxP̉ՑL-4D\;8ɫ4u<JH%Ah??fjӈJ|by!g7*2[[}߄qkW9ԷRbO.l]qWCx I(7F;rH׸t M	+39_Yݪ<	ښAr"~#; )tmߙD	/EF.Pz]g
kMH@$Wxu^=i[PE5rӰ u%R1ntIAi׷$Ym߇kz;FzV:N8O|aިQΆmg#:8w+ a"X[NZ\7~bי^|(`JxV{oFߟbD;;u"u*/NӜNukY4U{gܥgΞ4%K	>[OZdIʔ(lVEOo4(hzn	PRFʶ헿_APfss8o$ꉈBvYK,
+ӓ۟zb>n4BkS"AiYfr1%4]LV}ñ$VHmX$ADU^/iAH9$gS]!x)$Mɡ#h 4 #<eN ߁+'	MGАv>53Zbgv7UBP$+°MBnFNn\
 TJ[vs;w/+}&$UR	&|>22 @]eeP*g{n0|UhP7|!|o4AuhMׄǢ*aI;HQm.!o;]WMtݢ!}(rd,fCO`ݛ3m{f*/^T]{N]$ܽByge2`@gCqrF (푅k8ob鸶5ڽP-5|пν+alNV2PVG!DK!!=g̱V&APΉ#oG-\btޓ<q#~l]氂,Vtk/Hr/诺̮㝇҄RBu罢!o#P*ad[2Pщn(QOɚor^<#<ӗg'!VS&[E-yFNG"u{?D>`Wn1-s?:@򔱆bNZDOCA3msl)IY$Ʈ#'!C'Ч
B%Nn[cv(#8x+ӎM<hmM14A³㈢8eR)j-\fMFwϔ^OӚ~
4XoZki`؟imyeFgouVjI7o ⒖c	69bJk?xWmo0_aTuR:)k#"ҤIfd;/9/HZƔ)q|dsko8q;gjSۻ&JjdsV"}S?:=pT7"qҒŷݛB6 aY@i Ĉȫeu:-%SH@?f<$T$,`F (F_žLҨEe
?G4$3IQ8x($	`LhM_"i,^nc#f;	Nk rbP[Dk9z?G34YrL!\Dƛ	_8kٗʔJPzÙm5u=	97Tou7w=yOGghB)\(ͷ^bq9x4~ԣ KYCYkXջ)~p,0'ei-|pN\њ۶&<cVR48ButEm+6N 6:WǨ{PұHʗ#jabr!D2(3pޡs2Kӌr&!@g[XH
yѭ6jc!JFq2VL$,e$If]4`f^7%4תсACF2 /W-TzeǘverJ.lVƣ |fCNP`Y-Ys\,c	Q ؔ|l/ZQze= e%aXň㤠^Q{:2xYo6~_qh Rwvb tXaM%:f+KD91oߑ%,-)֗J;/]1Y?;C1Mc;kH,}[-_os4JʘdyK\n6s`tZl˹\u?ya^nI#igcdKB#|yHY1(	n4faNUB>}.y؂eʽKʂ	r4)泊BP:YܓY<ah'QDك]Jh4\Q!, lbi<Y4(VZH?+2Ko0Iَ!/uẒZD9|IQfir@M,^O?,yEXJlC~br/,| a!;!'k4"5_H!؃Ū~qlDl"ʀT!4{`Ur
>2W.AE?ovMɃ0Tؾ^#tT>6]6y&de¹bQkJ|1DaqEt3@A_xJKlN[l+3WH+,r[9VPr̼c3F~{F4zu45x[kTrЖߍ5r+inc2jjFngt_|UxmSh2xE/:
R.y;N\Q*|ŦCTUUn*tUsG\s7CNq3tjLAci=rP+c#bEU*N;#cq.&>a2 Iq(kF1V9SkɬWuqkMqB(ky`xT#)-c)4Ѡ	ʀunBiN@@85d3"U]Hg+:]mHc(da!K_Q ǰpUq?V}uQCYŘ?M) CG=C}Ӯgcǈvo>-n~i_<ы[Up]&@y?хmjh|GvCtt|;5ZK:+P~e5^L[mnFDaFD]@դjIxinMmPNvT$<Fޣ]77oiٲ{ڸL9ڿz{XZ,F>?DxZS_!)]ƤS$txCo:ә+cJZ7/Ĥ̀z~.,Oi	XP,4Xw)10#MAsuJfvr=N0V:3:{*Ҍ9c\$KQ *LՆ̨	ͪrVFFXRi(>3r:YR_wvVVKISPǅ6T$,^[ڤG)>~b ~m00!g:NU¢:֊4/T#ɕ {aHl-#FG 6$P%m劻c.vc38Nqw r4Ly/ȋX!͘fBbLg`8BڞaQ92Zu9dNwnQvxŉ/]?cqY'@[D];D47ҙi<y`K'&6r@@:˒HGCf"BZ`$JGtJNεq>fY7X9i7m&`^yn"މ6F5ᣫfj΢ =9B$qhsir撧kſpw7~
VqR]c^lMXgDk6$T#+gKQz,u?gbc4 3d1}k?KKJ Q˙Nc6%8! C{ BV͘=)⠅"e% =fou!MūfW7zfOkXkSY?_חǷW7]noX;9F7#@@!TjbLS>2a:1 %vHŞΨY3=O 'L]d´+,sft22
gE z	j3~JarA5G>SYw?$ps0 жFT r̳%NUFYRWOT@aTVHBH
\t݌{3Px*Z
b&GM޽#^wȑ\[z*C<je|
_32NBRDBB/9(
5b:pn,>>+VF'Hȯ~Xȧn/j:nUF4tJOpI*'\UEQnJϨ۸S aEo+sCu
6rP\?D"Yv(Ū;5".]pMB&T-15U4'$[mDe3U-ge6ؽa*=QW묱[G<3@J|yWzk}ԽT)*_/>A?>oo.?[=ΤRrw7~OoI/ħRS%X]JώEaPsRPbȓۋA?oCHz3΁ h6P0QaHe@ #c(`vEv(ե-UiWdp.Z銼OInd$RqnsϟϓgP\	Ct Y=/be7ckc+486
Cla4MåHSP7EVxzcmFFG-	hfZK=%տZ3L%T{=ة(%{Ϋcf
q޳W_`H@DE1a32O
/8*xWnܸ۱;3~Bp ;zhhVY]k+v׶8wˋ_Eō"g1%pH1iG=42?>~@|UH7&BʥR|	T<qY -3PňFBZcOW0xiϏBw[V띕UU:G+ǽrMIp,҈ˀ;OkFBDZlޫ\]|C0*._;m̱X\~ڠ`DfTlH:U:urt:sݏ~ "UHzgJ&2Rp  "`Ka]p#jL3Hx,H
,9xdJbI2u%x#鋤˱FD%U[UcB+$\Bń'dBft~\]'TƟGw\gA(&|FQ?
wCXƨQE
慏s :R'wk0[veH?3D\ JI[ӇBuxi;Su;f󸵙d1@f>S%/٫el؀H}z>6w~CbCݘ>a¨BĆ !6*ú];[Z%D Ef-ROx^\_@*6Pfb@2=,Sumcxk'5j.iYFg!`PA4ZH;jQ<%ԧx?~>%cco\ڧ"0M c`㳀!2`1Ҫs)H)fsNW^FBh-8$0@aXJFa,_ҎA.+WA܌xGvkܵ!G#Űei{?W,B/7Mѱ̮;tr ɠQ[g",xx3g1x+3\ h_ǃxpwy5(;5_J ~fo[mFba	 \ j蓂|!w#gp]aJ[Xα
ñೞX]`psϠG2sbB/VހY˺'o΂;<ǃxWn8}WSS\q.JStT&Ur-{Hʱ|KK̙@NU*4'A2:=Ho._I d+9ȕ]2nGW65*9bMY?­}:#CҩHٻBII].>}扙A`u4ϮT65R[Tvxh.q\؜qA>@rWuZd(,BQ8k^NɺCzNKC>}g"7O-t
#dS[TbG!ܙŇ^o̍]_s	K%sD͖1R}Du'I*<CO3g^|LXD280hRA8Rx<z
0/Rxtm"3e:9)t(r@%BB15* *oK:KI\&X9sKABq)N&,]qxQ^L2{(65T 4ۀ^*8)$2۔#{oTV29&]0Wڎoh]dUm!}nhF_?	cE&%3{hݼP	-R-SJ?fAـʇ 
%ed⁥P;g4x٪4|LC|fSLo+YQpwaŃ:|</:8U (ZKU;liSbAC,0U@*LtA3wU6J:2{JSـϺΰIDbďBbSb˛.FƊ//7K,AN-[\Fh@aB9zLkWSV``:I߿J7r>5+'b//₉Wm{7ώ̢S,\aa`,SKtaDq[뙄1ڴ;aɘ0' `Y!y|,}
"?WiUVͽLXiU gV5ǲb=m)sKq˷;7?[Ѽrk(QoxA3-O=DVe咸jS?q$=xo&Jg`p6rpyBGkۼDS{΍m2_'%+zxTxYmo6_@*puCA%a#I9q_$M3@ϽyEhf1FbPf,R`h6WA3,aDV	Bh1*<*ϻ7yF#Ii:	MX O9E4<tБ6:%9:99r	5vįIIF˹cZrx,|D7oxt6%-F#yF31byhIiezzǀ샀-<!q-<6_gl6a^G<a< x{*kq@ j!yƱ_Q|ظ.7uZQ pz+h6	kӻGXfiGϛ0f&v.m;?'9,>uC
Ce<5[tv[	TCD6ejoA B
]F@Qd0>%(_k\FbwvP)!2[O߀ű&`Y0B0o=2N5tN:hnSDNq]GWppFg}4dqϾV:I;d=;ײh	E*A3P`Tc%J8`G Y\@R&	83#37P8WV,cd/ɝI=]8"<UmAoH4ZFhhب-BNtW{dWrQY>OETUhzyXՊ5Em>d;@s@iv^4o%PoD86u-Ep|*vnw6l6')?yNYSDJ}.t/CV{l4Xܯ-AͿ
U/*5y^ w31ŎٷXSQ[ M7!+(4m^/w߫ؼNpx|	UeÏ2l=J55C3ɖ"uu{nwX"
fUep&:tW({3MU-*"ﵭ@՗')VG8.n=F/qYlH9DW-=5Vp.GfB99ԙIX;㼰 {kJM;e=1b4]ZmuSl%x4F0	سOX)e!aW]k`.wil.U-q3L8>&$Rad`s+L"c@*֯+R1	Y%鵑+Wz%Gw5wEh$߆RaM5T4BݧI|i	`dPM1fBhhem\$'e_K n)	#΄V8(
0ZCmmH+̾Kq	aS(j֪֟ZP)u5zf}&[@[0%z9K34.c뿸ŐFn[te|ghN`n6fyZ=3qswWwo\sMX<{	žMy1-_K4T䶳u*6/rujJi_7:T@N88\+7s4GbֿB)\n.Ao4?U?հ{a
cΠGJ0NŽxVQ1~WL.TDTg|ܔvvvQ4w",^⾰73יaOd00ףa~yf<̇m!o։, yvtϮQv=dNOy j*Df^0_Q),Z-ѕ#9C%j[ͣvf(X03@BYD^F E',LIm8OV+#)۫p^9g;4aLU؃JW_F{C@J+WgvK\AU{itUe_YRa/E$s99/IdfR{=YK2A92T>7Tc:h?\=x&+]8.3_W%\3	b3y$IKWG9&wzB<$ΛGw
.Na`4=vIAَGQְh":3D(_\aMRW3Jvt::Bb?Ɗ	J}Y0ED7:r,{@5ύ`F#rDOe1~7҅Y;la866fAFmU}Rҁ)bxz7p%?NA1-6W67Soa6vӳNz	WXPvy;wW?K=r[]\TL*vsq=usܫ87nI3rڊ.-q_'[@ *xW]o}ׯ2r9 -1[HjXS\aao]ʢ\;A;3g>j_ճGaI)"UHUmtai&lRT6Uz{-j#ZJRk7BK3n`VFuYߓ`A Qk$1Qy) I[D(\lhF3몐JQ{CZ6H&gJy/	4r[~֧a}T8Z(SvUU6aqy繬	](M*)MaG;.a0W1i)\뽮XZB|27|hJ=qʢԚQbCvpSvff#JC䢓H(я7O
S%$POhf<#h$~}F?fI'ͦa0O0L0⌦]7-R]oq_0ME@4,ϧ~By2 ALMG]eC8f(w|SzO֡?GIQٗ$|m<8=7d7aj1.n{F0"qQCIS[V]i)&<(80ĕ?mT`48F4	)R{u]5xœ`_
"geGZ+5?~nO9xBjsjN`Bkfzb{%Zpk>Q|pr,%>frM0l<άn:WR7lq]2D6
3UWqsOhrQ}\W!tWeWBPEuSʪ=IWKQƲN+V`*t0@[T)XUYpXT10O8߈LH!hK2uN;CLd48$r@qE^r:V'¶MjNg-b{ʊaﵶss< Wߴ"4hID` #`1'V^<~\mNs䭢,_2Ũ1wޅwns!jWW}x!	gz'NNgqIBVȱAc+?xKݓyPfBo!&}[GpoW.}ƈ]Yp#S^_kjaƽ+qϛJUv{,y }csl #U1C.S*fMn%Ԃl`ُԩa+MR(#`6<"JO/=J^uE3WmTbHL@ۻprT5 y>Xsnhk|1>iQw7`ْp&?칓Nbݲ5%iXޞCcQrq#1Cf`8	|{K˭ZY+	c񾾾aVgD[#ٿxyYU'!'u-UwU?ǗeբX$% @x[ms۸_;3Hdd7>x:i>$74EA4_+)J43Oؗc>ag/^>yqz>ŭ0(rr@L3h¯ag<cR31:bbDv0P"'<<I9c˓_蕻E<\s.cZ.QH0&ZȜ >ZE~sr2x~:f̂xȒKܖs͜LfX
1^Ҋ};6GY"w,x66^=*9첉xz!*g\)OK:->,2V\pm>8JhaNIgǓ6Ճerg7yG"K6zwƦi?-DX};[8|eޜOlc7Z*iOo_dRIf3~]Y4zi7W<Uli% b(Ci6P5[,~CYQuȲ/Yx1jX%_)>?^ .Y6W[Q>Saھ2F8DRVl0jשB9A!ؐ}!t	ZzU|%ɗc/~ ȅ \+tT}E0}	~o7zB(P(=;>G|z	"&t8J}-٧OiQ#HI!z|f!}Q~S7T$M44&TIԘ>?lrVȯTTu&8WԶ
(HڰhKv2aל͒+18B"]ct
5I1vE¨dC]$OA&M3:H\͸٭B0`h9`>È(Y%39lvĊ	,V? |o"U\\1)πA"h](.stie8xfLonwnE{E.d;=灣tcu죑uC8j;>aZ'nfWAaz5
r8KKcZ#j[aTt|:7NyKvAokr{Pna/O%9b}U-WP|"/5jQ#퍗m;Ȉ&};i1&"v&d&qBaDH@ƵrB\N>kpzݕy%S4'OwI^mXH',[COa!fpIS۫^C9]`pG,tNfg;n"Q6i(9YVt#6_QBa5JJYpKM1ҥ OE f AZi	3cVrDL|Z\^bFjr)Hg2LI>)HY"( %HJEYɁh#%@t[n0Vht}`ws	钞`	qО0)>}|4ev|εKM'o?Rm''\S\RCXsX^ޤ0[C:_BFQ1t\2?qo<Ve5M^pn^7ail ]?%MfZypM1z=6Ā"Ԭ[OSMpzPq c!^
1aQze @Tx	,P=ڃ%N
#TB-	%KTYWHG|b]݊S6*\qp^*pC;P<EfĄEru\eݰhPs:t1p5=1SVP,2QvJf ә3%6sTkrSl
أP6E.Ap9/J0~uԮg"$0	e9жm)7<}&P(I/"i*. /y>iT]J_MHjW	ga!x6=:&8cxأmӝ6~$W4UVpd֦rbQ?M o	^׏B$b"?fBR^\H	r2vO,Oeqy9l٘:eAR&7g2y}UP՛x4(ڪ!V'lj0fdcQ;l$yrײ'dkyqm'ٴ@= (W\z$"Cg\_s
0HbvGaehAji)}19*91ј`7KxO?&E1%P'&`[fAt3 yhzY.U
0[%<|t_llhk7&9+̬vF;&NlT6A7O[w6!3@Բ.<2r*#u+:ޝϨ@m]Sm!b#4L,l	*P	WhZ4@4jZ;;n챤+kuCbYy8Dnu)JbCnGr46F8"pc<u\Q&h6s7׸o\;ݦ ydHTO:ԕnL[ې@&F:epC
~ճ۬0өKuNdYT59s	$`ձRLc6<^0` OEvM\%A?D.Ȅy6Ҙ7j̥}îI8c[PmzưAܪ$
f6gwQzM)\+F#5-k|,˼)yScN9fG
 y"uStUdMrv %KY.N.d\"6⺑$A{LS՛^Z=ߕJz+wta8Ura#ez?R(2;&k҆$mB]iD5AAk&8)B[N/i,zJ#9ÅM'[ՠ֖!aӏ$($HQz}"\jj#&1QPH=ސhC,SvCV-Y5-^w4|ɓK0"Iov9H&T)L|E^K44,wM ֿoδo!1tX ]ͫA~[PKˆm5(5Fe`w3ެ܏u*}͒}OW`)ypiMx=T9=EH|ퟹ:|5oNS2v|lj b{2MmYlE֩oluVp֙~Yl+Q4y2y%**8k>ԣݛ1,Usv,󩼚UWR/G<A"*FEm`o/,	kD7sWم}׋ :X7⩟tWb^ߜ:><zv(Jf<0}?Shzi?oC`ݯ_5 (hṷx}w6+uO,'ެv׵{ 5E7@$(QyozE t$E'Fҍ̏´wsqrztxrѽ*arckU>C5gmΥ3^aIFUf&arY46][ФEQ j/epyApoqd~?W2)Jˤ(z؋Ǔ9,a11~dShi-&2@|čh(>OD1|g߼Y鵗ȑg3qS.c[Q+ݸvO6ؗ+U~-7 a1ң-c%@3(I7xrr~^gGOϏӧɇO`|M(4&@?vuYLx38Aça4} %:q[?3{ (/KY ݯ a\#'r4rGȶ9?8{_wǡ*SWer{3 g^zI*i
iRۄLzZOSL3?H2Ķjf~6[xz?rX\&,ezC _l1hT:btbLx>5ֺ'Rۢ ;"LdJH ӄ0Q5pE.T TzR6
 &WzOVTNN#5@zAu0Mw衢7p#VFL@`8 #|(>$reו_`xɕ+'ЫxP[pTuFBδ4ϓS oU=p'Q8Rvµq;2F?SeG~|lT]wc:9H	Ҝ9lLA@SY-][xg@jy2F@],I8G~6[aZJiJ}QUtp~[)!tM"S%)+8%cUvՠô9ECV^wP;aFapR&g/IVI XebM(P4XA'aN}g)EL,0se7ˮMA$))F\ZMk`N, 3ٖ
;[eރwf[W܉o^8i%MC/N*'~&ފsutmk+M
@P^2yPu)z,csx/]l
;`!P.EQ|G~l{Pe]Ub/glx-WJ"{)߁GMmjXzI}E#Z&:# ti{99@Efً`էAeH.2 s{WaQfEuZHk]FhE6ۋ_d5 d$|]B~̕A+SQKWZaU
=䁡fo]QfIC$I0+[__9o͒;Hu ]tF+6RiGh?(ޠ>iDuaOYl6wJfndWpgLx/ c2LTD?8.7e*ʑTTcU*lPa-T4T9ӣI@b;Ԟ+J|66ΑF8%;.h$UoS`aBtR)(gAѹOh?\/u$?`K2 T}Tm@8i&s[+޹'/	,E^:8.U.BOBҿZJT?8xX𿜇_C[_]4h$1U6 "/H#<`
>Lo4b0{zsqڅ*@^|(^r[[k~fGvG#~]GI, X\ǏFOˋkXJR7Aah( RĈQJ7PPEߍ,Crrʊ{l'

6FItG[(&a9WApg67pt
|\8{HXl5w7\:e"ژa?D!(M_5~kr͕N]op(k!
jG oGCKW {"͡	(G]\Z-%P@Ϋnۖx[		MU*1	泑pI⋒đ}x'Jͭ+ X-z&`6` @D,42ṫ$tm@ rb	7 'J@ެd$L.A'  (=P
Lмǳht'4-Trq0NIPFF `*ЯRlrԎa2\yvh381WĀʁOD:-fYnv\lg5t0m..WiDFY߃A(F:c!ȫt!BDY%BV/cZ0;Y4YdbGj2mi?otJ
y1%V^b~r	;Ŵ 
G϶DffKfkTMVEhp8+c(HeH%֘a*!d|]e8́Wgb5&a:UOUAzUe7oׂ:b["c1o=7Q9?8;ZبK >Zfj6@~6Qli
fФD͕ [@@}g=4D|y5WVު|R["-#ԡO"4:?/Q\Z!+Eǅ<]&*ʿPOBxOѬ5y%ѧ	)K>U./^wjQT`l+jH7w6|)ŕBn[eë|?eRPԹpqq&T* EͽPF2\llE$TJ(EmWP:)**Aa}ڷfmVH\X').|^pL=!RdM7UUz{=l`:חٶU|-CZwK?ԣN\jl) \7mX&#.^z(I9۶6v1Wa%*%רĉm6x%FO^HiZ؊\jpC2RneU@MjLr%RjT{%K :o0JUVȴ*E&3PKwPP/Ax[! V(+Hnqv&_q;(KG5*\")Ѹ
k嵋5~oQ\z'xDccyX~go"ŋ{WטՀByX*i2^C7fh͖//TEBpiPOMZ-Fi	V7z=E~Cp,**-7tRLk\jejTP2A:ن,s9fSCNdTgT0|Aө$u=3OŋVj	hY=oC=53P]*T;c4y-%](Ze-"\C,BrLیB`N̜X h8d+oXnܕhᆡWbeK4	gV%!_C뾇%]&K
(k1M(?R} sw>T;(8'FfOeP@~~'6ZQ(6°\iHjG2:iRGZ7.Qɜ(vɒ;'S.(Xt%pOko1^Xn Evq<
``L~z*FVAy%fԱP	%zX!G[kTqW^a\Ee0oMW+!8|YqB4h:][, 4)hG0Š.f#Oq~+^KPU4EVsJD%?z YY`q|\84AK!QP]U
-= i8][()d;a¾V 
 1fUl|`7}.%wֻKEB[66:ܺ薿@2r1YsaD  f*Sx頤楆P="
|VyhӘ4,Dui;a9CY2g(Nz)t7ʖB<{mn\Z;k)kؽʩ183Zk'zTW*_'3łEiKyu,*#d6dh6N	C#Ap0zG!Dk`oA^|\7LS2
raxS\N̓۰793c6zʾ_qD3] MdFŅˡg`oS㩛H|CnbϘCIB;j{g<*?J&':)msLWe!iA՛8V*#-
3t-_F.
emy%W;T,2h㦄|MW.hsh[~ WgDWCuJ"c)T0VDTWm=,A/TE͌f٘T0CN"籱fM2[zfU.e>/2ZeLԌ un̫UT6H;X(H^4TXAx@]귳vUbޖ	QGa,ViPb5sv뭇cP_.ˇcXZWX#brsx=꤭XqITi:bk7[@ G6=C/{ߪ5zWyU~D <g3OClTwMCis7NꂳtL pCL
uB%8%hƦra)C8	$'.TgF,IQx1,:HҮY+M5ő?KnPp'!)}zvqxz2.򘍓\jv5<2^2Bk4ӲE`I:Onr8KʡM,r; i?ANo67#aQ0r)BX&cCfHHƝ:7~і w0&"Nb*{U0uRQarawӚTT"De8zv=YaBǓiPOi}0.S~坘	Wj;M$PT"0?$cTT}lx+KquT󀺛W^q5Vs}
1|O,Q=
q;jBL6LCe+65|=fʗ#qU٥,@dƺT2KeK&QxWGkt9`I0xk鋒N_t7_dgv9փsgbY_Us=@+oT -įilET!3YE^ڢ$A5VyAӂ{nRssSKt*ԼWuyt^*=2Ytp+M^`ST:Egz};O܂",xuN9T^c"A?
KA+f]bӣI8{MV yq[tRRG ,tOгMU*9i	p%:فĻc0xeU|Ѭk4!lϓռm[=*CW.vLW@2с^?7M\rp:PgK(e8#b`@5<:jp3^m,2Jk}6=^zpFtdZS*PjBKw
Wo5G(j5Sg![TiUaAbt:ںq]ܵp`^J2CsL7!X@ç(r!5o{ɫJ騯F HjѼr8Lo2RtcLQ^g a<"$hRȳ_w|x0d^-[':c0ʵ?&&dȇQlok` }~^?rp޷^ggptGi)3'i6	x)7%݋tQaj߇Q&AQp=,oRn4u׊ł y&G˝t%Eطd N\da"WVao#yЏbDJ:)Hik5տ	RkXct56tUg9{HV֓/FZU0wLsqfB ťK,xWKE%MF>8.ev+eʥo w*|Y򘩈jQ/My-b5
vʿhFgJҢ(!:-'tfJEQӭWPr
`Cw#*gAѹajQLՓ-1Ke\	Դqhi<2]Ҍm)N՜jo4n)1彏"/ج{G9LTJsY`TIj)_:`сz2.]HOE78u@[k
:_Z#_%Xx=R_|r7@CW:j5MJ)$J(9m9[&Zm
?$ظWC|Цv5PܝͻLnok*~]gknmGO<{/PCRŤ`>,,``hߑakw!	GqFw0>pWq#s*;}przCV՟M&h9A-[[/Et3-5x%yˋ[UHP9LcMfGk9[^@$^:6yC*;
!еu|~u$~l{Dw/̳e
@ziA_cbY($@<]zFu1Pz@Zީ4`ʮaDE8Ҽ56Ev}᡾Kޓıb|,	~_ϱP_M0R-IsM/L
^N鄯j;@`?tфBQ-wq#-20k:
dy:PZ"RxG4Ѧ>[Lt]V|ɽaM?0*MEfz/K4`&<P8?U~,QhJ\>{wwmW.bIE,"%қL	߾Eq
%4l@p'4qbM{gsҩY`]
q_ZI;d"W2ίbCıL13x5=ڒW>⯸U"މΛ\7KSE8&=S\z7qo8 v?uy0?ZXօT{kCl;H/h7G-C9zV|#~R̺{Q6rEsRo`[txq-/P
GaZoe Uͷ⁒QzXI{g8O)>T	:t3PAƫ~0R5Ԝ@YgCM`Q8ƃU-E/bRRZ%uK9O~
w[gpFሦ.g:	@W ?!вzD/gByYb#Ԫo(΄Ec7_ƴ(%@y.a$g=)ԑ¹W_j聹t}ڻBBI9r}$x1鹫 fD2ƶch7xU4$XE9m^zz*) )Uq=_+nJ`Pת{N.xQ"o|#T(sv2;I']5@6Mq#?!	CGn6hz=녾aFzMyΪ53҄u\M l6QٻKX>^5#
ۃLFsfO9efyo/cs.e /Y^\tdl["E!`PY579{2u~Ґ)ZG|SFw
DF}~YE20;]2a60tWȤ	K`Ԁ?28}ˑ_/kR>kB3VSFwj>%~lDo$21G~=6AM/)ႾaY1Xl4(Y)wp*NTj^Lt828Рy22RUs\.<u^P5 qu	MC+ a@:*/`w=rٽ{>!Ѐ aTXJ:,&p&XYq,TeAbCo؄ML{!bU'X*Y)^9rރp],Qe%]*|'W!!{q&F%YS6s22ՀEoz>V$pK$4a剧IR	%KR2Փ/R*T,2)bWаnPSzV%]sG@	[iG=m0`$8ȝF 	)wGe3LbLi*GMAz9D&3̘%B}
&/	`̮I4GVVΦ4#?nM	e?<9E׬;/M}VZ3Ɠ}}ywpq~xK:@5,QX,F4k {ۤLtIGN2@*q(sƕD7lu%J*CT}M69z,.h]\P;~l]rP48MBDG܊R\$~T=}K055ǅJ@GXrj]%o:ZTYQbS|~B(EnvZu,{ &>PR SS6}#67CbFL27($Bcr{En$d$`oOPSgfˠq`pp{u|tx2 9Vaǻ)Slvb_F!pu7P9gMi9Q% <e\%4o0`;XȚ~?ɮ.e#ŚPq,A!R'॒~8(7L|[C-q?H8U-^Ruޤ^!ӡj8iH0:C|,=r"P%IL_ɑdyV0_+3E^n5RՃOU;sʂ]_sxȍ]pkyG) k褂^1u֦^+Qq7<ÊG2daJ;Aآbr_QB֨Gd?\vK`.Ovo~l_/)x;ks+mK*m+=XeZw>I%8X%Q~u7̃Ve㭵I@ $3v}u_?..o.ί0!913hooӫ󷟮310.",Re7L&sHTLDJZe~"*5Ot>\7疅BGyC}c42rG۱\G93 L4KKϨzog}v\E3Rq`+z%.87 JɈBH&v QcR+9+) Z{};eBYfW:(svsZ.D#wg|S	?{ӸݕFqsq-BaJ/Dַ KFչbu߯s	6.1ô1d7frB]xE%StcCBwG؍v0e*˭;pjzú",Sv[ϰpTLrUS 6`ae"<T4d	6-4<aSp2N+v'DʀKޔ_88gHUiFNV"[#6$Id FsACvRqRÄmDTfTS:X G08H VŴ;y86gj\oWu-J`NW"XDf 5tH3 [4skwLf`{1-k1:RhaujL氐Q-D`!1H0Z>mR$|{3K
/GGaYY@t<ţfr.(*{7Xd`9S;dd'c H!<7IAuϥ^1;I W#Bwa*p:=߰; cJ"	y~* p_	7	YIB>n(dA&rw@_ҍ\Y(0#XDRxa8ohYh;`oR	zn%`]Mg1N3U  dbI-[ցt?)b;PfZ L}	9r `Wx O@
bh2 sa
qt4@l^GHastuBZ Dϛp{H״\x6@y[fQhq0`<'2>_/5ݵЂ ],BHƪI,2?r
UCaZ43޵'iq	g4+6A./^ɯD(+˛Q.$̍n2PҨ:	]v?|zy^QM6TVy"B-Q*)(eISɖӗ|@mD"J!:G/2m36\AzHdRmn̸aڳN*#HM<XaPAR!u0MW6hxz϶ya#m05pC;$yTWM0rFInnƐ[!\
6or)/P
ơ"ġLL&e-jɣmn^i&Ks'ֱ!33 |b<ƦB_hЦ
TYBgהh:jBDD.͍ͼRd-6gXpt:{N'XCZqߑ3kd3Y7T
4301>$$&nZAz%VJ ݶhA8Kg?:Wf4˦JER	zi
Nэ8J~HZȸ$t4f38،YJŀ6kqJcKg<1־QAlv[DbK~7W N@/! Mt1m1]Nf2Y,8L@:0(B|N,v!-L}4BӌFa,KA#CЍ<htL>Woq؝4cZ@VM!(LVf
ktl	`o _۬^A]!R _E7"?-@0g_V&?ژD2:Fmk^̀LiʔeB-Dn.lkh]C7W&}<|yyqu웅Eq)_5iH:B:f9j?[_@u}ۙf<[S/ʨLüzUtqyzCI<o&t[[02PŠVы?U>_\k,'
NNnkNd.O&kU4wneA&0sǴm9d
gT{MvB<&~;u'S3u/-ׇ;-)lmhC<ԛiLV#Σ+2^uwƣ6VKn[B
Q@XFZ%!)Sg_fKbj22*ihy*g._7'.ט6u *V51ebrQ0fo{{e:v?P$!=gQ&hC;p0L,78ǅ6/ zt=$0ܬSA=su)ﾼ6Sh3&Rg5mFO$-`sy2I15^F	1s)*f,).i"qTӨ552l<".ctbhĔiP]`\'My&, 4`il3^bn|zr((/oXF9UWA0x:)X֎F(8~}-V
VB/HYgaW+d'*\v~[c*#k*(0$
2@e߄ȇmb>䣘/9!gt|7=1}#R.kC4~#oJև3pfư7^Sp-[wVม.[JtZEUdJ`ôkR/w=
{|rqrPbÄ좇]'3?{P٭-n[\<󠦨Zմ}MَhZ*-+u[7wmP4yҵZ(	˱TjjTD`/&$fuZvF,wrcZRi>)S&)y|b\]YeK ieyD^.6j&0&ZyL&Ɇ5:}feyk@ (N2ʊNdXk3 |-l莿X5+a%i#,
}"!1 1(0涝]j:[d*UZbEBsN{^2	dX,2ct~(x聱 *{f!WVy[p8&~#̞\/k<T╇+|5]_mgh;`*8,"utz((@y>rq}2p,86ہ?Nԫ[8na`Ņo\ E=@[CaA1AG}*!Xwv}sڋgPW"v1ƆjSKJ}:+ƪNgOe;$
i'ָk "'({,b/4'Gٸ^.gSYT^]Iګ+s[&X|skyqk:+aSWMdsfA[ɪ`RwEAWJ&/Zo&4c7Fd߬$y-*@.?C v6a4zdDp?1#XkC#R81	|RRWm$V!\u	٤Wzi|"g50kI±:s1f凓<f77RØgWs#Sޖ	JybtOTZpC!
4u%|°l t6S,2a5tcْ굋Mn7cU=ųŮv<tJJXQ<Z6,S}5o2S.A TQcYU[<SqNT;n.p0$KNd3C
9uaV۠Ơu-${A7hkӻD<NSL^ uoϋj('3
-jtt&gn'>ꞕW~5Ф{nS6qݪN,RdG63H M"v_C7M|{v5:m,i=W?MjeCL:pe;RsؽGqna^C·CTA|S[@޶{]2_=❣xAZ<s3ؾ>} nԧߢn3!Uo3xzU6Uvo2~?~_fx[r6@Y/JތhG蘭,y%*x8IPKvmf5I b˗tTq<}J:<\El|EN` n/hDܣdʃ8b$hT>Lt"b,.hN$怹"!I첀s"nD%|\$&KЍq  Ց&Ru} $}DYIL"*@)aO<a>[2"HMɒ{lT&Ea<&`\H= RG9
Q1)կ|Y	5K >4}~
SzEMmH	R2k%̍bL 
TK0G#ЩCg&NIY]K{>m3NIbub~B:Y&[Noܵo	6Y@,sxH}n;g0>zNN-p=θb02. 2;݀? ;MFg^O.r\|Zolr6uM<1ITt^:mߚp @C9S̔CVHc[>3CYq6JȬrN:A@ iT@`
F98Q|=Tipu1f3YTx489 ~8So#o,Z)x`8/Xʔ	K5@<"%J@̊4SDF4m9o #Xb(]<EU(
xiDiU ;"t!¿D`H_l6ۈj}$hT>ܧnP@r_Щiȼف(V0V??Z2 ]Ŵ8S/	T
K/OL#
8T)#oi| 1٦גu@`5!fp"Ó7šf;IwC,$}C:~Y4/`N,? ?̀prpgN8sF|X%sfv~qޚFxaVL"Ձ=8~g~UKO%:rH]IT[VaclԲQkh< Y@=C|EvN64#ґN#ǳ)DQK,3.k|n?ZB;*\SF=?ǹq76,RO<Ԓ=?AV
* YER0AG+ra.AJ}̍j6^8ZMϫ]]l:ѨJܛJnlc}m{t.ҝy	z Z:maN4Ħ<	bOŀK$Z9Yd|Bm1XPO#̹#=.YQc칱Έ.'>GKdCW*B#`+!.+%; .iۤ,cCaR팟@˪AcuIM6E?h`Bl^<z]b7p}A+kA	T$0CT=
>^ki^["NC~ ,MHr%}t8c(<U9c-)SVU*JRtڀ3z D ! A>yC`ѯ| cC#p<@\ʤDv
<%VweO0xݥsM
R"--(\<vGd+FGk)R"I7j5lb%o䩨if{Wq+k+U%xyزD2X|є(OPZWCN?lrD՘Rj}B`Ͻc?!w)O[;9l.N@bȌ#࠺VWHZjCnW'yY?/`)o#,u^i;nw8==ht3('CE4ڋZD3wf	9 P#:L?}=Be;CnCڏRwpGLyHp7DhmJGsnqTȠ<#Aed7×x\5PWgǯ<_0ȵ,W\n%Xa1)1]eDKzh0x~h!N %+4I<p!xx9 Dޥ3T?7fHr3}(nO,[Еi̠,XP2.X@ׄb"LV>XDCŒ6ƶn/46[<m1@	iAR|JտxյŬ!; y G1@^<O`tfK?_Gmۧn4iPZIn y":Fe@w2ꅣ=+>}e?^xo~;ƚx0+}u@ZU*;ҴUvb21ݹWUw55mT0`vAtN>ڦo% OmL"p}wb6"H`l@?2@#~8dq"qV&gpNIQ(|[}Z,OV*.dyvǶA9=LǧiL|{,8@١fuu :'Zҥb $[긛\eqD}s4fk<h,B>[XC(CiSU-CG<C?L778d˿Ia	򉩺Od#] 5C%^IC޿+8(N2
gp#AM{V-
bB.,Ķ<S6wJ GM {u%&t	@7):#ܥzԅ%pVLaS(p"w)ݱD:ߋtI7cJ&VWٔNE@?ɺ^^ ދ@|z+fz?D/E.֒Aa(b!1&F-'zή)u%e ~=WyPbC4d|'qO9(e/"~"#]zKG?%Gf)hsѭ]֐GQKnzʓ2lr%Qwk9M7,vc9&R߼anwJ;Xɗth>[{X*
B29QCB-}Jlb!hbx=C](1e5ZRXϋbֲOG=,]n#׍xˊ|݊}EY=xXPb
].ȦޮImѹls~ug'ј:w^y/OzfTzۨ}"?nQd_@h
/*FߴPtku.Bwn#ؼV㷛pڢ0trQVu#3P*Pݟ
"-IzE.OU&N<)0 5|w}77-J?;
88=_B&|njbbexUMOANl-:iM$$EV%X,&j})ݙfvvByMĿգcvn!Ky}An2zRTşXW
Ⳓ=6ķťZ2$/ÆlwQ+5FE]և doc5;;Buu, =:^dfCz>MI`2JaӱJřIpuD{)./cbn@g
ՇK:O&%qC)`S()A5S!Ǩe3j7p_xN"-5;<c4< .&`vc4n>^ّ	f`\P%]YK~ABMlHjy2w+jso4vRgħr%?R|-αەHZִ3wsc ԒC<kVQ:q5zGV}K|iД5tv:g=fZE)y+UZ<+#x71I\^TNX={ō}o'&DjA.߃^8ʦ'hҖiu^+r婢iQ0抄.{Ik<%(V"
c̫84
<GhmaBkQF$:QxT[+RԿ磻	xkoFʕ;)ItP$V!I\@JfM:>m˗C"-ggg=K=w}K۞kGtj]'7{ճ7yh/\>ZE>Xqh;4,>)\?o{Qɳ%g%edp0phWJbד[4jFKۡQ?$#^rzomCјgnmϻuYP|BK;oYg=&#};Avǯ^蜆(/5-uwdxuIaЊнN댨=ރ>68|xAu'6Y:#y7O)wۣغ4GVu䄾bnxxqi&n(vgН,$uz|4dO;φ~k6Q{sۋXj$H X$h9+:5Ŷ~`~ڻ)LctxkP?Y̅T#R.E50'Bbp!GM5=>~Ġ݄LF-`L`<ikyle;8ڭy>}w:\Ѳ&6md vo(N=4lu@!yANߙt}7viJ@fd8'Hzέ4qGS'r&b5;7@MhgT Ba`wGMq5?HPL͊]r(~[ m_$/la:TCBAiܯӢgagk,5j6j(1}C!LNWLl61-fGbNBǻ	xdRLfAæbwOƬh;vHħ&<^T(==K*D;#3ؿucP|`;j¶!>WI 04NB7¥p1֙ǧb2sy=qwU#3I}g]ƅ`.x2L+C߲y@pUmNtlQ[0|9a"saT^J.Rd nPG$-j:q&j*K,KxLї9\vJq<hxGèR|,<"0$M$$
H,!kd
Ƽ<\,VZahC]JuM3PgA8)]wvؘƍ%"&ķTZUJp&4ZQ*aʑKV<R%߂=qy\'߅{9+ha$xr7(f82dOa'`^^8d_j_B`l[ee5$H@+gPfm_ഠ)`#ND>bX`1	=jm(xd!ޑc"$3\|B[ECcjpT:jgw/ҥ(<iX`HLP8C*DE QHYSBvq8Ԏ6HK~,o,82W%4'}@nDQ4.­(<RPV`M	<K{?vcVRJjْJUo
pcWZj#)4K+,&X9[ݴiS-*@%f([
GuFsA_^~=jv+76$srJc]cR4egjAYeW!YW)+^}q!3mN2eA&{ywUt}F!)1e:OCR_['=ܝwEOυd "ђ:u u ]7k+Vl#65_V.4$Ob-+EI4ձ\	d,Il0RDr-򤱵lavKBCvzAe#=ܮwPkoylr|(#XwHmթ(f?;jn֞+ݤm:vFcp׼S/ۘY.>b#/t=~ɖQUXxT=qg)<vxmi;<||xQ;3'iH!ڱ]ju76M9R;=`~=mHd6	ۖ[Q\$,<Zǖ S8wiT' fL/2Sd5[3ޤuVUw<|-[jVdᵵL~M	0M).hnj
t:uQ_(?H}-Y$_
"0_G=UdNcf'ˋ 5v>j(R
/'B̥6H	\N<0e0T1!<qZtֺyˎT+e3bsXXWUZgVSАUr]+UrrJYmjai%LlJv3g AU֐_n;ۃ&LdB7XB2X#*uAO
a-yp@*V'b+rY|'-Pru^݇rIJX˘yuxxڈIM+Y.8𭬊&,!"$	uޮ. 8ݍщyL2zdUCX^ϐReIp>TYZXvi76\N[<A"Rux#L$	ݨ-Ǚj%UkGUҪI^FN.	_Rf'ISo1:=@vfK7+Ƕ)(`@WY{eo.7lrjОt\ѱa#]FMIglY~c[V[|ؗ~}d?x(ΥL7ׯ>Aإ{1@HIMu]	{{f%Ѣe ]V;e+arXX/ȡN\PɝkI8XP'}[ "+k!2`xUV;<m_K4^;j
T,eMNL9wPg΂P"c;:XqE;	%ל|b-ŮìZ8tR|X.ڂNPCaV&e]^兞 g먑jr٤th^B	DT`cMT4>:vO&qJ'i},o7Jnue#0D9r5F!i>G1F<¡7(C4ŒA櫎D3Uƛ3z6{e7[45
T\EGĹ]##"FEQcATWg,3h:wb-h1GOV_2񚞼AiK)GL۠^StpGzj^&Xn@jV@4lc32::'XWQy̯^[qgO 'E8ޒ_AAlc	2>dK>κo<1dbK$2a//,1@Vz]bқF U+lgm,iA|ֺQ,g^ycZRa<;Xiɻ|*.iPT)M_uōzH74nVgBm~x`='.XŪ.s	}UT0LcUykK&;oێp!Ok΅Vrg0+a=ٯg!hea5w±cu/jfXX~Q#mhևg"^:C^PMXؔU{bItvFڻ]p0[0wط n1]Vֹ+oZ=o!	Gr\NT?_Vp[;GE1)y\[ll|=OiC>v^^SȆo<ڔ,}'fJq@5WZgWnQ t=ͭنC'mdkfwM5ƫf{;Y.;ten@W缷Ǭ?d.lu.j}j̝ڐNPmPxXmo6_A@ i7PjK0)"SD9ˊHI~8{<g"d3vkmop\*3CCS;]st9YWFYЙCnqvW,a/اNIp<Qhੌ	Y}l)	VK%KW2@Z-4EX$K&doK'K"ffIDcJq!?%|ɼϹ T)9']09ުA4`h!xȖ-˷xP%] coL㝡ܿ@( 6iZ69C;xmE	z`Y$0:vN;o$dWЭۦuc~FG~LmnX] !G~	nr\?N	гP:9t{G1L&O7C] %Pw$݉'XnNsG.y¥:lM#NU=c"7|dogZj_v1%'vG]|'&:t=-"Q4%xG9"<͕zuZ4EK987&D	oеac"TLUa~: V*5}=]f66K!؊X	ҐSI4Rv9UGiʶ
}!Y(-w@Tn~k2f!mUH^նN?VQfNqOComʪlH.1ߣهޞt%D5\UVK`j@ˁJRV_b5[ܫKYZRctva(ñg`}TDWvG毞{`|wˈ$#c++^&/T8n5s$긖o@1
A %r0jR6X뵌4C`#2OA c=}*UjQkM.,&5=1׾>}RdTLuȷ%ud=cV	eqkx|oǾgAฃ]@/Y:^!eI-ryrWw3T3gs`($(2ׄIv#ϿU[_2Nݺo!Lzxj]0n+.#Ve3^U^}ͩ:NaxNge<'MSRVݚ(<21c#{SGXfizԙv:v4lf1V|H^ߔ_)eh5K#$jr4gR8a7aS{UOP =D	d)^$![}6vL=2Qǜ
M}jPpuU}W'xmF+VBsqKUY4uƪFmְUaA9Y0/W>ذ;iB;m/-֟:c|mڐF	Ji{,6+xW,HN($7E>9p(˱dq*]o0ySHN1 7e<,PNp܅iO-ؑҏ)M{y1eAPp! HVR0@'Xp8+T)1jɬROiBKLXT(ʨ.i^PA'_=˱/$ryƳqg1[+ϱ64ֺegc/,ۻB'xm+tNffX[[Z9掳lIϴYuO/8sͥ:˹Y d4KH2=K}Z~K>t}>-Lwक़,su*SE/66xmΞz3jT@Ҍ]Ȯy<oyXYVv=NaEmh*8ZjBqJ
9;iâ[볒Po|^{i1w.q8g9kfط3H}CjH7"9Qy$㛛xjCb kuSWOA!Y+P<j	F-ڕ,gYW=}=rcm%28Tƨ+ ]$^~A?Lmќu&^4nO^8ԃ?f݁cst3Isirh](dA-ƭ<QeFCoMh6~ڥ Qe(~i	Q
U:~ǡa
38EjTaJ%_N4]BZ1~'Z՛kcԩᤫPhy4)kB+/;SM]AN	x\ms6_3>ʕdwT3K\rEBkTIЎ/x!Hkz`QxY,g0)#,6	*7zU
AR`Ui&_~)hU>,z`47#~n[.&k<IfVo^֗i[	39R*A#mp_AQlxBphTqzn/d7_y(쒷J\vUP۴l!2L7%ox~ *(yɟ	Òc~]
wofi8K8X&8AtaCo6SX@!)zXs"ɘRh>VY{hrDzr?
qh10"+6.Ыw'W󫓳o=p`	4AO{o%=1E&=k*L@P^5F6iPR2̶<z7,AmnfO}?ebo$x[	g^ShHay\6]<GBP6z㱚:MS3q2~:6ۄvK-ٓQE*?%|~ƓGXtyT&*ζ\&q8b\M=.9ߓMgaSx孯4R,إriȠ=& [[[oG/G}f)cV!zBa7@bvt~w=1̸5	lkx&`}FeEF4J+m\VK.=*<aQYan0Vvgob-ɐi=3%Ǉ]ݶH%OC(J#r/nACˊǌ[XٹLȅ{j*Im		TVj%՚ $"EfQ&~"PW-׺*jR߽_uܚ7<z
&YB؞3+)0PYxBYyn󹚁5tejCYB g,gKǠ5|rx^=^U~mW-󘀩z47ޠ8R/P,gU/=2ȃc"`Ei/T0IT؃\͸zM 
IrNLLP(87o&X)m^V2evOqlewvf8Xi7GeU#{/d7	PV|n$븮5;`qj#xRol652eyZ"Nڪf9Ox ?a":A]I0aQ5i%3v>eS: PSk?Wű{jY_tIާs"X4k]?fӡTtʑ\pf܎:)SZKyji17%H<2%]d U̠3!*RإЎUc_}fTlfY񿔤)Lf33L$< A:4J$	ϯlfڪO)ؾsU-9.PE:F.T(,/a_;G=	sG{ t%V{' -\IE`'WŹlW'D5fO@XB,=<d@0OȋLdu$lɡ3pC"NKLb5Ige`;Rw/ٲS].Ny9SػdÆxd7ѹGX6ԩ³'F/ץ~2[r7	Y&4?81mr'~`ۇOI#uN,F,Aꅠqn0\h3Y.8`|&904Q@'GM1e+\9t)
eY{QBUe(ӜvAZ*EI;:zύ:-:E#/]Sd!v* WwHب2:m`B(ϫxN0e즱<UiON:y|L9:غImS	&$heQS(.2Hfe*ω@|BEYkBOa Ϗ`F߰2Pdwxfz"?숇vτܜ%%4}_m֤9AMV
hq]1lVU;E^p*ˎn}I{vC* t'+#=yOH IS TQ2X5mLl@eC.&/C]j@>CQۨ*2D:+bfhJ{.AP]!)]&EٯxFz5Ew&ьbK}"NI+Gf_ Ixc$tb8O$Z'2DώTͬdۓ$1IZ[$h.)<l5]}YBNs_\Ҩ-,"5QHT&H7oY @RAf2k"8xg R/gvI1k;n~EY
Z,D#\'+KWPwZyL#^`Δ&CAxvh@iqL'b5sl,,>bf,nkd2ڐB`NhLR!7EmsOt,\zوPwz&uZߜ^BQ  :(MYeuj v#\v)M9Ygdޜ`>0DK &Ѯl	U3tI,6ҿIAGGDTU
<&3	#0K!61sFr(6ڝK.3tH&}f"] uԩJNo6{nYGcrmwMITXک^5 y*aʄPXʂoר?'0aÚQ"q }I%3<oU<j&mT_m/8qTJW3L"/)	ۗ/-͂'X_$iC_,	ƎESt[ӯvi6ymuBGOWi9((.}.-u}p:ȴ(DTJ/4. ꋔ*0[a}^$6k*3( FsJ'TJ	Ӆ+(2 씻#['3א˗»}N]EF;dwU&ԑR},wt:m֓;0g% SI JRmg;<[E> ޏ634o8);[nPiek<a:Ogv4aGaOq3\d/#CZ"BT9F|,!"/)"uDi06Lf*rP#oeDDUJt`%fhTCX͙_8~O~8"F6wߜR
ᅔVw`deH{KFy%B`g;-}Tی"}Ϭ+Z6[]ͱFuGx5G7Xط\AmԀ:]s2a%#weL{t^.C'˲Aq pΚ^zl'2!4DZ!pdAQda"y_"H5ϫт]zRGh?#:0m= ^L@ٛ5F/ڇ.NiWs
4/nT'Clt0 Ɍ!C)ܩaEQVIS,&L(c56{uMhߘ5t&Oս.k@ݦ>Ыc>Lduj܆_Ҩ=юʚg: OVLk񘬷v9+4\hFCXj٨JX'1x~L
 !2eYZRIPR5iA9ѶۊFE'T)+L턲 WFFm}3+P0JgE&r+^N+#Cc];b~d} =L'|P-ʿx f8/fJ7:ب5;	g3_U5wX5ThkWqbuQh鬮.Z$ثuOt#:1)yTXna-K43qg?r!{oߺTYSTx5zDZ^_K3$4쓮S%}]-/T	EposZmVZMeY` f׌9AjV4bR(:bjނYHoOmL*0ծ +)xGe^϶[lHW?㌙Eru>kd=y۠R.ɮҬH0mV35z	F2w	}cskW|[{:1e"ZPOe4SK2_,o|<J6
:_0Vߨ
/iǞrʣo:moڽɘ=ϳ !^x^8^t2ݡ~+c(Zì]kAa(J|$Ͻ#heiV[[;lW|
ox>K^ ɩxXo6~_A,@aYn/f8^⮏-6HIVdH,9Nay%x<}wQGbR$7tz}:_\\яw3BޑX 엳^Nngn1U"?sI4+mRnxJ7,'<q#\%Nh$RL2f6z>Y	)?4-p$_{D2kfbjcЌb=7h!''Ŋ9ww`/)Q^Kz	jYn}(WM3gN`W17Y/R'wB2>mqL j'sh0ߺ8-x=q"V@}3#BrFKٖ	J#erD:jE,pbeJA	#d<at[4dЀ[ĆűT V5A=ݨ2'hA}Kka	Kĭ92:W\)np0[J<s"ɮ |ǱLccʟ+K7ԁ{Hn>YxuFݐoH=Do1">w<ԄEzLcmJR=+/S.'	!VZSD'O"G9B]nY2i<SWRJi~'pRJrKfIw6rVUz*?m6[v:wWLK~?L!Zbu(5FyksGTKgL'2ܚ9CP@6Tw"A/}ڃ2]	gpAK4^*	QIPCpRG];kPnع,0׏={|&d#t5DWXPqXsQ"3}T	ڹjeP'=>muW;.|,H-J0 (|z6\ogJ'6O!x%1 <ԅ8M,K<#ؚ^&o+wfj8JɁ
	Ɨ#|7ֽG؂D^ _hA9J 0S!#V
{\J~35XU-!jMgyJ!&[HWZC"5b0֝#pdKP᠑_IQ2+֖8:>:f2`9=8[C:w3)KeKVů&MV2xntiqؔfPAtx!ExEm[Efჲ4?pe1"5XWMHZКlpՆ5$ ZKF%վ)BM:
a	x	bh	Gnci76">auf:{2k`c/VI(*U/pvoJ+"/94~@3s瘧(u%-v.Q~q#UtWWv`_g_ܛXYa*BB(a<5Vǩܠ{u9қѭJ|f|Fk>܀.U2%6}l$3&7oAϧvRS'Q[&74|Y.'!2Rv'b7ȷf";#y||MA;ֿSM^^xVQoH~GTJշ
HR9VZάU7cC=^|7;ӈD!U{~4+dM$朋0F]ey#Q\5\cz}_D"EknFH <|ގ| 'g0KmL
5&Ɔ3}}t;0@GzYNCs`e~tw7qf`hZୗ#!aZ'smA9*.ђ#IB+3ґ"J
2t*Q]\NN͓4!U4`agHzHc,N|gP*P	Ac&m%ׄ`DuZ@@&xIUD\APfՒh3J_7.f1)RN&Oq4񆣱)^ozͧK8gԼ0K:p4m@VcL_[Z<өDH&bA -ع91`g*xkT XoԒfᝣޖ_!I| sخA<WMyx2 <dƯ66 ++ԒUavC]Op+}~v]zQ66W0xzCE~8䕷SX?k.0DIؿB3ָ9|㰟_t/DKz͏xnދXmT[T*gە/;~(qX:miN#LL8E=c t6Y/$VKڀ.\;;]n%)em5Ɣ*8N:c⍙Ѱ[:lr#>^޴lҕE77M(Wj?k<r5_!/XoH3w]S8dI3 U)SYb0	w$ .xR]k@|_(H"6|gуdN{RmSebbOga<_aI&..*z'j4]2$Ղ]!%.EhPb\2Acm)wxgUn$4L|	X9%Pv%5)xjYaA`Ҋl<ariP FzcH~C8Xe>ym^Wɶi듔d,$[ۮ߿6[-װ/g+pYO];ճ(XCi	J<$1y>8\ ROFitxUQO@~ϯ+b]%Tj+x,޸Ew
nAtٟ2bq6>F`2Ϣ)2ig=Ng`<<C[4R)^u/Ȉ}!$$~JR.^'PS7raa]ߚd(aoŅb`3r<>xHB((a0F笻cҩ3#g%z@1]b6G£?_4TϕmD$@Zx5B*T{FeuVj&
~H hrWqTYX,8xJ}x!/Lf]^{.ߖ&0Ir:U)E^ۻ\GЯ6Ά]F/ؠM4ܙs*>).Ջ10/xx`8Sn/RF{ޭHYf6\
'3=h?$ΰp(O/.'3-dXˈKkf$\4MwX8h5_&W5\? \ԽxWn7}WLu}1lE@:)`}⎬iR vTCeW\I[pf/kES!`QRabB+lml-n,Gpp?hL-ړJs|f`gؘn?*Dj-eZsO/{[7&}tMc%tzSTZvb 3Mo)^d߰+	x7oe*JMB
j	>cQÝר9Ex>iSmЀ891!zًŻZ|ݒ>hzN83v*oz4B^-ih	[]e9Hඨ8(ylKZ~F-ZHWΡK1!_
:UĆaA;j4(%M=*δP&.݅-j|'Y,mLPmug<1a03QĸI'd:~9t}4+hw
Z@n_YM'kbǿb7!ՠ9q<VxAzɩ]|ċLˢ	A9N%3h}`jh[`!WsX]\Sj41
Mt52WYjgGd)
5Ҿ@Wח[<i<yLC;){5cP[jRuav"W{C#%b1Ơ?QndӽzW<^Ev*,Kb۴De4JC"I.j~ݲ6=fԞW<)`ޒq`&*:Yez`u[qS+]JLdy֗Y-[K߽RB۷8`D{lp#C<&{a`FGY8#$Q9$$u
\yfyup^rGHǙ{E\jd(y]|2驷
?i'55x;ms۸+p\N#+vrM8:,'ڒ+u7,DBkd	PwwPD%md&"X؏@	K&:9]1I>rFr{R8	',dD+<Kbg$btY~^%d-]]v;Y2%@/Lpp*bSv.?Rab	4EP.FCwXw 03³^7̣m*`^uT32Ny+fB&yr432,,DZh<W*kOBȔؿr3|yr2~jsm>~ή?n-$`";t%
,}&qGф7xOG@{(UKw{dq%ܡ;i)MI݀;W#(϶Gs$̞PE"-όYbof.B?K8`b3`\e`v.$ZMD
uwzn.{px<1}ۓ;-0`I(kQ	LA&,,$c0%&@I6V	RE@qDAH̦<I	>yG3.lγ:Ml! D+#A{a
Rޘo<R  K<n$^X0:9y'T'2]EHC}V9IesԼVocNra'ѡŌ]K"VN>,#P|.ғSVI)ɄY%Y8\VIv=x+
AADiF.Gy\Čq7MVol(D0`lO{qw+?!0x{Cɴ]8`Oʄʳ,Y]}~E@lhoXSj0³g-x|Iv|c7EH7ap@|,h֠c4NFc>^w@f[Ajkff[	LKe퇬+E7âp//й
š63e$k 2Ve9&njpF芵! APbCVП)¹%@Hd(UKbEXכ|H|K|)[>%#K:xD$ЛHL附R.CᩱlңEP9I)/60ut/k=p2QvܰF|i-E&OYAlZW.MO[;EnA]]G՛#jzs浄I>XPde,YЬ{x*nǯ.X3{FT]݈fU, 2N6'#IA:{́1v 2選$mDĚ6aW5g=.p3-39pbo$
)C6^xw_+GʨgCFM|`vOTcN^C^*CNNn^D`e']g.ZIX,aݳM,H6Y<1|E9e?85i5áo]ߧ1I0(`c+GOeIT^ ,LUS5h&%Bn^x8	YN&RTS8	"
p<ElSA*9G"Dӡ- PxkSpF-LJ,L7R1S6LǸz%74A3O{
ϟ1:6$(z;>:D	sJuY
ҁ*ɼDjfb2ݦMPN{P[=;'w;ؘ<Gy-lM~S;M1FR{b({*'9^[_XI,wu*剺C4}<,}?ANƴZt`Qb,*5$7&Ap]F^ahOK2tci@ݺrFЀu!mᬌ  5 c5?ZI$X+0d-vĞ<1Fo`'f~;3mk,߽rΠVilNY$6,(-%Yb3)vmO K^|b58<ASV#,|D䳹^=~*"iA#0'ceC)LʭBh 4[EB$f_L6[2ۥ@$l~AEb3u3uEJ#^2ͩ.af˗FU1,֞5!}ȷݎ"p[[[ry܎7tz9_	cwMJ:nD fvPǦsnuҀj*ƚÖL+ήq|uǝu[pocowE.S- QܞcwQ~o5ۘ>\V{xakN\ȶ۞VȮUl/KʬV:9I*7LO\k87`%QUS` CN=tzrm ZŬ"UUA9	Z6Wuڰ;!)F>^,O!ًXO$54!'R݂tLadro}	~y 5iݹƼ-f nhb(I2kͿFޒu-a[x`jB[>;`+?"g1gO강bG*$"UxbT5DUΦX2B,`c7)eVz'#:Ջ~j6 [	E`BpuwΗؠxsuDcOA)c-#ͧ+kWs1+C*WUk)@6jiح0}]%(Z6[UUwUzzD"Z *u ?~M+<{i|1tPƴ,O<rI/\ԙ	f`4LƁ)@9|HJ)K_1ơLoww9~ɧR!W	C5va/^)(flvr6zdt.T r]k2v/u,NJ)NDhilDnZU{Ϭ"/N7M{B/}I`xL>Zb;wEs5	È*p1L[СS9T
݊SZ+{\[%7y6r9lBGyΨNzn/ϟ%mzq{8q=0DVFT&fR~$x>Ur/O~yegu;yat=[W1!,EYeek3UxyA@ds_hu@;㮧>1;/^6^ǽA}q r_{nywrgQjB岦85v`g@x<7Y@x)Xwߑ~t#+1(%x]@R;j*YBK5]z]}ub4P|ޥr~$IO@;\OtQ:5,#߬at)_s?}*ཱྀJ\쒒f<)(cGylG/Y&{\PQ5m"ѽ4#YwM058^<W]u7ovⰂJ˙붓n*
lj(AE/eѯJ^Go7rE5_GқwM|!NiӼ=ۙj/U9?	AC5~b
y۹byw]Z*GG߾_aQ1KI._t;FBi֌پ8n`NKe%?p$X֔opuY.mmU<gEW`2Ш`'inW) _z ~?Xm"6ꝲm=3hРŪ'0g*wA-|;5|zy=i*Tж{ur7Ѹ.]!6%S&WTvq׾n1ʎ~ܦ^q`֬W4xY[o6~`mڗB<xڸMV mk%k/㴘&yx<#	"/L|$t(-ۭv0}'4!<#cpck4۵8 Lɳ/Vg}^FW̽|i""l=Co+aA@587tj\;!yxg!9ÑI~Cy!F<wjb^7X\:=.ÌTF`}O9/h8
ߗWp)e4=ê2o%1?rHZcxh>R<$	T39'>ZkG-xi{"_ >LH-Iѯu1d&c {0?!<dg)J*ƫk>otH_eYw㘮pg7f='.wG|8n=v\)o#Q"mYwR΍R3m׾ǎ{a;Ӂ3%Jj obLխJJ5%d2R*}4Aɧd,bʟemG+Wj7$pnȲ@aB)KJ{P3Y!Otr3.4^GKq0dv"S70H|Twi޳<$3lлKRn$F;=Ջ=Q8d57hB$Z(ftT##"*2;}`O]^b5hH	T4aTtayRLF@L44$S:hG:)meH =ʍe"h
ˋ}p0Č0HiTөQ".(Oge~ϑ*23fڢy&]'͋xƍ Yp<L=TGkzY%`pbN/ʞ8^ٮ0bc֑e4h3/OmƞLGcSAU7V{:TKsw5AK_
̃<{mrNR=փ9Ôg3zReP9BU6w0|NԸ1[$R1	.d%fh|z"`F*,]5JWDE0@掦3}rF!	5Dȹԝ`jדF]t&g*8^аٯK}OImhA"`q@ŕ#Pr1]%(
?A1{ <`
(}{Y[Ib78f@sv/	L-(NNkü(r@ |0ѯjC(HO"SH1E@0Yݭa`;q,1^'1ST gC盿aM	hՁ7`yPyJУ/#yLxUP Rr掠z[RGl{rx~
@0\N3Uݍ6NkhȲ0٨YX!D"YMze]kN|!c8U]zE+?Qߔ:%V1I)l o6XqOBLSᩞtͺvh]uM!^b}6ҏq.T<דs N	 _snhmQqhK@Z{Y*H_}RVbx.em)[W,b^^%0{87_0|<	rS.駗'ԉ}يm&ҦN\ljSlMPߣtja `DxWMoF=Gb^ɉ舭D
$'"WҦ$]YReG*v9͛Yƪ=hYMDc=
$ewBSJAj*m.Gt?Z]KcjHXhƊңԆ]#yVhld
`cQ{k8ƨB怤R]Y	C gtօ*E^l (ݩΒLhQZqc3HzTRn)\~mySJӫ}h	])MFTH$~l8PZsw>M	rm: pn|.'QXڨR,8JYJNͼ
1_p(=.JXHc-EP<f&Ƣ%$*>OP44n$0E'3nl/3EG7Gw{M<
X$A2TP8_ a4-'ay7]-R<HS,<	t\~OhLqQ$̃(D`b
>bMԟ\@4Y]~f4g ׳3?ƚsCc %rx;Vq3,CIWކi)ssX]8Q	LGF.e\Uz-j%f`\~2'v!&f4.Gru:5Ӈ
-0+	3sܬն3Xm0d
kEnksĸ$a<aF݁Ѣƕg_H#1@*8KU{a7DAER#*M^˂,ƭXp
50God>}v*JWpcpevֶ+#^u?QT~7}{}2Ցl_Ӎ.
o.;^MٗIk1"ޟhzB+g\z~?J'F_5]&AnVlaW^i÷R#~zm3zmom|sm<+Y҅uj^zg̲_Zo&ᇧ`kOc2B=\F70;At0^fߢ=1 k2Xx=ms8+lVN7:g6M2v^Q,:Q#KZQr? HJ{7s3M  BwA4sA{Dynb)O4;|~_I:5?Xdt<C(i5:{ԕgsCm@f>1%AǷw<flwT&aESnlI6 ronO),sv-i)mLHLHx2:;e?ϫ`g|8v'# xǶ?&!g J(oFG	bݧ76pEM9¾lpe4"n5 ,w^x@>.R$-4<LNߧh5n:`'eV_A7C,n=}g8iB^s/&0SƞC/fI<BZMH̖tyek3Z℧nS.h`C#e?e<R3OC/P8)P
9j,v6XǏ\74)6^{6i	jyxuuDKbv#[,γnpZrOxcqwsXʬZs3{Sk3fq:erJ{f	L ɆR4,=Oc,fMSnw,NXqoJyuT&ԦDdgx{>OUi:#^xcrO+$		}3_ȗ~.Yyjg!tЉia8)v!톿7ծ٨ a&¯*PxaAYvyr_GFz [$S&$bX$أ>y`J>Nc\l}I<a?aWyy+q\ts6i(>Oӗ :b`"`#)zfw{'cweI[(1S a<a!ranPx Cs]!ܴ!4qGQ,ʮ>;`{]%'V
J"wArЁB2kf]x0 	b0RhQ5D>3'c]_NNY#F2p0A ;D.x[ 9J
ܴ긂|uC~|tO'Y)An[Dg
Mf6 @:5O8]trWӶ=W9һ/~9Je(*lOPTL9!Q*>@ܜCӄ&8یV;r4٠Yy4_.fh+i]sXx4"+zi421]uSW^`ߣ rps|Z;z+X{RGJ62
>S{,hcX}L9Zi`ޫP"Ԅ\yF)o_El5V:Ȣȩ(<CBLMA<<`n:ګKǸ.U"حTYCnUYANt9<0pe]Cd$<q
_YU,=N8ů[[w20ؠϾ6v^+`^7J^74^\FuZA<3o__,OcftN:Kpshp[elGM9^f^ i DnZflL8EesX̥׬*y4Pp!M5SxdoEgmbgq軨IQA9T`X:bF-]*;e<E/)L#Py"7
	N>P)jеԚcٓj@7|챣%*Ꭲf+JގSVqӇaRf2WaȸZ)SГ/w2HfF37=G$h3g>r
e&޽EW}~u_Yun^T[uvAW;`.~f(mt-K(ޞ~ag_OK({}oh0 ~xu7;ax(9clO%gB&tOƾx}<5Ɯ:v#rY [&rl{Hm}+UvQqLyӵs:]~Hy@5ﳎ?2QTWMmzˤ9t<7?v1|T20XNv#l<#Zd 2Uk4j౜x>G7ǈdH6_Ilțkͩ1N E0Tp//b˃929Ɨ5&lr5c o*n}5
Mn1|+4,9:]M#~e7~<'5w-,ɶ0w*gh_y%I(CT5\Up}%,c 5DE4,N-mgN*_nǉa50R<1n<hi	[2:!B(43<UCERd}:~܅1z\įgY&⤜*gr\;A`a?@PtBy4sw*ܢa)!p)x
v:m'+*<#S2(UCa,-炬(J.Z6d9Aw⻰yaΞZ$8zkY|ȏܑjDnwΖI$#jVb$g}EUfğrDN-HTkAXfŢo̩%l-}qĬĐ$ꢗu;Ȭ~1W:H+x%)hkj8
g/jzC<{/L(8SPM1`(ŢwYc7"o51G#.)W[@`=)k0SHD~*1?5cy1}jۺ!^^G5_PA*N.ƣWe{PqWe6	hc$$%GNI&ipAT)@9H\t06B
/IF8~XΝɱ{<|yÅ(ck┛rɍ6&Qm%7v_~>rr&ZAl{3:=nrl5^2P: AQq³~^:4ru"^=C{ZAFՒ<TV?8<5ke1[3Z83PDbA804|N.[)S^,NezU!"9ہe *	B,}Ff񍔊TV=qn3Wr2s?})g7CJ̨(A*ylW6ӒU`I	#,UQ6_UIj$'Q#ty)DlOhBݲ;I.P^YA5cYVYCCq@mE¹_AUXUt?4U`[	`J֗V;WHhOhF/Nv4J5,P*4|{j4NhE#=ɇ{x|<dxx6Mx}[ip560UU@Eu[W2a(
J ysFDd[AM-CW`~_㬙&#'j86Rк}Xd5d5d~k<kcMۛ=3	#w̓pFvEk6.hWZ" 3AEO)ݤ_$pZ#F$|W 5Ӛğ#$L"=[ 0K]78:%%ZnW\MFl4ٱ*+4*pydnĺ6ecz#1hs,Kc^\i&#3V݃W<3};R
ñУDڛ%H1ppEL-5JU!jDZ*K>p1\Yo'8F<eV*)"	hC 1@zHIٟ2=	u7%"QKkw!B6{&TU[<%sP"voRE/9ZSfg4!vSV"K@x:Om=!oIfA-,ֻ##Oc^qcH`]Riדp{,dR8:h qJيмjy!	5HyPE>}=z/61e]U?϶lP]`ҾTxe{v:&ug?hu҇%+U7[amegM،5F/ ߣk}"=#5Ʌr,_b~oΗ&@3M z!)b,Hͻ$Ms{_q 7 l}Hɋ鵹UlrqKopsrwFS(]bY庳Vo xyb9wg,VD77l+Tmu[%A\\ DaiTK~c٨HSA82wޘ.@)JPQTMvVW`(d)/<..:-Г8L8I-Fb2u蚥g5YW yq|*YȰ3V/RUqe]Y5u{g~bWt.Lgp|jNkϒ0\"$&Êz.q,\(5Us+^AjX[N٘	L$
5`Y߈zu4
bJp&-ԧe%x>bA59 v5Fu[Ʈu.{[`1Ҝ8	@<5f~^k-Q{0,̮8VM"U7)P|~ӳY{OgeNk ?SnUi#U97o c$pl3i{`ih;NnvS֜a@'uشf72'-A9ꛂWuz$ݻNSC
qlnQ!s7
'M A&._<D4ԌS!ޠjJ0E#ˌ|Ip_
S/񶷐Sߍ9	&n7AGn ab!D}J$/$mQrj!I᭸wGB~,hW'hJ^'{sIQWn.JJBS
ډ<~j%ߐ#z#Q>li5cCٌ]D]SC|,n>DmYѥQV6*B^v᫡{z<<<l>ިce ~t-k~@IfBzqtyHoϋ|6#*l@[߄V*]e9xpaI^ tkt4ᖧ$bdkփiv	59-Az1BIѦ)W,M00Et']@kfK^묶D^rrb^]}ON(nć IrRNѓgNRhT=:v,437Ki
 mhf6vA}=JqE+He`"8wȣ[/HWR!@cPQ3O&%!`g/G'T(Ejӛ\KJҪ.B>+1ae"㳣	[cH1d^䮜
cGf(ob-͓1]+g%vKLZI>AF*j>j)Չd \84 (Bwtrt:j$dQ@:(7梕CPW8T6%;ʻk`_`/&.+*!i;$x}jmuW+pk5
ta4-OWՈ"쾩ykbKD׃oؖAq*Kpk6_֞a֛o	6]*uq;jj֬w$@WM_MwrrCK3xP+KU%EF׋c`=8'!0Yz}8qÓdt&_%ަaǕ:(Bn]ToNQU_z&^O^FKW)V=;B
XVxT]o0}JD]Ru/ELi1jldlmVFs|EiPP!!\23
\ճ#$veB}[.<RXB{sHެEInl0/GIjmJ2~^N2˕(:JW71\Vi^U]אxcsd.e-Z`5KpNa界8yY1*}@fS@^ܒ^>}n!ֹ
+Քi3YG}ypt`a;*Qur'I}~}	TW~ŦB⯑?AVNEݷ DZc|ƝI̿D%"\PQ%ֆ&A0օmr##iR=܅=)^NA=}
q#KN<H]R\	:??'4cxY[o6~\M=Jf s[.[@`$*I9^$Sl˹4H'qT'ɬ5	H@8g\h"	Op\&cSIYR&dʸ,
RI}jY$Ip]:^	wXފ03[%]F]%xBLTdTPMfdByT\̋K7rxS-} ֹt$TpvpK/2WQٴ`'Xea霅8v!aY_rxtWlĩ$:s/
KTݱiE^ B0{~v|W";)i#б!j@4ӛP=+R!#:'41QSc~iCu>v;?usk4Oښǩ2<}6uƟn['n{50~E>oD([díFA/xd*zTNEc.2-g@bA
{&'ԁZIk#n=0<Yݿ{Lyf\*MiUamf%?l\j
iN3&} |ox!SN!õsEJlC4z5UDi:D,+Xyd%bMC(NX6U*˞H0:TG"hiVncXe	h;r9P܈/SB`cDiMx0My_4g;bd^~=`$(Ϫ*`>rhƿ`! ʂŊ*N%iP*kb͚yWn&1^s y>(b6V\;ZZG5(KZ,o3۝w',t~meJkSڝM5Wyݧ#Et(ϥS,N6h0EL^UeI:v^1(2cƑ30wܻ27.b˰$WLWꙍg,!ybO7{}]+5XkbwIBƲ;6lib? YR>MWT^B%1xK71seV4-+?fA I*HenK\]v՚6w(9(cyYF~7ej+_mUF4lPRC_zsG8޶sUFe|fOJʚ	EYX#C]b[dV\9&Ll>(%lr5g7}ǺZ\\ޜw 8trzr}yrMoh?wxZms6_(3*ڲswrNjŲ+t!(Gm߻_DI~ig"]<`A50)i"wB	8>uW4ƹF"V	sxͩ)%Fh${bNW^)Kf3kH)6%S_x'aHZK;W܂+L-,S'd&⹧T3LvR|2	 Inq?: aH'SczSdx m^<m 6#Z"ggH	bŎz:̟r	u%->b1UI{P
Ar0̥z.8'owd?YK͂2,\zt'=׌tր%KȻKՓo뱊NN=IC)}`,㮶}Uo. FB!CJ<L;4yBwx{6$;]gIwR	d6mVx
ԌAEk98Ckrf36:H!t9<ߨ9]Y5;m4_4/t`kթ@W{u=벝(&ڜs]dHZe^eڱwOI*g ~+D ^y|i=MZ='0!2:!1`͏vF|`jd	hfDG&-
'~qZƓL\YM]Lϧr5Q)KB-`FX=څ!ߚuHxa*ksyEfLBMYb3K~mGDK дO6 qb@)B ?~MXL}@4QFd6WeS;EF&nCw4o{tʚKy>V XK5QsJm˞:w`WkyNOvEI.$2{snr*PPUyz&?	O ;c!<}l8_/nc8)3J rK$u܂6Dn3{v>u`&o@!}APŠ-+[]egfI2}{4\kG~D7~=|WI+dU2;R䫢\{ky?[2NC'xG*d^|o˿\l3aMWφ4q_U^KLƝ3Xz6c\aDo1&]\l~H=}OM1ʻN[i]SR6}DxOU}Fo㪞5X)y.|3>%1,?bH);0jU"a/__m
?f	|vcs`:-r`8%bQ[t*$i׌n8ޥk+yP<lL~#NkK2 @;C6*B>a8vPeh1_p"q<rղ+[FSCv7ZIӺ;^i[XE];|)0i0<b"q[f>xKI!*JIT=>Tv􊎈)?^|9{a'Pp{Q0
ۮ4㻲4 p(h&lqݜ=-Qڞ)4^]/"fk}64} I@!D9}G$b팄\4}Kp~EK#(qj7Ʋ`7tQ¹+_+\ԙ~xxttQXWQfϠCUAJ.TL@	| wXOil̱]C8uT]n>@ڲH=c0M%`^>&)	0fJZi@4z[T.(%UEbYu>	Ր={Ֆ{w!JusxeFqF5FW;/W+M44BxVQsF~_S#QAX Bܩ;CZqRN`&6q Rػv=&2)^\G?EFFq!q)l\F A}ۃ2NYIAf̜Հw9fI6`2XrLkдILEG!pXIDE&z~]jiC
?B!4&
'!g\hi%(`fbħB*_'	H%=״E@fZ=S(u[VcANϳ"M+6.r~A''L;%>7 ton<xܸRtvz֎_l7FP"9(?=;;Oxd}</6.ROD*F¤x,$vmK؍&Z-	V+}=V+KM*U#),ZhX@H)Kd4Y*Erg+$=,WӋW>hW<m,yp!5	ä0\cR>T]zL}LĔ1!SKAF_Qk|fXjn	=riLA\g.IUJ`v@Tuﳍ+T$t,x?@2IE!`
:݁6~h"_L]g|AίRP𓾕d'P*6&y%}mTyաR^ѳfċ-t:pmjQ p]ciot Q_1PK$Raa+~Vq3<	SEz dSM= ]e_?X5_{x</sxļYH%~Eh-yx3%48H)כJfNݯ>A*`d{[y#n=KwrãtH͙:ZotqXe~㿞	ÙKesWۿkĦ6PSDS?whA5YB2868Uj.43v^Mt41$1!={q,u9ڌ6sp/ahJSf@/,j,*jX:گ۵c|b6J>j`SkfKp/ZySPHB3?ڨܒZ	HNkǗ;Mks(@``I1MH4PF
/`#UUpRn*N$Ǩ.gX$!\MMk>:SN^X4-FsZk)E rZC;	Kc=O"6s̯jj̭j$^Xa-$Z{ͱ4SfhVƻs)yXN.^%r̫Llq0_2]T:Xy(;fl,UD4/Ps-B£|*31ݰV(dwiX<({=^@^j_q^)py1Eu}/)2ĳFGh?:ˠ 2_Pal;7(GQ Sԅ͉#!@θ(揷*2F989δԸa˶V`ai* yHw
p6.03l&4h~kt]MkfzHWBu&t|] ǼfN~tCܘ_+sd,iC{UƶzO\YlAHYB,ZW2pNNʃAƄ}2󁸛G	עFch휍Kn4gaVqkGgzy|/\%+V#? ?xݧ9N=Y[>?  !9daΆ R0R`f]=2
$ww;?>Cx,uQGS8]&kڢMʐ	CqɝMF%Qn>:K$WW{y|KEz]823n{<mQz>l*>1] 5MTbUcX_ osV/}s)ˁ-G$ i,\=cžSeO#Tp@c<\Ƀ{'TʹygxSFcεD^b}u>_\n~ vq66 wM<qIөov1,X
+-:_댖_5ɕP}0>D%.y r1jB<Eތ}̞bEz"OXύL}C&L*un;TM$(B0VR3XY&pPиO_kXoY+ҩÏ	A[Y㯗1Px:ȃDֵ}{zU+b1N9vi4726՟IV@6,va;w*ҥf"{P9=CDZ yrk&5(?A,워.ٙ6*=n@8>77hy*QVڭ-d>;~tbqFvIaYMtqV4%K3豐M>#}t4D $OpF4:KX2`+0űۢ}qXp|S9&*T	 Qx/Կ	r<%79yggg¡<\_-1M#5Ac˼f>Q4OLuY(#X*Pi:U෌(,2H&,ޒ\f%ލn<&57]y:jv¬q6osM޷7y?}*TNQOw^4c\
"˦Y;9ڧwv|i4S[8lMY"Q_avD8tNnMsmiF#>kt`n&5i}m*N=ΰU%1gWI<rmhrC}AmTwׄ38?}M]w#c>KѸ- s/tsUXyQ6
Sg2	ZGg[YVRS5)TD==9妡Mʂjyt A2l.yn,n=3.ɕ.3Bn=G򰎑-{Vk`]z~,	|P,z;)kS{YCj|pZ}}u	~IElVv+.ByͪxT.T;:RT[)-8.kM҆k'l$d9xU)w|IFoR;	\8cT	7zooFH3$ӡokԅ$!TdA0OsX-$D-Mf xU7`~fi|ևH0)0'_UY~J;?_ί0)4-?Sh
KPt-o5F++s =ʦn.2FSo{c`'xb4:RգZ"Ho+y H geIư!K#A8g	˂MfxL'[=FfN)O5*06|hq|SFBa*oeMewzNE7y{75iH#sXu_Q>1uqQv"7ۚW\^#_;fՎ[nEoGyrtf77iFt+O]Vi|kqmcLښ,T-7"2S|zY|fͳ߷/x}Л˝B)lvR7p^'z ;ηutѷyv?ɧ`*.mXwcQ#wu4ҒMx|QQ	;p8Dn0ǅZ0p="{ҨZ0nsx<I)AԆJɥYÑ,׳<xfO#3<8,Lm&]H㫜S@t3K@3D_@aRbIi1^VS?N ƅw9pgqǲɀ} ~u	%ux}A\a+G.vxDm	:zur<Fp,ݠz5_<َ!'TSZ*49xiY
6c*qXi/WB;2!|/ؑYD>mj6[o?fB8wP[%iuZQ˳,+d)'Dާ՞D2	4#Z4暭uw.)|%K[׀]z$yAzXKf2E-=qq3L[s]_](3d'224y!ָV=~_IH6g18Ï19gU%>D)D(~<i>gO_=!~YFpRKM	L	O"sn-0~F|^s cK?(MI61!iǗߋ!k>:m2wFFڤ`w.C?EJ]45[OgiO!
;-dNnK-K35)8 r>/Ձ춷ݒ0[^b.WgB_mH$>݊3>c,cʄ"g/S;W@vф~v&EP~V(ǎ7d=T^X|N}ؔJ_<xF	:Bq[x}R/kËp;ul{Jz=4J6wZ[
&ùXg,ADYry"$$LW'i;eGHaܩ{u/,oo B]k>::
vڭx*(Gglh6#
9![jTP)>F&,6.%h~"Zӕ)'60ENn­$CWH Vºx7Gd;S6"ҫƇ|tg%B(_xK,nh,IE!h	B3;s+*ޟmF?klE]AH8))L]o?+&v_"Tgu(O[iX˹YxTN`
NDʛ|	nDң3l,23aAn̯'8&"	3}ρeΛטM]&e@LLsQ@}xH~
F7\.!\A:c\s6Gc@,R( *JkCS6uJr	0B|.zc8 얽~Q3!b<;7J[z(~Q1Q6l?cQɟx;j~h=$RX\H۵MH_/yc쓕"ߒC/EE%YKM!I3.KnLK( X%^bwVwlMTDP`9"qFO"cRI4,\ZThI)o;įfq:g	_a|'.sdGg~kSP7sr~6 LZG&ELYOx<3aH㱇HOͮWsC#szUD1OoA@2kc}D|H2GyR3Idڄdt7/#w3s'>a̎ ge"7Iq%*ՂN)	0?f9j?N`#<ݨ-g^WمrCR%Mc3hHv\#1f08 i*-(ke`xg4`}Rx7hމVO,W[;Cw{R'R qQGċoJ6}ŋ#tvkM(_ ĒKnSZ]1)7 cՍe۟C&72rdH>:a$a+g)7BP[l>E9	N/ntpßbs4)#>ShdS3<YDkF7n8sx
9fWNb$pXI/t%}R?S5Z\мO'7ՖYcZsKJh{ݭH)BtswyZnCu#$ꢧ9? H֭hRD%Ssk4 ]*=0JnvyT3plO!g*$I9SzGUh
/؟Z^N-|Ƞʀ#LjgFx<ےB˘dTP̰v0	;RipN3B{F٠ng\MۑBZU[9Cmv
GO  Ԡ<*@3r1O)aϽ? }E-VynDҰ %Ay(_NR+8GC]0kY$	՗B(L	@HtdU䦓/:{DC%HSWhȩ-2*Eto80>t""pdV`V;Q]FK.6В$O4d4Ħ 5!?![Wd7ck0v|orP ڄa 3-:)z.-!7}q'F&vBv"oزkqgQs/enSŌ~"trJ>GAKX5%lӀO?%\V'5~Ԋ٥87{(&Z)R¤v6D2
o"YҢAPv0M:gZgT#l.§SnP~ѧ5eǶq!Q1זGw5h3~oS[-$Ԡ~A#\횗VrDg#398Z^x=z#6(i(w-k"Viǭ#;Gx8J>SgHKv(k/ts@0r0`pK>SEƽLHby4NaMcVYv'p;m@p)pl9]\R_ù!)TI5kBSHf{~\I
HtՇo獡#Ӓj]tqT'Β,oHqXCQItТ簤U~	k	w3E	ƽI_zIwc(Sh$/g9tE17^O ׁhb}F )KG5<+Gv&9m:Q%{DTH_R?"TW/۩8^w@_"5(ڔ	M#yC紵/LƶP;G~Z1x|<f[Em;X?Uc}8r1ȿ܆-Wy&}?xJYcZ81Κ9rRG~H0K+kSC@4AB5ق_2o}^;IbGRs]='UpX+]/OJ&gg.k,<Q[ֱ%!.yBl0b9PvBƧZCV	6z|t~0]VSԭh gu^1р艺9qAyJ؋hnp[q	QO{ZBZqi&xM5'1vFXM3-F2 c7lN?YPP|",*y?Ygf0]"[A0xzB,|W[S8;yy(hn&oހ![!xd#Dv~7NRP&a#lKkoXnr('C=7u/QM3]>_Y{'/j{y~H^\.TEzvG&עɊ)R>@asX$3-kKQ}Z~NL~V[?N`zPd.h)*<Iûa!ֆ od{,Q%K򴹢п^}O=ބ ޭ
G
eY%rgੱm9`ɢկv+}sz- B^FG=Ǥ6j(ͨH!`&۬6-dDYpai캕2H gPwrXeK!1C#tF}0i%.tJ(rϪ#8?(Ui04dؾv'\79a	t8Wރ]yݤ/٭@|1Ckq@s4u@?BCxe`3EKW̢Q2^68RʵS2a؍]^XG-HIѮ˸u-GfrVm{cy߰<i G_Q})߯&B!gn>HEo!Er/Ѿ%$dZF:{]]	}F)yErG`ްTɫ09J-3Qzc?)w.U~{/osᷙ_ΫCo
'o3GzGyj!x>;[QSQ;wBM,`QO	ڲ|Ķ읳Kg)7g:q;
SS?3Տc=;icLPSO,OS'
GfT&,D".[pC9B@	SZPw1Q$Vlon5LFhv] t$y<`_:EGg6GFh! pR`M8֣uFP<8Qʆyf#Ymsx3w	(.} )cH0l)ά+)vY 4Z4T1@.݌2('3Њ&7-,>fyHZpY -(_CSAFS4Kq/n/_ůG|ꭘU |rWXc?D*.Ƭ1zèc2A.>e{w>q=n&֑@>>St@o}Aʜ{14ZnUl(qzkwkP
:$g@7sJȋؔ8c=ԎH4T7wsn~oX0@Li.Ȼ5=BUđ?rƆϰ\/rYε(s#0/nn=0eS5LRo6E~1RҮlaՐ+EHqQW)z`j%־)&bGP]ؒqSnʱ)juv6ĈI&0	=Y&w+s,Bśh涏gxu{=w Kg3P0 [ԯеuYP]ߒZ?ju:h7bsQt&-:-fZ#f?l_u WingBDn
|^EkV
R,nnaQ?:Nxz>sڀ+B3'A34g1JfEtH>)2e(ɣ|(xK/lY҂C+Xc9` Wi|T*gHdzeqV2u(6JWB|kbU `tn1HDƀ0uCB(9膰1Egz[w%Lq("m0b˦Pi!-)(۳D[SGθ҉K/_;	.U6~ޚܸ+~[$֋uudW$_<p<Piy?cZ+ikҨY}wT+yXY%pU"QA#%Ũ.̤\jt)(n׳!d=}\pM]ϊP6xn.tL΀/˪2IpWq		~8v[6'HKcAm%ZAFЭȢX
%Z13vv{E%?$*D	V v'n]FPj2|!-gpv_]IEfS\4;3Tɰ/874?<7;}CJeK<ofLƸ~xM6i1)ne֤3}ٿro÷_!q`HڰW-f@3^s5M~w?!}}X_m^I!@f8fߝƿg Rz@6V'ZZ&k@9+HɹfD7Bdq9u{Ȁ*JpH<WfV@mOZK݊hNil"!hKC6x%vsD|rb@v'Bq3\*Xy[1X1m@8n7VHA.#|N@3#̓Hl=Q2wgyU.]́=-=v>H8f
3
H6hB˳u0P9vk9&Van%eG+C>ewbM?%bB~GGה;Կ[ru}0#V,cYP^zEHȍ1]7/}TD6kYfXťl,JjzO-A'߯u-9U(HŎlT6<x9MCrMQc.`w23T!u5! ^U.qDM$`79cꈫ*~:-2mjbL>攲޵b%;I7F4Q5RӓMܐmMW6
&э,2e4J|+lм$ʶʙEo#75`˼|琥H?ԋErQ3vE=r®FCa{פq]RsGٻfRL\34op?s.c1Ho_|\O(S;?oI[ x|#<{Kz(TዜƖRi1Z+Qe%(׮{*N++'ݐ %ϨGΎ>;#[sf+B:bBܴI	xJk2P怄z"n]r>vl/eVB.fvvY7:șrv,tU哃˾D$a=7ڜGfW36ΘaKqO
vE&TxSfRVռ&'xUH	؍}*ܒu9v|R'⢯	׍z6ɤ,N
.MCE~9𞜀8y׽}-5\"D.|M&J848ra[b$+ϱX7<iu YF^؀fIVFSkvMebC'$btoCШyݶxӔ͜e	7q6\KO,[86kϝ܂: =!v&Gpl
$V⭣*S*.-ڟibcιӌ9EJv_Zoyb+|}:B[]_h-;y?VǪ^5<ܱݻ~7>~X_Ke_<'	I_1/j.8_mw`pk4x^fըr+v)jEᲲԴXB8y8Ϸ͞^S19?#2v
M.t'gn3}C8T=u>}1G13Ŝϔ{Ӂh@A΀;|rZ
q+S{fW$Ǵ>]料i)i5'o6W|lPi䩇Wn~̹L%zuxBcdU`6.YSAn3qpfJ~Mi"QCwcVPHuqTt~[kDz{Ii_rHkڷ!_Kjgnv3=S_<6-$9DaY6h_3tuQ*rL@^+v'!mJW7iJ>ht&Eq2
vZ"=L!q6\aI'
#qNPCA`\X\ ֔x?=g޴{HO˙~Ҹ.WBҭbf3qR2vZ^}\CύSXA{_ۙx%r۩2}IYz_|+);5%mšEn3}evf~Ŀ;æoGup#.}_q#ջgwИo%8Lxt|_=3W5Կ'QG|C&@cKnÚn#O}ͼ^jV$Jsz`ò]	(q@ϩһuΩ_Vĥ.5hIGh+-dFSk^LAYڽNI=kr:'X3H$> P<q)ER6Aџ7LmY_V"H}`O锅.6ڣ/91eI<!C;RS;itg9Yzn|OQD,t3^?S ;-P͞Tz6$IV!3TZ@#*ȇ,ob,97Di״B.푝9Ѕ4Ye#&iHAC'Y]n:*߷URicǅ8XE^kkfP[D$`y5JY5+V\%l%i*e-?2ྺg*V%܃o!9^&Lk3%/Z	򯷇7/]=egNZ\ޱdճtM*/q^нC}+o2N]A>-;[H?U;-'`6:@=.w}iZenx>-4VP/ת?`{xo%FoWiq2ǋiD>i&D~D$.YGu_38d?oX|^rEZ>E}Yrut&pl_4#`g7Qq(2DR'ٔMVuqCUܰ$@]AZQb(rt>8FbA2󋛓{yS9zJVղ)bPyd;C`Sa:=3]rrөSةZM9ms縆GI/kРInJ|<K3kS}Ǚ+/WO}>,YI:f>͌餱<g/#rYr=ܝ
^вh'VRw jOSl,=(^Ewn'7rȕK9,{//rY0AI{G}2gI{UQg	M	:Z҆2=𣗉5<zQ`t[PAR1qF'b^.Z\"b"q:ADg_\
P
v3h}9};b`5Qboua6!ەʄ0N\[Uۣe?Ѱr)Λ3R"F:jv0_G[$y/DGLިȬJ% d\Z4uF֒-|s>Nԋnk؜=]|KOOC^/ A.Z*bus<W 3R͇ޗ&(B/v^Vv#B]#G
.70 і1ƍ7Ɓ6B#R<B}nr;Y)i|yNVxbO6IvzY:F:s@rL)2ynK|H0]WvǕ*ĘЧ\"Y#gy]ʦ_:pBx_lRS%3"= g|	"*~h N*C$ȍvQ/.֣zS6ݗyGvg}üK\v1*/$k2=9>2kCKIR.3TfD;ׄFЛrnj}ޕNxx>/4[qUOXJ"j./03uFCbǬEV/-. (v}P	o?#V|l,طݵpR*ȏOp,
~b>sVSj66hj^!{@_όu#-A[Ŷ΅x3B?Ggj辞. :V8Gfb˒%r;z,UC.'6!q#t3܄=L3$3sBZE|^3$0{LSmf^1Ia[xU96,z%l([U65ͭ=TKvz&&t&-PG(,2Yx{G[+*Ux#^ l/nՁzU(QڝQ;"#wCc1[ZAlM=:wMIIh}+|-APѕU {f5ONHzD#HEPu4H=fQnl@4{nVSpRVV);U8[`mp5ۊS# 3~ؓFOfa䬴Pq /9	_(dv
k4mO: `2L"3]Ȩ!d!]EKڰia/wJEyռqCh.]ࣅ$M'_cPrY>Q91Wх; ͫ/w?{$?o@	'؛;2%e	 @E]G 1A5ԥGVq;+p=7y|Tx"'b|6~ڿh`8zvv_f>ªY9-y?؄)ÝIܭWёtRCKj5QWn	XߑbA/y\VN3G2hO_f4Feg̼gb0$CՑBPvࣞL'n1=Q?U{^헅eI )k
C.\tOjO-1:K-3|r0zzG:n}b*T]K.lsX59Mq98KĮM6R'j !D㼰';OdΪj3%>*ϑU&B̢z]}U)'t(ބ@t
NJ>4G4ʢuC:cReB82+GؓAcGD!حz%m1kP]׏hz'2@*=ӽ>:Dَ"Xrkv#1D}AsH~ޥ J8l>oIb/ٍ9EQ?.~Gג*w.w?uGκ6<W\HX|lX`Ojt.]`1tcÉst0ve5gMO-
W*q/swrLFG\jyI.BŘ4Ŝc&	;$6!hgbju!]`#ϱ!~那1n	W~
S%s:;<!FvwNq"Fm8(]syGW2#n8%@ƌ4ؗS:J\eG	9`
nY*qcQd]u&<ץ3#KsՋNqs楧i,$uVuh:W||cipї!4֡19J[@tgFvOnf[_ G0T|'qM;މE#3BM9"t@LΗ{7c9µ@ԝeA%,F1rGc#wh.eM#HItv6ZHԦY'Q)L{Gx5]ǥ~#lLLj[v9V%M̡
 ks>GVf}-zsLExKsGt%}Ҁ?;͕pܓ-\T3x>o'|b}oJSS=}17SMޣSwV
NjU+KnKLJ޲?j˟l\_.rN-\*TMy=91v_$Ϲq.~]릤KJ/cq1̖B76rdOf'Tj=+>grO**ܨ=;P<MFdThTrDb,N!"ř%;Y>5v~FGIRn;VXHyvWGj?;hN4G`hW^=Yr.+-l`7iiཙtE<%8 ZS\:{'0g~rK
,i! Fqr.eZ0i)=z<LGYJ:8Q[H'"r߉Rde9Fb#?mx4UUzX,GCkE=^^Op R^Ǣ;tˎU(Tү:57h2=|ض
OQCѝWAp;3ixQQ7wVS¡AŊgByʄ|LG0͢% 'O9taIr)gV Zx'fDUkr9V襃}}sځӆ076%7kTYx2
Ɗ󷐟n~&aw0Ha1__Vg}?粡b%QRWʗf8c~H]2<Fz&$#O)3_d󙅥- /L_KOAu<.RQŎ!L@5'lRHە&qs(X$s̲˖Ti1b\7,
29P
y^xn'"ʋh!5[WK	䄚c@;M)t4IIE:t`&("eiʘBu/=j(_C\ҨԇN:Ce
y7Ez@7n{m>HTwlJ`ځ0W\8b|n.E`Q#P_K
aNט0
䪮N^:wGd;@G2'F3Fy1o:×!GxIB4~r\I}B4<F.xf,>'}%R駍C'Ө\^TC$%R1DIj &G&^Q׌vd5Ү̆(xd\%A8Y5.tx8^l( Պvĥkk&b	\zul%⁲q6'L[$؜kjN#fHz`fa[XCwFl<j^
˃iw!xԝV+kn_f[o72USh]2|s*Fl%Ͷc7?u@[;#wBi3Bd|w@`|Wqn//k7Z27޻K[ᑟ52Z[~wPo.O8]N<j܅H4KNikۼEHزbUxe9氮X{%vDLv}QOB6R3'fM)j<wBܲo(zV_ڑ*h֜ҙ{6c	qAޭ'HPEڛ	RÒYx4k!d`˓ o]
tu14yBO5jD>Hs%IG=##m}g* k:U zP<o/zXGYOgCr6PmъyKE>Deokޏ_r~59Xߏrj^`ڧhݞDnvM߿'`´!ޥ k"a)Hnc}BqA"v7bB	ɸ|剾twILi+aM#wnMڄL#vOf{KS߷yٳۅM-r/O
{70Khq6+n<U11"=@}y*b\-?7AP^c΃O YOױuv*۟OCQ)oF}dzm\RC+e/TM?7̭S6&ǕxB	;`u@'d,oK~b~R?	eRfv/C|[܍PfB<ݧaڬw4ؗ{]j Bm I0X['z$d3@+'pTDqé\is9Ta4yē&YX_ ϭ`DG$k_l1X?aY_NmEJe&
f%L%!s8(o']zn6#x꣬tgMVKO l\fmIGrVO "4C_X#൩ޟA/F k?|w2kXό̴K-N(c䈊	v8共/F}#|@u+Η\Osq/=#F%8zF ^.Qͬ>[	@M:˱%aϻԘ^=R҇u/=	VNsnY㗇8$flHBo@6CjfHSEcPɸMU7zM@U=|V`BUp%72ܵӣb#ta"wV]xW
|xm( H/3\I碸ڌWft/)!5A`yVD!@G8dU9l`pYA-b[h-ae	h}/'ݪeSƯaE.$3ħ f_rC[[_N߭,+kۗY4g]WgwbX$۝rR6<?yq	z|;@7<N- Zٵ2S1^݄nTįp)L~/rެ6&J Jn-B{U+.2XVF]A1:Ȼ9١e'm2#.z_I
^@KfPAZ5a5^^TH=7('5#⧳&I ^'y1U̔譔I"Yݕ2>s4L%?%tӽ(ץ?Nd6;4]<oQ=vm~K~mgc}y~Pu93HtÎ> 飼Gp?	^sPЕ¿txwٔw#uXiG3P~̷TRs&Ǖ1$=R*L}<CJg?M[KпB/Vz=lRufH9Kꇔ<WŦq6")E"+DPjs/?VSEGem&gF0S/>Ug4srysW6ɗpdP3B8T*1=NRm*S'~iyXv;\Dtz=wp2P?[QpNe̱nt^.	5^)+=ӮJ "CҔ2M*{{ٵ<S8kW&D^^g''<.K])~dnsj>9yO[do+E4D_2	&h+a`	39/	Jv)+^:u{;'#?v3z3[|Y4y `˻~Tz$Ny3&GâWEnMl캠s[4;&)sqo#gHK|(EdG*U=_[~L]gIQ'x8ҍLoAxX:ipFv1%9r8U@ =J@ߜo`	)^y"?M6sQfs~ԾpZkҹmo^]P\DqBNQ<x%ix6o8⺯WvVd:;|&ϱS$$snTO.=i>lcbޕK8Er
@
t+r\Ԍǰ/L@Ϙ2/iQ:w1fz'H[䧋?Q"(O=(2V7n4Y(D+5:
/YVK'IUE#8N["/65Bf [Ġky sJeds]
K4R964,[@(Od(e%r<'^ s\ZAmGBF;38>./yL-ACM>nܴsּć߹GKSȶ,PWWQ<VibYZ6D~,р'U
`?vb
/CUR)Icن~O_Qi׷[谰h pf&Ѭl,gjcw#GWOuh Ow N) Sa\9Pnt*"sZ#aF
NtZ'4IyOwӶ
ŧ{Yj}pt/
&	9C1b~`]Mq؈=x\hxs4W<;}}h(GBZzo
tCLDK]%S,aO=ugh@ȶWc
KӍC^gx:.mb+T23]3M'pB~]M+n|}E</y/Mٕ\CeTݡNҔ!'N@Rq{4xЌՒ#u?(^;uԭ`ѹh 0@1kyr_M`J/1.v WhQTr'0rzpa8[NldPX q˽Elr;uF*$
b*G/I: [XlzMUp0^ᴠ>@B4E2?.f٠fVycT9CtU'wL٬6s|M|+-`?MJmTfvx?߯ϫoط%Ipc~]ԼDk~I/
Kl|Ǧd]PdAY&2JgFcxPeSz3WP;F_dGD8V|$&~UH?:\=/OYWu˞UZXwXA/&kFv*>Ο@;%~̫wlJF!ݺ@gṋA_4rrQ,bԑ~x!]|x}f)N`BҞ[}BI!RhXtZE;U	[zm
A):ZNP$>#uXx '%Og>yhE

|"=㘫_[eH;}ލ9;sBy%! 8.ؒ=x{Y(xД
@pO/8x\|7`c.	R<ۖX'=c.g쉫Yܯg* ZC]]C~H՟l2&h
lW N97!K{n#oc~zBegsHnZw<LABU3mmD_Jjo3ӟNe3d4!)JjKRքr'ϡg}vzKʑlOԵ$!v,*SJP`KFHv(}5g;,3بpfׁZw[ڢ3"5uSaKNƦdLUA(Ի-me7u:gfe@W[`9=8ؒRKJS{T,G*]v;I䬫?y`|d_Z;	ʿE(Q[Oci;:C١9;rݶmޙE9:KXU?^WmAc]XDmoVťADKҔ u nϝHݖA
]95^sE++dm,*y Vw=2J5e4>k,?]{bGCCTj{Tr?}wEOig%<y2<ɘŁz!xe-q+SORiK]uȞ^D.\.9^ aA@GsDloEi	}\Y6+3Y7IݰGWIT0BW52RԱق슉<q0A5K>%f¼UGx{s$xbZQo'wb@UdɘΝ|B:y~Y(=)g-Ha0θ@&9QX*30",]E2zܾC;Ơ)<sF7d\FT/3*5,FoRi,~q=XwhCԓi/"O6x8rO}o~G:,fΞnPH&ۯזcG;K_~._eBېBǟl-`xcV#<$/|@[Z"|,].xfy'XuҚ$=Ilm#Av'+Lt`uwvC}ft]x9>̩K8!qj<mSLB@uCm}9kwF9o;/9}]Uo]Mn
6eirVξ]@RY𗳙@;K]8*0SƵ^mW9|Mp|4r5CqK4L;0/"Lr!hKقT~Ocx:3tϹba*(0ENT_8d!mUүg+ScaXPn9N8><%>Nv'zyeac[܇M7³8 DQzH)2LB;NP/N5.d'O;]!a	ioG#OUNPC|/uG ^ssmNU9:5fӓ"֭synUiĹQ]Upy 
't	`%ҍTÂ?3hXU,A
k.8fDGԷC+?m77 q]=<('}6Tc{~=h16켋8Ծfh9|q˾t1;ZL*EE ,miw<VCد4G?ՏdVAY)ú>MZ8=UtQLwszKv~(lLڴ=O!)kj Aӈʙ|uB 9,Ks";l{jn;7s0F5*ڭD܈ni8ޓ9H)p[.l#;.;6.6=gܝc1]ש%_!ysv{i*YQLby=ÎyjX @yySohk_OߗXhI5LRhMJ͹Yߎzagم?uyķ)9;piБDz2g|YskXGáu6]k^K [['nzL홺(OmlGӾ2$FNY;?q<fpCF@n}~6Rg$KtwNC^+cls?YC5($fAf4KII6]ogO6+<&Xi5ALm G^vK#uǔ^
E ޯzk /^V@	dBwȱ*WOx|Yg?/4b5ԟ50!g\w3!o3!$)8EbeQ٢_#4`@#d:klSg8E>2'L\_G;|t~>V$,"X2Is?TS~g3]~`幊;!xt'2,`#9DKW#v>0'60*`	$(d-+÷Pb$2nLCZ.z+:P:]zZ@MO͖;ֲ̀oߩPZsK2uDViENa	u7auC+Z7:t(I
1CTuR)?[OFiM8Po{c(xԗ 3Hz<m!	-s}Z5]^Xhk6ˣo/I_6}_8J]%j5xb׷<o&)Dطۄ#m5VetFDZOu,(AAG#zOo5fK2"Ruoz/27/v.>֪|s>7qQ)\w#ۉ1c8LMOW(b~tQ,]-{	ia?^T>m;WnX.='L0\T|گ:yz7VuʥD	eh@
@X_v	-B4$W? W|죯odI(^` Y?t6ӌaӸol[;4ﾆZ5FSd?#^$ɀoShRoEiy7Q'AvLf߅3KY?i#*s쟂0%w#5ݤC4$t,:wnf#hPգNvqi~+B7}zk7\'^&I! !eVζp]nu9
ܾl݄l,YҤ&/ub%%'vs>="O$$\xR%@=ôeYVXLNlC!,c{VLV{QJ+rv
v]|V~脫 ;zͦ'yTާ'Y	Z!A}Bu*t,rK#ZuF,%NoIµy3	W=&qdhFHYNFL+'6/f˃@HR@k<Z苀	1~? q'D90 lx"I:W(0J)g>uL֪+.-Kެ';.28osRq*%ˠRm,񔝹iPDW{ryWuKl&[H<l'WM `;:<~'Y~t[Lxow.~eF%c05DλR(˾:/Kv<23vAC{B:EflmPiWe|IlFF?	t;+a&Ȝeɉ'w?nsr0HpW"_ڏ+q|D yen&s!ļC4B&t*dZ\;$JnN<ېᎹ=Ur|9- ૬
oԵ&43}!W_gYsۓ_[Y=iB+U<O@A)f!}9cyo/}F7V`&	%]iONGzb@T4njعVE~)p~*+TJ2fzrti+S*⒑>bТ"8$;8f)oSFX#3k0q/Kbv0W {	CK>Cf< }ލ%b),gfa\`Or7Objp~-RV9sf𙑗a I^0$#yXWkyM9yM2R|q~@]{&[IU85~n}T62vzIpv]N=/@m
7vD"F2}aoN@ՉrٰF4o9-iP ^\%Qw;v׳+KSI,APX{c{7HӱVE+4'
)Se.2%/2:zWmHJ1:[M ݗ\0G.g#F/asаĥNrJDGݮ#=PIQ$nTKՕʼW{^PQ n<οFIDvqy]{w,/a$?v^RاmJәz2
 d8\B
\8uHgcjYb+Nizag(̴Y;3 tC
`y[):P=y'82m(\,Պ
LSB*L~}qv{۹鑾ɦn`.h#fRGTxcBLؕȖĠKv[}	x!+YnS붢dvG<7{*dm{Jͼjv.ک?L}Bœv;FC@D0\<{ 7Snh_QycF:M8XD'k$eyϩHoc٧'i&홇d/KhO,ۃ+U:CA#F+rS'^/gph,I;AbLR!Cmwipa`GKP55N
"UdiQdQ_mxigFeE,&_v3Ka*;X2 %Җw$S޲E>z+Ǧ.ed!cvR<|gUJz;]&-=Lb@[Z؛Nl8kk	DׇD^C$nAzЉ0~"5;\~=JG;O9xڌow,7od5ܰ
FclA6dXm2I,(/3lܲ7G9Y h0ьS5@I:]yا2{J1>sL7u7`H{Tj4br<bK+
b#_:.@8)HJ2%d ;ѷ;)#܂FO:Ȇ>"]ZK^w>kH2SX4-V?D6y!ɶ%S sa%.PbI	sK*R'@b4wQ`GnrO3sIQ v5<8µ4JM 2\QvOQ<F_<]^z#9EUsV%ǟouB&fjSWvlf<s=h4]sEnP\軽\5G*9^IwxiiOi-<ShVkEqs?w{oEf_Y2?q"vݍ"J)Dp>AuƎ'cK-[݈Up*w{xQ&on~j͘K4inC6*w`ɿ%
[gF*Ym 1T(!`>i={t>?*w$/዗˩*|Dꌩ<ԼL&UZ5}ZO
.l9:MYsnT&G }N`!w~*}zNy8,͘:f4J;~HGbp'֐/ً.PT 9S90Q]!NΕ&YPk#^qA磿$[3b nj-L"z\)3g|+qHу`TuYRc1mBF4iQ`=Go)K?\t}@9IvV>C [,=&^hMJI8#²bP`'BG8W0wz3^GmR"Lk;9lG#}LP:^/ I^!P:Dț\)Z@{rBUZgmݻ4˙;t"f&QvK+$њ*غ]>XIZh@gsNc[OBtn~	ݡE@4;{fGk{+2䜣DA"jV~Su.\^fy	s'f^6ܻQ߂tg:6L&.Utס[(q3ϱ QIK	rF6~S;ްO=?/1o'cwEZ_ݻoǒD>&X߉@vǣYJF}槿v_˼=xऄD0B@tqrtLFpu-w"wP^6	zwL=-7!Ӧʋ|R-aш@wά~ڤawXGt?tuc,_n/P W3z׮mE'vZ|t,/z,{g
g >/pQ0jrn#g¼	ē'Kj)ua#/? |qѴ8mW{DhxoE7Җ Sw/l3?
E˜oF(M+D_Jqte+b⽧a6;")Wu*DOx-<?V-h3?ٵW1V	m"HbA7InW,_ċJoƠTAY36B)۷1WIF);Pz]ѷ6Uw2gU՞^'{RٙpTxs?3.lACw] Oy̔Gh!Q=;g{ΈĿ1	|7J_N;Jgl0~&lgIя}R#?e/;7\ӌzޥ",j`xcwPk!ocaTI,TJ |4t=9-̼l$`"9`3qa[_渞nԈx-HBAN%#>wO7*զn"zެy>&}Mb*sγ.\~N$u X8]u$EF할!g$ư-hL/Ӄhyz:QX%Z7^,w՟aһG<1۪KWfʖ5tEE+y	3}Wݑnmm,xME'ZM8>/铲bL0qq}Xfp]OQ/cuI"kxRw~5>eUw[-.f3ZndFl\jB25-Gw&{zo֩tAE$F?ǚw;k"bȷ ]_ 0/_^_[:IcT	ig*T3@eB"H٦vOD)T?u>*ƒNSW~Imi78Iw4[9/#_[j6yK Nj>3tDGgO:&Q>ޖ/K_bx[?n$Ɍt+UaP,YVs}=랰b+!qDY^ MMVOzOk N$:Yy]oCC|
xN[Oi؄W X j XJ4%O_EnRIܾ恡tn-6$FЋ* *{[C8'cnG<p%p>=\xaC'&\4ơ:e5V)|:`@	KR8h.2u3ߌ4<i]ms:_,cO)\V Z2C(:g!.BBYa@zWp5HQw,uY ʿ.'{9,HɎnL|8@ձ+9>ߗkQj;`ZVaGT):[(~e){5-3L $58h,Y8n-|Z5;TFu7S[T85e!.mԎk47kFPs%kr"%xāiիhUws{aK1,ܕ3k=`qwv߮_şVaq\M[91Fx7zG[5;3.:os8B-qe&Jd`¶^Mٓ\T6KMkb8w4Iw)
%^6ꄘO8&Z(DkqswlU rC
-)0IV	67	(yF =uy!ղu$b_+ii-_xx͊D 4{~,aNoE&)+gWn[4~@ ":KP'ܦB5,z)5gXFKSIxjvwN6CW <ܘXix/=P:97GI @'u#gBD(a'`"ӷy_uh-$9Tj7W-E9E&zm'OzXC{x4PRX*`ٳW62)r)㛵	f&<|a^ޟ$~`ĿA Lx.?QsюfH\&apL/7Q)79sX4/x?"탉?e_J[Ca^xRi&Zy헫q!n?^_fjAw2G]voW$zV{Tvn\čͺ9hd+J7p~s;мVWLVd*4i\ۥ-~>D@]g6x^iHX
edrƧwJlW;o x5Xd@)@~8]Nq{_^&*"4xHp*y-򷦽#\Y,{]0Mka;էb7hR~4amVL=޳Y$Wԫ3rY{_,($
({ez͈[1i}NZ#KJ8/1:Nn̗-V4NdU^]ނTTR8aļbJq|'JɄĎYA[#EOvr<Ǥ;.petEp0lۃMWO%MOG9P20oXMZP4_:e/ @^=صԦ:yz|7M- S`x;^Qb@,}n5[Li؋3H0jOQ($[J]R7D_N{i*kz'"3V)>?9&]@Qs"+0B^UEc|h
F'W:C0O±vW@m6u3,`Zr]Rw8 aWg/ϸMNr+E)>0'Y(Bu3|V8dѳPJ\0{Z<QB1L\G=&5c d}a}Nc{T !1_{֧fӕ|j;B|ss27/|멸<^7
P¥ki}>hvPw }qԧM7S4lX*^Ē)/
dbu;r_挟]_0ݓʬi]NFʮ-oLۓpAoU/WK,8]	s1/J75|B@1L5;fnϯlO䴩kaa-p_0M[%gNa>vGNgEZq/xxXjSh%q}DINoBH}%|z,[{6qqc*CǷہ.L-j#9gU\ݻŸww˒iZ=F~ŲJ}Eof,B&7ĊzC?#&q+sptݭ
طqq4/p͑8F䨄Lϻ<`$IɎ'OAOTp)&~31&ɢhI~jǁv|`LI燥9ԚWaOHOEqonH9'r7kNȧr+-sZVoEm~H)7vO6eS׵o`,WOC"?YC)XxNGBh",8jzHsn~o|8=˛y)7 saˌi*!IPMy~V
ls[_>eu
lu/Mfr%ps?xeA=	"z6&, Sw^v^YMCkoOwj+_RcC]uEwѽ"֔c]	Jɨ˄-Ȟ+0,k ^f7HP $*5G&gl5V+OU})Ý֍	쬳&>*^dކP0q=HVW+F0rI#%&;M6SN1\C%c;nY5<Ll[*]3WBp-WЃB `	̗XE)Xwk*X'n+CTۇ:"Zn^wi'µKzhB-uڤ~$Vҿ]v(,ivƑ]UTHd2W"_yscGsI8iw|vz`W_D7ClO GJ9V,>>wʟu*K"9|o2gxχt9}^pKcMgl.{$ɪO,߭s_>,y`OqvJ*5,/x6NsU:!	a*iUFbj}d٧o9!%ǗE`|gbq:AD 
]K~+WCӓ3fo/UdHEȳ28$-rÃ%rVW4fbiS]ЖiD"må܇qnŗJr7b0Q	}0B0+`%63/p[V'[H
S-`7H2e3kVav7cPMGWK2K/h1":,S1d8|čʱi^)Bekef%%+8fĺ+zb"!I@45gW/@'Ț&%(۔%gU1]gb^ͅ@`<Nj̑}wxN q- $+X!63x{~uOVBUo?ȭQChFluaYn44\14Tw=G~J/&6d<.ݞ;5Gdݰm$oP$dļ8ڍSזW¸NC7Xuc&kA0=k芍PYvKN~lV)=o˂.7|eXYy'hu୏HCm$m}fkOFtfK9y°'p bP%-īSxzj[e-$*	0k>l:z=IY^_Q{5ĜC|޽vqvӯn(.";HU?'R!c.2G,v}Z~y<[VJͰxk&
gLFQވI5&qxѭŁs:~	O]?EJ
WK1OG;No4scXyydiFF}!2(3Ȳ*'փ@7)\=GwC}T(m	W!;Z"0{|޽KMӲGJ/.RPd=ub@YZQ7̉}ǫGv/_!x{,Ԇ!;"x̫pժiw@Y%;=;l{-b^+\+wRFj!cq:?8.HU^w%Q׶+C_:釹LV(8[IrĔgә9a~=sؔ \7
]i֮MO:Hі? 
ݡMbIwexsgHL;I޶ox9h`tZzRt.	zZJtr\Y"sj+MU=[3y}ǿ+tjK/c.?}pf末,9Y_3,Z(6e.u8ܪqRtğ0Wk~Y/Q!>,	%tϱ8ؚևTR+Yx +7t|?~ӝ3?p)؞6Y	SqSEPBH6Sd	WLex,c!#޴J/o'Yr,'fg=aO7fSC=|3g;!zɛ^런gNIaP"x=-  fcu#ttrl([[FA[CBr`^]R*A8v emYȎJ:̩%Ix'izA͓{*>o"$UPlu,G̠ʎt,jpq}d&I!LSP|8
4ڡ֯c 7/?+J> l0:rgx,9m{Z,{MCt1~f8qTcLMQKgV~~E=17;lNKAfhƈ`8r}%@f 4:>t XaQ
'S*Z=Q`vty)U?D6T++zrA{B-'8&FO~ ݚFdy`yM&#_l<ސ+; +SS!ůwT1I%r F8q 44@o}!n@<ոڔ'+X%647;Ϧׁ0R6 l%3$gq7ǡS7-Fuӏ?H8+_zT;%%֔]kc"5M|[SztW◷E-Kfzx-}/ַYx0ciWO_~()ȫ8e?i?`#h)siyy3JiO#	٣@Ԇ{qX0K+j86<YcW))+&v~i)[$jvvݯg|Q'Jȟw'=nRlqT^P5_W:1Zcbis*+lڪy?c@&BpUwzOٝV6.ɝ
8\ڞڼS9$J!j>KG":h43x7->h)kvQn1&I}0uqc+fs-D9#|].WB!$
	i^j ~YQC;(o A<nxX3%
[O=u^4#+K,[I7	ݵ5yOũdxXpK2*'@Ƥ˟	]J>0)PS6+*S8sx1lW AqMe]|&M!M0tkktyVԡe{ug}TK=&L^|3S7U1Vy&$SCd,ѧ"?GQj*mR`|5UfE\"|߯xw'_:?XȆTzVz;
\ۛN#&b(Iӏ{V Ĕ{Чezv.L-n
Y]l(LlchDw|QATfbfXX"W&Ȱլ.MÔNd\+tLqxHS_IP#[AM	-)K-rMy200fmCKV#-9d38 JX{ĄȘN8x)4ѹ+`<-6#/*v%NȮ#X=mXɋi嗂|g
O`Ĥܛ,k\)ZTYMd3JBɋ]/5ytxڄ%fan6rHtk\PeSі7͸Վ<;_y9t.E7Ȭղ|/ͽȑϥ.Ǯڙ*݆7F`j9F4hD_dJX6+wE#{
"&	>%  P pwOI4|<CZ(g!MH'ic|}73q/^:ӵŭ6/u]*~T_8\ۮR'6)%J?p&]݌N\9M6
@ZIvgbc<V\Kޫ.+B,߉Q/}(E:L:Ixz^/o^QmrW1g##b{.Q cSn%۠v 0<4+h	
"8%$z!p 
~GNֲye;U;:}uz4N/9݆ʧ9a)ޠw4套ǼW
.ȷKbɽ
}<y#ȝ1prÇabP,eHXqWU8_>[0GL؆ḭPL{,Ё/|n-{8moD9)7o>eDd(x(ZěcloU>:&NOː+Q8"e/V?Jxpn aryuW*cWl&WsGo_ GJ1AM|"!{LEСؕ7'R%aOA (otuԦ?uXnלD#qԀ$	uv/X$WV07X͟!cWa-$MX_a雅Q|=CMdZFUYY/W,</ϧhz V/1]DΩzV#B9unØqqk*!T=5Y/Rxd48AԏYF'ҽ$MRsm/wE`KQxL[Y<J98܀S)]O8~KC!+U71rWp%.!#Q&\# \WsE۝/YOk&)+0#0D֭cnbqV`8ްXE8Zx:j.or 7l7WGe6H=Oᨽ.뵣PxAGJ=#'e~S-	{>Q ->c؈˛O?ұ`B$MLW.D^J`ĹBT
Gglj6[*%~h$}|&A<(|y4U,)q$}G,ć0ǁUuO,fb7L.v?[6X/ 0f^mδֽM#3ē/-[L?WT*a=)^#U	59?];yH:~!SѴw_EYvǺwA5=38c&6oHN{ǲ/>MV^.yQnFU;߿}]J![]"YJn5=*޹ٰ1l1(o!_o̞EN%]I%r)cJCF>@h,յDdMq\y͋wwm	^qF.aBpU@rEh\^|09@!*pJ38G	6YRL@sե(5'ZI,{A0Zlcmpo]%]=B6*hPC(,\eONɍFY[yO7Is{Aסڟx~}GO"и͓̃i슔'}WMW:~&A"?G_4uXjndF5Fe؞ l[\p9aSx$(:qMn-j_w`jǚ}%}۟MLP:dJSy밾 "gBLvR^J ^e12_[_xUd<5;t$aAFf5.7~.ߝŔʭ"Yk{i!.uCQ%i:P|ɹYp(DѪ3ʶcqkXəJcwP1`);%h9C[ocy՞KEQ	DBa:0noEcIfjHbIX%pqj4w[J 8	L5wrGJcbhp5@^oFWe>6/t-TH;=G":D}e80GM'eSO+RҧQd.U28PrE1zkm5wAYOd/>l2]Ų&e.]&L5Lto]8ArkH^X\fr=\k	Wa߫^1OP7Kk5_|en+b7U_#B6N=^ 5Ctvvz󣲴ݧ~fhj=+q1͏Bb-Myk|mwo~)6Wj_ҾJqQ+G=?o_=iڟ˿]˭߲r).=e=&pׯZh%uwM!'LMۙKPv<TEV"#i(0-d3ik~S-^9y1Qc48!sVBƓpzGJV2?H,ȋwGL(@W`.3eke!ē|VD<;rJcPxuH|2s !l&(-ⵊ7::4J/Ӻp})JÙ\sLw@&.	_8L~'΃W}tP W0Ytax1%C]wb-۷lYφ$ߑV4sq9f8ƛ%@!hӀ%Ȟ%x<0Q&2_lP?%gٚp)MH텂<<#2$l{PWGjY2$(I\ݵ+Ej$Z.P8D,MFf}nJZ6hΫWlnm?)VXB8UFcOiO-ek{&}|Yf栟68@DNj`?
kx`a7ڿ	~j>ddtVfLvu_ }ia뺱9#I 	Ixt=.uw8<7,t2(!ԣ}G
ލHf^XJWZf1v2_ A×YDʋÐpo('Sk5?-8ስ-HK?yp3&Kة)R7O_or
o%54 aE*hiF^qڪh\ˆڷ>bW66m c{;Ђ9UWW;~ewGDL+@4,_8DcP!mPvWy"_y5+666]L'$$J$PH`)ۿU~_W2*X?ɮ۴/sM۾7S }J)Fwcټ<VX _LQkY@0O Et>G"t?{/Z]οo7!l"";+O"khǿq=S	]SE˺14S},[b9>5A8!ԥ3ME,֫XGD R'Pza:g^;FQvY:CxF8@!EL[.v9>7-r$0٥2^6bo"؞'vǇ8ՐۮҷlƸx{4,`DOI.D>òߑw0	Y[M^62VBx؛o5=p?c4OLix4JM߱\~ilVmEgyW+<k
k~
Z2WY)n[;Y욺ɒ6G~ςz9(.{W^[H_ JR]PׄoXvՌG?
b֬[D_jUx7Xa**@Nr5>[M&FQ2Kp[lR2lX1V0^K4HWx^20%o2Q"k&ѻ{}?E#IqXX')z'O d9ðX)~d.¥^X+n#ui$)E}~87yz888b/	]v	7iHh(Сqg-nnFA5Xy.χܕk>CQvhddPn-鄏gB3>?tѷ! ۊ\-DsRP#CYff>t	T21zz13I<:+L;%F{9 t#|lM7mՍʥ=!ϯsm/:bj&Pi荣+1'x-tqfy4!Og!D
&Z03gr4I4{	8'OV|?~:Ìԅs|%y*B_\ϋ飼4|e/QdUyRa*N-?	)Y9pc^<_Fx_?~gҖ{dяcwqmtvڬُ.e~5aX:#1ՒmOӚz9ūAs9[q?}7saRA*>}O_^-WE1ẍ́YP#SyCIι_{KڑUHuCGx	+Btgc]4'!*^%1//`GowZ ^!JyjRLzͅVdk>/{g|Op(}XCkLc0LyqB'W}nBb\ѻ##.1FѪ\׮m}57-㐌V!R:
DR_j=_\u]~U%Bs9gV YS;͎8Zo~:z6Վq:6FDs1҉t{k,qlpΒV
:uEFtGd,[{S	(BLj]m.`iصуU
c+0ꂬR Xb0+po[)όm
>[TܰNΪ#^-q6͹м<gc`B|oJM^>K8Zlw[7&+SaÅL+5<xΕ5CQ:<E)%g;"3]pE3nK{-;ek	%ｻFQ2++;߽8b"&07l*ݰ0N밥"zUGٿ@w;t<l*95G2TɟGehk!*ԭx!j} /b`ki7:nI1oFC4*7OqJL lrMC,XnID+?-5&E@Xsʙכyԣ$nlG@uLAQ]X(-T],7.(ND}fG$<3!&dӢӎ#އqMf=a0ָ@nBV' Q
R"x a-10w;Ozஹ8Epb%Fzy9Ed s]LVr>oȅG3+ZyTS4wvYe@aŬD"c<,Xet9V{EH^8ke@8<1d	2_zcY߫ y&)b<'`?jH_^2ŨB.)><g#R\ibX`C)p@گՠ?n`!5{r֕m~\SaeuKBp/0ӷ-*uρ*Wi?]F¾=~E%p^~Ck]~6i'4\;aWM=m?:lF䰯Sx"n {ҬsPdɤ
r: A"eޓ˧VmCISB!&Y
]	m`vc'	y
l6'^Fi=(=݄ՏH5u?${b)FhZPZd$Hf =yv	KZW0Z'I4ŕ񞌗	NBT/"|%/y45Z)v%B	Ncyaa24ZLo|e\|L"h&QA8A,^Z˃U6ypjqbS4X[ЀsB6:&y#NJEYG^1kܠEvE<*\4 WtĜ0 IOZ`HV]'a2,;//9h:0qoBb7zk1R/Kb@y$NC!ڨ2LɀPPadhUoX2#%4<l0?7gV,w6cu5[ wggm<J*XA"}TQ?1qrV?:v|:+
b@'PdU4=SvÞ|W_ѧq-tyjϣ~.v'MAA$oBm$Wq$gI$|~ҟ;IN!@YBk1'?X4'">~2i,blp,J>?ՐJgQǗ~	:|~	>dLRo{q|EKwTȠc?;	?>>C乘ePgq AH$WfH aڙdd϶Y<!oB!zf
S=o߂g&ksه줰bXw&L1o'664LcD9ES;DFqou_yؙS}C^IJ⨝uXqg* j'R|sBOz0pWBB(j.ֲrgcq!c_)^y	nC}{unLڼt0xfF-\W\q%xJ[ u
Aǈ۰{ѸUJ{"uxR4"+l	HѶUl.1HqDD2ksN6uN[_5z 1g2U,i*\xx	lx<-\Ot{t[T)4]r _PDwz߹W1k!`{[w{IgDiv:kIvub2ԵwV7W\}h!cO/?_y
|N.=|>Xl x}n5T-<䭢[zbt(!lav /{>!sCOu3(uv9bSs`<Hd6UU{9dg"ߑaķvf:f4@	em@^kPDlMh-P+cQ+UvgTEa_/ q: c
}V<4pA\P;hG#FmOܧ"ݙ/,pv<#|ČU3N6	b*s"lVDM
oDoIG{'kI9s@ ĠT5Tg~)pv=sMLO+GGLB-Xl	M2mS``7"wib{\
zNH8Q9>+޽CL`11~.Ň*I{eYd7pWyKS¦C$MwzoX¾-+VyE&4V0$0/m1e~{ݯ¸Kӥɘ&9"l$4e)4V^*LyOo{yCI>P4#mg!qxڞ/]eFw=@͔a*WՕ,rf,"k6^ē
u3@Q͎+*x;%.v/ja^b"cnۡ~kiQ,FVY3s)`?@? ,qd<>)jxKnʫohoχJ1XcnL@	N\j5^V;<Nلx28Dm~HpDPߕ4<-+
AD〃[W"B	qo{%&x:͌.KlWWԧ)3''ӚGn<U%c(YDoGێHH!nfuF$W&PM= Kz	<9䍾@5OHlV2i+
Q/){E耫fUS.ogT/4X6qPZs ynVqԚp;3ވe9ž`fpNggҖu<kE?}<5KY@(5^xhæEO,RAT/9U7Jt`$']UPn+f$WS\,x,^p^Ny&dd(ZETEZeK}6Z:\^&-A)o&MY.۞6VpݾF:^ӽ?/y!P{ȟc>A(lc61|?~2%p;aO/|"K?l2~wzG.ǁ0`~s"ؖ-BYfs{N	v~`#ΌSUNf|d^bWaz-$¹~UE5==uoipnl3ge¯ K~_	@]
-/[$U+ݙƑ-AMd3[SWRR˾\U[t~LZ֔O#7ƵttFHjpojFca@Ei+G f6|>-<NdZJڍW=&T}!
a̱u*m8xq|(*	c*;OuYv3UQq,H^U:2Q (:cW9j~=D_-:?$</,ќ>@WL<w$}|_MݝǷżaդ`dW`ODCrW	ƱaRzo"L/ɸDJILxs:J
 3NqɈU>+gJ$v}'o27~kj|}y@7X `|ZzrmK4&䩶Rl<>KΒ2+DcQͿ\<gtC)Dm/B{eSR!<]]And~݇v= X0CGU{݄aP"dWVVk#r{O+յ/SqJ*#$O%GɢRiy;mwx'>Q0̊d^0P}P2胵uͶTt2sU:ぉ?(4+;Lfjt^5`ٚ50VLO3`9(sX| t{H|l5Y:bDFD:I1b2b9v4=HzA{8K/-<JʥfB}7!miZ6/x¸o뢱ow(BTDv"t h8ruBUKl*Rpڎ:aKh\@`56Oeyϋl:s~4?Emt,o?˾<5+Y1|Kɐ۩CR*L.3"~ڹ͍G=^[jz_IO:ǻ}BM­MsٮDW"TY?9v|k򖦩+&~՟4\3LZYoI>5x߮)k>tQ;<ϣ:=yToCΥ^\^	(TnaneպdZ+T֮y|']䫫<b;K[Ȇʅt<AXu {o.2
b@.t,ָiveS)4s0f;"{+wo0d/șFXkUa1a
}iW[ j,q\9rz2Bw#4ޠ"ՅNsu1$YDfD\(kR>%mEŻurq/g.^S؀1`09rFx!e\^qlۇ	%d2+w9+e*<(鮏Bna]4^d<{k|U/*._wy}	U+dez9mW,mlS" PX_sc|S|:"QEzΥ rᦽ;:օ;Č8i{
EWx\yK=y57ؓd_c} 8aڅDH~jn԰M4Jzz>d)Ld2s*h;ykh|XrUYx;zU>:3FJW-~N2t0FA(x4 %A``cy M9Ɋqy8M]SF/k\j>؁{0束	ʋ Cf<	b>I0ypYg3t/ 7 h jkJg'E'ZT6uM+nL踕4/ŀ蹪N.+˸qܙT<cH:&B	;d|u3A!?y̸V?M rVZ.HxxƍVY~<}+DmzE΃uR$c<c)]by"X^aQ1..@[z(k੧7 bBEHn9;0JCeazx>ޤyψD/p} `aqj܎5LbhIТ F߬?L¯ɟ'K녿SZoN׭Zg'H'!_B?_oUB!Qp})^#c1p>='B6<Rgr6p 1<٩/6`CX4i`LY21W,BqX :C{_>cㄾ{ZҚh1!zNuN.j95DRnސnƶ:ReiJ umi<I#qD;!^ߗ.xb\ 9@I]pz\01"ao{#oA"2߭WZZchŦ8p
Xo'`^Cm >[myD @H^vh50c	:UQ-2Ytg#Cw1y?86->OT!eDM|Hv].
yC+S4}{f@*e<6UVEJkwC,7Qez2[]Q~ϝIF`:S*[:.5'@_վv`[FTc0v^~[*9=#cp~0,u9(l"4*ݡy:sӫ)b_3L뼑co_al|*N>eWcaQX?>:cۏT~'t{[J5u W׷8dāU:{}|n7V.|kGHHqLeӫqE7GG|&VoU,V\ygK*9hmH<⦜gOc`\xDjэDxI<E: /7mȊg4'd\.9';>zPOē~#llnU.;zuqE_䌑;Bv"(MЀM(7'bf40,8OB#JiCMOz0VBa#,K;0EoO_v0%'\"N9Ev<M]TW| f{o5Hk*u%c]  [q\xѲe!k1$f\cOX{fPءkD#\MP]c?ڈg*~N5=K+yYPw|&:ʗ6%\7t#DxXY)Q]ͥ&-,aCZ2gn򩂤GmX@!%Q)&RFI9(Bv)6JuR8rλRAiNҢbQJ߾1,PX^VY̷ž}xbQH^ l_)LԒOeRfݼ3?*ȃAPL聾|?&W4wRwCܝ.̘Kftjr49$'E	O	pdɈ8;S=in]+/aqUk$s>:n"7`G-:1*WBTA!y (a(=(^|F.g=ϷQ&o7>ZW$L\14j{)N1Cs?͒-)Хwir
e36y[5bVLl	ݙkIѼjO&x\VA~d_bX2~]c6|w>,67r%tEm5/4-|8*0p@x=>8cٳ~LRy||k*8\cNSPj(+7ә:SP7|]`9ga7B06p5X^Su㰠&j:JkZ2BN4.\Kj~޽JAS# d4n0C`asv锿s҈oa~<'n}$b@L525m2^]#aO󙭤YH(HиS;#=^	ܗTi%P	2z_?VG[do;I,o}8*quG}ҥFQ_x B>{v'H]ռ_K! o|]Ǟ'wNӺ|*g_MyK'8Zsg6YI:hYK +v`>W:[1_tMo%o-ո*}_gm޴!P
2*-ADyD@+̼b=˻Ë7|Niez̸붃YZ(hqt˥h_ai@UAo_HH4v?}wK\"߆i`IuOpb) D@ᤌcl;p/:W2ă+vA(끠x`) \hFۮT`nߠR(;uIrF&a[L	)Rn-<VsEvsEOaLL#J[$V&(hsUvOX-, ],Pfu搸h~1u A@",":'ugnهUc&&qOlݼ,_>SСڒ98 @޺-Iuջ/@&(EY"\Ĩ: _gඵ+gQ@wziUJKSPnlv4[#Ah<P%) Y%_Jt@k=T4:ǫj8˵Z]\$+K7XCAZ#+g@ズ&E˪O1}ʑ=mϬI&Ug]P.K,eXkA>eHMGUz	.VtB>E_%9]``jd2D?hydؗ*ܝHc
%!h:N	P|<ӂVtlE:&hrxzܸdp$ tNyMn_ߠpo>/y\7gC<,;إn* 	#EDZ4fl`7TvaXr`yqբ֤=(5؋' &y]m="j|؎W7X@䳜w.lRG]n{XE["Sa&vw:02XV<e;Qne<fiZ8^z)<&yee@5{R*gˆEAdS:c
u{p y0*uq	g3^a&-%wH>r᪁vjUz*S)|0).6x/L]߼M .0S.=}ͯ|Xؠku1߹Ż1Z3(n:̹?ˍ@r<:p߮.UZw4PV$THYRЛ^VCuŏXPl3(}N("'QW=@Mr5^X~+wjbq!E-i\tAz նA
yISq3e밀 L<E~r){!5=~;,R.GvT:|Аj
GKKF:@o/&˲EZ T+*RXӲmAH+R>%
/#L`j׈*C_|mK7.31p lwNiVI٧)+g F'Fw8ޤOM*/fQ4k+>zv ;8OŧسqGC)'ɺ)xg 2끬ry摏xCwJ"n<c$m'P 1MdyVLuGX,(W䮌0fBnXQp4xfG]igvpKܸ2A{
Ehui2צޖ}Iy=FT)ۓ%K3Iҥ<$z`GD5ĝT0ܚzJrm)=#XO扅${ֿqiHMS1W%tgM+!h%]&!)03K:g2h@Fr0^}=EU"v.o`J-66^NqZ偡 㱁:%%M}~EfE-Q[!݇,@FL\;+f3ǰf'?lMI!t!^E=!*q X		_,i1^m~/寅cS7 S	C['{iyJUzBuXgLJwOoeHob.a	&%ߴ6nɞz"xYXl>_P%Յfb{HZX=|gѷo2]k5Kht.387"s\;}_%pTۙjL\ɕP`xH)%B"Fzͧ]4^JK-]>s'f.!dFRsY7qusj9YIb]Ve1p;!`<g$qիCH@<VkI7+l_ͳWV(&fXX<\k:yhqLV)avlǁʱrDv4D5c] + ]'?q4/>a3ͧD}G<)@	hUM5c'=3B)gPkd]l|U3޷Ϝ|S0OL%ɣSQG0ߑʢ}ˑ><&S*|V/ת?nwv߸	/~?qV=Vw{gR!ǈ]FOHH9oeD}|ޢw9E$60:OxN,%q{b訡4#lo-\	22ee`227DQL^L>Q$	A;z	ioOnf[DC+b{dm +|y4>qL}7Ml_ܧ\wZ]`*V1١ˍuzИ8Px
Ya7Q"m3H럫r|][fuX#QuU/u+MڋX1)AU{K<¨zָ-]F!Yw\R$NH8 Bm&i>!eO>@}xre}(庲iJhm-*Bqg#Q6t ~{eߨVSM=}|B̃~>$Rt+ү`6l}|-itb_MD>\'I !U,)")LS(=V<oϖh&())]TQF&%*ϏqCU)n-QaVAiZsg-=o}3_@3A
Z^m49:ioS_#(h,,Uߐ٥d3*ʺJ@kdI:I^fn{~`@J&HQ]}ea:A0gUULPE>3"^`Y-qA+ėLnAxMQݡו4	*AU}W^΅\Xi}WN/ow㧧QwlZZD\"ouٺwwӍϝXX臈^_qV_fS4Xc&&?m[
yr$-="IΘ'[?(ܯm[\̲b*g^fou_]jهpCL2ưXwh}ڞj'[鰖󞩪nx2<{^7ql6KFkpG~^צܗm{O Pք9}k:u]IoWV1|AUCqpKI<@^t|3\'\ynA,w(>]JtEbwfV82nۧtj"BwI7X:y8 %Y)|,Ʒccf'RW.TR(>)@M<~i2VKҽ|/0n~r	<:I4t]T'X-|OKƁT	4*vO1*YlxjpM=Evbt<ۻuLE*q4.!c^]Q@I%񪜆P܌Л)0YspPnnD,87#i,tNEqM~WgpERnպբg'^>P
ƙ+eUХ]1$#@<IWarخYYIJqI~x?.[Ӟv3t(GECp?KSiVcWӜ^.A2y '$}x."dx\7__hE&ݸ}A,,r{ \_ćDYS 5xݐv;L,	:#V:?w3&bMYy>(["c`>*"%4`h02`vG\,A}nR"J* D7l+ꈷ@;]h^/4rHnZ>q%ϛ_}9&)#I՝q{O,XR%!r{4KHo=@>^>`CYM6EG}`|+~\\{jlre!IɳNDWqGr*ef~E{t9PWu5*1cƮ۶׈>^-Gǀk|i>=z0ǳ;̵3KXbό"`}^S{,m3G2T6}w`IEBi沥Fgۄx޺)A1D!QǺ^?mZs!Ri{UR9*f̔@8i#-bRjC1҉TccE
x$"~}yxk
{oO? m3V/(H*(.֏^ {Svcz]0~,GoIG{&`-l	pMn2EJfn^!6&N"Ow%xy_ J7K#+qR)7R|&ǚ9'2rH%X@ՉK4aAyң{r#l޹R;+ݬhi" C%gvwK-i@o&i>ԯW*LٮX+$~H)?_`cW+IB.}Ɲx`f/0z7a˅ Oa1Z+A(Xgޥ!>+u/ۖ V:+wUӺt@Yn,Ho3dT
Ƌx#˳n*$Gƾ$%mT01=W菅26|BLˏh'Mkqi.shfRU{$FNŎCr}j7aWݾYQz\lU_=GvW9sшv(z<Yծ}ۃlf+ 6`}P4'6E)5q#;QhZ
7<]DjH~W *05쥢I1EH*5DbZlwAAW/͵ovHKԪ|8XCSG9Afڰ7(8Koބ#)TTǅrl%:ѳ&/`FfGj.SǾpBыyݽdtK+*IN
*Lm陑DFa
ZUFaۺ9Aďx%>Ute$ʷp'P7g[.VEۋ_R07Wuaï$7tT,оC~EuVS,|8ʴA6ӑU[3ђO$}Aa!N>%_{:.kaηyL{w
W\4L!Gu%,L*$ͼ3Y,HWJ?t3
E5EH
/(pm*׉w,d_?+N$e\.~F2lkD27-y|(\yIMPOX8@:R/~K@V`<uxo}P^8_[f1{7"λ	*ҏi힃P_WD!w|' Ko{p#4ULz;s9u8\#&*4e]-&_Ë|4 \k hC}iiҥOiEHI{8}iC$H1]^)9'gD:zi	]j"`O3Qmf#e6;xɻ(Z1ix`H./4O b1M'h5{zW !czMu|cwq)惋զYAþ<ek<n9m4ԛJ;a'Ck\\w6A$F^WD!b3^><wyc̟`?1q쐝1X}l־_YZGՒ$*I%.I	.l>~"00PB))AFScX5pl؄gl_3K;`wdU~־`MYޝTJ8BdT&ߧ\Is6U-vf>QEv>ڐePq8P>1/?f<׆	RlKNKa=yO?ѷz^õ,u{ =8ftڷꨦ?[IQ'E&=}mI~lڟ0BnPuE_LIOJ{9n?O^|ž/)Hrv[->ZTG9!Eȑxp!&T@~;=?P+0X<0CLF+Z[.;AЍtx[jib-+H_]Ʒ,|B¸!dZSJOdA,!hB2;)a=Ty1#GqotqFq"6?	~FįF4^5d*y	)Ǒ՚2'Z';%1_--[NMVV@NCX^is쐷sQ86Ou}($GuXs^. i/p~Yoz͒Ou7h4~땹)9ky1^4ffYP%&C-@v"'D~WM$=7$08$Ԣ=,$ |Pԫb\TWU[]"?.~cy㸰 -pF
\k䅱#1~ \/W0lBT`7לyiSK^TC3 -(xD\Et1+DrLf4"s=_"xƔPr5/1X8@kaO[(|iB:/DƯq7Qa,`dXrJ=!}uൿ̧XmVSf
`?WycQ2.虧Rmw#\+Bx-g(y@@u8ɭlTxqo2RbO7>Ӏ6NLJAԦHϑ@o}YbY[G5MM3vIl^;92c'j=P7f͜7hNtB"L?F3p+vvjʑzP׌qv<.%Z"Ӣ[ʤ8SSY8:J0)*ҭۮPW2]DskPcvC'"^NOy~n߯כUykvɬ$:z.Byh9ٜ<$PR:sGKZI+qBbtҰ6Y-WnIWQ&(=fmWyB6BDT1^rbs~,K-7췕4.iHoDD3S[C<nr	:	,xٙ )j\l욟!SO%L]Bee=N&D:^NhL+	i;5$0lg2HNzTՋX.1AA̦xf튫KՕul؂[`!ь2s2	p%_+oك@2z`=Je[e,\]/X.Zj:]\1Ѻ$&
IWƄ
JjFVzJ/K-O$%K9%͙qHo5# F>o_ ϒ@2%պjC>#/	&mva08ēVe?Fdm\5 %.\A5Z?]u̎,fcVSGYs92UWQ:D5|Uo(US}oNo0֥Y%qe8A/gwmUp!Oϒ">@9M=ҲR	wLc-r%XH_"$Jڤ;Š>Eh',lNcX &4t.@JgͰO&GvpݾKo$I*V&og4M
8ˊb|7ZjeK_6s_ogxiiaZS{Ы	[\c\E1#0ICڏy=lWn%:&ر
HF<B}1f&Z ).@n8~R7﯁"`)iz=.?-Tgz	[B p(ڃ2݇379
/m^rkHPz@w MPZhlvnN0Y#x^_sI?JwIyο#{nsΩ;j}UNRձF{zQ -l>)+}ڟߢyEr?tTN2C{ǳ>-Bi
/*Z1|}&Y{9FSqu\Rj6[5FNKz!~T'K=1o=vޚ'ݜ喓ȝ
ВؘuSym_9;-m>RJtN p5Az ?+@ej[jr|W%h @>TY%x/,Z.ۂ>7ЮfɃH`gΘ)i<Rx7'&:t"
cgW{g R=еPi#gGсI̐#Ry*&գ|x8ۨ_ҋ*T\&a3X jNoysOF(x
`ѝVg6}I`o֙%sjzx$#\ws_%zjhD7L}XfAʷvXOeZۉ*ŵ
Ȣ	|niA^
QG$2~rXa6Pk+bC(<%"y5EM[/v.xzMx}|Pn_Ā`Kv1	Ij񑅭q^"7U5li--bװ|M h\?/hɾ-Έe9SH(z"HJdgJFJ;I1t| [)=;!`؂UF]ITf`y}IQG,.T vFc썳)mt[0_HYgG-Y'zk$~ji^?@X 5ldjg7Cz3&Eȱ	ݪ0ޣ>1ܔ j|qWVq/7>K;=(Ê>g+5Ꮇ!'OJ[ Aj4dp|Ĵ!66\ZڇUϋĎh:xN%*QXy>;	;]S󜔘[}*~/v3vl[jZ'|X n*1F| #r;AKЌ^8uNyRϟ>_3Sp췹q_f#:ťҦ0;)9ܳyQNhQ@:h:

+-SY]8Xvl=iEeNÝ&Wyk霣ۮvք>8Lݾ3[F'[|Gz 649rl*n~ǐe*8=ٿW6զ<;(<ᒆK`_ BvoW)DN#/fqS1Z9J+.s+žEL/(+TFI!:Yyu]{% wY*!zo|E
jk=IbNcv<r\dN9VrYU_ٛ^ 䐝:E]4ͤq|Fi 5"Y$$1l;ʌwh[ÅzHPZޥ~E~KV4jy#5Gny4oŕ_(h0xؕԹz%9ӓmZcƥ`1K聑x*\cpD8hDd{ZK:mVX_.IS,|R }&>>0
WFz,O&3i20P!
4wRyrekj^Mv%%B-778xaAV4T)ygL-]:J[VE[rїqRU?t9]<?g7VQS{6޾qQ^+ƟOZ}t֨oτSDڇZxQ>xʗXad\	NJR]`qUo崨 ڄ5+7ιymoQ9mr2`с Wx:ٖ%fȳ*ɾ^V_NT %=GkDS6MQ;  }[ɅW	'=ҕ. orV;"zSMct䉜a<޺ɋw/N!lH=(@_Q_=PC9+;Cm:).{lUQddn{iC7>Jͽj^/A`v
{ݎAC/%K|tQ ^qJfǍ^:K}chZHmMG O+~bajg"̣zS cYByXG<lUq#ޅ*Ǆ	
%?fqb?V{)5^qW CUNo3ϳ;u{6*ѳc~Db鳛ds׃!:GWIux~l'`BI01z%I *8Y45T|)rmF$r!@@x8Ƌ#J&q.£Lݡe)6SJI4F0$ Y
i!iX3vr̯W3!UqC\>(G5r|5&Lt%40izI}
vJFiCg6-:2f<s}=];֘Sb*A8]Bǯ>+f)Hdک	g1ok=oc=ky>ٮOJ%:`Ș~%u tFz?tm/'pKnVMb*zάIT9=Lh	&fq8V gSa2pWCP9*5Jv/.	~@ܐ{	o7\EmF?J&370'-Dl%e$3.p夁]eYj1\V(ki'el]aem(!/ZCz?K![}l"W3%"4){D'+#VwR=-c0sf?n5yuF$룎*»-2<v(޼T,[xI+d$z@%j]9q?Ýj"=Z,S"	LkJ>UYWuTPQ*{ɾ`@I(eѨ	 V)jc	3YnAn'3Dt"Ezl)#,Z&sXEz;Ex+66F|A~JT['!rѢF``3]b~[l4:hǵT23ۘZFzPhܻnwSp
w#mq_P-S_>ԓ!kEΔa%Ch9wZM:*E)y鮥ԭk#nP?8P3md7gp#gүʊv>߿(xj/fr:znٿrwc;KrjIdߑ=`=iY:0#]<x+2}wO?AtQI?|Q0&ۆ}v~k8|b&ƏYP?{ՖW_1U9n7JYKⳉ}EfN8Mo|?ik}E#ZvE"uk4cxNuB:}7>X뾗9paGnNr6#a-ݥdLx d$JLt<{86STnYdg!b4=wB]cɞ{i-.)%{Q4TTa (6_F dCX{CEv_1h_T@(uGQ#s;wXn
S	p%\Fuάo:$7Շ!.Wxv$§IݛgSQV~f|?6%lfv:#*9DZWZL`qGC_>nt&U@QUP(فyhWg΀	5U~7á%.D!woȑ&_PoHL^~I'_֥a x TwԎGJQ;:-6
#ηp<Z[s}z-L=!7#Ϙ, br[RT;@䦦H/F̑wKc{Xo=TnRH73Vhbu]oyG~Sv+}%T~z~S@LI>[}yDUX_,fI?J$˯z?؍Γ~؇%j6'4֖߫$ߟ7]IeOƮ	
\=O>]lyr}ITzw0t?-oOr:lQǑ@o}$#䇖LoWzOh,9i,QWt	mrN"ȟx4{fj.dȎ@-2_\:C+\eﭷ93>fdTԁˢy	?M T6&UezlY~
v<M{\7iPXuh$V^p-^o*&)%o r|smU\]
+gotjKp/jA<bu6Ǚ.sGUG>r(C?#0VŮ2pG[D[sӟ!WΓ6x~RtW}q"~j 2#VOǳꗙcי~Ng3/erZSC/*g\'8yymٮr	mX\8{k._Q&q ?,vdO+[ih)V<0*U]ܠa{ .oL8U<OvoQ PHlÎޯ(,墑X?kkyQ  n]6OYA`;?<"+{Z=J){In6|]d66^+Kq\D=]'$I`xqjUOߎPsJ\l+[u;<GaTPU.jqY^dֿ!ȿBLfoд%KZwoBS{39(ܷ.}*{J6|4R'>f9U2
P2FoZb$;1y(|bd+vu<@jyXѰhK{ƷBބ)s4IkBNC.z"Hf8x¶!dޒ NG;1QPzk}]m_,88@}^L׷;hSfyuZr{ w	PCUw	X_RӸÃ}@uij@W4W(6^5gm))%+t}.]kJ5
Mӑx:=/^5BV~îm)L8z(nYԀ@ޯRn轿EpkI+BC3nE]йi5*-(J5 /o݁\<m<O<~8Xn/JvSv##⸅cD^Y)o%h}#ẓkb7'5Hk߰HsH~Cj
7{f$/ =y="v;jCL;0VЯɧ6s.ɗ!C,h_i!̃K#'-
C,v)gKnfx.$)oD+ |HĻQluk%,d2 /UCA< ,]g{F1K	$=|j%SV2<uvnIwCr3m[_`D>wcTc^ *V8C{Yy|ܒ?aiGBM+wH/3`EK)ddsO	+OpSm2TYp
~L߾3aR'1p_hx}RRdnd?cP%>o`vS>	5g_C?{Cemħ"f|$g(	;lxnym]%WkI`y}]_ῬCm(FSU`4IUd$%))ֵXҜ7:G0 /~s*.ְ'ou=L4	-q,rD*jfg ޷04_'w^-/۾*y\f<<=C'YJivݱuAfe1 6ZS'sJ,HҖ&|J<[/GAmPuS()C./\*U_9o˲BD8Ff_Nu_3EDQRdоz&ZsŨa/T'WV6:]?Qf)'n|^5_!)јSzY\9@"2IBZU+x+_yXE47jes}b.v؁>ݵ+²>޵4% 'b}]j5[	JpDMXfąg)1"6TeCfv) M}W[1FMM<xn>H0sẄ{ae.a1VbHT|OeJ=nĢjҷinnhjy2'Gy5ԴOÙ/*H'j[?ifP,+7RO`5)DN^tߓ H	u;%eZ i[_տ	ُ89dh)WSb(7m&lAGcD8[螮ԭǓ]d#_HZMG'9FgbP}`_T?M}48_Id}W+S=|[(!l]5S
Eb7bY	n1K	eI!*XG_%"ut`aA'e,{(jk@t\Ry\."g<㚱dTuGI1'4VЬ@'@8$M&}NX(IR uRb0%C64ѹ1A_`wn])kYL(opon;"U]>V(]}484-oŎurϞ-p7ByH[7=_:(X~Z"<DX`%4b0UuS@ZQ0SuH %@og)0"l tPg0ּvH^(j'x/c={{[Rucx eG󖫭<l?.yy-u/[-2^MYJB=QhBKCyX_y.O9L浢c@Qm	<Ϗ`{w{V~.,1.(_((ڍϳa?D[`BR?"*|=I^_'<;S<z6t o!?:o-(2)//oh}˯YNjrORG|om-Ȩ֣;=WQ_!BxKa0);p.j7Ms{GGŶMr;o۫|ۚ#uO0C<]WOÙ;]Bٽ1|U&:ƭs qf.	,7LYN x)11]hch͏=>KGW8&k"D]ղGww8J}/TD, kGu	$#@QAV%'ֿlJ${;=j>*ؠ+Bmhr[@xb=^Xdf٤=p)?ӎ`bmM9SϟPAWW1qA0@nmZN>m	Ojt esB.V{_, \NS9W7 TVJYVC oPɖ0ꪁG"ZosBJ^.ȟ9PJ\OkwFNC&J~]CیG_qަgGmg#K~EyH h\6.w3$WgP}ioVs[6Γ&u?^@/*|Adh]KwʍW`'%*қ&9:z\C0饍TO8s̄?xN:gg͆'c&֞[jBĹaLǿE"YS	T
O+tC4Q,.u2hEÜ%(*h&^3%l5oOA@KM5ޕ:-rOr<~kTCӞ8ijIaP<|Tݳ#5=k.#Binuk%<j.~vL!7CUGܱ*:'3-uTjj<4O/fc|boPKK4+XSY9]y
t;;nO[<ȴ/q-*4t!S R!_wBҳH8Rk5{Z{l7u.D	^E[yPgnyU} BQڻq4ֹm+*d7=?TEFxm
ʄbך4~]U?,BZi[a6_6Ni8vyΖ0BDOj w<C==g@|(W6r+w%3EԒB)ޙ?E^ǰSč}̼[/~boklot4W@w*Cw?hIU
F7bU&K˖q.'&|jTv_϶</g[sBlkN_?H_Ҝ/И,XWƷdlDPzR13AX3gI7"`o^McɝvQ !7QHL΂6_֜  X+u{J48iRv nvC* U2}7fE?jP]y.LRDKID<>X[MHĢ<]
rm2{L-qbtWy	߯%tnԠwҤ5`VVV&QAeZyYXOFD	q@[^)>(dlЏy͊ttwcF&roGEK
k{Q Q5rܑOFlroYUC(`ђwS
CE\W@32lv>]y~JOJiMrg^CIpi~5sퟤ,ab+<S? sSgZleV煼<h`nqpBr=<q1|u}!{\Fʍ|Ioѝ? H_6͍$O6 HgM#xs*5(z3bJ4djOρ:^0tZAp]cطKUlm#O,:zAk.?%vjl f\f컃	YS4uPp'm;:\TJCDz*ƽ_KhӻDx.{r ͞S/0Ŵ@^ȷV
\ڊac=GRz"	|/n: 8Y|iLI{=<*	9Z[%чR3E1/3j`cfIB8kWNwzwpu'162M8wO+솷oA] жΐdѱ/BJ}Qry)M$1 [J:kE/g]#3/	K_H8,WYkēu;-	$ozX"o|eSûU+H)^(i$
lӨʜi(o\+nor{p#hG%HHzIs7 I 'd0  N}7 ɰld;dkB2'& IF?7e3~0MLYFhvϴ%HCQfˎZ۶诬wb_Q+Qo$/JfδVz}΍tJM&轵^n=BB'molӰTc:{ಛ'Zߏ BOԷ3̷P?Ud_Xrr8뜬LPqsEuyĢٮ\=I1n\3M=g3ֳ̤EM=Hǋg#Frӱ"17$ud=R VsqFIݗ'""󭱕pm534-^vo}J_)ķv{on/XMЅzf64*-eOHY|t0hrJ|fgo]Z2~ޯw6??o ;v7uMLFg_hk߅c"{Wx;gf$BY>.ޑYVцD6
$CS鳜zU*t}&΁$6^pD<Kc\Y;SZv}/O)J&/p ?
3IsohIBWw$J1,	Zs$2;]8!Re\Șس_mn>1NZm, Z
>9x{33iUTn|]
IʽJ$l6 Ry7D/xe'$׾L]z@=S_90!qxY1\0gs{}bQByiܪ(F=,.Jb Sȓ8hF]2Rr'+8Eǩ2ZcR6h'
4f52lU`ؽV>pRTQPBŭ-݉,Q 9Ցe(bֳYK4>U(BVi3~6J3BJvJIKzyL
6(,3mtYb[mySǓ[ v\^pk*W.kgɢM'Ro&\pgcҝggg鵇Z C\5u΋AGZmᶎ`me,H_<i/<#[W/,,Qݓ|mTS_E'90c~n[\U$V=BN Oe Oa3l}B#!\W M_ю;vc
na//}Iaq8^\Y{:`os[/xNk%.TsQ|KWC6_$IeG~,tI^Nǐ7n7YU~V>sBӉAUT"M%P,{_eMZ#.V뵖$VC-n's͑vٶ$'",P`Hmc/t%~KL)ݩB3aɺ>|JuW
|+tb:Rܝ2"uni:io rP;L㩖3s
,9>g7a'i"ܭH}gxbr/W1)Bؗ@}!5x^{U" q+jeDE&xpIt9#uLf_VV=$:2׋$^j Jn k+ta)5D	c2/H!{x2haA<@S.7SR)WF܇XOs"OrVٲ#-	/JbfC]E8-Q>h?߿A.Ί|eVeqQ'i/E*_|B1NQvsbC5!;=ySTTRiFv.A-x|GA놯Hl4>>uʖ]Rֆ@Ӭ-ǹ52c3w*~R'kv+;Rw8P$^/>i4(H_6->#X1w{X]sն_d3+{z-{t3^[#uG	]	(P-\Bas'61E.<x,R-UnA	tkow[¹;W+]E"?jthfN|ծwmZUF>-ʗǍK¥Meߜ\{X* ?oZBaZoA˵}ĉWlu: |7'	Dil/}T*Ho0
[Ha-\	 _6te貄s
`aNqX}H[_g=NQkmIJ/gwϞʒ_@DOcb}#Ml6L0a./r?@re㇓(
]mHfT)ļh>ThmDq.]([^lY	CouQ$|kN8ܸb/i<nf7?J6bo-lSq`q,.|&@.M	jUȎ
:B9ֺ~.UX"]P0/'SIwpڭpa^?%Y(-Vg*oJt6q4\5S*G<MIK@+'&H8lN&@B:iH*мzhS_}vcn3+hY=)fxeӬ,u߬u(FǄ5oofXSŭx4tiOm륶CZ;{r&xd[h\7xFqp#q]r
*Xbu`|)5;~5Ev,,z^50lcZUL9gyoE۩pfaԖ0:FFBWŕ;b 6׷H+W0C;dPJӄ/1`>c*';Kjm|7?Ke;|wd^g̃pO;Ip|vNwUߙB}ʮ0g+[p',gi':^;!;y<b;R	K/ˣ'',]̇)LeC@I?J0%'1݁̇վ	M%=P&x74t_h'܊K#ˑ`"]T6*_E`I.{=
x^c=I5'NvZ+b8|
UnG_">o6ʣ_W8<	Aפ Pq]#EN;Gq7t =pa#/֦=ČɮQr4ron@.dfMĜB?X]ueĨb򢔢>l[I#~ t7"jh7ӭ*w]"'p8U}(4="o[3p'1ִR38>cZAyCZImn3!ȣ=bnsfiMYrK1%&yn.[Qq,\y\݀2D<ĊlM	&7FA 6Ё.yb<KrnWXDr&WQp.rH/EgF`Z7yop -.{=cM' 100?%O*%^iTM1\Ȥ`p=/&+j
\ꏻKMɯ.x--QLE/F;;r%~g͸]:Qz	KyYjݡQiCBR1@S+4}
+%;POLD˟		'@ݖɭdʧn׮ɚGxWu
`ҍ0۞5]w
|880^tnHu9~W0)p('gF.P9tb*ogOTm gjHf-f\v.sK{֎\uf<h66)ژ/Ov{f8vw䕽 ͂kv}?HiusT&HcԀWgУy6;zhȕ:DmxYZ 
0´_D!)IFM\xրK5Jb	!=NA GԾH0:Vj NkՆhi0~ks?(EyKzvGȩV麌<Rқ4$޽p,[zOW]_˻\uPR2d}#Y/ڢkKJ;pKG*D1ռ;M «Q˖[aڷ@2(4;);+>G!796h5Q-%6Rz[5	^Z<Hp+dzdF=ԗMo[RcUnV/膚ÕmBrՓgNk_N2m!YJ|W]Iy3+ܵ32C?
#,ǛWY^h8owR˶ztA5ސY129G+te#~+qw^ށU-x+w4I'􌛅&]QU\dM\*GBH -D%{r&rlUErƀݒL+kq%Z]"jLo[pou}--jgƏs<;䙞Zm+{c3ꘟ^t^}83?{Iȯ{:PL=~ڵIP )Z<⠐K2xcܔm<wt=6mhis;Y,Ą&``î:BC?X~gjH9
e.dϥ5*w#3@Yج/$=չ/ɱ0q)GW:ZӂNGtYKq˹׬h-if/i_m%iG_yGe?hfiu96S?);Z}y̹?52gy|xEQ!ӈ*{cWCQEu
bzV{F^^iw52
vEX&K $d}Ys3yd|ʪa2OgNF_\ςe	p6;Yxs;FP#27
w8pm%1E8`f|&ф-D2Wlw6<cPEd(8OklS*{Ĳ)"Ij4IM/T],C9S/$r/HSϊ~o?bUuүgDϻ~Pw'\IOwmCO-Cw<=UާL}cOB)ڎ-ʊ	.w.}u>͌.:.~N~~s{~l\?7bdpu{8VIYYZ7|],F|3ۋv r>>P_BBxJ_NjUdVxv-,>QR`c; =!=1?FjX*y&~/lY3mx\p8|s;ޟw֡MǠ̍eџ?^.>K>oq G%aOBdJ@ҏ:2cҺZbcP<~~r4^
d&W!~/q-!i}8#Έ0}&*D|H`~Iá~z2q;>9spKUg|&(?#}b]\GqOAxpq5 ,\;~gKV7ݲt	y\2Se=\v ##9[WpMe@' D^3`,ɂbT{7)k}?PX>kB.h'+_6hly@|Ո`&ڝ$SPB~K;%`*ygQ96U<XM-{I. X
Ь&[^[x<+|J5==h  #U !}tCt-}m	J>k)_F
 ѐ:[fκ}fc33*7[.wQݗt3.84;f+l8d4v31uߤH?Sf!)o.3/k;|~(."ٱ(/0*A9ÔiGJwd0T9[,ƛ2ws}A2Ub]~j;?R,eU/Lh	_+G4;?=_/\1
]Q% qFdTNP=<17,YcYkuLf{ n˱9ʹ&yݒjKH>ܪ}MDS+^0t[{/_^ @Z>$:M/W7CXaC?Nb<Woc`uLTֳ.o0yicU8gedOV]:#v4vMw2[,K	zC)
v[)6~\fp_<DN{@\ǆT1xCe?XLTAp0q_H&.-SXf^WY.j <4N.nvc<dPۻ|^rox+	R+X9qFOWKUDWh&rl)L2!3oMP8AXTQ>Cq/:$؝ {饣;6|j\<#eKC:eK;X"
<C5_%icިHJ>+N#Ui&T){6DLK,OQҿk;iqKi݇v6W_y BԯArG5xߕznK!ڸצln/,v1,M=w7gʌ2׈{qșrKa<|vx->k7ʫF\KMO(ڴ|<m_*OZE#<yEW|_`z2%	kRĞ[}t~sÜ6uLx5WR=%+o~S ^=O@JPdΦ,.4pD4>aЏ_?K<|}kxJ>	Z+rr@b1BW'Сko0YPu/Pw=2~]Z^	\?_TŔrr&|W2e;o O`	[eSGsz>Vr8|A{8|^ /_ȉlܥ݅GBOhu7Ah&ٮAo#T/KBYu,U)"2bs@wr}MCItG :Yhx`#sm%gTqPbS.#m;F0g:
E'5\㿄?q<&h|zd{{|T`+9nEbo0a%
U~ڽؓSssԲߟۿݩx'x*
]ꂀ;Hh*5___JDߞTB'N?`l<\[|%y/9_oHi1{eyM\pm~ \0aZMօ6Q =]{\4<Rj:VNhD5/4\09곙Ȟ@E;V[q)&;41z]Am"DXO\:'Z짿6؇T[cur	ii"D?|P:7`ÉRn|V.Q؀nӻiM -YDXޗճOhQ|V:|I45-Y.sdao'5f|݇>$r=4l
 Uh<>
Q%U',hѳ:#$N`Ah R'b@cx8f[oݔc-{AۻxFϘ)>VDNDt+v +P{Ɓ";Cw# `kZ)x<z rNT0\(-d4Zl/ Cd3 ś%J^5+=x_,	ГyzD0%9ս|qůBh-}-*Sr'4MQH[]O#H$yڏ?4;BVN_
v7OlҝGz4powg&AN~T;?߽P^?/O'11&Cz\\ٔ\=H?Q|;{^ݿ=?rqBi?FFKCr}7wù0]PQmwM&k	 ӽ>6!%[USXDG~}"R0ZawrshpЊǢ b%dme&Ӄ}Fxc =&wZ^,6RY_[xJkÃ YN.N</3t/B2ᚿP]]-M ecT2#2IrVF`A l_&+PC]Z@;2z_${xDؼ`hղhޕXdy ۜ1Wi\|]\ʢwۡ#.%71ڡ
; Ux>0jpٓV<.RJ`6e&O,[#sT!1Zǈ|«÷7AΜBҚcc	/BǤȪOTĿ}kE}a%0[gK.hCnr%AuS\μ~jNQf̳{-ai5l~ͮ-|+Qd8S0D`<ˉjC:IQipzi͋h96SҁEKce}zhyg3>]E&qBͺ7N]#cye(kh|Z	T6-Jb/ieT{xo>*Ln'tilC%мoЭsu#<3!+dxp,ץ)	x{({w2&OS0s; ?C[OwK]Ũ7Zv]Gw \+U0p94[B_W-ѵA79~pH(//>8&iCޞ,w@n4N jy9̒됨ș mՖVҵ#konOQ}d3~ZOY㍧pIiP*8X~ECٗ,6J+dV}ӶGԗE^q'<w-z=C5I`,5*=_@N9K-j+`*C~CM@xx`2G)K;rN~y	`.,':7|)o\b%Oj$X v% 㷋*	;z
eǎڟ^a_	{ iux
h!acK43W[.x%bWC+ s	Vz,D&gLq5+6eHDmӂWuK`de&:0N
(b,yzEU|!/V[uk^hfWKUԂ^Y2
%cޝ6Npy9aڑQG]aٔa{D:XMPlNlp<-X0c	B;<`ѼUlN}/w*I|;	D4p/?:omxT)
ysF*#=vl/e!ӞH8V{˴l:<GUsBhN#x	H^ܐIz*sR!"m2-JhߐzGڀadiDl߷7WݖmRbi*+p}ynȃK#1v%
d7`D7)T95ٿ:i(	-*.8%bZ,g5#ف?(dp'v~y<S\BfGl/\ӔXiJ,i_(-'_ExI(c/0p*a#r!}\|j>60>
KOH
^<XR@c355KAO5Ur
	!M9\yO:s=ee'
L9FϤOampϙUv!U+u?Nɵh};!o Q<ҿYflnnpwj,acec	Kp~*KLAҟv&0bM3Y84j#k~|䝥@^7$&ewh93tMB@8T{:<zA$0l$mH6(DGn[(L\QT%hY14s,(YJĳ+K]n5q=US~0:ABB[[.5wX^P.WC"G7;CW[ܣLAyc^]}vHýUTsklW&f`@ n԰TAuyq[$ _LcjgtFωlI&eψCE`Pwr	bq3ć;l1gx!2jf̅m.[gx65áui-״ ]+.Q-]E{$U[#<zՕ,A4\!s[/awb8|:Z+ȂofvDi%3Rʵ~%:AoDgBZXt_$2k	T̢&M 3Vom%]cbF|.sV]E	j
(ӔWxiGȕ61xN_LLE3gS˲iϰ0
)8+F\&,Oc[U?6kv|X&#iҍ^IPBQÛ̍?f8r('HF*bqPEdyxvvaM [Tu41	BF޽z&28{f~ǧw21ã	>AbO xZ8&5y 2d5T|pp(^M(/)|B+KfI*·sL12tTbwnIKs˒a@}xCbM5ؤGH$2j#"൰7tqehy&3F(*ǱnLmD~@7Abqz7]ߧA1A7=W^fѼs2~MY5b*DfP;a<R/&~	|SU.įlޒN|Ϳ3s0ǙS0WG03_0Yǜ/f>~?;2w3uΝi3K9\fb ["
-kYdPϖz9,
jԷkPMxEȀO"npL/8sY+cIStzy.[gW\{>&#FVu  #=)t[K}
? [E{՟+	:Mv{Q W)G9tva#C|iXrC[Bu&yKb^۰Q-eOl~ۧMUpz-=2n&㧨c}?bCGxi=.or'u9 &-٣<Yզ41&u*oN3-?e%)}aWwVL}gZI+o,\6nPxAkkEZ)[%ol!iySGwi[J%RO'j2^jc\QZO@4uwg-˺MX9mMc n<y-ֱZFRb
x,@C3sE侏Y7s1ͽv|MV
l}EZ
\㟅'bA M)7KQ&1Ԗ)&C੮/@Ƣ,ޱqؚZiSUȐR⻩[&Pz:1Y$
|L&8us-A`
kYED2ny_pJ;^lҝ+Eip$([n 6zl~^u7g^3$l$k7M\&f֐,NG0JߡLydߋCy=fB*J{&Z%%tS* EA
^@7TѼT=+F|T<e<W>,[U? \>WB3a0h;%*u)wb2Bb*rXF_=/s֭#41sܬ4fx@TטFb":W6s緤G}I${&r4IJsvR|tw.QdlRWw^SP5oOuIG"¯^r&t=5QCs5/aljd ^W(TRy^+R3s-Ε7%Q-{zu1cb_MYju(_Lbw ]y ҷvYedm}CXPh?CoS+[.-LP}˻_FXPU?5btg@їKr#3/t_OI
⿒fQH#kf^-՝$SM2 Y֨dƸl]k-zk; VI
Bʺ+f'ow5jWBO/mv UHdA!	̓Y	糜_]N?"~(1</ 'n[2,WYbB!!.M){Q@ );KÌKAvH\91-Δ[SOj\m$E%o^`u3aO
K x|'E.sϤcfՎ
;<;+oLuZBZTGF/>ǜK3 =πlͼ௏%U;[RYJRU }n
v^X}
^Lo9JTV5kdj+YY˸w5ȫ/W4b8LH6x~6\ޝ+wӐU8Ee)?\뫒{&sO埩'ק!GdZO7AA6)SK9WJ7@?&?UO6z`{<"~pC:C'ئYȥ_çFZm)i᠞dYCMP$(-ԚmZy)FzhLU;$g`w6s"FC١
BEyG%yV\[O2 $KqGj	oiO's=:7!~n1WSRp/Ƥ`eI܉%yo:9X<8jw^&Pp4rU%bܴ̀9'k SW`k,鿷)vAq	;ͩS8^N
D57y|aӋgB-Hٜ8WFyեPi˳HVC=j7@`%ie5t,DSY}ײX{ꔐ H"gˬ嶻ݽ]Ka	s}#mXqSL;⫉Hnki'	|]^
#YЦӒD&ӰA/g/jwYcRJ5DyF}Vg,T{%}y,`
z)N;C)+^fK9{_vhNw+[V`Z=q	RLE!w&>#A?HkaA9s8.`eg	wǻkAcwi&/ǈ2ܯҒ_kBBk8&7P,:Te]U7Ќ^c\-js;.f⫥gzCj]۳tdMpG/Wv\~E4- B3D#͵H3XroHXUNwLj6r,VIK&0no[<e#Cm[C%K*ō3ƒWFQRgoPڊ[wh<+QMm g[M6WSx;#pE]$
pT`<ڹez p!㩪40+pb9QDJHܽ^t}doAf|ŊQ&٘yRĤձ8eK5TqrV`闬۝2RGZV90ukS-ɭn"gk*TФ=IdDJO@q	/`K|A`RBZ=Ć64"A'iãxd+ӷ*1 mz_Zrju^PWח/j`s#g+u'N{墙g?^@?Pؑ,k)->gzoZAr}|M7Ttĭ[ҷ?OD}Aa
-D!?+CPcjՙ(#r8h>l6eDY.˘7ԋDұL;_Ƃ8oc\EYpaiOhыawJ=1nv^UO9vd2tdM/)OPs6YcāMy.N+t@q*7)s⨇y-=S_E!aCJ`LeIMmbz{mp<PZ㛗HGG|8.[{l[~J4w;wjwqvc`U}7jOWpY0_ v,'zN_ C",:j/ߤ,a_Que#i찮Μ]	"maONÚxCo1f[}W}-{k؛\lN؆݄X Djmr]nktgľ|bV)pJOr3zmm1VGEEwMXo1APɛhIUzy2[o	e)q3$$#Ѭ"77oe']5 `mD.uc9tWnYal:pe{Fe\TT CLҵ[DLe j]1Vg*E3r2rO=$za:-zۧL7vneoH\<zd"9pۻ@4qgElkKUg>@R;D =X.Ivӕ\W3̄yTw8XT3Rބw(Ӄ~T=m^H[EMWz{<|K@Nq*,+u		Zݟ`$]uk)Q*63w8C6T?GyP+Bӧ
a5XrZth_V-2jALri\$&uꏳݐkhkz~VtJQȺM#&D9a1dWnUJ !
i֭4)d{Ns~yzU׾QH#x ՠ%=:.{ڱKq2GTő|@@iHkPȁXKG),h1
MlZodYt] v`~Lr~M)zȄS+CƱt='U.*6k|hn4?a]RRĪ$^gOm](Ź
B`9wG|Lie_(FԽv7wqH/õOiN8\^K)su&~9+
ni<%$V<NQ-DR@
vJۗ,hC
i7LUι P\+c]ˬ(EŋMxH	@>z3|Zf凡g)i$;+||PnM\CEoz_6[/~POϳL>zu ʧHs_8}{gG`z[WqAA~Q,aF"=cn}.{
LØ;mJovǃZ5pCۀǠBYf3d<!	](&zF1a˞7${V7x1D`0a"vOf^;:@9'd]8V닓YlVD~^#{v쨾.ȯي.SН }N4-& *<~u)f~(ǺRuõtg^kNy؅2+l!Jʋ}Bz.ЊUgkLJVK.BGvwi[>#<Eē}z^)v
p{V
]G^̙~ r7_w>ij# d.Fݘ|S+ұ+77۳cu,l5e,o2T&YZ?9>SwO@+P%\H55>@{X.nf
z ye+-7#~C˛#9_H@X9HL!bg"c-!:dv'sc.ymÂ	s*s!DhwtXe.̩"Q;u_:^hkZ\V'Bi\MF>+GJ`
NX̔X̙xdϗqH]@_FHDV\(_wz:|>UИq1n1*:]; GCWI
:"Ł{@JKjU7~{8+0.DaQ[TP[O1Bjܣ77΂=Z56JUz'\z'Ipp:%:G{wӵDw}[O]u{m/# e;qVD8eSkdZHl#ŴĘ+s_tXȤ6uPSoC݄Ǡ>!y\)YO*D+"*k*?ʼ*B
/
V
5+.+qp7m!β[s߂r&&,G應qpOEm#eF:/&땰2S	?'LW)	PP-o^?}nĮcJ
؄5G?F/#a5EJ|ݿ/
=.|>S*&)qp08OW%RH0cV$~<~_qrtUqUCGo,faCgMڊgP>jMǩ7sFho05m.uOp.ٻ1!һIʋZWMOJ3mTU#:*Afm= /T!z"P@=^_@(֥X-qEb;ȃzݤP'zЮ6)ՙ:{	8s`0/3:o7aiݘtۤήR! ؏|nW0#,ize ͂;:=zRWү^I~k; T9wMP0ubBՂ$ۅ6)Nwt+\W^3vAkBzqk_֗KT{fw"įVhۏ ^%Y5I+]/y3ׂStMgvd,{ȱހ{Y6	X=d[!]Ґl)h
zXUC2h"[J].&9=fspj $BseO4M=sjZ~:6_hq}͟A޾ecm4{R7sm[2gNNg\c,
H>փh{j&x1Pڏ<oxnR׾YB[Vyb^z9]+:]{vlc&LZ[-C?)zL{u'B"hp>$6n<4>LNx{k<'.{ǷK:h@]o`JL|o$ѝijbzS ×
؞*[
K:5n@*^YI*!s:P[t7{'+߽\aֆRy{TN?VEԼǙ:l}R24e+c-Y~P5_* {0iM
00{Fv>Sa/W{Av]6]qp{KKVD !uD
#jv
]Ϸ	-
z>%6 -X.7Bi~e629`"jһ\U$Br/W}ҀIyբ/PIp=8ad=dnW~,d1ޖ~ rU2Ws$үߟ-'پ K kOKųr1iU$߹~&:a2B)_ȷW6k|oqYd!pwvh:EʞFvh4-@X0&67.4EW?tUhJ-fs懰|R׵2]x1ݲch#e~(Rї/U/mM%8w'z:ra,@sT8MUnӵ{sT{ p)%ѥtTְWr <y[v](X?hr?^eWDS@JA0c|Yxf]{;y<CbK8ޡ"Qf׈QM;(oΔ,!ОF:xw07<,VwHTAo8`2=toY <(CDcU#ļm1f&41	ñ{  ߺ._8_\`@{q׷~{fÍ?w^N|>Z}r|fBƐ98N.\Nnwh1)͏jV 4bf̅(5Rb82S_xKv-ac=Ŭ!mN{Cx5%LST{vT)T$ggTh&eʞ.<0|ߚI?'У.oې}.&Gʏ'B@m/sݲ5WN *}?=؏2?fJNS/gß=?оS~O=}яZ}J|O?o&}~W~z)~Źyf+7AyL!}>k,˺|:N瀶L"z8/^`6 ,,i3v7
~=29Qbu3^0l{
σNsM%$Yy4Lv|oOv?Io5;M9K Ms Ru^o~r~?ϙ/R%5hB|6oh96hЀ=̷MIj+3D>P>ԫy2!B}'&FTV~CM|?4
nMfQͤ?S )~FWK:Xߧz?_zd?3d{J;Im1Kk_*kȅ}ß4-+B(.i;&7E}uy.QUۈ7Ճ2igrk#Dݩց8qƦ9^t0 u'^ҋ==Kfma[m	odP'y_{. Pz|_Nf6 QV]%eL]imR6w^[53m`(@\# ?O#2R\c,%97}=(ܱm_oX稒`e+xGs)@^J5Lg2 ^LwO& Ʉ Ɔ6zmzUZh7Jcl\):ML{#BUhC͙ZQ#Dmǌfe: b?/D?wEwo敶.Cނ/#2ts绷&v	|_f3iѴPe`B-"h~'Y!%gِK9vwUTچ;M[{=҇B'[Z0lQWT=V`A,aOF7GɟP?ˊNWĴ75z^U^bF0	pGK<mWkY&v3(g8k;tC֊=DCbK0P6%%:QCկ8ΘKvݭtsS`!0k%AJ?b>}u͓}R¨utu+'"s2c85):}ͰT^N^`>"tjiݩYKq\h}e/CzwZEnG0է|m?v<qv?"W^nJb	үU	PFN%	ϱ?pwa}\1>DT׶H,~>n>!?
ye~J_?p؟B(3}l뇭Fު/ͣ~w>?/Cާ~%Ǖ*62gWXjh}M	l^/ɳt@[G\"粝J::ZTwepzrռz5aW֓E]D93\d%#@Ǉ*6 Z(]c*qY٪F<h[^k}1u0rcVg%~{,a$;y(dSh,W#,]rv4=-W8Id.6)ym&=vf6.M'h\ew,xz,5HD%]n`N\ĔzɎ\i0՛QIm%ʝUmp!Z1ZgJgO[Y(jzVε'c8ꂩ	Vyɣ\d%[Tw52Ьf@x<#MNY`FQO2K؎87Ş,EM}*0rII4-^
+-i*9`vRQʂ~a%aAvDsilOɿ/~M&9!DpUt&xьik$hlup^WV7]j_7&.s()bj`UZuDs8~!G5q,ײBm`jQTtN] Hy0wIpDȩTn6P$ch=]sԿ[}Izt܅fON_7@H*.jJNq᫙+bX^hՉ95-VҦkw=اǶW ЕJGIP}7=/3= G޸wVj>C3WSl\]s^km/.7ļ?Rm
Xv6[M'VcJ'Щut=H}.fQMtFSpl65[)q=_SlGv;4}cf4T[E0WLÓD)j\hN^4f{?ih|'yw}16cXwy2D-KiBb2bE#˳'6ۃb6UXXa-^]Ec2Vac?w)d|d
?d
	,֮;uf꿫Fj( _7Yqw#.M9mPcGիY.לhL:]5	>#wy+
!_0WX1%˞?/৞%mo'\ԏ懿(b
^SϾos-Mo ~/ OYcA 9Dϵ ѡ/CԿI .Oy+30^nn
A;G:~yA	=h?]P٠91֌S5<Rj\>[~mv\@xXVf-~2A2ʽ6!ޝ3WW3X8
jm{P9G(udl#LpuhڠY#*ߠF ВwB&=[nq]tWg?zby"[YGXP%T޸m g Uz;%d.qWUG	G>S0H쾿7;#<.0+b䊶mäjM|j+)o̽Ъ./
i.?H5Z2&SC	N8IU:+k׸N܋GL`Do1vMзtaťR^ÿOmC3Н=Gn~aH켮`VE<f+IS]+bzŲ7m˳DKO2xYbIuZӹ.ӧ({.9OBJumFYzkM[7}[GYb}0C|akvŶNL;OАMk1dī8dAaU]s; `J4-
xRx1]HT5:x?1`[˩؇\Ol6!n=fh<Dbc3ҀU/YTc5σf>&$FC!tuP/9#rygxcu0^%jTH,PI^_|_ˌvU!J[+^ \s7`˻Аg^w\vȠkf=p<q	]N2Cq<GZTnVgAZV	ϻkVƓ~Ժjyϊ26z6!wX]`6sw0^	ڋEf0zPE4J%qzQzEǴk.Ffuܭ2r70ۼMɣw;J~\7h^ eŸʓп:n_@}xo\\$TET{x^ftlW5p->g?Lhahz??+CZXG7?ow3~O -sڴ4H=daXwKjR#o6}ߧ,XM^
&އxğpNdc~k^q)ybo"*l4f?9iX!h0+ѓj~܆r S!<bs?Em	Grg$MoGim]fKEeCvOrױ~wBzNVYd>Oi3$by	lX[mBʿoMo? TRśd{npvK#U-gS6ndkdMV?3F~O9oWz~߯%[
gsp&K	JP7C0уGWb z5"W)&#ouOPr~L+(իB'gKb0Aenϫ41$^}L'+e˽>&4T	},Վ7}PNnt$^jOuʙ/'/vkBzQqIBM3%[FYvRޘr&o+^l8M-36
4_8qQVTuA7wjf~dPϓߋ.he63e8/E=3]Qm~\W^qV!1΀'Qw.x-G=T	]* =6=mZT+ރu[~-dq9C3CԈĻV@y 5\mȑgEZ{mZ("SW͈.TeZ\Ѷh[OIH%X/tW/|/!c3F<T4/8":Q,jӽIseU_5<ݹ~TX􏦜S}JNeMm_.'hkHD!Nn&dڞ04.J=Fxf6=)SM;rœWa}Y
I`OzISt4ePY9/f'\G	h͚78:d3t3Wi2a=5sZ:qԕXDtw/vkErd9>g1{|3p`Ǐ;x90do՝wz(zl$F<ԽǼ..uGțŠF+Xw<nqrANY7Ꜿvե/Sܝ%Z26Γ%/<OxeSt9kT;G2RƠ#cB\< u^LSB2+^xɂ:"a
+fCbP]2#I ef^;
/L%x6׍XJq |-|YDQlŝF=-V\%|R' n6}-~H2?i~:+ 
axu-UW?Gf6(_ή;zqߚ(}M˄^Krzt쒵֚lp'DUB:dAGi@7qSZ?jKI#-j7%-B*?%|=CÞj(FoF~zy"W0-`m<H!4$ZGCBd?xMدI{WO-2!uPn{'.~*(#rW|;,+U","%:~_IwƊQWC)'-w zWpoI^n}5@	:`]0ߟDlٽ<	p*QN/g:3:Õﳛ%fh-x3'ͧCz@P̪©U[G}զޢDگ;Ws{ocefc_فԔ<!|C.tPEnw\ɜ+Rt2Cp/cqoSH(\[fKu[rU`hD?,ԯ2v52d; /x%ZZ+~wS3?j+^?}4;)bǞNt;Y/7cbkw˥BEZqgKncs.v4zaAe/]nuoo^
x{>رu)d*J*C7gM*^uμ>c6Tnü+g~wTc	/L2Z} 5m#'WY-G;R	[l
c#~P\KEh:=P
0,Zi5wˋ~C%Pw(qӅO"xaVltѢYKo}F);õM#[^NI?ί.^´GO%] Of5S-3(=n-^$R;)딜L&a/1Ucϒ_OY{m ĮH!8f^8労S4P!%^"M|ёɧE	}u!dDVN=QZ|
1MI>_Xe흲W$j.͗ʳsQ$y!}An)qaX[N	h=7{C1rV=JC1Jrugy1݌e_PEqH%/^ D'A}*;m4W]{7<TQ d.f)g5ߒE}i5S[w$\?Yk3q+'htq[:>N /rocAUeZ	|zH4o4h2WB%:&7^lP(:7ӥ9%7"&+ .56ƫW}hvQ6;%l%ތDS9^ʰyrWysMap
*A 5ї`^nE8X<iPX,O䫹eU}8{5|EZ6u"zWy_B ιGcEYA_?̿a`pMϏo7H!Hm˷ZOj:~Cȁ7f*b? ?^y7Cʹf˧}iFb'ko#o&=f6F⭧%
nKʻ'e~S!:E^(ze	2%AӍyN@Ki2gVMOws
YQsh$EYT%p}eLlZ3*Î]񆔔pmƷ'9Pǀd{w"c=P#jYD1kvK[GWZG^zU's2D]D|5F>ǐjSL{F!7̶JK5^by>ENl$[ֺ%TkO;Mnz /10HUk
g_+8?ޘ*ˬ3L 2۷8Wȱ13,$Jꌜ%Ȃ]Y`Զ#n]9p{ϵkb|VE 2*4mahH9t毹2Yx9i9d3_aq%4s=ٴl.@Tђp-lL+&Y5,y{
̜^brNztw{dCy;U?׈h5h%]eDOlp5 ^	rGބ6}WAZ
^Av}dJIXFu%bB	_9*#(u=Q@/56ȏC!s_ k4j/Q'GxV;uU RT̕22\K]}d4m6T	 5܄Wv$yqnWΔ+#0}!3ʬO@Ǉblf8醀.t͓6
4~;GWTEongVhC@pƛpp@(ꆡT=oϓ3Bwcm\_a!wzku! eA)zIIx<>M)ĖQ ZA]{]7>"奷ϰ^P"g
<vr""u7ԽYX>U^ K}_ܱ$}/enmϸg~72΁OnO{`>Y
5:i:sFu8PihϠ8_@mh>vQ!my͖'Zh8uo`jAE5)Џ6hh,<[Q̟-}oIwZ޼
}Yh43|͔ᯞ?%yy?2?Q͏/L~4?oF)mZ<Ֆ$\qszNV9MiN>d.Ϙ.[$Bk8ewBo]3&sOpHIJXC<>HB,&!d%p41_&p9l\Td/)*%1xA>Xe^܋Cxb30I8%Cl	mZD_p&M!V3$\s&?Yrd͙XZ6nP.^=9~HbHՂ=KJ+_ lSHm~ ܎./u-I淓݆B3ֹ2``H:ÐuR߫j&"'nD y)^]fpDKGVڼ Y9ڀ@)\\R=x8#!_+)mfWWQ3-ߚ_*6N֟2˘?_CG6!c;Alj zQ6_N_u*DՕtCR3]X٠eDĤ'1,u|n:ￍ#-pJ*EX2k;j?%!GK~ϒ\庪hla3ce[Yc-M|Lv>LWȾN/~v\
e\xf󅌒/udx]OdpT&cxrufZGΖ{%7,P+x>_^BM3onR"&/T>#7VAlXWb㾉(t@=\Ocq"Ѵ O-y%}Xޓ("cOQkK([ͬ NacDyP\^;cpF(<TX aZ46La
ua!a4ygj17x7,;Div4goȶ;aAa:y'N{1շ{J%BP!HaB7;!7 $T۴hig $-a'4{'h
Vtkp5e	 +Ѻ'R\u*,2RtHĝtPo!%Qs{2[z+9j4c|_q?o SYd.t(~qbYì:+Qm"
o8rFtn(m$er39W-K%kpD* "mRvr+׽rz)|p1& {M`ٞ>Gpλx4ɀYɛS-0- d
KyJ!hGt";+2v幼P6'0wO<ݢ&i;j1A*8J~f]ۈ]6B;^D.s_HSRl<K~Bºg[,/oIWrpVܚ؊m{{Bm[KKMm5}y^ONM$B/}KTxqG/DG7xi3['_rCӻ sFWiSLWzmqގw+N7+tݞ/cnvWD x6u/[P'lo2ZPt3Q4p}qx(&{9ՙ7,|ylpX];\um9΢`d1hwUB	n4=i T/VUϤYahd[15=/Co-?[ybB[\,ե@ '+wWlaB/9ÛJmj~DYe	 ј@Zn}2p-(ǰM'
Fc QxWO-OG~/Lٮ1:*П*i De3B_kڧFc7%Z)TpP:e n7*ﺢ|+{=D]PnNբZ3Y:	|a	?ψ 0$d~#P=(D I5IkAv3YwDz`s": x9!0~a0hd:pGGdMJo(*ۛY,p+`g+mlM36mҨAwR3jD8nDVfo^Z0̰`QLhWb(	"HZ&ԟ؛if$}J[DNT|ψ&>_"~&!쩯}3KЧX"TUO;ڪselLfIACwC*~X*UC*%oB5}R?r.dY'uY4>aj$*%-6<+53˙ Α)O7sKkf9qN"`iC	Rg0,YnTSrQYk*BN][liS܁iʱ]Ilʼp,q'5?S}f!Y4O_Ncҥt{jb6\wARuTF˺i#,ٌԹ,s~%J.qW@ep5T	 '(59T{>Xȝ^V-T/}0:%e	{|;m=IYDyj遷"*D$:{Spm8ӵ`AfCYsG+5"~6&w=uVhzǨorx&@VzQű~pj uхVFoo =*.>{ݫ6Fh0fNoz%eXkPn丌;Y{j^Nٖv|8p>c_Oh|}J(m<fISsK5w+Z c-N$:jĩ->	*x|51aT)"F]51؍oPnEcW\ >;{+lcBBu؀.Po?a(
!=̎FgTqawj,XM5_oԭi,
Qr[T2}%gEi`sy/ھQ`Rbb|Vwg{Z6
8QNb3U}(2ȪדM&k{-fY(dA5/۳{t|{/Lx."G)DTT4^BA-N7gԶڴux.5jzr8=ԇC
Ɔmɩ8'*.~p쯞+P$\|M*[@MKcN3";(1x">#Jõo"̒^v^b凌o7yf0ZB ̟# (@NW"o${7#-ЦHf+{^/S'w=GUl#lE;Ӳ[ԋ桦Ze] 1Kwӥi%L$FX.
؎.@|WZrIySguaھ|Jf(L9ouY}kSfq97bPqQ@iP8}f6iu./1䝜˃ϭV@V\kQƊ^ayU'o}#KIȇSh c } i[\^~G]ht~dۿ:
;cPp7rOg~?#!
߉!r6Ytm8S'Q:;ޱĿLAԿGo'9J޸m}M#xdcw4ϱPXcy4	#'-gkr{gxon$fbHҗ-R M3LN){W>!hxCVQ˕Bŭ|9r2Ӽwr']WhKS? !xaf
и_J$JqgqZaK-r8Ƿ"^ȒL86.b)MsM4O3t30A\7hg	;\C
&Lާ<MTٙC(*T
.nscv2k|L=|U=~veڽzwD'!ա{Hؚ7<apRTrtZ#L Ex2zz`68˜2MLV˫W߈ehevR;\'ÐWո6UE\Wswjm\	1v> EBF'")M+;)dEy3,/'TKŨvO\~kdxeq{kH](.rS?,L	wN>,J4]i->Ź}ţ(6r2}L^D,3^53`m׈vO;#!l?ahv,jTXtFҀ _ڊ61734z=RY$NL_f^D&:S)lh6A^@ٶz}Q79nBo^wd#0q0T9lTz}0=gO1z$c".cw(+E7viZ;Nq2Ȟx2+/<uf[#m^*$5*ǿ2Wp&qDy <uڀ[6F). bMM`7d̄IJ)V7bAsHK*gnh,uz4RMMa;_Btb.8:'/9Б",IytMvyeֽ6Q[7S1"]Dq޺7;,A:f0O쿬g<K??:B`q[ş@'z>s;=66hrGTvVwQ;Q~5|j0م03S_>TQ%Ȇp_Yz2̉+|/7
ƕ9ghRS\?9O& @
|//ξ^)EE}"Sߕ<6Thʇ<WQvo|Yy*/(u`2v0v*}P_k/7fҿ}n}
<o[˂:6/ `-7k@1iTh; 2IF -fO"ƣ^-~j;:jk0K6M@Z[a=<&Tg2Xvdk^CM_w8|TD2h㙄\iNF`}w}ϐK6
/quQ4ehg3њ7<Q\.1P/,S
x,H߀f*QW6{HmfnR,9{vR%zq&nЫ3<ъSOdx{$m'Y vk\,	"\A?h4ZbwA$ZoM]q7h-=x&J]z ozqphIf7cbZVۈUC#YG#hbĈi<1;80V
Vjw,6A+	8x.<#ǣzw+นo@ky1UuhmJ]'S^-|ik
pkހ{kmRPgS'fjZ`]1Tщ~M"!*? NMzМn%5w]J+s60Mӎ:	싌d|:^pl7]@ɏ T:k#C<$aK$p{4BˏP+OOc^,ZvOٜA24ǄpN7-Zv7g<5_72m"v+z6ԡ;:=,"0q77t*;1MrnYICUbM5\nks:;"Լӊs*BMU0(@߂H5>Z
ދ807޹U}F`åi"G	Hb`Dݡ>9"Uf6QF~cnk2eSEհB	ȿ
|,f/B%$
=
b)/,zvșXMBq07ﰪQ;۲C5uxGVHW|z|xV>oX5&S5>9d$ͭG.<xw7{dMk	nE
fPz^RkMgrqPߗ?F5Ta߆O=7U*1ޢvNvi02f1_	wX[';i3)V|Wf䯆Z۟c"Ycv>1}BǛJ;_;:wtn$<$=wB
ҋڜ*MiYQ{w6	Wm'iDݮp`VWI@  SOM6H5N:˽FPQL?Q$y' Zaq#Fzw&IЮU+gR*:KB	4;p2dI1?"y~FA,4Ɨ)>FcWty2-In2)<yycqj@|\>TΜWcS5<,0}Ź#bF'
9\)>8_q."H/sog߉k?drP>D#lwug'?X;;;;ovl6="i jWHh(5pʧ(k'Skb,eDA-1A=p ]׈餴
3MnnS\+ .$F8H)nvaLtrƕjB["@}Qݶn~BX	cUb1DHN~bde;_z{1X[g5DJwܘ]Iy7pwU@{s@u`xUh
FHf$!xÅUըQYdp);B]tvD	Rn#[nZw7QI(RsѹkP0 F8,Y0$3ynD	vDRz#C OQw)t凖r50'@qceO'̽j5`>aţX~bRՕlh:Sf/Omh͠NfCehS#,PJtf%܍f/9@
ʿLw(ugBk >æZ#>kuͩW107h<gm&wwtM/7XY/Ļfn
v^KV$)C^B̎k,z =x-*vfZJͮul| xM-P]i^!fsNOe*y2ª("j	` 4dܧN)>S@3(봗8
cpimK\f"m*/m>ďv-_台.NdoJB.y$VePtԥRR;^3L}3?YVpb\a"vEE(rQ
hy>rS{3`{%~Z'7*.Oݺ9:WSMsGa>taǽě+?I҉iECG SFHs.=*&4xAe-i`cmt@܆^cmlaGR2za1G!=Ђ8<
sMz肔t(Aj١X\=c[tE"<#XbOݠ?$G_8"pA*Erl$<݇j\IQTW-Q.$_y傭F8hW|f$qnŭ5y|_({Xl9U@T?܆Ozwt~Z~G9sShkud<2R`\|~1G.	2e;}4?~{QSU$''Omg$kT:'AOڡ:KGR7mYi;x+RPRZŠwkh@Lnw ('Hf }aUK\삜լJ۩[hYi.-jN!]uw;gPϻEF;ѯ)#WRLϲíSKCniPXqf0.G&D<&Ǳ'}X)볋;:7s}[%G+Rк~a;G,]EZ|*kB?!NqNމ':^㦾ֽD=},"L_uso5 gnoSPP-\}DnPSYN y <aǪ~vQQ^,\+0B$XYnf2{1?hou*Pbo.$
FZ{y]-wjsgUdbQLK{Vr@]=C1C%WCn+ SQON&ؿ?EI0VNSl~++ ׿c2wGݢ˾i,˫UJ ֻ յDnX[@<%8˵^+`
v{8P7\{zάW؃S$nPFTjdVx$v]f4y+9Y_e'4o Lj	cxzH;lՠ:fĔ2ۘ3nX81b&wTM7xJS[G쬭IáDO_o	Ƥ'YWr&&0ҲXE%(W_p$ه
909ċ'=Ɍ1ne|^~ہ+N1nqP6^gS9.t2!D$G{ nuҵ=@K8ඔmZ}',n-k&',ٯ3{ųh7I@K0*hD%0*#1OJOWx
#oC[6
{Ɨ%jvC̼Ǌ<O6Z9s[!DKHCW ew3*>!Ha[pD;pBR 
8GhT}?ȇs_Ɛ+roybH3B	_yd1e9Y\Sq6r8߾ec32,fvv|h?`D?A'4I(qN\`e8)H+<W@R+HiiM6E:EA{جzS1y0SP\tec$1-1yJQyp9;<xv.G]:l o
n%gmrj3Jr>a5a42ě曝w 3T4UIw!;kbxs[6F2-1*aS+_6@ dFN^5-W{ڮ
U|m+j^E@|m2<go	T B4l=Bz >f椪BEnbrևIY3j	Da]HU?zLBE䘀/GA+RpBx擼yob!XRD.\֑8>o5s"^h
Sz!ݓԫ/fVa,p;/k;o65\]*]
ESԨgxEGø0!s)Op5q}DIxHR5à{Ր̓chdPiF/
7.
u:PՌ<hV$зΦ<ߓ-y<Zn\v7&NҹV	c~d8L؞?2
PsQ	VeU^d<_$#6CEy_o)@rmBdH=8랱Fyʰi),Sב^tjP0ή5&*SЛq֊6HeVK1NwD"4SC*&`?TψS)=faT;{jw"7o-Db?`́5!*նN
"h kIWManz$ǹF Wq:}w܇i:蠑+wϛ]ߥ]]!EGYF@)OؗK-Y i(1\MmsômXcu]{뎇;:~lWB+۽P߼,hc<j/IxV;Du6g+3&]#X:$=hL5Pu]n}208-90+C3A#+ܬ$R_𧮏t`ӫ3@3q%n||ȱʏpڢ7>Ʃ<8E;(opG~u]әp3S"K4+]5`KB:$	+\? ݵcK@a}VM;bl^$cnS0qnI!n=_oODy(iS ˭ _0xpGљ:&Πs{RǢihx[)_d3
-S@ʺq8UH3$\۲1L\
PP2^-HgMmCxg]mn?]bɿ_N9 (` xN8!o΄/SԱ^-;j.}=+9gְj'7/<	I۔S]SXWMc8b|%~E}\艣[dUjUsRvcQ;姚4tX(a䠉1-%[Pm5f̶}yH
ʹP:&ɞR30dJ:9팘bU"ۡѤ.OG6Ew/>=;gɸ0>|
XE]b'WfF$kz$v9QJ~"	iM[CI0xrN:j1C\UZClȳ8E8V.mtNBꂼ`6Ж4Vʃ[+}*78gfB9_vM .vEgiT+&=%MjlW&P*-j2)+h%t]M~F
!T	yoHh)uV<'Fyfs!G8%[loT,Emz70G3^oNaIN<Yr\fUMa	8ײNN{"B?GWTgk(724K9٧_Da6k7_?^53w7QxU~I2PM#yDƑsQ-_&C^@OAUnу]
|Y($ `ob
p5aEx١9$88lkApe`"Z>C CM22  h}ms_/Bx~c~3&;=ǼQ!Դ?{3KKS O `Z!.be_!"q|B6\DGf=K"~a$W#KH(t}|H(]ZD߷7RMaHʈ50(j?PPkM__Шhd[bxiTpCnk0ysofQ7U{"A$"0dV)?NT 6DSRWT>NBFNA%֚c<6]Z	pg<@#5J=(LǡN~HI'z!ʩGs"\",XVlFd^3jgځJ^eC,4q,:rf/wјnIqQCҫQ#s`T\?]1n>NtsBTb]Gz{'u'g<i-aS6dOuL̈l\VQ_?KGr/OK{NTu#l͐ 5HD%,~B/ z/Rj96
r9/;$LL&QGG~RGx۪~lW}*>VQ&pIoV,[Ot,	6֤Rb 20__/qqk2Gwh5jRCR^ퟕpX'L&׶b
Zϭp(TO1QDt4I`"ĝyT}tt
qlC-`w0qGE9>4h.P_=q^i~$!Ye>F-D[O$܏&GE]?L31T6w~ݮn쿨'	멥S{zKuWֳl [p-'_0h;n0KCKr0n9vXJbUK1?+iA7x{"Y_mXԱh1ދli	q$?5DyRB+m><7r7Tq`֨"zrsF'Rniy֣j#^[ۦb/b˴27ҭPpNE"?g4fԋkZ׭(
p떒^f̓4l*f1K/T> yMXq,gUwqWe]xt^H3f*Si9/+8cڽmPX.-PA5z(d_e	^|A»se
ۛz[ruˡ![b\"<]"wuH{|L2hU,%`턥tk(Vt*yK~<]qS 7pJQsHӳ
K0@Za= V $Kvu*2f^x$==_N0E-}[O8smRL{8	5GAWTnZ(VTzE8WɳLfr	Lqtndy `p\CjS_\Y3HQgYtvY.VLܾl<o{liUPΌbG|$Ā0GRxs7䖹XUu8}vC<ϳ
en^mB<z%y̥_-xwm5Hun(!";0Y$ﭮ4Dvӧ#Ҩ{0X}ub ̭̉ OpL9HS-K
-ۛljx^i^v5q41Mٲ07'?^ǒ>m/0J #{-q^B/so`ĳICOkqm|8@
Hщ+vr\Ԥ8#bDĘ#H~9h	 &Fg$R-z]:ftc*ܭ=(\ؠ@7!8$
4	aRB`;xz`6w{Uv߉Ս0]uoGVｍRݓԔ/n] AOl'8%Hxۘ`\G¥6զ4Ҝ(@.%kGfQ8
vt4"k킫mg~y6.+~sC4S%E2z/WzM`=0?g4vD{KЛO7k}&gp*gJ4״5'>RkOd9O)ߪ_u37~)i((܌hwpZ(NkQc\h]aɁd#JӴ
L|ǇqN/)6%F!uP.oBkN}RzyJn 3De:܂?24j*za8fRVӖ$$6)c{QXԍ &ԟTM]|A!?<$9{4~̂7\ܳ0 45obuJGz\mWN>!j)<Ԋ*wK>?%Fq4ޅ`Kao%)AÆ៏'疔5kw75kk7kNXVz5ZH;@ ۽[фLPXc~um6ms?%ۯ@}txb0mb2׍mēEbǓ~Z/k\~Ei9`.^R vy{4]qՋ;RT-$<oQ٘XV'vg^[z+pI5E>{fFhsIUAO\{̑~R僦m0W<n#-w15
\gmwf:OK1fa]"wMzDh(niCaJ*ƿ҅U"7\^q&pμl/k]x>(GI8jv*=pvـ!P!v1¯U+;^zxm$,,9o7s~QP*q~ٻEqRZn}"	B\/M chA}MՀzz\<~ϊbZHh(& [Gg&" &kA1*#فЌ*Ql7TQ_"s3T7uA:P)fd%9
;w` Dyںq*A6172nTMK,s$\.8	2ŀTGlJ#/[q_c;#'99-cZ 4¥V*/-AqMw	yGq㋎vLhnhYmz׌[HDWrw2iʱ>%]zk0C7b81QD|t-O`&^.YeB9j삭Eo1d<:aI^}-5g ʹ;? ׷,E^-6^Ae$=nPD>-Jh֊yރAKxyIq7kMIR(:.F/\n8?xyN!m3vMjzDxKǑr6t~e@ٰM72'dSgW,d Ǘv=9v)j^nO?WA>e]ukb7YM*WoA[q72?_9]c*Vat~.ߖ_]]~|+?~4Yo,MֶNyr=93q{nfc֧761Z9{i{,sK}85R׿wОʜJ.k?_؝z?D>dBjZWMl PfSGQQx*-\:/iԽM{9 Q׌:<>	q627R_%?	zwxtC*˧#iOѲwFZu09_{ɪMkoW~3e쳪1_ MEfb#se=H] ܙNި%r``b{}t^0vI /2QEsW$	!Rbp{sASҫy ;qֽlkR;ac''3pIT6Je&÷Z@/+CpO1ԧq@E(i/sAFEKSon`lcU7zd#i<q`'%;G`ܹ^#6}C_;ODQJC@Aric_#M\x
·PQT@(k t`Vzu5vZd?3C">j4tBVB
 93UɆu:c}aN%yQs@͂4?S"X&k<Ce
lˤW^똭gtb MppêWe98,ƃFXtIc7:Bm{>NGqŔ7LoHaS<te|6k<%K:NaQtD522c]4.qЄz^*O`ի YlcǱ)6Wrb<Nx$b<*ٺ9^\w3:')QZ ^	$7@:CC	I]OòG[."ht$\V),݅R@VqMv %liI^Wc;H6	ڍ*KM8Zp|>-`6Gl9J"gG&Zo8y*^,0h߮%6?iaMj*N=
w	]ObsJ: fVA*`<Lx{},#<N|h7erɤa) akW䝗jQM;Ldi95"w:]jGoTc6ReKsv6M^N3jqqjl\HvG y	
fFk(ūc.fqlbgfIc=!_n8{ͨe?֍^_P_F!71
!(s)E'.Om;aG+Lt@MD]"R¼`8M&VvsuGn!ka5o\V'(waSFnp+|5gENLغmH?(|#oTHGA~5iq=2lY,{yHl?Xl]nab
}QJaXt\kS+0K1ENYNV]4xV"ay]&3iѓО]:ӵlQK"!OW͉O3rE8ȕ"bd<GRR5b[W&(gkFRcRx"x+ÓKcvg?^ՆYu^62Zil{SJl!iNݞ%ޕ8l{gV(H \u<:RiJ?ݔs>uJpEέ;σ}	f%+d$z[O!͎uO5fMSē	k+oNӨ?Rz`_%l 1!\^b۩Rk0«
~2(ȞCYWKJ
!N#F~spx(h_>U m	5k3}[۱p;@TH	c\,΅y.Zf8QQ}%8R\T|kl;Q)aR#/9$;A4 x*	0컔W!.!5ȁcGS+vZ;gKd<kNw=4ي*R"48MG% f_uI=~~9UX{\N©:k;Fa%eݐ|d!eÿZX(L6S$ċ<iidؿ_Y$otArDrL%r^fl\ɃɷQO?
R/څlW HPazeð"l!WP$/lth篷M%d5'r0	vh
us.a#9փո~F |h,@>3tSL|)տ_&Ko|UQ2R?6b_߰|UIBf҅NETga{@Llf\{|Qre(/vn+} ^WK`x%IK58&ؾe6'R`GaTe=I"9iGx#xwS%`[ͧL|Q[֙zn
xh+Ǡ}=-pT"/8{ w#2'<3F<W	u9> WCP<%;eh7j=X-J1?f=/O9RIoTO%>Ijb%0q7\ t?)+P*^XQkcpڽɻrktU3tfT%J	YjXWobIzlڹCjPexCHLa=8/Zuh7H&iz_v ̫Z*uJȓ=`Ŭ}4AD &/[K<Fyc@͒vMmwrk2kY~=L?ǙI\K6AEe?c柝L˚խ" |}h3bcS<EDo|wTbN9\=7qc~^Ŝ_\Ŝ7Y55#v1#E61O{Z?E?N%pm+JϏ;؏T|\ Arde
[UUs 6sH
!zynZ4eEI#79v:OjUgڢaST'xXJ]Xz!]-^i[mأWny{-߈ssbFL!܍3Q={r=]dx`}eo߅vw8 9dd)WqMQw1kc]+dU7жhz^663EI"±uO|ePRI"H`uET݂wŁÞ04`E]rVBOkȮGɈ/w@	_uB5 ̈j:N[.}zd.lE͞_9wG,]UӆPTDUS>\~U&Hq@9¼/I"~pW6Tno>XWl'f&Y
_)%XgζB-T9BRFa/Q<Jw&xƈ<@LAc<;/N%#{CO`.z5YC$KYn څc+:V1{y}_+睄cW+_+Su"kT$g}x@0Li+ ,ǷZ;HƵdy'$:{2k3|f=@nʶDA%_ciۍ4YT;I(RpNb5.ȋiZqm`2E{Z8.;Sӟ&{Zv$ *.:^ 9:	SW1JW6{\(q7(pwq0nM 1S-y?	4n51nQq1b`9sִ69;KeL]Q5!BN
&W;vJWf(}	xԃO>%e=zTv]wSb-+uHi'93Gwoe$U>KmTeW[SyaFI3gЮz`e̬~q=N5?%̵PP'@.~ӭ#Y:B:5ӾW̚W={efɼNn5Sÿ́>"(6'D--8ޜ>ڭVAVU#9-8ܗ	huA)V`	Os!9@R\PG/OG.nr		oh-m}ѬEn {;uj[w,|=	E˿2IxebgfxmVXf;yu;[hW8Bѥ%<9KULəgKXyϖP9뤬H#E>i؏߸TЏ=w2k^ooe>U^[u!|HEjR#RGp}E|J%6UBªQ!@c݈ܫrơgčgcf8s_`$/o J|~%wx@Kݯ 8x/9?w#'VAw}Å0ylϪ'vEY&[5`'YpKn`Bږ[n.s{Y+kqs;ܶݭwzRT}0I&m2;LP``n!3~o^lzPx]66x`@!Yzp&
T`Zsgσ4rMXrL17a~$EQaak~,ʏ83_?)1M6c{t pRbcUG|1?kX)G.Mw*ZM}=Zrzc~Ss7o׸9՟<x	A~ykYU!>|n!FU@n&]BZ5FH_Djcئ#	KZKM$WxOUؒzt	p(hNH`r
T"oeMfڃT5.vWۿFS,chz~e6ל^NIwwMGح5AƵ8-|GgQSRl>nMY_N	~ydnΐ*"U5-i8b57eQ.s㝤f/clM ][֌̔
ϧQ9g~aooNgPw `Yޯ5P4Hw\̯}j9?$A=Wș%@5EkPfĕDC"/ c@dŚ} ~<Y*GjYjucɖMDf/.
	tE;"CrV_֧z!+9un7
_1o{iY83c
Z`t//)RhJϷً;$NT=e).(Zѡ/zH 'wK`3<R	ސK0c{_hA	1\@o=.ʜaWFnt&QNVoSIR6L_[!75!ZѐΥ^Ntm!C	}5l40ZIfVXz3tsU*g<Au^$,$cJ-ܪ/*57]%g	vQ%P nIUgpe $O<ciUPgc-Ec߯&[7\ouc8˖4ԩ,=~i<ӝ0b~sup>eqJ2_sps;?scD)JfK vYD3䐐0ȏmk֑U[⻠pgfzo&RUdgosb7B2nG0a؏[ngcpMG{X$)\g'>C4<3ks^|LIPȗ&^Jw6Pf:9g3-~êG5cRל[_tMڰ*O=@oD<kFSE=ioSOƗGC_Rm*̉$XJ!t)P7L0n-Fgbw4Kwy~=gNCu/	aUѥǧHf@Zօi^3R!e6rgp; bѲ^57
K(+MwbRf;_oЦzыD,{.i/H^o^)*:~q꩖%#/_+CNk<5շ-y_7_EV	`a+˘:];"m! ]_~	|`ATX-KGA&6]?_2@Yoz|:GS|ϰSAUf~DboU4'}埿~c}s,8m~,×kCB3ϩ*X-jǒսRO"'@29\tL3euέc#.25(H0=@tM>Jbg4F<hԥ r-H~	jr)n.a鉃%˔TX˝(p`A%dy<zk\.;û
=3,]HT<6 ET&FGp&ŉ$A5E TUcS
Xlb I療ɓ vaz9DFM1jJ7Á#3ľ40()^g=_?bLD'xIWٽ=7ySj	2Q[Q<-w06-x1fݡמݺEm<2jʳ?ٕlI3+x;nm	>,LKc&#f-g0Ņd5+3|,jkaFR9=i_qFŤI=pAae'UȺSg})xg9}&I4$)Z-3F=ys<cpAQ΃H.t``&	'Zs=L˩/~C 
gT?#RŌ%3DMN<`߁7Ih<
X'^na֤WʳmHˡQ^` 5,=cd^Gg,Ox:a؀2J)
!F% kǍJ
-J=DKQ7@qK;Ffm૥%&}KF!*y>0茓9Pg_AIffc6{|6~=͏-ۢƑDUsx|i&I1/#tU6d%=ӡ)F-wbwuZFt9~r^7M;On ͼ39%3q0DX|U˸>H&$͡|%֭YX2Q 5mm0E0PNf0&Ưupݻ(MT>0UU_S93')ctNF֟klYY^(+94ҭ5;*Y׏7ꟿ?{AL<RPB ͷ#'Zzkr*2vϔFJے>i_Z/꘧h"{,>KE3Oؼc}`F0vhi]2W_9MEDϳg_
#["+AҍVE/9n|ԥCQ3䝺Dq'0#[@s3#&r(5#Sٻ$aDNTi@v(ܬ6`
B(7PZd+8s1D_Z	?b1j/c7?r."|(|sś1a<g)F.BOՊl~įw&nG?cw'OreW$F9Z+'gAwD~\<$MȀIAoQ??jNzvqMg_HȾ&>6Ь*|DۘVΜQYU\KNXw.U|?SS~c?CYbnm\Ziw+OLE+xUH*$<e%n"}C,ÞKcrn"{Ca/c$ġ+lٔ}bz$Q) NcaРrԚnDCҦ~@z0^^Śo$!7Bl @*4H,mLPK,0)]wBwJgN5zz4=$b9oE>t2cXcMWwŶ܀Du7Hp՟qݛetO[_K;2zeqϦmc1 x	:~$<]\)#haC&ʼQVAx&|^`aN\ym/$_i	9 d{Qj5Kو0p-(Sg<!CXGJ:CR_7TQ}2'IGWnCF#5Xwھ[{Ӿ}߳RUp{>ZQO
Ѩy@Ql\SJN_/6]^4DgQ3OM Ay1Ivoks(o?Lndx&Ę W!O]v73O57!;X(/l)_HM\Ր"j%t=\;e\\(nIyG\`+S%oWU@ӻx`j6_T%j6IP1mU'{UP$I]|WA̇vj<jYXT^%yi?^jaBdϷ9;5ݼPqVo%XkxK|Xє*KLTc6iGL{VK~ͥ=!lb!D׌6nho;Cڳŧ9k|wUe' Vl[v!-p\T3L͐d䘋gW@Ї|NǙAqPbFr
j'c5]	|Zض4p렁)zTL*ԑG2CĎ &ts/3mgHO爘s&<Li:ao#?{zHc&søz?3@?=!ݜ)^~8ԟ@9AY߆8tsA7'a0?=g Fg254C=qi*ɡUjF*fꈪRQaMkH1oFqV+$(4;8{z+$Fe}	@ k$䪜d"(Xa:TqpT|02%Xy#I<ߦOȗj5n;˪x-XѶwi"ｎb>e|nx] azwm;?ˀl25+Bsmi}=;!_rvC9`2t`_OOZgLy9J@]Z~?3Vh^Xpl;]C47gNVn7	o7QbR3ނřmyXvObrWCŤhkAnL\\>NiLtvtXZƺ7Yڄ)>3-?o9+䏟gĿПJQ<Y&_.7'͋XopKY{2S>;62XFLK,cWeO<1[܅	9/EXx!k6"mu| ''EïGJGY* ɛn[!@~$8D3z+:\v9OC4Z0.hS^~5:00CrHC)6m_)W#g|`yQ!Z*nYB]$whep2,&ڄsN0Ph`D`L^'rZ@g\b}T-Xo_Pvjfg(=!(DS
z9$7-: R]`10B8dQisˏ$l[rXY^;΂äy;/87΂F@wjb+-X^"7/qOCEdC``_d]]v'l0;aMա	v+xSKV-8IIϞǟD͍-LQÖOP{7^կY;g.+:}Lna};ɟβ!Ȟ"۷X;4C;-AEItjIܽVk2zu)]B]H=UanO ҆vzF>z`y؅vGJ+~A;(@Ջ7|Q/~>?K0moan>BZGT\MӖ-E( [WޝaJ:I	+ZQ$[n0@̷gV<ޢ(3`lIi#^/h7mceM[eNj^Og4F8;=	}<G@T2-]U_LK(	Esv.ll$ßxYމb:ϡHJ"l5|L&;L-<{@R@Ucch )[[U %Č	> 35kjofAEkHQ:j7ZA\
 a^"/Pw-ZQD{7gP@|G|GcÙI93|kډ">Cew	s	KkOΑS8L{&\Eww7o(>}FJ0_/gSbp#%
jAPXagZ8;L(OFmNjUvCwo\{DK\p-oVNV~o?M`Px[FREa$|yݚU-kR1o<?5Z?PxpJoMҫM=,:C붮k8nbϬ.ڑ["IU!$]TKk/؞`veY? Hl}?ǟ\?$x\ms6_SgR*gItlW3,'r*:Ek_.H)&7O]˃7^vαG㓣EM,ő0ʍz}:sإe+p0Y:.FՊܡ{Q<!^ߟ90Ma; .+uH<1hq?tf@6
>돮'yI&411.<8G{͎/'+Q#wA{t\\-T>h?Iv||}|QYы%Y7ЦV|ȰGg"'4ǷNSNzs4]D̡N<`qo	]&"NٜXY]ty	X2^"O|8i+/d{hcZܒ(PE?L.Ppit~DiȔȉH eWVٱؙh;11D30Qc.	0̽ݤy mxͭyջ'\ʾ\^+#kQr`BQNd#	W=B1J>i=(T!!fUgX5ՄՔHbR0NDV+`lRb;x%0RrE<	GFo5-AFc-!?R1FXuy;r>IhS.lc# 
T6(1Yf2tp[`VK$7>1/3`
=0]&AlODfuXl6죫͌&\i)ףiȕ/{A_awHT$ד,fdbs#M)ϲt6KX&T
{Ò>Pif]t/.^ryψ͗+c0$6㎲̽a.0ok.!v6I/̦-ciV,Wz_^[b'$LHvMt>aL>$>Xbzݻ!=n7oveLՒX!YVLi{Zv.r4Mъ\,jyG$)'L$p)g϶i0EU &fZ4qu{3_&;GLqg+)yo0>..ʇvj4S߻ǃ_YʼlUL!E3aB좕G!շ^}N
:\{
2S6iXxD.tM&#j^GfhRvHשew<U8)*{Ws>S:A'8u&<
$e6h~ fL$@JvSE&e9M\ꮍw?1gE='+Z
1"-:T] ^z DO(v xKb~|tT~^F{LӐu݀P(u_"a~69zB)ˣ֋L'͵k8i{(UCo쫦S~
4jԈKZ`v6R	e +g~v
6JSbxfJj;)C (VG'@vG93Pg3+3L>֨>4˞Zwjrڳoɫf:MGɹeDmhSWNt?s^X=hj8u~:JRa?̠FS*ȹ7Hvm_QUTmQC'a8y4}Z.Xs	vB9UTJxE3n.Mba>F8P2@M_Csu nNR%Yw$yʓ\)*)G?)p-'&MD(}eRԏxg) Ȝv]{[mþcWgW~`5$U{X<:č%|nMp.ceN2f9}֬wj3 %ʊiuUAl+B	)-$^qَ2n,u:\MӖ(ѵarhL`4~pkPtsYY[ҴzǫYm[5j>QDdֲ#]ӒqWRK5hPE/3Wu޺ji!޴)HhNA&Wo{W4EyuMWZij^)a!qA7^a_'P"tv:Oآp=r:P'2Bݴtx>e"ݴMsf0(ąNNo2e}U"N5iq\î\&'CmyTD	AکM:;;E NW'GtWP/dT֩Rje/)m
o)0;εV=@/ЍݟN2$si%z+FɰvFqR"5/҂y9҅	h?40y% qY> &ALH&Cɰ,҉Xb7UHN^]v=)CUDo0t'#Dv({acI2p/R>A?-fH0	|>(%pn7WO\5+8}JQ 1\2dWrlF]F\B>.oְz+\VuX)`H&u)mZgU?qR^Q199کxQ?+C$X#RYW]4$#2T"vJ#:K(e@Xɨ,_h&VWø	i#d!mְ#⦁	`(u_zA9ٳC?&<Z:Sw!|zD'.:L#xuj0z!%VHI(օ&УQ+cwLs)4=|3E'AKnG (3kq,k?KNlHjݼ/mS[|C{ǹG`i tӘ1Wӳ[[aPiǍ([ۉR;n	Jr#yMWZ,d:seDh6h<<0^{uRESj%}Q#U^x9ݡ~ sۍxYmo۶_)^Y8]{$^蘋,
&79(K3F"s^yh?(`2\xWׯG{YaGl7/&
lEqx5hr5Onud0iE"`e¢	"y<,h6¿AT2ma+ɽ'߲oLxt3XSTB,+Tr"J%~$9/izKɋ79,N\%M/VsXSI@-KUR	}P9<w]2Lnq2]dMÌ$," )9Ie롰lh+|b?+x5yON`@~tΔ*V  Bd
brbiԋK-E*m_ҤCpmp&$"uC,_
$?g\)@t{G&#	RyV1RD&vK"ߘ|/{Z6Ri%(3Bv:%t_r&LUe|OSٯȋ;}؝yKH+{*0a0hŪPth ?QTIyؕxtYm+$>#";[~%``o*j+qEĿz^=Ugq.zCWK+)ƪ]|}gyZ&߀`̢ܓzct]8İak I$W^?TSzsK(ޫH=vVڤ]wYBľ" W7`LvWJN@%9]rNMJrذͺqxᇣ iGU_|XS/Obl)iF^ﶳWngn]MkiC;8S1pC3jCݴP|BLT].~V,=J)U/6崄UtNep͏YƣPi\_^83s7ي-ݯc̫V?6
$(Ue&z28":xn4ָ*y#4g֧^6i}y|*=J¤ry:Cv0h$+.!҈B"L-
eh/{iǧ̗PwGQ扈V,T,ZjYLsJ&Jw^pQ(%REtJUl^LKqxb޼8ٱHslupMrPCi
|i|\	KPBGө7{;:y56gq:
v̻|?/:W'-rt؉OL6}5ɇlPaQyjVG}hw.vN}gh!\Xj;g\x(fR.!+{*Ġˀiba,0%Nm7jcŒ',ȧĐ&sv#[!#6>+c-5Ez W)ې\I,boN[X0Q#aF<a6߱W8R}=gɿ1.G|<PDo8\.vh1'{ͥɻlEh{1%(r׬k]2V1b`ObriP&㺨@DB"tKf($hzOư+hJJ)l)u43͐'-Mach lȒ*Qg!N2GeBD@Ի>t1kfj!j:##FTM4O/yʻzRX:vr54:OƮEbKosTIj9 ʗ?5Z*Yeg\Vȃ׉UHej/h	bgǐ8Ґ\#/0^WQSZiz}rTNs5-Gꊟ*='Kz?g6z,d?^ƉWV0ns])@(LiId=I8`RQye='sq釽_d[xkSH;bsɜ!@R.߱`lgsWJcE|L_wό4zY1Q)F===G;	gۮ7fߵ]go؋suKۙͭ#D>Hp
a=
}/7J]%}۽[nm֜kv~Z :S߷kg/ttǡg{?c\w/+ol9zõgZoHz{;MYBg~
%$Z,|T&_Z-6 dQk2BU9V`9eY`{SC;$)3Z'f5D~ ?? B{l <̰k $ѤNpNR9GHKߕcxz$eduyNr|43drڄ3a3/ER.<_6C9p<yay:c`ڋW&~bOܻ *R)Đ<eÄOӳ?]RF)JG)Ji%,!]h$+_gI_gQ*ӥXLX20@Zܷ hbp	\"fYtg9MQWyf/^׫3$["̱7]>/8vMV	Aֽxx1QihCn_!Pxh +4vrxRH>R"}^Hq,@#p0d4TSBepy93B;'y$6s1DDYG>Vp8~k/өösn1ъr][oϞ]/L[%O8{+PkS	Ⱦ|ƎR9щ$3C#3<^C:"mTWU,f0P93>7Გ*!F@#BE0x-B_-r&Tqh3F`Mf{-GȂ=@wylYd]&tccCvrx^Yӹi_-ytA"<<%ѕ@5$G54;tX+Ж^UQDI0H[Nrk)UKЯBʣ٘%y,hZпg7N[ݐBH	l8/4t9_z
-UbS(20a"〝D 젉C,[5KRD'a!R,\ .5HIDLMjtx>-;-TLcQ3_@t1Kow35su$.rEbfGǿ~4_r;H_S#Wv}=l+b{Ml稢W"Fq\S4FW;+YߗcHs2WA84ʚA.>>imBOU$^9B8AlUlz&))moU.[
-*?Z6*?eOI/ĚTךDyf'f3sA(toBa
_O	ud@s*'cܭyxݜ
\8 />. 1oC[J7[r'H f	-w;[2ADtݱ]M}oΈ粹FȬ,{٫ Ln~&lrU%"mN8d8*@..DňZè:mQVY#R*骪Rq-]o
q;cb,s
w<n&hI:	trl"w1jI*%W7
(:\tYF<j5J*5^P"Bl\7
.Vzp%"y)VwTZUY~r)
I@'&$h']"['Ӑ7'hIw%]q>ɹ^i-
 vḇ$kgɉ`.wTܺ禀KvIʺ{tvMHDnk>H@#xh4q+);5Zm{Vl,'7݉M N8@%1#R" {CHOu㛵k`wR!@:hN
>jYW|װګ#=@@ȯDՅgz6drVH.v?fT-x H>I@_5#	<i!*ȉRe&EY#D laf}I)vA6j4Y
0[
_i)9:4QJ	nWF5LX£Ds	ǐ.4*b{[%l[nb,IX̒廇W c(+r'UdRά퐊gT[
@AӚ|89ES'HIO0Mb62hAL?י.o\I^:[zL3O5$+wB786$XxK'K9Q➀x5m3QϰPFj7&WqܢPO`TIbƈZS2x]_vwD.`Cä#TͰt㩊(A$^##8{#P ov`feQS9Hk㊗MFhY%;c8nw05^hObHv+\uyF#l_\0jqVanm [\X[J[ef.КW-G>d'Xr¬dFЦIH7ܺFL]!8".wI1xFk7͛Dgنr۽nNcq=s쐀"<Le97媋g)ZĨ+)FfKmЄk
D'̿6h
@5
JAxԼ/v)dLJDw9E$YMk$ZSgK3B8.Ua+FyyOZsǹ0ّpxoAo~7?N bo=g}uNFH<It. ?j0;7U 1x@,m!h  %ha	_̔vIv3(f? KtSUdsHao$b4lޜ[>ŃC#W
@ƔMTm-/bդKU4\ƴ*hfD_+D@1d:>0J*D	N+K$hC[|0KsAR%ƗjiT@xLMOZl1YZgS7gxt{ir$LqS}հ?\,}&ʐYa%JrrD_@UV-)/,j
2.uk[X4~t`s++(gϿW֝(}<ȨN7ieVѝn)Y|?MTxI-9qvzX$_qz]OiI%KTXW+MEXP;Se`+d(ϯ .c}szMgQ7BvDruθoF.J+.ox*yK6Iwz<y lEW)Sh\F7 d9tҀ,3$)C[5Wvڡm9ŒSRN]I]|8	WKw jIGM%AMŨ_VhI݅c~ MȔ ߜM8:ɺi6 jN`"rs]);Wrlf\'9nftNPdq!x{PG2!}跉G&UTQ8GQ)tEmb9}(Gp5zЮb7'7>$4uώu.
jXiZdcɠ%4~Hj3ƎM%xkg>/
H⭣#vF#'Μ!ߧ%8CBmжO6uȩyL%ݸP[\#@J$aX%^#>@CiϬW
ct<m}!Btq4IXh[4&i=TFo:V/d5D|vprzuynz!Y(.Qq<^#([}x!×A[Z4y^C)&¥}o(NVuK_SWLzrN#Ƿ-0*z/J%m1LshxANMs)71}-YeaƘTKzdLeS	T̛M=Oį
I{R(g3UX)Lύߍ1y?R#s"Հ`K)ލ-]*W;%j_FKE/lXUP9LU=%OkoUJU1AnmQFmޠz%IE'NyqZ?d?x]s۸]x$KN'#9Ql9QkI}@$d1H	JV3o.@$Jv9?$ XvglA+s|w=0wW__Of8^lqDM?l0o-rvF*ѳfϗh+íCj=0637f۬<cnD#.~ĥdf":ރ>:׿cm2\h4<bQ@-FѰ\Edଢ଼V=57ᠼo!.	Xd$ؘ0NA!HBľWلE
~w3ntߟ?#nө9i4OA#`#[|2!9a&'~BjZA^J\4)	|t
U}Q/_p\Fr"AÉL0:#4l@kmN "'rmK0,71q,H!&'m4ŖŘsa+3ώ'o
kD~_.Lu'-cHfB-ǝb6~twl:u,!?$#_		@=/'1(t(T&&,LhD(18#nw	T0uPY2/t$0e<'\AX$j5[pA@#{
Zs
 WUU.*%j}ʘ1AF,3	[Y6t'Q&on*2*.93vWJv	T֬QBMr+0fu!rW[K>0{ 7`0J?X.\r4p6[ې9uݭDlg0	<؊*DҔl:phYp$Yݞ{-S [3=12ɋpO9-U.K\ƁyOJ?{Kd)l2j &JBKW		BO5i9@W,ʤFN0X6:/wtHmiš5u#p!.3B?'w(%Ȋ;-6;=dEd"A3K{o B<ZPC\IEo@3$JM§;c88ă.ޑ#5[[8d#P&Bpi0^{Y.5}.*Lr]K Q5h1\Mpf+1xmv`3|ۮ@Vm{w.#w۽!^Nt(>UVi^^ӟUT5[UvAY"9fFw]Lks*fN
j:1aUKV`df|!?#YeP:7 t@b>5{iĲ~I{zAYRTAuCĞ,ye?T#G}p9ܡ.Aq\➇%*d{JkTamP""!C)(Τ
9$rp(dnDT{VTTA	i ׏QO>kߋxV̓&L4$IȮ!)3GmhkMjE%с$A v"}GU3	;L3!0v5\Tv#>hY;4LG͂Xaj][pZgR)o"߅ZlS+ISAe{#We@@()]<9{*dpT1wʫ%_lRP+n0n~EE̠ξ| sP"#
6L}2q*&u&@ŉV9Q:ڂWI:pbCo~U@d	)ܦE0/ZY,J!$֒Ld>J	;Pi2px*?X^캠}ٽ(%di"yzG8DU_v9y.z2[!Wޏ@n(-i	U(^
>GK$ftNK}d)p*WacۅRj5O" J|t-PC#Y2L16lL4v J~de eٛ1$1i÷5BQ`QؘBT}w-v 3]/yke&/סUdjB9D2쩧
=<hxSHTM"j~S7"=5d29~ҭA8&Q#'gߘ8!{Ѱc
y>iMT7;V[xx@+Ot'Iߪ}XM!5!ɧ'JMAQUIg%ma8Qe"X@BHDSyV4T?9(Q	ra`>._E$,@r.53X	렊u^U},{5Jb0j	ep[+St?UaM`U˨k'2Nb3$Uؑ*TW(쉬=uא?s}_[=sO1bXSeD-9qh>G9ѐ3l/y^DJV;@h*~ŔDm2 n'=f'3GfJЛ\bǞ]V嗎<[G6Q#\pTX#{ x91?9J{ǿ젂4eG='XUJ\0/xUQo8~WX}]JL]HPu_8wFoƁ+ZD=o{k#_6ЯBY* W%hPhenn]V#i ]^\YQzP5B͋j|hͥr*9"]C!7F2GH(unan)e%ka`	.U)B@+8HѭF, -	<j<1,zեWvfL)M(Q" W;GCv$%N1˒Pm&.(K(,YUVJ3c#SDz/\e0(muǆ{olr,c-
P#!;ݸE*1Hic<E=	@O`YL=b?L!>ß<xZ,I*gh8XNx#>)⦑yD,A<x<C?O=4Dd"?Nx1,"J ri؜&&0gHf~ˈb910	C!?.V7|>w5#sq5cC($}Qx8Px<c88{@bPp04d) t3-h ?>J$ga4aYi1f	o;tNyMS~NݔB_>,Zd&]^{*
{f2m;ZF+c_OW*maH
9R+䄈G`h/ײM-abp{2oWXsîm$3g?ú;d%<t><iyֺTrBqv2ցN[V:/.S^ XGc$`)N]6g(~ٙFۣ̖:$,f	~uI:=nމѠgv3]7AJk>tGT#]#]M	rN]A	\݌r#X =\a7 \!O
@]sp5xn@)&z46ؒP$	Kۤ	A궸e!IQs{8|3x1Bye<Z'4`xI.Y%<\c	#?rCqV%~ACr(LI&9ۮiLEP,g	FZa,d((;N\1 yo!DY{9l+45-&RF.o@EMIQZLk6 GTr;QQtBeTͭ@?ڨQs=kVkJ1,l#Y/FTe0gssnuU|d{H;*@Ɏ@GtK>9v`2gsf#uMLրNW]E6xX[o6~`] S-aր()ll@KtE&=r;H,9iyhs#>,N6aޢzZOH]!
M1~HhZO5V|I~	q]Inb3*^Lc"r}CʢŊr$4v漬IbU|A$,I$	IsńEbdj5"IU1wћLe%WXZrV=j;Ad/	krK|S5	mB݁1@H*h߷:HQ~ w/_Mֶ\M]_%i>10uN'}ujk[("Jx5-Ar`$}0fBhws7eiRLR^QZ5l]UmϟpAPJJ4#s.z7E)քhZTJqDU"*EaK2kƹJU"/ޓܦ7r6^SJbHHff|Lh޹mRgo;m35R!~̪`DëqL^zh6K4:^zX[NvJtFEi=eRG$T=([k9e$)ͺ7+cӛ9|8j];(kdKn׶Wp3"Y\x8 *ha$I2(<deZ8Bfq}Ӑ%D 3"9 ҡKG1srsLS4&A4WK Rs/v \GbbS<k-0Wx+F4{F L`C, ::BO*%e1ynj6E /._n?hg{`_[ˬԜ);#a:0#.Mt-8!շ̲}ܿzFOSo 񺯦>ؖPHr SoL ?-$*+(V>6d'yH8cγxmt D5$I~`^Ѕ>`K}	eWw56_V7wvAoQ^l,ѝ>g8~4 ڂp[ov5DAuNsJDzPhxe.O)JouYp>k7qh1G;@Ulhzok>soTӳ^SejL/ήߛ0|Lh)mq izeVxXmo9ίpMڏI(٤Rw:̮,^d{IsU7XRRN|H=o~1,b=/'Ud|fT<J}Fl%bD6mE*/%㪾8Tk8]3!#+jev]>W)UU28Mk$s@diYuo4.a751&b+$VP)'%jM6O|s ]*ަqD<V1M⿙1^QT,z?Fc葌gE,=M:SօCP4o8!庮<a?~g#,U7/r͔MT̤ZoD0	Nb/8'ߵ5PsǙSb37n1]ÚmbDN~]uGSox7ɗ`_9;s]-L(h:"k(S0r:>ijFr4t"5(	BzCN	<M8fJd}?̈́Z[߁8uI>pWjfBgB#2WTgh$
WPOW+KaO	&PssJgKA_59n0p.г2$YI4f,ܪ;4M b픬xt+NAn}?d
X<ȁHgf1J$g{4hvfX갚	
4:ĢgA~iF Lѱ'ěNֿ?PkA4CQw˲JE\JbƫTk|Hu	E=SJג2yU+Fl~&H[yXDh":(4[rSΰ^S$,츸Nw,⬗tu|M?czܹ&O`:
G1ʄu֨汻`)^5)	vM<vtsݕH׺+6ɟTiڽ۽!B#`Ycǩ,c~ ;vwFXqǂ:`Wfzn<9y8iqâx.t֦#<pViI{PpnҎ0'Hv~3Dn}jݪ .ݫ=̵֩7SB/~lwy:]E"U*HnO"Uſ>ڦgCܟdN:*qeYp^>X$xj챬²Hw}/ed_zVڕ~TёQmkҵso3t 1eJJG1eB&`sSf"%	}d}ZVbfWK~0{͈`>@=z26L!'CpEܖ>G_ZnƗ#/y/??rla[hq[hkMxWO@~_R2UM{:]SCOwk.?C(>۟|ޮn~L]pu߳ɔ]2os@
΂
fz:=h{!A"!T26iKo߭hB.aցI4('ZGh!`D	bMOZQ@Y;'#+"HE#(yjH<6xJtgd<RqfF fDiE߄DkU%9XEf B`mD6&{|C;%xy%xPkZPIN[IdK(H3/@4WD(d+<6%ml0&U%OҘȪgp*{B͍'3#X?Gy}+/!븕zS?FԶ:`GƟIt`ݨ7к(X4QD\b^|iL/pzt ֜˅H2-xD8vjbʧ޷kaR?lX!k6v_̟i Ek;li*$5cLhe4qlT&|#鼗  0#kjwR?߭d1W*β|9W믴(Xe\rrA3]_vyۮg;~)t <=wE÷gQ5 rA&<	f?7^.<
pS绌\ LmkܽF1U:ޛ;KTjpT$msVMn.{%#Vx}_:w
~$mHn74tI8w{xr/?3K8}ؖFѼi4VhN>[ߛ$asl-TO8I7z~;Ѯ"͆AI$7Q.-EލϰUϥI
eǫ&^6uߖ_VC72߶˾Oݳӓa{9얖>:ݭR^crói9?<o`}|>?;^GU5nߴZ{Iok/(eI4Ȃ8r°Xы/'}e/782I<B'޶1Ul=	^Os pGMvyv	䟱hAo8?LXg$b.7&C) ](hպnɍVU6nLkXo/}%?оxFY6N[/^Jy7򲻫f\X˵8l('l0v}xzv6A:O!"֍;?
jכV׽]G=!`rG>| oGGG۳4eg'	o<Iq0d$?n 0F4dWNqLƷ[ _fI"(~naߨĄΥ>#}At` DO)9ps0Ę6tΑl`Nk_c1ɘH%v7Dt8[/@/ϲQ,iS|s'-4Mng)9)$tpi-?~-~uO߉v@8b\a|Q/Nz16a4W$R7 c
G!T_1vSbt~V>p=,:wAci*̉RqoTkO*Xf['w-~x0krM#3bl7}?IY|IopCG ,H B7I}&@jZֺ+d$yȲX>̀K>	&d82?Mdca7`]`w~ǓDou6c?J94@~]P>
pȁq~cW )@>zɐA?{wp3t d0wGalc$DOKN`pB]6|v\e*`'&P!3TOSlAjJΆAOE-ɼK*w%Zץ7yI4WW&;  Cc!DXV+B6wS^09sп|އ>vOOORާǂy}<tJ>ӳǅǄGG9	}?='`4	=T8'Y3ó%J.=\,x"KK|7?%Ζ$gPA*tZd{ga[YU|0,o8doQi#]`QG0bЅI1r=Ab?j8/kmwQ{Ө[Χ7hЀ;e-r}OL;jDbW3VݟN{4qÂ
c=ut7} z`;qmwWƪ*XubαMVg!Z|Z ǵ%n\L{!Z(.<Ae^-NAʗr8N:]yqp*W&")Y׫0X_͒8D$(,gK&1VW<X&yU9{{_F68W#۔v>dSzdK~uzؓ)tVU/gst#٭=}r":؁'IQM$0,95RY&<na~e615LrVf`8#
l,G NYg,GCh>]	-3Њ]y?Izl0K׆Ip믅~Z~!	.Y¨Yc>0<4ɟ~-׈L0N6'mU_2w6^S 0݋,񂐂Q\45xȉՒ.)쯃(r:ț7FTG`:-W[h,ApKlO`pM/cWn<y_^^ -z]j=|SqU{K	5(^	0D0AQD(
O%Nt3l͔Q\E Ve HN85oTu`wXymmSb/_~^_H'V0*!B4"s*p,qTtޮam<U6֡W5^qonմ}[reoevkkϜA|$ANc+g/ 50fÔǒJZft в(}Vub1kg/ևx|	YS^Re6:oaڠZn]>%rD%80giP2S4#
>._DrA;Ƀc;5r}Gͼ3匇/wk+h笯J+-|MGZD<N27F-ï %<`[#sqU<sb0<lBßƏ<z) Rݢlx
;	 ?N;<J|kxNzBd*BNq¥1jJp 6s>D08¼Ԃ"= ;JSBkhbe/|kջ{>;7ɡXqg'Y4pє1ZC9,em¨+@%.y) XT%}ڎVϪɍf'â1sMjcjr5	vG7dc셉z'vw+bG$ژqƛvs8] ='䔢<@OaɥtQ0cy
nUxӥBDk^6?y]mF$IV%orqF=(q#FY=Ǧ&V@<Miwz{g'\*saΔ>Bb3|Hҧf0f_Xd su:9%l^RI<g4j5	-Í#wh9Wną:*9:B'i>I8<lW 
4/%=̿l)yO;Wa4aqr5o_Q`k`67^6kx7^{}=|<;X	76X``ῷp7e'DQa,C~.0&4Յ+%~,F؞`*dJlb3.7QTQ |]2؊߾U"@
)5z[Lv
͙RL|93m6XYFb`Xo>I2c^:cFEE♕&OзD<We g89A$&'vH~~v.<r) Akeq?F0g0':.[.q]]͂2dq/PScЉc+U麠#w$	uuB}pŅ]13زS!Ӣ/E""PAlj++,9'ͮ h57Mc6BBRcCTZT׵(iȎuQpYDKW1s0we5nrf
zPˢJd>tk p/`G"g o0-N}H#wQp[A̮	J&7_?W@3kam$)NhNTD: ߆x]CS
P?FXZ[D܅AVEsG/`LlbmG(e0!0gs<AC>ңrS49B 'o	Up]kෲUg2Jj͊[KDOyp'zR)[LJxG}fl@l>$؎4׸Ou *ZHrH)'b8BkM0H)(#^ Ɍ}ֆ?$wG|:XdCZkZ厵"eL$]cɾ`OůzMi.݌7wnBh,94hIHP<r^@	/mդdfCAN ?6R>/әP$BFEHg7Ŧ%лRɄ&At~!5*\$@@=CIɁ)IBIn5;jG1)wQ芶Gm0O@D[ rnB@praJP"-`ڲg cW?;|"|,[/EL,##iDex?$	j 'BU7vUͧ-c^CfP=1u9Ŷ,!J,u?=G\˧,eۇqQLb2$RDmeB^2B
 һK]Nu9cϥހIbVLNX/-~BU$ML,;&'GF$+۫O	ZFW7^Z؁(yܲke>B@ƨ.rqI1)e-`?p%le`X~zDʪVghm-L]|]B˭BNxz"iS:WOHEYqizպ\fDxM.
\EqAa(8ݏ$$g\OEzEetIִIñԻOtbrZ)P*@8m,Gł`G?\OZZ}Xuh>]ޕţsx8{jX+5s2R(N}Myrt^"ݔ'`8y7.6tլSz
v{6_:EQ)?mF]ë@dxe՜	WNv힨:R@LBfxI"&&1A"vSOP)?6R$"K~QKg@BsUDG,<}ni7F8!HL&V$|]&(D|`_LlMlz
*M~$>C9SR\h"X["7'eL)c,_a,Ɨ7D9yQ5f`LI9CXY5A-		b1-ÙקzƹV?ĭds5R=?)pѦ+?K%LWZ !w* Y)uFb-ݢ.tcmH֯\LBמ#=I@cz:4 GjQ@86(mmqjsdK ېp	
Tuxu*<d¦袂hBأ*:JVљP'JL^q[ӭC6 p&IaS%iVEu _j0̓``z?aO^z0sl[^}?:_Z@ki515UcL}&'0{jO4Zm@*<e2f/y(w4j|#\I >-a iFDY+RO@5YJ,Z,_W̏rP#`N', eU"Ƽm8_@C`=3gQ)BLirsV>ruP8: \.m|)ՈoXQpkBrڼ$Yj07/x2:e!|;I2E+>!/KQ^/A, 8CY6lRd <QihڋV\93+i,1Q7K9/H;ۨMgY5Jཔ*YlN4ۚW9٫K?r'gfu?_y4T$f.*Ï>[>мoρIzyxC<;1xQē÷*VU%*O (~S'ڍZK[?I#s频_F l
(GN؟c9%	ĤزZmA)
S_y<AKg+qޫN1>k0%(ȮDimm^< Z5L8vD0 }<q*KSQ<	tZ($e^?ES%NJe/fŠP5^l'"{)Ly]A"94_"LWTg]x!W N /#'|ߍ9l1;(̱1饑 8=sE漻EP©:4c^j	B/ѓ`ؚTA=RkWIwD`*y6VYzy&LADO>5tF[j$1
,y=3-aGv|<DzIt,3CRh`8ƃcp-ጼ!яj0$
QMCH]˒E*ePҜ2K`s':ͅiJ'^t~sCnfy!dDzwI|ZW%KSRfbm%q:#bSeL{)^GQ'P^\-}giw!7qRd##V;9>};:ݽ'S7}QlĹIxe]0,ߓ˝&4zi襈BM{bO>uBYtb{
gy)QX`e0+-%OyRd$1`	.f4Vo;F+=[QtnBy1ukCsu*k4ѫ9T1b3[
Cp5	=<t	3\$Nhߔ)Sc^k֍:~=RJ@8V1EƂ%oFgNHTx8iёsr6m )(w7H:MIwZgU̿0h?g}R	n,YKUc1F^̨LoUuO^8u;ϡOw膨jDES*3=y==THɜ)TI2hV(ݮЗP˂[4ٛ3	Xtpx	1NBۂɸۋ0tU=Zv:梺QZ|Od{eL?RSkJND2wkLgTxB&x@k%?Q Q	?ΩX}ּ$WsbkXm7*IRRxg~GܕS!rJ(N};ђu\jT̎rE~+@k7àR:iUK҂.<hF
_5Y-RdQ5A-3
jAqLQ.'8eaua)oI~4t?[gNTeosfy1ܔ*Ƀl'fqƵsfPeON%FQiFUSr'T)k_<O~<8IVy=Nsj-zFFU#/=!jĉEeCuhQS
Z,A%PV%?K*(%l;
RX]\ż9#4$}>Y)y_Lu_MK旲jrVn*D27ƿll^{wMkda!C
jCu0OвL#̯kysiS层H%+gE1BXBW<Wȹ_4,B6Cj&<g/-,H-ns\itٗF۶Ta]2ªHǵlp̓0ק|<~ʏz
dezP{hT6EO:R9m M}tZ<mWavxJي{*c(nif|_)>kF%g%ٍٚ%!ЏspA7UԩtardݹU2e.]>4,WGxqtc:+C+?*`OӐ[9a~+gaRZ.N#6OR|_B<dRٳUĩXFdƪ00O3l͕ZuM3W
L@:V.w3ӽv4  KCUL	c	4r*ڹ]nɿ/^=vq4Sx;%̿Sha|g@q\hamW\v^(7_Ep_m
6nG==8u8[;
R6)bax"	?HE`)݆in722o0G([/	Ǖ~0>{:S.л"()ۿi}b10#(kwcQ,`	@HHۡh@E<eǝIx鰇:#;0U1٬bܦ6CfsG~ڸ;FqtKYX!ᙁ	N44K'Z%	Z)ZX5f̋_Uי8d~gi	/SNz}l+E}
~\p23CLʧ?u}N prQ&^2rqgEعzA25xYJm͌OUS.$<2d|b6-COiaMK[7SZThL{N(
.	Vi8+/WΒ-؛2ǩSwT̿YqCm8y㌊bP+&<&iӲMr.T&bS9vӥQzUUJ-EӀ*zz"W99鳭Veܜgzն1#9m=9*Z%F[)m19G.1(3H<澸W6Yq"o+iU.]p9<WgLH`W*n|8K>sx.u]gBa~GDҤ"Ue+}5c80ZSu3Z׽ ڜٶs#/tΈ8M)iҭG,wTK]xO_?GyUPrtXJR^Oݳӓ9˨=G9|
(G2{>hV8zlTm:sd*JUqsf2\o- zH:Z)MV(;8q,oOO4=Ad/.Ғ _g{U::YR/w4y{au@10q/; rsZĝGMLN' Uu0{u3n/kʽs:F[đ 7F6!_#-2!W[T[QVi4Mo`|5i:dgw` \0f5!uъ}J9OϺ6o[Hv?"n~v/lJ/)ՐMJ6Vyey	0GI4,K(/XIoПCU^4 d*$ Z/(#юS~&G#ηoK/1%5ιPNҴfxנSS:$/&0_/Ilh%7t+&FT"{?=PBW7n!ADZ*:-p'r>Tw[G
xv5zFQϗ"k_5PI0jH5E <1ORKJ 󊙐+,u'#F7v=bGҹP.)5"wk:YՁP3lkSdDPC@Yp۟ϻMoqJE*eQ1(wV3lS.4Mle,=E)'myګV}_JdއCzӔw7ث+}9yI'OuG6\,KZWJQCBZؒ}eYkΆ^NkԆ.,f܌C?+И^Ӿ@CVpz<`6}*z72nͤ,=]%W;Tjiw跮>fSw@S{[[_]h~a4>a 'DviͲ:7)$g^8j0yA0z]r}})ʶ!-9h)O&<quk!&gcD7>((oc
}]j,$^o0і0`%n&4i(्Pe k xI6Go_aZ\$7Zz `ĊSp%&\3<l}yCѬIviw	P'uq̌ ?Zm3.r&f*}&][O/cպ湕3*Y7fOnL[W(}>Ŝ1?N^Nn
}omZ%Е矹/$o~d2t-cÃi8aeN_NW0q"m ؏JCߙkaJXX#cK/L:x.e9Q۵>=qfg"wi[-dʲBvXQxIp;7	'?Ú@-kMKݪZ@UcSD{ C{+C`un(BijpěKmyA§˗?|Wgmm?mw{(U򥾴#`_UEa
®v(ݍq'9ŔBCHz^^St~d({,fxxhg/Cmn/ζ^,ڔ .TiR׎ҲCuؓKȵbO⌵FiaNEk
d ^԰4܆^NӒIH>*f =KuP9[zSGL$g6łv˫=vާMПi\xr5HHm6IyJᇂx;>hO{*H:d?᭛,3O]$xxc>No@~9uA9(/{d>M#9Ig>I)q3")]6=$[_Ekk17q?o%,:O8{q
_Z\ݐʟoP3<0]zA
hoq}$>~b0)IXL-{Y-pM剼XqٴQz#1X W-"KH՟WaQ9Q{&ضTs ȼd}wUǡrq3r!6S,pS퀣8#E-z<)Bȑ*	ey󕢸\(|ro<M\nJ \3gIEE0:P-Hou!. VJ@dp\BY&{3/'!WOXn"g #A)z[@ʡ35NXkyԋy*~rs+]2ץ\z$ Vҵu?WY=wr^mݜ<ǚ$EǀnX{`G=K{|*պ>2/[I,܄ݠAI'/(KK `1mR(R~5-"|{xIBxT\yT.KM<L^BNQUqAEDZjzq }~.i<V`kڰ^Zi٧Ӄut{{?ᬽwRԟ~ZyÂx[s8+$C\fbfiw<L9ۘw.̡9lBAKW{7~?귺t͖ڥCsB¾qUt|աQ@ZT*چ91kLRM>LJl:cKFPJ5ωe}y)P*ZF)P}Ҍ)1So*Tg?>&̢ܜ'|x&-!)n)ņߘYԟ /qXp_yƼg"˻u6Fqsiafy<os޿g,okQv5Nuoym>Θkݕr4e+pJx-xmUnr|tגU7ԯZ=-MvntqϛAxPuT>yVG"dYYʚ~at'=--eM?wӆ:+
a Ky_ayNQaJ!׳(m;Ե֭r 䟒`հRg)J{vmM\'$yua .yJĢ>s:S+"$`P1TjөIȿ$wJu6|l7j8C.gۧp!8{>gwhsb셃}plcJ=2e/?NO?u3NXo*MtJ>^ILRGm6/%S22C$ɀǅFi4|@eocIwDu#XEnqq.Z./gSw1[ή#V,9rL}Y"ZD,F!+INPDA0:R'a:P!v`Y.n]M1'XG-z,Y:>\B:xn2 uHeJbSje")r㯈IjȍQ#BQ8o"҉]5F;8{q!c<T3P#E\BWcGO5an&q{c~=	eTkUʩExG4STkpax!!d]kH2)sc8̢Y5tݲҦYZY²g&V!DTR qUnSŗ@eK;\9n`i`xheCC6iC.<%6R$|Q|ʄyębMoMPhF<aHFPP[J!JWYȓABOM$39c#gj
l45A4M2"5wuĺA|F]uPVW{n#(扭ɮwg̣P_^*k/Dc!߉Qr=sgRXf:
/o"ܙ4I:de1>#lx[kUG |MDڂ\[&6EKE*~fl&_Ǉ=ß/8>XN?9:x~xڭ_,w_l}mp{	/OɧhkM^OϖoM?MB!Pxh<dO0Hxd<
v, , YdY@dY̲,!K,!Kr%d	YB%d	YB +
 +
eYAVdYAV,k!kgYC֐5dYC֐5d=l l Y6d@6d̲l![l![v-dB-dB ; ;eAvdAv,{!{gC=dC=d?r r Y 9@ 9r!Gr!Gq#9B#9B '	r '	r9AN9AN,gr!grg9Cΐ39Cΐ3<r\ r\ Y.@.r\!Wr\!Wu+
B+
B 7r 7rAnAn[[m[=b7onlm>حyXɓwiwoZ,&Xy[[oO~8$ïXwN#<
ʣu))))))));;;;;;;;Eddddddd;)]8uߩةةةةةةة;;;;;;;;UfffffffӰӰӰӰӰӰӰwZvZvZvZvZvZvZvNNNNNNNN;;;;;;;;ݕ;[NNNNNNN}ųӳӳӳӳӳӳ_	33333333wFvFvFvFvFvFvFvߙؙؙؙؙؙؙؙ;3;3;3;3;3;3;3;sgfgfgfgfgfgfgfg,,,,,,,,wVvVvVvVvVvVvVv::}4WV3_w.y$3VŹw:w:jc}cv9MՇq緱TRR^RKՏ::R_y{~n,1Xs,ձT;K&-Cvݺ6Xc&U#%cfի|=X]qz:Xcw:jcܱǣ{Kuwcsca1Zh]q~+:.^"wz}Fg1ZWc^1Zhs֛4ZO.{|nޙM<?zMô<u<;F+^?F4Fw;Fc;Fcw{??Sǯ_|#xko6Ip9Qױ[6Pe(!QI|mLRg 4΋RhfSJxJ=$q-ja:tԋǿ	kGӥ?3#(  ,9g=:VG_ 'lF>C'܉
h
fфqpOnhWncga<ֹ9є>vP>U'C]1^<ѧ4Hwusv5lҠݿ>L{C$R	[ՆGͧΥ7rNlT\z:%BV\aR`B`J(<D8BHZ5IT92k&~2O}>=y (dI? %9;ӛχ-'~I	G8ZL$(ZD,LFr;jjeaHf{7SNkɄp0a̈L-0X΢37LByDQ`mH0i@!ȍuhBʲ$f?;DhDמJd'\/m1stZgg@Va+&٬>Px^7P;g(L$Rg.RΉ['FŸTkO,Tqf=VBB%čX9F6(bj 2lCUN-UCGN V>2?Sk'#, R~iWr\%D.+%`nQIı$akČ0j
~?܏k#:yi
1Mx	@ӱ^*2@0dxpYH,d2YCjQqgyoUEQ(U)"`DNIL=7A$ќ-dA'OI@9E0@	l)aɰH+k$p">єFӻC8-`~#,B U|$
j{5D7U_iV-w;w9vB+nb#Uⰴ\p0D"4L20d~V$|6B26{tH6ó~p
޻+RKk
Ie(ZeY_9!;c,aU|P9.Un[O,px"Be/'+`[5"rJakTB*+RvD-Qm|qh緰G+5Qk-f\kns^Ka}G">=[:mzm׆۹Eֵ4+:/ƼkmlbIK{ j9S*[o_m)uW爛/\^*cJDSgId[z0&SF=M=K=B]5^)]̒_+ƼKD7z-{/E!8%3T|[)f)Z,LBJL)i4I8@(B'M^CfNL(ÒJASIĝ+9=]];%glT[oh</T9iq'}.h1.*uTkb6>t,6\E|!8ʨӱȒ3㰕I%+mKL̕o0M@2kiћYļEDMd(I[Jd˂9}D!xfoѪ:=gb7U,瞑z`x9/lKS.Fv덜mT>9iq!d\O;<,+A`^`d4ME{߽irB6[Xz!TX+i\Tc		\A9 (Pr}I%(}dAbk\6eRd{ ;0<9)ܛ{4Qtmp6ޥsY䰭?yZWV1~BSOCWY8 '+(^^\uZs~Ǫd}&N7!me<yu"yXhݿZ^,aYo__Ou_!};M?޺
os&5gڽE鈆0!:SXNΧC
!_wȼ;%K_[ŭűxf,C:C.=A6(R('{s`a:5mjҎ(~G&a;r+.L
^Ŝq^8EOYӉ]0nU.eMm~x%&TÑPo:mP{?bP(wjwH
AUìR/">y9ˠӨJg]T/J{K3ɦBj_y8NG~6_0yH3/IksnJr՞r)+,b	V,g"AAIk);jCúҞ֔ya.4ϺtyZPB|YpW~5dp-cfX$` M,WjԵY2ELcHr&O֞L.U^aJ9duȁ]>;^u%R´ߡj[.W=-?6t={n zɟ6^/%}4xS]K0}ﯸl06}U-֡K[vIIwvhDзs=}sHW$NCr7&7[܅>ϡaLE8i: ~]`E!hƌ,<GupK|Afw'
uI~XAP\IBaκzL^rqtMjYp궠AW<T8 d8wQvm@j7B|+DT(kxk0k&}g)4.AԜJ5<#-Icmٯj?0O)6<ZOD.mP: vx5*3tpApt;,%{JQB`qK 7gb)5{| KVxY[oH~5QBw"h(a7@*U&!j^Ϙ}x1$)
x3p<ލ뛳I0?	n/G?n<qK1t>gx:].]5iyyw+X%f< _3!O"~@҈JrT.lr%\OdFCj
ǌI=Qqް<L{q"QJw{L3D.$A!V(̀$<X1)!RKN }Qc*F3%c*{2O>f!Y3#ap%qyTgC[>JlZY',"7\SOrK$ϘvO2̔)m L=;@c}4UVn!F UOrr$TQ%CRx#<ТG&WFI0O&h6/իS%sD:(PIVFtvon?ƹ0sOn5-櫃aXTH!
O
٢Z?cv%̀F uk:3+Lbh.4b12Jj<lې	"
?9Սb4NC'wӋiayϻA}9=Ӳegm갑ݒ, ﭷ%Wy#4γ
=%1OMG7A4M1#bg"q EV4?֟ J4÷W~M[ǏOY΅4[Aˈ|a9p(sǗ(Z;3&vL4,I"P;;bqD8vZỐ?/	[EQf|r8Eqgu$:s]͓wwt9Re2xք`=!dJ2?-zU>IbL܈Pς^"ڋg\{=3R|hwd{D]=	[}A_!9;w\)"~}Lqqv&liU@X"dgi٢uC\X#OzG֖e2tj(zMw- ֓Tt̔9Q\s,X4"|ShCU[fqØKuk!*CD9)KPsEM?[L#Bãp~5VT7jݎi"0:nn+"kvֳom*e<r{UvHpOeV ,%ULKjj+]k ڛ44olXׅ}BՌByp#Ep"y%jR|II%eat}ȹ^,0J:NŴLEW-h44!Iι5u	]~ț7vy1.!cbaLYٯpV-H1{b AkS>y4̠|L6ᡓ߰@UCI(&.E_7((q-ED5E7v5uOSaC6]vt L-T0g1ہg"4
|5Sᆢ5o/v@jg7TaK67{2<2l]OYW$`m>)J;zwغ3a3w=#׫N0MAپOoFy/)۪n18rz[a%g9;x*ZGv-;Lz	*}>6͵xWoH_1"R/ԻPULpld;I#^`#uvH]{jUxgmO=r)zi%'](JcRFXRE.erkO3oR$5U,iGi!.r!HhRL56ETkj$ع IUi2$jYnaTpȕLK P) 5&zFB%tL0Lȭ0G3nQ
gۥ/+ԛ.RWla]RUNZ$	H`h|8PV1f?m$е*+g>e+5A+$	QƒK-ԣ0U͐YWdîMz1C蠸3ZB<2E7m
Qxg69|Cj[]s±w<|_;eAPOt6ql,;`r3tkViLgbh wOm0ƊuLK#'tL#Z4L,f7l$1#=f0#nPpov;dhcF~ĮrԺF@sfqAx.3c!~	.Y09#ߛv&`kW@v5\{օ\XQ7編uLYhS7fzq;άp0[ON0;oi>kMmj(헡|{b[`ݞ *xn2휬df0e@iBE_D9hRlCuArR}0!&,go\v੃֌寥*0V6"| K|rLƭ^2yKSڽ6ݢ8lqԙଳ?;:׎Վ9~iþ=8jcTaڏ^V8$F*h)dQtLeT;̠_ӹy`|s| ?&,ǫ̐tZ-zmdB
ZJTzD=AJP*"pa)ejGi])eErZXu0@=h^<(InZRﱆbɈb%U&1+%htLQBAT4sjG|Fh2MYkUz=WK(%Bddy\FӔ|$"!	ZN[PSf1乁j0,CuHH$
	= p^x;Bfmn%~գfYLf2@)LV.z6?Em}9̛U{щ(nKnoss񵔹)v}Vӥ_K\bMq9{[j切N:f&wxWnppP˔_~\6rYF.duB.}D;'|8@-xSn@p@VDNT+JQ(84RbWET.wB6vUG/NRH |}y͓*,\KCƝc95'\?x؏L.t:ިSU|}}zm|UƗ5h|SmHp8y.ef=bT܌AEd
eX6ĭa@n%MiVr%o-g&mϘs<;<}<(>pU9Q4]h_#]/MUL]j  blMnw0itGdĢ4bu[*@]vk޶mg['h#1
(c=I0]>^թTKЩFR	Oܴ" AN>gLjaVQ}|VІ|5+qףoB.Eɬ,\s-3;S؝&Ԃa_7Ix=ks8+8IrlOdsNFW~Y:vVv&;Md9HI~ AUBxӅG(գi8FNxrb."qrfat$b}z5P^EQ9oƱ kxE[
.XKl>'zooo[{e_C߳A($mסadk[},xIpXnaӊowwF7{M:	jcMｳgx2<gp蜎yaΞ'ѦٳJ?´y5?ԕS&Bbz[}fkx0'vWв::F#D;g{=(f(Hvwߠ`E;UEv0B"
9ksD"¯͕?EY;tFo'M}c?%oӈS?Fere~*ms1lX#{g(F`0<m<Vx.U_wOEiļŋi|w&4>?Bmn-"T{16(c^RNCGq莧sj+é5xm֬Ǐ-u]5}J~38߇'op$p:=$쨡!|E<͛XPak!\%al#L;%PH6\ 	P-?80:}e亏ósd#'/t(PW\mR%Ҙ:2s^[xY׿EU`1H,ƧTNXr	"ha -)a0	Ul+.ѥL0| ^B)I%gI% y#cye'wkRշRmZńӷ\esMSP'{566OJj=[}<X5#q[aae?n[d8$ =y|lc@R,q '1av<E0G8.d;Љ2l<BeID&zhќh6AfmadгN@eLI)8ɐf88=Swx+1f,	S[DISDkSx<u`ױ%|QOWy0mv}0r-=A7&I\H?a>i7Ď^``┑pxZ.AD	"	5p4}fǛ$Y4)5`)$}Y8FLSߎ?h]u{P2ޟ6`Xc^ۭ`1Ou4B{XQ6,;[xDFsGQs0fDڪ]"WQx#tBSf?O-IR~rۥNa-YzpzJs$OK%U0]9WoX,qcn:>it䣩g<#A/E~ruc'DTS[  4f:# <B~YLfP*20p#\)zQ#J&HHQUu!N$CbVs 2Z	 =ٖHpܴ^dO^ J+-YV<WY/z f3V>RΚ )8>cA85ʥ1N.WkEa'WIYŉ燜R}vsnڼg#y|gY(
g[ĉERYةWa1.xN2"pGž3kpq_AZmtDxm?QR&xSqO_^~->II[:`pش`/N/D^XБ-W$Z"eq{$_$;]:֟U?M1ZOp=k2|OgR@N:C hN7rM0*1+.(<s)wSi,Gk(YW𓵣h5sIvqǖ~/Dt^$L#l<#O"Z
4K`4[^aGkł76ZW`PQGOB
w	SnӲzH'WCyr"  V#TC:iLl!2Eή_ʌfMQ>~}ʁHqLg*nnBf  #|fK+]Iy a(,s! 	dPڡb9ǳ:-qx>f=zoZ4),AP-Z6X&1MT:X?z֏^_#^uﺻpT_ZKwa,Igʛh]Ғ,v
tGդ͵6xl0:9gXrB09v$ظ%]9Llp!E1'ObQdgPsɘ5Y0ؘ<_K;;LÇ]PۑՏ)^ld"4ћ9FyK&Jf^L': _znaKg⬉S(Vk	U*l`]os՞Q15ʴ@IM4\pf	#qg1M^L)ܕleKTRU$uQ{|Ik uH'<(YqݯIQp`3nE(WY$UB-*QS?%uc8q?]9/莡\e)ךCx!,?^,9/63t;:wG̑IJzU(}	|"T3?"(f$zR5Xu}w6r6Sx*,d2M"7z>Ȅ~H^j
v&k.u3߰s 5!VeeM*C)P3oMiܚ4!U'K3vbMܵKޱ(dFY٤INfiDVR³d9#.NU+Zy܌?@XY!e4qGޞwǨ7W$ES..u/L|hi.8KsqKȠU_:1j|na%
]}cd';ݗiB\e8213iتZnCq	әBtt@ar
0!^Nŷ|ד|
֊<X!bm8hw[󄈸
{p!ܸǽmoF2@5R	GiʉIWq2n?J6#ӮCl<Uς2L;P{_^%m+؉r,+mBLĮbE[K9}ʴDyT(׷WFEB:`%ɠ@!:`B^堂(i~`!~hfp&wM܁לDM;xZ`bǺ֔"+0S'&p|L(h"ʉ2MbƤIb4Eg1hXЊ*_LDT S_)%MȤZM1,]^^\(lg(R̤] TvR绋8׺;yX9p^_aduNMveKҒ.ͪnp9S7~Zjtk*e+Lǘ#P>ʖI()jW#3:"'\Z'$І?vS Dq2MGT!FLeNU͗#rUqZ<Z4PZIWҬ|-[JKMgmɟB!$#,$;!f#3ciqbOPUȸWҹxJj2[eќO&H$Q Vod%˞+e+&A]/ujs]8+Fd4>!Xm.\XͥX͵XݯƘj2:Z&ǥs<jmE(ھ%`7oG d՚]IpfAugC.!kW2/;=WVn~Q"FV3,MU;^UE,4)K$~,JǢ&/ǖnB2I)E\T<1I<̤򓷣jrRSԒWT]L\n2J/&/r0rp b3>8Op
<!膶[5摰IQ cڶ,]Eɪ.$JkLZanJ3c`zӟ*C҇iRzʪĔ-[mH>\wx.f{0tIzt-k{_"ݴDț}nyؚU6666oWw8:fC?"&xp[;HDp܏pQٽk4c0`;ƞ^moi-g2ke[g'Kqy5߫r/pEHFͽ(׮A6d&Yѫwt;k7x4	hlMm|g
^k[+{@/#O3s9wڂyl<aOKwɃ~分oG<sX0@rI+
itGEJ$iE[)
h/dEk20YPEBKK|ٔL4;P-<Q_R9YOd+]-n$23>.Tdr#1j_o((>y%RD"*3N(heB(7i@IlV(Of/f˯X1;N;_&3Ņ-Bad2{C!S&"HKn!	S=qtΛRm]0b
Г[bpBF9zYj%5jsin6_'XG|BB/vw/LG^nLLԿP~'f {iӶu\aop+fP\~F?ˠv#v̑7\;?'q"na,erZ+ytFg3ZVmYEvT8 Mƛ"픺+7U:Pz["0M:ۺ{ 4L75ok4hgkvZϿ7otrk+~ch}}]S3;q׺5/u\䦁pcWkkލ=m+} Corq 
$g<b&Kbpp!N
'VÞERdEFzYIz#~qtHL, ']71
6'ֲ,<sPCbUDdV{MrAwI0hyU_vV8 c2,`IYvuYO{t{OHn֓_
 T橔+'Ga΋~P6*s+՟u&M%ԗ32bԝ2̞aZ2{I@04Wn1uC(t_v:11yvQ.'8LAhb#cK8"s.zL.iqnW;gjɿ3"/ =&${}4m!-i-!̤R3"#irqTBo˅r/D!i<E
gad#mw阬!,Md#dJl::KPLPus!
%hrU(/mD'%tSre?Thm35QS%b@>وߏH *eե@/^CժFzyE̫ȏo/T#"a|Jd,!n9CA;W[Ⓒ%.[bU9`Yx7ObxIx-b׎UN".[D(,muo%![]ƪ䣧jMB[#bbXA@+aCժ2鼅k)dI=WoyAr3/R.C1I1o3pIi	IM:-&ʥHt-L=[a|zLTLʺScwG(Ɯ2\۽q{^vٷHNT\)$Z
cŊ-qS  0 bL-#(>Ob?N0yHౖ`L6g,
(y_6r՘/	OXL&(r$¬aYw: o{YE}Ϯ$}k|\&Kީ{/ho18D,6h6vVWr$9><Q}΁YAp('c"!59y0Mmva7OUٲ}$hd	 V=зa66~RvwQuO<#h69_0b'&cABkls% kr@?k$l%{#*o8hcG!>EaEUـ;v/A=9~aU}()ͨd?AY j@$xf!5r`8tE11Jy{@r
aY4| zȊ4'Z?؋P`ȣtWB6"5:؄EDكu Q`^
L/k`#oё75aA)xw%B2(<?r^Yϡ
\d!b 9Gz_-X{0-Ҁ_| Vu}7(a>*>hFn\~7Fr 2!\=u-FX <	iI$Coib0IoLh"Ev]ݑٕI-xv#T&;aH.TBCv,;INI^lv'MOU
gSRHN%4ߦ`-HIE224+p$CyEڐ>_le=PLW'L>]D y{zxy}!ctwRB|wf+;Pxsw=gk{Ég0ȱ.\dڎ*L|w]} vڛz2Vwu|"O2c?{g&cü8`"[D/,gy&Ri?vU(e(bJ[-R/x`y9s/tM	yJ 0^0QnΖIyRN<xR
? %C/C0""8h6
0:̖"X%#6Q 'PAxs	 &[ ''|ri" J[.q1@"eG"	A  !21^զHy@X @}D33\
(kT82Q4ՆFo&8I!pA$#@{5RDf!#)p&Mϱ=aW=7&)No47ۣɬW5 ˫m=;xʆ=1lkr;0scW=gj=]];WL ;@ȺFFd1>o6Dwb8?.b<XxftaϾ$.{,"vjo.,ZG z=~ԁ&L[oecOP9d]  Y
j~@~#Uq4zC@7ANB{
{EBNk}wzɫ0:˃ڳga$wnw14Ō ,^le2GHҊaV+\wv+줶tǔn3Ͽhz>$dW6^LF3|lKH [ wv3&	,\n1]CZqj;
 !'-[߹	9̌CƇᛷ5"s/"d+kbL\;8PC*`8fHs@Z5{82١Z3i;#&Fa[&4/.ajI$HJ	?|/{Z+7UA! ~ pL맑-SgЩ(ֈfd`_ZY[*]809QE㒴bH9r='K(Z3MQdǜuG:]P4A<hIaCb'E:*xaܿ2Pw"؆\:b))<. CHE|%`{$QE0h!5uЩRi9S*7(,V% ?Cɖ32aQ'b0PH3V"Bq3P Qux1ŋQVRecB}VU2,tk_N95	 tEx@U<t
_v6(<U6,*dE$fNwhzeb@@\nJTP1,' ȒJ & 
urhe_{+|Y`Q[W*y8O(~&dT$B1^P,UѶ]kYx~@IPvoJeZmlzV|"yAg2ިe8Ufod:I܇$&tX#j_z-w~Qݪm<y1/ivw) d~ddhK CL\r[dDnJT#&3ej~`kjP{{zQena	{PHC_,.4J>{w0:J )_@f)'LYzM6 8R@aE5Lw+زcێY[RIqBmG2WiQȑ;cM{=qzWP&ᅈh"?Υ vp_W&jqz'V_[64uQMT}Y0Uj%6Ro7'U\d9r޴1Sf+isD@>h
b;Z/G݀-V_P[zuۄy-\XvShFb':0Ã<kd7_a_(^Ct|t1;/[)DDHށ~0_SB AC	-0V&!tYip$jՄ5-.T ˬҶ6>O$˼z|k6mwj!lHļcM@>WZQ|hmhtAXDqw?bqΟ-zR*}^V9E(4RG\w{vsuq;6yn'̲DvPYc<,8}Pʜs/~wß4
<7H^)z	n*d?5̖&,S+XAK>{Tm9մ4u^<dٿTv?ᯅ!'h[r",n-
Ss}?6wxFǭv"":ɮcνHr+~A%7]Tmx>g{5]R^3^':1 gS;$:@rӚt@B[q]{xj;3R]_*83u]Dz	&b758}Ҙ>Te]D؝U5ID;ؚvs_ݠGĨT-	@%Op%OTbCZD~Cb
YJ[*ib6ٍ=]{|WzL1;>љ7XEfo.;<3*P$3t[̱zՎv^"B9VȭY48K/:זGFyaD=ӽ.&Z-
f]>.U Y" 4$BZii;v`Vi'?laz=)%Q	nZM2s{t]Q!4R{@%#aƗW#+ JoN7A=vbפ$䡍W4tۆ1fx9eumը3Hxj[ٳ;ܪk/nvu#PIMΣ 6yɪ霁ynB<91M6{9+i3i@"e%;nL5<`	r;tRM=u$܍\*+O<`h>bs0\i ,Ě^&aիM÷Ǐ^9z]RW@T%b^sl[>:e8J9&1YJOtԾSE
K[c])76ndX9Y^5lDv-A~yQ?VvJkJi5N#ȪC"[^g D$qtӐȸ̪R[[eI wjgj_ēzxTxIs 꾰 3W[E<:{:2km [j}	3t_ܶ	U{+T7t%NgױQ$K@`jdtQcMKf]jLF<mWeJnX5g.&ljtҐAd3`uw>TEj~mVYwU=YqtfZ _Ue^nblIB:¥tFӅQ^mVwR,OկI5=~ٻ]
$ix7Ajtt}_(xP;j<Vk4Xxp=\|8u{Ϋ:@e4L@)'o~xWmo6_qH	dp -lɐAhL
$4(߾;J~KVt{x_&0"L ͊)d (>Tsu0ej͵R ׀lK	
1WZ2D'h &る%dclV<f2e3B#\ibpFgU@@%xf%kiL&'.0j|[?`ф[kLu`-_fy!-kL!&t%hV1>FC*"XØ㔐E:f֬Hu'IZ,#[YpJMڍL15 hhSfKzas2
BʳE~'-dAy03?	FCpxFOcC?[4O7	b#G(qo<80 a.L(c7}4c ry/H.1!x;[=e?>D(Q8x(0>v50'Ľa@lc<+4a@ tM-?:c7c"g]4
-^Do;>.&CN_- it& KGipN/)4
E]/
q|o	96	7x KVX%KUV]l-SjTO\[bX^o7蝂KAUfXV\0.rlt	#7a^C^b+/EVNeӟt c{fc##NAe&_rI w=`+|fݼ|-KlnaWsa~%5֧R`)u 견:Fw.)s`ۊkq簑]z ,jnI)$&6)!4̴}hť
O+Qnw7+|[nɹ4;޲WKE.*٣ X_zocQ,g|iy㇋M^J]Wܫr2MŰmϰ=9ay'pӥ86ڱ̳==vPCSyqDŁAk6xϱ7b!-Ǭ[:eF@ m	k{ԋ{F48'v[!ge<8ѴO6][^NI=-6xUrx({dXfK!'ϡkipW|9kC':-H+Q,RgzMZKK%zCۓ1kn¦47[ ^3/O<ni̽Pm`ezJX6	\e{?]j=;Zoմ;l˿2	;¶1k9iZM+\vۛw2^M5CӻތӪoߝ_k +WfkGq(5JCG䫃ˮɖ6|reik|gaxlI5H<݆0oToYw0<U)W 88g;]o?s󅛸xXksί"Up0$_\M+aR)(apb[ڍL~.	)#(m33:̍|KqsQ,i?6*"#Q>߱čR"-䞷Ys<8S7螹N@"ݺ	6B^`Er4H M;?lIU>wCD b ]Y.p`̇%SH* L*dmb?Xo.a muA .t'L0$ l2hMM	LyLj.EDP1??JEP]Mt@΀7S)VPPU-tq9=}DH Xǉ{x"f';2i55ƀ5umvgή'73	KϾ%_gs<h3S˰mXMesdƆȜw6:s4ӰGGտƊ~aٗ64gc Kl[33-6ۀ E:PL`	3np(7ee^]d80xa>bh(m]#X}_@m69!gdLO3۸5Q3mt˴9df]H
< 3FeЇ|]h35#plY'&yY6.LgA凜 
G9$hj4"wE.>hd*ds":Aڇo{h2A\㮃^2AH݅^C=('Y1N+N/7Qr,ERwI>Aȝ5ǲ]9)MtL.@chdsb:)_<^hI[zQTȣ^@9lΑSTR'(+D/D[N";>((A4$ǀ6B_  >Ik"2\H]ʣk_W>8|_i~0.тcޱG&jE:ص$XOlP|7BOl7rUږ	h"^ K&O(N~(N,4Whf<]3qpxV	{Qū8YQ@_{q&3YJNIzJ7yC=n`*%p̊sg[9^~O\/9 1LФwylϗPYL!S&R%4} RHE%k{o=
Z-:wP8Y/[`L>V^֚27mjZwXW tFp7Vro{Z=,o/_
!@ٲ*e%vy!1
(qnM¨+18cZoL'Oɓ/0ډS҆Әh2cL@k$
'bsunEFJQ.t6[jYQtsY<k59.Rlfs?"\<C䶊ɾԦU,p&)=ɷNVixG_^qDC1G)[9j59MŃ?RǻL1C/W+ܘ/@V?eMǃ(?
Dhu**zҘ'5MU - (ɀU	&۟٧6fZ|jvxϒZz\KUVf?Mu	#Vwt@LUGfT:T̺y$ol!"-^Ա㌨J=s~9ֱDZIidwrjUےzIԬp
koi%%7}pפ)u#4ު	K	)5s6N60;Oiv2x-fম~niV]W~2j?eTeu_鯴h+`V=THիibMvwڰ?alZmv./4s6kh9|OaWGkK0)F8AT`dX˄.6Ǹ")\l#EI~kWQqZ)4ygٕQHZQ
GnZ82MMi&}1TH'&zrGW<༗ϻ˄_}?T?ḛ7aOײXfoZ=W^>.߫JP{Ƚm	]\u'2<bG_2ZPvGY_6E)xVmo6_qH	0@h,i/Ycn蒴`ߑcm4XAZ{uy	\=(q0|m(Yp9T5JF*}]^/\-B 4 Nuss}09`ŕF93hE{P2i97NCDPjD!z([3eEB#f!טLeiuJ,шƱ>5ba)k1rj=k^-M-tW-kkxk1K@$pI5:5~˧)akb`jsAmi-865}m$Cr&7eC+ئEiTX 9eh#!+\ϓȓC%74$!9>aJ(0@D-|q{<TItFA4	i<ktS,q1lg$FhiDm!3FIgN4	9 @dLbv-Y gG~r2HیGFI4^_GOnBsL(sȭ8	$	et3>:9郟g%>Sx5&!-$'{E!#˭!Nż,($$Ŕ?/VgŨN#Z~f頃ֽ-+hHQ~WֱX8iqQe/'5+%7_<-\?]!ٙwaXE1mF/0R=<-$J%=:y Q'4u+ZњOv!nY/22ıq0{g?jҪue/8y{AFS9RbWEuUX2m3`s7Ra
n{hqXZ޷;;t5b,-rmBr;ba̪@
?)9^CC$斻쓽mZm5j]^*5nZ%~VM0Qy9Y/Tbf<[iZń:;ˈ?.H~@ %|`9頻5h;9Q-~<o%gILA[V͇v|D8c2s(Zڽ<N<a!~Z!;#hx{e
Gރ=yvk${;<]u߀EoǞ {xqGoj~x=ks۶+wR$mqql9Qmrn&R$H-Vy  @R{V3m,8888o@_xO؏qr#|+b"Gϳphᾜiϒ`Y}8${P&I5/FtZƄ^ī,TJ&S1"^mw_'J+^̘w'i~r+YthrҋmRFKI(IʃD8^ Q&?9NqCiǀ֨MC\-Ld!y܃g.4.w>u܍dE(}_~.L<K ,bFYjbdh'8sٻ`C(Xt%l=`G{cDB~Z%b磅7+w?@zO_⑧BF=~L?;Y҄i69<dN>y4 %?_D-_#@$0X8~I UPﮠ| IPؾ)zH	lr;߻K3p4N>h  F_{#'2P9CzۛXi<'nSC\k
a-j\N׋E_@NoB<{&d&򕐷21 r62 /'b1"&aXbEbH_Ic4f5n̊
&S}_gOHabDbV2=kf O%[\*Q&e;YD8=x<
q%\7ϣ?r	x!̬gLY=<_" ="`-yHRUơ4s9xm6جh ~f\Vl4@Ui_MlNWz%dMԴؽ:=F*뵯QZik|x%yD:ZSXFYgd$729{h&e"a3(-(bFa:fEGmBfQF <oWb7G<)В#RRjLAiW 	&{5Ϟ2Հ/ey2Yg9|;?{(HA@9>썌$*Oy>(:VE,'3OF.g1c>E({/"jǀxevx`A5~!j{j<@qݍLH]3H&ֻӥ2@X9 Kad !h٫wqZ1yF2sR6hu $"2ނ'U$HUE<*Ge|+'b.n1Ҭ;C[
Ǉ{"/@OZ;k[u2{8^	AmПR{2Ի?]	2F^|Ǘ k	vlf`qa⩧7Ϻ~q_.zCw=7PLE	 Vevt
$HODy6;;Yλ*bn?-Vk	0SP~>CLaC4N.nvto0y@HMȿ
ڶS^Or ,<L';tI!Kzh?E=~CD7Vq\VtOa~tGPHQ5M, \GNMȡ!m8< KEK
^iFQ-^! 0HJ;	Y4`Ҙ5hƑ'nлs.943j!Y+ABOZnE~/Cs4\@[|:-zښ8C>L,[CirG~*a*~\1Gann.ؿ H8*Z-@(AI][Lh54sv3KBE/	~;AT<CHdc4V¯>J>ڷq]S1=gAkјdMÌtdgI=oQOeᕯcൿ6d c,vՆ'eh:;γ*@UM@sxVNtF A-KGw_X̞qS)6sOj3ۓb0`ٰG,R@
Qƀ|aX|_!iBWnJdI.5`*x(.EL091EM] 5.1;K$!91oҟ&@t341y(*'m'/	&'!-a4ט/}<Q\ LXojI4i	pIQ)Y #C]<rygf'l.ayi.g?+zm&\ʜ0<g)`O8'd
 c$D0|:t/BIu-"\_ArQ~j9^'^+#y
ѕ,N:+T%^%-:  GOsM@΍? AK!,mimZiJ`u;|wHigę/h8NXB#P/d+bbKVگzҀ[rŎyg/xj`7do$'Ĝ;9rܡǴ`߉Y*tX#3NxѤ-ރ'YgLqBa	4O"мA:Hh`7]Dׂ_)%^ΚOVWF|[tjXib7o\қoU9ujU}׽bt|tr4<z=YKz#lj8yΤi E_\yF$&V&RݦR%Bddn"ceR0KmpRM|:;(JRn<B=Y'2 E1[?d N ] 4 QGU;˔Rz~!&vq+ՠ[eqP3!]<o-h&m)}EQK?F)|f]g^oHjRA#Qxz 
ۺ}DiqQY/\r)J$%q23mš0k\v_o8Q4%]
IRxD %M,w!lZ	U$c]-S^lڤ3S]NJݬq<:eX҆Gy5:(lciLfޔG?kR1؆}C;=Dи[Ow5hZ,A8.pν$jrSOmr
~MD*d$~<oAT-M[%ioRo*[rY&[W8*`7
Ъ܇EZ6e7&k!xf)?*C*؀B+y}*Y+oe*dvh-Y%T-S'֤&	h/ѕ9bŘ KH[*qX̡<lIvwDw[O4XU>K:*ډ:9rq0fgq0f9Ka`]+z?j\vu;!2eR#zXaVj+pOewp]@tjؿg%DRG$v־:V:'S1&1s==>:b#D:A?қee8md*S{`=zM^BZ.bH\53C[#wDt8!CNL!XaBXź(K_F{>WiqkްMݽ8.8ip/m%z(;ӻ*m1{ˑSϞ.IoE2fzMFم**Jd
!ē]HJ!ASzeٴF.RA50N"ݡֈy)wQX(ǒX$VvY**	ze9aن*jQh:t#PNX&U&TrY*T,϶2?	(3b<J" V?@ARpCQY1r'͂rc))6FVMjLqT!*w2jd<'B0Lef5HZ?G^4\Q$SѬ8KKݩ,	XT@ؒ"(^[mg:Smv:):i\SLyPH9-X 2A-d]`7яL)F(Uhzr(TQuv'T ߖ[3YjG~qD`XBPIn`̞҃YM`)5OJbX^0\j3ZL2.WԵ*mEbeJ~E*GnbFJs9XTC9GW 9ń2(&]DI1KN$r`rVtBimP"ni7+iNS!aYM2;uGC03:vv1Vg8ߵߘ2:Ϧ	\#̳*ê~44{WW7=j}Wi!{/O1zܱ9w`73vٵ8ѮdSgs	 xM׃3E'lu `IaL:DqEbj[a\h?Z>n)x\wA_2eseM= _`L^T[o3~v{=okGS6i:`hJCU֗3W)$wJe4o?VtV(MYT;XS~BM:CIkDymڴ66?y1Uo+Rc"\[žߔpY pqt?"N;1 b}])JP}owKr_\)37kG~$}}=
፠.yoEˌ/);0S`FOY^pj]~{C*<%[1Ļ lLǰKAm!O;#K=X&&ryNidaY>3Z@o{#QP@፛)kwxX̕xс=M+YTލ~>n<zC{<UrQ+1	N9hRM٭QzsKʁ@1"kF''R~AHTzP%sEޯRxE=,91(EϥVdPaK FAN,~ym`10~8YE(;HI#VVbKʏhI6ݪ+ka	![:s`8z"̨v=}LXa:gʳfgچKgBʙ Gf75+Zɭ[2;ChO{4Àϋ]r[	\
W+CTmǬf{sB{QeG3L~,00g;9&ytHQƌXLdxu=\5781޺mdFaY[0j$HzL}ibt>ūؘ-Lm7L:eԧj'e8۾߿xm3]_lgp a{V@V)#ǨJ%v0ִguBO]w+**Rjd+1/:\)4{N+Ju}

;`O 8Jr(|٫c6*$H^\rwoG 
frO'dqZO']
nZ:z|j:n HO}Po1zϠ+ngljJwأFޛ?¿x?8M[ji=7ҳi8G5p[K~g]axU]\N ]:;R\W[q2t.(1RjIogֶz&A{tNzޭR`P$žBujX_~@.`_USPxj#R`e i6C<x*m7}/YV`[rz`-n`oQ,s 5Ru^[Y#±@)XpaGqu$_2{jןobEP|?!bVoZΧ3<SzKx%&mUEN]GR[xr)'!+4Z.#
Tx!:޺qC(4R?S\_^녕H L[\\m{ތFR;\$`m0l/D 8
SK3tө>qCL=T\7PXMCXj4-	:<"5{akɭw؉p(M<\&Vu _?KJ͠!~29]N8SQP>sK͎@N""ai^荂LC[2<TWNfT3֦ٽܤLuFn@2g5mה~,!UI5	낿S+E+QV#zFޕ*-rM5M:|χ>)>0)hx`ZfnΫ)V~\իVD@	mz__cӕMPQ|b\?▱ཬ
0Fl/4Y(rfԪN%Ofq}{r1[hΝ5t@M1)
QFfg3kW],KR̹xHG
K0h@Aqv]H
&f	\;b|n,voЯz	xoĆ+C7d]^]oC`*ⷫ.V,[a{vJX0>4YO]ڂ8m5	\xI8Ʉ&4fZ&qme${ލB!R!L]oG[P=u1-2$B8!C&ԪnG&Wէ'BĹ 6..yob6,(N|u*m;8&&_YT*Ub_W%0OUzX!nOϨ&	AhlDebR\C1
ln" $x`U!ƞ*?Uϋzn5-} r0j=הKflr/a4nGq
Pו셸/u{y1A7߫1Ž݋GZpđܩ?M!d76c-Ny!5H]5j|Kl22;V%.aH>ؿIk+ƝϞj'Ȁƫz-0ܯƠh}΢2W΍<`)[*_K	L5N}SC&Žh?O-]+~!h0P{0v	dA/=ؘ}JxdF/w:MLG5l&-~3ݓ>Puܒ>[ģ`d}qE\M2Sx:_t J}hC( ? ⺹x, ;<uHG{Jצ\z|uu<+䫔Dbp)q>" gkTw˟GXlQj;ތËn2{֕j=+|X6h (.6G^!i{SOTmyV`sҧΪFHUgŴؿаfWRW]?-@N[m3+'=XY)@C-gA ?<//&=%:wנHQÕ4'Dg?(+<ԗH[T\aUX}G\ff0{Ll o#%Ał2yl.Op=\Q\DuZ<%~&F%W>{Çg&W*wL\_c'ǎsT+),rO=^Ј[K?Ckݫn0у~UcL0:~.TyhS2k1cyxXko7_q l8A+{x]Qk[&ŘXF,ɑ]3ȏ,6a3}u&sϓh`M:/|lBn;&`|}v99/ufiQeN+ml&̒(dΉ[o_w~)RILLm-]HNZCxέNGjIcLeSy;-ݯҷ?J-՛"{tF>5^{Jϡw> p,="J')Mlf),k=Ge5+TJgnVU\H蕲F/!琤^uoޥIEqO2}ZCR(5yr>8T٢E悏Cg
>&*%>
=m)PNO(Ϟ%+a	}? ֪L"D҈fcΕ#]l(ܚeh}̨EtyƦj^y|`ԴV~N\)S+H)S+]d3
406f!fRYHJe&(Wi&sD$ iއinU:Zۊ),mmkw@~{xvլ0^
<ؚQ:}}<^.KM)dЅcC̘uߕt~*}Bz,P.ᔏ;Mjp5rx1JϮ˃z{2H&׃MCwm`QRTQ3NƆWUPDayJ?rݍN9Ma?C=x/J_20fU[ya|
{$^>ϗ<[5$/˔_HXϖ_@ʏ~7(߿9Vl(bMRݷr*D͍ۗƔìS_DXIC˶j{M
*$Ao0v$y-,)DR!H+	AL_ԌJ+Db<M?MVS*ut!S>Ғ]bj^_ʒsVf[b{~\`Prd6f_yy6DhEY!7YcNރ,!IvվÓ9;mO9 xVTɰc 370k!E >	Xǉ֥ Zi?3lG䷧OK	ˆ|'6ԙGۺw"0O&os\tϣΈ`xo萾I4L󴩍'G&k\.򮴍xgɷ(m>VPP	W]}jއ3~EGYS
P
/&\'pq&UaFbލNB|p)ۂ3o84-R(XS^mè<Q&O{&ZEUK+͘J+!״F\%_bv	r<8&w`UUQzz 2ϸeeKB]uh6`Vgo3pST^Z6i>HQYgycz6 =
kPCr1&d#ةUuR?r{w"VmQ8[]pfnoh}pߊ/JBS#Wp,7"^o"12]{Q760ѺmkE3U,qB_V3F|t>`t:/_<dZx}msw
ŷ*	&vl.¸8̽S]m'@ݍg6}j/A-IG]G7oX;X=,f<e\cμ񌇬L88oqF7o"?X2?bP<[|RcӐsLx慷 `>#hĞCPcVg )
rE $FԟU``(W	_@#vǳ`G01A|= Uc/|B DwTp5&rj}3YLH`#,%6		B0t2F1gk1f G1HM<GRN|ZԐ9MpifAEY%-E3q%A=cr!$$|XURI+]8l?}jAc9c!ޯOEzĠƠ}fs}f?wzg5r5pCU@q^uz)4G۹ O}Jhg3h_@I>ygUk0괯\ :t\:Q:F`>s>o6hua1(σ·w(<u`|Ӯ#zٵ%Y} 4r.*kG~FYFДU?uN!"|п1.4hs ļ@P~#롓iuۛ{{|nz/<<lx-qo)ċc>VY8|y-g!& uUQ|.Up×h	>6ol@MQ}4<A,	OfނG+[G(50N	Fq=E%ʼ6p,bg9b5m>0nYrbf· 5e׷~kmX}|fɵphfGo$~=hx-O?E^~AT8X2W'ǳC?0?OblϻO:cњx(0
PZL_r{ ,n"T%hLPu.)$ mě~PmϜuw$W~bn/..;Ju-~.NCO/IJz3ڽxя9ϓ
Ωt{+>ccW,~Th.]w=GY`
+_5jVHUNϷU(?@"v6b2__Ad`V|XAZeU;9a 1D/zYu#<u{Or{80	O嶻bwjW_;W'z'+n(i8=,~!^8-;z4-x=,V` % ji: #ޤƳX=U"Vk{jXV]w!,E(,c,gPcWqxc@!DyDKE7E5B4,5* \1$g񠁴4 vrTgE35`{w?@J3\#\*n B/>Fd]|?2y,L"&Ýs(2/|h:%>5y)cޟN#Gꕘkvʠ09tpZ)\`5K$/HA]Xkˀx
!ĊD+>b^B#p&{zZρaoi;xzKpq!/_JF>Xo+8&ViQ2w
}(o5jk-x2  }"JOM]`e1|vA^ҩ_uNv~M=TlDK*7IB*8aKӃ&?|RO0^fMəQRBO cf'[;S#y^J#6q ,͙`l!րq@`/0,c+d"F,6;	ܭ+rԛGܐ7qUBtbhץ9LPF,HOr%XrKvO+,@m܈"T SғC/y{$Mt6"?΂)8Yc4/4!uPKb`;)&IF5$ 3h$,#T vF)/ 1b~8,Ba
flvLˡHاIQlV14`W`bɽ8+d͹@dĕEn&X7~`.[c\!rC1$b6^x_A"$hNnZ!P%kJ2UGhLZMBb&ZhTl	7OY7w2,)ۖɝ}qCvj\|PN~|ӯ
[9VoBTK,ַ3gрPgݶHĠ"=#)q֨c&3b7尲xEh/D!zvB:-
`܁3HdF5F1 0hsLĺe}هl#2`ޣas)%]'d.iħ[T6d UKX_Eߋv~GvѽU=6p1f`R	h`խHb5T?qOr3DE5|a5`b[ߺOhȪ}ꆙ &"TceqO܄#]^Jtɱb`1;>1 7v
7X>!:ȩ8cT6+k`Mi[ ύ1iE~%$2u0.b,DIxӦI%ۥ$l=`t=׽OU%ԨE0TA43Ľy\
5r-`U鴦=):RS@ㄧI҆a35s&vyIaFd~[j&f(YJ@MzcbpxVؿe74:,LԄY.,4ԓ0\}f'^ qs!SB	*E&zۋ8BeENZǫjm'Wev[ݍu{ί!wz~D@>$<u}OfK:"D@Sh`#=B\Q˭\4Y|g55NflTMRB fpez+R*IBo7QA=E@uO>i^N~9FU\&fWM&OVμSUkbkAVȮVj7aER?mklt+B"'R97S̵JTUJpJ(=IIB!TRTtHDKevHcyCey7+b3BX)3"B#Xכ @WDt[6d[4|Z1ϭƍkT1EO4WXtEj9R=h^wx"=^[{_fb'c׫	f1GF[Ri4y3>Yy2,7!67 @7Xbb/M-1Wsb"Os}R0h'ad` K-cNۤ2/W D̻K)j=BM>%dI!٠ؘV7B	P:uQ!rhILVҴw/'/ԔiS/^2x8[0ug/Chfnb14:Vt3@3\^тK.cퟖd%* Uv[hR#-`0KW(^<@ ,rcX&_yb#a⣀*{A)6}c~)!U75eHR+}xF;&Z0낉!*곪	O3K:S̏nn"gA፻~!	:ĄAm1{NIW4aK~
uH4 !h}nn4xJ@CTl$#=L=0ef#5oQ @{%D1-Ƴ#Zҝek'x̄ݙ3ڞ8YSCx9)b9МV`vyh2*\Z[0+1䫡Kd4j5ъ,9mtΚf;4b(;G$I[
UѮ2bq:$Ł<><SH%)V_yj\"_=]S>JƄd502B!ACޢV	@xOKO<L32e:[K<nKWb΃Df@E$#Ʉ\DΥypOOE$f:(e䵦!vQqWF&LӓgOo0< Vj@dIc`/ǈ>>$y|v~v+7&|r-Bl!@`zAWr\hT;ٓ_(Eir1e+)g:{rG*iGwY{]uV{ЬX6-]F뛊Y&JQ60R#0>&aVf4)HbX;		*"X/
},yKF Dz	d"ʿ.oy<mBTOFw]qrrGG˲L'@4P6fNtY%;387&c|Ra7jYe
19%lX
{y?_}vd2&"hD څ0dh	x{߀NQ_z	*8V
L͵`Syy &{JY%E,!q-WI99ǩ"D7ț#;IIIѩ%FRo* *Olc˚EΔ	k5fS8ĉ3ߛ@#:26~Ԟj-o@mɐ4%\ĝ賥Ks;"5,WQ͛[07upy?<zsO?Q8HK+̏pO,4WhZZ^>ky_@a
/f&04ҥ0o	}Zݫ.fсXqYptJX~5 q6jfP,@doRoHsq$a}E8sJȺO)	:豦oPһ	=5JUiCA|t6>_2eD.uubsXu_f}PG]A;EMS='#){sqG=@Rќ%,qfN)<FL"MԒJ.0A>'1D*h8vc>㖂jDUrA*ln<ib>X-5(S󭣔+5+Zx7 "1x$JfGCin|ꊚKJ0ߌw #)nЬX+ULF.@
u:&w1q#kr"BngGI_͌Զ5ۢ~ԑ:5k?-kb|UfQRZJLthgQRKT$_7i"Q<eWȳX		Y2Xϭ6[.i3[vʭYj<ڍ67%^C D|=?q6sAOJ㯤4cU1ʎ
B0k$an>|yg9Bl9b]Xo
v`TF덦UpR.qQĀdRL9[LG7Jfze%9cXMłzG⺹ ~G:Aw7<Y98W29SdkL`e,h\b 7o@+q*Lx㱈yP)UGdZ[սWFkg$ˁtt.!x?36DJfldp7#갎
HdTuK}QYTDsSTS'Ɇ<)zN7-PPn)Pf Gal4MAtL@~;md5	_Ǹd
4uUu20ݚ*oS9όƦ8"	D].;ݬF9mIߴ	cЗՓj%Am:bܡh)ڈ
,1n'v6

3سc-Fʐ@-'ֽH b˗nb_')wyT޺¿(eQYyܞSɿn\AXlY
:k/2 8LLۓ`fG ,D$RAi7e$FRT j$MWҋ<jEr!S D?4;lXf@W$L~Qs͹2u0$%Ȁij(
꫍`SwD_}utlU*=f]=ɕ4h"PyLenHr쉾ZG)Îw@1@+2>[Vq.~?ކNzJe fUz1)ȔR-h$#"PxBz¦\'@ښ[7bsF-PCW3 :20Mg(JVIu}I A^Wecb({885MY3BR+$^X&q^M+
/L+$\U7&c_e(1	m]ގTG:X2al&D_>Rmޭ!;"gYpIΩO \U-U:ׄVa]%j1xH`;fH 4L;-<v+g"9[Pf"[EA3Ƥ|tm:c,cҦ'HLnT0ERTP.)äxdn" (xxւ[p<8ePPѳM #)0c&=SQ^CpCJ޳	jM>3&y))OjY=X	CE-RNnf'Ӗ{"_G7AdO)`Y!4Ͳɹ>fe7.{f)؆{8iPh>N
dP'&	Z)o.&bѭqЁɝf)>W'w[#.nEq4^/1_dDxY섉*J[LhPL)QN 7t$M(ѮR$ܕJ쯗e4)LNHĴxV<Qo
}g	A+d&yȖ_⛐@FR%_y΀ 6CB+W
)YOd's$!Ip]2&HR!t4BQ4BX)U`;VIHDl_+P!$	rP6\^oJ)_VcZ7| zoj{NTGL_=.wkR1zG55/0y&¹3sҁ}$YI;ր7#"!'M:*5d]BR(@H~@^Ժ+sgk}jm{@5R/8e
sU9~}NK]t{D08Mn;ΓFf[䃵a	;F}(Q!% _#0>Tvh:!ߌzپc/ʹOߖ
T:T\Mݜ6*)xC`k0aʬ	0r\<sAqgv3uÔؖξj$0MGB,7lAqE)7(ڒ$8c:d}CEL	GV0$]y&v3K6n/r$Or,)h~	FN]")\-5^42d|̆"ɬ$V-4:tCf^lТN;bSTc).M0UoiL)i,yki3\$`{#1	"kt;_((xF/5>wm('p#&&Z;0jݘwr(T>]0yFt,IIE|Ra)&oa޵f~!,tW魾i˵t!n;Wy:]lK#3phI]tSKD@b,kTw!oI"svάl|WAV4fRVbV3eR@bjZ.&PG-JQ<)TrΝYNo ܖ~l'(G(' .2rwzke@5_B*^b}|3D=b_j^&*DP+IGuY	_GehpHq%[ufT
U46Z0 hDjQyoY)C0b<t/zd0	>`Fc!v$0|xiDbe}3RR>˹Bȣ枼 n{ U⓭^D9F}n{$dz>"HdoxpZ(]Mf+MIj&
Зl%u(зǋpB /Հh(@KςI[M*i+ ^[WMel/
*C{U귍AMqF(-DvV҈tezp"!7emHTr)5o;(K`.'[Owv!C_C(\>ڥhK*,P>'mrN7*Cn"+1(W=<r0Ϥy>xb¨Vxaj}/ZˇE7撬5rPҗX(L5p4&	+-uTiLj5Ż-Tވc$h;ϥfs|e*wV[꧎)o} 6T"\#<Uj@p k؃JP۱ʦ+S̯+Surgr𶷑w}YbaFv2d{m=Ƈ9reXn2g	aK	;9vڱYWJJWl[c[v4WکX\v@;F5zT)I}5AF&bK/g#xh\vp1F-Tۋ.Ntڻ59$^"w@^Q	Es]ۨ)N̪Ns-'y=]5<-wFˣeN?n,{bv4 KD]v7TXKVQ]#0vmv8e܏M;fl<n$EZ=*H)p6%9ueyOL~׆]'/k@6lr}
|݃q6AqKxJtR02,!ўb{u:ualwoE頴o]:_9'bLh0pۧǽ7O+j.W(9Zgg(yjXe0·?J]xcJ=ɤ,iF<AF5zb1c)(D$ 	}r]Eq`
t:O-R`Z]:)^&vVu2xYmoHίJs&"̾|Y13pM	1naO߯m8dOZFр*-b_+A~e{O<&LhIS\r#XohN9OYNRN.sAIJJ	KH
#=)hɁ-Ei@BH,V DJBY ,ڬP$('.|tѕbf$A %٥b63QmbTYN (wG,NҿbRꡘ8
-X$f
IFI
W0Ծ[K W)sPL%[ >w	\ %,P):HlKg*r&je8[oUn,F(
 Εh	)ģ`{tP"{ܛEl<[cra|#v0q
tĽ!|qX<Qv6-Xt>X7 S@nJZm o-o4ڞ$kh>5=2{3׷1HvlE֭}PXwL9J|r>{I@&tlSKiFSӾ56o͏dtA')K.0sخ\'zJ|1=Gpn<G]`r`u,%?3
eNAM~rQ]ʰ.!QqXͩ<-4^yvhu|e$	-[MbrzZosmDU<\S^pP?Ox<#xXx2'6o6ħmmGrFvJls?5,
m_ҳUW]m@t@^`BuJjX6-Y@p{&J$^{0g#D]!m :8>Ô3vu=`0ID rǎִeMѧ#	3@
yx 7!6\gt6օk
*C`")E]?RQiPD*{IL9ZQ=6ZoXLb?Cw'驰"wI\GqHSjUFG@v:-KdO>Ly*=GnrhGor"_@SVa\KD)1a-|>KUɨappWC
,-0Iit^C=MR,0Нm	qrL*fi4(L[
}bl@|L:k?E͡9PNgi#YjYR*7ILzͱ ?_RI/ǘ5Kur>e&#4-iaBf &:tx=iG2?J48S_4ʜW0 upu9UUnI^p;[yݓ8Z۱F	>YH-^DjF/-<cR{jzxU%[Xख?@>!)}y3Qҕ*rނys:+藂q5ɡ2"ېGeZ~%mHsi)ȴYo
XR)I{l0q$S\JB5d6_ݹZ
WlN?.oXB!s;񝭅M^
ݫQO6iqbQ6Ѹ%cIHJ.6i)%7.ъV>)7Vo1gֽgiP۲P53-ꕢXȁ6jf+ysN-pU"9RԓccTCUtV3h8.L~Jxl5½J1݂x
F}'ONe2-K:o`hبnmU, ߷?:׃=g1w0ӌ7Hb2 PH~	˪2A}.QXckt\k/Qdy]dxs	4-_Գ5!I+^P]+
բ=C1m4_ jLz#~Ic7/߆<_g	Tj*ӧVNhCcB"\ʿzVeL5%Mqd+J]߰ߢ	gZ]Plpz]T[?VįY7՚8n~_[Q?i28Rq*n~g}h^p]4\GA$gUHu)5GykJoZy}qӷ+0Rx=/k->I5(TӴGQCA@6u56ꚪ4<q|OHO	TgzR(&o檣`o|*-X{1FcHOGMa_7TxZms:ίФ3`d?Iq4v;vaTɲo6hnƒs^t#-25G0'O#鹐",2:qqحX8KYɚ$O:l*`ٔs.gt5[
 M481NP!z$MEY/`!פr'B&L$3:kU	S 
VMXϳ\3)		EaG`IK=`7WpES[$ռC0Qha\x(RCdJ$	p8Ѭ!EK
&"bF<[캄pMsB0bQ2@,I'
825uYnd D>VxV$CiX]XCnv9nLDABkIDiDXf}tP|[#9>y_cgw.`X1ra?oG7bvv_5D]/`g<Dslx$=GX	uX	\ >p-vk{7Fnt6uPL`xf5de׻6rl^۰Ϻ؅6xX$VZ_l#hdV6fq!Ĭnx.ŧ;
 jCK0kvEBk@<؝oo- p>ן7i)G]v|?n7Ʃx1N׳ؔȵ~}`lNI6!=)nyQ$w7zn|!Ԓ@,h	H{_s%>5(JXEiRkNךCM4i1Il	kS>J΅8l92+(,P|-_J[1]Xx`lKقAwF܂&&b"9i"
SY2Rs6Y$N1vP
N\\\fll	ËXyHjȱƔ*g*ȘZ{}Ss~Je&Na Rb}.BIB)=ba|&d50̥*jtQ@S#&FUGeh`ѾTlL)ǗVm;6OU<ñ=dӄԾ?і}i8Y9ˤÓDڤb!\F(Tjfx
Z/tUs'٩RQLM5舡bmQ(CFnGڅXpJz"zY]#g?cXUu$AU"WJJ2ЪiJ'(:WyYM*C-wL-i#	7('L=Y$qQ~$=qPAqqDGd#4ZDD;f|H$Yji<==%d9ߝ"APТ1M}ݘ*xoj+抄ܒ6)FLvE/p-@~,HAyY`&VT3q[~*m5pͱI[/ﵘX,wN:[#~|Oq-Gs{SKSǉ(Az[iTz)neU!YՀ6 uYUT.W*QWзBHT#KiȜJEa(]ACЦB"Ūzt6mRyi4W[ЬuLƴ>r"Fdǹeo~+V]ژb#H-iAbRɺpMWҗHSuETM;EjԲ]*@E_1m\\xy(;EaS/KS,.+7Ԇ?KQrurҘ.8iv];}g-vMYnR]tR("W/aulЋNNW<-Ez2iNAdS:ҧ~^.D>ҋUNA6̵<ؓ`oR4k؍z->?[/0Oȕ6ᔇ ;doeK|G[e#~CkƧjǡ^woԘ{jeOUxgyE~OooQ6^էn³kK}v\8v1tVxYVe=xrk/сYK.Ez:S*5goc76vܾgn4\nn4ۃwUiI/sRm47e>Jz7΂](Ś~-VMIWɩ_GjW-j/|'뗅8{cUoi-*ondbͶhoNnk*~~%)+$UHC-_y全Y|Nح#_*el⹡2fpe	3/S]T9Wؔ۽|GF8.'[:fcIWrpj~?hW2Zq\3W"$5\h||/[o6:0xSn1(HhŁhѐ"T@BږiQSM2^xWwPUqhā#>~NBC7~J=-o鷥cNЁaYb$yLJR)Q,P{>/Hr8$R58/FuzWgx)!齹vn|o>;6GAmpuvV#s6㵀TJ%߇m:JŸiGVӇTTf:ԕL!2&*g&`I7u^!,@PUD)yIUV]9ԃῌTgqlm4׶Z}ud]u+66iN'\xpqJg?S/GNDUr}BiLXAM.Uڥ-&^nYy.T.xz8dXO6dqUNX!ǂJـ2sݳgR޴o2w)aX?860#O:;U{7K}cy#"%84e)i18Go.I-^x&YtClgk|xc@G<rJjZf^Bps<HbT,mYeAҲh&%x8o^ĺ?(2?UK.5$>->3
YK(,$
&<ol|;9&/I9
ɓwpM^:ِzkxRR2=KS'iZs)Ӏ K23Sܒ3rS&2ŋ  D\xko;6"!>jEf<$f۵Y;܇_@m4y9-.hwy]F>Mxq|im}Ȅ ˂8"AF wdQNYxA.i1ܑ  ZIy +ŋM)Ͳ\ I۬AB7G Q@D$pa6cS7$A)SMNR2 n|H0XR`ɐ&UPY~OK60V$gAqJ2H$ ҥ%hq1Ox]W	̵ؤ0͏|/qEhaW#-e`ҠSUrA9>R$!$GoSiPνFlyP-6XG}ɅjyН{sTD[O1牥62-'#]eCݸ# 02Ǻttz=֬=|[12*#"51meC7n-`5c$fD߉}F:5,O~w{s4`FF>f5TM d1H!ýƖt:pt@LñkԵ@eA:DtskA qBh #5ulįw[?H!4^Q]]T!g݌}I&B	^.0ejEfAaqdz=5MMea Wn7=">ޡ$U}w)R2G5蒦եQauجu}ufv|tXPi$=e`e%#\b[K,ZdX!= S<U }c; ~䏃3dAOBٶ tW$Im?-iNrE RwG&MY7wӷL{#	 TAGpMstm@Co@BɊz}H`sA䪖0B[`<3G_@f&SOi 'h$0"BNU;+R5gf66O3(Ǧ˕5bF	ckۙL{)׋*	"/	c-lըɠ}Xq?&qƷs[7 ɻ%1v5$nrs5V0灎2]'iDqmy!D'%Y
TKiALsѧjbuehA9
!϶ȍ^X1
G9*fS|YnY~W..٬}[v3K.9<XDFMl
ݯR*/-m$d_MO.t'+Xụ"\%cԅ/M2PA#?$1XȰc-7nW7_u+RH9O!q0DU/%nw6몙"RUGЌonx#3ˁ	X@)r2R耞[Po:ՅfF̄N;e~f1'ul U1c=0;7D|CuS#xT]n%Jo6``|/\G4Z+)I0D,NrQ3Pr`[L `on!7MG
!*NR*q>廄nPfCa3[AXؘȬs`	HJq~/E.!L3LK|%4賜 9OǢs?}A TGMF~>`NTݢk7+9@?i&	@~o0?jHLL8&[uhPxǋ\Q/ZC~e7@lIF^srrYR㭝$#AȢcn7B"!1qZahܷÓfr,-ކˆs[gmV`|eնLr̙Zlj`\"9Ch#o\5کP %^54}ʥlB7кr!X_h`&3YNSBl< ^70EM7?1 ȧ5$c"yyqM%yv @Q,睊"<;~g!E>lBrʍ ?CPg!.2]3y._f%3?5ݾq]0cMeq6|ayeF~"/o`cG93=ge-Ř[7?0b~@rk
?kӾ=CA$ 䄻z|lF`mZr7P8"p%Zs䝣07[f&:&[SW	aAvZ9^4{8[vdTFDpW_llA%*#5f fX<;95Lh
Xr&Q`ؔz]dQY,,xzO
(,}*vV[ISh7!a&vabL "^IpyEsj8fp6xm:q͈ד-m96QKmXxkXϤ6<uLNI~L#>+K3"ts)Qd0-xSw:ǆ}n{#{
"?~3^К11ƹk/_;14ٽ>jAb.z4lsRb}7}-)sff_k叚AuLS 5 ]oEl-(P^H%sj
:R=qEY	lqgH$zzWSҡ]SggF ֆʘ\9' UE˿|ƜҴڵ7 h[K(>ɞC}9 xs
 +" I	ŮdEB]"r1?2`!p.Nyun֏88WRx/?ߩ
-ۑ B5rgBH=Cyc./&JU_ȞE
cY#yFz= X(=[;џYɏuo!÷eF.b#?PV]دBNY1q	ЂЇ"r[X5|i!WQ&#ěZ-Ä6el#֭8LştbHxFƹCn;esxXs6~_%wn{ٹXsK4./ʴL\d%)e^HIb9q6?XI|> ]	Qx}.>
.7ak's]'g'۰$($pcx٢7۩2
Ҍ[͹YT8պoP53߯<'2Z9vڸ/>v3fBp5BNqv%u
UÏ)Oq;J5n;޷Z	rII
R5:/?WKr; 6KwCU&&\QXm'_#:jY^e$nmM|x.Yb8nɵ"AwfNtoϔ@uc`߃՛0w,7(-B$D$cu2M/SoA~mXyPpl%)i1}{U!ںqGLF<ɭT,T?K,!riK4g%LJ{.>,GH!cp أG=ZFc]iҩk;&LBME	ʈ)f(
-DTFV(iYRX'By34xR)b`133*Fnϙ\f3(s!wCJ?0rt0*[)V4#!wPXiJ4?Yv@r\a^SR.\scNƴ`zF\-c7y-$QKJxIZ灮Rz=GX~jeCxa@Qh$Fвsb4'1
a5&zOkPOf= *+w^H#!%(ikH*]1c+e1 R/B,u:qЩë?呍erVQu۱bi.96(lnX_cIybõ/6}?]ϰLb<JY4hbt9ʩ߃[MPV11&6rvㄘ{ME-% ID"aS`ZS<P&δJ3ȸ[D\%Ueڵ*ptP5pw]{^ $ŴƵwlpud,IySwQpFze zK-cʟBhu>s	Լ0!T]L!}_s7A>}xQ23ƇFK<;f*o=~qw,v)XaMiaJir~w[lO
![h+fNU_ϷQ%5#1T% yU72^+T};tXqʾS=u!aJKv]pv?+}h %Hso.\΅0f`Bc!
(H `gn5+dTpQ!]Pc6Bfҧ<F%p&'2`cov}'\:d]QyQ*	aݦYol'lD4k:X?^5G7IO"Rs
^^gZg4w1o.즾3JKxVMo7Wbyc Tiv*q%g%6r!"p8|(irSN*'Oeމ!]<~w NOምDN]1cA7{~ѢD0{=,E.׶	~yȿ	ώŪrt mlǱ,l!uMsZXFMrgss3iH0^v"|-Vql+r{qt~It_"F,/{o²C$h6S!G{+Esūol?2}rv)e@
źtĴ]sϻT0D'IrAQ4"MơPi.:%DnWb$v2 "PiF<_3=@+n<lCgzQ3pʒ3ŢJ>iն%_:"{]Ňhdam/n毷@-6N7?O1V~Y"Iz@cl,[0o[Vpcg}y0N5e:n`qʍFMj 0Cu aWT`T:
:=ِU(EIR0{94A1UOlYöDvLCڶzPpDI:8\,Ւ{0oWǐqC5ny'/Qv*#B 
)f(Q9	(V,T!ε$	xeI$O[X-g<鐗-	?/TZQ5XP}ـfZQar<)h?GKL'ʤ0RHxk/ʋY$YDsVE^x$T>0Z-x}Mo0
fן]%[%Nrc8:m#(4_=ҹ%8Qlʆ9dg*ic)49ߔX`Ny)K`\,Q4lƜ"N;:|/+TuJc,W O)0NyXQx%;|
t$ޡmc0A "];v-XNT
<EQFiIQށZG7Bh]Ш%uQe} d Zs)Mt>SU$BUW4sHo?s*5Ǘ8v? 1IDx}	xT"KpVDu+Lg2$-}B.ʞ}	IaCE[b[.& K{{m2@ m>7syC>O"2	" I=߁îDB.??Jw=E>_C#}~ r_!7uw߽ZaS?Iŧ&^y1;wBƪ֙!=Y/#ȯ#M)	˧92lN".|^ߓtBQ!{ɔBO:ZODŭӖGdBÖ>5g
P>9h~p%| 	CF'ξ~}26T+4Y6_NXzߐ:CSI} RQ' k߯sR=<_N6tj6$kjdDL%}.)5%5(]Vc$-W,ר6]mJ*nm
i2C@*h7kB){fC$mur	CsX74Z-kM6R)4ȓ>4&RχwXc7V{I9qcdޘFj$`m}M&47'a,2M_dJΜbߏȁ禒M軙ڳ+mW΢֠z{ܚّ-~Oh@?ے/Ý$"zs>iuE%oroۛR`Dd˶z:30H9!e;_%M;	s}ߟġd\`.oпEAErf#o.	Eq!K
kSh\boޅ7]JȖ)}A<:vM`ROP~{iZvesS3!' H[{\YD&䓉]?Cl{Ƅ涔~nhk%}t,}}v*3]U	>ߙsў{kܔ4֜B[o΀1@(a')9$_JƮ&SsЙCƵg-i'#kmJCU=' syD[ɔb2uLɸ6!ҕG6J(j$늘Sh޷~~si5O:VoO#@j;{S8/R1\+y3,lD~yb~st1}~hk$wXH/Ϧ爛_H&w{o>_:Pq6G |42a,_zڅ;<uU+jUlFʗ)EV#
8w
SZ#սvD;ll`<L,6
/ r?ێ(Re#C+ܹׄ1I>zh2#-ז3ki#1l!nX$[w
/bHO}>(_a#f#um6fIFn#c߉=?A@Ƃ@ᙈso5ɐeR;JFnϗ|UmIE| [s$MVٝRc:-4{z>y=G٧!@a@ᙈs,Njds=>EMv2<"!B0W x><lf2l5ɔjp_JXv5 #_3|Z{eQE/|sm)!4VZg>aÝDs]9oK=RDZ)lN<ڌ(?L^j{6~~H)"ͩܙAK&3QDyFxv]*5y>h6{7&kD{%~_E/3ܙ珴ڏWڲ)N}AsfC[Cay>imwz6;<={8=g(#Ӑ0SNBzޚy;aGG7igSs֌ۓK5JV'e><|޻sx xuq>&Mz0maKfxIO--ᮂg5z\7-DĆ13ދ,9˟?zh@garZўXkB/Ӫb:6?!~?$|NLEֆ	g1u	\:0f&x4evr³-ɏF8|/sW|"7w{CaU;.K$,I!b! FoDA==%Stɪ5Vtu17lcMK^!?=c~՛Yo%,(~J/RK/^uЃg"j-8ԝFi1k⺲Ȯ\|~0){aǐ-DE&tO'fP>IJ~,~yJGg1N?kgeBED}^2ƽ_{˨8VǟK3rg,Mq"]ZokukIA^@R-	k7<|;ۖ%5ܜxsD4;.؃zQ5nq^ -L+$HG[	?eiLU0alDm-+S*/G`#_/H]N&c1맃Ǒ~񓖆D8QmiWF=U.|UbJ=hOZ %X@rڕN:<Nlͮƒ*	65_P&Ges@{Fk< x2](2y]1l0X}9E*Y"[ Pz7ॡh\k\ވ=7LY?[r?5H*X'6N!_v<Cz˔DʧaÃތyJ%1~_0~3~aua"`vB!q<fKut2ip?Î?,ق_K(+V?Zd2	f-b?Uwɇ`m=^*W:6phuZ&-r9_]?
HT8K*Q ae}g<=Q/?tQ1?կzսvRb"w_#c6䑱qFT5@ =vD@_FTh$Ǐ~ГDx3$?^,9h"֕E	O
S Uk4{ad|H?_|ԻGnm,<H0~/@(Aªwbd"Һh3_hQl)5
Q a+^V3)[yH҄b[GGDItlU"k	:\F*GzCI4Ҵ5~/֏x{W-2V.
c;l3"]-dR'sI=o~15n,t(H0~/@̸+12Lr/Zo*>Bŧ0P`UMŬ\q+xRs:s$%gzG=f܈B0P b./@X;o%۲I??=~ЭdD?5ET\"A'o¸su(vwqSqà7o"
:̎3tб'{'ETm#5	T*6H!
aa1"vD@qSTobTn紑׏'5#-uITѮqSr0fD0L}A~r{1uTL#^LW㯵 
:ln&uVJ^ㆼWa'I]Mf(x"ߕ?뭱6V)[Е >;z1s]?H31a%AOǊahC{ͦv?W#6&'=3v{Sė%cF8$ʯǎ]%?(3	7ػwqJ*Fħ{2 4[2}/gqux2t/=,ʿT=j"jvU`wz~}m(.7qcϦ«b6<>bGy[ڮ8B`[9ڟ(?aĵeS~>-㞔BBl̥ޘNק^ޚT>y.y?\W>D,guі4\ek.^ZK嘫7ezv?{ѻa͟zS95 ODZ;grB9}͎G'[od΅<5{sڄy	<n<Rq͙9w^?T63#-0Ga̾憤7o Rǆo1Dn	ԹHp<Z駀v¸ıƋWUvX-q 荹M{agY%1~&[7(#Ґ|)1TZ.	Au'7.,J'P|Ɏ1+[s!y	St}ž̫	S_0%a7yػ?bl/C_[HWN(&o03T"j8uckY	ݲ/ejI"2&{s ee ߰'ûYlc:߸AD6}lm7nT.6d!HQ"tw;J:B]gя%}"ABt<y1d;0%=2y{GyZr 9wiyu9y?r*YzLlQK1-IWcW按[9r]0g"$z;W\&5LMDo's\:=s(qB9iiIqR9`b3+EV\ѾBt`:;:9Tjg	]ӆgٖ_""/tBJ?xpY?/_wsh)_6D\GV?;YtG/$U:B*G<^+hҹf&=U'Ɵml[z-~e'=rOSpK~.y,(t!S9~p!6em-ğ
l틪.S񴧼ctZ5<GcTL91膸z57eJ<̻'h~sr%*2~eO?=*&]}dXc3x_}ʁDk}xfjs8`n_̿.]a2G_P[y=濌֥y'3a)(Ӓ	kS)&Į׳GygˌS鳔e*T.2XqA"ў;R9c0Oq*lzGb>dblbBx~^py+tUdºj]U8)1;MY8]r-HX|ރJML}&Z9ϛ~YN&39ya[GdC32oz
ֺ'CooWטdibuh!cхr}AFU}厛Wfg1z%_%s;;H}!_(̑\mh/hTC7XL&",埐7`[`S=( m
3wG9TCl!S-@,ǚ?+>hH:m?[lT'x|VvK)QPDe,9Wy 춒R9R5i^7_ę{<Οʍa˩&Ɗ!xb9h+C@Hz}giq/?l(1<
ѐ<*ࡾ& hS62r-=;%?"^{@Cex\ !z4)|yG]ߝHAw`_s?_T+(WU쇀jwӵt!;Z{v 4o)TOQ~)OBwmqH[1̟91jm|}>`U
`q%#Dwzz7ySuRPXs: 1L[PJOm}$iڒRCej3:!>RU sbz[1YA	믨ڇ42j[9y,cOk92S`x4ϛ@7	)ZɈm(_`?ܹyFx޼! vtH 5vw1f(lKTA6+KԮyyk! r5 ̛Wwmf):-d\k/%o#?HbxJFP[
[
	O 186TG,ד22ӹw|B?o/N"P"E@"i( <į3b5I*nǟ/_|'>ֵ:S䪓Q:!  [8nrϛ_=Py$#?\+b@uU Iϟ 4ĭѢ봘Y>.]
~q/_7dTQ1r՛}V* hk]$eϑ#/&.jHKme	)  HztU N]jth]yLijSOFQk7o~?e3^wko->Y^1qL]i#ϟUMQS.}H{_f]]PO)٧8W[ yӣj\5o$A݉cyi#?-ܱ4P}~G}M`0lި,.bn1c0/:7\G;~U/ҔFN?]+ sbz#ҭN;b?WKrM3^A/k̈`!7m1Ol#61/Kh͋{4wn>'SZ 5w cR?'/75H<]'{b^h<`>Dj]iheխqszQ(FpֽXU'FaEkS10ëb8?0ȏ3u/OtW&2zQUD#Sݥ&uf@<ԕG50 si 2,3Y5$gbڿb_
{s={3餭yV}eOtGk,Y2=URђDm%wg=aiJ]^7P~:ռNPozxoN2f]5-y[Kڄ-eJ:+uSuOzs#=zEس<*f7ü82-iDX}c.z0PKޒaPS{a߮8:S01c=L?Kz3PwިښޑYR)aoX|ݷf^ٖSVQ;~):5[O{
{Q=ϝ;`ދM)o#ҹ}	eO1caKNOĶDXDΘE1Yk?ߋ^rMhb9_c<tޜ)5&.Xm] $3~58мc&z/?ﳵ|)cw>g W-u;NϹߺ"vo? =з`U^ν_ĥWe]`%'FhL='LvKMLެC<a!8k㮃;.xuh'OĮʽ=qm}3s`Nw=e?tLm tzO|oރIY$@ Zcj.5DTy|/GW6aH=]ؓ||g0o2&r	/}BеˏՀ 3Ԑ 3<԰$?!D}P'}}"s?DgƼG2y,\0818228S1'r]\WK|3jBcd媻d*yX^7#95\Id˔O/Z @v Άz=aencߛV;z{]Ah}rt&㻦Q{uB27{+>=w^_w)*MK24С3p_շ',ȃL˱flbKׇu$]-+Ul/㝉DJudRwLd|螴q=ٗ{ZW.Y'-S<8!zN9inIrũݹZxҝG&~8nENmEcɾwK
[K,!Iey)]Djʍd2s^)ƭrە+.b ݣ.yўn<d8q
7nVܹqsؗg:]-S#Vv}VwUpB	:~FeDꫢȔEX{i1ѝWh(YAhU\=ga9j_?P&ڑ#cZt_%o'^F ?t?ŝ!cOQc@
YrB;<O@<Ӟ"c~}UAAǿ	:̹aON:׺k<5|Ti,:匽-,mNGt{1Wd":>tΕltke:OϽnϤgx֚Җ"lni1\! VZa?xqhwR-Kۃ. ݵl5КN4iMҒ,%m'~Q}+Է=tA Gmk=ڀ= lhs3Rk 74%}ӔP`j5] u/	#d5kKâw?^Ģz5iL~"zY/F4?ܘx*!OGtDcQWdsju(Ft #;䤹#t~LsQ/;s?,XoiHjG"+)7tKNVAǿ:}mU$7]"?Op8_&T|CEGBjn@@g~|C_mE|LqEW7MTc?g俐)#Qjpx/Lmf<ɋ_fDYY;2>?SIy㏭$OoQKQm!+cH}EI]i2RZ[j$,.7\z!i.S>7NSb;x6%47S`%|Ϯ3?	!c-8Yެ.D]mSWK3\j-ݕww~93dlRui9VPEH{TsTs	u9b^a1ѹaa	:wj2nu}&.<_<apŵ	BÿTzQ,)jeBPwj/Bgkuc ׁ?~)x2y\w.Mr?^H&6fLGQW/7>tWobEʁ%e1a=~/g!㿹S~e:2^>fp{}xGs?#+)_EJoeClwf/먻B}+T^lχ|2ip6'?z-S\׸*:C~cX3C(oC\U.R\J׀7>5ψ4flaUEo+~<L6~e1WK,-4:+k.9('+S<:p̋K(/fE'm,?8{Nϑ+i73][WP}g;^ _)_6UHyq0W8t1//'kjLd gm _&&S#Oc`?>:߀z?,RG\MJ]n"J{?2x1OEq?KZ~9߼NÖ&i@(fWzew&[j=UaKF>D>YP%=:Řcz2`m3=_^OH7sn(/gdAw\G<UUq:}1g`Ҳfy,W%xcg!.qgň_d|"_ ]t&Nqgb'^̸m 'o.?<CnQO~f=X =TXHR.eҟKm*q_9dDXD?.x_1:Gb7"wy<G}B#Q%xvxGۇň!R?7/q2 ]p1{}ђLsuNRFp\BVI|}{ /swE 7{?'yHHDTf5uv/GyuvhXLnI[OY/D{@.s r8WXI|ʘm_Og{{UaSg!Kj#iP@aW?O>x'M<H?<t! sj쾣+p@XnȽT^xM3Yf#_;N'Fb??_&yg>	jWg@U}iXbϜC&R?^ gpgeGPg_W?@gSS4-3G]8`S0gH,=otyq&ng'_|뿤xx_%.?w/UKt$:)<r/pF2{;"Es$5Ҽ{cc1G'qրU?o?=1./_q7(ާ7GWČ
#X{\FT/RiZ i_+q?8s2lhF q=iJ.M:ЗE3.	p`#ek4/Nl@n'cм}bRd/dqk'!iKYH3#B"F_(Ā [Bg@74 BG96 eҴaiZϷO)^_0o+Q$Znݤ+3 .{ıLʖ^l y]W<u:{~_aYs?)X/: 䀍TKq_~;}ݲHێր/xWfHQo ~hژ+g&#1?,G_	.	?3?΅d=?ܵ`!u]xl yѹ9aω_l:O@xD?f;b__U X~)e)|@WfumgeBx_QA6,| K3gG>&dHoHQ>Ké> ؏JpnMZDV2cEaϝ,us?m ?wR?-a?Dz
o_pcO%|W6Ey$s(ioHH_A?)gP_#*R`txnF);4"NQ'{m}WTΝ(HútewCM_K?8?B?(1r.6 wow4`.=؀BFn˧Zi5 &3?3z?ndNtE,A6w@5=j\	]_;y;>+"]|xd|mwH? ǩ,כO?t;ݤho 4 Qx0I
`X#vmy]?E.g?w??b?,SƾGƞuw7aKԾ Fvg0on@~^/6eSO|J#3[;0p_X(HX_<]!B}U?,"2'+M{XNqd\"YP$`$ln~&b_R߶a_+j_L l=Z_;50X;1c'>@zm!Ebk~k?c"E,c\O$'YͩzJ0?_R+]y5{;.?_0-%(.ß¾MpAl D 粼orQ4o#eK#KQ??wƅqwoJV0wa.7 _poNQ3FT#۞?ppDX?I|ww4kzwf\ \-/' `K[0oz
g>7Z}&6rRH\
$?/%N|/~/q_jOs<xX8JX%[t<.
+c-wL#;؇t	~?#uHYH~d'i>h*d徣Q_isϳZDobo.)I {,3?R"d1?00__2]q[u<",(./u0*#yoۉ|fg98f2x'$$[11KE?>.Rq|(+]|Ѝ?/GhMZ,pv1{^Kjfq;mmX1S`KJr2"Ԗq;ޅP؇_5*&@ǷxS؇#@P#󿑳s{I?E"_</paw?CX 6 ÷.:vVn".(FH
CB}toxZ.wQx=~ToGO~91 1oe'7<?k|_z>c_рLM<'"!4 Iǿp,.ѿjd?vLw?~RIS@;[QO:+J3ձe<G1b2:Oh 7xl	c2*wN~W<ޑ/G.0{G*eIԀQXN7\'ֺ$R,uY~wa.wie/!ex\̮kb4
{i,#9"qObg+oߘ/q Oc@>ZB7$p.Pq]34~it76깸ѤN ;YՌ1] WFqd<؋J @tMiO$-dSz^~g<1_h`S}^
p{sjlfS{F=L_f_gy_Hr/x_,?&f[(OcomNjM(k?T-yn?zׯL`O?#iw?LOOO/)SXG3#2VYZ ntoh8W-_g_K$x.wh4_t.z_vZL>GX̧=,ʎm:.Zts?p?lw	onH?ao~<tXV~{c*e#kUXYykdx߽ct@8/CSĩs?E1K_dQNgawg0r'7Qw<<Qp Gc<o_>(8`dlz?_t-m[\|{$OxQlS%ƿD;v68R=[BAtWȉp7r?'C"ʋ? 泻供Ҩ;^ZV{x7:M<o(?q~/?_?k:.8߳۔#\Rk-H328.2tybc@TX9ū߻_=ىa":||S{t*WR8}ΣprQ=`Gıw!'[W @Dz ,H<O7`h YL]R5Sy-,.+3Bϵ#8Ng^9?Q\u8>>wrs3J%0' c_|;uy=?7?7,RK?;C_Y<OX}y/fa2}[S*U{sPo?08&R+Q$KXO#?K]"w'徐3h[h"m| l}>{*Ő~ޑ_DbWM+Ct5~@soG	HȀQ?q7bأR~^onC/Y"#Ώ'⿂k?dY=}wcI(G&jT\bXZͱfף~$b?'%tXw[c
Q}g-"QEſLw4Uxzc?LwVw %%ܼ/}>#8g#o!c£Tdlѽ#yy}@l'yR?b?>@~}3u>+{SxسqGǷgSEcS%Ϝ/B"U#yG(LǄsbN/?R1],ϻ|=|Ϥ	m,	9T	5OE4a;_}]G |7WL3yD0.W_b x58q=w~{w~<`Ё"HCe4Ϩ_n"9}R3v^ػΉQ[>_Y$?{"|Q{|>}{B4MT/ @؏3)^}>_!dx/_S`= D&,m~;?Ƿbod,߷KDXO]Ea _x1s_$ϱa_?CGoO{}G4˕[eq6Oޚ~@,<&yEa\H,RIx|st/Gm-ߛhǪ"^'Ǎ	G}ǳ񸞨'br?(9,ýT+Ȁ=sէ>R.DsnW#blW&iǱ}:yܸ6_q:=g1$I?kKӗBh:A-;]?Mgh{8;h\miJҖ/:K6PIV=fWo|tnc7`,D~C
σm<w!6{ oZ6Sڨˀ;gt	ePݗ|zSz	脿þ+pkH9VKNWXۜ&`Ocyo~p%$>vph]8BBz]ʃ`Twd}{!Gyf?yGZ)y.)]ns9xl'-[ט|b>5PƍUmp*[3փmp\
x}Vaqlw_$?z_#8y|bq=`?{$2T{R֚آ	UӒT2wvgzy?Gw@~~kPx{'ommmJIz?R_Uqg>A(RmJgϐ~Ogre/ɳDBغN7|txlͩsz{턢\jsz3Q?aW.{d?(ܽhW>G"1O/~=9 S2/|aK6e5Pvٮ@ޒU=$7y8	bb>tmTMv
+ů@s07m4$A_k#E:,D

\fCZfk_ aK	?b_9WT@q}%#)}lϊuܼ{;a\KDI<rzm=9_?&9x@??7#Gu^+{Ɣyp/}.OORu9Ű1kEG?R
nA4wF88y<GMnOWFGTY.\4XkҢs%=I<_J{%ɥl4~,&=>){sI1*˵pܯG{2[2
"7M0zKY3/X0~cZ=qZga]|diH.!rޟĥl!.1v9,zSO<ϱ}(G(nx>kkCJytma>rʆ(5iך7./1'L,=#68Fg_L]0*v_O2:	Mkb޲m,:> H~_䳓ܸ3`]U/UC4m6ٓro,ۆO^s({:]*R4Tmy\K6ʓܯ
'>Q+96N7qr9\dkLpbX1_DxceU_0:{Gr+!y06^^3&z_䥫"+҉ӓdߩ?7>Mv;]~_)ǚy3,O> $*ϘڄyUg0%b;	}֓h֤X߿ϴPHP.lG5WtOc{r	%<Gqn/夥.ikTà/7]m85Wsz趔zg%.kn.)gFeߔy[/t\yDB3ɫphd=yLm*dP++3UcgNVؓ7+DmךO-RET\^Z+-*1GYcC[j^}wr]\"~,<g!AAp~pA?xt.6!]>TП@fp?<3;"`#|qOܟ'baGkg2Q?<VyOy+|1}ޅg<<~p<;<K<۳ܟh=_@__	_%_
-_0ZiT_jQ0Pꈫ-' ZEH̬}vp>g>tF?h
S̻SƇtFpǤӶ_>4U+7oW/0yRے']W:dqiǉO~u(gOqlӹ}rv|ՉkdL,~t)K'~?N.|ŭۢUv'k!N9?T
Q;guufmeͧ
od=/+[w;α	~'~3!qqt+w/i*=4)s	iA8P<,>zv}o}?`,67"ҞYvze[c#?_u_&Mz7xw2N̫G&O9;_>vpO?''~3A'{d~'._=7ߧt8/y2%/oanGɻ>6=5y뗃9:79'Nuࣇs^EeY^O3PȮk%|[#O:?|9}?kS	xP8csON9~ݸv׮s;vbߟ2>/UQ^;M&E<0/|m𡖮_}扌z 9wm~M;~ugјX}slN|y7Ȋ~͛6Vvwɾ؞t(/=0wvt}7mV|>Rzl9Uk;'5Gk?_yYO%-uw7vǴs?ֶSoLRy`=cf8Ton}s_}ďpshݱ2's}^1晉qf6Cx%P⭯Љ9Π?:=7e%;{õ/?9xvkɇNxiz(6̻ijHqz[^μ/Wo[7oU{ݫKiMPMS/>E ?9|b~P\O,޳oc<'gg`W|Am?Z}Izj_R͵6Wy'ʚC;Oo.=T-7v)?-m-Fp5kޚ>s][8a]˹6y}Ht}!UzVFl:ƿ[gPqcpoy_;}sSNM;ynJTδ軑Ŗw&=zfk|uOnzr>M~|/?M	^t7o"o}5b#~cϤYt֩}~?oeMS?yU'-/ɏO(^l̤eߛ|p]uO/mt]}?Q?:wbќ
>j ̩|×;~e۾~ݫ3vU>__ʔ/'??aWOo{uo!}ֿ}&ͩ;yrc&d^{S[S<RUkg<P}+<q=+wO.s~foԳ&ot쁻^^W}<Y`^es~oZS?aQ[uԣ/}[?g;\tܗ[ʪ[Tjrh7qx!ਗ਼;>ƃ+}ۓs=]s:oF?7l3]psWwO~	ue-V޴;mw|/&͒#pGg-(s^|r06읩gĝۚHO}}ϳ_@sx/|o-wbO~#{Q㣘yN{'>ȓ9I IyoM|mE-e}sg?[睸qan?ŵM+ܙ2=7>oߴW[ve̣mw}0u^CYDAm%vնe${c~}˽;3Vvo8dߗ
>UyќMNS^m&́X5i?Սt㺝]9.f?m_}zSED,xp[~TpoknYk+xWp[_/%qώn>:g˙Ɵ6'lwg;nک;*w֊)y]f7'ѿ}s-2}#N5yOs>r_h=S6oyGUvg}};=ߔ}}]Ho?%Uk~&t΢9k|_Vm}?H=A}_Zڟk</LJήVd*2{8wk}ǤM9}ۓ'5ss}fq{>|zX*"nrbg{ԴWW;ofl)tr8tÔJBO,,_3__d="xZ˵m>"d:uŻO~|卛O
4t˟-*۳CGYa΁ط˾<{Olk{C7[i׎ﹱЂ9'nӯv(3:*WYk߼Uqψ̾Ԓ_|绱vL{33|?oӭ{g</}|n_O8>y*ؘA%z˦yΧG{F|<yk_'}%65fL޲olwRV?6._9wōcq+7<կʌg=>"7K]YF}ad/̵.K:x' xWSnt~STagN뛻NL6 &S-߿*zxۛKz]|þ6Wewߝ29!w 7@ȿV	ȁtU\%s|o0M2P# -9H)sSjWμ𓋡$Qj>v g{gt'rkk9}z&B)@`dR97&Me 9 zjX	X@JjPQ{!Ɯj~9R{\-w Q	X贐1Ð_̯\߳s:vKhG~ozkI]5{ȀBOnOHOE%A. Cb:Tf(;&#kw_[$sv9W_z|rbc:O+h?[%03;#@W|{\K{˞<VwZD#[[kFQž(>J$8l@X'M(@#ğ3'_>Kx19`'͙Y!cY8x|sf
L'51Hَ612yxb?(-_=GXўOswtl66:*D,K:qR5wĮu_]Z|k !mHtQ1#TCFM#MAnb1<(󥏘*lc)Eg$rlErпmƜp_(G5u/z@nFf!rqyþqX*C@6L ;6JbX?_pб=ZWu\pok0b,0X.Cj4HA6MDi0\$8,<8!;WmQ#Ps_d0l-%C[C(D^z]HJ)d|b	!Gz"q(9@;g!OT}="~9-z͓BR&OR<.cCo^ӏa#| s~#ֶ̸mF?}fWCފ=([nݗTk\CpP'f 	iZ't$ !⮌B  pQ;(@ri \kɝWzI˱~7lzZD+N[y/Y[O?IORG\V=OP;2zcz |nH$A>*5j0m7+1̂;Ѝ$Cnz}BPv0%T"6fzzLD<}Jww{.^tpLn̙?yNؤ箭w)Th+</QJy'	aoJ5?i`V=q2W8G 8 dseU0䝃JX.Un~1L>|~}"?z a*;@r_>ӻ͵u~̓<h_!ZNWwcc#}l7K W髞_A=C=$[>夑~فI$sxk 6l{!B&PbC8hSlsS̠2KC_L_-HUuq%?@HJcJE06cpGlÌ}%"4`\Ç`!h	^];%{AڃboX[nD>[u}щʯLLTΗ(@٘S!j0VCdrB\!PW!lJzDc4fҪ~[1MOPdVҷ *yI]nC83ZDxygsϼ=o^.k/"w[?o	*q$FSk3}ʠj+6a2$%H9OMڋ sS? I||hc$Hh1
ؖC(zH?"U,^s T 8{axr>3r
/K/{"ؼk7fY 㪴ݛO+:/~P&BFf@M65ߤ{B)4L aA_Ҥb15_c\zUj\=S|?>]@FwdT/0|߰+Qz2CW=cxޫ ǩm]A4[S: j]nCS~S[\@9b0F$)KKWijb52А~Gyp	)iX 'Y`Kl@ŸEBj1/<꺮+A=1$zPa	q[uXt$v_ǌ /\l_D0'?8~]upD{pv h:'4ߓj Wסe*ͳ1%*d#?qL
YTə
L1oVHDsȎ"R\tF4 T.}	(j$PFIAǰ{ 93y|r37_yK>p.p٘<_* kO[WЏoMANS+m kMf;wN		.aeN.@yoeTp9;50J{Fq0	䘑i2(F3%bʰNLL<Pmpr/`{1|\f% +OЭE~1W+>X~E1C-{xLԤ ;vTI[Vf.1HTPd
@Yvq aGF&5~>J}tle؆#{&I_c @ι?9K%_W/6;|- %lΈ~䪇M=:wU+$=ꪪ]}f5_~\|@0,yއ_buP L#X:زwlH)%H/9?chz99!CR-K~c<T]]ByE17xQ(IvО%VN*LR	^\ط<cDU;Yci6?ow1]fQ/T$5:y>[QUD[hny	Cq>2e
!J&a"`;@0Bq*D4^<mZpjq v]r^?& -6_|z9_7k? :J׷p'檚nuS
`1 NwfD9NH$0ۤjIh@K^lw0W*)93_9<0Q"c 7e}ʖQA9	<f/vc? 0{.⋞<O4[8/%§xhv$\|>1lq_H8BP~+SJsz$!$G|"|;/D( 0a؏c )Q Ja&z_`O.rwݢ+=nyW5C uwǻL/H7 p~p>+u8v㦨;Ord7gm\~x!"Q>	&*` zi:otIhvlݱIbPcm\5b[4\ks|`@쁐4I&rJ{6~SBM#Q7D54(̻9?ݞݑo sm|+flu3|	nϣ#Ut/:eCgUTj6rH(Hx8gE` =g[)Ha|8'|Ь\?"@X77a28ԭ'@s9܏Q!LݗsHzѰe%0TwGKG_ޯ~)s^dM|q|>3ۊL\˩5G.6EeU4IVHڪY~ע^H֭A@Ośc%}aBC怹䬥Fݟ`E?66?j{^pȳi$g6 z\yR1&(;<|+]2K q:A.ɹOӏ,Qdc'cӤvq02^Gba:%fYzg$6@T79IQ`}6VQi-0C!z7`6PNҵD[kץ_y-}l|f<do^?(ዻ8G6|c@Wɻ""e H@=^JP> ԲMbH@ ĮJзQF*&w4FӈFC!(|U	 IF2L[IZ۠V,yv.ᗈWYph๯x
xĉ-|1~N7Sȗ便@\!{}SQ\PSA@65 9{X!ټ+|97 h<u3	d˯#xs:5=옯&|+֔P-Iez"vIBud%cƜw_|/~3Q:{X!<痞~֎]?gm>[)#-n!*\,FS|`@3&@K5S<MfNX*}[ 1=	2^n0EEL3VJ@2bo`ls nbRxdU9V{*,'P[~sPsΦw.axx 29,w/y[o9d ?;-|&$.,^j'U{".WF_i<"tEjz͎H zLi#{4*폵A7ⴹ9;]>i!.C$<<xABǜy/&,[J^& ,o×er<3c̿;w,k}?~~-l|˫qnm(n+ p.DkKy	 HFuW&	ZvxSW@5A)a1 i^}TY̓	Gc5n18ٌ!LQ>A-Lkn+PeeRfy<3ǽ~C"@+_8{>y}߸g/H6}LjK2E_Obїo
A`0!L*JM{>i|P)]@/vVi6& x'HֈýFÐ~c&!t+<UiL)dn,u1]>{}6{$}Owo~pނ#g `3lz|kݚj% 4D/bʄ}-&F$AkUZ4{mF$_cSJT6{U5LT'8 [a(N#i%7MhW>uROcS?l{K6F(&a׽aL08sϩZfg_;p 혝!//=c m%x1ٷoE`BS&4)NPBGTr h-x[%CrmYvtre92u0>cޏZqDݩNHܚp_;k>#JHDؔo_]wnbJ}&.ajB6_OeM0
PʂkO-1&k(7 ,ͯXu-hy5݃=$H 躤=wB_MSP, F>BL4MZ/5CIHByœj"k!5+f]<?<_?"me3z7&Juڍ|Z@pT ~z}A}N . j˷Vm0HW)coqtv˦nh)EWiH6`)K1Lkb.;鵾)ͩY4!rwoݝOLDs ȯ|~kT	>C0vOqG uެ[w@؁nk>-uXu&aʷ9k*5U䂊\# Q	zPvnLJ@T|ߌ( j{P5?fB
Yg8;Ck |}_8_LDm{<gC+d1tDUN|Mi!VJ\́žP"ۄO=75j{IA6p -vv8Zfrq=Of~gJ6{!`uܡG]a g2@MD#YρMc{mf98E3 _ |\fl(UÂ{O2+M6^9N5&/!Pҹ(ǫEhe^JUbdK}1i̼-l؃pUvƣۯ,Tk'҉Kn?45"w Z}<?&a8 U$B.JmS2 gv9 }n zGx	@Hdhx	]¹5H1Lϐp:0vሀɽ;ɍdm@zܨί/[Mg#*tmv/&ui%RnjkP+pLbŻ5azBvq4*8T@Ѷ⦥Dbpfoqh<b^Kk+$ZFUѧIN]
OB <_ŊgYe#غu:4v[v$2$^n
H=n0Eʘ2w]L 6!煺	ld6 ܌vŪzkmѸ2WtƑ!,Cd]vjMW>C=VgA\@GԞW>
NA
vyj봖/L﹞mf@[$عV@3ƛlE{T zNE"
3JJ&^.qXZp53O hyceP̭YFZ᤯mҦ&1?#+&S$lj6De}gCcoFúuy?7o窇'@B_Sy@K_숼|U\trO2MqsAEe7W~ (DOlc_&Zm1 HRj>a/a~BE%mzUŬἦ8}5kjkp_O:G.~FӁsλeLrqny-nq'!N&A輔/c5Ip2d^>*S-+twCy['JH0kZGwVsDӨ6~~ۅc7q%΀"HeLJ9mDw#~CQSA|=S]Jz#b/`j;IB\;cRYrgX*s^vqٵ^0=)sHupR6CC/@;clF1 9aԅ,Q#﵍C4Ods  ʺ%|.|ݽ'u[mX3 ~0	&>uMU`f=en񪸌!\7׋:^@D}<*|Q#H	h FN\R5;=^vn@pub<:p?[z=x݀?sV8$Xۦ#1Us
mFddQh#hjˢ'ztk֓=5w~8c J?//ZM+9-2urظL%uGP&ѐ'3؏%fpb!YY?a&a )XP߱E[cdd#?4}
KlCNvO"dP`%p4V_=&S+;!JtDBħ֊y*Ry+o1&r8D	?{eEx$qeN4׿L*p-+9b+B}f ޞ7	 j'Z |m7i, <V9Io}N+\Hel!pنd9wCiX0t3IF`ݧ5܏Lk3@ƚywcs0<2v93l˛_B5j#ތ0sƩC0~e "E-q:j8挡gsZ BL9ea>P(Qm| |T*	CLڇ,vR\"E5E9" Ħ-.ũrMJPIY2eiLC+?G D"TwQ!݀RDUi$΅{;yJ9h m\rs&3ۥ΄ഀIO	Tvy*PH?ܥ e'9ehCtpI,s
*I%8\aE	҈T%4E$lLZâ9	XJ,׼q!IπeL\NJdwjo\A?,~jޢDz8ݻf+#b.7eaXP-)WrL`tnq@BurB}|; Nߡ8Z.̷c5@Ź?VD1b:v·`ݓPj"̕Y Qץ2vJiQ֑yԷh7eDk0&Ū	iyə33Nmc/ M h[}W!
;	&qy,^]O,ӈ"ɭd%ņD$up`6.FϭrERk& ]9<sHA 9ՎoKt+椿'fjOx %s栓G|"Gb=ٻ4Ja{qPa 0H"y\Im8>Hؽ{pwdX1I^m RC-iEޛ0u9
3*Jȵ %l6ㅟwigP}{Mڲź'+'Z!}~rf*=pʰrH)뺺eis6W6CT|4[Ǘ5ha'*p3NncyȪNQ\~NXc 0g}!t䵞xb˹snnRJfH.,cBU^ 9MÐZ\;cοGbho]1܄وX6,xDo[	}Ds4!Ir19Ly&٦̘G1myoAGK5S r&ar* 닕]f:Tğ3P,HD$Jjl!Jh2TBg #cjNL)&ԓ'Dez4
"Cu"b;"abTzc5+r `&cF2=G=tϷ} ڦO&H=eG@4Pugt}]b0ShDFSFj	n$%dH-|:@FdgX"MՕ^:BpyB̿MS(9#!j\Ad+ǅG_4(U8.p6Wv`D\-bw1boa} UF"r@\ *38}Pc]e,1rgـ,@!!&e:#:o.`& RhMb#NUeS@9+D(C{ K h`D9޻ҟaau%2~hn/w;`~E3-ܳ{@Ǡ4 ^S`M]?WA{`~G \h/ 2g5T9 @(U[%0\L; R\4DgHE*٢޳j]6X̟sg0ɕR!8P3c,9\)fh/BR_%0M`{w!jC/-IU߼dBާa c(8 $Y\bmܗul )vW[=,>oӁl^rpe>SzBg֞N	Ŝp3f]TMEԓ&#xF\4OcH^2oBrf{vbH7XAM~֗LQ9PWw緗q&/ AŏoVy'Zxrg	Xcan>;Y96l~S >|I
LcxC	5'Y_s;kPQøtU85h	=x>!_
x?̝tVvf[B~/2lxI$[܁h7[+T9aq&aX_)qgp*ǔ`/W3A0b+:	PL 3`}t fO6`bsWEy}1bٺ,C ۋSi		`9n&KYwN[ XI9ЌQUBv;^#*=lڜvw.J rD2Inx
,tXwͽ]P{a*$EgzQ@΁	(olq؉)d=pM:o7P`va0^pT5R/_#qC3Z?(%:5ABBJ:7ރaf\Oa|`N`y~@>9!Ê{_@)sE@2EBM$ճgBbkȭ	X-MgV$pkw*vEˠe@lbT}H^ʕt:p0jW-A	1ϱ` T!ʐΜ긄y2<5J\f	9H@$S{ۇR	8qVZ$@1gG-SďHѣӹ=nDF4ΕPip	)Rdylyz7vz=Ox	XU`lB[ف !ro!A4FQL=-1d\^A1sf~~hsa^RALAa>?SDIo28b@sBrBkl u:,TE(cR;(Za80Lb]piOƐjrŘ@r>TT~#J5~~"uiZԾ8A""s"ޕZ3݋*gU;` V4	h'-%<*2Ȫ	8{_x_KrogH$G<"\srR}a1ShQoWQW=c Q}M#\ߕ#B'{)u3:o5#@.DΡjOguS{/lj5"zHXMv
BaZ1:e%;Ms>	8Ȁæ!Qʥ@hB{6 gNL_;eepzG` z(D|SGA<yD$ҿ/	a׶amբ*}/:xcK VQ},j֠~LKO<,	"X5Uj/؃y[z
ĕkĽPl,G&%Ƨzpq[ʒS!M1HTv
	+?DR}vp%VxgBT%M6CCpP9aq&}\Z@~
,DgXm};d}`xDnUN=HY ]eɺ9&gB?bKu-wYi'dn[
5?,2M7MMqMǮ=1sk!x|.{v՚E0ؽ{QonuaZ8Ŕ`T&vXWz;/B^AM;8rY
Y&5<[ Q9t|{B>h?"0sW!sHqcf>Q]oI}21F;ly U1v@ ٪9sjo[nIo V`
B p~
'O?m&`?cfU$H)Jx*Xq  4EjaݎކB	!pUOS_Swf#g
{*ȳF3:oeo[ތ3GoE/^nJ۹2 r4^En42mqo/うKNOsZGTG|PvfIFa%ܠ5T_urKi6¯rkI2{j^9x>7L%e5yorZN?9?dmp#f4nyYgc4.D8.f¦c8kd+YT~tY7wq{\؁#C(!)UF^wu>5H3颲
QymJjj%"Ȯ6ڸԽι̡m&T}~ug=H=1)'=2%ܧHlRj}ǘv&O{aۋ9}oK]j~;8}{|wܧ`o0ݗP#3"IC=g@H[@B}Z |屜Z+Oy~7FaGU)cMݍÂ!,~~#manpl&=G=t>6X5~0m3pXnB#T$:u7J[7U<XF =\?Tf0[),yܩ)&TaȄ!ʏnQ}%+rI"YpBibvly@2 X[msw3cg1*Il.ytanoI _J ;H~[3߲ާt}.:vSj(4/foKHcZS?N&-]UF:	0
S*Ѷ]0&=kA^iJp61̶!x&	) @GYi
Μp.mwxBc~xEG^nS8'WJ"Dg&oR֔Pc6X澾_?@P0U<wO֓ڻfN8i=Mo9}u%ZRh7Kd>'1>p~0ۋ=Cҹ:hf}L}nڿPw\ '6jg(2nrdZ]
[Z
]/*,T$Sͻ`mBp	d')v؅;W :ED؇"j5XF3قapIAS * e+D({.o ˡb/B:}̓f.[
e͵5d;d yboܟLQĢWsw>?38Ȋy$T	ڻ٤}+'H<
%?Z+cɱ6j'jRaDUۂkuRWDtT>a%܏z,2	q=*<1gq2KR,@˹8c)aRIE@fpvzUƼBnUO]nOЂvaI8w"BtqBM4D!i>X~1=!~Q{.]$20лϨyMM5e(Z
|9"	9٩F3E{>8<G^e9,{B粫QHHu(Q뀘V,VF-U	EL93	&Lp \8Ö] AsMxYͿa^˘*MRwe8Se{}tYMz!N %OA+Ӎ"-ޢCzۙ<b_wR-%cDP,BM%(H1APw`ы'ф)pGBli㒰N+QY}r[W	UvK" FsWU*RD\lRlQD?؀pBD)lj+VL%7uOH>!A'=c2|(]Ʃ&\NGGb0c5AIأHYQhE#g59x{"#g?+vѧ⪣ĺTiY 8~>PV`Ǉ#C<S#)nAm(ۈc:!@"4/Y$_5dVRF<Q}䅩<(TřNTʂ#$n͇R_JkVm1|ua_tDF_Urrl1g]A""¬2"B4'Υ0:Kh=Gj}V M^*gW[VY7cy(L[gt^Qnq݈_*G+êtLw&5fqCY`c7?!vW:EY wqNFsλטeW E3Dv'#Yh/]_?B:<2a->TJ//6;Lk lH-̽/ʀIAD1ǴEVP2Pڹ/fAJٰfԍD:QYl9MXi]r<;ZJ}$-	֞#L~{1#r̫4ES>	~(q'2'(j6/"S zvKJ9:1$8ؐ3vEpkjޥyl>F~b~w/Q^v@A׍@<v/0,e
}SLXnAτ(J0lRc_q<w^Z8,Bi"̥?1wfTT>03B8ڤgB,H"mל`-|
A~y80z,<c^953c16r͇%RÒe]ʱނ'mlzm_e[X^#%X++]wI<xMFAX${Dz0HϡDcUלڹ{<NL}R15ڈ-h2N-
b7;_XD7|"W˹R<E*D%c^&A whA7c!Hh2	\Pb+ˮ pرȓCي2-+f&78A+1>Nu%;ޞd^d@k;EgurM& qg/SsB,*.26k@cc8} 7@ȿi߅V$Y
`wT[9Tp@6~{yO)o̻|}c
XF.L F'^K,[Izܻ{):O)0eQN?ހ5X:1DjV.#nX,	flվ*Cq݄eZH2n孀
 נ%TOE/̓FZNhKN}vZ/L4[fۀ3d53G] NuUmK]fhm[Z-ޑʨk-,KI? $\jˈ/NƉ!;S#;J'J)K{@
)XՆ&JJ֟!PWv80,K
,FPHgVM$@<z	TQ(Z"t
:yho3By$ZXg_OK:u\Krvan"wqp[GOjU#iuFXKP=di3DP	MBR,x wCb7ޢ
kqKw)U,ݙ*PWâh<R2w8BOŦ2qdj.:SEn\'q	Vm!tyJۯFm\Vq(Ч!?#Jm9.8,"&;16RP#<rۄx@s*C_y^F)G&؉4C	1@@aoeHVJ^Ts`A=oM27Wxp-!'kfi4ZPPl`U&!ls
-ʂUM|H	(5ЇmQ7T[Yc/svxu1tlWf|L@p_gs'ju(P̇%<g͗w:̤UR+ՊSXB!'Z7Qlj婝]~zU#-g绚VSzatknX5BR۫E(fXVa)Am-ه)GED5!kĀrPWՍW_x;E4MIF*t!E3޳nE&`d)zs23y2Hj1(	 B-笚NRh)9˜' ҏhf\=(@ƐRomđxEiVp#ۑkٺS;gvj)И}@n* U/@!@vmtR)/i)mP0P@ 7@pU&	ITQʵ~}-5󯘳JyJd;6&vs23|zT5#6EM3!`	ȸ3%Q tfS`BE]vѣZ[;12NpoT$v2֏cs+՘*$/!O~Ǘ8EOgۋb#_@uR)P}=DE٢H4V	n	rDGf:MT<JZ
40:WN-g[PS×Mc؂'$T/^sH ۲*3@?c}P3UCH`)uS]!.P²e  	Hb&<Fx('`U{o{%3'Gʠ܁PJ}P Kw-X%TLc!Tl1ȵoNf!^m)AVن=lܒ̤.~.LMJ\?jF.S|2,Z%0Y+ėk*n&M~yV/i`Dn8 3HUYJc@*RBUAȵFM	d-Pi?ہU>W?"s}}H 倜 =5bwgKE崂Q<QwISg.W՜o*bSMa	3qR2*Dӛ<:Ludsm&릠ڝ^p|ThϹ噳+hY3X7^dPA;\{_ÆCHE IE,2bкNS󲺪1pVά`-Dclp KڕG<mVPLE搊	J\+C,DHq?ʁ)\#݀32ߨHIrLl 
N~I8?׀$^5 48nDy("F?$G9$d#Fχ1oU.Vqy+$E4w_Urc[׾iЪ1L1TqΞ9;Be|9gsIrDƫ|$[qTݍ؞;I>*\Ga4M'f NCĞdRx$dZ=e3h2|&ʘ4nB<i[|0rTg1H1s$c~i*\+YM{ɴA}l4G8,;H =̩$LBЕ9d:a67
	0G&'5؈gWY-~(Iڂ)^:t,7H
ȢS\0ӾO0.ed1kԂOcf  3˨ c&5l7!y?퀒脡=X|a	
A]B"hNxN7gHhQT{J\PοWbUS"%xTVs!Mލ `ꃼ9OEuem(,fYSB ! a<:], $m܇B`gɴ҇*yY{rK%>*> ,޿<w#øh ]@X;٩%U.3A7yq\{;gNzB)>j G$%5t.R.9`i$?<5L@$JQX%\-{毎x+:T_6)m*rCb!6'X5ұU]$	!0vjSJOQ]י0l(\a݁@ۃ5d4zn@Wed)̀M\%r>=̩OV ׋o&!PPx .xyɝea$sYk	Tlѥ$2=Ҧ=D2{zFբh._Uͮci2֕[X}LLf)Qسj -()19h\aq~iT\b9bB!g=qam=DSkt^	)j[| \8d\Y@H"4\ љUᆁ*Dc[́Qe`#@
dV0%t{ym~'".x6JX)^7<҇Ew =V7P+z~`w64TU Pm0 p}ف	r}H6g>ٗE8tB^+$gj1DÐ\/jV48yKqk= ـpۻU*h@ XQ9 	u41mh-x@C	ΐ@e$*i9bGSCLD3=.f/jk[%`OLvgфAC$|Y|a}q^VP"Z OׅHj1S&] CD\zhHc v:Bx#WlS7̈Ym'4)o0;B↓[P'森K2-,KMQ PϫMH>/i&om:8vp@[+/=w(*k QUZșcxu%ZN󤤗m)<Ǟ+T\iiDx6G;UʀiOTסLfemedqIL֭]t`̀n!()SAGOAaPOIvB0׬6fVHkqz6,}GL3R	|F+s㽘"nC8{z2vPX"`9ðU/SGGs>Upno@	")dIWxn^k6D2BmjOyopIèRo <93S8jc݋|6P$H~H?	ռj"dl0bR|[ jzLӠMnImO;W#vwF{GP=߭f`}NH,N?3)	>U4hCRuHg;_Z[i-t-,Xm cfܴٹgay&L˃2_(H ļGr4*2:6^QEхyI7mIǧ:VSe:  bV.aƮ!w;[VcOE3ΞA)Xs ZlET{U)w6B>9pW zur'nP7t_zk@93R¶TsUef]G(Bɑ	ү
u07=z=l޿f
`/(ȪԟDy5Ti Pygt]/#v#0pV抂{R@P@CcAsqz@GB@D=êYU>:1rUWCVNOw2'rF	m{cp`vy}|?r$cm l4Vi7k9wmX {Aݮ~k2b{-ljJ0c$RpԣUkrW|,+]^ޚm0`~Z̃Y\F!DFf}MK18FWh+8*xTӴp)T0ЁsSNy1OH͢w?țP~n̊|>`A'YFGW	AJz!Jlϫ4݊f
4ʑqN:jWbajWɧ "O!B4Jº|*QGa#Vq2LG4`8FE0ηހ6eN;v{~ޡαAcwbrvG9k4xb3jA~SP?6YC.}]1:2x&UW43MăǪ\z+Ǯ#E?SMՂKnݏ=&t(i/P"廼8窹pmMƈ:)|8zcʋ/?jӳl'ȼaR~0)rYwLj
iy[QdBS=e8Uĩ9Tw`eÝh'0+h%ڑ1gyT& F}Х2 `^ܜ`}4{߹Z-x9Dn@ArL̓S$6z'LhMYK}F[gewe
 `T{W2&`QF@lC.|N	8Լx<B@$όa?{i#J<;b҇9߽>S'{,.(uWzE٣; 3^OL#zQ3v"r #b?&껏ª&[h+h%h<w}:ӾjB	5oZ!JfDٚj/^ǩՋ!YTV[`>?PHiߎ;S@S{{iG%X$\Լ݀Ԗ Wfz{jQ{0ܩ>l!$v2%U1nz7qf>QS 6g׿h*LEQa 
0 i$ }+ϵh[؀]S6ӧݕUuGz]Z?,>G3h<eX}yOKBT6GvϚ1G̊{"{G{ž'c3h˅PòfȻ2s`Ƭ}!jD*$+KTGd ]1\"-#sY+1Q$jQˀ׽bPqB&<7|r:i/S@AG͝vJE KbPWTX혃IAU̩֜Kv,5h="㵾@Ar[pu*0ơfhx1 l@C
'U ᓭ j넍c݇/63vՂI 6QM`1Yq>M>Wi" n7?V 7"+9Gj!8A2 _5f@=nb lhZ%ɱ~\"	=",>}.^~a1+U}p"Xp nӖˌ;+
Ov
і, ǥB걬ϯug=1XEZ .D8j|:JfpzƒV/ZGTc+8o<}HggUGr}%yr"ղ_=Op{pӨ,q}f dW/[Ό3=Hܹ"dޮ/ῑ5-R/[\A5}eR9%$
[F0ZϼI $&}s4irvd~ee>BBw
jEE|enc!LI=hY6	P{@d^Qw	%Usv=;
o&>ob*;;_\-{Mg|x`BTER{94Vۮ`#6C={&Su|MTu~.)LAUd@ٙiHkCQ	(+n6 _Q3\d,.^;;=N^DbҢފi`A5h+DӐU>&؊%jtjENugjcTQu J?avA="d!ߛ<L e`KP $C/IS[ѳK#E&1`-$	l}^m2kwS3T@TxZ&9'ب- 5E;aXkhyTޓHv~9w?QJNr۳6bi`v؞hM5<:raY{_fƼ_\F#_VvA <3})\VAyc{!sA= p=<ϭ	C{A틧)g.nĖ#'qD±D^p[+(}Lov}!-x3&LQ/=Ӄ#=ݵjm~A<<-IR7{UUƼbbp@6\@QW!cmw-X4Bxc9Hw-ր0hVAj/{$JQ)ymCe֫'ݚǫP`0l6U{P9JFplJDnTs0^3o54t@ЫIxƊƃ52|ITg1r^sg{8xiň!; &R^"<"""n[%|C62$,@ߋIШM);Z sBfdKt-cTQoB|6C2ҿn)ΊV0 -0lYp0%
ܞ}=tm=b+]!.$9A]kgs ?rDP	\sJjηS륺)%ͫVza5<ßÎywn)JJo1޳cvՀ<i	{c!PDo X/z75Ǖ8(
72O\~؝yDI+i,<^iij:1\?1<_uf@|7Mi |tE@ƤMRQ1ɬb¹b8uj X}hCb+.P <V(YRɪK a8>VRHZd6_`QsVrf<|oDR<!`u Z?.l8SHEjmYG>*Ь;A9{pc_.~{@z,%0ܿ`塸
U9+@ڸx5qBØ&)bkmY<2& b Yշ=\g4猝3=~qGjQRHPL5n?B!;c7c[B>bD8lZژ#zD:E~gv/#)HAQ?{L+26$>4sB ͇	$!!λॾ
/
)~J˙q;Ϊk0 9hjDG\&P]?υDu-֐۶柏^!8uJ@/&mܐu>Nm1@ Du6MDXwЭ=cB$8-?W+ق=F!JͿ
L|@9$!cůmHd)܅e LVK`RxjeE}p<enF٭lN*}ۥۇL H")e>墖8cpiRS=`U7VL;?f&v[TɄ;F TS}^B4f`{gӧ`duisSAVEE@ͩ<R@ `Jd/QP]rw]8޲əM b59YY/g(S+a	9;z9؇[zL[.,LT0:Qdḟ>6aLuϪ	;/2/=/-gG?~mr ubc(sE0Wʴ)ـ^URQu7WPd:(JB,E=79Ԫpn5	>E$hBn=,SUzG2(`RAI06nSayCo[=z!2ujF0r?{%E=;='uLSVcu4ZIyRe6wYC\/c>A.cAca۽G}6%ֶ~9k:c30
^,6Q~YM#y
A(3c>,Vuk&\%R{T^G,v/\-g00(wޛ]w	U[Z&|)n/7'duuֱ*?	+Rdfx_	Ī%p\UkrWT13,%5+c՚w:yX0[Lz!p	yDJQ	w-؅	XK HV>", C>um[.Gu.r. jd^f@;x%[aPT٨JU $,`߫N(QL	E*	`R2^fa"݊d,q2 I	J HNh~Cu4bR8t>ɨUȽ )Dce@S)v!:V=,}ڏSǥ&Ȣ*Ȓ/[	SG#փOre9;T @2O ;ӻc7+6O^Kqf/7R&`B:P*Dkx'>"[	T9E	M xB
sIݯ6~`I"KƠӶ)7U9K,YA3dα;/qo`CwӠdu(1 @eN+`OڑK)!8	 N?wyy|XbȃS2rSDYB\S zΙw߳ d0]S' F0m~47Lz~̪r/=J M_De|l7h"U^{`_k-o= <OCȦ	H h? 8F)KIW^w+-Fw.?/m3>z6"zc
|Q5`؉^q1ث?1 eeM0(;asm	J4X<ǩ.`g\Nicd[l 5IE熴_ g؜*sByFa$iAg[=`*d;xˌ%)`9w{d[%H9A	 S犁x*sHʥ`#=Ex!-P7kě%;E	1 0B ch'oiG0azb7 0Ω!X@ :6@{=X":A.Ӗ3c_>߹82>mC V1	.!ģV	s`=a/]	(<6򪲹p1bO|(.`m/~
NٚQ&Q߸ m,cޞvn@/x^9,ۄ1:.&4N^käI-Uӡjun`J&E&.@Y\y 1@a
B,{ 'G
MU~gP{{F5#ј@U7Z=,4"WiE#~bn93>rv)
	C¶+0W!0MOxv8iiub7Фl L% m-64@(s⒀`'ĩM^)(Te[2?'2p&4:ŰlA{;}k*6\3v>x'O1Jܩb ]/{}kC!r@!/~"71W FjzPdL^/Bܽ*QQG9P0S@-B~uc$C/@МZ&g213>v`xbx=c"c/Auh,&5-ݻۖԂZz d1w=a0>Ak4BV02c1&R/5pP'ysi bo{02V?P_mz&]U	H*H%nWp=+#G0ס>L(fP90[aZ|A0	A==`ݘVcλw0Nh6l0RJ#y JHV3۲wnύ\6NSsH I9xXv7{ļhv\woJŰbĴ>A0S NX.A+-#:~t;"#.\؁mq b|!^o܄N IX8@qYQxN#I_g!qbF[؆_𲬘d2{\ziP_,a?;pӶؽ?v1IrPՐ6u]!m)n[mqdMdܞ#«~7EG06t|$e:S?YиKQc0.A0 KrW;rdw|	j)^6L%ZCe0iIo]Yޟ^51kY1)}pUnj(Z|Vd*, V:3>̄w  xpvvȣs84TnXř `߃+W LVsHl@t}w?$7a.U{@۱Rm!|ZĈWp[E]Զt)~_v D"co;c<'m2g}o֟V ՔAۉWܿRDMGCYu4Y36.Wxs.C"dz>;$LF©QZ1ĠIb+;w$&	vSJ_~do߾ں/-{g3/~$I]v8}v3sdH&KɩA6̥eUz+#7g[Ow{.wz-i|w؇O:&w#MGo.3оLbCoXfo(wk ^uoǩ;;;㫖G6ݳmpjM4ǖA*h"U[IC,7chCZ^Vx\ތX*##VIp-y.oM>* rm:<ODJhq' \fln̰V#lC:C̍v§f;`g~礴ka29[\äa17nEUswxCtSKDuݏ]6Pc:v@_~|7?z=ߗ3n GL`@?8qlkkP)1  IDAT;
.Ka>xQucbK*g c&pagf@OB4FШ廂!X's
\iO]qDZkE@k[]ӈ]JK66[~7ϯsa  g7םknZSsZ09{^ ,k3lma֙#]sϴh5d\L;pODK8¦!Pe>:>3Pߟ<]yH>ХYJח>q'wK`{oAJtr/?_L摏kkxî'UZvcMHT,`bS}!ǟq#k-<1}(-gT74@.Iz8\jd=Z;f"XE{!S`ZhT~z %:Eukif$}S~	O~_	l\qCîk3uĳ~eGh&ФW_ܱ	iR"^#87T{۝#.nnQ ;}Ob 2rQߘGA- ~wu5/3owBkځ |>0Oݷ^GZL ]~tѤ#&hvkH+ w"]݂(!`n? jQBq7}Hsx4 rl|GcΕ!پD]^6[[=oan=goEp|oq?0_{Zlm=KgYO;Hf2Xk	8W̦_)C؂2Wٙ8U~+;N]o*ųw5zM(  sh~<R7\˘ POD3뺗u;yx=];˽<aKxל0[kq#XMh{>WJmbMw۾j
(#n09g*dZ\'06671c 2	è?U0i__ѥ+C"|iX?|W][ 3JtB%p|sk3 >EC{:-	n''2r<u}gį>Wx;wq꾏S
4xzQ_1\u/a{rF,zKD=hmֽv}}GC{ݿ ?yӧ}87A^<S]#",6qlk}`Sϊv|R4aj9l[jқ[RX$c* '#" MtWğ퓙Rݗd ƍz8=ZQs&E	'7gZ+D8WoMۧs~$_xGܶߑG|.g$qțÉeĿ/܃	@DѦ\v OpO	6biL{QMQnT`uF[ g!cٴ{3gepr)ћ /4wEMP- p3g7~g|Vθb~x>W#U\@\%)l	h R#C^LBHj9߃'1zFƇ$1r^;1hw)㩣mHt=vQ j{_~F;[;(5ǈp5.s|1fƱulP	By.¨.6Y1Pg˅6}/p.B$ժp]6IjoX@o}XE#[2迯uoX=uoK)oOvH_t $f|r/a%e̌Oxxbu+%y%bZwmn4!DU+ |wڻk#gVTUrӄ!yn^]S]ދ#:,( }7s^pKOW!4fyu+Hq'8Fp^wjnpI:.m;}V}r\/k7qцM_Ʌ%Lˇ&vxf?w|o\ro.I;ϟOz:"uH8]d
κWlmbu1\vKpsd}U;<&<\TRw"owQ\c`p`$O}>Q4ەy#3|`To0{gkK?!?~J.YGFX<~ewVD߲݈p.Nn>"tҘ>)
d PJM?{!t F,
h3	T%?ǖY@=7Sd83 mֽ|m3QBK^Z[  L._Kq23z	<밵{`dAB=\v.6gVAkoYzZȣ@0}!m$ߪ_~ܹ<#'A_~tvk%9b9v3 iO[ %n9qc5i._r1 +3&B[[kxlWsl<U h) ˹!bsdBK_Y@	.ɻ@993x7%'u{/_ {vKb_e ؁`+gsXq͉xcFށ*K3#q+	Nx0t)-hE)e2aj+X2geD<j3%L3z= 	K,TdӞ(^~wc31utEf<36qj%]xڬÕǷbxl.u')$R~2-RCO$1\_/~wRtlkеe|yU3ԒG2!4?o ~\^\_xRmlm_yXy4fUǷ.9sB XfYP9H/ w6 됼!!bZRc r#&?>A\ @1Z~[X-n8꾮_|	!UR X cH|r)EB.I4p'[L&  =/D|V'ýV(dNgH1ҫ `	_egjun>5u:cjn%HtmYwp[9Yt	݁@LMRm]Sכ#Vjr Kð]܊qh3|0^_#:8?LX6;zدKJGꟻNp&#Nb7\s%>񦇢@p@5XγL;$A.@@\w׾w_K;vq@ H]-Vi=?=393(?ݭcG5yat@/4RG_8aɷg0[kxCW]DXʁ5V*̃v0'	ƌ<c%Ku&D3h 9GҪEpg^4K5gHLǜo3Ƀ]Br/_A	O{Ò?7]yuXu+4Q0'#6\MYmS	a
^KAsƎLShSxzϔ?[`7k<v/n' ͱǍx84,׹ؘ	7_wMbs
V۾EW[FͱJ>M`(+M	J{&'XьDI|{%' Gwk! '|i
xp󧬟:{OoDx{a_ sfIs@l3w0?&T3+ԟdxbnfU _@"&a$~K\~HïNuU; Vf;*ÒG>ͺ7]w5\O<j+1=.ls49f+-TU_L=Ei|+@fO4;pدkG^Zl__
|+mo|RDPKs8|1
X
.73◽ic@ǶXkUisL]GiyDnG~~	 8Sǁ*3~xX=.i]Jᚫ7<TC^5.Kt>;Z*-}Yqї9\-3`Xx
qU 
pc% .Fq_ ;^{دoGh{U>/=xWaDP Ÿ#fN[~H?~?FH6n0B'pE?iY&97k0ʷ_%ю4ؾn%t z'p2!W]GxUqn@ۚTzu55ߕk<eۨ]?+cRdA9 ~2GƏ4[#q- <𣗋 a·T[_#?_0{嚻6z y*"|$Zv ;, 0vL0_o}aL%ߎy :g|/gK0DkO\OuX4;\3 ? C $5xH- k&ȃsL=L#;ǴG=֧BOeӎ>gVP"||'<3o\q0͵"|O	6f`A62vƒ4 ;bE×G@)/A>-/$e;BϷ1}lO{ѭ 8#>YXPc  W]qFlR+Tҵ\hR8W*ʊi0^4RL~ 5};b n{-	]/"%*_"`}7_w.:	EjG iN%ߗw=ᯙs7>~7zQۏv }o<;٩.|+6|äj[[x7bsmM3}B4csҼI r5׆6a¾ iPf4#w79vWҮ{1#pV0p+6|As%p5xׁ55+QspAO"V&a>'wƳ~sׇ|';_#A#p#x|{2 zZ@ڱ<qlc3I=@v3	$ռKijx"'P3jBH㻙n<u<H8v  _'q>Х\y%u >` +2):|B6h\~P!L_̯SN z~_̓z냱s^s8MD ƉښH~[sCSWT&R"`?_>ٗ9Ri ܾoEJ~q3O#ٯ=qF"x$bGvDyޘ/+ )i6>%f;b Ign3GܼOlGx#9~<0RWV3@OFk{Z@t_\d)%˖{Ԝ8{""\u8>4D8Ti\} Fܾ("c|ˀ{kVEԎ^E؞[q,m~Q9aSduuW"4pс?991Hkvo/==GiG"nO[:4_3,r|<DD+6)7݄Y7:}!mF(&H>@024S~@ïx=xd_\JcϷq>|K	{CpUW
ے;u@C^2SJ?5=uG>ڑho̝O918_01:X])>/M0HU`4ŏ~]_s%pw)#k_bNvmcϟÌ/>RM\.S;?#38c1/Yv{oNm³^wSt@;b hE %q_7ȏWݟk77?kD#wLzZ8}ȭw)#p^p2W?OdƧrƽ"IDxUWyRJy9	 }U;F@oxaOQ;v\}w{'{	xH8Fυ0eıcX!n'wSO9~]?_??jَ4˨=nAXO}?WDkxm1%HL|_r	i˦1˰= z8'1D?ХGx3<ey'c%-_9bYgs;2.Woz??e.kfoH_	pG\yRJegħ3.iց}^:c; ./݌bz~-a=QJͭE^lNS?⻜EQVtg03~xXmcX"<rq;w~{ï	9{;zvnĹx8RQ;jGvԎQ;jGvԎQD(&4    IENDB`JxV[J~WTs⸗sZhg&ΓAhp.~ff79FTWnbou@T*u4jb{jM݌Pׇi
SA BvuR:s COv5G]7`mRTERAvLۗVC4&-̤*LZ
n/HøwmCe:)Py	^voN-ԺdRqQC>L:p0YUmY4{h骅쩮754,lWCTܖȺ/{sx+?-3X>N[MY*82+(߾
y6n*ӢN5xmvLc
ꌨMr5)iZq4sRs58H=˥DD,PO 'x F<JF /8EKO3k b!*iclGszr`*T0E^!p> \F994@|5DH+x|dKL#I+çH
8'ϻh3q((^zέIUBTW*[Ӎt-b DLřFr UA׀wDTB2WEg>w7ak'VDΎG?^,pv@. jy6:ՃUYa5Q"l{{L"2/["ISa%2ysx|@ N{.=yY+u쓏}qF:{O#K'D"Rƛ@mָ:[PO!TmXvx9Ftg-(ė#xRV)Ͱ[n_u>+/9]s8&H!=FߛGа6)mJ=ݤuqiCvvH_mvi/#U}bv׏u	|d܀?z7^_εx xB])yn}WIAE(|hʤO%~ /\FxZ[s6~ϯ`<L`ߝ>1.H.8
0bav33H;|GGGŎg5l"8ՠ
\|߇mA]ؚ۰MA.zƄ|_xN`Z,{CZwy6ƥ }Ćl6Ʀ@ʗkL'r`[.f|
-!n"xvлi nk3dr]T~G-[yq[w;C<;p=hNp%/~_ETGJiDi\W[~8eUb_÷}asthZ`8p|\Ew{XsdxLlɃشA{,mNYBQ4LOEUThk%SfMf6]uo2@o]M̰'EY(-EIߞEYIzg1 y1b,$LL7u2P֤vD	L|CuB)x?U(${)AKh>K0/ NBtAZEFx(2	;d1&EGF	W^[fvaݏ| ~@а5*_䙬c7cۭoV||lA,0/+p@1gH2Ha?a9Wu$Kꀿ=0R9~*p6̏Q?e]<hGB{
t11,rVY֋y[sa4NjDkLɶC>bo/7 .C?COu\c?xT%e2BZX'V2wd( Orb8[$~+ ([[H&&̉po<WY@gjC.mz~
p0O~mܚVSI7s\دJFH/reSuVU\}e<[q&ll{S4"]p(ǐvPҬu-3+m)U9"fjmf/Tߴ2mWNo$z˴h+Nvy׽*#Lf3+l\ҝ2Ue]9EIdc/B.~y
Uڠr֮O >s<(u,}Pv@=c{p$520XMԌRsϳܽXPִ>}R=yV&H&k.9z*<ӈPܜӸԻ|8qi"sSoW-k-{"rga!X3%aȀXDAC/#=EtF̮} prPhpv	Øy].s.S>K@=HehF	3;3glۇݝ!0ZT\3v	}{ch6'Bl\4煼'>[V3O5(k 8]uG
dMs~u+,'
cEdz{`Sc-т^Z,{3xXmoF_1qJe+`$b+:&W+Rrfv/\r2wgyOOa7"_Ude5 Ljx<cݶB{&ֹ9/!ERV,R0|	*l GG0!UI^=$D\IetHi $d<ݮQä"˼`,T BtW2ȠZmI4&%6CM(un$ܭDSHy/)6ۻ"dsI)+:$+
 et!ArnE`cJÊMBw-DLeݧҊN(9Cd@FSd(yZkm((6J4I8A
S"xlPr*:э8wę nh_GE_7~8aHP~ |1s<vzzWY=?;w#č|%ӠNx=wO̍npF"%ڰ_ TbȞ](ș;^4DglhFcqWl[-lwkb+G1(JQGL`#?cߋ|A?Dz 9? y|B|&i58B{LQ"4~$/s&bE)2)mx~{efr`*m%h}:GR1&]~r%>bM{7UX{.
g{4iRt|UݓwIEގLX*X"YߗI1ߖH<ޮg]kPI-9vϠ}RAxMg5hl4?~C3 L\ 
ف	@H7쯞9 
P̩2KvT4_ɕ.`[b#|WHװO)w%ͪ׀ݣUe1@DRJ@٦8}
ctɅ[RNYC?YE'09+21mFO	_@^Ym,-M#SJ2Y^9Yҷ-\|PTGڅI"#GqJN{~<w~pc9Ş=wև5I.]O01(x>\֙9NnHh6kyåL|S[\斜V&FJJ=
*H	qRjIH(Xc/X5xH+8YV߄;GYJIZʰr̐au[CIo,\}MQ:]J4ˋWTG8MdfT^_X6K]Sf)
0<{v؋:A n1̸ؕ|cH;k;r~j}p\`XhzL lKt&)J%X	r|m^ZaIJ)ݺR{+͛@[V)
ā]^|Q@c"18E[Aeh}x}#uS:Кqe^̊c\W1F;;V%ZFs@0.wթay)7R"W} ЈXD/^92{z<v&|cb}a莻=5B/dK&,{S;8u,M*~h<:M0DktC;3:ZXm٦? ŒL$׫ْF#ffoo#<A*<9@m<\Xu`Jt؟rsM@zEF;ECpN;	
ep7|K@%!n76Gk\Ah|N+arɢ0}S;\
q^<VOhIDI5Jh^ƾ-Nsʼъd:|!ۈQoW(/R^H!h	|6M6И[3p
fx4'N<'3'8ئo 2ˤ.bC;ݺ}z$x=sǒW}Ub#]]A̋:@qRAldw{ۯ?s?Rttt/Nc-sQyKY[\$Rb̥%qF<Iv?q-ueQ(T>4s9oE*Hb;y0FtHn0NjH`|	d?$,KfQ <m׀a㐋h%3 Xuzڤ2\(RW!ʗ6̀iAj;Ln֑!2̀Ķ%<Z_Im([<ʘ[<3cG $\HGjm9cdZlm h,'AdJ0I^ 6DC5c^eȸrC\d9DIRH'hsw&viK|Oo&Zɯbx._OYK~c5e˛BD\;Ҙ
Z7x7:}Oɯ-qޟ 8]qM7ݑ]=@ Ի&m3|K{dƈQD^}wрn{սQ! QK=z@'=p0;@W6Z;ꏑ9UK wӐ@A!	&݌{^۾h4ۄ4{M|<tG$WKߗƠ4Wa|7}eaofܣh4p-KsAfz|k)hGg>epޮ{XB+9!ۘ),p/}M~ǿ;zd
}maw*|f0	{]M[!"ɘ>9\ma}:Mf2ˆ|mZldiTOA!n?MTY+DyoߊO< 7	sh.` 7y/\e<éx!x PaBsc?##=#NEHE_)d@oO" RLj.fa>[(oCӟ I6DS@GxVdh,gYoq``UvF)Tx҈HsYZg+LZ."
'<F48)p/*&+i*&1Ơi!|J@jƷ,HD9&V@xϣ:HXO]m#.IYw$+u|χ\c{ LJ#='Jc5'rx"J|왦J-@pWt6<48ϲ6'`c=D&F,H_b傴a
OW	,= J?ۀU}<FH	,5.^_,/|.W2ģq7D0$٠mP[v
b)[.2]bk2o[ePJpLjO^3">Yz<L`q"i`ǒ6{Uc%rB4Q[-I`.CX!!;JHƧ޲nd,:C@-1
]Z+õ]ԥϼQkP][%%}f	y!]axh,iM̒BiF$?T=/EH;i]jS)l9#pC#8DˎҶ/dZz}&1Fp˹.a1K^WVgJ8vk! -ٞ$t)gsbw
*0 =<eɍ&.cf^(VPPF8E=Fڃ繮y+n~zIozݿ.2gn5g:8è?q:8i'?'C7+ˉo'`Lw8~pZ5TM?'6աLUK˝{p`y_X|'A? R/[r\#$B{2Ӷ_Z5P<d7'QDҾ17	S3TRs,ۮeQxV+Y0/hWQD01 ,"t"ym:L4Lqܴ1b襡!ߍrb6"zO 5D4bn@Τ"ʭb#FT"bLu4tp!m-I,w v[`%Ē۵Γ	D5j i/9޻Tvʱ5d>}E56_:֛U4#,dNMh.%{cv*4MN<Mq%vj9UzrpqQ8Ou6]{\*&tc$'~<K%z6ڍa.VC`!|?{8aqv۩7Uge7{@1AXw{<Lo{vA#bm_~cٔ>h1|q7eÉ*4;uLL
cüBy*hO:2`СPǿviXRe-V+4&&Ddn~9Pւ<,%Np	X鋥l'vn7\sܖb
3yrnѢj`".8 dbtrʒ+}ھ>W]aÜJyZ<qxQ*ƔF7^Xx#{;b~*ޡz$pPW$3O=tQ@̗<P4Z-1ƿ{8HmYUL hlA:@&),vK(̜ayiCso&<STolڀԈˢ9G!M+4&JpKG`:pWŤ7R^+)'84KĤP.BP iVζqԄILE>pS^XBɳau[m>Y\Tn0ߝ T+pg Bmp%r[ v"|s;8N_ZZ=FsJ
XG^,P\œiGW<,T{d}͛z;gZ(xϫĘW*U1G ت􀆂6J«?O:8M;ߙ֤}ht(aSM*
*eV8OFBX&KTh?(_6H5lC,:^Lգ
!'Ǒ_Hd{b3MwCM>xwVɚ9KaAfwBjN))l"RȤ!T_7z#4e?.A:L39)76̹_%,XJKx;n[*zÛebE)j%0e "ؓ*qF9w50W&FlmƒDScr+.C@^AXwݡ82R+ʎÄiPaڌjOҰpV/ƙ)?Ḅ9(.6-['bmj]ˌ\}(AnǆOv$TCi+.Pq͓g:n	~RRiL֔k6L[
-Δ8[KLzݛIUHvjP9b)&ip),6H]	UrD8$6~@F\{|m}ZqRygzYVV&/Ci4gTh#
Ȏ0aYM%k.D9,GNQLD	zܠ%R,\[}R)s@&HFq)qaB+qCqHz4<$Ϟ6=QF9G7u[7i|Tý)fЅ#hO6vq\Ѱ<Ap抪(w4j2tk(dXhOR
ǒXFTN2#Ld[vW_y`$kj]+ZZҳ'V7c5cWX	UA?uc.9_IW7.a[QZ`=2 Ⱦ4}fZ]G)DV1s/TRH׃j;F:N7kJ@ރSIE }/9SJW@1n\T֯PfL-̡$&Ƞ(@̥-0d0&j̧%U`wd#N *ycfph/6ʷluIbǝWrF\+wHcxCDӏEYP.$"MN߷vAe9M
 E;\<
o+V.9:a`RY('B&rܿy!dzd_p	qΨgxS[0L3<{p/9@],`%@~I"P\9n7^{Mn6\HgeQ6,,oU̫Cuci72I`xgkM_ݜ'Y1W}vn3N8J'9k^*2WD܍j_wO06;aAP֤;ްUq|DCН6P ע~N5}Sq{2~5e9ΰoͰEɎ=u#WD p_E깵zP6=9?3 *2
gڟ8vu·q`.3v-am6ۤnfA"	A\܉xx36kxV窤yҴLCv6:e|]K~pɰ\߉ͧ9OMK&HM:)z<fDԎm2o@^.C0жQq)["gPbbعh6 *\44]D|7O3Eo1}1/0rUfxmɔy6:zP
l#Sy#*z/[YY:'ܞڰ5ֺe}Dѕ]t'  HhS>GLQVKMV	M`55,:zU"eL9 m3\ݼ\(/cBʢ^s)[G83n5$	?w/]o ߪµR+hGow2,[1adBEꓚD<|[6)P3D6sMl)f'ҀLKf9f*9fV`j$ -gCtHy'Ưda~0Gni?C!/I4 9PhDDˮ>W+6a.&11dDɴ^9bW
/X-˸rV\DtmthmDkYbҥ+6ńU$ ^k3|Ft{GU&q:Mngbxwc]NhUYw%oW<Ltt%JbZ;ͣH9M0g!K,;0O2t1zoḂla<}?UtMoAlhP2QG:[
"*oJϽѻ5.nq%:~(:xZV]Y5;u`'c.m,P0LY`aQ+2m.RQ?=N^e&w|roE5ɥJt#w)w^վ; <rPJyFLLzD7jqvl%`F[z#L37AFFM)PXtN)r«iΣTR]jTWл'.мLD+2g<ٺ^yQ*yUeժ93Wk)FSԥ%/8vCz2k~:p=Cgvsb]m5%;ǠcihSc-Ãܮe;PѲ*FlJl_q40Ttϭv]KM"T.}묚D/m5!xxLMǻ;Zwk@Jm'M<exg¾9 #2E02bH=G^-w\ot*6XAG]д28t{<TJv
Ltn
,F_4Wi흾^uDYYyY=`󽫿ҮInQQ22g,\7.bxMdų~L-kh-%_"Q7앜ۦ^ؿG O(KD|_p'ueߒիmS0HtR'
Y6bdPoz/qM.2.X:Cwdm:~xӽMY-.W^i~Y@j_{dz~v(IZ+R)ՔrRPs?lx&ؼ`|@K4UnڏTPw?uvM^uxR_fkËgn^iRI &[.*9۝rZĠG*r_p_lA'X40#0R	ONbAv[-q39cI %Ũ)q>{Nف:tE!e^>*`i YDpϑ^_)6ѺQfۋ,WWѯy8BUFS%SI@N/&N3th|܅oa_5Jͷf躯5<EPݱE+Na@!B<gVsw=~50P \~t4dW΢.Êsl'6G' ExB${-6LioPftAmƉ40EC%&dtWhI@`Y'#jJݐ"c1ò(l򵭱+ߩj"zx~bI/EGjHyxd8E1z[@*ٮc2NuUVlVlG2~4ڮlR~aa~& wv(Oh sc;^!ؓ/+a{y>Uyhߓ_(;;\/#-$IS'K4W<Ngq(p{lՉ{UU_ոFմFs"w9_u׽^HGü#a.޻\Ş򛐮/;.LNz)}7\_&.%l|'Ѡ{ߴDnWh6xZmo6_Up(
;kIƸC!("H%M7|iˎu3X!dxx:? 8xu9۪&Y8_hdԿj(IZTF$EAӄ,s\8Y|`$dYw0ӻoVa'X+I#}	1t:1|9j#%7u:0L<%*/rlut8T-PP$]̨z]K<<Chz.4~_074'ߗt9$)q;˃}M[ۖTE%!_t]4ܮ)B|3e [v;qD%UI`q0~VP~;L<ٗ9[QCP˳X"\>KE 2aE_-uûZ=]bᗡGkxqϴQxFe)ujtz}F. ms0ǿ!9ӹI$%-gď9i2ct\>gu]Bo MPJP(<IC :mrjF2 bFFg#`[٭f[h -!O:zmh >	^G|qw56ԥUYbeO0ZΤh1%
u zj>шJ)rSpT'K@X2airҊd4ըS$*mOh) 5Û;;pSŏv 4FV\7|S^^]zmKW1p29[UeK|WOqR\%$+4+Y3QҭS_%pI.ȸ!%~'HiD&-~1EY>|
yOiBe	mi2boUk- Z	$xV׾oxA<_tl"s8 yIH0yC,@5#n%U:==Lfh'GP!k3Zf.lb帪Nl\g<+Z]Fs\)I7OCX	INX
ZӓO5zY/x[2ͺ[sq\󯬺A:qV0fʬ\i/3fPse9وk.RܶU5$pYKj]}@4U<IZX#+O	3Kve1"nރXa*јs*}=ZNB_\8)r@C8%E
3-BSP57ȴK2L2]KEvjrJiפ:u wчr9'R1?!*>)du[r+50:+MёM]N7csھy\$TmqBЗ|*lr2aóNF=:9{{.jTiFj.fsQ+%5=䝬yT;RgpXƱq4=(78V+-s='zf<t>:tg%t%
se4v)\LsY]F!Ε:^|Y,N>5:dr0Wg#<gOku`uj:t;:A+ڕei2vKPɾg>'Y6vK$𛭤O;::@f&Cv력Td8#۹zEeG26tj8D`g:HSN\[$Kx3/S&w&`>Wd&F0kշȠOĺͻ޹Wo}6A)iHޖTCLINj[^f\29K[֒Wĥf*Vx|!dv}E@O
+dl17Ar}2Qu?o 2	x<rȱR2E[ެE<%KM,)$NA`(
H*/9s u%'"===}"?Jv,{)mOwy\\/F8gaLNtY6܇ ]}xxse4pdBjL@8"<I'FwU~J]AWVݸEFKXU4wlXv9u47)A*ɯF:Us$<>#.8yCˏ3Kf)iFˣ(c_2D^h呟8;{m?uGt6={w^tskd;=H-ƴ2z9ֆ@dq\F!hgM֐D^' sG/aJ#&,ȐPNc2*'~i4I?8.񒛴y٫od`>?/h3/MP8hx?,] x.ї_%B[]G@} ":8Md!L7#?ye<"jF7DGUNY=9,	CV`k0YGٿ$nOMpĂb.,3An<	x ǩ^I25A&864=ifrb1%58Oo p3	0mWÝ{ ⣗W~9~{KhFlɁEN-N$ώud<=Ot>%4nS5qv-
='fTJFFA82dpMi)whҕHKZQoB)n]X,@ţx2Ii'#OLdѝBɄ%iL8%K#>U!;5vr``EadhG1<Rt:ٔ/X~YXa񂀡{+HWL*fK<1wGxR]ݶ:
^+/IiO~X\[zkd=KSrP]_p94]`AvwM%/An0-A"jM#nAq\Ul/#NrbI
!ԮjGwqlb~{[.he>m4
ҕg42&J1>4$cU'SHǞ^)E}]I|"6[	;"̠,ʁ᎙6}mmcvdV*ܭ=GrxyO InR˲WF9_`tvYb㧰b?l $l<MFsy^bR뭏"M=*DJq3 C-8a8ϒ)N0W&pKV-8j~pjC']XƠәwTH!E4IsYNs EԾRV:ѻG7;UOX!HoddL'莔'Ӌ?<:0jCZ+Tsjm1I`1QNyhќ3u(VurࡽG50!lXG1a{9p½88rvqJB6)K(;Mp6yɄ#tHТ!FŠ䜍;ɠjLzHߡLLxbKƠ>
!?%_'@ח/XҠ-e;Y1(.[bb<n킼AhƦfk-eYqa
$K¨1g%x\euY 'l)eSYFX !	-,mBaɩ@?h a)Syb)[4z!Q<b	,cx0 2Pӑ]}CotTVڬKH53%+,iAAl6"<bciG8&ca=@5>՟>r/oAaOI"q^T9U2fTU1шV^sı(jU<1"Nio6d gʍ-nE68FAzO`SZB	x424@
^ 낐{W8q:Aexa(9堋`{$IB6^qX,k ID\oAkh̓4,D˄]!R
i6g2uIųRi2X4E)d(%"j+`42#<<N#MM.gAώL\81,w%pH4Vftb5N sMaUmOZMU7SV]ԃY"!tբ_՚YgWe[d`Kr"v6okWjEօP2FF4ƁJ'6+Y?ƍ0g]Ǻ||C. j/&a`!8k"VG{z	{1zE1R<> A~d9 =mu"ke<R_ʡÕ	AlF9ߒYH>=Z]GH8J51i`^/_7QV^\܋snZl_R}Xfc6ޝ1N,eU>ϨiX0P3F,2rUt eE'!
r/a-x"fRe=щeg٩={@LK#% ]4 s(8Zߜs(VVCwT`,*}S-wQvjK~(6}֌oM%D^7~A.}y9	sd~~-	`".Fd]8,`MS\@ŉ:_YZ9eZIkZG"N%)_6|P} tPK~#EfR#LK@SɮBuEnL´v%p(]ºj"%Wa>q)G)x4_AhU5Z.xvhwIOmwT|&l](KUhXY6~]?wxnD(GQ<N}Ƅ_Vu6yzޱv?}vZ9`wc8gNˋ毣;oբQiEXK`SfȎ0@ǉ=t {]]pBg<ZVK\e||`3=r]hקWv܏IL$xn,u.3p ckKW@l$'"!bY>QpOB;_64܌wI㐶ߍYbFq~3͈1WrRU3"u,!)WU*wcQXQ$v	x!0]q_{]X9$xR`u1w'nsctV^]4y6tNl'@sEmQ6YshFgXM<)TPE	nɒힸc"&
NF58K%\^W]9FH_ CN
Гzs;z3CmN2#X.h,
2伯)56ƐˮESu
m
	찀Y9[cj Ŵ]<vwM0`)q;fEDFxa	o 9hi{v/"F#~nz-ܽH6WPݝ23[Q̊{
;T	U7TVhQ[hrjҺFXK0p,YlʻY0!6C.]_aPw|~.0z%Oa6x"8Q	L!خ'Pӕ;_-zvf)Yxi$}ο\|s6V6\CE((wUs1qvǢ]x4YWn{7ZkK
ytނE,RYQ6=}QgyM4۸Kc2Tdoᓂ&)+)B6pqe+?Q_Ӳ߸
6:xd V-8/ˈbN<43hՆL\j#sy祕8fiM)mLDރS-&߭e(V^nm"礈?;{-UDN$A6ݗ߾Y&n$4SF,Rfx	9e<qmV}dB$Z˹3tw;pT+Euf}J68OP"6:߭_`!ߎHTr
w{@8sawG\tL4 B$^way  '5"Gǧ,MBEf`R0_acRYKlZM^oP(fނ7ss2OaRD~·C@Hp[4k*U[xcϝG8salW,8W/b]?3L3Q+mD#nhTz>Rd>3Z 1Nx<n.6(]^ٵ؁6h#rdqMqT)ER5z}pHMACΙsaJybr{6^p:4=
\u=:*~o/O聯wקo&CXǍyURzU LǲTtVh=5<n
j:Q͕L3\	ֿ\.YX	%>|x, 'd!T ~4F\R],2ћ= iIY(A\UFWE, VY	H	1:D1PE?ņ¤VR̶2;z3Y廲0ճ>I{q5yʅN^WyZ b#3e>ˬR'/, 6ұfYR滅LH*ryD,T2-
] Kk|nF{f*Q ϔ2Z%b^e&̀z΀FB(KK	tAijƀ*Vڨ1PyMDI}"Z=~LW۶ Q'èmZ
C?0DXBifHG9p/5!@ox;?F:>YӿaH*8׹Aʌkj!.@WY*q@jPv.G A/"c	wi@z6נS`_nMg(s;"QjYYȒt4""uBw3qz=b@.ِ6oR"Kp<c62XJQz9wNUP2A;ļ
g	JU>۫BD%GUVG[sZ2^G-ecsEy7#Bܪ`ϗg<]م(NJa w#t潒'i)a&6% v0_<nF2o/O.iyzN搰@]-̀Jq
*y"}%J7hf!/@)dY4\?AQ)z@G}1%hx8<:{Cshc֊s%k,oטl&4MnJPE	ƛԔx\$CHP !K$dgp5	ݽpl!lT\lW%0i;iý4s<0n 62Gh	TK]l![Xb!X3/Yd[3\A:VcUz#4Q	Û&Ψe2F0Dl;[ddCzIN~6TS$1H}%!<$F3#K	Tm@C7!#5Ee+f2E>'UawiV6YhHsHspj}LuV44$)+2Լe..p1wR	EKu
iI'KR$`-4aS(şU_f*/t#yvWPr}#3\4qsN*H9AIX#2W2|jU6<&¨.,)\4EO$><(A:r|4Aۊ8@-"x?"Bpd5*Ҏ܈@$m JK2t䎃"p8{Dli VbMj26fA੥Y3A!F@ʍrKǏPC-瑱t6ɎiJ`"WHك,ΪGנ}oCBS]AP
GஂB~dh20a{e$8sfN9@sJ ]BfgXRqjY6oZ$6=+n X)TD>`"H͎0E(iOҼG2lxd)1i	R=>n˥JRiK*=4 jĭƀO)W%jKƾ2v=[10zdf]6d܀"]d4f&&&E$$&#:<tY[88"O	9a5{2|P|@ =nՑĝ~g=O#싵2j%лsAaüHp#*<*iws
8k؄28
rcFUhdrfPjW=SMP9vUj2]r^B>ZtI`U`1hԗP24u*I
ߌ y6ΚgD^t_)V/d5]f5YQjJ:'``}VSg~5oCB'Gm[	Oq\៦StZ[16	CPa8)ut^5:4A$ɨ(,tuƝvUKaW,D6ϤJ&DA޻қ?r7,J@Tylk={ܓ(R@52,*}Vhw0\]wr82&0AJUDTտdʰ6m5s!2rPC>s2V˵n@	Q;6ĸG.@esH3܅kc\#Y*K!Ou>SeXhzU)'ԕ+hEL֮veUWuOvvWlQf\tC\Vj+NdI:=X8~c]tJP3_oZZ1È~"|'=<Dr@1@pxT&-1E@
orW	6/pAC~]8yuyRx7(U`NTy:4yF5ױx־nEXHIn)K$k[t_:{@) x[+Ohg`ŵw#iydy0q=	M @3epѷ[A]n`]$=ZѮ23fK
])^=>wl}	$&n4zVuġgP갱~)5}`O;.Ifem[@ԇB+hh%ј=5K*T0o#g8fޔlľ1P6յ\Zj<?0b5l]nU\?j-Zml(|צUmO&90pu*T_ߋV?;] ZϺ&}GJ9x5|
%y~?`3V?Ԡ	ɭ6X;u\cO}船l(ݝ cW9n3iˠ =-L:'.Ǘ_,fѷzy	ħOt+=lq$Z3ƈ#tw;Pޫ9IҜf^m==4g>|w.]Q?>6j^M
Gq~s}7|zo'#d9Խۙb29IfɰӢ[n9s/ٍz>7
{AK|C%/%h
ҍGmB^,"qɌl\qOV:Q6Рub^UPM{&0r  ЕHp	͆%NG\+`҃+J0uEz;_oѶ@U-WԯvTYJ=>"uWLw4z]Pk<=KIi	aסQY(rly-{^wN|w:աu.E%ؼ*T0x]]_WG(P>mo'*R' p\nʇfu8s+<@
=4z{	AeWv}V`hCpWplVbAǾhD e0xg`8WAo~K΃C#gn;޻A;9j"ls 3/ svN5J屦{$<dysQx6 ӂr/,RsL??^JnP[!9?b'-B݇гF	yc-a%Aw2c_)UC1ng ,ޮҲKoҐղdW׽mg8EzGXV$(/pG}걩^>hAMe]$krJ[@T
ߣbԗ6:{J7w*ǹ~KS_P8*[.5't28+M<&c!~&GRB{qT 4ti$TU~&Hs>AǷ=̢ܩC`u=fk L9=A='tgfׯo~ۋ.ś9wsKҵL(p
a6-}Fb=:'E_Ouƾ[H=^wpptN?;C txZ{o_b !iE	(eIApZEqѯѯOҙ}HA*&oy3F]ib&b6Y։yR^aR\̘YU.Li'r;^Dp~QG*iE%[	Ͻ|i$9۟YT#Mrs0: zh9""> 1߸Psư'^#GMsTo-CjzQw1&r28p1@|r~pp4GW2q}vK8˂#xۄ
55$ۼaŪvpEa	[K=8~V/Ȕ)$52b%IY_ 1;%Đf*fmy	Dg#tG[zH$hPr<mzi@E	] IEF/{?LZH l!zB:D1p84;ýcxXjYG,X}4-{$P){w`L㳭E\P#˟OLH]q,grVsݕ1g<.To}J]3*v<}3D<+
X1g,aD ƣDH*F#l,ImH"ʹP!TNdj!f AoD=SG$	3:#L,1GJd͘9OqV<)r'` -^A4)xi":x`;"*2i@-yi9.&̵+ٴlSGbv4LIVZ K6!W
fe<cX*2*t0oEÉh/J|pKUvbB*\ڙ	-	_Gm{
T%91޿*ce.AY7Xwew
Lmo;}aO˭U,]CFYQrIg^
M58rs;Oq݂N(]}ttT>XX=o>rMx$Zݡ,S]>V@Y{)	 vc , q`nctWT|X_nuf}LPIQ1-믅Jw 'WfL&ty^o5vtGI0zir"b+1''Uߖ}^õ.fm<zIt*B.@d17 u$>0G<'0Dxԓ)mg΀lԬ[<(&suU4wYRص?^s(4MjiѺHH,:ip&Vo7i"RG?+:#jgRDAހZ{g{,kH-tR)59J3\Ǔq>Xbޠ|ab]z	)nt'sf0,!]2߰B5Au(5oli4\U`0jX1\GLwlVjAB~ߌ9yT1Zs(:A6,d
V K!7j5bb\̶6U+-ɴtEfbŝJ#N<fE&gN;2@:_)Zq// i6
knE|3.Fv<_1jN(W$HFGbқ*|gKi1lhBX0hm,M;VMuv+
59):goйKc7dk+`CB[˧d?H+r[tkŝEvjS ;_8AK͂N"f/~nֶ"xAۆX)i͓R oƁM+Ռ}(=qKw?K*9|S&0mx0F]"榲v\T[!\Nh^.6rAQ?~Q}݌	l0_#߂=׭{mToWU Tr]}e{յ};$݊6ʼސI&OOR/ Rw˩҉Z6XUm$9Hu!VT4S+-n(dm=|ľ5_YTCR*04BגGfwo`;'7Y\/Ol98z;'DLKī	S*̛ƶVFpaK0{鵊Se:I8\^MFzr|6|jV9fo澭n{ ԒwLMthCVfkȿ>$Im(@%)ֿdEB[)s4K/ErV5mw]*֩}1zC$2XKN@JH'Fq'$^O{[w^
rH}Gr	%>W&COm`՞u
Rx0c&4]?|[b-bND6ss__V;xi	&>k\%6?;8O <.'pyo2	u_/xVN0Sҩv9Thnh1Nr]N#6mk$;
ĸM>dW1KƳ{zd
rvE	]$Ɉ]'6,F,<`*UcA~2njR;,XV%)~vs)kKn-La]eR0*0|Mam$.29`& 6o|W
sw:Pz}4Fx#F>weZK	
VJ.-Cu3:ɵ.>TD2_U\Vx,mҭ:nܳ4[flD*Z^C5?тM|t>"NN~cdx>JfۆS?o_Fl`Bp_+	yM<K":&YvɈ'}bK!?]A{߻<1̈+g#Nz):^$x%iV~T܊;W_?~\Ю4!o@NVbBВڂ*-1vj!%Hqb3jIOkmoȧ\,t9UqT~xIMݬ,*Z	'I`1`jQ8RKҺHks
3a*4wAAG MjZ.is6CH6xc5N"o6:,H_?/{텬OW+tv*>=:dca>0+ReUo򥷁xmoH;bz&Kmpoal:=_M=yf/$twҡ(	3󼿏}=.sSIcv\2?	Y/yƜ4,H<6yΫWæ<[EBDi"(سOr"㜥,X=[L @Q%GT0%`"'|! %`I.f U@g]"r?fQ9[lt&@4=8ě8A4D"E1~UFI!ĲhHHm'J3&x# KZrsD&5FwtU	Եd	>"丢H8ݡa2tI2Iג4ʺ4KxJ<DTr"\\"{ӌ
ʻ;͙lMg3Ӆg=vo{7;x䚙'vF=f2Y&3fNǶ˶3ߍl=Pgⱱ}k{כMͶ\зlx+=O=vm{`f׀dSsû9cӻtZ0;s=B֭x@9f}̽1c"hށ3NfL#,ϼ[H7-9ȼ5[8D3:xhv CϞ8f< %{۵z̜.*z61. M:DwDvZ%G#:/;3__.ϚQfe'[Z..Gcނ+5,<ou&<X߄y7Y`FHV|FO)G}/N'W\}7!dMeiK#WW-k!7*I(!tೝ,Ҷ}ֱ_}8pxcuBi2 S\e$57zL|~,t:4
m]{Wo'&_ J>,Z:칏#2I,'C)?' lE. cV4jx *ػRM"m0C1EMρ~;ʯ7ks%KƆ7+jft6/hHst	AQ/C0+x<30E"qa]+T5"{1pyn޲ď#tH-U]D+d2AQ)-[&{@`\/Say>P
	
1 ]q(*(Txr11͊.|Z%R=)D9ԭ1Tn\ۿXıW<kzXM6=Ӽ(JD q'L;ӬP(8BNi/7TjNwt NhĎd$PPT&ҮIX`}S)Ɯ>Q+UTý=(LF|d]mZXܮ9ʲ4#ZOYﯨÙ,	0Dyr/r_n	FnUJŻυS#[6^K2F/K|6P%`8'WkvJ*~-6
yj%}&-]|f<YgcSoQ;Cr0|
zDR0e%DAy߇^dTH
jHP6,C?7Hf^J戽jrhZstBTQA^<e`_L</Q(:PYZWO%7纍fx,@CW^3S
	9jw<bi/׺!4>P\43PbyFZY1A(1=Y9jjt=%n94!|_i؅:jJa(e8
k󵃉bq2Yj֊tyR^]c˗OBǦNKI,5^hΏ?M;".s	0xt#sxKIi\U!NhA<i23ܐPMR1L8TU\-jTaخbapt8 .)W|,o΄ؐUY3f#0䬧>@a@G}`H.t'֌!	#%-]cBN ^$OC-8y``KfVWdcƒVŔ˓jl Ԣ΁^mJRA)`<HHXi׹d֑WnR+X	}AgšJ-l"MہX}]9Tq&vQ\РuRIjC,\}z$;ΞRT88d^Jh_W5x(uvLs79`kK1b \S
 
i	CBONY)y5yJR]"d,^鰦rj/4iX	oLVQ( !y4ի3 '8ć˧ݦMǧ&-9>G%0'Oq(QC	haہ\=ڻ,<'dE[6=g+]l^%1ju CfSΪA{դɸ#/1շ W!bǼwjOcm [Ye'k$JT
51-/c	M@YsDԟ*'*ҍn~y&eQ`Mv)M9CnOx5e\L~Ș{g>gw7s3s*H0T8ȴ]/Ee]ZiC"7(~k>թ5y<<+='x7iL+X{O>1_b0.n^H[T& ,h%x=(~}we5SUqSx:ЫCd7g_g1ogE!L>wo(]2TaqB)<&4lX
`(7-aQ5/q̫.z9UOYJxMd0σQqw'Qs"bGw/F©Yj*lK}{؀Cd(mHһVgoz}@ 
#/oP~QQb-TƣECdr/wɰʰ (!f酀њ8S~bCw@{*ͱmD/G+^&\GFS?bPHD:g="zt5lVwQ9%TAȇY&[2	W r&'^VY3ߛSoT7I6%K=CKsh2 <9ZFB/[#y5H3fʁFL!u	y߿zYunae5VYYεlK/)Dn~\5:쟹ʕVqVu%Wݵ%rPOJ!z9[EXo?!SV:rB(EܧYT3TkszVb|} ݘ^_m2sL}tJx"nQ}'NXxWmsίxٹܗ+[2ȋ.XI^TBdFь <=0E4<=s}MUyiW"J_fW9)5*rU54Jj-UIRD4"whQAjA2CF*Qk(Ie)gJ*,l@ja6i-*) )WYaYM} gQtvaM"-H 4KF08ʊ&'(JvvG3n
{JrW5B0m0y<%+"kUE ؠ_}2lk3fojuҵhUgSdG-TQ'KKMt1P*[oxQ2EseP{6(	Tm-xQ4ygn4|ސgx4y	ği@nCLC/j8`0~Gj0i?1p㉵١^<~#?=q dz KS7iN''@!!+f`B'S4rck}Ba^&ϡqh2z{?Zkn0vG[XCY	B+8yvD 'g0	c̏<Џ89!.&q"xg{hcE/뽓2Aš>&Н&XL^2$~{a:?V&a;tS-g{Kx!MVW+^2
PyZ֪d:ݎב4ݴ1g;Ԋ`v7="ͬZ<,yDXei?M#j}s)-qGM	 /kY=Ex}IU-H
}aؿ K]\b|TAvӓt0ա&fQ4jYbi	^w~"#$aΩb(jj,\UuNqecr)^KtٚzkkeVK#:7\^5XKWd))Vv6ǫl!f[-	n@Y2OڽqYOцZ4n.ۥ:'UT_pg^*Aӧ$pa2Md>~~Z 墮 d6ۢ˻78#oc;ú@ڈoP5W7-nw2]CV=Z$Q.2V2x9[=O)1W;qs31/Qսd۽3ɖ\}(*,CF&A{;;NuUgF.>"@աrMf~_-"O=~o{墭ep=GVшRX[!p\s8Pf?/Dy΂v$Ok߬nq4w;=n}镨ܡ(.OoK,7w˵{>;*ֽYw$k&pQ(lpVߤ/k>ІoMSj*Ah0יKd	/FZpU%Jj;nq0oqiRHg]Ys\1_P"S)2uZt _IX{/݂Fht{<{^iFoC (M.;KYT<!HkIqÁS
}REh,aWCԋ˷w+ְF{ȯ'Cx<mw\v\N88r̽|7ȰBHطq33+
f7Mo%iwvwvvV?0bY03?5>g=ߋzA݅%FN:ǜAS~nۋxnxE>|`clsf# !@
A4N8a@ߛ C;!CF[v(P}n  g:ПD,!C0Ehs'}3r8"I E6 ro<vpXD0}'܂!q;A~BGjѧCdLԭh_x/;Au)2DwX
keB<?6(q"l(@5},5$@%h4J:k7:-z6mQdkUAVĚgUk/2˖n#f..5n6V]: Ӥ1%xjÝZTdgN 3[eVvzUUٶ  Qk` jtv``h2Gz^6byڼԪ}8f7Y_]uj}M ԢǏݪ5vjgmu+~"jmdYyQd]$8еa	@yS@~#`ު\wr臘4{pg?C~xx.>Hsn{=x+$r\s7=VF|?=lU*9{pp`_k*oܻenz,;`1b>-D(#?e{ޛ;K!X('dNF>8 ˁx('AxV:Vѭ^Z?wC.ـF_sI_v.xg?'a=o\|L?]&z;?`i+&zs|Z3?008'9>gqs`euAn5V%߷#[(P;G01_خT #É%YIh9]Yy1X1Q[Gr`&@w# /)%}/:<nBFGxE@4!$ٷxCԽ-ſ"Ŧ;,ZN#T\q,/۷l AJfI]<F!/)FM:v$x:1A"F%'[rW^o{6jfk@/';bۢcVս.O]*UzgZzn6"y;$XS@ՠuc:hpU|_W	+FiFRR'&m >9ɄfN{	&%ƻѮilj-U7e UYybTP:n^v2\ƪ4a)oucӝZ(Ƚ]q	>\Ft;fl|x}ݩp6k2{BƁs02bΞlM3u++T[)WM2wɱB9>f'eҘٽhXp pW/F<ia,0MY0rÚ_wozX"0aU~' KHԙ@U(՝FŌ~JE&7;_C 0h_ߊd>k4a&l(Y*LYc57ՖIPSi5[Px0y`Q7 j i"uoRqt⎹3s1dR}mmUﯦih#J{SC2u;'cĵZW^ۡ=L$sBU'v#?_~&ʶK>D0?Fy>}5~!||~v{Y|gЎ_ x1 x]	ڕ]	ڕ-A-A-C2-C2-< 0 0> c`}h>;0= @h{ mkz	?-ۿaa+è[RflԄ)eE''Bǟac#526B}nr	?{r1c>AK`AHs5a[Zu	-cJo;0A&|bez^rT`7ba(YCןj6}zRF# v``yy
I[)! ?NįNfZ7\,rfG: o"莔$KHH}M*y F$%q#K &{a/c_rKcdF]Y]hRв5 E
؞H!&`T-fA[Zgr{h`g	w*DT2tQxxy..+ybI].1ʶ1LJXœ-cCg1~ǃ*iJBOAǅd&ބكJBLJZPⱁrJXLh-1n:8Lb&_"hb}\s\1\&#fbeQbGԊXa̎K.M7)RHݮ¸
 DDCCTCu3/8JEUXӥuU_Rrn^vEA#s۶z?Vݫّ(NrXwǪZ8]Ac9L!;һ&0cG|}*j"Q&deQjU▏!TY6f r}R;Y"gnʍwʻ3I	edU48Jp">)q?	貇ƐJLg8ω J> {`2/C1Lm/
Y"ZȖr >XfgwTklʙEy=}q=5	a]=ͮ=vvUn4; |1ӣ*}k;؞c*Jb7)4OӦj:<jՏ0v?[~g rqga>b򕓤=D3ڤbfUBQ ڙv~nM-	čńwS/6Ǎ[4j=qzw|%M\aθJB۝!F6f"pp`ȄW~`CD(B =&uOn,wԊ  0bT-2pѾmxubF 	V,}Y
+=5Y^!Ơq񟘀1R!Ƴy5\0s&Tzv|z{`ԧ ^tCr&UA@2ג熁:o"*0ZاPW,o9(E`4mgj$pj=s%h{.OHΏ8a=ek%AdsvϳR>VX˸w8_vRIU1`Mjʔ xN %;/u<r<X/rO;ͧzKgy5ފ^iTIɭU$Tt./g8[9qp9QYםvKƟLWU==3f,ގ@ O{»u8ybdHݨcجAe"l(}3HL-@f3 a*G8A vɾ),&zFl'JvGvx	a2zIy|?i,PI5RxY=
sP*,</Ŷ@C|cq{e_[KF$Q\$.VDm3Ͷ&}f>PH>cEz2,eTpTa+\[U@>}
i<i3k0y$Al'@WRJ/&iLp$;Y ت^ᢾ*Y>h6BݕQnJ#63ݚGbKULRCn645/H5/ Sw_0DZIktoO}-W@~fgO|Ʊbo锳BĤp~Yq[xk$N'.M{BLqM6%%ݘH3[XMD:rpe+BnT)OɬxM8Im H	.	h(ʭFnA+48h%| JtF])È?l?mȊ$Y YYZ8NZT$R?cJ|6盬sz%:	ea"C7UڕP~S~D6L7EAZ@Ы:Xl֭F趪VZ~]28¤Е8z{as<!F4pXǕ.ȦC,\Ɖ%C,O͹W+v[6N]yIي-PKV/dyfJz@PweI#=ôM/'_-8(4FZezֆ	bAuxxI^`1$;UKi](:5v={eEGa>9pG/y>
Z_ZHW̞M4B~3̖07MzTˢ&!ߨxY(|pQeP4T2<^Qުa=ڰ:38Se3Ycɬqyq=@zsd,80r|̙d&	fo"ָ\O+)U֟좠e.XZBτ?R2O~"<JLǤ3G8ښOdNfl_(UE`( gUtI*$BYJ&57P`]ŉ[ m޳ByªˎrЄT!CfH0X?x։Jv4 K8 T's{fwJt|$bL^RD<Ylrڸ *A#)xNbM܈^շ={a}`c|C|(rǕyC+v/3DfD'Ywq[e{Rjwɨ#0/ڙgRWK'Q;hE?\~Qiv
vy5:\v1S1NfrFLMU]˲<c\gK~M&w 'k&.1HҸxWao8_1=pmQd $sdC'hWY4H9>oސrl4
\&yp<>^nkModUw(. ]ϥXr]FMV6:>?JP*]rU-MυZJca'Pf$*	^\ρd^#aΕ $:_-PrJip6FU!EI+ZzW5iL0,U&]Qj02"fۡ.ԔJr5)wP֫疟bCtYY[Î,n`^1}=׋!ATp,Y!s/hRYpP=iQLtbt֞'ey敝1`(H.v3(	|,q~ev$!E)" F`V$A}%GG_t(0	Ӕ	E7~q(sƃM78Zc0]Ipc.,2]7adQo Aq_&pބqօc~wJ~9F#Ieo0DW]!CAt
"	Bg8 PV6oC(aDA/1Yd0u(;$Q\&08ơb&KFix"K~w}zU!&qPYǭWx*_E8ErQICz<o9dfIݻEyʟRjv5zNCkײx*c:{OLl<>lZ1[Ŭ{=Οz`GU:QYʃ+]:]w~गeuw=?=^ViaՂkkxoIȿ|4Fl&2Ez1 @z	9ӉYvX)+o;|VnpYǪ)gة[byU?SVom̭fA;<c<cW}u Li\hە/e5~Go3Ƭ~m5X5.OJ`9O\F+Bb>u߱k{_㷕۵Ym[BMܟ6(_bSv3rQ&1'#ʷwc	_s1Qvy{z/{k#GS|PA+yFw|1khdt"AUըgK>O|k{5"'۳|߯5N9A*.khc`NIiZ⬺+hV8ar-6uQU G%uFN/uO^YookG^f-jSdEߚGyjїC\KN3i7ͅ9sPO؞#h:{Q,ai̿a#݇oAؗ]Lsc}n	)FrE.#J✁;	KH?w3W8@d3iV_"pX|[lZ_s=	^;$_l60r񗚗	JC
͏m?Fa{6n9_KG+pyZ䤙ieF!g'G˨9~Q6_\O3i)f4n 
6pܫQp5xSMk@*HBYۂi+RewPD衷y3<f[:3
3H!O8~h6>'
TU*	xJ4J$݆|h2WW[mf\\++ƌX`(?}Un>2\&_#V GYۣ9ji:O@
=e.~2a8_d֔Zr)<agTmszyl%ʚ}%{}J7uV%z,G[Ǭ!hCaNIwn`@R/,b[NDWFv_w ֺxko"G;9zZYxɋ:Pnt<yUU=r!k]ZHO<Q
y?x<l/}55K}aBBF-  5tt;(x:KsWaQ~Bәmb^Ibh&@N*EqQ9d̟bsH79?s܇ V07ssho|v63^1m]ΒG+c-
G}vniOP_52pS9s>i|.!`.%F{L4`ОlF驐8!0]^I\!-J%&vh3~,`X/	*/S(&tFAt-FS|{U)VwZtxr;};L7o-i0Kʊ[q?Io0jP $	B%VTmۑ71\eQ{?XܘՂ!k$'n=	Hvwg5ZAIQbCXe'"S@b#YI2UZNG}؛:w|ɐ;t̯BkYA4e!V)f/R]"@ڕA!\onܧٻajK1Hڑ14ͅт9$*Ǎym/8QS"&
 Ն$_oRDՠʂ)GzhFJ|c1`pbP:"TS<KGH{;<Y\D݆X1Y#lsWb0[i7AؓX&˶FF^5Eo#%L˕cKb[lA;!ΛOɁh],F.9h^ϙb:&DƘa	y@#R?pCDA@ Rʉ"Rj䝨%vbp`[{FP_	{dOo
`Suܜh_P 	8AA/[8n2~`J)+렙m@>KHBPY2:RX jH\&K$AmGhT!|냩/ؒ/ƪ0t~B4J9/%y@\^1,U9\+~I<($?P94VF,0HI,w:QQ-ĶKʇfpQc~K"x訜9c*@cq6bn.NQi
3p=f!(mB"1!	a`kt:ax>2ڍu^t(dmhun?3lA805Jea2ۡr#h<H((hnHYYbV&:'9>2 AmekU$\.aFHji\Ұ _dKt)%;uI-;n-,##lylr*lBS_oj/J0@[\/8h"DuL2PDSfI噘bS=;g((8Ti?Tg@Uu&ٺv.aSXΨ#%'  v&f0,܅!(ϸ{O{
l삵ZHq8DSjOycTUGU^UYED&,>NЍ|Dw%n7JPqAIGa)FzR:5X 2RWXCo_SLͰ3GsO#I6QgbWuF1*<Ƚ*B*DwU2a[-qa/S1{1,: (96ΦI-TfoHJ"%?m~T*='S̪x3 SsFq&f644Ueq%e]C!r,5C/DSv$vꜽ
U+B_#qk~_" PP1PΔCg*\Un%Z5XeL{:3_l%0BQ۴?	SE(Txm(miYvq:K^FY/_Y|.TA릴*KB.Z`AY;j|/CS>4K`,o$*IC_8><NENJ)!J/uSNgUEFQP)*
~OG>SVu.4"1ܾ;[>#C{JhD}eBGl.lKAk^zɑL3B=FvZɫWP"j,;ٓ>'/M}$NU :7g^e;g|)!u[kÑR(ާK
z>%$$s&i[+`QWyORX.&љƞIx+c~-*ʡ/l˾&~o9V5A#] Ir#%|a5C|:Y-rj]&ANf|9~VavE;U^ӕۣ^vw4/gsʾfUlc qGGs2sx<ǎweD/ǔn&phiJ*.<rnZ.2>bRW?S4xa]Xxr;@ze[XGPJkH)屎)j>xEA""hnIɤ#تWm|nnMIKbr{D;j~dҬxT§P=8NSgB&@,f3XOݺ"78kυllOvھnFhbai7PUluQ3v_?ӛ=kbx">LImBڠ'4'Ql50TʫqOHǯIT03\&>dI 
ʲ)wgRD
R;Nnӫ۫_,dEǙ1#7Z.]Cl7w33KZT~6Y݉\!*VCm© <#`>
%4@.~}铍U7<+뭊R/6 륲0j)#Yч12@Q0rDEY:Qrw1x&TSõ3L~q;ZGTSwT?s_xTN@}W@B	B"(IHJIPcb"gmT?yg9sٕN92L׿/qԼʌꈴ55v1Ѵ?]\MڴG/P'ʧL;H3߉"-rH(QZ8#mXTiDV:8~װ7tNݛ?>GV!E!S{m9qsZ֐͈MI;֑\}""/;Y$MgYx3Vt-_wخI98#TAZu(3ENndKNd&ʠS#p.Le!C+hڰHҽTfL9@nÙāXE1
'(KÚ-t<EIh$O%X%P&t(4j{a	}*ӐZ,g|U$B}Ǻ>5po+Ph}o4x;_}
P
R(oTР0ĖcNP+ik-bT[S2rC]a$4bMuBvUWt*sj!aݽ0Svqwcs:j"3do؏LuP$v;Xɸ"1(X+o"
x<kSI+jfb=-d:0k9Gt o̬G?CwUVV3+>jqWB<L_EaYT$4,ev#AS)BMaZ\D?ԍR٫~^%R$D0K4Ue8%޽=>9=;8NxFr*>?=utvћQ'x%Nz@~xu2|wg]hyIRV~,8~O"ӫCQ\,.fN'2_@O0EE [H';$s;@e0J,1m#Yp%{"!GHdzUzbT00`0+Fx(8MQfs<V$?LEu0N~E91"\Uv'0XXJmh)~8<8On.v.aR
2JB )h	"𦇭v3Bo2pRHzU!os&dY	J3acLEPq80i=S$=t 2PJ#XFѠ-F[˨L"aV߁y$>P#o#ȹLNr%%"丼sx\P02`2@բ@k<V6IDdEsHG}۽4/#)auѣs?t6m)8گhc pLc"Bȯl\1GA.Y ?!Xvm[:CHQKpƃX :C<%&hOqJ<AY<-8Rw2W*#IJ-
D:Вx=q+ɥL N8܄`[dHdHTCcZ@T@mn
R)d\I+y94 JMb0%l@c ©DFd
O;CMNXI_޿mĳJ@$Lp,m'hȇT2.'/|ajh P	bؑAa >KYBZԈ;GOdgqzB `N@kHXPE@A$~3fr#r$B䈹n,9OiLaγ=/ZWfR `&0ZwHݗ3$rumc5GaIC" @6B@ٷϹqqdG&z2Q:/=F`:),LA^),3F4.DaNNARϚȥiiC3]%< ]p͑SBnFnDF+ZD*bѶ׵<ð-v:es.UYCk6MDlgD-\7;vac^;j_3H+.`6XZtK(0oz&b1Q0iu6COQktCQH*V|yP;<C oSuˌ tizO	:3w6 56|Z?06{To3.Q8j1{F.&(|	& 04W if:xˣw'2i?&"4պ5q+-{AE<1cyQ%@ޠXF		lUu׿,%ϊIaVeΏ&R2*kҿ.	;]V?v]/kMՆՉ	?æVuasytH%z&2+CJ0Y&!rA/D(ayƦ7 +d&W\~L*e}1!MAOp5AыVm$Je؈-Ly͹1QZOh_ZGoB6qu`K6A\kZ94)kaRR
aOӫE8kV(	9*}n\/ XB$SfSa4ޡ)\vSt	8ha)~śj&wytWHkmUPˋhoo$%iiגD|}ίyx(^<5tEaK"c ghcH)$xqT,8
dtT 9f2NF,^ad˦q4*QNJ~0@U݂3AtzsKؼ`|P`]d97Q#P~TGç'N*EܚVʰ(HΈ9\_ţ:'?5\/R??TчAo}[.K4zP3|Mxa{SmL4`Wآ*nUq3ln" ?]1̩Ho]I389dIFL>AKr7p-Wd<nD6rT.hiin#hk=R0#3a6ՁVRF=Dm:9jdzCS=2;L2
:hMZ!Ba`@TƧbᮐ65*Ԉi تC;t=$;/)R[_V?Tk&I 4mgy(>_
w;ˠ{<(3mc@IiXٺD6nnw-h~vh#ēZ8ƶii3#p䦹3ުuo16v?m{$+99j(Oua:V,mٵqJl_Pxj]/^3odjZyoߵ_M):]`uަ8\Q%{OO=
#;0~ .B\)=m˾U
oz9Qu|,B.8k}CݫɮPG+S0vGqھa[px>o݌9E'?mAaĚJ{kcmZެnzUOY*0rWvFP=BX|Da)1<^T$R>kT);T:8`<b>.t8MwW:q*ok1,VdS+8V)?[eU]{Ŧ^gNGwdZ'	>?msex4xFLz.x×64{"5uE|Mqov~˞ŵR`/F.ʹcq&/S{K((ZcG)hk?}B/zmA70%wbE-ʫ}Q	8>YŹ^nF=u[4`Tkwi4eeݒTiA|kqF>tboKXfWi4Ss9S\ט`V7qSq[&kZt۳Pc&1I8< mo7ZX5/W߀l[,lyW~%]bشOWШХt	j1<^ɯZHX7eso4qu7EB!&ܴ^ϡ֧|r]\ۦ'3|<`C*/TC=c1uF	WVrlݦ~M"8&SV+BXuL_MuA`㐚ߴJ5] '9F 4EN	GVFUi.y+<_0~;20^]է}:P۴W550ԬQvzH$*Kqi˘qRaj\31'[+_c'1nxDN"d$X<yH#ɴ|驗ktUX+}XpQRz]1>XV SGDTik!n
Z
OtUqR<0>߀AUH~粪$ۄ5=XJuc!>K&y:lHs\tvnJW_u#epYnf\1aBnqX溢Qwѣ>╤?ֺfke&|]H%5klV7<ގFLE
/@NCb;,+Z]J5MfsSYsoB"Uf/?hޚ6Ɉe0MJ7dZf#|ӷ)f(x2LB=mޟMkOmJ$^M/}*f5YrfBZǐ8@J-Fr3v25t
Nxta]tfnVt?]
t5[	|0S}fhNfއe?&5kߖejkuZ9՛LԳ%b<˦7[E}ӫ=8SG-d`pcCZHYSb=CUIE=Td<E{i1}`[-#zS~ujQ
jI/O`jMh^	-hpxh>+ޝ8,1?zq/ox|&i{|j>FZcB,~x_Y&7طVܬ0cFw8Roʾ*ze L=@*1~-X1(l-Bh- d/7ړЛF%l_<1g)>m-y"Ѿ=7/b\u-uts[{\ԃ`bns7m[z֜ytnF=sd⟂3kлvf].fYhܭEw׭3\;{Pff/ߖޤ}@N=GtD0Avv> v")bE<+-[k!s}2č,WVO(8ap͔/I3T$,[Cb&Ň^;XVxi}^z;z7Y/i5^wZ0}*:b.~X{BB49;U9^
] mUB"67<TӮYb(L x'0.)ݢL l-ەoѰ\x,}a-i&o>k~ϙl1i$gV?ga,n,o8[dum 2i+y2	@Qm[!W\E:A>MN#[Z2 K[4,{{UWSމaumhrKp^҉an	!5HotT7XF*OXq.N/+bh۸2cS7)5Bj{})Q'J7ۖ!+~x<s۶@?ʑyȉ0%$':Zl64]⃠H#ܵt
.Y7^<&mƾyMXg8ʒzIzxc<4#GvQg-6O8gMo䆷XGI
 uQ0QM4g~?MiJ6;pyY@""K&5~Ȃr^ Kx
"tPhT08"e
SAj[.s0Ho[f[ОbGz',aH M:@dnh8%`|D00'YA[$qp,m)	`{N3P-A,raWӸ撃|1)I3P 䱈wuJ&&1߻=1k|x5acd&كwk1ˑ3#ሹ}ׁfw_;@	N4:cΨ{-[N>ؙ; fvxmvi&nor8v`\8C漇l|n4}}w>a~ρƷg;b4]oX=~ùCM ݝ;LFM ]?c;F服-!Ё#!.]cGƷRSrqtgS\r>a</7F`$D0٬-(w+HZYfAZӅKb7?m;ISM=hgl=[Fdkɍq	[~f4WhvaM}`th6\׼:$3b\&<LZ8a&>n"?[&WA:.D3>">3 hNوjT
,'8Br@ZẔÔԽܛJA4Oxk5ѰvJs/cw鍇0 Ùxw\G=C)6o`_8"Yu;3o #\Awx
Q@S[à<nm%(^d>FSA#w9v#F*N*"yd+$FFef50t7xnjd0gϾyâe.D̒Z;)ϼP
5O@~Ik!&̩g=w?]˩F>fEb
֜W'aG0MGRr7tNQϯ079 Mr\bӊ(VzwB᭢6XrAۚD~xp֍QfAZ@EL9fNA	IUǒzO!8ֆ!5rgA,52	Ɲ1'dbA sz?$mi!5A<l1p^"I|2ξ|nVX4f71(1(U7*T^/BGѓց|e/0zbZ՝{<eS5?G~b>?6VMJ+!WV)b[F6WrWxXdCZU2`nr.-\v ?1\i&)IԌr?Aw1_=gjR	c՜:GnnaB4S|}=@59vؠ)]V^9Hg}MۄWO\
J.{\՞NyƉ Ճf@?Spw"rs7d׻`K.awD3YkvޘN@W'7~"?fI '?,8;W'dXcH%@O`ZʑX:\ˇSX磦]$0y	˱ +4lu/)/4SQͤzt<Xo].!xhnVoi2`궂B5o6xs&z(5̓<Lfrrŉ0DSys1KYmKRl^bgCys&u%DC##8X$&ѽO|fIr $&H,d6C:z	bI<p}?.-+{='d	㘁
^~AXF{s܁uL,i{L<p(Bj"Y%(6z=G$C2HGE))c}TF>l#7ռD 9i0P$@O dSg@ykNs,DZw긙0TAoXE"QNڔ_RL? [`hD47y:B?8;U;XJcD>2J)emdS"T%'3%p1,=YEU%8Ǚ}0y[rn	"=.I 'U#<n>x.\,l-#xi01.eA/(tuk`iAq{<v9`!C(Ԁ4<gXرRպ=VPl>,fPA<n1|% qݾ$􊙖sQl:B9Mi["69$VYoh?vV6nG&6`0B7-V/.f8f'X2D(K*p)훸#doHr֭N9JHhda:<=b+~F$T^KWG2{ƺ%wYrY3PJvwijA3!HK̒U|"G^
qd{U,*VVE(,9 9ȠA Ԣ>r'u~^i5JղJ޾|M;AᆚSȾJ"c|A0zOlc53.!80O-*m7C0|Wߦ|J`ɰgd-Z	'Vnt'`nYZ8BȸVh>Iq4aU,  \L*M7LyhU% !}c:m@_MGZ6%;^R)͆PU0/MꚘEEM1yoV-EpQsKUe *[V<p7~=Q0nrHAz3x-¢3r1[
quR(|rDEzKcmr?-!ܰvߏ,ѻxeaS/z;F2w
ei/4@,Wp΁rcA> WLeЯjPVE9B"}Pݺ`6i,ŗvVkmF|#!2bHx3XҞdYq.^sٺ6n9i+n^3(;WlAhxuYT|1,pqks[5{')1EFc1ΓVaXivw1)ǵ&¤nP$7Ȯȿow ֨ъzƪd0YZۛQńRl&<LWP
&h|o:ؕ@jtx`JXmbU^E	J-"Cn[se\E.n5_yu'(nIfV燬0SZ,hWP73iOf,ȐEga/a/Mؼ踦6Kr&%v.|{0'5-wy8xG,IB ÿ8^j3ĖӼ!D+X OO$rtɭ7b-UȾ8/Ùu3_oI|
7bVeIozj")ɾ,e8P_mS=ZṰ> 9$0b3@TL[M >ɔ3$A663Vh%W"%?wkC𴩀&&~`K!%d@ZjE}e>+I90N5W[.F邲ZScbeGJχ6R|x*&G%$fV߾k,-Ci1F FvyAZ8c,Av%ɩ|p	:)";"帘@sTVϞm4jx%cls'h(Vqfy5||&hzS9,.ZYC˦ɠ<3t~}\t{štW>&1@ߙtϑ~/GeO(6?O)x=qs77<72KݏD+h\*⠽ÿ;$0,"(XZN/H>MfAVnKiٮ0\*~
ӧً$fjl)@?!7Osk_[^m  Jczۋ#nnA7[|%R|F&5絋r"kY^vE}X1*oJ5j_K\pK'44wr]`%O0w
ޗV{!M䯚'!ŷ /A/y܄T技c~Je-b|bݱEGlP;5_nX)_4
SVhow**t'%\y3l.>P*ߥ?rGvs{˔=k3uGOvHyiajc%]̓ZƋ%1	xkblxefv{.9zʠ_݌#萿zRynxWnEy0GI)ybN<7TirTh OV`@rM߲pOz4q4Kxiy[7?ugnjs:I虌hH+w-鈕d%vUl59UR~{VQ%G*	J"45}dڞ̿.|UUgQ6F\%6bIW$-}ߦ{R:M
|prmEq/	ӗ7hF b/
vWb5wɼf8UljC=;']!~c'u+x:ϱD+Kt:ǌ©cqшS_1LtדX*zם_agO򞲪?}@hEF}*0o/UIl{</XsUgE	zĕ_Ӕ'Z3F˿;K5k~VwtX_摛:wAߦ𮇥9o6'KK}bػw &ΏƏB8qFo/fD#Zul+xXMLW K!$`` !VbI&g0LgvYt[ڼt{詪jmJmUq{XdR9~O*??vKڵe+9kT0jޒ_&_?,kmC*ZXޖ
'4Co઒ϳqUuD`uԱl'-iG-cyK%9@>lYlo-[sDoXN^2Y].<(?O~wG#q|{E$n^"?B@h~1=KJ3 C%5mۖ.僞9^1)|rhq!ΑSg$7&V*DA>hIo[Q$7E =K;zr.Af6vK6eCձ(,&N SJC"Q@`T'Gh> ϝӓ\seհC~90%O/HٴtA>-Ms1yD48*vtvZT)p;N>殁m.:]-z$pX	
D2clb[s%Pq$yu:ҩk!-gȿOGICw:+)DTڑ\w95`7k.`]\31VJv0UJ֊*."^&wrvIwe%'(r Ɔ~wd,IU	IVKzFNyXT4`{BsD(Pv]b(\O6\\>n-JɳHk.^GG{kSׇΦYUd.*`[U*tMAQlr\{򋋦.F@"wSvW"
E~5($sôe=bTy)^A [ߣ<Z9*{UL`7lBd\Mqg%_掦bXTgWsMD\<@e(_Y]^,W%y5D
[	K[ P3(<C)Ptj~1u})͹_j<Z~.#a
hJtel!(Q_x~털h"դuxY`ۆ*,YXjv&J/Α,I"=;jϰdW)Fi|ڹ]`H_%a	j0b%J10ݫ'n V ^_RO)Qz/A$"EeJmЍTYP~c[`Lm:	/ux0M	ۏ[ZJ2G=<ޣ}}$|iH.6gHxftfÀ@~=.F` ^56DJ7u
6sE5 _t(BQ%#be{@dy|뚡ґGHbSf{"xB8>!eSǐfIqDfeб1D$՞Z5T.mx[BGhjz5@uyÁLէb=:4FW>ޡ9!e|䗡hOủYsQ,BG,)-f#MnR@>0B	+\Axqya}5JOL߄X
Y[}x#@"]A`%Ƨ̓"GĞeP6ul19]`Wǯ@0c`/"JE}tbuB -Sp_QcIj I!QC{({Nϑq$=/Z_h^M̏Uywc5&z݁70F%|ҌEȩiL[KK^9 A]dx{~o$u>}5}7=h}GP Ee's4MU|dq$ϗ|f@_;3H(=uLb4%_sJt.졒]N(J|ڀ
;H%?-$t#ESx:8G<]	i
!HU8].h]27lv:y^io/h%X^ju5r&oHnѠo̦Pp%8{TT-(3MIZֈ܀-pMKjXH">6-CXl vS2V`^-Tr+DY&29Ei)<ZUG*FV-P5%X3S1ғXё+OTO@U&tiNֆW>%į!!*~
X04I#SOj\ŀq4=)k:"}G<Ny`iVSS6Q-$Lu2!"V{+y;|}5мDh/CvbUo耪0c~2|W3_NOyߠoOڞ3,YozoKmR[>4ڙoھCsS[~sj^%<kq~5x7[x7WTEoH6U8/ xV]k0}K!n_0F0
]+Dԑ<Yv#}WvI.AI傋U&L)f]-J;׊:ke*Qڛݲ+BO=?KE\IeB y$`#OSX8̍7'' 	isGMTARʊ	L;^`[^TS"EQ+yڤZx2ȺєeUFEH6#R̃x\gvf6dD1.4SWXrc]e}ğ,O!$rj]#!I],Дdq?c[qf'A<NbAOseIQۣJwg0eewom)#'"۫6Csh>'>iweH7v &JN[4^QLE,Mu+3	։U#	|_M\'f.j(#="iv޲s	}%c`]|lϏS5k#ݾZ|p.Ό[ľQufrV=ԓfߣ};DHPWN!IDqA`Dm0nxUk0~_qR==? d.4pR"d[^('K.NR$n$}wIw|ɘ,'8!%1\w,1/[p6lI&eFw!n2&gpaR=hflugc9LRRqnX]ь,p	2Aj5Tk.#+<5ha
)hB'.A
0[* ʤg0uOXnQ `j{SZQ^)y/l*I}XSJY6 
98`~0ēr&f.4v7n?b(iAr/u[貂
aS+[u^6!)a!ni*Po/V^CbEY3=*]XRlUN5g1MTC)tbv_'V(R=xIfs2;fFfivn=YL~P7xM+LD^ܱ6|!+`[Whjk_P#˫yEYH1ccCl#VQQ{
޼ܺ|>ÁBf&xOQt8$1<ڟ>kC*`oތ|'(CEEQE;eÔ94}tǂQi۲\8,Әˋ÷x\~0;d=9x}v7=8CvȶzhHTJ$(VDVqw7'P,RIqm	\|]o\<{:n.Y8oN<j0$TuV$z'i{S:GY%2UZݤaqCMRU2QiVf ("+S%|fY2B h99v9f:S5"H:u5LE1 |R(&\:ɌL*f1hI?'Cmy2&-׳(68x<򑎱!LYLf$	Ф1Rh#0^1}5M`&455'|zc,$͒.8l8©eC^'wf'9G(6[>eqeARIJD$~˓65<kAto@]{?tN'j5mgxֻ*ou?ީjuTw'e= ^_u..;m(tϯN:ohy3):t;3du
p[v[}uyտ0tOQ6cϩL?Q.w=I
ߴa|7mfw|\b.Z߶a Y:]hZNskBSZ3h7T{zvW #AIuޭT0E,X9wJsz9 g:Qoc}	y46?<IA*19>(zC"OL-S}Q˫בMkv<%H.4Q0zSe:M({p\lKdJpE-37×參/XtE'zs햶QghLdߍɅ[xGʎ}a{;$>,F^Q܂p}7J{DݒKu+.~p܋gklaB-!-|rx(?]&12ϧJw=UC~c=kE#Wŷa@LPoT:皆2X0f 'o]lAW2#n4̢V( 镺o[/Kh:Lxmj\~C=:8#zAT`Ȩs
3g`/	9{?f,Sb=xp<[<Hpp4M(+،ܗ9Kb辺z@`98\fSޅst!\G9:AOjZCT>z眊2ǂwk_|'0GZl:Ifwɭ^q-s 8I#$:Uϲ:H:LMTUdقlr\OSR|2MܥpnP
2O_w Y>><XM![,CO
 _0a#Vqf2<E{sDbo
C@UY7x=Z
>@G:Ɵs  bB$L D1"ȑRŜi$\4*l#cH-f渚?@ڇ?J1Ji:F!t
tqG^7vs#к.f=FPI;ۭA;xsuz
(_z6 S
τmy4c.g9NEPHA]	ʥٚa (z:L;1Txf@nFE~ނkʒ&!֞9{QmAK%b`]"MFn ā";|lFMBbXf<v53ͯ>&AXJzpぱt=h#@t]X3PU_xlĠ`yb}&+k'o}:(D¶2I/&ܢ0MM/g.JҦ3S91٭{`h¾hW$jh
ņ"XUuH{T4xDtyx&k}go>J_曯P>,jc6 ,2A`D.Ld	+@m
ψoΚFX1]ɺez+)hpBPBA*9.T3`inG\O"e1ԓS`@I A˟lIch{MGb`]T*c Z@nfXwU{A@)@ap,l, P4ڭUVY?M>	Sǰ;'b}wT24lzY3_uMƋSֵU;E$d3Q#(VAEM$W,W:x__%}}cz(2j2Sc?SA~
Լ0N>T#^ \-&ek(\Լj@6lW
r(: ։9"uW9LΞ,,x
Bq4eRɍ-+v3%$SGztqpȳyz#Ts Vd*#7t tpW]TkOBxDh̭4L ~&+Ԯ̶N	RV2v 9Uqu&'+yL<sdڟ}	HG+C4B4:V,W,Ёk/ilJV(H؈0! i5z<%3ך6ԱSv`^ޡE^/SB[kǋe5Cn߇|Xװ͌ZgH5Rm]5@e^9
UzÂU !N2XRnT1]Ҵs$2B*i$
(,;JGF77 a%ah-M,j<НEQ{'\f GގN:<螑Ywa4CDP2Kyvb+v<M%=n(}J9:r\@Lyzj$	ZݓYv0Cpk^HU%]u`Z ?MIgF_R QcD/4x:%Pd,G$XL-t3hJ7eՃqB" ?;6pDA0m8(	.ͭ_UlԽ3VN5S71QE.v/aD@tӫ4"9u|&y<k@oAP\>h8	!tؤf$LIW(/Ҋ~Ob{I#]邘ũ_aÈ
K<(zG88wT 0F֑CUq0q_*&)ʬ%O"ǝȌ#zs_
RC.f tfTr|wb.Y6ZgMD"}"Wq-gV!&'1\f <L׈@mA1ڷ^&Nq>X)BkšwlxAJ #bI A< *e+Jz;Mpў?kqcEO@sQ %_, 1bVp`QKf`&%0sEA2D;'o<2ۭ>3ɔa∐׫O%)5޾d0.%`s:sZ!o:=K;ƺ.A1A:4I5JЄU&q(ƉazAn hIB'8{n?xƨGu3\Nz[8(3Q|Y ZbbADkfbvF
i%liӞأ<qZAdH޽_%m/>2#TD]`ْ5"0-w,Bfr\kiޅGN
<9
2>ɇE,gI8&k q\mɜl"@,F]⯄@1uOfɊB>V${GΜ3bPF67<	)?=F@\Qڨ(\4y#=g[Qav͗<uFt,gƃTȠخ~ajzUX)-cյ`1;8F-fQރ? 	MԱy?3ZHqHh*<[1&+A+?~Eݘ~P8h'Pୋ~x	5Ѿg[~CSgѾբU˙\CQS'3yX-)q!A!܏I$ѽXo

|6wwA5&t@J?0JyF"&I҈wf(t.'NycDhi(CBouTvbS@WTh@.g"pbp%"cE7D^[q?mޱqoNض^HyTazK EQݣq{>o-#12pp@JP.TIXE0*DQQ!=13Eٵnq㝁{¦naVmO1/;f(ؠeSZ$R!`|==88oyAxѐ4m`S5nY[vP41!@o$k naΩ;ŠrЅ	ڙNѨΖzvYi^+c%S
@VMULqB0ꃍAm3ozMp}uy!|մ6@v'ޗRkڕ&mݜ4	{an?Uyu~n:+DȇjK[ @շ1wk)\?+8x E	4F7+҃`絺#hoVFf:4h_<EK<IبonS	_a,e/ FױCKF@	b0+ngܞӏ`Y޸̉y~5W	`L5?8bO"8s=
r#b~><d: nu
	׍hszg,l_B,vI𘆩i&KmMm[$80OJ:Pf0ItmOVegYޤus1y8Ldu 7O9:YHinlZ0.KƦ;RaEig{Vh35nr;G4Br8<&7|iDL->M-zn8H(MhMÀ_Re
+"P#\}^/=F?>0Z,tZ8]}Ϯ9BHz<3r̖_ILS9D_=voeTɊu6z/6pM婡(dZy~btyFh Kpt2Vwt(@C?Ѓv0QK.@SLĦ{1%-X$af@exd{?ݚ^v z8#[˗E@]8ə`\9A:*ɤ?Y4khXbB{GR.$%J,\e@{Q#c(j,C)«uQm{ 6kF QM.)4K*"XK4hh%HC@I-w5C9^HPAӈ]*eM~)Ɇr2îRr	zodQжΒd'#5+5Yx9z1F93`pv5<Rl;Xzume!lZ+!(ڳw
o<x8QB>9_iJ.|?ՉxuM82\YV`)Z\v,Hc#NL`3ٌ(	:$ þVqhE=7<Co
w}}6:k\Î']XfHPP-4%Zo <&= V?qkn"/DX&R,=a'e{NJ	iG(acDac y\8qt2i+hqE5^x
@Ȼ&R7b]NڅߕG/9^s䕤گo)ؐcܡX-liWD9!Of%#$ 8tfX{3X^q_x-+E\\ے'pϑ1lIŕJC*Yj:bfMT5YS`*|=SAqV1=vcv9cKq^N1~S6%r6Z,YE&kMH&˔'ZLh}2D_=<mǣN6ԁEoN':ЎTqCo0ȽHC ˵Uo?gSJ]扵x4_@(E_'(b@`lr^էGHJoNoE#"EDֹ<ڇSnePxA< ԫ;N<y"eo{Ga2(%P+?qҰͩx>7~Qi Ieۇ nrΤ4bL_&OB趚hj`iB<	^{1%LsOQ[cGQ"2m 9㍊b'	_1n-1T~ӖJnv8o<OSۆx= $>	kC(ø"
3ŭț|j\&9<R%=F 0ٝ.SǼD/˥<
da-' JǍP2ʲmebXgs8A@X1jˠx 3"oNJ]DѶ(Luu>Q(F(rVlSu( 6Ĩ6,,RV$_ 11̸p3̷qM
-nU h9W(Ӧ3Tˈ;9̘3hx3\fTU,<ǘ@D"ЊidE;2dhr/'8XZlNh&PD-%~@(L/̷Yܷ )Q4E$2^´"0nS`ۛacʇ?<aw0)FAh;V$8m%ӡl2-6˵9һbEt$QR+b) plc3]g_+3UsV*noR_:e)y9n|=Ʒ<,m0k1wZ2	\֦u2TNX[lA(}sL7)O&AZp27͌ZV4bIfEI^&(.%,!qdNH煉@3kf1ceI>r5,2_	$­Hv%8<4a$zӃ6~y:a v9ҏ=e$~7zS|eiYμYM=˹:6^u/g&a@Ohˏ8N-2--UͶqxLXxk۱$U[+]'	΀?dO3b11D? pDr#/[mM*nY=ڕ8ZI۷]wo_"tu!d_Ʈ=$l4_-c3Vv)d#] _"B%	Z-PPod1	#4d>x+/|pS=LBswV_ȼnl
0Ֆf4<Ӂ\ŉAn^SfRk/cL|	1B7Hms#vo,617䛫Kyvף䪣CYx{̜-$Ճ
P,}a,UE!Rb9"2PK:b A%d^So,YW
{4Y1!yYt9O]PĨ,'L23KY`;eQ[JQ2WYh,2Zij𴴑Q1$H}B@ff+/SIC>l7{s~6HTj>xcM6&g٬87P56qqd}}Qn F_'e%d+y
eFbS#(b-̌ƘxCLa"D^ARME%pT3֌h+21(Z11^V8Go&ƻ!rBL)uaم䵴{,*y8%_0WXQ.9IL?RӶ8mđ1?жX8gڥmU횛[KǙme37?']E/'I"iBx#ppJlMWNaKEq,Q\0}~V-0kqB9jI5$|bb/Be>MRL6̙Ns~\Etvrn]fBp9mu΃) Q&KZ=x-К
/(?4M!,%pej#H{dhzl]]ǶRfCX3J|Fv}zohRgeRFl~hat7g;2W%5*=GҋGds4\ eM`2vV:#5˴&MAX*L_7'44lf)Ŏt;GW&׮|KSp*4^gɍNA〛mZX5o.?U^"H#-6w4Ÿ($?PW汁e43x>M d[mӔi@7O:\&{ī6+jbqOk>Zt#vM$ eM|Fict\5:*{ʷ}JW۾T>Z Z$Kwڜ1Yis|7264}"gs͸t E9#hGpp26alC*`йtpDH/Qaq2ܤ!c4qaj>2-	5	 ,^BMucUvQktS+E<!+us6O*4q=b4|Di_Z,8H =HxEbRo	'Z/k+? 7di^O2C(CBhJ؁Tc<`hsrO07rF0'k{i.!P#	zǱsX(fumtledᥠm4?6 I*=۞U^$v
j1*ؙI|:%qhT,=&ΎC Pht	b6$!Ty a(_+h?	1/WC6vOKY?x/W#n"HAuxIS|
\`3:~~3ہʹ a6X/X"qvp?ë|Z%g66yFӖW,NU0&Tb=PUcRfnZ<o,<Yc	<b[l05G{j;H)R^#FƏPWs
4ёq t~Jj0ʹRJi+&p\ەHĮvz|YRyǓ/}G^C0l.ܒ.L?A>VD5ZHq a ׃:=,?~Mټ2;oDى[i|ptfu+va
>e-鐞4ǌ^gjE!1쳱P1l1cjYq?	Eo>El{5b{xC6rm2F8-h3;T=Ybb}O&.gpan!J?Nےy," EP[9yEvDzXXhd)aZ0蜴ΏY;$OČmVk@N.Guf˾`xt{`[mIOpHlO\1 [Q1 w>$BKoa
-JY-8pBr`g8!şl徛[Z;a,p\R~!Nu͏4qgY9'/g </jO6%o7-Ow`\Qs:x-3;6z_z>J;,Jyv>_袵(fI.|nA8^D2q aj,tQ]T>7WGja7xt7IGQAdhP?3H0%V(Gr7ޜoĴ
kVB_&$Ih`gÉ* 䥨XW9.ʙ5F	KJГH)Oin VeF0)v݀$I/3DmAqYueB`PO򺥼nʕַ||yۙ7ͷW;+!3ngS*mJmzBox]Ӑg[|ud	  ]!)y}/*b&crB]HA-**&Pt-ѿ20!` wܫUmқwIƕCz?c6NsS%?HƵ}'#ʫ6ʧ[.'wE/gK_3$b+[(G\x{ewM]~2bGv--B<Sb
p.t>M5S(-ߡEwNڧn;8uVwhd3bdϭ>Ū,#e862'A!>tp<k9mgauOA65ގJrSH "Ws9n~߽6(l93Run˓y73@1rTJJ^|lQ$tGkZ8mb]tʡ%Kxt	7̞h~G1s&SW8<Le0AK?M~vK!ֻkcΖ2n@T? l!m*gmsmgq˫\|@Od_%{sJތR82`Ck+ClsRxcP7n5Rby&(پz^~H\׭IZ̭Gﳟyĉd@)dEЋ9PZo[vЁ_y͌!.
  ȸxYmoF_1PDr;E%:f#:Q/ȕŚqI;C3$MJP4Nhcrwٙy]Pmyz*7'cdBX&*+Y,T;''"_ZJR	KbKy$hAjI*oŀ
-mDAETRP1
HZ-(Hk )QqQ[.LhEQoJDQ*(X\h3 L	+tV0яfRCv@kK+|rz5`$V[<ɄDE1H
Џ<5ц[0՘aֻ"A]2XDA}fE\H2
Q&)O1Z{a$ U-7|(î*QiP$G-rD0Qw_ڠ.ƙ4;;o~_	+fdr&7tC3cŰ7Gti]ys}gʝ/1{coq@|d CSg6cgF\01ě\̰{Nؘ&>N3k1ˡ?8]\9v7H7;ޕ1ssYYxs!o"rsϟ~d>  57^șy+b_"tZ a	:p9pӷw:?K%a8̙aR<gsIoz;8O/^Ёq&6I]vSU&6UYs	r)r,mꭌE>0q+?U Y{ŐBo"8Lf/TI^%"΢$4Wj&OiYفg".s1D8BSNm\aРC{jR
Qy%cS!ө&NAj^<Mě5U ycr|ϨT<ݿ}RQ)?LUidQ<|\&OF؀d0TFv^蠙fJøOz4S(.F{, YG4h:/	؅n,wnv*fB2:󙈒 GZyM;fwVT-ooWpO9R#{_ٗrGjXnXnJj@Y k!pl]> L(c*NͲ̲MlZ$֛b{.LvD.SACv	0tfULn('v.btcO{b\.$J¸EUK)aJ$avp+V:B=*Ӛ{rzqcOJw^W#хN+W~50ٚ0A+9=4ѭTA,0~@*I"98Y!r"ލ=W
[R`X%XufuCuX<ۂޅ4~v*q-³^e}ܗVҲb*] gOןs>r[^/ b[\¾W(QHGAt_򚱐jZYCfHC
vr`| ltY
:7Dϯ7x7Ql#[??U P;9T(6ulUG$};EStw=ض{٦ hXijʵ{VDb[L2f$y,gZEl6tM̡^)4<C+2z*Sv9SMEjSn"=}t_ŉUGQITDD7...[ ^U	һ2$+QB˗<\g0M+M'hk3eaթF0!ݧZUt.{&8ȗ<`609@+4[CИ>e~Sid4xw)[0in~@C1(n^v౸_
mR^݉Dɖ]NIB7$Qn6w8~pE3j\[psVL})LJ9q]nqq-"نXfy!;^yX2R
M0lX$CMb'j3z?0bԯb+Fyd}};U%=`!274RKMnl3MƃkMq]얃v\YWk%\m5fQ@KnםP&mvd<#Zۧ)ė6T=ʤg)4yMZ2'4u
tbc' 3n6-ߍ""O+FseDU?פnfIϊsi>6gb{eLijZgAcD
2xU*`vПP?2:w^GO%h XJJT?@[A{v=V*3`->3!%",*o]S~j!k%gUa {~JT\7`Q4iuwLLۯ@\m=V;@o#V'MWHUt婦V3_^*+P&q{Fz=4U)k"nT[м<=|E<#khcܟBmcXF\׺xuDmVjM DArg}dr6JVy)%/sؓ_Tw*Hqĵ!}3EOt2ݧ!`>qa禳jcqԧOs>MƷD"tEe^2m.-R,bDbө<LV_m
xYo6YTIwၓx\k>~(
h,i$e/9Hd7k`xW,N˄dȖْgz{.4XjN>iSd	KZj3<*1_w<)S8/xTϒYEDrx#"r'ye\Gy$ɩB,%hT>#Sg)+Ӵh / JtKFJ3yBOr}#x?xp<\^֒IK!'@5ixgG}t9A9/njQHsZmayt[J'á?`(EʴYs)Mz2_Buj2:&@jv#FE.-Dp+u~LDB7,-9abA:ac2"::)cB?'"^L<m3](iAQ
ͥ4#h>iF߶MXH;6dB?yx :oTnh@{@)$f>f	BE%Z{>}O3j>	}@D":v8=qBB& vׇ
$_DsYј)}++%)TQWave\$>8ܪ{UjOoOXB́ەH9tN֤	u F9O
PO;B]]%vÉKDJ0I?˜%Ȩ0:AcT!.s)8L.|f
ni@ib}3OY3R5L1V<-O -nc˂ٔ̈5
\C#amLNIئ@e#&4"~N^	x0rю=ƋZe9'	9ehPɊD[be`%esNFBI&¨UfPr<	19n(XMN3&rO.3j(2Eޝ\ӗ۷3*V;"OCzm5NI*L\5k~j1	ݵSfpDjkr`P'4kxC[W9 ))@qn=a&(͹/#Zo=<|R/׽InK'Ή{|/0PC uĵQG,6XCHĦ?ϳ={f;VlHI$m4,MPlT٬`Q"ֹfwHgoP Xh9uBjt0!_2ƹʁ:B","99bv͕/lhW]jzUˣM4:YeZ3ԉ!gO52I[?t%ap,7>K}arw6, +gj@p65om[
x3-6
~YiB®	(gU͙j78y#4M36$lJku#B`bIRތZ-22x* ?G{8:w
3-s똑9v9o8cTC9?;ŵLx~_]Cg#47k JAnqRK6ؼ@R;{.QqH?[3%0~ɳKٵ⡜H>
퐚
i(f׌EVl<+dߖ,If	W@	dS֎ª\M9]u'Kdss8XEHӁ%2c.-dw~^pt}̔Xf+fFcReA9^?؀tf<OḾ++j{>C/4z̛AO#,n鑝6FKu"(-V][Fc~Otaz=^Ot6~1&'`~*,ܷ2_oHK9HkroCEoǯ/NJ)Ù ޚ+}_zG5)='=J?djh\k&f𸙪_z?&RyҦ0t tiBxX[O#7~ϯpi".RU&
,}:3Nx'Ǟυ$~1{|)S$wx~{6.fK<؃.Y`D)#_䂚e6OFф] Sl[,}ƉL5Bf*e@9M~"ODP4[]62S3s	xL1	^yA(*E~;8Y7Xnz?VLLPS`B$Tm>9%PmZUn3<g2E7F%ݰJ>t^Y&BdD/x)T؍"ؿy\)|<OgZ5\_~JAZa&4K2j #h(f
%	V1&&WДꊁg	ڐBj,%ɚIaL=+y̤E{z8$-jupbS=#1`q+eώRQڤQTHwܨt2
˭RЕqBe*X\
K{vx}OPO xL=̚c 3EMN_mrιJ<VALNOB@ǈ7aW3hRCr'%
9ӡCx7oEt]=ď|IxPt\0h[JE_+zE [ŷq=Sl.Ci<C 
0a	efwrX=?}R=_'5o\/G+-22__XI80 GrGԓUVQCgp餻kc`8BevzkpF¥q9x%{ILqUK?mbn]/=dڬ)@MLGRh`tɆJ*	9~[dҊI79 P`NYýZ7ty7g|vqs{9өfu4'T 9-B1[ĕ:͆jSh{ι$[MYAl_8Mk ^A_ )Bh@
ٸ
ƑO&m:&<OˊNT="S&l%uu5	3Ty߳ܓVz^ҪV߰r[nvQq4?ݲ+ůxKm^RsIKK
]NQW.S}'̚g{$nb㒘C.S>hh@64%01r|&a&-6P l od'^IWNhنF5nI%XfwEm5!ؖf`9>=> ,Ku 
"LE<veVVxn&KziKUCjS@
*O(| AY`q}O5׍3u:UZ>r79lK)$C?{T_xIHi-ߝ`d${AUonzܑ֫F('52k<Kv\[[{X_.3;
U4>h7,z=v#@l 銢6//v<^t*NGikfgo0؃mz7/x2@xY[o6~`ZԐ_t'Z,m@%f"KH9I^dRR
Թ_?*y%E3ӈa,,9gsKwb,lO'}&0+&MPpzJ4z^)5Qa W]-FHSyk}/X*GG<),
9M=aޱzwh!=0 x1\.iR>}]h<_	xI8aZɻBcY|E7Da߃>A!!Jն>'	d^$	r",gxf $ u 3I2#O5:\X!8n<<:UQYfo&"10v4a?	F+z"_
v|4B[>(˔+<z׭_V^gPtu ;pLYiG Y3YgʲWFϟ+OL&$dsTH׾*Dqr$\$i
ŸɤɎε
Kr!em &i;mO~Մ`JNr0ƉR#1cb$Kak=t񬐂`VLr$!<%z@ JRrCDX0!A풖¶F%0{b bgZ2KMΎ,6+Z0e*N4l2cԨq.?]rU1,2j˴u{SӴlۊlSvjϡ&>z;%|+Ӓ{^X܏{ma:89tl{#4"cK}$vɌBx%	X⎖W|ڥk1Ѕle+r!
&'G/s9U'kBЪ~5h(*Ϙ`V*r7Ħ[NZg@gDY
۶@H*yFfά!.R\C:ArkTht>?7,Ot!ʶ:u녩dԵXuVwWCaX99VT,CÝQ'!s;U*21C3ZgaQ˄Nб{董T'>ձWa4,h[iPj8\M	9OTܧQc3:	uz̰PbT§o.;.3o\@4.TU@G,`*%|VΪ]r ρN}E)8hQ5?z;WLׇB9[N\
Vʸ|/o(O,)wNSt][5 hRpE
$I(sCdyv6?n X6o{2s7 ttЩLFWZNv\*WȳT{-ڎ>DNyy,ŚЕ.%p4Ja2	 8Ʃ-P,)J͡gRI=Fz%5Ҟ4 $gHW5QPΊe[A>tˡ\):2x$N
\Cv:gm=YboS* յ+èg"`k FT}[SǤ\&w36ʧۛA)C*瘪jqgy5ehuD	UPjh	.U?)Ոtvuu&]{?fS,,057r~A)5Z>B g[@Ȼ	'_'~zU2y>S>ƚ|ѷq	= T1`8C)뿥ߍ</n\Wy?7@O7EA[;Aq(s|m`k>xV_o0ϧ81	u@V:C/YNn]l'9;^A^9;b\_L/ސcJN?M/[젔PadG\#gh.=}b)8Y6RdKILAr?j21uz!q(vIs^l"iIa|4͸P}% ;5%5	<Y~7eI		]ܻi=;B`{p1P]4t'iGxN~K7 QCڈRgLk	rn
)ke]a8xǏ!?o^oeE.Pq#JOy{:1`U+o{gBGMW\SCB_Jpé~xj*<8j­,g]!t''M}jF!ޯMQv7Wbiq8J|+8Y:sc<hmt@1T*/r!"3ܐ?Nu7J"^zCj]rc=-nh(n:X{1㞷*f}=mePxm4e'%fwti?+q+t0ԮU#r&k0Uw
qf =3p3*m$^+-g«ъ˵g(H}#'p̈́C億@,w!\A.5
{e'jsKƚni8gU@]s&;|'.uo_Hp`XhVxYks۸_h.J2H:iMmm@$dqM, Zq]\H~(glIx\ǹ/$"lhE&cnTbWպ$I(3׆"m(AuP(stG{t3D2ӆiOKMLR`I60<xVN&1k.KL_2^)㠸S)<g8g	/~x>(pF3L6Fة6`bz&i85DӮ$3L(}	i񧠢>ە9Vddfx	uZj⏘u'{q#w<[ I|NLQQ}וq9X.ρS݋ݒBe7Fb+zfED7\\%?8:ϰqKG;͸LHX%jhG"1^H2EBPؒZ-<^E2{2mBm |iQXFh	9TWS֪Q/[9<@iCRh%jJub&%*cq"ωY@ȴ-g7cnlC^9+\!{vN^+0TjdE:1þ1+FJrLcPP-f[k )hڮoCP*6u#nVQ2/%Tաu%ZZHFFސĵ*Z}Ɏ$BǺFur	"92]R*"حFk:08>ג_P ܸBgYc咦:[Ev!61o^HZv<,NxZ 0ξ:6b1p(h<bG65YgE&]Y#G~ǘ1ñhdX0RP0 JmrF.C'=@.Ia)k-D1Szex57}py.pf|x_o'3KrZg?P#&i7zOٰ7o>2RR+>9圼z)Cr񳈌/Wlt}iFsy
2)DZ;pSr2ʊ[SX8Ȑg)I+1PfÇObwJџ%w˘pmPCąU:$U딀`eZ*sQ0ـ4qZŕaT[|R"[ਔb$+%ZfF$d<MF{:%\hj1VVU;K 5 TMXi0QBbg1GҨJ pɼ:TZ4ƇoV͊2Isro/_	ۭ}	gk^\O!n,H6;h odGے`Tzx.;6N+4f~w)^Q-Xe@+v|$"n-e6'؞cA
D)!>
DB$0'qQ+ĪkדB_d(݁;Ġ0sЄaqf5D!.PRG$xv#;j=k=*a)TIaw34ʎ96eaZˈ]ahK>ny!]CCŇdqo\a㛂+elI/\SB`4AjTKKS*OpyQwIRVnW5GqOw,հ
\KJ?HUwKqPBN|(Ut$qJ!uHW[ݷ%U#k8z>ofrG}(ZnHEv~g0eRFfMe	|]Өn"Tq[ mIfP.Gԗ0iu1WT|YcЖ::jJ#
+WVcet:cj޼f$uI7[sv?nXg=5s*]K|8qپ{FFv̨(R/ۮJNdMMpX/ڻKeVh61pGL+`#~O)[ZvO,ݞJ[[c5mP9fP:ũ Y4\쨞Cz~c[jB}*Ei_Ct ~U
uX\gdyںvoet~csfG뇭qz;/xVo6~_qh)xyd/9[<tФFRNwGJd[}wGHU
V^/7,B-֋MJHB%Pn?Zl|`F2Tm'2NMxjw>2r$:t$vOe:7g,?X9MGBKAZ0_L1|ul=p?.|(XoAۍF@&xJ:t<CT`gU	WF%o̺v'^ӼiД1bG@V{[_sk5 2;Le%?fp[7Nd,]" CjV̄KBDϼ"bU.$!q@O7D5>0KVq) D^[;U[Uq4R{Iʨ]<R#Eθ%O7Gq,zn;nZDdk6t
u.{`0dF m`RӔC	<!SO&Ou}$.NgE=rrDҪcɹ=/et(e)Lt P}'g@CE
!ޚq{𱏲SDdં܆bT P,Oz.#ԄTyp}aґpI:*J"z&RSwWeJ@3#?ITu
ك;&8ak<Mrbi+_i׶*yYޟMUF.͋,RҾn6<fQiڭb8ŏAAFj3g6Tīyx<`E~&(#Ș.W]l&̕Ԟn>~_v>߭o4xO@)hP^C)]D]V/w]ViLYD"R8 drs30RȪ*P<BcRiT+HP}XNi&G^#gRpJQʨITT3^PjՐ4Ǯ0]뽏rĲ=Rv\,2Eօgfc>vBޱh5oq`>SPw~.B=~
$x=ks8+p*R3;\i,Q-,9)EB7#);L_w (F55VD~h4ع~eN^EK޿d"fn=w]FBmșnNBXYοm6d&y:xF.gcqEK3b9GHh
x:dV뙳l`ӛscv?/g;;j`<r5z˿hȼ^~_|/+zBdfH%7mL.dj0#tIuL+𡹇ЊF2.F~zR3\G$=p-gX,\ni$1x2B2Dwpx!^/.xtnF/zv#ڇ, Mwك-y3?`+Ą$H8D	MJPr繏=5ߊ;l6$t\j swUP>	jF 8TYbPIwD a-yg굸Y"uͻ}n1Uv-M 뀦pl~Ճ>?Qa^c{ѭsʣ!J͹s+3hO!~I1gjx?t[_H4~D37n=ޘ!3bMgiރy&ۄ:	]B0dHp `蠙~NĆJtvcOmQ6?=6t"6A4.hP!NzezwHte8(ҫTr,5Eo40a۱NO"+!ˡ'<u@W@h{Q>P!HHBA~|M󀐠E!iVxFwmئ]H7(=Ab_+?φ7ej=φ_1fx>}5bPnG% aHaVQj؉d	Z²Ÿ曈!9Ca0x8XHFV,q,#P)/W@APuG\t8d^Wژ3]+NH7	3u=ޕ<@Dy'@P4j	Tc܁9S-LWjWY`,³R] p|k	3aXF-' ^lBEW^T7&(qƎ?wszd]L졈{&0'vB <z\8/FbsA\S@P#L@Men_	v+/&{ &7Qᙩ(m\O_!.e/i:h!􎻀i\,%gt#3G	M;oU)6JudFSc< x0EP
-|{%M@b=rҨIe0G|ɣ2sd[HCJkϻe-RƊWBi'1NqFy;0hXc^Ė1}+:7]<b	/}h$[x}}!lt5We2sdvD2x
7#9E+LJq#0S=ˊ	pЭd4ȳ.$>8^`Lpp{ӟ&XwRԤ\)b =jPr@`.`+T}H&;BxԞ]@@RY/xdB+3mc1F;?5( E+/}r}.r,7{D߄K^x5O̒,EwN	M&~FsgÍu:O!$_i
J28F8F3ҁS{{pi\.;MFbW p57uzClr9fan&*Bk:CWȔMA${[Ղ}  L.j}|M` <U m{ɘPXB2 Eb-xbc]~hE뤂IR=3=op"!la+6 D'^*Qkeq9SNDIMrSn0@ pTC<`o[Yud{Xa P] j.F E5?NV`njt,<xD*"~EӇa46"<6w2+n>vTn	ӴĴ{4aX H]+`x	}9]F:<=:B|=__9anӑ`82ao'-؉+0H7#iO+dzJ-YCkl\q|~D72ѫk]eW2Y[^]c&.Qt,rovJ8rLٺi?%|*ݗ-jd(\PjԱ/xfֈ|ZmxuddW:gMBh5m[ EnH&I"~#9rz^G!n;~B\*`T\>`ZtK i(def;'{هcd祺
!E3\L*3XܗԩO	o/u'˷!̆ɖ}b./gkm݊J44*G$0Br٤@\F4OOY5,v9CCų
-6pOp(r8C1]a5q؃vw^,6uX_-{R_%+o/'JT8p
~}n
4k1s=b	*Y.JҷcCszNÚ2vںfM].V^`> ;ݼf\fY+'ܷteG:TMۛ78	kXYS 3ehw2#˧mlW.`=ed[4{E3,6,d`c<ԏZ(CT~ԺeI)*$/aC&ŚmJjF49(/jHd8HҌ5(qvYxiF筫w`l-H%']#rtvqVgnG:ws5;Ƣ5l#p:r9׶!NӒPmOӺfLqFUkMlUbFtoL@tf	0@ڷXr;pNґƊQsեHuFI0WNѦWۛmt0QQ$"4/o͆>ByK$c/{ir.WԟNGcvX֛SH!0JVY~zoЙ-Ϟ'ؗ5D-ĽECYҶrjQwtgY$%@J`MnǪV?\]oDĝ917\EoVg-uxc[b ^ǜ&/F@j	MfncQ $)6/?>d9gZ?iQI&8!*4}+C<-lF
Qzi&ͧB_->6o n9Y٤fFݎ/G/mcւ$r]t9eXJ׍bup2!:#nDT> wx/PWJ{Zޓoy|1G}`ŵL"*Se򰧋;r(\.X<fɣ`;rD'^)OECp5E-9NaYR;c}nb`/Ž^ !]J
)?i$POh"4C*i7q"c'&dYh#fP[z^ ʥs%u.ԓjtl~b>gQn
l-22;6+J졧)jv;jjvTTљu5ʚجT')CK_`}bÇ&wKA;!(afY5ݜfi5ae>ι[-D4өf[dH5iPo#;"+a)jxZ¬5kzZUXk>V4>h]5>pSOZv#i_yJWz+F}Y/QQ,ΤZ%nҿX75&7'omhog16bmr|rRYd0`:V~ ԓS^3NEӻ(hwc\!ugYtTrl@THbꪴϜ5Y$DM ɗAIdeD*
$
˃!iYuYo{濝N`m {^dnC_ˠk:y?Q2X9/~a(WUM;v7uCb	e`Nc4"#r9*t	=cY&D	DqS2JD	Z\Nk^BM2+X2%6G_1(H8[PiX,kkNѐXVbrr!rJleiVhO|Mjwک4[ rʯ>5KB B
j⎤j%x#|MM*XSxL[^qĸ
 2"]	V(a)e%Ns̀2(<*?$68:1v(S)*6葹< j`x~ٿDmZX
[zcű2U-" pYG+h"wz򄠼>+$`7[|IL(듕Z5@C=wKВ=5"@H:M=r$4!Iˮо$
H}(c"Bgd-U_"o_][i-(w;5h.!xtCAxrKhRF5AjichbP~L.kn- 5ܢӵ,jqܘd`I z1a'΀4Z6mө+.0╞^V,lTA3^@6 3C#U7Nd?pg@9PV=NOigo)YX陆ar3>vE5t"bY+mjٍtթ^"k[)_p;PPU
<s1VIr8Xtf'H6=wK޳|JW"xy2Eò"QBmAu?5NCUl)	=޶wVԉhd@}{?N8\Zg
g!B	z"s&؝\XBٱ:wHf+e=92Qz0UBv<n(򫲂F.8KOdF1=D-wqP!N~矵#}!LeB%qMKzcx5oTu''!q?SyI<(Տ#z|Ƚql)Z/-S⟔s9']:}WW~EXwꓤu[Yw\dsضM?n9%jq^p?[}_^=M[^=U7Koj/(bjPÀ|U{@cΒj^v}6܇94ixD/;`!})%^+
nl,c}?TF=J3+Z_XXhE	-g"Nv!Y>0fA%[~1)P@r<P!һ")A6Oj|]IAM6d28\ Ӟ74P-xvd,G-kkTtZ1R7
B4,gwN
;hCf/4\ݍj=Z7礕XNJwFy϶!x=ksƵ+pJiF5"'v8 $Q h6N=]`AIAsoj=x8uWϚ/2a.<wiKFǶw+'Ϟ70ܙ,,ЛcN[9bj7i=-ۚf`LL4sCgjX|/ir5f-O|e͜su^G'_#CDr!̩4/"3'b$nKs⹾a`+1f˙#ho 4m{cĵm1	tHnqC}E.P_|w	L:0-z5i=OWf<cdMhKwʨΒ¹#&MokezH6v&@hBh(kV$gzp1#lI
$4!/Qs6wqտv.'u)>=
a%ʔj|ABLҦ m
<*A0
a,H9asrc%<dx9F\]0so)ANp |^9 	M0S o1~sFjP #HP2!fs * %r
4rk``BҦ[krr~l\2ܼ2v/-1 -WN@5Z괏tpڿꎆ?\w;gǒ5=RZwv7S#ב&	Fd Q}:Ձ` 5%3JsL|ꋕ!@C}@IPU[p1`><HEYAkw.}(V!11Ƕx6|_"EhNdĸevȯV&gy}ۻ$^ui=Cj6ѩCx&]K6x`͍&ĕ<ptL30JXlɼ]۴ w\2Kzy]B,Q#14_C	fe|:=䳴Ó4]*"G.=Eo5Ya+dhN-D۴}4}wb=r"iC@pNH(t£5$< g4܋j	c$0h9*@AyX!ZLrq ,W-/K4R`o	,x	;qAR0ԀS@g@@B}#
M3GJ-wވa!pCzSqW.e?&<#>R6@w!3~: k:bm\l.x`S]RĘjړZG
ilh&(2Uw!O;͂e~(NL+rt{$'CQD*6
6c\Q'8 A O(k׀hq&t>Ct ALR2Z NT,6dD -2-?&b<Msݴ~ 
C[zab!rVAHFJxV/-0g%k3hKa:.7*1Edڡ RLbbO9&ќ/RVe wF(<p$y~׭M%sP+'No*]8arůʉ)*"	E3Ɣf
eco7,H6WybJ'|=GݻEC%%6aH7/a.k3WJ\b~ʂ9Db9,rcnc`ph
SKk!Fwl졯J	zgߐ=R-)4!jd3u#,
2nSzhTqg3c@fqv45	Lk-<,B7h9v9\G>-˭57kc7Nȹ#f`XRB	'RXVAcLHߊxD^,1;h9(G_$ 0K%TRD>CThFiLQdGm0E跶%	a@nu%4\ApK 驧n auG=78'Z_d<kc25Nqt~8^(>"7>o>*|b:U,^2iM]s+
ڌ	4m'dD2p,OmPd~jח1, 5
0XbJ8Ŋ5O[:2dT$^xDî'(pX:yDPD̃+M|K$:	24^6aԃbrfCbUcC~0=99RRQf+J@-l6+!ҭq4<J)dC.34͵WQg%?YUcg?c]RpIVu|	;QAH16!̦1j.W񿰊`FEXwV Gtn^Ae9Q:˒۴%kEǥVOO&RL7JP'2ɉ'prAbNqSԴ-SK#"oh\7R?>%j*l䯒þ68{BQYf "r#h~cӣ<jF.Ke#2GسTn퀚,R0 hGlbÙS+6OTpv 899iA2jƘyu˜Qy"8RqPqAņ\h3p>|'cMeq-1:V"lsONط>u j!(h ZT*9Y΁%yبrOוޖD>`ù(mwF'Z7@,	L~6.Ԏ	s(L9r\[p(Q8B.5ޝmY;u;;EG#]ڔ,=nr^53ߚ;2rk)P8#7PMMڸ宀@!SvS'm "ӊ\+ ޥհ0iYDw# -q`{p#@'-4biGb]qD[kl3/ :|ONcd&d I38'Y휂Ȍbe+*pW&2> ٙ8 U0=SN~-Oaa,w[OR˵jN)CU{S5RSۊ>C-zz6rऍDBC2yhJJ.7'_8{pB8bZh(TܯBgnӀ,n ǰ4!+q*lD XO]-nP{,8xkG(LYoy}=et}ӹ961F? Aty*|ڠd`S1XnGǉN Qmě(;:]-ZK}Kx>Љ)mkqoI`
	JO"T"V$Z$lkFP6yQcÆ[UYpmv]´
1_xb=,s]vB3	?K8mѻћ[r#BzD&\
tdVFы0sixo^gpb)n<I'(Ug/R~5ǠV2ȉ׫,n~Jū,V	O.drCv%.7Ap=7ko_R*J6rWLxiJ~*}\iޜwގ.]-,-Ò+Kuȥb%r)
--d~;H.ifyHӡm\ѩ*o?axTuƕÈڲY}EV>&8P.U5V-êR͂yV!rVh'ؗk6rj<帚FQz$ʍ_ѤW2n`E_G~:oQ [+3+CٺpPRRTXiJU1~*ϏU@5<O"Jj[V%eZ8`[{]ZI[;^udXrݥ>jg_T\?Zӏ̫. >5A}vzlwQDvPU CԶYCc*{I\tlp0?c+%PE$$hrV|[BE3w2'pd;lԹ<+Fo&Su+=)P̉#hHŇdXE-1<R8{usNk,5+NښMcvVf1\dRR3n:v}]JTJҋ$%)Mk%*NkMi	b~>i kn2){Ex(u*oZF"TmeOw.:?^Ra n602`iIYd6i̶#fenGO!{dvߓ餦˂)bV%g'd[j^
 ]jK-_Xf=X0SQ^1j.?w˪uUkN	jXReSqJޏLe6I9t+.Q<̷/q=Sc)F[ˀؐ@N9Ya1FɄn[6,zH!͝T+Lӕac`ͨnz kaM(U8C?^|#2J?JT3Ƽҟ+xU=yin%y74_?.,޻|KM%+>2(F\&)Õ7
Q(oEJ2Q_YT9U	ڝeK^9H1|ԡ%Yl{!uj.qitiTGh4b- 2+hg-g5[b_D*k_)o#VG3K&KݿʊQ"=6KfįS!(\ WK4gtO'+'Ց7{,_K}|]x'A@~_mxJ6gJۓᔍ3
}	0=#&I' Oo9*F$][EJʢ,Y|-aa0^
fԛ,[muXl17'zE۸k~~"K='^Q'c?+M~}]{u3_}|DA{.*~YŗvZ[o}3o.^jGRƐZwQ'ݸNU@w>GWm:8>2\3P73B[
{_;kݰ%x<@+r+ϒwa%Ě"_J%_cH>+A6}sqi}YK;	V,B_ctQwdB;yqY]|>HAh1-uB_=̵c |%鎉"(FAŮX	ƎޙD]SygٸJMʂ8Yjˎ"<
?5KF,%0()ji8w=aWQُݹwΕbw	ob&ivAO8}jT^>j*GCH	jgW~,)4XHNoZt#٬ϭ|=>qMj^.N/k*po c0nQ1>\Q+81v܁ïM&SZNB>{x]+O}
wq9QAKU	mNqqXV]eޑ@qIVczHǛݷI\+"Y^:EOVgԐO^&@JعWhcuQǱƬm΢@9¤`9y	O[5	4]p/iYEB즾,
(Kp񢀒9Ȣ}Y.
,_2½ޔ-̋ۓwُɹmRX|n^=+9e*T2֪Q-
n(>_
MӵR;/M&}An;.@5jF?NKիr=f'm<w%Q	f!.S=ƩR\QEeoz2FU߲YŊ^X!1:@bgxUq :ְ.㎱2-5[lJT DגZO1QUwkϟg;qfc7ߍxLII2j%Eՙ[V^xBDE:uk\@PI	9R;4㓺1	
)A8XmYR@8u=O+י"֦GQpd9$#@.];J<cvz).:+QAe7+RV_]6~*i(rLӹ^YBÔ詹?oC9XVkI.դH͑C`UܽVw*
jQf~B$~cV"BU`kLA)>`y`9_́<q>++
?WW%#嗶R(
gV'qwӕʺp):D{2>Vӊ6wbi}V*[s?r5=eᔹ9;=/#jZ@3mބqQ j?ҏ}ÞKvd_tݏjE^c!b'bw]&9rUZUi;\nJ_/ݡ.~pKCC۱h,݈סQ	3'~kO)ilw2(|@QL=kJpLMO|0FFˡw+1	hrP	k͟+AF_UD#ʩè=i,3ki9)2uy{2yOt*zye9vxZ
u#(ΐe]wbz?Mir"#]@MY lU|v[#\MeP̮k=[aR`>p3y>tNCsًGS<2G#TWR?jIEZ{yr*xwi:51əzՑ>m쫘 3]҇dPw>YK{I*%RKj>=ߧAm!Meg?߰É|Us`)%}([,c^)zeWV&/o_b~l۸/iJϞ/Y2<X-_"s^)"7]\'ވ]ƓEG/r'[XَӛaBg4	ƉR3vxv:k![2ҞitlB3-øxz[E㩉\F:WV;wht<8MiSόrR)gb,!"0q3r9B;\a˄b*!I.Qo09v32͆c]D.yϾƚ	j_MU1ol o*n!1Z0}ǜOCM ng؍=}vSS#JBE"V:*yFs$ypٹ\	w̕p]RW!yQۂ]75ɊJ|-߭W3U9]K+|6Y]bg#1~F&"}BkM5¼-0v}LNJ'(>3n^%ɂJ LhK=/HO~ڇy!	J9X@9J%!Tӈ>v~>28HwKRIp%0q聑G׸=VPL&71Ŏ4|hIyGɍzQ~'zR8tZxƶ?9zF5	Ca@ضo$-\
O^nwf F<lLBOo=nS AM׳=%QURylfM07T]"cI0'턌"_Fo7WsywaD{fw0 ao7-܎_e@4S!<zӿܴ}ֻ|;u@1 AC;eEJ7틻so$w@NVh>6|[k[bGsΆjl}1mr	xL%5wXmaLנkqҮ	ybzN$]2[P;67ԒF^$5~l]¥a_@Dьjǋn<{&[M]ZdBS+p
y#֒pc13ZKzeq;V?bCzήuV8|p91W.Gj ;)	J悧H.]Ҁ_W"?L}*1xGl
XU^^}Ӝ7]$Kɔ8B:U`NQdʜy#K7Ǟn[W~P@\7,Lgc11,@
D:.t߬xg')D:fz5{m4-vgZ^kGA@|sڿ$;P]<olJ<OoHjJg6zfh\!GTy$f<Rj((HrMxQL7laiA]k02h+}Vhn.c;? |=:)c}?Z0#olsNw̲STnz, N\y;T.LUԩw[s<)ߚg>y0ȅ 4LP 3_q8oO?Ͽ=>1S7Ü?
U>;f\t.ߞw 2(oBHCcW0S"0VE\ /@7ŒkbK/Vru݇ԡ(2rA=.	UH/:C؜i-cNd˖J=<ұ!s(@{?n'OhgPg߁{;2О]f*?+A颇wYy:%~Ó ^H0^g~~hSY	 N'5E@"U	-d\3Y*7I>ζqi
A-I_w\HE|-Û䀹\Ą3B+ml~fVHR+"קs9q4xXmo9_1:$TEtH=]Vf_{q-HV/<=o"Kv?pV=}zLb)豐(@RE唎*''p(͘%PĈ.ŔJNG0c0)	v:VׂErp J%	?1tOIʸ`TBѐ!׽j4Z~nonKk3͓D'*3&DGLd%JiI$'w~ߪ뿻Zݫ~׿*_F*^&YqX8G?ia=ɄR9xအ}|:nVlI"EՁWMHdiPk5wPhĴg^ h<d1HQk(F`'!0	C*?V?տ)`|QRmyjVPH긾0u ng>}gݾr<e`ecZԌ`^C,`XeP:1>bCo*rSQPԛz`Sq0خYxXT@|^K1A
\٫?yC/#3\*zISD)N_.JR=c>hn S8
cNUp1fC_,/҂	aF`-k)N	,x;bn@fD@RL(*3}ی잰UEtBq
?3:5EpfkF7;'/DQzleKĞ\Uc6L;I;EGGۏ.j?3=:K6?،Miu&N$_]xy%aD^#izc7-j}zڒ0(tID=;Nj
oqa!Ԍ$#(h^USB`E!nD$cb$p(pxeEŰM+dA7
G7̪&ÄzV;hx<_s!)%ؔ8V-0]LóX.,jNJ_	c-/22Lk&iH8v[{β^H0MA,N0Z&KzVg(X}|J#dRTӉy=0<SFpM͠&e3e$ug &)]{r-|\q+-j6^[t'%|u7yJ-tFݼ$>NThv˃;͎׉}\ב~|Kb`?\/gR'}ܞAid;B.b[	4dBcHK`GoxR;eoMmOmbཹ`D~~>is鲹5bn.@=23p|9amEܘ,׻(WJ[{:Vr6&j󳡬-h/3Ht)f6
5&Rn53~80-mz 7?KkpuxUMo@WAԚ*"F8ֻ%o\oޛ.T|^XW9TZm/x8v d܀QNR!ϹZl	n&Ï.)JقYHLe\nd9G	e9L?ߣaؿ{%?\J$SQS-I]E+@j68w7ejlFeRe_Gd%%<,%aQ*10% G&jT\y7Pll&p<%9hoow99ռj^D2YJKՒ10,/~_kt"R-`$!O-Wem\}i2E]vVPv]+Yu	[iq*ih
%@{ea:޴B" =2y@2bŘ81D#Ck:]gm>	_e]\s<L iWl=%&AZ7968h6qǫ^7};e%D^<%f&n@ն³Є@SPjfzGFGH] wOEo@+en"y΄	,Y`ǴAGV*p 2fY┾\εz/Oc,~ ̀>֟?sԹxW]o}hmRv(%CB%:fW7~g(ٖg}XAD$י!
b,Jo♕9b|3D%_TZH\]/̘\s(+lO2-5mXJ@,![٠b>ÆIbS^	R:WRRɌR")BB.jT.yXh"tF3rKd߂+QiL3x(+-!yL|V
]!kmX//3mE&:Zh=c%	CWBbEA 0Nm4gHц	Ѿ[Ke%KŤX.0|F_,Ӵh)B(ʜkj$2Ft!xVln*E7 	
CdH	itzO΅(N,;w׆/1Glp?B7*&˞?G7(1L#nFGS7sMцcu`愱7OfpD.1Bd!*rQ1ѝ3#rC.`2rqE[kCǛbs Bs5KBc/)>C0FQ:ENEqLmP`pPwk i~<r\gpɷ;4LN^f/Z=.;?nؘE\2yuH{l4/;efj"Iө2}oka͑}qU2jX'\s1[o
n=ўl/MDw{%S>WӢBV]&tNfAM}Zx>nP*<݄\ WKHar˥(_2>[Հٽ:~E%&7D1ժEJP,=nev/w-\Ci :B|dud3v	J,bYEE7# ^\[zLs
]-/>tW;jA3)2s_D<g.VW-|t.B`/>0궽al9g abE|t8劒-s԰r _Ѳ}z47Dz~,uA2=hY2d^SUc˄\vy10'xh%bLhJ|hy?gBQI4>6HvxOn]kOx!D2CmT1u| =ƅVSeXcsB#j_]dEޭa<:3|ծމ"ggcqsoѸ;D:Mj
^ >L:3L$xoAE4nnY.ZEuא"xcSQͪeFW{5U7`|Ո!He7gNtJE,}_̩W&_ŻXZV)G߿lK""!fy#T=:.m27Gv)h~d42s*S23=1%LL)k*;p7SڕIӑy!:}?ݡN3Ʈ!xwېߔٺqM㣴4/s%˭z`ޅD9S^a9VgF}ӱ4O;/x	RBQ2x(Λf~޴H$'YfїESo6G=Yf^S'roJM7&CCc CbC-dݿאŘ7M'GK~JLv1_9:?4'nB1N/?BߙX6"b'^B*x\{s8ߟi([rɶYkGD'RQdqB\~n |H,\S#h? e"ɽڞ]e7a~4!lߋBgPTw?vù#{HxCˋ¦!̟2{f"x.YCqd93Y٠G3$ihtmlۋ9hhE(r\0TDo2pe9Uщf"b!`l*@d	hl4%9]0?qɾ`1v1 #\`=l!uщDtn̤H̟gMwM95>;#,Q?á+'&j#MhNI0x~ZKmSUY`Ƙ+	[)BDD 	#Cjyb1hW+1mLF׬~k*_pv-(nvW&봻m}[CAJ۝®f8k`nuv{7[p{zf#^>;4:ظ3CԲٿ4hzc~[_}%uN%`]5_[԰DtxӢvFl{fgLhJAҏas=w+Zz>A@nJ4j5:n՝7S64Gwf3j:OPx|0Y71z#t
ԚAYrʱ$V4phz"׷-J."ǭ!` `S0.R	:bDG%9Mf,;OTSÐx *T
th',y0Y\3M;l>\Ҹ6S9
F1qe+d'+dݯSP"y;+?K/y_̑I>]_ȣM&FYzߺ%nkFaw[Ve9j~`_=
%ߋPOs^goQ{M9j~xV9;;09.D"ZY@YQf5ad`Tǟ"b/|S؞݈8Fu҅]JΡT{ ՎB-ƾfh<D""eBADe<ôV향n5 .ʉxh#y2Rv+kwdȷ(ib~ v,m63<OH,/dE6F+`A W<{kz&f\ҢXqxO*ZK(?<`ȌʩCyPj<;tGhZ[}[g]WQh8RP$u$[HiRvcy0x+U-YS,V8~@/Ęr[?Nh<DBQxoZ\io^lƳZŘ;^C>wPȶDtvvݐ,d/S2@7"֟Nw'V!6<Ty>-+hR'ٽTJn"AeOF!Pӯ##fm|F&il?_y`<lLmr#tGǄţYH>_fVVF*qS\ܡ>A |4{2Ȏ/B&wĊ5˽h9QVGXJkE*!^*?E T/	tj!j=?[v학Uӧ.iθOa¹sm}rךKɛŨzh(J;5RfF!8(*m޴ZiBWAVF|v	[j ޝ2mQ$1<~h% (dYc	RX9YcdE>93w rZlyi9ҪwD}N-GjL>J~x
kZ8@}x?1<i߁L2K*ƒ/q>)
w&eʜ`iJhPJ}9.Ugĭ5&_w|r<o=>6h
Frv|,܎rv|ۉm	7[p;{vz}7#:=) ZY $3#.pp}}(iRE++]jk	؆#S<=NX1)AH!%Ed8^u4nޞ#h/Ou<w8O|^X~wB)O'?0>̪deLVX{tע!~IeCv*Qqq7ۨ`%5ġi̐Gu8Fʘ^c,X1@iZmMEFjO`]~tYSt&:b-``jVЊCO.$΋Ip7_[p?040A
^gEݚ5X"Y"  `y[btMs6 [nDmgl,.ђ. FqX!A⠁%3o-%Q{n5	^Vq)Yur:SW*JC!'F\ȡD1Upq tU-<[nr3N$^xQ)xB+JE(7$aB{*y`]NL:LH:ZOF]NE!&p&9?\bF)pDR0T#uZ?eU^"MY]$4kgF @)tٮG/zK0$ggҷ^m)ˋC\ϨX9MNC9Iz>>an/+MzߩMnk6@7{	EiQj} FHĩgZnck9-65^9zɅ6W%umnX^od
\x?G1yk<O=r9E-ieͧ9VQQA6'p,Z1Oҙ,wN}8G#	<<l̉wĥ
+˴_yxU$n**Bg<&n󥟻SGƭ5߃]U$k9DSք:?<Pq%(֓3_53ˠ OI5֖ǜ]4=+pMYķqfYRFn"ظJ >p;C7K?ȴ%l+TL.~s<.adٟ/S^d}#]Wa
C݅:䑄je-ԦMG3Zm}p`@x^NJh$Td)nQ:MK\r|>ͭ wBBNZA]-5O	p/]btly(E7 8DUEL(?]C
c"k2\:GFrr*I~n7*dB㹱U[{,c㶟u9.x}N'`8B͙$?8핿,}<"Ֆwa'Ē*˜,ҩٙZ~$y|v]1Jݐ:jc r..S^3#nRiGSo0zW*1#dّx
E~wottƍTLN9YV=ՎO_{)3ŎIQ.Br	◠FxO߱+2\t!LJd* 2Y_jI%Y~'Ftr2apJ¾T!rlBhs#N>GX:	0zYu؞;P4#٨*Y6IOT_o^ʡN4ՆncH1O߰eUO>/k@[|J#<Kja*4 .*mbgV:t\T.\/^gu<AV[MR)E;#ol|c	q*$Ai`i/`m̱芶eOرy0bSI#
ͪZ)@Ek)eS/fqtzĎG_tbhM_,FO78|Vɉ=0G{dZ'@yg@)"Ǜ>GF%7CKc,JB]0;	WD	}vԙV8ʬo6Y`SD/ԉ(O4cl9ǋ6)%Ua*r|FyzuʻbAt0d3ˎaA,^Y:{&;ρLӖrtKF9gHK3_ҪmA;F+R	+2KI֊ W>ҢҽÛ(0UWkR.lq	kptkx<U;xKoU+nX@5>;&m46bRJs[k]W>_|PIRBױxYmsH_1ePL`)͋:vN8J8"k^Y8bK3tOce]rX$7L,HB&O@MDѸE[?<ʲH$,]AdӔs&l2kn\-x@ Jj%hs>LL R $
bR̡aiP츚hgW
y(C%v3Q,&qBbSy韌L!mM6a4O.[8f&	Ly3z?	 "ecb itCܜ)I31owM4`.BIINo"-9#2-;Ё1.-S`HD6El1ڃ<$VpyP3.%MHuK@ygseױg>NN.ml8v8݁wņ;bۃY\8m=G'{	c}JmG;ÛKo{W&;8SٽQ밋s1t-(q{p@un6Yܳn/vG0qIʱ_yl?/z}.u=ﾲ$SxyfW D<&u<JK۵LulsMFPR aȵ*Nn\oZ?j"l1qcÏ8J^)ڧŬ\yr2A=t-<Mm.D(kikkɵ?^|mѪNC>e=i|#໾X2khα$ć\#yŤ#GzO%ފrrj33^S([f+oAGsE(<	&YFb<HECv`i2*>?;f>TfOPb>i6EM
:Q)sjE@{*2*7/i,_JмamD/&A\Jo^qV"G>RyҶ<xGahqQ'9:>~,̓{eyr:]4L[0c u<5
u^W)17vw۞̌.G|X}FpW㗔kSbk)*l䝾 ^ng%_=ge^3r>.&B匰6k*C0}rAWOUǺw{o^Pi+yVlI{4%*kKѲfi	"OMnD}ɿ\OPbsEb$jV_7^
&,ض3kȗ5Xx*ʦCn\SNsqo'1U}д厺$
&uDJ3GPJBנzv6ZTs
_H]{j :bjn%  W 1cNI
ۦ@{T3U"C&81Bm:9Px AeSvcq~RC#!:Xd.T_WS׃BrF$uL|%M^khŴhDHR&w5סPtE`p"'giC_?3Ӕ
R 9߫2ߓ<34AIEvKog½lE`r25_b37/E4pa⠠98VJbXnNɇUɻC+siTb0PjzQsCŝnbbE9(iuR4Ɠ禌Wc!F7>λ+ \5[J^j"<f1zBRi\Y8L3Yitnw*6Xf%;F}k0|9:ul@Do,
mҐADf1c^)EX`0TQL;U\ķ>}9u?}ʏ)ZF6)>֥J0`#9iŤ$PFGFؑ$Pfڿ/d^<S8<dzMI-BB#Aۇw[{V` qxp =EM^`~j)|cn .ft[kDF-P{2.ң
.(׵WWjP`tB|ZmzU5Q}ZCREL_o Ὕa"F}Zu?-,Y"5SP+JxRSHFI:4mIj!Yd%՛JSWOk2hr[V?E/dٳw=*caU0Ey4IEV.0y_tSW~C{a8>?	ޙݷa:chx(hw! M;7xP})".I/|&"*f|n^l޵&ޱ6/Ylo3)oH>w)wm,OÕҟ<HA*sp4j+^z5IT=}7'ޛ
JIXl췂vrYݽU.쥛Lˊ<wjVUΠG:bifO~u+Z7iJYC}XoM ׅ4ˮxCxk1'^1H;?[SCAY6ʭ,>h+긓-9`*d褡{ҊUY4	u^iQGĊ<-:HNt\?.uDǺ</Tm5e'Q79r4nϫJ (U	RuTh>|+BýZtWJS~Kכ8Y])e]7<Ꜻb"/T0*j硺?o/e~3ck^iFX.}ܛ)^^Xy@?S#vyK|2T@̏BG]Rk-h4ƕ+{uu;#-p#@zyCZ#bg̥3߾AZxgA,Ն&g.в;lktܵⶾVǷ%HCg.;\wf_@nDOF4ii^ߜaG2o4iQj=%PPMg揖=x=kw6+\reITGD[YJTi.CIEjIʎw 	>$;nޛ 038	W7wH_$u3&~8bIMIōG?q!^/UNne<Rs1]ѥ$7b%/.9Y 8'n$	7éH1%`&8e,,@ԠM5/  J?k/YDD2LL:M0A0-=5B wRۺX3oKZj=xQG03/fjA{S@XУ0}h'Z!qٯ2$ |0aGCNlQ^#37#mN+I+cafl)Spa((g
H80ye~vDw$.7Ωmݺx۵_ƶv~'g'~Oag4BP_hOzn8-zpͩu;#;Ó>8}, n[\vdkxx1u Sφ0Qӷ01D.F۽M2#dpn}4w qóNz9	iC hH=o_wۇA}bw}ɠo:,whPv}u=쎐8gy] uaЀ~!.;:FvpٿЛ393=絳@ڰv۷;~7=Q-y8h8S.pKW:9}u/05yCz{v|9HnVrwŚbyc-p
Wx唌T2d`M^XlI)2Ź~K`2j6uѯE,ܯ
vF{c63?f]>$%7EG1v@ qφnlXY`gԀҏ&)w).XH.Z~pHȅ}tzg4ˑtg7)o7NUD;cƑ矿{h_\A UNh&qxA\~΢0\6tAl0#V:Ǿxr'$k))yq7.+\H_*y!6+X5m	nRYR&0ZS\"^ɩ7d.a
aUYʗq_=  d&<nz37v^K\ȩd۶p:CܦwLrmG_2
b_M/$"X t .MU.a5vD2^Bvk|䢽/t!l m
1p) ~A3=)Ōp #%h8-xfr)g%7]wNSMOQo~2nP+݉/o'ѯ#jf-Wsʿy? M: 0.$b@2c©ch9[q8[@wyUC~NIT]ҹlݹD
!"l:@ZcG~bR;_h/Ėt4U7	ET`!^G
`
7
`rXs>8` l'FQs9R;W7f_LmǱk.t恱fkg_X|bDmK pSw섍v0\d<8uƎA``s
yĦBW\^EC;ߣADSt9\ yX	)Kcw	7.iu{u!B{$8 lOSw}z^b=i&N3|GgTK>wЁ0<!/_=p<}MR;4ް`^!탥6CeBp<0g&!4єKSL8*-v0<^0]11&ힽPB3hCdPBms}
~SŷE\kw(.{&?uzT:dfKXx\Kwt&fo"rݒXkl:#@}fъSi!Jq~xyA7tf/5)nYnM	kR::;Uze/+ _V>z֕=gXK16(Df9_SSmK]w}72u}7u'}oefyȝYv+KuٷYY龙[zn!RҰ>yIjhsc@V )p!*gi;qݦحqC{jSt;''Ϟ'Ǎ'g^NdԨ}֡LPXOO?^ BO_Jvxx?OOg18ň8`aփ?ql+\ɍxw%W^ߦw!A7<&AS /mv^3ῆ#<ё״	lT1ISJ!ѐvEr@ADdX	1(.m!ј<6 yW]؊edc&FE	X"^TN֗$c^Qo
ġ u&ה~JF&yYy4}\5/65
{Hˠ>BNB3X,sw'EEX1(9-\,
(Twt'RfNTL; )KD jԠҀUQ~L)aWy1Gڀ,Ĩrv:7`"~u Ӵ5PH	EkʰzYA=<S%W)2ЇZ|Mi}j'?]d~0C*,!B¶8ÚN a) %tsKIP9aK4|pO{%uwexB
+NeUuDGf_^.<I$憵yj}ja'_5uЗe eW}zU.LQ3ػ '#uK4	X(DFQhQLEhv2u9u:45?PǛyLv@.84TdZ{` `[O^17TCYfhy䐿t('gR[0ai48 g!a%͝<{um.^Itx˃X9C;>|0O"4Å8X_&ETƺO5*y;*Tv\mņŰϵPFs$C";ߊG*1l6,kHg5-Mꓶ|EEca7h\PG?pGहrZq]{M1~FaeKkg=<#ڦ\!_$>yU<>觪]G'9G@
7we1!9'7,>Β5Nk0beCmt9g=U6ֺ+C{ЖL?ONrLQ
 Vz)ʝ"G.1a \/BdK YWWNW<Ͻd֍ pSbb]aê25.@oFiu)^Hw[⮺>.{sOxC݅\@W&~T|$THa,s@UGnp)CC2paX +iȭpA7b'ch҃k7vT1
HtcL'vH>Q[4u]֣f*.GNoA~ν=Z]n,NĉSOs&Ho뤊߫M%dШ7&+7yىí|{Q@ڀ_;Bk_x\sFlkWk{*NzR*)Md6k`E1("DHiE"J#(Ӳ*Ke3Ik`(bXE9RJU֤ZL	% tQ0Ȧ̐;4VfQ4c߄Ӄ#r4(֘7u[a4肫: [x+m٥n&b-~)8c}&3/X4CZn65H밖caتg-emƐ6F&ՔU8M0.͊E)lCg#zlQ$CR(F6goi-H)U46_Zޗbi"
5Skw|䕽w&`]S8.E>4!T1:TZAhP"5{V#8zF҆NST0i\I/Eq?0"篇S՝mN ,OfP1VhC:`CSp
d(1y)l]yc+҂a*lGɄPRl*ari"d,eQnlN^ɖʝO˕uGl2j!n#ϜdL0[_@҂̋a}:Cm:ekzl`yŦ
-vDxL4 OԁJA>|Lv8hJ&&Hky';,6LD j&xOO'jnGJFMס;xN
߲R&N ˑS~S~Xn&fGdi5ȣR2"&P7Ov>
	^Ϯ]Rz`¡lQǲR>Z 2^.t$s}y@YxŽ+e1-Zqu@4=)ZAzb먑s Mԛ%ؼy|IEBɽXQzOm&A1]1oF@am_F؂6=EmαtGyj%bZHGaF}ч?xoS's4,.(!&]4]C=@Q>|F!"R'/"QSfo}N5"w[KNWâ]vHxpsUTicG(n8IU_Yv}[áſ^㛨@&ܛ!~Kʪ_ԡB,'t+Ws@MԋiVc3S&A,drh{ϡ!&e$rʥ KE_kZvP;
n53
,uLi_LR$vV _Ȕ[ecp:=TVY2fRoVa!<WIFJb?x*Hnj8(DzcBTVC;kUgXm@:\XN
8Uf['+L֟:t<,XjI  .4+O9/)br&>'kn6|M6^`	Pf40Q3zJbϛ	P1/챆f8/^q"
 L-q#հWNUs\!cp _:ax%ėF#PD略8u.C-%d1@g}NZ4Q
DU>#.67axc*#&6?
=ea#?
ڀou2ZP{'PS;rsJ!oKq#*ɍ_Ƿ2>~'G^lq2ST &;b8wV8ʵ˚el\Z:p -
~Ӭ-eI8' ̽00o;|ߧʣ_Z W4(lm\2ePDՁ=Vu*DnY
0<U!anHHoŁGxnCV-t0'\h`2o=my9÷ZNۜY%m,lG[	>hhtrٰ2btVޮ4Gņ_ZTbb;aAP
Sn2ðd2ӧ4o?30a O Y>DcX*$kY6:9IsGv 3>jÒ9N0 7 ėZ&um/8:Ի:O%̄L^
8e\Md:,{O6vkh9h{ɇiHg5k|uqˋ\b݀,_hKer;( W K'R'<N
6++hXxLW&߽Hoތ41r	V\=r ,j.E\QܚtgЈ߾HaP$%V+H{e)k,ANҲ#w9}=wgm2c:P-S|o \̂ON
3#v
u<:eN64+᛽1ֶtl\6+?`M".X&]W2$
cZPBq_`e]3O9Ά7[~by<@	~QPRCbkGCH*i*|(2 Ɋuy:՘h2Ue\ƛڴ.Lv+:<2h{̓
bfSlR1@oIU2+\68yYg Xݭ|@mtUJfQDQW	z\A0O!KV̖*|'tR0d@++	u%fhR11KRHzTw'yd1qʥ ~~#.Jޖ	#*O{W@aH*=z w]BܾS}'|vtR GU5LZQl1=\ puc<o`=u [5|<.̨b@1' MЄe9ȎԶ>p<]tBzu!sU:llR7[a9׫2#Ut2XZX|+W.Wof`5{n|RW~˴#ޞO&~S8	+W.]+>J]W-l/V<xWmo_1Jh%~i ZcI@AɕE
|}fؾ(ZÀ3<|FvǫuId{&9i'FkE,-*w޾/d"R*i)#-)\|%M*3`i+])4NW$*\Td^R "cHCQ8pڨSGER$ l}\\&dJaREa$9S0nU ֤MK+U|.0Q\lA^<)"YNL
ჶܒtlsҵKeeH:w,̒$*C+E@wNt1Y	7|)e[Z ;YgPFVp9{R(ruA7\4.[˷ən=5Ǻkҭ\yA÷#ydWd6<l;hr=vtShL ά{<
8G.2]עzb4g܆c { {jA3}5ͯDh]#^GpЕ7^Ϻ4D7XTؚZleWW9.r~FX`ê69'&qva)_Tf}hl[پtNJn믻LwgqSSbg,F,-A6@SVh;Q;z-i'Jc(JEX1~+;-.M$muHڈ0 L܀*,yWl
2+UXTn}x	p-$S,6b3O"SI7j6DOLDD@]ؾz53nz*p\Dp,Wb0-䷲-C4,e[zYG ;~uewq2BSm/=Em,Xʚۛ{mKWmɍ.#-ȍ/﹨+)a=U{v,Ֆh0 QPF\naUTjΆ[ZDrPOSRj6Hܭy=}ƚeQUj,qP,QH{+OWU1ޣ=Uw5.%%RL_1f*FTq_r/JQpݴg~o^)\etj?%&'&8OO>Q~8P5PAf<`ѯI``äw8yrGqGsY^*/݈ux0Hu!iAKnTcXIT'Q}'HNOP:$h.Pp0V;%i(E+V|T2ޗX4v4+:Fw].T1A'2`JE-F9oӛ7qӲRZ/)|t05=A+Ը}UXfz,z8d:GgC
;7gj`#%"u{G`	{-lfjc4//AϢ!ULGWU(%61NW$a%ʏ,oȧ#1wH
֘rU h{\ZV7Q-?I$Fb)vl4S@km|`h4O
B*my4oh0(T(.y䈌Ы{Ӣ67i6#r9ezm0Q \p}#=~J+#Uh-ïA40:ۚ2}՚.[YWBqx?ygNzc{1{xoZڙJ:[xWo~_A]\{(@Kt][t9s$W7M~Ck[k=jx5y=`A~dI`E2%aiexqsqf|Ϊ*+rU=I^ŀ-KcXd*)̀_Ɣ cdy?L), zX/IiIUi-t4.R5kha5r{^zUlkV
2P.`Xv9kME
~\,%fΪ ,rqrE˩	o>%zM-2gCeuc̡XԢ@e^/jl"#_j%wcr)5,vnlܼV	\x4MLurWIVT52!Fl*mHSHs)XLFw/|v/>h$$Fk&ͤP
Ldt6	VЛ eC HI04hudU6dPx*7@?(!x͸ԁ7pfs9	> IS0bLdb9|lكnǚ/8')kބS&O<
6ޏ]
B`t/
 J(ņ$%@Q`F2 
CA?\s%O~(tqQ,PKfȑj`yK$gJO3nPlNL+FB~_-s1%3e</~rZJhC6f(P%qYr9Fx4GcG5EI)d8+y
^[?E_7HH>G8|*L8)J˹O]3 Շd0oR}Ls> ;&C>yۉTC'o||&\ΩFICSl+>'kS;s)DZ*2o\}ºڐd5j-~#ϬllMd;gz>_PIl7G#A¸态BBNU:PO/-΁Dc zߣWimT(ZXfg*9Si8lsC!~ݫ>y)83׋Fȓup(K*:߄OsC{z&a9"}uwRtPmLJ堯b>|_e1{-nwcݍV	RN	.%K2ym|AbZg,]0`YVzf0Hrb7\4y2JQhK~NkK@̬oL3T}pqI&#C$7nqt }RGyٮKkv42QGQ׭3͙o+m%`q8g%w{S{,}N>\ThiR,0s9N8	!>[gCC9CoqSnOT	<'Y6 q;zU@4wm4GY%-"HZN\fh8&q\ye,xIzw'FŶ,zx6_謰
x<sH?bwF1	;6q>o9؇I65h-$V޾uIlnQ՟ns>lF|t&q#9ߝ`$B-h~wz8(r|"|&$0g xtRMÂ~l&N(-B@;Σ`y/Jzm:!.hCVCL#DD:c{)	  o'7DAABǶ㣾l$@5%!VV\G|k야'ؿs6K	achI6Ad5L='\v]_ܹ-E܋瓷>xokO fA4!uPxncgX6t ޳f\#;qlDpyVBB)h,'8b;H"R9 Uj`Um1T%+>:}~󑇷{&c%(sS'e7c۷
gF^?{٧I;?vםn۹`O1[?>c1FCTvǱ-} 5@(\TgxbHC@{nx07`W
RP6>A`L=4 ]@ {DG(14B;D[pv;F~"f.2T=:H22ؾ\{YXDdpb_x$$޷+I_3wV^I9++ 2N|%1NO $=`nL~^vKQ@}v0jMwA!N@'%He뎢]Gys{'ů<w?7W; |:Z;q1hm;#0А9IdOFIiI,y_Ww_vkF=xhs%@^0PΤO0#HiGoywoUm0M<95Z
gKǫG:	gRT4=:<0q \y:^fAbJNT:pW@1f},GAlg)8Ы`T1}v8S~vw0xn4;{|ݏuUCY
6
6[
ne|_GyZS&ND'u,VgU۲twv.ux5 v?}Iwk?YΘK=,y#;/U@8׀xb#v{F#Cf'qJ`=ZzZԖ<,Y,f oxL}L!8˙y4GD3a\@8غ&>%dfʔ(	0 RWJF`D*Nj_  M4 xx/rgY3Hm)8
oL>JI(L=f-	فD&hF	!/!Ǌ`'-#0!bJpV^ETٳ&hRW,xІcr]1M|m%&&9~	[m)tn"NxR|}y
 5PdD3b.̂iM
DZgglpCS\n廟.AA{#"K'y]x
gG @6H5B	j*rsetyB=6fȝ=( 0XRbӱe񸢉DF{-ßF~#1דvUϷK#?1'ڽkE\HTK_$dޱthG3m]t̅+\Wd`#қؓocoḞuޛ=/|J\򩐕Ks@b30caNK¹B	x[YQ-UVTQH~ q(C#Jdk,=֩`=R
?s/)S5O5ScZJ@0J(R1j˖|.zPMqӯf8͸\1j  Qw/cll8AOb;˸T%&Uf񒺥a<U>L?hbJZ@+&[4M*\
1m m'u>m2uXXm^ez&1lB#^-b0Hj*BGzퟅd@YηW5ɀkQv;AqOq` ZΔ(N/>Y6^|Qd:GlgB(YJggDj3lл&Mmq-3XwWGsnMTP)	t2"+e\{Cdb!Oz͛# 	\;Sr"&#s~yR&&M#9q+ px.3Xݎ@U-]֡\u\JiodթO% DEHqITⵛ:!"B3b* :2ޠ0(Y	wq|k5؇U-QRiMZSjdC0>PiC4&"(3`QI^Ah2Rf>+cs-5 L^+a£l}5"Dh8M&P8ddA"-ihMU+"w?( 7l}ߗ=OB5he&pobP3>V"@Mqϧ3W-c@aX@p{	'%	Qx^׹\H@>0-Y%8y1*UxxHڈwŴk<{3-+vUnj@Cp۲̄6{5mC;{q#"iB9Uw\1T{eL.ss~Z'Sn4[qՔWUZ0tIՋvq*iҤ3CveibpOVVUS^3ƀ<0^;4 VI&%-Mv1q,nn{z`g2/f2׭f/Dn7l4:`.$QI)B2LERfw쒠QԾnSۖ4[ :jԔqi~	r\ң?.ḺMlr끞*@h+qy2zʥ)-PUF(vOb>&}s#+Л<*u\'(tf2Q*] &1K9DSr 4^$R#H>Jˑ:tCn@:ZSSn}z__K׺1=С_/
uCp-]t쩥CtVMah%aԡ_/H3a(JljTh(RkCiI-_[	Q[י^yuXz,i)iX[o`%7p%YXyuF[62y2r֚8RԣF?((633`t:#7JL Fq!?N@,FXg/[55O8v0b#cqkNmXKKZ GA,*TqucIE\3˳
lS,s9<yeɜ°{뷭J)Ї{ Hy14蹬EǸA( b1hWzEB= 	T{#Oyp+GXq.|u2fӜOb&<]ѱlc*Tżp8hU2S,!<ޙ:To⁦찰#W4<$^{4k"c}G.m;.pU!NVץłOm>]bH-.s6ICA'xAbձ_]16]sScmKw-`1ƺ:(<ApOW^=%G#XwN?oce}(mO-dq;-M'$.d\)(<䇻Czo]ZeR0)G%S0$;BAm$?K{_(*_D$̈ꠚQ`+#)t
=@C|Ld(c8t_G凜?s`[n⁣t4=$ܜxy+<ԟ9Ǫ^sÖj.A#:B]gh\?{ Gb!_Ű7=eM}
m(~k vB*08]9,? i񤧸eN&;<[e[5+vPglXی.3'x[MMgΕj׎d6I[j@p(0r};Dƙ~FoZeYL! NB/(@D` rBF6_{ã⫙A&G[V{U,DO?ӑG6y+V5ؖY'*Q2WW>܄tT
[q{)bQ{Ƹ&οLE4m	OO'H0>q]C?'txcH2%<$Ծ
"y=cUe6}ZITwJqOAW'k}ռ;3e#0JqpPd/9TDo,PS[PSkCAR&31rpWBba'n:G¤w@<`V]*du)ss1/3$LQhҤWsTnfIdU7 }ՅgXR-̾8pe>n""R	:q ]?NV'q˓8(>;9mz)TYࡆGѧJ%Ƣ̹vỌ +xUp:{c_y/rB_;nSi?|0tvlf(Um,U9ӞV.Adw]kr.$45S@k`<U.'y]ܐFUA/IuC\-%zF~I&ke*'Wz<oh+,k$k'D#>Gyj.NV#eLfʑ xbD.#i"Ԗ21th7:R@|Vxz	[3ujqyt"z%vf!{'xQSצ-alZɪ%GAk~ቂ*[hv'S ui'w;..^&c'Hff]^lflX5ȩjEl`ϓ>sa0goZǑv/\8v4ϗ;o1tx[o8))<)AX[YHrK@ITk3bﾇDST c<!/3o=ib)><춛mnvۧGl*-˪WZh}ޑ͞T(E
dN~z*l=YmVψCIfr mJvʗrCŊYTn/t'{Zi~݃9|[ucޘ5Zm+pj}ڣU,MT~*˪9B5#y鞠/rUw1~rŬO{XݰZ L\MkfdP=y6avMyr]AXj^o2b)W)7ɷQv=,<_Hr6"-)hv"혒z}lpxaES<E^|>,^f裗$^ݡyD		NS'^0_Aiݠ+
y,^[kN9N|0&uEu -$e%hLqA,GAt#<Qv·3/7f[F"?^%,C8bxAw'hͽk`CLqUՃ_?q%qI&jR<fR2I<礬uR@7XʰK)B-:~4}L/
{{_Y/S/Ԧ.гY:a QK+%5K6j}?9V0Y||@F=;eUBfgoyt~3^輋9@h%%ݍ?vLW5[5!ٔPY L#2ѿ?Hj;Mw5NʘR>6/]~S}E*蹖=BAxoޢI+;M
U*Z%K=ox}Vx)*\^-Gy^#A,yy(ԢtƲZƜ;M[Ɔׂ2c6JNj)Ny)+w5W9w-ioR?Ǚ72L1
!fV@
g <!q*9`˭*	Va6do7pWA¢i0tҊѳI62N$"E<xȩT)s&&]z$S[zfF]$? %RI fX.<Qm*Hv?Y}T,BN/*%/$D^̳&=8g)aQa?)58}qcr,196Dt
b$BJ1С&P^73Lg\YBBIO'b=Wi!>;Ze+-o.a_))G!"KI֧qfN:](hUT[^6b͕|cǠv3uT:d #lY<+MW~t
IvƷ<	6b\-q/EHL-Xq$@Be:Rijy6e&TɸLG"$cyCg	UfغNբgFIA? #v}2Hfi6y5rLh{xUiNu	aЛ,őIMڥtq3z+Z;ӛ$^.F$:!^MU_D<)\7-+Q\<u{ a{򩏖;h]Lt{5f/a%h#J'i IVΕA!C1$Nx")Khq%,,m ,7yv΍3p4c94iwhi.v^s8|<"ہY[flzk7	1&E=N`feeGdމo#JHJdxR`g(';%>tXI#s4ݥp+ICsb'8lt =vh&)؇ԝU&ћlUa,X=%x86+`f63s|RVp	{5ҩH*ME:뎼xI䕗Wq	NtDj+.BҰ# gbnSRL]ˇ\ʰm/=K-Ӕ}#o4{[HBsvQhF	ǴG>c8ȓz--5\i"RL$$KxuDsRy}{ߍޡ
S5TDlzKt}g`,4VHac1.%z)BQwYv.+x[2AbYFFɯe$;efT<IۀKA';nfd4QDz$$#S3Ɇr,I)fFu'8$'X	fwp N\{n\<幃'=OBirAE64LIII&p+O3_,ϿL_dl!"hbj6'%%j<Tܜ[ -4LG%LVcN36j9 ~,Lg742436QY%1nvXQRer2!&H(Vk+?9C"~%HL>"L/Z4čV24,D,?CO\fS3`z0ݭO`Z]TSLAN465a4IA '[HSsC@QBB5̗j{4+Kt0mq;0}M;Q>FfX2ź %xVoV~_ql 014mj_uӤn4}^MVD@ڄLi44YҬI)]CIxʿc.$8ޖ(>9;?n\JJ"I˲JcIu	+锤'&6tQB"$8,Ji"R6%ŔT$]t6%MJ\xRV%MZZI$Sc)%'"(lb1-Zf9gE](GsZVS$(q_LEE%,
*,Ӎ`ۈhDJ]ӵP;R >
`Z`װL0SZc TdPBձJf8p`"ET0J:1qY4r(|DaDQa\D.\@fͽݾ8%"]v.bSBĦ(bAezF-'H'gAיּyԫ-}_9fwÇ^WC`tƶR"kmqש.+^57
m~17_Fc5vs{{V7=)8Fφz@XW}|6E[{myonlT~$0:k{ݧ^.:	{3U(5(I4rΊ92RN0KnLSEr+X)Vb;_>{NKlwxZ$e6!9AT6뮌1dO.g_|Ȣbs;aU8%-wԸqVj8'5(xІB"?ٓٝj6|D5a貐 5BXN`dMY#v=c|xv]7<ï=gC7YnO_}v='9|Y	M@< 6Bu796R=@:}|Ίv]?+ևq1L׉La@:imEk@.nxXMb^;XA;qyT wr^gn?"ogҝlu*r$ؼ}ֺזIK;TӨ%zMˇв'	pP[OqwP_[J~g=gߢ/F9HxROAi4nrИ i1M$xj)(nU@-	rУ@gv)/e}3?+/6S8
JVFDYyhUdz  mU$Ƣ,èfxN`ey0,9;ë*%BB+Hf+-6NUbP2-+Z	͜>-=l`z P.Oq0t}.) E e@1Ux!<nףB7e{+/UnY]6Y/.ZL-lFP|,Gfe<⟏
x#]qR_lޒ>*DP<aDQvOkF.gV(W0F6Kz2]Nΐa$Jh%z&6]ovt.{#cp6:]vgG󙃰*T)sЊg0煥1*DQ>ol}o2w.dqr$n0'FlJ[2D'$Qa-ؕ*_{xb ǧne_yt0H $?6cd^to4scu @s8:f'h*G觔Qfh
˔8=*>4EZuL>&線Nrި\wRt") *m6[կ=&D`coH[8Nuϫ+<ȼ1axuMOAm%n"~phugF	L7㡙vY|hӢA\h$$MI4jfѫSF=3<KeC!F"EUJ*) DfĢ\ X6SF&$H¼CEW3uLE MbbVBI$R0+W$uDx9e;Ey˴rR)xVzDe{ȣi׹:{]Ώ]ҍͨ$\|Epo]yjfX&q/6W[+;r	4>3ͯ)'cXp0TE.^w>~V+6wF8Wc9Z)޲}0I@DKI]qVU80IEKZ-ѧe:_n5J\j8h5뾈Bߏ>x?طt7b[kybOڅz722xq1}~=_Wד(w2ė?CeZf]xOH+f?8A$vOUUEgX8ܒR
D)a)"VMKUB?s_8&4Uo>3XEq<FE.EY91%*Y (!(J 
0(JRJc0BbAM%PyATE)RBMDS,
ħ8笌n =r/5(?;?,EhLѳ'Q1'6βf5B	 8"#@V63lq@oz[gʬ>P3gY9'1aIl8sic&o-ʙT-oizn G)ӜC cYys<,2PPe%M8T"ZPeFb ڏPׄxqafxulZ-?^{{Y<q{JKnސ«I}th:ot4HB&qI[t>,cg:6$CR+xUh}]rK;nǽ wԍ^g>N/G}! x+l%!\F13'T-cg=;At5oxx7\z.xhW*w^Mp\?ixxvCVy<Ƌ
ĝ 
E҉}ai^'=G`[0o3p}ؕjLe?$Ӊ/<&9lTnWFoK&J=1m|EǠƧxZ{$bBO8/ӫi]z~rx51JCA@fE1"0"ٝF!"^Ȉڽcw&"!JKv.kaƌH`G7"j@'-ERVKEOW*ն
V
3dsU2ZU>^f %s	i1;>-rr0ifsgcYt&t/eau{{DxV[oG}_1@z7TUME	BY-Miޜ@8R 8Q'Nx_N*`;9;Ʈ!+s,*!Ϛ%Q$VSTVa"Tbf3LCX˒ p&UN
˳ M3T-e
93Ϋ<K#n2cLʤG>?e:ch$aFƄ#p"2'*UY")uGU)h' CantCQitn΀@Zorhұы FD~]pDX})5 öI_gϞrM4]rH%]7\d%Ll2wd`&`PyaY䷹1sNi=[wEʫ+k߱	(x֖i'@,yJhf6-p}&ѫq6GU<]gPi&_rë^5,qRdi~U꧵AEddӉI`FhVJOtǁÈ%XyPh1
.s-
|*pS+]g
k4YtL5!:5CcSg:\%@c}w˻=+E a>YHrx-|$\.@\vlE@Eo㇭XhH$mފd=TBΑۇ( H 	,7gS<5r~~7_Y!N 휟s^^
~_x&WP	6h|w<o'{}ѯ""2^M\ffhY1ЎdC]s>u<G]5׉$օV~Cr!-u{d,Sɠ94;ܬ>w!&:z{a5h8^*v's%JGW( z-$UVÃ.a&(z`f-úlXIּ0ᮮٍ%Tswx~ZHfF2k$Mc%nD;OB݄6f^V.?'D=o6ᶘiHf+kDx-6LSVv>_ !x}PkAeޭ,-&E&x!lnv~B$HS8LF%* hnLe'N|>ޏco{0R:Vi'-ה3B8ag}L<G-JXˠQ[Dc2*HU2nB
w4_K(ĜJ4"ߎ@n:3m)ciwrɖGf[On}{\?z~zY>g [{^mT[zc]MN|i	h(cʌf(;.(/rsc)f.VRg*!ԅкfW5s:o6&8֛ N\_j{K$%hLOd&š_+LxuRkA%M7L/"ίhE*RU7!bvvTQ,!PQ
Z*^G/z_0ݓh=ｏ7Y
j!ẍ́
"'5Ԭ\;f)y	a2)"QC-P	#\(-sJHM"1l(jF;x*rjVPY֋ջӣLuv/D"$EMHHqY #v#JU#I7`&A!!//%q=IFtpo2Ub7wWֺ7;ǎyxq֝wu?ؾ۝޽ݕ'!6ggzjvaL?~Ɛ'+htl4u?a΍U,Pf1DP@DV\GD>W9W)$fTy,K/gJOVU^Mq$m79֑X0C`*s?cR)|-2鑣eAYc\_oq%x]kAiY%={(cvgVK *V̆Hv7b!
+-Dk(؃VO05^zM^=;|1$CQhB0hȢ
T-*%Bx	CbԤ,!f ْLdI*b,OeآUhb**JU5uYǆi5	͟ť3Xl0TP
r|!9< Xg 0ۂ010Z0o{]$0v%y%($#akܸovb14N/VԓkfgTOa5ri1yn_l!x5-o?'sO}GiJQvj2mu;ǝI6
#sK9]4EUfKO5z4mx"$YFνhemb
?M#x]kSAInr)]B:"޹ F՝ϐ.$eM](UIvƝ;vՅV}sÉLa!PQEq. gChE 0b۷md!Ĝ:n&.|7򰯟EȲH#n[ԅێ	],BgK<J\đCX	s \WB0r񜸚xa0ʄ\/d>҃GVTZ./r;nV1n͏yyӮj~3YYޚ*&d?.U[s+&̀6]¼f!& Y#ǭ'S;^56K'\czLILa㠸kO'/#+FSVU\2?R@Ki>>}X-W9_3|ME{gp{)fxktree face032651efc854aa3c87c029590c643e4737f3
parent e4e3eee0ffca3426e9a28faea97df05276abf60b
parent 5d3140a6b1b41b9007e409af24e1fcdac1fe60a3?1273005H1273005 +0800

!5298/@lite ndk打桩调试

Created-by: oh_hw_llm
Commit-by: oh_hw_llm[.build/issues/4563?ref=&did=4073130#tid-4073130.lite ndk打桩调试1lite ndk打桩调试VHR轻量NDK 打桩so生成到sysroot_lite目录下，
1.不涉及新增C库接口；=d- [ ] 不兼容
  - [ ] 否

轻量NDK独立到sysroot_lite目录，不影响standard生态兼容性$.26不涉及新增L0 用例g=- [ $x&3，
轻量NDK 打桩so生成，不涉及新增接叓25298` #xtree a9ae121f2ad6abf54bf3bda9969cee89a787a016
parent 07ef3fb4dfdaed8d9d277ab379f24e9e3d8719c3
parent ea3a0b77954e22f0ec04c5e3a9054191f3bafc98>71930943G71930943 +0800

!4562 merge text-style-font-edging into master

feat(api-c): add font edging text style attribute

Created-by: %liufei225
Commit-by: liufei225;liufei[)/issues/3568.U1  graphic_graphic_2d/pull/27938T6S是否经过评审$ / ] 否H@x  +-sig/interface_native_header/pull/3077
- [ &14562|ש"x+tree 2226a034c5d85eae556b92ee4886a7a3eacfbf6e
parent 9dc8e9646581332c9c8eb3e68ed5b11cebfe1db9
parent 8e3f40bff8c06c65a8267a3112f7c79baac972bf>81182921G81182921 +0800

!5303 merge chai into master

公共能力组c-api拆分：xcomponent,embeddedcomponent,无障碍

Created-by: "pengzhiwen3
Commit-by: pengzhiwen3r41164.C公共能力组c-api拆分：xcomponent,embeddedcomponent,无障碍b1C公共能力组c-api拆分：xcomponent,embeddedcomponent,无障碍7YY$YY- 
- [YVYYjhYE  
- [YW5303VmՑ!:xtree b739eea395d07738c6aad5bdfa78d6da4e1717b2
parent 0b013fd396721f8d83f484118620952a662aa338
parent 4ecfc9dee34935869b0bb4f05e35ca392f2dfd62>67608349G67608349 +0800

!4468 merge ndk_note_0104 into master

fix interface notes

Created-by: wangqiguang5
Commit-by: wangqiguang5
Me883430/
fix interface notes1
fix interface notes7xNxn$x] 是否更新json文件
- [x$xVx,m"
不涉及

- [ ] 不兼容
  - [ 5
不涉及
4 Ex^$ (&-sig/interface_native_header/pull/297614468,#ex1tree 1cb0a2f3be35984c1ad57081eb808841bdfa9724
parent 017de81b96e695b038a1006fb0f4e86f35e44ff5
parent 2e381bde38714d1743974cf8d568affe60af5080>70625047G70625047 +0800

!4604 merge sync_0209 into master

add version

Created-by: qq_44643155
Commit-by: qq_44643155
Merged-by: openha34241/J步interface_sdk_c和interface_native_header中AIPP接口版本的注释2J步interface_sdk_c和interface_native_header中AIPP接口版本的注释7xNxn$x] 是否更新json文件
- [x$xVx,px] 不兼容
  - [ hxjxW4604AO@x+tree d40acdf351e916d52238a42bbf86d7a76f487aaa
parent 191f25d3cb2ea8dc40fc6502be481b62178c3517
parent abe6a1e34f4ba89ddd1eb9cac779defd8d82d05d>80759486G80759486 +0800

!5283 merge cqy/fix into master

API 一致性整改

Created-by: chen-qiao-yi
Commit-by: chen-qiao-yi
Merged-b28 4102?ref=&did=4065804#tid-406580/
API 一致性整改w1Z
按照扫描结果进行 API 注释内容（主要是错误码部分）的一致性整改 z=5283xNIn s
Uh>1J`U}Tݽ <JݤZ%W
#Bԁi]207M̜vBzeVNjSBkm8ȌGd~\C>0ZI1>7j(E1iG=\nyc3!<B*"u$Xz/W@;
KM._ƕrxm0 {N>Ph>QaxLc-P0iTN@,7R=RD^{#VˈZgHlmupCmVoSeYuY!7]/}mqL+$7w˘pw,
P- [ݧ^yyYr(7;cZxT_oV}Nyi5jSR&UTUQtm_WmtI$H$iRu*aMZha<+H{;ϵM!YQBV<Jq)TQA(D L0B"U!+Hc"'K"%IeWDKy9,2s(!H"
ar$㸄 IÄFId}uYW_놉3+*0,Ƣbx%'q`մfj(Lcs4ƚn5 }Jsk&'Gwi94 71:+A++Idɜo} 8-,`K1nK6[ ܿZBbZҶ3\(4a64Ab@
^JHZ!Ar)I)_nňέyEkOŋ~hZxMN//\wHe'*+ȹ=z쓌#[Ǥv''Yx%HOI0w}{#ZQ_O^[^s 1Qlf?ZNNxr5 H:o^TdB*ZJuz5]}xo0sIy@dѦe[-|jm29/>>i&OR+yNCxY֊xbp	:Rp@TL3DZ\/|d6 Y-TScjt[ʌgiZ:j([ri)tg]r7Si{N3
2x9P&JxI\jDIeJU em'+{*ះoIvxeJA l@p2{,D
"3͸),-D$XI@@	X>CEGP!؝q8I>>V:#6(@3CZRo'
GHG	7u@JEgZ@1nj@ɩCfRIA,η	
$Tvg1EH3EHfr0M'Ӌ8ɽZrlu6zi|C6V!+Ǩ[h-6,^( P@.}q.xMN?K@%"FprMڻ&ߥ"g.wFI3h*ZA;g(N_m/`

{ך>=!4@`e	QsAJ@:f)pzh{5Y`2!` &%ئ0L)Zpcزb30ÌPX0_ aFY܉>÷\_<it}yOؾp8j5@XT*%6Ģh!$s%Tr{ft:x/ź^Qբ[ZկԴu	<^yJ>
7&y\xT_oV}SL	6Kvҗj4O4!f iHY4mRu
aMVHa<+CUվ׿{9sBȒ(,R*8=!D"DdUe"󒮠(B*41*ϱM*HC
1aB@*dԜ4-`fQ&Zi3jil*l8	тnNXA%.deh5m8/AYU; 6293L.U-8';mSt{A6G᪖B4JV~!0K@8A*uҨʭ@'̶\GnY03`nnx.^;Vov1Lqb$2'2]#+(nûq=bqJ\x磢,Ksc&Õ'qp/y7z ?5<Nʗ2üsvORfVm݊mүwvGZ߶);^s߬{Qo.uBȃs})_|IW'GRz\M>>XO){zB򟴹̓K߃;	OĘJ5;^JxD#^ut{aqs"<m[߾ῩOZ.Hont<*OR,|?Όڥg NvMS\4DᾷܟޟQU*n!6nmR-\5Z;
SisFTkMݦea}@*g6=yK*nռm,OݬxYl.DEIle\ ssc_ufyQxkQZJ<-TPHi޼wgY؝N j ( H!HIt6iSfF.ݹ+i:B+4CRӌyiLq
q2RDCK:⡢Lgq_axPWE7	c+qOPqrB4(%dA&B3iBhShi:bBqF!`z-(QF&E7>Ϭ[Fi0[qlrkxw_͵bUpw~|l9{\g׋ok2O`~t/O`ds绫Cǳav\32nOM]뽥vΘԁj?챱 x?K@pZTԫH/?L"IH{s-)I7\,R. ïԯa:8=yyS,F$Nq%
[cKlJ HdqemS%}@"Bŀń}
qKڜpk١pF{͟64k.ꨭQ;
|/(t$􂞯OQKBԕq#Z(i\Ҫcub7ݼ9M'm6IE>h=ۅkWa>O.DGitNK#æq{dx+DQś1~t,\J~?ޝ(%,vLodeM~vdo%VB3JXXYSs:u:ڷ2H`(0"(<+CmȪN0J)ܠ@.B A@_^p)+nBfL^.-he'%U|{m*/S_f~=>)=E+Fv؅BHQӊɥ9e'!&&Ց?*!S	:*KT\ӑο;ʌL$ڳr+Yo>NqϹnR?/j7{qoe=ez]K*p],79nxUJ1E"~]+Ex3%b᲍[(bo;, h?`L+X!*jaw.iUR$j
H;
@`bg=XH]"ڇ4qVrJԦ(,

5BE	,Ү.V(q5XR&.l/E!!igtC55wd|=b'
'|z$&}6vsv4g6Wm^jfSf8۾Ϳr>Ka|x=kQFɲKFbf06QtAΝw23[l`	1rl@?_Yg4YگK ̽2N")kSk%Lp+U4%HB)RRОS(I֧1;+F3-uI] q;EVToA|BZTiCyAYAGy	JdDL(j-}]UCwn/MCۆj$uKp5$Q<GCWf+aËYUܺڽ~d2{w闏8[vwn%|7Oߠٳ'oߎp>/YoKDҿ x}JAIhpSYB&_dFۓFtAݸ" %qtDDP+d8[!=>ι'MH7hs
<2QJS]PCo1504zH(P&Fy^%R߯Y.T橓h/hBz`jo$Ϩ4II$a5D@b`aU@Ќ$^[﷓wIT!4/jo!$KѨlnR*''{{?yJ1/ǳo:kmԃa(IoC7:^渔Vĭ9kx=K@ I\z_(PA)" INmvA,-)N
N:pv4_0qr{yyޏЁ_R
Heq
i1	aAi´r\OfϦSRy`ͱ""2n1˥X
.
Df?<
zbGyĂQ"aHdh{ZVs~C[/K#LBiS`[dVWW2p8Rr!or|%Snu[~21AӘ^$zٻ:z?;|jd2k`A4jEH@|G'u=t{v٩$vɷ`n`3N!~xkAǹNH733;AHc#XFbf]pw=F q!l"4b!Z&w.^y_}`V ,V*nP)&uԆ(D9oJk?4qᄠX0%%L[1V~&"VΕ!Øj-8(߻s_1ƞ(47+k<iۺ3UPzɧXߛ~[rmj~<MmyEz\yӹ}k{WQfJj
Q7/al.ϖL%0꣺Tjg),MieW!UUPWQ!p(I dHI)63Bjer+#o86޽<={､)w!BxEkAd0+KRtͷ3I$lb)Bcv.MRbc JEI
_BW{{?m_"RL9 a͘Lj s!Me)%v=U(u4ׂ͝ uP4ac\*S('sȸhj冩Tܥ+Xe|@rs&h5z
Bb-G;$HRh|k5lodһVzX}n__>:;_;Ӄz}L,%Gkt\߮sյ룓W/7Oo6wujork^("Iixĭ R"B\Ek>gO~"FtuP*p.TF/O4fp&T hxmKkQI.ƥ)m2gd%RLF3ojunteI@tڟL$0ڕ}x;X_T.!!b
P%PyhbB¦)Uph00

TT-|j51@fGa qkj8 :8	Gܺ' q0[G͓Gaeo|tx4/`oWSiLEE85zu{=[$2ݕilfIW'ߍ߶EWrdZv?м|n2|&GN}}g'2<v.*/_NW:3Nҗeiǈ}Hb2%7'	׊ @iܸ8;_:֟Ϻ+n߯ol)叽>?xM?kAKnlvk"9;seIv;4b HDvACX|>s\l|; < 'J8%4X-B )vD,e
*"XµV^9TP/9oJ$1/aHQЄRϿ=ٻ8~H!CJ\C7\5ŵ#tYv`#<XTԡݶ.&y5b`?4_|˭AO~{Tj=\~>[}ziz6'QpqHxޏqO|VEzvmshmWq[Ü2.Mqx<JѣTe<A(3Te)}MDKxU1K1ikRg\Tp`7$wWqХuP8_Q:Z {<NƱB9ka@Y Hx
F@"8Jf$BEkSnJFp66p_e*IaBk<KPwӣ^J`63%s!͊XF+BN3/+MVYV7_ϗdү"]{O/,@*RCy֍q0_6L+ѽFA{k/k;m!g7cq1}x}K@D-"X6,ݙd&QDⴳD&3/KM$Xn,
ܕw͂\oF/͗|ާxOQ J]M] 4SWF1+3H
$$ט*1(P]HR#H\\;DaBBq!ϓI§
F$N|#g׆&fpLQJFWڇ,Z^_Q"sdz6lͣCHMbg%m6ciNjؔ3b͍}&6-9p`2dDMٹӤ{[gm Ş@nIY$sz]şgko2k@5KMJR۫WߔYaWozjExM?N0psUul'v
C.gszUVnѣ03r@~{?&P#RUJ@ 1t'TPcOt# qH5qb UVsIA$׊b#fbK>mJ4т%Ln?Jfc=G5c_aܴUU͊P5!!ny7tO]]R6de2{nlަt3c2+/<n3x؍F>r^C!Tj5^u_7C&˰JsNxT]OP8K]јpe!8
kg%r7X#"2G0)(Ӎc93\zӜ>y}cAx!D #ьʈSycEF-h8 
-qD##
'q-IHP:s "ϳ,Ĉs,VD1JIg´ƄlMczLӂ㺣{4EYI7i)uǁI14 .]ap?
w;3EWpn5dAف-ezL$_iSC!r0UKO8ih_}hIHQTDT*\T#WS3NwiNe9ielꄍfV^3rOZ(Kӂ )Y럺&vPhܺxYtknxe 
۝j'=qqv;`grmx95ߣں{ͪ_	̣y$\N_d$)kmk?Cn'xa<+lMjFntM
Y
҇o3B_8b6؟Zno)x?);O)C) B$4N#Zڌ$TYv_+WH\eC&-bVKCޒf.vI3Ud:6ـ g$j+ZV6gR_%\Z;d)U8fkcjomilmxeJPI:H/proGC@D?$qҥC%&R) >/P@g(.ÏsW5ߚgy:aj*2ƀ. cAcBࡊG  0B(N=*#

Bl`ڗ
,ʚ@rhu0K(Pq1|x<}p`B)MӼuC!)BTOvZM8ʾ/G^~UWt?Vn|љO|;EsWu|w)1qGx5KQ5	Sؤ	DpsߛaAR,4.wݝ	V֚S(	*&M
,OJ&;eL8\9fVQ:
rn4
Yȕ6	rhm=F1CXłd$ؽ?b(VCT\!	#e$8;P@~sZx:^N?nA%=\B&xn̔; Pk֚FH!4w#tngO^_x?DαXN]9/'çw?>^d߷z{ۮR-'9)ONi,W2i-VĔT뫫U,pG<Px=1K1GD\rIκHq r`[^QqMQ$ .&8.Կ=^7
bK8CHK1+Y˘Ecm+.LL#iH7ZshHReχ2,*4̆Z!kLD`DY_Gs8?Y$`R`$5법>q#me WAw~_w T#Sͩyd	`?f?fK6jFP.ɃX)nڦU"$DY9sVas839>OZp9B5,ƫz`}yk7ߝ}(fxkAILڣɱ JnQ-(Kݝ&nj5UXG
TыAjCMSSJxz}}}cpUj"8UpA,SjS`"թ @&C
He,SMC2e/ʙYD4SLu]Q	T5+}/uŹAFa*BTW/7*I[57Qԃ~mc4`yc\gάΨ!Q4YV`OhgT4(OO_MȀGWkf]t|"8=3ZRtfr>E%+_k;v1ӤۍWõBUڼtGOo)(q6w|78f6I/ϓh).mf8/ffŹ<?
J~BlGrA+)xxOkA6Q(L	z(؋~PD.$ٰ{ŀXGD{Ǡbj~7J=sxy{07[Sc,aRT"l ",JŔAjL$95HcA@#	?<TpE-RTb&mo-<>_nHx@}`Ǥ,7)yrZJ:26Izp4`95"7!׮¶5	+88*uܞ3IϽaVw-pg٪ɚďEgi|[ޖV9ꗻ;/7@:6j<Q&{xs>/ݽ5LE\rjl
pe
.WP_`ˉ:2wyy[m(
].x5J@ɮ(;0ֲx'c# vvb;wrg&)Ųϡ`X	ւQ9s>'ۮ%΂K^.%e1DKe0,QĮCK+&'csk^hE$4cBL%D[, юYV`lOk%yMxPr57)(^RblR記PU`6k~֗C<,!e~e|5>tu7=cF!?x}kAyϗ HJ,ٻJ("J
Z5lVUQJ`T b%X⿐}yVFb@ts8_G,T%"a1N2*eƓHTD As!B	YtuyEt12&RmZ1jJy)p@JL1aЀ0jTF5dBZXtNAYbK?N/lir*J`oL#,"Iz#.
APx^/iwt?CΟ<K^_TBQb9]=LmǦvomYE,ܘ'ÉɃI P"*gÿڏ4'?9x}odX/vi^wo3]ۮ}}z6xh}M3C3qrioWo=P$9|gߥ#3xuOAƳw%_`	owgfwvbs{\J@Ȑ|RhPXXYDy}_?'_hP*(p)@BPRIT
{sBcpD8G,S"_ Y`͇6pEbSIP~oOa(6ݠsߋ<϶gA@5I<w%pV-d<נl{9GA{=<9쮚Bzh[3Y{Yӌ7.ji!w1#9wGbCթxpfRvsra{_NůQ-ɏzoLQʇ@If=6-~\~t_-u]r~7Z٘z;5mjEfg|ZM+!x=o@p%M	1!ȝg$P	RuD;d
 hh цE,%mbB`;WI	3<O=dAU4A5	9M9j CUV!v9TSXґH*@uJ:
P#/j
D#T*NP F5%E
_7Go"@ p9I_]p٥T9oL(SÄ/%!
M:\*W<v`dP0ah%ߣwz\;^덿&~1Q?}Qr?|[4ވ`w3ћvH|!{6_3p]pOh}3Ro:pҠ_ƫ$6M/^ɬp;o2g3ڴilVkx儿[ggs,)liڲ X|Nfp oJ*xQ=kAr¢6X̡AP]SXDA-^1M,!wA`%M~5 3'XZ<<׽}1G$cĐzx^1fpD=s+C
#	=8b0 31=HC|!	ryF~ȣz$!8!?1ί(8ƮkY >HYe ťbRe3nY	Jd(Ybb:]{$=YY
UڂYKZh4g'!HY=TϷhgd1!kzn~5|y˯YՀT?kpqƂǍ}yѰkMsl6OoK~qvOD:8)mVqfCCt΅\vTJfi$PGݝ?_JR\SR_n9F!#xUkAƹ.b@u
"
(1;nSS DQ)D"
VQH+v}7yxӫǗ #	xkɈP^ȃ(qz*$G(J	>!P<A|=Ok"U)&t` J'0-h.=.q1ԅSLQ)~(cVB)z5-޾ZPy|fЁo6L|!5TFZtO%m}8ۍs7~Sb/>lTxmg㇣ɻ&ƯWW&+KݨZQ=mWg:A* i	{N.0\QDXݥaIb,"FjU|U-ٟ9vDݤ'P)q`ON%hx=hTAprzAIg"ژ~}P*쾝=*!1{+SFM,ئfEUAgL4 8䨤NIX0cE^Hю1N mU'*IP8a;]PZϵ*tW+aP KEJ(vnL3J.%Ƕ8guBӀ0X[CN!mVqOʖmFnH_ۦEA_R:1T~Ű|~Y.k7'ٹv458yǝkdxoxïo[߿lO>l4nw|ZJg+x}JA \FE8;EMv b>H۝xbav!wg^|g 5F4&ZI8DqEiE"PbA%GDc%ׁJ" D~Y#a	e1 !(4HڗYew_7ƿ78B;C)Lՙl&Mr78tݵDj1>yX@]M8KE|3QL
NV
Gg>6Zi!T;u2?_<\_Y[s5 oVi27lޖg'kR:-SVX(K1˥}/xeJAFFkQf(b&a3?w$ȺELc)[,-lL< X۩B8ZK.
5I֎ahA' 0Ɂ
˚FzQ	"0eV`$d^d寏N$ ȣE. בǹ3\X6ʁk5}ǟIa-)VH''CtP#Z+B^gow~yy	Uj;|'C,IoTM%3]n-,ݧ`Jl>6xmJA9 \@UFcv۽E b!*{{ _$P B  ؈	X
^(L1;#	2ј*Ũ4J"8ž]]5$PAb_J#rsPnN 1BxSA  vuFpķEhٚ)J4FД6Z}cۅFwG%Y˔^YVBR	͟<Z[~{x{G\]3XShSݰdfYbr792m%>.Wkn7VoYPq>i'(ZJ@)VR;	`H Ix}1k[1cSNEbؒ%-!IWy2rHx2@~@iv֭Y2fT^Z9bNrZfL<eRs\Hy2ҕbYn+tRyRŁQZAitJƭfUTKpP$h$y*TU=3NIUI!)҅K~tpiC- ,¿kMw7eHSيzg2uvך׿bmzt_yRNaB都vG+)x.6%hѭƟ<k<Bo74ƔhM9f0xmJAǉ1[{kavor$w	{HYY|`%XvA}7QYnYaFJq,E$)V4.ݐZP#
Sץ~@|I<B<qD%ei,Pҟ^J 8|ap	p\}1:`}毧50q=jk4*(AIVQ
ydڹtBM9=@'zLSNgIiIҜiS+AVA;Q/QߜMd_J|bk]!MU˧2돛]w|?ΒEz^)ke*+Z_Qx}=KADXJ-ZB$	6xVa--.Ŀ20LV>m:k	ii%RSVЕA^`G}☐eg@s
8IŜ/3iP>+"qXz-T
VHQ޲J%&8$ԣV_wrw2=0Z6In;7/yE
?rBzh9*t!2GzP ~>IFAx5P1kAv/H6`҈EF.9ofvngDHa@H	3;\V/M*!`	
II!&?":Ur[{{|_fx )-h$$Tg""i8_ )DC?TL@YSi&iRq%C$"2T!I|@2D
e!{O\Ws Z!ƞ6*]iB(yR ]Wz&[o)؈ޗIg]c{]AX6t^|-N
ddmј4<߂Ѥ<>:u<0Ϝuw3_-/N6t<Mozu:6κI*Ҷ7ڨn9/VEvqjfbQ޶^C_`xuNJP %-*\IDq`)VvERJDЩ
PG88K_0u:ξjkA5VG\(DZIf!XPajˁCj<bLݴ3ɡG0ìD3)B6$yNkkɥ_B	! +"n8ۣa7oSry3nrw@j5k>WJbNnXÑYHY_dDF/ Ƨg+Me?"x5J1E]E`aied2"Hf]EV[-ƟtÈ.ܻrZ{D`Fr,u);;pʩL196JǈY(<Q(~*Xq&rI(s1$<L$4߷1BКfE]T5zBf@zꏧ@2ϳ7f	t"%o[k-|hC[=?*,=[zgU5ªf}բS{)]tru0}\?\}ݦ|DY:Qr>	z~xx5=JA@ID,,7%	$XDev書BveI	R^ʣx`{}JD"j,T>8F0e9U8lR i*XjSF3҆q6
~s"(! VKMHJTjy8t>CrJ 8bݨ9rw?v0'Wøl'^ҍI_wz-RV'2sA,TLfgy,ӬuS6G}}%XK"x5=kApn9&b،`J+Hfݍsx& H8XւL|o`'~<ÏzޭZ= ΝB^0K\:K .T<c2=DYpf4xtN'%W;	SBe,I-ua/{Z^&5EQHAޏ*J!]fTI@_n&6IUu:ܘ!@`ŇoGώ߼>~?lz&KUާhk:MV	Ǐ#}m5fYUsp,>9uLVREdcOrm+VSQr2eTSi34J.D<^;w=|t;:}B4>h'JQ#x]N?K@%-p[pw]A.tH1NEj8( TA\ńv+X,.Nw17A4p4@߄˰1
(g$Q	4SqXFQH)SDHf9"1ZPh΁ƗY*'I2xlXְe0ucH"p=&HL[nRH*]q:~M޿FJU@5F?[qHϺΚG=FK7gq62~|=wǓ:,WVP,+[exuJAIsDEݹE!S_	!+JSHBXMQ!>Xoa㜏/˧I;.&$A1f7FCF@-:01yma`wE̯ϬAi	VYnͼIm)>m	JjkEBK,dnADF;9J F(d/s6lpP5߰
6FNHI+l,<WcUVBמfIzSZIffǿ yaxMM+DQǛ$GY!t{=w+,llLqc;GY ݒ$dK`ʊeznz/zm
	xB0nrГDsIzFh}:P#@'E;x .c/!bDDy"\q<h"{v<՝9UuiW	W.BC!uFbNvl	8NluBPڎ%fk߯:OǷ땥\V]3VsDk:'owͦxLNx7fzlYV|veYT77w)|\MagZU&\r͗z/Ghy:,u~	@HQlkߌ6!zxEkAp&ZP
 E3ٙB7`	T/!eD(\DhQ</01}x2= .%㘄40,$j\3 *9MB@#"9c 4(.KM	țYrP: J!DZH7Tۻ$HQ#!5V rIp몕A8n@]QI VYj$vf[=y97h]?rr	=΍?}vo:GQ0<荞`]mrgڙ]E/6_bE|hpk&6
< IW:{_+$vk"⭜kOܶ,OiΟnvc0Ev.P_Dz
#_xMkPi@.#]J{s!(
nJ7q5܏sAԛ"mk;[ǅH]i/]	3\;yλ8ǭIk- V_<	0ǔ\eH	wel[Js@)בg@IqQp]W"1+	fR]9kgu	E؊@wX8KNgӌjXa쿞:يNvx/cHh/[K=XHS֐DQ0	
OW!Z_Uy9m;ɋjs=,ވD×rUL׭?GO_^ADRFG}b|PG7+_[<6Ѕb]}(QsbtƽѮ_FeT<g.}@xMJA," Vڬ`';3+H
,fv&"1BT^ARK*#A!LVv66n!bw.әq9ZeDjLȈ$H$@h0j7eNa-9 FsЎjJ9s//s
T`0FD tR#
MغY@Izۜ"Q`<\t	~[c\j٢9\V9е
.U,BHy\tP\κy2wˬ}7>_a~N7
t4pP򦑧OWvr#~xOk@ piâ?ADvf_"WAͼlsHR(V
eRуXD[PP7ЃWozW0Kޏ^|\ $wa+}%Ph9.ۋ*(C A3++hVU܃
o=| t#=.Xz$8NIQ.`cn1JB4QŶFYԏ >h/֓TbwB{. z0fj5~5z/or?:<ߎw||X2qƜ?v&maxlxl|7?_`4خr]9j(&ol['GmQ~a5ٱaZef6\jܰS=xkAٻaHlD;?DRX0xwMWi#b$B+zXI4). xxޛߏ f.N
&hHPNp.gJjs8u̦@A<Fi#XfeSe4MsSkє+`I3FI)٭K$a)eq&3	iY8|phyqpi+W/_|

|Yf;ZhZEKGtaJs(]T}}ۈ[ڭ݁rTvً'-`=5ݘDŮhB7_.9|/`#7	O"~Fٚaz>3Թ!\xJAo֮hh!Wrc 6EXXh' B|#hai9|pvve* 	 LR )QcSJ|.dXk4X,U6̂QD$B1e߾!BI$h{@h,dKBq/+;?b(&^7>_lR?_J~QW#wv޾mn:Qx=njZlltbւK|I)-o\j[ᢁ>V]u-o2鞼Ԫ;O9w2V3B!C"z// Fx]KAٻfv0*q޷3{;b
be%"3s$. hl4QS=HT]("Bxtt,$U)gqȀ݀}cƘK |E9)pKV~J(؃<i1 tD-QcIKq@\wG5(㼦@G
a8lZԗӣHFv*8k~ػks*DGdeVV>&źnVuO΢9YJۋi?d7Oݴݸ96ZxDEl}j6?}L3ƐMMEh]osy}m\g`9j?tMx]=K@iZZD']"\lREr-H)1/H J=
"b&T]nniwp0x=<Y0v6Fc0L)Q\!P.")6D뉋" $ƈ0! fb>
t ?|,D bф<P e|y84 . P8G	fi9|=MUo}empK/nt6u;,MFGG;㺶\xɹPW2[jDFH]Z({sڍ1eg xKAY(XҌ?8vvvggTF,mbf\C@DdD-DBA#VC,`^xwa=  !P39$D=MRX3~\R9Dp)LS,+3,S4n}*80ה5;).&{OS}a1~ߣnXF"̲U fBYRdQAъ\Z+.-/.Voɉ5:W/Qޑ!'-8c`LNFz}_LoN^SY7y[xoZ[%K˷$<}=j_vZ[])˲P2Gyʫc~6=J@!x=KQ,X&(ZundwWeV*b 6&H"ٝUҤIegs^8yS,L LBD8F(#n2<PHʁ
C&Y$XB.E<"˩`~y{
x9F{|7p]gv?Ǎ
I	Vaިe당)TI[s۾>tϷ~n߯lh_:յjn	E.kj
tHjxm#{O}7yeIO.;7O{EC٣Λa^=df:mMdk|e k:s's+FY_]x`r/SGx}JA EEFcH13;B$[4bSG'6V
iK[bDt\pZhAc50)BJ EBJSPe0$EłGT0KbgPQ@C\P1f+%*&WҳRɐAooq,$go$`3Ħe[GUD`a30響=^Ott;]NOGfܿZhKaU5P'I%W~zú6W^bЭv<>n/W}iOs_
xUkAǹF-R`GffggLB$2;`o MJH j[S X[XX{|=o|VJ9h˄6VSRFXyp\0˨̘%ɘ#.J*%AzڜXKбLRnu;jrP2í+7ÃKD$x	N(#IQyl6=PY'CQ)6m`_=;I[(߇g{4ϒ핺,0÷4U[-;i&Ym_%I4p\/*L`~^Nϟ;}~C2ǽh%^]he(L p&l gܽ8U{KWc2aci'sQ!0xkAaA;ˑ@Rșo#!Y,af%r	"&S尳X/dJpQSϧ6zƦX{8Kf<&i &NAD4) " ZŭVڸHɕNEsXz#eSp(av/Er!6wkyXϑfK^9!ry[:}dӻћӃrYy|2 W@42m2Yq/!F#~D@Er.sBV%k9$ZFw*w>{"#eLVCz5K|v?h!·h.&gj LޮUקPx];JQ'Aب̝"ErĄ01j
RZ,m	 >߁,Y4j+-*2+5JAT
uG4G4S<XN!GѠ¯/MF\4VLm:_Ix>xɺW
Vg[?H(v9ʬ?Ӛ #̈́ pl!Ȩ_Wub8_yz9ygl/^âG+/muFR)[~
Sg/wiXezx5JA1"vvc-U"!;qݍMMA;c#C
qSZ;39"Be#uJ:hcD烖c'-cZPF&=fD\*atTZk\\pa/^9P-
ou"]tFȲ'A&hGMl춳юiMt}yӖWL۬U7I9#.Ю5lSR$.~1c!(.٠7T3՝oC1ng!,xukAƹeVbDp83ZyG4AP!ƹwt1\I`E\!A-,4E0`e;Dm-^7׹s 	4QJ&:Ӿb;8*TDL"Z&J'8	50g2>T"\scPRƃcw_\9~~ϊpq̇TblNʡ jP;KUt-v%@*E?k\0hwcRV/4gF2^}>CP?ko&>Xp?v\Gt:R-{u`t=+ݶ2LaE ݗ-)2.=O;4J\Ճ=[Oޝ9zrv~V7jv_7Z7Tx]JAIbF 4?3dMB<Xm}_."X⼟ȮD* tlJ۔ Ƥ
BRjLJ#O^)y4$#}!Ϥ%*f3TIqPȕۿkn"]0!JN;,kqWh{,6>9vXU{LyI#˨cO6]Qn`x\_7O?b~:6\foc"jxPMk@%MEE\QhADd&3m+V7"a2s#cU,؊<qEJA\h
 7]"Qpps=֭@-#\p4s,I#P婈*f:I%$)A:PB0P$8?iĨP Zrr@EQϯ Lo]
xxRNVei(+lƲ`<y߾l_4ovoftFm,lwӲI`A_N-|F*/^3{~ e,]_Lk>ˏqyyyzN;Sm\8'h%RA0+_3\qc}wCJf7:|1{xOեPklcy,'] xP.A Nd8Sfvfwf899J33KCv%T 88RDGpS		G7P!mWZe6rR"˵[(˶Q(|64RH)GF0\hje)	f1H`,-%85Vi7ƐAj" =ڟӰH%OK 漠 hި03RŻyt\ƕ}oT ZZe \Ybγ)+ ;p<3c4oÛhfe=:^N.$ӣkTrMm7(ӳm#>(mxm?JAH,&`c'cH_vgQE 237IXXanDm{{co+Dʝ6VLYX*pefh /N5Z(7YU!
b~MfZ8raqoEwfm%9Vc,vvfZĒv"8AZU{*Xԗ+aӼt2a4Ψ~H?KfGQ$z$~3٪7K
onqg}SSu/:k~UxMKQaqQIs&Յ#-6 ΜS!.\r!**5RJ+?o8ݸ}9<<OCJ <C'$mE"!3إ RJ@_ѐ a^ 9AGR $\P>qC6(c"8oΕw<FN~P5ઢ7-^V⨋qxj72ћ(N~}GwI4b	a:zQj4X_oQYѧ^d杞δyVW|\OϮ''_`jfz[-ƪ361ZUR\1;Un95U~;4\xuJAFIbKo76612LDDRٝٍMMEt"6bDm3[iq8:OG 16@ŴTpK[(WB{ģtAOQÙӬ]%)H'qV=Pø4.[Kc*&h?6'IB3W! v7uPriy}.`?C\"oڄxp~/{'<8<w*Ec0yg`n7tJaoL6$iۻONRK#YFM֋8yMd.;1,%Je>(6xeJAEٸ"`lj	-DFBffqq"	,,5m3ظV-Sk bʕ2Z"bR'6R2# QXebXDɄTIRt"'8T#&b3%.bBQT$e3X>}}<vv2{E;ٞKYs4Uy} 3P\ʻݎ`eX6~ynWF|/7:kn2x5=JA@0x)$03;3I!۝o6w#AH%I-bHa
f[}HU(	*iA՘2,0䨵
ӎ@1 c BZ;\(QM@[g/,3R3g9FkeA69ics1^)cjBȰ^:b1BRpi3-ǜ=ufx`z\ܿW|2_A0*?fwB9G[Niy3øYB4mjhgȒކϕyyDzU&t2x5ͽJ@`l	G؋/0Q]%	XqU}A-7gq/뒈9eL4
iQkgB*8LBga$`hLX5sJ9I(sE.ibEK8@PL-!v$ϐKEfxJ*J>eST=<v7Wugvҽ4mM 
vz-\~pۻ}y7zޓEa},x5;KAaD{+zN#Ewgw֕* TK;QY%O1s)ԙv
ki	26Ɗʚki-Xc5:HLJ-}y yA)$^Y0 E&.#mcnZ8c) %̟gGqǌIa/8yYx5U5j~}Z<~,oT5eO/<K+`TycNN(o2vL1Kg4u^a/
Of}"{i7+xU=KPFB 7(1EJ@\
nsṌyv{;K0vhT^E&4GT;kx' &h`%1gmBhVKB8( bXIbgcF͵_BXcE::mB1 uQYGen2|;A~vlv+yZS+ Sb؜
˫Q!KP*>ji1nT6+>	Ԫ?|
xu?kAƹDF2cA@$("3;--$iR\ lgH:!EA0*UK<<0 qKbΝ Ι6)r)s40T sKK3&So]4#"Lf&3+\f=t垦DP}rq_*MzƩ0\/<6Ÿl7rPMookTor@h5_{~V4 >ZTUtGf<,޵=TR9vCcS$a[4ؗf؞\}kדEi_},w׏#?_ӛß7 wupŎy_q5KNY.8|H<§G xJQř4pop*~ Hn$ζw4	+b[+rA\.]/Н(fUw3]Y8J ,N9m7KIXk'@r+$)9
Ko*ƙD)
By1&9tS4VEmŢS:f%Isz֔8`s	A艠J]p^^8
J㋻ɷ_Kn;<~:CS/Lq"4Y֫ۯVýQ>DKo浾}~F_F!yYsZ+
7_Gf~Eßz㇍Ï}ۃQߦT0%v4l!#xkAb	"X͚4};S-fofջ0;I!ID10g
ac#k6Nm>xབྷSOִ21I c"gGgD` !(˒1HedG 8SAK,	c6?~NE1"4O)Â18,9e)"ME DԄ٫vg~>RRTY~0%b6[yٙQ'^пѻK)fͯ\u\PT`Y!RK;|eo|9֏GGv;]<Da~xHVE6p׸E%%\w*W2,j 4`Ќ'-V3Vf[3?yV)nڝ{ML#0&5܋ YRxOJA%1" ؈Έ"B3swld&_"lk)~{8YV63abt">I<bYj2aU
MtZKDjSZx\eښTYe6[9T* ȥ=񄹸R%\?HOfc%YJrC1*\yOIY݁ES(F#_x?7&8lԁ:BzBߵ322.&?ꗿy|Xիyߢ?['Gyp>*f9"vQ'j=׃u:VwdVxu;K1uEHam%ca%J&'c#FYT+;,e;Ym,?`GPޏs=ps 0MBc*)S)Np$4TK	J8c&-.qBDLDp̅1,FeR\TR̤"u5	Ɛ%<ɄGٽoǰFsҮo4\ʊ0+\6X~ߊ$l,!԰ t{*t;j: õ|-ד|{unm5K_3nC}?bߩJ_UoxM;/Q3&"NDABۋ(~-vWfDe	'Y,Z~`fv)HtOy*գ cScԌ+hs2*l*ZZRWRKbɠ(P
^j-L<4ՐŘ1 B<>7f'S_DXb8Z(2TU
 *QU-qv+޻L._]㓃F~\~ݷO紹G׎AEPQm*ndu!3ƚ\Il*xϰe!d'݂کyk5bzz3vvW0x5MAE5ZA
46NUĀG94X6B BaAzzￛ7o"6 Xƞ#`fRP!w'FM6mbJG%䋺!DyZ[KBUǕǤ\@}&ǏC@{`uvQ,:p2/vNy͘_.OV0|=]ù~D[$txQ=kA}),jacc1Odfvfg&k,lDΝ{awBUE	HmJ`q?s=>Ć M.I%RgJbr'rV(AU]ALI1RF	I@P%0ֈ
'\.5Z8K9?D֎;.O%i*w>\1%Q4d4jL!yYD3]{6._)T7fwy̓GlEѸ2Zd,?U:G+g~\ޑ}(b($|>PJxƬS{._^7/:;\Ub	8&PǞ\XYcť%2\wb/§<6v6XjqHhn3ɵBx}kQ%u*_<n|46֩fߛw,z?جE0 ),CHwI!pQ@p3|f˗ٟޝ~U;AϝqpN*ނIAe3*@ДRC
Zb3j 2(s2^+E4ZԎ
fQf(~<o>CՔgJ.$O`ZAA^']X㭭rY=(/v[8R[UᒿGϯǣ'{DZхYdjcMp YbٛAC؞_	ڍu.u6o͓o÷ã/Ϊ,vVt3NBК" !/xQAkAea/&dfgwvFb{YTvggJ͊flXCEJPc'`fً'}܏4D2arw=&h 	hBD^	QO#	Hi$w|Y E]?zIP
!AeEcSLluuO!|sm|pRmb,	T$VOmv_gE@쪓{ ѕUHVkĤOF,a'/UL;詚At?o>;cu2_[Y1`hQ6g3֭LemU/&,>TGqJO,ߖR[bJZ?U. `ߝw]ʿ[|*BJONxmKAYM:HDvU;#a?1YZHS.y	N޻pحsu*x=^2yR*ep<{@$#)&$s"_2˲J5Y M(H0y8J1<p$8@r8+O`g'`RiLRu1%keG4)AXgAdMYZLPUcKQΪT)B`jb1}XUB/|~6rqb#=˦Qw<^zlX0Fw}ktیCW鴩_F]u&15V||g&%'xuQkAeA/HoCuTCVm?Bw/'ovͩA}ɥ0 .gTwq,
&,R0H !l N:\FT\r[׶]
[R.˘mKRG@a)ݳʅCir/%.NB S,\oM!ʰ~.7'v}qr_7Y<gI_,~n"T@Vųح7jzXD'GBu[(\Iu{߾IwF
։t#}ome{wY:}w?J]Tfkǵ^զ0[ڹ!~ռcoVv/Ew\+^>/t,S3,1-/lp
xm;JAE h``~5(c nA&=8+`]7`(4r9/6DdDD#֚*]WVIGVEPCrh#"jJ)Z	0$IzixdWURt2fXmww?؅8t~|Pin4[˰_lVM;mqu'rw+x.e|=yXP%RZP;o !a{%xQM+DQňts=RL+I=\c+)k`aC6aiee㖔磧ܩלC"dbEuH4 PC)ᠣXҠ
5WFNJ2J
&@	MLuUk-qĜ$at`IAqf49yFhA?g|`VPZdA\=ח8!ɵRٟG3fbQ,Ρ)WvIkcҌk=o#vs)?ZD/wC>@(?<HXZJ5nyBBPL!d/rN-Hxm=K$AEď6{{FYKnYFe;9Dc;8M4Qx(z*t O1G:bL^c񀇨-3h昄D98R|)WElF( 5D@T^NSj!Bw50SJI3oT.!Ԙ+[?Ik̨6lQJPI,&KI.[g_ͅ⢢\bߧ-vgpKm<(9]:t-czqY^;U߲ϭVp\qەŽtMYwQܨwuORxukA$0(\"Lv&)EKO̼MMHVAhA)Xz"h)^^'Gԃo,n-nP+Q%&jP(4Rp2
 }`Q,6P&:U2M$WFoRCEPnZw^hLHʽ) *91ӿ)H\PĵmB6ٮ;p<.:#(:dYO=Vݏ@mrˣǳ{>=#ݲ[Qԅ|X7Sނfuˣ7Vr(z?S>_썢8v%1|ìW	iE,!Ug'~Ï'g^?vTnʕu:nMcy^K#wK)ܗUJ!Ex=KA$"`m%dv/ Z[	w%`y&Z	Bp6]4?Rː?!?t0	"Ek XԌPDf=ǐה$pMW(PBHFZ;/Aym!>k$oոJ}T^ b\1m':SR/iC5ĝ4m8I1!dr7~>	f7b2z]^_&CB	BOu.Dۭe,+Yw6ݩ݀kbxBмZ:Y,mc\Ѓ,Z/ΟgxuJ1"҅#.I2.Dڅ W$7e3 *%BPq/_ghAg!;w8pZY/DTR`@ZlUY}c< ? )c!g)dFD?ybCxÕqe\R!5@F'SF7/IB Ng?
ȭҀKũ7BlrudmC*4*
(MӤk;WYsYpKL:9\m&w[=UvV[T%t"nW-w}$-xMʻJAa-l,l,gΞٝff,Ix!	^
4Eo`+8F~U˶NYT`]5PB^g)ϽwM۷:6Nz`vNS*R*d1j3)r2	 r4!>"(8^ J4ƟwFpsIN&85Z'axW8)=/ۃդ N(!G dxuNJAebV
ByLX{+	3{facL;a
Ol߰vAlt;18epP+c]scSƋvU 8
38fI+cFٜIE% BoR)EAu_`1C`r.Am臙G5q|hR_zRoݸhF8sARzdn67lɰkDLד.	$9^6J˲L7"M҆O[O>h)u7o.xuOKAILF(.!#@#fgfcjZ=$PܤO~ /^=Sb=<g3砢RI+IcAIbB`IDl"(*1
tCȰVq˕$`S%(-	ER&JZ"SR~,i{<&`h_	kH"iㆶ,3u0I3ط[ ldNoa;;6Fu\zk嵥2Z̿~Gӫ]/J;ܟdv<?'_@6a"JXiҼm}u}cAhS&lw!.X ~^J抗 nfxJAB	>S]]5mC@d?H]ݧt"((JDwVW9||ut-1 ebQ"	R̗m>s	7ѼCb;鹒)mJi 	'ԑZ }6Mײ)wk`ZicQ\7-x8 LFq`Q@|#Ƶ(KRzYNW~e[YsaxW/~~:BBPCxBUPmT3ޞ> |řTK$%圪\WUA'Uբѫs~a,k$(k^"F:GsZE]u]qk	hu?PxekAAA,2A$ͯٝIc:ArV,llꑌT=m`V
A{ok	 J(&AA[AIk$3iI#@^"Q	j)`YTG[´VH74<H@ikU<61!2)M,8%aL[m'{W;Q%w}g^`UUT;,x+,nջa=|X>_/OϾo_'Ϭ/}Ы>m_B/oVK읏Р,M:I=5a_3\^rփY	xjTKUr!{螛v،{n W]n!*xmkAI4ɋ2FgfgvvB/GagwVLRZLװRxH)=!3[O;A<~<\kRB")RD˶9)B8s^MVbFص|a(A)#S&01sȷ0ZL9E9e,h9=A1#oNr<%sgzA dqT 0S^,x0oݕȫދfrIBb6MrW
?sKȞ^r_Uɛlcdϗttө<>ƫ9|tӝ#}cxԟWUH'n,m8Ɩz.3ӕ%&{*m/iS01XǲX,Hw^Ӆd3+/0Dx?kQf7ŐHԉލDޟ;Bvv`!
"h	Xi _o vp|Z>\~PW@YpKNxeL
V%]ASl+.kH(zIq6.2Y%Z$YWy1&L:`5I-
[B^]ޗO\Degt\ا~ك~Ya5WYV7tbsUw#`Tx2۾օWZWZD֯{N{\aN-uT)enVdШ_|}4|4}̭,M>NO2i07yΏWOffo&/>L?b\FkΥfuIhax5?K1 9[^Eq8g.Tp⢂ԃNuV  *\tpqK8K~(zT=F 2A 1\i !1"TC &"GPK a8FEǉP|$dP%H"T'4d,PꟽuW&bFbuuOs	Dąftr9x~=|>bVtryq<=O;߯ŭ`1htkE_M-^4=6U*dֶ&Q_r[S7mVYo¨pl`ɸ~i[w/pa9]|_!2ӺǷKߴ:}I+xR=O@q@PФBEH"Bbvg||TTH)%?6M~j405to={ON,!yTul̥ZgiD}\5=+ֲ5&[AcArQ02ZVu<E}F[-H%*؝F`/'(?B
 (eae,`!n/o~BJI
xn%ȇbC]o<D$U,:!X&kaOrgDb.ˢy݂
͗</V.vj/aۯm_oC.zf0MGٍ~wjpxMJAq+XXZ(sT6;3\X !A%.XIaH'_WnSh 
vNw;R Ĭ0x(M¤^:Z7"atFq,2/^``I|p9@p). 4zݱąDpkջ[e(X`7m1-NA5Hiy踞5P-9 C|,_ǁ+oF0ϖUnt.;͏"(~;K|jAAY>ޞa(
/ ^Ux5OJ@$"Da"b+"Ǘ\$"(+PlDg?ɭ"3LZBJaI!dhDR}L@`$oH
Xj%A[HY7
&)\1E,#Zjs:<Xsi'QW30דۛ.:()J /L溠~(M8;i2);N}Qxfgmպ:;^UwCur1gv.t81:vh۬4<ܣأ3[iFtƒ\_kԇ ExJPIQpDjIront n"X4IMRЩ8:삸>.> }?~|יa#G<,7
50da i`eiI 0	iq=+/_00R1=G#mƴ}35=
2A{H @ts,YZ,݉iD%&P](K4muFi4N$q9>ί/oZjuӀ|/,hw.8Egt2,{Vҿfe5챼e2]8 ?iYiT.#xJA9s`m;	ٻݽ] PBQ-^8˅sX	Rkm}K_җ[|0{d+Dfl'h$Q(~Z;ތp22<fQ2 JЀPJg%Z	o!KR50	h>*%$*cLܬW;<i_KfeBWrEݵ[9g<xWMCگ&7 >s\VңG9"EMKa6P֫?;b%Fa7Xԣoa;E߾m5 M[w9ex]AgVj`߮ZI4X0eUumgZf7Ѕ]:Է0̌m@9s|:p"E-1(7:+LTI[be:\ej<$gK+ĥhǞ'/1Z+NE'3A+7
2yq{2XnEWrŮFf<nY5mǤ{sKBBXU}\Gm3I릅U}MΛaq-+~z}gZYb㸶t(m(u m=#2χsZMflYq>*OJl:Nix5kAA	,Bٙ	X?D=#&"h$vZ	()krOz_='R)H3I5H΅J$T,3,U#]A,2)kc	eKDpcF$X癠4ѩQ%LEQIwILBZ'j('ŀR*q^6c\躁
j߼~:oڃϳړ3+}7r{h}\yw.r筺VLFM^ zUW'P"}N>p{a]w=:}XGv`i<Rw<zap[smn,,oZ %utxBexUOK@$E<EPL23+";L&??=/BeE[zE{hEKA 6czxy}yf>RP0a8	Tb({HP{Ǫ:J=.LE40(1s1 }I48ݳiAz=:O 1v+KlO|Ӷ[
bt^n(}4o+zZӣ%IABb޼_R?+t㯻In/uXD,A[8HwwTg!!eMŒTYnOR֤}k23kMgՆY<H ,x+Qƛ+5ʂ#v\=39$R7Is9rJ6XEBXHߠ,eε/8Ryzwll>,@GXr	<a~29Ò3{*̊t(WjX4D p"+!>1L"##RL°\j,bjG)򴎃ͧʯit׵:j6[7g:A:׎GoutǶ;"̋(Z0=2fF XWF2Ϳ߭[?ۄ&5RҬh6Ԥxq]\&o/^Ig *]VΜ%ճg8%bDǉ:^Ҥ^ZUH[)APƂxMK@1YF)Mp:2Ap"03#Av=
uHQhCBoMhA_0FO׿ݿG@KW0FƖJ05XPȀzXJ-Y!PB
2cSoGU'fOpJ$`bň0֞fe|s?*Pf3X3Ѳ#z
kr=6 27솵&ʎUھ=SPja.IC|?kf?ɎOn3mwd49r|7;9#тNl4Kzxm70Ϟ[%QJ=0i
t|S/q Yp80xMʽJ@a%[hc%6G,U3Bʛܸ4VV+,z^xDxm=$/DVA1$ARZc#︓1tS|bk?P?d(Q۠b$hdZ+D67֠rolQ5jcۏ'圱#ŭ,§_w#Gbl9)xC!aX6բ9rPVP
쵚0 (_63\6?T+x5̽JA`6	Sb+d%ffl*il@Rv>`Xrνg7캞 "%W
H@gQ 096S<yqEFFk! CBKj꿯b9K0(tJ9J;Z @`査	UBlc'N
^cO3*N֔/EaG FE{~~}m×ܬ(~QU3{|$O	o[Uk':voѯ,K砝 `u!FxOKTQƹr>(HI
b6Ux99soܹcrJk)+EE	Zo0c̷ht{NXJD$%j	@!s,cAD^CyEGu8OR1G\Yi\uHeE+1BDN8RJSpJz2."*$;?_g)\MijzMUA;Э$xp"/!OW ki3\,v-ț؀vۀ]N=B%Bn֬=o0Qt:Yub>y/
xiQz@jk_Ţ=s[{-򫏛ѯoٻyye6x=yU?[gl"hx5KkQi&A;q%( -1wc-`\YHQwf&L]5]5&*jEPJE?Kg:Nl9~9SVsؐ!,R0e&2Űl0L"u,3,Pˀj&;~[zs!4K [{DЬ5lpk6]]K0MUu A96ײK^
:0⁪&[I{g%vç`b-vN倳E{eTWZj^|<1'NoJ^6yX\ϝ4NG[kU.vNrx61~w?K7$-nɓA{JtO>=Jo=,+gQ, MXm)sc[Ry:k'܎we'O2#yt[wR%M#a"epS>r3x}ϽJQq\W[<+X$3Ia4y	~pvdAmHd,+	"*Ύneai
t⬠ۡ,3.PnCg!g$Q{NQ)43,y)swڅ2b}<J(j!pK%g;K8aqgofBm_KA7KFcǐ6 j6G,o\4՜l>fZH2B)0(34q3~o?ݍZi_|rsq|ovyWtV'qE#=O-NV</7
^~Vn_~{Yk%bvxMK@ FIk(q.Kr'Husq.AI1Nju5tT7-蠃G8;ib67gVp{lJ	[
$d6Ą1b"R.69.fcWڜP"Hi\)z	l&(6w-,K:TTRNKJ8fjLPA! &
^9S* sW[Rj\}ᱶMcilp:@{ՆWkxQ1Hn}\ej%/! cha팒~r׋OQ~9ui~
s1g6ӈߋjPxJ1bDu&L&SZHInځδL#tF\>;v8lCHOkqV1Kcno ौ""K(41ra5cR<ҞIh)yu
"MdIxȄb*DKƵқz߽_DZ(w_wۿH{ҕ\(c9E:V
\M,,3aAsX,	o|gvCâ@6K$dX"tgf3ˬ@;çbJ<B]e[TW^uuXW?-ݠUݯZ:m)]]t[_ၑ"xjAqD(J\JU]q+y ~nu!?
?h$df,"hւ[zƕKWQ 圏{sVjiYP)d)OpN~E-h*:2Ik LL'&2Jԩ	&%(Ť1Ydv_EʁEo[2F%<9*[;~gi_4W+ǟ̞GG9e<'ۚ\OZw~4b:OY*QUh.G?O<V3{\;dnuYכkYrUXl=vg9?WkP540+ 4oO~;)xJAY/(K;Z$s۝-TXk˿&XY(KE@A|'0b`p9p.k ƆPq2f-QP/b1d%Jq<%2=l`N0s$H1ODhd=k!T
nTZb1,Tim[yAhNPP0Y{qf:.d(b F`wqg$Iy_wrìg*XiWo(㪚3}9F}-~?<PNc><s׭wzIR4dRW[>(7%xMk@MP+]R
ލP+&$]t
Uom."PUrΤLlqs22Q<΄!cQDL6	(Z9KL8BWc"p
h'+P/wihGL͵'.ˇOq x>I$AEa=DQBPm=ukՓJ8[~ZF(AZe|cCEA%9;3w'SSvRP،|.5{I&r1uIxLu5XSG^G!GOWWo
%(tjL5C;f\<(2fFϏkj2Mz{=-qa/,M)9b{h5L!x5JPi.誃-қ'CA$'!%MN>C	 .NN>Nw~s>+D A50Q]d/dD tBeMYQĕ<	a `B:q,) M/DǑ6,ґ'|tKr%og7+K{L3FHWV)R1.jJǳʔfe=LJ !
Ƹ^<_fP	hRYq'm:ÍCj;yZ}ok;vyu.TWl\4Ly>Oϛ{؂UTfʀ?yth\_	$+xmQMkA&&Ȣ=&KkgvEDA
^J2;3[|٨KkZDojQI*$Żi>><_gWXkBWq(XJOxQ`CFnX7bPR.Œh-)BCF<_OД\.iiH(䔻ٞC(0%111[߯L18=mBAC(}Dͤض]:[=0)]}n>Mf6ڶb-wѝD\шS=*4ṿ\'|c竳c'Z;wg&OKal9`q*p:5?厖8JzKv^"}Dk>tMSz=y>[?Xߘp.^5Q2z!s⬤@qN|GR<NTKNH1fҢ5?%l~#axmQMkQe2	T\Rޛ7A$H	oIG23dF('j]D[%~w{WNZ7=sfw& cbAe5]tdRdrA>!>wMpt&g#|1K.\L]!lˤebYq(^]>wݰMbwN`3& zQwSH4-0iI/Z܅)xsӨiXtZAf'iO(-R*kG 7q7&?A Mɳ%[ˣjlu?y׻qѶ6e_-me^^)_R\/*2v２kVAN&{obF2"nZO/&oD<zXAVP[9ژǕ/ **x=KA*vj3FnfvfvVll"}{,ӳXF1Z\័2؝UɳɃ"@%Dp¥'!ePCBW!- Qx*'ϙ kCj&t*'C/B"cEDXbl0%7YC rE* gw=|lO6]H1/o~ɟMMhk9%6R'|^˒$*^_[+WB*nGCfB}uIKZ:sEZWF7Mkk<W~MU9?SZ^1O 'ԋR $xJAILVv6#wgvvfcXJ*+a> V 6s/|pj0k Tʄi4 &@sjԗnJEW{LLh J1 O&x~Dcɔ䌫`&|	<psGqAl2cь;eMQL}c&VE";F,YH@dY6tUQ逰Ib-<Bc
uo`dfs	4WlqӢ(T6t=~>;12FftQD|PE'cVإgUHOx]K@m&Zzw8tIr|JNDСJ8AAp7E_Utq{{팿8@dG,}]*$\aYp'"cD+!|iQ%Is6G #3%e0tH;邰I'aɹvkeIqy<v0FlU Ly rҎUqUE=Hk!|\gwIڹO/^Rb^^.0ԣRZ:{-=NjZ#8J
قlEJ/&hCJs@}%]x]Qk@fKO>N;$3+xò$3IiEG
ZJoD֫xO^7ݶ~}׏X7
2̥@aC"tY0Aj3ٌsmH0\l=q1#&)\!ǞDQ>wnH],~napR51,2Ja$7&ִWBd^gd}dXK.^ƷnhZ)<BwAt[Vj5~AnraD\N߭=Q)`:
S:~tW;9Űjpz`[sIpEQ;,
U?R3@5^يH0ȰiG՞qU{ܩ	jKW	=ԹP1M @~B^y?sueWIxnˌ
H<_/QF.ן!hxxeOJA "XXx,Bp߻	i}D&J a`g'Tvv03'pK$Z"Ɉap'8J|s,A#wiǸHJ
WД<GL̐P{krhSK(5RIeRB q64?ڽӓ|rvv@Tl]ɑ1;ˋMEK[s(atRz~*O$\ոCP,Ĥx\.&}-ntxJAɒX0vfv.;EX(V"'F/VBa;EDA;&w8vf4KIjAM"\D#n⁲VCg>dgј<vSt<:F]h!0 q6B.EUbJhu>VN"TSII֐T*edMҀS_[.+
$1-AM}_}uz7~}J5N3Al44+,%{cț{>C͍̒\mV׾&絭LːOҶ'7
ZmxeK@i"A=%w"rI.RE.$Z",.m.}wx2|/9&r4l&:g\Kө0q]lKUvYgR#q&USfRǶ"6&Mh dY24fR0]ԫS=ЏuRiA\(7]=aePpe:Y;VyTx6]ڨt.Ijj !^TFPXtaqfvcqyv)\ja9m9	W~%	GwUS;QF-) Yu5;gWōhmrYqԾ_$r¯9#-$ś7<x
D<Gl\x]N0FBdb	sUa__;6?B{]hTP1TYy^"H}HFsHl%!`1T./CUI(A9ʁR56&⯇TO\T2P%@Fjv,jowfc{ѝNno!,˲e!icXO墮fbZe__V%ts؍G)]woHSUkx=JPIS(\
77_DjHEq*_):).B%R
y'GGW08?8䜜őBhR0<CڨGa2 d- ukj}i{i ޔmt#@]LX m/4txm7i&#d4ݢ$#qZ\!2"d\l8f.8bTt򻟽a5xz $I?ӃiUN0u]QhLYH96RvԵrdƾ/ռ>u';49$Y~ zMyRKxJA h#V"jv-<Zfgv!Cs	xGD<Vv
0I|[ba!Rs\1d\n]n2ABrۧufTNC> Au &Ev0b2߲|JoS8>f>( E16]v4vb|h@U"ț+Yn?ܮ6믟V}W\*ϲz&OnyyKUx4Q0eMot2ġu\SEWP3/W{pQD4+b"4ճ8}lC)֨	*b^YV_':ȀXqϊbhY0Klx5=KAEYXhag!̛Qa+̾,+;>`k/6[\8snuS#"iz0<G4\MC^ 5Z+tu`Jp=H
	B=)RzC/P`,瞷U+@
~l.[^PC)! gn:}M۔F`KSJrR͞e8;|ZʲQ|^޻;w:X@,^xOVW⡫&c7UTڐҞ&kؙt[
$2
+TTl.1u']c`I4vsu~ǘ5m@$Cf(2lôIm
*>vCP5(Ŷt  `dj&Р $j6UꖮClbY
6%S-MTLK 2z>;
3~q~؟uBCr
 
 06!1dA q측wzf۹yu]BjbNLoC_~99rmSw"qfq	Ed<lqhe>OxRް[8|':;k-OA3y9^&ƑF0|W.q<Lf,I^paDkǇVA,6TBY_j>>f#c*WT/GOERr|8KKq׮iGKݷF\WWHNqeԏ&@*ΓDcmvJxxe;9y7w}]wY ܉] a˒fȲċ	e	ٜ'rPPNEs	{;<NV&Gga2%D/~xnX&蚢aڜl3DC"AVHc557Zk)$jVIB&]!M,sP$6P4T/Ϋ,8c(j.[Lm;+sk-J"9F&-OK!5I_<&.m?~!s흉p7i>z/v6:K3,]?4xZi<Men h=z=nSW!Um!w#Ҙ+Y=6S7v{ZӍ0*qՑg4yp?IHe
J`ůIuo.p]܅sgF1D1z>	$5E@ka3o:{ֻ;dMH)OxekAIAxӸ;EԂa3[llJhjbXڊFq)ImQųMBDaLN]RChb,J]7Q4iIA!(qYЌ+a2@$i`*Ra5Hu
UuucEҁ&uM 
sf4Hz4P4]Qtq(@.@Q4u(9:q8LovH`sܔCKI<Ypf.`aGܔN[q	ogH[|ʵҔX8M!X\$*GƮͧzoeoKZq}5JvvjnG-A>cof4j<rX,ZsRNŮ5OoM:awho}	^+8[J{tPVZOjqţIuV)a [^os>GzȂ3[q!{'LĵJ6rB6J	ygNh j8xMKA Y[	VҵFٝ=K~~̖b`tH/dC !]#4O:Fݱ?=CnzgҌꦁt+lG!1F D\eLTFuDm uRjS;Z`Bɏni80bt\ƈ($V_WQ]  EEEif};h0Wz̢q"~#9Q
'~⬯(433	[Qu3M0)d2%*Cb(C
ϋr˯\_zAWz{R_n!%$%)1ǂ2ൠ6!м<~xMJ@@ɲk1>+-Qq7#A{Gⲉne+S,;c]<=	mmImΣb@[=$<#:MS`|B֘e!zPjR%7 ^:Ems^<SRB9xYVH${^dzBy80]ՕL<4Եb-Ͱ)ע:Lvn7>Oq<vA9=]V}xMJAEn/Al$:3)dvMHa&D+	"AQ,Ec`sϻ:E<sŅ&Vx)f2kg2HrXTh!S̘
)򑱞DS0LqƔTvy:T>QÓ.	No:UВO1d-iPIX!$Hyvy;:.+z*SشViݟLځ]t'<t'v'|n(npoz^6pQG7L}Fx5NKJ@deܻk݉#
uuDb3+ <˹ExEU>m$$d0!_xzl
)y.NI87V>0?f6bTVI1*l vC-v}_1zc*fm^	'y&Ye\;|m iיufFNbA>v帟Ł|?F ZWRxeJAɟ`KqfggFAT ]YHbl`J(hMV>e|^9g@GqGq$ Ir	_2\!#D&N<ǈ$@|Ĺؗ0	Lb}	`esDMÞM`:=[u)龯L7dRԴcRGYʥ밫B{ix,jPnkZ-~3;W׉U̩~f2gf0)jW'IK}${j-43<~<vNAqܨBF2hFa Zq#^ZVj0U;H	]Rq몞LR|.xx=J1l
@6v*&7`aa6Ȃ;+X`)X,C93(V..dT:`ʹo"Kۅ'GMTR!RkM+8 @D85ya8Qqٴ 3k\׏GTP]i?Kv|Y<`
,~Ey3Ţ5"=&i&ܢiQgH^t`_p st<NOfP	Or|ZpX'x}OkAVZzAEjf3g4DADmlzi	)eKJj"MB'?CgODAA<<{xޏ->c
a"ZmX	MjZMYȢV¶#>Ŵu3M5p2Ut:EʄR_~\jj:!t11q;Ш/H71Zz@9!ƥW^y J5-E I9txg=&Hf2}҅cwz5ûg/Ƒgёb_$|۫zM'|g[jD3˦G}j!o&gQ)Z*̓N|A\vi֙W&Vywqw-͈LQS<߈'W.WEg~5Ŕmޡ[ґNa:l.)!ғpJETk$}2_xU=kQ0XYx-,D׹3cfHcSw=wgɦʪ02	"&ET	sp.8Ti d )űR	eQ\.B
IF,ƜK̗HdOI\xJFb=q"IX01|s&?|:8ضQڱ.uzy32)GISj6eJ2PiՉ4u|R{Ȳoaπ;ޱnԿrRS;53^5{˺Ypvp8~?N2{f<GSÕM:ڽԺe]1Vv>?3kq~}hZϖX=kB睲9޽{Ʋ,TkAOV?L"x}PkA&Q
J
Ńރ2;;&d36zjElaH[RDP@mS^$'zy|};>^1w|L!ĴD~`50s-#ћ4 !fz:-##	X)rwޅEab>A`:	<tH4@u]ĔqUAa2*F<R̩whVkad }Qb<Ш
J!'MK8@7d ~0.gU\9-jEU+=}+l}st݈G<UNh3(Võwj5[wkDw-(ßZ
}ڔݡ|Y@)*ԍbaV!pE׷ףΞ=yc/D&CSxMKAĹ\bqB
"HBv7H1I^AHؽN"AUm5[`m0"aߴa@|#ۜZ36l |3ǡTP/X:Cf[Alsmr mM01HFq/
[78dD0%O>ߤ')rL+y,BT[+7݃by-jՒ[hhZl"/Ψy{-m[+9d*BS!gBCX%7_S0`z5yRqCP%/-5cT\tx8F$)_1DUX4B2uxj0E
틛[.%
.kƉ-Y/]pn)088bOCqL;0z7\ʳv=@R=r}P"er=c9ߥzstsZT6Z' bsn-H$Wn9]-i#~\hZe.rަgB|saqFn=x1K@I\]~KrwD}WM*1J;88I	8*+]p6 ^9"RjȄ nE$UđIM2oW2mi%2bD1URhXq!IFPmm8C#aQƨ祣o"S  < bFw3n'$Ɋ.I^*VrTfYe;k絪Pi4$ۉ%Y?Z4M?r̒Wo緯WÇ|qfb+j+?GCʦ۬x]ڭ+Gk 8 xekAIj<Lgf	533œ"fg)ݰHbxPQ՛ٵB><f~f &qB\jE9v##(g/2Hb	@)WSG%xӊ	N_{\ _AD"9%@SB	=l~=V)9by38
nv	&1MX!T^Ϟm+rkc}Tnu2bzҹZ$Ό@3z:b}.B]f}r>]L콸SN?}tjE:nWLuۑ]2HAF
kҤ&VYҥ3&&KߪWԜ|0}6:U΍BJr?!R?nu~܆Vxm;KAǹ(.hae碕8w{+6be'I<$wuu`!A|`ت_R,LemIf.E$PLhAC.h!RKU m(IF(X܋BM}-%1τFFA$F
e5c4jD蝵JY [C[EbpIV'5fh]71}u-\t@0ޏM$rw^ٿo}?Uo`l~LϬu/z)XYZ;W}ߝɉUXomi </};ilzn5l/-_ϗ3wF˥)' xk@ɺ+TP6xj$T)$eq7SbMvq&
${S(x0.޾{/}z5 w.ŞmfL؂aږKciKyLJ&8ƥS).s ~	.űt=3
[Y-b>M.?Y<0Q{FװXu agAp46va2@}7N r{'NGh˽q>oVQ&y N_ZYK~jMQe|Wԡ&9e5	*lh0_;)Ilp*n5/_nO{*㳟z̴u%4Qkh5:/~l^Ϩighܿ:l]WO?q{xK#AYYl󚵸J$hJJ,̬G*@1F*q?qU2YY+;IoőRR>fz!"+p''YZ-,+O8`:>!`2}':,60R9vR̭W Bx 1*tj*}}uoeZ߼6.4'"c%GҘ 6r4g9OqߟvϺyҭlߜw*`[m<$woɽa}	
q>T2s/(D<T+RV(dkG<{dRR=nSf0gx}1K@Im;\]t8$U{rC'Gr|WMRvrJ?qq7|<MY RrkpqT8gmZ kMD}@B	+t
|.8b@UFTЉC80>ߌ#e|
ԫ.O7ӌb1E1f̑&Y,J,Yd/s,	hJ]^ld!QI9^fujux(<n=yu=Z:O3عh{~eZ3WM;%BxJ1@;yCQ%(
ҡ.>Dث\OSuZDWQ]}@zac{XA"
4ǡr	C%,b&"Cʣ8T'J1TXRM.V%*-@Im4DFT5J-F_fR8&]vP15 C١ji+H4TuwO{y{_]y՛yP>v
Ht{'h8dF#-)u]moyj^8o<W҆>KW׬~x]K@m@Nqw2PK'WLRTA7q(:8,8_lE<srAMIy\g(ʕv820*ŵ%}l"k`)
m)&!EfS-0?%(g0kĘYjwY*xM(%QVAMs5!rDHFhnht
I^IUQ?3>P`IjtA0߭wv[{wՐ*-?n/xEKA(6fGt"6qũY0iAN+9c]k!eڬ}<·}%X1i IB#>@@"hZv2,<?jB!Q<SG@$lK`{! `R%f.}&(Wt	Anոf&M	k)cr|#TJy~yjyZ\#]D']_~Usf\xvnsTƆ[/3\73W{?Jalft{zr~/Yx<27F]k$`aN7Zmo{V>[NW)nXr
/]S̾HiˇKxMJAF٘"Zme½;;;3BHSXٹ+d#6VC_{,r`cnw岩cy٢"ÊhAbR@9\51j@	<6'Yp2%4<@FP4./Th3^׬%CQHt| S=<XxʟƏ}yݼg!5S~]ǎҏ1eyG[NTxn~︣Z(<xkAIlx"҂ىB"xEfGY&avdF"),^[E5ɻjn
w_M&&`7`TR)K MD=1>$)#&=L:q!Xؓd"c=zhɋ#mN0"8I6ʹEBZl3JDp+XgBkiDQltmI=_[\==
6%)sۨ7s$DA+4Ѽ,qqCT#C~060u]zTo^T` ljlؒY8/h5{r`-}H؉I6v$r	PX<N0%$,׋rWcz|~#<l0{xſ!EzNXp 1%=xkQɺI`R	V<XD`)w	;2N$ߘ,˕Ѹ*"F0,i,NLl8Q<2 &rml!0C>"8bK<FbbqO
~@<?pD"tp`p`L2ŘGg	Fv[GFmjַFjN a!3BE6Ȭ	ĆSoz'1O <2ɨ^&'v$.egJЙ]W7i/_jo~"d`׋/TYѨE3DAږoOޮʯc{jMd!et\8p~Z5[;u[y[]垞{^G&*U.< Gvl{-DOc&x]JAI4 #MΈ!,ٙ;qM:Bbci} HggmT>s=Y K bheP\8Jpf|LQgO0͂HGo|28ǴMDZ(Ӿ**7!-Nv\*&>Rc3F:Ϫ9h5SZ!8σ^Ww/pp>63Ƣ=+?K#pZU~>svtgm3]{ܻo'`Kx
0<Evib8	.>A.&R㠻n"/>]Et.|'6 Q%0RpMb03@z@Z|`A9\UjI[pB%:'	R Uh_T_VYbFͦojsy1(r{DRc(ǭ=q1wW{y"K6ez7} "lEx%ű@P)bpݲE
EY$-dF5iٷHd%+:Y[͜@ņfJt7ir,~v|*k"7x%ű0лSdY,e߶\r\.el(]˵l2D"Tch<'E;uSZAiDjJo"+x%ʻ0 P)bpg߷egS"elmETytN˾1+kpF"k
@h	HkM!ҫ8[a*scy>? x5Ʊ0 ;dI.klQr"لm2J|tOydQI=AU!(D!0sU^vtEKn:"jJ1+Ze*"QxuKA(&'Ҍ$Ky0;[jK:ɈF:!ktuyyӯR\ENH	F1	˒.T ՘rp\Jtq|}%Zs#)IJ1WA<Ǖg0H`D
*pemgKh$ +!^)ׇnw4 Hh/Wю,l\t1U~mMJZY&DX_Gb51cgRkG^fR[08n]u15sE+kPrTˡ8Z̤ghUBNMdm?9GxuJAل"mf5 (1E
Bfg@nl6 j"ؤ;_Abgg%AMe{=MF!"FBJ- e
LhR!(FDArpiD<6\ ۘ)IEF8gaH{I6DV_K@`Kv=a[n6wCܕ>=`V+n+-u[Ne57<=~sͥi·ꆹ2c-ض;FǿpVt9EL~V5xJAEIL@FsK!3I!v7!&U &hXX6eZFMJr?Y
0EbbeXǒZA Y1)4 r!#p*a+#w~Hcɝ\:L!a)볓oF4)0F(֔f
APmc{+'y1?;wGӯjb`2Wjo$JFP-X|-̷_+W[iW%L2+RN+x5ƽ0лL'uAIq,MPwM״{̢eT	J
*V%%{(m60;u5=[B_
"CxM;JAf(2E*)D;ŀ$`	Dfg}`vvLؤUN`egr`jW@HqSh#d 	,!"#(cx1eEp*!2$$RJCh$l4t2R"Q03hf%. 1ǇC*p9`׸RS3[Vʃ;u	a]ij籮w75/mkFhyΏþ WZlJj]tm;n݃5&^AoܶW=ݺ0:xeMKQ+ԮW\;1ׅA]Hsb>"];Q(AE7".q'
"NhSJ{~uA$@ b413X:*1XF*ZJ!DXԁ&B**z܏)  (pN wdSPp9_3.&bҺҍZ)z+m&A(8D}]KIT2*Vf=펱ߝO&.gjKnyzm%ӫяogwǫ$ۻp{hoaӝ}Y{r?G3yەBNa57\Zq:Ǩ;#C"9xOk@
u
~98L&YDD&71h"]ʔ*ؓP֊(Zm=J!޼<ò B*qd1JW3F# 
J,79ĉ|݈BHz:~&j.V ڧA	' $tRzgtƧ$}}K8N2ǩZ*@(Pȗ37T5U5yQxshmeZo~&Aŋ< OӤӯ~lUӉyY0W5jAKվVG8b;7g/ǿ~?!xZ6vWک̰KO_pZM̏Y'[Է?Zh[ks=&iޅ~aca~^8OxU;N1!Q"XPjRp"XPPr(%i4ߌ4×si@m u (,x
HE57TQZ5,w\Tm_ɆY'AHZZQL#^])cJ!?13b?Cz;SwxO]\E	S/#dڣO)]̻tٶ/K0}fgoGa4)&CY{1J.ۜ"+xG*2JboxM=KAـ݂]T2lRXY	aoo.xXV'xjg}{_ݥ/)0aDa6TֆY s)JMsOA'P(fas `)a??0kP,:R	H~q:݉nt~9[ 4 !Wd"o>+bfH/hf+%!6I64`ZJV<FȨȲ@AU>eZA5?>n>n뷭փ Xׯ8>\1phx]?K#AIba;A+ѝٙݙ v
AD,da]@A D;P 
_港`l7
*ؽ<</)Zh e3Ir]"< 
aQIt=Š6-vKu 8
{}u.C+zx T6Ǻiw \שo3spqFJa_ŵp(WWP)0f ./`w9z\?xYz8?5i0/gU\n[|2Ӆީ޺i]#_/BVӴ4jYTŠGTYqC׫$jj,j%\p%Yy<9Dx5JA&Z$d2;?VB@DÝd1$F4(aBT,@pv16s=;/~I%q	CI.\\K݃XE1@kJg+KYMc͵D%,)w!-yO^஢Lt{4>w*-;P*1hίۛH/ﳫ;ۮ
%+bt!z	gG"Vplm>Xc85{|짓<7÷|?Ef8lV(Q\5"Hh)*vp_a_x|xK1ƹZE?KrIu$^+׈u*u&"::WptqÏὮ= L,2%sc6"rIxB'shYDM#JC
0489-zbQ!xA(	*	P*.J22NX|r:I9Ǆ
raAdkQڲmɎH[CEq?\.?o_Ο>o|*䰆dM,KTx{n4(Knl1!W-W.7g6u[ujJnڂ5H;e`wں޽0^bέo#A+'x1N1@ާpyk!DAD	nh1Er()@\*9)i+̔#`cZvm ` GF[&D羴U>C]7p6{ZѠC}a1|w:}?oN/_Os24!7yhU xOKA o+xb-<Dd&ՕeAOD<$5Lmi
S(E+N'p=x{<ޏGs
aa01w c#HNry,z!2cDR.rr|ɻ	]ϥP{ܳv#N@ϭb
c^՗ Z]~݌k+u'XVQ˫AmK>!iCJ"ϗ|30\Pzm˲6$4j G[J\YiDɡmrIwl	oޮ̤COE~k"#;$T#W%R;Mx-)tO؞x};K`IDkۗI|`7jTtZKRAQpA[HE? IZWG'Ip:}߇MB %	 r,0ձc n-(xj"01brdSfZD:2].12HB 04akcvШ͏cKR_AW}<)J,O3vDa=+L1zft܌[Eۿ<`_gQ7Tǰ{7Lk?~ ??e,,b2G%?I^df.D[VGpQx]?K1 ũ )8eAK.hq)N.ErIkr=Q'+RA``A+UtQ~	gzCA7=^%=WJ	&rGL`&5"Y9\pʬ"YpĲ#,S,tpۦcRaKIM0"3{].MPfl"T1C! 2MI_mrYO0r0c@p䟿n?8kwս?u{ӮU'NKzf F	agS@,ɤ*&f(K~ͯ #0W, U4lP8,"8BnY)UxM+aǻ\1"xF^</3]l|=<gns/3XH%=Ho+;\Rv~wNs;:֒ Y[L
bPb
|*=)i<J00ұ-̣0K7(،2Āf	e4.ZDVj#0ez'!1]!*RΉ겜A<JRE!t=5D>>ї
/7xr[`4/xlaZ?B:,tw8^hgKhzz4OEwؿUkGAM|zkNcWsHui܊*iSYfJӳַ⠌XW|vvL>	ٳ5xMJAA6`-V+ݙ;
63w"*6R	+6A-m7>[9|>8u
IYaT}	$ц C816Wt\DQsa,$3A)Gy;!4\&  #1j?\ eÏ=qƑ<SuHEߟTGds?<M_/{|;J7``wN_QNѼ4KKMwͯnѬϳ ^р.˴LȼҞi@*d˭"1-!)%y˖yqWx!Wx}=kAٻ=X  kٙyF B3
9-bK&cRAD|L#X(mO+m='ߧתRk
<J# #Q8%7&ER	I1
CL5!$1(E?P&8ơ)`9#Q")d9ڿ_&HiaϊjJWjԪ;wn86OˏmJA誟ŃL]xݕ<ϪpfM`wwNo~~kNT?~5yq`0
؝]Ƿ&϶79ݗ8ua9UO/m9%H%iP#?33LdKj?sQH¤}J S辷,x?K#AI܀)l36C!3I$+E#D+\i];\qᢵ/_Ӭ`.c-11ԒD,2סi&P
gm:TrAA`!־CcF`֚|f\ 
brEb#OJC|,%(u,|@!9&FuUSJuQn-(UHPVQru2Sh%M{_d.9$SҟtGFze==O绍ګKvrEՃCyhwһ"Ϻ\f\!M}r,K?ϩFxeK@ i 7Tpuɮһ%wAX䒻H%SA
%:REA1(Mj{PtJ"Jc`
b $cHl!9LT9-!U͠IVJęMɹŸ0	%s,p.cYeAwMeQbbiΏ3y[> *T/HW*ō5oWm""oG%n{Jmz @)P"Rrޛӝ0RN9LD
 ]yL}spsË,y4E,cn=^^53z#PxuQkAn/ NpTѽُ	bZy{~Ƙb4&r/?6BpOI~=ƕ(A0_(O  W0`Dz
ܦ>p<FipB$l3/x2HraَhDNQ|0Il_dw	9|u|P
zX=mq*
4BQrֹnRꤨ<ChE@4>iT"lmgaa3lRow0_Awp>iܪ/3qv`k=-ǝA	alxPmޤwcr:߽jߟ<<:܎(,=m7xMCҗyj<+CZ2ڂV,tgyijҒHJ	ffìi8wG9*! TxmkAǹ名R);#hF$XvVs4#""+b؊	1jB\T/}V 2Jc\/<:'<沈T6p-azŢͽE`Е\T1CREy+C!0`	0 2mi1mXasv^:,3eY	[3TuRYMvhrNf8Tu̲]@dczrWUYO=НN=MTvcᨐi%TA`(g_vDb(B#U
j\TT\Y/+gr
{ROyۿwyhz$d?~y=1VV xEK@@IDp)$".AA.wZ*5Rġ蠮!S\u)ngos(DOGM[N$+kYIGs;-RRFP<z9p^Pk E^1fhŵBA4U6Q`9+δg
RuP I Zn4s*߫z6IoFzq|2iۭ_^j(?4z\.a|t}ߕa*^9kak (kexAn E}j0*r`)+BͲ({ф0hdKg'šp6|*ꗚ]S!xLh1 2ZN #FE>oM_볮Yiprƻ ƾ  ]ji-ײFmם&.uZ%RiyZU&]ExmKA
:fש0cS" X+ٙ搻u/$A0r"*6HF$`:U)s1U@y}{N`+HɄsI)ѩH#)g!
m9b0e-PNe6F2!y&RiYQ2ET
bec!R jͤ	KDQN_s\uΨ3DP5F+c]$o!C{׏UϧNqpP5K>ƚnڬkrùg߼[W77ױz!yj尸wip{>-.nv^؟鷆\^`f(f,px1N0ݧZgv\!;pyn,QJȞpK61K7i0
b#fF4. &.M*p5uiK`ɇh#)UEXX'9Uzr(낰pyF3 ⷞrk?-_>?^KhrcF(m>65?lhanxN0~Vv⟸B	8D\6&ԡn433lSgmnJDc1R'^͸p6Z&eщ\'ɊͱQֱ,p]?'̧T		8xiO &8|wZm<.P}s	yXiW|\(p\,L˵,	<uq:eN"nmQOyק\jZnH4jXRr>DMDexлN0Oc/+n'Ay<=OgtL	;	!%rbZMX}Pmh%R%1RJ*|.
(emeꇯ# &z_ˣ}لL2FeC E1k,Zz]Mx[z^he:I`:@&ڜ0:"woٖx=J@~N1o&#x |ߗ"NtAA;I!lFl~@<	\*LɊ, u\fC<Dܒ:OĪTtzd.Ey!`U9D%ƳD&0c.U5JI~ R!_-M{a>ﺮkau3mǯͮ{?~Xô}cˢBD#rx;n0Eў`oaCV0$gd[eZݻ81k;e$Fz["y!ю_j\.#FL.`T9F$Gb,~[~PU/ѱ9'@ ޗsISgYJ,s2"CڿޤGf]x;JAEZEӯD=t0ږb #hADt;]2s>ȁ9,0
- ȾCT5ȣ2]¡65p$͈9ӮI.Mx-`rwZ9pu#  k:ksHt?YYxuQ,uQ쵓|X_7;zxJAFy%a"BDOpgn07ԂDNKm_3e֠&x`*	]!hʹQ4҆1DƔ\@˂fͨ9)ehFswc=ٓak(J׵+8sS਽}Y=_/ۧ}X}}|+x9uEo6;ԓҖAʂ֕Xd/ҋ_D~xJ@}d7{!vDBay;AESA6oaAlf@2dP#AqcB(0+c(Z8i6!S*֒@UNyu
tt4$O*za.rf!t)HIYk雥?lo|U<^o|w6}뺽~wS9JAJK}x=ʻ@ P)M$w6ä|%BQ:ka$^隶c\lS+zg"8T"PI1ox8"x1N0@w;
?vl*#K	;1R\21tc!P@/Bsr$֧rGı,ɂr8r
h1F(v2'WpB@EJ爐Ҡ/*䙝~]?l?Ei,Zb(DsR< T| 4LiP~P<0ֿ>n/?ϫWzovoc5Scm[~ zAx;N@EYh~BQ$<bLPL
jv@l'1i;97 X*FʠePVJiE,lmB20!UI BKN< uM6>?6ڴŤ-SJHI4M&+@u]χ|z?ܽ?:Csa;2v|ڍ-UHUUomsxKJAE絊K>~${pRF-*B\ĉ:@89ܶMQ+#zOXf9Z%47I1K:&B_ؕPtrjm"8"6.,uAn{>t^ +u?F}Hۧxfaޔ3MCN]n3'~x  .mxj!O=$R}љ
.MC!|+FO Bm.E_ٺXCQw\yZlS)^"SH	1LQzGs{4\۳?jk `1j_om~]'Ykp鸒.[}vQ]c9`xͻj0^O>xe$[&@ aYXk$1IRƬqX)2P>:2f2SΠnx:)shJH"6:
%H.
Ԧ]~̰ɫ~eO^_!LƨCkXf}GnӢz٘*2z[L>;I=9+Q|LQ߮z`x=N0ާpqw xfYъۓ[<_o"q;N8:vH (M'MJ8ȣ$,D)
D0 
զX.)Gѯm8^ݟ7m1~2u|]c|w:WZhZVrMu]'8gxN0E{{=;
!$#6AQ"_O$ (=g[U+Ka!(=z}MJyUP,A3gCDH٥hhߦe-mۯ^~ O;k;zg})z.3zmۦU^4ζc8tK6ͣv9KKbqDRkX\Ev$l8x1N0E{=
BښƞMIVW(W܂9HI(ҫn]+:ae	bxQ\x:q\"2){ ^lO8JkE?t.<+wzm{m`@ߘP+A}|~Zy<`^zFeUi8OL,##1cw9@p.&̎E evǙxN@F<M0\1F$N%[Xاpl|gb+TV:СS$gh*#CZrR4UAf:)Qp2I-"F_J}84Sgĝ̥L83KJpi+0F1Hk~_|ϾlV/_UeSMj\OHqsbt?ۿɮ@FGrl3Jd9PFn*xN0Fw?wTߤB$TO#Q39'o;ΰ+
+j;ϊX3!GkbIyYm:ی:ɇt7@OQR· TWSǜ2'm:][YC*n]! cS#xQ[K0~ϯGE+mmDD>YdMJ:EߛAЧ&D(+i]($z%jP*$
zQKtejp^UTv֚RN`GGU+JÉsZJ9MYxf3Y˙#*A7>	&`#Qez{NՇSn"󗙾Sƾiy[4SǐSd.!݄~=eN`MoZi;9Uʇ,gw=`&4]/ģ_":W^檿x1N1 {=
볍?h[_;tr@.%iLs A3Hi3slͅxԝ3CFlf$,t0$M$hv,R JeMv'.iZJ5W,Fj呷r|>mzwe_M9!\ !o#Oxű0Pn
FO.vBLAŮfxͻ{Z}bˠDJ(%Ko]V`,P9632Vza7!mx=J1>H/+}<7/fF슝 6Z?Vb19@}3ΣhRx '@ ePVg3o-@ѩ.*
YqMgΫiԖx>xFi%o@R	'Cʙو9m(Syޖw~ׇۯ}OewÏS?RXL1.Y|Xxbx%0 @)ʫSdaQe:U}>,ϲW&C2[X%V7ZuǽebvdK,% `s@FspJ#xMj0:싋G
g	86reutŃh0Lq$ֈΙ\BT%^jr֙Qhк}H2$H{S?*/Ӟ<Wn+;(*j包G̽k<Q
,z+yxl<6&!>K28SdajxJ1<Ez9l9E;?Q6YYJ{AK5mla~1 ҴaJ@ZpJa.@T̰R)`UƥP H(P@92BaDNݕ]ˀ'$o*SV+A(Ȝ6F9Q;D]M?^^> 8N5b:IZcu2F*܎zKr2NLZcoo%KdэzƶhvO?5x;n0D{b@??AO`I.MiSTa>o0$q^%%A1E%ᬣtp`WlT:`񖸡3Lch5i%k|`9?Q
?1d|)O5Q鴄n9g!;#4O-~z.oz~txJ1yNf ] *	Ҥ7нKAܻeS(qr8~9`i2JajgsCXA*|\q5`n,D3VX`H܇Pgpҳp:lNq=F)>"sBИn\?wr@2ס}VU2]-^MC8ou2k]=R IG_ﻗ]%Ň-qPZ΃k'jhetA?.txνJ@~bz̝{jk`2lba¢bnoa
k;mb䁂`s+H
}NXC7j9)D꘧ @turXH-놗_M; jA$qo>lS4%P6i@[nnSwvտr8_w+a8fb0(B)lI
$[$2*YR>~ p˔xMJA}KBuפ!OPU]HfdQr åRa{}ǃ{jD
r@׸&C@8`d5V䍄BGC܍|yz~}ק~Q:[I"f tncϳNu`hRSSͮ<ZAT"Ǻam}ƶ]efP0s7DTrzJ_f)sxJ@}G&w	\ۜJP,B^Fr7QK+VHakfk"71R\83O	FXF܈T(Rp ՆEsJ[k.:$9T09|j.) zyfRA]V!?9Äz|y/?vao[uqU:q]Vʕtς|wOǙx[K@WDKFbb}{miR-탾+́a>9yAY2,hTLc).0D-9Le-,&FV\AyC9Bz7/7+W?B.0n)RK%Hzc\C8	]n*F}xvvWs-JS1{
<ΏH8O%1!a?a*	i/_ֱd$JJ,DԊ_
+"(x=N@=hwQRso.,GI訡ps`$$#ffe:
ZfP4EJ"&$d@1eVh4rH {oM赋^&*nȥ}=pp5]{PA^Z)~ry~~<,8$}NՐsK]jVrj
 SbSza㼵txP;N0}
(y֜{ޤd%ZmOZp
&A-(43#9E	&Πu EBtM鹖(s>GB
!Lea諶ЬT_DUCqjקtJm ? u 7O{`)l8OW74.kd^5Esw5jvX/)yBr	ѹ,:CM1J}xJ0Fy쥒&70,QeMü]q-HgL *ې2(z	ƢJ}ʍHֹ&Gi.gVL(fReZH$ǋRZZ-;a`:Z? R~Av<v??-ε|~OT˜O[fJ͒sn-8yK;9
*KNAf''GUg^xͻ0^O~"bBej0Ab3foCRlWGf&bv!А
FFC&_;&o:ߩ;.<@LH}f@n,-+\2/zi[u/W}g뉟|;6:o1-ƨ]oU#(D\k9z)qbjRR;jxM
0F9Ebi~wdՕYV:9438p)Q8s՞}@#CDlK.a@hòj,sy=xl2]4va>@ Po:_uq9i׿>/jjbxP=k0+=IO~It4{]C迯rݺq+R!#JF㣳"SDL;,4\jBX$  CiQ*,a^%L5J9\h=4ze7	zוEpwk^x(UsUUSդo }y#'&ku=@쁒&.1WgїxJAFy%23;D>w+fƟ."V
PB;#(q7-RWx0+IhH@	:(uRR6!8"iY2AN`R*^1-(k+2S2Q	+kh*)f˼xR_MI}|-gw}uszzԷal薄~-cΡRmvx'Rs!J2	`DZP6x̱0P)M$ags)0FJ&K,xtMG,CKvk2r="6EbUU)ɹ!gjY>"x11@"d2DD'HKFX/q[mh yRJ-JdKQyEB`,bZ{_
P{kJ`ny|jjVɵ$m(Cpa
~?$
Eʙgvߟc4om!ʾ]exMJ1@9ERI&$)"'d;?Eg#PǴz{q:DZ"kυJq5*@g,	r6N{a,pA*int	LSv:=_c3c10ø>ZHf10qL	W#_-rO2?z'Baՠa?/TwhxNj1+|/)~r-A!㥤__{,T 03S0r*9M**oi`|VKKR[llp^Sc@vRVl}_r+3/<|a~ʥ:^6;#AJt[.xZN.?>Z-}<QG%]%څ/nkxAN!EfLAc4&מLKgҥ68&lFS <i¤>x6jC^Mp37<%}\kiW/;_ܦ>As< ABT]zghrsU(k+-	vd2'Q,MSMiޗxJ1Eeʼd2IE^kIҿ\n.Vs4Ol)F~Nk^D8y|"Gs2cz{?z!x>vˆIgccGu祵Bf۽K-~{WO~9"2[xj0zɫPJj7Iv0yB75:ɚ	7Εj:'){U}Hbґ%)5[ʶ&y6*.|_i].xYvk764]_4.h<<]jOm]ߠʵq%R@N#n j'/Jڡއ<;1)_v(%^\(ynu
dx-10@QKOĉ8`;ΈPS 1Rܩ9Ӻo`T /x-̈:TnV4
c}XCU(4׮0ExK
0 9EkSོVJzw.^=3Kf4JG҉#8KK=EZDcEHR1dZP]/}|>\C6l9/bwH]Y´vrRb\
g/Br2ͻx]_u_Vxj!>WWw)^YFIҧ/PzfZ5Hg`Q
o-iT=a<B B~ҋ1,a\vрQcJvZMT.oH%FkٞK9o tXCv1ayCn;c"?Xt}Zmx=J1@"e2$"<7_2YD/`O!^@J̎p+k{<x22Kgrў)LT '8r*]** -5,Fo8ب.]EiEfZngW}V}mЗ2}<bqut|9}Mas{*aJ9E{l'xQˊ0+]lY)C)D"3Ja?8e{\ιs2I"$	' !ZDF(a^yDhLuۤ$1$)ePc(pR}8[WqVכ^݂hG|	$4;zu9j`[up>}u:|OYԋe%uXt>+QVŪyU+<z(]_*EKR^[t*_{A4Gto!ǥCg3j?fHK IQ`ჍnMJxJzAGxλJA~bzs9Ac+'	]"EL"A@8I#X
__EgBB>K}żbO-E¤Ԟ3͢K TbPtιVmt:i^LsiU0 dYۭ]ב9ݔ"ͯe~ygcM[>'$ֶy~6\Ǔ8Ro5r*E߫fԲ*	@BƬUZ9Ӕkm@o~xN0yPӤMR! 9FeI!$pٟe%#RTJ[7ڢhP7Ge#9̐1*P5VJ
0!mWV45cBK`)c
qwS&Og6)uS-TUC)_W+ՏK^dsKHyn^
n">u]#S,v|tmlDn"M~cݟqwPJ)X#t3]ogDl0hr/x;j1@{BqHZ	!&UO0+x,2&W>m_'\#\wADSkqY%{tuH61 Qmxh[Qٸ-@.BoK9o[%-$~}2S d׹V_?oa":YN삷_xJ1E|EzYI^DDfmL{N!lVڈ`c
~_O9DXfc`dmt G1yT:Z)4F&FF"NF|v4u8l3wS|YUUHyD]7-O\QYǒobb&e	ݞBjQx?J@~N1723""hX^&o&0YgK-&z-_ӞPѣ/	T"@Sm-Va4Jk[	au҂y2)n3u?_%7۱K{2` -Z~X?ޯozNǔ>JTg<ߍjZ~|m[&l6)v~
otzMxMj0O}IOb9Pz@VĴIÐ]tn=P-"hid2QE :nTd`j$z4F=8dw2Hu5o3\}9!==蠵jkƢ?i5!\TT
?E
M/&`E&S7px1n1@ާpwg";c{̺`mDirTir-(ޯN6fjlB,0ŠV<J_ &OS}rFLjC(HK׵F}8v7;_<wkHyr5H@P,:wKY&CΓqTW}dxMj0@N}qؒC!'G(#SpG7'	JGf	ƪW#MUV+)JyGZp!K"*:V%B]I;ElNO]n1Qq|tI崩j]R>sǴhRM*
"PW4cLxN E<{3(Phqb\ԭ~>Z)4jۛsϭ T2юwp5V2NQ<ZbǹqPuܐRi")s#4ʐ7e?RkLi{GL;
Q(BБ.V@Rh@gﱇⶸ֘L2k]XL0ژ|LӘP=k]K4S ?+M^!f[r51r/kO4 C8[y6i{<%"(X-8>-jsTAx=n0@w{VU8g3@FF]@S*24%(G@]K"^1UXsM( * yD%nfh4R*7Kq\i\A`ʺvu9?_ɗXF1}=}L\H52rӘ&Ϯ=z<޺G\we?2
A-?p x1J1>H/+K2y'xɼ8)vf,ڬX˂Xq4#_gfS	\	KF`4GD+4X]>@@ N:@<,Zm0pqy#uiW`9lh4M=k-O*%~Ӣ=k{{9aߞ,W#)Eܝ+~ gx=n0ݧ@xzNyM<Ȩb,bfaA0#8[ޠb}=#;`IPFXU/dQ9ƒ3DTHm>?[E1C%Uێ?iY&lI}+4	K4 HEʙ^Ӭ??/雱Y7T~Sfhx?NA~N1%pN0o=v
ve3Z44X[ZB8,#/}GmJ<%k&*)J h/\H1.DDD5IRv#2X\z_O>5.s6YMU\cnWh!w"~"v/a1߮-c<ouD#Le?iRx1J1@"d~2xOI13EfmD!xG{"Zޙ;t!Pdd¦u jf-ZjBɠ.{SҦӬ_A_r/]IӶ~4\imDRV)}ٿ)uSnGɫVC[ftx?J1F"$Dd w2haZ6"X(#evf[}Ku8J+ 6sBoA>H9:2u(VKG83jՆr i8Xg#2Mʫ7)'./>3ŮcL%T0C!hkEJ5>o_q.|x:\u7A谘GdwfxJ@Fye;'L"qlTlOc4^>NqΗ{"	`2qt:yPޖ0Ⱥg6Kt_R+[rxU$z٨Pw]&ԧ:\PL]s(h|D= bM3"74|Nxw3?}{?l8OZ"^!'v
,iٙxMJ@}K_ *;{HH
 ý89pNUQ5<A 1'!H+tMxdИ >dd1r(XnsvI
/~ɫf؞~{%(e3`ݶ`ᧃ}}ϯz޿p|~btXJ՟`Us$(LZ.Q i	7vKx5ʽ@P"S0g"EEh{dФ{ŻkZX,`½rQJ4F,۱T Y.\SG5s%ez#@x5ƻ@ P"S0/.P[maWk343ucDbdG܎5aO& RV	zcf$2x5Ʊ0 ;)2G@ e|^m%k#V0).CZO3@#&Ϗ>@s7+nY6)h\ixVq>7yTB~~_~~#xJ1E|Ezyɘ=Y/$/NdwF,b`*X؋`6V~v\YU7Zm㔀KPY210H,N]I4)^MSc@ʠQ	*m?EB{ET"2+y7˹TN e.!elu~!a>8V}JUsChpO\x˽@@a	L )Pe 2Tk9üobT:{#	 -}jXohZbBЄ队#<~!xNKn s
Q,*^' 0V➾VV龚|43q>xkz@m h`5NFW)7>@:E6*P,Z!\*)OsSpNou[vTZn{7FԍAe$?Avk)JOf뾎nֱy/'u})S8~Fu܃kOpxKj1:Ʀ%E1>O/<39Nn	ڼGlaŇ&7e)0U(L;˰@MRtF5I	x	lck(r`3/ºSG}p_.Ɣ=D{`v{1rVd?uq(eUoq:d J_xAK1{~E2dw2"EeM{NlȚ*{{I$݀`&v@tPt=&cb'03FDP"bKP6؀Mk6Oz~V՝~Kp֗`tL43 S)oH=/F?ʎK<Nѽ^-:2T9*|]_\cS^sMTx%˱@@Q	Qe
F;NJ1(]E*z T5a7KSȄYR\#a%ˎlG^ 2#4SdQZUcy}.35"ԟxJAFyeÝ'qG]Y&HXh)$H;P01-^΁{Idu@?P_% WwBT`$ 3Ʃ>a(!1+.F 2Z- 웎bJ?^~,ګK{}x;Z/nU6矋Y>N0*?|s-duxMk1Eo/Sy&y)E\Xh.CΌL#ׅ+.1F-)];z:NqJ:z6Oec`@g堍Oj!iL-A~ai>Wꍚ%O.<˽|sO~f-d`"IJq[\JHlq,6yP)UE'ȿ}WLRpaLxı0@@e&% }pAQtG^
;ә}VPBj3ظl>aլ{2{`5gcL M ?x5ɱ0 AEL$Jɴ)e xxI?cZ}CK@6Q*9`{[WmsԮ0$bC<n\~$7x5ƻ0 ;
L-6sPȲ\r9	dcPUi=%Ƚ5Q&2#BdJzmXHhb8A`05B~Y}nX:#Z-x5̻@ P"E`6sPD1A6`1FҤ{ջk=sT ^
)4W
R4ccG#7$*a1bJ9?n`0_,"xOK0K%1D
Je֛zxMliSoo=2.^%r#(#Z;N4VM6iMF0PhO]	\Lrsk>l1ϹbW'cn~P>OejN(  5roxn7A'Ǖ˘ho
s}^ŏ^/sPxŹ0 %#CJB@{
`k#bl4
JbQ#DxsZv$ALS&@dRF1ʚi~?#sHx50E%
Lwe
}(B^`8E'cwdnE:T=11Uk*v'i:G/cIF9"xN0Fw?wd_ۉS!ԙ@u!	n0R*?JLu(x:1#k&D܉9R:y$ DZvn<+*
ɵ t꼌Rf\OxӶjKOue&V+wvlkˢi5^קnq7Ǫ۷٪?;_j]?3vT*
Ic⦃?\1V#JaYJ'S)3Q9ՁxK D(Nch4rnv,b2ӓTuevz9BDe@#WTv  UJ!e,&:n;[*-|-8KˏTZ'^Ji{익E[+\n\pYߗ)6]8ĴSڅ?[lxAJ@FsK$d2ID;x3&R]
BVŅTWVh)*i2 Z+A-%S =/q@eYIT2BĞ
 BTB`21ΕJeQӎ<4*Q6=rC%kA}Sڧnm@؎ɛ]|qdg+;k۟E;jvon$\f<I]`ExAn!b-eƲ!/!FZr8#ߺK걪楠Rv1N/D\x6`ʊM9FE)'Kam
_uwpSNߴ_a႑X<蹎7M.:P 	d@zVcGӼ_9eBx;tiFrQRIjeYiyRqXc3K3Sl < vExVOV_቗MSM\-VNU6U\gP h(T􏙯<_5%{|s- \f	9W@UE	"J` D(Y?B%"LRɀ߯~2NdXV2c<!A*ՠJɠJJ@QJ	a@D"*&<ȍƘUN7@~trV=.+ؗ8
QI9&Q4:tc|L6]Z;gԒjSRTjצ$bs_fڋZ͵;@@Rz| eG`Q9r#bܵ!{T-oizn Û8\L 0spwX[{Xnֶra߶KکV[vYL%E`^hAiPt!+	?2Ñ=9U6vWCx8Auo$8rQJĳW%!0 n1.*qM%G^b"K{JARMh9AD@'c#B"3$'p;qNP!c<KG]y,PB<ܢI,x:I]q\:%&D2F+/JsaTB%&òѳc)ϱ}&&Y9T8:vF<}7kV陳Q<jN5:^^ۛo;KpIzWbZϝ_ʟO;Oۥ,?8wsn6vj<_6U8_; 4xR7h)'+gfnK]_enۍ{RGXlN]9Ǟ˨6dcn8Ks:| g(+Vi3'k	߾	poO:+c>zT4:o'
؝J yfb7Oƽҝ$]+#<$pk){RȊ$ջ(tFoe:o7j]1Q&F{m{pc	GNL1뼪z:tĲ׵?}]FG}$E)"K}xRN40<=0L@_.:6`Z=KKs:Z ?7;xU_OP3,FcBb73c`mu-^&b.F"!1g8#Ad,SkǾ7~{Nˍ|+`iڷ{<j\bKF}2+p4`X	M8./-ho`(D As=z8a ð@`D (^GrRǉs(`ItGtޢ7~\h%hD.1FN2[6Wtdi?:4<,a9Ak0:V6޼K/S-GkބSEyyO 3f&)hia60Wʳ^Vr̥NtJ(fQ3u[@?RpfkX>him	-=,)(6E٤QdT8gsF%{jjf~DcQQu)-9@εE83N5&+(iOr-`h8"FG%/9=;q"R_Lm
f!	&2`,6>''fJޮo:=}Oj(mXPȎGeo54f-{럾ʋUj][kNkw/Nw_;ԖWᎣXUGu$6RN%=x=kQ1xk%kΝ6QZU{&;;foI#~dF[(6jc!v@BdEkOs{x^8c&@,P*Q]H(!B&eBbP$2 qeIQ1~}h4TH'Ua1	5fT!;iA\dDg\s*p!]$Hi 5Am5:NK`.q+6kkd(%-]LVQ8B29t9IZ;v;6nLh,?_:$/{gvF{ÃX#*ca|4/EwXz(\U'JES"YTqr	Vdg×h˶aEH^BK	]՝[^iWQUNڏS
Ȏ@_'xukAMbA+92;3`FAlDO]=6sjMXi@XUnO4{Ī+sʐ	c1fZaZ#	RI:4$aHKZm`qia"
B㈑$(ǚGb>! ))ouK)msQafbٙ+SWa;[٬{//pFYx[L;Z'/,uCzAQk5ntszoՃς2vSwի a^k@B-t&gͥцJ+4xQMkA&0a$d3G-0;,l{J"BѲCZ'CE#Q?ԃ'wxP<3<:xs p^
*%pj.G4Te
ʹpaC3R2M2dN*
 L3g̔Ef<9fh0h'MMdO8U~\ۇx t28 WB4تx6.ׯxe{X;჏ѡsX>e	).)8rYEo	>4Oϒ(\K gɒ^<,
,!cpm%|>~C~n6ak+|v׃O~+vF^0jf#|YP:ƾ9<lG"=|LvL.&LHX>},`Qf&̌Q~y4QE>(MkS?wLe#.Ex7u:Rgd*wU&\x?kAƹ5@9Fݙ9D.3;coh!
ANP,c,ҜXXG|#Zi<Ts %"h``BNSh<mZ8Dq	 U\,	(&~  ױCSBQ?jJI&KAaHHޯ]c׽@1%(|	2jr4,G喡wJuK5]$[,nҔGgy[wsofY[ޜRM$YoGK3	l,\E_NE;3g+ȾCm?UPmlG>)v֊o\Vb08z?:هfř?{VOH0s<;5mĹ_&*sPTg,'xk@mv(<уTgL2)"xQЋHI&0͒FXOUKZ'lO[QPkzI׋{ɦEJ{{$LlBܧ:1]x:gt\	F5y,5u96IØM>	28m=P	[bJ*YgbaT65)s\-/];AmS[qcvaPtJoS^B0DDaqBvVֳkNd,y"1dI=dAR&A,%5ۊbKgGm~CRE^.N1jzVeqE Wv+r珉]Í#Q6q0릝Mo{
|,[H_iSڹ
S˕Z>.?ZwV|άK< xkAǹbF`!Ώ7!Ryn
ZaSQa"`)v*	.˅Ow
2j\@f5z	:g

51N+pCweqL 3QfJA'z06PgU7#!6rݿ(M+B+EfXm#.+1Cy]]X%ɯUӾz־оX㟇ӱy~j;y$VFGr}H٬S7o_!߸vƊ83k?ăzm16JϹtr
@C4(\\c$Kcz$GoB_{/dt:aTBߣ_Ǵ&x;kQ d#	Z7,#"*
vbq,UL@D(@6^TIW۝s88ϯ ;6(ai`JJNfxǕf"J 	2*	bkq!0gLZC4p"L"FcA(8Kro%RZyvR[_/%YH9닶b{e]N샮^-}eڹ_UoV_Www};sΓ|tܪnyy
Krsm	\ս3uVC4<5ʉ9)d<P;՘b ڥ`x%}Ϝ;fSKLN-B(dhqcb2fe|w_ϧXB?%]߮6Õ&Br͡t? $xQ=Ae?Fa44mCd>?.TTώѡF3E`3ELWU[HajMu)QqJ`rŔ:?@ji*`mJmeHUmn<UҖO
ʌ;)	.T/0LP\yyZ|s4/5ph*,~ZaA:X<
;ֆsb6`h>wv0ǡq7ڰgM*M4ZNTiϊǯޮOߟ|s?b?9maLH9"ҔiFyr:ՆQ[8
k'jvൃ!u*l/ul0c$iOYմK!_xMPk@ h( v}KEbP.F_^%A(R\+ <.⤢bݔ*|iǡTI	,[.s96򥍤E*t=$ALi\N
*ӣ	$qc"<qajQA^b8ĵ]]
ia˝I}\a;+`#ogFB8J( !OR@I74S$YG*|$A1%y*ip-D1a3Q,;Wx&H,uzwJy_xo>,מ߷{]G|[mmI{X.,YȟGs/彭zji4~Q?nLi<6' _j`*iJ/Wy_Ux#R[qnHmnyH-\P_n>$l*xtree 1c2d6dee456d2a46a4c812beb7d6eccdf053834c
parent b233eb9ef021c0ee121611fa3bafda6c21d65523
parent 2cf0fc8b5eb07ebb1b2333e40c532b1c32f32e1eA60028J60028 +0800

!5322 merge node_type_split into master

文本node_type拆分

Created-by: tzcurtain
Commit-by: tzcurtain
Merged-S)/issues/4129.*node_type.h太大 需要对其进行拆分U1I将native_type中文本相关的枚举抽取到各个组件开头的.h中H6:Npx] 是否经过评审 是$ 6I2322]+*xNtree 4ddaa1bca7bba88f4108409b02d38b5f96ed8e7d
parent a7956869e374d16256ea552cd908e351eed891be
parent 68d44e14e79a2e1f76cef38eb8955d949da9eff4?0329440H0329440 +0800

!5266 merge cherry-pick-mr-5219-1780126530335-auto into master

scrollBar 新增设置高度和可交互的接5

Created-by: dlh11234
Commit-by: dlh11234;yangcan18[)*/issues/4085?ref=&did=4057635#tid-4057635
.2
scrollBar 新增设置高度和可交互的接口V01scrollBar 新增设置高度和可交互的接口7! ] 是否通过C语法扫描
- [ $ ] 是否更新json文件
- [ 4$ YV 26S是否经过评审$x/ ] 否H@x 	 :        docs/pull/138840
- [ &366x)kxntree a7601b880886649ad66f31a16633c824dc52e8cd
parent 99d8ef7b3098bb47ec5f1a1710b8a9faa418ec51
parent 10a238eed1ba704d6a17e718da08b1d87a0f06d@0317723H0317723 +0800

!5063 merge add_zh_api into master

资源管理CAPI注释优化和中文API提交

Created-by: leeduo
Commit-by: liduo[)/issues/3924..资源管理CAPI注释优化和中文API提交U1.资源管理CAPI注释优化和中文API提交:S不涉及，CAPI注释优化和中文API提交
- [ ] 是否通过C语法扫描
- [ $ ] 是否更新json文件
- [ 4$ YV 26>1x] 不涉及，CAPI注释优化和中文API提交p是否经过评审$ 6I2063;',x<tree d4f6922622056e482806583a39ab1ed5a12ef5f1
parent 63e26f510f7d8c37e99e2f27445465c2b739904b
parent 3139535c1bab968e15c01615be54d8dd652fb7a9?0051008H0051008 +0800

!5239 merge master-0527 into master

算法库CAPI注释优化

Created-by: lanming
Commit-by: lanming
Merged-by1.（1）按照最新规范对加解密算法库CAPI的注释进行优化
（2）提供中文版本的头文件

### 描述（做gI加解密算法库CAPI注释优化，以及提供中文版本的头文件4仅修改注释![image.png](https://raw.gitcode.com/user-images/assets/4379443/f5bbab5f-bfc3-47e1-9056-5ee1ded8822c/image.png 'image.png')

##82lx] 是否经过评审$ 6I339Y3#_x;tree 966dbb88a3dfdf6ddc38d248286f5d4d192617f9
parent 04fa859c6616b236cc46481f5187d5ad11e16f8b
parent 87813aa603126802829142b1a1a03303bab13dae?0050702H0050702 +0800

!5180 merge textPunctuationOverflow_0518 into master

文本组件支持行尾标点符号悬挂

Created-by: ja"vafreemanbao
Commit-by: FreemanBao[)/issues/4024.*文本组件支持行尾标点符号悬挂U1L文本组件新增punctuationOverflow属性，支持行尾标点符号悬挂H6Px] 是否经过评审$x/ ] 否H@x   docs/pull/147396
- [ &2180E&*xitree c9d814cf872ccefe5a45f46674e993b120f1b49e
parent 2c1c0fd912e46822162b895cbadd5e5c0e90b768
parent 190593df7453a83aa298f61c9c95dd130e4073bb>7928501H79285015 +0800

!5189 merge dualencoder_interface into master

增加视频编解码预处理能力查询枚举值

Created-by: rchdlee
Commit-by: rchdlee;[#4030]( )/issues/4030) .'支持查询视频编解码能力查询U13增加视频编解码预处理能力查询枚举值|$.] 是否更新json文件  不涉及/64/N）
- [-] 不兼容
  - [-] 是否经过评审$x/-] 否H@x   docs/pull/140858
- [-&2189+#xHtree da1bfa1bed1980dc32f6d3be0402d454cc00d296
parent fe58007d41ba3f95fea4e06052fb616082df0a6f
parent 72af2075adf0d3b9212942d295c9001039ecd187>78757864G78757864 +0800

!5140/YAPI参考与注释一致性回刷

Created-by: weixin_42784160
Commit-by: weixin_42784160;.5GameControllerKit的API参考与注释一致性整改U15GameControllerKit的API参考与注释一致性整改7Y ] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/6b0a9358-cb24-4ce8-b8ad-7de1b0d9f727/image.png 'image.png')
- [Y$N] 是否更新json文件
- [Y 4$YYVY26?'N] 不兼容
  - [ ] 是否经过评审$ /N ] 否HeY &2140.)jxktree 0145ab89b1b888a6dfcc7e869f3c68976f2eab70
parent 5cbbfe6d9ce823c460813176d8db6e1ca851a6f7
parent 065f41668e3b36a21ca659f90ff4de8a7d8e42a0>78221863G78221863 +0800

!4997 merge requ_phone_Raster into master

c-force reuse the rasterization result

Created-by: Lem0nC
Commit-by: Lem0nC[graphic_graphic_2d/issues/23388.0支持能力：是否支持更新栅格化结果U11
支持能力：是否支持更新栅格化结果6!Y] 是否通过C语法扫描
- [Y$Y] 是否更新json文件
- [Y4$YYVY26>'N] 不兼容
  - [ ] 是否经过评审$Y/ ] 否H@Y$ & &-sig/interface_native_header/pull/340014997s.J+xDtree 6de187eb3abe9a1c4c8661733e3935106fbe5e19
parent c09bc0f23ed72863334fb4870af21f617c129ab0
parent 70033cabd1f8fedc4a6f0f43b0e5bc32285b2d6f>78146028G78146028 +0800

!5093 merge moe into master

ModularObjectExtension 修改

Created-by: zhangyuhang72
Commit-by: zhangyuhang72
Z)/issues/3946.QModularObjectExtension NDK修改，新增CreateIPCStub接口和部分问题修改U1QModularObjectExtension NDK修改，新增CreateIPCStub接口和部分问题修改7!Y] 是否通过C语法扫描
- [Y$Y] 是否更新json文件
- [Y4$YZUY26>'N] 不兼容
  - [ ] 是否经过评审$Y/ ] 否Ha +-sig/interface_native_header/pull/3378
- [ &2093wT&Yx`tree 31195f51be3d36aba3d5d02e0fa1aa5eca27da12
parent d6bed339345909cae1a20e5025c990f140df90c2
parent b307f068b33a32ad6d41f5d9763505cd84078b3a>7754361H77543615 +0800

!5000/@ConsumeKeyEvents

Created-by: shiyu-shiyu
Commit-by: shiyu-shiyu;.在申请拉起软键盘时，告知输入法应用，组件是否具有消费功能键及英文键的能力

### 描述（做h在申请拉起软键盘时，告知输入法应用，组件是否具有消费功能键及英文键的能力

### 自检结果ﳭ56S是否经过评审$ 6I;  docs/pull/142768
- [x$ &2000H%Ix_tree 49536b74d03da4cf8682df3a4a95ad4c4096e0f4
parent ba495b6f2ec3f9685237e866069318a53aa06d49
parent e582f7b44cdd99ba030e80981bf1eca7fbbfd24a>77538969G77538969 +0800

!4686/:Add JSVM API

Created-by: huanghan18
Commit-by: huanghan18;.U1y![image.png](https://raw.gitcode.com/user-images/assets/4379443/2cfe4219-230d-4014-a1da-f9d42fb9dcc9/image.png 'image.png')
- [#x] 是否更新json文件
不涉及/%—— arkcompiler_jsvm/pull/143； arkcompiler_jsvm/pull/150T6:Np是否经过评审$x/ ] 否H@x —— docs/pull/142236
- [ &14686q&8xbtree caa4822e06b3a0ef388432d8c7f804083945bd84
parent a8f595812e5693e996d3cc8e9f3218adbdc35904
parent 518b426b9f243985d85a851782e359dd360af0be>775238I77523805 +0800

!5077/API注释一致性整改，包括视频编解码、MediaFoundation文件

Created-by: zhanghongran
Commit-by: zhanghongran
Merg6#3926.HAPI注释一致性整改，包括视频编解码、MediaFoundation文件U1HAPI注释一致性整改，包括视频编解码、MediaFoundation文件| ˓6S:是否经过评审
-- 仅修改注释，不涉及兼容性# /$ ] 否
--仅修改注释，不涉及I2077c!%'*xytree d94751bfc09fd3f8068b24932ae264c1bd9799ce
parent cc05d2e7e6c31ecf3d03bb9ea6b4646c272dcb5d
parent 12f6e09a22acd8e53503a0d2e078ffeabbe17c4e>77384140G77384140 +0800

!4955 merge cherry-260415 into master

新增icu4c ndk接口

Created-by: zhangdd-ewan
Commit-by: zhangdd_ewan
:!third_party_icu/issues/271-补充三方库icu的ndk接口U1补充三方库icu的ndk接口G![image.png](https://raw.gitcode.com/user-images/assets/4379443/3ab6ea21-4b9d-447a-914b-1b3ab97a240b/image.png 'image.png')
###9. p(是否经过评审
新增接口不涉及# 6I< docs/pull/142450) &14955<T&3x`tree 086c3bf8b4190bdd2a3bc62534cc722e7ffbcf7e
parent ec748a9292a16812fc0918d6b6c07ce43486d13e
parent 64d1807f3f62f354428c390d3c1f51906bd80c4d>77377852G77377852 +0800

!5053 merge sdkc0427dev into master

添加符号OH_HiAppEvent_ReportFrameworkMemAnomaly

Created-by: zhou_xq
Commit-by: zhou_xq[)/issues/3917.
sdk_c 关联的pr已合入:   )/pull/4804/V07# Y] 是否通过C语法扫描
- [Y $ Y ] 是否更新json文件
- [ Y4  ；sdk_c 关联的pr已合入:   )/pull/4804/
- [ YYV Y26PY ] 是否经过评审$Y / ] 否H@Y% &2053^c(#x{tree c35703bfe563ca76d6d0d023377684454f2c7f1b
parent fa53b46fce2fcdc7e39b2a7f8b35cda1d5e43820
parent c0f601f22b74a6bb32625cb81074f7daf0f250d9>77276967G77276967 +0800

!4995/Mrecording_canvas DrawGlyphs接口开发

Created-by: Askr_w
Commit-by: Askr_w[graphic_graphic_2d/issues/22936.扩展生态接口U1=根据glyphId数组与对应的位置数组绘制文本信息4![图片2.jpg](https://raw.gitcode.com/user-images/assets/4379443/88bbb6c4-732f-4d05-82a1-409678b09158/图片2.jpg '图片2.jpg') YV 26;	不涉及$x/ ] 否H=+-sig/interface_native_header/pull/3391
- [x$ &14995X^'7xvtree b525afd9d3f6e0ab15a49eb0c54364ffe721f044
parent 39184f205fd51d113248f42e8a0d370ac3aad00b
parent 4c6ec211f401dd188f37979fef80b55be4e3119a>77265610G77265610 +0800

!4994/4add isOpaque

Created-by: Concoun
Commit-by: Concoun[graphic_graphic_2d/issues/22955.9新增isOpaque接口（接口在json文件中未声明）U1$在json文件中声明isOpaque接口4![image.png](https://raw.gitcode.com/user-images/assets/4379443/76be62b7-ed20-433a-837c-c5f2f99b8061/image.png 'image.png')
- [ YV 26;	不涉及$x/ ] 否H=+-sig/interface_native_header/pull/3385
- [x$ &14994Lf&=xntree 2f5d7c0d21a8b8b4b155b401388f8cea156a15ce
parent 806bbc70b90d3749a3ab9ebb1fe0ef205ac019d4
parent b67b7a99c61c04dc27cf3668a7be7b8cf4fa734c>77261274G77261274 +0800

!4952/Japi注释一致性修改

Created-by: zhanghongran
Commit-by: zhanghongran;[#3844]( )/issues/3844) .api注释一致性修改U1|= ] 是否更新json文件 -- 不涉及，仅修改注释
- [ 4 $ -- 不涉及，仅修改注释
- [ YR# --不涉及，仅修改注释
- [ 0 --不涉及，仅修改注释4U1是否经过评审 -- 不涉及，仅修改注释$ 5 --不涉及，仅修改注释H14952^ ";x!tree 0051e0c80ca23153f8c9b80beec9cd76a3b479a1
parent cc60ebcc8438ae2ef23169ef914c13ae3689d2f7
parent 5685e0ceb378faf6a023217cccaf00b9b1734dc?77014670G77014670 +0800

!5023 merge cqy/api-upgrade into master

PixelMap 新增 ALPHA_F16 格式支持

Created-by: chen-qiao-yi
Commit-by: chen-qiao-yi;!))/issues/3898?ref=&did=3868189#tid-3868189.
新增 ALPHA_F16 枚举值U1
新增 ALPHA_F16 枚举值H6S是否经过评审$x/ ] 否H@x ：+-sig/interface_native_header/pull/3382
- [ &2023i&lx`tree 7ad2f685a838647cf97496a029a540f318626a8e
parent e145ff9dd58bc5ea91dd6b7bbe51f56f59c6e0ee
parent faa93acec23eeca5799d6f19dfed2c3682111d6e>76933810G76933810 +0800

!4966/Qadaptor Smart Control gesture keycode

Created-by: guoxu1111
Commit-by: guoxu1111[!multimodalinput_input/issues/7222-%adaptor Smart Control gesture keycodeV0%adaptor Smart Control gesture keycode6!Y] 是否通过C语法扫描
- [Y$Y] 是否更新json文件
- [Y4$YYVY26>$Y] 兼容
  - [Y] 是否经过评审$Y/ ] 否H@Y! docs/pull/141206!docs/pull/141220
- [&14966Y+\xGtree ef6ac12fc941eb6fd50668f97f7ac384ad7466a6
parent beb2cec04ff9a3ca7cf681088aa1e7fb775a5135
parent f93b784ef1c21e70df0a21d242079a0e7dbd0a85>7667223H76672235 +0800

!4975 merge closeSwipeAction into master

添加NODE_LIST_BACK_PRESS_BEHAVIOR的CAPI接口

Created-by: dlh11234
Commit-by: dlh11234[))/issues/3860?ref=&did=3857519#tid-3857519.0添加NODE_LIST_BACK_PRESS_BEHAVIOR的CAPI接口U11
添加NODE_LIST_BACK_PRESS_BEHAVIOR的CAPI接口6!Y] 是否通过C语法扫描
- [Y$'不涉及] 是否更新json文件
- [Y 4$YYVY261 Np是否经过评审  N
- [/ ] 否H< 2docs/pull/138840?ref=&did=8498894#tid-8498894
- [x$ &149752h"$x.tree 0d1346ded7fc2809f370db5e1746eb9d1774f52c
parent 8ddd38259e1bb94dd9053a6fc1966e201001300b
parent 843fa53cf18e4186c825386c286da5cd0b341040>76424252G76424252 +0800

!495.appfreezewarning 支持hiappevent订阅C接口开放

Created-by: Chenyufan466765692
Commit-by: Chenyufan466765692
Merged-by: oN))/issues/3848?ref=&did=3854834#tid-3854834.4appfreezewarning 支持hiappevent订阅C接口开放V04appfreezewarning 支持hiappevent订阅C接口开放G6P.x] 是否经过评审
不涉及兼容性变更# 6I14958H7׼)bxotree a549f970860850d2bc9c83ff939aa3d521267ddc
parent 75780ef0d62c2befdfe5eb8e6ef00d199c717fce
parent 9437954aee464056459932904c4c5d52a29929c9>76394417G76394417 +0800

!4870 merge fix_master_0402 into master

modify api version of ai mouse key

Created-by: infinite_chaos
Commit-by: infinite_chaos[)/issues/3776.9鼠标AI键多模键值2732、2733从API24改为API26.0.0U19鼠标AI键多模键值2732、2733从API24改为API26.0.07!Y] 是否通过C语法扫描
- [Y$Y] 是否更新json文件
- [Y4$YYVY26PY] 是否经过评审$ /Y] 否H@Y! docs/pull/139940!docs/pull/139907
- [ &14870])xgtree 744e9d68d19d1778a36e8c9ab22bfaaadf8c0635
parent d8bb25bdde5891deeb15ebf0443e59327867ad38
parent 5a56fdf9c6ef4018450716524f2e1dbdd37230c8>76392641G76392641 +0800

!4963 merge featureA into master

correctingErrCode

Created-by: m0_70157465
Commit-by: m0_70157465
Merged-by: /!graphic_graphic_2d/issues/23303-错误码整改U1更换了新的错误码| 
![a.png](https://raw.gitcode.com/user-images/assets/4379443/fd1f0efc-0633-44f3-a482-6f440e33b2fe/a.png 'a.png')
![1.png](httpsa://raw.gitcode.com/user-images/assets/4379443/df4b37c6-d6fe-4198-b3d4-015894e4c183/1.png '1.png')4Rx] 是否经过评审$ 6I14963|D߽#*x?tree a6f7a2b244ab83f15b0b9c22932aa7aae24a5e65
parent 1d71d2ee5b7c7e9a63943a247aec32ae08edf6cc
parent 63a5373c74559f70f11436d969d53a1a1d488c41>76343780G76343780 +0800

!4770 merge cqy/api-upgrade into master

增加升级版新接口

Created-by: chen-qiao-yi
Commit-by: chen-qiao-yi;!))/issues/3785?ref=&did=3836648#tid-3836648.
位图接口易用性优化U1D
增加了 8 个新接口、2 个新错误码、1 个新枚举值。H6S是否经过评审$x/ ] 否H@x ：+-sig/interface_native_header/pull/3351
- [ &14770Ti#yx4tree 6121e84933fff907c0e67ce8660bdf46404f02ac
parent c7d829f8d9bac6478d3f91d7ee5164d9aae1731c
parent 9391fc156e0b2e3a1547798abbd8e1c38e502f32>76342242G76342242 +0800

!4904 merge styledString_0409 into master

【RichEditor】属性字符串支持lineHeightMultiple和lineSpacin3g

Created-by: javafreemanbao
Commit-by: FreemanBao[)/issues/3807.A新需求，属性字符串支持lineHeightMultiple和lineSpacingU15属性字符串支持lineHeightMultiple和lineSpacingH6Px] 是否经过评审$x/ ] 否H@x$ &14904A޳$=xDtree a1ad4da1fc980cc0dd7a83e3a493a04b75b1d2b3
parent f79318fc40615910da7774bc4d355f99eb5b4873
parent 48df048759fd941a2d7c276d539972a56c9f5e66>76327412G76327412 +0800

!4808 merge decoration_0326 into master

【TextArea TextInput】支持装饰线

Created-by: javafreemanbao
Commit-by: FreemanBao[)/issues/3724.-新需求，文本组件支持文本装饰线U1!文本组件支持文本装饰线H6>(NA] 不兼容
  - [Y] 是否经过评审$x/ ] 否H@x   &-sig/interface_native_header/pull/3270!docs/pull/135998
- [ &14808-x,tree 2293c4e8357a71f10ef775908c4d12e917f325fd
parent a063912440ca51b10b5aa05d59c4b5c54fd76625
parent e27f41444099a542f33632da60f28f2ea7cca8e6>7614733H76147335 +0800

!4892 merge FixDocScan into master

修复API易用性扫描问题

Created-by: SKY2001
Commit-by: SKY2001
Merg6!))/issues/3797?ref=&did=3839787#tid-3839787--API接口注释中补充缺失错误码描述U1-API接口注释中补充缺失错误码描述4X添加注释，写法符合规范，不涉及联想
- [ ] 是否通过C语法扫描
- [ $ ] 是否更新json文件
- [ 4$ YV 264l是否经过评审 （N）
- [ / ] 否H=9文档中本就包含该错误码描述，无需再修改) &14892=Ey,tx4tree b966a1db009465b694cfb8235f192c5b124eaef5
parent 342ecbbd28b0d86b80a8b6fac79d22fa622b8f3a
parent 33dc5f23caee3f1033726c2cec2359850e184b02>76147247G76147247 +0800

!4881/:修复ai检视意见

Created-by: const_long
Commit-by: WJ[)/issues/3755.#ai检视意见中注释拼写错误U1将注释中拼写错误修改7!X] 是否通过C语法扫描
- [X$NX] 是否更新json文件：只修改注释拼写错误，不涉及实现
- [X4 5：只修改注释拼写错误，不涉及实现
- [XYR5：只修改注释拼写错误，不涉及实现
- [X00：只修改注释拼写错误，不涉及实现4@)N] 不兼容
  - [ N ] 是否经过评审$ /X] 否HeX&14881A^#Ox4tree ebcd223aac2b14d631f44d9bbae33dea9e92a229
parent 945819ef07c409fd6ebf9df592af3ae5ce1390e9
parent b14419347f0ee132e5c23b99d790aef95c507f38>75815093G75815093 +0800

!4835 merge 0331 into master

支持命令式节点跨语言节点树操作

Created-by: wangchensu1
Commit-by:
 l00957130;!)/issues/3745--支持命令式节点跨语言节点树操作U1-支持命令式节点跨语言节点树操作 !arkui_ace_engine/pull/82948/diffsT6Px] 是否经过评审$ 6I?x$ &!docs/merge_requests/13850814835"x(tree 2ec35d7b0616140b8aa3ca070be9bbbef01da202
parent c71384c5310cd91f81505b8883db954dcd145f2c
parent 5dd9d9dea59b02bbc3292889f3c26401dab763fa>75808874G75808874 +0800

!4889/`Add JSVM API: OH_JSVM_CreateArrayBufferFromExternalMemory

Created-by: knightaoko
Commit-by: wwq[)/issues/3793.4新增从外部内存创建 ArrayBuffer 的接口。U1。PR:  arkcompiler_jsvm/pull/135T6:%—— 新增接口不涉及兼容性p是否经过评审$x/ ] 否H@x 。PR:  docs/pull/137932
- [ &14889#"Kx/tree 4a29a1538f99bdf45b41e845e3a9c82ecbc9b46c
parent b5ea5614fe9acfbc601911429e5cb787ca7659b1
parent b07c2efdb244ce794fb4184fcecbd2efaa038a7c>75720338G75720338 +0800

!4891/<update sdk_c for capture

Created-by: junoo
Commit-by: junoo[)/issues/3795.API24接口更新U1V删除API24新增错误码、新增手动曝光模式枚举、物理光圈接口调整 PR:  %multimedia_camera_framework/pull/4485T6Px] 是否经过评审$x/ ] 否H@x  pr: +-sig/interface_native_header/pull/3329
- [ &14891ص
xtree f940c66012132ad41b11b5b144d64aac6d57ba47
parent a8657151643334891b54eb767400ae8206688074
parent e938c56c02372c8020020ab1d1c9c1a45073ced9>75569058G75569058 +0800

!486.Q多模键值2740从API24改为API26

Created-by: chenhushan
Commit-by: chenhushan[)-js/issues/22743.#多模键值2740从API24改为API26U1#多模键值2740从API24改为API26H64lx] 是否经过评审$ 6I?x! docs/pull/137220!docs/pull/137205
- [ &148682R9'xptree 6c2df702e7dfb149ce1cac98415efbc7e2500041
parent 7947193be407f5a5587142c805c1505111a51c16
parent 0509b1cab41c84f03b1a29e9cd9cbc66726ab0a8>75112656G75112656 +0800

!4824 merge api1z into master

添加首选项capi文件接口注释一致性

Created-by: hhermanwang
Commit-by: wangjiaqiang;!)/issues/3738-
需求V0:api注释一致性修改，用docs仓回刷道interface仓H6S是否经过评审$x/ ] 否H

现有67个NDK用例全部通过
![image.png](https://raw.gitcode.com/user-images/assets/4379443/001c3fe6-6754-4c63-924c-dde728c87d69/image.png 'image.png')148244+
#x2tree 25f7a3dbf8ae87b361fdd0f5096862c19b50dba8
parent 7f2e3c66a85e03f0b8448b1519aaea59cb5d2da4
parent 72e123e7166991a93d14dc0560868fd2daabb3ec>74945299G74945299 +0800

!4819/Gadd ddk api for usb hub

Created-by: liuchunyu20
Commit-by: liuchunyu20[)/issues/3734.U需新增DriverDevelopmentKit的USB控制传输、查询非root集线器设备的CAPIU1R新增DriverDevelopmentKit的USB控制传输、查询非root集线器设备的CAPIH6S是否经过评审$x/ ] 否H@x ： docs/pull/136120/diffs
- [ &14819="Ex$tree 9143ca09e99d7d0db6357679a907a48951835795
parent a35f5a90eb38692fd10c9e947b0080f868494212
parent 027d376f4de686da448139870377765402cf85c?74928179G74928179 +0800

!481.AOD触摸屏单击事件API注释和文档描述保持一致修改

Created-by: chenhushan
Commit-by: chenhushan
Merged-by: opeL!multimodalinput_input/issues/7167.BAOD触摸屏单击事件API注释和文档描述保持一致修改U1BAOD触摸屏单击事件API注释和文档描述保持一致修改H6Px] 是否经过评审$ 6I14818Ro)yxhtree 28b5b054c9db3d1eaca44390b9a1cbece69ead41
parent eb4d81b9cc934e6cdcbd16d5c4665136bd650885
parent aff4a4bed6a32770a08c10f26bcaaf25c81dce16>74842939G74842939 +0800

!4815 merge master_new into master

add OH_MD_KEY_ENABLE_BUFFER_SKIP_SAMPLES sdk

Created-by: karnstein
Commit-by: lintaicheng[multimedia_av_codec/pull/7745.6添加key用于控制音频skip samples功能的开关U16添加key用于控制音频skip samples功能的开关7"Y ] 是否通过C语法扫描
- [Y$  Y] 是否更新json文件
- [Y 4$Y YVY 26>(N ] 不兼容
  - [ ] 是否经过评审$Y/ ] 否H@Y! docs/pull/136177
- [ &14815% xPtree b23b4036dd2fa26923cb47d0950e780f209975bf
parent 2ae59ddeb2d5aac54c1e6376bb75a6a484f0f75f
parent 4edbb831bfe44b216eda9ce4b56d7e29391a88ad>74605631G74605631 +0800

!4807 merge featureB into master

add ConvertToSVGString api

Created-by: m0_70157465
Commit-by: m0_70157465
MeXgraphic_graphic_2d/issues/23014.U14![20260327_ 94521.jpeg](https://raw.gitcode.com/user-images/assets/4379443/3037fcf6-6edf-433b-8b35-d03999b28885/20260327__94521.jpeg '20260327_ 94521.jpeg')6S是否经过评审$ / ] 否H@x 	 docs/pull/135970
- [ &14807IF x tree 6bddcddfd7bfb448dad69bda6d07b2a53e14027a
parent f0639f8cd30b693c227c1e393535e2458b6b42bf
parent fbd57b01ee961fd410c070de930421b780f4fe62>74599042G74599042 +0800

!4702/RAOD单击事件API枚举对外暴露

Created-by: chenhushan
Commit-by: chenhushan[!multimodalinput_input/issues/7022.$AOD单击事件API枚举对外暴露U1$AOD单击事件API枚举对外暴露H6Px] 是否经过评审$x/ ] 否H@x  !docs/pull/132965!docs/pull/135850
- [ &14702O%xRtree 2a7d72202c1d55294728d335d6110cd11701a2dd
parent 38d2999833a9f6880804af29222ebcab8331806b
parent 710e515f20463e5a7a134d920124adb49ee3ea0e>74515538G74515538 +0800

!4706 merge rjj into master

add ResetClip api

Created-by: m0_70157465
Commit-by: m0_70157465
Merged-by: openhJgraphic_graphic_2d/issues/22695.U14![20260323_103215.jpeg](https://raw.gitcode.com/user-images/assets/4379443/78bf88da-6c7e-47e9-9d4b-54158110604d/20260323_103215.jpeg '20260323_103215.jpeg')6S是否经过评审$ / ] 否H@x ： docs/pull/135137
- [ &14706H*qxVtree f243a122117aeb4c193a5154c5cb86706563e03f
parent 40b9672d9c5d6402db0f17feec65b088a8d41c5c
parent 7c49fa715f11aff412bc9704b2e0e5b9ddaf3bd2>74495934G74495934 +0800

!4758 merge nSPApi into master

新增通路能力查询api

Created-by: gcw_O7hu6ZQF
Commit-by: gcw_O7hu6ZQF
M9.新增通路能力查询apiU1新增OH_AudioStreamManager_IsMultichannelPlaybackSupported、OH_AudioStreamManager_IsDirectPlaybackSupported、OH_AudioStreamM'anager_IsOffloadPlaybackSupported接口7!Y] 是否通过C语法扫描
- [Y$Y] 是否更新json文件
- [Y4$YYVY26PY] 是否经过评审$ /Y] 否H@Y   docs/pull/134254
- [ &14758&*xetree 2ddd4d47074068d5528ed1dcc27a0063fce5f4a2
parent 5d0d11097b687fd46eb77a70f2c7ddc89f361623
parent 03cac62ae1bdedc252f51db5a3d8505ef9e9303c>7427268H74272685 +0800

!4774 merge add_api_for_setMuteHint into master

Add api for set mute hint

Created-by: wzy_dthq
Commit-by: wzy_dthq;3683.新增API setMuteHint，支持基于capturer和session粒度对录音流设置muteHint，用于第三方应用传递自身的
音状态U1新增API，补充SDKH61N新API，不涉及p是否经过评审$x/ ] 否H<+-sig/interface_native_header/pull/3241
- [x$ &14774<2%xZtree 5d0bc74e20e8b82eb246d59306a42c43136f4558
parent f47356b5a3c092053f5070daa1d7351b9aa5bfc8
parent 6a47370593c7222e29093ed8fa23eae77cdfd681>73666152G73666152 +0800

!4718 merge addCinepak into master

新增cinepak解码

Created-by: zhaona45
Commit-by: zhaona45
Merged-by: opM)
/issues/360E新增cinepak视频解码的mimetype，用于创建视频解码器。U1E新增cinepak视频解码的mimetype，用于创建视频解码器。 multimedia_av_codec/pull/7560T6>'x] 不兼容
  - [ ] 是否经过评审$ 6I< docs/pull/134379
- [x$ &14718ll"	x'tree ed6d487cfbfb54638be5279715c15802fca55b51
parent 78c8ff00384b9f17a6884fcc726b455f2202370f
parent 659b82cfd519a93a3ef0f2f7a91bd680acc524e8>73662293G73662293 +0800

!4659 merge dng_0226 into master

获取dng图片的rawdata和元数据c接口

Created-by: zhaona45
Commit-by:	 zhaona45[)/issues/3581.U1H6Px] 是否经过评审$ 6I?Y% &!docs/pull/133064

![dng (2).jpeg](https://raw.gitcode.com/user-images/assets/4379443/342b7703-f4c5-40f9-8545-334647719734/dng__2_.jpeg 'dng (2).jpeg')14659dg%@xQtree 7a8067b6d2c68041099477ca5fa4582f2ad29430
parent 3181a340d28137cacfffddcc9404302726da007c
parent 0fb56725a4d8ca55db8711d6ee6599591abb424d>73050688G73050688 +0800

!4675 merge 20260228 into master

fix the inconsistency between the documentation and the SDK

Created-by: wanxiajing
Commit-by: wanxiajing[)/issues/3607."
SDK与文档不一致问题整改V0
修改形参G6Px] 是否经过评审$ 6I?x! docs/blob/master/zh-cn/application-dev/reference/apis-arkgraphics2d/capi-drawing-text-typography-h.md
文档已更新
- [ ] 否!14675t"!x%tree 586d50b685a51896f195f20de3bf2a5f879653c6
parent b5060f52fc90d706e0b21b38fae73fa891757b0a
parent 39e9f795a054764df9b98ab134bf157c7993e100>72850128G72850128 +0800

!4676 merge 0228-ndk into master

元数据接口注释修改

Created-by: liuwanlin9358
Commit-by: liuwanlin9358[)/issues/3591.API接口注释不合规U1?修改API注释，在新引入错误码后标注生效API版本| ˓6Px] 是否经过评审$ 6I?x! docs/pull/126698 +-sig/interface_native_header/pull/3065
- [ &14676M2p(Vx~tree 664f0bd4557b3b202d240627602a50d8ff2843e7
parent 919158f3e8d3caa422f426cf11024f3cad606e32
parent a39b04c86cdc03e9e3f3e7a088a8100c73dc827d>72699873G72699873 +0800

!4666 merge 0226devsdkc into master

Add param configs for APP_CRASH

Created-by: zhou_xq
Commit-by: zhou_xq
MeXhiviewdfx_hiappevent/issues/591-(添加属性参数宏定义，支持CAPIU1(添加属性参数宏定义，支持CAPI7#Y ] 是否通过C语法扫描
- [ Y$  Y] 是否更新json文件
- [ Y4! #hiviewdfx_hiappevent/pull/525
- [Y YVY 26QY] 是否经过评审$ Y/ ] 否HAY! docs/pull/132467
- [ &14666"gx.tree a5054678d1c2397d0dd02df4bedb297cd7cf73ce
parent 6b83ccd7b3b3643ba09ec260fea032e584b93b7b
parent 7272f9060a1525f5b631ac8a310a544dfc72e116>72107779G72107779 +0800

!4611 merge zdy_fx_since_210 into master

修复OH_AI_TensorHandle和OH_AI_TrainCfgHandle的since缺失问题

.Created-by: St_Universe
Commit-by: stevenzhang[)/issues/3557.:增补OH_AI_TrainCfgHandle以及OH_AI_TensorHandle的sinceU1Q在OH_AI_TrainCfgHandle以及OH_AI_TensorHandle的上面增加since和brief文本H6S是否经过评审$ 6I14611mգ'%xvtree e10bc7681c5981f5c43197f988c1172bcefd118e
parent d5f230ae5dc0dd4f240b79bc16ecf95e0f998d49
parent c3798e49cf918af81f95478c2f72fab4d7b68f56>70816409G70816409 +0800

!4615 merge matg into master

fix image kit addtogroup

Created-by: aulight02
Commit-by: aulight02
Merged-by: o..,SDK的addtogroup和Docs仓的模块不一致U1>修改SDK的addtogroup，使其和Docs仓的模块保持一致H64PN）
- addtogroup字段修改，对应资料官网的模块，不涉及兼容性p是否经过评审#Naddtogroup字段修改，对应资料官网的模块不涉及新增用例
- [ / ] 否H14615"xZ"+x.tree 9badc3e177710b65312bdf282d8d7e68f06dd068
parent 47144759ceb5bb262dd389cf9a30667c98d10ca2
parent 4f97915771f88f5f6d9800469d5307cfca62400d>70466299G70466299 +0800

!4591 merge spanFontWeightEnable into master

C-API支持Span和StyledString全局字重屏蔽

Created-by: jiaxiaguang
Commit-by: j00802335[)/issues/3539.0C-API支持Span和StyledString全局字重屏蔽U10C-API支持Span和StyledString全局字重屏蔽 YV 264l是否经过评审$x/ ] 否H@x   docs/pull/130189
- [ &14591H!ixtree 7637d44395a1080d9ddb601b6447632f157dd734
parent 2b234ff46287d9a43cd3fa8d158955d7329ba1a9
parent b6ed1501ed9c45a9ff880b691f98495dfd2f6cde>70283523G70283523 +0800

!4576 merge cqy/fix into master

修正拼写错误

Created-by: chen-qiao-yi
Commit-by: chen-qiao-yi
Merged-by1!))/issues/3524?ref=&did=3748008#tid-3748008.
文档中含有拼写错误U1
修正拼写错误H6S是否经过评审$ 6I?x ： docs/pull/129323  、  +-sig/interface_native_header/pull/3092
- [ &14576Ğ$xGtree 49ecd466d8807364efd8391e78997055848c769c
parent 2f8de1ce6f757f342ece12803d971e4ca8032a93
parent a0d1e7c0930d34d7c295ad4ad0096ba5a988d80b>70260153G70260153 +0800

!4588 merge addOnNeedSoftKeyBoard into master

c_sdk: addOnNeedSoftKeyBoard

Created-by: wangxiuxiu
Commit-by: 
wangxiuxiu;#3536.addOnNeedSoftKeyBoardU1addOnNeedSoftKeyBoard| ![image.png](https://raw.gitcode.com/user-images/assets/4379443/eb264a9c-64ce-4509-b8a4-31bc22c16268/image.png 'image.png')

##8Nx] 是否经过评审$ 6I?x$ &!docs/pull/12961314588nJ+nxJtree 1d0ee75fb7000058e889d118341f1641cb2c4775
parent 28e6f9094ee99ddb61777ea65ad3e9e9b44916cd
parent a91fd10b69404e7a34b4e0502cb688a2489e8b6d>6958473H69584735 +0800

!4555 merge sync into master

屏幕管理接口格式整改

Created-by: chenpeng299
Commit-by: chenpeng
Merge5[#3512]( )/issues/3512) .屏幕管理接口格式整改U1屏幕管理接口格式整改7Y] 是否通过C语法扫描
![image.png](https://raw.gitcode.com/user-images/assets/4379443/5f6a2863-6488-48fb-9e06-57ba5e9f9abe/image.png 'image.png')
- [NA$N] 是否更新json文件
- [NA4$NAYVNA26>'N] 不兼容
  - [ ] 是否经过评审$ /Y] 否HeY&14555f$3x@tree fe8eb6e01c3575f5e4f956b4d5e55267a7ba5fc7
parent 757078e02ad2b610e7fbf3db778d96d7efecaea9
parent b0d5494c73a6777e39e0fef98b2ee1ac9ebb4da4>68376572G68376572 +0800

!4460/=内录接口SDK合入

Created-by: yangjcc
Commit-by: yangjcc;$新需求：新增内录接口上库.新增内录接口sdk仓上库U1f提供给三方应用使用的内录接口，可通过调用内录接口，完成录音流录制流程 %multimedia_audio_framework/pull/13096T6Px] 是否经过评审$ 6I?x , docs/pull/125356/diffs
- [ &14460 'x|tree cd84d877eba0b7074711303eda692fb9701c48f9
parent ec431d82dd752af7108f00e1860a936023439c23
parent a5ec46c88d6c5fa930b34cc51ac3badd51ee9475>68039033G68039033 +0800

!4484 merge fix_jsvmDes into master

fix jsvm interface description in jsvm.h

Created-by: gaojunyu
Commit-by: gaojunyu[)/issues/3451.6sdk接口功能与源码不匹配，返回值不一致U1<修复了一些接口的返回值信息，对齐源码实现7# ] 是否通过C语法扫描
- [ Y $ ] 是否更新json文件
- [ 4$ YV 26:Np是否经过评审  N
- [ / ] 否HAY" docs/pull/125558
- [ &14484]xtree 36facc2381609e9725c97404519d59a0c93c673a
parent 929d8885002d67ef1cf2d0b1c4be99135e009652
parent 16c7e3a88f8f5f626d206d36fef3258fd23f161d>67711847G67711847 +0800

!4476 merge erroCode into master

c errorCode

Created-by: weixin_40599145
Commit-by: linzs
Merged-by: openharmG)/issues/3445.U1cherry-pick se PR:  )
/pull/4319H6Px] 是否经过评审$x/ ] 否H@x! docs/pull/124374 +-sig/interface_native_header/pull/2980
- [ &14476="x,tree 5b31bc417a3b8a622a1e0097c6460231bb484582
parent c6873c3a21fd176154d228a7cdf0cce62ee0508d
parent 3f5a7109afa780ca59cf78f98fe650139decde5e>67696450G67696450 +0800

!4471 merge cqy/fix into master

增加错误码注释细节描述

Created-by: chen-qiao-yi
Commit-by: chen-qiao-yi;!))/issues/3439?ref=&did=3706725#tid-3706725.1
历史接口注释中的错误码描述不详细U1"
增加错误码注释细节描述H6S是否经过评审$ 6I?x ：+-sig/interface_native_header/pull/2901
- [ &14471m=!Mxtree 2a356c85a57586dc7ba4ea095a104e74d51f9b41
parent 6319893cf56e72d18c88b365f418b7d41208868d
parent 1bb77f7c620d03c36541ed44bc91b0279edf619f>67615359G67615359 +0800

!4453 merge get_23 into master

fix/OH_AI_DeviceInfoGetPriority to 23

Created-by: m0_56042728
Commit-by: m0_56042728;douzihao[)/issues/3421.版本号不正确U10修复OH_AI_DeviceInfoGetPriority接口版本号4(仅修改版本号 此前已满足以下64lx] 是否经过评审$ 6I?x! docs/pull/125001
- [ &14453
=x;tree 64523d0d1b0d0368e19b7536f37568acc6bf52a3
parent 890449ae068bf1d99434aac49c8419f795d6df45
parent f2b786b94a815c80dcde73ed60e1aa509110b133>81260345G81260345 +0800

!5332 merge comm_animat into master

capi sdk接口文档注释一致性，animate

Created-by: wangmike
Commit-by: wangmiaoliangr4139C--capi sdk接口文档注释一致性，animate1-capi sdk接口文档注释一致性，animate N _$xW5332VxI
tree 204d7487e31d9dfcc2a6cad00074532ab422f505
parent a4bea91e0bc2381bcc3275b80e97f9501bbb1881
parent 715902ffb14a1221c07cc97280bf6f35a07fb4be>81257891G81257891 +0800

!5101 merge 0506 into master

add automotive camera position description ndk interface

Created-by: zcr0917
Commit-by: zcr0917s958B.17YOYo$Y] 是否更新json文件
- [Y$YVY-}- [Y8YuY_   docs/pull/144864\5101~x8tree 6351e81f0ad34ad1d6ef758329e8eaf9b39a93b1
parent 4471f850ce0611a981c71cabf6b3e2ae38919200
parent e9c94d48da2fb9792f0d9209dd0a1e6a9ea14335>8124485H81244852 +0800

!5323 merge capi into master

CAPI头文件拆分

Created-by: silverbullet1412
Commit-by: silverbullet1412
Mer7[#4132](74132) B.CAPI头文件拆分1CAPI头文件拆分 8 /xE _$x'1已对齐，待header仓合入后统一生成docs15323*qx 
tree 836521b73bfd26419f5b3bf221e78c3db1150b1d
parent 9158b8cb14353692f5d4686eea3306f8552ddcf7
parent 02412d34d0ca2abca16f7a754fde36bad43166cbB5802K5802 +0800

!5329 merge visulA. visual|j;7!-{129%Ambxb
tree 3679e2b3776e3350fc0440c862661f3e99dd173e
parent 63c2423a33b3bcdca6f0f96498f63723e41b128d
parent 62b341b248445418e24834bff69509d61ab50f24C10M105 +0800

!5305 merge pr_5231 into master

add roi string api

Created-by: yang-xiaoyu5
Commit-by: yangxiaoyu5;yang-xiaoyu5;Helinshant18
!-{1|W0x"$ G(0	pull/5305m305ƙjcSxk
tree ae5348c172076b57b4e561a7aa1e507d11b51b24
parent 75b6ec0caab8c309ce2b08405b08f6896e207a7a
parent e7aaccb62b1c2603e8c0da48cb4738a3b0ac5654A37498J37498 +0800

!5344 merge master into master

补充头文件

Created-by: wan-xiaoqing321
Commit-by: wanxiaoqing
Merged-by: opee47
!-补充头文件{1补充头文件

不涉及[,44,w!xtree 3f28e888f7e93d4bc9e6ff015708c9bf38f058ca
parent 7103b53485b8028c24068ecac188104ae42981ea
parent 7acb95a5f3a92b4ac625a93600cd061ec181aea7>79853424G79853424 +0800

!5167 merge RichEditorDev05 into master

[RichEditor]API注释和API参考文档一致性整改

Created-by: kp2953
Commit-by: kp295t000/7[RichEditor]API注释和API参考文档一致性整改 1@API注释多段合并和API参考文档描述回刷到API文档 7xNxn$ ] 是否更新json文件
- [ $ V ,xhxj X167x$9xLtree 85f12d8a7a49c8d7fbca4a17e378dbc2e1eb9cff
parent 969fcb7df9e80e82a3c3235aec27febb630127cd
parent 55369cc834b2b3a70e47c6ec2f28312557d229bb>79440815G79440815 +0800

!5187 merge audio_suit_hoa_api into master

add hoa api

Created-by: hao-liangfei
Commit-by: hao-liangfei
Merge5[#4014](8014) 1.]一些应用需要支持空间音频直播的场景，当前没有api接口支持该能力。1:audio suit新增接口支持HOA空间音频能力接口。7xNxn$x] 是否更新json文件
- [x$xVx,lN
- [ ] 不兼容
  - [ hxEx^$ X187E1"x*tree e941e9ea54cb4dd76bab7357ac95b73cd9f1249c
parent 2607a1dbbdcb4a2652bae30934a2d178460d7aa3
parent f939db27ced7a1e7a2d59bdac93c00e4f1193ef8>7919517H79195171 +0800

!5175 merge 0515-refresh into master

time service API参考与注释一致性回刷

Created-by: snakyhy
Commit-by: SnakyHYs0171..time service API参考与注释一致性回刷1.time service API参考与注释一致性回刷7NANNAn$N] 是否更新json文件
- [NA$NAN] 不兼容
  - [NA8NA/ EY^   docs/pull/143643
- [ X175G."Ox(tree 1e4788b0dca2224b982abf4c94c5309a61c0b7be
parent 8b8ae21ca61d7e3ba3e9fca1a858186c055aab20
parent ba10b8ae0e89abfbf64f33168593f9d9857ce897>79178773G79178773 +0800

!5163 merge 0514 into master

list/grid支持滑动多选

Created-by: shi-hongjie
Commit-by: shi-hongjie
Mergem0091.'list/grid支持滑动多选新增接口1'list/grid支持滑动多选新增接口7xNxn$x] 是否更新json文件
- [x$xVx,c N
- [ ] 不兼容
  - [ 8x/ Ex^! docs/pull/142997!docs/pull/141818
- [ X163,J#x=tree fca1575c6c74e0e9a16c31306aa7ae211f75766f
parent dfa7ca64a860e05a4f4bad02a18870d7fb39c84b
parent 1bc983c85b38cafacca248663ff6d449bdbee2e3>79117168G79117168 +0800

!5098 merge 0507_add_mix_mount_api into master

添加混合挂载renderNode相关API

Created-by: linzuoquan
Commit-by: l00957130s0221.-添加混合挂载renderNode与customNode API1-添加混合挂载renderNode与customNode API7xNxn$x] 是否更新json文件
- [x$xVx,g）
- [ ] 不兼容
  - [   NA$x/ B docs/pull/144960
- [x^$ X098C"Tx"tree 5519864f004da2737887b9f6b52d1d3afedd674a
parent 7a14c4dce942f781f84ea45c6544529fbf1e7346
parent f55870d0e201fb2bd0328585dfcb1086d311c1b2>78324445G78324445 +0800

!5117 merge master into master

新增key值需在SDK仓multimedia/av_codec/codec_base/libnative_media_codecbasEe.ndk.json文件中更新

Created-by: Helinshan
Commit-by: Helinshanr39641.17xNxn$x] 是否更新json文件
- [x$xVx, 8x/ B Edocs/pull/141984
文档PR要等sdk合入trunk才能合入docs仓
- [x^$ X117V-x	tree ac9041c2ed2ad5bb1cf9332c24aa5af23086a6ea
parent 51298e83f45356e3b3b2e1a624dc1b6cb564e740
parent 214488bff3b39fb0c98e6389ccf02f6b40171cb0>77386433G77386433 +0800

!4998 merge master0313 into master

CAPI renderNode支持背景模糊、内容模糊、前景模糊

Created-by&: baidu_37813129
Commit-by: wanglili12r38751.17xNxn$x] 是否更新json文件
- [x   !arkui_ace_engine/pull/84195 
- [xVx,xhxEx^   docs/pull/140639
- [ W4998<x*tree 43561d2981dfa1e4b024b91032a185c98f44ad45
parent 1ddfb46dc1fbd40be1904aea99ff8222aed3e800
parent 3a826d090bf749f7bf6b6b619680da30b271bbcb>77383215GS77383215 +0800

!4940 merge inspector into master

新增通用属性inspectorLabelarkui_ace_engine/issues/758/0 新增通用属性inspectorLabel1 新增通用属性inspectorLabel|	不涉及A	不涉及不涉及] 不兼容
  - [ 8Y/ A docs/pull/134851
- [Y^$ W4940Er!qxtree 194b9acab62f65a8aabb68a4e9a5dc3a3f8a08ac
parent c652e84d088b5fde83ed166d287b8529fe462b01
parent 0cf495b0f6e217e3ba013d78d9c9b36ec873e586>76935488G76935488 +0800

!4968 merge master into master

lpp接口单位说明

Created-by: yandebing
Commit-by: yandebing
Merged-by: op-838851.Bsdk中number类型的变量没有说明单位，增加单位说明1Bsdk中number类型的变量没有说明单位，增加单位说明W m% Y] 是否更新json文件
- [ % W + 	不涉及^|4968= xtree 17768a1025d32d62bc1dc77165ca57acfdbf7b1b
parent c7e855537c003f640ae9835b37b5ea79734e67c0
parent 7981108fe0338154106fa9dca178595884fd3851>76843364G76843364 +0800

!5009 merge gs_exif_1.2/0422_dng_linearResponseLimit into master

DngMetadata.linearResponseLimit类型修改

(Created-by: zhaona45
Commit-by: zhaona45r"3884?ref=&did=3864872#tid-3864872
1.17xNxn$x] 是否更新json文件
- [x$xVx, hxEY^   +-sig/interface_native_header/pull/3371
- [ X009Ʃh"+x.tree c129608683fd3664441309214049bafcc15ee9c0
parent e33819fb3fd0c300937cca96414def2c6370b4e9
parent a5152fd7d3eb49f326ec0943101245f60e9f7290>76674309G76674309 +0800

!4984 merge master into master

arkweb双内核

Created-by: qq_40999241
Commit-by: lizeqiang
Merged-by: openha`37331/7内核增加M144枚举（对应7.0 evergreen内核）27内核增加M144枚举（对应7.0 evergreen内核）7xNxn$3 ] 是否更新json文件 —— **不涉及**
- [x$xVx,xhxEx^   docs/pull/134321
- [ W4984tӢ$ix@tree 0d1ee52bb34c5a6ed1f5311d0a6f8e30ef6905ec
parent b817b7b2091aa9bb01e0269fb6b7dca181bb218a
parent 209d810b8c861933773bc87fc25e9917eb02221d>76671403G76671403 +0800

!4970 merge api_doc_optimize into master

资源管理C API注释一致性整改

Created-by: leeduo
Commit-by: liduor38541.&资源管理C API注释一致性整改1&资源管理C API注释一致性整改7)x] 不涉及，注释一致性整改
- [ N n$ ] 是否更新json文件
- [ $ V ,p;x] 仅修改注释内容，不涉及
- [ ] 不兼容
  - [ hxjxW4970$9xKtree d6a6daa43a9d611e9433ebf6bedd41b26ef0fe37
parent 1240a8a3a6681884200ffa7aa790de7d3021b8b2
parent ee20f8b29901e8d1e6494a56b2d39426a7bf5fd9>76512830G76512830 +0800

!4956 merge cherry-pick-mr-4954-1776243222855-auto into master

drawing_ndk_pr

Created-by: birds_and_fish_1994*
Commit-by: birds_and_fish_1994;wanyanglan;3847 文档一致性需求1.>
3847 文档一致性需求 注释一致性 多段注释回刷09
文档一致性需求 注释一致性 多段注释回刷7 N  n$  Y] 是否更新json文件
- [Y $ X , i EY]% W4956f#x3tree 02e97249216cdb184c7c2a97823bae563439a9ce
parent 9e7faf94b1b6262db11aa29817f02a75e83ab44d
parent ced98606e75596d7e9d59e65452acdffb1ec735d>75795599G75795599 +0800

!4910 merge Horizontal into master

[richEditor]支持横向、纵向滚动

Created-by: zzc19990127
Commit-by: zzc19990127[arkui_ace_engine/issues/752681.支持横向、纵向滚动1支持横向、纵向滚动7xNxn$x] 是否更新json文件
- [x$xVx,pN] 不兼容
  - [ 8x/ Ex^!+-sig/interface_native_header/pull/3332
- [ W4910m%"Wx(tree 9d93bca042f99eb10d25c2c428c6fa06bd7f14cf
parent 37d6db0b7143b732342c29ef58af9cda045058f4
parent e36f252cabf0479cbb114db5696dd2c3833038c4>75719879G75719879 +0800

!4831 merge master into master

快捷变焦点上报NDK侧接口定义

Created-by: wandererhh
Commit-by: 贾炜['multimedia_camera_framework/issues/39931.17xNxn$x] 是否更新json文件
- [x  PR :  *multimedia_camera_framework/pull/4477
- [xVx, 8x/ Ex^  1-sig/interface_native_header/pull/3299/diffs
- [ W4831n"x-tree 4cdcdb0a78933e9d2529805c3978d8df1ceeefec
parent e6d4559dbd434b70bb55a69caf0fc7ea5be7f2c8
parent ea440e889dc45aedf543458d907aeac01606f1bd>75618038G75618038 +0800

!4816 merge mouseHistory into master

支持鼠标事件获取重采样历史点

Created-by: yuanlin94
Commit-by: yuanlin94r37321.+
支持鼠标事件获取重采样历史点0+
支持鼠标事件获取重采样历史点6xNxn$x] 是否更新json文件
- [x$xVx,c N
- [ ] 不兼容
  - [ 8x/ Ex^  !docs/pull/135867
- [ W4816^C#Lx;tree 3e867169b19e969236478079d85e3c276ecc1184
parent bab0c805b7222a5dc6586503b2ea5a89a1315e33
parent 5fda8f88c4498ca520f3143d7ffca76552185037>7521671H75216711 +0800

!4867 merge master into master

API注释参考一致性整改

Created-by: ren-qian12
Commit-by: ren-qian12
Meo37781.:api注释一致性修改，用docs仓回刷道interface仓1:api注释一致性修改，用docs仓回刷道interface仓7xNxn$x] 是否更新json文件
- [x$xVx,m>仅为注释修改，不实际兼容性
- [ ] 不兼容
  - [xhxjxW48670"x'tree 21f34f04518af563cad35503cacfb333a23471e0
parent cc48766b3fdebc71d847fe9d23fe02055d8d5e55
parent 04b762e2f2c70ea761e23a5ea846a5fe4bd0e8ab>7457984H74579841 +0800

!4721 merge RenderNode into master

RenderNode开放矩形参数设置接口

Created-by: chendongqi
Commit-by: chendongqir36321.3提供更易用的矩形范围参数构造接口。0(RenderNode开放矩形参数设置接口6xNxn$x] 是否更新json文件
- [x$xVx,px] 不兼容
  - [ 8x/ B docs/pull/134020
- [x^$ W4721MX)"Nx tree d4e69437aa5a6264a3d837904365d2b44b849ace
parent ded62428a0f53d1e821be15e083afea278a4d250
parent 99903961bf5f4933148e09841be80fd4231c5f08>73897266G73897266 +0800

!4609 merge empty_waterflow into master

add supportEmptyBranchInLazyLoading to WaterFlow

Created-by: zcdqs
Commit-by: zcdqs;835871.(
WaterFlow组件支持懒加载空分支1(
WaterFlow组件支持懒加载空分支7xNxn$x] 是否更新json文件
- [x$xVx,pN] 不兼容
  - [ hxEx^   docs/pull/130366
- [ W4609" ~xtree 760b85d57a045a1e912f512875e437f494a86c0a
parent 97119257e11373e51c4ee42b4a28dc33d7c32ee0
parent 8e6bd6487c617927da6bd0be12427a6119f83815>73832590G73832590 +0800

!4751 merge master into master

加解密算法框架新增错误码

Created-by: jing-wang177
Commit-by: jing-wang177r36571.新需求新增错误码
1新需求新增错误码
7xNxn$ NA] 是否更新json文件 
- [x$NAVNA,x8x/ Ex^     +-sig/interface_native_header/pull/3221
- [ W4751-Oxtree 05597f6d9d42ad0da539b86d05492f5e1e9269a9
parent fdad575515cd338a82ba1459ed7dbed1fae43107
parent cd62b2de102caebfceff4148a77068c160765d9?73049600G73049600 +0800

!4661 merge master into master

修改sdk中替换接口错误问题

Created-by: sunzhiwei19
Commit-by: 孙志威r35841.Nsdk接口注释中的替换接口错误，导致与文档接口描述不一致2;sdk接口注释中的替换接口修改为正确的接口7NANDNA	N] 不兼容
  - [ +4661x9tree 5cb93d045678fbb26eeebd8eb9610bf0982db576
parent 47b24f57c22041fa108127a1f01b5dd4f966594e
parent 4d0affbb0faf5f92158e16c7ec38be7920c6261c>72702367G72702367 +0800

!4669 merge fix_master into master

add new keycode for ai mouse

Created-by: infinite_chaos
Commit-by: infinite_chaosh-js/issues/212611.新增keycode枚举值1oh_key_code.h新增键码Y/EY^$ ' docs/pull/131744!docs/pull/124888146694Yw"nx-tree aabcab57b36b1eab134249627c19a4d9a96839d7
parent 09fc87be5deb7e7590e39e07d663794f566862bb
parent 614281b41d2e7ec1c1fef757c8415cb9835da70c>72189449G72189449 +0800

!4664 merge master into master

添加归一化NDK接口

Created-by: gmiao522
Commit-by: GMiao522
Merged-by: o.	[#22127](--js/issues/22127) 1/&加字体可变调节归一化接口2&加字体可变调节归一化接口7xNxn$x] 是否更新json文件
- [x$xVx,x8x/ Ex^!+-sig/interface_native_header/pull/3145
- [ W4664 ''+xstree f9146a2a1edeaf5fea82c5d10f90a3be2ade1275
parent de72f6dbc611b9a249c0ec7c5db84fa6f31b2694
parent 8e50dbcdb55ad711dce4375ea6715981644d6003>70372410G70372410 +0800

!4546 merge position into master

Text支持根据坐标获取字符长度能力

Created-by: wangxiuxiu
Commit-by: wangxiuxiu;1.17xN n$ ] 是否更新json文件
- [ $ V ,px] 不兼容
  - [ 8x/ Ex^$ (
![screenshot-20260205-102324.png](https://raw.gitcode.com/user-images/assets/4379443/05c5c1ac-ba35-4370-936f-c3a230ec5c4b/scre<enshot-20260205-102324.png 'screenshot-20260205-102324.png')14546de#.x?tree eb233214d349d6aac01ba2cf2bce7cbbe23e6642
parent 954191b12c52722b26a211d50cb4a60089bb7338
parent 5382983e44984184cae9840c2f1afd34310d7c79>7008650H70086501 +0800

!4541 merge delayedDrag into master

拖拽释放支持应用延迟返回处理behavior

Created-by: yuanlin94
Commit-by: yuanlin94r34971.2拖拽释放支持应用延迟返回处理behavior12拖拽释放支持应用延迟返回处理behavior7xNxn$x] 是否更新json文件
- [x$xVx,c N
- [ ] 不兼容
  - [ 8x/ B docs/pull/129413
- [x^$ W4541#}x?tree b87e29c6d299363e2d8bf79e50cf56b1cd15d23f
parent 6ae334889f0c25675dd1b3ec27a1b5e8c5672604
parent a8f01a6fdd346c38fbc0f3e11e1c8b821893cbb0>69438308G69438308 +0800

!4545 merge mod_OH_ArkUI_RunTaskInScope into master

优化OH_ArkUI_RunTaskInScope接口描述

Created-by: liukaii1
Commit-by: liukaii1r35022-)优化OH_ArkUI_RunTaskInScope接口描述14a优化OH_ArkUI_RunTaskInScope接口描述，只修改注释部分，不涉及下面自检项
- [NNNn$N] 是否更新json文件
- [N$NVN,pN] 不兼容
  - [ hNjNW4545m %Lx[tree d73db62b12dc1f3c056ff61e0245af33b9455189
parent 0d1827b668cee7982d8a9dc76dd2ef0f556b3c4d
parent f5c7f1e838d58097980661316ccabd1b615962b1>69238929G69238929 +0800

!4487 merge Multiline_EllipsisMode into master

多行文本缩略模式支持start/center模式

Created-by: wangxiuxiu
Commit-by: wangxiuxiu;2-17xNxn$ ] 是否更新json文件
- [ $ V ,1![EllipsismodeDynamic.jpg](https://raw.gitcode.com/user-images/assets/4379443/d88e0728-b1a3-470a-a8aa-84585ce2dbed/Ellipsismode&Dynamic.jpg 'EllipsismodeDynamic.jpg')]Qx8x/ Ex^$ W4487Hґ!7xtree c900880660c62216991c8bf0b4e63638eb8712fb
parent 329c15501de816d0443bc4978c049ab5abe06742
parent c587a77fa848789ad5fe27e0e1a13729ab9f45c4>69149747G69149747 +0800

!4542 merge fix_native_node into master

修复native_node.h

Created-by: wangxiuxiu
Commit-by: wangxiuxiu
Mergm34981.17xNxn$ ] 是否更新json文件
- [x$ V ,1![4515-sdk_c.jpg](https://raw.gitcode.com/user-images/assets/4379443/518b15df-3a7d-4f46-9b09-fe695bbf8b6e/4515-sdk_c.jpg '4515-sdk_c.jpg')]QxhxjxW4542`xtree f5c683255f63650287fb23d45c4374c4a53a5601
parent d959fc73d36c2bcdd5f7262411b7394120960336
parent 30d61f93f83c3381312bdd1a186bd4c8e7588b41>68907886G68907886 +0800

!4449 merge master_20251229 into master

接口补充错误码

Created-by: guoyi100
Commit-by: guoyi100
Mergedk34181.接口补充错误码1接口补充错误码|NAANAN）
- [NA] 不兼容
  - [ Y^!&-sig/interface_native_header/pull/3036!docs/pull/124220
- [ W4449!Vxtree 78736127f622df47c9e9b03ee4f5761e4be3833d
parent 6d13e283ac7fe1ccdbc272a83d562e869c526f5f
parent c4bc4dba3bcc13eb7dcab572bc0dafff5b05446a>6854850H68548501 +0800

!4466 merge master into master

新增宏注释&&修复拼写错误&&统一12000012描述&&优化描述

Create(d-by: lcy_lovebug
Commit-by: lcy_lovebugr34341.优化接口文件内容1G新增宏注释&&修复拼写错误&&统一12000012描述&&优化描述7xNxn$ ] 是否更新json文件
- [x$xVx,}- [xhxjxW4466"{x(tree 1a2d988c591bba45f41316677684715a78153b0d
parent 0de4ea7ccb2dedfaeaca1b8eba0a6d4d9fa61ec3
parent b47b7dd44dcd67359d7a755380133e068050dbc2>68537072G68537072 +0800

!4515 merge fix_native_node into master

修复native_node文件注释不一致

Created-by: wangxiuxiu
Commit-by: wangxiuxiur34721.17xNxn$ ] 是否更新json文件
- [ $ V ,1![4515-sdk_c.jpg](https://raw.gitcode.com/user-images/assets/4379443/b91c58dd-1c65-4dd7-9670-6eb8a7461845/4515-sdk_c.jpg '4515-sdk_c.jpg')]QxhxjxW4515!3xtree b92ea0529f493b480d6a4ca7b83e994558099853
parent c00027ba4326fdb7c1a23008bbfd9efc249dfeda
parent f16ecf4fe490468de333e884f129765bd89c18ae>68470989G68470989 +0800

!4523 merge 0115-ndk into master

【元数据缩略图】NDK接口能力补齐

Created-by: liuwanlin9358
Commit-by: liuwanlin9358r34781.*API接口设计与实现不一致性调整12为接口新增API23注释，之前遗漏未添加7xNxn$ ] 是否更新json文件
- [x$xVx,xhxEx^! docs/pull/126698
- [ W4523NS!]xtree 9bd02cd8439485ca71a3a43f0e6449565111866b
parent 258803f1b93ec9e018d81ba2f7ed040cc8261c70
parent 4f654cbd1a1d103eebbcaf59746323a7f7b0d0e4>67782359G67782359 +0800

!4451 merge pr_4336 into master

avsession add ndk c interface

Created-by: liao_qian
Commit-by: zhangwt3652
Meo34311.新增NDK投播接口12avsessionkit对标arkts接口新增NDK投播接口7xNxn$x] 是否更新json文件
- [x$xVx,pN] 不兼容
  - [hxEY]"*-sig/interface_native_header/pull/2986
- [W4451o$xDtree 0eedfbdd2016038967004c3d096addda9957c216
parent 48298303c88a584fddd0693b9f1f9bbef740eccd
parent 98656416498c046c7c80fb27ca329b006060b156>67666055G67666055 +0800

!4473 merge fix-otherMedia_0105 into master

otherMedia

Created-by: he_xuhui
Commit-by: hexuhui
Merged-by: ope,[运行音频播放流信息](73442)1.17xNxn$x] 是否更新json文件
- [x$xVx,1![image.png](https://raw.gitcode.com/user-images/assets/4379443/247bce71-c97e-4d53-b88a-3a58ce0c6c09/image.png 'image.png')

##`<NA] 不兼容
  - [xhxjxW44732Ce2x^
tree ddec1507bad9a3dcac4f4742722672d914f26778
parent a11361524bf1517f4f59e7bcd81a518bedf112e1
parent 62ed38252bc40784a460595cef6ee27d4ec11764A08981J08981 +0800

!5301 merge master into master

添加 压缩解压缩功能

Created-by: selina_jiang
Commit-by: SelinaJing
Merge5"添加 压缩解压缩功能接口$.新增压缩解压缩接口f1新增压缩解压缩接口x8x/ 301locxt
tree 214e578aff7e575ba1eb1846c85dba27922329c9
parent c99b2f6b6780b2f2c6ef97d725e704c1af0f5b3a
parent ae23a9eac7b999051c3a1c6e472b7dad06673335@634063I_634063 +0800

!5195 merge master into master

since修改

Created-by: ZA2333
Commit-by: ZA2333<%-api参考文档一致性f1@AV_SEEK_CONTINUOUS 注释版本号未识别，需要添加换行|oG195}@gx|	tree 206fc199aae3c6e8ec93e407af4c2ad41c7c5692
parent 1244514bb9488287472069304acefc691e4aa16e
parent 345285ddd118137bee95438cff9bc6296a4fbd3b@573869I573869 +0800

!5296 merge master into master

音频编解码与封装接口注释优化

Created-by: zzm_gitcode
Commit-by: zz	m_gitcode<%.g1{	不涉及n	不涉及$	不涉及	不涉及!	不涉及96Eyzxw
tree f191e5f191d32eabfaa4f0c982780e412f77290b
parent c260636467dc00905fb3cb63f8720fa254176758
parent d59c596a7b24d813789dc98626246ff31daaa3c9@558102I558102 +0800

!5285 merge nettrafficfilter into master

net trafficfilter

Created-by: heqianmo
Commit-by: heqianmo
Merged-by: 0%-流量重定向需求f1流量重定向需求C APIGx9  docs/pull/147281
- [ ^Z5ֆx}
tree 016d62fee09207ef57d2b1fac5e1d66eee68c037
parent c57f6f9bc95ddaabe077997808579d44e289e7ac
parent ada4f742ddb1dc077fe8f16157b1cea1aff41d45@55692J556926 +0800

!5294 merge c_dev0603 into master

显示设置OH_HiAppEvent_FrameworkType枚举值

Created-by: zhou_xq
Commit-b
y: zhou_xq;912$/g16 Y)Y I$ YnY $ YVY pNw{ Yj Y^Y94!V}e$xKtree 6906def096c4ad1dafdb20d8fa6235b2a302eff9
parent e8a8c80338ac99c9d4b8db20c53f24078cb3967c
parent 78b815d14d2c850124be35f827070ace168bef4b@545084I545084 +0800

!5254 merge master into master

【Text】支持文本尾部缩进

Created-by: falcowy
Commit-by: wanyin
Merged-3[#4078](8078) $.支持文本尾部缩进f1支持文本尾部缩进NxJx/ EY9 ：  docs/pull/148119
- [ ^Y54欢6hxk
tree 9ed42fe3c3bfa83bd83501038d6afe06e9c81413
parent 3335372514023772f74cf2fd6293c9daa0f9e90c
parent fafc38e844153fe4e9ff27423d47a0fd03c101fc@488255I488255 +0800

!5280 merge request_for_api_public_0522 into master

request_for_api_public_0522

Created-by: fanzhihao8
Commit-by: fanzhihao8<%.g1- [x8x/ Ex9 ：+-sig/interface_native_header/pull/3509
- [ ^Z0xT
tree 8c1f51e1dae6ef337fd3950233e544e760d9f342
parent ab5602a52fbe571c135cd5a1018db35da516cd48
parent 44e4089a0f5beb21402bbac40c6635819c2ab18e@47063J`470636 +0800

!5291 merge master into master

添加json

Created-by: ZWL1111
Commit-by: ZWL1111<#4109%.添加json描述g0添加json描述 $ V N91npxT
tree 68ede4ea2b16e598a2604c1e8717b127f59e15c6
parent 5d7f9324d4c5043765134e178d5460ab2cca638f
parent 674575794eb7d1b23d633c63eeae2d32b26f7523@41493J414936 +0800

!5262 merge master into master

Add certificate chain verification APIs

Created-by: kuruminight
Commit-by: kuruminight;8087$/g1xxJx/ 62hTx\tree 2a19d00c7aaaeecf3a7792ab5a34856a3356eea9
parent 3d128ef986af7b3f26d58efc4cb9a31afa1624d0
parent bd8c186535b424b938c864edb41f74dfe124c8a8@402609I402609 +0800

!5276 merge 0507_add_mix_mount_api into master

补充遗漏的错误码

Created-by: linzuoquan
Commit-by: l00957130;8097$.补充遗漏的错误码f1补充遗漏的错误码|oPNAzx9$ ^' docs/pull/148117376}xn
tree d040fa2ffb4f58ba57edf0e81844feb3313aa945
parent ac96c44173a465020b68457625bd3f9022c89224
parent 6e6e955af1c81881c6ea4ad520c759a6752bc46e@400144I400144 +0800

!5210 merge master0313 into master

ARKUI_NODE_CUSTOM相关枚举拆分

Created-by: baidu_37813129
Commit-by: wanglili12t042%.g1xx9   docs/pull/147411 
- [ ^Y100qOxU
tree 2faf2d829e28e973083a06404e1461ae112d0722
parent 7bcf5c8cb2a4bf7bd704499e785f3283e3185d30
parent c2936318ee8b2431cb01cdde2db2b206f1fef438@400103I400103 +0800

!5286 merge master into master

OH_AVCapabilityFeature新增

Created-by: ZWL1111
Commit-by: ZWL1111
Merged-by: o.#4105$.新增键值f1新增键值| nA V xoN?x9!+-sig/interface_native_header/pull/3507
- [ ^Z6$h9?x0	tree f5301a9bce33b670b9be3e671f24a466986dcc77
parent 302b7e0dcfa940544057e715d1122d9e6893aca5
parent 2c988a0a33ebc8dcfd4dafec1b09cc60d5b31329@390901Ic390901 +0800

!5227 merge dp into master

add decompose

Created-by: aulight02
Commit-by: Aulight02<%.g1x/ Ex9$ ^Y27[7x~
tree acf2521942547b2b8261ff846e930992003f53b0
parent 05d0a43348694aeb95f3669f5066eb94d8c1d94d
parent c39d1b132d31380a2a0c3be87bedbcd530c72bf6@375974I375974 +0800

!5235 merge master into master

修复api声明和实现一致性问题

Created-by: hwfqb
Commit-by: hwfqb
Merge58061$.保证api声明和实现一致f1保证api声明和实现一致NsD35Ixb
tree d7e48be125932ab4b178a7a4c76861da468a42d9
parent 1b29a1d3e8aab98f4099f75f1b17b28e4d5a9409
parent 29e984be0736384ee35901b4478a1a79a926abeA372790I372790 +0800

!5277 merge cherry-pick-mr-5269-1780318903655-auto into master

update: 更新文件 hiappevent.h

Created-by: zhou_xq
Commit-by: zhou_xqt091%-api一致性修c56 Y)Y I$ YnY $ YV YpNw{Y j Y^Y77S=xrtree 16e416f23fac37fa3267ed9535adb9e0c92178de
parent b43c98349a37eb8e341a61220b29f0f881905d78
parent 228978d62ab1691ce423a31ce6bc3a4e2821c002@369291Ij369291 +0800

!5234 merge master into master

skill_changed广播

Created-by: ImCaO
Commit-by: Zhou Shihu<8060$.新增skill变化广播f1新增skill变化广播|oSx/ Ex9   docs/pull/147969
- [ ^Y34jZxM	tree 3f60cd4fc9676ee179fb2bd37f63f2897153fcdb
parent b0c682362f89f998442c6413825ab1e9ee84e20a
parent e8ff90d2b7bfe87432b1fd0827d7118eef643aef@31594J315946 +0800

!5252 merge master into master

易用性整改

Created-by: wan-xiaoqing321
Commit-by: wanxiaoqing
Merged-by: op.%.g1	不涉及sOx/ 528o7xd
tree 18dd1fc348342a30ce4cb2d82adc362c69c826ec
parent 0993f5ca72a57d3ab4c1dc49f03ab18130702191
parent 8d47523fb0ee0c98d6991b9a0196c4b9a27446e8@312961I312961 +0800

!5110 merge application_context into master

application_context文件sdk与资料一致性修改

Created-by: Luobniz21
Commit-by: Luobniz21<%.g1x8x/ 110*z~+x}
tree 44524dc972fef5e782d3ee52e92a82aacb8d72d0
parent 9794f9768f4e4225204db70b92c36c2b9182a9dc
parent b10c1bdc3faf554e00c9b7d93a610ab56b0da734@307363Ib307363 +0800

!5248 merge master into master

新增键值

Created-by: ZWL1111
Commit-by: ZWL1111;#4077$.新增键值f1新增键值| n Nx9!+-sig/interface_native_header/pull/3507
- [ ^Y481-=x{
tree 56b4d0b53c3033ee6e4795b1ec13c080eed50312
parent 193772e4fc5b4962fc7f51d13b86d2c803c064ff
parent cedb8d59999517d13fc2f1344de19d8f347f42b9@306993I306993 +0800

!5240 merge 0507_add_mix_mount_api into master

补充混合挂载api的json文件

Created-by: linzuoquan
Commit-by: l00957130;8066$.混合挂载API缺少jsonf1混合挂载API缺少json|oH40NyQxg
tree d9c05a692605ea82f511e43d92b1e92977529f6b
parent 94056a28acf98d368f56e41d8179a1834533f1e9
parent 5d4541bf394f9ef18f9732184dc7a60c9aa3b5c6@294170I294170 +0800

!5241 merge master into master

Description:refresh global http proxy

Created-by: space_hong
Commit-by: space_hong;8067$/g1Fx9  docs/pull/147301
- [ ^(241lHxWtree 9b0be5f5ea584c061e03181be3226a38e8cbf18f
parent 798c87c6e545064cd16f56195843285ce24595b2
parent 797997fd53acb4ea6e6452c2d2a7d9459ca04476@283425I[283425 +0800

!5046 merge pr_5044 into master

SR20260116787689 API注释和API参考文档Olaijian
Commit-by: laijian<%-,SR20260116787689 API注释和API参考文档W@,SR20260116787689 API注释和API参考文档F )D n $ x,046 xu
tree e97850f854404175d83f01f8cfccaa6dc3077206
parent 44e6c736e86b5246214f83f4d73117307efa48a9
parent 0f60353ac22ca9083bd4d3f8f29d8ab9e10a4c3a@280503I280503 +0800

!5230 merge master into master

API注释一致性

Created-by: ZWL1111
Commit-by: zhaowenli;ZWL1111
Merged-by: o.#4058$/sdk描述与API描述一致g0修改注释| nA N30ugWxc
tree 0d064b87c6f3b52390dcda197a420543ddcae39c
parent f7fc832ba328d3efdf5faee180506b0d2cfe0d36
parent 885bf893197007ca9b093abd0aad94466cb5baf5@114338I114338 +0800

!5259 merge master into master

AVPlayer支持音频自定义后处理

Created-by: zhang-wanpeng5
Commit-by: zhang-wanpeng5<%.g1	不涉及sL	不涉及4 B+-sig/interface_native_header/pull/3487
- [x9$ ^Y59Ғ1x>	tree 2e2669adfc99cba95dfe46673e7afe17dced8397
parent 2042a6d1b5c779edc61b01264d8d9ffbf63b33bb
parent 9ae40e3a8f67bc29fda02fb135c46d3b1b27d565@051039Ie051039 +0800

!5256 merge master into master

更新 注释

Created-by: hua18_
Commit-by: zhengjieme=%.g16 )D n $ V V ^Y56ubx]
tree ff06c53577161ec7ce8e500ed5181845c92db494
parent 1d8e51c254a1e67071f24548514aec5df8c6904e
parent b2344ae4bc91758a86e03a049b94309f349eb4f1@027698Ii027698 +0800

!5005 merge master into master

fix version

Created-by: kevin812085902
Commit-by: JustinHu;7!3880?ref=&did=3863661#tid-3863661$/g1x/ Ex9$ ^X005?elxs
tree edd94ecf053ad2816bbb596cb0894ea89d2e44df
parent 806abca95cc1833046ac86c573b9225a4a950650
parent 42bd472636dcc278750c0c3395eca6681b8d1377>79970303G79970303 +0800

!4829 merge repair into master

stdio.h description repair

Created-by: da_wei_li11
Commit-by: da_wei_li11
Mergn3743%-stdio.h description repairf1stdio.h description repair4829tMox/	tree 8fd5688e60fb133ee759c4933b3ad698bbd3af8c
parent 89d22169a4bc447b4c2e1b052a9b64ca454ef74f
parent 63e79a685c38915f6b3b8f87fb8d0a5b95186f3c>79931485Gf79931485 +0800

!5242 merge master into master

fix code

Created-by: cjjbf12000
Commit-by: cjjbf12000<%.g1xx9$ ^Y42Y9.x=	tree 46d47dc469858fdbaa675ecaf5eb82f832f3ebb4
parent 39d6946485c45349aa492f6fb759b2f22661f6ff
parent 11f1937ba8eb87108aa6515a81a9ba28cdd77c10>79877598G79877598 +0800

!5228 merge master into master

修正api版本

Created-by: weixin_43212802
Commit-by: weixin_43212802
Merged-4%.g1x-28"b{xVtree fdd9e941448a7d4bd34812abe46911acbd4ef4d7
parent ac7a3089d05ec46b14bf158bdeffc7cf7a01492c
parent 14dcf6fa9805fb8e71548ec423ba77ca702472b3>79847864G79847864 +0800

!5225 merge master into master

修改枚举名称OH_FRAME_RETENTION_MODE为OH_FrameRetentionMode

Created-by: Helinshan
Commit-by: Helinshan; multimedia_av_codec/issues/6901$/g1x/ B docs/pull/146637
- [x9$ ^Y25Y4x/	tree 7fd6a6cc40f7644cdcb010505ff113783a72c025
parent 98a2c3415d123d01baf1dcdeb91a9fb6edf3ba1d
parent 3a293646c5a5d949cee2d37695b57686cef47177>79793992Gf79793992 +0800

!5229 merge master into master

fix code

Created-by: cjjbf12000
Commit-by: cjjbf12000<%.g1xx9$ ^Y29%YIsx^
tree bff1eb2cac3af4918e4318fe9080287c4d595ba5
parent b06326a29c4df8b588b36442c7cf8afd96fe0cb1
parent e7bb3384fcd87a1a2f46a1bebe4e35f25232ac81>79763399G79763399 +0800

!5212 merge master into master

fix Rect interface

Created-by: zhaoyuanbo
Commit-by: zhaoyuanbo
Merged-by: opeMxts_acts/issues/28878%.g1x8x/ 12	n-ax6tree 4cf26651bbb857f139312f1c8f7a460b13ff6cc5
parent 7274b166306f25a5e1804ef4198bc60dd6b23390
parent bd682af917cd2594992989000e1677c9535d9866>79721959G79721959 +0800

!5034 merge scrollTo into master

[richEditor]支持滚动至可见区

Created-by: zzc19990127
Commit-by: zzc19990127; arkui_ace_engine/issues/75981$.支持滚动至可见区f1支持滚动至可见区NxJx/ Ex9! docs/pull/146727
- [ ^X034db:xftree 0ac66dba9ff28738ab4e1f41682c5bd0268bf605
parent a59c09c8fa734eb77bcc32c0e3ed59f83b23122d
parent 09c88e8f67893b695cabbaa769a088efb4cd4fe2>79718862G79718862 +0800

!5155 merge main into master

add zh-cn for ddk capi

Created-by: liuchunyu20
Commit-by: liuchunyu20
Merged-by:08023$.%补充扩展外设CAPI的中文文件f1%补充扩展外设CAPI的中文文件x]兼容sC155I5cx@
tree 4ad3608127b868cf04ecdb70e2aac7768a09e768
parent 56213d0c89072d41f22a2c7866a13b30dc17facb
parent 8bd127b2474d1e2427ad9128f5877484884b7e6e>7970920H79709206 +0800

!5223 merge feat-ren into master

fix: 修复构建阻断问题

Created-by: weixin_51530161
Commit-by: 咚隆;8051$/g123jm3xu
tree 92d7f712a593a9efb88425adde461a4db2e9d689
parent d5ce663ab039a1598b54f30780805e0721f7dbf0
parent 2079e278443bc871c068c69031221a12c1bab444>79685495G79685495 +0800

!5217 merge feat-ren into master

refactor: 代码审查问题修复

Created-by: weixin_51530161
Commit-by: 隆东;8047$/g16 ) I$ n $ V  j ^Y17Cw8xl
tree 398a79de96512dc80593ca8140004327fdaa4002
parent cdb48562a87286d78139679ed1fbc9c11e23c5ec
parent 0e2df0bb4c63d9a3381782b57ee21509d5bb1545>79676487G79676487 +0800

!5208 merge fix/battery-info-header-sync into master

API注释与参考一致性，描述再调整

Created-by%: wangyantian0
Commit-by: wangyantian;8046$/g16 ) I$ n $ V  j ^Y08y[x]
tree f858025d90cee68997ad5ad89f227611e994b6c9
parent 19817e56bd111a5fc3c4cd8f67b6ac37d533694a
parent 6ea01a6d3565042a3ba1582894eeae184f05c667>79676163G79676163 +0800

!5174 merge master into master

mac ip interface

Created-by: weixin_43370416
Commit-by: weixin_43370416
Merged5%.g1Fx9 : docs/pull/146406
- [ ^X174KBeHx~
tree 084872c9425605cf838f0850c9ebf60ec7e1ddd5
parent cc92be201d9ea153cae4c07a4d9db1de6af83ff8
parent 054351429a2b80549d6186c844faa9facf734547>79509715G79509715 +0800

!5198 merge master into master

meta上报 NDK侧接口

Created-by: wandererhh
Commit-by: wandererhh;贾昊炜<%.g1x/ Ex9    +-sig/interface_native_header/pull/3460
- [ ^X1988Yx<	tree 2ef6abb462c03f4c4f54e654149938788a8440c8
parent fa4a88145818be41c20500c5a631f048f5473446
parent b90bf7eb45aed0904d690a9a127f11018762ac3f>79373938G`79373938 +0800

!5197 merge master into master

更新

Created-by: hua18_
Commit-by: zhengjieme=%.g16 )D n $ V V ^X197[%x|
tree 9b12a369b6752d38c1d2aa206337ea1467e0f372
parent bcf7b3b7d4b25a7ccf7ed616584e2b9b5882d6b9
parent 1bb62a18ec9587daed3f7493c05e3284946f9ce3>7936185H79361856 +0800

!5122 merge master into master

单位修改recorder&screenCapture

Created-by: 2301_76695984
Commit-by: z30079172;2301_76695984;73971$/g1xx9$ ^' docs/pull/14598621225s1xP
tree 48a8fb68acac83c68f6dea953e841b156f7c2bae
parent afbad2e0d0669ba4b4d88f1e74496e863e67be0c
parent 87609f3b930029029b3d788f3f2f6c9d8977e9df>79357585G79357585 +0800

!5202 merge master into master

人工修复回刷工具遗漏问题

Created-by: gmiao522
Commit-by: GMiao522
:[#4036](8036) $/g1x-02gq:x'tree dbe95b3bae43f7913bb3d8d623ec30f5c70d1644
parent 59a4747aa6354ffb64afd41a1f44e716eb6bc218
parent fff2db0c2c37b41831a9e1b05cd318ca6771516b>79355103G79355103 +0800

!5205 merge pantaixi/qos_api_update into master

【Kernel Enhance Kit】【内核增强能力】API注释和API参考文档Opantaixi
Commit-by: simpledcc;4033$.API注释和API参考文档W@API注释和API参考文档FY)YI$YnY$YVYYE.9$Y^Y05&yx_
tree a06653f3b7515eae3c00c158e5a0927ee47bc7f6
parent d91b6e530845286fe806e41b6496276a01a234da
parent 793b479a794b1f04442ff6965333165a4dace01a>79355054G79355054 +0800

!5207 merge master into master

AVPlayer支持音频自定义后处理

Created-by: zhang-wanpeng5
Commit-by: zhang-wanpeng5<%.g1	不涉及sL	不涉及4 B+-sig/interface_native_header/pull/3413
- [x9$ ^Y07K)xf
tree 04139484c6ae1dff78d7488c1ec738b89d288c33
parent 44189eb805ec61cc0c35336b35da614acac409c5
parent f75eb78fbc7e87a638a5f61891eb0bea62f4d91?79325445G79325445 +0800

!5203 merge feat-ren into master

fix: 修复裁剪结果校验误判输入路径为输出路径的问题

Crea,ted-by: weixin_51530161
Commit-by: 咚隆东;8039$/g16 ) I$ n $ V  j ^Y03Rx>	tree 828bbc77ea332ac5cb661b298f5c6c2545f34b55
parent 28c0485945f1f5e27b24abf1310cfd41e906b152
parent 2549b17c4a150bec6c17aa50b81d0add7de9b0f6>79254300G79254300 +0800

!5185 merge master into master

sdk 接口 doc优化

Created-by: yu_haoqiaida
Commit-by: yuhaoqiang
Merged-by:1%.g1Nx>185',d xC
tree 40dd17416ffa6ea263ac116a99f6df9c5c526ca6
parent d6c89be90a7fb40d8e6671d3437b910d824df900
parent e0bb5741ee44676a24c438041ed526806338561a>79201231G79201231 +0800

!5162 merge dialogcapi into master

add dialog capi

Created-by: zhaoyong70
Commit-by: zhaoyong70
Merged-by: op-#4005$.新增dialog新材质capif1新增dialog新材质capi| n $ V foSx/ B docs/pull/145270
- [x9$ ^X162ߐlxs
tree b1b225c5bdb5b7282b8696dbdfe8cb6aa5baeae4
parent 564a112e39875d73213c31bf002e171203e1a944
parent efe783fff2711bfc74d350733904a3f3002842b5>79199432G79199432 +0800

!5157 merge master into master

update python to v3.12.10 Co-Authored-By:Agent

Created-by: xuezhou_yan
Commit-by: xuezhou_yan; build/issues/4486$/g16 ) I$ n $ V  j ^X157mvIx{
tree c6829227e91b6a1be68a78e7cc9ba3419880c635
parent 87a11e0a3e9a68aa9673f54ca4051f0cb0a81324
parent ab6877f6567869ff4b82bf3c16cc5e265107d550>79193520G979193520 +0800

!5186 merge master into master

api注释Obuzhi_
Commit-by: buzhi_<%-API注释和API参考文档W@API注释和API参考文档FY)YI$YnY$YVYYhYjY^X186$xz
tree 59c49e1f1d8aad2b7f159cb813b79089b4fa6554
parent b1863f0c59856ecbf57c02eabc5c8d9ffb4fcfa7
parent d15de4105e95602b71d4fe35b3cf4a4aea4523d1>79187808G79187808 +0800

!5177 merge feat-ren into master

fix: 修复systemapi裁剪脚本的bug

Created-by: weixin_51530161
Commit-by: 咚隆东;8019$/g16 ) I$ n $ V  j ^X177Wzxm
tree eec720e85e77c7be86ea85765a4e6474e5111e0e
parent 821f7285a79eb8cbacb650d14a1450e9365b403d
parent 37bd3dec53db68d5dabb20362e8080a0a3328702>79181018G79181018 +0800

!5149 merge master into master

CAPI注释一致性需求[DLP]

Created-by: gcw_RYdx6Zzw
Commit-by: gcw_RYdx6Zzw;#dlp CAPI注释一致性需求 #3996$/g1- [x8!x] 不涉及（仅修改注释）4 149?xY
tree 8a4cfa984e438d20bb71e41c52f9975eaa3fdbc1
parent 8b273ff757695e8e1eeb4cf37f05dbaf8b173fdb
parent 5ab76b9cdc3581f2413dcd7298747ac83e9ae610>79180374G479180374 +0800

!5153 merge master into master

capiOLinHaier
Commit-by: linha<73953$.0资料文档定期扫描不匹配，需要同步f1CAPI n- [x,153
x(xm
tree 8a4653713f78f968d6c9ad01322db12054c91f69
parent 62abb56463858738ec592ec90398e58d034870ff
parent 77880fdc5e92641e8a5fe3c181ff956a7d97b6e1>79170993G79170993 +0800

!5119 merge master into master

notificationiInfo sdk_c

Created-by: chinese-deer
Commit-by: chinese-deer
Merge6%.g16 Y) YI$ Yn Y$ YV YY/ FY9   docs/pull/143433
- [ ^X119kuJxv
tree edf51a7e55b7791911168424594807422ce65201
parent 0e516e9bf4d5e64c366c41d6afe086e555f35bfb
parent 87d9bdbf10bf2c155569abca7b32534a45a7d2fc>79106809G79106809 +0800

!5094 merge master into master

add hidebug interface

Created-by: zhupu1122
Commit-by: zhupu1122
Merged-by: op- "hiviewdfx_faultloggerd/issues/1925$/g1x/ Ex9$ ^X094&4rPxW
tree 212bd89c798ba589840a858f63eb7903e555ba79
parent b6fb23bdffcf03a22f65c2f26be3a152d09607e3
parent a851b2fa2187414e0b74768ad038cb5be922bd17>79099054Gh79099054 +0800

!5173 merge master into master

蓝黄同步

Created-by: Oujinyang
Commit-by: Oujinyang;8015$/g16 ) I$ n $ V  j ^X173Cg7x[
tree 0c51f843d9c0bcd6c4122ee4bec2df1d4337a997
parent 5b9191b13e61e4ab58b02015caafb52eab02dda0
parent 20c9294b01d6395e6e72535eb9b5a42ae22c2440>79084969G979084969 +0800

!5161 merge master into master

API注释O&zhushuanghong
Commit-by: zhushuanghong<%-API注释和API参考文档W@API注释和API参考文档x,161z!"xk
tree b94d9284c05c2147caad3cf076249126a05bcd0a
parent 575b066924f5bb0eb713640f297d56df87091f86
parent 110041d4c0306e8a7b00c57993545c58f0a258b7>78921190G78921190 +0800

!5159 merge dispatchertest-0513 into master

dispatcher

Created-by: xialiangwei
Commit-by: xialiangwei1@huawei.com<%.g16pass) passI$pass npass $ passVpass qYxJY0 EY8% ^X159xFxU
tree 2685796a8a219bca57fd1bc7e7f07bd2af05d535
parent 6f4db8ef8063e0b56e5a05e9a3d99508b8f1d80c
parent 13a0396727451734cae165b3252eb8f83f80ac10>78846294G>78846294 +0800

!5170 merge master051501 into master

bms capiN"jiangminsen
Commit-by: jiangminsen;73998$/g16 ) I$ n $ V  j ^X170b@+xw
tree 0be256a70b250fe7acced034c20e41e88523dfbe
parent 81ab912d1c741c8e794e4f5a69ad7256e3e60cc3
parent f302809ab70a637f45c389b3f6f95c0a031664ae>78833973G78833973 +0800

!4935 merge master into master

feature:add API description

Created-by: yueyan233
Commit-by: yueyan
Merged-by:073993$/g16 ) I$ n $ V  g docs/pull/144158
- [ ^W4935sCx%tree 01a72db5635891622cbfb5bf6c7961211d640c69
parent 3ccf8ca2adfb3bd8cea821fbc3d23362cba81190
parent d997b26b2046f6eb3b52213df3912e97ee43430a>7883285H78832856 +0800

!5166 merge moe into master

ModularObjectExtension描述优化

Created-by: zhangyuhang72
Commit-by: zhangyuhang72t008%-"ModularObjectExtension描述优化f1"ModularObjectExtension描述优化7Y)YJ"YnY$YVYY/ EY9   docs/pull/143377
- [ ^X166B-xy
tree a54c11a9bf790fa7d70d4901d75c72deef38704f
parent 990bc02b62305298939bf64f4ca8516a91854721
parent 35b982182527d19598238d2b2ad700c9b0c04e8?78832821G78832821 +0800

!5125 merge master into master

fix link reference format in battery info

Created-by: wangyantian0
Commit-by: wangyantian;7397#0g16 ) I$ n $ V  j ^X125Xo86xO	tree fe8a7520e75398b854dd4cfc18fe07b437b31e66
parent 12b9f7298fbab264f4bf6d196261e8644d84aa0a
parent 2312e8e6409deca67b8e7d6cb11ba8acd5b82591>78769053Gh78769053 +0800

!5165 merge master into master

蓝黄同步

Created-by: Oujinyang
Commit-by: Oujinyang<%.g16 ) I$ n $ V  j ^X165^fx>	tree c444f0d8a2630e117010f3e15a3f286cf049c674
parent 1771f22ee78617ab2a80501194f5e821b43bb34e
parent 6f31b724ff92f099ee602ac123edefc1550f56c9>78757997G78757997 +0800

!5150 merge master into master

PIP CAPI中文版 上库

Created-by: weixin_43102524
Commit-by: weixin_43102524<%.g1{oG1504acx}
tree 224655dbeda2136271e687d8971ad11854616b72
parent 79eea035c34e57efd6b65078721b89df512c0aec
parent f90f696153e18949f1806bd53af9fe340f3feb73>78739007G78739007 +0800

!5112 merge master into master

Update the interface documentation of the picker.

Created-by: huangxx1995
Commit-by: huangxiaoxiao<%.g1{Nn	NxJx/  docs/pull/1420452112[ltpxt
tree 291ef2575aa79515104b38e5a7312cc1df50326d
parent bca1279fa9796f6dd10f8dccb7bab0d195bc97b7
parent 98e5a6fb4f45a89e71380bcd16b278f5f1e19970>78680965G78680965 +0800

!5139 merge master into master

update: 修改cmake复制方式

Created-by: wangmengOnlineCode
Commit-by: wangmengOnlineCode; build/issues/4527$/g16 ) I$ n $ V  j ^X139M~VxItree 9c1e8cdaf08b1218e265f81b53fb0a694e40d924
parent 22540e1052d319d31cf3343edf7849c83166837d
parent 46b649ad81707fcd53a6c8bb38ad46565d81489e>78666774G78666774 +0800

!5143 merge master into master

播放器支持8倍速

Created-by: cgxcgxcgx
Commit-by: Viva La Vida
Merged-by2%.g1	不涉及sOx/ B&-sig/interface_native_header/pull/3441 +-sig/interface_native_header/pull/3447
- [x9$ ^X143Qx~
tree 188fcdeb3677abfea94c944d0d42e0ff0e59a916
parent 26f0a01fb69beca44113eb6d42645436fa5c85f7
parent 88a99392e4dbad4959f9c72ef434f6697451b8ba>78666364Gk78666364 +0800

!5137 merge master into master

修改宏起始版本

Created-by: hhd227
Commit-by: hhd227;73985$.修改宏起始版本f1修改宏起始版本Gx9   docs/pull/143895
- [ ^X137~_xz
tree 9034ff644382d0cbe0e7e9ae3165101ccaf43e3f
parent 4b3b50dde9f051439170ab9e1e145391631aab17
parent 3ee67b695886e8665e1965278d09bf5cbbff2ad?7866523H:78665236 +0800

!5145 merge master into master

Arkweb APIO"huangwei236
Commit-by: huangwei236<%.g0I将docs仓接口描述信息，刷新到sdk中，不涉及接口功能修: ) I$ n $ V 145faftxXtree 3d0c2ddfbe1cc3fd24f484cb12d8bdf6d39e21b6
parent f203f9d2af4261de2f2100796476ca5df14952ba
parent 36829f2a217f6b5f72fbb797daedb62ee3043934>78662747G78662747 +0800

!5067 merge material into master

systemMaterial cAPI

Created-by: hehongyang3
Commit-by: hehongyang3
Merged-byi3960%-新增systemMaterial cAPI接口f2（不涉及）
  - [x8x/ Ex9! docs/pull/142968
- [ ^X06739+x0	tree f3c8bde9c067dfa2acb90111d4a9a2dd49a67899
parent 1e70556e29d4c7e89ffd05b626950783a9371363
parent f3b2f304c27d99a8c57fb1a4befe93bfc98d469e>78657437GK78657437 +0800

!5135 merge master into master

API注释和API参考文档O zhenghui25
Commit-by: zhenghui25<%.g1x NsC135Fakxq
tree e5306fe09fa7b02eeb474eeb389be341918db348
parent a1de9e8a8e83f5db1706783593fe3fdc161c5ea8
parent 12802e4f4cc5fed1ce06a317a07e0952b453b27e>78641377G78641377 +0800

!5147 merge cherry-pick-mr-5134-1778587779873-auto into master

HUKS APi参考一致性修改-NDK

Created-by: 'slayyyy
Commit-by: slayyyy;HighLowWorld<%.g16 ) I$ n $ V  j ^X147C5|	xR
tree 77d94519b1ee29db0e6f1c73f00b7c668fd59c98
parent 393ed4431d7db9f7e034ad107f2b4b4b2cf39e34
parent 15c14daa7884d7d349074733807b4abb3a869e6?785936I78593686 +0800

!5114 merge master into master

文本一致性 窗口

Created-by: chuanqistudy
Commit-by: chuanstudy;chuanqistudy<%.g1{o 不涉及用例1148)vkxc
tree 9bbe134ddc1f9c3af7366469c7e89c535491d9e7
parent 437d2fd8e5c13c2a723734ccea8e22d6235b1b29
parent 533651f5967415a7c888ffc1b35c2f284b8ac48c>78572925G78572925 +0800

!5141 merge master into master

AVPlayer支持音频旁路输出

Created-by: zhang-wanpeng5
Commit-by: zhang-wanpeng5<%.g1	不涉及sL	不涉及4 Ex9$ ^'&-sig/interface_native_header/pull/344121413Vxj	tree fe6bfd26d1cf5b3c478fe4f827dc6bdefca2ab4c
parent 54adef6d3f653da12d9920724bfbc25420ac1446
parent 0c9b82247a2520803e41cd5a97233593c30ac71c>78507705G78507705 +0800

!5124 merge 0511 into master

add header file

Created-by: zhangzhuaxuan
Commit-by: zhanghuiming
Merged-by: ope,73973$/g0补充头文件7Y)YI$YnY$YVYpN ] 不兼容$Y/YD`V124!",<x;tree fe090d690e983652d474e248e0edee07dda2344d
parent 2254b34754b8ff54332a0c28828b0d1b03c7b18c
parent 3111cc8863d3c700972765298afd387f1dc6865e>78500862G78500862 +0800

!5016 merge textpathwithfallback into master

add textpathwithfallback

Created-by: dreamyhhh
Commit-by: dreamyhhh;73908$.新增textpath回退接口f1新增textpath回退接口|oSx/ Ex9!+-sig/interface_native_header/pull/3424
- [ ^X016ޛXx@
tree 3c4fb6b04510f5a73d42e4d5f23496da271ed82b
parent 5e812fdf916ebf688284ecd3986698c0bc82e250
parent 62184d2c137bd6676f07b8b75a74718e83d94ca?78499245G78499245 +0800

!5123 merge master into master

capi注释遗漏添加

Created-by: liuzongze
Commit-by: liuzongze
Merged-by: of3972%.g1{oG123Cbf`xtree db51d202fee7fda8f617ebd0a9ac08cb69864fdc
parent 5bdbb536da732eda6c962f497c3668da6e907a37
parent 0541b80896d610d290b613a1b3adc9823b7de9f4>78493179G978493179 +0800

!5120 merge master into master

asset APIOHarMonkey
Commit-by: HarMonkey;73970$.3asset API注释与参考文档一致性整改需求f1;合并接口多段注释，根据API参考文档回刷C API4
- [Y]+Y]K"Y]pY]"Y]TY]	n	Y] 兼容sY f，PR链接（必填）
- [Y^X120̨1`xDtree 2d46611ad86e843cdf457887466c368780b63d1d
parent 42108ea4ae1b1e5d81f8e36d7a953f49f1e4feb2
parent 2b174a52a3b5088b1ab4dd6b1f2aad0dd463d232>78478758G78478758 +0800

!5085 merge ModifyVersion into master

Modify Version of Primitive_Box/Unbox_*

Created-by: zengmanyi
Commit-by	: zengman= %arkcompiler_runtime_core/issues/11203$.'Modify Version of Primitive_Box/Unbox_*f1'Modify Version of Primitive_Box/Unbox_*085-+x
tree 70c094e879f9f02cb68a5827552edf660c5ba690
parent e878d353d0b45b6ad02ed6d617ed29d2180ebfda
parent 6d8c00d3b3f66026c31b5c0d45b7fd0c16482278>78308867G78308867 +0800

!5105 merge 0507_arkts_jsdoc into master

replace 'ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE' with 'ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED' in native_node.h jsdoc

Created-by: liuhuayi_openharmony
Commit-by: l00916518
Merged-by: op.%.g16 ) I$ n $ V  j ^X1055!xp	tree ca3fa92411c3caf3a91044707489f1e8b4bc0cba
parent 5a8b8a41f99fab0d752b328f048ce0e454f2b909
parent 2cf8bf040fed1fbcadab7e2ae62940bf94e12683>78307688G78307688 +0800

!5103 merge master into master

pip C API update

Created-by: weixin_43102524
Commit-by: weixin_43102524
Merged5%.g16Y )YI$ NnY$ YVYYh YjY^X103l!x!	tree 8406fcac70db583e3a4f8f62ede9c38be952c13b
parent c1adb96b776cfdab3f5b9faefc0c7b3d416d357d
parent 96b33f07b0ff26d715afe0329a30f39bda47f09b>7830102Hj78301026 +0800

!5049 merge master into master

一致性需求-capi

Created-by: wxc397
Commit-by: wxc397<%.g1049%[]Rxp
tree 706a45a15dce7e1b506bae36c84870501e826ef1
parent ed45b163910d2322cfa4521ce7930f281a551651
parent c73c6a3040e9e07b0193d600366cc7ff1355c30f>78242390Gj78242390 +0800

!4959 merge master into master

新增字段

Created-by: zhaoyuanbo
Commit-by: zhaoyuanbo; 'multimedia_player_framework/issues/5822$/g1xx9 +-sig/interface_native_header/pull/3418
- [ ^W4959lځ,qxi
tree 3424dda7fb636c48ea7f151b64469ddabe1a3819
parent 83b44aa730d13b2185411ec4749fd01421639085
parent e5b6ffc829aa66c005ca6ba2d7eacbbfce7e3a85>78234358G78234358 +0800

!5099 merge master050601 into master

权限申明调整

Created-by: jiangminsen
Commit-by: jiangminsen
Merged473949$/g16Y) YI$NA n NA$NA V YpN] 不兼容
  - [Y9Y0 jY ^X099#xR
tree b37eae4b2396f81ff3ba965d3c605623fc3736fb
parent 72e9d3d2f02846fbf3a3fe6c402e1f47458ecf9f
parent dfcc20d2a868a05e38a05bb9eb00990924e92e08>78213440Gi78213440 +0800

!4992 merge master into master

midi注释修正

Created-by: acorwa
Commit-by: 蒋志庆<%.g1|pRxux9   docs/pull/142477
- [ ^W4992o}lyxo
tree 1e2c5f83eeacfc56d14a14a8a6a71fd46b3b0ac7
parent a82b09158c9f71eae7ad1eaeba16aa3c54311990
parent 98eb0a4ef042464d3bbdc5b7d62f89790c975bfa>78207812G78207812 +0800

!5100 merge pr_5036 into master

fix different issue

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merge6%.g1x8x/ Ex9   docs/pull/143082
- [ ^X100/p.xxKtree b69b0ba74cb136ea30effca182b17fa71cf79063
parent a92b180198e419cc450cc815bd63d70641b184e6
parent 4546df36086fb2782e103e4d310c3be8d7721760>78135594G78135594 +0800

!5026 merge master into master

api注释与api文档参考一致性修改

Created-by: zhengdongdong12
Commit-by: zhengdongdong12;73916%-'api注释与api文档参考一致性修c5*api注释与api文档参考一致性修改{ nx,026]<xo
tree cc50e9b1ed0b07632ea0b0e46a07d9bd83ec6d84
parent 096138cca2617d9b616570b293709e42beee8c8f
parent 72fbc543c33f3864a6eb8786a801058540c85083>78126193G78126193 +0800

!5087 merge pr_5036 into master

fix C api related issue

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
M:%.g1x8x/ Ex9   docs/pull/142938
- [ ^X087hmH;xj
tree 7c709f3386f94b544e58038fe88085261ad2a86b
parent f279b61a20e809a2aeff4bcbc8868241b5e63932
parent 08e5d55ebf25c4f69f5672648d0981da1a3ed398>7812461H78124616 +0800

!4783 merge hoverState into master

多态样式支持hover

Created-by: Yun-xier
Commit-by: Yun-xier
Merged-by173688$/g1xx9! docs/pull/135324
- [ ^W4783,@s5xs	tree 6180c99b8c28b9822c02e1733d80a6b09e362ac5
parent 3ca5014f21075b0a9b8cfcb66168c1cd43353c17
parent 2585ff0ba3171b5d9cce48bbaca527a488693882>78122875G78122875 +0800

!5092 merge 0506 into master

修改注释拼写及语法

Created-by: dingpy
Commit-by: dingpy
Merged-by: open,%.g16Y)YI$NnY$ YVYYhYEY9$ ^X0922u8x`
tree e9653ced57fc8d08d1eeaa41307489ca440c4c29
parent 39688ee6e614d296949e217dfeddc789ff69ee21
parent 2aeeaf274404c8110edca55c4a20d93f899935c4>78061461Ge78061461 +0800

!5020 merge master into master

explation fixing

Created-by: alexci
Commit-by: alexc<73896$.$对部分注释的语法问题纠正f1$对部分注释的语法问题纠正7 ) I$ n $ V  j ^X020mӗgxtree 4e9ff72f2efadd7b968614bf189655aa8102c333
parent 07e1106ff7e7a033436f5522ad7544593a3be2e4
parent 2753484e8fbe5f6d43ce899201d71b7d474ffb61>7805377H78053776 +0800

!4939 merge master into master

UIPickerComponent support set height and count

Created-by: huangxx1995
Commit-by: huangxiaoxiao;#3835$./UIPickerComponent支持自定义行高与行数f1/UIPickerComponent支持自定义行高与行数NxJx/ Ex9$ ^' docs/pull/14204514939K|O]x4
tree cb958ca5f838a6ef075b8ab20818c48d5283c90a
parent ab456e78660b37573b868f2d9a248b4aab07891d
parent 40b14598edfc0590060cf05717ccbedf67a06566>78051474Gm78051474 +0800

!4961 merge typo into master

修改打印错误

Created-by: lianyuanqi
Commit-by: lianyuanq<73850$/g1{oF4961ub!x%tree 46cdbd5065b8cd76035a296497b1d8c1889538ce
parent 889d9bceae3437e0e501aa47fb2ede7fc6ae46a5
parent 49aa60f0045094fd148a41698aab1d5ab9bcc4f1>78033319G78033319 +0800

!5021 merge master into master

add deccription for param event

Created-by: wuzhihuitmac
Commit-by: wuzhihuitmac;73897$.$API注释和API参考文档不一致f1API注释和API参考文档C/API注释一致性，不涉及修改接口
- [ ) I$ n $ V foG021<_xt
tree debf18fb18024f3523bd0ae7593a9538671428ad
parent f6d6e408646124fab7041f12d1e3dd945d35a31c
parent da365583ff9cc383f1382bd022a8ce19337bf635>77868614G77868614 +0800

!5058 merge cherry-pick-mr-5041-1777357005594-auto into master

optimize ddk capi comments

Created-by: liuchunyu20
Commit-by: liuchunyu20;73815$/g16 ) I$ n $ V  j ^X058sa&xtree 5d8a6de9f6d27e3c379f82d89c338f63fad6fc41
parent 951ca48e2d9fce625eac0637b90e50f9f40891c3
parent f4b3ceee0c62df4a6f052971623be2d47441de9b>7763784H77637846 +0800

!5055 merge master_request_dialog_diaplay_mode3 into master

CustomDialog跟随父窗居中显示接口

Create&d-by: houguobiao
Commit-by: houguobiao;[#3919](73919) $.*CustomDialog跟随父窗居中显示接口f1*CustomDialog跟随父窗居中显示接口- [x8x/ Ex9$ ^X055摽xl
tree 64cd9cd3dc7ba172802d00a894816c30e7739c1b
parent e21e00dbb5e0f1b339079251bdbbd137af455724
parent 941acb85491a181a8dc8cd54179dff0fc239f301>7754704H77547046 +0800

!5079 merge sdkall into master

api文档注释一致性

Created-by: qianyang-yi
Commit-by: qianyang-yi
Merged5api文档注释一致性%.g16Y)YI$NAnNA$NAVNA- [Y] 兼容SYjY^X0797gAx
tree 61fe84f6f46138190bc92388cff2440c399633fc
parent eab67999caf3bb7a7a72c8961efc07088d676e8e
parent 0a9f6f928c0125e614cafd39cedcef8f93f45649>77543642Gh77543642 +0800

!4703 merge IsC into master

ischildprocess

Created-by: renjh5496
Commit-by: renjianhao<%.g16y )y I$y ny $y V ypnwKy0 Ey8% ^'![image.png](https://raw.gitcode.com/user-images/assets/4379443/d06e6113-308b-4fd0-b3da-b4e279a2d536/image.png 'image.png')

Se-4703=1[=xk
tree 8606d6b9ba338fa9fbd24e4cd66275f5583575c4
parent ad339b4731a3efb0bb0f453ef304a0eee9a0a595
parent bdfe78484e9d7ccdb3f8a72c1701edd2c3138c67>77537293G77537293 +0800

!4901 merge qxu48baipingheng into master

update: 更新文件 capture_session.h

Created-by: m0_59343938
Commit-by: m0_59343938<%.g1x] 不兼容
  - [x8x/ Ex9 : docs/pull/138141
- [ ^W4901݄oax&tree 5cab9b22043a0a2aaa90fff6370f477016ccd63b
parent 1d50ee2fdf5ce88e07f838dded8b48c4a07dd595
parent 259b2ca1ba16445f63fd64a9bee222fe59935c63>77523974G77523974 +0800

!5051 merge dev0427Acc into master

增加无障碍属性

Created-by: haiwenxiang
Commit-by: haiwenxiang
Merge5#391#/需要增加无障碍属性f1增加无障碍属性 arkui_ace_engine/pull/84386不涉及非兼容$x/ Ex9$ ^( docs/pull/1421642051{*Jx.tree 77e3da96b5738c7d003c68f5dada1538a329fd78
parent 370d0591130196ab86536a633dc4c3ff7303c43f
parent 9d46a4945bd640d031672379ad5545b3f46200a9>77523861G77523861 +0800

!5038 merge interface_c into master

file_api API注释和API参考文档一致性整改C接口

Created-by: sj_x
Commit-by: gsl_1234;:file_api API注释和API参考文档一致性整改C接口%-API一致性专项需求f1(修改接口docs描述，不涉及功能x038º+xr
tree fdc7e748bf9759982da43aa569cfa8c717faa792
parent 041f5ed381f443395cdce381c341a637ef84c896
parent c1bed572d2799019d5d63583db81d1ce8b081182>77518591G77518591 +0800

!5050 merge ColorRadius into master

圆角与渐变色capi

Created-by: yao_qiaoming1
Commit-by: yao_qiaoming1s3913%.g1x8x/ Ex9  docs/pull/142609
- [ ^X050UvJ-x:
tree 3730992325caf8f0e1160c3a53c1aac9d6e41bd3
parent 5a6c0bbfc0f9e33fa56ece22e6afb8a25909a548
parent 65ca556d214482ec828b6dd4115286935d4c2120>77517730GK77517730 +0800

!5075 merge master into master

API注释和API参考文档Olijingjie4
Commit-by: l30069879;7393#0g1{ox,075bywxZ
tree 48b3fc94d5ba8bda012d7bdbfe220ad25d3c625b
parent 772d2cab92fd7c543967381870ab2fe65a9826e4
parent e2c05132dcf93dd2fe644e2eb21ecfbdd8ce12db>77455469G77455469 +0800

!4988 merge native_display_soloist0420 into master

docs回刷

Created-by: zzzsw
Commit-by: zzvscx
Merged-by: g3871%-
docs回刷f1
docs回刷x+4988 r/axAtree f68911ce89a1113fb3c7e1fa317a12190ed7d389
parent d6e12fde365a6940020d5ab473822eb487b3b2f9
parent 63544024c905dac9112b9bb5186cb8cd29c74d8e>77383762G77383762 +0800

!5061 merge master into master

更新API说明

Created-by: gcw_4z3jiPvB
Commit-by: gcw_4z3jiPvB
Merged-by: op- <multimedia_player_framework/issues/5864
Co-authored-by:Agent$/g1x/ Ex9!+-sig/interface_native_header/pull/3406
- [ ^X061S͐/xn
tree 37d55fa97e128e0a61a37ed6524f865c21390528
parent eebbc2ad7c35876d651170fd2f9f98855dfb6b3c
parent ac3a9ee353330ccb99ab9c1090c453f34357c1a?77383514Gj77383514 +0800

!5008 merge 0422 into master

xdraw and profession

Created-by: Lin_111
Commit-by: Lin_111<%.g1NsOx/ Ex9$ ^'&-sig/interface_native_header/pull/33682008km-x;tree daf51cf3cd5cbc5a56811b6594286bdc94081cd7
parent ac9f0cfe83ee2a2dbf8cf88341aeeb89b7f266e5
parent ade04a3ebbae464a55a7de51a30e63328d1a48a1>77380009G77380009 +0800

!4872 merge master into master

add new sdk for video encoder preprocess or dual stream encode

Created-by: zha!nghongran
Commit-by: zhanghongran<%.g1 -- 新增接口，不涉及?x/ Ex9 ，doc仓链接： docs/pull/140858/diffs
- [ ^W4872N.xs
tree 73b939b651c5b45a420f5e640189504469df6a95
parent 85a95ae991ea71a0132d38884b133da0c01c07a5
parent 858fa23c85d33432ff199e045934c0cb5a358a36>77377662G77377662 +0800

!5001 merge master into master

在api中添加apiAvailable的使用指导链接

Created-by: Gianna00
Commit-by: pjx_yellow_blue<%.g1V I$ n $ V  j ^X001kz*xr
tree 8eab83e0accbbca1325d86f6852e5a487cc4070c
parent 8b62d4f4f33cb59dc13bdc51bfbe0e5a78df581b
parent 55b78bf78d9e13bbf10bd3a19ec5fc1000c95d3e>77367194G77367194 +0800

!4978 merge master into master

avRecorder接口单位说明

Created-by: zuotao_gitcode
Commit-by: zuotao_gitcode;73862$.补充接口单位说明f2x] 已 docs/pull/141561
- [x9$ ^W4978'!x3tree 00c7239c605d4008e0037690745f1e988862100d
parent 219caf9f3704fbf655391cc7e740e8aac7e0dfca
parent 460aba821e97d0c212ab3aa5959b2f305b2789b6>7734211H77342116 +0800

!5045 merge master into master

update: 更新文件 libavplayer.ndk.json

Created-by: gcw_4z3jiPvB
Commit-by: gcw_4z3jiPvB; <multimedia_player_framework/issues/5853
Co-authored-by:Agent%.g1 7x/ g--sig/interface_native_header/pull/3348  
- [ ^X045}x_tree d6eaa3d587074cef63b2acc98624220899e722b0
parent 7ca25e624865c2ebbcebf06a58c5633d6d1945d9
parent f2dcdaa8a1d3349940328d041f06b4f6fc125958>77300105G77300105 +0800

!5047 merge master into master

add frame retention feature

Created-by: Helinshan
Commit-by: Helinshan
Merged-373910$/g1x/ B Edocs/pull/141984
文档PR要等sdk合入trunk才能合入docs仓
- [x9$ ^X047΅-xq
tree d38162b188ed4008397bb39d7ecd03443a6d43fc
parent c62b92a80fd6cbca6c885374cd350b88987e4771
parent 44a00a24ae76c81ba1f9d61dfc4225b97de1409a>77291419G77291419 +0800

!4905 merge master into master

接口单位排查修改

Created-by: 2301_76695984
Commit-by: 2301_76695984;zeng;73808$/g1xx9$ ^' docs/pull/138161

14905ss1.xo
tree d995e2599d1af6bf0c79feee3f6a39ce44a73057
parent 9d7fa22b69eb1dc292162cd1642c8b13026cac04
parent dd12140a362248869d126e330ab5e444dd0b64d?77291378G77291378 +0800

!5039 merge master into master

去黑边需求json文件补充

Created-by: 2301_76695984
Commit-by: 2301_76695984;73906$/g1xx9$ ^' docs/pull/1382442039t-xn
tree a2970448d172883a1a756665a342925efd08ccf0
parent f0326af209c1e99686a700613762a84fc656fd9f
parent 03bf00e0247bf1ed104908cbce56271b39e71962>77282808Gi77282808 +0800

!5015 merge densitySince into master

修改since

Created-by: fwg5587
Commit-by: fwg5587s3891%.g1 V 1x9   +-sig/interface_native_header/pull/3395
- [ ^X015m+xR
tree 044c0d5db348dbc1037c8c8900b5a7d0e34b322c
parent f5d7caad8cf08d0d975022f8aaee9f4ee0cae7fd
parent 7086e855278732c76a0615870362bd8412c46c09>77277962G77277962 +0800

!4665 merge io_switch into master

设备切换

Created-by: zhanganxiang1
Commit-by: zhanganxiang1
Merged-by: 0%.g16Y )Y I$Y nY$Y VY Y9Y/ EY8% ^'&-sig/interface_native_header/pull/338614665s,hx`
tree 63578fe5e2d70bad5cec99ed3c57645c8af9404c
parent c9694b4e451b826520eb1174aa2a99959ba128f2
parent fbc104efa76e363d5a929c87f0d1fada8b276858>7726350H77263506 +0800

!4916 merge dev into master

回退MATRIX4特性

Created-by: silverbullet1412
Commit-by: silverbullet1412
Merg6#3816$.回退MATRIX4需求f1回退MATRIX4需求x/ Ex9! docs/merge_requests/141467
- [ ^W4916쉩x`
tree c914dffab985959f019dfa2338ec060c724ae25c
parent c028df84ada4316959e6d6a15b19e5c818be0a36
parent 05141d0472dd5df6daa0fc1ab72cf0d51bb8ecf5>77260437G77260437 +0800

!4912 merge 0409JSDoc into master

转码JSDoc单位整改

Created-by: heshaopeng5
Commit-by: heshaopeng5
Merg6--js/issues/23240$/转码JSDoc单位整改g1!回调函数添加单位百分比x/ Ex9$ ^W4912;.Fx8
tree 66ba0f7dc044d2ee6c75cf10c62d459e9a0c07ca
parent 8177ab16ad1cbede4a4c8edb41ca3ef06821f962
parent 103d0d8e6693d2fad6ff38d71e42c55d0a36039f>77256431G77256431 +0800

!4996 merge master into master

edit interface

Created-by: chenxinjie253
Commit-by: chenxinjie253
Merged-by: o. docs/issues/102537$.edit interfacef1edit interface7Y )Y I$Y nY $Y VY YiY EY8" docs/pull/140172
- [ ^W4996扶xy
tree 6478657de168170c76a705fd60860b0345c991c0
parent 689789e297f6839692502373178eecf0a7b0dac5
parent bfbb086e2383995f970d96ed1c183a90180556ab>77107477G77107477 +0800

!4971 merge parallelgesture into master

add parallel gesture interface c

Created-by: yuanlin94
Commit-by: yuanlin94;73856$/g1Nw{N B docs/pull/140935
- [x9$ ^W4971Gp&xs
tree e941996568853b7876044cf84e50f64bd1226168
parent 9bfea40b40a356aa89621de4376705d53f5ececf
parent ed43cf6da2dc8b1737696f131c1c335f0ddc2b07>77031839G77031839 +0800

!5029 merge master into master

exposureState exposure

Created-by: chinese-deer
Commit-by: chinese-deer
Merged5%.g16 Y) YI$ Yn Y$ YV Y FY9   docs/pull/138931
- [ ^X029u BxQ
tree 6b0a1ffc233f31d83c2f56ad74ce003fe22babd9
parent c9112e388ea7fe3034b8531f0da2a5330bbba04a
parent c433f5aca9dd7116871a65f86ad580222e5b7080>77021359G77021359 +0800

!4965 merge master into master

[issue]support global interceptor

Created-by: pjie131_
Commit-by: pjie131_
Mer7	### Issue83853$/g16Y ) YI$N nY $ YVY gpY9Y0 EY8" docs/pull/140515
- [ ^W4965Q~S xG
tree 4324d4bcc8217b54d74a0784496f1f27ecd38e83
parent 6e2f6a13cc9c8ef28d3b0ee28dfdbc1f577348f9
parent e1b7d93b195e9eb1ee1a960297f669f475049fdb>76952662Gk76952662 +0800

!5010 merge master into master

DNS拦截器C API

Created-by: heqianmo
Commit-by: heqianmo<%.g1Fx9  docs/pull/141390
- [ ^X010dWxtree 2146f310b012310b018795290c4e8f726a1537f4
parent 3abfada9a9e9830f4088f853595141b0ac21003a
parent 25431416f0b8fd4ad4fdcf8fb737425d7fad9998>76864683G76864683 +0800

!4810 merge moe into master

新增ModularObjectExtension

Created-by: zhangyuhang72
Commit-by: zhangyuhang72
M973725$.新增ModularObjectExtensionf1新增ModularObjectExtension7Y)YI$YnY$YVYpNxJY/ EY9  ,-sig/interface_native_header/pull/3378 
- [ ^W48102fTx{
tree 8b0275e95f4097dbd8d4fff32001f313c07ee279
parent 6db0733ee322207ed18ab0e52656bf5a8df12532
parent b3afe92c70ac4f65d6228c9c57cfcae45d47ecb2>76761693G76761693 +0800

!4964 merge master into master

易用性问题修改

Created-by: wan-xiaoqing321
Commit-by: wanxiaoqing
Merge573852$.易用性问题修c6用性问题修改NsOx/ 4964J_x<tree a44b14470266414a4bfdd634b1d2685dde34d1c3
parent f508d68932a4caf605ddf9b2189712340f6e515c
parent fbc931931e1131908465621237a0e4101e9a729b>76741332G76741332 +0800

!4906 merge fix-err into master

fix 注释与文档保持一致

Created-by: fuhanfeng
Commit-by: fuhanfeng
Me8[#3809](73809) $.0AI 扫码，发现注释与文档描述不一致f1!与文档为标准，更新注释7 )D n $ V pNx=49062x]
tree 4173b1b5fd6b4834698d6c3128e9fd52aa69136c
parent 17a9272a6b6f19726994d749252f09c43b4dcdef
parent 912d92aecf3006e27e6fd279da145bdd5d79c751>7667891H76678916 +0800

!4933 merge master into master

新增surface错误码

Created-by: three-inch-daylight
Commit-by: 刘瓒
Merge6%.g1Fx9   docs/pull/140200
- [ ^W4933mooxk	tree 6b6aa81e9ae731525a085d1af5bf87eb838e3bbf
parent a7b55e2e64b61158d1139f51ae06befb6d385ca4
parent ef39913e36e00865520ddffaf7c2ec992e1b5635>76677294G76677294 +0800

!4983 merge master into master

AVCodec支持FLV封装

Created-by: zzm_gitcode
Commit-by: zzm_gitcode
Merged-b3%-AVCodec支持FLV封装f1AVCodec支持FLV封装|NAnNA!NA= docs/pull/14043614983Cx}
tree 3a701bbdaefa0bca890b7b6797252fdad07d238e
parent 900428f492e6da7e6ddfe4f6603b1515edce0b3b
parent 9ca0999616e389dad8a7ec60f0f356fc9f917bb5>76654428G76654428 +0800

!4853 merge master into master

新增数据盘加解密公共事件

Created-by: guagua_wen
Commit-by: guagua_wen;tywinwin;73762$/g16 ) I$ n $ V  j ^W4853Px/
tree 0c48c12a5cdf3e67bed7db9c4a99f011178d5a63
parent a61d7f20d8ffbe7f4938748251faf860d53e637e
parent 6eb7d6aa826978b5dcd238a106831e864ff05849>76520325Gm76520325 +0800

!4969 merge master into master

API 注释 整改

Created-by: liuzongze
Commit-by: liuzongze;73867$/g14969@F_Kx5
tree d00c1e8f2679ae630e70ccf8d420ee9631534f14
parent 9e027d2bf736da55355bad665c1d4db1bcbc29e7
parent e10fba8481ef10287811798e80c425d8123087e6>76516209G76516209 +0800

!4985 merge master into master

API 注释整改专项 NDK侧

Created-by: wandererhh
Commit-by: 贾昊炜
Merg#API注释整改专项、仅对注释进行整改
不涉及  ： 代码实现、接口变更、资料变更
### 相关的Issue

%.g1x8x/ 4985pgix!tree 239ada871bd3ee79cc6916370a5ea4fa70f643b5
parent e31ac371772d3a39f39d80e23efbfb03929f9db9
parent 68e280b1715d58ed58f2dd6dccc2111ca06aa831>7642889H76428896 +0800

!4804 merge dev0326memoryAnomaly_sdk into master

hiappevent add framework memory anomaly report event interfac)e

Created-by: zhou_xq
Commit-by: zhou_xq;73721$/g16Y ).,Y,不通过的4个名次走告警屏蔽
- [Y I$ NnY $ YUY[ Y9Y0 EY8% ^W4804Wxa
tree 86ce560f2e5dc7903483bcb7e736eb00471e2863
parent ed5ef72f35b33116d610317629d4474adb0b84de
parent 3c95ee332235c8c42bf4c7915f29dc4df1a48500>76424142G@76424142 +0800

!4928 merge master into master

API参考&文档OLeal
Commit-by: Leal<%-API参考&文档W@ API参考&文档一致性整改
4NAPI参考&文档一致性整改，只修改注释，不涉及修改接口定乳#fx+4928qxT
tree 5fdb5f5fb703cdf581063028d1a168998c170398
parent 4fd342d6e9ad05d582f7a128aeb733efaa2a0954
parent 039cda0f9b5354102cde5d2fc0c20280a5019221>76422638Gn76422638 +0800

!4973 merge refineComment into master

refineComment

Created-by: wu-yinxiao
Commit-by: hw_wyxs3859$/
refineCommentf2refineComment4
不涉及

- [ ) I$ n $ V m不涉及
- [ ] 不兼容
  - [hYjY^W497345@xJ	tree 81e2f6ae9c6d7cbdaa54c87d509cfa6c6b23571f
parent a680069d4a8745d4105ea206993c883f5986d5f3
parent 8518246d839c23a074c861315eff7326ce910047>76419033G76419033 +0800

!4967 merge master into master

注释一致性修改

Created-by: yang-yinghua
Commit-by: yang-yinghua
Merged-4%.g1x8x/ 4967Їkxm
tree 59ec5c5954615210bcd2e9211ffb9ef3182e68fc
parent 520a6e75610cb741c359a5e0c282aab9b25fb9ed
parent f81517d74d3089a2313115a4cca64e26ba2ff22?76407361G76407361 +0800

!4902 merge master into master

去黑边需求接口提交

Created-by: 2301_76695984
Commit-by: 2301_76695984;zengs3855%.g1xx9$ ^' docs/pull/13824414902Usx~tree 37c0312f0187fd6dc9b413de9438535824979f3e
parent 8a816c0d613beab9ad0740607222f7e840d24ed7
parent 154f862cb2fcf2e2aa5ba2587777b40e2241549f>76342994G76342994 +0800

!4947 merge master into master

删除OH_AudioCodec_PushInputBuffer返回值AV_ERR_OPERATE_NOT_PERMIT

Created-&by: zzm_gitcode
Commit-by: zzm_gitcode<%.g1{NAnANANA!NA=NA14947k{(x`
tree dfc0849842c75afce829f9de9c895915b583a686
parent 5b26dc115c7b9e42d333cca197d099f1bb616c50
parent 997f7e40c982dacd6753cfde2eaa2d7bfe658d30>76329708G76329708 +0800

!4944 merge master into master

fix vivid meta azimuth comment

Created-by: suruoyan
Commit-by: SuRuoyan
Merged473840$/g1，不涉及	不涉及sB4944uKxMtree 966fa38800cb1636e0d5a370d9935770cab49dd2
parent dc6756af49e58d972aadbe873f8b60e01f9cc54a
parent 2636b26dd90f1fb702fe95e2b07b0a434a5cec6a>7624363H76243636 +0800

!4822 merge densityCAPI into master

增加densityC接口

Created-by: fwg5587
Commit-by: fwg5587
Merged-by: ope3737%.Density信息C接口g1Density信息C接口xxJx/ B+-sig/interface_native_header/pull/3306
- [x9$ ^W4822ZxG
tree c95bff57aeb60c9580832f6268bdc2aeebac51e1
parent 81aefa97f93ebb289e533bb0b8b82ff066cbd0ad
parent c18ab3f79ca8b117d08dd16222eebdf3abc0b8f0>76224097G76224097 +0800

!4936 merge master into master

色域API多段注释合并

Created-by: jimsu7
Commit-by: jimsu7
Merged-by: op-73832$.色域API多段注释合并f1色域API多段注释合并7Y)YI$YnY$YVYY8Y/ E9$Y^W4936"xw
tree c3767ba6a3c822665bfecc8ecca653e1b3f08790
parent b302009b4f25316d450c4bc5b42ec60082cb84bf
parent 1c48f437ec3a841f52a71af5c120454779706aaf>76221297Gi76221297 +0800

!4942 merge ole into master

add permission

Created-by: qq_41146650
Commit-by: 万孝国;73838$.新增权限标签f1新增权限标签NsOX/ EX9! docs/pull/134185/
- [ ^W4942S:xV
tree 93054a1fe14768ea1a594e0493a880379d6d4f3d
parent c1b23320d69343fd2c0efc6cd3396ee13e4b9a25
parent c2647daf14e0c3c67b6be354af057b029d1113cb>76173394G76173394 +0800

!4948 merge master into master

TEEKit下架扩展接口

Created-by: jiezixumihp
Commit-by: jiezixumihp
Merged4	issue3841$.TEEKit下架扩展接口f1TEEKit下架扩展接口7Y)YI$YnY$YVYYhYjY^W49484Ɣsx?
tree 4cbcb1359dc6c8fa8112f0078092e75cb3d0848d
parent 305cef9be32598ef4c19f7ed1c8c6c25ac4eb6f5
parent f654ed84a9ac5f83db6bbd06480359f7b8318c8c>76167393GF76167393 +0800

!4899 merge native_display_soloist into master

文档Ozzzsw
Commit-by: zzvscx;73!2文档一致性整改g16	不涉及)YI$	不涉及n	不涉及$	不涉及V	不涉及p#不涉及] 不兼容
  - [不涉及8N/YE9$Y^W4899WHCx@tree 199f388a67f108c22d0f727fbd469b1bfab6589b
parent 9cc106afa499ce6744e10e2a8e463e7fe0de8e60
parent ca2083e2a6cdd633aba31a2c2d7e191e161366fc>76147223G76147223 +0800

!4931 merge master into master

support Audio Vivid meta data

Created-by: suruoyan
Commit-by: SuRuoyan
Merged-3736"1g16X)XI$XnX$XVXfN）
不涉及sOX/ Ex9!待SDK合入后合入docs!docs/pull/138707
- [ ^W4931<Ox tree 61f2c7e15d45f73680a47f261246c0d9ec93e529
parent 3926ce3cdeffb52687cca761c3d97a60d59b8428
parent adb1f28a73c453306ad042df9680345953bdd9c?761471IZ76147186 +0800

!4932 merge master into master

泛Sensor服务API注释和API参考文档O$shenpeixing01
Commit-by: shenpeixing<%-$API注释和API参考文档不一致f1API注释和API参考文档C/API注释一致性，不涉及修改接口
- [ ) I$ n $ V fo√j√^W4932Խ>xI
tree ae9383405d47f8019185bfed62ed672314f16317
parent 412a0e62fb3f695a013ccac07e2a5aee58f78110
parent 7997444c7df2a8cd56a9339a91b87ceb46876e63>76054644G76054644 +0800

!4634 merge prefer_device_callback into master

CAPI监听优选输入输出设备变化

Created-by: zhanganxiang1
Commit-by: zhanganxiang1<%.g16 Y)Y I$ YnY $ YV YpNwKY0 EY8% ^' docs/pull/13855814634pGx{
tree 81869d593256038b73f59570d1e0c6ec4c82c3a3
parent fce4e8c1ea751917552464a962b285a6d01afddf
parent fbf2ec4a4d0317eb642dc051a9f6dbbb1c62a97b>7597613Hl75976136 +0800

!4924 merge master into master

支持行位缩进

Created-by: gmiao522
Commit-by: GMiao522;[#3823](73823) $/g1x8x/ Ex9!+-sig/interface_native_header/pull/3338
- [ ^W4924dz[xm
tree b635d79d0fa2d676ecaf302f2a4b7c462c03a70f
parent 66ca6a90a7721dc40ded5a1b0a05007d8d286989
parent cf3e34462b4e4395a41ea83e7bea34c9855b53a2>75917518G75917518 +0800

!4909 merge sdkc_dmp0409dev into master

add collectMinidump param

Created-by: zhou_xq
Commit-by: zhou_xq
Mergn3827%.g16Y ) I$ n $ V  j ^W4909dkXx8tree 351d7489f76f9293f6708d7713f6e569a657ecbd
parent a23884191ce64f6e9fb4ed919825916f73aa3f61
parent 88c0496ef45c27a452227fa7dc395ce25ca6000?75905614G75905614 +0800

!4857 merge 0331_add_GetErrorMessage into master

添加errorMessage获取接口

Created-by: linzuoquan
Commit-by: l00957130;73766$.添加errorMessage获取接口f1添加errorMessage获取接口|ox8x/ B docs/pull/131244
- [x9$ ^W4857d/x<
tree 87ef0668bf04661afd289ce1f1116dd46a4db673
parent 641f502550f77e2df7da09f02ebc902e283cbd7a
parent 2809913615fdcbbab911c835c76ad93647547c6?75901543G75901543 +0800

!4834 merge master into master

弹窗组SDK注释修改

Created-by: niushuo0510
Commit-by: niushuo0510
Merged473812%-弹窗组SDK注释修改g0弹窗组SDK注释修= 不涉及，仅修改注释
- [ ) I$ n $ V x8x/ 4834Ex8
tree 49c94e4fd3eea8ff1dda0b8df8cc9745bc235106
parent 77aaddcff09122ef5df8540f02a01c146524a075
parent d97b1a7a6b56fd3044d66fba2e39ddb1598f66da>75894323Gm75894323 +0800

!4885 merge update_note_c into master

update notes

Created-by: liveLoad
Commit-by: liveLoads3790%.g1{ nx+4885}^lJx}
tree 373b94b62665f0e5defcf940a85d881b63b47ceb
parent 514eaf947b335d1ca8933ef0f73a2056879a5224
parent 012f84b02be0d7fab8002f18e3aa0c3a55740398>75815853G75815853 +0800

!4894 merge master into master

修改易用性问题

Created-by: acdemicJava
Commit-by: acdemicJava
Merged-by173799$.修改注释拼写问题f1修改注释拼写问题 oF4894xsWx tree f81de71741fd4b07ad459239a5cbdae5f35c096e
parent d73bf49ba24e8ee551fcabf1a1e503b4e777d699
parent 3ea7a198cad447da57fd36ee904add1d2c2bea86>75790044G75790044 +0800

!4773 merge pointandbitmap into master

新增path、bitmap接口

Created-by: dreamyhhh
Commit-by: dreamyhhh
M:%-新增path bitmap ndk接口f1新增path bitmap ndk接口 graphic_graphic_2d/pull/29046oSx/ Ex9!+-sig/interface_native_header/pull/3315
- [ ^W4773dFxj
tree fb8d3dd3648380fe1aa916b30d3c690c840e6286
parent 0abaadc44d5403627561976910146b65ea0764a2
parent 5ad93dc0e2a5f86dd511feba271bc9fa3a67ccc5>75761685G75761685 +0800

!4880 merge feature0403 into master

x86平台交叉编译linux-arm64-sdk

Created-by: wangmengOnlineCode
Commit-by: wangmeng; update_updater/issues/1460$/g16 ) I$ n $ V  j ^W4880kxFtree 83e5ee5b7969cafeecf08ee8e4ebefa8e0027740
parent ffec373be910937612d04a776f7f2e21b061772c
parent d8c0685e38ae708738ba50af764e650dcab880e9>75728600G75728600 +0800

!4884 merge master into master

feat: 支持 hidebug profiler 跨进程回调

Created-by: Taowerful
Commit-by:
 Taowerful\xts_acts/issues/27653%.g1x] 不兼容
不涉及?x/ Ex9!*-sig/interface_native_header/pull/3301
- [^W4884y4x`
tree 6485fe72ccdf40bad7ee60bb38a380970eaf6270
parent 040f051646d98363c963c8e58cbc06d54c738851
parent fa0a2bf2f50754a8f59aa880dd8ceca0cbba878?757221I75722186 +0800

!4801 merge pointnewimpl into master

new point impl

Created-by: dreamyhhh
Commit-by: dreamyhhh
Merged-by: ope-%-新增point apif1新增point api|oSx/ Ex9!+-sig/interface_native_header/pull/3313
- [ ^W4801<aocxo
tree fddc1ccda587a59e9e8a35e1867d97a5c4bfca0c
parent d7d116d81d634d849349b6723a170b07e075fb05
parent d3565d2855ea058b249c0aaf2c2dd69221d4e977>75722099G75722099 +0800

!4888 merge master into master

参数约束描述修改

Created-by: ren-qian12
Commit-by: ren-qian12
Merged-b273796$.#参数约束应表明是否为nulllf1#参数约束应表明是否为nulllx+4888WxHtree 19aadc594d85e4aba2009d911d26fe9de5161f83
parent 1f744b9812a970da58725dc048551cdfbac1178b
parent ca671cbc7b7bf2a7afaf14dfd36e657d82f3170e>75717032G75717032 +0800

!4826 merge master into master

修复注释operation拼写错误

Created-by: lichaochen_huawei
Commit-by: lichaochen_huawe<7!3740?ref=&did=3827845#tid-3827845$/!修复注释operation拼写错误g0!修复注释operation拼写错误x+4826b>JxG
tree 018849420181f98512b08ae9fa91c2d09e43e7fc
parent 57d958d70641ef553c21573117e337505f4130b9
parent 6669b3d90dd1f35f67085be772f3d3934b350bd5>75699078G75699078 +0800

!4796 merge master into master

codeclist_sdk需求构建

Created-by: Helinshan
Commit-by: Helinshan
Merged-by2%.g1x/ B[codecList新增接口文档]( Fdocs/pull/137191)
文档PR要等sdk合入trunk才能合入docs仓
- [x9$ ^W4796BxF
tree 239736b8f6e12e7d666fb32fdf7dc87d8208d5ff
parent fe2ca1243d811f46415923cbf949b3e180570414
parent 96322c970a814b3ba5d8675bbfe548fe96abbc96>75647564G75647564 +0800

!4809 merge master into master

修改sdk拼写错误

Created-by: lianyuanqi
Commit-by: lianyuanqi
Merged-by: /73726$/g1{oF4809i+hx:
tree bb710c25557b44e79df16831c8906977cae3abc7
parent 4b497d2992587193d1bfa01fde322ed63375aa07
parent 63957327d95a32e3a2828ff9953fdff16e4073aa>75644820G75644820 +0800

!4847 merge lh_update_0331 into master

Fix spelling errors in native_interface_xcomponent.h

Created-by: liuhui93
Commit-by: liuhu=%.*更新接口注释信息中的错误拼写g0*更新接口注释信息中的错误拼写7 )D n $ V foF4847L?=x{
tree 6d539c9dbb8c8769929b66f74e7555e23fbee807
parent 940a1e2b851d6c9795f3fb2a9f6c126ee87b735c
parent 9e74744c2fe445352de77e4a697a0a01365c7b1e>75644780G75644780 +0800

!4876 merge master into master

API注释一致性修改

Created-by: yang-yinghua
Commit-by: yang-yinghua
Merg7%.g19#不涉及（仅修改注释）
- [ ) I$ n $ V x+4876|QxM
tree 62a637d98c5bba012266985d30301e33f0b2ca5d
parent ad8184ffa796d1be16c967b4a0620a28305cf538
parent 99bd0b40c48d1ebbcd7788f3947987b1008f4ecf>75644557G75644557 +0800

!4865 merge master into master

资料易用性整改

Created-by: liuzongze
Commit-by: liuzongze
Merged-by: op-73772$/g1x/ 4865m.x@tree 3f2d3d8766eb952a07ae2b3449c45992c7e36819
parent f3f6e5528316b7d5d97d7bc64588cbd4c0b6be9c
parent 51d7d453655a88cec16b8caead3fa4796e337851>75642833G75642833 +0800

!4879 merge master into master

fix ndk interface

Created-by: wan-xiaoqing321
Commit-by: wanxiaoqing
Merged-by173784
$/拖拽增加权限管控g2拽增加权限管控NsOx/ Ex9!+-sig/interface_native_header/pull/3307
- [ ^W48799E}xt	tree 6bd02fc935cffa74506860014e44ab50a0468343
parent 24c9f216ec63f45a87a664ff99a02a65b7b7e277
parent 3a939f238aef578d090dc6b5ff9513d72d083166>75632202G75632202 +0800

!4651 merge master into master

add API for GL

Created-by: zhaohaoran19
Commit-by: zhaohaoran19
Merged-by: ope-%-新增GL APIf26 ) I$ n $ V  j ^W4651&mxtree 251751a09a07fdde26101f0590e57a9eb8112a5b
parent 457dc0a164f6bf07d9003acec4a91f699139cfc2
parent 44c45456e68a66fc78aee4b2ad8a8cf08d1787f9>75628262G75628262 +0800

!4890 merge master into master

ndk 接口注释优化

Created-by: zhangkai26
Commit-by: zhangkai26
Merged-by:h3794%-ndk 接口注释优化f2ndk 接口注释优化6NA)NAI$NAnY$Ybuild仓ndk依赖目标里
- [YmNAsLNAzx9     DOCS：  docs/pull/137806
- [ ^W4890=x_
tree 2841e2255b0edb1db7858ffde21ba4d496d911dc
parent 0e1e6c16d7bb6edb26265e90a6fd052e72b24895
parent 7eaa81a6c8334536f64230d23321d16ba9f7b3c2>75623619G75623619 +0800

!4841 merge master into master

refactor: optimize Doxygen comments in header files

Created-by: mazhabandeng
Commit-by: GQ<3752%-C头文件注释规范问题f1优化了注释内宓8 ) I$ n $ V 4841N/x\
tree bf01701f4ee0f0e6b74ee4060a6e107fbdff5deb
parent fe9c9abde28d7f7dd46fb4e9fb4f18c54159343a
parent 7d8160858dc8c93dd37906885d230039f02b8ece>75623284Gl75623284 +0800

!4877 merge pause into master

screen capture pause/resume

Created-by: yxc2
Commit-by: yxc2<%-$新需求，录屏添加pause/resumef1录屏添加pause/resume Ex9!+-sig/interface_native_header/pull/3290
- [ ^W4877lՒ'bxt
tree a25ac7895e7ac90dc88e4200cdace0c590446e97
parent f883065b181955c0eec98d3dfbb7b21feea28e92
parent 0ae8cd72932d0037d24f2d1b1dcc11efea700888>75620089G75620089 +0800

!4844 merge add_keycode into master

input add keycode

Created-by: shangguodong
Commit-by: shangguodong
Merged47375#0g1{ nA V x8x/ Ex9 ： docs/pull/136786
- [ ^W4844(yV}x`tree 7516ef538adb9c6de53a15d048c0747cfea9b551
parent d99188034bb9d2af8ff5e3718f1ecb77bc035be0
parent 35e7399e759b772c2237dc9ea9e75ea982eccb2e>75570078G75570078 +0800

!4883 merge ole into master

修改hmid和新增错误码

Created-by: qq_41146650
Commit-by: 万孝国
Merged-373787$.修改hmid和新增错误码f2
 不涉及?X/ EX9   docs/pull/136913
- [ ^W4883Ȕ,x]
tree a0b7998ed6be9871dd11f51f6d5e003c918ece79
parent 75141b29166728e43e0e49377edb5a8bd9749b6e
parent fd8a513ecc1fb3d47af74a1f8308f34db29e95f1>75567733G75567733 +0800

!4864 merge master into master

Fix：#include <cstddef> 增加条件编译块

Created-by: tanhon
Commit-by: tanhons3771%-C/C++ 编译隔离f2x+4864D
vxw
tree 1317aff9d8594efab7f188f4d95b9547c64c2355
parent ad19426bd70a218181f87a09238e849cd2c246b1
parent c4638edd34c90a9a43d57f8db2073b088e3f2a21>75564239G75564239 +0800

!4871 merge master into master

修复oh_commonevent.h和oh_commonevent_support.h中注释的语法问题和单>词问题

Created-by: cheerful_ricky
Commit-by: CheerfulRicky<%.g14871o݈ x3tree 304f5c5b294d0dc340d902843c40ade2cd86047a
parent cd7ba7e47f39f811f811e7db534b1ad9aec44379
parent 08069a7cca9071b081da022c74cf86be2b30eeff>75285714G75285714 +0800

!4788 merge modular_object_d_0317 into master

modularObject ndk

Created-by: renjh5496
Commit-by: renjianhao
M973659$/g16Y )Y I$Y nY $ VY 1 "ability_ability_runtime/pull/188908?NxJNA0 EY8% ^' docs/pull/13650814788|xtree 7d20a2675985832713478f8c2c4f89f1b75656f3
parent 82ec98840bb72b3f94ddbf662d2bebbf857bbfac
parent 39455bdf337a08c79b724b5a6969760a35bf4049>75207000G75207000 +0800

!4842 merge master into master

lpp和转码接口注释描述有误

Created-by: yandebing
Commit-by: yandebing;73753$.(sdk_c注释存在描述异常，需要曓b50针对dk_c注释的描述异常进行响应的曓;Y ) YI$Y n Y$Y VY 	不涉及SY jY ^W4842nxp
tree 0b4f8d25293862932c35e2c8745991d7d467cb9c
parent 55ff846f4b6b6b546d8780f24734863ca14c6939
parent 8b3ee513403420b73fb33950e9b89b8e33d0f85b>75205799G75205799 +0800

!4719 merge GestureCollectInterceptC into master

GestureCollectInterceptC

Created-by: yuanlin94
Commit-by: yuanlin94s3631%.g1Nxx9$ ^' docs/pull/13711114719nnx`
tree ef36d93e0729d6f1c16cad4bbeef50e083584beb
parent 0da90f35d2b2170deef4494dcf555eb6d770e243
parent 9e7a78e1c9505659bfef327f70535fbff992a0c8>75205160G75205160 +0800

!4863 merge cherry-pick-mr-4840-1775101427512-auto into master

修改拼写错误

Created-by: wangyongli66
Commit-by: wangyongli66<%.g1x] 不涉及24863s^xAtree 798b1d2fa5fa51c10557fe86d2b53889e1192636
parent 9609ae373f9a3d1c55dd22dfc08149b382e6a6dc
parent f13f64650d391f11a73218618711382bf195540c>75200693G75200693 +0800

!4739 merge scrollWithMouseCapi into master

Add enableScrollWithMouse capi

Created-by: catherinecheung
Commit-by: zhanghang;73646$.Add enableScrollWithMouse capif1Add enableScrollWithMouse capi7 ) I$ n $ V 1x9$ ^W4739u$,x7tree d254f6f8f61bc5c524390d56720c861c8f4c9978
parent 3728f34084a4830e28310d8b2b7214feac84f022
parent f72700601626fba23b280efb0d11adb7f8193884>75183060G75183060 +0800

!4848 merge 0401dev into master

format conversion interface

Created-by: qq_44946196
Commit-by: qq_44946196
Me87!3757?ref=&did=3831617#tid-3831617$.Q提供PCM音频格式转换接口，满足在规定格式下任意格式的转换f2x/ Ex9$ ^W48485xZ
tree 1dad8bf51aa5d85ce6d041b7d8d5c8e56b874e9f
parent fae09e350912c6ad8c562f969757c5959ac94f9d
parent b733e1691b23b89d38576b3df0ffdc10e2069eb9>75181908G75181908 +0800

!4855 merge warn into master

fix warn

Created-by: yang_jinhuan
Commit-by: yang_jinhuan;y30053096
Merged-by: o.7376#/告警f1修改告警| nG4855,oDnxY
tree 3d7886fada91ad6d7b3383ab361cc735e42474b6
parent 269306e713c3f226bb3d001c2615595b12fa842d
parent f3d3eac96d086d1d635aab389f9e08f140d081e7>75129802Gn75129802 +0800

!4811 merge master into master

批量修改注释

Created-by: mohaoyuan
Commit-by: mohaoyuans3727%-批量修改注释f1批量修改注释x+4811{Wx.
tree 832f26fd5b69196c446e2e7aedb6beb489b1579a
parent 41c603a70d6d71fca1f7a595a909365bde209d7b
parent 0c1da88b17b9bf81a353f6d7754307ba3ba1cec4>75117675GY75117675 +0800

!4858 merge wxx into master

fix des

Created-by: startwxx
Commit-by: wxx;--js/issues/22702$/g1x+4858ZpxV
tree 9acef579e2ff5781193a27fd76ce2f0afb8053af
parent b37f096f38481e5bca640fc3a40ff79fc0bc5d04
parent 34531fc53b5a1dded8cc1f0d2e9369097e2dbe42>75110377G75110377 +0800

!4825 merge xrx into master

注释错误修改

Created-by: shallowarpa
Commit-by: shallowarpa
Merged-by: open+73741$/api注释易用性修改g1api注释易用性修改6 y)y I$ n y$y Vy  yjy ^W4825Nxtree d56cc588f572b34f5737db0c24c60899b2edefca
parent 3ade6a7012a0604a4a7ab8cff5de88e57cbd1019
parent 9279d3819fe487405a23a2ca043d9269ca9ba138>75096738G75096738 +0800

!4852 merge master into master

fix: Usability modification

Created-by: kong-wei-111
Commit-by: yanghang
Merge573761$.*易用性问题扫描整改，修改注释f1*易用性问题扫描整改，修改注释: 不涉及，只修改注释
- [ ) I$ n $ V x+4852JA>xm
tree 8cac8dd7826c96e301ef2a07345518055d0128d5
parent 78030d6d13b4dc3c2efe8a34b78878a6c9fec146
parent 9a1f3129af3ce7d680b6ebdca84ffb992e147c39>75095518G75095518 +0800

!4828 merge master into master

注释描述修改

Created-by: ren-qian12
Commit-by: ren-qian12
Merged-by: ope,73751$.0易容性专项注释修改，单词拼写问题f1fix：修改拼写| nx+4828Ǚ-`xd
tree d865b8122e14f57ec51b2f5ce6f652ab58cc8d3b
parent b7622d5f1c033ec4b2b7ca83dc22c54f952d41d9
parent dd8a53866a719257607da193457682f37337266c>750455I75045586 +0800

!4787 merge 0323_sdk_c into master

onAreaChange新增周期性回调

Created-by: yuanlin94
Commit-by: yuanlin94<%.!onAreaChange新增周期性回调g1!onAreaChange新增周期性回调xxJx/ Ex9$ ^W4787xetree f6701ee763714f37579f18f7f42edfdae40851bc
parent 28b3c73511d7c73488a44a8578631f15d7b562fe
parent ef5c4390e6e3a100cad95423e5e30747d83a78e8>75040374G75040374 +0800

!4806 merge passthrough_c into master

event passthrough capi

Created-by: yuanlin94
Commit-by: yuanlin94
Merge573723$.event passthrough capif1event passthrough capiNx9$ ^' docs/pull/13647514806rM5xAtree 343d119b3887f21274df4b7333164bfe483b0d34
parent 67bdcf3f5e3915901cc74599e40c683ab6a3c79f
parent f850257a7a32c93ba3a430de3234299e1dc88916>75031723G75031723 +0800

!4747 merge sdk_c_zdl_0317 into master

截图支持查询最大尺寸限制

Created-by: yuanlin94
Commit-by: 	yuanlin94;7366#/$截图支持查询最大尺寸限制f1$截图支持查询最大尺寸限制x docs/pull/133785
- [x9$ ^W4747:fx4tree 26215b2f9c92e44a0da919d1bab78663ba84e93f
parent e0a30e0068b7ff0f86f0901db159ca7d1ce70094
parent ba12413cf97f4fe2822bbe1662edc89edf8ab66c>75011548G75011548 +0800

!4843 merge 0331DTS into master

CAPItransform不支持传入object

Created-by: wangxiuxiu
Commit-by: wangxiuxiu;73756$."CAPItransform不支持传入objectf1"CAPItransform不支持传入object| n $ V xx9! docs/pull/136649
- [ ^W4843ܞ'^xtree 43e096805b64277861137f776689e4d52b2395f7
parent 2887572d0efe9efe9b75156d80105dee852be372
parent 07fae01787bf891255d0e742b9e9904a8fffffcf>75010953G75010953 +0800

!4685 merge fix_dts_comment_0303 into master

明确枚举值JSVM_MEMORY_PRESSURE_LEVEL_LOW_MEMORY

Created-by:' pennyatmosphere
Commit-by: panwangyang<%.g16√ )√ I$ n √$ V √0 F√9$ ^(&-sig/interface_native_header/pull/3163!docs/pull/13235414685mBZxy
tree 407b7773aefda2ac75eebbd9e5a4e2bfd3b890f5
parent 42d44c861c09eb4beb44499e5d22fe42be4fd6a4
parent fe086eab9b8c517816d6c41b4da0cc2bdd9e7372>7496316H74963166 +0800

!4744 merge master into master

Add temporal layer ID to encoder output AVbuffer.

Created-by: q00498801
Commit-by: q00498801<%.g1xux9  [ docs/pull/136635](url)
- [ ^W4744grcxQ
tree a6c72e60d96cbb719ab26d57ab16ddd0e4203909
parent ae585249a1239181d6732766ec6a7820da5c1298
parent 7a49a0af713e09b06310bc1afae62ef4df70452c>74951782Gl74951782 +0800

!4737 merge master into master

add bitrate mode

Created-by: qq_45374297
Commit-by: colinhl<%.g1{ nx合入sdk后再修改文档44737PmDx,	tree 15dc3e53f577dc5a0b31cc08807ea01914c0ceaf
parent cc99b1a1156a124c3eca2fc992ccf77b6e6dc053
parent 7cb891cddacc6e1a450d409e0a08bdd9c2a12624>74948324Gm74948324 +0800

!4800 merge master into master

modify api comments

Created-by: ccfriend
Commit-by: ccfriend<%.g1{ nG48001[ x\
tree d5bc27dc337a578d7eb2f41d4d88d9f99f73c333
parent 68e098939db0d7dadafd0b5d480c4aeb410c1796
parent b3d35f41eda43485496ad9685773355f424bc0ca>7494313Hf74943136 +0800

!4832 merge desc into master

修改注释

Created-by: dreamyhhh
Commit-by: dreamyhhh<%-修改注释描述拼写错误f1修改注释描述拼写错误4832lxE	tree 6bb3d0538d59cb9bf1867cdd39917adfbf804e62
parent f548dd3c244f7e3bd226ac6d9d19cf69e683a8ad
parent 44d509ba2c7e793f0020a261d7cddb0e6e929763>74924087G74924087 +0800

!4821 merge 0328 into master

fix spelling err

Created-by: chenwenchang101
Commit-by: chenwenchang
Merged-by: .H fix spelling err c


### 原因 拼写错误


### 描述 修改拼写
4	不涉及$P 不涉及
- [ ] 不兼容
  - [x5	不涉及4821B6xK
tree f87658105fb598bbb8735fe7f3561dbc72afa756
parent b5c16fe5b913248574784deaadc9ac634c2debd7
parent cc14e82547cb7f2a50952ddcc44ee049feb52f57>74875244G74875244 +0800

!4814 merge native_0327 into master

update direction

Created-by: Lichtschein
Commit-by: Lichtschein
Merged-by0 73730
$/g1x+48146dkxh
tree 1b7eb22e13231109b4ffa88764d4a39afa1de781
parent 1bde19213128bb77e6abbb60d5266e62b3826127
parent 72bfc872088f4acf96c487f17acbf6e82ae11fb4>74870563G74870563 +0800

!4805 merge 0326-ndk into master

【接口易用性整改】修改接口注释拼写错误

Created-by: liuwan lin9358
Commit-by: liuwanlin9358<%-修改接口注释拼写错误f1修改接口注释拼写错误4805M8xtree 9b7f32f3157e0df4c751abd0abadf6d783e0f6a9
parent 650d0843c0e604dea0004594bd07571c1d62a255
parent 04754ce2fdee04eccb665dee3e5f6a4ebf16d4e3>74864080G74864080 +0800

!4778 merge master into master

fix: add ranges for interface description

Created-by: cjw123qq
Commit-by: cjw123qq;73687$.新增接口描述单位f1新增接口描述单位7NA)NAI$NAnNA$NAVNApN] 不兼容
  - [NAhNAEY9! docs/pull/135232
- [ ^W4778Cj-xh
tree e92239549fe0689546ee1ca64f031b95edaef203
parent 8bedd13cb13549d93c083606c92773a674591fa0
parent 236b259f938036b9c2694311750ecebd4ec1e429>74862588G74862588 +0800

!4827 merge fix-0330 into master

update: 修改注释

Created-by: he_xuhui
Commit-by: he_xuhui
Merged-by: ope-%-易用性问题扫描`7修改注释| nx+4827+{y%xD
tree b6b70526b0309620e490d2b977f4266ffecf1053
parent 2871518b92aacc92986ec0b686404e876a4737ff
parent 8b36b498141dd0402182f123c7f9f42a75f567c1>74859485G74859485 +0800

!4820 merge master0313 into master

注释拼写错误纠正

Created-by: baidu_37813129
Commit-by: wanglili12
r3735%.g1x+4820fyxo
tree 3726b44ba46d7a09b42c4d582b699efbc579ceac
parent 34d867ca59c73ed8107396c72642770f6e82208b
parent c1e1ff1b7de9de0ce026967bd2ef3d5719a2e7fb>74853764G74853764 +0800

!4731 merge master into master

add background deserialize

Created-by: diking
Commit-by: 王忠齐
Merged-by: 0%.g1x8x/ Ex9$ ^' docs/pull/13614514731rxxV
tree cd5c079da59e1cb0c8a746872bafd44b54b725a4
parent 915a9628e6786f109612f63256f18a1d1ccf1c60
parent 8d1343e6babfbbca21be6b277ecb7d66d4a9cd97>74853542G74853542 +0800

!4813 merge master into master

接口易用性整改sdk-c

Created-by: lu-daochun
Commit-by: lu-daochun
Merged3 73729
$/g1{ nA x+4813Pn^xItree a07a04af6389b8cfa45f9c67480f984134571ca4
parent c31e2904da2f1a3aff787484f37571cb74c2fbd8
parent 532e391904e7c16736c0ada7f9a33e8d6a0c0aa4>74853179G74853179 +0800

!4689 merge master0305 into master

帧率回调c接口

Created-by: m0_53886083
Commit-by: m0_53886083;卢宇;73600$.帧率回调新增c接口f1帧率回调新增c接口	不涉及sOx/ B docs/pull/135123
- [x9$ ^W4689iݟ$xf	tree 38600bc1e51760f1fe659c98719ce333ca1a7ec4
parent 3b242ff29ceda60771b776da41d70c3c4905f5e3
parent 885dd8d794b9518b236c692c0efd7cd4c48c8d06>7478767H74787676 +0800

!4802 merge master into master

修复拼写错误

Created-by: FileStream
Commit-by: FileStream
Merged-by: ope-%.g16 ) I$ n $ V  j ^W4802®pxY	tree c1cfaf1352f3f3c21da0aab674947e7a82370fc5
parent b3c8043281d063c44496140485996078173671d2
parent 682a63a162810d1bd31804ca021da53a96c37300>74691545G74691545 +0800

!4817 merge master into master

修复拼写错误

Created-by: m0_54007497
Commit-by: m0_54007497
Merged-by: o/%.g1NAxJNA/ ENA9$ ^W4817h'xytree 91da277240d0ca4c74df1ff9c1ebf495e560d193
parent d965a4143b655441b02830c3acbf895d5d4b9937
parent 266af61d4190eb57e6025a23dcfa96fa3375901?74608835Gj74608835 +0800

!4792 merge master into master

add account capi

Created-by: yeyuning
Commit-by: Yeyunings3719%.g1{oSx/ B docs/pull/135094 +-sig/interface_native_header/pull/3271
- [x9$ ^W47926avxz
tree 8d35a90db15e1bdf51022921d27612cef75864d8
parent 15da6d8a11cf24e572e31c01682da23baacafe13
parent 9d137b3f78803bd70faa64bf5b1e5302185399e9>74501959G74501959 +0800

!4784 merge TextCutCopy into master

Text,TextArea,TextInput Capi

Created-by: yao_qiaoming1
Commit-by: yao_qiaoming1s3689%.g1x8x/ Ex9  docs/pull/135451
- [ ^W4784r#xR
tree 396552a7c10c487f7e2ca40641f5fc659097fa0b
parent fa37c3dd99d363f401c74dbb3f7efa2519cd2cc1
parent c99a6cf7b081bb9a7c29381a73cfedb2e6e6f6aa>7443553H74435536 +0800

!4780 merge wxx into master

Add deferred preview output for NDK

Created-by: startwxx
Commit-by: wxx
Merged-by1 'multimedia_camera_framework/issues/3969$/g1{oSx/ B+-sig/interface_native_header/pull/3243
- [x9$ ^W4780GXc`xi
tree 5381411d9a958127594e44e56a61e196b11b9119
parent 90576b8ac4bc91448b44cddfef0c3b6cc289a800
parent 81b4d53cb66b9b965be3b9b811d13cb8f05c7325>74425317G74425317 +0800

!4724 merge master_point into master

CAPI: add getCurrentLocalLocation

Created-by: yuanlin94
Commit-by: yuanlin94; arkui_ace_engine/issues/74429$/g1NsOx/ Ex9$ ^' docs/pull/134865147243{xr
tree 19b1322179420bf40e643fd88be8786830ea446f
parent ed65d1ebc6ee17305733b70c7581967faefd56b0
parent ae2145c78708ef852f79f3ec473438780375fe0?74406613G74406613 +0800

!4713 merge TextCapi into master

TextCapi开发

Created-by: yao_qiaoming1
Commit-by: yao_qiaoming1
Merged-by:h3627%.g1x8x/ Ex9  docs/pull/134410
- [ ^W4713px8tree c11f0ac70f600b78aa1a97224c1f8bd95a68410c
parent 651eb0d7c1f4a85305bf91dd0e79d57b9b0bbab0
parent 5bbc85318483d744aef4b896d41913c6f9392c44>74345128G74345128 +0800

!4736 merge master into master

add napi callsite interface

Created-by: starunvs
Commit-by: starunvs
Merged-by173686$.'添加napi callsite caching相关接口f1新增接口声明W I$NAn $NAVNA Ex9$ ^( docs/pull/13498414736g_x\
tree c4e5c27f6d1e42c8aa655d24704f8db4d91291b5
parent 4e1cd242e0eb047998bb90b162bd7337e836633c
parent b9386bae1e0da121252908bab4f015639f1ed9bf>74334962G74334962 +0800

!4791 merge ole into master

contentembed kit update sdk

Created-by: qq_41146650
Commit-by: 万孝国
Merged-b273706$.根据实际诉求修改SDKf1	修改SDK%F	X/ Ex]; docs/pull/134185
- [ ^W4791hdxU
tree 8b6d20a443128f8b00e51d92b5cde82c8d87b96a
parent 8ae53568f0bbb26204332069adfbd9e43b9f6f38
parent 4be0ee22bceab7510e368e9b070a04f9d66208ee>74275838G74275838 +0800

!4760 merge master into master

[issue]support global interceptor

Created-by: pjie131_
Commit-by: pjie131_
Mer7	### Issue83666$/g16 Y) YI$ Yn Y$ YV YY9Y/ FY9! docs/pull/132903
- [ ^W47606C}nLxS
tree d8a78d75f4a206ff4e68a983dba3d112b6c5acf5
parent a598ec139687feb8f605d30828bed0fddb5dd17e
parent d441db8767b32384a93eebabe20f43342e666dca>74260644G74260644 +0800

!4740 merge master into master

getlinkedinfo c

Created-by: tianyuhang99
Commit-by: tianyuhang99
Merged-by: op.getlinkedinfo c$.新增 getlinkedinfo c接口g0新增 getlinkedinfo c接口 x9! docs/pull/134270
- [ ^W4740x
tree 6f48bb19c45a2dbc46fd868fc77112289871bab4
parent 723f3d64008d17ca2472ee602237e9b48e084368
parent 4b79383dc1389a064fb8ae5f5d213fa6eaebee03>74243051Gd74243051 +0800

!4769 merge master into master

callback log

Created-by: aefaefw
Commit-by: aefaefw<%.g16Y ) YI$ Yn Y$ YV YqNxJY0 EY8!， docs/pull/135272
- [ ^W4769Goxb
tree bbc58635a7cab64c1926b8fc9a5974df0d7f65ac
parent 950b71a85697483cb709919fbee5c733b5eef200
parent 7500a14b730d7e9b9419ed205711249b725649a6>74237482G74237482 +0800

!4767 merge 0319 into master

Fix OH_Drawing_ReleaseArrayBuffer description

Created-by: zhang-yubao
Commit-by: FTL1ght;73679$/g1x/ Ex9$ ^W4767"j
xFtree 66cedb5fe72affcb468a6e3eb615649a3925e9fa
parent cb40921fa937ddffc094ef9c7011dc5d244677b6
parent b122df6fbd85bc078a23e85b374af1059a9e33f7>73996262G73996262 +0800

!4768 merge master into master

feat: hidebug CAPI add error code for resource profiler failure.

Created-by: Taowerful
Commit-by: Taowerful<%.g1x8x/ Ex9$ ^'&-sig/interface_native_header/pull/3193!docs/pull/133433
14768LsSxX
tree 27f0db09eb04c2028cd2789b88c945eae1fda22e
parent b14953878f1d0d7c3fa859388bfae4630719a818
parent e2ee042ab9e36c11723502e24bde6a7a99318fde>73926453Gm73926453 +0800

!4762 merge master into master

新需求接口

Created-by: zhaoyuanbo
Commit-by: zhaoyuanbo<%.g16Y)YI$YnY$YVYpN] 不兼容
  - [Y8Y/ EY9 +-sig/interface_native_header/pull/3232
- [ ^W4762+zz
xr
tree 718c4ec5f5eca40d2f42b06cd77ae6d137af8154
parent d9bcae5abe75f25693a332eb9482dd25d1599713
parent c6fd2ebd8ffa16978b7c22768486a0c1d2f5f01e>73905953G73905953 +0800

!4743 merge qxu316sdt into master

update: 更新文件 camera.ndk.json

Created-by: m0_59343938
Commit-by: m0_59343938<%.g1x] 不兼容
  - [x8x/ Ex9 ： docs/pull/133884
- [ ^W4743n~'xBtree 9b3e15c5b40686c49cf06b3e086e98ad8a2adf2f
parent 3142ad274ac6a6ccfeb1da3eecd270a58eea1db3
parent e0a6c9615a0565db29a7e2f0b0422e2a3449ce0c>73822422G73822422 +0800

!4752 merge master into master

add adk for OH_Input_BindInputDeviceToDisplay

Created-by: kevin812085902
Commit-by: JustinHu;7!3658?ref=&did=3807371#tid-3807371$.新增接口，增加ndkf1新增接口，增加ndkx8x/ Ex9$ ^W4752itxC	tree 105a453b2413c67191f17a9184000ea1dd2a2857
parent 0f2a844946a5f4ef5e1045f334d2c676c2fac752
parent f7bd5ceb3f24fded05c963aaf9b853d0d667ae61>7381890H73818906 +0800

!4748 merge master into master

json文件补充

Created-by: gcw_wcg80Gaw
Commit-by: zhangyong
Merged-by: open,%.g1x/ 4748׫gjGxn
tree c07248b04d57b8002f32e4790f9866bd03bb62cf
parent ca1b88e304d5a0413f36d0ceda8066e6bdbea2a9
parent b9f569f28afbf63bcdbdd4643f772f0e357466bf>73814535G73814535 +0800

!4759 merge master into master

modify output so name

Created-by: wei-guoning
Commit-by: wei-guoning
Merged-by2%.g1{oSx/ Ex9   docs/pull/134185
- [ ^W4759NoExn
tree 80c4cd1c91181afe821baf3645aea47df90b20e6
parent 82be64668654537716af15f9e6edb94ccc760489
parent 2ed8de74fa9fcfbab15d49b47d5e5b2763054de3>73752045G73752045 +0800

!4755 merge master into master

API代码codecheck整改

Created-by: wei-guoning
Commit-by: wei-guoning
Merged5%.g1{oSx/ Ex9   docs/pull/134185
- [ ^W4755seCxetree 4f721cc63a8e9f9a95998c9350526de8c6f7b55a
parent b5422570e7fc07d045ac6e2cb9626b02e16e4804
parent 54029d3b3a66f0cea14bb9c5335664f98e70318c>73748149Gl73748149 +0800

!4749 merge master into master

补充释放接口

Created-by: gmiao522
Commit-by: GMiao522;[#3655](73655) $.添加释放接口f2x8x/ Ex9! +-sig/interface_native_header/pull/3145
- [ ^W4749mxn
tree 248e2da90549c18e9f21907f2c5890615bfc8072
parent 30662e4cf115fb46b987f3db19a986ebd605867f
parent 07b126c0809b1aff6de5702ec947d570b465e175>73731457G73731457 +0800

!4738 merge master into master

add content embed kit

Created-by: wei-guoning
Commit-by: wei-guoning
Merged-by2%.g1{oSx/ Ex9   docs/pull/134185
- [ ^W4738>mEkx9
tree 7ec9432e7f52a71c6bb37ad2d7f6dbfdc4385753
parent bea9f0316b34ba958eb445603492fa1d8755b32a
parent 4b91bc1ce04a51f7520e4cd80b5b4c751fa8e1ba>73668512G73668512 +0800

!4648 merge addFastBoxUnboxAPI into master

Add fast Box/Unbox APIs

Created-by: zengmanyi
Commit-by: zengmanyi; $arkcompiler_runtime_core/issues/9853$.Add fast Box/Unbox APIsf1Add fast Box/Unbox APIs7 ) I$ n $ V x/ j ^W4648Ax{
tree dabe6427046eef465a27f892982c72fe2b83e12f
parent 4a618cd9db1eb22b08d516f53d3c1e2da9d47192
parent de8f66ab2d132afae086ef7e7f9ca641e332278e>73472554Gj73472554 +0800

!4734 merge master into master

链接修改

Created-by: huqinglong
Commit-by: huqinglong<%.g16 )D n $ V 1x9!+-sig/interface_native_header/pull/3208
- [ ^W4734vGLxKtree 4469e66c1081654181cb2040553826bad3e935e5
parent c706b0c5c5e3f34e0d58400194dcea32f00343c7
parent 39d5c828ab793607467c515118e504f502bb9f93>73397141G73397141 +0800

!4695 merge master into master

add hidebug trace api

Created-by: wu-junfang1
Commit-by: wu-junfang1
Merged-by173633$.hidebug新增trace接口f1hidebug新增trace接口NAxx9!+-sig/interface_native_header/pull/3204
- [ ^W4695xg
tree 9f0177782f519472c5d69a01407c8db1f1c46421
parent 5b9244d79966b3f22da891d28166648a74139f78
parent 582f9692171742af776e79cab6b6cca84dff3491>73395992G73395992 +0800

!4730 merge json into master

[richEditor]补充接口ndk声明

Created-by: zzc19990127
Commit-by: zzc19990127; arkui_ace_engine/issues/74282$.补充接口ndk声明f1补充接口ndk声明NxJx/ 4730˳8xc
tree 5e84dbe2e2d3bd5777cb2cb73c56209e82562a68
parent 030f9c1d43b4f8280509fc876d1905ed02ce4135
parent 9b87a58a1b1c88b3db1c1a6796da5b69505fabac>73224107G73224107 +0800

!4690 merge 0306-m into master

接口格式修正

Created-by: qq_43273048
Commit-by: ZouQianshun
Merged-by: o.73602$.接口格式问题f1接口格式修正7 ) I$ n $ V  Ex9$ ^W4690edx}
tree 7c736b9724fc30a65e045c2c91596ddfc1a96d1c
parent ee20fb39078302079903a6821f12b87ab1f519d1
parent 64f80071edda8d8457d036686c21be74fe0e6acf>73109259G73109259 +0800

!4688 merge desc into master

modify canvas api desc

Created-by: dreamyhhh
Commit-by: dreamyhhh
Merged-by: ope-%--增加错误码描述，资料不一致问题f1增加错误码描述| nG4688[vxT
tree bba233d8783f2e9e853179d70f4c62bda516c959
parent 29948936078d63fac9fbcf0e56c957ed0189d837
parent b7b88a1a2a62dc0bb268a222016ef92d8f90edd4>73050192G73050192 +0800

!4585 merge master into master

[issue]support global interceptor

Created-by: pjie131_
Commit-by: pjie131_
Mer7	### Issue83551$/g16Y ) YI$ Yn Y$ YV ]YY9Y/ Fy9! docs/pull/132903
- [ ^W4585}l1xr
tree 779e88daf171f86d4ce7af93fab8f1697538c404
parent fc37f675505390493a40256bfe318a8ea741b4fe
parent 80634a0a2dc7e19caffa69cf453c7ef9cc1c4f2b>72721364G72721364 +0800

!4687 merge master into master

add exposure mode enum

Created-by: chinese-deer
Commit-by: chinese-deer
Merged5%.g16Y)YI$YnY$YVYpNxzYEY9   docs/pull/132366
- [ ^W4687WvzNx~
tree 4076db2efa9ab6cf3ac530dac0c9e3890cc7c313
parent 590de56f7467271168fbbb916b3f1363484bb189
parent 35065c9eb5c0b942b82388102e920d3b67f417c5>72706411Gc72706411 +0800

!4640 merge master into master

add c sdk

Created-by: mlyuestc
Commit-by: mlyuestc;73571$.新增Capi接口f1新增Capi接口x8x/ Ex9$ ^' docs/pull/132536146407{\xn
tree 3f31e154176621fd646bbc76b86737b63899f89a
parent 1d31c28273dd38b39a4fdc81561295b5064c0616
parent 6fe71e10b7d13f593a488ecf9860ea34b93d0755>72611285G72611285 +0800

!4656 merge master into master

扩展fontdescriptor支持可变属性接口仓

Created-by: wanxiajing
Commit-by: wanxiajing;--js/issues/21989$/g1x&-sig/interface_native_header/pull/3157146566}xp
tree 6842a505f6d6b9061ddc2c2a6bf7edb15ed33b7c
parent 1580468e623f580ad69d3d067dfe3a3856b43961
parent ae48323bb8c1a781f0be413dcd404cb6ccf66c55>72536588Gn72536588 +0800

!4229 merge master into master

add midi api

Created-by: owen_creeper
Commit-by: owen_creeper;[#3552](73552) $/g1build仓ndk依赖目标nNApRx/ E.9   docs/pull/130173
- [ ^W4229~vxP	tree c9eada3b41d272d9d4470664ce0ed3f80e4cca26
parent feaf1bf75b9d8db5815c8cd8ceac2c39faaa6ac5
parent ee3fadb937eaaee2d94ceb59d85a13c7e05b13b1>72443152G72443152 +0800

!4660 merge master into master

add location key

Created-by: zzm_gitcode
Commit-by: zzm_gitcode
Merged-by: ope-%-'MP4封装支持写入地理位置信息f1add location keyN 无兼容性影响$x/ B docs/pull/132088146606[xtree b2e02745426fc4d642885b42faabbd3d9012e9cb
parent 22a9faee76ed0977a8e85d7b1740600f1eadf5de
parent a09428d7f2ee39304096e79048f2694cf813ee86>72425834G72425834 +0800

!4672 merge capi into master

[richEditor]属性字符串CAPI能力

Created-by: zzc19990127
Commit-by: zhangzecong; arkui_ace_engine/issues/73430$.属性字符串支持CAPIf1属性字符串支持CAPI7Y)YI$YnY$YVYpNxJY/ EY9! docs/pull/131851
- [ ^W46720i^WxX
tree fafb394fa07531204ef3f5b74369edbe31f0e93f
parent 8555012346ffa3be1b60918eaaae81d34f0a7e3e
parent 751823b610583d2438f49ef40027d397f9fec613>72424532G72424532 +0800

!4629 merge dev3 into master

AnimatedDrawableDescriptor支持设置动画停止模式

Created-by: silverbulle!t1412
Commit-by: silverbullet1412;#3566$/g1不涉及兼容性sOx/ B docs/pull/131967
- [x9$ ^W4629㌒xtree 06df94ddd8bced47b7f316582af12374e1243c1f
parent e5d93efa24336254e63359ddb6ab7c8ed98fdd74
parent 3b85669b03167ece6c027b721b19daa1fe08286e>72244552G72244552 +0800

!4670 merge master into master

Jsdoc显示声明参数单位

Created-by: baijidong
Commit-by: baijidong
Merge6Jsdoc显示声明参数单位%.Jsdoc显示声明参数单位g0 对Jsdoc显示声明参数单位|N）
不涉及兼容性sL只修改注释不涉及w docs/pull/131795
- [x9$ ^W4670smnxZtree 3af10c4d6d9cebe521df0dd76c59b098247f8202
parent a945735ad2c4e7258674be77a29737419b3c3f8a
parent 03b3feb4a89a80d374b036af6c668aaf8be0efeb>72187801G72187801 +0800

!4619 merge cachedcount into master

Swiper: cachedcount

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQi
Merged-by: ope,73577$.需求新增接口的参数sizef1需求新增接口的参数sizeD docs/pull/130586
- [x9$ ^W4619~Ex
tree 928eddce531a0a5a26358593bf763a8a60cbcd19
parent b69855da58db688b88bf09e21101d1d621b5a355
parent ab74fd0e0aa82986440f087385a7597c1107f44b>72179011G72179011 +0800

!4557 merge master into master

add module brief

Created-by: weixin_43102524
Commit-by: weixin_43102524
Merged5%.g1N] 不兼容
  - [YhYE9$ Y^'修改与docs文档一致。详见docs文档
https://developer.huawei.com/consumer/cn/doc/harmonyos-references/speech-windowmanager14557TE?xM
tree 8594aeee94d50bfeff6471dea0ff98c312469511
parent 6e033efde6556706a4e768aa25566792e9f3223e
parent 6133732907d1fe322bdf30dab89ca88787767a5b>72160832Gi72160832 +0800

!4586 merge crowncapi into master

crown capi

Created-by: yuanlin94
Commit-by: yuanlin94<%.g1Nxx9$ ^' docs/pull/12741814586rDbxtree 221dc64394d05bd885cb9a9756de7d1b3b982458
parent 7c3048d0dad6f8350a6362023b61859f3b7812e2
parent 35a98445eb5beee16173d3321fdf1c02a8ff3bea>72100268G72100268 +0800

!4639 merge 0224 into master

fix: 修正文档注释中的函数名

Created-by: zhang-yubao
Commit-by: FTL1ght;73570$.修正 OH_Drawing_TypographyLayoutWithConstraints 到 OH_Drawing_TypographyLayoutWithConstraintsWithBuffer

### 描述（做了{6Y)YI$NnY$YVYpxJY/ jY^W4639wP(xr
tree 0982e4ca47ae79367788595350154b1707ddc128
parent 51246b438207a433c1f4da5c8822a92c011c687d
parent 4423ccf52bc5798918e7dabda83dd84740cafd67>72008337G_72008337 +0800

!4646 merge 0225 into master

add version

Created-by: dingpy
Commit-by: dingpy<%-资料版本不一致f1add version7是)是I$否n是$是V是pN] 不兼容
  - [YhYjY^W4646 UEx~
tree 70ed9dabcf12d35cd7b9f2e1349f25564c39ad20
parent 827e923c28e9c0674c7ad9acc23d37b5d173490b
parent 3483833c864f5827d4b5bdd83fef896fee9c8774>71990877G71990877 +0800

!4636 merge master into master

双屏录制接口资料提交

Created-by: 2301_76695984
Commit-by: zeng
Merge573569$/g1x+-sig/interface_native_header/pull/3106
- [x9$ ^W4636"*Vx\
tree 3879338d2424b4681622329e2df7823cd912fa2e
parent fd1d5c53c03496af74de1cf92421b1413fc3a7e8
parent bed0aaa358298b250a5430f67e597733b536eb25>71924272G71924272 +0800

!4617 merge master into master

增强InputTouchEvent基础能力，新增接口支持pressure、tooltype等

C%reated-by: flysky1
Commit-by: flysky1<%.g1 x8x/ Ex9   docs/pull/131212/
- [ ^& 14617T	xtree 4861eca0c1b31211034c3cd3328cf35c64c1d1f9
parent da7835ded919ba18bc39e13dfe7475dd6fb67e83
parent 984ac1a99c526ce4e4df90c6eba478cb1de7fe49>70978393G70978393 +0800

!4517 merge 0114 into master

Add OH_Drawing_TypographyLayoutWithConstraints interface

Created-by: zhang-yubao
Commit-by: FTL1ght;7347#/提供限制区域排版能力f1'提供限制区域排版能力 C 接口7Y)YI$YnY$YVYY/ B&-sig/interface_native_header/pull/312714517^x>
tree ceeb361a712cdbb5a7fd82236375a9de7a9ca9db
parent 36e45aa312930cf91475e2e4f714fec39fa7697a
parent 3d5fd2bccdf7c40c885156b7dd8c6bc7520e8b30>7096529Hh70965296 +0800

!4624 merge master into master

修改告警信息

Created-by: zzz701
Commit-by: zzz701<%.g1{ n x8x/ 
![image.png](https://raw.gitcode.com/user-images/assets/4379443/64e1c1da-d791-4281-95bf-b9718f3c19fb/image.png 'image.png')

S.4624:cx~
tree 654e69a49e2820ae1ecdc2117beb23e3ef643d0e
parent 8a54fbb9befd6b6c7de53ba2a96ca1b91096277f
parent 7c1f6062001dd791c5bac208a5611ddb1df58481>70904032G70904032 +0800

!4551 merge d0126 into master

[L] add AccessibilityElementInfoSetComponentIdentifier

Created-by: leelee110
Commit-by: lisitao<%.g1{oSx/ Ex9$ ^' docs/pull/13032214551]Vuqxn
tree 652f22d7be75b7bf59e69dc0d29774536f0f11ee
parent c07a07df0eb5a5cab7a7eb5933f6dd62efbdbe88
parent bf4cac2d3b7d9f3293f73719cd836e3bdb39460b>70886220G70886220 +0800

!4596 merge master into master

新增capi回调

Created-by: gcw_wcg80Gaw
Commit-by: zhangyong
Merged-by: open,%.g1x8x/ Ex9! docs/pull/130659
- [ ^W4596O@t"ox(tree 6db61cf1b370d2c9645dadf9fe2c7241b6bce1dd
parent 648160281a0669804ccf579df24c0803e066a863
parent 475935ef16cb37b034a5be0fe6f40109df99fb8e>70879344G70879344 +0800

!4400 merge emoji_byte into master

add the c interface of emoji byte

Created-by: mobhot
Commit-by: mobHot
Mer773383$.新增需求获取emoji范围f1新增需求获取emoji范围7√ )√ I$√ n√ $√ "build仓ndk依赖目标里
- [√ m	不涉及sO√/ B--sig/interface_native_header/pull/3005
- [√8% ^W4400}	'x tree 0dc044448dfa5eeeb8168bc4d47e34588d3f8c9e
parent e82a9d80a680dfb95660abf73632ef087abd7aa2
parent 23e1b59e5b2feb2790d273b3a462546ac8412101>707951I70795186 +0800

!4620 merge zyp into master

添加qos.h中宏定义版本号

Created-by: zyp217
Commit-by: zyp217
Merged-by: /73560$.$宏定义版本号与资料不一致f1添加宏定义的版本号7是)是I$否n是$是V是pN] 不兼容
  - [不涉及h✓j✓^W4620!Z%x~tree f0c8c6cb21a8dfbe9e2e4741798e34ec152931f0
parent c58d30b9ccd4f30e4ccbe3ca2de99734fdd688a7
parent 7e886d410eb85d9e64334c44c52c541d448ad37f>7072536H70725366 +0800

!4608 merge CAPI-TextEditor-final into master

【RichEditor】新增CAPI

Created-by: carnivore233
Commit-by: carnivore233;#3547$/g18<N$x,= docs/pull/130183
- [x9$ ^W4608x'x{
tree cfbd440c1eb60c13238788f3e3f95d70e39de9f3
parent c5a76100d6f3ae387bf8be9dd1ea92adfa815542
parent 31b919e6cab0ca1a9969e58c896dbf3e933002@70627067G70627067 +0800

!4593 merge CHorizontalScrolling into master

C API TextArea支持横向滚动

Created-by: luckclover1
Commit-by: wangtao;73541$/g1{ nA  docs/pull/130229
- [x9$ ^W4593Iy]2x~
tree 68aef4c22986aa0c0acee654cd80c4d1d8afd409
parent 29202ffd4ad8428b5e07e140e3606915c8db9753
parent c2e56a6baa8b8e12f0a5fba8d91d0be66c27638f>70622705G70622705 +0800

!4598 merge fakedrag into master

Swiper:提拉api变更

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQi
Merged-by: ope,73545$.Swiper:提拉api变更f2Fx9   docs/pull/130207
- [ ^W4598!{@xm
tree 3d0a3ff1f46d53c3733f5ed1a1a7f22ee791ba1b
parent 5f34a9e487f6d710d45712e55c2213d91053d362
parent 72c30df5e21ca78c7300501a9222c71691fe86eb>70452373G70452373 +0800

!4560 merge master1229_001 into master

添加since标签

Created-by: baidu_37813129
Commit-by: wanglili12
Mer773516$/g1xx9   docs/pull/128920
- [ ^W4560.n =xtree fa38cd6eb234090afbc3b25a387896cfa19393bc
parent ffa37d3262272c819920104c630796cd24049f95
parent bf5520e2e70668308a9e36b111136e866fcd5291>70193659G70193659 +0800

!4568 merge master into master

update: 更新文件 net_connection_type.h

Created-by: wmyao_mm
Commit-by: wmyao_mm<%-CAPI不一致问题`7宏定义增加起始版本| n $ V l4		
- [ NA] 不兼容 
  - [ ] 是否经过评审
  
x9  ，PR链接（必填）： docs/pull/129165
- [ ^(14568POxR
tree cfb631e9e18024cba68f764091c7b95525d9f48c
parent 9dbced986640c986a2e3c67ae5dd3d690f5f012e
parent 68d5a15f3e198bde01129f6a467d0b455c2de17f>70041310G70041310 +0800

!4575 merge master into master

avmetakeys.h中修改@addtogroup

Created-by: cgxcgxcgx
Commit-by: Viva La Vida<%.g1	不涉及sOx/ 4575!o 1xq
tree 78f1ffbc48f4f89bebf2e5e671a212fe4d8bd65c
parent 49fdc291bbe818f55b3425e4c5064e1adbab8647
parent ef5c2507ae322f0135a8c6759a48d1f1432881c7>69767838Gc69767838 +0800

!4566 merge master into master

fix diff

Created-by: tsj_20201
Commit-by: tsj_2020;73519$.注释不一致f1删除多余注释| n $ V x8x/ 4566]y2xn
tree fdcf2e97253e3bced180a2d69b3f8a2dab33bff0
parent 9dba39f9bab07223b571bdb560d0a87d3e984aab
parent 663007ba19a17ea9d2f25739d86d1bc3a5b9b536>69743640G69743640 +0800

!4558 merge master012802 into master

解决一致性问题

Created-by: weixin_43271254
Commit-by: weixin_43271254s3514%.解决一致性问题g1解决一致性问题4558h20x	tree a1d6064dbc2794d839c008865a8cdf0cb8300e9e
parent aecadea362d0aac5e26286b8ff53698e3997b3c3
parent 2aff650daaf5041a45fe20495780575dba7c5829>69677252G069677252 +0800

!4544 merge master into master

Omohaoyuan
Commit-by: mohaoyuan<%.g1xx9$ ^W4544cU#^xB
tree f85a3366c6006619233953c664f7364ed0d0b970
parent 825366ef365619bd4124df350c039f159598677f
parent d79d15d288f8f111b044dd3083e15f4ba38a7127>69671934Gm69671934 +0800

!4552 merge fakedrag into master

Swiper: fakedrag ndk

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQ<73510$/g1 1x9$ ^W4552~[0xDtree 150a5443f24107ef62835ca571c583a86228fc05
parent ebb083d12e8fb44619a63040e390420a0e42555b
parent 91feb870d3726bda49b6da6b7e06675083d9bbc1>69658511G69658511 +0800

!4556 merge master into master

同步设计仓、代码仓内容

Created-by: lcy_lovebug
Commit-by: lcy_lovebug;73513$.同步设计仓、代码仓f1代码仓增加、修改注释| nA +- [ ] 是否经过评审
不涉及兼容性4556H0{xD
tree d308fb206e67ec0d248921b82ef400d1154235b0
parent adfe3ba3884da8d67f5af6ea5d2441950dec7768
parent 8250746e6c046f8760efa2615c2d1f7c0f9b4c4?6958197H69581976 +0800

!4553 merge fixFileName into master

修改@file和文件名不一致问题

Created-by: Lem0nC
Commit-by: Lem0nC; graphic_graphic_2d/issues/21955%.g0&修改@file和文件名不一致问题7Y)YI$YnY$Y VYpNxzYjY ^W4553*Fxz
tree 2d17171963c70f1e32031bab7f36e241d877bfd6
parent 5ec22f874c55ab93a20fee26106ab1b8a680fe2d
parent 703466947a355e01b54cffd221060a9ca6fcda85>69528294G69528294 +0800

!4538 merge lh_update_0121 into master

符号及格式修改

Created-by: liuhui93
Commit-by: liuhui
Merged-by2%-符号及格式修c4符号及格式修 n $ V foF4538}Pxn
tree 2d46280a7586d7d9dc1338d15b5ec0319f0a8e1f
parent 783e5f713292b1b096fe0426dbd80c56fa52c014
parent ed2cb7799ea0b676d24788844a44aabb1e5d667a>69415720Ga69415720 +0800

!4540 merge b1 into master

资料修改

Created-by: ZWL1111
Commit-by: zhaowenl<#3496$/sdk返回值修改g0修正接口返回值Gx9$ ^' docs/pull/12356614540#}ENxrtree fda848a5b632aebdfc81ed3873ed8aaaed827922
parent fdea470eb310693de8bdc99cd377c9e304db50d6
parent fbe1d32af48194bc6ecdc5d0e1470c763f7bf2d?69415538Gl69415538 +0800

!4529 merge fakedrag into master

Swiper:add fakedrag

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQ<73488$.新增接口f1swiper组件模拟拖动能力 V 1x9     docs/pull/128402
- [ ^W4529kxA
tree ab979723f419bbe8322aa87d2a1ecd1bffb64485
parent 018a3f0b63b8abc83391caa8829a9672da6722b5
parent cbd00b0ede0089b321743ddb5f956ed74ce792a0>69415321G69415321 +0800

!4438 merge ellipsisMulti into master

需求：sdk c支持多行省略号

Created-by: Lem0nC
Commit-by: Lem0nC;--js/issues/19545$/g16Y)YI$YnY$YVYpNxJY/ EY9!+-sig/interface_native_header/pull/3060
- [ ^W4438*9xv
tree 7f24db38ba100d2a6954c1685cd4e26b8efb1d09
parent b9f9d20c5b6326bb5083093a92bd8a6ae1c0193a
parent 12fb80011ebffda33555493d15d062c6bcc8519c>6934502H69345026 +0800

!4548 merge 124_interface_c into master

解决一致性问题

Created-by: luxin71
Commit-by: luxin71
Merged-b2[#3506](73506) $.解决一致性问题g0解决一致性问题{ nA V 4548t$Rxm
tree 3e1b889e78d00c628bdc43bde70f9fb35380a1da
parent e1fc9a89e9518272ded755d0c53b5566e76164c2
parent 254a043e2c951454bc411458a8c1dc78235d236b>69151401G69151401 +0800

!4543 merge fix-0123-diff into master

fix 0123 diff

Created-by: wanghao1717
Commit-by: wanghao1717
Merged-by:073500$.fix 0123 difff2fix 0123 diff6Y)YI$YnY$YVYpNxzYjY^W4543sUtxo
tree 4bb47c4365dc8c6b54ecc9483bbcc4aef8ca3ad5
parent f23ab5caee490e3fd6d81196ed0fd56431ce95c6
parent daaec116ab8bf91d6b5f720c2777e8d8c83d49e3>69144620G^69144620 +0800

!4535 merge yb into master

修改格式

Created-by: Lem0nC
Commit-by: Lem0nC;73492$.修改格式f26Y)Y I$YnY$YVYpNxJY/ EY9$ ^W4535y\tsxBtree e4b813175b69a8926201516ec0acdf2fcf9df3f9
parent bb7c63160df1d43b485ee6360e4a5d48b9c681ed
parent 4165278db6e77bd6d544ad6e0ec6af5dac00a7f2>6909352H69093526 +0800

!4528 merge master into master

sync description info of  interface header file about Image

Created-by: wen_oop
Commit-by: wen_oop;[#3486](73486) $.*c接口Image仓相关头文件蓝黄同步f1*c接口Image仓相关头文件蓝黄同步x+4528Jy@xm
tree a564b51325cd77b063b603f741366e26591f7ace
parent 5992c60127066a89773b370343b5ba678b94620c
parent 81fccaeb8cc08300fce23450aa3f931b6d039998>69087348G69087348 +0800

!4539 merge mod0121 into master

接口注释修复

Created-by: chendongqi
Commit-by: chendongqi
Merged-by: op-73495$/g13修改注释，不涉及
- [N)NI$NnN$NVNpNxzNjN^W4539}j*bxz
tree 9600702c6beec9fb7a27ec5fcdf178fb1ec38716
parent e5d8a5eb824829fc3458cc6476549b80461483aa
parent 11bf927a23ce72822a8bd66ef2b1b634ed3890fb>69070848G69070848 +0800

!4478 merge kmp_sdk into master

feat: 适配custom节点树 sdk

Created-by: chijunwen
Commit-by: chijunwen
Me7	 [#3443](73443) 
$/g1x8x/ Ex9$ ^' docs/pull/12730514478y_wxd
tree 63638909990eda9003e8e11047ddbe98e97f7b0c
parent c3699a6f31b2c436c9d9bed43a001f2269228465
parent 89d46c90ea9f0b85059eb935aa4c2115b6b3e2b5>68984497G68984497 +0800

!4537 merge position into master

change position of ListItemSwipeAction

Created-by: zcdqs
Commit-by: zcdqs
Me873493$.&change position of ListItemSwipeActionf1&change position of ListItemSwipeActionNx ^W4537)E"x=tree 64d2ed6d74c0e0bcee317daa286427518e12cf74
parent 546c931757a34d54da494625723d221bfdcb7b0b
parent 8adb01e34ce90be5a1b127596849e9a60b95d217>68916798Gh68916798 +0800

!4526 merge pr_4336 into master

fix comment

Created-by: liao_qian
Commit-by: liao_qian;7348#/.注释描述错误，修改部分C接口注释f1.注释描述错误，修改部分C接口注释7Y)YI$YnY $Y VY pNw{Y jY  ^W4526,txq
tree aee4e7a6c440262bdafa6ed67d273c76f730274b
parent 466664a9a7afd1a0cc7fe28dcd8e2e8db4c40dbc
parent e2ce465a2a5a90fb53f555262bc249d08e5cfe4c>68895190G68895190 +0800

!4533 merge 260119-sync into master

sdk code sync

Created-by: kaluojushi1
Commit-by: mazijian
Merged-by: openc3490$/sdk code syncf2sdk code sync| nA V pNx=4533!pSux|
tree dea3c3958e698cea03994be8d8553058cc100ecb
parent 2538d5c15a6edc579808443bd230baa78520a943
parent 6ede4eacaf9c2f4564bf5a1ae6c73fdea6de4103>6880042H68800426 +0800

!4532 merge master into master

API蓝黄一致修改

Created-by: lcy_lovebug
Commit-by: lcy_lovebug
Merged-by173489$.蓝黄一致性问题f1删除空格| n $ 	不涉及sB4532x/
tree 98e89539a226405cfbc01dd82f8a8d8f12c91cf1
parent fa901356b06e09f46c138044db686de7bda98d0a
parent c08602057c8396362fc0d8a46e7d978e3d9ebca?68644558G68644558 +0800

!4518/代码差异X!3475?ref=&did=3719757#tid-3719757$/代码注释格式有差异f2修正代码格式4518l%GxVtree c3bdadcbb1d5d6b73fc1d1c44908e71eee6050e0
parent 092dcb24aef5d597e62491b477167f1269ddb61d
parent a174da327f963abd80583ac33a117a7e90eb369f>68639685G68639685 +0800

!4395 merge nativeExtension into master

add context interface

Created-by: majian_lsyg
Commit-by: majian
Merge6%.g0native context 接口7 )YI$YnY$Ybuild仓ndk依赖目标里
- [Y1![image.png](https://raw.gitcode.com/user-images/assets/4379443/0e6017f2-6eb2-465b-a943-881ec048b46b/image.png 'image.png')
###<;N] 不兼容
  - [YhYEY9$ ^' docs/pull/12718714395P-xY
tree 8526d9191165828a0f3d3652486a895699069a8f
parent 316c97baedcd82b7bc23c2966526f1f1f6ed5174
parent e7fea1949e2af01c65b212967cf3cc2de5e5ad24>68591018Gi68591018 +0800

!4477 merge zdl010601 into master

SDK matrix

Created-by: yuanlin94
Commit-by: yuanlin94<%.g1x8x/ Ex9$ ^' docs/pull/12703614477ցdxdtree b0b9825365c2f91e05e29c6876fcda5c56dcdbcb
parent ff39cc8ccdb7159c1b96bfd3c4caff26cc911372
parent a7c8e7de02c1d8a5a9d86f89c7063d43f732fc32>68564973G68564973 +0800

!4495 merge intelliTvClickSound into master

支持智慧屏点击音效

Created-by: yuanlin94
Commit-by: yuanlin94;73461$/g0支持智慧屏点击音效y NsOx/ Ex9$ ^' docs/pull/125925144955Axh
tree c0719ad24bf65385332875694478a8e383bcc926
parent 3b59beddc7eb8706949e378284c5e62d8b416777
parent 57be1613cbe14ef919e9ec083df55eb8116beba7>68564925G68564925 +0800

!4525 merge master into master

has remote data

Created-by: yang-yinghua
Commit-by: yang-yinghua
Merged-by: op.%.g1x/ Ex9! docs/pull/127077
- [ ^W4525	l9xtree 08be6b4f2b3c9bd4dcb15d1f38413a03463fc75c
parent 76dacdda05b501fec40820b2334196415d37ac42
parent e3b0ad4fba013abd8af35ca8f4041268bffb3839>68561167G68561167 +0800

!4522 merge master into master

lpp蓝黄不一致修改

Created-by: yandebing
Commit-by: y30011016
Merged-by:073480$.T该文件存在蓝黄不一致，经评估需要将黄区代码反合入蓝区代码f1$将黄区代码反合入蓝区代码7Y)YI$YnN$YVY  不涉及TYjY^W4522CCxJ
tree 31c8c235067aa896543fef69094c092f15899407
parent 794af71625abf48b46ded9294dbbfcc1b8c052c6
parent dd04930dc5b00e529f25443c664af90a03b78195>68554803G68554803 +0800

!4513 merge dev1 into master

修复capi不支持2段式注释的版本标记问题

Created-by: silverbullet1412
Commit-by: silverbullet1412;#3470$/g16 ) I$ n $ V xx9$ ^' docs/merge_requests/12678514513f7xr
tree 204d6b13a8c952493aa7ff62cf7e00f80b1bb8bc
parent 4d448e7053b0ed7b4cc4e597ce27606c1e6483b1
parent 22f04be5ec9a45acc15cd53721630390ef5745af>68541121G68541121 +0800

!4464 merge master into master

add custom & stack overflow event

Created-by: bizhenhang
Commit-by: bizhenhang;73433$/g1xNsOx/ & +-sig/interface_native_header/pull/3034
- [x9$ ^W4464.@z%xu
tree 556262d229c5d7d3b4af6cda204f57f835d78f96
parent 13de60818725560eeac4859e651dec7e9852e6db
parent c6edf48e91742ab80f9a8480ebf457ff8b4dcf3f>68533613G68533613 +0800

!4521 merge bysync0115 into master

BY sync 0115

Created-by: camlostshi
Commit-by: AlizeCamlost
Merged-by: ope,73479$.BY sync 0115f1BY sync 01157 ) I$ n $ V  j ^W4521J5r]?x[	tree 80bbda7e688fec94d4da81a6ea920d31a29e5485
parent b8fc16e9809c11cf760efc5b0e9920a824977905
parent 9d7545c7d2371029054e5628740143d43b0e1fb6>68531073G68531073 +0800

!4524 merge master into master

修改APIAVAILABLE宏定义

Created-by: zzz701
Commit-by: zzz701
Merged-by: op.%.g1{ nA V x8x/ 45242k*xq
tree ec440b8c8e980aa912c1b609cde097d97804ddf8
parent 2fac17c9bbe2034f4e11f990cf45419433059c5a
parent b5e560bcd724fa523a537254f92d5daf71129f18>68463214Ge68463214 +0800

!4364 merge master into master

资料修改

Created-by: ZWL1111
Commit-by: zhaowenl=%-接口描述有缺失f1补充缺失部分build仓ndk依赖目标  x9$ ^' docs/pull/12356614364nƑHxHtree b1381f231e5acc7cab728a00daf64d254e540492
parent e6328ba55bd0b3cf560e81d6b4025dd92f02fc74
parent e6f5fbee380b5b12d53a2c7e03aed37517f12ec6>68384968G68384968 +0800

!4508 merge Rotate into master

修改CAPI注释不一致问题

Created-by: chendongqi
Commit-by: chendongqi
M973466$/g0修改CAPI注释不一致问题7 ) I$ nA V pxx.https://gitee.com/openharmony/docs/pulls/8607244508xp
tree c34065c874e962707b8ed3fbd2a6fb0af038575e
parent 10f89d2f4552080b70387a6f4731e4fc7d5684b9
parent f9e71a62f3cb5433ad49f878311d60d433fbb6a1>68362537G68362537 +0800

!4514 merge jcj into master

Sync architecture

Created-by: jcj525
Commit-by: jichunjiang-30079441
Merged-by: o.73471$/g16 ) I$ n $ V  j ^W4514ix4tree 1f1623780118c4ed63aa569428cf944eb0747f89
parent cb473c38e483aed89dea296c32bc3545862aed41
parent 0cecba518be07d0b1f719fbe2daba6b61df2b3e?68361744G68361744 +0800

!4492 merge master into master

打开资源错误码调整

Created-by: zwhero
Commit-by: zwhero
Merged-by: op-73458 错误码描述更改$/3修改接口错误码描述，优化开发者体验g03修改接口错误码描述，优化开发者体验| nx+4492>ijxP	tree 0e34fcc9397debb9e96172483279103b65d12a29
parent ff2833494804618e3267d41d246058d4c1100856
parent 89320fb6d800bbb6bfe1ac2c3f617824fd40105c>68361093G68361093 +0800

!4511 merge qxu113113 into master

修改返回错误码

Created-by: m0_59343938
Commit-by: m0_59343938
Merged5%.g1x/ Ex9$ ^W4511gOJx~
tree 8ad854bc894a7432d3d12b7427c5bc182288db73
parent e2dedf94785aad8f7af4aea12daae7db0d37ff3b
parent 899ea928a3146de07a4eeb33166f2403fc959b43>68357247G68357247 +0800

!4488 merge fix_mute_suggest into master

修复描述错误

Created-by: nk3652
Commit-by: nk3652
Merged-by: o.7345#0g1xx9$ ^'&-sig/interface_native_header/pull/298514488}F[x*	tree 1b3118638b08d83e25b7472d2bd6482188593b49
parent fd000423cbbf24f74f5d96bbc5529ba3adb5a328
parent d4fad33e93c6907e345c2dd993ee8b1fc3f1270a>68317093Gj68317093 +0800

!4510 merge master into master

recognizer

Created-by: liuyongkai2
Commit-by: liuyongkai2<%.g1Nx=4510pYxY
tree 4d0fa973046dda10c7c9f15addd5cbf3d5a2d852
parent bb7d023f1d1ce0cee0324c10dea5786453e9485a
parent f5efb5b69428c5e9c32ed52769ce4ffdd4552ae4>68300698G68300698 +0800

!4504 merge master into master

修改capi接口顺序

Created-by: wangyang2022
Commit-by: wangyang2022
Mergedl3464%-修改capi接口顺序f1修改capi接口顺序7Y )Y I$Y nY $Y VY fpY jY ^W45045KxT
tree 33dd6dc35e7dfb46460fd348bd54e143e157fe4d
parent aac8e01ca99692ef9690952a3c9d41e21b6b95e1
parent 7d93852f239801ac27b36165853fc955afc319a?68293142G68293142 +0800

!4482 merge qxu18205 into master

feat: 扩展元数据检测能力，新增人体检测和多类型创建接1

Created-by: m0_59343938
Commit-by: m0_59343938<%.g1	x] 兼容$x/ Ex9 ： docs/pull/125771
- [ ^W4482}5x
tree 79aacbc238870b0652aead32bf6c7300a2a311a4
parent f82ea4bfddae61bdb742f7cff3288eebcacf3fb4
parent 147df84af78c1f2e88d565358d074ae7e15890fb>6828000H68280006 +0800

!4503 merge master into master

update: 更新文件 telephony_radio_type.h

Created-by: Marcz
Commit-by: Marcz<%-解决capi不匹配错误f1!修改头文件与宏定义注释Gx9$ ^W4503wxX
tree 045cd66bf5749438e405e39d9e20ac0e4acd91f6
parent aaa3638f7045d63cf9326ba62be480bdaaecac50
parent 86776db6aa80d68759edd5e4dd0731c84cc98d80>67963264G67963264 +0800

!4486 merge pr_gc into master

add enum lowmemory to JSVM_MemoryPressureLevel

Created-by: sunzibo
Commit-by: sunzibo<%.g1{ nA x/ Ex9$ ^'&-sig/interface_native_header/pull/3001!docs/pull/12570114486_nLxK	tree 89b6cb3173f912358bc70126813150d88f9d6e72
parent 45bdb7ad8bf400f418e2a4cd8569fcdd70b8789c
parent 74c68a94bfcf74f7909190a2ced636a970563242>67842702Gd67842702 +0800

!4463 merge ndk into master

错误码修复

Created-by: zexin_c
Commit-by: zexin_c<%-错误码修复f2NsOx/ Ex9$ ^W4463m'xd
tree 7bf630d45a3ffc2639e4cb4aca73854ff86ec2f5
parent ef03df1d5fb678e21c700c54c1a2bc7cf3a99a46
parent eb5d0ba6634fce2fc30710bd3d2260c8d9ebc5b5>67773310Gm67773310 +0800

!4479 merge master into master

ffrt开放高等级qos

Created-by: cdrom001
Commit-by: chend=%.g1Fx9 ：+-sig/interface_native_header/pull/2979
- [ ^W4479ltxi
tree b451b7a6518393051a728407e02c9582668082ff
parent d09bf44091b812d288f59f7c7dc45058ca28bd99
parent 0b2194339cd02c78a15ffcc1ced971305f10fdc8>67625532Gh67625532 +0800

!4415 merge wxx into master

add occlusionDetection

Created-by: startwxx
Commit-by: wxx; 'multimedia_camera_framework/issues/3736$/g1build仓ndk依赖目标4415wxi
tree b3b206f17425b6f29748a65cdc20285daf6e04e4
parent 19181954d5783dc611bc483284d4b1bf371afe9c
parent 8a2b250876a3d2868be7741cbbadd66daddad081>67621258G67621258 +0800

!4469 merge local into master

fix since error

Created-by: Felix-fangyang
Commit-by: fangxiang
Merged-by: open,%.g0增加了usage的版本描述
NsOx/ 4469 Twx|
tree abbd09702aa8f353fffd587c0c18f0ac8e81f277
parent 9df9e74e591ca927e0aaa3dff02c84f361badcfd
parent 82a8f50507623e3640c33a5c08e1fe539f0bb4e0>67584973G67584973 +0800

!4462 merge master into master

新增av1/vp8/vp9/rv30/rv40/wvc1/dvvideo/rawvideo/mpeg1的MIME/profile/level定2义

Created-by: c60035048
Commit-by: chenkuanfeng<%.g1 g Ex9$ ^W4462|6 x!	tree 28a62789c9de7adc70659b6d9f0f34dbbb352339
parent 62b29d4e812272f47b481f869b85381e5fb775d8
parent c28822cd9aa5150bc159871e88863d100ca5c1c2>67537113Gh67537113 +0800

!4461 merge master into master

ndk_key值

Created-by: huqinglong
Commit-by: huqinglong<%.g14461WQxi
tree 0db0828e72d1c6be7dc0246a057fb2746c49f5a1
parent cd74ff065b4d97ccda4e4c4fb7f83cc67bffedbd
parent e05c66e4dc6f5e80c9078c0c65be5667832211fe>67536882G67536882 +0800

!4450 merge master1229_001 into master

添加结构体描述

Created-by: baidu_37813129
Commit-by: wanglili12s3419%.g1xx9   docs/pull/122647
- [ ^W4450Es8xV	tree 2cb5f12c8393965d5cfe1db1a69ba9f6cbb6d430
parent a2dfcd5419e002f1b4cc22db229c73b9c61d0a15
parent 176106333366eb4a45dcc8feb9fd6d78436b29ad>8105770H81057707 +0800

!5324 merge dev into master

修改模块名一致

Created-by: selina_jiang
Commit-by: selina_jiang
Merged-by:0
xAx(Vx1:Q 8x/ 5324lpxF	tree 392ae480b4f2a7564ec60286ca59b75cc4d006ea
parent bebef27321c35004047358c95005f5ae1aa77acd
parent 104914f8d99709c8ccb0e619dbf125553bb39d2?81017718G81017718 +0800

!5325 merge master into master

add stdbool header file

Created-by: ccfriend
Commit-by: ccfriend
Merged-by: op-
x(Vx1:Q +5325K`Ux)	tree ad4868b314ef74dc7856bd44b0a0137722049cfb
parent 974e4b4b08f8ea5039bc54b1d15650458a746622
parent 8e5e8a07d663c73e2dc42bea04d98e5fb29ad2bc>80924048G80924048 +0800

!5288/DCAPI遗留问题处理

Created-by: zhenghui25
Commit-by: zhenghui25;7.}1|xr  - [ +5288F[x{
tree 471ac7786c441b5947917b2642baff54bbb11448
parent f493ac7a9f7e266b5db336ec70dd43823a968093
parent 2e71c021ffbda553cf8945f234b1831d39c224e9>8089057H80890571 +0800

!5309 merge dawenjian into master

Swiper:大文件拆分

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQi
Merged-by: opd41217.Swiper:大文件拆分}1Swiper:大文件拆分   - [ +5309q5xl	tree facd6c1fa1e3782d71b84e31d47c40214531344d
parent fa14e5b7a292851466c8fb65d1306d1a2b3c824c
parent 26500b309276e32618acb66341c7ef6d2b2ab87f>81168348G81168348 +0800

!5328 merge master into master

fix code

Created-by: cjjbf12000
Commit-by: cjjbf12000
Merged-by: openharmony_c#.P1- [ ] 不兼容
  - [x95- [x~u $x(/5328me1x!tree d779c8474f934e378bd03fff8c95599095b350aa
parent 871bb53e747b5652892b8e05b9d109ea730f9285
parent bfd94288c47176a087066034249bad386cb672f5>8116250H81162509 +0800

!5146 merge filter into master

【interface】提供事件过滤监听查询接口

Created-by: CheryHome
Commit-by: CheryHome;zhangqirui;#3992.新需求，接口新增O1$提供事件过滤监听查询接口7yy$yy.$ySN）"L- [y~XAA	3506
- [yM/5146Է.xS
tree 051766d7e4c12e138393ae45f1fab0b2fba57f7f
parent d1a7c19c04fc8370e5ebd792abbd32363110f2b9
parent 3b8b8bd74f60c88af2a56447a04da1186d8a47ae>80925096G80925096 +0800

!5317 merge new_type into master

通用事件头文件拆分

Created-by: qq_43273048
Commit-by: ZouQianshun
M97412/!通用事件头文件需要拆分O1通用事件头文件拆分#+- [x] 兼容M!- [x~u $x(/5317C<x4

tree d5811ca266e333eeb4938354fc3f8369ebeb543a
parent 3e6268e2ce8dd16120fd5c3ee7ec13484d30a145
parent a43845ba156affa78c3d2cf481ee9439b9b3f3c5A71449J;71449 +0800

!5243 merge 0528_capi into master

capi 接口a xi-heqiong
Commit-by: xi-heqiongs069-
capi文件V7capixAc243_rx
tree 2c423a2568991395e38bda686f7fb2ffd4a7e4fc
parent b7b22ca8f89a7364c1433682d5c61cbd44bb1963
parent a8c2cc766839b6d2087fb520be476551469ab9af>81763106G81763106 +0800

!5345 merge master1 into master

布局类capi大头文件拆分

Created-by: fenglinbailu
Commit-by: fenglinbailu[arkui_ace_engine/issues/78106.!布局类capi大头文件拆分 
I0 布局类capi大头文件拆分 :x$x0
- [xo 
- [xR
- [x-0~@ ] 不兼宓$x1/ a5345~x\

tree 587995abbecbeb90955989d617fc4ca1433d911e
parent 10b79918e78c43629e44cb88b43e235d8a628829
parent 241a2e78ccc3429ad605a79131488d2d56f7831C9317K`9317 +0800

!5236 merge 07 into master

优化接口描述

Created-by: tanhon
Commit-by: tanhon[g/issues/4062.优化接口描述b1优化接口描述 /xf ]236+dzixg

tree 5a9e11725c55e70eeaf22a7421a9706f89fac7e3
parent 75fcacfaca05e62d44242e29c452dd90ee822fc0
parent 7119afd5d571962992c450e37117080f2e3d8575A52607J52607 +0800

!5372 merge master into master

net_http_type.h 缺少标准类型头文件

Created-by: kuruminight
Commit-by: ku	ruminight[g/issues/4173-b1x] 不兼容
  - [ L-72=zvx$

tree ed48d1dba09d875db24933e17683c2e7aa18c61f
parent b663060865d11716114378a625ddbbd52d73bd0d
parent 14a8971e065ceb2ee3ab9b71ad707fac39827ecbA68461J68461 +0800

!5374/K修改net_websocket_type支持c编译

Created-by: wendan
Commit-by: wendan;;5 J K/x{4vE^w)xl
	tree 016a8d0b3cd02e7aa482d531b90a9aaea1a16300
parent 5ba5e2c3a3e0a102c399cd685fa9b04279d334d5
parent 394d4b7b15b9dde6fca6e5edb7a57b03ce0380d9A49344J49344 +0800

!5365/T音频编解码与封装注释优化

Created-by: zzm_gitcode
Commit-by: zzm_gitcode;
-$音频编解码与封装注释优化H	不涉及	不涉及&!	不涉及65ۓ!{xtree e058030c5615ee740502081474de0f6e06313c4f
parent 37ac1493b02f9afc1caf2364055d93b399498749
parent 2a8cf87c463393331f59f5127a45e10d954daf33>81606955G81606955 +0800

!5371 merge master into master

增加bool类型头文件

Created-by: zhangsaiyang
Commit-by: zhangsaiyang
Mern4172.I缺少stdbool.h导致bool类型未定义，C 编译器无法直接消费 \1增加bool类型头文件!2interface/sdk_c仓ndk依赖目标(ndk_targets.gni)y$60f85796-f480-4f9c-926c-558d1f88db27q/YDB- [$YW5371r#,x?tree cffbae7d77df2e2092d383639e1f4663054b9150
parent 17c398e5244d8dc851f1303553eff28f382d2587
parent 93cfdc956fed9ee366fd442208f567f69d47148fA82629J82629 +0800

!5337 merge del_voip_no_privacy into master

del VOIP_PRIVACY_TYPE_PUBLIC

Created-by: hao-liangfei
Commit-by: hao	-liangfei;[#4146](946) .5方案变化，删除 VOIP_PRIVACY_TYPE_PUBLIC 接口2&除 VOIP_PRIVACY_TYPE_PUBLIC 接口
6!x] 是否通过C语法扫描
- [x#$ Hxe$ Vx1;N
- [ ] 不兼容
  - [ 8 /xHEx ：  docs/pull/150428
- [ Y376z2(zx~tree b2052aaa20b5b0be28e5d2f849c578982d49fbed
parent e95995f4f01b83d69edde786cd3e2741d1b110ce
parent 1b6b9ebd34da21617baffed66b4b7fe64a4c90bb>69488064G69488064 +0800

!4527/>fix audiocodec

Created-by: zzm_gitcode
Commit-by: zzm_gitcode;.
capi改进1_①AudioEncoder和AudioDecoder新增废弃版本
②AudioChannelLayout接口模块引用修改
6%是] 是否通过C语法扫描
- [是#$	不涉及H	不涉及e$	不涉及V	不涉及1<	不涉及!	不涉及M=@;f8ed0c12-d71f-47e8-9e21-44e4a3e371db/image.png 'image.png')A;b4643125-fd06-44ab-b712-1483350ab01e/image.png 'image.png')14527tt ^x	tree afe7f4fd2b990004ee82a1bb827253a34d219468
parent 1dab1a3cddcb5c625f52c7e089a2fd9bc83de3f5
parent 2949595732ca022c240d41427102b87765b4a042A6567K65679 +0800

!5188 merge arcScrol into master

ArcList和ArcScrollBar支持CAPI

Created-by: shengu_lancer
Commit-by: lancer
Me8L 31?ref=&did=4084472#tid-4084472%. ArcList和ArcScrollBar支持CAPI1 ArcList和ArcScrollBar支持CAPI7Y  Y7%NA\ Yy%NAV NAl
- [ NA] 不兼容
  - [ Yy9Y/ E Y( 
L+46065|]188rJwvxX
tree 40a7d50928927e00a425db28766ddd3205c40874
parent d81c6f9dd559fa0125eb61f0ddbd734d68dd17d6
parent 7a4c8b4af8d91adb653d6005a32c80c20c1cde9cA64653J64653 +0800

!5355 merge 0612_add_errorCode into master

errorCode注释回刷与拆分

Created-by: linzuoquan
Commit-by: linzuoquan;L 74%.errorCode注释回刷与拆分1errorCode注释回刷与拆分|x\AxN）b ( 
- [xY55o_,x3tree 22ddffba341bd2f979db0cdc4729b75051a40c21
parent 26bc1d8a3cd94b866f80128781edacd22130181d
parent 11b6d0cfc03d5a4408ab6d9072c7074a72abe752A63122J63122 +0800

!5274 merge master into master

普通录像支持LOG视频

Created-by: m00939602
Commit-by: m00939602
Merged-by:0L 096%.
普通录像支持LOG视频0普通录像支持LOG视频|x\>L *multimedia_camera_framework/pull/4619
- [xN）b|,L+471022274@xy

tree 6a5d3442510d503a3efa1b36262cee5c898d9673
parent 7d31c9ef0ce5bb56fe9c7817ddd00207e09b68b3
parent a1a448db81a4643ab5158d8d2c456c39c5e22219A12096J12096 +0800

!5295 merge czz_0603_CAPI_sdkc into master

CAPI头文件拆分

Created-by: chenzhiz
Commit-by: chenzhiz
Merged-bRarkui_ace_engine/issues/7770CAPI头文件拆解d1CAPI头文件拆解|Y//xJ,295FH$^xAtree 0ee3c113a01a4a853376707839e14548cb242ef3
parent d4fe034ebb5bc237e1a68d26e158fc085a48ee5c
parent 0f6944c1de35ed7fb7162a99f067579f19983a5f>81532074G81532074 +0800

!5352 merge dawenjian into master

导航组大文件拆分

Created-by: Hu_ZeQi
Commit-by: Hu_ZeQi
Merged-by: /I/interface_sdk_c/issues/4155.导航组大文件拆分+1
导航组大文件拆分6xx$xAx`$ :interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [ fY/N）
- [ ] 不兼容
  - [ J8 /xE   I/docs/pull/149868
- [x"'053525d"/x#tree f7b41f37e5c2d21c8e7465b98c23da7f15b9791b
parent 3576adc0123cf58b1373ed286ede83a349bfdaf1
parent b93fe623dbd1a9ce8e7988e38d9090e34a7f4f47>81343868G81343868 +0800

!5350 merge 0612_ls into master

api拆分

Created-by: liuhuayi_openharmony
Commit-by: l00916518
Merged-by: op.I/interface_sdk_c/issues/4153-头文件拆分%7头文件拆分需求7xx$xAx`$x:interface/sdk_c仓ndk依赖目标(ndk_targets.gni)里
- [xfY/N）
- [ ] 不兼容
- [xJ8 /xExk/docs/pull/14929615350Bx{
tree 1386983f27509607dce12b83f018b79a5ca72ff4
parent b4d45176337862f69a1fcf9d3a502f5d0e5f0afe
parent 0758cfd5563bc833c17879bff55c3b38be386732A77630J77630 +0800

!5306 merge 20260605_scrollable into master

拆分滚动类组件capi头文件

Created-by: tomkl123
Commit-by: tomkl123t19-"拆分滚动类组件capi头文件I2xfSxd/ f+^06*x2
tree b316ef5f6949c1b0a66ce24992aae4fffd10bd83
parent 893aa3d1965ca9b8fb5d7bc4eaddd338f7e663bf
parent d50f1677f9157dcd5e2e2c242eab112e72cf3b02A25840J25840 +0800

!5331 merge xxxx into master

新增API接口

Created-by: wei-yuantian
Commit-by: wei-yuantian
Merged-by: openhar(#4140.适配新需求，新增APIJ0新增了API接口
6√ √ $√  √,%√QV√qNK√c0 F√ 
+
50342
- [ 0Y31u\x-

tree 6fa8a409432dcc1197813d252c2e92d7cebe586c
parent 2a91b3cfbfd8b252b5df0023ed844ee7463711b2
parent 9584314eb9ade000d9cd4bc7b01b42631742d8eB81054J681054 +0800

!5368 merge master into master

更新APIWn 4169.
更新API更新4新APITZ √$ √√ √ 68dUxA
tree f647e1681c60bf3be13251bd102f029072a91486
parent a99bacd2dadd4da3567cb2278581560d367e02a2
parent d0012993f47261272432ee84c25073ff3bda166bA26476J26476 +0800

!5353 merge new_type2 into master

通用事件头文件拆分

Created-by: qq_43273048
Commit-by: ZouQianshun
Mer7 m/issues/4156
-!通用事件头文件需要拆分D1通用事件头文件拆分  - [ !- [x] 兼容5$xZ/ E $x'M33¥>xVkOV_q~iv0mhm74UclB%PH踖P-v%YHB_VԿ8Ti<yo
ݝA!nID;cP(*	~z%?wqIAÊ!DAo(v	]^/7}q7nDއ18(('AUCj+P(/ξ_ST'=qU	{D5%C+w|9XMȆ':3@	1aHiCHI.h*ޞ!dPQB2Qjp\H7Í諟oy
	)]]U8W.,G{Н{qAs[WnRl\EMN˗/#;H+g-mp uP}~qv8֗[I3K7&yd-n<*Vn֬ܩ:;R{i풩u1RIc'=dHn=~	kX^!I+@CT)%k%.+vy,OSY۴F
`ЬR)>t
i_1gާlXS+B6ȊY7i(gInʿmYx=<{k-N6I9%Y`	4!]ݭ~ǅpvD;D_FlGy8SO]F9vʭM  /5Y[t˥	N#Vs5&3f=GT_O&tRߔM]Exs}2oSd6w?UŴf3NN#-ql7-HsE@:Ȅ9
:jJ}>-dcE꠺W֛=2>Muj5{idҥ@.!FFJ)K=Rg{K{vt5Ze2A2EQmvo!c2SO8^ /X/a\'QyrFqCMtzx1]Α{26&ZO<xDܡKwâYէ_xU';xmNF::t||@f݁4u>:[) -mWl$mlaف@_4Gfg]SڙxaDHtGW˶H)#2
r"/
b4m7V!GVzIf¨Y) h.'֩8ڋvbbW`oyneܶ
MEr"Zk$FvcG>ʢSxig˜305aUȆ6p7xl'Vfj`v1C~%6&%nqIu\RU!.7'V{9 NMXw$7u1R_SX7|М
8pJHlxU]oV8Sn6M)DӴEuhH h>IT|l196W=	in_?GǺ!B7/ܲ ʞ;$YKP9-
L\`L2	x %!'q^#\{&x(p\a(,$^e?ܜ@BgEFLK8-ZT%|uxd΢KHjk+pKV`YTy"q1'K0TbDBKW ySATLÈLF$ HAQlhe,lDca0w׿)vLH56fffỶY{:H$!xrKO̹\SI]ST.aX`0!/%bw'\v_sfCߥ֫Z;_Out^1+QɸN[78_6*m]zge!BN7wU\.:Dtqa:#C+fjzhqm2(sji=j
:sbbѺ쑘(]3׍AxɊ;T%bՉI9By5Tont'iqaR6n^sǨ>glzFciaf j9ZmbJW	5mTͺn=?MknAOAr(sx5Q&#"Ť&FU[vœyy~"	$\Vts`q5kN~G93D8
]ʛV1AVq#?)~gN`M @+T$c ls@Ca64l)>Kf+S-QoΣ⪕Z#Av=*%A9#2"{ӔI|zä%.3wIL;6i(HFOou^PΕVP^x]OV)΄4mh6Z1Z[UU5U6qfRsKJq(1"&٨J i0;W|MXwwǏ<yAOdBIđ
bRaɸ2S*eQ%. %V#4(T
I$
,$VU8PxA@()dAaj$%I4DHG֌n =3)U_^&8pƴf:7T=KRB।"/x9h?dD i2Z߭9tq+vi:vwv
K2[I`эݫx;(`-Y*ӝy<qC(x30;-ĹkQU96UCYCCC/7±5?i09ȍ bL6PS&z0ƴʌ雟"e1␥wkIy*kya烗RobߛcgeƦ<RJ[٢״S粵LMZ~=y8"#Z.sDmz$Kĩ{2~z|ɉF^%n-ȯӹ 0X[[yEf_堖ܿ,k<o]Ϋt4:E5+n.)9dj-R8B}^߁W";^x:D`E,=j^:tn{+\a;q/v98 H4$Sc0R݋F^rpQ->NN)EU=gJ]ánk^s-gtL}`+8'5u^Cq?7;z3֕G>\vx5KJAEDt8ot WG1
>4#M:rB/@"tb:pޯk$@`Ixrs"RZ%eW#,NR'#L|1U`.tD*2냓V/'XqqC u:^/꽱M[ΓH{"r1-ǳvr>7h6ƼyKfxMJ19E2e&?_D#d:ShR&qѽ+]몠{oa ޿25e=}Љ*$"ѐe;B,\S+R{k%Hʾ`lgt[4y)
SbK.P4@ Vv,%Ɏ緛1rh7ƮR|s?uĮu }^gjx=N0w;Je;ql"0uCM*5Fآv`b&.SrZ }/T9(>J֖L'ȕʝAAn.Ri7KX-[)t؄k::^\4YʉìM)gL3Fݴ1^No/?q>}_'!W!~G.iJMg6[	}iDxKn D}`<!(461 }Ȝ`] ,<Zzf(OT\7n7(a+bT:	 ݢ5PɨEl{*8_PFWuO]-B6J93!_FիWzJ-}!vRy
[BMHw]{maga)[7$s<1%gx	0 @)N	-ٲ=JyH,%d1]#50oل*
FQ@Z%Ѥ	Rj^۴pc1't$)Hdc>[uv ">/%ǔxVmSWvNGYNN$әN'˲	twɄ~(b1Fhѱ
6cɿг{4{9y眽$(`c~nkuAOlNeb$DxX鲹lew:Zy8nwY!}v8l6t6+f%$Ƅh"b4Co$~#_#og.}ɺYS83FA_e/P Ecq~	ޘ EBl PTQGP,2ϢYt~ $$AIKDe̠Y?^6 ݕ2B1# AZű!YLXӯpqՊ%XLxxQj^vsg3PDsa"[x}Mv"\0Rw,No- "2Q`C#3qV˓m\ʓz,Lk?'ddcX:Š(S7x΃{woyihz׎d:KG5idH=z VBwRo)qys5׶7ǝѵ$tDfqghɩ6E援qTWJ(POzZTjR=q
x&ǐ;BI`J"OpiESjʄddr笶BL7LG]\-eV>.|ٞb^|k8OFˣ3T.JQj/!YhRq3MM(4M7_ガE~KE=}Y)

}*^<cblӢo5n:*ACAﲚ7Z&^nm6dg8Td܌d:ݟ@3YOjYdHnbTxbH4_-ڋ~yQ~˻d9	~z6p%`GSُ͂+jd&d5ӹF)A
p`Ze<=9<{-7}[[;I{ 8H,6$@i{a~%/aɇ.L x|=&:9jEC2\!M&maqf&>N1g޷6<r0zJ3pB,\Zc;F1.ξޭ<-ZO-_d=ύc}X3g|Y3Tt|[ a$>Fӝ0+FZg	 چ
QMֻIϒZ/%bLjց2
d%&X,w:Kebĵjw{»,6|z
e>ܟPeil+78WxmKOQS%1ĕέT&Wθj̜.l"4:KA1E"i	ĥK̴+V=`w}=9_qCd!
@P VAVi@<d8a  䥀_mF'a
REI<%Iԟy$r4K$ʜ 
B<"J{AMgCMC!y) sA?KP3`xrFJԀ7Hi
&pNt"A$E#؄`(Z5"Y'bXҐ69FGeÚ*ߍNy$.ͽVy$[vʴK;{/g/Zɿn[[gy'uvՊSطߖz^鮣\yT7gq92O$zޠ꒳cἽ^@fڲ;Wtܖ]O4̢u\@u=:\OGsXe>WOLU>jչqDqי5LŪ[|de6ְ\[]x07j?orO5`DkY>veUre퍢|?P&RwyCEEuIME">cY~9F_=y2c}9P/٤x340031Qp
qKchLof0e>*^Lt0L*N.K*cYp~s'LvUR_ZYZX/o=S<)84T0+dK#ƴtyݝU'Rn `E˫x340031Qp
qKcxauᡠY!s.Ȫ)?Ն59Izy)zYy"eO-7ە5_d"TKe\g_tp7 e2x340031Q(N.Ό/H-,H-J̉O,`Mfֽ?̏{'̛b]CIeAj1PA7םr7h^~7 o*ҡx340031Qp
qKc>m6y?kE{t!jJR3RrR2.iﹾP%Ey9y)@ůx8L:Pּ	J]7#xӋ22SS@*xɺ;p⛖;§Ad&%dLK*cI%k]ֱQ 7\\x31 Ҽļ"#rs4j\<>{|	Zׯ %
x340031Qp
qKcL}r{٩%ˋn	B$&edT'%'e0|{tѦҧz8KjLBSWU0-- ?Z7yTC5e0GTd(̭aCdnM @+x340031Qp
qKc/̾CsOtCs߶<s!j2s2K*JJ2sSss2ozwZBш7 '39$3?>$aq/s\|rۡ2}RK@zӓ_?׏+&k1a煮%=&Η(Օpyo6\e&<g@U$1zT'Uaξ9tc=jԼbs*g_ۤͿ3OzAd&^^J^Vq~C$pyZwl9~YT?T[n~JiNbQ|~Rȳ)%E@L>zgUf}MR-5صas|-K_ҍFo'omVBs.Og{,g#ywb;#1o&T;ˋ	Go֛O7mk>T@T0w	vSv8dƭ 	x340031QLJK-K+K*cx＝Ӣn.sim(Ylђ%aC)ޖĐ:҂"+/kmt.a=. ;
x340031Qp
qKc~}3GV7*r0LON,K*cyGpČ?w\}PUWX!oLf~ݤmu?uJOT_RY
TPLL<y  Dx340031QH/MO,ΎO-*/OOI`|mU؜M3c_UaCx$]yE@-%F_tk."c	 D*
x340031Qp
qKcoϲJ7Z}5ݱ{w.V`7I*MKK-O`(6VV'_q[UXYѤU cƢƥЗN:a.	UG\ֆױ]l-إ Bx340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*c,hgcIjB[>%Aѐ0A.5sx_ӗ,zRz P2\x340031Qp
qKc(t_Ǿ7zύ\&-X	'!DMbQvyjR|jQQ~Q|r~J^wpHL}+ 7Qg敤%&T7]"aG&=|ۄ:/jANfq	P˿]xR~鈾YQ~esSZԒj#Pݷ5fERRY r2RwMUyP9I@zy)zYyIb/?z7}vUXYi<'ϲtNd2+#gϏ  ޙx31 ԲԼ	6-Ro?{ͮ͆f&&
I%%Eyizӓ~y7	pEy%@EzTV0x.=\QqrbPgG	ם g7x3wQLMq|brr~)جy׹kWae3E1CTGM.{o)SdU^_ZT
T.z+xNxBo֩ |pŤx31 Ҕļ"S/9v`|'ΆzfOe0JTuvLb*?[^̜|Waƻ&;9 e<-o=x340031QH*-)`h5kЭ7vayJC
*#>G?SXRR	45L;KMtٽP(LyiqI~.Iym7lvGe~yDc?2sdAar\i&B&SWT߭6"`JSY	U^Th#m%%w"371=$U<{*ֿZ5< ]_T{9G	3}y㪞(jn)OS&}xSX_
rQ?_t^dƤ+odTȈsf3vw;ĲĒL`K9v6jWiXJh΍*/L9tū_vXΫ}SS^Z0?M|uwK23SS2!%q[ZlQ.s\s|:U6vOM$6o,%~1|^Vnlid//nVlLܫ6P5%YK]]kK><:]'m3ĢD&sj*JV )pESZm6Yaf^8&#{Ql玎.:wH'T]y"0nrˁs #n
d]ʙ)Nѻ[#hoQ  x~mWc/6_bbc BЫx340031Qp
qKcطDЏ/{̔]~&'3)%W//%[/8?һ5Vbf1Te~F|JfqANbe|rbAIiQ^ývIecٔ\0gsN?ީsaWKՋ:871/1=;RKF[FƷ\y5V
x31 <կxm/?SLE9O~J^R%c}ԯf&&
yz%Z
.V8lVy|hSJ*RSRJnYG)\|ɽxP%9?pzc[dpr3_M  eCݯx340031QHHM+d`:tpO'6Z}IM|r~nAbIfRfNfI%Hy71+4(hJ(:RAOKo:o./17pF&	f.O-6GQX\WXRԷT?'~I8yeLi~nnj^I|AbQqj^V1a:W>Gn(3e7)ԍ2om	  uzx340031Q(H-*.ϋ/*I*cW|*y>gP[89 ImÒYK*ly2+ $%	x31 ԤĢu*Օ-PhfԴԢԼbtLy"j*JI,K̉/./JeP\<Urν_O9;sDiiJnrթ2mLVo9shy =%x340031QHI,IO,.N-`1ey	u?x.?#>8,bT;~e~0u5;\)e`sJSJ,ۯ~|nOwzMi1PD;Oʤr~th_X'&gܿOFLs{ĝ(BOAQjJfrb	xGEe^<BiQJR|rQeAI~|AbQb.PÓOX^Iۯz(181$3?~OGb
_ǽWr:ǯv#Yb|
*OJME?O]>ޚ {B*A!g#__qS3(5'Ĝ"PH߮BXuá:>((>9?1:W~U"KS^(" 	
x31 T5;O}b_tFf
C飞o}屿m&Bd3R22RsRzPqr=aڷ̃,-Nb8d_.TKҡ|D~e㋁ P2JphHMq,9 Ec
x340031Qp
qKc0仱;G{ެm~4Bd&'de1,h`x|U35<U
TX楧w"xy/Rn+[ 4cwV9 `~k RA
x340031Qp
qKcHhSXjƩxj01 ̼ҔT-mO{Ow;[l!d&%dde1<ӬJy؃>Bh*J,OIE(!c)3ԕ |C
x31 ĂԲԼgb%&ֳ4:mla	TQr~NNf*Tr$%,&tRm7LIJjRi:Ävg'xݶ<#/t-]ُUXٗ&_RP'OʫlOZ CLx340031QK,,KO,M̏OIM*MOKMKLO-`NlM/nkrqyrCz2SS24=[VOjS^dM6:
5ȿ7ғkU$(8ŲCW%gш-uJwb՚_Z+/N+맚X̆ɭ883?YgBO;J2zVCj:KRs4&]e!=}4"*aIR2z|/2 GfOx340031Qp
qKc8^2	i|ۿf5`!DM^bIfYj|biJf~|r~^YjQIj^v-}B.fOs>k#6=ť%Iũ@M+b/s,u)eȶ5m5g恴9˜9nKιsşgwCgu5de1$iMy`u6!4nt亩wj`sx31 TOC锋|SC3ԔʂbL
݉aSUXYXX_Zx݃<֠ŦjRrl22S굋>{Ǭ`}xYkrWsԗ%NbM'dɬ5vyi@k~r	%u<cE^2jX'>+N/MynIߵ6?w7cg+M/*N?uݷV2(|܀D ͭx340031Qp
qKcqy7׺]6())+I-JN-(/`6񴊿:`]exCu|IeA*P˪eI~^ޓPW%^jL°#/%[/8?src4xݥ	 Ox340031Qp
qKc( c{Oy65y%%z_=%sq埯3ouo5(%$1 ۂn]\fwo|U_2JSJ<C,61TMnf^JqA~Qj|Nf^^J^Vq~φVC׷w0+Ѭwӑ4r;*l,]TUR\XRZT3*%?wm,
)I+/eNM
'-W=fzdڴLTf)	 'x340031QH-*/OOI`hx*к๭
g&1K,,KOM,=<fr*j{=O6`<6b}M<'?NUaIeHᯋosf-Swĕ!
2Ks'rT]wxӒͷer(lO,))L*-I-fS|oُ?+쓄\\R_T4t&3~i w~x7 (j|x) B5d泑FЩE4ұ-C+Tx340031Qψ/K/`4V}CLE)Omr'dkԲԼ̜"cm!Ĕrz
2JY8ޝbK^dpzeO giH
x31 Tѭ6|S_]gLa86u/l>'ged%0|qq[[jfb9煦IIW	c-q>> 3cz,\6hЈ-#uyn饬f8 s>@x[ϸq;|0+  @
pxu׾Z:&@XX__ZZİnݓ;?ߚRYs#%&3+B4g UI\2z'S=gi̊ ),fx[ƸqW]y}7-5FS	x31 Ԓļ"',oI:p˚s')O(a0UwșURV8aӏNO~xN{'$"$&g34U\guƮ2M| D4@^+x340031Qp
qKcས]n"V6{&@S0c/Lp;[wC)9Iyzy)zYyZ*:vf-<]Uu,bWL`ﾗނ 19;Gá1\`٧s?xkϼ5v=veyn{qgFO+/9/"5'7 >/ an{
K>(595١_tSg$bv:mt:CyYbRtrd][]gq~iQr*B!ZQ铚{V:koƮ.&X.7j-3:7qͲ>JEzV.U"${9
oݵƌߞ?LxrǡSz~wQ% xu{8Tyli]cѳ(t11HI&"%93Nfә3uyY'Զm,6-.Q"eҤNsvyNg;|>{}YsQ@ّ&(-՟EKt_ovp"XK;{]͌;ergKfX9
1"ӝEw6~{߾AnP~#*̓HU=YY4.Wi8 .hXoٴ#+z! (.p`.7.-0Dwd!v݆k_q-EV>$pbXu=eHA@1L=$`dEzI*I'?׮7]6y]q&|DDM˵n7ܞ4YQ6M !'RSܱmb5hԋ5BFG̻$Ɛr'  z~w6o 	އ$Xߟ^JVf)Wи"	
h*{z:{A^rE90*e0W2Ϛёi&)#:2WC+Yu$gŅ^=!~I4(W5B%@&$_dZ^<l<,,I!'+ 1/_d51!u%Ud=1֦b9kWnK!0_v*j3X6@BQ\6G% W}g-K>打YN.*||}Qb{e<tlUy HNh3Ƚ?/I`Exz'WH
co)<-pKcƅƢI"FOrpMC_M4}i=ّ(
e)VOmrj^a/PhB%xLOԩoQY6>R&%b78ncszI0ؑ84)3$7
d)O'ڨp. \ο3.K,).(2?zr# 9fMbLIί\0}62lueC\0!~8hJyq]g5׌wJHԼ&0hs~|s+(a7JN=v>8Qlyyݭ;jv㎒%)?=qD)}iK*MLNHiĲMrܵgCy+x31 ԢbyW=b~~zRʂ|Ǣ̒ҢTݳһ2g}+W-S}Q%$1(63?V[3',_hSy%E99E V9]gq=~}kWiĢLx%eKCӋKRJ_#W#gMITw$ouBU&%1~E`oxD˄yCԥde&d$'2x:tCg|,	6ʹPEeEv|ώe:W
Q	575?0Xg<=0='?)1a~[ם}G諛PE,
i+z̲
mۚ_ީ/ޑNҜԔDk|wyZ\E	B!RK$9#54'Ұ%2|׹䇟(-NM.-,dh]amgq.V[/YURXTRZx
Iu6Yɿ;DEyjzŚ^ے 4`	x340031QH*-)``[*ǯu??5`C
*N]5ymLU~nn~^|bIIQ&b wV/&x|/UU^ZT#hd["-P	 V>ʯx31 Ҕl2i>VVƯ1
ʲd?_~wBJ/쨁+)N-.c\yc+eEI7eW_z{DQ2ЪD$+C4<Wa`r&)EHM)WlҴ-[/	Be&Ƨ&0̙?{Bnew#nc\uY~~>iwU!G_MM:14/%39_^)sӆc_u.)FVTXT`(rC꡸m2VׇLD$Ivu;	\=wDaANbejrt<P+:Ҳ̔dPǧg2]"o+9GOM x340031QK,,KO,M̏O`pP0U:c{&hHI-LNOJ,NhXSSdUilS3`l$t6d<rf`V\Rt9**BSe-SSRifNJjPۚ?/5ndxhWRJ jxϺuBbڌ3y'nQ^rN3& v#x31 Www[6췼Rqj1Z	+,&Iwwm~3L5؈ڧ'
;r*Z&uϳC3x?>nVb<*礑gju)l)@dK2RJRRrI:TjmMP%$&&%5Y3p)S8T$gy3(R2r+㋁3Kdst~tYnT%3.<:S!">n(nm0-%N=]Yuiyɩ_}f)fZ#EYf.C[S~*i~ogwvmQ,ʼdo^bW{SP_wDSN*.^x{9D]YiNvbCҦ??#9'-G =Ox6 hssWm- M|6O|t6gfD:>5Dx340031Qp
qKcĪeʣ=73_/{ͦBԤ%'ħe0xy%_]UliBiybRNj|JjqrQfAI~PCʣ;ŖvUSc6mTCNfRbr^^J^Vq~V{fU,ezqt7Py%e@d&ՙKŔ#my#&ڔĜtgIZyh`q7P-{˽{s^R-%tzTy%Ei wg0lc|*WiW?Cu|brrjqqfRfNfI%P/G-6J,_ӫs ޴b=?U򾵿1'pH-K+j,sAg֜+t̞N2ڳLu:,{6aAP_gx-DΜK]"S@f$C#<6~=gsS!(J#s2&\q}~J,@KUU<=խ￷㋢QU楤^Bb~>l6MJK*@U8ϱuARmǂ:0,/>}A?NGJhXqFӂ[a2+v.(@£(3$Zrb,#˄~+a(f@R	rO1N{x,s͡ˡ(.IM/W9zJJ|1%CJK3IܙVO	p}>kf My[x340031QK,L/Je`8Mhv	S.nQUUǰwlq̲.k*N(51%7U/7y"?T2-_}pEEy%z%%wTH*yitO/6&@P\BEsg\ꑻHȖ08^Tjk4ڊeYt 6XxxZ 7wfC߫d)/*40000 av_codec {ޛ'N[ؙM< '?3vvZst`Rl1)6%x340031Qp
qKchfC~!DMrbnjQ^s
}^I]Ĵl<-Jn{m٦5}(JSR2S^='͋js|f^Ai	P/WM;9Uenb^bzjP9?V4\׵\v~5Pde&'dH_qvqrEם͓u,cҢbb1ܓ=+/gee!UԒĔĒ
ƿ;9#KBJK +ouyYi"?˟U\_ty( ?N%̝||+JSׅi3".])ca*ZP{/m>#-2xTmYfJ*B~86 "R\Iۗ ex7 ƴI7H+F,<UUɑ'*_̈́7%p,?v-Rpxey8UiJP)K)Q%dνssd#QnRyZeERM6e̽y<{O[RVTL_¯R5ΫsbX0Q.J	Py/ t,!e9"/BH	5jZͼJ4'hzW
0EЃfG[o5864JIr|Q%!'%kUXw)7Y*	!-G% o)q?kMrYU	Q>X$zuuoCfE	4I[kH:!p.!$ βd"^Q'P_-쳒g8x|E
&u&mmv`c&(Vtϣ3lq4UCY?̯8J+;B->ȠE1ѶLˡ(Iioq@ϟS=WU>o3J`
קHb^`p-14>QG2׉Q|r	rϒ׬FtgICr!·*/uDH[WQ$=kCېdحRq	ˬ5hU&-b(n;a[$CYq/fqUۓ`C唒Պ&SsԸޘk*JW+:i`>^y3!7LA7	ΏܳtWsΉwɷ˿lVJʅu)7Еi\a!@:Rtp8|-*v,1.$ B:{՝jFܗ=&=shgFI@
a(SK.QT_[(W.@Umf?{-;olђjEn̦>ه)#[فj2"	\"_H*cu`$Uzx^Jy5iT%a_~l.΄`]ԨaM+ڤ:vi(P^OpbЂ#~E?(wuk=Y=u?4c"hb|C(_V==Xx2bOZ	QZj%<ve\Co̘yGXUwK7Yo- P[<xk},f~(c.:`7`Ibހ-81y{Hf0xw1P:Ag<ۙ}Y'beX&:Q,B *T|%7SzUhA $. O.N?| 1<1);K@HC|8Zl剨8M4H\<-ws>_	]vpT+WG&)nJ}mVEvj=<;y*=پRA	ؓ/_BeN_׿m`a-5˳!aŗ>t(Gix!7W7  {xkk *X.' eLE!^jola c-kx^ SDdWj(cy[d[|j  _ktMjxғ!multimedia tS=懛20jur**)
x X%l"o<̌L[c<a/Z YpyZPeDקB.x*EؕP,69tFC"Fjxr*f40000 multimedia 	PH2L:i%~K,tX/Wǜ^pa2:Ex31 N߳2zR=,zWʱg	X63$Z=[uZ$]_"TZ`Ҵ_ok&(YPw"R\_~zJ*&wYl6&k>8USZ:ۆ]^}vmoVBSRsX_S˶UlH3?uoٮ=.ޙH,BI0HI^݆9GfI#wyK JJst3RSRnE^"sf봄Jߣ4(=?%܎\f!njW7 mxT Ӥ\٨weRg<@,-Q'Hl1'eCJj>Jtǳ,^>&#x340031Qp
qKcx)r.b`b 
yey%<IK܊ڕֆr2KJRdjz#u_{mԢTa޲{SngTO~FRbIIjQe|f^Z^It^eswYb42Z
2`ayDQTצGNƵW[XW[4ϱngݔ0Lw5GT5pX+f,.5',_d+晴]ڹ*aDPyjIi5UÐz:%2>ffSv:SCw F4x31 ĂĢ"˞!=Rs;BMGCsSSļļLJ"9	"?/|7@f&&jSRw'nhb1T}FjbJjQ|AQ~rjqq~t^.n(wAَ2PWZ_
s?w=:UP(K2R!_ٿsycʖpAC7
ߔ.DOJW4Q'Uhz6|].&#p7YBEV" >خx31 Ҕļ"Ia&7[_Oz	܂b</e^й%{Ce0l|8obYQWUi9E?|ܺ#ەSa>J24lsmR-xBAqFbQ*C{ײ,*D}V< Y5Vx340031QH,MLOOOK-J,/`hGkwԼY 0U3dZSwj/,msYIũ@n>J)*ή[U_$MML6kbEYa埄w2ںjao*2*adOG38(d첽|WՃۧ)OJًj$D)CSBCY{h5-ILI,IO()JL[I`:iȚ퐶a4?߿{i5Ix,O8n6gbzN,^sU%=p5pu9 7kg\,=.7zs07C1|زۯE=i'Uz
 2$3qmRMUq5{&U|'\iQjr~Q
Vs*-ng0[anH.M[PԡaY|k>PI9`<'''2$uvbYҭȵJ"v^qr>ę\_{U6uSdLD(dгQVM5<jWS`1Tu\?6NY-EόVGf*///*M,M̏/j?m[*vR}uXYQ?@5|Ng;0wgS_	q<BSHüq)L_^~ːΰyնnvi"n\'6٢(LI{psͧE=vJsy5)*ڨ/M#:Zcr;Ē̲xjz9U4)Æ `ͦ&<aCkJ(\cB@gjQQ~(
hpt-gn 3-6Ox8qHsAGczMwfǫﭙ zSx6 ,Gea( <+XUBVB1Τ[G	/wj~!>f9x8 S	^x{yX}yZWr㄄vZ&@X^UK
$̅JS3JVlKvS{3DQrbnjQb|Z./fPP,xrًeQ[DK:6b K>#x340031Qp
qKcvbw߭fyIR7Nmk\ab 
)%E}gfخ5˕V!$$d&'ee19i'7=V]ڋ߆[uuTWg08ΰybSW@Jn̒TPS-(vpՏ"[јZTpsyNBbٶ$??'9#13݃^gόr}iUWZX_423?OL%F ۟6  ]x.r}S9ͻ]D2OlN /xK jπs|=&E-R;fƑ~ZP>QDr.ONɑS'l{U兜Շ/x$¡ixeyPwEXD-GZ\*L.ɚnURBA4XA/DR"'zLo['3#>.6ܸtx^[((t'%pDvTAsY,hG8Fi5q-lqx`J5pK$A0iC%|X.vg\ʐ^,Rfd77ViV\Oq} 
HHBc-qܠrr5@#9xltL1e^?~KocN~`nf04VʨY~<dJ^
Iܿ@Ǭ#km*mN)>?e6<5GZ?vBKx^>A<Jp$E]
|z b7/xu:5>~}=nbW7gɕ=Y9Pw̍ѫKJ[촪2Y;82<2\Z
LxTj~Ľ{E5aHvdBm)`slz_èuBNοjuϥG,xR5f?k&[@XH2a ZLZy϶9|	yop_+e82$@ׂp_V59zRJ 7䰤/X:>D!ʙ,u0)	( "5ƺesL/h2ExJvοD|9:Q$aD!UǏٖ⽡UPƢz;&att>k<zQ\sLaq(Ehã+:ލ%7TFVbo*A	Psxd鏌eVY(Il,pr˜igk$a0(h1[G~z뻨CC4+D}G{کT\MKn}TD~R릶en1L/
eJ"53`pռI5=/H?<=U]Z=3xavSDg J24GЭ50zk]ul(2$%8XQG&Y0zFeئ.:.3$X -ܷ씑~ٓfPQ꟩!2aƯ<J ٍl1KiQ5asv0>7;W#:c:ITBWim7NXǮ5U_+WȤW]{NR$o6oY8*LJHV|1^kD(9O>p[٫oW0mU $ylX?jzBҩ0x^ $100644 BUILD.gn T-TX7$,
<%r-8hm9]x&{|(
 x V$100644 BUILD.gn 9Մ)=K;4q$s;kU#NN})bC"uA@w~wq3Lm*hO_R=+LGD{~-pie@G]w,uH28x ^{#,)]|p
fx R$100644 BUILD.gn (Ff2jW;98jq$s^MP).9߱;"⺸op*
cre][}{6\tč䤗e%QKn h95x3u@,Mg"xE $100644 BUILD.gn V
 6JJsE~$	kK$tRbthV=
vx R$100644 BUILD.gn (Ff2jW;98jq$sJXp=EffS꣝ܱtZsٵ{07g˓re][}{6\tčq3Lm*h9-pie@G]w,I x^ $100644 BUILD.gn S;K3;:iv<Ώ>$I_ ZmD#8%KZ`5C!6|%zx9 $I_ ZmD#8%KZ`5C!6|5x^ $100644 BUILD.gn *5+ZMJ0{6$E)1$br^nc~086=߾*o,tNKiU|$TxR $=ޞ#Qu
j챫Q!>Y-8P泉)!e|"\[Ua, $5x D$100644 BUILD.gn "cn$s$=ޞ#Qu
j챫U5u: OXHm<֓+ַ	Y;u`a 8O?{D9]1t s 100644 styled_string.h !e|"\[Ua,Llx}o&U;fSrwd~ },x &$100644 BUILD.gn (Ff2jW;98jq$s 	-%o_DCy˫S/k[:œs8T`aQ$<%"Lēr$ckb.$੠;	s1Qq{6}Ǔ89+100644 styled_string.h 5x3u@,\Zjxj ^MP).9߱Qܼarqg)Lq{loZ8z5x3u@,Ś3Kxb $100644 BUILD.gn (Ff2jW;98jq$sJXp=EffS꣝ܱge-mZљ6C)蓛WH)=qxQ ;kU#NN})bCtZsٵ{07g˓r>T:]Gk%_x;~}o&U;fSrwd~ 'I,x;~}C)H_ΔK+}l>N&{F T]YxQ @{SRN@iK>ƿ=
h>n$7!e|"\[Ua,d"	]x o$100644 BUILD.gn zxL[ x	wO$a8nK﷕,6$տMFX-#劼ys78諳rA{_E?JhOM"&ǌ2%*P|Bxx $100644 BUILD.gn j6 |󴍁y$Q&`A·U˭jc'_	Rf<hʓ8Q# /޻-/ӣCW5&xx $100644 BUILD.gn Dsj%[MY5|3$QH{\O{eX$|A	?Jg'ǴO8JVh&Vp7DWn/v-x^ $100644 BUILD.gn 7>=T(KgZ?`6$|A	?Jg'ǴO8j5jZDLC)QW!x ,!dO3TvٱpHx9 $}D4#۱BM8!ܿs"T@ish.qx I$100644 BUILD.gn  v_e;9vųjd$c!error_code.h nsך)򉰒ȟбaqHMiQ<S#Y3cDNsv9#TC8+P5z].hO5:$Kw*ku$ݓWw0M6x^ $100644 BUILD.gn "-.d=jo4$lPIZocd^85:$Kw*ku$ݓWg%O#x^ $100644 BUILD.gn Wpj
ZZ^B$[U{"b\l#8?]* W]TJ%\t;W#Mx_ $100644 BUILD.gn Lq:l;r$(U]r|+)r`Uw$o$XW_)x9 &`A·U˭jc	ҡ`O8L-W`l76x9 &`A·U˭jc1kh-+7+_'L`Qkx` $100644 BUILD.gn (Rܱ$Qf_e;ь]$OOI.O(;
A],3׺Wj<)Kvxx $100644 BUILD.gn Z3[߾#F$Q&`A·U˭jc;]M؎UcV8Uw$o$XW96}x^ $100644 BUILD.gn 8^kWJQѼk$@qRU}I(oA8~׊ĿRO㺷!W*tx  v#Y{K,mWqx9 $$.<ʢ
Et)<k8!ܿs"T@ish7?x ,!dO3Tvٱp.x  T諳rA{_E?Jh<\x;qcCȦ[J0=e$Sk̔x  T:?P.%4h_Z7x;qcCz˱GE#N]b5xr} ydx  Tw`߷YyQ'ypTh+x;qcC]FObR^_mr} @x  TI(7~u{h\ox^ $100644 BUILD.gn a녑HOH?(_z$r_&v=_U31 8:f_qįѬM |s'\xw $100644 BUILD.gn *5+ZMJ0{6$a8nK﷕,6$տM"x(Abb pS8{D9]1t s |tz.bx^ $100644 BUILD.gn 0 
WJ$c־#tvf^	8gKݦE?}s@Z|W&`x` $100644 BUILD.gn  >6-3^?}$QH{\O{eX$.aL̕Ff˗校j%|&bx;qcaR1ڪ'9v7kf xR u"g=`W!ؓ%	 mܟ}8P5x3u@,k{"qx;~}C)V9_?ls7N&{F #x;~}C)H_ΔK+}l>N&{F T]	Mx c 	-%o_DCy˫S/k[:œs8X=Ss4`nr$ckb.$੠;	s1Qq{6}Ǔ8P5x3u@,mJ=hx8 ^MP).9߱y{loZ8'GxR u eoG75b>%_$Y1b8$z8PQ֧M'+, %'x8  	-%o_DCy˫S/k[:œ|nxR  	-%o_DCy˫S/k[:œs4&I)g
~G?X(%x9 utZsٵ{07g˓-pie@G]w,
A6x;~}tPe?-O5?Lq,3 rnx{ $100644 BUILD.gn Mn`Q~/
t9$sCCԲ6V=UUIބn2  Z:a̷$~ OaRSm=!D8M}4Sxx  $~ OaRSm=!D8ȳ`'x9 uPbQ7x%g
s~ OaRSm=!D8x>}ȲV[.w/
/9ɞ !@/x  V$҆o؃d xȑǓlR^x9 H}NI5MN)sc6\V$҆o؃d xȑǓ$&x |sv+k=eBꑫCv# E-z!|zF(c;zAU -{%t0K\Zh1yX	ZGY8=ړPN݊Yj^dXo,78x>}t_wܷS'vvXpUg1eEs\YXSeh``fbXYZ\RZYo|hǖ͈=Pf=F)FӚy.ޙp|Cf'0gHZvEAVj|Qj^Jj-kK\:[]m%paGJK*@0lY]iV"
rwYIވGiu ߮n)5x  V$҆o؃d xȑǓlRdxb HD.`UaQFLÓ\r=e][}{6\tč100644 native_type.h h4p1Tƪ˩\)	xx l.ʜmKqAر Tx`ce$j\r=atDC8VїK:ـ=100644 native_type.h Zh1yX	ZGY8=ړPN݊Yj^dXo,?Rxj 8""X[}NI5MN)sc6\V$҆o؃d xȑǓP5x3u@o,+4yx>}no[ޕoV
z.q&{F qfx |}B5*4!7oqm&ä{U.tQC~d,V%\G?uxxFyK:Ǣ[N݊Yj^dXo,:xx< w)[.EAn+ЎNW2Xy:PS3.s(Cx>}Ȗ|d]2;dtxr:'cVqx! H8N֖Ҷup	,\?g^!x>}ȅ4o='iW&1L  WvOx>}tf4޻ʁCoħΗU~uC(%dƧe00iʴZI;ϙ܈ztTה}QSǟsPNO-K+sPRN;UdO{RJ,;vn>gbLE?ms_c]ͳz҇M XufOI\#"Eߧ{I !}x! H Tx`ce$j\?Q3x>}HTf[6#BǛs ax>}HTf[6#BǛ2VFsT-=RŻsrV1L h)x>}K3sN.1n͛cWxj hu~LmGet14qe-%\G}_	rRjГ>P}xz@"2@co,ʒ1Mx>}dKUWWЭT-1d Kx>}ȍ7)>ΗT]~1L yx8 﫨 MR	Ǵw^B*LP@l1''?}|ܒ._	@x! H Tx`ce$j\?Q%x  }_	rRjГM	Tx `mᢕYnp?^C&zM.FXy:PS3.s6{ZۙgQ\G}_	rRjГ@F.dጧm؟cSL]x8 hu~LmGe>P}xz@"2@co,QuxQ d+6S|u(uTʎ LJ`1O\g\>P}xz@"2@co,$Uxg d+6S|u(uTʎ FLY#)/vAj.V>P}xz@"2@co1\U>fѶCGLp/	Vx>}ȑ̪znLo<{mcx8 w)[.EAn+ЎNW2LZh1yX	ZGY8=ړ}Rkx ?<n{;)d椊񞲑o .+i="#ysLmX.=19*>-OjRq100644 native_node.h pHEp1\GE5h<.ö@b{IoOdb|F舧hIOFGr&,e+aT:x>}C;HY]DL>m *cx8 w)[.EAn+ЎNW2LZh1yX	ZGY8=ړ}R*xj 1w԰aGJ)ŉ(Ao` XrU-MWҳ."5L"VGJ	s\|BX5xreʿ/#x! H?ܥPЍ^<\?*hx9 GT ycQF^^=FuDaO|٭w襵\? q0x>}HANѾb>	:IW9ɞ Ҋ^x| 0y26e:\߱q^|@D4QtN}\G?Dd*5z qy100644 native_render.h G~:pJ?Z"|0a7xd HpHEp1\G?E5h<.ö100644 native_render.h atDC8VїK:ـ=+~x p=|X*<*ˈ`Gm<\r=7>sDt[-100644 native_type.h ݲ>TX#A'Dv|^&h~@*	Z(&VA*>gx9 |\4>z6dp:~&GP#zLiWcT\?}fx9 i qK@d+>4B,V 6Ly[ֳ\?Hx 3{rR~+m!d}-Wý|]nF|\G6a&ԥ@1aȎ<V)4|F舧hIOFGr&,ek<gHx>}t?vٰݮgݣlI׻6(%d'e&e0,~XI#.Y9sug=B__+)Ww}91YnCYK-;/Wϒ<Tjx^~
q5G]$įvr{KAS'zu[X!k%3	Ey)E@3ͰDz]jPT,+X8<-NسE/oNfY[x¦3>= }mx>}HJymvXW;Efc,.xO  .+i="#ysLmX.19*>-OjRq3TF舧hIOFGr&,e>\]x9 oҔ(e%/t
[(FuDaO|٭w襵\?~Q/x8 sv+k=eB걫#$ckb.$੠;	`vx  }_	rRjГM	/x `d+6S|u(uTʎ C&zM.FXy:PS3.sE-zћPJl=;}\F.dጧm؟cSP>P}xz@"2@co,pG
xj $'b25ȼvQXo0 )\V$҆o؃d xȑǓP5x3u@o,E5x! H|i}X&\?
sx>}?vٰݮgݣlI׻6(%d'e&e0,~XI#.Y9sUmJfbN~:P邫?ˎ)3,#zVw*Ś*T%ED"fK0ӃJSOHH?4(Q	 F{x{ $100644 BUILD.gn Mn`Q~/
t9$sCCԲ6V=UUIބnh,paAGq?jR[	`DXW1ceA+bo8
1x! u^BkLyt,Oѳ?ɺ:x9 H_E+/*	H\~ OaRSm=!DdxR ^MP).9ߑCM8RH)	8Fs8X=Ss4`n?A5%fx! Gn_[(|KX{x;ƶD!$?O/BԬ-C}|)ُKj3R+L\2Pt~Go^`&̔"#/*-mSق 0yx;ƶu¾'W2.w*" mxD =lRwy/'node_attr_custom.h Zi</=yQN؄z$쓡{@%!xuĜy)%%Eɥ%zQK3mwٮXZwjʛQa dC`xzuBNbe~i^9Vw7|cFͼNx1Q=/?%5>(>$?W/A ji.K+[nTMUy91 {hbxziľz2jLgR a4gxk`8Q`Ⅸs5&3) Amxk`=4Q~ⅺs5&3) Ef=xX=Ѡ 	wMx. 0$100644 layout.h Gn_[(|KX0l	x8QD!'2D/yoޱ[f eY,g$x;q; (gxxqq+,H0섉B9x3 tx&i:rFZv
S) ~ CxJ|xK j/mX&ZUƱs&ˑ~5Xjf:@~v0xS'l{U兜Շ_$w[x ZP>QDr.ONɑ0՞fx3 jg?E	(^b~IL"Mi!8ʳ(xK jڧl1J#V4~LD-Z	p(Q.׶9b i[x"xK j%>"_߰0dqϿ~P28{Dw"{g`%RvxxqBȞ5jsD{>huڱu 4!xK jo?9HO6 3~*U;;.gL4nRYY::? V/x螑LxxqqA/,<P=nx "xxqqU6KEM&ʾ1t2i O)	xxqBHuRtNtbϢodO l4xxqBH]=zL\Lw}[25s u xxqq9s.o;\*N'o -xJ k~F~ȗL~x~LD-Z	p(Q.׶9b i[$ x5 k~F~ȗL~x~LD-Z	p(Q.׶9b0JxK :o=$>tNI	2 lzJn~n)͌Bw+u'$x 5=DW$mܛ0ɻxK :s L."GB8k3NIdrHlv@i6poӱmnHJXBWgK1D#axY $100644 BUILD.gn .
7ZO2<9R1ӑ$F\LO+5'%~IE²js*à $Ix3 ܥ/S' 	0OAHO)T0	cwrd`-x :pc֢nxL	<gԑNmQ1x :o=$>tNWx3 ܥ/S' 	0OAcJ5dP"r':Q"aFxK j{^_JK
,[~*K?d:=sNXgC1H
da~9^ݓGG#v8x :pc֢nxL	<gԑNmQ~xkanaV31 ĂĢ"g;iEmњ{y볟lTc 0:xkanaV31 ĂĢ")B7og&ݵw{61 zLvxkanaV31 ĂĢ"wwRm<gF8F B1x/ &40000 capi_parser ;a֩;Zomu&^o pxkanaV31 ĂĢ"lۼv~]lTc ,xkanaV31 ĂĢ"h?oN=r8gxkanaV31 ĂĢ"W/'"5Jo߽"xkanaV31 ĂĢ"o3t&v2Z\F8F d]xkanaV31 ĂĢ";_m SfZ# x_ &40000 capi_parser ;a֩;Zomu&wo?=(LnT.oӶK2&5k%	xkanaV31 ĂĢ"g_m~)w̥s?rm`2٨ hDxkanaV31 ĂĢ"m3_--z	uxkanaV31 ĂĢ"':\ܾPZب /xkanaV31 ĂĢ"ɓZZ"7x5m"71 zjxkanaV31 ĂĢ".3Cd{?J]F8F u$xkanaV31 ĂĢ"MW}|z`=2scߨ 5x :.d	hULY>ӳbx 0 d֦NobH1jsx "lud??pˬ+<xkanaV31 ĂĢ"˞!=Rs;BMǉj"GDn([{{т/ xi-xkanaV31 ĂĢ"t_Z]y{x:xkanaV31 ĂĢ"}M>m'kolO/o'wkrwEv̕᝸2 vBxkanaV31 ĂĢ"G^3~Kaƍ3c/W0Q\䦾%][/]gcčMBxkanaV31 ĂĢ"JտM2,mTx}SKܨ b|xkanaV31 ĂĢ"'_y|Jڊ
'mTc |xkanaV31 ĂĢ"t_Z]y{x6x0 @"dk_headers.py Gb_P$EKGfP4\Hyx0 @"dk_headers.py Gb_P$EKGfP4\H7xH >OBAP܃)	䬑Md-iR3@"dk_headers.py )DC@{4熓P4nx4i@Gy)Uy81$ %@x Gb_P$EKGf4/x4ie5wmxv`BT\N& Zx q%C
pb4{x4ieYF7b;>vi^U+M |2x4I 2S,W_S>{},9Q+ lx4I 2SN	TYӄ:r'ՊJp68WQ_!ȉS X>x4I 2S,W_S>{},9QVD/rG?i.N]i x_x4I 2SN	TYӄ:r'} ru_xE >6^'NKThKR=#ndk_headers.py ~TvVZ$Fuɑ4\"3x :WA`HO:F4`xE >GQjHh٩R=#ndk_headers.py jI\#d0Az4"Ux{q;+49Үeb   x{q<tk-zEu7߮4ia&  e*x{qY댹lC2{51h
 Ux{q<tk-zEu7߮4ia&  ex4I 2SN	TYӄ:r'} ruHx4I 2S,<{ZG_һvp|Y/j_flt9x L39ݶqU"d]R+x 6pǞ:7l~*w֑YxxqJZ3u咭o>z0q< JxxqJ&u"^Sեt^y c_1xxqJ~qeV+|}tKz^y 9I]xxqJgbfLKR>~?1Ľ Q	x ?)ݗ٣-YJw3s7x C#"-PяՑex +˓886&_)[vxxqJ(n]7J/W ?xxqJ y'~_P]=q< kkx 5[".d&J$ῡ%x ]uTVw8*Gx SJˤ42޺8px 4&a3ެdRx Q	4@ٻxi˽⑽ZxxqJLensmI]+e|^y ǆxxqJ_,&|ZE{qĽ ק1/x HA}:A/x bIx(ACWđ@\xxqJ]K3L-*z5[<q< FxxxqJ6B]?fr}։{g#x MLɄq?u_5PxxqJezz]>s&̍N(K?s^y {x 1 xr.Uiȑ6nx ЧFiE%ZCkx[ƸqȻSlr5:A5UrS8x[Ƹq@~d~
 
Cx[ƸqHfپcԻRe׾
 x[ƸqZ*fqaS|/x -3ǴgWFǑAez-\x -hkvnR?i͙Ae	x -GDX9[1ز֭-AeQ6x[Ƹq6{O1sGL~͛A	Sfx -F%íɑAex[ƸqMMo<'pc* @x[ƸqPl͵oڬ:y]tW^
 	
xlx[ƸqȢ.bv:yTlf>DT ex -T_5dۑAewFx -H&H@AAe0x[ƸqHZWY.OͩW{c* d9x[ƸqH^lgOظն+zSVx[Ƹq|_8ݵ`r	+S x[Ƹq<y.ꍻmDT +x[ƸqȌF?O웯F|iiVe;1 Z+x[ƸqjD́=N	6[z~DT Vx[ƸqBՈM+m8cDT Ax[ƸqH75ճZ|4wrBؚ ׳k+x[ƸqȄ]-&*Nz/h;1 Ux[ƸqSi*~{^)SϦ3x[ƸqǷ/Q~wSt^x[ƸqETsulNMRVkDT n/x[ƸqU"yD<7մaLSѐx8qB%՝=a\>5x8qB	F݃6R]
qH) a	*Rx8qBȓMSiA5.G\y ŷ+x[ŸqB%s2FâdYwￖdb] JS2s:g]!}גewk6 !Nx k)B'&n{quޢ}x[̸qB<uJ\oB7 2)x d̬`/r;er/x+BUx d&X5Q.Yi`Ɉ9ڑx+ gx 2dY=&\㽽<GFdl.x[ŸqH賅S'{ZfIuzࠕzr[
 cSXx[ŸqHJϹΙm,;3n) &Txβe-"GtɁ x 9bpzrg`Hur]x7 ;}i	{qř coX;;_QO"xβe-ȢU۝oU}@or 3 AOx9 =E7;6(U:rqOQ[~gQ(}cdU!bxb ==AH!A]7040000 native_drawing JDhvwys):聆Q[~gQ(}cdU!)wxb ==AH!A]7040000 native_drawing U<m{ep+Q@,C6oMj0t!-xβe:rBLz?ͫJu(Hxβe:0nW*6|ۉϸqRF Otxβe:ݻV+f%d[`@kRF y x ˋSɫTLuJNx7 e
-.bʽ5eQw4{5UV|MP>QiFx  =uGgOhXܕQ}x  =I,4+XEhv_B[QI,x  =g0Ax-
M_s9fXQ^x  [~gQ(}cdU!˘9.xI ==AH!A]7040000 native_drawing 36(D2'(>QgH3xP 0/@N .{qř coX;;_QaHJ=By^Aۧ!(zx9 =U<m{ep+Q{:Uw7=ʷIߓ!&'xT I<t@G(iP40000 native_color_space_manager =~.Ŏ՟&]Q@b&
xβe:9Z.%M7+Yfdb 
y%e9EɩyE/N'qkb{7~w` r#Mexb =AC"-e	d,40000 native_drawing E7;6(U:rqOQaHJ=By^Aۧ!)&VxβeW5jwL;<{Ad1&E ˘9x9 =!Hsܐ7-aCzQ{:Uw7=ʷIߓ!TYfxβe/uN;?bIo_Ř4	x n(M9ї?&Hzi<Ovog3Żv!u=0^b7,ԣ^!Y40000 native_drawing OV2
o
"Q@M]2d|Rcp!lBnBx` Ovog3Żv!u=0^b7,ԣ^!Y40000 native_drawing 8!MoyQG.x9 =E7;6(U:rqOQ[~gQ(}cdU!bLx  =8!MoyQ{xβe-ïM8e	f~@g v(x` Ovog3Żv!u=0^b7,ԣ^!Y40000 native_drawing VD;zfꈓQ毶-xβe-ʖEO,9.X_ڼɁ @xβe-ʖEO,9.X_ڼɁ %x  =T_l	[4QqTxβe-=7jn	?9m{nr 3 ҙWxβe-ȣr_d}<|Pŗ"Ɂ W.x  =CA]ϻvqfE Q&]xβe-(.$~#IAgŗ3<89 	

xβe-H˪vj}i۴uUɁ 7xβe-NOռ&sX{Uߵ@g dxβe-#U?<%~r 3 ʕhx Ovog3Żv!u@?xβeA\+~pfF~F \x8 (M9ї?&Hzi<VD;zfꈓQTtxβec!$|쩒NݍSxβec.>u1ΰ[x  =U<m{ep+Q]x8 (M9ї?&Hzi<OV2
o
"QcS$x  =8!MoyQSxβe-ȃb_J_rҪɁ - x8 (M9ї?&Hzi<vsBB#ۢ{SQGx (M9ї?&Hzi</xβe-!Pˆ_V*u_g@g  Exβe-z٣5_ۛΏ79 Prxβe-Hj&vt[ξ69 1x8 (! 8A֮/_'C<@.{,#d~bלQNxβe-H/)F˶/?ci|{o@g 2{x  =p)!^${ဓQ$:Lx  ={@ژ/	JKQ{x8 (M9ї?&Hzi<E$c	qQdTSbQ樣Gx  =C ߖNڇ#y7Q|x  =e٥	RܷynDlǪ_Qf+xβe-U~8v'*fmɁ Xxβe-~gQ읦>nZ|sr 3 Ixβe-ÞD^,Q~r.Ɂ *2x7 ;e@>L{@.{,#d~bלQ浽}xx7 ;e@>L{ќlPd&t&3I`rQpx7 e
-.bʽ5eQw4{)0z?V 
bQeRx  =oX#v<aQxβe-ȡj1gW]Y~56rr 3 T.xβe-HQg%ϺyɁ jG[xβe-ȃ>Ӟ=|>(֦( x  =FRƊ_$:ͽ]uQ7xβe-HĻ?8O:RӿɁ dxβe-9JqVu/2UmYcer 3 Їmx7 q|+0?p~A{[6$vWZj2
h+QWxβe-HB¢k\\Ɂ x  =ďJcmAמQy3xβe-;㟜Pp<r㛊*qɁ 2p`x  =:xC1qXU3Q~x  ߼ۮ.鈺!\-x  =ďJcmAמQy\xβe-ZQa:k/1Ɂ ݞt\x ~({훾@.:,<rf{MyU6{`x'Z1X9 EIQb=cr{2ؠsW;C9=ȍwh桓!e=kxP y3g4arV	z{[6$vWZj2
h+Q߼ۮ.鈺!7$JxP >"þ[iN!{WǂRZyHBUQ!z}ܽ"Q }!'MxP ZU^: <%{6!A
Zl#VTQٺv}]n}R#!$,xβe:}	ߍ'sxqR6gRF NXxi >"þ[iN!{WǂRZyHBUQb_d= g4.>ςۇ=r];!z}ܽ"Q }!52Pxβe-Ҧ
:,zzɁ }xh (;@7yr!rrcRO<rx|HV :|D6{4?߅ks[Qs^)qוr9fY|U)!1/tx (M9ї?&Hzi</"xh (;@7yr!rrcRO<rx|HV :|D6{dh24nCHQs^)qוr9fY|U)!D/Lx8 f{MyU6@C9=ȍwh桓!Gx ~(;@7yr!rrcRO<r 1R$ǿ?? {b9aRj5q˓Qb\d /
[;.l=E`QI~!Q9xβe-~]jWi;l}2Ҹ~r 3 Lxβe-4V_RSt}SɁ өlyxβe-]M^Ɂ &xβe-HnYv5̼ǘR˚Ur 3 &xβe-n7Ϝ399 -Sxβe-ȿܻg(62U|Ɂ \ x  =)YeǖeHrQ
xi  1R$ǿ?? {!=]?idE&Qb\d /
[;.l=E`QI~!/x ({훾@.:,<V0xβe:hÆO_k}ǚP)# Nb\xβe-$4-8))`P
9}f@g 	xβeH!7?lҺ=sD/-rvoF 5xβe:o<Ҷ!Ee3>ፇJWx  =yե@`;`Q
Qx7 ͑+D<n|*{ٱX cQELx  =t,30S zY潓Q^{x  Z2_CQ{EӓI,*x8 ʌI^$~g۝n,>բB7;	I2kx #Seʝ$h=AΥʅұuSx  =ٱX cQvx  =dh24nCHQh91x7 ltt-_
|Sܑ{ٱX cQ5wx7 Ne_9fQ){ٱX cQA=x7 &Tzr$ o{ٱX cQRxβe-CyxܘpJ@g p0xβe-ȪL#D],2]Nd| G]xβe-d?nXE7L_cQ}ƖɁ 
x  =g|v|LT.ܬQI/x  =wk?DmоA7Q]x  =ȊmAcQ sxβe-4nػY&&*MО Q8x  =+ˍVM QF7Q^6gxβe-tѤ55p@g ̯cxβe-H`7z__}@g 2!mxβe-[;U{w5^^c@g xβe:i&6^Rys|{JѧFx  Z2_CQ{EӓI,ux  ^$̓_!,p7x  =w+IZ`^q)OdړQb//xβe-s;<=g^n튵ٲN {w@g v,x  =Ū  %,]=Q+.xβe-r/Uը7Mu??9 X,xβe-H|uדRC89 ,xβe-ObL5fJy29 2,xβe-H!}M0_Ɂ +,x  =yե@`;`Q
QEx  }>N Ўj+]ĠIExQ (sTZ%m80	#űK*m<0x,t&%=K^VpQ;lvȽ(]JP"%xβeȿ(gVFߌ Rxβe-ȼu~A:1%,nOd| A
9xβeC*cvP7|n&keП\ɸ fxβer+O)+Jjh "7xβe-c'Nbv"^e%x@g x?xβe-I+3ט&Jeh19 elx  =4e_qCa3pԓQfxβe-mN/Ӵ*$_;Yrqr 3 xβeCWmz}VH:iq: N<x5 =4e_qCa3pԓQ2gA)!.ɀDxβe-H#xo])RɁ pxβe2HҦ??#9'-G xβe-HS:,˄X&v"Ɂ BaExβe-l
_s{TmozǅL UQrx8 (gUi'ydE"ziР<*NǰGU1CyQcGxβe-J_[V/ѻ#dr 3 ǚMsx= =O!clk9ӓQ5-؊@{p{<dIpKx v&DjoԜ_}< (8.Ñ{ajhd2YOKiQ;v=i[ [V9k\pD;58JD	G%[40000 vulkan {u~ٻ\)fdrvL=Cbx  =8LrL|l]8:޳Q7/x  =$ld(o6Լ?VvQ'9x  lvȽ(]J<4xβe-uōL\o:O9hH@g ax8 ZU^: <%@ٺv}]n}R#!Hzx %[WWu#u-(x ],A5uCVx YW`E"G\© ɜQu&x7  1R$ǿ?? 	ϋ@<E8K\pAFx  =yե@`;`Q
QLxh ({훾@.:,<rf{MyU6{3M&cO[BY$QC9=ȍwh桓!31Cx  =Tv0"^!ե.dQ&xβe-x
VɁ !FSxP ZU^: <%{XYR+~̦FD~Qٺv}]n}R#!%mx  =ďJcmAמQyxP ({훾@.:,<r>"þ[iN!@!z}ܽ"Q }!E&wx  =۠2wPgg돓Q|Kx8 ({훾@.:,<u0p"yQ濘x8 y3g4arV	z@߼ۮ.鈺!xβe-HSBŉQ2#,(z~?0ir 3 [-xβe-gcj,lM5کuA@g k xh ({훾@.:,<r>"þ[iN!{(Rc'7&uV)ר6Q!z}ܽ"Q }!h2Zx  =A?	sȑB@ca8Q]	xβe-HZtOQj5ߏ,<9 ~#	xβe-Hc$SEK4};͈ 6x7 q|+0?p~A{qɽJUQJHMx7 e
-.bʽ5eQw4{4KMSU%ߓQlxβe-H\TQO}fٴ:' 'C@x  =]ʣB]<܆Q+"xβe-#Ggk*v~txr 3 rox  =OʖyN@GUѮQ8x7 e
-.bʽ5eQw4{jn:i;H^ɑY-3X&dS;QU~xβe-NWӿMV[/K(k@g {+xβe-ȲoWoMxؙd[@g T xβe-ungX5Gên@g yMx  =iB 1 9 Q;|x  =8Z 6wQXJQ+xβe-~е
9?~\{z@g +bexβe-O7
],j|Ɂ Hx ajgƈu|u[/xβe:вg߳Imh$bC !x340031Q+(-M-OO,)ILΈ/(+ON,`z+wǹ Vݤt15'4@ԓgy9z`XZT_!8jC|_SNdvAQ~E%LdU_>q߉EAQfYbI*鹹y)0=?aT9a]ZQXEi桝~<7.0KL\<-o3:7xE0.)%@CV|%Iwt=zwoW#DkCi+g&]ؓ  8;x ]'ƦKhNIX*jx eVdk~֦T*q^x7 9{ޛ'N[ؙM< '?3vvZst`RpEx{y(C幺712d(Q(# ŏ{px{yHƊ'bkj738wQF &'x{y~S"38w
ߨu bGx{yHYC|f
~jnUF Osx LB$'=*!x{y%79Ten)>u6ȭZGG,x{yțL53պP
٦ֵF :Wx MUԧoMϐ\*0?x{yH(OWwt颼Q(# чX0x{yHyQօΖGeVV^{4zQF Á\x{yimUJ!#$tX{٨u ڒkx `)=LtA,<*z6x{yBR#5J4x*(nڨu bx{yHYĲ8r:cE5ۨu cx{yȥCU&
$8}QF eX:x{yUvΙߎcR˵F x{yB#nld]ya9O$l 0x P)n<< ,Mֱ*_x 6kN;#*emx{ybMɸnڼ,4VdQF z;x{yz䬏sb;|@4KF Jhx b~y
"?~hP*mJx{ytq9Ԑ쏙x.W	ZGdDx{yȭ_o^!'xīQ7D~F qx |(A㪆m{꧘*J x{yȺ܄m%G|vJqX43Lبu {Mx{yHE^؜nëw?^Q(# dzx o@L\w︊X*)x{y\6OբxZGYsVx\ 99T'#X1r40000 av_session t?_~cىp4@r{{gT!EC١*	zx7 9M[^TȎRt3MH׹5nck)\A	Ax{yHQڴ܈y+ʘu~F {
nxr 7wfC߫d)/*40000 av_codec M[^TȎRt3M<Tֹy1~Z(04
𑝐H׹5nck)\AƁ4/x *S?vұR@x7 9)?XۅG%cz>l/M{{gT!EC[x|y<1>mjgLnl3'Au Ն0Bx|y{dvINSsCɿ&eƠ:F 
qx|yȪ(,5O[#vAu w x! (z<JρR~%Qx|y'E2ե<i	bA x|yEQRt_8ﶾ7	b/x<y qY|xNmMc/n)l:2x<yHq-ݧHʩilc^&nc0# Ŧ=j]x|iP{F Wqx$ UKw0"WcǊAby#x<yH_|\lQR&;iF`F ax6 mI3*~8bBbH(Twm!\^+l&Fx6 mgXp-sXॏqWȑɳuCyS
gYz)yGVxM{Tu	XRp&r9qYrln5.q#-bK&
	"D1	wrB(
9͐}?}~ШT:}Dl6ye~5Niݖc\jIZږb JzJC;oQ%
"x=s25ٟ̟r@M¤1l@4|&6
HtP
׬:}o̷GK~(ukݢY,0IϱU!}iC1}ri>! "r:ЩQі+ #Wk2V=k1?	CfOZ5MK;Dfҥ	g%=ww--[cJ<7v|w4zaLNHow|#&`9@b	y}k_ zÕ9nx?W_vGM FJͶMTZABą1&@z)\Q̖ x3ǚG+K(f)( $ÝkrK(lnP l$=6[y1Sv{R0߄ML(!%\6l&wZR>ZBp#aJ
&RB"ոӗ	Kk5
,J{G
YF R	BVSL}xz('aEH9'<.n=g~f(ËHǴq~U<O˳bf#bHuФa\St4ņěiΖnf7p_4HBi`D1OLX?̸@PYOVM`IIrG`OBzXM5,R%,ŹLW/F3ge蘽i(5<0˝o=}΋a42jgTeR6aiy$~Jo
hzeHPh9& `〬ڵg<U/EZ-b1u>Us;{o+:ǚPsmc.g)cykKp}}VQES)w&Xx{kCW~qdV<f<W3lx x{kCq秉^4B^hW{ O4xL 
wU$iDk* vIE@1ROQasoH!1M?); 7x{kCmrc܎Q&t	 	x yY(&\}/ʇ8J7x  ,_l2bH1K+u/x EKPTc*Pyұz-x 9@?UvB)ι ~C1`_RXZw^r̕ғ%V4@<)=1ʓ|o.h /u?,I#.20{jYtK5:8%a8_6FxFUPIV100644 utrans.h [𑁗6'$WkTx{ľ}	ɯ  x8 EKPTc*PyұxN&o:hCTzFpwH:QFx  0֫DܓӢoS3ē:{.x! {(VQμ1ҡg0/xϾ}C;}+to
b^9JɳU  ,xϾ} T<.VY}^ܾ<fUYL ~1nxtiO#N]?V0Vdd^Fw VF-x7 <[Y2佑4͆΅<huK1#ExO 5SluE*?Ii^ !^HDҀ'3TXuh܁ˌ:G$]xti¦%_XsΖ/]:}dBn~Jj^åRwV8w4kTIqIbIi1P<MWedԻFɼ [-OLx6 5#C_Ii/¿@2t)GNޑƎQ4x6 5U,9SPIikf=F]NeƎ2yxC 8DqE8rd100644 status.h m,OD>5vHs2_GxA 7iޅǵxaN100644 model.h YxR\.D*k6xu mHD+.4m
=R=m"I!, 100644 arkweb_type.h sXMxT0Eh=NQrA94i`W3]xiCH`wQϏvlm);_| /x7 mu 
]{3M%!b(ux3 oh 1Ձ.1~|vwNtNP&Ze7xiC__<j{eotꙨ> 9`x4 ? 
yq3IvNG`UBͱS/>c::61rH#x q?c1
y.v1S=#/<48zL%1100644 arkweb_type.h _Op+M㔶r` mV.Mo/(=xR=!!^m?=	XJ<~r6<@xu ?c1
y.v1S=#/<48zL%1100644 arkweb_type.h v2j!:2" 	NT*wsQutj^ϝ34Dxu ?c1
y.v1S=#/<48zL%1100644 arkweb_type.h _Op+M㔶r` NpJ`8#55xu ?w~ 2C0mm!x>LrDxS=#/<48zL%1100644 arkweb_type.h v2j!:2" 	NR,"#fFqS.%)x5 )zExOCӂVL=!|U0xSRrA}mx5 )jH83q-!=!-PCcº{O5F'1xi2,śVMB-g+s c C]xiC/'GMI`׼; xL -bEB3_^SBjZxu1\ـ=!3#q\nۢg{Wq+nv#ax5 )%+%twDv]zUE=!\
c`U8<B0%xd ?hes1B"?~g`S9Cz<̿K 4BJ[{)Ǘiы6b-\=!Z6O>{3)31V.6	x m?BL^+ɫJy\r%H100644 arkweb_interface.h 7>r) TR؂r0/I<įJmXBIJERlw3W<)ԓ=!'duPRf@h<Cx5 )l^*)Ը+>~=![=6g9JHSqg; x5 )zExOCӂVL=!ι,"8gAl_59p4,V;Dxi&Hn=hr;Q4ٖ ΃gx #/<48zL%1x S,`tꥄ#8`m-x4 ?L_ϱC[95Sxx-bD,^uBxO ?
rMr2tyIQS9Cz<̿K 4B. ~r$>WhA=5$$]xi"CE?dZ_,<3pc<# KxiCH[0+{%z7&T! B2xiL+^O^c`yF }^xiHFOW.ktžh TXxiO||R @WxiC	_%Ng2_aաڊwxiCȎ{vTU3~72 \'xiChxI{2^jszչ~s Qx Y֩we"%ΞF~x |OO0n<E-xi&'=狊dV=
o:?q-) \x -bEB3_^SEx ܑompKRFz@&rx7 إY^?ZvrBT8?S"uE)hZ!a=5[qFxL ?L^+ɫJy\r%HST	i!BYtӅ=! |qt5MWY%7 x ؂r0/I<įJmX3x ؂r0/I<įJmX34xie_ZZ;N}+Aio ,Xx5 )IJERlw3W<)ԓ=!}@-j=`
\f*+2VAgxiCH#Y	\1&k6뎶 x3 *a:'AD+`"KAw}@-j=`
\f*+2eRxP mߩuC3^ֱ7{yc%q=އ4qΓ+g{]%]{LOؓ=5Q&Jxie˅So;䱷2r *	ux l?Bd0uM&100644 arkweb_interface.h ŗsMݗl@:{ mk]!H4Ĝ mX{$8셞ghmROK=!yOW+LX CMx f̆z}}f3\Oܑ69-xiemSVDVj㹯4y7 *xierk䂛]1}ӂk 7*xie"*Yʕ_WYUb>y7 xiBi.ZLrϿ^sAۉ3xz ?B48z9dߒ100644 arkweb_interface.h 痠>:=սȆ{+oߕۤ96
u(.=!ww[`H-<x  )LEzskl՝L@=52$:xP m7>r) T{_Op+M㔶r` LEzskl՝L@=5e'	x l?Bd0uM&100644 arkweb_interface.h +E$휑6x@rdhVQ|z{ͫ,ٝ+;$8셞ghmROK=!yOW+LX<D9x3 mߩuC3^ֱ7{}<|h0|SR{xL ?L^+ɫJy\r%HS+g{]%]{LOؓ=!9R=FrBG$E[#?x7 m痠>:=սȆ{{yc%q=އ4qΓb..vxL ?48z9dߒS+oߕۤ96
u(.=!ww[`H-:'gBxi2,śVMB-g+s c Cix3 A8/r
C"Ln9pUC	5U(\Azl?;?i?S<XCx3 A4tMŢuBHC1UC)L)iC~u	x"3Nx= v6<OB?Ǵ}J100644 want.h 戃nƁ-f$Q;X56Lx= v6os[ĶyW100644 want.h I
T`IScZ\U=Ix F$100644 BUILD.gn 5-V OsZQ.$ ?W;ⶪ,-#a=_Y8 XJ̥عP{XIϑ	$Ҿs<ӖoRMɡӯ5Ko
manager.h .i0^T,Q+[bT!xzED)E/=GH[I]iDOím[h8҂ab-1Ma#qDg<b3KyI?3`GExm9NK(;}]er>=A"V0\8ҍ1
MKLO-7k)q8~44<p&m fW;x tDM{>ڏq"L0~[Xgwݍ(G9ۓo*2lǹ'17?fo 
/~ps㐓o 
G*YP߈Ѡk5)+@`UxU gc/^q8XHk!J|y3wbυƅAlo 
gN<ݑJGģ7)+i&99xk $100644 BUILD.gn  98_N<RNF٥$ |`d`fz|36>ձX-!dispatcher.h NR^#N%jt*o*8
3x T$100644 BUILD.gn .
OD8cIcCAP`_ެ$ saU(ayHk#4Xo1~`bgGiБ?Q<>!&S@e`lz	RY\@{jyvo 
AN3xcl{=Z)+lG3x {$100644 BUILD.gn  98_N<RNF٥$ vOg4 /Av2`Xi:ZаK o!dispatcher.h 4*:v;bY a|oQ3bGxU Dm%D'"r˱Xs`7/,gROv&{o#Xctu0lut\↓of'Edx$ gr.DgςEFto=2x< DZϙ+ڣľ&ZX:J0(^6Sڽqَo9Jx= [JҭaKcf:o#SE&',C̈́o~Kx$ /_V9~z.iCJo+J2x< DZ&_:R8WYu#X:InՅyI&oJx$ 4*:v;bY a|o32x9 D3b#v
Sx!Xi:ZаK o8
Gx DvOg4 /Av2`X3
xN DZ^o#
`@	XA+W#B'Dԑ?n	VśٝˁSޑ?!wxF $100644 BUILD.gn i$"مyVIa#ՓH$
N@v|Fe6f+o3LxP &rd^9W:d=R(Ir"s>׺g
ǝB*+qӋauTַ5+&%_xL $100644 BUILD.gn :9իŕuu$s'K]AC+b9x9 .Y\@{jyvB*AN3xcl{=Z瓀+M"x t$100644 BUILD.gn i$"مyVIa#ՓH$s.h u-Do"Q
 5(extension_ability.h (;n8eg7iJ#N@v|Fe6f+w9<x u.Y4f74_DօGx u.Y4f74_DtxD $100644 BUILD.gn șZ%>^cPH}($Q.Y4f74_DfUSx7 4{m<w2"Çu瑮I7Y%`b(FEx7 uVkEkk2KV \J! 9"oKB+iEx{iȷ]'/qEGN qx7 /o<2vkK3Iv	yZjCȳa]@!)#^Fb
Th6x7 {2?y&H鑪{6Iv	yZjCȳa]@!)#^Fb5(Fx ٮ6:;z5*!rx [ދ\C2 #e1/pFx6 u-|Tg],e66OFQ?INsU5pSB0,+Ix6 uVkEkk2KV \QGi|6C|KUB+Px4iBHyIFq.
[+D1LGb v{x4iBȍ%7f-q13ι[/ob X&xN D|.Ԧ2k=Ӷ;=X ySըa8jV]Q({MUFOCM+%p]xN DsaU(ayHk#4Xtp?bXaUQC	._6 +"9x4iHoNVJr?H[rĈ udx4iBȍz	ضLY'"o^Ӊ 2x6 uC6|uu%[%`SI#Q?INsU5pSB0,+ppx XtÚc0IJ4⺑+!,x4iBC9Vkslc9co	 u*x4i-ꧻKo8ŉKx uuomɶ?Mx340031Qp
qKc|;#7E&@Sc8S?{(<YlC)9I)Izy)zYy.ckl}h(~ (A1}xH uu2Cy~5QW_ 100644 libhidebug.ndk.json ,6CnڎT :UfHZpPVx uuabKSF%9ǂ-`FxbbMoۅg\rbu- oxbb-[8ÏQo=PxH olxbbMwAeSRCg k1FxbbM<iIL-
*Rꂳ8 
FoxbbMdjPג#B'f*] )x! f2[÷x惒WO1$
RL/xbbMdSKP\xJ)b q'x6 ɬ& fƁ
?^1盳`SRIaxbbM˚˦t-	<n` CoxbbMdSKP\xJ)b q'xbbM
6M[qG	 a>x6 4q]{0,bt!Ҿ
1uni"O\,Bs{x6 îGH_hRW1Τ[G	/wj~|x
xbb_ޭAſ_<DCT W.xbbMd#7I 3#9 xbbMGi^˔~/o9t xbb_Nђoњ#!>1ݫpg* .xbbMH+ͅc*{oQY' lx\ +Vu z;=1"stream_base.h >!9YㅯgJq19$8V/iԤZ'tx6 >!9YㅯgJq1ǰ}t}"rEr2xbbMEݍ%{~/~ Zxi =z7!*o`1"0(AsE
+dq پ1{D	gQ VURk51~9 j6ԋ,5Fx+ xbb%b[8ÏQo=PxH &xD z"stream_base.h [ q 48;㕒]ȑ1ђZ0UHS͒:	SxxqBȁK,]%v^vyn#%DCU  x6 	gQ VURk51ѽchNg>D5qĚIrxxqB*#M5LmXu|lOY0x! -*m@#XƾLiWa=1$7/x y llp}ɫq)xxqBHZ:#Γ%l)n4Pxz n0x! v0T.I3RΑ1$/xxq~5:N!.byG~! Sxxq~:KuYf7t똺
쪘 
{x! հ恡ÿW1$*kyx )KOx" ۀ4d\(wIOq+KEx cRkPUrK"ax  Z}~}7*NN?̓n2x R)`iBn8s{p~Նd\x[ȲeK92sz71FzFo &x% +dkSRT|5NT+2y6p;x[riX+'a ;W0Xx% Hm.kREŮ+䗄WR]\x% Hm.kREŮ+䗄WSԠ]\dx SDdWj(cy+8kx[yLGc>j(x[y# 2=x[yX_FM[Uk̩쮞1 ѕmx# 1]M.N-,۷&H8ctx C3f2 W12!x CȋEJ^WʵЭEWޚNxq}-]QƎU^JiL yxqHQK*m`{ 0x$ 1arkui y$?˒Zn5ʑ0x "ߒɛeW25!Ԩv~.;x Qj.^ᕦ2α㱣)@ix wƔlu(	5 _Gx# L5'm+ C.kzx:usLk<x; L5'm+i,'V_5<T$7(o\xeR's3 3z1x SP[l_x" SDdWj(cy*{*x[ Hm.kREŮ+䗄8[|j  _ktMjx%4{*raphic }~}7*NN?̓1c2%x# 1aptS=懛20jurwMxeEFm6n}\Li䧌} jzxreD!& BBx) 1aDlobal 60*괁ٓՀjx =(5lK/A;+(ZCx̴iTbQvi&C$UL	㸴çmb txtiBH$UL	㸴çmb #xqgٟŃB^N[DmU81U<x, }"bundlemanager [)=v0Kwܪ;x. ~#ackgroundtasks qnLtSFw<x+ Hmultimedia tS=懛20jurBcqfK>x[4A\vA!/'Xazя-d= +gix 		|~x- Q#backgroundtasks  S?k3g.>JC:x! +dkSRT|5NTK9Vljx 1Qz (lFxd:8pb`w 
]xd:8pb`ƫë3;>phb֨ϕ 7ixdz8w hxd`P/RYZT̠R!Ik79$oʠsUx) drivers =q
!ҖyR[7x) drivers qV;ȵ2)yR|&iExdz8pb Yx! 1QDIzj"t,	x! 1Qu7R3`I  "a,9xdz8pb`juW^So<\|ẉϕ *gx! 1Q?*lqΙ!"D
x! 1Q);eYt9/F"Gxdz8aƫë3;>phb֨ϕ rx6 7pwaA'LjH}KesW{Ci\軵Zl"qx }Z'b#?sC	+՗x;xq:5ի	
pbl 2x;xqȥ7~ֶFI');>ysl ՗f]x;X9Q 	vfgx;Ƹq 	wx;ƸqBȇU&_^QNɊҥ Z>x 7dI/) y&Kkx 7M5V=Ҷ5vس(K^x 7AoEW@KEx 7nQ;nsΜu7K^rx{qU\&ygopӶ$_bl jrx 7OS6N6ҡ1&}Kx{qĘXޕ}Oxzx>7X&D ɿJx{qUY`,5yvD ux 7滟
"EZn+Ut:K"x{qSwy'f<K0{6 +x{qH^m~ϜE,vN͒p|5{6 sUx{qȁ(;.W
bsl êx{qˎ'3?iۭr%gl %)x 7]8gĸMqL-XlKu?xA +dkSRT|5NT+Tdrivers $]&&."fyRm\TPx *aƶόCymr|x``.RqKP -i\ @Px a5&KǬ*BƤٝur-x ao|W[}[us,x aqnLtSFuOwxqTbQvi&C̚O8dͪ41|6 j(xqHGK]L*Xq +x0 1&DataProtectionKit .~t@ _D@WJix0 1&DataProtectionKit `*^U">Wsv'x0 1&DataProtectionKit $ztӶ<̴ܴsW^fxqKbIb@Q~IjrIf~wf	VyJ,y0T> )#xqKbIb@Q~IjrIf~wf	c₅zZwj2 `xqHw$L/wv,{8tj MPx ľFRSEFx hOꉧZ (&tx:u~[3kow(:hδAF 9_ x ܦvv$hҡro~QJNx c}9.ݫ]̈́!IH|x 38.'NRĳu䵱k*x:u~Vj+}O72?q僌 Vx O02`P^sh	>x FΊMt}^+G2x:u~Yk\H^x:u~|I66n/_AF Ø
x Q%CsU(E!ѽ8x f)szIƗMvb%Qfx ALNy iKԘ=P{|x:u~7-ꒋ*fL|sѼ(x rpyt`&² bXI,xS L\sPMbʮ ^O OÀ_Bœ`N!F;/l|ⓢYq'x{2͜L6˳3N	 `r#x! >6X0uf6QBR(hhx[̴Q ~xkf8!Kb}?g֮s[ZPQbu Σ7*xkf8!K5%ǯ.M92y:7+	YxkfZ8!KwiYoa7ђg[xɸqZ lxɸqN,{9+Uu ڛAhx[ɸqȴoqZU+kΈ\3eꃉ: fpx[ϸqHbMTK,)VGxNO  N
Ix[ϸqC[.v]WaD Hx GDt7x[ϸqȥ8/lV=zyE	 9.x[ϸq$/Jh?JrUqD Yx ;ۅ͕%EkiZO`x[ϸqB|Vo	gW56آ Cx[ϸqHf[u>^4j$	 '0x[ϸqB|Vo	gW56آ CVx[ϸqȮFEi_?^gD 'Ux ;kٻ@ң\O`xx[ϸqlR.׶KEw3~u 8A-x[ϸqlSw~>#W+ d(x[ϸql׭;7>:I݋GgOx[ϸql%aNK  u
'x[ϸqluJ>Z+]ܜmYͷk `/xO C);;W_dբ0)100644 os_account_common.h "B2/cM &sA'*;xP 6(%kݢ:2_JBuB3̡74<ZP 	KO }=f>+&[nx 6(%kݢ:2_J~{[H1nJ>d".BuB3̡74<ZP 	KO }=f>+)P "!|*U6J<q	bJ:~x 6(%kݢ:2_Jҫ?xO Ciu5vЬHQ*%<[100644 os_account_common.h Is-̸ml	* 8x" ;bͻo]KJ;>2xep;1EJ&lU9# ;xe_]qyo:lk㗾r3F ʑ	gx g6P^R.<F4yRb.~J}~t (°)$T|MݷtwGj<ۑC*d̙<"7100644 os_account_common.h 3J0<w8W;a*Ql*zExeȚI(ycFg O:x9 6P^R.<F4yRb.~JݷtwGj<ۑ>ƾPsxeR%W?1)	mN4* x: 66֓&hJ~waS̓Ws,>[fIx 6|#)ڀ2p'iJfevx 6d|>6s*VJI#x 6qϔ8&2}wJUQx 6{g-BPJ_rx: 6W>"\9\tM LȑJ~w	:_9kgg#>~lIx" ;bͻo]KJ;>2?xL  @fDį'J1)"Z100644 ohprint.ndk.json LOpCSQ{ݓ`Гax" waS̓Ws,>6dAx 6R&ܯۻk^9J!+:x   BuB3̡74[ixR 6aH@;ڑbO
6 J~8򉣏@ʟm#c(~N,4j58E=#>>x 69PΤ3mJ?lxeCȚU~t$Lfmzum5 ΁xeNbco/e_oFg x 6,ro(7$mJ5xen򾐌}[m]|aFg 
,xe\÷oVo2M|Fg ƻ]+xevڥy{|]^x" ݷtwGj<ۑ>O%IxD)E/=APƝp_M6Ɍ@&@ZWpq?ڧ~leD{7z=c h, )xED)E/=APƝp_M6Ɍ@Ux xe¶ί
35}oelr|;Fg ה,Ex 63IQa
|JsxED)E/=bz>fc˹UF& r0|-xeW'KNN^;G}W%cJ+-[+}XͲ:mݗpC3Ҽ<ږ=Z򾧉'+R*/M/N-*LN<.oC%=Ք~ )9GDxeW'KNN^;G}3F ppxeEyx#qW笏5o6zU2殴2ڲr߇,Jx}	740031Q/OLN/+O`m%{xҿ.ԢT^!;Q"3PMn ?;BxeX-&쯎=u'`Fg qnx 64cI043TsyJ߽xeGz;.&Ysu؋^Hx 6h|A. j=֙Jm@4xeHSl"9J ,xeHҙ6MdY[^O_x 6@%eiu/۱J@3x 6\jT; [-m}ұJAxe הkiyK 	jxc 62Un扯TL$+\H-J@2Þ%*7X^100644 ohprint.ndk.json $jM,zyf`кE'rxO $100644 BUILD.gn wuY"%J9ohprint.h ֺ?s|4,#rOxL  @fDį'J1)"Z100644 ohprint.ndk.json LOpCSQ{ݓ`Гa*x   fDį'J1)"Z4׌YxED)E/=A';%8zw'Uӊm%1UN 攗U0	M~/QPW0{G]bm+~25M  i^<Gx;˴YD)E/=ooN(6o\JaʒU,us2J2sSS2SRyx.L9A|ރ:YþkAFєp\!;du>JD{)= 5xf $100644 BUILD.gn %<JD?h$ s_account.h }ol,<HŻa7G3a {? Xß'}x[|D)E/=WxC/Zjb 
yey%qr䶣<պ;U _x|yQy:ׇ˲kW;# s+x 2Þ%*7X^WxȼED)E/=A';%8zw'U%%Uge004[Յ~^x-Is6/%[/8?aJ}5<*^q"# 7 2x|y['O}/8
^Ɍ ]x3 :2yxt{RW+9XAnfbw]\
 2x3 qKr_?oJD^~ {ҎاpҝbN\h蘦BxJ g@IRN䛖nX!x"(100644 ohprint.ndk.json p21WGu^LőW4 Xx3 OXh}>YCdu|^ .IŒͨ07xg $100644 BUILD.gn v|Gq)hhQ$8򉣏@ʟm#c(ndk.json ].n.{6h>(i!$<xef9\?ҥO~vσf 0?9x4 6&vȋ#tJɒ'}'J1Yl
OWgLY
x" waS̓Ws,>6dA;x! {[H1nJ>d">rkxeȓ>
yKwV/ nxP 6OHЧb'n7mx}E;JBuB3̡74<ZP 	KO }=f>+%x
`xep;1EJ&lU91ѫNdjgGk6k]Rb?],5-fGYǪlf|640031Q/OLN/+O`xsGD3;rgdj*/M/N-*LNp㚒b:P3/ByɃ D8xxQ 32RB˧^fQVSraì?'O  i%TiqxǸqİ x <}H{8[='ґPzCx͸qG\uVbg%:& IPxúuIW̩e|h`[ "}x 2Cg۽ռ5Fv`,xúuHϾW_}Z_\+1p硴eneL Yx4 2-"LRe,НFb+	"O8yiQS4@x 2t+@HPfn8IFvSLxúulWj{^w{%lqⶍneL }yx 2U }{0ETȊkF }ª?Q܃>zQRt+M []Gѓ	!~,9%Z;45ýJ<0W=	xúuȧM8\?(Qi|Q{F2& A6xúut.>YMk^`[ VcxúuJK
y=Kf߲ѭ	 x 2y~)lV
GaFvl?xúuȲ/E-{7>m7/簛F2& ̋lxúuLGQu3Z[6cuF2& ɛxúutYoT>%x5#ʘ =iFxúu7]Zؽk/2_"˽ѭ	 B!sxúuZ7Z~tmF2&  xúuHfOTmWh2k]>n3k[ <MxúuHnϫ%J:/W*6V Mx8 2M<E)f˱F2W2!A7 0bGxúuȔ0xk^޶͕eʘ 	7+x 2-f\\|ϱFvnXx 26з܀ xHߜRKS(,F *$,>pM)zv*vkBzQ(H@W򗅝K+ڕޱ4}NZ/gg}yC+	hk0Z:.x8 2Qb&=\U݊F2ExRr&Q0
x&UxúuւOܰ+XQrTm[ ?xúuȋ5_2x7_{Wz[ ҃xúuHOХ}">ؐh`y$ݱzF2& !Fx 2cimoX®+iFv.x4 2TW_Qˋ|貝{Fb5tTQ$e+f ;J=x4 2pįyˋil.Fb+	"O8yiQS%xM 2?U7w=$u9FZi<u1}-	@kTƓ+	"O8yiQSƩ%]xúuHoG"5ʘ KYx8 2XGH?^Ǒ$F10)<pΟ1?YYGx8 2P
N#-aJFa?dD@ר=={]_x8 2hyh&WұFZi<u1}-	@kTƓ}OTxúuHiЦfWʘ YsxúuHN#>Z1m:7F2& 'ddxf 2$,VC	ԂSF.a'<Nf306zIɞSmPrQIf^O9V}~ʊL/"Yx8 2f9~LA؁F
;̪!脣.:ӾՓ]_ xúuHOd&*M~b/F2& LxúuH;JJLzt%r[ 
xxúuHש/~Wvm-P00v[ y1$x 2ȣM3x0?h	LFv,Rxúu>FgDd'̓Z7k[ rjx4 2n0QJESTBFb&mRs7Yj	SO7]x8 2Ҡ6f˨&
*X[GF
;̪!脣.:ӾՓ]_ܩ$x4 2u\edT;K˔aSFb+	"O8yiQSxpgx4 2K,`9TmfFb&mRs7Yj	z*x 2I1*T~r"ܝ{FvO;Xx4 2&O&		g,V*\W훱Fb&mRs7Yj	xúu|[S>18bF2& Gx4 2="e!;ړV7V@?LFbmJk;RE`1G 
xM 2s!:/;Fс^FYNH*y{&mRs7Yj	&ffxM 2!I`yT1_χɭFViEE9'l%&&mRs7Yj	E8#(x 2Pd@$r#FvtVxM 2W5ɺ'j'\ HF10)<pΟ1?YY+	"O8yiQS[#2xM 2]ƚʃX'0>F10)<pΟ1?YY^O9V}~ʊ*#fx4 2RE\gu &͔FbmJk;RE`1-p	x i2cHIoٸ E/WF }ª?Q܃>zQRt+M []Gѓ	!~,9{%Z;45ýJ<!Q(L@/n2y\F3xúuO%j7$LWn[ 8Q_xúu%lzRĲ?(p;v8rBF2& Ãxúuy/H.}ʘ H7xúushWvF2& Cmcxúu2?;Ztj9nʘ Exúu6Pp䇕}3|S{ſ:[F2& ɰtx 2!*ҭS3 捥ѯFvӇ_.x8 2$ecڒI1U)F10)<pΟ1?YYFx8 2W$O,J,bCF2	hk0%lx8 2uys|Hԕ.GޱFYNH*y{#3x9 2LC݄>zbEF.#E[O<om鳈4
@{x OF100644 BUILD.gn xkZ:+dm<9 40000 include 3q<u#l+F c҂M>A\ 1+zQVXLt@f,ߕ#E[O<om铈Zo:pI[,bxG.Jxe 2dVaZ\UF!C:+rr;ˮel{WAfkҫ)1WhPF'aQ>{5Scgr.{x4 2
Io>IK(E/j6	FbhPF'aQ>{5Sc>x9 2*Eww<?Gt !4F./-d1b1Dj&pg4xP 25:!IVEF(H@W򗅝K+ڕޱViEE9'l%&&ojxúuȗ/J\LgeUB˒t-61 	vxP 2
- .-VA 1FF!C:+rr;ˮel{WAfkҫ)1Wc#_xúuM>\'Ѳ2Mʘ D~Sxd F100644 BUILD.gn 3v9Z%w40000 include 2</}C(cڒZֱFbhPF'aQ>{5ScO(Fxúu/M*~ɉvѹzF2& 6rx4 2ܫRԪw؈Аd.FbhPF'aQ>{5Scl25x4 2}Jd;$ FbhPF'aQ>{5Scexx 9F100644 BUILD.gn ^
 SkrD40000 include |!tEia`yF c&e$qVzQiKn+:U 햱;˰$f[2oO%Tý@,ZGn4G`%V}zxúuHKwTr371 
&xe 2vE
MfeF>л(-FCPG2z޴G}71'c\L< ;D$<1, x8 2>_&^O!ԔXFKv+e	& ͤ,gxúu
] TgsF$OTfV 

%x Q23V0ȢxPrjhشF c҂M>A\ 1+zQVXLt@f,ߕ#E[O<om铈ZKv+e	& 6zIɞSmPrQIfhPF'aQ>{5Sc9Ks	=x jF100644 BUILD.gn 3v9Z%w40000 include >3{P)OFCPG2z޴G}71'c\L< ;D$<1@O$xúuH]Ksֿe<|.%u_x7Ae[ Pxúuڞvetf~RPDtneL ߖ|x 2ʚ@#OiaDrͱFvZx 26gLb[ƱFv[xúuH$SMN߭5c~ܽѭ	 ̜IxL 2=5:qk1h?F<F63B07/7#?&LrC,8o j[x4 2i᎓Ij1B5FbvaY$TtܷQx7 2s*kAIzH\תFCPG2z޴G}wx 27Xќփe+DFv
<txúuW7|J
\tޞv9ʘ 3 x4 2Z@TyIRL@|۱Fb/&C(,߃3L/bx4 2
(lbTy)RKFb_*c6c],=w߶olC.x4 2K|ġeVe@Ɔv]OnFbg *-0R_#QgBCx 2yRӧd>Fv1-xúu
&kߕ//ScOT? zE xe 2vI(8Lv@§ZJFY̗
lE\%_ڮzNF2
(P"ʓ$M + 7VT2,txúu>]~K?)e_LF2& kxúuHnwQ&RxLfe_Ƽ/m[ Kx8 2d"d[,wؖF]N0t7.LWy7$)Psx4 VXLt@f,5iSfԜ*#qQ6'[Bx4 2s7
yq@~FbhPF'aQ>{5Sc*)x8 2/o@+42H	Fo:pI[,bxG.ƻhyGxúu5z,s>WF2& A=x4 2lcek+t=Fbt{ơoVT_TFV-W-Cx8 2qo<\w2t6F71'c\ƵX	xúuӂ)e:zEk[ 9rx7 2uuEW^1s̾}F<F63B07/7:eEx4 2&6|r;ʘ#DFbL< ;D$<1zex 2؞fq
^4FvFpxúuc{^Xi>7d+e[ xúuvمWD3K+n9y(F2& %Gx4 2]7k)Mr~FbvaY$TtܷHx 2섆OPh (
Fvj.xúu#o
TV?YK/GcF2& $Rlx8 2ryWO(SپdFKv+e	& ?T3xúD)E/=vɻ|[}"" Bf^rNiJ*l'ϜRa.ʘ HZ>x 9F100644 BUILD.gn 3v9Z%w40000 include 0M׃Vcz[NO^LF c҂M>A\ 1+zQCPG2z޴G}71'c\6zIɞSmPrQIf367t% ˫k9Ru]x 9F100644 BUILD.gn 3v9Z%w40000 include ?Kc}3SGJF c҂M>A\ 1+zQCPG2z޴G}71'c\6zIɞSmPrQIf.@QoI{TN2x4 2?zV=nu5Fb$x ANZSJp>uxúuHm_~p/Yʘ $!x 2`7	:E鱗G0FvOx7 2[P#i_y{F4dewYg9-3U6x4 2u\R	bSҧڱFb$x ANZSJp>+Xx4 2DWtaFb$x ANZSJp>ox &F100644 BUILD.gn &w:	 K> /I[40000 include G=(-fJ*
=\>O1zQ^?%*iO $ƱV.<Fo|p֋O<YS_F 0A?RED :}40000 ndk_test_example ?p.KX=xa5ׇ;\l&x4 2l_4Eg,aFbJik2ALQmU3aix4 2WCp<5UFb+5>ro/QCx4 2WYP6.Uznz>TѱFbdHQL_* -')*x 9F100644 BUILD.gn 3v9Z%w40000 include ɖ^E)'=Q7B푑F c҂M>A\ 1+zQCPG2z޴G}71'c\6zIɞSmPrQIfx#]mi	[B]y05=#Q<nx4 2E<Gv:v(Fbx#]mi	[B]y05=1x 9F100644 BUILD.gn 3v9Z%w40000 include ,2>A>.3֑F c҂M>A\ 1+zQCPG2z޴G}71'c\6zIɞSmPrQIfx#]mi	[B]y05=ZQx4 2L:$gn<Fbx#]mi	[B]y05=M0x 2΁$h!,rŃFv.z	x NF100644 BUILD.gn 3v9Z%w40000 include E&-"FF c҂M>A\ 1+zQCPG2z޴G}71'c\6zIɞSmPrQIf0ǚIx4 2{ҭ抰AuӰӎKFb367t% ˫kR]x7 2vS_vNʡWN2FiKn+:U 햱6#xúuWվ׏®ʘ ;	x 2,O[)!ڈSFvtxúu#۬7u}aHS>F2& Wp]xkama`$rL߭MZĵ~ 7	x4 2T񧦧lc3啱FokfO-ÇxpMLxka2H1Ͳq΅ʞ/ömzeeF7a& ӧxxka2H͙ӿ[߿)kF7a& f$x4 2\3m2m6FokfO-ÇxpMCggxkama`$үe汒o֒z/(f ``x4 2jh=s)_}Tz_茱FokfO-ÇxpM,jVxkama`$rF]b[hz6J 'x z2OWFqBUFQ3Q$ea¹u_d&(/,bƎT2OurGm0O>C)Y+S?t8xkama`$2e'?Mr۰ÍnvL Fdxkama`$Vgb#ŏY61 @<xkama`$f8YBea6|l xxre(ȭDMkRqqBvedM& ӈL-xre+HԏG7ܻMwwLbv_& LUxɲD)E/=av܌~s)u3쫒G\L@!3/94%!:`e?de^e5Ԕ̤<l<N6;*k>#bq:%<2GR]_fW33[;a
Gi36ϟ(6crrIiQ*sU|r{;Ld2  U]x4 2iXckFb|w_|1FM+擢!HkZ`{Rx4 2&}vsSO~涄/3\0[FM+擢!HkZ`탴=x4 24;郀:G,i:FokfO-ÇxpMeu1xɲD)E/=av܌~s)u3쫒G\L@!3/94%ƢY\&c`WQ8Ԕ̤<l<N6;*k>#靧teUom\("lE*͈6Z۰>r%EWE"7dZ}3YIFDSg~Q_{=(Xڮ h~x 2ʎ(Af 4SFv4~x4 2tͪ*2`0INznHFokfO-ÇxpM`Ax4 2cwQX`6BeFokfO-ÇxpMixkama`$HpIt:y
Z͎	 !ixreȓc["X$BߪGx0 ]Rxkama`$coS0|qp2k Sxm 2)غmL0Ƅ2ΑFQ^?%*iO $ƱV.<Fo|p֋O<Ym±QZ9Wg=fs9Z5Y+w0Oxm 2Mdwe<2}UO3KFQ^?%*iO $ƱV.<Fo|p֋O<Ym±QZ9Wg=fs9Z5Y+/4Kxm 2a:8=FQ|RzdC	XoV.<Fo|p֋O<Ym±QZ9Wg=fs9Z5Y+
1	GxU ŰL2*x7<`KV.<Fo|p֋O<Ymw7O~ifkՖY+'^+xm 2dzߚ,	3<@FQŰL2*x7<`KV.<Fo|p֋O<Ym±QZ9Wg=fs9Z5Y+P1'xm 2q8EQM*FQŰL2*x7<`KV.<Fo|p֋O<Ymw7O~ifkՖY+w2#xm 2f"$\ВΖ*>FQŰL2*x7<`KV.<Fo|p֋O<Ymw7O~ifkՖY+f1xh F100644 BUILD.gn _SQOo4BO40000 include 甩/6%Ԙl=x{FvRmIo&bsY+)xh F100644 BUILD.gn m[M7Huҵ40000 include 8W2N%KRmF8[dPfTY+-:xQ 2~vk7JH7OFvV)F~eQ_k³'RED :}Y+
^&>xkama`$bFȢgsVTyjo /LJxkama`$؜7Qz-goc>]ݷ͎	 	vxkama`$$mxP22mtc "xkama`$z_˔vە= 0,xkama`$R{e˰[mn$͎	 }x7 2FF+O/`vFQ^?%*iO $ƱYAGxkama`$*dEGw>f3T_f x 2a¡ӛKF>xEx8 2cHk<F±QZ9Wg=fs9Z5Y+xka}fh``fb㢗pjɰKjsl&^]zk{ PK)MIer?Qdoȧ&O<xɑL "xkamaU140031Qp
qKcا&܊9t}{W?~ܨ (V9xh F100644 BUILD.gn &w:	 K> /I[40000 include ,D˷`pqF0O>C)Y++T0xkamaU140031Qp
qKcZ~8њN}㮍*	L ^QxV F100644 BUILD.gn "ё9
?vAR40000 include ڃWzu-G˝F8Z+#)6x{fh``fb㢗Ё@&Nbsʽ31 ̼ҔTnp~+U\3}Rgr'de1[}Ʋ[l_/&9H*x&.=)Qo'W)z7ǝ{rc99I9MZHDH*Ŵ+xVM>Ȩ oNSzx{y*~!/hx>m# &x 2&4b+{Kk#FgTx{D)E/=a?W=/q~b[R PK)MIex+i_⤂u5Zݖ1 v _x8 22k`pY:~)F`k">FGSNK
\+b BGxkgng`$Rs/r!ntsd rxkg>fh``fb㢗l(Ykÿ/9lb 
y9)᫟jp.{58Z+&9M<p F!Ox6 28XvŒuofFUP	>N^<Pԛd8Vx6 2B/зOic+ޤ9ݿFU˛1s4@nsy^Ñءx8 2v9=ԺNkSoaF398z#0q\+OQx jKUʌ2!yB̪9xkgng`$b1C(I_JgNk͑ sx8 2,D˷`pqF0O>C)Y+ ::xkama`$rɔccæI,Z=#FyF7;& Hx 2&4b+{Kk#Fgvx{yHV+TwۨN޴n9"x 2K~{םK$TuܼF&%.x 2d|o@:F%H:xkamaU140031Qp
qKc8!i_Ww;6+mTI` 0MEx 

[ȯ~$.u87B*F %1O;40000 avplayer 	#*9'ǜ/><.$ew <
100644 avrecorder.h le)pD\N.G|ޓ>?Ϸ!
<)U)O40000 avscreen_capture wpX%I5%ڳtڴ\K?hFUndSx: 


q`M0Ơ}:f[Zkki6x> 

wpX%I5%ڳ|2B<FqB~khF&x  

vo'S7TF!:dW$Ux{k9vYdaOT=/M	Q3
Hy+б[tbZ}[|<bܠ9e;El_j^Vb1)yEڦ'##6491(ɿsLX?E0tC3ĲԒbݭ7䫢ۓWR\]ANbejPghݯET?a,de5UOi_t{?^_6sI5ɯ).KDv
|c.ʸLGe숷k'?frxtgSU6l^qsӜoϤa~f)q;&vI7zD},y&rV2{.(\]Kw_-99EV1_M,!ygm-2J3RpVTU{qpF9Nkx]2-e7\ Zѱo9V@95W"vrw6}M+EEEȈ?a[%0)?[KS+ %'xW 

-M}wukj:pL.kP歑PIik<b*9\@ >FR$8x] 

7 Y][<!~!40000 avplayer }
^{ؐn>Jh}~2j\ȡiX,[$xp 

HQ]@g3哂$:(cUwh·N  ipp'+^;~p^&m]o%WTgF)3:kxs 

ry@-Pԧ[Fhh1uE	%,uK_Q=p'+^;~p^&m]o%WTgF9#5mxW 

}mۗod=>*CNʃm&iZ0hGƦU
ĔD؉ÓFg+Sx= 

ry@-Pԧ[Fhh1uE	%,uK_QǂV4x= 

I>l'b؍:fAo*`U:"HShQG x3

7_DqZSK/;jmV40000 avplayer g"b:Hbmd6>w q\7Ȟʷ8ifV$
-}=8N0A.x`T]α8B*F]T?|<19pڹvKoI|XIMy9Kܮ{b?~S}rQ4Ӿ*
.$.h .D
#XrGn['=	&ꛁV#b6F;&FBx: 

H΀)(ǟ%]u V$
-}=8N0:p	x o

$Iŕt{}}}P8B#NakoĎ)549sX.t(7:4o:yh1uE	%,uK_Q!%&
	;ӱtK?O*x{ky&K2.QY93;Z͏ AXx] 

7H΀)(ǟ%]u 40000 avplayer }
^{ؐn>Jh}~2j\ȡi,Dx] 

71)hkiUwA40000 avplayer  }JO@~HsEʓ> 0h&nie+A0xF 

}9zr~Aś	<l40000 avrecorder _d	˄Pس#gx| 

}9zr~Aś	<l40000 avrecorder _d	˄PؓnIŕt{}}}P8B#NakoĎ)54<x_ 

}9zr~Aś	<l40000 avrecorder _d	˄Pس#y*w}MDnǟvŭ1!sx> 

$.x`T]α8B*F]T?|<1p(7@x= 

p'+^;~p^&m]o%WTgFXx$ 

no6ȟpb#㳓Q9pLxA 

nP8$x`ݡ2R7KQBC*tŏ=kVx: 

H΀)(ǟ%]u :Jh}~2j\ȡix: 

؉,K2':%FMz-@[ihx{k;OKWS-닿]=fi&f ڠwx{k;Ⱥ=&hj@uYl:<$$x{k;{":2?k8, >Rx! 

U 0h&ni4x: 

}=,C]jX(?=U:2P*?iE<h|̈ieIx{k;OKWS-닿]=fi&f ڠ-x{kC(H	/;r9as͙L Xx= 

4N%<?T;|2&z\>Q:r1FeX$x  

60wv,Sx

N]FV|dԦ.ZSr^a*q9êv?LP8Bq=ݞjEiX8h@.h >G`BN.7:"2ئfFfbmHH[N=qv]R_l͓Q?E;asZ/Q{Y\5e6_	.h 앺.-jbsamޓ&nQB1Ȼ\pيvfFzgqxW 

N]FV|dԦ.ZSr^앺.-jbsamޓ&nQB1Ȼ\pيvfF`*:Wx

({6j`/$}H]c3L I5J XgR+3-5XWa*q9êv?LP8Bq=ݞjEiX8h@.h >G`BN.7:"2ئfFfbmHH[N=qv]R_l͓Q?E;asZ/Q{Y\5e6_	1tNx= 

p'+^;~p^&m]o%WTgFXkxR 

({6j`/$}H]c3L I5J XgR+3-5Xq"^Lx> 

7I\k2werrors.h ]tet=-.)Y
Q# x >

$.x`T]α8B;bLӤRgD+W.h ry@-Pԧ[Fh"pڹvKoI|XIMH{p_籣ϋu^iQ9Kܮ{b?~S}rQ4Ӿ*
.$Y+	ix o

({6j`/$}H]c3L I5J XgR+3-5X9Œ;ط>!][x!40000 avrecorder oN1Z\_ jm=xF 

}9m4z[40000 avrecorder ݰf'+!Z@x_ʾ rx$ 

_F^0j;r4F<%x{kMšm}n
%pN)`EM_ʅOGΘiO@	n ox v

SJ	`@3lvgfY|j@4KV>|qM ڠ=c@ߠg֑"7P|uk&:?	\@6R TEFG:;bx! 

M ڠ=c@UUIHxS 

S}H]c3L I5J Xg º-&bn8K:zPav[B{i%e*x{kC0H>>l|gBt? CXx{k;^ػwgV|b_L V>x{kC0Ӛm2	B?|7ls:f .xq 

9rm/4s߻TF+%; cLPa.[qL<QyzP\>`ē&V^*· ZHnFm4x{kCFݭ7䫢ۓWR毌y },x{kIgӻJ,4ss PH,MML//-JNe1[!:aU?hh``fbVYXZQR\_df;WN&}!M'e͕?GҪp#5[$V1xMNy6ײ=EnGgNl$.r>6}Z/&1͙LED	=f]p@	mgqa }k%x; 

S6	4ZP*#
.g\XGU;@e-pۗ³D۵(ox{k79ǬH=!Xp{,. 'x{kC0Ȟf&ql:2Wt? vx{5s¬ĔĒԊ"Y+.L~џE,*|黥gb 
eV甋izC;UOƨUnǑB]ݠU?,C3A9 Ts|w<^# 2yMO{KmEGns<|suևl$.|\S·+=	+ٶ9 ^tx{kH:R.S<څr'K7lǤ U	x h		97n&xk40000 avplayer x."c(;^p7s7#A%
AʓS,]EN]5.gWÓ&z\<N^m؈ tx A~)x] 		97X뿔W?l}40000 avplayer R4L rB.<ՓpdPKWT()܊B5(xW 		?ےr)Q&e!QҽpN^r.Cua0,&ɗ|\xl	߫w:x(#{x9s7ߞһNot.M4Й;YEMOr1WOVlἿ|U[7PB~r, Bx[ 		,sDdK_Fh{S-:*rl-:	&pn6d^ x%
,x9s%=v$D-tu($$V1ebўe[To}Q Qx |		J)~#F%gv\tL1jnޡa:tP.QEUJ~>I HX%I100644 lowpower_video_sink.h Rģlig C	7bx: 		J)~#F%gv\tLy;}kT{-+QD Zx9s%Py$cL@! '2aF)2<n<n7>}Q !+x: 		>G`BN.7:L(Y3;aHeuĳQDbx9s-S.#?l^iȸcG́. ةHx s		,0%k2~3i9v*S-3qP$YH!I;L3%Ifٗd.j ZjAQ}R$$CVޯ\}f&j	:f~[8"vx9Ix: 		-3qP$YH!I;L3%Ifٗd.j ZjAQDdx: 		J)~#F%gv\tL#A(
 <(h۸<QD-x> 		,6M%cǶ<?Sj녏n/m%-*v	zx9s7꼨u$@EvݗY /BCx! 		x[fX9VѺȦIE $k*x% 		S4L]oC`FQp5o^xmqj,9Xz.	oNxmqj,9Xz.	gx6 		}KzYIi6wG|bzl\g=Sc<ot]x Wg=Sc<oƝ*x{mC-wU$gY{M癤YUsNl< sj,xA ,= \=i0%,JS	<φ;U9zi8X\OxA ,TAa	USœ$7Ssy٩i`)iď(=X~x= ,'c%ԵE%v!rvvlWYTX&jxb ,A#Wg+Y<S[Hn`O}vy_base.h {  cMemޓM'okx{u;LK x9s-Hw.c1Qj	'',ds # HS9x9 		=fKr3&!`ɐwK}QO"@ppbH)㯓	*Ex9s7HDSƀ]z*ū&˳ brx9s7ȭ.{+-rS=Hvdy2 6H*x! 		oFlo*lYpXZx9sC>uǔi<}g>!es3# ΉRx9sC>l;MԮ[6x9sC>M?FY/W~MB˯B HeLx9sC;HF
ˮH
YHml_L M(x9s%%mW1~U[wlN BbYANbejÊzo+Lܸ凬 AQx% 		,sDdK_Fh{SB+zDMx9 

H.L2mw=3ǑG$]R7PC2cb"gDx{kwns-+pSqxvL D]vx{kwns-+pSqxvL D]x{k;H|¨7-շ>Pnfi&f NUhx! 

}m4z[cxI

({6j`/$}H]c3L I5J XgR+3-5X9	pis!840000 avrecorder ݰf'+!Z@x_ʾna*q9êv?LP8Bq=ݞjEiX8h@.h >G`BN.7:"2ئfFfbmHH[N=qv]R_l͓Q?E;asZ/Q{Y\5e6_	udUx{k/&naդ\Y6_/jvҢC 	.x{kM{oٺH_-#oY Y?tx{ky&K2.QY93;Z͏ A"x{k;SbohXm3_FQݛ<&xn

~l ,|짳p/LMemܺzpk7:vqy`h%=E*Ǒ?[ȯ~$.u8GFtS$,>(܈j+@fgR ů>1	h.7k100644 avmetakeys.h |K몆zXtʷY100644 avplayer.h B*F %1O;40000 avplayer 	#*9'ǜ/><.$ew <
100644 avrecorder.h @#/	#]t1޼擑>lʈ%lgyxppA
$#Gu48B4~
{:uĚ.h $>oeD#!/P%"BXCX͈Q7EN?V'Hh<ꆮ
F5Epq=Q19Q7XT΅nQv:r/
[[!ē.h lzưUP&t;cKSN&U9\mberrors.h -*xBYEqcUKL}x$ 

|2B<FqB~khF(<Zx  

p'+^;~p^vkpx= 

]v\Q!A@ؓ&ԆY@FgHL0eFl]|<x! 

*}
^{ؐn>%&%>x$ 

!%&
	;ӱt'<3x{kC0R]_?:xd&3%}r{½knh``fbXZZYF|U{V?+IL-S(r/'쓥lrjz)soaڋRRp.)&!13e{i1y"Nos%S騬v-L"Nlچ5N`vypb#}M4L,%r.9]=F4Ⱦ60/0Z=$_PjWfe|qKs2'Ȋ8k%2olEFI}pPBj[زϛb._طÍoYD^itؽˍ>KR7 J˦<Bj=l,KÌl-M  s]xp 

 UnjVS(:iQc
%e$E2{"IiwpX%I5%ڳ|2B<FqB~khF,0\xW 

[ȯ~$.u8wpX%I5%ڳ|2B<FqB~khF_*exp 

+iWl#~mTq;:71,D
ZmVX+icExbiY"%	Q&+¬u#lӎԓFes+@dx ,

[ȯ~$.u87B*F %1O;40000 avplayer 	#*9'ǜ/><9MݟP5s]V|羡100644 avrecorder.h le)pD\N.G|ޓ>Ϸ!
<)U)O0tڴ\K?hF;_bx{kC(HPNI孍M6^7UIL_L Eux  

vo'S7TF!:dW$xW 

}le)pD\N.G|ޓ>Ϸ!
<)U)O0tڴ\K?hF()fx{k9vYdaOT=/M	Q3
Hy+б[tbZ}[|<bܠ9e;El_j^Vb1)yEڦ'##6491޿sLX?E0tC3ĲԒbݭ7䫢ۓWR\]ANbejPSbohXm3_FQ&@ WPq?1-WOcixX;iTUgŜX(59(l	璂k2_9SV]'26\2q9oײl/N.JM͋ON,()-JeH>XŲ[kT9E$,&ԙϦ>)᫮mؼn_df'ʋ	'f?ҧ9ߴqIR@/ds8lL݀+?vS8ަEVYM!"pu/7.>}tN\@YӮNrԕaUG@	sX8Dn+885Sf.Eزϛb._طF'm/i(!/ZT_U/3Ο4 !ex> 

;R|.£2~Ub&I{OFAocx8qB1RL)T^vM1h "x8qBȌ8Huʏ~uxr\h M55x8qBH床vUKr^gEm qZx Q"p)r&?SV`Zx }W3C.߲>=%16x x*G-LR';0ґdxU *@L+{pcdǀޅO>03+NRt(b)40000 musl Ga{ӑfN3%6l]s%ex;tiB-~O69-vyfWk;qZ Wx6 *;'Rv'r5}8b׮>O}W3C.߲>=%@Tx }W3C.߲>=%1x;tizз3EGLͫHF;F -x;tiqo?+GoϕkXQs;F;F ,x;tiG#4b'>	wv\n # Ux6 *z H~n>OGa{ӑfN3%6l]3{dx mӊ=#Rx џT蛽ahXr#Z>x n?cj1umAઑkxV n3wQ&F)ǧ6bCX40000 musl ~B'DU~֭②zјIhSNJZ/{(-?x;tiBRkI~d_ډk&@p/R7Zܟ^g} E19/x7 KNZfBA\V<N}=z[̛2`yM)/ltux;tiBdw@=qouqM(0ت|fWe-5o>ąknx ~B'DU~֭②-=x7 n	Z`2ApјIhSNJZ/x= n3k;Ⓨ(iGv40000 musl ͑#̺¦o|쵛̹Qx 	Z 7,׮i,B6x7 nk;Ⓨ(iGvIx7<նJ@@]P/äI|x ~B'DU~֭②-)x7 n	Z`2ApIx7<նJ@@]P/ox;tiBHcy_5/xk~;,yMg dxU *]6{2{}-铑>03M
'M%g?.40000 musl ^ beOoU$Hx;ti4Kߴǎ_o^Q*ux;tiBMam_m2˞qµ _<x6 *\eCD[V~ >O1V1< ՁR0)kA(x ;PN"ܗ]䢖BޑӶW.x;tiH̫TW]o9zt_uw(Zx;tiBHKT˂25ݻ,+np- x  ]IEǒ~E<@vx;ti𤧇׾ɴtkxhma!x;tiDY>oLI-
(h' g[x6 *]6{2{}-铑>O1V1< ՁR0)kA(Ex;ti}ϯg-.r^F;F rpx;tiBsF&m@#7YƲMg x;tiB3(&^C4Ħ3 +x;tI Rs|0:=ql]e^sє(g 2x nBR	SJrǈm,x;tiBmF=Sh}b|GŦhµ KVx;tiB;)<	s}Oe`n?qZ I xO 	gyQo&H)d-.%m3uw`Ѱ-8>P%L>&arG1/F!^x .FE+υcCW_x;tiBT;g7i*{µ J
x 8<U*/9'յ+x;tiBȎQ	?(KĦ3 &+x;tiB%#2TJ6&4Ӽµ y~Ux ʝyLZ*p;&Px Fn}XaG~n.x;tiBo;/7;XNVąkYx  9ɱ\׫Ao!x *xnj~&㍞BёÆx;ti4Kߴǎ_o^Q*4x;tiBdw@=qouqMĦ3 ()x YU{o/ -x;tiBߍ&]-aflHڿqĦ3 Kx340031Qpta$sO\ClmNEgڙ B^Jv|niqN|f^rNiJ*}ם.\^v4]& 'e0]<E6[Qٷљ-xx+-(7K?7fh;k Cxm F100644 BUILD.gn i'wW!(MX 440000 adapter #Vy*1Fɑ"n1lޑFe755l6xejo_\݊F+@x{δD)E/=A`xߓ\N>L-($$1TG}_Fj+'N|  i_x 4q!.'-xĴID)E/=ǋ>33Th8ĉڨ Mfxg F100644 BUILD.gn 4霱b_40000 adapter n	1MMWcYFDe6P온AJW.1,.xĴID)E/=aw]}ܭsc
# UkhxE $100644 BUILD.gn O*y}>	gt&$Ymd'gA.h<xĴi<_:r<X5ez\GYY hxE $100644 BUILD.gn 5Pf-gh$Ymd'gA.zTxE $100644 BUILD.gn 4霱b_$'.BBinhҐu.eAVx i߻LRbM1.QxĴiHE|1[nIR>{ ,/xĴiyﮋ;k:>_^xk ZxĴi,Cżn/ecD7 @xA $100644 BUILD.gn *c%o0
-;Չ$i߻LRbM1mUxA $100644 BUILD.gn h;.0"KXMV@V$i߻LRbM1i%xA $100644 BUILD.gn ר!u?X$S)d2$i߻LRbM12WGxĴi__c-Wpˉno  txkaĤbh``fb㢗+㝟*[6'MDz@u榦
)%)eEřyzf-Ax_7p&A,=  #R3xo $100644 BUILD.gn `4{ڠ;kWsA	+$BDe6P온AJW100755 updated_version.py 6#Ry7P	}agl+z~x i߻LRbM1.Q-x ?P{^g!h9&.N;xkajaR140031Qp
qKcX.g93|lD 0ftx, $100644 BUILD.gn 㠤8$N+x/xkajaR140031Qp
qKc(:{Y]VvYQOo  8qhx, $100644 BUILD.gn 98Ӯݛ$R#xkajaR140031Qp
qKc^sƎ(93/ZVJ&<  !txkajaR140031Qp
qKc<87b]bDuOm`D 7-QqxkajaR140031Qp
qKcxq{6u'n  1M]x <7Z+WȠ
k߻**(DNJz vG`b100644 oh_rdb_transaction.h  9&$0-F鋌%fHF+]TW IZ9O6-x9 R\WujCfRXd!<u\؜J9i2DXxx R>k!!yռ100644 oh_rdb_types.h v(%UΤR
umg0pL%:!9pRLIDm4+_xx R>Tл1H/jEp$>100644 oh_rdb_types.h B.ӃBR<qL)u}-scRR}%gp=:(V	4fxx R>6ы<VV~	100644 oh_rdb_types.h -ֺ8luu,J^{.ASC!~%gp=:(V	.1]xx R>Qke|b4+qb100644 oh_rdb_types.h v(%UΤR
ul'.ub=l%:!9pRLI60$xreu.1̯%z8'$C3Ң"	.,b\dy!}DE_{|ݛEh/JIO.,(ɏ/H,JpϷ~{_`5{ܧd3bF{[8g\ڥi^F)׸.\}b&J4~:$㪏veEg_1YIU~òЉg?M9I>QC {lx8 R2	ʪx~;bP|ēf4s~6oX:_^xreLE˧.{)qRuIm Ukx A;<7Z+WȠ
k߻**100644 oh_cursor.h Xe+ʍ 
dO:{Ŧ.XvFjQéCJ3$Aʛwެ\P?ü>9?Y{שX)Q>ҒfʲL%Lߟ'<R8xreOheCVōZL /yxre+Ȥң?[j)T|_FdI&K &xre+{ORT=?m;녓%,԰Sxre+mȪ#uO.׽[b;BɒL M xre+y|5g2D̰eɒL i-xre+0S󸬥܌(*_"\7Y 3Zx A;k\4*lTe100644 oh_cursor.h _{D$3r8YTBOGplǠ}m?N8/3u*E^lKL\9ί'{'Vrg?TW%?vU򖙒(ӎ@GRMx A;<7Z+WȠ
k߻**100644 oh_cursor.h Xe+ʍ 
dO:{Ŧ.XvFjQéCJ3$Aʛwެ\P?ü>9?Y{שX)Q2aT <~'W*:P%Lߟ'<1\SQMxre+H[Vxs졂3>&K2Y "Tx  Wک:Ց~-X[YQ90yxre\Yv<g=yf3FF ;N'xreHvԴFijDwݴl( jL,x9 R8Q ,kWbD5f%WzWC5K'39kjHx5 |toXDyem[m&zxN(ҔFt3˯fѭ,xreHt
E=(1>~QE Yx9 R(	g;0qTyqKf6kJ9`1 9_dx31 TUz'VXwy۾\040031(M`PԺ~1g}O365y@WT}&6L7Ʉ\S;_AQ]Z5{sB|Ūt%̊Ԝ=<M_' *m+"i4,y@]%ʍg;9w2m"kbY~KE}q~iQ2,p;:t;y %{ut	x{I 2sSVilHSUM/c=+(ԡh0Qa.02xf`sLhW&  BVx{I 2sSԪ>^4̖yūlTpa 7x{I 2sSS6b|)Cއsl٨ CUV@x{I 2sS<껊|)t܉K7*0 "&Lux{I 2sSֺ+	rBjâ[;&m;Q B5x{I 2sSZcWr8z_}tOY׮	\1hx{I 2sS(<ҹtuy_Uг^o7*0 <Gx{I 2sS?b~`.'knFpe¨
. 2IPx{I 2sSpz1Kk")/N78Q ?Wx{I 2sSfV._cr+Xecʙ\;Xx{I 2sSv.<veE'N|FF fx{I 2sS~Uq٥lbY\;5Ax{I 2sS߆zZ
	mk'Vh# 6@ux{I 2sSɭ*[|qKݫ*7*0 (*x{I 2sSh$%FF !^x{I 2sS\Yѵ&[IB\<3x{I 2sS]l宥Ps3烎\5Fx{I 2sS]d,.|ɛV2=b$a͍
. )'zx{I 2sS</T:y1[Q 5K.x{I 2sS~Y+P<wYfYy-0ި Sw[x8qBZKOXyzI)[4~C)x3 K?Nnߛu
_ ISm۪J.qRjx3 K̧c>εuH}覑_ [KmZ3,ne[e6rI+x8qBQ{i3oM$ x*x8qBY9\bgtL &Rx3 K̧c>εuH}覑_ \)#\q5Bx ytU=ڿ#ILkx , jj3l-Y

x +a@2*/ɒ\_݄
>x lү\BF$kCyx b.ǨǊƨ5Hx4#x3 KsJ#ߴd$d_ 8 2:b7chw(f1%drlx8qBȖu+s/Ks=!yC \cx8qBJ"3Oh|kv ;x8qB΢ok6wwyEL[ }6cx8qBFrm7^Ű ix8qBHmy6x<ꆅ@j3x8qN["k-h[5Gx ?qx KgtȲJvܱBTx8qYSgeś-8[tb	 K~x K%-,+iUI0_465x3 miKL!'::h'c}[G嶫Jܕ4ts.)xx3 mÀ	r8-έ+Zi+:.c+<2߇H?$B;x3 mn[e}b+8aE{`Rs_<p~x3 m0u` U$D,c./=ΚBcuABE"Ox pU32и5%.x 8V(r;w3쑬5!\x3 h98Yڦ6T꽑|Q8~<Ǔ LGx ڐTGhҽDKM癭G葬5>\Mx{qBHǍyfYa:5 ,x{qBH]zxy؜lOw0^=& W,Vx{qB7H	;rcFkRg x3 h-3 %ȫ>ё|Q?;{wF|$q,:,gx{qBtq,fmem|{'֤ x31 Ҕlf	
W@T'秤&3L9~R¤6g駦ߍqg1j/U<fLI&fdUEHVfޤ.W8oTQRn۔]ArU&M"+!D]fnbzj|jZZjr	Üy]'֞^{7p6Uʐ!-Ƶ275%Ҽw֙Hvwz zB+v*냶Js2*\|H=mvRWPu)Hv$[n<n>.(,IL-BR*s/zoͭa.*^~,3%5?(?yyyoW۬?m?JqSq mńxP _C^C"*]'oVZ*UmEwjSOlIF3p2۪$_xs 7LW%ީC*FAHB40000 av_codec ,hBz61PvMm5M< '?3vvZst`Φs>
~b1EF2b.`x7 9h\q4-CM籙M<1OR#U!(Rݫ>x7 qV;A)Fͥe]'oVZ*UmEllx8 9h\q4-CM籙M\'O(A/dxQ`$pQ2cSx{yٻO_R+̯w# wx{yH}>P*'J;益6Y& ŝ*-x7 qV;A)Fͥe;BW"m%c"rx  4qn&u^sx7 i<.D!bA?&_erqtjp7-)8x9 ]'oVZ*UmE&1
FNPg):6$2"$xs 7?dTXXd@e{d40000 av_codec L=81qz*xEM<׎&FwbXyбΦs>
~b1EF2'/Ox  <_q ʢ<21xh 9l4	uh27	M<i<.D!bA?&_e+ kE 1@J9`'|,5ٵVzsɓ2T.(x TfDHsUR5Vx7 9|ޫn#p?QԑM<eא4=ǧ0 R
#Fx F=qhb6G8Rf-x ׎&FwbXyбRtx  p(ou2POeHmy\Y%ޓ2ˢ/x  `'|,5ٵVzsɓ2;.x ?dTXXd@e{d*;-x{yN,?̭zsCu"F (YxZ 7?dTXXd@e{d40000 av_codec IweKx览ىX\,M<׎&FwbXyбRa'fx9 -	qT٭B{-RsAh2S33'2\1x7 9L=81qz*xEM< '?3vvZst`R~wx{yH{L~j}卾R#x{yI;M"މ형{X͍
Ox7 9P[VdDAֳ>~ܑM<qV;A)FͥRx 9^TǒtH֔ñM0xs 7wfC߫d)/*40000 av_codec W?@ʘ?^ӑM	qT٭B{-RsAh2S33'2c8x 9LeF3oOM#\.xs 7?dTXXd@e{d40000 av_codec 3-Tݩ"gnsM<qV;A)Fͥ`'|,5ٵVzsɓ20A/x{yG}xq>k̮pc"F -x 9} 7QáwAiMcx7 9:-ʹ1K\rM{{gT!ECAQx{yBә]SčÞI5>,>)qn# }x B !R[+x{yN,?̭zsCu"F (Lx 9{ޛ'N[ؙM#zx7 9{ޛ'N[ؙM;BW"m%c@x{yȋ#/wq΢[{b7b*
-x{ye/ro!WvԘ BbY|qjqqf~B^),J)s`҃ݛ sSӊty~Q6Cȵ4LtaT~~>iwU!G_,8Y9\=]&&?Ty3n^F# +zJeXxP 9a"ǡ|M{{gT!EClU
44x	l~2(7x{y>O['2&Dk\pU}FE 6x7 9x *)IM	 bl@B?5WA|x 9{ޛ'N[ؙM#x{y1paV|FE Qx{yBO"Q}z*ensOx{y3ɑʁ	L?n;)}"F P{x8 LW%ީC*FAHB*Φs>
~b1EF2ax{y3Z-j6ƹw<7mFE $x{yէZn
i&2m"F D9x 9aӚٓ]VeڙMNgx{yȕt )Sx3uR;dw# R:x i<.D!bA?&_R)hxs 7?dTXXd@e{d40000 av_codec ęĕжqr@M<qV;A)Fͥ`'|,5ٵVzsɓ23
jx 9	؁`*9dqMD^x wp5d0B)@Rlx  <_q ʢ<2;x  6]LϤ9AՍ2jx  N0)eh2;x qV;A)FͥRb,xO 9l4	uh27	M<i<.D!bA?&_e2\ģ93Z=
%ux 9l4	uh27	MPGx 9M]❄z%gVMux 9U𰝭zp,W[M#x  -	qT٭B{-RsARx{yJFi[7u̽Pr{ x7 i<.D!bA?&_e"׈UU1B`/Ex7 i<.D!bA?&_e27DcP"x7 i<.D!bA?&_eT#"d7TQx7 i<.D!bA?&_eLXý!g:/x7 i<.D!bA?&_e9Y=oнz'y]x7 i<.D!bA?&_e\]ҷ#mQ`JAJZ]#x7 i<.D!bA?&_e&ivsԢ A7Mix7 i<.D!bA?&_e3@1|Gv?N$#H/x7 i<.D!bA?&_eU,?aQL)Txx{y3z3zӤ߸ƨr/6Y& GDx  #7teOaГ
x[ 7?m={0#"I40000 av_codec l4	uh27	M\wjSOlIF3p2&q(A-x{yJFJݶҳeT8>j(yj^F# Zx  t1wʹI[m䪝2  		x{yiKޏ!R]g($'秤&3Ĵ.5Rg\&|[E7?v^CE53;/M¿Ӷ~_3bfANbejQ|ZQbnjy~Q6WӸqI|l佌F =EG3x8 dȥzӈ׺q2v,)*"y-uvxAKyk1ʓ2vzx{yJFgp)ү4`Jo{ 'x{yJFoYJzlr^F# #&Tx R=&z˽?P3ވx{yJFύLYos_>Aa佌F ܷ	/x{yiKޏ!R]g($'秤&3Ĵ.5Rg\&|[E7?v^CE53;/M¿Ӷ~_3bfANbejQ|ZQbnjy~Q6CxkSu6|W;2 G-x8 ?dTXXd@e{d*wjSOlIF3p2\~Gx{yiKޏ!R]gF B,x{yHL{M_#~%\1hjW1軈 Wx  s<	d3lX;$ 2/!x Yzn&mbNFGoL%R˕3x7 9\qY^`0xo$6MSww?71n~;پMx I7&X,rFW8_p67|40000 av_codec ݩy͚TH?5БM<RCfʤtÑآ7
O! A=?rv ;fo40000 player_framework  _ΉN$IO%?2LREx  jqPctG\qw~x8 _C^C"*E8\?Fk,2?Gx  ȐEs歼H73x|W9*2L]x ,;ޡqɩ\O0m5YR1	.x H0vC6 WD	hRO-x / K>XR(H±R-x i<.D!bA?&_R)dx{yJF=Rs=|UlaNI}v{ ]-x  ~rv ;fo][x I7&X,rFW8_p67|40000 av_codec Z:\cSG(BM<8zpto/ot<WSe?0biIl) c1=f40000 media_foundation آ7
O! Ah&Kk\GEBRo4zC2kJrx8 9)Hi`J;.הkLM\ͬTL#A|2KGx{y}JHDlCj`WSL@!,>9?%5/ϚVS, D_+
|f[ǳK7M*{_}&(V	ןMc̰/IRxy~}+%Wm]  '2(>(17<(aӹeXq%wu;}u佌F L%L	x{yJF72n|}Unx{ 3zx  ~XpSrjؐb+]3xr 76YG#ӛ,)Jxu'K40000 av_codec w(]Kq38vuhy~M<kY#./:e4آ7
O! A-N34x  ?6tbwzb铽2]cx7 6YG#ӛ,)Jxu'K*_kY#./:e4R(4)x t7
T*
46o϶2.40000 av_codec w(]Kq38vuhy~M<RCfʤtÑآ7
O! Ahi'~I=;v2jB2x{yiKޏ!R]gF B<x{yHUIc:Dr.NH({Q(# Ghx{yǝvЪ*-ں=ܨu ȡx{yHXՅf-t@qxF @x7 9n\,pw^^CIMZ >\yUtVAx 
T*
46o϶2.*qgtx{yȺtٱMd-FE _>x7 9'+?).zrMrKW~V2gsZYwS!A7ex7 9\ړFz*m@x%MF(_WO xr/K6rݵA}ex  i'~I=;v2	jx{yBL	ۂ6+aZƴs߽Px8 9'iF>:0s{go!M\C)6T-!2x t7&X,rFW8_p67|40000 av_codec ݩy͚TH?5БM<8zpto/ot<WSe0biIl) c1=f&Kk\GEBRo4zC2:1x8 9c6*9eucy;ﷱM\WG(snM#瓽2"xxP 6YG#ӛ,)Jxu'K*_kY#./:e4HM$<e|LfT͜23#Wx 91?)ڠ.rڱMbxs 7&X,rFW8_p67|40000 av_codec ݩy͚TH?5БM<8zpto/ot<WS _ΉN$IO%?21x8 91?)ڠ.rڱM\`j@O~꫓2SL!Nx{y+R>ֆ!/QZ{($'秤&3yÒuO.[yE&'ڈw}v6:qn}eQɮ%=;^*1275%31>-4/%$3?a1{~g^k D-bdGwyjbzZyV߰ KqAx{yZN[_35̽6je ,x 9ݩy͚TH?5бMSx{yȌ͇?F摟j쮱FE ؂Ax  Cp7$?g_	(.x {Z i-;٣2I±R[v\x{yR91/\%ިu 1x7 9Z:\cSG(BM<DOtW=."RfNx DOtW=."R|x{y+R>ֆ!/QZ{($'秤&3\`:Y)Mwn'ڈO~fUwq8Mj_vTk%q	|厗@MMLO/KI,cxXxޅߢřx-Q:ّ1C]"XVaށ7,'e4 Ilx{y%\!Zp}ޒ6#O&@XpʳBh配q7Ox{y=Gr`	ÍZGr:x{yJFs.xWbo{ ߧ-xO 9Kx@2oSW'IM<DOtW=."eyS&^`-u,]< ]xd ?)b<<[ס'vxh40000 media_foundation E",@zj!Ah&Kk\GEBRo4zC2=#Ox  }&;-5k	 kl铽2|_~x  2/f0{D2Tex Ҫkk
.B
Rzx{yBsÄ7xgXִqn# ?x{yBl~=M=|uƹA <kx{yB¥tjB|9lYjƸ` F x jtET&mՀR	FYEx CiQ|sRnsx{yBT!2n׺~ F 	qx{yZN[_35̽L@!,>9?%5A4Z*x"g	,~D_.^/	c0ĹjG%LX+XxԔҼĒ<ծ[qVȸ ]:(x{yڙ8.&X/@xFE irTx{yuM7Tx|rF x{yǿg9bgw"F ,x{yȶQf:/O<V~x.݉Xx{yHݛ7u)mJFE x{yH{}Vv-n"F *0x{yS29?-bs+0D+1n] !x{y
K>ϟή8D߭jG%LX+Xx(䦦d&Ƨ$d1v?ت$lCUVdGu c%Nx{yJFيv^WW;g^y M佌F 6=x{y]f?8lQ+عeFE ݌ix{yJ;\ֳZgo\!3w}eQɮ%=;^*cb 
)iy)%y=]*I-[P)(*(4ّq  #+7x{y+R>ֆ!/QZ{F /vGx{yHeQɮ%=;^*3Y& -x{y
K>ϟή8FE ]uJx{yYGܕ/(iF מvx  C)6T-!2%x8 9Ԅx@[E8<ZSM\C)6T-!2&mlx t7&X,rFW8_p67|40000 av_codec ݩy͚TH?5БM<ڟop4[,e0biIl) c1=f&Kk\GEBRo4zC2:`x{yJFS2of9\{{yg'O佌F _x RCfʤtñRB,x{yBu]_ּm936! Pqn# 9x{yBȿR/BՊQYھ`sx 9C.豆xM#4x{y{_؉iamgFE `xh 9Z:\cSG(BM<8zpto/ot<WSe0biIl) c1=f<=d=Qq)%2.wWx7 9Gs/q%~{M<8zpto/ot<WSR	x  Cp7$?g_	(lx{yJF8_Ldԥ佌F Mx  !(㾷哽2\x  fk@wڜ&MsB2]x{yJFR2woDaVzJӮ{ f+xP 9Z:\cSG(BM0biIl) c1=fȬًMw҄^&pfX.哽2$c_x  "d(hbM75#諮2	 x{yJFRoOuO?_nf{ 5:x{yJF!frgo{ gx  `P^-uiz2kx{yJFC*>+MN4Is O(x{yBH&Y_޿7fvyϴsFx{yB=3XwX\\s F Cx{yBșGS4o=<^L֑C{ F ox p8})x:MRTx  WG(snM#瓽2 <x{yJF+R|
\U>i6ǗVNh ЬKixP 9Py XQ!uF/M<DOtW=."&Kk\GEBRo4zC289nHx  |Pr̷R425	wx{yyjsE?^
ӊ SR~M)x\إ{,ϙkc#?DpRL`]nώ(o^њRVZ_Ͱc7FTb&2e+m|[s㾌6.2 dpAx7 9Py XQ!uF/M<IcTFdF=;?ұRdx{yJF,^:x2佌F x{yB5_%ӿP\ꃓXs=x "v.A*|AR-ykx{y$oҫ"zVgZG*x{yJFVۯ6mkYP9u佌F \[x{yJFwyjbzZyV߰ Ax{yZN[_35̽6je 4x{yJF=͌W~<󘿤=/Pu^F# x q-/GpLR4xs 7b\>(:g{}40000 av_codec OjE7.
=+ry4ёM<̴{K1e:jr[sdX:ՂRt1#e236x{yX)?ҖvxrQ PH,OOIMfplT4<ummY1p%ũřy:4<iYR QZV[nYS*i ror.DmJQ.[)0bN?6搉Gƅ*4i=z~hxQVA2 S0|x  ۾3`;+;õ2S|x{yHF	>.l[.b"F uM(x 9[f>T<3n^MCVx 9G={޹ƿQMvx{ys13Svqb썾h0x{yy{kJ\,u;w# \x{y+ygވٽ$˧FE !x 9kFo^B4!/KűM_6x{ye曗O>\]gg3ZGGL@!,883?a c_cCGߛ'"ZJ62 x{yѤ	<軈 ϵ3x 95]}DuxMAax{yDNuCQv"F gRx{yHWCW_4?[w# @ x{y7,Y\͟՞WTi"~ S3/|XQnOt=mƢZF Tx  i	.ƒ52x{y)?ҖvxrQ PH,OOIMfplT4<ummY1}cEZBz=?4zqJ{ %hx 9M۰Ȳpq&ӣȱPnM
x{ydQ穳m{oˊ)軈 ,x8 ^n(Y{nt r7%gPBVku27x{ydQ穳m{oˊ)軈 4x  JFR0iiOK湵2z:cx{yJF&&mRIuQ}B.
TLh ~#	x{y/-n麙3 SR~)XxOTk{-gNaezbSVˢc旭UBƧ%榖e3z%g}tۡ?38,Iaj3mBƭ''Ndl CB7x  ,|Zo3.b!Ɠ2>fx7 ec#&$f>P.*[63*_Ft7-zU[/Rgx 9E,h>ZmϥsM#x   uSc8t"2E#x{yX$oҫ"zVg1 PH,OOIMf%뀫3\*M/g1j/U<fLI&fԢ" ]_PM/3ZpO+DmJQ.mSv}U-4jVlKB>xn5jӶ JSOh ZUnx8 4PS]o]F#X:ՂRt1#e2A	5x{y/-n麙3 SR9VuSɫ85Ɔ運NY-_oV	њRVZ_Zֺymv؟pģDJgW8$}ʹ	Þ89 /D	\x{yfug*Ύ2 PH,OOIMfX{qDrֻM]松>k+Z3lͽ5(7>(17<(u,9?ǉG',ϮpfISi6n==qr&c ~Dc`x7 ơ#QXkI"T{_<̈)<D2L@&x  {_<̈)<D2Vux{yHjsE?^
ӊxQF  x{yBᅏ?\!<퉎m21 Ԣ" ]_ ?DpRL`]nώ(o^qn#  x{yBDI2cw=;yƹA ,x7 ^á](CۑAr?Rm%vՄ
k?1*fUqx7 ^á](CۑAr?kg4ryRxH*6x7 ^á](CۑAr?0okNCWjQ ^*|x7 ^á](CۑAr?#ݎ"A'*	dBx7 ^á](CۑAr?ʋ.R02/yof*Qx7 ^á](CۑAr?+w1Ek@gpS*
 Nx7 ^á](CۑAr?@O7g$*0>*x7 ^á](CۑAr?{iWlj%
~O*8Zx7 ^á](CۑAr?lo{Ty%s E,* x7 ^á](CۑAr?'92/ApKO5Y40*o%fx7 ^á](CۑAr?G c\J1)*,x{yBᅏ?\!<퉎m21 Ԣ" ]_PM/ZpOƹA #:
x{yX)?ҖvxrQ PH,OOIMfX{qDrֻM]松>883?ArÛ&ܹj$Tx#nDQrbnjQb|Z./fxV۪9~޴T|ƹ<"q
MZGO^TU%ts佌F UJ2x7 Zo%Rq%]S']k*4á](CۑAr}Fx{yل[UO篽%TY;'}QF d@qx :ܬOxrb*x{yzM0?m[OިlQF ZRx{yȖS{Tu~rKrmJF ~x{yښC7(t<F  qx7 0^d#f=;C(Ӈő*_e(ZJ<}7Ry7x7 ǆu+?i"IW*4á](CۑAr},x7 9C M2͆3j\sPM<Ft7-zU[/RUr]x 921R$ӫ*MS_x{ytV#.:Lˣf~qx"F mx{yݻ v֭ӊߢ_i}FE x t7&X,rFW8_p67|40000 av_codec $:X=V[K?%M<DOtW=."E",@zj!Ah&Kk\GEBRo4zC2ke3x{y]f?8lQ+عeFE ݌Nx{yuɢMWov+ďZGKszx{yӸkY
H:{93ˍZGr&x ;)ի`Ofqݺ* kTx j<d}fƱ*x{yHztQ{5wt٢rwQF ܎.x{yȩ˞v/'cQF څ^x{yJF<=YEFH}̿:y/ ˓x  !rLd?KqA&m2D+qx6 yӛέQӊ]@RJ#&tzaK3ƥu1FxL EVruvf)Zf/5100644 ohaudiosuite.ndk.json ,xKI0hh12bKZ6 4 x ~;oPAOS1x ,TBж*!Qa1}#-xQD)E/=!>ϼ˻3̏-kr M9ex, $100644 BUILD.gn E)*ґ$OY:xqCCI=1_{meVR O'x! D>1F&c'K4rVx9 DxfN06r>2ؚ+/ ,KW1rixqCDBjum8 g(x j#,ax
@61GC>x31 ҔdFmo~w?`]i	*"_:xySR TxOG_0-_,(3/-!#tMqS2]'lh``fbRrW<ԍyy99%zQY+3eh}Xgv._)@'c[G<jh^SQ8%X/3;(I5 =
8(94l*NIl|R]Qq_Rbq*c=-{亯/82uWy%e@$$&edT5)r\{Kn~vC`&P[ԥ&:}gm}cE5xAq[V	%d5wJͰ/Fh$5&JzRDbp憶?5lQOUg:΍#5e"9M7@By"sĮg6ZVh-}̿6Vezt$TYhQynU])wL{ʷea)eEWI&@>.
Kvq?2=qJkbX*yU!W_>?M*]Ռ;4,5y+Yrھ.9bzX1QG. vA	"x{}ACK߽Qc3G/Sn9NxH퓮˫\Ӷe]ĔKS2SRH/<΄*wl~k9 uE
癿X2z38oe۪g* NGHx9 ZVg~ѵ7yiSnUa{R7kxړ:wx9 ZTrhjWt U+#Wn~]yq.e:7x{}CHHQƂYSK6tʿVǴCLq}HB#JNV̫ HFx9 ZVg~ѵ7yiSnyBzʌ)6:0Agx{}H)񳾉=y&nV̫ x340031QMLOO`X9`W'\$>o*d0DVXY
TYX}񾸊?F?PT$&g!4;6'tylwBP
T%onvzg)N{-EH
S3-K?OB+}u"$,;vn޻M߄{rV& O:Ӗdll# AHx˸qB&{6(L9s_J ,x˸qBHԞaY1V9# xM CdF_|9qQ100644 os_account_common.h fD:JL ғ9}3*X#]x >9hF h6vHb>PHh	xT;Aob ]?xxqv_޻9GĠF Ѭ=x- }.$hbattery_info.h 9hF h6vHb>P&Wdb9x340031Qp
qKc !Nf~Y2&(1=>1/%>(@/nG%0̵Ewp	<1)'5>%8($:=#I
&?ՐU @im8c6*K,,K:$37$hǏU42{zU۟1Qզd&./g{VUfEUZ\RZ2AO{PJʕ]}F+I-J;!bĪ	>=z0%CcS32s2K*zU.f|uŀpMO.-9ޓSu/[ڟ~o܂Լ%>o#5e}/,=T٩ee-t_u?KFpP!_|\P@oO?tyvT5bgFĜ	W\_jLN:Y±BJfTEy)6|/1F.LEUZRY rnPJaҋ;L{qnhBDȗg1-,bB˫C5T椦ewsEC7T|zf!L`],`FuI¥7%i/Yw /oC'xQ ;`9{uXP^
 NOHZ"A{Ej354wjEuHv\?f#R`xf <*@VI8xp汫r/ڹmȬ\t;P||ƈ8Go8q
6n$|I.6x340031Qp
qKc|kʜ6]hhQRR_ ^7g)|$JrRSR2Jv)9~PoY-;ͤn̤Tl<Yև߄<bJK2RM,Ikc'^^d@}T)9@KK٪^U@yաY|zQә+[}+uM|Pf敤ܝcZ>UpvwZ]pOLNN-.L,e>nNHirn3қ\Zs'^޷7?}z.=yy%@}dY#~IRB՘ZZQ}PRN;UdO?ݕo
I
)u}Ly@s3=~1oI":QU楤͂3VqLH^}-gkT% X1zCB礀+*Dl8#id;Z^K2'5%(3~6-fȶ1?'UZ	5
L[v+kfO^xR '&۪}r|R~jߓC6 qQ6KO7su
\Dd*5z qy$nxR #T<Db *}CbHCTsF)Rz<S4\EK3'E<9NlB!Ox9 HwͲ*V6=Hޢ)ؓ\n|9-k|UFMDyߌwx{mȵTN}ַlghec	"8x{mȽk[E-#KPc&!F t[fx{mHM+'>}SJc.x! ?7(_A9bei+]x{mC܌E[%o,u҂H]LO x! ?7(_A9bei+>x9 HSÿ@3\NỬf\Ei[xLnh8Ix! 3ݙMi
|di(x  9`dG{	^듵CWx{mlѯo>mW u	c"1]x{mGF=n&Ġ*]hfVLF 
x9 Jmd(17}wjx|~Cʳ\KJx EQƫTk(t'Ojחfxx{mҷ81g?jrOCf=F& \x{mҷ81g?jrOCf=F& sx9 HݽͮF47dk7vM\RdYE1b` ѝUrcPBx>}ȅGիdöF1L Ttix>}HΫ>ISO{P{Dw1L Ox9 Hh[^)ʹTa%˓\M,z_ut8ʓ4'+Hx>}HSJ{䟕2VnI
'nag 4ux>}?ʔD?1L G~x>}HgKq?_2?Qaqns=# ڠ,xf &>1d"pH8ԡ=Vz&v"79t;\M,z_ut8ʓ|ƈ8Go8q
6n$|0sx>}H_13fmK'Sǘ|ds=# x.x>}w&HWäwN'0Т 8rx6 HzBd[4M:F?b y\+ČZ9뺬w-̑&[~Ex6 HDDšP/Cr"\+ƈ8Go8q
6n$|o	x>}C;dQ3Kz.)Oɺ T|	x9 Hhe tg<:x\t;P|!h$xQ  'fO2Wa4ê**he tg<:x\t;P|I'Sx4i7HS3?;1F D6x [D,K2Ebx4i7}B>GƉA> Wl x4i7Y]~A=/c'q? B=x&r?<9?k4 dx&R$}_\S 8x&rG0B{:۽]&oZ)LP5 1xuT	,^׵KWnqGqOQWanvgvv4?jc
TKwhPENEԺ
]Gpo7|>x-\`Ŧb!B;\rEgFQ$BxгRaU,`6e)-g{.c;%tb}u=9sP)HD4ċ-{{.9؎NCq|AeI::qٕ2!E&Ŕ0k\.\xހ8y'V1>Yc
P
3³Xu׌בvrb0E1X^@D39qIأXV(iU?sh.0U$d>&>}܃Ӯu<$;K(I0>{̜6 EW-I_uO66wQK&,"UQasz]wI´wiS1_ ҙvTy_J_%zТמu]k s#	p{	+
>*%=AI1NV5򥂮O{tE\IJJ
qFjp7<y}{^qdG=;qfzϟjےݶ:e2S D7!*i{Qr'+l?EImˏϱr10`Zi[Z?6Opq'_6_$5,%):745k:}^htyέOH}Zn|DF5oIpE(qKϡ/=BѦ]/$"7
656iW``H&1ۮ,j!۟kAImS,ʨ1>^nؽ@ˣ Gx2jLw륂J=B?*J6zWuV>m/0xTycG|Ցj`)Rș*23մY#Gi)*#w3+myD1BP_gJ&>y6[dD`~1JpoujPBfD53~}cS7H񉔊-@]7"<CcE?>Z
Ӑ|'oo]K-pQ]Yȕ
xSf wp]dN!1uо0*kZmP	t-
$!E$avcnP`N}.reur˼ނ>|7xD$100644 BUILD.gn E1n+Wrn$o%}{:>%[?beّIƙ&m{-RX)9~yuk;It'?;rH"W CI|@(Id]~QP	IQ~2x◼̔nLf&'
"QhOa_Mw9yG4U!V*n1dE*Yl'N"Lm3ې,>f{C<ʚEdйs:#*gSx;"ȣT,{eLϯxrɦ -x5 !	:p.qb5{ނ	jخSf0<}}Ex340031Qp
qKcjk׮ܦ.]ff PK)MIe(9䛪kNm!d&ed&dde1;FI)6sjO .]~x++$>}̦o;~v#ZđuCF%x++$rc^R	g㻛(e Zئx31 Ҕl	o&_-1K'pVll&ʲd͋z"paofΕWRZ\ On)wA%*JDEz!ë}ܼpˊ})EH6w/rcZYGUAe&Ƨ&0̙?{Bnew#nc\uY{)sYw&MM:14/%
>kE+kl=+4ql6d9IEE=wL<Z״7lC>@$V!ٮ0_eW8칱`j+DiYfJj~|AQ~2(0S3RyAŞzXn  ޿
~x;|y<_ϟֵQh PH,OOIMf;场ϑDf^۽T^Q{ǌiӮm*\Y0ˣ&}1ݳ!?^l:1,3%5?(?983/=>5/=3/{MKf^}v[ IQ-x7 D [CD+kf'!VkǬ΢Kwn2OsxZ 7+"\M 	hv~40000 av_codec [kߡ(FM<0FYALX~)S)|/x Iv?72x챝)<]x7 Iv?72x쑝璴Bj#**,
l{]U2+#x7 Iv?72x쑝SuBL4G+i(2	Tx;|y&F+Ym֟{%爸.=x;|y&FW"vR^nZɹlQfxW 7Р3_t_
|"gw40000 av_codec 'La1>!!+MeK<g[fˋG'fxr 7Bw?7o!srIQr40000 av_codec HS왝Mdv
j;Ŷ¹?g ='VCMq4fx;|yX7/8+go6F9 	x;|yˤ|n5mM: PH,OOIMfؼx'f\)}ml<B]a/")bV`BDkJQn|ZQbnjy~Q6kY
YrGic:ݏڊ,{~s؜isnĲ^b RB9x;|y<_ϟֵQZsPxO 2o !ƂcW"~*Gq]ؾ5cp%=~mdĪovvX%]x  ?9̶sѺjxKkx;|yˤ|n5mM: PH,OOIMf*tפ1L]8mo%# gu\x7 v
j;Ŷ¹?g ='VCr"x;|yX7/8+go6F9 Nx  'VC}x;|yC%W2C")F x;|yHKraS/^jF .D)xO Bw?7o!srIQrő*_D [CD+tΠ&ZRHR_2$x_ <D [CD+40000 drm_framework Gq]ؾ5cp%=Du\8mE9gN*uxO Bw?7o!srIQrő*_D [CD+es30 Azq8bnoP#*x;|yWwX&9dBVi}+,x7 JHUј?mBd0|es30 Azq8bnoPmEx;|yCZ}sUްz)F qx  'VC)x;|y30Í[Wonqd1 eUx  [fCġuڦfRx;|ytQWFOn(>5FZsT[,x;|y?쓋88k>3~F9 Xx;|yd	v5V,ʟ[꒍Zs4x;|yۧqB
_)HhS~TF9 y/0x;|yץJΟLfyZs.\x;|y">GIyrzs޼mF x;|yHRwA-+t/,eԱkF9 [4x;|yطdo5F2bʍZs4L`x;|yHPUΕFY}ݸqԦZsx Zɟga؏pd*bx:x `AR7*hx;|y³?'_rR i!F9 /+x   W'Bv@ؠiE2fx Hֆrypiʱ):x;|ytQWFOn(>5FZsT[@x  [?fg]72!	x;|yCHl.c5	8MhX<y
 Ǜ6x;|yCHs8ܿ6};&&W(|)F 'cx  0e;ꔱ2x;|yC3VO<W+e4>9y
 sex Hֆrypiʱ):0x;|y)}$7}+',x Hֆrypiʱ):Yx;|y<_ϟֵQZsPx;|yȷ+'g0ԮP)*Kto%# ,xr 7Ya	"{8褼
|40000 av_codec &f	2)*-SM<g]ciN	3ﰑ<൓/i+}ެG5ғ2L3U,x8 Ya	"{8褼
|*V<൓/i+}ެG5ғ2LFsxO Ya	"{8褼
|*_g]ciN	3ﰑ<൓/i+}ެG5ғ2 %%x7 }$)^tu3UG@M=DN.s[R?nI1Jy2kx;|yCHt{JʢVϞ_z)F @Csx7 g]ciN	3ﰑPc+NqKCL`52{8x  ^6/BTܧ'ULz2yHgx;|yBHil9g?s5x;|yB*ng8{/ݱƹ 8?x;|yCH@׹dmF~>	eM'Oa4 
lx;|yCH5Ozk?sL+YTmm3y
 x;|yȷ+'g0ԮP)*Kto%# Ex;|yHbfeWxlӾaѷ Ȍ{qx;|yBHĶձazzU]ww7&q&# F,x;|yդx߁/o>oiȴ !Wx 9%E,"TCMy	x;|y:LϋSz*11 Ĳd%>Wj_`/i&n_Q(ϑƝE ZsSS2KRK2m[KSe_-7gDz';2ڋH߼/<|_8.g<< Dx;|y.*צh|( rFJF ܾ/x;|yȆ^OOW[k]R}+k0x;|yhxe_.&4F9 (3\x;|yggN8ukA($'秤&35soԥ]6V2 Ox;|yhxe_.&4F9 (3zx;|yCȜu+4>+d0BTp)F },x;|yCFuZn>-s~ڥS Xx;|yCߩ?̌fߺ԰F# 5x;|yȊbG9xG4.6Yq )-x;|y.@$ǗpM-_dGV %x;|yHւC%VUЛ_[޶ѷ In2x7 9a+KmJ!$s:M`7TA鲽	EewB
Atxxs 7%<<=b`يp+40000 av_codec Jt-Wxx9p/M`7TA鲽	EewB
A?,/^M7{ıgo2C1	zx l9g#XYx㐔M<$o%zR*yCL/̇;e?_o{~ c7GZ)D40000 media_foundation ӌcNea`ú%74<
"A?ZQT|c[2>x;|yCN#7
Yv)F Ix;|yCJe
sg?ÌS <vx;|yHǧ{z2wwzhBro%# .o"x 9E	eooLBMyPx  VOʬ( ]2mZyx;|y.HCӣ5gn}e\x#c+ &x9 - cB⬋AsA?9*[+wj˩}LX
2nx [
?KFٝnq*0x a_)@6QǩvLK*pJx;|yHݗ|"ON\^Ubd7kiZsvx oЏ́*|$x a.TY]ǟ#1*(JRx9 - cB⬋AsA?	\#2 tx7 98meثVghNZ!MiB	FhĦFœAˡFx;|yuCzkO|"_ML@po%# 23qxz 9S47{Bw7!n9M<$o%zR*yCL/̇;e?,8EZ@̕=^40000 media_foundation Wt{T.ȊUB81fA2@x;|y7+bDv8z>:Uh ӄZmx;|y.ȡmif<ጛH]dGV Fx .Px;h(켓A!7nx;|yCHRź}_ҝ< x;|yHSew]7؞Qk# :Gx +,S0TzݖG*7/x;|yHb1޹-U7Z]c[ H[x;|yhxe_.&4F9 (3x;|yHa_s0J]~Emo%# y3x;|y.Hdµ58ArdGV E`x;|yCȜu+4>+d0BTp)F }x;|yԓ)fw9X-lo%# 'U9x8 9a+KmJ!$s:M3*HOT`1;R2tM x8 9a+KmJ!$s:M3p}$d(=Y_o2sx;|yCK2[-,?tԟP'aF# Ttx8 AUl
]ޢke*Vo=@/u!~7O\<j-2:x;|yEC;Sg녬4κQk# d/fx AUl
]ޢke*x 0%;XHK1ڱ*fBx &~sCO 洱*px;|yi&LbhoMZsU(x;|yHSew]7؞Qk# :Fxz 9!Xb%0/<:NM>va"phs40000 image_framework 2r2ۥ{`*)7O0j81 V.?)%@2Z/?Ox;|y|Lם]&;\5۸bY@	9D[rdw-: hF# $x9 ,8EZ@̕=^j׊(Mb"2D2˩]x9 ,8EZ@̕=^j9*[+wj˩}LX
2%x7 94J+~IT<@,j1jM,8EZ@̕=^i &%x7 9Gkǌ
{εMr#+qMed4āA"kx8 9Ia1"!_G*g7eM3&ͥX#Pյ5{z2x 9 w}=ႛНFuMyy;x7 9Ko2n2&VMe
sU"uoAv;Fx;|yGbdw|ئM}+Xqx7 90Q$he{ {|3ШM'lDh5٫1;rAbx31 ҔlKY1Go^T|}i?9)_&e)ynD{ND&ʹJ<&0|*}w=LyS(hUQ"і
VǆUu}0DiJQ.Ųطtn}uii%eJ2ZN>.forBqQde^Z uG|Kb *sSS2N/KI,yGrO__jb]&6\d&%U21E8k]6sQWXZdiW;
hTu(-LI͏/(Of^z|j^zf^*Cl!-3Lkݷ y9zx7 [98p]V.m.zݻ1esDWYlM	@x;|yȊbG9xG4.6Yq )mx9 sDWYlMjZQT|c[2=mx;|yHE]k,׈,&k{o%# Ii,x;|y7#sWv5?YrGKao%# r}x;|yCHt{JʢVϞ_z)F @Ccx;|yɟ1϶3X3~F ry6x;|yCȫ;Bq1y{cwS zHx340031QMLOO`X?u;WY,~Ye^bIfY*PuެGsZʂ".Ȭr	7/h3HAP
T=ɶ-sEKq~iQ2~-V|~ui{{"FRLB
2KJԊ1fw3~Y W[XP,Bu5G6(.m-[Xv/n> `VqxN i} F&NA=! *G` ΨgG-<;% 䄇Pf0BOmW|,UY־"&Nx gr[_NƱ*a|x6 u?ݮEykg/!k
*C 	&Btiz.?YvAAx4 gr[_NƱ*?uKXI3;Smrx6 qqIߺ0X<ƺP5	YR8oF^54Y{xK q :Pm<@S]Ps"0Z?ErX+е@_S{?J$ZxK OztÔC, 5*Α*mISBH|UE?qAiEmֵI%3x;tiHuwO %cʛ e\x6 Q?ם%().9*mISBH|UY`iGx6 &g:a.}ioǑ*VWwOs}1KY/Ex qm`Ǵ3%_x3 q
߱)?0d7k(N8	5}Bx;ti
]٠|ȶoaٽ jx Ꟙx~̓'ڒYzH,x;tiU_'3_]ӺЉ/#]vx4 OztÔC, 5*α*5Hܕz8aɶuONr
x31 ĂԲԼc38>gֶzN}5*JLe#rBEN)IIM*Mg]zݷMy[+VOaSxS+
k"ZKSjUY?Up P1 FE"x3 Vʻka(놢	M,2Jj._3×Jv_}G dx V+&M|jӉH!jzhjBex[øquwT{{ژB~ɟj) }+x V+&M|jӉH!jzhjBeFx V+&M|jӉH!jzhjBe-x[øqBcmz^z\»YN PbxreB^@]"*kl(# ʩ6xb 4?$N[mJ'Q&w	100644 camera.ndk.json ߘ.z΋t'V+<smVɄ&V<hy )k%'*x7 4$N[mJ'Q&w	HVɄ&V<hy )kӯHx  tÏ.g/4/ix8 GۓN(b-eH~ -K"ba3e5*x y^
kw}^30wTrcہ;oD<ީzG{({8xte$DIwgbۙz,cbFAmd~҉rd?0xkk$]Qw62OHn.b R
_x XӤ\٨weRg<@,-Q'Hl1'eDקB.x*EؕP,69tFC"Fjxr*f40000 multimedia eVQ=k$4l,tX/Wǜ^pa2hKxS 6
sȬu0c׹@=ީzG{({8xte3lPdA,!&RTJ`}س,~$>_x! 6
sȬu0c׹@0x! jIt;糣d"/x9 52OQ3@Фٓ=OvT4% ^Ot`eGx! ^к߰yՠ^r'/xkk*R(զKobZ_w}<O~bF Kx; ^к߰yՠ^r9CxX#ӅӠY%dV/xkk,RI`Rig"w, xxO ^04n5J/<v
ieZKSd_%Wxkk,y<7j;/
62b _cxO V-:^կi(_KG4<W1ߣkHI9njeZKSd_&"mxkk,\ȹJq3[Y3 J<x: קB.x*EؕP,[	PH2L:i%~K,Vx: קB.x*EؕP,[	PH2L:i%~K,IxO %l"o<̌L[c<a/Z YpyZPetX/Wǜ^pa2 U&xkkE䯛3mYO+,=G+m1;+ P
x_ qՅr[g69tFC"Fjxr*f40000 multimedia 3lPdA,!&RTJ`}س,v*nxkk *A}_/jfی /xkk *%x^gގX9hhmF ^x: P%lG[JaI<Ba3<۳e1(x 3%<X 8p<bKD^S؅$3eiS!P|`3C!._;Jsm[ Mb#ԑ+o;,A9}LcS_s$4u"&?m&;lJ*I$1f3r.
W&xkk *1k`dY6# Txkk *%x^gގX9hhmF .x: Ӥ\٨weRg<@,-Q'Hl1'evxT o-l>yDҽ4T.a<XH1vi
{eCJj>Jtǳ,""Abxkk *"^Ks-ܺU/:xkk *goI7*&YXelmF $i>xkk *_ͳlrA;g(Y6# ըlxkk *"/b8qlQƺYw7f 2xkk *(+τv\Y6# xkk *rq}r,-~;1Iܬz R2x: )P9,=b	<Ir>/e|x: RtMBE_*ȓ<%>_rI|Lv[q.ǘesFxO ]`8+4<fJ =U}gi"\te*cv$¤%":%x 4.yb| 8N<YbodTee@ٓeiS!P|`3C!._;Jsm\\\p4%zM,A9}LcS_s$4u"&?m&;lJ*{ꈤܘNY6<׵[ x 4.wCTi1Rȓ<N}saQzoeiS!P|`3C!._;Jsm\\\p4%zM,A9}LcS_s$4u"&?m&;lJ*{ꈤܘNY6<SZ_xi 2]DCo뫺|E?6헝X9}LcS_s$4u"&?m&;lJ*T;BX!..Q*x: m9}LcS_s$4u"&?m&;lJ>#Ixi h?buR0ҳC!._;Jsm[K-ݹYgfB-d,H
:mnѱύT\,@x6 FŸ7J[{e
Bk ;-҉詺x6 gЂ	t|ϟЗ{ꈤܘNY6<NxkkMj$|~tvnGk *x6 ¤<GڨH~zHXس\ŎV)49imox6 @.(Yg,_|(8K4x6 E>1Wqis
Ku\]'rbX!yx6 Gft8Бv|?ʄ ?
Ku\]'rbM/>x6 Hy{)WW'
Ku\]'rbtx6 r˵.uf^џ1TM."\AHx6 /"ccYШ_,O=Znŀ])x6 gЂ	t|ϟЗ{ꈤܘNY6<NRxO FJl=?\]Tڄ<|_gdTiYWe{ꈤܘNY6<Mq$n0x ]Y8lPI֮Qq_ed)C<^׹-ZARd*5vieiS!P|`3&ZخL>z/קB.x*EؕP,[$=DgLR@,AND;*vwOt(^f곁rlhN³#]F'RŜl#x LfT- аA׋0q!c<bKD^S؅$3eiS!P|`3iaduJiezmTecBË,Hf{eUL,AZ
	Au>,?Xr20gP:}<6<	O;;xkkMMt◶-RokV~Z^ PxkkMd,){\{{I ,4xkkMn&u4=K~ )xkkM%h |xT 끡hB@x>LB6@%ݓ<,|UU{"g>eC\\p4%zM,&#_xkk *0A\oU}'ݬz x: .wCTi1Rȓ<N}saQzoeVIxkk *0A\oU}'ݬz -x: 	THS̹wݓ<bKD^S؅$3eΐxkk *0A\oU}'ݬz Vx 3z0o_h]Z+Xzh8C!._;Jsm40000 hiviewdfx `s`J,ohI7z[9m;t^57&,A6ZOTWsjdx 40000 network 8l-~cl|3a|gVוۺ,c>}W61xkk *d𻸕Z6}mF x: gR	0hLOS14G<N}saQzoesOx: .:o
FW,UPN<bKD^S؅$3eNI=xi p]1ٓ< ;rhGp+?emTecBË,Hf{eUL,I$1f3r.35xP 9tګVK=<MmTecBË,Hf{eUL,I$1f3r.0"x: 	THS̹wݓ<bKD^S؅$3eΐ]xi %<X 8p<bKD^S؅$3emTecBË,Hf{eUL,I$1f3r.D+xT %<X 8p<bKD^S؅$3eYPXݻ;,!9cxkk *w]{3o[]φZcAuXo3 %xkk *1dԮoo[:xmF 2>xkk *ktQїn{`޲gmF lxkk *¼%o,),afی $xkk *rJٕy_[amF .Hxkk *b/MtN'ڬz ~vxkk *!m^%/>}Jfی ]$xkk *fοΜn7DzZ@fی Rxkk *bYgYF\\szmF z xkk *~f=',Idfی ܏ox }>i7H!ew<@suQiaduJiezmTecBË,Hf{eUL,AZ
	Au>,?Xr20gP:}<6<	gX6 xkk *(7$5yk:gUN٬z exkk *}oҹ_|o|z_Ǝ:xS fiaduJiezC\\p4%zM,AZ
	Au>,?X"Nux: fiaduJiezZ
	Au>,?Xǭh>x *]Y8lPI֮Qqz0o_h]Z+Xzh<^׹-ZARd*5vieh`s`J,ohI7z[9m;t^57&,A61&ZC_;eId40000 network 8l-~cl|PlhN³#]F'RŜ `"xS fiaduJiez(j`+p,AZ
	Au>,?X$bxkk,.нGZ']l8QվY3 x: Au7Rtl^>KH+<8Hp<un+`ke"Xxg ]Y8lPI֮QqAu7Rtl^>KH+<8Hp<un+`kelhN³#]F'RŜq/vlx4 ]Y8lPI֮QqlhN³#]F'RŜtC=	Cx `_ed)C<^׹-ZARd*5vie&ZخL>z/(rxm1R
ņ% r[ʇ8.a'3%,AND;*vwOt(^f곁+$H-x: ;'a=4tjѓ[L7S4
r<"Nac,/x: _ed)C<^׹-ZARd*5vieIxxkk *br$F9CI>ve]џܬz f&x >z0o_h]Z+Xzh<^׹-ZARd*5vie&ZخL>zS`s`J,ohI7w̾advtO,A6a5 E9>"R7^#fx40000 network 8l-~cl|dVmGxl f&ZخL>z/1Զ5IDQK[J!5@cc(٨^,AND;*vwOt(^f곁F3{x: (rxm1R
ņ% r[ؠILvnnڅ,xS f\Q$Auzz[9m;t^57&,AS1nA#٩2yI[7{%Yux yPC?'@X<I`fz\eD1Զ5IDQK[c-u@<~[6U,cgBlt_)d:
xkk*"'"3_+y1k
# 8xj2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+oEK<9CFQq/9<I`fz\eiZiGICOT̏9f|nm5z"ȀQ`bc2RI_3͊ ieȓ7>$*j7܎ b?940000 multimodalinput P?91(c/IV9:CRLJ?p7kȩڻ$ا6k-dC*75eiBR~81xj2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+op׭$xh)_S <I`fz\eiZiGICOT̏9f|nm5z"ȀQ`bc2QOf\kF} wPYB7>IColAQq40000 multimodalinput P?91(c/IV9EV2Ev_dL[{dPkȩڻ$ا6k-dC*m)c> *8WXmARn3ۙ!5xQ2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+oEK<9CFQq/9ZiGICOT̏9f|nm5z"ȀQ`bc2RI_3͊ ieȓ7>ЗKJOhG@40000 multimodalinput P?91(c/IV9EV2Ev_dL[{dPkȩڻ$ا6k-dC*75eiBR~8Pu xkk,2ksD0Rq{KfQO 9.x: PC?'@X<I`fz\e+dIxkk *Bւ⩁r}aeجz nvx! Q̑4~:k0,v%xQ2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+oEK<9CFQq/9ZiGICOT̏9f|nm5z"ȀQ`bc2RI_3͊ ieȓ7>$6)9ۢ40000 multimodalinput P?91(c/IV9EV2Ev_dL[{dPkȩڻ$ا6k-dC*75eiBR~8_+<xkk *3KO\= ^3mF ;e=xkkېjwiWhĥ21 ԒlI<v]!ϛwl^̚ 	xkk*Ruta1᷾eQiټ5 :.xkkpE$?-&k1\.9iC5& g9x ~KO,m7je<s`؇dg̭/~ie-2z]tmړQ-Iwʓc㍜W,5~WEsBX?JIxQ2?K⿒㑔,؍40000 BasicServicesKit w|XyY#xw%7qpܶ\HIn2S}uxe(-z^ec@}`_S!P|`3*A4űIRߓ2V}If)-IٲĈEq7>Q̑4~:k040000 multimodalinput +jcSu/.G8V9$Qzŗ98W ,u"&?m&;lJ*lhN³#]F'RŜuo)x CKO,m7je<E8"ִqNCje-2z]tmړQH`G\&m^Cѐ'ޓ,A6s󞿆40000 network d,Ԇ[!*P#7F] D=Lֈy"Vtx: $*j7܎ b?9,c$Qzŗ98W ,d}u=x9 ]*wۖqwޱq$*j7܎ b?9,

x Sk!:&
SopQOf\kF} wPYB7>KExZzpVԢ7m40000 multimodalinput +jcSu/.G8V_u"&?m&;lJ*m)c> *8WXmARn3AaE@x ~KO,m7je<s`؇dg̭/~ie-2z]tmړQ0> _Y\"H	UMӳ,5~WEsBXA:Pxh ܶ\HIn2S}p׭$xh)_S IColAQq,ɪ6cx5ꊃp!0(GxP p׭$xh)_S eknAO+}VqH,m)c> *8WXmARn3ۂB!&xi p׭$xh)_S QOf\kF} wPYB7NHT.td[LM{ͳ,m)c> *8WXmARn3x&,x: $*j7܎ b?9,c{Yͅ)Ђa
(hɳdW?gx KO,m7je<E8"ִqNCje-2z]tmړQXwln8hQTKi0[YΜ(Љ,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5`tcx: ]5&d> A]-[	2!恒cA/rH,m?,xkk *bcukۿW]eQ`'Y6# .Zxkk *R}yTI]~\Q;ٜY6# xkk *"Ӱc-2391u\Y6# 6xkk *+S$d%.*\aY6# ?xkkpEDp]:g1ӫjNXcC5& IxkkpEp
	WSOn(:+qwC5& wxkkpEd)s}EwO-I̍`mME	 h%xkkpE٥mNޅy"e$FE	 :SSxh ZiGICOT̏9f|nm5z"ȀQ`bc2QOf\kF} wPYBo	B" E:л,x2?K⿒㑔,؍40000 BasicServicesKit w|XyY#xw%7qpܶ\HIn2S}uxe(-z^ec@}`_S!P|`3*A4űIRߓ2'wSIi#^7Q̑4~:k0,c$Qzŗ98W ,PlhN³#]F'RŜu^~+xP p׭$xh)_S r*A4űIR߳X")cTF|>uݑ&I
xf ]w|XyY#xw%7qpܶ\HIn2S}#^Мjނ5J1x,o	B" E:s/xN ܶ\HIn2S}#^Мjނ5J1x,5¯C4Z`%h%\x4 ܶ\HIn2S}ɪ6cx5ꊃpox6 p׭$xh)_S }UfF
oΡy2tJdxe p׭$xh)_S >NHT.td[LM{40000 multimodalinput P?91(c/IVq*JxkkpE$A5A|IfgE	 okxxkkpEP$QΧ{C*_K.E	 ݰ,&xkkpEĸ'⣏fRaw_݋n~Ȣ TxkkpEd?޴|XN5,jL [.xkkpEdF͹ZNN|~,jL f3x 42K⿒㑔,؍ʱFuxe(-z^ec@}`_S!P|`3*A4űIRߓ2uˎ<V2I^i
z7Q̑4~:k0,c$Qzŗ98W ,PlhN³#]F'RŜvSa{x M2K⿒㑔,؍ʱFuxe(-z^ec@}`_S!P|`3*A4űIRߓ}Q̑4~:k0,c$Qzŗ98W ,PlhN³#]F'RŜׁWCxkkpEdU0c'vC5& +ox6 Ҷw)BKqnv8QaZm5W}ekZԄz.Lxkk *2y\c.9O?ma .xkk *b=9-R2;-V~J۬z [xkk,RS-tn_sg72b ux; V&:,BV늚=so6:øMc,zRxkk *R9;|g[gd: xkk *۵"hW3®,2ϽĿ{mF  x "2?K⿒㑔,؍40000 BasicServicesKit w|XyY#xw%7qPC?'@XS!P|`3*A4űIRߓ}Q̑4~:k0,c$Qzŗ98W ,PlhN³#]F'RŜڳjMlx ~]w|XyY#xw%7quxe(-z^ec@}`_^Мjނ5J1x,c$Qzŗ98W ,Po	B" E:Л94|x; !39mZɍ07VԿ:6
T@	q>,	Zx f2K⿒㑔,؍ʱFS!P|`3*A4űIRߓ2עKa:qOPH7Q̑4~:k0,lhN³#]F'RŜƱ4O	x g2K⿒㑔,؍ʱFS!P|`3*A4űIRߓ39w$&SQ7Q̑4~:k0,lhN³#]F'RŜ3BM	)x f2K⿒㑔,؍ʱFS!P|`3*A4űIRߓ2+<BrQ4^7Q̑4~:k0,lhN³#]F'RŜ>M	Qx f2K⿒㑔,؍ʱFS!P|`3*A4űIRߓ2;O{zQ#>P*7Q̑4~:k0,lhN³#]F'RŜ2L8x :2?K⿒㑔,؍40000 BasicServicesKit w|XyY#xw%7quxe(-z^ec@}`_S!P|`36Q̑4~:k0,c$Qzŗ98W ,Po	B" E:
ZTx9 2h$N6RFFZiGICOT̏9f|%xg ]w|XyY#xw%7q^Мjނ5J1x,c$Qzŗ98W ,Po	B" E:А.vx: #IǢn9P2XȱB
[3I\A|	p@F49P޳,Hxkk *rv=WN9yB2#cfی uxkk *2ta%3la 
	.x dEK<9CFQq/9RI_3͊ ieȓ7$*j7܎ b?9,c5t$ޟu4wqxkȩڻ$ا6k-dC*75eiBR~8),DFXxkk *۵"hW3®,2ϽĿ{mF Xxkk*RoX6*G5g*N>y1k
# xT g. ؖWvMIColAQq,cEV2Ev_dL[{dPdv5%>ix CKO,m7je<E8"ִqNCje-2z]tmړQo3Hk,e(xXj,A6s󞿆40000 network d,Ԇ[!*P#7F] D=Lֈy8V_.xkk,2IOmjE/0d%jݜ̟͢\x6 -cM*g/R\г;ɚphk/X~!x6 ےD=XUj̦WE6]ۋyc*-5ᗪ<8xkkMRyoJn3vz p,xkk *R8A֮$џ}tXqSnmF Zxkk *(À._`z"rfی Gxkk *r9Flϫ}]5~3Y6# e?6xkk *25Ounyٷ2fی dxkk *brNn[V_I\t@8Ѭ:\xkk *rW$P滼gLfی @xkk *{̓k{vwzmF ߋanxkk *bӕ{=b#ä[7f Kxkk *V*>_Y.;PGΣeuXo3 5Jxkk *2Txοʿ̿sfی oxxL2?<\N_=KxYg_40000 BasicServicesKit X6dsYoк|ql"58멧cvCM!9pm`ý(|Wa\cJn
@/Ȋ
mtx<6w!N}HS8eD8wln8hQTKi040000 hiviewdfx Brl7(72GD/sFg{Г,	&8NpǮ=]Y(]^O1*%Puz1x tQE8"ִqNCje ]`cuϸ%<oBt,A6s󞿆40000 network d,Ԇ[!*P#7F] D=Lֈy4?#xkk *y&}S;fی  Hxkk * bjKl|~-[hmF DIyxN *s FF̤C+odLG_)[U_m)c> *8WXmARn3rg_x: QOf\kF} wPYB7nvd@z9@b,3(x; hTi8Ha?YIColAQq,Rxg C!._;Jsm[ 
ʔ!vܙD\,š߾ϡN-#7F] D=Lֈy1Hx(2?<\N_=KxYg_40000 BasicServicesKit X6dsYoк|ql"58멧cvCM!9pm`ý(|Wa\cJnazx>ZXj <6w!N}HS8ehrceA3N2!$e	7yψ:CL'X,	&8NpǮ=]Y(]^O1*\2(	Z,^j}yxQ2?K⿒㑔,؍40000 BasicServicesKit Y8lPI֮Qqpܶ\HIn2S}PC?'@XS!P|`3*A4űIRߓ2QOf\kF} wPYB7>YUp>{քs40000 multimodalinput +jcSu/.G8V9$Qzŗ98W ,u"&?m&;lJ*lhN³#]F'RŜƬfkxi p׭$xh)_S ӎu( -eI6$,cEV2Ev_dL[{dPPm)c> *8WXmARn3>(cx CKO,m7je<E8"ִqNCje-2z]tmړQOnƌk>Nrṙ(ɠ,A6s󞿆40000 network d,Ԇ[!*P#7F] D=LֈyIX.x 9*R露X:<-zQ~M`^m ;Ue-2z]tmړQXwln8hQTKi0[H9,v;NcNq,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5kod?xkk *2'GϦ7q8YTna Ұkpxe{XLy_-HX)Ĳe}(9si935Ӡx`ГUP.*eBrVJ<mvvvy۩Ơ(H^|
qON%aܣ1F1eE|hyom4T.a+DcpJa0JiهEcXV%L:X%	,N+MhRT
CVfXgɠQD-bZ*.}ehPr#IBBa`FBjMz&w<nv[[z7)Rm1P[aܼǕpAu.k= "qVz(y;>f^\56_\]QQy.^fg~Z/.o]xy,IG^GnM쯗Mg3֒0[Fkg.ԫ/y!Īu$`UeMWMX{a~9K0G*A1×KK&eiH ͗A	
{ϓv]&`AT^m
ou3X V:xꆾh>>q{o/9ol`.Ǥ'Sz焗*5cZӧ30m7bqJۓ)nHF4ߤRє`0
z¬ςט:`fs;CbAMk9[Cp"%@t,.Ȫ6WsAs\
H	#6I4<UG{}mGE	P
D4?cZS.da j\HD8Ƨ JzM^Ŋ;VLa\:
KAT,B0/nU13onBQ(ip4lywHUꉻ?jF0
Mh:g5J6Mšfw<^ݾ kk4_ɊIE,jV*F䤕f阖9` '/'(E	Ww6{u" e*,NY|[BzEx$F
wf;oI#F2B/bFe_GQgSokVIp ,ܱ*RdEX@Pps@>
D+k[RF57@b6(eggap(a9JL<Iۃ'ZoϷ4ab:D8?EG5۵@oIb(Pnݞ=]8h

I	zU(}V0Y8siʤu;jč,QXBi	jbnþfC\
A]81c6m[@
25ʿd1=K#T#`$b`HΓf/ZGjrrX8*
ju2y7?<UcDUQ2`.:e
w7t(998hZ&Q>(HXHqTV60e+/<U7%ߖirxkk`d/v6Ce暙י}:wg(8%g&e&{g0$5;)zk/>XX CRۓnng8fpdƯ<L"^_"8boo4/d,l#{>τ^=l/ҖV}ʜ)%/3ij&?bnp@mB\n LOJaȓg5R:x-!q䩫
228+<xRޫ^s!*222SS*ud_g|E! 5wIq;#WZrKsJ2sSs2
JKvwkoi13o7(dǗ$e2$~n30簫RFqiCRK\Ì\1ħ\X]0kbV!F3'V-rrnuϧ8O>ɦ%(َAkXxCDcPm boxkk`dXn-]k$WW<3c(8%g&e&{g0k~wqmc!?46m꼉	08pVaigςKo)X] vysyy3Bf~s,ʬ(بzXY;&̝حɁ,"M|cݑ}x}*z)ElM?+Hx+#,3<%(9鈣15?S*NN儨+(-M-Oa(̯taӊ/~OJ-)MMLdj=mfW8O(_["fVYF;{ͮ~￨!p{3XC$0bz`߭osx/sz6 ["Gc͈5Ο<5AqY;}=ycBrlUnr%B%v۶b 	\hx 2e	ZPAF x} QOf\kF} wPYB7>KExZzpVԢ7m40000 multimodalinput +jcSu/.G8V_u"&?m&;lJ>_4px! RI_3͊ ieȳ&D0xkk *rGgN
Lvdד:]x ~KO,m7je<s`؇dg̭/~ie-2z]tmړQUJ(IP72)9@[,5~WEsBX%:?lxP EK<9CFQq/9&Z$GNWlxx,75eiBR~8;Kxi EK<9CFQq/9QOf\kF} wPYB7n0y-MFgˎZwl,75eiBR~8,Yfx! .<csM{5'lJг,r0xkk *RpGoVrTimF Ro]xkk *#_|_k,5جz r'
x *2<\N_=KxYg_Fpm`ý(|Wa\cJnUAYEW$42͂eI-tH}ytߊI׭,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8#7F] D=Lֈy0_nx )2<\N_=KxYg_Fpm`ý(|Wa\cJnUAYEW$42͂eDwln8hQTKi0[I-tH}ytߊI׭,A6s󞿆40000 network d,Ԇ[!*Pd몍%;'-5abPSx2<\N_=KxYg_Fpm`ý(|Wa\cJnUAYEW$42͂eD8wln8hQTKi040000 hiviewdfx Brl7(7)*JsTde!Y'c,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5|dtx 2<\N_=KxYg_Fpm`ý(|Wa\cJnE8"ִqNCjeDwln8hQTKi0[H9,v;NcNq,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5lx! Y߭7l8~hVP,-x! Z#(
G;;n%F]x! QUAYEW$42͂eB`x 2h$N6RFFțj-x! :jh;~&(k,ӕ/x  š߾ϡN->.x6 C!._;Jsm6#7F] D=Lֈy\Dx! !X;>Hn8],@
-/x! cDo9	]Ӡ,wK/x! lVk[Isx,w/x! lN}7SQcF,Ѣ)^x6 U!OĘX~ZPبĶGg8T|`r	d;)Dx6 d=*=%p6Eؙe	tT&YN"d Bxh 2h$N6RFF#(
G;;nE8"ִqNCjeoHT5&2Ka7^-H9x; QE8"ִqNCjeI-tH}ytߊI׭,x! 8+~@[W,3x: Brl7(79_g',(?|xO]X6dsYoк|ql"58멧cvCM!9=tFl2:ĒEnPGm\ldv\$40000 backgroundtasks yDjFCxTSQ*U40000 build-tools 6w!N}HS840000 bundlemanager *!3MrceA3N2!$e	7yψ:CL'X,	&8NpǮ=]Y(]^O1*v[9rEnAM^x! Z#(
G;;n%F
x RZpm`ý(|Wa\cJn>
@/Ȋ
mtx40000 backgroundtasks UK9
fل!坸: ?Brl7(7j2_3!ބxU,%Puz1MJx! Z|H)q+][!!#)nH&lxkk`d/=I._y<q'tn21 Ԣb7/&̛)Sں@M,,p1߃s<#[k6@pI,I(/IM.qwQ#G^^qpIuR<-E*7ͯ!ǽM֛'3lֱwV|}=R'}M<<YF$guD9J2]vYɩ̙"/پw<[xXu@M>]	'?bѲڦy"3|kqbr h}[lfb
ϗȵx=LBzN~Rbք_<:x3OC%dd&3qVyoWG?CTddeU0pqDF߭tͷۯd@j&?e179$òOUB-)OI+(-ax7-ppәv[l340031QKɎ/I,JO-)KdXLwu[qD@K-)/f(Hjϥ71;>'d?y1kH	os/Od	"gKeYվ}Ua|I6-~m<;vs \x2?BZ%#Z+F@C40000 BasicServicesKit 欏eǱJDޱq>PGm\ldv\$40000 backgroundtasks yDjFCxTSQ*Uܓ?:<ºUuLUMs{9Mє@rceA3N2!$e	7>N#C~W6-8g40000 multimodalinput {
* _߿͑QóVGe\VZAjz`bBiux; PGm\ldv\$yψ:CL'X,4bx: f&ZخL>zND;*vwOt(^f곁M+x pz0o_h]Z+Xzh`s`J,ohI7z[9m;t^57&,A6S1nA#٩2yI[40000 network 8l-~cl|d;=gxkk *_bPՓ,ݬz Wxkk *Rmy#PSIZΣE6f @Cxkk *Rmy#PSIZΣE&:%~n30簫RFqi&@ZR_`q'G뺟2%Z_4sbF L&x: (rxm1R
ņ% r[b*}^0拇_|,`xkk,Revc#e,<bSۡM;ܾ{VퟒL@!#,3<%!A5A|IfgǬq8C	aω[VcMG9/<(Nu?eN}iK>ӵiŬB"v	NTddY7' NP.rxkk`d_u\UQ'W3lb 
NřEeɩޙ%ܴ#-\X7֥b޷',q>r|.%E%%y 3rL-JK-yryWr]'+2JVikq̫K4.YpxF͟pݬw\K^9q2cO>}9cƠ!ZӋKRJTrɒ\2;X@;P9)%9YǾ.{ ~wn/;	T&%1Z7ԷZp?Lev||Rș~4K51G>6^u3y%sg>=vkr YT<SWi҉k	Is$O]3( #3A~og9nYdL| "#,3<%(9鈣15?S*NNżܸCX<I sKsJ2sSs2
JK.:(pq640031QKɎ/I,JO-)KdX_qK*?[" 楖e3OZq
_uO'&_8y1k8IRܢɯywu%^9lFƿؕqCSDwlЗ7V+d.Ve&1NtY%MP_rꝳ Tr9Nxu (rxm1R
ņ% r[0,^TRs	{Yu˓,A6ND;*vwOt(^f40000 network pa/Ղ\Vþ?dD2\RxT z0o_h]Z+Xzh`s`J,ohI7yJާP%ԙnlCMڳ,{#5xkkpE$A5A|IfgE	 okcxQ2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+op׭$xh)_S <I`fz\eiZiGICOT̏9f|nm5z"ȀQ`bc2QOf\kF} wPYB7>3DbSHڦ40000 multimodalinput P?91(c/IV9EV2Ev_dL[{dPPm)c> *8WXmARn3x.qxh2?h$N6RF40000 BasicServicesKit cbTׅ[`jRqp*s FF̤C+oEK<9CFQq/9<I`fz\eiZiGICOT̏9f|Znm5z"ȀQ`bc40000 graphic 1Զ5IDQK40000 hiviewdfx RI_3͊ ieȓ7>[ꭀ<<:V:I[40000 multimodalinput P?91(c/IV9EV2Ev_dL[{dPkȩڻ$ا6k-dC*75eiBR~8 xl ~P*%  [z[9m;t^57&,AY^1 Iަ|<,$4>`BmP/x\hiGn>,!xkk *Z-PkƊO65p(n?Y6# &Ox: S]83ఓ[ݗ~ȉr!0y睜,qtx: V>;)gЃ^-wBٓ[	2!恒cA/rH,W	ox e]>I'brٗ~_ &qPC?'@X<I`fz\eQ̑4~:k0,cgBlt_)PI$1f3r.Hexkk,Revc#e, k.x: 
&Y[w}W<7.\V+ 'w8,xvxkk *ұq0m'/:ȼâqmF ؔJx! :^^xJٛ^	,Ux 
2Fje}IߑFy~+ԹAAYMm.@դwwO#̓<ji}?;)em^7#TsȨj,A6}&Hz
X+iYaU40000 network /YR J~ab'04كj{ i40000 zh-cn HQIzrTd]tx "2?BZ%#Z+F@C40000 BasicServicesKit )ߺ)y3pq 7%Np=l{!'~Za+B <.F4_T}+ei>-:∍W\,1{UHKp!*Bړ;bW-2!V" _e+pxN2?u|ljO
m40000 BasicServicesKit Pzǡ4N=7īq{TfbwYy쥓'Zye|`o]Ɋ{SS40000 ark_runtime ],FT<{}40000 arkui -@"0pg7-e~{<<.F4_T}+40000 bundlemanager Z\$JgXY74SI3ePmHQ
A3a;RZ?Γz/iz]!&Q#=a40000 hiviewdfx Tr !!u40000 inputmethod f ^իײ{8*40000 multimedia ~Q?A|^f>r.6OtU40000 multimodalinput ~aWF::YV9ί,0`1IXr#0'ʚM!UB*x40000 sensors ZI/$DQdr#40000 startup 54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn ˞kC1%a.4&6,xkk(R͆ryQ?4fEg FZx |l"58멧cvCM!m.@դwwO#̓<ji}?;)eU@NS	,eE22R	si<Alxkk(m+ڲ["_}z
76+2>c 1xkk(2KBoNmô.{?Q͊X`nxkk "P:3xС;V[f}L kxkk *dIWkγ.7WkmF Jxkk *2#bcU+ϧSt,Ena cxx! >fvVA ,(xkk * tƱsܵEsӽ:{Vxkk *rcA=r٬z xkk *>	Ykz=ofی zrxkkM䊉.MUH )xkk(h:Mir"Wy*,Y+ ɣ
Vxkk(UdN凮6Y+ '}-xkkMm5-3xrTw YUxkkMD ᡌOUX11' ~}xkkM]j5_5C~ܗ! ,'x a˝b]$*yz6J+x4 ]BNKw>fy!$@ޱqO\dޯ&70CSdex%x! 
@/Ȋ
mtxϪFUx! rceA3N2!$e	&١`x! I-tH}ytߊI׭,H x! *̓y&=m̊6,G0x! Xz֜*/@m\>,>>xh 2|2xS*gdFyDjFCxTSQ*Uܳ?P\٫Szԃ;*Pv[9rEnAj1Rxu 2|2xS*gdFpm`ý(|Wa\cJn6a5 E9>"R7^#fx40000 network 0.ҙ_d9e4Vx! Z +Y5ɪn MxS 2|2xS*gdFpm`ý(|Wa\cJn!YTvlCd@T&!hx2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gq5y~+ԹAAY40000 IPCKit pm`ý(|Wa\cJnMye|`o]Ɋ{SS2Y)6;<<<.F4_T}+40000 bundlemanager Z\$JgX8?sƕnEuGF40000 hiviewdfx ˪+oW77[K0U4DﴇA40000 multimodalinput {
* _߿͑Q100644 ndk_targets.gni }&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn %#b'#u;Tpx )2?BZ%#Z+F@C40000 BasicServicesKit 欏eǱJDޑqpm`ý(|Wa\cJn<ºUuLUMs{9Mє>9C2xFa=m40000 multimodalinput {
* _߿͑QóV\p	iMv:$~,Z
px S2BZ%#Z+F@CFpm`ý(|Wa\cJn<ºUuLUMs{9Mє>9C2xFa=m40000 multimodalinput {
* _߿͑QóV@c!>&6#pFp+x C2?BZ%#Z+F@C40000 BasicServicesKit 欏eǱJDޑqpm`ý(|Wa\cJn>9C2xFa=m40000 multimodalinput {
* _߿͑QóVm|hX#BQhQv xS 2|2xS*gdFpm`ý(|Wa\cJn!pCZ9	Zz=.#d6"bxkk`d/v6Ce暙י}:wg(8%g&e&{g0$5;)zk/>X8GGBkĥyn'+2ZTn>_C{71NfըS~KeHmؚ^_RX]0w%Wswa UY[S0[qµOSY+YB*/%'571/1=amI5-8+<xRޫ^s!222SS*ud_g|E!,!_-<yp|d7:fL29jinrZԼԒl0#kLe)>FW̚5Qх7^q9p\3'V-rrnuϧ8O>ɦ%ŴN'|fdWѝۜx~E  "@xkkېj'ÜîvJA)U B^jIy~Q6k5KKSfm^̚ Txkk*igM>z7͋YS=xkk*"jZ~҇}ٜ^n^̚ Ikxkk*sV7o+IIܼ5 xkk*RUw~kcQy1k
# piGxkk*|MJ%'hy*dŬ) buxkk*R{3|ys]xmbF .#xkk*9].%=K*ټ5 BQx2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gqy~+ԹAAYMnye|`o]Ɋ{SS2!N$)vtΨظj<<.F4_T}+40000 bundlemanager Z\$JgX8KG.M&40000 hiviewdfx "Sعu&`177[K0U4DﴇA40000 multimodalinput {
* _߿͑Q100644 ndk_targets.gni }&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn %#b'#u;fqxkk,8ҵ-;v]9is*"f ;x +2<\N_=KxYg_Fpm`ý(|Wa\cJn;wln8hQTKi0[I-tH}ytߊI׭,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5axkkMD|v
.rg|Q Mxkk*"EgQǗ	}|bF -#Pxkkېj'ÜîvJA)U B^jIy~Q6Í>w׌7/fMa X xkk*r3^[U?RΚzbF )xkk*b1$U/*ݼ5 Ԉmx 2|2xS*gdF".x! BP?91(c/IV]x! yψ:CL'X,I^x! yψ:CL'X,I/x6 y*!3RX/W}iƊfv[9rEnAp"cDx 2<\N_=KxYg_FX-x6 +UK9
fل!坸: ?\2(	Z,^fqx! Z3r	N9	`&~Zn, x 2h$N6RFFțjx! l?6R	$^z_;,C8Hx! lN}7SQcF,Ѣ)`x! $*j7܎ b?9,R/x: D,A]8*Vs(q[	2!恒cA/rH,mwx! IColAQq,c&x: V>;)gЃ^-wBٓ[lN}7SQcF,x: 49t)8|N:PS[Et\1*ႀ
4 ˇǳ,hxkk *ҝՠrcs]_Y}Qs6f ސxP KO,m7je(-2z]tmڳQ5~WEsBX"#D(uxkk`d_u\UQ'W3lb 
NřEeɩޙ%;:9]m[X8G$G⭴Ԓ+w%9nܵp"ie+;9μi4K2ٞ rը.5qkk61Nf̟]_ů|5)19;(4/$8aO.,mn!%
UY[S̐u뒾2k}\ LU^JNjnb^bzj͡]>xC}gXΨ{q^fF嫟<g2;{e)iEɩMGRPvp*,M4²x6gM: ќ[SWPZpM5A1-尡B^Jv|IbQzjI^z^&Z5U\RigF&14/<(AJdЊWxz{81IBɋYX)MMrM~ͻ-NM.-,dx0iȲ-Z}Ӝ1ݚlVd{AcbWrB&12;aǡ/3oV\Mc+;֨hx-zGbpyK' HxP p׭$xh)_S {9E 1B׽4,m)c> *8WXmARn3@_xS QOf\kF} wPYB7HH[S$(1z,u"&?m&;lJ>"ax; S!P|`36KExZzpVԢ7m,1oix +2<\N_=KxYg_Fpm`ý(|Wa\cJn;wln8hQTKi0[I-tH}ytߊI׭,A6s󞿆40000 network d,Ԇ[!*au6#C\%(l8d몍%;'-5amxZ2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gqJye|`o]Ɋ{SS2!N$)vtΨظj<<.F4_T}+40000 bundlemanager Z\$JgX-2z]tmړQX8?sƕnEuGF40000 hiviewdfx ˪+oW7Tg^M&}v_*b,r#0'ʚM!UB*x;%#b'#u;VxkkMo"rNs׈p  ?x6 =-2z]tmڳQq+Np}}&q#rWxkk *;yE)+6~mF .xZ2?BZ%#Z+F@C40000 BasicServicesKit )ߺ)y3pqJZ]L	r{_nhkh2m.@դwwO#̓<<ji}?;)40000 bundlemanager <ºUuLUMs{9MєY

ֲ  8QX8wln8hQTKi040000 hiviewdfx rceA3N2!$e	7m^7#TsȨj,1{UHKp!*Bړ;}l3Q塸d[e(ixkk`d/v6Ce暙י}:wg(8%g&e&{g0$5;)zk/>X8GGBkĥyn'+2J9V|<u/>[=l gB?Obyywu5~lGY;R!ZӋKRJJ٢t}?*K3sRtKs؛/}+EҪo"10Uy)9yEso7O=6Xͽ2GEmd<)[UQk⏹#222SS*ud_g|E!/!_-<yp|d7ҜĜ̼3[jL9cMf&&
y)%E%zyL29jinrZмԒl0#kLe<)>FW̚5Ѽх7^q985(d	?4)tص^dk3'V-rrnuϧ8C&1|pU2w*Jܨs"[`nڛ)iΉeO$$/Y|  ^xkkM]ܦA{6VM ?LxkkMD|ҝWg_y谡+GJߦx31 ҔlEK={zr};&e)Ov߳6WRZ\ǰ\#O͓[y-%
E@wʩozS6vn\34(IkY
YrGic:ݏuii%suϞ[{zY݈åW+CV0.J~p"oMM:14/%䝇Ō?]-ZyJs2*JgW8$}ʹ	ÞQWXZd߬?z J2SRAv%@sW<5:7 J~x;|y%Ѹn;%>;YrXgb 
eũřypeV̵|{푈"8&Mݱ{bA7U?Y)ԔҼuTf%F~q,Vǥړ[z:tx;|yCe贴Fy때B*-\:y
 ˱@=x7 ^n(Y{nt rtOAY^Tux7 ^n(Y{nt rGq/C57ۚ4kVN,Ix\ 99F&nxSQ~눢40000 av_session n(Y{nt rGq/C57ۚ4kVN&4x;|yښD^>c($g1,`kl{Vdu^KĢ	"%9+Yggd1 Ǡ&x;|yHŧl6Gonh7Yq hJx;|yC#;DX䮼%W()F -nx2?BZ%#Z+F@C40000 BasicServicesKit 欏eǱJDޱqJZ]L	r{_nhkh2L8gC<<ji}?;)40000 bundlemanager <ºUuLUMs{9Mєwln8hQTKi0[m^7#TsȨj,o0"i@ކ;1YA|)k {=sF.x !9VAxB!~[MPGm\ldv\$<6w!N}HS8e9C2xFa=mד,A6s󞿆40000 network d,Ԇ[!*04p=๪"ay(q40000 zh-cn Ge\VZAjz`bBioCcmxj 9y~+ԹAAYMac
S§G~XC?fC~w1)Nų{,H!-_`)B'IxA.x! Ok4]Jż (0Dxkk`d/=I._y<q'tn21 ԢbW='_tsl]<Çs&89wYb F$$嗤&d̸r#o/8:q`Ɋa';m}p*b݋m~13Sr\Lܻܴ>o9q2cҡ|"7ߗY/{5)19;(4/$8aPo	K-OJA43'E$??ȤWoyOzQ@y1LU^JNjnb^bzj-͓x?E<5yr/`(~PӻOjW"ɏE>Grqu,iȯnܵ"Z$_;rm"^O3SgCLOJaКwQGoy]~}Ăd#Ί"62*W\y̲
.5Ꮞݵvl_H,rCR9qnZPh8d$d0^ǛŖ|8O;-(dǗ$e2t,`w:-8" 楖e3$J~~қa5Qх7^q9p ɳJj߾wYzZ1<5텫vsTiUbF٪<FGӧ\:]kcvԆsϩ Q-{xkkMfgض߳SdeI?<{k $xkkMSp4,w_,o |Mx }%<X 8pQñ?Ib6"zSR͂5~=&jqRZH,A9}LcS_s$rI$1f3r.5^x 3]Y8lPI֮Qq_ed)C<^׹-ZARd*5vie&ZخL>z/;'a=4tjѓ[)iO\!c*jM,AND;*vwOt(^f곁rlhN³#]F'RŜ/Waclxkk *¼zcO/;{:rxkk *-Q+/WVvqlmF MHxkk *rdaÛjx A}fی vx! pDKx!gɳ,,&xkk *ȟ#9rZ/Yd]Y6# c"Txkk *r9{(gid_߬z xkk *2Kĉi=Zo+(0ymF \80xkk *aı[֋6h۬z =^xkk *)W}:7<iO]Y6# ixkk *"OZϝY6# ̯xkk *t1e{0wY6# rKxP 9y~+ԹAAYMac
S§G~XH!-_`)B'Ix$ux6 ac
S§G~Xy&lt>+2xkk *k:/1,kznM
cެz l0xkk *rP]٧/[Ɔ(2la ˳^x&])ߺ)y3pqVAxB!~[M'~Za+B <.F4_T}+eD5nH`
SD[zN78XP8Ƞ(,A6}&Hz
X+iYaU40000 network /YR J~ab'1{UHKp!*Bړ;4كj{ i40000 zh-cn zL܉\=wgxkk *t1e{0wY6# @x])ߺ)y3pq
w䜇I9X?Y!'~Za+B <.F4_T}+ei>-:∍W\,A6}&Hz
X+iYaU40000 network /YR J~ab'1{UHKp!*Bړ;4كj{ i40000 zh-cn w@`m\ԤMZI|}\x ])ߺ)y3pq'~Za+B <.F4_T}+em^7#TsȨj,A6}&Hz
X+iYaU40000 network /YR J~ab'
,`-,8w;4كj{ i40000 zh-cn jZm;{Q.Q 4[eo_xy2?;jmL+!^40000 BasicServicesKit CNL0鬥i-qJye|`o]Ɋ{SS2Q7aFUhD<<ji}?;)40000 bundlemanager Z\$JgX/Gd9=5 US[;HHxQ	#֪Փ,A6}&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn Oqbkugxy2?;jmL+!^40000 BasicServicesKit )ߺ)y3pqJye|`o]Ɋ{SS2Q7aFUhD<<.F4_T}+40000 bundlemanager Z\$JgXkzA\SV
[:,&y͸n0,A6}&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn 9t>hpF-4oxy2?;jmL+!^40000 BasicServicesKit )ߺ)y3pqJye|`o]Ɋ{SS2Q7aFUhD<<.F4_T}+40000 bundlemanager Z\$JgX/Gd9=5 US[;HHxQ	#֪Փ,A6}&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn 9t>hpF-4' @wxy2?;jmL+!^40000 BasicServicesKit CNL0鬥i-qJye|`o]Ɋ{SS2Q7aFUhD<<.F4_T}+40000 bundlemanager Z\$JgX/Gd9=5 US[;HHxQ	#֪Փ,A6}&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn Oqbku	!x c9y~+ԹAAYMۃw)V;5䭓<ji}?;)eDwln8hQTKi0[m^7#TsȨj,׿
u[a_8=&{HLx6 9y~+ԹAAYMCYɒ6G%u2&o}ExkkM$EUˍ+m5h{^} (x6 9꫹>~&`5MCYɒ6G%u2&ol5Hxkk,2Mg_\>>`ϖ>6f('f 2wvx! Wѐ]0掯$<&xb2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gqJye|`o]Ɋ{SS2NU:GagYH<<.F4_T}+40000 bundlemanager Z\$JgX8?sƕnEuGF40000 hiviewdfx ˪+oW77[K0U4DﴇA,A6}&Hz
X+iYaU40000 network /YR J~ab'r#0'ʚM!UB*x;4كj{ i40000 zh-cn %#b'#u;IFRx! 1jpn4	ɱ^ 0x 2|2xS*gdF"]x6 +4ey4}˾
`^R_Bb?Xa(U&VgG!x! m}&Hz
X+iYaUܫStx +aQS#t}X xϬ*x! +M-oƯOa򈥒?-/x6 +os{<6NCzϾ:Hٳ?!;suhA(z<Dx! +F'f`>-6O릳?,/x6 +UK9
fل!坸: ?d_]
7̦;3h̊\c@x! m^7#TsȨj,px: m^7#TsȨj,c/YR J~ab'dIx< 4كj{ i40000 zh-cn HQIzrTd] Jx! dT'Hr.1yx: m.@դwwO#̓<ji}?;)e|N	Ax f])ߺ)y3pq'~Za+B <.F4_T}+eCcg5\kH,1{UHKp!*Bړ;z&ƑC^*/bDae{Fpx 2|YKޅ{d3V%]^F .x 2b$Tx\}t2RϥF-x 2/6U~F{-x 2t13](;J;{hFٍ-x 2%
QI߻_F-x 2= n^eˬ!f;±Fܴ-x 2vsѭ'c${m`7FSN-x 2/Tk  @s0RpF--x 2|zbf*[C<fi#!FbD>xV m^7#TsȨj,4p=๪"ay(q40000 zh-cn `RTl.l(j'f#x; 
w䜇I9X?Y!i>-:∍W\,mxN ]欏eǱJDޱqi>-:∍W\,@"' [cǺn$JxT .P
Tf_>r< cclԓ[gV0ei>-:∍W\,p$-x: i>-:∍W\,As󞿆볁>vx: i>-:∍W\,cd,Ԇ[!*d?x 42;jmL+!^Fuye|`o]Ɋ{SS2(h"gadZ\$JgX/Gd9=5 US[;HHxQ	#֪Փ,r#0'ʚM!UB*x;9t>hpF-4Ф[$vxkk`do/m-pk77⧘ SbqfrpjQYfrjwf	CY3BzF?[2!s=sD.\+.)N\*w"HcN~ʣXeۣleXQ>Kd/>ڑ5)19;(4/$8aPo	K-OJA43'E$??!15A3&mZ)y*/%'571/1=amI{x"f뚼فQ_A6.ugZ2M=1!yb)J{d,9{ZFٹ9%)9y%E;fܵ4Ԙ|]sƂLLRKSK2ԷuM,ot5мԒl):W6䉞KQQA&O+Ly3g]4:rY@&eT226v>ٙvklV}[eUnXmg$O>عJQU5xBd2t^ջ|Λ'w>~O bM<x72?;jmL+!^40000 BasicServicesKit CNL0鬥i-ql"58멧cvCM!ye|`o]Ɋ{SS2Q7aFUhD<<Rߧ+huX2-3؛40000 bundlemanager Z\$JgX/Gd9=5 US[;HHxQ	#֪Փ,r#0'ʚM!UB*x;OqbkucMxkkM_cxڸ|2<S[( E5xkkpEdV[B϶{YmqYԘ .xkk,E2Qro-Rom, [xkk,*U7׾Z=-m('f -xkk۰M_:i۾|M[=3' 4,x4 ]X6dsYoк|qBVrZ0q
w~XBx5 	&8NpǮH4[5`BMpCxkk,bVxpuۏcITE ݥ-x6 l"58멧cvCM!%Puz1QjDxkk۰MĖg3"5Ů`7| ,xh PGm\ldv\$yψ:CL'X,u6#C\%(l8s+tnڴ&X)C.vxkk&*,E퉱+ҟ]f״lӎ"xO  /*W>?#	&8NpǮ%Puz1m% xkk&bv8WwUa3$Uݍ'K H
-x5 %-]<CXñ`筱&S(tO.&qx5 9i.2$=_\筱&S(tO.OO5x5 aP1$:Q|	)U@:Yp/`B
[>6 Wxkk`d_u\UQ'W3lb 
NřEeɩޙ%;:9]m[X8GGBkĥyn'+2JTikq̫K4.˸z]˲3Qn\HvT
bkRbrvzQ~i^JIbqv1Þ].Yܜ+BfK|?z43'E$??AEWݮ3DV*/%'571/1=ЮRՂ3,g8es/HQrjGck~FT>9!y}1;	:u􆿬|ɘesKsJ2sSs2
JK.:(pq640031QKɎ/I,JO-)KdX_qK*?[" 楖e3OZq
_uO'&_8y1kȃIEUn.Ptdk&;eo6zq2CMcHkԪ ӃgF+))  Gax :2?|2xS*gd40000 BasicServicesKit cbTׅ[`jRqyDjFCxTSQ*Uܓ?:<ºUuLUMs{9Mє@rceA3N2!$e	79C2xFa=m׳,k:?k d7]̺V^x Kl"58멧cvCM!m.@դwwO#̓<ji}?;)em^7#TsȨj,o0"i@ކ;zþm\8YO˥'˓*F'3og[#6Ux 筱&S(tO.wTxkkMdCI3GOp 9xkkM䰠E?J_=OcĄqxT  1fE!'~Za+B <.F4_T}+e 'wcx6 
w䜇I9X?Y!2x	^I&v"s"xkkMfwg+͝x!( Kx6 o<'3$<,wX!z&ƑC^*/bDae:N'tx  '99UP<Kŧ1;u#xkk۠&r~6W2v+םgdk3 )Px 42;jmL+!^Fuye|`o]Ɋ{SS2U-vc4usg|#dZ\$JgXkzA\SV
[:,&y͸n0,r#0'ʚM!UB*x;#Hʎ<xZe	?_ *x5 '1{UHKp!*Bړ;z&ƑC^*/bDae6nxN i>-:∍W\,1{UHKp!*Bړ;z&ƑC^*/bDae#{x6 syip@ݼW!i-x~󖞜dVho@x6 vՇo"H>HZfi-x~󖞜dtx6 KqW=ӁzIԘ{c^vЙ}PJx6 j<ۓ`Fxz%l+?7;hd݁fO'x6 g=ҼMbFD7ZﱵE[RTx6 FFdZZ\4}uڙ^s{]SNϕzE|s}q{xR 2;jmL+!^Fc5nH`
SDjr#0'ʚM!UB*x;%\x! zN78XP8Ƞ(,G>xj 2;jmL+!^Fc5nH`
SD[zN78XP8Ƞ(,r#0'ʚM!UB*x;22 
x;2?u~;e܊40000 BasicServicesKit _j᫘O2!gqJye|`o]Ɋ{SS2uR\&<%lؠdZ\$JgX8KG.M&40000 hiviewdfx ˪+oW7u
AJ.};UC,ZI/$DQdr#]v4(^r~?|r1g>{l40000 zh-cn %#b'#u;.Jxu2?BKlD"Z;/ķk(40000 BasicServicesKit Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui <Hr~KD>~q(Y74SI3ePmHQ-#A*6O[Jyz/J\1'frbF69f ^իײ{8*40000 multimedia ҉hAqD2AeqH,?54xx+ZIFrT4H/G.&-7v40000 zh-cn ½J	5ݾ?MeB327wx! 5nH`
SDJ(0x 2;jmL+!^F-x; ye|`o]Ɋ{SSI [+;L,ɳ,Emx! ?1uPM38nxf,Kxkk۰IUjMB_='
n>< >zKx:2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gquR\&<%lؠdZ\$JgXY74SI3ePmHQX8KG.M&40000 hiviewdfx ˪+oW7u
AJ.};UC,ZI/$DQdr#]v4(^r~?|r1g>{l40000 zh-cn %#b'#u;,'xQ2?BZ%#Z+F@C40000 BasicServicesKit 欏eǱJDޑqVAxB!~[MPGm\ldv\$<6w!N}HS8eDwln8hQTKi0[BC$yyoa,A6s󞿆40000 network d,Ԇ[!*o0"i@ކ;4p=๪"ay(q40000 zh-cn Ge\VZAjz`bBibԚ`x! 0b/&^D1\BÛ,;x! ?ý\k|@;,7x!  [+;L,ɳ,gx; @_.#eU<`" [+;L,ɳ,A1x; Q7aFUhD*6Y9'3A=Q,y`{x 2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gqWsb6D'B,U$edZ\$JgX8?sƕnEuGF40000 hiviewdfx ˪+oW77[K0U4DﴇA,%#b'#u;m>h*lx! '#U29U_^OxC ,
0x! lbׇ42}@IxF,96/x! /CCwӀyelճ,75/x! '_$kgP?7c,ޮ2Ix! Q7aFUhD(yx 2?BKlD"Z;/ķk(40000 BasicServicesKit Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui -@"0pg7-e~{dZ\$JgXY74SI3ePmHQ
A3a;RZ?Γz/iz]!&Q#=a40000 hiviewdfx Tr !!u40000 inputmethod f ^իײ{8*40000 multimedia 7(ãoJ	WQ/],6ZI/$DQdr#40000 startup 54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn ½J	5ݾ?MeBp٫x ]_j᫘O2!gqL8ԞQ&ZخL>z/8KG.M&40000 hiviewdfx ˪+oW7oHE"M?=,R=]Y(]^O140000 web (^r~?|r1g>{l40000 zh-cn 
Nps% hQSkx! O#k2tb! &(,]oxx! :,&y͸n0,](x I2?BKlD"Z;/ķk(40000 BasicServicesKit _j᫘O2!gq88/Gd9=5 US40000 hiviewdfx ˪+oW77[K0U4DﴇA,%#b'#u;!N1ux! yZ\$JgXzgC0xg ]CNL0鬥i-q8:]'Bx-Qo9p
y[;HHxQ	#֪ճ,mY/Ezr2Dl.Qjxm !N$)vtΨظjdZ\$JgX?sƕnEuGFᓽ[PB/Xn,{u8tD,iT1|x!  g_{rza(,+xm uR\&<%lؠ^S$jLE[u
AJ.};UC,(^r~?|r1g>{l )$'xA2?u|ljO
m40000 BasicServicesKit Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui  [:0I'eUPVۊje^8[Y74SI3ePmHQ
A3a;RZ?Γz/7bC y~"M40000 hiviewdfx >eKZjgjbC#40000 inputmethod f ^իײ{8*40000 multimedia ~Q?A|^f>r.6OtU40000 multimodalinput ~aWF::YV9ί,0`1I6ZI/$DQdr#40000 startup 54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn 䮥98._l[&2=/Nx 	2?BZ%#Z+F@C40000 BasicServicesKit )ߺ)y3pqJZ]L	r{_nhkh2m.@դwwO#̓d<ºUuLUMs{9Mєwln8hQTKi0[m^7#TsȨj,o0"i@ކ;F'3og[#s	Sx e])ߺ)y3pqFFdZZ\4}uڙ^<.F4_T}+eDkzA\SV
[:,&y͸n0,
e7a,o3VLMWXF|xS 2BKlD"Z;/ķk(F.F4_T}+eYx;'i20,=%=xN '1{UHKp!*Bړ;ze,f`]y+]ֿ*eE22R	siK$Xmx5 '1{UHKp!*Bړ;eE22R	siBg1xO '~Za+B <.F4_T}+eB!'zJXx^e$"xkk,ǫnMv"W9y3 xkk۠&+.q͟9yNlg 2F9xkk۠&r iRJYsl}MY~5 lfxkk۠&R'T-cej&iU'[ Zxh 
w䜇I9X?Y!i>-:∍W\,1{UHKp!*Bړ;EVþqȿ%a0/V#xkkMdIn66+f LxkkMx!}y3-Zrl uxkkM㵃Kky% 
xkkMtk9nEd;p] 4GxkkM?+*uuށ=N6
 c)xkk۠&{vKbNu>6Gb"ܘlv 7Ux  'Rdlʓ;K\\x6 |1F4B{+x5=9"]Ms1g!x6 3,4T9nUEHx	˗𥙳ʎ~	fx6 &I
%~<aMDYmy[1un A6+x6 b[Bǔ3E`%։	y2'xkkMDyϭ_.|6Y}κ*u =xkkMDEHkb-w fx F:AG90Ĕrx6 |1F4B{+x5	˗𥙳ʎVLxkkMeTo0=Yu e&x6 b[Bǔ3ֳ!Æ<H_q) Ecxi b[Bǔ3kzA\SV
[:,&y͸n0,TDړlW9dX6-^[xkk *!ʾgwX2<f:]	x =2BKlD"Z;/ķk(FuR\&<%lؠ8KG.M&40000 hiviewdfx ˪+oW7u
AJ.};UC,ZI/$DQdr#]v(^r~?|r1g>{l *_PZxkk`d^w.JQO?>=[ 3S2S3K
7lXu{3)Jo,$RG)(+Ē+XYy
_%&ޭwo{`˹Mj322SS*M?$*Kr77_>wCsζjqu,:MNk1-)2L^#1*C79Au+ו7-INMo5 DcVxkk`d^w.JQO?>=[ 3S2S3Kޱ<ji3~|e_b63T'5T.7K'Oa5}tw=^HW=VbxbQvi&GѦ]o-|YYQf\4Yi)uv@@Q]k1="-]9EEֻ=&5QQ]e)iۦ\tzvwp9ћ/QWPZZ:C\דoςyҜԔDd3u!|m;=u.uXefEԟ؟Rt2<Ģ&-K*OZS%yaтl!&<wr_OyyeUy5S}2GS'9u  `#xkk`d^w.JQO?>=[ 3S2S3Kޱ<ji3~|e_b63T'5T.7K'Oa5}tw=^HW=VbxbQvi&$J3
>{*KfQfF3osdYYDEw[5|`y2MbѯϜ(_u+g]j+H+#,3<%!h[(nu DMf^AiInjIF~
oq]Ou>SZ!rKsJ2sSS2<5l>i8K}W1˜wz͛uXefEԟ؟Rt2<Ģ&-K*OZS%yaтlfAJ;:w<"gDkyj:'Skk޵yoY=D*C79C{&r^h$ b
xkk`d^w.JQO?>=[ 3S2S3Kޱ<ji3~|e_b63T'5T.7K'Oa5}tw=^HW=VbxbQvi&n~Xj>yo͹YYQf\4Yi)uv@@Q.GAF-nFsX\aQye~Ξ+#,3<%!h[(nu DMf^AiInjIF~
oq]Ou>SZ!rKsJ2sSS2?}]*Q\Y~Woae4SK`
wK}ʼ KJJ&4,?iMvIE&׳)8Q~FKKdj9I<wr_Oyye٪<)f>{ߣ: /"qxkk`d^w.JQO?>=[ 3S2S3Kޱ<ji3~|e_b63T'5T.7K'Oa5}tw=^HW=VbxbQvi&$J3
>{*KfQfF3osdYYDEw[5|`y2Mbѯg{Wnf?*C,L-OI`)Z~C9C9+6=`(QWPZZ:C\דoςyҜԔDSmw֏ILK>-qBYU~JbTuÅݮ[b2͟?'ZxF\M:='/f]f6+TyA..I,*)-`hjвb5Q'-\f^sGs---y@&1ؾ_}"}=]Cd2tv?YB/^*^g {xg ]_j᫘O2!gq\rceA3N2!$e	hܽ6իOQgVJ]%#b'#u;-%~xW2?u|ljO
m40000 BasicServicesKit Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui -:طH'1UPVۊje^8[Y74SI3ePmHQ
A3a;RZ?40000 global $bλ׷n^(H&40000 graphic 7~,FL΅\z40000 hiviewdfx >eKZjgjbC#40000 inputmethod f ^իײ{8*40000 multimedia </PWBn.40000 multimodalinput ~aWF::Y100644 ndk_tard+ί,0`1I54xx+ZIFr6R"m/Ct?W40000 web H.(pd58HT40000 zh-cn 䮥98._l[&2=/wzh\x9 2;jmL+!^F˪+oW&F.x! ZhWb&>1,
xkk&2+TyMe[ 8xM]Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui -@"0pg7-e~{(Y74SI3ePmHQ
A3a;RZ?Γz/iz]!&Q#=a40000 hiviewdfx Tr !!u40000 inputmethod f ^իײ{8*40000 multimedia 5|ĭ$;::=.̓,cί,0`1I54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn 䮥98._l[&2=/wnxkk`"3|.,4:; cs 6& x~]Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui /-|QǀͳQ
A3a;RZ?Γz/\8_ޞxHk\40000 hiviewdfx Tr !!u40000 inputmethod f ^իײ{8*40000 multimedia IT 	E,?54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn ½J	5ݾ?MeBT@n>x~]Q%9<}>_f@\q{TfbwYy쥓M4],FT<{}40000 arkui W5jY*(Q?Q
A3a;RZ?Γz/\8_ޞxHk\40000 hiviewdfx Tr !!u40000 inputmethod f ^իײ{8*40000 multimedia OO.YHu,?54xx+ZIFr6R"m/Ct?W40000 web H/G.&-7v40000 zh-cn ½J	5ݾ?MeBʥ x! =S2ի?GYrRjQkPx! ==:&fnFV_)yQD x! =m="oKLVWlBٳQW0x! ='y@XBc`ާJQ`x! =u=''*wQ]
x! =V.'Wj5ջ"wQq'/x  I?`޲K1*ŒoR]x vx'l굝 % ٳQ&ZخL>zoHE"M?=,4(^r~?|r1g>{l40000 zh-cn @fʩ_{K[Kıw,"9V2xkk *׫I/LSߺ6nQfی =`xkk *V-#nOg]m}-xfی 4xkk *%9]Ǽi;%s^
߬z =<xkk *T{CԳGDC.oa ;jxkk *r3~ǾB#^Ծ6f ~x @]_j᫘O2!gqf*Æ,[Cὐ8MBC#>@i6펧u9tFC"Fjxr*f40000 multimedia u
AJ.};UC,?ڃ1t%#b'#u;T
Lx ]<Hr~KD>~qQ-#A*6O[Jyz҉hAqD2AeqH,?ڃ1T4H/G.&-7v40000 zh-cn 2d+T!ӕL+B,}x4 ]_j᫘O2!gq
Nps% hQSO@xkk,R85ZE&μݷY3 İpx5 k54xx+ZIFrt
Nps% hQSJ+Dxkk$R֟԰QDSD,< -xkkEu7'WW_T}:)Y J,xkkI$[uv{b#]Z_X 4lxkkMvEӽw:^C0 {xkk`$RZ'ݓr~U'7fQ}cY6z)0E9u(NЀWwu4t8%1p9'j6juXe6ڟ\Ţ_9QVϺWݑ 222SS*k.5C&陳r[5y%%)%ݜn=zZqe<ZiU9%)XOX긹&.ͮHX̿$YU~JbTuÅݮ[b2͟?'ZxF\M:='/f=!2ԤeIIk*=O=,Z0LD)w~Q玒3ZZZ$W̙|MKduK,-rE~  +xkkې&gr{}J*+=/wl Xxkkې&b}W"B+;25r&M\ ˋxkkې&'yvU'd> Lv2xkkې&RET%w+>ڱxr=[ -xkkMD˸!K
µ*m7 WUxkkM͔m^ϖZ|?+l }xkkMD8^&bivNS~7]|
>$xkkMKfܟ&k MxkkMa'*DO3ߙg
 vx 4BC#>@i6펧u40000 arkui -vB])[Ho;	Q
A3a;RZ?Γz/8|+$!f)8740000 hiviewdfx Tr !!u7O/A^E
y?,?54xx+ZIFr6"m/Ct?W*½J	5ݾ?MeB2ng0xkkې&b|ꛗKK;E/<,4 
-xkkMd&lW>Nwu?) UxkkM+F\y^t'	 )(xkkې&}p2pKcsɃ6Mg  ,xkkMC{&r^h$ 6(xkkې& ]ˆ:soźl e$x6 f-#A*6O[Jyzy½J	5ݾ?MeB(Exkk *r3~ǾB#^Ծ6f -xkk,b#Q#G:oxzme ]3xO2?u|ljO
m40000 BasicServicesKit : Cp%Mbp q-:طH'1UPVۊje^8
A3a;RZ?40000 global $bλ׷n^(H&40000 graphic ȣhE
@_jwd!40000 hiviewdfx >eKZjgjbC#40003>owI?tfE40000 multimodalinput ~aWF::YV9ί,0`1IR"m/Ct?W40000 web H.(pd58HT40000 zh-cn 䮥98._l[&2=/g;hxk{;P\/daU(8%g&e&{g0Xy\`L$ssl,$.n}QcV~k,ʼSގ{/O:rS#M~ļ4jѶ]*Iv_ߞ=s[܋j[Ӌ228[4>P_jã;&^f,L-OI`dTxS~Ң^Y~6,vQ\̀Sd$d0=\WWvRm#{rMc9*t-t%{N^"bulƷ{>HbY|nndk"}L6Q5[x,h.j}  xkk *r*6UGs\/\جz .xkk *|fms`ޮV,<J['Wݬz @\x; :-\b35Ұl}5&%9\X#Xó,&xkk *#ː)rs߰`YQY6# @Tx #2u|ljO
mɱF [:0I'eUPVۊje^8>eKZjgjbC#ړ7>]E̻t'Pb40000 multimodalinput ~aWF::YV9ί,0`1IP䮥98._l[&2=/f?xN ]_j᫘O2!gqj1Y&ns8|,dqN|2u凃7<3a5"(nxkk *rh;K_i|b}(Sfی r/x! s~qE,8
x U<Hr~KD>~qQ-#A*6O[Jyz/8KG.M&40000 hiviewdfx ˪+oW767X*~R< ,=]Y(]^O1>)DWxkk,b#Q#G:oxzmedU #/Ѳ^ݕX-z/Y4n{[}mR51 ̲
mI.:J;R͗O\Rgo}.F}G=mad r1ٌH+9X!Ɩ&1d׈/c[VSdnW G"[`PIh'Xm"$| u_XsExi -@"0pg7-e~{QUҺwWqKzj1Y&ns8|,@fʩ_{K[Kıw,,=x; /",x/)` =y^sy ,!xkk,)/{>G3ߠ#ڊw_Y3 z5xkk,;្䌂GOJRY3 cxi ^x:2`_5|ĭ$;::=.̓,cb=ͅ)F=TP䮥98._l[&2=/+m,xV 8;`|iYhѳ,4H/G.&-7v40000 zh-cn ½J	5ݾ?MeBv#sexkk *"&`J_ݬz |Uxkk *buun=dmF 1xkk *ŹԻGՔS><gKR;ifی [Bxkk *IXt1[4/٬z pxkk`$RZ'ݓr~U'7fy;y̓~bu=Ewt#ߥ]wgY,yiԢmT={涸+4<M@!( #3ӓgtNk$DEFfYfjyJZwR%f$=sVn=wkCsi].xӝIhҜĜ̼uÅݮ[b2͟?'ZxF\M:=7/f5`4x!աQbzBXG <O-mЋfd/ P>x; -@"0pg7-e~{dEB"c$,\xe2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp q09?qս|ԛѕF'X"ޓZ$bλ׷n^(H&40000 graphic 	)%o+z@ 40000 hiviewdfx {YI	 {Gƈ@A¥rK7>ϥmք/T40000 multimodalinput npJkT0!+2(V9ί,0`1I:6όTCΝ;H.(pd58HTeT&xk{;P\/daU(8%g&e&{g0Xy\`L$ssL,tpu`Nw:{6\TYPXY\RZ
2;_\m&w̰,iTf/
UO7=v&1~0[f#r5SEv2s2K*Do\k9Z'Ox&_oOL+0GQ@kˮ8Aef2/?Hab]s&2)˓2T7{1;>|[xU?s۲k;nqALLOJam^u[|ܾՌ	TAQbAFf2C65\f׊ջȖZQYZV}b,o_wG(H,v{??X7_1KVxC-)OI+(-ag]_ԳyөGn3+~LchfulƷ{>HbY|nn+ĈԼb[+Oi</uּ?zi9'ǲE;p䇍LZpchzؑ閲J \*rx! RS[؝	,J"xkk *c~o#'w5	W:Pxkk *bsZ> K3[6\Y6# ~xkk *RtO[f-*y,IKcmF ,xkk *2E~B_rdmF سNx{wmk^#jnF g2|x{wgNαZ^WSoSS~ 3S2S3Kf.y͝<Wڕ)}aX 2~--n;1K.ģSE<996֪X5713}J8TPctpLE?@,M,.dx:{,KfnfȌ;YybglV߻t9#Ɣ⒢̤ҒԔĢĢTkIrA_f6CPd]&tk0!䒴@7E+
xGϹm^hП%wI?shؤ^84$37?%1'3nφ^>ދvz0uk
lR!auW{[ĈҢ̒J_is[塚|Nf!U~W䳪Mm{p3 ƥJx{wH\2VwL=ɺ:xx{wܹngO'QYu7# ߧ*x! `<p峲hVo'Upxkk *kx))DS\\6f @xkk *rƖ%NyQ|bDQ:nxkk *"$$}痴Ի`Y6# {xkk *53<p3/VŖoa únxkk *b)a.Q)e+Lna 	
xO 2ڍtgHH6^,cb=ͅ)F=TP䮥98._l[&2=/5| ^x6 j1Y&ns8|,½J	5ݾ?MeBg""xkk *)[[EԵ^O[x|mF  rx6 h]a/YhK\䮥98._l[&2=/':6xkkMduK,-rE~ 
xkk,;្䌂GOJRY3 Gx 82u|ljO
mɱF,y_;L)c̴^UPVۊje^8>eKZjgjbC#ړ7>~Q?A|^f>r6OtU40000 multimodalinput ~aWF::YV9ί,0`1Id]x! ί,0`1Id*0x! *婻=^ͻ,La_xL2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp q,ye__7qս|ԛѕF'X"ޓZ$bλ׷n^(H&40000 graphic 	)%o+z@ 40000 hiviewdfx {YI	 {Gƈ@A¥rK7>Lkv2okhVæ`]X40000 multimodalinput npJkT0!+2(V:6όTCΝ;H.(pd58HTZ	x! B~aWF::YVOq0x! ~Q?A|^f>r6OtU,ǵ_x 2u|ljO
mɱFxR 2u|ljO
mɱF~Q?A|^f>r6OtU,cb=ͅ)F=Tdz&=x9 2u|ljO
mɱFsLS^YJ4i#Va)x! +Qv1d4T1by#udʖV
?x P8Fg? ejřbF<V_'|&0=r>rj.@Fb4J$)=2ۜF
.$c[>%Zf;7hU40000 multimodalinput Q_rB}FyBVH}xK >ϥmք/T40000 multimodalinput g5g͕f&~x>V!rWx! jό7`H̹,~
x! B/[%/	M˜Ic6VͦlxT -@"0pg7-e~{Tr !!u7\>ܙMi4<,$/x: *Tn4D~ؠ
l}5&%9\X#Xó,xx6 ί,0`1IP䮥98._l[&2=/Frxkk,vT8te͓̟͢ sxkk`d(.l]zo2^ʪO 3S2S3K<x\Iuo㹂
[&::0;=SԅYWo<:lQPXcklO	ANL,dqMʯ˧jK?<ySrEߑz*=IgI}Ew^qSG\}qzҽɏ[{q-mٵNK '%0я}&ϙSQ{uAFPEߦ؜zhKWS!*222SS*o[ٹAWz&AZ 5>[J@yj_wb@niNIfn~JbNf^Ai	C`<^̳N=uYcrE3f3}>AȊss[!F3ZyJ[yͬsѓM99O7\)!#-e4*2tVb<VӟǺA_t G?xkkM$kUM<e-- c.xkkM亁Y>N}%;q ũWxkkM]`c  s xkkMD`ղd9,F"O_ 
f)xkkM$[<5~%!t-</
LQxkkM$i>ؖ$}'29"k2Gf	 |;zxkkMdBvy/g`Wy #xkkMDh,֕>**$<\] Z`LxkkM<Òy|/ņwY*l 2xkk *cbxesmKݬz  `xkk *37ǕK#}?*.e>Y6# xk{;P\/daU(8%g&e&{g0Xy\`L$ssL,tu`Nw:{6xt&٢$7ԗר؞*YR z㚔_˩Oڗ6o8yǓ0劜xɿyG|V55YyHս^<uH͕G(ݛ޹«zݖ]t4bYzN~RbC'aB9߾+YdUPX̐NmͩMt^Ym?"#,3<%ho#]-3¥Y 5ۅ]-8\+@eA!rĀҜĜ̼xUE=g;zT60֋fVf||4+&!B(N+/*fYn'qsr,[ӟo[RCaG[*= %}xkk *:샙ԣW	[Joۇجz $xN21JMhҬF06.1vbeZ}6N{fڳns4Ȗp= !%ˠB40000 arkui 		KlGj;3kg<\E	i{Uhn2ZOZ4'{+640000 graphic k&
mBEx0kjH40000 hiviewdfx w/qHU7OZoNG_MRe,2O@ǰjT#40000 web ߁o&1̮(]x{λwgNαZ^WSoSS~ 3S2S3KWYU}R*qeM,svw(^/O-_Z\bsQeAIcQrFfIjrIiQ*Ȝ3*+ENy*1kȃ'G7ZX杓<F!F]7rBE^Eⓧ0G=yͽçUW3:(;4$37g3KVcXP@p-\Ui&Uf?}	Ew:-}OliK3hL,.)L*-IMH,J)O,Jeh$dunvn?O`qk|nbLgB.I1{Md8QّyEj,d
C,L-OI`跜yiMʧ&_]`C,Bܥ]]Rz=Ss2
JKޜ-r(z߬-?B^Jv|IbQzjI^z^&Îgiqy'Vޡ5p#мԒlc5vpKx*M٫&*mHy/iA^omyũɥE%ZO=;疁C59/\lͶ ԋex! t%c%"DG
Ȥ,'x y<Hr~KD>~qQ-#A*6O[JyzS˪+oW7 1G8t,=]Y(]^O1>*36e<x; /-|QǀͳIT 	E,dxkk *itGI۞|bmhmF c4xkk۰EqǕLi-~g?bi^/& *bxkk۰E$s|խ؟u)[l#,^L Tx y<Hr~KD>~qQ-#A*6O[JyzS˪+oW7҉hAqD2AeqH,=]Y(]^O1>5ixkk *_qmtaՆ{kma 2xkk *2WDzL(s:0MEx! r  73ڨ,Kuxkk *itGI۞|bmhmF cOxkk,kC\K֖]:I̟͢:.xkk *'ut~3Z|yfی -x  ?6℉奉ɬֲ>Y.xkk *1eq'?לx&%ofی w[xkk */Ifv}/:5na gx2u|ljO
mɱF [:0I'eUPVۊje^8
A3a;RZ?Γz/8iz]!&Q#=a40000 hiviewdfx >eKZjgjbC#ړ7>~Q?A|^f>r6OtU40000 multimodalinput ~aWF::YV9ί,0`1IP䮥98._l[&2=/x~	Ux! /-|Qǀͳ0xkk *Dᗾ|aX7Vefی -xkkpE$h[(nu,jL ,-xkk۰MD)w~Q玒3ZZZ$W̙| `P,xkkې"h:ۨSchnsK/ i^YxT nSA6MR+!L]iz]!&Q#=a[l}5&%9\X#Xó,$xkk *H\PXi󛤍e3Cܬz Ý=xkk *:״g]Bg]"Y6# N\kx: ˪+oW7OO.YHu,K|\4xkk *@Ī3L2Ffی ?;5xkkې"Rm5[Z\]Zmbe cxkkې"rR;+eGm"U,L Bxkkې"b`ͩT&~_%/~B*^& ?xkkې"2m_{_餹"Yhmbe <gmxkkې"rʪvA+Wobe Ӕ&x: 1l(CO~iݱC"m/Ct?W>Ixl -@"0pg7-e~{ZiGICOT̏9f|Tr !!u7|2йƭDس,3Ixkk,2aݘߌ[fe_̟҆͢ܰB.xkk *v2-W\yCAnmF &Yxkk+s7o\4{~䍅L"شmf|ƪ&߇{'XLk_YCٞ=.[] K3.:o./1/q[o.bE5Et^<K`Ēr59ET	Qo;rpO\Ţ_/аU=rgYC!vedeU0l~HrUDo>n|/DMf^AiInjIF~
C_7g~nV}Y{2VDUniNIfnjJf"Ui=6{LyB*=WU$Me렘C|NrxrȠ0zYdqb.3
:;Ģ[LMb\fd{AcbWrB&12;aǡ/3oV\Mcxu؞%e\}T xR 2u|ljO
mɱFciz]!&Q#=a[~Q?A|^f>r6OtU,&
|x W2u|ljO
mɱF [:0I'eUPVۊje^88iz]!&Q#=a40000 hiviewdfx >eKZjgjbC#ړ7~Q?A|^f>r6OtU,vN4xk{;P\/daU(8%g&e&{g0Xy\`L$ssL,tu`Nw:{6xt&٢$7ԗר؞*YR z㚔_˩Oڗ6o8yǓ0労}c\`zвttΔLe)Rxuoǽ'O9RseũnJ&?b^~F?Io?gNEJA,K/J,LfP͖9n\z^$υ,L-OI`dTxS~Ң^Y*Ó$zmlho"LҜĜ̼xUE=g;zT60֋fVf||4+&!B(N+/*fYn'qsr,[HǛV=ӣG=BRa^xkk *<z<P.ﷴ/x:;.x4 ]_j᫘O2!gq%#b'#u;LUCBxkk,xaVͲs+>kfQO =A-xkk۰E~Ǧs-p?|{Y N/Zxkk۰EEֻ=&5Q{Y 5 -xkk,RG)(+Ē+XY3  -xkk *>YYV-u%Y6# w-xm ]CNL0鬥i-qZI/$DQdr#]v4(^r~?|r1g>{l40000 zh-cn Oqbku-/x; UPVۊje^86gccIR?}{c9ʳ,yxL2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp qC/Rrd5ծoJMl
?iefZ$bλ׷n^(H&40000 graphic 	)%o+z@ 40000 hiviewdfx {YI	 {Gƈ@A¥rK7>oKTvf=^QP'40000 multimodalinput npJkT0!+2(V:6όTCΝ;H.(pd58HTՎ{rx! 3x=38#"xkk *Ri|dt弇^ݵ:wPxkk *7;i~(vφ'^Y6# ɴ~xkk *lm:vkX\Y6# K>,xkk *(mһH[Eʗ^~ǴY6# 9Zx; -@"0pg7-e~{Tr !!u&]$xkk,+//KF7h߅ָʟE?1 Rx! hSⒻ*W6d:uJ"Xx! 7~,FL΅\zJSK2x: 7~,FL΅\z[owI?tfE,D{xkk`d(.l]zo2^ʪO 3S2S3K<x\Iuo㹂
[6N`Ylc(K1ESDL5Ne)Rxuoǽ'O9RseũnJ&?b^h.so랹-
~ET~/U9ڎp'+!*222SS*#=9^Tpp<W{Cs)K]83z9%)9y%y;bTۈ垆GX/X6|DV8:ٚmHǛV=ӣG=B'?gS  M*|xkk *RXҺ#Wn[oa:y*x!  [:0I'e Zx2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp q@8Fg? ejř6bF<V_'|&0=r>40000 ability Nʭ}?uᓓ㓔M4Ȗp= !%ˠB40000 arkui MWGL0LJqս|ԛѕF'X"ޓC	q.FֹBuR
40000 global g/]VC	!+tR240000 graphic od<GDUԫ?40000 hiviewdfx QeB{j\ce40003>[dPweW訞M40000 multimodalinput Q_rB}FyBV6:6όTCΝ40000 sensors ک+pjڞ.fH	]vϳ\n)HiFd.:x 94],FT<{}40000 arkui j.@Fb4JQ
A3a;RZ?Γz/86
/[Tî1)40000 hiviewdfx {YI	 {Gƈ@A¥rK7AH kHSpbm,H.(pd58HTaRjx! m,4Q)wn}x 06.1vbeZ}6N{fڳn͗P%'Kp9ȳrZ4'{+640000 graphic k&
mBEx0kjH40000 hiviewdfx w/qHU7Au{ʐ,[AVU,O@ǰjT#Lf(sxv2??	BC]*Jeۿw\s#G40000 BasicServicesKit kRb#:zuXQqD;GCXq+O/o	440000 CryptoArchitectureKit c@yxnYDes]m*[]uB?nMZlkLn040000 ark_runtime 7Fʼ7RuS=40000 arkui &lؕsy4ԲB=A"xfo240000 distributedhardware bR9f/62Rg-B3a\d7*T.JQX85^9t˱Mzv40000 hiviewdfx vT(R[bJ!+Rnf97wbf^.nh4_́y40000 multimodalinput j0wo*@s&hOR81100644 ndk_targets.gni ˸u[40000 network ڔ[)RoR*$	?[a7:p=d5jGn40000 security ;͟9QwU)wLՓ;+@f!?\8-MF'xkk۰E$/WҘ5SM0ۋl F-Ux  H.(pd58HT DxT -:طH'1r$bλ׷n^(H&8H.(pd58HT r0$cx! -:طH'1	0x `2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp q6$bλ׷n^(H&40000 graphic JƌH+v@#6[\ƳP%Ȼ	ᩳ,H-x {N{wVD:e覇Ix#qս|ԛѕF'X"ޓ{YI	 {Gƈ@A¥rK7|3дP~E/$%"_,:6όTCΝ;?=xv dTS_:>%lbջr6nm5z"ȀQ`bc40000 graphic 	)%o+z@ npJkT0!+2(Vv1Xx} 2?^o@D6oЍ:.40000 BasicServicesKit : Cp%Mbp q8JƌH+v@#6[q-AS[Biėz_,h8++dxB2??	BC]*Jeۿw\s#G40000 BasicServicesKit QIGQ0߯qg[:h_;[q@D?焄uFȚn40000 CryptoArchitectureKit 06.1vbes]m*[]uB?n6bF<V_'|&0=r>40000 ability Nʭ}?uᓓ㓔M42`ǂpw.P\2!5<40000 arkui }٬ :<MbB=A"xfo240000 distributedhardware bR9f/62RgVC	q.FֹBuR
40000 global 4'{+640000 graphic + r0ŕ}i40000 hiviewdfx w/qHU40003>`asb40000 multimodalinput 9!WMq\+b7VY:p=d5jGn40000 security ;͟9QwU)wL40000 sensors ک+pjڞ.fH	]X2O@ǰjT#40000 web ߁o&1R=/Xxs 2u|ljO
mɱFc7~,FL΅\z[owI?tfE, 40000 zh-cn 䮥98._l[&2=/.4Zx 2u|ljO
mɱF&zx{wc7+_!Q6]-W:*+6x! bIMەG%efx! {YI	 {Gƈ@A¥rK8-x)2??	BC]*Jeۿw\s#G40000 BasicServicesKit ̡wxO, #q@D?焄uFȚn40000 CryptoArchitectureKit 06.1vbes]m*[]uB?n6bF<V_'|&0=r>40000 ability Nʭ}?uᓓ㓔M47Fʼ7RuS=40000 arkui ~ cĺzBSCPPRB=A"xfo240000 distributedhardware bR9f/62Rg-B3a\d7*T.JQC	q.FֹBuR
40000 global 4'{+640000 graphic ~uݨ)d
Jf[n40000 hiviewdfx 8UuL!_40003>d$G<40000 multimodalinput a.5ix.6PzVY:p=d5jGn40000 security ;͟9QwU)wL40000 sensors ک+pjڞ.fH	]X2O@ǰjT#40000 web ߁o&1&K5r#xkk`$r(.l]zo2^ʪOoA6 \,xkk *2]wNf?2*fی nx  ':6όTCΝ;/x! dTS_:>%lbջ'?^xe qս|ԛѕF'X"޳6>|3дP~E/$%"_40000 multimodalinput npJkT0!+2(V,sxl ,ye__7UPVۊje^8	)%o+z@ [ϥmք/T,+%4
mx ]C/Rrd58	)%o+z@ 40000 hiviewdfx bIMەG7>oKTvf=^QP'40000 multimodalinput Q_rB}FyBVS`F1x'8Fg? ejř6bF<V_'|&0=r>40000 ability Nʭ}?uᓓ㓔m_EFWk1ZaØ=;IG?rZg/]VC	!+tR240000 graphic od<GDUԫ?40000 hiviewdfx ,=^;4R*7AH kHSpbm,6r#0'ʚM!UB*x40000 sensors ک+pjڞ.fH	]2;~>6x  'ɱ/`dk(l;)x ]p\4+5XZ2Z mmqvhWx ]fohDsK qvx ]%#43j)rwQqv3x ]j^'6e5#BMqvy xm j.@Fb4J	)%o+z@ Q_rB}FyBV_hW~Ɠ..1|xkk۰E1,bZ;7eb w*x! ㊦{onQHJPZxkk۰EWŏZR_omy/ *x6 v?E 'Ps!¤x;26@]mUC0(nSz~ZMx! 	)%o+z@ *5	}x lj.@Fb4J	)%o+z@ [>I62):t.*Ԧ<40000 multimodalinput Q_rB}FyBV'WY[NW\Vw>{xkk盰Qdׁ9=nox.ڼzљfl?S__f`{H 2s2K*Do\k9Z'Ox\?]rXsR	+͢Efgc	sT~d]Ăd*!a-?x!{Y*Ó$zmlho"LҜĜ̼xUE=g;zT60"Vy^p3ܭyd<.sNe&R2M#P]թiZ? $v]Lx -:طH'1UPVۊje^88JƌH+v@#640000 hiviewdfx bIMەG7>-;|b۵6olDl&_40000 multimodalinput ~aWF::YVr#0'ʚM!UB*x;z"m/Ct?WkplFx{wV6;
E\'Oohw{-ilr qsx~ ,ye__7>ߺbA^fP#40000 multimodalinput npJkT0!+2(V_"m/Ct?Wx5 x  9yS+/)lEҾ/x{wV6G;Jhii_3gI69 D+\x{wgNαZ^WSoSS~ 3S2S3K",>fJ3|"ՑgU':L߸yKK[N̒˻1¹$߱(9#$5(dCvɷOLQaYį"*t(9kM3n\:9٢$7ԗר؞*XYR z㚔_˩Oڗ6o8yǓ0|{xbZ9Z[v;@	(4APWɧ6L_g9YybglV߻t9#Ɣ⒢̤ҒԔĢĢTkIrA_f6CPdzGogv[vm .19I9Mԫνsڟ<*(J,Lfy %罽VQYZV}b,o_wG(H,v'M5a?Gcl/]c[SWPZRVRχ?s.
-d>9u]ZۆrHfޖ185ZO=;疁C59/\)+/*fYn'qsr,[0N~x(kȔI[7Z<E>Ԗy= 2Dx{wV6՝ʯ̷L:>o' _Dx~ dTS_:>%lbջJƌH+v@#6[>|3дP~E/$%"_40000 multimodalinput ~aWF::YVk8|Qx: ϥmք/T,cd[r1*1D?xe j.@Fb4J>ɼ7ZYQ߼,a%U40000 multimodalinput Q_rB}FyBV_)Jx{ηa%yݧ'v鸝;7ILkտ{YL@*C79auK,-rE~ 8px{wHuze(.6b!70։ 
Gx P8Fg? ejřbF<V_'|&0=r>rj.@Fb4J$)=2ۜF
.$c[>zskM40000 multimodalinput Q_rB}FyBVGK
;xkk۰Ej7=y<g]ΟPx,^L 9]x! f2]FzـnN)ӻ,\x! 6y"k_̨,/=x{wժM3͞{nF @kx! ps i<tѳ,
x{w﨧}nUE)MeV;r<جú 'Ix{wH?g[4J_Ӻ̦enF }RUx{w#"gEY	>,Z"bq(%f ݥx{wJ]e/ϕ]*Yoòy/ .x{wF]Xq3gy*0kG :rYx; ^bF<V_'|&0=r>r7$)=2ۜF
.$c*0]tx{wJo|l^ݞƥ7J{Y 6!x; ^jcr:1l[ >*r7$)=2ۜF
.$c*Yox{wHV%[}zmR"lf݌ j&x{wi[|{6oXҞ~vcf݌ MKx! `RJR,X{x{wodm/vmnF v)x{wiSD-;<T>v:}Wx{wH!#l-gT7ެú x{wH]E_I_\NP.:3x{w_-xR/a :kax{wSig~QmAKڬú px! )zѴ54vӳ,%(?x{w՝;V~w6f݌ %mx{wXwp-;\L@f݌ +,x! [3*,8x{wȉf[C`i{0Sf݌ gMxk{λ9 '_x6 ?D6_ECϯ6o>S~9qK9'$x6 DeKĊ^pgSJj[6E`vqKa31ix6 ۝GI6T
\)pb6UTAA2Q2qJ&.x6 ܉VH\P%L63( q@g͋/=_P6.x; dTS_:>%lbջ|3дP~E/$%"_,	Jxd JƌH+v@#6[>q-AS[Biėz_40000 multimodalinput ~aWF::YV/<x! QjÌ'k޷5kaR,lx! ϥmք/T,x; ,ye__7ϥmք/T, k<+fx{wgNαZ^WSoSS~ 3S2S3Kf.y͝<Wڕ)}aX2~--n;1K.ʂ|Ǣ̒ҢT9'Z?u2n3	FceI<xrMqslnqUѱk9Oc`(F(,15j $&edT2޸&rjSN)L&V`a֖]N/pj-.dudr9մٖ&̩,ʼi36}Jg+~No]:DcJfqIQfRiIjJFbQJybQ*C$ vsm~!(} KXs#ηW3w-viĘ&[޹wgY[@%dd&3N_hPmC,L-OI`X>op/;s#fScOnJqxջwxl{rKsJ2sSs2
JK>XJ*g΅Sᾅ1ߴ'\kU`ې^n	Ӭr F&WgoZ2Vy&G0%yEVy^p3ܭyd<.sNe0bw;erW<5aUgUr"ֻg -[1wx{wH?ޏֆ.CqJf݌ %x{w#"gEY	>,Z"bq(%f ݥ	x{wC&O	Ǜ
b.h PH,.d[gsY6	,ʬ(Ęs&\c!faeBoc9Mmja7_;3bWniNIfn~JbNf^Ai	ëݞg}gԽdUaNUMx{wBSvP*oSJWE<ܽ`ߢbګ%vKp s~^Ij^knRjwf	bNϹY9"AL$߱(9#$5(~}ʊySxJ140r@Ի$$nfch}%n+O1_|,T 4(4?Z/7./4>}ȕME5E_әbÄKz^Y",϶xC.Ys@,L-OI`XW6=DcYГ$/Eyi-'?d1KNw6|7wZ_T!sKsJ2sSs2
JKޜ-r(z߬-?0VK[Sg|=S^3h[~
͋Y]˳>Zx 0]̡wxO, #qp47Fʼ7RuS=40000 arkui W"{{pLby (B3a\d7*T.JQXyCWAbŒO[>d$G<40000 multimodalinput a.5ix.6PzV}Rkx{wHYKFm7;_ytf݌ .x{wȳI>M?$te41:Pwxkk *gGEdqʙG{w~)XdY6# .xkk۰EdzgFsbwvz۰l 0xS $)=2ۜF
.$c[oKTvf=^QP',ZI/$DQdr#]6"x! &ofӬH3lb*Õ*JBxk{λa%>@[eS%Wy/ gpxk{λ9 'xkkMdDdsT 2+xk{λa%7o|/nqқJ%y,ZL \
Yx YMWGL0LJQC	q.FֹBuR
z/8od<GDUԫ?40000 hiviewdfx ōxןXū2uj7[dPweW訞M,ϳ\n)HiFd.1MBx 94Ȗp= !%ˠB40000 arkui MWGL0LJQC	q.FֹBuR
z/8od<GDUԫ?40000 hiviewdfx ōxןXū2uj7[dPweW訞M,ϳ\n)HiFd.=,\'cxk{;H/5/?uek/<mCvɷOLQaYį"Qn_4ozomc,f4Ĵ-sUwz($ef2rƼwT{qvdQ"61orLY5#Ϩ%#zGogv[vm .9I9Mԫνsڟ<*(J,LfzW;c/5j *222SS*Olv-Xީoߎpɽ8ܓYш߁['?l<?d]~I[7Z<E>Ԗy= c&l.x] {TfbwYy쥳6$bλ׷n^(H&40000 graphic ӝ\OuI<*
(x{wHvxDߣ-mWduYu7# 9nHxT cR)nJq#
x+Wb1N!E,ک+pjڞ.fH	]%"+x: #dAk.bQB,ک+pjڞ.fH	]tx{wC&oOL+0GQ@kˮ8 BbQvi&ҏT;+/+5Wk(s cs#ηW3w-viDgzN~Rbosf-O
22-yVl|ݺe;<p"#,3<%aAkwYAaPOYEf^-%<Bя/V̻Yш߁['?l<?d]~IO:9&oJin) t{[x: $)=2ۜF
.$c[Alڈmql7S8,$x{wJo|l^ݞƥ7J{Y 6.x! Nʭ}?uᓓ㳔S;x{wgNαZ^WSoSS~ 3S2S3Kf.y͝<Wڕ)}aX2~--n;1K.ʂ|Ǣ̒ҢT9'Z?u2n3	FceI<xrMqslnqUѱk9oc,f41p\/ ಙ>ؐX]ɰf{MJ\7uͲeEw:-}OliK3hL,.)L*-IMH,J)O,Jeh$dunvn?O`)£Ͱ"G־0u{,v&$>|8Q9o@-)OI+(-a`)+ß9Nt~N2ƺ.rUmC{?$L}so˃Q\ZYRԳ7~nx<TUb[+Oi</uּ?zi9'ǲl߸jjS[^1z "8x: (Bǜar,ک+pjڞ.fH	]Fyx {06.1vbeZ}6N{fڳn;k&
mBEx0kjH[Au{ʐ,[AVU,ک+pjڞ.fH	]hg;!x{wgNαZ^WSoSS~ 3S2S3Kf.y͝<Wڕ)}aX2~--n;1K.ʂ|Ǣ̒ҢT9'Z?u2n3	FceI<xrMqslnqUѱk9oc,f41p\/ ಙ>ؐX]0u5
V.o(y\dQNm9S:[sZ~+ S2K2JKRS2RRZ%YohAX\E,>\{t,ϢNU^XͰ"G־0u{,v&$>|8Q9o@d$d0|TϜ}c:i'Oc]֪!Yy徹A(NM.-,dxzV?UQ~*LI^q~Q1íE:wk=4윓cDo\x|V-w/n{ Ò0xQ2??	BC]*Jeۿw\s#G40000 BasicServicesKit YB9f4	aYs%q@D?焄uFȚn40000 CryptoArchitectureKit 06.1vbe:y4!W,e٥n1˦<F0`Bu~ǗNqiC40000 distributedhardware bR9f/62Rg\LOPCX"%r[>΢{3Y	]zfj~F40000 multimodalinput 9!WMq\+b7V:p=d5jGn1ک+pjڞ.fH	]v߁o&14}mx{wgNαZ^WSoSS~ 3S2S3K",>fJ3|"ՑgU':L߸yKK[N̒˻1¹$߱(9#$5(dCvɷOLQaYį"*t(9kM3n\9q2ȡOm4J,;yr(NŶ)9-wsFS2K2JKRS2RRZ%YohAXf}]sԂ^Ue+%ڮx}לyY.'ϸ 9%)9y%,e%|3©poIXE*mHy/iA^omy#SK2K*~zv-ojr_
SW_Tpk)m7ݚGO62;X2W-"Umj݋<[ J#Mx{wgNαZ^WSoSS~ 3S2S3K",>fJ3|"ՑgU':L߸yKK[N̒˻1¹$߱(9#$5(dCvɷOLQaYį"*t(9kM3n\9q2ȡOm4J,;yr(NŶ)9-wsFS2K2JKRS2RRZ%YohAXf}]sԂ^Ue+%ڮ:JERs=W9z>ҜĜ̼>sToaL7$a"Z6C4 7<ũɥE%ZO=;疁C59/\)+/*fYn'qsr,[V_Ϫ6Eíw  Љ!-x{wgNαZ^WSoSS~ 3S2S3Kf.y͝<Wڕ)}aX2~--n;1K.ʂ|Ǣ̒ҢT9'Z?u2n3	FceI<xrMqslnqUѱk9oc,f41p\/ ಙ>ؐX]0u5
V.o(y\dQNm9S:[sZ~+ S2K2JKRS2RRZ%YohAXtE_әbÄKz^Y"Dl=7,TX(m=v{Y&ltzC7n]/!d$d0pKy~{N[O^ƺ.rUmC{?$L}so˃Q\ZYRԳ7~nx<TUb[+Oi</uּ?zi9'ǲl߸jjS[^1z i	x hN 3I]H#(B3a\d7*T.JQXF=1yq \J+.C[>$Ьm:e?ϮbD'z40000 multimodalinput IJ+Loj-NV>.x v4Ȗp= !%ˠB40000 arkui im^SE#䚳\LOPCX"%r[qd@ꍮIWP?,<܄HJq
w*b>	Fx hTT}wlOaa(B3a\d7*T.JQXF=1yq \J+.C[>fɀYEN-b	>GH40000 multimodalinput IJ+Loj-NV=7@&x; js(5 |JLxѯɳ?B{ys	R(Ìhd,px{wSߦG{q'#enF x ~21JMhҬF		KlGj;3kg<\E	i{Uhn2ZO6?B{ys	R(Ìhd,߁o&1̎<>x9 *s FF̤C+o#Au{ʐ,[AVU,71x ߁o&1J1x6 		KlGj;3kg߁o&1& vx{wgNαZ^WSoSS~ 3S2S3KV=x%t9&:L߸yKK[N̒˻6TO)n?*:t;'yŌ&݇?]ǂJl!&ef2̬Q?9~Ǔ?BLe>?.~1%(3$5%#(<(Z\ifٹ6>YEW񅻉1)Z?L$59%Bt<o5Sp==-},v#OƺmӖ~ڍ.sKsJ2sSs2
JKfNL3lVIOl٣UXי*mHy/iA^omy#SK2K*~zv-ojr_:ٚmV_Ϫ6Eíw  R>x! ߢƻ'-/@ k?$M30x 21JMhҬF`L+xP ~ cĺzBSCPPRd$G<,ϳ\n)HiFd.6 
x{wHzvmz:98xe]kRb#:zuXQqD;GCXq+O/o	440000 CryptoArchitectureKit c@yxnYDlkLn02zCmT[C89$uثC8Lʡ={N$40000 hiviewdfx (Bl'nnF;7b7A=mͱ]y>640000 multimodalinput #4[.! 100644 ndk_targets.gni s	-RໆG,40000 network |Fc](:Ry|6߳/xj+ۤPC)x{wHuze(.6b!70։ Wx{w^pTmoɓ)~sDF F=x! B?
W=·hjVn5x! B>tߜXr̚qVex{wVҪǘ>-^8֌a_x! \LOPCX"%r*` 	Cx i,I#~k͛ˉit\LOPCX"%r[>qq|:iYO9bjF,=40000 multimodalinput 7a?A:8g*pV:p=d5jGnϔG>lx! Bֈ۸N<7VA3x{wH&#3O˫Xw;4aC3x{wUup{vs]p:.x{wZۆrHfޖ7Y< CZxv2??	BC]*Jeۿw\s#G40000 BasicServicesKit PѬ3ii~&?gq^q@?焄uFȚn֑ŕs]m*[]uB?ns47Fʼ7RuS=40000 arkui `1+dsaorB=A"xfo240000 distributedhardware bR9f/62Rg-B3a\d7*T.JQXF=1yq \J+.C[>&kZL~^+c&40000 multimodalinput IJ+Loj-NV;͟9QwU)wLՓ;)Cx{wHYȹIYsܺ$tl7f .x{wHC	V-e|U9u"# 
[x Q]YB9f4	aYs%q@?焄uFȚn֑ŕ#ZuLq*n`[ݹVj!wS[>A}Mz_Յ}O40000 multimodalinput 9!WMq\+b7VPJx{wCHEj~y 49xv2??	BC]*Jeۿw\s#G40000 BasicServicesKit ̡wxO, #q@?焄uFȚn֑ŕs]m*[]uB?ns47Fʼ7RuS=40000 arkui 6{ku\C<B=A"xfo240000 distributedhardware bR9f/62Rg-B3a\d7*T.JQXW@D$:X6+[>&kZL~^+c&40000 multimodalinput IJ+Loj-NV;͟9QwU)wLՓ;߫Qxk ]YB9f4	aYs%q@?焄uFȚnֱ<`[ݹVj!wS[-9!WMq\+b7V1@x ?焄uFȚnֱ"7s,nx{λw}?1Gu7|x-tt (8%g&e&{g0~'q!3B1kwBU8M F8U;%gd&Y0Cbz^T)R.<xrMqslnqUѱk9oce2x=}ooh	eAlH,ʎ/*+MeXu<v
k{ZX?\Ui&OOԿ-4YFͬw6>}_gk͡}ɩ̙N9u^5poߡe\\Y11%(3$5%#(<(v+<ؙ$lڔ,"N/ML1aB%i=fɁ,M7Y	I+@,L-OI`0`8?O3;y=8uCF(::\ݐs1`$d0X8}̽+=$IF(dǗ$e2x3?׽Og
мԒlӜ¿*	Ia]sfsɋYͿk[c&LҼv$85(!dδ7gs;IBľ8iڢ|7E^<[Y_X^71W^0~$/O L12ux{wKYI?̹p*ܷ0v0։ .x! `[ݹVj!wS[:/x7 ]YB9f4	aYs%q@8Fg? ej"a:tx7 ]YB9f4	aYs%q@RФYTX,#j"5	9x a2?	BC]*Jeۿw\s#GձF:y4!W,e٥n`OE<p(uv9bR9f/62RgJIp'	=;gV,;͟9QwU)wLՓ;9H-x} ]YB9f4	aYs%q1˦<F0`>p
M\UBv40000 multimodalinput 7a?A:8g*pVc8\9x9 ]YB9f4	aYs%qM}B5,$26vlnD2lox~ C[Zuz,)zwyCWAbŒO[>^3$iT\aő40000 multimodalinput a.5ix.6PzV6\x{w桧ss^־tBsdL:y;x{wkI!i;,HWܬú [ ix 0]%k#Sd qp42`ǂpw.P\2!5<40000 arkui }٬ :<Mb(Y74SI3ePmHQX+ r0ŕ}i[>`asb40000 multimodalinput 	=p_?L}zܟHV[	x a2?	BC]*Jeۿw\s#GձFd+2=[":fIwn1˦<F0`bR9f/62Rgp
M\UBv,;͟9QwU)wLՓ;PHpNx{w9fC,!%\xt#fVf |x{w9f'ͷ\9Yˬߚgob 
)%EI%)E)EXot!ǗW,r	 !!=Xx{w9f%9)'|:/{_͏Yx} <\E	i{Uhn2ZO6>p
M\UBv40000 multimodalinput <c7VBjV;͟9QwU)wLՓ;&9cx{wCqn렆oL]7UfU,L Dx{wCR53ΘDX\LKBU,L rx{wCwն6ks{\Œ  x{wCHҼ2yY#,</*\& *Nx{wCH˔7,:RqGOi}uQ_Xr (c|x{wCk$;WLdNx_ڴ%	 S*x! f
I٬_jzmZZx{wCHUU1;RTVU,L ;x{wCsWzn }@t=Xr {6x{wCHuٞ3s+ټN)%	 
dx{wCK;7eiD_}O}Xr x{wCȻ3|Vs~jU,L .@x{w|?v_x*>= PpJ,LN-*LN-,a㹂s&ՙI
*lX7t7<OSfm^1¹$߱(9#$5(dK
oOY|\&ޫQ'\l7k1גxmc,f4}tw=^HW=VbCbQvi&ù;rB7T%',1ݼϢ(N«{;<yȑ+/NuSP7Ҩ3OzÄ9s*j}W.bbzQbAFf2C9)66=.zeT̲
':[VvnjI,vGĖP}!+]h-)OI+(-ag]_ԳyөGn3+~Lc]'2Nojshk]p|d	FJ;:w<"g$?FsÎLUz J=/x{wCȣs]osjxTB|)*\& #]x! f =gf 8ܼ~zmxm 21JMhҬF#ZuLq*n`[ݹVj!wS[Qa936W	}z6,1	x{w9f'/{L-?)~%:%'(de&d$'2^K\:Ml7;7\g @a ex{wfy3wUŶu,י ]x! >җyԺr{Ukw/4Cx! vЩJ|Lz˳0sx! 1,_(.Ţy7$$#xm Z#ZuLq*nbR9f/62Rgp
M\UBv,;͟9QwU)wLՓ;>c1~x{wfkIrA_f6CPfL 'aMx; bR9f/62Rgp
M\UBv,xS bR9f/62Rgp
M\UBv,;͟9QwU)wLՓ;6(&9x! ōxןXū2uj'x; Z `e@s	XD)xnqq|:iYO9bjF,=,8fx{wHYȹIYsܺ$tl7f x{wgNαZ^WSoSS~ 3S2S3K.Ydy[f
B&yțZcK׼sߜXhb)xSA^@e3M|>`1<(4Aoޛ\{Lɢ;>csܧtVޥA4de&d$'2^K\:Ml7;'85p713\k	!&D.znXYP/?zlDەI/\1SwR&sbqniNIfn~JbNf^Ai	ëݞg}gԽdUaE~zv-ojr_:ٚm (x H2?	BC]*Jeۿw\s#GձF:y4!W,e٥n`OE<p(uv9bR9f/62RgJIp'	=;gV,;͟9QwU)wLՓ;z"m/Ct?WKS^rxS 2?	BC]*Jeۿw\s#GձF:y4!W,e٥n`RZ]_qz/H\5'|Tx{wgNαZ^WSoSS~uB6 3,x! Z:y4!W,e٥nyR/x{wfkIrA_f6CPfL 'a-x{wSKDnOe4kYu7# 4T-x{w#eQ$ewQJMX3N^7iY3 ~J-x! ΢{3Y	]zfj~Fʳ,
7x{λwBSvP*oSJWE<ܽ`ߢb.ګ%vKp sQeAIcQrFfIjrIiQwf	dR"J<bvi`Igx<|R>[AE٥r~i1uq[Gl,<be̨G'YOmd,L-OI`XW6=DcYГ$/Eyi-'?d1{nvJs
?Kh;B4d$d0d9[P,Ym[	C3ĢԒbL;|}\^eJ߽14/<(֔?Gږi?%zbVF a+x! Z(߻c)ܗ=ny[x{wCH3'q![6<xw%<JV 	x! ZmȺ:诟ny7=x{w9flnfO;>͏Ykx{w9f5\0ޖw?PG̬ |kx; iio?S˰6΢{3Y	]zfj~Fʳ,\5x: 9RDՓ1^֌~;͟9QwU)wLՓ;"Ix B]%k#Sd qs]m*[]uB?ns42`ǂpw.P\2!5<40000 arkui }٬ :<Mb=A"xfo2+ r0ŕ}i[uxT#%<C;ZQ	,pTKx! 	ʎ3߶Ժ!G>,r{x: =B3a\d7*T.JQa7g6|ΝY+[ϳ,'Dx{wgNo/b7=S#vnF wx 1]̡wxO, #qp47Fʼ7RuS=40000 arkui x/ck/l<;T_L~uݨ)d
Jf[n[> q%nM40000 multimodalinput a.5ix.6PzV:6όTCΝ;ZxS aE,[lI(0Ex	6΢{3Y	]zfj~Fʓ,:6όTCΝ;a'<dxS 2 kv+m1iNF`OE<p(uv9JIp'	=;gV,$AFx{w#ȡOm4J,;yr(%f W.x{wuWNk:n[x; =A"xfo26JIp'	=;gV,S{Ix{wHؼ^g^fzf݌ avx{w\NF#"O/dcЭYu7# p#x! 8ͨru|,5Sx{wG	~	$eCy.yi|:Z9x{wD+Ela 82/x{wHeGg_Vpt?;yEf݌ 	]x! bo+*6`8,5x! L<$?HbQ o,A=x! Q ̥cu"n+,mx{w'
78]D;<`Ԏ:^.x{wB%og
^2/ 1+x; Zs]m*[]uB?n3?YQJbjT#0,4tx ]PѬ3ii~&?gq^qs]m*[]uB?ns47Fʼ7RuS=40000 arkui `1+dsaor(B3a\d7*T.JQXF=1yq \J+.C[>I.9=īBעp40000 multimodalinput IJ+Loj-NVgjx{wCȃ'G7ZX杓<JV O.x! im^SE#䚳{q]xt 42`ǂpw.P\2!5<40000 arkui }٬ :<Mb+ r0ŕ}i[y3&6~Z.E,3y_x{w#HS'%˹̶̯3IdNfQK 0x{wmbr2dK߬ú e^x! 3c"I5Ii,,+x9 ]YB9f4	aYs%qqd@ꍮIWP?,}%Vx! /:\7,`?x! + r0ŕ}i* 0x{w#otӖ16v̗͢4t]x! }٬ :<Mb	kx e`[ݹVj!wS[Bߢƻ'-/@ k?$40000 distributedhardware ?OJ؎qq|:iYO9bjF,=,:6όTCΝ;7Ax~ 1˦<F0`<\E	i{Uhn2ZO6>p
M\UBv40000 multimodalinput s+,[臏;Vd8tAx{wBSvP*oSJWE<ܽ`ߢbګ%vKp s~^Ij^knRjwf	bNϹY9"AL$߱(9#$5(~}ʊySxJ140r@Ի$$NfcyțZcK׼sߜXh}%n+O1_|,T bFbQvi&n_oL]_\i"|֑+62k085p713\k	!&DXlmkӇ]\,YZVlzƲ'I^Aw[N~bnwThJ3zLRi,h-)OI+(-a2xs<_ˡX}ڶ X-EnMisLy͠mAZ*S7/fua 	x 1]̡wxO, #qp47Fʼ7RuS=40000 arkui x/ck/l<;T_L~uݨ)d
Jf[n[> q%nM40000 multimodalinput a.5ix.6PzVw9$@
6XrABwٓ;Yfx I]̡wxO, #qp47Fʼ7RuS=40000 arkui 2|F(/ 3r=e~uݨ)d
Jf[n[>d$G<40000 multimodalinput a.5ix.6PzVKOI+x; taLK0VkZTUtǺs۪,a[ux; N 3I]H#8s,݌: f,N?x; aӍF5rYmY+UtǺs۪,7	xS ]PѬ3ii~&?gq^qaӍF5rYmY+/d/tՉ,$`JA,:%bkxs ]PѬ3ii~&?gq^qp47Fʼ7RuS=40000 arkui NYCTo܉>ͳPp يb+c)>)ų,b3mx s]̡wxO, #qp47Fʼ7RuS=40000 arkui `1+dsaorW@D$:X6+[a""{"k?,w><x I]̡wxO, #qp47Fʼ7RuS=40000 arkui mӅU?&_t4_Rb$~uݨ)d
Jf[n[> q%nM40000 multimodalinput a.5ix.6PzVLMx I]̡wxO, #qp47Fʼ7RuS=40000 arkui ô:ނuK@Nu~uݨ)d
Jf[n[> q%nM40000 multimodalinput a.5ix.6PzV9jKx I]̡wxO, #qp47Fʼ7RuS=40000 arkui x/ck/l<;T_L~uݨ)d
Jf[n[> q%nM40000 multimodalinput a.5ix.6PzV'MNx9 dfUgk|6&z#,;͟9QwU)wLՓ;xl &s䙼J,ǬyCWAbŒO[d$G<,;͟9QwU)wLՓ;.{x{wV6vCwu4I-3&%hI69 }'x{λwBSvP*oSJWE<ܽ`ߢb.ګ%vKp sQeAIcQrFfIjrIiQwf	dR"J<bvi`ۓ';|Zy<Y3VYEŕ&§oi(FS8˒W\rݷղi vgdeU0+,Itvݖ׫R1_d[;כ@4d$d0d9[P,Ym[	C3ĢԒbL;|}\^eJ߽14/<(֔?Gږi?%zbVF tx˻wu&t}4Iͯ4EoFϘEeƟRgzLVgy!Wp.`%~ P,L-OI`иtbyM{nav$sGݸxn؃J;3ҜĜ̼e%KM7[x-J1ϳLLRKSK2VWONAnާ3bh^jIy~Q6߱]%jcT͕. p	x˻w;_*MGN]pL7xt 42`ǂpw.P\2!5<40000 arkui  8Qc0!S^TDI9sw`7_$5:ӏf'_V5:x L^[\U^h#[dF58#AN.X&8^0e40000 hiviewdfx 9sw`7MK83wu#`RA6f^in.:?@QQA40000 network |Fc](:Ry|6߳yDnO3x! #+KG>E|'8x˻w0Κ]ZҸgmVg "#x[ 47Fʼ7RuS=40000 arkui :iv/ZOw\A*upl4G{v*)m$x 0]%k#Sd qp42`ǂpw.P\2!5<40000 arkui sJ	;gRmT0M(Y74SI3ePmHQX+ r0ŕ}i[>qd@ꍮIWP?40000 multimodalinput 9!WMq\+b7VXx 0]%k#Sd qp42`ǂpw.P\2!5<40000 arkui }٬ :<Mb(Y74SI3ePmHQX+ r0ŕ}i[>qd@ꍮIWP?40000 multimodalinput 9!WMq\+b7VXZv`x~ `1+dsaorW@D$:X6+[>&kZL~^+c&40000 multimodalinput IJ+Loj-NV6mx; ô:ނuK@Nu'f`
˽[˳,7x; C[Zuz,)zwyCWAbŒO*.x{w#ȷ)N>k`瀀̗͢-x! `asb켳,]xS =B3a\d7*T.JQXF=1yq \J+.C[fɀYEN-b	>GH,"x{wHLe5^Zrym:+i@x: =B3a\d7*T.JQ{Doib)]&ʬ6ꉳ,0	x{wHd~[o&qMf݌ wx{wHd~[o&qMf݌ $x} ]PѬ3ii~&?gq^qaӍF5rYmY+>/d/tՉ,$`JA40000 multimodalinput IJ+Loj-NV8hx{w#pkΔ.-t6ne kx{λwBHyD,?l5ᗉb.ګ%vKp sQeAIcQrFfIjrIiQwf	dR"J<bvi`ۓ';|Zy<Y3Xe]~Cꯨ~j)Yy
ʎs.-Pg!g-UbwFfYfjyJZCO,n:T>5Oe.Z'u@4d$d0d9[P,Ym[	C3ĢԒbL2&O4ﭞCk@Gy%E|jv~UPW7/fua ,{
x{w#ȷ)N>k`瀀̗͢
8x P>;GCXq+O/o	440000 ContentEmbedKit [7_+U_<<`\Lsahѳ~uݨ)d
Jf[n[1J.Cv]¤p
w,cڔ[)RoR*$	?[DL`x 4]kRb#:zuXQqf&lؕsy4Բ85^9t˱Mzv40000 hiviewdfx vT(R[bJ!+Rnf97"HIڴ
ГA6˸u[40000 network ڔ[)RoR*$	?[yDWZ:x˻wBSvP*oSJWE<ܽ`ߢiL"V.k&hﵛ_3i00>_\ZZ򔥓Y",x^ȱ8Fb2r 222SS*4n9]39gznӞ[ż>vg7.* 94$37?%1'3AYdRM>^˯R,C3ĢԒbL7?SwFLZR_wfnɛsY1s%&x! (.ۅe-(B,Vx{w#ȴ@*Ťkl̗ܶ͢.x! >]_p;*:Ά۳,U]x!  q%nM,
4x{w#kGgLRԺȫ7Hb(%f Lx{w#ˮGbfQK zxs ]PѬ3ii~&?gq^qp47Fʼ7RuS=40000 arkui ;x'?4-Ц&kZL~^+c&,-2x{w#u,nD'YY3 Ձx! kLIt_ Fx! Eޡgo[5\(vx{w#|]6TNc؂̗͢	$x! 9P^xeZ*v^x{w#HƮu!9;%6(wp/j(%f ߧNUxs ]%k#Sd qp42`ǂpw.P\2!5<40000 arkui aӍF5rYmY+fɀYEN-b	>GH,o0Wx[ 42`ǂpw.P\2!5<40000 arkui aӍF5rYmY+UtǺs۪,B(gAxU Z:y4!W,e٥ns2`ǂpw.P\2!5<#/d/tՉ,$`JA,r(%x{wș){K|ک##:6Sx; `1+dsaorVXNfl~ҫ3,21%x; `1+dsaorF3gjdҿ9׳,}gx; `1+dsaor&kZL~^+c&,	1x i]̡wxO, #q<LW50x}\C~uݨ)d
Jf[n[>>]_p;*:Ά40000 multimodalinput a.5ix.6PzVAx{wCȃ'G7ZX杓<JV O1x{ww-{1;qz;7f݌ b.xR ]̡wxO, #q8yCWAbŒO[;2?d>-\,,!x{w̍+eHIz< 3S2S3KWYU}R*qeM,vw(^/O-_Z\bs~^Ij^knRj
ȄSK=:,K&Et|TeQeAIcQrFfIjrIiQ*HdR"J<bvi`䀨wI,I(Q?Z/7./4>}ȕME0ZJY("UM;1$#,3<%a]eAO祭ﶜ܎{)zϥ/+.eќ[SWPZelyCfmA'&Zܚ<AT8Do^ 
x{wعod3FmXJ(d$d0|TϜ}c:i'oc 5x! v:N\n{<,,`ex: F=1yq \J+.C[&kZL~^+c&,".x{wعod3FmXJf݌ .x9 ]PѬ3ii~&?gq^q8W@D$:X6+*Ѱux{wLVkiIʈfT].ڬú ؗ"x{w̉zm*X7͗7{jsDF "x; ^`˨0OF=1yq \J+.C*0Jx; NYCTo܉>ͳVXNfl~ҫ3,}qIxT 2`ǂpw.P\2!5<#/d/tՉ,$`JA,MR&[8$z[)Q~&z&x{wJ;\&XE>#m,ZL lxs ]%k#Sd qp42`ǂpw.P\2!5<40000 arkui N 3I]H#fɀYEN-b	>GH,./nx! VtExN3F3-TxT `1+dsaoryCWAbŒO[d$G<,"s7x; ô:ނuK@NuhpTn:Nk!L߳,j-x{w}/^k_~2^Z 3S2S3KWYU}R*qeM,vw(^/O-_Z\bs~^Ij^knRj
ȄSK=:,K&Et|TeQeAIcQrFfIjrIiQ*HdR"J<bvi`䀨wI,I(Q?Z/7./4>}ȕME0ZJY("UM;1$#,3<%a]eAO祭ﶜ܎{)zϥ/+.eќ[SWPZelyCfmA'&Zܚ<AT8Do^ V|+x{w#ۅ$<O5K_s Rn(%f Yx: &s䙼J,Ǭ$ۂnk%xj ]PѬ3ii~&?gq^qp*s FF̤C+oF=1yq \J+.C[Cx8OJB	HP^ų,]u0xS <\E	i{Uhn2ZOyCWAbŒO[&kZL~^+c&,$~ex; x/ck/l<;T_L'x-Ho5qXĴWcF,*,
jx; ;d4F	 <R}'PTos+>e},x4x{w#	[ɭ;`òY3 "bx; x/ck/l<;T_LfT^6l60kdH,,x; x/ck/l<;T_LXi5u+n햴,
vx P>;GCXq+O/o	440000 ContentEmbedKit [7_+U_< )CzC#?Cl`'=:Ir;71J.Cv]¤p
w,cڔ[)RoR*$	?[Dv&IR x{w#H,qPME-Wl(%f Xlx9 ]䇍,*}ל>򹪠lq89P	JBgyDEj*4x{wBSvP*oSJWE<ܽ`ߢ.Ȋ9?g1j Pp.,(w,J,IM.)-J,aX0Cbz^T)R.0VYEŕ&§oi(F-r2{vk֜+222SS*֕MX$:KQ;hy^nYJ-i\|GN,h-)OI+(-a2xs<_ˡX}ڶ X'2 #kBx{wBSvP*oSJWE<ܽ`ߢ.Ȋ9?g1j Pp.,(w,J,IM.)-J,aX0Cbz^T)R.0VYEŕ&§oi(FS8˒W\rݷղi VddeU0+,Itvݖy=7;TZe%L!sKsJ2sSs2
JKޜ-r(z߬-?0։ /j1Ox{wBSvP*oSJWE<ܽ`ߢ.zt:YzL:zmP' Pp.,(w,J,IM.)-J,aX0Cbz^T)R.0VYEŕ&§oi(FS8˒W\rݷղi VddeU0+,Itvݖy=7;TZe%L!sKsJ2sSs2
JKޜ-r(z߬-?0։ 3kE(x :]̡wxO, #q@D[7_+U_40000 CryptoArchitectureKit 06.1vb )CzC#>@zi%Ȏ~
r40000 multimodalinput a.5ix.6PzVPS|x9 [7_+U_SKΛdu. *4GA,pDx{wH"I?&(f݌ (Jx; Wۭ|&zA|ζC($=ĳKΛdu. *4GA,϶x! /su
,|zx K]kRb#:zuXQq@DyX9뱯kaSy40000 CryptoArchitectureKit c@yxnYD&lؕsy4Բ5^9t˱MzvƓj0wo*@s&hOR81ȳVO^<x{w#HqĞlܭ&>)a.fQK x! J(:ץJb>,~x! 9P	JBgyDEj*.xl DB<2bBNNo#lkLn0Iwbf^.nh4_́y,A˸u[fە3 )x$ ̡˸u[fT\x LlkLn02 8Qc0!S^TDI9sw`7_$5:ӏf'_,A˸u[&100644 sdk-c.diff |7͗Vٱ;[BTex 0lkLn02:iv/ZOw\8#AN.X&8^0e40000 hiviewdfx 9sw`7qS40ǒM)@.6>,A6f^in.:?@QQA40000 network |Fc](:Ry|6߳DÏ_|x 0lkLn02:iv/ZOw\8#AN.X&8^0e40000 hiviewdfx 9sw`7MK83wu#`R,A6f^in.:?@QQA40000 network |Fc](:Ry|6߳D`j\x{wFSK=:,K&Et|ƣJl Xx lV=@nBб"x˻wBjVC}N7~q 2x lE蟀m1(8*"P`x˻wB5K^EyvgJl σSx d
'pC$"?x; lkLn0I֚%(]Fh	E=	x! lkLn0lo9x; lkLn0I)Np%G`(5x; lkLn0I]RBݩ>o1׳)dx% H;D5-,Mv
Nx% &lؕsy4ԲTrx{̻wv&WRWwW+%{Zt($ef2F2nyoͯ0ZcqP+8d0k	?DgFfYfjyJZ-o&,SϻWmsK~QoTҜĜ̼e%KM7[x-J1ϳLLRKSK2VWONAnާ3bh^jIy~Q6߱]%jcTɕE ox! j0GvǊHs33x; W: 7X(C`9܅Gj33t8,}xT &lؕsy4ԲvT(R[bJ!+Rnf97n/
}RtDiz
QCu$`x;  8Qc0!S^TDIJ4Jhߓճ*x;  8Qc0!S^TDI;P^{{qRK^1tx;  8Qc0!S^TDIX`%VdDįQ>Ax; ye|`o]Ɋ{SSI/su
@;xS 06.1vbye|`o]Ɋ{SSIKΛdu. *4GA#mx;  )CzC#wbf^.nh4_́y17x˻w;Nl7]WmOLSex! Kw2
n-W871^x˻w;;.ǔar!lcf&݌ x;  8Qc0!S^TDI`s}NKI~ԘTVx˻wu&wm^h̜ᓲef %xx ye|`o]Ɋ{SS89P	JBgyDEj40000 hiviewdfx vT(R[bJ!+Rnf97KΛdu. *4GAǖ31,x!zCmT[C89$uثC8'n)Xlqר140000 hiviewdfx (Bl'nnF;7H|1<VWI雷M&M40000 multimodalinput #4[.! 100644 ndk_targets.gni s	-RໆG,40000 network |Fc](:Ry|6߳y/xj+ۤPCG\x;  8Qc0!S^TDI7;$GLZךcI4&x;  8Qc0!S^TDI_$5:ӏf'_3 Dx˻w;4]N%:wkw\Lrx! ˵\D&(:&oLxx! $oh=W֨9~UThxu ,"MtWX
"R2K0I[_$5:ӏf'_A6˸u[40000 network ڔ[)RoR*$	?[yD1lx; HK
{'40=(*tMK83wu#`RNx! 5^9t˱MzvƳ*}x! 	iǑȞba J8x˻wu&`|u]<:׿a5%f W.x! #4[.! ,و/x! (Bl'nnF;{/x: \@%Y^pj0t[qS40ǒM)@.6>vk{xl ;ȣ7֠JCU	)!MlkLn0Iwbf^.nh4_́y,A˸u[f6x3vx; lkLn0Iwbf^.nh4_́y,Y<Ex ,91#*ܗ S"/sx &zO4Nmߴ5O"YP!x _+VJMO<AR"*Tx$ ̡˸u[fT3x! _$5:ӏf'_)Dbxj],%W5a@qf)0"s%B0Y!k<tTx]rcD	9뻼\]	;iC89$uثC8Jb~XJ"~B>k40000 hiviewdfx 2X _d6pK7зiSc'v`,2_40000 multimodalinput Xhۂpo_E100644 ndk_targets.gni s	-RໆG,40000 network 	!QPTc7(K|̳iޓyaPıi	TN`If*"'*p|/h&ޤ'x˻wb6#wZod}~'ظdYؘ yUxT :iv/ZOw\9sw`7`~K=Bz*<*Zcx: 	3mY]m ѓ7_$5:ӏf'_-{x+x: #AN.X&8^0e[_$5:ӏf'_Dx] j$N?E**;kҳX6a[jO)_oG40000 network 1	3JQyDn(2x! ["PO(Ƴ,bx9 [7_+U_SZ6Yff	#i,*x [7_+U_"Rvx{wHEb?`ۢ{a]f݌ s}#x! $6;P^,Sx{w'Uj}
ekp/uf݌ 9x{wC?ȭ)3>)-?HK~JŬ. 
gx V;GCXq+O/o	4f )CzC#89P	JBgyDEj40000 hiviewdfx vT(R[bJ!+Rnf97KΛdu. *4GA,cڔ[)RoR*$	?[D^Bx{wBSvP*oSJWE<ܽ`ߢbګ%vKp s~^Ij^knRjwf	bNϹY9"AL$߱(9#$5(~}ʊySxJ140r@Ի$$nfc([-gSWuʦ͢S-϶xC.Ys@,L-OI`XW6=DcYГ$/Eyi-'?d1{nvJs
?Kh;B4d$d0d9[P,Ym[aAM{"xw ;GCXq+O/o	4f )CzC#89P	JBgyDEj40000 hiviewdfx vT(R[bJ!+Rnf9}-(x! 1J.Cv]¤p
w,6x{weK-񺸝>:~Hdx{wW"Ŭ<+`0:x{wM[G~)=5h:@x! ;:Aƺrz6dck,.px! G	 5._S,n_ x: 1d쉼<ɪu"7@zi%Ȏ~
r,vgIx{wYbO*}+n_ȝ-ZsC6& vx! ~M:Нjzŏ4yn+g?x{wBsD*l}l&g }	kx+]kRb#:zuXQq1)ryptoArchitectureKit c@yxnYDlkLn02&lؕsy4Բ85^9t˱Mzv40000 hiviewdfx vT(R[bJ!+Rnf97iwbf^.nh4_́y40000 multimodalinput j0wo*@s&hOR81100644 ndk_targets.gni ˸u[fx$fx{w#Ȇ̽U,|`2̗͢
W.xT &lؕsy4ԲvT(R[bJ!+Rnf97KΛdu. *4GA,%o#Jx˻wBH|En^-ol%6 ¦,vx *Meryȩ"'$x rmYGmPςڱ"=Rx˻wBunWe;bv;5}Jl <~x˻wB糯	,Jl g*x˻wBHߗ{XW
:'fXBJl fVx˻wBGnĭX\}Jl D?x˻wBȵrl'4Ӯ G.x˻wB_Ǽ
bul|~ٍ pZx HV-m@#/뺱"zx Jc.in"x: ?Cl`'=:Ir;71J.Cv]¤p
w,.dx! 1J.Cv]¤p
w,x{w[fY	Ucxɛ[_e_tl٬ú 0xBx{w̬Ӗ	U	`_^q6f݌ 
px{wI1׻"GM׋Yu7# ыx; &lؕsy4Բ?Cl`'=:Ir;khx! &lؕsy4ԲPI0x{wC3*+ENy*ȱ'V a+x{wHZRնeY: LXxQ ]kRb#:zuXQq@euHB9KtZEUB5^9t˱MzvƳ*'&x: 
S*.#2'1m,cڔ[)RoR*$	?[DAIx! |Hn:W.q,]ixx{w[d-n
ό	ma S=xm {TfbwYy쥳$bλ׷n^(H&}[ظ۶	NBԳ,ZI/$DQdr#]13R:x{w#ȹb%kN3O_ڼm,| ypix{wHFGE3= )Wf݌ /x! BW~
v6\wGN(V<^x! od<GDUԫ?*{xP oz`b,l78,=^;4R*ϳ\n)HiFd.e8"x{wY':[VvnjI,lL {.x{w#H歮nK_a{~(%f wU[x{w#ȹ;rB7T%',1ݼϢ(%f gx{wCHTf'͛vc[M=<1vE-^ db 
E٥<K?FjRyXלּp\́͢ν8^NۥA\9I9Mԫνsڟ<*(J,Lf杣ƕZz2Y= *222SS*pcKMlրL~b,hGi	u%t:",|7<8a㡬!S*O>& vHx{wH/^k_~2^Zy[+J,k&@\TYPXY\RZYЀSg.6`;fX4kHEj~yŌ&V`a֖]N/pؐX]ɐuk;&+%X~>8dQ"61orLY5#Ϩ%#QMԫνsڟ<^X%wJR{{U"#,3<%MEfyGI'Os&?d1+<+[Xc92)K`[-DsniNIfn~JbNf^Ai	KYI?̹p*ܷ0v0u"k
lR!auW{[d	F,|7<8a㡬!S*C.OMb*q+Yզܽc ]KJxS ]YB9f4	aYs%qp],FT<{}w/qHU(
bx Y2?	BC]*Jeۿw\s#GձF:y4!W,e٥ns4Ȗp= !%ˠB40000 arkui W΁i@ZwƝߓbR9f/62RgXʤ>i19]3FI,/)I4x]PѬ3ii~&?gq^qs]m*[]uB?ns42`ǂpw.P\2!5<40000 arkui aӍF5rYmY+=A"xfo2[B3a\d7*T.JQXF=1yq \J+.C[><e*5TQZC40000 multimodalinput IJ+Loj-NV;͟9QwU)wLՓ;-][x]PѬ3ii~&?gq^qs]m*[]uB?ns42`ǂpw.P\2!5<40000 arkui aӍF5rYmY+=A"xfo2[B3a\d7*T.JQXF=1yq \J+.C[>,
1e1Ī\ED40000 multimodalinput IJ+Loj-NV;͟9QwU)wLՓ;~~'x{wxNkd\lc1{nF CUx{wKȹs?^=[l[:nx r4],FT<{}40000 arkui oz`b,l78Q
A3a;RZ?ΓzS,=^;4R*7AH kHSpbm,_=h:x{w#ҏT;+/+5Wk(%f ixp21JMhҬF06.1vbe#ZuLq*n,I#~k͛ˉit<\E	i{Uhn2ZOZ4'{+640000 graphic 1>ljܓ40000 hiviewdfx w/qHU7>qq|:iYO9bjF,=40000 multimodalinput 7a?A:8g*pV:p=d5jGn2O@ǰjT#40000 web ߁o&14ҥLx{wCs#ηW3w-vi*\& ]x! ֣ls:k?[އ*'a0x  O@ǰjT#7.x! 4'{+6䳛L S/x! w/qHU&.$^xg2?1JMhҬ40000 BasicServicesKit YB9f4	aYs%q@D?焄uFȚn40000 CryptoArchitectureKit 06.1vbe#ZuLq*n`[ݹVj!wS[<\E	i{Uhn2ZO\LOPCX"%r[>qq|:iYO9bjF,=40000 multimodalinput 9!WMq\+b7V:p=d5jGn߁o&1	$x{wJl9j\Nͮw<-c^-& z.x{wCHTf'͛vc[+Y|-x{wtەN]
EO6.^Yu7# "Zx; MWGL0LJAu{ʐ,[AVU,#xR 06.1vbg/]VC	!+tR2}Au{ʐ,[AVU,$'jx{wgNαZ^WSoSS~ 3S2S3KV=x%t9&:L߸yKK[N̒˻1¹$߱(9#$5(dCvɷOLQaYį"yS\kUt,cwNM6?ûm=拏
BlH,.dh^E@tTs9YybglV߻t9#Ɣ⒢̤ҒԔĢĢTkIrA_f6CPd]&tk0!䒴@zGogv[vm .9I9Mԫνsڟ<*(J,LfPu,t^y̤N΁?#^CTddeU0,h}7[?9
R3)w?
~[ze\ہ!d$d0̜g6u|yGK&3_kU`ې^n	Ӭr F&eT2<j=M[*(su5[0N~x(kȔI[7Z<E>Ԗy= e
ux P>;GCXq+O/o	440000 ContentEmbedKit [7_+U_<=/JԭCN$n;4X~uݨ)d
Jf[n[1J.Cv]¤p
w,cڔ[)RoR*$	?[D׶J:x ~])ߺ)y3pqh1>o~AFQ#kzA\SV
[:,&y͸n0,	˗𥙳ʎ>Kx8 2BKlD"Z;/ķk(FF>yY$iCq,ƞx 2BKlD"Z;/ķk(FrUx6 &I
%~<aTDړlW9dX6@Zox8qBHgd_[}Ú2 ֵ,x8qB*ȜU^qmd? 'x8qZ\spGT╲R\ 
4sxk;3{N'X-))Vvjb 
NřEeɩޙ%LAIʫM)]8p}&X;Gj֧ϖ/-.i1¹$߱(9#$5(ddR"J<bvi`5U#ocske,]~rEIn6Ba/Q3=U$h 1)3'A5)Sk//mp}'OaRb{${O7~}g0(;4$37g3KVcXP@p-\Ui&C^>&Ss0Eo;$~(Ng/,,NrO7V;C4de&d$'2^K\:Ml7;'85p713\k	!&;>|[xU?s۲k;nqAOOJam^u[|ܾՌ	TAQbAFf2wT/'!SbXDEFfYfjyJZQGR|߱ 5WR+YP7m,o/[Ĝ̼o7g>240031QKɎ/I,JO-)KdX}_#?9ug{y%E|jv~UPW'/fM\kU`ې^n	Ӭr zSK@WgoZ2Vy&G0%yEVy^p3ܭyd<.sNe0r]{ނMY/oi^5Ngf$W-"Umj݋<[ _iO4x$Џ	Dy=A"xfo28#AN.X&8^0e40000 hiviewdfx 9sw`7MK83wu#`R40000 multimodalinput j0wo*@s&hOR81100644 ndk_targets.gni f^in.:?@QQA40000 network |FcmO@ǰjT#y#Wx I]̡wxO, #qf)e=פu9	K<<tTx]rcD	9뻼\]	;DJb~XJ"~B>k[W5Ty]}䨾Pıi	TN`If*"'*p|/h&Rx˻wu&̲/OuO-1&f)>?.~h?*;2(BmLTa P,L-OI`跜yiMʧ&_]`v9,W.Qyo|ri/!sKsJ2sSs2
JKޜ-r(z߬-?B^Jv|IbQzjI^z^&Îgiqy'Vޡ5p#мԒlc5vpKޜ*(w|-62rlr Hyn=x ,MYS&o'-,7M/0=A"xfo28\@%Y^pj0t40000 hiviewdfx (Bl'nnF;7>K)A3)Ms)]e40000 multimodalinput #4[.! ,_O@ǰjT#)VxT c(PUy J^jaNu<tTx]rcD	9뻼\]	;D8"?46K4o]kg*&$x: LKt.#4[.! ,bKx! #4[.! ,و{x˻wC=sObb$?6E,ZL ~ux˻wu&t}4Iͯ4Ew{\&Y~1˜SߜaB=A52\K%&@YZVq9v,I掶?qVvf͹9%)9y%"KDozZ~ŕbݟg(dǗ$e2x3?׽Og
мԒlc5vpKޜ Ni}xe :iv/ZOw\>UG!ŭKtzUa40000 multimodalinput & kfLl=O*ɍ:0,V#,qx!  ;N#a5G!x L&lؕsy4Բ85^9t˱Mzv40000 hiviewdfx ܅Gj33t7NwmI]@vye,TWA6˸u[40000 network ڔ[)RoR*$	?[yDOcx! t
0K۟X^]4wx˻wu&H6}%n>IwWfkK Lx˻w0ȭ #-v+~|p	s.nhެ2	 Uzx˻w0HȪWq_nX_,f'Ye A(x˻w0ȟ?{,x-s,Uҥp:4& ]Zx! v碪Ld*9>pxtuZxT PՖs,C'B;4vT(R[bJ!+Rnf97]RBݩ>o1׳+#k;xj]kRb#:zuXQqf:iv/ZOw\<.F4_T}+;i=A"xfo28r-^z ."hD:40000 hiviewdfx 9sw`7_$5:ӏf'_40000 multimodalinput j0wo*@s&hOR81100644 ndk_targets.gni ˸u[40000 network ڔ[)RoR*$	?[ya:p=d5jGnO@ǰjT#A4x z],%W5a@qf*MkśBο_%911?fZDċƓ[aQmَp]r Lc	!QPTc7(K|̳i޳yD'U<Hxk ],%W5a@qfTso٨rLpB:p=d5jGn/xj+ۤPC{G6'Bx9 ],%W5a@qfoDlLI?|M{S4.`p)>
x9 ],%W5a@qf%*f!֕FB =XXxT  8Qc0!S^TDI5^9t˱MzvƓ[,}<>/\Vg=!% zx; 'wY׺x3NG5^9t˱MzvƳ*&Jx! Ԍbx2Z|!45.zx˻ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "ԢbRAE%j'g"|r$Ds~^^jrI"{~'e/G_nŤe}&U4gĢҼT%eg]S~lwnUf2|<;KKd6	FĮ<"1c&]hl͜Y!|h5fF^I3	11%(3$5%#(<(v+<ؙ$lڔϘuEMe7:8Y%CTڴeYQ'b=삓N322SS*es<a~2W׿Qq5y%%)>ݿaÿuo[/OyQ[
DǷ7Z4'[k#ځ*?%1l*^v=#2G3l΂yf&&
y)%E%zy[Tarm'6Y1ikצ%;LyAHv9Ķ"`2b
PYfU/w?5
{2Y-$Iڎ-WqS%E)E@S{&{}۽橊<*OMb<+6߲{E=UuBVGxT ITĂgoh5'bJb~XJ"~B>kjZу]7Itt'*xT j$N?E**;kҳJb~XJ"~B>k[зiSc'v`,2_&Px; j$N?E**;kҳJb~XJ"~B>k*OUWxl Ǉ}7SvVx;
BIb%{Y-w#[Z8\)[0s ][	Zу]7Itt1.xT *MkśBο_NΨU]v>Naj~p/&2j;͟9QwU)wLՓ[&	nx~ $cD&EF`,? b%{Y-w#[>Z8\)[0s ][	40000 multimodalinput ;iH2[,՘5c{x~ +Xe-OԳ:Gs&RujwÆ}2(@/[>K	6hKz%HgùJ40000 multimodalinput ;iH2[,W 4}x5]kRb#:zuXQqfgЫpv6YS/<.F4_T}+;i=A"xfo28\@%Y^pj0t40000 hiviewdfx (Bl'nnF;7>b7A=mͱ]y>640000 multimodalinput #4[.! ,9|Fc](:Ry|6ߓya:p=d5jGnO@ǰjT#Y,Ax I]kRb#:zuXQqfA#koFV.KI8"?46K4o]kg[y"ӭ
fRaٮwwc|Fc](:Ry|6ߓya:p=d5jGn/xj+ۤPC Wx˻wC=ו]yoR]6(ddeU0hrfrr1yݦ=y; .[x! C89$uثC
0x˻wu&}L8avHL-x! H̑44xEt̳*-/x  /xj+ۤPC]x: 'n)Xlqר1/xj+ۤPC=|%x: Lȧ"_I۩*/xj+ۤPCNIx; NvPFm`2X _d6pKwx! 2X _d6pK0x: 'n)Xlqר1[y"ӭ
fRaٮww `xx! y"ӭ
fRaٮww
y'x: Z87{>^Xhۂpo_E,KsIx I],%W5a@qfpB&Z𢽘Γ<tTx]rcD	9뻼\]	;DJb~XJ"~B>k[W5Ty]}䨾Pıi	TN`O@ǰjT#HY=x; ))٬9&ӳD:-Xhۂpo_E,x: ujwÆ}2(@/Xhۂpo_E,Px˻wC=HiVZIRr3zWd-& sqx~ (+I(G],jʖKJb~XJ"~B>k[>aQmَp]r L40000 multimodalinput Xhۂpo_E,<~x~ ky26 ({R孳A_ y 7[>aQmَp]r L40000 multimodalinput Xhۂpo_E,t:x~ Ǉ}7SvVx;
BIA_ y 7[>Z8\)[0s ][	40000 multimodalinput Xhۂpo_E,e6gx˻wu&֯.jtctLU;Fx! 17w]K{_tԲB'xGvx˻wȫ"읺Α8śy&mtf2Yo1+$X11 ĢҼTUjl~輧zUf2tYN)ИEO~ʹөI)u27v>PuƔ⒢̤ҒԔĢĢT۹s|0`g⓰%6XkS6?c`Ʒ蚌R態{	0?[DA$yEמ>}dA+'ok;Nhh;_MCl.,J/H,*dp<V$x`4㉥Γ G6x! aܛVпI/N!5(fx! U\"ڪ&?LR	hL Cx! */2rZK;x; Eo-MJht3'}ϔaQmَp]r L=xx; Eo-MJht3'}ϔhU@QiګgŇ6'xr2?KY^0Ib40000 BasicServicesKit ,%W5a@qfZ?{g[#Sğ<tTx]rcD	9뻼\]	;iB"_ҮĖ_{40000 distributedhardware =!lPaV<}d:5D]~N;;,[>]e,(FynMgc\40000 multimodalinput ;iH2[,9	!QPTc7(K|̳iޓya7Pıi	TN`40000 security :@Il`1*J͖yznW_~o<z.q[}Cx 0],%W5a@qfIPQ` ok<tTx]rcD	9뻼\]	;DJb~XJ"~B>k[aQmَp]r Lc	!QPTc7(K|̳iޓyaPıi	TN`If*"'*p|/h&^`lx˻w;K"WsZ7)b>q)f&݌ &x! 74c V*2<s	<x i;TCeoobi#ujwÆ}2(@/[>K	6hKz%HgùJ40000 multimodalinput ;iH2[,Zу]7IttfBx; hwwҦez|Fc](:Ry|6߳yDWpVx; hwwҦezꎸ^08HbiF׳yDݭ VxT Ow_fÞB7/fTA_ y 7[hU@QiګgŇ$89x! *)Ap*ܰ="$ix˻wu&bn_X.}kK ߲x! Qz"gy00x˻wۏI>+Chdf։ o7x! y"ӭ
fRaٮww
ygx9 #4[.! ,Pıi	TN`Ͻxx: 8"?46K4o]kg[W5Ty]}䨾3p@x: pB&Z𢽘γPıi	TN`Ϡ %x˻wC=Ț^egs_͓Y gu?x! j4yD\ŧX혳*%Uox! P͎߲M`x䟝*$;gx˻wH	Sk8s =գvFf։ x: 9b\HE-_/xj+ۤPC=A4x: pB&Z𢽘γ/xj+ۤPCLx9 ]kRb#:zuXQqf)e=פu9	K<Gx˻wu&cT5#KٗvwvLk?x! Tso٨rLpB&ox! ʲRKEE4ɳx! ;'yxv[f>-Ϲt[s`x˻wC7dSiZJZExGJlr 4,x! hJvaO&7[x! ;'yxv[f>-Ϲt[s
x! \0ZyE&BD:x˻wu&3_]ߺgLhx! )8$,Cx! _76WwяevGHx! 	[W kw6iwҠ-sxx˻wu&iZ:	j-6xkK "&x! )e=פu9	K<_Vxl A#묋;%w=}aQmَp]r Lc	!QPTc7(K|̳iޓyZу]7Itt2Qx! rntǁ5=k?x; h'#-؉1eзiSc'v`,2_Jx! rntǁ5=kyx! 74c V*2<s^x˻wC*iN_SW$099JVF mx: ܅Gj33t7MK83wu#`R6x; Ȃ)ԟ+^4_wMK83wu#`RJ x˻wu&t}4Iͯ0Zm=arEE](- 222SS*4n9]39gznӞ[ż>vg7.* 94$37?%1'3AYdRM>^˯R,C3ĢԒbL7?SwFLZR_wfnɛsYcMx =ye|`o]Ɋ{SS2zCmT[C89$uثC8Lȧ"_I۩*40000 hiviewdfx 2X _d6pK7b7A=mͱ]y>6/xj+ۤPCCZx! W48@P	B!ՊNx: SsR8I+ˆiTҏ~Af^in.:?@QQAWftx: MK83wu#`RAf^in.:?@QQAWf(x`x ,<@UUF_ƣ(C89$uثC8Z87{>^40000 hiviewdfx 2X _d6pK7>y"ӭ
fRaٮww40000 multimodalinput Xhۂpo_E,_/xj+ۤPC<bBx˻w;$sGݸxn؃J;LHpxl gЫpv6YS/C89$uثCH̑44xEt̓[b7A=mͱ]y>643[kxT NvPFm`H̑44xEt̓[b7A=mͱ]y>6$
 xm gЫpv6YS/Hq݇L*?[b7A=mͱ]y>6As	-RໆG,Wf0+4,3x˻wC={:}
kdZ7o1{\vd-& 6x! %=˴G;~"X}[8xS =A"xfo2\@%Y^pj0t[w??ReH5֑d"6x! #|#$y
/HJx! NvPFm`x: NțRó.ȶ-BC89$uثCsIx; zCmT[9sw`z7x^ 8'n)Xlqר140000 hiviewdfx (Bl'nnF;7K)A3)Ms)]e)6$x! #q։Yz冕4ڳ*Tx˻wC=HY7LfS
vXt,ZL 1x˻ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "ԢbRAE%j'g"|r$Ds~^^jrI"{~'e/G_nŤe}&U4gĢҼT%eg]S~lwnUf2|<;KKd6	FĮ<"1c&]hl͜Y!|h5fF^I3	11%(3$5%#(<(v+<ؙ$lڔϘuEMe7:8Y%CTڴeYQ'b=삓N322SS*es<a~2W׿Qq5y%%)>ݿaÿuo[/OyQ[
D?	0}RU$Me<KَgDfhY3/D!/%;$(=X/=/ak٣J6×1Y-#мԒlӜ¿*Ia]sfs=akYcͿk[c&LҼv$85TVYow]OLdzㄦinhy0DoIFfQJ|AbPԞ^vᾆyb)% S-ʅMD)^nOl] O1nx˻ 3KRSZԧ8	~˷{#A8&edTzg0~fu571W!3S2SAJWYU}R*qe9&dn("z㚔_˩Oڗ6o8yǓԣ؞<*ͫ_̂O,ʎ/*+Me>/>T*gWU`YvEno_<fL6"z/Zvd!|ړ3>csܧtVޥALL,.)L*-IMH,J)O,Jeh$dunvn?O~Ƭ+Ęs&\cQ#\z"YlKYZVo9+OM DMf^AiInjIF~
oq]Ou>SZ!rKs@05E薻⃣kKB'Ձ*?%1l*CZRնeY040031QKɎ/I,JO-)Kd,-.3oOY;tZR_wfnɱXU1{udZXV)v0:+ͽ-85~zv-ojr_:Y-$"}y'.&{N"DoIFfQJ|AbP;0N~x(kȔUI[7Z<E>Ԗy= {OHZx! 6[*xou)xճ
x! 9 Е3$ΥT':x˻w;mjWr2^	"s~̫Lhx! ĩP˷3}@vpx: ĩP˷3}AN{|G3ETñ³WfTax: x\f~Bc%Q/WAN{|G3ETñ³Wf\*x: !rt>75c(^eAN{|G3ETñ³Wfasx: ^nVQRcq֝AN{|G3ETñ³Wf<x: wMzeRG"OvAN{|G3ETñ³WfC[x: -O_0Ih>൓AN{|G3ETñ³WfVNx: DfAՋ2jꕓAN{|G3ETñ³Wf'x: ˯w\LZAN{|G3ETñ³Wf@:b`x: BW?z`:qχAN{|G3ETñ³WfQ)x: w >NL8cRAN{|G3ETñ³Wfo8x! 2LwMs?-z!r*hx: r$qGTFAN{|G3ETñ³Wfx! I3[+eӢ낈EZ֒$Mx˻w;"Rr4<籙u7# מ2x˻w;7yUMLcLmNx! }cZ1N{9"`x˻wC=H2YCC}<.-ʼy2 lpx^ 8'n)Xlqר140000 hiviewdfx (Bl'nnF;76wҺ20ȯ+گ`*{x˻wC=HGg3EI;xEn̢ ")x: HzKa4ղ&Db%Xhۂpo_E,,7+x˻ 3KRS=tpN
rvHYj5Ǥ̜̒Jbo[ "ԢbRAE%j'g"|r$Ds~^^jrI"{~'e/G_nŤe}&U4gĢҼT%eg]S~lwnUf2|<;KKd6	FĮ<"1c&]hl͜)Y!|h5fF^I39ysRIؒ_s]'Dԟu*R,+jO,g]p	↌̲
y/|kGG\DMf^AiInjIF~
qO{oo>s޴CTpm͘y5<x?r%zdU)9`S.Rl<as̋040031QKɎ/I,JO-)KdZ脠Ҥ{'e|#o89ˊI[6.y߱5f$jG!&U7~kQsɂl!\Obv4mv"/-,J/H,j670OUl8ADUyjCY(+␭ ."x˻w;wߥue9yCLx ,gЫpv6YS/=A"xfo28y7UwbL5pG^G40000 hiviewdfx (Bl'nnF;7>b7A=mͱ]y>640000 multimodalinput #4[.! ,_O@ǰjT#^tx: fkG]ezGYQ#4[.! ,9n=x˻w:HTHElQ{bb9W|۰ٚ γ.x! Tso٨rLpB&/x ],%W5a@qLUxl FQk%?`$b%{Y-w#[Z8\)[0s ][	Zу]7IttS1zx! Ղ/2ye]г׭x340031QK-OKM.`] uyǾEsoMm|IeA*P@IVD9]+oc,f8  Z"
Vx)i?|
'_p |x! Ա;u&hL8&d-x! 
a5O6^x! 5S\SITvǓdOx! ,=o8 "	@x! $xeu9a[5ux! W.?:;<$a Cx;w!d9W/\iXa)|k,qx;w!w*[tMݣzdlk,Mx! L9I_zzt9HXOx! X=e ] tx! 
s EmԀd=/x;w!&+E\ZTURvxnF E]x;w!r>g6l^֟k,x;w!;qKLغx&'M7{5݌ |9x;w!{Za)kk,bQ6x! 8(9G8dvg-,fx;w!VẑA˅lVNx5݌ |x! b 
b][hNò<AjDx! >̺\ȷxmĜ<г	}Cx! pr xu3<o"sx;w!	;E1:w^k,=ax G@F޽(TYЮphLJ,S)<2Sg<jpe/Wڱ;D| q)	d yg[yYrdR%rrc,l2Xϻf(3%m40000 web 9V	t"_rI$@k-CMHx! SˑvUTWrXg* =xx} 	^{!$DmrD ]`F%Ӛsg[>!76L~ֈ40000 multimodalinput 20DdKhBFV=8`xR H,jv@!4 353$/ ]`F%Ӛsg20DdKhBFVsF#ex;wC0]&oK\Y TKx Gm_4CkySk5IJ{GfSX&褐<n6T;RÐBID ]`F%Ӛsg[^g"ZM|f#ǸS2N1A\cs	%40000 web 9V	t"_rI$@k-*MsbxȻW 3KRS=tpN
rvHYj5싉wsSJsrR3K*ߵ\qOYmQ$dؖUƅҗ-T
\lL6"w3vG79SD@YAB2V?>:9Vjפl˯N[濹azӮÁe&%0dKCDٟk
+>ߚ,카=7[<}j6ܮh-ev+2jr]1:4$37?%1'3*qO7++L-PN$Vq5M44Sp~kj5ĄԒlFϷ6*svKvf_V!FWvO/]g^8@&1[oYRݞ*ٺ ǺF6x! Xk{H㨱 u<m,6fx! ^X_ä	,nx˻w̸oV[}R:{xl 	^{!$DmriZ&⑦1퓌SX[
zg$Q6jY>-!*Dc)vGRk/x; 	^{!$DmrSX[
zg$m#"Jx! xZ&⑦1W:yx;w!wB\i'^~9iѦ)&@[SWPZeKki2+%}7Nd dOxd jpe/Wڱ;>
Qf5P>\2d40000 multimodalinput l7NJ*Hr5c-M7*ksx: S۬CdðLjV"g[yYrdR%rrc,l/6;x;w!Ȣ բEls0秉(d$d0prn2a$wob Pgx! D?+A5_yOx;wC0HOUJV'7ns: %ExȻW 3KRS=tpN
rvHYj5싉i"ګ%vKpL枘ꜟWRZYPYNe3F~Z,Ҹl<F]_h`5jͷ?Od2ᵍfg{YgLdc#y7c{o~Hq}&&%1Dy|Mfރ1kUDzG$5ٜQD@YAB2V?>:9Vjפl˯N[濹azӮÁ2a08>|[xU?s۲k;nqMVaѯ֛%h=I*4YZV-eepϳ9Y_x%3$7$#?7lmuk9o!rKsJ2sSS2t'v[ݥԜ&*[u\dU)9`S~LN9s{7C'~IAKw0J)bB^jIy~Q6yj9P%l/ѯƩBYJxÛk<5\TJTq xw@F޽(TYЮphb&GameControllerKit y~+ԹAAY+s>?r Y<`#]nڷT\脓i# oFhW	{œH,jv@!4 353$ScI(KIM(T7>Q6jY>-!*Dc)vG40000 multimodalinput 20DdKhBFV6YG16#PBk57;40000 network 1φ}#nC&M2Xϻf(3%m40000 web 9V	t"_rI$@k-9D	x `@F޽(TYЮphLJ,S)<2Sg<jpe/Wڱ;yYrdR%rrc,l2Xϻf(3%m40000 web 9V	t"_rI$@k-:9BEx! 
Qf5P>\2d>ux! [Ɯmc*/Fu%x! hg=KiL<pa)!Ux6 %N9|s:TY¨WF6fUPo`ZxP %N9|s:TYN:
9㰡h	h¨WF6fUPo`C"HyxP %N9|s:TYx6{ה[n~kr¨WF6fUPo`R"xT ӔW
ua0Z7Hd,'l(#!Obڗ)McTϢPG?jtx*'vx˻w?ȍw:rj|PV<&tMQ tT$x'@F޽(TYЮphy?RXm&w2QKW%U3p榳Qj1=~@XvhC WړP/ ]`F%Ӛs40000 hiviewdfx cI(KIM(T40000 inputmethod +p)tWb40000 multimedia rO#N» U D5})
AYG16#PBk57;W4>䣥Jt^L'^|,#Gx˻wC=a7g9e},ZL ڭdx {;GCXq+O/o	4<Xr
V҅ŊY[d,'l(#!Obڗ)Mc5#kgP{q9wY-FPSFdS	:vSsQv6wx˻W 3KRS\LDC]MۢfvG'lT$)o3hGp<'fIX~ʵؼ[CX?#EȤҼļ"t,xMҭ7ؖZv_?7°ĀLԼI#:_8R5yk y"",k7m5([73v2G8W &ٹ&g *huwxT T]3q8$p١6d,'l(#!Obڗ)Mc@rGSP܍u =;,&Zx zeW`E+
14d,'l(#!Obڗ)McA^_'|EWٳĩ䓸5#kgP{q9wY-FPSFdS	:vSsQQ<OwxT 7/<(xz32+s>?r YQ6jY>-!*Dc)vGQ#Zx˻w;=7nC/&VEa}do3nF 7x˻wBsD*l}l&gc1
_V|LF"_RkFQ7f
dq}nev:._7J{
aTvi=`b 
e)iRV<HYpoׁ5y%%)>ݿaÿuo[/OyQ[SȠ8.6Qߑx"OI`$oerʹޟ3޻Ʉmh``fb_XZR`z[x&-*꧌&",.v_*4]A A[nx˻wd'sljuU(.Yu"# efx˻wțάۿL:{u:<Jx˻ws}y,':hyR\rmDF $yxx˻wqu[:7"v5Wq\iDF ؄&x˻wH/˓|0YSٕ|DF jTx! ⚸q!t7sZ,x! zi<rֹU,84x! e\z	X-~,dx! Wa@ _gų,x! 3]/VuQ,Dx! ˥28V, ^tx! #mmSĩ4Ű9NJ{,$x˻wHLi<	+/4n1L:Rx! Ga$`V},x! fB4cڟq4,}2x˻w|ҳ?ҾeZ?ոQqf։ `x˻wM˯~fY:x˻wOUMxfzVf։ ߜ-<x˻w@_w_pYu"# qjx˻wHCGsE6;4˵{ڜ:ax! %c}Oa.nʳ,@x: bGSYy-\
A|J3epoum:2	x˻wC7I@d{l44Li w6x: P΅,lS%ҿ|J3epoum:.X	Ix m6*56MB[T㩻E ]`F%Ӛs69+p)tWb40000 multimedia ȌÁty^6`wJ[3]>䣥Jt^L'^|{EIix! ӔW
ua0Z7HPx˻w;ÉVww(5
f;w3nF B@~x˻w;ufڭ bZuf&݌ ax! +p)tWb0x˻w;ufڭ bZuf&݌ a-x! >jWJ}G:~M/x  >䣥Jt^L'^|]x:  ]`F%Ӛs>䣥Jt^L'^|m-Rx! ?&{_#8怌೸x! xhJ?92x! "2#m#UHґ˳ubx! Rz:i',x˻wfTr6}԰!p;Y	@x b;GCXq+O/o	47/<(xz328J*1Ntٰ+A# oFhW	{œC	q.FֹBuR
P5R c/%hWf9F#lx˻wf}\LL;Y2x: z`\ߨ[
MGQ# oFhW	{ųb#x˻wu&U֚jBw"2O<v`NLѼQxl @F޽(TYЮphy?RXm&w2eW`E+
14cI(KIM(To2)x: <5#kgP{q9wY-FPYG16#PBk57;WfIx! y?RXm&w em/x! lT]˹Z m^x; хǨ
&F{e|#KcI(KIM(T_uxx˻wB۽5ND^X7KqUwgAFJl U+x! /gTIGbx#Zx˻wu&Ioq+9Կ$8t7L&x: eW`E+
14t\)&kw8HPx! .ʾ'bcrT&LM x! eW`E+
14Q0xT w+ln?Y}n<ҲQj1=~@XvhC WړPScI(KIM(TJ'x˻wbdϥ}]ix;U%̴Yؘ  .x˻wu&>k?(i\'Z\mfL1a[x: хǨ
&F{e|#KVxi;@2]@x; QKW%U3p榳-pR	nԳW,bx9 ;GCXq+O/o	4<NZd.al-:+"^/*x˻wu&s漈۟Zűϥ<^L7aXx;   Юc̢cI(KIM(Tnx .!40000 .gitee @CbRCFXcr:1!хǨ
&F{e|#K<h۽gr"e31ɾ;=bcՖOQ40000 filemanagement 5#kgP{q9wY-FPrO#N» U D5})
>䣥Jt^L'^|\Nx; )RwEZncebҏ]̳QSX[
zgPm>x ILJ,S)<2Sg<	^{!$Dmr;jZ&⑦1퓸W@uLbO)c"/J}PSEPٴb7͵Ƈգ֓7yYrdR%rrc,lchNvYzc-zyDKS`]x˻w0RIؒ_s]M@!-3'571/1=575aAl9>Vm 4x! bcՖOQ'Udxm_4CkySk5IJ{GfS<X&褐<n6T;RÐBI;i[il*1dLSX[
zgPSEPٴb7͵Ƈգ֓7>^g"ZM|f#ǸS40000 multimodalinput l7NJ*Hr5c-M,9hNvYzc-zyN1A\cs	%jyx! o8B|=w&._Gx! QKW%U3p榳wx; jDt:_>jyc*?\Qj1=~@XvhC WڳPmCJx; T]3q8$p١6-0@]L}G ',5.x^ !40000 .gitee FD4Uf,켷9MxȥT!;Hq/65p.F1JA:rV>T6& x˻wu&N;=z*~8"pikK k.x! QKW%U3p榳^x! k=n'f3ϳjx! ڟ4	xDXHw\%k>x˻wu&j )J-չ3_+ۨ1UnkK M5lx^ !40000 .gitee FD4Uf,켷9MxȥT!acj2C@$`p.F1JA:rV>T6c%Ox! 9­P	~?`Ya,	?x˻wkN4`>o1cDF ٫Kx˻wu&ҩ/VoQPQzLj
.x˻W 3KRS=tpN
rvHYj5싍s 2Rbx˻w;ufڭ bZuf&݌ ax˻wNVǌ&^fXxs K. **=xT '`#]nڷT\脳;H,jv@!4 353P;Xϻf(3%mZ!rx; E|"\fGrO#N» U D5})
 C<x˻w;ufڭ bZuf&݌ ajx˻wNVǌ&^fXxs K. **&x; T]3q8$p١6-7%Htӎ<a,;2px^ !40000 .gitee FD4Uf,켷9MxȥT!J+W%>S	˳p.F1JA:rV>T6L$]x! T]3q8$p١6\ x! acj2C@$`6sx; T]3q8$p١6-'rEN"Y	/8,@jx˻wu&oh}Y,c'e} BLJ#x; LJ,S)<2Sg_=1GDe}z3%rmx˻wu&oh}Y,c'e} BLJx˻wu&PINΕXQkmLIx˻wu&/`MyF;gY̸5%f ~.x! EPٴb7͵Ƈգֳ'\x˻wHGSm\/ü5}s K. .xR '`#]nڷT\脓;j# oFhW	{œcI(KIM(T%)`x! EPٴb7͵Ƈգֳ'/x˻w;@ّvu*2j$o,[)u7# 7-x˻wI߰ߺխ}ԧi71 ҜԔDȢ բEls0f&݌  sRxS U"wE}UZ&⑦1+p)tWb&&~ax˻wu&/`MyF;gY̸5%f ~
xm SuWrR`xv;M<h۽gr"e31ɾ;p.F1JA:rV>T6*F	E49qY/Vx> )VoUń; V$(PzP`|&0GTĳWfLVMx;wC0H魌n[KZɘ3Y m0zx! SJБhah ߷`g*]x: S8a
z`>g[
Qf5P>\2dJ&xd 	^{!$Dmr>E]Z+m**40000 multimodalinput 20DdKhBFV+Rx! S+Sͅaǟg*{Ix Gm_4CkySk5IJ{GfSX&褐<n6T;RÐBIDx
iÓg[^g"ZM|f#ǸS2N1A\cs	%40000 web 9V	t"_rI$@k-~Mux; ;o s%KfDu
Qf5P>\2dlZxS m_4CkySk5IJ{GfSX&褐^g"ZM|f#ǸS$$ sx; fjNwJZ59zb,P㳿 ]`F%Ӛsg*;ph=x;wC0HxL#QKpZvkKv,ZL ڢRkxT S ]`F%Ӛsg2s1C]5Z40000 web 9V	t"_rI$@k-'T[x! r	{U@-nw윳	nxm X&褐<־])ʹ,$!71P2Xϻf(3%m40000 web 9V	t"_rI$@k-y,xT D?+A5_e7SgվV
p!3pi6
Qf5P>\2d%#ajx; D?+A5_
Qf5P>\2d14x! D?+A5_ydx! WZ=lDȩ~	x z@F޽(TYЮphLJ,S)<2Sg<jpe/Wڱ;iZ&⑦16yYrdR%rrc,lq:%x; x[il*1dL1φ}#nC&MD7px;wC-HY(+␭ Tx! hg=KiL<pa)!%x;wC-HY(+␭ Nx;wj&a۠x=vNL<26c 	{x! zL܀-I639to`8+x;wvyG#y<_P09&@XZTZYb?E^}{B7Ҫg]ʩNd忍mͪ~u㗩z-rrCNL,d;{֟cfsvL&bڬiTZ,y>9^6y[֢LIaJ^ll9p{c&'_}^^xDcRi^JNjnb^bzj/ZvwLώ^:ٜQhYphN3>5}}[[sS=YZV .ދneXc~r7IaKRL94$37?%1'3!&Dν}7O=sok<QYogQv^iIxgoV&EM xT z-5'UQnU=RddN |*B˶ ^U'|x! ,0}K
za^@,x! ׭0x&>I&4G\x! @]Z`kVl8	UO\x;wj&|o)G6}5N%'vnܼ3 ɝ!x! zL܀-I639to`8Qx;wj&/2:fxd&v63rsL:x! .6dْk^<\?x;wȢ$7ԗר؞*,T i
^x;wC<QYogQv^i P(OMb8"lꇴPy9ޏZ6 $x;w}}KgzR}Fc PpJ,LN-*LN-,acQos>e>[L,1)o՗rw$~tܤ?2"UE]|SϝO3|um1~ZmzWd;&_wm4n*-</-1E٥S͞|ԩe[h/cz3TqH]K[јTZĠkrMGm«Wl"۞1ٜQ{zMcQ>l|m~n9o)RObrFfYfjyJZCw=v1S,tns;mBUt=>O;U!sKsJ2sSs2
JK&:9sŸw72\}p?mcd58Yhڋw\_<bFnNIxgoV&EM Ex! fq]A
HGa³H0x;wC<Qςv+?5XS Sw3!-T^A ux;w2/ZvwLώ^ٜ9 !x! 'z{V29/[uQx! 5g^ϱ'2JHL x;wj&׵F&[}V
.=y?%f hx! P?	M(;pRx;wj&rV,ngu1#KG~yXL.x;wj&׸ڥxU9X8+kL9x! M[~NS>e3U0x! qcW+/KOfP_x! #sN'D'͆
ڳb}x;wj&.%1톿:z*ϯv>ǣy?%f t3x;wj&iͩY+*f`;g|3>Vd~K x! ,̈g^%H ٯx;wj&7CcifUq~K ߝ6&x;wvyG#y<_P09&@XZTZYb?E^}{"UuT=T`bB'0囈տk>qSixPm!'ef2mF#6-u3lUKZjwGkdx肋͙E<˂Ӈ9ݟڱrrk]kni닭b2f,vUاUQu7d$d0dp׹oi<gmbg4*Ww>*wK#m1<5Њp7Bx?Oh ksbkx-2?hDs:[s340000 BasicServicesKit )Wo	4v8q4q־] p/Α%ƽOGBYy_M";\4{P>mڶԚubCӽdz<<0yYNfZs40000 bundlemanager -5T,&=$aL(7A>e^8wW8CʇٙYGAy>40000 hiviewdfx ^"x>\Bjܠ=;7>7U%BX9I!z40000 multimodalinput UbhIH*^'WUYΟU4)62҂efsF40000 web O84:֒vZ)rxT D?+A5_[E7歄(%V;t
6
Qf5P>\2d/#dxT z{!6VPxS>I擿[il*1dL6^g"ZM|f#ǸStr&Fx9 dCT-eB]ձ[il*1dLXt*x! x35X;N]qkZx; X&褐ӟ(Bbt/AsIWg*q$x! ǻz3<V"*8]zxE S8 ]`F%Ӛs40000 hiviewdfx j[@,vR Mx;wC0tm%qOޕ.=zbQas: ysx;wB۽5ND^X7KqUwgAFXhx9 m_4CkySk5IJ{GfSLbcՖOQ`dHxT X&褐(tߚ;G}L ȓ/u.ʌe_DQI(P[x; 9y*E9gn糿-A1M+JQD``Jx! OiHڮswnI"Dtyx! `j!P_G&(x; U:8ʌrm9p𺌄P&>!2Q:rx! ޹w;' 2\im 7x;w!5;*%3%Gck,A+x! L28UdPmV/^[x J]5}kK@7Yq4_vۘݬrGx40000 arkui 	VuڬXTZu#ـJ9q[il*1dL6>˔%/oR4n@40000 multimodalinput ROB'ixRxT xxdiX<
y[il*1dL6˔%/oR4n@̳)fx; U:8ʌrҶE`2Qr1Lx! U:8ʌr17|x;w!vHىt)vnF G*xT NRD,oa]"{<z>xfcw1Um9p𺌄P&>!2Q$x %ƽOGBYy_M";\4{P>m-uPn+j\ ,iƓ<0yYNfZsiI;2jÖxBhf3UW8/Χ"d40000 hiviewdfx Lmw0Q؎k:7N!^W|:ZE2O84:֒vZ]qx %ƽOGBYy_M";\4{P>mMa?ғ<0yYNfZsiI;2jÖxBhf3UW8/Χ"d40000 hiviewdfx Lmw0Q؎k:7N!^W|:ZE2O84:֒vZ%v	.x j2'6t3!.Fefq]A
HGa³dN |*B˶ 7>;_F:l40000 multimodalinput l7NJ*Hr5c-McARx;wڑ2O֫]jz4حnl ~x;wC9Mߪc>«Yؘ  ,x! wxO4	V鮣Rt:\x;wBߋs{mrK% QxY ]l=a#DYq4;("c_UO=40000 arkui xxdiX<
y'Bx;wj&?]y;ښIr9Őp~K px: 	VuڬXTZu#ـJ9q-ROB'ixvIx;w.s^Z'=XLYy/ﻉu"# dBux;wڑ2O֫]jz4حnl +x! ˔%/oR4n@̳ZxR 2K}	qWYȱF11]z ԑpW7˔%/oR4n@̳%`x;wfJcgQ|+'Ŷ͛ 
&x! ױ%GUtXS /Lx;wC7X6c7KOpv|O sNx;wڑ2O֫]jz4حnl zx: 	VuڬXTZu#ـJ9q-\h
F4',޾om>x! ;_F:l7x! U:8ʌr170x! ҶE`2Qr_x; x 8ë+`e6-%~bt҉FMFGIx;  WB =mT_9ǋYzyDL2{Yӗ;Kx! wdN |*B˶ H{xA 4_vۘݬrGx40000 arkui 9y*E9gn糿Kx! 9y*E9gn糿 x J]5}kK@7Yq4;("c_UO=40000 arkui xxdiX<
y[il*1dL6>˔%/oR4n@40000 multimodalinput ROB'ix*P)Dx: ;("c_UO=MROB'ix=Ix 5%ƽOGBYy_M";\4{P>muXi4C<z>xfcw1Ui}k<m%<?j4R/Χ"dg\h
F4',޾om}O84:֒vZ!`$x;w!u8>nԿ2Usk,GbCx ~*M";\4{P>m7jvz.m=.-RQI;2jÖxBhf3UW/Χ"dgNKN]۫"Gok=px;w2ȍw:rj|PV<&tMQ x! 짋<&J[reNx! h=('BeBO~x! Dk-.x;wj&V{Cڝ-&~#`L_\x! 9y*E9gn糿x! /X]U0wTN<x;wCϳOk9Pќf}s3+3  x! okO Z8jHFXK^x! o R!v`sT7Px;wj&e4}z.bErL	8;xP >,j)J0
`W/Χ"dgNKN]۫"GoJ#o_x;wj&e4}z.bErL	8x;wC-ȡnfS?~<(в xj5x! &n$Jx5["kex;wj&󬲪G>M>)VHO~PLExO *M";\4{P>m7jvz.m=.-RQ''%P(lƂ,\#x! S ]`F%Ӛsg*b<x! *"^ۿb۳>S>x6 -zѐ".F3NKN]۫"Gox;wC-ֵs{b/?j% ,x }O84:֒vZ~WxN %ƽOGBYy͢ώQ[O84:֒vZy&;4x L%ƽOGBYy_E>u:˄bAؒ+>m)ѩ nf|"^Z3<0yYNfZshLmw0Q؎k:7N!^W|:ZE2O84:֒vZV8x;wj&T[s>LlqvѼ{}~K 1fx! &n$Jx5["k(x %ƽOGBYyƶ+x! uXi4CO[x<2?<=ͩ-*N40000 BasicServicesKit )Wo	4v8q4q־] p/αRZiWmLj`nsd-5T,&=$aL(7A>e^8wWLmw0Q؎k:7>7U%BX9I!z40000 multimodalinput :bEBG²_2mE_r|mM40000 web O84:֒vZٷu{xl Ҵ> O	-0T<5%ǊhLmw0Q؎k:7(97sw5&U2w4Qvx! T<5%Ǌ-00x; ͢ώQ[Lmw0Q؎k:IxT oD=+cEޓ<0yYNfZsN!^W|:ZE2'bx;wj&0b;{SZ/\y?%f Nx z2hDs:[s3FeSY.`:㓝h#ꃜ<0yYNfZsh븖yiywڳWUYΟU4)hRAxh 5Tt[l	?pnJh^"x>\Bjܠ=;aUbhIH*^'}''%P(lƂ,\=+x;wC9ȻfηfiCGx2,lL yx; *"^ۿb۳>,2er&sQ tGcOxO *M";\4{P>m	Y5=xiPLˊ<A)UG,ݢ$Ux; ZavJt<!WΗ:,2er&sQ tGRxT uXi4C<T<5%Ǌm9p𺌄P&>!2Q(5x; IHp!<T<s@Rǌ|LF:@x! 	Y5=xiPL/x! B8<USkeԳ _x! Aʴ V>y3<_x! IHp!<T<s@mx;wj&Y+42e-Mu~m~K )x;w!+˥.	9k,DF.x! 0yYNfZsO/x;wj&	Ri2+vۻkĥnt \x;wj&1}4zx{9Lt5-x;w!FF<©E6<q}5݌ -x! k ʐIw8)\x! )ѩ nf|"^Z3/x! N!^W|:ZE2~/x! JU;HAO>ߴXx; L54<O(rN!^W|:ZE2;"x;w!FF<©E6<q}5݌ 'x 2<=ͩ-*NFeRZiWmLj`ns<T<5%ǊD8/Χ"d40000 hiviewdfx Lmw0Q؎k:a:bEBG²54xx+ZIFr)62mE_r|mM40000 web O84:֒vZҗsYx;wj&B߇T{$}z/Jp~K O8x  khK2z{Lbβxgx! 7U%BX9I!z_x  V)؈,{[mex! gW!՗W(,^x! E^SٷcEx;w!X/tXEϬX7h5݌ }sx2	YVH篡/qmI圑FAm_4CkySk5IJ{GfSS<踕=n`N/{d{*Tk_*u78/Χ"d40000 hiviewdfx Lmw0Q؎k:a:bEBG²54xx+ZIFr)62v?%L$ݣ}c<40000 web O84:֒vZxJx! ӣCjUX6婮[H%ۂ>x;w![39?uu_)q(o:k,lx;w!}d-r0z?-k,cZ	x a2<=ͩ-*NFe))Sg+Ŷ{`s/Χ"dg:bEBG²_2mE_r|mM40000 web O84:֒vZpLpGx;w!	J/TXJVj9]|e7# xux;wj&5V:aL|L/#x! $aQ|IgNDĹSx;w!sYi-/BO6d5݌ x! ekbׅ{Ԏ1x! ]ÙX>(̡:Vax;wC0H:ףS7{{/?^^t-& mxO ,s19XM'
ʉ~-oonog%TU9;{LAm$Cmx }co@[,s19XM'
ʉ~-oonogGe%'mX@W2%TU9;{LAb:x;wB%YVOvg;ͽ?Y??m7 *7x: xI;2jÖxBhf3UW`\h
F4',޾om x;w.7[:ޘ?'Mv-x;w勶'.~ef;.c֍nl Nx 2ǋ.z@<FK{|x;wH
n1x&Xeyx7 (x;wHFjmگؒSwnس͛ 8+xm TV6Li

g8-<0yYNfZshUwr ^ >WUYΟU4)hH1|x;wCϳOk9Pќf}s3+3  )x;w(DS%'Ў<hdM dVx! 
wC),Yt8Sx;wj&ōtK5t2}~K 4x;wj&??6-o:+6y?%f wbx;wj&G~_U%%x<*BOe~K ֙kx! SY.`:㓝h#ꃜ@x9 2hDs:[s3FeSY.`:㓝h#ꃜޘHx! 1NԌVo3ewx! ʜTpsCǳ&xS 6
e#PW{^"x>\Bjܠ=;aUbhIH*^'5$x;wC9Hw=v1S,tn6& ;.x;wBH.OsvepW4V oDYx '-NC'Ing-x! ))Sg+Ŷ{`sf&x;wBߋs{mrK% QRx! N!^W|:ZE2~x! Ma?ҳ/-2x! GjT^-E*x򦳿8x;wj&->fLW2[I|kLx;wC<ĵsſ.y\}Ō6ߝ&@P z}&[fumRY (ax z4q־] p/αRZiWmLj`nsd-5T,&=$aL(7(2mE_r|mM40000 web O84:֒vZ[o?S[x! ϴ60TO{A{E͆mx;wj&)kd֘u%AdvK^L:rx;wBH.OsvepW4V oDx;w.7[:ޘ?'MvKx! wUwr ^ >$bx;wvyG#y<_P09ݼ )xR 2hDs:[s3FeW)zF6DFH4-UbhIH*^'"5ax! -z'7wIu[ x;wj&{!EKs8,8畱h~K L>x;wC0<yvSOoΌtwix,ZL (\x  :bEBG²z
x! ሑYZ*CKx;wC-jcXPKUnT,Z~} x;wC<ĵsſ.y\}Ō6ߝ&@PĠ"<'zն>ֿx ߫Sx;wj&5V:aL|L/x! co@[yw1x;w:VTVGÍ^5y  x! Пpg]$91b}0x;wC9zf7zɭ{?Q,lL b^x! v|;Ғj5ppqxT Ib9vr/ձ4;#{1,:+-YɫЙ7ǼŶ
<TݬkB'و(x! tߚ;G}L ȳzCx! Ib9vr/ձ4M"sxȻG 3KRS~4'0?wt;MvmT|8YI5j^e7|.l?iAQĢҼT_,Se5ͫ[d6:A)4VUW?XZS}~Y{nUm[xiI#%_}0ٜQdǜ}o._y][7p֛w1G}YXܫ8Mmev_́X^X`\Dѻ?Uin/nu^Q̲
k'{{@x,veBU&͎˶)7ro[Q?_Ss2
JK?Qcm}0v4uk|X͊ٲzcU6I>-ALK-)/f01zcãϧ:did_D󢭇tt4&{:Z\ZYR kr$e¼L&?e5ywť)w\.iɚlfF^aJ'mz_ZӱAdEv x: w $'L>s7ǼŶ
<TݬkB'وFn\xl Ib9vr/ձ4 $'L>s7ǼŶ
<TݬkB'و@Rv9y RSi~kϟq7nWxq b+فZ.@Ӭ̄͙;#{1,:+-YɫЙ7ZrŤǾF\>\A$a},7etG3:+f?4x! ǼŶ
<TݬkB'و0x! w $'L>sxgCL"W$n/7O<dbcY,d9xX bZ[EA!(+g[׍`(,kS?DlqA$a},7etG3:+fS(
 x ]bjdijzү2 7Z[EA!(+g[(T0 A$a},7etG3:+q-VwHH=Z41~Ɠ05щG[a>	)hCHKx! ׍`(,kS?Dlq[HxgC$J87KmZ+*7粰1 	vx: 5M'
ʉ~-oonoI[ZrŤǾF\>\FGA?xgfVBݰܒ5c<68 ؋!vx! Y $'L>sm+\x! .}/C߬n\kՏbucxg)[y̮'V]ag}E͞,ZL x; -5T,&=$aL(.}/C߬n\kՏb	[xg+i5	^=]l{fI(f 	xg)`US'>>3{sٴ͞,ZL f7x; d.CL:oɟ$-gs+ZZR7f Q	xgC/P [Ym213ٽ<33Inow*31 ҜĜ̼;/%~
2S3-G,Fr]߽gXsI_"7!f&165	^FϢw8 C%&x NpP6ڑ,yG>L(rs	NP640000 multimodalinput gs+ZZR7f 9{@_}ͷ/2YJء	sw40000 web %TU9;{LAߐNfxgC./ɲ-w?2jb 
E٥l/8}?p]CBڑc213hsItL
l0;eB9%)9y%w^hKFd>gZCɏX,ETo{!Gn߬*h$K~֍Y9?(%rbxyjjcXPKUnT,Z~} 
X^xg)q-gt/,4cOa7͞,ZL xg)H~t~ny˺=Y :xg)HVXJ:VI_;ldb phxg)HkJ><x;&/=Y x\xg)˦Sr{__7B|fO-& -[xg)ȡNi3AT͞,ZL Gxg)H(C/59Ŗ7{h1 |6xg)H9_ɶ6!jjzy' x! 9K)$䝘׳HNx; jdijzү2 zTN["սThCoaNx: jdijzү2 cC7R=;Tih+x 5pP6ڑ,yGdjdijzү2 >ėwM\e
j40000 multimodalinput gs+ZZR7f 9{@_}ͷ/2YJء	sw40000 web %TU9;{LA߳]"x  >)Adb׼p伓RBxs m4c)7{2"b40000 arkui 5\pQY4@`fvƳR}pgJ uQS	p\:k
f20x! ݁$>t<ts<C#xg)-;V.Q:IyOfO-& L#x! UbhIH*^'	Sx! Ib9vr/ձ4!#x! lV6?F#BqR^,3xgC./ɲ-w?2jb 
E٥l/8}?p]CBڑc213
ܺoN5
<yKȁ-}O;r_8Yc6t|`-ǔ	HsU\ZYR0\p<A΂7"1gv`|H+r.)~PKF=DoyjjcXPKUnT,Z~} 8dxgC/+Y<:͖}UYL 1Lx! pP6ڑ,yG`Lx; *=ͭ=( #SW YL(rs	NP6본
Jx \"kPodDGh˳PrYS2Y!M&I`ܖ<ŲOڽ}-0]pƷߓz2҂efsF40000 web %TU9;{LAߌOr0x! UbhIH*^'	`x! 
z'oȪj*G_'Ux! 6iۛ~Mqг0xg4ȁ-}O;r_8Y]6]xgbN?If]z݌ -x; v5˔Vc4N@:ڳz{@_}ͷ/DKIx[ m4c)7{2"b40000 arkui 5\pQY4@`fvƳ$DgDɵ&Y""{h%
ix! ִNq˭Dj⳸Vxg)H:ףS7{{/?^^fO-& VDxgC.X6c7KOpvs#'f rx! pP6ڑ,yG`"x> bni y?RXm&w[zP`|&0GTĳfZfox  \Bwܴ#hfDhxgVͫ8-/|g1y/3\L@85(aJyoDbX(58 
5nxsg#d%l7qǾbݢيOVO^ȴS:y{Iolf$r~h<Q_}-*N}|[WsL@!( #3aƒ2=t~e{QYZVzd`#(0>19\$4MgiN&?
XB'`q4љpg{G7}Zy%E>WY}lxT,3-Ϛh.-#.t%`zGC&eT2l8(A8ߺ?+9BL>j KSə]FuM̌.<pRmuYN^cc!&1lXGfqk[& SxgVTVGÍ^5y	y  xg+i5	^=]l{fI(f .xgC/H|PWyGV2~iBK \x? "k_R{Jau8'Ī2;BX`ܖ<ŲOڽ}f:*xp "kPodDGh˳PrYS2Y!M&I`ܖ<ŲOڽ}-0]pƷߓ#5)x v"k3_xlbap-QPrYS2Y!M&I[=Q$	\ԚOߓA`ܖ<ŲOڽ}Y?P5Zmlq'U=x; l]+MH@g|*Mt$Z[EA!(+(*8axsgߣ}:OlFSڛ5X xsgC>x*j\#Fg	z <x: l3_xlbap-QY?P5Zmlq'U]x yl3_xlbap-Q=Q$	\ԚOߓY?P5Zmlq'Uz2B#$k:懷-J]]40000 web %TU9;{LA߹;x $lIx zLrU;*rqr^'o=3l2ӑSz^Z9#|L7 kaMH<5Ó7LgP
\_Ys40000 security Y?P5Zmlq'Uz2B#$k:懷-J]]40000 web %TU9;{LAc_mxsg$V)炻	r9cs6ek -xsgC[p;(3 #x  -0]pƷߓ6Rx  rY3ϡvN <V8xsgߣ}:OlFSڛ5X fxsgC>DЕUc?\Y<< c4xS lIx zLrU;*G:`d{Ns}"LgP
\_Ys#xsgC3H%CS:L`TKݺ`,'=xsgC3UƔꧏf*mbit݌ ^>x  o\Bwܴ#hfD}pmxsgC>E_>hlh=usoSͬ9xsgC>HO]u=2M]'7 1Gxsg'f?ޖ{I`z9X| ux: qr^'o=3l},{%r샫ECPZwxsgC3Hk˟KJ^`^x,
$xsgC3H%CS:L`TKݺ`,'$xsgCD/㥥:*rNO,%3 Exsg'f>7hX(~f6& Q	sxsgՆtuE"O0s>,lL *X!x! ,{%r샫ECuQxsgC|lQLvf}y^Njɚ2K ׽kx! lbW^uk!P 8/xP lbW^uk!PcHSKdҤp1LSȳLf逬d'B6^Ab3D'xi lbW^uk!PcHSKdҤp1LSȓL脕Z˃V*	0f逬d'B6^Ab33-xsG 3KRS?,욽^뻲m=zjȄ9%U&"{`b'&A	yi;zY_n\O
L3f]UvSMNJe2TڷzsAZԝ/_-ʎ/*+Met*}EwW}f?-v=*dP]تFkH9YLn`JqPغrqj;'7(zm	љT[SpimFֶ+,8S[*HI_çW..tgr5H'.[4-|gYWLQۭamvzkeJ:0#,3<%wrva߶ɯ_^w&3$7$#?%Trm5}s&Pd&2-лoSnrz>7R OIW}'Rkp`ںY zb`/SE2Zqe!F䥖e3FԴ鶵SץA3&&48\_=6J!ZSK2K*N^Xl,j+M^j rue{i|'yxa#_|:`FFI_8nm1<5	jb'ϓm ]-D.KxsgHˆ5qj۱uo1 ·Dx: :	ZRFjv12c>[%X'lMUDFxT lIx zLrU;*2]w17Dpc$GGn0YeۘD8%px M9{gC'2dZMvn,NE V!([auZ`YB}c4pUc5L1;1@9x`s[NQUG<0Ҕܿlt/낣T%TU9;{LAߑQmxsg/&D&l;%4m3# *Qxsg/U5{]'t>01ua}ҩ:X]bIxsg/ݹSzW~x|. Xwxsg/Z&!E4,Hwf>VF n	yx oT84튳(ME7340000 hiviewdfx ӑSz^Z9#|L7&ՑG1&XAAL!l\s;О]"RLTR¢Ts+Axsgm8}Z_;on] MRx! 2]w17Dpx: :	ZRFjv12c c;˾N⛳Dyxsg/U.4~z{X]{q&x!  c;˾N⛳D:<&xsg/KU.s's[|w|. @Tx! 5L1;1@9D0xsgC3Hbiԛ6	"jM~4nβ ]x; 9{gC'2dZM6auZ`YB}c4pU,IxsgC3>#9sZŗwiW\̎T<e7# vx! o}z*t8ov\xsgC3oNܲͫ<e7# x;sgC1ȇ?n	[~v݌ Si;x; #&,.՗~aհ?1#GfqSgAx 12 |9{lSL'u]یFqŻ	6y{(XeNWb[j"[C9W00ZQt<"]k9ZBA
e]9[>g$gq3YdNss23݈
YezH8#HGC40000 web S,gyvz@K^,Kx{G 3KRS?,욽^뻲m=zjȄ9%U&"{`b'&A	yiKdɟ%{pݧ~,rȌ+n]uӂ)L<]J=nUOn K,.d*PMt߭U"qL$&}ۖp=f|wK&+Y{nUm[xiI#%_}0ٜQdkc$~Ǥ+3yH'.[4-|gYWLlVgar7	LϷa|5ĂdᏅXVĺ8ZU;;h"QYZVP*xg}|%K~={	QWPZZs֍I*g`k@DYniNIfnjJf"ϵE5W^tDb	$Me`Ϋ޾A])߿?8e0m݋Ifsj_lS׃RKz#Njt) ԙz}YCJz.ʯ{efIũɥE%'/n,e|s5qe쌕&?e5Yxq/7pܾnsdM63#3O,0hh5gԭ{!&1=t6YV,yrM K<AxLA_+ ]Z	U{sWϨIyDjFCxTSQ*Uܓa/߭\+#8MrXk-&ޞES4HTkNV*X8y<?-QAh#1-W40000 hiviewdfx }1ZRO9N'c<7̽OnOhv$w2A6f	>04ST.ʐ40000 network 5L1;1@9Ҕܿlt/낣62oMpͪ9/v\!u40000 web KI<iƑ[x; l}U2r7ǡ)2fO:N4c=%0]Li %xx lzY}2XXA2ȳf8ǔ]F'I40000 hiviewdfx wmeNj_dt
N7h0;z6zvXiD4,xl laz!`E̎DT<!}^ϻL *~wѷwIM2 Ç=^[Q$nxiH:I3yfN#x@0Lx[³gC(y\vNX=8ws&nF mzx[³gC(&5YW^5Yg~͙,H%(x[³gC(dŲ\^U&L݌ ߃.Vx! UY4bԗˣA$Jxĳi<x >])Wo	4v8ql	F ~؝kۄV$q蓀ϻL *~wѷwIM8dfvǶ0@^40000 hiviewdfx s"%xW}7|w/]HN#b)6iA7ZZeW(!՘/سf]X,x6 1Ε|QZ2+h4qWJmQ,u Xx |]'l	tzu4dXqF,܊]ΘxKk-/ ;iBzH[_˛X%A|~Д#iAf	>04ST.ʐf:k;x9 "<K{V4RW`gˡ`)n}{քLHr)ZxR "<K{V4RW`gdr/j'}p1:>[|w/]HN#b)6iIJ 1x%ƽOGBYyˁ4c)7{2"b40000 arkui >P+3e)HM퓀ϻL *~wѷwIM8M^fmgoǛ40000 hiviewdfx cHSKdҤp1LSȓ7'"7mV*_-oriA7ZZeW(!՘/ؓ7Q0 Xs.1{Ab)40000 security 5K:RbPMl팱x3x+x[³gC
K-\M\}|;ck ܮ'x@])2ߢ|;YSIԦi͑qFq(*l}%+X>2&Tx!B)?&m$_+Z'VT}ndyFC!񇇠rؠ4Au	obQ>_[k-٫uL̌rXV 8eOڎҐ
'D40000 hiviewdfx # U	)Ͷl^40000 inputmethod -H̨3
쏃E,240000 multimedia s %q>"z"PA%IV\"K"9L̓$$6&ԃSd`0̨mmI69dY|62ba,M<#
<^c40000 web S,gyvz@Rxsg&%fͿj~?k9;[ɓ?"xl T4튳(ME73([}d(T`5HmAL!l\s;О]"RCixy)O7ed1ixsg/ډO.]\oe\f>VF qKxsg/n-=fO
Xe3# "yxsg/%MW&y3# u'xsg/xם;2몁 cX]Ux! }}-BDwxsg/Ѓ^I"M3ʥE=X]3xsg/};ny?Y@@v@m%X]Oaxsg/=yRP=_Ef>VF x! :
o!Z|ҳD?x! >6G@\j}D oxsg/o&mK35dO:r3# (oxsg$V?
0},SF't25 _Jxsg/9z.yOvAύbX]\2xx! ZꔲW01,xϊͳDo^(x! l1; DԸM\FhXx! 
j&7ZڳDxsg/yS4z[ӗ-s3# `6x! Z1(z3+ֳۧ$cJDAfxsgC3Hzb[XJJWLy-{,Exl T4튳(ME73([&ՑG1&XAAL!l\s;О]"RLTR¢Ts+n1}xĳG 3KRS~4'0?wt;MvmTde1wW_[O5nZ;ET`|M|o?=2N~9w";L{sʋ2ݺ9Cޜ\<S$\[rIM`s؉{^q5d$d0L1Ԣθ\\? H1[_So
ߦ7)ЧoX͋Wѐ[latSf,Ң̒J_$/+d
>l}6yk,|Ln?{lo[+$J.?񴯪}	Հx *'x[³G 3KRS\LDC]MۢfvG'LTcQos>e>[l,(&طWv[T:[IL;EӝwNviF)GNeybԃK,Kn!awo&o6ɿ;ȞypMI;z -)MMLd0-Oy&]YQ~JbNf^Ai	b%*ggLLRKSK2ٲzcU6I>-Ml^Pdc[>2c!&eT2l8(A8ߺ?+9BL`2IyJg;uwx--OMbX#'Тkȉ-fZ 0	.x `l-$o}eNF
ߩщiF	OTٓM8ozf۠:[БfNWкBi2SDex.@#^40000 web Cn#A\ύB{"lJ+\x; &@G#kᄳ:RsNRMNu_i&x[³gC=HzڒQGDϩ癖~d Tx! 9ߩщiF	OTٳMC(x[³gC(W;~v7`gj{s&nF VxN T'istributedhardware =!lPaV<}dM]^O*͔L:f1#x3x! &JvMNдOʂE]:;x[³gC(^]$<Poh͙,oix: UzxnĮ3͙ 㗬x؍iAL!l\s;О]"f62x[³gC(Nu*k~Je&2Yo|L݌ RT`x! UYV2Or.lHǳi) x! UØ~ݾSK䯅i/@x! Uי,rM12@ҳiM x! UБfNWкBi10x[³g ZƩ*W83	, 
lXx! 8ozf۠:*Q/x[³g ZƩ*W83	, 
lux!  //AlH*d%x! &Əlqe>\*
Ux[³G 3KRS~4'0?wt;MvmTfG``TG%#Z770]e[k2	gԭ+'8yoJ9%)9y%矨1̶wWC;n5ɓY.dڭܤ%xY0&Sak cByx[³g%Hu<H2(;י =/x6 lbW^uk!P݇}4@3e$aC-ɀtx[³gCG`s]6xI^UfM% ۜ"x[³gCyyyq"p% 5Px^ !40000 .gitee ``2O]4Z2>!K@aKǾ(ߑs]q^[.i'&hx! U*#PPnix[³gC({buS[ѼӼ#?~͙,Fx[³gC(iƈ"ӪH_nwcs&nF ޫtx! UnK}ț'H`}әwci5$x[³G 3KRS?,욽^뻲m=zj7dvXWUzJOn`%vokǅC!~alkMcjedqoM1GgsV`>옖\7}EGd$d08p/sdYSerD!/%;$(=X/=/c}R[nj<xuXL^ey1鯃%ׂXWĐW	?UU/ JAtmx[³g 3w@#_){~쮖 
#x! U]q^[.idSx[³G 3KRS~4'0?wt;MvmTf~Wٗ/?<(uosUF;K셶(OֹviE fd$d00^a^in
7Of u9Dx[³G 3KRS?,욽^뻲m=zjȄ9%U&"{`bHW
'~[^;%O/dz|y¹۪+;=<?_>"w0hսTqr6}uE͓r6p($/M}"|E➭K˕Lon,w|1ջuc
|Y.o~.MniNIfnjJf":o	Îioj}ӗ_(?%1'39zOt|u/LLRKSK2~?fw(5Ƴ?Wgߘ<ҕ
ŏ8gM3Ib]qjriQfI%K-\M\}|;cUFB|]eǲER$&0ߊ;?O ]x; l#)FHy;جfe쳀]q^[.iGH Lx! l&HnzB۳|x[³gC='*}Ўvpd *xS l*BɏajNXAddVBG'zHih#* qn|ix>%x[³G 3KRS\LDC]MۢfvG'lTfiӢk,_.u[ՠ|sf ax! lLB9V~\uF0wC0x! UZ :-im1_x[³gC(HjϪmex&gL݌ ):x6 UtHs_1&]N6&if逬d'B6^Ab3|x! ^:y7cL7~D,4xsg5V+6N`y-bID;ɯX3  axsg/KU.s's[|w|. @xsg/g5R>9;=X]k=xsg%7o;l'*Ǣ|.;̬ p"xsgC3kmpXKZeu,Px? TӮ'}E:_{
$sAL!l\s;О]"fNx[³gC(W;[YrL݌ o-x! ƨ+&2?Rk*:/x! USLߺ?FGXRi/x! ו,s	H~/ח({*^x! 4튳(ME73*/x[³gC(HzsӦ9[t_L݌ \x[³gC(2kJ_*]e0mmj͙,	x[³gC(W;[YrL݌ o7xN UzxnĮ3͙ 㗬x؍ir_&,,(c3H=BLi]Ui`=6U{!ϙ#]x[³g ȥU.O\+#nZZXhw	 8fx[³gC!DV̵i	3 U]x6 USLߺ?FGXRiCixy)O7edbYx[³g H]m|"o* yx9 UzxnĮ3͙ 㗬x؍ir_&,,(c3H=BLi]UllHx[³g H]m|"o* ypx[³g 6f78EՔ c	x! U&ՑG1&XAiHx[³g =w5.[Y}>a &qx[³g d'3^d}[ZInz$!xB TEEKit z-5'UQnU"[=gg\pdf_
rx Nl*BɏajNXAdf8ozf۠:[>dVBG'zH40000 multimodalinput $ ;ގ(+^'Fq_2SDex.@#^40000 web Cn#A\ύB{"SM2xT l.>dTT0^KI^FC˯P#mL_kj0I<ΎMKד%Px[³gCiO&Kze% Cx; llg̳u#+3X@ov0OCitG	x o!40000 .gitee 1tޅvz!K!swPht]=M$frİf6Y+J{ΤƓ[7\-ze|+9$S%3giPkXtbW*>,x[³G 3KRS?,욽^뻲m=zj7HY>υ>x/uS~ҟ/nYb/ڽyR&d	|59B䝯Hܳui-ޱw/fznLR8[ -)MMLdP4<}1-M-o$d08p/sdYSerD!/%;$(=X/=/c(}R[nj<xuXE/]mQHp֤Ꝏ;4'5绸*˽??(HBQpwfz[ܓ6} .x[³gC
;1Kd}p$;4cr [x  dU2lx>ł8:x!
x[³gC
EBkrX/^]
5 .7x[³gC
߷mO7x;[?rk dx[³gC
yg
wXWk x; lLB9V~\uF0wfq%{AȔiibj[x! lLB9V~\uF0wCx[³gCȄ<:*y6/Ժi	3 w(x: UwY*yk'堷0iAL!l\s;О]"fݥqx9 Ut?w`}rVix`s[NQUG<x9x[³gC(HO7ۛ,ܵ$"RhJ͙,gx[³gC(Ȼ%ǲZO~Y@CL݌ x[³gCȄ<:*y6/Ժi	3 wx[³gC(N⣼l*"'Dٮ5ڜɲ 
Ix! U⥹H4i0x[³g3fّ'&m!* m~x! Ut?w`}rVix[³g ZƩ*W83	, 
l.x[³g H`=<3-q-- Wx[³g o]?{wY7CH b
3 x[³g H-~9ww;n )x[³gC(HٴPE&mʍ\Vos&nF d.x[³gCR7Q//O:&XE\
LKJ[x! l]G,.@C|~O
x! lq&0a&j	3:x[³gC_S0Ϫ-Ϫnn`Z Jhx[³gCN3gkq=ApLKjx[³gCb|F;&P6}% @Dx[³gCȧZ~,޵4% 5	rx[³gC]
fI^߯x{mn`h7T[T[}9,o BniNIfn~JbNf^Ai	C7O?# ߃>'3]z*Þ˟L9}bFyjC_絵ξnxa' uClx: l*a%H_Eu\}Orkj0I<ΎMKד`x[³G 3KRS?,욽^뻲m=zj7)Oo
^j7Wg&Li"ޒ.'h>6H,ݭNj/hCH䗵dl~oy1ĲҜĜ̼:Zwkw7Ofg4
x-e䧿J:0\bFyjC^%\xWUU޾j@< ]Mx[³gC(l/ћdSyr͙,Vx[³g H+}\M+6h  (m)x! FC˯P#mL/x! Ut!oO&l`i_/x[³gC]
fI^߯x{mn`Z -x6 $ ;ގ(+^'Fq}I֭넱@Cnv_hqx6 zZfȪH
@@̩Y}I֭넱@Cnc5x I֭넱@CnHx[³g3fxk._7=5r^aͬͿ 'vx6 8ozf۠:I֭넱@CnDT;x[³gCiO&Kze% sx/!40000 .gitee 1tޅvz!Kvj-vhL<KOmC&ޞES4HTkNV*XM^fmgoǛ[i'"7mV*_-or40000 multimodalinput CqxGpA.#z=d100644 ndk_targets.gni 7ZZeW(!՘/ؓQ0 Xs.1{Ab)U2PkXtbW*40000 web Q5u|@h.5p30x[³g3ftsaoIzo4o$V' !^x[³G 3KRS?,욽^뻲m=zjȄ9%U&"{`b'&A	yFFOWg[twg bME٥}Ku<P6>Mm&709߇Aroyˬ+vokǅC!~alkMcªqL[y@,L-OI`XQk(J,O~3w\QWPZZs֍I*g`kDUniNIfnjJf"Õӯ6.
Җz@"u}wdU)9`SoпDWoNL[D!/%;$(=X/=/!էLC};5aa},!M%=WO2M`aRmũɥE%'/n,e|s5qe쌕&WV	]\pvby$zSnV+{<ۦ 4vxh l!swPht]=M$XnL0ZsPNVnv'ir_&,,(c3H=BLi]UgJt
zzwP_-Cwx[³gC(ȍ<ZLԜQv/͙,	$x il]ic2x=b,s19XmIˊ+/Ob[>'"7mV*_-or40000 multimodalinput ,0x'F.TBmx! ,0x'F.ux[³gC\[{s2,2+5e670-a 
#x6 l/Q܉W#mAChI֭넱@Cn7	hx o!40000 .gitee 1tޅvz!K!swPht]=M$f(wyn`;EIu%[7\-ze|+9$S%3giPkXtbW*<Qx/!40000 .gitee 1tޅvz!K=&&4j0W$&ޞES4HTkNV*XM^fmgoǛ[i'"7mV*_-or40000 multimodalinput CqxGpA.#z=d100644 ndk_targets.gni 7ZZeW(!՘/ؓQ0 Xs.1{Ab)U2PkXtbW*40000 web  YA⣰Pkll7&]xT l:(N h<#GMffmIˊ+/Ob[XZw jЙi&Q@x >z&ޞES4HTkNV*XmIˊ+/Ob[i'"7mV*_-or40000 multimodalinput CqxGpA.#z=d100644 ndk_targets.gni 7ZZeW(!՘/س4<9)h)sǠP^ETMxd mIˊ+/Ob[>U_T)!40000 multimodalinput FC˯P#mL3-=x[³goF<[%e~Q^u&af+W ʈkx[³gC~_0yۛLKxC !40000 .gitee 1tޅvz!PkXtbW*KRx[³g'VY+.~*߶W 9~x[³gCdvXWUzJon`Z |1+x[³gCHY>υ>x/uS~ҟ/nYb/ڽyR&d	|59B䝯Hܳui-ޱw/fznLR8[L@!4$375%3*ƜE_Ͼ(?%1'3g{#=e*۔̆f&&
y)%E%zy?3EG;rSū3oL,xmGz&Utܙ99uP>=gWY,FG$&0ߊ;?O aTx[³gC(4%	v;(tY`L݌ l.x[³gC(/w\)Xr}7ga͙,H)x[³gC(ȡgKZN2	67弘gs&nF yWx[³g'VY+.~*߶W 9x! llg̳u#+3X4x: mIˊ+/Ob[|A@4	|.i-n}x: mIˊ+/Ob[U_T)!i?bx[³gC(9S[WYuKW͙,|.wx[³gC(ynխmˉ*Ӎ?|ߜɲ A$x! UXZw jЙiTx! U$e\=U: A@}ia
x Wz&ޞES4HTkNV*XM^fmgoǛ[iSS|qD*L40000 multimodalinput CqxGpA.#z=d100644 ndk_targets.gni 7ZZeW(!՘/سf[E";x[³gBȄ9%U&"{`b'&A	yFFOWg[twg b PH,.d0ɸxg
ooV
~$&wyW=]3&bQCkc^k_PX[1ٗYW$-}ѳN,+[&1GN\~nVǁG!#,3<%<7U/Kpz&3$7$#?%Trm5}s&ҜԔD6o69dU)9`SoпDWoNL[D!/%;$(=X/=/!էLC};5aa},!M%=WO2M`aRmũɥE%'/n,e|s5qe쌕&W,orΗr8n_IskV3#3O,0hh5gԭ{!&1=t6YV,yrM  ;x[³gC(H'TҔm|K.bٻws&nF ix Hl!swPht]=M$ߩщiF	OTٓMmIˊ+/Ob6+p)tWbDr_&,,(c3H=BLi]U2PkXtbW*40000 web gJt
zzwP_ͤTP/xO 9ߩщiF	OTٓM+p)tWbD YA⣰Pkll7':x! 9ߩщiF	OTٳMC=x! lyqwjFZ'UkȻbﳀmxS ]'l	tzu4dXqyqwjFZ'UkȻbﳀn{/ؿȊd0賓}*gx[³G 3KRS~4'0?wt;MvmTf;|3s9oa{)Q$\[rIMm+~2ke%=!d$d0L1Ԣθ\\?y2E_$/+d
>l}6HtD
&Ç=ʷ-$J.?񴯪}	Հx Khxx! llg̳u#+3X Vx;ĳg=ù,;VhQ/ݳ 3S2S3K4DxE_4fu`+2N,t9_{#HU=!,M/p~|yB'&ɲL*㙴E:.5^on7]1'cKJqPغrqj;'7(zm	qQRifNnI~~N1å2_ZҶ\"#LU^JNjnb^bzjûT9+}Sэ&ŘEݾSz3?iY]1bvDOfYٓ(-T"iSWȘ?322SS*zA7CPN͟g-9QWPZZ ;գ̊WWpov1:Q[SD1w-^^pv,"9
֮&ONwMY3wX^{~fE.ϛܧ}l=,S"Njfd|c'ۖU<,.+OpwXX07Xgo+-[S̝; x[³g3fS\lIykگ34lŬ -j.x! 6xHeիݚ*x >!40000 .gitee 1tޅvz!K!swPht]=M$&ޞES4HTkNV*XmIˊ+/Ob['"7mV*_-oriA7ZZeW(!՘/س4PkXtbW*؅VB	Px flvj-vhL<KOmC,s19XM^fmgoǛCqxGpA.#z=dQ0 Xs.1{Ab)U YA⣰Pkll7UVBxx[³gBȄ9%U&"{`b'&A	yFFOWg[twg b PH,.d`KU4+t)[vnB~ļL;EnaЪ{)l/&2ϬO
/G^YZVpQXg<q?&3$7$#?%Trm5}s&ҜԔDgf,Hb!2!b@d<dU)9`SoпDWoNL[D!/%;$(=X/=/A}|&\[},!M%=WO2M`aRmũɥE%'/n,e|s5qe쌕&WV	]\pvby$zSnV+{<ۦ xx ]'l	tzu4dXqFT8t w}ˡUiAmWcX5mulϻL *~wѷwIM-&ޞES4HTkNV*DlFW
N5D;uğL|GWQu9\aǦyxz2oMpͪ9/v\!u40000 web KI<Qpwx! ɤ
=q]O-?x[³gC=?E2Y'*:n y2DF &mx[³gC=:[oP"Qm,x! (($4ؠRv
x: z,s19,0x'F.%Sx! $;Fk}zb~wn*x[³g3fw"q֥JJ7;>{Ϳ 1x ]'l	tzu4dXqyqwjFZ'UkȻbϻL *~wѷwIMM^fmgoǛ6DlFW
N5D;n{/ؿȊd0蓓+	\:@,H#U2oMpͪ9/v\!u40000 web KI<n%x[³g#H+"qΚTqgP ԱBRx 0]'l	tzu4dXqyqwjFZ'UkȻbϻL *~wѷwIMDlFW
N5D;n{/ؿȊd0蓓*tUދEٽ
>U2oMpͪ9/v\!u40000 web KI<mdx[³gCHY>υ>x/u 6x[³g#HCj::r=lN|ʌz 9x[³g#e7&M_tQkɡИfx[³g#HV;oXdۯ
f<ur(y ѱex  A<5r
ikU-/Bx"<K{V4RW`gˁ4IE:u-iW8F40000 arkui +<ʻ[ˏEa/߭\+#8MrXM8y<?-QAh#1-W40000 hiviewdfx wmeNj_dt
N7h0;z6zvXiAf	>04ST.ʐ7Tt@i 0wu40000 security WQu9\aǦyx3Zx  Ah`UKHFUZx[³gCH>+Δ2qsf b+nx"<K{V4RW`gˁ4IE:u-iW8F40000 arkui 0&X^?[yja/߭\+#8MrXM8y<?-QAh#1-W40000 hiviewdfx wmeNj_dt
N7h0;z6zvXiAf	>04ST.ʐ7Tt@i 0wu40000 security WQu9\aǦyxC~x  PkXtbW*Ux[³g C;G7=u9tm Nx[³gBȄ9%U&"{`cfV YJx[³g#HB3/=NZ%=ɡ:wx[³gCʀ^C[S[4=>|vsf u%xR T8t w}ˡUiAmWcX5mulWQu9\aǦyxa(x {])Wo	4v8qvj-vhL<KOmCߩщiF	OTٓM+p)tWbD;CqxGpA.#z=dh9=x {]'l	tzu4dXq>P+3e)HM퓀/5s;MDlFW
N5D;n{/ؿȊd0賓>{x! 9ߩщiF	OTٳMCCx[³g%ZۍZ?%C.?}J;י qx! 9°s~~N=K^ǓɳM ;x[³gC=HHEcH~d{}]y2DF Cx! \5x3Ω㳓sx! i24Fd^?ĳ#x[³gCʀ^C[S[4=>|vsf uQx[³gC蜚ߦ'^jupLKjx] dfvǶ0@^G7Tt@i 0wu40000 security 5K:RbPMl팱x)cHx[³gC=s!
y9Gz<U)7Of (
vx! lTa׍"xqP&&x "<K{V4RW`gˁ4IE:u-iW8F40000 arkui 9PZةzuY* f8xKk-/ ;iBzH40000 hiviewdfx s"%xW}7_˛X%A|~Д#iAf	>04ST.ʐTt@i 0wuUţbpx! lkF#`X<Pd~x  PkXtbW*Gx[³gHٓ4OW.)iGf `Dx EQƫTk(t'OjC/G:'A@۳.Sÿ@3\NỬf\Ei[xLnh8L1Y=_h@58bʧO=x{vD)E/=AC<T9wfuI)JLOKO)/`Xv\`ݦ\AIV;hOYӣ"fʵr;F퉫>yuբu4~jt^bIfYj|zjqIiQ*U#=h-z`ρ]eDRN=wT'-ܧⓋD
Bn^:-l5SɓYETz;<,1LRy2.neڣ+v04<Xꦒ&	]Ȭ!oh1Ո:rbE|c2ʵ 	ix e$100644 BUILD.gn 	H$=r6CkHmF$sHMƅwqB
XdnMB(V/B[.sv "KOEbs?\<type.h (ߧCO	2<,ʓ>)x9 HT	ߍ9#\CUREu/C؃HZxz ɖb<C+.%m
reev#[J;m\E=*E̓,S6+100644 native_type.h vw.0yhtD[ st4cx{m[aϩ3ʔE/:u1LB hx{mYMyms\ʾ`@1LB Dex{mYMyms\ʾ`@1LB Dx! HSÿ@3\NỬf\
7Cx{mȍ7[3߳95aN_o1LB 	qxm <c]0sR o@!ݹdnMB(V/B[.scI@ql&t@C\n-cBm[bS$;;m1|x{mt|{c'#~:ʡBhc Y)x{meJL&(9I .x9 HT	ߍ9#\nBؿhiB7;Q,t[x=  x;vmȻ~Zڰ;nJeu1L-x  H#-{ ē\ y3x 0y26e:\߱lax;vmLݪ~IٛWO{1Lzxh \>N|/~BA%.%(Nbkm@u\C|[sg-|zFG%iXA -x;vm,6
MG{ʫ^wW;;D}hӫE;i^qB^bIfYj|zjqIiQ^CLOcGUj:rd="i!y/jٚ)LKɬL"׬m0q]k&)<]2r;,F d}ͯG'FORfOa'ofu26
;ek) >r2x;vmGFﴐۼNl`fV&;F Z3x  HT	ߍ9#\]xe @[[5r~!)qָ100644 native_gesture.h ZC7]Y!3Y<-.6Pߤfdff֓\璆0Px;vm'4˧d|{YuzL ~x: /G:'A@ۓ.#T<Db *}>`Gx! /G:'A@۳.dwx5 UREu/C؃H|L1Y=_h@58bʂd^x: +RyY׶Y-	{.%(Nbkm@u\OIx! /Q
aqƹ,.$xx;vmHLOcGUj:rf=FQ& kx! /Q
aqƹ,.$@x;vmHLOcGUj:rf=FQ& kLx7 ;)lkt7e;ΑOH)/cޗ,u60bx~ ;bK$8ǄdOH\-nka3
F*Ev'.$\mhX3YzFG%iXA8	x i;0/;,kxXOH300!4s#<oK77YrELv?.(b_\@w4N$]C[Dofxixp[79|zFG%iXAD.Dx;vmGF=n&Ġ*]hfV&;F  rx;vmÖUdv[y"ֿprs x  HR
_:ؘ-\~x;vm9?$9-6geOm1L֥/x;vmey$(nڵ[lZ r\xQ ٮ'DgȢ!y	o.l3PK9\C|[sg-e'<x  H_ʒ(K#Q@\ix;vmȾgbUuSxd} Rx8 DqqI'cg	td)um;i;}Ũ ࣓=x;vmHԄVZ_\~ԃ+ >Fx;vm;lUc_* Ь}z Ifx @;5 qU:GGH*$%OHP_ߪ(߲kɔ?AñF*fNG7fCEC/^tNUCOx0[=p$[BV?Lu100644 native_type.h F!V-mud1|W'ĭ]
&3VM[x~ ;)lkt7e;ΑOHSa"tP`\&.`Anȷ\O\C'!SlKĿ1ɓ|Ʊ}sХuʼjoC
>[x8 )s/Uyʺ.Fj0[e}(a+0f\@/x8 \<##{NoZC7]Y!3Y<-.vx ';g
O`  <FWԑOH &i2ey΃ XCCK!*$rxm*fNG7fCECA(\=p$[BV?Lu100644 native_type.h o2#S=:0q|])m	Yok_T]xQ YCKQavreՕ+ۣ)pTZ_UKH3x\CY.8@8)$=xf z^hNl8Ԥ.r<aW}E;JZoH\C'!SlKĿ1ɓ|Ʊ}sХuʼjoCf2(<xQ XǎE`*7
s@PᱫHc1қiy(3ߓ\CHՏUd*U8HLۓJ%	x h;5 qU:GGH*$%OHP_ߪ(߲kɔ?AÑC[[5r~!)qָ˳F-;`Dixζ\5\CF!V-mud1|W'ĭ]
&3D	Bx h;5 qU:GGH*$%OH)s/Uyʺ.Fj0C[[5r~!)qָ˳F>fA_Lvݟ\CF!V-mud1|W'ĭ]
&3W@hxQ ;z
5A
n)jF8$|rxG 2pEe\C5b^-N9͓[ Hx8 IIѼƏxk\Cq	>y+_X	6S{xQ ;z
5A
n)jFc7sªSD\C*F	(lU?/~S$ox7 ;|(w,T(dK
>uOHeZxd5d7~7
F5x;vm͇loVX7u.߸m^ O bx8 ;vX< _s钛=gO&=x;P\fmx  HK?Y̞%/cœ\Qx;vmHݩP˗kuj*~:<&>drs cIx;vm>ȪeGֲǲOڸT (rx7 ;+Sa_nbwOH#Akh2Q1U汫8xQ  &i2ey΃ XC<{ ~gz˨Jd\Co2#S=:0q(%D+x  H؏Jbx\{Zx  Hi
%ۺYe'#\٧UZx;vm>ȪeGֲǲOڸT (?x8 )s/Uyʺ.Fj0][ov:?^җr&\Cxa "ٶŹ2냕5챫=;i;}Ũ 100644 native_type.h '!SlKĿ1ɓ'Z/Qvx;vm5\zq/ #xQ [e$8@yWCK!*$rxmFUib~'Yrm[-E\%Dx9 qO|TI-tBOҐtF*j<*ylP=C_G>(x  '!SlKĿ1ɓwx9 \.;CRʱF y˵ť0Z>=7;x8 P_ߪ(߲kɔ?Añp$[BV?Lu"1%x;vmȑ	eU6om5kmG+0HL.becah``fbXYXŉN@6>jS2sӁJWN˸amU<A&PIqG.׾?diTW>:k	()~jJ^~
MXdt[Q,UYgw\٠fR }f-5s9yeV_p{ v~}x;vmHl2Iӿ\ziz *xN ;+u0mD:L+Oe'5ݪo$8'h*Ʊ}sХuʼjoCG#x8 =n},/K2wCuJ>q*NJ	:o\I\
Nx;vm_,]ڗz9s&1LST{xi ;+Sa_nbwOH#Akh2Q1U汫֮KP5-\CHՏUd*U8HLۓuP6xxP ;=7D:֪yROHw;s$nɦݿ|0mPzi\Qqd{W9\%Vx8 fko{7 *,C[[5r~!)qָ˳AEx;vmHݩP˗kuj*~:<&>drs cRx9 H#9DVpi 2\CF!V-mud1B@x ch\\nգ(6Hx;vmHoS7n*aرa ѧux7 ;5 qU:GGH*$%OHLIƔ߅,''Fix ch\\nգ(6Dx;vmĤV^F)CC1L`x  ~@'OnYAx  HV=0:>+\B>xQ XǎE`*7
s@Pᱫi
%ۺYe'#\C)7TeP+ȉo7Mۓ݉$zxi ;vX< _s钛=gOH &i2ey΃ XC&=x;P\CLaH_ϼbs1B6x  H5RJmhṿ^[\xx;vmHiڈkǄ]1Lxx;vmHR:ڛW=\ƴ0-H D%x  HA(\HTxQ &%?:a
՞@C{h3_.ֳTN
P1mEz(&`xQ  &i2ey΃ XCCO4EqWYf
ݯ)Uo2#S=:0q#u?xQ #*Jx)1C/Co c1dnYШ}ZEo ?x;vm;${OT673# Sx9 HXn=?CPj~\Cofxixp[79cx8 i	-++KqwFiES\*x;vmMpZ׏xVx;99 Mwx  H&.`Anȷ\O\la&x  H S*vڦKg\w%Ux9 HY2'z@Va%*N\CNG7z^cx;vm٣4XOo"o7%&* oJx  HH]6eg	E\Sx;vmȻK5Dz{|2n]xrs &" x;vmH̃-),]jrs p-x  HmBFONeR8\K\x;vm6I.k<} 6$7 x  HWqJ`K
0\=
Ax;vmQ/>_E{~^ *nx  H7ETJǹ#W\px~ ;5 qU:GGH*$%OHدTaJB-bֱF*j<*ylP=C_GC9C}g#}2	+pG-\W'ĭ]
&3*.}xN ;5 qU:GGH*$%O y˵ť0Z*W'ĭ]
&3o"jx  H-;`Dixζ\5\rx  HH]6eg	E\bxUyPWQX
(TX (Q!ƂDp*dpH$q@DQ#\Z/Dt@AA`VE6|o~M*pB 2g2/<ѧJgjjR/S%0嗢]f]ChG!=D|RnvL=λb  :>.fDZω*+[yIKJK(Rp}YuCSIbȪg_((zv4ՉWMTـ`KIe_Q}1tiX&?$EސMˈs_Tܖ6ɚː(2|=F_ iyUHٟ]
"<,}.ؘ_MAiʹJ`w0VIڽ<uj~b~aJ|!!`@jUӤ)i;ڗW}?xMz|3Y9'M쮩3ιOeM/pVGߓ]/g'EJEk :8.ըؐ1ڃVcɋ=qzuNqu9*`˦WҎƄgh%1w$4h9EO=?oٞ|9!z9L5( :vq zSRJj4$B2wa[dLų84Crf/ɉSw8nȞ6<&Q#FF^t<fѸP/OO	M44zeĉh|w$ll:ÙAdbZ=jRX6etn{W?ֈGBJ5z߉5y29<AE#5;Ms^i№e4Q+;[%$[/攆Um#\}l-BUYwFk!O`wl^ەtuO%0UP
B{?F,~<Gją!)~m+*)Z^N|ֲ`y
7$.Ȓ2
f$;V%iUB$k%̦_q4Ra mJj.R6e_¸mN]c&MZvKX
}Zj\oeo_M=wK:j6ٍTC$}WIG͖m-_l(%JX722O9 /̭VQP_ة;cDx\2?_c9nw8_40000 BasicServicesKit e @@*w1r^q2:z":-אEH=E+D1{2s6y!OiwVn@~pI:Ohm61p@C㓀(u8Uk@M-cR/[JdX8ύ9ktȴ ^J340000 hiviewdfx KCO
 }+K	ج7Q=$c&LkB uǓi7Rɍ=|O+Ns49~c40000 security `Jx'=GQҹdyxz2¾7jhC9ƛh=40000 web 53J%%ei1 ye!vx[³gC{.m5o6(~	LK$x: lg{l PLx9bBCE(54xx+ZIFrh|Ix  WUYΟU4hWx >l-aiCjRKgԔqnm*}A;nM8,r-EUvWU40000 hiviewdfx <x'2Ņa,ړ7z׹/cEީW[&=q-i>f)fĸk=L;DU{uEf`tV'x 2}-bp T^N*F&ڀ\őӪb&X(nliRr]v7GARuYM- lyg̉rX84`+omVZJ40000 hiviewdfx qI%ܻ7c3zsǮn}}/i|]y*dOrɿU{uEf`tWl	Qx c]9ݑ4-[6qrl"58멧cvCMu1RtXƽAIgf%s!nt>X9N[Ek5#oAWxRt?iIp{kOi]	S(\SUE+x |]e @@*w1r^qr=E+D1{2s6y!OuRhLìorx|MB4T"A< f5ݯMgJi>f)fĸk=L;DU9x[³g#xF&j09< ;x p93A9s%<qtqcM8Z'4vgZK]40000 hiviewdfx KCO
 }+K	ج7\3*do-7}iRɍ=|O+Ns49~cUϩH<aYxz2?NgP>Жao40000 BasicServicesKit 9ݑ4-[6qkܼ?3ճ1
һHl"58멧cvCM2&Tx!B)?&mOg{l PLx9bBCE`˚]M-٫uL̌rX8јk'Cnޝ40000 hiviewdfx \݋)14	7\9|$s؏6~i7Ip{kOi]	S(\S40000 security Et-һXe:~-w~xS,gyvz@Mmxl l[A+[H?n|Jsܳf%s!nt>X9N["A< f5ݯMgJiIp{kOi]	S(\SUs--x[³gC(+Kԝ"T2nUEm؜ɲ a*[xm lhm61p@C㓀(u8Uk@MQ=$c&LkB uǳi¾7jhC9ƛh=0Wx[³gC(HɮV_6}m͙, }[xl l,R9J7ƈ³NT.w=#Q9ȓ7J_
8g7i׼+
xHpxF0f{x; lߴ%|;k{i[MN4]^~#i&sIx[³gC(+ҚWt=-co5{s&nF 3x ]9ݑ4-[6qrK6sXŒȳUlG"ñu1RtXƽAIgԔqnm*}A;nM8d.eghJ=K40000 hiviewdfx <x'2Ņa,ړ7
ȝnS &&iIp{kOi]	S(\SU{uEf`t\p x[³g'VRwO>*v1aGllr 	-x c]e @@*w1r^qr=E+D1{2s6y!Ou}1U͂u2WMo>糀f%s!nt>X9N[=iiA1k4{i>f)fĸk=L;DUτC}Xx[³gC_kKe"ҋLK&x; l-aiCjRKgrh+$ڥpi@Px[³gC(B )NOvwNݞm9e7# ]~x[³gCaF*w{oO% &c,x[³gCHk[?Vh(tGLK
Zx Wl۸\#AzPT~tr]v7GARuYM84`+omVZJ40000 hiviewdfx qI%ܻ7c3zsǮn}}/i|]y*dOrɿUQLxT lm]FѼ5fZ'4vgZK]г{uEf`t',cx; l0f-=ya!RH$pIBŷk=iPIx9 kܼ?3ճ1
һ-aiCjRKg,,sx: l^E؆9SA8Hztug=U9S6(F]x*<xl l-aiCjRKg3A9s%<qtqcME}ޞW5<aA#7z׹/cEީW[&=q-i0Dx 4l[A+[H?n|JsܓԔqnm*}A;nM8%s!nt>X9N40000 hiviewdfx <x'2Ņa,ړ7=iiA1k4{i7>f)fĸk=L;D40000 security Zup( ߚ½x\Zx[³gC
HIimS-g-6Әۗk ۄ`Ix! UU!牅ӐL'ZTi#Sx[³gC(B )NOvwNݞm9e7# ]SxR 2-	߶ff48ݱF&Mr#Jr	˓ lyg̉r&Zx[ L4IE:u-iW8F40000 arkui R*w{0V.C\ٔtz#ɚ:@HŤ2LKi&jx[³gHJ2SJ
fs%-ڜt o-x[³gC(lWgT0F[-}8!ns&nF Zx; lg{l PLx9bBCE0Y[ivx! l}lFҟLhYtxx! UhįQ99ˍγi	C'x[³gC(@Gb9G`	ߜɲ ˹Xx yl[A+[H?n|Jsܳfꊰ5`ƶ<[!YAOZu[=iiA1k4{iAl ;E4ʮEa|4zWܷư!|*IQJ~47x[³g3f?wnO,Wr6f/f-& DCxC2?NgP>Жao40000 BasicServicesKit 9ݑ4-[6qkܼ?3ճ1
һHl"58멧cvCM2&Tx!B)?&mOiלK`~ȟ7;Cݍ꓀`˚]M-٫uL̌rX8јk'Cnޝ40000 hiviewdfx \݋)14	7m=us1iA%IV\"K"9L̓7Ip{kOi]	S(\S40000 security ׼+
xHpxz2{uEf`t40000 web S,gyvz@g2x: YƉ
0]jB!F BREo<*@P5BH{dx[³gC(%Sgxof_$`Tȥ͙,9.x! UBhB4kg\ѷJi=&x: üE^]1{uEf`tVox! 
Mm':Y&ܳ*	jyx:  uDHsYV424?zWܷư!|*IQJ~4 hx! llJr 8Ab^x K6sXŒȳUlG"ñuB~ivR'},L:䓀ZU)?pBEcT$ܓX8à@C`%8G40000 hiviewdfx NT.w=#Q9ȓ7Xs4f$%퐓i7Tt@i 0wu40000 security ׼+
xHpxdrx {l"58멧cvCMuߴ%|;k{if1xU6@c[EM5㒠CC`0D<iIp{kOi]	S(\SUP=x[³gCȏ;;>
U{WctSsLK.x[³gC(Hf轏	"{5Z\L݌ i[x[³gC(H{b&ӾlvL݌ /Zx[³gCyue36Jzi	3 -x[³gC(H{b&ӾlvL݌ /-x; l@DU64XKV;bNEfà@C`%8G*vx! à@C`%8G*/x9 K6sXŒȳUlG"ñ^{+GolC)iW~vxS K6sXŒȳUlG"ñu*\[QxT&㳀f%'jwTe5*n(Prx[³gC(WÏe/ftXCTC,͙,
 x[³g3f=ut.uͿ |Nx! 
<x'2Ņa,ڳj7xT liלK`~ȟ7;Cݍ곀f !-HWnזw̳j׼+
xHpxB&x! 0k"ݧ>Taf9DJx[³gBȞޕAfWe-X rvx[³gB>*4;8h(cTt5ncfV Q"x rL4IE:u-iW8F40000 arkui R*w{0V.C\ٔtfg'Z8媽d3[ZaK<3;i?5щG[a>	h=>x[³g}Y֙Du;V^VYkJ	LG)1lx[³gC(lWgT0F[-}8!ns&nF x[³gCۑjۼCmKQ\i	3 Hx[³gHʳ,2ɕnvay <vx[³g
V+6N`y-bID;{X3 {'#xl lߴ%|;k{iNT.w=#Q9ȓ7EM5㒠CC`0D<i׼+
xHpxF/gx! јk'Cnޝȳ*3I0x[³gC|Ya\=3LSgnܰsf ]x[³gC(o+Qf
b|͙,
x[³gCZbAf'-ٿi	3 `8x[³gCHU9;}*-;%99nn`Z <fx[³gC
s|Ztb-,i	3 
x[³gC(HEӤ5rd'=ӹ9e7# Bx: 
NT.w=#Q9ȓ7J_
8g7i#kIx[³g=13z\a(r؄܏Xؘ svx[³gCslYK2fz9% Zxl lB~ivR'},L:䓀ZU)?pBEcT$ܓX1xU6@c[Xs4f$%퐳iN1T[x! ɏQ b8Yt
*x! l~?J蹋ʳ]q;xk 2 |9{lSL'u]یF&$JS?ǧwsy#NUMVSX[
zgm 2h5xS l$JS?ǧwsy#NUMVSX[
zgm_O'*x  dlT6 B.=ХxVFx! 9sy#NUMtvx[³gbfI#:_8R5yk̹L }$x! ٌ/~ۺ*.Tx[³g
V
sGn>,`@= /x: јk'CnޝȳHxH|ĿvL,h$x_ 09-H̨3
쏃E,240000 multimedia AX	-q)tiĂ\5f`jn_'}x[³g'VGt<twv,Ƽ j*x! lP4mcg1a9Zx[³gC"q\r&!!% x[³gC	%?hj}.t"{nLKw6x {2NgP>ЖaoF&R*w{0V.C\ٔt`˚]MVuy(j$ïaĳ;vYlJt{rA$po;L:x! yFC!񇇠rؠ4,'jx[³gȻ4q&*RmGf xD^x! qr^'o=3lLkC x[³g'VGt<twv,Ƽ j	x! 
SԿ7.q\."x_9x[³g%#|W>*/xУ)¼s/u& gx! yFC!񇇠rؠ4,'x[³gCH?3׺)50|H|sf 2Ex[³gT3+^5^Uf Psx: lbzR?hqJ7a`˚]MIx! l$JS?ǧwxx[³gù,;VhQ/ݳb=V ܙx#x! uy(j$ïaĳmzx[³gC(HFծ624tL݌ =(x[³gH]E)KceF93M|fڬ Vx[³gAg_roY	x[³gCHwwCߵu]VLK3:2x[³gCȮToOlt"{% `x[³gB91C+c^׷z33 'x! l^eڻGYh>.x[³gMy=GÔtY Z3ux; lZMBm* LC(AF\k@xO UY96]^i66x! URLSϛfNسiwfx! liלK`~ȟ7;Cݍ곀x! 1xU6@c*$5Fx: zZU)?pBEcT$ܓX(<]&$BʞT1*xS lB~ivR'},L:䓀ZU)?pBEcT$ܓXs4f$%퐳iM#qxz2?_c9nw8_40000 BasicServicesKit e @@*w1r^q2:z":-אEH=E+D1{2s6y!OiwVn@~pI:O-aiCjRKg(u8Uk@M-cR/[JdX8Z'4vgZK]40000 hiviewdfx KCO
 }+K	ج7ڹRHNo`֓i7Rɍ=|O+Ns49~c40000 security `Jx'=GQҹdyx53J%%ei1 yeqx: zZU)?pBEcT$ܓX1xU6@c*xl K6sXŒȳUlG"ñuB~ivR'},L:䳀fà@C`%8G[Xs4f$%퐳i7Z3G{x! Ǵe!';.oGrѳ*U*x[³g3f(%gd&nͿ 
Xx; l*\[QxT&㳀fkw	Cf#0i#$*YjJx! à@C`%8G*yx 2_c9nw8_FA2:z":-אEniwVn@~pI:O P/s[m IԔqnm*}A;nM%s!nt>X9N[
ȝnS &&i`Jx'=GQҹdyx53J%%ei1 ye^gEixR 2_c9nw8_F4cR/[JdX_f?wJ`?*(Jx M2_c9nw8_FiwVn@~pI:O:'m9uFY\A.)"%寐r5:`M-cR/[JdX%s!nt>X9N53J%%ei1 ye>NY"x[³g3fWty%Mwoc_ZL  0#Px[³gCrC%[NY1wݬLK0~x ~	iwVn@~pI:O7t'&&: j"%寐r5:`M%s!nt>X9N53J%%ei1 ye17:lx 2NgP>ЖaoFlx[³g YS˼ȼcPٟ* )x[³g3fbżv?{DH^|_ZL VxT 	iwVn@~pI:"%寐r5:`Mo$℧7u@*)$x[³g%7.y;֗wFhٗ: tx! _f?wJ`?*Tx! l*\[QxT&㳀x[³g'>YE?Վ۴/s,; ɎT2x[³g%}iѫEԬ2w_Pٗ: `x! 9<^Ö6A˜UZMx[³gCCœD>F2Lhk>Vnsf ח;>x: l P/s[m I`Jx'=GQҹdyxUx! 9 u6º`<iMo)'x[³gC
U[V!wu4aXW
5 G&x[³g%7.y;֗wFhٗ: tTx! U
ȝnS &&i xS 2:z":-אEԔqnm*}A;nM
ȝnS &&ic$bx kܼ?3ճ1
һtrx[³gC(H{b&ӾlvL݌ /=x! lH
(I
Ǵ|Vimx[³gCo'^,|!]ɴ;ksf .^x! 
<x'2Ņa,ڳj/x |]e @@*w1r^qr=E+D1{2s6y!OuO2(Yn69ܶ?9`D"A< f5ݯMgJi>f)fĸk=L;DUj9rx[³g3fba.&LZqCD\Ϳ LIx! &ь|ѳ*3[yx[³g3f,*S-Nfjb ڞE'x! f"E{ܹlmYQI*
Wx! 2[=AzK{眚ڳ*%xz2?NgP>Жao40000 BasicServicesKit 9ݑ4-[6qkܼ?3ճ1
һHl"58멧cvCM2&Tx!B)?&mOߴ%|;k{i`˚]M-٫uL̌rX8јk'Cnޝ40000 hiviewdfx NT.w=#Q9ȓ7\g9
53AwCii7Ip{kOi]	S(\S40000 security ׼+
xHpxS,gyvz@0y9x2?^gEdyi׆40000 BasicServicesKit 9ݑ4-[6qrK6sXŒȳUlG"ñuwo_sEtI}IRJԔqnm*}A;nM8%s!nt>X9N40000 hiviewdfx <x'2Ņa,ړ7
ȝnS &&iIp{kOi]	S(\SU`xKx 2NgP>ЖaoFyx9 ]9ݑ4-[6qEk5#oAWxRt?iAx[³gC(keO&8W,zY~s&nF #ox[³gC(ȩ$9Oa 9e7# ԋbx S,gyvz@?uHx  A>f)fĸk=L;DUOwx[³gC(+gN<o;S&0LL݌ %xS l-aiCjRKg=iiA1k4{i>f)fĸk=L;DU%jxS K6sXŒȳUlG"ñuwo_sEtI}IRJ
ȝnS &&i)px; l1RtXƽAIg
ȝnS &&i<:x[³g'>YE?Վ۴/s,; ɎThx[³gC
U[V!wu4aXW
5 Gx  dZup( ߚ½x6x  : G(cM;o*"Mbex[³gCànc{\rx% ޷']x[³g%p~+Fބ;י [x[³gC(keO&8W,zY~s&nF #x[³gCAW_qt*h[fc% 9x9 08N܋if)z*ǫF^Ek5#oAWxRt?i.x[³gC(keO&8W,zY~s&nF #/xk ]e @@*w1r^q-aiCjRKgCrR\LQT,Ӟ"i>f)fĸk=L;DUϬ/zx! Uʊ|	!]I^ii tk)x: lq&PuZZ w=iiA1k4{hT$x[³g#HBKYݞuK:hɡ>x ]9ݑ4-[6qY@x[³gCOv	γ*i	3 nx[³gC(ȃP5-:X̰uUA͙,<x! U}=~v87yƳiwLx! UKJN\?{0i|x[³gC(kt.-bؽIL݌ (v*x p9(u8Uk@M8Z'4vgZK]40000 hiviewdfx KCO
 }+K	ج7Az{F<;^HiRɍ=|O+Ns49~cUW>x[³gC(HɮV_6}m͙, }8xk 2_c9nw8_F&JҪ*ngAWcR/[Jd.YT/liF3!2x9 2_c9nw8_F4cR/[Jd3Pzx[³gCHÅ-l}xPy:msf [(x[³g˻oIKk:bbTF{ ǫTx9 Um:)-mfi!#]&1a8Z#N8 rU_odx[³g3f6A ycE7fy 0x[³gC(⥋vtsr7;FL݌ @x; lڀ\őӪb&X(nliR!|Bη0e>iY	Jx[³gC(K.U/2#[L݌ wx[³gC(@j7LSyqiK͙, $x! UywWTσi*$Tx! UG泾/qi:x[³gC("Y-lT?Axe͙,yhx[³gC(,f|+k䷒L݌ g.x[³gC(ȅMΧ٥/%duL݌ #L9x[³gC(H(wƮ߷.[]z@L݌ 0xT 1uW)꿶,,H	TCDE>B5tH~8f`(dx[³g#H- }׏=3}Ne= 9x! 
bXMC=<FAx! lS`YgLмXqx[³g˻oIKk:bbTF{ ǫx! O2"Mq"\ ё*tLx[³g3f˕B˥7tVm"Gp/f-& ^xT ҭsC2}wQrEZjb35X*̂BF%IV\"K"9L̳f)%%yx[³g#לN77,P ܂?&x[³g#HucgGi:f|ur(y ]Sx  Aqt
d0=3^Uy%x! lJҪ*ngAWa#0x[³gC(ȏcaJI(]QrݤqhL݌ Mx[³gCl~ۑn% L{x  l@W-ښ*x 2_c9nw8_F),x: )TG>GDIh!ȳ4aHR;H#8Bux[³g˻oIKk:bbTF{ ǫ!x[³gU-3wi# OxS U̗crt?AWo}CiA)TG>GDIh!ȳ4aHR;H#8B#xxk U-o`=mZ&iA%IV\"K"9L̓|]y*dOrɿU{uEf`t/Xzx! U
lh{QL]*big/x[³g#"إ=j;-,(Me= 
-*x[³g}@E3LwXwW1 3S2S3KF>K`+m,X?oB6޸zܾL4 tkPg[&ɤr'vVǡEEy%{d.x\6h'\wJ3NMhaYtKYD>)qrFws2+L2>o:d_f]x|mF% :2sRsSsSJMs>b3J:i9I9	/_\-PEW&Gǋ̹yoHׁ(,L-OI`|egyi=fc| QWPZZx읎2܆w,|-YJf"CKn]l2מ叧nDV6nߙțNwv&kD!/%;$(=X/=/ae9y6.,{oy%EA>Գ?'2KOe_$#r4Ң̒J/u;î~;1#&"k}%mk\%)o;M OHC-OMbZ/u@:#s3o ;6#:x C]M4w(PEyBq4agK@j`40000 arkui pe"΂>KExSt$UǹbʖlMMAHwU̘[CW5h;⟂Nvicj{pfC.[DVJx[³gC]׺r7S_}% 3xm lpe"΂>KExSft`wAT$/̓[CW5h;⟂Nvicj{pfC.[DQ2_|x9 ]M4w(PEyBqagK@j``W<x sL4|7SwƞE40000 arkui HH:|O|sQI"tUzM55-A/Rb ߳G$vF)
],U{%;QdxU{PW؊[
T*	!*<b[$+ݰ	DD@Q˨tx	
*`PPQ|"2"U&n{;w=>W1(
򘲜³=;nlyx"6U.	YvdmEO%s,*MK$A0){/ͷ
h.^QR*9C(X?"((o&;5ǯ趻<;>b(4X$vmCc*ppJT@vxwm>{kB?0 b tWll2?nt6#NKyf蓏XA2W..NE_96V~aX[F&p>>pE*߃ Ք#
xk\ PTYn*tNWtD}8cd/{2 =boբ)7ϖxoB`iZHLĵAD'9=
j,R	`0
q/#TMng{6>(r1=3Ǧ-?LSٺ$ h]PFv_S>Lu]}Q*0ϐ$N*ډ?Ĺ=^=#b}4rB A:b?dO<oκ]u0)(RmUbL[['D!PH/SXʎ*msh;b$L~:ǒ;Ez%re
SfێAJ/dA@VPŇ~xjRr49A8):8/PIm;5F@Ar)ϭs2C5]|uRDq28cA]ff2ϗ??ɂ5!W02\m}[R"9VJS`j:r^\8;/&!뿈D }(^v fF-ϦwK 	DIPJfqSt_W٩u6qQ6@$J K15qsc\?`nI7VvV喹fǍ{Ir(t2/{Uu]PJ=aҤ7C8
lZQծ"ꔶ4Γ4
+(ӚUk{/Ilk,V] Mgd*xQ'_h0
0
9X%os^,>imSdnZo6gTZf]><QQ$Tq܋Ϙ)Nnx
̞q)<Wl4ssŚ@sMF-_ %t $^x IL|7SwƞE`^i[[1أa\340000 hiviewdfx jԇ\c3~ڧC40000 inputmethod 73Aΰ9DRBΟcއw`3Mݴp~?VȪX\^xWMEx: Xe:NSX-zV->Ywj{pfC.[b	Ix ilZ/E8[^2ve_?	w|($|,&X55-A/Rb ߓ[>CW5h;⟂Nv40000 multimodalinput 7~YgCCm8?mx;sg3f/6Le{X{xg_L x;sg%L6Ϥbn64^f_L mIx! i[[1أa\3H yx;sg3fsԄ6MYZaIͿ= 4 ^x{]k}YͿgJ!0H0uq4H7/}R>7?
U40000 arkui I,p5v<-v6Toi(|[i],# lix5Jh> Mֳ8'
M-T=&ExX8ԭaS[o_߽m,40000 hiviewdfx )>2 7v jY)xiA6:%Ht),A640000 network RBΟcއw`3Mݴa'Qv8yZCUo.2n&KHuBn!x40000 web SS:pυ∫kG6Hqxp lP+y<J2}*KToi(|[i],# |sQI"tUzM)>2 `v0 px L4agK@j`40000 arkui pe"΂>KExSToi(|[i],# t$UǹbʖlM8MAHwU̘40000 hiviewdfx )>2 7/έC( 1U[qi'Qv8yZCUo`[adx? lM7U>9Ru)D͎)>2 `F2x% 
 		g%>3OY`kfx;ĳgɏX |x;sgCE.zӫ?NvL,3`s:tvs& e/*x;sgBțEEϯ!BĺP7J~*nw%`($$嗤&dyg0[sXܬ>VU>Dg3Hd_Fp\8yZ|eAvw69qዀE:^_4X;=|W6q#L.x]}k{My?(0|ld$2D|3Ln`Q9].Xf[lUL"?]P|җK&׾]8ٗYл.jsVdif8 -3'571/1=575!gNW6uDazN~RbC䳛:u)̓^=ҋY( #3A۽uuνz~̲
/\鎎~ýXynQku̼ҒԒ+3|۳ט|e qU9%)U;Sxg7-|HN0DsPqxZWodKcfKtLy_iE'?`Iq=QҩiVV7~ܘ`185(]F~7L=ͷWO$8^iE_	km$ZcwB֋7B6s	NsjxLgq[UO !A1$x; l}/ v7̞G**
rCCg⧮ifnx! l}/ v7̞GMx! U**
rCCg⧮iYNx[³gC	.g2gIH|wLKM|x[³gCɲ	![c=:=Wr?Tl,4a<iG6#mb 
IAH眙}D57~F !	]x `l;?*<-Ƚc ]w|($|,&_[nŢEw㕱iAs".$<աS]42#բfGfĝ740000 web PRl̛%mo?/hnñH;=x[³gCoyÔ͏,nK5~fi	3 .x[³g'Ve-Wu	I?2llr `ix[³g mVo}Ա:{( 1x: lvT]H0Iry
x8T=&ExLzx[³gC΂TqsM7_uS-xsf ܥwx[³gC	.g2gIH|wLKM$x! Uv jY)xiTx[³gCoyÔ͏,nK5~fi	3 x; zw|($|,&:%Ht),A6f Jx[³g*DYN;kfqr>4F 0x[³g'Vyj](uڴH	Ŋllr ]xh t`wAT$/̓[CW5h;⟂Nvicj{pfC.[0SS:pυ∫kGK1Tx[³gC:׹r+_.]gosf $)x[³gC(sxSf~4i_G3L݌ .x[³gC\oZyZ;c% @[x! j{pfC.[D~
xR ]M4w(PEyBqut`wAT$/̓j{pfC.[D)ax; LagK@j``MAHwU̘*OIx[³g%HVU^JV>y<f_L vx: 9|sQI"tUzMq|Ag-`eZD04 *=Hx! MAHwU̘*wx[³g#UʶnrlڼqWP Jx; lpe"΂>KExSfq|Ag-`eZD04 *@x[³gC΂TqsM7_uS-xsf ܥBx: lHH:|OcO&VO-#MAx! MAHwU̘*qx[³g%ܓA*%lSNw}E=aw;י jx: zT=&ExCW5h;⟂Nvi1RIx! zB8HI	 γ%Fnx! VAC0L5*,Qx[³gHHLhMӧ?'VR
, Lx[³gCHE89eRWK~g \x[³g%|Λ5Yn\,TZٗ: wYx[³g%|Λ5Yn\,TZٗ: wSx[³gHHLhMӧ?'VR
, kx;sgCH{эƏ/'?,rа3 4&x~ lt5[3cr
@ЀfL3pTH{AumǉP+[>3Q3uO0>^340000 multimodalinput %L쀵τܨ[£س<"&x;sgBȹqJ&L[7nuko:TrKK<V PpI,I(/IM.,ar
Y}]E~uӧ5yH{эƏ/'?,r0ILD
'wb8oʳW14|tiCJ_/\jvd_zoQ%"^f>g7uS"'zswTAQbAFf2CS%5*ٻD?"#,3<%>Wpk+Ve[o~@!3$7$#?aw/+e1*4$375%3U~[̖
k_-ffB^Jv|Ib,aOtjڴՆͷ_77&A,NM.-,d"MG@j<,뭾HO`-H8dϫj G<+Vx;sgC(7ǎH=Z+Z}s&MF yZ.x;sg3f/6Le{X{xg_L x;sgC(sxSf~4i_G3L bE
x;sg3fs9U+<v٬~w/+enb 
9%)QZOc/Y赖
ȊSs2
JK^[>9{cPK{C3ĢԒbLBJz׳Lf W@HLx;sgCɔt[bjQ^hzҪ[C y:x;sg4&s?*2/efu+N^/xPѥn+}9drم}ofe*& P+(-M-OaX(|~c<JCTd榦d&2ݠzF9|ȊSs20?~e|sǚ'\Q$vݐaeE<M`-H8dϫj h}x;sg3fk%ss	{"7_L 
+x V]1L`xbࢱqJ}7Mn  :icZrWXS;G/8l.Ƴm Rcp[40000 hiviewdfx %;3|#=87oKfhڕr=JMԳiJ8x;sgĺP7J~*nw%`($$嗤&dyg0[sXܬ>VU>Dg3Hd_Fp\8yZ|eAvw9Qdjg$[Ykf5g'NuJ?WbV~ؖ^X̰s~wg[ih"#,3<%>Wpk+Ve[o~}HبKv:zBpLdcfKtLy_iE'?`Iq=QҩiVV7~ܘ`85(]F~7L=ͷWO$8^iE_	km$A#riOro[\;X |ȷx;sgCHE89eRWK~gt '-x;sgHً6ϭU>wr,*L .x: 0KQ/y?RI{O3GD "1 9x`IýOcHxʜ*?xC]1L`xbࢱq:J}7Mn  40000 ark_runtime |7SwƞE`6# ɺDjnm/ťs"'}qMVcZrWXS;G/8l.Ƴm Rcp[40000 hiviewdfx o61qb"lē7>8M\JcͯVy40000 multimodalinput }ԻhF07>)U9?WHdAtO>s}GϓD2Er3x! 
P{*:(bURx[³g-DnuxWn^# Fx! <f⭄c֑h{2*&vx! Xԩ͎*R&x! `j;'+Y;ֳ*^Vx! N{}7Wq41)*8x! x#M%̹%_*y6x[³g3f@2ӫ'EnY	 dx  dsG=> qxsx! 
uKH{֘s`L)xx[sg}zF޵)קj]ZU q(8%g&e&{g0<=mӕ%Viw>?%['-}K{~~)]bFbQv|Qi^Ifn*CBNiOoӹ|HӲJ3nL]iڰɞynԚ߭
SS3R3JRҀs7'簚S'	Zg89>$}/׷o+V煍qҗ8$-3'571/1=575tA|,'*^'Qκakwo9C7 pFfYfjyJZÉR='گU}-'xy3M>&o_v Dsni0Ss2
JKdؚbq{iVq440031QKɎ/I,JO-)KdQ|i>k5ez{BK-)/f`jڱAd/O-Iֿh.<Ds,SkX8985(\SLs+O<V[H/
V
sGn>,`@=fFS?DӞc_=]	bhyjS%fv|u睩nS $xųg䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4ac2\_5MmL;E4Z{=cf;,̬+¼<ݼ2*ԫ?+ef?|G:P%dd&3Dh"U~(ꈷi\,L-OI`KZm#R7QWPZZnvʬT[푤fQ[SȰP:HCӓ㝓GgN"ȜW}'Rkp`ںf&&
y)%E%zy<>Di7s>g 奖e3FԴ鶵SץA3&&]b_ۯpe]WO ZSK2K*.&xUۺ/twढ़-)&c2n*Yîip-OMb8kjcbUw*Se Q$Txųg䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4'*NvPQ%s"g&wNƴSDzos9Voqm̺"˓;'㯫AR&a6owJح-Ϗ?H	GzQbAFf2CzϚ&Re釢x˭p̲
YΏOpT>)uc͎5y%%)6^|м_oǙXJIje9%)g^X{DxL"ȜW}'Rkp`ںf&&
y)%E%zy<>Di7s>g 奖e3FԴ鶵SץA3&&]b_ۯpe]WO ZSK2K*.&xUۺ/twढ़-)&c2n*Yîip-OMb8kjcbUw*Se o$!xųg䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4'*NvPQ%s"g&wNƴSEQ,[\YL˃JM̬+¼<ݼ2*ԫ?+ef?|G:P%dd&3Dh"U~(ꈷi\,L-OI`X$){Kȿf&DMf^AiInjIF~
û4q&*RmG5DYniNIfnjJf":׾)V;'x<5糈%2Uoߠc2B^Jv|IbQzjI^z^&-ϰ,Q\驥Ey%E'5vmjus`LbjVjɤ-|ro[!ZSK2K*.&xUۺ/twढ़-)&c2n*Yîip-OMb8kjcbUw*Se }$nxųg䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4a-KX~wcۘv(ek+k3ww\iyPiuE'wO_W%zG{L>lVhq [G[~Ăd7`hkE9Y̲
ko(߱+(-M-Oaxaz;ZeVHR(-)MMLd>{@7*s'D\ǳf|Do?ѕ[Sֽ040031QKɎ/I,JO-)KdP՘%Jy+==(/<(7⤦NRퟸ.}L7Y5|CMJ-EOMr#DkqjriQfI%
u[%ruUFM>+}U<bIgM,Zz#!Cel $<xųg䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4a-KX~wcۘv(ek+k3ww\iyPiuE'wO_W%zG{L>lVhq [G[~Ăd7`hkE9Y̲
ko(߱+(-M-Oaxaz;ZeVHR(-)MMLduӺ>#yI!<
['gKdΫ޾A])߿?8e0mC3ĢԒbL[a^_YɛSK3RKz#Njt) ԙzX7ԒI?Z$0B&eT2]LPu_0K;[R*M^ZeTTn݇].&(y	[p2Ū722Tv X$
xųg#_{
+|iI+ 3S2S3K%UAkECqg0Q9,OCgXMe7_鵴]AwJi [l.EK3n5xyUڿy9RAK&oc)(AqRAENnfiاmZϻ+/ouss#fM7^	u)?!V%dd&3|+EX.BTddeU0_;~F%lX=U?DMf^AiInjIF~
û4q&*RmG5DYniNIfnjJf"ۙ_']Pb.2=ֹ}|Do?ѕ[Sֽ040031QKɎ/I,JO-)KdX91d3.=,+V<(/<(7⤦NRퟸ.}L7Y5LIys5Q~O :SK2K*.&xUۺ/twढ़-)&c2J|=mAl_x,?l1	<5ᬩe^UUSod1dO )*$Wxųg%pgٿyC(8%g&e&{g093KB֊;LEW6`y9|sXQu}<ΰ,ˤoҿkiu@\lI 'ef28,|USdZ]SMƴSEQ,[\YL˃JM̬+ҰO۴wW^L"<LG-n0$vh#R~CJ/J,Lf0y3;A;}VFy],L-OI`vK~	za̼ҒԒw?/>hޯLUfj$5kҜԔD3ӓN.~1\dZ{~s,by7+{ah``fb_XZRɰBsbw;g\<{2XV8xbQ^jIy~Q6CoIMn[;?q]$:Sok"إ=j;-,(At&eT2]LPu_0K;[R*M^ZezǟۂYXLbDoyjYS˼ȼcPٟ* &/=#$xųg%pgٿyC(8%g&e&{g093KB֊;LEW6f4_鵴]AwJi [l.E3K36dfϪO[.9Wj}-Vv8yN/Ty:y;̬+ҰO۴wW^L"<LG-n0$vh#R~CJ/J,Lf0y3;A;}VFy],L-OI`vK~	za̼ҒԒw?/>hޯLUfj$5kҜԔDrzsSf>1s93IM"ȜW}'Rkp`ںf&&
y)%E%zy+4'qs{ų'eŁÊ' 奖e3<||J&ؘ*NcM2SdRGpGE"Ң̒J	^&ݽxigKJX_w[=)[q-OMb8kjcbUw*Se !Xxųg%pgٿyC(8%g&e&{g0T||?{">63|xcmF^K۵dxbKZ1#(4S\>^u'Vl<KiȇNL<<zX\NnfiاmZϻ+/ouss#fM7^	u)?!V%dd&3?!@̃3ק7n,L-OI`vK~	za̼ҒԒw?/>hޯLUfj$5kҜԔDee;S<ka{kYoпDWoNL[D!/%;$(=X/=/aĐ=vϸxd8pXĢԒl/>@W)pTbIfLʛcHRxPY\ZYRɠt3U@ǆS_#mXg55kj;] `+	qx alkn~6pR!W"^WewGWAzUCEocξB0[<%$l@<Vc*;a;~>F|Ӻ>#+<eI!xųgĕ9;JzܝokC&@XZTZYPV|ڤoፅMWz-n~RV0-iČĢLOq=/xYԝX~2l,i6"AW{y빓uE)|sʋ[g\4Y}#F+u_ذY5>ĪĂd![Z]8d(yp-e)iYs3*;%U{1DMf^AiInjIF~
û4q&*RmG5DYniNIfnjJf"[Jfd?Wg;l|Do?ѕ[Sֽ040031QKɎ/I,JO-)KdX91d3.=,+V<(/<(/6U
64U)uk"إ=j;-,(At&eT2hr7L=бw[/v{:"gM,Zz#!Cel ^6xųgBȬbwS>~%w3(_.mW2PZS9[ݎۘv
Ydu+!e3TY
O̬+%7ބ,ZLFf='a6?x`'$kJL* BzQbAFf2"<W<v\_ɜ\e)iBufg19mp̼ҒԒw?/>hޯLUfj$5kҜԔD5vYvO?KYoпDWoNL[D!/%;$(=X/=/aĐ=vϸxd8pXĢԒl6SɽXObIfLʛcHRxPY\ZYR`LމIXGWoN`u3D\gǗ<`w(p 
xųgBȬbwS>~%w3}{`cr&oc)3(dխ$/wPe*x?ar3T4{h3՚y̟|9~i`|S'M3?@sB(ddeU0mwmsଫ㼶ǲ	1Ad䦖d0۰yA~gb2+V{$YCTd榦d&2|i*wx[!zk_{,by7+{ah``fb_XZRɰBsbw;g\<{2XV8xbS^jIy~Q6)},Otd1$3E&ͱK{w$ZD)Y<Q(,NM.-,d0z&e$,ϣR'}0g:"NUسuK\0;8 U>xųgBȬbwS>~%w3/h홮',GX&8OƴSgP"[I^)\ʲU~ff].i&|e*f25(?sDsOg~d: P,L-OI`XYW)yme[?b+(-M-Oaxaz;ZeVH-)MMLdT8CDLYoпDWoNL[D!/%;$(=X/=/aĐ=vϸxd8pXĦԒl6SɽXObIfLʛcHRxPY\ZYR`LމIXGWoN`u3D\gǗ<`w(p Grx)]dQFE\M@qzYYhKU.쓀X4nto;?Q8 md 2\\Qp7g40000 hiviewdfx &ܼ]At\夓T70џ!BsS6vwn{/ؿȊd095cVNob6!#]&1a8Z#N8 r40000 security 2J?Be-{|q1bfo A:k0|*xųgBFɋt
l
ҹ_. SbqfrpjQYfrjwf	Cȳߧ{)x\8t𿍅M:2/I:pY@[s!f$ef2\41z:/%LiΤĿ:)LcVJ8:lr3Ȝ_!'>K{^M&aظCӶEWlZUbUFfYfjyJZU߅^csdoȌCXE_/Yw´jלnaNz:y>Xs6sK-(madXC3ĢԒbLR&B]v2ޘQ,y%EZ։'>ع	$>fkOe_$#r4Ң̒Jƫ=^okkY8v:*PӦk%S$[g[.Y_g/ J	x elV0xSEAr!nW^U&ܼ]At\夓T71l'6}4n{/ؿȊd02J?Be-+T?̗>9ƨ0*=Jh=x ylkn~6pR!Wf9PJ_{F:>Zʱ0[:>CjCK~%Q}c*;a;~>F|]>H׽X3Ί<o
:/Rx ylkn~6pR!WfzUCEocξB0[:>CjCK~%Q}c*;a;~>F|]>H׽X3Ί<:gxT]2hlh˧e&L*(FJ}q4iҸ\a" %/s40000 arkui ZIj@
4C哶tiL^aG4	;-BnC@XׅWSXRX>mc䅴1dE*0[ |%[z	NX8aFg=sK8c%]100644 ndk_targets.gni 4LsF"sF40000 network *;a;~>F|a'Qv8yZCӺ>#+<ˑJxųg׎yj&n_R@fW&@XZTZYm$Ӑqzyn^k7f4ȼ#&enG=X] !Yuj˱]d&oc)>o''6Mp9YWdίFWmb&r0GX\|SeV뇪JKEC,L-OI`P7Y/[X'
Oa1p61S.l_9˕Y[mE!oSV'(dǗ$e2
3W-8 /<(A:d;7>!UħLcMI=lddWTr^3uӗw^i7E#6_!f&1b?Wmbu!77<{ Bxųg׎yj&n_R@fW&@XZTZY6^+/]!ocmFK;b(1\P/~cE٥r21CD~ed͓1yNȼylz}gk7Mnf+U[~+Ib#y_A~* VedeU0ܗ-oc,CD'OP.i
94-,b-ݶ)UcLLRKSK2J
=w-xcv_Fl䥖e3hY'r[`'ĻJvb3>-;ⓌQk ZSK2K*<x-rs3eIBXBy\ON:(rӇO!zSn+6rn׺g}  ɓ}xųgt^n㔊l.\mj 3S2S3KF>K`+m,hґyiGLb%ŏ{1#(4߷vI8{UΣu7NƴSDgRE_1+%Mkm6YWdίFWmb&r0GX<v}KM`2bu@,L-OI`H踚:Ʀ/\m}3!,"6&(+xbyY)tglLLRKSK2~?Q"fNkivG3RKO}sc]%I|zd1D˖hIFvE
i(5ũɥE%آN8s6J(",ZyI:}8<5Xp+قuη>X] 'gxųgt^n㔊l.\mj 3S2S3KF>K`+m,hvEri_M7/qR<ydČĢL(sN; 3V`6"bdVze)|{mWu̺"s~4ڞj/5{E7IL|9M]j"s8~.bUFfYfjyJZCρKa=os-&
;i=S&gK4w&yӝg	Zf640031QKɎ/I,JO-)KdjGÚm:- K-)/fвN>Y΍Ow&5Xg|R,[v'+@&eT2a;Ԓ΅S+^^$+{:V[Y5̎5ɟX͌By\ON:(rӇO!&1`%[G 
>!kxųg}@E3LwXwW1 3S2S3KF>K`+m,%tkPg[&ɤr'vV!f$ed2>sڠyvsޅ*dH㺳W/"կjX<}6"bdVze)|{mWu̺"s~4ڞj/5{E7IL|9¢ oeHk_/+S*#,3<%{N^D7hs-lm~WuLߟ^<E,ѼnߙțNwv&kD!/%;$(=X/=/#%k鴼fw48 /<(A:d;7>!UħLcM4I=lddWTr^Z\ZYRΞWrgo'V1Fp}|3y,y_v}aI[`jfqWOfFoxuQiۑ-CSn_-Xw\|룎E6-!xųg}@E3LwXwW1 3S2S3KF>K`+m,%tkPg[&ɤr'vV!f$ed2>sڠyvsޅ*dP}0՚Ue'oc)"nNfW-6P̬+2WHϫRs^WttG#,MΏswڣ*#,3<%{N^D7hszOׂV	:W\+|{,buDޔ?ouL6\̆f&&
y)%E%zyYW(wXM4y%EZ։'>ع	$>fkOe_$#r4Ң̒J/u;î~;1#&XDleyKS3;׸J&b53zv{ERMێPhZp[,8l[u.
 uXx[³g#H%ojX%|dr(y q.x! Z'4vgZK]г*e]x[³g3f(5ME[;-v&@YZV0	
G8n1{ 
x WlLZ`nM+FU?=YcF"( U-RVM8Z'4vgZK]40000 hiviewdfx  A:2-L%rp<7,E!znD㫞i|]y*dOrɿU:MH8x! 9j~TH஗	iM
Thx[³g%H}+$5˿W|;י vx[³g%HzOoxzNAf_L 3|rxv 93A9s%<qtqcM8Z'4vgZK]40000 hiviewdfx KCO
 }+K	ج7= /PZCM8h_/}x! 9(u8Uk@MDQx[³gCL;&ntz*{e/% .x[³g%-;w))Lfzw`/u& !_x[³gC(_XִK-'f*?iL݌ Zx[³gC(۫@[G]j>MVߜɲ u;x! c
bC$|AC1ݞr*kx[³gCHk[?Vh(tGLKx[³gsEVF>R/?}f96& $
Gx Wlڀ\őӪb&X(nliRr]v7GARuYM84`+omVZJ40000 hiviewdfx qI%ܻ7c3zsǮn}}/iL+PaJSc2`FQ&*ߓU|Hqx[³gC(Huo,=%&Fhs&nF .x[³gC(#~KaZL݌ n[x! UfX)E8ixLox: 9r]v7GARuYM|]y*dOrɿUϮIx[³g#H%ojX%|dr(y q6x[³g#H%ojX%|dr(y qcx  A\ZSWb@}(zUtx[³g#J/_MWyoݥsɡg?x[³g#Hnn#JO>Xm܂ɡVQlx  A#>
,e̛,ÓUƂx[³g#-ϓThP Hx  AƔ= M[nP(U.x[³g#ɕMfp֓1xkØT{r(y ٙ=Qx[³gCz2{M9}&y'b.Dx x; lڀ\őӪb&X(nliRHa9fPK)iSxx[³gCOT<_~KlDL Ӊ-x! 
bXMC=<F	x[³gC(HI{>)3zgݜɲ y7x[³g%pgٿyCF{ M8x[³g#_{
+|iI+p=V Bx! U.d$ș7hirxT 	N3Ɇ	^F582,94If3icq'0-"Qt<5e"eD"x[³g/>@W)pTX\.x[³g'Ȍ&	B'8{w,q2t,; z>x[³gC(ۙ_']Pb.2=ֹ}s&nF lx! UQمpsH}iAx[³gCȭj=J5~_˥&b$i	3 ޗcox ]y৭BY{4~5NñqQO\x[³gC(=*Leםg\js&nF ېA	x[³g%ȋX6swKٗ: ў[x! U(z;i98x[³gCY~wO-99Cj670-a afx  d)eXߦۓxU/x[³g'VʩE
_niϱ믞.4M ܊,x[³g#ȆñZ2)G6?ɡ3Xx[³gCH},Nu?yi	3 Ux[³g3f̼ɥf}ƼU|_ZL x! lt]5޻1D53x[³g3fZB1W)9f \ax[³gB>*4;8h(cTt5ncfV Qx! U.d$ș7hi=x[³gވv;ݶvJ9H0u,. Bkx[³g7h\i/-aI^Y	 d}xt2?gx(n֔e*NҠIZp40000 BasicServicesKit dQFE\M@q4`lw/wV,ĂE40000 arkui vCOhG0K5mC~RT:bJ@d՘%`M-
^00ސ*s2}6Hp6Zl/vcw,˅40000 graphic QScb7Ġ`~40000 hiviewdfx nE}EA79K'rI,[2ic5cVNo2J?Be-xBכP- Ǥ6nQ'ޥpGx! U.d$ș7hiwx[³gC

u[%r
5 x 2lureJ/aEu±FO<x9 2lureJ/aEu±FPR_p7IX+)$mM
vx: a*'M,xC%fߓ}6;rpCh0T⯳i*x! UKS.f=\n\i]Nx! UR9= 8q@iT~x[³gC(SbMr;Q9e7# n^x[³gC(HU\GG]:?jL݌ b-x[³gC(nbҗݗ9?y{L݌ x[³gC(HK6_	/]sYz<L݌ ՛x! likfxմ:D᳀`7x[³gC(uч78.p\0r͙,ex  aHR;H#8B[x[³gCH9w>IO߮m% .Bxt2?gx(n֔e*NҠIZp40000 BasicServicesKit dQFE\M@q4`lw/wV,ĂE40000 arkui !^wyԀ570֯QRT:bJ@d՘%`M-
^00ސ*s2}6Hp6ZR=Qf2lb?"$40000 graphic IjצK`e	
40000 hiviewdfx H-iI)fD7ֻ̤NDDic5cVNo2J?Be-xBכP- Ǥ6nQ8u:x! s1Rńd_L3x! UNzSSd"VFFicx[³gCHIFGͼ{VNn`)D(o{d{/\k9eu~n]bb 
EfӔfrjMڼ{ӣ9e)iy]k8*8luBLXEHz8_	_^z~L݌ M"xT lYd(oź .Dl/vcw,˅}u(tDˮh{kI<@i2F&axT limav.hIaڕHtDl/vcw,˅}u(tDˮh{kI<@ib'AFx! lbB吟U=Ox! 
DoQ缙;LCx! QScb7Ġ`~*sxx ls(Wݻsjc,Cf86GP{#2VM*40000 hiviewdfx nE}EA7<6C@bYPFN&i407x! l"ϫZRGgx[³gCHٷgz?Y`:-׹nsf .x[³gHv?κJ9k{,af96& U4x[³gCHB=xd<-LKbx! ltCʯ]6+أPx; lYd(oź .u(tDˮh{kI<@i1\xT l''lL!☃R:o7Dl/vcw,˅}u(tDˮh{kI<@i%xt2?[GmsDDb+40000 BasicServicesKit MY2HtH5'wq4QV+|>I)6l蟇b]40000 arkui iq6nn/ke4ᓀI}3N8f܈ǓM-޵|qcT(Doq6Z2[-)ERh+40000 graphic +tu4`40000 hiviewdfx S1 !٢6aÙT7-aFMy26.kپicq'0-"Qt<5e"e)eXߦۓxNl^k!$X?uXHڳyx[³gĕ9;JzܝokC&@XZTZYPV|ڤoፅMWz-n~RV0-iČĢLy&q>r'70	/0gmͫT&^ϝˬ+ҰO۴wW^L"<L}fQ:ԯ.a;|b:gմҋ22liyvElӛBCTddeU0|sf͕vTœXEl~]+&O]b9e9YS˼ȼcPٟ* 0cx[³gCȎ/
BW}|dsECLK-x! Uֻ̤NDDiz]x[³gCnDض}׊LKiIx[³gCzvK\rE>[jsf 0wx! lmӔYS&2j <J'xT lQJv'btN^.D[f6GP{#2VM*✓[^;T)Ϩi&Vx[³g'˙:ܮ+8wfY&v x: 6GP{#2VM*✓[^;T)ϨikIx! lCë f/>Uxx! QScb7Ġ`~*'x[³gPzݳb=5LN*ue Ux[³g%c"Sџ^luٗ: xT l:(DʀK2vX4nto;?Q³MR>e{5hiZ$fx[³g%HeK$^flxh/u& 0x lqh|[`%h{ɓ<S(FP1cZM-Rڧrډб^PgM듎|_Q'^_wQIS	40000 inputmethod 73Aΰ940000 multimedia 0џ!BsS6vwiAR21Jk);IR{|q1bfo A:kc3x[³g%l.ÒYr{^ 7c/u& .x! 9(S@RT{IMbx[³gC(ȗO~52'ewnd -x[³gCݔ>R0L
% G[x[³gC#{G#:Ooz>{% J	x[³gCmFO{4,α[0}% 47xP lM*Mx(E,|*qy5KSp˷i{|q1bfo A:k#xu lvi)%vHm}	ټ`W973Aΰ940000 multimedia  v)n]*Ui{|q1bfo A:kl6bx[³g3f(ϜŨu~BͿ 	?x[³gC7΢YLY$M{gi	3 mx! l{ǃcpW'Wx[]θԤ+"?q/{Z3|s_ɈDݓx`w~1lTZM-Rڧrډб^PgM듎Xu=2"40000 hiviewdfx &ܼ]At\40000 inputmethod 73Aΰ940000 multimedia 1l'6}4iA6R21Jk);I40000 network Mq2ֻ/7b 9e#|bPB«U+T?̗>9ƨ0*c"jx[³gCIׅr\N`݁LKx[³gCGSoLo]"ּ5% JVx! UW,~	̩tQ^ihx ]θԤ+"?q<oCA GkRڧrډб^PgM듎X8 md 2\\Qp7g40000 hiviewdfx &ܼ]At\夓7)}{,!R^ -R˓iA6R21Jk);I40000 network Mq2ֻ/7D6i,"x[³gCH:_JqL^670-a 
.x! 
O&C4/x[³gC..;$||r7W% U -x[³gC+ҚO
qRήLK	Zx: UYg6]ЭARFXNϓiA>hp @'i:f0Hx[³gC(HjsŮUܑܜɲ aux; zRڧrډб^PgM볎R21Jk);Ifngx Dl0"su yΦx`w~1lTZMu=2"[=% ڡeGMyevi6 9e#|bPB«40000 security ΂\|BΩY)+ax+T?̗>9ƨ0*V1x[³gC:ۋD:IJg΢OvT=aR?['ԇDOei~F{S:xyL@!#,3<%p_NUWb諭_<Y:ש=t1DsniNIfn~JbNf^Ai	|[W4n/m>0ܪ='7Sxa9U&)aC &&eT2kq~nɑGjvi%~\ZeOKõ'<=a|KDoyjS%fv|u睩nS `.cx[³gC\ {3.KvJ"Qܳq7/tw\:ٗyŋI{} 5?}N&@YZVpbbTy	+wU_ˉ/,bnnYT\94$37?%1'3A}A+v6\nɓY,EO}sc]%I|z,If
/,Y>*$p:,rhu3Ң̒JsM15Nϭ>9[n!m+X֟J)-ݧ[İtTI1vygT 8Hx[³gȻ4q&*RmGf xDvx! lm~Qјja_&x! kصk3uoΪA0x[³gC(HVGZ'ۗ뜂͙,]]x xlM艤wUxNfzUCEocξB[:>CjCK~%Q}i2]>H׽X3Ί40000 web J`\Q5-w.O@Bx[³gȉR='گU}-'x y.x[³gCgs/+=eV1j$mn`Z N\[x; lI\k:.(@|1*,bE3(dqaiIx! lpn&|ayVs3xx[³g S%fv|u睩nS mX(x[³g3f/=KYkrﮛQz]_ZL Ux! lwWi:6Ox! lvP'!@0x[³gC@to;hz?9'gLKb]x[³gCHnIYcwO8% ݑ
x[³gC(kqVyg?Rvs&nF l[x[³gCVl[/|SL.f^6LK&-x[³g䣖x}^C-M@)8398,39;A?YRV1d*p˙:ܮ+8wdY&}^K۵dxbKZ1<(4!;Sxކ<f]~w"/b/eZTnZd_f]xUɠ^^)-n0$vh#R~B^X`fvvc('QYZV;bT5y%%)6^|м_oǙXJIe9%)"kޝӻ$oK"+OIW}'Rkp`ںf&&
y)%E%zy<>Di7s>g@(䥖e3FԴ鶵SץA3&?`I4PS8RK&hg~qPqjriQfI%
u[%r
*RwO>*v1aGK$?y-VUMyǐ?U e^x! lrSԐÝ2 ob3R,\x! U>ĉTiY|x[³gCH<f~R?i	3 x:x[³gC(Ȼ+OnH3.?͙,Fhx]2hlh˧e&L*(FJ}q4iҸ\a" %/s40000 arkui 8mϱߵsLipNI-͓tiL^aG4	;M-BnC@XׅWSXRX>mc䅴1dE*[i[c8@|8(mOS	Ʀ֡40000 multimodalinput Fg=sK8c%]100644 ndk_targets.gni  -XP/PhFB鳾fs}x! lb0cmm>	:-x[³g3fǁ\DȮ1c_ZL 5Tx[³gCF!
~ﵴb~L㙫3% ַ-x! l6"V;Ȍz/]x[³gCLm=gz<s_i	3 G,x! l	 &b鬀ջݳ<x[³gCsي2+&LK1=<x! lp^GL۝w 
'ճ+x! lόmPEQqx[³g%ϠEVR߹:Ce;י 0x[³g%sa{lw3!>E;י "^x[³g%HJoǷlqnf_L .x[³g%{p=͡%&62_g J[x! 9FhoFבbMlLxųgCmLK"P#,x[³g}@E3LwXwW1 3S2S3K]nR_c犗&VpX1JנζMI2O쬎CH,ʎ/*+Mex?sէs
Uf2,HP:4Nze^?ۂ'70Iߠ+0]'oˬkkRӱѨRĴ̜ļԼf̳s=?wEwOmq<ѣ<~{^BL,L-OI`|egyi=fc|0Yż~{_WO|vá{S Dsni)9y%uDޔ?ouL6\̆f&&
y)%E%zy+Ω̳xu`×~CK-)/f)g5w|oE?KHӗ:{^ɝaWX
V[Y5̎5{X͌E\]ԝ&~'Mw!&1: sf9y7 \zxS l?bP-eoX7oճ=% ڡeGMyevi΂\|BΩY)+ax&A]x O]dQFE\M@qe6O՚>XCX4nto;?QM md 2\\Qp7g[;;[K7ٔ~0ﬆwpi!#]&1a8Z#N8 rU{|q1bfo A:kLP;@x! l>v;wІI apx[³gC(HE7s٥._T<YYL݌ x! lHթ(;6Nx[³gCHXE)~o]SδLKcv|x |]θԤ+"?qyNxWi(758Tx`w~1lTZM1l'6}4i 9e#|bPB«Uψq=@x ]θԤ+"?q.x[³gCîJΓ3k3 h-x[³gC(ȔY횵"Su7)̼:L݌ VIZx[³gC(ȦkȨw}c`͙,_-x[³gKϩ5I?Z69< !rx! l]uﲉ*>j?Դ
."x[³g 6gY?q
S eKx[³gCNUar[.ˋ*7701Zjѧr\db 
e)i'&Jpj{Wr,v9콾N5M!sKsJ2sSs2
JKdؚbq{iVq<ȹV~yf6_UF$4\}r^@.OMb~uvV'_,}zS5 :ko"x! u=2"*0x! l7$:W4
_x! lf4SV7OnⲳI	x ilI\k:.(@|1*,bȑWMwBz]%O7>ä{*q'Q}40000 multimodalinput kصk3uoΪA΂\|BΩY)+axsAx! lѿʿ^mV0x[³gCD.Olҟsm% dk]x! lO ]JlG泀x[³gCHj#ގ9mTyYLKi<x! lx.̓7h@Ol0x[³gC^kg&b<mt670-a ]-x; z
^00ސ*s2}6Hp>hp @'i:f,vx! l@J~F7ʬDIA%x[³g%HeK$^flxh/u& 0Sx[³gC(­O}W̪L(Q6}͙,"x[³gCH`}d9@ݗ7701Zjѧr\db 
e)i'&Jpj{Wr,v9콾N5M!sKsJ2sSs2
JKdؚbq{iVq<ȹV~yf6_UF$4\}r^@.OMbXyW{3m* ^iM'x[³gCCl<ևUAl, /.x[³gC
ȹV~yf6_k c,x[³gC̹c:2=Y9-^TNZ9s21 ̲
}{N8U_ZNd9s;W*iP\~&^OҜĜ̼7fi^|paU{7Ofg4'Zv0>%bFyjS%fv|u睩nS  ]_x[³gC(Ȅ[$'NXQ;L`s&nF #pxHlA;̒kk-59tiL^aG4	;M-BnC@XׅWSXRXzUCEocξB[u~y1f铊N~40000 multimodalinput 9agGsN100644 ndk_targets.gni  -XP/PhFB40000 network *;a;~>F|aֵ,.wh*FԓU2Ӻ>#+40000 web J`\Q5-w./Gxn l/<՜f)Hߡ#C^nKO7i7yR^}i2]>H׽X3Ί40000 web J`\Q5-w.1Tx[³g#"إ=j;-,(Me= 
x[³g#ԲoW(29< ПWx! lvP'!@x  UL<X4|h~]6x[³gC(c+u/f9{S_S{p͙,x[³gC՝_S>}Ґ;+ώLKa\x! n{/ؿȊd0賓
|x! UnQIE@i6;x[³g 6gY?q
S edx! zUCEocξB*\	x al/[R@h@G/"^WewGWAMzUCEocξB[ٵV7r	i>ܓic*;a;~>F|Ӻ>#+VHz-x[³gC(~ovh=cSL݌ %U[x[³gC(o-dy܄sj͙,S\x[³gC(S\䴷g^Qjڬ͙,-xT l6	R'9#fߓtiL^aG4	;Mu~y1f铊N~iEJ&=x[³gC(HQYaƫ\2l}[es&nF .x[³gC(HْrޞrV&yld ۹
x _l~E爦0PP7=/"^WewGWAMu~y1f铊N~ic*;a;~>F|2Ӻ>#+40000 web J`\Q5-w.G:x[³gBLFNCj>ZOy-XxѤ#ҎĮJT=? K36nq:wSmTNn`)2Kknɦ̃>q2L]KLpZOeqZ0%zkxODb!osun'[O?k2UKd/5-4Drs[vm 9%)9y%-ݶ)UcLLRKSK2Maӹ  7!/!楖e3hY'r[c'ĻJvX֟J)-ݧ\İtTI1vygT Õ.x[³g׎yj&n_R@fW&@XZTZY6^+/]!ocmFK;b(1\P/~cE٥m}Rcfܒkr2nrNo|{o;9amɾ̺"s~4ڞj/5{E7ILaϽej0bUFfYfjyJZھ}ْh>2D$=Qxy綉4ta`Y$@4d$d07g;tBNV540031QKɎ/I,JO-)Kd`Ժ_ǯ, 楖e3hY'r[c'ĻJvXEf|R,[v'+Lek [u\2̕e"!&1b?Wmbu!77<{ ðzx[³g%HO=&prN}HTf_L @(x! aOىgO읳DmXx! t.cCņdD`x! Mq2ֻ/7Dhx! lpf5Ŀ.&ﳀ8x[³gCH1c	,֮ fx! UhOַgQj:6P³i	'x; lO-[L:8kk[ |%[z	NX8iCzx9 4LsF"sF'Qv8yZCUGx[³gC5:590!JD}ZH% =tx; lC=u9Pxv8zvܸ(AididIx! ls-ad"Ò
rXx[³g'V;&L3EGV%$4M $x[³gCH~4z[u~+r';ٝqR `"3x[³gCHy劥Z^1~'>iL v-ax[³gCwD-\웞uisf ޲#x ]dQFE\M@q`!Rx[³gCHΆ6zKߵA% (x! u=2"*2x+]2hlh˧e&L*(FJ}q4iҸ\a" %/s40000 arkui vafKBѯ^VWbotiL^aG4	;M-BnC@XׅWSXRX>mc䅴1dE*[i[c8@|8(mOS	Ʀ֡40000 multimodalinput Fg=sK8c%]100644 ndk_targets.gni  -XP/PhFB鳾4Ӻ>#+Nmx  Ӻ>#+"Nkx[³gCݭ%kox՟᪼yvsf ݚ^x[³gC(
uRB/w(Wq9e7# =cx! U̂ӣ||qǡ;{ii1x! l2~):Q&*bx[³gC.GSߪ% )x: GIƸOv 1xSQ~=P2O.FѺ`9pfJx[³g3fo5jPU`{Ϳ )0=x[³gCs[Cqq) ͠/x! U[q[2ri2x[³g
V[Y5̎5{X3 DS.x! v4u̶=	;GQ*A]x! l2Զ+[Rux! lL'@KCEdՁ̳'lx[³gCVъ#~Zjs,t% 3x[³gȤUEU/~Һa×Zx <Cbx! l5̰#hBAM泀 x  ڒy&s9ʓ0x! UQ2<UT19EOio_x; l9AAuR.=ó
i.1EEGg>?i6Ix[³gChlvOcGՙ\+i	3 :vx! ˸kfzl$*0}%x! ?*,;2l*|V_x! 9ҝgB~#M	9x[³gChlvOcGՙ\+i	3 :x[³gCeHY<s[+Ion`Z %;x; l̯FB@YqJ2UѾMvv@|'q9\ų(cfJx[³gHρKa=of96& C,Wx[³g}zF޵)קj]ZU q(8%g&e&{g0.v7%Wb|gq8pȌ&	B'8{w,q2t,IBNiOoӹ|HӲ 'ef2h|Y%)~3nS'70x`"}lċMeᒊf`poWb&Z3͢~Z]7_^,]ӭ+Z V%dd&3ԛTOS65iM@TddeU0mwmsଫ㼶ǲ	1Mc1y#q&ZyJ3YVhNngOˊO@LK-)/f`3eܻ%y_ؾtΟ%\FIys5Q~O ZSK2K*z;1	u̙\ZeX9HA+M>9vӥ zS\gǗ<`w(p dwvwxP l밟~it~\y7*C3qy5KSp˷i{|q1bfo A:k<#_x! l.8|TIx&̳tx Hln6<OcRڧrډб^PgM듎|_O&C440000 inputmethod 73Aΰ940000 multimedia Yg6]ЭARFXNϓiAR21Jk);IfڛYbFxT le&EV.K宣8  Q'^_wQIS	70џ!BsS6vwiv!)xx lSPF=Q5"M6ef8 md 2\\Qp7g40000 hiviewdfx &ܼ]At\夓7;;[K7ٔ~0ﬆwpi20x[³gBs;6]YjvPXQD_W۪V-ErvT=aR?['ԇDOei5tG>9?pO~pn(ddeU0+Us©J]rb'˱=[o:5.h-)OI+(-ao_}ck[qdKVD2n'?`I2Sxa9U&)aC F&eT2kq~nɑGjvi%~\ZeOKõ'<=a|KDoyjS%fv|u睩nS -ԛ	ex al~E爦0PP7=/tiL^aG4	;M-%wYg1b"G
ۓu~y1f铊N~ic*;a;~>F|Ӻ>#+XB-x~ lA;̒kk-59BnC@XׅWSXR?9agGsN100644 ndk_targets.gni  -XP/PhFB鳾f/6	x[³gIG1].v?z~($ef2Ul=z@8/TcE~M^ugRfjLm¡漅H`cˮ-[SWPZߜm/
y[0:Y5vd aC.*x {]2hlh˧e&L*(FJ}qvQv}YEwmGk2 |%[z	NX8iA4LsF"sF'Qv8yZCUϰ:x[³gC+?sUϟ;% eAx; lJ\HV`JP]ҳvܸ(Aidiq:Jx! l<Dۇs%;ǵax[³gt^n㔊l.\mj 3S2S3KF>K`+m,hvEri_M7/qR<ydČĢLu ?O42n?yȾL;EĞɬ0ʰS\}uE
i=y_j+n.79M]j"s8~.bUFfYfjyJZCρKa=od9-&
;i=S sKsJ2sSs2
JK)tglLLRKSK2~?Q"fNkivGXg|R,[v'+@l+NM.-,duw©%W8IV
V[Y5̎5{X͌By\ON:(rӇO!&1`%[G C^Ί,xi l?$Y>㹺DP҃f˸#ix?[ъ"6'C_ói&r0Ø8Hltq~2xx[³gCJ	RNsg`l 	~Qx )2t)%]<F&.
"`rیq̶'UۓbS/Wݐe-eÓM-WwI/p=+	X8KR#QQ'n4K40000 hiviewdfx &a1?\9Toa7ζLʒеWO`iͽYs JTopa
|x ZL4iҸ\a" %/s40000 arkui ߦ=1qIMR(/@,v@ "b;VMx}=(3H-u	7yqZsČEq~N|
i?HxH|ĿvL,hqDx 72?2&GUs)h40000 BasicServicesKit k}YͿgJ!0H0uq-!Ӟ.$SdJi	{M77ɑ`BM-T=&ExXGIƸOv 1xSQ~=P2O.FѺ`9pf/ZWx 2BԉZR,ާұF&-M)AÆ T<7w+,v@ "b;VM8K@rKEE40000 hiviewdfx @TދJW}g<ĽT7_oT&C~biA4EsJ؛T2]HՌJ)9t`h!!=xzUE5X9:JMBjx[³gC/ٵBw멺a0rڣLKF	/x o2/:.w䩿D.uٳްUF&' *`dF:N*Af83pP7ׄe40000 hiviewdfx x}=(3H-u	:%Ht),A6fN<LxS 2r216kz"xF&gI]? 7~YgCCm8:&bx9 2-nmx1<8%5xFԩ{L
(ɇ(*LGxS l<C5q15x֬	LTQP]8iZݐʤ7y˧qx)cx; l83xҵj;TRtJ	LTQP]8iL-xm lx+a((<=1:pR7SD66i?=f56>
th1-)x L4f5/GB!	Ķ40000 arkui ̯FB@YqJ2UѾlix5Jh> Mֳ8'
M8?*,;2l40000 hiviewdfx Mvv@|'q9\œ7
i.1EEGg>?i?=f56>
t6n&KHuBn!x_qx: lK!CaGOchYt=Tb'h:xl l<HR@^nxeqfpY#8Y;?Nu>&[xoFB;ytip~?VȪX\^x&1/{x[³g}@E3LwXwW1 3S2S3K]nR_c犗&VpX1JנζMI2O쬎CH,ʎ/*+Mex?sէs
Uf2媇E8$u<3bnILKV;r|gҩisLeֵ5Aޏh_RQb`ZfNjnb^bzjnj^	z·[lY^I9͞qvf}߻'8QzfS=/!&ddeU0h3[KJ1>lf,b.?ԅoQ89le9y6.,{oy%E?efZϹz7?`b4RruQwA4#s_ߑ-OMbZ/u@:#s3o icZx[³gCy)BJO𻛉NuP -x[³gC7Ǳ_Ǭ4\N5~DhײLK6x6 lM*Mx(E,|*{|q1bfo A:k|sx! Ua s̒P^i"x[³gC(HʿKEKM6E]VH͙,_tPx[³gC(Hl5#vK	9e7# ~x! Ul+/9}i.x[³gC(HvË2y7["i͙,"\x[³g HuMբI*vZv: x! UKY-ǋߦUvi7x[³gC(ly\oT\Nٻf͙,#5x[³gC(	ku۸w1yqL݌ הh5x HlPC :z,&Rڧrډб^PgM듎|_O&C440000 inputmethod 73Aΰ940000 multimedia Yg6]ЭARFXNϓiAR21Jk);IfYuhx[³gC+u7:fM6ޢ:-qsf Dx[³gCHKg4LLKDx[³gC?2$s7b[LKTrx! lִϵlPo6j"x[³gCs%%U?k_nm]LKm*Px[³gC$z,ՙԺb ֌5~x! llY[g.x HlLr3gj9Rڧrډб^PgM듎|_Q'^_wQIS	40000 inputmethod 73Aΰ940000 multimedia 0џ!BsS6vwiAR21Jk);IfStx[³gBLFNCj>ZOy-XxѤ#ҎĮJT=? K3nVL>0jbgxf8*Nn`)2Kknɦ̃>q2L]KLpZOeqZ0%zkxODbQosun'[O?k2UKbUFfYfjyJZÉR='گU}-'&3$7$#?Q;?yeY. Q[Sб>#׶I̲2p>-ݶ)UcLLRKSK2L|w}s{G+@K-)/fвN>Y΍Ow&5 &?a5I=lddWTr^^\ZYRp)i'G}-͗arkӗw^i7E#6_!zSn*0;^î;Lu 9Qx[³g#oF'߹QqenXפCx BכP- Ǥ6nQ@x! U^;T)Ϩi[px[³gCHVSywзǏgxILK (nx ]θԤ+"?q%{SpU'cx`w~1lTZM8u=2"40000 hiviewdfx &ܼ]At\夓71l'6}4icMq2ֻ/7b 9e#|bPB«U+T?̗>9ƨ0* -rjx[³gBLFNCj>ZOy-XxѤ#ҎĮJT=? K3
s&;Ns-ܽFoQWuv[)O\;S?֓}uEV9;L-GX&1GX\IovXYZVpbbTy	+wU_ˉ/,b^߱>#׶I̲2p>DsniNIfn~JbNf^Ai	s6sK-(madXC3ĢԒbL]8>^a~QJCRKO}sc]%I|z,3>-;ⓌQk zSK2K*58m?ȣo5?L`2ZS+(x&t6DoyjS%fv|u睩nS Nx! l$n2#-p7x[³gCH7#Yw9d+osf Fex[³gC(ȷW|S37Vgo͙,..x[³gCerk9oi	3 -x[³gCHWrVD*RNOv|r/Ao-Vy/}=9i?)vG1 BFfYfjyJZb+=uqsD.+(-M-OaxgnaNw^znûwK>@Td榦d&24_4x3]NMdqQ|i>k5ez{nǒ CcGgx! loIR$"ՙ(x! lpAˉnChjXx[³gHv?κJ9k{,af96& Ux! lӤ6&9qUJ$z>{6x[³gCTޗjy3=]3% =dx[³g׎yj&n_R@fW&@XZTZY6^+/]!ocmFK;b(1\P/~cE٥tw̌s":ʾ.0Y)ib_lɾ̺"s~4ڞj/5{E7ILaqSçmٴ+Ī̲
Vq+6ސ&˱ǳ_iԮ9׽94$37?%1'39߹_`0eujB^Jv|IbQzjI^z^&_)V^;oY(Vbh^jIy~Q6u"ɺ<vnl}Bd7O%|'e/Z|]QB?yDoqjriQfI%Gŷ5Wnn,IPTc;(",ZyI:}8
Lyj-{F-VZ/só $x[³gCȩ-+oM9SCRNWۀLKRx[³gH z\u[zsIt D.xT lqh|[`%h{ɳf md 2\\Qp7g[8h%r%5pVd_i!bx! UYg6]ЭARFXNϳi x! UA]#pAJ]i W1x[³gCH^W}a|% 3_x[³gCH+5bţ.NP$^}rsf ?x ]θԤ+"?qG=_<Ƴ}bW6x`w~1lTZM8u=2"40000 hiviewdfx &ܼ]At\夓71l'6}4icMq2ֻ/7b 9e#|bPB«U+T?̗>9ƨ0*Sr*x! 
O&C4Zx! 9/ȑDH;2[;ħM
x! l5҆uVjiG{x[³gC9iS4Wʃq7701ZGȥWK4OW71 ̲
}{N8U_ZNd9sVv_r^_ؿ͹9%)9y%ol^Ӹs8NrQ\SLs+O<V[H/
*}|_>nq}s]/ f&1,<U+afw̽]wޙ6 ,j?zx! w9ߘz'eG~{:ɳ*/`x[³gC(HE7s٥._T<YYL݌ x; l*mX$Sng\LMq2ֻ/7D6LFXxX]θԤ+"?q~E爦0PP7=/"^WewGWAM8zUCEocξB40000 hiviewdfx ȑWMwBz]%O7>u~y1f铊N~40000 multimodalinput kصk3uoΪA9vpO9/4[Y_b6 9e#|bPB«40000 security ΂\|BΩY)+axz2Ӻ>#+40000 web J`\Q5-w.3$_x: UAv7ʳ?-<iA;VM-W#s'f:(x! l{ `qζ
;"HM0x[³gCH+5bţ.NP$^}rsf ?-x[³gH z\u[zsIt D-x[³gfAKm2IbfĤ>L r1x[³gCHpO 3,7@SMJ}f0 
x! z#}:Ō@ѬD:S0x! xl`+ .D(=Ex! lLl5;YgY,ɓ?ux! lM艤wUxN%%x[³gC\I_&{VR&i% SSx[³gCHΆ6zKߵA% (x[³gIG1].v?z~($ef2m_|[pf}N{"l<(Եd_f]yS"dK }"v?W&/zҺ[)]D&bNoPsBC$K0e
Bܐ[SWPZߜm/
y[0:Y5D!/%;$(=X/=/DM6`prbh^jIy~Q6u"ɺ<vnl}Bd7OEQd˻ZO	|}ړ }x! l)SjջsIkyf^/x[³g'VʩE
_niϱ믞.4M ܊\x! lœڍ7uWdEx[³gC(HSjlX~y%So?[mL݌ :x[³gCHD߷r֟D*3xtaLK+N8x[³gCȫڦlVa2o&LK\fx[³gCKody,Y+݅LK'x! l=!EkZ?ĳ8xP2?2&GUs)h40000 BasicServicesKit k}YͿgJ!0H0uq'8tOζOQβ9*RJi	{M77ɑ`BM-T=&ExX8GIƸOv 1x40000 hiviewdfx &a1?\9Toa75]k*<,ĽoYiASQ~=P2O.FѺ`9p'Qv8yZCU2_z(

#yY40000 web ͽYs JTox {]2hlh˧e&L*(FJ}qO-[L:8kk[%]G(nׅ%Pt^iA4LsF"sF'Qv8yZCU2;rx82?gx(n֔e*NҠIZp40000 BasicServicesKit 2hlh˧e&L*(FJ}q|ыzuo˶,u!tiL^aG4	;M-BnC@XׅWSXRX8>mc䅴1dE*40000 hiviewdfx ȑWMwBz]%O7 |%[z	NX8iA4LsF"sF42Ӻ>#+40000 web J`\Q5-w.߈EGx[³gCH&T֫,LK&.x[³gCIK+.on`Z Xn5x; l^$CtJc$ܳǎCLGh) $=G;tiD2x[³gCȟC*ˌ$ᱹi	3 2m`x! zRڧrډб^PgM볎#kx; zBnC@XׅWSXR -XP/PhFB鳾fzx4]2hlh˧e&L*(FJ}q4iҸ\a" %/s40000 arkui BVM,ѻd^7=<yBnC@XׅWSXRX>mc䅴1dE*[ihOַgQj:6P40000 multimodalinput Fg=sK8c%]100644 ndk_targets.gni 4LsF"sF7'Qv8yZC40000 security 2J?Be-xq&ox! kصk3uoΪAx! l0bg\ƞѤ@	Ox! Fg=sK8c%]Ax[³gLwWWm&s0;HRY	 Ѽ5^x[³gC(c+u/f9{S_S{p͙,x[³gHG1].v?z~# H9x; LiҸ\a" %/s`[c8@|8(mOS	Ʀ֡iuJx[³gC/ʺ;pkV% rx! lA;̒kk-59"x[³gCf-N'ön}qwJ}LK0Px[³gt^n㔊l.\mj 3S2S3KF>K`+m,(uKٯ><מQ)vL*H4f}&2h{󪭿\W$1]nrs*++y}p[cg'۷k@YZVPQwmƃ=?*9Y<{ڐdZSoyb>T}94$37?%1'3nߙțNwv&kD!/%;$(=X/=/#%k鴼fw4|'e/Z|]QB?yĶҢ̒Jƫ=^okkY8vrkQ(iIEXεup)Doyj-{F-VZ/só A3x: 	p1rI 4ߊ|6
VM3>!yHx! UƗ	bẍǳi0x! U FCW|ZtwUirUx[³gC7Ӎarovvt% S6x )22&GUs)hF&=`5AWф\BՓbS/Wݐe-eÓM-T*BoEelX8duKSa!GlMSM40000 hiviewdfx &a1?\9Toa7ζLʒеWO`iͽYs JTo#
a9x[³gt^n㔊l.\mj 3S2S3KF>K`+m,hvEri_M7/qR<ydČĢLM'6]6L;EĞɬ0ʰS\}uE
i=y_j+n.79bzq˵ӱ>H`vUe)iO}'*cinzer,\3n?NlkҜĜ̼}g"oJ:y&`nfC3ĢԒbL_쏬zH;٦Zl>e"آN8s6J\j b+˻f׽]_Xq\U2y<|.z:mv$bE}Ił/X;.pQ 1fdx[³gCHad'ie-Jnsf Nx! lR0Xv8s>$ϳBx! UtoY;=W@irx82?2&GUs)h40000 BasicServicesKit k}YͿgJ!0H0uq)=L^^'.m2#Dy^Ji	{M77ɑ`BM-T=&ExX8GIƸOv 1x40000 hiviewdfx &a1?\9Toa7׺QLXhEh\ciASQ~=P2O.FѺ`9p42_z(

#yY40000 web ͽYs JToqGx[³gC(Hgk\.>vahn͙,9x[³gCkE2/|nxpfh>iL 
x[³gC\իZM6b>% 6!8x[³gCȢ_5TV97WP>LK{	fx f2t)%]<F&b"]:#k7ⓀbS/Wݐe-eÓM*	<q[ζLʒеWO`i&r0Ø8HltyE=x! lãO<sY<4x[³gC\?b㗐oLK44x! Uvܸ(AidiC0x[³gC+?sUϟ;% eQx[³gCȪ`[bo_qpqg}	% "rx[³gC=_VfjԳ_/i	3 <\x[³gCPb	OV% ݆+x[³g}zF޵)קj]ZU q(8%g&e&{g0pd4d^棥qڍM:2/I:pY@[s!f$ef2~?կ3E}mz%L;Ef	u-ٔy'.QƝkNɾ̺"ND\o~ɖA,#,~M^ugRfj@,L-OI`811WSUػOc1\_wEp<,zm͹9%)9y%-ݶ)UcLLRKSK2L|w}s{G+LǲL\SLs+O<V[H/
V
sGn>,`@=fFO_zJxdݖӆ<5a橒^	3c>T\  }x[³gH@E3LwXwW1h(c_:R7I&<:nb 
EEy%{d.x\6h'\wJ3v-Upῠ<ߒ$&705Aޏh_RQ1-3'571/1=575D=-6,f]8y;ŕ"snߛn/R{t &ddeU0h3[KJ1>lf,b.}!>zƒG-۽̵D'g8,R;2fՅEb_15/<(!szǽc߻[&?`iiRPg+3#8b>\Ze,4a<iG6#1<5! h3ϱ; 	xt L4iҸ\a" %/s40000 arkui x+a((<=1:pR7ka}6Y4lUmNi6"x! lSW
z!\ೀ'x[³gCOԧO{[OLK^HTx[³gCKCZ'Ŗw3Xi˭LK6)x! l^$CtJc$ܳA2x ~lM*Lp'cD&ˇg8F:5&&䇓M*	<q[諅0K㳒))º;i&r0Ø8Hlt@<Bx )22&GUs)hF&yTXszL u.DJi	{M77ɑ`BM-T=&ExX8T>qq>Q5"37:40000 hiviewdfx &a1?\9Toa7ζLʒеWO`iͽYs JTo蹶`B x[³gCbt= (LKf.x[³gCH3\f	>n^<5$4LKcx! l'^~Zĳ1x! ˸#ix?*j0x[³gCHΌoɹj/n:vsf ]x[³gC/R|Qksf O-x! Uъ"6'C_ói:x[³gCz)'Չ&>RSi	3 NXx )2gx(n֔e*NҠIZpױF&J4?6b}*̓tiL^aG4	;M-BnC@XׅWSXRX8˸#ix?40000 hiviewdfx ȑWMwBz]%O7ъ"6'C_ói&r0Ø8Hltp_-=x; le`-fȢ.hrfz3(*zyIu7*&Jx[³g}@E3LwXwW1 3S2S3KF>K`+m,%tkPg[&ɤr'vV!f$ed2>sڠyvsޅ*d5tNVqi5&70{~7'+NkZsMeiQyⷲHGEک}YZV=s/Hy"S~cy&=GQ֖x94Ĝ̼}g"oJ:y&`nfC3ĢԒbL_쏬zH;٦Zl>e"M_
y%w]vbcGL7+XDleyKS3;׸J&a53zv{ERMێPh<5Xp+قuη>X] pTx[³g}zF޵)קj]ZU q(8%g&e&{g0pd4d^棥qڍ[&-}K{~~)]bFbQv|Qi^Ifn*CG1].v?z~1\Ui&ÝSG*XWf"ONnO6.'}uEV9;L-GX&1GXۆeG/UΜ^0Ī̲
}{N8U_ZNd9[7x?<ISЮE/[ќ[I~JbNf^Ai	s6sK-(madXC3ĢԒbL]8>^a~QJ,9S#K0@ģ£ܑe0=X"Ц3yӗw^i7E#6_!+OMbP+Z`S=r>>d ٤x[³gC(Ⱦ5Rden4\ piKǌ͙,Ix[³gC(;zQϴ_'9e7# C.wx[³gC(Hy2]צ٭4g޲9e7# .x! U&LKtwp_Tix[³g S%fv|u睩nS mX+x! >mc䅴1dE**)[xT l`m֠OvUR	\Sųf>mc䅴1dE*[vܸ(Aidi)4=x[³gC=,-g,8'ݽx,߸kx[³gC,ڿi핉_hsf ;"x[³g%ȓjӟMpcKGIf_L :QxP2?2&GUs)h40000 BasicServicesKit k}YͿgJ!0H0uq\ghEdw/ ͓:YnQ{ ɣ̣+M-T=&ExX8GIƸOv 1x40000 hiviewdfx &a1?\9Toa7e^]~hP#tV¥fXB:ٓiA4EsJ؛T2]HՌJ)9t`h!!=xz2UE5X9:JMB40000 web ͽYs JTo@MxT l(7eD#ާa+];LƁܳf*	<q[諅0K㳒))º;i%Ncx[³g%M_+[/;Yǒ;י x[³gCJ	RNsg`l 	~Bx )2gx(n֔e*NҠIZpױF&(7eD#ާa+];LƁܓ&ˇg8F:5&&䇓M-BnC@XׅWSXRX8˸#ix?40000 hiviewdfx ȑWMwBz]%O7諅0K㳒))º;i&r0Ø8HltGAa~(x B2gx(n֔e*NҠIZpױF&OhUI>&ˇg8F:5&&䇓M-BnC@XׅWSXRX8*	<q40000 hiviewdfx ȑWMwBz]%O&r0Ø8Hlt+S3x[³gCJ	RNsg`l 	~.x! lrpȤv_uuU<M]x! lIOס.'FFYx! lضD_ް|鳀#	x[³gCkW%W>}ghwعLK|p^x[³gCA.s-OԎ^s% ߧ[x[³g%Ⱦo;!U+f_L Jx9 2t)%]<FbS/Wݐe-eóMUHx! l~ݳ]fD0/x[³gC=΍+)0mm~fkdd xxs2?2&GUs)h40000 BasicServicesKit 2hlh˧e&L*(FJ}q=`5AWф\BՓbS/Wݐe-eÓM-WwI/p=+	X8duKSa!GlMSM40000 hiviewdfx &a1?\9Toa7iζLʒеWO`40000 multimodalinput Fg=sK8c%]100644 ndk_targets.gni 4LsF"sF΂\|BΩY)+axz2Ӻ>#+40000 web ͽYs JToAx[³gC+Qa*t^0 /Cxm lls6J{HYų`ee(Յ7SD66i?=f56>
th0Hx! )𷇯@6	p+*Exx 2t)%]<FlF&x[³gCF}7#9PwQ'<>iL }Tx[³gȉR='گU}-'x yx[³gC͇2ҋdnjsf 0x[³gCHYR->g~б63be :{^x: l:Y}	[k&K<xT=&Ex'xl lZ[`lvRU$uvJi	{M77ɑ`BM-T=&ExXz3(*zyIu7*n*1"xs2?-nmx1<8%5x40000 BasicServicesKit k}YͿgJ!0H0uq{89铀,v@ "b;VM-T=&ExX8ב4OD|XS	h\R40000 hiviewdfx x}=(3H-u	7i	LTQP]840000 multimodalinput 7~YgCCm8100644 ndk_targets.gni :%Ht),A6Zݐʤ7y˧qxz2UE5X9:JMB40000 web SS:pυ∫kGNEExt l~ݳ]fDf8KR#QQ'n4K40000 hiviewdfx ȑWMwBz]%O&r0Ø8Hlt4RHx[³g3foAʁ3O؝'rͿ 31x! *	<q*eax[³gC٬?|&TwiĈLK5.x[³gھ}ْh>2D$=Qx g -x[³g -{F-VZ/só c(x[³gHzF޵)קj]ZU qF{ ѩx[³g3f'J{>q"}_Dg2_ZL D.x[³g3f 	jޤ#7Ϳ %	x[³gC7YRcLϬzY>iL Z%x[³gCH|~jK]֖]ufsf Sx[³gC|%)!꓀UF% Sx[³gCȻgX_`ۯ}`FΖ}Ә x[³g3fiaߴJ/-Y13a_ZL A/x: 9Ji	{M77ɑ`BMT>qq>Q5"37:*Lwx[³g%L7Bذ6f_L Pc$x I]k}YͿgJ!0H0uq)=L^^'.m2#Dy^Ji	{M77ɑ`BMGIƸOv 1x[^}WNbs`a@˓iASQ~=P2O.FѺ`9p4_z(

#yYPLrx[³gCHfF⎽}|[ csx[³gC(bW\[^hTu͙,&x 2t)%]<FlFEx! U諅0K㳒))º;iux[³gCd)gd.v .x! |@ѥ2E8*
*x; lzcSĖ@@E!J`ee(Յ0(Kx! l5kRǕ𯟴ʳ;zx! lL'@KCEdՁ̳'l)x! l_ox
9NRYx[³gCz3ݶ)/LpM|da!i	3 x! lOVǣгUi7x[³gCȪ6o)P!{% .x[³gHEU>x[cf96& _\Ux[³gCeF|;Ed% x; læex2	hXhR鳀b6vpZ!]7Uci
Mx ZL4f5/GB!	Ķ40000 arkui Q+%2<}M"{#ZDalix5Jh> Mֳ8'
MbL]VH0?Ec$7SD66i?=f56>
thoE!~x! l{ںCJ⮯}p0x[³g3fÛN3s]M*6Aq_ZL \h/x! lnvөYpΪX#!ճ^_x[³gC:
d}x'% x[³gC;IFzM&PL:% -;x[³gCyĕ/t;qI1LK}ix[³gCoi!S7L^~-)U% x[³gCWce7I:`rLK6<Ex! 
pR,Jx[³g G,Ϟvk V.x[³gCd)gd.v ]x[³gCHå^i97ż9msf 9x[³gCs[Cqq) ͠;xT l)=L^^'.m2#Dy^5]k*<,ĽoYi_z(

#yYt!=x IlF~/s쓀,v@ "b;VM@TދJW}g<ĽT7_oT&C~biA4EsJ؛T2]HՌJ)9t`h!!=xzUE5X9:JMBl:Qjex[³gt^n㔊l.\mju	˥}5޼I<m&@X]F?+Aq[6V*|-5i9^v
^Bk/L-D"<*rįN#Č̲
Nms4FJ2d9LXFK<h`2ounҜĜ̼}g"oJ:y&`nfC3ĢԒbL_쏬zH;٦Zl>e"M_
y%w]vbcGL7+XDleyKS3;׸J&a53tS~QʃYmcyq$bd8cu~wQ 2pFx! L`lw/wV,ĂE`2vx[³g%Ⱦo;!U+f_L J$x! HwXBݦׂ=f0x! 4LsF"sFfp%x[³gCȻgX_`ۯ}`FΖ}Ә $x! l<I1`#02깢+r=Tx[³gCHd}`IM7.F"% Mx[³gCHnvQ>)W.esf 0x! 9h44V_7MB`x[³gC(,D&/&}8|9iL݌ .x: U3_A'.g_24]RiA4EsJ؛T2]fvWx.2-nmx1<8%5xF&gI]? ,v@ "b;VM8ԩ{L
(ɇ(40000 hiviewdfx x}=(3H-u	7i+%uu؆u^v040000 multimodalinput 7~YgCCm8100644 ndk_targets.gni B{1{7cRrd)pHՌJ)9t`h!!=xzUE5X9:JMB 	x al9\T?z^^[h< iڙMe^]~hP#tV¥fXB:ٓiA4EsJ؛T2]HՌJ)9t`h!!=xzUE5X9:JMBN>mx[³gt^n㔊l.\mju	˥}5޼I<m&@X]`tC]yE7J87i9^v
^Bk/LKۏOu5N<51#,3<%ĲSe2}6ͭR/9:Y<swx.7NҲ^VY 94$37?%1'3nߙțNwv&kD!/%;$(=X/=/#%k鴼fw4eHӗ:{^ɝaWX
V[Y5̎5{X͌wѣiӶ#y'+Z +OMb-|J`q:Vgw h#x! 3`*u	8p;o*b0x! -
ټV"cu_*/x! e͹$$3M-#ܤ6*-#-x[³g%[0yӌ"x|	 ;~+x 2/:.w䩿D.uٳްUF&gI]? ,v@ "b;VM83pP7ׄe40000 hiviewdfx x}=(3H-u	7_oT&C~biA:%Ht),A6HՌJ)9t`h!!=xzUE5X9:JMB,h~x! ljӃFCH.x[³g'VPӦk%llr {-x[³gBH_3t
<(,wcfV 0Xx! 9ZZ;-ʍZhM/x9 Uc̊CՆgd\iHՌJ)9t`h!!=xEGx[³gC(x~GuoL7ߊڜɲ tx[³gC(Tغ 咦0CK"nnd ~-x[³gC
ȹV~yf6_k cYx[³g%L7Bذ6f_L Pcx: ly`	',
j)*DyKQtxcɳMGO/x[³gC(H@&.}Y1&S&6s5+md 
 x 2-nmx1<8%5xF&gI]? ,v@ "b;VM8ԩ{L
(ɇ(40000 hiviewdfx x}=(3H-u	7iP^3v0$]Q40000 multimodalinput 7~YgCCm8100644 ndk_targets.gni :%Ht),A6f6j,x! ly`	',
ﳀ W\x: ly`	',
 )J#ґNMdx[³g*UNՆ7W'5I,yK# Z.x! UX9Z+OX e˳i+J/x! UpYnthAix[³gCȌswV?4Vݸ@|u% W3x[³gC(ȊUrͽuyL݌ 81x[³gC(3oym^%{5J.Uۜɲ Ը__x*2-nmx1<8%5xF&9,VC],v@ "b;VM8ב4OD|XS	h\R40000 hiviewdfx x}=(3H-u	7ibh%0ݐJA}tZDI40000 multimodalinput 7~YgCCm8100644 ndk_targets.gni :%Ht),A6Zݐʤ7y˧qxSS:pυ∫kG:gx[³gCeߟ{Y~Edln`Z Rx[³g%ΤĿ:)LcVJ8:l/u& c.x[³gU߅^csdoȌXؘ ?Bx[³gC(Ȇn8æ9] t`]L݌ k[x! ly`	',
ﳀ Wx9 2BԉZR,ާұFK@rKEE*%xx ]pt{sN}q4-x[³gBߺ?"7ߺzɛY'+x[³gBLFNCj>ZOy-X i<Kx[³g ZϰꑳU% ptx[³gCț{s/g\LKs"x 22&GUs)hF(Px[³gC(3oym^%{5J.Uۜɲ Ը_~x[³gC&'m4=XEdyLKN"x[³gC-VF.Ӟ{:O<qsf G-x[³g3f9M4qeͿ (\xc2-nmx1<8%5xF4f5/GB!	Ķ40000 arkui 6÷zKlN.Nclix5Jh> Mֳ8'
M8ב4OD|XS	h\R40000 hiviewdfx bL]VH0?Ec$7iSD6640000 multimodalinput 7~YgCCm8100644 ndk_targets.gni :%Ht),A6Zݐʤ7y˧qx0=f56>
tTSS:pυ∫kG)M"x[³gC:VBʳ+xNYM7#% ֢.x9 2/:.w䩿D.uٳްUFd:%Ht),A6f)zGx! 9oڿN?0	PM	!vxT lgI]? x}=(3H-u	_z(

#yYvt#wyx[³gHG/h)osp=sndx}lKQ$T\.급($ed2>sڠyvsޅ*d8Y6!dvkAgJ.g~t kk4/mјWlyWNhYx97}=:222SS*4_u|^tڭs%p3Lc1=cI^sԍ3YV9ŴgR>lbj^jIy~Q6Cg/9,y{	ƾwL~"ΞWrgo'V1Fp}|3HYtEiy}m~GbfyjC@z9gfQ͟cwx# 8"x	2?_ۢ;E@'v=AR40000 BasicServicesKit M4w(PEyBq4agK@j`40000 arkui pe"΂>KExSt$UǹbʖlM9.(P47@7LN[CW5h;⟂NviA6s".$<աS]40000 network j{pfC.[Dvqax[³g%d#	/`yYo;י 5x 2-nmx1<8%5xF&-՚+YhuWtoŋ
㳀f8ב4OD|XS	h\R40000 hiviewdfx `ee(Յ7>SD6640000 multimodalinput 7~YgCCm8Zݐʤ7y˧qx0=f56>
tTSS:pυ∫kGWqx! lإѼVK)9g(GN~~n1x 2/:.w䩿D.uٳްUF`x[³gU߅^csdoȌXؘ ?-x[³g3f9M4qeͿ (\x! l'uoHȳ O1x 2r216kz"xF^x  dZݐʤ7y˧qxM}.x[³gCH|Z|ckW{OS㶹i	3 8Nx! U_oT&C~bip2x! Fg=sK8c%]A0x[³gZ#'U2ފ?[eo6r,lL 2_x[³g mVo}Ա:{( *x; lbFpٌ7=.$ї5fב4OD|XS	h\R*sx; læex2	hXhR鳀b6vpZ!]7Ucix! l<C5q15x֬ABx[³gCN[\df\E>nUrފLK.x! l`:K&4AVx! ^`ɣXQn*L0x! SO3 kGd*r_x! 7|:ً;7&ĳ*%x[³g3fNGL*,{>EFsͿ .x! v4u̶=	;GQ*A2x[³gCHfNs_?;xssf /x[³gC(HeaKѮ#=lujod -x! l9,VC]\xm l4ch#k*a`ee(Յ7SD66i?=f56>
thN2M*x! U	LTQP]8ix[³gC"窜.1+o;Ui	3 6Mx[³gC(/&+O>L݌ |x[³g
V
sGn>,`@= /*x[³g%9^v
^Bk/u& 
Yx ZL4f5/GB!	Ķ40000 arkui K!CaGOlix5Jh> Mֳ8'
M?*,;2l[NR(8"Kurin&KHuBn!xH-Ax[³gC(gFRoS~0N\͙,ox! UװϞ-hf+A"'ix[³gC(qbTz7gf [^x[³gC(?֪OdE:)k9e7# x! Us	r&;OivMx[³gCHb%μU=?LK{x[³gHρKa=of96& C,.x[³gCHN{ܓ&2%F}úi	3 [x[³gChlvOcGՙ\+i	3 :Txm l]Z7+c_ ,}fב4OD|XS	h\R[SD66iUE5X9:JMB,-x[³gCȿgC6JbI~u|ɥLK1\x[³gCeHY<s[+Ion`Z %x[³gC(_r)mWiс͙,^Ix[³gC(_r)mWiс͙,^xx! lD)u)xrnͳQ)x[³gH@E3LwXwW1h(c_:R7I&<:nb 
EEy%{d.x\6h'\wJ3~2TwLf0~<GdsCLiW&Gǋ̹yoHс,L-OI`湗f$<a)?Z1Y\$L_;BKNu}09%Y$szǽc߻[&?`iiRPg+3#8b>\ ڙtprx[³gHρKa=of96& C,qx[³gC(E{O]){L݌ ox[³gC(V%թrV\Ym>͙,}	Mx[³gSӱAm)$eY71 ĢҼT=_zg_4[{лpU&J7Pt8{Cďs2&ZZA*KLd-ΞWrgo'V1Fp}|3u pAPx[³g3f-D"<*rįN_ZL tP.x[³gC(O,Om40:L݌ 4-x[³gC֣Uӿ24qݚLKFxm lϸsppLD))ҳfpY#8Y;?Nu>&[X;o@h׮]7rhic*;a;~>F|D81Bx! UHÑz$4KHYirx[³gC(q":n|U~͙,=^x[³gC(ȼZC$Ķ'JhK1]ls&nF -x! U}FeZ2RȓMڳi80\x[³gCcrӲ=_>4l^LKqx  ڒy&s9ʓ;x[³g%ΤĿ:)LcVJ8:l/u& cjx[³gC%qN6g}?i	3 x! lX;MQEx߳1x; l<HR@^nxeqL]2SQ݁07n'i2zIx  dZݐʤ7y˧qxM}Ax: &BRd!bsw>:Ǔ:24O"#H!@hγ~*1Jx[³gC(ȅ6,R2~9e7# wx[³gC(H4ǌek];¾}[Qls&nF $x[³gHG1].v?z~# HRx[³gCȝׇ"&D]9[ztdVLKp x! &p֥BP#uu:0x[³gC+o[㍟JULKe^x[³gٯK=3ׯg=W	LGZXBx[³gC(*g2#P'7L݌ k:x[³gC(Ê{̭ݷ*Jqfqn9e7# ٻhx[³gC(O,Om40:L݌ 4x[³gCµQNkQ1/x% >fx! l֝s鯥㲫1"tStx[³gٯK=3ׯg=W] PH,.d`p	+)Ĕw:ΈLKQvMx[³gC;GӰ{-[:q&o َzx  dZݐʤ7y˧qxM}[x9 2_ۢ;E@'v=ARF&BHPdrLpuwh%e!bGx[³gt^n㔊l.\mju=V @rx! USꄽƚC
 i(	!x nl {e; 3;㟪YvHf8ԭaS[o_߽m,40000 hiviewdfx BҘ`L\wqH7%=Dl; Cl{icRBΟcއw`3MݴD8Bzx[³gC(Hᵨsf65\T)bs&nF (x[³gC(ˑ'Wl<*Yns&nF W\x! U/6LOO%hiZx! 9M>Eͼ3:ϿKM	
x[³gCHKurª%m/*g 8x[³gt^n㔊l.\mju=V @dx[³gI>
^A9^IɋnXax[³gC(qӢNw8Yc_sL݌ dbxU{TuE4(d	" /!eYEivfY汰*62ͣ`&DDu,bD`A<-"-cs7]1(
<
/>)w%1OM-
CjzAB4ǢQz&ݹ2(]q|5GE$A0)c^ A`wn/"b^R*C
)XfhfX
)..יz'Njҝ4[81&IL bk0["./W帑6@-l:A&]vX'GŊ.o',ߵ</7KS.#?x+t{4b:}b]#NE+WÂmm{<iQL0(&AS=5}
Cwy#EQ] q\cdlU`*|#Rg@GNw<zEomuq7-X٦̋'֌1O8HTA_pMH%'R,`r4ُZV6b`RR5γ)L(]wNR$K D' 	qhhRBSfB/YG3$@4d5YnIO+Q9D@R5[IFZ;q.`R.'	PBe6zhɵW	nK8`4CaAİ_r),4`"}3lcASV[]XD/ͰD)|߼'HAT2yau"N$aӽQleǌܾ*i~-A)NJ ˜?_B	RoV28-Zd'"IiC[JcƐmSV_F(XF22=~Iӑ#?tNqJS[`7VV7yX[IN/E&忈D M(h!zT$:6sHr"QRݥJךn9O팅\(2$Bs2<ʾުp70,a;h ej	=/=$2QEA^xMUPPd)GAѰsX`_3XTQYjie(2V\sL[euVϦ	A]xdlF@EjF<M70ٛV6T<		Q$T/aUx0o籵{:4a0D y-lh}c+uL%nػ%_Yod||Ex[³gCcU|2/Ji]0#LKB&sx[³gC(G5>?nn[4c͙,!x! Ut2Ā1@(BMi0x[³g6Ͻ4#koLBr,lL  -x! UmY<Ñ-@]iE\x; lf
ܨbY'7Rc/_rUB@Ric?Ixx[³gC)̞2#?\53!% 83-x[³gC(mW[bzwJd>\\L݌ > -x; z{*!P=ٽw{_Uit^Pnu;Þfzlx! U)YTςhǣIi1x[³gC([B=9lk#]&L9e7# Jx[³gC(Ȧ_EҾ^y-ڷms&nF P%xT ldIXNÏ᪙`U$FBҘ`L\wqH7X;o@h׮]7rhiQT' cx[³gCGI_s><Rwʺjn% -x[³gC(=GQ֖xls&nF ڦ-x! ZꑭTpKЛ$* zx! l,nӔ\
˜*޳#+x[³gCH̅KU%3%b'ke% 4Zx[³gC(HǢQ%w]<pםzkΆ͙,'	x[³gC(=ބGsrxDom׸L݌ c8x[³gCGI_s><Rwʺjn% gx[³gC(ȁʒ^>e?9oL݌ x[³gC(3UɿWEGu~߭'h͙,Ex[³gC(	KN;l2Ysu@8͙,-Itx[³gC(=VM;7s)Uˣ͙,#x! UQ22IΧRDYi
Tx[³gCO֏ln(Xi	3 @.x; l {e; 3;㟪YvHfԭaS[o_߽m,*Ix! WIOϗȺ
*Fx[³g3fKn}o}eT}_ZL #tx[³g3f1
ٴ "x[³g -{F-VZ/só cKx! lQA͟bRqn{x! Uuw꿧^#~i +x! Lf5/GB!	Ķ`d[x! UвP)?@@iD x[³gȴ	gdz`Xؘ XOx! lz$"{Jaͳn x[³g3f-D"<*rįN_ZL tP/x[³gCȍ[>sUl(s9tsf ^x! lf
ܨbY'7RcL\x[³gCd'[oU/ipLK>x! RBΟcއw`3MݴD(:i1x! l(gx7`x; l}/ v7̞G#4'l7jJbBoxm5AIx! uy(j$ïaĳmnx! B.<?ݬf?YUX*g1x[³g3fӄ]	y5Ѽ3-KͿ 2CPx[³g%6sww>
ctf_L x  ]k}YͿgJ!0H0uq4H7/}R>7?
U40000 arkui e>NбjT=&ExXԭaS[o_߽m,[v jY)xiA6:%Ht),A640000 network RBΟcއw`3MݴD;knxS 9|sQI"tUzMq|Ag-`eZD04 [icn̸![gڇliY#'*/x[³g䣖x}^C-M@)8398,39;A?YRV1d*pc˙:ܮ+8wČL	{-uz1C Ҟ_JW/Jed2ZZݮ ;4`6[BUi&L;&ntz*{e/;D>)qrF}WIj=8^n}Z^Pd_f]xUɠ^^)-n0$vh#R~B}^X̠ZWgݛɫo~,L-OI`Pхϧ#ye-̼ҒԒw?/>hޯLUfjzkPd&2T]ߩ/zojWCV69zOt|u/LLRKSK2Toy}x}5f&oJO-}xπ3PK-)/f8imkT'KSgM~hnv%ӑٶX<AũɥE%b*mL{;ΖE+XD<*<jx_&؃%m:U7[~DaW	s8J^B-OMb8kjcbUw*Se e$~x rL4|7SwƞE40000 arkui enPܷROn-# ɺDjnm/ťs"'}qMz.8f29Uaoi;Bo~x[³gCR>nףܫ$y҅% Ǽ,xn l}/ v7̞GLIEp:`Rxԝ۪Ci2n&KHuBn!x40000 web SS:pυ∫kG@2)xT lSd/MΗHpЇ_[nŢEw㕱iAs".$<աS]fh'`xT lI,p5v<-v6BҘ`L\wqH7v jY)xi?&2Fx; lvT]H0Iry
x8_#l$,{~siaTx; lvT]H0Iry
x8#uy(j$ïaĳmx! U5\pƩ GA%ճiRx;sgBȹqJ&L[7[E~uӧ5yH{эƏ/'?,rаIQ%[gŢpW'pY"G?	J.`*mb 
e)i]3-?o&gX8)鳒dΑr,vwel5ߢgL^W sKsJ2sSs2
JK^[>9{cPK͓Y#<R8N-n{ڿ!fdd$T2HT۶]+u2n*OMbZ/u@:#s3o $>Px;sg%HI_5ע\x:@Pdd_>g7uS"'zsw(%dd&36]gp74ޅ,L-OI`ϕ9ڊU_,Ǣh{SӦ6o!185(a7I%«"U?uӄ4DoyjC@z9gfQ͟cwx# dvx;sg%Țڍ/mIjn(~j/W& C`_x! lW)JEBϗ쳀	Px340031Qp
qKcrl]KJM7I.,(ɏO,J,IM.)-J,`pmXTo_
o5V4Mŕ٩@s-/Mq>rJï33EUTڨt'l	aE.wV_ȍBUZrBR;vmUiqfz^"@F͆"[RO9bkj{32Rʧ.{d}FЂuxpKl{)r6zo_~9Pq{q$TmNfD^^J^Vq~Cvׂ$u.LUe ˞#@xL r~i9CL:qߑpG7 bē
ueWу(N8(9㉶3 x] $100644 BUILD.gn 1.LnN$!SX*Zwmx(VYcb  _+.
oR$SlxE $100644 BUILD.gn PG<@VEg$!EPb|N<ixK&~VY:!t
x340031Qp
qKcZ'*ZdGDaͯBd&''dde1H#8}bF;.>ψ`Hzu7&3nRFՋ:_'a*/,Hx(^uwGui&<l	 `Dex3 iӻl ޗc}#\CoA{`ŚB+=Bx3 ibq\io~hz~,}ra$M*^y4x340031Qp
qKc]v5̻OL?}'r!DMJQbz|b^J|JQ~^œ9.~}cG/-:PZZ\YP_԰KIOxbo)h&uC5d&%&de1?Pwoz35NwJK2RM,I˿ŉN@6>jS2sӁJcvj7z%ߍP};%>wPj3JR@`H9ArS4ösvn¡:>19983)3';9:!{*k.̈́KoZ~ri1P䟪{yߘD}eT$ 5*xUzβʑȩG՘ZZQov|SFs/4^:/?>M>Y&Z?~0>/ @dbhma=JXP 9;ªOe{=L[yDtTϡ8Ɗ3
KYsK*sRSK2@bbl=qP`,(-kY,zyQ^
ߦ uOUx31 Www[6췼Rqj1ZkçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1tuX/3z*nEQ__\$6ѲGt 2RM)9@͙%qI:7,S\I:A3n|ڼj7HKGQ
tur	cvP7|n&keGQt)CmftWgax-c
<@QVV\̰xҽGnt9.蘻}MLe@3,jq䔗Kܙ^.|=4';16MC_nﺖc{ME x  +l)8>!Nx7 oԜ_}< (8.Ñ{u7ǦݚR]bSx83}rx31 Www[6췼Rqj1ZkçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'18w׈o?
E]r~N~Q|qAbrj|nb^b:P؄oG->Ӂt㣻KQ4d$V5g0xjt

ez`b`k̼ttC[|Nk+6(L:tN>^b|K)3Pe] M^HgFɂ,
쏞2/sSb.R+TEm)A׺%?Ud)D]YiNvbm6u-ǢzL/xyTF^T<TZ/K?&@XY__<7!6/\?u>0"" 
tx  J%"
/ߘlIۿ{#xyTFs}YEY@^J\j䕌 Pxa =0^b7,ԣ^!Y40000 native_drawing MO'Yn*U4/YMz勓3b'3%S=QbiqдII2't@xy7[$sWǉ)$  PK,,KO)J,Kg]fWRo{ƌI"YK,Y7xf^OM k%@.xyQ~/.zlϯ쿢yb7&.epۆ<W{q51 Ē̲ʼd/>7v^AMW(+K/gqʐya:oc|Q j;xh }9&N(y	rqH$&!MN-HoyUCOFGV3d)6z@c(~c3b/_]SGR5I-owx7 2nAX;!UOZ{Ig´s	B!3AU<xR =yk4yJLTLMƷ3;{h)Z䓂;[3ыE3Ɖ *퓓!'x 2nAX;!UOZNxy^F矧Ŧ%f7y)[e <xP lmȹH_9=(xHÚa#;$z<ssURˤ!X,,xyCTo6y!%.0*?z& ͸1-x  _V{9A3sP.xywT&ιP^wſH'~?F nYxy<{qYCF[ݺ>4l̸ x  .,@ܯqZ3V4xy^F繡ͮa63x 2nAX;!UOZNx; 94>n@
"͚jZ.3;L@\l9'uW-pDHex" 9g fGs/UH32z	x mVd4M^auϟ5sڂR=CJfEfv~QA40000 native_drawing  UTN,RF򯶠IC3;lel;maʊz	X	|@UE!?@x .&,t@{`5A5IxG =CJfEfv~QA40000 native_drawing 	Y{ŝyl>t:2#x ݉r+}~tX0x˼y%Ȼo_9cǓ} Zx˼y%Ȼo_9cǓ} ,x  9xHÚa#MppZx >)l٤~FZx FFWK'X|eN,x˼y+vZ:"}0s1o? Jx˼yA/]WQaq{]Lll͘x 7x˼y+u
!~ku	}Zm6bx ;a=ڸx31 Www[6췼Rqj1ZkçO[OtwUL.g7f?b}{3WZ}ܬ"PyUI#ϦRqS%d'1%^|;Pԥd$Vg08{ܰ1KZپO:z(<3/aBhZmABno[ 錢0;>z6q-]OW@Qʐ~5)FA+/2/!IeϮ<<.	_Em)OuU5଑p\&u"D]YiNvbm6u-Ǣzڵ~vx˼y+=oպ٭nE׉b/9ު2W˗sO11 Ē̲̼r)7&><ob{Ƿ JsNuazrfG r9}x  `/_]SGR5tI{,x˼yCȺ~p]1ԵcsYx˼y+Og;}uY<VtkړYx˼y%H9D8R~:{̓} -xP lmȹH_9=(L@\l9'uW-M;ќd'gDzC
쓜!$x BTQu|.z-x ޏwE<WZ6Ց,x u\}ݨJM6@a{_,x @pXXΫG9[<,x t:#:W[xsXx W }#
(@&{Xx 	Y{ŝyl>t:2:,x˼y+ky+hx2Sox `ʹ`0` n6-x ߰Ng׷LOQx 2gA)!.ZK|x9 9Kyy|P-dM;ue'x(X[4ړ!sx˼y+u
!~ku	}Zm6x˼yCMz˞]yxn3]>tf(%dƗg3&^?U<3F¡sP׉0* Gx˼yCvb=B䳼v>y" Ϝtx =& qiw`ΧՑjZx 2gA)!.ZKjx˼y+Onifsd/e5vxP }9&N(y	rqH$&{h)ZM;[3ыE3Ɖ *퓓!F%Ux˼y+VS&c	a{l̤q"xy<zEA9_p=kH)u1~ з Ox  G2ծ<p$][7~xyw-xh=O\r*yntƿkW,[a9'Y(%dƗW%34}#qg-KUQg3+2E\vٓ_O׻W:"" Y<	x  lJqݙB&3,8xy7$sWǉ)$ \/ ݪdxy<Ȇ>VO.)lԊU3٘q? x  '3%S=QbiqдII8dxyu޿K-)%ձ#YG%~ 	 x9 G2ծ<p$][:'3%S=QbiqдIIhx9 Ó8ʢ<7j/E7ϓ3bJ%"
/ߘlIxyw-xh=O\r*yntƿkW,[a9'Y(%dƗW%30yqj/TFQV_ΰMsgOJ|=]^䋌 .^=Sx  '3%S=QbiqдII8x8 J-(SZV^J3#Eh
_CU i 
[, !u.Gx7 MN-HoyUCOFIg´s	B!3Dx7 MN-HoyUCOFGV3d)6z@c(~c3QIFxyTFKH)lNh<'!q-eJFO ɖ?rx  X.Mx*>Bʟ䓩I xyTFĲ-ܾ5uj.L䕌 VOMx  SETȫzbqʓI	
|xyTF᷍Ol$uZ~UM.#Q7y%' 71xyCep~Gh)1src n-x9 nOӗt0|8?>};17UBW!	gxyw-xh=O\R-b	O9chƌs3]edB9ϪM@!/$,52/a'eSjtJaG(+K/gXWze{'W%wtEFE LW~x I7@VĆ>U_V9f$C40000 av_codec  JR̨8Ȥn[M<R<{}n`sMU
x"ϑe?R>r=C6,JK40000 media_foundation iB	FhĦFœA?$5Q"F1p</v2PWDxZ 7yt֐)7|o40000 av_codec Ia1"!_G*g7eM<$o%zR*yCL/̇;)]$0x7 9]&tY΀PHyZfM/^ UxnO6phA0x;|y|Lם]&;\5۸b γ]x;|ycwi?ɟzԽZsԚw	xZ 7jQ\]![$r40000 av_codec n@FXM*4f5M<R<{}n`sMU
x"ϱ)	7&rx t7@VĆ>U_V9f$C40000 av_codec n@FXM*4f5M<R<{}n`sMU
x"ϑeR>r=C6,JKj$5Q"F1p</v2Qy<x7 @VĆ>U_V9f$C*R>r=C6,JK/Ix _m}˦mXuvvx  ,YکlLTG2n(%x;|y"st,_D<&k Rx;|yB&|Q֪ Jg]ieq&# 5L~x;|y 3g} P/|/eF @e*x bPacs*)Xx v׿3=x1L羱*Xx;|yCHO?**^VaMgq|F# o0xP OL34//5Ƒ*COeظe'̓jdDN,_v2"4x;|yCtcwx.~pPXS <x;|yȥb/*4JQ믍Zshx9 COeظe'̓jj^{H%2V+0xP OL34//5Ƒ*Jȁhrśj&s`6q#L;2ơ$ZxP 낤<XٹWE(*COeظe'̓j U9+x1̓2%>x;|yC)	
}>Oyc=iF# V-x  7|+}J4̞@[xP K{qn?>r^L)m*N2Ke`fwj=R:,Ph2%X^x  7|+}J4̞@Fx;|yCHǚER3O]-i)F ?sx;|yȯm;K_N#Y]-b L	 x lkkҟ3!0*___Oee[5Nʚw৸|??}',)צ)Ġ` 40000 player_framework jpE&1*IFw2EA"x;|yCw5g=M[_I3>];e)F X	Nx l[P=ALz`ߑ*_मVŘű[y9ee[5Nʚw৸|??}',)צ)Ġ` 40000 player_framework |ҿbE[:<-Q$7\2HFfpx;|y>G>-󹤙eמZs!xP K{qn?>r^L)m*
B,ɞFӘ`j=R:,Ph2#{x8 Xg5Xejؾ*Vpvkr;62ĳi 2哔2Bx;|yu4ntf7_+{ }ox;|yȤ-5ymY',{ЦIBtF 2x;|yCșs+u[_mF# szx;|yȷfֳ\r}Zs&x __O)lqTxO K{qn?>r^L)m*_R<{}n`sMU
x"ϑ=R:,Ph2e#d2x8 K{qn?>r^L)m*V=R:,Ph2yx;|yC(HS$5n3w/ې93c[&x;|yPXֶNnɃ?GiXF9 Rx7 kkҟ3!0*___O)yx;|yw>Brޭ_ulF Ń,x;|y*}VBz6W\p0InF Ix7 *,?W$*4[,Ƅس&ƒ5;rTFx ^1ݶO޷d.rTsx;|yHvĪK%mW*F9 x;|yCA|?Ez~49x)F ;-xZ 78!DINj`=Q<40000 av_codec Gi+@ڙMoV-kZG\&x 9Gi+@ڙMy|xx >AЙ8omi*+Dx;|yH3^o7I3_ro%# 5dpx 9O|jZA.fԻYMyx cfu!5ѱ)9Lx 3b$T)zx;|yBȭR6#d\MF bx *,?W$*?>x;|yȯ*R}Obys5uPZsbxO 8!DINj`=Q<*_aWmIor٥>|d\9˦3+L0#A-A"DxO [P=ALz`ߑ*_C(t=mbŭ0m	|ҿbE[:<-Q$7\2$-^x;|yBHMZ/9|CrU(u8W 	x;|yBZv,fRg,oƹ {x  ٳv5<G,Ϩi2*x;|yCHcEԥs-R/~5UHT< U[x  e[5Nʚw৸|R^
x;|yUS8ڳ|OxiU)d1 Шi7x;|yC)	
}>Oyc=iF# Vdx  JȁhrśWK8x  (Z'GiF}
	D
gx;|y#ߚ&r3U]N[R~ WFex  Gw+inKx 낤<XٹWE(*	x8 a[; uT4*Vj^{H%24Px;|yCșs+u[_mF# s}x OL34//5Ʊ*~BGx  1w:t{U2Gx;|ynSKkmܞ~yFJF ̶sx;|yHmxhևk-3aƹt Nbx;|yk2d~LqLFJF ɬKx;|yHHJv<K[#ωYwxo%# wx;|y(xQKMo܊Nc  3J$x;|yQBmbrSso%# #x;|yHeĜk4p>F9 Ox;|yL#:wݿwAZs/sGx;|yCӫVv拯< x;|yȥb/*4JQ믍Zs=x  BL¢êvylU2
f/x;|yCH-E;7=p< :x340031Qp
qKcP/>ݱSxWi#OؖCK46INM-J`P_"U|cWwcK*c0R㊺sƔEi|JjYfr*b>2K"ω:Z(43Rg9n,]Ow*sSjmqsos#gf'jJJRS3C*rbg1?I Nm"GPŹ%)%%Wp(ܿ{~wȖV\Q_XYGgsyk?{}TE%LLۦ.K?lN0EJ-G}Vz]$4CWarr9s[j2SRLkWӣ<'? d+%x _ݍ̽3(C(ZG5ϱs@xy'VK#;'.23kF С?lxz 4?Qh-/R\!%100644 camera.ndk.json e2_	G;smB장a`x|Бp	bAtOh{0V 6uxyIֻ3ٷXEYnsws<C3ԢDl<3ƶFMvw.pŇ5oU(JSR2S2nvn>_n{dz.79MXKbw[s_NْByM4܈Ң<!|y!oyJ)W'+2!1tc3ͷ=Λ Ya3x7 4~tI !rY3HBQUCHc)RZ0yxb 4?W~q100644 camera.ndk.json Rpg=}os᥿$19	cR7!ז-jxL Aqaf?ڝw`|[100644 capture_session.h Tarj^}F!R!xyBXfbYԆ6ӿ:Sdcq+# 7xxL Aqaf?ڝw`|[100644 capture_session.h n%)9BT{O!o"x31 Ԓļ";f|)=CyVy]	LQqqÅWL6{<@<+lυlg?m- B*(fx̜*r۪ _{׺ 	%x̜*Rz2/RP!؄I {zIx̜*{9"<:N I
nx̜*R+rZvyHvV~3k} i	x̜*"nƅx5t 8x̜*]==U ;'I>Y! 	^x̜*V#u+U? Ex̜*&zeCrfjJߋ6 	*x̜*"2x%xyݣ Px̜*rmD'C|b.r 
vx̜*"V*cް 2
x̜*~dvRAPJSgy]9N |#	Ocx̜&c./&Rv4 $x31 NO\.|qWis4eLɥ&a~J✝MW"TZ`Ҵ_ok&(YPw"R\_ʠ~,ݯ6sS[|qP59Uy;oekɔaiOIegGVŤ^AR}\Tqoϝ"bx37A(	))׫0,cvN9}	DIYiNvbnFjbJjQ1UgT}6-SK op!DaY-vz7uS ʀJ0x340031Qp
qKc~7d/O빕&(1=>1/%>(@/ᕇ{M߾wKQĤ̂"Ml/c-VHSدia
ՐUǐWЕ~YYH?W~Ti^bIfY*!%@cLf~,9MQ(ݭSQզd&9nmt̽
*MO-.)-x鐴b3iSJdQf敤ܝ#)t'[Ei1zS32s2K*z^<o9G7[[Wx 7M
N'Ht@՘ZZQ]0ђ-Iul&ß݁S@~+Ӟ%E|-_xĂLO<2MQUT=Kofw_W@Uí>aks[2P%9)%Ey鶘!4o?6`O|Tii&0JKƶ..jco'. B;Pxi ;/h[zզ&B]eu!OH/ 2ha[㱫iR6khLȓ(C"E[f#r4	H)+(xx9 =_{Ӆ,c(Cʂ^bF+-҈es? Gx <x_dұ#ǘLڞC@*.yaxK100644 native_gesture.h BzĲQ24$.0*k8Ā~M
0:Ys!'w~?o<g".Џ@_2(7<k%TUYQxgg(cg]brN?)/q	 82x $100644 BUILD.gn wޙm7C疖$s@HӨBV
>`Fx100644 native_animate.h ppuNXq7nP	ّ׭APNuP2}פ.B}8jblltf&}YzkS(CSxY9hewiPIӝ;{`Hik,Iix  ?=fAGaؓ,$.x  K.e|o)&5,;X/x  RTwX7䫓@]xQ [@s<@ۓfhe69<A0һQPSzl` "m6՚J,0&_x{u3FC=&]H=s ߕ'xQ ۮc壯tǭЙ7G3`&rkns)QP]kz8<;!P:+|,?h"kx  RTwX7䫓@x8 ڠ{g`^8;ʛcShY)Ig_iMVx8 HӨBV
>`FxIӝ;{`Hik,>x  丞%-eְF%<=x8 =}vz^Ru˸ձ;]b1r왩9ix8 =}vz^Ru˸ձ;2FԜW~ڪ&)c~Kx '$100644 BUILD.gn \EVC?sÞ$swCeQqxd/ǑC@8_Ul@100644 native_gesture.h ߄@lݺ<_F)J.F P㰉wƆ]BxK!@l\*דCkVpU9.]tᲓQW]L2x '$100644 BUILD.gn \EVC?sÞ$swCeQqxd/ǑC@8_Ul@100644 native_gesture.h ߄@lݺ<_F)J.F P㰉wƆ]mSzl)zRh]QCkVpU9.]tᲓQt^D\xQ X{~^Jakg]^G3`&rkns)QP]kz8<;!P:+|,Ŭ <x  XhM~	kx{u-HQٷZќIs/^hK@	 c&x8 [@s<@ۓf;heo?gLD23	Qx j~;a
9SqoéPC@*.yaxK100644 native_gesture.h BzĲQ24$.|&w3?N~ZǎChe69<A0һLEO	ux j~;a
9SqoéPC@*.yaxK100644 native_gesture.h BzĲQ24$.|oE1my&D%3?|C畓Che69<A0һC`xP ~;a
9SqoéPo;Ui_6ۈr_.|oE1my&D%3?|C畓#xx7 ~;a
9SqoéP6&)Z8ϗe4I!n!>x[ʺu*F)?UBEMvg*
{1ys !x  +*%{T.'1Ix  /щ'<jxx  +;	ɷN)ҝ۵6'xX t$accessibility.h ~Z	lr$D5)l+."_xcomponent.h 9ةS6ͯ|su
H#tx! qu+}ȪyiS ^0x  ʛcShY)Ig_{Ex{ $100644 BUILD.gn wޙm7C疖$sL6Xm4KFdB@'0wY6ᘓ.Jj_U_<"Z-$0
x< gCWA!})<
fxi_O36o.2 KxU ڠ{g`^8APNuP2}פ.ZҖlNʌճ-r x! qu+}ȪyiS ^0x  VE|ӈ0d]DdR(;x8 *.yaxKhe69<A0һXx! BzĲQ24$.wxSx9 ;Ui_6ۈr_.|k-4suLŨ strh,x[UD)E/=aƵf5uYiOT)9vknߊQW;;Lݸ[,3&LX2jf^bIfYj|zjqIiQ^檕G6;6M&7覒Z\YR	T1_7J1P{}	Pw|Er~nA~^j^	PSėwX6o5u{9v姀,C}OO$T,S3yħ,-m{,{( k~Ix9 ;Ui_6ۈr_.|vz|LlƓxi Љ_mw遶b9IYo5ÒMuwqhPs.֓.|7Yp߆A28CI|~?YToS1_xxh ;rc$^~(fTaOH%

a|Of|*)(wғC8kLH9	8[0nxP ?~Ox09~DhV/Ct~RC,{Rn.$MxP ?~Ox09~DhVmSzl)zRh]QC,{Rn./%,xO ;rc$^~(fTaOHZ
9y`K;Qg\2zA]׾2'xO ;/h[zզ&B]eu!OH7{љ	8gᘵzw7[XG`;/ρhK%pxO ;ԖU!\JM.9!Dm0OHyoFwg
r]{Wtw:;#1"{̓癹%x^x[ʺu=6KjK}LV~ϽaL 	x8 ;=<}t;L4?rO[|*)(wғOPxP kHYDHyw9x4葫EKyBjjt1CabVK->!Xw%Y/x[ʺu*FcL]ve^|oe}~x  A1fb ț֯z-x7 ;rc$^~(fTaOH%

a|OfwP"xP ^RN+bDqHÕF'p1.{CvUFSj OH(x  NJqCx125§=0x  X{y㗘X}_x[ʺuzW嶵QwBGSB^bIfYj|b^fnbI^|ˍR&.#Ѿ拉`lT)9@?=dذ9ن!w:f[4=hc?# K7?x9 GJPfG7	AZ'˓CI|~?YToS'JxP Qhp<P},8֗o߄@lݺ<_F)J.w&[61gy+ēJ!)x[ED)E/=K^nrq.7AGؒnnf{|ŶV_޼Ē̲ļĒT,e)L'VOWf}pk=۹>2 coFuc;[um?ycHk6JDWGBV,2w3bv[|~#lr>qR sx` 
xr $100644 BUILD.gn Fpn`=:ӟFm^OH,ƤRnٴǨ_Ma~˜sݓݘ\84ZLA"l5bx9 V P㰉wƆ]j;-;L~@.[i#W *xb V= P㰉wƆ]100644 native_node.h Ҡ掲R׋"sʓ|;-;L~@.[i#Wd+9xeC=Oެ7Bkx6y2s fx7 lho]֊C-jD9<ICR\4G,,	|ڣQiף	YFx JO100644 BUILD.gn \EVC?sÞ100644 drag_and_drop.h ԖU!\JM.9!Dm0$HɚGj@*b1. s2d-4T(yB{i3ޖ9e7<k%TnOCx[ʺu=6KjK}LV~ϽaL ox8 yoFwg
r]C8_Ul@.V6x ppuNXq7nP	ٱFHxeC=sTzl[6kV3?KH]5y2s Tux   әL$~5!0XՓ|\x  a~˜sݓ9
x  s2d-4T8x  e|YITA/x  aF㭄_#o瓓
/	hx bO100644 BUILD.gn \EVC?sÞ100644 drag_and_drop.h ԖU!\JM.9!Dm0$HE4z!NLnBm;4a(|ړ7<k%T4FDdx  .V ʉ=UxP Sa,餈m0KMH~B;s7	Œ$ȓC,{Rn.?? 4x  G(}̎ 6:RǓs	xi ;/h[zզ&B]eu!OH/ 2ha[㱫0*k8Ā~MCkd'2	*`(),xxgg $Sh_~!8d 7$x9 TӿUX$\&an(C"E[f#r4	H)lxgg $Wv'=KK,>ZȽLCRx~ l"A@y*v]> )b]/Aݲ>$ę @uEX$3\E1B|\Y'\E?\(Hf%h($8MxggpXDݜܷDęx݂	 U	xgg#KIOxbo)h&uOlwpYCfѪ7O֝zB^bIfYj|b^fnbI^CkTx%F{|")?[yp}NM'3zDߺ*.5ev{WȹL(%rБ߲\#~Uf3p6FMG;3jQ$2ڽ,܊ӦUy/kP zwuoe5"W8$C{r=ȗg1-,bB˫O,"etǮ{]?[6a ]2`x6 K<w0₞(~Beำ*bi:0C9x>}a%xggIUHHv͂m}y1 ;x9 ]+#Ȥ@(CekȜ \'$՘ܓ0x9 L笖CSk(C%*,E RjXn 	Gc	FxQ  A
5i/ZF+#5,`(CSxY9hewi#wxgg $2NO\nd vx< ppuNXq7nP	ّ׭APNuP2}פ.`dXxQ x_dұ#ǘLڞiWŬdoÓ(Cʂ^bF+-҈es? Z)88xgg $âlzI[WJO)w\;Y9 Xxb $100644 BUILD.gn wޙm7C疖$sx3DNG6̰?4tf&}YzkS(簆*f
Ix V$100644 BUILD.gn wޙm7C疖$sRҶsMB5)B}8jbll.DT}uq(Cʂ^bF+-҈es? PIӝ;{`Hik,Lxw $100644 BUILD.gn wޙm7C疖$sHӨBV
>`FxB}8jbllAu<ηIJJq(>3Mxgg $YR@u|5Y9 \x{u3F_E
-k1\9s w	x  UQQ9tlu}E8xj 8E7d7g;K.e|o)&5,;CG3`&rkns)QP]kz8<;!P:+|,݂.yxj x3DNG6̰?;tf&}YzkSCSxY9hewiQPIӝ;{`Hik,FV/x340031Qp
qKc`?햧m]6r!DMRiZZjQ|Fb^JN^~@e񙺿8m=754$(/1'<3/%q̋VrlˏߨpF8( #39>((>9?d?1_8ks!GQ̤Ē̲Ty)zYys+@f. Vx31 T˾X<پ\䙦c۽LL 
sS2͂S2%~C}<jK3|J^ݮ?ƼPT$&gAXs_|ti<3̊Ԝ'OUhkrk.АX	aq렑>#MO,u(595$ϭ͸pvG루//-J-[W߯R{ac ů$
x{I 2sSd\}A-VH8ܗz\77>x{I 2sS뽻<w %mmlTpa 7sx{I 2sS~^Q3J^W]S'L^Q O$(x{I 2sStv47^T@i6'oTpa ;n5x{I 2sS=Șvn؏y*:6*0 N[ixQ F/!@.hH;100644 image_pixel_map_napi.h 2EczvE^#Hx{I 2sSn;8~yLɧ.q# A>HxQ F/!@.hH;100644 image_pixel_map_napi.h 2EczvE^#x{I 2sSE&}Ttь7*0 ?g:x{I 2sS]c8V|A.iyDt7*0 7ex{I 2sSgQW<7UFF "2ex{I 2sSbޞmPYvFލ
. A4x{I 2sSjI<|-!B
. !
xV  40000 image ZQ!<B~jh ?JDW(OL,/J|4
rʆ?l$ex{I 2sSvھ^U@ō
. <x{I 2sS&_L-}$yE'6*0 4jMx{I 2sSwpyx?/Wˎtܨ [x{I 2sS2wWٽ\+6x{I 2sSmY޻+8ݿOݚ,Q _kx{I 2sS^XRĜ[_US٨ Ex{I 2sSTj~gp~e-'\)<x{I 2sST<eo?
\@px{I 2sS&y9^+	mޫ6*0 1s%x{I 2sS}%aGƳ߸ި Xx{I 2sSڟkD^*
nTpa :5x{I 2sSJZ-aöȓsO0>5qFF J(x{I 2sS<st?:6za	:nި :Sx{I 2sS>cb	jhtJ7R\#$~x{I 2sS4&>^x&_I_|ofL  W6x{I 2sSb4hʋ{Eviڨ DR6x{I 2sS4z^q)Db똎/ܨ @J7x@  40000 image O7vſ'qw!"ꭑ ]x*o4ڽRёԐ x@  40000 image ckG%OAHO &Ҏ;yމه0iԐC Ux{I 2sSws||7Qaڥ>+:_iAfۯO&^sҽkBwڷ0^pG힡	ҢܔlL7ۙֆWNӝ, ;-x{I 2sSdVo\׻G𹓁p9Q Dbx{I 2sSvrXW04;?=wo~G$lTpa CNx{I 2sS6}鲙
5'n<P~Q ]bx{I 2sS&܎;v7}FulP7FF `MTx{I 2sS*`Ⱥ{ߕinnTpa )vx  "3}hT /6.$Gx{iȜ^&r\S΋d,# ցVx{I 2sSfߛo;j߆x78Q L !Vx{I 2sS8Ns<WX|nuܨ "x{I 2sSLsY6c^Ԧoޝݨ A_Fx{I 2sSW|>_O;+{/oTpa G*{x{I 2sSZo,wWnfڨ
. //x{I 2sS*}n^#\8rcx{I 2sS5:.y{e6*0 2x{I 2sSL" gWgk2VJQRڨ JMx{I 2sS^|iݟe;ulߨ ^x{I 2sS*<=wkQd
7*0 1cx{I 2sS>m}֯K
d^/h9Q Z	x{I 2sS͸sr֭A68¶Q R>x{I 2sS)f:gɡ277*0 =sxm  40000 image .-R3X A[?w;)zuKS^@	 DR|'݊2~̫Y`45Box{I 2sS;2򧾩{YLm|oTpa ]ox{I 2sSگY[>3yz-oFF nx{I 2sSĂGM_vL^0Cd׬+R6*0 &mxm  40000 image ?"bs:{ơ A..Ltq6nuK]x*o4ڽRё||4
rʆ?l[H8x31 ҔlU2jX冷{ԽA&e)2}Ϝ$$>~3p%ũřyu>vcl&Z(JZUdebx]Eߧ\Ҕ\$u΋eo#ݪ 2sSSRKd|\.懝eݶF١'?oMM:14/%䝔bXΜzzzJs2*}WV}חiY QWXZd!;r<IMz,3%5?(?yyy=޳lҷD\23곳oNw }W}x;|y_VoU,=?oۜ٨5 W)x6 x8ASSQ3 9)`Y% oǷ	@#C)8knx;|y.垾dĄûTMdmN	)Mvdl {0x;|y/|-:/{Ř妍sIx;|yH)<.ƹrFJF ,x 9Gi+@ڙMy|xYx 9C,"b Д5ѢMyg#x (R!W-<*AQx;|yx_kōsö
x 曺7gUn6*8x7  ,l,ΧN9/}*_Y% oǷ	@#C)~x7 Y% oǷ	@#CexQ04'z+MRWnrDxO ywM#HգW*_Y% oǷ	@#Ceș0q2JJ%&x;|yV1YXXHbڨ5 
Dx7 Ym<N;#E/*_Y% oǷ	@#C),Fx 曺7gUn6*sx rZxYrM*-x;|yHGFSYO-ϬZ\F %ax;|yjIYn>\,IgkӽQk# A9x ū2$ )F*ݓ;x >vږU<T*~.x;|yȔs\cкoF9 ˺Nx ywM#HգW*?w	6x;|yopl\76 SR[v:]!=Q+jo6վ-s۟)ɚ]}.ԔҼĒ<Uzo}4tLEN2ٹ)7rzl&<y
 NFFax;|yCȭ[w_0ɿEBzF# A	Xx;|yy|PxmL&@X II',0ch?w{<&i0p=F^~C榦d&Ƨ$d1,?3rˌhHw=7Ph/bcSR.qLO< Cx;|yG;g
5|+~*W|Zs+/xQ > ϸM1
__*S7EZ/
14`ƸmPA?`+{_J[˫I @2^!	x;|yқ&.,LsM@!,>9?%5S~O̘}ڿh≙'coz
575%31>-4/%$3?!e93^fFG빁dGF{.ET䮜%<S H9x I7
VL:㈤9+J40000 av_codec 	DsP|2f+G$M<'Y5bfV4Ƹđe?Zޑ':NnO OUxu40000 media_foundation CX.;b
EA?Pw99agk:7̓2N~x9 Uԋ^4Vj 
{yEPR4N铔2>FxQ > ϸM1
__*S7EZ/
14`ƸmPA?g3"1&qeD<xNݓ2+C&x I7
VL:㈤9+J40000 av_codec wC<]HΎM<'Y5bfV4Ƹđe?Zޑ':NnO OUxu40000 media_foundation CX.;b
EA?Pw99agk:7̓26Nx8 7-Æ@7\mp}*Vc0R\lei2)	Zx;|yL`zӕ?2 PH,OOIMfxoutgD<elV㏶m$kw)K ZsSS2KRK2V%͊_xNӑ3sNvd9ɴfӧz-)F OG.x;|yBxsݘ[?(+8W AZx9 -.KN:3̃*A? Yf 'zFB2"x9 -.KN:3̃*A?ק,.g4FC}2Wjx9 -.KN:3̃*A?iCfILUZarZ2z2x9 -uo0#t`FkA?%:I1Oim2
	Lx l9vA5ǖU&U]?,ݑM<>vsE(ڮY/܂Ƒe?u^"oN(kO6gme40000 media_foundation CX.;b
EA?X6/Rhہ#p2Cnx;|yȧ8|ٷיK?$:Yq 5OxO 
VL:㈤9+J*_+@Gn!
Sd;!xYbeZޑ':NnO OUxuzR!-x9 -S7EZ/
14`ƸmPA?`+{_J[˫I @2qux;|yBHKGG?+U/z\MF ?J!x mέugJʮ)U x;|yCO}T:_{AS -xr 7l_0җ<N°l9e40000 av_codec Cv|q36A[T\M<'Y5bfV4ƸđPw99agk:7̓2Z|4.x  %"~G2]x;|yH2§pr`o%# 8,x;|yCp@Ë9L'ɓ6h+x 'Y5bfV4Ƹı)QXx7 'Y5bfV4Ƹđ+HJ]b Χ^2rx7 9D)Ҋ41Ej%~dM<LƔQl4 &P)܊7x;|yW֒
6'KU_hmFJF cx;|yH$[5B5~!RUwF ax  n,W蓔2>x;|yȧ8|ٷיK?$:Yq 5kx;|yCW[L~.r)F M&x;|yzq!'e/\Ǎ HRx t7> ϸM1
__40000 av_codec vA5ǖU&U]?,ݑM<+@Gn!
Sd;!xYbeu^"oN(kO6gmejX6/Rhہ#p2;lx;|yCtoޢ*"TK$Mh 
x9 P&V=DPoRj
$oڸD2xaxP 9{ʡmh|֒Ax~MP&V=DPoRjf6!l6X2u"x 'Y5bfV4Ƹı)Qx7 #eY"3shW*Zޑ':NnO OUxupbx;|yHԽ7խ8&3K(,Ƹ l<xP P٥+jV+ڑ*Zޑ':NnO OUxujvMyV~m/
̓2p$'x;|yHԽ7խ8&3K(,Ƹ l<Tx;|yHqJ9w7t}[vǯ u9 x;|yvKfkOr~}+x  Qy}[+;I"֓D4x;|yzq!'e/\Ǎ Hx;|yH}K5;Mrk藯[ ڣZ3xh 96[M[j<-@aKNM<v3(V
{k<:e 3J̥u3ciϑWbjUrn>Z[lD2,2#xP 9Pt#UG-	Mf7}!Dnj'jUrn>Z[lD2՜$x;|y5I9x7zFsͼ}+2.xg 9¡z|jp$>b9OcM=CoBAAV!N e^{~Wj:I$dLjUrn>Z[lD2_^-7x8 9L1&fOuKɔ;9M3MZOa%N`|\2Hx;|yCW5]uRfq.p< <ux;|yHφjiKO{1rIro%# Ӛ!xP v3(V
{k<:e8a`v-bB9ѵ:j~~-pro2$ xO 9¡z|jp$>b9OcM<v3(V
{k<:e8a`v-bB9ѵ:;#]x 9C.QϠlMykx;|ym?xk|S[ 7x;|yÀM]jal5|@K~sd1 lx;|y}Je"Trbo%# )K,x  
$oڸD2Dwx  	=\<t*[2;.&x;|yC9!=B9&B8)F Sx;|yC[&sk5\T?6y
 ^=Zx  dRC!W@<<˓2.x  M?{_V+2	x;|yCȂ蛆05Hܳ^qG)F )-x  o<Xz!\Z32^x;|yCou_-jRKt%fF# ',x;|yȷ;C׻4:FJF 0Xxh oPt:捕rNOc*_CoBAAV!N eeĚV;7gk3jPe-v	(ªɟ2;_1Ox7 9Pt#UG-	Mf7}!Dnj'N=x;|yCȤOo\qpnS jx 8x:#];*4)کxr 7yV_hpf*Chovb40000 av_codec d +(g44MdE	"X@`l?h=NRf'zAn=ƓA40[x Gr@$G豝)2}	x  ViNϰݥnth칭8x;|yM}byܙ\bwUJO&iܨ5 	dx;|y̓,Q7KRmySZkd1 ΐx;|yȧrCbT3}Z]kd1 |cx k,-ȭ/7P\Uౝ)Wx  VDp-AC0KAx oPt:捕rNOc*IoxO 9PЏa_$a
_YMdbd$iNw"ŻA0"2do.R)'i2g"x7 98s8@}.mMCX.;b
EAFx Gq]ؾ5cp%EIQx Gq]ؾ5cp%EIx;|yFh%;Zz]MԆG͵+x ac7 ĉiˮ?*ʱ,xg 9B 㾰"u`'PZX$TȑM=LƔQl4 &PeP&V=DPoRj
$oڸD2~/"x;|yBȟۙ~hqUM:j\MF _Nx7 l.s}:ե
c^*K	̮xi
zȓfrx;|yי{<?Qbxd1 t,x 9+tmH=gMy-x;|yȷ;C׻4:FJF 0Xx 9꿶bѤs"Myi+x;|yCDo5dz=J>ѷ Yx;|yȚ!T*W|߸n(}+ox;|y⛗L
*avjڞ zx9 eĚV;7gk3j]D&KoWz2J Bx;|yȊCuᗳ[yNPٕ"sUr إux;|yCHR6gٝ.>5:eF# WNkx;|y]^I-~o6+fo%# x;|yHiO١yrEq5+=Pso%# ]Cx;|yoLd~Fi}mFJF ,x;|yCjFUMWUo[ x  Pw99agk:7̓2[54x;|yC#"7)m9}S G-x;|yC<=}g:Hވ2u< JQx;|yCO}T:_{AS -x  %"~G2x;|yC_:SB}ێ̊
I2y
 -x;|yCgd'-;&!.u)F Gx;|yn!Ԧ["/)s]~{F B!xP 9vA5ǖU&U]?,ݑMCX.;b
EA?X6/Rhہ#p2% x;|yHYOǧ.aܦ+lϫswo%# ox  ⴝ"7Kd-Ux  %WJsˬҶǶ&2s<x;|y.ȳs$J?p
 \ix9 -uo0#t`FkA?F@ϡe؉q.29Hx;|yC%6mf]]}nL5< 
Ox;|yCe;54L{S x;|yό"|]4~xUtŶ 0@xP 9:NlA0M2Mui5е->Sqmij9ۨ~a&Os]Yᓔ2P%x dYm7V'
*E.x;|yL3'_&ƦOveFJF &Yx;|yÁ&ިEoYQk# 9zVx  	*t,.˪hꍓ.x;|yHE@6*m 'rMc  $m=xP 9N6Rk;BOMș0q2Jjiw9)\2)mx  ?KlKY2=tx 9VR|bMyI4"x;|y	6.qgJL>eFJF SZx;|yH^gim7N,^(cE{ WWx;|yK'h֜65Q/oѷ j
x;|y O)޿]P$u Sx31 Ԓļ"_BU/Vz+	LQqqqcצl1UKZ5BAIbr6CɼhKiBLoLXbfp$ -'
x31 ĂԲԼ)&jfH$SenUʠ ȕ4=Gdb&閛`JRRJ5o9X&{V/T3]zݧ~0|L(19Pegt?y! ZfE"x[øqB>^oJjvd},' Mx[øqB[	36\+bb Vx[øqB,NƬ3]kӫU2&@YRʰ%˥*;|Qk%7 !.tx[øqB[tKn\&b11	 3sx[øqB÷].ݷ|hpA{2WYN #Ix Vk1^z4u稿jBx[øqBFܯ[J;h͎i1\cުYN Xx[øqBb|D]|zpy[FYN ~i	x31 Լ̼TR.?PցsLR2r+sS,UĶuk&}ʼĂLg
qU{tyf^J~9ܜy{`^o凗 GZ?I
x31 ĂԲԼ/~ϟa䗷cU;;T@Y9"3I\ΗSTΠϷ׶8ZvY_S0K1+4BLjUL(19cJ˧˞^[ D"x[øq'{OX*d= bxUyPW'رЪJmG5:"Ċ[]ntDBZBEBTQG䨈BRElMܥyVe<rAQ 43ܒ٦ƽLC4+/pQcP~b*Z飣Vsh#DcpJ`0Jhf	d̉5EH 	,X{Ϯ<P;/)!)Xa"̰j׍4(
X^0V~&!
HHf>TUHjg5i8`n|KA?pY2Y7Q)Z#ybҌy+NtYbt.#ɕne]RK1NՆԒ,NIIKuC,mz${xpMSF9ݭI.W;;Jy.(!P"@(1f\$|ͬ7-ﬨz^Nslvq7HF}Wl)>%Oo
>\%["nerqTrDA؏2|)l6;Y|nG#Rt޴\1{|j6k2NS$K D'`U1RW"w!/YGV2$K=R?Yx Ү1IE 8HR 	9%MkU<|^9T*IdD9%ưi98`4Ca2A/GF@=U=ZOcbzÂlY뀏|?QT;XNZN$b{Wۯ`fi79(IgԳ>ۗ;,<ZT
/+?ym\CX|!''";Au&e$ UWR#g0B2JQ6ٹEn#J  0U7PR2~蒶)x꿈D U('zv"?y//$'0%GZ '0з~"/Q6q]&%P&w0OoZ[m^.`zwz$$?<9|.T+PdБ{6leҞ<RؙJ,eY(ؖo|TΆF,K(,e{Z;"]X{ߡ8=tZ)IBФUêEoMsV4DVt5IhiJAj8?ڷܿ 33+Q`F[7BV-͔soy**my遼uvJEx ylXρ'e8K{cYn/
4F3<qP]DA:zOCQ0$[M.yEEw	'icX)>F
Re.D7Zx! U:ݕ碉ns2A"h7i
x[³gC(Hy^C
?ȯb\9e7# /d8x! UԵ9mU˺tkHPi[{hx[³gCi	"{YfKM{@% UxT lɖY`kk~>ೀM.yEEw	'ic-kKK7O_ZSbD!x[³gC(*|[,8]{͙,+ox[³gC(HNHOԮNi>9e7# ȕmx[³gu3og
%# .x! Ulu$ymKǳiE]x; Yn/
4F3M.yEEw	'ikIx! "cЫz|az=xx[³gCڈW7^VOX}߻LK{-x! Ulu$ymKǳiE\x[³g3fᏅXVĺ8ZU;;h" x[³g4&=\$9W~ P+ULU Kx $Ani y?RXm&w:2a_#'?ߌP
J3oZBYn/
4F3YbF<gyLqP]DA:zOCQ0$[B7Ŕ	$#ojF'iA6}_ф8IP\yHg40000 network X)>F
Re.D_O#jx;ĳg=ù,;VhQ/ݳ 3S2S3K4DxE_4fu`+2N,t9_{#HU=!>YE?Վ۴/s,x&mɭ}Ȣ>a!y1%8(lS8p܄(43'E$??bR/miW.X*/%'571/1=S*ݜ޾b̎"n)ę,V1ew'g3\]RާL9\+?ysD}KT.M5Ea;&e)iS}g(ϳ+(-M-OaНyfӫ+7-)MMLd*+$_2ROwvG[a^_YɛSK3,Qu]ڕ낹'J'a4VyϬyeJɷX͌T,^3PN/-eKSMcqeksǡ 2*x{2 |9{lSL'u]یFqŻ	6y{(XeN? o1	  3mMN
y{z:d@ yeq;߀!J40000 build-tools ҭsC2}wQriZQt<"]k89ZBA
e]940000 hiviewdfx #kqxcogӮȓ<7>g$gq3YdNssA: %|Q|ۢ*^v՗GZXވfM<Гē623݈
YezH8#HGC40000 web S,gyvz@^R,&Jx[³g_zۤ>L<xaچg[Y& SbqfrpjQYfrjwf	w'ޑbnA&~zg;{㫛nviٛD~ۼz/CONd<*2aoN/f~\KEDV+\j=Ϋ}pqjL)6w'k^@"s^29?77?/'3(!$zFMldfI;	OϚ4!7OOe/]P9_#
I<19='?)1+Ab<?" g<TAQbAFf2gdzgޞKy9QYZV `OLǌgw5W63#HBf^AiInjIF~
û4q&*RmG5ĨҜԔD;QrݲYh_uLdQY^}Yf,`12!SK2K*f.dD*Uu0%yE+g|jưmIf?Ģ
sGn>,`@HF"M>+}U<b ;x[³gC(_9q-O>8_d͙,0.ix! Uu?лW_ix[³gC(HJHٟ+^}0L݌ Gx[³gC(rIc%:T˟g9e7# ֜ux[³gC(%8SW=YOfG͙,#x! 1Ε|QZ*zSx[³gCC֙iy\!i	3 >x! UB7Ŕ	$#ojF'i0x[³gfAmMo|ŭX\i%x[³g=ù,;VhQ/ݳ 3S2S3KnX;u5PLDV;{_lȵu˴K'Q2x+-]eξw-]QHm~HEjGmڗ9YIժ]? ĢL>Sv܈{S:L)"v_R欸nLE7L(Sk$>S[:֋ɾ̺7W?ӳy?v0CJIMKLOM+at*83#UszOά_;mt{գ6ohtc	e)it}v[sa?s?Bd䦖d0Nj<U\o]uCTd榦d&282EɱQ{u,5K&g0,hξ,3s~`ũɥE%3]Kt][2"C֪Ni"Wl[Γ=v8Ҵ<F繦ӶK%d1Z07Xgo+-[S̝; AYxf]e @@*w1r^q:(\cY]>P;?<Y$ZdaJvMNдOʂE]:2LɉBo7yȸi#[{JQȿ) u	obQ>_[MwZqr^'o=3l40000 graphic V 8eOڎҐ
'D40000 hiviewdfx # U	)Ͷl^7X,B?zاhFi6$$6&ԃSd`40000 sensors ک+pjڞ.fH	11ux[³gCo'?%I1gzV% ]<#x  ])2ߢ|;YSIԦi͑q4q־] p/α2Kl?cD?Tcٓg

)،/(XQXt.#ё!ӓ[KZiP9yWiAl ;E4ʮEa|Tt@i 0wuUS̨mmI69dY|6
8c&1l=^>~Dwq	1x b4q־] p/αZ'VT}nqVISx?Z+|iTt@i 0wuUS̨mmI69dY|6= IIo:mMJ ]x[³gCH[ö5fO[Z~oLKqBx[³g
VyϬyeJ{X3 s8x: lHop!KI6WVxk뾳%jYEr5ŀ&xxl lHop!KI6WVxk뾓<f411GV#zvzۓ 05ԯt$qC{6j%jYEr5ŀ&x0|xD]9ݑ4-[6qkܼ?3ճ1
һ<A, R8%`
Qap֥BP#uu:2$JS?ǧw<f411GV#zvzۓ +lz@?:2#MwZs1Rńd_40000 graphic 05ԯt$qC{640000 hiviewdfx \݋)14	7AX	-q)tilT6 B.=Хx5,x[³g?|m_Of96& @5ZxT l) .Pn61pMh8qi3݈
YezH8#HGC&=x! z٫uL̌r
x  ՗GZXވfM<ГēhtBx[³g',M/p~|yB'&ͲL, Ypx! 9ZQt<"]M! x! lPq@sF0gQPx[³gCvc#gMQq9.SL% .x[³gC(Ӵ}YӼ?.V$/wL݌ -x[³gCJd˅Nx_w% ZZx[³gCH@%<i	3 ޛKx;]9ݑ4-[6qY҅&60ڳA=p"u<f411GV#zvzۓ Z٫uL̌rX05ԯt$qC{6[M~`EDieIiA%IV\"K"9L̓7Ip{kOi]	S(\S40000 security %jYEr5ŀ&x05щG[a>	6Ă\5f`jnywx! UKZiP9yWiq 	'x blZ'VT}n٫uL̌rXV 8eOڎҐ
'D\s %q>"z"PiA%IV\"K"9L̳4Ow=!`8-J^HaDn\x[³g'V.dW{=gn8:llr rYx[³g'V{2-GG  x! UC2i`>-(Vbi?Rx[³gC(HBq_4jw[}u`s&nF d x[³g3f..lMw0]{ٛ%]u/f-& ޥ.x! loQ$X^굵U^x ylZ'VT}nfV 8eOڎҐ
'D[s %q>"z"PiA%IV\"K"9L̳436$	tŸÆ;8sx[³gCȡ:f4x;x770-a n!x[³gCIQm>ldQͰڼLK$\x! U6?it林Ziax[³gCTnJ<-	y{/Z{sf jx! UHC@0R\:i;x[³gCU/3<Y&H(_i	3 )9x! lժq ٙ?]31=ix[³gC(P_!yvw啪x6gf JNx[³gCĹWJ_g(i	3 4sEx[³g'VGt<twv,Ƽ j	x! lD/[hSٰ|(곀9x[³gCfO!%'?O˖4QW8i	3 p3gx[³gCȡ:f4x;x770-a nx[³gB&촎yeYٍY?Ax[³gCR@|o/w^=γi	3 oxT l- ]K;Ԋj2QɳX,B?zاhFiĂ\5f`jn$Ix[³gCȬ;,Vd;aeNLLKGFGx! l+̳K/_'߰Ä9ޥ#wx[³gCHs3c}"쪎m<{LK<%x[³gCLɮ<]iq"Xfmn`Z i
\x[³gCʩi>pUKȓv@isf w[x[³gCH|ŉ2ǟy_++u`asf EQx! UKZiP9yWiq x[³g'V7m^/nW㻈u2 ڵLTx! lfBcΘ<
7rpx[³gCjٝ';yD+OsC9zsf 6
2x Y])2ߢ|;YSIԦi͑q:(\cY]>P;?`kfl̐7 R7Ip{kOi]	S(\S40000 security %jYEr5ŀ&x05щG[a>	hHgxk :(\cY]>P;?LɉBo7yȸi#[{Ip{kOi]	S(\SU= IIo:mH/!	/x c]9ݑ4-[6qY҅&60ڳA=p"u<f411GV#zvzۓ 05ԯt$qC{6[T˞7jK'ȑҬ4iFO%x: l.C`jVd6N\mrĂ\5f`jnhx[³gCN
_ix% Gx 4q־] p/αx! 05ԯt$qC{6*ix[³gCȲ]bi9-L`4ϰ)h% lux! jdijzү2 ,4Gx[³gCH|sʚym% ux9 ]9ݑ4-[6qқ(Am7F9(=x9 ]9ݑ4-[6qж
IU[LEBIw&rֆ'ky_xw2NgP>ЖaoF4J{+hKduQp
b40000 arkui ߴ%|;k{idanoLnćǈГA`˚]MVuy(j$ïaē/јk'Cnޝ40000 hiviewdfx NT.w=#Q940000 inputmethod s7.]:iy&Hb;40000 multimedia EM5㒠CC`0D<i0-hy%~WYizx0HxH|ĿvL,6{uEf`teHZx[³gC
-?ں]u
tr ̦o3x  dL1OCqwܪ2ox\x[³gC
꒏|"	<w\JzA{r  Vx {Y҅&6<A, R8%`
Qap֥BP#uu:2<̚ݦS903cAX	-q)tiuCSx[³gCH\dK>;WWWZni	3 OAx[³gBHۭw07ِkivo}QDecn/?|YL)6w'k^@"s^01 ̤ĢJm[7ݤ{HquǦJZY'+0K.|)~ɟϔ5Nb/sy}Wnmy~DAxEvmLغW=jƉOWM1,L-OI`X'cFﳻݚ+Ep&3$7$#?݆ϋ8kY#I,4$375%3NTyl?kze-3Y~t-]tioɈTY:ݧ SWs%Ԧa/۞~gFT7[~DaW	s8J^Nfc /cx+2NgP>ЖaoF4J{+hKduQp
b40000 arkui ߴ%|;k{iToi(|[i],# `˚]MVuy(j$ïaē/8јk'Cnޝ40000 hiviewdfx NT.w=#Q9ȓ7EM5㒠CC`0D<i:c~mZgEqpx0HxH|ĿvL,h[jxk ]e @@*w1r^q`kfl̐7 RJQȿ) V 8eOڎҐ
'D*&`1@dx[³gCHwrQxߺUǷiln`Z vAx9 Y҅&6I;@0-d k$w\Zxvkܼ?3ճ1
һ<A, R8%`
Qap֥BP#uu:25vGWNAd<anoLnćǈ40000 commonlibrary Toi(|[i],# sy#NUMwZs1Rńd_40000 graphic g'Z8媽d340000 hiviewdfx \݋)14	7AX	-q)ti6Et-һXe:~-w~40000 sensors xs
a+ CNYݪux[³gCjٝ';yD+OsC9zsf 6{x[³gCHwrQxߺUǷiln`Z vA)x[³gC~ӽE{߰>|LKyZWx! l0ڳA=p"u
0x[³gC(Ȟ/_ڹ]+].FqG$bL݌ ~-x; M<A, R8%`
Qa?#kJzs\^I[Ix! l0ڳA=p"u
xx[³gCIlv̈'\<^I[ -x; &p֥BP#uu:AX	-q)ti2Ix[³gC(Ȟ/_ڹ]+].FqG$bL݌ ~vx[³gB4n}Iz]Wck;YNx[³gC_я;or5aE9fLK|xl lEдT%_Y[u	obQ>_[Mwqr^'o=3l2[p7Pz71iO xi a0wx! 9sy#NUMt+x[³g
VyϬyeJ{X3 sXxS Y҅&6GǋefY	C8ٳ# U	)Ͷl^j^*0:x! 
# U	)Ͷl^yjx! 
SԿ7.q\."x_Bx[³g/z1Hѕ*|>w7evD, k7px[³gC
/c3"o~s-2hk $Kx kܼ?3ճ1
һtr[x! &JvMNдOʂE]:
x[³gC(HCa;o΋z*C`s&nF Dx Y҅&6#CDx! 9+lz@?:2#Mo,0x! l$JS?ǧw/x[³g=13z\a(r؄܏Xؘ s-x[³gG+CѪdԲ푼;f96& ɄJlx[³gCcvbڴ1esҹo,. -x[³gz<*OȬ~$f96& XZx! g'Z8媽d3*)n/x  ک+pjڞ.fH	0]x! 9+lz@?:2#Mo,x[³gHHLhMӧ?'VR
, x340031Qp
qKc0.[*	<fw BbiJf~|rbAIiQjÞ7Yj0EjRļt:YWIyF'f_ԁ(5/%dUH->KRX409?77?{CMXG[c!`RjLU^ |d^Xx{qjocmkև=LjU}e~ Ζx{qB[+Oc*9%A㛉($1l2ώs1GD۴Wg_ ~XOx{qB(f?ML@!9?77?D'b%ĳ4֪8q x{qBi,5Wjzܑ&? ssfǤ_tW˧)ԇMܯ ګx340031Qp
qKcxu%y9llg BbiJf~|rbAIiQjCzngt:+T&%^dM +JKIٸ<ˏ=y:09?77?u+K]O')ʾ28??l^^J^V1PNsyڪ>i|~br [Vx{qjVN2cfsIމu :x{qjaߕ¶8Mx햻2v~ *f,x3 `aP2ӑՠ*\Y 7^ux{qjhLW}Pwf^Ȯ~u~ ֡%+x{qj3Tnx&۪kӭu pUx2 7TI60X]fYׄ0V*{jx (J0EϲبUHl͑,Slx{qjS,m每ʒ_: wx3 E\Qdۮ^odW1,7n`{n(4Fo#Bx{qj~	3>ԕ.wTCJ: x{qjk'NfnD#=!막u }Dx{qjFF}*-S{t܉u ox 5?ң#s ;$]⑿,ۅx{quVk'U}0 C	x31 Լ̼TݭTtoa|Η1&`E)9yEbJt[?r9y%ocR(1;oHg	j̼3/<iY w=gdxU8y͕_G%9n+6<N~Eiw؝Y3#tB<CH'ՓGB~JsnYwy=wfޟ1EH}XnayUZpGsG1Z 8<7hgZk7CQJC[Hx'c[&c0ԃq1i-7VniULBJn$,Re${X*whH@>,}qqOʉxh*waԚ'!iYlogh	CXRЕ`؀KtҐ,0$.%0jAcfst:rm\:+J`wJ ifݽe.
<-y8|)2F+)y;swiƪ68G ޾*?Rq.t2[ҧNN\6Rb|o?h#RMޱO*@֝!gΦkV[$INc|B# 㾶;VxdX>jy3"j@WMQ.b%$	E/'ϰFk="Nhˊ%Z)Ĉ-Mb
/,=F,Zf
ߥ\1M*(	K?-Qoȥ:sdw^DBb,Hq9߭-uMM/bQ4EhAaIp8âݗwn஠| -&`
tt4V.Ox0B[&19JR'>DmT%Q<Ff.Aq&gO/i(q\Z^1b"ws`#ݓO9Eo3"qru;$9Stz_P,Y3vyЫüu`TFKPZD =h	úGNA$2&շUf'jG?6OWFY.ټ8JdX\_%r*2'$}vxKթQ$N$Ef ZY~nEL3P
$PA;ܗ$W1D;G",h{Ryܭ:LTJkmj gO5bY?KpPmuj);o)mr묠!IaWfp[ۺNlF{in#g	KXThrC٪\v znt@*
5ޢ5"D¥A
zEe96/KM\ssF1༅_a!Y&çaxUXu 𯉢& ZCax:`""2Lݱmc.%)?Ll$ȣ$䣡*!"X
8ED}4|.l!F(ҧӧgWMTTfވyLѪP	;9ǭ&xYʺW|ȍ`P DaVT`0JiBiN=X"C	GaS_{`Fwє/x&Id4%aEk'vоc+Ã~gf0>!>I-FF{(hգ}/[<4)=O;֥fQ˦@<̊?qs'[09604U);$",	E7Ǧ_J?}q͎ٛj#*<Spn$;V*ӶOtEfL$
Q-E ʰ?Iu8NZǽͻt΀uBM?pZt177'6B#,@MϠ$0Pycz//->wæ )&8IQIn(:_nc`y9?Q㦶cIB#4D)d,|ZMP>xYI1	N7K)@CdPErhJB8$DI@xg+[Z3&R`"UEMTf>|fylW;IL Q1̗THqcgUAM#dQg@h4U8H\P`
%)٩[>,yLx[2g&#bޥ(Nاg&ԗt,C:B	!$}njǽ]i&@B2{Mh;WY¿hC+FOU"1`c<[Q	96`LNKQZD }ݬE|vFI z㬕G8+zpUЃ=k$yLQݾHSgu۪QZIb _IGl24MpH}ԮҴSe~upԋ$hXR 
,LOP@;_rx$JrҰKP90@[^1cʹڭu{J4s.,UQ!_k΂ba˦kn?yLV޸oؚ)AC$-n.M4'G{gx̺XmLm̿le87;Z'}wTTD,3n]8%GJn2F"2C!XbwPk~ZMOsc5>(%* suˤDZ^Vx;sg/7L,dw=+k-ly29x8yEGڏw̝z ssr2*jQudѶ9O/[8ٗYRdMWO^6$n57b?5yfD{sno{1`逸322SS*s;:}bUF!j2
JKrSK2Sy
_;_i";jRU9%)QZOc/Y
哧h(dǗ$e2,R;2fՅEb_15/<(!X)<EmZt~͏XE\]ԝ&~'Mw!zSK93jn{]Ox! US^O˅tY;ͳi9x! UHXRp$F=i*J`x3gC(H~Uצ
ě/Y#͙,]x3gC(HقM_9&)`vsOVBLu D	x340031Qp
qKcٴ^;ˀvz	ʆ5Yezf~Lgw$.=W8Mrl#ʂb:A?˩NXp"Pu9I`RV+OzzZ- 89Jx8qȝWAV.&i3&  
x340031Qp
qKc\Dʜ'?TQ6LK,,KMLOK*cI7ېo[TCh`xb@Yճ2liכlc ;2W{xkblb'r-xk/؟LG/ؾG 'xkblb'zE,21D[פ5w |
x340031QK,,KO)ʍO`pR57'|ڹCyjQP)I%cyuTީ?^m) .$x340031QK-OKM.`ȉ>Cao5Ħ6 {F!brFl  &4Vx)TBkcSպ|N7 *ux{}?}|k؟7T+ch``fbXYXXYRo{{rM:q<&ɫyE|2#|Rakg%2VpxAIÒ;?W%UET-}j-bl-k %RSR>KaZW;kLR"ՊϽ|~ޮ<R!}J\욹{G*菚OT%Kaz֚~4'L@,3%5?>%;{}dEIFi0k  ѕ
Qx ZOYҴaʶm'=IcT<K'a\6nyͮR^5FЙn%#))}zFϊe[nn8}z˿7}{)+@z9k(sy(+|NP
x ZOYҴaʶm'=IcT<K'a\6nys,	3+C3"PwUn%seQ:52pdn8IRVh0g
WKs7}{)+@z9k(sy(`kGH9x! Z7a%'1AInvRix{}CHMI{Kf_m88lsS# x{}?kr?="	ZכT140031QK,,KO,KN,HL,`vp_ԕz|}=2^s$6y#H[	q.wn'sAʉ))@\4ċVnN?H19NV活876'a	)H_*O?o?rc~\j	5_G<fͺLǦLR"6O?<\/vMfŮ,|^6M(X2 (/-JNϱ6ȶ;3ub["Ͽ{39 Hj]x{}AӮdN	OxKB_BīUUL<
wD$,k]oRD!/$,5>,9 1)3'R/AT%Z^?q{rU".jl:5<Lᄼ&rbiJf~Jj2t_ϢMYνeBybIǝ+m~@$)X
Լ;n*{d]!P^U_hvQ{/t(!-1|}CK0I8w(Mg۸]a|y9v_p/zƚT_ZrZݾ:<0uvC:٣7EUtKf^Z>PBPnW.|\nM>lb 
e) |x{}CqytkhٸJdhrHN-ǳSwnI#QV)(!# $$5x: OYҴaʶm'=IcP1Ϥ [HJT nvnIx= -lC>I3h4G=n7}{)+@z9k(sy(2(x  ip-N|#-&zx! ZͮR^5FЙnv)x  ʱ/qܨ;;&'6.4XxZ <K'a\6n#))}zFϊe[nn8}z˿~+vx{}/&6ȴ>>=o| sx{}CyS.m)7WCj2	Ɠ&b0`I{H^V5?TN,MOIM"Oj:4\ͲqRbr(wXdͲmikA">o1o[Pk_ry0f~0^I\&)jEm>?oV߾m%.Ocp\oQrF筣l[>(%d'%_s#hcor[rGytZ B}<x{}?}|k؟7T+ch``fbXYXXYRpKew}ՐZL~<&ɫyE|2#|Rakg$KS2SRh'yv	U.fٸ
)sH19<W{goOitz0|JZnԾ!f[ļnA[=~5 JH˥~ôJ{U'is=vD_{][yB~n<YqF}YmURʃ Eɩ@bXܖQs99 ,`x: Oǰ+LM}3lq<,?6},c;,(}Z0=Mnvz)x{}CyS.m)7WCj2	Ɠ&b0`I{H^V5?TN,MOIM"Oj:4\ͲqRbr=N֌;WzWlJ;L)7^i~6_B(!-3Yj*-UY'?`:x~ą=<YB\L14YQoHj2Pl:UD!/$,5>8(9hK點"/t*^Y19 h8|[x% _0$`?? Ucn:@kx{}CHMI{Kf_m88lsS# xR OzN4.Hpo[`~5$cOUHvYyC<h+)nip-N|#֚$N	hx cZnfBd}f>FE ᛓn%%9\XFR;H0n8TQscZ %p!sA<D/9j	#u100644 native_avsource.h RzMZg}3A5+x  {!ϞTM=ӓ%x{}ACK߽Qc3G/Sn9NxuHԳvyr<&ɫyEڊN\ss3=|TN,MOIM"/[β:W:5:"/@H.0T>@Iũ@͇JٚX;OMZ߁"}<a3$Flˍry0'$Jx<~520IHt^>Os5	'1K{mtG7`Aʜ~nF/LLK2RˊKANXwdם:-AUtKf^Z>P+^=[k~L301 ̔xppM^l "e-x{}Cȟ~S<
bQp՝yLe [x{}CȻ/o,욲$:Y<2F B	x{}AۇԗhKaīE؊ͺQ7ţLcW_˦=9~2Vט<p'4HR94%3?%52ro3x~_l	GZˇSFc`S&h
&pAmh]]E@yUe)OIaS+\jY',>z$mC!S%N~$%rë^O;wv:)x2D:ѹ?dwMn(SD!/$,5>8(SgoyiXlٴd[2ֱݨxn->8`b 
e) xklx{}CȵKטKKmz*>ًY.m<2F  x{}CH%u[:~YRw:I<2F dx{}AӮdN	OxKB_Bƫ l,,x{}C|:ǗKӵ<<&ɫyE\	0tykx	ysM IҔd .`t_ϢMYνeBybIǝ+m~@$)X
Z۳0naSW묽ht(*RHG_lIH˥,Buw̵=$_+>ВLR"N7Dzz6nWn2D}BN)(}^&B^bIfYj|bYq~iQ2i5wug|Uq2-yi@
A]yLwqy5(eǃkRf{ %K]>x31 ҔdFmo~w?`]i	*"_:xySR TxOG_0-_,(3/--}N%s]TucFb^^jN|Nbe~i^QS^ W"ᕷ/P[Zt+?V]͎qCi[05Se8c_Ë	3`*KSN3ɦTɚƗ!uJpݵ%%%2T-3(-u)K?K2RI,HL,:xڬWE蛟hw#X<L6/lX]c&zxAqڿ!&1LhhF"P	GZˇSFc8

	ګ?	r[$ZpWzve)HNZ]o>£Y',>z$mC!S%k&	3^j~Z޹Iaj_!{orG7j!n^k;V26=쁊ֱݨxn->8 IU`s[Ͽ=ь>$#w4FdutyN9/{Lԑ H%x> JWz}Rp쫅,:ny̰#SVs(sO\ónvDrx{}BHFNpg+OumcepOxlOf x{}CHm굧__h{>yLe !-Zx! Z:ԁ_bƚ,Rnv|	x{}C3=ԒGme<2F ~x% #⏕+YDߋnYy8x% =)$ڣ)q*nPhx% OlN|6eW˓nERD3x! ZBjƬl=k鍱MnvWNx> q%sVN}4bn +`fgTP3Mx +OoW	r4UcvU 7YhI*Nq7Rn%0ۘceC>GEnencoder.h ]Qۉ9?$FCVcpAd/gɣ`ԟǄ0A.b%Cb)ɑ100644 native_avsource.h *Ng}`/x% sX/7h`3[ܓn:F=x{ KS2SR>QsLMTn7EVTTWĐr1Nc?m)2mcdQv[gixV>91DY,3(daV.$6j^Co/7&^suu uD[8=5'bޛ_W%UErwGr2IyBIZrPBz!&i5?3oM_qz9Wݸ0{2sHԙ[,?asDS /w0x: OzN4.Hpo[`~5$c̰#SVs(sO\ónv׀yxu d/6]d=:nencoder.h 8RH?T/SՓ)+w>sE[m)Ś c'kg}5ogx E:y,7{5N(JgM稊9{/UԑV#o]/w _~2c4#= IQ6;Hzn@gD`u0箸AncF$IJrcQ?ߓE֕MTGA`%P T	0x{ KS2SR%F	/3pڃuvͧ-ȪjW~_?G:/LYJod);pŅX1ߝ{$ծwߐ{wxܘy&p_r uN1 (Bvx{ KS2SR>QsLMTn7EVTTWĐr1Nc?m)2mcdȇYK*8~Ɍ!"gL2WdY0tG)/'r<&1ePs2|Sg|4ˬK , _oPuvJz3r63;%H;o˜[<9 z_lzx: OVU{Ib:ϰ`cU
H:2;{nvHZ,x  S*Ng}&>"[xR OwИTUn3Y#g cNY=TDl,rUn֕MTGA`%g}H$<x9 ZT)"V#gTcn֕MTGA`%g}Z
)x Z:y,7{5N(JgM稊9{/UԑVfaAqP=ʋxkEc4#= IQ6;Hzn@H"
Dpp6lyГncF$IJrcQ?ߓYP{9L]x{}C04+/1z/_:̹eΓәk;
x: OݬW0tQ#fMԓcAy+#]k/ǅznv]	Sx-:y,7{5N(JgM稊9{/Uԑ1jCߍ+IO40000 codec_base  ƶ`GEA.g100644 native_avcapability.h 6x;vf>:B +nF4#= IQ6;Hzn@Ab'rRM!vn^
WG;[pcF$IJrcQ?ߓY<R4A~J{J;^ϔfx> *wИTUn3Y#g >z/VF0hkEq'o_3Tg3x :dd,yLP?!v6N(%40000 avcencinfo 
>,OmDבvJ?k_ڈH"d1()׽VwИTUn3Y#g >nMeD5`3۠\îVz/VF0hkEq'o_vq|iڗˠКY-100644 native_cencinfo.h +&>lQBNBPLo;x :dd,yLP?!v6N(%40000 avcencinfo 
>,OmDבvJ?k_ڈH"d1()׽VwИTUn3Y#g >nMeD5`3۠\îVz/VF0hkEq'o_vq|iڗˠКY-100644 native_cencinfo.h /@),A:K08ٓBPYoCx> */_k/s͖>L$ZW;,iV%Vo_3bDx> *mS5F:>
4sjhBo'Lpo_3]wx>})_!.s~\|_#tF&)Lz 	(x> *'GT	VA	lW
>PKT{vzVy:虙ؓo_3EKux <:dd,yLP?!v6N(%40000 avcencinfo 
>,OmDבvJ?k_ڈH"d1()׽nMeD5`3۠\îq|iڗˠКY-100644 native_cencinfo.h 6U*śra>BP/]!Rx  )tdոwoU",Pl|)x{}CHԙ[,?asDS yx% 5f*SiQmo_3"x>}+i&>ٴU*Y2_	nv$c% Ax= 5ЄB_qmo_ܠ[-8|:oBP0'kzxk *i}[Xdk!<Nc>-Evǀ~"Oo_H]Qۉ9?$FCVcuAVoA
8}0yx: *X
^3*gq(>q%sVN}4bo#]0Ax> *3d7`}r>H"
Dpp6lyГo_3fYx>}C426^>z9,Bqs>2 K.x>}\qŌ/ӒIg-<َ1	 GQ-x>}C4HB׃%ܿ7pfogTf yx{}CB>**8i9 \xs JWz}Rp쫅,:n0ۘceC>GEn8pAd/gɣ`ԟǄ0r +`fgTPg]5sexR OzN4.Hpo[`~5$c̰#SVs(sO\Ón:ғ:iȓg}(Fx  S:ғ:iȓg}*vo/x{}ȋ:ѹ?dwMn(Sf* Ox31 Ҕl˗>3L *SR.ORj|gL $hJQ"iol3(oisF8Ҕ\$u{_NSݝӋyܘ+wD]fnbzj|jZZjr	o&4O)}p+_z"2ZaD;[vF?;W *sSS2N/KI,c5*_کEt-Ҝ̤ĢJWg~Sǃr y '2O7Z[seｈUw#k   4x g&e9OŶ}~'ax6 9,LoO[ѱV͑M?F$pahHeϬu|&x{iC4g]xnӏ[QfOx lhi'\(hpû;ߦx6 9KS^ߕusȅM8I)m8T~`x{i]ɂJhL68ďu zpx *VCޫV؏Qc~~vRx   E?:~Ix3   E?:j1x|9ٯPw.V{x t9/b`g\{^M<]IBF̏5)xm40000 drm_framework K;bk+K=8u="]Hj		) BNYOA5x6 9㈡(4U(P}LM?lhi'\(hpû;ϸpzx 6ėܡ3|':[9'xH >bTyٌB40000 image_framework y"wT_C~!C%x6 diFx``o
WBExe"]H~:jx{i]#JkNtwa: @	x6 diFx``o
WBExeyS/BР!Y~qqZx yS/BР!Y~x t9/b`g\{^M<]IBF̏5)xm40000 drm_framework K;bk+K=8u=)öP\ǫGBj)M-Zr#=&*E!x{i]/:+ċ1n;]w> L'x^ 9/b`g\{^M<]IBF̏5)xm40000 drm_framework K;bk+K=8uϼ.x{iBf7<tpgh:'ubw ?xs 9/b`g\{^M<g.LR(źO40000 drm_framework K;bk+K=8u:oy]P!E-ksZ,I4xr {یUۥfXk0$P*b;ivAjm=ܗp40000 image_effect bzeif@,!lǔ:oy]P!E-ksZ,I^.x{iBf7<tpgh:'ubw ,x F$pahHeϬuYxg 9s,ѩ$ZTwYM?K;bk+K=8u=׶b.;2adɑuu:{TyxS3|x{iB?y['eko`kQ`V)+x{iBȂL	|
$ubw ڇOUx{iBH#O+ngiЬX_Ċ 2xK 9/b`g\{^M]IBF̏5)xmx)M-Zr#=&%&tYx{iH5yE6P	hۨe(bŞ_*V:@U78jLO Xx{i]u&ȩ8R4C(ďu Dx K\{)k[Ǝ~Iqx 9KS^ߕusȅM"mFx{iHIKSwN~s[ B\qnrx {ibxgEG5T~`x [V[ENArJx{iC4Hʌvt)~?xi  sx{iC4<$y0re& 	}x{iC4ٚ[|LoЍ*l /%xK 9%Jo,yQwg;Mfbzeif@,!lǔ:oy]P!E-ksZ,Iy ZxO 9ac:Qh"{M^mLl2|<<ŶMuu:{TyxS;$7x{i|uDA~n	Og cx{i<~k_%lqd# 5x 990 r'AM"cx "]H~Xx ׶b.;2adɑ~"=x{i]q#-^_eO2T1lڮzc: yhx6 9]v<}OUF%qM׶b.;2adɑ~&-x6 9WT:2^ĝڝM׶b.;2adɑ~OrxO 9]v<}OUF%qM׶b.;2adɑ?K1]
ֈ@& \sD+[g'@x7 9:{Ɯ|zze^M$@몹'VH S ix 990 r'AM"Rx 9lĖLeC|mdɡM"0 x{iȩ,3]{FP[;F/}K,x{i]/'V4GzrFydďu A*x Ҕ6R5u4Ǩhz,x  0*ՙr5A˓D+Zx  0.dM)5
דD+@sx 9/b`g\{^M".x6 9 ɃE?4u%`RM?|WI;&:Frx{i''/09^:_ue¼J =ox{iߝZ3:J^>F40Xj# x ^mLl2|<<ŶM~ix{iC4>M?yL\w Bx{iC4HU=ڪ{fնpYt6( RkxZ ;|WI;&:40000 image_effect bzeif@,!lǔ:oy]P!E-ksZ,Im'xx{iC4ȦϛV
Du;N ^ox{iB`;\'ڍҗ?2qy .x S=6jΖW (T~-x{i]Mr*o<#еn9ďu lAx d_a︒SxLvj$xH|x{i]z셿HW
ڛ{nďu 	=x{i]:Io7nJ[xٞ:j: Gx{iC4'^D۪v5 ʨi@x{iC4H˄?&[o*L/ x340031QMLOO`^S|zR	]*K2R*fŌo<8CPT$&g!4dEٲ ,[jL8(59I{{̓m9IG[<1Ңd$G]waG݃^&	*rC5dV& w??2]ynRx4iH}+xr(L6,RȽrL 
.{x4iHTpCNʾ/
/a 
$x4iKL>0X39=+yJ{x4i֩^m
D]D7 Sx3 KJbCH	u,'*7J	K`3՝ Mj8x] >KJbCH	u,'100644 image_native.h 28!Zy]<eTRn4'AՂ78叜iB(y-x4iKL>0X39=+yJx4iHwv^!$h鏳 (>x3 !g%
*q/A+(RpW x4iH;^-ĶI* `x4iuެGsZĐC 6?x4iȧ(9_BI2z=9k 
hx4iHő'MqV
?}9t x a]l+~*x4iN^g*xtc> !E<x4iH^2OsԓjO >NxUyLW'K9b	G[T,GVҺJV*(RCy̱
q!ȕ`PtCJzi))8KS߿O~y=q@XL:B6@aqeEͳ5S1-wU4Q9ڟAe8QN5m|I,:i"nZTo}pdxe_;}2ǯ\;zyza l=ݬHA&IG:4q5iwW@ł9hB`=PMweU)1M~*_CQ\yڕW*l͕SoED$8sJ AlXjJ_oAGţZYiM53Lj"8 #Z ?5q05~?z]yāwl=:F	$K8s4M@kf]|;4e(={]QIB7ןVo]Q[P$i%(A[W~${x̉1a81DAC82`@hqSgH}Bf4ʂ.D0RsA[:1C^9-"Zc3-HNBVy[>nӥzOg/eR F?2=FJnf'ՙv r_?y۾O׼>t➾7Oa	hQDvNt݁#oH65Gr׹cceﶇ/ll!Nn\1f(1^0< I;{;F?O5QRXg	l|HPSy'syRS/PdA.PRxjMö.X?®:LA@kx[=}qOtV򔅨Yo袭Ntʴ.ˤuB&ƑF4>!!lI%#cGZK=L fN3s5igHe8%W(ʸ7jt!>B :?V~Nʫ(3_?ĐQ_YKxh 		hAn,.α+UT}.VETzL`ZP\"^%kZv[U^yO߱1=QBk3Bx! 		UT}.VETz#krx{s^Ǔ=Uv]>D(.F i x! 		gJ}7Mn  {i.|Px{sыBEm[\yFC@' cyx{sC/9q¿duv(-DhBFgf \x 		%'&SZ&+"
x{sZFyWʜ,ֶ6Sl惌 k..x 		9Wɏ±++-x{s$f/%VOwiVB˘6Zx! 		F脡@[8}׳Z)@/x{s)o7ow|'%/׋i," v;x: 		J#V4l悋.߀CV`^u)L҉c!_;퐳%x: 		J#V4l悋.߀CV`^uȝE4?J͓b.4D?nx{sHE!b]G'<s(.F @x! 		F脡@[8}׳Z)@'x! 		iFЃ?d`W:RWx{s\w0$)53 Hx{sC/Hy^YLF:djۼљ K3x{sW}%,Ϭ/]Գd_Z]ax! 		F)	㈲Z	0x{sHg̂6;]Ϟlǲ ,x{sݓ]J!{]&~)?&uL@!4$37?%1'3!Lrt
'&+h-	 ")x{sC/Oɂ-mk*^db[MDs($ef2x][{Ws^-ʳ HZ6iylCdAfӄR_\ZՊe7L[SWPZUFl۷S=gz1ͫO!*RKn.}(}z?'OV1ysF}n*
MI?YeB|5U풝O(
 zhQx! 		\ڊ܆Js4س>7x1 	
a&DataProtectionKit ީI^}-/[7$Ax! 		ptQ'_o`edqx! 		)L҉c!_;퐳$}!x{sY-~ߥAWgLc~cԺmss# |Ox{s_&)U-`ܐ%q/@̗͂wG.x! 		:^$O>]x! 		q{
Q'>x s		4py4=|Xr40000 arkui {S߽Eޞ})`<iD *GfI0k5H3@TFUDϽ=6l.՘ZVE`O+zLPvqEV_-d>Jx{sH̄LPxXHC&v, wx 		hAn,.α+%x! 		F^r`zvQЪVOZ%[Ux! 		FdIE5gGZ^rx: 		iD *GfI0k5C,0JH	N7pnP⑳ZSNx| 	
py4=|X]iD *GfI0k5{m̩ȶqCj:ZF$100644 test.txt V:V$UXo{6G"D}2x{s"p_7q*qWͦ^2x! 		ՙ"װ`|ٲc{42x: 		JbaBtqvsd>2^uWulz&zF̳{x{s_&)U-`ܐ%q/@̗͂wG)x{sHJ]+7%yss# /NWx[ 		4c,;Ñ'e40000 arkui ##G)yG9wճ{m̩ȶqCj:Z3(Ax{sC/Oɂ-mk*^db[MD. sx{sH!s-37g#AIXZ := x! 		F2A&лheW뾳Z]x{s*sӺˋUa֘۬ وM x{sC/9q¿duv(-DhBFgf Nx! 		U}mMi}(̳C).x{s_Ijlzg =x! 		FdIE5gGZ^rmx{sHunV3+Ol/\@y^(.F ax; 		##G)yG9wճ{m̩ȶqCj:Z3\8xx{sH嵟bZO&:>ppd;e ~vx! 		F<߽f/*	i(ԦreZ\%x{sH~Pi8чdO.{qss# 
	Sx m		H.֭&
P >!8XufX}f;pK40000 multimodalinput T]ʌ)P哄rI:~&+ZrݯW1q+Lk(k%>cBQpJBOx! 		{S߽Eޞ})`#p0x! 		Fgm׳Z/x{sH`n^u>-y;2nbb \x{s;H/U>e_]n8Y$  ,x{sCs/]5ѻ:css# -x  		Lȸ<[\%yA[x{sodkd%;.xyQ (x{sXsz;-ѕ{m$PUx{s$V&浿DOcG6xS 		{S߽Eޞ})`0[tAndV3YœZVE`O+zLPvqEV_-W %xS 		{S߽Eޞ})`,ڳl!DwK`ޓZVE`O+zLPvqEV_-\z&3zx{sH´9;,/q8soss# x{sCs/]5ѻ:css# >x{sZFwӔ9,2v1g9}}4G惌 'lx! 		##G)yG9wճ#KxS 		=e1aFykͭ-0
5M"1vwZrI:~&+ZrݯW@%bx{s̬?-'^A"ӌQ]  x{s<FExw{1Q] =x; 		᳖Lӊ`mn&UZ?*1s^蟀F[Z xS 		H.֭&
P ZҢd|mªcڶ(Z(c$E#pSm#e$"Zx{s[Y#uaK%?+qss# x! 		H.֭&
P #b88x: 		H.֭&
P F(c$E#pSm#eɯ(qyx9 		᳖Lӊ`mn&UZGDWSSRBJܘyh@x{swmTdP`9 ruxS 		"v6E\G9dMHuM[y>6,!ZVE`O+zLPvqEV_-ɨ/#Vx  		ȡHc
՘60[xS 		H.֭&
P QfҮ"}Bw~7dQeZ(c$E#pSm#eɭ!gx{s;HEl!<bts$9Y$ x! 		{S߽Eޞ})`#pOx; 		=e1aFyknJʁ`XϻZjJx{s;]˿3ro:RLwx9 		FxI/-V|
8%ZrI:~&+ZrݯWɬGx{s;H/U>e_]n8Y$  sx; 		G<@zMr?*1s^蟀F[ZQ<x{su,rgj:ճMwss# %wOx{s;H/U>e_]n8Y$  Mx{s}Uy?]1iss# f.x{s#Ίrpz-rKX(.F ^[x{seF)NK!D'O~Θ)2yfɋgtbI4i´MWWJ)792 rKsJ2sSS2U7b_üy6uѠsː$d04|S+WݼDe^jIy~Q6CjIKWz|_=910x3yc}yOmx#d19 gcAcx{s	L~RE*TKn ox{seF'溚Lf$=.'?g9=o۱NܪB.}S\gr
|람dg{?5Y rKsJ2sSS2|OINo׼{zҷvu0!+OI+(-a*z#۩3_vՀy%E7>>Wdןl'ؼQԩ{M_gtI铏 p$cex{sHM;Zf(쏯QIV O
x{s.go0	gl**}ss# sHx{sC??uAગ-	  vx! 		E0r(菱'^[ &x{sZFh7~XڽϧԖ&3Tx{s_&)U-`ܐ%q/@̗͂wGx{sa-6}(>xVQ] cY0x! 		F}l>`ʼMݳZc`x{sHIj-8ҮLkss# r.x{s|)$>iU:\[x{so&x)E{obb -x! 		p IB>`"~/x! 		dɮcON@T$Hó/x{sCȹc'6dsla!ktEF 7\x{sCE.aU&[Uvq7-	  		x n		Pr4,\s,3ld9YJ"OO\w6]lĚ40000 multimedia .\|-mD,@_fZ8eҋcHєl-J5ؿ3.=|>@J)x{s,٢8<ޞ}qss# Wx  		J5ؿ3.=|>ix: 		F}ص;>>Mw-AgZXJ5ؿ3.=|>65hOx{sZF/hSjp_aA~3L^<;#\|MB\VgqNo"z׼VeoLYlΑY&@[S W2[×ɇή1iOOGVWPZ՗O歈r:*Ǘ3y%EM<'Y.u'\}^SZn^(t{>g[cX Wbbx G		:ϩɓOG#/UF4]m40000 build-tools ȝE4?J͓b.4D_>C,0JH	N7pnP40000 multimodalinput e~q8=(K5Ye|Lȸ<[\%y-AdaM	NJx{sCs
fuiP?wF h.x{sCBE?}>޻՛[Q[x{sCHNæ	Glk"JpmKxtdss# xx; 		@Xx:vE;' q0`߉Pv# @RdZJx{sH@q3{Vuu9bss# Srx! 		ȝE4?J͓b.4D"x{sK	[*yN,Z?Px{sH͗wG=HkК9 ~x: 		P lm+g%d hlt^L$?T7NYDZwx{sC E&/҉.&!.8}s
S r)-x{sCF%q>*;BEt uZx_ 		!9YJ"OO\w6]lĚ40000 multimedia -YNG/"wݱZ8eҋcHєl->ҥ*~x! 		eҋcHєl->
j0x! 		HN<۴vĵ~b*#B/x{s_&QY=.Wk[%gfAˌ -x{s_&zNɶ6^b`fAˌ z&x! 		FCț,͗{dIZuyx{sC yێuJdVv:S 
U\x{sɶ<^.aִQ] 
'Gzx{sN`jcƙe]͋7G1w1 Y^x{s:=+<QMQ] {Mx{sH׺{)r*-uȡdQ] [xz¹YpsVCaOvYּݸ9ٍq {m2x{sH~W[w-eZJ(.F ]x{sH0i,9 )x{s7rɖgMzW%̝ǨS`K[J.nV\db 
E٥z|֞:p@W@J3sRtKs֞j2u=޳LLQQ$ӅY-<\6x!{ i<FExw{1h9%)9y%͹%<,&ʼԒlyJ^ω@ǓwL^Ɯh|GuʬBSdRC&eT2tyN1,l9[Ev,Dj瓭jxEQ Ux{sCQoSN:Fl8<'}ss# jx{sCȽ4{*s̐o:1`ss# 	A1x{sCqoߣ7ݧ+ފE[r_x{sCaR6yҲm'WmnaN`  N.x{sCqo{?1m.ZzLS:sss# 
ݪ'x340031Qp
qKcp_`kuy'iܲK&BԤ%'&Ƨ'ee0p8m_h5Kߘh4ՐU ww魯zY|`FԓҼĒ̲ļĒT߫|}>Pjg(s6FUT~+ppm`TT%E cW%-LdwoGUWZrw&7.ƛR:x8yy%@2VM;֓+ޣjO{~"Kry~x&0>/ d33ٴ.ScT% cCVCb,nE_*D87>;2>Lm6d;	X\R_\R
oSd	/*zX4}L`e]ҽ[B%@: oxeC=HʂCYѶt\B*UF=:y2s #x9 ET ZeO{٬u+AǓCB7ߗ.:/;`ƔMdxP l	?|]F3PJcӳ7EҬ\<b<daCx͍Bvx{5j(`_x  4}xuvWΪ+O@xP l{N?@(xܵđ7tIܓC}ŢrTۀ{;S]i(x  T^!.pzn<xeC=}=]+yVή~WVWqd )ix lݼ˵9ɓhhZ䀱
x lݼ˵9ɓhhZ䀱xP l	?|]F3PJc~Dn)LsJMr{C>LuGÃRbd%yvxP l	?|]F3PJcz(3(	ECG8
j-O	H@oe{u|"\UxeB	~7v$|n0:q᱙S&6H^x2GN1]C3Ē̲ĜtQz9OXYV&9eO7Q4?JSD5"/?%h^<,.Sa|^bA&P;_Ѹu?Z+2yOi7-rW QjoAx9 ۛ?
T
M,C>LuGÃRb?	x  I75MχPpa
wx  F֢xPw];ռS;N%x9 .",)WK\Cx͍Bvx{5mxeC=}=O)P÷IFɌ|xP l{N?@(xܵđe%rJylʓCv"pMTՈ0#)[xd l^C_,[8$00Hȑ]`D}ޚ ߪY@ {C8(Tn8XX}3o"OzX?+v,NxP l{N?@(xܵđVNAf#DYg$DCv"pMTՈ06'R-xeC=3]-?Kv=6'`d eZxeU>r](f}{_9(%dƧd&e0_z~f?.n!1u?V&}s`gɎEQOIL!k'x^ތ0>/ z33ٴ.SEEv}<T,`̵M=9: C`'x  hůZy1flf|wx  )1>[6&xz $100644 BUILD.gn L8sּ·$H# O-Y±dB4ګ.>ODPT)>|o铓CqhF#b9#@U%T4G/xF $100644 BUILD.gn L8sּ·$[)1>[6竛^xy l^C_,[8$00Hȑ"6P;7bWܓC8(Tn8XX@$styled_string.h yP[hN
J|Jrrؓ#,8fx  zaE$
P%ўo	x;2D)E/=m%SފsZ-̤Tl<+酚wJaZ";.k-7@K,,KOz/.5<Zo:W2 IB+9xF $100644 BUILD.gn ۶t.$ӏnڱ$[1ty5xTo0xED)E/=K^nrq.Q%	 Uvx;reC=vjog	V<q Їv<xu +$libace.ndk.json :q)؍WfOBjx<6Q~W100644 native_node_napi.h )18	g%" 7Pv2ax2eȜm{n:*}{>b֛I{ 1x O-և0qYNSb[x2eH^Qjm'暜ĸ zxrD)E/=Ǣ]p=^~y\Ĥ̂"-fi=c[r2SR^4(1׍<1YItGKTK6;M2ԌĒ̲ X	qh\Ⱥ^ TWx ;$uUr<dOobj0ʿnb-PeS!W'2bC6De/]QCgA4yi`V;fx  N[@o)F9JylՓb 6x2eH7n=wPJI{ Bx  N+u5;n?J+bqx2eH\gI܋>79q xe ;Ҳwn_mP2DӨONmt/0}ޚS9bCͰQKuB4WMQrWM"1RX"+,Z;x ;V@#Hw|UySqOobT6"c^Ǿ3߇eɆNA >PnSVX{bDCD'nuGgD
69Q3o"OzX?+v)3Ix ;K	K3@q!tm@|ҀOobT6"c^Ǿ3߇eɆNA >PnSVX{bCh.zgm$OzߓQ3o"OzX?+vA7Xx2e+)3t$= YJx8 ;+4]*w;7OV|'o NA[#exxM ;:q)؍WfOOVqhF#b9#Q3o"OzX?+vu 9ax2eȜm{n:*}{>b֛I{ 
	xrevhJQbybRNj|JjqrQfAI~^取^4IF-f&&
9Iɩzy)zYy/Fژ,$drkDNN"2aʹP#K2RSDbA&w~ˣq5."~zއWvk'O` E0x;rED)E/=Ǣ]p=^~y\*L KvBx9 do!D3N ӣaiCb[!ƨw x31 ҔlO*eg>zzώ7g@T'秤&3im>o2O#olԊ(IRdlvڎ:+Ǌ/QRnw׹R?tgv]nw!D]fnbzj|jZZjr	Ci[ˈ.^WaoZu}ݴw)@'$d1U~9 X1s?SODVTXTho^K!
r+Slbϯ+誛Xn' "1x 9[̺SȖk;f.g\ֱM"_x{is%c_p|DMټ. x6 5A
aꗁ85@*U-౧VǡBLP ~xV9Ex{i]D?A{Zn2IN1c ox ͷG~#zץ>fE~Vx ?_$v˿Mǃ7j*ETxY 7DsTdlF>[40000 av_codec n %MpڣMa4?R4cgG~'hx{iRSr%x5Qԁ[z+# x{iȜЯ&=4"FȍJ }g?x{iȖrn;D{QMy}kx{i(i'_4|F_%F ֢,x4 9JZK~ǖoʛ,5y M|bLqEBi1_nx{iwH=֧x5GVW }x y7u.ꮇ:AC40000 av_codec #8K3HUcJٵMM	iͷ0ݘF[xeN^"s܈EjŞ,`k"IK҈x>4x 9\L/DǺds%M"0x{iy5NIH,co&@X0*-:]W ˶x 9AԋaGLM"o-x{i_R!һLL̽F_%F 	kYxq 7IM%$oڈ#e|w40000 av_codec #8K3HUcJٵMM	iͷ0ݘF[xeN^"s܈E~l2)x{itF6qCO#Ns&}Uxq 7u.ꮇ:AC40000 av_codec /Y\>۔3 <TMM	iͷ0ݘF[xer.Ju	~6x31 ҔlsNhݣtcck3M *SR"h,`[ADI2ДD$Ӯsf|uv.3ֹQRnӟW43hl5ߓ̓{
ԴFF)ϭ]"Y&IΜ7z]C0
275%ҼĒ<o#Z7q<!a
d9IEEa6y?NL=P! '2zG(|޳4v ^x{iy避O>!j]3+ǩM@!,>9?%5aF15U"[.M)5t>λn# V-x 9< ;u5M"[x{iOvX-t;@j PH,OOIMfQy{MȖySJ il*x{iy避O>!j]3+ǩM@!,>9?%5|T;=YALJ Gx{itF6qCO#Ns&}Gx{ițe?XOܑ#U\J\y$x{i_R!һLL̽F_%F 	kQx N^"s܈E~~xL 0bC	؍vӘOZX1^' _A?}oJWqÜL$֠!][x6 9\ qV%ϟػU<ȑM?7oHLϒhx{i&!rKOELpWW px4 aζf*/Rت30;љ*1c.ģ#.ft|9#2xW 7aζf*/Rت30;љ40000 av_codec sL$>*iĘM:K([k \To#Ǣ(<(x{iC4yjn/9{xu>*- x{iOܧ"Ďmre 
i;xK O2Lf>	]rQEu6*Fd Ƶʘ5|sN HZ0ji~>KOE]ɚ3G.jcx{iC4H]GIW'/<{` >x{iC4Hٲ9!S^R_ VgxK 91'Qh=vnM?W
jeiq
vTd$y.JBL'SAxK WSel"G[ʑ*Fd Ƶʘ5|sN HZ0ji~>KOE]ɚ3G.jV#xu WSel"G[ʑ*>;E%.g40000 image_framework 7*͝Pkji+$tΌ|k"-	8.	dx `7u.ꮇ:AC40000 av_codec #8K3HUcJٵM?W
jeiq
=N^"s܈EVy x
i?|bLqEBi1IGx{i]&IΜ7z]C0j: ŝ:=x{iC4Վޟ4bBw| x{iHˢfl.XO\5.x{ijv{b>W}CZx6 9/Y\>۔3 <TM0bC	؍vӘOZ~Ƭx6 9C7&,DmiGMGkf%~:Axͫѻ+dxOdx{iȝOvX-t;@Z ?x [dؐm.زH|~_&;x{i&!rKOELpWW x{iBlvڎ:+Ǌ/2; g8x{ihߕ>l7Oc7}W U*dx{i&!rKOELpWW x{i]]'2U)nG_7l41iďu ;x{i~eZgU)ۏ:{bґJ /x 9KߗueM"<yx{iC4vIŧϓD7<q] |yx{ixK4ٕ.tF_%F \%x5 Vy x
i?6vZitA~xU6Fix{iC4Ha#_lW}UYcY;Cx u.ꮇ:AC*E \@x6 9h'Kk8esM?W
jeiq
x{i2ɘz«Ba*~F_%F qx{iȅ:'[~qwP\GF_%F D3x{iHǀe&y# _x{ifjZ$>e~6F_%F Nd1x` 9tUyG8a@{cMf>;E%.g40000 image_framework 7*͝Pk~/ x{i]ך&RhI1*/XҞ{o: g(KxH >;E%.g40000 image_framework 7*͝Pk~>#qxK a_dN~$QZ=C`E^{_}#Z4U?Pjc!8WqL0g#Zx3 7oHLi~>KOE]ɚ3G.jÞx{iHťdVG+~W'lre Gx] 7蜊b®9EO=40000 av_codec \fgvw
1TsM_5y{fN!ߖX}S&Yx Ε6m\˒~
%x{iC4HwrWL5D Bx;tiץKDiS7x{ijSv5U\%65]t+# ,x{i=>aJg=9F\Wx J&ʑT8ޱ*E]*x{ifFF)ϭ]"r nw;x{iC4Hݛiw&k>Tܺj= QUx{iC4ȃ8-lK{|u]:Pw *x{i(i'_4|F_%F ֢|x{i<~wtdiniF-WF Tx{iC4{~eX EWu3u<=
u<x{iC4ȩѡ6q;l~b~Z؋ =ex{iC4Ϝ')ƕFOTssL }x{iC4_2ْq?H[־" 8k)x{iC4Q9y[>Ys_>#\ (x{iC4,٥۷k[}kô޼3 (Px [[%6שYbDf*x{iC4Ȍ%g-pvZuo}Ҋ GxUPe,qBA¼Ò8YDH`|X 	킐." A	Fe,j2EON EuHCGH<l@5۳ݛjEKRĽ7e 1~[Qa`Eaȫcaω$%F.'	P&W;5h'N&KIRtJyF޹YE?u\$ā,;~Eq-xΟ|9Pu]Ȭ}M=Yx}cpV1}{hpԑZGd QA=rVH|;\-Vk.ze}oxL.S(zY>,bU	2!WC8&XfI~Ea/zq"(&W(LMTlת5S$ISR2c w솯u>c]W#c cF/{_X|ו?|*cØy^a^g̠<Ȱ2R^?%WA䢕EϐnN?2orMjVb8mn'~t%xIͷ'94HVu ߵ:&΋!n
Bnqc&'zZ0$O;5a PYkUY7͓.G4"84Vs.cſIANO3Z(:rcli2>gq.SiK4zf-#q[ʶ~xtaPIq*dA{po<#ַdƙiA0}Xy ]zC间E,T By.ꗾ7ysy~4l{yMe$Na@ap¹SpȘ+r[_vApyeyrJ6)^';SbpQ '6\_w'J|ڏfB0hrnxqc6>jz#圕rjDKZߞ{@=9}\| JJ2sSTu?env-JwJJ34NQpsQ@٣n!O̜ݒbB;(}>sXs3N.a\%"wwx;G6}SD}[9\-zvnjߕ18#,3<%aM3ܟ-O[|qVBS2?JG͛v,mgJ*Ԑ$d0<-[fzsVV777t.@楖e3(;Qvnێ/%l̼L,?{>^o5m32RJ*^tXq1w,U?R!Ɨ&1U./u, 0f8x}(+k:4j}8n K3&F?.X`ќ/gO{-̜ݒb1%ZꓔwK3l{ltx}[^]	 S__`6ߐq񿫝WO`2¸'RխzF"\4!sso]Q:IB%dd&3I쮝3Xv:ӏ5e)iF9٧sR`(Kύ7,KEAjrKsJ2sSS2m{tŞK{]ZW׳n^ɂ?z*yyONpXQ\ZYR0c{iCĮ#vEg5$04s׍J\.c,{B<5l#O}3$oHg~i 8H/x}7>!Q4DV,6+o8p J3sRtKsʋ;EIoaR+=/0ϩ|zثbߚ,EmǞ:.lo1kV3*Of2:ge)i2|1-s^?.3p}g5&1-}Y7ھgQ1<5!lˤO-Q5ɮ Pk;x}C3Hnԏ]	?fG[޲y:S:#  :x~}(4ެƯ?-jb 
E٥WX&+u;&1"T[S̐g:o؝}GJΗ]Tɕ=3Evgxj\ڵBiB'1iZG}-wM1MK<!fgdeU0T%/'P]NS]˳J jrKsJ2sSS2ҝ֛o}gg߯8ySHuϙ?>צz?nk><}r0w^]tnvLQh&FnܤΝRduCIzE ľ$~:!u'~8~axХ ]&Rx~})7]wն|:`͞=L ` x  4$Ve؝*]d1
/x! 5ĉjGrmݚ۳I4^xS 1>.aSh0`Z2ĉjGrmݚ۳I6Y\%Qɭvr`B6d&ax! #a2yǬ|Int*Cx! 5n5ܾ%tt͢wJɩI@x  ű(쬑*Q8]ox~}bfEg}nRN)k:ߡ$"pvf9 Mx  99gXu|ϴMLKxS âqv-}#3kQjrÓKNC29gXu|ϴM+@Lx~}&F;^{WpWB .Kx~})so6gj4ן^}y}fO& #)>x~}6Dވ3R/{z^)Z̫Lkx! vף,Ş#x! 'b*آ.!ݻl&}gKx~}%Hu׆xK;7ٗ xx= Qz$qVQ-cvaé@Lֳqږ!ckGI֮Âof+[Dxʾ}³<"U*+V~\xxϵͅ)L x7x  A p&pG#*2N`x[Ͼ}C$QA޷;~wws.# Zx! ŢFk'OUmO#j=x[Ͼ}9Hbϛ3^?-+z..ތ)L Skx iԫ	F;hp~9}Gx B5`F1Q+?VjZUUSŦܶ%.dKX˾92NG$56.9S*"ߕzTN40000 network NאЫ}dTuآub jMufͩZX5ϓ'V@~!.{k!Wzx[Ͼ}IS	rϺ	1\mAƻ ,x; 7UUSŦܶ%.dK8CSX(mBSIx[Ͼ}9Hʊa/$%^) sm7c
 *vx: X˾92NG$Y@~!.{k!/ ux[Ͼ}lf{:O,}?%:Fާg x[Ͼ})H7p|UdO4 ͶJx 5/ѓM	UKx  }4$Ve؝*]d1zx9 Y.9S*"ߕzTNm
eD6E M]{'Hx  9gXu|ϴ'vx  73ܙé3jʵL'ܜ$x  &WJ|@ݝK{'BSx[Ͼ}0t|Kץ]5wTĬՙ; f-x[Ͼ}0OLÛC(ڲ ьYx  o̴jHg½ܭE'9Rx! {NאЫ}dTuآub 0x[Ͼ}C$HWwYra.^]U}ٜ ]x[Ͼ} ud^q{rgߴӴ~
S7# {
x[~mu0LwR?q161 ĢL=u۟U0&ť^"TZP0!+=O
ĂĢb*a͂4k"0}ތ"g>Vui˞!ݣ1ynOڏ_:k|Ϥ&ANOJaPmsndQ*(J,Lf9E.Sܙkd&S3ߌdn
5/<(!hl)vq4?y;Sszϛg>s(fޯ+Od6ɚY'<Vzoe- xx: :VTl\fɳ#7elH7L	;3k#}mBɆx[Ͼ}C$
~lc</{y!Ms[ex  YD	R)3mx;vmC$eV7~|of;9 ݐ.Sx[Ͼ}C$Hģ_JO~yR՞>s(x! YE[W:smBq1x! Yg]2*h;V mB:ax[Ͼ}C$HCF1W_[E´.os.# "<x[Ͼ}C$%ۂ`{_*?֏͹LN ux! Fw<u$h]_U.TNx G+	c.m"zK+):.N\Uu kLP{I;!ir:-BVH55s@d'J3(UWP2X:=bLVV2ab7N/h40000 web ,s]DOAsnLLxqc"ֽpȐwoQ P(OMb8ѣyw5]^/dX \xqcȔ[ƹ3ggwLEYkU
xqc"<&Os*Hm(%8(&1U./u, wiQxqc"Bns~](:$=-﬉(&1U./u, ?Gxc(x8{g0K̮jP{#WM|Fm Y}xqc</,.]u?
p~Z٘Y *xqcQ(e1lf?FVf Xx! C;_++I֔l	x y:Zv13eËp*NIW]#:]HɸP-Ra:2Ux E|Xe#KڶC40000 web :K	T18>;x !+:&|1s w7.r1C40000 build-tools 6Uh3+()rKti\Uu kLP{I;=wS+VIҮ.H5 5zh9	rz_)(@2X:=bLVV2y׸NPOb.k40000 web ,s]DOAsnA_
x y:j;Z{VWssNIW]#:]HɸP-Ra:20z=40000 web ,s]DOAsnd@Gxqc᭞8	yL{28c#+3 'uxT :|nfW>UxOTN2Ux E|Xe#KڶC40000 web ,s]DOAsn$cxqcCwNLM.{)VyL[/xqc"Bns~](:$=-﬉(&1U./u, ?Wx! de.;BԸ,ڳlMkxqcc|GǟoMwOf?FVf D_.x! HɸP-Ral/x! IW]#:]b^xS :j;Z{VWssNIW]#:]2X:=bLV:k$x& bility "	/	\>I\h_Exqc"QcZ3JjsE(61 $3=:w]sBֻy w1x! C;_++I֔l	;xqce&O,Qkn2ݚݺ3MDL9 :x! %BM)T@n6k䳳Hjxqc:o\btnn" xqcvf3flZBE=?)sy Ex! 7l:x|l&wuxqc"݉I^pyE3L@<5Gůbלvyῐcq 2<x 9+:'j= A%z|40000 build-tools 6Uh3+()rKti\Uu kLP{I;:r6I-|MF?f,n55E~.*qPm:2+(JKrYD40000 web ,s]DOAsnUx !+:F~df#xY/@r40000 build-tools ygu/96ͣt3s%}.	%2
)[/=wS+VIҮ.H5 5tFӺq&BF]I#T8(
y2Ē*s!l140000 web r%wJ&E9c	xqcBwE!roIhtu}N~ <.x! >aAww<
|@Ҁ׳-/xqc"QHKvYk!䑋E2 P(OMb8ѣyw5]^/dX Fuxqc]FPҍ
>Ul]d?uG$& -x9 zB9y	^c.9ӱ+	c.m"zK+):.N(Gxqc6>jz#圕rjFm hrx̱c x̱cv<tE2t<M7|>/yVF |1/x[c
&I{V/
8YxZتkF ڵ\xm '3U+ܘ:w@#<d(#ʘ{ks5X(Vk#rRq::+(JKrYDȓ
.	Wx l:&|1s w7.r1C40000 build-tools 6Uh3+()rKI=wS+VIҮ.H5 s5^愳%<goތ:Ē*s!l1
\!>Jx! '3U+ܘ:w@#a#0x! _d(#ʘ{ks|x[cC<Hoն/I<.-qĮjL[
*x[cx"O]f b~` 
Sx[cC<ۂX^xQHgs1VF x[c
&CnX(<M~it{r{l/xT 56Uh3+()rKI:r6I-|MF?f,ns5{@1Ir<IdulO x[c)HYo;4jxx	 נ|.x[c?H?#l7?K\aiY ֢[x  Ftk	uEf	x  `-Vr9N,;
 8x[c?--ߺ'o/MXtafeFVf =fx  gl4d	?f4x[cC<U[k<+u'uO\̴ hx (+40000 BasicServicesKit |*YlCz:1rT*OE/	40000 build-tools @A"l̟%IiIW]#:]>aAww<
|@Ҁדs5HɸP-Ra:ab7N/h
_]Tfx  k䮪{&]x_|fd/x  v$usq^.ēf	qx! 5@A"l̟%I!x! ۖæݦ~h{To/l,Qx; IMzD7E~gwZKt6\b#5E~.*qPml&Jx[qC 3S2S3Kq8V-笜U+&r_WhdDW醙X]0O
N'MW~[U|RifNnI~~N1CтRɘ)R%C4IHQ|QWv7q{:b7Zlˌ~7)"SY)v<J2baFfYfjyJZ܏)roca>ޯ/L-)MMLd8DOԨy̷J'a`f2׬M\Ȣg2{.O.N+/*fyLee/_-ud!fo织Ѿ0tO$ys<z에k <^x: _mo2_
2és5NĪĈ:]\1&}l'x! 3`]+سWx[cC<wZ6E-bb x  ab7N/h
q4x! '3U+ܘ:w@#a#dx[cC<HγCo=Yy|]b mdx! _d(#ʘ{ksBx[cC<@҄5ol>|b ڿpx[c?Q	Wzvfid5<ެ ۭxT }UfpٽLó#<=wS+VIҮ.H5 sy׸NPOb.k

$AZx! rGi҄GAx  y׸NPOb.k
vABx[c?_U.]ˣKb6+32 ˓px[c?Q	Wzvfid5<ެ ۭx: &|1s w7.r1C#Ē*s!l1
cgxl !9|)U}zѳ#^Hc<ӌۓI#T8(
}yĒ*s!l1
3{5Dx  y׸NPOb.k
vAsx[c
&7q]6feyS# ~ !x[c
&-Yv&Rqs.{rpPOx F~df#xY/@rГ#3s%}.	%2
)0x^Hc<ӌۓz
EeTn?cgiτ}r%wJ&E9?:@\=x  iI#T8(
}ߑlx9 G]ԯK[fYI#T8(
}wx[c
&;_K꘠Q&2{rEux[c
&un1kj({~%3W>kF v'"x[c
&k:mg֐vN{rPx q:F~df#xY/@r40000 build-tools ygu/96ͣI3s%}.	%2
)0xG]T/`3Xr%wJ&E9=x[c
&vbS| \k=L9 qKx! OȪHrHCްl]{x! qp ȿK0Jlp0x! Tܝ4
¶w}.Rl_x[c
&j{8ִ35,K{rlx! iZ=DR:;l i]x! L-COزl&tx  iL"O<TܨNtГ}#x  ib&hd}ݨ8}-Rx[cC&Rڻz2s߇ɵ̫}Lx  i?&8#B}z.x[cC&H"օrr&+\Ne^ AD[x[cC&HV.ib//ci:'rr-j x[cC&NaMVr<_#|.ɵ̫:;x[c?s:6k/}'kuQxˆʌ ix[c?;Ac%6n1ik2#+3 Ȭgx: I6g/_QƎjM#3s%}.	%2
)0+GIx: !tJNOW:#-.3eyT%0 x[c?HU5bmv6\ud2#+3 7
?x S:F~df#xY/@r40000 build-tools ygu/96ͣI_tFӺq&BF]5XU>rV22#n*E]ԚTB40000 web r%wJ&E9mOA1x[c?ȋ<	Njޑc>ʌ ix[c7fZy/d	ORߌ\,r A)x  lUT1sߦm֮
Iix! R	ŻGF zר$<̳l$Mx! 7Yay*Q6購l^~xP :j;Z{VWssN<R!Ԏo{UGY,s]DOAsn
'mHx! dr1LM@0B쳼laxx[c
&9!qL6gF }.x[c
&y瘛W5kt=L9 fxqc"у#>d>Jc3E&@PpGWkN_zױ8 -xqc"{9S/OS\︍u(&1U./u, =txqc"+C\2R41 $3=:w]sBֻy zxSN@+F 6zj!(p(BUem=uwטw1MBJ)w̛{0VRS['0<Z4Hpw \j#*_gԆ }𺔷;,UXTj܂,@+$!QeU<!c&MBͭ``|ŧ&1}rkA4/ZYP&'-nKdƀ5i^uQ1D̙e!PDsV9&K2Q%%c5k%;yr		(0hр{\G,<`z	8	Na4pr< dxWgdָqB
ZP{ɬBPK^*%gaz)w)$+lYxҶ"TIL2uB16}"IT-Fۇ=SpޛXm<8lqQ#}鹻z{hױTK~쭙4B/?lX2HQ#e{(ZKcs*.]*j1Qɕ:jOrfu;%]MIm/wK4}ݼJ][[VwgoՍެeE~OmT3FWYFDbk'w/eZ/7Ax[c|&̴ĒɊl<~~,H
2&0Ks#k&f93/y22LNd<UT=ٕU3K\U EsxOY9(3=DAy#_4W~F~q|^Jv|FjbJjQR~FbYqjqLF9%)e <%.Ңb[h OAA)/$,5>,7$1%$Q/CIM
L|jQQ~Q1TA,df	٠Hf!y@eM>ͬ%wcX0Ts~Qd>zX4`xz xQo@C"e0uo%RIWUmphw6i m*U-}Dk`2wb5r o&3&И@%T`2qbӞ;*ͥs,G#EX

!T)װ9>XbY9g.ɚk 66#_rf3bOfLX'UPr^[֠OO"2g5H,UHgF|k\)(	F2{fG5.&.|A8wjv;x:.Cd6lJ__`<bHkT6J6bp!^KIH%.V,EH
rDUpmSSz	Ey3(qByLj/v"m[ı}/2d\\*5C $"
>f_ȪKQñnŬ4Bfƺ5z;څ&1"JSj^VR\Oai OsZi>F!+NrYɼ*zQhGV)g7Qpیɶ<#GZ!{+zВ$!XV+;hOrcݜب$X|Ѭf:`i)yʉE<fmѰ1Nm޷*73o܄to֗7=.pEtQI
~>PXԻ	Nãi?|(x[#g%v&ai|ms5mF`*K,W- *1x[ɳk
fO2rr Pcx[ŹI+?#8>/%;>#51%XC)% '2>71/1=h&}̼rBq~iQrjB4ә!3RY)/$,]JIS-$>/17hvYd&=U79]t\VQpS3|-Iv-T.vrS- ?kH	(x[Rhbə,<%ũEeɩW0+(#e(M6`FU8MJ Y >/%{~6$}3!bDv4;bj ]7i'x[̿Tzbə,<%ũEeɩW0+(#e(M6`FU8MJ Y >/%{~6$}3!bDvTYd9ssRR'7p) )pѼx$.a:ULbVDX1U>EV+	d@H&Ide&'d9\A*Q)8KN&?cj3㥁AZTXRZT?y(|Є(gAf*-P><71/1=H	"	:LYЭ`  |$x{)t^|C&d]k93ssRR'7p) >\4D??#CXU|qiAA~Qd-fEN$V9g"	9I 	̴Ē<=g+HDvJ3S2S3Kr8	`j xrL%ZxuN0I#F*ǨT(ĎP7EcWbg҉7(#K\)ٮ|s>Nݚ7+RJ+5\
¸6 k7Y)(A(@sZ	/HRg=f5PJp y}ȳ7˩-7!U팮}{Bbi˚2e>B20Olan>HFK|<fn7v|_ϢMtK@wA-7R%CΕпO来tz4EC
P:κ!~)G#[xscC&KL܉ɩ%٩y0"K


JI9%5y%E9zJ2KKaUT\ɢbU-#%%y@+pX0EfHpjriP^,6P't}T LZ/=xsOY9(3=DAy#d&ҜԔD}0TXTʛ|IJ"X\ZZ4~=.#KSl<%==dxq|FjNAjQ|rbA^"eIũUD՟_ZXZL@-c`E3+cTT\ɢ,שU
ҒR|*0#/[fN/W_$p9N>Ţ3qz[b	od}4M$Ax u8
:[xƳgC83o~F|AQjZjQj^r̢("EE)70da)K)M-|Y)?cfEEHyYPLj.$jdbPRP \T{WxƳkV&ԤĢ8si&iN-ϜY7?#If1ԢǙty)J
\

%%y

JH񲸈f'e& *XEh)7qP6US܉zJ:@rr hd=x;ϳwey%10!Lg՟æ DRx{C͏M'*Ogf@_Så J jl H(Ax[3g|&Ԣ˘!\%.Ңb[h OAAIO"*ZE"3xnb^bzjLAIi}Qj|qjqqf~\njIbJbIb|~i	%y%eXݚZE,3%e2ıX$`Xs3yEpA"R -Da|pp"\@CH;
P3 3bj f́0x[ͻ!y
({qjqqf~fLWJHAsS2tbj 80>xQN01OE>e՗*h'HiզuRɒ}Ϲ>sE&,/-(R	>௮W(vM蹑^;նdR[T63ۆd.1$p-26D܃
ThB 8ưw-1`
wTJ0K%aqfd_͆dZm---=pxG4UaIC^uU04$w%6+xuJ@EaMcv#HtFÂvb)2d'ϝ̼0IEl,m%_cX9Y֐{yޟ>\PJא9c4JQjrUH{SliFBwf.[EW?O+n`oqhr=y(G6ջC,.(6.ZbnOiL..7Fa{MY(<l5.4ejrӇ45`zxs{CL>ɉEeRR2S'[1_V+i*Ts)(䗖lY98J/CIC
*1S~r,$!	>H:JJRS3󰘝ZXq"2#LcC> FZ3xg/G~FrbnjQfqd& YGTxssCL~F~q|^Jv|FjbJjQR^bIfYj|JQ'L⹥9%)@2P`<%. PGWQY\;b=%Mjz#RR2Jħe*؂L***Sj̋O-HL./:$_ZRPZt.H:X6$58_kr=	;YeɳYetx\ @`-:x}OK0qŲ!tA`Yvu lW/,!m^۸)3"{ɳǓ_lvjny_><4gh"䞯Q`8zm>T|	ض	\6JK,Q р(-$}/gYlN|0@$s
:GҮ=;VZ60O\#qڲ"	TJ%܃S	8ƝC4J&cT=:)' j{Ƨ0:2thJ#P+aA\Q\8QӅgYi]Ox4Mf:eNUlZgo_ڵ:-e$bE+orѿd6n'}x[ű!I+?#8>/%;>#51%XC)#3e_&}k ĥP_ZZ`)(ħ u$de(
TOaQd(i*TO>͢2+!ҒҒT`Y+KRs2s2K*\2R<<]\+JR3jE'
܇)(΁Jrr Nl@x[{gC;L#Ax3oCfތĔԢbĒ+ltA}%.Ңb[h%=̼ҔT}||bqqj^K?'˳N~bW0yfqVF m%]xg03G~FrbnjQfYf>Fϔř	 ނn'x³{CLLɉEJ/CIK`%Tg`Q*dk,/ɏ/-Q(,3w% n>nEx;ys.; ,Gnx;ys$f͓)x;ker~nn~~^bIfYj|JQn<DD/CIK1դMa,Ɯ4E&b<YY`DK ԗ#m]xqc)fFɧ 'Wx]KsﯘGrd[R-$IhSoZlHݞÔj| w~?zW~Y?~7</<dH'9В_DRFo}
L,)c~}#qw!S:-M0K{FI:_e[م?_S(Ysx`@UTcjXLy<AV]	d)ϒLNb#gY!f`J|5%!w"-eq]hn[#zN*ay@K,{e9hapyd"Z(X
!*% .W挠mB*|!ˬHxL`Ygםy6Qd!T^dpWX9r`i ZR͉'8ؼ߂ZOdiHŞ)V.|&֚̈k◝2J%"BM6;L5Q#m7Kq*uL׺[Tdu"6ey
b3<ѳ:hP;;Z>/}/M86SP,fE:upv Æ!l;0N(me'XFZD+HɅܰ|oLWS5x&Ъt,>#yk7N2hGو~@O`={h1maj##{^ahPٹ~jSV)S+g=`i+hBN:*C>sp.8kom5.~ϔ1̊ڕwĳ$)-
2JEN`CTbUmӿII#[P ~$~!z[CRqC=S2ȫ|ru%ʴs{xI}S4L~
xb>+I5WwFhG
3zn~i*rc(Y^*~p"lA>7{LJJ\F
bhLƦFLOx^ p-^G'?Ő,Chx%cȺM>GH:\QJά:(qר gi-@	h?'f	/iW.+{?#err#(и~#GPp($ڏ'$yAMb {z]%̰n}(϶mÚO2=mULur2t]%\;l=>v3 6r,.$})Zܬ	-FA}Hpb%KڂדRrg#`i,W?:tѮ@<K	=Z5ibV(K-n@#<l0KOGzA3L0~j"b67t9@kOC l:l2pMYD6dD:kT3PʏWn"mp	#9yx$i'
	nx+6y&K7	ҏQ`ò	P
O!+7c"f$A7π5πjZ$aRZ+9\$0a%W 68Dha2 ")`WRv&~6a]XI&aMG/C#{FĀǽجP?3TӉ,ż!44%ec8W9<9N+ VF(Pb.̞p07 s	w*+GmQ]mAMWtu=ڦ= eQ:HK/4԰O#@vN>60pOZMZkw[_,h|!loTWfl16k:_$]}GhTa$SB$LSk~0]S,KAyBw R1ի,`<VypƷ(}P޹K39lP.Fգߡ6olt3mJw`.~[uC^B/J6gE<fQ8x{rjR)'j?ޓizE>,$#X.K]LVMlW4̴AǙ20/W聽@iڃR's`!έ&LkTlƧJ,p«f]^TI|ց!?,I'Sb'm9x~)PʾrB^e	o[1^5}7ih)q/Vrw{d%pAg	ؠt!Uf\Jъ慈Аҫ_Ɗ_9ȪG͍d?1T8InD˴>Zn@Yq+ZE1,lȣP;=͡^^,;tu窵L9S}ism"n#=Kˁ'Zo.DRezӦYDkӴt(#ZHeLB<kR>y3`U0XHPwyh:<@?sY2nE&UAK{z)kmy,KhQʄ{.S@g/zÓCya#<X>b05'n9K(9nTs<Ȥӄ҉8k%*h;\2ٜ%R*:,VVSj`	2y"hTcz;|]m ~Xak`	ȟUቩy(f槻2M2<IOlc/"Ӧ|
~^[/aFialw70IZ~LTKE3>.J7)ZIS澜EWn.,59m?~G?~.6[ݬX#][x8lnBA7ھoeб܈=;ϚqhZ+߀`~K	>$wP\M^C3ޱ䣲CG6͇F6c Z;)1z*f!@pi!rfUm,*:eQH={KE}-to[B:%}QƃeF{FwfRd=S<=JSǂ{ЯA	">m#RCB5DUCziQ˥qFtL	і!.|G)um:}+ڮvhI;l
1>78h9NT{6#tRaqJ	E1+
%˂Q}\2z2I܂KM*Aa+;݁4\BDnFF={*%)W'p!ءnBx릳p$|jo߇ jXzJXM[cs
c=N
j7QdLϙy};~>&6ԧo[т fI+
̳E8i)8HpЍc(> !ޑ"3<cvvdh9Arѻ$Xg~ZDl+.yb:fU}6בGNנ$_rD0;? ;|OKt2I[AbD]hdwBFoגw.,؄Iew7G>fJm^~1h mʃj~ym¾x6Z[Q/;ÛuyDV98v$#$-|HRcH]?v]=~V'졏hxXbÚʌCݛ~Pe#O{{T&ALǽ&LɰQLy9ß/SAeoOi+\qf偛LUT]U;cJØDؗKCNjŻU6j݆QᒎuWT1tT|f*F$Mmϥ_?-xKJp7yW',3gy
稿9Kv<Im݋!NREw^sqlix_O1q 3Zxŝ[s㸒WLDGgfMъ4LLT",aM< e[} )u-cH$OlLYPyet?OXJ_DzY\ՏDV۟O1UJʓZdًQW2G*e$'bb&D 74mx:{^A3-C05],L7,2FIK芺ӳUy5#*[F.rhV)cu S23\P7]dUzVKYVbYFDD˩n?9dzg{<lN5+khQdط NV룪՗еu2FF&o{4Loq^x}XvnUAao"í}i6dmjmL+RT Sѧ*7.M[
w0jto?u^1&*-7S+GQCe܋~@Vvsy;_DG#m/BV}ȓj_D΃#Ad!5WkiLUkr j$j*d0zO0t%`%Jtw}	ۿݢΣALk>tk5?6Z˻L`OrSXC:r+ax@هu.-5̪85ݵ29"Fz=]`,uSwoxL9A-Uu4VM$T8ej)dG[E<3S`cl1Fgٕ0YyՍ2ҝEW+Y1j?#o~MW*OAc:ʰ'=#Lf<o|+]$1uYv|C_t^qۀ/RS
/Zٳ<]W1Ӆu*%t8{ř3YPs%[  9zG/bWqm$Kyz""`^^ntR:(qD
6q?vcćV>׶0w9@<Evbp4]aprj@f٫vLraI/gNyiNp.hk't'CH`0 ]AP~!9A5zvY<,: QFb㞅.-'eᗻ/ N)D?ÜWdd.M>=Ŵvi[iT?52Fv@1vI215zcmamзp:: "/,geȰ!%M+\3RW|jEZ4uܶF(*¾k7Nsoմ>[X0q^7yLwԈ6k$3-Q+t2B@XwIV[UG?,S_v1H'U=Dqvbqu`JeA}H!S{8g?vmtY2tZK{\G{COރ¿yb	LLXgb7XDy*s_0U 0FZϢowrerY.w#;y%	sebx5lwtBS)<S)<S)<e8ɠF2ti O/e܅ޱh*4{!3HWOǐ_K9ф7{(Phs._CCg؟VU0УdJer2)%@ʹeմ~+(!ghIJZ}}%:Ŭځl`/*6=<_*@jAB֍{0zqħf'>kLȕ6+-k22ȥD9Xc.;=.e,Q(?)|07ɉzc-q˓.0=WorYwlWpi_8Om& ->.!*Cy+G&7y$m`Xu`804/C}'3w%+',ĹGL|l|02 55BLK^WrHp~}p?f"_H45WYY,?NX<N:F8iZ	tC	j3>ToFc=?z<Im",<C,ejI*cEWb67vK8adSaU|'LMGhp|d4F>i	D?`,Fal`]K1}ٖgF[/OԧQϚR. ;/*5	fbA}E@E O=}<<$+-"R\=%:}{7NUx%d A"A~^znD ULBg)jUtguWk#A)= yiZf-AV
2pq_[/sa[SU2H.Q,Aèt.o__GqC1t11sl+TVBzT'A8hәL*Fj@#$!aKSR|֒3@=y(D*Bs\>\nI6ƥ72ҫߨ`iNݨ~`S' #r;k	10FU%fڧ,b~"Җ?M_riX1ERHF*Nk?X+qe՘7 Ƈ5z,N)S7d
sbq,3!NSnZ';#Hndtah\Wʪ/xɅOdcML;׳eY+>6īN0%]o%ysy}xifO{z:.4=deB_(.z"p<gx@4KE6e^To22B\R49jR]и^PoB ؈|%<0&^DA<N`$0^jtsKF.K簻XW;$t.F/5eB$gbVrDؐB	+1[0^IuaZSk~rU.
OC^ϜdL}{A格Ey5Yٍ^T4!]}ma6New{.x]x[w\7b}JmdX s8oBZh۶1.~ZXn#U(Kz?jmJ7apH."1i?ܻxi3N,كgM懆Ol?$ b"9f,ߥAhtJs0dQb/jv%TPbK5rm#b(19`cr,tpO4cS;rmE]}v*QV&ŏBTvg}a^u}%3IrʓxāfP4*˥zF7MA\ITdNY]mxW>wn!s2<SkϷ? 9jǼ vSDs3.I5/	~8߶=ؓ6i8tXe7FTxzunbk Xw5&SO_h=7Y^mLC=5	;T]ɏg-\?H'&=Y>K5:=PVXĬe@ j T?T*i~AHXڋ)/*ԏ456m`"UOЦWGC،Ke&j? 8T6,bC4zAFiBv>Ft!yc?9<|ZLL啇Xԡ|F>W~wwQ/f@ޔѶ}"Q7>4
Q.}oCls ;'jR=hE躬f}-w&ptߡa67#]Z``l=ו\$<zͱ,I&MQ"s.UYn+{I:~DOu6(N vB&.d0ߨV>mymyANA~wPɆA9&Kh9cPWYhtRU*McE8̛<0G:[cGJSk*-ml!Zaހhڵ^:x3]M\uB&Yi!~@!2XoiP7a	1YSh*go;Ѱ;=[|9l+{.:*fTbٙ)932'6.',?,33SU%<,zMJi\-tVeE&ס>АxQWKcwQG8Gpѫ0g	A>]9C<uyP	ĻWճ,+
O;
i&@S;j<6rMQß?Vݹ)/Nu
hW$f?M~?2ɗ&c3w>v&)l>.YRǶR%U|ߥ}3F(LY֖$ aз|Iڙ=
$Ľ	LNoByૄ֧ze1Yq^mP|WG'0t5<bc5L-9!h,p9VZA'Է\͈Z{1k:haVCxƞ s]ϭìA%Lm:|eӸ8U=lxWF`+έ|~0JA1 xpƸ7M"J^r&/S1e!Q1večN(g~eXaـ "MT#9%bQ1XXފ<ԺZ\mzg#JfrM.7	&dCɕا)DUt*#)qe>;i5	3X95qyhxabid[lXuă?0{aMvNTaPOvיހYqM<.VviN_GOћߎ0Zz-oj "!mmoo8$ψyQWjKjoB!,azUn'q#Je0!/!u*U?3oul]1"[(81pEѝLСZPA;GvrӤQN8Pc8õ[aѬfԾiS]]9q`׏^c:aPwp_o*ý!ѨѬ¶qa{z4.ȘeB1%7.>0Jyչ84>4/jVdԧt<<pEWuSJ&jomF=?ySsBDdWNM9z.5`Vot<FVkYFݹ.Q	_,jgɽ Pl] 8@K!81W@@4,\]Vp~T<y>Neu> H},'mx#re/@KJyU?RacI8\Z\@I	wPS\ !"$a -rdԘZל><cX-/.p(8V/.<&jU>i[pDQ
Ykޞ^0]x28_0b"Q
6Q7 Dj}Ϳ,GECGE!E\z(Ju
~IϢu.2P'jF=Gƈuo<M3pYPBwzv-ʙH%XaqKmy8OWUY	0b?0b'1=O6 PlrD8G%{4}I.NGn~TkG8W5yBnN__ny9.\4-}_N~w(08Zd˸Z?kX4ffEEn$;>{ZϢ|әf'ų4K^7!-E~Vn):Bt3Ԙ΋s2a\<H+d(geq@hƲ CSY{hj~b{Q`.Cyx!l;n6-)*JN S(ه13t?s!I<=tc'(6PP<YE%=^l7NO4ҍse 'ik2	6G
#ъ^Eo2h9̄mևuL^(m'9\)͕7^51كՍ0o:UAq{GVeSW<eAL_;*#1'A8ER\oG,gX]mVSsB:$4kd=jjSf5\N[]ZeK8/ҫ8,%8Gl p`._񬝯xX@p{D"'ńš$J4\btXcS@A+\bDLiE߹,;:"mZ8ft^YOem$
/r+9i#(+A"Q6fa6?Ȍb20+5(lD܃8V)Q`܁Z3'jH+%ϨlQi"]|ziRICW6l4ח><$]r䚵p=Fً-J;);|= 2!fcѬM&dm}lOV(](J'KX[{/0X/2"5gw_s8uϫ';QWj]m:Shsu.7vCwn~G;'5G`;BBGS{#G`;BBGS_;{{636)la,[ '>Z;%̧OS1@BeEOpoKR].êڃIKgbp"񣇫v6e
at>._Ev^NPSGPUVY2&-ރpszrYKig\Ftڧ>ۏ.	}F:}?toQ~*,Z/	|BMkk@ms0rʳOW6eCT8'~ }/4\J^ rMp*ּ.nB
Ҿ~|BۼOv>}\U:T0C8x
w\CzYXێbR(Ps}e^suY;Ltf1B	گW}aZ	 gA!UJ0:)D*ܽtbW\DRAj-&B/^Ό**m$?ҥ~@Wv}@U.j҇9DͦҼ|JYDju	{bPDpM:P<W{}brf99w׸C,;feDp=pnr!n[^(2	Ͳz<Dk6P1!cz`lعč;"X`B٭wLX\Ȩ{;$&w}$($Y~-?#{S]'~GfewP2<b;mFDl],'ZڤzGw>ʨ:m*kxB3	m/]Ts#a.Æ߂:S7"zà8if̦#*BAǄ]DxYpy"g@7yq_l8&i~ e褈[#R]f#2ʍ|$AՅȃ\F^v=D k]ˌȍkmIc@2?Ĩԟi4._2`7FW0BW`P^kfGA]et~=k-Vr>TexaN𬖘sv4Y.U"e,%[(r]9)aWc6zHѽHVjw,A	JA'Pͯ9TՈFWt]pSa |
֜1  Sc|:C.O2sYOAv7ЭTX@^rmVnVM+c9>Nb܉Jߏ[I(ZZ<?G6c ٵ]á=C	rh9NQKALh
<	5Ăz$*>*{!1>2HFoab+KA니D[Q6112PSZ9djd}
2a
ШYT΀,>/a"QXZ{\VVj="S,> QU>, T/qjWkh6K	?A&إ!)zmW	?]+|KUP,{U5ȉ-K>v/#.c=r019xm(?VZ0ʣJMLJN''
5T/JЁ9vbԷ5<k4uk/caTpp_v@Ks\ߊL|LQ2+D8@q@58XI(gFtKiM]ۿ~BM.2vF0N2qAޅ,DB>E$h`'!%lC4>қQ}b{[Y&;fE!/vF}ZgCI&frSi4n/RHg<0ȍ./'/N,)Bl4u919阮ieT>?əDdl=ad4a9ܚWN8WJo?ļ
~w~urF̍(nHEާQ4Ky*HyfrWQz1v_ڝHBއE#[k^Ÿ́')+o:^Գ3F\εMDF{Tj&2= ~^wbe`N"dnVY}xlw!PQJ@>]̎ is|H#5b#=R!}RJe9zi|N-usAR|㛜)1p-Y댖01,WP'ťBHi*lrTYdbM	E;k~KC	j_K5bp]tә2.O/ \V_T=9Adq7<O<GpdM"ʽFp-1ZYBUx=|Ār;jb%56OW""n|L<11aQJy*ʭI|D$YB`ˇW,L-9 ڝjjAz=S^ o)I[yPҎTd!;B1vb@Gv¢ܑy@/TYgw`l,+Rٍ+#RTC
kmC/!87zLV?tGR+D%蒓j|#Ǭy4繒V<W؋pϩzإ"U?E0*
)̥FBKٝ)_
\=2]ΧuhtvBŵ#K1788zUVz	9֝B9k,X	(=W\h
5bw2WK|<<"֚2|3#eս{ۻ
$wXGЮ3kw-)f%BSvIE\*']0>ΖvvN|#UMR@HA ŪoDdR `$ԶMܴݜ zUC!R۟Nza}h>-R
 kxeOfmIEMJ%Js%J\WqqGB1:1b1`VH m߭N8ab@cP3 ҧ-1>]tvJ͍Wُ?	gMqu!װ=(s`	3dBו]\1ZFt<Z&;rPB>h\\(¶%6:/y^<veɔ@&Y!C]LcޕB'-Bj4ɧSNs'N/͚50oa4=Z: ~/?Yل.D.|:mi~;35{#=]^>KmEPu]HaVBNBy ]:f4Ch*Bs&= *E`
p(;&ļTl?BsAq!3@#Ld!`xzLQ}U@
7@PrshC`=>AM۴?6M 9[]nͷ"		b? x;I^A8s	X:GOpIoOB;0P THlp@L-GrN;>ՀH\(}x?rV)AL.SdC
tM*?FjΈw*P< xgM(I0VG|f nDO/m; @R_CUDVca('wAi~'F+Am799M|!F	L@3rzֿR x#5{fFpBGP.CUԍytNMDYV+<z)+xcY*ݙs!êɊ"*.mh6*Szbt<G;fn_9ξ_:zUN?T*k݉7im曖'~.|\6mCwӾ~?ANn1mXSIkZ TZG[i]	<i*b'o_l],~,\%lr7 jkd2 ]nI<WJt F|tp`B3']1.eu%3gAg5=yf\c[z[%vvWwM(IR~rq7ؽz֢^CyXmh{;aNVi~$B%5WȮ7*wglBs#RKXyxQ^b0K5b!IOh{Ǘ[cygon<?<|2WZmӅ(/$^>OS*[yǞ3k(/n8+"=}]6t#/!򍼢RC>CpOpf<QOf6v+5-aA]d!e(N@0ۭZg1E,aԝHV.,AWT3:ӒfJlB%!waZfIEL%tq	GŽ<C8F/+PeD{MKxqv0t8"Tbmdw.+|Y˰pj5.K˥4%\i#L4"T9<{A(uD8/Ɔ:.`[3v}}sғ1(
Fe}YoaY-6>kÍ%6
y=J2̮GʫԌt~'%8/aO>_9a̯A^NFrcxe[HTQY94ΨM:c؅Gx4sM^RS2!oCцVaTDu=QEKDEA̙}ާ3~euh_6*d,mp,OKSq$ͫP`W"CjD~/czO8&c/(bx8{B"(p8gji}Ś>m~t	y4}s>8it;eV|56IgC r>	r5K*c>IɹaIT_8@=.A7rdTv3}nITR3/C'/#<0Q3K!^0Uw.4U{l|=QO^%X?u(%U.8OnjHτ0gaJ,wDV$'SsBÍp~'X
`~AkQ%xqw	+ӥ
c`"J=885TBJ+!WJ>TA'pr
U2׊F|W]XQCꙔ%5M88АGx_+mׁSRzpqjhE>S0rsfk7OūIh7Q$yTE`&(<3Q8)XDR,ho{FZ7uVnJ@C+=a6vПj=m.L	LLJ
zxڸXj;7cZGkv@Zz[$E޼B+;釢h'qzIk	TvUWЂbDRPnX3tW4_xijuE'o`$">9Ytr4D'Km#>	2*g*c26Q=#4Nq3T
&rћUNNRh73}wuMm;M>.
~oUP+^xrjc8{jK0`-d,X3נ]cķb6O_<c)`/&lD1+cp1p&ɽ{A1oߛlcmDܸ3;yp>xX2Ynm6(y
;9z;붻ɳMa$ENpܳ5,^4F;BQd]fh|	MPݍFbOW, Ѐ:x}WnEV"؎I@
BB"m	ixΖDx0ܥ7⺏7O^7w__&ap9_{	@7qhP N}262nѣ g)ށ	6`̌`:(NpwڬE~c?S 7#/ūhU^hx>U:	?{ڜ>]\ϯj5
oݸ[t NYk`uch$RW-V	>wFK&LQYXi)'p铥dg ֧Wrs|vNTfxdi,;~.D)LHoW yǒ`v')?C&ץQ<Xlf0JEl 6l^0,+xDD)^bYG0l o4*m +JBҊQex}~wuBI4C,Eib5)L"$.rBY[AytPi؄!>Ew'k3sf3PH)U2HGv$.MF"u.Z2i~{UNxk\q^x偷o9HӔxH4WsB3UzGh"Q̳p=C1X;Jݶ;^oHjhU2
E3'/^xg^S$2#/<G.<aS,MNMs
c@	겤>yo,byly)ã)0'ej7'eLܔ	UyEZ$;V1,Zbu" }]obj˪`[Y3
19¨
xkt
E^hRWnu}Zvglb8t^{T=Tdh
wCQ&rJ䌅/D`Lk<D1¨-h&w8x]ܺǎ|]}J~ $3@A״6,8#z|[v/9"uV@|V6gEn}&:ZS[n"6~ky]+[6	l85o\Ȓ4NƊv./~z`nxisIONW~ru&'_7?Of|,YN(2EwD'_a\(
Ml6;F:2O 09#b
B&/ڼ-&> @D/slxi{+3q )x{iOM֜:y>	%ɓ'5D=23JK+ PB,ex{?OM֜:y>Q%.  nxk_ͺc%km!L\ -QF!6xk_:3y7/<d(M>.$0Y_}rf9zL97*2( dCd#j;sN8G8<3/%<B$RW˂גSI Bw$`HfN	Vb|kq磚d[l66K\OFDVU D@I}s}
5|Γ<&{l^Ħ$&ۋf0gBaP0af#{&3onȮd2|׉2Mʶy;hO6X*5pldқ.Y'8Yadlva MxykoZ''4(M~%%X'gIgd(q) A-W, 	>Fx[yNݫn l䙽S+'ZM,' dĻ Γ@|E%O(BtI-LNE7$hCzƅd$N^XK$O.,C̴"䇻h+I+σ{y0	Y%yť)J\ ,j:x[KLv`&1yWa u}	x2-d}қMY 6rPOxmKLQS)Lytx-(PBCVLh|G\A~cD@axLЕ&2n&nt{ͽ,gY,O21ϡlgVR^,J!(2jp+1r<C߇0E^WA1|cn2i
F9id'(	DJ9r_Xr3Xk=<$Jn$JGQQVUp]GEAnC!8t)oW!MMhjI7<Ֆ8_V6/3>EW~q&n'j*joNKvis&~t(۾=yoKԵ,;Yeu^Bԩ֤G(pdN
#ޏljtK1bjzӘ3ukJYd<kteBNEqtN9ک}_Gi.돪z?qFwh!fq|3ET2QE
S=+&)Z?@U1YX-eRzTJWC7rzِުMizcAљZ}JYz҅Y¬mRGeW-ނsytrSY%2p{>8?VVBq(|UȼŅn^#ANrTU!0mXWkW$DdrԻ{d{rMlcg'I{)g-w=~#8sxm[hRqqg븥gxCffn/)27&r]"*j=LN9_^,
z饣_{-->Xڣ]0v\t	y00RwU9P5s"b /)m/Z8^Oa؍)Um2 \(;8DRX}X[QtIVڞzU/1yTt<1FU_L0qYLvOh(5\'V<)ciW]EBʯ{bq s1*kAjkd5pQ6QxcHEUS4sPP_ީdu]FёM/{'+|g'ݰ9k	*Ur-:!)*dƈ禮[vl9/YhOeBP=bb%䧲\GS5U:{`Pkoq!B²8+Dykuv/[cdx. F>FG"p  >bk$mA7
]<Ux[;='X#w\V b	C%xJQQhJl,+-XaKS
LAz9qtiPq=zzhQgy{ݐחDYáぴ<-]BbƦՒ \Lk}FeYl[wS(<oDUw()Cy<+SaE0݆ؔۺ4?1[50?P!oqV6yqfՙ	v$PQ/9hxp'3[.2#EN=c;d<3"$eIH)á/f
01i%%E1?\Y!WU]wb\)GЮBM=+MܦGZN[D/,E~yI۽c9NPD%;~)<*	(m3ja;}O?ܗ?x[i_M''(ohYPYr6 
3gxNPK&H%Tʟ
@@uf@_!tc^˹d``̂(w3t}j;!J89~9>>o9ljE0s[pax-))TYT.
dH[pb3)g)|!'?u!I)BуHeԸa@L&k0X>\5ݢvυGlwIyy[(o&ĕAdSgN<N+'͋ND?J8E
hZ&b֛W>?lN]rs2y"r[0eJo(	֦%Tz:sOw_KʫKbRK<%CzdTCw3ʄ>ef\2ZO4v_['p^MLat
oyuE1'G%ygBs=ǟq%|~娥l>.\6cx[/WaF&NF&eq6ˈj22y97牷3ʛ%33nT6)ؘ9CUdDevԒ	Ӽ@wͧ&Ogmޗ2XmZsWZ%&_]iU⛼pH|j'[e9YQ`Ri2K8cr(o;kA1ۉsZ Oq,[<W:@Y,]'A$ X7;DpFp8&lЃLlU{Fs8grFS$w5&n҃?6y&*ɿ7!B6; -yj[,</$[xq[QӪ0VO$qm6Hn
y#ԥۑl@I'0Ap'B=);u<h$]vqNޭ"b5'i\{s?! Mq 6& ZYx[i/d6Q]5C	l؛  y;gxJ@"bvVi)
.ER
cq%2IoہdL
]\+y	>c&&YM89e^++sr,ۈp)bˁ4O&zVbQG%@l&:=]H&	45T@RU#'}2O^ ~3r6<_lJbc{LG6q ɨF<^kE|	qY=$hV:Y&9Ͱ3=>Xt} X8ע:]!FI.~`o؃+x,D<-}E?5+=<Ƭ>"x!FmP[k^x @hC;7 e^txN@l1HTwm$`i5NK`ֵO>o+cvewNs_oԑ[g[2@%A|2-"{{ޛ"Er	豀)qFd(		&hDǶqg_P
Ǳe0L@qQs?@ ɚ`
_ y2.X;*`xoPUVŮӎ	|Tz(@׈'4( %4_i&˥vg	I-wWk;[D4"a;?BIkl@CMW|M4M/ҿ%eJ@	qhD2Cd(XyقrXX݀`MhZrOqV]kgW2ey<_3^Lx{ PhCd{[0 9Dx{(Ph'dAv. 4C30x[i/:(L6g-l;##?9L%amd2e'snnLR؜zO*d+n>X0yB<8msh,T<Gj򕭐\,5JsbUp䅫@WMX>*c8̊JXY֘@y'_Xcl'k<]6Ln@&^Y etT\c({,A3:fVɺ<Mm4֘I*`'L8&ddͶHm?nqFmGM[=č a6+$mPnG߳'̓\InÝ<ԅ*t99{.-ԜfpqɇvǶ=`V4prNk۸
,O mPx[/ӆ	'Z(nN8
 w}x[if7&)lPe2?)L0bx5 [7xTeh4#LXp~iQrjsQjbIjxfIKbI"Dpr.H( OB&Z\R_ɸ@XnE%bH*B
4KKs}SKSQR ZX. .U@xTTqVeL^&S8]leKO~όP coͲ -@xN1DQPTQ%^ؘ FI$0N	8;-"ƭ{W}#:e9뷿]	_mҊH2dzhzX<mz46HPHt`׍.1XqYVsLuLNx"Z["85jXJKvsó~Y)1@){lcP	j
%u`	LhBcr))`)J	uid&)rb1&8X֚b5hYuw|Ωh񌴄qظ6tp܅[l(%3aqd͞/hEn]Xܪ]
@~?C}xWrDb@Hpb;'&(B^@RD/w1%GILǐPE ,| ?ĊRK-qmc'oz0C: v}^雷H$P$I]I]ho.ce7JgU:#$=p7e:l3(O^=zb)$qXob줌`=?<t޻v݇f8kd?c
`B2;`HLz-FvFOC'|@NIK2`|JuL_	s5rR!EdrVyRDW%Ўwqh':CcZy쌸(`fIkE^B	uQ\n`j狜O#X5)T㜔cSEŶU+LZʆ^}yKBX4Rk%Ǻ"P%u$}be<BUj"&s-pߠ	y^@<'zAIy^b y~~;1CC.(L	'J\B`ׯƮ.ҒIX2D෣&&vv+zJժZҨ`YIGG@6lz\3:LT::R\V*.S+AAl z{;MF4$mW(ۍY͸Tg~fGʹz>G`.߬
Z	D䌣nm7߶`jN^݆Ebp|;13hT/*TiQJF_o$ʙΈK57S7+TM)累
lbWBɇ6	ɑ:hf^rjdejK\,م$./1	,jmIX6,T+u䎔_?O{8U-I?耉UH.bU]QEjf'f>2U>K_ƙ|1Ȟf]<s|⊀>K,|sG2d8_AvM<y4^<~6i<h61%aB@wnѫd6t|0{qBRX:0̙10xc!*-ɫw>AќOG񋌻8qcIIn5ϣ8q^p0^ԋϞ5J+,دo(i3)uӔÇ?)՚EY{-'LܪY\Aƃ®PMY."=QwZٳᨤT;!&NSޘI&:Bխ8J)v?Z^Q4͇-7+CmPxW[oDVBiIm҆"
Z4efi@02YY]m6"!3`N-8cx쵽m_33Ο3ߤٝ3_UԷG<B,ŻH( !IIl䅸]kp^oP;BH=(-aEX9WJ1B\ 
zc?c[C/tpkCg}l"Kv;c[}΍ /S0(lEa8`%OPd
鼎:EA+"L.+CÈF.)|tx{t{TWyHaW87ұS:Ax%y!S!0E񙃩{1%ļZ)y`jI*4:WPl"h]r
u}]_/4p[6L2߇ABX+QT8(%#.p-UՊwHCK(ދ0CyE% ZU:'QIFL>Թ#[&P@fQs^$m,\nj	"+	u0Wa]n^̓9ZU[K(K;I_V̱>D9HNGy`93rQ-tᦐا%PG*̦$JS'邿pk|7zee)fLv6?PTPjUA`=6~Yw UJGP6$F<X8vrT?hX$G:^PfRCQso5nEBԇ(%Fo7LDXҮ=hÍԭ
Pmq~:brdZte^jcejJ\.م$dn,1Èq(jkoQ|
YU2%)~O{|Z25[?UH.bU]fQEj,DvүUj%(uRp2HE74~8|כW+;'/&3C\brҋgYPV+pYD%;N'y2 y<>LRªY"K=ʉwª<Yݒ~rXt̹[鹍swt0XPxv}ȞG?*pLQ_UuR/8vW4HhԽ/qY8eQfR{c~VfTg.Xd3anpbfI
Z@5!fZe2{4[`سᨤۭT71&~Sސ	Id&&B՝$J)v?Y^Q4͇͕mʷ+>@:XxW[oDVxIMKPЊ'{w-3MBɺj	 XS^y7x=k{4;g;g;ox$:yIty"^С=>qr[m$t($}r$]nL.z73ͪE҅d8r6[X}'BRA8,t71vSF[esLZC35?A?0![]0BhNB̐vEa+
e8똾\c)0"jB>E$ӯK;
ߥn:CcZ\y쌸N^IkE^B	WuQ\n`jO#X5)T㜔cSsEŶU+L7ʆ^}yKBX4Rk%Ǻ"P%u$}be<BUj"&s-;pߠ	y^;@<'yAIy^b y~~;1CC.(L	'J\B`ׯƮ.ҒIX2D෣&&vv+zJժZҨ`YIkEG@6lz\3:LT::R\V)S+AAl _z{;MF4$mW(ۍYARg~fGʅz_>G`.
Z	D䌣^m7߶`jN^݆Ebp|;13n4*]y
(%Fo4LgD\㏥]{Кpȩ`b|6+uZJ3]Caq|w2V5m%.̅|jefWʘ
vq5ǥRRq6Q,B*a:rGʯ\btD\lT.("n3[GͲBUW rq._y'$9d뭷g\\Ч^`vnxXr,{t2n<7ip4'WK3&3M\Cb?F"V΍4z}uh:x?N_
B>93F6o.U9%yr;G<Ѿ?h!(~q7Sn.2`8)4`2"íFy4#sr4N~}PA<ϓxzf]kwŢ^uQ%m&.uWzrc2Z vqrb{Ed<(jՄB/s%QxE=<JJ!zNm_4i(Djn.T݊Ѭb}N|^[?|?Pcox;05i
Y}\ݍ&+McqLB&os|S sxk{Wl2dkcH|@khp[k[dy!}at5/
yOޯ"J 3X@xk>CYrdV6 ͊e&+0KoP Q2xh6YYos-{: <x ЫlPzv%xi'6'oQt-*/rOI˦9Pw1 -0xi7;'{MZWXX<ybPXM$$է7i	l~%)'/蓇r9%gd8Mo |/3/UKjb 19xxi&3N ò:ܢ&MQ7	b<d	\LpO~:/# &'6O^9Yaӻٙb]+	3xxiNqܓu7?59YtͿlv1JN盬 49F|&@y2o}2'r1n~PP7Y}Ly6?ib65$#57u_F8MNl s,ߧw3q >x8^6xJ@EˮT\X؅DL6R0me0iE[;t_mIZg5s{X_9U$wݡ}=cͨ$7ؘ
Άc\l"Qqa}7mh$}"Izkf)9a@c	 a%U.BRA8'=|_KQk)x="Ȥb=K7R^I<e M7-a}HF#LIQ"xDYeHִrV_\|_ֱMc۱m~=ݘ:Z5_y@+ic"(OiQ-Mrid瘓 ;gm,V>	x۽i.'&m_y 
:5xOKAQ⩐HO1[((=D8CˌVB]^G+d˶혶=;=;g.e˙]/,;7 zhS%XIi16LQFDlfuh׆Xg/D7ȵ4/8>GXS
6imz`y^*ldOo4gjH[3-݆o`2uut><w8"$w-2dIf5F$dS5}VsT([5D6-UcMz28#j{-(sr7]}Xx۽>'&m_y1O~8KNʥ(<3/=91,JM/JqΝQJ	-)|	DBU)5=3,491DU[f^fqN5.%EJ\
@P voSxWnFV"oB)BU/e<ސjfMM7˾>JoZGgǿ!I;g73Ͽ4:wgǋW`
:|c: Ory$"I_lKL/5Zmc4VLYC g H㿿(ˮp5Ah+a5}z~aNflR
|<r`\26`9G8ɦUT\mLo6s5B9y%BPpTiZ1pmvF\t//cgpF!Є[Z7	sDPղ'EM
.h\rW8\YpCl]]MWW8>,jW+َh*UeuEJ$cbm<^B)uf&s-1;!AvBbSUEO6k;4퓢wb
2)*00^\/L&`Ʃ/2Id L <QwŸ>OFhenUcxTrP~RqkE/0oӉmNlt3rS5&::U\V_(SW
xC|@`2׭Y4ic.1, d#ev`OӯZ>g`rᆎsV΢e#9C򌣡^n`ټm9-f	=FjĠΠ="_2@<-p3{Dys"^e\њPPoԨcS=^5ĩɇܓGڠVz*jXN.csMQllS|fIHjȘvq5ǵNw|iqvQd,?!Ka_?Oٹ*,p.Ɇ]<Ę,UU.aC_iI/Ҍi|Wčwf
s%AQ䡺k̗	9hX:;^FtG9f}qa${<7ISD.e9?<os{M&9$ ,Z6;#lO,u^=)cLn2Y&`v;;89x<#9K̢Alj[od?vf c͘":Wstb߉rZ Yed6)ܦ􄟼!⟍$b4}1LZ+vS<=YHRE|"O){BG[q<YG+f<$>?~?!N x۽n'4Onc߼I |
Nx$-8371=us*6,ɘ/	f'g{;gN^$)뒚˘eg¡1PKyeE%9Eɓ0IIK0=5/($7$1%$qE&WYtEyyɩ.@59@NwʁYAή~!!'*`W⊬j+Gu B|x>bs'Wc4aKQbyf^zsb^Yb1_;90W&ZS<	DBU)5=3,491DU[f^fq%h$\RK++ UN~x}7ӆ}4'_ E8?/='3/5<$3/%5o 
H~3G7 rAxkԾiGQ:MPH:x*Sxdj84$32+}SR+ 3x)Hdwj&/hK&Ve%%*q) A-W, lLx{>s'Z;	 QdxuTNQL\-Ǝ`dA17`)lqqN'Ngk74l\}W.9̙)ev]/~|[	6Je~5=F|ꋂMiۣsX
}-nfFڊ4=?H}@4|ۄUajqG.Xi9&COeAu*)Q\RpZ..pXNX]ߵ{wa}z5/RKwg1Ҩs=;1^lL`1Jtz^.Eyd}lL7qJU'"Cej"H1"AB8ޒǢpl H`>I|;uCX*m'OFVĆg'h_<oVA^`Zvn7UA}"c-4
GI{ychX1a)C(/C3qRF);0-QrqrmǘRÛ^	hN,AOFb0b;81aJ3-vidA_.T4O؉G-&Aayba
ۤjdԽゆόG#fUդw&3#eRgpIa_|EЮ	O{_qkdWg:RP
>/sV%[x{!&_𔟬;_xIA!ǢԼbǔĢĒɎ<0iNVc(?\%(E2,/-1\#1=!R`r?siQQjdA6=~
}4y3K2|R|oR  CLxK؝*=RR+&/\0!Cd۬T[&b߼tT&
1cD9ei3_&|tC?䍛Om 
;lxs-zl+Qy?xn@
	ڤhҔ(.}%m(ƛtN׋h\"pč+G@k{׍!'|Ώ/̽xՁ_qrqwÝ~\">Nl{Ɉpd.i#PKtH1e,M-94 {&i@̺>!
kqgjׁkJ!w_oiԣY|xHpOcyYA);"gBOpb0ʆER_`Y{DjZ%}cyzߵPe2gO1|,Y%2)"d@a-^BpUch0GhV:*Cd	j?5F\Zirym&{R*I[T4B>b:A3NPTU9AGX`=Ʌ<sQ0h?ްLanF8L)[\h([+ipnX\`|֖.;3)h3*%#?z`05W`Ӻ.'z*:<Ow;Ǳ83;%]yme6˸9sTѼYdtDv.Q<bxJ1FK[ouRUA7h"%MNipL:+<+ŕX;6K|}3ԦS`a9=n Tu14,x*N(+I~T͏W=dK!Yݝik!:Ѝ1Ғ<7Rv>u)`ZXo&MfW^D-%s\K\JntBCbMqr7SwWȐ3{}-Bo'YIU&&ޟBP[\
b_jRX>iB:X%zj]y~(`XZTBߏ6lGB:Ool]f;xWR7-yءG	I%G=#/$ vTf08UdEN"|@>!sխnsιW{$ou)`~c'	XV_P!@BKIzؒqM{B9(iV..|$?\euXoa=j#J))$-rp1F[y:Ӛ6IVWNO{wqG#&G@0B(2\Ta"N<W#( B)A~#o
G
? &^%ClˣWY`L\y_GO`	ZY
@)aZ2b"&./hҁ3
-/"EܦRK`W$W8>,bَhUeE J$}dmA=B)T2i	f<Ad~UYO6:j;2YBYY;2auxaʋ
dՋ+yC }l׷/IȨi]y෣&4vq+tP}JܪZ,%w^_#zr-vvgLttpSI]NφCTo3lͬIwލ`<*g9~Mҁ?:T?X3^c7p|Jp%G oF<Xq04?4ͩ:٬ˆodY=j 'A9EޒD܇iQNۍA?m$3ߓqEknpF]/Q5Ʀk-K{%؄ɇ߯#ǹ'^6NWPfuT;e1Y'fV6ۨȘq5ǃF}i8qq4=!sRxyGʯ'\{|,J=Đ$U᱁ϰ :hfpЈpN20s p:xNW*- kt:5Lgр/g8YUGU:CSc8Bi{*%>U9%D<Vќ_딻]DW$27C̳p<Fj;'_p0;C<?Tshxz6!9ILidM;Us2WKj-p3)IߨL8/7lBy}DoiR Fyh<j=o'?Fy8MNNRht	NSЇ	]$!zEv+
gWB/+
伈atxq~~]ax\sO;u䣂"6s
b+9P4msnYorf7m.֓
x67$  O01x;au(`w2jƓ9$'ppeMt4&:!* N-qI,IȨrLIqI-DJdV&e+JRдmوf{j	v8l`IW](372 '13/$br BB$1CxQE'?Bݳ'?91n;`G@C.0ف*"})~4xѴp'"D`n )Hؤn/ ja$A(%,UR ZX DU}ixMN@$XhA J kEuAUbFͷ	*]7h8BNAs @6!N23Y{o>2O
O1aghS3)t)8H626:şߴ8B/HB>I)ƸV .+Q8xƯG5b!6-<KǺNR+j.`9CV4T"6I)ծf,ծh'5^;j[Q;=dًМ]tǝW<dヰ7w.LܔIޞ&$k:q/BZw,sx_z`|oOMq!E]2
b2/̿k9+ZqU	G%b%;Jg+G4.Vy8/0_
E7YV[х>'oxWnEUtxرq"Bl
bz~z1B#3f5KZbG/@pӶι[~/%[K+ozl
8|,=gm$t$}xcSxr|Dzo^n4qP5H{We:5Kvܬb($@qc7eCӭ-'tZ=F)ܪ
KyN(zw648J+9ae@-&o
qyK!dr[./o(|txO{t{TԹO-,:kS@T%}.y>uR&颸T=ƉYb9qJ#,bRsRQM׊mQV²ƮlH^_Գ] d:E3-X(q,)QQJGvS,T*b2="3ZB1L rU9h%!rd 4<wd
RAn^]s9]%!05!q[ˀy2+UjkIei'×}ߤ#fqV32Q:ut𬐺إ%|Taxq`fRW'ipFn
_g~z_>.
Z	Xʆ[AAc7д6jN^odsEv*5d5gL|P)a9-JL?I3aoK57`8VmSo
lBWË4ܓ#4ӥ&K/T0NVƪMśY'f.6[1q(j3KK^wfS\+drV#w)2W{WKf18<uU5l2D74jtfop2Ms9w4{]+p{A!'`秧i,:
 ĩ1UGZHU%W9B4''E]M[DѤHҀN;08:6'XǱRGh;Gɯ?4IhtxkvW4Fe%ϯeʥQZSS}^TkrtrN'g4 xX5z:B	":{N@ߌJl4}:&PMCgӎsj1+oH#s)HMtZխ(ϧԯWyMQtp0Z1Ex{FABos9秤O`S ̶9W <wx{izr.7ouf<Ytx)>> #~"xVnEUtxX'΋(bP=g*闫Ǚ Tj<==ccpX||o@5nuWwuOO3uNݺs_//|\,\^Y%};-= 6:ID>HZ"y!t?1-X*a5| Y^xvR[Z0t+f4b+-- innzf Y
?0atsH4:%A+<T9`ok1"h-XcʖI0ӗoӎ7rhW)uY	G1F;#>:MSߵ.7`2d>F;#rA
sI0#P/*=.HEAʄ0;wWc)+=~IB4;J
*e=M:KcKmڂrLv;t$pZ(N0TP% ᖱ#(3+EĖK4-fWʂ0%҅>ͣQ5_PE42 kvvn!Fo jɊ̭Z֊GN*/Sr1|	~N\+fˍM;#7՜GUK~8`JP>>)ohXfQ]lƼah۵qV3\)돔E?:̼8 -yxlQoSGCAn`ޮ`zNacE?pxaYXT<\dw[ר}E;,ܴ Gjs"^վ7PPjTCA4c\6"E^D@@\k.8Y+M:,0NƺK	w)8+	}sa϶BqZ+Se2Lvd7ah?GW+;%i%.Q/4rw6syȋOd:Kt|4;o'&;ͦUˏr{s)y~և{8V+&=98ONrZߍKx8Xm`؈8ٷ'cuh8Ki$̰bx7qP*!K#˲S,YwDH|9̨4>PDSOگk4) a)N}< ɢrqO'_㤖idɷFζ[_T7TEd[Lݵ;I<;VJ~0`d:%GK_.I2x[/׫A)>\R2J\K'3Nv`q+ _%k=xUǿ}r?  xw9'_p)+qLNq/JLLPK(˳%" :
Rxi,&'ȋN̺9y3$''pM^ >YFcG9D'+m>ea꬛왁D'hqo~yis.do&?0\ou^leTD'_p<o<R
<4'ؤ?~W)1q q<lxi:6әb#Ix[=iC8[y'ȊN^ >IRl>;=Au?ey7na^e2V_ xn!7o]ɒk[$;@rYʒXFcr$lCI@! 


E'3,T|!xys朙3gˍ{jX*;x}@x# o<H_l棜sh-5F	d3{<ˡY#geQܣ89IZiK[X4wV+Vg8B8>yiG1=o>lMf5]Ig9hşq=)8%uz䷴ʦqN-8(	hw@d,!aIW } +o(<X?0`8h&( XƬn_`@a%`V$@޽C)Ǉ}1]܂F9ΠϦd>̣"ub8r+GCR"|sm[d|+mϚe"FBؘ3[Q2Vrs%;H(;<c#FD(8O|fjq{ 1<HcXɅZ43\9Vrw1:$#hvۑ@N>1Z6xxbYX!^"I.F^*DfЛ1K'3>I)hg,ڄ<&HO,V?'	?f;u؍A6uҽfaOQc[uJnTXoDagzcs'<ŀ"n(ESrKQ^GAjD G d4΃d&y (q`SD	%7?y>mmbzޝy	7.ׁo͔+IJ '>|Wl 
u#{@eS(|@(nǷGWb2Wf|"TPsN[O;.$BylG<ۢ'@bO۫!l[77_?hBv6Jc^FsR[.賖f<\t-=_CƂo(W嵂,;jqN&U	G^fDqBvMZ!8$<,KB-.I%eߟ'NYk֝JE*k%ֵ;D^_EKguݯ`tzFJ3uoeOe誁9m[VR]6tF'-v1
:36p#rVyjNFmq:B4v<Sl*ԊNݵ`tuwMVcN"߽cct }yPDg~l'BydSupR\Y(STgo3Ɨ>W/FH%'QeccY߇7)X6q&MWIC䁑gkD]c54Nҳ&Pu޵)Vޒh`%M*yLb}fƂ(OVfJ.T[liW֘1]H?ehooooo2rm'rS&;V\"6		+Va_ǇE}W
R//t80GPe[O*,j
Ƌrn>?o$gH.^R*̎^0E^6AXWTqYS@x䋍vgs{kWJ@H^O'6k,ZF'xqx8KXOk&Nѐ7Wfm.n.F.ȉMʱèo_}b3oD oW/i/<O?;օWNgcszyꇓBN=?£3{60Cu8AnБTu&eyl{+w\HةTU{}_fIO'6ٚ6s^K$wj/ϒf3VSa0RsN[!a,&3XhLZm\0k c/>F*±+1>N_%؉^&	xuOA@aуD&[`$#;Lw6ӆ`n0&^d.A<?``U/T ^|{/ͼ|~jpձq/, *
]Ƕe4(_.c;7;\[3+r1FiM_W_YeRSS+l>F|nx*gКVVgQK\ڮv?h󘄁;/*5_:͏.(~
=FST2Y/Kc$ThfKY}xSifќXB8aS8ۣ;djaW^91yvA=;J!6}Mxw]j*UmcKw^5'~SIQ#?'ζDQv.|OlqTd~#JҒBxgBq҇Ls\yH>VA=xƘBH8b1S-[ɨ\^
 ݉ x[=e6,'/7/#1%\KjbQ/xNAS/{PZXjW
/؆#2C;IE1!yǵo7pv-qhۻ73;}1C0IyrtRVyIW߇t(F?Bm=lRB-b@15xGe׊lMbPN@+<%򪵷fH`^sB[\9zb[1q~r"a2MAK;_%X,ӧN> hA 2wm,]sS6l!X `
*У9u(GC"䁅4@Ī j"v=9m*l:@tB}Xs4YfJ/z ?ǖLDo ۳8D6'׈rIXujlЦ|RRcF^gôv	e)$'l/#гԙY%qg`TOHى3t$=꘨w$	)U6OQ>&- ,86>Nf#y+<6NȻN.5y0FѸ%} lb&BwdKvVӛ 䩮t]/fRf\/{G-,xk`=9I`Gqaǰ<ĂҢx]pzeN^UD.I,*AQVSm~J&fB6M%ɅE)Nii+LI%4(5'5(SJ*gL bMB,EycJ|t\jxfIFpiQZb2`7̨:)1,8($$3?oE.WI,&\#E%$,Eҵ(91'')19[KjbKql*xk`jfZ_X99MAJX7rdR&%sUN>:9ϔ}p &6$x9 	Vv>"0}75
5VNQS",xw1zr [fNjpFbQj|@jQqfq	,.C!Z$'sL.,K,AFȺ&b"3R1F;'585 ?'3ҵ(((4DKjbN`'xw=K'p*8|y%Jpɍlr/0rMeDbD9y0 d>f$}(<wP&۳pRBUEE+ .xwPp$ 6~ly%y%n9%70O^ͪ19,XjQcJciJf>Ttr.HkErNiJ*TXKjb9)
mx1zr [fNjpFbQj|@jQqfq	,.C!Z$'sL.,K,AFȺ&bk"3RQSR ZX ҧ@R&xreuFԼ~1?,Hx;Ųuۉ5ܜAE)yՅKRSP7e 	5x:s9JJR3K2KS'32nq2@jsb^YbqP~IbIf~PR?$KuNIJL񥖸$$"!;t畤數e攤MdETBwLIq,Ṁ*)r vEOxzs9JJR3K2KS'32nq2@jsb^YbqP~IbIf~PR?$KuNIJL񥖸$$"!;t畤數e攤MdEEwLIq,ṀrH)MP Lj?xy}]f&X hgx;(Eh~1~-83R˝JRJ+ 62xkfzʹ	6\y%y%ebm=f3gSxkfZ4iCN8xJSK\S3'/<2J\N 7891'5crOܘZ r3SJ2&z;%d%x&8ejy j9)FASKKY4/hnp/D]piRAfEbɶ"<r#MCqCdCYeb{LAlls#gL"@*% riHjEIH{NeAJ_)Od?yGh^faiXv歾 	Yx%?KP K	-<"DPB78XE N֡"8or))DA'%NwopJnA  -$V2hFǉP3*VbƝم0~"[B;[:n^'<!h)<\YaHLwo5{~ћr)brnzfolξ)&&wBf`Om3Du]Փ"}쐖fkcղ^k:xn6Ǒ^ξMSt]alCdf4-V9ʖ`^c}J(YR|\/Hkw~H޽źobǇma.	ldn`}</3E"a{ȵ i{yPYF5pF{jI@9rokWv-xezomYPU	.n6gu8&|\	֑6KnHMlI[ףVE#\v=3d_wIrI_JuIdPq<vl#$"/ӡKA`MUzA}8q"'NxĆAtm^qegh[\uݖL[^}:1KUHǶh٥KǊP2베e!+Tih	;f<?Ay^;2	*C<'$JwE/!<?}t0uyidU+EB [Ǿج]9]%!.0=ݪCv/oU͓Ze[Kʇ/Sr>|r~GY`ڦD5YBaRy%HS>ރG.f:%nUy&+w)Ve(fLtЀ*wiܷ=K4?$#HOGy8
Tm
~pP4}-סL4"kT=/bP##6nj~#(f<ZڃVpnTP@$BNX_uպEs8wFJݔK/UlޡU1@7o#pN5q.t}?]pF(N~̷̯WzәX}rf?^[Vf|dgx:d?Yx)ݙd"iQ<h09H>Q=ZY9J->=:g_KtMTY 6 V;`2	tWY(F09y~ס~ƊAgto[ZXrY現QJgm$9IAu1Dsr8M凕hɨWs
eY8s@~l+gӗX4?	xN$oMyCKDE%ۘ鬔b%>Y'w:ϝ6+Sx4i[by%%E%nE>/rr!&7ĉNWl*OvEiɩH`''FAdSK''&kN`̱9( [44PxVnDVz64UR[@ ǻ/&iunl E7@򋴏Rygc^'Ms|gWo{Y|;gzm0C>m'8}ӺD"a"H҃Gt!C;M@Bϼ5Q&Ӭz]!Ok|$.ʲ:|y̠vj)E9rRS*0a=?ak	>؆}&N2RxA)QBfcf}vbPK!
pȞrЧ%]6qh:Cu^;#.}PJї134h¦,`ԇfQÌ`YԤ9i: b.xFl]U;
#r gQ"d;^JX)QT:V*]xnRLZtHM	MrW=dKF_Ӵމ)h HR``0}Z4(qM6_Ss9E_dIX] x7&6vq+tQOFhenUc-yTrPfR|,u:Щׂ7cjɢ+.+?,>SOrٸ!~$mC`2W7icrAӷLǷ++-- tHzeqW6~Hog<7tCE yK\`1bg!UsC
Z

({r%dHZ1<=i#X6XRvXCaO+,#9X&86tsn;ܨqZr'щ'ftI{p
ߞ4^$>5q.i7ҋ_QQ1[lrd4}:<DÃtJtwpl$1Ţa橪꫙\Ww"yREs_Oe~2*Z"Ģn?00Z,nҟ;?InM4N%-oFXJY/<֦$ngMLzk7ZXJ?{W^=S^_	 (E\S8OsxS8>HE5L;#b,$}ǳmLS&"s!vx%?KP K	-/*Ϧi"hQ*M4N.Fݤ
\@7?CM.U?"8^鎻ɥԏ$bHR}EPqpd3T4*zꪌ%0qw5'fd!oL0йx2Y.lK5cTx&QMC/S:uww9{0XCwНTĢo	|tNވA>&0tˊؙd)ŖVU1SM"|P\r0Faex%1KP {/i&D[^lMBEjT(BM$[Q֡ࢨ7'JKAT{;Nn~NFo~4gr`q1cuM-5ia`t~ҟXdr΢Jg14<b)O]:i8^g4FرǓ7-S0}(hReY&VctJ.&.H7߄[eb)Lq$%+=M5U,Ԓ	Mnj4[b]TxmTOAv *mPQ/Ĥ
e/,ݡPvAcĿɃ=x1G?AoMpf{3 RǇbLCZ~DK>D9IhJR$!TD{*XN
bQ[6q3 5L&G5T=Ͻsngf۶y8b7C]{T[FiFV-Н	IvGxGJRX\Qv)&v~(H2"l*f ʔ#]$k
Q
5LS/02NɪcnT쒞AN06G|#^gA	El[*<?e@2AUxɲʶavqTk1{tfL3΂mhcNfგ'c4{hCwD\	Ԫf~K?1ɀllT^Bv4xL*AEq[tK*6$/3_IYE69BYxt"c)ryzs|GQCEqN}vz#<$Wa̵%g`9Χ`CXPn78[F}JՉ..GzKb|UUˤ=BM]\7ͳ!Ao?6L~m/6sk0xGx;kFn"ĒɌsr;d$mN`,6ς9(5yB$j%NEy)@	J"lI9`.P!'P[jbIidE#(<v0/ݞΟᆪ)8'3/58#3f=HJ\
P0y+E)ny%p:93?+ Dd7fx;4	9EnE%-|'v)HDڜh	 mx;d<b'4x;DdE'<q\l.ah;y$U9(.f% b%. =,&ϗb|Olf+	
\\ ~&!xZxiEޓqnNY hpP:xZxc.JL̵\ C3@x4<'9Nvݬ昒▟7'	AY&s畸&NN@s_6ɩ~9\'XM6 "x6qG"D7?|Gc!5L\ *xۑ:5mC.UɥF
/$d&(q)((L|(]P iv,Paxn@D&!\RJ7o"+V|Ҍp"E,aހxl`,.9
>ªcClohCQ3B;'oAƖ~NĸKm8AQdn8<;p$|X,5m;LwgT8\I;Eo %nw7'FsQ1o).
fX=&y.CI}qXs$L5i\DQ=Zɳ_J[M5R+#C=aG(![U.tȍ_Z֌g{dL"Xh{|_0\
2ymkuȄUgaO.?p2N-s++OHX?"KE{v8L$!VǛ%5|Ɉo/.ʵD%@HZzxkSfcQ\iWSv=Z9c/;vxN@E%ĀT(HTjT$"r`v7m^h/<
}zu+Fg7j--bwB^!.K)rV?? ֥x=*v@zD$ҤԱ)R
3jc˞|js|bar={0jD6&܆'U܈Y/eQWmO\Ԭͱ(3~qԬZ/U-vF\<FŨء!p擼g.H$"=onk.7"NX_)FbH%W"Qx	v{-ks+o'q&s倾x?Nnyk)%bdq3"e*V״UU6
9xۑ8n7L72b4Ys*O~rbNHKjYf
6|<y./['LdM-)L._q>[9R'*L`'PZ▙3AFer0d.ϛE72gO(
a	MnfPgsQ&X s:JxuVoE8vZC!!BC_mKNk씈{l14)Bm;7Z=!!!Bx3ݝ(~v>=x6Ɩ+ߞ' 6:e.27a_@% cN$-DzOas=%F7c?o; )mY.^Dlʫ5mtc>̂MW2ϗ˼0I56̾L^Zvr01=o,rdvg>Am$*IDsxy[VN}3-޺nTˏO&3p~S4zÌӿDy}E~
Z(dH@aV[7kSomxAl`(D~ރ¯8'k'q[e?g<r1lc8ձ>>;*jV)ѡdsrNxFX	w/cݐ`A0[w:ssGfgt\l ׻]{D4h틒6أRȲpP|
?Kɶ	f>SĘm rxR]eߚ @7'SFULZVЫWdljQg_B7	h{U0}2[W nJ@q'q'*NTD-p;0D	W9ybqRlV_wp1;i-˖O"k:
+ѧZ=[_lS-In;=[[)VrS ܫ	d^ 1
|^彨)V'ԀMS9mTȱ.v$ML
Rk[xH/d>*~4d"F>^v ~Sc*^@{s5}Sؽ7vTʁlAJ>u(=ڤqppt^:%ʴM C	#nYTdudj6/i#sٚ=.D@	5HJ74ԇ|BE.d-Ŗud`e?X|v}!-[]܇͋3`.}};y"vl뇆<Z>bnqnĥH+_Ҋ8p.AV'hJ|Սnޫx<BQJ!HV(W;<˿\
ީgq݄j,EhGw"-^v,Hc2~+:tՓϏ }BU7NsNœYfR.Æ>فA=-ӡP>U8l
JzY&yjGFr7tHҨk"gW'yLxv%}dU99=sS='W
l6c?d{UIl%9! ( V2x}J@7jڤWAPEP V*Vq"46NdfF3p'ɵ,o~|ϙ>b-`P؈^`ژۧ.d{9U6f`	G+C(,\6./N>e,*Ҟsm, OG1PlM{Mks$TqYbIzOT<bBKŒm\[GhjGJ)6;l/K25\6LWk)5W,M3/pÔqSTy=QUn·o7D& =~qkfclʁJ~U=wYkzSP`sQ75x;tqejn_1S 8)19;(4/%(5yDv\lI9Z:畸&MVc0S''LrI-.)ʯDH%pCU@âPLqJ,NKL?5?QHE&`,4?hHjE	PGjfzFSjFbYf~dFp;bp, c}PxtEs&LJiMޔ45)Y t xtqLN6`f|i9׬Y'f,!Շy,7sM~*5/BѼ9'gpOw3ȄB̓E'_a,ioeEz9'eZD'of)'gZbO`V?Aa(X~ 3PPzlE'/TZ	4TuCD7gY2/:f]V6,L.,)9<2F̹&w槤*q) A-W, seFmx[<\\ 'xSsfu|,grN1_H|@wr!d&!̼TԒbԒ̪ɁV`L#`J7K_e@ew\R
196,6L+I 0oxɸq%kd]2rRJsrRK2sr'3jbU\Y\SR Z.X = Ox[xqCd		&?PW|e_c^VMEma|̪Ɍf0FȚCS}2R'O	K*sRÃ,l(>̜bdQTME#53=DKjw2p59i>)ypY)lpAb2P&891'.- ˩ /J@x8u"'oM&?PW|er3ssܹ'W颋$&g''Nf4ERR Z.X  Rx5 meQ!0PCECount%S&
['V=?
x:D<&ah ngx6qD͒'2Oܼ]S975o /x6qDLśm:x1qD>yy9%)m7ﳽ x8q5ojIQfFu;Yw`	)m>xxfV ,=xqC ;ل3K2<RR+VsrH,0,)FkdQ${ Pa	R,)HnIrc7ZxM>d9^u4 z8x^ ^e%1)$-5ZN	[+K&P K

]̼"~x[ן#spj No0>f
&eVLȮRX:Y_Py PPjbJ@fEjNqHSfInbP}사l@ɓ7(l>3| dY%QVQTBj"`SifN[Q~.HCFy|9y%y3
W*M1Ak{yky DV}OxK ^NU,@	\
3V.S5Z	[D.
]hx{.7[a2KQbSfIv؝s2R'7r)!Ey9%y'3Mȭ2u27 SAvix{.wX~C*d5~"ɍ\
HҴ"%ZX ?Exmn@x4U MP\^撈`G#xClH#BϨ!ހ' 0vl+wxaMd}ng||E>Ղ!@=Oˇ{3l|LLY*8.[?jQ{=C˷=}S7u=<2V\bɂ.9/-nݤ |<K纶!>iP2vQ_h-+l4U6Bu=;lYƥ *Y}=YH׳RR!n8>%kqhk=
%LFO%m|4LpZ/* @E|!i0ꀩ`9x}	%y	$ńqO'$bc(72$
"34-YUkj+Ksu+!@\ $ =IӕX)_sFOi{J$(e3kߠ:g;.%&`	P<[AF$jk 5IO{6Uxol{R2<A%Eny%ĐNiiEJ
\ =xOpu5F'_Pg.ZQĥ \ txO2a1sQjbI[Q~dFFXX92KrR'oTT\¶yv do3!%997{refu/+G|\yɉ`CSKsJ'+l^_XZ▙RY <ٞus#ɫ&OTMLO =&3
O^·Y YE
xh cO},@

xP
'J.S)Np?
}f. ~/? %r
]mm#Y
wx{&xC '`exAD	''8d8LnS dB]R2'3(Ln`cgKN,\ˡ6'[pFbJ~䋬
E%.%ii%y'ۈL>.y&'[@~f^B-F`g|L@U Q#9!x]QN@TGlB QR",%"NCwr.`ɏ|	:R/GB 
Z'T;3;~|$p%psMt'^!wqъڰ1mx!F)\+Ps5"ϗa3vV3HBAaυJZW obAv+eWzV8d!t0d,WzJٴ ^U;[i~P~j.e0\ "!׵Nc"/LWf}t^D8l0umpۓMQ֧I8rr~	x1^	}	7ɦM[k "	Sa>2P_dg?I4~Xg3x{-tFԼɌ<
Y7`:9(9CmNNԠYUYRU'`eq2+RsC2Kr&/d7<yNNԒɍb
lU';YWJlBU(TVQd?:5 L{'ddGsI-.)ʯTPc5\˥Kx fvxz=d:0Qe7 ]r#xn6Ǒ[wq3늭؊0쒒(D)$BD?[{َdJ,I|iO}:<DC;p-}c1
W'ݯ 9 C_ȡnK&?o5v؂Eo̓iYQ\Ϝãj0ppsR 0hK|&uqZmawe Lr(4p#Wod雵Ҝ!Ab)3Ih	O#]u<?|_{kY;C;7s5
.f pAl|X$9uM0ƌKh2K.xc.CzJ[=L>ќ~x."oRD(ᾁ*u(*	״Di5쀺dJ>0(:GHʞ<4
"]mG.|P@ٟ>*{G$\"G[([LTA&k^[/Ys2(lWmhu+=Y[UhXڡ	"̱1oȳ"YlqW~fMYǔHPR>}_:یukMz|܇L>s4~P{`7G!^c[HVa |X(	懌a>Ne?*9dZ<jizkYr1_s tIx1-^®k To~|ï,2gR}9Թl:~mU|'q~|z5In՟{_nzΫy0(h/,Y+ld~K4I/f* I/.-,]$.8ῧ߬/v."XK~Ꮌm!wZsxZlB'm,]5k1hTٸ
RճU`$lgtbڪ_t36QY"Ӄ?:?uWLxiQ Gg>ƛ/s [Q)9xu1N@E+(\hRp ' Ş+l-\pH8+pnb[e}w}.EOCz+`^q/w>*?n5"@Jքvc,|OmeJsЅ5GmѐA'iToc2?@!wsF,T"C!SN`%,=l{ZqNL
!g$
^i4$VrLWdRM{?n/Y,"FW=m-h%rati&*?q7KghޛdbPx}Ok@ڬ&ݸb=d6̟5UHH ~+ezͣ7ES`d,m~ϼNdߋe_w/ՐcE%a:d-Ey*J9"xnùJrL,{iߴϰ%!R}iUNO'89{E˕{ĥ>jx>a8Ȇq"
Lq`xbjMy]"%p
S59Bc7KY8ǚ
Mb:#|BÉ!ƧzГ((a`pUPEkߨrđTXT;0H 7P"jJRpW-M@u0*x.Y(Bũь)=FdUthrj."t`Ȯy	<Y:o=loNq]O[`V[7D{K%*LUW)Y>yn=/fz[&fi%"CQ-ڑJ?&Ex{!{RnrNxĂĤ̜̒d0*KR*'Qۼӄ ZS4xk-ciJDH=Jӓ# a'T*)a0	y)EAũ%2@w0'B,k&OcuI¹<ٖMRĜ%.  ^<6xB`4ɖ,LF?2LX: #Dp>+0D$HKjb xxkHvI.Ҕ|䉞""Bx⒢ɂl%O&9?/-3(ZA&HKJd-8Y"(8!<7YݿeCu-Y$dgqXbNfrr ~mfx=K'2KMTAX& Z\R_":9Us~^ZfziQ*JԂDtQĢ430SZJU̢"b%E%E%&fr=;KbI"-uYDz%d  }[Ix?KDhL]RSRSKK'`Inb Q<Lap5%E%2z$v1(~|Pjq*\~7s2R`Y8y&Ly@ʿ%$d[693-DmcK Q ]v%Hv9lf9)q) A-W, zT	x;͵{jF+&Ud9e+q) A-W, ~	x;uciJD	+!bm}IBObT0U j,	1u)&]#IO
wKOI-,KLQR  1
x;6m$KDi=&5A2]NԢL 0ԂĢ	2@ɺ *QDAx!F32}Y&}>!Ay@jrXW(LƳ8,1'3EI+ 3x;}mԢ3Nabs*MKK-2yS@iqg^Ai	TS Cx}mԢ1Nads*MKK-Qe\& Ad$V_ZRPZ,KLQR nr!Vx{>uciJfs~JjDd^ 
AwK7نQ(/$L.dGVQY[Niq>&Yd927	}/0#s3kH YP bU,ixr%.E%yyiJ\
@P Fx5x\`O,LF2Law*MKK-r,	MUR Z.X. o0x7|V0e]';	N6`eCr)yWgO?O_ANnnA.A!~@LA@ʇ,(aG>3r [#x23tV0e]';	N6`eQ s
gIx27|CR..~!!?2$B\]BC<&_frR>@eA!@?o! vrx/rlaA&I2X  Q<xw	$'˳39L.qd$&o,vKM,)-(gd+q) A-W, >x=w
*jHIL Y얚XRZ49Q*( J(/H-*L-VR ZX. zO]xg	$'˳39L.q< 8
Ix#h>q7Wǐ   נxo0OWxW?gנx_ǈxx G_Ʌ<FHMv|Yܗ*-4"
4"d䍂!&#"ɫ
 d<%x0
wxQAVx:RY'19O(;Y^Z$4P]b=^ D s1xkxl:Fn"ĒɌsr;d$mN`\	 	gxkؿqd<9\.E%y%1OJL^y؝Ss2&+M67:'KjqIQ~dH t&?4 gFhĜT%.  `5kZ]xmTMOANi`i$5!H#1`[醄ҏrRYCa1&rУ$ˉD1zjLl}ygޯ]ߟq,El`JW3E9jhZEAF~K_KE v9z?ѣ zJ_-R4VI:Sh6c,=!t:6}3Ǘ>=WMoIO0Do ID5 :i)vE_!&zP!%O ((r(n\) "F;gYD%Wd0u[5;F
Tpx\"0uB<^8#N}'9#ܷP@o1S"[@V%a/]Rs;\+`otlw>KĈxN,:Um'\eU#ds62Mλ4H+*i1_JXc5b?nh[&iv9@9I2
;do[\#,df*$VA&iޡ! zjOg8xI*zu^aSp q6|:Ƽto>E&%eL7f[40liU2#F.-Ƀu/:Ɉuv]	8kyIT*Ysޠd#*ߗP_ILHĥ^D$Em-Ӳ@mc#8l[?<nxxo2nnLJs3s*'7:'	xfg(q) A-W, Nqx{Ak'On`e,/K	JM.\ȭ4w@Y)r@Ae{s]ɧ5&qp8Nl|Eߜl 'cx{q8&sN>*YX\ĥ09srfNc}*{ \Ē̲TBn)l [x~q"JJR+JRKR݊s}&?BHM OE*(-19I=Ld>{jsb^Yhfd)6] a1Q[x;tYь'O~͹-چ x;tBX}3SRr&'L6bX栰ɂ#rIl`%T}'+DsC9y "44QvC4d#Uoz zsvL8 f2gx;xX7+n^bs+ z'xNASS-Mk%x-7R.1!ۙ:;+	ށf.D.=#/pvwfG3>̴1k|7Ӽ1{-c`):' 3߹:VN:lF]H}f! 2%<MJɹd8i#~.NWEitF<nIޮ1F,%PכR}䦁l ?$0DpÄwj)PZnq\̢w,9mbfi+h҃A0Tբ񟯽o̇N%eBR@
q24`@oݰ?].Z-Ds~䊆3)5_z]PZTU"m[w5 g.r$XЃ/!e2
[Y/QlG\#DQG
Wl$SԁPْ<ǏG/U  pke-="gj	$ٝ"4?gnW'jЁM&:\	f?_K)PF|DC^D=hG%x;<qSXGko nx;yqYSBJsRJ2SKSJR<2Js&&M^[ԢĜ͂%T$8dNdҟ\b<y{X8*׼5*
{<SPM EmdptKC|\2; uã ْZxqCAy%'po=JtU6,Mm~OZWZZPYZ\⛟ĥ \ ~?xxqCAy%'po=JtU6,Mm~O(ZWZZPYZ\29r+g>P"$1ey3WZT◟:9PP*_
QR Zu=@srCMғ
&_+ wPx8qd~+JV1ذl6>zBpjg^IjQrjAGfIHjqo~Jr 	Mxq
%y%Eɩ%%!%)J\
@P C
9x[q|1.X9JRJS&ۚ9CyũE%~)A
%2Ae %. ՙ|QS.Y\Z䜘hlng>T0"L\ 9jx[osk*@&q	Ҕ|ԢxĒTJɊ%")AQZ\R_9 DZ E:8dr	DJ"(EH Er<rKBPg j^Pjq*<9Ғg2J2'2BJ7 (17UR:3d\bI"B4cRSBT2Tɡ,KLQR ZX. BjYxj0`ܛAaЖ@X۴].sוZI3fqҹchI#HF0#{l)Z6Hݟv~Zֺ)XtQ <g8G/%+&6ti2T4ǭ)W:(^r4!*v[>kkXB	gb`MT_8β:ҺvTyځt~"u6Dk߻{5+_64.Ƒt(gҀ }^06<Iz':3ʰ\Uo@xfh}ģ/Zogb%8"א;ю68GX)]q9	xxr3qJ624<U?Ŗ'c'*̎$	*Zi{9:jJz;jľ碙U.U<q^!7HϤНQ&81%`醴:Aq褋<*uՋ8&/E_E_BZazxNA^pa$

WG!.5-req@'83۰&&>qgml3?g?ǈ	%geЍwhzWBUp)R 섄qrspGObGe=`
	XȠkPFXm[5po]CmKU8]3{*XqxC
a~Xt  RÊ_#M) {\"*&BopRv1h\؝ԮgF"'gkTCdߚ{d<ٮ8e	S*a渿arJX>>g!:.?9STziisuJȻQׄQ%8)\K[dެis͝850<Asub]Sv)ltѹǥMc^\5:A8h8=B߈r]e8(ˋiN=%z@&؃\!bǳ#@DbVMޙ`JVQJuA֢CD2%+RpfyvuD;CBBb'\X}jWGl^p-
R:xJTNe\cȬ9Dʐt/0imr\:].x_Vo ӡ w$£3̆Ƈ~y$/䑖1^J;8{,mK fRxn6C"C4K34W,X$%qq>'dҠ(.0`g#FQ)l'@Xs!_o=ZX@BL`̽|>֟3~\":ݘ.Aa~h$6m֡lףbz80WX8!9-}~ψÙŴ!3l!/tm~3>b0+9#ݘ]c˃'1ŐIHC}ǟ@s@׆y֫gzEnt[m`83PG&ZH\b8T
ؖCN+~\']0Jk+Zwuf	w5\ȵeNdV	XKQIDgB  9=q+e=qa7RV܉t|oL,n`#=P_=CM]`6-_ӊ|We6>QҾ@@,02.<fBDX:XfN>q}?%X_u-
ҢJn%| pmr@D<|XYvHvW=7]ە܀dEY@Gw!9qCčPn{,OBo0xI|,S-0+qUH \oQzf>Tj_5xQr[XX-K"(9ƠG>ȵ|g;!M`V*c֍ 	bHE#;*kbx&pz4Ի\Rf=<zU-|xע"|7
؁̜fPN9A{?ٳɞO,~'23fR:[Fi)ㆲ]RӇV[ˆNftUH59|NpdCoaz[|͆7yվ9Dz^sDvYWgW&ᙴ7dM|%Y	v[&/Xnug6js5I?X W9LK2jJE<PJx3Q;Lk!լ)MI[Ű
5y7Z"+mtO#pc.jj+jqu.{};,} -ámJd[u߂cNV薊/NEupt϶q5(>An-TdB#n&]YGc/T\$jT)hn7kGs4fJiCƟjG`,%A` ާ\v2ȅsK'`-^M)	t1MV?l
c͎YR'3|kd?̋̾IXNxNA^pa$)..xgHl2͸{ڝ:3K`x×p~W&=9s>sfwz8wq]^@$Y4k.0@Pr=Mn*iDݨ\c>ݠ{<)6_(:B>v8dasG!PkDf^'+<`ch(GE1i`$0!짆meD2Wg\"*6Bo|R')qa6S)ߋ9WKk6ﱍ;l],*RM;'uI(u'yJGsb=kUj8EoRTiGruʀ"vԷVT,uoNI W)ZsEhzE9&ڶYcGͽ\순3vԁ1%)nu`탃6v(-ez<@mօSn1Qϸi1_|c*ulČq:KQ3X>ZJ^ cōg4F0Ϲ+
	3Ae5Tv1YIjE=q7{UJV+[Q3vٳ6PG&|X5}jD\^p-S:xDVNg|cɬ1Dʒl^aR*wry98v! ~4TkX&0JrM"<:|ijnbh0GRi>%LQ)2^'K[cs[$txj0pܛAaЖ@Xbt]Yavc1i']z1*4dd9m
=¨dϰd)c	Ǳ9oWx|Y) e	Dϴ?^jO-rUHn^|V|<jLர^NCP13k0߃Y]$ Q*+o.gӛj{∁:e M}/Zɨ"l)~t| ?M[yWx𹡢afkڥF9bVyÄ`P]Y<-yf'7^$q`79C	r,FIRe'ɸ'ؑqmUGr1Vg됉7oַSazZFI]_]]lYl(5T! AqtP]t]xeB=7ě3"rL)%QGK>-Dm%ertDlÉ`6<$C븑[^w9fWԐ\ |UZݑJvixjAp67@!	4֋BM@C{c֥h(e:{Cיev@PgKy:;㺚?;3oWx\H	eDϴ?^jO-roTJnN|c>'p_8ԪЃ(T=egvxxD~Ѻ#TbNoMg/{∁:U(}/ZREL؃L4m:*sCEMP<{niZYt)f|&j
G	4671N0rT<^Xh]$^˥7U*,JOy鵭
H_2&3p2VjTy^h#}Ӥ/R[aVQevMT5TE >xy*36v]xUBbI-/x?>rnfcT;QxŒew@qdY&GGND0oq;fGd|0X#v7yxԛ]_-f(Ϗ/ Tk?xn6b@m 4uh>b-IaKFI\t'lҠ*0`՗{=l)H*$:_<ʿ?_ڋ;kh7i@	GG}Lkը?m*vW_>:q=[z\ܫFKG|iyq`9J;*gb">y2>oKwNK_
zS#Q6C?ARbם~/f%Kۦ͏ۮፀc:_RrQ59ӘB}R5@9CQt*g d"a8GqK:bGf-xE$,pb0{^۳Ƕ9
T~`_xs-OsA.<bJ_(c/e1d#;GH
A 6z{Rv-&!iO=s8PҞ,X|Gc0_z'u},%|ZIMb	Wt6	{phx`l\2NA &fSL"IF~3%<Ddyħ
kDtSЧWi"Vye1B]zVva+݀Y1䄆q$$PnT=|XěD!QL_cK.#V]ť)܌E3ӳ,	(fZSۢN#ҊY27NC7b1CRz+HuB:BƬ9đfם츬ù@:[+0tǫ-m7JntH =͠r,~g?Y'fV:IDEVJL*OzJ-ZeҷU!V|v]<V*b;f~r7׫yӾc8Du/ٹumVVȳ!ήR܆ޑ5#Hl2Ԝ7*yK^M#g߿kϡmϡjv*5Yϭ[̓{~<f)VVTV:VMTVaZNڰ(Y*xjw%
xvK-R3L:(![d S7H	.[yAxjAp67@!	4P$4بu)jj.Juf51P#J_3ُ*3s*o˕Nq<9y _?L'䕢ZYٍw拴.amCw1q٤̳`)ϕ7J2٦ON<E]ޗǹl导NW~tTGv/~p?O[|(z^9qf=׎K-E,0T)y
cllGs4
ן7ęQm"2-;lNtor#^Ob\"C3Ya	vj׶9rRޒg7*{όnWڦ<Γj&Jg*liEJ7q4,*( lzyZttsy[鮊}Ep.q_g
/x@I)E7DSmLatE:@q訅<(#&XtM7q'Y !Ս_x$S%6*%{2 6iR'pA"7y7{{;c?\殬xN0Ua$@Hhc744t-K01/9Rrh&& {Ҟ`֡v*}|8??Wro㑩C5TѤ \
]Fm|.*v"VͩwL	5M)j9{Z͇071jNfρuQ#ob̳L1wnMUYAA63ߧNw3VtҪ.}쒑}~Ҽ\7-c;p<,Ώm(.Պ.gӀ9>p: ~seD(P{ m{&8}PA\ɕH}?9]'IN	K`۹to#.W(凲Fx"ϾZѾ|ْJwS"̀뮒c%)dҙCR4Xą&fӉsL\zSͥsE7=Ԯ
oaGQEϐ蚬%ѬA2&N=b%>?PB`!jbAO\ᝦ(#ҁ=_lܯg*+t'4|0*fڴ-_)bnޝ;`5]7zd;>Z3Ǌ́fr*`HHkg=Of1T?6x3$ qM0l'|MPѼP_m*.jB FC-r }a-SGmk"~tB^C݈8Jg u!v܊u̢1VDivV,2۹dp ZD0&CU|UVp9+Pā0A{:N0uN)}kv>6'Qq\#?>J>/gxj0pܛAaЖ@XEa麲Bv5bF,νC6bdd9m
=¨dwߛM8e@ |:|7׌Ru8}J g?ˍ={v9x{Zw+]ЀFΨ9ʾRӝ_]qRyF'\K)J
٥_L{ܖǹnE(LW~tTSh?y{_2*o&Mcʮxs@9mӈ9.cծ/؇#?^}^gFv'Ezs/8C>_r-ʿiDbY!a9vd59GH(yxd?VoZ8mZ	"*_e6*͆ޤe,
e&&.tsyzaࡉ(KUмL] K/egR趸wE}geFŨAN$,oJQxNA^pa$J
WG!.5-req@'uf&&}7𑜲ƽdos7?WW\A7
ޡ+$V]H^	<5{a?ؑA:PFXRl[5pw]CnKUF+{*XyxC
~Xt &a@y{i`EمPMY)=.!f'8	);@4.FW iA>x=X5Tsv)2fb(>1_l)qEZϩ*a^0Yd$-+o`LRdLVWש_F
ٴIR f5F,@INJ="pap,/ͪj6Qpy.SsN:0I<'{.!哻;-.:i|L+9wNvZ|-GA֔Qӎ^2︼nS
{pKDxUS֜96K̝=
*5HTh~-1Dk/S"[PyŶxnYnj\mю>	W#Vu^Q;ȚMע*cQ9qae!"TȺ6F,*g}kߢc[8t(;墻A_F/AM|__H xNA^pa$
HWG1.5-reȸ{]<3KXvwvJ&{~?sl|S'^[<;/ǽ$zG.H?@z
q_M<Ѝ}h=]q85mbPlM9 X<;$
]CgDff^egk"`c#Q8e1Y``$pGL= mؽ~	
Qs f|pd\ڽܮxڗ](r~S@-nal#%<LRjnơt$q$u'VϐTz}Qz"Zq^[߉(/o%u UvԷVTx@N	&pÔN\(ilMjIt]y'26D]ǘwk3?lN zÞNa+':!E>Sc]B6VoCt0_<k%|CW,6(}{{^ b<ݍOzAaF5Uͩ'Jߓq/PڇJZGMZ_/s 5c}nҬTݮ\<b	s#,Tp)SZ]:Az.+3dd ]Y2ӑS%_&TUU{WgLIka4l(M7I6+ˀ(d/u]ؚ)OO'c!xuo@մ$ر/v>Jj#,⦖_;DU7#"db?`댐]T|x{>qŝCN[=߼Ń:Y"#YK#߃u
2
5T*HCkR7^/b=|[6'7,f,
kQHG~I DA4:DsxĬ#e{0M#A^q2_Hu}:U`,Pp)LbM&	xl-]`ϋ,Wu*i|PX|EHWҨR4vLp4<M>0|^Jexё[lg`Ea"ְHגC5AЇ ѭjtK9ݹjSP[@u;]Q)UGX.P!zl׍sJ~7 6${]hZKzKK#@6@d
oHRKIF8%US{Z=G^dxĵ{?LF?2&Ud9e+q) A-W, 190xJA,(,&"&%-k*ݣ;`36;wzn.{ޠ%mf;|gf^E1w!fbth[Eĳ*kz0cDzc̂GRXukU<.H%ы$VJK=Sr0:%ZJ%슯T@)`I]յsNm=ӇH8n2 cυb)1)#b_
A1tU?*_6U[AV@)=REiLXFlsw0);àg¯C˩`sRJO9@)8YC䯗FG\1Og׋ a/x0UqY9BK3<JRSJsr+ kxЬAV`Nyƒɉ\X$KS3'_dC@e<2SRsr+ xivv'\"%Eey%%%yRAA%y}SAa9ə%aIbWE?-xhjI䋜a$'_H^mxfIq GMP/
xiz'\"%Eey%%%yS Ԝ̒y|İDDkz+"㟖V<Y_C4$rEΰa @
xib+׋MO,) zcx[lf!V@'?/=(8=$( 594oGF6 :	dx;X]a.6̂TҢxǼɅ|>`ɇăKK2	K@NNKK8敤M~+U&rEΰ&j  =+Ox;X|+Kaϒ\Ҽ%. QPle!# \x{m7zB|ݸ|'7soeSfę- 	/)xjz6daҢ%&?l- &T,xofT¬nE9&o^- 
Ox!V`~rϼҒL7
 صU}xJ@QK-Vk\PƢ2L:3_@Wr705m.Nm!'sޮ^>6Sfg<^^YԗoT) Tm3r!*LR5g[1h$`5
pol=;,<QQ8	@G'd %7<\r6͈7+z쯮*۰,EA+@ɟ:~#&p|aKC=6>G1q:gBrl0z1tEkM&&]*cTƄIRTg/qf.&o,~SfZ3Dk)Tv\Ku>aM1U\4⭠o3%Bi#^C@ D? g `1TgM$<J:=e)Ax kJ>WĒTxĒɅ|(. q	qҢD{Co1Gtِ܂|(siQDQSs+Az1xBl+K` u槀C\:y$``\`F BE&X R*x{u({CF.\%y%%0q -jPx&T`2W, ;jex&AhC'W, hzx&ߨaJ>,%~)i%ީIE)/rMg.-JKLN/|tn	IGfJsbNNRbrr s {x 1zCɞrEIAy^eE?2NɥgWTN` UW_!̼4a9)/"+sǯLaKjqIQ~%;h̼ =KSaUC$T	Ѣĥ \ Rumx 4[tC,jF4DKJ3K2RKSR'B]RHK;ezƻ@T8x*q) A-W, "tTx-zQnL78'rzzLcSbr0T̵,5$=$`N7S WZW1"+VH8Lxf^J~yy~	tyₜB
&:VdeRJ2s@a90ɣ/ʬ+T. 3/9$42.UKjb@^xkl;+GIIS~J,p8E_x';9qKRs=2K&?s·*7=O8Bo7C/ʇ0`	Y~ FTrxfnC!d?K8%'OvI-.)ʯ/.y6deę .+x|?bV0Ɂ\'HLv`lʶ$P@u$g`@ckB`o0+8#>P<SkPKhu stM^R~! ,4px[5'cD&UFɁ%IE)IũEeEZ+@d$$NNЅ(F(B2"($\\4DRI24]ZIڳ8(57$%*!./MF#xa!À
a]#ld$sR@J\
@P &x[~qܓxgO>.9?Z0	=N^c+h<aO~^zjqOf^jxfIg^J䃺rx7·9;1%-?$,(3$sB}5xsR@2Ή#6sN^5TS'gHS.7Y3(59(97er.D.ZS<9D	DBU)5=3"40 F
U[f^fq"A.p(ʯTR ZX J|+x[cD&[TĢҤ̤Ԣ-%|$I8O^]]*ɍ[,ć|P%y	q$	TĒɉr@AE }|Hrœ'K
L4	]8!,$윓XPR ZX Xx[.qܓxgO>.9?Z0	=Sx[i.5|))ny%aE%oίU  @x[cz^"SeX}x{sVIׅ&OgCɇ_{jKbIbp~iQrL^  uL1ŻOg	;&(q) A-W, _%;OxJ@QqӕEj+(Qxv:$l.$A8Ɵ:&q
.\y/Do`SL5Ηə9'VH,4yZ@Jp0,Ϭ՚2'">a00p(d	/Fk0D7EXqrMB tKl_+=jj6t #2%k-oJHx[4&|tZ	|PoQ+MG*,۔hgdkڞc!9}7Nh!m꿏<D ԥ!a\taNLGsgr
EηE
rbh6Iщ\u=l#Cv$z*]#nGvx%crkOkP|ck39M+ uv)Mx\(<AhDqְ̔ξȼHɒTPdu&;d= 'gg9'$%&gO<V(08$(-19w%P]\;J&%_ 3W	y)E%%NiiE0hJafSe
2R\P`	<ptK-0OW&l}\Wul$bwqqwpsvpru]#C}<C"}\\}&G)3sr l$xi{+3q )=xGd&oQ,HMu+q/,89x@USK)V s
x+&7qN+K,,LJJM.	H,X@`(#?9(/$5e"l%ΩydXD2+Rs|2R+ ?_5	xgj&o`XXᚖ6I !\;yd6Y&ONpim\!\XY\Z
ThH8!ya¹ũPs&ˊl ['5Vxi'6'oQt-*/rOI˦9Pw1 -DxX[o5V@DBd4^D%lEMʹE8ّvˌg !H XYD*~leclKv|c?82z5^L?8/wzJ>B(W=,.o~9p8e_ZD۩u=[(f 4{F]k? v(q$aE$ (g\L#!^JWt_a1SC=tw|z^J_8lni?|'7;lmQ1<zGU+v\]BeHS{pˢgѦ
qǧr]쟟@af\on5&䴷!~sX'cfKZKl"Q.ǟ}W?4AVhFI%\<ke mo:4xOK0UMԘN%u0\cf  (CW.!%!fpL$z!<|O@Z"'TA-v}/YBC%}IZJrȒ ,D;(SHR$zp̲ǀMBRqc7Ҡ
{(w{֗pBybAm)$YjALO{$#`2t!		YvNZg/D8bɶwc,(?G-*ll*5Ee:D{R*;@nL8	N˦ ӚzEP;~
B%Rd
r(#kR'}H60<T";CIf<B_3jkcs'=XẕߪSМ	b?7sF~9@qƪK~t嘨Nkr f5	 y7o̪U|eT)SnX5ӽV4>/`*/,rfUS=Mӎ)lХ1$jԾm7~ɋġ1Rc\#9% +6X:`9}Zz1cps!X^d&t;ȟUEhCٔ0AZ
	64E0=>B)w/?	E_-h8L-"Ro&tDVnpVmޅ3-]l۵l]&(?iFNEJ7P`0T:ArT_Uj͘*<>eB)JE*TX[YqG|nJhxLòygd{ŃǀAdy#M(;Cq5{%X ?hvщMG~Α<If'mQ׮aaWcJ˝Sꯟ\m}b"|hF^a+PM:{$[|-K??Fɲ$ho?>3^'JJZF7C0b[-/Wp;r'%b#wBbGǣکuxle|X!Drjc@ɿl''JL^o·5,T&WZ/JNoirEv3K3\R2'/3PI,UKjb |)̶xQO8+toP芶)dzI }ZԐZ/ff<'Wo:_IcݣTJ);O(o|8Tҝ?	GxExDNJRQꒀy-᩵=3r`&QkK@1`%e7~0v!zbd.:.:H@L+u1"rCeP)]	'pFmjq0^&9ۖ
rLZ0p9`E2_0~MtRszO**[P;\{R,'C7Ȑ/RHVa>(gز@(#5~Y]hҫ#DN)7vFހGd#|~T;T/h~nW]-2e,^hYvK;᤺a?W6oXR5Xg"gLFOY*:ɽ#щNu2\a9̓|FG	3o
*J*i\dRil*nj;.qF }aDseZbD;Z^%wQ(H\ᔱ</ɸ+izEOޗbVX<4ΓY;yQxwWgLdo&uAR{3c2`۹J"3MGCyWSEQ*bOO4_,cz	0a":^P]QhʛF?vAuDoa֔>E	8v/RB˸9ޡvU\#XW#ސvr%S}H=Ƿxp:n3)(snoV{a8+I{^CwwKLɴ[9Le`%KL<Qm*/J:^8~)9\b.tmhY9{&\ixKSlvKTPSWr=XwRdVlF25	TkRˎ]ZB"(0O@;7|71,K=uZ'_j!0OhM-!rS0?^jq4PNu#H/5gh)ׯpoy{:SaUw&ݎ?@O臓u<},4@k ,
6׿/SK>"; A{W{yr!f+}h]_5>ۧyi2k;x[V7b3W, Qx[Vqvjf'*qV%L	ÄK2CK&;2Bd2K&re8SKP%1椖cqI,Ic&Z
WR ZX. xu8*xmJ1B^*RPPЅBAjKܜN&c*}6n|Wܺ2ͤIS%?ϧv1GMb.xOT!;No{R	P
-`.Иŏk!Ir &C@4Q!`CFLzyUu+q,eW\V[ ,gBn%g:r"k R2M{d2FLlpú}Ew7,P_@re18:{1-puidYv/N8#_ZVfWT`)kEPF'~r7|k-v:&R>e}#:&?򉷻x;=e&;Yy&7u'+8Cesbr9XBYrV@V
G kc82YJtbA&:ہEU't6]Lhc(kLʂNYnQ 'W@xpjNv7|o&ipN^a	3_mr%4,z:Y|/7,FI:`xAʘ Ͷm
]xleɸi*DQ5>̒TĜļs,A2%5yPAytrHr0DQu2()J\
@P  8mHxle≮#3W, %=`xMo0U		:Xi6`-c4qbʺeҺ!%nk)I-y?~rojBC܏M I5;AmƍBl$'2y]+Ak٨*P._!@2aqCΞ"{hM|lc f]0V0HkY0"SapN>zߖtS<[HM2Y6QA[]FkYEƝcAqh|mO]m)\,ubQPʦI{~AMk˩iB^M>0#%T#URa64< {wyJG7~&&3b`S*Jz2p` "oWxxZP
=BDN졒x78pSp,6dP^ʁC=NIBp gF]G4)L|2􂴡k&%GO@+kQ0dI9,L)߿C,o6~=(ְ,w)-y)l.=/K	Nxn1jҤ-H		A+!z
MlRR%-=ݝ6V6T!<F<
~$u Uy<K݅#\AKq0e@;&oީcChf¼E6x~+z0Zʈ;JjFLۈiX{N\m:!W?gf+}h ǲHa~@Mz?[͏9, µ*50onW}A@dfk+:F쵃v8IC!u=j:!u]K2)%P?>Z	e!1Dl,ζ|,~, 
k:3>bHq
d;q:#%Ah=<v)fXT6dMZcQH}%ӂK$P	>Gυ`cgJ
l6X)F3ɴvdʐk55W`^RdFFmiu`\
UE-ifת(:A';ል)OeԳ	"/"'w
gkSs/#Dȍ3+(x𛎪LZ\rNzTǍ`<;̄mI3,]U7=eo-vR(j
Ҡ*Qq99?ёTBDWj	e1Im_hXUUǢ庞B>ì%;;nQM;ESǅʈWAHEɈx=w
؋ET{GJo:׶ȶ/[Y3fͫmxleȸa3W, ! xWKs#5P`qıG
]o'XK}-eFvW#C|(8pa#~
Fiidg}Vj?XQY]uLRFyR;/O	ΧdKCY8ɣI,|IƄ##
=exI^5ᐄI<	0{V@?I#rrHw
|D$sWnrs+S>&'/Y0H'f8b6@< #?q+aAu=4mQ3lnh/=DK=)"02fKx	(Qm?T/pޚ wM\F} u2.k nt:`$*e6(]f X7Hӛ&pH#-9~Hrm]a
KrBdYȖ1e
(t0|x	Sg8կ|Ӏ&?m. 0$&'14a}b) }6nWZÂyS7Ls^lq"-ӸL>'uZNu
uA
#	AY@'ީ2MՌ1Qt)1;6A.0B7#4
q۶}ixtkx$q0/orc?>j~+["84S\#h>	_㩆;VkS燳1ZpEWOE/.Z}NDel98p@9Jf~k)r􉗍C *SsG vr@ݴAUzϯZ?m0C_P߲8n+wi&KY3bOh"spad7,XCUhx=`*X)`Yo@;UT~o;WI:8DEd{$+4tk2dP%9J2]_%᷃j&'	#91f!jFqD7Nǽ?23*'}$yK/tk_ʅc=~b/͖|*a=S:ˌo<d!lm 7gr.IJo;&Fwǌ㘄d;ydUHDFזT%+:o
lGnX"7![=[b¨
lU8eU
`O;C/ĵPA٣;;?aƗY(xWMSG-%9PTH8`Fǩ
UXHBVeɄS
wG0Ųڝ%VT92ל[~MhK;3$fy=/^vPfhVRX&vOe?ϗdFa΀=hK.]tٷ}I\TcȶUu|CǽDX`v^ۆcBS!mce5mݦshUԧe}T|ӾOkgOeq\Ԋ6v!8,tx@@5uK%?91FT;GObEHCgO#uM4)Vii=*$qV{QI jʱ53/aꝸ،|A GiKHHHDJi$")44R`]LKY7f場2e$ǥ#3Z	P|HF<c/*cn,6f\6u,-}u'wxxOS>'[Ƚh;ı9(l[ bR&W1ٳg+	7(v]O[c6[Fg¤).o6I[yzWggqnǶAYP0pC/%}DJQԡ{<Pp9h(X4]ah66sqW)}/_#^B t&^6BuH1"ghE
Fk"^-L	C9eI%W8vƠ'GOOMF!,EE,3 \y̓?0
CY("bIFI	\ji(ZM/*<?<)0rSƽFK.
Qx~W5}r^YQc .A;feai'uj|&M[_\Woz-bXqQj_۩/9^{짽$B4gk5+bͪ;$o0kD\8D+d\t~\O>>3sJvJWauo;_5мfnH>GN{ssj8GQ7^v*$d{8!)>9v v^ƣ@ZWN'"z-:![CXV4r)AШ_oFIV2z[}4Ǜr̈M,gF&Ve__ǿ8N/xW[oDVP ڴͭI[VhRx`N[fƛ	Ykh	!@g$c{4O|9s.¯>͒իk-l0?q%-p?a	E-$$H-һF<Q83z\Cm@
W Y^xvP[õV7aJiRBطbKFSAyڏlnzgê]#u,8.B`\ofc˹i֚h_Y{`h74%rV<LnOÁ3d410}xEͧ~5jwԊ($,y:ӘacF,OZcNRLn/<nC\+M6r80T`f͢>s0pL	.d8%OvbR]5GA@IE;ARj1EQxH" C K/ÊP.rk*Ut;Ro{f<wop^\̹PBy,E<1Z9#;&,F-^j
c5g+y& Ʊح]}9JdQZAQڐ۫Vihȑ}4rF3|,r5CkE^-LyZ3YPP<}Zb_3f:a-lJªun.8+Rˋ7nS̘dnGiQZqXyl4ި*WA<r0bA6TTO
Lw*qd#c/(rEDFn_Rb8vh{ь$UDx7b8^PڦWa 7
lCWbY#Vy	pؑ!%s.W0UƪKkX,$~.1ۚ*|q(RBqϺQS1µB*gī(ϔ2o] tZ2$UH-bU]("ĪȖoQkuT>kW4ݦX}0Z9{( bZS"ﾒxGMg0 b	E+1```9
h	[2KY "z鳸f:2;9NK;Kc̂N2}7*
ɑAoN^ƓG'dNAc?C`4צr?W>t4'Ux0sLi?*c0{<Ӂ=:NܘwtMApxf<%OjZƱ uFci-qwrhw,pmS=D!k*8H4bJBMi
y)rS+
 8zxMPȩlAt	8pW\9aKv?=NLNǩ>Kc8OWeuL!xle\TC*NNބok7XL^f>wpyfIrKjYfb!*q) A-W, #xle\TC*NNބok7XL^F+ wC	Dxlel <9ATjX7D6	M+;@b^*FD͡}OMVPS]-t5L@y&؛L?,ބo<ژ&/`f<׆k=k	fX. 3 x;=EoF&#Ɂ:926s1es'O-KwON,/<k/¸F  A*$m_x;ReSlf
D7fs603q v`xn0ǵ\tcCː`c!`\LHH]J6H4YW,8rhvP9xv7n͒͝ϗ统l#@#SzRSqt+~fxXŔ=!lfsb2I!q>?xk?#+뾋:⣱r3uTs/Rv0( A;DmiQi GgAm1{պTʾHr
|MOmgC)Wj	ncGk+P`AG,-ӷ\k9wH-f;dX8v#T!
Z5{L[gx*Aăa()B)SMP1uK[`;<b2;i?
-.~yuF*cC1[+G=9n2Rf`AORκ'')tP%E=SU-GL0dݡ+쿰j0YU_MdlLDA@Gxh@6x;=CvSlfڰ
D7^͆s&	40q :VGmx;A#K&+2MfcH.)-JK,,Kw.JM,IMLΤ R#=713o#,L^
M#9? 85Y2w1J䐕8Vdd&UbI0*Y*'DxQl#("2HDM)/17UJA# |O\E%rI40y <$Hq='72%U~CZsaDhHQ4Y] ? aĘYM{#+7Op*6rr Aph`	*JIM,NU0@2 zOPx[c@>qԢĜxϼ p|1>ZԼɍL8OVUCxQz!ppjSbiJx0\@bQbn1@TِRg$Pdr˝Js#g`5,WdiIAir !wx[ZuL5FɁ|j<ɩ9œt!yHJ\
@P >x[rB}C@>	|ɉ9)9tqJn:1S@=ĩ$94oG&=P9 19RKjbN% x[[qv|A)AN9œyB&sYLS|+Лl% ux{c=!lLva40f0B'L2ىʚdfE@˙3C!," pX'wx;~B}1fĂɉ<yg djx;ީ]+ MxKq<,&TuO-q,JO
ȬH)\4 ZrxJ@ZCtEW.KZ)"c2$S&B"9<<^v&K$ognU3S~
'7\VP(6{g>Ġ,_cNOkQ'HH0UaztE}Pi+z݃^7E1V1
e>3
ވ)%HW%>K*!P[dP?PeChPLbT_ *CB (8VFaQWĶ=F*ujr" Z9'cTdsO$O߾rv"2{0*erBtjm]3U&j/kN34%wB.1"6ݻ3TS"i$bkb`k\qʇJ7 %:t~ULvfd &g}"C(x[@u*7OtI,I,-N-r*MKK{ z{@Ccx[FrK@brJ0>#3/ݿ$3?xqFɽ|J%!%~997

|_Sk`ibNfI%Pd0*NԔbp@Q~AjQIfj1B-f$a?ᴟ. Լԉ& 8 ;F}6ioH/ةZxI-q,./NEtcסҼª1UFAӉr< "Ē2`!A|ĒD\"`<mRƣ2 "5'7 ^Jx'BRM42sRs5L%F('#ZEyPjNjbqr 'Wx[2Qq|Ɖ5ΰMl ev&X G
SxJA٫bЈWZ4*sngggSS30` 
yCg↬;ӽۙ{׫-gEbZxp|q$wf񮣀SGr%e\n?#P㢗[EO_n5Tw#8d#43\sZBՀ(*ke>{sC!ɸ/.#dqزsS9[@Җ
@++aAA)	$g6
jHa6F^yؙougBs.9XwM/|sx|B| %};ށ.3ד=k|tOWk5웂RJGO۸œ8V1^|ҷy^<VK-O칻K&YoؔtgǇ)oAS٩e>|[J|+_  dx-1z6bI9%NũE%y%YuA.%ER% 9לTJܱ*bsFbdAFD1ԸcW#1%m $ C2'aƢk2#n]a,`rꔟ;$.I90XLH,JUR ZX m-.xmJ@jjE$!7a7Yڅ8w(|/fie}3;w{fyV{wc\XzXά2rmIן_tp )afсB	U?TMȆ9ni)JN^)2[Pf1/>+AKwif/jKshp<Bxϩ3RvIV&v(6[w3j6Z3p]ҎM(BG'DwGQy)1^!L51gM}~LPkYx-}s^fX. *x{{ 3䍬ʓ3Oa6 &O !,PqKyz[8
V0 xjjNx{uk&&X x(rQdC dG6X&q 9'Ⰲ	MʡxR Rl% j\x(V`6W, N FxeMJA	YH0nc B`4D:Ӆ_U;Pၜt:{UQPglUUz`,#Q+CmٛZtRhJzd7rîH0\;ePȘSn uZ*7Z6Ӊ*m3M}hCR씒ĻZ ^*#lA/s&r%t+9~?d,=JE.Lx;o^,E%%E\RK+SKB2SR2K2@@qǂײԼ̜jf<6̲T8Hb6.%@1Cv$yRsː(윓Vĥ \\ Fx[E`9̢̼%+%C#%
╗gU+ͪW~&^y6Y	oG,:ys vl,x[#9Mj*v,LF'q
ɸ&+q) A-W, ]nix[#yTbs1'	x[#yTbs3M)1i,po+([vr9\2-\ܕ
.!̎gabS9n19Vpmq& :D
hx[#yTbs3MlPg4c&jaOcLV`gf	$cnU˳9#qb:Nɼ\Fz.!0d]ɧz >a
^x;*qTb_fFXy&8e&Z؞Yma~ll26coSb[.\My K#2
jx;*qTb_fFXy&8e&Z؞Yma~ll26coSb[.\My Sc2KxUN0nfBB0#!mlel04RPY%*
)jBnsV8V7 { {'i\,WQc߫7+S´~f cʋl|d0^%q/h~She. znFyYnvuӣm[;}2Y82Gʔm\$(hy'aB@la'|P@*U!!^"V!,8=85m-mOg5B}}uM ˜s6؎Xm|,aTWEK%v3e/^"d]$ᤩQgZZ-xXcc\)wCI蕠$B'BP.֐L Z۾S 'ܫT$GX!lߧ("&5Ĩ N).hHǖ:{kyGw
]]єY'ZY)r9< Dk {YJ|δ_} Mȸx{Ty+cdG@vH.`?$9SrY8,\@^W$1ܝl <gNx{'y͗83N 	'HxxOnE%&3	l1Qž\& ܎?ux8YfO%&3	lˡ(onbLvbw. Oax'HaEvF';OV`Ievh ţjx,&tBF89B3srK6+r~b xx,3Yfv'sn~9	ȑ<JKM;lԜT%.  )Cxmj1?R<oڽ	^J4JROG*=%fl6n!|_&m4ނ}|d߃)J/Qrad&wZko^HՉ98-#;e
U{6L5Bv)'Uq{)CW0]kdB+%8,	v	*hoͩ0[h扮SGYkH2Mrcj/x(Bl7W, BDx(}Wnzy%KKR+2+}}SR'_NIM.ϛf2YGS=9(5 "T*r,.ILI(q) A-W, H*7x(BlS.FY&p1q N-"jXx(}Nj/W, T'jmx(}Sru&X Xx(@fzyJKR+2+}}SR+ kwx+Nv?ɹ| #x+Nv\|ig&O Xrx;'Wz 6
<ZJ%E%nEEeɕپ)J\
@P 	x!{Y}C8\\EI9œ|'_b\ǵ(69/891'57 J˘&w0M-ILI,IZ&XYTZ6,~Tz`	5!hrƈ]X 1.$/ fs~^YjQ	\*j<`U%lySé$94oG&cNN~2Д<dr U{Cx Ad
F&ر Bm2+hQr&dbOdzda80E&_dhf%A	,P!EVκjed'kMfb7!b1P;C*v*fii	i3K gPax[h7~d.U&#Ɏlg9W%d&x%%'eWT*q) A-W, H]x-9YjE
\ařI9%C\%.  xVn@(QCJSQZjMEGT,P7<|"_~ fǌ+1qV{ν>s3t_,Vae`b&s1fʍ	%y Wй %Ca*PcXyC.&VǗ$(CmB4tF XnjJ<~jIO9g
?o`khZQ%0G}ubnVF
~[#=hNgdYw[U>ÖNZ74RY
Q>'JdP&xl<)tVw?WC!ѓ~٢cDj@=ϊ+w2(k#ZCSi̱}dI)&%%=L-%م64P:z\l+HQҡ0ï@p!i30¶!AHq2$אhlCTDceHʐ(!Q:CD)mH`ț\?<n]?iΏP[ޕFl,f#p	x-Də({Y	=	~a!gf:	ª*>:BgwG|~ ".$,	%JBCIbkoZ<8r6d)g|;T@]es[9[^.zZb:{ ^O=Hʲ*Ĭs]rf>e'Aj.x-Ya!W, jCx-F+ jXx-)W, AwmxVRA-V*;$<e
Jrm!H"fZS3=,\?/н+_G?oBVs{=~јtbj}k:47B[!	Tn'n%-;VRBEȥfIU)5#Υd+x4وHV`p[VWxlH!N<f$Jj8AڮbZiQC4^xH߾F@$&6ָ7@nzｈ~GP>~k0;\Bg 0"3hvo 3k~#_,v ?fJ 6E))&<.
ĬP5u ۃ>jukj{, MW֠6%kU3kǡ\5sB|ub#Ii&hZa;8l"K"*ЕAyH+ ֹ-?P"o!fYW'ccO<vp>OիqV/"juDO9jEsX/$>!v3{&gkL
8&"k:Yɧ\xe+sd	-Umu=Y.4t]IM&^ch蜼
]vI#5/tqu-c{G<Z*(NQk\Bύu}\CLaSo`Ns/<q¬߻^!HaX+Kah|x鸔e.>%.9Eřyyi2BCeg%eN6P0`2K==R+A2%P	ǂt4T(T8&桫QR ZX Gax}n@%GѤ8	(*bUl
rcjeu$>iGθZ$ޡO7x#Xc&Nl"2'Wom.>''pPXwG5	# @<fۺ~kvHyQzg >	!v!;3 2?	"rg=@z&1BZ1Ǔ`|ڿ- θPdu`([wJOť$(Rzp\Hg	?o2X0#1.ZTYvluȀdmQ@JzWPՍʕb\X|˯@3"ޥt$*7u4wt}7WV _*6M-WK]^kF-Gk׀(k҅_hj=ʱhl.ϦTVi|3N&jj{Z@wl>ϯEmԩ̹^-P=c5}6GFMD݊qXNkظb5w,12/vg,;: >J1:xFhD)IԴԢԼxɎzq>sN~P	{jg^L)A)0\pIQf^:BV!V.dg0n;i']RsR''JC$dA%E.%IũEe'(1!ԅPiR)PY\_R	n3p%y?r@dd@^q@ I,JJRPaQr{Q~ig
8\¢	8ܻP]& 1(}zBdRKB!%,14u2DBU#aʣELDĥ \ |xVnG}I gqb[E%oz5d۳9	P@Q _O'CK{gʺHW/|-2رG=!Cڃ _g"GD$2ټĐt09]ґ4C<<R,/<--2̢\<ElVH(u#}x{%^W
Aӽ=|EȃNgB?,A0!;݌=B`[%GFY{A>*h7W6	%r~=}\LgЋ_~,sA41x/b鷉اEF,>E<2~KGߣ=1(?(/7vaDΈCz8d8v7vQ;b{@29o+E0P/J5L!a[V؎ƲN/a{O!ꖀ"c K!(:j@uǂ۔Ӆwhv#x7h7".ب C?deH|S!n1s>(m][{*P@z8(lL*2bżX4ۗ+Q2]3XjC3VePu*qȫkSṼf}Y=s}\FQ.pOcy=6aYl&%=j&{{WFTy3(j=V>XyVk&VHC`|:@D@N2
X76 SvhR-obDWɌXTi5 4k rFVQKw[r3".Ү;q0kjAjV#å
lcWbg6&肣2hBFpq|]2V]%_e!Gv
ZP`N`Q>z7"\S'C`\
W2$(m̧M{8_-Q6-:`B*)UK^mCbg;Cm'r#\4+Atg1K4,q5{mRy/.lNWx$WKzzg'`67uhL|k2_+0Z>yuK򓣣|xL_&֛u6L_cxskcD,;oB2={UNwOyRvڈVS$}[//;{:Ƴ<;H#5+M2{v2]Glo<Z!0.[A:>xh)S;o뱤~¯*Cj&Sf͊ǿuwW1yrJ_W*Az 4LG	VtE.u=<i4"g/g&صG\Y`~}4YeB74^b\~Zj4xxfW, ]IxuN0r(](PB3t"DBM*77̍7#7<q%ό3-ܓ[s as1X(<ӕCu{kd9A^rɮK>6^bצ(yAP9*fo5rT/2Mlv #F#T5=6@O3jPσVdx6 ml9A] =ˈAuN;'=q9˽ƙcZ(SdmyIs,ˆ$('~bw=UV ē^dKN-XQ&Rgm/*OTIIZVsn3gyYQc'c4ym:; S
AL6Atv$A'G'k8q2lm1'.ئiXY85]dE1D);M=%R/mi=Tk)^/n6tJExuAN@1[,9L"&SY(0gY~37=0$D&ëϭ=HQ)pm({uIH3J3)2m{XРr^#,+bvY#
Jxb\1*cUl`B$2y'A=p{$GOL4ubێXM0jr(<4ʞW~qW^A\VE19+
Ledk𞯱-Ttz;FAm$\m mEJ +[$\Jz'O߇# o]K'尵xqyKfqANbep~N~fl|("%X}QK&du/]<ĵ 5$5ŭ(175(S+ L5vxgg@Qf^Ig^䏬n^PjNjbq䏼Ģ03%89,$//&-vKM0YP]T$rE@&:g$楧@!B,:'sVw1obB㙗r6]h>yP9ļtCd0(/H-*L-f4YRKЀR\_DKjb ŻYx}JP7 RWjCAl)aI-MgnO8o0i{IJ~}1OՋ#5Q6sqC뇹~9d4(>$@ˎ-ѯPS:ZWf7(	n TssieǢ[Pq8CةL(
o]=a=5ޡa2&':̹zw*UJ
2ydCE^q=fʽԟҽFDhd-C㇡	SÆ=)us{nϘ8ꈟxU@Z&h=w}q7ofڶPHLO)I4F(e^3Ƭ'CpCRrGI.㖌d`rr?WNPX*crTDK͋iʸEz0`J!V(2\ |Iq4j|G!:gmuqx3w5jƓ09U%d*q) A-W, ۟
*=x봚㷁]vL
by%Ee9yɩ>%y%?
LdVp	,.I/N,J=dwI-.)ʯĩBfliPPRQLEpKF2CQFf	JTailA%HB&+H󸧖e&z ,6Q=.|^"̑XRY 5=k8!B~e<ΉI9%H. ,xAA /D0(?4⼔Q;#ŻhPjz&0R > v^dEI=h+¯B	b%.  	x켁]vL
by%Ee9yɩ>%y%?
LdVp	,.I/N,J=dwI-.)ʯĩBfliPPRQLEpKF2CQFf	JTailA%	zC+ ڱq~xwoGs=&Sa,
 dzSxy#E!ԒԂ%.  \	Dox,v/pLV4Qcuy\ wpx;hh^nJi5F'1rVxL>ȤNOֹ(5$5<$#(4;2)?(%(5x>B{j	EyJ\
@P +>YxJ0p^z%z3[(Z,^H+49pz;}=0GڭW?'}t7#FLAZfrDyxzvTRfE.'@	ϥף\g=[A*ٺ"ӖPNw_eЖ]|A-Wa43E89RE<Iڱ>0PɶVL@7sΌ?aUMŋ+
=b`#W&6!wP6ړF	~^{L`~xuԽO@ p/;N# B:u6BCDr9cP̆X#{n?#R/H޹޽|+_9||G-cNxT	iGi'^d3#ej	VN$@Ā}D3 =	T>QTUN:\{0YlMOEG}rƂx8#]h G\!Utؘ۪d=coХI;=񽳀NK|ZVA<${:B'=%;qtB D|qߒEɏ<¨a!92KH8g˲|\$m"m\ƻe,*
ZS9u$~Z]](!_&!&ܨp#5*X5F]I٘Gȭ&(.x N۔?t1ʯ<='?ErM)Hڴ2[#菙A{xuJ@EQIM(CjLD,$-F$Dg݅_fL&2Iޛ.߶:@aS898:	d6@hnd~ܖi!<f@r4ZWi#tW
x	XUPH->HUL9eiN@L515E16K(fn? gq#fQF\甲+ͩT2<Z+e`*,A۝WQzLЛ	:23XZ1,
}Ƅ-]pTYh/ު\/mIox"ik^YfQ~^nj^I{jIhqjK~y^N~bKf	lgh`5(+R ZX ]+VAxN0cۥ:pQdwNFHRMz;}
:sZٱ<\#nΓ[̯p)beطum#g8?17=J98gph):G LK
A\)X]$CE*8P}ELm[?
EBUK-$JQ,LdsӐڕּn)Viƫ|&XOTJR.{".I6
|SV`+t/VcshkDWj3ñ#iu
G nzJG'Nίg>rvKkg`s2l9nx)w},Ra.EE%%Eɩu!8`&2A$SsRKB*=]ڤjBqA
JML	N-A[٢\TZ6HلԔD\ϼ|Ĝ$::ܱ t@1mrr Z2xJ@j[Ew.-؂)t%eHB2&C 	|̥f:4iYݓs])6N`ޱ F~o`tOl1[G'BFvj^eJ`9xי[k H=+M'q8ZM;gz
X%8vBz!]FhIMaz;YkxEǤZj)X&Nn/hBF-N s15?#Lm)2fl\{=`qw"0HdaW^\gAT@ utiΎzW&byWd5LK%}WF'5}Mf:`=CμxVDG.??]x[Wa}FfR]RK+'72uU'c
(J-L-I(	.-(/*Im`ހ0ׁC #|Vv>K?8"Y2ٟ&+qMnW'e< G!rxۮgW@Qf^Ig^fdCVW7(5'5x2#4D $L-r,N/K-i`H;& I땟W9 =9#1/=$ѯ
QWDHDe`)IPE i:oS$VLU+L>dϼ|1،IB'4/9*盘qEE% rGU"*4`a*z+ Ē_xۮ^aC0Xtf%ֿ\b%yY%yJ\
@P ~?~x}Sj@FXd$ׁB.%mB݄qL)ZrI1:d$ցBWSNy@Bny<@.zjV|3߰w[OLQ +|_,5+m[>dg=)a y S!9!A/X:|b(#|Vifڑ?j>~BOu&y>˱#eyC4{0E1klj(9DK6.	I/1-|J	cbd%VI92K`*%;DX,laDÊVMNs^HA䣖Ub/,`_'qr&f3\)O&# ~ipEyh,cX	_Z2w?=1%#yB9P~2r5}tOJh2k&!}-^T-Yqt`k>-<%ն6ga|1~"bDnxK@Y^LJs^MC"r:;9OA"zq?kܞ}~nߵ|*7xtCZiw]8bK*yMgbϙ/I@
@-˺ԹCM*h9M[%$˯4)PShw*|ܩЛ9
ág+ThLΟxuϑ8#-	yRRGa6nɌgt	]5U?B|`Ztmĩ8^瑷Fd$xB\0D;#Q_o9rOl(KϞu@MOlGB*&ǓuO0v=3Ux;<qiɲ.18VdOd	vI-.)ʯ!k#a00;#"x2:acܑPǸc тQpA jkYj^u\A<p^HedFF~@p~iQr*HDcJwj%X7?/$hP78xH~ir0Pn>BX[~cNPR4(57,rq6R؜ 
2p!g^I*0p
 :%2y%X$Q*)ġWxC&1`YbNpf^rObq	X=D~" y%%٩0DC@C pxF	sX@wCd2s:a"J\
@P ]/?Kx{![zSg9&;*9&'O.`Jrr嗖N.dՅ@Ds2+PŮey%pQ58|BS<@'l1%͡BJAepO)q) A-W, YQx{D
.eɩ)œ?
N֕UdLfd&_cオKˇ*, ǎ)ZXRY 5AfLJ\ĂĤ̜̒T;ƇO>(h 委&`(K|QZIcJJQj1D9Ѡ":YQSм"|J8䋊+ u,Hx*=y-@QjZjQj^rjqABɺ9œ1%SK<''2$$'JIeO(ab0.qDԜI`ŃR3KR\KSR'+JMWDVW[%;J2❋R'7 IbJꖙXsVUNy)9~pW$y
]RK+a*T$fd,qs 2HsJSAkE)G86YU&b%.  oA"xkx #[QjL1 _U"x{ @`{q}Y=fx;4zdO%5F8JK2&.0$
+LaK/LQXP׵,5M% 'Y=X=H..trkAUN`gBV7 PPH~ir6[d~	 W51AaaNL0LQR ZX e}x;dO%5FJK2S+KKRV+ f]Kx;w<jdO%5Fɉ
eX983R=S&
?dRu-K+A*t,.IDVV.ҰZBP8ؙM>, T%_uH/dBV=
@&f8(L~ ̉V&45ܞ)J\
@P vOxnEĵ8MZBB&$DjvBa;Mov,EHs5M0;;Vs9s_6ZI~"k`|v ~{lKhza
he@7;;˻UqG9y}C!0C'$nriYHiE8HqUF~2b@^/mqRց&@X|1yzcgs	#3Q$""-cGH~3#'=X:	xƓa%#^N]/τx
>Xȗ3zV
a +`)	 JC,KGQx	L|2{(3*gg)Hf|)<uڛU-("-5e0%^<zO0ðKmkA|y	Y@}+/FzϟHd2O?Iubz낔DaOi77hhSi%pLF8OyF}/l/y~68؃!yue6Hg/X=e/S]ɱ43&<$fO(oXIc#F49^6wN`zzs#͏zo77^.YsuQz4pJVtNt|ژ֘9PNaY<HӶSc#qO;B[fNP}~VϬ矦aOV#+3J>W.n(% uG熟eOcHL9:?0!gT6:Φ#l*vMvUKeaJ$P`&DscȺFp׋غLH֒~1[@T\%E[&w5u-Zm3we̐}2:Uhh&ΊYEue%w+*<6JS1T4p`i惨P1ii>Q4:lbەFM1#cSq)IغnObRI^=Qo-+܏䶻r[	`+UŌ?dI6ӋilΪ
ΒUuGp߸\M8H's{?7֦*S
rxۑp6u,t&qp%$N>( Et# -.D@NbeRbrd}US$9^\Pjr~QJf^:LrfI.qœŭ z'irJ2sr 5okgxۑ{FUfX. ~xۑ#aA%'圼KddYG=IcT&Ric~ִ2&|R  KS*~xґADk*dGN1ԔĒxɁjPI$IɉbPq~TMRHRey?@M(\TYPX;TB%(D4>85/N,(s0BgIjQ"HB69%B%ɨI4T9qU @m*XxfIs~^ZNfrIPjq~N);
eBR!G@7Ⱦ\`JMLA'P4 4=3oF.8D|HFϼԢB ұl%%H.B@''*q) A-W, )Bx,h>bX&XMv|B 	xSx=gFXM'oѐq,MM-.I-KWR ZX. xa,j7h9dd$xOȬh19QPfHX~Nino~Jrr HRxn0!DanlLS1!.
]MQ/Zr1"!#TW8I!Y^Twܮsqk19?
pvT/ךB'bOiE\ G <NqhTU~	oVs[(V``* +6gov)P3.# `MoMhgF滰aݚFbFr6˩vj:7d=zkgpY5_%ܤVlͪNDĮU"60j,sE/ 5Mi]%~%j;@'O,c`qdk+TW6ɤĔ-@*U*0C"fOo3$P,^u~m!neb_y*8A{mTtWI~|GV)̎63)@f2lGt@{۝2)F=<GTdh!ԑyT5r@Mz_,\jDoK +Gx="Pprqf@jQfAFjQbNg^Lzx$P&3	/H͛nsNdF~}Y4Ă̒JCf4!%y%  b,,,KIb^X
t~Q,CE76($"%&dA+&+jSsJH"zx&e&&T)rQ_LMY@bQqSbqf2Tϼ|%.  7x9UswaFɆjD,:q {x垠h1^m!s&19j#@ɛ-!"LVF		D"9ala<a60Xl!%,Q* (^ x9UsCdC~	wX6aM? !4xۑaDA%'XIO
(8y}궨n(e4b kKxk
`6\Y\\ Vjxkad{5e9&XShpLާngj8Bn02IUU'hL> T--IH+I-**-(IMQR ZX. @,XxkmݰDm俲WrN~f
[48&S5l7fTF 3xkNkd-'/P--IH+I-**-(IMQR ZX. lkx
@+ a'x

`6yrܛs2 WHx
i5*䍌ʓhrhz;&d&&g;'%(q) A-W, kxkKa-d?v͉~lpKl~q^v&/q r@xkKdyul8d\|\B]]C\B}&xl~> =HnxkKA^}&/q ?%xkK=}no8Td&+0Ko~> 	LxkK]}no8Td&WOW,<. {x/ e[LBVCE@0U\ '
,2x5iC	d^#3Ɋ:%6ptj  a	/x[$NelX٘}'ʸn  /xpuil9OO|C 
Ax2'sM~ddJ:;8:O6c4"5>,hr@9 WO^s y$[l2x+jlM -Rx[T;q4+F-'W[BYbv7XLe((*9сE%,395=#K̝(_QHedEY7WYgg$gL^(f6V]5/1)'ձ$Iz	puԒĜ̒ʀ̪̒Ē<%.  G(xx~4,T&WZ/f4(*95dkor7 O2xR~C5ֆM7f 	o$xR?q4%&/0,ogW苰( BdV lx[TWadO15Fɉꊩ%9%EE%U%yJ\
@P ;\x[TnC5DQɉ,.eɩ%%_bF9=B*&+ZM^κZ Zax}OAJݶPj[`@h$CBL`bbtN)уF3G` 1_WLL-Pi>}ox[:>Dϰ<V$o!6e/_A)vm4
c4E~Oh.Fcsb
Gzo˺1j&~h/{|a)d2BVE_LJ#[QJhfcm[<XT?F4鞼gOlx$DnW*49]:$/b*:'RPn\KǓfir I!
LO-cޘK2KF?eZPiZM|4g$aXҹIBja@4d$
;kQvtu1N94\~bMܦ{39y:&.j#LC%!>zYEh[2(=Q)X	u+JA{d
s*g:ÙtOf?m`K[19Nl?A=2ߣQG:Dg	=>Msé=1}hF'·/9~+.~34{H;ϥwLg
{-=-:x}=O@#X1(MtqA-D'/MJ۫wW`L .N.|W
[?<X.K|[@$` OOˎnAl%7-=DA:͝nS-:#?w7%8m|P]ASȒx=sp&yO3!qI@=ZoDhi.R.veB]jVlKX'1!z*9Y9G= $:!O,]a!dtyT6e	/&pC캳Q*S1lvM`iICfρ~bTߔp0<_b}q'8<Ux|>&Q"^aVIGAxkzoAqV͇0m~4Ymrd^](m-'dIY5-*W:^}|@~}`\jI*jb I%H*x;VslBppgd䗖%&N6d	m4º0n(NVV^/ #$߱,13'1)'u40!Bũ%ʱ50N♼_}NFžey`@y 2zqL`Q*K,,KwO-MMLyP$'JIM,NUR ZX. fYxk+TdcԹSK2K';ZONǐow{y'woc<X3(,3(Ԍ$fTe9԰̔Tޓ0Mֱ \{-BwxT|C>dFk'3`g,*/|P#ps WZ'xTbC䷢jƓE%'Lv`sI	.I,)-K˟g`3Ĝl%.  e	Cx{oq<BFFɁLby%yɥEΉE7yoeV%9y Kpjq&P^^NǔQC9&g
ALVuI-LNwO-_WXĥ \\ N.Lx{ow~CLA5FɁL.eɩ%ΉEEy%%yJ\
@P +&Ix{oa<BFFɁLby%yɥEΉE7yoeV%9y Kpjq&P^^NǔQp O7 .xx}C=
r8&;0M"Y:9_{˘E7d)eFR	V⛟:QD&Z,1сeC<ΉyMQ?ma|6 1%eP>{R94 Bzx0qC=Sjzfs~^ZfdA\E
dkxxWqh%3W, xn05!!:&j}0y_LZh7v&R'rAx<#v6IWI|_\ޝ+6uۂc?)~/;KS5l ڤ9u[Kf#Svl凅$$armY we+'5hvTlь'{F]Hײ#|&֩tFQ3jbbFaS&ġw3cF '}hop3CBOZ ݹ4 &$t(띤~/KZ벋L9ƌ0a(hst(q4h]9©k&R	(9XFBOlhPKhl4JhlML[5( (F0]h(Yhq,]rq^@AIB-ջ(=2l?"G	|lc*z-UޯY8bh~z4`GsILTt<G_>odwyyף O\V/aj@HeV"E;.<߬mt//D'&#sܖ͹iQE@˯$SO[lD:2tY`^d,d|RO<DCG	^A+7J+.&X>a71uBbV3bzqGЛbIvqI2v]/2y@_g u&%f7W/KRpK}ZxWn0UrPmV^B XҲ	U&Zڑ	O@+O&qNBsf33oՏթpJbE*2ofZ hL:;G Dn hm:̕)lB_#&dv'-cirU {"B>!Xꏋ{Q쀪hhqj&V&PHQлTpM16 u{
_E,8A;@ \͚T}1F$VڔU8*dxM&s&lTFiF4KN>1t@%oz5mtB@8u.3kt;,aB#lwV,X9J6	%F4)hPb͓Mf9e*h0_h3tX42!r(0e]Qnl?n?0TX;*g׍s6
1ETu(nv{#stB3oމ[pxb,XZ,ڈmTZ,
y۰DhӅ[GؗqQڢ=&f}DWñ'ul!QRvL,hZq]:z	2|9DF(Aӄ^þGP˼,B:bQFFz肜7ɀ3>k4Q#ok=5$mȕϺVlr!wqK{/]&)ii<Jxه\]\PnQ}xUP%29%Q}J̬gѬTq<^YQ<FPg3U0$Ϩ4i=VeꅤX9ör0A66rzr܃C[i	̚Ul5血Sj?imp95eѺ1>W5@}~\m?׏	Jx;^t1z2h@frIiQojIbJbIbsQjb@nh?(ZąuL^d
CJIM,)aaN~^r -7e.x;^=wL64fe l8x;j~{&/bl,?	 m]xVMO1+6=sOz%	a8CvWJݮHb.=l}ʹ&X5ۈ2<VZk%?Ba4EVr*6_2:S?݌0\m^zBVNd]`=s*u#!AAB&a݇eFCO(APX%sTw"ir=τi>VPd[ƫי6k5@C2PZ=.@n;n➑27^'hKMðɏk$gLer"?m*Gl{&iJ33gK.U1_}ƌצP^G!"6Fnxe?T\R;y@OsO|*7"x;-|1zr?gnbzjPjrjfYjAIf~^qsQjbdGo$*qO-	ά¯&E.s3K*'?`wŮ(UvۂRsRaIK,RĦHf^zpiQZbrg
N%lRS|KRK@=/E6y ıJp8)q(AEUbrr pХ	Jx;=K'H){Ļe椆eƻ )܀ĒХA y $-&VY\_TMgqXbNf
vC-W, S2Lcx{ʴyC25F㉊n9~J\
@P U	o-x=wL/Y'gM`*;y!/3W, 
Vx#q9x72sr e@Jx{v7'1&Lh2{O.be
N7TƒY$3?oE=e8X2=''قR]+F@KJK'OJM.qO-	(//,HOj&6o2:gxfIFprQfMA%y(bYQE4xAzs'rŔsrKR+JR3҃KR]KAw+J%>y$5nEXr'槔\휟[
4IE.	(:'&g*q) A-W, 3xPedEfq	xԢ<ϼɎ%P%Ey9n9l! Ybϼļ
>qLpj	T±9?/-3M;>J 9yj+ Rr@r7xWn@UE@QimB[@\T@ȍHD-	'T-]ᬭ$$>_L?O؍c{Y)33;{fWn|\5e@QMKd /;S#в#ϡ츫;\2ck'1pjnrtdmY-Sx;)&5vl߀YMOVF#>IBY1t?^ pJ-PU<\-NLo.cZ7d =gqsĉz΍'O1a< AҨ3Yc	z'km*2&s3v<*ԶӈqDC̤E2K{356uS! 5:-0!ϑ\1;+P,	%fIBK(1%X$tLW5PXA8Q8`А3tX42!r
o}JFQkAx՚0bN,2w`wf8⤫y1g\#?>{sYD0Rq7S_9筐.[?E(cԢe!Gnl@HeŢMm7wM.S_5.Dy&;KhXj@Q
oIp-D>4AN	-AמWK0Uૃ ctt:FP|C*2PF%Ap<mMajAھ.:XC\])ţbIJZ\09+{	?3#,Tݡ_aŉ|7<ۮncJP&C|L34$U-!. *f$s?%0Ǌqy=SWe&夜Xk9czJC>:t́pAW$vQi	C'#;%6ad^,xn@U+R!QNzAi@
NH([jO*SxY+Kώ3?~?di3m]^j:9q!˕<r]EFGLfu7fu0;(WwԮش֗A֖ӱR8(
@<70h숼F=IzmEDINNPh_&l&CIB~}.C.llBAT#7Qv
쿽5xJum`]U4vvjVW1b4c;/~gothm5,~RAѸ9gz6(vR&jpvx*QYɹ42%"Pvw <P"J=pQI_4WtWd-\QL	'r2CEMuaaz,D#Fbel-$Gm@nٝsW*2X^ەv_4-NxVN@RQE@D@?B=毑	S$pzMJH}J~Qy{t7Nb;ofOT[~Xtujq5LUIއyQ@pfԞZWZ[g4RP
fr=Vf"~"pZaAY5	T<ӶT!\"6wx3sg]BM2pch ؁99(5LP(س%\Gڶ:*#=hߠNqWM08<[@3&1-;:5VMgQkMTe(C20e7,aؠBu=#*%&d`g*ݯ Z؛᰷;YƝ9jg	=FBcJBcJB!&ب'eS]BaJ1BCB	xW(	g˲	D֮2;n6ah2ݞ4pinSsG\,!®,f$b1()A;6/=z|z@#\+SEPX.E"W'λW*D:#*8邲ں:&dW[-D<AN	ٷ\
ybz/mL9u0TA*xTm̠A##ո	ء&7	'.r%w3n֗ȵU﯒]S
qA=#S0e"WyS߆wbSj)ܘ29Z8Ean;8S*HEsۼ[؉cq8u'vsX4|Ce?у9 ;&~3fe-xWmn@U?- ڨ-*-mQB/"$BbOZABH>g:ɯ罙7o?Vå7檁Mݞ@k^، H|aXxeG][;&Ss,o$$+nrm»aV!aǵd+fh\oV!\#xs8Gb}bn @Zx8Z&J\)
z)F$fN z+ڈo?=YsO
b¸G"QgƦǩVڒU8&dxMfyUmo∆f	8'ؙI,ypNp\fwTGrXBs$MJ&	iL,hPb͓M3<BaF1BCBaȄ4e+<7(	gɲDծqwFkЋ[sבUeec6]ϳ(p<r!Ӟp"jY(q_-9:獐l/S=A{eף OR.a(reB*cX],
yY"BtӅmGԗqCiڒ9&fD[ũ'\-dewJPJ	j|drz^N
ZSsP\:*(|4}t	.A#-!C)?Oy/{GfNQmAlRY{kWu
zeƃ&GbYL=KK/j3XnV71UBYI(O]χٵtOU+wc=Qǹiq%0,O4<z:
4.ŅLԋI9-`WslP|t鶞ЗlS$vo:͒}v^W"աOG_?c gaxP{vCĒ'J9%V&:%&ggCn^e Ax{'y͗83N 	'Mx{rcC,j7Hp8dOVp,NN͛Ȥ7y7H,13'1)g9gŁbEiEE)%%.e0=y0T%.  ڄ15x;ys)pNl$:%X`3W, 2n2x;yk)ɑLjƓ7if&d:'g8'$%&g+q) A-W, `OBx;ukDpIbIisbNNRbrrr `
ck|x;V;l53W, xT1z2-Gprb^g^nR`NpIbQ	ZY_ZT9y!+Xڿ 5,;Or?X9'8E\,
3+ (17U:4/[&3D!NpNKNAY\RZvG@Q~zQjznB`i׊%.  Z[]9xKN@ƃ0q|#1rA
	c̤$N&hML<=Gx;N(v|~}gnQ?#bC`!/ct\ܿY)o|>6,7RP8Dm"<-=jF2./(,'Yjĵ`*bE)0f8@QAp :{I}r|{JY.@IͮfWH-(+ρ66t$8;v0EDYֶ$[kڣW;(nJzǅ析$P>VFpyɅ1)rz`WUV}#1duFEQrozU%uG5Fm{ BQ xJ0;w͡8tA27ݍf+C@,L+Bi❗649|'Y>y4 $@+H>-0H5r4Z^c9$'Sh\Xm4zt<Na$na34\L1L҇Q]p/|dهS뫏.gxhE\ ~J;rF+tυpvl<oxN/u5p1ɕNwc|kV!>P}^#2mCBܮ~	]ڜer)p[ö`n.\S,{Йt.T94rkrx8!qC3W,  ,xx"iW9J\
@P 	
/x(Ja4+{jIP~ypIQf`fiOɉ9%y%9řylvbdojIbJbI"Hd?t6̊ԜĂ|ĂL$Lح(?$ĥ \ ];4x(MlCfj1,L\ Km%x[Ma~6Ē̲3!L\ĂL%.  Ub1xۦ0SqB~~Ē̲TҴԢɍL/pO (X3x\i]~F4sSK2&&%ԄSK&䍙- HpxKqtLjƓ7rU%*q) A-W, $2xxBy]{ԅSKsSK2&&eф'䍙- IJpxN@Qo%B@w-BYSPewkw W|]v7g軲#hpQDQTO+-}gwj4\}3$ouh2lǞDNG&enZQUrsA0nl`>&0* m#@튃ᙆkyQAV.ۃ eBK*}8 yDCѰ}=~@o@k'	 1^ 'X9[/<4.ph[͍@=/MsYY,uu l'ny	Lᰖi2M>2TOPy_jD+h0plL8:&WWU5} 4AyxJ0;wsU!A8i9qML:w^| 7f68;ݜwՇܑWLcH$,r=A-_5cH=W(fYo0FjS	dgsD5=9sIy<a@`!-NZ1L ydSbH^$,괝'gl˞n<㿑qԃy`~ǂ,Zmj_އl^⻆>0!rn .F.cvJ4)ᮂ=x_7޸l48xõ$(/1glyYK6м F_x;"Jrf5F4%|SS2S++KRs+ 3]$4x;"=K'jp*8FJ(\cdsQjbI*YL9Q9TIEP=$$$$3՚̲EU@UU] M3ͦ64U'2ٔ]EP%(,쓿Kpb&r`<!)hɏ)8SSCsr\RJrKc  2x[%)(dj3x'sO>d8'$%&g+q) A-W, C>xz)'N<yx&)  r7x{{i>&&Ol`L'Oa`LN͛jfN^b"e$+)r x2/x+Mtgnbzjp~iQn@A73/-?}!"w1tEA9]RS2J2'O`ဉMfFp0EKwO-KI!$)EgP~x`,=.řE)U@c(FSۄti(B6K<Rp%d;&e4SĒD"%|2sFR5Y=J̊Ԝ1Ձ('2$37
to,n%`@Q~AjQI%骘|aVK`t+JMu/Dĥ \ -xx+:IrC3spQLyl%@L_'Kr8略8d$N~<9]ƹ(5$52 "5'7@KjbӰ$x&A|C
#{jKe^bnfrPb^F,eY%Y&b< x$Crv>ʼļɊ_b "v xJ@)2**z[M^͠tAJ'Q|mf4&fߝk}5SZ nl귰f	m)'u[BtX+=~0iҾgoWߥL6
@aG(fj|HLo>-hB]3A2w+oYa*Zy)\~o?;4a$+5swЯe'PX}6g4[/jcqN7͐ƇÎd"<cQVf`יK#!KG7g"aCF<FMCe}Xa/'u[sJ\Ӝg02]-:}N)db$A:IFhcMj[ca㾄tv;ZcڙKt.ZL=PueLUmnxJA2(TDlK
2C-2^]=B$Ѱκp;~k\[U:9 Ɩ Sn/CBur'K舀l6<?L*MZOs,?dêŔ6eK>=P&'kQ۫e @Lb3l6y6MIXW	zAmGvA&=BW)967ے	2v=YhE=}@ҖI3J	wiwax.l*^>NR5[jCWsR`:]-[)DaJ(HDAJ(HSDP)nGHX3j%-	-}SB5`N-_џ](!x늽sd)͜ڍ VjvBxN@ǃhA0HbTԃ+V!$xR҉6mlM4޽(Rr)f;ٷ믵RfG&*Z9 n-7	RUlAڬx.orY~z9B-f1
ywKu1W&7;~Es4 P7{-ywfyɫAzY(PۄeàR)]%NPBUm:hNK
}:*fAok!MmɄE"x´L?0]3?gKkC!K[&7g"aC#ewc,!>օ]H[AѰW9%vjN3HWKc)A:C:qN3wp;XxZIᖄ-vX:lܗ0] 挾)(
 |O<PJ:yS1x۠zZ}7˳Mh49C#8$,?4wr D&Y4yXBC "ĥ \\ ,Qx;ޥH&z<Eř%yESs@J\
@P M=xҼ]d2{jIh^JjQZN~zF'AKJ+ BxuYonF"j<%ii%)X*3Rs|+KK&3
{Mb&^YXYZd;'$%&g+q) A-W, q.pxwHC,ʓD'_`+I-**-(OIUR ZX. [!5x;z~kE|SSKKS2KK2ҡ%PD@
]R2SAbA%@}Q,D)AןXKvI-N.,(Gr@P~@&=1RUMc2$>H	sav)V嘒RZv*nU9A%V霑_WV[KfqANb%Cq+vKO{HeAjrr qFfx[if2]Γ/0Ke%&WNf-+q) A-W, 7xavCd9dË2KR]Ksr+ q5x{m{~X&s*%*Y){;d楤g槤:fVgddOfvNs
neJ\
@P r)uxGyfFɉ#YRRRRKK
JK\R2S3S'7rMbb bx=!q9LjF7J*0Nvd<RKK2K22@Ѐ̜"pI~VTL!Byy%b2቙%nE.IEJ\
@P ;U.sx[=K's*8
s'1

1r&(!KH%d楇THN^ďj 3BΉ99I٨gAQ*垚ZXZZ| B҂A9HN$$./@RD5~
 H47Nt5+0DD՜Eȃͻ@Q~QDՇQ&$5PP@nrPpIQjbgBs~^NTfMXTmZX G xKpC
dV^̒Լ58C2% 7X>8*3o"	sY}&gqSK
UM8(51EI+ {.nmx%Kh7'sO6`7+ t	
x;-}9dŝs2sR2J3K2236/d^;Bϙͳ'?9{r>H=craifQ*XPϋ;(5'5(-M-.NL$Rr}3K3R3',vNILIUR ZX. yc<?xZQo6~ϯ җD.08N"Nɠ%*Iݑ,%rM)кw>~<
n[$ O	w_ɻ'G슇rj&Z,""fH;!|')ͥ {d}t19ҐL35yYj$4T@7{i|>P00!oqِPh=1&}jf&6g[qop$'\iM'
;BB!A	+όĄg.elfT1tqmeR<=Xu *FnHwMۃN.}vwF:Q}"﻽aP-îS+49V9URKI,1aib1#cyŔ)׈#t)7ء;@V`y@ȱYJ#p3?/Hqtp	ƙtFhJKk3z12*Qv\S=1
Ã33oMv<
(F6L3`Д*:eAAU/9%$bAEcVՄ"[A~DL!"~e]Sv^  ~X&< 1ïX2.Uy aTO 
5zzlŃC+AKpQCѲi[ٖb@LoTHHQ5Ύ8|&g{@uHS2kæPٮ~d0sa[Ĥ}=n>^z``,bm"0lNqyil(`Tdۦadnk`'HLg|z xEn˜D~?j[Mj*>[n2Wo)SVl~c㟀|4f=K[gK@~Ĝ(1W	=&@ynHEFr dcU]=[F(bm"UW<{rlPr_֟Hݰ<G;uIIN0g^Eli29s8I	Sh:؄^qwanU%~}QlX&aXv̞3pdop#]P㳳ٰ?:[)Ep}k}lvK:Aθ	X):tdw0sb5`mMBvy`Ńv{IJY=OU~fE<t@Y&PȒo8uZzY6|Iq8GX%(`kSD	3jG|@xJH?bPn#\囧Ⲡ7+r3S;PWnmAO;p6ҁ"1whPꀭrYPj</fMyB&216ŗb$]ԡf_])44Q|EdX*wEyB6:K 94|;mwLTM[[ەh xcLx*#rRM(?K@i cj+}Eχg =y=^D_Pq\=pKkng-k`Ԃ[L-,Yfu+Z'm]Ks!:N	'w`f-Eeʍڅb~9VdZaJopʏ-W)
#6F%CDi\I>.hb]Њ׼\cBY=7uA,9%V',KsԉHdC"5rqY IĲ]lbM~UчrQ#[9ૺJx:Qj,!V+)%i'L0LӍYoyx{?d9ɉl¬y%֓#d6r* 	;xU]OAMЏ QQ05ʃEM4]٩A}1/O  |_`iЗif{=Z4! N=w-og5[@3VAaƜs3T-(?ԌIjfؠlcc,0bߊѣUpYS8CB){g6ziS^Xa+XFa`'ܔK18^W!E0Ot!ed%LN	!6jaI?/D.Oy#ɤ]1jAxl	1	Lˣ⏽ {w>--٘9L$u+ۊg2fTZ2\V"/JAY{YudJ׌ef"?3ƶ}c8Z])o̥H̹+FV4&lwأe}N<,w}~- " VnaTW%erAVag9	Pvv*]:LwI<Yv34}jdS((niU4|u\wHU	1g57BSB=|B|˥)=#ܹ{- yIG/8Ɋ(V\4<]pL[aZS䜦RRB0Vgh4GWfڌ6GKPc/CθC%VQa}~k5Ԓ.At@AFmanXbOOj|UK|VPYHCgD#^W^D,\kPx;_}ߕ$-x~mɦB̥ESKl=.-Ģ\W!$#L) y%yn1ON֚9h@*ؠb`'q)	άJU P5 `B풒H,I(ƗN6c+16/J+(_,14u&4\E *] )VOv^g9&Ey/.SZLцH+t`R~~ȵ|P<0ő,N !a2Ѕy87ͤ\ w&夂\&P"Lc̓1QƄTLiA5 񧽢xXQsں~>6M=sglmclWCNݕm `ZZLKշn삘"[J>)~s	ݐ"\0NzGV[ }x,&E3IԌ##޴'&s.Rrݾ"_KQy$Ps2	#9b"<%g	S0jTh_=X<?ds!	,3t:Ţjm!\wԴlϺ҄9p 1LSx!Er1QP2&湒|\79yoxk&pF>y4\װ}jyq=SǆoİoI<IVFc(!GptZSFND2&<ǈ 0m>*TιPsyƱS)cptTݷwcلxq	1frQ?+&'a'ִu1y_YY "m^baw<fQ̵=&%XD+X/mD;Ao\6޲΅^z\ؗyf[MHuxYlB6@l&xO#Ȟ`+cn;A%E3 <'^4擳KYi1g2TPˌ!E?\'CC$yE"iW/5}hu޳)ֶ:!xiJ'>7Zzg
>	Ip "Gzh 'O(`X"˄Tc;7GDW "<+g 0CP-<ݷWR	)Yt<jZ_C	/Ckz:2*

Oxαxae)K~۾:xOԣOKi`Q
I3)#8ץ$`=ya㞭1zQ<"db$b7:<F{HuG-O4Ar<Ǟoy~`}Rw3vDeYm$*2`rJWGC0n do}5wYptFx-{k14߼|]zVop4أD.9r%E=/&м.9l2+q)PPS\ pFEi&h	7ʝPo_Yٕ"QDhf'ž3ܩ~7$nX,.7%ąėx}0oQ|<)@zT{{S1$J@"g͋DKt#:v`)Ԏ)6-(_ٲZ}Nڦ|Am.AX'FCX'8h-}:~Z߈\v=ޥ\\l`}mù[E)'Em3P
\OujԾwu
!d4F-ʡτ+{s)Ne*$׻'EZִ&q"nC;0pWzan)SͷGksYz<T>nDO6RzZ^`DWoK"
t2J%gXzr<M	J%o|Fݬ
T
XR	+̆~=Iu
il؀ղELDVe2}&I0tCKںwF:o/a5p#P+jre /C^8T^yحo|Xmyth~.0}. IQ`G_-6y/{#uI}j~z8~Kx8A
Inހ1yT.^揚0;*RĞy0H~O ³(]qjV֛!nF\tIj`aai~ߜؒh|B:s	<cex[kmL( R<qrX=OeABnfqnbIr⮓s5كSR2'gKKIM|P܍q1t x:xt4)/*
 * Copyright (c) 2024   t!
/**
 * @addtogroup TransientTaskTransient task management.
 *
 * @since 13
 * @version 1.0
 */

/**
 * @file transient_task_api.h
 *
 * @brief Declares the API\s for Transient task management.
 *
 * @library libtransient_task.so
 * @kit BackgroundTasks 4ResourceSchedule.BackgroundTaskManager.TransientTaskOHOS_BACKGROUOND_TASK_MANAGER_TRANSIENT_TASK_API_H
#define OHOS_BACKGROUOND_TASK_MANAGER_TRANSIENT_TASK_API_H

#include <stdint%.h>

#include "transient_task_type.h"9#Requests a transient task.
 * 
 * @param reason Reason for requesting the transient task.
 * @param callback Callback used to notify the application that the transient task is about to time out. Generally, the
 *     callback is invoked 6 seconds before the timeout.
 * @param info Indicates the info of delay request.
 * @return <ul><li>{@link ERR_TRANSIENT_TASK_OK} 0 - Success.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_PARCEL_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_TRANSACTION_FAILED} 9800003 - Transact failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SYS_NOT_READY} 9800004 - System service not ready.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_CLIENT_INFOQ\} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SERVICEQA} 9900002 - Transient task verification failed.</li>
 *     </ul>ResourceSchedule.BackgroundTaskManager.TransientTask
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_RequestSuspendDelay(const char* reason,
    TransientTask_Callback callback, TransientTask_DelaySuspendInfo *info);

/**
 * @brief Obtains the remaining time of a transient task.
 * 
 * @param requestId Request ID of the transient task.
 * @param delayTime Pointer to the remaining time of the transient task, in ms.
 * @return <ul><li>{@link ERR_TRANSIENT_TASK_OK} 0 - Success.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_PARCEL_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_TRANSACTION_FAILED} 9800003 - Transact failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SYS_NOT_READY} 9800004 - System service not ready.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_CLIENT_INFOQ\} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SERVICEQA} 9900002 - Transient task verification failed.</li>
 *     </ul>ResourceSchedule.BackgroundTaskManager.TransientTask
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_GetRemainingDelayTime(int32_t requestId, int32_t *delayTime);

/**
 * @brief Cancels a transient task.
 * 
 * @param requestId Request ID of the transient task.
 * @return <ul><li>{@link ERR_TRANSIENT_TASK_OK} 0 - Success.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_PARCEL_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_TRANSACTION_FAILED} 9800003 - Transact failed.</li>
 *     <li>{@link ERR_TRANSIENTn_TASK_SYS_NOT_READY} 9800004 - System service not ready.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_CLIENT_INFOQ\} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SERVICEQA} 9900002 - Transient task verification failed.</li>
 *     </ul>ResourceSchedule.BackgroundTaskManager.TransientTask
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_CancelSuspendDelay(int32_t requestId);

/**
 * @brief Obtains all information about a transient task, including the remaining quota of the current day.
 * 
 * @param transientTaskInfo All information about a transient task. For details, see
 *     {@link TransientTask_TransientTaskInfo}.
 * @return <ul><li>{@link ERR_TRANSIENT_TASK_OK} 0 - Success.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_CLIENT_INFOQ} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_PARCELABLE_FAILED} 9900003 - Failed to write data into parcel.</li>
 *     <li>{@link ERR_TRANSIENT_TASK_SERVICE_NOT_READY} 9900004 - System service operation failed.</li>
 *     </ul>
 * @since 20
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_GetTransientTaskInfo(TransientTask_TransientTaskInfo *transientTaskInfo)/** @} */
#endif
8~Yx6lᒸ~HFBJfqIQfRiIf~BIeAB~BbAANfr"X,X!3,1'3er38]<C<BC<C"\'O( @<x}ROAMRX0N4IC $ŨfvwNL1y ɗ71<?<zQ/{{}ߋo? 6.eWAAu(XuS/́E6\>g	3,M>.tzKs0pq>ĥ
Un1XĐ"B5zXaLȮsWɾ%ٵ:@"B^WfZ\j`˃OqxoWcaPI±mHm`<>^=Qp32/HcqO	8:f0{m]ᡟ&8YC9t'٠V|7QG+UidL3L2gѵB>0^qGt<)QGV޽kR=JXa.S	'cw+)(VM9ùamk$}>X26cn*M/O,R򊹔w	s:؜^KHx,(74cku>ڿ{QcTgxTMOSAj)RX zCBWl%1!2q:23B	ǘw?ƽw^yt:{ι|y9(3P3W׷(SE5<JIEG*쬆°:C2}{bbܯ U0)@G^0iIͥ+Tՙ֠՘׬Q#now)TDpC@SCD_S96NEUђzN} M 2$is<q>V4 Tz}wkezD8*0DF~2wÇR<p-m%w]CUBCS(bUɣ P݁?݅gνÔ_9Ѷrs	r鳼Rq;0'8UDRI&?\
!͕NdʌcQFDvg|~ðn۷64f{CCфVӹg2HA lb۝ϲܰ=
\v!֫/&ahPx[Jg i0:3P|일r= hCq
feim4Q(ln;wMNY5GrsMؚkk;r|7* -F/[(k<?ԛT?~<*k<xAaI?!\RxWrF2YE3223rR2s2K*'ryxy{:**l"EźũE
%E%
@Af7lyt j'2x۠gFzĒ̲xҼT.-j 	f$e)'e&+d*@+@Tg%*9eEřy
z@>DUZfNBXg|nb^bzjQdof;]i!9IEE
@)/%[j.fzT[Qbnjy~Qs~Q*PLK)55(/ރK(Sd H|t0&#Y'wrs+MNC>5pr9??p!_l@gO~#MyVEZNo'˅ >l$x+D|C/e, '!xuN@A&FLHt$=-R+]H8mڲ"]H'M$b[CT沇{e5^Ujoa:[9G>7\T#i>3JvZĐ҂3Jzɓ	؎r09tmdXkwUJLM.s2_{[;7 C1zJZ1h®S鈃;[|
Pχ)7Q1w턾JM((rjY=a#ZoDbsm'OC"ۃͫS? sXxkop|!`~,0Kk
o9ToT]_T3$ x	)a5TYPE+8TYPE_H_)'f
 management./"Atype.h
 *
 * @brief Defines the data structures for the C APIs ofS1
 */

#include <stdint.h>8Defines the maximum number of transient tasks at the same time.
 * 
 * @since 20
 */
#define TRANSIENT_TASK_MAX_NUM 3

/**
 * @.brief Enumerates the error codes available for	since 13
 */
typedef enum TransientTask_ErrorCode {
    /**
     * Operation successful.
     *
     * @since 13
     */
    ERd = 0,
    /**
     * Parameter check failed. Possible causes: 1. Mandatory parameters are not passed. 2. Incorrect parameter ty(pes.
     *
     * @since 13
     */
   
!^ = 401,
    /**
     * Parcel read/write operation failed.
     *
     * @since 13
     */
   
J = 9800002,
    /**
     * IPC failed.
     *
     * @since 13
     */
   
U = 9800003,
    /**
     * System service failed.
     *
     * @since 13
     */
   
B = 9800004,
    /**
     * Failed to verify the client information0"    *
     * @since 13
     */
   
B = 9900001,
    /**
     * Failed to verify the server information0"    *
     * @since 13
     */
   
PA = 9900002,
    /**
     * Parcel read/write operation failed fora
. Possible causes:
     *     1. The parameter is invalid.
     *     2. Memory allocation fails.
     *
     * @since 13
     */
   
`ABLE_FAILED = 9900003,
    /**
     * System service failed.
     *
     * @since 13
     */
   
P	Z = 9900004,
} TransientTask_ErrorCode;

/**
 * @brief A struct that describes the returned-% The struct returns the ID and
 *O
%
4typedef struct	 {
    /**
     * Request ID	    *
     * @since 13
     */
    int32_t requestId;
    /**
     * Remaining time, in ms.
     *
     * @since 13
     */
    int32_t actualDelayTime;
}	;

/**
 * @brief A struct that describes all transient task information. The struct returns all transient task information,
 * :,typedef structp  {
    /**
     * R!, in ms.
     *
     * @since 20
     */
    int32_t remainingQuota;
    /** The info of delay suspend
     *
     * @since 20
     */
   	 )transientTasks[TRANSIENT_TASK_MAX_NUM];
}p ;

/**
 * @brief Defines a callback for transient task timeout.
 * 
 * @since 13
 */
typedef void (*TransientTask_Callback)(void1o-x	!2/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.0CsD+
 *2
 *GaELG9"
 */

/**
 * @{
 *'Transient task management.
 *
 * @since 13
 * @version 1.0
 */

/**
 * @file transient_task_api.h
 *
 * @brief Declare.s the APIs for Transient task management.
 *!
 * @kit BackgroundTasksKitQ
 * @since 13
 */
`6API_H6API_H

#include <stdint.h>

#include "transient_task_type.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 申请短时任务。
 *
 * @param reason 申请短时任务的原因。
 * @param callback 短时任务即将超时的回，一般在超时前6秒，通过此回调通知应用。
 * @param info 返回短时任务信息。
 * @return 返回0，示申请成功。
 *     返回401，表示入参错误。
 *     返回9800002，表示Parcel读写操作失败。
 *     返回9800003，表示IPC通信失败。
 *     返回9800004，表示系统服务失败。
 *     返回9900001，表示时任务客户端信息校验失败。
 *     返回9900002，表示短时任务服务端校验失败。
 *     错误码具体信息请参考{@link5}。
 * @since 13
 * @version 1.0
 */
int32_t OH_?._RequestSuspendDelay(const char* reason,
    
 callback, *info);

/**
 * @brief 获取本次短时任务的剩余时间。
 *
 * @param requestId 短时任务的请求ID。
 * @param delayTime 短时任务的剩余时间，单位：ms。
 * @return 返回0，表示查询成功。
 *     返回401，表示入参错误。
 *     返回9800002，表示Parcel读写操作失败。
 *     返回9800003，表示IPC通信失败。
 *     返回9800004，表示系统服务失败。
 *     返回9900001，表示短时任务客户端信息校验失败。
 *o     返回9900002，表示短时任务服务端校验失败。
 *     错误码的具体信息请参考{@link5}。
 * @since 13
 * @version 1.0
 */
int32_t OH_?_GetRemainingDelayTime(int32_t requestId, int32_t *delayTime);

/**
 * @brief 取消短时任务。
 *
 * @param requestId 短时任务的请求ID。
 * @return 返回0，表示取消成功。
 *     返回401，表示入参错误。
 *     返9800002，表示Parcel读写操作失败。
 *     返回9800003，表示IPC通信失败。
 *     返回9800004，表示系统服务失败。
 *     返回9900001，表示短时任务客户端信息校验失败。
 *     返回9900002，表示短O任务服务端校验失败。
 *     错误码的具体信息请参考{@link5}。
 * @since 13
 * @version 1.0
 */
int32_t OH_?_CancelSuspendDelay(int32_t requestId);

/**
 * @brief 获取所有短时任务信息，如当日剩余总配额等。
 *
L * @param transientTaskInfo 所有短时任务信息，具体请参考{@link* }。
 * @return 返回0，表示获取成功。
 *     返回9900001，表示短时任务客户端信息校验失败。
 *     返回9900003，表示Parcel读写操作失败。
 *     返回9900004，表示系统服务失败。
 *     错误码的体信息请参考{@link5}。
 * @since 20
 * @version 1.0
 */
int32_t OH_?_GetTransientTaskInfo(+K *transientTaskInfo);

#ifdef __cplusplus
}
#endif
/** @} */
#endif
(&x	!p5TYPEO9TYPE_Hl.(transient task management.&Rtype.h
 *
 * @brief Defines the data structures for the C APIs of transient taskk1
 */9同一时刻最大短时任务数量。
 * 
 * @since 20
 */
#define TRANSIENT_TASK_MAX_NUM 3

/**
 * @brief 定义短任务错误码。
 * typedef enum {
    /**
     * 成功。
     *
     * @since 13
     */
    ERR_TRANSIENT_TASK_OK = 0,
    /**
     * 参数检查败。可能原因：1.必选参数没有传入。2.参数类型错误。
     *
     * @since 13
     */
    ERR_TRANSIE.NT_TASK_INVALID_PARAM = 401,
    /**
     * 	
     *
     * @since 13
     */
    ERR_TRANSIENT_TASK_PARCEL_FAILED = 9800002,
    /**
     * IPC通信失败。
     d*
     * @since 13
     */
    ERR_TRANSIENT_TASK_TRANSACTION_FAILED = 9800003,
    /**
     * c    *
     * @since 13
     */
    ERR_TRANSIENT_TASK_SYS_NOT_READY = 9800004,
    /**
     * -    *
     * @since 13
     */
    ERR_TRANSIENT_TASK_CLIENT_INFO_VERIFICATION_FAILED = 9900001,
    /**
     * 短时任T    *
     * @since 13
     */
    ERR_TRANSIENT_TASK_SERVICE_VERIFICATION_FAILED = 9900002,
    /**
     * 短时任务Pa	可能原因：1.参数非法。2.申请内存失败。
     *
     * @since 13
     */
    ERR_TRANSIENT_TASK_PARCELABLE_F"AILED = 9900003,
    /**
     * X    *
     * @since 13
     */
    ERR_TRANSIENT_TASK_SERVICE_NOT_READY = 9900004,
};

/**
 * @brief 定义短时任务返回信息结构体。用于返回当前短时任务的任务ID和剩余时间。
 * %typedef structN {
    /**
     * 短时任务请求ID。
     *
     * @since 13
     */
    int32_t requestId;
    /**
     * 剩余Y间。单位：ms。
     *
     * @since 13
     */
    int32_t actualDelayTime;
}N;

/**
 * @brief 定义所有短时任务信息结构体。用于返回当日剩余总配额和已申请的所有短时任信息。
 * &typedef struct TransientTask_TransientTaskInfo {
    /**
     * 当日剩余总配额。单位：ms。
     *
     * @since 20
     */
    int32_t remainingQuota;
    /** 已申请的所有短时任务信息。包括短时任务请求ID、剩余=间。单位：ms。
     *
     * @since 20
     */
   N transientTasks[TRANSIENT_TASK_MAX_NUM];
} TransientTask_TransientTaskInfo;

/**
 * @brief 定义短时任务超时回调类型。
 * typedef void (*.)(void8E_9rxC 3)用实际申请的短时任务时间，A
     j$Rx	 0/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.2CvD+
 *2
 *"GjELGE"
 */
o<<

/**
 * @{
AH
 * @since 13
 * @version 1.0
 */

/**
 * @file transient_task_type.h
 *H
 *!
 * @kit BackgroundTasksKit3Q'
 * @since 11
 */

#include <stdint.h>

extern "C" {
#endif

/**
 * @brief Defines the maximum number of transient tasks at the same time.
 * 
 * @since 20
 */
#defin4_

/**
 * @brief Enumerates the error codes available for a transient task.
 * 
 * @since 13
 */'E
    /**
     * Operation successful.
     *
     * @since 13
     */
    /**
     * Parameter check failed. Possible causes: 1. Mandatory parameters are not passed. 2. Incorrect parameter types.
     *
     * @since 13
     */S
    /**
     * Parcel read/write operation failed.
     *
     * @since 13
     */=;
    /**
     * IPC failed.
     *
     * @since 13
     */F
    /**
     * System service failed.
     *
     * @since 13
     */5
    /**
     * Failed to verify the client information of the transient task.
     *
     * @since 13
     */
    ERR_TRANSIEN*
    /**
     * Failed to verify the server information of the transient task.
     *
     * @since 13
     */
    ERR_TRANSIENa	&
    /**
     * Parcel read/write operation failed for the transient task. Possible causes:
     *     1. The parameter is invaKlid.
     *     2. Memory allocation fails.
     *
     * @since 13
     */3
F
    /**
     * System service failed.
     *
     * @since 13
     */



/**
 * @brief A struct that describes the returned information about a transient task. The struct returns the ID and
 * remaiEning time of the transient task.
 * 
 * @since 13
 * @version 1.0
 */ {
    /**
     * Request ID of a transient task.
     *
     * @since 13
     */
    int32_t requestId;
    /**
     * Actual duration of the transient task requested by the application, in milliseconds.
     *
     * @since 13
     */
    int32_t actua"

/**
 * @brief A struct that describes all transient task information. The struct returns all transient task information,
 * iUncluding the remaining quota of the current day.
 * 
 * @since 20
 * @version 1.0
 */1Z
    /**
     * Remaining quota of the current day, in ms.
     *
     * @since 20
     */B
    /** The info of delay suspend
     *
     * @since 20
     */K
} T;

/**
 * @brief Defines a callback for transient task timeout.
 * 
 * @since 13
 */.

}
#endif
/** @} */
#endif
_	x4  acwu6Remaining time, in ms&$lCxy	2/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.0CsD+
 *2
 *GaELG9"4
 */

/**
 * @addtogroup TransientTask
 * @{
A,
 * @since 13
 * @version 1.0
 */

/**
 *H
 *\!}Q
 * @since 11
 */
<7<

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 同一时刻最大短时任务数量。
  * 
 * @since 20
 */
#define L 3

/**
 * @brief 定义短时任务错误码。
 * 
 * @since 13
 */'?
    /**
     * 成功。
     *
     * @since 13
     */
    /**
     * 参数检查失败。可能原因：1.必选参数没有传入。2.参数类型错误。
     *
     * @since 13
     */N
    /**
     * Parcel读写操作失败
     *
     * @since 13
     */
ZH
    /**
     * IPC通信失败。
     *
     * @since 13
     */K
    /**
     * 系统服务失败。
     *
     * @since 13
     */p	;`
    /**
     * 短时任务客户端信息校验失败。
     *
     * @since 13
     */BZ
    /**
     * 短时任务服务端校验失败。
     *
     * @since 13
     */p	>
    /**
     * 短时任务Parcel读写操作失败。可能原因：1.参数非法。2.申请内存失败。
     *
     * @since 13
     */
K
    /**
     * 系统服务失败。
     *
     * @since 13
     */p	 
};

/**
 * @brief 定义短时任务返回信息结构体。用于返回当前短时任务的任务ID和剩余时间。
 * $
 * @since 13
 * @version 1.0
 */0
    /**
     * 短时任务请求ID。
     *
     * @since 13
     */
    int32_t requestId;
    /**
     * 应用实S际申请的短时任务时间，单位：ms。
     *
     * @since 13
     */
};

/**
 * @brief 定义所有短时任务信息结构体。用于返回当日剩余总配额和已申请的所有短时任4信息。
 * 
 * @since 20
 * @version 1.0
 */1\
    /**
     * 当日剩余总配额。单位：ms。
     *
     * @since 20
     */
    /*
     * 已申请的所有短时任务信息。包括短时任务请求ID、剩余时间。单位：ms。
     *
     * @since 20
     */K(#S

/**
 * @brief 定义短时任务超时回调类型。
 * 
 * @since 13
 */.6

#ifdef __cplusplus
}
#endif
/** @} */
#endif
@)x4)0/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.2CvD+
 *2
 *"GjELGE"/
 */

/**
 * @addtogroup TransientTask
 * @{
 *'Transient task management.
 *
 * @since 13
 * @version 1.0
 */

/**
 * @file transient_task_api.h
 *
 * @brief Declares the API#s for Transient task management.
 *y!Q
 * @since 13
 */
6API_H[6=API_H

#include <stdint.h>

#include "transient_task_type.h"

extern "C" {
#endif

/**
 * @brief Requests a transient task.
 * 
 * @param reason Reason for requesting the transient task.
 * @param callback Callback used to notify the application that the transient task is about to time out. Generally, the
 *     callback is invoked 6 seconds before the timeout.
 * @param info Indicates the info of delay request.
 * @return <ul><li>{@link 'OK} 0 - Success.</li>
 *     <li>{@link>INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link=5} 9800002 - Parcelable failed.</li>
 *     <li>{@link&3} 9800003 - Transact failed.</li>
 *     <li>{@link!!<} 9800004 - System service not ready.</li>
 *     <li>{@link3A} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link!b	A} 9900002 - Transient task verification failed.</li>
 *     </ul>Qo
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_RequestSuspendDelay(const char* reason,
    
 callback, *info);

/**
 * @brief Obtains the remaining time of a transient task.
 * 
 * @param requestId Request ID of the transient taslk.
 * @param delayTime Pointer to the remaining time of the transient task, in ms.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@link>INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link=5} 9800002 - Parcelable failed.</li>
 *     <li>{@link&3} 9800003 - Transact failed.</li>
 *     <li>{@link!!<} 9800004 - System service not ready.</li>
 *     <li>{@link3A} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link!b	A} 9900002 - Transient task verification failed.</li>
 *     </ul>Q
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_GetRemainingDelayTime(int32_t requestId, int32_t *delayTime);

/**
 * @brief Cancels a transient task.
 * 
 * @param requestId Request ID of the transient task.
 * @return <ul><li>{@link 'OK} 0 - Success.</li>
 *     <li>{@link>INVALID_PARAM} 401 - Invalid parameter.</li>
 *     <li>{@link=5} 9800002 - Parcelable failed.</li>
 *     <li>{@link&3} 9800003 - Transact failed.</li>
 *     <li>{@link!!<} 9800004 - System service not ready.</li>
 *     <li>{@link3A} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link!b	A} 9900002 - Transient task verification failed.</li>
 *     </ul>Q
 * @since 13
 * @version 1.0
 */
int32_t OH_BackgroundTaskManager_CancelSuspendDelay(int32_t requestId);

/**
 * @brief Obtains all information about a transient task, including the remaining quota of the current day.
 *
 * @param transientTaskInfo All Binformation about a transient task. For details, see
 *     {@link }.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@link3A} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link3
D} 9900003 - Failed to write data into parcel.</li>
 *     <li>{@link!ERVICE_NOT_READY} 9900004 - System service operation failed.</li>
 *     </ul>
 * @since 20
 * @version 1.0
 */
int32_t OH_Back'groundTaskManager_GetTransientTaskInfo( *transientTaskInfo);

}
#endif
/** @} */
#endif
nrN[x	)'f
 management./"Atype.h
 *
 * @brief Defines the data structures for the C APIs ofS1;TYPE+8TYPE_H

#include <stdint.h>8Defines the maximum number of transient tasks at the same time.
 *
 * @since 20
 */
#define TRANSIENT_TASK_MAX_NUM 3

/**
 * @b-rief Enumerates the error codes available for	since 13
 */
typedef enum TransientTask_ErrorCode {
    /**
     * Operation successful.
     *
     * @since 13
     */
    ERd = 0,
    /**
     * Parameter check failed. Possible causes: 1. Mandatory parameters are not passed. 2. Incorrect parameter ty(pes.
     *
     * @since 13
     */
   
!' = 401,
    /**
     * Parcel read/writ$
     *
     * @since 13
     */
   
J = 9800002,
    /**
     * IPC failed.
     *
     * @since 13
     */
   
U = 9800003,
    /**
     * System service failed.
     *
     * @since 13
     */
   
B = 9800004,
    /**
     * Failed to verify the client information0"    *
     * @since 13
     */
   
B = 9900001,
    /**
     * Failed to verify the server information0"    *
     * @since 13
     */
   
PA = 9900002,
    /**
     * Parcel read/write operation failed fora
. Possible causes:
     *     1. The parameter is invalid.
     *     2. Memory allocation fails.
     *
     * @since 13
     */
   
`ABLE_FAILED = 9900003,
    /**
     * System service failed.
     *
     * @since 13
     */
   
P	Z = 9900004,
} TransientTask_ErrorCode;

/**
 * @brief A struct that describes the returned,% The struct returns the ID and
 *O
%
4typedef struct	 {
    /**
     * Request ID	    *
     * @since 13
     */
    int32_t requestId;
    /**
     * Remaining time, in ms.
     *
     * @since 13
     */
    int32_t actualDelayTime;
}	;

/**
 * @brief A struct that describes all transient task information. The struct returns all transient task information,
 * 4 &"typedef structo  {
    /**
     * R!, in ms.
     *
     * @since 20
     */
    int32_t remainingQuota;
    /** The info of delay suspend
     *
     * @since 20
     */
   	 )transientTasks[TRANSIENT_TASK_MAX_NUM];
}o ;

/**
 * @brief Defines a callback for transient task timeout.
 * 
 * @since 13
 */
typedef void (*TransientTask_Callback)(void1x[) *'T?*api.h
 *
 * @brief Declares the APIs for T\3;API58APIqnclude "transient_task_type.h"8RequestsQ*
 * @param reason Reason for requesting the transient task.
 * @param callback Callback used to notify the application that the transient task is about to time out. Generally, the
 *     callback is invoked 6 seconds before the timeout.
 * @param info I=ndicates the info of delay request.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@link!1} 401 - Invalid parameter.</li>
 *     <li>{@link
<_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link3} 9800003 - Transact failed.</li>
 *     <li>{@link9<} 9800004 - System service not ready.</li>
 *     <li>{@linkA} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link	A} 9900002 - Transient task verification failed.</li>
 *     </ul>]mint32_t OH_BackgroundTaskManager_RequestSuspendDelay(const char* reason,
    TransientTask_Callback callback, 1*info);

/**
 * @brief Obtains the remaining timeNZ*
 * @param requestId Request ID of the transient task.
 * @param delayTime Pointer to the%", in ms.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@link!1} 401 - Invalid parameter.</li>
 *     <li>{@link
<_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link3} 9800003 - Transact failed.</li>
 *     <li>{@link9<} 9800004 - System service not ready.</li>
 *     <li>{@linkA} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link	A} 9900002 - Transient task verification failed.</li>
 *     </ul>]int32_t OH_BackgroundTaskManager_GetRemainingDelayTime(int32_t requestId, int32_t *delayTime);

/**
 * @brief Cancels a transie[
Q*
 * @param requestId Request ID of the transient task.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@link!1} 401 - Invalid parameter.</li>
 *     <li>{@link
<_FAILED} 9800002 - Parcelable failed.</li>
 *     <li>{@link3} 9800003 - Transact failed.</li>
 *     <li>{@link9<} 9800004 - System service not ready.</li>
 *     <li>{@linkA} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link	A} 9900002 - Transient task verification failed.</li>
 *     </ul>]bint32_t OH_BackgroundTaskManager_CancelSuspendDelay(int32_t requestId);

/**
 * @brief Obtains allt#,5 
 * @param transientTaskInfo Allt%For details, see
 *     {@link) }.
 * @return <ul><li>{@link'OK} 0 - Success.</li>
 *     <li>{@linkA} 9900001 - uid or pid info verify failed.</li>
 *     <li>{@link
D} 9900003 - Failed to write data into parcel.</li>
 *     <li>{@link	K} 9900004 - System service operation failed.</li>
 *     </ul>
 * @since 206int32_t OH_BackgroundTaskManager_GetTransientTaskInfo(* *transientTaskInfo1kx	)'transient task management.?Atype.h
 *
 * @brief Defines the data structures for the C APIs ofX1;TYPE+8TYPE_H

#include <stdint.h>8Defines the maximum number of transient tasks at the same time.
 *
 * @since 20
 */
#define TRANSIENT_TASK_MAX_NUM 3

/**
 * @b-rief Enumerates the error codes available forsince 13
 */
typedef enum TransientTask_ErrorCode {
    /**
     * Operation successful.
     *
     * @since 13
     */
    EROK = 0,
    /**
     * Parameter check failed. Possible causes: 1. Mandatory parameters are not passed. 2. Incorrect parameter *types.
     *
     * @since 13
     */
   }^ = 401,
    /**
     * Parcel read/write operation failed.
     *
     * @since 13
     */
   !!J = 9800002,
    /**
     * IPC failed.
     *
     * @since 13
     */
   &U = 9800003,
    /**
     * System service failed.
     *
     * @since 13
     */
   B = 9800004,
    /**
     * Failed to verify the client information-"    *
     * @since 13
     */
   B = 9900001,
    /**
     * Failed to verify the server information-"    *
     * @since 13
     */
   /A = 9900002,
    /**
     * Parcel read/write operation failed for0 Possible causes:
     *     1. The parameter is invalid.
     *     2. Memory allocation fails.
     *
     * @since 13
     */
   !`ABLE_FAILED = 9900003,
    /**
     * System service failed.
     *
     * @since 13
     */
   	Z = 9900004,
} TransientTask_ErrorCode;

/**
 * @brief A struct that describes the returned#". The struct returns the ID and
 *M
%	typedef struct	 {
    /**
     * Request ID of a transient task.
     *
     * @since 13
     */
    int32_t requestId;
    /**
     * RemaininMg time, in ms.
     *
     * @since 13
     */
    int32_t actualDelayTime;
}	;

/**
 * @brief A struct that describes all transient task information. The struct returns all transient task information,
 * 9(typedef structl  {
    /**
     * R!, in ms.
     *
     * @since 20
     */
    int32_t remainingQuota;
    /** The info of delay suspend
     *
     * @since 20
     */
   	 )transientTasks[TRANSIENT_TASK_MAX_NUM];
}l ;

/**
 * @brief Defines a callback for transient task timeout.
 *
 * @since 13
 */
typedef void (*TransientTask_Callback)(void1"-x	}2/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.0CsD+
 *2
 *GaELG9"4
 */

/**
 * @addtogroup TransientTask
 * @{
A,
 * @since 13
 * @version 1.0
 */

/**
 *H
 *\!}Q
 * @since 11
 */
<7<

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 同一时刻最大短时任务数量。
 *
 * @since 20
 */!I

/**
 * @brief 定义短时任务错误码。
 *
 * @since 13
 */'?
    /**
     * 成功。
     *
     * @since 13
     */ OK = 0,
    /**
     * 参数检查失败。可能原因：1.必选参数没有传入。2.参数类型错误。
     *
     * @since 13
     */ N
    /**
     * Parcel读写操作失败
     *
     * @since 13
     */ 
XH
    /**
     * IPC通信失败。
     *
     * @since 13
     */ K
    /**
     * 系统服务失败。
     *
     * @since 13
     */ 0`
    /**
     * 短时任务客户端信息校验失败。
     *
     * @since 13
     */ *Z
    /**
     * 短时任务服务端校验失败。
     *
     * @since 13
     */
 	
    /**
     * 短时任务Parcel读写操作失败。可能原因：1.参数非法。2.申请内存失败。
     *
     * @since 13
     */ 
K
    /**
     * 系统服务失败。
     *
     * @since 13
     */
4
};

/**
 * @brief 定义短时任务返回信息结构体。用于返回当前短时任务的任务ID和剩余时间。
 *
# * @since 13
 * @version 1.0
 */ M
    /**
     * 短时任务请求ID。
     *
     * @since 13
     */
    /**
     * 应用实际申请的短时任务时间，单位：ms。
     *
     * @since 13
     */
    int32_t actu
};

/**
 * @brief 定义所有短时任务信息结构体。用于返回当日剩余总配额和已申请的所有短时任3信息。
 *
 * @since 20
 * @version 1.0
 */1\
    /**
     * 当日剩余总配额。单位：ms。
     *
     * @since 20
     */{
    /*
     * 已申请的所有短时任务信息。包括短时任务请求ID、剩余时间。单位：ms。
     *
     * @since 20
     */
    '
} S;

/**
 * @brief 定义短时任务超时回调类型。
 *
 * @since 13
 */.6

#ifdef __cplusplus
}
#endif
/** @} */
#endif
uxI/*
 * Copyright (C) 2025ֱ{pAVImageGenerator
 * @{
 *
 * @brief Provides APIs for generating an image at a specific time from a video resource.
 *
 * ZMultimedia.Media.AVImageGenerator
 * @since 18
 */
/**
 * @file avimage_generator.h
 AVImageGenerator接口。使用其C API从视频资源中获取指定时间点视频帧。
 * 
 * @kit MediaKit
 * @library libavimage_generator.so
 * @since 18
 */

#ifndef MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVIMAGE_GENERATOR_H
#define MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVIMAGE_GENERATOR_H

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "native_averrors.h"
#include "avimage_generator_base.h"
#include "multimedia/image_framework/image/pixelmap_native.h"

#ifdef __c2OH_AVImageGenerator类型，用于生成指定时间点视频帧。
 * 
 * @since 18
 */
typedef struct OH_AVImageGenerator OH_AVImageGenerator;

/**
 * @brief 创建OH_AVImageGenerator实例，用于生成指定时间点视频帧。
 * 
 * @return 创建成功时返回指向OH_AVImageGenerator实例的指针，否则返回空指针。
 * 可能的失败原因：HstEngineFactory未能创建AVMetadataHelperEngine。
 * @since 18
 */
OH_AVImageGenerator* OH_AVImageGenerator_Create(void);

/**
 * @brief 通过媒体文件描述符设置数据源。
 * 
 * @param generator 指向OH_AVImageGenerator实例的指针
 * @param fd 媒体源的文件描述符。
 * @param offset 媒体源在文件描述符中的偏移量。
 * @param size 媒体源的大小。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入的generator为空指针或参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作被禁止。
 * AV_ERR_NO_MEMORY：内部内存分配失败。
 * @since 18
 */
OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator,
    int32_t fd, int64_t offset, int64_t size);

/**
 * @brief 从视频资源中获取指定时间点视频帧。
 * 
 * @param generator 指向OH_AVImageGenerator实例的指针。
 * @param timeUs 需要获取的视频帧在视频中的时间点，单位为微秒（μs）。
 * @param options 关于给定时间Us和视频帧之间关系的时间选项。
 * @param pixelMap 获取的视频帧对象。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入的generator为空指针或参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作被禁止。
 * AV_ERR_UNSUPPORTED_FORMAT：格式不支持。
 * AV_ERR_NO_MEMORY：内部内存分配失败
 * @since 18
 */
OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator,
    int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative** pixelMap);

/**
 * @brief 释放用于OH_AVImageGenerator的资以及销毁OH_AVImageGenerator实例。
 * 
 * @param generator 指向OH_AVImageGenerator实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入的generator为空指针或参数无效。
 * @since 18
 */
OH_AVErBrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator);Z}
#endif

#endif // MULTIMEDIA_PLAYER_FRAMEWORK_NATIVE_AVIMAGE_GENERATOR_H
/** @} */
C`1Fxthe_basek(	的枚举BASElABASE_H

#include <stdint.h>q?6指定时间点与视频帧对应关系的枚举类型%enum!8{
    /**
     * 此选项用于选取传入时间点或之后的关键帧。
     */
    OH_AVIMAGE_GENERATOR_QUERY_NEXT_SYNC = 0,
    /**
     * 此选项用于选取传入时间点或之前的关键帧。
     */
    OH_AVIMAGE_GENERATOR_QUERY_PREVIOUS_SYNC = 1,
    /**
     * 此选项用于选取离传入时间点最近的关键帧。
     */
    OH_AVIMAGE_GENERATOR_QUERY_CLOSEST_SYNC = 2,
    /**
     * 此选项用于选取离传入时间点最近的帧，该帧不一定是关键=。
     */
    OH_AVIMAGE_GENERATOR_QUERY_CLOSEST = 3,
}!8;q/&METADATA_EXTRACTOR_BASE_H
/** @} */
8Y#$$xC	MediaBaseDefines the structure and enumeration for AVMedia.
 *
 * @since 23
 */
/**
 * @file avmedia_base.h
 * 
 * @brief 定义AVMedia的结构体和media_base.so/Core
 * @since 236MEDIA56'MEDIA_BASE_H

#include "avmetakeys.h"N和2D23
 */
 typedef enum OH_AVMedia_SeekMode {
    /**
     * 表示%3MEDIA_SEEK_NEXT_SYNC = 0,

    /**
     * 表示A7MEDIA_SEEK_PREVIOUS_SYNC = 1,

    /**
     * 表示A
MEDIA_SEEK
    /**
     * 表示"57
MEDIA_SEEKMedia_SeekModeUDIA_BASE_H
/** @} */
h Rx)NZ`tadataExtractor
 * @{
 *
 * @brief Provides APIs of metadata capability for Media Source.
 *z/AVMetadataExtractor
 * @since 18
 */
/**
 * @file avmetadata_extractor.h
 *
 * @brief 定义AVMetadataExtractor接口。3用其Native API从媒体资源中获取元数据@/!tadata_extractor.so
 * @since 188TADATA_EXTRACTOR3TADATA_EXTRACTOR_H

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "native_averrors.h"
#include "avmetadata_extractor_base.h"
#include "native_avcodec_base.h"
#include "native_avformat.h"
#include "multimedia/image_frameworOk/image/pixelmap_native.h"
#include "avmedia_source.h"
#include "avmedia_baseP3-
/**
 * @brief 定义OH_AVMetadataExtractor18
 */
typedef struct OH_AVMetadataExtractor OH_AVMetadataExtractor;

/**
 * @brief 从媒体源中获取指定索引的道描述信息。该函数必须在设置资源之后使用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例指针。
 * @param index 要获取的轨道描述的索引。
 * @return 成功时返回包含轨道描述信息的OH_AVFormat实例指针，失败时返回空指针。
 * 可能失败的原因：
 * 1. extractor为空指针。
 * 2. 未设置媒源。
 * 3. 格式不支持。
 * 注意：用户需要使用{@link OH_AVFormat_Destroy}在使用OH_AVFormat后将其释。
 * @since 23
 */
OH_AVFormat *OH_AVMetadataExtractor_GetTrackDescription(OH_AVMetadataExtractor *extractor, uint32_t index);

/**
 * @brief 从媒体源中获取自定义元数据信息。该函数必须在设置资源之后使用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @return 成功时返回包含自定义元数据的OH_AVFormat实例指针，失败时返回空指针。
 * 可能失败的原因：
 * 1. extractor为空指针。
 * 2. 未设置媒源。
 * 3. 未找到自定义信息。
 * 注意：用户需要使用{@link OH_AVFormat_Destroy}在使用OH_AVFormat后将其释放。
 * @since 23
 */
OH_AVFormat *OH_AVMetadataExtractor_GetCustomInfo(OH_AVMetadataExtractor *extractor);

/**
 * @brief 为提取器设置媒体源。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param source 要设置的媒体源。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：输入的extractor为空指针或输入的source无效。
 * @since 23
 */
OH_AVErrCode OH_AVMetadataExtractor_SetMediaSource(OH_AVMetadataExtractor *extractor, OH_AVMediaSource *source);

/**
 * @brief 创建OH_AVMetadataExtractor实例。
 * 
 * @return 创建成功时返回指向OH_AVMetadataExtractor实例的指针，否则返回空指针。
 * 可能的失败原因：HstEngineFactory::CreateAVMetadataHelperEngine执行失败。
 * @since 18
 */
OH_AVMetadataExtractor* OH_AVMetadataExtractor_Create(void);

/**
 * @brief 通过媒体文件描述符设置数据源。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param fd 媒体源的文件描述符。
 * @param offset 媒体源在文件描述符中的移量。
 * @param size 媒体源的大小。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL： 输入的extractor为空指针或参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作被禁止。
 * AV_ERR_NO_MEMORY：内部内存分失败。
 * @since 18
 */
OH_AVErrCode OH_AVMetadataExtractor_SetFDSource(OH_AVMetadataExtractor* extractor,
    int32_t fd, int64_t offset, int64_t size);

/**
 * @brief 从媒体资源中获取元数据。
 * 此函数必须在{@link OH_AVMetadataExtractor_SetFDSource}之后调用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param avMetadata 指向OH_AVFormat实例的指针，其内容包含获取的元数据信息。
 * @return AV_ERR_OK：执行成功
 * AV_ERR_INVALID_VAL： 输入的extractor为空指针或参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作被禁止
 * AV_ERR_UNSUPPORTED_FORMAT：格式不支持。
 * AV_ERR_NO_MEMORY：内部内存分配失败。
 * AV_ERR_IO_CLEARTEXT_NOT_PERMITTED：（API version 23新增）不允许HTTP明文流量。
 * @since 18
 */
OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata(OH_AVMetadataExtractor* extractor, OH_AVFormat* avMetadata);

/**
 * @brief 获取音频专辑封面。
 * 函数必须在{@link OH_AVMetadataExtractor_SetFDSource}之后调用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param pixelMap 从音频源获取的专辑封面。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL： 输入的extractor为空指针或参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作被禁止。
 * AV_ERR_UNSUPPORTED_FORMAT：格式不支持。
 * AV_ERR_NO_MEMORY：内部内存分配失败。
 * @since 18
 */
OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover(OH_AVMetadataExtractor* extractor, OH_PixelmapNative** pixelMap);

/**
 * @brief 从视频源中提取指定时间点的图像。该函数必须在设置资源之后使用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param timeUs 要从视频资源中提取图像的时间位置（单位：微秒）。
 Z* @param seekMode 定义指定时间与关键帧之间关系的跳转模式。详见{@link}。
 * @param outputParam 图像的输出参数，例如图像的高度或者宽度。详见{@link OH_AVMetadataExtractor_OutputParam}。若为空指针，使用视频的原始尺寸。注意：用户需要使用{@link OH_PixelmapNative_Destroy}
 * 使用pixelMap后将其释放。
 * @param pixelMap 用于接收从视频源提取的图像，详见{@link OH_PixelmapNative}。
 * @return 函数执行结果。
 * AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不允许。
 * AV_ERR_UNSUPPORTED_FORMAT：格式不支持。
 * AV_ERR_SERVICE_DIED：服务已终止。
 * AV_ERR_IO_CLEARTEXT_NOT_PERMITTED：不允许HTTP明文流量。
 * @since 23
 */
OH_AVErrCode OH_AVMetadataExPtractor_FetchFrameByTime(OH_AVMetadataExtractor *extractor, int64_t timeUs,
    seekMode, const OH_AVMetadataExtractor_OutputParam* outputParam,
    OH_PixelmapNative** pixelMap);

/**
 * @brief 定义于获取AVMetadataExtractor捕获帧的回调函数。注意：frameInfo会在回调后自动释放，但用户需要使用{@link OH_PixelmapNative_Destroy}手动释放frameInfo.
 * image，避免内存泄漏。
 * 
 * @since 23
 */
typedef void (*OH_AVMetadataExtractor_OnFrameFetched)(OH_AVMetadataExtractor *extractor,
    const OH_AVMetadataExtractor_FrameInfo* frameInfo, OH_AVErrCode code, void *userData);

/**
 * @brief 从视频源中异步提取多个指定时间点的图像。该函必须在设置资源之后使用。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @param timesUs The times array expected to fetch picture from the video resource. The unit is microsecond(us).
 * @param timesUsSize 输时间点数组的长度。
 * @param seekMode 定义每个给定时间与关键帧之间关系的跳转选项，详见{@link}。
 * @param outputParam 图像的输出参数，例如图像的高度或者宽度。详见{@link OH_AVMetadataExtractor_OutputParam}。若该参数为空指针，则获取的帧使用视频原始尺寸。
 * @param onFrameInfoCallback 每帧提取成或提取失败后调用的回调函数。
 * @param userData 传递给回调函数的用户自定义数据指针。
 * @return 函数执行结果。
 * AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入参数无效。
 * AV_ERR_SERVICE_DIED：服务已终止。
 * AV_ERR_IO_CLEARTEXT_NOT_PERMITTED：不允许HTTP明文流量。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不允许。由onFrameInfoCallback返回。
 * AV_ERR_UNSUPPORTED_FORMAT：格式不支持。由onFrameInfoCallback返。
 * AV_ERR_TIMEOUT：执行超时。由onFrameInfoCallback返回。
 * @since 23
 */
OH_AVErrCode OH_AVMetadataExtractoer_FetchFramesByTimes(OH_AVMetadataExtractor *extractor, int64_t timesUs[], uint16_t timesUsSize,
    seekMode, const OH_AVMetadataExtractor_OutputParam* outputParam,
    OH_AVMetadataExtractor_OnFrameFetched onFrameInfoCallback, void* userData);

/**
 * @brief 取消所有由{@link OH_AVMetadataExtractor_FetchFramesByTimes}发起的批量获取图操作。在{@link OH_AVMetadataExtractor_OnFrameFetched}
 * 回调中，挂起的获取操作被取消，并标记结果为已取消。
 *  
 * @param extractor 指向OH_AVMetadataExtractor实例的指针。
 * @since 23
 */
void OH_AVMetadataExtractor_CancelAllFetchFrames(OH_AVMetadataExtractor *extractor);

/**
 * @brief 释放用于OH_AVMetadataExtractor的资源销毁OH_AVMetadataExtractor实例。
 * 
 * @param extractor 指向OH_AVMetadataExtractor实例指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL： 输入的extractor为空指针或参数无效。
 * @since 18
 */
OH_AVErrCode OH_AVMetadataExtractor_Release(OH_AVMetadataExtractor* extractor);

/**
 * @brief 创建OH_AVMetadataExtractor_OutputParam实例。
 * 
 * @return 返回指向OH_AVMetadataExtractor_OutputParam实例的指针。
 * @since 23
 */
OH_AVMetadataExtractor_OutputParam* OH_AVMetadataExtractor_OutputParam_Create();

/**
 * @brief 释放OH_AVMetadataExtractor_OutputParam例。
 * 
 * @param outputParam 指向OH_AVMetadataExtractor_OutputParam实例的指针。
 * @since 23
 */
void OH_AVMetadataExtractor_OutputParam_Destroy(OH_AVMetadataExtractor_OutputParam* outputParam);

/**
 * @brief 设置OH_AVMetadataExtractor_OutputParam实例的期望输出尺寸。若width或height小于0，则使用原始宽度或高度。若width或height于0，则保持宽高比按比例缩放。
 * 若width和height均大于0，则使用输入的width和height参数缩放图。
 * 
 * @param outputParam 指向OH_AVMetadataExtractor_OutputParam实例的指针。
 * @param width 输出图像的望宽度，如有必要可进行缩放。
 * @param height 输出图像的期望高度，如有必要可进行缩放。
 * @return 成功返回true，失败返回false。
 * 可能失败的原因：outputParam为空指针。
 * @since 23
 */
bool OH_AVMetadataExtractor_OutputParam_SetSize(OH_AVMetadataExtractor_OutputParam* outputParam,
    int32_t width, int32_t height)$&3TADATA_EXTRACTOR_H
/** @} */
ͱ7Ax:Z5[])常量BASE[DBASE_H

#include <stdint.h>
^.$枚举帧提取操作的结果状态A	menumState {
    /**
     * 提取操作失败。
     */
    OH_AVMETADATA_EXTRACTOR_FETCH_FAILED = 0,

    /**
     * 提操作成功。
     */
    OH_AVMETADATA_EXTRACTOR_FETCH_SUCCEEDED = 1,

    /**
     * 提取操作被用户取消。
;     */
    OH_AVMETADATA_EXTRACTOR_FETCH_CANCELED = 2,
}Statea提取的帧的输出参数A	mf)A$,
a$从视频中提取出的帧的信息A	mf_FrameInfo {
    /**
     * 用户传入的请求时间。
     */
    int64_t requestTimeUs;

    /**
     * 实际提到的帧的时间；若提取失败，则为-1。
     */
    int64_t actualTimeUs;

    /**
     * 从视频中提取>的帧图像；若提取失败，则为空指针。
     */>P image;

    /**
     * 本次帧提取操作的结果状态。
     */
   State result;
}rameInfoa>获取专辑标题的关键字，对应值类型为const char*A:static const char* OH_AVMETADATA_EXTRACTOR_ALBUM = "album"aA获取专辑艺术家的关键字，对应值类型为const char*AGstatic const char* OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST = "albumArtist"aG获取媒体资源艺术家的关键字，对应值类型为const char*A<static const char* OH_AVMETADATA_EXTRACTOR_ARTIST = "artist"aD获取媒体资源作者的关键字，对应值类型为const char*A<static const char* OH_AVMETADATA_EXTRACTOR_AUTHOR = "author"aJ获取媒体资源创建时间的关键字，对应值类型为const char*AAstatic const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME = "dateTime"ao获取媒体资源创建时间的关键字，对应值类型为const char*，按YYYY-MM-DD HH:mm:ss格式输出ANstatic const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT = "dateTimeFormat"aG获取媒体资源作曲家的关键字，对应值类型为const char*A@static const char* OH_AVMETADATA_EXTRACTOR_COMPOSER = "composer"aZ获取媒体资源时长的关键字，对应值类型为int64_t，单位为毫秒（ms）A@static const char* OH_AVMETADATA_EXTRACTOR_DURATION = "duration"aM获取媒体资源类型或体裁的关键字，对应值类型为const char*A:static const char* OH_AVMETADATA_EXTRACTOR_GENRE = "genre"aL获取媒体资源是否包含音频的关键字，对应值类型为int32_tAAstatic const char* OH_AVMETADATA_EXTRACTOR_HAS_AUDIO = "hasAudio"aL获取媒体资源是否包含视频的关键字，对应值类型为int32_tAAstatic const char* OH_AVMETADATA_EXTRACTOR_HAS_VIDEO = "hasVideo"a获取媒体资源mime类型的关键字，对应值类型为const char*，例如：“video/mp4”、“audio/mp4”和“audio/amr wb”AAstatic const char* OH_AVMETADATA_EXTRACTOR_MIME_TYPE = "mimeType"aF获取媒体资源轨道数量的关键字，对应值类型为int32_tAEstatic const char* OH_AVMETADATA_EXTRACTOR_TRACK_COUNT = "trackCount"aW获取音频采样率的关键字，对应值类型为int32_t，单位为赫兹（Hz）AEstatic const char* OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE = "sampleRate"aD获取媒体资源标题的关键字，对应值类型为const char*A:static const char* OH_AVMETADATA_EXTRACTOR_TITLE = "title"aL获取视频高度的关键字，对应值类型为int32_t，单位为像素AGstatic const char* OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT = "videoHeight"aL获取视频宽度的关键字，对应值类型为int32_t，单位为像素AEstatic const char* OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH = "videoWidth"aW获取视频旋转方向的关键字，对应值类型为int32_t，单位为度（°）AQstatic const char* OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION = "videoOrientation"a获取是否是HDR Vivid视频的关键字，对应值类型为int32_t。
 * 详情请参阅media_types.h中的{@link OH_Core_HdrType}AIstatic const char* OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID = "hdrType"aG获取地理位置中的纬度值的关键字，对应值类型为floatAIstatic const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE = "latitude"aG获取地理位置中的经度值的关键字，对应值类型为floatALstatic const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE = "longitude";	}
#endif-DBASE_H
/** @} */
GfJxg5~
avmetakeysHDefines the avmetakeys.
 *
 * @since 23
 */
/**
 * @file avmetakeys`音视频元数据键/dia_base.so/Core
 * @since 23:KEYS.5KEYS_H?轨道索引，L'23
 */
extern_KEY_TRACK_INDEX	道类型，L'23
 */
extern_KEY_TRACK_TYPE	:编解码器MIME类型，值类型为字符串（string）a23
 */
extern_KEY_MIME_TYPE	7媒体时长（单位：微秒），值类型为int64_ta23
 */
extern_KEY_DURATION	1比特率（单位：bps），值类型为int64_ta23
 */
extern_KEY_BITRATE	8频帧率（每100秒的帧数），值类型为doublea23
 */
extern_KEY_FRAME_RATE	频宽度，L'23
 */
extern
_KEY_WIDTH	频高度，L'23
 */
extern_KEY_HEIGHT	音频声道数，L'23
 */
extern_KEY_CHANNEL_COUNT	音频采样率（Hz），L'23
 */
extern_KEY_SAMPLE_RATE	$音频采样位深（bit depth），L'23
 */
extern_KEY_SAMPLE_DEPTH	/言标识，值类型为字符串（string）a23
 */
extern_KEY_LANGUAGE	/道名称，值类型为字符串（string）a23
 */
extern_KEY_TRACK_NAME	HDR类型，L'23
 */
extern_KEY_HDR_TYPE	原始视频宽度，L'23
 */
extern_KEY_ORIGINAL_WIDTH	原始视频高度，L'23
 */
extern_KEY_ORIGINAL_HEIGHT	7引用的轨道ID列表，仅用于元数据提取器a23
 */
extern_KEY_REF_TRACK_IDS	/道引用类型，仅用于元数据提取器a23
 */
extern_KEY_TRACK_REF_TYPE!$
#endif //*KEYS_H
/** @} */
Ivx e3eYAVPlayer
 *
 * @brief Provides APIs of Playback capability for Media Source.
 *
 * @SU(AVPlayer
 * @since 11
 */
/**
 * @file avplayer.h
 *
 * @brief 定义AVPlayer接口。使用AVPlayer提供的Native API放媒体源-player.so
 * @since 116PLAYER1PLAYER_H

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "native_averrors.h"
#include "avplayer_base.h"
#include "native_avcodec_base.h"
#include "native_window/external_window.h"
#include "ohaudio/native_audiostream_base.h"
#include "avmedia_source.h"?MediaKeySession类型e12
 */
typedef struct MediaKeySession MediaKeySession;
/**
 * @brief DRM_MediaKeySystemInfo类型E12
 */
typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo!OH_AVPlayerVideoOutput field.
 * @since 26.0.0
 */ 
typedef struct OH_AVPlayerVideoOutput OH_AVPlayerVideoOutput;

/**
 *-播放器DRM信息更新时调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mediaKeySystemInfo DRM信息。
 * @return void
 * @since 12
 */
typedef void (*Player_MediaKeySystemInfoCallback)(OH_AVPlayer *player, DRM_Med$iaKeySystemInfo* mediaKeySystemInfo)!创建播放器。
 * 推荐单个应用创建的音视频播放器实例（即音频、视频、音视频三类相加）不过16个。
 * <!--Del-->可创建的音视频播放器实例数量依赖于设备芯片的支持情况，如芯片支持创的数量少于上述情况，请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放器实。<!--DelEnd-->
 * 
 * @return 如果创建成功返回指向OH_AVPlayer实例的指针，否则返回空指针。
 * 可能的失败原因：
 * 1.PlayerFactory::CreatePlayer执行失败。
 * 2.new PlayerObject执行失败。
 * @since 11
*/&
OH_AVPlayer *OH_AVPlayer_Create(void)!设置播放器的播放源。对应的源可以是http url。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param url 播放源。
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，url为空或者player SetUrlSource执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetURLSource(OH_AVPlayer *player, const char *url)!设置播放器的媒体文件描述符来源。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param fd 媒源的文件描述符。
 * @param offset 媒体源在文件描述符中的偏移量。
 * @param size 表示媒体源的大小。
 * @return AV_ERR_OK：fd设置成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player SetFdSource行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetFDSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size)!设置播放器的媒体源，该媒体源的数据由应用程序提供。
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @param datasrc Pointer to an OH_AVDataSourceExt instance
 * @param userData The handle passed in by the user is used to pass in the callback
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者输入datasrc为空指针。
 * @since 21
 */
OH_AVErrCode OH_AVPlayer_SetDataSource(OH_AVPlayer *player, OH_AVDataSourceExt* datasrc, void* userData)!准备播放环境，异步缓存媒体数据。
 * 此函数必须在SetSource之后调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者pflayer Prepare执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Prepare(OH_AVPlayer *player)!开始播放。
 * 此函数必须在{@link OH_AVPlayer_Prepare}之后调用。
 * 如果播放器状态为\<Prepared>，调此函数开始播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Play执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Play(OH_AVPlayer *player)!暂停播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Pause执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Pause(OH_AVPlayer *player)!停止播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Stop执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_Stop(OH_AVPlayer *player)!将播放器恢复到初始状态。
 * 函数调用完成后，调用SetSource添加播放源。调用{@link OH_AVPlayer_Prepare}后，再调用{@link OH_AVPlayer_Play}重新开始播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Reset执行失败。
 * C@since 11
 */
OH_AVErrCode OH_AVPlayer_Reset(OH_AVPlayer *player)!异步释放播放器资源。
 * 异步释放可以提升性能，但不能确保播放画面的SurfaceBuffer已释放。调者需要确保播放画面窗口的生命周期安全。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Release执行失败。
 * @siBnce 11
 */
OH_AVErrCode OH_AVPlayer_Release(OH_AVPlayer *player)!同步释放播放器资源。
 * 同步过程保证了播放画面的SurfaceBuffer释放，但该过程耗时较长，建议用者自行设计异步机制。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return AV_ERR_OK：执行功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player ReleaseSync执行失败。
 * @since 11
 */
OH_AVEr2rCode OH_AVPlayer_ReleaseSync(OH_AVPlayer *player)!获取播放器媒体源信息。设置完播放资源并且播放处于initialized/prepared/playing/paused/completed/stopped态，可调用该接口。
 * 需要注意返回值OH_AVFormat指针对象的生命周期需要用户手动释放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return 执行成功返回播放器媒体信息，否则返回nullptr
 * 可能故障原因：
 * 1. 传入player指针不合法。
 * 2. 设置的播放资源不合法。
 * @since 22
 */
AOH_AVFormat *OH_AVPlayer_GetMediaDescription(OH_AVPlayer *player)!通过索引下标获取播放器媒体源轨道信息。设置完播放资源并且播放处于initialized/prepared/playing/paused/completed/stopped状态，可调用该接口。
 * 需要注意返回值OH_AVFormat指针对象的生命周期需要用手动释放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param index 轨道索引下标。
 * @return 执行成功按索引下标返回轨道信息，否则返回nullptr。
 * 可能故障原因：
 * 1. 传入player指针不法。
 * 2. 设置的播放资源不合法。
 * 3. 轨道索引下标超出播放源文件数组界限。
 * @since 22
 U*/
OH_AVFormat *OH_AVPlayer_GetTrackDescription(OH_AVPlayer *player, uint32_t index)!设置播放器的音量。
 * 可以在播放或暂停的过程中使用。0表示无声音，1为原始值。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param leftVolume 要设置的左声道目标音量。
 * @param rightVolume 要设置的右声道目标音量。
 * @return AV_ERR_OK：成功设置音量。
 * AV_ERR_INVALID_VAL：输入player为空针，或者player SetVolume执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetVolume(OH_AVPlayer *player, float leftVolume, float rightVolume)!改变播放位置。
 * 此函数可以在播放或暂停时使用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mSeconds 播放目标位置，精确到毫秒。
 * @param mode 播放器的跳转模式。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player Seek执行失败。
 * @since 11
*/
OHY_AVErrCode OH_AVPlayer_Seek(OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode)!获取播放位置，精确到毫秒。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param currentTime 播位置。
 * @return AV_ERR_OK：成功获取当前播放位置。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player GetCurrentTime执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetCurrentTime(OH_AVPlayer *player, int32_t *currentTime)!获取视频宽度。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param videoWidth 视频宽度。
 * @return AV_ERR_OK：成功获取视频宽度。
 * AV_ERR_INVALID_VAL：输入player为空指针。
 * @since 11
 */
OH_AVErrCoFde OH_AVPlayer_GetVideoWidth(OH_AVPlayer *player, int32_t *videoWidth)!获取视频高度。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param videoHeight 视频高度。
 * @return AV_ERR_OK：成功获取视频高度。
 * AV_ERR_INVALID_VAL：输入player为空指针。
 * @since 11
 */
OH_AVErrCIode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeight)!根据指定的{@link AVPlaybackSpeed}，设置播放器的播放速率。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param speed 速率模式。
 * @return AV_ERR_OK：成功设置播放速率。
 * AV_ERR_INVALID_VAL：输入player为空指针。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed);
%获取当前播放器的播放速率。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param speed 速率模。
 * @return AV_ERR_OK：成功获取播放速率。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player GetPlaybackSpeed执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed *speed)!获取当前播放器播放速率。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param rate 可以获得的播放速率。
 * @return 如果成功获取当前播放器的播放速率，返回{@link AV_ERR_OK}；
 * 否则返回{@lin,k native_averrors.h}中定义的错误码。JOH_AVErrCode OH_AVPlayer_GetPlaybackRate(OH_AVPlayer *player, float *rate)!设置player音频流类型。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param streamUsage player音频设置的类型。
 * @return AV_ERR_OK：成功设置音频流类型。
 * AV_ERR_INVALID_VAL：输入player为空指针或者streamUsage值无效。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo(OH_AVPlayer *player, OH_AudioStream_Usage streamUsage)!设置player音频流的打断模式。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param interruptMode player音频流使用的打断模式。
 * @return AV_ERR_OK：成功设置音频流的打断模式。
 * AV_ERR_INVALID_VAL：入player为空指针，或者interruptMode值无效。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode(OH8_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode)!设置player音频流的音效模式。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param effectMode player音频流使用的音效模式。
 * @return AV_ERR_OK：成功设置音频流的音效模式。
 * AV_ERR_INVALID_VAL：输player为空指针，或者effectMode值无效。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetAudioEffectMode(OH_AVPlayer4 *player, OH_AudioStream_AudioEffectMode effectMode)!设置hls播放器使用的码率。仅对HLS协议网络流有效。
 * 默认情况下，播放器会根据网络连接情选择合适的码率和速度。
 * 通过INFO_TYPE_BITRATE_COLLECT上报有效码率链表，设置并选择指定的码率，选择小于且最接近的码率。准备好后，读取以查询当前选择的比特率。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param bitRate 码率，单位为bps。
 * @return AV_ERR_OK：成功设置码率。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player SelectBitRate执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPla8yer_SelectBitRate(OH_AVPlayer *player, uint32_t bitRate)!设置播放画面窗口。
 * 此函数必须在SetSource之后，Prepare之前调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param window 指向OHNativeWindow实例的指针。
 * @return AV_ERR_OK：成功设置播放画窗口。
 * AV_ERR_INVALID_VAL：输入player为空指针，输入window为空指针或者player SetVideoSurface执行失败n。
 * @since 11
 */
OH_AVErrCode  OH_AVPlayer_SetVideoSurface(OH_AVPlayer *player, OHNativeWindow *window)!获取媒体文件的总时长，精确到毫秒。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param duration 媒体文件的总时长。
 * @return AV_ERR_OK：成功获取媒体文件时长。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player GetDuration执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetDuration(OH_AVPlayer *player, int32_t *duration)!获取当前播放状态。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param state 当前播放状态。
 * @return AV_ERR_OK：成功获取当前播放状态。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player GetState执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetState(OH_AVPlayer *player, AVPlayerState *state);

/**
 *-判断播放器是否在播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return 如果正在播放，返回true；如果不在播放或者输入player为空指针则返回false。
 * @since 11
 */
bool OH_AVPlayer_IsPlaying(OH_AVPlayer *player)!判断是否循环播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return 如果是循环播放，则回true；如果不是循环播放或者输入player为空指针则返回false。
 * @since 11
 */
bool OH_AVPlayer_IsLooping(OH_AVPlayer *player)!设置循环播放。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param loop 循环播放开关。true表开启循环播放，false表示关闭循环播放。
 * @return AV_ERR_OK：成功设置循环播放。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player SetLooping执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_SetLooping(OH_AVPlayer *player, bool loop)!设置播放器回调函数。
 * 由于通过此方法设置的信息监听回调函数{@link OH_AVPlayerOnInfo}和错误监回调函数{@link OH_AVPlayerOnError}可以传递的信息有限，也不便于应用区分多个播放器实例。
 * 从API version 12开始，应使用{@link OH_AVPlayer_SetOnInfoCallback}、{@link OH_AVPlayer_SetOnErrorCallback}接口分别设置信息监听回调函数{@link OH_AVPlayerOnInfoCallback}
 * 和错误监听回调函数{@link OH_AVPlayerOnErrorCallback}。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param callback 回调对象指针。
 * @return AV_ERR_OK：功设置播放器回调。
 * AV_ERR_INVALID_VAL：输入player为空指针，callback.onInfo或onError为空，或者player SetPlayerCallback执行失败。
 * @since 11
 * @deprecated since 12
 * @useinstead {@link OH_AVPlayer_SetOnInfoCallback} {@link OH_AVPlayer_SetOnErrorCallback}
 */
OH_AVErrCode OH_AVPlayer_SetPlayerCallback(OH_AVPlayer *player, AVPlayerCallback callback)!选择音频或字幕轨道。
 * 默认播放第一个带数据的音轨，不播放字幕轨道。
 * 设置生效后，原音轨将失效。请设置字幕处于准备/播放/暂停/完成状态，并将音轨设置为准备状态。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param index 索引。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player SelectTrack执行失败。
 * @since 11
*/
OH_AVErrCode OH_AVPlayer_SelectT(rack(OH_AVPlayer *player, int32_t index)!取消选择当前音频或字幕轨道。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param index 索引
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player DeselectTrack执行g败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index)!获取当前有效的轨道索引。请将状态设置为准备/正在播放/暂停/完成。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param trackType 媒体类型。0：音频，1：视频。
 * @param index 索引。
 * @return AV_ERR_OK：成功获取轨道索引。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者player GetCurrentTrack执行失败。
 * @since 11
 */
OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index);"设置播放器媒体密钥系统信息回调的方法。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param callback 对象指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针，callback空指针，player SetDrmSystemInfoCallback，
 * SetDrmSystemInfoCallback或SetDrmSystemInfoCallback执行失败。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player,
    Player_MediaKeySystemInfoCallback
 callback)!获取媒体密钥系统信息以创建媒体密钥会话。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mediaKeySystemInfo 媒体密钥系统信息。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针或者内存不足。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_'MediaKeySystemInfo *mediaKeySystemInfo)!设置解密信息。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mediaKeySession 具有解密功能媒体密钥会话实例。
 * @param secureVideoPath 是否需要安全解码器。true表示需要安全解码器，false示不需要安全解码器。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：输入player为空指针或player SetDecryptionConfig执行失败。
 * @since 12
*/
OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player,= MediaKeySession *mediaKeySession,
    bool secureVideoPath)!设置播放器消息回调监听函数。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param callback 执回调监听函数的指针，空指针表示取消设置播放器消息回调监听。
 * @param userData 指向应用调用者设置的实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_NO_MEMORY：内存分配失败。
 * AV_ERR_INVALID_VAL： 输入player为空指针或者函数执行失败。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetOnInfoCallbaKck(OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData)!设置播放器错误回调监听函数。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param callback 执回调监听函数的指针，空指针表示取消设置播放器错误回调监听。
 * @param userData 指向应用调用者设置的实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_NO_MEMORY：内存分配失败。
 * AV_ERR_INVALID_VAL： 输入player为空指针或者函数执行失败。
 * @since 12
 */
OH_AVErrCode OH_AVPlayer_SetOnErrorCallbMack(OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData)!设置player音频流音量模式。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param volumeMode 指定音频流音量模式。
 * @return AV_ERR_OK：成功设置音频流音量模式。
 * AV_ERR_INVALID_VAL： 输入player为空指针或者volumeMode值无效。
 * AV_ERR_INVALID_STATE：函数在无效状态下调用，应先处于准备状态。
 * AV_ERR_SERVICE_DIED：系统错误。
 * @since 19
 */
OH_AVErrCode OH_AVPlayer_SetVolumeMode(OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode)!在有效范围内，设置播放器的播放速率。
 * 支持的状态：已准备/正在播放/已暂停/已完成。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param rate 播放速率，有效范围是0.125~4。
 * @return AV_ERR_OK：成功设置播放速率。
 * AV_ERR_OPERATE_NOT_PERMIT：如果在不支持的状态下调用或在直播期间调。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者速率超出范围。
 * @since 20
 */
OH_AVErrCode OH_AVPla4yer_SetPlaybackRate(OH_AVPlayer *player, float rate)!设置播放器的响度。当播放处于prepared/playing/paused/completed/stopped状态时，可调用该接口。
 * 默认响度增益0.0dB。播放器流的usage参数必须是{@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MUSIC，
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MOVIE，{@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_AUDIOBOOK 之一。
 * 音频渲染的延迟模式必须是{@link OH_AudioStream_LatencyMode}.AUDIOSTREAM_LATENCY_MODE_NORMAL。
 * 如果通过高分辨率管道播放，则不支持此操作。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param loudnessGain 设置放器的响度值，单位为dB，响度范围为[-90.0, 24.0]。
 * @return AV_ERR_OK：成功设置响度。
 * AV_ERR_INVALID_VAL：输入player为空指针，或者输入的loudnessGain是无效参数。
 * AV_ERR_INVALID_STATE：函数在不常的状态下调用，或者audioRendererInfo的usage参数不是
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MUSIC
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_MOVIE和
 * {@link OH_AudioStream_Usage}.AUDIOSTREAM_USAGE_AUDIOBOOK之。
 * AV_ERR_SERVICE_DIED：系统错误。
 * @since 21
 */
OH_AVErrCode OH_AVPlayer_SetLoudnessGain(OH_AVPlayer *player, float loudnessGain)!获取当前播放器的统计指标信息。设置完播放资源，并且当播放处于准备（prepared）/播放（playing）/暂停（paused）/完成（completed）/停止（stopped）状态时，可调用该接口。
 * 需要注意返回值{@link OH_AVFormat}指针对象的生命周期需要用户手动释放。
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @return 执行成功返回播放器的统计指标信息（键值详情请参考avplayer_base.h中的{@link 变量}信息V，否则返回nullptr。
 * 可能的失败原因：传入player指针不合法。IOH_AVFormat *OH_AVPlayer_GetPlaybackStatisticMetrics(OH_AVPlayer *player)!将由文件描述符表示的字幕资源添加到播放器。目前，外挂字幕必须在AVPlayer设置完视频资源的fdSrc之后再设置。
 *  
 * @param player Pointer to an OH_AVPlayer instance
 * @param fd Indicates the file descriptor of subtitle source.
 * @param offset Indicates the offset of media source in file descriptor.
 * @param size Indicates the size of media source.
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针。kOH_AVErrCode OH_AVPlayer_AddFdSubtitleSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size)!将由URL表示的字幕资源添加到播放器。外挂字幕必须在AVPlayer设置完url之后再设置。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param url 字幕源的URL。
 * @return 函数执行结果。
 * AV_ERR_OK：S表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针。SOH_AVErrCode OH_AVPlayer_AddUrlSubtitleSource(OH_AVPlayer *player, const char *url)!设置播放起始位置和结束位置。设置后，仅播放音视频文件中指定范围内的内容。可在初始化、准备、暂停、停止或完成状态下调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mSecondsStart 播放起始位置，应在[0, duration)范围内，-1 表示未设置起始位置，将从0开始播放。
 * @param mSecondsEnd 播放结束位置，通常应在(startTimeMs, duration]范围内，-1 表示未设置结束位置，将在流尾结束播放。
 * @param closestRange 是否同步到距离指定时间点最近的帧。
 * @return 函数执行结果
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针。
 * AV_ERR_OPERATE_NOT_P ERMIT：表示操作不允许。OH_AVErrCode OH_AVPlayer_SetPlaybackRange(OH_AVPlayer *player, int32_t mSecondsStart, int32_t mSecondsEnd,
    bool closestRange);

/**
 * Mute the media stream. This API can be called only when the AVPlayer is in the prepared, playing,
 * paused, or completed state.
 * @param player 指向OH_AVPlayer实例的指针。
 * @param mediaType 指定的媒体类型，参见{@link native_avcodec_base.h}中的{@link OH_MediaType}。
 * @param muted true表示静音，false表示取消静音。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入参数无效。
 * AV_ERR._OPERATE_NOT_PERMIT：表示操作不允许。_OH_AVErrCode OH_AVPlayer_SetMediaMuted(OH_AVPlayer *player, OH_MediaType mediaType, bool muted)!获取播放位置，精确到毫秒。此API仅可在AVPlayer处于已准备、播放中、暂停或完成状态时调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return 返回以毫秒为单位的播放位置。
 * 若player%空指针或无效，则返回-1。<int32_t OH_AVPlayer_GetPlaybackPosition(OH_AVPlayer *player)!检查媒体源是否支持连续跳转。在已准备、播放中、暂停或完成状态下调用时返回实际值；在其状态下调用时返回 false。对于不支持{@link AV_SEEK_CONTINUOUS}模式跳转操作的设备，返回false。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return @returns true表示支持连续跳转。
 * false表示不支*持连续跳转或支持状态不确定。?bool OH_AVPlayer_IsSeekContinuousSupported(OH_AVPlayer *player)!在播放包含多个音视频轨道的资源时，使用指定的切换模式选择轨道。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param index 所选轨道的索引。
 * @param mode 切换模式。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入参数无效。
 * AV_ERR_OPERATE_NOT_PERMIT：表示操作不允许。nOH_AVErrCode OH_AVPlayer_SelectTrackWithMode(OH_AVPlayer *player, int32_t index, AVPlayerTrackSwitchMode mode)!订阅最大音频电平值的更新事件，该值在播放音频资源时周期性上报。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param callback 回调函数指针，nullptr表示取消注册回调。
 * @param userData 指用户特定数据的指针。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL&表示输入的player为空指针。OH_AVErrCode OH_AVPlayer_SetAmplitudeUpdateCallback(OH_AVPlayer *player, OH_AVPlayerOnAmplitudeUpdateCallback callback,
    void *userData)!订阅接收到补充增强信息（SEI）消息的事件。仅适用于HTTP-FLV直播流，当视频流中存在SEI消息时发。必须在调用prepare之前发起订阅。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param payloadTypes 负载类型数组。
 * @param typeNum 负载类型数组的大小。
 * @param callback 回调函数指针，nullptr表示取消注册回调。
 * @param userData 指向用户特定数据的指针。
 * @return 函数执行结果。
 * AV_E[RR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针。OH_AVErrCode OH_AVPlayer_SetSeiReceivedCallback(OH_AVPlayer *player, const int32_t *payloadTypes, uint32_t typeNum,
    OH_AVP;layerOnSeiMessageReceivedCallback callback, void *userData)!获取SEI消息数组中的消息项数量。
 * 
 * @param message 指向OH_AVSeiMessageArray实例的指针。
 * @return 'SEI消息数组中的消息项数量。Cuint32_t OH_AVSeiMessage_GetSeiCount(OH_AVSeiMessageArray *message)!通过索引获取SEI消息数组中某一项的SEI。
 * 
 * @param message 指向OH_AVSeiMessageArray实例的指针。
 *E @param index 消息项的索引。
 * @return 该消息项的SEI。ROH_AVFormat *OH_AVSeiMessage_GetSei(OH_AVSeiMessageArray *message, uint32_t index)!为超分辨率设置视频窗口大小。此API可在AVPlayer处于初始化、已准备、播放中、暂停、完成或停状态时调用。输入参数值必须在320x320至1920x1080（像素）范围内。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param width 窗口宽度，取值范围[320-1920]，单位：像素。
 * @param height 窗口高度取值范围[320-1080]，单位：像素。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针或参数错误。
 * AV_ERR_OPERATE_NOT_PERMIT：表示操作不允许。
 * AV_ERR_SUPER_RESOLUTION_UNSUPPORTED：表示不支持超分辨率。
 * AV_ERR_SUPER_RESOLUTION_NOT_ENABLED：表示未在{@l8ink OH_AVPlaybackStrategy}中启用超分辨率功能。eOH_AVErrCode OH_AVPlayer_SetTargetVideoWindowSize(OH_AVPlayer *player, int32_t width, int32_t height)!动态启用或禁用超分辨率。此API可在AVPlayer处于初始化、已准备、播放中、暂停、完成或停止状时调用。必须在调用prepare之前在{@link OH_AVPlaybackStrategy}中启用超分辨率功能。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param enabled true：启用超分辨率；false：禁用超分辨率。
 * @return 数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针或参数误。
 * AV_ERR_OPERATE_NOT_PERMIT：表示操作不允许。
 * AV_ERR_SUPER_RESOLUTION_UNSUPPORTED：表示不支持超辨率。
 * AV_ERR_SUPER_RESOLUTION_NOT_ENABLED：表示未在{@link OH_AVPlaybackStrategy}中启用超分辨率功能。
 YOH_AVErrCode OH_AVPlayer_SetVideoSuperResolutionEnable(OH_AVPlayer *player, bool enabled)!i创建一个播放策略实例。
 * 
 * @return 一个播放策略实例，失败时返回空指针。9OH_AVPlaybackStrategy *OH_AVPlaybackStrategy_Create(void)!释放一个播放策略实例。
 * 
 * @param strategy OH_AVPlaybackStrategy实例。
 * @return 函数执行结果。
 *b AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的strategy为空指针。KOH_AVErrCode OH_AVPlaybackStrategy_Destroy(OH_AVPlaybackStrategy *strategy)!选择接近指定宽度的流。
 * 
 * @param strategy avplayer使用的OH_AVPlaybackStrategy。
 * @param width avplayer动时选择播放的首选宽度。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVAL/ID_VAL：表示输入的strategy为空指针。dOH_AVErrCode OH_AVPlaybackStrategy_SetPreferredWidth(OH_AVPlaybackStrategy *strategy, int32_t width)!选择接近指定高度的流。
 * 
 * @param strategy avplayer使用的OH_AVPlaybackStrategy。
 * @param height avplayer启动时选择播放的首选高度。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVA0LID_VAL：表示输入的strategy为空指针。fOH_AVErrCode OH_AVPlaybackStrategy_SetPreferredHeight(OH_AVPlaybackStrategy *strategy, int32_t height)!选择接近指定值的首选缓冲时长。
 * 
 * @param strategy avplayer使用的OH_AVPlaybackStrategy。
 * @param ms avplayer启动时选择播放的首选缓冲时长。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
> * AV_ERR_INVALID_VAL：表示输入的strategy为空指针。jOH_AVErrCode OH_AVPlaybackStrategy_SetPreferredBufferDuration(OH_AVPlaybackStrategy *strategy, int32_t ms)!启用或禁用首选HDR模式。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param enabled true表启用HDR，false表示禁用。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VA*L：表示输入的strategy为空指针。aOH_AVErrCode OH_AVPlaybackStrategy_SetPreferredHdr(OH_AVPlaybackStrategy *strategy, bool enabled)!设置首选字幕语言。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param lang 字幕语言代码（例如"zh"）。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输的strategy为空指针。OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredSubtitleLanguage(OH_AVPlaybackStrategy *strategy, const char *lang);

/**
 * .设置首选音频语言。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param lang 音频语言代码（例如"en"）。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输的strategy为空指针。oOH_AVErrCode OH_AVPlaybackStrategy_SetPreferredAudioLanguage(OH_AVPlaybackStrategy *strategy, const char *lang)!设置播放时要静音的媒体类型。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param mediaType 要静音的媒体类型。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：&表示输入的strategy为空指针。mOH_AVErrCode OH_AVPlaybackStrategy_SetMutedMediaType(OH_AVPlaybackStrategy *strategy, OH_MediaType mediaType)!设置是否在prepare时显示首帧。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param enabled true表示显示，false表示不显示。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INV1ALID_VAL：表示输入的strategy为空指针。lOH_AVErrCode OH_AVPlaybackStrategy_SetShowFirstFrameOnPrepare(OH_AVPlaybackStrategy *strategy, bool enabled)!设置自动快速播放的阈值。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param seconds 自动快速播放的阈值。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表!输入的strategy为空指针。OH_AVErrCode OH_AVPlaybackStrategy_SetThresholdForAutoQuickPlay(OH_AVPlaybackStrategy *strategy, double seconds);

/**
 * @b0启用或禁用超分辨率。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param enabled true表示用，false表示禁用。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：$示输入的strategy为空指针。jOH_AVErrCode OH_AVPlaybackStrategy_SetSuperResolutionEnable(OH_AVPlaybackStrategy *strategy, bool enabled)!设置播放时的首选缓冲时长（秒，double类型）。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针
 * @param seconds 缓冲时长（秒）。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ER6R_INVALID_VAL：表示输入的strategy为空指针。OH_AVErrCode OH_AVPlaybackStrategy_SetPreferredBufferDurationForPlaying(OH_AVPlaybackStrategy *strategy,
    double seconds);#设置静音时是否继续解码。
 * 
 * @param strategy 指向OH_AVPlaybackStrategy的指针。
 * @param enabled true示继续解码，false表示静音时暂停解码。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。?
 * AV_ERR_INVALID_VAL：表示输入的strategy为空指针。gOH_AVErrCode OH_AVPlaybackStrategy_SetKeepDecodingOnMute(OH_AVPlaybackStrategy *strategy, bool enabled)!将播放策略设置给avplayer。此API仅可在avplayer处于初始化状态时调用。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param strategy 播放策略实例。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执成功。
 * AV_ERR_INVALID_VAL：表示输入的player为空指针。
 * AV_ERR_OPERATE_NOT_PERMIT：表示操作不允许bOH_AVErrCode OH_AVPlayer_SetPlaybackStrategy(OH_AVPlayer *player, OH_AVPlaybackStrategy *strategy)!获取当前播放器的统计信息。此API仅可在avplayer处于已准备、播放中或暂停状态时调用。
 * 
 * @param player Pointer to an OH_AVPlayer instance
 * @return 返回指向OH_AVFormat实例的指针。
 * 若player为空指针!或无效，则返回空指针。=OH_AVFormat* OH_AVPlayer_GetPlaybackInfo(OH_AVPlayer *player)!将OH_AVMediaSource设置给播放器。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param source 媒体源。
 * @return 函数执行结果。
 * AV_ERR_OK：表示执行成功。
 * AV_ERR_INVALID_VAL：表示输入的player或4source为空指针，或player设置URL源失败。VOH_AVErrCode OH_AVPlayer_SetMediaSource(OH_AVPlayer *player, OH_AVMediaSource *source)!获取播放器媒体源的轨道数量。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @return 返回轨道量。7uint32_t OH_AVPlayer_GetTrackCount(OH_AVPlayer *player)!通过索引获取播放器轨道信息。
 * 
 * @param player 指向OH_AVPlayer实例的指针。
 * @param trackIndex 轨道数组索引。
 * @return 返回指向OH_AVFormat实例的指针。
 * 若player为空指针或无效，或trackIndex无，则返回空指针。QOH_AVFormat *OH_AVPlayer_GetTrackFormat(OH_AVPlayer *player, uint32_t trackIndex)!Method to set video decoded frame output callback. This API can be called only
 *     when the avplayer is in the idle or initalized state.
 * @param player Pointer to an OH_AVPlayer instance.
 * @param window A pointer to a OHNativeWindow instance, see {@link OHNativeWindow}
 * @return Returns a pointer to an OH_AVPlayerVideoOutput instance, released by system when avplayer was
 *     reset or release. nullptr means failed.
 * @since 26.0.0
 */
OH_AVPlayerVideoOutput* OH_AVPlayer_SetVideoSideOu1tput(OH_AVPlayer *player, OHNativeWindow *window)!Method to get one video decoded frame. This API can be called only when the avplayer is
 *     in the paused or playing state.
 * @param videoOutput Pointer to an OH_AVPlayerVideoOutput instance returned by OH_AVPlayer_SetVideoSideOutput.
 * @return Returns OH_VIDEO_OUTPUT_OK when got a frame.
 *         Returns OH_VIDEO_OUTPUT_NO_IMAGE when there is no frame ready to render.
 * @since 26.0.0
 */
OH_VideoOutputResult OH_AVPlayerVideoOutput_GetNewestVideoSample(OH_AVPlayerVideoOutput *videoOutput)U
PLAYER_H
x-EҺ @{:_base.h
 *
 * @brief 定义AVPlayer的结构体和枚举BASH8BASH_H

#include <stdint.h>
avformatavbuffer.h"p&typedef struct OH_AVPlayer OH_AVPlayer5SEI消息数组的结构体 .{8typedef struct OH_AVSeiMessageArray OH_AVSeiMessageArray5!音视频播放策略的结构体 .{typedef struct115播放状态。
 * typedef enum AVPlayerState {
    /* idle states */
    AV_IDLE = 0,
    /* initialized states */
    AV_INITIALIZED = 1,
    /* prepared states */
    AV_PREPARED = 2,
    /* playing states */
    AV_PLAYING = 3,
    /* paused states */
    AV_PAUSED = 4,
    /* stopped states */
    AV_STOPPED = 5,
    /* Play to the end states */
    AV_COMPLETED = 6,
    /* relaeased states */
    AV_RELEASED = 7,
    /* error states */
    AV_ERROR = 8,
} AVPlayerState5转模式。
 * typedef enum AVPlayerSeekMode {
    /* sync to keyframes after the time point. */
    AV_SEEK_NEXT_SYNC = 0,
    /* sync to Xkeyframes before the time point. */
    AV_SEEK_PREVIOUS_SYNC,
    /**
     * @brief f0    * 
     * @since 12
     */
    AV_SEEK_CLOSEST = 2,
    /**
     * 连续拖动模式下的跳转（seek）。该模可提供更流畅的拖拽体验，但要求设备支持对当前流执行连续跳转。在调用连续跳转前，请先查是否支持，参见{@linkNn&f}
     * 。
     * **起始版本：** 23
     */
    AV_SEEK_CONTINUOUS = 3,
} AVPlayerSeekMode5播放速度。
 * typedef enum AVPlaybackSpeed {
    /* Video playback at 0.75x normal speed */
    AV_SPEED_FORWARD_0_75_X,
    /* Video playback at normal speed */
    AV_SPEED_FORWARD_1_00_X,
    /* Video playback at 1.25x normal speed */
    AV_SPEED_FORWARD_1_25_X,
    /* Video playback at 1.75x normal speed */
    AV_SPEED_FORWARD_1_75_X,
    /* Video playback at 2.0x normal speed */
    AV_SPEED_FORWARD_2_00_X,
    /**
     * @brief 0.5倍速播放。
     * 
     * @since 12
     */
    AV_SPEED_FORWARD_0_50_X,
    /**
     * @brief 1.5倍速播放。
     * 
     * @since 12
     */
    AV_SPEED_FORWARD_1_50_X,
    /**
     * @brief 3.0倍速播放。
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_3_00_X,
    /**
     * @brief 0.25倍速播放。
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_0_25_X,
    /**
     * @brief 0.125倍速播Y。
     * 
     * @since 13
    */
    AV_SPEED_FORWARD_0_125_X,
} AVPlaybackSpeed5OnInfo类型。
 * 可用于@K和OH_AVPlayerOnInfo(已废弃)，用于表示收到的播放器信息类垓$@#推荐用户使?@	。不同的OnInfo类型，可获取到不同信息（infoBody），infoBody中包含key-value关系表，
 * 详见下述枚值表。
 * 使用API version 11版本的开发者，需要使用旧接口。针对已废弃接口OH_AVPlayerOnInfo中使"的对应关系，可直接参考??的API说明。
 * typedef enum AVPlayerOnInfoType {
    /* return the message when seeking done. */
    AV_INFO_TYPE_SEEKDONE = 0,
    /* return the message when speeding done. */
    AV_INFO_TYPE_SPEEDDONE = 1,
    /* return the message when select bitrate done */
    AV_INFO_TYPE_BITRATEDONE = 2,
    /* return the message when playback is end of steam. */
    AV_INFO_TYPE_EOS = 3,
    /* return the message when PlayerStates changed. */
    AV_INFO_TYPE_STATE_CHANGE = 4,
    /* return the current posion of playback automatically. */
    AV_INFO_TYPE_POSITION_UPDATE = 5,
    /* return the playback message. */
    AV_INFO_TYPE_MESSAGE = 6,
    /* return the message when volume changed. */
    AV_INFO_TYPE_VOLUME_CHANGE = 7,
    /* return the message when video size is first known or updated. */
    AV_INFO_TYPE_RESOLUTION_CHANGE = 8,
    /* return multiqueue buffering time. */
    AV_INFO_TYPE_BUFFERING_UPDATE = 9,
    /* return hls bitrate.
       Bitrate is to convert data into uint8_t array storage,
       which needs to be forcibly converted to uint32_t through offset access. */
    AV_INFO_TYPE_BITRATE_COLLECT = 10,
    /* return the message when audio focus changed. */
    AV_INFO_TYPE_INTERRUPT_EVENT = 11,
    /* return the duration of playback. */
    AV_INFO_TYPE_DURATION_UPDATE = 12,
    /* return the playback is live stream. */
    AV_INFO_TYPE_IS_LIVE_STREAM = 13,
    /* return the message when track changes. */
    AV_INFO_TYPE_TRACKCHANGE = 14,
    /* return the message when subtitle track info updated. */
    AV_INFO_TYPE_TRACK_INFO_UPDATE = 15,
    /* return the subtitle of playback. */
    AV_INFO_TYPE_SUBTITLE_UPDATE = 16,
    /**
     * 音频输出设备改变时返回消息。<br> key为OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON：取值类型int32_t。系统通过int32_t传递value，应用需通过int32_t获取。
     */
    AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17,

    /**
     * @brief 播放速率成功应用时返回消息。
     *  key为OH_PLAYER_PLAYBACK_RATE：取值类型float。系统通过float传递value，应用通过float获取。
     * 
     * @since 20
     */
    AV_INFO_TYPE_PLAYBACK_RATE_DONE = 18,
  
    /**
     * @brief 超分辨率变化时返回消息。
     * 
  ^   * @since 23
     */
    AV_INFO_TYPE_SUPER_RESOLUTION_CHANGED = 19,
} AVPlayerOnInfoType5播放缓冲消息类型定义%enum AVPlayerBufferingType {
    /**
     * 缓冲开始消息。
     */
    AVPLAYER_BUFFERING_START = 1,

    /**
     * 缓冲结束消息。
     */
    AVPLAYER_BUFFERING_END,

    /**
     * 缓冲执行进度百分比，取值范围整数，[0, 100]。
     */
    AVPLAYER_BUFFERING_PERCENT,

    /**
     * 缓冲数据可播放时长，单位：毫O。
     */
    AVPLAYER_BUFFERING_CACHED_DURATION,
} AVPlayerBufferingType5枚举轨道po{typedef enum AVPlayerTrackSwitchMode {
    /**
     * 平滑切换轨道。
     */
    AV_TRACK_SWITCH_MODE_SMOOTH = 0,
    /**
     * 按片段切换轨道。
     */
    AV_TRACK_SWITCH_MODE_SEGMENT = 1,
    /**
     * 切换到最接近的S道。
     */
    AV_TRACK_SWITCH_MODE_CLOSEST = 2,
} AVPlayerTrackSwitchMode5Result of Video outputpatypedef enum OH_VideoOutputResult {
    /**
     * @brief Output one decoded video frame.
    =    */
    OH_VIDEO_OUTPUT_OK = 0,
    /**
     * @brief NY       */
   0= 1,
} OH_VideoOutputResult5'%.状态的关键字，对应值类型是int32_t"extern const char* OH_PLAYER_STATE5'%状态变更原因的关键字，对应值类型是int32_t。
 * 1：用户操作触发；2：系统变更触发。
 * 
 * @0extern const char* OH_PLAYER_STATE_CHANGE_REASON5',音量的关键字，对应值类型是float#extern const char* OH_PLAYER_VOLUME5'比特率列表的关键字，对应值类型是uint8_t字节数组。通过该关键字获取信息时：
 * 需要先使用uint8_t类型指针变量保存比特率列表，使用size_t类型变量保存字节数组长度。
 * 然后分配若干个uicnt32_t类型的存储空间，接收将uint8_t字节数组转换为uint32_t类型比特率整数值*extern const char* OH_PLAYER_BITRATE_ARRAY5':音频打断类型的关键字，对应值类型是int32_t1extern const char* OH_PLAYER_AUDIO_INTERRUPT_TYPE5'?音频打断FORCE类型的关键字，对应值类型是int32_t2extern const char* OH_PLAYER_AUDIO_INTERRUPT_FORCE5'>音频打断HINT类型的关键字，对应值类型是int32_t1extern const char* OH_PLAYER_AUDIO_INTERRUPT_HINT5'@音频设备变更原因的关键字，对应值类型是int32_t7extern const char* OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON5'缓冲更新消息类型的关键字，对应值类型是{@link AVPlayerBufferingType}。
 * 通过该关键字获取信息时U，需要先使用int32_t类型变量保存结果，再转换为AVPlayerBufferingType .+extern const char* OH_PLAYER_BUFFERING_TYPE5'缓冲更新消息数值的关键字，对应值类型是int32_t，参见{@link AVPlayerBufferingType}。
 * 当缓冲更新U息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效,extern const char* OH_PLAYER_BUFFERING_VALUE5';Seek后播放进度的关键字，对应值类型是int32_t*extern const char* OH_PLAYER_SEEK_POSITION5'%倍速信息的关键字, 对应值类型是{@link AVPlaybackSpeed}。
 * 通过该关键字获取信息时，需要先使用i<nt32_t类型变量保存结果，再转换为AVPlaybackSpeed .+extern const char* OH_PLAYER_PLAYBACK_SPEED5'比特率列表的关键字，对应值类型是uint8_t字节数组。通过该关键字获取信息时：
 * 需要先使用uint8_t类型指针变量保存比特率列表，使用size_t类型变量保存字节数组长度。
 * 然后分配若干个uicnt32_t类型的存储空间，接收将uint8_t字节数组转换为uint32_t类型比特率整数值$extern const char* OH_PLAYER_BITRATE5'%4进度信息的关键字，对应值类型是int32_t-extern const char* OH_PLAYER_CURRENT_POSITION5'@媒体资源时长信息的关键字，对应值类型是int64_t%extern const char* OH_PLAYER_DURATION5'4宽度信息的关键字，对应值类型是int32_t(extern const char* OH_PLAYER_VIDEO_WIDTH5'.信息的关键字，对应值类型是int32_t)extern const char* OH_PLAYER_VIDEO_HEIGHT5'%X器消息信息的关键字，对应值类型是int32_t。
 * 1：视频帧开始渲染)extern const char* OH_PLAYER_MESSAGE_TYPE5'a媒体资源是否为直播类型信息的关键字，对应值类型是int32_t。
 * 1：直播Yextern const char* OH_PLAYER_IS_LIVE_STREAM;

/**
 * Sei message key for payload type.{^extern const char* OH_PLAYER_SEI_PAYLOAD_TYPE;

/**
 * Sei message key for payload content.{0extern const char* OH_PLAYER_SEI_PAYLOAD_CONTENT5分辨率功能启用状态关键字，值类型为int32_t。值为1表示已启用，0表示未启用；用于超分辨率$态变化时的信息回调。
 * {:extern const char* OH_PLAYER_SUPER_RESOLUTION_ENABLE_STATE5P道切换信息中表示轨道索引的关键字，值类型为int32_t。
 * {:extern const char* OH_PLAYER_TRACH_CHANGE_INFO_TRACK_INDEX5_道切换信息中表示轨道是否被选中的标志关键字，值类型为int32_t。
 * {=extern const char* OH_PLAYER_TRACH_CHANGE_INFO_TRACK_SELECTED5Q字幕更新信息中表示持续时间的关键字，值类型为int32_t。
 * {:extern const char* OH_PLAYER_SUBTITLE_UPDATE_INFO_DURATION5Q字幕更新信息中表示起始时间的关键字，值类型为int32_t。
 * {<extern const char* OH_PLAYER_SUBTITLE_UPDATE_INFO_START_TIME5e字幕更新信息中表示字幕文本内容的关键字，值类型为字符串（string）。
 * {6extern const char* OH_PLAYER_SUBTITLE_UPDATE_INFO_TEXT5'有效播放速率的关键字，对应值类型是浮点数。
 * 
 * @since 20
 */
extern const char* OH_PLAYER_PLAYBACK_RATE;
 K资源是否包含视频轨信息的关键字，对应值类型int32_t。
 * 1：包含视频轨，0：不包含视频轨。
I * 
 * @since 22
 */
extern const char* OH_PLAYER_MD_KEY_HAS_VIDEO;
 K资源是否包含音频轨信息的关键字，对应值类型int32_t。
 * 1：包含音频轨，0：不包含音频轨。
I * 
 * @since 22
 */
extern const char* OH_PLAYER_MD_KEY_HAS_AUDIO;
 K资源是否包含字幕轨信息的关键字，对应值类型int32_t。
 * 1：包含字幕轨，0：不包含字幕轨。
L * 
 * @since 22
 */
extern const char* OH_PLAYER_MD_KEY_HAS_SUBTITLE;
 K资源轨道下标信息的关键字，对应值类型int32_t。
 * 
 * @since 22
 */
extern const char* OH_PLAYER_MD_KEY_T
RACK_INDEX5收到播放器消息1Stype 信息类型。类型为{@link AVPlayerOnInfoType}，与extra的对应关系可见方法描述。
 * @param extra 其他,息，如播放文件的开始时间位置`B8?@$/
typedef void (*OH_AVPlayerOnInfo)a&AVPlayerOnInfoType type, int32_t extran收到播放器消息时被调用。如果应用成功设置该回调，则不会回调OH_AVPlayerOnInfo函数(J8type 信息类型。具体请参见{@link AVPlayerOnInfoiKinfoBody 指向携带具体消息的指针，仅在该回调方法内有效qP该回调函数时提供的60d//	@.AVPlayerOnInfoType type, OH_AVFormat* infoBodyr*+在API version 9以上的版本发生错误1SDerrorCode 错误码。
 * AV_ERR_NO_MEMORY：无内存，取值为1o~$操作不允许，取值为2a无效值，取值为3。
 * AV_ERR_IO：IO错误，取值为4。
 * AV_ERR_TIMEOUT：超时错误，取值为5。
 * AV_ERR$_UNKNOWN：未知错误，取值为6\服务死亡，取值为7aSTATE：当前状态不支持此操作，取值为8。
 * AV_ERR_UNSUPPORT：未支持的接口，取值为9。
 * AV_ERR_EXTYEND_START：扩展错误码初始值，取值为100。
 * @param errorMsg Error message.NBJA)
 */
typedef void (*OH_AVPlayerOnError)'errorCode, const char *errorMsQf发生错误时被调用。如果应用成功设置该回调，则不会调用OH_AVPlayerOnError函数(JDerrorCode 错误码。
 * AV_ERR_NO_MEMORY：无内存，取值为1o~$操作不允许，取值为2a无效值，取值为3。
 * AV_ERR_IO：IO错误。API version 12-13取值为4；API version 14及以后，对应错误细化为错误码5411001~5411011。
 * AV_ERR_TIMEOUT：超时错误，取值为5。
 * AV_ERR_UNKNOWN：未知错误，取值为6\服务死亡，取值为7aSTATE：当前状态不支持此操作，取值为8。
 * AV_ERR_UNSUPPORT：未支持的接口，取值为9。
 * AV_ERR_EXTEND_START：扩展错误码初始值，取值为100。
 * @param errorMsg Error message, only valid in callback function.
 * qPointer to user specific data.ALA$errorCode, const char *errorMsgr*包含了OH_AVPlayerOnInfo和OH_AVPlayerOnError回调函数指针的集合。应用需注册此实例结构体到OH_AVPlayer实P例中，并对回调上报的信息进行处理，保证AVPlayer的正常运行(;onInfo Monitor OH_AVPlayer operation information, refer to ??C
 * @param onError Monitor OH_AVPlayer operation errors, refer to ?NBJ?@	BA
 */
typedef struct AVPlayerCallback {
    OH_AVPlayerOnInfo onInfo;
    OH_AVPlayerOnError onError;
} AVPlayerCallback;
5!当计算出最大音频电平值1$".
 * @param amplitudes The pointer to the maximum audio level values array.
 * Note: the amplitudes array will be released after callback automatically.
 * If necessary, user need copy the data for the further use.
 * @param size 最大音频电平^tq	Pointer to user specific data.{typedef void (*r$!double *amplitudes, uint32_t sizer*i用于获取SEI消息的回调处理函数。在订阅SEI消息事件时使用，回调返回详细的SEIA!(vSEI message array.
 * Note: the message array will be released after callback automatically.
 * If necessary, user need copy Fthe data for the further use.
 * @param playbackPosition 播放位置qPointer to user specific data{typedef void (*	v'@1Bw ,
    int32_t playbackPosition,s%'g统计指标信息中的准备时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * {7extern const char* OH_MEDIA_EVENT_INFO_PREPARE_DURATION5'统计指标信息中的资源链接建立时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * 
 * @since {	Cextern const char* OH_MEDIA_EVENT_INFO_RESOURCE_CONNECTION_DURATION5'统计指标信息中的首帧解封装时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * 
 * @since 23{Iextern const char* OH_MEDIA_EVENT_INFO_FIRST_FRAME_DECAPSULATION_DURATION5'm统计指标信息中的累计播放时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * {9extern const char* OH_MEDIA_EVENT_INFO_TOTAL_PLAYING_TIME5'm统计指标信息中的媒体资源加载请求累计次数的关键字，对应值类型为uint32_t。
 * {=extern const char* OH_MEDIA_EVENT_INFO_DOWNLOAD_REQUEST_COUNT5'统计指标信息中的媒体资源加载总时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * 
 * @sin{:extern const char* OH_MEDIA_EVENT_INFO_DOWNLOAD_TOTAL_TIME5'l统计指标信息中的已加载媒体资源累计字节数的关键字，对应值类型为int64_t。
 * {:extern const char* OH_MEDIA_EVENT_INFO_DOWNLOAD_TOTAL_SIZE5'[统计指标信息中的累计卡顿次数的关键字，对应值类型为uint32_t。
 * {5extern const char* OH_MEDIA_EVENT_INFO_STALLING_COUNT5'm统计指标信息中的累计卡顿时长的关键字，对应值类型为uint32_t，单位为毫秒。
 * {oextern const char* OH_MEDIA_EVENT_INFO_TOTAL_STALLING_TIME;

/**
 * Playback info key for server ip address.{cextern const char* OH_PLAYER_SERVER_IP_ADDRESS;

/**
 * Playback info key for downloading state.{^extern const char* OH_PLAYER_IS_DOWNLOADING;

/**
 * Playback info key for buffer duration.{]extern const char* OH_PLAYER_BUFFER_DURATION;

/**
 * Playback info key for download rate.{cextern const char* OH_PLAYER_DOWNLOAD_RATE;

/**
 * Playback info key for average download rate.{.extern const char* OH_PLAYER_AVG_DOWNLOAD_RATE$	#endif //-BASH_H
)/>x'\سc4gRecord*+request capability for Recorder.
 *
 * @s*<Recorder
 * @since 18
 * @}
 */
/**
 * @file avrecorder>QRecorder接口。应用可使用媒体AVRecorder提供的接口录制媒体数据s-recorder.so
 * @since 186RECORDER1fRECORDER_H

#include <memory>
#include <stdint.h>
#include <stdio.h>
#include "avrecorder_base.h"O5errors.h"
#include "native_window/external_window.h"O .创建AVRecorder实例。调用成功之后进入AVRECORDER_IDLE状态。
 * 
 * @return 成功时返回指向OH_AVRecordere例的指针，失败时返回nullptr。
 * @since 18
*/
OH_AVRecorder *OH_AVRecorder_Create(voidA配置AVRecorder参数，准备录制。必须在{@link OH_AVRecorder_Create}成功触发之后调用，调用成功之后进AVRECORDER_PREPARED状态。
 * 若只录制音频，则无需配置视频相关参数；同理，若只录制视频，则无I需配置音频相关参数。
 * 
 * @param recorder 指向OH_AVRecord9 !config 指向OH_AVRecorder_Config9return AV_ERR_OK：执行成功>输入的recorder为nullptr或者准备失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Prepare(OH_AVRecorder *recorder, OH_AVRecorder_Config *confiA07前的录制参数。此接口必须在录制准备完成后调用。
 * 传入的*config必须为nullptr，由框架层统分配和释放内存，以避免内存管理混乱，防止内存泄漏或重复释放等问题。
 * 
 * @param recorder 指向OH_AVRecord9 !config 指向OH_AVRecorder_Config9return AV_ERR_OK：执行成功>3输入的recorder为nullptr或\*config不为nullptrz>内存不足，\*config内存分配失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAVRecorderConfig(OH_AVRecorder *&recorder, OH_AVRecorder_Config **confiAP!输入Surface。必须在{@link OH_AVRecorder_Prepare}成功触发之后，{@link OH_AVRecorder_Start}之前调用。
 * 此Surface提供给调用者，调用者从此Surface中获取Surface Buffer，填入相应的视频数据。
 * 
 * @param recorder 指向OH_AVRecord9 window 指向OHNativeWindow9return AV_ERR_OK：执行成功>输入的recorder为nullptr。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetInputSurface(OH_AVRecorder *recorder, OHNativeWindow **windowA更新视频旋转角度。必须在{@link OH_AVRecorder_Prepare}成功触发之后，{@link OH_AVRecorder_Start}之前调用〓9recorder 指向OH_AVRecord9 rotation 视频旋转角度，必须是整数 [0, 90, 180, 270] 中的一个。
 * @return AV_ERR_OK：执行成功。
 * AV_>输入的recorder为nullptr或输入的rotation不符合要求或更新方向失败。
 * @since 18
 */
OH_AVErrCode OH_AVRe?corder_UpdateRotation(OH_AVRecorder *recorder, int32_t rotationA始录制。必须在{@link OH_AVRecorder_Prepare}成功触发之后调用，调用成功之后进入AVRECORDER_STARTED状态.。
 * 
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或启动失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Start(OH_AVRecorder *recorder);
A暂停录制。必须在{@link OH_AVRecorder_Start}成功触发之后，处于AVRECORDER_STARTED状态时调用，调用成功后进入AVRECORDER_PAUSED状态。
 * 之后可以通过调用{@link OH_AVRecorder_Resume}恢复录制，重新进入AVRECO@RDER_STARTED状态。
 * 
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或暂停失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Pause(OH_AVRecorder *recorder);
A恢复录制。必须在{@link OH_AVRecorder_Pause}成功触发之后，处于PAUSED状态时调用，调用成功之后重新K入AVRECORDER_STARTED状态。
 * 
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或恢复失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Resume(OH_AVRecorder *recorder);
A止录制。必须在{@link OH_AVRecorder_Start}成功触发之后调用，调用成功之后进入AVRECORDER_STOPPED状态
 * 纯音频录制时，需要重新调用{@link OH_AVRecorder_Prepare}接口才能重新录制。
 * 纯视频录制、音视频录制时，需要重新调用{@link OH_AVRecorder_Prepare}和{@link OH_AVRecorder_GetInputSurface}接口才能重新录0。
 * 
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或停止失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Stop(OH_AVRecorder *recorder);

A重置录制状态。必须在非AVRECORDER_RELEASED状态下调用，调用成功之后进入AVRECORDER_IDLE状态。
 * 纯频录制时，需要重新调用{@link OH_AVRecorder_Prepare}接口才能重新录制。
 * 纯视频录制、音视频录时，需要重新调用{@link OH_AVRecorder_Prepare}和{@link OH_AVRecorder_GetInputSurface}接口才能重新录制。
 * &
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或重置失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Reset(OH_AVRecorder *recorder);
A释放录制资源。调用成功之后进入AVRECORDER_RELEASED状态。
 * 调用此接口释放录制资源后，recorder存将释放，应用层需要显式地将recorder指针置空，避免访问野指针。释放音视频录制资源之后，^OH_AVRecorder实例不能再进行任何操作。
 * 
 * @param recorder 指向OH_AVRecord9return AV_ERR_OK：执行成功>输入的recorder为nullptr或释放失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_Release(OH_AVRecorder *recorder);AP!AVRecorder可用的编码器和编码器信息。
 * 参数*info必须为nullptr，由框架层统一分配和释放内存，避免内存管理混乱，防止内存泄漏或重复释放等问题。
 * 
 * @param recorder 指向OH_AVRecorder实例皓9$info 指向OH_AVRecorder_EncoderInfo9Glength 可用编码器的长度。
 * @return AV_ERR_OK：执行成功>输入的 recorder 为nullptrz>内存不足，\*info内存分配失败。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_GetAvailableEncoder(OH_AVRecorder *re>corder, OH_AVRecorder_EncoderInfo **info,
    int32_t *lengthA设置状态回调函数，以便应用能够响应AVRecorder生成的状态变化事件。此接口必须在{@link OH_AVRecorder_Start}调用之前9recorder 指向OH_AVRecord9 callback 状态回调函数LI指向用户特定数据的指针。
 * @return AV_ERR_OK：执行成功>输入的recorder为nullptr或回调函数为nullptr。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetStateCallback(
    O=H_AVRecorder *recorder, OH_AVRecorder_OnStateChange callback,E$设置错误回调函数，以便应用能够响应AVRecorder生成的错误事件。此接口必须在{@link OH_AVRecorder_Start}调用之前9recorder 指向OH_AVRecord9 callback 错误回调函数LI指向用户特定数据的指针。
 * @return AV_ERR_OK：执行成功>输入的recorder为nullptr或回调函数为nullptr。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetErrorCallback(OH_AVRe1corder *recorder, OH_AVRecorder_OnError callback,E$设置URI回调函数，以便应用能够响应AVRecorder生成的URI事件。此接口必须在{@link OH_AVRecorder_Start}调	用之前9recorder 指向OH_AVRecord9 callback URI回调函数LI指向用户特定数据的指针。
 * @return AV_ERR_OK：执行成功>输入的recorder为nullptr或回调函数为nullptr。
 * @since 18
 */
OH_AVErrCode OH_AVRecorder_SetUriCallback(OH_AVReco-rder *recorder, OH_AVRecorder_OnUri callback,E$R设置是否开启静音打断模式。
 * 
 * @param recorder 指向OH_AVRecord9 muteWhenInterrupted 设置是否开启静音打断模式。设置成true表示当应用需要录制时保持静音而不是被断，设置成false表示应用录制打断时停止录音而不是保持静音。
 * @return AV_ERR_OK：执行成功。
>4输入的recorder为nullptr或回调函数为nullptr,D 数在无效状态下调用，应先处于准备状态。
 * @since 20
 */
OH_AVErrCode OH_AVRecorder_SetWillMuteWhenInter8rupted(OH_AVRecorder *recorder, bool muteWhenInterruptedA07前音频最大振幅。获取到的值为最近两次调用之间的最大振幅。例如，在1s时获取过一次最大振幅，然后在2s时再次调用该方法，那么返回值是1s到2s之间的最大振幅值。
 * 该方法只能在{@link O\H_AVRecorder_Prepare}方法调用之后，且必须在{@link OH_AVRecorder_Stop}方法之前9recorder 指向OH_AVRecord9 Pamplitude 获取到的音频最大振幅。
 * @return AV_ERR_OK：执行成功>-输入的参数recorder或amplitude为nullptr,D不支持在当前状态下调用，应当在OH_AVRecorder_Prepare之后和OH_AVRecorder_Stop之前调用此接口。
 * AV_ER>内存不足y?%。
 * @since 26.0.0
 */
OH_AVErrCode OH_AVRecorder_GetAudioCapturerMaxAmplitude(OH_AVRecorder *recorder, int32_t* amplitudeA设置录制的元数据信息。如果metadata参数与config.metadata.customInfo（参考{@link OH_AVRecorder_Prepare}和{@link OH_AVRecorder_Config}
 * ）中存在相同的键，前者的对应值将覆盖后者。
 * 该方法只能在OH_AVRecordePr_Prepare方法调用之后，且必须在{@link OH_AVRecorder_Stop}方法之前9recorder 指向OH_AVRecord9 metadata 设置的元数据信息。格式为字符串键值对，其中，键需要以"com.openharmony."开头，且值的长B不能超过256个字节。
 * @return AV_ERR_OK：执行成功>[输入的参数recorder或metadata为nullptr，或者metadata中的值长度超过256字节,D不支持在当前状态下调用，应当在OH_AVRecorder_Prepare之后和OH_AVRecorder_Stop之前调用此接口。
 * AV_ER>内存不足y?%。
 * @since 26.0.0
 */
OH_AVErrCode OH_AVRecorder_SetMetadata(OH_AVRecorder *recorder, const OH_AVFormat *metadata);

#iXWsW1RECORDER_H
4x/cPA_baseA(了媒体AVRecorder的结构体和枚举M 8BASE0:BASE_H

#include <string!/"multimedia/media_library/media_asset_base_capi,D始化AVRecorder。
 * *typedef struct OH_AVRecorder OH_AVRecorder$AVRecorder的音频源类型。
 * typedef enum OH_AVRecorder_AudioSourceType {
    /* Default audio source type. */
    AVRECORDER_DEFAULT = 0,
    /* Source type mic. */
    AVRECORDER_MIC = 1,
    /* Source type Voice recognition. */
    AVRECORDER_VOICE_RECOGNITION = 2,
    /* Source type Voice communication. */
    AVRECORDER_VOICE_COMMUNICATION = 7,
    /* Source type Voice message. */
    AVRECORDER_VOICE_MESSAGE = 10,
    /* Source type Camcorder. */
    AVRECORDER_CAMCORDER = 13,
} OH_AVRecorder_AudioSourceType;

$AVRecorder的视频源类型。
 * typedef enum OH_AVRecorder_VideoSourceType {
    /* Surface raw data. */
    AVRECORDER_SURFACE_YUV = 0,
    /* Surface ES dHata. */
    AVRECORDER_SURFACE_ES = 1,
} OH_AVRecorder_VideoSourceType编码器MIME类型。
 * typedef enum OH_AVRecorder_CodecMimeType {
    /* H.264 codec MIME type. */
    AVRECORDER_VIDEO_AVC = 2,
    /* AAC codec MIME type. */
    AVRECORDER_AUDIO_AAC = 3,
    /* mp3 codec MIME type. */
    AVRECORDER_AUDIO_MP3 = 4,
    /* G711-mulaw codec MIME type. */
    AVRECORDER_AUDIO_G711MU = 5,
    /* MPEG4 codec MIME type. */
    AVRECORDER_VIDEO_MPEG4 = 6,
    /* H.265 codec MIME type. */
    AVRECORDER_VIDEO_HEVC = 8,
    /* AMR-NB codec MIME type. */
    AVRECORDER_AUDIO_AMR_NB = 9,e
    /* AMR-WB codec MIME type. */
    AVRECORDER_AUDIO_AMR_WB = 10,
} OH_AVRecorder_CodecMimeTypeB容器格式类型（容器格式类型的缩写是 CFT）。
 * K/
typedef enum OH_AVRecorder_ContainerFormatType {
    /* A video container format type mp4. */
    AVRECORDER_CFT_MPEG_4 = 2,
    /* An audio container format type m4a. */
    AVRECORDER_CFT_MPEG_4A = 6,
    /* An audio container format type amr. */
    AVRECORDER_CFT_AMR = 8,
    /* An audio container format type mp3. */
    AVRECORDER_CFT_MP3 = 9,
    /* An audio container format type wav. */
    AVRECORDER_CFT_WAV = 10,
    
    /**
     * @brief 音频容器格式类型aac（带ADTSo）。
     *  
     * @since 20
     */
    AVRECORDER_CFT_AAC = 11,
} OH_AVRecorder_ContainerFormatTypeAVRecorder状态。
 * typedef enum OH_AVRecorder_State {
    /* idle states */
    AVRECORDER_IDLE = 0,
    /* prepared states */
    AVRECORDER_PREPARED = 1,
    /* started states */
    AVRECORDER_STARTED = 2,
    /* paused states */
    AVRECORDER_PAUSED = 3,
    /* stopped states */
    AVRECORDER_STOPPED = 4,
    /* released states */
    AVRECORDER_RELEASED = 5,
    /* error states5 */
    AVRECORDER_ERROR = 6,
} OH_AVRecorder_State'AVRecorder状态变化的原因。
 * typedef enum OH_AVRecorder_StateChangeReason {
    /* State changed by user operation */
    AVRECORDER_USER = 0,
    /* Staete changed by background action */
    AVRECORDER_BACKGROUND = 1,
} OH_AVRecorder_StateChangeReasonn录制文件的模式。
 * typedef enum OH_AVRecorder_FileGenerationMode {
    /* Application Creation */
    AVRECORDER_APP_CREATE = 0,
    /* System Creation. Valid only in camera scene */
    AVRECORDER_AUTO_CREATE_CAMERA_SCENE = 1,
} OH_AVRecorder_FileGenerationMode;

/,定义音视频录制的详细参数。
 * typedef struct OH_AVRecorder_Profile {
    /* Indicates the audio bitrate, in bit/s */
    int32_t audioBitrate;
    /* Indicates the number of audio channels */
    int32_t audioChannels;
    /* Indicates the audio encoding format */
    OH_AVRecorder_CodecMimeType audioCodec;
    /* Indicates the audio sampling rate, in Hz */
    int32_t audioSampleRate;
    /* Indicates the output file format */
    OH_AVRecorder_ContainerFormatType fileFormat;
    /* Indicates the video bitrate, in bit/s */
    int32_t videoBitrate;
    /* Indicates the video encoding format */
    OH_AVRecorder_CodecMimeType videoCodec;
    /* Indicates the video width, in px */
    int32_t videoFrameWidth;
    /* Indicates the video height, in px */
    int32_t videoFrameHeight;
    /* Indicates the video frame rate, in fps */
    int32_t videoFrameRate;
    /* Whether to record HDR video */
    bool isHdr;
    /* Whether to encode the video in temporal scale mode */
    bool enableTemporalScale;
} OH_AVRecorder_Profile.供媒体资源的地理位置信息。
 * typedef struct OH_AVRecorder_Location {
    /* Latitude */
    float latitude;
    /* Longitude */
    float longitude;
} OH_AVRecorder_Location&定义元数据的基本模板。
 * typedef struct OH_AVRecorder_MetadataTemplate {
    /* key value of the metadata */
    char *key;
    /* contents of the me=tadata */
    char *value;
} OH_AVRecorder_MetadataTemplate#元数据信息数据结构。
 * typedef struct OH_AVRecorder_Metadata {
    /* The metadata to retrieve the content type or genre of the data source */
    char *genre;
    /* The metadata to retrieve the information about the video orientation */
    char *videoOrientation;
    /* The geographical location info of the video */
    OH_AVRecorder_Location location;
    /* Custom parameter key-value map rdead from moov.meta.list */
    OH_AVRecorder_MetadataTemplate customInfo;
} OH_AVRecorder_Metadata,供媒体AVRecorder的配置定义。
 * typedef struct OH_AVRecorder_Config {
    /* Indicates the recording audio source type */
    OH_AVRecorder_AudioSourceType audioSourceType;
    /* Indicates the recording video source type */
    OH_AVRecorder_VideoSourceType videoSourceType;
    /* Contains the audio and video encoding profile settings */
    OH_AVRecorder_Profile profile;
    /* Defines the file URL */
    char *url;
    /* Specifies the file generation mode for recording output */
    OH_AVRecorder_FileGenerationMode fileGenerationMode;
    /* Contains additional metadata for the recorded media */
    OH_AVRecorder_Metadata metadata;
    /* Seth the longest duration allowed for current recording */
    int32_t maxDuration;
} OH_AVRecorder_Config示类型的范围。
 * K/
typedef struct OH_AVRecorder_Range {
    /* lower limit of the range */
    int32_t min;
    /* upper limit of the range +*/
    int32_t max;
} OH_AVRecorder_Range供编码器信息。
 * K/
typedef struct OH_AVRecorder_EncoderInfo {
    /* encoder format MIME */
    OH_AVRecorder_CodecMimeType mimeType;
    /* encoder type, audio or video */
    char *type;
    /* audio or video encoder bitRate range */
    OH_AVRecorder_Range bitRate;
    /* video encoder frame rate range */
    OH_AVRecorder_Range frameRate;
    /* video encoder width range */
    OH_AVRecorder_Range width;
    /* video encoder height range */
    OH_AVRecorder_Range height;
    /* audio encoder channel range */
    OH_AVRecorder_Range channels;
    /* audio encoder sample rate collection */
    int32_t *sampleRate;
    /* leSngth of sampleRate list */
    int32_t sampleRateLen;
} OH_AVRecorder_EncoderInfo当录制状态发生变化时"#
+Ostate 表示录制器状态。
 * @param reason 录制器状态变化的原因#q%$y+typedef void (*OH_AVRecorder_OnStateChange)]G
    OH_AVRecorder_State state, OH_AVRecorder_StateChangeReason reason|&%!当录制过程中发生错误时"#
+cerrorCode 错误码，详细说明请参见{@link OH_AVErrCode}。
 * @param errorMsg 错误信息#q%$y%typedef void (*OH_AVRecorder_OnError)]%errorCode, const char *errorMsg,
   }&$	当录制*CFileGenerationMode}.AVRECORDER_AUTO_CREATE_CAMERA_SCENE模式下时"#
+asset OH_MediaAsset#	q%$y#typedef void (*OH_AVRecorder_OnUri)]#MediaAsset *asset, void *userData);/R1EBASE_H
<^?xE2Pq/*
 * Copyright (c) 2025[,uTranscoBTransco9Transcoder
 * @since 20transcoder.h
 *
 * @brief 定义AVTranscoder接口。使用AVTranscoder提供的Native API将源视频文件转码为新视文件-"transcoder.so
 * @since 20
 */
&AVTRANSCODER(AVTRANSCODER_H
e <stdio.h>
#include "avtranscoder_base.h"
#include "native_avcodec_base.h"
#include "native_averrors.h"

#ifdef __cplusplus+建转码配置参数实例。
 * 
 * @return 如果创建成功返回指向OH_AVTranscoder_Config实例的指针，否则Z回空指针。
 * @since 20
 */
OH_AVTranscoder_Config *OH_AVTranscoderConfig_Create(Q&`释放转码配置参数资源。
 * 调用成功后，config实例会被释放并置为nullptr$config Pointer to an OH_AVTranscoder_Config instance.
 * @return AV_ERR_OK：释放成功。
 * AV_ERR_INVALID_VAL：configk空指针。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_Release(OH_AVTranscoder_Config* configQ&f设置转码源视频的文件描述符。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance.
 * @param srcFd Source file descriptor.
 * @param srcOffset The offset into the file where the data to be read, in bytes.
 * @param length The length in bytes of the data to be read
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入config为空指针，或者源视频文件相关参数错误。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetSrcFD(
    OH_AVTranscoder_Config *config, int32_t srcFd, int64_t srcOffset, int64_t lengthQ&i设置转码输出视频的文件描述符。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance
 * @param dstFd Destination file descriptor
 * @return AV_ERR_OK：设成功。
 * AV_ERR_INVALID_VAL：输入config为空指针，或者输出视频文件描述符是无效的。
 * @since 20
^ */
OH_AVErrCode OH_AVTranscoderConfig_SetDstFD(OH_AVTranscoder_Config *config, int32_t dstFdQ&设置用于转码的输出视频的编码格式。
 * 当前仅支持AVC和HEVC。若源视频编码格式为HEVC，则默认g设置为HEVC，否则默认设置为AVC。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance
 * @param mimeType Destination video mime type. See native_avcodec_base.h
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针，或者mimeType是不被允许。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstVideoType(OH_AVTranscoder_Config *config, const char *mimeTypeQ&设置用于转码的输出音频的编码格式。
 * 当前仅支持AAC。若开发者不设置，则默认设置为AAC。
: * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance
 * @param mimeType Destination audio mime type. See native_avcodec_base.h
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针，或者mimeType是不被允许。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstAudioType(OH_AVTranscoder_Config *config, const char *mimeTypeQ&设置用于转码的输出视频文件的封装格式。
 * 当前封装格式仅支持MP4。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance
 * @param mimeType Destination file type. See native_avcodec_base.h
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针，或者mimeType是无效的。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstFileType(OH_AVTranscoder_Config *config, OH_AVOutputFormat mimeType);

W&i设置用于转码的输出音频的码率。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#Xconfig Pointer to an OH_AVTranscoder_Config instance
 * @param bitrate Destination audi.
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针，或者bitrate值是无效的
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstAudioBitrate(OH_AVTranscoder_Config *config, int32_t bitrate);
U&i设置用于转码的输出视频的码率。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#Sconfig Pointer to an OH_AVTranscoder_Config instance
 * @param bitrate Destination.
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针，或者bitrate值是无效的
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstVideoBitrate(OH_AVTranscoder_Config *config, int32_t bitrate);
U&设置用于转码的输出视频的分辨率，单位为像素（px），其中width为输出视频帧的宽，height为输出N视频帧的高。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}之前!#config Pointer to an OH_AVTranscoder_Config instance
 * @param width Destination for video width, in px.
 * @param height Destination for video height, in px.
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针或者width、height值是无效的。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_SetDstVideoResolution(OH_AVTran4scoder_Config *config, int32_t width, int32_t heightQ&建转码实例。
 * 
 * @return 如果创建成功返回指向OH_AVTranscoder实例的指针，否则返回空指针。
? * @since 20
 */
OH_AVTranscoder *OH_AVTranscoder_Create(voidQ&进行视频转码的参数设置，准备转码。
 * 此函数必须在{@link OH_AVTranscoder_Start}之前调用，调用成*功之后进入AVTRANSCODER_PREPARED状态$transcoder Pointer to an OH_AVTranscoder instance
 * @param config Pointer to an OH_AVTranscoder_Config instance,
 * see {@link OH_AVTranscoder_Config}
 * @return AV_ERR_OK：成功设置视频转码的参数设置，进入AVTRANSCODER_PREPARED状态
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码准备操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT当前状态不允许执行Prepare操作，或者是不支持的格式。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服务已停止。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_Prepare(OH_AVTranscoder *transcoder, OH_AVTranscoder_Config *configQ&始转码。
 * 此函数必须在{@link OH_AVTranscoder_Prepare}成功调用之后调用，调用成功之后进入AVTRANSCODER_STARTED状态$transcoder Pointer to an OH_AVTranscoder instance
 * @return AV_ERR_OK：成功开始转码，进入AVTRANSCODER_STARTED状态。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码开始操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT当前状态不允许执行Start操作。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服务]停止。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_Start(OH_AVTranscoder *transcoderQ&暂停转码。
 * 此函数必须在转码实例处于AVTRANSCODER_STARTED状态时调用，调用成功之后进入AVTRANSCODER_PAUSED状态$transcoder Pointer to an OH_AVTranscoder instance
 * @return AV_ERR_OK：成功暂停转码，进入AVTRANSCODER_PAUSED状态
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码暂停操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT当前状态不允许执行Pause操作。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服务已\停止。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_Pause(OH_AVTranscoder *transcoderQ&恢复转码。
 * 此函数必须在转码实例处于AVTRANSCODER_PAUSED状态时调用，调用成功之后重新进入AVTRANSCODER_STARTED状态$transcoder Pointer to an OH_AVTranscoder instance
 * @return AV_ERR_OK：成功恢复转码，进入AVTRANSCODER_STARTED状态。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码恢复操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT当前状态不允许执行Resume操作。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服务_停止。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_Resume(OH_AVTranscoder *transcoderQ&消转码。
 * 此函数须在转码实例处于AVTRANSCODER_STARTED和AVTRANSCODER_PAUSED状态时调用，调用成功之%后进入AVTRANSCODER_CANCELLED状态$transcoder Pointer to an OH_AVTranscoder instance
 * @return AV_ERR_OK：成功取消转码，进入AVTRANSCODER_CANCELLED状。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码取消操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT：当前状态不允许执行Cancel操作。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服a已停止。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_Cancel(OH_AVTranscoder *transcoderQ&释放转码实例资源$transcoder Pointer to an OH_AVTranscoder instance
 * @return AV_ERR_OK：成功释放转码实例资源。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针，或者转码释放资源操作失败。
 * AV_ERR_OPERATE_NOT_PERMIT：当前状态不允许执行Release操作。
 * AV_ERR_IO：IO访问相关的错误。
 * AV_ERR_SERVICE_DIED：媒体服务已停止。
 * P@since 20
 */
OH_AVErrCode OH_AVTranscoder_Release(OH_AVTranscoder *transcoderQ&注册触发转码状态修改事件的回调方法。
 * 当触发状态修改事件时，通过注册的回调方法通知发者。
 * 开发者只能注册一个状态修改事件的回调方法，当开发者重复注册时，以最后一次注的回调接口为准。
 * 若开发者需监听转码状态修改，须在{@link OH_AVTranscoder_Prepare}之前注册转状态回调$transcoder Pointer to an OH_AVTranscoder instance
 * @param callback State callback function, see {@link OH_AVTranscoder_OnSta	teChange}#Pointer to user specific data
 * @return AV_ERR_OK：注册成功。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针或者callback是空指针。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_SetStateCallback(
    OH_AVTranscoder *transc,oder, OH_AVTranscoder_OnStateChange callback$%注册触发转码错误事件的回调方法。
 * 当触发错误事件时，通过注册的回调方法通知开发者。
 * 如果AVTranscoder上报error事件，开发者需要通过{@link OH_AVTranscoder_Release}操作退出转码操作。
 * 发者只能注册一个错误事件的回调方法，当开发者重复注册时，以最后一次注册的回调接口为准。
 * 若开发者需监听转码错误事件，须在{@link OH_AVTranscoder_Prepare}之前注册转码错误事件。
 * 
$
transcoder Pointer to an OH_AVTranscoder instance
 * @param callback Error callback function, see {@link OH_AVTranscoder_OnError}#Pointer to user specific data
 * @return AV_ERR_OK：注册成功。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针或者callback是空指针。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_SetErrorCallback(
    OH_AVTranscoder *transc&oder, OH_AVTranscoder_OnError callback$%注册触发转码进度更新事件的回调方法。
 * 当触发转码进度更新事件时，通过注册的回调方法知开发者。
 * 开发者只能注册一个错误事件的回调方法，当开发者重复注册时，以最后一次注的回调接口为准。
 * 若开发者需监听转码处理进度，则须在{@link OH_AVTranscoder_Prepare}之前注册事件$transcoder Pointer to an OH_AVTranscoder instance
 * @param callback Uri callback function,
 * see {@link OH_AVTranscoder_OnProgressUpdate}#Pointer to user specific data
 * @return AV_ERR_OK：注册成功。
 * AV_ERR_INVALID_VAL：输入的transcoder是空指针或者callback是空指针。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoder_SetProgressUpdateCallback(
    OH_AVTranscode8r *transcoder, OH_AVTranscoder_OnProgressUpdate callback$%转码设置输出视频B帧编码。
 * B帧视频编码相关的约束和限制可以参考文档{@link B帧视频编码约和限制}。
 * 如果当前不符合B帧视频编码的约束和限制，将忽略B帧，按不使能B帧进行编码。
$config Pointer to an OH_AVTranscoder_Config instance
 * @param enabled Whether enable B Frame. If this function is not called, B Frame is disabled.
 * @return AV_ERR_OK：设置成功。
 * AV_ERR_INVALID_VAL：输入的config为空指针。
 * @since 20
 */
OH_AVErrCode OH_AVTranscoderConfig_EnableBFrame(OH_AVTranscoder_Config *config, bool enabled);

#ifdef __cplusplus'5AVTRANSCODER_H

aUxqIG_base.h
 *
 * @brief 定义了媒体AVTranscoder的结构体和枚举AF/
 
#ifndefQ*BASEF5BASE_H

#include <string>~	?始化AVTranscoder。
 * !5.typedef struct OH_AVTranscoder OH_AVTranscodera	初始化A。
 * !5typedef struct

a5状态。
 * !5Ktypedef enum OH_AVTranscoder_State {
    /**
     * 准备
     */
    , = 1,
    /**
     * 开始
     */
    $ = 2,
    /**
     * 暂停
     */
    AVTRANSCODER_PAUSED = 3,
    /**
     * 取消
     */
    AVTRANSCODER_CANCELLaED = 4,
    /**
     * 完成
     */
    AVTRANSCODER_COMPLETED = 5
} OH_AVTranscoder_Statea5程的状态回调函数The p%?.
 * @param state Indicates the transcoder state. For details,A4State}.,2.!5typedef void (*,).State state>.%5#程中错误事件的回调函数E.
 * @param errorCode Error code.
 * {@link AV_ERR_NO_MEMORY} if memory is insufficient.
 * {@link AV_ERR_IO} if IO access failed.
 * {@link AV_ERR_INVALID_STATE} if current state does not support this operation.
 * {@link AV_ERR_UNSUPPORT} if unsupported function.
 * {@link+} if the parameter check failed.
 * {@link>} if operation not allowed.
 * @param errorMsg Error message.,2.!5'typedef void (*OH_AVTranscoder_OnError)-int32_t errorCode, const char *errorMsg,
   ?.$回调转码进度更新时1:.
 * @param progress Transcoding progress, in percentage.,2.!5typedef void (*5 )int32_t progress>.V8TBASE_H
s xQ5ʃw~LowPowerAudioSink
 * @{
 *
 * @brief The LowPowerAudioSink sub module provides variables, properties, and functions
 * for lowpower audio sink.
 *!/**
 * @file lowpower_audio_sinkNLowPowerAudioSink接口。使用LowPowerAudioSink提供的Native API进行音频通路的低功耗播放。
 * 
 * @library l&iblowpower_avsink.so
 * @kit MediaKit/LowPowerAVSink
#ifndef NATIVE_LOWPOWER_AUDIO_SINK_H
#define NATIVE_LOWPOWER_AUDIO_SINK_H

#include <stdint.h>
#include <stdio.h>
#include "native_averrors.h"
#include "native_avformat.h"
#include "lowpower_audio_sink_base.h"
#include "ohaudio/native_audiostre
am_base.h"A建LowPowerAudioSinkmime mime type description string, refer to {@link AVCODEC_MIME_TYPE}
 * @return 如果创建成功返回指向OH_LowPowerAudi/oSink实例的指针，否则返回空指针。OH_LowPowerAudioSink* OH_LowPowerAudioSink_CreateByMime(const char* mime);

/**
 * @brief 配置LowPowerAudioSink，需要.{@link OH_LowPowerAudioSink_Prepare}前完成sink Pointer to an OH_LowPowerAudioSink instance
 * @param format A pointer to an OH_AVFormat to give the description of the audio track to be decoded
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_UNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Configure(OH_LowPowerAudioSink* sink, const OH_AVFormat* format);

/**
 * @brief 为LowPowSerAudioSink设置参数，支持{@link OH_LowPowerAudioSink_Prepare}后动态设置sink Pointer to an OH_LowPowerAudioSink instance
 * @param format pointer to an OH_AVFormat instance
 * @return AV_ERR_OK：行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_UNSUPPORT：不支持的格式。
 * AV_aERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。eOH_AVErrCode OH_LowPowerAudioSink_SetParameter(OH_LowPowerAudioSink* sink, const OH_AVFormat* format)"取LowPowerAudioSink的相关参sink Pointer to an OH_LowPowerAudioSink instance
 * @param format pointer to an OH_AVFormat instance
 * @return AV_ERR_OK：行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。
OH_AVErrCode OH_LowPowerAudioSink_GetParameter(OH_LowPowerAudioSink* sink, OH_AVFormat* format);

/**
 * @brief 准备LowPowerAudioSink的解码、渲染资源，在{@link OH_LowPowerAudioSink_Configure}后调用。
 * 调用此接口前必须调用LFowPowerVideoSink的{@link OH_LowPowerVideoSink_SetSyncAudioSink}方法sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_UNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV,_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Prepare(OH_LowPowerAudioSink* sink);

/**
 * @brief 启动低功耗音频接收器，此口必须在{@link OH_LowPowerAudioSink_Prepare}成功后调用。
 * 启动成功后，LowPowerAudioSink将开始上报{@lin*k OH_LowPowerAudioSink_OnDataNeeded}事件sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_UNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV,_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Start(OH_LowPowerAudioSink* sink);

/**
 * @brief 暂停LowPowerAudioSink，在{@link OH_LowPowerAudioSink_Start}或{@link OH_LowPowerAudioSink_Resume}后调用。
 * 暂停成功后，LowPowerAudioSink将暂停{@lin3k OH_LowPowerAudioSink_OnDataNeeded}事件的上报sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Pause(OH_LowPowerAudioSink* sink);

/**
 * @brief 恢复LowPowerAudioSink，在{@link OH_LowPowerAudioSink_Pause}后调用。
 * 恢复成功后，LowPowerAudioSink将恢复{@link OH_LowPowerAudioSink_OnDataNeeded}件的上报sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Resume(OH_LowPowerAudioSink* sink);

/**
 * @brief 清除LowPowerAudioSink中所有解码和渲染缓存的输入输出数据。
 * 此接口不建议在{@link OH_LowPowerAudioSink_Start}或{@link OH_LowPowerAudioSink_Resume}之后调用。
 * 需要注意的是，如果编解码器之前已输入数据，则需要重新输入编解码数据sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。nOH_AVErrCode OH_LowPowerAudioSink_Flush(OH_LowPowerAudioSink* sink);

/**
 * @brief 停止LowPowerAudioSinksink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Stop(OH_LowPowerAudioSink* sink);

/**
 * @brief 重置LowPowerAudioSink。
 * 如果要U新使用该实例，需要调用{@link OH_LowPowerAudioSink_Configure}完成配置sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Reset(OH_LowPowerAudioSink* sink);

/**
 * @brief 清理LowPowerAudioSink内部资源，0毁LowPowerAudioSink实例。不能重复销毁sink Pointer to an OH_LowPowerAudioSink instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_Destroy(OH_LowPowerAudioSink* sink);

/**
 * @brief 为LowPowerAudioSink设置渲染音量sink Pointer to an OH_LowPowerAudioSink instance
 * @param volume Volume to set which changes from 0.0 to 1.0
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端=销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_SetVolume(OH_LowPowerAudioSink* sink, const float volume);

/**
 * @brief 为LowPowerAudioSink设置音频渲染倍速sink Pointer to an OH_LowPowerAudioSink instance
 * @param speed The playback speed value needs to be specified, the valid value is 0.25-4.0
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_S\ERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_SetPlaybackSpeed(OH_LowPowerAudioSink* sink, const float speed);

/**
 * @brief 给LowPowerAudioSink输入buffersink Pointer to an OH_LowPowerAudioSink instance
 * @param samples Pointer to an OH_AVSamplesBuffer instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体服务端已<销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_ReturnSamples(OH_LowPowerAudioSink* sink, OH_AVSamplesBuffer* samples);

/**
 * @brief 为LowPowerAudioSink注册回调sink Pointer to an OH_LowPowerAudioSink instance
 * @param callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：媒体G务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSink_RegisterCallback(OH_LowPowerAudioSink* sink, OH_LowPowerAudioSinkCallback* callback);

/**
 * @brief 创建OH_LowPowerAudioSinkCallback实例。
 * 
 * @return 返回指向OH_LowPowerAudioSinkCallback实例的指针+。如果内存不足，则返回nullptr。OH_LowPowerAudioSinkCallback* OH_LowPowerAudioSinkCallback_Create(void);

/**
 * @brief 销毁OH_LowPowerAudioSinkCallback例callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：!数为nullptr或参数非法。OH_AVErrCode OH_LowPowerAudioSinkCallback_Destroy(OH_LowPowerAudioSinkCallback* callback);

/**
 * @brief 为LowPowerAudioSi"nkCallback设置进度更新监听callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @param onPositionUpdated OH_LowPowerAudioSink_OnPositionUpdated function,
 * refer to {@link OH_LowPowerAudioSink_OnPositionUpdated}
 * @param userData 用户执行回调所依赖的数。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSinkCallback_SetPositionUpdateListener(
    OH_LowPowerAudioSinkCallback* callback,
    OH_LowPo=werAudioSink_OnPositionUpdated onPositionUpdated,
    void* .4为LowPowerAudioSinkCallback设置需要数据监听callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @param onDataNeeded OH_LowPowerAudioSink_OnDataNeeded function,
 * refer to {@link OH_LowPowerAudioSink_OnDataNeeded}
 * @param userData User specific data
 * @return AV_ERR_OK：执行功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。
 * @siOH_AVErrCode OH_LowPowerAudioSinkCallback_SetDataNeededListener(
    OH_LowPowerAudioSinkCallback* callback,
    OH_LowPowerA/udioSink_OnDataNeeded onDataNeeded,
    void* ..为LowPowerAudioSinkCallback设置错误监听callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @param onError OH_LowPowerAudioSink_OnError function,
 * refer to {@link OH_LowPowerAudioSink_OnError}
 * @param userData User specific data
 * @return AV_ERR_OK：执行成功。
 * AVh_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSinkCallback_SetErrorListener(
    OH_LowPowerAudioSinkCallback* callback,
    OH_LowPowerAudioS ink_OnError onError,
    void* .:为LowPowerAudioSinkCallback设置音频焦点打断监听callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @param onInterrupted OH_LowPowerAudioSink_OnInterrupted function,
 * refer to {@link OH_LowPowerAudioSink_OnInterrupted}
 * @param userData User specific data
 * @return AV_ERR_OK：执成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。
 * OH_AVErrCode OH_LowPowerAudioSinkCallback_SetInterruptListener(
    OH_LowPowerAudioSinkCallback* callback,
    OH_LowPowerAu0dioSink_OnInterrupted onInterrupted,
    void* .:为LowPowerAudioSinkCallback设置音频设备切换监听callback Pointer to an OH_LowPowerAudioSink Callback instance
 * @param onDeviceChanged OH_LowPowerAudioSink_OnDeviceChanged function,
 * refer to {@link OH_LowPowerAudioSink_OnDeviceChanged}
 * @param userData User specific data
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持OH_AVErrCode OH_LowPowerAudioSinkCallback_SetDeviceChangeListener(
    OH_LowPowerAudioSinkCallback* callback,
    OH_LowPowe7rAudioSink_OnDeviceChanged onDeviceChanged,
    void* .4为LowPowerAudioSinkCallback设置播放完成监听callback Pointer to an OH_LowPowerAudioSinkCallback instance
 * @param onEos OH_LowPowerAudioSink_OnEos function,
 * refer to {@link OH_LowPowerAudioSink_OnEos}
 * @param userData User specific data
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_IbNVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。OH_AVErrCode OH_LowPowerAudioSinkCallback_SetEosListener(
    OH_LowPowerAudioSinkCallback *callback,
    OH_LowPowerAudioSink_OnEos onEos,
    void* .&为LowPowerAudioSink设置播放响度'sink Pointer to an OH_LowPowerAudioSinkloudnessGain Loudness gain to set which changes from -90.0 to 24.0, expressing in dB.
 * The default loudness gain is 0.0dB.
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_SERVICE_DIED：体服务端已销毁。
 * @since 21
 */
OH_AVErrCode OH_LowPowerAudioSink_SetLoudnessGain(OH_LowPowerAudioSink* sink, float loudnessGain1+NATIVE_LOWPOWER_AUDIO_SINK_H

/** @} */
6?Pqaxw"
 * and functionsS_baseK)构体和枚专BASE~'BASE$"lowpower_av(y"LowPowerAudioSink的声明。
 * typedef struct!,)a包含了LowPowerAudioSink回调函数指针的集合。<br> 应用需注册此实例结构体到j}实例中，并对回调上报的信息进行处理，
 * 保证LowPowerAudioSink的正常运行。
 * typedef struct8()/LowPowerAudioSink发生错误时调用该方法Q#7[errorCode Error code when an error occurs
 * @param errorMsg Error description informationP5-typedef void (*!-Error)(3 5
    OH_AVErrCode errCode,
    const char* errorMsgp1*/LowPowerAudioSink进度更新时调用该方法Q#7[currentPosition Returns the current playback progress value of the service, in millisecondsP5-typedef void (*!-n*)(3 
    int64_t currentPositionp1*/LowPowerAudioSink需要数据时调用该方法Q#7;samples OH_AVSamplesBuffer instance that will be written inP5-typedef void (*!-!)(3 
   $p1*/LowPowerAudioSink焦点打断时调用该方法Q#7)type The audio interrupt type,
 * pleaseP-OAudioInterrupt_ForceType}
 * @param hint The audio interrupt hint type, pleaseP-AudioInterrupt_Hint2.typedef void (*!-3)(3 H
    OH_AudioInterrupt_ForceType type,
    OH_AudioInterrupt_Hint hintp1*!备切换时调用该方法Q#7Dreason Indicates that why does the output device changes,
 * pleaseP-AudioStream_DeviceChangeReason2.typedef void (*!-5)(3 .
    OH_AudioStream_DeviceChangeReason reasonp1*8LowPowerAudioSink播放完成时调用该方法，包含(}中Q#7\5!typedef void (*!-Eos)!	a,r;;%BASE_H

/** @} */
ԊLx%xs"~
AVSinkBase
AVSinkBase'< and functions
 * for lowpower audio sink and lowpower vide
8vG!&和OH_LowPowerVideoSink的基础依赖V=&Vh.-native_averrors.h"
#include "native_avbufferKVSink输入数据的结构体。应用在收到DataNeeded回调后需要将数据打包装进OH_AVSamplesBuffer实例中送给应的lowpower_avsink{/"AVSamplesBuffer OH_AVSamplesBuffer3Forward declaration of OH_LowPowerAVSink_Capability-VSink_Capability OH_LowPowerAVSink_CapabilityA将一个OH_AVBuffer中的数据添加到OH_AVSamplesBuffer实例.amplesBuffer 指向OH_AVSamplesBuffer实例的指针。
 * @param avBuffer 指向OH_AVBuffer实例的指针。
 * @return AV_ERR_OK：执行成功。
 * AV_ERR_INVALID_VAL：参数为nullptr或参数非法。
 * AV_ERR_NO_MEMORY：framePacketBuffer有足够的剩余容量来追加一个OH_AVBuffer。
 * AV_ERR_UNKNOWN：未知错误。
 * @since 20
 */
OH_AVErrCode OHY_AVSamplesBuffer_AppendOneBuffer(OH_AVSamplesBuffer *samplesBuffer, OH_AVBuffer *avBuffer6获取OH_AVSamplesBuffer实例的剩余可使用容量1amplesBuffer

 * @return OH_AVSamplesBuffer实例剩余可使用容量，单位为字节。如果sampleBuffer或data pointer为nullptr或效，则返回3。
 * @since 20
 */
int32_t OH_AVSamplesBuffer_GetRemainedCapacity(OH_AVSamplesBuffer *samplesBuffer);

获取Lpp播放器能力。该函数的主要作用是获取当前低功耗播放器所支持的功能和媒体格式。
 * 过调用此函数，可以了解设备在音频或视频处理方面的支持能力，例如支持的编码格式、解码格式、码率范围等。
 * 
 * @return OH_LowPowerAVSink_Capability：支持Lpp播放器。
 * nullptr：不支持Lpp播放器或者获取失败。
 * @since 21
 */
OH_LowPowerAVSink_Capability *OH_LowPowerAVSink_GetCapability();

#ifdef __cplus,V=xx)p~ALowPowerVideoSink
 * @{
 *
 * @brief The LowPowerVideoSink subG;video_sink.h
 *
 * @brief 定义LowPowerVideoSink接口。使用LowPowerVideoSink提供的Native API进行视频通路的低耗播放
VIDEO_SINKX
VIDEO_SINKLformat.h"
#include ">"
#include "lowpower_video_sink_base.h"
#include "lowpower_audio_sink_base.h"
#include "native_window/external_window.h"

;创建低功耗LowPowerVideoSink。
 * 
 * @param mime mime type description string, refer to {@link AVCODEC_MIME_TYPE}
 * @%return 如果创建成功返回指向'实例的指针，否则返回空指针o* _CreateByMime(const char* mime*配置LowPowerVideoSink，需要在{@link 9_Prepare}前完成。
 * 
 * @param sink Pointer to an  instance
 * @param format A pointer to an OH_AVFormat to give the description of the video track to be decoded,
 * key of format refer to=lUNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作支持o(_Configure(!* sink, const OH_AVFormat* format0为LowPowerVideoSink设置参数，支持{@link ?_Prepare}后动态设置。
 * 
 * @param sink Pointer to an V instance
 * @param format pointer to an OH_AVFormat instance, key of format refer to=lUNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作支持o(_SetParameter(!* sink, const OH_AVFormat* formato
FowPowerVideoSink的相关参数。
 * 
 * @param sink Pointer to an V instance
 * @param format pointer to an OH_AVFormat instance, key of format refer to=l$OPERATE_NOT_PERMIT：操作不支持o(_GetParameter(* sink, OH_AVFormat* format@为LowPowerVideoSink设置渲染画面窗口。 需要在{@link 9_Prepare}前完成。
 * 
 * @param sink Pointer to an _ instance
 * @param surface A pointer to a OHNativeWindow instance, see {@link OHNativeWindow}pZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_SetVideoSurface(%* sink, const OHNativeWindow* surface0开始LowPowerVideoSink准备，需要在{@link E_SetSyncAudioSink}之后调用。
 * 
 * @param sink Pointer to an n	cUNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作支持o(	_Prepare(* sink*开始LowPowerVideoSink解码，在{@link "_Prepare}后或非播放中{@link d_SetTargetStartFrame}
 * 后调用。
 * 启动成功后，LowPowerVideoSink将开始上报{@link ;_OnDataNeeded}事件。
 * 
 * @param sink Pointer to an n	cUNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作支持o(_StartDecoder(* sink9渲染LowPowerVideoSink解码出的第一帧，在{@link A_StartDecoder}之后调用。
 * 
 * @param sink Pointer to an n	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_RenderFirstFrame(* sink*开始LowPowerVideoSink渲染，在{@link A_StartDecoder}之后调用。
 * 
 * @param sink Pointer to an n	cUNSUPPORT：不支持的格式。
 * AV_ERR_SERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作支持o(_StartRenderer(* sink$暂停LowPowerVideoSink，在{@link _StartRenderer}或{@link L_Resume}后调用。
 * 暂停成功后，LowPowerVideoSink将暂停{@link D_OnDataNeeded}事件的上报。
 * 
 * @param sink Pointer to an n	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_Pause(* sink$恢复LowPowerVideoSink，在{@link K_Pause}后调用。
 * 恢复成功后，LowPowerVideoSink将恢复{@link D_OnDataNeeded}事件的上报。
 * 
 * @param sink Pointer to an o	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_Resume(* sink清除LowPowerVideoSink中所有解码器和渲染缓存的输入输出数据。
 * 此接口不建议在{@link OH_LowPowerVid_StartRenderer}或{@link _Resume}之后调用。
 * 需要注意的是，如果编解码器之前已输入数据，则需要重新输入编解码器数*据。
 * 
 * @param sink Pointer to an n	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_Flush(* sink>停止LowPowerVideoSink。
 * 
 * @param sink Pointer to an n	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_Stop(* sinkS重置LowPowerVideoSink。
 * 如果要重新使用该实例，需要调用{@link >_Configure}完成配置。
 * 
 * @param sink Pointer to an n	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_Reset(* sink清理解码器内部资源，销毁LowPowerVideoSink实例。不能重复销毁。
 * 
 * @param sink Pointer to an OH_LowPon	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(	_Destroy(* sinklLowPowerVideoSink设置用于音画同步的OH_LowPowerAudioSink。
 * 
 * @param videoSink Pointer to an A instance
 * @param audioSink Pointer to an OH_LowPowerAudioSinkn	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_SetSyncAudioSink(
    ,* videoSink, OH_LowPowerAudioSink* audioSinkP为LowPowerVideoSink设置目标渲染帧。
 * 
 * @param sink Pointer to an a instance
 * @param framePts target video frame pts, in microseconds
 * @param onTargetArrived @_OnTargetArrived func,
 * will be called once, refer to {@link _OnTargetArrived}
 * @param timeoutMs if wait first frame over timeoutMs, onTargetArrived will be called directly,
 * in mill0iseconds.
 * @param userData User specific datapZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_SetTargetStartFrame(
    ** sink,
    const int64_t framePts,
    S_OnTargetArrived onTargetArrived,
    const int64_t timeoutMs,
    void* userDataM为LowPowerVideoSink设置播放倍速。
 * 
 * @param sink Pointer to an  instance
 * @param speed Indicates the value of the playback rate.
 * The current version is valid in the range of 0.25-4.0oZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_SetPlaybackSpeed(* sink, const float speedG给LowPowerVideoSink输入buffer。
 * 
 * @param sink Pointer to an * instance
 * @param samples Pointer to an[	)cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_ReturnSamples(#* sink, OH_AVSamplesBuffer* samplesG为LowPowerVideoSink注册回调。
 * 
 * @param sink Pointer to an , instance
 * @param callback Pointer to an Callbackn	cZSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持o(_RegisterCallback(* sink, Callback* callback创建)Callback。
 * 
 * @return 返回指向?Callback实例的指针。如果内存不足，则返回nullptro
Callback* Callback_Create(void销毁9Callback对象。
 * 
 * @param callback Pointer to an Callbackn	\w Callback_Destroy(Callback* callback_为LowPowerVideoSinkCallback设置需要数据监听。
 * 
 * @param callback Pointer to an *Callback instance
 * @param onDataNeeded ,_OnDataNeeded function,
 * refer to {@link 5_OnDataNeeded}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o(%Callback_SetDataNeededListener(
    Callback* callback, )_OnDataNeeded onDataNeeded,void* userData_为LowPowerVideoSinkCallback回调设置错误监听。
 * 
 * @param callback Pointer to an %Callback instance
 * @param onError '_OnError function,
 * refer to {@link 0_OnError}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o( Callback_SetErrorListener(
    Callback* callback,  _OnError onError, void* userDatae为LowPowerVideoSinkCallback回调设置开始渲染监听。
 * 
 * @param callback Pointer to an -Callback instance
 * @param onRenderStarted /_OnRenderStarted function,
 * refer to {@link 8_OnRenderStarted}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o(&Callback_SetRenderStartListener(
    Callback* callback, 0_OnRenderStarted onRenderStarted, void* userDatab为LowPowerVideoSinkCallback回调设置流切换监听。
 * 
 * @param callback Pointer to an -Callback instance
 * @param onStreamChanged /_OnStreamChanged function,
 * refer to {@link 8_OnStreamChanged}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o((Callback_SetStreamChangedListener(
    Callback* callback, 0_OnStreamChanged onStreamChanged, void* userDatak为LowPowerVideoSinkCallback回调设置首帧准备完成监听。
 * 
 * @param callback Pointer to an 1Callback instance
 * @param onFirstFrameDecoded 7_OnFirstFrameDecoded
 * function,
 * refer to {@link <_OnFirstFrameDecoded}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o(,Callback_SetFirstFrameDecodedListener(
    Callback* callback,
    =_OnFirstFrameDecoded onFirstFrameDecoded,
    void* userDatae为LowPowerVideoSinkCallback回调设置播放结束监听。
 * 
 * @param callback Pointer to an #Callback instance
 * @param onEos %_OnEos function,
 * refer to {@link ._OnEos}
 * @param userData User specific datap$OPERATE_NOT_PERMIT：操作不支持o(Callback_SetEosListener(Callback* callback,
    _OnEos onEos, void* userDataT当前播放的视频显示时间戳（pts）。
 * 
 * @param sink Pointer to an R instance.
 * @param pts Pointer to store the latest PTS value (in microseconds).pkSERVICE_DIED：媒体服务端已销毁。
 * AV_ERR_OPERATE_NOT_PERMIT：操作不支持。
 * @since 21_GetLatestPts( *sink, int64_t *ptsl%VIDEO_SINK_H

/** @} */
Wqpx%_baseK)的结构体和枚专BASE~'BASE$<stdbool.h>C=&声明。
 * Q	typedef struct`含了LowPowerVideoSink回调函数指针的集合。<br> 应用需注册此实例结构体到j}实例中，并对回调上报的信息进行处理，
 * 保证LowPowerVideoSink的正常运行。
 * Q	typedef structq?S2A&'需要数据时调用该方法，包含2}中QnB:buffer OH_AVSamplesBuffer instance that will be written in18-W	typedef void (*Q!)6}
   /buffer,
    void *A&发生错误时调用该方法QnBerrorCode The error code returned when an error occurs during service operation.
 * See the definition of {@OH_AVErrCode}
 * @param errorMsg string of Error description information returned when an error occurs
 * during service operation
 * @param u>8 W	typedef void (*Q7)6}3
    OH_AVErrCode errCode,
    const char* errMsg+*&*到达目标点时调用该方法，包含2}中QnB'targetPts Target pts of renderred frame(1isTimeout If wait target pts timeout, it is false18-W	typedef void (*Qw))6}\+$targetPts,
    const bool isTimeout+*&'开始渲染时调用该方法，包含2}中QnB=8!W	typedef void (*Q<)	9#&!流切换调用该方法，包含2}中QnB5Carrying changing parameters and corresponding values18-W	typedef void (*Q\=)	0Format* format9%&0第一帧解码成功时调用该方法，包含2}中QnB=8!W	typedef void (*QA)	9#&'播放完成时调用该方法，包含2}中QnB=8!W	typedef void (*QEos)	9KFlF%BASE_H

/** @} */
x"_%/*
 * Copyright (C) 2023[;u	AVScreenCaptureDProvides APIs of request capability for Screen Capture.
 * @since 1!Snative_avscreen_capture.h
 *
 * @brief 声明用于构造屏幕录制对象的APInative_avscreen_capture.so/AVScreenCapture
 * @kit MediaKit
 * @since 10
 */

#ifndef NATIVE_AVSCREEN_CAPTURE_H
#define NATIVE_AVSCREEN_CAPTURE_H
 ioscreen_capture_errors.h"?screen_capture_base.h"
#include "native_window/external_windowB实例化对象，创建OH_AVScreenCapture。
 * 可以通过调用{@link OH_AVScreenCapture_Release}释放实例。
 * 
 * @return 返回一个指向OH_AVScreenCapture实例的指针。
 * @since 10
 */
struct OH_AVScreenCapture *OH_AVScreenCapture_Create(void
初始化{@link OH_AVScreenCapture}相关参数，包括下发的音频麦克风采样相关参数（可选）、音频内录样相关参数、视频分辨率相关参数。
 * 录屏存文件场景，应用需要保证视频编码参数、视频采参数、音频编码参数、音频内录采样参数均合法，音频麦克风采样参数合法（可选）。
 * 录屏出码流场景，应用需要保证音频内录采样参数、视频采样参数至少一个合法，音频麦克风采样参合法（可选）。
 * 由于结构体变量在初始化时不会对成员进行初始化，应用必须根据使用场景正确设置各项参数。建议应用先将OH_AVScreenCaptureConfig结构体变量的所有内存字节均设置为0，然后再根据录屏场景设置合法参数。
 * 音频采样参数结构体{@link OH_AudioCaptureInfo}，若audioSampleRate和audioChannels同时为0，则录屏实例OH_AVScreenCapture将忽略该类型的音频参数，
 * 且不采集该类型的音数据。
 * 视频采样参数结构体{@link OH_VideoCaptureInfo}，若videoFrameWidth和videoFrameHeight同时为0，则屏实例OH_AVScreenCapture将忽略对应视频参数，且不采集屏幕数据。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param config 录屏初始化相关参数。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：允许操作，初始化配置失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Init(struct OH_AVSc:reenCapture *capture,
    OH_AVScreenCaptureConfig config
开始录屏，采集原始码流。
 * 调用后可以通过回调的监听（{@link OH_AVScreenCapture_OnBufferAvailable}）来监听当前是否有码流的产生,通过回调的监听（{@link OH_AVScreenCapture_OnStateChange}
 * ）来监听启动状态。
 * 通过调用获取音频buffer（{@link OH_AVScreenCapture_AcquireAudioBuffer}）和视频buffer（{@link OH_AVScreenCapture_AcquireVideoBuffer}）
 * 的接口来获取录屏的原始码流。
 * 
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置隐私权限启用失败或启动录屏失败。
 * @since 10
 */f
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StartScreenCapture(struct OH_AVScreenCapture *capture
结束录屏，与{@link OH_AVScreenCapture_StartScreenCapture}配合使用。调用后针对调用该接口的应用会停止屏或屏幕共享，释放麦克风。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，结束录屏失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVSc@reenCapture_StopScreenCapture(struct OH_AVScreenCapture *capture
启动录屏，调用此接口，可保存录屏文件。
 * 
 * @param capture Pointer to an OH_AVScreenCapture instance
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置隐私权限启用失败或启用屏幕录制失败。
 * @since 10
 */
OH_AVSCREEN_CAPTVURE_ErrCode OH_AVScreenCapture_StartScreenRecording(struct OH_AVScreenCapture *capture
停止录屏，与{@link OH_AVScreenCapture_StartScreenRecording}配合使用。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，停止屏幕录制失败。
 * @sinceo 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StopScreenRecording(struct OH_AVScreenCapture *capture
获取音频buffer。应用调用时需分配audiobuffer对应结构体大小的内存，否则影响音频buffer的获取。
 * 从API version 12开始，推荐使用接口{@link OH_AVScreenCapture_OnBufferAvailable}替代。
 * 
 * @param capture 向OH_AVScreenCapture实例的指针。
 * @param audiobuffer 保存音频buffer的结构体，通过该结构体获取到音频buffer以及buffer的时间戳等信息。
 * @param type 音频buffer的类型，区分是麦克风录制的外部流还系统内部播放音频的内录流。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数audiobuffer为空指针。
 * AV_SCREEN_CAPTURE_ERR_NO_MEMORY：内存足，audiobuffer分配失败。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置隐私权限启用失败或获取音频buffer失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_AcquireAudioBuffer(struct ^OH_AVScreenCapture *capture,
    OH_AudioBuffer **audiobuffer, OH_AudioCaptureSourceType type
获取视频buffer。应用通过此接口获取视频缓存区及时间戳等信息。
 * buffer使用完成后，调用OH_AVScreenCapture_ReleaseVideoBuffer接口进行视频buffer的释放。
 * 从API version 12开始，推荐使用接口{@link OH_AVScreenCapture_OnBufferAvailable}替代。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param fence 用于同步的显示相关参数信息。
 * @param timestamp 视频帧的时间戳。
 * @param region 视频显示相关坐标信息。
 * @return 执行成功返回OH_NativeBuffer对象，通过OH_NativeBuffer对象相关接口可以获取到频buffer和分辨率等信息参数。
 * @since 10
 */
OH_NativeBuffer* OH_AVScreenCapture_AcquireVideoBuffer(struct OH_YAVScreenCapture *capture,
    int32_t *fence, int64_t *timestamp, struct OH_Rect *region
根据音频类型释放buffer。当某一帧音频buffer使用完成后，调用此接口进行释放对应的音频buffer。
 * 从API version 12开始，推荐使用接口{@link OH_AVScreenCapture_OnBufferAvailable}替代。
 * 
 * @param capture 向OH_AVScreenCapture实例的指针。
 * @param type 音频buffer的类型，区分麦克风录制的外部流还是系统内部播放音频的内录流。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，不允许用于已设置DataCallback或释放音频buffer失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseAudioBufKfer(struct OH_AVScreenCapture *capture,
    OH_AudioCaptureSourceType type
根据视频类型释放buffer。当某一帧视频buffer使用完成后，调用此接口释放对应的视频buffer。
 * API version 12开始，推荐使用接口{@link OH_AVScreenCapture_OnBufferAvailable}替代。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，不允许用于已设过DataCallback或释放视频buffer失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseVideoB(uffer(struct OH_AVScreenCapture *capture
设置监听接口，通过设置监听，可以监听到调用过程中的错误信息，以及是否有可用的视频buffer音频buffer。
 * 从API version 12开始，推荐使用接口{@link OH_AVScreenCapture_SetErrorCallback}、{@link OH_AVScreenCapture_SetDataCallback}替代。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param callback OH_AVScreenCaptureCallback的结构体，保存相关回调函数指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数callback为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置监听接口失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_oAVScreenCapture_SetCallback(struct OH_AVScreenCapture *capture,
    struct OH_AVScreenCaptureCallback callback
释放创建的OH_AVScreenCapture实例，对应{@link OH_AVScreenCapture_Create}。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，OH_AVScreenCapture实例释放失。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Release(struct OH_AVScreenCapture *capture);

/**
 
	设置麦克风开关。
 * 当isMicrophone为true时，则打开麦克风，通过调用{@link OH_AVScreenCapture_StartScreenCapture}和{@link OH_AVScreenCapture_AcquireAudioBuffer}
 * 可以正常获取到音频的麦克风原始PCM数据；isMicrophone为false时，获取到的音频数据为无声数据。
 * 默认麦克风开关为开启。
 * 
 * @param capture 指OH_AVScreenCapture实例的指针。
 * @param isMicrophone 麦克风开关参数。
 * true表示打开麦克风，false表示关闭麦克风。
 * 默认是true。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置麦克风关失败。
 * @since 10
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetMicrophoneEnabled(struct OH_AVScreenCaptur"e *capture,
    bool isMicrophone
设置状态变更处理回调方法，在开始录制前调用。
 * 调用该方法设置状态变更处理回调方法，OH_AVScreenCapture实例发生状态变更时，该状态变更处理回调方法将会被调用。
 * 调用该设置方法功后，在启动录屏时将通过隐私弹窗方式征求用户同意：
 * 1. 如果用户同意则开始启动录屏流程，在启动录屏成功后，通过该状态处理回调方法上报{@link OH_AVScreenCaptureStateCode}.OH_SCREEN_CAPTURE_STATE_STARTED状态，告知应用启动录屏成功，并在屏幕显示录屏通知。如果启动录屏失败，则通过该态处理回调方法上报失败状态信息（如，若麦克风不可用则上报{@link OH_AVScreenCaptureStateCode}.
 * OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE状态），或通过错误处理回调方法{@link OH_AVScreenCapture_OnError}上报错误信息。
 * 2. 如果用户拒绝，则终止启动录屏，通过该状态处理回调方法上报{@link OH_AVScreenCaptureStateCode}.OH_SCREEN_CAPTURE_STATE_CANCELED状态，告知应用用户拒绝启动录屏，
 * 启动录屏失败。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param callback 指向状态处理回调方法实例的指针
指向应用提供的自定义数据的指针，在状态处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数callback为空指针。
 * AV_SCREEN_CAPTURE_ERR_NO_MEMORY：内存不足，内存分配失败。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置StateCallback失败。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapturme_SetStateCallback(struct OH_AVScreenCapture *capture,
    OH_AVScreenCapture_OnStateChange callback, void *1设置数据处理回调方法，在开始录制前调用。
 * 调用该方法设置数据处理回调方法，当OH_AVScreenCapture操作期间有音频或视频数据缓存区可用时，将调用该数据处理回调方法。
 * 应用需要在该据处理回调方法中根据数据类型完成处理麦克风音频、内录音频、视频数据，当该数据处理回方法返回后数据缓存区将不再有效。
 * 调用该方法成功后：
 * 1. 当OH_AVScreenCapture操作期间有视频缓存区可用时，将不再调用通过{@link OH_AVScreenCapture_SetCallback}设置的数据回调方法{@link OH_AVScreenCaptureOnAudioBufferAvailable}
 * 和{@link OH_AVScreenCaptureOnVideoBufferAvailable}。
 * 2. 不允许应用调用如4个方法{@link OH_AVScreenCapture_AcquireAudioBuffer}、{@link OH_AVScreenCapture_ReleaseAudioBuffer}、{@link OH_AVScreenCapture_AcquireVideoBuffer}
 * 和{@link OH_AVScreenCapture_ReleaseVideoBuffer}，直接返回失败。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param callback 指向数据处理回调方法实例的指针。
 * @param use
指向应用提供的自定义数据的指针，在数据处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数callback为空指针。
 * AV_SCREEN_CAPTURE_ERR_NO_MEMORY：内存不足，内存分配失败。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置DataCallback失败。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCaptureo_SetDataCallback(struct OH_AVScreenCapture *capture,
    OH_AVScreenCapture_OnBufferAvailable callback, void *1设置错误处理回调方法，在开始录制前调用。
 * 调用该方法设置错误处理回调方法，当OH_AVScreenCapture实例发生错误时，该错误处理回调方法将会被调用。
 * 调用该设置方法成功后，当OH_AVScreenCapture实例发生错误时，将不再调用通过{@link OH_AVScreenCapture_SetCallback}设置的错误处理回调方法{@link OH_AVScreenCaptureOnError}
 * 。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param callback /向错误处理回调方法实例的指针。
指向应用提供的自定义数据的指针，在错误处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数callback为空指针。
 * AV_SCREEN_CAPTURE_ERR_NO_MEMORY：内存不足，内存分配失败。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置ErrorCallback失败。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapturge_SetErrorCallback(struct OH_AVScreenCapture *capture,
    OH_AVScreenCapture_OnError callback, void *1设置录屏内容变更回调事件，需在录屏启动前被调用。
 * 
 * @param capture 指向OH_AVScreenCapture实例W的指针。
 * @param callback 指向录屏内容变更回调方法实例的指针。
指向应用提供的自定义数据的指针，在错误处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：操作成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：参数无效，输入参数capture或callback为m指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置录屏内容回调失败。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCaptureContentChangedCallback(struct OH_AVScreenCapture *capture,
    OH_AVS5creenCapture_OnCaptureContentChanged callback, void *1使用Surface模式录屏。
 * 
 * @param capture Pointer to an OH_AVScreenCapture instance.
 * @param window Pointer to an OHNativeWindow instance.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数window为空指针或window指向的windowSurface为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许作，设置隐私权限启用失败或启动ScreenCaptureWithSurface失败。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StartScreenCaptureWithSurface(struct OH_AVScreenCapture *capture,
    OHNativeWindow *window);

/**
 *
设置录屏屏幕数据旋转。
 * 调用该方法可以设置录屏屏幕数据是否旋转，当canvasRotation为true时打开录屏屏幕数据旋转功能，录制的屏幕数据保持正向。
 * 默认为false。
 * 
 * @param capture Pointer to an OH_AVScreenCapturecanvasRotation whether to rotate the canvas
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置录屏屏幕数据旋转失败。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCanvasRotation(struct OH_AVScreenCapture *capture,
    bool canvasRotation
创建ContentFilter。
 * 
 * @return 执行成功返回OH_AVScreenCapture_ContentFilter实例，否则返回空指针。
 *e @since 12
 */
struct OH_AVScreenCapture_ContentFilter *OH_AVScreenCapture_CreateContentFilter(void
释放ContentFilter。
 * 
 * @param filter 指向OH_AVScreenCapture_ContentFilter实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数filter为空指针。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseContentFilter(struct OH_AVScreenCapture_ContentFilter *filter);

/**
 * 
向ContentFilter实例添加可过滤的声音类型。
 * 
 * @param filter 指向OH_AVScreenCapture_ContentFilter实例的针。
 * @param content OH_AVScreenCaptureFilterableAudioContent实例。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数filter为空指针或输入参数content无效。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ContentFilter_AddAudioContent(
    struct OH_AVScreenCapture_ContentFilter *fi6lter, OH_AVScreenCaptureFilterableAudioContent content
设置OH_AVScreenCapture实例的内容过滤器ContentFilter。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指。
 * @param filter 指向OH_AVScreenCapture_ContentFilter实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数filter为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT：操作不支持。对于流，启动时应该调用AudioCapturer接口。
 * 对于capture文件，启动时调用Recorder接口。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ExcludeContent(struct OH_AVLScreenCapture *capture,
    struct OH_AVScreenCapture_ContentFilter *filter
向ContentFilter实例添加可被过滤的窗口ID列表。
 * 
 * @param filter 指向OH_AVScreenCapture_ContentFilter实的指针。
 * @param windowIDs 指向窗口ID的指针。
 * @param windowCount 窗口ID列表的长度。
 * @return 执行成功返回AV_SCREEN_CAPTURE_ERR_OK，否则返回具体错误码。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ContentFilter_AddWindowContent(
    struct OH_AVScreenCapture_ContentFilter *filter, int32_t *windowIDs, int32_t windowCount
调整屏幕的分辨率。
 * 调用该方法可以设置录屏屏幕数据的分辨率，width为屏幕的宽度，height为屏幕的高度。
 * 该接口目前仅支持录屏取码流的场景，不支持录屏存文件的场景。并且调用该口的调用者以及视频数据的消费者需要确保自身能够支持收到的视频数据分辨率发生变化。
 * 3
 * @param capture Pointer to an OH_AVScreenCapturewidth Video frame width of avscreeencapture, in px.
 * @param height Video frame height of avscreeencapture, in px.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ResizeCanvas(struct OH_AVScreenCaptu/re *capture,
    int32_t width, int32_t height
录屏时豁免隐私窗口。
 * 调用该方法可以豁免隐私窗口，windowIDs为需要豁免的隐私窗口ID指针，windowCount 为隐私窗口ID列表的长度，目前豁免需要传入所有隐私子窗口和主窗口ID。
 * 
 * @param c'apture Pointer to an OH_AVScreenCapturewindowIDs Pointer of windowID list
 * @param windowCount length of windowID list
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 12
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SkipPrivacyMode(struct OH_AVScreenCapture *capture,
    int32_t *windowIDs, int32_t windowCount
设置录屏时的最大帧率。
 * 该接口应在录屏启动之后被调用。
 * 调用该方法可以设置录屏时的最大帧率，frameRate为想要设置的最大帧率。
 * 该接口设置最大帧率时，实际设置的帧率受限设的能力，由底层的系统能力决定。
 * 调用该接口设置录屏最大帧率时，实际帧率将受限于设备力。目前接口入参的最大值不设限制，但当前支持的最高帧率为60FPS，当入参设置超过60FPS，将60FPS处理。不超过上限时，则按照实际入参值处理。
 * 
 * @param capture Pointer to an OH_AVScreenCaptureframeRate max frame rate of video, in fps.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或者输入参数frameRate不支持。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 14
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetMaxVideoFrameRate(struct OH_AVScreenCapture *capture,
    int32_t frameRate
T设置光标显示开关。
 * 
 * @param capture Pointer to an OH_AVScreenCaptureshowCursor The switch of the cursor
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_UNSUPPORT（API version 20新增）：设备不支持该操作。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，设置光标失败。
 * @since 15
 */
OH_AVSCREEN_CAPTbURE_ErrCode OH_AVScreenCapture_ShowCursor(struct OH_AVScreenCapture *capture,
    bool showCursor
设置或更新捕获区域。
 * 接口在开始录屏前后都可以设置，设置的坐标和宽高不能为负数，捕区域不能跨屏幕，区域位置设置失败后仍按照上一次的区域进行捕获。
 * 
 * @param capture capture  Pointer to an OH_AVScreenCapturedisplayId Indicates the screen index for setting area recording
 * @param area Pointer to an object describing the location and size of the region
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参Pcapture为空指针、输入displayId不存在或输入的捕获区域异常。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCaptureArea(struct OH_AVScreenCapture *capture, uint64_t displayId, OH_Rect* are
设置屏幕捕获区域高亮模式。
 * 
 * @param capture Pointer to OH_AVScreenCapture which want to set highlight style.
 * @param config the highlight parameters are to be set for this screen capture.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或者config参数值无效。
 * @since 22
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCaptureAreaHighlight(struct OH_AVScreenCapture *capture,
    OH_AVScr eenCaptureHighlightConfig config
注册手工确认界面用户选择结果的回调，需在录屏启动前被调用。
 * 
 * @param capture Pointer to OH_AVScreenCapture which want to handle user selection info
 * @param callback user selection callback function, see {@link OH_AVScreenCapture_OnUserSelected}
The control block pointer passed by the application is carried to the application when it is
 * returned
 * @return AV_SCREENl_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetSelectionCallback(struct OH_AVScreenCapture *capture,
    OH_AVScreenCapture _OnUserSelected callback, void *1获取用户在确认界面选择的屏幕捕获对象类型。在{@link OH_AVScreenCapture_OnUserSelected}回调中使用，selection指针在回调结束后销毁。
 * 
 * @param selection Pointer to an OH_AVScreenCapture_UserSelectionInfo instancetype The capture object type selected by the user,
 * 0: represents the screen, 1: represents the window, 2: represents the app.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数selection为空针。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_GetCaptureTypeSelected(OH_AVScreenCapture_UserSelectionInfo *selection, int32_t* type
获取确认页面，用户选择录制的屏幕ID。在{@link OH_AVScreenCapture_OnUserSelected}回调中使用，selection指k针在回调结束后销毁。
 * 
 * @param selection Pointer to an OH_AVScreenCapture_UserSelectionInfodisplayId Returns the screen ID value selected by the user
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN?_CAPTURE_ERR_INVALID_VAL：输入参数selection为空指针。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_GetDisplayIdSelected(OH_AVScreenCapture_UserSelectionInfo *selection, uint64_t* 	displayId
创建录屏策略对象。
 * 
 * @return 执行成功返回OH_AVScreenCapture_CaptureStrategy实例，否则返回空指针。QOH_AVScreenCapture_CaptureStrategy* OH_AVScreenCapture_CreateCaptureStrategy(void
释放录屏策略对象。
 * 
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategy instance
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数strategy为空指针。
 * @since 2OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseCaptureStrategy(OH_AVScreenCapture_CaptureStrategy* strategy);

/**
 *
给指定的OH_AVScreenCapture实例设置捕获策略。
 * 该接口应在录屏启动之前被调用。
 * 
 * @param capture Pointer to an OH_AVScreenCapture which need to be setted.
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategy which want to
 * set.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输参数capture或strategy为空指针。
 * AV_SCREEN_CAPTURE_ERR_INVALID_STATE：在录屏启动之后调用该接口。
 *OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCaptureStrategy( 
	struct OH_AVScreenCapture *capture, OH_AVScreenCapture_CaptureStrategy *strategy
向CaptureStrategy实例设置蜂窝通话时是否保持录屏。
 * value设置为true时并且录屏时接听蜂窝通话过程中，出于隐私要求，双方通话的声音（本地麦克风和对方说话声音）不会被录制，其他系统音录制正常。电话挂断之后，录屏框架恢复麦克风录制。注意，如果挂断电话时录屏应用在后台行，
 * 麦克风录制会启动失败，原因是音频模块不允许后台应用启动麦克风录制。
 * 
 * @para;m strategy Pointer to an OH_AVScreenCapture_CaptureStrategyvalue The default value is false, which means that screen recording is not allowed during cellular
 * calls.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数strategy为空指针。
 * @since 20OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForKeepCaptureDuringCall( 
    OH_AVScreenCapture_CaptureStrategy *strategy, bool value
Set the fill mode for screen capture when a privacy window exists
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategyvalue 
 *         If set to 0, it means that when there is a privacy window interface, the output screen image is completely black. 
 *         If set to 1, it means that when there is a privacy window interface, only the privacy window area of 鈥嬧媡he output screen becomes black, 
 *         and other values returns an error.
 * @return Function result code.
 *         {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful.
 *         {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} stra%tegy is nullptr or  value is invalid.OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForPrivacyMaskMode( 
    OH_AVScreenCapture_CaptureStrategy *strategy, int32_t value
向CaptureStrategy实例设置是否使能B帧编码，用于减小录制文件的大小。
 * B帧视频编码相关的约束和限制可以参考文档{@link B帧视频编码约束和限制}。如果当前不符合B帧视频编码的约束和限制，则正常录制不含B帧的视频，不会返回错误。
 * 
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategyvalue The default value is false, which means B frames  encoding are disabled.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成R功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数strategy为空指针。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForBFramesEncoding( 
    OH_AVScreenCapture_CaptureStrategy *strategy, bool value 
设置屏幕录屏自动跟随旋转配置。设为true，表示跟随屏幕旋转，并在横竖屏旋转后，自动调换虚拟屏尺寸，确保输出画面及时跟随旋转。
 * 设置是否自动跟随旋转配置后，在旋转通知后，无再手动调用{@link OH_AVScreenCapture_ResizeCanvas}接口。
 * 
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategyvalue The default value is False, which means that the width and height of the VirtualDisplay
 * remain the initial settings. If set to True, it means that the width and height of the VirtualDisplay rotates
 * with the rotation of the screen..
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数strategy为空指针。
 * OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForCanvasFollowRotation( 
    OH_AVScreenCapture_CaptureStrategy *strategy, bool value
设置是否弹出屏幕捕获Picker。
 * 
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategy instance
 * value
 * If set to false, it means that the APP don't need to pop up the Picker after screen capture starts;
 * If set to True, the Picker will pop up uniformly after screen capture starts;
 * If not set, it means using the system recommended behavior.
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数strategy为空指或输入value为无效值。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForPickerPopUp( 
    OH_AVScreenCapture_CaptureStrategy *strategy, bool value
设置捕获图像在目标区域的填充模式。
 * 
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategy imode Value of the captured image fill mode
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INV.ALID_VAL：输入参数strategy为空指针。OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForFillMode( 
    OH_AVScreenCapture_CaptureStrategy *strategy, OH_AVScreenCapture_FillMode mode);


/**
 * @brief 设置获取录屏屏幕Id的回调。
 * 
 * @param capture 指向OH_AVScreeanCapture实例的指针。
 * @param callback 指向录屏屏幕Id回调方法实例的指针。
指向应用提供的自定义数据的指针，在状态处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或输入参数callback为空指针。
 * AV_SCREEN_CAPTURE_ERR_NO_MEMORY：内存不足，内存分配失败。
 * AV_SCREEN_CAPTURE_ERR_INVALID_STATE：回调必须在start方法前调用。
 * @since 15
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetDisplayCallback(struct OH_AVScreenCapture *capture,
    OH_AVScreenCapture_OnDisplaySelected callback, void *userData);


/**
 * @brief 在Picker界面中隐藏指定的窗口。在picker界面显示前调用本接口，可对指定窗口进行过滤和隐。
 * 
 * @details Filters specified windows before displaying the system-level picker.
 * Excluded windows will not appear in the selection list.
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param excludedWindowIDs 需要隐的窗口ID数组（已存在的窗口）。
 * @param windowCount 需要隐藏的窗口ID数组长度。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或者窗口ID参值无效。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 22
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ExcludePickerWindows(struct OH_AVScreenCapture *capture,
    const int32_t *excludedWindowIDs, uint32_t wi	ndowCount
设置Picker显示模式。定义picker中显示的内容类型，模式更改会在下一次调用{@link OH_AVScreenCapture_PresentPicker} 函数时生效。
 * 
 * @details Defines the content type displayed in the system-level picker.
 * Mode changes take effect upon the next call to function PresentPicker.
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param pickerMode Picker显示模式（请参阅OH_CapturePickerMode枚举）。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入参数capture为空指针或者pickerMode参数值无效。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 22
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetPicPkerMode(struct OH_AVScreenCapture *capture,
    OH_CapturePickerMode pickerMode
录屏开始后，调用该接口再次弹出picker，可动态更新录制源（窗口、屏幕）。更新录制源过程中原录制流程不中断。
 * 通过picker动态更新录制源后，可以按照新的录制源进行录制。
 * 
 * @details Activates system visual picker with two usage scenarios:
 * 1. Initial capture configuration: Select source before starting capture
 * 2. Dynamic source switching: Change capture target during active capture
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作。
 * @since 22
 */
OH_AVSCREEN_CRAPTURE_ErrCode OH_AVScreenCapture_PresentPicker(struct OH_AVScreenCapture *capture
获取多屏幕录制能力信息，判断用户选择的多个屏幕是否支持联合录制。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param displayIds 返回用户选择的DisplayID数组。
 * @param count 返回用选择的DisplayID的数量。
 * @param capability 指向OH_MultiDisplayCapability实例的指针。
 * @return AV_SCREEN_CAPTURE_ERR_OK：操作执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入的录屏实例参数capture为空指针。
 * AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT：不允许操作，获取数据失败。
 * @since 24
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_GetMultiDisplayCaptureCapability(
    struct OH_AVScreenCapture *capture, 
    uint64_t *displayIDds, 
    size_t count,  
    OH_MultiDisplayCapability *capability
获取picker页面上用户选择录制的DisplayID列表。在{@link OH_AVScreenCapture_OnUserSelected}回调中使用，selection指针在回调结束后销毁。
 * 
 * @param selection 指向OH_AVScreenCapture_UserSelectionInfo实例的指针。
 * @param displayIds 返回用户选择的DisplayID数组。参数displayIds的内存由OH_AVScreenCapture_UserSelectionInfo管，无需手动释放。
 * @param count 返回用户选择的DisplayID的数量。
 * @return AV_SCREEN_CAPTURE_ERR_OK：作执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入包含用户选择信息的参数selection为空指针。
 * @since 24
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_GetMultiDisplayIdsSelected(
    OH_AVScreenCapture_UserSelectDionInfo *selection, 
    uint64_t **displayIds, 
    size_t *count
设置隐私保护回调函数，以便应用程序响应屏幕捕获产生的隐私保护事件。该接口必须在调用开录屏之前调用。
 * 
 * @param capture 指向OH_AVScreenCapture实例的指针。
 * @param callback 隐私保护回函数。
指向应用提供的自定义数据的指针，在状态处理回调方法被调用时作为入参回传。
 * @return AV_SCREEN_CAPTURE_ERR_OK：执行成功。
 * AV_SCREEN_CAPTURE_ERR_INVALID_VAL：输入录屏实例为空指针或输入回调为指针。
 * @since 24
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetPrivacyProtectCallback(struct OH_AVScreenCaptuFre *capture,
    OH_AVScreenCapture_OnPrivacyProtect callback, void *1Allow to pause screen capture
 * @param strategy Pointer to an OH_AVScreenCapture_CaptureStrategy instance.
 * @param value The default value is false, which means that screen recording is not allowed to pause
 * @return Function result code.
 *         {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful.
 *         {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} strategy value is nullptr.
 * @since 26.0.0
 */
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForPause(OH_AVScreenCaptu-re_CaptureStrategy *strategy,
    bool value
Pause screen capture
 * @param capture Initialized screen capture instance.
 * @return Function result code.
 *         {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful.
 *         {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} capture value is nullptr.
 *         {@link AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT} operation not permitted.
 * @since 26.0.0
 */
OH_aAVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_PauseScreenCapture(struct OH_AVScreenCapture *capture
Resume screen capture
 * @param capture Initialized screen capture instance.
 * @return Function result code.
 *         {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful.
 *         {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} capture value is nullptr.
 *         {@link AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT} operation not permitted.
 * @since 26.0.0
 */
OHe_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ResumeScreenCapture(struct OH_AVScreenCapture *capture);=}
#endif

#endif // NATIVE_AVSCREEN_CAPTURE_H
/** @} */
2x8uX
 *
 * @brief 声明用于运行屏幕录制通用的结构体、字符常量、枚举Q "BAS	%BAS,;{
bufferB0提供录屏的视频原始码流类。
 * 
 *1.typedef struct OH_NativeBuffer OH_NativeBuffer)过P以获取视频与音频1typedef kc.)过K !过滤音视频内容。
 * 
 *5typedef k`L P5举，表示屏幕录制的不同模式。
 * 
 *1typedef enum OH_CaptureMode {
    /* capture home screen */
    OH_CAPTURE_HOME_SCREEN = 0,
    /* capture a specified screen */
    OH_CAPTURE_SPECIFIED_SCREEN = 1,
    /* capture a specified window */
    OH_CAPTURE_SPECIFIED_WINDOW = 2,
    OH_&CAPTURE_INVAILD = -1
} OH_CaptureMode;举，表示屏幕录制时的音频源类型。
 * 
 *1typedef enum"{
    /* Invalid audio source */
    OH_SOURCE_INVALID = -1,
    /* Default audio source */
    OH_SOURCE_DEFAULT = 0,
    /* Microphone */
    OH_MIC = 1,
    /* inner all PlayBack */
    OH_ALL_PLAYBACK = 2,
    /* inner app PlayBack */
    OH_APP_PLAYBACK = 3,
}",举，表示音频编码格式。
 * 
 *1typedef enum OH_AudioCodecFormat {
    /* Default format */
    OH_AUDIO_DEFAULT = 0,
    /* Advanced Audio Coding Low Complexity (AAC-LC) */
    OH_AAC_LC = 3,
    /* Invalid value */
    OH_AUDIO_CODEC_FORMAT_BUTT,
} OH_AudioCodecFormat;

/**,举，表示视频编码格式。
 * 
 *1typedef enum OH_VideoCodecFormat {
    /* Default format */
    OH_VIDEO_DEFAULT = 0,
    /* H.264 */
    OH_H264 = 2,
    /* H.265/HEVC */
    OH_H265 = 4,
    /* MPEG4 */
    OH_MPEG4 = 6,
    /* VP8 */
    OH_VP8 = 8,
    /* VP9 */
    OH_[VP9 = 10,
    /* Invalid format */
    OH_VIDEO_CODEC_FORMAT_BUTT,
} OH_VideoCodecFormat4举，表示屏幕录制流的数据格式。
 * B1typedef enum OH_DataType {
    /* YUV/RGBA/PCM, etc. original stream */
    OH_ORIGINAL_STREAM = 0,
    /* h264/AAC, etc. encoded stream */
    OH_ENCODED_STREAM = 1,
    /* mp4 file */
    OH_CAPTURE_FILE = 2,
    OH_INVAILD = -1
} OH_DataType;E举，表示视频源格式。当前仅支持RGBA格式。
 * 
 *1typedef enum OH_VideoSourceType {
    /**
     * RGBA格式。
     */
    OH_VIDEO_SOURCE_SURFACE_YUV = 0,
    /* Raw encoded data provided through graphic */
    OH_VIDEO_SOURCE_SURFACE_ES,
    /* RGBA video data provided through graphic */
   g OH_VIDEO_SOURCE_SURFACE_RGBA,
    /* Invalid value */
    OH_VIDEO_SOURCE_BUTT
} OH_VideoSourceType;举，表示屏幕录制生成的文件类型。
 * 
 *1typedef enum OH_ContainerFormatType {
    /* Audio format type -- m4a */
    CFT_MPEG_4A = 0,
    /* Video format type -- mp24 */
    CFT_MPEG_4 = 1
} OH_ContainerFormatType)频采样信息。
 * 
 *1typedef struct OH_AudioCaptureInfo {
    /* Audio capture sample rate info, in Hz */
    int32_t audioSampleRate;
    /* Aud[io capture channel info */
    int32_t audioChannels;
    /* Audio capture source type */" #audioSource;
} OH_AudioCaptureInfo)频编码信息。
 * 
 *1typedef struct OH_AudioEncInfo {
    /* Audio encoder bitrate, in bit/s */
    int32_t audioBitrate;
    /* Audio codec formCat */
    OH_AudioCodecFormat audioCodecformat;
} OH_AudioEncInfo)频信息。
 * 
 *1typedef struct OH_AudioInfo {
    /* Audio capture info of microphone */
    OH_AudioCaptureInfo micCapInfo;
    /* Audio capture info of inner */
    OH_AudioCaptureInfo innerCapInfo;
    /* Audio encoder info, no need to set, while dataType = OH_ODRIGINAL_STREAM */
    OH_AudioEncInfo audioEncInfo;
} OH_AudioInfon频录制信息。当
,'时，忽略视频相关参数不录制1typedef struct OH_VideoCaptureInfo {
    /* Display id, should be set while captureMode = CAPTURE_SPECIFIED_SCREEN */
    uint64_t displayId;
    /* The  ids of mission, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t *missionIDs;
    /* Mission ids length, should be set while captureMode = CAPTURE_SPECIFIED_WINDOW */
    int32_t missionIDsLen;
    /*=W-) */
    int32_t videoFrameWidth;
    /*}W.< */
    int32_t videoFrameHeight;
    /* Video source typeW? */
    OH_VideoSourceType videoSource;
} OH_VideoCaptureInfon频编码参数。
 * B1typedef struct OH_VideoEncInfo {
    /* Video encoder format */
    OH_VideoCodecFormat videoCodec;
    /* Video encoder bitrate, in bit/s */
    int32_t videoBitrate;
    /* Video encoder frame rate, in fps */
    int32_t videoFrameRate;
} OH_Vid	eoEncInfon频信息。
 * 
 *1typedef struct OH_VideoInfo {
    /* Video capture info */
    OH_VideoCaptureInfo videoCapInfo;
    /* Video encoder info *4/
    OH_VideoEncInfo videoEncInfo;
} OH_VideoInfo制文件信息。
 * 
 *1typedef struct OH_RecorderInfo {
    /* Recorder file url */
    char *url;
    /* Recorder file url length */
    uint32_tc urlLen;
    /* Recorder file format */
    OH_ContainerFormatType fileFormat;
} OH_RecorderInfo#幕录制配置参数。
 * 
 *1typedef kConfig {
    OH_CaptureMode captureMode;
    OH_DataType dataType;
    OH_AudioInfo audioInfo;
    OH_VideoInfo videoInfo;`
    /* should be set, while dataType = OH_CAPTURE_FILE */
    OH_RecorderInfo recorderInfo;
}!Config)私保护信息结构体。
 * 
 * @since 24
 */
typedef struct OH_PrivacyProtectInfo {
    /**
     * @brief 
     * @since 24
     */
    bool systemWindowProtection;
    /**
     * @brief 
     * @since 24
     */
    bool sensitiveApp$Protection;
} OH_PrivacyProtectInfoC8P'运行出错时，将调用函数指针 PErroro YerrorCode 指定T@typedef void (*8Error)n\
 int32_t errorCod%B8P操作期间音l8.7函数指针 isReady 音频缓存区是否可用。true表示音频缓存区可用，false表示音频缓存区不可用。
 * @param type 音频源类型0typedef void (*8()n\
 bool isReady":B8P操作期间i8.7函数指针 kisReady 视频缓存区是否可用。true表示视频缓存区可用，false表示视频缓存区不可用0typedef void (*8-9)n\
 bool isReadv"T中包含所有异步回调函数指针的集合。将该结构体的实例注册到PW中，以便处理回调上报的信息，从而保证OH_AVScreenCapture的正常运行?onError Monitoroperation errors, refer to !JOnError}
 * @param onAudioBufferAvailable Monitor audio buffer, refer to !8=@param onVideoBufferAvailable Monitor video buffer, refer to !+9
 *1typedef k(	{EOnError onError;E8 onAudioBufferAvailable;E+9 onVideoBufferAvailable;
}!(8义录屏界面的宽高以及画面信息。
 * 
 *1typedef struct OH_Rect {
    /* X-coordinate of screen recording */
    int32_t x;
    /* y-coordinate of screen recording */
    int32_t y;
    /* Width of screen recording, in px */
    int32_t width;
    /* Height of screen recording, in px */"
    int32_t height;
} OH_Rect;
!NM义了音频数据的大小、类型、时间戳等配置信息。
 * 
 *1typedef struct OH_AudioBuffer {
    /* Audio buffer memory block  */
    uint8_t *buf;
    /* Audio buffer memory block size */
    int32_t size;
    /* Audio buffer timestamp info, in nanosecond */
    int64_t timestamp;
    /* Audio capture sour
ce type */"$;
} OH_AudioBuffer#举，表示状态码。
 * 
 *5typedef enum12 {
    /* Screen capture started by user */
    2=STARTED = 0,
    /* Screen capture canceled by user */
    2 4 = 1,
    /* ScreenCapture stopped by user */
    2WSTOPPED_BY_USER = 2,
    /* ScreenCapture interrupted by other screen capture */
    2LINTERRUPTED_BY_OTHER = 3,
    /* ScreenCapture stopped by SIM call */
    2KSTOPPED_BY_CALL = 4,
    /* Microphone is temporarily unavailable */
    212 = 5,
    /* Microphone is muted by user */
    2EMIC_MUTED_BY_USER = 6,
    /* Microphone is unmuted by user */
    2TMIC_UNMUTED_BY_USER = 7,
    /* Current captured screen has private window */
    2^ENTER_PRIVATE_SCENE = 8,
    /* Private window disappeared on current captured screen*/
    2OEXIT_PRIVATE_SCENE = 9,
    /* ScreenCapture stopped by user switches */
    2STOPPED_BY_USER_SWITCHES = 10,
    /**
     * @brief Screen capture paused by user
     * @since 26.0.0
     */
    OH_SCR2PAUSED_BY_USER = 11,
    /**
     * @brief Screen capture resumed by user
     * @since 26.0.0
     */
    OH_SCREEN_CAPTU2	RESUMED_BY_USER = 12,
    /**
     * @brief Screen capture paused by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTUR2PAUSED_BY_APP = 13,
    /**
     * @brief Screen capture resumed by app
     * @since 26.0.0
     */
    OH_SCREEN_CAPTURE2RESUMED_BY_APP = 14,
}1&举，表示buffer类型。
 * 
 *5typedef enum!BufferType {
    /* Buffer of video data from screen */
    OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO = 0,
    /* Buffer of audio data from inner capture */
    OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER = 1,
    /* Buffer of audio data from microphone */
 1   OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC = 2,
}!
BufferType&举，表示buffer类型。
 * 
 *5typedef enum!HP{
    /* Audio content of notification sound */
    OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO = 0,
    /* Audio content of the soIund of the app itself */
    OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO = 1,
}!HPC8P9操作期间发生状态变更时，将调用函数指针?RstateCode 指定状态码:$设置该回调处理方法时!!Uk/\	typedef void (*5)c*=StateCode stateCodeР%B8P3操作期间发生错误时，将调用函数指针?RerrorCode 指定错误码:$设置该回调处理方法时!!Uk/\	typedef void (*5OnError)n\
 int32_t errorCodeР%B8P操作期间音频或i8.7	函数指针?Rbuffer 指向OH_AVBuffer缓存区实例的指针，该回调方法执行结束返回后，数据缓存区不再有效。
 * @p_aram bufferType 可用缓存区的数据类型。
 * @param timestamp 时间戳，单位纳秒:$设置该回调处理方法时!!Uk/\	typedef void (*5)n\
 OH_AVBuffer *bufferE(BufferType bufferType, int64_t timestampР%3枚举，表示录屏内容变更事件。
 * 
 *`ftypedef enum!ContentChangedEvent_Enum {
    /**
     * 录屏内容变为隐藏。
     */
    OH_SCREEN_CAPTURE_CONTENT_HIDE = 0,
    /**
     * 录屏内容变为可见。
     */
    OH_SCREEN_CAPTURE_CONTENT_VISIBLE = 1,
    /**
     * 录屏内容状j变化为不可用，如录屏窗口关闭。
     */
    OH_SCREEN_CAPTURE_CONTENT_UNAVAILABLE = 2,
}!ContentChangedEventC8P9操作期间录屏内容变化时，将调用函数指针aZQQevent enum for content change event
 * @param area capture content rect position3!Pointer to user specific data
 *`ftypedef void (*5(E)n* Lv-ContentChangedEvent event,
    OH_Rect* areaР%_表示高亮边框的样式，包括高亮边框的模式、边框宽度和边框颜色。
 * Atypedef kHighlightConfig {
    /**
     * 高亮边框的模式，不设置默认为方形全包边框。
     */
    OH_ScreenCaptureHighlightMode mode;
    /**
     * 高亮边框的宽度，不设置默认不显示线宽，宽度有效值范围在1vp-8vp。
     */
    uint32_t lineThickness;
    /**
     * 高亮边框的颜色，不设置默认为黑色，颜色有效值RGB（0-0xffffff）格式和非透明的ARGB（0xff000000-0xffffffff）格式。
     */
    uint32_t lineColor;  
} OH_AVS(HighlightConfig)举，表示屏幕录制高亮边框的Gtypedef enum OH_ScreenCaptureHighlightMode {
    /**
     * 默认模式，用方形全包边框高亮显示录制区域。
     */
    OH_HIGHLIGHT_MODE_CLOSED = 0,
    /**
     * 用四角包裹边框高亮显示录制区域。
     */
    OH_H?IGHLIGHT_MODE_CORNER_WRAP = 1,
} OH_ScreenCaptureHighlightMode像ۇfftypedef enum!FillMode {
    /**
     * 保持图像原始宽高比匹配目标图像大小，若比例不一致可能存在黑边。
     */
    OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT = 0,
    /**
     * 图像拉伸匹配目标图像大小，若比例不Q致图像变形。
     */
    OH_SCREENCAPTURE_FILLMODE_SCALE_TO_FILL = 1,
}!FillMode举，表示Picker显示Gtypedef enum OH_CapturePickerMode {
    /**
     * 仅显示窗口模式。
     */
    OH_CAPTURE_PICKER_MODE_WINDOW_ONLY = 0,

    /**
     * 仅显示屏幕模式。
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_ONLY = 1,

    /**
     * 显屏幕和窗口模式（默认模式）。
     */
    OH_CAPTURE_PICKER_MODE_SCREEN_AND_WINDOW = 2,
} OH_CapturePickerMode)过"设置录屏策略。
 * 
 *`ftypedef kt")过$H获取用户在授权界面（选择界面）选择的参数。
 * 
 *`ftypedef ko"oe用户在授权界面（选择界面）选择参数时，功能接口将参数返回给应用程序aZQfselections The recording parameter information
 * selected by the user on the authorization interface3!Pointer to user specific data
 *`ftypedef void (*5k)n* capture, Eo* selectionsР%B多屏幕录制能力信息。多屏场景下，用户选择的多Y，以及联合录制的屏幕宽度和高度。
 * 
 * @since 24
 */
typedef struct  {
    /**
     * 是否支持多屏幕录制，true表示支持多屏幕录制，false表示不支持多屏幕录制。
     */
    bool isMultiDisplaySupport;
    /**
     * 支持录制的屏幕区域宽度（单位：像素）。
     */
    uint32_t width;
    /**
     * 支持录制的屏幕区域高度（单位：像素）。
     */
    uint32_t height;
} OH!F}实例在运行过程中发生隐私保护事件时，函数指针将=tFZ.privacyProtect Pointer to privacy protect info3APointer to user specific data
 * @since 24
 */
typedef void (*5)n5* capture,
    OH_PrivacyProtectInfo* privacyProtectРCBASE_H
/** @} */
BHdxGerrors0'过程中接口调用的错误码说明tERRORS3$ERRORS_H?p!过程中产生的不同结果码	'
typedef enum OH_AVSCREEN_CAPTURE_ErrCFO接口调用错误返回的基础值。
     */
    AV_SCREEN_CAPTURE_ERR_BAS<操作成功。
     */
    AV_SCREEN_CAPTURE_ERR_OK = AV_SCREEN_CAPTURE_ERR_BASE,
    /**
     * 内存不足。
     */
    AV_SCREEN_CAPTURE_ERR_NO_MEMORY = AV_SCREEN_CAPTURE_ERR_BASE + 1,
    /**
     * 不允许操作。
     */
    AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT = AV_SCREEN_CAPTURE_ERR_BASE + 2,
    /**
     * 无效参数。
     */
    AV_SCREEN_CAPTURE_ERR_INVALID_VAL = AV_SCREEN_CAPTURE_ERR_BASE + 3,
    /**
     * 输入输出流异常。
     */
    AV_SCREEN_CAPTURE_ERR_IO = AV_SCREEN_CAPTURE_ERR_BASE + 4,
    /**
     * 网络超时。
     */
    AV_SCREEN_CAPTURE_ERR_TIMEOUT = AV_SCREEN_CAPTURE_ERR_BASE + 5,
    /**
     * 未知错误。
     */
    AV_SCREEN_CAPTURE_ERR_UNKNOWN = AV_SCREEN_CAPTURE_ERR_BASE + 6,
    /**
     * 媒体服务已终止。
     */
    AV_SCREEN_CAPTURE_ERR_SERVICE_DIED = AV_SCREEN_CAPTURE_ERR_BASE + 7,
    /**
     * 当前状态不支持此操作。
     */
    AV_SCREEN_CAPTURE_ERR_INVALID_STATE = AV_SCREEN_CAPTURE_ERR_BASE + 8,
    /**
     * 不支持的接口。
     */
    AV_SCREEN_CAPTURE_ERR_UNSUPPORT = AV_SCREEN_CAPTURE_ERR_BASE + 9,
    /**
     * 预期之外的错误。
     */
    AV_SCREEN_CAPTURE_ERR_EXTEND_START = AV_SCREEN_CAPTURE_ERR_B)ASE + 100,
} OH_AVSCREEN_CAPTURE_ErrCodePHERRORS_H
/** @} */cVxDm0/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.2CvD+

 *
 *    +
 *GfELGA"
 */

/**
 * @addtogroup HiDebug
 * @{
 *
 * @brief Provides debug functions.
 *
 * For example, you can use these functions to obtain cpu uage, memory, heap, capture trace.
 *
 * @since 12
 */

/**
 * @file hidebug.h
 *
 * @brief Defines the debug functYions of the HiDebug module.
 *
 * @library libohhidebug.so
 * @kit PerformanceAnalysisKitHiviewDFX.HiProfiler.HiDebug
 * @since 12
 */
#ifndef HIVIEWDFX_HIDEBUG_H
#define HIVIEWDFX_HIDEBUG_H
#include <stdint.h>
#include "hidebug_type.h"

extern "C" {
#endif // __cplusplus

/**
 * @brief Obtains the cpu usage of system.
 *
 * @return Returns the cpu usage of system
 *         If the result is zero,The possible reason is that get failed.
 * @since 12
 */
double OH_HiDebug_GetSystemCpuUsage();

/**
 * @brief Obtains the cpu usage percent of a process.
 *
 * @return Returns the cpu usage percent of a process
 *         If the result is zero.The possbile reason is the current application usage rate is too low
 *         or acquisition has failed
 * @since 12
 */
double OH_HiDebug_GetAppCpuUsage();

/**
 * @brief Obtains cpu usage of application's all thread.
 *
 * @return Returns all thread cpu usage. See {@link HiDebug_ThreadCpuUsagePtr}.
 *         If the HiDebug_ThreadCpuUsagePtr is null.
 *         The possible reason is that no thread related data was obtained
 * @since 12
 */
HiDebug_ThreadCpuUsagePtr OH_HiDebug_GetAppThreadCpuUsage();

/**
 * @brief Free cpu usage buffer of application's all thread.
 *
 * @param threadCpuUsage Indicates applicatoin's all thread. See {@link HiDebug_ThreadCpuUsagePtr}
 *        Use the pointer generated through the OH_HiDebug_GetAppThreadCpuUsage().
 * @since 12
 */
void OH_HiDebug_FreeThreadCpuUsage(HiDebug_ThreadCpuUsagePtr *threadCpuUsage);

/**
 * @brief Obtains the system memory size.
 *
 * @param systemMemInfo Indicates the pointer to {@link HiDebug_SystemMemInfo}.
 *        If there is no data in structure after the function.The Possible reason is system error.
 * @since 12
 */
void OH_HiDebug_GetSystemMemInfo(HiDebug_SystemMemInfo *systemMemInfo);

/**
 * @brief Obtains the memory info of application process.
 *
 * @param nativeMemInfo Indicates the pointer to {@link HiDebug_NativeMemInfo}.
 *        If there is no data in structure after the function.The Possible reason is system error.
 * @since 12
 */
void OH_HiDebug_GetAppNativeMemInfo(HiDebug_NativeMemInfo *nativeMemInfo);

/**
 * @brief Obtains the memory info of application process, with optional caching to improve performance. The cached value
 *        remains valid for 5 minutes.
 *
 * @param nativeMemInfo Indicates the pointer to {@link HiDebug_NativeMemInfo}.
 *        If there is no data in structure after the function.The Possible reason is system error.
 * @param forceRefresh Whether to bypass the cache and retrieve fresh data.
 *                     Set to true to force retrieve fresh data and immediate refresh the cached value;
 *                     Set to false to retrieve the cached value when it is valid; otherwise, retrieve
 *                     fresh data and refresh the cache.
 * @since 20
 */
void OH_HiDebug_GetAppNativeMemInfoWithCache(HiDebug_NativeMemInfo *nativeMemInfo, bool forceRefresh);

/**
 * @brief Obtains the memory limit of application process.
 *
 * @param memoryLimit Indicates the pointer to {@link HiDebug_MemoryLimit}
 *        If there is no data in structure after the function.The Possible reason is system error.
 * @since 12
 */
void OH_HiDebug_GetAppMemoryLimit(HiDebug_MemoryLimit *memoryLimit);

/**
 * @brief Start capture application trace.
 *
 * @param flag Trace flag
 * @param tags Tag of trace
 * @param limitSize Max size of trace file, in bytes, the max is 500MB.
 * @param fileName Output trace file name buffer
 * @param length Output trace file name buffer length
 * @return 0 - Success
 *         {@link HIDEBUG_INVALID_ARGUMENT} 401 - if the fileName is null or the length is too short or
 *         limitSize is too small
 *         11400102 - Have already capture trace
 *         11400103 - Have no permission to trace
 *         11400104 - The Possible reason is some error in the system.
 * @since 12
 */
HiDebug_ErrorCode OH_HiDebug_StartAppTraceCapture(HiDebug_TraceFlag flag,
    uint64_t tags, uint32_t limitSize, char* fileName, uint32_t length);

/**
 * @brief Stop capture application trace.
 *
 * @return 0 - Success
 *         11400104 - Maybe no trace is running or some error in the system.
 *         11400105 - Have no trace running.
 * @since 12
 */
HiDebug_ErrorCode OH_HiDebug_StopAppTraceCapture();

/**
 * @brief Requests application trace capture with specified configuration.
 *
 * @param config Indicates the trace request configuration. See {@link OH_HiDebug_RequestTraceConfig}.
 * @param callback Indicates the callback for the trace request. See {@link OH_HiDebug_RequestTraceCallback}.
 * @return Result code.
 *         {@link HIDEBUG_SUCCESS} The operation is successful.
 *         {@link HIDEBUG_TRACE_ABNORMAL} Remote service exception.
 *         {@link OH_HIDEBUG_TRACE_STORAGE_LIMIT} Trace storage limit reached.
 *         {@link HIDEBUG_RESOURCE_UNAVAILABLE} Resource unavailable.
 * @since 24
 */
HiDebug_ErrorCode OH_HiDebug_RequestTrace(OH_HiDebug_RequestTraceConfig *config,
    OH_HiDebug_RequestTraceCallback callback);

/**
 * @brief Get the graphics memory of application.
 *
 * @param value Indicates value of graphics memory, in kibibytes.
 * @return Result code
 *         {@link HIDEBUG_SUCCESS} Get graphics memory success.
 *         {@link HIDEBUG_INVALID_ARGUMENT} Invalid argument, value is null.
 *         {@link HIDEBUG_TRACE_ABNORMAL} Failed to get the application memory due to a remote exception.
 * @since 14
 */
HiDebug_ErrorCode OH_HiDebug_GetGraphicsMemory(uint32_t *value);

/**
 * @brief Replace MallocDispatch table with developer-defined memory allocation functions.
 *
 * @param dispatchTable A pointer to the MallocDispatch table.
 * @return Result code
 *         {@link HIDEBUG_SUCCESS} The MallocDispatch table is successfully overriden.
 *         {@link HIDEBUG_INVALID_ARGUMENT} Invalid argument, dispatchTable is a null pointer.
 * @since 20
 */
HiDebug_ErrorCode OH_HiDebug_SetMallocDispatchTable(struct HiDebug_MallocDispatch *dispatchTable);

/**
 * @brief Obtain current MallocDispatch table.
 *
 * @return Returns a pointer to MallocDispatch table on success, or NULL on failure.
 *
 * @since 20
 */
HiDebug_MallocDispatch* OH_HiDebug_GetDefaultMallocDispatchTable(void);

/**
 * @brief Restore original MallocDispatch table.
 *
 * @since 20
 */
void OH_HiDebug_RestoreMallocDispatchTable(void);

/**
 * @brief Get backtrace frames start from the given frame pointer and the function is signal-safe.
 *
 * @param object The backtrace object create by {@link OH_HiDebug_CreateBacktraceObject}.
 * @param startFp The entry frame pointer.
 * @param pcArray The array to place program counter values.
 * @param size The size of the array to place program counter values.
 * @return The number of stack frames written to array.
 * @since 20
 */
int OH_HiDebug_BacktraceFromFp(HiDebug_Backtrace_Object object, void* startFp, void** pcArray, int size);

/**
 * @brief Defines the callback of the {@link OH_HiDebug_SymbolicAddress} function.
 *
 * @param pc The program counter pass to {@link OH_HiDebug_SymbolicAddress}.
 * @param arg The arg pass to {@link OH_HiDebug_SymbolicAddress}.
 * @param frame The parsed frame content, the content is invalid after return of {@link OH_HiDebug_SymbolicAddress}.
 * @since 20
 */
typedef void (*OH_HiDebug_SymbolicAddressCallback)(void* pc, void* arg, const HiDebug_StackFrame* frame);

/**
 * @brief Get detailed symbol info by given pc and the function is not signal-safe.
 *
 * @param object The backtrace object create by {@link OH_HiDebug_CreateBacktraceObject}.
 * @param pc The program counter return by {@link OH_HiDebug_BacktraceFromFp}.
 * @param arg The arg will be pass to callback.
 * @param callback The function to pass parsed frame to caller.
 * @return Result code
 *         {@link HIDEBUG_SUCCESS} Get detailed frame info successfully and the callback is invoked.
 *         {@link HIDEBUG_INVALID_ARGUMENT} Invalid argument.
 *         {@link HIDEBUG_INVALID_SYMBOLIC_PC_ADDRESS} Could not find symbol info by given pc.
 * @since 20
 */
HiDebug_ErrorCode OH_HiDebug_SymbolicAddress(HiDebug_Backtrace_Object object, void* pc, void* arg,
    OH_HiDebug_SymbolicAddressCallback callback);

/**
 * @brief Create a backtrace object for further using and the function is not signal-safe.
 *
 * @return BacktraceObject if Success or NULL if is not supported on current arch
 * @since 20
 */
HiDebug_Backtrace_Object OH_HiDebug_CreateBacktraceObject(void);

/**
 * @brief Destroy a backtrace object and the function is not signal-safe.
 *
 * @param object The object to be destroyed.
 * @since 20
 */
void OH_HiDebug_DestroyBacktraceObject(HiDebug_Backtrace_Object object);

/**
 * @brief Obtain the graphics memory summary of application.
 *
 * @param interval If the cache of graphics memory is longer than interval (unit: second), the latest
 *                 graphics memory data will be obtained. The interval value range is 2 seconds to
 *                 3600 seconds, If interval is an invalid value, the default value is 300 seconds.
 * @param summary Indicates value of graphics memory summary, in kibibytes.
 * @return Result code
 *         {@link HIDEBUG_SUCCESS} Get graphics memory success.
 *         {@link HIDEBUG_INVALID_ARGUMENT} Invalid argument, value is null.
 *         {@link HIDEBUG_TRACE_ABNORMAL} Failed to get the application memory due to a remote exception.
 * @since 21
 */
HiDebug_ErrorCode OH_HiDebug_GetGraphicsMemorySummary(uint32_t interval, HiDebug_GraphicsMemorySummary *summary);

/**
 * @brief Defines the callback of the lightweight performance stack.
 *
 * @param stacks Stacks.
 * @since 22
 */
typedef void (*OH_HiDebug_ThreadLiteSamplingCallback)(const char* stacks);

/**
 * Requests stack sampling for the current process.
 * The calling thread is blocked until the sampling is complete.
 *
 * @param config Sampling configuration parameters.
 * @param stacksCallback Callback of the sampling stack. This function is called after the sampling to pass
 * the sampling stack information.
 * @return Result code.
 *         {@link HIDEBUG_SUCCESS } The operation is successful.
 *         {@link HIDEBUG_INVALID_ARGUMENT } Invalid argument.
 *         {@link HIDEBUG_NOT_SUPPORTED } The device does not support sampling.
 *         {@link HIDEBUG_UNDER_SAMPLING } The sampling is in progress.
 *         {@link HIDEBUG_RESOURCE_UNAVAILABLE } Resource unavailable.
 * @since 22
 */
HiDebug_ErrorCode OH_HiDebug_RequestThreadLiteSampling(
    HiDebug_ProcessSamplerConfig* config, OH_HiDebug_ThreadLiteSamplingCallback stacksCallback);

/**
 * @brief Attaches diagnostic information to the current crash context.
 *
 * @param type Type of diagnostic data.
 * @param addr Point to the data buffer(must remain valid until crash).
 * @return Handle to the previously set crash object(0 if none).
 * @since 23
 */
uint64_t OH_HiDebug_SetCrashObj(HiDebug_CrashObjType type, void* addr);

/**
 * @brief Detaches diagnostic information from the current crash context.
 *
 * @param crashObj Handle returned by OH_HiDebug_SetCrashObj.
 * @since 23
 */
void OH_HiDebug_ResetCrashObj(uint64_t crashObj);

/**
 * @brief Starts Resource Profiler for the current process asynchronously.
 * The callback is invoked only after profiling stops, including auto-stop caused by the maximum duration.
 * When profiling output is available, the callback carries the output file path. If profiling stops without
 * producing output, the callback is invoked with a NULL file path.
 *
 * @param type Type of resource to be profiled.
 * @param config Configuration parameters for the profiler.
 * @param callback Callback to receive the profiling result. See {@link OH_HiDebug_ProfilingCallback}.
 * @return Result code
 *         {@link HIDEBUG_RES_PROF_SUCCESS} Resource profiler started successfully.
 *         {@link HIDEBUG_RES_PROF_INVALID_ARG} Invalid resource profiler argument.
 *         {@link HIDEBUG_RES_PROF_INVALID_MAX_DURATION} Invalid maximum duration.
 *         {@link HIDEBUG_RES_PROF_INVALID_FILTER_SIZE} Invalid filter size.
 *         {@link HIDEBUG_RES_PROF_INVALID_MAX_STACK_DEPTH} Invalid maximum stack depth.
 *         {@link HIDEBUG_RES_PROF_INVALID_STATISTICS_INTERVAL} Invalid statistics interval.
 *         {@link HIDEBUG_RES_PROF_INVALID_SAMPLE_INTERVAL} Invalid sample interval.
 *         {@link HIDEBUG_RES_PROF_INVALID_RESOURCE_TYPE} Invalid resource type.
 *         {@link HIDEBUG_RES_PROF_PERMISSION_DENIED} Resource profiler permission denied.
 *         {@link HIDEBUG_RES_PROF_ALREADY_STARTED} Resource profiler already started.
 *         {@link HIDEBUG_RES_PROF_PROCESS_OVERLIMIT} Resource profiler process count exceeds the limit.
 *         {@link HIDEBUG_RES_PROF_CONFLICT} Resource profiler conflicts with CLI tools or system profiling tasks.
 *         {@link HIDEBUG_RES_PROF_DAILY_QUOTA_EXCEEDED} Daily quota exceeded during resource profiling.
 *         {@link HIDEBUG_RES_PROF_CPU_OVERLOADED} System is experiencing high CPU utilization.
 *         {@link HIDEBUG_RES_PROF_MEM_PRESSURE_CRITICAL} Insufficient available memory.
 *         {@link HIDEBUG_RES_PROF_STORAGE_PRESSURE_CRITICAL} Insufficient available storage space.
 *         {@link HIDEBUG_RES_PROF_FAILURE} Failed to start the resource profiler.
 * @since 24
 */
HiDebug_ErrorCode OH_HiDebug_StartProfiler(OH_HiDebug_ResourceType type, OH_HiDebug_ResProfilerConfig* config,
    OH_HiDebug_ProfilingCallback callback);

/**
 * @brief Stops resource profiler for the current process. This API can be called after the
 * {@link OH_HiDebug_StartProfiler} API and the call duration must be within the maximum duration.
 *
 * @return Result code
 *         {@link HIDEBUG_RES_PROF_SUCCESS} Resource profiler stopped successfully.
 *         {@link HIDEBUG_RES_PROF_NOT_STARTED} Resource profiler not started.
 *         {@link HIDEBUG_RES_PROF_FAILURE} Failed to stop the resource profiler.
 * @since 24
 */
HiDebug_ErrorCode OH_HiDebug_StopProfiler(void);

/**
 * @brief Callback triggered for listening. You can use FDs to write memory data in your app so that you can export the
 *     data using the hidumper command.
 *
 * @param fd FD used to write memory data in the app.
 * @param tag Callback type. You can process the related logic based on the callback type.
 * @param mayReportToOEM Whether the data will be uploaded to the OEM. If the value is true, the data will be uploaded
 *     to the OEM. Pay attention to data privacy and security issues.
 * @param arg Callback argument. You can pass different arguments based on the value of type.
 * @return Whether the operation is successful.
 * @since 26.0.0
 */
typedef bool (*OH_HiDebug_MemDumpListener)(int32_t fd, OH_HiDebug_MemListenerType tag,
                                           bool mayReportToOEM, const char* arg);

/**
 * @brief Registers a listener triggered when the memory watermark of an app is high or the memory information is
 *     manually exported by hidumper. The third-party app framework or app developer calls back the registered function
 *     to dump the app's internal memory information to hidumper or upload the information to the OME vendor through
 *     commercial gray release.
 * OH_HiDebug_UnregisterMemDumpListener is used to unregister the listener.
 * @param name Consumer type ID.
 * @param listener Callback triggered for listening.
 * @return Result code.
 * {@link HIDEBUG_SUCCESS } Operation succeeded.
 * {@link HIDEBUG_INVALID_ARGUMENT } Invalid argument.
 * @since 26.0.0
 */
HiDebug_ErrorCode OH_HiDebug_RegisterMemDumpListener(const char* name, OH_HiDebug_MemDumpListener listener);

/**
 * @brief Unregisters a memory dump listener that has been successfully registered.
 * @param name Consumer type ID.
 * @return Result code.
 * {@link HIDEBUG_SUCCESS } Operation succeeded.
 * {@link HIDEBUG_INVALID_ARGUMENT } Invalid argument.
 * @since 26.0.0
 */
HiDebug_ErrorCode OH_HiDebug_UnregisterMemDumpListener(const char* name);

/**
 * @brief Profiler helper interfaces, acquire a AsyncContext for further using.
 *      The corresponding unregister function is as follows:OH_HiDebug_ReleaseAsyncContext.
 *
 * @return AsyncContext.
 * @since 26.0.0
 */
uint64_t OH_HiDebug_AcquireAsyncContext();

/**
 * @brief Profiler helper interfaces, push AsyncContext to the running context.
 *
 * @param ctx The context acquired by {@link OH_Hidebug_AcquireAsyncContext}.
 * @since 26.0.0
 */
void OH_HiDebug_PushAsyncContext(uint64_t ctx);

/**
 * @brief Profiler helper interfaces, pop AsyncContext from the running context.
 *
 * @param ctx The context acquired by {@link OH_Hidebug_AcquireAsyncContext}.
 * @since 26.0.0
 */
void OH_HiDebug_PopAsyncContext(uint64_t ctx);

/**
 * @brief Profiler helper interfaces, release AsyncContext to system.
 *
 * @param ctx The context acquired by {n@link OH_Hidebug_AcquireAsyncContext}.
 * @since 26.0.0
 */
void OH_HiDebug_ReleaseAsyncContext(uint64_t ctx);
B
}
#endif // __cplusplus

/** @} */
#endif // HIVIEWDFX_HIDEBUG_H
o("x'	;[
    {
        "first_introduced": "12",
        "name": "a
lB"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "	B"
    },
    {
        "first_introduced": "12",
        "name": "a
B"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "20",
        "name": "WithCache"
    },
    {
        "first_introduced": "12",
        "name": "OH_HiDebug_GetAppMemoryLimit"
    },
    {
        "*first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "P>"
    },
    {
      "first_introduced": "14",
      "name": "	B"
    },
    {
        "first_introduced": "21",
        "name": "	(>"
    },
    {
      "first_introduced": "20",
      "name": "!>"
    },
    {
      "first_introduced": "20",
      "name": "(>"
    },
    {
      "first_introduced": "20",
      "name": "R%B"
    },
    {
        "first_introduced": "20",
        "name": "?B"
    },
    {
        "first_introduced": "20",
        "name": "0B"
    },
    {
        "first_introduced": "20",
        "name": "! B"
    },
    {
        "first_introduced": "20",
        "name": "O%!B"
    },
    {
        "first_introduced": "22",
        "name": "1ShreadLiteSampling"
    },
    {
        "first_introduced": "23",
        "name": " ."
    },
    {
        "first_introduced": "23",
        "name": "OH_HiDebug_ResetCrashObj"
    },
    {
        "first_introduced": "24",
        "name": "1B"
    },
    {
        "first_introduced": "24",
        "name": "8"
    },
    {
        "first_introduced": "24",
        "name": "OH_HiDebug_StopProfiler"
    },
    {
        "first_introduced": "26",
        "name": "f@"B"
    },
    {
        "first_introduced": "26",
        "name": " ?$H"
    },
    {
        "first_introduced": "26",
        "name": "OH_HiDD"
    },
    {
        "first_introduced": "26",
        "name": "OH_HiDebug_PushAsyncContext"
    },
    {
        "first_introduced": "26",
        "name": "OH_HiDebug_PopAsyncContext"
    },
    {
        "first_introduced": "26",
        "name": "OH_B	"
    }
]s9Fx}r8z
FϏֺ\8gOǨ$Vo!USgcCA-!)<bndAJ6]6I$@"xycu^~*?Z[ZVܻsB:9.b\'~Dk;$k{No$>~H<~ 64Z9Yǖ[nOpé _9`sXӿꇖOkYo=<<I.yŰ7Ry[#Qd7nH<{5ejn(`e/CB0/(XvHFq6qJfEr*5۷~莭Sw</W`l]U8^_ѿNWëEh=:P6]&aba05wN/7X>m&V#ʠd<΍e{]%wq`W=Bo\.YX7ap:$n֜kzToa |$dEc*|e٬O?!A.oFT{D֚c+"1(&@ϣ" rL?|L؛ƏkrJ7OO[Ago
IV湳)3{N_'Qy#'x?x~͍(m՝?7?9ȸr|m">ކJy;Oċ=?Yqow?0霪d	Sy /@S]Q|C,^ߐqL%EĊ2t/ %`$.;ZK5vʔ񔉭
\ Bwǭ&iKZ0DqpWuH1Jaӱ}.tN˴=kZP!¤f'Ll~0d4 8Du@-m4Fy@"(Tc:Gtb5UOeXEu)gx1vӢtl+w6!Detzǅbb7T 8>vi+}RFASIQhNf&XuJv}:!SE8ĹmCc_O>3Fǈ!9ܰYeC:KՍs,dv-H
:]Iamo5FLW='UZcݸHjWRKYVgҮDAWx	{|vV0|N.[2Pt>'uM+#5^uC1[J׮tCy{vĖsʮs>$jzX <K|l%MaЃIozkKrry/2M SaEo$0)EA^<eo0eIB]@+{4{|w?6eyȍZB&Sdn{̞yrpQc˱c(7	2_æʎa~C/`Ls@P}:$קR>:G?m/֤$}Xh7w3PXnأPvДlOp1$*$"ZPZ|i-~e.A0D-Ikӟ>NT~TLӧ-+$t7@W(
j6*qq8>bQY˚	BPj=x dz7_7蔝^]_KtoMÜ@nx5椯A׽ABSjx,%}cL\TE@G!רr\}z]7^d	u' LkX}CaHǺo䑶~ԚyzݻO7{{1IkTrOl!jؠOZǇDXZť]1f~A!z;쎻XPi6{3gp]}*ȡҍNËa(o?HVR
OٯW H>pXGK0aQO)>쐚O*BQOjZz?iV:pxqv-.ez?&Զ*:tcۃރOZ[tݒRAP\~&k{_Mǃp2<|KJ%q\k􇷗)er·gi@㤖czb5}xb0SӽoG+Rl;>AW+x=@A!OX<$^+ן|Y9N;Lt~6+I:apˀ8w-m&.M_[lvrdn\u?]T]*5G|hЩȈ%߽\#ID^5Gz}$v07ݻ6Ժ2z@LMpV
-}XfF6_tLc|VyZ[r}DUpiW=!"<ݠ51K"Rk^UmEѵ:٧4Atua?JqSN.;(Ys6(_Oqmm77ts}seB+pFǤס->Jʜ`I~lDBbq`=8d&kMAbӎ۴ޔYmՊ t8i
cTge+zLzh*߻cW#ћ~;Q~!߱akժ2ϡ ܲ9fn!~	f5(*汘³b+סS'Po,!:Npތ}S\%;nG:WϛU_]t`M㬳nuR˖pT1#/EBMHuëdd2lm1gwpLl
1I2j|_7U0ɇS/RbsX{11E<G	P&
:zfD%]  ]Uk28&%,%3'Kf|j9|=jF,X p?CmJu1:O/Ѱ7N	Ttnɛs./Y/*|zgE$-]Iܺ}$BѦuIC%Ljw{;*t8uaQ(42ʌ7Zox!B.[hy:KST ;uGUWA'Wu27]t`f'T+:ꎰ06vB;}|ldcwRT,ntMdQ
^AŰճ+jȰ6r$ʒc3:>2J`æ,C'0I.PRbWX޿E
WQ~gسKX\Ri+ZD~7iwQKz/5TA0]dqxV͒u~ןܛ`hr}9X= ]Vz2LDzA@&0t
0*NˠOB>~PGIb݇1dܥiafׄ҃*4Bgɺ`DNBk7LDр݋GCbp:I`'@Giuh踆y_->1ma;ݱD :Tc]jTu;j3kLE.9fr7
TpIh)矊eR 6 hQЁ
^K'Ú#`\\kvZ_pEk9iǨ9+d(ws)_I3EdM*QUJ-tU|Ͻq}bkxOGAb2b`>M.Ĝt:GJ<tGcAʖ+ܨ1*ehWCGn֨s&ن7l~p<syV N0uOzGT x2Ng_t13n	_ȎGǼhwRHSǵ)c]&~qo4\+5>_0:|@dm;|`"p[DJctslRPԑލ66-p]w;qBȆsyB'y*}=h|j~5eԏ~̯!d-sJ1:ÔENeiXI	|7R eGl8p{FL}Ȣ<fݟֲxhDAî1HwnsǷb#d'Q}|aXT.w)']pal4-`[2)6Cfa]hvIg٤R30J#Ae=Wn-d}\ٍHNN՗h";cem?Q=O(dPBbڥ(`JE5{ I#UVؽ4
}K&R2M;XhoԾ;fȞZQ2;#~
0/_i+i)<NVˣ	3|/r)9<
5I)TiimZZWI7ֲ̻`P"&͖=5^*4y3xdqneX3!XD&g9E>G.SaQ"B	soTng&/v^]. c5ć@\g>0:\BNj>Ȗg8Vjcܳ̴XgIY%ZQAw9B9~:=5RnnO9QXZgMH	0L<D`o3,`)zp
G2Lhj⍩-޿e9c`mAt\!dP&e66`1=Iec])0>q2r"-\oDzkȦ<Zgo<O',~R2SvMH"na;RR|sq0v97>*
§nmзRǮ`cD\Zwb)aU3["rڠ7,3fUA1ZfFmdD
Bqx|ĺM+,ⴑzŐ{$^"'m>[Mܦ%+d:9s{|jp~#1{lrAr)&snqK;a(آ$@J|@^<63jKqoHnKz/}o~$FD9.ڦo\7VIcBw$KMn#l)'O./n쨫
NR&l$K;1/ѠO0JFg?C	{]=%l}YuJߴ"ЉU!x|VfBHK+a; ҫȋs!dZq:Axzͥ:R>V:Uzxz,^ȣC> kdS}ح%`tlPBҹRraUwq1gġяpN%e+))v-J1ö'$lviqW-ʜ_i:?<wRr)5
qqrdOBKָϸsILjϖ"nsg<	
<K鳱ԫ0L$Yyr^ekuvg	*M1.kY>ż9QckRL"VUTuv)}\)g*lR$dA}!91(&Upr+e}) 1;64Nc(Qa&o&F7zsLq>'RXñY.~+//) NMפ~k2uO|s*J\ɵrETa&U$t]@v+7ulׁ(S[I ⻕F+ D FTbn>e"5+J0uBEnDTaV2ǞҢ)͛SZ.~tk)-`J۔:Td#1ʫ2|KiY3rЎcsO{c`/bTxىHY<M
Y%>)pc^[.D*iݵ-RtW=Vkulq6+͸qB4O}J U6WG`^nU[	oAo4k)tpg}"r ڣ+Rkcn*atHll"+d؈AHWEw[nSW4M(#d+;XYm)0=	UB%Ȭ"<.G[A"&wl&;8))Ux7ٽpF@rL/;	3h&S61#CmQO/ǽqq8d& Lփi^bPMFmk"5k<<X>Ţi[σ(y=>Ҿ(8mzvR+JVuy[_/0kH^;  7񑙜XcjQΨ	YZCow{WXNq8茗.e[]2n䛡|	a,t'{!(F)stܠop723x$#YAD
R50@#C39Lpd/Rt!TY!eo/Q&n"մ%2ir
j<2{7m03@=9tQ֣SirٵMrbfAu3 a*;rח75moE&^l0Ё'P,@Fk60hIJ~ ߂~jE|<fA?gǊ9Dƕj&J^S=(FMk"`}~]Cܿ¯I`Jmt1z4_C7,I*鎺D]lK\=5?^+g	7^_M/ëd4j 	݁9d!IuJD:Șp&Qa	<^G1ZnZ!~rswx؍=c&HMSL>XoqKT˯wvޏB?\!)H6r$dr{$ x2t>w/}l+N9Ѷ|T;bOb7ðO[qU]rM`p6aYPpf
u\ ڞ1Iȡ 
Sn!-Įrz5r

.Ɨ
O0Rt1"GȎ11\ww8"@Eqt05'WxpM)wFaُ%6Ôi	ZF (R@)zGi8K̀zm`&yGJĝgF
2Y|Nz	!x;|~e򢲱Qi>nİ`kvxMvg3<{F<oqءcE z)`rY8Ǩ3LB(#uWi)Q;ѫSܫh5Cp
 7LEY˞U_[fNi/+Wg+NM
#^"EŗjUCQ*1R	SI𖢯s aBk^+[[~<\>N[mG$-@*%1:c`"(Am)ru5!KDѨz°;E/7?̷I4,H4ŊXOdݤJ$2h{$v3!!28B"#,݈Y#) [+ѕ×Rڢh6:$T 4IzHab֚sϝ; i;1@x@{J5OE"+gbQV7'O޿Q.	Vo8B~:$LH?Ҕw᨜Qd:<L'_omO^e vWx@kpw.Α0`	mw=!K?4bYo(y0.JiJ|l|u}h<m_ƇMOo{YĘӎQwB*GTf"PNǈ3^ I~(aSm8	N(DMVSO#WOD|c$!0~kds~(y9(9J:0^༈.sR
*j*Iiu>\)2tfM^aqVә#cVS kG	pT:x0?x(/f}ҎpBY,PXdzA4:s3ծ;idctVg:ymy9@;9#JIuWϦ)\?)ҔmR_Kʳծtr]*ZNבiR:~V%?<w,yL:UO 7=a1.+)wS2Fe	5.ESCt-|dXh972Nh/a%<ziJX(
i%71T1O6hy]FlU&ac/;0r,`Cl]W4]>%AO&5":62g=-0O&\0+lM QjXtF(ɱ|R'[җ5 O܎nڞCGHzE~2<
ђy,2a9Y"7pZ:G%Xɠ*(L
$_:#:9x,E^X>Y,fa U&jk@&)H:y(Ǚg{\A'oZow00CIPfA+1Qsqaܱ>s|tSfQ݇vE|loĎdǾ]*u MZ]V[DJ#B@uJ%ď. 5+0eB[jvRyBp/#9ZZ>*|*!:<mK\kYhAO48};A9$Qii TJLK~`rk<5#X	@{¼R@j5jZ&KcupJ8![T%kŘI	*٪}#*Ut젇ZsL,HoU=`hN-5$Wӧ72FX8 4Ol$0`EYCt*#r$LAR!:(W:jk4x<~Ɋ,Xc_3!țΘ(le2{r(ﰖXe%\bP+jDەZ-2\4+B%9Q"D=Y)#Fp˷@=anQ_>j}1t5GE-ڕ@X.Nw"m|fPTl~2Td\2a_#d>LTlxB~D@v!X¢zRUҩWđ5XviAB>R$Sh84_f_f}˻ٯ0ob"YTT&QDj NqGѠ8Ēʢ5pa
w;s
<pߦ؊D	q87I[lֈFs'DgOye/z(*Tc3uk+j>in9Y0xval\vK}W|i#/h8j1%&]<`Hht-
)S=wz	sc4a<݅J;
#w<޿xg"}lžcw~H;:lw-RvVk
%Bdw`sJp;N[܅}z/Y|Y;pT,O& x߅3YtQ% A
~qO)ܯiG;P2lH[rUMk/C[*0=wSvS"	SAUx8e#tjMU0hx܇dga2mY $!?lU,k+F<"dZU[rl!>)B"so"ȡZ(	$5"0d ޮk=׋8K"\d.}\z%]^1-ts<u$P)<w1Pe93Yk@\@I|dQB,7PjpIDI#vYr3˿15٪;Ej2 o֕hY΄vWUB&RT.o.'b
>3Cǭ:vw7~qIbZ`=Pͣ8X8qzX6	UiX=?d
vtݥކ_zк00f\_xw}8WQr,=o

≐;9%T1TTpXH ȱ$Fm'E	ZbJ
ccB$p! e#QBl;ORkNy҇l]w;ehWk1h0Pi	T+~il(T$X
_znnÛ4f7w]k\$r}{쭁;ʘFL CǸK;\]]`ѩfWmp\aTRA;|͌^Pkn"Ic:PƸRmܿxŶg0)4Pl:V[$mɃ4Ax!u^]b+*<lh˘mTlS'O|(kJё |>/8r@TR*54QVɌOZˌk"I3eVRtHյ||&3Xqadoz%-). sV67suSҀ*@\sP3[vŐv7К>u,dPAfhGTP:H➄;$&z]ET$hasV-Z8N;U3RτK`/yXj$ɵ̣Lc%J)9<,Zw2^١D0EU94>KChsUZ-zK;{|~W_6)IS/eX[dSmZ@(ٓ[bOաcJf7D5.nxj5/T5Q)*̈́GS*Q$$=}ܴKmhQD'FQ{M#-};KKXb*kp{í	A^[{f`kt <ZE4brdbLk1E:J$,WmG S)mω ssxy6P2ŵFJ`N笼rm
sچfK9XٛHk:c3:5- υvJjjr]J	-x䙴ձ4x\fϪsahN!NObYyJ`EV<I"G2Q؁nZTVBs6ݰg}ZYvd~ "K7]ܧިKi$_R Z}מIMq3U|~}ֳZ:YN;Ќ[qlqm1NYub1ԸO/[ނ(m[::}QDˠ0!*dhTC5j3ޫIEsx܏,![F<1ߖa:.21)ئ$UH:YJD,5\[QH-Mrg"օ>I#FQd["6 YSӱnƯ}H"o.}ٌr#aF*ٸ+g>xCd-'	OF7/h
nlBc6vBhI-Q2gRXyݖ%3IaYSґE[-q[=y/(e+=11IwCh
EYgό,i탪]"F${GMH^
.)}cq}Nϱ\+>kRX=!|`
*6<juD +.nN%J*	\䬧I7\:WiQ&%_8}N@ G:oT`vN77ִ49SHw۩HgCJ6wC)^Bs X(hz,|YZ0fMÁ(fRcO|BqvqP`1Yڞ;XV%	Vf!k~$SAroǶN[}
[l|
MlG
$2c,~L-kY"\`V4imG/xQtL5k:u\#<:B3?#ƀ)ղ kv8ɽ<Cڴn:z^g^TbMh{KU]+Wt.Z-c/cg!_+[BD gv-SNi?PVH[&$QNR-v+8 "Q.>2'б}| 23
S"$L,0ua &V(`֛X&	҉MCS}l^/pD8UH.%]2fҀFU(]ޕ`?2֬]˯MQn
ңzCy;*i_iMz`
jhdhB}S*2Lv7^&!9|QjPd.d?ºw#w9 ٯI~y7y)rFΦPP]i2 gB焥W7'OodD$DoĠR*I,$0n7Y+ VNEtSNԘN%Pp@טt3zpj9]UGLH61}ZBĩAO!)iP
 ZLm
%XB~?$Eӛ"4;[MHsG>KtT޻0J,DZ|\;g
FGh>;C"G$&LAlS}f@8L~C.rX>}0ڮƮ%{dBy:\'	Pf$Ac8CTfw׊`ԝΦIwr;^ëAOτr+Vo@sDߢ%	85~F}4
UjwǼ]t@#Z3Fn
)loM@2܊e6ruoQ3(<aB2(:#.;+֕RvкE!WDj!+>Zڡ\M0v+7Atٷ++$t鈫_rQe{FH(+N,NX-̓+	.]EKA'.x 
R cUN>H;%
2Q&(4m
ET&Kid:ێȱ~`D@DU,yp5n??τ5N%w򤎨vܐHg|AiךX%E=,j}CV[(Ȝ$r?I`k/GgbrvS@{BN8c@ݓvЄQȖÖB'*"L;Ut)R
v	>ulF918NX2SF;c(<]
r.8h6?`jJI;2ȇkea@2|FKαOnuܙT/T$o)5C=#1gρ2.+W:.&}p#OwUjI/VߞV?wآنcK6T
ڭ%7خMFWCwVw|SWT.zaKBI4'?NQwh> vp%-B蠖}L2	cXˉ#o@?)kCgMv;
P`z0_aRos%*"^('E~I5&0ě{qγILJ{dIWy\^|ge߅W|^P蕬^p[~fg9^2<W9z%wl_6!l!E?X;Nrl|+i+ ɝfcl~p*!!Đ[6Y$ ~ 
pry}{5\_{_`:<W?1_Rk(QT@6(Vyp!n?"K7rt6w.wx׹Nכ cw>RtOox;>ǆ2/7k?"ǸS kVxF({9?Fֶڒlx>anI^ƍ 8@O8bc#+le
 ݲ(²HYYYYYY߼ytSޭΫs.wC:>\gO&~:Ut6ނr|,Lb[<'ӟ@<%;g=9quvY@`	f넱H֛(b!ܮd|b0#{t-y?voyxx8$&fn8!D(2'S2mQoNH'I.o~Hmߝ8Y>xi `0ۦ|UxI$# \bONuܸ̹L&O鎆=w掆ӹ~r~q' #xM
# d̀Jp
	˄mEdhλ>Hc2"g0f@D:z[0.@W_}9]6N'|ɋU"d?148MC?ȜkYqÈ|&F)# '#+ǣ/I :4@*nܦ|Fn!ќaq`K%
/ /"
),5}^3*4%v	NW{2Ɉ`5<	yIYS/}"d̽EpO=JSFL.g)r}"|s4%(aVg~>_#/ƋhGSx{YO~=%rXf?!>@w{D*xs__[2mT)r'[&p$:cMBJNdC
Hȯֈ^vK_]}	Zm&Ë;g<"iEʊib|4L-% qW	$LGE_"#BW(M.B$H)$<lBX٥oSږjFQrXu2)kwD?x@2JiF3d.û5PҔm\Տ%1  kow.˄1[)mH>#o2O(W*m78zEWj6\^l7%t\)6!W09yctV?ZLػx}Ӓ~$6$
(u8㷕T)$PGRR$KS0; 5#47}o1%	enI-ݮ:U%;
!2"F8E=UZ*l?wv:aQ>iN6DcD%1R$nGf RX3B	Sq)[`IP6*"7M!^H(hH j|I\Cۮ<",g`VA1n΅f;)U-MUi_՘ydQPEU@Ti(5l {\xwd:w]2bA!TġVKHqt{t}@pe?TaRxBhJheB,NwRˆt^&jLN~YAdj@M_	.}3&%$K2pe?!^
À^4`˘ D\
3V{{dnK6&TPӅu/^ͽgrX
B.-&<'Gų}5W_oeOLDݭ,n#C^$u]͇KA^~s߾G<%Ya#pGE$[^Ǚ|s^q|f'Uɀ@q@ޕ<K6[A v?F39=Q^\zS}xh^0n4OzU"9$g@7t_X
KO2dl6s[@Fٌ7ݽC ģ$dm!P0s$
,!kW?wfѰNEz%xaVcKO?B@WTS)!:V'%Q6~6qcK}	FAjrrخ9yE^W!Cf{{qI*Cy_85GG|{ѿT>ѿV>W*A~o6%'nF^1Q4A
y11@wu;}A\{~/ɉ2n	+]i4q)"0-ǙӸVC%UUxh^zƺE`tK}Fj>_>1x9xbq(x4O9PPio@Oa!3o'#"'dXՀ;%H":Þ!7Vڀ%qPGP4]Vn<pGS>81[@%WK4#:de,xf+{LqbQjpHY*xEȷƗD98Ik/Y^о!I}{:h#`p(H϶i
NCu,>;"9iwo/23-ց5)!uع;Y?$h>r2%$޽7:x,BPfIX1T߽W[>8La9INY ݃5=G|G5uYy,=xOl6=Ww4$PU _;vdwg~XA,=\H$.2UryPgjP?cn7m:2b,p/ߌ6A|1pS`ѣb!:,8D-ƒ՘hyk4@	-)(&wf-tu!wRE3̲Iw.\V 血1f1.&PgE=btaGo^Hi,x4zqONAdȆng<H!?Y^b6+Ĵ"hҁlBE#ȳ1ןPX؍ >lWdޭ0R]zIm&[P'KýInOO/͛ꍮEl!Y_'lR~ƻS6*H$unU1lL1FGDp3=;%?v!HY)FTm65Do<oTÂD^ZU~"Bx26҈^6ްk., o;̧!{΀(+2<n;ECO7O\<VQ4_DIe7akh0VhWz"0ElL.*n>p.oQҭ&1-&>*;!~7gߣG,{Yv!ЫQm'Ov=j8߻vh(WU"gIA{%pevR@;aŒfDu@)26Igxѧqpv6l	z0sOi{~Z%tQ84"NtF6A";`z![
dO%<8IAd8,cU=b奯pyCb<
MNԆJv[UCM`Ҍ599ײaKS祖3ajXx~Po%fcGs.:$Qqŝlwj,Ll[s!DVdRN@JHCh-<0)!ZЙ9s/ak24%;BsF/wdz9[p~开5[)o!
}W0%1~wv;X5DpG-ѷ/|NBMxm/0^gń>TCpaj j&JJg}&?,R2ݫspRl'"KnDnWTG2T0>d"7sJz@twB;4-a_&?*+gXLeH[,6mG	:QG	&ƞSm&C,=Ѭy(Θ-ÔQa@R4Հ- 1֡)I#4GȾ02GHf{L`O2,#1"ަNǃ'kq.~ENRApzo[g_[ѹȊ|d;3/e;UMFѝP"<8dǰ6ApdX]j&l$uWS܄_n,xt"ceɝBu$*󜧄׿|	ŐQG#OJTc3aʩgIL?&?,I9.LOVj4\؊ǘ_m)Lfqh1H	IepIUAH85F^g!pQ90P91ԓ~D\oU=(PnX+9K+|0a½"bZvPӗF7d]4|⍑f8t9)xΓEs0<kd&ĬT|3w&ve";97&*$.Zt4['f4BJlDEkN _9:dqG3a!Ȱ4\Y?\12uYpj˖d+r A/"fEixq{&&d٤3e|8B/@NR!{|\D 1W*wq''lQTpv8kN@*w1lgpy@ֺ+y/[</.oqA|'ד<#%Zt#Jpbl#&^g%(~gگG螃Ep,ɠ6]Z\VP]Ȏf a]&ؕ9ELQ) LB*4d#ՐqkkgOs`YMP2'Z(iZW\~]^SN` .k,ps(ۥT/0Hv)86yh^&fo1ԝɄ(3GC^au5qyѰey_{2n1ANNN;$>\A(L nзA4e)}vVz'Ca"'(J4!,++R |fwɏ:V3Sn.ts& h)yqh|4ܲcd鈣5v@s'\1<`:>NNn[?:ļCe9
{N3]ѨJ0{2Jjf] 'dԥW:)"݁0ޑ_%DMDpǅ$	;˄ҧYYp,dq{[bczZk=hܽR%O4!)@:,x@3DTaF2I[{1"Bmn;C
	TpmY
szTJ10=it/, P_<dz91vL+>SᕕXt=sL:2܄iIM=s6*>$ƞ;D	k!Li?uʀȓiy61]NhB6M]G6v)El̗B\AF6mJԥ[ԗք8N9pb=ՙ=X:c,?.QGNoJۀ.Z5F>J0C@YLn@;2;K<C%B0Ie5ɴ%j^rkrnaҨ'|]ȳ{A6ԘER3=<{1(bǧo ǂ	}So|kSiH$l\VVEY` N*V6fqiy"=k
S[GxYDLbVy%cksiV){*~
-GaS֠ZX윟VCRO
1q_4;A'T]y$#<?פI"LӨDyHH;{Sba[zD,y3RrP-/WoѐhLdTC6OмH9>Tl!oyQxFv?5&WJ)9P>Qln&kPMm	*db-[%3vD`!D;tTH:˶k=Ĵ]ڣm)`!%
-UJa|+[eBD!>Π	Wҋ0VZWp毪ӭ>e;כJX'^sf4K'N+p-Էȅ}ial	pPSg++,ok/h:^EA%ILodVhyVXS:>&@+`axn.a49p
XC%7Vί

s
kQ|EMagBJ.SӔf"pDX v%f)dM/;c)@w1
CBɯBsi%L9\HOIꙉ:Cm*|W	5deȐ! C \yR<S\gW'WQ1Lr{r6H5NŉёѪ~Ipl?LJ	S,h9[W Az8zl"=<"n{" e` ԉK`w'3<])JFH*q=}??cg{ޝ8ߞ8ߟ~Ko5A_|w^ 3 ꐬ78҈z}G!>@!/e\v؋J/VCax]nL;(WCKcȵxLS/VR	,/D(|mp~-ni<Lv3seaIQxKDdnvJT//vEΕIn
0\" ~Wu=qbvJ C%	Ehoɴcy=b@sr`<@)~Wz:2ؼgzy*M[W3&Ռ0<F ԑжG^KC"X.]-qb"ѬWpaTp^lDd}!1pdZA$g/R0yR~9L=XRqE 9=Ib'!q*YR\tzovJDM@+ZρVA
]VB!Lfo*.D@{70nqjJ5a8vkY1I/v'(pKHm{c6͔>+gn+͔A?b^"d)69c"pEAmh׿M	о}Xm<V&+?  jZZ$;&uq(u{ʣƧK-ʙJkd@1+U=?Wj%*#"v0rVGT*ֺMz5q	Ӧ"؈b .#vb_ahm&2\N{<1(˨pP@lW3	yҸLAJWk9s#UpsK6MSsPT1Ϗ;CPu}HW
v ][7'2T#/;&΁Cu_F8& iFq36ЭCGْڀS0&Y8.Šk2!@QdIUz^41I%``,S^.RF!<]'q)TQIU^K^Ɓ9x̂m!^3# 1-h&2eyъq:jbM9!ℳ 攴HIbQZ1ՊBDa)|NZSbrLEmIlyho:o)4s*f (z<tJ!`IMެ2J[XzKޖ Ý*0[+"ITpx\r	]#лv`s_d	pMw761=~{y垢Hn w.KFƙFw)n'9dg4/sSBZwZҌ/s:}	:RK=9Qitw;獓y_CߩVŸ k77ح8->Ғ QKZ.+r2'q|#UU9(86rLyXފO|@BQFLJ!=_wcRv=jˬYTNIbCtQքIG	:K>+*5Q&Y+ rqa`9<>`*iǑfa
>6Ұ-FP(AzIg<OYREd&J䐿J_}%mlXywsHwݲׄRϏO0#f+!AV3|	]DRiX؉#M+jNجI=i%ȇd|:2+쥟IS$VA6CHT!xރ?tI@`MvR<1?XF@އaiEbxϮ'U؍ΤBuG@OѸ`jgw=oZ
>1<b{ƀJk#)0ų|JI(PI'a8Y#z9p@ߢݎ!/rmͲ%kRfe·o5Fyqu/-LU%(=*<p<LGr'Ry]NqA6>W1XV6[ٵnT#b&Cigf\_ԝ}tmI0)a.˕aBpB\˽8e<
"qK<oL%NkUV/& dtV%1{59$v@j`}٫LP BL ,;E]}VoNuD9DQ~G]*I9EFV#2&4WR]je4؊~AwIֽl<>ce=b%n&HI9ɔRx8:jK^^uR/rKHh/>ݺC4݀T\*	>\XH<Uu 0`4UmROGl<q-rd=SP(3aXeQN[YvOmGd?L)mFHiHv%񓰡nE bupD0OoO0v[R0fJׯj1+}MŊ;YvwJ5pS䖧S5rRӀ&wojGb^!Qm`4\kes6ʥ\ϯ>CnϣA^	"ߍ0$~͆o$*sR]IM:IэJH@hpk!쬤%`-LF2jd`1	nFr;hfM`[=ZZ(G7x4}AU2ĔKQ7
m-ԎAkZG՚a	2+MmjPag͵B%\T*O\I*$ǘr`D~tpYM$X/^xR@x.
B%}n(
Qr*J2盶WWqlZT4noڴ@|d+Tu e֯+9]u}eiAfmi]u>Aab;@cVG{n7᭤=#酱]>=]ir±IYbҟJ֯fOD47pYeyVOSV$ܒܥҭ %2x$nݥ5ukcJ@2ubYogon_(ɏxxUR%{H)bp,>ڕHv+H/ب#XifJ	=$ʵԝI^lN+{5cX-&ħ×r8@\jll]IOD%d5m5RcFK!@<W)ajR9d9!//Ŷ&lU{=UC/`X=$LM܈s
\,V$s@]Tp7+X<Ȯ?G/	;xA$XPFkإF`x=>yEOW22(VzѤw{6w~1Vk5<SG2V}r(#8%ҿ;C8nXY.^N<.͖%U6i ?Ļ@dw,٤&RxGPae_qLxW9XcìfL/8l"nE<\8n$́]Г}/JFti|vNg0y.*2IޑWJ4l4XNKqVC=|FR`QZW6q}&K'3f4QȯJ>;S2>6";ԭ	%d8NdJ6 s7_irK"rn߄4{~CUqj֎iNa0+CF#0x}7&t"h	!42/fvzq~~OMh7ax";d`L$K:AkASDPVbsrt,Jܬ]8e~iz%CTh

m?"Lq*a)w1ߺjSM~U?C;WKX4]DHf8
mH	hQf@<y[hD?F!Շ\F>}[OFd~uD$>cwuD+4hԛggЁT+pM'/BK3%Y\F=}""%w,],˓Ryz&xCmbkҿv.tGa,*.@JC2m"MCdxƼ>BM39}*;KT>pSCfQ=z6o2BO_:)s1  vR^i]~
.( N2jYY^[hp֙L\E%<liMe%TjuvX~^ƣ
EPUkE/j6Ճn}:oPŋU95C݊}=@hzmx1>&1ac7{'6iWq-CRMFsUrWS=1YTP>xΚBlB?~xܤnO˦mޠL>[V ktv
OW!^Kb&إX02A:Q/?]^g{{=tgR7Rү%9N!Q[Z<>Η2<
ȴ[\h*5b]y+WtO9c'אܱ٢MZ`y@"-DVwTTFkK/[/jiGo3MQ=+-2uqSKlޛdILTTOߴ3.w0V7"%͓bufi>˺%t,[;c3#VI:	Q#RګcM;rVi ]7xlE>EPEdIk`h{ obL.
R#4.ԯ6*)3vm(*C{l{='B	ؐ0I0jKl^*//
U*-vWKK}^ӔX^~7֡h4*
+yH950!Go%3/
,@"'<&IՙPV~Z$rV'Q罢@ZF|?A+}hj2+Qi_br</(lϩ.6ZlH!DW,@w67؂MYdgPtUѓϮ	Czo^zlo @fRV/:`k3^˹47!zQQɗNyr<ʔcykh9{l Y"	mXYxwe&~MH5yfwO!f/	A5MUSΕveq 6%At`:b9Ȇa@9qLp]*'Z2R(2jUA;UYCi+ g^^oCL6
pAP\_~dϭ'M-+^QhTe,v)DϝBnx4ʝEhOam=خcQamdBMA8IO4q^(i`ɔh `	RA FA3RL#OV!3ܬa;)<^Fw8%<э.dd6G4iO&7 ϽWobXo0xE\EMVqdkH;#wAWwPg^%nq)gg
Lw{A>n=3p2f-_TءE`-aǋ=۝;P<kJ&;<޸K?y>)\GbZS![N^@t<#%vE</^ hqڌCgqahP3lw,Kߘf1ͼG'I8U4;*nGSƷ߸FZ[[D04dH`5UëCi~422x%r{=+5sApdӹD$bcۇR9 q(lvb002BÑ'PFE;(#qfq{ TKE,n"Z=T_jTX!nm*VbzM:{ݛKu>Sw;&,}aOl'%ƐhY ͈X $K?ndF;8:&z|wLMQew/r9~	x,I
rszM@ɐ_{k=Tz|o_F=Τml6^]'Sz"A]ɀ*:ָG c|_C|R_zt@+	no,yR[PB~w6CZ0lC& )#3ѻB`egqz`KLFVdd~݇w9
+HEmCiXOBVwbvzn#FIQ?^3a}mAVľir̙u!UkYe}ooK--"
J9-ldMx -ϋlK35茧mEAy=H}a3.5<'';|$2ňvJw#}k^^
wxQ@ANM*u7gȊ,"+欃*T@\n3YBWﰤxrʌA}
7J\Unω}묄~3ړƐJaiR6+2"<},
W& M#|>5Z5L(L}O&ľvi/{Ie#{LvEDʘW wo]b,`!L;1m^$L:A߿-wMG386,dKƾ'JvyP߇iB[  a ` l@y;A+L5O)a"|i(<qoV!?vGWc޴ Ƭ/oHi3M$c2X6PT|~DGg6g3bu15)=y}	=)I^K'ҳiY_fdL甁oDޯOd6[
qVϲK,2xi#NF 96/"ch)*3.B[08)VA|	+{z
1Z3^>\{T5equ(b-{}soqt~KM}Ni'{d¥JO#$(K)p*]*dgד!G7%G
:{SP{ɦ;9d&kOFն5\EFϋf/i;D!`^]bTZbz{n	.])1+MbÁxAr^I)*Bvd8I[$zGkC%L],(wМ[uLgT\@^
.ne
gJeV>-36iH>̽EaJ
Zn(ʋLUy+N`	g700E?	z.¤GAZDkvv7jD99<ƛ+M	Շ#j97Xʨ"{U"}Vl#KN%CsvWY}a(lIPbK"ݾvIǙ4΀:],?$AT@w4{FwX1T|I;=4'RJhbS;r4:Bv):HwGJ6fYRoҹ ƷqG2	G7}@\TgYC@elpk21o9JK¾<%#;C#bZt.h] &Jm<CqzU4z8'fdR<˴1 @+0]2S4E,НhȄŝ>=sh)fJkC_ς5  ☷JˠR혙 ( DcY)qS$>O3Ę7UQXrXy>t&i2ڬX5DQ܁^H(b`^6MI7񙞊,Yu)A&>DR_AjP9evI&hyBRvFT?XY-/P5۲rhȂ5IL0iH@؂l=D*X|s.{lkFuɶD4v/PQl0(?t)c>~؅tQHg꺣PO?ǳyB6d7n AZ$&@FO#4 3#]%l1BԮ
">(̉)%XnTf_Mm ۋ0{	(͠+tX=[.z'9CKR*43]e}L,bV0f'dϸb^2urkkJ2f$2j9']S܆l0C}ܥ%ˏJOA5sRSr9KN+I9
1CF+3c?AD'y=:q
?qCD`t8*@YgRgI(>Vu	r@j <KD[8h%U
m,',JTb"JiDj:zDņ4AYT,K-
yi7JYB[ןL?Y_T{G-ՎyAY8=o1 (>jͿA*\d_QnX]{SO~f8d{)To\Ǌ6EMߕdϦJBզ98eBZhq{"z
BK[pbWmz;1uZqe3ox.icIuxvʚS[SUvCQJ|oO!tJSCx?FF,"4L_}fʶs AD͕v>ә;HiMq\]i)K.09A1_X": KvzT B,xmhA@I;MdO6S/6X$',5iE><så*|ia&1wv0:]z
U+h3]ܡm=!2f\|}񦉡f9YTfShnޗC2L#$6c-t%Rēhf{I,鳤5ąHI\uA,hk'^"RRӵILz>4Tbm"Csb*!K繆{=n	4Yn`Ү4"b-Pu"uhq#<"Mv^T]\tF-C8,QCo
\S.6N<;p
qI~zXdx~@<elI7	,S#gf&|`NO*#C|4ɗp V6p FTNJ4EZ`ӄV.h3,VzؓtCR`Hh*'KΘ5PwqsHx@#zBX0y9~o|}7A^_Cz7_"ihXэށ[-I^9$pAuw~qW_0r{4AX?cC`Q/ ژQUXz4 =:k.V@ZQK_ѫ7ܹvLMD{q^RF;b7+y7LsxYA3ޅVn#q-:}NDo,6O9dɵ*nk9sZKQWnls"s	_1ӻʸf<Z*E4[ 3Sj$ڭcVDB,͖,h#A225L6FZFfoWY)NzOOy>i k?
[prrn^ .gHdb Cpi({>%k26[
X}賂IG5:0NM]-`zsOBNlII-Uc&ɂW-6ٝk1\%VI|43y<6(TXA^{[aK	lhɖ0>$[XAVJFk}0/*sH)	R8qe@Eb\*'҄C9cEo_[rPt;%Q\+1ֲaZrtV`_
}x.65^qxnT.L9\2MXjplU`?fʮ(^|ѐ˖rybȐ >FQ]R2A3AN]
gWJq-šuVv	:W^sB*˳y|<:jpBS4ÍSxlc6]F xM6~o\i 79ykJ_HIJcTˡQXkdUaљ2PM+UQҥdSzL4FxxW/}u8t^L5En@y3@A6i(cS]:oA$UgJȮ*%xYA,*323K91d]+Ea+n~RAGL;Th11Aލ4	 v칧2l9[c4x%D*i=$krV<Z=ak/ө,U96khC2*%^kREKyoLW,X+Gu<waF~a2"	Lgsk?j˫||_4գV=TB`Uߏ݄5+5ܚ8tyr"]T4Ţ~z09p+tq"?y){?4
 J,u/W{!l'lXݚ<trݦDWP,}}%_]#joH?!&q8LP~w>>
4ZB`35$GK\9+w#/rf:5Zل?0sI4A$ Jc\'NIΚ5NULǳeo	DsPg4]rK,ayBmN	ٜ(_Ly&jqP܈
ƞ-FDg@܉,|MRmR/Z: MCb,(;`+IDbp<ևX G#VQ/b\HJM6j+}\pN 8ejˍٗlÌ;5GgES6Lar5H]C%kqؼZ^s0`z*-<-cu7 uHVSm.}[F`CۛW{oct7t&$bHe=Lf"j$)QgdYm漪W*{fU˰~aj@ER[K)Uk~i%l_&=+`:Sֆ|m/mCn^Nd3M>x3)\{gVF}t֞y
yE`Z 	ܗHMkff!ȠV0$Jg73^{ؙ\94uDPx>XQ1;8Y8ήYdpS_Sm+ދieSZib3Vhd{dga_zUtPcܔ(A~B7S_83a?|){kܙtxGߤBcd}F@r,cџ\J+ kT(oVϳV4buy)ьnpx\5SS oB}cO)С{wG_wWpsc}T*<@dV?E%ePY׊ti҂K!;a8ۑAF4M]z[m_LQP`EoUs~x¥"I+GˁAZ^O0VYKH\j|ۘ<i12OL}>6xE1w_ng|RvNә^@tYfs+1ؽ:R3pl\D[UنϖܘчSFyNy:5Q犄#q}d^xjc[<ěKu0MXsd踑/N~=?}ZcG1\uG/J^EV֐]֚&BvteSϊ[	G{9B*Q%Q!RԣfTr͌ߋdBՌ\*qVUrT[yt\ysiǤ:zȳٞ $'3O~4g7}x;M:F)bIu֩K@:ϥZYZnRٗοh5WUesh-[)p4!F;jE]l}\R PD=sH06½4B8a,bv#<fO5G47zP4ˆDirYe,\:ND2L6 ӛ<V~TlJ/VyeЯd3TZ?
q䦊Hk;Շ;xcL"R3^zP
9<ٮ2bf SN$Xq؀,Q')ɪsMylXBrTm˹ThQCp٘G%%7LߡVhR¤qq?Ѿ}OypjjxYy<|R%3ÊaPaF՞MoڡRou#2X%Ғ㩺-<3㻿ѣţ2Wi֊nveyQ@_y&DUx'c۾;@Up;VӬ`-WY;uBل;[Jَ$7ִHv9G<>mĜX(''
cW歶ر$ ZẑC?Dʯw3Q;bBVJea^%8fī֐.Q4Z+2UZS/߆e[L߿W^xqlwϖVoW_&YQz{7&Z<K_SL%9E#2]u\^8"':5K"^
9ʬJ;Z=&1^ඔ8YMT~fScЄ5v`Kx#[R]XKKf66fBZ*41zFS؈_m-XmdiS3ؚeJ䴝eɖ"HFOxV{'0t.gfJ$[D;jKNh#q(~nLb֫
?+|0&_Ť|J&)ΝWpd.u`Rݞ(#XDx$NeyXZW.-xvEHvֳ&k=#R^哫i'ʦJB\ϦL+e(sf]kU溭U5(+t;~Aݘ>w%ߥ};^k 9Ejsawsi(}IW0))YLky~:Q>::dpT9X! v5[u|4{oRY-̝ÏM0\xx$^XBo^^HKnLVW.41K\J{gJA(BsJ q
ƾRs!YH{spȊ/34QANun̒MQ$AE¢xvKTJ<g  Vs2D&Y.@@yh
wOvHOJ\FP"zzΥf.-:g9K̊Es1%9ۄpgG?,Vz ZQ
q6\bY y׬og9[mov(,w{jVRZt@"kN(T%6LlmyYr&̉YA9R&h	>8Ŏ=Bv/CXƔ6#=%UjXp Kndv&.uK*YRZVή)eV
b
Yja.T3j6"Z@8hye3aL	Q`JKm4Q3~u^wWkQgf[/u\h{%ʂ6
GЅ1M=u\:s8)6R$ݼ& ԥF;^Xb|d;k	R2+)4/[6-2G2%O)zBd\,g9bs[B4_.#_$(eUzyO[f96bqfRlJBIci$f<?$4\U$)evEoDVwoD{>hDxQ:.~!3 !j[2YK?u1v\SR`/fq΂}|l'ĲaT.]@fkΉ-]&"Yn q<^ys&:!b5.H[[}Vܥ'RG(iO>9jkPN`l@^sz~uEYa!R,_!ژ\@>F~5PMx{nW׌+>.{-a-7?,䀦#;M$7XT펜}|>N?jp;1фҗe=+/CqU19]+ω
˾Nyڲ?YeG}tAvZ3+.}R霰0)m)$	HPO	w\FUBS
cJi20X|ST䨣,XEVux%yWRhD UceKfvZ,Y(g}&0bXlvw^i-XwAA9Sr{{%%Zz~0氕GcR="5c 	O<ʲJ6Aʏ0䂷Qm'a1>z?G6~OQYJ>u9M/W%ܑ./]&JZ\[3W8XM.isCrxVRS\CEpjfT
7 ̦exffG;6	:v)=ҿ%!Jd\}XGJ+]#oA}b)<_{DpPH%BR&/!^<Y2
kX`1HpY"62*
bdL^3;AC5fRcEAAA	O($w%><hmY?\>嗩S{8	HHjऩA0;Xy?Gu.$WA.Eզ`vpfD+)_ILϟ,+*GS	}~:OoyZ!x*FVBuh/⣘^&G'nM_XC1d`Ad0u#P{MzT+ 0wW/F]a,v
 7;[isǮ(H@.2~?sq2t.65Fb`Oe#ricbI`16ԵFP#HA>c0Gݣ(*oǹQݠ6*`\''Ͱ MaX{]R}cʍ_wg, )L|c9l"߁+jl6KLd.MF2M\Bd.&-x	K&+nrOR>O鷇t󓱀RQ!+s*g(V~-64(ObSp~gJH|xu\L~!LO&mwGoNbhb
okw&[w3p{(`<eQPpU5q<Gje%JZ0˗8?`v GS19*ט/(}ENl˙P>A
;ꏭ!{zWTk7U
9?#=Kճһ01'#Ay-vBdB9*DɊX%M/~7U#36ڻNFtv_nJvtHzM2:o<bKq,~៚X P,$
O7P_&9[P:16I棙`~9+ZDPTL0'<2iaݹC.D2)Hc/B__fnK֠j 1z9-tΖ&e@gA-ESjU.io,<1t%Lhrc#bE]J+\<
،aGf(\Hcv.L67HȂ**\z\4v{&SfqV$&|2xg%OB0R/JrmĢ	k@05_@_Z
0ŞODGdMDY'FK=9Xޔl#jWaFQ$	fEl>38l[`u c-x(> ,!%.B7ӑ)2r!Et;G**aLlLa_PK/1 r>`;J/^%3CshSul>vcSSH7}Df[2lbYSY<COB]"ƊIo{Eߋ~x~o+*_gxOKgph(a:<H{W1B5Bvi>Mt=s{ﵛ2I3Cf_LŎ)sL 9-sp.R]2<TU8lLJCڭ5?Kਰ0˞g^<޼) C
:Vic6bJ;+cVmV(S/=/_c7㎩_aW=S]͜}Kեxj||9Ϯc}N;<:b0[u0	]-{8&Z-sM6{}	ҷtE%ZGe=׋=tz*ZT_Pn P?,Ja.Vzb'Xo0m!^厑@,U#1zi>5w4jӫ3ťE7'2g}퓦+GlVV* 뷌W_3"jnx["n(ՑM#(>+)}W + p_5\@-l5k<<89qd 	GPbɍZo+ӏeyԺ~nӕAqlP>DA06]dd67=+$`bufCx.)ǼZ+趗SYX<D` #k(EH5a`j,<Z;x\ER*4!O=VB$ӖK$ca(hdw93Puv٤Ұi2l"SŅ10@xSx0;j%,@2ڥa`v T/UVΞ@9:Co3PMW:,؃[BrXe݉3O_l$`^H%+D;-^O*L&ݻ~%z:uF!,,?ׁi$z_i&*#&ٕsTBwExbv_dՓtAN߭Yjrzg^cKw`;i6 EW%xߝD7I0%4nLKÁdkKBO8-ta}5{;S3ՂBvf(G5:|Cv^53OU-Hglm{llfPde4A`hJJ
E1WOXJ[nL3zw?J=M'fx`w3FލiLC8PWMY"ZX}JXК%d)@&JhLmEt18 [{~+NMj%TYhBc(pƬieo"oEMKIB]ĄZ6+(k9kY;1l羕tNB;FдB.Pbb~JCҺX+Yec,?<kxkδ9h\~ni!fCK{	D?"ۧM4>.h|@<KNzg[J#HM	D{%O7
ݝ[z0Ie7J9PTTT'r@wp]/U!5?Al$U8uP:@jă%<#ȈiMJCANhѶZ墼uhP'&B*]`{G0m7	ʜ%<-wpϷoOwo80IVr!$@|_Kއ|nl2:gmU~2q/0
BT\7ShBQm*Kha^\ײv0&7sav8f]$ Kkbt޾}_rYҖe.\~y*IS*/\&߲kI%A?B:gg_#z&!0b,>"\c?g
θ8ztia7m]Fߋ%v#wGdĎ 	Ӕ(>mW芲<Bȍ1Gǌg!hˤRS|˔|~FʹA;GӪ@SYيi[5Lv@a2ǖm'Uު[* )-͛J,:
#*ͨ+u8&kA_QqS}9l0-9V-Rc^c)FkX
d&nj-uMͬg>ԭg\,$YrDsqE_ZP@4Mӡڎ-.vvo W7߰M۰3s?ogK߀R*)xe]Hys}>K#"b kI3"(EQ"fօdT^D4@`0n誂$o*ML[ws^8o[>5O-o[)wYYּɪύDp{>tPq$N>ZZ<yQgl(ylSbbg)	`nO9YAS~GpP$Ft`u8yy.lH30?ˁi,@v<bȮ$]uwwCIl^u4~CoX-0}+(ߑtqx*yeo~;-rAd7QM&)Iu)/d]NR8kl	zz=jMd0IcGW}t
!wJX5}c`1ʴ*\`1w.wKrZ8$
C.1f/S1"t$/aj~x{c'o`k./gr&7 
<7xeN@p@bbL<SSx4҈@
cҁn?V҃#)<xҋ17Ax:|]?֫˙{s%qLQABXDfBz-H^w0{߫dǻ˻?QRP!Lׄ'fKSXB5)BA/7A0L\F7 -<aJ2eh^DXrya:=gՠ?vdpjeTid
BA&:o㔘hoC}Ns@jW˽8ޟP##}6!eQZ<5ݷOx/ j	selectedCah@l0^!cEk@Ix{J-WdNȨ<
CpK^~J}V2L2ij튫|k"Mӷc\No6]hOvBvt8-HAux.5=#QUn1"vϽEہ0 cjxv {-K/**XpM/u?Q`
f	 . d-B	Lm
9D͗9
 Mj)X+ox{ p-K/**XpM/u?Q`
f	 . d-B	Lm
9D͗9
 Mj)(,x}mp[u\["%ZJ?G닢(~H"ˊ, IX  (ZB#" ~l8NNμ}iIvRo-&rfZkNgvS+ĕfvs}x )s9w[o}͟ޡ^{kN\|^ݺcU5x[Ŝ˒3trI,	I{V^%u׎#N(}|,smmCmaB/-+4)!bqS*$Af+e.+JRQ(~"7rMm<Ett:((YY,Xh]}envm#[cbq^|YHJyQ+JY*pqY+\6+
ݸ,k)Q z~Ϣ!Ąhq>T?QSR9i)6Ka&zw	dMa|Q焢,_OhAkk8/^Fdb1Ԏ/;q}DS+Q1j4+Kr2*I%/LdǱ{D@jA*uꙧ9^rb!Av#:N8}2R_QbEe P s
rCm	$.i@*_%ӱ`~>>`zce3(BD:hj
CsUcp}= ESmq*iG{뇞Z=7-G܂΢]hyp<\MFwF;	TKsx*
NT rr^P4$3D1A;PK=Ƀ{uo?鉥@S[I<}*vChs0R
ESH84xFa HbWAD\b/<Ws9d`"$BK<㌟q iL=R9k[BT.'L^,(,z⚨YPDz"MGs#+%өX<Fr Ed$G'ӳ(6aMW]+˚wjFEf* -yB"[}_9zR.
Ś+LbPɗ,]e$ݒ`lN qJBFa0qe j&.,kX&fj?޺_	W%@!;aU<%),(+P̹kf&&%&PA,vQ	u7RO~J^U@fqyWk*e^^ʸ
˰Q`=7>h=ORKt<8@TL$ca-Ttt}FIG:}BLJ&I'6l թVuynѫEaϪ|g_r.
MDb	ONV_/m۰RpMv1RFy	o=sLYA,fA2T<9eԉ>~wv7+#b`z\|*YposW	T]4`JL/\koO	X s_3:\!CG`Ib42V0P ttfz,0|&sznDLg58]	Ly@QQ*zc%ǣ8T-Ihgf\)f{c]$cI${#sO酵8?b*p5!(`cHWi,/7݁]qW3d2=D4RZ.,2U~aj侊BQQ?|P~,CdxXa<HyAhӈi"iÖ2#*.|(Kjd8ژ"Xs5k2>~'ѽ;qCXHh>4X+#-{,0C2=phG*9H9P  ek]vG9475 +<=&+<̀6!!FX$#5H4@7cFƌӎT /0#cNջzV?j5 0(Xw<bW%`<nXNf+2Jh	^W fϹ1ճ\)RO!x(N,EpY[G#aH@drd'YU: ;tegG^M" ?K.c?5쏾5t R<PP?f@8N%BDϞ>]OH^IƼ(ffZ}Dl|&!M?h62Hd դCG=4 G}Aid=SkI,*eo4,Z4X,00םȗEs3QC6)ЃTx::"=ovg֥z@4O"*)WABTT熇G?z:W([&2cbY75`%ǨѦCWtٝ;A23EȪ%MNC
Ec@wƏdUEp3$ obj)[L;N с4O
9%1Gl5d12="!'N2<#"ײ"):Fjm|>7J1K=~S`mD|s$C̕WJ/6ws|<UHVc)&*1!d-L+۽eT/_R+-OdL&D,C	Q@Tِ)3?JQ*ٲY+ҡkk760v%8FvT<ԻEY@vW-*Hqz\a'KF0=MoU9$uJĈe|!s1J,&eRjJY^ra(sQ-E7VLf e wOВQEespʷdt,
|NKy @kXTqZ>d4``+<]V8`MQJ4f4
m7AiԀD,BPF^#]D%/S8" dJ*`[mm4%H	\`|LǮ@BKB| !E}|?r&2'-6簼06=Nz&R^ԑ{mY5}%ڵr43祅c
g&M	VU=w-G XqaĬ,~QZr4J,]5V[0 R	@u&4Q#!l,e~#ܕZtkO LRZx ^:gv
׮1{Je2&a=KbSw@"կauN[ثo,Ei|]x 겥Wg㈝Ϭ(LV?V.x}Arj$ҜھK$?]e;Y$Nl  JIfP%T٫~m CNAF[z47-=c12Gz>XG|;@:~̟\&mw*Bܢ}q\/%l殓'NJ*2.{5F,.)""}U_$J.
tBFi1iŠ83sE<QBԸȜ^٦weѧMbpkWOZu@kfȶKތ\Bڮ$UԞz$#B9I.P^tIz.yv:i9QF<>? {>w4X1QrG&q4ٶioHOcJ"x%rxZ{ۤE{'L<Z}rB|tOB\MBv{ ii ݨl%ьTUﮑYүz{88c+E!m	Q{T$A#$:֟	zB(0iznDNl|7n'7z},NQ÷ ?l7Iޯi=דRo]|7o'6cWu<!J;zj O1@L-@v[{HtM;/OL;u:GI]j.y,@an<@mN~zH#܄N6$t脓2#яl@䝎`aEkˤ}_32TJ|VI[#c<pLc)omHWXhd/mL3
7͓hwjt{}L:\G)%L?#YY?gT5>jw~@]\4J&Tz6ĎiyQZnmYk!YYҲ2)6%fm~='X{x+;dc&6\XBxU"YƓf&f`zڅ7((eYZkȾP:
Q,jY:W[[+1lz/s³-Vc/}N/:"w
J+׊gk?w5^^92=m@VI!z D2f9Rpp#t#s@L밽C{gmJ:xKN9OJ]bإ'C@X]t"~&&oj*ƕt7|ɦjtR	^s;@[ی$(0<#Kzmn31`!8r=[
>Uk!8FͶ&N~<TͦΎn4ZX.Umn_e72,4qNK\Qn.NN376>-S]vM(6FO5L{+Ed©cėraG0PKI%5ŷ};޽[Il\\>iFWMXXUGc4X0ء	1M2OP#ϲbF͡/.݃~Ph 1@;H=順p.dg-G)o{9GI ÉֳN9rn=z0n!@⼸,#x~ckw`r*d:\3{by͞N[є/Q;5s=LRL˭ynZR]u<g11{~h0˳P/<~9GvnyLnծ|^\oh_Y]{g /ۿ9%wi9yrݲ-qrok7dמx-xT*vgl߂o}h?Z#!֯-'~귶0Mw?Ӿ5uKyߣl77$Oj5FؠB_9G9o^_%W0`^o~=f2حuśNǐ 7b2/raf=`y|E2/e
,p2?*[
{y$-UOtV̳(	/mW%u23N;L^&Oxw8w'k^K}IWՄ>37'
gI_;.)g+ \܄f)*l7v>V9z5#j]Og.yv(Dٯx_BST>N֯*RU:fխko#4[ƇH1zm=LDy&otsb%1S09_䆩賖O@FKmg^g{[GdW~W1!-ɚ!jYP	3K*N:{~q3c8eߘn4Ku2Ow͟\^hl-6`[_@lyųTE'ۚn$,"P6Y <}OO9?!]xM>@k4xC\Q(RjlXxwTJ*5'R-"Wٜn^c缁,gxE{F?6w!L5|tKVtm3k/#ڪݿOv0.aZ;x?zo[ {Ӿy!%ҡݹO4ߑ紥"Y wN	 "}p<DEcy",_Ua@~-Z[(q^wЮtvx}  IHƴ#T]6AmIZ!7ӾTVzl!3ożvBdkaF!eoѵvuBP}!	ٵSlשe22ۓn	qwvӴQs_Y_NwחHg5)->b7aWRcnn6ziff:ڀb]3rRv](=tz՘o4&>n6աW{= [pĥɞj.zj/6t6N`!w_];4%޻9Ce@ڟK2/A^!ϑ'i~9K9H5kYI/|wJ9>N5˳`^mI[L1L1Uf9FB{E&T7/է 5/)~}즰&Qy퐵[ȞRhjDdԷJS_79^	Ci|I%ƾ}yakW_t^c}nwoi/7OӤg4nly<Zŋ5m
E2,Ǥ>#7mЩsGͲ!ȮS1:x敽{?e$)o2=! IhL*)RnQŧ'"w F!	8{مUU|~e!%Q#veG/|1'c7܀#{P&7kr3*Y56Vkm&|QQϨz5\Bm~I%3îTPq6&]!vim,R"H}Be8H1o@A/r4(fyΡSùʍIgx9&7tSCisLI>)&&txÇc[n[A>|()U5MrԼU#Ot|G&ۯlf[1zݚ3G/ȸWB^R,UmKWuΫ\={&{A|qW~>4Y7|P!߸E'nj߉IΤC)t^{#Wo!.(aT/ɦ+n8H^%(+f߫!8Znvwt>fM|e'w,孳j.P8E}箌
նk߉dr.?!7ʰ-״z'Ut>Vi١>Sۋ*Weҋ+FWgCf 
2Yǋ<H1RFaٓDg2I>In(,Wox7eS<1a
TB(F	xirbJ_!*uaÃU7E'D/ԓAJ{a:]}&:}q>޸Q޲7:<dz6_{m+z~l7|ȴg'I6|fxҾe	k&:'/~ti>IB"8ΪoF};r!>vc_Ϣnp5lӼڶ,J$vvߍ |>[SՠR
a99tz@+^2^H9qzbA-G?rMM=^H|!f  &_z|4i;oIGk}Ӎ֬FLAZMp)
,mXxa8%9 p3`nv5ݩ3$[r7#W2ޯ}cP:.,m@tzTFGO܋,5ئ}n(/QC3Ta]U~=BsMK6zN	LV(״Kg->e^>㙃Mt`\骉Ҭ"V2y,#ozbĬ~aup¡6荔nW󠊨p]F5?$+6%0M1	?(<xVMlEpHEUSB&mkW(	!ʟ:vk;*zޱff
gBU7POHDOή$޵r37ߎm2)g
oɕb.˗VrKR&*Wa|_<߾4݄jTw5>sBeP'"J4oeK|._$Elq>ME2ޛ:Klnu9l:0)qj(V	a#fP\:.WIUdVI2wc必WSiqEfkxc:TUW!]w4nZη-%5DI=nœ"Q `˛2cC4[;j&6=uF8d݋;OW4taV/ഊLyS8Iga*?ܠ0iNcJMXƐfZ#<e5>}[0*uLibqdPh<̕pIe0sRv	 &F%â(3mpƺx	<7EPB֕]0`ͭ'7Q#R>Xq[1[Ĕ
7E1('≪#6sĕޗ	cjYUM1UZHd61lXMkpvΛe̥@T
Eg5=n3<T>fkzzF\n|r\2}/wru(%T~z؈K7
5%_ق#&v%SHőw4~yPuD&L;(Z"QT^̯u,AܡSau漖~O[?EqSĔ"km#5ǚ^tf.ϖ\Eĭ*ت?"PmUӬAXIM^ǐg&qź5g
0t`7)`ʃU1'a7VG2XcJ3R+e`ޜ'rAt1C=G߳<7.슧޷Ο߀Ӣ@Sx؊+KRs'ε'/``0yBcWcQvg|0ظܽ[ȸ (17$H85E!R$#UbBZ~^BqIeNBrbNNRbrBjU?pCr*
q-K*GUj=FK  Tx=˿'o,V/QHT(N.ə 9_|sk_k⓻~[
Ļ{@e6 M($xxUkAf.i
-6ĘVRk?K(zl,3AЃPCMś?ԃx٤nV-;}ͳo=[OAwAƩq
y*F̦MS~"n"ٌ*dm3߂y7jNEϳюU̩1/TsJV;Sh0:nZFxRjHk^"|sքc/\qSpqB&aG4\] ňd\$2NG`:6EVJwvm?@o6١44ĕ'N$(3^YY*BUMO)΃Y8\P0bJe_ٔe>dGtWv)65qI罙^^Biiv_9DtquhBUj--Q/\,cb8	BC Ј'@,毑x"=V+(fvC6~WUۙTڭ{ $yfkfL+~ѩ)v
0JU+qVeX*n/e;">@nSY%A@Dzht%ϙlʠf#wCj$x`NM;zl$Z1xa &eErCN&+Nx~ݥ=.Yrk\Pq?͉.`=ˆ+k13E: /"+2_Y|p{K0Y.܂=b85x_x 

ųƘNyUrP<xmTmLMaﹺtz%"jː$>d3*YֆםJQQU+ܰ("/SC>%{3>{O&8ݰ+LFZ~fOf4p؉Ipz"fje853LR̬PsKcD:w{^[dߵjU6ԠTg
PT4x2ހF8ۀ'Fি	B4
8&.I{cs,X07[hB*]~|F<)9%wwK?.Fm.DrWXNFm¿!Rn$f3)aq?XpuUʓX!WA^E4r	evY kk0ǯB:kЬu"s#1C$k=2s:Z=v7ЯS$9т{Dd	b"^Tۆʋn(6j]̋F<MNv4,^?>HD'RtI
K`XiSH	J5	O9Gw!X?iQA7z\F,-w2qx9h`XZ170ZS̔ȼ%|2#E\ו_oivf;P![sY:X/DUl4eANI^@N՜cMϳWEu嬄JlP6c<͇Ęb/x{tv"D0g(?=@uOI|f]1cxcԫ~c!̥왾n#j&95L[@\&L(!x{tv"D0LR`ߞ(X
fN`dSQ	Wn$hjê,L'»}7Lg.`< a.ϸfu٦V3Nϩal7eȴ3<P0rnFEL۵'1m &?Mx{t)-"ӵd"sRJ22,1'3E$$ubo_H|pck_\1F~"L Y M
=x{tki"6( ZZ\ ZAK!(35M'3/ua%ʜĤdҼ̒b"<]g/oԊ=LR`T7GdcGOR` SqOIV1MOfSônR˴N h7 fx]O(q{fo̶Wٌq]V.h[+Z޸h6R17sqHW\"W+.?h\~}>ﯧy',YT֠Eha*HѡDŵ PCUtSg"䠳H%"2UeNZ6$D[%w@3ℱʑÿj FvèAVLR9xAW;h7Fi?os.;B[|`>#0HEOⅦkkTXG3xG깹ytGM=5[^:؅>Nc3&)-XY"tD,~zYF6(z2g̣;Uovƚבٿ i<kx]O(q~c{x_m^kJʿJ4RJZwo5~;;Ra$f+<$\,xTQ%6߰BFg4)[+LW8oMIV}.WYI\c;ޚ5 PiTCI;(XT`$5Bt4u/Rm Gn2qJ,E,Prea[SHXGmQ(-il=	:}l`e\!sk: ^#a{e= װ׿_AEwv/ ENGxv-N"'0nd0eL05ID}7UL/me>iy٦oȷ=i7tL: /!xv-q2Lf.˘cGcܾKɺ Ҿ}>xF 

K	PkY5_syGt'd]xV<O^^$9[4
|@T}1ۧ1oOada3of'Ř圮+͘K3a`,qbEVy]@I`Fy0k람nھʛSNme;xf%3M߰o[#;Qʹ ]LMllYuLX$~A욘t{62s`Ţӵhab>Bl;P#Ľژv!ޞδql&vL,PE=LV#TOEg˔0}l&7 kG_xv-8&Ld/(2}?dtB~dtA&q1zہfNS~{#9}4#>)\T.t]iXDwd:2ۓU%&Hfܾʛ<1>o1#;3fn7I|]'v! RFx6<O^^$9[4
|@T}1kb~E=NHo.H$.FO0w;ĔAkzc.*s4c
Xl;Pq;<宎l $wFUF0k<5]ЋQ@guOF^:nzVFokV2>o1#;U1I1"ӀLj|Ħ60qnUEDȮIgg#{0w;V,:]In&3 ĶŚX!aŴavnt _d{vݽL	fr 9xv-d'32XK</`
 3^.xU<ZO03q!3]oz\@		nr7H3rMbErNוfLmo?t" -nx}s.˻1M##¸G0&BWdz/rO&F8Wn{d'ȯ@H)Og1%Ig {0w;a1AӁL8obr j/6Oyx}Uۢ'׋M~|9r4L 6x۾:"&m%}c%kk˻3*l4Y}'Lfb.$ԢG2Lfn8]0  &8x۾V"&m%}c%*0*hde`c2ЙуQӓq;'wLl<ZH 1L"ۭ+x@t@ 
z&~:x۾s."&m%>Kq,u.y3M jQL#VDF3lbgdzRcf  X){x۾6"&<KD}r/G;~WHrL:7z0sz2ndΛmPbɴ$&2=6IdU?t/ cn4 N )jx;Ά-3'V$LpLlr`!=-}. pwpsQU0ki)(bS`XU	F$#U!9#3'(5O!?M!*?%U!HMMIE71*aWcQ6} Ӧ81MV`h_̸}32a /FxZmL[ֹY _$'MBÀ`Sc`I׹b|{"Vڴ5Y4G%T%ZI&ݯںJc?ڨj+MSO1sy}ޏcf7Yǭ̇\XDgjOd-{3ڣt̗^d/LbR2w/6S^̶BLq!g5qtd>njyjLܪk4(-3=폛Եܞ֊h(&`aAHXTpBR1#q)fn0q5}@(<0{?S^biF+mi>	+JQy5PD~&!90c'BD<r$v-bU²@>|u{R_(
	Äfm}NPԔ,̈4/
2VAJ&%Y#A@`;4΍{Ô@0]]LPUQJ.ǥE!g!|")YVGe~~II"`00{/g<iMcʬ]:D>:ͳh{ì'K|f)G`(N<	>8 WWam 3|By~S\O%K/*2*-&J/L.*[qpŹZZR7<Wk`u}].Za)'_}k׆@3?xlNt[G&L$&ƣ]Xŉ3R!*䣎zΟ,qP˶d@7@c2?A#\-\mwaEhwF¥
$9J^DIE=SQO+hIIL4K`(󲊾_dTMT[ÄRtu_@eԼ~_@_lȮ%6r璩L^~	(e%Խa)Ҵ{{.	_FR(RH2:\ﭠ9 h_h]JcPTdUtK`q g?\ERP(0(KY	ÈruK(NDJ&c/CkW0;(k<%~PSq/pOwv{^ c!ҹ~0崾j&sHU;_:Rjq!}@ux)}B&_\AjZYzScZe(
tUDdl&-;-N_5W-E)uۋlՄ|=Iith'GdEVQJHEelcP}.
7ّWb:sV;Ǹ<apV;ϞyrƏVh5w-4yhlǪuÕp9#66F#ϔOӊ-6[k6BK1؉ɳٚCU9@DX#"X
G\Ve]+]V'ٝAAQeil_@{-W$VuQآN xf5|EeS_/WѲ|3ԐVbFs2vC(*/6(B͂N"*_	0-L>D"a7M	</	"S]0EJ&%ETAG;m1&Y)6mQ+ǄbE݀g==nGZ>5%'r&NrM>i CZ+"i@D%騨$2fE#ݡbT11ZIĦKʭKHjLF&*(V:lX4wWaFf%|aؽWSZMv+7ЖyKzsHIX7AݤPXlat SİiS_\d2TBd,$P|:胊yR*)BwWKԚ;x07s(gڙ wO
m
Q9PonUdiE;Xhl$<S6ՊRwis]"R.pmB,uv[RmN(ViOnX+wD8/gf2)S[drI\_P+ݧVVTmi451)TWiV\''N%S,A;Fr#cPXNk\vz,sr0$w^B[Ս?S;Qq-Mz)
JWVp9uz07^BNMzXUX*<noD=do?Oy5!ԓ?"m̝uq>󟷆?Q-<ܗ)(w΃f?Vkj{Sl
q{P'!nG0I'[m\' SxATę8Kq$'o(/?2[/$iW4yoAtdGQD%KI|4q8#hW:st@P("]> rjgrgԛSȇӨs|֐{w#st5Z+)F(1ATc 34#_}
eOzե}LK$<N-J^>B\4@X9XJk$G2`o82vL1"(>IY$,jLV]wTl+p[N"S*=pLKH`f!6`ՁݝgP6E'+6Q*1x" pbb^ k ac$✧n @S忏lu	,@)(ۙJB	W<tePy<ˋqu/0je_zaas/'Rx|wÓBN wb=[Ss9؏	KI~9L<ʶyȆpi_w@'#he<g??_('8wj99WPV?ٯJd3X N|{a25W 3Y ha1"9WU
<[Rn=Ƴռs5#oM߻{棳$U52ԔHS7@jx;s&Ά-_`dΆQ;-?X!7,5w>9&3}
Ģ=-}. pwws2\lt*HJLo7zdu`2%<&p?rRJ&s-BUGQfzF	n<=kA2 =@s` v_Ox0 Ǯ		G`J`J`M5?STRDisposeNe?xm 	0& CZ:O3Uh:a!M8$V<B0B^7;:5TFp$5:xR 	V CZ:O3Uh:(B0B0B	5TF&x
Ά-Loe~ɛi% 2
R@xs|a"Xy?aDt&7 -xc2ߥS+RK*sR2
JK++j2jr)KjZbiNBbAAjbQb^rBn~JBy~:P8%D!3778,b\>6F4\]\=}}]=\ltki,a-d1Lp'9>!(aX0sa.A(fp*8ez{CC6|1ŸSɏ ={)x-sXg2kd*姤*d+'+d%J Ĥ}l2nΡ~~`VF	#&f$+THKMVbrkp؊12OO89"l4TWs'(ݾq: ]
xsJΆ-L6Lad~nŗZ=چI^ ?5!Gxs:{UJRJs2
2rSRsrrR'wHOP!RQKKC=B\B}<}]\a"CaZKR*	usqRPXPr6\\ujA >p>B]6'2TĒ"`PQY[VP_ 
eE%z	wqwq'128>? ?OV O;2"`OO?pO?=1@du{ug Эyx=s<)/Ͼ~4 ^
r%x]OHqr[M3h*8ZQQ$AӃbER)M$jOحN5y	D2b<~?7rD=88]<p<ruIkw̨8ՍcdDd9[։R4$Pomi{΁,8>"Éiӏc262KwK[S%3? &GXT.~zYD^*&G)͆(FDRyN~)gGOG#~.rw	'>a*#Hos"n6/sxoe3n3_f6\7/ȒycnFSqY"#-u
GHWkK~.WbͦbUHWjZuGVX9B<ƀ&b_x4ЈZQVg1nbc: 	x: 	UX*ZmjhS)AEAEA	NFiMx4,ZQ۵9 Lwx7qZ+<Ķqcf vk82xv>0ɐTbݜļT՜A2>P	cQvg<LHv;n鮵'd1)($b7Z!3$1/y}7&I}R<J,J-.)nQ)dj){c:rzR	.­~``AhϤx⒢J,n̤hꚗ
RbIIQfRiIBqjIIf^:xn8Qxe8ݦǥPX
$$K%Z,14J!-18bzq &IlN-q*$[Pla.d$6MӍP
QZRZ#$2Ijz3?6ߺ[x҄8l1/&O Hx{;|Ά-L}S/e:9ϖIx)ۻ=x4 0zba!. +l/%g)VF xN@B	D%-DPiqBִ.	+;>p!qEBphs.NghfÏ#w	 /ҨS!~Fϝ8N4`=R(F~b117h,#r'b*{dJ"^^7h Y?r.q+-!u,עZ4';!=Nފ9Z
MZf㹣"C'~j,,	<zD 	
ٿ'wTS*韏kv.zrJX1&e9M`Zz[juȧK*dŊ76D%dK*&@hrW\*_Md6*Rc3ԍn^GO`yl8;9ݬ"sp)3:Zސ?cm0KDVxOkAƙ@$Hb_&*"Ն6@Izml'ٱuf5H< 8x詞8mۼygg~}Mhd/@mB&AXBSS
/Ͷ
!@{6	SmP2E#)O:5\-3+l``):;P0Hb\2I+PxP		暵fRϬR[Z륀8gO*coПX.\^`p:ͣbgcu2bk=WUBHT]B'{{"gi$[)|Ln	}L,MY95'fg.e[`-4T^3APuC3F2cxz4@#`9܍W[t_F:'ojgkꦝGW5\["R	k4y/5֭JYZ_(s*]rk<oϜ-`@mRۤ%b'J5@Ր>AcAFOtq%D˱jw#x{wc3'h6nO1e w	)x{wc's*槤+)T;de+{{FNh+U[PPXZZPY_Z2QrOvS?xG?O_O?[. RN.j\{cO3`n(MKM,R(H.ļĒ<<b܎ (
rc0+tjC=3RaFOwRi^}m8 W'w=x{wSB'dTPX#$<3/%3/-_!9'X!-H,PP_ZTZ<yyд9ez1l4=_&$#U!/?%U!H()&f)Ncc4wqu	ruUU040320|wt:XvHMwX"u^^bnBZQ~+bC!$#4%U3JĻh9tY&L.x(&Q\n'@TD?3	sb=OA  H[FNx=O@ł!TUPl0 ]c'p(g0`%dg*rC~6>GUuJ%3\ϊb{^c)<>E rye w(փS$*'G4/''s7
1nXM1w|֛Cy,&~ďۂ;52+|Y#v4d}R T<3l0hg69a&;'1DԇMYGY&:6	SIKYܺeAU%	 $'oaE~[z]sU'ji/pC/ǩ
ԴS;lC[ϊ}ߘ1$f1K7c&O޲,ɑ5!c<__X#',	#`=hX;*YGxWz*?N)n ɠRԝ
B_Y!xpc-LJ%o0
oOPb ~V%xkAIEhECI)<t$K~Ln[r
줻$	xCЫxPЛTɣ^<yRpvMҖ{Yf}ߛٷߢ_~D^kcMGw!S5{QqŶl_k!Zص@`ϟӳ@<HoEZ^_KkF1TMxȘi0@ܽ9As`̔]}̖@I
T}Wr)W߭G7߿}}:PORGpXZ8>'=l,Ζ[)|G:d]t9ƏNFW"0uOڸ[SDo&2#RIlm}Kk`>)])-Բ}b.JiPՌTBZJ9%@±$=\G#{x$>QnU]س nQǒG]xTIq܋|i&U!j^wMwa -(-;)M[n&6k="jM][)>d͂載'+\LwXsWila*T?W;{/[aybd߷L3x[sǆZYBof z
1xCB'dTPX#$<3/%3/-_!9'X!-H,PP_ZTZ<yyд9ez1lṬɻ9p^~JBfB^~B~Bnbf
"S?0r:zŇ**OQz:8髵`aʱM38BVB=.- Rp(H,JU9UL2Hda1D83/9Ul5R*SKz5|F$Ь=QL$dh~l_1NcA%(Eۯ05  ]Ҵ x;6Ά-|rKdLRK22KsrSSKRJRӁD~BAFbQqU3rk9ǻ9x;(*Z1ncc + ,x;VΆ-m'_m`˸}-, 
=Rx;sNΆ-2r!
ey%

y%

9yP^N7fwsuqwsQU0PQA&9? hTqIbIi1ĤAzp}ǐxG'? _G&?0Jh+ ,Q(W(J-
%εE"ϐ ``Kۅe0m b59x;VΆ-zn/EN/qcT=ۍQ}YnLz" Anx;V"""D"Log#i5LO332nrt( 1n>x;sΆ-%|rv  ]GxsNΆ-N27H0*LOà妿aGbOe>E Gxs.Ά-7;1%d)d+($䗧()$(%Ģ2.A.AA!~~!>>.

&_gc -*CxU]hU^i5kj	Yڦhru&4&$i7&Mj3w3ܙZdXpQMAA\|Do>EEM	%
0ssndP$V^쭴GEhu%JFw=曎 Y(8qc't60MMƲ\fz<MgNNgfs18	G5M;VT?w$P-.'I՘$䯽Hr+:sy$%d4}kcq)/7.Wƕieu]mɞzʇ.}Y}t4Z}OX]Ed쓿|J9d
3oq`g}_BDe#+kULHyΥsvi{ulSe+q{"kK`YGD$	SHE[[dVm.'IWr#P0NoCHZjO.*kôdzhe=.e@"FkrvĬNoOq[Bx}%k>jKfNuluw09>Bn?3KMhahĪlw'PKz`M[BGrF@IdB{EkY4¨ީeӲTܰ> g˩9S2rHq'5Bg+&?"4^;{`p?lnđg(|(0
<7@Unz"N_'EwXV""/0׬p?N~ġ`9̏dH:Oϻ\WmQ!G8_x|qY	x_h#G^-D[.,?]~ Tb5%%#wW
i`ǗWkkc֖IR+9L(C"5osp2CS7d_{hڰCZvWҎf&ɔy8d;{dv+{(H$;MV2-Xi2թtolx۾s.Ά-$B(R)F)S; \V xUKkAj|^R*bQAc0`UL<.*KL8=L$FUxhgIE{TYDgFw 0LUU<yM+zhDKLHAAF0h(xE*.3`sLhugoۧR(dsKNSdA\(M@ZCX/$dSCf)*n#S/ܯuyzl5V:khWddy4i>wP*6жH#)پM#2!g̻dɽ&-9-肍^5+XRD,s;!dr!!3razY
ZbJnäAI (s]"Z-KojX+ (Ʌ¢"W{(P<kNz!P:s	EjR!kt&ye@ ˧
 5hR\kEVtkhNlFsq77[vˢX!'[q$?:C	Z|LKt@yG1sZ(UD[A:e>80jħ>N!wA&H݊uӤ{72ώAbr,At[$p+8!ɏe2}Q;qL~@ʲܚ(ف9{VZ$L_bMV۷~-Ś<rLzׁWa$p}ǅСXd=Ёfg>wz[ٖ;'Z3[]Wv{[>\FZedYL:zC\l
Gx[sM'3J50najfʥ5]ލIq+A"/&nLvOw9p''
MWa1*)??g;t'_~LA9HLv .>x}UΆ-nE&?nƨ׹3nsgU b6pxY[lU9ql/Bm-ۖXjo:Nvwٙv]A}R% >`(>yy3sٝݝ}hv,,Yfr_Ì)7͟E6V6dpOV!$[ᥠ @7ޘSSD.iP.?]egk
W[\[A_c+]E=/_Oȇ& `oۀ6nlY#DVb0V8KQi;`"o6 @W;M0Fa(e`EwntrU=&1_ 7"TAA~Tޢ1xǈ4\컠_fCp; ]	*._eY]cȍZ>/d4/ۆG9MZ\!ƟΏTkѐHhA*k2?l7m䆌
?&Gs"\ۍD^fv} {BG.
 U14zI_1̈σ;o{5p)KEA	Htꩦf|50ΊL+7NxDmm5utlnl=_1؆1[dEB#Toi\H
ZJ%B;ٞIkFDMrMC17xWB<*h2eD렠8E\^@qdDJ_!ҡ`~V-L"/c6h!>
.t,֥!63sBUj,Jn2ȱ3{&:Ѷ\Dl,,=0w9?tPg{Gў#Dԗj_G/it$[$k2ܡr.d;bY{*cC.u6}b$;,Π{ !Bi$A$vk-0+OXwfet夕Āo:ekW@1zw4o#FeC#Eqtvl!Hk!,{f8a7ܒw&<		c5̎9%j'Iov\&F]j1ҬOqaȘ}&#xZ!EsW H:@hjx1{*;F+LC>]ᇼDg>zBuNB'^Jh_ޑk森0%CҼmy@wq#!7/=4C>/}KeZ.nk %k
^><Ǹ9!%
+f!eJKx1 4MK|(B#܂fuKWTX	a3͉S`Xdbuі.VUiJ]޽d2|2YwaGM=(0w`j(gyU6Db᳿[mIL  ЕKx_}Z7kB2$Q\[NKO;R"je(Z'ILN.V}*ŋ]ִ>j>hnձJ>lFSߚ.A>\&٘3rx^%X<PoM	%!SEץuJb]3U[[eM[nKsB5D!bF)q:bǷ%ـ^J;J)
گtE鼙ΚjHn)p#mZ!N ZPfRXݏF-?ǔ:Y4Vl-_6KnkǤ,`iőn"";ߠ`3*|tB nu)Gr9zc	t^Fi.Z֠ONöM0AgxI-/fMOhfd[;3=/(U$#U8*U!?KLN,/RHj̼RkZk?dt-
bB0HsxF*PsBI!sBܲĜTCļb6ļ;%g!mt&"p+ӜKJs60*Nut@}'Rr|.(2]}\&٦ϯeNTԒ<Q)%P'M5=a#X&*EuJ7`a(+ IR¬ Y2izRFaPvI"qr)h)8gMh$<~1rm4q4rF%~H8gdN?8ѓiaȽ8QczLFj$BMDzjQ{7.cק yAPxI-/fMOhfd[;3=/(U$#U8*U!?KLN,/RHj̼RkZk?dt-
bB0HsxF*PsBI!sBܲĜTCļb6ļ;%g!mt&"p+ӜKJs60*Nut@}'Rr|.(2]}\&٦ϯeNTԒ<Q)%P'M5=a#X&*EuJ7`a(+ IR¬ Y2izRFaPvI"qr)h)8gMh$<~1rm4q4rF%~H8gdN?8ѓiaȽ8QczLFj$BMDzjQ{7.cק yexA 

	pL]b5?}~'6x[|-UKKs]2sՋS+R3SrS&[
O>'Z+,HC3ˋ1;351%1e\WYy%UXR2z{Q_R22RX_ZP_P\
t-%
yp\ V;:ƇDLL6_Ub05?$%b꒓X9#G*3yq  v,x[|?\
 ZT_੐Y 3SI U{yĻ)*l6
RftHFBis~^IjEBf1КĜvHfz;F 
stchi```ÅۚĜlҼ<pqrtF˨}	LL X\qx[|cu-LY3Sgz 8	x[|MVj)
iE

%
ii%
%@)0gBQjbrFjd+aDKJ@&)hs) cwgsHk|pcPXk^
!]~.@=F:\
E I\p)hM*)oߊQ# {AKx[|cu4ow	f }E		qx[|cXywo-,14u~F{:}yL@z2v	Hq۟OdԆ
l
LEҮ'LӃ1N_QljF-|'1oן6=V 7Qux[|Xywo-,14u~F{:}yL@z2v	Hq۟OdԆ
l
LEҮ'LӃ1N_QljF-|'1oן%<=n?X&I9)EWa1}bF рW߮q-#XC4`#1rOϨ0.Fځ1*NkM?Blڋ_ڭ:P:ܕۻv2Z1"ljYʂE1rmQxAFY(}Ma/70hę?bg)6=V ř]x[-Ld䙾#_~BrFfNB^~JjL)L 9xUOAΐhDB44@4B*	Jii;aifg!(F^U=yDOL8xpvݮBФA'Ms~Gc&e(^Ĳ2Xr4IRSe:n/>elYR`Z._]Sg_%	}Ihm?:otLB
hG74s]tnh>2l~4\ED(#a{J2G$l,X:f@
KWLb8/wPO+TQj,30C
6%c&PmGjp
|NU
{iXܬF=W8%ʊPb^*>^|^¬jpW)J&V6llȺ7E@eC][#ŒaMG!zH2`_%AY=K~֒
;{0'AmV|Y)2:a}-4[/Gt"8c	ub*րꍣа&Ymfֹ`jR۩Yx-pWq끍XҪ!"@3C3:{P`Ѓ.:)ֶ`1x`Ԩߏ KOŠ`b#l]a/W$eU66Ψ^h
:&7""D=1ۑ9Hx-Lfjgg]i&鵲Lw 
!x;c-WdN7Ũ<m5!8OuZFNW3@HlJX2"[1n`D8F-.[4k;Ho&WYL6}f=z-Aqi{PX Yہ
c!ہX @N/Fedezcew0x[c-L٦3)mƤ/ {9x;<\+"y7EIeTh>wὌ 2*x;<|<qZ
IEi
.iy
%
)%
IY%
i
%9)@(3/] (TPZQ[WRǥ483/9UЄk"Q0X{0XwKjqrQfAI~cQvg<6ͅ<@_KD+ MM-*+KLAu\j_r~a>.!> *]V \
x;<oGTȱ]Ǐq luP/x͒K1yA"u{Ap
8(BQGk;KJS"B8GQi⦣	^,!$<av=LNⲍʡ(<m*L"<D	>)b"r}sQ7!2tG]̱]&aEMYJ%xQOTW;La6b,y-H*0Kpm"mz4#}(>yv=}"΅@*[J#U~6;n^9?QՖP)00|W&wCŋF۩?+Oxƻ(2y|/k?Ls
^`Ba$tȪ0ג =xlx;l؊+KRs'ε'/``0yBcWcQvg|0ظ󶯝ܽ[ȸ (17$H85E!R$#UbBZ~^BqIeNBrbNNRbrBjU?pCr*
q-K*GUj{ Sccx[=~m>St8c} {h
x? ~Mv
2|(S,%MпLk^>*Ox;O0X
UV0EGq.Dns]9NyHvF*`eEoT"i)sgV>scm=4
,WCu!*х&"uLCF'p*Eϟ'n rBCuB+~k_t4lCJc"uHwc-F`	sѬaW#]lUAUS%Ku`
̴YJHKz"r*^PwlIJ^P>=R $ad/ёߚT̝֨mʣrOb2fnᢒB>H}X>=~a{ԭݑWӠVxVOGj)B$@IG*B5i6M,R;ٵH	ʡ:HJ? P%kC[]l~8)#;潙iMsP_JP1DGn #}[omowӤI	MM^զU)GGAJÉFWmhX;B\Z#$މUKIuBEYmoijذ/n XJSGay;Ά.*	UIr[Y6Qv1?&\0yx[]'8\Hjrvԇ	eoIeV$3'.a$VH,4!}3Ƿ;IYєU)%MiiUK^RRⲂ&ّsQV.F:% 77M-ɷnڥuP&wV@mS&sBEl';CxRԙT:1W[-g~4&^qe0ӑIvGy˟r<\T"w*e9dح|(yM®ae:D9\B~E'!KCukP+8.iBVAU*kUizdtu]d*SWD`.nGH3Qnvl47[DmHA#/?:FzP]0= Y?nGwZ?Θ}e,1W=A7eW"ĖfZ("Nb4®RCBZR@]SzgD&#H<.AQ`LQa;gӵ*s2݀^O6w!zæVe>'GT0]sU(8ٱv`Tǐ7^67d^5IU6lvZ=&Q&F,j:#*Թԑ0
$TibXVv!ԘA#vA/83J7'tɲ9:pW*d?9ٸ`;>o͂^nAF^.ْ~XЕRWDJMJ)_UiUw_axak;>I4釋5CX?.Ψ4x4͸h,RqYaF5V\Q/$3Dtww0~^6ذڽhOP_/+⁼ӱIz9PYzx"x*{*Uxl"~*t~Z= I0Kox{j,kYpmV|'3u3Jm(jNg(1Ƈ`&2N_ȳk2ctCOc,1ٷ.b|3}F7 *).x[A|ur
@_PZYP:q3bV6$%/>? >81(D)

EUy%99
ɩy%E)
% U?D1LC5 ( -A3ͥ~.ĸlr"[
q&\Z4]){BfX<3$]B\Hr$i#%^F47471JBa"fdF08C$W90D1n;OL [mIC+xSJ@"V.-eq!tV+TuH'`:fF07s!K/~5!UZ	s9'"GTXHFK8a3"zIdDr"ThdCDW'5ROM!	$g%>;[eȭx*&/am.1ivW1pwïVFC Aǁ0!rXL6MlHr=-8U^Gv"{3^%I茤MlFQE;k}aAn{3=?αNrPx; Zp}+[gnTۃJK]g<ukNAz<m[9Y[u&4Y2*Q6P,܌=}~õo"5xr)oL쵛k`hANbeBfBZ~QybQBN~~F_8]<\C<&e(#Rd}O.5ĜԢĒ̼tT=<ɾR
y
))
yIE
i
%:
%\
  2/)19[!)E%y&ڀL:3hFmzlr`$f*a|mtt
TX:ydI\ܛ 0xr)-a9K)0r	&Vd$V:(M	bn*W>?,XX_P\Y`kǥPZRZP퐓=9T}Bpirrjq1X@(8yzƻ;89{9x*dd&',+Q 2ݖ4<34-@(JsR!J-ǫ4]&Q@(8m0'1M"<6gr
~T3f^ ,xqY_\@_KK!$#U (17$H!'5/$C!3OE<,5D!"955,9tkk_H|cokDhH[|)%
)
y 3K`6'휼Etgn%,ք9x̶Йn
ġpCK
JRKJsJS'~E2?>5$4f/fihxn@U	Qʢ 1B"DӤHB<iGlc;-bcz@y[ހ"+@b;?MW3sY&Meo@,
豎Xbp{a9VG>`s	2\R|9Ρ-qVE+ЈB;$8֛ȎM]1X bS澖J) )Yo?OK?Vh*=8e]]<}wON+TX. U"԰$5miǀm$@?A
$tgj.#Yj	1(aߊzti5H1,}P&MȄfbj@r\pNC&Q֧=*9]t`!l'Sk*ÇU]VFG-yh&9~\]Mnd|}Vk!nߘc*R]B[h+]ror"sJ~P?>tԄsoR:iAKD煸0OGsZY57x;m-g:(3==hJF݌2*+h)8$%*$$*
)iy)
)@=.U3Oe'<$#kC)gh͛QxS~OxE/hddt%#U3P@Y!<]rF\̨a4ԙ!-'260Nof d:Qar_hNc&Ł/1Im_ǉFa@ll&AX 
OoeOK+N-qHKOEwFB\`ptO`4 3xOJ@q`qB.KV[wi0T0Wifv&LRqF\x	 
NVl&37O+o/+[ä|.3)OP{L<z(Ǉ) 	!iܚU] e'}Hc#*0[ڱQҔ0Eg<*X\D@H})&#_-vauW-Į[m:m!+(K9@RP1Q_@j8U!xQh@9,CTf!ٛ%7
J4}}N!f;fce6U1,3-&`~0ᱼ~j4D:#4	t\PxJvB6vd׳Lr鋤)LM$wÍo?x;i✓ퟱm^,:y{ͦDdk>vFbl`@APԴSE2o̸(3=d<Fq(tlF:w1Lo 5vxZMpdĦ+~,+u%Ki㴡HHb$	q\]K1  (t&=LCmL>i{詙M=] $Hii=c[#Ǐ'n_5JM"dDLѐuK3+'?_\\аsi(
l\VJ7E~%v"1M$+UG- dU}竧;{JkJT:i?}`|דerIӽǈa SDU-YS~1x]h`N31 l̦b&G3qsdÅF%tf=Nh~fMжk*Q-$iDf!D˲tCӉaɰRdv0 !	gb\.xPΜ9atduуD%TS?	p^eWHg.TQG:X:e_vU)i5UBfs;RJ>ώYȮeĠblfO=xtAr<MX[ cDR˰$fѪ$ӫ)vuc2$+蔮z	7X>L?[;W??n?4˪A-+nQ> $xZH'V헖fڳ(ML&Y7f<m%
|`ݴ4]w7|Pj./[˞a%2-"X kef|x
-PcEkb;u]-uZjacXdfDS(Ѯ\'0#NBP(lH"e\SsӫnexFA,,.[M@XA괏2*BD5juq(7G_$m#{ưtUʲaRՀ"*BZ4]Jaęn7Y|%`JK(MͨQ)iV-jMlH&;u25$[q+@erfhI"]nYa9$eE+=>תFڛX!⍒e߿HzPMekDT#Bz5-\-e|r@?̍K޽a|Bշ/o+L1Nr.]
hPlf#!=g	Tˊ^Ų\ꐓJ`.Qx_r޾;xQv0 viZG,+#+wa#T%lnϏ],dI'ݜVE
m]Oxq@Kg僰-.ݬnKQ_O-?|Rh^UiUJ 8g
V\`'=(qZxJwۊ#b9<= @C̭M[ZE
YOg!.=v͡L_ǮD;ZjLvY-7P1PK`|pˠH:Q:kyЧ<D&}9AU
L~ޑ{7Νn.~ۻԚdZ5pEѱU	W,^ői$ks&pւxZ5h"]ZKtMVk%tnTƲzyigr77rPb+u!PǙsi%[+E
:Ovk@+&KrZ`cs珎(0:.&L=Z2u/3L59:,&޽:Tb؋)SwFOm ;0;/9b)	eTyܔ%Ux4?u71,WpZW4#(
Eא8okl@?{@0\`QPaM<j4vdŏQgw`)gybhO`Χg}J+d*8w׹ay0<*0Ht9ڥ|Z٤_Ĵjަ4LBpI=$k0H!e:@i50
0lwЇUGVD%haqtK3
7}n,,viU4C~.e`G¸g[U <|AVMi#GA q/G]'Rk@G#B97v 0slKU&5 &,^<x1-oĎy* o~1:.eMRB^QynFaHl:~k&K0`JL#Pyl7[3خ0+Wɋg)aS9rV]0%٤csLy 	?~og!1f"5e!BgDݻK4=m <lJ.c7zТ!?"N|qS}A/rˍ\
a.mI6ca<P{i.j'kj@Ap{E QDGَeAN<J;aF^dw-nXw/z67y0}vj=ǍvU~]D{pKSpڱP	m+V7ZȘسCs	>^H˲mʪ~;/[S=l({sͅx}.[;0wJmnEB/Zm8="+.N*|΍8zF{wpGoKE-sO3j;,;eͨ6'9+82bκ2}Mp! 	ā#(hzA/.ۃp\gdp|}mfhhÏgʱ*-xR=oA!(QNh(lN2>tgS zo;! ښPi¢`8hr4;yok&~l4^ZPdz3XR277͍D $ƭ m~^oxoBBd,j|wzaBjr `0#UpK V-#*͏f][:5XDvZlrª&iDI'S<q"22%=@E~^q:Ll	oDۖZS*1wָG^ҏX*I7knnנW(gXX?4#J9y{6oHw6b`ޭ~Q[4I׷__x{yiֆ-B0JN`Ƹq0(95/eXF"ײOgcԟ.gDiE2rmwOd\ 7x{ym-r%&Ru<SxZf5m3}Y&Onı!6#0(Ȑ2|-%2`ol4f"~an¨:y?-L|2 6^jxZolb/')7AMql'PDHzqV]ǻ&.wgzfg$B[*<T/ZxUjJ}(UPs?fvfwgv6V{9ο>r8ĈCM۪#Uf6ȮI]V횪ղUxYmLlB5p~`Ct\.<-6_Xϕ#~u	H!E*Rh8}ywΫFn }f25USL?UDaS?s>AvĶOήM8\؏GOPpR>2|g^e蟻Jmb2?ԉn#lXtWfkG񟪆Y6\#m3OY[h4Gj_WTk)Rb<GS-TS)h/Vt+R-g
++bv	Fs3>[PuEK>*&QfWޛnt~)t7D24e2G(<e0
Up#E5bZlZI!i6	f
gF_"EP\ih± .BL婥t )#cɆf6	ˀ\qcd:rE&Dv[4C$٨7a1ӝ?-Pj-1=nB̠R~r!VS1M@CY֚Ξ][gGZ(uLz	pPvm-)b*61رUVk'˹S$RZ曋Bd5!kLAdʨaİUfK0:ƀt[\HoOerU(뫫"2MbN̝RO7hː
6IcTbkO/>'z6!1S+ҔR1/χZAҫXX"Nᭊ50FلPCX,}:W,yKJ 'S #+Y*s%鑰:O*?=xuӣݟK#{׌,57L	xYII۲7Y΢\߈˩YŪf͎G͆oMr:i]ö,"0N6&JojǥOK{ׯ\|fGAlݎ4Me 7[-H9rLg#ҫ׾^UZ	X08#5ILX8LFXdz8ͣ_#Pk*i0=͚*:=}jt]1URE[dF)PCxKmeu>h]H`B;7}t%CURӘ;
Ov^vu*I;ҮVUTZS{bh7Wܥ)!6e8(Yt&Ǧs
10wsVXV+R? x
T}U[D`WVxV`?QųDԡ eD8Z%
8Gt6&
ʱ2{y~	w~47NP.hi u\GJ,5,2jy"g8xhڌQ SLLViBSwQH$cF<s1@qm9f]o`"cmFQM"xs|bf2_(㳲}rJ_u&}.1 \%O&DQ8	Fk+doǓҮQ|ޣ)e1&/
mЪ؆fpG#IUف"^CYIӂ:NZ{t0T769/ZoO2h?*`/8oíO:$QzoůG}B88ز̾!Vpd8$mň(ǟ!`jo'Ed+bَ0ۻv-(8Sm1(r5
0㠖0;DE-aAt\qqљM&U92
F~xF:K;|A@[V-2}?o !Z1r}oOaۭeiJᾲ.Mj羞'F6Do ^FMS}	fycD9\Əy&!򵝭"?( +Mo	/r ՕmTֵὡAu#CK1$>fSoROŲ41m !YָUMv
\-QI~Ar2oBhgumA0F
]+Dj:'dP/QkCґRlԏu%nct쑾,/	U񁃧DvhX4b-łH'Y݌
ѬV'~;i@jY==ԪͬNTuqHV5_7,RuLp,ﵒ{\Uv>Ubs sgE?Vb	-O'BBgP<פAј#l $U\߱V)<Q,Jt+srn}wZz^{),i*:,+BHHlsz..@	 >6~R:|.A0fFhf쿲q8NYC	|>	=c(0^w{aq`GƭQ62pZ 4ًFzS#\rhBlA|+f01<+eUMCh\h5aXQ٧İ68bQJ+%Ǹpx4^<pl	}4Phsr-\/W$J1	PJ7([J眍qǱ_lHzz<oyz>uuoTlLYpW?)L_Zo\v5 آާ}Bp}HgxXoU R>1bF#k٤̛'3&b`TxЃ$xƃ1Pmg-Efv|?uZoZӖ|ƌZ&nE+df(+PSSQ-3CKdHK%HX??mX_'E秒و\#:i<=HC%F떛ۮnGw0C)ͿεnISΟ`pK#DHLmc3=153=Rͯ}>閡932f

1F@U*Y4ji5bVYHQ_O004bc[;+SɉDvhd2Ne3CHz||h"EoC!lSf*j)xhq~VJ&ޛJ&F[f^ldTI`)E4
W:"6K`L_ZF⳾%AfKUA965DKH5[=k2HuDee"@ρ* |bsU	<z!T\ݤZŒe<:eSbĝ֢oǴfZ8BO	-Ou޾naH}y*|MXo97::pXPF4#JSÉP'|.;4g섦eQOd1W3E53SV/,ȥ{Ae?_|^R:Յ3+B2Dp#Je0c!1?Ju
PKy9(Ypw۔G*6Vϣ1ЀVPP$c7)=%y(AXTUI;~N)-{b}dGLV
4e{{Əo5ʳHYH~6aa"="XD f>]Nۥ{}ufz9"I(sx@(
(U'=
;5=SqE?Xl82pTWwEJ6lY>Ͽ
J`4:Aa]w.#FuXkhjLFuЫx*3Y8EFlNi&<B2iqO䣗ޏB2C؈gK3~&iZ/wޱD \2Ct>p7JeG]Yۡ@JӪC8ޅކ
y(`嵷!U6J4Sgn(7z"02- 
h|䘊C=W;HN*&}1^(!pDyRy6tڢmu8rq{@V1DB!y9q]f){l5d1duݦ<YͰ022Ղz
}5EYrE**=߳\֘MſھPp_ΦDG&zJba0(+%^LUo{UWhܱ61{%*^.\3P4`lf?(Z%WlzvT?Y0H ;zW0MaP"go?^ scVq}p{lhԞ(6ueVHxɂ2u(h7ímUTAGLVپ5uGq'FYVCmQF+h5YޜǆYL;ZKס}6z^u(	tJw!fZnZm*XB?1tx'@Ohu6Y)6x{~u9K2RsSs&/ԕv/W 
+W*$e+dgL~(/:G[fEjBiq*XdL)lPkGki) <PDCc7WcQvg|u`ǽsPlqzZOF
ތ:ӟ0fLIIxqF-a~pӿ3J4l朚WZ4~{D =tdFCa̚.Qpw#͆$_`T kz@
ʹFIҴm B0!_!tk4O(2=QBd4hg
.õQWtFG؅9c%09of,y2:tnwcddjXLOH Zs>Tg;}~4#Ȩd$P=H	A۫s /xZ[oBl1%Y쩚8
Ȓm8)IFE@w]vwKMۧ-@u?lh>~L-
r,/lX;gΜ;ߙ3k7O}ёϾ=pPjmXQAEbiUlZ噘'bZBdF/O^飄AF
AQ2Aº)ă|8ߌl[+jw!&M2r<?<8z,	gY:r=.6|\:'&<s?3t٪wP"پ_YLǧ;g5h704A#t\:y<O7s9-ĺ 1/"͸ߏ;,|tZNFUXJ\*Icdf^rL6JžejcHy@T KY  FYb,p_DO;/qos-T01ժKvuC@1+U  Dsp-D#]6PQ	tJΊ^I
L:<̲]rkq=СmK+ 6fG,b!΃;c4#+wmңy`Y욁T?	%Ͳi:ڂF(P1 NTI}+r QYUCO  6fhziM\+-f.
c_6/Ҋ5X1Of! ~9Hl\wU|![&&Mם8)dU;_rT5@yxgrby9K򺜿QH,L./_oEp
X @7	ׄ3f"oڛyօ,M$]U7D.g^r>>K0U<O5i}'пJhB\&WRL@>sONWgzأY|9K jj
kUpkP6",DVSA*=ec^HJcThV:C϶SfBnYXf!r߬RV.>4uULAC8fgss[ %>+MvAq)k|a4FQvAL@[PKҙcMv^3ل14K<4dceL7|#&B{zގC[sd/0½o,;ޡ&} 0(O%G,e*^?'0w|E.F's9=^4Dךϛlv~8`uH4-r'̦U:ӾtT7Z9Q/9Ե.A0U]TSyڻ AE'bI7-f}lZwM?!~#˜5ODoh+$I#kw#jo3_i!]w~ʤ4-Rnߔ*vH1}[҄{UOG*x?CV<z]&pFMOߒsOCMhvTrc$EKC%]? |yvY;}`(t鄐^UULmQc(|ʵ^Տ wHo6jc.Bh ^\x#N֛	PA7'\H']`z?J睑FƋMm-kѪN D8_᫢P5a2J}1''6cE`hE_Y8+Iځ[&͂-,Q͂Yx;5Y\,ަY݅:}KtZ%F4|aGĽ5O4Eh~y9)ϳ)Xy//>yɦI5#!wTkEs4JOmUjGm7KcРt⢀,zs@y^3!pG\;=c *g~s'
1&]tcqQ5tWWřET1?	ECQz%⟂_嵐e=X@*k\Cbɚ5@n6Q G{O~˽1F,xqwђ^x](nq$.	Px[~NXPRY_4#0GrFjrvR~jBPBiX<5eroYP?gWgoW[. RHU@RUU;3T*0Yl? >5 x;*-ǦWgMHMNMQ(.I,IYAbQbT"$ļbTj̼D4*%d)%攦p)h)@&O#2BgFxMnx( #53Mogd~#mt6nEu,VetwO-A6g;Ţ< 2ex6 
|~	ƃ@F *x][ybK6ZvWGZZݜ݁䚜1=03ýi6"y
 RIqni@4ERBo}j>?}U{srsp?xg{n&n*뢥h-LkGՖ9sK~z#v{s_|˗'82-M&)ʺ֑53z*|uFStu>69S g*۔Yɟ2LCvΕP.Ba|S$hْs뙲Y:'-FHsrh5b-2RU{#)iOC4߆&	`MI!⬶4Z +k|q[mYeM6Xm|.!g7wM|>}|n/C_@p*-D.OʅϠ}׀Hy&-Bm8 +%'b!0R4ۑh3;OwrMc o[$/jC^|;sʲaMCWUYGh~аzDh>EGotꚺH"P׶#t G߮Lg)k`}VWJ%j鴫fj˓RӚòGY[i$6NҺ<Wo0&{=9NiEl:ɭD'se(mPW3,Ɩb6<ı46y*OV,-jM=NPGֈaiⵇѫ'o>tz2thݏWWWh
 9խ	\`-ۭnQ<nKڱ1n3ыק*]0Hq"ǯ	l0!S:)9A,9*"3*BH(n5Wz!*א(nU"53BၒbZē#Yz<xAe8d@#_J窷 K?}&W+ŲPϭ	@;Q=yig~*c:KK2?9&Iu(g	˗5v<۰<7_H"3T"Hn9X"<wͯfEPeSIKGHMUfYr!b:Mn=.!67e+F<@#m,+=g_^оg7dյ7fw?{9*3̪2cI
$zi"avl' QtkP
ڐ\@nD
28iL8Sy%pCtr0UjY>p	4zē2Kam9l3QA#L!m-0K<օ\_-Rׄ\UǴЭ Xk[6QfBX.$rJw,
j?h6qu,@WYJtt/HmhwςE1<Cr@_[MXχ?RNoʚP/xXcV\!vSZ^4hX"tqo Tl'8o7dkK5g/B.ܺ5qʆb/"$2ap ]-ܷΫ:</j33oS迅& 6$lMJL5My)_=&:%Yqt[WX,gf ȃaOs&F(qzWBY;tOF{]qg`*+(*;
,BZRtE%膏-}uVP/B8n>@h[q%9#/m[p.mőӒ>1t#>t0P`χ=n6EzKb#h`^^Sƻ4YSEcgܵ5gTV٣hg--N+_)~2c`k0FOlL1};mڃ@oh)ĭaOufbNI	d;V:6D818쮴8>]e0~sxxL<md*D}枊&{;3xZFj8PnȰYY4z3猉(>
ꊆ2ّF?b5#m,&gMG߄?;駂72 F8!97\ev
dXW7Bm*8`炿6䎈@r,'[{ʄqBAKw)ShkFqt×+8ZgƀX?`l~}@5Ke'ܓ3ϓi+jseIn=պ=ZueT줝fOX;]ٓHxܶlj5-SPZqd^1Z#4D
f/<qPYzKQŬfʆ&vynU4-ݐmgdMl8U"}R"57e9,Iew|yDk5pV99BwB`Σ]SZNZ@qjfyp3ji[b\..C!e$ɐMsliLX&ECѯ4Dׂ
3tt7}љ5RB=W(@|:zle&6V.W 嵕_P\i9z37Yp=*4x38+cz綩8UMku,D\m/24k&čFePeFqa;Oo.5XHJ+{,ŪR&D-w6V=&}P:a36" W⌯w.a%YrNz@Kc2#Gv<XYn+V69rjOLbGN[-}qSiyq%ǗiA6@=ߋaP016r[V8F,n5Ys/іx+MqjDde>+\r4P`6Agvٰ3ʲJJTppJ/,㧼iα@+g(bg峬Q_(u{Vu.gG
tH?AʁsMw?mv:lDakH3%|Whna1bA3!SVa6>^tvkks%#!rhp2o*3}ϗK|<ٿ6,Gv&dM}]=su.FeZpBlE^	9żPƗ&hEƬj
vj%XRc9G?͌hazSy鞰:ƽr堤[+|	\9Oe?IYWףC%>vֻ/Y?}gz곋Uonc3\~CTY[hYo#ٹCnrY͏;JȼtMj%zë(8c=OޘD}α2J0mr:8Їo3!2WY3!d"D%/oO{݇&!>G/;?6a՗}iSޅ)޽GrΕ#t/?sӭdXHC4;~4{%Ltl蝨8TUKp}_縖Cm՞왏ߛfbKCY͟Q/j>b
<O]cWл{qؚt[0<;ZǝlI-jҞ_+߲d'v[SG9cv}c~2|<&|hpsipϽ:8=X _h1;X|!3N<dfݰI0N:^xmHm\_Ae<'g17ŗ͚9gz#,έ9GMM8?h>8		.iui7{f=Ӈ""GK8p~CҔ!DZh;O1aSXBѬ7Qg><jbF1dgh\+WRyC2IM]Ս&d3Bfր]U8z"Dy,1CDܐ B؝
L|~c	w{$3 pzoveXL#e8P<TAҗa#/ezˉmEUD$tRtYFS6%5xkِ83TUE8wqO/ƿr  lڶ}c1À+ 6rǬ2xo¸·	"/L)_ѧMQÿj㧙c6-Ϳɫ3\6y;N(P''J}ٜp&"$Q>7[YBÞWs̜Ml#Tu,CWY9'O-CO/pEyGFȠaKs0Ȃۉo	fʜ3g?mTD@Ճᯨ%&L2{\ǶݎY)*,e,QtBQ{["T	qPaI\II#$.BKY=ΨH`"XU=4z2COga(&CsRvB}gI:FKYp?JKsMt茨l?mmAeY[g0zI!0{N69.EYQY#Pg_Lf$_.պ$N1߶;ϩ{F/|3Uj'i\CRX
GìowQ;aeaҬyZꗃq*_̶}d,i+$1[J$%#=cNoQ{ V5Td7tP7k	,
~r؎_0O%{ CMS9Wyl<L_zI8m6E`B,-ߟAY8d;ML6	1}?W=2=^}ramX;Z'U$ /Ox /Sd6t` ?N]Vs<1CR/pSPS}v݀0Ԑ{'؝ќ#`It	N~xOO<;@'*v&RV6~sST}XvZ8<0Le_w oUf:R'N)GΕ#P^DK\6ynոQm>n("}k; a%葞׎㖽`7Nݽc~=daᙝ^9?x<n`oof3*I=E;$l6)2Gc>ˡ	l؉܀ш ,#OJoK8f@hi{or)$v^tNe+]	E<%>lj>iO!毵CbW&	rxk[<yͽ-̛&`NLNN-.L,T(N-*LNUOI͙lȣ9h7׭|aPNO|8u]ُm8v|0c<αN>w}˓'?{(ε9j ǃDu*x{;g!=+&K-K+Q(,p^KjZbiNByFfrBfBZBZ~+$(Atz
Z\
@`kVPP]k@PBSYaӈPUXIK/M-)LJWDL~orpNWl'^-8k8{jgIjdړ'~ |1-x{;y<&n{&9;yA.(_}ՂxN==yQɋM{b} %n+XxJ[A&\TĒnkhTEx5*(Zd;f&ܙB\(CW"Jە@">gr7u79oN?Ȑ#\>2w9eel}s\/ES}
Q>-*1\O&F[L56{ҋTI#_:IiK%FΠ@GmI5H!:CB吴=QyZK]I̶ :..I'n;0uDVK9(1,iStHĘHF+}ng[ݍ+Wsfi'e{?0חgf:3]E}{xM$up5IEyPFNDWiءm+p?[5~Avc(Ex;JX&,HUOS(HUp,TOIUH+I+[v>P"Q$4?,.1"s^XxKP9PAL­cv*NqZi4(6&mA<`dK⚬=|I
>>xh^La03w+:SWH5NQV1$8a
K7vU]窮dʟ9IW^؄.lm܈`Χagpg)jq8zx"@0>Oд̏GW".SiH7PρeJ|9%RWR4MlzaFyHϥ
n,@֑f^KEL;4h.}ўk6yږCV;Z 蘥P"%|A;S%&ߧD4R ^"zZ/CFaos@9{=wzg{Ѵ<BD1vk3|s.uۧ2ĿAM?'^7	ncttC^^a<w+xTMlEV4	KHΩ$R"5q']YgάvN#\	qix""uTrzZPE80IQp`{̧}qߥӭp6u4QO;L壊2
OU=!B=Q#;uFĆ p(<.$^ĎUn6*(g~j9܍Krky~<E3ۏ"uHFH^EEFbl#f|Q52TZ;u>HX[V~^J	Ϭϔ&nx%6hq)#[ ۬$@Lvpdj28_?R$5%N$fNfdr,ʦbOыh8,`+UѠXHT]6D8,BX02[[AbY('
[׈Gyx<!9
p[spK4sPKSg1,qę0GL~O+1ƥvΈs1$6a	@o>>oG:F.86bRD7?=1(G]mNft,JDD:;diᑣ#nԿ3wξ iv;1O֛ӑĴi]g(9Q}Q}bd6p˫W0dnE;'%fKb[:{X|59 8p`DB|սsICpv8uelҵ>R_Hpuj{<Y#m&Aen틠ڣ{{%
#)_*Tb2Eai`jXskmw!x|?Ξcbq́3ύҵ}>wh|9kW,8ԏ/O19wx|ӆқ0nnġ^S2SSJ*SSS6k:	߬7K$'u 1 WZxSKOQ GB&zIhҍRV@,&ENoӹmCqaX5&FŘ,HJuµ#ޙpI}|g(yTzh(O0DXb-H@iF	*SCnulP3SZKCDјhZ%Q~0B[|_VRWZٙOJ8$Q4dCeYf)OBc4fZ?IJBNа-2ӌ!7;|Gp9_g)Z ѶK 	+mG]!pTA/TR@f!u?s]0IpGjh 8FDfqvr{}g}N<./030x@m.L#ĀNʰa JqvMD8ɃDQ+fYݗCL$A8\pef'1QE/OONiYggY2b4n-1!M᪁%tQfl^&&ӏÛs۷fn>GK|OavB(uw#زKc	7(!<p.zyx|d* \,<.0,iK:"b[1_$ʉ|޺685VNV-]-UbIvz1^176=gw-S߰]b+'Ĳmk oxyC]Ovo{:{ދ7~:qC䏼9',ѾYOvv¥,?3EK8%$,l$jĜlMTݚ\
E١y%%P94)h)8$e)<i׊Sv?ٱ<̼'f CϦnycDݓ͝t竻n~ڱ%Ϧo{醶˗=wA@yy{;;89:{(*}bС/v7ɎKZ{]۞54{i{(xںO7샨,wq"uA*
SH 4 u<r zpx ~mdF@x͊Gǉŧ`i!es܋-xdQfJRcgYI&C90r70rr%KgF)k$yaARwWU55SmMH0/R	ʸ$j
D@(Ɍ͙&( #ÀWdFWAzB<{@zd=STxv1Cm=Na790f۵_Ѕs,QUYӑ휟;҉oG}#5'=^ދӏ_];?3gl\[U$ 9{櫩dH06wÿ9>ynya˞a00R_?Ưo*}y _p5@jgGJnP.'*׉}R5F?>Q<{A3BGcRZřn B1g*|tU W㱄2Ҿ 4.rӄ^̊=i\뗆Ñ:.  D!*qRA]^@l	Ey~sz/TudWspEVTn͜uMϘ	G'9]y4O.R5A4cݙ2l+د̈:/Ҷ$iߟ
3ڼimVomv[ɭ+Vw2nyU4ޞ(>!<s@Jw0^	IK"O<t%"{uRHuͽtMg˼SIs7\/7qcuT>Xt} |箧leʴKu2dRՇMg3hna@]Ghh;/'v}kw+D*Q[cw~6S~Me:6ŔyS+{5nd5:v60=2+!ZdF"Wvz!+y53{[ss*kw㓏@Wa-YOa	0PYws?5=Yi,xoH%*Xma/ғhJĊ="*7kk#kfBy'7J	w\xcMJ]+c}^_xWAg%{5x]';(?.Tڒ]]7tWp4s7nqrRuMO@ddKC((h"
` PB3"JCW*؊@%a)+VLt&#`yk6f{H 3`SᔟkQL+z	JV+9kÖ_7ɋZlqPY]7r
p1{9`bhёJ{Zg\O1qejbdl$ON gԖ G@
,!㇊zwZHS%SřY?m~Pz(),ZvHy:|5ݴ%XbTSR³{G&;6\aʀ76sZgp߭׽=o/ln8~pZr,v6?inS	)}^o~~ţ0P4͢B"'qr"^>|Em{GKU:A_
JRnc,=pu'pyRvԸt5I[~;:ظHS)6ХEI=vHag`t,0#f;=/Zͬss|WC톛 h5ձkK1$ y/SLL%N|K#lx[&r$m<Jڞ5ur=B\Bt&S"yR4sNjdEV0Wkr8Hq=m8 "~`ټ0xO:ʬ>e9HN\7q	\-7;NaM<a##dũ"M OvS<d0Sh Y;5H^
R8MM 3%35%(5$3?zr4w D\+ux{RIkmV-81$4x|d~{< B~N>.B.01hnA+$ORw''fR>@rdw f'4${D gSH 9g*HT5ĔԼ̢<k2?LB9xZklqNEMqX>/\JDJY%EK=rw;ٙ,WOG8āKOs$$l N%发 	#?.$ y.O::U_WUWWUW_|ȓxaPikEJI*b)Ԕsck9L,N$Ӵ3m3K٣k췎-R- ,kT$E3-({zlqiʒrYx^Ut&l|6	%
lSؿa쥊c5*DTe[J0A,*K{DSFMq6,\U+zRY>zhdEtHO&00')GKIUݗRM >"eO6 LW-F,.vR,=I8PU"M{R?TƊcJiݐ|Lɒm*TYΰ_jMKtKJR_kbkU'WO䣰\;y RɊf仜֡8$i<F]Ku0WqYkuE/ÿ6d^+v4j|nZ֑:SyH4Յֶ<Nt#KT1O:6~pTK %\R^]EGP)3->D
JdeENG]#_J#*7ӹM)AQ~} $H.!: h'Ю+#I&f΍ǂD9bw!%vM
	@mE3	;9T^ų\Ι,wP!Hvt_6vgP_[(KłF5aJ?CVLUm[4h+*1!I̾!P5JK_9E$`_f)Z#;'<Io#lGCT;zA{ĦAUJL$u!xK&<&	77"WjbAA@HU	n5Mh7¬q;TFw1`˓hyB9dKdI^"cPERy*7SP1VpЕ$֐X\BL/W`RY!?((*%̓'>=20Biʃgj,u92ݻ41ڞ]
 [F{rkܤXKh.
bfoŏOz껉GnD!Ama<.{cݱK(hqb"+x<	q-ҝ!vs~dW`3AINE IS7l|<Q449Hx6sTKxFG'$onʽxbe]qwu\lq3§_VN .Cq@"a6#X*-*8<\rsٻaeǞI/2ns}@E!:hNed]MQP.Mȕp4w(;(*;iLu&`71֟)Y;f\N. 9S5=nPNI}D8U,h-SEa0		`ŜS1uAk#݁P[Vx>I
#ՎB쿧Bli6^vSLT+E4u.fhPJ{!3G,jFJ"/^}|niMl&TLP8@(9(t+|_&jgWP,ϹRb	Թ\\d3'ek3m,=3q@.iD6C(!FΝ].ؓddL֙ޅxNxub*l+T.\9bxkjN/TywQm}rF'TKߺ'<Zr/wccx uW{JD&9˭)2e:N-Jb5`C	8ktnz+s,9~Lxܽ;~xk9e/Lˀ͒H !sK\tE/⎗MSO)hX᳧p%|k8.O>dN+5dʊ )O+ilR^8F\ZM騴~YPLe#^q(#Wi06]$	TZK	׹"oɞA%%
7vdKN·M)վ	fww+-߾ iBt3ł˛@xyA}V|YF	?ým-ZDםfr)z]`kT{%(DGrX
f4_o^krkXX\O8EOxZ<\By=, 86K> Q9?_\]Y_dG@8Lxkۭ2 aiX[V)pQf* Zc@`(v>q,ůF%K0ؖ7m_J"Jz:Ep94얆A.r=K#\u*t±N0PO3~mlxw3*ͣ"IPAL~zR${AN t@O)nl>!Lߤ Jr@A	w|4ʩMv>#x]U,{drxhڳ{NYqˮׇb)d8`'?(=e+!XB"-앝UO$΁H<"CO	MVwM*+mp;	[.sTE+MaS愗7;iqq6)Pu2!Y&KϻƌoZv
"o$􊁭(9%doMkhQl-arkxݖJ'Z}舐U*z8?5 0 @Lw?藤´2+-@ T,63,A48QyK2aK!skd4:H\]H\zLme}wCEcnB& |	c*ŝsJ|4Qrduȵʍջ^F	C6׃3B].جZ(fps}
4fCؖ>S}PT[ئ2[c!mS,$	DW-hAԑLPs?\VlX,.T:t5Q~G =;>*ETxi_tP2(h3^gk,6g'eAvfxWDXyQұkf+J#orq~NⰏ:ɷypU@?t*coC|s&s $Ϊ6z]a"]$rǢr(!A·޳}6ʛ۶416WZr@&ݲC# |Fh7{FÌ.S4PىgmCk|,Ć&nUռX5)Ɔy'"(_n	|M^J)އY*Ѷ/TO5nTD\6>nä) (]׆zkabU]H3C^^iDD)ڐbxw'#ҹ4FG,k((296{5֎^s3~/.jC1^`h;uޭ=XfӆOҨӀK#)S,BPW0=WEvglVNMƺ~K!%]S%til0vSiFw]	(f|h[:̎mfC!Pb(GZmQ9>`~7.a̋啅W-uQRUcK#>lTݤ[խoͲ,(`FΔ&3x~ !Tqv28%I1$P	$v3q[-oi{Xv肷nLu@+A>{wbGETlߟ8ۧ*r$F޴"zNQ&J{xӶl8$Zp'j >E眧	);dF@6yOt
R1UwcJuLzνC$Ce?JF~~EY_vLO{~Hcj&6?f9T3*U^.#&ob{pnkYO3JxOAcB(*L1f1^EAb1Aɶ;2uыW	b<G&Ƅ.t[ZqK=fg6M߾c-*Hb	2UT& B8"SLU$EC8.GlB1\KxQy,Tn߶!  osB)Lv
VD$Ǭ5w~pmE+~F|8)yHjTBAL&S9$</xPO
v{̅6}tO[fdBL"TTvڱįDw0S?4
/"_(9w3		';(n\;y$̐*g#Gvy(~2zQ<+`rv8eVaY)Ss^ǧI8FpqPX@|[^|iYVb52} KbSSUD?rIz(xA}	6:z=G0/ap 3L8Fh:aǪժ욮IŐ:@0pa4";m97^EG5Yw?d126;9=YCN=^IɺVz\3PA"izZ+i_#m~"tZ=AftZpn[̴aY08TKc=!Z>5BA^`>'LDUW2x[y"\e6[s9 J!x[y"+9Ĺ@X83/9U|# ܛ9-x[y"cB8'`!7y7s' <#xNA4&1FC-l(Yn%{T>[ZPӑ`#8{b&[73of%rzXo+&WI<RW9`B]2R8=3eIFFo<4ERUEvq^P0.L1_wR;Mك")W j<z#we3J1}X0φH(RK4ơ2r@gy+2ѳ󂮷رS4VRdgEz0)Af!ـMRH"$af
|" tWMKz/Mc&ulx4I=-(zzEA>7p
EX ٤΁dzh$x{-L;`r-H,JU(JKO͜(ħǥP`h6]I'8$&OcFA83JKcf9}?Fͦo(:?#tv&6w,OZŔX1}=ˀbLXikŧ21fj#yHfOaa<}ЉXstA^&CҢԼmb 7Lc5;~uPL5}|L_QPx;-L_ئgR.Τ/ 2x;-9s2rSJ̨;f錪{uqKe@؈.8((D2Ӂ2fNb4Gd(K-*LN̙~o9ہvm  LI/x;-nLwc dVx{K-L31
mffN2%3`yK1 wEx+ 

qy<z#H&y91"휿&R;xK-ħ1ʷgR ~axKy-'3HMa^o7$$!3\ͼͼۛy BxkKʋrSRsRJH83/9U`rt.FsbԢT)
y%À2y
EE
٩@fBiqOF1 ǀRnpہ*JKsK2sr*wq1=C<lujC=%NVRm^m߾ڞqj{&R QWWwqxK-oTgoVeέt |
k*x]MHay#&bԘ&P5$Ԥ*!ԃS[dS`BڱI("(ګ9뭷6f睙|A`zmɅF<#@ߠI@$	|
mPI3wOVI:a?(:th`7./!${pP38vS$˸A%)eV^R;)t!^Xr,<"~r&^DSPžUaиHxN⏘ůk|Tr6%dΣ_l8eaopjJܙC\zTD~ _v6"^l
!dB<F5֥p#mO[𦪿ͧъ,\&*)x_jCyT@/DQ9
lx{kSslعmz2FuL@v{{lp>vI7f|Dx__$>}c\Z\7d:iL=1evQlzJa֋ژ03Omz	FAvL@ӸSA$xkS-LR'3HMI|,c\Z\,en6i糙33O$:`97ژPD,bbYxQ$"R&FvH7 )xKsK2K2
s23SJ2RӋKRrJ&N,`&;`5K=H@!5--5D!9#1//199(%3/]$l@yf^J~:bĒTk.RP,Q,V;8#5IH./$;RI0u/Ii8:xx:GƻǇ{C%CC& {hPbNybe1*i9;FCMF_KK!`XMdV<`*8ez;M
.IuL<1Ez(9Msib u[xoFW(b5V6+9Uܝ&3*s_?i>7.د7oF!^.=	tЕp
sGbIc32A'Ҡ_.6,D+A(S `_ !|bbyQa||`aqCJkX
.Vw_\m`8 AG>y.	_!aBu1LTPoq6k̉t@p:E"gaqPۘ sF99Nn1	Q40h@h/qȃ
 L*It'$B3RΩK!^`{"j :ҍKWT`ʬKjNU&ϱ,1.q	R	:%|)uAC9
W`.hw"6dCF9:|t*Qd
Ju k{e:9H7>,8H,QSwTlsΡ:sd7k	X1Zŏuz娥ځCvCPOt'Gک%[W.1y< k|trCq Mkӯ{>} 
H9[\.ܲlG QF_[y/ELk"9|Hg~vhi|`qeNDՓF#kwl5)$8NJ V':3+8ۀ8(C6),lk@Ha;%"mf>	l_aywrhlGk8ү!OMT my>16-sٸ2/vԻ.VST\^VS(*4FV"9lV,ԊY_T=t-G5YCUn(O#=4HŢ!]QVOc㬀ҁ0PB)bC*7u*GUhtԴ]Aئ,@[Ks	bUÕ	BzPNkqA߭4w!3@T=D¾qDs?)$WY+a24\5TSF%sQW#Zv%2iO=Q^x+VYAcjЀpD:E$t@0.\e)@L)}@ʪI 8(T U`pۿA|W@S@l/RD@[7N\5)>
`[!殐,4PՠSӇ5uҭ&y9qblJA4(&a{+ -ǨB%:<HMՏ*Bm`%aM;Ћ3c̤EܵzlsKX{**aKn="|ɡ,#k:bz8փهƬ~Ͱ}'}	Uδ,3b1WO/@[吽<!)G(aZU1#|X#o}/̋0O`<4TL:k̶C.oZaes)z6N9SȆU>N^y߹L>8[vdu2t<ɩУMf}%b7) V<
|/X-}#qO^R]
~%OV9O[w|ޣq~X,BfYUGs=&H:e(5G#!)#G~y,ac$GG=t(I5L1,=3E܄^SېY׈4ۉTDSJKK<qZ RޏTՒҎ6-uYFH^SҠrlWRYK7/+~WBR;Ҭ%.IFx2q|̤̜̒]KJ
iEz\
Z
E
`0tHFͅ<߉A`nIBRHf9<<TKEI%y)؜&͈YHKA@lL MCw xk2q3daӌ339"x6e0yװf̜dWNUd98?L~ 6y}J~QfIJF«*7_?-YUhBVp_HHlkG#Yd{1R5Ȫd#TTLVqٜ/U_9N"韬d\eTfOH~q-u&$7ZA22AM=qfTUܛc61},{4ssU`2]%6^#
L`<6q~{ ܵ+xO5yW gx]mo8_A_R#noPqFg;!Kͫ,()R(z67@D"93Ps8!vWkȋ/ɛ\;fRh<#׾pEǢJZ+Äo3ryѼ Ixɳ_p&0ȌٔO&]9t+gB	Gj|p谂fjCb[W?7ps[6ίNo;:6<+P4mc)]T3933s6f` P35"ruGg8MvL޷VoHHUwפ@v{Wgb ~Zq d&QPaJ5ٌ`39%sr,"+ʗCzl|2v@aY;n"7\N:9Ք3:#1z2]j>b'QٌyPQb"ER1GXx3!h7ԋ3.
	Lu%G9L,(j)7U/?2\3GB-yk4Vd|lCNu2fW.E|LO6{wx%Pހ.i%zߓBL̕x~!ȓ)u,6]%)$(A0&0D WW(foFm¹"'7rqv0LbQGN-t7:
S7HϳΝa3n,) n]{5θ^ur%u55u^\j0@j1tʿڝU
x1x!Vn \-;3	M'fQroS?>ƝPx/-Z!bq޶#vFVZY"^rQon{Wpm#'P[ήqۋQ9H> 	LaQ#ݐ.àL0
\Ƕrv/;	7(}qBxRKӠu}oOn:7ᇔtKn
H`1# r.QP厢a0H^bX`mQX;rV E_qBGz_j
j	`j3oH$?2#e QWwTYoм~k~E1V#'a1\%nD˙W60?Y%
)"xW79HFCjRvGNMz(Y6JT2!M!%M[XDTA'e%XM_@jJ{Jhƽ`h>]l̡z벨Ϳh43CO( H;ٓS? >9ߊ! "L*n8Ӿ_j4z`U=+ΤsX#ULm 0o3PďÈayen(E(GQ/eT_Ra'jfA[NuQCK;g8+E
AnLOb Q=#crji 9Da*pT_E9rJ=`fzICu'ebB2:ʵK(nheĮS
܏I-bl><*Y^eYk}]I6\p
A0Ck`tOmKC*/am

nz`à\C}ynS	46+Gkф.n2*6G#G-9"bX-<&)jÐR@B)5vX׽HbeȊMqPx?D\C~aWFC6BP	Jzh.UqD>@iH.GݧC,+bqu-V!G՘7j:4 hiATm<3lOj(mWR	l;)*9tvdxa%S/bT3F]ԒR5vT<QpKV^U>$>7ҝ U^PƛwOu*-5!>%y TS~$6WbHɜx>J؁YBJ5`*=NU	+`<vG0WHk4-W"ɪZaD{E7Ak&DxO
1(!--+W?z+s&@^e&T*((i_R=Dm_Mgɳm*hrbᓻMI\5	`y+&ftrf_7},<͉=jgֲUq+o-]w-%ho<śE,И|_@z";LcaS~j6rW{7wDi];.8EgS&n;}g{JK ߸Z%69AdG4EZj@h\D?[8>rH+I=Lq&超MNa	I.YI1k7vIMV̏&(r(Ԥ)qآb!B;["}DD12ިT(	`x$,d{!"~K׵)븨H6ۜ/!")wׁ7;q;8INKv~Cf썙+0
N>0(n-Β}	ЖMdK[p$8.⒲R|?"T.U\v`I㑣/L;?KN`Җ~C
?SJ>,~$Z4&R>YXuXrP.a3+orHj̣mP^9*!i,W{-w0ݾx
)>;k{b2atW2O^qO'bG=+S(OфwJ=s=*Gn93La:3\r';_{BPeb_*}#{v[<%`sQrFtA
+A#0D:$={Nrq3^CȬVx*´=+\>mPJǣ+ܩ}9Bf)T!jHBwbܨG62~ȉC	g#McϣOi93*mjp/Kb߳Ph99mqg_1񧵉9j@{QkiR-;_	\؋#	حukՏ6Q	Y'=Xp)EU,L6Ԧdp$o}FϳRtxZKl%%;BRH$Je9v[7CZIׯP\{C!\hHAzF=89("=(CS/-P
.%[%sǟov1g$,#QEDZY+`E
YRWdDp>yyaI%4&fU#ʲXK*;3=cTKN*2ښ񸘅(LyNXexH~VUU`KT0?jȜ+"%	b]+6}n'L~ZMxQ 14EN"M,5쬛ʱń>P ,u'%J0ޚmL;ZV&c\ŬZd.865QWDi1</ODU)]h>h'{p	Eq85jTBqSKhhwv­H%Z9LTQW*FQ*$	W.EFasKL.0uÄy"̫v>!7]SuggD]hE9MNHwe{8e iX
D:9 ?9V[Df"ix'Htq%3E2zdHA($dp#uvtꐁddӔXOZ	GXpazH+ wpnOA<>I}Y@DܫgkcVZ:MHGRnAVc] #Y̭IbpadBHi˚\w1A%_,
kĲ!xk1+&5L5̛A:}2:<dBEQo-ʵ"7l<z܌C%&1Ap5>?r+7AJX񌏿%|w=7*hi!ðH塹q[? y`Htːi[b[kL=ڴ<>/>}7F z7ndO{OYz	x{x1c3pl?	
зc{F!D%62&R^6~^@Z;ϳ!<>LolB#-CNRϩ!M|&CYW/y;䝸gS$7ǾwocMv%BU`42cxcikPhinzN|qֆWЏ"(e!B=3_Wb޷*C6_Kule{6&7l}q;h]t5j1޶ebuoM`Pfߡ1{=I[x qMym	%ZX3	~esK90 SNϢbQE7J~6sS~x-Q]Κb$Yp=ȅ{t_~-IN;ΣRƎ2Gʧ*.kb6.~,qnzh^,h4^Vz[n}2sed:ek{j6O[}YUy'4O}~VQ䟔[M!wFEkrsK;)+h-ިz-ްK*rmQ{`*-U̖Ib˺Ud-`|:W}Kׯ5<[TmfIʢH޳RyN6ޅoUx='V6d'xT`̯uFԠHՌ[E=s }VY!+Pd${8O;Pz=d5bBX~"I"2Rb~>pbc˯Ν9?wz̰]&aph@q^h>pNsu
1uNsݾ7ψ9ݧ\ڝKμ7l:KU,iAv־^Hm@D.qRZDIٜeR b뾿8Oxf-E/l
_gі{ڵdw GUCY{לXW{N/'eڽAF=tST*x;~q)lLFe8&_,%9^sr~Yt֓JM|@Ђ59?77zFU.-tPX`d0#Ua7¨U.]{6Fmd̛Pud'+$VNVTl07)jr^R2J`+Rr'w$WN~V:e #Uyx dOV}VUZ
($x;~qMi,'f;Y=\̓ń&dVOS(H-,.QPo~ɱ|9l>$Ɏ&τiK'%Nި)2_ n
3P俊'
M\&(ɑZW ;y-tdn
}"n˭+3Q YNd4//E@m^ɈPSke6?cd1VuD&7L6:T2YQX*[2Xe[FAHvaG]q!5Bk<!FĮg'/4x&̖ Ox[wq)"E
%$7ǋT90n	H :!xZ]l_kb08vꄀ7vm]23k%
愼T}Q_)}*"UJcPS*z=klTν|;~ܙe~P}_7R^11PLQh*FDy
(Jc@H(2X56˩VykêJ	Jk0#7P7bzDq\>Y-%Xb))~hDY`WSg>jB4:=eGO{|E^(ɫ|X-<mm;Osl5G7Iz\T=ĚdR#/J%TÄ,mYӱ?}|2Jlhi)6:*w7L`uQ$,#Yё(Hxx{5>hWz2V@X|P(R"%8j_0%J@B; \KBQ'u0¯'|pU<t5%lIP0YpuO#@jB(6y'ADoCQj(*$,RJ2&RJ'SItA&Jw堲CQ^Cp p"53FEZDO~L%JRt|:5e'`yy$Fx
dai5a.[SWD,.ZS>Xza
:k£l9u6S<v!K"=;m
*&Ew kGO8gpRguI0ޟiOo:8±suɬ:ɠ7$ãb-%1Xa/~t&i7!£pk4XD(=̷k]Sښ@m._Qo9i8IFi2.IA,*W[cQH$TqaJ~`)"g/wS	C>oX=8t<wdij޿.b _{:e'J3vJX>uSHFa3{ڿjDC>0ڨCo8zq.l%s@+F 3O|.2b]Km/PIYX@>x8
߷>
3쒬}-1Y]+(~OYY>iկ=iC+X΢i'oߠ{Y3P(X4T4s;-2VǑfs\?qtf%Ni÷Ձ;G$ٔl`;$*pv8[-}FNL,'>trS]EWafr[2g$~a_"I2\]p
BΝ%Z{v]{
+" h5,^$F,7"6IX^᢭[p,<r|1cS-ECdP"0gl`=7*R1zOkTGcLW
ûumFbl^]v@G
S?>C_Q!Q2ll<zm%yQ%0|cs)ıpZWe6\gc%8IGgk樨~5Ć~ttwhI$GZbL||).I1WEGe{`x*>2zt;5nNw(g*^<83-Jn}<"QIڍeof)j-!q\/ǱH>)슛u)Z4Qp0e3$xpNeGGlu')%ِ[XTmn]E.U#/lN~7(łxMP3S#w+'d䳋;(&6*"66!?46u)@N%/w1UF~U.Fҟ6AV@ϩo&k]*'<
?E3Ͽ7%km
qVqmH5:RX-|pmi1KMaNw~8HNkI yEе.CI.CERf~t(3sݐzWXom^=2u&'5
_̓Jglװaon^HNl]J4>_d/Nu'[K}
Lo%fHQP\\ޫxNw1^>JϧPG$6h'$Jx${~ -$\\%~iJXyk@2)7j~~sgbկ U|ج|ϝ׬wGU\hxJFM4;MXˤAIǳPL7?Qf&hei5w닧4gl>EP&ll9<)yo͂7qz"Zzs|qҢx6]4\"Euqu_R}cG%ᬟ_3-x[whi,'f;Y=\̓ń&dVOS(H-,.QPo~ɱ|8lx'>9&LHORi^JN_bn
JP"i\/=R$#ux#6ԲԼi'Hmd-J-.͙l/m,	,S2yA@8&qj0ᔜ[R_LFQ2y+& _nd]̼bD2JE&gJC-w/#Phme6cd|"NOljۘ*3V͖vQ:7y-c8;0Ůx
4ٓ1K<M>c[)=s|qOn	0gڛoS4x;w6nWAjQnfqqf~d5<9JRrRs'IMً<  yx;sqigYC@@K!(H!$#U!9?77?O!,5D85/E!(45/R$?_!#3=C83/9U ,0ِ]br=gHko>zBUEBDNa{yX,چSR H,:bFUr{6ǆdm`g\:n >cZ9x;sqq,Y2m>^l^@ROGq*@fk~"sWCT;̝;EhlLF: ss0DRaXAsHdz03`&^b35&d]|+7QD~&& Z roL`R GF}D*9 u_xqqq;8-&;r)L^	Q6.-}$'_Q<Ma>#@hr0n*;e;Վ@4"@brBFR:Yڛ<`2ߚԁ6g[<277ج8ov 8)h1{O2'f3~p1yf0_(w3r@ߡQ_!I1PbXq 'IslvWiKKl	$ Yxx][sH~rơ=JMmlm`Sd2RczJ-;T!$$lblDU.ݧOw9Ht`9''k緿ElSF(:mKnbKxE&gӐ9%MFÈy{39׿\$(`1͢'#3=((GIjdSnBr24K'$&?s΃ߟBS?9sdƽ7sh/f!Tx f JYTu{ļ	)|}T>dy7m3~o,!<fZEy:ΘCgQbeBvF`pDy# 6bPXPakRكcJ3*|RP͘UnbԈ4tY6q˸ūzaAgGGg-ђMM=wJ~/`ɯo.<ui9cD*9A:Tr44<ٷ/2Q3},3 EĩL4t8/xfe.}N+6pl@Mzѻ;7·/Wxqڐ
y۔;6O2~qlΏaXG~r=&f䬕NkC%n@NS<0<LK&n\w&eoirANAՂ$=bk  b!YT{w};,P@  Jl$)ܷV~8BXuy/s4J%mYI+~YJ!5^Qhλ5&'nnEG觰M.e:(=
i1X7+ΞH=Pj/&2R!;|.KG!*FFT|g:mTĕR$䣳1R8sf!r2+}H`I@Zm~tq=7ŖQFAΨseu.\ԍb n`|4}p#{Ӏbj 3É1r}=MzBe[ B8Ƹ380eH$haz;F ({ 3R;{s,?0%4>,. c'GX57CB<XQ:}W~3t^3
5D)iN"E8%Ut&]XT9JCa`XC Xƍx)&#Oh?',GGC){lYv(E9=adΒ+XKߴ	a(RNVتY1,/;Ai |fշ9?yA7c/53$]+d3h4[&4&XQ@e>SXΟYD32@ۖΈЇumfBiAeC0GO=cxup_.Ej6h(Ci]5Ҡђ4jH4{cKy|~ve7Jc<0թfA; FT/G <#l/e r,p`9_b$Jo=]z0ov]*6YxQoIXlf<fmCgB@ -\H|*BZR+fךvсoYD*.VUJI-d	/cgNsYj),G7ʹ셋k?N?@p/O*-V0~9"k֤P~s?0!/hSĬCD'%R]6HoڏX(A~0XJ.Z9Mj@Q^!47_B:QPMdH6&Fڄx[*vR¬,Ś37ē4$l'GƬ3DH¨%u?[E	Pa!?[s3Ur~c[׶
QOl*ma،[0BK!X9,{!@cЏ'J4/k3͗8|؊l;vEvfJ5Z<'?QImv,E^$Y]x"Sy֬H!SYr9z1d-Y"-tBGJzRmI>_
U\} jg9&sQ1oYq%HJg&r.8&ha6R;aP܍L xY:&eƍkf<|ST0j!oh91if#De= RE9RdnF A5xCObSGxrK@Yv Fk8]q-j}V8,KͷZ4<&kAcA
A3WMSg+pCWzqUM܉]|Ao$MİH؅n.8[2扻"dDEs?vl,Qի!oCSz:4VQ.oSBw4jKG)3)ͺFwfs|5q,F/^=+xkJtmU+D|ceB\ltew+kJzr߲ҟifb5%A*66AO$a5'sI鳅Sx[~NjLL\QVYH5֪V{b
j*ʽc
<hSL=%;G>`0$e5?q_QɁc* WZ	Ԕ"o	!yֲka!g%8{,J@-*2Ґ*7-8B1%Spl#s._tX ͜AC_ԃčT]Wos&@H;=yJ~γ4{2/wrC~S8(ڒjGW<V#>^詡ףKb6+U~ۻ6|<yw\ǢEjˏnTgVBm=6$G-5Bޒz!*gJ&υ)Gu %4/䰤^8*)16۞s\2I#_BWla<S#G  pAA%R"MՁu1ѧr0Qri"T5"H7KHɦj>4!uwfj6e'4w^VD8sWݑm()RQyÇCw
$mQ4( RW.cg*9Ztã@陲 PBs GTRU&%J6$m_`(NոV};Rge/ǝ1cqzz'OĔC:d	]]?`$~t}Or8$.֦ު*{"uTeE{/V
ȼWlf
8?Gߏ^3rJGuwNrFw:s|rvx0 Π̠Load
m;]v3\.`p(&xx[#tLp5dm7bd٬ q'x;&xSDY9(3=DAYSt$&̒˘,%.Ңb[h OAA)/$,5>4%3?>9?,$H/CI<ؘT
R3`Jbj&׳B]3Ujeau
\A';iRl-! ojSGx;&xM`%f98&q H@x;ys	,l&[2L`Ü {R)x;ysCH4Fv.XZ. D_hx&(fVefXZ. 62xJ@ Zzԃ)^CAHlFB|^rՓwH0%ML3-	|slJ˯rc5jeZ|<Ʉ	F<AZf7a=Q` ,mLB:ݳ!Ah!mZ3]	BJI7_G3,F
VÌ\
o_"+_*,>AMc:#mi(Uj=naG\nI<:oi\9xkhQVp/,L(QpT0202(24$u2&0KKA8(9XV!SPPK,,KO,M̏+OJ,NP 5/=3/u2?
sVE(+ʚbBT/`Uȕ|Jbj qRMxk˷!yl,~,\\ Qynxkhؐ<y6̦Y1 Ksx=)!3 DCI_?-4/%$3?O?4$37?%1'3DBfee*irqgdg&k(gUM^dZףĥP_ZZ`)((AψO,/,HPZZUEvje|r~
vlA~f^IjQ|qIeNgjVTj/-$9;]b'&'a1B?/do	UU @XUxmJ1BW8$D$WXY!!f4Y)b>Os6&'r
?ϼn}n9w6M/YқpTXW	 b mB3E?ȋ>jKMMts1LI]jw$jId߿rhWŬ!
ˏsc|'l|S=W,(}ֿ2K"uACGL2E^_rVxklQVp/,L(QpT0202(R |1	kx7k̢le90Kl~<MB"ZåU [6+-x#_PYQᬩ`d`dQ;$?>9 s2&zg0߱(9#$5(;DKA8(9XV!SPPӇMDRY27>;Tr~nn~L"I&%3=iřy ۰-J,H-!	t,!%MjҒҒT3߳Xrd&A8z&ɥE%z`r+j(/ʞ\Ϊ=~mSy=fh0=*5`	6x5 5>x˷cC&2W~F~q|^Jv|FjbJjQRAiQzjbRNj|njn~QeLfJ\

Eɩ


JzJ2&e0< 	?H0UM`ULЧj✟瓙TbQ L/m%ɉI9%@Wbj &hwjx˷KDY9(3=DA#YSpH7o^bIfYj|yf^J~eL("J\

Eɩ

@~f^IjQZbr~qJv|~zQbAF&7JG1F?4--(>#1/%'U/CIIJ ḰF,DjQQ~Q|r~J,
hrE
M@Nf>;@=(mVQRΪKTXZ. ~CxwwͯYbj ?`xŧ_PYQώwS0KZZQeL Bq~iQrjB4Y_X/@疖V (IMERX"Z"PY6y9"Y .V9CX4(ԔRC@2E:`	XgBhy	,+cP Pz*U 
xky÷yf̾)izJ:\
@\TYPZ^WE>71hQb^LeləEY'sv2-yQ0, `YZ2wx[ǱcC%jީEy9zE0g&+*D+%d&%UUŗdJSrRpN<D^RtfkZ. Q7)mxqcfN.0VٞQa_f; o#x;̱c1fҢĤk'x[ɱcɇoxk+ (m|1xc|&fwk}KSl<%==}*,J/H,*wOI/JM,JP!5,9%o0+*d+i*T5嗖%]bf=pEs6AEbj (QKc
Nx5kCYfnA~Q~Z~i^JbIf~~zQbAFf27J32'2Uh KӊsS󋲋KS3sJSR'3Kb+I++2R2a:'˳Jo~ >$x1s&A}̼ԢT2XD?0)cngc .6xs/&Ăd}(oc9eq("6ٓYH4f#F 9!@xɹs/&̢ĢJ<wJ$'7Mgªms;# &?x9s&==}0,-å JH:(j630 lxuCDY9(3=DAYSdH*W~F~q|^Jv|FjbJjQRJNAAjQnfqqf~^|rbAL.%E%%@q%.Ңb[h%=}x$@zJ0Kg)i*T痖%PBW5Ś=Y%SK2K*@n/.(J-K+ɜ">y/s;N! %;g%FxSDY9(3=DAYSdH4W~F~q|^Jv|FjbJjQRfAr|rbALޙ%J\

Eɩ

@>XeA"P8G/CIE(57$5>?)+5C8;5'$?]"((>9?%"Ë,YQ<%MjҒҒTgsYŜssK2K2_:9Et^!G{	Y`zI݇Pi1<ЛPXZ. >FxõCDY9(3=DAYSdHW~F~q|^Jv|FjbJjQRrFfNJ|AQ~rjqL&I9%ޙ%J\

E@)[h%=Ē̲x]zJ0K*i*T痖%@ŚU$Xj*+Ms/J":y/R"Dbj B]J
xõSDY9(3=DA#YSdH.W~F~q|^Jv|FjbJjQR^bIfYj|r~N~Q|qAbrj|nb^bzjLfXĕKSlq4 06_0+bgq**_:9Et^.w@ ܮPXZ. r:x)_PYQ`d`dQI+?#8>/%;>#51%XC)/$,5>% '28?'?dK&3K41%.Ңb[hZ2&`VG7"?X8GeAj{QbAFfob^bzj{Y쁮 tB,W- h#jxCDY9(3=DA#YSdHW~F~q|^Jv|FjbJjQR^bIfYj|jZZjrLfNBq~iQrjB4O)I-PA(,H-YjfE	g1-)MMLMLOs/J":y/3D!.P\b7TM,W- \X9'x5SDY9(3=DAYShHf~F~q|^Jv|FjbJjQR^bIfYj|njJfb|bYrj^rf^ZL9%`Ԣl%.Ңb[h%==}Q0#2&`VA7ZISz9azYy s3sKˀ.Zdh4 {Yd&'hJݬ&r2KR&'Ne4N=,~Q Ky|x%_PYQ`d`dQI+?#8>/%;>#51%XC)/$,5>4--hK&3SKA8(9XV!SPP+I-JKLN/<y*>9?77?O/CIx(<Z3RӋ22SANŬfE	gfs0XD'eQUP"XZ. ̗y sxõKDY9(3=DAYSdH/SpniNIfnjJf>L*J,De*irqgdg&k(A%&%M~ɤ_\%.Ңb[h OAAIOOٜĂL%*6!+Er<Xt(i*TObQGKEԮUri~iIA)X>Zg¢ꖙM+/wLz#5 H9(ur,B%/AAV  =`xP=KAp[(Hl1 v[nwpGl1;Dp73o3yщr4-Ft|:>{%F,q(]=FPZŽ|w7	v}Y	hXF]U8+*4K> DͿV`Kk$dx'[>@bǟ7/4E|P!p46~nsh]ݔ\=dZKxCDY9(3=DA#YSdHB~F~q|^Jv|FjbJjQ_WI)8398,39;D_KA8UUZ2t0Ess&bV4BFIS>(
4),rSXvCY5Y,**9373dmAbrI|Ѓy &'N£?(rr 
m'vxõ[DY9(3=DAYSdHW~F~q|^Jv|FjbJjQRrQeAI~|rbAL`cQrFfIjrIiQwfBq~iQrjB4՛X\Z&E"%3=S183=/d/] 32RpH]1yZ~DPIS,$>/17~%d~k6(3X"85(RnE@EٓXD'e8r\Dc	VlK< x}A
0EB`U]yW"!&Fۤ$ZSt%\z$oaZZ݈1:+9l,7B:֖(~$jJ7y'Qs<k5oYXpZaJEN3rrJ`x^gȳ"'f}Ƃr]Z0LXP*\piOEM?I{W|`)^xsCLy%Eiɩ)ɓ0L>ϢC iH$x}OJ@I
T5j]E7"a|5m&ΟjJv%<Gxdtͼ߼cq,&Tp~O7a^Cډ&ICת3[ZVSgLOCv^*K;Z,bO2v*R(9$X0_c,	cRNf%@GTfm(?/FS!B?pGe/&&63%S	ޝɪr~ӻ,ь:K"MV7gi<]51߂E8߅:[4v5zx]AJAE1
I tv*`]fzk $[/<p̸[[FaP¼F"+,tHpQ­p&|O`\ܗdK*Ѳ0k'[1t1[`L0mz<!E҇$ ruOn;\Q=WגTlUt>8JKtQ[WUtƂ!
mAUi;gh$rxJ0aw񐋗&2DĮH{|O"!6dJ,">DWÇ-LYݕESLxαYlI/KLw7yDD	<G#ȃ{-)PRU3fX΀v5l\8<๏Ej>H> 	W@DjrWw\?Y׼}hL0#*
Ë^/,|=ڥuϺ;Yv7wQCz?\xõSDY9(3=DAYSxHZ~F~q|^Jv|FjbJjQR^bIfYj|njJfb|bYniEjLɹ9%`aԢl%.Ңb[h%}̼ԢTbHSRVA-P|YIf%MZ,(z@e,[\_Bf~JJ?0KEfr"/5z,":y/b:[! ^Ex]DY9(3=DAYSdHW~F~q|^Jv|FjbJjQR~FAQf^LjPBq~iQrjB4 S4y2KIS&(
7łg1	 &݊j''N"$h`,W- Dh8xUJ1Ar,4jEIM| )!͆nt7$bCK >OD
|NNfaoԶuc2)hnY6}N NԽ.zW[A/,jJ z~±4Vu4qt8QL_V&QO׉[EihY)-UZ<+W\Z%+BqYv?<]59 z.2x]DY9(3=DA#YSxHW~F~q|^Jv|FjbJjQRa~Lr@ZKA8(9XV!ZAIO?Y(4 J!DB5Pe~iIAiI|^bn*PTr&"3pcɠTq)9zzEXD'e,TE! C>Agx]DY9(3=DAYShH,W~F~q|^Jv|FjbJjQRqj^q~HlK& XB+q)(%+*Dy

Jzy%e5zJ:X%K*R'bVCءP=YE(U($>/17hRNfL,*Uz y%e@d*q aVd6xCDY9(3=DA#YShHW~F~q|^Jv|FjbJjQR^bIfYj|RiZZjLfbBq~iQrjBLeP4e(M>Ygq1Yٜ {YxTPG7T! 0EQx}?N06!$$'DCԁ'@ILj;@8B'\ q.0 "$7{_0܈t0$0:޹lfNH	iK8L\iJb]jKTVӌ;D:r<"7gtV
 V7qgpF֎d`79+bW#-飭%pq+
(YSHV!:A،<J:UퟣS@CJxƵ)(MaVĬU ig	x;ysw%gė$gO>,.E~23^ c3x{ɳ!E+?#8>/%;>#51%XC)?(3d&>%=}(_/Ci:ҢPͥ_ZRP
HMUUkeZ\YPV5tofkEEI"9EٓYLV+rr j>@xJ@@	a(bc(\a,ىzWD|;[aЮZ(Jå*+5.rR8!GKc7	lV踑RBF,ϣbqkKnW`%RU,];Rല*nmD5(UhG:6z3ec'^kَXȐ.d|f@Oj5;٩7/=Kl(g)~G]x{k<3KN~~d!PԢ͑rt],j ATo.x{}YMLi /:4x[¹IOo͞q 53Sx[ιsZ&kAc Q˘}@'h̒,l\
 0E?%5"H/CI!  #x[ιsZ&Ңɛ`LGf]\c~gc.,ƥ Y4 zJ
\\ M ox9s?3fvF #9xySDY9(3=DAYSh&[ٸ@`27@r>P0>4%O̬VWl73iF0.G2 )tEzJ
\\ P*qx;9s3BfSɌ 4x;ys&Լ(fCUl01LyYSSR2bj Sx;ysj&ƲkfeNd6rkM&f 9%$#REzJ
\\ qI+x9s&Լ똊A2!
c6Q 
sk^r~Jj"}X\S!zJ
\\ &ux9sj&Ʋk
X2SR'+0!&@H^bd	IĈ䧤&q^B,W- 3%x9sj&Ʋk
X2SR'+0!&@H^bd	IĈ%秤e()rr 3'x;ys&Լ(fCUl01LyYSSR2bj 'x9s3,71gx}k&̼^	"(rr e?-xľcU&Ԣb}%." WV!ZAIO[y%eEřy@y%CE'OgQ0*?(3D/CI! M(-Zx}
0Ǳ:Ԁ{Ȣ4DbiOlsO7	trwLD"x~ֿJ{ePWkwԻpA[Yt0{w5lJ2m dy5.ɉh.BBVcn֝t(z%	\l
`c?@@`#x{]DY9(3=DA#YSdEf p	>)x{}B~iIAiI|jEIj^qf~Rqd=@U UWx{]DY9(3=DAYSxH+9̞\ ̈
Umx{}Ls= (x{}r&Ē̲BY̓ 
@x{~}|&Լ+B!L%. Pқ,l̒X9ًٟ#? O+x{~}_&Լ"%. PϘ,\R痖ħV 2l&`V QMx~sCSdfnA~Q~Z~i^JbIf~~niNIfnjJf~ANbejQ|ZQbnjy~Q~r~^Zf^z^&W~F~q|^Jv|FjbJjQRbDL!xRRP(/-JN-VUa2t0'3+qmfVцk:D/8?dv~iIAiI|:0gM,__\Y\XYR	Rtݮ&ր]n, ~wO`(b_#{?% 	rkMx¾}\ۙePWcxeMJA`0A) ةk#ACd1wB~~>L}Z4&1E"	T%[enE>J]oф)բe]i0s3 CÜrymJj{ybE,- e_v:PP(AiI-:I<FUڢ1+*>!
o}T=v٩%NqmHx{¾]DY9(3=DA#YSxH(W~F~q|^Jv|FjbJjQSTX_@0789%,39U"=Vf^rNi
L(H/CIKQ&2k!LZPT_ZRPZ`S49YAEE/8?ofF. DJUx}&Ē̲Լ"%. PӇJLe>
 tEKxxco&̼ԢTdĂL8o?9Ey7&# 09x{qsw&.ߙ\Yu,=̼rĂԢT%6z 7oZxsc&ɏ@T!Zln3(uh̒ɭ,l\
 0y&JjniEj^B,W- J$$PxSDY9(3=DAYSh9&ɯٸ@`#@r>P0>4%O\VL`vf,a\ e.`eYe()rr ,qxyOY9(3=DA#y#_4>fԲ̼l%Mj.䴜b[h%ݴl݂"Ĝ%XҒҒTZ%4&dVBM~ŬT5 0S& %YEɩ`;<%=̼ҔT}j%tPXZ. N,xs#&ԼOfFfCDdvQF,1Ly'%秤e()rr *}qxsC&ƲɏfeNc6r71 @Ҁ%%$#REzJ
\\ Ixs#&ԼOfFfCDdvQF,1Ly'%秤e()rr *}Qxk)_PYQᬩ`d`dQĂi/CtfnA~Q~Z~i^JbIf~~niNIfnjJf~ANbejQ|ZQbnjy~Q~r~^Zf^z^&W~F~q|^Jv|FjbJjQRbYQjr~3y	~$KSl<%==}	zJ:XS'W0+!Ĕ4'aLB2 4<]%%y@!9I2$5 1kI½&Â`^bQOZBz'bj _exkZ)_PYQ`d`dQĂi/STRbrvzQ~i^J|AQ~rjqq|nb^bzj%LKb


Jy9)e(Mcg\f)|һIeV`:&eVp(bw9U xkĵi/'ĢԔҒԊF̍ i\:xk̵A8#(5%~s#3 
nUxĵk#fgL #olmx5kfgL # lTx̵kf_gL Sbx[ms:__RwݩNÄ c'041WC=l+e3& 霣9I5Q'׌w^7;tKKWbږCE0$!vWB4yibDh8".	>reQ'&CwBx5KwDX@W~B?9YVmml~|1cn}pwDwF8\<H=BCx@ƼbTPB<fDR.D"$Bx$aبg7-ijx;Fe=FCuno%2uom!	?!dr&$zmB2!Kgԅ	0#\.* ҌGT`*K::9::iLө,BaP6XD!U=I?a x܅ĿlkēA*xAt
XT<s6Nڋ|H39M=:a!5`yn0wAqk*tXkk.ȲPu&nz%K
]\^,uϣб{2WSzY]/5 E؄zܑu\L'ARAGV i/G?mә$60Y$!)_<"}?Zepz =^'b|\R@
	).,]6Xf4l۹:t책NO[9J(͉O*2Y.~)Y޸Sg>:?rα'G9d(y*xE菝9pz2=m@F
%޴2z}r.{f~uhl7έ{]ke]1_JH|7u74rOztu?aMӝܲ
:@>a'Pq®`q=s\D	-"O'4Mj컍{Am Z/]w쳿+ox\]M#;g[fr/PmN0%v:m?St}=+<ragkH˸g`o:=`8G56p!ry:QL\ܘ7CcZzDg4q$ ȭ$a#ӒǞ[zR,ϓ?`@ufVͦz>9C&LMंag͒rVT@D5^L"po){!$0HljDp	p̜hÅ䠯gLb!%25G~H,{hUp$~	jR1Sq,ЃRƚl.iH6<Ȼ>?s%ҥ,p79W#ET$\r0@
f?W5;$Y"ARS+r#;"&M=7\|v d#>ӗf8I;d,B¹F S>clsUGvHԅ.i2_
qA0qfƂdM65m;ƏMpbGf;s'GX;'psml᷿_4Zav:ɫbcr:WfڹtOoU]L{*Õ:Q
*`E20R}}ʏp\ 4ɣJVykO&d%a cDZQq)Ii\(׼k2d(W
y7EQ*]a3ȅp.<Q=ZNK3~?.Oeimf^ͼvCa^	-.v=MǶ58#EHɟ4D=g֕Њf(TjD	5^j<:T&BHfvYSM qOٚNg=ik&Q6nYha	}s_S.Yp_蚖[XAfhyWR{ Yb]#ZQϓWM%l/K)T]H5{mP{_fSm6O`l;D%ثP?SN~*6]ޓ{̩S@eSx1S|,M㾙P|w=;'w!*Ke澖MEY7uDfJ͔1J@v%S*+$/cA'͒n7x;8fF웵9g%$%L>#<;[QjqiNdA9'H}&^u  *yTxV[kGAx_&i$9M6ȗ.^]lKkp 2ޝKbwX4Ph[P
oyʿKK̮Qw/_ SPu{sbpϼ|a4,[:B`[}ߡ6i`>(@VQ&&;yBU%lM{]s	ŵwcZ,55FUYǥMO.O<ϓ7
y*ySU$M៧"\t(Ґ#pk<}KVWi<+Ϸ?(a ~b*όkzV!QWRi`;ڦ=pk{6q\!,aF蕦QnPG5\	ܑt]mc+K^CD:ɵli{VekqF9Gx>yZɧao>6qIff0_ţ̇|VirLzRnԶ*XJfk)<zR6D `ygg_'3kb"ʗgöPn'ez:*6lLZ#8I-\;&#1dQսdbxssG&xS&PǞc]0Ȧy}ip0A	z->Yz]ӛZI7QkcHH&peh.\B 	\|e;2jcEA ѭBn8H!nRwL\6uXk5x&c[a 2	,o(L8=ëL)}PGgϢ|7	tu^oE0n(_TYb[S#|v[X; ~zxUkPu2vncg6vl>k%lZA	1Y/IHo7QQpgA'D<7Nfs};7OX&)An9t`Z{ӺW4=gS ICw V%S@mZe:Ptcm
 )2I2hlfuMc@.=JPì qsbZ
RUWVݗ{h[=#]Yo:X+P,ckV'wX ri 4K\vn>FbjTVWs+yTހK $XT)&w:iZr_z!G8v@{Fh:|ٚ2uݺ1x
7?_Fr;qn=peU
yeY]w,˳pW;ЫD4лР&6CB;ijB8LIDX`,"3S;5/y(kD7jMwO"u<o#R^U7ܲ	0D!&eT}6+=:>>4c(#w'\{}#!fZ_**vZU_FIiur 8KDzMwG!8!U248cnɖMMlrapT<>?ZYQ{.Or@e^aWq_TkD,〸Y۳-	)HpKM<f*Nux1jyfg=,Z	+j;I_ϜN,dHI,숷axZ[sH~r^l`ؙȠ6d}Q5R"ԚV˘n	tddWtw9Gg#B=n8],:面yb&ulѝp;r|DEqĒ #$+m u;Dn8NOޠ	G0h<D
DUS5K%'AQj<&l.0lp w^v#"z`ořwFgwÞ9srK(BS7砩׈q`R56'֘	Hp:Ee`xv8ذ:F׆5l02Cө1M7x>#cn~p!!T: ZTV)
C=i" ,B!+ɠF+a|Q.)謥<	`&̈6[1Bֿ'.4xvjz@!gOՁ,$  0"F}#;i LT#*S좛WX%T%eQKbڧs<5gK։ZFE	, 
&rpM$Ȫ:>E裟9^5*yG=zll}k>ڃwһbt !<V϶Џ#<w![{;y0#"S cenu&$Rކ[[~os8Ax.O7	QhY(@bBԤ{*
B($!Dhv2M+#]I≠_?E&5_UPCu*ע
&	%dwuǺlҹV5)@]j_V>:1CyB|(ϓ|l(4PA$NU'WJR8,psb΋+';q2 E%LȠ#FyNlpU' P(vX0胂mq;|`G3Khʟ'$EMĒybu=0X{K,Y>JZbJUv`2$8R\@Uʊ04qblJD迉lTD_f+׊Еv-wN,c%n&5s[!t[p.7FNULȸߙ®)n/UUP_DӔRuU<|٢WyzdNPe?$ ˊxM0uq9LA>	GjY]Ml 1(^?R
eDQQݫ+R0㪁flD̤ 
U<5ʚYϘ*[>J[^DN3(MS=	^(Wz\Yum&S0+?fSRҪǉhJڑ*]VadGF9
>[;|ƫ'&iNF#iԭԵ"<k Nɧlsɻ$֗^ϴtޣ^pu_"(vE^w+5w8jĘ -C=8g=y4֓x:3/g0d\DܛmNc<"+7I9x	v-PM	 &	|[bZi2jA*l 	^SNe>zMHxPǃ4sOr]lt
cX.X-+~*)d,A-V#cK*TNkdא[_
I~F7ږۗ^VL*ܛ$vDhW,n3jpCDP<JԱ'6SRy<0aOPᏜeO9̩u0-|U8Iۜܗ7pE!Nq*wo`^3MhzFʫlO,}Xm^<zUI!*e{k=lE:vEO%Q=bQ(߆ gOZ8 'WL׊I $?M29{ގsb,B n<#TOnPZ%fITITf%C!E?Ago_߳xXoH~_1J^D6ОNz Ъ:ba]ͬm0\CHM|p82[(18vOٻW=\l\[pr1CG:jB\qhe,?N>sLy$pXn|$CJChD́<3 Rdłh~.)X7:0gx OQ]AQ}8=:RMOBLv<ۯ(֠Pv C1T㞑\	#i̜)NjBܬUK-7썆5CCo n{^?}V+\y݋&pdLtS,\D$Ns60\2)IM,aK[iyȩyK7<Fv[ID	A_[r.2jXǄlJΐ#ox
ޅnB,a8*Fv@Y1EԢs)T7N^e/ቋ30ǕIĂgqox-`g V{'A]y;Xb1QL-0:˄ݺN]	D^.cU˃#)\UA~&Drf-Z&c\sMfE42EߖVĢKW>[)BJ]3_<&,FfkOdIz|x+yӀ$&nX@b͸3=EK}iDPu7Jx(5Ǘmrf?q0^!~H(d$oȞ3Otrw6=w8G*&u_8LF?An4gvxD稠M8'a!'FM""rǔZ͏%t5UYdR^MArD'tY{rco2Q<]]s=✃.4?X%߰JoJmreȏmN1!2$vED5Q/}Q{v֠u=nҀ%cK.6R<0ׂKi"N8$Ī42m΀*{+*lmn6qn}.h,~'ELQ/U}Y3X#Rl"(.\f6^Xs!sz3i0Ix"qRe&%To.-0*c*PqVLH;PLR59BV0ըXJ7@w851FfVAav7(YJT
FL$í낧B9zo"K[W6be̽~rݾ:65	LDzͲug~3Vd3z̕2OȳhU*q\ib"-]LFweU2OVRڗH*OM(;\u3~U#gwp4Cǲ!ۢ;-WNx{w^ofE`*̮D&ci2<#'Fp6'C88;>7Nc̑ed,A@zsl&JYA"Fr~>>z
!
e9

E%Ey)
I`,9yJ Ĵ:hx{Do+*ex7q5neL yx{To&͛?l^"r	 P`32cxRAkAfd7mM&ŪOKtF-!	

4dw&;avko"xу^Esxz͓"62̛}{xo3@f3[ȝ>)  һ;4`#p6T5f㓡%'kIldCPbT{3"{ЎC.B_Uj1|j]Vk7%WÆܤj͎ԖЇ}SwJ#w;opZXWxz$~1_Ҁ.EkӔ4;^ݒ5vWJn-f\b%-
mͽM
2݉ -*p
5ޱ- l˱Md'$O}7&h$RXޢ-.{Wk\dƼ~/s>O^w4~ʮ$RV	*;P#ǧC]o3yTa(u'"lx;wFo.f=Vy!  yx{wCofE`*̮D&cM~49ȷ,?وV<7Kg02Cd7H2AIN- k%8xU_o68$/mvuȊVeb[d7+AM5;NĪߟ;Ի8l$_p^e+zq6a<F0QLKQauFKk҅(+.
B^!gBA]!a
R!6R/ yqV٣b3P,=(TG*6ŌXKU/ۅU縳}EEU$XIb$ۀViM	-x#ŪHՆI0	Z=׃<r}@c!xC/j;o>s=7? ǟhv#xQE<-v@2$">Ę<&kŪf+GY#(QH`a2sŔtK:!K%VR%cq}K1[)yP z*f%M0wKqXhM/+*sxG$$ )Y0_J&JR6nU,ɕw7Q9)e:Ǿ"oL#7?ybd?e٩[9Jd!1)QkA	TC&z\ŸvNaZg~gh
!SP1t?e<IBي]&{&v#kFG4	ۅ/XNϰw08@"KvR)y',tr̅lZɦ4'߱,GtsElLtCzPkI?=_Qz{׭$&߻$Oh%,ԧr~q)ו
wM`nJʌv=F"tT9h=xA`Nf(GSyEgڿHmbò;C/ɎsJ$yԛU+71.5ng۷:"i_fvxki<ىf= /x]P=OAq@5M 8t(hB1q[-y? [kW8ݼ73/o+|.9@펄=EXzʎ %6ߑD2X~*0! -,TÓ>~@)V؋ma(Lzı-A\&ԵcoM-Z=cD=^ۚkvqNd22~eo	n}qa Iy=l,F,׏e4%wZJy @P6
P(OiyaWSE=Ls|HTn{\-lųaȇ8N~ 'lsxkiȼى xx!RxC"úS~Nevy/+ z	%x[)Cxjf g̒6`
 u
x]{oGߟb DG="DDɐA6 4gren~<(eg7HLwuuկ<
l͓2juًO?&NCQ7IZQPQu7'?ydiY>X|&YmfeP12YAqo IEެ0o?6y!AX£4\ӧ777!|WOWhhrz1yDޥ(<Jr| j΁Uxdy^1|WfHMIz5
lYބyDIQɼ*-Ia0/bz1F~^>{w4>?^N'yptvz<_'(cOq^ıE2cMH^UU\e<8_'jF*Y'eXGqaGO=zz@62ʳjUN,^e&.}<<DqNW~W⛁xx!XgQ	Yyt(.?h!i%ALYʽY^$C#x?.Q?`k<x(/7J\"Jxibp%kC=(`]uG(GY^.W+(#=.&`]Iy!tVaT4"@9OS/W<-TSITOJm7Ŷ(`<Y%pJ,]dyRtH ɻgGgG_D$)<1^ffUQ=~EFRK2LE	
qyOҢ$t;7}n]xY
5~ 5@	c숵oP[d[7bt&ڄ)vɍĬ(%T}cHk븼@ԨG&YÂ/E~E\引 ]1'KIPedjlSۯdb~*Z -(GQB\3

@1Um3#5p,PM:U4إ@"2CF{"Zx,,US6
nh{p׀IZ|j Kn۴ݿ|&'bLONRtNxjrXg'{TWG8%rSk-nB>bfIJu5H^÷y3Э:޼	e м0T(G<xo>zde>,:.B|&(`_
x$5^ӆ$Ip<pY!Lf\Ђ'$"[S&$J9U)C<%eFE:pue
:HA[/uS ;B+g9)M+3hPBY~H=^dZt.'[Tʰp7g
 ;sGT(:_#DRhH=	$spaS\gJr&fQ¼He64YQYe[πaB/Rb|snLxb7bB@A
$0}E;~_+-iX2>zXtFOǰg]$r#: 80Wqa@>$(,CSp"LyV(|Lpx.7S+=ɿb||
UD1PA;! jD6mV:KLy&'CVWt*"ȓLi'Ga올u|Ǥcffu=w2aI^ʯP.\6RoDH4$ˉ_Ezo.rp2ڸT`1FF*BnByv +Py,aUmdӲRʒ	&\˧Wqz
*W[`*znxQ04i\dM	66xwt482HS- 2
] v?Lgo&[lrI32̷1ohG\[shCxd#}-0Mx峑?tcs'ޝ^{rr,b2{Ӕ<
/3abF}~ٸg#-dNNad-Q[J>Hzû|pp5ܯu< t6pw8nj%4QZ1uLa3ЦĘj168K4O˞qFbK)op@abZc\	,oR*Dą<6148==/}FR
{ऑBlAoUoiy{_rKK7~	-*T⣸%y=8PDHI`e4WRQǋ03zr |$T_ 8Ic@1nz|@0ƈf.(69RXK}#r>v*j1P\@֟ ҂1LG+?$/pVnoԗ7wDz׶ԭoeFz2A;A.(<kgm 
3~ N$_Yb≮c3dp^	sLf(]͘ܥ,ZaeH4Mk;7S^"v>#7tśrZO&$RDg㢵Vnr'@4ωːgXH;68xGo) D!ipbP瓳䧫֒F2Tr͸V6`@MZ6[QKtTk9}X {4a	[RR+}RSd
xzw.ï!,1ad_<;I|yۭ*wޜ0< 5KlbwveW;+D\d_ZXR+X[ОBiK|;gR۝L9,Фfl1i./Fd6"hT(LXrdMg2`&
!jg+28W	$znԍz!2ၗa6s\c?J|%)J6G V5eUI}E5K:Gql^|Y462&[vkP'ݚi Xe0H>A&5oǗzeâc54r]7Ja7fO|A/_H+b.*2n~0@aCRU!@$gJ82AuQ;o}HG,ڃC[
d(~R!ABҢL8k3Ƭ؂t4>cCe/BFajnb{EX
_(o.(H\Ҹ`s?V14LuDEJo''g?O&ӳSI7VbT~i%[wk1*t1nWٻ1i՛x2HDo|mE'qII<z6;N6XՁ.5X3!;la 71Րyx^uH[z;cxrz$TEKC_}GJK-FEwYxl(jJg6ǚ-oR4T&ȋT	MZ[EkhO{j`XZ݆zg
NY҄FlI,qهy:!EE/rhMR4)ۢ2R%Ud-	S7/
;-5ŎΚDYhBA
qT}ltcd{e Ehl >:?&:.PuwG"wxDDˀ*4CJiB2ɑl]pH㘼!a
c5DnsܰJ3`je+[<#/6DڔnZvęjRl3MU̇N
o(@̱V{"dmZnTX1[q}J}R_YEq@ɤngp3(c_ a4Gw~T1Bo8c_Τz/Ιa2ڑj眨rsJ,Ttf3}MJ_:%:8%Wǲ608C&E3޳ۘ-UngQ$2!{d5M+p4vd9MS;gv"aJbU12GG>PɕJw1Wyj
UAeYm.l|\X0>`*P-ՙm7Z\_
Akj\
P-Gc~[#<s=(y$GpX5jEFNHGSE j!aX2yIpuN0E"YhO 1;~FJ-Rf hoe4rXHCw-NBU<˭! NzQi0S{goݧ>RNv7)-S$7ZQQ2͑i5jPnMQ߇1.`ͭc;ޥNu`Q-ۖM4m89R_uwkp9+oe-/*RN(X^G|%JcnwWUJ_DjAspiL .A0cMs)sUwIa unG:(HB/*?Rq*7U
#ny4I&m0BC /bpd{t$a*{_F:/C05oI:CPMKx78oS/+؋GkI`EB54>]OWOrRB!KԱ{zX)'A-}?h0h/$,H4xY\t&^17&h0ek?gX p;I5-~.
ԤGХ7~kЩ=ZAȝѡRN(A(COhvC6xOSKf k&x@Ԑ8Kbn<0zZRX;f.8 bTuAZ뫾FO53o>ہVA%Io\ud.K[m:;	 P9'MXGd0sۼϹ%wS;wl͌NCZQ94m	=qjh-Xviq-rVt.p>ֻo[O:\[b^,,E"#FwIڪ6qЩ1RThIݔg4AAnFcT?GHfApdGF4=1#4ͿDZ
XC`=8@fن	/?.^Nn(Y
+γ`fb6e5G6hjxp< 4Ztvn,b?#t0 {Z+~e
;B9cZ鄸V 2&ɆEby`ʘ:xʰ ';)et+5a9xIb^y6Qx1L~3/q^Z{gRdْ<k&8,QUV9MtÜޘ8ܒ^y^ӡ{4S^jǝdp-:e?iCا>yϡ`	BzڛKh/cFG}GTB5@w}48pj
lC:~rxޜ?M@=fw #C/|C"kw0(:+ǺA(:]MW(68Tl4;h]a9L6!y)/;	SǎtEk\HaEkyVp!ݺ;5iT3nb&/?Xolق1mڇ6@`#*	>lM3_WMCɑюCfz9lzǊ-~smmQG-Puضp`KoPFJjHgP^4}hJr0׫^,
[:b}7Ē45 es:209n}B63O8=D_"z|nckH}m)T7ꭣC6EXu3ӘmM_f#Vepfj3E6t=Qn)]``F.0st۰](O>~`3o՗Y&qM}cQ&Mj+a׃_{[p)IW LʷbEDw^L"FgۻO?.t`wwVkH(RkAw;Yq&":Ϫ΃ZLE*j!m'}&Fk' v鳄9=U4ѝaOԏJeVV>30GAwU7PTϑskƲ{NjWU).w[# C[_E:ʷ50Zgk{%c|v47@m Iu;$L4P0vwf-R^&
LjBo7\?fp[=CKg7r4#9YD<tg<u/ijbGX"!C+
ͫJX%[3I6Ýz<k9rMc;|"b 8Ĳ^jd3
 [C\!hݸqT'׳*aY⭼U8Lb"j0
}^)I:cHY>SPHB$`2%,Ŧ"|8@~a}Ǧi}EB$zJ)\H((eӤk	A`WEF<3;|#3td3$uXe"Z̀ `4%kэ a]q&?&Utu삔p;E)i65.
ISgC7rT28fC5(x>
^K%,	#I0C!hrnYB'䃞c#eX
Va{j5,h}kL]&Gc}Xǫ2G|pgØ}
e"'Ì_Tazum+YJ[% vm=$t#vV,6|M/yD^h)^7!~#da!a~+j2Q,<6rвpS%#{]nbן))Jd@(+@EcSI
z0 'nI5FHha,"oO[l4$e^.$1Q&b?Zy~oGAYC5\<VEI2M=$b`5q^O(M~0o4qX
CBF5`oA=c0n `L/P]Y_$n5e!=ujUXnjA+jPI>h`?uk2]#ZIn3a2ǋNvk? \gVoAs>*jC-Ѣ;:I	iu!R&
+TӉ:5`~lnQ^lk<y>
o~FyI{}+Hz=/*w2<*XS޶RcTYfvrF	fцxZw6gݶ\zsg+t3a@ih#6:28KG;tdFU?zk;]bFRÖplt5-<{;9_NNg'g篦Ǔ[<\HUsB7pzpv,oXufɽ{3GUx0iJV&PiWئ<K 3(K&2wXUzm%֩;z/)*7k&IVpZ} @r&qӚv--k,h,h,\"Cu_\1j{R0~JfEԾlvp3Jgj(3Fӡ|X\(	)qLD7r6כ|O{AR(/+wePpZJ@kejL(I+x6WW`/n.]W|$N
pUL0!$JSIN#*Ȱ2R>ec9ŧ'8,7s¯7$>D;}7%ol޻Ex,卞SVf_ϦJkѧ6l4c女 4&i|p[۞z2{M	ED`-m`kVY]HH:Yh2fT˯PN9wڜnyxeD6Z{0رkUuTW&;fXT]l]>2<1CzGX0گ7-
qtU_#5i~^v)M؂q[SYApb=$Q+/Ti$~М܍)VI>עK3ڏ}
Ir,m`HԢB<G $̬}?{f&g.-T/D}YI%bZFal(A'{XDHwGmҫ߄[K[sKpo?UL0(djӝ"K#UK؃~3Q)eM[<:C;=Qio!$䯓(߿=\|v]UƘE>LjF{Sbd Oq@PMn*Gs=.^nGk#?J3)rܿc:kʴf2Y'a٬'ͺTϋd:0(ȼuH!׈׻ ˌh:zif{Hpl̃{-95MUf-RqU)'ŕٱ ]IE=|TgTFd
SCA6#g/6q/y^-l;xJDnscGFmAy;uᣠ~ۂ|07nB4']xgQfV|(sW~NA# L9Dtѓ܂%Y OXg/z-',@'g|?@c{ %{AR9/dWC2SJI!~;NF 8v[[KjwP"츦H?deZe7XҁS)'4/'8fw8bf|'1\ak0V;| Zy(Jf._O/>
&1PꛈQ%NT4͖jn{vOkhh!ćT{m/H#+,ҳH lج=}#2x.iNޝN'??;:;^?݄'x3 taNetworkRuntime!Ip=;tix& NetworkRuntime=;Uxy3XRK󋲃JJ2sS7fQ~ Ň)HxYp$wI.2ɑoH(	(  }&{$) )( &Tہ)*?TuEVmǙL^rDD*w߾<}n~?}_=#H%UeJ$/%eLcI	~p,)uXF*i.%	wG~^&,."!cg,>eG>:-B]-@k⨁je*&:/M"ؕ12ʆb*,LI/R1<ƊsΊGdۣ?V[h͉\3iws\=^N+4R/Lvk,l}=?ġ: ޡnLEJ{%Lj,]:<rQ sʼ"H"$4|RXR5{Ie咚Y55G6P\|Ӛ||h'&QYdfN`3|G	jTƮv:q}2
i:c!NY#t}$A2oT^*@k&alLθ$-[lmYY7DӳGx#zOOFn'DD*8|<z:57K,f8ﰥ: tC	|/7 u%)"%Ē2YAT&jzHcP/'fdarh3po %Fu3<41(i	eE94ȸ^h+2 #[:C[̡sc3W	->jlE35@x(iU#_v۰a;2QW:L1l߻ay?"</B\Ǡ.ټQߓQ4.w>K$΄cwIӢaNBzaWڟ +4+l
seQϞ0Y&|.ӆχ;
m\p
mFXԎsLpS~I ^=#S者VQIG혽-fȁ'Og0̨],Y.:\[Kŀ$wEӁ&䧣0*^v;%H>2SO#PQxidtbP0ҝ&]>]rjg4/7~**ǁ;zD!)0GAq՚߅lRR(ef	>Y(gOHNBkmrȧ˨rıA(ȴT)0~5MPy4"J
:vd)	Z6|,I,0ݒ,-Ԑ#>vWy3erKUœ+1UxP)	εiHX7x!.w)j(*+\=ɜ݂Fֶ|ܐXܹ^8cì1e {@`7e	i:S0cG!S[RQe^oXHK>'
4142Zc=Ll#6P''}T
OÌIB|Tlbqǔ7@qDi-zCwVe'2lN~J6/Sbyuzޮ4G&x0 KjS3Aæ,ϪllB:3?:-:H{ƖûCwό3%gpxKtP[5m4i6Oo%lc$#O|af,jM=t'~>[:Xu*|]~p>ZB=3J%̮HA$UiQ$"Ӄ>z;	˂핽D+RtyL{t;j/ط|K1N/X7ܟINvE7J~B_j9^7-~rP턶)ΰ,TQaUaekḠۏu3j*V,zꦃ5UClZf6K0`-,/?JSy~AC-z9%Qᅁw~]~1rͿM/#,QQ>)*~',62LCM;V Y_Vz	ۯbVX8//#ia`M=x<d<X~|MRҞ~S/G]}rvÂ+NV}rMhSO揥	5DjɋxvB,?]ctmqͪ8NEīnE0_|zg_{MgC.RgY>%N3P{a,{B|oc	WQP攏Cw*vt<(}G؜KKso>.p8K۩4A'Soěn;xy3L%&}  ?&Zyx۽y"~ÃA}b6OUcW9+b	 6|c3xT[HQff/^,]˵F,K"P3Q"Mj="^bXzHjE:t##MH*z+ *^nvu^p/2MgLoYxϬ cme	!)9X·<'LzlK|HVPS[C$jHEIEk^ྻ*MsO-ˁgPݔӎFa$6y-
#供Pť92X	"(Y&R%Ǔk=prpt5fAELyY,̫p(҇XӒEU[ DsDUCTi(, Ayi}I쇝!/\9rM"Hª+Cj[ar5dd;.kNĴnRujP_|*ul8eyҜ`ءD<SEf#5yt:`͇&do5ep5{5sÃ&:Xq55>ޠ;B$J9ƣ>Rs+Hű8AŚ<tP]n?̑COX--{pc%ԳF2Ffc.Y{070T-"gzA5uE8]eVYp)s
-[ɣ~6'O9z}U-
l1&m%z?sZ\(p#x]hB3ͱe$D-)aҒ-	Y1xW{PT؅EcPP,a# `[e,ܸ{rkFc  66}:61IE0Lvꤓ4i;δ3}{.<LI|w'/}0aEDY?
F	F6^7d$89$. xtmH35`I)sgޛ[,	m	QfU>*_	߰E~di5'7|1O0^"yD.(s>z:̓mU,UmyXWńb[mKpR?FA&Ԍq4>29	_K_[6GsIJkۋ2`}!l<Xpa:Ix vD_U5xIfy^ٗXFfGw=_~+uezrML4\jDwD8RgS嘪D*v&-A*r)c8>h5X{zQfT!:rncIDŮ!o}H`EB"A34^y#Nvu<`%P}z&s[dԍ4I=%~]]G|ܗLM֋ǍjR&s{WKqC|s3pKMHJb%J	/VcL),꒓TH<L*őrOS{q>TD*C^Tׄ+gUt- {^ Lb\4ՇKp]ϙS?&i`ܮ5:W{M&D'D|r"I^6Mo3SP<کzI+Gش=~?6+Oe#&uG*	+r,c>Dwdɟu@f+	{U8CaF	.$p;.'n3midʥ̯6isqid$IhFfۉѾ98;8Y?/Շsp%{cSL#fs[ϻy}[DHA LwԿJ#(s:gu;3훍L/48zjqud.ÚCjG<nHP%NaE֎&Z1oJ.SZU|ӷU'O]OgݙEk5́s]s]4uBP"vLG;=³"'HxOCA0f_{IH+HzDED)>\ҩH%1{F&Dx%}͚xϟ⬈
/ǃ,qwk*ǃ.=V\.գC3=ڳ8dÕ2jHY@InZ7,xjf^&/@8f2P^4X[\2|j	ϯߺV߂ds._$0Ke`C\@	&߇(Oe+nuJaʋUh{.L_\^͋=╞Zܪ_Gd$7m.QUlTo{U/ÂL_'4,WmςJ*ahy=9Z?Clfm#"2.ѶA4"C?[ӭV
Jܡm1戈gnZ\5PwXYcȽF
U_s[j7s4t->i9?3&yt֢챢ȆsU:^xc<HugaXNpSN^Kdoѧ7"KhcuT6܅qv]^qo6fV:x{Y7aɻ
 I\WxZ[lGVEvZ'M4ڲIQ&'TƗ[Ǘ;ݳ;x{q$PUJJ\RE)B*-(HP	xef3
`Ż?ٹ*.R kBE7:B"*5 b
֢hHD4DX0"jhKbM<!Q:R
O*֢+	T*ZN߁g,'"rUNhԇwu/e] ZR& |㎙ŴI~V$dK@ Iq3ryot[(͍,
`҅ڴ%	fŮVk:|#I6fE83{wfhyӇϐ-࿯j-/{
IWJM]y]'&KsSggO#	5Ӯ q.wgy> يJU1t5Н$ߔe+=qvco$]fT40ލh|1/Ge6i"/aڄՀl˴\"Q=Z'Q	C9f'E'b12C8t\ |f(U7V`Hl8@B8Iw3aX	4u<5H{:}B0c􁷷h^|qU5YXBvjcH|-{i08r<'1:0NIĜi+ǘ$TAFh 	|rO(]0hb3#4{3[BXc	ko/}p?CZi#L,Dgփ 7Er;$G\r
'_ɽ"4R7uD֧<le[~"6B$~Lj  !QmɣAS;7`<@G$نL·O7pLW|rԭbLNfowGڥ1g~𞰕.!?7?EB,#4`~RsVӁ/؃Le<͕4kg!|/Z`ԛY4ˡ?`Y3^]\'ϢjxSsۙT+a:\8
ynԜ/ܝgڥ9ث)ri<8mG<)}0pJVcf8Cc1pFq"&9J9w>7$K5~l#^xarBIt&+*!X&<=8 ׶A_򊅒/ZlfsOն0zC2{\x5BLkSE^&.	j$"5aTTP򉣶h^=b*shܿ
>ث846Ӑ0d:ȼ:(ڵj1suλp>z~rg5}{ʷ&CG mhal]Ѣ/8$w#b03ۖs%Vs[DQkmcMzB]uFEŠ[ڰ{Yþ\>2@|P8F]g[uIdQK	`RZ ,ɶ/~w>~fseadG*97^d+65]Wr6it_.zSz^裴C60"7b̶"SwLpr+%16Dp^z8Z7'T/p습UƱn3%GM*=*r]NwgxcogPSP/88O^Kf"^[d]kkIeI{txhFD?l{k; 7F	W K;F4u*"Mh5"x=JභjBDfO	X,Jl3xWZO
R' q4{P{bCхɹٳW9e^3F@5.q?Q0EKL<mW0[WB$ֱ;K4W4)p0XЦ͊uђY4)=܅mCwpsy4H=N^5!:"(	*P@]:yPQ{%bj?#	|@K.vw֙"(r~cL"έ/"bx\mo6_!@F^Qi6f{EQ-6kITIʎ{~3$fr.@,ryw˳`^/7_5>'{ʼtB
]_|= 44Sd$s
x꽹{	.˗Ͻ+/ V,}i<z!Oh3Ib!RHM }U=Gg6JeDb&o^aSS)=Aș.ɀOH2&{{#߽`+OA%bR	U
vz(.z7Oӥ`|?}~ݓww+BQ	$#DiB2![sޚH!;^FE$Vz,a(-9Be.] 4Rqґ%tֹ	l@Jzx^x`TQ"!%$}	ֹ>#f*. DdJ÷Zuh>'
3`d%}" ÎZ=
4'	I$4U]9{췎 (m 6p+YVh~*ct!bbzrQ׎2_*x-	lpݐ0Mli|пutT{`ikF^J՞-^M}V(@z|AV03@/]C8D2T$8:0V·4mO۪rK#Lra Kӕ!eq!8RoI00'P|KS4H,y`](i0&cil#\6#eI -nI86AHB(cQ3NdtIi:*:bXRșADwC+kE9LXIpeJ.9  7]0b?N[=Ǔ.odX^еxh6X_\j,	صY!{AڍA|.#2V
htƊF=U]X56%\gym|thf)-Zܰ֩rG]dᑔ-~J2EbVu1{ͨ]#5YL%Q|cKH܃Q.@i7uB?eF1dl,X	PFn*<Zi"o"u"jMݛfu34[mwd&+6F3Շi`M$Wf|պk"2c	1we8v5V:@5p\YhJX+\2#.bucfǆkn"Ak97+;
}-T5rF͂5xk+,XEg<Ѿ|5Tj,=r(5QcUih۽i
vv	s8W>a.YQB(
J.Ӄt3aE,Bu*n&)0htP!OY8{&y^wĈOv*7GX}@Ntn@9SvZo"]h'Pw7~h'PL*D}8ⵃ]?#wjqb.n\;C󸺅֊.f;-[hYF"6Nm2YRo0_<}K'ɠ{6{:1$/ؘy:S[*"_髽64E^"9uY90"qmópN1g|"'Kc6DuUCwR,b3M"k	>5$ﺵφ&<ה=1V->iJ˗OA>m)]ƫG&9z!{= +9Sţ)#vb@Jv6:X_Wm?	r\iFn95)2Ld#Ka}LyaIǠ`D0RpzANMsUgsͧp;*9C'uG,5#LR=gOX1O1Z6[.}ٗ$8Mۜt6'ffDPV;xFӧkz6Sek~Gw~Йjo"P$\\Xⳬ,kƢlO`9׎*9Y_XoA5|@ m.9,~שj㖅HE@ATAG6WL癚`rGQwkF2p'XC;K<sL¥dbg39P lUMEy7,2;ɣغ u߶(h-ѻ#&4]&nu]7ԃl784+3^+jd}+{ѢA<dND:4ĸթl\GgN)غ:'Z_t-`yF$=Fz,OWG0yu|(x87t$F7Lx"6iB<-NMM ,jiTa\ 2U[ʼNV/4D̜LT68jӀG$fi+}^i-^C([Oʦ:s1
7;mLIsp/48}߁=k.cQu- S1]HEngU+1/v7|y-^LTMx`l~ä%u~a]ʸeGqT*zژՃ_BՆGq\t~"r+}ىxȻa0&V:,4`Ļy]f9ii1r(niTU֪/MDݎ]ĳ{^zҀOwwCʶ `5䈩0iCtwhva&_]wz&!D$SfM{:n
QIߌi<3gջ@_`PqR]wU\97I_(ZKh2VM6l)6:Ĭ>ڋ^THT:)K' l彀*t.^<kL%	fg{~DĞTkxa0zW~N[Ap}e3XP:eAZdiA@k oeģ$>0˵=I堑^fбe`R)u]
&
J'G:戵Z6<J
RS^"8̢9TdKֵků,GYBU#=hEvXQ>l`_7J9+b_0BQı	)ح|MV_5{fkkN91$,˶$lƌL2p3vuP!@9εhC1X-6uB\,!Q*\w׶Umqm4YLԊD}DW$Q՜8"6\giGWZW!Vbiiv֛~Wn(QkaQtmIx{pMTc$)R9%]&7Ov >CJtr,XyR&Pg,&O1 7((x( aE'FE}	PO:gQYVb_x{qEV9I`D~aREe]&Pg,&k- '7Fn& s)#x 		!Ri;x[pMTX m!HxeP=O0,,lBT1҅!ui!@~vIӴL޻;рLkH2'tF<li7łWjo4^ ,[Fȍ@	ݚ`&]@^9TUTXF;N,`MZpi3EB46[cumɖMos&%"FB?AJzy.96Z!{خSE럵`[ely|J}[ĄƋt̩UZ[{	\u
2ݨhon[x{q)m  2sx{qf3'_\ óS ^ 
!@xmP=O0,,l&04rٻtDuĶ B??J?0YwwߣӳK9\F2cxŗ,ILi<袂NnDPrRY2.{iɶZ4ݳj'QoGΛĀByR `zm!Ћ9F5HX!	^FwTRX1l[iZRh>U4#_((BJ0z<cg}r2}W@U=|؟W~̰A.ڻ0aZѫqU|=iY6n[s}Zlx  WpI4)4%%"ZxƹkFH&܂%}̜blKT	)EJy%y%I) ,QWwf>*%.Ңb[h OAAIUM|r~nn~^v\ z
 8)EPXZ.s2*5?*i*Tu䗖%=P_BRU?YYG>zIY%)%E07/
$fZAD(P屄 cxF96q K;xqZ\WqnL<XssU 0
Gxq:\Wqn\ TFfxB'glrys3
':WqHo^89BsmJ6_~6yD㟬l7K[YM6pbAkGo1IAbk4ĹKR27
f ?n/H#OxmPAJ0Ewv%;hA`׳ѝ"!mwڤ$XDpe<G0	h	=;_{g(SmaQYg	<ݽ"	8i1NӼR&|?J:ə%׳B+JTmb̞ќ18AB\K9htHCUpghTac[RይeKћ~Fj5}c1d骄Z$# 'O.dM oo
iV-Xr~tc7$<<ܙbR[⦬p,?8(x\)eɩɩE%iɉ% vnb^bzjUNfR~H`VqjriQfI>]ɹY'[qo㊐MML//-JNXQWkaQyd
 YI7)Y/?YArU9q$HҩS]YD)xq:\)eɩɩE%iɉ% vnb^bzjUNfR~H`VqjriQfI>]ɹY'[qo *s)nx97? 41Nx˹)kq~iQLQb
Jzze)`T%PEuS̪P'Ʌ,j|p
\\ / nbxz\Wq] 6xq
'glr@ezM;v\}<yxj1xq*'glr@ez͕: u
3nUxqj56\ 8oxj'gl" U
xqJ*':ygXgⓡ)`LBS] #Qxr|n;
 JOpx2|n˰,.6Ov<_q.`1_En̼<~l j>gx2%,7 SJfx;qR%,7 Jnx[bT6;& 2K#xmPN0ldrJ$<H(s~ B"BG`c0QJӖ}|?;{n5L4FWd*T6I5PD$?EFrfA"<˕g^IqMٳL\kqa,UM;vDx&$ڒ;3>ox%d60T<jS:R$_ѣQuk]#
i5VT4g5ˠѵ/Edܔ*q_ެt+<%4_xqRGL&pg$'ꧤe&&%Yd&AD ?0N7VEBKʛ "*n3x"s7Kq 6nyxۻcyVy%e@V
Y&
Nn`|;f FHxBx'n+ I!fxUO@eP)r(ibK*P$8DYh*5ā`[w0V-SK7$+3{.9a==}{9Q)_gٷ	8;WCca];t3瞽Lӟ@m6f	E#;?pb`ϞUPK#pmi`u)OKBQUk;*uXImZvyVC=%U:aux@l.L禴}A [qla''<"a~5]#-ʰ.m)Xp=zCٔ7KѡO-2~T(8H9[s7{'_G8r\TQ>:D}ᴲRUGcGjhQDA+p\{D<zO+8ծecx|G7-`ڜ+b XnxqE6犦X 4U?x"s%KRK3JJ
r2`%&7+FUdAқ簛z ~x;1<s~AeQfzFFF \L%M.ĔԢbļL(GISKA!%$>%HVAIIi|~)X\C	8(9,ZAI$U Q+{x;1)"iyɩV9Iy%e@䉼r̄'dH#-Smɶ >xuP1N0T(e(	=!!.m"B(O|g6#Dai=3;_GǧdaaDR|lcVtXRW=5OM#EEe}(XkҊ:DQ'8u\`{t@=׳#P͌%lNFPϡN^SIu%j4lj%<Cypbm^K=kCJ:(w\05RW&oűgo@seb\`xQ ȟ!E1EGD}

_ndk_ninja = []1E F$E+{bHIOPL:JpLKN۳xǱcW&a%=Ē̲ԼT̬%XXbj -="x:qt	"%k7m%	 d9x:q4	"%k7m6c<גo<\\m&r5f6Mg"7|L:\]u&/tUhWnw'yX)dWė&dNC> 858(DVAI_?43'E??#XM d@IbQzjI^ATP+KAAIW8(9UdnJfP(5) $Ch`KS24u 6d&Bl2KĢؤmxɁPOhxIGIHBNf^j+Y Iۃ<Ux4qFřEE9V9I ɊE7giI &x4q,	"FFEj''(	k榖$$$ƧV%&Yd&%aORPâ,
/r(g&Ƨ%m@C!4 Ov&rxuPN0Q2R	/ 	u@e n #AD#2'Ci+-{{G#<3uk!/<NfSupFsd	a,m1-@Rx0$c|BJHe]B3T"W<WZY]"rKK46S.cB)hӂpjGo;nKHmBc@#of=_@mbјݣ3:a-1ŨA/kWD-R(yg7JIt緗qOdKѪa2Fhw+)|Nxɵk}&ԒĔĒԊɯJ2t@IOO?]S6A51^0+bDB\!B,γh+a+>)8XZ. _(N7n x[<}*/J'(OV 0>:x[<qY&;L,4Qw2NB:\
:N5yJ5<HwN''zN>ᒽ>  cx[8q\
X$W?Y S	> x[2TAwZ$%&g'&%Yd&ᖝ( 2@R'O0ޜj_ P6bSx{7q('̼D[X.<&:ONv	LS/./VUP+PRPSSCL,Xaf2YYzgMI.:(rIyV`}J?:3n<y[+X~{d	fCzr5'{ =N AxmP1J1E+BT-fbE+-%d3ٝ3IH2 2xk9L:X$sgM,,*rQݞ,"hsL鬅Ҏ%$VI^JrWR	9@Bt`%#m =LZNVHwI: FcI3mh&C'!ЄLW?ZyhkLb@CX0>0lu t+%=;a>|%	1rk@kroY0=m~Hkx۽x22'oԖ߼	 
fwx;"'/ba|= idxk8{*IũE9V9I䋬D$oa""T__^_XZ25C+3MA"71Yvi$ٜ̼
TݡgYy{ Nxk8m*,7ŒS2s2K*Aļɍ i	tNfɉHlni *J	ixk2W̜̼ĢԒɆi
Ȓ='uua89C
0'3՜ZB%h6n 29<x=qT)J/(
&Yd&%yʫrPY&oTI`s
fxI 4:x?ds\&uU~\'yL^	dZL~RU5y[#fk#L F@x[qEeV9I䇊;32
m~" '$xmP=N0ldeR	9UؘVb "d\ #۩!z
F6C!Q>vOTYI*{d.L#%XVfٴBe&7.%>+I1μIi04ee9#o	!QIG@.	e5na45`~WZmX	Ld\<\JL@D-6 B}{l_W[CxB!>ХѸ29m0F{gUnJ;_l5ns6i_>&Y[VB"PˢV6flQx[6pMT% g!4x[6pMT1 gan-x{v$7ϐ :RVx}vF<NClERL63$ȒD'3wvM10 (;7' $ҖI,@wuׯ<	F{}w/3Nމ
8β!>}Dxh/+hfI%iGwz//361gğ{QyTAAPyc_M3/~<AwA6~"F|x܇~3xƟqM7www>|'oB~4s|z~}z DKPfA=
Dw^x(Q]#wIhKav'
iY̙&Fn? GޗG^Kuz}{|tuut^{WI۹8^{G9?>Nl*R	ØIJ>-FJ"7U$H)8f`d~Fƅ}7{4,%lx;?dK5.6)ɠ?x?u?	 *^<P0]v7pd
e}2Ua3+8)?G,oP v{1E4?^Y&@_{$~aȝbM#Oib͹t_xT#?hj?M)LS?C=4?w|^Sw=O359DJ]}`S8|s>{&u֌@ȥDEzXV޿٠_=:8wM`AˉʇO@!_d)K{Bͻj ܘ9*Jgh`}n??4F5hƛӿ\^wμ^|߿0~h>_lzq?_Nb&)*ėoe]D	w@SN0,Իy.CYSD0T0Y>`pk`G^WF+?A*ޝe?E} AH34C3pEÅ}2o';a-u)rZA #/g; =6oC-6'MzTڮ_W7?wQ9Nsu(d:nnf`(wO'77+[X߾77ϞŤ})ks9I2!x:DN?Ld5}Mw_U0lOYқUW}ygNO*m3³v"Xc|{Gy')$*;j //y?u-QFvEs`)*PFxj/&AyOg>=`Wz-z9(GWЂ"Qg)D.`G{?KX=RcgH?XɊ-)һ!GF9~,.2|6hUǹ'@eK䣹W8,B(]D~^Rdna	Ci:V=tQTX՛` _Mg Bhv`=vizgQVdkg^,. *c;] m`QFF\ y-LOT6c۸jp`-_"Mgv.G&U[#u1B$HܛF;"kИ._n'h!}Daؔny0UV30`$0YhSRJt^خ"vV6蒜QK?j(r#֊suim!N1*vzY*Q}lQ7X`n{oj|MFWycK2ÙEx)urU3k!)jYh߸i"2QaW~聄q}
L+e6.=gJ:^xzܥq[eL<]"NFj3kY˗`Hw@ǧHƴɘJ#U^YbYT{l}AfXaARS?My1(mKCp/]WVC6~<H"6v1
nU$@W.H#6A1Df\S-$ڼ]-ҳE-z?N<RGTmDW-Mw_K4ℚٷu5JoQlЎG<lSۗ2M,߉cm:m6173l/`X?FkA=jd]qH܌3T%kî݋;M0Ȣc)&Td²u<LQ-m(k0U/"hAq<p828̀&"$NR?IyE;6Bc}؀2]*,	;1"zMMrc-ݥqb&|&jmdIdCfm&#5I/6AhMȃ!=7O̜k݂_3<mF'fb8~-]6yF<ܺmlOkW0q&&ilD{
	~ǜ~gSlY%ͭ+cn\iQ+]ԄɁOohVQ5lHv߭BأY&Ťwc_.3XyS@/T7>D&#!?9<97awHT'~{zC/~abo͐3
|qΕvi'J$1wƚFxz4R苇}7f(d$T0n[ǖlUM_wE\`kZ̠gpth@Es5fktt|t~~@T+\6ͦNFϦntD˛lϒM6mZj)UIY-DX'$n$JRI0ӆHgIӏڲe-?ʹ P6;ruc&imYƫTu)V(V̇:2?ye}o/JK(qѰj1*,ʎ8?hfc^`S[!`rVXE+>7Ðo[(> oP~X
/,*\&GBĎ" `_Q%;4UA|0
4{D7r`.Uh9x%׮Z.e?u$>1?cO45xGLx"trJZ^o#~Cod#g,e,tm.vڱ,[Ae:3E}#s5m镍"g4d)]Pk@) s=e&숟gg]t S`	2mo29+njIpEBBg6 \	j};Q}ܪRr%o_`a`#3L3Zq=A8PǪ-,'tHZ4f"WanWq0ʡS
K$8?R!,`)&6g)H&~NwX$-C|meUI/J)Gw@kSb2`h'["pIǌn&ItaKS&C۫rNG胭b0vE}szvݤ'w#g0fM}*V$Xiְ\qߥūDr3ʍ euc0#fimpLæY!*8Wuܢ-w
8* :IGޱfHڱCM ~eO8Oݗa7DRw>UOh.44[9Z9S](?>keqö	6@o3'v.YλZ	mima@bP	8od]!XU0U^wA#՝	ެYu7xKln5#bŤ]KmVuW$/QC(ca!N|9f`JMiZMM&5T֤l,~Ro$[+-mEe}|<>I@V@Z52҂<vIJVJZ܏ 'I#aOGJS%NhoC
koTvaٞ_KNP=[b}Nj}t7~Mo߯eks
߿olDZͭz0wMCH,{:5Q"YP%'ͰX@d.N_o%8,_)6SqId2E(cg&3*c5'_GOS*pU<B`m@n'J6{b"Ne֋°bu0ae,J2,)̯T!'Lzj(}F>ONtX`,u%"+jݪ3e\6t"2C`$7hP2jm:sr}Wr㛱@\I/{QPA}Gɨx-eǣQ%+5d;wi@Z83HP5o""]nﰢ^_ (uô닅@@a}TL{At!|t=p9!b[Lb }uu9JmtS;H~н9WXU,dks]r4.KuVZ" 73OnAn$r9rQ񁏗ZTJɜǡwW[]21niLN编[qx^̉T5	QA,s]͹[9b	lQu*|59$lٌ?#R5Fg^G`Տ"OLZ1=cpWXӺ4-͢!>gGwj"C54TZcX]dAkV
}T^Ϫ
ez0u~hUE)Z&{#H`D~2;,3)IޏF2Va7 ҍnr	#L)8`Â
#Li2OJkkkI-eu]tïRfrc-flc B?
PW	Cҩ퀾K,S&4AGR띄xWJaA:J.;{8EAsSOL$#!4^TB0uI:c#@3isR<o(Ȝu@ܻ9DNr:`[/@JA0,lRwǥ
2<=(-O?UZ8V1n z2i$N^T&\$-u)rrVd`89=>3br$+k[|
:G6~Z[v%Tzɳ$Z_T\+ :8}r#0NR 17V0C*>'N+ϫγւ'EQZFMCqei:;thsU;۫0*{xPZ馭4sNn/5.ݿa`Q0Uo^RƉ n,}cSRuMf֙Y}K[#5*-?R3>W==~w$>(egu/ȇ~den&oF=QcK<&dη/h;}?qЉٶ/xFAa7z.
f49.Θ+w=+I<1.0&U:4S+ u)(J{g@_1tTx2ώK2ʉ'ݢؑVLm4F:Nc0D@nG)=À }Ⱦ7RI6BoY<|IwD<P@4Qo+h9_rEK4ʉnW)蜵]WK
Oc3;A[2ޖox[Чbf%A@	~企{8\wѾ0VȮXi|息kFwl/T40yZR'J6-搖[ӸKVؕ6Eov`e}b3U~)!E5#7i";dak}xE,@g0FG~~V_Kצl̲K[>@^N!`7X_i>:3ث{qsvzVs4Q韮Ƚn{W&>o˽VRcrf>:t+Y>`cSB{(L{)XXڡK)3=xx#?&1DY,rt_yNlS1:97?H=Ҧ-ܵ;|S:p`Mή
r>ڼ5??u"),nO<8|:5Xڷ-cObTZyڮ0.!ysFSMÔ,vYXOHNT[1/5~5~\ACʊg7y3VwwBޗ%*ըr1l%|΢}"mh/8*}R5j6PUދVhc_nDEBlZ`FЃE%c!=}ӑC>|Ģv<6:QFк]Ġty25Sk\mZ(F	d {4DY:׬a?|ö^dJ3FL}\Y'#RĊ6!P&w%JSXQ'v[av	M@1ʫ9f	vgV36jb̈́C0zx'D
cXA]ۉ)kN֧mtpx`Ϩ}?޳~^$
NزAI+H(n>>?>^ ̟9I86f{kku3H=/(a)|lD^yt
q
p@N}fӠ4Y>/[WAkG-
wC3`zf\j{#y鶋NZrt!QUK<	lrыp)J%.˧!eESIJ{*q7hg3έs\)
|6
)v`bIlA֬o~rY4EmNh 
Ijv82 ,t`pD~+9'\00Fc e)8aSMn	 ܉q-Akd߳jZBG9+?+igv3rSH.He$2+j_V:+eaXEZAC7Xoz'Z̷~ĳԺJ.	̄.UVແ&+lk״0,DS0brΎd-`c[Me4+̮˝ǕJX[XwJ)1~f%u!jFvI"[S!ӌ2^Dw4'6G;֣2`'âׁQyz+ւ%rQ!7~n(;RZLgЈm qgY.64?3v mC"L#)Vګ3ֲSVIgI@:kZ;5+ojho:fQsFl񭫎)T:F2;XՈ1 +YaAft=ߨS"b+$HΰTEz߂Lnaj,!vv|n"=I$DhyBmO(a:zxj{
yz==aLEҼTCC"3wC1fƊ9]B%ԥáܛf[܂Ab p2kV
ٛ1=~p 6ɶWWW|1#[8שufz+;53i[ӞX0iʷcoZ-bt:Pu7V(XOu<-&>7G;۬jUM[)Wyn{+A1m{s^^c4זٓ:Bx>5)mC[rjEI7E5
Qu!0^|7N:1V=P>:c} X0kKo_8He\otiΛ)__B@}"fT%E`_O)}=J؜3q4sLF0y11,y_SZՈ|z}c,&<rc^r#b$۩&k IBp wGQ	UIPyi~Xf6ߓ̭țlUw@ŏji9|p|"?J-ޅw&bM|T>_l2?ґƍ|9(ł aaKoL}335T^JrΦl	K
TS&k@abI.ץ̥04/D)|3]1VGЀ]}o·xKrȷI\w:o*5p>4Ac[se'auRCmF6TQv^9UiZ$]RKa.g>GTKm\lI%5SH-6L#i"Cb&ʹ}$MrZj|OS2t
6̦Zx}|>Kʩ/o_HEj;&'~ȹ fht^Y1Р]wͪ/YW+~l5R;p<(B'xC*/>K$յ]adR=&
嚬ͨ0 -VNţ#o1C1&SD0=XiނucȚ/]%MT_lMa<ݏxusޜ483;o	"c r݃y`T~qS=TnPۈ!o>sSi'»BcAxi0	000`W|,_VE+6SΨ`&2(a*l:JO*S79)R8ˤ);LB:GasZ0 ]J#2M`@'XѓSN@8VJ_nR8UOjN"gDl	4a2&bD*dɬD^25l7#t:&{!WQ;#(mh+ǚ//>iv+~52Yo[Ӵ;73>|lBChd65.1đU.(^ذSBxz5Ҹ=M{:[*AIv*R)ׇW;`c<7=emK,L1$OI{}$oVCR-[ysln]]s o3?燣8	Mtzxf͆[v#)9pv7!4`np/+aJj8Hs]-̓-Co#?Pl±ۆDn+pZoXms/D,/7{J!Vzr=:~{误޿~ ̔1=6bMOvY<jR`/{WXʋFō-DMp~d,?ɫ8h6qM;[}~fƦ(4	5L:aJxJ= W7OS1,KJZKV2DܝwqpB01:<"ƷyKХrK]:4.6DtbNZE660~e`S69AX9:M{=+ 0(wR,T:Tx3g-Da{kov)]xH,xSb^I9VkbY.Hbg$([^7gV*9A_DY" FRhB[C![Xbi^EWRtybBRnlڡ|1m REz&4K@8RqJo3[\n%=mO|~;8?V-# 桑yL&7孟6dY&S9P.*؇خlUCؤ-ʋ,Ȕװ)>FEq	_QqyGv'4C- knkwW`'&!&׹XF`Dg8iH~͡?Ʉss;Jiqon9Hȧ*\EM ee6AփRDy؈P-Mlw) Erqie×Ijj>$gEK26͑RFxpG*aw>?C_eFO?UqXs* =P5X
'w4^>ENN(x߷F)wS[eGOՊ0A$2K=BxV;~048]׍^lP{^X:8H	t	4ؗ9בb'^QЩ	)R>YI)N*N,}CٱTq]gkH{Y  +~j!NO^,̿鴃a#feDywiƵ[Oɔ0<1ٳx\RG0H@S8}X,YF0Y&jߪi։tث>sfxFFq7A\Ħ^A66WPIɍ0ݖxJ0ug$Q(nB#Orx
%>	eMD޿sKhVMJn1eei<*gFGTpG 4 $̡ v>` jCZX@%'M$o[b؂L2~0߭HA!nOF}"OFJeQm&OL=#j|Qk9Vf2v0]Ys϶14ےFǸb?!6|25j%%7 Z'h#oB[^Z l#D
Q?FLdd3;ؤ6MTRO>mo4qJjNrvx;0ܳu,8aGAsGù7skH_%qtąuORAe
֜]9Xʍ&9?y)9<)@:vK2[Ъ(-Mp>z߽9;=}N؀7A@X''xۚ)Qiޙev<O`41zH]"
`Moa=M+`G;Q݆~oTT5^T@R&*UG+-9EV\GFpxf.+^|PڨiSlF݅jINLgA4R֗Gn#Y֠3ܒw-NmVM!X,Lf)!hmlى]KRNs8Cm!Jg58#w4ТPG7@bfu5Twx:~0AL `YO-2~Ԗw	߯	G%#І9wmK8#2yvtL:C8nWܮHQqܬֱؒ(Me7țM^b0*UerivZB$Z݊]zKW&,S|ۥ5&bWd\ui$%[/`R;x3RJ1/gctQL?{ig2
Vsx*t)Ѷɘ
IJbkkħ0Y.O@uq=lg㈶|޼J.c­3۷snj6U*(~)hx_6gDt<y	Æs xCV\rNͳ椞l;{[ {E0]e$_ihόYUU8^㌆~B l	t/OT嬠顎11Bjs
[LřڍiY
|iZ
h3F#bbj %CȚkd$Oe/i*TI`/憆 S1!fZr,0D~!(FNz2#SWW\+(ڡb)\dhL]c.@۾qx1`kk+8j֎V5sμbI@àĥ/є:vc~M/*k9'9|6~wm^rxqN@٧۰ }vçb80ƦYSB	rTMnOzH9Oj®<'d(?sn-kHLhVҎŰV-kIn(tZs<Fhۤ+5\pށާӻ$4, :@?8]-r}omy5]zُh)Ƶ9$0'+Zc	M:4tj,/]/2^$iWWY,ĳ4\؇k34ZEn9zi"
_¤A=S M)nI S u悱pi&YzG]ds@	dV(Km"-S@<|>옋)*08K 
!rFJ|'7P$*Jg!ltƙlAbn乾Pi!"sYM2VY;<PkhyQ(lak]5m9Zc&-  0,gg<\ܜGzAXwg6_:ՕC?LN!vftmᇖ@72PF	خc=rqT=l~N%">"ۃٯCżm_+֤FmH*޺YYŒ4TgS5f1Hڧ*7"\qꐻ8Ϋ|^EN/Plsڗo*x/Va[׋h0гۨPShB!^K_Qccƕ(?S4Nܾ'%<yaQĸn  IkBH*?SjH3yc|)^Ր6	_Z]@҇,5ti$-JPx{|suOO /ƖQ
}e}ֶؖ45dXoTVЙ'p:8u~zWXYi^nL<
_(#
a%{[ϟ519pOesnV
/@֯{>V\
RRe#oC`%-KE#t¸k	^ fC,Т7wAF/wWA	LȞ}fB,2 3{'`D$ʴh!o2ZWa/_nK΁9d^phqט_dxSlnUH1օ\ %*}W+cRsNaJAMfo.!mHa7! SgҲ2}%9G%$>4oՉ%e}G/(X1b/YCnEG|0݀/_Ǽa5w3QWg{>Vb;)P'}j?Rv;Y_鸢WNB3qBJt`rܺV!*anBGyF	Q)F;1tǢ.+
˲NGD➋$Jbk7V#e܋2Ve8UipF5oXך袎l9B][8/k	<XSORR+[Kڬ;&ӎiH[hGeW =fr\yX!BY[KG[~6h="UO?PM&o|>f&{)tg/7t$BƯX4#wzY(RI0A$fZ
7M؁&aUM8uvodI.i|q"oi*`0X_/OW4C$ؤ%^t߀|^v;4WS$]țӫSg`:Z-boYFHXb/i)KtiNPq6\u+`h4կi]s؆АL.}m_~1_X	cuj>Z8(½CJ9f
yh
SQ!㏆0ֶBYmZ2)I6ziOq%4J,yXͧxl?0q/l^(dk=
O]c=`ێC_h8V7ͯ45˷g8ZsH{٫ƴ9UovYO9Lc~`{a!t`+᨟.ԑ7(uc׆& D-{i`!$l<|&*D^pFO"ǽRct;.f<b.,&4y,-
ʟTp2w~;䵉)O1a>ZkD#,jnhi[)BpfSĥkE[XɜoKd7?ŭXKka W^߁~'xgf։6Q	pF*+R5d-蓌SF^y^B CG51U'"	QsT+Ơ2l~q[舫ԋ:zN5Ȼ:^cqVk_?C4&9HWU9L?KWdKBbȐ*=3{r>t9ϱ=Bْ$"?E~/՛Q*fieԦꁆpó R}E-HRSXAXic4eq.7Бu7	ݬvrcș/|pzߑqO/;~!gxZK[}|)#g>$Ɂp$k{^ց8)ˣT1|8dEv%(.n\0%\WVƟAD/]?s)4Rqv*t6-SȊK6*eNVɝ(^lAY)c^)E5eΐ_p|YbvJQ(ؖg|(An,Uq:[mH֥5Q휒ĉ^Osxe&טk>C:DO?xԌ@0rXOH3ޛ_xL20*]!|RSa9}r0O!߆r616/wCiGK8Jo}hya'?Z|FS>w#R	xɦ	lk˂TȜ"OE+jIfsI.yOoVǱH$@ѥs1cj%	魴h(v/̟_1!^ӲSRگ*ϸkʐN٠y4%MҾ^ 	^*ْ6
InAz3(iaM T7z+V HumBE:Wk@5fjKf*U~Tr-<G )44]=hMd ,9ZvVLt]T5 UfkBH%;bRL@CH'8\RV@(Y
|`;)"1!E4Tm>\N@KN/MF#E?T\Sm?LUhA1wuU*6u(m>[|`)&!yݧ8ߺnwLL؊Ya6,CDxƄ92fE%:9=>+~W%ՊC-fnQKsaw'-z=,^*{d-,=EĬڠ%k[Ȭ?.A-uQ0h:B<zwdV"둁Ǳě(4ȦT$r$k]дMPE~͆?[S*gMsiBEv'fzKA,޺j{7.O'52^"~㷑%uT^;%ogч}
Nb!^ wKm銟7%dy$Ƹz7*^RM
K0%W,iJ^Ƭo޴]5`2~D=%$E&.J*+2/XK=s^utλFJӇZXO(UF8m0Qӏ%QUc<>?&eEuGi<Gsil AܣSKKu@T395kְ,_>S)lD1S*Zi}E)qµ&s}8Os8[_1 aH5/^PYmMN!yjiѶ&WW[HVA{$c&$mZlim5A ])+lm'dX$h]صO-\iZ2B8vA{<`+#].3X&	7ؚouh۩96F||[{kZ9He0ZTw˯}"I9]jD	w z9k*VVzD\~J{`&OulazjcQ(x!j>[I'xufmM4B9҅O:ʊUSQOK˖.4O6Q::3 U.MbVmPjZqZY7^6C83-CHKSsxAJdk8ꖜmZQ3$OzӧGL9 @PzjKC&5O!u=9JtO.3sz)A*iv.gjM޼'os67%We&oZyצlcG8(d0@a85)ntEBGdR#53~Mo'kiF+L:yfU!  ;n[ŊĐzGIeO!7;:u&`&M}bN&MU [.+FO'4UcYo*/{-X݊|^[֪NMM(`YNYbQT㤙yG^Ѿ#Z-q߉wʹ/,UݕЄU[Q^ӽywqrj+@cszYK9SQJ!k1,1({64'{h6#b+(	"&uF^/"x<ya j5y"](ƼQXVmT%ݱ[(
h^:4d>aex7c &wvle|)ձ1?5g+RMM׼lxU*%cPSpZ-yWϱFQEզѽFe4X[h[.~uEL[5ğiM\e-iI]W^à+*ob_$nCu{DbiջZlu."eIk(--YNaoy+0Cvq
q	9ߴAH޵BP<D)'k+<5o8IKvuȄɛUie~KH4xCc9px񙑮,(:r"'`*Bcl[#	Lln/OQ>,+3+ft'k4'KfaqmU܆ꨍ! UdG8gxu/S؇6.H"44&-z⡄m
%U/lu\NCHrvwqbdѱmfɌM8f%.Hq5'8:(܇GRnN:lF[QKf5GB%xr]#FkƗ	29@ɼhj эZiD+dEan4&Ų9NFxĨiyy}⇃Oe)iyZg֙L}6|Ck.3X}RJsML̦-ӄ⋼Ոq][%Ĩ/ۣA'[R9Blj67]鸢5+R[,)q	v-'$WǬila,XDj@ e=z\ r 8{*ϏoJ]}o9*Xٖ\ÖE@)ȳuW<5wHsoA֑,8*ޝ؍דi4P-iqM*W0GR%/҅o3"BKAԭ @j[)X4]<){UQo>尷::Pʔ#HEaA~.Mޒ~ @e%
>'~ vPR}Bl׻ZHR+A/꯸^V>V^}k^1 
ԐߥXws*y9i-΅^]0ms6"H?&0A̝fKwaNU;\+^PYMȡw Un:<-jBJ%ےl\L1^ڞ]tƺ3gZ+V1.Ǒmeva.Y^utEV=DhjuE]GPa+Bp0\aJHxc DP@,RRyw'@X3!'B) ,a@XU
<w2l?6,1a#{@O;?oͧeS~]O1뙏*ypX' tJ32&~?w89-3:Q_qK{~bOON<`/4;mzczqOiY|{=<Wn>E-~ang4 G`ޟX>֥=](R'w)j{Kv{'y\ۡ4󓬜>'S|x	fw  ~}뎭z'7i3Zb.5uKEцgZX}m'ce-t2#-,fIL:0qxR]9{!YOZŖŐ||30wN&CW.8PAw'VtN궷ըZqn1jX*rk;ٗye_{G5wq;M89R9vkIԔ"9X&XL#`Fx珑7~$p_bmRe:zRIP߇x>X:|6a4fFvR:PnYj)ֺ"iVCF뼢*^[;5t/ɖǘ׍OOA~ʮD	Qn5଴%};ʎ~3i]^j?+exqԲaJ+o}*B2'A)x@_aП e<V0Xb$::<(_J)CkfѷoK$"~	,h@'Ѡ>2~6Z"AB"Y:@iځlr.`?tDѢ>[,4/l=n_RM+*e*~kr*` s3lv?4p\<nmfU3Ru5\9eZoTSg)8Ad:E*g:gԡ&``\DzG\=(hMT#4yRt#x[wna|:Ϝnt	251p!SQ\4h	25r:O{y$@4r]':1PA,-J8w)>2}
B>6rfUIh/6?R:ag6:*ܱadDJv)6VM3]`vo`'7z?OA^oPr{XOv2~:=ڍz:Rސ.G?5Q5&@m-ӌ4Ej-z`Zys[֖vYF*T0@yV~j{B&CF}wE-o\}<ꗪї'Z5$p[ lvy[I;xmxO0
TXOlm͛F%VN9XM=5IP7$m^>$}
BIKB]Od]ad&=תTzĔ.m@QYM+W:	֏r+^`I6}(?,UYUEc tU|,֮jhQ@5[-ǉגWf.,~>@%JM%k7ul'UX 1SX"|@s.+%lRߝw*+2uWO)3%A&	:%i&<s`2NqsOt9Gg`O9e:7+)"jGD
lwρm(Sț萦JfP`OP~l쉄}],Z"<瀳[sa*pЬPtl8V%Js̈́46|!hA"q^&:ԡq*x"6RV=D9qEao;CPX_mvK!QGĳ*1X;<Q$W1F_4K	{fkSd}eѵT)YHz1}#zpf&Ԭ:&
&zbM%9F4?¨ V)'q`pyA߾[ul()*= S+pB_K^6PX^yA8Y!)U?7$ Q`[=,T48K*	ģ!S=.8nV:m$BϦ^*:kN͂i!.T3s,û$[/ (:5*߹6F:%zeB[:`(b&͆&Y6`Veu)S4Sꭖ챼h#!K)WX_o+^u:qzkZ᷇E0gD]- U{3?_gvi;b=窡yiF8%E<z|SoAxs|sz~O yGWzޅ7#R&RxVKoE,"Bx	GPdဂ9`%68vdzgjwt=l.| REgvg5 U_}<mӟ~|qP]^+Yl3<3VOL]X_[6aw~mp0lA("$@.#|UHe KPFxaKP+cX$} -+@Y 4R>dPgY"Bc!͔Z$îᓜ,?Di`$g& "!҂DtQ,I1<'7GQeZeZR2d,خւ$NR=ucQ1q##qna!4K)lFyD%pO96lК{la}dַS	I2W
/W_Oy}UOꜭjc>_}<6ֵխŕׯEʔnJapwz21fӛ|wosKXƽY ue_P$V[ǯa,V+:R*Ҷ2Rԛ.V^R7sŜ_f˺B.yKd"qV0V9_Q1Sg@vEGGXͰy❪~xR+ㄚ6)'IrTJ{2,6DP|#2>v](n6؝$J>$rO<pbZt5RU +YGr頌$N*3BOEq֜겈?b|>L*tn3!mUmĦPV$kJ7Jj`چ	+"[}by4	ކE
͸?g)QѵZ?}ň[2rT<sP_1S`Q"uc|2ZhA&C4A@+iYTw&y7lyKeC>ݥEufG37A+G+9Z1A_s,eB?D`=Zjl|kv\H{mo-+jҰǽCgfqD\u 4ڑltx}=4m̤+?0LI
1ճ!};	m*K];{i:~׿fJ3{3bN嚺o{su~#KS*Vx<Sjv;'dsx;kv*<a|A[jXޯ(nV_87E2M)(=O}q ]9Z5| pˤ1wvssFJ3M>g'ӹ63 1g(x;Y-L;Md X08*xSAkAf+66	-HTmhI($1t$LfYM<Ceӛų1GA7'6	Taayߛ{muB߇^:є޾bj&=+եJ^	A®pl*%m֩g:Gz/Lb`N),Ku}A_Ѥo]6uqiEǓI4,i?7#{RdXwVT\^\ĎԙOaU?++\bt$:_̠}WpE
Wr˴iA̫A·Eif7G*6_`tt, Nޞjr P>+OpӆZSSKbrquaߘ8?țM~g5Ɓn22ܤ'??B(RF2ga|.+'$J	/i.ÐU˅(wxo/"㷹sAD{6$}w	(sh`8KcSp=/oK:u~I=cx]PJCAng"iE,pLb2{ً"bSڈ]
JOvrZ,;1浧f=ݛ44z!]-t#i0&d-b#[!
X?G_8v`_`Lk=n&}ֺir8V :Ֆ}1s!f
W#C/YQ68>]:l
SXKZ@+j[v05coos
Kx;&*<a|A[jXޯ(nV_87E2M)(=O}q ]9Z5| pˤ1fsIG'Q"1/;*p^{6J3M>g'xv&;\lMTE",xkv-L7&'pNZmYJ2R3RRRJJ2SJ3|]&;JC u+WHJUHHKOMRRp(H,JU,v[
]A2pAgIL̩ye2I2LWlgvA8cğ"H
HnQHρ?}sF7 fhxa|?Jm(Ũ>m
Ucf$ma2d1/fb`̴yL&[ NxU_L[Uh8`iHdY,-a?$r{Z.{g79O|ƣfq15Q|'GɩoBL9ʟj=hK|~wo|.\<W62uaO~-s<g]zg?;BTe$aI'IVca겚q$]L{^EeXWqLNdV~QҲ2KR4դ,!:f?l`#'I0R9EI63l9Sn-VSE2xXlx@F31|6"]CqQJ-zw޽rZ
u߂ȗZTN1bȪDpN?鷠b)A9eN89=ݰG:4K  ƎKMrxo߼{^6GmX,whl?2AO|5m7<5K'o"/DvWqcv"n+8/~LqPΌ[x鞒N!x]83bUVy#+]t2"cIbH5eM1fb1/j~Al
j!so5ϑH=-|	_aTC{HX[=y
#=+ >?eD=4VjURXB	8wcGeN|ko;Yv%i)Ypx]g{<3 kYj%j&NC}GmPY@/"_	E-hk -94s=Pc9b۲* פag?A55w'7S~uղZR_-*7KZaYFD!,JFӈ)p1cO(7̾uǓU|Q).RiwVC-I؇`EqQYXVeSIJr5EǏtk7Ӵ7|hO}NIz8&;(6bK{tqΉ?䬓TYBt1OV'A(eF>8+;[uoGxX]lTl61š@!dg(U;{{gnKV!yTiZJJTUTT੭BUH홙wm<ݙ̜3og6_-ڦs3tצwÚKaڗILsezitLV0)Ηa6(҉cVjx4yz<52urzLjt0ؔ~7h/9Ppv[,ʖAI]x5靑]kBVl#%E|i=b^.:_+m!m"sXPڋs6,pyt.*'f~"jDtrE4bjcG	[C.݅9
xʈаj԰-3LψRġV0$^\͗·;Ch+)_VTޏG{.Yy@y؀"ǐb	mVtp(Vc L86K OfLbOAQi==&T*7Vmy.(	އ7euQqe\;nIGJKjieNφBYcXRΗ#R'HRg5@JDja*%P(r5_8:Gmӌv뒬AK<,D42 9ox`-4O׬m-C~<4!zvi"ֺLX;{,I-,eIAk@(2Y&y1@V!O,TA4BS{HVKR4t8!e+%xueohdbg4C^}qvŘ0Ќeٍ/<'ǐŴ#lf]z,;DzQ(1g?Bm|O`%:~K%*t˻#[#;!,
;C`y+vLoB륷Շl$UCS6zdFUeuSxE1%Pe㨧Yw5G%PG%XT1?cb(+xbUN%֯yEK℀51;=ga%1-wO}wqjʙ	[r7jyTtRC)U;^@^ҶM9.ڌzBNMe|yY,+*[RS iLPl-13YUt5$k$ KɺG4*%۪WC FsL֘ekO͔lQ{5L,;jԨ}ʖ*Xn;bM{5⪦Q;3eKOK&)-[3_5>_ WwT.%Pk\B{5WZ.UM!1Edm׀ԈMEc=lDy.]{(Kܿҝ/{"dSdiGfO1S|5aBxSUZҝtR+=B,Y=S:J~RݸI*ŝhXmolؽW.dh=v$#sxmg#<OFf:=
2y"Sg^|`w6~As+3>
׵]d
jqocb-(TQ#/zddz:Em4;VM5삇=BX&0~l)ZΔ	5DJm!t$كkÃ6B˨9
9R&r>9>*t,G	Õ({1;K]fo,u"#@؆EhٽQ:NsykniUЀh]"ZNG>*	j0ú[tГ]2I ʓ}N+RMӋi}I#+/U"иZ1hy=_<|X`ǯnd/D-5^yE~soXN4HUUu݂.ϫe!.eR-!Џyn16?_;CbwwX~':%T_-:"gFP16.!r剏Ѫȴί̢]  5gl#4n|,Pg4r&N7%Hqyu_ROyT; qVo\j^ÊY=Ut|g\e@]yZKwMǖ'9'(!ϗY[/4u}tC @tV-Fuy%</ܔ<*$J\zeJ^5wT̞%~&Eexlj[i!65{+&͊H+M\ƂJR7P,$?S/DuuxHd'%x{&-LjjzyƻF:(*d))d)de+LO$<6jLvdԝ6][{էOpeb>ӈJ* VE xX{XT"G* JTP@!00
38ffްlg[oi=IE(E=vYfu0Xw9g~kkO˕n?iAhg?Q}E^5{L~`+жM|A|z4:JS (xRf1z_,T u:8~dNSXaLO'##~:a	0(rp, g )'Ae|t?1" &Х1Z$ Q.qFM1XM6M##"a>$dqDцɢiCĭD&}ӫtަw+b5ݚ<C(Obi֏>|	BT>%9|4 gtNyJfh3t.d4?7F\Q|ʨ`Q)-mώ2Z+GC_~I29y>;s-}+W7T	wRyCbyͅYmsh7M+Qc	CՔWOIkii:Y<OA<u,~ڰ:>Cʏ)4 yBZˬ.@P%	-"x,mCӫj	04RCs3m:Rj7;ֺhu8Ѵ4g	ֵՉsn!=[ڴ;ϛoXY$\Ly_I8h.U9fju" Ya8%`&1Cm)+1bFh|)ţ˪񴙪M^罤M{Mvҩ]rɦV#KV+pQkXē^X{QNO,zeRMv_pXW<:.W0͡4VhO"\߾U,&%\Чh-c4ciSSްCN
^687>K;].I9_)z5rs	QK!mꦉdT*MZZх7QQc"s{E-%
p^4?p(qk#qXM<:Y9:ov7$~xU{!T7[⨭n&'oٷS%j?=yz$җolm=37v?NPdqէ~rc?͐BӾJX'Pi%!ndObõG4{k
f/7.#ˤ3_"'zI_xypyiV|ɿV; ~[ U.8rm>ky75HbOѧI߽U/H/[O8^8ʻۋGnE#|t[殘 si/<@{*x]dg=!,gQpCtt1^X>~0\*"e?tD0s5*:)[p1{h­y/L9\|3ʘ4mofRBqN2ǚ" 3 =4ᐏLv#D?!_Vdu'/
9J=UUQ#l>L\'ZTtXPB࿎	P˂D}2ЃQ(Ky2֏9V
ٞ
K8j)zt0RT.b3˅fG&h˔i2Je:vi*\O"dh+/ly!|!q|/Leho!sMB`*pk9F ƻ)طVEM@wx5;>UJYw]vg(p=;>»F=d.5>e4ʃt1d5)EHtꊙT_gHaW9kޫ+Js2<Ʊ+32#$%vj/rf5;VH~SoN5,ǅPBJ8>&XlMW\f؏6Zxml` H`@3X`ɐ'u3cRkW6'ay<.[ {>t2!^$+d+ř)vcN$E ih9Ci`g$K:߼F5^ %/%X3e>Ly+r,E8|N
/appQ{~l
Kpj3V
!U^.Z-͜"׫d{3~cht(K 26
^"_r/լh=2WƱ,aU؈$'}#xU[񘱒Nlm/f؏[ _	șrY8FvGdsC_MaqSmlhipHY~P!Y6TgԚevdpH
CP('[|b4{s1x+AoRf}&ŴHEaTԖ7?;;cĵ)hR$M`=ȬM\W6$W^is0k5C,*jYKlJ2CJD<	^s˘xьU<f\B2lrPFGb-y7AOo+?*WD'됨T{-ޙ~N=rQeTf5hu]uhqLtH?u{WXmt]k6Hn/U}KߺNe*k~K S3:cZ'M<.0ڕ ?)BD<Nzڅ!Oz~vI*;Ddϟ7dz&W2o 9l'"~vvm*?ћzJ
zJIITǴ6qGǥ7ڧP|X(kg[GLHZԇ&Xy51:p"_+\}ºy ə<ys7jS)1$u![8'|)`5c-qA^'äg(Ob#&#2d*cV<Y#IKI$fE_
J1ZB+,BI$R怫.JzS"aЂ!S$P#IE_0ȗD?"B	`x{6Ŵ9@@RY&73ZMd `A{z*#v#EgmeʒWTQvzmF5Fsn3aocQ5j@v)&C6xk&L뙧d 47Ex;&MMftLxd& tx;c)LIuw3rogcd: vqox;E{ro5ycuX\KR/(c6WeGeT^q#TxzFct@qg# ;"2xV[lU!t-hCTKYʥ+n%"9;:;Υgy!j#x	S	`|@xR/s׋k#5bB\eZli6YOӨDyS7q-fq~Xؤ.f-尣9a_ k#nD\aRKrb@qMѶa/@?S!AxB=e[WwFLuaqFYӏb=I#AU&|`x\< @͂Ӯ4ƾZMw<>w ň:8f}l+q&_v'NS{wb-l$k4l{IoCbD!.IΜ8(r{kS5#5:;[[F1qbf+49!jۅZ]Bԝ@C"jXžOȐgekXi{ׄͅ fɺ QJT͝2g{҈6ݑزз<b8ά6nn;rȶʍc~9[+lΰꞏLP|c7()ǦY>aD:񨧡ҍU(în|gd<"'{jVOBqh`,X*倐I]R=CN2o"\9]VCN,YvD AXZ8z\K$qƭ!_
G~f*k͵2_ߧxnŃ9V@7tΫ%
·BY6}*OY IlY2wYmn%ߘBﮢr wFI͹!!}9~|/q
Z;W[}:Fzay6v5.g: /8<):W.Mጠ/+%6<??wgB9^T'N]`6膜(7`3UFGI}ZgZҕR'<Ye.Iu?`!,P	l@mb҇jDu5OxEzG;Ke%<OV;(y4-,]-^05vj?AH] t 8_E]$Ұn^8Թ
IWoʿ]|iQq~OݗVkuKz.ze~'2+8J;N:`WPn7_X=@)-o6-b*BknoN?bEjRll|;t=4j+7/P7O`)4PpiѠ	xާ/h}텕QQ&,ZCh-vdO")~,q- F>E(\MhJdNl*[{_(o?f"&>%3da"1bZ:Yo&owFsx8 5x44> +4LmEXTERN_C_END
(0,Gx}kA%z9 E|mǙb@!'~TĹ`*FJ"pv~Vk;S0Bl>qǳ[l2ޱ+~}{ƯN!jhX#pXߺc#4O@8R:n!xwpk2P~ĩM٠)`'xa O
0iAhbSkoۓ"/%r@`WX۝kO?ܿ)O	Q}r@7	9whA(:v/ Hڹ5#/2hhI3ZsUNh(qDZ3-in"!onJ܀;)E*2Q 8e6uAΔRe{u1D/~ݦҙ^K;GfJzZ/Dp_",xƱ1:uo03 zVD$x}SMHTQ:S3Ci?^MK#lqFt{>/f}w?ЄU]\ E- ZIr7ww}r|ZdC1y(qD5nʔ7:bv|t3ɱïw2*N($QDG0q̌K:C!~TdO#갢%6TQ56X~ۣXJ2F	iRu2$UԑF>XXrhcXV1]MҥƥъzRԶ\OUx~cp=!Dxp0&aS&M*	}:(kl3A$(X2|aD[w{n`"M'ޘNYŪqx*:1[H:(K_*=ڗ"E6ymĥj[+q=]s׾n/`-PEMU5WcV!Fd 4D'ًnI	A˞՗6m?1*(,
tuY MH*Q'4*v)~N.JqŧIh楟4E-cUA1[:Ȣ4{WA~&A%|&p*-\?`@?=|TR5Д8kPl$dcJŧˉTb"Rمm3q~[vGb)Oh&xyLTW)( iŀa@$
bjC)UZKZyu[5Zވ-LQ$nXZlEJ!jyФs︝za_EߒLJX	9b^TzQ-bilMtsr?hbD!To˔K^ѱGJ<wDN\Դ×Y(Xp0k0#f4CdQ|``ѫulhL}!{B}{Ѿ0frV$,#ǝ=O3_f#Y̬491'EN֒ZJyw=XMn9mI,g&-/IY#ɥ^VH>;u"^YH|> Bm~}O.c[7<e<eۮhٍxDj90ߊfn"~	P%aw<;>?\)cՏ:՞L%SۡDeA>κ_m,ɩRnf~AnN<BIrz;l"MVi7I/-YMNEsg$NLx|X&7weLMHKsȫb
1PNFɻYk;+*ہΎVPlɡ~?eO}չ>:⺼GrcDo̞xNuЎ(']qZC<`&pf_']ꏃ>m<9B{Q4Ӟ>S1IefHɔ
czKb@=n_7|pJ$:.Ҩl6@h-#cQ٫2pԮ5 0oе1&?h;Gʜ`g>Is\;kgoN%Y"c=.bqT9$% m˒y26;b+1֓M~
-Q?"gqxa0(#Wn$V9/@^{+1ϕ#Z@1[Y)Ar-ۉs92)U"<X??5ڏє^<)8@:+sIM_{L*W*jH#xF-$uwI3O3&AY4T§*2eJJzGr$_Ҁ?z[.C9oB]remD񼊺^f4E&:lT:1o3 *x}PuÀJDɃ

N6Pr-qcr/i'qIG7At=G]Bəh>E-{y|?weu^ӸU|d^ʱs+9яqٹFnɆ\1wӛfkʷbXt*dX`oE )v;lg
r!E9*_FiQEXh QB*~x/M|yB菰\QLg!ʝXYp±ᐴ/pHV\)-;|&)ır+Ig]GLrѦXe&Mi{!躰ڵؽd=#9pkqfy/_!'g÷g{h0*-4x5aV/lca!>^?T[da {tƽǝ^
vȭ-8$`iRov|C,xd8s8Q!?!udeZ[v%X!U8dnR׷~?ҨuZv"mNCcɿnk%礦.ԪS'HXIGf/nSzg˽%]!im7(u7=|)=r|u_+fɱ |y&?R24u\ɜ_N_]xINzv7Sw>l/&gN}Du溺|J9uVCJρPlRr1^/c؆FhS"êKs%_ dӍ]8dMoa2kpH46C!vȿ {+)]?D\^՚M?}QR;w	"fyx0<4b'\U~ZB?)/~ 
wDzq#}ivo0
UD§ebp}GR:N&Z̞1ˈ
)EcI[tr<&Pkrp
Ŋخϒ(ǋج$X='nSxp{1b(MG	22 Zy\fP)^ːsA7sp&)Q1<FgrJe5z5ԉwki:|+㊙8Yi>L.h_Dz(B+!(aTpDFzG%LAK(sȡh0sp/Mv>:F~ǝAeM
N4^E}x7Νjju'{tgk90;i=q.K!ڽC
x-kL^ `8=avՅ;'rC3dD.[xIr]>Cz!ƬAvc8.{`cPM@[O |B\x$ Sb>Jp&dn=3x͘kPe¸	o$c%$."qFuYppwMFa2a7\cHTB'} l&4dVH.Է{s\lw']РѴUovėH֫ҋ2ӤN/%ڠ5֜H̓JMzQW۵Q["L`(5W
plʃ ngEʭ*G61P8^ qm>5p	O:J0vt-Q: 	$U1Pvn2
^-f)N@E0)n,Nd*v%YfVړgf,ũ	̜<5sh֕f3+Y`"5jsc*d*3-_Aѻːc%yeEP"u%KF-oCbc]*.֜>Q%<`/9V롼Aî``F0]wBC!܏̨h] ]xZV
jJ_ܬkn,v}ev'q	fֽy\M8f[of';C\H_#?.8Ϧ/
BrfPn󓷌oclPʑ}B+Gs_
X68%Hf[_8ǁ`ie	'8xm(<:\{e*?mOȇ7!n!geuEg~XcYjsgg5fy8UG.4*Rȇcx3]klK\h7rc"~ƿXB*(l=qn. T!Y5DHALZ3ɉ{ϐ02Co8ZC=\<IIJ2@GRBp#	>BaH"
`MtXڵkd9A|VBzi*+mØbN}"rΊH²ɞP򫻨]2ⳛ*PJ 4e:uTW#}ZH"أV5K4S؂?:lhYmGXGmI5Qdܬ/G~f,+)#15#()賓̌yjE9i߾7EJK㣝T&E̎ŌT9ad%RF2S_YnBxOA(NM"G>l"Tb%j)P%F))P^D=I<9xABr$ 	1($e3f~{k~m	|%s{a~g&).JK<`hYN5Ig:*+RFUo`w(%5do/z#z&N;IYζCLDX ՎD^1VɆm*SwMG3|DD<p7!58}ɓd|CS
Th][`1kYʆI (oxkZg3lj䱰c* S(F?_JfU먚Ux0e_j:J.n,iɽF7(W5f	7z=ԙpR*prOî$NI^9w1]v,ގϼU@)B>̵K򒗯/!<c
/Yɣ|1t6?;a!rҔcJӉЌӿ򉄔i :츥,Yf.))fp=Tn1b θBifGfn%B[ m]hxk;> VǢl٬o 
4x{m\'nSͽYF[m7i)x4mB7[} :<\Dx4"كRs+RS&"nZRZWPRTXK2RsJSRRKstRRrR&u2{_]ϭdTfr=9tM ܛmN <*xuۗK3h |7	f$xTkI]g$%ƈF]#1(1Tz̔jk&^dP!C_y=FXX(.xď'A|՝q{м{{߳C2Sv24\T96UD$Yv%AօV3Np

p?38V|De8X,B5"4Yބ.;}뇙
[{<<(ϻP-SӘ?1r[߳nGNr^!KQK3YUYxegQ3+GWǜѾN[	iDV>Y^]d;Lh,v{©ݒT5LPh4p\s!vn,W+=ߴSVR
TL$&rϛ-@sAԅD̿9F!v:0BI%A#N.o)eK![!״ٛBzf1Lp1-/]FIfqkZ4)yV4W S~FKHQ+גlIu!mi)Wl0Qġ+k E'J#4ѰE"y@?egJJ#g_ t(Υ x#n'ͯv'ͯѓ41mg TI?υX*><|_ܜ؄f۰ʌ)O(k.	O;ᚽBH[=`ۨ'E>/_&*}j
dpMlzBXZb] InR^EWL	U
ٓa6aq~SQhxToGR1.Ƞ҆T$`!~F65-\*Yywf=;v@BﰷV8Tq@\@KRV}owMzm~|7{3,>khٺ`W.2B˕+C5
~-H	&o߼oBhs&݀mrO,<25<hx'~F-BY(,!nȪE] a_ B]I8QJ05%dQjfm!Bf/r*!K_FKO1xcu]bQEGN_Ke1t2xB/`rڞːmDYbhuC
[6h[hV>kR<k]߉cFZ蠻<!LS)I +d[Z1HoS5pst .L}X^X<Odwf
N庘GVZ͸-c&*um76Vd{w;2A	ѳ)gF6OQ {|[לEN:-5]+ܢKS(Û'1h\^Pr8~y]Z)<IUP	  p{\m&TýsQ尓w8OPL+no-XgׁZ \PϥO?ovf9GN%$ygRVz׸M;$ѿ+<4یЭ<ğ+N_*_咚F̵j5A;05SlTf+Tb]'͎)_m>XB>#L$+g9"|/3^xfxfְrzAc,c%1: L.x6m4dKN۝\*}OdTnUqebbWݾ=#}1= *>}B u#9xkfְqn5l.%֓$1gt5}E=R̬~%>][?Av. X&T|xTkAgM*5d4ւBشT~Aq;Inf73M+"[気'I]U<+R$mӃPo>~~7o?GVˎcG+/bHtaQl6Ō]Q">sy#N:8܁[%FjH.Σ*lMհƇgQVbj$ۤyCEԳYܹ[O/u&uGxۨ%盔<HZZ
ѲxܲpTW

܇XPb85A]Z,Ϩ)a%t1x;s5ߤ0h-q Nr^q&3C
,0,!Ejվl6)II0Awo%v@Eч(u:u(ƲE0W^xz9̮63+2YCNQLgP:O#u=	="H	w鉜f	sbkYMԌ+DbX28`~3P@멧^h}`ךNzOpY0Ǹ0w%{sURRgm#;1BS6M}˸P?Z3r)G|h|j]=Ҧ_]LVS*c*kpNtY-w;ߩ%($:xvI*Uf,^uq|:
Iɉũ
%1O|hyU#BfBReIKltF͹ug[50~Y2: 'x<ksȑ+UY[+ɏs|B $C!H+$,`d_w0xiXZ{z===|u13`%{vw<`=<NY?OqtD)Y<aي3cz|s>$∽=}^.ݱ(Xrld,7aF0]hȸ8yp 6mdnCq4~VYӫWwww.|'Wۦ5t ZM)K w Q;RC	s	wYD%ADcƋM84KyUxHknĞpl\ۓt®Nla13GÞ=GCvΌd{ǌ`u
 Ʌ+$,bAR^<XZ%gx˓V6<Y)J5}D s3zXN٫#b/g2|гH.2O`WI|
J2M|ݺ<ZgngJqe$w7ec_=3o|aHIA䅹LY?f	  <gL8с>F5&2yI*a(&E{Cݤ8+KyC</N%ݮgnZ`8JEp.*扛`94m1#8Ŝ];&QɓB.X `kC&7WwB !.g? `+6w~rK炿9Yq/A};<N/b>ͼM|b6pgkL}a?7gHn1o&Ǉg߁4g}|OfǷHϽp)o9	<BҌ-f<nj=r/3fG&K!:vA m:mNm$oE*A
<|FT'v[owªvnr+WS{͢Tnk*:̺r	~m*=b&PmX
(:w[I^٠)@d_Snp:MRE
$"}=	QqlG.mb?	cBộKlqȚ|[[ފ^s+Tl'lD	d^Z )E
A|1i$9l?~x[uCd5v^geZZzAO𹢸 5[aQBJ7ɺO#XQ BVj!@d
{	xفQᘶ<j.wקl\ZI
M5Gh@PoRssv+r/?Kȫ@`,ð73m l$uO#Taܸ)g /9ǋBF
(R|Khʡ-l+%<D\T$Ģ`Hq=Pf9e#.2q`;ƌIM|"E>\`B	2%WS{PH`/LdRr8]A%qH,@A_6w)Ϩ)=t@dV)I$	AE΍i>.NᨩX°_oχ NXf?"XI9
%Mn*H
`[q|/~؇2-32?!}>)$8
wh_
B}Y|y1J,OKZI'bv%P6(z.pV@8평fkEHXc9L7@I4jF2Vuzr勪1B45<DL)_VkSK)LXi
BO%h])auk|:fap3TWվxte'7YAd</Ft?~`[x'1debəbqZ&z:5CW2/aJFeu|Lgָ Xlt&c{xܭqlQ)կ9pt2'2om=M<b(69Qu{8)ԂĊ@vu}9@ܔ{N޴k}cpeTlͻZGO[߶m0vǟG>w?xS@O+РV ̴$oR(Sڐ/PyyJE^#4@- kᶔN0IkI6e@u=lmԹk,mH0X-:Uro':LJ@HÔV^XCklsOZ:!+n_YÞi]U$4д}\W]):; hӸ &׶::HnZ\^ߚ9&$ y/7@槽Qa
5@D돜J`򰊑kQwA{ƤͮH5bqmM[[z,T?cϚ%& Ї)\?Q-G~0HǣXM "	z(ZwI{h0hơ #)Dђb	ﴍVB[Gu8f|)bʬ@Mz>Y7Jg ݟ)YpUZv#RwYFhؿQ<wk >.",́*8^y R f%L7vPaN50U*L`["Ho-u>W2;-m_"=L'M	IP˥meYî62Q=IMJRUDɲdʠY'HHPPMFPkl`qc)BM5X/ૄh|l9ꃛj:<0 uA1@_' dwBc&n:%7$>~|'zs%|YAzrpeC,Å∶8Jz`3_ Hj\.Dp.jh:2.#i!Bd*8YojZC~^Z(˅PD+	".b4O_ `C+TRq,'ൃ9WhqJ#.yY&Nಆ9>0m!Kt^QE
N&);XʂL|=ˁ*W[U@WnVSWI\WTGS:68ɮ	A)$@_Pko57m+Wg>)19]Ǣ^ױl{ۉ!	ad )fi8Zi)GC&vGx8t؎+0І\65QIt%i(i>>ǎq\m֡ 	Wޡۅ	c	%'vGm*/Ľöqʁaw@:"&ų/TJy`7QO.}^y[ U()8Kҡu>b^ѕ-̉|΂u!(&贾CVvH=ُ:M}硻Ly?N}6\
Dk1K`<-(h_anaS6A09H5PqY/ZxLQE-!5]xA̽./sŽ1+'Ŝ
[R0eJkCA<,
#K64'MS3z?$XBJ/snп=-ꇾMGGF}|z%4^:Mq%AvT,\Шg{ԈD9È%:*+TZJa~Az'|ʎARσ}\o^{OV`P3pis$njۭcWR8rDyA	*EI[!m$x"bA1UC.e▼<h-jj>ۗn~5Mx)nj:Ftr7 HRܜsu*\-")NQCm*-rMI{Xlѩ7Lh%58
&YC>C"i.NЊi+f**-rDItVޖ@+OBUaMs}<im2BcypU]\z@[qA_oK(q-F7/dEɦ+Ns̐1 D5 \Sg"{&v`!i_CG7D< ^ف9ivo <w|IVz@]$bcTԮ'r%7[
&*nFוmˋ٨Фr]Prp*UUU_7bVl0"OyzW,`=Z~1j.a؇	JMvO*nh(ϴ--OCh\r34_4jjS"vԺၡyt}xXkM) 'zUo6CK"w#=p_K?wʌqq=W"QT
y,@ML-8_q^)%+\rq1:{EDZhnzJl"* /5ߊ9Eć,Ă/9<HT铋_*",~r-O+^O O!ǓWYWM"vYEy*3{
VGk_8lwdv*	NcܓƵܣPՇ'sOOQzzIy5.A^S}Km,0P@%yr;Zs6̲ˬ-mawbJ:i}v\Wקa8DBֶjP'4<f}Afg_/`sQgU4bnIXŉQZ9bX)pa@,ه!#a` CutSiDEj\3z{[]ÂFXނ:hZ	?XdGCel*~!8H:k&Ck{Y$PkÓ?@=-x._ЋqAuGlUT[MXHj*]}$,bPtGeW
1_QJT;<GO,dD!6179օ+Xv6љo5{M7=0}1QAb;D`ڟ}{֎dwLlM D^F)>qfM҃]/(^H\1VJK7el}i83{سM6au \̱&E+hu#{oj.{:Tjm-'q¿ZϞF~	薣S/pBJӺp\R8Ey+Sj(kH_eshjg0]Mfg`6J5#/.گtz)A/OhZd:.~SKɥboy~Ԯ袸5. jdLǍ#ugJ%}Fq_
zx۷q	LY}6'00o tEx۷:	LY}6'00oЇ)isQɜQ& 7BTxۻqV	L00ONf|&d4)RR.%
%z\
Z@P`h6# H:>^K+87ęe ]xXnQd6ju"h-l)XIc]1&l,f]Z\ΖJQЛ+
	Z(z^O(9gZ-q93wΙ3g??on/8,&唑(,Y)dadYu??{{Nc)=cC19?}?此241\xcFþ pI9]3lʽ ^ 3gʦaK˾򪧩jOȓ)Yf@0GNMcP'.=.sB6aA_a!-63?&THGeZ+a.5 ؐ!h;4f#^yOژI,&s*P/Ȧqp盰E3&4",haj8dÓib9d2:gK6)!93dsu+)YU\-BTĬR#}sa 7,6g`	4[$̞-п}#O$K_s3rB	ѹ;gt]  pYLakctF\H2	!NY{D[oC$р3:ċv0'ΎZ9eă3<Bwhăsz"}>TL!YFך/ x,jVYC'}Cw+huE	ʑBK1ƙA*=ZIKm[Jjl"3w^d:l4!)--C;/̺~FL,9)R0}̇1',
n򰬷SH,5ɓ*-6]UDj0ׁPmDثGAPL0K")0Nh]D2jri	nk@H|v&Ǯ_ӯl,Z]ڙQ"`~zQav %ҔtB|dPTPdπ"Tg)S[b6V{!Sk18b/`(nD+V	gѿuo0<m[ƺ17K2/oc4)Lk9P!ųXܒY1gw9|\^Nzm\(8,p2Rm<zUރE@		56d K#1Q~>#hfDj4dS(,HPd!p[uN(Յ\!f%qqb@TF1e `w&}~n-_vl\1mܫ¶t/#%`S6-bXT9L`?ѝ.]M,.iaapUϗ9!)dېa"*QJ)e-b׉'ϗ ,qy"\BdN2UTιni0@(1QHH0 F3o~мZ>\2͚y.,t^1z+<ߝ,ΈC82SeR{O9? p_& w*F@	ms{%8,E|}zf,̏؛MFGʭ5U96֥#/Xw <Pچ;rYʔ
#!.b0	ԑ%eGN><?	ρXJ(}:ҷdXvly {PyumcH2T
KKчK]0쾅ƦM5NWЌao5_@= dF3ڕMEW	:n鿡60
!7;jƃ'+X	 uyZ'X+*ٺWZގR~"WoHMLk={7bUc|:><u b!aokRǪBhBWT%h`8"*߈w}$bbset&~r*q :Uj(EȂF,<TYiUheAYDPc>b1ٔ%+F8=mCa@Ѫs"Vg9TS,r;RuU 5M4֗_tAU*3:K#ow~W^Ab*a3a@p,+**#mI`Wn>>nK>XnR#S˫ȱQ tM9LH\i:gNE#tRyc]ƟO@`x#[2w1YMѯo}dHҽ|'0x;qGC@_KK!+D!7?%U! 5$5E$XBAK83/9U*|<C}]\]#\C\]6U
 JH"x{q&J\ZZ\
Z
IEi
y%9U%y
i9/jS3K2R+87>5?33E,4]!'5,U4aF
P?}QOr7k;X\SVvq~AIf.9e9`'%dbGuKco@Hc34H \L }6qx۶qLr\ZZ\
Z
IEi
Ή
)%
%/jg+$秤*$tSRKRS*=⽂|㝋RB@e "
TZX\Sh[Źxw᪅T }0) vKOx۶
B
/jndCP͹KJ3J,K&W ZC'3E  N7Nxq*BqnJ|}^LX|3R
3JRȵ/QK[rRK2ʊ3R \T&(T5e`Z)hA%b[	3 S0AuVxi1V͓YOzOv1 P-x}O0pݍx6y7=`sT&0xZu#H@/'x f~ڷ>-Q@[7$ S IB8q!4M_<K NNi$.#`}7rqT"O ׃<pLEUOn
icTUU3$-7mvw!
8! c_/HSqdR2c0e)eЍ#F~Vr+ve#e+K9#F(zQR?N%v``YϰI+FvYR-4JjS2S>"zWd9HHVm-X]\7	~ߖڰxkZPms柚cP?"xn@5R&!͍bE-BhUҊ?T)z=]VɡJ_!XX_gOߍG8pJ>|	~ @Q@Fh{<DI lW@$yDo`Q!%Xp GI~+v/EВJߛ덍pqO82,;@b' |S#04 gz=xD	l18JFeg^XѬ4{w{6ٚvtP;6JHjM'LH[PAi>~-P4C$\u<\dmrPW<ZR6}{Q	lvz*뵧~V;R_oSk*pz+J	:]xi32GpInc--{c`LГ.evUhhkvfy&eubj8qtQ#<xVn@H$IJ4'$J Thcwmv*Tw0;pqllPh.xf<_7OZ`	;H!|@[PJ9,>CNd!2#;7gt8;E22/óIL 	󐣳jM/76=˂aՍ![a2UP gTBWqʄ$.킵{9>}1ӗã+KEcȩ&=zf<k!4;Zټ]Y>CISI4;#⟔?2^p|Rйv_tlcˠL3&iW*?SSB
Pg%Q:~́&[Ag:l]<Zcou*:4\bI/[GФXhO}j-nw;oNݠ~pl#t^Auf#FT<^0 $z)2Mjᱚ]!s#XTVBT2FeyF2gܧ1&}~$54$a-fz)
.xk(Y!s2l-ܢU /	x;<qt^R\ZZ\
Z
IEi
Eɩ
)yd&\[TM,P(-SR "-b
ĂТk,H_P*D\!/17"
?,r2RҊSK3RKZ}2R*SGg"
^aE%Eyy cBx9qtٙ%
E!X% qxNxn@Ł@CY^R@DZQpȩHyF<q$NE|v_d^Pg՟[{σ>y?MϷoUW;OLgDțaBg&Vd]V=ekL$b;`So=KȻ`9s+u`Bw-5$F!{ǔvj*ԜZ. ,4ĆцH	E&Ԓ%dCaDm7Ci>qp[-7&DydmPnvgYa-82.p2`g%2b--- u@c|TZfaYk@W'򫐁#FVn:MM۱v5ڭ׸G<@M?: RuxPp`F͌j"T9̪Tɍޜřɉ9q9%f$&OT3jJS3`i<W͉wC5W 雘;\݉?/$,yQu7n4Ԓɒ^9I9y)9 &+hHM·*r~ tB{2xTp`C+'dC}ͳ871mm- n.xTp`NҀ̜Ԣx-0xg|vo8 xVn6+JhуdF.EAHF&UlJNbtApސ(^6az	W~+\	npE)2+񀲘A24JoO4#=!B<FװPAm 9Nr@
RJ7m$^z$%+~wy o\K4MVlM&wnCTւk2\|b=R6 cN{!GչkA%#k[u\.K*3"}<F<ǗG2~xO'3qr?O0~?&ӛ /ue~I~ݸbO@;ArJ.UԲ@(
rB$7Ӳg)iINv䠨x0ڸa$,mBQtCIikJdUA
۟V9۰0hb}	 BebUa dhoCn}d{M+T.(k堿wH
RMŋhG{3nvi \A[wЮQ陑ծXς3*Mh)d PڄB^=LȔK4]fjK@Jg!e~د1H* nSa"[ikAa 6%f!C*SWHF/'_}*[0N:r̄UxKRwLXmfܡܪ^v\]nåH\v3fX<6OS]Gb_̱kGm
gt==8`4Iq*G1B-t 8LwϖwǬh@pws!ڶGMqz3r:Ņ4[iBg,m:GK^)'R7cNm>[]it!0:<N(Ϥvs&ΜoKg|̠μθ}BuGb~x['uKz{jQQ~Q|dVf߲oe	Ol)ـ#[RiII~dC.%
 G%'3%ur"_&, :t	^x['Rj^VʂY' $'N6RSC< H!ȩ,,ZW$$%dNOYW o;qXx%$A%'2:X Uyx%Bzf#a7g N4cCxk Ae03g JX\dxk9$Ae030N>)8,3̂"Ēx~.1dԲԼ7T
Ɵmyw \'5x[)5Kj^Yo2&'e&O6T|s|Nn<4WB zx[)uAlC0UFmx&ps fkx[)u^|'dc 64x[)uA|*NĒ̤ҒɆJp2NN9 +kgx[)^lQ< Hx%5Sj4NĒɆʛOq0 Lvx%'s,N\J's3 FOx)+s,\J'q3 DNkrx Ate\ x Cl'[Nbe~idCNL fh^+x ZdC;䥬/r1o!8y* 	_x NtC;楬f̛s|d DGCx{-ShC䃜w~`2V ^Cobx{-"a'r 7@9x)Hp2m9&ea:i4# 	F)x{$Wp +sb^,Y/3 Q.xZsڸ~_q&}i.$>mމHi&#l1WCN=`;@o7SfH}:,7k'P=Lu{Ȝ2h'RlШí-^	$ 
<*@M)X!q-p8iĂG0#HR$LO~qiY39SS'b#Ǌ`sB6I7n_S_| &M?n*vu:NOA !19pAPMq\0ł:H>Qs"61G*2D< Q#Z)n9SF>Û>[zhm{h
@1CBga2&t(̈́0qH2.0S"@?Q`FR1cR*1@Oٌ)̥If$QxG]D˯	c?1JEGh;2l,hȝ;~x@&J7I%"W7*duQbMuQݙ>i{>E5(eȒi_ds6kб+XhLfNW]V%n+>"٘txǱ-$H.U#S19ia$|YCSgXoCi7ݜLJU#7<ט/{J_HE<u
_Oc5[ஸEHX*bsX)fvR&$,X:Y;Sm3	w3kKh(ϖ4!G@X+ի}G_G<$փf|cj{˕[K}*	X­˵|:Fc*,m񍬥.+"Gr9Z=1]Y^7+V׾7r]	[/͆>Y貽}kwyYko7}EQxj}c7(1UzΡ;mP
24[NY߫rej`u2(	'kܟ?	ZK`c3eYW<;bl]ce8nԁy˭V줁3W8+L`jYE`a	dVueW=ͥdu15HFX/#er&|CN)$3R'μR<L\ҷhnλgv2:I>%۠2sWr9b0SNBYezW@|("cx8xs2~^(Z8fj~/-8ٰQ
Wzi9c$ŽGtvb'$2r~_x3<;	u_XKkq\e،ʣ*)+Ѳ`^ E{n*rE~g<sduwl*o}(ˍUq)_}>[ ^3o߀W?r]*$?,/9}#ɺ2ՙS!Z(%3SE*!w.kgEښApO?uU+X)5'g` K|RӞ~6Ďˣ
c:df!YbEV.VBKDqU|E}ڸ>6j%X2w񏽷o9'
yEoYZD3̠^\szfn;E~<jGtU0܉QUp]IkVAyGGBTKSs62uf_(OeRc7TZ?Ua(B[sS"K Z*JE)"Bm`GGEU銈BÕ~8acx?۟1l$NWG~3_1`Iء	34$~8\%7p'+ȉ镓b_xyn=xRra|xfst y=}x['r ܶbTx6w- c-x" f&
62UG1xvEmR>L 5OlLxv\m f9s~ NȸxZ[sJ~r^N\>,_
FȦ"
P.B0gb[IoH`ْ{9"j/6[.M>PFyt0;zO$}%v=U|sL>$eQHz._XF9YKFS
{X@	}h/ZsC ;N؅#f.,w>R\?wYr;Q2?	dakK0iJ% x$nLyX%ĝ'"d!a$fكPgiiL@jnH!Rl>M΍9vŲ5QM;iQon	' d(M*4hS,,1،y -ytO&VS`m`G\HKY4O<&J}OxF~p!}Y4atFFIt|N<Pה Z;^7"),qK`?QHÌx	\"̒\hЧ$1MLh__ (d9ehU $J&ܭ"*QZp	6Md	<L]NB{G'$E%P̖.A|w	9 xfN	58gmYiMTMn+pc2 O}ȡzH~fBZL0_bI;|Y(-c$(s1"zG>NoƺaO_{Mеv{XD7>+CλHH쇰vZ7Ra# ;%nJ@Шh O(s*B\޳$
rʃK:{"bW%EH6p]lƥfʰuڅUEO!YQP\,76pݯuf{/QxYS8:ʀutID{iQY"KW p_%.9#gb;,{v"tR^?_0^%2ra5m<tYp8~5TD G#r4{dp")Ō	|!r:y2ױ_`ygg, JD"!ed}rl-iewctdUr11a1SV:Mp6ΉRD1\C+#,96J1_BT :%JUE&U8w˔]nr%;H.aDcmuW>]}٪S0sQaB}Q"w|a˧ĄWt[ y%D_:~`b&\kV供U8*Wᚃ{G2胃|fo3FhuPvB"re|%v;q`ҜeHZpBꕑ,v<]oB$T6ߺPF
XηӶS6imrc\/iB8ԊZ*xcd{6ɘ/Gִ^F-N̨_k`w{])/"e~PQ
130"ɜTjխQ^ȋVpWYF5Qz]l0811V*MIef[E7&iyp3(Wc1)$&t50
+Ck*&_
Ǯ6mGnx=psciJEcTUrTENbYΫCx1Z{P$Vy5xP9zC5iY4RIgc_fQ)лz8UaG`'W/%MBZ*-v݆z9UPl/)K-%2
zq:0<\.bcy[m/$E[UA슾UZ_`'|F;~M:
"7qL	Ȥ+YJ%a¡-))g2+kAz/G@b,4/IpBB-E+o7tRR4͢ES+EE)hx7ȷ:C͒ǻ
ˢQ=FkÉ ]2^m>"2,ԕI3ƿs9 q'ꛪ2Zw$	-^i7OmLV	b,t%D'ƮV:h[
-S8O| VܼU\7Ay9?*r
5
@#`o-]©~n@XsBiWa$˧QLG;I})zF"\b#]A_h,\(Y]1_+sb	 /jȱ\%*xQHaw@[W+B(AaI̛S1:>E{g5H}qDR}'@bnӸ|CPxscSC73~`Iq1PHc1_y"㍐g#mTUℛJEGGNMJ[Sh6KS7ϴY](QƎ.r#m _/giLj!i8nh<DoЗ0wx9\{8J Ry g	'#_j&v/l<E4wq>2"+ôn4}(*w,aV5oUDa8/ǆ}ӹVlK|vT_(Yf3 ix9MŧXfexYoCYq-<m	ϱBgN>%_aut[M	cթϵ?F8ɤYr{u.Ue8RO<ǳ9Tx.^49>>DdI}fUuPZPԤ1tFĝȇ@r9,Zh84hV~91W_W񛜜lD!sw8{xX[sTU~(T4@X:0eT&X5UVI:}K;!!	IBK*Y~bfjAݽtn^{=}a[Ѕ1:jSK"DnT­eyW[wLOXy䇭aMÝʊ&[՞y%Rdob 5ۢ:>j0Qǔ6K_XAl;|<m7?E'm^iZT)IRUѺTtDg75^nn2D;j׎j<G:ł+5yRu(1jӹt8!U5Ԯt,oGhcW!>P7"cHkWO	^qUm]f|ЫEV`pэ>Nt]T]̛Vpt2SMpj.yJYjTXpd&'ϨdW),- ON5\Kt)me	w nPC	<u	+%0ˎ/?6QNj~߄q"؂Zgx"X!	d;HO>T}RKSʋӀ:V0q!}&ReNN`-h	oBKh"p,(EĺQNpE|F\YkGx o?^/oţ	wkset$-Jؖ'.\ۧ-XYUp|taT{u:߯Od:3S0jԙÎ,'`}u(o2c>bV&T; *]*k@Y`[LVjzkL&$U m"Ctn9&VV*Lqf,qeǭ985})IYPn%dߣ]hׯڊwU^mT*ާJ%Lyf\IhDD%ТfPK0j'RxG[hcdޒwuZPߺK]M&V_t@V>:jKǵ]`;6{i隳!pkIeP礁zpԦ%#)<2|[4=[1'1ר?4s?b-kwDqߑyW1ٌgH!J\\冦K.mn&j:I'	WA呡YB7 TXPOM;VE^XZ,G^8<Ѯvwlbtտ k6Scn{)LX^".lh.F5hF<9t,EA~ӟxd2OIn8VSlN??j6³NX,}a
8fNJï֑a ߕ:	uTU*D֩ԓ̐^.-$W_;dwC/vNcyc0Mʡr:yO"U[GD`Ee&ӕ/zɤVԈ/e(\Gǋ#HCC
e\[L̚'
W-ẍMFyXzKP*k$xHB .3N%.܈`k䖲bu+ݴ|Q;b\K0ۯޟTi Μ<x߯͏v$JEl/a'qaCZc3CGMp3`)\vo3ȳ/'olO}XM"9.L]}PK>x_ν})wCCǧdؾS. 
&x 
]9-Dx۾"-LO/(b
IKI+θ) $Z.a#Ǚ6p0q 1	x۾uwCyn2m=݀+ 
x ^@1z	Ox- 
tLPP,MMuf˷
]]
xkqcL\ =D&x9 
0mˤPP,MMe/
]CxqiKŘrJ'`ްIiFqtjFa~PQpIeNAIf~wKb4(d
J-N-qJLN//KAU_MEy%y%::1զmg.n;}fe@\EE)@m/<bd!-XP!	ɍ0`HN?dK	KN)l:KRR1cQ䎡HI9ȝQ2wLeJ|A@59!3;/JxCb+>Qb*q&!*3q)g%&b"{|&~>!>y(ޘh M(b.ӈdFqTg(q) A-W, #(xS-Lg71q CEx; 

'	r
Hj???zKMpx~¸ItmL=3 {*	xU 

'	r
Hj?݉`~./}P+3 `:@7#]x  
˷
]ypxkOOXè<"qΐTԢExSKeB';,~krؒf%K.aR $Cx 

ӥH*ޤ0:,xukAƙilmCMmmJxѪATBMBu&XRQJ<*nJk(
Fz+(zA/^u7IC7no5mSɨzzlb *TʵxAB6Z&ҐzߥOxb`Ȣi됑LȀ7S]+W=2|m	vʹ1d7%r>%>JýY7dtrF~C0Ӈ!s,"٩pPY"yEGmtѻnL%~i!a՜ ~~Nqڧn|\|J|%ՋȑLZmC	Yq9^G ;w̃2\	^dYpBANssL=I
2vǋwSqLIymFSTXD5u|'M'8^YeY$7m+A:ѡ%rJcz)
r2~ҜS< VgEx3 

*.@-.}+37>
]:Rx  

a+37>	_=6x 

a+i2x7 

靗"
lZmφI_xKo1ǵ{AmJi	JM#EUnⶆ::½\8# |.{  qFNڻ!$;xƞ׾9!MwF3!!&ld\rʞkWƴFb)у?F>-`P6|`cOoY5(xyBO.cZKgB6\͓t1".}u젚Gĵ`tVIA,}U7#7&unYhCsqiil[r.BLtOomEhEcuJa?/_emޝj,UQyqM|Qø=S@1ِǣ#c1~o.MrhC^46LE.&73|sG1E.$b>+ .2Fh
,ƠZDSǍ	R XVg.Ya埂\ޟojU<e53SZ}\#X|dPޑYlI1^*{"HF%6N'jv@DۙŹ
"ˋ'ˀD6"0۾T]A37AI	/;k
ۯY6C`Ym!y;֥@J)NiNwy\RZa>g#['$uDvSwϘG	UfBݏ%J2x+
I)Uz)q5șm$KZS[T+#qѮ9LS/B$qnhG@2,jSERB9D.ܯ!^P0dW\ۈ&R1 LKY!ѥXJN<=X6"0%Z>D!LuvEWA%k}\a3
Ч{f~@U}l\'~XhCG} ΚwAx{xke-Ls;<`|~vL< ujx{xke-LwotS+ }p	zx{xan)o/oz4d%\]N3dAQbr$dߕg>Qg?#FǸxLOnLVnbør󶌋ԧ3Jm7btgd +Ux[|-L+bA2qx[|%-_WOZɤ4[Q`;Ph&X y+x[|k%-Lwo, [[AvxMkAٽjKU}I[-I6&Li;݉6^5A 7ЏABуgqf6\̳sux@Ӈ݁	I	+2fqQc5D?5XBE*>b9ֆK<Z[3QďDCEd?̅Ae@3h*\#tћk";e	OZՆKk6lKtQI225Ⱦjt0ز
	ġi
uM9!;܁߾sQЯY,BHߟ03E1CWU)USo]`5~w.j@5PL rUԡl~p[Ftd48\:Ư%74lCE1E&b6+ .1Fӻ'+>PS2\oh1"IPnvEZVZ&RfP
vk̈́5F.ΊaŻn.uI'*V62#w٤Fn'g,e;Vۉ# oD-6;vfq:щn|ry p]26Qfn*憮Pn^_qma_bYm!;ͯߒBH4bѬFu](auk0ǋOaՙ";)ݟ7Y;m%Ԑ͚rI.w\ؗ_Q$_x~TSmx V)[8چk	)	==(`RNt$.)/"qٕELS/B$p,n,dX`e	kg A]

0sqezf4𔪎H\>Kul,y"GC0	ػxҔl2q07U{ Ê|ܐ9}o{XƔ8ՌJ茆j0tyjOx{{y-Lwo$+  d;oxU_HSqpܚڠٶJmH#2"zBzAzX]%Q	7.A}hPèyw}:ww{>[F7^cԫ-V_ԉ9͌.#aEڙk4}H;8R9ICm^T=J+6ʗ	={	OÍ|:gw|=D<7eSfoeDYE-Ni>.Ao+yrΕa}aXkɻmU3$}z/fs|Ί+}&> .Wtc~9
]|3=J`Pp']{-jxtx30&0/N,=[lQǺ݂=Ǿ[?l1{h,K6CCT8+[Je8溵Fa=cxE 
	P1QY3302},$g4T	 @>|7x; 
ȯ
P1QY3302},$g4vcPF!2xukF-L0lO7a\ }}Wx= 
Х	P1QY3302}>P	 @,

]~qx[ggC\9fz 
n'x;J-0q 4AnAx;}2-fb0_Zx;k{}7'NUnpQY9?$5)8,IlPa&[4 c.VxԜԒTĢ%.  /:n7x;}r-s/3q 1Y]x¸+ 1#yxyad*&6G;<`k$ yls_g`659}\.agqV(q) A-W, &udxao'01O?QhzF+<ca?;`
_yFضX3p0q #Jx¸trmϱf` 
h}x;αq#W, 3x;α.{F7enw6F[.met(?}vF](9f;)Bl;Plto~eTf /x[1qj'\eԞez"W, 1x̱{ƨ1nq&7 w
Z<x[w}]-f[Oʨ=a#􌭌p	w8emN팒m3ہ\!s e#2x[w}]-NpQn!F78Khz!FK$CHܘÌHܫ!GEhč4r1*O{1.!7}QF87z21F`lѕXg4GEqFtbN<;)t]>؁ӌ|O[E4Wb9s@?(1D`<g-ЕTc{usb1ڠ9GA*ow\gV%}wydtsEɨռ?0#*76$2WjFC8Lw]wmKFx[w}]-?MpQ{팒m3ہ\!s Vptx[w}]-f[Oʨ=a#􌭌`K[X  >q$x[w}-J'gٮ1A{rjhjOWc5`t 'DCF7\'n2!q5opn1 q?r#n3!qO"sa4s=\t^xQi F3o~X Ph+Fx[w}.-z70*L߮zzzFzkNpQn!F78Khz!FK$CHܘÌHܫ!GEhč4r1*O{1.!7}QF87z21F`lѕXg4GEqFtbN<;)t]>؁ӌ|O[E4Wb9s@?(1D`<g-ЕTc{usb1ڠ9GA*owta:$+ހ7``c $ofx[w}-z70*L߮Ϩ;ݰiw|0MOXϨ]oئK`a/tB`P(<}uF2jOWemo N)`x[w}]-oL߰Qnu8hwwzMF'8WtzH\[(ܮ[&H܏܈یvHܓ\w\O$0etApe :QOx[wm-J'gٮ	 w	lrx[w}6-z70*L߮zzzFzkxo(7';e;0
O|o@Yۛo01q  !Sx[w}%-1^h>}UF̒[V3Ҟ.pQnC!o@Yۛo0rO2cFݏ9b@"Ix}.-3&_xǷ5N#9fzĂRKS2sJS`^?4Mh;`?HcI~nfrpjQYfroj^Sbt/F{1
mQ\385'5$3?ozYFkHb2ڀdb 8>8dn@~NfF=ܱV(%FIv zd7x})-3&_xǷ5N#9fzĂRKS2sJS`^?4Mh;`?HcI~nfrpjQYfroj^Sbt/F{1
mQ\385'5$3?ozYFkHb2ڀdb 8>8dn@~NfF=ܱV(%Fq73@bJ쾉Ep D`P⃊@M\d:
/EQՃ\\:q#hbX$&OߨŨXS?0~iA@E0mGb[Q~čFX+@=Bk}aqLSRK7&CChJdxbQ	jP],i)%h1CRW	,\ M&xK{7b.o(16#ȷ/1/gV0OQsOe|~`[WsM_`('\XZdO1JShrXt9eLf|a8AP2ws3
mo>x+ -^nVxF-gn0q 2'x}oE5
m8MR '^'N;%(쉽z7[BpPF₹qEܐ@ H \2zwoޛy;_ ѝ-T|6[Ua`VjX=,	-h!@J^>6\*x>:Mp[h$`+U]5q]-I^Cɿ3KkMFy5,E熵2yūxl4g]9
'}:*;	=lyB3FW!6=fICxpFe(xA6%]Di˧ʢ\ÚM\	hw8y'7WYmd&xCVU[(mY/v9on4bV;ďK8#jHfGo25gBEdQ+sZ?w0v6dr4qrㆄR2ڐm,BUg	,K<411Ѷ&[9a"zKjUBx'
w#XW2@F-w$Ҝ$E#fh5> lvWӭ$TAkniY$ZğL$Bهcv̴fGV}.?2޶}|@1Y,}n>y]Tۈ@Gո_	1{vA}?䧉iNaF@jjHt26y9AW~ۊ˥5jU4]K~LćgFAiG@7{Wޣtŗ^'Eucu~'14-Pw|פkMu&<b=#A!O#Cb{b"+Uo!gdFY~" ~z(@Fp; 4~B10FKEEÆ
'&@V85y06}F!RCNo:GdKKѝP]|7(*un)?}hIOT~}:(gO%өcFe}x[}N-M`v |
mPx}oE5
mC~8MR '^'N;%(쉽z'[BpPFBGJA pzk틵yo߼7v~xymGo&b3)ҬJm3;\%szQjQWCuݢZ$vyaS7j$cÕ{k,Alm<6E[A%Wʼu&w`}d[oK vB]	WݗVrЬ<9X<ke6W=,ʤ]1m}":?I=9JҸ-S`_
ˢlp+EY<8G"*QA>9kLP/[v. 򩶠w!~SxG:#)Lwd15J`9 á~+-_PB3u*}{4on$bF'OH!6V,W2dUjBUfPqYE?v#wq7dbqbҬ鄥ZWm*@q,)ﱭ1Ӷ(nٓ/0q)2"*4dɀ(וPQ!]"Ep4)dY([vm̓yqDLf|@3qZDOC;d̤gNp]Uc2my$wAo!?Iy:R~$
HDnS!+BVZ	Udt,ǞW6[u3VnTtp;ww,qFz+]y/̳_zXL%~o廓;	66AA:]RV׬4`8UiMYbZbuɬt>gjß"?Ke \L鱗'? -ǐ0qSGhºz >@v85~d	dD)U؁!ku!bq%T}+jvI~v$5~s̡>O''tex~ۆn/Ș3},4EFɡt/e~W 3FӃLׁV72d kJpx~acs2M%?^bϼԼԢĒT%.  ]-x}Cƌrd }	U9xMhAbjhmAM
!!AŖ!twIE<_ȠTA^7'C޳X6mݤiyyﮫ, Hw,45Š[GZ6eWd#rAQZ[
VN7&"{\cb`9n>ou͜W!uZ1UP wqgX9>m:Ccޕ'BZOvmkRɖ7 idQjE}	Ma na$ًf~R
D Qq| x̥M18+CȂp5ɇ&HKʼ9#-#q~{CKp8{v	S33aL*1Ǫ'Ls*d~ݡM>`/*K\bTquՏ	mz FYFvӝaHv2
yS/ }u:p^7*pz	bKl6\gX-"]n&eLUT 6T질/+;*}LC9w? n xrM-/0q :o:xr[F`,3W, 
'xXKo[E JcNJ$mܤRuWNP=Ios}{m(ul*!Yk6?h@/|ߜ99Ι}ǍcWW/M&OO.ί4sZPSkk`tTAEp(`~"a46M̰ԐSCU4NT9.Ip,ʮKfd<k4Nܿ
GDtCp-l ̲E#ȃ`W;QOgfȋY 8jn!C1gɓ1 ص,[1?͡-2ۦ>St_9Y{9n'>\Ac&y&|}K)EkI<x;r)tFhsY 9>ȏbBk38?.6!/RCuJa0o~7/]={fR;'S,r2/e4lƨ㊩e[I>gZ $ׯ3͹S"ƖolQ(,	d\ϥ%iy'<ܗ2k4sr !C*INc\u\:MZFgUcۙ-E@M'ׁ"3fc4XzE5֨:%l |h#+z:G^ǯX</A<VHٸdWpHB.VbuwŪbJNMUކ_Szݓ3y*.qh~r7=!mD*
n7hI(Îס,ٗ,sB6ۣql\4[+aY@Rc&ǋ{x\wCNbwu>sP.c<(V~zg@ ȓ,V.fxd 6p<g7 &}y4XmȀY .Xs" 9-Ki
w4nJB6gX` 0S|kT 2248JȁH˶wg#aIyۡ	P}qQwLx	AbՄ(A	^RgI
"3"8άȐNkU0,h(W2"KeP +%AQ+R8h2$NJ̊x210c"CU>8
JKFn 6n7ێf:HuY
؊R,E&4pR|WDPT@+T޷vhf03ǂ\{o 0d{sE:`"tFHR-\6ݒO`6MW4{:M碶Ev>Ui):Lؐ[> L~O3<55uE8}	Dڠ4$́[[[[7^Ź!kΊܤۓq.6 ^٦mP9"WW5:1UH9=k'l.:lte]MK0CvygPPODh׷h:GLr۴!{Rbޗ7]KMz(nxxo-2q =nxm;-ۙb9?nx[(mFL\ ,?Lx;G-۷'a` UL`xaM[hf]5}RF]o;'
 @x6[F#1Jeg&:&:Wd&NWe4^QW-4(5=$9?77?./0 )nx,[Ʒ˘b6%_n(x6[FeL\ ..Axƶ*ۆl?џ Z8x~mi!,~`c8+ Z`x[},[ƕK'dTe22h+'XYꛟRY\Z䜟7QJYUh^:ײԼ%.  %vx Edg$36DGk-xkAY",T7Xxċ]7Mhj<HfLfMRī=
z(^/A<
nfg=罝w,}\AL`M&#G1	g§R,E45U>8z	oJi2?CYF^n_sR|oQl-& M1 $qS5@9|dυFJC-LP2Ay]2jD"p-l 
p"-q,1-٨jP뽯I.Wo 5Ys(;BxYS3	koB4 ,\3f	r[QWf{iʅi^ 0}Zi!r׮םm!^Ĵ2l+oÿ*:t7r])CЪ1ɚf7+q˽I:!Haڄ(k谚R^SW'dNj(6]!B7l[kzB1.f;dFvK&dȯ2>q=@c7A;XÐtɽY`fK5̼-$Ǚ:%5H:#Ed(2U!x\oGr:%,Q|IQ?%b%ER-\l8rN3YR p8@űry#	8, _ 	\|? 	\pCѯiCUuuuwuuuo7?o<3A{wbҵhՉɕg}kv[oWmuf|dhr_.΢ ]#lk;ɞ	iP}9
߰V>x E#NkGQ3Uo[J/;-+/+B7Iu1?-hTkjFTy~7؊fdE5b8 m2fڸVu<~4>*#P+j>B.ɈE MWu6V6f7zAc[7e?pUm'D>]]7ih[Vs,YwJ{d23m֠ӑް-wFz9B̶Vli,ZEn
uF©𳨷?]tl@2hnf3^"랆eWoY|>k35cDגW-XE`Php-ၟV_886vJ`4R=5xc0Y̈́7TP頙-˷f/]GmPmQ\7Uבd.L4hYz <d c؝DpOCKltmr/B^.vݷ)#Wְ݌,?YBd~ymd6%гm
}qb+/yd0p%a['D#aIM+rX+}-qIMmbVAfN_F8*:kwwY3X?)%E>V*ƞSFD  e zBzNWCEEШdNwσ@Ģ2;zA,lʌQwloel^omԬv肢
趣X/[PLֆ[c-Ϻǆh>.n\s3dbj/R)4ӻh^_cZ|4%D1(WN	۲H׎'$~Fn-߶wJ`:s9p4|]Y i?Q-J$aԷd+cvr0P!HW8OX*VrD\{5ܾFFպ*$
٧T^<Qy;,ݍ9t.>;.R׷P?x;xA$XFV&+zDd:\v47a˥`yꨭ'+HUؐ23[X29I:,auKn&$Iea1 v31$+!9#2E\&'$fx՜>D[wu:+;@6w;hjhReD&u$iD|*~*xEM3xWÝ,q<ŏޥl&4Lh_OJb)>s-jph^tҥ,!FB,x1LG`7xL<>B7D29ZtʼB1j3|zn"[hNH\C{|[QIXҠBZ-*leq^"d!2y=^M[N0JQBMS
fOU]6Xpofrz>xIG;,J38&セ}jngU'H39a== 6ZpYFov&+ ]$ڮAB5:4\ϪL6SmyPhfhi>+ٌRf|!@ڡm9,ӰInSY
uNi.;.~I"UmN=hYV67xǤdq1-|ө	?~tANOXˑC% J	JH0U26"ԁ(ı8OCyog5쒥<D/hdkrG[nEȤJ:j	m+ZiHӵKS,Kg.m@T1u]L)p8,|@[{6/<4:G[|<!kf
Y
1F9cXKEwv	 ijZ%h]=Eƭ/a9ݤx􍞆lTL:6ya3=e,%mEiL~`+1cWo&:9xtUx됫g2K2AJ-˨J+Ymb\i
f||P~Eo^a@m6tJ	 +u*@s[q㰊9y$ǁ+Z}C5}|[w/QGcb)r]OUp7ӲuCu=i2n0C-}|W z87-}(뇄rb/.i ߎ~$6Oq5Z*NЦK,k-,bY^b]+/S8]pq!Vo(:c3	6	P8I$4kf	-*NhxfQ$!}O&ܨ~&}?.6%Lƻ1rU/T0s6YOCB c?~6,?|i#WJJktˆTkD$ǩE0g:#rY4'مl.LE77yoH$D>ړɄ7H3oGV˞FT֨DWwۂgX&`HBTn1Aef*Ӫ-i̱YpepNɷ\n-zB/;Xdp]̢ iٺ#uN,f,s'/Ac ]|d#oTeFuBZsD5χ_6XrsDT^/.)1Y 6D>/Kym:UFz|J?_F
sl+Ɲz>b!u1~ղ F+a*${&)*n<ElEZyhQ	="%?9^=iuv#<~^ǾDf<)ߊ|7,x}g\be+nXjOA9&
5Ej=zfPlke1LX;ОLOujwԴV:p	!
%AOCwwvĠc)Շ
8PBƟsZ9*8^`ďNPLT8Q##~ظ9o ┊s5Y
 k-	)O |.j!!"81Ql#7"8!`!1uTQP
f¥]:A!)_Zer+&]!wV^ό?3D=cvM۵ه#щJ0(|:g9&O,d{@MϦ˿U]ǭ⎋Y%B9tL-gs	YtTs8	fݞgy{qdѴD\:33PG2'p%aXC-; z/O	)+M1zSoD8owBٻSē:\#9r(:*jArHH gGJFhF_٭v#1Y%&kL!`aTvaP<$hyBRKq-YydP,S?9笾X0tׄ+"e1{$k_A?G3AK.B>)\#
8Dȏ>:v}tQ(qXށa\|ľ-~gNdp/$ }vZ/JMˣZT'1Vոc,h&HU|t\Xe-7|G>A(;I0~2):nw0j@
c8W=4 D^(CTCI)zv<_4DwgsuPƚaV."%	q\M7V\?{$s

ȅ%sRٵu~5GK7<1	D"
VAEoy=F2Ӛ#$!XʪǢlQ}eo±*(aO][gެc5ffH	AUX cY=ԷfOWY+iVpWTtY:&[@+I#Z5hlv蓞ܖl1 vxƏ%jl1!!h=ZOeQ*{#dݜư&~*c?-vNeMRz	V+~+ڥ}KC84\Q_x.BlwA;8kncK'INޕ&>sQxNqPn	#v :P#$RtdUC+hڶrGGMPu0Ŝ^lnj9`U2I
s@bXdɌb`yhnH[I-ά?5
)Ѥ)I`~QsiF.|^8hhI MRd1̜	NvV4zQP'COB^4WtBH/Ni> _OC49o"t^g?Oe>mEF^>{ߺaHL"S9K3H`40mVZ^Bꈮ>]]E~Ɉ9Pδ/PRBI~c%CB
:K˚ ;OU۵75ѩ/_JrLvLJ"O/ѬI=2lZR'D?/pLo-\σq}My7囈!p{UeFx-Q;NϸD#}]6bM) "v? / 4/1)vE蟱'}!$Z*:PGW@%DsG3ѣ%r2OZ׍^MDe"}9aIW yӰGu=Z6}S"s:z]-25x>DLD&TD߲LO_c9eW2GFЬ ;S9Fn8c1Wlpv1M?B=:$꒘4Z'sQ(g~h$eIF1$
KLӥ3J^[ndj@/6E"{2V0KclH	}W![hXc{]rsrKeq^I˅GB@xzhHU!z4onvd}HdN_AG)a	 Aя'İc*7hrYEۿT=}n,M`	*~ <&\G"	0|wHRe|+s]$ފdgOTv엂I ]斟f܆D/[3<+Иʡѓ-y5
y	Kh#n;x[yֆ-L\ 3?nTx[ymI-s0q 1nx[y1ֆ-ƉHebb 	nx[ykF&X -oxw ɤBP+!Constrai>OnP+2BlurWithCrop)^*.Y3PixelMapShad1"O-ZWYs ?hCopy'#h4j*~
x;
&;dNV%꜑X\ZY1{	XA<[jbIiQ c T1%|P_&+uI-.)ʯTR ZX 87Yk@x3 -x{yuqֆ-ƉHe,d vt	nrx{x!ֆ-L\ 4dexn@	Xt@j-nEUPC@7(M
	XAW"[ְHߠo@y`;?jICVo=w/~M^l]1li:Tbn_:;e'Y_K5M.\N2%-ϳθ'_S,ﺔ:ѡr0	i0~Kפ&r(*Tn2ism*8\fR%qjLQ3Ll\NH"^JTHS9*XHMO+pIw;aSWo90L3ۦړjJp-jW9#:2awn!OJKS<>#62\`0wy#mF,ǲޙ #5;E7˩P	e]&6 cا$_b'2菧S!Nm-gݿ4Ef]-y	2kXb)|ֱk^ʬJtwr1r
ofǳO*K3Iz?~k7xzkFAR20 nchux[1zr T~iQrjsQjbIjxfIKbIb0XpYҮ%=Uyą\@¼a⒢J(D=b[~Qn"hLHQbr6\Bb :\ڹ$?7$1<:%.  %Vx[#K&d7N-	(JMLr:Hj@jRU)`*)sGQ4"8D(\Z\ɹWH$JRK R
0ҤLQ\\ 8LDx[8YiJy'tOIUR ZX ׺j8x[x@a W, jx;pQ~y~&X l)x;pF~C.| $6%x;suiֆ-,&퐟/!}%S&X m
tx>ac9&Nҝ@Qo]yK1\$xkA*5
kڃ,6Iۜ,m 5[<vf؀7oaRh=Uo-Js*xxY$i_yy~sz;h՞SjW<EcHED/м\0qI+_j/ٷ*G4PVap٢elu 
4@Uhɴ2hF87C
-8;iV&5;GCjZ(-BDBbͤe뢛2۳ى~ѼؽV`t)e;O SFw#+2j|F)<[yj|o]y_WŪƞ4\@RAQ?+5;Yv(΁r[| 7h`r\E3_]Ҽ:Xތ{?3t─dTZ|TܙhUSq]MfݿZP׹n[jAP_뿄Q ac2T߭z/<H-5tv[c4fx~-ۆn/h+ 
xXKoSGT+Ď@T*m%!UU4'{}@ܪTeT̂ǞE7HUUͺzDg>f<7ԋ(:7g9sιs{n|t8}ߤ[hJ>g!%5YFGU]XKGb	vmly8-LcC;@9:QEJEКcZ
lM=l6]LFsFɃkyND7D",[t0< l0j|}CO@YhlfC2os<]KȲ5Ђ/jnmZ#>J吃:~d;`gw'*ZȘ?KG{=2@7mΊF;
ґ(!6)qa#"5i]KkVCFx٥:;9is4((d:Y|NAʼѦfZаa/Ҏ+$ji,̒\/5gNQ,[EV'pDړs1KK6Nx/ehdABj!2އT4ZƬ
:ٽu^3Ϊ*97ڷ3[*ȁN&n EfZh`kQ!g}uJ69
FW1u0?&_4y>_8y2?{?%D)bƳqڅ[\.VUŔP;X98D{7?$'gT\vuGk^zBڈTnnВPtѫ?PC%1Y/Y榅l)R/d6V<ò=V:`-DMy\䏟CNbwu={X.[c<(V~vg@ ,V.fxT 6p<g7 &}y4Xm̀Y .Xs" ;#Ki
w4nJB6gX` 0|kT 2248
JȡH˶wg#aIy;	PqQwLx	AbՄ(a	^RgI
"3"8άȐN`U0,h(W2"KeP +%aQ+R8h2$NJ̊x210c"CU>8
JKFn] 6n7ێf:HuY
؊V,E&4pJ|WDPT@+T޷vhf03ǂ\{o (d{sE:`"tFHR-\6O`6Mן4{:WL璶EvUi):Lؐۤ! L~O3<53uE8}	EDڠ4$́[[[[7~Ź!kΊܤSq.6 ^٦P9&WW5:1UH=둡'l.:lte]MK0C{ygP{PODd7i:GLr۴!{Rbޗ&-Bs۽_dncxɾa!&X (|x* p#0`f
]zOxm+-(?@v- vx-Z[(}Fg& z
nnx{mK-0q :%x{s-FmM2JL6fܸȭm` nIxm-ʛb3ax[F~|RSKJRSKsrrR}Rs'2P뎡v9F)L\ (&nx;m#-b44x;1ۆ'bH,v,PίyEbTx{K{7b.o(16#OꞾ(uvY Ox{J-oX(7]ޔQb5cFmF0;o_b*N_h	a`d`9.(76380Q  &&qx{K{3MQh, IEx}Cƌrd }	Kx;wm-M78(7ݡQxk7\aԞxھ: x;w}-M21#Տ9bltdx;we-M21#Տn&x{x}-/b5U>x{x}i-z70*L߮+ b	fx) xмo@|
]wxx}y-oxȿ}=bN 1
u"x{Y-z70*L߮8a 	pxZ;ȖH>{dٙ+}xw'S Hs{c,ej O*aeAfO؆wuOE|{8?Ne<EGn5_m r}o\xYFh\4Nvt<>>M]w2(!5ѻMo2$ԷT%.c?NѱeN2tr}K=zJ`i3MPZ?)}5~o?kwTYz&Qlt )" 1F]=@4׏K22	＄K''h@NOEel^$:4Ozw!?PTZ]*9;Rq /kP+.<ǹФ\g˵d$BG%MwwQ\Uq%YϺ_ܒ³I QQ P4=:Av@2qG69k۸9Jϳ1vXSJU_{/k}GL:k7+X!KrRiX=Koy{5:7Ox厺xdtF{HKkOc$.΄lџq"H4[@K2JOnA2W
9o'贞i0NTP5lun*󼕌-9'SM㭧VqR/6~Rua4 3@1F}ä碑-8A+HAwON?Y`e/Se
!hNccμ}Jh4$,'[$pJ/Pl'pLYV`5[JS0c;m8<37;?`j3'+{i{Ą!zah(^:ǻX$AӭA**c޳l%6ʍ s_P?Ge~FMeise<~!|qD\9iN昈U
%	9bH|pliH+0tB&Kn	E	J'8Eu;P8IOrpNl'wa %-R07lprpJDz?~R!a[]Yr6-?Nل {ǧ18v狄fU*bqVLP4.%My@,Y=EyWIm/D}MuulA͇Ѹ9'h7"0Gxͫ93̇%LeE]! >N͓x2x)k2K(K9I[{\&me=Q:Dt.S\hTx2bCYdd(
G	L pϑXKV<U-=}SOoont
ZAKA`j4l-BSAh 45[J	F(y$]CZCT:DQNCPh$sx&ķOD69ٷ3VZtg:&a@QVu"}?FLǼn4#cY޴af4PڷrHq鳗U
$q,*aѪUD[d;@SAafImo\E^!|Iu_8{,^=@>W-M모1#۩1>%ߤ[qjiƁ(->GhXwquS=(@u\eR
i;G/ij{%+xCw|2Agw3!\XVVz=*	;q3jGˠֲKZeL2/)ȴܦƄ1!蚓]QHw6X> ,Z\9>AoVDK|3sZ챝=f#FQ@"h8ӪFFvmˡvl4C>3|}9C`!pVSc;pX,OE(dicɡG.'vq.t\9\W9\'̛fUTۊxI4#ϜBJ`CmMB?`v3|o'9j&}qkßnl};09G?6wx׾=߁<G?N]Epb/nOz[}dHk7ysL:#Sβhj(SV2ōYީm(hC!Pm=<kU	A!'B;(@sxiDgjcw
ހԂ.V$ĖXZDWU&|ը̒Q9:{JhxO*Vy!1%5AHYvbdŘ$$h$ԑpy;^|	sAI±[	g/DDlZ]Ff!TaRF!#="Ԇ$6&[:[VboPP1-NFl*v[$0K]A2^<iWFG6:}w]ǀ5 tA=YP/ȲqI,IT"s$ߧg|9uRRl D[m<4۪:(SZ:ǄRIm8Ϫ_9HAρ#Y<eX6UwMw,JUY#9~se6Sƿ0pu`nmdįYAN5iȒl8S3dZcZ?>hbȯ{$IJ$.Os?]~_>$ĩ*Uq@E'4:U2|%se?ewZ8,	.K.K%ӒaI$tYΰ$tY,	AV)k9MglثR9C sJg3IΗpp[qqTx|	1AbK{$^@jj $M
$Z߁mF`(GUr8gL\#Y,JP;;:KS q% K"xfU˷{^Z'=NsDtuy(!ATdxE|[.K_;!$y}ϾCT4/v;5ušyݴ"n+5R$$,/۹AOea0??+LWIfv'ذq-n5:.*8$Wcr+L
pRL8u{ze%"!s/ ],HSv8Q"fꗹBݹw?`VxXKoE $ck{wA'!H(pV1zw:Lؠ8pE-9!B) #=yكeuuUuUMW_zc%eqlKU٨Z lAUk7pt.5oT]qZ[r}-ȳ~x/ 58t75dZpl^^6UG38g6.};Ő^q?r,ur!=R.ཻDۛ$60ffȣsJO -hhO	ՈZ|>M(ق-2h9iv:ݖ#IS,ʁ5h#e"gO.YKmh{g>x09oݴ!;B^jPyܘ.i)2ĸP:2wV1{/#Zxs;)}R.En#B"}EMXa^1#;^ȫpuלI)\hmNJõHP:rH=Xl+"RhiM3u4urdEPijv5Vl)A4JBB:ڮbY%`AXvP&{'b
hCm%Kce3gci[p,)J,rQFG4!~Ξ$QJ~E?)^O)&&g$[骸Hk̩x'=!m R"NnIhW[ _N^2Y/[m4EHxlmx@T@fp-*'7(/3v-;q_3L@b:?\薤Rd?1UtI WTWtTjܾ0}k
gGi@/&]U\+%F/T]P?|Ao`Npqq*x>.%KBݵL4>bPX,_=L5,`RLa$,]}Vē	34P
9.d'>\[LY+0#LhJN;!e482#rZ4)aI ^AJDN\,2.p"p墐T:4f^Fg0{Df$O>£O%z~b;RYq_H3zʿBUW[H_gpuLXNSa`2q/Mh<vܑKJ-{&o!B^05z)wUǲMS%0ȊT3 n,Mmd~S죫^x&/̓7 <9rrtZG&|GOm(L<7x{Å$@U}2Eo)sCi&;J/AKs2~I&yv[9J%)ZUӸk-lSwʗQ*BQu耷͟[\U%CQ'tIhK>,ڮETCӬU:Oe9mZMPuCjws3wdpf~FA/J8m.qp	I';U7oBX9Iɦ4EMLHcnVzj&PŽf#
x{E'&=?{c\;/uAWEITU18u @x}V-gSK<J2RSSz0L;Ȩ<;~鱇O>h !j6x;_th%W,  x;Wt.zT&T` jdxR {;;F;y`CAtomicServiceMenuBarJ6pӶ#b DAxVKo[E(vGb(.wm'#qW*`O+&s"Y!%E$a}7=9gΙ3Co|NK[LkrO>ԱrD/	EGj*:A""־O֢UD^Uq{4hٚL֑N6"`")Em*lV5Sw!lKNZG փE-EY6:*C:7kmp݃aGJ_Yg'pgl eBYBRZcP!AvYy:5.H@I.QFkG~H4z(㻸CO"ٛrTm	٬\0fmn'/1"3D+:̷7W>$+I7*>]
>%?iRf EC觉⬟A4-IVOmu
˰Z@]Qlnm72zc5XVOӃ	+QC4fT
N;y	#uglg9(=h`g0h+/rp_#OwTy9/
A2"a"])*76/#AfqIR!3HfmM|m5ґpg`9#7so*x5,v3N5}γN@XwRxƣ.(]D-+z^tmo6<z1`o4ʨщ<z^ۚ3߷r>T:5㇕ftSb%nw|H-{/94>Wk4
F a;<>Po~: Q9@A:HgY%)dDh4F{q 	JC٘&2ב|Fhv DbULT*lhhp6 4d4Xa4.[Q{Ku{lMEE{G%vLBZ|8okԜ].BNeN#oN-S݈vx( \Toѫ3@S,0<eSx \Toѫ3b=fx[w}]-?MpQ{팒m3ہ\!s Vpex\iuFJ1 ]./vY=K{gzf[u #\P/IB@CH % 8p$HbXNRZ#AޫW^zUw>+17f]i׾1mu1oήviZ
 :Usǰ<%ɬ	z0k:5XwܺcR^5hW1Rx⺡WB<m<i
Q_F:9Ԑ=sWk"fݨk6iii Wmd)v2ʒS	GH=CپLGu`(bI=-oZ[!+mÝV2C2suQnNjd^+A%Fj#DmPiW9۫¢:pp%D_JY7~ qglEw}U8MWbo8Vf[V"Eg=׍rK	kt˖עi+	+WtKYWbnieh-ᶡjCڀt0x&.zP٠;EBw~PZiOjulG4Z̶e20vRl%?Ӄ~Gn^\s&kieCHm 0Q-nIh"Ҵ+jpu۳:{WenlE]hb:593E:^P4tX'&faOe=j;g3D=7::5V{~;jkTpµZ8t#zoSˮ:I)ۂܤ6C0tsau`r#Ғ<wTR+-2*H7㸶rapHX_H6٥\ ["cX\&۫|Srk[^ﴑIhm[+STC<#-nφCޮN`|F9u1ǉ)RDM[hn(*+0xJ"CUy-e9ԑ~έ5{JE5{Ydps 9Ԩv`65c`jso-b*s@NbLdGyQ"Pn|a /]6AF_u K)zӺgXKw)Q~/ӎU	njІqF;-zt""JͭJ?귱m3Xs~XaK5]sc i<.!z$[w56F:{67>Gib?C8Ț֦H;O!)pGDS/	( M!CD	x4@
4pS4DAMY4/+nèeB2|jƋcMIxKxWz@<9_|~ˉYs"_号C0(g;x8t*ue־	>b@7~+ 2ihpZ,I:tUB
E#Š|VY Y(ƚ |G_(-(L3(n)>dA1)"p 4׍~:
[K˭`MtHq 6yQ?ח"TfMwn
|=JU5ĩœˋT>HХLj$Mbm|	VikwÁ[Un^^o2R{pXt@$nl2	)J8҄@0Ͱv%犱( {H%Ȝ[V+ji AQw-1u2ڍ	 pR`Aȱ+*eIb,J%髵p,EMݢ1=ȍC)T8`FC(!0B,tTB:a+Kh2??bjՃX*ODY<i=EîG6UC^nڝb %lq鮊IUG++B~-pVUjAE߱w,FadĻ3K8,(/&:VtzDwzPɨj+H{'' &O@>{E+t󵛫7ɦEKEo`75/wE(|ܑ[ѳ*b؝gCdA-#K\ CABKjeI P9 *	 T.ўkIJ `#*9ْ]2!/uF%N[mT
\+REy `r!2I8)Qja*(37=< <(Y5NQp!-~MNq_KjB0(`L->F)l$Pʱv ?_FV$eY;1Tnézc{vubj\4^r@mtڕbsgMs-;KxK=B?*|$wNx"xfA_g!"VCR-ܺ$|]^E9|H#<wp"'_RSw@FFɃ)"YU];Av rk2*M1;I
9G]8,;CVR($,Fqe0?=ǁƉ#$QȄȤ_FӒrigT)?,ϢS~ 1YDXg+NӃWLа-%BKiXnGႋ|m`6F	@&Wx69рɤu*WRПo\uPUݿΐ^ngL4eoZ&p{̪tFM<OO4r@ <}2
}7sQBgRSXRU_u_F`,d%;޴כFqvZ pYS^oڸQ5Ì-TKyӒ~Y(&0.̸u>J#0oݴ|sHAg
 wj2NR1x>;¶g^+VǬZR6m-F9:-ueio&<;͎Y_Mke Wl`KG;*/gYtS#I
G0p&6^%3˙mkQHg,f2|%Seq?*c/V!NF|bY;K'3+W0kzc]Qkc4tzJ/)+-",a\]i{/JvV,_b=8)*
Q\yvaDjtyh8%\ʠHe_
ydʮlbp6}M&fd6n\45wh_YZ
b45+s;eèxYpSm}/9OvJfn@
ꪅmǪoEN~O;x76CbL4d N#8 H
3
aCi J󭏵,aڑI[yX̣L1ѩ'*+jմMrD`-|L..iQb_w}#[asv%,1+,HG<"=˶y4a}eG0!2[E#FvD,0OX;ВSA7_HUO~9đ^,>DL|B;];}>czTY׍a}U^zBfD0b۴U01dV.גM8Yw׳D7<`I,2.~Iᅄk6||C &¦e Kv@is':iDGp[80"'H[q9[M(>
<18icjxH} p\ٴͲS1r01:載'PNx(FD6^h?Jq&N~:5УGE=R"s nfqPY9104;'hkg
e@CRydpIڳ\j0>c<&PDށi3<ɜ~;Zt;R_8bhQ)FaaUA襠M2&p:(,T Yc̤_~L;khr1 &]{Xxm{(_tϾC0iXɀqMe	9@_1mq0GLz뗲%Ep,SpaH&p<bq!{ (zB64lÓJp/	U29?V |ң)_PP͊mA>^dGWVfgb?)ʂ)x忑$H$9ql̽$r$Ao|aoiXrFHu;Z<E/.H% mt% ͘>#־W0UI\nUXvӠRmm5*־v)y Ì^ގۓ
d0I[=qA[p*dS4/,݄#4+)7z:31t)OvYhDHf~i5(9(Ňă؅@pXE
#=C£LF̡L.ܩl2mk;Me-U3"8bO\O	 3KH[nVH}.3"L!E/E1лv~<s-C)4N$9tX||g/esȈwd
oh[R
D9 .+86(_5k&*^ZR;D'_IioMPde&iA!Y0G,q|4K*n$Ӫޒ^5_H
/٨쩷o.q[B@ KgpmW[x-$]ȀzWxIUCs8eEqOChaA;W	:EM=FuߓL{ZKuT2mOn4;JG_iBkP{kx-*Me ggj2[>r3ʮ_x-bq3CB7!V6}ӊjƜLmM>ǝ'y6Y~P
'e`fkԤ'rT<shut(tX>ܕ:)|`\g}R;*!BLqaA@]RV&C~D0_$"	AP:I@b?GɢTw0U0p gS="h!ҍHN7-W:c!%cH]i	})G9Iz$gbM?c]g2@g5fab,څw"*\& 3;IQMHzq=dWu3x}X>!#F/4d,1Qwxfd(i MȒ!l2Ms!fqtcʀIͳ6I;g7Y}gu%4Ҟk㱶0Ë{sTn2Y2cTN֕Ӵ#&{X^Y$fcEg0)#!N,4=DJFhB'Yq)9E$QG4DăHȒ &Jx$3H>0A8ǼSFG)ҭVK}}bSh;kX퉲$~h2}(_˸)FGNrn#mKpQE`gtH_G8dɱj|xYT (;ZM*5#|!	+ag84$HǛ2\NnSjOmt9eҷu;Wds6$)t|)u*ʜF[.zt扴<c e(gNᑁQPK%Ѓ7Fdvff6!51h\F[0X
xy6XfuN(/&Yq}QUy}6#HZUd~W!4Gx	\@/=xV|R7zPF׽`tPa2a=y\1\H:?Ƣ6gHoP)^Y_Fޭ:MUu)#awI+p6m}o(=y-wtw7J\:GhyZу[2.vĂ6XK xt^pC?577Rir-TBmNX:f`1.&g51ϛ%&$&"\xl<>q
Stru-D߱` 	mxl<qy'Oaيf@Y3!aArl䶟a #Oxl<0q
Stru-D߱`8=҂yy%)@"3-sBCF&OaيI 9#(xllhha>t]K&w,2q 
?yx;>T-LL>0M^6}#5'd03Y!xl<-$,Ll "rxkhhha4=yl721Y#xL^3wbA )"6xk¸izFئodbF,f&+3ł, "|xkx¸)+ 4vbx1q&X 2O}xűad*&6wN  Ye:	Ux\Mlu0Ί"_Z%FJr9EEer+e A79Z5g{f ZrtH_`,6 F~!@uSEWNzޫW^K_~{<*tF> ޾Nog&v+o,v/;}mTjzrPveN"` vڻ'$\Rدsr_y>rLZc2mrY -yv@1#d<f{I~~4ٲ`j|L&yݽeEޟO@5׺m+\7?'<9]	UݽX&Be09}jt u{se~>^,.HO,O[8䵔Ȳe N%E],)dLHOX=+t	%/{vEɸvNjDX<ʪƲ<^.:ВdG5i£Mh'h0H&CJBEMՈa	qMr_vWO=6zCٽ_{$-cwu0Xԍh0M4	gYj]-HVރ43:.˜"LE }V8H=GG!GOJȘ0p}cU 4qÉn޺(·%9ORovF.v|%a(Kظzg_N+.ɄؒpaǧSsnӪqk'Kx׋| <{ʐUAN '
#_m2/码5EUq!r& Vˮcw$$?ʹU-q.EAzXdX}M@`<%#LUb?[c?=؄`\TUk& 4մ>eCu\%vHCIEIwhjrJVqͻwE32, !WSZ\EGOaDUAS]		-pTQ6HjXƳ\/C0M+J*bIBu=CtL_BQ,0XCr^wN^:-u׈5:GyHYVs9wYD降4=	3RJH=>SQU>UtUQM<MllDBLʟnW)?b>[|8>m9dflrnuvHdzݍ_\z̀<f`1`Lka5MR;E{]CJݲ:}7,ႩNe[gӁMŒ!ȶ8̛١XgQ󁿙"0Qtx|]M&)A+Y*wfGg-)Ўb 2X "lS!Ygzf1=@tS	 _hb _hb@kpLk`Ӏ9[iGoxv^'D(|BD-&nYwjmLt@82gqfeFqfe֮r-|H<G=*KO(xRuPlUEͺ9CUNlze^5e[03x!]Vy+c캮2#jT
KH	?2j_a׼X/nDu1T#z
)ܬ:Q[H
<Ȉߟo):7|j2~sVu:y%Q̷C#zS|&=($Pn{8N>$D1jy5|	XBx!P铼~	}l3[~~52lRRmp<ba%Ήta>Ǝ9z<x/iCT!vr\Yӷ U4N%PtՏCP':XLCmg6n&Հ[Am%{=dx(= Ճ>wO8M)9=<>>KhИxs'QqGxCrR		Mv]wlD*Dq><Kj)F2%\8cTKnێZeT!WPʃ-T\@&@R<w4
gqaLc>MQ8J8c;8J8\8!KP@y((>&>0vl u}Jsj"]D
<(!B(uk^uD{@r3ZP]4Mbp(a)q;gvH^3*8yi7|+Y)+]<F*\7R3Kg-eWLzJR'v}L%z\܊3{Dy/$+ŪnM!zY8#&e.xUW{V`ç&Oj'BғףM:7Mu,!A5UxZ­$/{^>KO, K5@( '`Fyoue#[b}c(P%آ҂YD1ԤЬ5I	
JJC68˼3'u5mٮ޿SIIm*6|XKv|1̒7mn;Ձqru01leyv=ݑiqLReV3=6sgX3E.6g`%FPc.ٰ>0>܏N8=b$R=4;NW.GZ-	F,%ؔ6Ҧ&bY, aI$,eI$KZd%(e	,AIKpl,XS%$Sb. br6Xdm̈́p\u%FI[Kx^(:	@$4f,MOxt@2IY$sFk,
6 `hHy'Xri|IU)t*&VwHـxlwoy\9jf乫|<:OL-ׯ!*yo-~=KyK^E>Qg,E0u޲&Nm'rw0.:(-q"AӾ?rwb&|,'o̕КG3ug	:Nɬc,y坟Bm;2+xtGϼ[QY6>557Z"R.?{B[Z>Gx/sWt<g
[Kո+ulA/Ìtx%x o.\bl3r/DL\GH誾z? )g.X30>|RޖG lJ^ui|`ZEi7} .1mB<oC`õ]]z Z/{6q@u)V@@\s8ia:y\w%||bKҶb  bmZ/.viTK>/1DO~В<YP?f?/Fo.3[24~S	$1<9ȓ"rpD`OrÙEmPh< 2/2/2/2}h{շ#^귁>rM
@32D~ZUG6^璆'67O8S#{tk4;޷mPh\S{*`O쩀=USۄï $nа%SfQyY /eQy(*P E<Á<x+j T&PVBYY(P(P(p(t2>Λj2 p[F10DLDq8.2q(*T_9F#Xb("E䡈<#pDcK8V[]բpecU.4V)zQNoKQB-ZNl_JXy@Gg#T6s>Gl? b<,B\KIMs% &Gy籹^~wt,^X^}j)_Wo 5J
0ĥ)5]w@CKտUk?003(D@>"G*2[Iui ?m)ok|d@!:>
3ֲ@HqZմGϰǤC;?;9f>2jR",'և|8KZp病ll,.1%fՙ)PeW5/`?@2$8rHdzQzp|>Zo폏T2?ʛ想?pBP6Ro$Emqx,mC!ې%l6d	Y%l@qP%l@iP'lqp'litɶ-Ē9Dne&ފҋ.bKim)x;zuQֆ-'2數&eV9gNNӝ~΋Q^18$$49#%?/91'')19[Kjb n~x;z kƞ&X 0mlnx;zAֆ-b6:n2x;zuVֆ-b0bLx;zfֆ-T3oWPc4.(DF&X '~x;zu&K'\-0Y	Ξ.7ljʍl
[([b
+L5\.:!YReeŶU[ժ֘j⬵vpZZS$QH7ZrLF'yeb=ٹ7yE5fɒ(j8"%&ȟiAV&;٭|635~[QԼh3GSc߼ń&퐟/!#tFތ
e"e` u
 xu.ֆ-&g-T~΋QrkEIQo~iqDFSd/&<f5"~>ٓ6Hp8'cN.$*q) A-W, 5@rxuֆ-T3oWPc,2 doo#x۾fֆ-^y3j k&x&ֆ-^y3^ r
@xֆ-w"'g-T QrkEIQo~iqDFSd/&Mm"k90EJs}'l6DpN,(*#\.I,IUR ZX )l8'rx~ֆ-1m6N(?}#dY.8{r73+v`ͼEe)Eݍ*ƙ@t*0
%&gOn2DH $=Z]RJ+ An' xu&Ko`\-0Y	.7Ep`jʍ
[Gb
+L5B!:I&
IJVmPZcqDȰ!dj-2OjMO>Wg=Tg5B,7G'`miG~k0Apbm^+d&cd+QUof,l]#CTgZPxNvk5BEU_;6CTU/UYlޞ| x&ֆ-ͧ?`wKLIu)/p,N/OMqJL?١\nv.FE oHxuFO'/ULz nkxjֆ-Bb1<<xmѿKapbEŒbEĀi4w4AD_P:tP-gAQR:tq-V]EݛYs{UuuՀ꧕nǸc
u	#U0nc蠕fX_"eF>*uh9%8еwņ85g.)?߷ԧڗUL.UX];;W'YkI?_8g;g@O
S))(SUÄ/}'â`Ae0@[iٌ>zOe! fi󲏽,j^ghq-"lO#E[V)c4d0H"Zh#V)צ	y GqK) z^͏{9C%>SFJHP1]BĬ|ZFnT#L77{^EŚ)uA>O
&_y6]nx۹}5kP&X -cn$x۹zֆ-?b4n=x۹u:ֆ-L\ .)Vx- IX>Get02`=JIVxk_h5kFWU&#Ɏ%)9T 	 xk_ھac/@FL0R	9я^
a/gԝhc3@bW L]0#!\ eǨ1{ 9=6&~8Vf4731 4sxk_ھat=Fe';앜|!Xp}=F]v}Fav fN@ff&vsF11F鉁ړ܍aL8(s^Ϩ;۟g4 t R@BPds6 F[ Fs[9nfxuz1F鏂AV!!!`CzYCal7 tD`:]xk_ھuCdrgIڂٱRY@XRZ {xk_ھaF鎡YC!l7 '	?8xk_ھa`Fec(h_ vPlxk_ھacԧW1:1Z# \!xk_ھat=Fe';앜|!Xp}=F]v}Fw5 JUxk_ھat&;앜|!Xp}=F]v}FavCfN`fpvsj#GH\FK$g *-9xk_ھacr<^mMmhgqmw0gt  2oxk_ھacr71Npf~܍Uw;c F&$xk_ھar71NaBaF2Z"qmmQvp=Ww[;{FT,;0Ns`4"aU#vGFS$sGF3$
wu(]PEؕ[Ľ(|$ìrxhF"IylZ(3'1+?=)@n8:o{0*#isO{,s@m; jrxk_ھa妯c(h] J&\xk_ھar71NaBaF2Z"qmmQvp=Ww[;{FT,;0Ns`4"aU#vGFS$sGF3$
wu(]PEؕ[Ľ(|$ìrxhF"IylZ(3'1+?=)@n8:o{0*#isO{,s@m; jxk_ھuԏ`_nԏ5LXJ3JL6 rn;xk_ͺc%km!L\ -QF#Sxk_z7y7/<d(M>.$0Y_}rf9zL97*2( dCd#j;sN8G8<3/%<B$RW˂גSI Bw$`HfN	Vb|kq磚d[l66K\OFDVU D@I}s}
5|Γ<&{l^Ħ$&ۋf0gBaP0af#{&3onȮd2|׉2Mʶy;hO6X*5pldқ.Y'8YadlvFr(@dry9c,gf 5/(2xk_:/y7/<d(M>.$0Y_}rf9zL97*2( dCd#j;sN8G8<3/%<B$RW˂גSI Bw$`HfN	Vb|kq磚d[l66K\OFDVU D@I}s}
5|Γ<&{l^Ħ$&ۋf0gBaP0af#{&3onȮd2|׉2Mʶy;hO6X*5pldқ.Y'8YadlvFr(@dry9cf^gc{jojIw䅻ƃ$y92sSKs72z8O`뜬T`f]rqWbЧP^xk_ͺ})kFr3zM.F3Wd,w*`(0}#X#F#!;4&PB1M+0aۀ0:~3FLA@"o=/rg bQ7x۾uRֆ-0N߮hc+0@{`0"CF3({=Cƛ
 	:;Qx۾uRֆ-}Ofhfjm1c- }x۾uRֆ-*F1M_g(5=ֈYEĘE`1@	#tF=tQFe?4atD`ʘ. Hq*Tx۾urֆ-ݦ83MOax'oj<=Q{:Cn_|x۾urֆ-}0M7c䚾͔..(6=Ɇ1❼[F1~ k	5	Pxurֆ-*F0Mw0e׈{z#cF3tXM+0a=4ate ѽ-[p3xTmL[UNGg?6(`
cR.C^im=D2ML5D.,1,?..%F6M$&R5Qߩñp>9{j^0ךVcxg[e9iw;,l%,KTTE6:xg-&f@Ū53'T$ǭwhߢjj8&E(p7XW*|J[z`UYp0m2B9dߏ:fQ'١ܨ9=kCN9S!ؽkǯ͆gxfGj/^JQ+Yd{?Ŝ[}54ȱ-a
yG;,SDON+4>cB4ԿjܨW.vso>fa09r)~fo:Y&%38uO>ĥkvxAR%ʩ$4Ouَu~߫CvhCU=
7G6J/ޛ j6epɢX0rs䜬i{@#-$|#"Wla<"IXMF
>SӊX#!NJYGCo;9',E&i~O<N֧%1!$`{"aMH-[-<&:q
VmO{bv=]$	<IQF!:E}1^/;4z+_L<iV$X@%Hh;C2+NdԺG@AtZsEܩFj.6lOg1t̪Bg{lp	q|2C8b'CyAD\v,g]F
.\({e7Tt9&=IMuƩcjKM,A#luw6a^H<?v[	iL"Ӹ'Gh>9ň$J0)dUO{z?tp,xTmh[U&k4i|P.m~J۴ǖ9mdF1ϒޓX:Qk_9DB2EQ_]Nhk9}}ssU&X:iVO^
ٮC/zP23g-C
VyQXnxVK4}k~#,ngX=3Z@ JZ;6=F01eʭ~z1hjx#bؽ#7C86BV9[Ѯ]JwJ1Q'gk ?&[^Z3,46'ae|z^'	e}t\YJc?X$
CVZv]/˥)fqI˿6*RY>ɧ 9<PJm6?_qH^qcd0I nCUc:}ѠX5*,xSI;gZW]]g?Ƨ̑T3VJ7H8fV{nbTH!H`H)xP%V#y\'I~⢙NΫ&6<ϓ)mSO΃Z@i	tYӰZOyOn|aDOptHѴK$RPyyQ\W|W*ٰԮ%+,_$a˝CNp'2,"' jjܾ,oWN1xXPG0K3"G;	'f,OF0:GAD\V,ҳ.UQ˶"RA,f6AK>Ψ8d!~ۯu̾`L4MvMج(BR5]jN"aysHy(WyoXA:\rt+,K\CocEt.#iLRYZZL̿#xk'KI1MxYqrQ6ĢĒDĔ̼ɍz@Yryɩ92%rŉI9.E 逢ԴԒ<T%.  *X)xy_NRc4_V-?ر"ص,5$=drD.9٫I+ ~Kxy&?2y8+ ,h4x[s
),f)L-߬y/y!e&  Ctx[yn2''NV}SZ$<53=(ĥ \ ~R'x[y),f)L-߬;Q+ v%xZklu%K.ߢ%)V")>$9Nl-j]rKE]4;D[$èy&r6f 06ֿUF{\!=;:{_o(\74D/FT ֣uaӾĕ*?CtQ^q2Ĝ$7S	H%!>C
2NZ!DKE34|8NpQM<)yLW:JTsQ[NI}0)
{ixw{0 Y#fZPfe)OFH{)
Jr|Zhpw!TzFV%6odR	3GJ(DI*-ܼ~f<]XIc%45Ȣ.ɇČ&<ʸL9#pb[x߄BÍWp
Fq)d8AW%`-v&zMړﳣPeyx_{3c"Q?4=ո՝#p{~u/\f#LGho<8TMH>BZYl7p#0|<c}sS}BO!FXx(zǺk
^x||KqKn't2d}pbh/\= WRM냩m[x5ӾNabZ_~Eq5W5dqrS|_2eV͋Y9/?];Eg[✣]䔣r$KWOj*z~ҟwY&g+\ZS'&j_oB<qbvdՊz=YN7o]ʚk
S_%ahfB^Jx@ ЀWSVȲd	C^X<өܝ*e5L< nB.ުvfwHWuwWaE뷕?&A=*Iaj1 E㜎)hÜBVr;;m	5-"M#Ȋf+t(#kK1x(fgOWX2*|úvɦ~`>s~<ɇ%ƈytFvz!\)InsW4qt_̬,R8|8l-pcfIA͗pnZQpp9%A 0a?%)ٯjănldsE+sLErw3āSR
û]w#d?lZ[AЄez7550B/;eea%d/B[/Y[_,[]Bo6C{2{%o7.xB۬󀹅"e]`k'^6 H3ѲtG9Tʋ3xrׂj|NT5Nu)ﾐ3UQL|r!3O*=u'
( ] Xܝ̐l`v]1M
NC顳ƥf,
T*F!+
pӘ+&yY2Y|W1tdͳj7Q(b /ˊlE5UDk&$EU;hN!y(PZj 1U6n7'TC )kZrv0'1xw0zkQtYI"0	i1P:*}z8,	Quej瘂zNjbL _q\ZFj̬KǃwNPRS6'FHqIӝzLSOG:'ɦgv f(˒B)\71Zvxd(|ȚSeõDtR@ZklJ|n<NKNUg۝觜#03{Os]Q6K(p˰ zs287 ^ qGEkN=!s͉38zU#xǱ-XΙ/r2/9)'EϬ&,ůAo(pcyV=+>.9ES wu{9-RujVʫX-jόܕtcEPHYL<7qvYe|i=eܗ8o2;?vTRa!2vz93Nj%]f>?6N;YS+ҺU,WʕH{&cWO/}UͲgU+Kv<,̰BmKR̦
zvؚ){>	0U[TJk2J{z^X,8SlIl! :ץQ$|*|>PgANWpV49a=|,U׎>&}%е<t~eǋdy~7 |8A$m	PSiXDvAs0KMpAKlo2B!yGGDsƏJUFmM}J3m
֡o|G3)i[P+k(R.kkyk_;MYΏ
{-C'̢l9b+*oZ)hbflNFIPuA5r*YU(:W̴5\OFaƽfK2=fd3¥Y\{ԏ|MgdbF5N/V@K"/+>fphF=v9`Z+0Dja:
jj^^ɑ(N*s|YLsp b/i#ttrUg/{K][5I'$Y',7x$ߘpQ~¤Ҙe; EwWeA	u*:Oie#mcfY<Z饌-Ml͚U1ǩrby,D-ud?:͔sk/fm:YTm#S>Ș&9,U)u嘂[Xb^wp'榳+UFcӐ	ueswp+/@VDS+Sb'RU}3h:>XaQ.?ʂ<X{|G
 z'8`Bz48l]->}>-9^GBxLQ4]fFH.h,@1@s+dőWo6,t@Vqvv.#Cn0׏ؓ$ '--_bMG+f܈bYt)ɒMM< ޘ2F>?7{kA='+
l,chkʒ'X}n۴,^ǂz{c:55j+|
QȦVg͡b7v/l.HMʿpy6;1?<v|9w3*=;rUԆXXZu2*Iگw /$ l.=gL&,ax!ú5b3,I"n5cx<i
ƓvpM8	+NCiɟO 'OADx¼-,u= KCx۾uR';MN0|xoFMog4M l0jt!!fFէo3e3˘1Ζ g%ax۾SYƌfu70{C0tF f"mgȸ7c䚾͔9M?>}/#E>l ڕ/kxu,rLOo?a̸ .
YxeKhQؚ4R-"ts0$m.5P "}!\jQ]Y4]XqيJqSP"AnDܹg&ݝ3w$?󖹼e咓,+d)1nsK[6I^.`Q>)Kƍ+r"ӍzѠm#!׹e#AԉQk<o,k?<[2fOas"D
}ˤ~f2ɐLL1{5%ap:bzh.Y>`Qowcg)y'l'OflqFLY2@|#o쟭˚H_!`Z_(MR#)ηb3rRh-_ne+FzՇrWg+)Otysw
ࠊ] qAf;! 	unkP:%Jk'hMW*aK;ہCJ^`WEx\MNw}i}:~%CN`逶w亂+֣VI;gӧ;"?3+]AF؟w4a>j9ߑ4wB/
;}a䒴;(g,U`uZW`yJ2-GEI~m}OD4ҿ]JAD)b7yF>xka]acrA"0rLgaC1s0ZO?`Ȩ]C+ ? Rfx]ILSQs"UM*ehQIC׉N}DAQHԴ2!DA;al$F;c$ ?{_İnbX7b?.}bNk$\`Su%AYJB$\FQ{%G`>|o=nE-q'Ɂp٫~/l*|gjj!n³.-;"\y0;	_a{\,ZV%\_VI'DN+LDu!yRd3x3дFCCAER+Z#'zpiFT5;P<RrT}7Rcu6OU$3t.^s2yaڡaF~xъ3/R˙O[XqdˠZ.Vζ'Kv{m"lk1E5s%^3mDyҩwPo
-g;Yw4:2v|E^ бdKˋؓ/Xʹ10%d{(g6Cǔ*r!H5kn;X>:0Wí:zcg)gb)_JbN;kÌr"-V^QzW2o{C1eL"Ĳnur%x, 37Roll2!033FO1n`xka]ark&X -g<[x[e''lg1H+FM^_Ϳs@3ϥRr,q9<}53=AQ`miL6WwEFʌ,2:Ci%,`<gΡh֛V#?Xڀe6.0Ow:Sah眷d
Cwz%	+co腪9`Mk(%u>x[''lg1H2&L~/j4"OusQydfK5,XĻs&8'x~+3MJo/Pe,a+ym:3=IF~-Fv-m]<PN`s*,|?X0ZaN/d4AvsP58,i 2}5$ vx[arݩj74s%&z礤N.(AM6`
Rć,<9HUgK$Ή99Iٓ˃хʡ
CRKZ3PWSKjqIQ~%\8SR&*]&"_Dn+]F9'hM-q,-,L̙x@rB<X-;1V<T1b̪%.  zK"xe'?0MϻKИ<[Z/D\\`z<dz$+d?P`dA18)
uFK+DY +xe'-$0a,`.0\vBl`
R(0l Ϩ)	 Z*Xxe'?0MϻKИ<[Z/D\\`z<dz$+d?P`dA18)
uFK+DYx`N7eC^2#x|0x?0c4AwE֛3z1:,4[;͒Q .~Wxe'?0M%K1""`.0\vBl`
R(0l ϘUmz:D%uFgXe,z (vxe''+M0|hф lSx$xe''+M0|ͿdjX'o5
-H~*\c9t'x Pc$vxqˆ76,1A_o2)5&o&'U&YRbBd\;:Cټu LΜgggeGw럸̲мę'9=ISe~^3妯eEaPCy<<IYCe*@5ÄQxc!Ne[+3rLRft|3OVa8/WftWc1Xg1!xԠK3d.*P'{2ځUMe/!0}	c%W, v
8xe''+M0|Ϳ-Xw)21D1Zӳjpv	uƕ,7A,hf,We[0a`	:ޓHna< Ҫ6nxe'f;3MX9q9wxN+7@@R lObxoDeD汛}?*HI(@d&PPı7XtJgs0ʟ? N@!$53)o~3xϧ߸|s>OR@M u膆|Rjz`:63m{>CE
y`ɶn{k P.ΡC{v?.=mMa^rX4g8 ܛ9畫L2 .`G#x@'w{I+qw6(PhY ~CJ»PvMiRY RYUH`ge/sU؟R@G+.qUpg(q|ϓ,9p˹NUE>{娖j.lif=|&Kʕwx;8=lji繖^a'Y>36	XHup\	FtvF'MR&j=sbX:p'Qڗ, UDtF
°r ~Wj-&\	OLM vx(TH#69yogJCX?XI㗞zV
Ë"M<#y	I̞?cWF ɵm$_ZIw;\ҩ/#3-[ߴ?f%pc&LBzᑥ@IEv/r"|*	=Ӥ+'9ym<3O8yʼgEŴ߶i_^t|5Rɴ?E/2/ =P8=Ox"D]ue1c[YXN,f,G1R*t<Q2Jae(QjN2eN~Dɬr}\tUbcE'a;@ZcdEtx#L.S߰ĂjR*|T1IF`}ɱ^d3 Qi9D+L%s$GEIp~/(<o%Ea[iHߛ8ESi+6ؼmjcXB_\̙#}>zzLJ	(GBR)*gE0H*.`g(4]<ǵI5GQ'mhZx?h&{(oQ
,pKL.	J-)<Oc%UdY KlDx41hI, *X;xUKKQ)c|oh6>
3(pX-m(;H!	B/ ^;7Iszfϙs̝z^}0ctv)C|4y`͘&4cJ:2:.3"ڳE$d*gRz*UMJ-[V4{{J^s)MÚWԃ)P+ֿ@D㒗qC0PZ\ـK![uZSeX80fJ]eoؕW${}ʬ_対$9VY,%gR@^<%0IrM=ΣZMOPR:BPJnD5=DҨv G̅hyGk#*EX	-f,/7w,Gh1.eJҍ[Q8&9x,h>fF٥SKR3KR'O~.&* &e	)xew{K';pxgVMxB
P+PSpvP>F~93@v*1ݬPs' ݤAl[x}UOASE(P*_/vڂ=cA7evJC^vxo/ ^գك^=vNd޼voFޠ_3#8OU#NQ
ۿŹ#"[ͧ5eslAtF#DoY`&2	301عvMvb=S2
5"a7leH"C+hVYi I,Vtep$i7usTbVLO-}v~|1k/wjg9姸eHѤ:!p g):d_˳+1*wOW֮H$5.jN$3"1_lЇnȯ~X'Av$v5OJbkT͔2,X5k!/SXƩF&yYV5셻0&h_ZNJtMwcC6F6di$`gm&eT-b-@WυKZH28T/@ǀ%kT)mDB\]N9w^@;<5{4$|`~-ma5K@rĤC^u
ea_pWrܼ$)Q[bPxH"U~	3KBZLq"109p[Ǵvje i[Ӧ{P~sJX|饼NN'ǆjtmjV`zʽ+}tL7MAs,(yxe'-!&<e^hLdO7`tKlX/  ]\9sxonV"jfR3KRsrsr+ 
|xe'򂓶OϳK0@iBds'mMނ>L`˹}"#3Hd:%:=[;h
mPg\2y]Tmުv`rUF/vHN	=`vS< Z:cxee3K''U&Ykdz{K2fA-?P`dAQS %Gx}e*)Q|Ld}<טGN(7yBd>go>{'_d2w1Mp@[~IR'Ocgh:]@Q~>;&pn%;(=ׁ:}?<$삌H&AFkwWAƃ`O"a90X׊0YUE1q b
x}E';M1ܼƤtMF|+W#x2Qp|H\~FsT.`tD2:#q_ {&,{
x}ee-Y&+c|tiF[ҌvoiƌTY2e|~JF'^ \(Wx}E';M1ܼƄ+ u	izx}!';M1ܼ$<r%F:&k98|gC81"a~7oL3<pc7/hVMcgh:]@Q~>;&pn%;(=ׁ:}?<$삌H&AFkwWA,.667[Z#
Uò]X1eyL\ 5\jx[}&Je8gdx楤Vgd䗖V$M7d)Iį$L?9_zst , _0~kxxTkAg4m&Xy˦`cӗRD4;6N;-V(/R!{ЛTԃAă^<x/? &kRj=o]/?{w!ظcNr	NY* Hae?
Db?Գ<ј4Ih8dvcՈP(&|w.E3z5/nw;(pLˊV%rtu\/`ps1z}b$jBċ},NY#H':,xlI:UlJ#T:%N)MoJ
xj(dUkDSŬKOY)Y#9:}|ߍZ-d\v3
(i%yP/	i/:^_yѣ(A',(܎Ozlk5uF^ߏ:l̏ʁϪ<nl_-ڎڰn/e]UHFp$QYo:̦[reyd~̇Y>~xA4T0#P$Uߵu|vfbm0?(>v֕Tu qoڭTv)t+m6($eIݔc&Õ:69* #3!hy/'Dg)uR7r?'Q&_CFe6S< \m<䫞%SY戮s"q"#BU"΄S<Nm 6mmW[CxsX1Wۭ67%1q`uFۑ*xlb7wRގ}BM riemx[e-pMꓛܰ\rr@d[]Wlrr p<x}UMOANWE
~F@Z]>Ft݅)xDBb@9Qrփ3nwwڽlycwjzsB_m.{K2	6A&u
BU$RT";kX6Xsp,X淼A#db.Dd%s`eNeoI!O hVp%#j0Cg @сCO?tZDY;y"Ulkv˞k<D$6qrMMG\)R$Uf.$"ׁCvrj\u}	*#	Lmw{Al>%[% R>> 	
p7-Ƚ}KBRdd.kw%S#e;sA$BJpfI*=JYf$r.NR@o*oN}z\[Oe5-H%-s2"S	D~Lu
8lveFV=AY02mYUxk \3RW;bPUz	S<Nӽ>-v">A'ȏ6-;3FL>xx+csNkP$moekjag#\Î^w8pQt1'1!	+ksE ѭz6ҙW =fZLջHʦ=bҘK,7k:j#bńz@^[qMUeCtjU0Rp<`g2VAn`pÞ;"6Qx۾{g#yI
Y73	cr&+J (1rl.i_nsgL97瘾uHqr@>
Obd;sˌ(MnX&Y{ƝvXY_Їy섈e@Rl,t&(l\goc-ec5LD6+/ kNCxVMlEVqb;4@V_iJ8nč-Jd۫gqWYQ*
O(M	)
R.R8!$pD]뿔<{of׳۾f'㮫^ax-uaF:`:Jӱ$1$,nc5c4AKX'>C$wI8ǭ٨Lz`qm;em{yHtʟs5ˎ
yÌXKTcH
>ڣ$}.(纫*oD0iTC$(!5P@pWD
z0/NL>X:&C~6]L&==V3_RV y%i,tjyLcÀq87o`J3|uCw׍ziq	 zw2tR39ZfiV
đ\&a#x՛6I.;a"vԲ`	~3vѤ$UDuJqîn˺a&	FZe!m-
#/y #~_xh.K|<ڇit1;$wrX{/GV'*?
<AVYwa%htF*ҸgƸŜdAb	|FtlzB(чe'	|}5XۏD?O7X]%>W@( kbpjqlԺ!HM&Uu(׏u^L9$jĜoA9<ϱ~2ra)*
=\>ZcF0=fV=Q%0M`f"i,x %sL"Upm6|!m6.c@+)دQU<8s_؎ψye	{JOn5	tµЪ,jo֬z(t)=J0ïa?ȂMP71,~{*x_<<Y!HLaXhʓq'FƤ`	xnnrn2EԄ/Yy-퀗~gxǸ68SnUϟy)%l跀ˑ°ɇh)3+V';x,yZW5LBP*<)UIW˵(/}o9_F}Xx{e-aLP,o͵Iq 	
Ox{pe-q<	0JNhNg$}McF^c\Nh5`sC,ʂ3n  +9x{pe'(3*L1990g^K&L63ٿܠ()ܓ{8&9Lph7]Q~z i<.t$\^FG$3^Fg$n"5
r8Wvv~F[$ =g)mWd (@q' xY2x{e;eg;I'?9j\f	ES(9cx{E-E2ařI9Eey%%yœTL&/ S~a)H^||pjIP"9yH>%))%y%Ee?$X[0@Q`[F28=r)hx{!-a+x+ Y
x1 d"p/!y
]Tkx= ExpectedFrameR0O-9OM^6x{u)-mԦ3j8&:祦Ln2W	@\RJ|s&?6KJc/,ϛohV$1,˨bļL Y4#>X"g

.%O^0A{r]`H~@bPr \ax{ue)7P|\Sdɖӧ07L-`vl dg<aFd'y96P
% "(Cx{uqˆN(M>.m_vFͳO^0An3pN02<~(ma\R9]@	(ct3.11an!X1c7 R 1}uxkҸe 6Fy7{	~'%=Jq9 4_xe'-&pas.Exq 	xee0a,`.02I䄷6kϙP/7w)21D?Sa3lUIV`)#O y($xe';M1ܼ䄷6kZJLV,kr\g(w`|əsL(ؚnP}apx؛YW89'0y
R0x~`FU=
c(Og0#P}Lf5
s{"?xMFq9f/x}}/(1M5Y<ox D!8~`y'OyDj0o;#t^F%'W0Fe4s,G푸\;!'edtF6	2Z#ۿ
2qm + BZ.nxk2w/KrL\ ,!xkҸa 6Fcu|O1!qđP< dxkҸeCE 6Fy"8NA~ ťxkҸaAlrs1*  bjG8xkǲqy		 1ggd|YjUĤ>2\23K<R2K&7@eX2wf
d	g
@HF8.`*0. ɅEF8TcPMFSopjNjrIj
[`H46$
tw dR;'34¡S	%R-Lr,*/.IEJQRQ3˝ӋK'+qǮDӔ̔Ԥ"̔UT%j̪@5	n$5~CyNNiFC2MF|p݈tU7B)j@e:pb>r'<b4١ViD܌0	e@sbg~Qv{W, .M<x(KrMꓛ`\X꜓2Q*Z\R_!!Zt-K+ON̙\m
"_Y7YLUc2X!vc3SS2dPeb )Hq-/AA`H~@bPr ivndx.-L\ 04}xe^ϻ1M6hB"8]npf	 <xe^-1McAFwOW̛>A1)8 
xx~-erJ-,M-.q)JLwK	H͛>Aџ/$3rriI}rBMJf^K~>%1 :!	xk;vaAlrxcCB(<
&(B|w)0	i)2ڠ	GbS'(1 +vEx{e-/\P'7?spjM.pprQ~NNpIjr cx{f-as1N K _x۲>)'p2*L'!_1yŤ>9a0'(59?=/*(=dAP)t	ļdC-Y$I2c l%=x۲)'p2*L'!_1yŤ>9a0'(59?=/*(=dAP)t	ļdC-Y6I(7<]!FW0o!@8k;0&
vF7cR&n+xV'g槤*q) A-W, D
*x{f-Sا1M(5;1לΕh*O_hD2%e[.$P4n$bӟq#"(6 \D0x' x@}"=v	_
]R6xk]βz2y		 1&e|YjgdZ'Ov/Yrz viNm,L\ xk]sy		 1&e|YjgdZ'Ov/Y_+ :Fx. ۞<`x!p@}"ϐC[Qo
]Ք9nxk]βm)K-BL\ +fx( 	LimitFinga-R^X6x[=em߮z,'
P2YG|sBwvt6F)L01z2q ez xB 뇓pq9JQ`~.`kvJ38
]` x3 ۞P!v-܈`| P	h
]N\nbx=,-L\ /	{x+ ۞ʟ<LimitFingerPn{,nxkraE6&X +J.xkre
J7O^89[zLR32D8$x&:%TVNn79`*d5EJ\
@P ,xkr"y'au,v|0&`fGA Kxkj2KVv.nɥAœ&̓9&Nn8&dM61 	ɂSKKKCR+ $?/x, 뉓 {"JQPkv0
]Ux7e&Pe_>yWoM.,ѱn>dy%uyi%~?
LBN~a	6>Obe~isbNNRbr٪0I>rL)м"\%J햟\ZZXZ<QDNsNjƉGEK2&dB%%!EyiEJ\
@P }4}5xòudjz'
-_Wy5W, IxWoEE% i;HB*iR8Pzn4$HY{;PA ޡB;BP/="J3ݙq|ߛ7}ｙ7ߞk{郉K9Pz~;ui8H7.,5C')&nh|Iuǀ%xwz.ZW5u4U9mmk=8<MqֽReu=-)2i	/V)><ɮiԈ߷Ub0	J*B՝zY%~$!c a
V0L"WE&>I$a
lZ\iȡN^_G&r#/%'޸G'Qe܃+bFKu4҆M4+[A^π%sq_5#ӺAM^qǬ)Y$=W0k} 1)ƘAz]c.V7K'c=BlgfA<54ۧ ]x(p.01.zAL9:?r~q
ʿ.Y̪z);n9:Hvzr3IɥVǛEun5?%9:ɟcBgbڳ|4?ٜ4^!P{ˑP6>pK{q~Tnæ4-31gހ.E:3q`w SU6U}e"q+IGl3M₀nBevZ~n3<=WLC=(CP@{)_@!~Ӵ5rty%$EzT,A*&	%+ur]J)%"kԍbd<Ѐ:4DZH$W4KQy(vb k4PܒAG9Mq,.u)<-aRI+y=Nas"!++RLrZ8)Q8$jiqR 4Nޖ@Usr9PL"vQBvU KcwQ!\]jǆmT7{qiCx-n W4ܽrIWcїM<#3,|Do(63|FgSe4GyB?nxa9Ұх+ 'Ux;ŲaCjM2%DHjEsFb^zkYj^r W?x[es&Pe)XR◟ꑘT91wrBn+a'kL
/.q+JMuNIJLVR ZX ',x[2es&Pe)XR◟ꑘT91wrBn+ad.x9ݓM.hb/KM&"Z\_\쓘^_0!Tdnk0*LArjXv;e&%y6қú jan	x9t-7b13p"x9g&y7/y#S1vx;~-r?R d>n+11 ֑9	wxew{K';pxgVMxB
P+PSpvP>F~93@v*1ݬPs' ݤAlXxeJ)n(m>.uYbdSkL:LNx8M`Fdz&wuy' f+9>7ʎ6yB͵wǉ1rNOa4da49Fdm<e9F{/P.&8aFB
P0!kE`ʌӭa<ӹU,˕]A*?Sa >p.x4j;&WoMk {
Rx4yB&{%L^:OOԹ$?7 175(3/-jɾ<%
J2'/-t)J,k\+B t&E`uA{j[~.(ETpF0aڃ9h46a2 WFNV\+U'3/5$2v@
&GcvJ,N*QR ZX bV'x4yL&{%gW\"TļByEԠ▟W\R,jd\RJSK"/:h/	OL(QR ZX Vnmx>sl^( =f{xr,
@0ِ/xr9;o_,:y	'Ih|jD\2r+hc&z2Tn.AV1(D}yK[-Q,P,QePwM^e%*c"pF}M
7%ƈĦ /zn~uMɥALP y(sm03D0a
?foc9yW:q't|adl{ 花xy+_&KpM,'XT\R\R>$E%8($HKjbx<"cx[4yrj;&WoMku|X':$&zOX?WG88YAIQfs}`.E`+|Y$nd.P8.nu1,3ַcO>@	͖wO-OK+NWOf^jHdF)L
.X39`d|N90 ǒ??xAkA)9F,TmVMxImd3t3FS7?G!Px1WB~g7):tOfϡ?Clei[		nC:?,%+,@Ҏbub3|?뺂"7A ZBu"oWeHY5axu@eT7[ĔCtNr]nn6#^ϡGneX-{%7o` *)z1] ºd]u,r%ీ5ˣKz6䃞*qz{/(G&s$:FK~7)Yeղ^`^I^tl!gkmKYQ[Ef@]DgE)h4xIh:l)i&qȣL@Jc")/I,`^ S͍=MEh虷VRY"]f\v6/fz/p{pɻхd@泦M-ʻﾆچrL 1-m4:m0(a\6اܴX)x40O5귬=<[O%
Es[1lvc@08~-Lj?Mt +xoo^q'Oxs͇Ul|&?} ]';L4YnkNjnj^gr %#;SxeKQ#Mmh*Ȑ2˙!x!eJBڷ(AjjfFe9t3{㜓/Es8}pkk4zuh<BF3sN[L)*t=d(ͯ ˈ/le,!2YԺjM!CZt=Cqo?\Pc@<" ~xč=O>7W!:~z%5D 袅䵶$pIȔEIϸ.=-|.Jk;Kx;~8M`6LoiݯS7BZ,Q)~tHR[_jGMENR
'kJٕb48IF
r-L{+Vbf*g&=Hw`%}i/I?xy3&CK2sSRKKsRJ*'rBTHAT日)rlK|#*prA3f6 'd\x[y3M2پͶyukc. Z :x[Z'{GMmWZ\YP_4q	LX!dO~xH$+期WZTQĥ \ T#Qn%xk^!9[6/ؒ, 7Rx9&GsJM,.I-
9E)y驓CA3-?$2)XԈɸL~}&\D{j	H$<53=DKjbVxySF6'n` PxsF&&M_ eC\%A%Ey~evk6[j  cxiMǲ7/ȱeL|gvf&X @[ix}o@@ZM$%%BbH
U$Nb'PuCΝM3tCb`݌P7F$6nt/s~Nx{Ͻ߯7~';eKci1_~J;)cZPy+;.=&4`g2Х^ynmY<Qį>Ԓ7w+-#CxR1n𝅈4&:ń$QK ?6ꙸBWlD٤<qX$wFŧE]l^8R! ?E2bIw"T5egYΏCsp`S1Zqp@	sYCɲ`7bdIgpFfe͞}8-D$ϸ<r@U):LwraJ~"~<ӢNT_
HǞ;OG	#һew1Fҷu9
%L&69+uIٳqBP#_6DOޤ1?*e)Ȧc%XWC&hLDL,B"߉b(B8A'hZ3 Sr|+I5 hx;1<R
9URSR2R݊s=JRJJ<'tO-.)-BR7 $7AE]RJBS!V|;8xgqprQ~N䳳&'V/Z%(5$3?7xG6=J3s:!&瀪 / sSf^_~JA~	Kɜl8G$ (1''53//l1$siQ	7oc>~yi9%HpjpjcQv']2[_6Ymfmɹ_h`Dx}iM+]2S''N|`%渕 IVox}imǲ''s&Vd$VN^o0!Ch] ɉ&Xɶ9ne,3  (9x}r7Hoϯ|`%渕 x}c;LIqqO-q+I(q;,3=$3?o ?2<_b܉e%>y}'
K@3$,2U068@n
/-I-
HLO) z!q?B$ P~U{%P<S+ y	pAbxJٓ|+\2r+'LO\] yxi{#73O6ai 	B>+xnӆWɸ{&:e&%z;&eO~mHPKQbybRNKjqrQfAbuM6	a`pjz \A'*ŭ;$ ]\*	 ᓚ6#dny< L\%p0k`rrjqqfRfNfIep	0"&O	"
oYGa[]2A60WSg1VSsRKp$/ Ԕs䱸MĜRLoCDޖT7s6Iw| /Z	®ӹh2c$V0Y	zCR+倳V@%J\
@P sl~xt7ㆋL\ ()qjx{7i\ޓESRJRJ<Rr&Lf<S&(3"js7 iDx[4&[8&$&gT%gd繦&OȨ;ـ[^,ơP
0891'Y|AU日P%QX\ZRC xdߚ`qtxܤ̼Ʌ|>jr%y`7+q) A-W, a|ex[4,'pKLv`\1Y-<3/%|2d^<^_>#욓Y96Gxv aKxq'62Mvpۜd 	x6'xu['&'fOr|Ҏi|PjzfqIj{jgIjobf^pfUsbNNRbr䏪AMnO͋K&k
rT椦eOg$$Z\R_91GY<8#$xcJ
PjGFP Ar.JM,I,O/J, [)fl@NbrjF~NJj<>@<\Y\₼S 8X\|pjs~^@&q+nv*JK\(K;ZsF*\F><Y1_׊#*.ƈsF"0a ]+tr[	c1u(!jX@$)驮iiUݱ6gZZ10ALUR ZX *Vdxw-Zz/aޭ(~\qq= >bx[|E-Lsn?0Ɋ+ xx[|u-Zz/aޭ(~\qq=Z&X -˺x=]o8Ds:a/	Φ1mC-mmR>l%WU$%R>Zn;NHbK"XU,'l*/.S>c/^9gw9|0eSo_'a=Yzx|˾8񣐽|kbelX,K8'l/S̍wB GBh*f;`	§5L/!<4yqx4=|HFÀ'	oÀg+,)יs͢91wiH_~,s4gYjL#? 9!{:){7N/ǟ/pʎOlr|g_ϓ]Ɓb ,c#5sy$PJC/2炳!-yjzM/IQe\œ'/DɟK8ʖl<9?WSe?$>8=a3 3@&QtF/M<Hg>4!"`AO&
a0("KR64NdE7~cY+4$[%dU>t5$ @B90u3e|6rx>>|xG{ͱ£27nz~}χ&SIt=B7)%{xli8汳,f?!9⃨ 
0M37NCg;_&C?͹Y7禾h )~MNZ{z8E"n"iH&2pV(C<mؿ8bɥ{n+$WWp/PWﱝӳ|0e1>pRY>hh<xɖNB+CN*c%jȍs,>K\j	ReH0sPAE~3/`=Wbj*f(,{LFcهE5cA,ʁ_0!5<oܲNbrX_!NaSH+CU#),oeajt[ќ}_7 #>5v*mѥкXUZtK>fOW0EXD!2I#9'ڶrt`3R8W`ǐ)Xb`~싟h&)nۆ#1-!FlŶ/1gKԾ		`8#VPE
PmR^(b%$z7U/>ndEda?<~o>*Y#W8<==>=?>8<?:}@	ua:ςl]䀺w4e!|&raNj1 e,z#c!B+޵&)l0BDhhrvצ,&'ƟYXQGSJx꙽s'jlVa)WB Ǐă8Ư--MQA=^c*~GOGb;&c{#c	8屔lvؠ	w"0<Gc"2[3^ScՋ-z;ϪF|by2Q@ZZݪR	|2~mxv֎*-ə]6<9, ##`'ёd%H
IR^rvQD~I n61/NI+_{_?vXA4ۏ&o=^dV]BUOSzAJ8@8*:q-f S_ЦIM8=rP6?IBl@k/"OQnX@ߟ$W'xc8{_m9j9G9Y,XaS>@;ٸȆdS֘;% RJ(iJ,Kl2,܅@(40X}xgAgfϝ,Ga_Ѻ˄[ùy9$-L|p|mHVN
ĻtVZZ瓣g<5+YD%$i1j4TgF	xZC>`Q^Fo_8sx9L|;Y"R؃q)!K.!	eP/.yʍ5tS-,L!.%j6V0(M4Aic*Vj/h]t"V'DYY*Dj[S7͜4%Q+?8I24G[ER}\A`G3b\;*vA:ȦO57jhmzm{KGv%)MHwRQ&p1Bc6
3=kC7*ϲ9
)ST1F6!+UȎ$j7qvN0Iik-LRn2|D:O"PyifXe{^1SmCfrR'zd> fWPі
MwsnkؤdO^:C	2p30-PH<eaUJ %4)tހhuP;6ɕV[3=o@DU5{VZٸn%Y: kؤzY4-/7e(\٤[t,
Xrp䬳WʌAl[z0C>>203Zj<إב%xRNݺTuDx/pkIgG.H]ʢuܡy?SyPuǧw3#nA2ͶgQCTo5_KY;|3!"*"BB+xt"D0<(!+$UWZ7l0*i.2a/-O5Xk)7jbp%a~#Hz^*ǥq_Yp:FlNNe+RpeBqZM4c۩OS tGw-S<ɽ(6T7>4crZ]jۇithϐXs8טͮ&u<b݂o'w3
:;op=e<'ص'bÆ,"کS?gv̇\:,~%v*jWwuD1r6Y`|0]O+qh@%̋bRD"K	:F%$+JC;+ɖ(NKT,-7`IAU#Ql][\qjn+
vtU:D7|BiݫnLߺ&C%]/U7H)5o/pɮsS0=rDb؊j^sQvb*jmnOӣoCz:HX擉:?@ޑ]#zlhs;sໞz^.Rh)=^fFK^6q֦--9Eb-[V{=(ǝr
sW{y:,wǎB=g}zyҋ0ֳfc
y;j!*XG_0fV~
;9r={pQwD,lWD+@fCɛ^cBvSKniAoGlNjm4T8_NV/:iZUWKɵ&烶M 
n v_nB`f(w]o}ϼg3o-zrĽm>nC'L`MFS.B~P\XRAؗ<a>(cI?7mtNijˎn-b[U[)KWi/:7MrM764'?OLK0lwPw3ރ2}J5(ES)pnky~G6-UVNBU_OXfrW♒̴BoɅkgg'dR8ۑSɈּG2&Kx1"ʑ(}3;z;m|J*5s]T)O&̋ex
=L~->s:(eyg)"΍hkD*d% V{amDoYiA
ZmѺb3j/Χe6}KhpS%*>N_VO:ix{xqż`}D^IFq*@qZxR:[H#\#~,kRL)`s1"lM[w`M!ﭦ?(&KmLnV˭[vGuہ,SV?L(9]8Kֺ>ĥ&S'SF&^v{[Ons=_MI W7o&}kU"-7)=#]605^<BwwJưfo8,"wMST|_Xg $-uʵ[PKe#j@4ξTk߯C5|w4kq9<ěttܩyVFЎIn!&mǫC¶4:ж+\g \
:/HWvhڴ[Ђ#F]
1XkaI0ryq]g-qȿ_$XO*WOs})S=hXT5Y8ٱཆK@AƮ։yʜ]Uly"P|bC=bvD%et=59g)Җ}-?UgwF7v$_AYUuR%."ӡv>gE:P2^ɿ?͑VNc,%M+U݊RSJY	_+徕.g%7$hw&ax7hn%{K>1JX̗ױ.aĨ'a<nrS˒ntm	`&&wEŢND3O̼jTʨ*+`e!L~8[flpV AB\[fl=gDT(
n.Xk'X~;{V"{Nn!Rҷ(RFʯR~j6*MhAb:AeE58h6M78A*03QEOev.x<0j-Gٰ|zsq[=6^2f4K<&
]'	  7!/x+5
Yt2wrA("ƦTqo͢(@4ɜ|MnF?e?RsLs~2F$"鯦Hk"ʫ_Z-O<Q (k!"t3R?VO7/g/-P8S#bɥ& 甬'KcqD^	PK\ޗOYMLP;DD,!Peg7 ,oVAX-Ǧ)=X/yTrC͆QJ'U9?TRAe3-/ JӼY^iV1P*s*xQrF_^⅓v
\&lAC"Ў@5
灓X}F(nJSb04vuN~ 'd9tr%$~|gABopBWS>@,d;qzC˔	iT[4XI5Gyͦ'%06k2	
OrfcPQrPA'ſ2isl}Wqd@NPP"IZg !&Es!PSCL(taĉRDP>3P'V(HR/Rt6BLB/iR^?5c|)*\(mP9gm6cVB7mu :4֡+lL̗
UǸy e(=/]
D?zVg	$	SC7$Ӽ *~fVӞPH}Rg%k^E3"!t/QqAӭtolleclmb|Ua%)>:+:SݿEU+<8K{;^=oyYCYD;p93`S;O!wGUT$dR XX#P{,&5Wz@xlw1?
e+΋Km(^Rj%7xzQ_^vag}/Y(yq0\`Ќ+B2]K/
עp_}cЩ=p5{j-!R&Had|=p!F5H\fR#Q[ֳlݓgKLۨևaz?ї^ߑ/KV<hJa?^'>ּ-/dWڹ4TĥFcq#4$˯^˖0fȺ\Uls#0|Wd R`KMDp5<^{PѡRkժl-|}!ڇ7 lnBʒő/ʉ}gNXhRtTxj\1 9XB]/@ϤKqSkq5צY
浫bN&-QtU#S=UᨐUq{_ICRISX*U@XP5rh t]##7\^gB{[Mgag7ԓv\TN!IePG6YX [iBt$Yt6ZIV!օBIu|`܏ؚ'kpODGx]NhBs?Jב:Tuғ̧!qotVxՐZΩ-DEtEԺS4-jg,TP7GCnd bVj5зeyn.ܐe,sE)$Y.9P+'l'Z >cgpA0<VpI5I@
*"Tv#[>u\/Gr
Je<Պ32rN9 4t_*W^5)Z]H)~(#8v
Jf!֘P/:WQsl[=VHdsV8\\_30Jfja{At|Cx,[Eũ:tys9ACe2<{MOIˡ0bl-aKxZ{tי?,[Cz!_`lc/K q61,fmlA 6C
'ϐ!htM =g{-gF ~~wf{wlksPnqeRR+	'3o^ 
Ht O̻J/6x3Ӌ*<&OD<ςe*PWY@]neǐ:qd3*rH]D"Sn>cSNI-ByY:|Z3'sd̖1t-Y6ؗY2G"+ە:LL^Og!?EsDl)Sjs:ٯ\˔'x$1[6E +DI4?ߜ#ŏG
3!Ng@"!eBrc1r"aN#r%AYJMr);o''Dӭpr(c Ac15/ѓӏcxNa*ˑ(<:ouطވrǼC8Ǧ0.bnخuDiM|όmAw.o]4ꈈ^vXl2?/ekÜ 2^ȳXAf2ȱ>_ZNݾڄfm{CC%z);!b֗^4
)E*(+(KF=B<tGFipC<sXPPMN*LWk4hx#xwCY 2	4EП^^E
KsULƷqh\ĂI2-`u=g8f%%>6w~>[%VRkeaǜxՂw*ce&slECs'*חO@Ĺq5Hrph?&ʤ۩$W27"Dd1Erҏ[|WkÚk6,_جz7~;	H a=f+*p~0"9Ņ.L?xnɺǦxrkjsqD69t<R@u'i3Zm#	Ţ@rFӑV˲ 4h|߆>(Pcn%V8kԙB@m`Swrhf_kˆnI>n3bZ[YRq|#ybVF
*(5mN]ON4R_^ۛ0f5;a|Nq}MX^i+oY˃]߃f[^0i)f-oNFLLkmMS0gjRG[@-0sZ&ӿ*FXgF=h)H.'QhK¦%/v|-n3u405&΄{2qix-'e fo&Hg~w=nժ9g;
RoJaD>6n4Z襁:!e@tiADhM?/ d:-/5ڂFLBkEye`GCD}!^`7:|6kWnRԸRr\ZV'3t_oc1.WO9cn>GGgVЌ}mʙP7a6-.h-ǐǺi͡i! {EW}f߻nUsaoa]dBc{2FƩ;vW$ࡉ֢.[IJev,3kn)5CcѾ6bv+-`yҮpw½)#oxgOVV	xXmv9en=d 	j6ig8Ƨcsk!͹aĲX{$e( Sj檌wNvQ;#_eE8tu+_N,32݃<r*6;ݢ$+Ui#8,u6x/m^f«>0c2(	)̘mE)6IA$qpX?"[KM=wkHq'a RA3꣉r,7ϔ	o\5	7Iw33ƅM)h޳1"$6y^˛rS-#TPX䚀<P{`m$lMV()roEY}
Q!"Z~#sOI	)Ǧ	?P%Ք:WhK4vVUlL$ߙDEpEJkFIO.NW2;ҶT`т3Bkס!nj lZd#|(dQS=Oy>c({
l8Y/VᎭkC][7	aI#'!5(yuӗop3󗒾)gW;O\|4g	'0[N.gY2qnBs0\<7̋2	kKggCCdQsićs2j1lHy1ⳗ8_,@zhwP+ 䍐UR)w<אrz|˨-q{VF+P J-%x^jTy9j*_DZkkT|DvOE}t]$b-CK3Xi*E9Q&:sH6vp~itZZ'K*`3PJv`6e6;`h%Nqȁʄ #eV3nckI9xMJ1\R*dC*uCa<fD)g%;0ڡzm(*8fWU̡GTR(Li+6>^Dxx1~yxe2އ3\8IRItɇP;N%zEI/M)BGȦ$?٪g#(O~͡lȢ-O=ύmFG5oڰ~]Oa;0<Z𓿘zWM&Լ'cZ>o{!խld)o/4aa+X}h.t$}U((FÙ>{(ѹ׭O~?o2r˂>c/1xܔ5ӟ05؍a%nPKZ1zU!uxNV_>\ς!Plz,sqw#_H OCqIf#橇Qs_=]-v-؋f+.]K<*'pL>,eg-<nm}gFoW^#C'|!wagٿ8&@g[$0d3?taz*F'4r(Lq=M8o->$Jem؆VnXF&\:[<|@W(Y=&t~yAu??=?I;})Jߍb%M]!Iv}qc7:*~7vzO?_]^񣙉@Jc@C2ΖOe/h]m7xuyi"Ať9%
)z\
 &mRKJ'`)[^sB&׊po*H5<Tt'	!' Pr\'[iO!v53Ilvp2c"V WbKlO l&o87?$Efi|$hDx/5)fm'i MBMREIѴyC	NYq$[:/)n#ɚ&gomL&Oؼ>BDM-|f~
h4YGiKH׸2q4}XqDJ53Isf-iz/!ͯ63OI  }mkxYyTW?ZH=	R-	md3	R-*jδZ:vTԖ#jgli̗//==gs8p~{޻m9~_߉вqmOVJc]V؞Ө%T=ZlcX9sG=[
ggt.Epb'=L)8魟AOvrΞ6 B&G4K"\"~*RPO\лYrlUOWqwO)ݯ	<N<r88)P\d'LZ+QPeҐFmfm?Qn%fB0}+9uIݑ5c#O 2^/B/Bm)q<H[*VT1.(A_T3=EhҀ[)I-<ƼP&T\;85/`P'M		A*ȉ@pD#eQ ɕ(odK#]|ʕ_dJ&eEp%jp!L,!)tI3+Q:_H.
A;>Jpw).yQg7Cea#H$drݩ-2/8[Icw֯	!KզuFm1V6WzD+H=ezw"̦BdLPzˢ-82.)8`㯊ˇrTOS%aQM,*$GIV
=/z뤮42qLmhp]L̫È6ϑf-vi>=E:Or\miq%yQ;kqfeEY6g,¸&}iW\N^|$Gΰv؀?>ʋ XDO !$'{TWRq*ajANaC^#9qB΃wR%ꒄc_b'	g͞lz6U5Y)y%V|ttO28:+j1G}dk҂(5L+PM	on&!Du-@Y
KOnQ?-J)A <hF8xs(Yj7	S!N1*Jp";·h^0Sl[waɔ0Tk)1K|s+J=ynیe8祐о0X2Ӑ{<Tr[(f&nE,3TMP[٭G%bȳN5CH# ;̏$&KHϐfLQBHsK+h-s^_4xwyyoO|>eir; 6algSddY@|Sb75m*Uhab)ǐ+ϋk0=1Z%PƨΎFm~5xc:𬬠W?7f(1QDì*d3Mr-]465Am5|T+-j"HW
a['sSdQ~.YdC.s.؍+g)((9Xbb[S &X,qZkRE73L&<g"8Riot[dJvaǋJ!i!nQfl[<Km1wQv!nSkL!lrÓn |JP{)({m#[JL.7*bX7yHd[WrSaN>V|ާ1x!]a
.11b4	׻1SGZ;厼@iWLٶ^C?dY"(~qq؎^líT4Ώ~TfS)C'^qCӠA&EdgQM	L|_fM:%uzqKjsu#mN]n㙜Xɛ9E*B ^FߒrmUe9tVjM& m@J
+_1s@W|5:umU zjx	qлCѸ5s<[&v6!Vi[5.lkAvkbB퍁zL hvѹcv8n?Aš/ݜM$qI?mycLPT@[vxZ{vI?VOwuݎrD8ޭsYsoƦ~PSѢ>|1[s߀38`=ӂ=wძޫIf{3}YwKi7c)oFU`8՛G:F] lD{DV2O+EB{gz)>R`ǉW*mRjǭ2:QY?iR}kSP 99;+Ǫx$v%u"\u\[LZ[f6&3xr>E'!SX꘺eJ1p'H:O=g$pz%ڗ0*>R6&1	XUݽ^p9n8㊾^@8&ĞbGi+nnL#ܨ
ghꢳaنYS!<rɰaO"kpta>/N_Kٴ\sQ9#d{x)ݗ8u)>6cew9yrN^uo&Mׁ*oķt^WZ\+
7
_T/xi7L
FO^i89e2d ]/2x: {#*81\4>8@	GtpHxki	6:M4x-&3jmథ uxkʴ-ӆFqnf5ʵѣ S
xkʴӆFqnf5ʵq>L@nf%}^l`ޗ),`F4Cy,% +'O|A{M
l\(  /xkʴ%ӆy9)
6%)y%vX5&/ܯ	ĘKIdrds''TKm~4o2fVe`nrB7KCofƴyfGv	o@'O޼+#4R_p24D}T	mbeS\p%TE޳=KbP![Xfs@TTr*Sǵ	X́sLgyS.cӂĹZW2N.ެdhnNff\}fL0͂H}^"
ўrd'9dfU -*nCxi[*'e :y~fVv&dڙ6eCU#pd5SXP5k(/Y摘:-ZM6y 'C> ?I[x[U7+L5	/q62Lp៼^}sFf]5pOrmx
mp縻}	dPwB<9^DGȴGAp2b*D@Z3!Lb(5ٿ"mAz6ͺ%Ռ(:ul֮xhl^5Pǵ]u:ù6!Phh x3@x[+ӆ.i)i
9 ̥S`\\WbǥS$ dmcט|d]ś:m2Gl)þɱR'G*LV|Zd$CAbQbBHJ,\=YF|rٮ8&+L.Ȫ0#Z5ܪp}e&Opܜh.wثo4vf]5NciT#@*M~ sm>I1Mf|?$tɯm%'s
Nh2dmLx
mp縻}8 Ӓ	.&Be #\#z;<!Ɉr'kW =Zḧ́,0d7T3Rj
ױYDV{y,Cw00gRhcCDT'N~ʳyW3'L`V~fYNE6$1,(/'h)1Ej(y$N(.59UkIZ\8
pqkSe> @@sx[L2L^]urLN`9	fg'x
m.`|c*'7N.\$8d
9WM6ל\&8YDIC+J8L-GUlZ$9·m\^@2 qRHcCYW1es+ sTx{]6k.  Gqx1KP `۴WIM
M_I$(6P4 vh! I8(.9T98tw|Oa)ʼ/[moALVF,I}jvnȏQ0`l8ؿ45R/	I"TA힀zi
mQx2@0%bdPtJyV,<3Nuj=`X)]DhUsyI'6^*nnBJd\ih-	e0NTn]U@x{S?KRB22rSK2SԒ"< PSPZT9y4siQYdEY
5Ul<'O<WO|$=&[OCpbd 99I^b|$5+()AS R,#1/%'urc*r6+ˈ*u"$U٘JjЅ<Є6߮0 eVxj0C)y=ORb2tn+䀓!S/ڇRcTkB.w}w';bv	0C}skaElU)%Gj(ݲ"hxրD+[Ӱ&0	>~#Ƴq=L%jc$Gٜ)=XϬrz%Q	oz/emŊ5^$_}Nà\U~Q5sgx[clCnͭ&3oc,/9V\ȰڼV	 JxV[OA\TlMPP.^b4&MF`K*\
%LH+(zI-liOLnMvwpMP2Z,?ӏ>u U7ĵĦ]M]m1ixh:̥JNGɒӈՑr&NoQ5iE-h|	pىƠgV?pv8)z@.gA#h`=mte%K'<Q+MY/	CWz&-ϿPsƸ(d襹?::]Wpl$-h:
#.~=K]a&{iZN;TXHyl?ǆYd8ac-2GH!F#we2%(s=)X(:p
Q]&"=BVtYs򬏋1kd)[]4 hB|7m2wbcnwkNQ$oȇ_u]L'a WZN {+uK3@vU^ZW&FA\2OMh4ڸۊh[5rxv	MSHF&.s>"d(O&wzL+M7W'Юs2Vĭ>cFp]:vлlHDjF2G}mȹ[MZ5qp;<RT>q}%e`l'ӉQ3Mmr&c*PMy4PR-ꑦ]/#e2PƋ,-sX9^[&:Р]Egq8Yp
,QlOV{2gQ"c7lSx[nt\k &]j	x[m:lETԢ"T=. RԒҢbj̼l Pxנ xgx?vMy;Ru89{9xn/ -ixŖNA047ą BDt7jHMwPSڗpgޅ zj29]U_9>5M\ʈ@ `&!ĖMգ/SsQ2SK:FmK>DQi<@6&3)ZqIЮ3^ 8
FfMY_^[ꬫ5}AfFWgVCMWPkHHg /̡6ч0D'Z<usl}hZC:@2
d_GWf0o uw=eaղJ*fqf;ISIA+*Di+?D&T=Fڣ\tk3fEWE=% G6 Ʉծ<Xrmr;&	*?%l\BU;/m\^<DkURѯ|7	`K	x:k(i)%N7O7Q>1MWIxT}fXySG7fYӡ=-'{w+|jC#{Ӈi8$9T*g>b)R9ȡ"3M^IYV83>߻qY$VH15|%IBX*\1Hd DP\POπl$W10x\pNIhHuYG[LPl4rg,o\9s͌@=^>ɧ+ؖB$QE(V81,H]0Z9cΞbE8 *.eQ?h?Ht땉3nݙ>~U؛ҒAU3fV/#ֵx]SȖ]/	E!3sNclOp0eC)lYL9л	Ʀ*[ӏszw쒖;i@^ߐÃqhQ5Bcf>o$tL`JIsnxGPϷ\6k|x̸'ЧP哉eSB< Cln[Y#jad|u(0OU|A0ea0woWns6EKǦO<=1@qG\gDyV`9{w'QƴFa$8O R39 +rt{XUwyA~^zgEw~'ͳsG(Hڡr dZ(M584E$s:&XsC㚒kzpDԛY>jMƶfV`_.oisn.3(xKO]3~[g	9[ˤ>1kd Zf5=UD|x ?C=ʨD	Tx?3=I,rn 7B!ħ(X($ٷ<3@seucfM'<r66H[sDm<ûFƘWw9}>ȐYKJ*6{
xk`M@@M3y͓ާ&G
;c;Isvck+!~NW3#H"Hp8ۡv7x}uLk3T>k9Y xCۮzTژXIVW$*rtPZE- u$G P24z|o.!vwpGy3"{FUEu<2;-`
UNzwW3-k1;e	<l܃mGӧ:u%b=MD	~ X%öbU<nlYL|?vJb+'%A|NU<?4ݳOL}5 Yc"S)	"ewX{Ն&34)SD_s2<	}O_ӆF4Ȗu$G'H'x)UX0(2*|4p2Kj VFq{"-G=pY|c!b}22<8ƭu$x턈JFbow.Ո>,Ɔ;us〹U"5@S#;D梹{C. -.A;Pem"A+N	_N6'u芵w׹uo)u2׃y9Wmז?0¡M9	ǘy3d>;QEF5zTxƮ`M9FޕO5-VSԛsgT$Gf4ub($E3[1{W)tWhᄋ):Zp.`.'5b]zS,:4AFPҰmYXۏ_{qx!k~5!9>Dā2*hM(aپhQ̗׻7q}Hm2HcF.vƑsA^[2H_߼V2[U1\v}FYJFV'(s]1cqܔ)!J=9-#7rn{aG Q-v=&Ю[y<yYab<C/ӠD՞?x d4/
oJۺvfxor?b-ϫIטX8n^֘PCw2~GYY-^P2aQLl*2&Lǲ:f_$nr3Rl\#UkXYY>BEWUS_-0A^ȅwfɣ B&Xg?eNShW\3UL {5A+\a{0ώMh\q!. 
a4"-l%+׽&vppc%ڕozF6}rH} WݢHQU[mQkȏkg|D5ݙT%Rgkl'n\)G{nf5|vnr
*k+BY(ۍ PiFOȀֿu]I/HEY-á aZx	dN/҉	+q˅[ZxEf7Uoka6GlLvݙ'>2gǰK}^4 |vY83241u6U@űߙY	VmYO|/}4}f,.2&GRp & ܼiXcQ3};Q v|fzu;?Q0`Le>?AOLɞ	$8oo	19SL</Z?T<ay$ ΃ޕ%/3u*1.ɀh|zpxKbñfƺI4#jQƊIHg
\qHC>.udaT!nqP]q)v/cE${ܢ@@F1Ou4E$\BZSܴ6)$RrD <9Y6qܶ6K^FX`#'&oPP"V2#bXS1H76cG:a.1]Wd?oH3A/| 9(M%&+DO`pmW!=r*Őǅ
B-o^GiOFF
ݓ'*$\+o ̀[O?nScA5Ph972Cteq"܂sؑkxQp,ɓ]͉m50NL<BL1o	u)<k|	ftL[%yԏƦvu%M@mb}c0a79:UŖ:ӽ(2 -h$^T"V.
i\<"#rƙ窝{fm!s[(2]
?®Fa:"|Ԛ~ױmRжRiL,W6x_\'\≸9|7YnUD6Mnp=VOLEY1~uxv`v5SͿ޾;ׯaʞ4ӑ4+-3ݐ%ԋ˨X{%$tBr-Qxj"*_=ng޽@QK]K&"8p'qz1`o0h2/BVml-ewƊlQ5D$ -VP#o7-2A*Ui ja9p*I3~yɾBR/_QwXKuMlnwe/mfר3;bd2]'{:<E~YJ(u_JEI_j%iK5R꾔z/m;'B2;CCIt8rST>yza
5z׷/ƾ~
g_
)fIO;:9c*\MON[KD
ڏS,$/e9(xQɅXXSrqbUF"Z=^q??.FuqEhMF18s?id(:*e'8Bv;%<3FBL\j{3oGv~($wΣ"NVQwfIHJTDF%bmh OW1}*wMw<N}.iBM~JTyT`2ϹKYc⪂7Ŕ%`P klq2rEx,eދ
+&pqIRLl3NTF4Ӎxx{0@':aa0@=M"&yuw)m];gy	O72_򾶼,;lqV$g!dji0pφ}{#^V iQV浳cxv3MQ5W!45 Mw'ϲSx]Y{,d,>3}x˨(QЏ!N0n؝|cjRjl'&.VD͹5TN&V@Y%5.x/%KfI&L⋬(|0xس8=n~ϩn+W<o"hK[-Y
SzAqEZ:,˫ob3)+Xȯz lW]rPjhhFh2v4ڎFk]m-L~LNGI25SE+Fz(U&:5~F.BT JdwJT ٙ5_J OaVeW"fnfGG9Q
*V/S0-xo]A<_(Q!R~NVQTj~:xILo؂F*9쾍)s`ca.IӰvQyx|%RΚvӕwY /^y48nwy1;Yn!:Z'Agxtyq;Vb
50{WXo[&ìS k9T [|3}GX@WvMWvxQU+f*sTEd* iZ]"a7#V"Yް7uyJDOڹh曼/&?C!fΕb͗dM+^!5o&:QX*|Rc~;0圭Y%`S1'^3п^
F{JS,i.dO!6OYsV/#/YoYjH/Wc/%եthc2HA2YKα=0a0rqDE-e]TD;YU'^tXRÊ^TTu.vZpgRͺ*^嵶T#l3%"h&gK.i;+c ycҜUY%eתd WI&1O("zt',e).0sɂ4K%i\R#	\;\* T4J%T 1YTʞ lӅGRAT/!zLHu5H3l:JXkD3ψ'zl:&kw'P-xIVrrr`bh].zdf}_FEӊ.!oƦC mQdPkgI2A\oԦdF\'0lD?X" Qz+il|\j{"uןE Iג.054lfr	z4xΩe6=njA_7:oseIp[MLm{uΊRlgXqt,G2a02{xUmwkRl4ZajaBpăuw]g IjQVwha+'J֑c6w̐'[6)"gMf1)̠d`I:ӟ
,(Ҿ]F}AT"bL_qXK&ߩK}|HA`XO_,fN[z?q8rwiԦ Q=[ob gû`L>L/zh7BSxP=}YA ct&m69]CW??pAzlFH`Tw#$@NNυܔ\L}ʺYȶfx撒`n:f$.V}Q\Ջ\luY)HLM(562^D-2ˌ[߿ [`#}
]MZ?{*JMJSuYVkQ;WqG@%7v/wJL߸l\L(W>C^*^ҤD7?O Pcbdg* x=0	~O,6{w%Ll"ߋġb?aн1?bEv kK_fsͬ hpN߂|_w	vkW^fޢ+[xyWM2ftݵŏ8@+S9-uyj+L[JtF4	vv%^Op$[DOd}kʟ)m<ʢ<Գ	%G5&fq+|V:KE)QO3GT>IM~_PnȦ׽/X8}']6Gdj:݁RGc_E6w"ȭsyQX%VD	s;Ç(e#~}!EKG<FG~{@:DHx}i[X&փů< E#x{uA<?&ns(N fK	Bx3 79dI!/GCc fromЊrt2^#_vhAx$ ֶ\
äk#L$ 	yYՑAsx( {@/ ܺ܆H0r)hx68-6|hh1jԱ*}$É	\-Ww1Hdcf Aa"u`
DI.3+=
R6&"aJOfڼ$;&#I|{
2`2Y0RU6ͬ5E0&A 3S6_:n>SeNNf5Y#@IMg*];ʜvSa2o˙	S4af9a97?-_3bISgUl0	kܜ3wlם;sci%<ڝ0&UF`N;ĳu\!2oseǫ!N%Alw&&*~
++'orYx k"-(xAkلKKRR2s&?aRp(KNU02<]jeph^f^f	PefUjL~̬g
b K(hiOGP?O? 3EV@ga'604IEyst01 1l
dm%B.ŉ1 `TBv3)F]UX`Poc<)ZiPW	hCAbQb.TD3LyRVjrݷ#2(5&	!Y59q~%:eB Qxy+Ʋ͟L XVpxo&\&+(nYi;a6L{ |]#2x68-7h9ya-o"3AECR`?) uiS`"idK#`2y  t6)ȀZSeNn&Wz*K]!zj	}W,&+	LPk'CN`J6L&My93;a&a,;g6~1RC`F_,	c,c1V|&:awsfN͹pgń1md5]h iux6x+Dp_#@x5DTw3ש$DOaEudr_t! Bx68-7h9ya-o"3AECR`?) uiS`"idK#`2y  t6)ȀǕ'ʵR)Fw(srB6K.-}Ɋ'Z,5!	t$v(sILɆO	3/gf'Lф5,ĕq/t^*2|a̈%aLeL0fЊ0VD'ssLɳ97\w̍90,kwV<{V9/`6rNkľHn:Uyޙ`ys ɞWx6/-'/ZSeNnR2+OΙ;yv6dr_t"	 hx67&m|-&Jl!	m.pbr7_f)
 sVgx;Rz.[ 'x;R=zCn-mVk&KLv- #lYx;RzCn}K (j4IxXOG)D!nM嘯(&6W%-z;ZꥇڹުjU_?Agfw]{mlZ{{3/iqslZ$3w!}B`R$SDj{h#Sw Dl-$j,_ODY0@Y)
RNЍ,cx,,~dV]קfȴ}T
@aU4rD:z++},JlzKִx=;a4jq+(,`ﶷ/:z&$&bs6|/3tNL+w.	|k$4&R8>K#fC&"\0b`ߎOoFV&WzLd5L9ad#lyj=!hS+`P[ȌAGFlGބJdԖn
@ *MBfXnʥk9nZuWW@t@Ązc_\_gl
2E{[) yw|X+h_Y-lm5t{%qz坵Rp^W1 ˺&!Fgka25
(`jy?T}Ԣ4ά l-T^{s{pW!t()̀&H<ދ'[X
ap_FmrFCn ygmt=Ի0ȫ:)_zv|z[jyRIssQws30ହLL31
W?W\658XU2R6V
;msg3K:NLJm%M6b#Ŗp)ZmK&y3xGOYfT*f^JP=pJhyjwsvAՕxcvE3m΃ׁҁГO>&'M`BE[j"#"'8UA1I 5
`aBle;5fQydԭ0M3q
JAJ{mt[:!4R)aΜMxZܡÓء\	n	U\!oܤGtF	XK꣝k{aygt|yGEH_fs
E
[ԹcSA9)U\l5cs䩘\usUɤ[9i-cyD:JEπT.jq"0l'Y޳.ܾ9^6U4yr"{u졂l@S]<s)y/Q&nnhxPiy:=6댏bj50\O+c.F#1}zZ䳾iFn.-1Ma,ĊY.u@P
P'R6ʛc6h"Ț7~'gh7H!>˦JpǃMǠx!)qd3GpUh*eoD:[ԒIMuS15kjWɏ|:Ƨ۞׃VYcT\ccz ``I6MSHhY'N $sc5tY Z,xA_\mi{0Ʀ`mK`I{Qܩ.ȁҌqR
i63㯋)	<Q-)#668^][K;gce3×X[V	8x[4;YR'qM.eZQP
PK)MI-V(.I,)-VHJ,RHK,LO,	Fl.8aya,cggHkPPBfBIFHhpfBjQQ~D/)o'
lVj 7)XxQjAeMiB]
!I	vר&ICX iͪH}|U}ૈ ~ eΜs;%|I)u|1Sϩ-)N{3sq@]|E`? ؇M.	ِs%%MiƣvUxy,ii,2r`ݣp(0.;}}#Wh ˾KZ "jf9Eup;m{`[cɋ, ʹǑ\b>/r|OfcD|)lz ~{g֔Eb,w4:J=&Ku2S[vB>&6q`jf߭efm<nS!)GF]Y<]H KM9;L:[*WƹE>:;#>M~jƛM11?x̪xu.l_/=WJ#,+=xZ]lYmxlMr61[[7ۦi{'ϸ3:RZl%@ta<la%		!BBT.;3NO/߹|s9?rݿ»_'1)%+c]\%Y6hrONUBMfWQrG'4Hdѐc=(V=d*.Qъ̚sBɚ.hmi
ԑ]&1	ύ|FetpqI"E:|82t%,M'do6^{j*XtkkCsGbi1%IϞDy"u#_iPG/vRgՁq*!LLE"b
vJ#
ANP:)l,e?ljx"cHY3׷?߯;JeQHwRZaQmdGב
D=;!/JdHӬeAa/k[Œ( KუBh8	KãO\czOAyB;;еqW{TqG6|..J8m>W>4_qKl BDAS7ddroRs"RQjo۹[a~O9/ᔤ32SդwE5]c><n̲[aF")jʹAxh8b)Fmώ:AaPPuPDp笈S(,|+<
'T=T;>B~1cgP>kz9v*}`7(,JJ2X	bSaL'Nĥ^sФ}l1zQDRBcAY+N3Y+2!-IbH][+"r*AT #o-,iqsu<k<gVp^TLB=4ӡd04DIn6Ho]b2 u[w0JrӬhZr +d=`U@xUz%YLun9*S|ic4\ƕU uG4\=2qqB_NDlc^j	%ܶVDd^85R_9׏"5A˻s?MC}6I+{qS{`t<:qZVk[cbxK=P|5;bXXAEN^UV(8!uǳ;p/nBӓ3vd:Idq`3J40Xҍ5	tsT ?عQQ2f(	epӗj]E(dcy\R4rJ8!<Mm;fZ7NgGᶧS/:*ۆ܆-ps$f'ԃ'i
*%OԄE![4o#_0_<fnˊg;Q\?{ȡ܌oW>TVܤKWE(ϓ'Y'=Ȳؓx1?KB"#NS$,8oL d%2\IJ.uEN=Gٷå;-[_QۻVFҖ^Q*'}.EڿzuJ<Mh<Sezў3<1OTQRm<C]QEZdzRoȦM!vbJp;j|YVu&k[7Ct)|rV-_K+}t/5-p9()ChQRhDɱ9#ܜlce5]k2nw$]ɚdI~MmDF[AKƯ(~y5)N^jބJ^*j̣׍*COstvz%ŧ{
2U܅+EfxfӞٔW*-jPFMnDj*T5"Gi0 8Ȇ!$\#6/ebɒc.U8{ڂRD2c*G3V׿Ta~CsCP#xaԠµƤ?ExM=xE&=X)z[/QiH}qj%p2)Ub"e#Y
>Ɯ\'QE,ek3Ix6g;Aiof4!|akS2Ί͒sUpzL6:DXyΪ[e-FZ*&4lQq(kay.91/$"GYj(-!ͬewB	eQ^ʓY⤨MATc_CI@'vʳ4eYѽ`idSQyê3hV斖;b"\<StZBuÿ{vQ	Ùֵ3SCJ
=5ESs.c0$&Ip|S^KfM:whVg`ĆnJ=mm{4Z, ˱XҋG<柅a	~|sJiDa>>Le@;lDC!2nX3dI(iyA!֚yu+?xı4uݍ_ݣ*)Vb;j&U[5]yIrp
l "깛lwit!6$
Y.ʙof*f!KfT{O9c{]W]O>|'_i8YxUJPEhA]	Je-Jt!-6
B:͛'!)],]u d]ޅPĻ̽w_[e	PrYe}4w2TmФ '2D#@ܾ;zwiX_>jyA )(S?ٷ,
C).E6M&un,d&i@/G qH 5wfFs9s0[dhoD#Rod-u]rT}x[q웧sdLX 	h!x[#㆝
E8&_g2O(IKQ(NLKK(d%甦+$+$%)$U%e'd灄@\#B\\6p  "(x[qtV2;;x{yĻ*d)d*22KR&'zN6H	|;Q`bV 4x[qvn[9V_[Or7owwb2?o27w,(n_ &/1 O 
Px3qkM'7KO>ts#P`-$B2R<R2r2';XJHr)Rp(KNU04R,-=&f^b.&E&;slEJ:\7W 3(Wx[Z;|C"f9ٖmngadg`d7IP^Z((X(jb`ēHP$ͮ|%LD(ZXkAL/bAmya7A6G n	92S1
'Kl6#JfI]sśF҄N0a|L13pr# 3Dx(yC{IFBjQQ~Br~Jh)@PjIiQ^BCNf^cwgkPPk?W;#}=}<]j'm~a8dipls	opM]8&7m>/~08%0iLҠsSA&ɞ<*6wmT5tnz4҃MƓ-Ò3\x}PKN0[.0	@H]*XT=IFuȞT
, \	
'aJlYog~g&l6(cW,v<*=>xZLWQV`jTArP k 
9԰w?8t:go|!b9PѲ#3*K˸,EF'9WXK;RWy䤕}aZyT:	T(gKr7x$v`'ѿyZ[Gg:_ϓ/Kx][s۸~ϯ`ͼ$*GIv*,ǪȒWɾ(H^d+S߷7W*@wC 3uƳnB;}uF{bidm
A` 8>11wDto-NۯX77B M4`UYf˕m;ʇSb|4yCq*ළZP(.V>>oT۬<w{I%+86}#	-<h
29jiG]X滋^1-?yt&D@k֙hoYgҟ!/f}ǝߛhh]hWSx~!+[ bZM,8!$&e"+bXˀ9~K[wM<Z|HƶVQ]EUA7puo7Y0@4knVEj0, hD3rprYRbTqxlD6#H,]m!o!$O^Q2god#ԾKϰ!y뾏]USkŶms۾+m
mTMжioVnLfδ7Eۛud?ӯgC1!%J"QJsf?1${LP~'Oy8ȤC@ЁirJB(']n6YաKû%x6 ͊R{T(my}.r]ID<wmg gbׂ`:zT{2oCtErE-\L)P/A}p0@ߝ1ħ_I82_kd(pLmtj+.7tqM^gϵ^Ic:0p1Q[U]>!ՇW$0Q`4bt0atn`"ߪ0QbԽ(lnD0^g[Adj0]x4 1JW
37Vg8SFעPCt^0UkZ~_|;i/b6֞0[s L>
)Ra~sCqhJ~+ȭ?qI1ĳo(c' K>ǞhB<<*鳹P6A;M{F?MT&F{	No^ō`ĕ˼uoƓxv=Љ	{Bq]6`-YQ,a04gşTt]Nwd<}URFS-${|9ǽ$)!YƌS{k,?eNF.P(}Y&AQѱ+2pOq ӈ@(B8UP(<R\7	wLU;0/hY3yGnb5! y犀2 LȧV`Gc/GdLzUƝ֓;90x=!1Ӣ<DEH^^<l>3PE[%apB.!#9OC%è|Ze0UQqnzi~̞$)agXJ.:]X9xw	Uo;Eh@!e,~F(rC^O	<`G7ng:Tⓔ.(nfi`V/Cpt'rhVhn8TIDbNl_JiaL1iz>^K}.0*A` cM*OLAcud!lOg}7uWF

{Vrїgn-BU#5Lcum{md+˱gClFh5/-'jPPRJ¤CY`/3umV4q䠾"rɞ{w2*.t<Q-tB+0o
sh~A3`b5'<qÂi\,%5c6-/w.Z4׵;JM0.Rx  IrwQ188(?QSWC|3iV2ZL` OL=g
di+|`'!%.\&7lrC_^bSݲCT%~鳠Ie+ٶ<:;WioNX },]oS\̮zW1U/_Q(0ȩK;ttK>,;p\&"R~i	&0^ή0\.zS{3C<O(\`3hӊv0ލ%L^ƝebK@V1aClWep>s43lmn_u	qUlP?]&la*q*I4fjO3BjsĐbZ&|jk#FeɡL{ @Lެ͞9}$X0FlлJ8Fmx#6"Z`j3OKh8i3WTesh{؋3 2%$[x˃89(^}uKWR$,6Yj>]dh$iD&(M\Hv.J&Q'R|D,Ň@ǎ(;8Z		P-U,Q|tÂEhV2X\KQ C݊Tp2#6}s(_oQqT@ƼH.zTx({53|'%3_JG~,Ҙ׋~7^QD,c	rp`OdpKv.rKJ2|,{m(HG,N\e!DfqX&s|3ף^=	_=zbxxl#zM
__٦y#Vvҝ%Tlfڥp"OlM BleZn眶k~Sʵ.@El	Y{~}KVkn1G-5\KAGQ@/CƏ(D:Z~!Fß(Eǭ
LA G0X]
T/`!
-i(VdciIuz3GG,Q̇[Z}#ۓ&бkh)G^s+&q SX̬2/ؖ&9ۤ -Dffo|HJlumIR5(cS+&O.yz8
wah_zDZn%O(6P;!X%{8}f1:M5i~Ƴ[Km7gRY
#?+[~8%%SϘ?У&1)Nhʬ?p`[Ps*W.C[_g%_;+^,Qy.LcJKH1AY~j$OX'[0TIhb㑗qKcV- *D-ti"^!1Mz+;9TfXԜX1󘠟3/sf0͎c&NZmcQzhVjJhv1?hPѳuPepdDs5|U<Lvt$tv@v>pYW2)mb&ݒGG]Ui51A8ELNRh`lgD12`Oe
:I%WՎOSCGQL8e}㪓Tގ K,Ҕp/~*Bl&L8T~ɖФ҃3H7ڙo\M"jq)aNbvwtԟƩ8Qk|UÛW(U0[.׶Rʇ/gǎ{D?t2Qu$&R]5cQ-ـ'v\#7C	֦q`uRp4Zg:YZ
,Rgq!YX1B~"1Jm%u!tRZRu^ϒj|VZ}}%`->>sAW]}`qeFULrNO927xղT*RέN Nf.JL,|I
)(ڀ+K
ԞM
N0v,޸llUu3F%`i=.V56m3ԟp-{{غnWԪ__}=1E,`L]JK
H
¤H^AW4BrŖPin>p\Y>nn.32bkL)"*G8yvBB}lZ)ᕼu˯_NN_^`cK\Xh	R-im«P,DJq(۴'N%P?5н /Pe 3SHJL9ۛ16$îa
Np{N,¶5˂hqOJgo"=͜~Mlh2]>zJ*	ÅO yt`-M"S..F$lRj ,^ j|xE;MsbڌMQRVhl(I|Xc~.eKI׶@lQ#6{Mi.@,{3*p1݈}a#hڦ_VkJ,l&ـJ\3ڦg8/`>ܾdC{VH/d_vl ߷DJ79!ftKN S=|jRzH.7"ٚVVgq8%P
_R=}*n^(x١>:td	8E7PZ?@(b<
ɝ 7y2q9$.5-]*k]ǒqcJ:Gcx3>xeiܠrneRpGnGzM@oAdzvAtyý95c!oQi>#zNگ]ԙW9ޤ9Xs7PKW51|%VFTz/͠rD;H*O.bmX[%^%n2T:,oWRU1Dڣ0GެKRKcn>;>Xd!&mkeA ĴHUq*xˎzO"G+ٌkRLcUqS~۠bg5G1N0n3HHѵo/RvL\oE]BJ'OQ慕&7޳'?&Lъϭ[L([>)oBqRwLn=Vf]작R|Gsl#~hwfvA!GYwtޛG7Tm۾HR@ϝAUa]O%/u8mY4s,݀!rL+ur{:!w嚡MfI~Կ-*C5SW0BA'ܪBЍͻ1*:дLB'NhMws?}S'.B{}3ڑ [7+;ϳ).?&ZBs/:^B9fк-Xx۴y|s'lϱ䄫A v$
S!#xmQAK0EzL'~;9ˬn޶9,*:tTWT.h4<#rUyoo&PCy{ޗǛ)1s)s| D8\]nH0	TE4h<uI7BburvuY[чa;>&	31ń#4E-+AS)$ʈ;NG0A$cEm~cxf(D\IvAqdmǱo,{TO^Qxc-I b} (*ހ2{Ō^HdE1gTt*N*RJMX~sxd_X@TNgrVgmDA|Ř-4{vz"z|&x5ӆ̛o0pm9?̩ 
>%x|Ŵӆ2\
Z
9IEE
@:195>/%[J86Z@
Z <jcx|t%ӆ(ҔT⒔̼X7c  (%x[kpuR$7 | $/ɖHQA S$Lzq؅w|X$Mub{q81cǊIvU'L^I3vZ$I4N{> ! iVՌs]VOcg&/aE*;]0obC(b&8Yr^)逿)inI:E2
86)⬂9;GaoAr:bXC̯q^bVTJ(
/ܾ(fb9:gf7s
/
51rYa0D2HPa5%P:F\eduȼ ;;nxp]_;DmN嵷B]+a)yPkm
oP%Z."s%S`uҷ u^X@:<@91("(y0\ް?[1Ǚagdx"gPL\ĳ8x5Ay7Wcŋ+
X<W=D0#98~L2yYw e:\nP$ª.+d	-[ޯpR$DMi:jVEi՚*=T!}GIG'

m*wdùUqmËÂGߴ|wM+G<$<E"XZӋf4jzfD<$+	OL Nd°UFQ^aVM+࿳ьubgљf. rnXӭ3RY$EJv+5a5N>鑋ҹ`<,w76<w	kS517j䞮R\`.9-6;?w*SCdu5iAG}R=aCg+yXF"Ki_$5ĤQ|B O:]M%2>c5|xqב\y~`n9:måup$uĚ:,rĴݨc1YĊfQ4::ma~v07P
nۇUyb`XQ?ܰ[Iߟ7jc)$+j,gKHEu14afei`f~arSB	%E&Ši\Zγa *!*qTdM%fP#uyݷ8.48"i=[X]L)0'Ix9t
λi2hb&hhlmd&cHNIo7h+ѥfo7!t"&r+j5W%ƵeKٻAv?y)6Bn&'yu4Z.ve&=\$3Rgx*iVq-K?D!$)mj0T\	|k^؃k[Rh-|Xqkf10Q31ʤL>zg=Qi(AFxcwd}U' NA0޵gVQI%KO\)𪭑#*Av9Sj*N\;C*TYk-JBd:2ΰ2)G:Ip~^fS
QO%D\`:;/C';%gEdY"jL.W.gb|<*aߗ8҂BJ&vQ UZ0r&b*˲7).pxlNnކTR%Rt}!d{z,c{UerA^e~gVZgzs@JfyYaG<NʺNI_1fgiC^bidZ8Fad$zfM	6pS hY=?2tC?M)$mQn$Ng%]s*y>Y[^&G(m|f0JEN m&kZB6^~L(hK%#yy` IBN+C$ZתdD_]~rGxzEe}obwN5юɉ嘷evfGk&5|isǄ睊H+-0cC.+DsqUL8ogo1LPoT
l;q .OO09@;lOH%_; '_vڱwW&IݿJI?oZZo:?k^'Fw5(4t>-3u5AKmrHMՊ]Eapt89([Bm7Pk]#jS'> Ө4zK T_UbP=HqN(LYMd+(GO=`[+)WM+zdC˭{r(җTQy 7mO>4i-gƭCgk|*M&eN멑汘+*Sx"<'0|ԈY_8Vkn_<`I-X^xhh5?.WRᄉ[2L/>^XXI5C%V9s`]h+LuX¯CP?AUR(呈Lkpͩ~	mfPkiFnP-U厈K,֓& 1r *k5 Mh,H7$4E{!)ϼup7fKXBp32a_!jOUƥWNl^XMe'g]u$3EjHG-90Xg.Yf^Ƚ5FLb$XEmq*C,oR3s%8/>PPuK-ݔ6$J2+bihr<4V2ksqj#Fi{1Hon؂ª[m.-M{{\=}N|SFg\ Xm6in{NpW<ͻW%	(kn.$\wgxN]io2_3Z;f{m@ȦEgZhd7W폷kAAn&g.
Y+kpw3+G?\!{TƦ요neRYکFMw^;{f9i-	z/T{qS8/\gkuVU_E?P\TkkmNgC5P"gbW,s@H-|9ͷ. Eh57RJvuBP
>k3RY]3ܶUpdﾸ?vKLN, ]!s~1.JU×p%}.aڰzy<P?pɕ5}k_13<a}.lH!i ;tdO:>Siɯ!"lUp_dp 'Ʈv[zKb_gNc&}ܜg~A",}ţ]5ko.~C\{PHDC28azygz㔍\zy+c VJ,|íiUh#%^C!U7ޜ	U}Fl
ٸUVoHJ[-)kF៮[oYoy2: |þd|)i\Բt˛U]<Qf=j;hqeؐ,a4x.`y
):O'WeviM^Fj@daXx۲dN7#;^wqR>Kx͖OAƃ%6@ʇǋ`tRڊT0hDo&&&Lwg#Yܝ+J yxbbbFI JժHJ'}ϳמ0iC;h볡!WGӆNH9+n^J/㚕)\3.J/\ZRz27+\g^(~)XW3a \UBa83^\5o$ɟ+S09G CRN҈.$6@чLZ:o;'>vpѤZӷޢٙ9cÉfJ\ B3^(9TJ]rJKC ]:s˒ gVNjIgYvZeCiuYYLZ4CpWblS⽁O#h&q%r-FS?4Ø]x`Rb^pYBRN&Tؐ)-A~k	Fv"+>,t*'CE`ھLɻ㥅wNG*DftyTJ5#v&-qx`=6Eϔm9_Tl\9kcen)hj
pAėgﯓ1ָ6nx >_DYAxC_Wax*W-? +RxNW6_, IQ
xi6&׫N>d7k1gII͝l~9\"y%'Ts@\,>|d#}fPv}"ո&3[LζU/
cV$%YOeW	 BC=xVo6~_qp^ UQ\XN>	tȤFRV IdC$Ȼ}?f2pRӏe:p^ c2e`hEh,%*0Bذ1|Cp|k0F>YlaͶ V#apK^#].L7;Gq4ra3rhio̐ʘɤ뺀9TIM*4?ZԨ5(^l5D`ZRH{FZҝ↋\)0%FEk4(R0
3H|$[d~9M8<3 <ta$sQ6ɭo0C<nK^PhbղJnP	Tkj"XZa-=49:wJ4rd@n<%!˶v"-%|UrKE[ԥ%dbŲG
I~F1DMR Rs4oD]zj
XPR<Ǣ+־&˄B
d6<׻kPLmIm#j2qor8KRgJΓoqxvFq~1lNu[R
I
[7eaIyԭGxGJRZG#?:FQ^͐*k۫e=%kbks{)4-aQ)B(sO>x6hz?= %Ml[PѲK~w5Aھ"a|:T$ExGK3vl召2Kό)q9; \R+=6M'[P%(I4u9RJ4
26Vo$/v,z=~zwsgO,э>Rv=K'r'ۺ]Bp/ס4e];4ĵ52wBj6]ؠm-~p_Z*iN܅"A?,Y"<
kԷmVjF8ߓbLWF#`PqOg7X}Xl?1G݉{ =Qۣd3mRiovi7k7L&=8{ \H#xQ?K@_Л9ZJC*XBh?tɫ5w1w"Wǌ~	o&~!/E-x_YvPbG)BF<d|3Ȥ %LAㄳ'>pfij©GMh'e1,ij`})B&0!s	2{ФqA]iiwiiGfW'pX'?8XW-t[GatV20wף[OQUlRQ啀O%Bl~OYW~i`%r*H&lcx-6Cl<f%, `x,}Yz33d#O2qvw%6Oe.27 WJ;x,PzAfǢP{Ź hx[mSH_1E>\;aAA!wW>Y@,iaofZFGF$Ti_}ȽM-j֛mtE|: jHO5'~(8B-FJh;W ](v5kuG{oQ E+A7F׮0A`z䖍052`nu(Eӟ$	qtPµ 9 Z_[!Q:cR7"^<";$J9(}a,	0Yq4)l"9 V}XHЩbi%Ԧgl.TSMa1hSH_sm<8@XQӥA
q]LͿIn{dF(ʍWcxM}d^tW%eDA"%i1ǣ`zHȌ~M]q`G#O2blFFFa>D1bFP]TtHkEA6`=;ggcm47#z"Gb๿^1vYqW}sFay|&0-y^ԘTP\P٫c9P.1)N./܇{un;w0MFcPes'Ҙ
IH䠽k/kRi8!짫MR:=YQ[\ՏH2
Yw~73#7;^eD"8*}cgq9F?iqfI`=t,,0و<!N8'YrɉqT$n$)+#TX}GF${u4	v%Z)۫|J{jjΦcղVVX2K8'rud]׋ ݔn-	Vݖۀn	Nݕ1	'EtOWD];_Kl< ̥ `I:R"<(Y"xϑϢ0p~ul]Nϥ`81ΟM@j^E" ZS5}Y5)*A2P Z $2}h!hh!|?Z}hZH ZX|iH_NdЂ/M	W@|i_N%hX-3Y}hЂ//%K@$Ab+	
Ђ/?KП-@OU[gM+Xm!+^RR(4O페wɼFn2qL?Ӏ(*ۅF(}H.H"Į tXQ^Aa}@'v^?Z! >Mtvav= 3nLisѨ|pyj;w3T!GEse9^ ul6=?e	krNP*gGCf/YBd,]`
,>Ց7t&[ÚLՑl\=ay/(3|gr0~ZvTǰu2mu%'u]wOH&)ƻ\hVlYY}%[\XKOCüTfq7\O$֟zb~xha+m2Ln;"rv[}u#~4@
78slH*qlܧ\3aL[h~BqueP,sQwahb{YCU'\{Lw`Uڴ1.!A4rOGee6TlE0llՀ$u~,@SH&RH<223qguc-ř_씙dՏj?g&vR36MfZ\=*CE˰]6WN]=.62<z\DqQ0<)Cg^^_RAWp|s(ur	jAM'OW8r]46i!vFUhhߩ4BӨJD(Ui2+	Q*Mhڹ]4BAݩJVPrWa˯!wOҜ PF⣪4B%~ULj
؄>fN3'E6e0 "!kfd	}Phi(]nsn+Sm3*;NSo# Mc@ja7/;l:5@pV'>N	WՉSN73>.6_@mf';n@&Pvhje+ENRRo5vDE/a ;"|,quTۧOfS  CXJjp kvՉd>ɻ*_{/T]~eBѫ^582m&[XwU%лepImn?'j͋?,S;
QZvs
n.Ga6qU.~8˘}R)CRՄvTPܠmKOfc뇥0Gʚw
v5KJ,]J|7[̢"llido]AJń觝.ȅ֭bsX~)n^W+Jm6 W]mmz\N8*_}	uʤW/ʤu>D'daXvdK;e 8+l9YLd[[>.ب$Zri˔ޞ̻n'分5]*Q*$E5­
b3e9ٶ.6ɮwfo
M vwrxvɮʣ.L,4yupҪ}á1JYeqѷɱ!]XmQAn[hwٟ*{ lyYQC;WY6	\vOƙi&
`A;'i䓺};Ӛg=y0>^dx[:s
#~[fN[y}Yy3Oe0֎оlSmZP?
wD}^J  -B>~t(	@>Np}r.o1{g	?[ls-ưԻqA
M^&<aqZjYhmidmߞjf˴trhpjaǮtI"uݧz8U>)8 "5υ@u9^Dr';C^-\L4q^)N0{#D#rIW}V[!-d2ꞷ0I+1%#Ur!hsCn!(*T!dM4Xzdb"})4~]k[{!g-n׼!zVo7go 1Enk8!3W]MKj5H-,KolwY!a!\`e}2`:ԫD:QL]/]0fibjE8N?}C lqP}r_w\gz*e?&<w9eNw7::fm y?f(x;xqC&d'NɍR@Zr~wJuXd-6ھedlh$9ڱ ^Fx;xq-fC۷m57{؟2'[; R}rxm_HSQ p47?swzSYRFDv{NA$$_|XC=D=JEEP>DOйwCIs?Ͼl/f}]7m:2K QT19B1II"7ք
$Q-!+j@$~"IEeMјDOѹpDHWr܃l$i詈)(i\6hP5l(Jfx&֤SAB:Y8g&gf2N2aڤ| 'iS4FácCJfl8N4w&J464Ue=sjXZm7Il]mab-[+cklq5{󍽋:fϕ8O<`RAF>ɓZ3d峪EzIg{{W5Zò$ι"|%,r9o͜/E)xyt {SUSo8\(F`{P<4r8!G8
{UN('~pB:gG9p渠/{]0ì\;d~AξDϔ4F	lHsÄKn/VcI)lKV7/J1ʠH!r<G0TF)η
x0JY4R彩=oTdȟ0oSLAO!!!}E&k5kw<3ȫ5'8t# GZBEu,ㆶ!'a#Pp	I}$XV7y+,̾ lsSIW}T*1T%a_{%?%Px;̸6{ͱW6Oz? w	>sxmn@
CQ	ZYcB!
*Т^ʱ'*n!= HyޡĬꋵ3y.V7e1mX%W_]cbK<)h#k^oǝJ>
3XpBΣwE:3E؄ٗ:nw7 CcFR%ڻpDD^-e
Rrk1#JgR,@FB1eswsaK8YYWZ*ϸFIC#f}Ĭ[sz5(K!SDi,@RxpK{U] oVCV=(]?^@##e:i\%Y:3>X GwDJ2h}֧_ᕈ	\.d&'3˦Ljfœƛs}]"\ݡE2ׇ0RDZ2"e?%o;'ݿ?%ZAٺoOyK,	$ݹHJ~3'|3_kWxVmx[=1gCkiqh-4l=0L83/9U̟|_EB0$25?28[Vts  Z!xR#oCkiqh-4l=0L83/9U̟|_EB0$25?28[Vtsj	#͇Yfv,.H,IPNTH-K+Q(WHT(.HMLLVH-姤.H,J)xd&'+d*g敤AL<؉le.p,*HKIQ|Bi2 -Z2exۑ|%y 
Z
^%
٩
\
窪L`5p
	wTU0260§	SD~# MkDh4jh4ů ,ZZ-jV#VK"i5
jh_kpjNjr	B%T{s1\Xd9̄ b7?%P_'VP #$ "FA0ݼHi ǷuxX|5]2S{ Lx[s9B|]\pm`֞
3tF<niy7gWARO	`rٙ}]D|-$0`i|a+nÇi/ػ%;	f=ب-y*dQ L'[B&=fʕ܃2\>
PӐtV4KOd<8a{^n*rԠճ:6=W"+`S`k|羀P!k_қ7Xf82}9f1 yz=v1kt>G֨DZ}m`:5}xg`}G	Mh
fJ-gѼyգ=j5 $ʥyH_Z''B#wP}X&}X(nS_գtD-fh4L)#B, {d/׋~'پ .o$C?pA{``
D4nBX BQ\,J3f9h~i^&,N<nsJ.J@$p:kYi
#WN}o)smJs	 Q6ڀNID\&?PV.9̓JQ;mCݛܜAq nPGfHy2Wn'	 蜲'ojf׋j8pnMp%g3N`4>(I+0B; 9C+E)2a"yz&n Dɼn`was&ߦ")}٢O9;Fo7'.y;Y0yWbN}'Xbx]K{Ak^aai?yoD$5x/ Tsa ^npgIG.Uc7C	!?
)o5蓦^PQCwLir-kWoͮ=E}ȧ}# &վH1A9D><- 	71	ٽno?ﭑ5z5HV;ce."\4-9Z*\fttt;oN1O\QZqjo@`VaA 	j!uI3zOZg
U:UJ~چjx*	;Yjm}[fsZ"-
kP҅"	Zp$K!H=XpG'[z VδU~Mvi-p(vgq>U}_k+%=	d(sU7CI*I҉7VJcftTs+b:T
XPцBk@zNfLݜU|Q9Rxg!tX/G:r$EuR~
,ɬz֌~$c6wop:AࢾB.[\GȤ"$|p䆰;68`RAd5oa!}5NN
J!q=q?;/l-lGsMRqak%/0VJ1U]vf5]p*@-zP)CO5;y :dL3B	Qtrِg拣+	IGdlh?9Fk&{ 0).@ԦAXI:C3.]j:$GJa(`^/fP[;r
irm(&\g|ɭB=ŽAe-aFsOFZm^YYQIgoPy r,A	]ņ<ܸM`=NRdرHއ5A\k4p0t0IN6T,rZ@e_wavb{X/peCn|`;x_ n/j]è^F"jb/lb/fbU6Ķ6ذ;UqȈ?(*Х:cOZa3!lmΡQ?}b%x҅\J³GPAo&Ʋj#*E^Mjw~$ mB1	uBfu!<Fߒ(GD][8Ǘè	 ąYh/ᦒ0e"4=|G<oL9(OwZHs`}r"U #YsK&Y/_Ķ.#5xY.x0
 mm9ī~j/6G[%%Q.oGSPz5&tRaJuSR%m?5d^]nwx(Rh$<ܔl"oYыFh?`',EY\޷+[[MWP)<x~eQ|&Jv3EuBu(bE<X*Flf皪'iߡl1e3Bxv43GcϥiȌ
_C)tv&cbY_ۣ
&2v`[yHM{Rj땾"[P|u=Jmm]zgyR" !}f lfa7~U0qcbag4u({(⚽p'QSTc%'<@w)6}H～'ҟժ)~fxrH(|+`96U}*mYKVwWC$$ErH*FHPM Iy:</鯙 LtfJ×;Z]<zm}3V;:8:yMv4-[kZw"_i`C'sߚh9&i,Ϸݹv}bz0ţf6wm[dצciZ=l,op|nfSﾻ7}׻Ρߵ[30^٠cY=f.Pcig. }ف=|wܛLl?e`.~@fεW@k^i5؃I޷ݫ^ΰen_kt;ְizk,B1 Դ(aR56Y7vYޜ`-,ofU 8i{ff?J}}_$po<wtUk!KwtHF\{5z{gO,_jic®k!%&R'|1!r|twnmY%)o9#]="Ks	="7!o0غ.Amã8(+A1x\X=)5!3Qw^tk	0?yw)8>!6x$pxH7gK?%h&`O	_	a1tw [#cgI(߾~G|FHT8<
7^;~¾tx,}h?`bσ?,Ƿ_Пo{9^5^i~KפruMs."lᔻ?Pեvxpp\ǘ/g DPGT%sk!'ZڢNHbsd3 Y`
j5޸/39c4 ܸڟpȐ,ۡaH<It9|;4֥~:N ߞ 77Ny~}v	hD{fBV|w`@F	d:+ K''N?]A6WaS5QR7xdF

2ѸƟk!S.Ư0F.Y>4nL	R$b-'+>$P}(О.Ł'	1ԏ
0PL/gpCo&e!9sܠjyu3>9·?&79g2Vwȟ..Ssp7ĸ$#68C44&ҳmt^@DBg0?bE>
Cb	"9L+`J5a@^HFostS~g2Yk0Ġ}:jˌFQ\vlE۾RwG_9Cgm05%Z6:{3W0ΈF'JӦNhvE2ÀC|$655b:,{$kyՌ%>M
aN
<S{Ә][5=mQh6(T,ٯ(zighd=˓sh/D!Q?g۠>z7Yt=-LϜY B,~9ry/ݺ'nC#,n@d^2۔\6|46T|əEiwg;'f`%3|"!XF,VX<qhpn#-~G;YZ ?~{!3Xx=$t=nE=!_:a(#Xo0u?8~M޽q8}N~ړ?
q(l-/r%^sѱxCwpO׿'){=a S:LUܒCq)*3hE"F_s>>_?=>zK Wpxs&9@]0ij/b^ZtfP4d4;.ED5g#t>7+KQ!zQp)M4-պMfo-\UNKJMo'1t|Ls_~ٷQRL0MQXìlw>%4!VegރѴg/	e_3 ؔڌ:4NLV=Cc	F%Ð*;lA |lc4=0J2m_,qoj"]zڄ@7_zld=)Ai{Kcw!_}{ȾE_ Ek3wuf zz*{+zhi57ѨX5g/fB+4ɠ?zLq?"3˜m\ ;N O Wqϧ8ǧ'ہUHs4ddh9Bdtv-CfwA"[tH2ʟtI?^y>|8
o=_6tI=c;٨nRF
AƘ[)^ω'$=	UW\f]Rk"藳}3hC?6H)9/\7dGYk|WE,G"Wl@H#;@XD'vg ]A9jW~j~G14'Z2xhƃxC8up9>zӁp̹5dƃFY.%OU><usι rH
I@sSt +̚O&Cbf=ӈԲ9<1B&&If0Y~{pY3|V6!ϮЇW}rI7ܘ_9uϜKbpCÄEMl|bAϾvlw/ 	GV_^k<#c Eл#3bkJ/xETSJ+s(7 /CDUׂ#Bxpj5î;w94?i:g35k¬U>[C!tⳛ B7QZ*N\J缾?۾`K'X}C%(K1="ͦWzn	Y4*s(N鈦עe2Bg訣6|t2lgHĈßi$!	wAe1w[&8#<$AkN '"2p!\w@߾cďo?Cjr`m2[=.T3SJQJӊ }3mqa2AQu.yN_4$DGŧ.񆿅bxW+SS Lz JsGHכ`Fs40HNz*s5=Jg·Dr	qgFFcכ[ba"ncF[ȣs"k$У̡{_qH٢m%ty%uf,̉d@{|=\"̇ /D%ʣ"e"K!*r
5rJt^<mJƎ/R}D>&I7R.&VpDCH?~lAjjI	\p&li 3y$3a?3R8c׃炲:P,vª)ֻH_=XIXaKDZ%7xҕrB87
NdwZP&mwoJwNs?[t+,ޅDQFZi~miwZ8!JxX`+ZW+_e,6#YSxu!N2/+k2)X?-vWJt=_t-Yx uЍ/	ZNoM7
qr@%ć+i)yQ/FÏ=(SsB|<ծ!r>ckK\i7%	&LLtL.52u9)JKc.e'%mOK~i"}"[#kX//X!K,Lӽ5BhBpgNQ@CDC'ְsoFH1%Nl̯Ā}2@aU}!S, Fu VJUH'덐k=3}^!Ë,HTyV(1ags*}!% vS2>SϟӤ>sgƜ?HT3f1U'g?b	ՔU>ӝanyv6aƮ+$'|IM32?/,%cg9rSzJ u%aM=V[Z:Nȍ|?} k4a3O!- X~ۿT*0E-4So;{#"(R(v0$.=-2.q_=t:5.w-P%v,DuK*׃VBc	/ʊ;$_O~rG7GS=rO%U{4҂ZyRĽxU`*|#XP-hm09N(5I²TEE0"\
5,Tc:.V='&&m7bW8c$_Ox>&v|_54qwpV1Cݥ`iN8@/Cnv*xu\
k"ӱ/˄TLm/LfRrHsO3mR2VYlRv%>M0g>7O?6*Y&i"%k:=Dz*2FoJ.T^.T	x&zİ%(SOd@VB=]pIH}JN_736` udlZsb.Tu6Z8v2>Q˘%?jzX%3VY [J#۔kjXL<A$JJD΃y.z[кc5/*7|\u+H +^ +h׭:"_C@8g^#rt){gyob2?#c&İXãBRF/kiWݳJ϶;M8)Ku/~G)_ҙ9Mgj^8V=}D塞`(m,J&tϦ5'x#:P[dnh5	+1JrC&<^zw/m/GB1B=㝹JrlIŪG`j#fz~U}ޯAU\^2jJY*+"T*?
7j*(3f(s}^8X~f(gFI%vm	]H
~^LɎwkG!
ۿJk=7ֱ5ִ3O8i+OEpU
eғh՞r,Y6.[֫xf\2t8e_ٴ:dxM"\?!<#vЀQ ڍoςIdv{`Ϲqٷ8{tx<5zd>6/y:=^c$?e:	(j="XNn,`	gY"<XZe1q6%R^o}h6_^oJ
WSwk!T=_>ͮnjB̛;͆2yv,k6%p&fś;:QhͳiI0+̋h̞c"p?xȓ}6k{0v h_o=klTvUez rjK@&h>K@-
rX 8(x=B
9b_ܒC g<0,#z>iZRz`qL!S)/NwEfwGi%)h(xHeXeE&vmdhGk#ԣdZ\\oX;ߺKge_.}[-K]!8|-Ze-4כHH,ٕ;._ϲ؃Q6}u-l}g)
h]h_YӁeK/JśotE%`FvSǆ2\PE\	s]%&[UUW1W$.dI$b;֕n	ͦ{s2Dv4NJ	9k9䍂Lay[Jݿ 'f{uɦ癘eJi]]ec;m?dwSB9ޞPp}:-JZHWcϖ跦=_ZZój7n߿}X7:FU1\@BLg-.I׫r*͗xuĒ./AdϬ
jCϵ*A/bOɳQ]x	B@O7X9	mFzk͢{!}K\ҊY<Ub`d@|;Gk2j7O9\l-;>ʞI>T۵5<<̅v{tߥ](k3iy^&>Ћ)SҶH٬*1T5S&[3esM-VzԻuVN~oq1ZKpk{-53Dy}7|uMӯ<\uXq~pg2#ڙJr5}	%͝:|ǝoGO{~bv&-QܓȒԲ|Ъ=m&mGv_H/K"tM# 1npl WU'wӞz?56|1F7L CBf&Cݝ9Fc8EduB.a]0MeR(4g3Ƌ#	913Kjp"ԚiF\yuOC7:CUQÏM#r1Bl;1DݥڬFVoVsWCNW0G~GZL&:-XϴvmfW#*ٓ!$#;[LKv'KQ,Q̬]^KWj5Mob89"QhbKolMC17VĆOkd{aHhwobÃokU2b4
<@,*)!Yܻ7<	6L4:M޾X(@<`T-/
Yos=YA,2$TIJJKe*eY#e#R.AeǷ.㒭ْrJzɆVwTՃ@Z.#ӸPTZTci{=j<9_>Qli;9yC)
4PQIJ'%g;g9DG p'Ù1I1Y.}{lx#|_92]BxKpmS|+cj~`O-	;??Alߚ`NQmJ2soS! ƞE`Y]eJ=B-FExh%T}V2~>c9ɏ&2omeԩ塮z3<emÈ#xxcN@#p+.EՑFuvm,|&mfsZ
xl}m;PaQgT\U7屸Cxk
k	\;Y5npePݷ;{dѹyFP'$7LYt(@;]8D
DGea6`:m=$zROdCcQٍ<$*x"òW5gxyV\XOCk.WtPr2g/6/\N¬jۚƠouou`V/%/sՍ_=Rq9!xсJ^L8Ǻjhބqf9k=;u:]cJjd#Y@7>/LҊ]KMVw]{*h*d3Q_'jCpoB&YMz]g9M!ڇȑS>wŠ-EADF-uu%'#j
' {57ZU,6jqf8 2KĴo|
P&[nNjw"+O+-2֠Gf뷺}bJ
OsHEAڎ5x2 Qxc$+<"5ȇɆ#ǲDI#VZ&l:}9P:kdŦSQdl%34/o(egV֦3HH6C+YtD-	Mܑ >ͣs)QĞN-hQ>-uXiE\jBSe:tUqM
O Pzf9/Wgw-ڪ;,Q頕iњR8(!b2X4=IKD3?
D{p@YBd슥9gq1>Mö^L+akG?4dc5lh#15Z\A#Э;L]N$&jR#/
THabUHk$gh{jś=_,Z/ 4Ausnh7[~a.WK6?wԁB<|35xmoDL#@||͞u6ы̎|̨ΉFpWalĤc{ε'p9zmݚw@D\ɳ^[><mͦBUj|yI1w"Xx+]!{dxCFJ+F]ŅjZ;s=sg)s6+}vEo>ѽ4a_DQK'ͭImT{d>sLA4yxv @KCE[&gC:Hˤ
!5#U@/Yxm!w&=#<Bx ~ڗIhֻͦq($a3,i玙딹6r'Wa,&Vhyä=	g
i$% %Ó6NZ2ぐA3gɽRF9yLNr&XG(}ߞ۠Μ=r
v߂e^[t=kkdtQ[ QN(1[4dĂء'gqSW``-L. _JLvZMlrUh+D^s?K[,y#sU mZLh!5	eDfcȱ;TǞE]0|/EfT>иHf';^ν<a@nYrZvTwԴBkK%wpp9o;56& ߒfKnH}N(/mz.Ӱ/Zu"Y3d-;1OClZ1{ܡ~FlfaELPAɧx&uD@J<VHpb.߆1osLrb> ',Nx'tEGk'Ϗ4I;<oYm{<oeEEK{Ei'Pt}r8^9|4XCD_dhml<-,ŐUTe%jnyxq[Nb.u&Gs/رǟh ͛*ܴͽ,ng4^5.4$simhdwnDӳDnќ9nx[Y<Q,Ku9fDMn6OڏoTRC74Lf|`8ۼiRE-k"Og/@:ΙH66}_o1-[V~N~to{2D	hP`(k@6CżR)Lh}+z):®<5P$<:XB Ho@ҽN",kH4ݶrS	j3#6!pyCo-;tP~Ь*omPq޾BnHvCb!	~e%VL>W	^؋?~O`|K>KJ48O0z` -O"A,P_G=D'HE썖g!}C]CR6ݫYf>ڧPǦC[1 %#	s\9oSPsod :˟3NGONTC";
b?5ى<ŠNހƇiFāwTHXjC}#I^-u&(iFdl~Ywhl.G<1+іuX8Ik=bb)|fP[Sfɬɱ&/%Kh(Pyhg[-,(qáe<G9I =t~0^4ϲèMʾd$bB_CPZwfռG$DqyDqRRRvtֺZiqwȁ@WAR9SB,#POU_Q6RAa8A_rVfZ~@aft13δ	Ў l#
2'Zb9!GVZ4:2'7)it>C͜tmlLB{)>MFaܑc9txĔXƞ6n̜O}?RNw9g!"uk.ߢyJ4;ej"+@&{|y3;H|rͅFP!**ϯ2}4	(IF(rcosۭƯPqwC?<1*S1pb8"dXm2!dh "\?RGV! scqtiq?ocMMr	YLFw!1U6V	0S
@C[""U=ٯY/WȪx(0E#U$b}׉*?cr'~#+
,L*Qj\)
3d)j
j܂?eoX1h}kx1K;bh[6C>b"ӺQ9}z'1rID}B'E/\/}Cc5?Y1>uXLM+N5f_1p@I6Y;Js,MG}3Dw&_/9>кa&cEݲSŻ#[a)<rPwl8֚Md `*A\y8	a3xld/G^l94|>*BQx<!
4(k>Mokw
*{ZҮI\$i%^#C#?<P{'E.eʅ5؝:l'BKv)|嗢BM_Ӂw5®.iKtOnEIZˏmn[E֣g6.w7֋ZME<\Np9,HψK}K1/a+昉.W5Dq6H'8 >,H=ܨ0m,2F?Ƥ
ӡa>kqȳ(yMɓ(2)yE%J>>(7k<i-&{EUcY|0f,Rǒ+PĉQg]?䔇{
SSFЦk@㪴8QE	Z"=2-VV|nY(O !z\k3Ka6!*;CǢCYy\t\|^t3D
{N%,[m/\{jʟt @s+VZa%^w!K`DnjmSIS^5i=GŧP=bȷ86$A2惬/~Ɽ*.P3%!ôh<pZmQ@aEy]߾J	C3eRB]4|$&I9<`<Vj+fiuxQ}	嘦buhc#/*vX4ZSSnxXn9<ɳ`&>{~gy)ֲS\v5QSd/Jf~>Cl^T/GQTOڡWپF{o(Duن_`)3Gb463ֳP|?9ha2=%hc(ϝ,	ntUEG	~7k<016ǽ"_N|5<nAQ7;F\߷S,pXGsP?%CʫoVx(!I%hg"tf1Όzy@<چss
إSbZ
e.]K+8cjzψORrwE/PF6f[\,xήO!݀ yŊxazG/>#j]TAG4X^t -ET_;zյ'BM[I2XK:˄K]op,>$7=Ͻ>Y4B?2G a,iZQ	#P@b[tQ\qcKaiFh2E'a.V3aMƢ|U**0܄)<0B&L뷺},W6D 7CBp,>*ɧ)e+#*'H7s-Դg0rOrVk`*QJ5^wFgA}cpmS(}oaP'f`=SC.C:ϩO`'X´sj
>iy} kDF*0 5znh4Gn~x,"pPw|Kkn(uzLːEf1e՞q6a)3	j%fy*|D˻WuhD~'/UO̐#M5<Ԣ5s.<\}6	rɽTdY&WP/
++yf;].͠l%a2x1F7ڨkI.رrz:T0%IԺ הs&1xgy=~]]zUƅNΞ"'F0&/Im62XδTiS K.xi"sЕh XxxV
TS.Pe)άDjGGTK@VL"%-)RՋ ׼yj?Yr?]e@)JP+XjML:aOѾFVN~P_T58pWNv|+'CA>AWNR|W= _1`S\АxvGja 7b`Y[B@2Fϲ
	Ȋm2	Uw׹ýb:lռ%809LWA@뷱0'oxLũmpYlKpqCїJvelMt ,蘁)IHުE\#$Y}{:RAg GmgwN5m#Ȝx?@35}L߼#WIW< (N}}ha-鴕^J}\֞c,vMexO`Rèjogd:vD%md#bc+A`cqtw d?.<OY1c^f9(	rI#YT0)m4ư-Hb亜<[TKڗ@-xȤpf_Y[FVjgU[yªF[mVpdj]dy\̑־KJa$%KmQ6]I~MHn2}rB5|auz54F'4FO_ªT><dhE92PP@aESҝ["tOʐs,bں5,UO%Ku0=;	Y"K!W ēIm*{m:Ycw ~;TM8.Z3Y_(G~jD[
HCcןJ~ߚ<Z?]"s"m#*EN3ػdٶA>|ǘ/g[_շgcbҍcwJNښ͈̃9XZa܏z؉3hl	}~ CVYNԾl"6{}
Q"6nq[t4Gpq(|p7(Q1{4O`7!-DwQ^av^UQsVbP~^	g%ꉙux
A8낃۟ZuTNC&H颖  Z|fQI|,L~lE_:^q[JisKp4M4Y^~)*3.yG(R6[Vb1[^7NSkvLCC{6ǙoHf>*>!՛F(:4
P(	9V0G<39tY*j5ILɛC&jŶncIYrFؖqLt.G;Yzl
1 XMrJ`vPS3NFn2;hιaa|g;;I	%g
uRpHN_drX %c{k"}xE!P j_"H|B5#>nRYe(@K"6m!
ͥ _."k!XCivrjlqUeP؂!qg37{kLF_yigLl?i.5w/1|KlETd5>=?]5 ~&v<FrSCZoAq:mq҅\<%&<w9ny;Yz|/.MCRz:\gv),R8t9QQ2K;Zʭª f/ёŷhi<TƮ[ĵ$F5r`I9xCs䗷%NxѮ|K`p*.䠣ח򵒸BBٲ+Ĕd= Z8>RTS՗P jc{ןiV`n1*%sYf	2rVxx!{vl~`/{;hL-6USrb̩4mqJ+XKU$muFGNk2?a͕MOU2]or
*H־Ӿ^qO{n9;+	PIlۭޠ5]=ޚڃFe &Z&
JYmЇW}##q;*>LÄa$0,$#Ju 鼦'	kny<ƄF3Д[FsD6{OF rjYg8&pPm#իFW1Yvl19nlk[U#F||AX)BU^P}dv-=fAheD-ڠ:ejpdmЈR<EDQ*DVpk0⏙(tK^N A[4sz2`}!^;5Z!!OH{6>jCÉH6@c֗|`ZzLTL
:K~:v&=T§ebµ*@.iȎ>kIY*Q<\c98q	yƪao{Hdb`7~=~<OZ"۰b/TDz<ak2pM1MbkbFNmjg:Pb|4]Iz>gЋՠ펵 Ƶ2,]{w!h'+ѩ ig7	(Z=J3ٝ!Z!jw'Bl9NFwZo0tVQ'6]y}>ᛴ ./hX0U<Bcb I;V3jN?P6Bg(QiQꐜԊ:":Ai6Vb?
aͱԪe!%)dSIt{RT兜e2AЄl[DёhP)G5n DR">(n}~`z$q¬S2]lQ)`zNhBI>oh3>t@uj0^b:tr&w	rj˞K}9؃u?{>P	R'a{XD/+81S$ƞû3ެ&F ]Rg-,]ź&qxK&`^z]wO~ȎPw~S)+F8a@V,9 	ƭ9֞HzqC?ˇӈ2qx5Vq8^B_vߋK9/j1/ѽoq{6^}n;J'q7=Y퍓{rcQk~o#f<"<hۋN,Me D[.g+/GTxpֺ՞aU^>vYn8vVB1(C5dӧy_Jbi l:L!j%JiJ(awlӸ}f)A#-JDd7AeKP"1JPwI]lϯڕuL)8?<+	`QS(2?ك',虸bFyw, $tO'	
tb[?%U3ں1Zbs]q{l24>2jk޺eʊZܼ[dc<D3b#yZX5(qۣ˫kVM߾͛&gO	#uZ
m~IGtϒszi& Ϸ9Af$ѹE(9垖Sޟ0` 
Z)IӠ qj!a|Qi2[3Ɣ
}Z%,kqh$Rw+=1MH'\*18qRoBVg9ဣ$-㿲8E%j|LcΤRxw="%ܻDsLde8 \>v
Xƒ˞;_R;EʡVWM/=l]?#qX8`wwFCH<NA< W|,MV5n9`2_N**Ai^`FNcx%HJ՝c̘ƦDz&adB3uxn_9Df'*Yʐc@<6LA\>Cd+K\yju+ӛaˉ<E2Ӈ&Ic[	YȽ5wvgyX WU?IEy9mHU@!y#wyiY[sdp/5Ɗ!V+È]=ّ
aݢg\{xdW{]@
SPMHXiqA\c{Vݑ-&MLD4hl&G'M6%.+)_:r="ubw-=MTG̓V<qʸrfMU>{1[rT{⢩%C,vy	yr&o6B jqXIk)~zgЀfDIlBL¢"4533DGM%%n	|*mPN knь-Xv֍'X\RG!g?ZW3,گ[&m<+*/ScqXv,/ز&>+$:'S{֌˼}rX[Uʜd^a_Vme6.z"Fr+naW/ABK?/),X7q7$T|!.GO^
"zU4W UC15qQkJ|	T$wU
4~#Ux6OBKjhQT&LI0tcGf8Μ LP B%0'D	ha6mb;;6/T^Z"yam~	=q(/ /p Y:1M}v&H'0[@﫭_}Iv+OEMV!eW@W2RU#zSgfi$wq~WM	äਂkz=\Ú?Ez_5F'O5bgK?`<ku3
NhF>d
o\£j&y~|r4"[3'E7V"ڲD$Po+iAp2U{R.?I#ȴŽ	@_ksLM}V㽋sZ.Ӱs>g<Ő3XCS	0($-5U^kqkp=gO[M Z!	F?߾1!b,\Vw J+!4FyWޤ kNƦ+g%ڼJF4m*#qMctj1P8RN=(u;c}lvێqIfq>1Ʒk?d0}@puͿy1-/(^tzn8"L?fl-!+­lTY	"MQAj|lH4X*oc1v".ҵ c4xT)pz█V1%-qdBՂsn<WP],KrJcO)7z͗ūޥ~Zͳ>VyQ(f$CߙX C)yACDJj%ZiM)$m ]hI$oIRɇ|JY밠/HV<"(Ϛ~L`\q4d]'7֎g&@OwmFZBʂ"Tnj:z{jrL^/ߒYޏ>P޷ۼ}6I#P
Ʒ@Q;q7=	mx@%_~7 7t& 2([d̳܈.'mo*քx@faPJqQx8qVJƦpWmS3'>z[;:(#@NUK)5Y96?'
 Eh<l+Pq~4F&ELqx񰟥t+Pl!)mtumQ*oҰBW',A`2Ś`a5h7))esL7:^F
 (K}o}V"ۅޫhhTl4[t8ֵsK@,t7"%qxHڍEQpPfF_u}a
" D{u1[臽Nh҅DKX^PGYX0?ѽD ~(a?͙=4wdcIÄ3}~Mբ$-͏(raꝦo֦eⶂѤrrvމ9wnx;x"e_ÿՑJS
e9hG}HJ gx@jUClZ&W:QAa"`rst@Q)Ib&,=ܞ"ucQXd0<Xa8vp2>Yu.ką6bЊTw74Ybw/<w'.8=zø趛u$K(>]sΝt>Y:~REnN\]"QtlM;ۤi[nJYw}],i3l>0c葒8*Rdyby%%jЛGnNİ{~6RaKǕ /0ű'?q򈔣ʣ+a0?/Vֽ	5 Ehcт@	QN36ٝ>?ztF]o䵹5	_p#]vslj$*gtM?zLbT{93P"T4h*pX쥤=̳+@~]]čhcy2)2n[nG{>U8P0:S}B "\ He>Ul=EoᶺRu7P57QjKLt|O#zb>rTG@KƲxX	Zy_#mͷ1'D)PA6a&+.uPXEf=[΄[q m8b-7rHa4d6:%)< 2z-WqH,7WhM_EMX8=`v.6_bg@Z©n <m<u7$bi3;R=.X0_eOw1LA[lm%CRGj^D~t^	(,NMbdH@dp#3O
Jģo]x+D*׼D jHv/77MtUJ^M.Xh/\lM1'&iW7G]7ظ*|R
{rߧA,.1dɯZ%j-@cs;tVFGh`'CGbؒ~_0ٕndohzc~O^ȑ{ZJgh\l5[ ;t9ϟIwyrG[ekr%6Ճd.[,괡:%MMk Ml1dX饐4h@}{b]>ov5t9߳벚Q;}z5;zOCrTufx˸߃eHș"6dC| ?9zRL T8Θ牜ު x#*y9yŐXL޽]|K`c㚓@4]مNYӤN4/WzH5J\쮉FAB4=0s:7EgIhqNJ86q%"j,ME%~bADvPduu2f{QőydTBBEiWsؾ(ʋyچ_<|rjz幉մ?RAYu!Fj4{Tۨ<u^
Jw|v!^~PμPJ\ki-)wyu[:5<:}=j"`x"@)Vß =cp$4u.\<I*Kq<t@QRkX3A*Ξ9~s<#!*_ϬՑH)f(g5UN&#XW{[a\;K;Qsۢ;wX2x
&?V.Uy#;h@QՈFp!"X/=C2/aSGǖ ԧB[ʯYu@V],'*J|'pKAuc
J4Es&4dF~Mkj(VUqh+aqy	#}-bC6>!Zn	\;a֍=w	D#V	o>	BZ19Z,1'9p	ѣ-9^z`],Vr?6J>D.$|ɉc,~g/C2ggc(]A.Gxb&~NWO&)j69J v=3Q@.9,/sX@>a]i+t9iTFe
B9K䡠I֞XY 3kCx:l
Mc;9=Soz;?돂`nU/ŵ/lo}bH-Ӏ:L$x[^9&K?8JpGt<m_!wpuzS\!\7*? evpǝXDk3SbE)IM/=̯zxצIIlʨ&+Z1"ZD<aLJ^U	}rLp#|OlS@()<r>
]e(:4MFJH+sb?rE?A@ddCSslD#$dlQ-O^%'"1e ID*2y2hDfH=-0Kh_ppowm	v=XtmvDS,A3șz-B#B.a~Jl.-*$8H"|?]TW%%}&W$r=k~88>R81l'^{[/% U6r2z}]xq,c/(_2<%dJc./69,H|sQt8KE\-/LbW6F_,,%D'?5jwq&z)mrI68h՝%lϵ߫NMn}3uLċS턐f٦>:Ps6;Kސ0\DyTsh#f9H-o˛P 威R:&f`ר>Rͤ7XC1uPwmZ8~Bg-,5)m̌E&]7>jC/,Nb%;RuQWO)²iiT ?
Ivӈ-hˬ`GXБsn<ˤo-&[oFѺ4:GFdC>Aw)(v,	zŽ
<^Xq=ٕA NABmdf;2
CzgHP-ľԢy?Cw"\(2YHFbC[B/FGP:9JW͗XrD<0b8V冇j!D~,woRC|dNQz<9Te,Ǳ>8cQd~IV_+ILg!V|m[Ak0nyi"B$F1r$IW}|چ?[i1>c5e<3d08NfֆG?=:,0ԩ'Z,q17HKF߻;ƅu{eȳq"OB.g9%uCd N6z.Ne;1wiyIÉpnrJ˱O&g6Ohw%f< "p ^EY|!t,J2DBdȭ*IN}E~u{z3|)9;1}|7OA@mE}B,1-<tQ%r ξ6Q>ZUDvȐ	1[
+[n1^/gEkKý.	VէQT6FbB¥hi% m0	$nI)SJ
H
!^:d'zkaX!RiR{p π.9*9Bђ`x9Rȏh@:tI̒rk?kwSIYrkI#d/^NH7[bD	ΥU;	kʞurn?t;1D;Ϝ`YW(vҘOZlQbc8;j\X Z/aE ܨ)zt'7e5u榽͟2wކ:6n:Po׳~O`O;6w͏1LI;os>NF"wb}3wXBi!?gg۷[VϐV<)DyX8T~.=hD~}Y#}_֜@kOD <
h ^,h@[>gG[8l)tzK({q)7uI|QWyHeIx=qBd)2^O=/ޛyӅ7daQ
K";XSx,w>ַ_]ǘ:8NEIupX[2F7͍m>/GTxֺ՞aU^>vOx8v/?(_XIk0zwqĽdDEod+'ÙE]~'g<C,rdZ	IH*eHWu`XWlobVbh]hxu	%ǩb$5XScnh-u;r1cK"]30Il9^͕b4:f"6Hz^ 3^E9%]a!z
cmF't9gx)5/{q^uW?sk{A7]Rw2'PP1ۧbT6Uvn/QWIhh#DҟwZޝ7IڟW$Nh`ݐ6TE82X6ݳLڻIm	 (~ŌZR(^S$߮<Į<Į<D)uWՇՇ@xĳtk[jU	q5AR{f<[ld6oUmFƎ:;;j5v$k|Xey#o}Jz8𱊂[ް$JH>cDs-^~LNL5nǨWS57^"yɮL#$BCU6[K\ϐd~sV]pP8T>MPj(X6]Nw22/oiye=mç䷵M;Ɯk9m
:D6%mvj+pD	VMg %uli'ENW D#OoLIT8@s r.MAX0ӯ]	R4yA1v!bu
Y~`U<P*]=UآBTv:U %fG'nۚ/~=-:Q R:<8:.i`5F-hIB^κ|{θ~~9ى朄ɒӊ9ř.͉<nIX_ܹqf>HرqyƾW+Qc
F垼f3pO>M̋1ȹbc;᤼^rQ}0DjP~?KC-w?:~ѫS叡y֖	}a\fgD;z^K\?-?L/۰{E>EWVacârڵ鉽uuK6=!> ~py\֩>"wZ'r 3?q'okJjmimMBch^<d>L=6Lpm.g׹k5TnkS w8FR>+m=ǚx&ߓ=9;Ď Y
'c+E#4G+Olh~RD9j$RZ{")/ye"5rӮrF⯽2ݗ^[}yZo|9-9;z/Ѩ2Omkҵ,62 pyyCdeMQPduS9Bu: h,kyoOb5̣@Wj'<X?Z39Qrn1ʵ{/oDm
%H"ܵ޵.Lbn"K -ܭp[wR߸S20۽"*vG^B3lgh]ҾXn"0%voS/xȮggg&30#l׳{=q>d)2^O&n{x:v:vrOccnxv]!'k5FM^@P{<BxLj|z5fSv~^\u3r%P)<5N2uC5ִ~	I2~Yvcp{=hSr [Ume1,9<<UJ/YM8ȥz[ְ0O],,XX(0<8o?\x'mhNk+b[˭<0iw1,޾2>@ǅQs_dZ\%G*ݡ.NuW&:l#SaHߗ14}y7S.9okeT.zXOx?U	QgjN?ԜC4TAqPS*Hʞ̄*lf(~a'mݘ'y(2xdWx+-jӲ׸0v?8^{(_$hTHk&H.isg3)j9b@z'u
":]DKD_<=Fu)-4aN.8
hNNFxЇ'\nžcus?YŖd4`uJ/g]@ibMJoTzj 	0Ğ5pp_9}~Duc"#zU?KWSn;màwOc&?~h\ʋg^VkJt;j*ܤ>GV<6&l`j6p͜-XC9@$cjd	4d~ޢ5n9P	~ڬ0o|"\3wBS"/hlAǅ::+V0= K-ĮI2s{M>Ȉžkpy$f:$)N|dcP1o;(`~&2ZË}FK7Ȗo&全!O`szy`YKҭ`.u
m˅bzD%rlF.Vz}	Ǯ_<TXI*XBNK=מ<w1VU+-+!X;VW<o3ݩy|_Mxv-+Ŀ05GWpƨM4y}"md	f`O?>|}J!Òc~qZwtx@w4v:dGGPmbl*L|E]2yO-Mn%JXNuN0w
8IKCk
0۷f6sk!9|#;!?YCފܡ9Ґ,6s[~g~fu&WsāO,Pי53g,{=	cFX^6}pdiH\+q6>^tzχ'?1?m:{7s݁60>ݫNvULY(ڴ9T&pk= ~%~wqwNDY}U=v?3wl;7NwDYtwXǺ-KD0S}+&ٍ+ =ğWrY&
Rxx|pkId~M-k6UJM!f7#E"f|^,Zf┅4@Bث3hB(&3?xg~y?juGwnޑKT6=I[CeSCz׆П/Qy슲(-I@Fc>ڶFѰu2qaz
@*l-u77U 82JqH]e_)--[sDF_+%/w~7x7NEJ3wl6NwDYt4FnNqBd[W2MycK'̜GoD0_JI&ce<wK 	a޽FBAuJ9%33U\zS .&)`yp6\sȫ_Р>PLmu8OzV<݋P0SϞ/q}Yjd*I yMLlKM	Lh,6	.+&.iSu6kƗ Sns>_-s@k#̒DbM=3oBDEЗc2bA}!<V9vX*ٚ7_ήqqoffnƁvNN6vt{ho'C'Yqc	w[nIv֪*WYUY݇IB(RFR=6I 9evl[?ל@7JU$rZn@ݘ5M8lc+&2R+I0=K ]8-}_ذwVHsܶ^	oq m-."`k2?=>N g𢃘~8a/y/^t05̸eMD!nx/a7!B<܅eȞTO
8yI;8Ɣ3zMAv6k_88T9yUNTzW9zRu0=S@g0L2؍5\=T;jM$?p(_}=rwM񜽝Ӷf㫓pҷ9o&ݜ~=K
``8Gݠ:c>'nJp{L'+}D"&nkG գ;[ˢy $˜#EWN~kp	FE&'%pV]=`gև|_ &	
ndMk-ݨu9hnѼ9Dvacjű,nSq=@¯S҈Ns_ٜTK,&vq/Cq"⽋M'mN`:4uFeyES9 M_gW7_mwdUa`KV-|yBfe7~BYfXGQfS[ֻ:м;h.a^ZeN/%\:;%_ Ho r|.<[ξ&{Fz)uZrFF;4VfT|70zs %I9ؕFyیk	P]W؝YRE"4VL>,ڰ%챛Jֺ,aZNA4o/9oFDR{vZZfE8!9чNܬ0A<fN2'iS]ք-)z<uOpkώÁ3F}9.?Rh;rvrvZ|$wsbd%w>D>ޅû=Uv'}?{-]T(6se:FOԷ0	?s+3A-aZDgM"&]ԮDEŸ4rȵ mR@,ORUJ 42|Q`$FnCxG3!>c4Gohn@Q7O<qFS٭pD]ļ<؛LYZUOG@V
W=\UcG$W0f̛@y\#\RoN8\QW:Q;pG(U`we3sk"H!lvmۉԧ,B6倬p/_0nYEȺl pKӦ,DX܋qK`f>UN-ŉ;Ь
1֢g?h:''y8'Alg\F?)+55;e	G(4@m٬qo eRK\Ϸ"zn*Srnqx!0dߩ#w˚6hʋ<۰?JRR4Y8ݣe x{\%_ 85sKs>r iap9*<xގbK_4뿴^PE|D 6*OѢ2 )/]ς>L"har-ϯăIe}4ZLOIGzob+&)󔉖e$m^ɛ|sLXa.I(!^5>CBwȝ	A\6\;br({'8?,GjhfT`)a'4':[	!5]Q3ucЕ,.~3VU,Wp#V`{#9Kh+!"L0LxEJ5|/1ay)a!
 GgZz%f]ikܑ&7
2;}XGdS%@I==|k5P x~ap gx(qT\3|%%<pwN!21^0Wxh<P#u&gU;"A>1sk9;u:-+Qu.~ݝj'n*Sľ䢅:"KΠ~-YE@&2.gg/Ǖl}ȏ`51VcItcsA_ٙ]I2Ϝeh,˦7M*˝̷T!1 N	@oYH?-R{pW~Vt+#d[nbxd#Y6ZY;+1z?y-w&>rێ;=qŹJ46tʁI[\;GLVïJ65F'P}	iSsǕYg8,f#: Yt iYuJ>FJ	`tN0RfcZwO9#duYIA<e	m^8=7r(L_]5`((U{ֿfYkw9m p'd:vZvϐh#m@'AT;",=J4%KτO19g֛6"Zig|4\/X""l5!Vt88pOgZf#A~6lwuO=#Sw_{=TZ8D	#A
=Dq'sYىOxI |@1.)Txkv(
5 &RG{~>V޶%iN5֮rDW2l(0DZ5w}4ԋ%fp{2ù3,[9лղ/:g_Ơ+?`2M@ PC:Å&unWd-Xd4*Χp2FZY\5ukF燛QaPc'Zԗ$JVr'vsmg{S،fMM&qU	ﳦcteJǃvҫt^+,Zkx\YZؑLm<1hA*Ƨ3Pk\iCqe>U^f3*E&EYBYa-se]Llmǚ*E(Ψ瘿k1т5J${?,EMcX	:f$+?7a9AU+/hV}C-nN 6;窌uθkX KIRȫWPW|{p72ExC%IBTʧas0 $zԗꕰ$MZ{Aۉ"_'ZRTe0|Jg&P}};DLUj]oӷYj6|^	}7e	Ħ]._*%7{wW4fJ%V4'uz9׺^a0o$^:mv̒c$^ik]w{2e\ 9D9w}e>kF2PjR񆖿X)

	'NC-kbDT^wy~׫W'-l|YnEAO.smnT%΂؝,iif5jڠzDUfFqx]H|J#OƉKnGtuAvW(Tbn5ϭHl5rL,c&YBSMX	F8# vI^Vdi\zA
u,]4"# ,kZ!^07u|T#ڣXE_jukߌui!A|
VLX:rm(ut#ZwQbelCڔԬT30x**2IR|֒2J2F1+;YIzGz2(ɷb?oX$#Տ̨lnrOw48-˽ZOPC֮gyV&LVYkR
yЕC)8;aQ̺6s[gsVKa&3xl1+WUMqhv
F-%-gg 7%/OSYdT>ú+ap_}&CyvQL'Ps,mBt~ =Up/Ϻ~@.l|q|u>.3Iů{8v3pQ:}m S.Y>L!*wAih yJyL0n=spcX5u B>E/CLͶg@;*dfM.ʗP7e꥟YF4ܕT!{p^4{·qKOhߍ- 46R`zwZzErѧx9bUw"QAO?dE0rۧJF2̀DCr%H+'FK+֭ޠiC>5?B6IiʶakŒJEFU̿H@KՄs|p8IhnV&`\i$ӾC:D-i`wиnYITt$3Y̈́ D2
i9W2q	4]@b=YYBrS
mN-`AVoxuْߛ䊵AOAI*14	/Y?LaU&zH6:$7dPZu~
FaЈdAbtMK!FdDSLFWl3])I(<bi7&uU"@l~mhN$A&dû]'x1@,,`(G|Q0P>ç\$!dN~J?Y~jͼyl[Xձ\<%+W`Y2w:(+
fڼl<"70;$gV=yZ(	/|3tO$Q>A/J3;}lT|on;hQ\3vPs08Qߊu9.|P|	7Ziie"B[;9;]A溝l5 ̋n4w@!bޟcǲǂS^=I0{{~aBSfĤgxTBrF@	B[xCr&O;{`ZJ"+"A&*ٸwbYFJ qߺseLguQ_'ATLf(@|BvmşYv?F=,w5S;cz_i9E_Yk(g2ɠvҳGӽZN.-.ߢܟT}7!ַ`I<*Ч#H_	tg(P)\t$m)rHTzPsڙ*CcdTKHь^T/ן{`oj%]8IN).9ě!K[*1[%Sc<o_zu<RFze4+I7*Ȟ
[nBu7ڰi얩˴B'qޏme$4p)5Uvl E"F+LV?w$Ь_vhIruΏ>t9F!1.+Rb_*ջS͛+1v+enـbdY{l-޼7SubعKm=}?q.!oY'kgDޫmȄ[d@q
?~ҏj-/yIvS`Qm {soA6ӱ7ֱ
a [{b#I0[b^bR'BTיeq >'+A$nvDz:I	?ZK@)Q	RQɺd<ru,!\%WCcX;{ZM6y|͞<cH." OM.o3)g;![c]
ټlFя"5
0 WI+FNfEM>"GC-<!U\+aa<85jo&vE=eDĪѿ`&9Kw8,>4琙=	!,r%W㞾&8ʔ]0B;w_hsaxj>YL	fبz0XMGH764
!d1x<'ԣ۱CWDogݦ3y1\'SBN-ْYO9<lW\9EGC+zI׮]1z+D}XxMcQZ%g?#Sw[R``akK0MaKFA16!;7QB AȒ'VU^oyQ-0IPyɧ1K8';H:<3
36DÁb'$OܨN))Rii/=+:[lde !ǻM1ƹҾ4YbEPmK?[,舶d=Y0!	7"5Rio?=,MWF,-_ɇI0D5(f/@ET8{^T_bU~^YLo!|dv/JٌRTL4[fMpWF1 .Þ&k{5XXrt+6\hz"\rsZp{Zݎe[gC;gg=GsXq'G7slR|Ъ'k_)CP=<`s}$.:H!ZtpGg>9h~Чo	i"864fgR=^~QTK9;m},׭c\W읹ep/saq6|Vť*UV1<G'(uMxB)ѵ(SgFڒYS椗2YJ<sC["<YQQr@*D,vajh]jZmCebr3
M2įI43?I@!ԊȄ]WsD<16=l	kb#7{i2)	SGQ\T"H:LEHO)~T%_\䐡tJ.gt9=[mO=SDi'<ׁ
q	mPrU_#6%I&'d^c=#Nu7E(-UxWysrYuyY
մ0=ӑ3x+z!Wp8gsprʾs <PH%9`L*͵8l+}t"bKbJӵbϾ8CI9]eK$WGnc9({8#ɷTkO!(LZ仄H`Bw{` {s6Y)}#u"5^ToD.NE_ɹ)E[ׂj"igDlL6$uٜal,0YxeYUeSǨnj޳fH`(ݢK$[r¢ -{?qTAH/I7\Ml~+kZ&TՓg8	gZI,/PH-zYP'/=Ǹj^jKg'tڭD<ŝOdI?_on	t-%KlsrZu7T@0QJ+cOu>M=+uqlVj:V]18-֏'!O(:[-d	,utĲRaoǶsٔ_Tͨ]VtCQoé~Ay:tVj=Z"@2rޜvi#SC).=-VĸD[Dtu{&3r58p(d_;Kw	<qS8m<e,x,c9<5&<-Ӯ">lQFgX:hQlއ
\ϗ:v ɮY,uD.7rhNpN8&x2	Dvg-b6װwi@;v/ݚ]ZRԘٿ\v{əˊΝ>h<HDfkf&xzm&oppS	^i#m-I˵^?X<ku4W~E4>sF"_N6
bi,TC؟ޒ5|BxK[Ȧ|ab ⳷&UGZ4TD G}j+#ZWJ*ԫՃ%k_HӲ#4KAI@MpO#gFd+*i/a\f
$nly&a¢TC]xD0fh.Yү{}*.<<m^`Dz!Om	%# 	P6P%]	VIƹ';䒋h`N"XLP97o؎FA
}cM! jUvmj6Ąb,I4ĆPz5;(R
ûphuݬus^xyk@xB9Iާ;N uX ,^_xAsΉ2-(q'DxŁN#HGO8O%&14@ʀ#e	P	k4.I0ߪ"ٲI",a	y%gG~彡M1;2-pOTvԲ|)	A9rt4bd_6^@Qe7ndaPrpRG%^< aQok&e*][@/OWȿ|9VcA~IB13
zIR	>{M?S;4C=eRV1bS>2_S𚭪õEcdڦ2ǀ_}2O	QGؤ797|k$Сt(|4auȧ#{|]2VfϨ]M4r\qOkhUЋ-T6vմ(/c0@sߌR0;<2Ķ:K)nh~ysH$cu0W?qv$D"6}
$zͣoJJĹ:Fp<vDo"ky;	|G#)OWFG+3"7m8Jd|BEjLA֪xdjejʷsw1|/(Y%Vۇf늳fY\/4b/RGBx+2iN^F"m4?EOlU88k8}&ZQxj
i>6UsWʪDC&<"+Z
5Ց$ª`*xzم/]5,z5Fęg@}n{JZj/ttvh>xv<MD+TYPF!/>eܐwq?-zMpV1b$Xʁf9l^O@{68ı@Nf#W3m~Gl^BCWAr郫3kPIv&UQӅZ%" ]QԝˌeKc6GZG`3k8nd'%>N]z戔a1^RDxUdQ䮪)F`z?\Sk=^fvӧlZS$Vq1ծvsBYs	iE4Uˉ:F9?em%]nJꟃ\t|$lso-ES۳N7حrMpԦCVUߜ%i:$d7Swٮ?tDY1L3L z$zAS\ܞ|miƫ/z/`/)z0T	EݼJ&3vFpbPâtL0~ ̠C-fL@Ep"HN2 ;8@OQ%?1iK͚z³p2B{2,C3DWSw @E)}PagVj?c;GRgI'7t`:$UB}s7H̩nl[lGzr;%Ml~ӽ3g0s h*~rN`AC$Lv/	0YH=+eKdq%4Y39&"8-,LhyV|ZrGjIh@
u"DqFeik>x:uwc07mS#2.@Kհm6H+m425gduP)˫n] pO()7炡9B?[zb;̈́x1vD,	`zPmtŒ'aG3(s@,|waB$zL}ˇPcpLJO4j*-sbbt"V>%bJ@jZW].jTYރQOYyDUo9x#7VCވ8J6`e&Ky`k6'W'--Ӿ䮿ɑz{Hk4E}..@|5	0AV=?IZ:!Tu(ȥ*%U$8%CY*D={mu@N.4\y4p-! ޷*E,`#o6n0B
5z%x+&HM0<{X~*,u'8e6G`jDOMt鮱Pz]pD`>8VO[T؈PЅ""cKYy S-kzk:(f(.gk\QDF?,	!@ŎVx&hB>\&h-&c¨J0OhZ~g-`BQV?X~4^ezHj4GV[pOhjJ\sN7(p>kgl/0?{W^w`ӌnxi^YT?p83j
NKYh*E'9c|J@a4y"|S_a':=Bȫs1uP[2?k'@
S@Kqb,|ժ3pM𖺬hQpS>^2|(8]ˊ_>y.:!Y;
&Lėe/fe.1>L$Fz9nbU$lZ˕zO2:0z7my^ZeM1;
Na#fB M,%UTU/;(DKnLT(muUs[ڸbĢ-C"O޽˚ftߩ+0~Zw{v'N8[tyv`4x+c߻ΝT	JK 
LFk)P𖬁=2cF(7oBDƿdO|譖㤌fEeNgu|њ	nr7fCG	ğN6y@֡YeRd1br@('UPaqVm2
r_(r0Q"\	be,Px3H=_7G,\܉qCaN[͵פz{3.ڤW|ϴ~8{ڙ,C	L1MxhY4 %$";.|	+՚JV1g^8h62ʎ+g-rӖ?tlL"9zu;tY):EX!`	/~SHtOV=Ha^ۂQ!ydVN^xgg^ZuYC2K"Y62o-*Wl`Abӛ\aR6
+
ٱXްHOYYɻu1?GP˖PCtZp 7Պ60l^.}Ρ{O.A]e	\Q~m(	Sf~v5;:u_+ׇSD_A`?G=٫ZwH&6 H^c<VNljLgʜz	H	˻&F{Sbn*\hzy-Z_Qvx80y^ޯ2E1sɰ}TN5wrl-oվaK2ҶB` A+oy:m8S㰄y3Ka]1Ї;T6%gߴzt͊>'KЁqh'Ƶ'RtZZs㣊£Ҕz},u4vyl`'VF*M5&rxx5qM6%Me40XP8.^D2 2: LiFު~8Dd Բ!fekw;x=2A$iQbvE\V_b]_/E~va4m/(6GPtH7M_`瀡T!CC" ~3vZn_Bpz.%xr1ëR^zr3is`gd5ІZ7ڹ78k5_@fp~Q04jcNG8Ft*Lk5ڵun>g]a2
R0@-gk,}̨x-m鶟^Rnz'Ӝz˶;q$h&N&>C8Q<LdDITjH?#/2hwWgA;SZ@~FhA9omg0^JK{Z9]q˪R](ɑOv՗ߩ:,*cҞ)ٟo+HzD N	`ln@M{Rh(E'.G_ر. I bLɡ	X <6$m~yu\_z^p^ї]hhƧWB+ǮrE=iQl
dB*C;^jkEqjXj=Ϯ#520˾{K` *ycl¬Ru7e 5A7uh~h6S,d=a rAf*ssꠎ9:(^D[$GvAbjt60_YմȥS%f/c#DWp_b-rr#z5GJ ݪCAIşSt6VT[Bbf(p;^k|\56mZZy޾cJ]Uﴮ/H=݆"_)ؿl|)Eg-W{Z79:_{'h(d|&l"v%֩l!W3rFve`VޜBҖicWn9h>u
$=?=3Gg?x|ONU@zd1o$rPbƹ_$lҍx;)M]E(-qWx	>aKǼ3
GIXXԗR^oL3s[p((zJ3轥H2f׬(jpKt45̑ͮ>b=WXK1gH/ƏXy8J2JU^a%z$KyN}[bxh[UKverdeo9`ser9SN{RXrn% K[/D)}M$Vi4d8x?vhJ+yAESBn8t*m$*
@fEY.fE_t6+7\$^֙8[L&GV9+2cBVঠxpFxý|oW#(*ndGm-K#4:VOjIzcLf8!|Eǻ~fx0[of'YxKj%(Fde\9|Yy09Y({ҠԔT*Se2;[Iұ6/^$Xެܸ]TAdg+UڳON0TQ}˜l9!=9)Fׯ랠8gcY6H	xLU｝L	٢Mm^=$545C1Ĭd.C]80:V7VBiOf!GIg=iؾK UwYX{YG/.Fe2G$4Vi҅!	+97O\^0Kd_~6!79)ߜ
t)|`Vq2kb	39[Y|[2&R*4q$bߊ=|(CȦȺ&f?ٽ<_C>w|$r|Ơ,"cYn"s48cl4G%h>v?~k50*I?$sż6ĥ6f_V>|˨滣.{>S鮶ƫx[Aad3vҳr.Z2|"Wc1];̰X2.os>aܯ!Nz ՓöAܹ "c?-)UeζItޅ׮a(\φ@0w\	2o>ڔUU:"a*I\t2mt>Z	ha<|=xە^RDm
y/0JtAr%ã/.
m̚ӿl>a@[-Lm>]Q7J ''ԿF!A۽iI"[;	C]YW4Q`XeQ	ݘ(J|r:cVJ78y|@<޷cqsKˀ("(jOOpZDX9+)u%ȑ:	|g+ 30I4kj|2Z|rTZc
h`9%i٢TWt2Ygߵ6"0] (_)uG,ibx@ 5O<~'~j3tJKˀwơ)5iB/Z>#(&U2}a>!IUT쫜>fs\kTAf/bvy<1;چqy*|q5|0
|A cl6y*,h09r0OScs+iA(>Rrisov߅X<ɉٍͳOTDFP7pN^HrlL7`^\bj^j !$1{:y	K%4FdRֳQaE曧+Q54-W0N)^N5>V (}x3|%7G϶4ۃL5つ]D(6'&W(wD&H5'qXj򺩝Z?)t7WuTs[!whYUqU;	n(@`W84-9rbj<% F52a`B	0f,N ST"!vF	|B$$Z %Ws偷@8JE}-n.Ej^1*	O}\tAYUAUiX|nӘyhuY	louk6H'gkONwU4x߭fHw6M<^j[ŗp:Y4~RS923SAJ{Db߶2R6,!u=r%6?ID&Tu~d2sGo1 v[=ĒmޗAMYz_v.b!}|f#98ڲ%!"9Ez#X={ܭ2º_"[,^UOZg5)nTħNB"F}f=qT9a]UmqۄWjfωg.,ҙ񉜓{MvSljW*q?8yiiu=Z:KI+?3 f^PǮB@б=D*?9Frh ;➢Ɔȸ2NAr4fXzydw% Rz wH
vbC݅[Kzz~t<H,@+8團Jf[e*YDY4&jkHwu`J3U%X}'9JLNc ݛI\ ]bFY$C6򕣼ۃQ(ooSe[rwn\9UsjV!>`B3lz
Fi''K'Lm.)KNў-2#.%
7y'[Bܭv|Un-Y&tdO41}GhV]!K.0n?ߤX1'?+1!<pRq>푁1#tXqb,;ḙ-v*ͧ𖬵5V͓2+|,|E|(	&1~ħ]=J(w]24NAX"tU#N
Dy-`99p!μT~SSNzs] >aю 1_o2oI):؎˭!n$S}5H򪱻]njg/QjԮݭ!;TV<K/'f	pl4Ol!Yysvah߯!n(QlYǎMUVo/5azJм	|t5Y-\iL ɨd? })iIi_AT`P'̿6_Gn~FCU;޶M@5Y)=%BE9!3&OW)Ry},%kXXJb1wpi3#'i0Kս\ I&M
ަXޖ6l0Aw5ݚI/e4>ib4"#m*v$zL ٸX1J\(-DMXYew/f:() 8Qܸ~5ַd&w":(ᆱjGwwT1Pn^F#Ea$+2iE~U>c&Z'vk:$$'(p R[Y~!Y#'Debw=rኽ'r;mo{qtRm7rFV$N/-x~:ќs>-.ښ>S¢mc#<m/<Tl+ʚ6Xjg䙎0jZu+py3HFD!AK}V,8`$p) h&<F͛˶:TǙi[vmOpRSTrϮVZe}Y8ŏF1C|K|`Ĕ#pz-c`Oȏ5W&R`
-N9# z?O#{@~/9>>oSMg,ߜUh9wN'#)O7[%:]uSZ^Qrbm4{ O5i
H9)ghN16.Am֪	IlN_n%ZNQ7FQ0݄p@0N"wDۨKF/B}'*HEfb2c)'eػ|5Xӆv}3l48>i?)nɎoȦ'g|2n"7|h"=Qj.w#lК024vHT%cBapE^${'9`+3<^J#տQdelZW91/EU}py/h#F	eI 7-RX-Ov!]_5*6q⼃tUmpz=hu:W0Om)lxbphQAZc|{q\"rZ5&*K5ru`QB܉ޅp+˰Y;]A'9`G&<I{7mo*mqKSUk&רPŠ(gd=OLDɦ]nЎȾw'_bp$ԢF`սǷ	&WmD_1[[鞣M5MGI.	rcpeVa&YXy?9Wq?6|2x> FAלm@,Q4h}iDb"WNn>Xrk+wO7O]bƘʯQK^.[!#aai}>KDiS	79c0˼!EpaR<:#YBYϔ_!68_Ҝ*Nߚֹ1U|ل7|0ڵQf׀KNQ%ThαF9nzB4.b반J;VPŎӥlATU~AYa??=5JZD-q }&rMjC gٞVle4e*vu
-4tk<.Ww{1;BoyC#x%O,Z
跿,zXʺ-"pdKUX'϶Q()ʹH*kQ)"<UV+q#c^Jr9c8J4Eb?`<śJ6ƴO{me?(˞.^efSjVciLMU	yr,~J}9zT7û쒍o׫|8	v,XUF<eįC%n
.,<kֵ>7%lY(qU+83tZ:8U܄`^JI0qZI0+Vx$sӤ!E]Vex'%|^EWJ)H$w}VeRVM`p\jNVH<ZaL/<o}V%Gl6aȉ<Eː퇍Í#q֦_SVK=ŏ2$fjrW绪tk2&lnݻ0fkS@!Ijc~BF%?H$H3dUwq@}.avz8
X**OѢrH(kB"PO8ڽ~ZZtq^n]|ӏi<j`1 !0dzo'k`v$r2TP{]qM,]N/n/
v7p 7ImU?~8˞5%;'Eb?/;`iZIz۝rP	\>z&<]U)Lss:|AJk 6iue~~tڅC"4CAҐgfALU#	XIQ%((ք/%v/1Dg% J~Cgzj8 CԹe^zDljO/QFDݎJ3DBJEW.vQL뜏hF}Aҧ-P$1j"4O<eٲr<̡M-z[H1aGs|̀8FSD{8Qyc8E!$,5p ,tp?+.׭ ]VH}}t{Րs p8&&*[g"@QFay^|=Z/ (g;y+{I I?j.Wq	pHM.r|Sj~7a Y8Dٷ3]Ej"LYVȝ7OY+!&_q0*2mե̓>8xH|l/rт2mRi̃/V|!ςG|L84h҂K};)
8F}I	&$PH+[\LJiH[H95:OH54-QqRЛ=tESj,n?ST%Sqx>\ٴG_'D<"<zziTDXYv8z%\ӧ4v'
E%9Lۢr=﷬;25Ɉ9n$wDFLaܠkL vH#Lf>$+@X9U!d@?"Qx5J܄Sr#(頇M(4@w_/{i-F2)w*'%pw`c0g;!0[и9W15HC=⬺u؉/k\'aJ49tv{	̅a>LsMI!b1*<D&#!>_̰*2nU+@/ HhaA@a
M,^**W Ԙ#  TҢ%%y93gH.ϊȆ e<iF{vT-E2\IN؅3	w R'䠧y%|P|ɉQ>5Y!7nE4`'CC1L#;vJ&3D%U`=("H7f
Hf:ϞgFp<Gp쬥0LgHd_rM!s	VZ 4͑9PdL#X`jČ
"Rb
HKgrmē`nR-\[uFE5ceTRXlvZd"֩9j~c؊H"AN7:'AP@vzY$FdH#p?z#'bWz'{mNQΝЗE`Y}K08zL9DKs h5mFٯnccn ̰OV_K"ʭe4~{F|0-BnBfEzGFCt%Nư09M\}q<JZ!VH9Յ{Z(0-3]pE;vr6z94"!%sio!\ ?C@0^0JQҴmG*vrXjIKSdۿFuMSo^}օX7vAbJe'Hp$ⰧA!V`}avrzZwW:CP724=M
,	Jωzy鿀ZˡOY`AؐP9@9RLVPn P!yLTd/&Qf@8aM7A~%X3}#jJea0;1o Gk8KBLSt@z׭
9t]G tZYf!"_w+9*a~1>:'!{W6 iCHNvi#$v =g|pA]0RJIVz w(٥$:PIoiv$2tO6?ʿ&))SLĘ6R<Y"QPaX&faVw ?QdbTh6'; Ǌ"$ N&~*e)dYf?6[-p==FD>wDJ18ȟC LhLU҂M&`YS
_r*ȏDg9l\)FR.bݕolTu+mLu11&ZJ5ŔSU,/iŨ݋U~̙ܼ3_UsR]Pc?$ew]~)Y{ϹאhORymVFyU	>DJ|BfOBb<9EݎSqއsBd*f`L%ˌ1-&nWS\F`` gvWXuk=N<w	!?73PS͌R3cRp+H18NQ<,ŁK.6fk%Zl|l:9Jhv04m?Z.2SxP:MVt>"2N֩mTbtT`vm7
O@n'^[	ƙCRj	O_]J-<Ubw2dҭZZ!K*"-#!,+@=ŠJ?`f^լKuǤxy|Oy^ނm=UW^RL{ez/Ik%Wv5w,gIjQjdRD+X"n^*X[)	apH)OȁPV=Dr: ĺyT˥	$[%F+$Sd}IF*m#8+e>̘Ktv(9~3{^feK3ւ/(a\I
1!X9?k^Xw5=tǏ dN ,XX9I7[($kUr%^ƭ!%uԣ8&
b~F
ٕD}އ ?'z3' 9R
LΒ0gb 7-&go!i`"I;!;A,b(2g(<7	2A9\GZYM*&?3m>ED&oR["5=+WZu+KZh6T<U0pf* )M9]aOyW1S^~qV)'YQ?/:G?aRa_|V|]2̔_!3ݒ-6<C*I	޷w؄RO^-R
\26'<f#n;Q-9}n5KL6e)}d`u\Zn~PQ lk"t0 C2(34;1똎QР¬QOr2>43>48vL/%!b!eΨgnCr&t/W'qv8jY_	]6'_¦d]7W<{>{)SAf;pGXȹtL-azZf!LazGQzN,AzKzBjpmgb
1!Ol<Ns%s/<G?P2]4_L	~~F&蕚vS$2,wOxfR +5EOQy:T*z%Hn:pD''F=jխ!sGBq8x{<D
+xNV}<!*d4'Z`N{v喙mh9
"9u1eỐ<PB(NMD?.U|hNtJlnN<=`5lK-U1k&6xYxunv]LZNZw«.$IIdI	_)ϏM2"T/uyDΈM:W/, "}]WS@'KÑzWbyNyFSUB/~L<w ~ 㵄E,wiNq7Abv	FN+<wB_>.t|||%q>-O8Gd;;|5f3A&*JSˁH\$m07457+Jmrs.*Z^Q*xalqmT'vVNIg]a5MLVf0}"v4fImId19#S-Y@5<IU@%ȈXzNǋ))[25K2enJ?֭$l"*D3#F&4#2N$ãzuSc?qBg^:5'đlٿLOW	E-?fo<JZat74޴D֮{-7[9
(L= A2dp ϪyӹRAUVvX-O	h)-(q|A3{&AȚ.ɻJ/
#a;>eDBTd^_X%H/Ň`1H	!_@0oΣ+4skZx,p^^(;Ƭ̐'bH(M?`Nm/&$Ta
W)<8=WCDAB+Wk|*<+0(1i&O	XG@xh@|:f4bza$,yrrl0-%mY<|z38;j6E}Nဣ~M9	^U_JMWi @L;O'K+6T`ȷ&L&^f$/70[}^<-Dǒ6PBZXAR]IKDV/B[-q=k4pS=/D	BN$?K:O5SJl&±.cQa J
@ZՌ&1_y@0RW4BdImS_Q'MaUKAZ=qt\7O<I;ӏd%٥NTn%^z믿BI]{@
h%K?'%+	Gv~f4|7d{QF*CczR)όtu^^,ƈ^xFؘrV{??g4+X_jSǭO88~%?P`=]㕝03yYl`<YTLi"?a;؁(H%9N,]P//cD$bZ8W: 8Ply2ro:["#"V6AEDw8JL<,hf.r@F􋊏=ȡ0)7֕`Z\jU)wM{,0Q,La8Z-PxGN='8Iԑ߉zRt
FJ5c[FtCJ9J>PϽ^>/dJld0!ztHOiM*4MBM$rr\iFkP^4ɉYDk\'qٻj>.aٵ~}׺GL D5&`e9?9QeCΐ5.x!הROLrHIDT8Ul:P3 %  β~s\i,b3d?(u 6QsՏ*-Jq.8ygYեEX#47Ԟ,naI :QЇGxN!?	({-K0{tGR
HzL' &$H~2g:ڭ`[?Lm\`b6B	++8*Ӻ!,	)9	A<Yav}hJ-|SPJ_#y*N_,8}()%3IP(6)x"r%dEĬpd- ]MLSa}Ղ:ڛ(
UZה!\I.ԍQ9MEB~9n2$ 
>0rD+(Eprvɛڍ^`w63aמXm D7Oel"
ĳ{I7i$\lhQ!*oRhv8`r2	o"J_L u;s̖+>lJ"2Oi
G{}0tYE,g
}uD p]H8@~iSm12Uq´	j%N8>JDu F[9mpL8!.V;":oIh8 J*;.2wl'5PS`2|֛;Vs`1Ek!MKusʈ%2pKeŗ-fxF%]9*>Alɼ .N֦WőʹJǤ,L)Z z2}\4.lZM`!OpXx	+dAȨ|#IJ%+/#1ץ@,b:Ï!7A~36UЭBVʖ79#Ǐs	`%2XtSZ4{@+,Z?ooMjɥ'Ƽ)'ǞX^߽ȈO8ewx(3v%G9jȆNZ|9hI"/P>@qKܕgnΛmf@{)2X1(7EUڒ>A3VRk6SqNT9;ڌp">dH:X-%	*sc7(<gOqR,tjNJi@ʭ*8ɕ7T$ϙi)N+Q>ELkM>̖Y]hJm6<qU.f	_nCy\yn=NWڅZ溮\\u"fT)']SXKhpMRY2
n*Cٹ<
VRYG,GO|k826,|9:'ܢjXבsc>ii~|D.) ?yd<,0E؛UJ>^
*E0	y7clkXZ7<^?	wJ1܅]5gGdH5 m9&wF1YmpA<o6c(A|KX| ScJ0*u<:o	n~4)MLv=Ty\_3}vmUPV̦:b.RZ09y6V2׋KLg+-e$yOPk=Pxp7 ų3	L."Һ}Q7d@A 3&G[PLNѶGA[;?oK5B7I(XEEVE˩`MP;m`؉LhB6z0ӹlC;r["}ކO(vӓ` P@焝čfkhQf)fH;qȁWs<8(D(Ѵ5`13־p%Hϼ DK9Uv|<Yc;uT}ӽ2S,Ѐ ^ݢgcdqWjm&!9P4@<6:!8W E#x"ӄp>:cFw ڤ,l%4 0lNwL^-ذB(	z>69&G(k@<i	-De0L![YTژ0!r2Lek	P|E4H/-@ѩtĽG	CD:y:0mݔ"q؜67X	_|]s\z#G-)u	*Ō?04F mf.,
%IXY j(?R|/J!Cl`JqgluXK):=~RfٚSZQ(6+
(;HY<?H_bpGqͭ YVR`pMֿ6$BعV^*yDU#S4S^9Q IĢ5V\C5CCN6Xx,U<LEZIQL}9*jvĠV)|L
nATe?Ғd2(jL'JiA$T"C5晒#A8.Yl1 -	dt#ak  wͥz^dЃT^Q{*q~1e`
f<$Hŗ;?&=np5C0"FZHSqC(bvjrUZm'zr9O]W.uROЮzcAs!IIZ}_DMB?|8xYO"]|}Rt:[)jq0ʑz^L].hGC;h`4Z,<זNmq'	I 9AY!@YG`ڑJŢ^-&F`svnǘOKTJ܇u]Gs<>1;8ku>nڡ'gRġܮ4^=Ky9w'Oڃ 51	J4JV-]%<Xo=[7)ʷ:)fq'tb@&wG DovxУ5Y@SW;2NXa{6GoiYat4yfy
d3ԥ]e]Ύμ)FPC.kwAR֋jnzPOfw(
̽M*L=ڐ˗j5=hGzyc
ښL5}2{IMrd8z	
nvZ;5p0'oՓ5plq`{QRbz=RetcmrB2%P*tO(k,t'ޔƏqJZBYE% Bi~Ja'r}!,4b]	:Ԝ`F&LUUTw\78HYu_g)ayU)Z D6]]/ӛt̠cD.?iJBrtYWj׺F3Ƶ9YK
UŰR58LOSw$pA2Gdm,(,zR/Ya870݁ve֒&/Q©=B|3jLOhLXEVJ׷4JImpltoRen2zx^E]"(QmbS2-4{cg~eNhB-Q<wRTlҙdH8x}rAh,~i3:h@˵PX3;,iS^WO%6I&獾l#}s~Bk=+FꙻZi]v>H%jv%έW%I]sŞu$Y󿟂v4614P"R*NUQz$ʺbID5ȌȸN}?.Cq삯ϣcX'gG!T{Z2lŔ0@=Ny*ϢiX&\?o8ڦwߥ#z;េ#<3#<EGx`/7ovWvbzGV-ͷz><
&O>^4Md, MVAv 0ލ穢<*6^k;"89èHp:z`;EL+l3;A061R!g4n,H/0bt5K,s`GJjDƔzFŧMj0ks5EiɌ30i`
kvYZǚӼK$d%3<6/2ڹ Qۏ(AnUk'l@z7H`Gͻk'4M4Q=/͖|N.Ln-b6[gOM-&ff5#i#˶.Кhd7M>@IKXCq~$`;M;Qt#ᔒr8r~k}aD(~@c}ѦXr-&2FRJg8nHCuéug
fLz
~E/ r]FW=ʢ*:Uʈ볌=A^~`Og0ļdl]¡?SxAhZb>Ǣ&l^4wxǤڤk[ѬH]XC0M<"EXAnpqqvqub,Po٨?T{uv)$wW H$G(tU׸3Uhe0~--hQJmr57֙As,m,Eq
EL߅^*'+L"d3I7PeL}(Ow:C}-]Zmvrշ]$<hX.:"P/˰Ohb08U8Ҹe@(rٙAy'P`AYyf<V.I4H] KK/ڶnfe@),\&xF)R!0%梿6@kHYwHDֈ[b`	pK;JҶ˩ȤG\!8֬*y,Xѩ>0ڀHb֫?2WJ`gh>_Gx5_QE9l)J	͛E~:bH/P> :*yӼa23Y+n\Km8VsiWw1aIwqe!ьPb nP의E܄8ƻ]IeqgOd4Xsgw?!	8g8GOW狓B?"5sEEٟKF(0+D!]dډI/#~a7y0:"٥q|1BK<eI۾[~<]}_7)*	_xPLU:;m0;h㯝<84,K1['tBb */.O6378T`-p)[oA5}X\侪OR3>oM{>'ygCƭD
 #6mz;*C5.m/qI^Aum.nZuV>3B.XUD+Ps
|YC|QzPSitACT_*6A)CoDw˄}Yđ%x΄!!q^Ҵ ØQ#j0L6ed`mn&aYV9ɲ#[@h^ʛxs?}s0\=48q#gg
3c
=F6ĳ`;^rĕ<<K\}`TJƟyR*i`|IGP<R/IU`Tcх`=/^G`XVmIO߫ 0o(*m*}ziXwuH~v^$jJZ¼|1`3<(sQ<nK*O_5W?j*fkJ]=Y)DKu(S捻#mRq*$tCWP2I\Sް!=򍧝T;?6 ꊮa YeaɕjDd@}kK=蓔LHFU v al7CF
R%#߄K״tY3H>+˪dũϔi2R<@(r
7geESMZ,qf7[XCzʛ"_05wa~50)3ײ#?D_b)R\Ƀ9 UAl'U!ie<jOElirT17,|szyrBm#rХ#Y
0
,¤NW*sz5lS2]p'Rtө*F,KT
V:26"v:3v*}۲6ܷel|NW@^Hb:9p+Aqra)@bQpCb/F6r=((n@
b5ZU|vnNWcsY@8iĐ@@2~]'t϶"p{.8wf]&eg}};TLjc֫?iz>s:,]5/׿B+1ft{58EYȘ<HCOWEGޓd)^W*AY|[{|Ba2ڐ\$	="gy{!7汊oIR^"){T)w:e=s'y\[=Vmԛ^ģď>&XG]Я;]	Ch1x<.T(F"t"/4yt-{@9 !Q >ENJWeQB3BJH@ź9_W-gc8wWoh[emsK	.&OXp.vXXv܁SyM>oW| /*{b-Ιh%e^pv)i2$PXG٘orፘ'5R]W,'U{W)38窀"!hzM[p,A,C_eypx7i+՘Be\g]Hrܵ?"aitlr# Mܡq7k[]	۞9`NQ+N!SM3p˹vIn|t9i.Ჵ:8Or$64#On} CPTI^2|.xb@4Y*64չya!Jd dv,r]2tj1~H|JYpRDGTpH6t>h2SEA42(엖:^y D*p_ej}!r *gRe2}(PҼ-/d$`3NSq3sV>wI:j !_DRl
&C
&6"LIڣdn;8HX->I' 3yx`%E⤛v8^j4NNLqa≆YXP(
oצ	8,-~!Kޔ$J&UGVu^8[kXZ6X5XƍOfֲWG #\~v2P<w9""d!<9ÁUwʟ_qYL͢4˷DGHw02f΃H'6hW+Z#ֹHNlB2:S\Txbkp(	j*zYzb4ȵS=ļk3&(4t~@p{`]^E/f:nTs[j'n>MU,c`W	$A騲jDj=7*ǉqd4</vj2dShVUBG^eTjZK4ч)^ 6nnB*%[{Ե]?sʑ%pah`Aj+1#YVi$B68٪vN~ЩZ:;u~y 9A0clGߛ⤭$=Y]7FR01$YCs[H;Hغ֔9Xu bԑ͔6YM-I˵c *8`t%5GӶkй4VYkMdU0@ C_M{3twH&v\	B87irl9 JQB澮|'b7:ۡD GkLycPS,yOZM8F@-jZJennj[4I٦ _81g{AGC.Ϋ*x,Խy,YJX̖q8&_67,*O{%93<I	
n4my_Z%¹8{{gd5b[1zIR:ybV޷9.%Gfl<Bsى+O
ıEk:b-K a~tJ,W{+pTU4A(*
/k1am TKг|dXQgJ8$oM.E}(ިb8=6~a0]]Wǃw˓iK:S׳A$:a:FY|f<r6棺!.58ϰ@q4:RFw&ΞTXBQͣ?'A0PbՏdw,d~#2
JjhZidE>SdKV
dX:V_*3;ޠLFIBȕ>ZgeNÿѽ룟օߖ1 HSig4%4:D5|XNc
]S6C2Fo=0JF$cC"O¾1yT=0a5G, pLaC{м~ٹ[ͼD1@1JϖA-IJmh&Fn/Kf =d`ukGNJyHs݅i4rq8Mg
4r˼&	ǧ?G7r=E0U-2g GRU.Qnϭsd6jWѳQ@{t~K	ĺ|SkÙ8"(	)J,WMήh5y0xcm
;:;[%9Wec篝zFaF軋{Z3D{RBSb+䝤+;4
()UYu*|p4>폇\]F'zt4]X$rR}6]WɆ<s$&_	)$Ӂm&/YǕ*>|E,~$۶^9n=@~1w	Pe*9sp[]x'~Ug";RW_"FmA'.e8SmredXD*d!ӫ~H֫3qZ(ޖZ%(M-ַnxj*T¡|5lhѨO*)RgQHH#ȷ9=&C7?<PPj_&<?4*֋{t=zؔIXHtn"q&އ@P32)9J1Y%H@(,QiR,1
ǧR;wAђ/Ʉ$l	$iG3Psfq 5:/2yGL@ j=4-Gڌ
>l[$TA]V)igËoJsnB*Tj'ǦM6T'B\ Upi6'yJ*G$Nct+xfT:
<iZ1<Vɥ0"rq\*p@80hҏU} <Q>iEo;lQLMFf4loHc"Dc&GY@ZՌKeC"bNgDz^)LlmZ$@q(wCHO; gf {ޗ6vvpM\M&xp-v:!BfD;?:cڡ[a4 dmC;Y)!l	H]]?'%"
Ғչl(ٲتi'nc..E!@r5ӃFIUUKڜ֧ZUXNzbx:cߧ`%ԯN/Y`LZ_ޱL¥[w\ە/ǋ('Ci9k=D>GXܲ^O|tUO0>n±8]]!"O$7==aEBڭTeޮinܔ|~6+6wdk~&l;@{*}\,v1FysWl `$jfZq)6l/|hRWe᜸+ø.`w6nLN}L]jBV,ܙ*I2tQkJJflo}F{'(]>gbUU85'uې	*H nH$iu^$KI5IS!W+ʾQȤgWӫ`srYf!OX-*ǋNvT<:C&T[ǲRY.n>UE6ݏ݁TmQ\ANVMsv>՚ڵ4]8˥T;w*/JoP;^?-U물!Lm\4򔦱~(˜}Td.=æ1{hM]ƖA"<Xʼ'Q!C Uו,/y:wLKZR2cE5,Ji i
I4נ:~	Eqru,\#,E5?K(	qroQ3K-Dsf2I-(]"R> hdj9Z},ơʫH	og\ˡ(.?22_/f{bs}CTo*^3"ѥ:ZC	KyUrU7BMƷfu!Ծ3`dA``G)va*w)Îg]|9;`'h-n Yٷhv;	paԖnC!2uz!|In@FD$#iKj&8eMv~2fo*go*!{S/8V^8h[5'[F8}5e6(-!A*xԢ&L	tf,8( :lΏ?xnQy 		D=\	Io)8	|t!)GnHcY>OOB\mP	6e	tHz) J%]©o6=%6+@%2AF:3iX Zy~%[U6/jlNL9Z}!C@ (M5(nȴ*^-,-O\eqۤ3%vqjî#<AӁ(hxi`Nx. qcJ~*S9~Nxzg?1k&#mLq'g}CcCֹ^㋥"ĒhB
4,3O`ċE8D3nLF4-1oAKf)<+ܦI}{ǬfbK0ENyx%CA	79I,{5ny>]}VǥY*#(r"KaIW	3f&
]I;~ibKbrf${S{/Vޱ*D4&Kb/;-.݅:L9	d|iy;ܕ-
n7/YA>!Wrk fB)-Yj;H,Z®/o}o֖UOw'm+qn!G_"X
Ti@h)K82@B/S-!M47M"YBb$vBKr Ri]ӆIAIϢ'@|*=~c(BW!Ͳy̔0%if\2LEۀS|kt<88#VB!g>3!UGgNbt??_gYKŲyy7.=a7,nk
?MOF]0#H+!|/׿2H<όSCŰ>_j`@mk_k6툧9gE5* ¯s6F.j `&<
M'e0	guzhIv>m^!7AJ,OBI^ooa|;~97-c?"#TIfu'0`[v;@[6&igK
WaA_ؼ0V..b.[f퍴0xlۜ/g%JW/J䡗&GOmyt?ҧRgdsǮ.I*0nWUTUx*G(idhv>_j![*orWw^-٦sYAGh!pXA9PFLq<մkGS!hK_n%:̎{c+:mtbbLy7ROn3DX#S"3H	U,AqY*Ry_zDH1NVx=YL*a(&"ug7.#)B0ZIL5v6	S XR$WLb,,a <E;K8JJm3r*ϓmЕ:Tbb0oBzzfDpeu9wC^Z~E߷x`hS۰I.AG6vyD4HT6&VN,"0c=b*Cd)jëN?Vv.z1U3:tCc4'hEt}k曙/1/CW D3+gW-ҔqtL.{UJk+iicHlV.%1S-U4&g΁"03ЁcӠM X@"$<olKKˡ_%gy/ޝ]/KvȺD+ #jkwR3HYcu"X"-Y9"oXOH]00bQQY9&I/#_˖"y/]ކO:yW~%?Wkh'%2&.vK&vߒg~FP1f=I{+}nt2ȡhf'n]#`s8d:dc`` ^(5|l(E;S|	Ј{%FVX2R,[	9^B j봦6#dhʻ:ed
-MY:2]sBTY=julx
 Xֵ	vIrcyЬ^)|+EH񞜼r19CMYq}
bta*k_;lq=X?WеxNuq@ĦCå$tkP~ x-o5-l<DyԀQ@>jQ_t`c!x_},n,dg{1nXT6X54	&eØ;yEAM2뮇ǑĐA_,P{K](铫LgVxC-/%\$ˤ\|j`&AIbb6b-1$ׄy4_M'9pt>.,( +JﮃBnN	d^MlQ슭a`N2	H킦QGS|};~^P%&[^όr,tYpsO:'j/}U=jt}"wq2<e^%g}ruA-@DKߧQ]f`Bl֛$=գ>pz	Dv0 "_k/MqWL{*"i9hR<OƠ qBtV(, =fBwo!E%JyO'x"&/O5jtn,á!Å;4o%%)Տ<>NjX|*w,=3XIaKb#H`auzT+0h
rVAY;ƣ`GBVKl"bÞᄩc0L-(H$jRUIޣldlk!xd상_{I 68
I#{~cj4lz&|e\$0ZvC\LXM@K྘E?e4nff~^a8PC Ņ_)z%64fOsc>;a/ЭF]b/G(Ji,ԭ0ؐN.]P`x3VQ J$F1Y*8峊4g|=BdzfN6T0r=jƷrR>maw 0X7Àm$R
]7!.ebS)ş|j6!wa/˦i `nccn֬;ؗ-Kؘ-wG,rMٞ:e;S#1myvrcvLr,qUL4,٥ DOx}R =Z2Ap{Izg{1Xd]N~n[MorU('ޖƗJJd4cW&aXE:|@eo>r4SK%c2O ׵zm笻i5cc9$nz%s/ST
9
"'FA/aҗIϘɕ3&F,c) oC8&^Rch(+XVATi AӑC^![bŒZV?;'p+@S< YEW>VQb(̥у\ɕOy<BNK/jllc\f:^H*21~vWLC$φˡ%-p9Ȋ.U9p6ړ=VY }8Q+J;
|[HYW*W(a͕F9L	>GtѵJniR .e+@>ҝ\pמӕ,%4o:{knrjp~^;T[
|BUXo@kc99ZW4+Ay4Wefx/X]^Gy[\o?a^nWq2zQXTz{@[-ʠ} QK:nz|2LWK5Pq jV!-WaJ)0Q;88<\\G'6ֻ&lz,dMPe 	 rTPކ%JH'ވFl3+
]|u>z"06";6ܾ+B]19TrԲ[u6I落P[H'[-©;0&ЀPܥt(IRQ^;@fylwr+J>F؜J bQπ5cqޮ֡[L[V& ztmwC,uKh䳥k6s.8Q{bZ<4i>M˟]ۋ&'}u1M
0ղu40QtoFϰ('.PF	#MKo$s|!%dQ&ձ^fuIj>ئxQ_R%Gg*RW7ճ,Ki6k$YKI["1;nI6 vѥAwӃ~S-O+/
&t꒥U,j`-vbJQ׫<Q`FfHVdܿLD1;E<Qnds|X:Gza`Dmn_V_G?TVUuF83R#3B'& K!x,}Q_cEBiH,Uqm	Xq|	ZP~I]JͦCWW|/ſ6{!')d|-PS^xS]LU9,ݥH
ڤB}j%b-56RG+|16Y&!!ƭ7F]Xa26p99ΝoG+^10&M]:=aLol?x\)?y݅?v/T*EE|-vwʺP"ZIDk*`a/?>S7r9y9?VEG9,߲݅t.d Ls^.ki-[+MEaGǪ4FR3~gMEx*=̫Z.^BS-RiMu$i?_XYO?xk74gנ{0xxɚI@|1ue\/#-Z13a|mq1>;0 ,'U/8LUv4at
%#*s^ps;pٹͅTo]ctYX5c1[0.y2782i1h/-rDSV1<=tTݵ>P`qFw;->:'rn1!.yj
/cq+JӺ݉d&kOH=pHɦNǯ!~,-kUFx~NGrk,)/KQOim1ހMQn^el{(rE(wc><SRA?"Qz=㞕"J-{x^*(+ߧZe;d(c8,? YnAqC u#ѺN8ѧ;loVooӉQ:ޱ{#z>^h9!#C^4wiXxX}l~4%I0NP@qb'bֹؗs|g(t-J[[OmJۡn%R7mUnꦮcISUAVkP}i{|g_bGSHVty{7o/;k	V'mėIM>SٵbEo7Ǉdvn(-.ī"A)Á~][L:Mxqsҭtwp/̊wv>L%#A9&%U+y'C?6ӏ~[8woI*	Us<A1HtLROy05h1rò"W*zK7E-FB`Ñ_&~{x֯1Ca__<hfaӂ*	q4oOcl=\?q\(CT7nQAI!1)%FUINthǒ0q2?cAHuikqz01*Di2r:.|t*v(sPݚFܦ^_ﾀ?;0t94֝dnQ&eY BB4	u@Lq1AxH
8QtGo<$<AN
'LLG"I>>֭ BJ$qY1ƴgð2bQwG8,`[W̲^8WTGl\iuQhr"ҌĤZj3_DoTl3)IF7HU&%uJT4U*g:[JTOα+☐Y; 3on<"qmB,&iqQǉdNNV(¨@$}gK:rSB27[a;79䠇ciR
IȚFvir1#Ɓܗ9XL]Dw8k0# Av^Ĭ%FdH'EKB#a֡M2Ўaz3JE흐ⱔwPajC߳׷}@0ү⏘Sb7\ClIHAe4bsfj2
媡y.7jɒbsGA4W9}?p*ʮҽh
)V!نXw=[6U +]ypT{Q9N!jUp0؁Kc䷰λn̜3\E/n9N/3̨ݔrϟ3 u%,<Xnz9|{\FW(yT<\,e+">.*Z΅FJ(}KɀCzKsKY+QQcd\8a˒X?9XӼ|yx3r6I9*qQQ);IUC\`AL:MB2ƸJE2ʞ2[^\}]M<sc·@0]A00Ͷ{LiL06rRoE
/Vʜ$Ëj	R$ܛЎß6Ό,-Z1/m[*ӧ%Z83T`)hdeF;MՔQP#kih<w6CǏPFHJ&M}frhnacΧA
-og>z1#n/QUĸ5=q-z8pz+-vUHEn1׆AѾ??rq5,y\9W9pfضKUKRS\Vw_W7HMh/Cy͞홵E,SV7縵vJmQN9.%E"S{1 эJIN^̑NjKiyXtxXJ́PT:Q؈"f:jj(cduuLi&m&';Hta8p53/3w^Fz,k<SF]hgˍ+spkUfZe;tcae1~>tGئa=[=7iv8oG~-{79p~*I)z">.QmͭA9dMBmup$9U4}oPŕ@?8}~ʵ$m<0[n|^;~އYxa^IO1b1ZIYѷc\Ƣiαq%svsζMʆ-|=n
WqS ȿX7Doе\~4	}asu97FtV\)_Y&R${nÔU~2uqfi(g{(׺:5"_6XҖml_įUM!ގa!|:hO
.s;WX:[dMW͘^\|6QЪB"*f1--
4PY3HL>nFi6pz
 n`uv"u(GO"rї]W
Rn36S<nxWoc*=m7?nwv~kP?^{x{8M4SYeab& fbـ}Q'H	姤''e(Mo!ncVN0 !x8{|Tՙs<!&1O
Fy$"Mdf$D	ҖB;&_A-n-6f`W)[)*Hf{'3y4es;gn=1G2(ltAnB	ݛzn: ~- UC4
}U΀u>83|D~;qŁ838"&Q~M`B )P>HOlz?	;~ͥCcWg!PҀIW(N,߯c04$RXy4=ppiT>gTfgeFἒ/$iow88?e)R..7-"BEB/r5|,dN'9d,9"T%Ƨ]|jZ'm
9	 hy!<:ظ(ѤJM<jl\&:gA5N8lX'Oĭ b.0Q)¥\R4NRNUWpSaF*"7*Maש07A4T~Q$K$/MŁn:]n5X`q>V:bsJ7TjtjT&YRE#(,$i&_,=^J@#X`B<TL<p	2Ρ~S|vv#'JJ!]5,d.U*NwiDU8<,U%t>p7$SvXd5^-ZWԄW
RA
ĭstӠ6nėR2uQ`a|a.`uDxS` ~#iIᵘzbeǍ଑T_0vo{P!0Kc <xhDh\|ۣZ5!L=3I<IKUm跼kR`_K,u?|av+<It)Z0ۧ*opJ70J1I8A8iC31bT:AD=kja8Og8]+mհp*rUŋ*!}Z̺x^.r5:$ک>!-{TUз':d~UhY˂(I5,,=7B({	<zfhYj[xvժj:6ȍIm~ۥ|R*5(jxywKnKZ=n}4^ZL_hGLoL~1pY	/Y'P֍40Aw(t=^$=l!VoרA+|mh(\O	,l~t1OG`8-lgL]PZ:xG9-tMU҂)Tdǁsš$**Fd#7>
?$Šv{]G4ǡi<^WLɏRIZԬ85km\vȘ|(o[4f_Â5njLxķ"D :qP"^_ǂ>̀`#
n	yl+1GYx
rEJ{D[ʧXաe2<p-	`IMv2HW!zjϦl;G2{nQ
45[Pe =FO|,T<	w!\(UqF0?˿e}^;p,	KŦ[PHbW!m7X[:%6q< Yrc۹#/x\գع$: FkT3ΰ'HJU`w,iL<E֑I29B:GIpypˍr|g'MKwp{&6(KcØVзaU,{7^#Mk&n:<07̭C8h
L8d^'@54OpȍqѰ=T7HtuqpFUy=|K\ lH>B{j0;G!hN!~={ :Z3?IǇF  fw;赐')MVj˅dFpKu:]GX!*mN>)E=S\`L1iɦOOoWQpTOk!@V57⸴ I޵8ר҅"]`D>Xw43$GQotpP:-	jvy5g'xv;~;U)60!jv,ci<Kp(- ѻBb蚯q H?%g9xZ[uo?FO͢ak*5\}O`o*]Tz/t$!4*4&*z#wfx5zRۊ,7Em{a*=y	MxP}|?S4eA`̐!{Y4/y>=e:lNaq0+xi,MT4îxwehg^ut(ԕ#X"w2&$'0*klQӅ-·QaucˠOb5$mje9 ^_ۜ[y,k7,'
ΈY7X"̒yEYnw|Q.\Ou[_(!\)|	SY/Dl7QDd:R˾Q9v1.pcP\Z=)[Аߊby!f?!ZsrLɽb4ߏ&Yfm#Zk-˘MSce!]-F	c=1R&Ab
D<m~u}(tYq=`䐘ՇaW9Vs#lcj?d*X.$&θ,eoncٷ̥t3;[3X1S4_	%KUR9/+<<`i&׫qL<ŶM_eh
+dz(W,^g"}	b?%h&2sX$`A\Ԓ
"x}Xv!̎3vBHwG҂%WR.0.¶Gf";=8_cS;,b5\^gXUWn}ѽ5viT"͟/kţ(/O
F,Xhueͪ0^^Wc͙U^0ά1%nnCwb.ھfE"_#Rٮx[0d
jzzhj7y.Mu%p(:|*-TW?gj:XH!4B3$te+Ôn7tIPQ=c1Ypð )0x~('X&P^&;OGyv&&	_)	 0&'3Z	 	@U&=[ܗ/&f0.	 +#&;: baa
L$b	@H`croll bar state of the TextEditUēptF5,x6GI4'@@"EnablesUUpZdata detector, default is tru0[ldata detector%@ -и~!*Yx>~ ~!$':&"@-иBhe TextEditU$Yx>~Bhe text editorAR)wqи#placeholder options of the TextEditU$Yx>~ &placeholder options of the text editor.
tzR@%styled stringWU 'styled string controller of text editor,."'	L@ 0@.ЗpV!PV[}@ 2>%Gets the TextLayoutManager ofUY#4`j	JA editor(j	A,@D:AI menu for_9QI,)VUpZAI menu for7 * \n
 QFU
AI menu fo:/&i&o!T:ZLZ
pq	@ 1и@	v0
TextEditor
     *
(Ǘ:yq@ v?,TextEditUėp%TextEditPncTextEdi0	0$lines of content in TextEditUėplines of content in TextEditPnYlines of content in TextEdi0	0Aи@	TextEditUēUpZ
TextEditor:yqYK/@ p(0	py optionAS)RLOCAL_DEVICEi'G 
#P6	TextEditoUkeyboard style^%}.!%"</b>.!akeyboard style^%}.\n0KиQo prevent the back button press from being propagated to other components or applprevent the back button press:yprevent the back button press<@ J'и@	 between|	ɗpZ[l @,и^$]̗^$9^w?,QRChe TextEditU$Yx>~ selection menu of TextEditorC0'nzR@
,иo add spacing betweenOto avoid text truncatio!9ȗadd spacing[lPXadd"@7-и0line height is adaptive based on the actual textO|ɓUhe line height is adaptivZmPline height is adaptiv@\.иAa lin!ȗ4Ycompress{Ycompression< "6p`M6 \n~ 6;U*p#$!m
CU* -$ 8	@ %3и@	vsingle-line mode. \nApϗingle-line modZm vsingle-line modeA&@ (#`0+KoHPIFo,F`O
ly scrolling statqfO
ly scrolling sta1yL0/v+4Y1Υd4Y<L01Wиithe text editor content change%0%ion area or caret position changes inTEXT_EDITORхp180	pm*index ofmLindex ofn!	"W3BTEXT_EDITOR</b> component is initialized
     * for the first timeF 4	"%&Oappears
     * after a long press on the<b>ARKUI_NODE_TEXT_EDITOR</b> componentPi*wmponent's default behavior{component's default behaviortercept. <b>1</b>: intercepa@33TEXT_EDITOR</b> component's editing state has changFO	!pm$@editing stat1m`%]e
TextEditorre&FO	!pm$f*i(0'"%$#appears
     * after a long press oEDITOR</b> componentPi*wmponent's default behavior{component's default behaviortercept. <b>1</b>: intercepa"S%Q7content of the#TEXT_EDITOR</b> component is selectQwmponent's default behavior{component's default behaviortercept. <b>1</b>: intercepa"{)before text content is about to change inTEXT_EDITORхp17;X؂content changentent change{W"$afterd inTEXT_EDITORхp1 ?0v	O*index of range of content that was replacer:/end index of range of content that was replacedan:3tart index of range of content that was newly added-m0end index of range of content that was newly add"a <b>	e@ҭJ2O 
V-um9	 typ.Measure typ4CUSTOM_EVENT_ON_MEASURE = 1 << 0,
    /** Layout typ1CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw typ5CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground typ=CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay typECUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
    /**
     * Draw front type*DCUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind type*(CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} 	!̲̲	-VJ$x9QceFC8& fb fb6 fbq+W lVxWpowMr9/ɑpl~C"4XL#	H&!n	DT@X6ZT:c@t:-:V:ZmAh3nCAkG{yo/tp#E[{qZ`ű?rΞdv[->||._̼u$`G\o&;OհYds!!BO斌qa_gG8g~ǤHoZvrMpǕ4A_gt!N|-֗	cܠ@9ɍ|,CIԁa݆|bVc(󱘐MM֬յZǫ!!Dt-HFp'\1l#kqv*9٨(C+JO㭧I*Փ7"vp4ãhQ5Qٯ&eOaY{Kႎ,o.-'o .EY#X{O/#.ā<e$\b,<~}+0y#D\hGV˩b7kNF9!9Լ~W	k䋣i8i(9C;;p<i>vEJkm>WB.{`8Y߳pkz'	48jRPoW
IjbtwYގ|qCp=pn9uKP~qf<1[1djjů4+Dp٦"swE:FS`=so4
=U4`_PQ-rM\fsQ]lI쟰 ~bI24*w竢C^RMBޫ3 Fb,y?;.)	12&~e<qSƉ|[6?F"<S㣝Ē=7_/q'gN,лbK6f(IC_W,:pC:%-A;1fn^L}-FO[t62!pARF)Vlp8IX<D!s&	cx_lqArF*^Ӕ;y֚ڙ5gU.Y={Dn._f3jr/<7(:SXD<2lm%sQeB>l${a#<a{+@Uc`37 Cjλ^a=BA 
lxd- U%pV>-=qՕM;%_\ۅaL$FUfpE;f]u,M >tĄ=&cJ&aP?q_G=:Δ*s;#io{N&Geavr>.fbŜy39Ǐ]_]aS8X뻋3O3cxmL@V<AQKZ*S7*l;d$6Nj`[$̈S]q8%0ɭSMnV+Yxz¬))jgֵ6'3p,$Խ$^ad]YBYÌ/g	VT/aMqd1g^4:=[ð'Dt"'JX1wTBGxpN%z\V	h9-cC$do-ֿNSyB:$C*J3}D-Z¶CEr]6	޶z}t,*
Ld<3Ȋ]龞B[`7u]dS<ޯ(z$>&FEHS}HiO3]Pv	NZqN`xE=:Lc=.,!mZEYELby1%s&&͊s~}:"~hr043lFr&̯\4ypb*6"RO%4Z$yu~Bkl~=x>Ns1POgÖ%yH YN{P7f|訢@"aX>yiA-ZU	(MbF!ӺnԼaFż9V;rsCi
|Mͅ=AmVZLSEeǒjTZ(w,cF(I.hl[\h2PfM*z4'X1XP.Hu?J[,)0ѻ[I'}H[sMx~{i˽q-tᜃ;. ֹt-J+FUל\MEfaW4g7RׄgP'b@6B'~;1YM NE\"߉I8M[6Jwl#,oyI'Xy	F?s@tkG!I$L-"#3j͊&aƷ!BR$կou1(~lkk`KD8%a`S46и< f"	K*mvIK7$>sӂngAwEW!mx9QcD-/`e~`+#K{}+1?IMW>=גE`~V=nҢT0shpok_H_cphki)$V旖4kq3Ds)J,2Ec_^_i?=?c!eE90\MsE	\;V:?(?\"-S$fdB6HAN~.0tj?tbMl P xW}TTe?si.ʗ8i( ~xa.:5̌3\6pln{BW]ˎ=q1;~n9ｗ>R]}<=ϽҖ\f˓3:˖Pkߘa?Q	Sf6}1LFBq:>"P0~A33R6te#kNqxDxjP$i,yo5S1CwJ	vg`KUa*Wĳ"JFOama&N53԰`gF74Ԝ/pYDn7ERd['*eB^؝.ѕ>Î?78w7蕸8%lgdGQwfoH5n9qQIlG:%E"*^U'5l9w i3{YR~ϐ\sL4}=?dw5fpJAMc`t*.rHimu:h&2
e"D|*,Ơ<h[{N/z}	(i?u9n:KI|<r/1F(+-_`aI2Q-;I=.2\Oc7ZTI' [nzg )QNPjt^8
f(Mz\(b%Ɔr/35KUL*.8ŐT-fV %.LșgTj6(%Llm{`	X0
>eP#YX"˞_=Jy}.JrcpCT~LOlAQ}8$e|j20.t*v\axT<M!EI\acU&6z42ƨ4·q*F3qP'g~E獢5&NsFIR|]+&FjZ
t,{Gw7#:|Ǩ2!2}}Fӽ1lxMVmY.P#~ԭBw.q.
WX6vpLbk0'1wFb8vdx6)swz+Un*u(,.W̰cNΥg˙](LtLD	$ GW1I	6D:ZNW3<RMչz`;F[mbgi}~QMAQ<zFVed8E+zTuR(|n\j=7$TXMa$l)Gz]U	,hyAoG-4~u:	:DITɛii&<>Б58yhL߇sH1|ekR@vEE'"hs8TnL5󊒓'ժu	e&ƓH^S'k2;=CZ#j	-H!u$V6jrٵl6%DZQ-SBT4HnƠ5'bQ$]ĸ}`
;)	++Ƒ:	L,LڋZǴPKY9ILb'	X97{"KzlYĺ&SJ*ѤHcSQ3e$=A	OčD5Hgfjkd-բ:\r
}#`o4mZ0COW,FO۝6"y^OJbxsN"3enڦaE]~o>lE+[J	blI,Ǳs+?\<|&?Z5:߿!f;/,!ȵ|Fuf`+kϩܱSLM܈t&ق³vY&ܰӽ܆X]tv_T%?44j2J`8EVTTۋJ*8<|/{'lq+%e{=_d}I~;W?}yyTC|ܮGeg Wju.U/pǻp>% dDSex56W]GԚi*K87e.>XǢ;>&83^kR0e?G'o$f($ N>%W$n7臐
kĸ>&"b~?|ϓbj@ybTC2=p!<*1zI+!_ӽO}у|,ϣ0>I4dJа1ͫ8}Cz>ªoOS#DxY$|YKn,`(<ӠW	uӤeTXYmR`k$ss!ZaeM ~YD_'{ԫnW	#W$r;ZE__Ƣ>A0nʰ2Zs#\u>{?Xv])<~~;OHZ~	!2g+/
ɒ@{dD l-o
`"6p).BɝU;%77q#*;67r,n"=ܰ	3*U8fWk1zp^e]WNm9eglH1obiBGeEH/_/5UT^8?sWN1ie~oI}C59E7hn9d>Ԃ^N>!b=}BmEQ]\!Dcet%sB&W81mR%tQ2nPxD''ϗXǇ;& o	ϺEVENTWtP	K}@/48	q+KNOT_SUPPROTED_FOR_ARKTS_NODE0S0NOT_SUPPROTED_FOR_ARKTS_NODE5NOT_SUPPROTED_FOR_ARKTS_NODEhNOT_SUPPROTED_FOR_ARKTS_NODEbNOT_SUPPROTED_FOR_ARKTS_NODEbNOT_SUPPROTED_FOR_ARKTS_NODENOT_SUPPROTED_FOR_ARKTS_NODENOT_SUPPROTED_FOR_ARKTS_NODE\
0Y6	c|x;|U}-N"<}+Nc h'{x#,'[,xRenderNodeUtils
RenderNode3
RenderNode5Gnd attribute setting.
 *
 * @since 20
 */

/**
 * @file native_render.hRenders20RENDER=RENDER_HL_#:Handle to ArkUI native render node object.
 *
 * @since 20q~	RenderNode* ArkUI_RenderNodek?Handle to ArkUI native render content modifier.
 *
 * @since 20q~	0RenderContentModifier* ArkUI_RenderContentModifikAHandle to the ArkUI native float render property.
 *
 * @since 20q~	"FloatProperty* ArkUI_FloatPropertykCHandle to the ArkUI native vector2 render property.
 *
 * @since 20q~	&Vector2Property* ArkUI_Vector2PropertykAHandle to the ArkUI native color render property.
 *
 * @since 20q~	"ColorProperty* ArkUI_ColorPropertykLHandle to the ArkUI native animatable float render property.
 *
 * @since 20q~	6FloatAnimatableProperty* ArkUI_FloatAnimatablePropertykNHandle to the ArkUI native animatable vector2 render property.
 *
 * @since 20q~	:Vector2AnimatableProperty* ArkUI_Vector2AnimatablePropertykLHandle to the ArkUI native animatable color render property.
 *
 * @since 20q~	6ColorAnimatableProperty* ArkUI_ColorAnimatablePropertyk'Rectangle shape option.
 *
 * @since 20q~	YRectShape ArkUI_RectShapeOption;

/**
 * @brief Node border style option.
 *
 * @since 20q~	
aBorderStyle ArkUI_NodeBorderStyleOption;

/**
 * @brief Node border width option.
 *
 * @since 20q~	
aBorderWidth ArkUI_NodeBorderWidthOption;

/**
 * @brief Node border color option.
 *
 * @since 20q~	
bBorderColor ArkUI_NodeBorderColorOption;

/**
 * @brief Node border radius option.
 *
 * @since 20q~	
^BorderRadius ArkUI_NodeBorderRadiusOption;

/**
 * @brief Circle shape option.
 *
 * @since 20q~	\CircleShape ArkUI_CircleShapeOption;

/**
 * @brief Round rect shape option.
 *
 * @since 20q~	^RoundRectShape ArkUI_RoundRectShapeOption;

/**
 * @brief Command path option.
 *
 * @since 20q~	#CommandPath ArkUI_CommandPathOptionA	&nder node mask option.
 *
 * @since 20q~	/RenderNodeMaskOption ArkUI_RenderNodeMaskOptionA	&nder node clip option.
 *
 * @since 20q~	]]=;

/**
 * @brief Handle to ArkUI render blur style option.
 *	v~	RenderBlurStyleOption ArkUI_RenderBlurStyleOption;

/**
 * @brief Create a BlurStyleOption handle. The initial blur radius valu2e is 0.0.
 *
 * @return The BlurStyleOption handle	ArkUI_RenderBlurStyleOption* OH_ArkUI_RenderNodeUtils_CreateBlurStyleOption();

/**
 * @brief Dispose a blur style option handl3e.
 *
 * @param option Handle option to be dispose.	Ivoid OH_ArkUI_RenderNodeUtils_DisposeBlurStyleOption(ArkUI_RenderBlurStylM	!=Set blur radius to the target blur style option.
 *
 * @paramO~aoBlurStyleOption} target blur style option.
 * @param radius the blur radius. the value should be in [0.0, +∞)		
Jc	RenderNodeUtils_SetBlurStyleOptionRadius(ArkUI_RenderBlurStyleOption* option, float radius);

/**
 * @brief set a background blur style option to the rendeT		Drender node.
 * @param option the handle of background blur style op}8	@RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		9RenderNodeUtils_SetBackgroundBlurOption(
    ArkUI_Render!RenderBlurStylM	!)reset the background blur option of rendeT		render 3	J	\0	 @RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		6RenderNodeUtils_ResetBackgroundBlurOption(ArkUI_RenderA	!/set a foreground blur style option to the rendeT		Drender node.
 * @param option the handle of foreground blur style op}8	@RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		9RenderNodeUtils_SetForegroundBlurOption(
    ArkUI_Render!RenderBlurStylM	!)reset the foreground blur option of rendeT		render 3	J	\0	 @RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		6RenderNodeUtils_ResetForegroundBlurOption(ArkUI_RenderA	!,set a content blur style option to the rendeT		Arender node.
 * @param option the handle of content blur style op}8	@RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		1RenderNodeUtils_SetContentBlurOption(ArkUI_Render!RenderBlurStylM	!&reset the content blur option of rendeT		render 3	J	\0	 @RENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameN/	(/{		v		3RenderNodeUtils_ResetContentBlurOption(ArkUI_RenderA	!#Adds a child render node to a paren		parent node.
 *     - Only customNode type parent nodes are supported.
 *     - Each customNode can mount only one ArkUI_RenderNodeHandle.
 *     - customNode cannot mount other ArkUI_NodeHandle.
 * @param child the child RenderNode to add.
 * @return Er8	/{		*	(T_CUSTOM_NODE} The node is not a customN/	(+CHILD_EXISTED} The node already has a child*	%RENDER_PARENT_EXISTEDP~	JRENDER_HAS_INVALID_FRAME_NODE} if the child is obtained from a FrameNode, and its
 *         corresponding FrameNode is no longer in the adopted stateP		t	enderNodeUtils_AddRender,	0RenderЁ	"Remove the specified child node	`		the child RenderNode to remov3	G	\0	 /{		*	+T_CUSTOM_NODE} The node is not a customNodet	%enderNodeUtils_RemoveRender,	0RenderЁ	"5Clear all child render nodes from the specified paren		G	Q	\0	 /{		*	+T_CUSTOM_NODE} The node is not a customNodet	%%enderNodeUtils_ClearRenderNodeChildreM	A	&Mark dirty the node handle. Invalidate!
	R, causing its lifecycle and triggering a
 *     rerender of its child render nodes1\	%3	@Q	C/{			'p		.	RenderNodeUtils_Invalidat,	)kCreate a new RenderNode handle.
 *
 * @return ArkUI_RenderNodeHandle pointer to receive the new node handlet	^ArkUI_RenderNodeHandle OH_ArkUI_RenderNodeUtils_CreateNode();

/**
 * @brief Dispose a RenderNL	#Handle to the render node to dispos3	G	\0	 /{		v	(RenderNodeUtils_DisposeNode(ArkUI_RenderA	!)Add a child node to the specified RenderNO	the parent RenderN }	the child RenderNode to add8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q*	"RENDER_HAS_INVALID_FRAME_NODE} if the child is obtained from a FrameNode, and its
 *         corresponding FrameNode is no longer in the adopted stateP		t	$enderNodeUtils_AddChild(ArkUI_Render!RenderЁ	"Insert a childsibling node in RenderNO	the parent RenderN }	athe child RenderNode to insert.
 * @param sibling the reference sibling node. If the sibling node1[<hildren,
 *     the child component will be added to the end8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q*	"RENDER_HAS_INVALID_FRAME_NODE} if the child is obtained from a FrameNode, and its
 *         corresponding FrameNode is no longer in the adopted stateP		t	1enderNodeUtils_InsertChildAfter(
    ArkUI_Render!$RenderNodeHandle child, ArkUI_Render׳	.Remove a child node from the specified RenderNO	the parent RenderN }	the child RenderNode to remov3	G	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	'enderNodeUtils_RemoveChild(ArkUI_Render!RenderЁ	"-Clear all children from the specified RenderNO	Handle to the target render 3	J	\0	 /{		*	IRENDER_IS_FROM_FRAME_NODE} if the RenderNode is obtained from a FrameNodeP		t	)enderNodeUtils_ClearChildren(ArkUI_RenderA	! 	a child node atposition	Dthe parent RenderNode.
 * @param index Zero-based index of the child	.RenderNodeHandle pointer to receive the child 3	J	\0	 /{		*	0RENDER_CHILD_NOT_EXIST} The child does not exist*	%IRENDER_IS_FROM_FRAME_NODE} if the RenderNode is obtained from a FrameNodeP		t	$enderNodeUtils_GetChild(ArkUI_Render y	 index, ArkUI_RenderNodeHandle*	 		(irst child node of the specified RenderNO	Handle to the target render	3RenderNodeHandle pointer to receive the first child8	/{		*	0RENDER_CHILD_NOT_EXIST} The child does not exist*	%ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	)enderNodeUtils_GetFirstChild(ArkUI_Render!RenderNodeHandle*	 	next sibling node	.\reference node.
 * @param sibling ArkUI_RenderNodeHandle pointer to receive the next sibling8	/{		*	0RENDER_CHILD_NOT_EXIST} The child does not existt	%*enderNodeUtils_GetNextSibling(ArkUI_Render!RenderNodeHandle* siblг	 	$	.Kreference node.
 * @param sibling ArkUI_RenderNodeHandle pointer to receive8	/{		*	0RENDER_CHILD_NOT_EXIST} The child does not existt	%.enderNodeUtils_GetPreviousSibling(ArkUI_Render!RenderNodeHandle* siblг	)	child render nodes of a parent render node.
 *     This function populates a list of child render nodes for the specified parenSt node.
 *     The caller is responsible for freeing the allocated child node array	"Handle to the target parent render	ren Pointer to an array of child render node handles.
 * @param count Pointer to store the number of child nodes retrieved.
 * 8	/{		*	CRENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNodeP		t	,enderNodeUtils_GetChildren(
    ArkUI_Render!)RenderNodeHandle** children, int32_t* couAC	#render child nodes count of a rendeT	mHandle to the target parent render node.
 * @param count Pointer to store the number of child nodes retrieved8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	,enderNodeUtils_GetChildrenCount(ArkUI_Render y	couAC	Setfor a RenderNO	Handle to the target render node
 * @param color Packed ARGB color value (32-bit unsigned integer)
 *     Color byte layout:
 *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
 *     - Bits 16-23: Red channel
 *     - Bits 8-105: Green channel
 *     - Bits 0-7: Blue channel	0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	MenderNodeUtils_SetBackgroundColor(ArkUI_RenderNodeHandle node, uint32_t colorqW	of a RenderNO	Handle to the target render node
 * @param color Integer pointer to store the retrieved RGBA color value.
 *     The retrieved color is a packed 32-bit value with the following byte layout:
 *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
 *     - Bits 16-23: Red channel
 *     - Bits 8-15: Green channel
 *     - Bits 0-7: Blue channel
 * @return Er	0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	NenderNodeUtils_GetBackgroundColor(ArkUI_RenderNodeHandle node, uint32_t* colorK	-	!o clip content to the node's framQ	dHandle to the target render node.
 * @param clipToFrame Integer (1 = clip to frame, 0 = do not clip)8	/{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetClipToFrame(ArkUI_Render y		 clipToFr_&	!clip-to-frame status of a RenderNO	gHandle to the target render node.
 * @param clipToFrame Integer pointer to receive clip status (1 or 0)8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetClipToFrame(ArkUI_Render y	
clipToFrama%	)#o clip content to the node's Bounds	jHandle to the target render node.
 * @param clipToBounds Clipping flag (1: clip to bounds, 0: do not clip)	0	 /{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_SetClipToBounds(ArkUI_Render y	 clipToBoundsqW	,whether to clip content to the node's Bounds	nHandle to the target render node.
 * @param clipToBounds Integer pointer (1 = clip to bounds, 0 = do not clip)8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_GetClipToBounds(ArkUI_Render y	clipToBoundsK	opacity value for a RenderNO	KHandle to the target render node.
 * @param opacity Opacity value (0.0-1.0)8	/{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	&enderNodeUtils_SetOpacity(ArkUI_Render	 opacityqW	opacity value of a RenderNO	^Handle to the target render node.
 * @param opacity Pointer to receive opacity value (0.0-1.0)8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	&enderNodeUtils_GetOpacity(ArkUI_Render	opacityK	dimensions for a RenderNO	Handle to the target render node.
 * @param width Width value in pixels.
 * @param height Height value in pixels.
 * @return Er8	/{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	#enderNodeUtils_SetSize(ArkUI_Render y	AX 	dimensions of a RenderNO	Handle to the target render node.
 * @param width Pointer to receive width value in pixels.
 * @param height Pointer to receive height value in pixels8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	#enderNodeUtils_GetSize(ArkUI_Render y	width, int32_t* heigh	)et the position coordinates for a RenderNO	Handle to the target render node.
 * @param x X-coordinate value in pixels.
 * @param y Y-coordinate value in pixels.
 * @retur8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	'enderNodeUtils_SetPosition(ArkUI_Render y	 x, int32_t yqW	!position coordinates of a RenderNO	Handle to the target render node.
 * @param x Pointer to receive X-coordinate value in pixels.
 * @param y Pointer to receive Y-coordinate value in pixels8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	'enderNodeUtils_GetPosition(ArkUI_Render y	x, int32_t* yK	,pivot point for transformations of a RenderNO	Handle to the target render node.
 * @param x The X-coordinate of pivot (normalized 0.0-1.0).
 * @param y The Y-coordinate of pivot (normalized 0.0-1.0)8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	$enderNodeUtils_SetPivot(ArkUI_Render	 x, float yqW	$pivot point coordinates of a RenderNO	Handle to the target render node.
 * @param x Pointer to receive the X-coordinate of pivot.
 * @param y Pointer to receive the Y-coordinate of pivot8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	$enderNodeUtils_GetPivot(ArkUI_Render	x, float* yK	scaling factors for a RenderNO	hHandle to the target render node.
 * @param x Horizontal scale factor.
 * @param y Vertical scale factor8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	$enderNodeUtils_SetScale(ArkUI_Render	 x, float yqW	caling factors of a RenderNO	Handle to the target render node.
 * @param x Pointer to receive horizontal scale factor.
 * @param y Pointer to receive vertical scale factor8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	$enderNodeUtils_GetScale(ArkUI_Render	x, float* yK	 translation offset for a RenderNO	Handle to the target render node.
 * @param x Horizontal translation in pixels.
 * @param y Vertical translation in pixels.
 * 8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetTranslation(ArkUI_Render	 x, float yqW	translation offset of a RenderNO	Handle to the target render node.
 * @param x Pointer to receive horizontal translation.
 * @param y Pointer to receive vertical transl|8	Ǘ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetTranslation(ArkUI_Render	x, float* yK	rotation angles for a RenderNO	Handle to the target render node.
 * @param x Rotation angle around X-axis in degrees.
 * @param y Rotation angle around Y-axis@ in degrees.
 * @param z Rotation angle around Z-axis in degrees8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	'enderNodeUtils_SetRotation(ArkUI_Render	 x, float y, float zqW	rotation angles of a RenderNO	BHandle to the target render node.
 * @param x Pointer to receive Xq- in degrees.
 * @param y Pointer to receive Yq- in degrees.
 * @param z Pointer to receive Zq in degrees8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	'enderNodeUtils_GetRotation(ArkUI_Render	x, float* y, float* zK	#transformation matrix for a RenderNO	Handle to the target render node.
 * @param matrix Pointer to a 4x4 transformation matrix (16 consecutive values).
 *     The transformation matrix should be provided as 16 consecutive floating-point values in row-major order:
 *       [m00, m01, m02, m03,
 *        m10, m11, m12, m13,
 *        m20, m21, m22, m23,
 *        m30, m31, m32, m33]
 *     Where the matrix represents:
 *       | m00 m01 m02 m03 |
 *       | m10 m11 m12 m13 |
 *       | m20 m21 m22 m23 |
 *       | m30 m31 m32 m33 |
 *     Ma3trix components:
 *       | m00  | Scaling value of1*"**1** for the identity matrix.     |
 *       | m01  | The second value, which is affected by the rotation or tilt of the x, y, and z axes.  |
 *       | m02  | The third value, which is affected by the rotation of the x, y, and z axes.  |
 *       | m03  | The fourth value, which is affected by perspective projection.              |
 *       | m10  | The fifth value, which is a^ffected by the rotation or tilt of the x, y, and z axes.  |
 *       | m11  | Scaling value ofa*	**1** for the identity matrix.     |
 *       | m12  | The seventh value, which is affected by the rotation of the x, y, and z axes.  |
 *       | m13  | The eighth value, which is affected by perspective projection.              |
 *       | m20  | The ninth value, which is affected by the rotation of the x, y, and z axes.  |
 *       | m21  | The tenth value, which is affectedT by the rotation of the x, y, and z axes. |
 *       | m22  | Scaling value of the z***1** for the identity matrix.     |
 *       | m23  | The 12th value, which is affected by perspective projection.            <  |
 *       | m30  | Translation value of the x-axis, in px-F**0** for the identity matrix.|
 *       | m31  | Translation value of-X**0** for the identity matrix.|
 *       | m32  | Translation value of the z-axis, in px-**0** for the identity matrix.|
 *       | m33  | Valid in homogeneous coordinates, presenting the perspective projection effect.   |	0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	(enderNodeUtils_SetTransform(ArkUI_Render	matri4			hadow color for a RenderNO	Handle to the target render node.
 * @param color Packed ARGB color value (32-bit unsigned integer)
 *     Color byte layout:
 *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
 *     - Bits 16-23: Red channel
 *     - Bits 8-115: Green channel
 *     - Bits 0-7: Blue channel	0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	IenderNodeUtils_SetShadowColor(ArkUI_RenderNodeHandle node, uint32_t colorqW	hadow color of a RenderNO	Handle to the target render node.
 * @param color Integer pointer to store the retrieved RGBA color value.
 *     The retrieved color is a packed 32-bit value with the following byte layout:
 *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
 *     - Bits 16-23: Red channel
 *     - Bits 8-15: Green channel
 *     - Bits 0-7: Blue channel
 * @return E	0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	JenderNodeUtils_GetShadowColor(ArkUI_RenderNodeHandle node, uint32_t* colorK	shadow offset for a RenderNO	Handle to the target render node.
 * @param x Horizontal offset value in pixels.
 * @param y Vertical offset value in pixels.
 8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_SetShadowOffset(ArkUI_Render y	 x, int32_t yqW	hadow offset of a RenderNO	Handle to the target render node.
 * @param x Pointer to receive horizontal offset value.
 * @param y Pointer to receive vertical offset valu3	G	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_GetShadowOffset(ArkUI_Render y	x, int32_t* yK	!shadow transparency for a RenderNO	NHandle to the target render node.
 * @param alpha Shadow alpha value (0.0-1.0)8	/{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetShadowAlpha(ArkUI_Render	 alphaqW	hadow transparency of a RenderNO	VHandle to the target render node.
 * @param alpha Pointer to receive shadow alpha valu3	G	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetShadowAlpha(ArkUI_Render	alphaK	shadow elevation for a RenderNO	DHandle to the target render node.
 * @param elevation Elevation valu3	G	\0	 /{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	.enderNodeUtils_SetShadowElevation(ArkUI_Render	
 elevationqW	hadow elevation of a RenderNO	WHandle to the target render node.
 * @param elevation Pointer to receive elevation valu3	G	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	.enderNodeUtils_GetShadowElevation(ArkUI_Render		elevationK	shadow radius of a RenderNO	>Handle to the target render node.
 * @param radius Radius valu3	G	\0	 /{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_SetShadowRadius(ArkUI_Render	 radiusqW	hadow radius of a RenderNO	QHandle to the target render node.
 * @param radius Pointer to receive radius valu3	G	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	+enderNodeUtils_GetShadowRadius(ArkUI_Render	diusK	border style for a RenderNO	QHandle to the target render node.
 * @param borderStyle Handle to border style op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetBorderStyle(ArkUI_Render!BorderStyleOption* borderSty+	 	border style of a RenderNO	ZHandle to the target render node.
 * @param borderStyle Pointer to receive border style op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetBorderStyle(ArkUI_Render!BorderStyleOption** borderSty+	#Set the border widths for a RenderNO	QHandle to the target render node.
 * @param borderWidth Handle to border width op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetBorderWidth(ArkUI_Render!BorderWidthOption* borderWidthqW	border widths of a RenderNO	ZHandle to the target render node.
 * @param borderWidth Pointer to receive border width op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetBorderWidth(ArkUI_Render!BorderWidthOption** borderWidthK	border colors for a RenderNO	QHandle to the target render node.
 * @param borderColor Handle to border color op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetBorderColor(ArkUI_Render!BorderColorOption* borderColorqW	border colors of a RenderNO	ZHandle to the target render node.
 * @param borderColor Pointer to receive border color op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetBorderColor(ArkUI_Render!BorderColorOption** borderColorK	qDfor a RenderNO	SHandle to the target render node.
 * @param borderRadius Handle to border radius op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	0enderNodeUtils_SetBorderRadius(
    ArkUI_Render! BorderRadiusOption* borderRadiusqW	qDof a RenderNO	\Handle to the target render node.
 * @param borderRadius Pointer to receive border radius op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	0enderNodeUtils_GetBorderRadius(
    ArkUI_Render!!BorderRadiusOption** borderRadius
	2pply a mask to a render node using the mask option	FHandle to the target render node.
 * @param mask Handle to the mask op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	#enderNodeUtils_SetMask(ArkUI_Render!RenderNodeMaskOption* mask
	2pply a clip to a render node using the clip option	FHandle to the target render node.
 * @param clip Handle to the clip op}8	Ɨ/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	#enderNodeUtils_SetClip(ArkUI_Render!]U* clip);

/**
 * @brief Mark whether to preferentially draw the node and its children	FHandle to the target render node.
 * @param markNodeGroup Boolean flag	/to preferentially draw the node and its childre8	×/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	,enderNodeUtils_SetMarkNodeGroup(ArkUI_RenderQ	 markNodeGroupK	bounds for a RenderNO	-Handle to the target render node.
 * @param x$0bounds's top-left corner (in pixels)
 * @param y'bounds's top-left corner (in pixels)
 * @param width Width of the bounds (in pixels).
 * @param height Height of the bounds (in pixels)8	/{			#OUT_OF_RANGE} Parameter out of rang*	&ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_SetBounds(
    ArkUI_Render y	 x, int32_t y8#X 	bounds for a RenderNO	Handle to the target render node.
 * @param x Pointer to receive x-coordinate value of the bounds's top-left corner (in pixels)
 * @param y Pointer to receive y-coordinate value of the bounds's top-left corner (in pixels)
 * @param width Pointer to receiTve width value in pixels.
 * @param height Pointer to receive height value in pixels8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	*enderNodeUtils_GetBounds(
    ArkUI_Render y	-x, int32_t* y, int32_t* width, int32_t* heigh	 et the draw region for a RenderNO	-Handle to the target render node.
 * @param x$1bounds's top-left corner (in pixels).
 * @param y'bounds's top-left corner (in pixels).
 * @param w Width of the bounds (in pixels).
 * @param h Height of the bounds (in pixels)8	/{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	)enderNodeUtils_SetDrawRegion(ArkUI_Render	 x, float y, float w, float h
	&ttach a content modifier for the rendeT	4Handle to the target render node.
 * @param modifierpa+ContentModifierHandle} The content modifier.E	M	\0	 /{		*	ORENDER_IS_FROM_FRAME_NODE} if the node is obtained from a FrameNode.
 *        Q		t	6enderNodeUtils_AttachContentModifier(
    ArkUI_Render!eRenderContentModifierHandle modifier);

/**
 * @brief Create a content modifier handle.
 *
 * @returnpa0ContentModifierHandle} A content modifier handlet	ArkUI_RenderContentModifierHandle OH_ArkUI_RenderNodeUtils_CreateContentModifier();

/**
 * @brief Dispose the content modifier handle.
 *
 * @param modifierpa5ContentModifierHandle} Handle to the content modifiert	_void OH_ArkUI_RenderNodeUtils_DisposeContentModifier(ArkUI_RenderContentModifierHandle modifier
	Lttach a float property to the target content modifier.
 *
 * @param modifierpaContentModifierHandle} Set float property to the target content modifier.
 * @param property {@link ArkUI_FloatPropertyHandle} Handle to the float property8	/{		v	RenderNodeUtils_AttachFloatProperty(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_FloatPropertyHandle property);

/**

	Nttach a vector2 property to the target content modifier.
 *
 * @param modifierpaContentModifierHandle} Set vector2 property to the target content modifier.
 * @param property {@link ArkUI_Vector2PropertyHand"le} Handle to the vector2 property8	/{		v	RenderNodeUtils_AttachVector2Property(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_Vector2PropertyHandle property);


	Lttach a color property to the target content modifier.
 *
 * @param modifierpa\ContentModifierHandle} Set color property to the target content modifier.
 * @param propertyQ,PropertyHandle} Handle to the color property8	/{		v	RenderNodeUtils_AttachColorProperty(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_ColorPropertyHandle property);

/**

	Wttach a float animatable property to the target content modifier.
 *
 * @param modifierpaContentModifierHandle} Set float animatable property to the target content
 *     modifier.
 * @param property {@link ArkUI_FloCatAnimatablePropertyHandle} Handle to the float animatable property8	/{		v	RenderNodeUtils_AttachFloatAnimatableProperty(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_FloatAnimatablePropertyHandle property
	Yttach a vector2 animatable property to the target content modifier.
 *
 * @param modifierpaContentModifierHandle} Set vector2 animatable property to the target content
 *     modifier.
 * @param property {@link ArkUI_VIector2AnimatablePropertyHandle} Handle to the vector2 animatable property8	/{		v	RenderNodeUtils_AttachVector2AnimatableProperty(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_Vector2AnimatablePropertyHandle property
	Lttach a color property to the target content modifier.
 *
 * @param modifierpanContentModifierHandle} Set color animatable property to the target content
 *     modifier.
 * @param propertyQAAnimatablePropertyHandle} Handle to the color animatable property8	/{		v	RenderNodeUtils_AttachColorAnimatableProperty(
    ArkUI_RenderContentModifierHandle modifier, ArkUI_ColorAnimatablePropertyHandle property);

/**
 * @brief Create a float property handle.
 *
 * @param value The property value.
 * @return Handle to the float propertyt	LArkUI_FloatPropertyHandle OH_ArkUI_RenderNodeUtils_CreateFloatProperty(float[Set value of the float property.
 *
 * @param property {@link ArkUI_FloatPropertyHandle} The float property handle.
 * @param value The property valu3	G	\0	 /{		v	ORenderNodeUtils_SetFloatPropertyValue(ArkUI_FloatPropertyHandle property, float[ 	value of the float property.
 *
 * @param property {@link ArkUI_FloatPropertyHandle} The float property handle.
 * @param value% The pointer to receive property valu3	G	\0	 /{		v	ORenderNodeUtils_GetFloatPropertyValue(ArkUI_FloatPropertyHandle property, float[Dispose the float property handle.
 *
 * @param property {@link ArkUI_FloatPropertyHandle} Handle to the float property.
 * @sit	void OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(ArkUI_FloatPropertyHandle property);

/**
 * @brief Create a vector2 property handle.
 *
 * @param x X-coordinate value of the property.
 * @param y Y-coordinate value of the property.
 * @return Handle to the vector2 propertyt	[ArkUI_Vector2PropertyHandle OH_ArkUI_RenderNodeUtils_CreateVector2Property(float x, float yK	value of the vector2 property.
 *
 * @param property {@link ArkUI_Vector2PropertyHandle} The vector2 property handle.
 * @paramU x X-coordinate value of the property.
 * @param y Y-coordinate value of the property8	/{		v	^RenderNodeUtils_SetVector2PropertyValue(ArkUI_Vector2PropertyHandle property, float x, float yqW	value of the vector2 property.
 *
 * @param property {@link ArkUI_Vector2PropertyHandle} The Vector2 property handle.
 * @param x The pointer to receive x-coordinate value of the property.
 * @param y The pointer to receive y-coordinate value of the property8	/{		v	RenderNodeUtils_GetVector2PropertyValue(ArkUI_Vector2PropertyHandle property, float* x, float* y);

/**
 * @brief Dispose the vector2 property handle.
 *
 * @param property {@link ArkUI_Vector2PropertyHandle} Handle to the vector2 property.
 * @since 20
t	void OH_ArkUI_RenderNodeUtils_DisposeVector2Property(ArkUI_Vector2PropertyHandle property);

/**
 * @brief Create a color propeZrty handle.
 *
 * @param value The property value.
 * @return Handle to the color propertyt	OArkUI_ColorPropertyHandle OH_ArkUI_RenderNodeUtils_CreateColorProperty(uint32_t[6Set value of the color property.
 *
 * @param propertyQLPropertyHandle} The color property handle.
 * @param value The property valu3	G	\0	 /{		v	RRenderNodeUtils_SetColorPropertyValue(ArkUI_ColorPropertyHandle property, uint32_t[ 	2value of the color property.
 *
 * @param propertyQ_PropertyHandle} The color property handle.
 * @param value The pointer to receive property valu3	G	\0	 /{		v	RRenderNodeUtils_GetColorPropertyValue(ArkUI_ColorPropertyHandle property, uint32_t[8Dispose the color property handle.
 *
 * @param propertyQ,PropertyHandle} Handle to the color propertyt	void OH_ArkUI_RenderNodeUtils_DisposeColorProperty(ArkUI_ColorPropertyHandle property);

/**
 * @brief Create a float animatablle property handle.
 *
 * @param value The property value.
 * @return Handle to the float animatable propertyt	`ArkUI_FloatAnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(float[Set value of the float animatable property.
 *
 * @param property {@link ArkUI_FloatAnimatablePropertyHandle} The float animata6ble property handle.
 * @param value The property valu3	G	\0	 /{		v	hRenderNodeUtils_SetFloatAnimatablePropertyValue(
    ArkUI_FloatAnimatablePropertyHandle property, float[ 	value of the float animatable property.
 *
 * @param property {@link ArkUI_FloatAnimatablePropertyHandle} The float animatable Eproperty handle.
 * @param value The pointer to receive property valu3	G	\0	 /{		v	hRenderNodeUtils_GetFloatAnimatablePropertyValue(
    ArkUI_FloatAnimatablePropertyHandle property, float[Dispose the float animatable property handle.
 *
 * @param property {@link ArkUI_FloatAnimatablePropertyHandle} Handle to the float animatable propertyt	void OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(ArkUI_FloatAnimatablePropertyHandle property);

/**
 * @brief Create a vector2 animatable property handle.
 *
 * @param x X-coordinate value of the property.
 * @param y Y-coordinate value of tAhe property.
 * @return Handle to the vector2 animatable propertyt	ArkUI_Vector2AnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(float x, float y);

/**
 * @brieK	value of the vector2 animatable property.
 *
 * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} The vector2 animatable property handle.
 * @param x X-coordinate value of the property.
 * @param y Y-coordinate value of the property.
 * @retu8	/{		v	RenderNodeUtils_SetVector2AnimatablePropertyValue(
    ArkUI_Vector2AnimatablePropertyHandle property, float x, float y);

/**
yW	value of the vector2 animatable property.
 *
 * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} The Vector2 animatable property handle.
 * @param x The pointer to receive x-coordinate value of the property.
 * @param y The pointer to receiv$e y-coordinate value of the property8	/{		v	RenderNodeUtils_GetVector2AnimatablePropertyValue(
    ArkUI_Vector2AnimatablePropertyHandle property, float* x, float* y);

/**
 * @brief Dispose the vector2 animatable property handle.
 *
 * @param property {@link ArkUI_Vector2AnimatablePropertyHandle}* Handle to the vector2 animatable propertyt	void OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(ArkUI_Vector2AnimatablePropertyHandle property);

/**
 * @brief Create a color animatable property handle.
 *
 * @param value The property value.
 * @return Handle to the color animatable propertyt	cArkUI_ColorAnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(uint32_t[ASet value of the color animatable property.
 *
 * @param propertyQaAnimatablePropertyHandle} The color animatable property handle.
 * @param value The property valu3	G	\0	 /{		v	kRenderNodeUtils_SetColorAnimatablePropertyValue(
    ArkUI_ColorAnimatablePropertyHandle property, uint32_t[ 	=value of the color animatable property.
 *
 * @param propertyQAnimatablePropertyHandle} The color animatable property handle.
 * @param value The pointer to receive property value.
 * @retu3	<	\0	 /{		v	RenderNodeUtils_GetColorAnimatablePropertyValue(
    ArkUI_ColorAnimatablePropertyHandle property, uint32_t* value);

/**
 * @b[CDispose the color animatable property handle.
 *
 * @param propertyQAAnimatablePropertyHandle} Handle to the color animatable propertyt	ivoid OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(ArkUI_ColorAnimatablePropertyHandle propertyK	`onDraw function of the content modifier.
 *
 * @param modifier The target content modifier handlr	m	to be passed to the callback/	The drawlt9n	8	/{		v	hRenderNodeUtils_SetContentModifierOnDraw(ArkUI_RenderContentModifierHandle modifier, void* userData,
   	 DrawContext* context, void* user/	JCreate a RectShape option.
 *
 * @return A pointer to the RectShape optiont	ArkUI_RectShapeOption* OH_ArkUI_RenderNodeUtils_CreateRectShapeOption();

/**
 * @brief Dispose the RectShape option.
 *
 * @pa*ram option Pointer to the RectShape optiont	Cvoid OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(ArkUI_RectShapM	!:
ge value of RectShape option.
 *
 * @param option Pointer to the RectShape option.
 * @param edgeValue The edge value of the ReRctShape.
 * @param direction {@Link ArkUI_EdgeDirection} The direction of the edget	void OH_ArkUI_RenderNodeUtils_SetRectShapeOptionEdgeValue(
    ArkUI_RectShapeOption* option, float edgeValue, ArkUI_EdgeDirection direction);

/**
 * @brief Create a NodeBorderStyle option.
 *
 * @return A pointer to the NodeBorderStyle option.
 * @sinct		ArkUI_NodeBorderStyleOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption();

/**
 * @brief Dispose the NodeBorderStyleB option.
 *
 * @param option Pointer to the NodeBorderStyle optiont	Ovoid OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(ArkUI_NodeBorderStylM	!:
ge value of NodeBorderStyle option.
 *
 * @param option Pointer to the NodeBorderStyle option.
 * @param edgeStyle {@Link ArkUIM The edge border style value of the NodeBorderStyle option.
 * @param direction {@Link ArkUI_EdgeDirection} The direction of the edget	void OH_ArkUI_RenderNodeUtils_SetNodeBorderStyleOptionEdgeStyle(
    ArkUI_NodeBorderStyleOption* option, ArkUI_BorderStyle edgeStyle, ArkUI_EdgeDirection direction);

/**
 * @brief Create a NodeBorderWidth option.
 *
 * @return A pointer to the NodeBorderWidth optiont	ArkUI_NodeBorderWidthOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption();

/**
 * @brief Dispose the NodeBorderWidthB option.
 *
 * @param option Pointer to the NodeBorderWidth optiont	Pvoid OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(ArkUI_NodeBorderWidthM	 :
ge value of NodeBorderWidth option.
 *
 * @param option Pointer to the NodeBorderWidth option.
 * @param edgeWidth The edge width value of the NodeBorderWidth option.
 * @param direction {@Link ArkUI_EdgeDirection} The direction of the edge.
 * @since 20t	void OH_ArkUI_RenderNodeUtils_SetNodeBorderWidthOptionEdgeWidth(
    ArkUI_NodeBorderWidthOption* option, float edgeWidth, ArkUI_EdgeDirection direction);

/**
 * @brief Create a NodeBorderColor option.
 *
 * @return A pointer to the NodeBorderColor optiont	ArkUI_NodeBorderColorOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption();

/**
 * @brief Dispose the NodeBorderColorB option.
 *
 * @param option Pointer to the NodeBorderColor optiont	Pvoid OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(ArkUI_NodeBorderColorM	 :
ge value of NodeBorderColor option.
 *
 * @param option Pointer to the NodeBorderColor option.
 * @param edgeColor The edge color value of the NodeBorderColor option.
 * @param direction {@Link ArkUI_EdgeDirection} The direction of the edge.
 * @since 20t	void OH_ArkUI_RenderNodeUtils_SetNodeBorderColorOptionEdgeColor(
    ArkUI_NodeBorderColorOption* option, uint32_t edgeColor, ArkUI_EdgeDirection direction);

/**
 * @brief Create a NodeBorderRadius option.
 *
 * @return A pointer to the NodeBorderRadius optiont	ArkUI_NodeBorderRadiusOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption();

/**
 * @brief Dispose the NodeBorderRadFius option.
 *
 * @param option Pointer to the NodeBorderRadius optiont	Rvoid OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(ArkUI_NodeBorderRadiusM	 [l	orner value of NodeBorderRadius option.
 *
 * @param option Pointer to the NodeBorderRadius option.
 * @param cornerRadius The corner radius value of the NodeBorderRadius option.
 * @param direction {@Link ArkUI_CornerDirection} The direction of the cornert	void OH_ArkUI_RenderNodeUtils_SetNodeBorderRadiusOptionCornerRadius(
    ArkUI_NodeBorderRadiusOption* option, uint32_t cornerRadius, ArkUI_CornerDirection direction);

/**
 * @brief Create a CircleShape option.
 *
 * @return A pointer to the CircleShape optiont	ArkUI_CircleShapeOption* OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption();

/**
 * @brief Dispose the CircleShape option.
 *
2 * @param option Pointer to the CircleShape optiont	Gvoid OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(ArkUI_CircleShapM	![l	enterX value of CircleShape option.
 *
 * @param option Pointer to the CircleShape option.
 * @param centerX The centerX value.t	hvoid OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterX(ArkUI_CircleShapeOption* option, float centerXK	enterY value of CircleShape option.
 *
 * @param option Pointer to the CircleShape option.
 * @param centerY The centerY value.t	hvoid OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterY(ArkUI_CircleShapeOption* option, float centerYK	radius value of CircleShape option.
 *
 * @param option Pointer to the CircleShape option.
 * @param radius The radius value.
 t	void OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionRadius(ArkUI_CircleShapeOption* option, float radius);

/**
 * @brief Create Ma RoundRectShape option.
 *
 * @return A pointer to the RoundRectShape optiont	ArkUI_RoundRectShapeOption* OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption();

/**
 * @brief Dispose the RoundRectShape op>tion.
 *
 * @param option Pointer to the RoundRectShape optiont	Mvoid OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(ArkUI_RoundRectShapM	!:
ge value of RoundRectShape option.
 *
 * @param option Pointer to the RoundRectShape option.
 * @param edgeValue The edge valuea of the RoundRectShape.
 * @param direction {@Link ArkUI_EdgeDirection} The direction of the edget	void OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionEdgeValue(
    ArkUI_RoundRectShapeOption* option, float edgeValue, ArkUI_EdgeDirection directionK	koordinate value of the target corner.
 *
 * @param option Pointer to the RoundRectShape option.
 * @param x$ corner (in pixels).
 * @param y' acorner (in pixels).
 * @param direction {@Link ArkUI_CornerDirection} The direction of the cornert	void OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionCornerXY(
    ArkUI_RoundRectShapeOption* option, float x, float y, ArkUI_CornerDirection direction);

/**
 * @brief Create a CommandPath option.
 *
 * @return A pointer to the CommandPath option.
 * @t	ArkUI_CommandPathOption* OH_ArkUI_RenderNodeUtils_CreateCommandPathOption();

/**
 * @brief Dispose the CommandPath option.
 *
2 * @param option Pointer to the CommandPath optiont	Hvoid OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(ArkUI_CommandPathM	 [l	ommands value of CommandPath option.
 *
 * @param option Pointer to the CommandPath option.
 * @param commands The commands valuet	void OH_ArkUI_RenderNodeUtils_SetCommandPathOptionCommands(ArkUI_CommandPathOption* option, char* commands);

/**
 * @brief Create a mask option from a RectShape option.
 *
 * @param shape {@link ArkUI_RectShapeOption} Pointer to the RectShape option.
 */ @return A pointer to the RenderNodeMask optiont	ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(
    ArkUI_RectShapeOption* shape)37	reate a mask option from a RoundRectShape option.
 *
 * @param shape {@link ArkUI_RoundRectShapeOption} Pointer to the RoundRec@tShape option.
 * @return A pointer to the RenderNodeMask optiont	ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRoundRectShape(
    ArkUI_RoundRectShapeOption* shap17	reate a mask option from a CircleShape option.
 *
 * @param shape {@link ArkUI_CircleShapeOption} Pointer to the CircleShape op7tion.
 * @return A pointer to the RenderNodeMask optiont	ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCircleShape(
    ArkUI_CircleShapeOption* shap17	reate a mask option from a OvalShape option.
 *
 * @param shape {@link ArkUI_RectShapeOption} Pointer to the OvalShape option.
1 * @return A pointer to the RenderNodeMask optiont	ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromOvalShape(
    ArkUI_RectShapeOption* shape)37	reate a mask option from a CommandPath option.
 *
 * @param path {@link ArkUI_CommandPathOption} Pointer to the CommandPath opt6ion.
 * @return A pointer to the RenderNodeMask optiont	ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCommandPath(
    ArkUI_CommandPathOption* paoth);

/**
 * @brief Dispose the RenderNodeMask option.
 *
 * @param option Pointer to the RenderNodeMask optiont	Nvoid OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(ArkUI_RenderNodeMaskM	 Set the fill color of RenderNodeMask option.
 *
 * @param mask Pointer to the RenderNodeMask option.
 * @param fillColor The fill color of the maskt	void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionFillColor(ArkUI_RenderNodeMaskOption* mask, uint32_t fillColor);

/**
 * @K	stroke color of RenderNodeMask option.
 *
 * @param mask Pointer to the RenderNodeMask option.
 * @param strokeColor The stroke color of the maskt	void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeColor(
    ArkUI_RenderNodeMaskOption* mask, uint32_t strokeColor);
K	stroke width of RenderNodeMask option.
 *
 * @param mask Pointer to the RenderNodeMask option.
 * @param strokeWidth The strokehmaskt	void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeWidth(ArkUI_RenderNodeMaskOption* mask, float strokeWidth);

/**
 * @brief Create a clip option from a RectShape option.
 *
 * @param shape {@link ArkUI_RectShapeOption} Pointer to the RectShape 9option.
 * @return A pointer to the RenderNodeClip optiont	n]c* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRectShape(
    ArkUI_RectShapeOption* shap17	reate a clip option from a RoundRectShape option.
 *
 * @param shape {@link ArkUI_RoundRectShapeOption} Pointer to the RoundRec@tShape option.
 * @return A pointer to the RenderNodeClip optiont	n]m* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRoundRectShape(
    ArkUI_RoundRectShapeOption* shap17	reate a clip option from a CircleShape option.
 *
 * @param shape {@link ArkUI_CircleShapeOption} Pointer to the CircleShape op7tion.
 * @return A pointer to the RenderNodeClip optiont	n]g* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCircleShape(
    ArkUI_CircleShapeOption* shap17	reate a clip option from a OvalShape option.
 *
 * @param shape {@link ArkUI_RectShapeOption} Pointer to the OvalShape option.
1 * @return A pointer to the RenderNodeClip optiont	n]c* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromOvalShape(
    ArkUI_RectShapeOption* shap17	reate a clip option from a CommandPath option.
 *
 * @param path {@link ArkUI_CommandPathOption} Pointer to the CommandPath opt6ion.
 * @return A pointer to the RenderNodeClip optiont	n]* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCommandPath(
    ArkUI_CommandPathOption* path);

/**
 * @brief DisposUe the RenderNodeClip option.
 *
 * @param option Pointer to the RenderNodeClip optiont	:void OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(n]M	"@RenderNode of the target node. The target node should be adopted	8:renderNode ArkUI_RenderNodeHandle* pointer, the RenderNode	30	0	 /{	,P	*	0RENDER_NOT_ADOPTED_NODE} The node is not adoptedA	$RenderNodeUtils_GetRender,	0RenderNodeHandle* renderN!	l	ounding rectangle for a rounded rectangle shape option
 * This function defines the geometric frame of a rounded rectangle by specifying its position and dimensions.
 *
 * @param option Pointer to the rounded rectangle shape option to be configured
 * @param x$Nectangle's top-left corner, determining the left boundary position
 * @param y'ectangle's top-left corner, determining the top boundary position
 * @param width Width of the rectangle, representing the horizontal extent from the X-coordinate,
 *     which determines the right boundary position (right = x + width)
 * @param height Height of the rectangle, representing the vertical extent from the Y-coordinate,
 *     which determines the bottom boundary position (bottom = y + height)	void OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionValue(
    ArkUI_RoundRectShapeOption* option, float x, float y, float width, float heigh	l	ounding rectangle for a rectangle shape option
 * This function defines the geometric frame of a rectangle by specifying its pomsition and dimensions.
 *
 * @param option Pointer to the rectangle shape option to be configured
 * @param x$Nectangle's top-left corner, determining the left boundary position
 * @param y'ectangle's top-left corner, determining the top boundary position
 * @param width Width of the rectangle, representing the horizontal extent from the X-coordinate,
 *     which determines the right boundary position (right = x + width)
 * @param height Height of the rectangle, representing the vertical extent from the Y-coordinate,
 *     which determines the bottom boundary position (bottom = y + height)	void OH_ArkUI_RenderNodeUtils_SetRectShapeOptionValue(
    ArkUI_RectShapeOption* option, float x, float y, float width, float heighXInsert a child render node at	the paren		parent node. Only customNode type parent nodes are supported.
 * @param child the child RenderNode to insert.
 * @param position the index at which to insert the child node.
 *         The position must be within the range [0, currentChildCount].
 *     M    If the position equals currentChildCount, it is equivalent to an add oper|8	%	ԗ		!)CUSTOM_NODE} The node is not a customNode~	*RENDER_PARENT_EXISTEDP~	.	!RENDER_HAS_INVALID_FRAME_NODE} if the child is obtained from a FrameNode,
 *     and its corresponding FrameNode is no longer in the adopted state˽	:#RenderNodeUtils_InsertRenderNodeAt(Q`=	Render!&	 	3number of child render nodes of the specified paren	Gthe parent node to query.
 * @param count the count of the child render	2(RenderNodeUtils_GetRenderNodeChildrenCoua	 r	* couAC	 	child render node atfrom the paren	paren=5	ex location. The position must be in the range [0, childCount-1].
 * @param child the output parameter that will receive the child render node handle. CV8		 RenderNodeUtils_GetRenderNodeAt(Q`=	0y		!, ArkUI_RenderNodeHandle* child);	6RENDER_H
/** @} */
d7D3x   4-2026Z;sNativeModuleUI3UI component5ttribute setting, and event listening.
 *
 * @since 12
 */

/**
 * @file native_type.h
 *
 * @brief Defines the common types for the native modulef12VTYPE_H
#define ARKUI_NATIVE_TYPE_H

#include <stdint.h>

#include "drawable_descriptor;Defines the ArkUI native component object.
 *
 * @since 12
 */
struct ArkUI_Node;

/**
 * @brief Defines the pointer type of th$e ArkUI node content
 *
 * @since 12YContent* ArkUI_NodeContentHandle;

/**
 * @brief Defines the custom dialog box controller/.
 *
 * @since 12
 */
struct ArkUI_NativeDialogNs the size constraints of a component during component layout.
 *
 * @since 12LayoutConstraint ArkUI_LayoutConstraint;

/**
 * @brief Defines the structure of the component drawing context.
 *
 * @since 12ADrawContext ArkUI_DrawContext;

/**
 * @brief Defines the pointerQmponent object.
 *
 * @since 12* ArkUI_`7Defines the pointer to the custom dialog box controller.
 *
 * @since 12kNativeDialog* ArkUI_NativeDialogHandle;

/**
 * @brief Defines information about gesture collection interce\
GestureCollectInterceptInfo ArkUI_GestureCollectInterceptInfo;

/**
 * @brief Defines the return value structure for the <b>onGUetIrregularSizeByIndex</b> callback
 * in <b>Grid</b> layout options.
 *
 * @since 22{
    /** Number of rows occupied by the <b>GridItem</b> component. */
    uint32_t rowSpan;
    /** Number of columns occupied by the <b>GridItem</b> component. */
    uint32_t columnSpan;
} ArkUI_GridItemSize;

/**
 * @brief Defines the return value st_ructure for the <b>onGetRectByIndex</b> callback in <b>Grid</b> layout options.
 *
 * @since 22{
    /** Starting row position of the <b>GridItem</b> component. */
    uint32_t rowStart;
    /** Starting column position of the <b>GridItem</b> component. */
    uint32_t columnStart;
    /** Number of rows occupied by the <b>GridItem</b> component. */
    uint32_t rowSpan;
    /** Number of columns occupied by the <b>GridItem</b> component. */
    uint32_t columnSpan;
} ArkUI_GridItemRect;

/**
 * @brief Enumerates the selected indicator type of picker.
 *
 * @since 23
 */
typedef enum {
    /** background. */
    ARKUI_PICKER_INDICATOR_BACKGROUND = 0,
    /** divider. */
    ARKUI_PICKER_INDICATOR_DIVIDER = 1,
} ArkUI_PicZkerIndicatorType;

/**
 * @brief Style parameters of background indicator.
 *
 * @since 23{
    /**  background color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t backgroundColor;
    /** radius of the top left corner. */
    float topLeftRadius;
    /** radius of the top right corner */
    float topRightRadius;
    /** radius of the bottom left corner */
    float bottomLeftRadius;
    /** radius of the bottom right corner. */
    float bottomRightRadius;
} ArkUI_PickerIndicatorBackground;

/**
 * @brief Style parameters of divider indicator.
 *
 * @since 23
 */
typedef str{
    /** stroke width */
    float strokeWidth;
    /** divider color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t dividerColor;
    /** the distance between the divider and the beginning of the side of the picker (unit: vp). */
    float startMargin;
    /** the distance between the divider and the end of the side of the picker (unit: vp). */
    float endMargi`n;
} ArkUI_PickerIndicatorDivider;

/**
 * @brief Definition of indicator style.
 *
 * @since 23PickerIndicatorStyle ArkUI_PickerIndicatorStyle;

/**
 * @brief Defines the <b>Grid</b> layout options.
 *
 * @since 22
 */
typbGridLayoutOptions ArkUI_GridLayoutOptions;

/**
 * @brief Defines the water flow section configura12WaterFlowSectionOption ArkUI_WaterFlowSectionOption;

/**
 * @brief Define the configuration information of the Item within the2 ListitemSwipeActionOption method.
 *
 * @since 12ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem;

/**
 * @brief Define the configuration information for the ListitemSwip%eActionOption method.
 *
 * @since 12ListItemSwipeActionOption ArkUI_ListItemSwipeActionOption;

/**
 * @brief Defines the ArkUI native context object.
 *
 * @since 12
 */
struct ArkUI_Context;

/**
  * @brief Defines the pointer to the context instance object pointer definition of ArkUI on.
  *
  * @since 12
 ntext* ArkUI_ContextHandle;

/**
 * @brief Defines the navigation indicator style for the swiper.
 *
 * @since 12
 */
typedef sSwiperIndicator ArkUI_SwiperIndicator;

/**
 * @brief Defines the digital indicator style for the swiper.
 *
 * @since 19
 */
tSwiperDigitIndicator ArkUI_SwiperDigitIndicator;

/**
 * @brief Defines the arrow style for the swiper.
 *
 * @since 19
 */
typSwiperArrowStyle ArkUI_SwiperArrowStyle;

/**
* @brief Define the data objects of styled string supported by text components.
*
* @since 14
StyledString_Descriptor ArkUI_StyledString_Descriptor;

/**
  * @brief specifies the alignment rules for subcomponents set in r'elative containers.
  *
  * @since 12
 AlignmentRuleOption ArkUI_AlignmentRuleOption;

/**
  * @brief guideLine parameters, used to define the id, direction and posit)ion of the guideline.
  *
  * @since 12
 GuidelineOption ArkUI_GuidelineOption;

/**
  * @brief barrier parameter, used to define the id,
  * direction and components oHf the barrier that it depends on when generating it.
  *
  * @since 12
 BarrierOption ArkUI_BarrierOption;

/**
 * @brief Define the ChildrenMainSize class information for a List.
 *
 * @since 12
*/
iListChildrenMainSize ArkUI_ListChildrenMainSize;

/**
 * @brief Defines the image frame.
 *
 * @since 12
ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfo;

/**
 * @brief Defines the accessibility state for the component.
 *
 * @since 12AccessibilityState ArkUI_AccessibilityState;

/**
 * @brief Defines the accessibility value for the component.
 *
 * @since 12
AccessibilityValue ArkUI_AccessibilityValue;

/**
 * @brief Define the information of the Custom Property class for custom properties.
 *
 * @since 14ustomProperty ArkUI_CustomProperty;

/**
 * @brief Define the information of the HostWindowInfo class for window properties.
 *
 * @since 15ZHostWindowInfo ArkUI_HostWindowInfo;

/**
 * @brief Define ActiveChildenInfo class informa14+ActiveChildrenInfo ArkUI_ActiveChildrenInfoh0linear progress indicator style.
 *
 * @since 15-ProgressLinearStyleOption ArkUI_ProgressLinea
The cross-languag
15[rossLanguageOption ArkUI_CrossLanguageOption;

/**
 * @brief Declares the Ability base want&mbilityBase_Want AbilityBase_Want;

/**
 * @brief Define the EmbeddedComponentOption for the EmbeddedComponent+EmbeddedComponentOption ArkUI_EmbeddedComponentOption;

/**
 * @brief Define the Edges describing the position of a component b:y distances to the container's four edges.
 *
 * @since 21PositionEdges ArkUI_PositionEdges;

/**
 * @brief Defines the PixelRound policy of a component's four edges.
 *
 * @since 21
 *aPixelRoundPolicy ArkUI_PixelRoundPolicy;

/**
 * @brief Defines the textField's counter configura2eShowCounterConfig ArkUI_ShowCounterConfig;

/**
 * @brief Defines the matrix4 object.
 *
 * @since 24_Matrix4 ArkUI_Matrix4;

/**
 * @brief Defines the text content base controller.
 *
 * @since 23TextContentBaseController ArkUI_TextContentBaseController;

/**
 * @brief Defines the selected drag preview style configuration.
 * @since 23SelectedDragPreviewStyle ArkUI_SelectedDragPreviewStyle;

/**
 * @brief Defines the event callback type.
 *
 * @since 12
 */
ty{
    /** Custom type, data of a user-defined type that is passed as a parameter during callbacks. */
    void* userData;
    /** Event callback. */q,void* userData);
} ArkUI_ContextCallback;
/*the number types of ArkUI in the native code.
 *
 * @since 12
 */
typedef union {
    /** Floating-point type, used to store a floating-point value. */
    float f32;
    /** Signed integer, used to store a signed integer value. */
    int32_t i32;
    /** Unsigned integer, used to store an unsigned integer value. */
    uint32_t u32;
} ArkUI_NumberValue;

/**
 * @brief Enumerates the alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** Top start. */
    ARKUI_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_ALIGNMENT_BOTTOM_END,
} ArkUI_Alignment;

/**
 * @brief Enumerates the image repeat patterns.
 *
 * @since 12
 */
typedef enum {
    /** The image is not repeatedly drawn. */
    ARKUI_IMAGE_REPEAT_NONE = 0,
    /** The image is repeatedly drawn only along the x-axis. */
    ARKUI_IMAGE_REPEAT_X,
    /** The image is repeatedly drawn only along the y-axis. */
    ARKUI_IMAGE_REPEAT_Y,
    /** The image is repeatedly drawn along both axes. */
    ARKUI_IMAGE_REPEAT_XY,
} ArkUI_ImageRepeat;

/**
 * @brief Enumerates the font styles.
 *
 * @since 12
 */
typedef enum {
    /** Standard font style. */
    ARKUI_FONT_STYLE_NORMAL = 0,
    /** Italic font style. */
    ARKUI_FONT_STYLE_ITALIC
} ArkUI_FontStyle;

/**
 * @brief Enumerates the font weights.
 *
 * @since 12
 */
typedef enum {
    /** 100 */
    ARKUI_FONT_WEIGHT_W100 = 0,
    /** 200 */
    ARKUI_FONT_WEIGHT_W200,
    /** 300 */
    ARKUI_FONT_WEIGHT_W300,
    /** 400 */
    ARKUI_FONT_WEIGHT_W400,
    /** 500 */
    ARKUI_FONT_WEIGHT_W500,
    /** 600 */
    ARKUI_FONT_WEIGHT_W600,
    /** 700 */
    ARKUI_FONT_WEIGHT_W700,
    /** 800 */
    ARKUI_FONT_WEIGHT_W800,
    /** 900 */
    ARKUI_FONT_WEIGHT_W900,
    /** The font weight is bold. */
    ARKUI_FONT_WEIGHT_BOLD,
    /** The font weight is normal. */
    ARKUI_FONT_WEIGHT_NORMAL,
    /** The font weight is bolder. */
    ARKUI_FONT_WEIGHT_BOLDER,
    /** The font weight is lighter. */
    ARKUI_FONT_WEIGHT_LIGHTER,
    /** The font weight is medium. */
    ARKUI_FONT_WEIGHT_MEDIUM,
    /** The font weight is normal. */
    ARKUI_FONT_WEIGHT_REGULAR,
} ArkUI_FontWeight;

/**
 * @brief Enumerates the text alignment mode.
 *
 * @since 12
 */
typedef enum {
    /** Aligned with the start. */
    ARKUI_TEXT_ALIGNMENT_START = 0,
    /** Horizontally centered. */
    ARKUI_TEXT_ALIGNMENT_CENTER,
    /** Aligned with the end. */
    ARKUI_TEXT_ALIGNMENT_END,
    /** Aligned with both margins. */
    ARKUI_TEXT_ALIGNMENT_JUSTIFY,
    /** Aligned with left to right.
     * @since 23
     */
    ARKUI_TEXT_ALIGNMENT_LEFT_TO_RIGHT = 4,
    /** Aligned with right to left.
     * @since 23
     */
    ARKUI_TEXT_ALIGNMENT_RIGHT_TO_LEFT = 5,
} ArkUI_TextAlignment;

/**
 *1 @brief Enumerates text vertical alignment stylesenum {
    /** Aligned to the baseline. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE = 0,
    /** Bottom aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_BOTTOM,
    /** Center aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_CENTER,
    /** Top aligned. */
    ARKUI_TEXT_VERTICAL_ALIGNMENT_TOP,
} ArkUI_TextVerticalAlignment;

/**
 * @brief Enumerates text content align styles.
 *
 * @since 21
 */
typedef enum {
    /** Top aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_TOP = 0,
    /** Center aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_CENTER = 1,
    /** Bottom aligned. */
    ARKUI_TEXT_CONTENT_ALIGN_BOTTOM = 2,
} ArkUI_TextContentAlign;
-
/**
 * @brief Enumerates the text text direc3
 */
typedef enum {
    /** The text direction is left to right. */
    ARKUI_TEXT_DIRECTION_LTR = 0,
    /** The text direction is right to left. */
    ARKUI_TEXT_DIRECTION_RTL = 1,
    /** The text direction follows the component layout. */
    ARKUI_TEXT_DIRECTION_DEFAULT = 2,
    /** The text direction follows the actual text. */
    ARKUI_TEXT_DIRECTION_AUTO = 3,
} ArkUI_TextDirection;

/**
 * @brief Enumerates the types of the Enter key for a single-line text box.
 *
 * @since 12
 */
typedef enum {
    /** The Enter key is labeled "Go." */
    ARKUI_ENTER_KEY_TYPE_GO = 2,
    /** The Enter key is labeled "Search." */
    ARKUI_ENTER_KEY_TYPE_SEARCH = 3,
    /** The Enter key is labeled "Send." */
    ARKUI_ENTER_KEY_TYPE_SEND,
    /** The Enter key is labeled "Next." */
    ARKUI_ENTER_KEY_TYPE_NEXT,
    /** The Enter key is labeled "Done." */
    ARKUI_ENTER_KEY_TYPE_DONE,
    /** The Enter key is labeled "Previous." */
    ARKUI_ENTER_KEY_TYPE_PREVIOUS,
    /** The Enter key is labeled "New Line." */
    ARKUI_ENTER_KEY_TYPE_NEW_LINE,
} ArkUI_EnterKeyType;

/**
 * @brief Enumerates the text input types.
 *
 * @since 12
 */
typedef enum {
    /** Normal input mode. */
    ARKUI_TEXTINPUT_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
    /** Password input mode. */
    ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
    /** Numeric password input mode. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_PASSWORD = 8,
    /** Lock screen password input mode. */
    ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
    /** Username input mode. */
    ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
    /** New password input mode. */
    ARKUI_TEXTINPUT_TYPE_NEW_PASSWORD = 11,
    /** Number input mode with a decimal point. */
    ARKUI_TEXTINPUT_TYPE_NUMBER_DECIMAL = 12,
    /**
     * One time code input mode.
     * @since 20
     */
    ARKUI_TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextInputType;

/**
 * @brief Enumerates the text box types.
 *
 * @since 12
 */
typedef enum {
    /** Normal input mode. */
    ARKUI_TEXTAREA_TYPE_NORMAL = 0,
    /** Number input mode. */
    ARKUI_TEXTAREA_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTAREA_TYPE_EMAIL = 5,
    /**
     * One time code input mode.
     * @since 20
     */
    ARKUI_TEXTAREA_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextAreaType;

/**
 * @brief Enumerates the styles of the Cancel button.
 *
 * @since 12
 */
typedef enum {
    /** The Cancel button is always displayed. */
    ARKUI_CANCELBUTTON_STYLE_CONSTANT = 0,
    /** The Cancel button is always hidden. */
    ARKUI_CANCELBUTTON_STYLE_INVISIBLE,
    /** The Cancel button is displayed when there is text input. */
    ARKUI_CANCELBUTTON_STYLE_INPUT,
} ArkUI_CancelButtonStyle;

/**
 * @brief Enumerates the types of the <b><XComponent></b> component.
 *
 * @since 12
 */
typedef enum {
    /** The custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
    ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
    /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
      * of the component.
      */
    ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
} ArkUI_XComponentType;

/**
 * @brief Enumerates the styles of the progress indicator.
 *
 * @since 12
 */
typedef enum {
    /** Linear style. */
    ARKUI_PROGRESS_TYPE_LINEAR = 0,
    /** Indeterminate ring style. */
    ARKUI_PROGRESS_TYPE_RING,
    /** Eclipse style. */
    ARKUI_PROGRESS_TYPE_ECLIPSE,
    /** Determinate ring style. */
    ARKUI_PROGRESS_TYPE_SCALE_RING,
    /** Capsule style. */
    ARKUI_PROGRESS_TYPE_CAPSULE,
} ArkUI_ProgressType;

/**
 * @brief Enumerates the text decoration types.
 *
 * @since 12
 */
typedef enum {
    /** No text decoration. */
    ARKUI_TEXT_DECORATION_TYPE_NONE = 0,
    /** Line under the text. */
    ARKUI_TEXT_DECORATION_TYPE_UNDERLINE,
    /** Line over the text. */
    ARKUI_TEXT_DECORATION_TYPE_OVERLINE,
    /** Line through the text. */
    ARKUI_TEXT_DECORATION_TYPE_LINE_THROUGH,
} ArkUI_TextDecorationType;

/**
 * @brief Enumerates the text decoration styles.
 *
 * @since 12
 */
typedef enum {
    /** Single solid line. */
    ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
    /** Double solid line. */
    ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
    /** Dotted line. */
    ARKUI_TEXT_DECORATION_STYLE_DOTTED,
    /** Dashed line. */
    ARKUI_TEXT_DECORATION_STYLE_DASHED,
    /** Wavy line. */
    ARKUI_TEXT_DECORATION_STYLE_WAVY,
} ArkUI_TextDecorationStyle;

/**
 * @brief Enumerates the text cases.
 *
 * @since 12
 */
typedef enum {
    /** The original case of the text is retained. */
    ARKUI_TEXT_CASE_NORMAL = 0,
    /** All letters in the text are in lowercase. */
    ARKUI_TEXT_CASE_LOWER,
    /** All letters in the text are in uppercase. */
    ARKUI_TEXT_CASE_UPPER,
} ArkUI_TextCase;

/**
 * @brief Enumerates the text copy and paste modes.
 *
 * @since 12
 */
typedef enum {
    /** Copy is not allowed. */
    ARKUI_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
    ARKUI_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_CopyOptions;

/**
 * @brief Enumerates the shadow types.
 *
 * @since 12
 */
typedef enum {
    /** Color. */
    ARKUI_SHADOW_TYPE_COLOR = 0,
    /** Blur. */
    ARKUI_SHADOW_TYPE_BLUR
} ArkUI_ShadowType;

/**
 * @brief Enumerates the modes of the date picker.
 *
 * @since 18
 */
typedef enum {
    /** A mode that displays the date in months, days of month, and years. */
    ARKUI_DATEPICKER_MODE_DATE = 0,
    /** A mode that displays the date in months and years. */
    ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
    /** A mode that displays the date in months and days of the month. */
    ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
} ArkUI_DatePickerMode;

/**
 * @brief Enumerates the types of the text picker.
 *
 * @since 12
 */
typedef enum {
    /** Single-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_SINGLE = 0,
    /** Multi-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_MULTI,
    /** Single-column text picker with image resources. */
    ARKUI_TEXTPICKER_RANGETYPE_RANGE_CONTENT,
    /** Interconnected multi-column text picker. */
    ARKUI_TEXTPICKER_RANGETYPE_CASCADE_RANGE_CONTENT,
} ArkUI_TextPickerRangeType;

/**
 * @brief Defines the input structure of the single-column text picker with image resources.
 *
 * @since 12{
    /** Image resource. */
    const char* icon;
    /** Text information. */
    const char* text;
} ARKUI_TextPickerRangeContent;

/**
 * @brief Defines the input structure of the interconnected multi-column text picker.
 *
 * @since 12
 */
typedef s{
    /** Text information. */
    const char* text;
    /** Interconnected data. */
    const ARKUI_TextPickerRangeContent* children;
    /** Size of the interconnected data array. */
    int32_t size;
} ARKUI_TextPickerCascadeRangeContent;

/**
 * @brief Enumerates the effects used at the edges of the component when the boundary of the scrollable content is
 * reached.
 *
 * @since 12
 */
typedef enum {
    /** Spring effect. When at one of the edges, the component can move beyond the bounds based on the initial
     *  speed or through touches, and produces a bounce effect when the user releases their finger. */
    ARKUI_EDGE_EFFECT_SPRING = 0,
    /** Fade effect. When at one of the edges, the component produces a fade effect. */
    ARKUI_EDGE_EFFECT_FADE,
    /** No effect after the scrollbar is moved to the edge. */
    ARKUI_EDGE_EFFECT_NONE,
} ArkUI_EdgeEffect;

/**
 * @brief Enumerates the status of the scroll bar.
 *
 * @since 22
 */
typedef enum {
    /** Not displayed. */
    ARKUI_BAR_STATE_OFF = 0,
    /** On-demand display. */
    ARKUI_BAR_STATE_AUTO = 1,
    /** Resident display. */
    ARKUI_BAR_STATE_ON = 2,
} ArkUI_BarState;

/**
 * @brief Enumerates the edges for which the effect takes effect when the boundary of the scrollable content is reached.
 *
 * @since 18
 */
typedef enum {
    /** Start edge. */
    ARKUI_EFFECT_EDGE_START = 1,
    /** End edge. */
    ARKUI_EFFECT_EDGE_END = 2,
} ArkUI_EffectEdge;

/**
 * @brief Enumerates the focus wrap mode of components.
 *
 * @sienum {
    /** Default mode, where focus does not wrap when arrow keys are used. */
    ARKUI_FOCUS_WRAP_MODE_DEFAULT = 0,
    /** Focus wraps automatically when arrow keys are used. */
    ARKUI_FOCUS_WRAP_WITH_ARROW = 1,
} ArkUI_FocusWrapMode;

/**
 * @brief Specifies the number of columns for different responsive breakpoint specifications.
 *
 * @since 22
 */
typedef enum {
    /** No responsive breakpoint configuration. */
    ARKUI_ITEMFILLPOLICY_NONE = -1,
    /**
     * Default responsive layout:
     * <b>List</b> or <b>Swiper</b> component: 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger).
     * <b>Grid</b> or <b>WaterFlow</b> component: 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger).
     */
    ARKUI_ITEMFILLPOLICY_DEFAULT = 0,
    /** 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM1MD2LG3 = 1,
    /** 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM2MD3LG5 = 2,
} ArkUI_ItemFillPolicy;

/**
 * @brief Enumerates the grid item alignment modes.
 *
 * @since 22
 */
typedef enum {
    /** Use the default alignment mode of the grid. */
    GRID_ITEM_ALIGNMENT_DEFAULT = 0,
    /** Set the height of all grid items in a row to match the height of the tallest item in that row. */
    GRID_ITEM_ALIGNMENT_STRETCH = 1,
} ArkUI_GridItemAlignment;

/**
 * @brief Enumerates styles of grid items.
 *
 * @since 22
 */
typedef enum {
    /** No style. */
    GRID_ITEM_STYLE_NONE = 0,
    /** Hover or press style. */
    GRID_ITEM_STYLE_PLAIN = 1,
} ArkUI_GridItemStyle;

/**
 * @brief Enumerates the scroll directions for the <b><Scroll></b> component.
 *
 * @since 12
 */
typedef enum {
    /** Only vertical scrolling is supported. */
    ARKUI_SCROLL_DIRECTION_VERTICAL = 0,
    /** Only horizontal scrolling is supported. */
    ARKUI_SCROLL_DIRECTION_HORIZONTAL,
    /** Scrolling is not allowed. */
    ARKUI_SCROLL_DIRECTION_NONE = 3,
    /**
     * Free scrolling in both directions.
     *
     * @since 20
     */
    ARKUI_SCROLL_DIRECTION_FREE = 4,
} ArkUI_ScrollDirection;

/**
 * @brief Enumerates the alignment modes of list items when scrolling ends.
 *
 * @since 12
 */
typedef enum {
    /** No alignment. This is the default value. */
    ARKUI_SCROLL_SNAP_ALIGN_NONE = 0,
    /** The first item in the view is aligned at the start of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_START,
    /** The middle items in the view are aligned in the center of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_CENTER,
    /** The last item in the view is aligned at the end of the list. */
    ARKUI_SCROLL_SNAP_ALIGN_END,
} ArkUI_ScrollSnapAlign;

/**
 * @brief Enumerates the scroll snap animation speeds for lists.
 *
 * @since 22
 */
typedef enum {
    /** Normal scroll snap animation speed. */
    ARKUI_SCROLL_SNAP_ANIMATION_NORMAL = 0,
    /** Slow scroll snap animation speed. */
    ARKUI_SCROLL_SNAP_ANIMATION_SLOW = 1,
} ArkUI_ScrollSnapAnimationSpeed;

/**
 * @brief Enumerates the scrollbar display modes.
 *
 * @since 12
 */
typedef enum {
    /** Hide. */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_OFF = 0,
    /** Display on demand (displays when the screen is touched and disappears after 2s). */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO,
    /** Always display. */
    ARKUI_SCROLL_BAR_DISPLAY_MODE_ON,
} ArkUI_ScrollBarDisplayMode;

/**
 * @brief Enumerates the scroll directions for the <b><List></b> component.
 *
 * @since 12
 */
typedef enum {
    /** Only vertical scrolling is supported. */
    ARKUI_AXIS_VERTICAL = 0,
    /** Only horizontal scrolling is supported. */
    ARKUI_AXIS_HORIZONTAL,
} ArkUI_Axis;

/**
 * @brief Enumerates the modes for pinning the header to the top or the footer to the bottom.
 *
 * @since 12
 */
typedef enum {
    /** In the list item group, the header is not pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_NONE = 0,
    /** In the list item group, the header is pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_HEADER = 1,
    /** In the list item group, the footer is pinned to the bottom, and the header is not pinned to the top. */
    ARKUI_STICKY_STYLE_FOOTER = 2,
    /** In the list item group, the footer is pinned to the bottom, and the header is pinned to the top. */
    ARKUI_STICKY_STYLE_BOTH = 3,
} ArkUI_StickyStyle;

/**
 * @brief Enumerates the content clipping modes of scrollable components.
 *
 * @since 18
 */
typedef enum {
    /** clip by content */
    ARKUI_CONTENT_CLIP_MODE_CONTENT_ONLY = 0,
    /** clip by boundary */
    ARKUI_CONTENT_CLIP_MODE_BOUNDARY,
    /** clip by safe area padding */
    ARKUI_CONTENT_CLIP_MODE_SAFE_AREA,
} ArkUI_ContentClipMode;

/**
 * @brief Enumerates the layout modes of the WaterFlow component.
 *
 * @since 18
 */
typedef enum {
    /** Layout items from top to viewport. */
    ARKUI_WATER_FLOW_LAYOUT_MODE_ALWAYS_TOP_DOWN = 0,
    /** Layout items in viewport. */
    ARKUI_WATER_FLOW_LAYOUT_MODE_SLIDING_WINDOW,
} ArkUI_WaterFlowLayoutMode;

/**
 * @brief Enumerates the border styles.
 *
 * @since 12
 */
typedef enum {
    /** Solid border. */
    ARKUI_BORDER_STYLE_SOLID = 0,
    /** Dashed border. */
    ARKUI_BORDER_STYLE_DASHED,
    /** Dotted border. */
    ARKUI_BORDER_STYLE_DOTTED,
} ArkUI_BorderStyle;

/**
 * @brief Enumerates the hit test modes.
 *
 * @since 12
 */
typedef enum {
    /** Both node respond to the hit test of a touch event, but its sibling node is blocked from
     *  the hit test. */
    ARKUI_HIT_TEST_MODE_DEFAULT = 0,
    /** The node responds to the hit test of a touch event, but its child node and sibling node are blockedJ from the
     *  hit test. */
    ARKUI_HIT_TEST_MODE_BLOCK,
    /** Both node respond to the hit test of a touch event, and its sibling node is also
     * considered during the hit test. */
    ARKUI_HIT_TEST_MODE_TRANSPARENT,
    /** The node does not respond to the hit test of a touch event. */
    ARKUI_HIT_TEST_MODE_NONE,
    /**
     * T nodes participate in hit tests, while blocking hit tests for all sibling nodes and
     * parent nodes with lower priority.
     *
     * @since 20
     */
    ARKUI_HIT_TEST_MODE_BLOCK_HIERARCHY,
    /**
     * The node does not respond to hit tests, and none of its descendants (including children and grandchildren)
     * participate in hit tests either.
     *
     * @since 20
     */
    ARKUI_HIT_TEST_MODE_BLOCK_DESCENDANTS,
} ArkUI_HitTestMode;

/**
 * @brief Enumerates the shadow styles.
 *
 * @since 12
 */
typedef enum {
    /** Mini shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
    /** Little shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
    /** Medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
    /** Large shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
    /** Floating small shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
    /** Floating medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_MD,
} ArkUI_ShadowStyle;

/**
 * @brief Enumerates the animation curves.
 *
 * @since 12
 */
typedef enum {
    /** The animation speed keeps unchanged. */
    ARKUI_CURVE_LINEAR = 0,
    /** The animation starts slowly, accelerates, and then slows down towards the end. */
    ARKUI_CURVE_EASE,
    /** The animation starts at a low speed and then picks up speed until the end. */
    ARKUI_CURVE_EASE_IN,
    /** The animation ends at a low speed. */
    ARKUI_CURVE_EASE_OUT,
    /** The animation starts and ends at a low speed. */
    ARKUI_CURVE_EASE_IN_OUT,
    /** The animation uses the standard curve */
    ARKUI_CURVE_FAST_OUT_SLOW_IN,
    /** The animation uses the deceleration curve. */
    ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
    /** The animation uses the acceleration curve. */
    ARKUI_CURVE_FAST_OUT_LINEAR_IN,
    /** The animation uses the extreme deceleration curve. */
    ARKUI_CURVE_EXTREME_DECELERATION,
    /** The animation uses the sharp curve. */
    ARKUI_CURVE_SHARP,
    /** The animation uses the rhythm curve. */
    ARKUI_CURVE_RHYTHM,
    /** The animation uses the smooth curve. */
    ARKUI_CURVE_SMOOTH,
    /** The animation uses the friction curve */
    ARKUI_CURVE_FRICTION,
} ArkUI_AnimationCurve;

/**
 * @brief Enumerates arrow styles of the navigation point indicator.
 *
 * @since 12
 */
typedef enum {
    /** The arrow is not displayed for the navigation point indicator. */
    ARKUI_SWIPER_ARROW_HIDE = 0,
    /** The arrow is displayed for the navigation point indicator. */
    ARKUI_SWIPER_ARROW_SHOW,
    /** The arrow is displayed only when the mouse pointer hovers over the navigation point indicator. */
    ARKUI_SWIPER_ARROW_SHOW_ON_HOVER,
} ArkUI_SwiperArrow;

/**
 * @brief Nested scrolling mode for Swiper components and parent components.
 *
 * @since 12
 */
typedef enum {
    /** Swiper only scrolls on its own and is not linked to its parent component. */
    ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY = 0,
    /** The Swiper itself scrolls first, and the parent component scrolls after it reaches the edge. After the parent
     * component scrolls to the edge, if the parent component has an edge effect, the parent component triggers the edge
     * effect; otherwise, the Swiper triggers the edge effect. */
    ARKUI_SWIPER_NESTED_SRCOLL_SELF_FIRST,
} ArkUI_SwiperNestedScrollMode;

/**
 * @brief Enumerates the page flipping modes using the mouse wheel for the <b>Swiper</b> component.
 *
 * @since 15
 */
typedef enum {
    /** When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined by the number of
     *  times that mouse events are reported. */
    ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
    /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
    ARKUI_PAGE_FLIP_MODE_SINGLE,
} ArkUI_PageFlipMode;

/**
 * @brief Enumerates the animation modes for {@link NODE_SWIPER_INDEX}.
 *
 * @since 15
 */
typedef enum {
    /** Jump to target index without animation. */
    ARKUI_SWIPER_NO_ANIMATION = 0,
    /** Scroll to target index with animation. */
    ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
    /** Jump to some index near the target index without animation, then scroll to target index with animation. */
    ARKUI_SWIPER_FAST_ANIMATION = 2,
} ArkUI_SwiperAnimationMode;

/**
 * @brief Enumerates the accessibility modes.
 *
 * @since 12
 */
typedef enum {
    /** Whether the component can be identified by the accessibility service is dependent on the component. */
    ARKUI_ACCESSIBILITY_MODE_AUTO = 0,
    /** The component can be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_ENABLED,
    /** The component cannot be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED,
    /** The component and all its child components cannot be identified by the accessibility service. */
    ARKUI_ACCESSIBILITY_MODE_DISABLED_FOR_DESCENDANTS,
} ArkUI_AccessibilityMode;

/**
 * @brief Defines whether copy and paste is allowed for text content.
 *
 * @since 12
 */
typedef enum {
    /** Copy is not allowed. */
    ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_TextCopyOptions;

/**
 * @brief Defines how the adaptive height is determined for the text.
 *
 * @since 12
 */
typedef enum {
    /** Prioritize the <b>maxLines</b> settings. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MAX_LINES_FIRST = 0,
    /** Prioritize the <b>minFontSize</b> settings. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_MIN_FONT_SIZE_FIRST,
    /** Prioritize the layout constraint settings in terms of height. */
    ARKUI_TEXT_HEIGHT_ADAPTIVE_POLICY_LAYOUT_CONSTRAINT_FIRST,
} ArkUI_TextHeightAdaptivePolicy;

/**
 * @brief Defines nested scrolling options.
 *
 * @since 12
 */
typedef enum {
    /** The scrolling is contained within the component, and no scroll chaining occurs, that is, the parent component
     * does not scroll when the component scrolling reaches the boundary. */
    ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
    /** The component scrolls first, and when it hits the boundary, the parent component scrolls.
     *  When the parent component hits the boundary, its edge effect is displayed. If no edge
     *  effect is specified for the parent component, the edge effect of the child component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
    /** The parent component scrolls first, and when it hits the boundary, the component scrolls.
     *  When the component hits the boundary, its edge effect is displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
    /** The component and its parent component scroll at the same time. When both the component and its parent component
     *  hit the boundary, the edge effect of the component is displayed. If no edge effect is specified for the
     *  component, the edge effect of the parent component is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARALLEL,
} ArkUI_ScrollNestedMode;

/**
 * @brief Defines the edge to which the component scrolls.
 *
 * @since 12
 */
typedef enum {
    /** Top edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_TOP = 0,
    /** Bottom edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_BOTTOM,
    /** Start position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_START,
    /** End position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_END,
} ArkUI_ScrollEdge;

/**
 * @brief Alignment when scrolling to specific items.
 *
 * @since 12
 */
typedef enum {
    /** Align the head. Align the head of the specified item with the head of the container.*/
    ARKUI_SCROLL_ALIGNMENT_START = 0,
    /** Center alignment. Align the axis direction of the specified item to the center of the container.*/
    ARKUI_SCROLL_ALIGNMENT_CENTER,
    /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
    ARKUI_SCROLL_ALIGNMENT_END,
    /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
     * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
     * item with the container, so that the specified item is completely in the display area.*/
    ARKUI_SCROLL_ALIGNMENT_AUTO,
} ArkUI_ScrollAlignment;

/**
 * @brief Define the current scrolling state.
 *
 * @since 12
 */
typedef enum {
    /** Idle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
     * dragging the scroll bar to scroll.*/
    ARKUI_SCROLL_STATE_IDLE = 0,
    /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
    ARKUI_SCROLL_STATE_SCROLL,
    /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
     * releasing the hand quickly.*/
    ARKUI_SCROLL_STATE_FLING,
} ArkUI_ScrollState;

/**
 * @brief Enumerates the types of the slider in the block direc12
 */
typedef enum {
    /** Round slider. */
    ARKUI_SLIDER_BLOCK_STYLE_DEFAULT = 0,
    /** Slider with an image background. */
    ARKUI_SLIDER_BLOCK_STYLE_IMAGE,
    /** Slider in a custom shape. */
    ARKUI_SLIDER_BLOCK_STYLE_SHAPE,
} ArkUI_SliderBlockStyle;

/**
 * @brief Enumerates the scroll directions of the slider.
 *
 * @since 12
 */
typedef enum {
    /** Vertical direction. */
    ARKUI_SLIDER_DIRECTION_VERTICAL = 0,
    /** Horizontal direction. */
    ARKUI_SLIDER_DIRECTION_HORIZONTAL,
} ArkUI_SliderDirection;

/**
 * @brief Enumerates the slider styles.
 *
 * @since 12
 */
typedef enum {
    /** The slider is on the slider track. */
    ARKUI_SLIDER_STYLE_OUT_SET = 0,
    /** The slider is in the slider track. */
    ARKUI_SLIDER_STYLE_IN_SET,
    /** No slider. */
    ARKUI_SLIDER_STYLE_NONE,
} ArkUI_SliderStyle;

/**
 * @brief Enumerates the shapes of the check box
 *
 * @since 12
 */
typedef enum {
    /** Circle. */
    ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
    /** Rounded square. */
    ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
} ArkUI_CheckboxShape;

/**
 * @brief Enumerates the animation playback modes.
 *
 * @since 12
 */
typedef enum {
    /** The animation is played forwards. */
    ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
    /** The animation is played reversely. */
    ARKUI_ANIMATION_PLAY_MODE_REVERSE,
    /** The animation is played normally for an odd number of times (1, 3, 5...) and reversely for an even number
     *  of times (2, 4, 6...). */
    ARKUI_ANIMATION_PLAY_MODE_ALTERNATE,
    /** The animation is played reversely for an odd number of times (1, 3, 5...) and normally for an even number
     *  of times (2, 4, 6...). */
    ARKUI_ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
} ArkUI_AnimationPlayMode;

/**
 * @brief Defines the image size.
 *
 * @since 12
 */
typedef enum {
    /** The original image aspect ratio is retained. */
    ARKUI_IMAGE_SIZE_AUTO = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal
     *  to the display boundaries. */
    ARKUI_IMAGE_SIZE_COVER,
    /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the display
     *  boundaries. */
    ARKUI_IMAGE_SIZE_CONTAIN,
} ArkUI_ImageSize;

/**
 * @brief Enumerates the adaptive color modes.
 *
 * @since 12
 */
typedef enum {
    /** Adaptive color mode is not used. */
    ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
    /** Adaptive color mode is used. */
    ARKUI_ADAPTIVE_COLOR_AVERAGE,
} ArkUI_AdaptiveColor;

/**
 * @brief Enumerates the color modes.
 *
 * @since 12
 */
typedef enum {
    /** Following the system color mode. */
    ARKUI_COLOR_MODE_SYSTEM = 0,
    /** Light color mode. */
    ARKUI_COLOR_MODE_LIGHT,
    /** Dark color mode. */
    ARKUI_COLOR_MODE_DARK,
} ArkUI_ColorMode;

/**
 * @brief Enumerates the system color modes.
 *
 * @since 12
 */
typedef enum {
    /** Light color mode. */
    ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
    /** Dark color mode. */
    ARKUI_SYSTEM_COLOR_MODE_DARK,
} ArkUI_SystemColorMode;

/**
 * @brief Enumerates the blur styles.
 *
 * @since 12
 */
typedef enum {
    /** Thin material. */
    ARKUI_BLUR_STYLE_THIN = 0,
    /** Regular material. */
    ARKUI_BLUR_STYLE_REGULAR,
    /** Thick material. */
    ARKUI_BLUR_STYLE_THICK,
    /** Material that creates the minimum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THIN,
    /** Material that creates a medium shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
    /** Material that creates a high shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THICK,
    /** Material that creates the maximum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
    /** No blur. */
    ARKUI_BLUR_STYLE_NONE,
    /** Component ultra-thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
    /** Component thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_THIN,
    /** Component regular material. */
    ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
    /** Component thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_THICK,
    /** Component ultra-thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THICK,
} ArkUI_BlurStyle;

/**
 * @brief Enumerates the activation policies for the background blur effect.
 *
 * @since 19
 */
typedef enum {
    /** The blur effect changes according to the window's focus state;
     *  it is inactive when the window is not in focus and active when the window is in focus. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
    /** The blur effect is always active. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
    /** The blur effect is always inactive. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
} ArkUI_BlurStyleActivePolicy;

/**
 * @brief Enumerates the vertical alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** Top aligned. */
    ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI_VERTICAL_ALIGNMENT_CENTER,
    /** Bottom aligned. */
    ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
} ArkUI_VerticalAlignment;

/**
 * @brief Enumerates the alignment mode in the horizontal direc12
 */
typedef enum {
    /** Aligned with the start edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI_HORIZONTAL_ALIGNMENT_CENTER,
    /** Aligned with the end edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_END,
} ArkUI_HorizontalAlignment;

/**
 * @brief Enumerates the display modes when the text is too long.
 *
 * @since 12
 */
typedef enum {
    /** Extra-long text is not clipped. */
    ARKUI_TEXT_OVERFLOW_NONE = 0,
    /** Extra-long text is clipped. */
    ARKUI_TEXT_OVERFLOW_CLIP,
    /** An ellipsis (...) is used to represent text overflow. */
    ARKUI_TEXT_OVERFLOW_ELLIPSIS,
    /** Text continuously scrolls when text overflow occurs. */
    ARKUI_TEXT_OVERFLOW_MARQUEE,
} ArkUI_TextOverflow;

/**
 * @brief Enumerates the alignment mode of the image with the text.
 *
 * @since 12
 */
typedef enum {
    /** The image is bottom aligned with the text baseline. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
    /** The image is bottom aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
    /** The image is centered aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
    /** The image is top aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
    /**
     * The image alignment mode follows the text component's alignment mode.
     *
     * @since 20
     */
    ARKUI_IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
} ArkUI_ImageSpanAlignment;

/**
 * @brief Defines how the image is resized to fit its container.
 *ImageSpanAlignment
 * @since 12
 */
typedef enum {
    /** The image is scaled with its aspect ratio retained for the content to be completely displayed within the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_CONTAIN = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_COVER,
    /** The image is scaled automatically to fit the display area. */
    ARKUI_OBJECT_FIT_AUTO,
    /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
    ARKUI_OBJECT_FIT_FILL,
    /** The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the
     *  original size. */
    ARKUI_OBJECT_FIT_SCALE_DOWN,
    /** The original size is retained. */
    ARKUI_OBJECT_FIT_NONE,
    /** Not resized, the image is aligned with the start edge of the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_START,
    /** Not resized, the image is horizontally centered at the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP,
    /** Not resized, the image is aligned with the end edge at the top of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
    /** Not resized, the image is vertically centered on the start edge of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_START,
    /** Not resized, the image is horizontally and vertically centered in the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_CENTER,
    /** Not resized, the image is vertically centered on the end edge of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_END,
    /** Not resized, the image is aligned with the start edge at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
    /** Not resized, the image is horizontally centered at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
    /** Not resized, the image is aligned with the end edge at the bottom of the container. */
    ARKUI_OBJECT_FIT_NONE_AND_ALIGN_BOTTOM_END,
    /**
     * Not resized, and is used in conjunction with NODE_IMAGE_IMAGE_MATRIX.
     *
     * @since 21
     */
    ARKUI_OBJECT_FIT_NONE_MATRIX,
} ArkUI_ObjectFit;

/**
 * @brief Enumerates the image interpolation effect.
 *
 * @since 12
 */
typedef enum {
    /** No image interpolation. */
    ARKUI_IMAGE_INTERPOLATION_NONE = 0,
    /** Low quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_LOW,
    /** Medium quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_MEDIUM,
    /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
    ARKUI_IMAGE_INTERPOLATION_HIGH,
} ArkUI_ImageInterpolation;

/**
 * @brief Enumerates the image dynamic range mode.
 *
 * @since 21
 */
typedef enum {
    /** high dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_HIGH = 0,
    /** constraint dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_CONSTRAINT,
    /** standard dynamic range mode. */
    ARKUI_DYNAMIC_RANGE_MODE_STANRDARD,
} ArkUI_DynamicRangeMode;

/**
 * @brief Enumerates the image rotate orienta1
 */
typedef enum {
    /** Use EXIF metadata for display orientation, with support for rotation and mirroring. */
    ARKUI_ORIENTATION_AUTO = 0,
    /** Display original pixel data without transformation. */
    ARKUI_ORIENTATION_UP,
    /** Display the image after rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT,
    /** Display the image after rotating it 180 degrees clockwise. */
    ARKUI_ORIENTATION_DOWN,
    /** Display the image after rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT,
    /** Display the image after flipping it horizontally. */
    ARKUI_ORIENTATION_UP_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT_MIRRORED,
    /** Display the image after flipping it vertically. */
    ARKUI_ORIENTATION_DOWN_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT_MIRRORED,
} ArkUI_ImageRotateOrientation;

/**
 * @brief Enumerates the blend modes.
 *
 * @since 12
 */
typedef enum {
    /** The top image is superimposed on the bottom image without any blending. */
    ARKUI_BLEND_MODE_NONE = 0,
    /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
    ARKUI_BLEND_MODE_CLEAR,
    /** r = s: Only the source pixels are displayed. */
    ARKUI_BLEND_MODE_SRC,
    /** r = d: Only the target pixels are displayed. */
    ARKUI_BLEND_MODE_DST,
    /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
    ARKUI_BLEND_MODE_SRC_OVER,
    /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
    ARKUI_BLEND_MODE_DST_OVER,
    /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_IN,
    /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_IN,
    /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_OUT,
    /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_OUT,
    /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
     *  the part of the target pixels that do not overlap with the source pixels are displayed.
     */
    ARKUI_BLEND_MODE_SRC_ATOP,
    /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
     *  the source pixels that do not overlap with the target pixels are displayed.
     */
    ARKUI_BLEND_MODE_DST_ATOP,
    /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
     * is displayed. */
    ARKUI_BLEND_MODE_XOR,
    /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
    ARKUI_BLEND_MODE_PLUS,
    /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
    ARKUI_BLEND_MODE_MODULATE,
    /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
     *  product of their multiplication. */
    ARKUI_BLEND_MODE_SCREEN,
    /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
    ARKUI_BLEND_MODE_OVERLAY,
    /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
    ARKUI_BLEND_MODE_DARKEN,
    /** rc = s + d - min(s * da, d * sa), ra =
       kSrcOver: The final pixels are composed of the lightest values of pixels. */
    ARKUI_BLEND_MODE_LIGHTEN,
    /** The colors of the target pixels are lightened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_DODGE,
    /** The colors of the target pixels are darkened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_BURN,
    /** The MULTIPLY or SCREEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_HARD_LIGHT,
    /** The LIGHTEN or DARKEN mode is used, depending on the source pixels. */
    ARKUI_BLEND_MODE_SOFT_LIGHT,
    /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
       kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
       the lighter one. */
    ARKUI_BLEND_MODE_DIFFERENCE,
    /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
     */
    ARKUI_BLEND_MODE_EXCLUSION,
    /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
     *  by the target pixel.	 */
    ARKUI_BLEND_MODE_MULTIPLY,
    /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
     *  image. */
    ARKUI_BLEND_MODE_HUE,
    /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
     *  image. */
    ARKUI_BLEND_MODE_SATURATION,
    /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
     *  image. */
    ARKUI_BLEND_MODE_COLOR,
    /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
     *  image. */
    ARKUI_BLEND_MODE_LUMINOSITY,
} ArkUI_BlendMode;

/**
 * @brief Enumerates the modes in which components are laid out along the main axis of the container.
 *
 * @since 12
 */
typedef enum {
    /** Components are arranged from left to right. */
    ARKUI_DIRECTION_LTR = 0,
    /** Components are arranged from right to left. */
    ARKUI_DIRECTION_RTL,
    /** The default layout direction is used. */
    ARKUI_DIRECTION_AUTO = 3,
} ArkUI_Direction;

/**
 * @brief Enumerates the modes in which components are laid out along the cross axis of the container.
 *
 * @since 12
 */
typedef enum {
    /** The default configuration in the container is used. */
    ARKUI_ITEM_ALIGNMENT_AUTO = 0,
    /** The items in the container are aligned with the cross-start edge. */
    ARKUI_ITEM_ALIGNMENT_START,
    /** The items in the container are centered along the cross axis. */
    ARKUI_ITEM_ALIGNMENT_CENTER,
    /** The items in the container are aligned with the cross-end edge. */
    ARKUI_ITEM_ALIGNMENT_END,
    /** The items in the container are stretched and padded along the cross axis. */
    ARKUI_ITEM_ALIGNMENT_STRETCH,
    /** The items in the container are aligned in such a manner that their text baselines are aligned along the
     *  cross axis. */
    ARKUI_ITEM_ALIGNMENT_BASELINE,
} ArkUI_ItemAlignment;

/**
 * @brief Enumerates the foreground colors.
 *
 * @since 12
 */
typedef enum {
    /** The foreground colors are the inverse of the component background colors. */
    ARKUI_COLOR_STRATEGY_INVERT = 0,
    /** The shadow colors of the component are the average color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_AVERAGE,
    /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_PRIMARY,
} ArkUI_ColorStrategy;

/**
 * @brief Enumerates the vertical alignment modes.
 *
 * @since 12
 */
typedef enum {
    /** The child components are aligned with the start edge of the main axis. */
    ARKUI_FLEX_ALIGNMENT_START = 1,
    /** The child components are aligned in the center of the main axis. */
    ARKUI_FLEX_ALIGNMENT_CENTER = 2,
    /** The child components are aligned with the end edge of the main axis. */
    ARKUI_FLEX_ALIGNMENT_END = 3,
    /** The child components are evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The first component is aligned with the main-start, and the last component is aligned with
     *  the main-end. */
    ARKUI_FLEX_ALIGNMENT_SPACE_BETWEEN = 6,
    /** The child components are evenly distributed along the main axis. The space between any two adjacent components
     *  is the same. The space between the first component and main-start, and that between the last component and
     *  cross-main are both half the size of the space between two adjacent components. */
    ARKUI_FLEX_ALIGNMENT_SPACE_AROUND = 7,
    /** The child components are evenly distributed along the main axis. The space between the first component
     *  and main-start, the space between the last component and main-end, and the space between any two adjacent
     *  components are the same. */
    ARKUI_FLEX_ALIGNMENT_SPACE_EVENLY = 8,
} ArkUI_FlexAlignment;

/**
 * @brief Enumerates the directions of the main axis in the flex container.
 *
 * @since 12
 */
typedef enum {
    /** The child components are arranged in the same direction as the main axis runs along the rows. */
    ARKUI_FLEX_DIRECTION_ROW = 0,
    /** The child components are arranged in the same direction as the main axis runs down the columns. */
    ARKUI_FLEX_DIRECTION_COLUMN,
    /** The child components are arranged opposite to the <b>ROW</b> direction. */
    ARKUI_FLEX_DIRECTION_ROW_REVERSE,
    /** The child components are arranged opposite to the <b>COLUMN</b> direction. */
    ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
} ArkUI_FlexDirection;

/**
 * @brief Defines whether the flex container has a single line or multiple lines.
 *
 * @since 12
 */
typedef enum {
    /** The child components in the flex container are arranged in a single line, and they cannot overflow. */
    ARKUI_FLEX_WRAP_NO_WRAP = 0,
    /** The child components in the flex container are arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP,
    /** The child components in the flex container are reversely arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP_REVERSE,
} ArkUI_FlexWrap;

/**
 * @brief Enumerates the visibility values.
 *
 * @since 12
 */
typedef enum {
    /** The component is visible. */
    ARKUI_VISIBILITY_VISIBLE = 0,
    /** The component is hidden, and a placeholder is used for it in the layout. */
    ARKUI_VISIBILITY_HIDDEN,
    /** The component is hidden. It is not involved in the layout, and no placeholder is used for it. */
    ARKUI_VISIBILITY_NONE,
} ArkUI_Visibility;

/**
 * @brief Enumerates the alignment modes between the calendar picker and the entry component.
 *
 * @since 12
 */
typedef enum {
    /** Left aligned. */
    ARKUI_CALENDAR_ALIGNMENT_START = 0,
    /** Center aligned. */
    ARKUI_CALENDAR_ALIGNMENT_CENTER,
    /** Right aligned. */
    ARKUI_CALENDAR_ALIGNMENT_END,
} ArkUI_CalendarAlignment;

/**
 * @brief Enumerates the mask types.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_MASK_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_MASK_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_MASK_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_MASK_TYPE_PATH,
    /** Progress indicator. */
    ARKUI_MASK_TYPE_PROGRESS,
} ArkUI_MaskType;

/**
 * @brief Enumerates the clipping region types.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_CLIP_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_CLIP_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_CLIP_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_CLIP_TYPE_PATH,
} ArkUI_CRlipType;

/**
 * @brief Defines the gradient color stop structure.
 *
 * @since 12{
    /** Color array. */
    const uint32_t* colors;
    /** Position array. */
    float* stops;
    /** Length array. */
    int size;
} ArkUI_ColorStop;

/**
 * @brief Enumerates the custom shapes.
 *
 * @since 12
 */
typedef enum {
    /** Rectangle. */
    ARKUI_SHAPE_TYPE_RECTANGLE = 0,
    /** Circle. */
    ARKUI_SHAPE_TYPE_CIRCLE,
    /** Ellipse. */
    ARKUI_SHAPE_TYPE_ELLIPSE,
    /** Path. */
    ARKUI_SHAPE_TYPE_PATH,
} ArkUI_ShapeType;

/**
 * @brief Enumerates the gradient directions.
 *
 * @since 12
 */
typedef enum {
    /** From right to left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT = 0,
    /** From bottom to top. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_TOP,
    /** From left to right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT,
    /** From top to bottom. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_BOTTOM,
    /** From lower right to upper left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_TOP,
    /** From upper right to lower left. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_LEFT_BOTTOM,
    /** From lower left to upper right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_TOP,
    /** From upper left to lower right. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_RIGHT_BOTTOM,
    /** No gradient. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_NONE,
    /** Custom direction. */
    ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM,
} ArkUI_LinearGradientDirection;

/**
 * @brief Enumerates the word break rules.
 *
 * @since 12
 */
typedef enum {
    /** Word breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
     *  only at a space character for non-CJK text (such as English). */
    ARKUI_WORD_BREAK_NORMAL = 0,
    /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
     *  <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_ALL,
    /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
     *  lines at appropriate characters (for example, spaces) whenever possible.
        CJK text behavior is the same as for <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_WORD,
    /**
     * @brief Line breaks can occur between any two syllabic units for non-CJK text.
     * CJK text behavior is the same as for <b>NORMAL</b>.
     * @since 18
     */
    ARKUI_WORD_BREAK_HYPHENATION,
} ArkUI_WordBreak;

/**
 * @brief Enumerates the ellipsis positions.
 *
 * @since 12
 */
typedef enum {
    /** An ellipsis is used at the start of the line of text. */
    ARKUI_ELLIPSIS_MODE_START = 0,
    /** An ellipsis is used at the center of the line of text. */
    ARKUI_ELLIPSIS_MODE_CENTER,
    /** An ellipsis is used at the end of the line of text. */
    ARKUI_ELLIPSIS_MODE_END,
    /**
     *@brief An ellipsis is used at the start of the line of text for multiline and single line.
     *@since 24
     */
    ARKUI_ELLIPSIS_MODE_MULTILINE_START,
    /**
     *@brief An ellipsis is used at the center of the line of text for multiline and single line.
     *@since 24
     */
    ARKUI_ELLIPSIS_MODE_MULTILINE_CENTER,
} ArkUI_EllipsisMode;

/**
 * @brief Enumerates the image rendering modes.
 *
 * @since 12
 */
typedef enum {
    /** Render image pixels as they are in the original source image. */
    ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
    /** Render image pixels to create a monochrome template image. */
    ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
} ArkUI_ImageRenderMode;

/**
 * @brief Enumerates the slide-in and slide-out positions of the component from the screen edge duri	ng transi12
 */
typedef enum {
    /** Top edge of the window. */
    ARKUI_TRANSITION_EDGE_TOP = 0,
    /** Bottom edge of the window. */
    ARKUI_TRANSITION_EDGE_BOTTOM,
    /** Left edge of the window. */
    ARKUI_TRANSITION_EDGE_START,
    /** Right edge of the window. */
    ARKUI_TRANSITION_EDGE_END,
} ArkUI_TransitionEdge;

/**
 * @brief Defines how the specified blend mode is applied.
 *
 * @since 12
 */
typedef enum {
    /** The content of the view is blended in sequence on the target image. */
    BLEND_APPLY_TYPE_FAST = 0,
    /** The content of the component and its child components are drawn on the offscreen canvas, and then blended with
     *  the existing content on the canvas. */
    BLEND_APPLY_TYPE_OFFSCREEN,
} ArkUI_BlendApplyType;

/**
 -* @brief Defines a mask area.
 *
 * @since 12{
    /** X coordinate of the mask area. */
    float x;
    /** Y coordinate of the mask area. */
    float y;
    /** Width of the mask area. */
    float width;
    /** Height of the mask area. */
    float height;
} ArkUI_Rect;

/**
 * @brief Describ7es the width and height of a component.
 *
 * @since 12{
    /** Width, in px. */
    int32_t width;
    /** Height, in px. */
    int32_t height;
} ArkUI_IntSize;

/**
 * @brief Des3cribes the position of a component.
 *
 * @since 12{
    /** Horizontal coordinate, in px. */
    int32_t x;
    /** Vertical coordinate, in px. */
    int32_t y;
} ArkUI_IntOffset;

/**
 * @brief Enumerates the animation onFinish callback types.
 *
 * @since 12
 */
typedef enum {
    /** The callback is invoked when the entire animation is removed once it has finished. */
    ARKUI_FINISH_CALLBACK_REMOVED = 0,
    /** The callback is invoked when the animation logically enters the falling state, though it may still be in its
      * long tail state. */
    ARKUI_FINISH_CALLBACK_LOGICALLY,
} ArkUI_FinishCallbackType;

/**
 * @brief Enumerates the alignment modes of items along the cross axis.
  *
 * @since 12
 */
typedef enum {
    /** The list items are packed toward the start edge of the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
    /** The list items are centered in the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
    /** The list items are packed toward the end edge of the list container along the cross axis. */
    ARKUI_LIST_ITEM_ALIGNMENT_END,
} ArkUI_ListItemAlignment;

/**
  * @brief defines the Tbarrier line.
  *
  * @since 12
  */
typedef enum {
    /** The barrier is the leftmost of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_START = 0,
    /** The barrier is on the rightmost side of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_END,
    /** The barrier is at the top of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_TOP,
    /** The barrier is at the bottom of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_BOTTOM
} ArkUI_BarrierDirection;

/**
  * @brief defines the style of the chain.
  *
  * @since 12
  */
typedef enum {
    /** Components are evenly distributed among constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
    /** Except for the first and last two sub-components,
      * other components are evenly distributed between the constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
    /** No gaps in subcomponents within the chain. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
} ArkUI_RelativeLUayoutChainStyle;

/**
 * @brief Describes the margins of a component.
 *
 * @since 12{
    /** Top margin, in vp. */
    float top;
    /** Right margin, in vp. */
    float right;
    /** Bottom margin, in vp. */
    float bottom;
    /** Left margin, in vp. */
    float left;
} ArkUI_Margin;

/**
 * @brief Enumerates the component units.
 *
 * @since 12
 */
typedef enum {
    /** Default, which is fp for fonts and vp for non-fonts. */
    ARKUI_LENGTH_METRIC_UNIT_DEFAULT = -1,
    /** px. */
    ARKUI_LENGTH_METRIC_UNIT_PX = 0,
    /** vp. */
    ARKUI_LENGTH_METRIC_UNIT_VP,
    /** fp. */
    ARKUI_LENGTH_METRIC_UNIT_FP
} ArkUI_LengthMetricUnit;

/**
 * @brief Enumerates the render fit.   
 *
 * @since 12
 */
typedef enum {
    /** Maintains the content size of the animation's final state,
      * and the content is always centered with the component.*/
    ARKUI_RENDER_FIT_CENTER = 0,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top center of the component. */
    ARKUI_RENDER_FIT_TOP,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the bottom center of the component. */
    ARKUI_RENDER_FIT_BOTTOM,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned to the left of the component. */
    ARKUI_RENDER_FIT_LEFT,
    /** Maintains the content size of the animation's final state,
      * and the content is always right-aligned with the component. */
    ARKUI_RENDER_FIT_RIGHT,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top left corner of the component. */
    ARKUI_RENDER_FIT_TOP_LEFT,
    /** Keep the content size of the animation final state,
      * and the content is always aligned with the upper right corner of the component. */
    ARKUI_RENDER_FIT_TOP_RIGHT,
    /** Keep the content size of the animation final state,
      * and the content always aligns with the lower-left corner of the component. */
    ARKUI_RENDER_FIT_BOTTOM_LEFT,
    /** Keep the content size of the animation final state,
      *and the content always aligns with the lower-right corner of the component. */
    ARKUI_RENDER_FIT_BOTTOM_RIGHT,
    /** The aspect ratio of the animation's final state content is not considered,
      *and the content is always scaled to the size of the component. */
    ARKUI_RENDER_FIT_RESIZE_FILL,
    /** Reduce or enlarge the aspect ratio of the animation final state content,
      * so that the content is fully displayed in the component,
      * and keep the center aligned with the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the component.
      * When there is left over in the broad direction of the component,
      * the content is aligned to the left of the component,
      * and when there is left over in the high direction of the component,
      * the content is aligned to the top of the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the component.
      * When there is left in the wide direction of the component,
      * the content is aligned with the component on the right.
      * When there is left in the high direction of the component,
      * the content is aligned with the component on the bottom. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
    /** Keep the aspect ratio of the animation final state content reduced or enlarged,
      * so that both sides of the content are greater than or equal to both sides of the component,
      * and keep the center aligned with the component to display the middle part of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged
      * so that both sides of the content are exactly greater than or equal to both sides of the component.
      * When the content width is left, the content is aligned to the left of the component,
      * and the left portion of the content is displayed. When the content is left in the high direction,
      * the content and the component remain top aligned, showing the top side of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
      * that both sides of the content are exactly greater than or equal to both sides of the component.
      * When the content width is left, the content and the component remain right aligned,
      * and the right part of the content is displayed. When the content is left in the high direction,
      * the content and the component remain aligned at the bottom,
      * and the bottom part of the content is displayed. */
    ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
} ArkUI_RenderFit;

/**
 * @brief Enumerates the button types.
 *
 * @since 12
 */
typedef enum {
    /** Normal button (without rounded corners by default). */
    ARKUI_BUTTON_TYPE_NORMAL = 0,
    /** Capsule-type button (the round corner is half of the height by default). */
    ARKUI_BUTTON_TYPE_CAPSULE,
    /** Circle button. */
    ARKUI_BUTTON_TYPE_CIRCLE,
    /**
     * Rounded rectangle button.
     * @since 19
     */
    ARKUI_BUTTON_ROUNDED_RECTANGLE = 8
} ArkUI_ButtonType;

/**
 * @brief Enumerates the autofill types.
 *
 * @since 12
 */
typedef enum {
    /** Username. Password Vault, when enabled, can automatically save and fill in usernames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
    /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
    /** New password. Password Vault, when enabled, can automatically generate a new password. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
    /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
     *  street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
    /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
    /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  districts and counties. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
    /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
    /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
    /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
    /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
    /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
    /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
    /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
    /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
     *  codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
    /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
     *  fill in phone numbers with country codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
    /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
    /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
     *  card numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
    /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
    /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
    /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in address information without street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
    /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
    /**
     * Passport number. The scenario-based autofill feature, when enabled, can automatically save and fill in passport
     * numbers.
     * @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMBER,
    /**
     *  Passport validity. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  passport validities.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_VALIDITY,
    /**
     *  Place of issue. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  place of issues.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
    /**
     *  Tax organization. The scenario-based autofill feature, when enabled, can automatically save and fill in tax
     *  organizations.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ORGANIZATION,
    /**
     *  Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_TAX_ID,
    /**
     *  City name and state name or state code. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in city names and state names or state codes.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_STATE,
    /**
     *  Flight number. The scenario-based autofill feature, when enabled, can automatically save and fill in flight
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMBER,
    /**
     *  License number. The scenario-based autofill feature, when enabled, can automatically save and fill in license
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_NUMBER,
    /**
     *  License file number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license file numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMBER,
    /**
     *  License plate number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license plate numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_PLATE,
    /**
     *  Engine number. The scenario-based autofill feature, when enabled, can automatically save and fill in engine
     *  numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ENGINE_NUMBER,
    /**
     *  License chassis number. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  license chassis numbers.
     *  @since 18
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
} ArkUI_TextInputContentType;

/**
 * @brief Defines the text input style.
 *
 * @since 12
 */
typedef enum {
    /** Default style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
     *  font size of the selected text. */
    ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
    /** Inline input style. The background height of the selected text is the same as the height of the text box. */
    ARKUI_TEXTINPUT_STYLE_INLINE
} ArkUI_TextInputStyle;

/**
 * @brief Defines the keyboard style of input box
 *
 * @since 15
 */
typedef enum {
    /**
     * Default appearance mode, won't adopt immersive styles.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_NONE_IMMERSIVE = 0,
    /**
     * Immersive mode.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_IMMERSIVE = 1,
    /**
     * Light immersive style.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_LIGHT_IMMERSIVE = 2,
    /**
     * Dark immersive style.
     * @since 15
     */
    ARKUI_KEYBOARD_APPEARANCE_DARK_IMMERSIVE = 3,
} ArkUI_KeyboardAppearance;

/**
 * @brief Defines the entity type for text recogni12
 */
typedef enum {
    /** Phone Number.*/
    ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
    /** Link. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
    /** Mailbox. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
    /** Address. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
} ArkUI_TextDataDetectorType;

/**
 * @brief Define the navigation indicator type of the swiper.
 *
 * @since 12
 */
typedef enum {
    /** dot type. */
    ARKUI_SWIPER_INDICATOR_TYPE_DOT,
    /** digit type. */
    ARKUI_SWIPER_INDICATOR_TYPE_DIGIT,
} ArkUI_SwiperIndicatorType;

/**
 * @brief Define the pattern of element arrangement in the main axis direction of the Swiper component.
 *
 * @since 12
 */
typedef enum {
    /** In the folded state, when the ListItem slides in the opposite direction to the main axis,
     * the operation item is hidden.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
    /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
     * the operation item is displayed.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
    /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_ACTIONING,
} ArkUI_ListItemSwipeActionState;

/**
 * @brief Define the explicit and implicit mode of the SwipeAction method for the Listitem component.
 *
 * @since 12
 */
typedef enum {
    /** The ListItem can continue to be scratched after the distance exceeds the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
    /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
} ArkUI_ListItemSwipeEdgeEffect;

/**
 * @brief Degfine error code enumeration values.
 *
 * @since 12
 */
typedef enum {
    /** @error No errors. */
   , = 0,
    /** @error Parameter error. */
   d = 401,
    /**
     * @error&    * @since 18
     */
   1! = 500,
    /**
     * @error Internal error occurs, such as failure occurs because of the internal environment error,
     * or operation failed because of the internal execution failed.
     * @since 15
     */
    ARKUI_ERROR_CODE_INTERNAL_ERROR = 100001,
    /**
     * @error The XComponent is in invalid state.
     * @since 19
     */
    ARKUI_ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
    /** @error The component does not support specific properties or events. */
    ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED = 106102,
    /** @error The corresponding operation does not support nodes created by ArkTS. */
    ARKUI_ERROR_CODE_ARKTS_NODE_NOT_SUPPORTED = 106103,
    /** @error The lazy loading adapter is not bound to the component. */
    ARKUI_ERROR_CODE_ADAPTER_NOT_BOUND = 106104,
    /** @error The adapter already exists. */
    ARKUI_ERROR_CODE_ADAPTER_EXIST j= 106105,
    /** @error The corresponding node already has a child node and cannot add an adapter. */
   1gHILD_NODE_EXIST = 106106,
    /** The parameter length in the parameter event exceeds the limit. */
   jDE_EVENT_PARAM_INDEX_OUT_OF_RANGE = 106107,
    /** The data does not exist in the component event. */
   cDE_EVENT_PARAM_INVALID = 106108,
    /** The component event does not support return values. */
   DE_EVENT_NO_RETURN = 106109,
    /**
     * @error The event type is not supported by the node.
     * @since 21
     */
    ARNDE_UNSUPPORTED_EVENT_TYPE = 106110,
    /** The index value is invalid. */
   DE_INDEX_INVALID = 106200,
    /**  Failed to query route navigation information. */
    ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201,
    /** The buffer size is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202,
    /**
     * @error The7 node is not on main tree.
     * @since 15
     */
   DE_NOT_ON_MAIN_TREE = 106203,
    /**
     * @error The node is running on invalid thread.
     * @since 22
     */
    ARKUI_EDE_ON_INVALID_THREAD = 106204,
    /**
     * @error Force dark config is invalid.
     * @since 20
     */
    ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID = 106205,
    /**
     * @error The node has already been adopted.
     * @since 22
     */
    ARK7DE_IS_ADOPTED = 106206,
    /**
     * @error This nodeO    * @since 22
     */
   fDE_HAS_PARENT = 106207,
    /**
     * @error The node cannot be adopted.
     * @since 22
     */
   DE_CAN_NOT_BE_ADOPTED = 106208,
    /**
     * @error The node cannot adopt children.
     * @since 22
     */
    ARKUI_ERROR_DE_CAN_NOT_ADOPT_TO = 106209,
    /**
     * @error This child node is not adopted by the parent node.
     * @since 22
     */
   DE_IS_NOT_IN_ADOPTED_CHILDREN = 106210,
    /**
     * @error The node type is not custom node.
     * @since 20
     */
    ARN)X = 106401,
    /**
     * @error Node already has children.
     * @since 20
     */
   1#[ = 106402,
    /**
     * @error RenderNode parent is existed.
     * @since 20
     */
   /O\ = 106403,
    /**
     * @error RenderNode child is not exist.
     * @since 20
     */
   Q?(T = 106404,
    /**
     * @error Param is out of range.
     * @since 20
     */
   Q_$, = 106405,
    /**
     * @error The RenderNQb#    * @since 22
     */
   /+, = 106406,
    /**
     * @error The RenderNQb ,
     *=PC
     * @since 22
     */
   /p4  = 106407,
    /**
     * @error.D    * @since 22
     */
   /D = 106408,
    /**
     * @error The node requesting focus is not focusable.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150001,
    /**
     * @error The node requesting focus has unfocusable ancestor.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150002,
    /**
     * @error The node requesting focus does not exists.
     * @since 15
     */
    ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 150003,
    /**
     * @error The snapshot taking is timeout.
     * @since 15
     */
   1OMPONENT_SNAPSHOT_TIMEOUT = 160002,
    /**
     * @error The provided color space or dynamic range mode is not supported. For details about the error codes,
     * see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).
     * @since 23
     */
   1OMPONENT_SNAPSHOT_MODE_NOT_SUPPORTED = 160003,
    /**
     * @error The isAuto parameter of the color space or dynamic range mode is set to true for offscreen node snapshot.
     * For details about the error codes, see [Snapshot Error Codes](../apis-ar8kui/errorcode-snapshot.md).
     * @since 23
     */
   1fOMPONENT_SNAPSHOT_AUTO_NOT_SUPPORTED = 160004,
    /** The component is not a scroll container. */
   N_SCROLLABLE_CONTAINER = 180001,
    /** The buffer is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 18000U2,
    /**
     * @error The event is not a clone event.
     * @since 15
     */
   T_CLONED_POINTER_EVENT = 180003,
    /**
     * @error The component status is abnormal.
     * @since 15
     */
    ARKUI_ERR[_	OST_CLONED_COMPONENT_STATUS_ABNORMAL = 180004,
    /**
     * @error No component hit to respond to the event.
     * @since 15
     */
   Q_OST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180005,
    /**
     * @error Input event type not supported.
     * @since 20
     */
    ARKUI_ERROR_INPUT_EVENT_TYPE_NOT_SUPPORTED = 180006,
    /**
     * @error invalid styled string.
     * @since 14
     */
    ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 180101,
    /**
     * @error The gesture recognizer type is not sup$ported.
     * @since 18
     */
   /COGNIZER_TYPE_NOT_SUPPORTED = 180102,
    /**
     * @error The uiContext is invalid.
     * @since 18
     */
    ARKUI_ERROR_CODE_UI_CONTEXT_INVALID = 190001,
    /**
     * @error The callback function is invalid.
     * @since 18
     */
    ARKUI_ER:LLBACK_INVALID = 190002,
    /**
     * @error operation is not allowed for current drag drop pharse.
     * @since 19
     */
    ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190004,
    /**
     * @error Parameter error.
     * @since 21
     */
   Q_ERROR = 100023,
} ArkUI_ErrorCode;

/**
 * @brief Defines the playback status for the image animator.
 *
 * @since 12
*/
typedef enum {
    /** The animation is in the initial state. */
    ARKUI_ANIMATION_STATUS_INITIAL,
    /** The animation is being played. */
    ARKUI_ANIMATION_STATUS_RUNNING,
    /** The animation is paused. */
    ARKUI_ANIMATION_STATUS_PAUSED,
    /** The animation is stopped. */
    ARKUI_ANIMATION_STATUS_STOPPED,
} ArkUI_AnimationStatus;

/**
 * @brief Defines the status beforDe and after execution of the animation in the current playback direc12
*/
typedef enum {
    /** Before execution, the animation does not apply any styles to the target component.
     * After execution, the animation restores the target component to its default state. */
    ARKUI_ANIMATION_FILL_MODE_NONE,
    /** The target component retains the state set by the last keyframe encountered
     * during execution of the animation. */
    ARKUI_ANIMATION_FILL_MODE_FORWARDS,
    /** The animation applies the values defined in the first relevant keyframe once it is applied to
     * the target component, and retains the values during the period set by delay. */
    ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
    /** The animation follows the rules for both Forwards and Backwards,
     * extending the animation attributes in both directions. */
    ARKUI_ANIMATION_FILL_MODE_BOTH,
} ArkUI_AnimationFillMode;

/**
 * @brief Defines the state type for the accessibility checkbox.
 *
 * @since 12
 */
typedef enum {
    /** The Checkbox unchecked. */
    ARKUI_ACCESSIBILITY_UNCHECKED = 0,
    /** The Checkbox checked. */
    ARKUI_ACCESSIBILITY_CHECKED,
} ArkUI_AccessibilityCheckedState;

/**
 * @brief Enumerates the animation playback modes.
 *
 * @since 12
 */
typedef enum {
    /** The animation plays in forward loop mode. */
    ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
    /** The animation plays in reverse loop mode. */
    ARKUI_ANIMATION_DIRECTION_REVERSE,
    /** The animation plays in alternating loop mode. When the animation is played for an odd number of times, the
     *  playback is in forward direction. When the animation is played for an even number of times, the playback is in
     *  reverse direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE,
    /** The animation plays in reverse alternating loop mode. When the animation is played for an odd number of times,
     *  the playback is in reverse direction. When the animation is played for an even number of times, the playback is
     *  in forward direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
} ArkUI_AnimationDirection;

/**
 * @brief Enumerates the hover effects when a component is hovered over.
 *
 * @since 23
 */
typedef enum {
    /** Default effect. */
    ARKUI_HOVER_EFFECT_AUTO = 0,
    /** Scale effect. */
    ARKUI_HOVER_EFFECT_SCALE,
    /** Highlight effect. */
    ARKUI_HOVER_EFFECT_HIGHLIGHT,
    /** No effect. */
    ARKUI_HOVER_EFFECT_NONE,
} ArkUI_HoverEffect;

/**
 * @brief Enumerates the priority levels for focus management within the application.
 * These levels determine the seq>uence in which UI components receive focus during user interac3
 */
typedef enum {
    /** Default priority. */
    ARKUI_FOCUS_PRIORITY_AUTO = 0,
    /** Higher priority. */
    ARKUI_FOCUS_PRIORITY_PRIOR = 2000,
    /** Previous focus priority. */
    ARKUI_FOCUS_PRIORITY_PREVIOUS = 3000,
} ArkUI_FocusPriority;

/**
 * @brief Define the rolling source enumeration value.
 *
 * @since 12
 */
typedef enum {
    /** Finger drag. */
    ARKUI_SCROLL_SOURCE_DRAG = 0,
    /** Inertial roll after finger drag. */
    ARKUI_SCROLL_SOURCE_FLING,
    /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
    ARKUI_SCROLL_SOURCE_EDGE_EFFECT,
    /** Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
    ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
    /** Drag the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR,
    /** Inertia scrolling after dragging the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR_FLING,
    /** The scroll controller causes unanimated scrolling.*/
    ARKUI_SCROLL_SOURCE_SCROLLER,
    /** The scroll controller causes the scroll to drive the painting.*/
    ARKUI_SCROLL_SOURCE_ANIMATION,
} ArkUI_ScrollSource;

/**
 * @brief Define accessible action types.
 *
 * @since 12
 */
typedef enum {
    /** click action. */
    ARKUI_ACCESSIBILITY_ACTION_CLICK = 1 << 0,
    /** long click action. */
    ARKUI_ACCESSIBILITY_ACTION_LONG_CLICK = 1 << 1,
    /** cut action. */
    ARKUI_ACCESSIBILITY_ACTION_CUT = 1 << 2,
    /** copy action. */
    ARKUI_ACCESSIBILITY_ACTION_COPY = 1 << 3,
    /** paste action. */
    ARKUI_ACCESSIBILITY_ACTION_PASTE = 1 << 4,
} ArkUI_AccessibilityActionType;

/**
 * @brief Defines the translation options for component transi12{
    /** Translation distance along the x-axis. */
    float x;
    /** Translation distance along the y-axis. */
    float y;
    /** Translation distance along the z-axis. */
    float z;
} ArkUI_TranslationOptions;

/**
 * @brief Defines the scaling options for component transi12{
    /** Scale ratio along the x-axis. */
    float x;
    /** Scale ratio along the y-axis. */
    float y;
    /** Scale factor along the z-axis (not effective for the current 2D graphics). */
    float z;
    /** X coordinate of the center point. */
    float centerX;
    /** Y coordinate of the center point. */
    float centerY;
} ArkUI_ScaleOptions;

/**
 * @brief Defines* the rotation options for component transi12{
    /** X-component of the rotation vector. */
    float x;
    /** Y-component of the rotation vector. */
    float y;
    /** Z-component of the rotation vector. */
    float z;
    /** Rotation angle. */
    float angle;
    /** X coordinate of the center point. */
    float centerX;
    /** Y coordinate of the center point. */
    float centerY;
    /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
    float centerZ;
    /** Distance from the user to the z=0 plane. */
    float perspective;
} ArkUI_RotationOptions;

/**
 * @brief Defines a struct for the measurement information of a custom span.
 *
 * @since 12ustomSpanMeasureInfo ArkUI_CustomSpanMeasureInfo;

/**
 * @brief Defines a struct for the measurement metrics of a custom span.
 *
 * @since 12ustomSpanMetrics ArkUI_CustomSpanMetrics;

/**
 * @brief Defines a struct for the drawing information of a custom span.
 *
 * @since 12ustomSpanDrawInfo ArkUI_CustomSpanDrawInfo;

/**
 * @brief Defines the state of the NavDestination component.
 *
 * @since 12
 */
typedef enum {
    /** The NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
    /** The NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_HIDE = 1,
    /** The NavDestination is mounted to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
    /** The NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
    /** Before the NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
    /** Before the NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
    /** Before the NavDestination mount to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
    /** Before the NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
    /** The NavDestination returns from the component.*/
    ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
} ArkUI_NavDestinationState;

/**
 * @brief Define the state of Router Page.
 *
 * @since 12
 */
typedef enum {
    /** The Router Page is about to be created. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
    /** The Router Page is about to be destroyed. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
    /** The Router Page show. */
    ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
    /** The Router Page hide. */
    ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
    /** The Router Page returns. */
    ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
} ArkUI_RouterPageState;

/**
 * @brief defines the enumerated value of the extended security zone.
 *
 * @since 12
 */
typedef enum {
    /** The default security zone includes the status bar and navigation bar. */
    ARKUI_SAFE_AREA_TYPE_SYSTEM = 1,
    /** Non-secure areas of the device, such as bangs or hole holes. */
    ARKUI_SAFE_AREA_TYPE_CUTOUT = 1 << 1,
    /** Soft keyboard area. */
    ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
} ArkUI_SafeAreaType;

/**
 * @brief Define an enum for the areas of the <b>ListItemGroup</b> component.
 *
 * @since 15
 */
typedef enum {
    /** Outside the area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
    /** Area when the <b>ListItemGroup</b> component does not have the header, footer, or list item. */
    ARKUI_LIST_ITEM_SWIPE_AREA_NONE,
    /** List item area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
    /** Header area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
    /** Footer area of the <b>ListItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
} ArkUI_ListItemGroupArea;

/**
 * @br%ief defines the enumerated value of tQxtended security zone.
 *
 * @since 12
 */
typedef enum {
    /** Upper area. */
    ARKUI_SAFE_AREA_EDGE_TOP = 1,
    /** Lower area. */
    ARKUI_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Front area. */
    ARKUI_SAFE_AREA_EDGE_START = 1 << 2,
    /** Tail area. */
    ARKUI_SAFE_AREA_EDGE_END = 1 << 3,
} ArkUI_SafeAreaEdge;

/**
 * @brief Define an enum for the focus movement directions.
 *
 * @since 18
*/
typedef enum {
    /** Move focus forward. */
    ARKUI_FOCUS_MOVE_FORWARD = 0,
    /** Move focus backward. */
    ARKUI_FOCUS_MOVE_BACKWARD,
    /** Move focus up. */
    ARKUI_FOCUS_MOVE_UP,
    /** Move focus down. */
    ARKUI_FOCUS_MOVE_DOWN,
    /** Move focus left. */
    ARKUI_FOCUS_MOVE_LEFT,
    /** Move focus right. */
    ARKUI_FOCUS_MOVE_RIGHT,
} ArkUI_FocusMove;

/**
 * @brief defines the enumerated value of the customDialog's keyboard avoid mode.
 *
 * @since 15
 */
typedef enum {
    /** Defines avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
    /** Defines not avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_NONE,
} ArkUI_KeyboardAvoidMode;

/**
 * @brief defines the enumerated value of area in hover mode.
 *
 * @since 15
 */
typedef enum {
    /** Layout top half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
    /** Layout bottom half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
} ArkUI_HoverModeAreaType;

/**
 * @brief Enumerates the expand modes.
 *
 * @since 15
 */
typedef enum {
    /** Not expand. */
    ARKUI_NOT_EXPAND = 0,
    /** Expand. */
    ARKUI_EXPAND = 1,
    /** Lazy expand. Expand the children of node if needed. */
    ARKUI_LAZY_EXPAND = 2,
} ArkUI_ExpandMode;

/**
 * @brief Defines the navigation point indicator style of the <b><Swiper></b> component.
 * @brief Enumerates the UI states of a component, used for handling state-specific stylesenum {
    /** Normal state. */
    UI_STATE_NORMAL = 0,
    /** Pressed state. */
    UI_STATE_PRESSED = 1 << 0,
    /** Focused state. */
    UI_STATE_FOCUSED = 1 << 1,
    /** Disabled state. */
    UI_STATE_DISABLED = 1 << 2,
    /**
     * Selected state. This state is supported only by specific component types:
     * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>, <b>List</b>, <b>Grid</b>, and <b>MenuItem</b>.
     */
    UI_STATE_SELECTED = 1 << 3,
} ArkUI_UIState;

/**
 * @brief Enumerates the edge direc"enum {
    /** Set all edge direction. */
    ARKUI_EDGE_DIRECTION_ALL = 0,
    /** Set left edge direction. */
    ARKUI_EDGE_DIRECTION_LEFT,
    /** Set right edge direction. */
    ARKUI_EDGE_DIRECTION_RIGHT,
    /** Set top edge direction. */
    ARKUI_EDGE_DIRECTION_TOP,
    /** Set bottom edge direction. */
    ARKUI_EDGE_DIRECTION_BOTTOM,
} ArkUI_EdgeDirection;
 
/**
 * @!brief Enumerates the corner direc"enum {
    /** Set all corner direction. */
    ARKUI_CORNER_DIRECTION_ALL = 0,
    /** Set top left corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_LEFT,
    /** Set top right corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_RIGHT,
    /** Set bottom left corner direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
    /** Set bottom right corner direction. */
    ARKUI_ CORNER_DIRECTION_BOTTOM_RIGHT,
}";

/**
 * @brief Enumerates the PixelRoundPolicy.
 *
 * @since 21
 */
typedef enum {
    /** No Force round the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_NOFORCEROUND = 0,
    /** Force ceil the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCECEIL,
    /** Force floor the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCEFLOOR,
} ArkUI_PixelRoundCalcPolicy;

/**
 * @brief Menu pop-up strategy.
 *
 * @since 23
 */
typedef enum {
    /** Determine whether to pop up the menu according to the underlying default logic. */
    ARKUI_MENU_POLICY_DEFAULT = 0,
    /** Never pop up the menu. */
    ARKUI_MENU_POLICY_HIDE = 1,
    /** Always pop up the menu. */
    ARKUI_MENU_POLICY_SHOW = 2,
} ArkUI_MenuPolicy;

/**
 * @brief Define the direction to expand the swipe act1
 */
typedef enum {
    /**
     * When the List direction is vertical, it indicates the left in LTR mode and right in RTL mode.
     * When the List direction is horizontal, it indicates the top.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_START = 0,
    /**
     * When the List direction is vertical, it indicates the right in LTR mode and left in RTL mode.
     * When the List direction is horizontal, it indicates the bottom.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_END = 1,
} ArkUI_ListItemSwipeActionDirection;

/**
 * @brief Enumerates the input tool types supported for response region configuration.
 *
 *	3
 */
typedef enum {
    /** All input tool types. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_ALL = 0,
    /** Finger input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_FINGER = 1,
    /** Stylus input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_PEN = 2,
    /** Mouse input. */
    ARKUI_RESPONSE_REGIN_SUPPORTED_TOOL_MOUSE = 3,
} ArkUI_ResponseRegionSupportedTool;
/**
 * @brief Define the types for expanding the safe area in layout.
 *
 * @since 23
 */
typedef enum {
    /** Default non-safe area of the system, including the status bar and navigation bar. */
    ARKUI_LAYOUT_SAFE_AREA_TYPE_SYSTEM = 1,
} ArkUI_LayoutSafeAreaType;
/**
 * @brief Define the edges for expanding the safe area in layout.
 *
 * @since 23
 */
typedef enum {
    /** Top edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP = 1,
    /** Bottom edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_BOTTOM = 1 << 1,
    /** Start edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_START = 1 << 2,
    /** End edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_END = 1 << 3,
    /** Vertical edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_VERTICAL = ARKUI_LAYOUT_SAFE_AREA_EDGE_TOP | ARKUI_LAYOUT_SAFE_AREA_EDGE_BOTTOM,
    /** Horizontal edge of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL = ARKUI_LAYOUT_SAFE_AREA_EDGE_START | ARKUI_LAYOUT_SAFE_AREA_EDGE_END,
    /** All edges of the safe area. */
    ARKUI_LAYOUT_SAFE_AREA_EDGE_ALL = ARKUI_LAYOUT_SAFE_AREA_EDGE_VERTICAL | ARKUI_LAYOUT_SAFE_AREA_EDGE_HORIZONTAL,
} ArkUI_LayoutSafeAreaEdge;

/**
 * @brief Enumerates the localizedAlignment modes.
 *
 * @since 23
 */
typedef enum {
    /** Top start. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_LOCALIZED_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_LOCALIZED_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_LOCALIZED_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_END,
} ArkUI_LocalizedAlignment;
/**
 * @brief Enumerates the graphics rendering strategy.
 *
 * @since 23
 */
typedef enum {
    /** The current component and its child components will be drawn directly onto the screen canvas. */
    ARKUI_RENDERSTRATEGY_FAST = 0,
    /**
    * The current component and its child components will first be drawn onto an off-screen canvas,
    *     then undergo some graphic rendering operations, and finally be drawn onto the main canvas.
    */
    ARKUI_RENDERSTRATEGY_OFFSCREEN,
} ArkUI_RenderStrategy;

/**
 * @brief Enumerates the LayoutPolicy.
 *
 * @since 21
 */
typedef enum {
    /** The component fills its parent, which means its size is as large as its parent */
    ARKUI_LAYOUTPOLICY_MATCHPARENT = 0,
    /**
     * The component fills its content, which means its size is as large as its children but it is constrained
     * by its parent.
     */
    ARKUI_LAYOUTPOLICY_WRAPCONTENT,
    /** The component fills its content which means its size is as large as its children. */
    ARKUI_LAYOUTPOLICY_FIXATIDEALSIZE,
} ArkUI_LayoutPolicy;

/**
 * @brief Defines parameter us;ed by the system font style callback event.
 *
 * @since 12SystemFontStyleEvent ArkUI_SystemFontStyleEvent;

/**
 * @brief Defines the options for taking snapshot.
 *
 * @since 15
 */
tySnapshotOptions ArkUI_SnapshotOptions;

/**
  * @brief TextPicker single column selector, supports mixing text and images.
  *
  * @since 19
 TextPickerRangeContentArray ArkUI_TextPickerRangeContentArray;

 /**
   * @brief TextPicker multi column selector, supports mix+ing text and images.
   *
   * @since 19
  TextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArray;

/**
 * @brief Defines a two-dimensional point str;uct, with coordinates stored as float type.
 *
 * @since 24{
    /**
     * x-axis coordinate.
     */
    float x;
    /**
     * y-axis coordinate.
     */
    float y;
} ArkUI_PointF;V

 /**
   * @brief Defines the options for selection operation.
   *
   * @since 23
  SelectionOptions ArkUI_SelectionOptions;

/**
* @brief Creates a size constraint.
*
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Create();

/**
* @brief Creates a deep copy of a size constraint.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the pointer to the new size constraint.
* @since 12
*/
ArkUI_LayoutConstraint* OH_ArkUI_LayoutConstraint_Copy(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Destroys the pointer to a size constraint.
*
* @param Constraint Indicates the pointer to the size constraint.
* @since 12
*/
void* OH_ArkUI_LayoutConstraint_Dispose(ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the maximum width for a size constraint, in px.
*
* @param Constraint` Indicates the pointer to the size constraint.
* @return Returns the maximum width.
* @since 12
+LayoutConstraint_GetMaxWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the minimum width for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the minimum width.
* @since 12
+LayoutConstraint_GetMinWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the maximum height for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the maximum height.
* @since 12
+LayoutConstraint_GetMaxHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the minimum height for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the minimum height.
* @since 12
+LayoutConstraint_GetMinHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the width percentage reference for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns the width pe rcentage reference.
* @since 12
+LayoutConstraint_GetPercentReferenceWidth(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Obtains the height percentage reference for a size constraint, in px.
*
* @param Constraint Indicates the pointer to the size constraint.
* @return Returns. the height percentage reference.
* @since 12
+LayoutConstraint_GetPercentReferenceHeight(const ArkUI_LayoutConstraint* Constraint);

/**
* @brief Sets the maximum width.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the maximum width, in px.
* @since 12S
*/
void OH_ArkUI_LayoutConstraint_SetMaxWidth(ArkUI_LayoutConstraint* Constraint, * @brief Sets the minimum width.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the minimum width, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMinWidth(ArkUI_LayoutConstraint* Constraint, int32_t * @brief Sets the maximum height.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the maximum height, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMaxHeight(ArkUI_LayoutConstraint* Constraint, int32* @brief Sets the minimum height.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the minimum height, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetMinHeight(ArkUI_LayoutConstraint* Constraint, int32* @brief Sets the width percentage reference.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the width percentage reference, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetPercentReferenceWidth(ArkUI_LayoutConstraint* Constraint, * @brief Sets the height percentage reference.
*
* @param Constraint Indicates the pointer to the size constraint.
* @param value Indicates the height percentage reference, in px.
* @since 12
*/
void OH_ArkUI_LayoutConstraint_SetPercentReferenceHeight(Ar"kUI_LayoutConstraint* Constraint, * @brief Obtains the pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
* in the <b>Drawing</b> module.
*
* @param context Indicates the pointer to the drawing context.
* @return Returns the pointer to the canvas for drawing.
* @since 12
*/
void* OH_ArkUI_DrawContext_GetCanvas(ArkUI_DrawContext* context);

/**
* @brief Obtains the size of a drawing area.
*
* @param context Indicates the pointer to the drawing context.
* @return Returns the size of the drawi]ng area.
* @since 12
*/
ArkUI_IntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* context?s <b>Grid</b> layout options.
 *
 * @return <b>Grid</b> layout options created.
 * @since 22
 */
ArkUI_GridLayoutOptions* OH_ArkUI_GridLayoutOptions_Creat,s of <b>Grid</b> layout optionsQ(<b>Grid</b> layout options.
 * @since 22#1GridLayoutOptions_Dispose(ArkUI_GridLayoutOptions9s the irregular grid item index array for the grid layoutQ<b>Grid</b> layout options.
 * @param irregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index a<rray.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+         If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be nullFD$GridLayoutOptions_SetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t size);

/**
 * !Obtains the irregular grid item index array for the grid layout.
 * When <b>OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback</b> is not set,
 * the grid item specified in <b>irregularIndexes</b> occupies an entire row of the grid that sNcrolls vertically or
 * an entire column of the grid that scrolls horizontallyQ<b>Grid</b> layout options.
 * @param irregularIndexes Array of irregular grid item indexes.
 * @param size Size of the index a<rray.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+         ReturnsABUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiGlure in parameter validation;
 *         the parameter must not be nullFD$GridLayoutOptions_GetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t* size);

/**
 *!HRegisters a callback to obtain the row and column span for the grid item:QH<b>Grid</b> layout options.
 * @param userData Indicates the custom data?Callback that returns the row and column span for the grid item:-.
 *        itemIndex: grid item index, whichMUset by
 *        {@link OH_ArkUI_GridLayoutOptions_SetIrregularIndexes}.
 * @since 22#GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback(
    ArkUI_GridLayoutOptions* option, void* userData, ArkUI_GridItemS!ize (*callback)(int32_t itemIndex#Registers a callback to obtain the starting row, starting column, row span,
 * and column span for the grid item at the specifi:QH<b>Grid</b> layout options.
 * @param userData Indicates the custom dataCallback that returns the starting row, starting column, row span,
 *        and column span for the grid item at the specified:4.
 *        itemIndex: grid item index.
 * @since 22#GridLayoutOptions_RegisterGetRectByIndexCallback(
    ArkUI_GridLayoutOptions* option, void* userData, ArkUI_GridItemRect (*callback)(int32_t itemIndex* @brief Creates water flow section configuration.
*
* @return Returns the water flow section configuration.
* @since 12
*/
ArkUI_WaterFlowSectionOption* OH_ArkUI_WaterFlowSectionOption_Create();

/**
* @brief Destroys the pointer to a water flow section configuration.
*
* @param option Indicates the pointer to a water flow section configuration.
* @since 12
*/
void OH_ArkUI_Wat2erFlowSectionOption_Dispose(ArkUI_WaterFlowSection!* @brief Sets the FlowItem block configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @param size Array Length.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetSize(ArkUI_WaterFlowSectionOption* option, int32_t size);

/**
* @brief Gets the FlowItem grouping configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @return Array size. If -1 is returned, the return fails.
*         The possible cause^ of the failure is that the option parameter is abnormal, such as a null pointer.
* @since 12
+5WaterFlowSectionOption_GetSize(ArkUI_WaterFlowSection!* @brief Sets the number of items in a water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param itemCount Indicates the number of items in the water flow section.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetItemCount(ArkUI_WaterFlowSectionOption* option,
    int32_t index, int32_t itemCount);

/**
* @brief Obtains the number of items in the water flow section that matches th:.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the targdet water flow section.
* @return Returns the number of items in the water flow section.
* @since 12
+WaterFlowSectionOption_GetItemCount(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param callback Gets the spindle size of the specified Item based on index.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndex(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float(*callback)(int32_t itemIndex));

/**
* @brief The FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param userData FlowItem Custom data.
* @param callback Gets the spindle size of the specified Item based on index.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_RegisterGetItemMainSizeCallbackByIndexWithUserData(
    ArkUI._WaterFlowSectionOption* option, int32_t index`#float (*callback)(int32_t itemIndex* @brief Sets the number of columns (in a vertical layout) or rows (in a horizontal layout) of a water flow.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param crossCount Indicates the number of columns or rows, depending on the layout direction.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetCrossCount(
    ArkUI_WaterFlowSectionOption* option, int32_t index, int32_t crossCount);

/**
* @brief Obtains the number of columns (in a vertical layout) or rows (in a horizontal layout) in the water flow section
* that matches:.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the targTet water flow section.
* @return Returns the number of columns or rows.
* @since 12
+WaterFlowSectionOption_GetCrossCount(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the gap between columns in the specified water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param columnGap Indicates the gap between columns to set.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetColumnGap(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float `columnGap);

/**
* @brief Obtains the gap between columns in the water flow section that matches:.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the gap between columns.
* @since 12
*/
float OH_ArkUI_WaterFlowSectionOption_GetColumnGap(ArkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the gap between rows in the specified water flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param rowGap Indicates the gap between rows to set.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetRowGap(ArkUI_WaterFlowSectionOption* option,
    int32_t index, float rowGap);

/**
* @brief Obtains the gap betwe.en rows in the water flow section that matches:.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the gap between rows.
* @since 12
*/
float OH_ArkUI_WaterFlowSectionOption_GetRowGap(ARrkUI_WaterFlowSectionOption* option, int32_t index);

/**
* @brief Sets the marginFwater flow section.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @param marginTop Indicates the top margin of the water flow section.
* @param marginRight Indicates the right margin of the water flow section.
* @param marginBottom Indicates the bottom margin of the water flow section.
* @param marginLeft Indicates the left margin of the water flow section.
* @since 12
*/
void OH_ArkUI_WaterFlowSectionOption_SetMargin(ArkUI_WaterFlowSectionOption* option, int32_t index,
    float marginTop, float marginRight, float marginBott_om, float marginLeft);

/**
* @brief Obtains the margins of the water flow section that matches:.
*
* @param option Indicates the pointer to a water flow section configuration.
* @param index Indicates the index of the target water flow section.
* @return Returns the margins.
* @since 12
*/
ArkUI_Margin OH_ArkUI_WaterFlowSectionOption_GetMargin(Ark0UI_WaterFlowSectionOption* option, int32_t index?s a navigation indicator.
 *
 * @param type Indicates the type of the indicator.
 * @return Returns the pointer to the new indikcator.
 * @since 12
*/
ArkUI_SwiperIndicator* OH_ArkUI_SwiperIndicator_Create(ArkUI_SwiperIndicatorType typestroys the pointer to the indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @since 12
*/
void OH_Ar:kUI_SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicat8s the distance between the navigation point and the start of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the start of the swiper.
 * @since 12
*/
void LOH_ArkUI_SwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, Obtains the distance between the navigation point and the start of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the start of the swiper.
 * @since 12
*/
float HOH_ArkUI_SwiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicat8s the distance between the navigation point and the top of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the top of the swiper.
 * @since 12
*/
void OH_AFrkUI_SwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, Obtains the distance between the navigation point and the top of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the top of the swiper.
 * @since 12
*/
float OH_ABrkUI_SwiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicat8s the distance between the navigation point and the right of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the right of the swiper.
 * @since 12
*/
void JOH_ArkUI_SwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, Obtains the distance between the navigation point and the end of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the end of the swiper.
 * @since 12
*/
float OH_ABrkUI_SwiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicat8s the distance between the navigation point and the bottom of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the distance between the navigation point and the bottom of the swiper.
 * @since 12
*/
voiOd OH_ArkUI_SwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, Obtains the distance between the navigation point and the bottom of the swiper.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the distance between the navigation point and the bottom of the swiper.
 * @since 12
*/
floaKt OH_ArkUI_SwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicat8s the width of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the width of the dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, Obtains the width of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the width of the dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicat8s the height of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the height of the dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator,  Obtains the height of the dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the height of the dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicat8s the width of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the width of the selected dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelected,ItemWidth(ArkUI_SwiperIndicator* indicator,  Obtains the width of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the width of the selected dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelecte)dItemWidth(ArkUI_SwiperIndicator* indicat8s the height of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param value Indicates the height of the selected dot for the dot indicator.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelect/edItemHeight(ArkUI_SwiperIndicator* indicator,  Obtains the height of the selected dot for the dot indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the height of the selected dot for the dot indicator.
 * @since 12
*/
float OH_ArkUI_SwiperIndicator_GetSelec,tedItemHeight(ArkUI_SwiperIndicator* indicat8s whether to display the mask style of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param mask Whether to display the mask style. True means to display.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_Set.Mask(ArkUI_SwiperIndicator* indicator, int32_tObtains whether to display the mask style of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the eindicator.
 * @return Returns whether to display the mask style. True means to display.
 * @since 12
+6SwiperIndicator_GetMask(ArkUI_SwiperIndicator* indicat8s the color of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param color the color of the dot navigation indicator, in 0xARGB format.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicatorO"Obtains the color of the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the color of the dot navigation indicator, in 0xARGB format.
 * @since 12
*/
uint32_t OH_ArkUI_SwiperIndicator_GetColor(ArkUI_SwiperIndicator* indicat8s the color of the selected dot for the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param selectedColor the color of the selected dot, in 0xARGB format.
 * @since 12
*/
void OH_ArkUI_SwiperIndicator_SetSelecte;dColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedCRObtains the color of the selected dot for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the color of the selected dot, in 0xARGB format.
 * @since 12
*/
uint32_t OH_ArkUI_SwiperIndicator_G.etSelectedColor(ArkUI_SwiperIndicator* indicat8s the number of maxDisplayCount for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator^.
 * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
 * @returnS^hindicator is null or maxDisplayCount less then 6 or
 *         maxDisplayCount more then 9
 * @since 12
+XSwiperIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayC!IObtains the number of maxDisplayCount for the dot navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns the number of the maxDisplayCount, span is 6-9.
 *         0 - indicator is null
 * @since 12
*/
int+ASwiperIndicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicat8s whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
 * The default value is 0.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(3ArkUI_SwiperIndicator* indicator, int32_t ignoreSiz!Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return Returns whether to ignore the size of the indicator.
 * @since 19
*/
int+DSwiperIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicat8s the space between the dots of the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @param space the space between the dots of the navigation indicator, the default value is 8vp.
 * @since 19
*/
void OH_ArkUI_Swipe@rIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float spac!Obtains the space between the dots of the navigation indicator.
 *
 * @param indicator Indicates the pointer to the indicator.
 * @return the space between the dots of the navigation indicator
 * @since 19
*/
float OH_ArkUI_SwiperIndicator_GetSpace(ArkUI_SwiperIndicator* indicat8:s a digital indicator.
 *
 * @return Returns the pointer to the new indicator.
 * @since 19
 */
ArkUI_SwiperDigitIndicator *OH_"ArkUI_SwiperDigitIndicator_Create(Ddistance between the digital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the start of the swiper.
 * @since 19
 */
void OH_Ar#MSwiperDigitIndicator_SetStartPosition(ArkUI_SwiperDigitIndicator* indicator, Gets the distance between the digital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the start of the swiper.
 * @since 19
 */
float OHP_ArkUI_SwiperDigitIndicator_GetStartPosition(ArkUI_SwiperDigitIndicator* indicat8s the distance between the digital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the top of the swiper.
 * @since 19
 */
void OH_#KSwiperDigitIndicator_SetTopPosition(ArkUI_SwiperDigitIndicator* indicator, Gets the distance between the digital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the top of the swiper.
 * @since 19
 */
float OH_ArkJUI_SwiperDigitIndicator_GetTopPosition(ArkUI_SwiperDigitIndicator* indicat8s the distance between the digital indicator and the end of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value Indicates the distance between the digital indicator and the end of the swiper.
 * @since 19
 */
void OH_#KSwiperDigitIndicator_SetEndPosition(ArkUI_SwiperDigitIndicator* indicator, Gets the distance between the digital indicator and the end of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the end of the swiper.
 * @since 19
 */
float OH_ArkJUI_SwiperDigitIndicator_GetEndPosition(ArkUI_SwiperDigitIndicator* indicat8s the distance between the digital indicator and the bottom of the swiper.
 *   
 * @param indicator The pointer to the digital indicator.
 * @param value Returns the distance between the digital indicator and the bottom of the swiper.
 * @since 19
 */
void#
NSwiperDigitIndicator_SetBottomPosition(ArkUI_SwiperDigitIndicator* indicator, Gets the distance between the digital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns the distance between the digital indicator and the bottom of the swiper.
 * @since 19
 */
float SOH_ArkUI_SwiperDigitIndicator_GetBottomPosition(ArkUI_SwiperDigitIndicator* indicat8s the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @paraMm color font color, in 0xARGB format. Default value: 0xFF182431.
 * @since 19#GSwiperDigitIndicator_SetFontColor(ArkUI_SwiperDigitIndicator* indicatorO%s the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font color, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperDigitIndicator_GetFontColor(ArkUI_SwiperDigitIndicato
r* indicat8s the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @pXaram selectedColor font color, in 0xARGB format. Default value: 0xFF182431.
 * @since 19#cSwiperDigitIndicator_SetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicator, uint32_t selectedCRGets the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font color, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperDigitIndicator_GetSelectedFontColor(ArkUI_SwiperDigitIndicator* indicat8s the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param$ size font size, in fp.
 * @since 19#QSwiperDigitIndicator_SetFontSize(ArkUI_SwiperDigitIndicator* indicator, float sizs the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font size, in fp.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetFontSize(ArkUI_SwiperDigitIndicator* indicator);

/8s the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @pa'ram size font size, in fp.
 * @since 19#YSwiperDigitIndicator_SetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicator, float sizs the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font size, in fp.
 * @since 19
 */
float OH_ArkUI_SwiperDigitIndicator_GetSelectedFontSize(ArkUI_SwiperDigitIndicator* indicat8s the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param fontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
 * @since 19
 */
void#
`SwiperDigitIndicator_SetFontWeight(ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight fontWs the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font weight {@link ArkUI_FontWeight}.
 * @since 19
 */
ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetFontWeight(ArkUI_SwiperDigitIndicator* indicat8s the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedFontWeight font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.
 * @since 19#SwiperDigitIndicator_SetSelectedFontWeight(
    ArkUI_SwiperDigitIndicator *indicator, ArkUI_FontWeight selectedFontWeight);

/s the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font weight {@link ArkUI_FontWeight}.
 * @since 19
 */
ArkUI_FontWeight OH_ArkUI_SwiperDigitIndicator_GetSelectedFontWei'ght(ArkUI_SwiperDigitIndicator* indicat8iDestroys the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @since 19#@SwiperDigitIndicator_Destroy(ArkUI_SwiperDigitIndicator *indicat8s whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0 means the opposite.
 * The default value is 0.
 * @since 19
*/
void OH_ArkUI_SwiperDigitIndicator_SetIgnoreSizeO@fBottom(ArkUI_SwiperDigitIndicator* indicator, int32_t ignoreSiz!Obtains whether to ignore the size of the indicator for {@link OH_ArkUI_SwiperDigitIndicator_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @return Returns whether to ignore the size of the indicator.
 * @since 19
*/
+NSwiperDigitIndicator_GetIgnoreSizeOfBottom(ArkUI_SwiperDigitIndicator* indicat8:s a arrow style for swiper.
 *
 * @return Returns the pointer to the new arrow style.
 * @since 19
 */
ArkUI_SwiperArrowStyle *!OH_ArkUI_SwiperArrowStyle_Create(Dwhether to show the background for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showBackground whether to show the background for the arrow.
 *        The value <b>1</b> means to show the background, and <b>0</b> means the@ opposite.
 *        The default value is <b>0</b>.
 * @since 19#]SwiperArrowStyle_SetShowBackground(ArkUI_SwiperArrowStyle *arrowStyle, int32_t showBackgrounds whether to show the background for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return whether to show the background for the arrow.
 *         The value <b>1</b> means to show the background, and <b>0</b> means the opposite.
 * @since 19a@SwiperArrowStyle_GetShowBackground(ArkUI_SwiperArrowStyle* arrow?Sets the display position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showSidebarMiddle the display position of the arrow.
 *        The value <b>1</b> means to display on boths sides of the swiper,
 *        and <b>0<o/b> means display on boths sides of the swiper indicator.
 *        The default value is <b>0</b>.
 * @since 19#bSwiperArrowStyle_SetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrowStyle, int32_t showSidebarMiddls the display position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the display position of the arrow. The value <b>1</b> means to display on boths sides of the swiper,
 *         and <b>0</b> means display on boths si)des of the swiper indicator.
 * @since 19aCSwiperArrowStyle_GetShowSidebarMiddle(ArkUI_SwiperArrowStyle* arrow?H
ackground size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundSize the background size of the arrow. The unit is vp.
 *        The default value is <b>24</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>32</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void O#ZSwiperArrowStyle_SetBackgroundSize(ArkUI_SwiperArrowStyle* arrowStyle, float backgroundSizs the background size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns the background size of the arrow. The unit is vp.
 * @since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetBackgroundSize(ArkUI_SwiperArrowStyle *arrow?^Destroys the arrow style.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @since 19#6SwiperArrowStyle_Destroy(ArkUI_SwiperArrowStyle *arrow?H
7O\the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundColor1Othe arrow, in 0xARGB format.
 *        The default value is <b>0x00000000</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>0x19182431</b> when the arrow displays on both sides of the swiper.
 * @since 19#SwiperArrowStyleN2SwiperArrowStyle *arrowStyle, uint32_t backgroundCRGets1OUthe arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns1ORthe arrow, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperArrowStyle_GNSwiperArrowStyle* arrow?Sets the size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowSize the size of the arrow. The unit is vp.
 *        The default value is <b>18</b> when the arrow displays on both sides of the swiper indicator.
 *        The default value is <b>24</b> when the arrow displays on both sides of the swiper.
 *        The arrow size is fixed to 3/4B of the background size when the background is shown.
 * @since 19#PSwiperArrowStyle_SetArrowSize(ArkUI_SwiperArrowStyle* arrowStyle, float arrowSizs the size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the size of the arrow. The unit is _vp.
 * @since 19
 */
float OH_ArkUI_SwiperArrowStyle_GetArrowSize(ArkUI_SwiperArrowStyle* arrow?Sets the color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowColor the color of the arroIw, in 0xARGB format. The default value is <b>0x00182431</b>.
 * @since 19#RSwiperArrowStyle_SetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle, uint32_t arrowCRGets the color of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return Returns the color of the arrow, in 0xARGB format.
 * @since 19
 */
uint32_t OH_ArkUI_SwiperArrowStyle_GetArrowColor(ArkUI_SwiperArrowStyle* arrowStyle);

/**
L
:uxiliary line information in the RelativeContaine container.
 *
 * @param size The number of auxiliary lines.
 * @return auxiliiary line information.
 * @since 12
 */
ArkUI_GuidelineOption* OH_ArkUI_GuidelineOption_Create(int32_t sizestroy auxiliary line informa2guideline auxiliary line information.
 * @since 12#7GuidelineOption_Dispose(ArkUI_GuidelineOption* guidelin!xId of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value id, must be unique and cannot havej the same name as the component in the container.
 * @param index auxiliary line index value.
 * @since 12#XGuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* value, int32_t index1XcVauxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value direction.
 * @param index auxiliary line index value.
 * @since 12#^GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis value, int32_t index1Xc_stance from the left or top of the container.
 *
 * @param guideline auxiliary line information0hdistance from the left or top of the container.
 * @param index auxiliary line index value.
 * @since 12#]GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float value, int32_t index1Xccstance from the right or bottom of the container.
 *
 * @param guideline auxiliary line information0distance from the right side or bottom of the container.
 * @param index auxiliary line index value.
 * @since 12
 */
void OH_A#[GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float value, int32_t indexId of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @reoId.
 * @since 12
 */
const char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guideline, int32_t indexTgauxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line indexdirection.
 * @since 12
 */
ArkUI_Axis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guideline, int32_t index);
distance from the left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line indexThe distance from the left or top of the container.
 * @since 12
 */
float OH_ArkUI_GuidelineOption_GetPositionStart(ArkUI_Guid%elineOption* guideline, int32_t indexdistance from the right side or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line indexThe distance from the right side or bottom of the container.
 * @since 12
 */
float OH_ArkUI_GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guideline, int32_t index);

/**
 * @brief creates barrier information within the RelativeContaine container.
 *
 * @param size Number of barriers.
 * @return barrier information.
 * @since 12
 */
ArkUI_BarrierOption* OH_ArkUI_BarrierOption_Create(int32_t sizestroy barrier informa.barrierStyle barrier information.
 * @since 12#0BarrierOption_Dispose(ArkUI_BarrierOption* barri=xId of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value id, must be unique and cannot have the same nXame as the component in the container.
 * @param index Barrier index value.
 * @since 12#WBarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t index1XcVbarrier.
 *
 * @param barrierStyle barrier information.
 * @param value direction.
 * @param index Barrier index value.
 * @since 12#nBarrierOption_SetDirection(
    ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t indexDQdependent component of the barrier.
 *
 * @param barrierStyle barrier information0PID of the dependent component.
 * @param index Barrier index value.
 * @since 12#aBarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* value, int32_t indexmId of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line indexThe Id of the barrier.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyle, int32_t indexs tQcbarrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line indexPbarrier.
 * @since 12
 */
ArkUI_BarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyle, int32_t indexdependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index> value.
 * @param referencedIndex dependent component Id indexThe barrier's dependent components.
 * @since 12
 */
const char* OH_ArkUI_BarrierOption_GetReferencedId(
    ArkUI_BarrierOptio7n* barrierStyle, int32_t index, int32_t referencedIndexs the number of dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index?The number of dependent components of the barrier.
 * @since 12aRBarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyle, int32_t index1XOthe types and parameters related to content transition effects.
 *
 * @since 21ntentTransitionEffect ArkUI_ContentTransitionEffect;

/**
 * @brief creates content switching animation effects.
 *
 * @param type content transition type: 0-identity, 1-opacity.
 * @return content transition effect.
 * @since 21
 */
ArkUI_ContentTransit>ionEffect* OH_ArkUI_ContentTransitionEffect_Create(int32_t typ!creates alignment rule information for subcomponents in relative containers.
 *
 * @return Alignment rule information.
 * @since 12
 */
ArkUI_AlignmentRuleOption* OH_ArkUI_AlignmentRuleOption_Create();

/**
 * @brief Destroys the alignment rule informati*on of subcomponents in relative containersQSAlignment rule information of subcomponents in the relative container.
 * @since 12#-AlignmentRuleOption_Dispose(ArkUI_AlignmentRu&_tart alignment parameterQAlignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @pGaram alignment Alignment relative to the anchor component.
 * @since 12#AlignmentRuleOption_SetStart(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);

/**8Xnd alignment parameterQAlignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @pGaram alignment Alignment relative to the anchor component.
 * @since 12#AlignmentRuleOption_SetEnd(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_HorizontalAlignment alignment);

/**
* @brief Set the parameters for horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to anchor component
* @since 12
*/
void OH_ArkUI_AlignmentRuleOption_SetCenterHorizontal(
    ArkUI_AlignmentRuleOption* option, const char* id,$ ArkUI_HorizontalAlignment alignment1X the parameters for top alignmentQAlignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @pBaram alignment Alignment relative to anchor component
 * @since 12#AlignmentRuleOption_SetTop(ArkUI_AlignmentRuleOption* option, const char* id,
    ArkUI_VerticalAlignment alignment);

/**
 * @=X
the bottom alignment parametersQAlignment rule information of subcomponents in the relative container.
 * @param id The id value of the anchor component.
 * @pBaram alignment Alignment relative to anchor component
 * @since 12#AlignmentRuleOption_SetBottom(
    ArkUI_AlignmentRuleOption* option, const char* id, ArkUI_VerticalAlignment alignment);

/**
* @brief Set the parameters for vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to the anchor component.
* @since 12
*/
void OH_ArkUI_AlignmentRuleOption_SetCenterVertical(
    ArkUI_AlignmentRuleOption* option, const char* i$d, ArkUI_VerticalAlignment alignmentDNhorizontal offset parameter of the component under the anchor point constraintQAlignment rule information of subcomponents in the relative container.
 * @param horizontal bias value in the horizontal direction.
 * @since 12#8AlignmentRuleOption_SetBiasHorizontal(ArkUI_AlignmentRulL
horizontal1XPthe vertical offset parameter of the component under the anchor point constraintQAlignment rule information of subcomponents in the relative container.
 * @param vertical bias value in the vertical direction.
 * @since 12#6AlignmentRuleOption_SetBiasVertical(ArkUI_AlignmentRulLvertical!Id of the start-aligned parameterQAlignment rule information of subcomponents in the relative container.
 * @return The id value of the anchor component.
 * @sinOce 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetStartId(ArkUI_AlignmentRu* @brief Gets the alignment of the start-aligned parameter.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the parameters.
* @since 12
*/
ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRul+eOption_GetStartAlignment(ArkUI_AlignmentRu"0[Uend alignment parameterQAlignment rule information of subcomponents in the relative container.
 * @return End-aligned parameter id.
 * @since 12
 */
coAnst char* OH_ArkUI_AlignmentRuleOption_GetEndId(ArkUI_AlignmentRu* @brief Get the end alignment parameter.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the end-aligned parameter.
* @since 12
*/
ArkUI_HorizontalAlignment OH_ArkUI_AlignmentRuleOption"_GetEndAlignment(ArkUI_AlignmentRu* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The id of the parameter of horizontal center alignment.
* @since 12
*/
const char* OH_ArkUI_Al9ignmentRuleOption_GetCenterIdHorizontal(ArkUI_AlignmentRu* @brief Gets the parameters of horizontal center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the horizontally centered alignment parameter.
* @since 12
*/
ArkUI_HorizontaVlAlignment OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentHorizontal(ArkUI_AlignmentRu"0[Utop-aligned parametersQAlignment rule information of subcomponents in the relative container.
 * @return Top aligned parameter id.
 * @since 12
 */
coAnst char* OH_ArkUI_AlignmentRuleOption_GetTopId(ArkUI_AlignmentRu* @brief Get the top-aligned parameters.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the top-aligned parameter.
* @since 12
*/
ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleOption_GetTopAlignment(ArkUI_AlignmentRu"0[Ubottom alignment parametersQAlignment rule information of subcomponents in the relative container.
 * @return The id of the bottom-aligned parameter.
 * @sRince 12
 */
const char* OH_ArkUI_AlignmentRuleOption_GetBottomId(ArkUI_AlignmentRu* @brief Get the bottom alignment parameters.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the bottom-aligned parameter.
* @since 12
*/
ArkUI_VerticalAlignment OH_ArkUI_AlignmentRuleO*ption_GetBottomAlignment(ArkUI_AlignmentRu* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The id of the vertical center alignment parameter.
* @since 12
*/
const char* OH_ArkUI_Alignment0RuleOption_GetCenterIdVertical(ArkUI_AlignmentRu* @brief Gets the parameters of vertical center alignment.
*
* @param option Alignment rule information of subcomponents in the relative container.
* @return The alignment of the vertical center alignment parameter.
* @since 12
*/
ArkUI_VerticalAlignmentJ OH_ArkUI_AlignmentRuleOption_GetCenterAlignmentVertical(ArkUI_AlignmentRu"0[U"bias value in the horizontal direcAlignment rule information of subcomponents in the relative container.
 * @return The bias value in the horizontal direction.
 V* @since 12
 */
float OH_ArkUI_AlignmentRuleOption_GetBiasHorizontal(ArkUI_AlignmentRu"0[U bias value in the vertical direcAlignment rule information of subcomponents in the relative container.
 * @return bias value in vertical direction.
 * @since 1I2
*/
float OH_ArkUI_AlignmentRuleOption_GetBiasVertical(ArkUI_AlignmentRu":
onfiguration item for the ListitemSwipeActionItem interface settings.
 *
 * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create();

/**
* @brief Destroy the ListitemSwipeActionItem instance.
*
* @param item List Item SwipeActionItem instance to be destroyed.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content of ListItem SwipeActionItem.
*
* @param item List Item SwipeActionItem instance.
* @param node Layout information.
* @s`ince 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* item,P* @brief Set the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @param distance Component long-distance sliding deletion distance threshold.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distance);

/**
* @brief Obtain the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @return Component long-distance sliding deletion distance threshold. If -1.0f is returned, the return fails.
*         The possible cause of the failure is that the item parameter is abnormal, such as a null pointer.
* @since 12
*/
float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the event to be called when a sliding entry enters the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)());

/**
 * @brxevent triggered when a sliding entry enters the deletion area.
 *
 * @param item List Item SwipeActionItem instance.
 * @param 	User defined dataCallback Events.
 * @since 12#ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkU\I_ListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item, void (*callback)(xevent triggered when a component enters the long-range deletion area and deletes a ListItem.
 *
 * @param item List Item SwipeActionItem instancUser defined dataCallback Events.
 * @since 12#ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event to be called when a sliding entry exits the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionItem_SetOnExitActio<nArea(ArkUI_ListItemSwipeActionItem* item, void (*callback)(xevent triggered when a sliding entry exits the deletion area.
 *
 * @param item List Item SwipeActionItem instance.
 * @param uUser defined dataCallback Events.
 * @since 12#ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(void* userData));

/**
* @brief Set the event triggered when the sliding state of a list item changes.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback Events.
*        swipeActionState The changed state.
* @since 12
*/
vYoid OH_ArkUI_ListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* itemp)ListItemSwipeActionState swipeActionStatexevent triggered when the sliding state of a list item changes.
 *
 * @param item List Item SwipeActionItem instance.
 * @param 	User defined dataKCallback Events.
 *        swipeActionState The changed state.
 * @since 12#ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* item,
    void* userData, void (*callback)(/ArkUI_ListItemSwipeActionState swipeActionState,configuration item for the ListitemSwipeActionOption interface settings.
 *
 * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create();

/**
* @brief Destroy the ListitemSwipeActionOption instance.
*
* @param option List Item SwipeActionOption instance tog be destroyed.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeAction!* @brief Set the layout content on the left (vertical layout) or top (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param option List Item SwipeActionItem instance.
* @param item Layout information.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the layout content on the right (vertical layout) or bottom (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param option List Item SwipeActionItem instance.
* @param item Layout information.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @brief Set the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @param edgeEffect Sliding effect.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeEdgeEffect edgeEffect);

/**
* @brief Get the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option parameter i0s abnormal, such as a null pointer.
* @since 12
+AListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeAction!* @brief The event called when the sliding operation offset changes.
*
* @param option List Item SwipeActionItem instance.
* @param callback Callback Events.
*        offset Slide offset.
* @since 12
*/
void OH_ArkUI_ListItemSwipeActionOption_SetOnOffset.Change(ArkUI_ListItemSwipeActionOption* optionpfloat offsetx9event triggered when the sliding operation offset changesQ!List Item SwipeActionItem instancUser defined data<Callback Events.
 *        offset Slide offset.
 * @since 12#ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* option,
    void* userData, void (*callback)(float offse+configuration items for the ListChildrenMainSize interface settings.
 *
 * @return ListChildrenMainSize configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 * @since 12
*/
ArkUI_ListChildrenMainSize* OH_ArkUI_ListChildrenMainSizeOption_Create();

/**
* @brief Destroy the ListChildrenMainSize instance.
*
* @param option The ListChildrenMainSize instance to be destroyed.
* @sinceR 12
*/
void OH_ArkUI_ListChildrenMainSizeOption_Dispose(ArkUI_ListChildrenMainSize"=default size of ChildrenMainSizeOption for the List componentQListChildrenMainSize instance.
 * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
 * @return 0 represents success. If defaultMainSize is less than 0 or option is a null pointer, return 401.
 * @since 12
*/
int32_t +	jListChildrenMainSizeOption_SetDefaultMainSize(ArkUI_ListChildrenMainSize* option,
    float defaultMainSizU=default size of ChildrenMainSizeOption for the List componentQListChildrenMainSize instance.
 * @return The default size of the ListItem under the List is 0, measured in vp.
 *         When the option is a null pointer, it returns -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSizeOption_GetDefaultMainSize(ArkUI_ListChildrenMainSizeEReset the array size of ChildrenMainSizeOption for the List componentQListChildrenMainSize instance.
 * @param totalSize Array size.
 * @since 12
*/
void OH_ArkUI_ListChildrenMainSizeOption_Resize(4ArkUI_ListChildrenMainSize* option, int32_t totalSiz!GResize the ChildrenMainSizeOption array operation on the List componentQListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param deleteCount The number of MainSize arrays to be deleted starting from index.
 * @param addCount The number of MainSize arrays to be added starting from index.
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
*/
int32_t OH+ListChildrenMainSizeOption_Splice(ArkUI_ListChildrenMainSize* option, int32_t index,
    int32_t deleteCount, int32_t addCount)&IJUpdate the value of the ChildrenMainSizeOption array in the List componentQListChildrenMainSize instance.
 * @param index To modify the starting position of the MainSize array.
 * @param mainSize The actual modifiedV0 represents success. If the function parameter is abnormal, return 401.
 * @since 12
+jListChildrenMainSizeOption_UpdateSize(ArkUI_ListChildrenMainSize* option,
    int32_t index, float mainSizU@value of the ChildrenMainSizeOption array for the List componentQListChildrenMainSize instance.
 * @param index The index position of the value to be obtained.
 * @return The value of the specific position of the array. If the function parameter is abnormal, return -1.
 * @since 12
*/
float OH_ArkUI_ListChildrenMainSiFzeOption_GetMainSize(ArkUI_ListChildrenMainSize* option, int32_t index?s measurement information for this custom span.
 *
 * @return Returns a <b>CustomSpanMeasureInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void,s of measurement information of this custom span.
 *
 * @param info The CustomSpanMeasureInfo instance to be destroyed.
 * @since 12
*/
void OH_ArkUI_CustomSpanMeasureInfo_Dispose(ArkUI_CustomSpanMeasureInfo* info);

/**
 * @brief Obtains the font size of a custom span.
 *
 * @param info Indicates the pointer to the measurement information of a custom span.
 * @return Returns the font size. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(ArkUI_CustomSpanMeasureInfo* info?s measurement metrics for this custom span.
 *
 * @return Returns a <b>CustomSpanMetrics</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(void);

/,s of measurement metrics of this custom span.
 *
 * @param metrics The CustomSpanMetrics instance to be destroyed.
 * @since 12K
*/
void OH_ArkUI_CustomSpanMetrics_Dispose(ArkUI_CustomSpanMetrics* metric]s the width for a custom span.
 *
 * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
 * @param width Indicates the width, in px. The width should be greater than 0.
 * @return Returns the result code.
 *         Returns {@linS*+ReturnsA(v+ o        <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
+DCustomSpanMetrics_SetWidth(ArkUI_CustomSpanMetrics* metrics, float wnSets the height for a custom span.
 *
 * @param metrics Indicates the pointer to a <b>CustomSpanMetrics</b> instance.
 * @param width Indicates the height, in px. The width should be greater than 0.
 * @return Returns the result code.
 *         Returns S"*+ReturnsA(v+ o        <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
+<CustomSpanMetrics_SetHeight(ArkUI_CustomSpanMetrics* metrics?L :s drawing information for this custom span.
 *
 * @return Returns a <b>CustomSpanDrawInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 * @since 12
*/
ArkUI_CustomSpanDrawInfo* OH_ArkUI_CustomSpanDrawInfo_Create(void);,s of drawing information for this custom span.
 *
 * @param info The CustomSpanDrawInfo instance to be destroyed.
 * @since 12
*/
void OH_ArkUI_CustomSpanDrawInfo_Dispose(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the x-axis offset of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the x-axis offset. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetXOffset(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the top margin of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the top margin. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineTop(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the bottom margin of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the bottom margin. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetLineBottom(ArkUI_CustomSpanDrawInfo* info);

/**
 * @brief Obtains the baseline offset of the custom span relative to the mounted component.
 *
 * @param info Indicates the pointer to the drawing information of a custom span.
 * @return Returns the baseline offset. If a parameter error occurs, <b>0.0f</b> is returned.
 * <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
 * @since 12
*/
float OH_ArkUI_CustomSpanDrawInfo_GetBaseline(ArkUI_CustomSpanDrawInfo* info?image frame from the image path.
 * @param src Indicates the image path.
 * @return Returns the pointer to the image frame object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that
 * the src parameter is abnormal, for example, the pointer is null.
 * @since 12
*/
ArkUI_ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src?image frame from the drawable descriptor.
 *
 * @param drawable Indicates the pointer to the drawable descriptor.
 * @return Returns the pointer to the image frame object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that
 * the drawable parameter is abnormal, for example, the pointer is null.
 * @since 12
*/
ArkUI_ImageAnimatorFrameInffo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
    ArkUI_DrawableDescriptor* drawablestroy the pointer to the imageRimageInfo Indicates the pointer to the image frame.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfo1Xthe width of the imageRimageInfo Indicates the pointer to the image frame.
 * @param width Indicates the width of the image frame, and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width);

/**
 *|width of the imageRimageInfo Indicates the pointer to the image frame.
 * @return Return the width of the image frame, and the unit is PX. Return +0 when the imageInfo is null.
 * @since 12
+GImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo1Xthe height of the imageRimageInfo Indicates the pointer to the image frame.
 * @param height Indicates the height of the image frame, and the unit is PiX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfoe*height of the imageRimageInfo Indicates the pointer to the image frame.
 * @return Return the height of the image frame, and the unit is PX. Return, 0 when the imageInfo is null.
 * @since 12
+HImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfo1Xthe vertical coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param top Indicates the vertical coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t topvertical coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Returns the vertical coordinate of the image relative to the upper left corner of the widget,
 *G and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
+EImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo1Xthe horizontal coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @param left Indicates the horizontal coordinate of the image relative to the upper left corner of the widget,
 * and the unit is PX.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t lefthorizontal coordinate of the image relative to the upper left corner of the widget.
 *
 * @param imageInfo Indicates the pointer to the image frame.
 * @return Returns the horizontal coordinate of the image relative to the upper left corner of the widgetK,
 * and the unit is PX. Return 0 when the imageInfo is null.
 * @since 12
+FImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo1X"the playback duration of the imageRimageInfo Indicates the pointer to the image frame.
 * @param duration Indicates the playback duration of each image frame, and the unit is milliseconds.
 * @since 12
*/
void OH_ArkUI_ImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t dura0[Uplayback duration of the imageRimageInfo Indicates the pointer to the image frame.
 * @return Returns the playback duration of the image frame, and the unit iEs milliseconds.
 * Return 0 when the imageInfo is null.
 * @since 12
+JImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo?ccessibility state.
 *
 * @return Returns the pointer to the accessibility state object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
 * @since 12
*/
ArkUI_AccessibilityState* OH_ArkUI_AccessibilityState_Create(void);

/**
* @brief Dispose accessibility state.
*
* @param state accessibility state object.
V* @since 12
*/
void OH_ArkUI_AccessibilityState_Dispose(ArkUI_AccessibilityState* stat!xaccessibility state disabled.
 *
 * @param state accessibility state object.
 * @param isDisabled accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled.
 * @since 12
*/
void OH_ArkUI_AccessibilityState_SetDisabled(ArkUI_Accessib%ilityState* state, int32_t isDisabledaccessibility state disabled.
 *
 * @param state accessibility state object.
 * @return accessibility state disabled, Value 1 indicates disabled and 0 indicates enbled. The default value is 0.
 *         If the function parameter is abnormal, return the default value.
 * @since 12
+<AccessibilityState_IsDisabled(ArkUI_AccessibilityState* stat!xaccessibility state selected.
 *
 * @param state accessibility state object.
 * @param isSelected accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *        The default value is 0.
 * @since 12
*/
void OH_ArkUI_AcceNssibilityState_SetSelected(ArkUI_AccessibilityState* state, int32_t isSelectedaccessibility state selected.
 *
 * @param state accessibility state object.
 * @return accessibility state selected, Value 1 indicates selected, and 0 indicates not selected.
 *         The default value is 0.
 *         If the function parameter is abn.ormal, return the default value.
 * @since 12
+<AccessibilityState_IsSelected(ArkUI_AccessibilityState* stat!xaccessibility checked state.
 *
 * @param state accessibility state object.
 * @param checkedState checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
 *        The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
 * @sionce 12
*/
void OH_ArkUI_AccessibilityState_SetCheckedState(ArkUI_AccessibilityState* state, int32_t checkedStataccessibility checked state.
 *
 * @param state accessibility state object.
 * @return checked state, and uses the {@link ArkUI_AccessibilityCheckedState} enumeration value,
 *         The default value is ARKUI_ACCESSIBILITY_UNCHECKED.
 *         If theH function parameter is abnormal, return the default value.
 * @since 12
+AAccessibilityState_GetCheckedState(ArkUI_AccessibilityState* stat;ccessibility value.
 *
 * @return Returns the pointer to the accessibility state object.
 * If a null pointer is returned, the object fails to be created. The possible cause is that the address space is full.
 * @since 12
*/
ArkUI_AccessibilityValue* OH_ArkUI_AccessibilityValue_Create(void);

/**
* @brief Dispose accessibility value.
*
* @param value accessibility value object.
P* @since 12
*/
void OH_ArkUI_AccessibilityValue_Dispose(ArkUI_AccessibilityValueQxaccessibility minimum valuaccessibility value object.
 * @param min minimum value based on range components, The default value is -1.
 * @since 12
*/
voiQd OH_ArkUI_AccessibilityValue_SetMin(ArkUI_AccessibilityValue* value, int32_t minaccessibility minimum valuaccessibility value object.
 * @return minimum value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 12
+2AccessibilityValue_GetMin(ArkUI_AccessibilityValueQxaccessibility minimum valuaccessibility value object.
 * @param max maximum value based on range components, The default value is -1.
 * @since 12
*/
voiQd OH_ArkUI_AccessibilityValue_SetMax(ArkUI_AccessibilityValue* value, int32_t maxaccessibility minimum valuaccessibility value object.
 * @return maximum value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 12
+2AccessibilityValue_GetMax(ArkUI_AccessibilityValueQxaccessibility current valuaccessibility value object.
 * @param current value based on range components, The default value is -1.
 * @since 12
*/
void OHU_ArkUI_AccessibilityValue_SetCurrent(ArkUI_AccessibilityValue* value, int32_t currentaccessibility current valuaccessibility value object.
 * @return current value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 12
+6AccessibilityValue_GetCurrent(ArkUI_AccessibilityValueQxaccessibility minimum valuaccessibility value object.
 * @param rangeMin minimum value based on range components, The default value is -1.
 * @since 18
*`/
void OH_ArkUI_AccessibilityValue_SetRangeMin(ArkUI_AccessibilityValue* value, int32_t rangeMinaccessibility minimum valuaccessibility value object.
 * @return minimum value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 18
+7AccessibilityValue_GetRangeMin(ArkUI_AccessibilityValueQxaccessibility maximum valuaccessibility value object.
 * @param rangeMax maximum value based on range components, The default value is -1.
 * @since 18
*`/
void OH_ArkUI_AccessibilityValue_SetRangeMax(ArkUI_AccessibilityValue* value, int32_t rangeMaxaccessibility maximum valuaccessibility value object.
 * @return maximum value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 18
+7AccessibilityValue_GetRangeMax(ArkUI_AccessibilityValueQxaccessibility current valuaccessibility value object.
 * @param rangeCurrent value based on range components, The default value is -1.
 * @since 18
*/
vodid OH_ArkUI_AccessibilityValue_SetRangeCurrent(ArkUI_AccessibilityValue* value, int32_t rangeCurrentaccessibility current valuaccessibility value object.
 * @return current value based on range components, The default value is -1.
 *         If the func4tion parameter is abnormal, return -1.
 * @since 18
+;AccessibilityValue_GetRangeCurrent(ArkUI_AccessibilityValueQxaccessibility text valuaccessibility value object.
 * @param text The textual description information of the component, which defaults to an empty stroing.
 * @since 12
*/
void OH_ArkUI_AccessibilityValue_SetText(ArkUI_AccessibilityValue* value, const char* textaccessibility text valuaccessibility value object.
 * @return The textual description information of the component, which defaults to an empty string;
 *         If the function parameter is abnormal, return null.
 * @since 12
*/
const char* OH_ArkUI_AccessibilityValue_GetText(ArkUI_AccessibilityValueQ estroy the instance of Customs PEhandle The instance of Customs Property to be destroyed.
 * @since 14#2CustomProperty_Destroy(ArkUI_CustomProperty* handlcustom attribute value informahandle Custom attribute object pointer.
 * @return Customize the value information within the attribute structure.
 * @since 14S
 */
const char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty* handlwindow name from HostWindowInfo.
 *
 * @param info HostWindowInfo object pointer.
 * @return Window name in HostWindowInfo.
 * @since 15
 */
const char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy the instance of HYostWindowInfo.
 *
 * @param info Instance of HostWindowInfo to be destroyed.
 * @since 15#HostWindowInfo_Destroy(ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy ActiveChildenInfo instance.
 *
 * @param handle Acti.veChild instance to be destroyed.
 * @since 14#:ActiveChildrenInfo_Destroy(ArkUI_ActiveChildrenInfo* handl!E	the child nodes of ActiveChildenInfo with the structure index.
 *
 * @param handle The ActiveChildenInfo instance for obtaining information.
 * @param index The index of child nodes.
 * @return The child node pointer corresponding to the index. Return nu3llptr in case of exception.
 * @since 14
 */
ArkUI_,QActiveChildrenInfo_GetNodeByIndex(ArkUI_ActiveChildrenInfo* handle, int32_t index|Ethe number of nodes within the structure of ActiveChildenInfo.
 *
 * @param handle The ActiveChildenInfo instance for obtainingN information.
 * @return Number of child nodes. Default value: 0.
 * @since 14a;ActiveChildrenInfo_GetCount(ArkUI_ActiveChildrenInfo* handl;linear progress indicator style information.
 *
 * @return Returns a <b>ProgressLinearStyleOption</b> instance.
 * <br> If the Xresult returns nullptr, there may be out of memory.
 * @since 15
 */
ArkUI_ProgressLineafProgressLinearStyleOption_Create(void);

/**
 * @brief Destroy linear progress indicator style informa9Linear progress indicator style information.
 * @since 15#5ProgressLinearStyleOption_Destroy(ArkUI_ProgressLinea&xR	he scan effect is enabledQLinear progress indicator style information.
 * @param enabled Whether to enable the scan effect. Default value: false.
 * @since 15#dProgressLinearStyleOption_SetScanEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled1Xsmoothing effect is enabledQLinear progress indicator style information.
 * @param enabled Whether to enable the smooth effect. When this effect is enabled, the progress change to
 * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true.
 *
 @since 15#fProgressLinearStyleOption_SetSmoothEffectEnabled(ArkUI_ProgressLinearStyleOption* option, bool enabled1X&linear progress indicator stroke widthQ'Linear progress indicator style informa9mStroke width of the progress indicator. It cannot be set in percentage.
 * Default value: 4.0vp.
 * @since 15#AProgressLinearStyleOption_SetStrokeWidth(ArkUI_ProgressLinearStylLs:x'linear progress indicator stroke radiusQ'Linear progress indicator style informa9Radius Rounded corner radius of the progress indicator. Value range: [0, strokeWidth/2].
 * Default value: strokeWidth/2.
 * @since 15#BProgressLinearStyleOption_SetStrokeRadius(ArkUI_ProgressLinearStylLstrokeR^'0[scan effect is enableQLinear progress indicator style information.
 * @return Whether to enable the scan effect.
 * @since 15
 */
bool OH_ArkUI_Progr=essLinearStyleOption_GetScanEffectEnabled(ArkUI_ProgressLinea&0[smoothing effect is enabledQLinear progress indicator style information.
 * @return Whether to enable the smooth effect.
 * @since 15
 */
bool OH_ArkUI_ProAgressLinearStyleOption_GetSmoothEffectEnabled(ArkUI_ProgressLinea&0[&linear progress indicator stroke widthQLinear progress indicator style information.
 * @return Stroke width of the progress indicator.
 * @since 15
 */
float OH_ArkUI=_ProgressLinearStyleOption_GetStrokeWidth(ArkUI_ProgressLinea&0['linear progress indicator stroke radiusQLinear progress indicator style information.
 * @return Rounded corner radius of the progress indicator.
 * @since 15
 */
floatG OH_ArkUI_ProgressLinearStyleOption_GetStrokeRadius(ArkUI_ProgressLinea&:
ross-language option instance.
 *
 * @return Returns a cross-language option instance. If the result is a null pointer, it may be out of memory.
 * @since 15
 */
ArkUI_CrossLanguageOption* OH_ArkUI_CrossLanguageOption_Create(void);

/**
 * @brief Destroy# the cross-language option instanceQ0The cross-language option instance.
 * @since 15#.CrossLanguageOption_Destroy(ArkUI_CrossLanguag!1Enable the attribute setting in the cross-languaga$The cross-language!aenabled The attribute setting in the cross-language option.
 * Default value: false.
 * @since 15#]CrossLanguageOption_SetAttributeSettingStatus(ArkUI_CrossLanguageOption* option, bool enabled-attribute setting enable of the cross-languaga$The cross-languag1The attribute setting enable of the cross-languag'U15
 */
bool OH_ArkUI_CrossLanguageOption_GetAttributeSettingStatus(ArkUI_CrossLanguag!:s an option for taking snapshot, the returned value must be released through
 *        {@link OH_ArkUI_DestroySnapshotOptions} when it's not used anymore.
 *
 * @return Returns the pointer to the created snapshot options object.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for the failure may be that the address space is full.
 E* @since 15
 */
ArkUI_SnapshotOptions* OH_ArkUI_CreateSnapshotOptions,Zsnapshot option object.
 *
 * @param snapshotOptions Indicates the pointer to the snapshot15#<DestroySnapshotOptions(ArkUI_SnapshotOptions* snapshotOption]iConfig the snapshot option with scale.
 *
 * @param snapshotOptions Indicates the pointer to the snapshot!Kscale Indicates the scale property to take the snapshot.
 * @return ReturnsS#*+ReturnsA(v+'15aKSnapshotOptions_SetScale(ArkUI_SnapshotOptions* snapshotOptions, float scal!Sets the color mode for snapshot capture.
 * By default, snapshots are captured in SRGB mode, which may lose visual effects for components using wide color
 * gamut display modes.
 * If the target component's color space is known, specify it through <b>colorSpace</b> and set <b>isAuto</b> to
 * <b>false</b> to achieve optimal snapshot quality.
 * Since determining the exact color space used by a component is often difficult, set <b>isAuto</b> to <b>true</b>
 * to let the system automatically select the appropriate color space.
 * If <b>isAuto</b> is set to <b>true</b>, the <b>colorSpace</b> parameter value is ignored.
 *
 * @param snapshotOptions Pointer to the target snapshot configuration options.
 * @param colorSpace Target color space. Supported values: <b>3</b> (DISPLAY_P3), <b>4</b> (SRGB), <b>27</b>
 *                   (DISPLAY_BT2020_SRGB).
 * @param isAuto Whether to auto-detect the color space.
 *               <b>true</b>: ignores the <b>colorSpace</b> parameter value and auto-detects the color space.
 *               <b>false</b>: uses the color space specified by <b>colorSpace</b>.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+(3adSnapshotOptions_SetColorMode(ArkUI_SnapshotOptions* snapshotOptions, int32_t colorSpace, bool isAutoDdynamic range mode for snapshot capture.
 * By default, the system captures snapshots in {@link ARKUI_DYNAMIC_RANGE_MODE_STANDARD} mode.
 * To use a specific mode, specify it via the <b>dynamicRangeMode</b> parameter and set <b>isAuto</b> to <b>false</b>.
 * Alternatively, set <b>isAuto</b> to <b>true</b> to let the system auto-detect the appropriate dynamic range mode.
 * If <b>isAuto</b> is set to <b>true</b>, the <b>dynamicRangeMode</b> parameter value is ignored.
 *
 * @param snapshotOptions Pointer to the target snapshot configuration options.
 * @param dynamicRangeMode Target dynamic range mode, specified using {@link ArkUI_DynamicRangeMode}.
 * @param isAuto Whether to auto-detect the dynamic range mode.
 *               <b>true</b>: ignores the <b>dynamicRangeMode</b> parameter value and auto-detects the dynamic range
 *                            mode.
 *               <b>false</b>: uses the dynamic range mode specified by <b>dynamicRangeMode</b>.
 * @return Returns the result code.
 *       	  ReturnsS#*+ReturnsA(v+(3aSnapshotOptions_SetDynamicRangeMode(
    ArkUI_SnapshotOptions* snapshotOptions, int32_t dynamicRangeMode, bool isAuto);

/**
 O* @brief Defines the parameters for visible area change events.
 *
 * @since 17isibleAreaEventOptions ArkUI_VisibleAreaEventOptions;

/**
* @brief Creates an instance of visible area change event parameters
*
* @return Returns the created instance of visible area change event parameters.
* @since 17
*/
ArkUI_VisibleAreaEventOptions* OH_ArkUI_VisibleAreaEventOptions_Create();

/**
* @brief Disposes of an instance of visible area change event parameters.
*
* @param option Instance to be destroyed.
* @since 17
*/
void OH_ArkUI_VisibleAreaEventOptions_Dispose(ArkUI_VisibleAreaEventOptions* option);

/**
* @brief Sets the threshold ratios for visible area changes.
*
* @param option Instance of visible area change event parameters.
* @param value Array of threshold ratios. Each element represents the ratio of the visible area of a component to
* its total area. The visible area is calculated within the parent component's bounds; any area outside the parent
* component is not considered. Each value must be within the [0.0, 1.0] range.
* Values outside this range will be handled as 0.0 gor 1.0.
* @param size Size of the threshold array.
* @return Returns the result code.
*         ReturnsS#* *         ReturnsA(v+*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
+VisibleAreaEventOptions_SetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t size);

/**
* @brief Sets the expected update interval for visible area changes.
*
* @param option Instance of visible area change event parameters.
* @param value Expected update interval, in ms.  Default value: <b>1000</b>.
* @return Returns the result code.
*         Returns {@link S* *         ReturnsA(v+*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17
+^VisibleAreaEventOptions_SetExpectedUpdateInterval(
    ArkUI_VisibleAreaEventOptions *option, * @brief Sets the flag for controlling if the child components can exceed the parent's bounds.
* if set to false, the part that exceeds the parent's bounds will be considered as invisible area,
* set to true to allow the exceeding, the part that exceeds will be considered as visible area.
*
* Please note that if the parent component set clip(true), the measureFromViewport configuration
* will be ignored.
*
* @param option Instance of visible area change event parameters.
* @param measureFromViewport When this parameter is set to true, the parts of the component
*    that exceed the parent component's area will also be included in the visible area calculation. However, this
*    only applies if the parent component does not explicitly set the clip property to true. If the parent component
*    sets clip to true, regardless of the value of this parameter, the parts that exceed the parent component's area
*    will still be treated as invisible in the visible area calculation.
* Default measureFromViewpoFrt: <b>false</b>.
* @return Returns the result code.
*         ReturnsS#* *         ReturnsA(v+*         If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 22
+VisibleAreaEventOptions_SetMeasureFromViewport(
    ArkUI_VisibleAreaEventOptions* option, bool measureFromViewport);

/**
 * @;brief Obtains the threshold ratios for visible area changesQInstance of visible area change event parameters.
 * @param value Array of threshold ratios.
 * @param size Size of the thresho@ld array.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+         ReturnsABUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiUlure in parameter validation;
 *         the parameter must not be null.
 * @since 17acVisibleAreaEventOptions_GetRatios(ArkUI_VisibleAreaEventOptions* option, float* value, int32_t* siz!=Obtains the expected update interval for visible area changesQInstance of visible area change event parameters.
 * @return Returns the expected update interval, in ms.  Default value: <b>1000</b>.
 * @since 17aOVisibleAreaEventOptions_GetExpectedUpdateInterval(ArkUI_VisibleAreaEventOptions^Obtains the value set through {@link OH_ArkUI_VisibleAreaEventOptions_SetMeasureFromViewport} QInstance of visible area change event parameters.
 * @return Returns the flag for controlling of the visible area calculation. Default value: <b>false</b>.
 *
 * @since 22
 */
bool OH_ArkUI_VisibleAreaEventOptions_GetMeasureFromViewport(ArkUI_VisibleAreaEventOptions* option);

/**
 *@brief Creates a TextPickerRangeContent instance.
 *
 *@param length The length of the picker array.
 *@return Returns a <b>TextPickerRangeContent</b> instance.
 *@since 19
 */
ArkUI_TextPickerRangeContentArray* OH_ArkUI_TextPickerRangeContentArray_Create(int32_t length);

/**
 *@brief Sets the icon of items in a text picker ranges.
 *
 *@param handle The TextPickerRangeContent instance for obtaining information.
 *@param icon Icon addreass.
 *@param index The index positio*n of the value to be obtained.
 *@since 19#TextPickerRangeContentArray_SetIconAtIndex(
    ArkUI_TextPickerRangeContentArray* handle, char* icon, int32_t index);

/**
 *@brief Sets the text of items in a text picker ranges
 *
 *@param handle The TextPickerRangeContent instance for obtaining informmation.
 *@param text Text content
 *@param index The index position of the value to be obtained.
 *@since 19#TextPickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextPickerRangeContentArray* handle, char* text, int32_t index);

/**
 *@brief Destroy the TextPickerRangeContent instance.
 *
 *@param handle The TextPickerRangeContent instance for obtaining information.
 *@since 19#TextPickerRangeContentArray_Destroy(ArkUI_TextPickerRangeContentArray* handle);

/**
 *@brief Creates a TextCascadePickerRangeContent instance.
 *
 *@param length The length of the picker array.
 *@return Returns a <b>TextCascadePickerRangeContent</b> instance.
 *@since 19
 */
ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI_TextCascadePickerRangeContentArray_Create(int32_t length);

/**
 *@brief Sets the text of items in a multi text picker ranges.
 *
 *@param handle The TextCascadePickerRangeContent instance for obtaining information.
 *@param text text content
 *@param index The index position of the value to be obtained.
 *@since 19#TextCascadePickerRangeContentArray_SetTextAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, char* text, int32_t index);

/**
 *@brief Sets the childs info of items in a multi text picker ranges.
 *
 *@param handle The TextCascadePickerRangeContent instance for obtaining information.
 *@param child The child instance.
 *@param index The index position of the value to be obtained.
 *@since 19#TextCascadePickerRangeContentArray_SetChildAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, ArkUI_TextCascadePickerRangeContentArray* child, int32_t index);

/**
 *@brief Destroy the TextCascadePickerRangeContent instance.
 *
 *@param handlSe The TextCascadePickerRangeContent instance for obtaining information.
 *@since 19#ZTextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handl;"n object for the EmbeddedComponent'(object of the EmbeddedComponent EmbeddedComponentOption* OH_ArkUI_EmbeddedComponentOption_Create();

/**
 * @brief Destroy the object by EmbeddedComponent optie'.object by the EmbeddeComp   onent to be destroyed!7EmbeddedComponentOption_Dispose(ArkUI_EmbeddedComponent!(onError of EmbeddedComponent%object option by the EmbeddedComponent.
 * @param code Common error information about the API invoking failure.
 * @param name Common error name information about the API invoking failure.
 * @param message Common error message information about the API invoking failura,8EmbeddedComponentOption_SetOnError(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, const char* name, const char* messagex!onTerminated of EmbeddedComponent%object option by the EmbeddedComponent.
 * @param code Result code returned when the EmbeddedUIExtensionAbility exits.
 * @para>m want Data returned when the EmbeddedUIExtensionAbility exits!EmbeddedComponentOption_SetOnTerminated(
    ArkUI_EmbeddedComponentOption* option, void (*callback)(int32_t code, AbilityBase_
Want* wantExpand the swipe ac@List Item nodexpand direction of swipeAcJs12ERROR} The component type of the node is incorrect'IDE_NOT_ON_MAIN_TREE} The node not mounted to component tree.
 * @since 21aListItemSwipeAction_Expand(PListItemSwipeAction&ollapse the swipe ac@	List Item*Ks12ERROR} The component type of the node is incorrect'IDE_NOT_ON_MAIN_TREE} The node not mounted to component tree.
 * @since 21aListItemSwipeAction_Collapse(P:$n edge object for position attribute!Qedge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Create(?fs a deep copy of an edge object for position attribute.
 *
 * @param edges A pointer to an edge objectq<new edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Copy(const ArkUI_PositionEdges* edges);

/**
 * @]an edge object for position attribute.
 *
 * @param edges Pointer to the edge object to be disposed.
 * @since 21
 */
void OH_A#/PositionEdges_Dispose(ArkUI_PositionEdges* edge]fs the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0Wdistance of top edge to the corresponding edge of parent container, in vp.
 * @since 21#1PositionEdges_SetTop(ArkUI_PositionEdges* edges, iGets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0distance of top edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      Returns S"*(ReturnsA()if the parameter is invalid.
 * @since 21a/PositionEdges_GetTop(ArkUI_PositionEdges* edges jSets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0Xdistance of left edge to the corresponding edge of parent container, in vp.
 * @since 21#2PositionEdges_SetLeft(ArkUI_PositionEdges* edges, jGets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0distance of left edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21a0PositionEdges_GetLeft(ArkUI_PositionEdges* edges Hattom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0Zdistance of bottom edge to the corresponding edge of parent container, in vp.
 * @since 21#4PositionEdges_SetBottom(ArkUI_PositionEdges* edges, lGets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0distance of bottom edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21a2PositionEdges_GetBottom(ArkUI_PositionEdges* edges kSets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0Ydistance of right edge to the corresponding edge of parent container, in vp.
 * @since 21#3PositionEdges_SetRight(ArkUI_PositionEdges* edges, kGets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object0distance of right edge to the corresponding edge of parent container, in vp.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21a1PositionEdges_GetRight(ArkUI_PositionEdges* edges :	&policy object for PixelRound attribute!Wpolicy object.
 * @since 21
 */
ArkUI_PixelRoundPolicy* OH_ArkUI_PixelRoundPolicy_Creat,policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object to be disposed.
 * @since 21
 */
void #	6PixelRoundPolicy_Dispose(ArkUI_PixelRoundPolicy* policAkSets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu@$CalcPolicy of top edge.
 * @since 21#RPixelRoundPolicy_SetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyGets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu@KCalcPolicy of top edge.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21aRPixelRoundPolicy_GetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyQSets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param va>&CalcPolicy of start edge.
 * @since 21#TPixelRoundPolicy_SetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyGets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param va>MCalcPolicy of start edge.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21aTPixelRoundPolicy_GetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyQHgttom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object0'CalcPolicy of bottom edge.
 * @since 21#UPixelRoundPolicy_SetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyGets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param v=	NCalcPolicy of bottom edge.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21aUPixelRoundPolicy_GetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyQSets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu@$CalcPolicy of end edge.
 * @since 21#RPixelRoundPolicy_SetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyGets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu@KCalcPolicy of end edge.
 * @return Returns the result code.
 *      ReturnsS#*(ReturnsA()if the parameter is invalid.
 * @since 21aRPixelRoundPolicy_GetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicyQ:0s a configuration object for textField's counter!`configuration object.
 * @since 22
 */
ArkUI_ShowCounterConfig* OH_ArkUI_ShowCounterConfig_Creat,s a configuration object for textField's counter.
 *
 * @param config Pointer to the configuration object to be disposed.
 * @since 22#8ShowCounterConfig_Dispose(ArkUI_ShowCounterConfig* confiCSets the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField hasn't wanted to exceed the maxi3mum character count, in 0xARGB format.
 * @since 22#EShowCounterConfig_SetCounterTextColor(ArkUI_ShowCounterConfig* configO"Sets the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField wants to exceed the maximum character co#unt, in 0xARGB format.
 * @since 22#MShowCounterConfig_SetCounterTextOverflowColor(ArkUI_ShowCounterConfig* configO%s the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object.
 * @return Returns the color of the counter when textField hasn't wanted to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextColor(ArkUI_ShowCounterConfig* confiCs the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object.
 * @return Returns the color of the counter when textField wants to exceed the maximum character count, in 0xARGB format.
 * @since 22
 */
uint32_t OH_ArkUI_ShowCounterConfig_GetCounterTextOverflowColor(ArkUI_ShowCounterConfig* config);

/**	C>Defines the text menu item for edit menu item.
 *
 * @since 22 TextMenuItem ArkUI_TextMenuItem;:#n object of the text edit menu item!TArkUI_TextMenuItem.
 * @since 22
 */
ArkUI_TextMenuItem* OH_ArkUI_TextMenuItem_Creat,n object of the text edit menu options.
 *
 * @param textMenuItem Pointer to the ArkUI_TextMenuItem object to be disposed.
 * @since 22#5TextMenuItem_Dispose(ArkUI_TextMenuItem* textMenuItem1Xtext menu item title.
 *
 * @param item The text menu item.
 * @param content The name of the text menu item, which defaults tok an empty string. The string will copy to framework.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UETextMenuItem_SetContent(ArkUI_TextMenuItem* item, const char* contentext menu item title.
 *
 * @param item The text menu item object.
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The name of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@S.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLBUFFER_SIZE_ERROR} is returnedeAG8*CS*if the node, buffer or writeLength is null%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22UTextMenuItem_GetContent(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @bxext menu item icon.
 *
 * @param item The text menu item.
 * @param icon The text menu item icon resource, which defaults to anh empty string. The string will copy to framework.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22U=TextMenuItem_SetIcon(ArkUI_TextMenuItem* item, const char* ic0[text menu item icon.
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The icon of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@lS.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLBUFFER_SIZE_ERROR} is returnedeAG8*CS*if the node, buffer or writeLength is null%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22UmTextMenuItem_GetIcon(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLengpxext menu item label info for keyboard shortcut.
 *
 * @param item The text menu item.
 * @param labelInfo The text menu item shortcut displays, which defaults to an empty string.
 *      The string will copy to framework.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UITextMenuItem_SetLabelInfo(ArkUI_TextMenuItem* item, const char* labelInfoext menu item label info for keyboard shortcut..
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The shortcuts of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLBUFFER_SIZE_ERROR} is returnedeAG8*CS*if the node, buffer or writeLength is null%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22UTextMenuItem_GetLabelInfo(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * }xext menu item id.
 *
 * @param item The text menu item.
 * @param id The text menu id.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22U7TextMenuItem_SetId(ArkUI_TextMenuItem* item, int32_t idext menu item id.
 *
 * @param item The text menu item object
 * @param id The text menu item id;
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22
PTextMenuItem_GetId(const ArkUI_TextMenuItem* item, int32_t* id);

/**
 * @brief Defines text menu item array.
 *
 * @since 22
 )TextMenuItemArray ArkUI_TextMenuItemArrayesize of text menu items.
 *
 * @param items The text menu items.
 * @param size The size of text menu items.
 * @return Returns$ the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22
PFTextMenuItemArray_GetSize(ArkUI_TextMenuItemArray* items, int32_t* siztext menu item at index.
 *
 * @param items The text menu items.
 * @param index The index of text menu items.
 * @param item T[he text menu item at index of array.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UfTextMenuItemArray_GetItem(ArkUI_TextMenuItemArray* items, int32_t index,
    ArkUI_TextMenuItem** itemMLtext menu item at index.
 *
 * @param items The text menu items.
 * @param item The text menu item at index of array. The item will copy by framework.
 * @param index The index of text menu items.
 * @return Returns the result code.
 *         Returns {@S *+ReturnsA(v+} occurs.
 * @since 22UTextMenuItemArray_Insert(ArkUI_TextMenuItemArray* items, ArkUI_TextMenuItem* item,
    int32_t index);

/**
 * @brief Erase text menu item at index.
 *
 * @param items The text menu items.
 * @param index The index of text menu items.
 * @return Returns #the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UETextMenuItemArray_Erase(ArkUI_TextMenuItemArray* items, int32_t index?'	ithe items.
 *
 * @param items The text menu items.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22U5TextMenuItemArray_Clear(ArkUI_TextMenuItemArray* item]Enumerates the text menu item id.
 *
 * @since 22
 */
typedef enum {
    /**
     * Indicates the TextMenuItemId to copy and delete the currently selected text.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CUT = 0,

    /**
     * Indicates the TextMenuItemId to copy the currently selected text to the clipboard.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COPY = 1,

    /**
     * Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASTE = 2,

    /**
     * Indicates the TextMenuItemId to select all text in a text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SELECT_ALL = 3,

    /**
     * Indicates the TextMenuItemId for collaboration service menu items.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COLLABORATION_SERVICE = 4,

    /**
     * Indicates the TextMenuItemId to recognize the text in the picture and input it into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CAMERA_INPUT = 5,

    /**
     * Indicates the TextMenuItemId to help with text creation by invoking large models.
     */
    ARKUI_TEXT_MENU_ITEM_ID_AI_WRITER = 6,

    /**
     * Indicates the TextMenuItemId to translate the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_TRANSLATE = 7,

    /**
     * Indicates the TextMenuItemId to search the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SEARCH = 8,

    /**
     * Indicates the TextMenuItemId to share the selected content.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SHARE = 9,

    /**
     * Indicates the TextMenuItemId to open url.
     */
    ARKUI_TEXT_MENU_ITEM_ID_URL = 10,

    /**
     * Indicates the TextMenuItemId to open email.
     */
    ARKUI_TEXT_MENU_ITEM_ID_EMAIL = 11,

    /**
     * Indicates the TextMenuItemId to call the phone number.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PHONE_NUMBER = 12,

    /**
     * Indicates the TextMenuItemId to open map.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ADDRESS = 13,

    /**
     * Indicates the TextMenuItemId to open calendar.
     */
    ARKUI_TEXT_MENU_ITEM_ID_DATA_TIME = 14,

    /**
     * Indicates the TextMenuItemId for asking AI.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ASK_AI = 15,

    /**
     * Indicates the TextMenuItemId for auto fill.
     *
     * @since 24
     */
    ARKUI_TEXT_MENU_ITEM_ID_AUTO_FILL = 16,

    /**
     * Indicates the TextMenuItemId for password vault.
     *
     * @since 24
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASSWORD_VAULT = 17,

    /**
     * Inclusive begin of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_BEGIN = 10000,

    /**
     * Inclusive end of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_END = 20000,
} ArkUI_TextMenuItemId;

/**
 * @brief Defines the text menu item for edit menu options.
 *
 * @since 22
 */
typedef s.TextEditMenuOptions ArkUI_TextEditMenuOptions;:&n object of the text edit menu options!iArkUI_TextEditMenuOptions.
 * @since 22
 */
ArkUI_TextEditMenuOptions* OH_ArkUI_TextEditMenuOptions_Creat,n object of the text edit menu options.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object to be disposed.
 * @since 22#TextEditMenuOptions_Dispose(ArkUI_TextEditMenuOptions* editMenuOptions);

/**
 * The text menu create callback function.
 *
 * items The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instancUser defined data.
 * @since 22
 */
typedef void (*ArkUI_TextCreateMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    voQid*                       userData
);

/**
 * The text menu prepare callback funcitems The framework creates and owns the array.
 *     In callback: the developer can modify the array by calling {@link OH_ArkUI_TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instancUser defined data.
 * @since 22
 */
typedef void (*ArkUI_TextPrepareMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    vUoid*                       userData
);

/**
 * The text menu item click callback funcitem The menu item click.
 * @param start The start offset of the selected content.
 * @param end The end offset of the selected content.
 * @param userData The user data.
 * @return bool Return True, the event is consumed, false otherwise.
 * @since 22
 */
typedef bool (*ArkUI_TextMenuItemClickCallback)(
    const ArkUI_TextMenuItem*    item,
    int32_t                      stUart,
    int32_t                      end,
    void*                        userData
1Xvent to be called when text menu create.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The create callback function.
 * @return Returns the result code.
 *         Returns {@lS*+ReturnsA(v+} occurs.
 * @since 22UTextEditMenuOptions_RegisterOnCreateMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextCreateMenuCallback cb);xevent to be called when menu prepare.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The prepare callback function.
 * @return Returns the result code.
 *         Returns {@linS*+ReturnsA(v+} occurs.
 * @since 22UTextEditMenuOptions_RegisterOnPrepareMenuCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextPrepareMenuCallback cb1Xvent to be called when menu item click.
 *
 * @param editMenuOptions Pointer to the ArkUI_TextEditMenuOptions object.
 * @param userData The user data.
 * @param cb The menu item click callback function.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextEditMenuOptions_RegisterOnMenuItemClickCallback(
    ArkUI_TextEditMenuOptions* editMenuOptions, void* userData, ArkUI_TextUMenuItemClickCallback cb);

/**
 * @brief Defines the selection menu.
 *
 * @since 22TextSelectionMenuOptions ArkUI_TextSelectionMenuOptions;

/**
 * @brief Defines the decoration style.
 *
 * @since 24
 */
typed
OH_ArkUI_DecorationStyleOptions OH_ArkUI_DecorationStyleOptions;

/**
 * @brief Defines the config of data detector.
 *
 * @since 24OH_ArkUI_TextDataDetectorConfig OH_ArkUI_TextDataDetectorConfig;

/**
 * @brief Defines the selection menu option of text editor.
 *
 * @since 24OH_ArkUI_TextEditorSelectionMenuOptions OH_ArkUI_TextEditorSelectionMenuOptions;

/**
 * @brief Defines prompt options when tex&t editor has no input.
 *
 * @since 24OH_ArkUI_TextEditorPlaceholderOptions OH_ArkUI_TextEditorPlaceholderOptions;

/**
 * @brief Defines styled string controller for text editor.
 *
 * @since 24OH_ArkUI_TextEditorStyledStringController OH_ArkUI_TextEditorStyledStringController;

/**
 * @brief Defines paragraph style for text editor.
 *
 * @since 24OH_ArkUI_TextEditorParagraphStyle OH_ArkUI_TextEditorParagraphStyle;

/**
 * @brief Defines shadow options.
 *
 * @since 24
 */OH_ArkUI_ShadowOptions OH_ArkUI_ShadowOptions;

/**
 * @brief Defines text style for text editor.
 *
 * @since 24
 */
typedef sOH_ArkUI_TextEditorTextStyle OH_ArkUI_TextEditorTextStyle;

/**
 * @brief Enumerates the haptic feedback mode.
 *
 * @since 24
 */
typedef enum {
    /**
     * No haptic feedback.
     *
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_DISABLED = 0,
    /**
     * Defines always haptic feedback.
     *
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_ENABLED = 1,
    /**
     * Defines automatically haptic feedback.
     *
     * @since 24
     */
    OH_ARKUI_HAPTIC_FEEDBACK_MODE_AUTO = 2,
} OH_ArkUI_HapticFeedbackMode;

/**
 * @brief Enumerates the text editor span type.
 *
 * @since 24
 */
typedef enum {
    /**
     * The span type of text.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_TEXT = 0,
    /**
     * The span type of image.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_IMAGE = 1,
    /**
     * The span type of mixed.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_MIXED = 2,
    /**
     * The span type of builder.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_BUILDER = 3,
    /**
     * The span type of default.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_DEFAULT = 4
} OH_ArkUI_TextEditorSpanType;

/**
 * @brief Enumerates the text editor response type.
 *
 * @since 24
 */
typedef enum {
    /**
     * The text editor response type of right click.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /**
     * The text editor response type of long press.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_LONG_PRESS = 1,
    /**
     * The text editor response type of select.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_SELECT = 2,
    /**
     * The text editor response type of default.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_DEFAULT = 3,
} OH_ArkUI_TextEditorResponseType;

/**
 * @brief Enumerates the text menu type.
 *
 * @since 24
 */
typedef enum {
    /**
     * The text menu type of selection menu.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_SELECTION_MENU = 0,
    /**
     * The text menu type of preview menu.
     *
     * @since 24
     */
    OH_ARKUI_TEXT_EDITOR_PREVIEW_MENU = 1,
} OH_ArkUI_TextMenuType;

/**
 * @brief Define line break types.
 *
 * @since 24
 */
typedef enum {
    /**
     * Places as many words on a line as possible
     * and moves to the next line only if no more words can fit into the same line.
     *
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_GREEDY = 0,
    /**
     * Fills in lines as much as possible on the basis of BALANCED,
     * which may results in a large blank area on the last line.
     *
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_HIGH_QUALITY = 1,
    /**
     * Without splitting words, the width of each line in a paragraph is the same as much as possible.
     *
     * @since 24
     */
    OH_ARKUI_LINE_BREAK_STRATEGY_BALANCE = 2,
} OH_ArkUI_LineBreakStrategy;

/**
 * @brief Enumerates the text span type.
 *
 * @since 22
 */
typedef enum {
    /** The span type only contains text. */
    ARKUI_TEXT_SPAN_TYPE_TEXT = 0,
    /** The span type only contains image. */
    ARKUI_TEXT_SPAN_TYPE_IMAGE = 1,
    /** The span type contains both text and image. */
    ARKUI_TEXT_SPAN_TYPE_MIXED = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but TEXT, IMAGE, or MIXED types are not registered,
     * this type will be triggered and displayed for those registered types.
     */
    ARKUI_TEXT_SPAN_TYPE_DEFAULT = 3,
} ArkUI_TextSpanType;

/**
 * @brief Enumerates the text response type.
 *
 * @since 22
 */
typedef enum {
    /** The response type of right click. */
    ARKUI_TEXT_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /** The response type of long press. */
    ARKUI_TEXT_RESPONSE_TYPE_LONG_PRESS = 1,
    /** The response type of select by mouse. */
    ARKUI_TEXT_RESPONSE_TYPE_SELECT = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but RIGHT_CLICK, LONG_PRESS, or SELECT types are not registered,
     * this type will be triggered and displayed for right-click, long press, and mouse selection actions.
     */
    ARKUI_TEXT_RESPONSE_TYPE_DEFAULT = 3,
} ArkUI_TextResponseType;

/**
* @brief Enumerates raw input event types.
*
* @since 26.0.0
*/
typedef enum {
    /**
     * Touch event.
     *
     * @since 26.0.0
     */
    ARKUI_RAW_INPUT_EVENT_TYPE_TOUCH = 0,
    /**
     * Mouse event.
     *
     * @since 26.0.0
     */
    ?ARKUI_RAW_INPUT_EVENT_TYPE_MOUSE = 1,
} ArkUI_RawInputEventType+n object of the text selection menu options!ArkUI_TextSelectionMenuOptions.
 * @since 22
 */
ArkUI_TextSelectionMenuOptions* OH_ArkUI_TextSelectionMenuOptions_Create();

/,n object of the text selection menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions ob!ject to be disposed.
 * @since 22#TTextSelectionMenuOptions_Dispose(ArkUI_TextSelectionMenuOptions* selectionMenuOption]Ks the recognition types of a configuration object for selected text recogni<electionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param textSpanType The span type of {@link ArkUI_ETextSpanType}.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextSelectionMenuOptions_SetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType textSpanType);
/**
 * @brief Gets the span type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param spanType the text span type {@link ArkUI_TextSpanType}.
 * @return Returns the result code.
 *      
   ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextSelectionMenuOptions_GetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType* spanType);

!xcustom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @paraSm node The custom menu node.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22U]TextSelectionMenuOptions_SetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,U);![custom text menu node of text.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @paraSm node The custom menu node.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextSelectionMenuOptions_GetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_NodeHandle* node);

/**+NSets the recognition types of a configuration object for selected text recogni<electionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The response type of {@link ArMkUI_TextResponseType}.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextSelectionMenuOptions_SetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType responseType);
/**
 * @brief Gets the response type select menu options.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions object.
 * @param responseType The text response type {@link ArkUI_TextResponseType}.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UTextSelectionMenuOptions_GetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType* responseTyp!xevent to be called when selection menu show.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions ob&ject.
 * @param userData The user datacallback function of menu show.
 *     start The start offset of the selected content.
 *     end The end offset of the selecte`d content.
 *     userData The user data.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UmTextSelectionMenuOptions_RegisterOnMenuShowCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions`'int32_t start, int32_t endxevent to be called when selection menu hide.
 *
 * @param selectionMenuOptions Pointer to the ArkUI_TextSelectionMenuOptions ob&ject.
 * @param userData The user datacallback function of menu hide.
 *     start The start offset of the selected content.
 *     end The end offset of the selecte`d content.
 *     userData The user data.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 22UmTextSelectionMenuOptions_RegisterOnMenuHideCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions`'int32_t start, int32_t end*selection options!bselection options object.
 * @since 23
 */
ArkUI_SelectionOptions* OH_ArkUI_SelectionOptions_Creat,selection options object.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options object. to be disposed.
 * @since 23#7SelectionOptions_Dispose(ArkUI_SelectionOptions* option]s the menu policy for selection options.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options.
 * @p@aram {ArkUI_MenuPolicy} menuPolicy The menu policy.
 * @since 23#_SelectionOptions_SetMenuPolicy(
    ArkUI_SelectionOptions* options, ArkUI_MenuPolicy menuPolicAks the menu policy of selection options.
 *
 * @param {ArkUI_SelectionOptions*} options Pointer to the selection options object.
 * @return Returns the menu policy.
 * @since 23
 */
ArkUI_MenuPolicy OH_ArkUI_SelectionOptions_GetMenuPolicy(ArkUI_SelectionOptions* option]:,n object of the text content base controller!controller object.
 * @since 23
 */
ArkUI_TextContentBaseController* OH_ArkUI_TextContentBaseController_Create();

/**
 * @brie,n object of the text content base controller.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the control'ler object to be disposed.
 * @since 23#LTextContentBaseController_Dispose(ArkUI_TextContentBaseController* controlle8Delete the character before the caret of the input field component in editing state.
 *        Otherwise, delete the last character of the input field component.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the configuration object to be modified.
 * @since 23#STextContentBaseController_DeleteBackward(ArkUI_TextContentBaseController* controlle8croll the input field component to make the specified content visible.
 *
 * @param {ArkUI_TextContentBaseController*} controller Pointer to the
 * configuration object to be modified.
 * @param {int32_t} start The start offset of the content to be made ^visible.
 * @param {int32_t} end The end offset of the content to be made visible
 * @since 23#TextContentBaseController_ScrollToVisible(
    ArkUI_TextContentBaseController *controller, int32_t start, int32_t end);

/**
 7* @brief Defines the motion path options for path anima3)MotionPathOptions ArkUI_MotionPathOptionsn object of the motion path options for path animation.
 *        In the newly created ArkUI_MotionPathOptions, the "path" valune is an empty string, the "from" value is 0,
 *        the "to" value is 1, and the "rotatable" value is false!cArkUI_MotionPathOptions.
 * @since 23
 */
ArkUI_MotionPathOptions* OH_ArkUI_MotionPathOptions_Creat,ArkUI_MotionPathOptions objectQLs Pointer to the ArkUI_MotionPathOptions object to be disposed.
 * @since 23#9MotionPathOptions_Dispose(ArkUI_MotionPathOptions* option]s the the motion path for the animation using an SVG path string. The path supports using "start" and
 *        "end" as placeholders for the starting and ending points, for example:
 *        "Mstart.x start.y L50 50 Lend.x end.y Z". Refer to the SVG paDth format for the path string.
 *        When set to an empty stringMnot setting a path animas Pointer to the ArkUI_MotionPathOptions object.
 * @param svgPath The motion path for the path animation.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 23UMMotionPathOptions_SetPath(ArkUI_MotionPathOptions* options, const char* svgPap>s the motion path string in the ArkUI_MotionPathOptions objectQs Pointer to the ArkUI_MotionPathOptions object.
 * @param svgPathBuffer Buffer pointer to the motion path string.
 * @param bufferSize The buffer size of the svgPathBuffer parameter.
 * @param writeLength Indicates the string length actually written to /the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLVBUFFER_SIZE_ERROR} is returned.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 *         ReturnsAXBUFFER_SIZE_ERROR} if the buffer size is less than the minimum buffer size.
 * @since 23UMotionPathOptions_GetPath(const ArkUI_MotionPathOptions* options, char* svgPathBuffer,
    const int32_t bufferSize, int32_t* writeLengpSets the starting progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path. The value range is [0.0, 1.0], and the
 *        "from" value shoul8d be less than or equal to the "to" value; otherwise, anQ_$&
 *        error code will be returnedQs Pointer to the ArkUI_MotionPathOptions object.
 * @param from The starting progress in the ArkUI_MotionPathOptions.
 * @retur-n Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 *         ReturnsY-if the "from" value is out of range or the "from" value
 *                 is greater than the "to" value.
 * @since 23
 */
ArkULMotionPathOptions_SetFrom(ArkUI_MotionPathOptions* options, const float from=s the starting progress in the ArkUI_MotionPathOptions objectQs Pointer to the ArkUI_MotionPathOptions object.
 * @param from The starting progress in the ArkUI_MotionPathOptions.
 * @retur-n Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 23UMMotionPathOptions_GetFrom(const ArkUI_MotionPathOptions* options, float* fromDendpoint progress in the ArkUI_MotionPathOptions. Progress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path. The value range is [0.0, 1.0], and the
 *        "from" value should be less/ than or equal to the "to" value; otherwise, anQ_$&
 *        error code will be returnedQs Pointer to the ArkUI_MotionPathOptions object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptions.
 * @return +Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 *         ReturnsY-if the "to" value is out of range or the "to" value
 *                 is less than the "from" value.
 * @since 23
 */
ArkUI_ErUHMotionPathOptions_SetTo(ArkUI_MotionPathOptions* options, const float to=s the endpoint progress in the ArkUI_MotionPathOptions objectQs Pointer to the ArkUI_MotionPathOptions object.
 * @param to The endpoint progress in the ArkUI_MotionPathOptions.
 * @return +Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 23UIMotionPathOptions_GetTo(const ArkUI_MotionPathOptions* options, float* toDrotatable parameter in the ArkUI_MotionPathOptions. It indicates whether to rotate along the path.
 *        True means rotatin?g along the path, while false means not rotating along the pathQs Pointer to the ArkUI_MotionPathOptions object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptions.
 *4 @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 23UTMotionPathOptions_SetRotatable(ArkUI_MotionPathOptions* options, const bool rotatabl8s the rotatable parameter in the ArkUI_MotionPathOptionsQs Pointer to the ArkUI_MotionPathOptions object.
 * @param rotatable The rotatable parameter in the ArkUI_MotionPathOptions.
 *4 @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 23UUMotionPathOptions_GetRotatable(const ArkUI_MotionPathOptions* options, bool* rotatabl!Enumerates the MarqueeStartPolicy.
 *
 * @since 23
 */
typedef enum {
    /** Start marquee in any case. This is the default policy. */
    ARKUI_MARQUEESTARTPOLICY_DEFAULT = 0,
    /** Start marquee only when get focus. */
    ARKUI_MARQUEESTARTPOLICY_ONFOCUS = 1
} ArkUI_MarqueeStartPolicy;

/**
 * @brief Enumerates the MarqueeUpdatePolicy.
 *
 * @since 23
 */
typedef enum {
    /** Reset scroll position and restart scroll. */
    ARKUI_MARQUEEUPDATEPOLICY_DEFAULT = 0,
    /** Preserve scroll position, just change to new text. */
    ARKUI_MARQUEEUPDATEPOLICY_PRESERVEPOSITION = 1
} ArkUI_MarqueeUpdatePolicy;

/**
 * @brief Def1ines the marquee options of text.
 *
 * @since 23+TextMarqueeOptions ArkUI_TextMarqueeOptions-n option object for marquee animation of text![option object.
 * @since 23
 */
ArkUI_TextMarqueeOptions* OH_ArkUI_TextMarqueeOptions_Creat,+option object for marquee animation of text%*option object to be disposed.
 * @since 23#3TextMarqueeOptions_Dispose(ArkUI_TextMarqueeOptionsCs the start flag of the option object for marquee animation of text%option object to be modified.
 * @param start Flag of is need to start marquee. True means start marquee, false means stop marquee.
 * @since 23#HTextMarqueeOptions_SetStart(ArkUI_TextMarqueeOptions* option, bool startCs the start flag of the option object for marquee animation of text%option object.
 * @return Returns the start flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetStart(ArkUI_TextMarqueeOptionsBs the step size of the option object for marquee animation of text%goption object to be modified.
 * @param step The step size of the marquee. The unit is vp.
 * @since 23#GTextMarqueeOptions_SetStep(ArkUI_TextMarqueeOptions* option, float stepBs the step size of the option object for marquee animation of text%option object.
 * @return Returns the step size of the marquee. The unit is vp.
 * @since 23
 */
float OH_ArkUI_TextMarqueeOpti$ons_GetStep(ArkUI_TextMarqueeOptionsSs the spacing between two rounds of the option object for marquee animation of text%option object to be modified.
 * @param spacing The spacing between two rounds of marquee. The unit is vp.
 * @since 23
 */
voi#JTextMarqueeOptions_SetSpacing(ArkUI_TextMarqueeOptions* option, float spac5VGets the spacing between two rounds of the option object for marquee animation of text%option object.
 * @return Returns the spacing between two rounds of marquee. The unit is vp.
 * @since 23
 */
float OH_ArkUI_Te4xtMarqueeOptions_GetSpacing(ArkUI_TextMarqueeOptions?s the rounds of the option object for marquee animation of text%Toption object to be modified.
 * @param loop The rounds of the marquee.
 * @since 23#ITextMarqueeOptions_SetLoop(ArkUI_TextMarqueeOptions* option, int32_t loop?s the rounds of the option object for marquee animation of text%Ioption object.
 * @return Returns the rounds of the marquee.
 * @since 23a3TextMarqueeOptions_GetLoop(ArkUI_TextMarqueeOptionsGs the fromStart flag of the option object for marquee animation of text%option object to be modified.
 * @param fromStart The running direction of the marquee, true means running from start.
 * @since 23#PTextMarqueeOptions_SetFromStart(ArkUI_TextMarqueeOptions* option, bool fromStartGs the fromStart flag of the option object for marquee animation of text%option object.
 * @return Returns the fromStart flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFromStart(ArkUI_TextMarqueeOptionsVs the delay time between each round of the option object for marquee animation of text%loption object to be modified.
 * @param delay The delay time between each round of the marquee.
 * @since 23#JTextMarqueeOptions_SetDelay(ArkUI_TextMarqueeOptions* option, int32_t delaAkVs the delay time between each round of the option object for marquee animation of text%`option object.
 * @return Returns the delay time between each round of the marquee.
 * @since 23a4TextMarqueeOptions_GetDelay(ArkUI_TextMarqueeOptionsEs the fadeout flag of the option object for marquee animation of text%goption object to be modified.
 * @param fadeout The flag of whether the text is faded out.
 * @since 23#LTextMarqueeOptions_SetFadeout(ArkUI_TextMarqueeOptions* option, bool fadeoutEs the fadeout flag of the option object for marquee animation of text%option object.
 * @return Returns the fadeout flag.
 * @since 23
 */
bool OH_ArkUI_TextMarqueeOptions_GetFadeout(ArkUI_TextMarq
ueeOptionsEs the start policy of the option object for marquee animation of text%^option object to be modified.
 * @param startPolicy The start policy for marquee.
 * @since 23#gTextMarqueeOptions_SetStartPolicy(ArkUI_TextMarqueeOptions* option, ArkUI_MarqueeStartPolicy startPolicAkEs the start policy of the option object for marquee animation of text%option object.
 * @return Returns the start policy for marquee.
 * @since 23
 */
ArkUI_MarqueeStartPolicy OH_ArkUI_TextMarqueeO.ptions_GetStartPolicy(ArkUI_TextMarqueeOptionsFs the update policy of the option object for marquee animation of text%`option object to be modified.
 * @param updatePolicy The update policy for marquee.
 * @since 23#nTextMarqueeOptions_SetUpdatePolicy(ArkUI_TextMarqueeOptions* option,
    ArkUI_MarqueeUpdatePolicy updatePolicAkFs the update policy of the option object for marquee animation of text%option object.
 * @return Returns the update policy for marquee.
 * @since 23
 */
ArkUI_MarqueeUpdatePolicy OH_ArkUI_TextMarque1eOptions_GetUpdatePolicy(ArkUI_TextMarqueeOptions:
3onfiguration object for selected drag preview styleq<configuration object.
 * @since 23
 */
ArkUI_SelectedDragPreviewStyle* OH_ArkUI_SelectedDragPreviewStyle_Create();

/**
 * @bri,configuration object for selected drag preview style.
 * @param config Pointer to the configuration object to be disposed.
 * @since 23#FSelectedDragPreviewStyle_Dispose(ArkUI_SelectedDragPreviewStyle* confiCSets the color of background for selected drag preview style.
 * @param config Pointer to the configuration object to be modifi2ed.
 * @param color Background color.
 * @since 23#MSelectedDragPreviewStyle_SetColor(
    ArkUI_SelectedDragPreviewStyle* configO%s the color of background for selected drag preview style.
 * @param config Pointer to the configuration object.
 * @return Returns1O.
 * @since 23
 */
uint32_t OH_ArkUI_SelectedDragPreviewStyle_GetColor(
    ArkUI_SelectedDragPreviewStyle* config);

/**
 * @bC:s an decoration line style object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_DecorationStyleOptions_Destroy} to destroy it!option object.
 * @since 24
 */
OH_ArkUI_DecorationStyleOptions* OH_ArkUI_DecorationStyleOptions_Create();

/**
 * @brief Destr$oys the decoration line style objectQ<s Pointer to the option object to be destroyed.
 * @since 24#FDecorationStyleOptions_Destroy(OH_ArkUI_DecorationStyleOptions* option].s the decoration type of decoration line styleQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param type The decoration type {@link ArkUI_TextDecoration=Type}.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UDecorationStyleOptions_SetTextDecorationType(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationType type);

/**.s the decoration type of decoration line styleQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param type The decoration type {@link ArkUI_TextDecoration=Type}.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UDecorationStyleOptions_GetTextDecorationType(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationType* type);

/*!!Sets the color of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param color Color of decoration line.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHDecorationStyleOptions_SetColor(OH_ArkUI_DecorationStyleOptions* optionsO%s the color of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param color Color of decoration line.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHDecorationStyleOptions_GetColor(OH_ArkUI_DecorationStyleOptions* options&s the style of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param style Style of decoration line.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UDecorationStyleOptions_SetTextDecorationStyle(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationStyle style);

Hs the style of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param style Style of decoration line.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UDecorationStyleOptions_GetTextDecorationStyle(OH_ArkUI_DecorationStyleOptions* options,
    ArkUI_TextDecorationStyle* style);
G+Sets the thickness scale of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param thicknessScale Thickness of decoration line.
 * @ret/urn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UkDecorationStyleOptions_SetThicknessScale(
    OH_ArkUI_DecorationStyleOptions* options, float thicknessScal(s the thickness scale of decoration lineQs Pointer to the {@link OH_ArkUI_DecorationStyleOptions} object.
 * @param thicknessScale Thickness of decoration line.
 * @ret/urn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UkDecorationStyleOptions_GetThicknessScale(OH_ArkUI_DecorationStyleOptions* options,
    float* thicknessScal;s a data detector config object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextDataDetectorConfig_Destroy} to destroy it!option object.
 * @since 24
 */
OH_ArkUI_TextDataDetectorConfig* OH_ArkUI_TextDataDetectorConfig_Create();

/**
 * @brief Destrloys the data detector config object.
 *
 * @param config Pointer to the object to be destroyed.
 * @since 24#ETextDataDetectorConfig_Destroy(OH_ArkUI_TextDataDetectorConfig* confiCSets the types of data detector config.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param types Types of data detector config.
 * @param length Number of types.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextDataDetectorConfig_SetTypes(
    OH_ArkUI_TextDataDetectorConfig* config, const ArkUI_TextDataDetectorType* types, int32_t lengps the types of data detector config.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param buffer Buffer pointer to the type array.
 * @param bufferSize Buffer size reserved for types by developer.
 *                   It should be larger than writeLength,
 *                   otherwise the operation will return ARKUI_ERROR_CODE_BUFFER_SIZEe_ERROR.
 * @param writeLength Number of types.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 *         ReturnsAGBUFFER_SIZE_ERROR} if bufferSize is less than writeLength.
 * @since 24UTextDataDetectorConfig_GetTypes(OH_ArkUI_TextDataDetectorConfig* config,
    ArkUI_TextDataDetectorType* buffer, int32_t bufferSize, int32_t* writeLengpSets the event to be called when data detector works.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig&} object.
 * @param userData User dataUdetect result update callback.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UhTextDataDetectorConfig_RegisterOnDetectResultUpdateCallback(
    OH_ArkUI_TextDataDetectorConfig* config`'"const char* result, int32_t length#Sets the color of detected content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @paraYm color Color of detected content.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGTextDataDetectorConfig_SetColor(OH_ArkUI_TextDataDetectorConfig* configO%s the color of detected content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param cVolor Color of detected content.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGTextDataDetectorConfig_GetColor(OH_ArkUI_TextDataDetectorConfig* config&s the decoration style of detected content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param decoration Decoration style of detected content.
 * @return Returns the result code.
 *         Returns {@link ARKUI_S*+ReturnsA(v+} occurs.
 * @since 24UTextDataDetectorConfig_SetDecorationStyleOptions(
    OH_ArkUI_TextDataDetectorConfig* config, OH_ArkUI_DecorationStyleOptions* decoraGets the decoration style of detected content.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param decoration Decoration style of detected content.
 * @return Returns the result code.
 *         Returns {@link ARKS*+ReturnsA(v+} occurs.
 * @since 24UTextDataDetectorConfig_GetDecorationStyleOptions(
    OH_ArkUI_TextDataDetectorConfig* config, OH_ArkUI_DecorationStyleOptions* decora.s whether to display a preview menu when the detected content is long-pressed.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param enablePreviewMenu Whether to display a preview menu when the detected content is lCong-pressed.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextDataDetectorConfig_SetEnablePreviewMenu(
    OH_ArkUI_TextDataDetectorConfig* config, bool enablePreviewMenu);

/**
 * @bris whether to display a preview menu when the detected content is long-pressed.
 *
 * @param config Pointer to the {@link OH_ArkUI_TextDataDetectorConfig} object.
 * @param enablePreviewMenu Whether to display a preview menu when the detected content is lCong-pressed.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextDataDetectorConfig_GetEnablePreviewMenu(
    OH_ArkUI_TextDataDetectorConfig* config, bool* enablePreviewMenu);

/**
 * @brief Defines controller for text/OH_ArkUI_TextController OH_ArkUI_TextControllercontroller object for textq<text controller objectOH_ArkUI_TextController* OH_ArkUI_TextController_Create();

/**
 * @brief Destroys the text controller.
 *
 * @param controller <b>Text</b> controlle	H9TextController_Destroy(OH_ArkUI_TextController* controlle8StyledString of the text.
 *
 * @param controller the controller of the text.
 * @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> object, which will be set to Text.
 * @return Returns the result code.
 *         Returns {@link ARKUI_ES*+ReturnsA(v+} occursPTextController_SetStyledString(
    OH_ArkUI_TextController* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @b8:	placeholder options object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextEditorPlaceholderOptions_Destroy} to destroy it!configuration object.
 * @since 24
 */
OH_ArkUI_TextEditorPlaceholderOptions* OH_ArkUI_TextEditorPlaceholderOptions_Create();

5/**
 * @brief Destroys the placeholder options objectQ5s <b>TextEditor</b> placeholder options.
 * @since 24#RTextEditorPlaceholderOptions_Destroy(OH_ArkUI_TextEditorPlaceholderOptions* option] hint text of placeholder optionsQ's <b>TextEditor</b> placeholder options0Ahint text.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UeTextEditorPlaceholderOptions_SetValue(
    OH_ArkUI_TextEditorPlaceholderOptions* options, const charQ0[U hint text of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param buffer The buffer to which hint text writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the sPtring length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKL0BUFFER_SIZE_ERROR} is returned.
 * @return The eAG8*CS*if the node, buffer or writeLength is null%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24UTextEditorPlaceholderOptions_GetValue(
    OH_ArkUI_TextEditorPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLengp%Sets font size of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontSize The font size.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UkTextEditorPlaceholderOptions_SetFontSize(
    OH_ArkUI_TextEditorPlaceholderOptions* options, float fontSiz"s font size of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontSize The font size.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UlTextEditorPlaceholderOptions_GetFontSize(
    OH_ArkUI_TextEditorPlaceholderOptions* options, float* fontSiz!x"font weight of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontWeight The font weight.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorPlaceholderOptions_SetFontWeight(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t fontWeight);

/**
 * @
"font weight of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontWeight The font weight.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorPlaceholderOptions_GetFontWeight(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t* fontWeight);

/**
 * x"font family of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontFamily The font family.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorPlaceholderOptions_SetFontFamily(
    OH_ArkUI_TextEditorPlaceholderOptions* options, const char* fontFamily);

/**
 Kk"font family of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param buffer The buffer to which font family writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates theR string length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKL0BUFFER_SIZE_ERROR} is returned.
 * @return The eAG8*CS*if the node, buffer or writeLength is null%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24UTextEditorPlaceholderOptions_GetFontFamily(
    OH_ArkUI_TextEditorPlaceholderOptions* options, char* buffer, int32_t bufferSize, int32_t* writeLengpx!font style of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontStyle The font style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorPlaceholderOptions_SetFontStyle(
    OH_ArkUI_TextEditorPlaceholderOptions* options, ArkUI_FontStyle fontStyle);

/**K!font style of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontStyle The font style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorPlaceholderOptions_GetFontStyle(
    OH_ArkUI_TextEditorPlaceholderOptions* options, ArkUI_FontStyle* fontStyle);

/*Jx!font color of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontColor The font color.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UmTextEditorPlaceholderOptions_SetFontColor(
    OH_ArkUI_TextEditorPlaceholderOptions* options, uint32_t fontCR0[U!font color of placeholder optionsQs <b>TextEditor</b> placeholder options.
 * @param fontColor The font color.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UmTextEditorPlaceholderOptions_GetFontColor(OH_ArkUI_TextEditorPlaceholderOptions* options,
    uint32_t* fontCR:	styled string controller object for text editor.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextEditorStyle(dStringController_Destroy} to destroy it!styled string controller object.
 * @since 24
 */
OH_ArkUI_TextEditorStyledStringController* OH_ArkUI_TextEditorStyledStringController_Create();

/**
 * @brief Destroys the styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @since 24#]TextEditorStyledStringController_Destroy(OH_ArkUI_TextEditorStyledStringController* controlle8caret offset with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param caretMOffset caret position.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetCaretOffset(
    OH_ArkUI_TextEditorStyledStringController* controller, int32_t caretOffsetcaret offset with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param caretMOffset caret position.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetCaretOffset(
    OH_ArkUI_TextEditorStyledStringController* controller, int32_t* caretOffset1Xselection area with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param start selection area start.
 * @param end selection area end.
 * @param menuPolicy selection area menu policy.
 * @return Returns #the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetSelection(
    OH_ArkUI_TextEditorStyledStringController* controller, uint32_t start, uint3#2_t end, ArkUI_MenuPolicy menuPolicAkediting state of text editor with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.Z
 * @param isEditing editing state.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_IsEditing(
    OH_ArkUI_TextEditorStyledStringController* controller, bool* isEditing);

/**
 5	Exit editing state of text editor with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string contro<ller.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UfTextEditorStyledStringController_StopEditing(
    OH_ArkUI_TextEditorStyledStringController* controlle80[preview text content with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param offset Preview text position.
 * @param buffer The buffer to which preview text content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates thSe string length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLVBUFFER_SIZE_ERROR} is returned.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetPreviewText(
    OH_ArkUI_TextEditorStyledStringController* controller, uint32_t* offset, c7har* buffer,
    int32_t bufferSize, int32_t* writeLengpcaret rect with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @param rect caEret area info.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetCaretRect(
    OH_ArkUI_TextEditorStyledStringController* controller, ArkUI_Rect* rect);

/**
 * @brief Delete character with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller8.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UiTextEditorStyledStringController_DeleteBackwa   rd(
    OH_ArkUI_TextEditorStyledStringController* controlle8:	paragraph style object for text editor.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextEditorParagraphStyle_Destroy} to destroy it!paragraph style object.
 * @since 24
 */
OH_ArkUI_TextEditorParagraphStyle* OH_ArkUI_TextEditorParagraphStyle_Create();

/**
 *o @brief Destroys the paragraph style object.
 *
 * @param style <b>TextEditor</b> paragraph style.
 * @since 24#ETextEditorParagraphStyle_Destroy(OH_ArkUI_TextEditorParagraphStyle* s@Sets text alignment in paragraph style.
 *
 * @param style paragraph style.
 * @param align text alignment.
 * @return Returns #the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UnTextEditorParagraphStyle_SetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment alignext alignment in paragraph style.
 *
 * @param style paragraph style.
 * @param align text alignment.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UoTextEditorParagraphStyle_GetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment* align1Xpixelmap of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param pixelmap pixelmap of leading margi9n.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_SetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, struct OH_PixelmapNative* pixelmappixelmap of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param pixelmap pixelmap of leading margi9n.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_GetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, struct OH_PixelmapNative** pixelmap1Xidth of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param width width of leading margin.
 * @ret/urn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UgTextEditorParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t wnwidth of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param width width of leading margin.
 * @re0turn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UhTextEditorParagraphStyle_GetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* wnSets height of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param height height of leading margin8.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UeTextEditorParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_H0[height of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param height height of leading margin.
 * 3@return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U_TextEditorParagraphStyle_GetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uh%word break of paragraph style.
 *
 * @param style paragraph style.
 * @param wordBreak word break.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UmTextEditorParagraphStyle_SetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak wordBreakword break of paragraph style.
 *
 * @param style paragraph style.
 * @param wordBreak word break.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UnTextEditorParagraphStyle_GetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak* wordBreak1Xline break strategy of paragraph style.
 *
 * @param style paragraph style.
 * @param lineBreakStrategy line break strategy.
 *4 @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_SetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy lineBreakStrategAkline break strategy of paragraph style.
 *
 * @param style paragraph style.
 * @param lineBreakStrategy line break strategy.
 *4 @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_GetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy* lineBre	akStrategAkxparagraph spacing of paragraph style.
 *
 * @param style paragraph style.
 * @param paragraphSpacing paragraph spacing.
 * @ret/urn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_SetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t paragraphSpacing);

/**
 * 50[paragraph spacing of paragraph style.
 *
 * @param style paragraph style.
 * @param paragraphSpacing paragraph spacing.
 * @ret/urn Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_GetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* paragraphSpacing);

/**
 *5xext vertical alignment of paragraph style.
 *
 * @param style paragraph style.
 * @param verticalAlignment text vertical alignm;ent.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_SetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextVerticalAlignment vertica
lAlignmentext vertical alignment of paragraph style.
 *
 * @param style paragraph style.
 * @param verticalAlignment text vertical alignm;ent.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_GetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextVerticalAlignment* verticalAlignment1Xtext direction of paragraph style.
 *
 * @param style paragraph style.
 * @param textDirection text direction.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_SetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection textDirection);

/*0[text direction of paragraph style.
 *
 * @param style paragraph style.
 * @param textDirection text direction.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorParagraphStyle_GetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_TextDirection* textDirection);

/xpreset paragraph style with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @pYaram style preset paragraph style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetTypingParagraphStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorParagraphStyle* s@:	shadow options object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_ShadowOptions_Destroy} to destroy it.
 *
shadow options object.
 * @since 24
 */
OH_ArkUI_ShadowOptions* OH_ArkUI_ShadowOptions_Create();

/**
 * @brief Destroys the shadow options objectQ5s Pointer to the object to be destroyed.
 * @since 24#4ShadowOptions_Destroy(OH_ArkUI_ShadowOptions* option]#s blur radius of the shadow optionsQs shadow options.
 * @param radius blur radius of the shadow.
 * @return Returns the result code.
 *         Returns {@link ARKS*+ReturnsA(v+} occurs.
 * @since 24U7ShadowOptions_SetRadius(OH_ArkUI_ShadowOptions* options/##s blur radius of the shadow optionsQs shadow options.
 * @param radius blur radius of the shadow.
 * @return Returns the result code.
 *         Returns {@link ARKS*+ReturnsA(v+} occurs.
 * @since 24U?ShadowOptions_GetRadius(OH_ArkUI_ShadowOptions* options, float*x!shadow type of the shadow optionsQds shadow options.
 * @param type shadow type.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UKShadowOptions_SetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType typ!shadow type of the shadow optionsQds shadow options.
 * @param type shadow type.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24ULShadowOptions_GetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType* typ!x"shadow color of the shadow optionsQfs shadow options.
 * @param color shadow color.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U6ShadowOptions_SetColor(OH_ArkUI_ShadowOptions* optionsO&"shadow color of the shadow optionsQfs shadow options.
 * @param color shadow color.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U6ShadowOptions_GetColor(OH_ArkUI_ShadowOptions* options'%offset of the shadow along the x-axisQs shadow options.
 * @param offsetX offset of the shadow along the x-axis.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGShadowOptions_SetOffsetX(OH_ArkUI_ShadowOptions* options, float offsetX%offset of the shadow along the x-axisQs shadow options.
 * @param offsetX offset of the shadow along the x-axis.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHShadowOptions_GetOffsetX(OH_ArkUI_ShadowOptions* options, float* offsetX1X%offset of the shadow along the y-axisQs shadow options.
 * @param offsetY offset of the shadow along the y-axis.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGShadowOptions_SetOffsetY(OH_ArkUI_ShadowOptions* options, float offsetY%offset of the shadow along the y-axisQs shadow options.
 * @param offsetY offset of the shadow along the y-axis.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHShadowOptions_GetOffsetY(OH_ArkUI_ShadowOptions* options, float* offsetY1X!,fill the inside of the component with shadowQs shadow options.
 * @param isFill whether to fill the inside of the component with shadow.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UBShadowOptions_SetFill(OH_ArkUI_ShadowOptions* options, bool isFill7whether to fill the inside of the component with shadowQs shadow options.
 * @param isFill whether to fill the inside of the component with shadow.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UCShadowOptions_GetFill(OH_ArkUI_ShadowOptions* options, bool* isFill?text style object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextEditorTextStyle_Destroy} to destroy it.
 text style object.
 * @since 24
 */
OH_ArkUI_TextEditorTextStyle* OH_ArkUI_TextEditorTextStyle_Create();

/**
 * @brief Destroy_s the text style object.
 *
 * @param style Pointer to the object to be destroyed.
 * @since 24#;TextEditorTextStyle_Destroy(OH_ArkUI_TextEditorTextStyle* s@xfont color of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color font color.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UCTextEditorTextStyle_SetFontColor(OH_ArkUI_TextEditorTextStyle* stylO'font color of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color font color.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UCTextEditorTextStyle_GetFontColor(OH_ArkUI_TextEditorTextStyle* styl(font size of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param size font size.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UNTextEditorTextStyle_SetFontSize(OH_ArkUI_TextEditorTextStyle* style, float sizfont size of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param size font size.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UOTextEditorTextStyle_GetFontSize(OH_ArkUI_TextEditorTextStyle* style, float* siz!xfont style of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontStyle font style.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U^TextEditorTextStyle_SetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle font?font style of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontStyle font style.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U_TextEditorTextStyle_GetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle* font?xfont weight of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontWeight font weight.
 * @return Re)turns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UUTextEditorTextStyle_SetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t fontWfont weight of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontWeight font weight.
 * @return Re)turns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UVTextEditorTextStyle_GetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t* fontWxfont family of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontFamily font family.
 * @return Re)turns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U\TextEditorTextStyle_SetFontFamily(OH_ArkUI_TextEditorTextStyle* style, const char* fontFamilAkfont family of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param buffer The buffer to which font family content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLVBUFFER_SIZE_ERROR} is returned.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_GetFontFamily(OH_ArkUI_TextEditorTextStyle* style,
    char* buffer, int32_t bufferSize, int32_t* writeLengpxext decoration options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text decoration op=tions.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_SetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_DecorationStyleOptions* options);

/**
 * @]0[text decoration options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text decoration o>ptions.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_GetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_DecorationStyleOptions* options);

/**
 * @]ext shadow options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text shadow options.
 i* @param length the length of text shadow options.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_SetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    const OH_ArkUI_ShadowOptions** options, int32_t lengpext shadow options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param shadowOptions text shadow options.
 * @param shadowOptionsSize buffer size for shadow options.
 * @param writeLength the actual size of text shadow options iDn text style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_GetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_ShadowOptions** shadowOptions, uint32_t sh$adowOptionsSize, uint32_t* writeLengpxext line height of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param lineHeight text line height.
 * @2return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTTextEditorTextStyle_SetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t lineHext line height of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param lineHeight text line height.
 * @2return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UUTextEditorTextStyle_GetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t* lineHxletter spacing of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param letterSpacing letter spacing.
 * @2return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U`TextEditorTextStyle_SetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t letterSpac50[letter spacing of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param letterSpacing letter spacing.
 * @2return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UaTextEditorTextStyle_GetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t* letterSpac5xfont feature of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontFeature font feature.
 * @return, Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UbTextEditorTextStyle_SetFontFeature(OH_ArkUI_TextEditorTextStyle* style,
    const char* fontFeaturfont feature of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param buffer The buffer to which font feature content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returningS".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKLVBUFFER_SIZE_ERROR} is returned.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_GetFontFeature(OH_ArkUI_TextEditorTextStyle* style, char* buffer,
    int32_t bufferSize, int32_t* writeLengpxwhether half leading is enabled in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param halfLeading whethRer half leading is enabled.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UUTextEditorTextStyle_SetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool halfLead50[half leading is enabled in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param halfLeading whether half Jleading is enabled.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UVTextEditorTextStyle_GetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool* halfLead5xext background color in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color text background color.7
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24USTextEditorTextStyle_SetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
   O&ext background color in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color text background color.7
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24USTextEditorTextStyle_GetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
   *rounded corner radius of the text background in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param topLeft radius of the upper left corner of text background.
 * @param topRight radius of the upper right corner of text background.
 * @param bottomLeft radius of the lower left corner of text background.
 * @param bottomRight radius of the lower right corneLr of text background.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_SetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRrounded corner radius of the text background in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param topLeft radius of the upper left corner of text background.
 * @param topRight radius of the upper right corner of text background.
 * @param bottomLeft radius of the lower left corner of text background.
 * @param bottomRight radius of the lower right corneLr of text background.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorTextStyle_GetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRxpreset typing style with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @paraWm style the preset typing style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetTypingStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorTextStyle* s@preset typing style with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string controller.
 * @paraWm style the preset typing style.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetTypingStyle(
    OH_ArkUI_TextEditorStyledStringController* controller, OH_ArkUI_TextEditorTextStyle* s@:s a TextEditor selection menu options object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_TextEditorSelectio#nMenuOptions_Destroy} to destroy it!OH_ArkUI_TextEditorSelectionMenuOptions.
 * @since 24
 */
OH_ArkUI_TextEditorSelectionMenuOptions* OH_ArkUI_TextEditorSelectionZMenuOptions_Create();

/**
 * @brief Destroys the TextEditor selection menu options objectQes Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object to be destroyed.
 * @since 24#VTextEditorSelectionMenuOptions_Destroy(OH_ArkUI_TextEditorSelectionMenuOptions* option]/s the span type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param textEditorSpanType span type.
 * @return Ret(urns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_SetSpanType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorSpanType textEditorSpanTyp/s the span type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param textEditorSpanType span type.
 * @return Ret(urns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_GetSpanType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorSpanType* textEditorSpanTyp!0Sets the content of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param node content node.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U_TextEditorSelectionMenuOptions_SetContentNode(OH_ArkUI_TextEditorSelectionMenuOptions* options,U5Gets the content node of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param node content node.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_GetContentNode(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    ArkUI_NodeHandle* node);

/+6Sets the response type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param responseType response type.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_SetResponseType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorResponseType responseTyp3s the response type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param responseType response type.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_GetResponseType(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_TextEditorResponseType* responseTyp!-Sets the type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param menuType menu type.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_SetMenuType(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    OH_ArkUI_TextMenuType menuType*s the type of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param menuType Menu type.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_GetMenuType(OH_ArkUI_TextEditorSelectionMenuOptions* options,
    OH_ArkUI_TextMenuType* menuTyp!5Sets the event to be called when selection menu showsQes Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData User datacallback function of menu show.
 *     start The start offset of the selected content.
 *     end The end offset of the selectehd content.
 *     callbackUserData The user data.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_RegisterOnMenuShowCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userDatap+int32_t start, int32_t end, void* callbackU5Sets the event to be called when selection menu hidesQes Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData user datacallback function of menu hide.
 *     start The start offset of the selected content.
 *     end The end offset of the selecte`d content.
 *     userData The user data.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_RegisterOnMenuHideCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userDatap+int32_t start, int32_t end, void* callbackU7Sets the event to be called when selection menu appearsQes Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData user datacallback function of menu appear.
 *     start The start offset of the selected content.
 *     end The end offset of the selecbted content.
 *     userData The user data.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_RegisterOnMenuAppearCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* userDan+int32_t start, int32_t end, void* callbackU:Sets the event to be called when selection menu disappearsQes Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param userData user datacallback function of menu disappear.
 *     userData The user data.
 * @return Returns the result code.
 *         Returns {@liS*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_RegisterOnMenuDisappearCallback(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, void* use'rData, void (*callback)(void* callbackU=Sets the haptic feedback mode of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param mode haptic feedback mode.
 * @return Return%s the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_SetHapticFeedbackMode(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_HapticFeedbackMode mod:s the haptic feedback mode of selection menu in TextEditorQs Pointer to the {@link OH_ArkUI_TextEditorSelectionMenuOptions} object.
 * @param mode haptic feedback mode.
 * @return Return%s the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorSelectionMenuOptions_GetHapticFeedbackMode(
    OH_ArkUI_TextEditorSelectionMenuOptions* options, OH_ArkUI_HapticFeedbackMode* mod;lose selection menu of text editor with styled string controller.
 *
 * @param controller <b>TextEditor</b> styled string contr=oller.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UmTextEditorStyledStringController_CloseSelectionMenu(
    OH_ArkUI_TextEditorStyledStringController* controlle8Gets the selection of text editor with styled string controller.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b> styled string controller.
 * @param start Start offsemt of selection.
 * @param end End offset of selection.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetSelection(
    const OH_ArkUI_TextEditorStyledStringController* controller, uint32_t* start, uint32_t* endDstyled string of text editor.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b> styled string controller.
 * @param descriptor Pointer to a <b>ArkUI_StyledString_DescriGptor</b> object.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetStyledString(
    const OH_ArkUI_TextEditorStyledStringController* controller, const ArkUI_!StyledString_Descriptor* descript8Gets the styled string of text editor.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b> styled string controller.
 * @param descriptor Pointer to a <b>ArkUI_StyledStriPng_Descriptor</b> object.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_GetStyledString(
    const OH_ArkUI_TextEditorStyledStringController* controller, ArkUI_StyledString_Descriptor* descript8s the styled string placeholder.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b> styled string controller.
 * @param descriptor Pointer to a <b>ArkUI_StyledString_DesJcriptor</b> object.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UTextEditorStyledStringController_SetStyledPlaceholder(
    const OH_ArkUI_TextEditorStyledStringController* controller, const A&rkUI_StyledString_Descriptor* descript8:the ArkUI_PickerIndicatorStyle instance.
 *
 * @param type The picker selection indicator enumeration type.
 * @return  ArkUI_PickerIndicatorStyle instance. If the instance returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may be that the address space is full or
 *         the type not supported.
 * @since 23
*/
ArkUI_PickerIndicatorStyle* OH_ArkUI_PickerIndicatorStyle_Create(ArkUI_PickerIndicatorType type);

/**
* @brief Destroy the ArkUI_PickerIndicatorStyle instance.
*
* @param style The ArkUI_PickerIndicatorStyle instance to be destroyed.
* @since 23
*/
void OH_ArkUI_PickerIndicatorStyle_Dispose(ArkUI_PickerIndicatorStyle* style);

/**
* @brief Set the parameters of background style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param background The parameters of background style.
* @return Returns {@link ARKUISif success.
*         ReturnsA(The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this error code will be returned.
*         This interface only takes effect when the type is "background".
* @since 23
*/
ArkUI_ErrorCoPPickerIndicatorStyle_ConfigureBackground(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorBackground* background);

/**
* @brief Set the parameters of divider style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param divider Th0e parameters of divider style.
* @return ReturnsS#if success.
*         ReturnsA(The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this error code will be returned.
*         This interface only takes effect when the type is "divider".
* @since 23
*/
ArkUI_ErrorCode P	PickerIndicatorStyle_ConfigureDivider(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorDivider* divider);

/**
 * @b8=Defines the scale options for matrix scaling.
 *
 * @since 24-Matrix4ScaleOptions ArkUI_Matrix4ScaleOptionsn object of ArkUI_Matrix4ScaleOptions.
 *        In the newly created options, the default values for the scaling coefficients in the x, y and z directions
 *        are 1, and the default values for centerX, centerY are 0. 
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4ScaleOptions.
 * @since 24
 */
ArkUI_Matrix4ScaleOptions* OH_ArkUI_Matrix4ScaleOptions_Creat,&s the ArkUI_Matrix4ScaleOptions objectQQs Pointer to the ArkUI_Matrix4ScaleOptions instance to be destroyed.
 * @since 24#=Matrix4ScaleOptions_Dispose(ArkUI_Matrix4ScaleOptions* option]s2 in the x direction in ArkUI_Matrix4ScaleOptions. qs Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction. Value range: (-∞, =+∞).
 * @return Returns the result code.
 *         ReturnsS#* 
 *         ReturnsA(v+} occurs.
 * @since 24UOMatrix4ScaleOptions_SetX(ArkUI_Matrix4ScaleOptions* options, const float scaleX7v in the x direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of x is never set, its default value is 1.
 *
 * @para^s Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UPMatrix4ScaleOptions_GetX(const ArkUI_Matrix4ScaleOptions* options, float* scaleX1X_s0 in the y direction in ArkUI_Matrix4ScaleOptionsQs Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction. Value range: (-∞, =+∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UOMatrix4ScaleOptions_SetY(ArkUI_Matrix4ScaleOptions* options, const float scaleY7v in the y direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of y is never set, its default value is 1.
 *
 * @para^s Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UPMatrix4ScaleOptions_GetY(const ArkUI_Matrix4ScaleOptions* options, float* scaleY1X_s0 in the z direction in ArkUI_Matrix4ScaleOptionsQs Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction. Value range: (-∞, =+∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UOMatrix4ScaleOptions_SetZ(ArkUI_Matrix4ScaleOptions* options, const float scaleZ7v in the z direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of z is never set, its default value is 1.
 *
 * @para^s Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction.
 * @return Returns t"he result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UPMatrix4ScaleOptions_GetZ(const ArkUI_Matrix4ScaleOptions* options, float* scaleZ1Xx offset relative to@icenter. 0 means no additional x-direction offset from the
 *        transformation center. The unit is pxQ1s Pointer to the ArkUI_Matrix4ScaleOptions object$x offset relative to@Ycenter. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UVMatrix4ScaleOptions_SetCenterX(ArkUI_Matrix4ScaleOptions* options, const float centerXvalue of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. TheI unit is px. If the value of centerX is never set, its default value is 0Q1s Pointer to the ArkUI_Matrix4ScaleOptions object$x-direction offset relative to@>center.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UWMatrix4ScaleOptions_GetCenterX(const ArkUI_Matrix4ScaleOptions* options, float* centerX1Xy offset relative to@icenter. 0 means no additional y-direction offset from the
 *        transformation center. The unit is pxQ]s Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y offset relative to@Ycenter. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHMatrix4ScaleOptions_SetCenterY(ArkUI_Matrix4ScaleOptions* options, constF& 0[Uvalue of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. TheI unit is px. If the value of centerY is never set, its default value is 0Qgs Pointer to the ArkUI_Matrix4ScaleOptions object.
 * @param centerY The y-direction offset relative to@>center.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UOMatrix4ScaleOptions_GetCenterY(const ArkUI_Matrix4ScaleOptions* options, float*L&ADefines the rotation options for matrix rotating.
 *
 * @since 243Matrix4RotationOptions ArkUI_Matrix4RotationOptionsn object of ArkUI_Matrix4RotationOptions.
 *        In the newly created options, the x, y, and z values in the direction vector specifying the rotation axis
 *        are undetermined; The default values for centerX, centerY are 0; The default value for7 angle is 0.
 *        If none of x, y, z are specifiedMx=0, y=0, z=1, which means rotation around the z-axis.
 *        Once any one of x, y, z is specified, the remaining unspecified values are equivalent to 0.
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4RotationOptions.
 * @since 24
 F*/
ArkUI_Matrix4RotationOptions* OH_ArkUI_Matrix4RotationOptions_Creat,)s the ArkUI_Matrix4RotationOptions objectQTs Pointer to the ArkUI_Matrix4RotationOptions instance to be destroyed.
 * @since 24#CMatrix4RotationOptions_Dispose(ArkUI_Matrix4RotationOptions* option]Vvalue of the direction vector for the x-axis direction in ArkUI_Matrix4RotationOptionsQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction. VPalue range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UPMatrix4RotationOptions_SetX(ArkUI_Matrix4RotationOptions* options, const float xvalue of the direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of x is never seEt, its value will be undefined, so the function will return
 *       dQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction.
 5* @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UQMatrix4RotationOptions_GetX(const ArkUI_Matrix4RotationOptions* options, float* x1XZthe value of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptionsQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction. VPalue range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHMatrix4RotationOptions_SetY(ArkUI_Matrix4RotationOptions* options, const0[Uvalue of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of y is never seEt, its value will be undefined, so the function will return
 *       dQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction.
 5* @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGMatrix4RotationOptions_GetY(const ArkUI_Matrix4RotationOptions* options!~$Vvalue of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptionsQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction. VPalue range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHMatrix4RotationOptions_SetZ(ArkUI_Matrix4RotationOptions* options, const"value of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of z is never seEt, its value will be undefined, so the function will return
 *       dQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction.
 5* @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGMatrix4RotationOptions_GetZ(const ArkUI_Matrix4RotationOptions* options!$Ovalue of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degreeQs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOYptions. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UWMatrix4RotationOptions_SetAngle(ArkUI_Matrix4RotationOptions* options, const float anglUvalue of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *        If the value of angle is never set, its default value is 0Qs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationO>ptions.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UXMatrix4RotationOptions_GetAngle(const ArkUI_Matrix4RotationOptions* options, float* angl!xx offset relative to@icenter. 0 means no additional x-direction offset from the
 *        transformation center. The unit is pxQ4s Pointer to the ArkUI_Matrix4RotationOptions object$x offset relative to@Ycenter. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U\Matrix4RotationOptions_SetCenterX(ArkUI_Matrix4RotationOptions* options, const float centerXvalue of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. TheI unit is px. If the value of centerX is never set, its default value is 0Q4s Pointer to the ArkUI_Matrix4RotationOptions object$x-direction offset relative to@>center.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24U]Matrix4RotationOptions_GetCenterX(const ArkUI_Matrix4RotationOptions* options, float* centerX1Xy offset relative to@icenter. 0 means no additional y-direction offset from the
 *        transformation center. The unit is pxQ`s Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y offset relative to@Ycenter. Value range: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UNMatrix4RotationOptions_SetCenterY(ArkUI_Matrix4RotationOptions* options, constF& 0[Uvalue of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. TheI unit is px. If the value of centerY is never set, its default value is 0Qjs Pointer to the ArkUI_Matrix4RotationOptions object.
 * @param centerY The y-direction offset relative to@>center.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UUMatrix4RotationOptions_GetCenterY(const ArkUI_Matrix4RotationOptions* options, float*L&GDefines the translation options for matrix translating.
 *
 * @since 249Matrix4TranslationOptions ArkUI_Matrix4TranslationOptionsn object of ArkUI_Matrix4TranslationOptions.
 *        In the newly created options, the default values for x, y and z are 0.
 *
 * @return Returns a pointer to the newly created ArkUI_Matrix4TranslationOptions.
 * @since 24
 */
ArkUI_Matrix4TranslationO0ptions* OH_ArkUI_Matrix4TranslationOptions_Creat,,s the ArkUI_Matrix4TranslationOptions objectQWs Pointer to the ArkUI_Matrix4TranslationOptions instance to be destroyed.
 * @since 24#IMatrix4TranslationOptions_Dispose(ArkUI_Matrix4TranslationOptions* option]xovalue in the x-axis direction. The unit is px.
 *        If the value of x is never set, its default value is 0Qs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis direction. Value rangeF: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UVMatrix4TranslationOptions_SetX(ArkUI_Matrix4TranslationOptions* options, const float x{Bvalue in the x-axis direction from ArkUI_Matrix4TranslationOptionsQs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param x The translation value in the x-axis direction.
 * @return +Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UWMatrix4TranslationOptions_GetX(const ArkUI_Matrix4TranslationOptions* options, float* x1Xxovalue in the y-axis direction. The unit is px.
 *        If the value of y is never set, its default value is 0Qs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis direction. Value rangeF: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UNMatrix4TranslationOptions_SetY(ArkUI_Matrix4TranslationOptions* options, const0[U{Bvalue in the y-axis direction from ArkUI_Matrix4TranslationOptionsQs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param y The translation value in the y-axis direction.
 * @return +Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UMMatrix4TranslationOptions_GetY(const ArkUI_Matrix4TranslationOptions* options!~$xovalue in the z-axis direction. The unit is px.
 *        If the value of z is never set, its default value is 0Qs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis direction. Value rangeF: (-∞, +∞).
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UNMatrix4TranslationOptions_SetZ(ArkUI_Matrix4TranslationOptions* options, const"{Bvalue in the z-axis direction from ArkUI_Matrix4TranslationOptionsQs Pointer to the ArkUI_Matrix4TranslationOptions object.
 * @param z The translation value in the z-axis direction.
 * @return +Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UMMatrix4TranslationOptions_GetZ(const ArkUI_Matrix4TranslationOptions* options!:n identity matrix4 object.
 *
 * @return Returns the created identity matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateIdentity(1Xpecify each element of the matrix to create a matrix4 object.
 *
 * @param elements Pointer to the array of expected matrix element data. The length of array should be greater than
 *                 or equal to 16. The parameter must not be null.
 * @return Returns the newly created matrix4 object.
 *         If the pointer of elements is null, the function will return null.
 *T @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateByElements(const float* element]s a matrix4 object.
 */the matrix4 object to be disposed.
 * @since 24#Matrix4_Dispose(ArkUI_Matrix4:
opy of the matrix4 object.
 *the original matrix4 object.
 * @return Returns the newly created matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_Copy(const ArkUI_Matrix4Perform an inverse matrix transformation on the input matrix.
 *        If the matrix is invertible, this function will modify nthe input matrix; otherwise, the matrix will remain
 *        unchanged and an error code will be returned.
 *Ythe matrix4 object to be inverted.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(-if the matrix is not invertible.
 * @since 24UMatrix4_Invert(ArkUI_Matrix4Combine another matrix with the original matrix, and storing the resulting matrix in oriMatrix.
 *        The resulting matrix is equivalent to first applying@(of oriMatrix and then applying
 *       @of anotherMatrix. This function will alter the oriMatrix object.
 *
 * @param oriMatrix Pointer to the original matrix4 object.
 * @param anotherMatrix Pointer to another matrix object to be combined.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UGMatrix4_Combine(ArkUI_Matrix4* oriMatrix, const ArkUI_Matrix4* anotherMtranlation transformation to the original matrix to obtain the translated matrix. Each translation
 *        transformation is Japplied cumulatively. This function will alter the input matrix object.
 *the matrix4 object to be translated.
 * @param translate Pointer to the translation options.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UXMatrix4_Translate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4TranslationOptions* translat!pply a scale transformation to the original matrix to obtain the scaled matrix. Each scale
 *        transformation is applied Bcumulatively. This function will alter the input matrix object.
 *the matrix4 object to be scaled.
 * @param scale Pointer to the scale options.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UJMatrix4_Scale(ArkUI_Matrix4* matrix, const ArkUI_Matrix4ScaleOptions* scal!pply a rotation transformation to the original matrix to obtain the rotated matrix. Each rotation
 *        transformation is aIpplied cumulatively. This function will alter the input matrix object.
 *the matrix4 object to be rotated.
 * @param rotate Pointer to the rotation options.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UOMatrix4_Rotate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4RotationOptions* rotat!pply a skew transformation to the original matrix to obtain the skewed matrix. Each skew
 *        transformation is applied cu@mulatively. This function will alter the input matrix object.
 *the matrix4 object to be skewed. It must not be null.
 * @param skewX Skew coefficient in the x direction.
 * @param skewY SkewW coefficient in the y direction.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UHMatrix4_Skew(ArkUI_Matrix4* matrix, const float skewX, const float skewY?alculate the new coordinate position of a point after it has been transformed by a matrix.
 *        The calculated transformedc coordinate point will be filled into the ArkUI_PointF structure
 *        pointed to by result.
 *the matrix4 object.
 * @param oriPoint Pointer to the original coordinate point.
 * @param result Pointer to the result point. KIt must not be null.
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UMatrix4_TransformPoint(const ArkUI_Matrix4* matrix, const ArkUI_PointF* oriPoint, ArkUI_PointF* result);

/**
 * @brief Map the vertex coordinates of one polygon to the vertex coordinates of another polygon, and calculate the required
 *        matrix. TLhe resulting matrix will be filled into the object pointed to by matrix.
 * the original matrix4 object. The result matrix will be filled into the object pointed to by it.
 *               It must not be null.
 * @param src Pointer to the array of original polygon coordinate points. The array should be at least as long as pointCount.
 * @param dst Pointer to the array of polygon coordinate points after mapping. The array should be at least as long as pointCount.
 * @param pointCount The number of polygon points, which must be one of the values 0, 1, 2, 3, or 4.
 * @return Retur&ns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UMatrix4_SetPolyToPoly(ArkUI_Matrix4* matrix, const ArkUI_PointF* src, const ArkUI_PointF* dst, const uint32_t pointCount);

/**,IObtain the 16 elements of the matrix and fill them into the array pointed to by result.
 *        The array pointed to by resul+t must have space for 16 float elements.
 *the original matrix4 object.
 * @param result Pointer to an array that can hold 16 floating-point numbers. It must not be null.7
 * @return Returns the result code.
 *         ReturnsS#*+ReturnsA(v+} occurs.
 * @since 24UMatrix4_GetElements(const ArkUI_Matrix4* matrix, float* result);

/**
 * @brief Defines the font weight configuration of text.
 *
 * @since 24OH_ArkUI_FontWeightConfigs OH_ArkUI_FontWeightConfigs;

/**
 * @brief Defines the font configuration of text.
 *
 * @since 24
 )OH_ArkUI_FontConfigs OH_ArkUI_FontConfigs5n option object for font weight configuration of text!option object.
 * @since 24
 */
OH_ArkUI_FontWeightConfigs* OH_ArkUI_FontWeightConfigs_Create();

/**
 * @brief Destroy an opti/on object for font weight configuration of text%+option object to be destroyed.
 * @since 24#4FontWeightConfigs_Destroy(OH_ArkUI_FontWeightConfigss the enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supported. The default value is false.
 * True means enable VariableFontWeight, false means disable VariableF	ontWeight%Zoption object to be modified.
 * @param enable enableVariableFontWeight Flag.
 * @since 24#\FontWeightConfigs_SetEnableVariableFontWeight(OH_ArkUI_FontWeightConfigs* option, bool enabls the enableVariableFontWeight flag of an option object for font weight configuration of text.
 * The flag defines whether VariableFontWeight is supported. The default value is false.
 * True means enable VariableFontWeight, false means disable VariableF	ontWeight%option object.
 * @return Returns the enableVariableFontWeight flag.
 * @since 24
 */
bool OH_ArkUI_FontWeightConfigs_GetEnable-VariableFontWeight(OH_ArkUI_FontWeightConfigss the enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The default value is true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means font weight will not bFe automatically updated when the device's font weight category changes%`option object to be modified.
 * @param enable enableDeviceFontWeightCategory Flag.
 * @since 24#FontWeightConfigs_SetEnableDeviceFontWeightCategory(OH_ArkUI_FontWeightConfigs* option, bool enable);
 
/**
 * @brief Gets the enableDeviceFontWeightCategory flag of an option object for font weight configuration of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The default value is true.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means font weight will not be auto@matically updated when the device's font weight category changes%option object.
 * @return Returns the enableDeviceFontWeightCategory flag.
 * @since 24
 */
bool OH_ArkUI_FontWeightConfigs_Get9EnableDeviceFontWeightCategory(OH_ArkUI_FontWeightConfigs:.n option object for font configuration of text!option object.
 * @since 24
 */
OH_ArkUI_FontConfigs* OH_ArkUI_FontConfigs_Create();

/**
 * @brief Destroy an option object for font configuration of text%+option object to be destroyed.
 * @since 24#(FontConfigs_Destroy(OH_ArkUI_FontConfigsLs the font weight configs of an option object for font configuration of text%[option object to be modified.
 * @param fontWeightConfigs font weight configs.
 * @since 24#FontConfigs_SetFontWeightConfigs(OH_ArkUI_FontConfigs* option,
    OH_ArkUI_FontWeightConfigs* fontWeightConfigs);
 
/**
 * @brSief Gets the font weight configs of an option object for font configuration of text%option object.
 * @return Returns the font weight configs.
 * @since 24
 */
OH_ArkUI_FontWeightConfigs* OH_ArkUI_FontConfigs_Ge'tFontWeightConfigs(OH_ArkUI_FontConfigs:Enumerates the tree operating status for the cross-languag
\
typedef enum {
    /**
     * Undefined, the initial value of the node tree operating status. Nodes in this status do not support cross-language node tree operations.
     *
     * @since 26.0.0
     */
    OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED = 0,
    /**
     * Enable, which means that when the option is applied to the node, the node's tree operating status will be enabled.
     *
     * @since 26.0.0
     */
    OH_ARKUI_TREE_OPERATING_STATUS_ENABLE = 1,
    /**
     * Disable, which means that when the option is applied to the node, the node's tree operating status will be disabled.
     *
     * @since 26.0.0
     */
 V   OH_ARKUI_TREE_OPERATING_STATUS_DISABLE = 2,
} OH_ArkUI_CrossLanguageOperatingStatus1s the tree operating status for the cross-languaga$The cross-language!status The tree operating status to be set for the cross-language option.
 * Default value: OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED%CrossLanguageOption_SetTreeOperatingStatus(ArkUI_CrossLanguageOption* option, OH_ArkUI_CrossLanguageOperatingStatus status);

/h'3Gets the tree operating status of the cross-languaga$The cross-languag5Return the tree operating status of the cross-languag'
lOH_ArkUI_CrossLanguageOperatingStatus OH_ArkUI_CrossLanguageOption_GetTreeOperatingStatus(ArkUI_CrossLanguag!#Defines linear gradient options.
 *POH_ArkUI_LinearGradientOptions OH_ArkUI_LinearGradientOptions;

/**
 * @brief Defines radial gradient options.
 *
 * @since 26.^=OH_ArkUI_RadialGradientOptions OH_ArkUI_RadialGradientOptionss a linear gradient options object.
 * The returned object must be released by calling <b>OH_ArkUI_LinearGradientOptions_DestroPy</b>.
 *
 * @return Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> objectOH_ArkUI_LinearGradientOptions* OH_ArkUI_LinearGradientOptions_Create();

/**
 * @brief Destroys a linear gradient options objectQ=s Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object%DLinearGradientOptions_Destroy(OH_ArkUI_LinearGradientOptions* option]"s angle of linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param angle Start angle of linear gradient.
 * @return Returns the result codPRLinearGradientOptions_SetAngle(OH_ArkUI_LinearGradientOptions* options, float angl"s angle of linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param angle Pointer to the start angle of linear gradient.
  * @return Returns the result codPYLinearGradientOptions_GetAngle(const OH_ArkUI_LinearGradientOptions* options, float* angl!)Sets direction of linear gradient optionsQ=s Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> objectDirection of linear gradient.
 * The parameter type is {@link ArkUI_LinearGradientDirection}.
 * @return Returns the result codPdLinearGradientOptions_SetDirection(OH_ArkUI_LinearGradientOptions* options,
    ArkUI_LinearGradient%)Gets direction of linear gradient optionsQ=s Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object&direction of linear gradient.
 * The parameter type is {@link ArkUI_LinearGradientDirection}.
 * @return Returns the result codPLinearGradientOptions_GetDirection(const OH_ArkUI_LinearGradientOptions* options,
    ArkUI_LinearGradientDirection* direction);Sets whether colors are repeated in linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Whether colors are repeated.
 * @return Returns the result codPWLinearGradientOptions_SetRepeating(OH_ArkUI_LinearGradientOptions* options, bool repeat5;Gets whether colors are repeated in linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param repeating Pointer to whether colors are repeated.
 * @return Returns the result codPcLinearGradientOptions_GetRepeating(
    const OH_ArkUI_LinearGradientOptions* options, bool* repeat5+Sets color stops of linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           The nYumber of elements in colors and stops must be the same.
 * @return Returns the result codPLinearGradientOptions_SetColorStop(
    OH_ArkUI_LinearGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSiz(s color stops of linear gradient optionsQs Pointer to the <b>OH_ArkUI_LinearGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           The number of elements in colors and stops must be the same.
 *                           It should be largUer than writeLength,
 *                           otherwise the operation will returnd.
 * @param writeLength Number of color stops actually written.
 * @return Returns the result code.
 *         Returns {@link AS*+ReturnsA(v+} occursPLinearGradientOptions_GetColorStop(
    const OH_ArkUI_LinearGradientOptions* options, uint32_t* colors, float* stops, int32_t *colorsAndStopsSize,
    int32_t* writeLengp:s a radial gradient options object.
 * The returned object must be released by calling <b>OH_ArkUI_RadialGradientOptions_DestroPy</b>.
 *
 * @return Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> objectOH_ArkUI_RadialGradientOptions* OH_ArkUI_RadialGradientOptions_Create();

/**
 * @Ebrief Destroys a radial gradient options objectQ=s Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object&CadialGradientOptions_Destroy(OH_ArkUI_RadialGradientOptions* option]$s centerX of radial gradient optionsQ=s Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object$?X-coordinate of center point.
 * @return Returns the result codPGadialGradientOptions_SetCenterX(OH_ArkUI_RadialGradientOptions* options1%!'Gets centerX of radial gradient optionsQ=s Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object$NPointer to the X-coordinate of center point.
 * @return Returns the result codPbadialGradientOptions_GetCenterX(
    const OH_ArkUI_RadialGradientOptions* options, float* centerXD"centerY of radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Y-coordinate of center point.
 * @return Returns the result codPGadialGradientOptions_SetCenterY(OH_ArkUI_RadialGradientOptions* optionsE&!'Gets centerY of radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param centerY Pointer to the Y-coordinate of center point.
  * @return Returns the result codPZadialGradientOptions_GetCenterY(
    const OH_ArkUI_RadialGradientOptions* options, float*L&#s radius of radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Radius of radial gradient.
 * @return Returns the result codPFadialGradientOptions_SetRadius(OH_ArkUI_RadialGradientOptions* options/##s radius of radial gradient optionsQ=s Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object@the radius of radial gradient.
 * @return Returns the result codPYadialGradientOptions_GetRadius(
    const OH_ArkUI_RadialGradientOptions* options, float*;Sets whether colors are repeated in radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Whether colors are repeated.
 * @return Returns the result codPVadialGradientOptions_SetRepeating(OH_ArkUI_RadialGradientOptions* options, bool repeat5;Gets whether colors are repeated in radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Pointer to whether colors are repeated.
 * @return Returns the result codPbadialGradientOptions_GetRepeating(
    const OH_ArkUI_RadialGradientOptions* options, bool* repeat5+Sets color stops of radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Pointer to the color array.
 * @param stops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           The nYumber of elements in colors and stops must be the same.
 * @return Returns the result codPadialGradientOptions_SetColorStop(
    OH_ArkUI_RadialGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSiz(s color stops of radial gradient optionsQs Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param colors Buffer pointer to the color array.
 * @param stops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           The number of elements in colors and stops must be the same.
 *                           It should be largGer than writeLength,
 *             otherwise the operation will returnd.
 * @param writeLength Number of color stops actually written.
 * @return Returns the result code.
 *         Returns {@link AS*+ReturnsA(v+} occursPadialGradientOptions_GetColorStop(
    const OH_ArkUI_RadialGradientOptions* options, uint32_t* colors, float* stops, int32_t c)olorsAndStopsSize,
    int32_t* writeLengpHEnumeration of the policy for mounting child node to the target node.
 *Ptypedef enum {
    /**
     * If you want to mount a RenderNode as a child node, that RenderNode must be the only child.
     *
     * @since 26.0.0
     */
    OH_ARKUI_NODE_MOUNT_POLICY_SINGLE_IF_RENDER_NODE = 0,
    /**
     * Multiple child nodes of type Node or RenderNode allowed.
     *
     * @since 26.0.0
     */
    OH_ARKUI_NODE_MOUNT_POLICY_MIXED = 1,
} OH_ArkUI_NodeM
ountPolicy:V7TYPE_H
/** @} */
A݊kx   '5Qnode.h+type definitions for <b>NativeNode</b> APIsNODE_H
#define ARKUI_NATIVE_NODE_H

#include "native_type.h"
#include "ui_input_event.h"

#ifdef __cplusplus
#include <cstdint>!
#else
#include <stdint.h>
#endif> components max function}#define MAX_NODE_SCOPE_NUM 1000F)ArkUI component types that can be created) xCustom node. */
    ARKUI_NODE_CUSTOM = 0,
    /** Text. */
    ARKUI_NODE_TEXT = 1,
    /** Text span. */
    ARKUI_NODE_SPAN = 2,
    /** Image span. */
    ARKUI_NODE_IMAGE_SPAN = 3,
    /** Image. */
    ARKUI_NODE_IMAGE = 4,
    /** Toggle. */
    ARKUI_NODE_TOGGLE = 5,
    /** Loading icon. */
    ARKUI_NODE_LOADING_PROGRESS = 6,
    /** Single-line text input. */
    ARKUI_NODE_TEXT_INPUT = 7,
    /** Multi-line text input. */
    ARKUI_NODE_TEXT_AREA = 8,
    /** Button. */
    ARKUI_NODE_BUTTON = 9f+RNODE_PROGRESS = 10,
    /** Check box. */
    ARKUI_NODE_CHECKBOX = 11,
    /** XCNODE_XCOMPONENT = 12,
    /** Date picker. */
    ARKUI_NODE_DATE_PICKER = 13,
    /** Time picker. */
    ARKUI_NODE_TIME_PICKER = 14,
    /** Text picker. */
    ARKUI_NODE_TEXT_PICKER = 15,
    /** Calendar picker. */
    ARKUI_NODE_CALENDAR_PICKER = 16,
    /** SNODE_SLIDER = 17,
    /** Radio */
    ARKUI_NODE_RADIO = 18,
    /** Image animator. */
    ARKUI_NODE_IMAGE_ANIMATOR = 19,
     /** XComponent of type TEXTUREq+&9NODE_XCOMPONENT_TEXTURE,
    /** Check box group.
     * !Q4NODE_CHECKBOX_GROUP = 21,
    /**
     * TextEditor.P$NODE_TEXT_EDITOR = 22,
    /** Stack~\NODE_STACK = MAX_NODE_SCOPE_NUM,
    /** Swiper. */
    ARKUI_NODE_SWIPER,
    /** Scrolling~NODE_SCROLL,
    /** List. */
    ARKUI_NODE_LIST,
    /** List item. */
    ARKUI_NODE_LIST_ITEM,
    /** List item group. */
.    ARKUI_NODE_LIST_ITEM_GROUP,
    /** Column~NODE_COLUMN,
    /** Row~NODE_ROW,
    /** Flex~NODE_FLEX,
    /** Refresh NODE_REFRESH,
    /** Water flow~^NODE_WATER_FLOW,
    /** Water flow item. */
    ARKUI_NODE_FLOW_ITEM,
    /** Relative layoutNODE_RELATIVE_CONTAINER,
    /** Grid. */
    ARKUI_NODE_GRID,
    /** Grid item. */
    ARKUI_NODE_GRID_ITEM,
    /** Custom s2pan. */
    ARKUI_NODE_CUSTOM_SPAN,
    /**
     *-C_"NODE_EMBEDDED_COMPONENT,NcIN/NODE_UNDEFINED,
    /**
     * Picker containerT% NODE_PICKER = 1018,
} ArkUI_Node:`general input parameter structure of the {@link setAttribute} function. The property
 * setting interfaces can utilize the memb:er variables within it to store data of specific parameter/:$o%
A number array, used to store parameters of the number array type. */
    const ArkUI_NumberValue* value;
    /** The size of tZhe number array, used together with the variable value, indicating the length of the valueQj    /** String type, used to store parameters of the string type. */
    const char* string;
    /** Objec&Iparameters of the object type. */
    void* object;
} ArkUI_AttributeItem\ style attributes that can be set) x$%width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in vp.\n
     * \n
     * Format of the return vaflue {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in vp.\n
     *
     */
    NODE_WIDTH/$%height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in vp.\n
     *
     */
    NODE_HEIGHT,
    /**
     * @bri(%e2attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *
     */
    NODE_BACKGROUND_COLOR,
    /**
    !%background image attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address;\n
     * .value[0]?.i32: whether to repeat the image. Optional.$ImageRepeat}.
     * .object:$0}. Either .string or .object must be set.\n
    $<b>+NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: image address;\n
     * +.value[0].i32: whether to repeat the image.$ImageRepeat}.\n
     * .object:$;}.\n
     *
     */
    NODE_BACKGROUND_IMAGE,
    /**
    !%padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in vp.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[3].f32: left padding, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in vp.\n
     * .value[1].f32: right padding, in vp.\n
     * .value[2].f32: bottom padding, in vp.\n
     * .value[L3].f32: left padding, in vp.\n
     *
     */
    NODE_PADDING,
    /**
    !%component ID attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID.\n
     * \n
     * Format of the return v]alue {@link ArkUI_AttributeItem}:\n
     * .string: component ID.\n
     *
     */
    NODE_I+%interactivity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value <b>true</b> means that the component c$an interact with users, and <b>false(c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+)hat the component can interact with users\*"" \n
     *
     */
    NODE_ENABLE+%margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in vp.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: left margin, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in vp.\n
     * .value[1].f32: right margin, in vp.\n
     * .value[2].f32: bottom margin, in vp.\n
     * .value[3].f32: lef?t margin, in vp.\n
     *
     */
    NODE_MARGIN,
    /**
    !%ne attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis, in vp. The default vL0</b>.\n
     * .value[1].f32: distance to translate along the y-axis, in vpL0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis, in vp.\n
     * .value[1].f32: distance to translate along the y-axis, in vp.\n
     * .value[2].f32: dista\nce to translate along the z-axis, in vp. \n
     *
     */
    NODE_TRANSLATE,
    /**
    !%scale attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttridbuteItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis<1</b>.\n
     * .value[1].f32: scale factor along the y-axis1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis.\n
     * .value[1].f32: scale factor along the y-axis. \n
     *
     */
    NODE_SCALE,
    /**
     * @brief Defin Ie attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeDItem} parameter for setting the attribute:\n
     * .value[0].f32: Xrotation axis vector 0</b>.\n
     * .value[1].f32: Yrotation axis vector 0</b>.\n
     * .value[2].f32: Zrotation axis vector-0</b>.\n
     * .value[3].f32: rotation angle60</b>.\n
     * .value[4].f32: line of sight, that is,~D'viewpoint to the z=0 plane, in vp.
    $O,	f \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X/rotation axis vector.\n
     * .value[1].f32: Y/rotation axis vector.\n
     * .value[2].f32: Zrotation axis vector.\n
     * .value[3].f32: rotation angle.\n
     * .value[4].f32: line of sight, that is, the distance fromDRviewpoint to the z=0 plane, in vp. \n
     *
     */
    NODE_ROTATE,
    /**
    =rightness attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_A[ttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: brightness value1.0</b>, and the recommended value range is [0, 2]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:^\n
     * .value[0].f32: brightness value. \n
     *
     */
    NODE_BRIGHTNESS,
    /**
    saturation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_]AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: saturation value1.0</b>, and the recommended value range is [0, 50). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}D: \n
     * .value[0].f32: saturation value. \n
     *
     */
    N`
    =lur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: blur radius. A larger value indicates a higher blur degrePe. If the value is <b>0</b>,
     * the component is not blurred. The unit is vp0.0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
     * the image is not blurred. The unit is vp. -\n
     *
     */
    NODE_BLUR,
    /**
    gradient attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient. This attribute takes effect only when
     **& is set to <b> ZCUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)180</b>. \n
     * .value[1].i32: direction of the linear gradient. When it is set, the <b>angle</b> attribute does not take ef
fect.
    >&: \n
     * .value[2].i32: whether the@<b>false</b>. \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid dcolors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stoplor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: start angle of the linear gradient. \n
     * .value[1].i32: direction of the linear gradient. It does not tIake effect when <b>angle</b> is set. \n
     * .value[2].i32: whether the@ \n
     * .object: array of color stops, each of which consists of a color and its stop position.
     * Invalid colors are auWtomatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stopelor stops. \n
     * size: number of colors. \n
     *
     */
    NODE_LINEAR_GRADIENT,
    /**
    alignment attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignm
ent}.
    $<b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_ALIGNMENT,
    /**
     * @brief Defin0%opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity value. The value ranges from9 0 to 1. \n
     *
     */
    NODE_OPACITY,
    /**
    !%border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders. \n
     * 2: .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border. \n
     * .value[1].f32: width of the right border. \n
     * .value[2].f32: width of the bottom border. \n
     * .value[3].f32: width of the left border. \n
     *
     */
    NODE_BORDER_WIDTH,
    /**
    !%border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners. \n
     * 2: .value[0].f32:> . \n
     * .value[1].f32:!. \n
     * .value[2].f32: . \n
     * .value[3].f32:.e. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32:> . \n
     * .value[1].f32:!. \n
     * .value[2].f32: . \n
     * .value[3].f32:.8. \n
     *
     */
    NODE_BORDER_RADIUS,
    /**
    !%border color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
     * .value[3].u32: color of the left border, in 0xARGB format, foSr example, <b>0xFFFF11FF</b>. \n
     *
     */
    NODE_BORDER_COLOR,
    /**
    !%border line style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].i32: line style of the four borders. The paramBorderStyle}.
    $<b>k?</b>. \n
     * 2: .value[0].i32: line style of the top border.$BorderStyle}.
    $<b>k></b>. \n
     * .value[1].i32: line style of the right border.$BorderStyle}.
    $<b>k?</b>. \n
     * .value[2].i32: line style of the bottom border.$BorderStyle}.
    $<b>k=</b>. \n
     * .value[3].i32: line style of the left border.$BorderStyle}.
    $<b>k</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: line style of the top border. \n
     * .value[1].i32: line style of the right border. \n
     * .value[2].i32: line style of the bottom border. \n
j     * .value[3].i32: line style of the left border. \n
     *
     */
    NODE_BORDER_STYLE,
    /**
    !%z-index attribute for the stack sequence.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: z-index value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: z-index value. \n
     *
  $   */
    NODE_Z_INDEX,
    /**
    !%visibility attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show or hide the component. The parameteVisibility}.
    $<b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0],.i32: whether to show or hide the component.$Visibility}.
    $T<b>ARKUI_VISIBILITY_VISIBLE</b>. \n
     *
     */
    NODE_VISIBILITY,
    /**
    !%clipping and masking attribute, which can be set, reset, and obtained as required through
     * APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to clip the component base(d on the parent container bounds.
     *+clip the component\*" \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to clip the compon0ent based on the parent container bounds.
     *+clip the component\*". \n
     *
     */
    NODE_CLIP,
    /**
    !%on the component.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
     * which supports four types of shapes:\n
     * 1. Rectangle:\n
  "   * .value[0].i32: type of shape.$ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n^
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5]?.f32:
+rectangular shape.\n
     * .value[6]?.f32:M"
+rectangular shape.\n
     * .value[7]?.f32:	 2of the rectangular shape.\n
     * .value[8]?.f32:"J of the rectangular shape.\n
     * ?.object: clipOption of the rectangle.$RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type ics rectangle, and .size must be equal to 1.
     * 2. Circle:\n
     * .value[0].i32: type of shape.$"ClipType}.
     * The value is <b>_</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * #?.object: clipOption of the circle.$RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type i`s circle, and .size must be equal to 1.
     * 3.Ellipse:\n
     * .value[0].i32: type of shape.$"ClipType}.
     * The value is <b></b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
    ' * ?.object: clipOption of the ellipse.$RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type i_s ellipse, and .size must be equal to 1.
     * 4. Path:\n
     * .value[0].i32: type of shape.$ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * ?.object: clipOption of the path.$RenderNodeClipOption} type.
     * It takes effect when only the .object parameter is passed, ArkUI_RenderNodeClipOption type is path, and .size must be equal to 1.
     * Format of the return value {@link ArkUI_AttributeItem}, which supports four types Iof shapes: \n
     * 1. Rectangle:\n
     * .value[0].i32: type of shape.$ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape. \n
     * .value[1].f32: width of the rectangle.\n
     * .value[2].f32: height of rectangle.\n
     * .value[3].f32: width of the rounded corner of the rectangle.\n]
     * .value[4].f32: height of the rounded corner of the rectangle.\n
     * .value[5].f32:
+rectangular shape; \n
     * .value[6].f32:M"
+rectangular shape; \n
     * .value[7].f32:	 2of the rectangular shape; \n
     * .value[8].f32:"4 of the rectangular shape; \n
     * .value[9]?.f32:fset of the rectangle. \n
     * .value[10]?.f32: vertical coordinate offset of the rectangle. \n
     * 2. Circle:\n
     * .value[0].i32: type of shape.$"ClipType}.
     * The value is <b>_</b> for the circle shape.\n
     * .value[1].f32: width of the circle.\n
     * .value[2].f32: height of the circle.\n
     * .value[3]?.f32:fset of the circle.\n
     * .value[4]?.f32: vertical coordinate offset of the circle.\n
     * 3.Ellipse:\n
     * .value[0].i32: type of shape.$"ClipType}.
     * The value is <b></b> for the ellipse shape.\n
     * .value[1].f32: width of the ellipse.\n
     * .value[2].f32: height of the ellipse.\n
     * .value[3]?.f32:fset of the ellipse.\n
     * .value[4]?.f32: vertical coordinate offset of the ellipse.\n
     * 4. Path:\n
     * .value[0].i32: type of shape.$ClipType}.
     * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
     * .value[1].f32: width of the path.\n
     * .value[2].f32: height of the path.\n
     * .string: command for drawing the path.\n
     *
     */
    NODE_CLIP_SHAPE,
  
  /**
    !%transform attribute, which can be used to translate, rotate, and scale images.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32:ʛh\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32:ʛ2\n
     *
     */
    NODE_TRANSFORM,
    /**
    !%hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linka ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: hit test mode.$HitTestMode}.
    $<b>n0m</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: hit test mode. The paHitTestMode}.
    $<b>n0m@</b>. \n
     *
     */
    NODE_HIT_TEST_BEHAVIOR,
    /**
    !%offset attribute, which specifies the offset of the component's upper left corner relative
     * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y coordinate. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate. \n
     * .value[1].f32: Y> coordinate. \n
     *
     */
    NODE_POSITION,
    /**
    !%shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttrVibuteItem} parameter for setting the attribute:\n
     * .value[0].i32: shadow effect.$ShadowStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shadow effect.$=ShadowStyle}. \n
     *
     */
    NODE_SHADOW,
    /**
    !%custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@liUnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32:!J, in vp.\n
     * .value[1]?.i32: whether to enable the coloring strategy.+enable the coloring
     * strategy, and <b>0</b> (default value) means the opposite.\n
     * .value[2]?.f32: offset of the sh'x-axis, in px.\n
     * .value[3]?.f32:&E, in px.\n
     * .value[4]?.i32: shadow type {@link ArkUI_ShadowType!SHADOW_TYPE_COLOR</b>.\n
     * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     *, .value[6]?.u32: whether to fill the shadow.+fill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     * \n
     * Format of the return value {@link ArkUI_Attr#ibuteItem}:\n
     * .value[0].f32:!b, in vp.\n
     * .value[1].i32: whether to enable the coloring strategy. \n
     * .value[2].f32: &x-axis, in px.\n
     * .value[3].f32:&D, in px.\n
     * .value[4].i32: shadow type {@link ArkUI_ShadowType!SHADOW_TYPE_COLOR</b>.\n
     * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * *.value[6].u32: whether to fill the shadow.+nfill the shadow, and <b>0</b>
     * means the opposite.\n
     *
     */
    NODE_CUSTOM_SHADOW,
    /**
    !%background image width and height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the image. Th5, +∞), and the unit is vp. \n
     * .value[1].f32:, +∞), and the unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f325: width of the image, in vp. \n
     * .value[1].f32:G, in vp. \n
     *
     */
    NODE_BACKGROUND_IMAGE_SIZE,
    /**
    !%background image size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
     *
     */
    NODE_BAC+KGROUND_IMAGE_SIZE_WITH_STYLE,
    /**
    !%background blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3]?.f32: blur degree. The value rang. \n
     * .value[4]?.f32: start boundary of grayscale blur. \n
     * .value[5]?.f32: end boundary of grayscale blur. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
     * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
     * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
     * .value[3].f32: blur degree. The v. \n
     * .value[4].f32: start boundary of grayscale blur. \n
     * .value[5].f32: end boundary of grayscale blur. \n
     *5
     */
    NODE_BACKGROUND_BLUR_STYLE,
    /**
    !%transform center attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link TArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: Xor#, in vp.\n
     * .value[1]?.f32: Yor#, in vp.\n
     * .value[2]?.f32: Zor$, in vp.\n
     * .value[3]?.f32 : Xor, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32&0.5f</b>. \n
     * .value[4]?.f32 : Yor, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32&0.5f</b>. \n
     * .value[5]?.f32 : Zor, expressed in a number that represents a percentage.
     * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32o0.0f</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Xor", in vp.\n
     * .value[1].f32: Yor", in vp.\n
     * .value[2].f32: Zor, in vp.\n
     * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
  O   * returns the calculated value in vp.
     *
     */
    NODE_TRANSFORM_CENT1$%transition opacity attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.i32:G number of times that the animation is played.\n
     * .value[5]?.i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: opacity values of the start and end points.\n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i32: nuDmber of times that the animation is played. \n
     * .value[5].i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */*
    NODE_OPACITY_TRANSITION,
    /**
    !%transition rotation attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@liTnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32:zq%\n
     * .value[1].f32: Y|q#\n
     * .value[2].f32: Z|q!G \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight0.0f</b>. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7]?.i32: animation delay duration, in milliseconds. \n
     * W.value[8]?.i32: number of times that the animation is played. \n
     * .value[9]?.i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10]?.f32: animation playback speed. \n
     * \n
  T   * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32:zq%\n
     * .value[1].f32: Y|q#\n
     * .value[2].f32: Z|q! \n
     * .value[3].f32: angle. \n
     * .value[4].f32: line of sight. \n
     * .value[5].i32: animation duration, in milliseconds. \n
     * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[7].i32: animation delay duration, in milliseconds. \n
     * .value[8].i32: number of times that the animation is played. \n
     * .value[9].i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[10].f32: animation playback speed. \n
     *
     **/
    NODE_ROTATE_TRANSITION,
    /**
    !%transition scaling attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .vFalue[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: sp. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5]?.i32: animation delay duration, in milliseconds. \n
     * .value[6O]?.i32: number of times that the animation is played. \n
     * .value[7]?.i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8]?.f32: animation playback speed. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: scale factor along the x-axis. \n
     * .vFalue[1].f32: scale factor along the y-axis. \n
     * .value[2].f32: sp. \n
     * .value[3].i32: animation duration, in milliseconds. \n
     * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * .value[5].i32: animation delay duration, in milliseconds. \n
     * .value[6]L.i32: number of times that the animation is played. \n
     * .value[7].i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[8].f32: animation playback speed. \n
     *
     */(
    NODE_SCALE_TRANSITION,
    /**
    !%transition translation attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].f32: translation distance alon!, in vp.\n
     * value[1].f32: tin'y-axis, in vp.\n
     * value[2].f32: tinz-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5]?.i32: animation delay duration, in milliseconds. \n
     *V value[6]?.i32: number of times that the animation is played. \n
     * value[7]?.i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8]?.f32: animation playback speed. \n
     * \n
    S * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: tin$!, in vp.\n
     * value[1].f32: tin'y-axis, in vp.\n
     * value[2].f32: tinz-axis, in vp.\n
     * value[3].i32: animation duration, in milliseconds. \n
     * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
     * value[5].i32: animation delay duration, in milliseconds. \n
     * Svalue[6].i32: number of times that the animation is played. \n
     * value[7].i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * value[8].f32: animation playback speed. \n
     *
     */
+    NODE_TRANSLATE_TRANSITION,
    /**
    !%slide-in and slide-out;    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuDteItem} parameter for setting the attribute:\n
     * .value[0].i32:$w}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3]?.i32: animation delay duration, in milliseconds.\n
     * .value[4]?.iJ32: number of times that the animation is played.\n
     * .value[5]?.i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
     * .value[6]?.f32: animation playback speed.\n
     * \n
     Q* Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:$w}. \n
     * .value[1].i32: animation duration, in milliseconds.\n
     * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
     * .value[3].i32: animation delay duration, in milliseconds. \n
     * .value[4].i3I2: number of times that the animation is played. \n
     * .value[5].i32:a. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
     * .value[6].f32: animation playback speed. \n
     *
     */(
    NODE_MOVE_TRANSITION,

    /**
    !%focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriFbuteItem} parameter for setting the attribute:\n
     * .value[0].i32:h1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:81 or 0.
     *
     */
    NODE_FOCUSABLE,

    /**
    !%default focus attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkMUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32:g1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32:<1 or 0.
     *
     */
    NODE_DEFAULT_FOCUS,

    /**
    !%touch target attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUNI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].f32: Xtouch point*M	", in vp. \n
     * .data[1].f32: Ytouch point*M	, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
Y     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters15lpreceding.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].f32: Xtouch point*M	", in vp. \n
     * .data[1].f32: Ytouch point*M	, in vp. \n
     * .data[2].f32: width of the touch target, in %. \n
     * .data[3].f32: height of the touch target, in %. \n
Y     * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters15Apreceding.
     *
     */
    NODE_RESPONSE_REGION,

    /**
    !%overlay attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * You can set the overlay content through .string or .object as follow, and .string has higher priority.
     * .string: mask text.\n
     * .value[0]?.i32: position of the overlay relative to the component. Optional.
    &Alignment}.
    $<b>,(5.</b> \n
     * .value[1]?.f32: offset of the overlay&Vitself on the x-axis, in vp. Optional. \n
     * .value[2]?.f32: offset of the overlay&Gitself on the y-axis, in vp. Optional.
     * \n
     * .value[3]?.i32:N    &(Direction}, supported since API 21.
    $<b>ARKUI_DIRECTION_LTR.</b> \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * \n
     * .object: the node tree used as the overlay.
     * The parNodeHandle}.
    $<b>nullptr.</b> \n
     * this parameter is conflict with .string, and it has lower priority than .string.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: mask text.\n
     * .value[0].i32: position of the overl"ay relative to the component.
    &Alignment}.
    $<b>,(4.</b> \n
     * .value[1].f32: offset of the overlay&Kitself on the x-axis, in vp. \n
     * .value[2].f32: offset of the overlay&2itself on the y-axis, in vp.
     * .value[3].i32:N    &(Direction}, supported since API 21.
    $X<b>ARKUI_DIRECTION_LTR.</b> \n
     * .object: the overlay node handle. \n
     */
    N
    !%sweep gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of _the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: Xsweep gradient center*M
\n
     * .value[1]?.f32: Ysweep gradient center*M
;\n
     * .value[2]?.f32: start point of the sweep gradient@0</b>. \n
     * .value[3]?.f32: end point of the sweep gradientE0</b>. \n
     * .value[4]?.f32: rotation angle of the sweep gradient,0</b>. \n
     * .value[5]?.i32: whether the@+hat the@,
     *]*!\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * autUomatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stoplor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Xsweep gradient center*M\n
     * .value[1].f32: Ysweep gradient center*M:\n
     * .value[2].f32: start point of the sweep gradient?0</b>. \n
     * .value[3].f32: end point of the sweep gradientD0</b>. \n
     * .value[4].f32: rotation angle of the sweep gradient+0</b>. \n
     * .value[5].i32: whether the@+hat the@,
     *]*!\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * autUomatically skipped.\n
     * colors: colors of the color stops. \n
     * stops: stopdlor stops. \n
     * size: number of colors. \n
     *
     */
    NODE_SWEEP_GRADIENT,
    /**
    Iadial gradient effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of `the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0]?.f32: Xradial gradient center*M\n
     * .value[1]?.f32: Yradial gradient center*M7\n
     * .value[2]?.f32: radius of the radial gradient,0</b>. \n
     * .value[3]?.i32: whether the@+hat the@,
     *]*! \n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * auWtomatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stoplor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Xradial gradient center*M\n
     * .value[1].f32: Yradial gradient center*M6\n
     * .value[2].f32: radius of the radial gradient+0</b>. \n
     * .value[3].i32: whether the@+hat the@,
     *]*!\n
     * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
     * autVomatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stoplor stops. \n
     * size: number of colors. \n
     *
     */
    NODE_RADIAL_GRADIENT,
    /**
     * @brief Adds a mask of the specified shape to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
     * shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB foWrmat. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.$"MaskType}.
     * The value is <b></b> for the rectangle shape.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .value[7].f32: height of the rounded corner of t&he rectangle.\n
     * .value[8]?.f32:
+rectangular shape.\n
     * .value[9]?.f32:M"
,rectangular shape.\n
     * .value[10]?.f32:	 3of the rectangular shape.\n
     * .value[11]?.f32:" of the rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type. The parameter tMaskType}.
     * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
      * .value[3].i32: mask type.$MaskType}.
      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.$MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .value[0].i32: mask type.$MaskType}.
     * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
     * .value[1].f32: current value of&\n
     * .value[2].f32: maximum value\n
     * .value[3].u32: coloru\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
     * 1. Rectangle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the rectangle.\n
     * .value[5].f32: height of the rectangle.\n
     * .value[6].f32: width of the rounded corner of the rectangle.\n
     * .valQue[7].f32: height of the rounded corner of the rectangle.\n
     * .value[8].f32:
*rectangular shape.\n
     * .value[9].f32:M"
+rectangular shape.\n
     * .value[10].f32:	 2of the rectangular shape.\n
     * .value[11].f32:" of the rectangular shape.\n
     * 2. Circle:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the circle.\n
     * .value[5].f32: height of the circle.\n
     * 3. Ellipse:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the ellipse.\n
     * .value[5].f32: height of the ellipse.\n
     * 4. Path:\n
     * .value[0].u32 fill color, in 0xARGB format. \n
     * .value[1].u32: stroke color, in 0xARGB format. \n
     * .value[2].f32: stroke width, in vp. \n
     * .value[3].i32: mask type.\n
     * .value[4].f32: width of the path.\n
     * .value[5].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * 5. Progress:\n
     * .val;ue[0].i32: mask type.\n
     * .value[1].f32: current value&\n
     * .value[2].f32: maximum value\n
     * .value[3].u32: color_\n
     *
     */
    NODE_MASK,
    /**
     * @brief Blends the component's background with ta's child node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@li`nk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: blend mode.$	BlendMode?
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].?i32:)$&}.
    $<b>BLEND_APPLY_TYPE_FAST</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: blend mode.$	BlendMode>
     * <b>ARKUI_BLEND_MODE_NONE</b>. \n
     * .value[1].i32:)$&}.
    $Q<b>BLEND_APPLY_TYPE_FAST</b>. \n
     *
     */
    NODE_BLEND_MODE,
    /**
    H>main axis.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link APrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:in axis.\n
    &	Direction!DIRECTION_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: directiin axis.\n
    &	Direction!FDIRECTION_AUTO</b>. \n
     *
     */
    NODE_DIRECTION,
    /**
    !%6s.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     *
   +  */
    NODE_CONSTRAINT_SIZE,
    /**
    !%grayscale effect.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
     *
     */
    NODE_GRAY_SCALE,
    /**
     * @brief Inverts the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates a 50% image inversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: image inversion ratio. TheI value ranges from 0 to 1.\n
     *
     */
    NODE_INVERT,
    /**
    !%sepia conversion ratio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
     * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
     *
  "   */
    NODE_SEPIA,
    /**
    !%contrast attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
     * A larger value indicates a higher contrast. Value range: [0, 10).\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: contrast. Value range: [0, 10).\n
     *
     */
    NODE_CONTRAST,
    /**
    !%foreground color attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format.\n
     *
     */
  &  NODE_FOREGROUND_COLOR,

    /**
    !%offset of the component's child relative to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : offset along the y-axis, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 : offset along the x-axis, in vp. \n
     * .value[1].f32 : ofMfset along the y-axis, in vp. \n
     *
     */
    NODE_OFFSET,
    /**
    anchor for locating the component's child.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: X coordinate o(anchor, in vp.\n
     * .value[1].f32: Yanchor, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: X coordinate (anchor, in vp.\n
     * .value[1].f32: YCanchor, in vp.\n
     *
     */
    NODE_MARK_ANCHOR,

    /**
    !%^position of the background image in the component, that is, the coordinates relative to
     *MThis attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].?i32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
    $<b>,(</b>. \n
     * .value[3].?i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The defa$<b>ARKUI_DIRECTION_AUTO</b>. \n
     * In most cases, this parameter should be set to Auto, this allowing the system to handle
     * the layout direction automatically. If you need to keep a specific direction in any situation, set it to
     * either LTR (Left-to-Right) or RTL (Right-to-Left). Optional.
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: position along the x-axis, in px. \n
     * .value[1].f32: position along the y-axis, in px. \n
     * .value[2].ib32: the alignment mode. The data type is {@link ArkUI_Alignment}, and supported since API 21.
    $<b>,(</b>. \n
     * .value[3].i32: the direction. The type is {@link ArkUI_Direction}, and supported since API 21.
     * The defau$X<b>ARKUI_DIRECTION_AUTO</b>. \n
     */
    NODE_BACKGROUND_IMAGE_POSITION,
    /**
    alignment rule\    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuMteItem} parameter for setting the attribute:\n
     * .object: Use the {@link@} object as the component’s alignment rule. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use the {@link@b} object as the component’s alignment rule. \n
     *
     */
    NODE_ALIGN_RULES,
    /**
    _ of tparent container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {k@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of tparent container.\n
    &ItemAlignmen"AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of tparent container.\n
    &ItemAlignmen"=AUTO</b>. \n
     *
     */
    NODE_ALIGN_SELF,
    /**
    percentage of the parent container's remaining space that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent containejr's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_GROW,
    /**
    percentage of the parent container's shrink size that is allocated to the component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's shri`nk size that is allocated to the component. \n
     *
     */
    NODE_FLEX_SHRINK,
    /**
    =ase size* This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
     *
     */
    NODE_FLEX_BASIS,
    /**
    group. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribZuteItem} parameter for setting the attribute:\n
     * .value[0].i32: Accessibility group.+hat t)A
     * form an entire selectable component.
     * In this case,/ will no longer be available for the content of.
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * ."value[0].i32: Accessibility group.+hat t)A
     * form an entire selectable component.
     * In this case,/ will no longer be available for the content off.
     * The value is <b>1</b> or <b>0</b>.
     *
     */
    NODE_ACCESSIBILITY_GROUP,

    /**
    text. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility text.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility text.
     *
     */
    NODE_ACCESSIBILITY_TEXT,

    /**
     *  model. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttricbuteItem} parameter for setting the attribute:\n
     * .value[0].i32: accessibility service model.$NMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: accessibility service model.$N@Mode}.
     *
     */
    NODE_ACCESSIBILITY_MODE,

    /**
    description.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility description.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: accessibility description.
     *
     */
    NODE_ACCESSIB ILITY_DESCRIPTION,

    /**
    !%focused state. This attribute can be set and obtained as required through APIs.
     * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
     * of the page to the root container.
     * 
     *g Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:h1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32::1 or 0.
     *
     */
    NODE_FOCUS_STATUS,
    /**
    !%aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUMI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32:component, in width/height format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32:Xcomponent, in width/height format. \n
     *
     */
    NODE_ASPECT_RATIO,
    /**
    !%weight of the component within its row, column, or flex container for proportional
     * distribution of available space within the container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: weight of the component along the main a\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: weight of the component alo6\n
     *
     */
    NODE_LAYOUT_WEIGHT,
    /**
    play priority for the component in the row, column, or flex  (single-line) container.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attrib0ute:\n
     * .value[0].u32: display priority ofh=  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: display priority of the coo=: \n
     *
     */
    NODE_DISPLAY_PRIORITY,
    /**
    thickness of an element's outline.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of the bottom outline. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: thickness of the left outline. \n
     * .value[1].f32: thickness of the top outline. \n
     * .value[2].f32: thickness of the right outline. \n
     * .value[3].f32: thickness of tIhe bottom outline. \n
     *
     */
    NODE_OUTLINE_WIDTH,
    /**
    !%width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width, in percentage.\n
     *
     */
    NODE_WIDTH_PERCENT,
    /**
    !%height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: height, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: height, in percentage.\n
     *
     */
    NODE_HEIGHT_PERCENT,
    /**
    !%padding attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same padding for the four directions. \n
     * .value[0].f32: padding, in percentage.\n
     * 2: Specify different paddings for different directions. \n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top padding, in percentage.\n
     * .value[1].   f32: right padding, in percentage.\n
     * .value[2].f32: bottom padding, in percentage.\n
     * .value[3].f32: left padding, in percentage.\n
     *
     */
    NODE_PADDING_PERCENT,
    /**
    !%margin attribute, which can be set, reset, and obtained as required through APIs.
     *
     * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
     * 1: Specify the same margin for the four directions. \n
     * .value[0].f32: margin, in percentage.\n
     * 2: Specify different margins for different directions. \n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: top margin, in percentage.\n
     * .value[1].f32: right margin, in percentage.\n
     * .value[2].f32: bottom margin, in percentage.\n
     * .value[3].f32: left margin, in percentage.\n
     *
     */
    NODE_MARGIN_PERCENT,

    /**
      * @brief The implicit shared element transition within the component supports attribute setting,
      * attribute reset, and attribute acquisition interfaces.
      *
      * Attribute setting method parameter {@link ArkUI_AttributeIt&em} format: \n
      * .value[0]?.i32:1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is false, and the original position will remain unchanged if not involved. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components 
bound to the same id. \n
      *\n
      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32:1 or 0. 2 components that share element bindings,
      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
      * the default is not false, if not involved, the original position will remain unchanged. \n
      * .string is used to set the binding relationship. Set the id to "" to
      * clear the binding relationship to avoid participating in sharing behavior. \n
      * The id can be changed and the binding relationship re-established.
      * The same ID can only be bound to two components and they are in/out roles of different types.
      * Multiple components`bound to the same id. \n
      */
    NODE_GEOMETRY_TRANSITION,

    /**
      * @brief specifieothe chain formed by this component as the chain head,
      * and supports attribute setting, attribute reset and attribute acq&uisition interfaces.
      *
      * O)parent container is RelativeContainer
      *
      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
      * .value[0].i32: TRchain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link(}. \n
      *\n
      * .value[0].i32: TRchain. Enum {@link ArkUI_Axis}. \n
      * .value[1].i32: Chain style. Enum {@link}. \n
      */
    NODE_RELATIVE_LAYOUT_CHAIN_MODE,

    /**
     * @brief Set the component content filling method in the process of width and height animation,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
     *
     */
    NODE_RENDER_FIT,

    /**
     * @brief External stroke color properties, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
     * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
     * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
     * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
     *
     */
%    NODE_OUTLINE_COLOR,

    /**
    eight and width dimensions, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Width value, unit is vp;\n
     * .value[1].f32: Height value, unit is vp;\n
     *
     */
    NODE_SIZE,

    /**
    Ncurrent component and child component are
     * rendered off the screen first and then fused with the parent control,
     * supporting property setting, property reset and property acquisition.
     *
     * Format of the {@link ArkUI_AttributeItem} pa:rameter for setting the attribute:\n
     * .value[0].i32:h1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:1 or 0.
     *
     */
    NODE_RENDER_GROUP,

    /**
     * @brief Add color overlay effect to components, support property setting,
     * property reset and property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
     *
     */
    NODE_COLOR_BLEND,

    /**
     * @brief Provide content ambiguity capability for the current component,
     * support property setting, property reset, property acquisition interface.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Represents the content blurring styl1BlurStyle} enumeration value.\n
     * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3]?.f32: blur degree=. \n
     * .value[4]?.f32 It is a gray-level fuzzy parameterA,127].\n
     * .value[5]?.f32 It is a gray-level fuzzy parameter,127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 Represents the content blurring styl1BlurStyle} enumeration value.\n
     * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
     * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
     * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
     * the {@link ArkUI_AdaptiveColor} enumeration value.\n
     * .value[3].f32: blur degree. <. \n
     * .value[4].f32 It is a gray-level fuzzy parameter@,127].\n
     * .value[5].f32 It is a gray-level fuzzy parameterE,127].\n
     *
     */
    NODE_FOREGROUND_BLUR_STYLE,

    /**
    !%component size and position for layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
o     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: X,component, in px. \n
     * .value[1].i32: Ycomponent, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in ipx. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: X,component, in px. \n
     * .value[1].i32: Ycomponent, in px. \n
     * .value[2].i32: width of the component, in px. \n
     * .value[3].i32: height of the component, in px. \n
     *
     */
    NODE_LAYOUT_RECT,

    /**
     * @brief Whether the current component supports click-to-focus capability,
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeBItem} parameter for setting the attribute:\n
     * .value[0].i32:h1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:=1 or 0.
     *
     */
    NODE_FOCUS_ON_TOUCH,

    /**
    !%border width attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: width of the four borders, in percentage. \n
     * 2: .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the top border, in percentage. \n
     * .value[1].f32: width of the right border, in percentage. \n
     * .value[2].f32: width of the bottom border, in percentage. \n
     * .value[3].f32: width of the left border, in percentage. \n
     *
     */
    NODE_BO%RDER_WIDTH_PERCENT = 85,
    /**
    !%border corner radius attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * 1: .value[0].f32: radius of the four corners, in percent age. \n
     * 2: .value[0].f32:> ), in percentage. \n
     * .value[1].f32:!), in percentage. \n
     * .value[2].f32: ), in percentage. \n
     * .value[3].f32:., in percentage. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: radius of I), in percentage. \n
     * .value[1].f32:!), in percentage. \n
     * .value[2].f32: ), in percentage. \n
     * .value[3].f32:., in percentage. \n
     *
     */
    NODE_BORDER_RADIUS_PERCENT = 86,

    /**
     * @brief Accessible ID, which can be obtained as required through APIs.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：ANccessible ID。\n
     *
     */
    NODE_ACCESSIBILITY_ID = 87,

    /**
    l"s, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} paraTmeter for setting the attribute:\n
     * .value[0].u32：accessible action types，'ActionType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32：accessible action types，'8ActionType} enumeration value.\n
     *
     */
    NODEmS = 88,

    /**
    lrole, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} pTarameter for setting the attribute:\n
     * .value[0].u32：accessible role type，NodeType} enumeration value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32accessible role type，]NodeType} enumeration value.\n
     *
     */
    NODE_ACCESSIBILITY_ROLE = 89,

    /**
    lstate, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} 9parameter for setting the attribute:\n
     * .object：t"N}.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：the parND}.\n
     *
     */
    NODE_ACCESSIBILITY_STATE = 90,

    /**
    lvalue, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} 9parameter for setting the attribute:\n
     * .object：t"Nb}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object：t"N}.\n
     *
     */
    NODE_ACCESSIBILITY_VALUE = 91,
    /**
     * @brief defines control components to extend their security zones,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0]? .u32: Set of extended security zone enumerated values {@link Ark%UI_SafeAreaType},
     * For example,}SYSTEM |}; \n
     * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
     * For example:ހ; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: extends the security zone. \n. \n
     *.value[1].u32: indicates the direction to extend the security zone. \n. \n
     *
     */
    NO'DE_EXPAND_SAFE_AREA = 92,

    /**
    !%_visible area ratio (visible area/total area of the component) threshold for invoking the
     **
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[...].f32: threshold array0 to 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
Ѷ12
     */
    /**
    !%_visible area ratio (visible area/total area of the component) threshold for invoking the
     *of the component, this enum extends the configuration capbility.
     *
     * Format of the {@link ArkUI_AttributeItem} parameHter for setting the attribute:\n
     * .value[...].f32: threshold array,0 to 1.
     * .?object: pass in one {@link } objcet for configging the ratio or other options.
     * Please note, when use this param, the ratios set through .value[...].f32 will be ignored, and the update
     * interval from it is always ignored too.
     * \n
     * Format of the return valueg {@link ArkUI_AttributeItem}:\n
     * .value[...].f32: threshold array. \n
     * .object: the {@link } objcetqK2NODE_VISIBLE_AREA_CHANGE_RATIO = 93,

    /**
    transition effect when the component is inserted or deleted.
     * This attribute can be set, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: transitio	n effect.$TransitionEffect}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: transition effect.$LTransitionEffect}. \n
     *
     */
    NODE_TRANSITION = 94,

    /**
    !%component ID.
     * This attribute can be obtained through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
     * .value[0].i32: component ID. \n
     *
     * @deprecated since 20
     * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
     */
    NODE_UNIQUE_ID = 95,

    /**
     * @brief Set the current component system focus box style.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: T
focus box and the edge	\n
     * Positive numbers represent the outer side, negative numbers represent the inner side. \n
     * Percentage is not supported. \n
     * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
     * .value[2].u32: SFocus box color. \n
     * \n
     *
     */
    NODE_FOCUS_BOX = 96,

    /**
    !%moving distance limit for the component-bound tap gesture.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: allowed moving distVance of a finger, in vp. \n
     *
     */
    NODE_CLICK_DISTANCE = 97,

    /**
    'he focus can be placed on this component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the foc*us can be placed on the current component.1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the focus can #be placed on the current component.1 or 0qHX%NODE_TAB_STOP = 98,
    
    /**
    !%backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：backdrop blur radius, in px, +∞).\n
     * .value[1]?.f32：grayscale blur settings that control the brightness of the black color.\n
     * The value r
, 127].\n
     * .value[2]?.f32：grayscale blur settings that control the darkness of the white color.\n
     * The value rang, 127].\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：backdrop blur radius, in px, +∞).\n
     * .value[1].f32：grayscale blur settings that control the brightness of the black color.\n
     * The value ra	o, 127].\n
     * .value[2].f32：grayscale blur settings that control the darkness of the white color.\n
     *	, 127].\nж@R&NODE_BACKDROP_BLUR = 99,

    /**
    !%background image resizable attribute, which can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: widt(h of the bottom edge. The unit is vp. \nж?NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,

    /**
    next focus node.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[i0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
     * .object: next focus node.$NodeHandle}.\n
     * \nж`Y$NODE_NEXT_FOCUS = 101,

    /**
    ,    *
     * @note Thecallback is not a real-time callback. The actual callback interval may differ from
     * the expected interval due to system l6oad and other factors.
     * The interval between twocallbacks will not be less than}. If the
     * provided expected interval is too short, the actual callback interval will be determined by the system load.
  .   * By default, the interval threshold of thecallback includes 0. This means that,
     * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
  l   *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object:-   &`}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:-   &}. \nжN17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,

    /**
    !%ne attribute, which supports for percentile translation input, and can be set, reset,
     * and obtained as required through APIs.\n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
     * The unit is vp only if value[3] exists and value[3] is 0of value[0] is <b>0</b>.\n
     * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
     *9 The unit is vp only if value[4] exists and value[4] is 0^of value[1] is <b>0</b>.\n
     * .value[2].f32: distance to translate along the z-axis, in vp-0</b>.\n
     * .value[3]?.i32: Whether the tin$ is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
     *  FEor example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shiftQ0.
     */-1</b>.\n
     * .value[4]?.i32: Whether the tiny-axis is specified as a percentage.
     *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
   f  *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
     */1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
     * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
     * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
     * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
     *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
     *  distance is percentage;\n
     * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
     *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
     *  distance is percentage;\n
 ҶNNODE_TRANSLATE_WITH_PERCENT = 103,

    /**
     * @brief Sets component rotation with multi-axis angle control. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} paramMeter for setting the attribute:\n
     * .value[0].f32: x-axis rotation angle50</b>. \n
     * .value[1].f32: y-axis rotation angle50</b>. \n
     * .value[2].f32: z-axis rotation angle*0</b>. \n
     * .value[3].f32: perspectivD!viewpoint to the z=0 plane, in px0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: x-axis rotation angle20</b>.
     * .value[1].f32: y-axis rotation angle50</b>. \n
     * .value[2].f32: z-axis rotation angle*0</b>. \n
     * .value[3].f32: perspectivD!viewpoint to the z=0 plane, in px	0</b>. \nжN&NODE_ROTATE_ANGLE = 104,

    /**
    !%width attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy tha,t the width of the component follows.\n
    'ayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPol3icy that the width of the component follows.\n
    'ayoutPolicy}. \nж%,NODE_WIDTH_LAYOUTPOLICY = 105,

    /**
    !%height attribute with param type LayoutPolicy, which can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: the LayoutPolicy thacomponent follows.\n
    'ayoutPolicy}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the LayoutPolicy thacomponent follows.\n
    'ayoutPolicy}. \nж%-NODE_HEIGHT_LAYOUTPOLICY = 106,

    /**
    !%:. in param type Edges, which specifies the posi.
     * by the distance relative to the parent! This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttrigbuteItem} parameter for setting the attribute:\n
     * .object indicates struct of edges for position.$7}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of edges for position.$7}. \nж%(NODE_POSITION_EDGES = 107,

    /**
    Ncomponent enables the ability to invert colors.
     * This attribute can be set , and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter t	1 or 0.\nж%*NODE_ALLOW_FORCE_DARK = 108,

    /**
    !%pF, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} param[eter for setting the attribute:\n
     * .object indicates struct of policy for pixelRound.$D}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates struct of policy for pixelRound.$D}. \nж%%NODE_PIXEL_ROUND = 109,

    /**
    >enable the default click sound effect for this component.
     * It only takes effect on supported devices, such as TV. Whether it can produce sound depends on the device's
     * sound-related settings. For example, sound effects will not be played in silFormat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The parameter value is ehither 1 or 0. 1 indicates the default click sound effect is enabled,
     * while 0 indicates it is disa1.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Indicates whether the default click sound effect is enabled for this node.\n
     * The parameter value is either 1 or 0. 1 indicates the default click Csound effect is enabled,
     * while 0 indicates it is disabled.\n@%3NODE_ENABLE_CLICK_SOUND_EFFECT = 110,

    /**
    !%attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItHem} parameter for setting the attribute: \n
     * .object indicates a pA%. The parameter type is
     * {@linkn}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .object indicates a pA%. The parameter type is
     * {@link}. \nжT%NODE_MOTION_PATH = 111,

    /**
    !%hover effect applied when the component is hovered over. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Hover effect applied when thee   &
HoverEffec"HOVER_EFFECT_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Hover effect applied when thee   &HoverEffect}. \nжTNODE_HOVER_EFFECT = 112,

    /**
     * @brief Configures the container as a focus group with the specified identifier. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a fo	cus group0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. AThis setting only takes effect when <b>isGroup</b> is <b>true</b>1</b>.
     * The value is <b>1</b> or <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
d     * .string: focus scope identifier. \n
     * .value[0]?.i32: whether the scope is a focus group0</b>. The value is <b>1</b> or <b>0</b>. \n
     * .value[1]?.i32: whether arrow keys can move focus outside the focus group. AThis setting only takes effect when <b>isGroup</b> is <b>true</b>31</b>.
     * The value is <b>1</b> or <b>0</b>. \nжT(NODE_FOCUS_SCOPE_ID = 113,

    /**
    !)mponent focus priority within a specific focus scope. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .string: focus scope ideIntifier. \n
     * .value[0]?.i32: focus priority within the focus scope.$FocusPriority}.
    $<b>ohAUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: focus scope identifier.A \n
     * .value[0]?.i32: focus priority within the focus scope.$FocusPriority}. \nжT.NODE_FOCUS_SCOPE_PRIORITY = 114,

    /**
    threshold for click events. This attribute can be set, reset, and obtained as required through APIs.
     *
     * @note If finger movement exceeds the preset distance limit, click event recognition will fail.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: distance threshold for click events.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: distance threshold for click events. \n
     ֶT;NODE_ON_CLICK_EVENT_DISTANCE_THRESHOLD = 115,

    /**
    !%component event response region. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].i32: input tool type for the response# region, specified using the {@link*"} enum. Default value: <b>$BALL</b>.
     * .data[1].f32: x-coordinate of the pointer position*M	E, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position*M	, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter order. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].i32: input tool type for the re)sponse region, specified using the {@link*"} enum. Default value: <b>$BALL</b>.
     * .data[1].f32: x-coordinate of the pointer position*M	E, in vp. \n
     * .data[2].f32: y-coordinate of the pointer position*M	, in vp. \n
     * .data[3].f32: width of the response region. The value is a percentage. \n
     * .data[4].f32: height of the response region. The value is a percentage. \n
     * .data[5...].f32: additional response regions in the same parameter orderqT.NODE_RESPONSE_REGION_LIST = 116,

    /**
    !%monopolization attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: Boolean value (1 or 0).
     * \n
   k  * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: Boolean value (1 or 0)qT+NODE_MONOPOLIZE_EVENTS = 117,

    /**
    weight of the component in a chain, which is used to re-lay out components that form the chain.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Horizontal ChainWeight.\n
     * .value[1].f32: Vertical ChainWeight.\nжTFNODE_CHAIN_WEIGHT = 118,

    /**
     * @brief Expands the layout safQ.,
     * supporting property setting, property reset, and property fetching.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
     * .value[0].u32: The region type to expand the component's layout safe area into. T!LayoutSafeAreaType.SYSTEM. {@linkA},
     * For example,/P; \n
     * .value[1].u32: The set of edges for which to ignore layout safe areaLayoutSafeAreaEdge.ALL. {@linkAEdge}; \n
     * For example:"START; \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0].u32: The region type to expand the component's layout safe area into. \n
     *.value[1].u32: The set of edges for which to ignore layout safe area. \nжT1NODE_IGNORE_LAYOUT_SAFE_AREA = 119,

    /**
    !%length of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The length of dash on the top border. \n
     * .value[1].f32: The length of dash on the right border. \n
     * .value[2].f32: The length of dash on the bottom border. \n
     * .value[3].f32: The length of dash on the left border. \nжT$NODE_DASH_WIDTH = 120,

    /**
    !%gap of dash when BorderStyle is dashed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The gap of dash on the top border. \n
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: The gap of dash on the top border. \n  
     * .value[1].f32: The gap of dash on the right border. \n
     * .value[2].f32: The gap of dash on the bottom border. \n
     * .value[3].f32: The gap of dash on the left border. \nжT"NODE_DASH_GAP = 121,

    /**
    !%align rules of child component in Stack container, which can be set, reset, and obtained as required through APIs.\n
     * The$<b> </b>. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: LocalizedAlignment mode. The data type is {@link ArkUI_LocalizedAlignment}. \n
   ԶT(NODE_LAYOUT_GRAVITY = 122,

    /**
    Iender types for drawing rounded corners when the radius of the border rounded corners is set, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Render types for drawing rounded corners. The data type is {@link ArkUI_RenderStrategy}.
     * The defaul$<b>˝</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Render types for drawFing rounded corners. The data type is {@link ArkUI_RenderStrategy}. \nжT0NODE_BORDER_RADIUS_TYPE = 123,
    
    /**
    !%inspector label attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: inspector label.\n
     * \n
     * Format of the reVturn value {@link ArkUI_AttributeItem}:\n
     * .string: inspector label.\n
     * \n")NODE_INSPECTOR_LABEL = 126,

    /**
    !%next accessibility focus id of current component for accessibility processing to find the next focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: accessibility next focus ID.
     * \n
     * Format of the return value {@link ArkUII_AttributeItem}:\n
     * .string: accessibility next focus ID.
     * \n"5NODE_ACCESSIBILITY_NEXT_FOCUS_ID = 124,

    /**
    default focus flag for accessibility services to find the default focus component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
   /  * .value[0].i32: Accessibility default focus.+hat the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Accessibility default focus. The value <+hat the component is defined as default focus in accessibility services.\n
     * The value is <b>1</b> or <b>0</b>.
     * \n
!5NODE_ACCESSIBILITY_DEFAULT_FOCUS = 125,

    /**
    !%system material attribute, which can be set, reset, and obtained as required through APIs.
     * Only devices that support sysatemMaterial can use this attribute. Otherwise, when setting this attribute,
     * the error codeNB } will be returned.
     * Whether a device supports materials can be determined by calling
     * {@link OH_ArkUI_NativeModule_GetSystemMaterialSupported}.
     * The material effect behaves differently on devices with different level of computing powers.
     * The level is defined by {@link ArkUI_MaterialLevel}, which can be obtained by
     * {@link OH_ArkUI_NativeModule_GetGlobalMaterialLevel}.
     * On devices with the computing power level of ARKUI_MATERIAL_LEVEL_SMOOTH, it affects attributes such as the
     * backgroundColor, borderWidth, borderColor, shadow.
     * On devices with the computing power levels of ARKUI_MATERIAL_LEVEL_EXQUISITE or ARKUI_MATERIAL_LEVEL_GENTLE,
     * it affects shadow attribute and adds a filter effect at the system material layer, which can produce an effect
     * similar to glass.
     *
     * Format of the {@link ArkUI_AttributeItemP} parameter for setting the attribute:\n
     * .object: system material object.$ImmersiveMaterialHandle}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: system material object.$ImmersiveMaterialHandle}.\n
     * The ArkUI_ImmersiveMaterialHandle object of the return value is a pointer to static member, *so do not release
     * the return object*NativeModule_ImmersiveMaterial_Destroy}.\nж)NODE_SYSTEM_MATERIAL = 127,

    /**
    !%content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: text content.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: text content.\n
     *
     */
    NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    !%lor attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuDteItem} parameter for setting the attribute:\n
     * .value[0].u32:For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .vablue[0].u32: font color value, in 0xARGB format.\n
     *
     */
    NODE_FONT_COLOR,
    /**
    !%font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: font size, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, in fp.\n
     *
     */
    NODE_FONT_SIZE,
    /**
    !%font style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_mAttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font style {@link ArkUI_FontStyle&,</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font style {@link ArkU@I_FontStyle}.\n
     *
     */
    NODE_FONT_STYLE,
    /**
    !%font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIL_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:\c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:&4\n
     *
     */
    NODE_FONT_WEIGHT,
    /**
    !%line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line height, in fp.\n
     *
     */
    NODE_TEXT_LINE_HEIGHT,
    /**
    !%F and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link VArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text4   $<b>pE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32:F {@link}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text decoration type {@lZ\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32:F {@link!}. \n
     *
     */
    /**
    !%F and color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link VArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text4   $<b>pE</b>.\n
     * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
     * .value[2]?.i32:F {@link}. \n
     * .value[3]?.f32: text decoration thickness scale. \n
     * \n
     * Format of the return value {@link ArkUI_Attri'buteItem}:\n
     * .value[0].i32: text2Z\n
     * .value[1].u32: text decoration color, in 0xARGB format. \n
     * .value[2].i32:F {@linkO}. \n
     * .value[3].f32: text decoration thickness scale. \n
     *
     *  I"NODE_TEXT_DECORATION,
    /**
    !%case attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text case.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text case.\n
     *
     */
    NODE_TEXT_CASE,
    /**
     * @brief Defi/%letter spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing, in fp.\n
     *
     */
    NODE_TEXT_LETTER_SPACING,
    /**
    number of lines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of lines in the text.\n
     *
     */
    NODE_TEXT_MAX_LINES,
    /**
     * @brief Horizontal alignment mode of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
     *
     */
    NODE_TEXT_ALIGN,
    /**
    !%overflow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AtVtributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode {@ArkUI_TextOverflow}\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display modeL {@ArkUI_TextOverflow}\n
     *
     */
    NODE_TEXT_OVERFLOW,
    /**
    !%font family attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: fonts, separated by commas (,).
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: fonts, separated by commas (,).
     *
     */
    NODE_FONT_FAMILY,
    /**
    !%copy option attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The defaultCOPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy Zoption {@link ArkUI_CopyOptions. \n
     *
     */
    NODE_TEXT_COPY_OPTION,
    /**
    !%baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
     *
 2    */
    NODE_TEXT_BASELINE_OFFSET,
    /**
    !%shadow attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttrGibuteItem} parameter for setting the attribute:\n
     * .value[0].f32:!D, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType!SHADOW_TYPE_COLOR</b>.\n
     * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
     * .value[3].f32: &x-axis, in vp.\n
     * .value[4].f32:&k, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32:!, in vp.\n
     * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
     * .value[2].u32: shadow color, in 0xARGB format.\n
     * .value[3].f32: &x-axis, in vp.\n
     * .value[4].f32:&A, in vp.\n
     *
     */
    NODE_TEXT_TEXT_SHADOW,
    /**
    !%minimum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkZ ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimumg    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum8    *
     */
    NODE_TEXT_MIN_FONT_SIZE,

    /**
    !%maximum font size attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkZ ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximumg    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum8    *
     */
    NODE_TEXT_MAX_FONT_SIZE,

    /**
    !%style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string?: font family. Optional. Use commas (,) to separate multiple fo`nts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.$}   $' 0 \n
     * .value[2]?.i32: font style. Optional.$FontStyle}.
    $',</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) toj separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight.$}   $' % \n
     * .value[2].i32: font style.$FontStyle}.
    $',6</b>.
     *
     */
    NODE_TEXT_FONT,

    /**
    >G    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuDteItem} parameter for setting the attribute:\n
     * .value[0].i32:O6   &c}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:O6   &}
     *
     */
    NODEڅ,
    /**
    !%indentation of the first line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: indentation of the first line. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: indentation of the fir=st line. \n
     *
     */
    NODE_TEXT_INDENT,
    /**
    !%line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArOkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:$WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter tDWordBreak}. \n
     *
     */
    NODE_TEXT_WORD_BREAK,
    /**
    !%. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeIt@em} parameter for setting the attribute:\n
     * .value[0].i32:$EllipsisMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameteJEllipsisMode}. \n
     *
     */
    NODE_TEXT_ELLIPSIS_MODE,
    /**
    !%line spacing attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line spacing, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: line spacing, in fp.\n
     *
     */
    NODE_TEXT_LINE_SPACING,
    /**
     * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
     * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
     * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
     * The capabilities need to be supported by the fonts, \n
     * Interfaces for setting, resetting, and obtaining attributes are supported. \n
     * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
     * .string: complies with the text feature format. The format is normal | \n
     * is in the format of [ | on | off],\n.
     * There can be multiple values separated by commas (,). \n
     * For example, the input format of a number with the same width is ss01 on. \n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
     */
    NODE_FONT_FEATURE,
    /**
     * @brief Setting Enable Text Recognition.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Enable text recognition, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Enable Text Recognition\n
     *
     */
    NODE_TEXT_ENABLE_DAT6A_DETECTOR,
    /**
     * @brief Set the text recogni1    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: Array of$ entity types, parameter types{@link!&}。\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...].i32：Array of entity types, parameter types{@link!&M}。\n
     *
     */
    NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
    /**
    !%e2.	text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_SELECTED_BACKGROUND_COLOR,

    /**
     * @brief The text component uses a formatted string object to set text content properties,
     * and supports property setting, property reset, and property acquisition interfaces.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object indicates formatted string data.$i}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object indicates formatted string data.$E}. \n
     */
    NODE_TEXT_CONTENT_WITH_STYLED_STRING,

    /**
    'center text vertically in the text component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting theE attribute:\n
     * .value[0].i32: whether to center text verticallyfalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to centeUr text vertically. \n
     *
     */
    NODE_TEXT_HALF_LEADING = 1029,

    /**
    !%font weight attribute, which can be set, reset, and obtained as required through APIs.
     * The font weight specified by this API is not affected by any changes in the system font weight settings.
     *
     * Format of the {@link ArkUI_AttributeItem}= parameter for setting the attribute:\n
     * .value[0].i32:\c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:&\nж@R0NODE_IMMUTABLE_FONT_WEIGHT = 1030,

    /**
    !%line count attribute, which can only be obtained as required through APIs.
     *
     * Format of the return value {@link ArkU@I_AttributeItem}:\n
     * .value[0].i32: line count of the nodeqN+NODE_TEXT_LINE_COUNT = 1031,
 
    /**
    'optimize the trailing spaces at the end of each line during text layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *k value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
     *      <b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to optDimize trailing spaces at the end of each line during text layout. \nжNNODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,

    /**
     * @brief Sets a linear gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes effect only when <b>direction</b> is set to <b> ZCUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)j180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b> =CUSTOM</b> is set, the <b>angle</b> property is ignored.
    ?% \n
     * .value[2].i32: whether the@<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parametColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    ` * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b> CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the 5linear gradient. \n
     * .value[2].i32: whether the@g \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nжNNODE_TEXT_LINEAR_GRADIENT = 1033,

    /**
     * @brief Sets a radial gradient effect for text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settingS the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center*Jtext. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center*=text. \n
     * .value[2]?.f32: radius of the radial gradient,0</b>. \n
     * .value[3]?.i32: whether the@    *+hat the@\*"i\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positilor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    < * .value[0].f32: X-coordinate of the radial gradient center*Itext. \n
     * .value[1].f32: Y-coordinate of the radial gradient center*<text. \n
     * .value[2].f32: radius of the radial gradient+0</b>. \n
     * .value[3].i32: whether the@    *+hat the@\*"h  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positi/lor stops. \n
     * size: number of colors. \nжN/NODE_TEXT_RADIAL_GRADIENT = 1034,

    /**
    of the text content.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment of the text conteGnt, specified using the {@link ArkUI_TextVerticalAlignment}
     * enum 4]3</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment ofZ the text content, specified using the {@link ArkUI_TextVerticalAlignment}
     * enum. \nжN.NODE_TEXT_VERTICAL_ALIGN = 1035,

    /**
    !)ntent align of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: content align of the text, speci9fied using the {@link ArkUI_TextContentAlign}
     * enum R5CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: content align oNf the text, specified using the {@link ArkUI_TextContentAlign}
     * enum. \nж%NODEQ5 = 1036,

    /**
    number of lines in the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: minimum number of lines in the text.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: minimum number of lines in the text.\nжK
     */
    NODE_TEXT_MIN_LINES = 1037,

    /**
     * @brief Enables the selected data detector.
     *
     * Format of the` {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whethe is enabled.\nжK=NODE_TEXT_ENABLE_SELECTED_DATA_DETECTOR = 1038,

    /**
    !%minimum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum line height.\n
     * \n
    i * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum line height.\nжK<
     */
    NODE_TEXT_MIN_LINE_HEIGHT = 1040,

    /**
    !%maximum text line height attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum line height.\n
     * \n
    i * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum line height.\nжK
     */
    NODE_TEXT_MAX_LINE_HEIGHT = 1041,

    /**
     * @brief Defines line height multiple value of text, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: line height multiple value of text.\n
     * \n
     * Format of the return value {@liVnk ArkUI_AttributeItem}:\n
     * .value[0].f32: line height multiple value of text.\nжK
     */
    NODE_TEXT_LINE_HEIGHT_MULTIPLE = 1042,

    /**
     * @brief Get the text layout manager of the text.
     *
    h * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: the layout manager of text.$TextLayoutManager}.\nжK.NODE_TEXT_LAYOUT_MANAGER = 1043,

    /**
    AWdit menu.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menu options of text.$}.\nжKNODE_TEXT_EDIT_MENU_OPTIONS = 1044,

    /**
     * @brief Bind the selection menu for text.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the custom selection menu of text.
     *     The A.\nжK3NODE_TEXT_BIND_SELECTION_MENU = 1045,

    /**
    text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options +including the menu popup policy.
     *    $v}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * .object: selection options including the menu popup policy.
     *    $v}. \nжTNODE_TEXT_TEXT_SELECTION = 1046,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether enabl-e the feature, true means enable this feature.
    $false.\n
     * \n
        * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\nж	  NODE_TEXT_ORPHAN_CHAR_OPTIMIZATION = 1047,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether e1nable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\nжTNODE_TEXT_COMPRESS_LEADING_PUNCTUATION = 1048,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the aattribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\nжTNODE_TEXT_INCLUDE_FONT_PADDING = 1049,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .valueD[0].i32:  Whether enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\nжTBNODE_TEXT_FALLBACK_LINE_SPACING = 1050,

    /**
     * @brief Set    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the marquee optio*$x_}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:$x}.\nжTNODE_TEXT_MARQUEE_OPTIONS = 1051,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. The value i,s an enum of {@link ArkUI_TextDirection}. \nжT>NODE_TEXT_DIRECTION = 1052,

    /**
     * @brief Used to set$ .
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag$\n
    #ui%_}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object:$+\n
    #ui%}.\n
     * T;NODE_TEXT_SELECTED_DRAG_PREVIEW_STYLE = 1053,

    /**
    !)?9    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the controller ofJ9
 The parameter type is
     *q)o7
 }.\nж*NODE_TEXT_CONTROLLER = 1054,

    /**
    !%content attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: content of the text span. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: content of the text span. \n
     *
     */
    NODE_SPAN_CONTENT =3 MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
    /**
    !%background style.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {]@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
     * The second parameter indicates the rounded corners. Two setting modes are available: \n
     * 1: .value[1].f32: radius of the four corners, in vp. \n
     * 2: .value[1].f32: r@!, in vp. \n
     * .value[2].f32:!!, in vp. \n
     * .value[3].f32: !, in vp. \n
     * .value[4].f32:., in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the text 
,, in 0xARGB format. \n
     * .value[1].f32:> !, in vp. \n
     * .value[2].f32:!!, in vp. \n
     * .value[3].f32: !, in vp. \n
     * .value[4].f32:.L, in vp. \n
     *
     */
    NODE_SPAN_TEXT_BACKGROUND_STYLE,
    /**
    !%baseline offset attribute
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: baseline offset, in fp. \n
     *
 2    */
    NODE_SPAN_BASELINE_OFFSET,
    /**
    !%style attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * ?.string: font family. Optional. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1]?.i32: font weight. Optional.
     * .value[2]?.i32: font style. Optional.$FontStyle}.
    $',9</b>.
     * ?.object: Optional. The font configurations.A}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: font family. Use commas (,) to separate multiple fonts. \n
     * .value[0].f32: font size, in fp. \n
     * .value[1].i32: font weight. \n
     * .value[2].i32: font style.$FontStyle}.
    $',.</b>.
     * .object: the font configurations.A}.\n@%$NODE_SPAN_FONT = 2003,

    /**
    !%font weight attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUIX_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: font weight#400.\n
     * ?.object: Optional. TQs.}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: font weight.\n
     * .object:Ps.}.\n@%NODE_SPAN_FONT_WEIGHT = 20M%%image source of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image address of the image span.\n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .:string: image address of the image span.\n
     * .object:$f}.\n
     *
     */
    NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
    /**
    !%    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuDteItem} parameter for setting the attribute:\n
     * .value[0].i32:x-$    * The value is an enum of {@linkf}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:x-$    * The value is an enum of {@linkI}. \n
     *
     */
    NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
    /**
    !%placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .4string: placeholder image source. \n
     * .object:$9}.\n
     *
     */
    NODE_IMAGE_SPAN_ALT,
    /**
    !%baseline offset attribute of the <b>ImageSpan</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     * A positive value means an upward offset, while a negative value means a downward offset.
     * The defaul$O,, and the unit is fp. \n
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: baseline offset, in fp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .val%ue[0].f32: baseline offset, in fp. \nжD13
     */
    NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,

    /**
    !%color filter of the image span.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem } parameter for setting the attribute:\n 
     * .value [0].f32 to . value [19].f32: filter matrix array. \n 
     * .size :5 x 4 filter array size. \n 
     * .object : the pointer to OH_Drawing_ColorFilter. Either . value or . object is set. \n 
     * \n 
     * Format of the return value {@ link ArkUI_AttributeItem ):\n 
     * .value [0].f32 to .value [19].f32: filter matrix array. \n 
     * .size: 5 x 4 filter array size. \n 
     * .object: the pointer to$ OH_Drawing_ColorFilter. \n 
     * aJ!NODE_IMAGE_SPAN_COLOR_FILTER = 30Mbrief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\8n
     * .value[0].i32: whether color fliter support svgfalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\nжK NODE_IMAGE_SPAN_SUPPORT_SVG2 = 3W%%image source of the <Image> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: image source.\n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .'string: image source.\n
     * .object:$\}.\n
     *
     */
    NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
    >'(    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuDteItem} parameter for setting the attribute:\n
     * .value[0].i32:/ The value is an enum of {@link ArkUI_ObjectFit}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:/k The value is an enum of {@link ArkUI_ObjectFit}. \n
     *
     */
    NODE_IMAGE_OBJECT_FIT,
    /**
    !%interpolation effect of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpFolation}. \n
     *
     */
    NODE_IMAGE_INTERPOLATION,
    /**
    >image is repeated.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
     *
     */
    NODE_IMAGE_OBJECT_REPEAT,
    /**
    !%color filter of the image.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32 to .value[19].f32: filter matrix array. \n
     * .size: 5 x 4 filter array size. \n
     * .object: the pointer to OH_Drawing_ColorFilter. +\n
     *
     */
    NODE_IMAGE_COLOR_FILT1$%auto resize attribute, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 : whether to resize the image source. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32 : whether to resize the image source. \n
7     *
     */
    NODE_IMAGE_AUTO_RESIZE,
    /**
    !%placeholder image source.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .4string: placeholder image source. \n
     * .object:$4}.\n
     *
     */
    NODE_IMAGE_ALT,
    /**
    image is draggable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the image is draggable. \n
     *
     */
    NODE_IMAGE_DRAGGABLE,
    /**
     * @brief Defi/%image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@liTnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:$ImageRenderMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The paramLImageRenderMode}. \n
     *
     */
    NODE_IMAGE_RENDER_MODE,
    /**
    image display size follows the image source size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wheter to follow, true means to follow.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].li32: wheter to follow, true means to follow.\n
     *
     */
    NODE_IMAGE_FIT_ORIGINAL_SIZE,
    /**
    !%fill color of the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: fill color, in 0xARGB format. \n
     *
     */
    NODE_IMAGE_FILL_COLOR,
    /**
     * @brief Resize the image when stretching it with array or a lattice object.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     * .object: The parameter tOH_Drawing_Lattice},add since api 24.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the left edge. The unit is vp. \n
     * .value[1].f32: width of the top edge. The unit is vp. \n
     * .value[2].f32: width of the right edge. The unit is vp. \n
     * .value[3].f32: width of the bottom edge. The unit is vp. \n
     *	 .object:]OH_Drawing_Lattice},add since api 24.\n
     *
     */
    NODE_IMAGE_RESIZABLE,
    /**
    !%synchronous image loading attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to load the image synchronously. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whethe%r to load the image synchronously. \nжN)NODE_IMAGE_SYNC_LOAD = 4012,
    /**
    !%image decoding size attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Fodrmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:@(decoding, in px.\n
     * .value[1].i32:decoding, in px.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: width of thL(decoding, in px.\n
     * .value[1].i32:decoding, in px.\nж%NODE_IMAGE_SOURCE_SIZE = 4013,
    /**
     * @brief Support the implementation of affine image transformations using floating-כ
     * This attribute can be set, reset, and obtained as required through APIs.
     * The parameter types for setting and getting should be the same.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...15].f32:ʛf\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0...15].f32:ʛ\nж%NODE_IMAGE_IMAGE_MATRIX = 401M%%image follow text direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to follows the text direction.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether! to follows the text direction.\nж%4NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015,
    /**
    !%image copy attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions!COPY_OPTIONS_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy "option {@link ArkUI_CopyOptions.\nж%+NODE_IMAGE_COPY_OPTION = 4016,
    /**
    !%image AI analysis enable attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable AI analysis for the image.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whet*her to enable AI analysis for the image.\nж% NODE_IMAGE_ENABLE_ANALYZER = 401O%%image dynamic display range attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
 l    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:!1"   $<b>!!h</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:!1.\nж%2NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018,
    /**
    !%image dynamic display brightness attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: hdr brightness. value range [0, 1]\nж%.NODE_IMAGE_HDR_BRIGHTNESS = 4019,
    /**
    !%image display direction attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: orientation {@link ArkUI_Orientation}.
    $<b>ARKUI_ORIENTATION_UP</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:( orientation {@link ArkUI_Orientation.\nж%NODE_IMAGE_ORIENTATION = 4020,
    /**
     * @brief Set the range of SVG parsing capabilities supported through enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch.\n
     * \n
     * Format of the return vJalue {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\nж%NODE_IMAGE_SUPPORT_SVG2 = 4021, 
    /**
     * @brief Set the animation effect for the image content transformation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} 6parameter for setting the attribute:\n
     * .object:$S]}.\n
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:$S}.\nж%2NODE_IMAGE_CONTENT_TRANSITION = 4022,
    /**
    !%placeholder image during loading process.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .4string: placeholder image source. \n
     * .object:$}.\nжK/NODE_IMAGE_ALT_PLACEHOLDER = 4023,
    /**
    !%placeholder image when loading fails.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: placeholder image source. \n
     * .object:$}. Either .string or .object must be set.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .4string: placeholder image source. \n
     * .object:$}.\nжKNODE_IMAGE_ALT_ERROR = 402Mbrief Configure image edge anti-aliasing via an enable switch.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: enable switch,tqfalse.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: enable switch.\n
    նT+NODE_IMAGE_ANTIALIASED = 4025,
    /**
    !%color of the component when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_SELECTED_COLOR = MAX_N/ODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    !%color of the circular slider for the component of the switch type.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the circular slider, in 0xARGB format. \n
     *9
     */
    NODE_TOGGLE_SWITCH_POINT_COLOR,
    /**
    !%toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valu^e[0].i32: whether to enable the toggle. \n
     *
     */
    NODE_TOGGLE_VALUE,

    /**
    !%color of the component when it is deselected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TOGGLE_UNSELECTED_COLOR,

  
  /**
    !%foreground color of the loading progress bar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: foreground color, in 0xARGB format. \n
     *
     */
    NODE_LOADING_PROGRESS_COLOR = MA<X_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
    /**
    )loading animation for the <LoadingProgress> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show the loading animation.
     * The value <b>true</b> means to show the loading animation, and <b>false</b> means t(c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+show the loading animation\*"J \n
     *
     */
    NODE_LOADING_PROGRESS_ENABLE_LOADING,

    /**
    !%default placeholder text of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
     * @brief*%default text content of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n6
     *
     */
    NODE_TEXT_INPUT_TEXT,
    /**
    !%caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of athe {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: careQ For example, 0xFFFF0000 indicates red.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: careQ@ \n
     *
     */
    NODE_TEXT_INPUT_CARET_COLOR,
    /**
    !%caret style attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: caret width, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: caret width, in vp. \n
     *
     */
    )NODE_TEXT_INPUT_CARET_STYLE,
    /**
    !%underline attribute of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether [to show an underline.
     * The value <b>true</b> means to show an underline, and <b>false(c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+show an underline\*"C \n
     *
     */
    NODE_TEXT_INPUT_SHOW_UNDERLINE,
    /**
    !%maximum number of characters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of characters in the text input, without a unit. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     *
     */
    NODE_TEXT_INPUT_MAX_LENGTH,
    /**
    !%type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType!69</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key^{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_INPUT_ENTER_KEY_TYPE,
    /**
    !%placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valune[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
    /**
    !%placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The dU16.0</b>.\n
     * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
    $',</b>. \n
     * .value[2]?.i32:'Optional.
    $'  \n
     * ?.string: font family. Multiple font families are separated by commas (,).
     * Example: "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font si^ze, in fp.\n
     * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
     * .value[2].i32:&\n
     * .string: font family. Multiple font families are separated by commas (,). \n
     *
     */
    NODE_TEXT_INPUT_PLACEHOLDER_FONT,
    /**
    o enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false(g\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32:+Aenable the input method when the component obtains focus,
      *]*!M \n
     *
     */
    NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
    /**
    !%box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttQributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box~InputType}.
    $<b>:ORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {@DInputType}. \n
     *
     */
    NODE_TEXT_INPUT_TYPE,
    /**
    !%e2.	text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color vadlue, in 0xARGB format. \n
     *
     */
    NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
    /**
    password icon at the end of the password text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whethe1Othe password icon at the end of the password text box.
     * The value <b>true+the password icon, and <b>false(c\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+%=the password icon at the end of the password text box,
     *]*!G \n
     *
     */
    NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
    /**
    !%ditable state for the single-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: whether to remain in the editable state. The value
     * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meansX to exit the editable state. \n
     *
     */
    NODE_TEXT_INPUT_EDITING,
    /**
    !%ancel button on the right of the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: button style {@link^A}.
    $<b>@PUT</b>.\n
     * .value[1]?.f32: button icon size, in vp.\n
     * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button style {@link^A}.\n
     * .value[1].f32: icon size, in vp.\n
     * .value[2].u32: button icon color, in 0xARGB format.\n
     * .string: butXton icon image source. \n
     *
     */
    NODE_TEXT_INPUT_CANCEL_BUTTON,
    /**
    text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: ednd position of the text selection. \n
     *
     */
    NODE_TEXT_INPUT_TEXT_SELECTION,
    /**
   !)the text underline when it is enabled.
    *
    * The default underline color configured for the theme is <b>'0x33182431'</b>.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].u32: color of the underline applied to the text being typed in.
    * The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state.
    * The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled.
    * The value is in 0xARGB format. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
    * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
    * .value[2].u32: color of the underline applied to the text when an error is detected.
    * The value is in 0xARGB format. \n
    * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB forEmat. \n
    *
    */
    NODE_TEXT_INPUT_UNDERLINE_COLOR,
    /**
   'enable autofill.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to enable autofilltrue</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to enable auItofill. \n
    *
    */
    NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
    /**
   autofill type.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: autofill type.$TextInputContentType}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: autofill type.$TTextInputContentType}. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_TYPE,
    /**
   Iules for generating passwords. When autofill is used, these rules are transparently
    * transmitted to Password Vault for generating a new password.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: rules for generating passwords. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string:` rules for generating passwords. \n
    *
    */
    NODE_TEXT_INPUT_PASSWORD_RULES,
    /**
   'elect all text[The inline mode is not supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
/    * .value[0].i32: whether to select all text[b>false</b>. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: whether to select	 all text[;\n
    *
    */
    NODE_TEXT_INPUT_SELECT_ALL,
    /**
   regular expression for input filtering.
    * Only inputs that comply with the regular expression can be displayed.
    * Other inputs are filtered out. The specified regular expression can match single characters,
    * but not strings.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .string: regular expression. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .string: regular expression. \n
    *
    */
    NODE_TEXT_INPUT_INPUT_FILTER,
    /**
   text box to the default style or inline input style.
    *
    * For the inline input style, only <b>InputType.Normal</b> is supported.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: text input style.$TextInputStyle}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: text input style.$TextInputStyle}. \n
    *
    */
    NODE_TEXT_INPUT_STYLE,
    /**
    * @brief Sets or obtains the caret position.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * In the case of setting the caret position:
    * .value[0].i32: character count from the beginning of a string to the caret position. \n
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
    * current frame, it will not take effect.
    * .value[0].i32: index of the caret position. \n
    * .value[1].f32: XcarD"ext box. \n
    * .value[2].f32: YcarD@ext box. \n
    */
    NODE_TEXT_INPUT_CARET_OFFSET,
    /**
   .position of the edited text area relative to t1size.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: horizontal coordinate. \n
    * .value[1].f32: vertical coordinate. \n
    * .value[2].f32: content width. \n
    * .value[3].f32: content height. \n
    *
4    */
    NODE_TEXT_INPUT_CONTENT_RECT,
    /**
    lines of the edited text.
    * 
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of_ lines of the edited text. \n
    *
    */
    NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
    /**
    'hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-click<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
     * right-clicked. \n
     *
     */
    NODE/_TEXT_INPUT_SELECTION_MENU_HIDDEN,
    /**
    'he text box loses focus after the Enter key is pressed to submit information.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
     *
     */
    NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
    /**
     * @brief Set up a custom keyboard.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object：custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0]?.i32：Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
     * .value[0].i32：Set whether the custom keyboard supports the avoidance function.\n
     *
     *#/
    NODE_TEXT_INPUT_CUSTOM_KEYBOA+%line break rule. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArOkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:$WordBreak}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The parameter tKWordBreak}. \n
     *
     */
    NODE_TEXT_INPUT_WORD_BREAK,

    /**
    'he keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,

    /**
(     * @brief When this property is set,textInput component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: the value of numberOfLines.\n
     *
     */
    NODE_TEXT_INPUT_NUMBER_OF_LINES,

    /**
    <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \nж@R4NODE_TEXT_INPUT_LETTER_SPACING = 7032,

    /**
    'enable preview text for the <b>TextInput</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i3$2: whether to enable preview tex. \nж@R9NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,

    /**
    'center text vertically in the textInput component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settinJg the attribute:\n
     * .value[0].i32: whether to center text verticallyfalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \nж`Y>NODE_TEXT_INPUT_HALF_LEADING = 7034,

    /**
    * @brief Set5textInput
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，t"7Type}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，th!7Type}。\n
    *
7*/
    NODE_TEXT_INPUT17 = 7035,

    /**
    >enable the auto fill animation or not.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether to enable the auto fill animation.\n
     * \n
     * Format of the return value {@link ArjkUI_AttributeItem}: \n
     * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\nжNNODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,

    /**
     * @brief Set the line height of the input node.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_:AttributeItem}: \n
     * .value[0].i32: line height valueжNNODE_TEXT_INPUT_LINE_HEIGHT = 7037,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link AWrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whethe is enabled.\nжKCNODE_TEXT_INPUT_ENABLE_SELECTED_DATA_DETECTOR = 7038,

    /**
    !%counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character coudnter. The character counter is displayed
     * when the number of characters that have been enteredPmaximum number of characters multiplied
     * by the threshold percentage value1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the numXber of entered characters reaches the maximum. \n
     * .object: counter configuration.$WU}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displa?yed
     * when the number of characters that have been enteredPmaximum number of characters multiplied
     * by the threshold percentage value1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
    $6<b>true</b>. \n
     * .object: counter configuration.$WU}.\n
     * aJNNODE_TEXT_INPUT_SHOW_COUNTER = 7040,

    /**
     * @brief Used to set or get#$n    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object:#"$_}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:#"$}.\n
     * TBNODE_TEXT_INPUT_TEXT_CONTENT_CONTROLLER_BASE = 7041,

    /**
    !%.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttHributeItem} parameter for setting the attribute:\n
     * .value[0].i32:$*EllipsisMode}, the default value
     * is0hEND. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:$!EllipsisMode}. \n
     * 
     * NODE_TEXT_INPUT_ELLIPSIS_MODE = 7042,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether 2enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\nж	  NODE_TEXT_INPUT_ORPHAN_CHAR_OPTIMIZATION = 7043,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whe7ther enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\nжTNODE_TEXT_INPUT_COMPRESS_LEADING_PUNCTUATION = 7044,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settingg the attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\nжTNODE_TEXT_INPUT_INCLUDE_FONT_PADDING = 7045,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * J.value[0].i32:  Whether enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\nжTNODE_TEXT_INPUT_FALLBACK_LINE_SPACING = 7046,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text.8 The value is an enum of {@link ArkUI_TextDirection}. \nжTDNODE_TEXT_INPUT_DIRECTION = 7047,

    /**
     * @brief Used to set$ .
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag$   #ui%_}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object:$+\n
    #ui%}.\n
     * TANODE_TEXT_INPUT_SELECTED_DRAG_PREVIEW_STYLE = 7048,

    /**
    !%input textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of thge {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode {@link ArkUI_TextOverflow}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode/ {@link ArkUI_TextOverflow}. \n
     * 
     * 3NODE_TEXT_INPUT_TEXT_OVERFLOW = 7049,

    /**
    !%F and color for single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
   5  * ?.object: Optional. The decoration style options.8 .\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. Th8 .\nжNODE_TEXT_INPUT_DECORATION = 7050,

    /**
     * @brief Sets a linear gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting tak2es effect only when <b>direction</b> is set to <b> ZCUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)j180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b> =CUSTOM</b> is set, the <b>angle</b> property is ignored.
    ?% \n
     * .value[2].i32: whether the@<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parametColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    ` * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b> CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the 5linear gradient. \n
     * .value[2].i32: whether the@g \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nжNODE_TEXT_INPUT_LINEAR_GRADIENT = 7051,

    /**
     * @brief Sets a radial gradient effect for text in the single-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative  Jtext. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center*=text. \n
     * .value[2]?.f32: radius of the radial gradient,0</b>. \n
     * .value[3]?.i32: whether the@    *+hat the@\*"i\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positilor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    < * .value[0].f32: X-coordinate of the radial gradient center*Itext. \n
     * .value[1].f32: Y-coordinate of the radial gradient center*<text. \n
     * .value[2].f32: radius of the radial gradient+0</b>. \n
     * .value[3].i32: whether the@    *+hat the@\*"h  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positi/lor stops. \n
     * size: number of colors. \nж5NODE_TEXT_INPUT_RADIAL_GRADIENT = 7052,

    /**
    !%default placeholder text for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default placeholder text. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default placeholder text. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
     * @brief D,%default text content for the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n5
     *
     */
    NODE_TEXT_AREA_TEXT,
    /**
    !%maximum number of characters in the text input.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maximum number of characters in the text input. \n
     *
     */
    NODE_TEXT_AREA_MAX_LENGTH,
    /**
     * @br'%placeholder text color.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .valume[0].u32: color value, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_COLOR,
    /**
    !%placeholder text font.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: font size, in fp. Optional. The dO16.0</b>.\n
     * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional%,</b>.\n
     * .value[2]?.i32:'Optional7\n
     * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: font size, Zin fp.\n
     * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
     * .value[2].i32:&\n
     * .string: font family. Multiple font families are separated by commas (,). \n
     *
     */
    NODE_TEXT_AREA_PLACEHOLDER_FONT,
    /**
    !%caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_CARET_COLOR,
    /**
     * @brief Defin0%ditable state for the multi-line text box.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
     * editable state, and <b>false</b> means to exit the editable state.\n \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
     * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
     * state, and <b>false</b> meansY to exit the editable state.\n \n
     *
     */
    NODE_TEXT_AREA_EDITING,
    /**
    !%box type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttQributeItem} parameter for setting the attribute:\n
     * .value[0].i32: text box~AreaType}.
    $<b>>NORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: text box type {BAreaType}. \n
     *
     */
    NODE_TEXT_AREA_TYPE,
    /**
    !%counter settings. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
     * .value[1]?.f32: threshold percentage for displaying the character coudnter. The character counter is displayed
     * when the number of characters that have been enteredPmaximum number of characters multiplied
     * by the threshold percentage value1 to 100. If the value is a decimal, it is rounded down. \n
     * .value[2]?.i32: whether to highlight the border when the numXber of entered characters reaches the maximum. \n
     * .object: counter configuration.$WU}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to show a character counter. \n
     * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displ@ayed
     * when the number of characters that have been enteredPmaximum number of characters multiplied
     * by the threshold percentage value1 to 100. \n
     * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
    $6<b>true</b>. \n
     * .object: counter configuration.$WU2}. \n
     *
     */
    NODE_TEXT_AREA_SHOW_COUNT1'hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-click<b>false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
     * or right-clicked. \n
     *
     */
    NODE._TEXT_AREA_SELECTION_MENU_HIDDEN,
    /**
    'he multi-line text box loses focus after the Enter key is pressed to submit information.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the text box loses focus. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the text box loses focus. \n
   ;  *
     */
    NODE_TEXT_AREA_BLUR_ON_SUBMIT,
    /**
    regular expression for input filtering.
     * Only inputs that comply with the regular expression can be displayed.
     * Other inputs are filtered out. The specified regular expression can match single characters,
     * but not strings.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: regular expression. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: regular expression. \n
     *
     */
    NODE_TEXT_AREA_INPUT_FILT1$%e2.	text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: co   lor vaclue, in 0xARGB format. \n
     *
     */
    NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
    /**
    !%type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType!69</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the Enter key]{@link ArkUI_EnterKeyType}. \n
     *
     */
    NODE_TEXT_AREA_ENTER_KEY_TYPE,
    /**
    o enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false(f\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+@enable the input method when the component obtains focus,
     *]*!L \n
     *
     */
    NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
    /**
    o enable the input method when the component obtains focus.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method when the component obtains focus.
     * The value <b>true</b> means to enable the input method, and <b>false(f\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+@enable the input method when the component obtains focus,
     *]*!@ \n
     *
     */
    NODE_TEXT_AREA_CARET_OFFSET,
    /**
    .position of the edited text area relative to t1size.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: horizontal coordinate. \n
     * .value[1].f32: vertical coordinate. \n
     * .value[2].f32: content width. \n
     * .value[3].f32: content height. \n
<     *
     */
    NODE_TEXT_AREA_CONTENT_RECT,
    /**
     lines of the edited text.
     * 
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: numberc of lines of the edited text. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_LINE_COUNT,
    /**
    text selection area, which will be highlighted.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: end position of the text selection. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: start position of the text selection. \n
     * .value[1].i32: ednd position of the text selection. \n
     *
     */
    NODE_TEXT_AREA_TEXT_SELECTION,
    /**
    'enable autofill.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0!].i32: whether to enable autofilltrue</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enableN autofill. \n
     *
     */
    NODE_TEXT_AREA_ENABLE_AUTO_FILL,
    /**
    autofill type.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: autofill type.$TextInputContentType}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: auto
fill type.$WTextInputContentType}. \n
     *
     */
    NODE_TEXT_AREA_CONTENT_TYPE,

    /**
    'he keyboard pops up when the input box gains focus.
     * It supports property setting, property reset and property acquisition interfaces.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
     * .value[0].i32: Whether to pop up the keyboard. \n
     * \n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .value[0].i32: Whether to pop up the keyboard. \n
     *
     */
    NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,

    /**
 '    * @brief When this property is set,textArea component is calculated using this property.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: set the value of numberOfLines.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Set the value of numberOfLines\n
     *
     */
    NODE_TEXT_AREA_NUMBER_OF_LINES,

    /**
    <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: letter spacing. The default unit is fp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: letter spacing. The default unit is fp. \nж@R2NODE_TEXT_AREA_LETTER_SPACING = 8023,
    /**
    'enable preview text for the <b>TextArea</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable preview tex. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32#: whether to enable preview tex. \nж@R8NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,

    /**
    'center text vertically in the textArea component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settingI the attribute:\n
     * .value[0].i32: whether to center text verticallyfalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to center text vertically. \nж`Y=NODE_TEXT_AREA_HALF_LEADING = 8025,

    /**
    * @brief Set5textArea
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32：keyboard style，t"7Type}。\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}：\n
    * .value[0].i32：keyboard style，th!7Type}。\n
    *
7*/
    NODE_TEXT_AREA17 = 8026,

    /**
     * @brief Set the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: max lines count.\nжNNODE_TEXT_AREA_MAX_LINES = 8027,

    /**
     * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line spacing value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * %.value[0].i32: line spacing value. \nжNNODE_TEXT_AREA_LINE_SPACING = 8028,

    /**
     * @brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: min lines count.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: min line count.\nжN 
     */
    NODE_TEXT_AREA_MIN_LINES = 8029,
 
    /**
     * @brief Set the max lines of the node with scroll.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: max lines count with scroll.
     * \n
     * Format of the return valVue {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: max line count with scroll.\nжNNODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,

    /**
     * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: line height value.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem},: \n
     * .value[0].i32: line height valueжNNODE_TEXT_AREA_LINE_HEIGHT = 8031,

    /**
     * @brief Define bar state of the text area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: bar state of the text area, specified using the {@link ArkUI_BarState} enum.
     * The def$<b>ARKUI_BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32Q: bar state of the text area, specified using the {@link ArkUI_BarState} enum. \nжK NODE_TEXT_AREA_BAR_STATE = 8032,

    /**
     * @brief Enables selected data detector.
     *
     * Format of the {@link ArkUUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Enable, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whethe is enabled.\nжKBNODE_TEXT_AREA_ENABLE_SELECTED_DATA_DETECTOR = 8033,

    /**
    !%color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar thumb, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the &scroll bar thumb, in 0xARGB format. \nжK NODE_TEXT_AREA_SCROLL_BAR_COLOR = 8035,

     /**
     * @brief Sets up a custom keyboard.
     *
     * Format of the {@link \ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: custom keyboard,Link ArkUI_NodeHandle}.\n
     * .value[0]?.i32: Sets whether the custom keyboard supports the avoidance feature, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:custom keyboard,The parametLink ArkUI_NodeHandle}.\n
     * .value[0].i32: Set whether the custom keyboard supports the avoidance function.\n
     *
     ݶ
KPNODE_TEXT_AREA_CUSTOM_KEYBOARD = 8036,

    /**
     * @brief Used to set or get#$n    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n 
     * .object:#"$_}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object:#"$}.\n
     * TANODE_TEXT_AREA_TEXT_CONTENT_CONTROLLER_BASE = 8037,

    /**
    !%.
     * This attribute can be set, reset, and obtained as required through APIs.
     * 
     * Format of the {@link ArkUI_AttHributeItem} parameter for setting the attribute:\n
     * .value[0].i32:$*EllipsisMode}, the default value
     * is0hEND. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:$!EllipsisMode}. \n
     * 
     * NODE_TEXT_AREA_ELLIPSIS_MODE = 8038,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether e0nable the feature true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\nжNODE_TEXT_AREA_ORPHAN_CHAR_OPTIMIZATION = 8039,

    /**
     * @brief Whether to compress punctuation at the beginning of line.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:  Whether3 enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether compress punc#tuation at the beginning of line.\nжTNODE_TEXT_AREA_COMPRESS_LEADING_PUNCTUATION = 8040,

    /**
     * @brief Determines whether the layout adds extra padding at the top and bottom to make space for characters.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting fthe attribute:\n
     * .value[0].i32: Enable include the font padding, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether include the font padding.\nжTNODE_TEXT_AREA_INCLUDE_FONT_PADDING = 8041,

    /**
     * @brief Whether to include ascent/descent from fallback fonts to prevent overlapping lines.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .Ivalue[0].i32:  Whether enable the feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether fallback line spacing.\nжTUNODE_TEXT_AREA_FALLBACK_LINE_SPACING = 8042,

    /**
     * @brief Whether to enableq^&when text is wider than the view.
    $false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the ]attribute:\n
     * .value[0].i32: Whether enable the feature, true means enable this feature. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: Whether enable the feature. \n@%NODE_TEXT_AREA_HORIZONTAL_SCROLLING = 8043,

    /**
     * @brief Writing direction of the text.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: writing direction of the text. The value is an enum of {@link ArkUI_TextDirection}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: writing direction the text. T6he value is an enum of {@link ArkUI_TextDirection}. \nжTCNODE_TEXT_AREA_DIRECTION = 8044,

    /**
     * @brief Used to set$ .
     * 
     * Format of the {@link Arkui_AttributeItem} parameter for setting the attribute:\n
     * .object: selected drag$ 
    #ui%_}.\n
     * \n
     * Format of the return value {@link Arkui_AttributeItem}:\n
     * .object:$+ 
    #ui%}.\n
     * T@NODE_TEXT_AREA_SELECTED_DRAG_PREVIEW_STYLE = 8045,

    /**
    !%area textOverflow attribute.
     * which can be set, reset, and obtained as required through APIs.
     *
     * Format of thef {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: display mode {@link ArkUI_TextOverflow}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: display mode/ {@link ArkUI_TextOverflow}. \n
     * 
     * 2NODE_TEXT_AREA_TEXT_OVERFLOW = 8046,

    /**
    !%F and color for multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
    4 * ?.object: Optional. The decoration style options.8 .\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The decoration style options. Th8 .\nжNODE_TEXT_AREA_DECORATION = 8047,

    /**
     * @brief Sets a linear gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start angle of the linear gradient.
     * The setting takes0 effect only when <b>direction</b> is set to <b> ZCUSTOM</b>.
     * A positive value indicates a clockwise rotation from the origin, (0, 0)j180</b>. \n
     * .value[1].i32: direction of the linear gradient. When a direction other than
     * <b> =CUSTOM</b> is set, the <b>angle</b> property is ignored.
    ?% \n
     * .value[2].i32: whether the@<b>false</b>.
     * .object: array of color stops, each of which consists of a color and its stop position.
     * The parametColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    ` * .value[0].f32: start angle of the linear gradient.
     * When <b>direction</b> is set to <b> CUSTOM</b>, <b>angle</b> at the set value;
     * otherwise, it is at default value. \n
     * .value[1].i32: direction of the 5linear gradient. \n
     * .value[2].i32: whether the@g \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nжNODE_TEXT_AREA_LINEAR_GRADIENT = 8048,

    /**
     * @brief Sets a radial gradient effect for text in the multi-line text box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.f32: X-coordinate of the radial gradient center relative toJtext. \n
     * .value[1]?.f32: Y-coordinate of the radial gradient center*=text. \n
     * .value[2]?.f32: radius of the radial gradient,0</b>. \n
     * .value[3]?.i32: whether the@    *+hat the@\*"i\n \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positilor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    < * .value[0].f32: X-coordinate of the radial gradient center*Itext. \n
     * .value[1].f32: Y-coordinate of the radial gradient center*<text. \n
     * .value[2].f32: radius of the radial gradient+0</b>. \n
     * .value[3].i32: whether the@    *+hat the@\*"h  \n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n
     * colors: colors of the color stops. \n
     * stops: stop positi/lor stops. \n
     * size: number of colors. \nж4NODE_TEXT_AREA_RADIAL_GRADIENT = 8049,

    /**
    !%button text content. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: default text content. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: default text content. \n
     *
     */
    NODE_BUTTON_LABE9L = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,

    /**
    =utton type. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AWttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: button type.$ButtonType}.
    $<b>@</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: button type. The paraButtonType}.
    $<b>@:</b>. \n
     *
     */
    NODE_BUTTON_TYPE,

    /**
   !%minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: minimum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: minimum font scale, in fp.
    *
    * @since 18
   0 */
    NODE_BUTTON_MIN_FONT_SCALE,

    /**
   !%maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: maximum font scale, in fp.
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].f32: maximum font scale, in fp.
    *
    * @since 18
   1 */
    NODE_BUTTON_MAX_FONT_SCALE,

    /**
    !%current value
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriTbuteItem} parameter for setting the attribute:\n
     * .value[0].f32: current value\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value of the progreb\n
     *
     */
    NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
    /**
    !%total value
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriRbuteItem} parameter for setting the attribute:\n
     * .value[0].f32: total value\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total value of the progress7\n
     *
     */
    NODE_PROGRESS_TOTAL,
    /**
    !%color for the progress value on:    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color value, inG 0xARGB format. \n
     *
     */
    NODE_PROGRESS_COLOR,
    /**
    !%type
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriKbuteItem} parameter for setting the attribute:\n
     * .value[0].i32: type! {@link ArkUI_ProgressType}.
    $<b>@DLINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the proS {@link ArkUI_ProgressType}. \n
     *
     */
    NODE_PROGRESS_TYPE,
    /**
    	thA_.
     * This attribute can be set, reset, and obtained as required through APIs.
     * If the0type is not linear, it will not take effect.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the ,attribute:\n
     * .object: Use the {@link } object to set the style. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: Use th	e {@link } object to get the style. \nж@R)NODE_PROGRESS_LINEAR_STYLE,

    /**
    check box is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the check box is selected.
     *+hat the check box is selecte[*#d \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+hat the check box is selecte[*#f \n
     * 
     */
    NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
    !%color of the check box when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for exampleQ, <b>0xFF1122FF</b>.
     *
     */
    NODE_CHECKBOX_SELECT_COLOR,

    /**
    !%border color of the check box when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * 
     */
    NODE_CHE#CKBOX_UNSELECT_COLOR,

    /**
    !%internal icon style of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * .val>ue[2]?.f32: stroke width of the internal mark, in vp. Optional2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: (stroke width of the internal mark, in vp>2</b>. \n
     *
     */
    NODE_CHECKBOX_MARK,

    /**
    !%shape of the check box.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameter tyCheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape.$ECheckboxShape}.
     *
     */
    NODE_CHECKBOX_SHAPE,

    /**
    !%name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * FormaWt of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \nж@R!NODE_CHECKBOX_NAME,

    /**
    !%name of the checkbox.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * FormaWt of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \nж@R"NODE_CHECKBOX_GROUP,

    /**
    !%IDA(    * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component ID. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component ID. \n
     *
     */
    NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
    /**
     * @brief Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
     * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
     * Attempting to change the type through {@link setAt#tribute} will cause rendering excepFormat of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type {@link ArkUI_XComponentType}. \n
     *
     */
    NODE_XCOMPONENT_TYPE,
    /**
     * @brief Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
     * Attempting to modify the size through {@link setAttribute} will have no effect.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: width, in px. \n
     * .value[1].u32: height, in px. \n
  ;   *
     */
    NODE_XCOMPONENT_SURFACE_SIZE,
    /**
    IectangZrface created byA%    * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
     * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
     * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
     * .value[3].i32: The height of the surface cr"eated by XComponent, in pixels. \nQY*NODE_XCOMPONENT_SURFACE_RECT,
    /**
    o enable the AI analyzer forA%    * This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} ;parameter for setting the attribute:\n
     * value[0].i32:g1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32:1 or 0PY.NODE_XCOMPONENT_ENABLE_ANALYZER,

    /**
    lunar calendar in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     h* Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:1%the lunar calendar in the date pickernfalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:1the lunar calendar in the date picker.
     *
     */
    NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,1$%start date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Focrmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
 /    */
    NODE_DATE_PICKER_START,
    /**
    !%nd date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forma`t of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     * 
     */
    NODE_DATE_PICKER_EN+%selected date of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     *f Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date"2024-01-22"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date.
     *
  "   */
    NODE_DATE_PICKER_SELECTE+%lor, font size, and font weight for the top and bottom items in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
   <  */
    NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    !%lor, font size, and font weight of all items except the top, bottom, and selected
     * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS MSans;normal". \n
     *
     */
    NODE_DATE_PICKER_TEXT_STYLE,
    /**
    !%lor, font size, and font weight of the selected item in the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
   3 NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
    /**
    !%mode of the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].iF32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\nq`YNODE_DATE_PICKER_MODE = 130O"b This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false(\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     ֶ`Y=NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
    /**
    o support scroll looping for the date picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to bsupport scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false(b\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32:+support scroll looping\*" \nжN0 NODE_DATE_PICKER_CAN_LOOP = 13009,
    /**
    !%time of the selected item. in the timer picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time. The defauthe current system time. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time.
  W   *
     */

    NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICK1!display time is in 24-hour format.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the display time is in 24-hourM9!false</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the dispblay time is in 24-hour format.
     *
     */
    NODE_TIME_PICKER_USE_MILITARY_TIME,
    /**
    !%lor, font size, and font weight for the top and bottom items in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
   <  */
    NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    !%lor, font size, and font weight of all items except the top, bottom, and selected items
     * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS MSans;normal". \n
     *
     */
    NODE_TIME_PICKER_TEXT_STYLE,
    /**
    !%lor, font size, and font weight of the selected item in the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
   3 NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
    /**
    !%start time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Focrmat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time"00:00:00"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default "00:00:00"</b>.\nж`YNODE_TIME_PICKER_START = 14W%%nd time of the time picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Forma`t of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: time"23:59:59"</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: time. The default "23:59:59"</b>.\nж`Y*NODE_TIME_PICKER_END = 14006,
    /**
    AM/PM option is cascaded with the time in 12-hour mode.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable cascadefalse</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable cascade.\nж`Y6NODE_TIME_PICKER_ENABLE_CASCADE = 14007,

    /**
    !%data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the text picker {@link 1%Type}.
    $<b>[OSINGLE</b>. \n
     * ?.string: string input, whose format varies by picker type.\n
     * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.object: Object input, whose format varies by picker type.\n
     * 1: single-column picker with image support. The input structure is {@linkQP}.\n
     * 2: multi-column interconnected picker. The input structure is {@linkQ$}.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the text picker {@link 1%Type}.\n
     * ?.string: string output, whose format varies by picker type.\n
     * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
     * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
     * semicolons (;), and strings within each pair are separated by commas (,). \n
     * ?.string: Object output, whose format varies by picker type.\n
     * 1: single-column picker with image support. The output structure is {@linkQQ}.\n
     * 2: multi-column interconnected picker. The output structure is {@linkQ$a}.\n
     *
     */
    NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICK1$%default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. If there are multiple index values, add them one by one.\n
     *
    ' */
    NODE_TEXT_PICKER_OPTION_SELECTE+%&Uefault selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;). \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: value of the selected item. If there are multiple values, add them one by one and
     * separate them with semicolons (;).\n
     *
     */
    NODE_TEXT_PICKER_OPTION_VALUE,
    /**
    !%lor, font size, and font weight for the top and bottom items in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
   <  */
    NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
    /**
    !%lor, font size, and font weight for all items except the top, bottom, and selected
     * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOSN Sans;normal". \n
     *
     */
    NODE_TEXT_PICKER_TEXT_STYLE,
    /**
    !%lor, font size, and font weight for the selected item in the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: array of five parameters of the string type, separated by semicolons (;).\n
     * Parameter 1: font color, in #ARGB format.\n
     * Parameter 2: font size, in fp. The value is a number.\n
     * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
     * Parameter 4: fonts, separated by commas (,).\n
     * Parameter 5: font style. Available options are ("normal", "italic").\n
     * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
     *
     */
  4  NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
    /**
    !%default selected item in the data selection range of the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0...].i32: index of the default item in the data selection range.
     *
     */
    NODE_TEXT_PICKER_SELECTED_INDEX,
    /**
    o support scroll looping for the text picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to bsupport scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false(e\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32:+support scroll looping\*"> \n
     *
     */
    NODE_TEXT_PICKER_CAN_LOOP,
    /**
    !%height of each item in the picker. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: item height, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].f32: item height, in vp. \n
     *
E     */
    NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
    /**
    b This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false(\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     ֶ`Y=NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
    /**
    !%e2and border radius of the selected items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * 1: .value[1].f32: radius of the four corners. \n
     * 2: .value[1].f32:> . \n
     * .value[2].f32:!. \n
     * .value[3].f32: . \n
     * .value[4].f32:.. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARIGB format, for example, <b>0xFF1122FF</b>. \n     *
     * .value[1].f32:> . \n
     * .value[2].f32:!. \n
     * .value[3].f32: . \n
     * .value[4].f32:.. \nжN@NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011,
    /**
    !%style of the background in the selected state of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .vYalue[0].f32: style of the background in the selected state of the calendar picker.
     *, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
     * or greater than 16, the background is a circle. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: style of the backgrou/nd in the selected state of the calendar picker, +∞).
     * If the value is <b>0</b>, the background is a rectangle with square corners.
     If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
     * greater than 16, the background is a circle. \n
     *
     */
    NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
    /**
1$%date of the selected item in the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: year of!ate. \n
     * .value[1].u32: monAate. \n
     * .value[2].u32: day of the selected date. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeIt em}:\n
     * .value[0].u32: yea!ate. \n
     * .value[1].u32: monAate. \n
     * .value[2].u32: day of the selected date. \n
     *
     */
    NODE_CALENDAR_PICKER_SELECTED_DATE,
    /**
     ?calendar pickerentry component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@flink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode.$D}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     * \n
     * Format of the return value {@link ArkUI_At5tributeItem}:\n
     * .value[0].i32: alignment mode.$D}. \n
     * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
     * the specified alignment mode. \n
     * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
     * the specified alignment mode. \n
     *
     */
    NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
   	 /**
    !%lor, font size, and font weight in the entry area of the calendar picker.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.u32: font color of the entry area. \n
     * .value[1]?.f32: font sVize of the entry area, in fp. \n
     * .value[2]?.i32: font weight of the entry area.$} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: font color of the entry area. \n
     * .value[1].f32: font size of the entry area, in fp. \n
     * .value[2].i32: font weight of the entry area. The pa}D \n
     *
     */
    NODE_CALENDAR_PICKER_TEXT_STYLE,
    /**
    !%start date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"1970-1-1"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     ݶ	`Y NODE_CALENDAR_PICKER_START = 160M%%nd date of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: date. The value like <b>"2100-12-31"</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: date. \n
     *
     *޶`YNODE_CALENDAR_PICKER_END = 16W%%color of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOP(E_NUM * ARKUI_NODE_SLIDER,

    /**
    !%e2slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_TRACK_COLOR,

    /**
     * @brief +%!part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format _of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@li0nk ArkUI_AttributeItem}:\n
     * .value[0].u32: part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     *
     */
    NODE_SLIDER_SELECTED_COLOR,

   	 /**
    'stepping value. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@lUink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:1the stepping value.+%the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     * \n
     * Format of the return value {@li0nk ArkUI_AttributeItem}:\n
     * .value[0].i32:1the stepping value.+%the stepping value,
     * and <b>0</b> (default value) means the opposite. \n
     *
     */
    NODE_SLIDER_SHOW_STEPS,

    /**
    !%slider shape, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributJeItem} parameter for setting the attribute:\n
     * .value[0].i32: shape.$RSliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     *OIMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     *SHAPE: custom shape of the slider. \n
     * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape.$ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 13.Ellipse:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
    2 * 4. Path:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .string: command for drawing the path.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: shape.$RSliderBlockStyle}. \n
     * .string?: depending on the shape. Optional. \n
     *OIMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
     *SHAPE: custom shape of the slider. \n
      * There are five types:\n
     * 1. Rectangle:\n
     * .value[1].i32: type of shape.$ShapeType}.
     * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
     * .value[2].f32: width of the rectangle.\n
     * .value[3].f32: height of the rectangle.\n
     * .value[4].f32: width of the rounded corner of the rectangle.\n
     * .value[5].f32: height of the rounded corner of the rectangle.\n
     * 2. Circle:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the circle shape.\n
     * .value[2].f32: width of the circle.\n
     * .value[3].f32: height of the circle.\n
     * 13.Ellipse:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the ellipse shape.\n
     * .value[2].f32: width of the ellipse.\n
     * .value[3].f32: height of the ellipse;\n
    2 * 4. Path:\n
     * .value[1].i32: type of shape.$#ShapeType}.
     * The value is <b></b> for the path shape.\n
     * .value[2].f32: width of the path.\n
     * .value[3].f32: height of the path.\n
     * .strin\g: command for drawing the path.\n
     *
     */
    NODE_SLIDER_BLOCK_STYLE,

    /**
    !%current value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: current value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: current value.
     *
     */
    NODE_SLIDER_VALUE,

    /**
    !%minimum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of th   e {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum value.
     *
     */
    NODE_SLIDER_MIN_VALUE,

    /**
    !%maximum value of the slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum value. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum value.
     *
     */
    NODE_SLIDER_MAX_VALUE,

    /**
    !%step of the slider. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@linkW ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: step1, 100]. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: step. The value ra;1, 100].
     *
     */
    NODE_SLIDER_STEP,

    /**
    slider moves horizontally or vertically. This attribute can be set, reset, and
     * obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slid)er moves horizontally or vertically.
    &}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider movesT horizontally or vertically.
     *
     */
    NODE_SLIDER_DIRECTION,

    /**
    slider values are reversed. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the slider values are
 reversed.+(hat the slider values are
     * reverse[*# \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the slider values are reversed.+(hat the slider values are
     * reverse[*%4    *
     */
    NODE_SLIDER_REVERSE,

    /**
    !%style of the slider thumb and track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: style of the slider thumb and track.$SliderStyle}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: style of the slider thumb and track.$ASliderStyle}.
     *
     */
    NODE_SLIDER_STYLE,

    /**
    track thickness of the slider.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: track thickness of the sli
der, in vp4.0 vp when <b>NODE_SLIDER_STYLE</b>
     * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
     * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: track thickness of the slider, in vp. \n
     *
     */
    NODE_SLIDER_TRACK_THICKNESS,

    /**
    b This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false(\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
     * requestPermissions field of the module-.json5 file to enable vibration permission.\nж`YNODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,

    /**
     * @brief Sets a custom component on the leading side of the Slider component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The prefix component will be placed at the start position of the Slider，
     * typic+ally on the left side in LTR layouts.
	 *
	WNODE_SLIDER_PREFIX,

    /**
     * @brief Sets a custom component on the trailing side of the Slider component.
     *
     * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     * The suffix component will be placed at the end position of the Slider,
     * typically on the right side in LTR layouts.
	 *
	W!NODE_SLIDER_SUFFIX,

    /**
    !%color of the slider block. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consist(s of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    _ * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nж%6NODE_SLIDER_BLOCK_LINEAR_GRADIENT_COLOR,

    /**
    !%e2slider. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    _ * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nж%6NODE_SLIDER_TRACK_LINEAR_GRADIENT_COLOR,

    /**
    !%!part of the slider track. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: array of color stops, each of which c.onsists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop poslor stops. \n
     * size: number of colors. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
    _ * .object: array of color stops, each of which consists of a color and its stop position.
    &ColorStop}. Invalid colors are automatically skipped. \n \n
     * colors: colors of the color stops. \n
     * stops: stop pos/lor stops. \n
     * size: number of colors. \nж%9NODE_SLIDER_SELECTED_LINEAR_GRADIENT_COLOR,

    /**
    10election status of an option button. Attribute setting,
     * attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: check status of an option button    * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: selection status of aen option button.
     */
    NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
    /**
    10Htyles of the selected and deselected states of the option button.
     *P, attribute resetting, and attribute obtaining are supported.
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0]?. u32: color of the mother board in enabled state. \n
     * The type is 0xARGB, and the defaulm.e0xFF007DFF. \n
     * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
     *^.0xFF182431. \n
     * .value[2]?. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and c.0xFFFFFFFF. \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0]. u32: coloDr of the mother board in enabled state. \n
     * The type is 0xARGB].d0xFF007DFF. \n
     * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
     *^.0xFF182431. \n
     * .value[2]. u32: color of the internal round pie in the enabled state. \n
     * The type is 0xARGB, and td.80xFFFFFFF. \n
     */
    NODE_RADIO_STYLE,
    /**
    value of the current radio.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: radio value.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: radio value.\n
     *
     */
    NODE_RADIO_VALUE,
    /**
     * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .string: name of the group to which the current option box belongs.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: name of the group to which the current option box belongs.\n
     *
     */
    NODE_RADIO_GROUP,

    /**
     * @brief Set the image frames for the image animator. Dynamic updates is not supported.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .size: number of the images.\n
     * .object: array of the images, the t	ype is {@A} array.\n
     * \n
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .size: number Dof the images.\n
     * .object: array of the images, the type is {@A} array.\n
     *
    */
    NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
    /**
     * @briefZ
layback status of the animationk[    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
     *^.y\INITIAL.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
     *
    */
    NODE_IMAGE_ANIMATOR_STATE = 19001,
    /**
    ZZfor the image animator. When the duration is 0, no image is played.
     * The value change takes effect only at the beginning of the next cycle.
     * When a separate duration is set in images, the setting of this attribute is invalid.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItSem} Parameter format:\n
     * .value[0].i32: the playback duration, the unit is ms^.1000.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the pWlayback duration, the unit is ms.\n
     *
    */
    NODE_IMAGE_ANIMATOR_DURATION = 19RZlayback directionk[    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the last one to the first one.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
     * and 1 indicates that images are played from the lastK one to the first one.\n
     *
    */
    NODE_IMAGE_ANIMATOR_REVERSE = 19SR
image size15lI
size.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@ZLink ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: whether the image size15lI
'size.
     * 1 indicates the image size15lI
size.
     * In this case, the width, height, top, and left attributes of the image are invalid.
     * 0 indicates the image size is customized.
     * The width, height, top, and left attributes of each image must be set separately.
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: whether the image size is the sa;5
lI
'size.
     * 1 indicates the image size15lI
msize.
     * 0 indicates the image size is customized.
     *
    */
    NODE_IMAGE_ANIMATOR_FIXED_SIZE = 190M50]V    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link Ar<kUI_AttributeItem} Parameter format:\n
     * .value[0].i32:	]Y,
     * the type is {`}^.I^FORWARDS.\n
     *
     * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
     * .value[0].i32: t]W,
     * the type is {`7}.
     *
    */
    NODE_IMAGE_ANIMATOR_FILL_MODE = 19Wbrief Set the number of times that the animation is played.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
     * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
     * .value[0].i32: the number of times that the animation is played.\n
     *
    */
    NODE_IMAGE_ANIMATOR_ITERATION = 19006,

    /**
    !%name of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: component name. \n
     * \n
     * dFormat of the return value {@link ArkUI_AttributeItem}:\n
     * .string: component name. \n
     * 1RYNODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
    checkboxgroup is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the checkboxgroup is selected.
     *+ hat the checkboxgroup is selecte[*#d \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:+ hat the checkboxgroup is selecte[*# \n
     * 1R-NODE_CHECKBOX_GROUP_SELECT_ALL,

    /**
    !%color of the checkboxgroup when it is selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
     * for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB &format, for example, <b>0xFF1122FF</b>q@R0NODE_CHECKBOX_GROUP_SELECTED_COLOR,
    /**
    !%border color of the checkboxgroup when it is not selected.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AnttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
     * 1R3NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,

    /**
    !%internal icon style of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
     * B.value[2]?.f32: stroke width of the internal mark, in vp. Optional2</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
     * .value[1].f32: size of the internal mark, in vp. \n
     * .value[2].f32: (stroke width of the internal mark, in vp	2</b>. \nж@R'NODE_CHECKBOX_GROUP_MARK,

    /**
    !%shape of the checkboxgroup.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: component shape. The parameteCheckboxShape}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: component shape.$CheckboxShape}q@R(NODE_CHECKBOX_GROUP_SHAPE,

    /**
    !%type of the Enter key.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: type of the Enter key {@link ArkUI_EnterKeyType
     * <b>09NEW_LINE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: type of the E'nter key {@link ArkUI_EnterKeyType}. \n@%NODE_TEXT_EDITOR_ENTER_KEY_TYPE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
     * @brief Defines caret color attribute.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_PAttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: careQ For example, 0xFFFF0000 indicates red. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: careQ \n@%NODE_TEXT_EDITOR_CARET_COLOR,

    /**
     * @brief Defines color of the scrollbar. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scroll bar, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArXkUI_AttributeItem}:\n
     * .data[0].u32: color of the scroll bar, in 0xARGB format. \n@%0NODE_TEXT_EDITOR_SCROLL_BAR_COLOR,

    /**
    !%scroll bar state of the TextEditor.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll bar state of tDhe text area, specified using the {@link ArkUI_BarState}
     * enum BAR_STATE_AUTO</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll Vbar state of the text area, specified using the {@link ArkUI_BarState}
     * enum. \n@%NODE_TEXT_EDITOR_BAR_STATE,

    /**
     * @brief Enables data detector.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable data detector, default is true.
     * \n
     * Format of the return value {@link ArkUI_AttHributeItem}:\n
     * .value[0].i32: whether data detector is enabled.\n@%JNODE_TEXT_EDITOR_ENABLE_DATA_DETECTOR,

    /**
     * @brief Sets recogni1    * This attribute can be set and reset as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} par?ameter for setting the attribute:\n
     * .object: the recogni1   &(&-.\n
     * 4NODE_TEXT_EDITOR_DATA_DETECTOR_CONFIG,

    /**
    	dit menu options of the TextEditor.
     * This attribute can be set and reset as required through APIs.
     *
     * Format off the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: the edit menueditor.$}q&1NODE_TEXT_EDITOR_EDIT_MENU_OPTIONS,

    /**
    BL of the TextEditor.
     * This attribute can be set and reset as required through APIs.
     *
     * Format of the {@link ArkLUI_AttributeItem} parameter for setting the attribute:\n
     * .object: theAL.editor. The parameter type is\n
     * {@link >"}.\n@%+NODE_TEXT_EDITOR_PLACEHOLDER,

    /**
    	h
 of the text editor.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_Attrib?uteItem} parameter for setting the attribute:\n
     * .object: \5 of text editor. The parameter type is
     * {@link g&}.\n@%8NODE_TEXT_EDITOR_STYLED_STRING_CONTROLLER,

    /**
    preview text is enabled.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable. The value <b>-true</b> means to enable, and
     * <b>false(\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable.
     *
 {3NODE_TEXT_EDITOR_ENABLE_PREVIEW_TEXT,

    /**
    >TextLayoutManager of the text editor.
     * This attribute can be obtained as required through APIs.
     *
     * Format of thhe return value {@link ArkUI_AttributeItem}:\n
     * .object: the layout manager of text editor.\n
     y)LayoutManager}.\n@%NODE_TEXT_EDITOR_LAYOUT_MANAGER,

    /**
      * @brief Whether to enable AI menu for selected data detector.
      * This attribute can be set, reset, and obtained as required through APIs.
      *
      * Format of the {@link ArkUI_AttributeItem} paraSmeter for setting the attribute:\n
      * .value[0].i32: whether to enable AI menu, default value true.\n
      * \n
      * Format of the return value {@link ArkUI_AttributeItem}:\n
      * .value[0].i32: whether AI menu is enabled.\n
      *
 a */
    NODE_TEXT_EDITOR_ENABLE_SELECTED_DATA_DETECTOR,

    /**
     * @brief Defines background 
    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuNteItem} parameter for setting the attribute:\n
     * .data[0].u32: background , in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: background , in 0xARGB format. \n@%9NODE_TEXT_EDITOR_SELECTED_BACKGROUND_COLOR,

    /**
    'enable the input method when the TextEditor component obtains focus
     * in a way other than clicking.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the input method, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the input method is enabled.\n
     *
     M8NODE_TEXT_EDITOR_ENABLE_KEYBOARD_ON_FOCUS,

    /**
    !%maximum number of characters in TextEditor.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum number of characters in TextEditor. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i232: maximum number of characters in TextEditor. \n@%*NODE_TEXT_EDITOR_MAX_LENGTH,

    /**
    !%maximum lines of content in TextEditor.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: maximum lines of content in TextEditor. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: maxi&mum lines of content in TextEditor. \n@%)NODE_TEXT_EDITOR_MAX_LINES,

    /**
    'enable haptic feedback in TextEditor.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable haptic feedback in TextEditor, default value true.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
3     * .value[0].i32: whether haptic feedback is en6NODE_TEXT_EDITOR_ENABLE_HAPTIC_FEEDBACK,

    /**
    !%copy options attribute, which can be set, reset, and obtained as required through APIs.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attrCibute:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions!J</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: copy option {@link ArkUI_CopyOptions}. \n@%+NODE_TEXT_EDITOR_COPY_OPTIONS,

    /**
   5TextEditor.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link Ark_UI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: keyboard style, t"7}.
   $<b>6p6</b>.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: keyboard style, the param7}.\n
    *
*/
    NODE_TEXT_EDITOR17,

    /**
    'prevent the back button press from being propagated to other components or applications.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to prevent the back button press, default value true.\n
     * \n
     * Format of the mreturn value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to prevent the back button press.\n@%/NODE_TEXT_EDITOR_STOP_BACK_PRESS,

    /**
    'enable automatic spacing between Chinese and Western characters.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable automatic spacing, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AtLtributeItem}:\n
     * .value[0].i32: whether to enable automatic spacing.\n@%NODE_TEXT_EDITOR_ENABLE_AUTO_SPACING,

    /**
     * @brief Sets up a custom keyboard.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attr+ibute:\n
     * .object: custom keyboard, t"NodeHandle}.\n
     * .value[0]?.i32: Sets whether the custom keyboard supports the avoidance feature, default value false.\n
 l    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: custom keyboard, t"eNodeHandle}.
     * .value[0].i32: Sets whether the custom keyboard supports the avoidance feature.\n@%NODE_TEXT_EDITOR_CUSTOM_KEYBOARD,

    /**
     * @brief Binds the selection menu for the TextEditor.
     * This attribute can be set and reset as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: thTextEditor.
     *    $7.\n@%3NODE_TEXT_EDITOR_BIND_SELECTION_MENU,

    /**
    'add spacing betweenlines to avoid text truncation.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to add spacing, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to add spacing.\n@%4NODE_TEXT_EDITOR_INCLUDE_FONT_PADDING,

    /**
    'he line height is adaptive based on the actual text height.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the line height is adaptive, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttribuGteItem}:\n
     * .value[0].i32: whether the line height is adaptive.\n@%5NODE_TEXT_EDITOR_FALLBACK_LINE_SPACING,

    /**
    'enable punctuation compression at the beginning of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable punctuation compression, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AtRtributeItem}:\n
     * .value[0].i32: whether to enable punctuation compression.\n@%<NODE_TEXT_EDITOR_COMPRESS_LEADING_PUNCTUATION,

    /**
    $. \n
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_ACttributeItem} parameter for setting the attribute: 
     * .object:$+\n
    &6	^}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .object:$+ \n
    &6	}. \n
     * ;NODE_TEXT_EDITOR_SELECTED_DRAG_PREVIEW_STYLE,

    /**
    '(ingle-line mode. \n
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the[ {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: wingle-line mode, default value false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: wingle-line mode.\n
     * NODE_TEXT_EDITOR_SINGLE_LINE,

    /**
     * @brief Whether to avoid an orphan word on the last line of the paragraph.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: Whether enable th)e feature, true means enable this feature.
    $false.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The current state of this feature.\nжT NODE_TEXT_EDITOR_ORPHAN_CHAR_OPTIMIZATION,

    /**
     * @brief Whether to enableq^&when text is wider than the view.
    $false, and text will be wrapped by the view.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The horizontally scrolling state.\n
     * \n
     * Format of the return value {@link ArkUIL_AttributeItem}:\n
     * .value[0].i32: The horizontally scrolling state.\nж4NODE_TEXT_EDITOR_HORIZONTAL_SCROLLING,

    /**
    'enable punctuation overflow at the end of a line.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether" to enable punctuation overflow, tqfalse.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable punctuation overflow.\nж4NODE_TEXT_EDITOR_PUNCTUATION_OVERFLOW,

    /**
    !% of tcontainer. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
    $<b>ARKUI_ALIGNMENT_CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
     *
     */
    NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_N$UM * ARKUI_NODE_STACK,

    /**
    !%scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link AbrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scrollbar status.$ScrollBarDisplayMode
     * <b>@dAUTO</b> for the"%Scroll</b> components, and
     * <b>@dFF</b> for theY. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scrollbar status. The parScrollBarDisplayMode}. \n
     *
     */
    NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    !%scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link AnrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: width of the scrollbar, in vp4</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: width of the scrollbDar, in vp. \n
     *
     */
    NODE_SCROLL_BAR_WIDTH,
    /**
    !%color of the scrollbar. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .data[0].u32: color of the scrollbOar, in 0xARGB format. \n
     *
     */
    NODE_SCROLL_BAR_COLOR,
    /**
    !%scroll direction. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link AbrkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: scroll direction.$_}.
    $<b>@^</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: scroll direction. The _C}. \n
     *
     */
    NODE_SCROLL_SCROLL_DIRECTION,
    /**
    !%ffectJRT    * reached. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUTI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effectJRR reached.
    &	EdgeEffec"0EDGE_EFFECT_NONE</b>.\n
     * .value[1]?.i32: wccroll effect when the component content size is smaller than the
     * component itself. Optional.+enable the scroll effect\*
     * opposite1for the List/Grid/WaterFlow component is <b>0</b>].T for the
     * Scroll component is <b>1</b>. \n
     * .value[2]?.i32: direction inU.$EffectEdge}.
    $<b>|V|V</b>. This parameter is supported since
     * API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_Attr*ibuteItem}:\n
     * .value[0].i32: effectJRR reached.
    &'EdgeEffect}. \n
     * .value[1].i32: wccroll effect when the component content size is smaller than the component
     * itself. Optional.+enable the scroll effect\*" \n
     * .value[2].i32: edgeU\   &EffectEdge}. This parameter is supported since API version 16. \n
     *
     */
    NODE_SCROLL_EDGE_EFFECT,
    /**
     * @b#o support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
     * finger or mouse is not supported, but the scroll controller API is not affected.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the Eattribute:\n
     * .value[0].i32: whether to support scroll gesturestrue</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to suppor\t scroll gestures. \n
     *
     */
    NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
    /**
    !%friction coefficient. It applies only to gestures in the scrolling area, and it affects only
     * indirectly the scroll chaining during the inertial scrolling process.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the at5tribute:\n
     * .value[0].f32: friction coefficient0.6</b> for non-wearable devices and <b>0.9</b>
     * for wearable devices. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: friction coefficient.
     *
     */
    NODE_SCROLL_FRICTION,
    /**
     *#%scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the scroll snap position.$ScrollSnapAlign}.
    $><b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * .value[1].i32: wDnap to start feature. When scroll snapping is defined for the
     *], setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point^true</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[2].i32:Bnap to end feature. When scroll snapping is defined for the
     *], setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point. Ttrue</b>. It is valid only when there are multiple
     * snap points.\n
     * .value[3...].f32: snap points for the <b><Scrol]@ Each snap point defines the offset from an
     * edge to which] can scroll.  \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode for the scroll snap position.$+ScrollSnapAlign}.\n
     * .value[1].i32: wDnap to start feature. When scroll snapping is defined for the
     *], setting this attribute to <b>false</b> enables the component to scroll between the
     * start edge and the first snap point.\n
     * .value[2].i32:Bnap to end feature. When scroll snapping is defined for the
     *], setting this attribute to <b>false</b> enables the component to scroll between the
     * end edge and the last snap point.\n$
     * .value[3...].f32: snap point]$@ Each snap point defines the offset from an edge
     * to which]B can scroll. \n
     *
     */
    NODE_SCROLL_SNAP,

    /**
    !%nested scrolling options. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: nested scrolling option when th! forward.
    &8}. \n
     * .value[1].i32: nested scrolling option when backward.
    &}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: nested scrolling option when forward.
    &8}. \n
     * .value[1].i32: nested scrolling option when backward.
    &=}.
     *
     */
    NODE_SCROLL_NESTED_SCROLL,
    /**
    !%specified position to scroll to. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * fFormat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32:q^'offset, in vp. \n
     * .value[1].f32:eoffset, in vp. \n
     * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
     * .value[3]?.i32: scrolling curve. Optional.$AnimationCurve}.
     *        <b>ARKUI_CURVE_EASE</b>. \n
     * .value[4]?.i32: whether to enable the default spring animation. Optional.
     *            <b>0</b> means not to enable the default spring animation. \n
     * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
     *                 Optional. \n
     * .value[6]?.i32: whether the component can stop at an overscrolled position.
     *                 This parameter is supported since API version 20. \n
     [* \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32:q^'offset, in vp. \n
     * .value[1].f32:eFoffset, in vp. \n
     *
     */
    NODE_SCROLL_OFFSET,

    /**
    !%dge position to scroll to. This attribute can be set and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: edge position to scroll to. The parameter typScrollEdge}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
     * at the edge position. If the container is at the edge position, t"?ScrollEdge}.
     *
     */
    NODE_SCROLL_EDGE,

    /**
    &wipe-to-turn-pages feature. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
     * <b>enablePaging</b> does not. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whet!wipe-to-turn-pages featurefalse</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enabl-wipe-to-turn-pages feature. \n
     *
     */
    NODE_SCROLL_ENABLE_PAGING,

    /**
     * @brief Scroll to the next or previous page.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
     * indicates scroll to previousF page. \n
     * .value[1]?.i32 Indicates whether to enable animation.enable and 0 indicates disable. \n
     *
     */
    NODE_SCROLL_PAGE,

    /**
     * @brief Scroll a specified distance.
     * List/Scroll/WaterFlow support since API version 12, Grid support since API version 26.0.0.
     * 
     * Format of the {@lXink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：HPedistance in vp; \n
     * .value[1].f32: Vertical scrolling distance in vp; \n
     *
     */
    NODE_SCROLL_BY,

    /**
     * @brief Performs inertial scrolling based on the initial velocity passed in.
     * 
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
     * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
     * the scroll will move downward; if the value is negative, the scroll will move upward. \n
     *
     * ߶.13
     */
    NODE_SCROLL_FLING,

    /**
   ading effect for the edges of scrollable components.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
    * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect,
    * and 1 means to enable it.
    * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
    *
    * Format of the return value {@link ArkUI_AttributeItem}:
    * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
    * disabled, and 1 means that it is enabled.
    * .value[1].f32: length ofk the fading effect on edges, in vp.
    *
    * @since 14
    */
    NODE_SCROLL_FADING_EDGE,

    /**
    tal size of all child components when fully expanded in the scrollable component.
     *
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
     *       unit is vp. \n
     * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
    	 *       unit is vp. \n
     * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
     * nearest pixel when being converted from vp to px.
     * The returned values are calculated based on these rounded pixel values. \nжHXNODE_SCROLL_SIZE,

    /**
    offset fromRmponents content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the start of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}I:\n
     * .value[0].f32: offset from the start of the content, in vp. \nж@R/NODE_SCROLL_CONTENT_START_OFFSET,

    /**
    offset from the endRmponents content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: offset from the end of the content, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\En
     * .value[0].f32: offset from the end of the content, in vp. \nж@R-NODE_SCROLL_CONTENT_END_OFFSET,

    /**
    !%maximum starting fling speed of the scrollable when the fling animation starts.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
     * \n
     * Format of the return value {@link ArkUI_AtRtributeItem}: \n
     * .value[0].f32: maximum starting fling speed, Unit: vp/s \nж`Y6NODE_SCROLL_FLING_SPEED_LIMIT = 1002019,

    /**
    !%clip mode of the scrollable.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: clip content mode. The paraContentClipMode
     * <b>\i E</b> for the <b>Grid</b> and <b>Scroll</b> components, and
     * <b>\i*i</b> for the <b>List</b> andYs. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: clip content mode, The ContentClipMode}. \nж`Y1NODE_SCROLL_CLIP_CONTENT = 1002020,

    /**
    scrollable scrolls back to top when status bar is clicked.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i3P2: whether the scrollable scrolls back to top when status bar is clicked.
     *+scroll back to top\*"N0</b>
     * for API versions earlier than 18. For API version 18 and later, t 0</b> for the
     * horizontal scroll direction and <b>1</b> for the vertical scroll direction. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \nж@R0NODE_SCROLL_BACK_TO_TOP = 1002021,

    /**
    !%margin of the scrollbar.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: start margin of the scrollbar, in vpB0</b>. \n
     * .value[1].f32: end margin of the scrollbar, in vp0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: start margin of the Qscrollbar, in vp. \n
     * .value[1].f32: end margin of the scrollbar, in vp. \nжN/NODE_SCROLL_BAR_MARGIN = 1002022,

    /**
    zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:7\n
     * .value[0].f32: current maximum zoom scale. \nжN3NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,

    /**
    zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:7\n
     * .value[0].f32: current minimum zoom scale. \nжN3NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,

    /**
    zoom scale for scrollable content.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: zoom scale to set. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     '* .value[0].f32: current zoom scale. \nжN/NODE_SCROLL_ZOOM_SCALE = 1002025,

    /**
    'enable the zoom bounce effect when the scaling exceeds the limits.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
     *+enable the effect\*" \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the zoom: bounce effect when the scaling exceeds the limits.
     *+enable the effect\*" \nжN8NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,

    /**
    'dragging scrolling with the left mouse button pressed is supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether dragging scrolling with the left mouse button pressed is supported. <b>0</b>: no; <b>1</b>: yes. \nж=NODE_SCROLL_ENABLE_SCROLL_WITH_MOUSE = 1002027,

    /**
    'automatically adjust the margin of the scrollbar to avoid the component's <b>NODE_PADDING</b>, <b>NODE_SCROLL_CONTENT_START_OFFSET</b>, and <b>NODE_SCROLL_CONTENT_END_OFFSET</b> areas.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute\n
     * .value[0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. Default value: <b>0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[d0].i32: whether to automatically adjust the margin of the scrollbar. <b>0</b>: yes; <b>1</b>: no. \nж7NODE_SCROLL_AUTO_ADJUST_MARGIN = 1002028,

    /**
    rection in which the list items are arranged.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: direction i$n which the list items are arranged.$Axis}.
    $<b>ARKUI_AXIS_VERTICAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:0 direction in which the list items are arranged.$eAxis}. \n
     *
     */
    NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
    o pine2 in the <b><ListItemGroup></b>
     * component. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to pin e1 in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter t&ype is
     * {@link ArkUI_StickyStyle!STICKY_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whet
her to pine2 in the <b><ListItemGroup></b>
     * component. It is used together with the <b><ListItemGroup></b> component. The parameter tZype is
     * {@link ArkUI_StickyStyle}.
     *
     */
    NODE_LIST_STICKY,
    /**
    !%%list items. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link lArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between list items0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between list items2\n
     *
     */
    NODE_LIST_SPACE,
    /**
   !%list adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
 (   NODE_LIST_NODE_ADAPTER,

    /**
    
cached items in the list adapter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and+ <b>1</b> means
     * to show cached items0</b>. This parameter is supported since API version 15. \n
     * .value[2]?.i32: maximum cache count. This parameter is supported since API version 22.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: number of cached items in the list adapter. \n
     * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>1</b> means
     * to show cached items. This parameter is supported since API version 15. \n
     * .value[2].i32: maximum cache count. This parameter is supported since API version 22.
     *
     */
    NODE_LIST_CACHED_COUNT,

    /**
     * @brief Scroll to    * 
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：The index value of the target element to be slid to in the current container.\n
     * .value[1]?.i32：Set whether there is an action when sliding to the index value of a list item in the? list, where
     * 1 indicates an action and 0 indicates no ac(0。\n
     * .value[2]?.i32：Specify tmsliding element with the current container,The parameter type is
     * {@link ArkUI_ScrollAlignment}, default value is ARKUI_S4START. \n
     * .value[3]?.f32: extra offset, in vp0</b>.
     * This parameter is supported since API version 15. \n
     *
     */
    NODE_LIST_SCROLL_TO_INDEX,
    /**
     *_ of list when the cross-axis width of the list is
     * greater than the cross-axis width of list items multiplied by the value of lanes.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_At`tributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode of list  (}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment mode of list i  (9}. \n
    */
    NODE_LIST_ALIGN_LIST_ITEM,

    /**
    pindle size for the List subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attrib8ute:\n
     * .object: The parameter format is {@ ArkUI-} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-} \n
     */
    NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,

    /**
     * @brief Set the index value of the item displayed at the start of the viewport
     * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the item displayed at
     * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
     */
    NODE_LIST_INITIAL_INDEX = 1003008,
    /**
     * @brief sets the ListItem splitter style. By default, there is no splitter.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     *.value[0].u32: divider color, type 0xargb; \n
     *.value[1].f32.: dividing line width; \n
     *.value[2].f32:Q	
+&list, unit vp; \n
     *.value[3].f32:Q	
list (unit: vp). \n
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     *.value[0]f.u32: divider color, type 0xargb; \n
     *.value[1].f32: dividing line width; \n
     *.value[2].f32:Q	
+&list, unit vp; \n
     *.value[3].f32:Q	
list (unit: vp). \n
     *
     */
    NODE_LIST_DIVIDER = 1003009,

    /**
     * @brief Scrolls to the item with the specifi? in the specified list item group.
     *
     * When <b>smoothall passed items are loaded and counted in layout calculation.
     * This may result in performance issues if a large number of items are involved. \n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:<list item group in the current list. \n
     *.value[1].i32:=list item in the list item group. \n
     * .value[2]?.i32: w(animation for scrolling to the item with    *+enable the animation\*$   $O,	4 \n
     * .value[3]?.i32: how the item to scroll toCcontainer. The parameter type is
     * {@link ArkUI_ScrollAlignmen"START</b>. \nж@R;NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,

    /**
    
lanes in the list.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
     * of lanes will not take effect. \n
     * .value[1]?.f32: minimum lane width, in vp. \n
     * .value[2]?.f32: maximum column width, in vp. \n
     * .value[3]?.f32: lane spacing, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: number of lanes in the list. \n
     * .value[1].f32: minimum lane width, in vp. \n
     * .value[2].f32: maximum column width, in vp. \n
     * .value[3].f32: lane spacing, in vp. \n \nж@R(NODE_LIST_LANES = 1003011,

    /**
    	list snapFormat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment mode for the list snap position.$ScrollSnapAlign}.
    $<b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[20].i32: alignment mode for the list snap position.$ScrollSnapAlign}.\nж@R4NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,

    /**
    'cmaintain the visible content's position when data is inserted or deleted outside the
     * display~</b> component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
     * display area of th~	h</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1(0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain Zthe visible content's position when data is inserted or deleted outside the
     * display~h</b> component. The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1(	0</b>. \nж@RDNODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,

    /**
    'he <b>List</b> component starts layout from the end.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> meaSns layout
     * starts from the top, and <b>1</b> means layout starts from the end0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
     * starts from the top, and <b>1</b> means layout starts from the end	0</b>. \nж5NODE_LIST_STACK_FROM_END = 1003014,
    
    /**
    !%focus wrap mode for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: focus wrap9 mode of the <b>List</b> component.
     *               $FocusWrapMode}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: focus wrap 8mode of the <b>List</b> component.
     *               $FocusWrapMode}. \nжN2NODE_LIST_FOCUS_WRAP_MODE = 1003015,

    /**
    <b>List</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>#1</b> means synchronous loading. \nжN,NODE_LIST_SYNC_LOAD = 1003016,

    /**
    !%a for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Fdormat of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     *.value[0].i32:Ab$ for the <b>List</b> component.
    &b}.
     * Default value: <b>bnNORMAL</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     *.value[0].i32:Ab$ for the <b>List</b> component.
    &b}. \nжKNODE_LIST_SCROLL_SNAP_ANIMATION_SPEED = 1003017,

    /**
     * @brief Specifies the responsive column layout policy for the <b>List</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of t[he {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[}. \n
     * .value[1]?.f32: column spacing. unit: vp. Default value: <b>0</b>. \n
     * \n
     * Format of the return value 4{@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[8}. \n
     * .value[1].f32: column spacing. unit: vp. \nжKNODE_LIST_LANES_ITEMFILLPOLICY = 1003018,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>List</b> container. 
     * This attribute can be set, reset, and obtained as requ   ired through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>List</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>%0</b>: Disabled. <b>1</b>: Enabled.\nжTGNODE_LIST_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1003019,

    /**
    =ack button behaviorP Attribute setting, resetting, and obtaining APIs are supported.
     *
     * The parameter format for setting properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes. Default value: 1.
     * 
     * The parameter format for obtaining properties using {@link ArkUI_AttributeItem} is as follows:
     * .value[0].i32: Whether to collapse the scroll menu when the back button is clicked. 0: no; 1: yes*6NODE_LIST_BACK_PRESS_BEHAVIOR = 1003020,

    /**
    o enable loop playback for the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable loop playback.+<enable loop playback, and <b>0</b>
     * means the opposite1/b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable loop playback.+<enable loop playback, and <b>0</b>
     * means the oppositeT1</b>. \n
     *
     */
    NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIP1!o enable automatic playback for child component switching in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
     * means to enable automatic playback\*"0</b>. \n
     * \n
     * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1<+	"
     * to stop automatic playback\*"1</b>. This parameter is
     * supported since API version 16. \n
     * \n
     * Format of the return value {@link ArkUI_AtthributeItem}:\n
     * .value[0].i32: whether to enable automatic playback for child component switching.+$
     * to enable automatic playback\*"d0</b>. \n
     * .value[1].i32: whether to stop automatic playback when the user touches the screen.+
     * stop automatic playback\*"l This parameter is supported since API version 16. \n
     *
     */
    NODE_SWIPER_AUTO_PLAY,
    /**
    o enable!
for the swiper. This attribute can be set,
     * reset, and obtained as required through APIs.
     *
     * Format of the {@lgink ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable!	$+enable the
     *x\*"1</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable th$	$+enable the
     *x\*"E1</b>. \n
     *
     */
    NODE_SWIPER_SHOW_INDICATOR,
    /**
    !%interval for automatic playback. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: interval for automatic playback, in milliseconds. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: iinterval for automatic playback, in milliseconds. \n
     *
     */
    NODE_SWIPER_INTERVAL,
    /**
    vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether vertical swiping is used.+(hat vertical swiping is used, and
     *a*0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether vertical swiping is used.+(hat vertical swiping is used, and
     *a*@0</b>. \n
     *
     */
    NODE_SWIPER_VERTICAL,

    /**
    !%duration of the animation for switching child components. This attribute can be set, reset,
     * and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32:J duration of the animation for switching child components, in milliseconds
     * <b>400</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: duratioBn of the animation for switching child components, in millisecondsM
     * <b>400</b>. \n
     *
     */
    NODE_SWIPER_DURATION,

    /**
    !%animation curve for the swiper. This attribute can be set, reset, and obtained as required
     * through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: animation curve. The paraAnimationCurve}.
    $<b>ARKUI_CURVE_LINEAR</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: animation curve.$AnimationCurve}.
    $Q<b>ARKUI_CURVE_LINEAR</b>. \n
     *
     */
    NODE_SWIPER_CURVE,

    /**
    !%%swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: spacing between child components. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: spacing between child components. \n
     3*
     */
    NODE_SWIPER_ITEM_SPACE,

    /**
    !%child component currently displayed in the swiper.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: index Ivalue of the child component. \n
     * .value[1]?.i32: animation mode, t"
}. \n
    $~. This parameter is valid only for the current call. \n
     * This parameter is supported since API version 15. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: index value of the child component. \n
  0   *
     */
    NODE_SWIPER_INDEX,

    /**
   !%to display per page.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
    * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
    * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of elements to display per page. \n
    * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 19. \n
   ] * .string: 'auto' or empty string.
    *
    */
    NODE_SWIPER_DISPLAY_COUNT,

    /**
    o disable the swipe feature.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to disable the swipe	 feature.+ able
     * the swipe feature\*"0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to disable the swipe feature.+ able the swipe
     * feature\*"D0</b>. \n
     *
     */
    NODE_SWIPER_DISABLE_SWIPE,

    /**
   )arrow yC
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_Attribut\eItem} parameter for setting the attribute:\n
    * .value[0].i32: whether to show the arrow yC
   &SwiperArrow}.\n
   $<b>}x%</b>. \n
    * .?object: arrow style.$G1}. \n
    * This parameter is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_Attribu9teItem}:\n
    * .value[0].i32: whether to show the arrow yC
   &SwiperArrow}.\n
   $<b>}x$</b>. \n
    * .object: arrow style.$G1}. \n
    * This parameter is supported since API version 19. \n
    *
    */
    NODE_SWIPER_SHOW_DISPLAY_ARROW,

    /**
    !%ffectJRswipermR/ reached.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArVkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: effectJRswipermR/ reached.
    &EdgeEffect}.\n
    $<b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: effectJRswipermR/ reached.
    &MEdgeEffect}. \n
     *
     */
    NODE_SWIPER_EDGE_EFFECT_MODE,

    /**
   !%swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */+
    NODE_SWIPER_NODE_ADAPTER,

    /**
   
cached items in the swiper adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1]?.i32: whether the cached items will be displayed. \n
    * The value <b>0</b> indicatesk that cached items will not be displayed, \n
    * and <b>1</b> indicates that cached items will be displayO,	 \n
    * This parameter is supported from API version 19. \n
    * .value[2]?.i32: whether the cachedCount is independent of group calculation. \n
    *+indicates that cachedCount is calculated by actual child component count,\n
    * and is independent of displayCount group calculation.\n
    * The value <b>0</b> indicates that, when NODE_SWIPER_DISPLAY_COUNT is enabled to turn pages by group,\n
    * c"achedCount is calculated by group.( \n
    * This parameter is supported from API version 24. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cached items in the swiper adapter. \n
    * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
    * .value[2].i32: whether the cachedCount is independent of group calculation. This parameter is supported from API version 24. \n
    */
    NODE_SWIPER_CACHED_COUNT,

    /**
     *#%front margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the front margin. The unit is vp 0.0</b>\n
     * .value[1]?.i32:#	blanks, tq    *+ignore blank areas\*" \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the front margin, the unit is vp. \n
     * .value[1].i32:#blank areas.+ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_PREV_MARGIN,

    /**
     * @brief Defi/%back margin of the wiper.
     * The attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: the back margin. The unit is vp. 0.0</b>\n
     * .value[1]?.i32:#	blanks, tq    *+ignore blank areas\*" \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: the back margin, the unit is vp. \n
     * .value[1].i32:#blank areas.+ignore blank areas, and <b>0</b> means
     * the opposite. \n
     */
    NODE_SWIPER_NEXT_MARGIN,

    /**
    * @brief Defin0%l9   * The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeIt?em} parameter for setting the attribute:\n
    * .value[0].i32: type, t"wType}.\n
    * .object:$w)} when the indicator type \n
    * is <b> :OT</b>.$W&}
    * when the indicator type is <b> :!</b>. \n
    * {@link Q} is supported since API version 19. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: type, t"wType}.\n
    * .object:$w)} when the indicator type \n
    * is <b> :OT</b>.$W&}
    * when the indicator type is <b> :!</b>. \n
    * {@link Q} is supported since API version 19. \n
    *
    */
    NODE_SWIPER_INDICATOR,

    /**
     * @brief Set the nested scrolling mode for the Swiper component and parent component.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for settEing the attribute:\n
     * .value[0].i32：Nested scrolling patternsy-$ The parameter type is
     * {@link{	} \n
    $<b>pz$<b> \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32：Nested scrolling patternsy-$ The parameter type is
     * {@link{9} \n
     */
    NODE_SWIPER_NESTED_SCROLL,

    /**
    10witcher component to flip to the specified page.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32：Specify the index value of the page in Swiper.\n
     * .value[1]?.i32：Set whether there is an animation effect when flipping to the specified page. 1 indicates active
     * effect, 0 indicates no active effect, default value is 0。\n
     */
    NODE_SWIPER_SWIPE_TO_INDEX,

    /**
    * @brief Set to disable component navigation poinxteraction function。
    *
    * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
    * .value[0].i32Set to disable the interaction function of component navigation points. When set to true, it
    * indicates that the navigat-	s are interactive \n
    * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}： \n
    * .va%lue[0].i32：Set to disable componentxIteraction. \n
    */
    NODE_SWIPER_INDICATOR_INTERACTIVE,

    /**
    4| using the mouse wheel.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .7value[0].i32: page flipping mode using the mouse wheel.$~8}. \n
     * \n
     * Format of the return value {@link~G}:\n
     * .value[0].i32: page flipping mode using the mouse wheel. \nж@R)NODE_SWIPER_PAGE_FLIP_MODE,

    /**
    !%minimum main axis size of child element for swiper to works out the display count.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
     * and <b>1</b> means to turn pages by group. The defa0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum main axis si^ze of the child element, Unit: vp. \n
     * .value[1].i32: whether to turn pages by group. \nж$NODE_SWIPER_AUTO_FILL,

    /**
    'kmaintain the visible content's position when data is inserted or deleted outside
     * the display area ofa|    *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to kmaintain the visible content's position when data is inserted or deleted outside
     * the display area ofa|Y The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1(0</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to maintain bthe visible content's position when data is inserted or deleted outside
     * the display area ofa|Y The value <b>0</b> means not to maintain the visible content's
     * position, and <b>1(	0</b>. \nжNNODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,

    /**
     * @brief Specifies the responsive column layout policy f_|!    * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttribuEteItem} parameter for setting the attribute: \n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[}. \n
     * .value[1]?.i32: whether to paginate by group. The value <b>0</b> means to paginate by individual child elements,
 @    * and <b>1</b> means to paginate by groups of child elementsviewport.
    $O,`    * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[<}. \n
     * .value[1].i32: whether to paginate by group. \nжKNODE_SWIPER_ITEMFILLPOLICY = 1001024,

    /**
     * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
     * property acquisition interfaces.
     *
     * Attribute setting method parameter {@linSk ArkUI_AttributeItem} format: \n
     * .object: Construct using the {@link ArkUI_} object. \n
     * \n
     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
     ,* .object: Construct using the {@link ArkUI_} object. \n
     *
     */
    NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,

    /**
     * @brief*%header of the list item group.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
     *
     */
    NODE_LISWT_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
    /**
    !%footer of the list item group. This attribute can be set, reset, and obtained as
     * required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_FOOT1$%style of the divider for the list items. This attribute can be set, reset, and obtained
     * as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: color of the divkider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:
[
$list, in vp.\n
     * .value[3].f32:
list, in vp.\n \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: color of theo divider, in 0xARGB format.\n
     * .value[1].f32: stroke width of the divider, in vp.\n
     * .value[2].f32:
[
$list, in vp.\n
     * .value[3].f32:
Tlist, in vp.\n \n
     *
     */
    NODE_LIST_ITEM_GROUP_SET_DIVIDER,

    /**
    pindle size for the ListItem Group subcomponent.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting Bthe attribute:\n
     * .object: The parameter format is {@ ArkUI-} \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: The parameter format is {@ ArkUI-P} \n
     */
    NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,

    /**
   !%list item group adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .object: {@link ArkUI_NodeAdapter} object. \n
    *
7A*/
    NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,

    /**
    !%horizontal alignment mode ofcolumn.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
    &f}.\n
     * Default value: <b>Ψ!</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignment mode of child components.
    &fg}. \n
     *
     */
    NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
    /**
    !% ofcolumn.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components. The +FlexAlignment}.\n
     * Default value: <b>TART</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignment mode of child components.$FlexAlignment}. \n
     *
     */
    NODE_COLUMN_JUSTIFY_CONTENT,

    /**
     * @brief Defines Row constructor options or Column constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: The space of child components, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .v4alue[0].f32: The space of child components, in vp.\nжT'NODE_LINEAR_LAYOUT_SPACE,

    /**
    arrangement of child components along the main axis in a Column or Row is reversed, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The value that determines whether the arrangement of child components along the main axis is reversed.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: The value that determines whether the arr?angement of child components along the main axis is reversed.\nжT)NODE_LINEAR_LAYOUT_REVERSE,

    /**
    !% ofrow.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: vertical alignment mode of child components.
     * #]}.\n
     * Default value: <b>CENTER</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: vertical alignm"ent mode of child components.
    &]a}. \n
     *
     */
    NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
    /**
    !%horizontal alignment mode ofrow.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: horizontal alignment mode of child components.
     %+FlexAlignment}.\n
     * Default value: <b>TART</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: horizontal alignm"ent mode of child components.
    &MFlexAlignment}. \n
     *
     */
    NODE_ROW_JUSTIFY_CONTENT,

    /**
    !%flex attribute. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0]?.i32: direction in which flex items are arranged. The FlexDirection}.
    $<b>a></b>.\n
     * .value[1]?.i32: how the flex items are wrapped.$FlexWrap}.
    $G<b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
     * .value[2]?.i32: alignment modeFlexAlignment}.
    $<b>1TART</b>.\n
     * .value[3]?.i32: alignment mode$ItemAlignment}.
    $<b>-</b>.\n
     * .value[4]?.i32: alignment modeO for multi-line content. The parameter type is
     * {@link ArkUI_FlexAlignmen#TART</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: direction in which flex items are arranged. \n
     * .value[1].i32: how the flex items are wrapped. \n
     * .value[2].i32: alignment mode alon'\n
     * .value[3].i32: alignment mode( \n
     * .value[4].i32: alignment mode for multi-line content.\n
     *
     */
    NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,

    /**
     * @brief Defines Row constructor options used for settting the spacing of child components, which can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: Space on the main axis of the flex container., in vp.\n
     * .value[1].f32: Space on the cross axis of a flex container., in vp.\n
     *
  ڶTNODE_FLEX_SPACE,

    /**
    'he component is being refreshed.
     * This attribute can be set and obtained as required through APIs.
     *
     * Format o^f the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:h1 or 0.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:j1 or 0.
     *
     */
    NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    !)ustom content in the pull-down area.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
   d  * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object:MLink ArkUI_NodeHandle}.
     *
     */
    NODE_REFRESH_CONTENT,
    /**
    Zull-down hand coefficient.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32：Pull-down hand coefficient, valid value between 0 and 1.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32：Pnull-down hand coefficient, valid value between 0 and 1.
     *
     */
    NODE_REFRESH_PULL_DOWN_RATIO = 1009Rpull-down offset that initiates a refresh.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: pull-down offs	et, in vp64vp</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: pull-down offset, in vp764vp</b>.
     *
     */
    NODE_REFRESH_OFFSET = 1009S'initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
     * <b>false(    * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to initiate a refresh. +initiate a refresh, and
     *a*6    *
     */
    NODE_REFRESH_PULL_TO_REFRESH = 10090Mpull-down distance for refreshing.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: maximum pull-down distance, in vp.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: maximum pull-down distance, in vpqN*NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009W'he pull-up gesture cancels refresh.
     * This attribute can be set, reset, and obtained through the API as required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the pull-up gesture cancels refresh.+.hat the pull-up gesture
     * cancels refresh\*" Default value: <b>1</b>.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whet(her the pull-up gesture cancels refresh.+.hat the pull-up gesture
     * cancels refresh\*$tT?NODE_REFRESH_PULL_UP_TO_CANCEL_REFRESH = 1009006,

    /**
    !%:<b><WaterFlow></b> component layout.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: main axis direction.pLink ArkUI_FlexDirection}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: main pLink ArkUI_FlexDirection}.
     *
     */
    NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,

    /**
    
 layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string:Akin the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string:ARin the layout.\n
     *
     */
    NODE_WATER_FLOW_COLUMN_TEMPLATE,

    /**
    
rowlayout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string: numb[er of rows in the layout. \n
     *
     */
    NODE_WATER_FLOW_ROW_TEMPLATE,

    /**
    .
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     */
    NODE_W#ATER_FLOW_COLUMN_GAP,

    /**
    rows.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_W ATER_FLOW_ROW_GAP,

    /**
    !%"     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: An index calculated from 0 is converted to an integer,
  ]   * indicating that you want to start changing the position of the group.
     * .object: {@1i} object.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: {@1K} object.\n
     *
     */
    NODE_WATER_FLOW_SECTION_OPTION,

    /**
   !%water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
  3  */
    NODE_WATER_FLOW_NODE_ADAPTER,

    /**
   
cached itemadapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_`AttributeItem} parameter for setting the attribute:\n
    * value[0].i32：number of cached itemadapter. \n
    * .value[1]?.i32：whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    * \n
    * Format of the return value {@link ArkUI_Attribut4eItem}:\n
    * .value[0].i32: number of cached itemadapter. \n
    * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
    * This parameter is supported since API version 16. \n
    */
    NODE_WATER_FLOW_CACHED_COUNT,

    /**
     * @brief Set the custom display component at the end of the waterfall flow component.
     *
     * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
     * .object: Parameter type {@link ArkUI_NodeHandle}.
     *
     */
    NODE_WATER_FLO*W_FOOTER,

    /**
     * @brief Scroll to    *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an action when sliding to the index value of a list item in the lis\t, where
     * 1 indicates an action and 0 indicates no action. This parameter is optional,u"\n
     * .value[2].i32: Specify tmsliding element with the current container, The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional,16/b>START</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>.
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] is negative, it will offset further towards the top.
     * This parameter is supported since API version 23. \n
     *
     */3
    NODE_WATER_FLOW_SCROLL_TO_INDEX,

    /**
    !%6s to apply to water flow items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximum height, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: minimum width, in vp.\n
     * .value[1].f32: maximum width, in vp.\n
     * .value[2].f32: minimum height, in vp.\n
     * .value[3].f32: maximuYm height, in vp.\n
     *
     */
    NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,

    /**
    !%layout mode of the <b><WaterFlow></b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: waterflow layout mode.Link ArkUI_WaterFlowLayoutMode}.
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: waterflow layout mode.Link ArkUI_WaterFlowLayoutMode}PYNODEj,

    /**
    Y loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>WaterFloY synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \nm
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether theY synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \nжNNODE_WATER_FLOW_SYNC_LOAD = 1010012,

    /**
     * @brief Specifies the responsive column layout policy for the <b>WaterFlow<Y.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttrGibuteItem} parameter for setting the attribute:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[f}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[}. \nжKNODE_WATER_FLOW_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1010013,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>WaterFlow</b> container.
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>WaterFlow</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch >rendering is enabled. <b>0</b>: Disabled. <b>1</b>: Enabled.\nж]NODE_WATER_FLOW_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1010014,

    /**
     * @brief Set thN1;, supporting property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting methoWd parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines with/;!: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines with/;!: \n
     *
     */
    NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,

    /**
     =arrier with/;! and supports property setting,
     * property reset and property acquisition interfaces.
     *
     * Attribute setting methXod parameter {@link ArkUI_AttributeItem} format: \n
     * .object: Auxiliary lines with/;!: \n
     *\n
     * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Barrier with/;!F: \n
     *
     */
    NODE_RELATIVE_CONTAINER_BARRIER,

    /**
    
 in the grid layout. If this parameter is not set, one column is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
     * component's full width, the second column 1/4, and the third column 2/4.
     * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
     * columns based on the specified column width <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting  the attribute:\n
     * .string:Akin the layout.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .string:Ain the layout.\n
     *
     */
    NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
     * @brief Se
rows in the grid layout. If this parameter is not set, one row is used
     * by default. This attribute can be set, reset, and obtained as required through APIs.
     * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
     * component's full height, the second row 1/4, and the third row 2/4.
     * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
     * based on the specified row height <b>track-size</b>.
     * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
     * or a valid number.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: number of rows in the layout. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
   f  * .string: number of rows in the layout. \n
     *
     */
    NODE_GRID_ROW_TEMPLATE,

    /**
    . This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between columns, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between columns, in vp.\n
     *
     */
    NODE_GRID_COLUMN_GAP,

    /**
    rows. This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].f32: gap between lines, in vp.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].f32: gap between lines, in vp.\n
     *
     */
    NODE_GRID_ROW_GAP,

    /**
   !%grid adapter. The attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
    */
 '   NODE_GRID_NODE_ADAPTER,

    /**
   
cached items in the grid adapter.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: number of cached items in t(he grid adapter. \n
    * .value[1].i32:1Ucached nodes. 0 means not display, 1 means display.
    * This parameter is optional,u [since 26.0.0]\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: number of cache4d items in the grid adapter. \n
    * .value[1].i32:1cached nodes. 0 means not display, 1 means display. [since 26.0.0]
    */
    NODE_GRID_CACHED_COUNT,

    /**
    * @brief Def.%	focus wrap mode for the <b>Grid</b> component.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].i32: focus wrap mod4e of the <b>Grid</b> component.
    *               $FocusWrapMode}. \n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * .value[0].i32: focus wrap mod4e of the <b>Grid</b> component.
    *               $FocusWrapMode}. \n
    *
L9*/
    NODE_GRID_FOCUS_WRAP_MODE = 1013006,

    /**
    <b>Grid</b> component loads child nodes synchronously.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
     * The value <b>0</b> means loading by frames, and <b>#1</b> means synchronous loading. \nжN7NODE_GRID_SYNC_LOAD = 1013007,

    /**
     * @brief Sof
s in the parent <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: alignment of <b>G
Ks in the parent <b>Grid</b> container, \n
     * specified using the {@link\} enum. \n
    $<b>[</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: alignment of <b>GridI
Ks in the parent <b>Grid</b> container, \n
     * specified using the {@link\
} enum. \nжKNODE_GRID_ALIGN_ITEMS = 1013008,

    /**
     * @brief Specifies the layout options of the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parhameter for setting the attribute: \n
     * .object: layout options, with the parameter format of {@link}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .object: current {@link ArkUI_GridLayou} object. \nжKNODE_GRID_LAYOUT_OPTIONS = 1013009,

    /**
     * @brief Specifies the responsive column layout policy for the <b>Grid</b> component.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkNUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[f}. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32:Aat differentwX    * The data type is {@link?[}. \nжKNODE_GRID_COLUMN_TEMPLATE_ITEMFILLPOLICY = 1013010,

    /**
     * @brief Specifies whether to enable edit mode for the <b>Gri%d</b> component.
     * In edit mode,
s can be dragged through the <b>NODE_GRID_ON_ITEM_DRAG_START</b> event.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable edit mode for the <b>Grid</b> component.
     * <b>0</b>: Disable edit mode. <b>1</b>: Enable edit mode. \nжThNODE_GRID_EDIT_MODE = 1013011,

    /**
     * @brief Specifies whether to enable the drag animation for
s in the <b>Grid</b>
     * container. This attribute can be set, reset, and obtained as required through APIs.
     * Animations are supported only in scrolling mode (when either <b>NODE_GRID_ROW_TEMPLATE</b> or
     * <b>NODE_GRID_COLUMN_TEMPLATE</b> is set, but not both). Drag animations are only supported in regularly sized
     * grid layouts; scenarios involving spanning across rows or columns are not supported.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attrGibute:\n
     * .value[0].i32: whether to enable the drag animation for
ks in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag anim0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether to enable the drag animation for
s in the <b>Grid</b> container.
     * <b>0</b>: Disable the drag animation. <b>1</b>: Enable the drag animation. \n
     *
   ۶TNODE_GRID_DRAG_ANIMATION = 1013012,

    /**
     * @brief Specifies whether to enable mouse-based multi-selection in the <b>Grid</b> container. This attribute can
     * be set, reset, and obtained as required through APIs. When enabled, mouse-based mulkti-selection within the
     * <b>Grid</b> area triggers the <b>NODE_GRID_ITEM_EVENT_ON_SELECT</b> event on
s.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to enable mouse-based multi-selection.
     * <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based multi-selection. Default value:
     * <b>0</b>.\n \n Format of the return value {@link ArkUI_AttributeItem}:\n .value[0].i32: whether to enable
     * mouse-based multi-selection. <b>0</b>: Disable mouse-based multi-selection. <b>1</b>: Enable mouse-based
     * multi-selection. \nжTHNODE_GRID_MULTI_SELECTABLE = 1013013,
  
    /**
     * @brief Scroll to    *
     * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
     * lead to performance issues when loading a large number of items.\n
     * \n
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: The index value of the target element to be slid to in the current container.\n
     * .value[1].i32: Set whether there is an animation when sliding to the target element, where
     * 1 indMicates an animation and 0 indicates no animation. This parameter is optional.u# \n
     * .value[2].i32: Specify tmtarget element with the current container. The parameter type is
     * {@link ArkUI_ScrollAlignment}. This parameter is optional,16/b>AUTO</b>. \n
     * .value[3].f32: Extra offset after scrolling to a specified index, in vp. This parameter is optional, the default
     * value is <b>0</b>. 
     * If value[3] is positive, it will offset further towards the bottom.
     * If value[3] 7is negative, it will offset further towards the top. \nжTNODE_GRID_SCROLL_TO_INDEX = 1013014,

    /**
     * @brief Specifies whether to support empty branch rendering in lazy loading mode for the <b>Grid</b> container. 
     * This attribute can be set, reset, and obtained as required through APIs. When enabled in lazy loading mode, 
     * empty branches (items without content) in the <b>Grid</b> will be rendered and set to width 0 and height 0, 
     * which may affect the overall layout and scrolling behavior. This is typically used in scenarios where the
     * data source may have gaps or when maintaining specific layout positions is required.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to support empty branch rendering in lazy loading mode.
     * <b>0</b>: Disable empty branch support. Empty branches will not be rendered. <b>1</b>: Enable empty branch support. 
     * Empty branches will be rendered as placeholder items. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether empty branch rendering is enabled. <b>0</b> : Disabled. <b>1</b>: Enabled.\nжTGNODE_GRID_SUPPORT_EMPTY_BRANCH_IN_LAZY_LOADING = 1013015,

    /**
    	 

     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriPbuteItem} parameter for setting the attribute: \n
     * .value[0].i32: style of
 GridItemStyle}. \n
    $<b>GRID_ITEM_STYLE_NONE</b>. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32
: style of
 GridItemStyle}. \nжKjNODE_GRID_ITEM_STYLE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,

    /**
     * @brief Specifies whether
 can be selected using mouse-based multi-selection.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether
 can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. Default value: <b>1</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].i32: whether the <b>GridItem/
m can be selected using mouse-based multi-selection.
     * <b>0</b>: not selectable. <b>1</b>: selectable. \nжT2NODE_GRID_ITEM_SELECTABLE = 1014001,

    /**
    selected state of
 
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttriXbuteItem} parameter for setting the attribute:\n
     * .value[0].i32: selected state of

     * <b>0</b>: not selected. <b>1</b>: selected. Default value: <b>0</b>.\n
     * \n
     * Format of the return value {@liCnk ArkUI_AttributeItem}:\n 
     * .value[0].i32: selected state of
 .<b>0</b>: not selected. <b>1</b>: selected. \nжT/NODE_GRID_ITEM_SELECTED = 1014002,

    /**
   !%column width of the text picker.
    * This attribute can be set, reset, and obtained as required through APIs.
    *
    * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
    * .value[0].f32: percentage of total width. TTthat all colulmns are equal width.\n
    * .value[1]?.f32: percentage of total widthTthat all colulmns are equal width.\n
    * .value[2]?.f32: percentage of total width`that all colulmns are equal width.\n
    * ...\n
    * .value[n]?.f32: percentage of total widththat all colulmns are equal width.\n
    * \n
    * Format of the return value {@link ArkUI_AttributeItem}:\n
    * value[0].f32: percentage of total width.\n
    * value[1].f32: percentage of total width.\n
    * value[2].f32: percentage of total width.\n
    * ...\n
    * value[n].f32: percentage of total width.\n
    *
    * @since 18
    */
    NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
    /**
    !%disabled date range of the calendar picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
     * ...,`nth start date`,`nth end date` of the disabled date range.\n
     *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
     * \n
     * Format of the return value {@lin>k ArkUI_AttributeItem}:\n
     * .string: A string of dates.\nж?NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,

    /**
    calendar picker marks today.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * value[0].i32: whether the calendar picker m
arks todayfalse</b>.\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether the calendar picker marks today.\nж6NODE_CALENDAR_PICKER_MARK_TODAY = 16007,

    /**
    !%want used to start EmbeddedAbility.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@liWnk ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The want///, with parameter type {@AbilityBase_Want}.
    $<b>nullptr</b>.\nжNNODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,

    /**
     * @brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
     * This attribute can be set as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .object: The option for EmbeddedComponent, with parameter type {@A0}.\nжN-NODE_EMBEDDED_COMPONENT_OPTION,

    /**
    !%default selected item in the data selection range of the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].u32: index. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * .value[0].u32: index. \n
  ӶTHNODE_PICKER_OPTION_SELECTED_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICK1!b This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
     * <b>false(\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32: whether to feedback.\n
     ֶT:NODE_PICKER_ENABLE_HAPTIC_FEEDBACK = 1018001,
    /**
    o support scroll looping for the picker.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
     * .value[0].i32: whether to suppo]rt scroll looping. The value <b>true</b> means to support scroll looping, and
     * <b>false(b\n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}:\n
     * value[0].i32:+support scroll looping\*" \nжTNODE_PICKER_CAN_LOOP = 1018Rtype and parameters of the selection indicator.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
     * .object: Parameter type {@link a}.
     * \n
     * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
     * .object: Parameter type {@link`}qT8NODE_PICKER_SELECTION_INDICATOR = 1018003,

    /**
    total number of visible items.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].i32: number of visible items. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].i32: number of visible items. \nж9NODE_PICKER_DISPLAYED_ITEM_COUNT = 1018004,

    /**
    Mof each item.
     * This attribute can be set, reset, and obtained as required through APIs.
     *
     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
     * .value[0].f32: the height of each item, in vp. \n
     * \n
     * Format of the return value {@link ArkUI_AttributeItem}: \n
     * .value[0].f32: the height of each item, in vp. \n
 Ҷ8NODE_PICKER_ITEM_HEIGHT = 1018005,
} ArkUI_NodeAttribute:component event max args}&#define MAX_COMPONENT_EVENT_ARG_NUM 12A[arameter typa3o%
fData array object. */
    ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
} ArkUI_NodeComponentEvP +string type parameter used by the component`4o%
6String. */
    const char* pStr;
} ArkUI_StringAsyncEvP+a hybrid data structure for component event`&o%
String data */
    const char* pStr;
    /** Extended string data */
    const char* pExtendStr;
    /** Numeric data */
    in"t32_t number;
} ArkUI_TextChangeEvP9a data structure for the text editor content change eventњ8ChangeEvent!?ChangeEv R$&vent types supported by the NativeNode:6$%gesture event type.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is {@lin2k ArkUI_UIInputEvent}.
     */
    NODE_TOUCH_EVEN}$%(mount event.
     *
     * This event iscomponent is mounted and displayed. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */'
    NODE_EVENT_ON_APPEAR,
    /**
    !%*unmount event.
     *
     * This event iscomponent is unmounted and hidden. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
*    NODE_EVENT_ON_DISAPPEAR,

    /**
    !%.
     *
     * This event iscomponent's size, position, or any other attribute that may
     * affect its display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *  {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
     * The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original Xtarget element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI/_NodeComponentEvent.data[3].f32</b>: original Ytarget element's upper left corner
     * relative to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI/_NodeComponentEvent.data[4].f32</b>: original Xtarget element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeCompo%nentEvent.data[5].f32</b>: original Ytarget element's upper left corner
     * relative to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new Xtarget element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI*_NodeComponentEvent.data[9].f32</b>: new Ytarg   et element's upper left corner relative
     * to the parent element's, in vp. The value type is number. \n
     * <b>ArkUI+_NodeComponentEvent.data[10].f32</b>: new Xtarget element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     * <b>ArkUI_NodeCompo!nentEvent.data[11].f32</b>: new Ytarget element's upper left corner relative
     * to the page's, in vp. The value type is number. \n
     */
    NODE_EVENT_ON_AREA_CHANGE,
    /**
    !%(focus event.
     *
     * This event iscomponent obtains the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_ON_FOCUS,
    /**
    !%'blur event.
     *
     * This event iscomponent loses the focus. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_ON_BLUR,
    /**
    !%(click event.
     *
     * This event iscomponent is clicked. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Xclick)j
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Yclick)
     * clicked component's original area, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
     * is triggered and the time when the system starts, in microseconds. \n
    C * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device.+indicates the mouse,
     * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: Xclick)[
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Yclick)[
     * application window, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: Xclick)[
     * application screen, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Yclick)
     * application screen, in vp. \n
     */
    NODE_ON_CLICK,
    /**
     * @brief Defines event interception.
     *
     * This event iscomponent is touched. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * P{@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_TOUCH_INTERCEPT,
    /**
    !%.
     *
     * This event isratio of the component's visible area to its total area is greater than or less
     * than the threshold.
     * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to i:ts total area
     * changes compared to the previous one.+indicates an increase, and <b>0</b> indicates a
     * decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
     * callback is invoked. \n
     */
    NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
    /**
    !%*yis moved over or away from the component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
     * Th+indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
     * the mouse pointer is moved a2way from the component. \n
     */
    NODE_ON_HOV1$%(click event.
     *
     * This event is0component is clicked by a mouse device button or ymoves
     * within the component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} objeSct is
     * {@link ArkUI_UIInputEvent}. \n
     */
    NODE_ON_MOUSE,
    /**
    !%)attach event.
     *
     * This event iscomponent is attached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_ATTACH,
    /**
    !%)detach event.
     *
     * This event iscomponent is detached. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     */
    NODE_EVENT_ON_DETACH,

    /**
    !%Maction event.
     *
     * This event is triggered when The accessibility operation type has been set and
     * corresponding operations have been carried out. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * <b>^ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type，the union type is
     *@)ActionType} \n
     *
     */
    NODE_ONmS = 13,

    /**
     * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
     *
     * This event is triggered when a drag operation is about to start on a draggable item. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDrag,Status}. \n
     */
    NODE_ON_PRE_DRAG = 1Mbrief Called when the user starts to drag an ite
     *
     * A drag operation is recognized only when the dragged item is moved far enough. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_START = 15,
    /**
     * @brief Called when a dragged item enters the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_ENTER = 16,
    /**
     * @brief Called  when a dragged item moves in the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_MOVE = 1Obrief Called when a dragged item leaves the boundaries of the current component.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DRAG_LEAVE = 18,
    /**
     * @brief Called when a dragged item is dropped on the current component.
     * The component can obtain the drag data for processing through the callback.
     *
     * The current component refers to the component that listens for this event. \n
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
    NODE_ON_DROP = 19,
    /**
     * @brief Called when a drag operation ends.
     * The drag source can obtain the drag result by registering this callback.
     *
     * A drag operation ends when the dragged item is released.
     * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n
     */
  %  NODE_ON_DRAG_END = 20,
    /**
    !%a key event occurs.
     *
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} obj:ect is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 9X$NODE_ON_KEY_EVENT = 21,
    /**
    !%
before the input method responds to the key action.
     *
     * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
     * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
     * and no longer triggered.
     * The callback can be triggered during interactions with a focused window using an external keyboard or other input
     * device. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 
     * @since 14
  MX
&NODE_ON_KEY_PRE_IME = 22,
    /**
    !%bound component receives a focus axis event after gaining focus.
     *
     * The event callback is triggered by interactions with a joystick and a focused component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent9} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 1RNODE_ON_FOCUS_AXIS = 23,

    /**
     * @brief Dispatch key event on the component node.
     *
     * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
     * children. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * 1R+NODE_DISPATCH_KEY_EVENT = 24,

    /**
    !%bound component receives an axis event.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     * 
     * @since 17
     */
    NODE_ON_AXIS = 25,

    /**
     * @b&%bound component is clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object )is
     * {@link ArkUI_UIInputEvent}.  \nж`Y'NODE_ON_CLICK_EVENT = 26,

    /**
    !%*y;or moves away from a component.
     *
     * This event is*yenters or leaves the component's bounding box. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_UIInputEvent}. \n
     *
     *@since 17
     */
    NODE_ON_HOVER_EVENT = 27,

    /**
    !)allback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
     *
     * The callback is trigratio of the component's visible area to its total area is greater than or
     * less than the threshold. Before registering the callback, you must configure the threshold and update interval
     * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
     * changes compared to the previous one. The valu+indicates an increase, and <b>0</b> indicates
     * a decrease. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio oYf the component's visible area to its total area
     * when this callback is invoked. \nжM17
     */
    NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,

    /**
    !%(hover event.
     * 
     * The event ispointer is hovered by a pen device.
     * within the component. \n
     * When the event callback occurs, the {@link ArkUI_NodTeEvent} object can be obtained from the
     * {@link ArkUI_UIInputEvent} object. \n1R-*/
    NODE_ON_HOVER_MOVE = 29,

    /**
    !%2size change event.
     *
     * The event will becomponent size changes.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. 
     * {@link ArkUI_NodeComponentEvent} contains four parameters:
     * <b>ArkUI_NodeComponelntEvent.data[0].f32</b>: the width of the old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:old rectangle.
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the width of the new rectangle.
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>:new rectanglF 'NODE_ON_SIZE_CHANGE = 30,

    /**
    !%coasting axis event.
     *
     * The event is triggered when user swipes with two fingers on the touchpad, the system constructs
     * sliding events based on the speed at the moment the fingers are lifted, according to a certain
     * decay curve. You can listen for such events to handle the flick effect immediately after the
     * regular axis events. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtained from the
     * {@link ArkUI_NodeEvent} object through {@link OH_ArkUI_NodeEvent_GetInputEvent}.
     * And the {@link ArkUI_CoastingAxisEvent} object can be obtained from the {@elink ArkUI_UIInputEvent}
     * object through {@link OH_ArkUI_UIInputEvent_GetCoastingAxisEvent}. \nжK/NODE_ON_COASTING_AXIS_EVENT = 31,

    /**
    !%pre-touch test of sub component in touch events. Called to specify how to perform the touch test on the children of this compon ent.
     * 
     * The event iscomponent is touched. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
   *  * {@link ArkUI_TouchTestInfo} object. \naJ3*/
    NODE_ON_CHILD_TOUCH_TEST = 32,

    /**
    !%!crown event.
     * This event iscrown is rotated. \n
     * When the event callback occurs, the {@link ArkUI_UIInputEvent} object can be obtained from the
    % * {@link ArkUI_NodeEvent} object. \n0*/
    NODE_ON_DIGITAL_CROWN = 33,

    /**
    !%isI<b>ARKUI_NODE_CUSTOM</b> content is scrolled.
     * 
     * The event iscomponent's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of( the frame scrolling, measured in px. \n9*/
    NODE_ON_CUSTOM_OVERFLOW_SCROLL = 34,

    /**
    !%isH<b>ARKUI_NODE_STACK</b> content is scrolled.
     * 
     * The event iscomponent's content is scrolled. \n
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
     * ArkUI_NodeComponentEvent.data[0].i32: id of scrolling child component. \n
     * ArkUI_NodeComponentEvent.data[1].f32: offset of( the frame scrolling, measured in px. \n8*/
    NODE_ON_STACK_OVERFLOW_SCROLL = 35,

    /**
    !%component is focused and need to decide whether softkeyboard is needed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not contain parameters.
     *
     * @return Whether softkeyboard is needed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether softkDeyboard is needed.
     * <b>0</b>: not needed. <b>1</b>: needed. \n;NODE_ON_NEED_SOFTKEYBOARD = 36,

    /**
     * @brief This~vents and gestures on this node and
     * higher-priority nodes are collected. \n
     * This callback is used to intervene ink the collection result of events and gestures. \n
     * 
     * When the event callback occurs, the {@link.	"K} object can be obtained from the
     * {@link ArkUI_NodeEvent} object. \n"NODE_ON_GESTURE_COLLECT_INTERCEPT = 37,

    /**
     * @brief Triggers onDetectResultUpdate callback
     * when the text is set to 1 D and recognized successfully.
     *
     * Trigger this event when 1  is set and recognized successfully.\n
     * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
     * {@link ArkUI_StringAsyncEvent}.\n
     * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>：Indicates the result of text recognition, in Json format.\n
     *
     */
    NODE_QTEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
    /**
    !%5long press event for span.
     *
     * The event ispan is long pressed.
     * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
     * %{@link ArkUI_UIInputEvent} object. \nA_2NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,

    /**
    !%text selection position changes.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent=.data[1].i32</b>: end position of the text selection area. \nж8NODE_TEXT_ON_TEXT_SELECTION_CHANGE = 1002,

    /**
    !%copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *K'NODE_TEXT_ON_COPY = 1003,

    /**
    !%
before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the coBpy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nж,NODE_TEXT_ON_WILL_COPY = 1004,

    /**
    !%image loading success event.
     *
     * This event is triggered when an image is successfully loaded or decoded. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
     * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
     * <+b>ArkUI_NodeComponentEvent.data[2].f32</b>:, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
     * x-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
     * y-axis, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
     * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered heĺd, in px. \n
     */
    NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
    /**
    !%image loading failure event.
     *
     * This event is triggered when an error occurs during image loading. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
     * 401: The image could not be obtained because the image path is invalid. \n
     * 103101: The image format is not suppo6rted. \n
     */
    NODE_IMAGE_ON_ERROR,
    /**
    !%DSVG animation playback completion event.
     *
     * This event isanimation playback in the loaded SVG image is complete. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not containD parameters.
     */
    NODE_IMAGE_ON_SVG_PLAY_FINISH,
    /**
    mage download process event.
     *
     * This event is triggered when downloading webpage images from page components.\n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
     * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
  7   */
    NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
    /**
    !%toggle status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
     *
     */
    NODE_TOGGLE_ON_CHANGE7 = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
    /**
    !%text input content changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
     *
     */
    NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
    /**
    !%Enter key of the text input method is pressed.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
     *
     */
    NODE_T!EXT_INPUT_ON_SUBMIT,
    /**
    !%cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
    3 *
     */
    NODE_TEXT_INPUT_ON_CUT,
    /**
    !%paste button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
   /  */
    NODE_TEXT_INPUT_ON_PASTE,
    /**
    !%text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,

    /**
    !%input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TEXT_EINPUT_ON_EDIT_CHANGE,

    /**
      * @brief textInput This event isinput content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter
      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:=text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:^Stext. \n
      *
      */
    NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,

    /**
    !%matching with the regular expression specified by
     * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,

    /**
     * @brief This callback istext content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     *6 <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicate`_Wof the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>:9%fset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_INPUT_ON_CONTENT_SCROLL,

    /**
     * @brief*%ext is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string valuoe of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    1<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEbvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,

    /**
    !%ext is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_INPUT_ON_DID_INSERT = 7010,

    /**
    !%ext is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of tihe text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    1<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoedeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,

    /**
    !%ext is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_INPUT_ON_DID_DELETE = 7012,

    /**
    !%content (including preview text) changes in the <b>TextInput</b>
     * component.
     *
     * When the event callback occurs, the unNodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of 2the preview text in the <b>TextInput</b> componentq@RANODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,

    /**
    !%
Kbefore content changes
     *
     * When the event callback occurs, the unNodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of ;the preview text in the <b>TextInput</b> component.
     * A_4NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,

    /**
    !%copy button on the pasteboard, which displays when text is
     * selected, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUIi_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copiA-NODE_TEXT_INPUT_ON_COPY = 7015,

    /**
    !%
before copying text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the coBpy is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nж2NODE_TEXT_INPUT_ON_WILL_COPY = 7016,

    /**
    !%
before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the cut is= allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nж1NODE_TEXT_INPUT_ON_WILL_CUT = 7017,

    /**
    !%input in the text box changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
     *
     */
    NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
    /**
    !%paste button on the pasteboard, which displays when the text box is
     * long pressed, is clicked.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
     * \n
     * Since 26.0.0, the callback can return whether the paste is allowed.\n
     * @return Whether the paste is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the paste is allowed. \n
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n
     *
   .  */
    NODE_TEXT_AREA_ON_PASTE,
    /**
    !%text selection position changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
     *
     */
    NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
    /**
    !%matching with the regular expression specified by
     * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
     *
     */
    NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
    /**
     * @brief This callback istext content is scrolled.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     *6 <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicate`_Wof the text in the content area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>:9%fset of \n
     * the text in the content area. \n
     *
     */
    NODE_TEXT_AREA_ON_CONTENT_SCROLL,

    /**
     * @brief +%input status changes.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
     *
     */
    NODE_TE%XT_AREA_ON_EDIT_CHANGE,

    /**
    !%Enter key on the keyboard is pressed for the multi-line text box.
     *
     * This event is not triggered when <b>keyType</b> is <b>09NEW_LINE</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
     *
     */
    NODE_TEXT_AREA_ON_SUBMIT,

    /**
      * @brief textArea Thi
s event isinput content changes.
      *
      * Conditions for triggering this event: When the input content changes. \n
      * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
      * {@link ArkUI_NodeComponentEvent}.\n
      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:=text. \n
      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:^Rtext. \n
      *
      */
    NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,

    /**
    !%ext is about to be entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string valuoe of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    1<b>true</b> if the text is entered; returns <b>false</b> otherwise.
     * You can set the return value using <b>OH_ArkUI_NodeEavent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_INSERT = 8008,

    /**
    !%ext is entered.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_AREA_ON_DID_INSERT = 8009,

    /**
    !%ext is about to be deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of tihe text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
    1<b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
     * You can set the return value using <b>OH_ArkUI_NoddeEvent_SetReturnNumberValue</b>. \n
     */
    NODE_TEXT_AREA_ON_WILL_DELETE = 8010,

    /**
    !%ext is deleted.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
     * forward-delete. \n
     * buffer: string value of the text, with the index of <b>0</b>; obtained using
     * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
     */
    NODE_TEXT_AREA_ON_DID_DELETE = 8011,

    /**
    !%content (including preview text) changes in the <b>TextArea</b>
     * component.
     *
     * When the event callback occurs, the unNodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of th/e preview text in the <b>TextArea</b> componentq@R@NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,

    /**
    !%
Lbefore content changes.
     *
     * When the event callback occurs, the unNodeEvent} is {@link ArkUI_TextChangeEvent}. \n
     * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
     * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
     * <b>ArkUI_TextChangeEvent.number</b>: start position of th/e preview text in the <b>TextArea</b> componentqN3NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,

    /**
    !%copy button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     *K,NODE_TEXT_AREA_ON_COPY = 8014,

    /**
    !%
before copying text.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is copied.
     * @return Whether the copy is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the copy ?is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nж1NODE_TEXT_AREA_ON_WILL_COPY = 8015,

    /**
    !%cut button on the pasteboard, which displays when the text box
     * is long pressed, is clicked.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     *
   +NODE_TEXT_AREA_ON_CUT = 8016,

    /**
    !%
before cutting text.
     * \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
     * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
     * @return Whether the cut is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the cut is= allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nж0NODE_TEXT_AREA_ON_WILL_CUT = 8017,

    /**
    !%elected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
     */
    NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,

    /**
    !%a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponen\tEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: yea?ate. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: monAate. Value range: [0-11]. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
     */
    NODE_]DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,

    /**
    !%a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
     */
   ^ NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,

    /**
    !%an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
    e */
    NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,

    /**
    !%an item is selected and scrolling has stopped in the
     * <b>ARKUI_NODE_TEXT_PICKER</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \nжHX<NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,

    /**
    !%a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * <b>ArkUI_NodeComponent.data[0].u32</b>: year o:ate. \n
     * <b>ArkUI_NodeComponent.data[1].u32</b>: monAate. \n
     * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
     */
    NODE_CALENDAR_PICKER_EVENT_ON_CFHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,

    /**
    !%<b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
     */
    NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,

    /**
    !%%+	triggered when an object is dragged or clicked by ARKUI_NODE_RADIO.
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
     * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
     */
    NODE_RADIO_EVENT_ON_CHA:NGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,

    /**
    !%%+	tto play.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANTIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
    /**
    !%%+	animation playback is paused.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
   @ */
    NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
    /**
    !%%+	animation playback is repeated.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
 2   */
    NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19R%%!+	&when the animation playback returns to[
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19S%%!+	animation playback is complete or stopped.
     *
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameter:S\n
     *
    */
    NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
    
    /**
    !%callbackelected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
     * or checkbox changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_StringAsyncEvent}. \n
     * <b>ArkUI_StringAsyncEvent.pStr</b>
     * Name: The names of the selected checkboxes;
     * Status:
     * 0: All checkboxes are selected.
     *J 1: Some checkboxes are selected.
     * 2: No checkboxes are selected. \nж@RcNODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,

    /**
    !%election area or caret position changes in
     * <b>ARKUI_NODE_TEXT_EDITOR</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start index of selection] area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end index of selection area. \n@%aNODE_TEXT_EDITOR_ON_SELECTION_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_EDITOR,

    /**
    !%<b>ARKUI_NODE_TEXT_EDITOR</b> component is initialized
     * for the first time.
     *
     * When the event callback occurs,d the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n@%(NODE_TEXT_EDITOR_ON_READY,

    /**
    !%paste button on the pasteboard, which appears
     * after a long press on the<b>ARKUI_NODE_TEXT_EDITOR</b> component is long pressed, is clickAreturn Whether to intercept the component's default behavior. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether to intercept the component's dHefault behavior.
     * <b>0</b>: not intercept. <b>1</b>: intercept. \n@%(NODE_TEXT_EDITOR_ON_PASTE,

    /**
    !%<b>ARKUI_NODE_TEXT_EDITOR</b> component's editing state has changed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent}` contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the editing statex1NODE_TEXT_EDITOR_ON_EDITING_CHANGE,

    /**
    !%Enter key of the TextEditor input method is pressed.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one pajrameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
     * )NODE_TEXT_EDITOR_ON_SUBMIT,

    /**
    !%cut button on the pasteboard, which appears
     * after a long press on the <b>ARKUI_NODE_TEXT_EDITOR</b> component is long pressed, is clickAreturn Whether to intercept the component's default behavior. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether to intercept the component's dHefault behavior.
     * <b>0</b>: not intercept. <b>1</b>: intercept. \n@%&NODE_TEXT_EDITOR_ON_CUT,

    /**
    !%copy button on the pasteboard, which displays when the content of the
     * <b>ARKUI_NODE_TEXT_EDITOR</b> component is selected, is clickAreturn Whether to intercept the component's default behavior. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether to intercept the component's dHefault behavior.
     * <b>0</b>: not intercept. <b>1</b>: intercept. \n@%'NODE_TEXT_EDITOR_ON_COPY,

    /**
    !%
before text content is about to change in
     * <b>ARKUI_NODE_TEXT_EDITOR</b> component.
     *
     * When the event callbackG occurs, the union type in the {@link ArkUI_NodeEvent} object is
     *aChangeEvent}. \n
     * @return Whether the content change is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether the content change is= allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \n@%.NODE_TEXT_EDITOR_ON_WILL_CHANGE,

    /**
    !%
after text content changed in
     * <b>ARKUI_NODE_TEXT_EDITOR</b> component.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start index of range of content that was replaced. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end index of range of content that was replaced. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: start index of range of content that was newly added. \n
     * <b>ArkUI_NodeComSponentEvent.data[3].i32</b>: end index of range of content that was newly added. \n@%-NODE_TEXT_EDITOR_ON_DID_CHANGE,

    /**
    !%index of the currently displayed element of this
     * <b>ARKUI_NODE_SWIPER</b> instance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     */
    NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,

    /**
     * @b&%witching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
3     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>:element to switch to. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative+ to the
     * start position of the swiper\n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
     * of the swiper\n
     * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_START,

    /**
    !%witching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
     * start position of the swiper@\n
     */
    NODE_SWIPER_EVENT_ON_ANIMATION_END,

    /**
    !%
on a frame-by-frame basis when the page is turned by a swipe in this
     * <b>ARKUI_NODE_SWIPER</b> instance.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed e:lement relative to the
     * start position of the swiper@\n
     */
    NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,

    /**
    h<b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
     * Instruction: \n
     * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
     * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
     * 2, circular scenario, set prevMargin and nextMargin attributes, \n
     * so that Swiper front and back end display the same page, the interface does not take effect. \n
     * 3. During page sliding, the ContentDidScrollCallback callback is \n
     * triggered frame-by-frame for all pages in the window. \n
     * For example, when there are two pages in the window with subscripts 0 and 1, \n
     * callbacks with index values 0 and 1 are triggered twice per frame. \n
     * 4, set the swipeByGroup parameter of the displayCount property to \n
     * true if at least one page in the same group is in the window, \n
     * A callback is triggered for all pages in the group. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters:9\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : iSwiper component, \n
     * which is consistent with the index change in the onChange event. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
     * the start position of the Swiper spindle (selectedIndex corresponds to the start positiaon of the page). \n
     * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page i`G. \n
     */
    NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,

    /**
    !%elected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
   9  * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of|}element. \n
     * QY6NODE_SWIPER_EVENT_ON_SELECTED = 1001005,

    /**
    !%elected index of the <b>ARKUI_NODE_SWIPER</b> changed.
     * 
     * This event is triggered under the following scenarios: \n
     * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
     * the threshold for page turning. \n
     * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
     * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
   h  * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
     * QY8NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,

    /**
    !%content in the swiper component will scroll.
     * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
     * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
     * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating7
     * slide forward(e.g. from index=0 to index=1). \nж@RANODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,

    /**
    !%H<b>ARKUI_NODE_SWIPER</b> scroll state change event.
     * This event iscroll state ofa| changes during user dragging,
     * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i3W2</b>: current scroll state. The parameter type is
     * {@link ArkUI_ScrollState}. \nжNBNODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,

    /**
    !%<b>ARKUI_NODE_SCROLL</b> component scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:q^>offset. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>:eioffset. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
    /**
    !%each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, sCuch as keyboard and mouse operations. \n
     * 2. This event is no+controller API is called. \n
     * 3. ThisEthe out-of-bounds bounce effect. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scr \n
     * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
     * needs to scroll based on the real-world situation and rehturn the result in this parameter. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,

    /**
    h3? of the pre sliding trigger event for the scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
     * <Lb>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     * eScrollState}. \n
     * <b>ArkUI_NodeComponent   Event.data[3].i32</b>: Current scroll source, \n
     * ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll compone>nt.
     */
    NODE_SCROLL_EVENT_ON_WILL_SCROLL,
    /**
    hevent enumeration value triggered when sliding a scrolling container component.
     *
     * The conditions that trigger this event: \n
     * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
     * operations that trigger scrolling.\n
     * 2. Called through the rolling controller API interface.\n
     * 3. Cross boundary rebound.\n
     * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
     * the left and negative when scrolling to the right, measured in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
     * scrolling up and a negative offset when scrolling down, measured in vp. \n
R     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
     KScrollState}. \n
     */
    NODE_SCROLL_EVENT_ON_DID_SCROLL,

    /**
    !%scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
     * and mouse operations. \n
     * 2. This event iscontroller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does noTt contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_START,
    /**
    !%scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
     * settings, such as keybo4ard and mouse operations. \n
     * 2. This event iscontroller API is called, accompanied by a transition animation. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does noBt contain parameters. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_SA$%scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
     * one of the edges.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
     * component or other input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) thatU the scrolling reaches. \n
     */
    NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
    /**
    hat a callback iscrolling container component reaches the start position.
     * Condition for triggering the event: \n
     * Triggered when the component reaches the start position. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     5*/
    NODE_SCROLL_EVENT_ON_REACH_START,
    /**
    hat a callback iscrolling container component ends. \n
     * Condition for triggering the event: \n
     * Triggered when the component reaches the end. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
     */
    NODE_SCROLL_EVENT_ON_REACH_EN+%callback for when the user is about to release the drag on the scrollable container component.
     *
     * This event is triguser is about to release the drag on the scrollable container component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent}^ contains one parameter: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which~S drag, in vp. \nжN5NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
    /**
    !%callback for the <b>Scroll</b> component's zoom event,
     * triggered at the end of each frame during zooming. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current zoom scale. \nжN+NODE_SCROLL_EVENT_ON_DID_ZOOM,
    /**
    !%callback for the <b>Scroll</b> component's zoom start event,
     * triggered when zooming begins. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link: ArkUI_NodeComponentEvent} does not contain parameters. \nжN-NODE_SCROLL_EVENT_ON_ZOOM_START,
    /**
    !%callback for the <b>Scroll</b> component's zoom end event,
     * triggered when zooming ends. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
     * is {@link ArkUI_NodeComponentEvent}. \n
     * {@link Ark6UI_NodeComponentEvent} does not contain parameters. \nжNNODE_SCROLL_EVENT_ON_ZOOM_SA$%Qcallback for when the scrollable will start dragging.
     *
     * This event iscrollable will start dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n
     * @since /F@NODE_SCROLL_EVENT_ON_WILL_START_DRAGGING = 1002013,
    /**
    !%Ncallback for when the scrollable did end dragging.
     *
     * This event iscrollable did end dragging. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
     * <b>ArkUI_NDodeComponentEvent.data[0].i32</b>: whether start fling animation. \nж%/NODE_SCROLL_EVENT_ON_DID_STOP_DRAGGING = 100201M%%Ncallback for when the scrollable will start fling.
     *
     * This event iscrollable will start fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
 m    * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n F=NODE_SCROLL_EVENT_ON_WILL_START_FLING = 1002015,
    /**
    !%Kcallback for when the scrollable did end fling.
     *
     * This event iscrollable did end fling. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
    j * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains no parameters: \n F;NODE_SCROLL_EVENT_ON_DID_STOP_FLING = 1002016,
    /**
    !%{s of the event triggered, \n
     * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
     * Condition for triggering the event: \n
     * This method is triggered once during list initialization. \n
     * It is trindex value of the first or last subcomponent in the list display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
     * the first child component in the region. \n
     * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
     * the last child component in the region. \n
     * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
     * the subcomponent in the middle of the area. \n
     */
    NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
    /**
    !%{s of the event triggered
     * before the sliding of the ARKUI_NODE_LIST component. \n
     * Condition for triggering the event: \n
     * This event iscrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is _scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * eScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll compone9nt. \n
     */
    NODE_LIST_ON_WILL_SCROLL,
    /**
    henumerated values ofhARKUI_NODE_LIST component is flicked.
     * Condition for triggering the event: \n
     * This event iscrolling component triggers scrolling. \n
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_LIST_ON_DID_SCROLL,

   	 /**
    !%currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the list is initialized and when the index of the first child component or the
     * next child cdomponent in the list display area changes.
     * During index calculation, the list item, header of.fand footer of the list item group each
     * are counted as a child component. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains six parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
     * in the list item group.
     * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
     * The type is {@link ArkUI_ListItemGroupArea}. \n
     * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list itemst display area in the
     * list item group.
     * If the end of the list display area is not on a list item, the value is <b>-1</b>. \nж@R9NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,

    /**
    !%refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
     */
    NODE_REFRESH_STATE_CHANG9E = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
    /**
    !%<b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} does not Hcontain parameters:\n
     */
    NODE_REFRESH_ON_REFRESH,

    /**
    !%that is<b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
     */
    NODE_REFRESH_ON_OFFSET_CHANGE,

    /**
    !%<b>ARKUI_NODE_SCROLL</b> component is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
     * input settings, such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
     * The offset is positive when the list content is scrolled up and \n
     * is negative when the list content is scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     * eScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
     * ScrollSource}. \n
     * @return Does not return or returns a number that sets the actual scroll distance of the scroll componeant. \n
     */
    NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
    /**
    henumerated values ofjARKUI_NODE_WATER_FLOW component slides.
     * Condition for triggering the event: \n
     * This event iscrolling component triggers scrolling.
     * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
     * Called through the scroll controller API. \n
     * Out-of-bounds rebound. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
     * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. "\n
     * The offset is positive w1scrolled up and is negative w1scrolled down. \n
     * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
     */
    NODE_WATER_FLOW_ON_DID_SCROLL,
    /**
    !%{s of the event triggered,
     * when the subcomponent of the start position or end position displayed in the current waterfallL changes.
     * Condition for triggering the event: \n
     * This event isindex value of the \n
     * first or last subcomponent in the waterfall display area changes. \n
     * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
     * {@Link ArkUI_NodeComponentEvent}. \n
     * {@Link ArkUI_NodeComponentEvent} contains two parameters: \n
     * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
     * start position of the currently displayed WaterFlow. \n
     * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
     * the end position of the currently displayed waterfall. \n
     */
    NODE_WATER_FLOW_ON_SCROLL_INDEX,

    /**
     * $%a child component enters or leaves the grid display area.
     *
     * Notes for triggering the event:\n
     * This event is triggered once when the grid is initialized and when the index of the first or \n
     * last child component in the grid display area changes. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the grid display area. \n
     * <b>ArkUI_NodeComponentEvent.dNata[1].i32</b>: index of the last child component in the grid display area. \nжKONODE_GRID_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,

    /**
    !%grid is about to scroll.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling downward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. The parameter type is
     b* {@link ArkUI_ScrollState}. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: scroll source.$ScrollSource}. \n
    1Tone or no number to indicate the actual amount by which the scroll component scrollsqK1NODE_GRID_ON_WILL_SCROLL = 1013001,

    /**
    !%grid scrolls.
     *
     * Notes for triggering the event:\n
     * 1. This event is triggered when scrolling is started by the scrollable component or other input settings,
     * such as keyboard and mouse operations. \n
     * 2. Scrolling can be initiated by calling the controller API. \n
     * 3. The out-of-bounds bounce effect is supported. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>:
     * Scroll offset of each frame. A positive offset indicates content scrolling upward, \n
     * and a negative offset indicates content scrolling Ydownward. \n
     * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \nжK0NODE_GRID_ON_DID_SCROLL = 1013002,

    /**
    !%
at the end of each frame layout of the <b>ARKUI_NODE_GRID</b> component,
     * which is used to set the position and length of the scrollbar.
     *
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.i32 at index 0:offset of the first visible grid item,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: offset of the first visible item relative to the grid's display starting position, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * @return Information about the scrollbar position and length. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.f32 at index 0: total offset of the grid content relative toa&in px. \n
     * value.f32 at index 1:grid content, in px. \nжK7NODE_GRID_ON_SCROLL_BAR_UPDATE = 1013003,

    /**
    !%component's child drag start event.
     *
     * This event is triggered under the following scenarios: \n
     * 1. <b>NODE_GRID_EDIT_MODE</b> is set to <b>1</b>. \n
     * 2. The user long-presses and drags a <b>Grid</b> child component with sufficient displacement. \n
     * The event parameter is {@link ArkUI_NodeEvent}. \n
     * value.f32 at index 0: x-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.f32 at index 1: y-coordinate of the current drag point relative to the <b>Grid</b> component, in vp,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     * value.i32 at index 2: index of the dragged child component in the <b>Grid</b> component,
     * obtained using <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
     *
     * @return Whether the drag operation is allowed. \n
     * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
     * value.i32 at index 0 in the return value indicates whether dragging is allowed.
     * <b>0</b>: not allowed. <b>1</b>: allowed. \nжT5NODE_GRID_ON_ITEM_DRAG_START = 1013004,

    /**
    !%a dragged child component enters this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> enters the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \nжT5NODE_GRID_ON_ITEM_DRAG_ENTER = 1013005,

    /**
    !%a dragged child component moves within this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> moves within the current
     * <b>Grid</b> component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child c8omponent in the current <b>Grid</b>
     * component. \nжT4NODE_GRID_ON_ITEM_DRAG_MOVE = 1013006,

    /**
    !%a dragged child component leaves this <b>Grid</b> component's area.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> leaves the current <b>Grid</b>
     * component's area. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the sourc"e <b>Grid</b>
     * component. \nжT5NODE_GRID_ON_ITEM_DRAG_LEAVE = 1013007,

    /**
    !%	a draggedreleased.
     *
     * This event is triggered under the following scenarios:\n
     * A child component successfully dragged using <b>NODE_GRID_ON_ITEM_DRAG_START</b> is released. \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
     * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: x-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: y-coordinate of the current drag point relative to the <b>Grid</b>
     * component, in vp. \n
     * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the dragged child component in the source <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the dragged child component in the current <b>Grid</b>
     * component. \n
     * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: whether the draggedsuccessfully released. \n
     * <b>1</b>: The component is released within the <b>Grid</b> component's area.
     * <b>0</b>: FThe component is released outside the <b>Grid</b> component's area. \nжT/NODE_GRID_ON_ITEM_DROP = 1013008,

    /**
    !%selected state change event of

     *
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0I].i32</b>: selected state. <b>0</b>: not selected. <b>1</b>: selected. \nжTRNODE_GRID_ITEM_ON_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID_ITEM,
    /**
    !%an item is selected in the <b>ARKUI_NODE_PICKER</b> component.
     *
      \n
     * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
     * {@link ArkUI_NodeComponentEvent}. \n
     * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
     * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
     *
  ڶTTNODE_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PICKER,
     /**
     !%an item is selected and scrolling has stopped in the
      * <b>ARKUI_NODE_PICKER</b> component.
      *
      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
      * {@link ArkUI_NodeComponentEvent}. \n
      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
      *
 TE */
    NODE_PICKER_EVENT_ON_SCROLL_STOP = 1018001,
} ArkUI_NodeEvent:` structure type of a component evo.NodeEvent ArkUI_NodeEve p+type of a component event.
 *
 * @param evea component ev+typeventAUHArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* evecustom ID of a component event.
 *
 * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
 * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
 *
 * @param evea component ev+ custom ID of the component eventAUQ*NodeEvent_GetTargetId(ArkUI_NodeEvent* eveBcomponent object that triggers a component event.
 *
 * @param evea component ev+2component object that triggers the component eventAU,NodeEvent_GetNodeHandle(ArkUI_NodeEvent* eveUs input event (for example, touch event) data for a component event.
 *
 * @param evea component ev+^input event dataAUIArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* eve5numerical data in a component event.
 *
 * @param evea component ev+^numerical dataAUWArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* eve2tring data in a component event.
 * 
 * @param evea component ev+^string dataAUSArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* evejArkUI_TextChangeEvent data from a component event.
 *
 * @param event Pointer to a component event. It canΔ$^<b>ArkUI_TextChangeEvent</b>4]KTextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* evecustom data in a component event.
 *
 * This parameter is passed in {@link registerNodeEvent} and can be applied to the service7 logic when the event
 * is triggered.
 *
 * @param evea component ev+^
ustom dataAU5* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* eve=numeric-type parameter of a component event.
 *
 * @param evea component evKreturn value return valu!auJDQ#length exceeds
 *         the limit1/DCE+BUQLNodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_Number pstring-type parameter of a component event. The string data is valid only during an event
 * callback. To use it outside an eveFnt callback, you are advised to copy the string data.
 *
 * @param evea component evKreturn value.
 * @param stringEstring array.
 * @param stringSize Indicates the length of the string auJDQ#length exceeds
 *         the limit1/DCE+BUQ^NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* string2turn value for a component event.
 *
 * @param evea component evenaIpnumeric-typqsize Indicates the array lengthYauJDNO_RETURN} if ttE22.DC
E+BUQONodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value(Ma <b>ArkUI_TouchTestInfo</b> object from the specified <b>ArkUI_NodeEvent</b>{pointer} nodeEveaan <b>ArkUI_NodeEvent$^$an <b>ArkUI_TouchTestInfo</b> object1M<b>null</b> if the parameter passed in is invalid or is not a touch test infoKTouchTestInfo* OH_ArkUI_NodeEvent_GetTouchTestInfo(ArkUI_NodeEvent* nodeEves a <b>A@ChangeEvent</b> object from the specified <b>ArkUI_NodeEvent</b>eveaan <b>ArkUI_NodeEvent$^an <b>AChangeEvent</b> object1<b>null</b> if the input90 or does not represent a text editor change even<'SChangeEvent* OH_ArkUI_NodeEvent_GetTextEditorOnWillChangeEvent(ArkUI_NodeEvent* eve`4dirty area flag passed in the <b>::markDirty</b> APIa,@brief Remeasure.
     *
     * When this type of flag is specified, re-layout is triggered by default.
     */
    NODE_NEED_MEASURE = 1,

    /** Re-layout. */
    NODE_NEED_LAYOUT,
    /** Re-rendering. */
    NODE_NEED_RENDER,
} ArkUI_NodeDirtyFlag;
\custom component event typ.>Measure type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 <<:NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
    /** Draw type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
    /** Foreground type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
    /** Overlay type. */
    ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY/_DRAW = 1 << 4,
    /**
     * Draw front type.A_$JNODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
    /**
     * Draw behind type.A_$BNODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
} ArkUI_NodeCustomEvent:`*general structure of a custom component evo."NodeCustomEvent ArkUI_NodeCustomEvP <component adapter, which is used for lazy loading of elementh*`NodeAdapter* ArkUI_NodeAdapter$omponent adapter evo.$NodeAdapterEvent ArkUI_NodeAdapterEv Rcomponent adapter even-/This event occurs when the component is attached to the adapter. */
    NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
    /** This event occurs when the component is detached from the adapter. */
    NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
    /** This event occurs when the adapter obtains the unique ID of the new element to add. */
    NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
    /** This event occurs when the adapter obtains the content of the new element to add. */
    NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
    /** This event occurs when the adapter removes an element. */
    NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_)ADAPTER = 5,
} ArkUI_NodeAdapterEventTypecomponent adapter.
*
&NodeAdapterHandle OH_ArkUI_NodeAdapter 2s a component adapter.
*
* @param handle Indicates adapkw1NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handltotal number of element$adapter.
*
* @param handle Indicates# adapter.
* @param size Indicates terror?NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, u\total number of element$adapter.
*
* @param handle Indicates adapter$total number of elements in the adapk^NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);

/**
* @brief Registers an event callback for the adapter.
*
* @param handle Indicates
 adapter.
Dcustom data.
* @param receiver Indicates the event receiver callbackerrorBNodeAdapter_RegisterEventReceiver(
ArkUI_NodeAdapterHandle handle,receiver)(ArkUI_NodeAdapterEvent* event));

/**
* @brief Deregisters an event callback for the adapter.
*
* @param handle Indicates adapkwNodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload al'l elements.
*
* @param handle Indicates adaptererrorNodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);

/**
* @brief Instructs the specified adapter to reload certain ele"ments.
*
* @param handle Indicates adapter.
* @param startPosiQ(start position of the elements to reload-the elements to reload.
* errorQNodeAdapter_ReloadItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, u"WInstructs the specified adapter to remove certain elements.
*
* @param handle Indicates adapter.
* @param startPosiQ(start position of the elements to remove-the elements to removeerrorQNodeAdapter_RemoveItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, u"WInstructs the specified adapter to insert certain elements.
*
* @param handle Indicates adapter.
* @param startPosiQ(start position of the elements to insert-the elements to insererrorQNodeAdapter_InsertItem(
ArkUI_NodeAdapterHandle handle, uint32_t startPosition, u"UInstructs the specified adapter to move certain elements.
*
* @param handle Indicates adapter.
* @param from Indicates the start position of the elements to move.
* @param to  Indicates the end position of the elements to moveerrorONodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to<all elements stored in the specified adapter.
*
* This API r!array of the elements. You need to manually release the memory data
* to which the pointer points.
*
* @param handle Indicates  adapter.
* @param item1?array of the elements in the adapter.
* @param size Indicates terrorSNodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, u/u%custom data passed in during registrap8event.
*
* @param event Indicates the target adapter eve"8NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* eve=event type.
*
* @param event Indicates the target adapter eveevent type.
RNodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* evefelement to be removed for the event to be destroyed.
*
* @param event Indicates the target adapter eveelement to be removed.
ONodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* eveielement to be operated for the specified adapter event.
*
* @param event Indicates the target adapter eveeleme^9NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* evelscrollable container node that uses the specified adapter.
*
* @param event Indicates the target adapter eve6scrollable container node that uses the specified adapkLNodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* eve	component to be added to the specified adapter.
*
* @param event Indicates the target adapter event.
* @param node Indicates the component to be addederror7NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event,1component ID to be generated.
*
* @param event Indicates the target adapter event.
* @param id Indicates the component ID to seerror8NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event0qo 	a collection of native node APIs provided by ArkUI.
 *
 * The APIs related to the native node must be called in the main thread.
 *
 * @version 1!*m@brief Struct versionq-12
     */
    int32_t version;

    /**
    /component based on {@link ArkUI_NodeType} and r!created component.
     *
    %component to create.
    !_!reated component. If the componen, NULL is returned.
     * @since 12
     */
    ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);

    /**
     * @brief De<Jcomponent to which the specified pointer points.
     *
     * @param node3.
     * @since 12
     */
    void (*disposeNode)(+    /**
     * @brief Adds a component to aqK
     * @param parea rKparam childchild node.
    rror code.
    QV   X   +B} if the following operations are not allowed on
     *             BuilderNode generated nodes: setting or resetting attribute6s, setting events, or adding or editing subnodes.
    Q-KADOPTED} if the childEI Add since api 22.
     * @since 12
     */
    int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
*     * @brief Removes a component from itsqK
     * @param parea rKparam childchild node.
    rror code.
    QV   X   +B} if the following operations are not allowed
     * on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);

    /**
     * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
     *
     * @param parea rKparam child!child node.
     * @param siblingsibling node after which the target node is to be inserted.
     * If the value is null, the node is inserted at the start of toKrror code.
    QV   X   +B} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attribute6s, setting events, or adding or editing subnodes.
    Q-KADOPTED} if the childEI Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
     *
     * @param parea rKparam child!child node.
     * @param siblingsibling node before which the target node is to be inserted.
     * If the value is null, the node is inserted at the end of thpKrror code.
    QV   X   +B} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attribute6s, setting events, or adding or editing subnodes.
    Q-KADOPTED} if the childEI Add since api 22.
     * @since 12
     */
    int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, AcrkUI_NodeHandle sibling);

    /**
     * @brief Inserts a component to the specified position in aqK
     * @param parea rKparam childchild node.
     * @param posiQsition to which the target child node is to be inserted. If the value is a
     * negative number or invalid, the node is inserted at the end ofmKrror code.
    QV   X   +B} if the following operations are not allowed on BuilderNode generated
     *             nodes: setting or resetting attribute6s, setting events, or adding or editing subnodes.
    Q-KADOPTED} if the childEI Add since api 22.
     * @since 12
     */
    int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);

    /**
    attribute of a node.
     *
     * @param node Indicates the node whose attribute needs to be set.
     * @param attribute Indi)cates the type of attribute to set.
     aattribute value.
    rror code.
    QV   X   +NB \} if the dynamic implementation library
     *         of the native API was not found.
    +B} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*setAttribute)(ArkUI_NodeHan2NodeAttributeType attribute, const ArkUI_AttributeItem* item);

    /**
     * @brief Obtains an attribute.
     *
     * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
     * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
     * time. Otherwise, the pointer may be overwritten by other values.
     * @param node Indicates the node whose attribute needs to be obtained.
     * @p>aram attribute Indicates the type of attribute to obtain.
    1(attribute value. If the operation fails,I.
     * @since 12
     */
    const ArkUI_AttributeItem* (*getAttribute)2NodeAttributeType attribute);

    /**
     * @brief Resets an attribute.
     *
     * @param node Indicates the node whose atatribute needs to be reset.
     * @param attribute Indicates the type of attribute to reset.
    rror code.
    QV   X   +NB \} if the dynamic implementation library
     *         of the native API was not found.
    +B} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*resetAttribute)(ArkUI_NodeH2+NodeAttributeType attribute);

    /**
    qn event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to register.
     * @param targetIdmevent ID, which is passed in the callback of {@link ArkUI_NodeEvent}
     * when the event is triggered.
    Pevent parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
    rror code.
    QV   X   +NB \} if the dynamic implementation library
     *         of the native API was not found.
    +B} if the following operations are not allowed
     *         on BuilderNode generated nodes:
     *         setting or resetting attributes, setting events, or adding or editing subnodes.
     * @since 12
     */
    int32_t (*registerNodeEvent)(ArkUI_No2NodeEventType eventType,
        int32_t targetId, void* userData);

    /**
     * @brief Unregisters an event for the specified node.
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister.
     * @since 12
     */
    void (*unregisterNodeEvent)2'NodeEventType eventType);

    /**
    qn event receiver.
     *
     * The ArkUI framework collects component events generated during the process and calls back the events through
     * the registered event receiver. \n
     * A new call to this API will overwrite the previously registered event receiver. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
     * callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));

    /**
     * @brief Unregisters the event receiver.
     *
 {12
     */
    void (*unregisterNodeEventReceiver)();

    /**
     * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
     *
     * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
     * measuring, layout, or rendering again. In this case, you do not need to call this API.
     * @param node Indicates the node for which you want to mark as dirty area.
     * @param dirtyFlag Indicates type of dirty5 area.
     * @since 12
     */
    void (*markDirty)2'NodeDirtyFlag dirtyFlag);

    /**
     subnodes.
     *
     * @param node Indicates the target node.
     * @return the number of subnodes. If not, returns 0.
     *6 @since 12
     */
    uint32_t (*getTotalChildCount)(    /**
     * @brief Obtains a subnode.
     *
     * @param node Indicates the target node.
     * @param position Indicates `sition of the subnode.
    !_subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getChildAt)(ArkUI2_NodeHandle node, int32_t position);

    /**
    Hfirst subnode.
     *
     * @param node Indicates the target node.
    !_subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getFirstChild)(Ar    /**
    Glast subnode.
     *
     * @param node Indicates the target node.
    !_subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getLastChild)(Ark    /**
    Pprevious sibling node.
     *
     * @param node Indicates the target node.
    !_subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getPreviousSibling)(    /**
    Kext sibling node.
     *
     * @param node Indicates the target node.
    !_subnode if the subnode exists; returns <b>NULL</b> otherwise.
     * @since 12
     */
    ArkUI_NodeHandle (*getNextSibling)(A    /**
    qustom event for a node. When the event is triggered, the value is returned through the entry
     * point function registered by <b>registerNodeCustomEventReceiver</b>.
     *
     * @param node Indicates the target node.
     * @param eventType Indicate7s the type of event to register.
     * @param targetIdevent ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
     * when the event is triggered.
     * @param usevent parameter, which is passed in the callback of
     * {@link ArkUI_NodeCustomEvent} when the event is triggered.
     * @rrror code.
    QV   X   +NB } if the dynamic implementation library
     *         of the native API was not found.
     * @since 12
     */
    int32_t (*registerNodeCustomEvent)(
    ., ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);

    /**
     * @brief Unregisters a custom event for a node.
     *
     * @param node Indicates the target node.
     * @param eventType Indicates the type of event to unregister@.
     * @since 12
     */
    void (*unregisterNodeCustomEvent)2-NodeCustomEventType eventType);

    /**
    qunified entry point function for custom node event callbacks.
     *
     * The ArkUI framework collects custom component events generated during the process and calls back the events
     * through the registered <b>registerNodeCustomEventReceiver</b>. \n
     * A new call to this API will overwrite the previously registered event receiver.
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
     *
     * @param eventReceiver Indicates the event receiver to register.
     * @since 12
     */
    void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Unregisters the unified entry point function for custom node event callbacksqI12
     */
    void (*unregisterNodeCustomEventReceiver)();

    /**
    >kand height for a component after the measurement.
     *
     * @param node Indicates the target node.
    q#.
    r%.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);

    /**
     * @position for a component.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordina<te.
     * @param positionY Indicates the Y coordinate.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
    M after measurement.
     *
     * @param node Indicates the target node.
    19* @since 12
     */
    ArkUI_IntSize (*getMeasuredSize)(    /**
    !Wafter the layout is complete.
     *
     * @param node Indicates the target node.
    !osi=* @since 12
     */
    ArkUI_IntOffset (*getLayoutPosition)(    /**
     * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
   7  *
     * @param node Indicates the target node.
     "6    rror code.
    QV   X2    * @since 12
     */
    int32_t (*measureNode)2ئH    /**
     * @brief Lays outs a component and passes the expected posi	 relativeOz
     *
     * When the component is being displayed, this API must be called in the main thread.
     *
     * @param node Indicates the target node.
     * @param positionX Indicates the X coordinate.
     * @param positionY Indicates the Y coordinate.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);

    /**
     * @brief Adds a component event!to a component to receive component events generated
     * by the component.
     *
     * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
     * receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for which you want to add the event callback function.
  7   * @param eventReceiver Indicates the component event!to add.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* eventA));

    /**
     * @brief Removes the registered component event!from a component.
     *
     * @param node Indicates the component from which you want to remove the event callback function.
9     * @param eventReceiver Indicates the component event!to remove.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* ev1ent));

    /**
     * @brief Adds a custom event!to a component to receive custom events
     * (such as layout and drawing events) generated by the component.
     *
     * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
     * multiple event receivers to be added to the same component. \n
     * The callback added by this API is triggered before the global callback registered by
     * <b>registerNodeCustomEventReceiver</b>. \n
     * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
     * The data will be destroyed after the callback is complete. \n
     *
     * @param node Indicates the component for whSich you want to add the custom event callback function.
     * @param eventReceiverevent!to add.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomHEvent* event));

    /**
     * @brief Removes a registered custom event!from a component.
     *
     * @param node Indicates the component from which you want to remove the custom event callback fun"ction.
     * @param eventReceiverevent!to remove.
    rror code.
    QV   X    * @since 12
     */
    int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
        void (*eventReceiver)(ArkUI_NodeCustomEvent* event));

    /**
     * @brief Saves custom data on the specified component.
     *
     * @param node Indic?ates the component on which the custom data will be saved.
     to be saved.
    rror code.
    QV   Xh    * @since 12
     */
    int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);

    /**
    Qcustom data saved on the specified component.
     *
     * @param node Indicates]	4?custom data.
     * @since 12
     */
    void* (*getUserData)(    /**
    unit for a component.
     *
     * @param node Indicates the component for which you want to set the unit.
     * @param unit Indicates the unit, which is an${@link ArkUI_LengthMetricUnit}.
    $<b> 
</b>.
    rror code.
    QV   X:    * @since 12
     */
    int32_t (*setLengthMetricUnit)22engthMetricUnit unit);

    /**
      * @brief GetmK0 *
      * @param node target node object.
     !_$R, if not return NULL
      * @since 12
      */
    ArkUI_NodeHandle (*getParent)(3    /**
    * @brief Uninstall all child nodes froma{3.
    *
    * @param parent target node object.
   rror code.
   QV  Xh   * @since 12
    */
    int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
} ArkUI_NativeNodeAPI_1Q6A for measurement through a custom component event.
*
* @param evea custom component eve^P-GNodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* eveexpected!relativeOzG in the layout phase through a
* custom component event.
*
* @param evea custom component eveexpected position relative toa{ PntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* eve@drawing context through a custom component event.
*
* @param evea custom component eve4UDrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* eve.ID of a custom component event.
*
* @param evea custom component eveID of the custom component eve;NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* eveHcustom event parameters through a custom component event.
*
* @param evea custom component evecustom event d6NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* eveCa component object through a custom component event.
*
* @param evea custom component eve	componentp LNodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* eve;event type through a custom component event.
*
* @param evea custom component eve type of the custom component eve TNodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* eves(1 through a custom component event.
*
* @param evea custom component event.
sto be obtainedNiZ NodeCustomEvent_Get0#(
    ArkUI_NodeCustomEvent* event,.t	tt$1 through a custom component event.
*
* @param evea custom component event.
ttto seNiZ HNodeCustomEvent_SetCustomSpanMetrics(
    ArkUI_NodeCustomEvent* event, 	* metricsu$1 through a custom component event.
*
* @param evea custom component event.
uto obtaiNiZ INodeCustomEvent_GetCustomSpanDrawInfo(
    ArkUI_NodeCustomEvent* event, 0`ode content event type.
 * ')Defines the attach event. */
    NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
    /** Defines the detach event. */
    NODE_CONT=ENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
} ArkUI_NodeContentEvent:$inspector error codesQ}NSucces""INSPECTOR_NATIVE_RESULT_SUCCESSFUL/NInvalid parameter"CINSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
} ArkUI_InspectorErrorC )general structure of a node content eventAU$NodeContentEvent ArkUI_NodeContentEvP 
a node content eventAU0NodeContentCallback)(ArkUI_NodeContentEvent* eve
register a!	to a nodeN+tea node contentl	Indicates t
`a_
MUQNodeContent_RegisterCallback(, content, ArkUI_NodeContentCallback callbackq.type of a node content event.
 *
 * @param evea node content ev+type of the node content eventAU]ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* eveHnode content object that triggers a node content event.
 *
 * @param evea node content ev+8node content object that triggers the node content eventAUK OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* eve'Saves custom data on the specified nodeN+Ftent Indicates the node content on which the custom data will be saved
 to be savPa_
MUQNodeContent_SetUserData( content, void* userDataq&ustom data saved on the specified nodeN+tent Indicates the target node-!custom dataAU#* OH_ArkUI_NodeContent_GetUserData( conteAdd a node to a nodeN+tea node contentnodenodeaP% JIS_ADOPTED} if tCI! add since api 22AUQNodeContent_AddNode(	 content,1remove a node from a nodeN+tea node contentnodenodea_
MUQNodeContent_RemoveNode(	 content,1Iinsert a node into a node content at a given position.
 *
 * @param contea node contentnodenode
 * @param posiQsition for inserting the nodeaP% JIS_ADOPTED} if tCI! add since api 22AUQNodeContent_InsertNode(	 content,1, int32_t posips|s	 layout area.
 * The layout area size does not include graphic variation attributes such as scaling.
 *
 * @param node ArkUI_No5deHandle pointer.
 * @param size The drawing area sizhandle, in pxYa_
MUQNodeUtils_GetLayoutSize2IntSize*	 the posi layout area relative toa{k.
 * The relative position of the layout area does not include graphic variation attributes, such as translDnode ArkUI_NodeHandle pointer.
 * @param localOffset The offset valuhandle relative toa{, in pxYa_
MUQNodeUtils_GetLayoutPosition2IntOffset* localMap	 the posi layout area relative to the window.
 * The relative position of the layout area does not include graphic variation attributes, such as translEnode ArkUI_NodeHandle pointer.
 * @param globalOffset The offset valu$handle relative to the window, in pxYa_
MUQ#NodeUtils_GetLayoutPositionInWindow2IntOffset* globalMap	 the posi layout area relative to the screen.
 * The relative position of the layout area does not include graphic variation attributes, such as translEnode ArkUI_NodeHandle pointer.
 * @param screenOffset The offset valu$handle relative to the screen, in pxYa_
MUQ#NodeUtils_GetLayoutPositionInScreen2IntOffset* screenMapoffset of a component relative to the global display.
 * The relative position does not count in transformation attributes, suc!h as translate.
 *
 * @param nodea%ArkUI_NodeHandle</b> representing theWRoffset Offset of the component relative to the global display, in px.
 * @return RP3"+g*_
0*NodeUtils_GetLayoutPositionInGlobalDisplay2IntOffset* oNap	 the posi? in the window, including the properties of graphic translationSnode ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset valu>handle itself,
 * parent components, and ancestor nodes, in pxYa_
MUQ*NodeUtils_GetPositionWithTranslateInWindow2IntOffset* translateMap	 the posiL7screen, including the attributes of graphic translationSnode ArkUI_NodeHandle pointer.
 * @param translateOffset The cumulative offset valu>handle itself,
 * parent components, and ancestor nodes, in pxYa_
MUQ*NodeUtils_GetPositionWithTranslateInScreen2IntOffset* translateMaAdd the custom property	This interface only works on the main thread.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param name The name of the custom/ property. Passing null pointers is not allowedBPvalue of the custom property. Passing null pointers is not allowed.
 * @since 13=.NodeUtils_AddCustomProperty(ArkUI_NodeHandle n.#J!Remove the custom property of the:p[node ArkUI_NodeHandle pointer.
 * @param name The name of the custom property.
 * @since 13=ENodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* namethe custom property of the:pnode ArkUI-NodeHandle pointer.
 * @param name The name of the custom attribute.
 * @param handle The structure of the custom at8tribute corresponding to the key parameter name obtainedQ1xv	Functionr.NodeUtils_GetCustomProperty(ArkUI_NodeHandle n.q*0Yparent node to obtain the component nodes created by ArkTs.
 *
 * @param node Target node the poi9X NodeUtils_GetParentInPageTree('Retrieve all active child nodes of a node. Span will not be counted in the children.
 *
 * @param head Pass in the node that nemeds to be obtained.
 * @param handle The structure corresponding to the sub node information of the head nodeQ1xv	Functionr7NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, IRetrieve the root node of the current page.
 *
 * @param node Target node the poi9X !NodeUtils_GetCurrentPageRootNode('QRetrieve whether the component is labeled by C-API.
 *
 * @param node Target node whether the node is a Tag created by C-API,
 *         true represents created by C-API, false represents not created by C-API.
 * @since 14NodeUtils_IsCreatedByNDK(*w*ype of node.
 *
 * @param node Target noden the type of the node.
 *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes!NodeUtils_GetNodeType(*K info of the window to which the node belongs.
 *
 * @param node Target nodnfo Window info. Use {@link: } to release memoryQ1xv	Functionm'3is not mount!NodeUtils_GetWindowInfo2HostWindowInfo** info);
 afcurrent FrameNode's first child node which is on the tree.
 *
 * @param node Indicates the target nodeu 
he subnodeQ1xv	FunctionJNodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_tWV*@pcurrent FrameNode's last child node which is on the tree.
 *
 * @param node Indicates the target node.
 * @param index the index of the subnodeQ1xv	FunctionINodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t*@pga subnode by position with the expand mode.
 *
 * @param node Indicates the target node.
 * @param posiQ(sition of the subnode.
 * @param subnode	Qsubnode.
 * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}Q1xv	FunctionHNodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t positionsubnode, uint32_t expandMCollapse the ListItem in its expanded state.
 *
 * @param node Node objects that need to be registered for events.
 * @param usCustom event parameters are carried back in the callback parameter when the event is triggered.
 * @param onFinish The callback4 triggered after the completion of the folding animaM1J;Functiong%NB }A 
this eventAUQ0List_CloseAllSwipeActions(ArkUI_NodeHandle node,onFinish"pxUIContext pointer to the page where the node is located.
*
* @param node The node.
* @return The UIContext pointer.
*         I;
because the node is empty.
(ContextHandle OH_ArkUI_GetContextByNode(1$֝ changes.
*        Only one system color change callback can be registered for the same component.
*
* @param node Indicates the target node.
+( to be saved.
* @param onColorModeChange231"
	Success.
1(v	Functionv8RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node2onColorModeChange)(ArkUI_SystemColorMode colorMode"Unregister the event callback whenН3 changes.
*
* @param node Indicates the target node%UnregisterSystemColorModeChangeEvent(1$ystem font style changes.
*        Only one system font change callback can be registered for the same component.
*
* @param node Indicates the target node.
+( to be saved.
* @param onFontStyleChange231"
	Success.
1(v	Functionv8RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle nodeonFontStyleChange)(* eventkUnregister the event callback when the system font style changes.
*
* @param node Indicates the target node%UnregisterSystemFontStyleChangeEvent(',Retrieve the font size value for system font-param event Indicates a pointer to the current system font change event.
 * @return Updated system font size scaling factor. Default value: 1.0AUF_GetFontSizeScale(cons* eve2Retrieve the font thickness values for system font-param event Indicates a pointer to the current system font change event.
 * @return The updated system font thickness scaling factor. Default value: 1.0AUF_GetFontWeightScale(cons* evenCnode handle by id.
 *
 * @param id The id of the target node handleѸhandle of target node handleQ1xv	Function$NodeUtils_GetAttachedNodeHandleById(q]^"Move the node handle to target parent node as child.
 *
 * @param node The node handle of the node to move.
 * @param target_pa"rent The node handle of target parKwhich the node is moved to. If the value is a nagative number of invalid, the
 *              node is moved to the end of the target parent nodeQ1xv	Functiong%L@} if the CAPI init errorm'KADOPTED} if tCI! add since api 22.
 * @since 18NodeUtils_MoveTo2NodeHandle target_parentN!Triggers node updates in the current frame.
 * When node attributes are modified after the current frame's build phase,
 * the node updates will be deferred to the next
 * frame. This function forces immediate node updates within the current frame to
 * Vensure rendering effects are applied synchronously.
 *
 * @param node ArkUI_NodeHandle^19;FunctionN$"NativeModule_InvalidateAttributes('<TE of the target node handle.
 *
 * @param node The target node handle.1,{@link }Q1xv	FunctionNodeUtils_Set1 2|TE of the target node handle.
 *
 * @param node The target node handle.1,{@link }Q1xv	FunctionNodeUtils_Get1 2{Nfor node when layout is completed.
 *
 * @param node Indicates the target node used in onLayoutCompletedNGparam onLayoutCompleted Indicates the function when layout completed isN'
error codemis incorrectQ8RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle nodeonLayoutCompletedl$Lfor node when draw is completed.
 *
 * @param node Indicates the target node used in onDrawCompletedNCparam onDrawCompleted Indicates the function when draw completed isN'
error codemis incorrectQ6RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle nodeonDrawCompleted    
/**
 * @brief Unregisters the layout completed callback for node.
 *
 * @param node Indicates the target node.
 * @return 
error codemis incorrectQ%UnregisterLayoutCallbackOnNodeHandle('Unregisters the draw completed callback for node.
 *
 * @param node Indicates the target node.
 * @return error code
 *        mxis incorrectQ#UnregisterDrawCallbackOnNodeHandle(*2napshot pixelmap for the given node synchronously, will get error if the node is not on the
 * tree or is not rendered yet.
 * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
 *
 * @param node Indicates the target node._the given configuramican be null for using default.
 * @param pixelmap Pixelmap pointer created by system, it's the out result{ŗ-IINTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned1-`R#} if the snapshot taking is timeoutQb6a snapshot of a given component. If the node is not invg or has not been rendered,
 * the snapshot operation will fail. When the <b>Pixelmap</b> object createdt should be released
 *7PixelmapNative_Release}.
 *
 * @param node Target node._Snapshot settings. If the value is null, the default settings are used.
 *         Snapshot settings include scaling, color spaLce, and dynamic range configuration.
 *         Scaling: floating-point valu        Color space3=        Dynamic range:1+pixelmapa7Pixelmap</b> object created by the system.
 * @return RP3"+g*-?INTERNAL_ERROR} if the snapshot fails, returning a null pointer1-`R%} if the snapshot operation times out1-`RS} if tR
 *        !R2,`RAUTO_NOT_SUPPORTED} if tS 
 *        R S*EGetNodeSnapshot2e!
   z/Query the size limita snapshot.
 *
 * @param maxWidth Maximum width limit of the component snapshot, in px.
 * @param maxHeight Maximum height limit! of the component snapshot, in pxQ1F;Invalid7>GetNodeSnapshotSizeLimitation(int32_t* maxWidth, int32_t* maxH1poffset of a specific node relative to its parent node.
 *
 * @param node Target node.
 * @param globalOffset Offset of the targ*et node relative to its parent node, in px{ŗ_
]NodeUtils_GetPositionToParent2IntOffset* globalMaAdds the UI state style supported by the component. To handle states change efficiently, need to specify the
 * states of interest and;handler. When a state of interest occurs, the handler will be executed.
 *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
 * times on the same node, the last set of states and handler will take precedence.
 *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
 * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
 * components, the default style effect will be applied first, followed by the custom style changes, resulting in
 * a combined effect. To disable/ the default style effects, set <b>excludeInner, if this is allowed
 * by the system implementation.
 *  - And when this API is called, the provided handler function will be executed immediately.
 *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
 * the system will automatically notify your application when the state changes back to NORMAL.
 *
 * @param node Target node.
 * @param uiStates Target UI states to be handled on the node.
 *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
 *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
 * @param statesChangeHandler Handler for UI state changes.
 *        It rturns the current UI status. The value is the result of combining all current state enum values using the
 *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
 *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
 *        However, for checking the normal state, use the equality operator directly.
 *        Example: <b>if (currentStates == A]rkUI_UIState::NORMAL)</b>.
 * @param excludeInner Whether to disable the default state styles2Custom data used in the <b>statesChangeHandler</b>N'Η_
AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
    void (statesChangeHandler)(int32_t currentStates, void* userD'ata), bool excludeInner, void* userData1moves registered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
 * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
 * 
 * @param node Target node.
 * @param uiStates Target UI states to be removP_
 =emoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStatea=BRun a custom function inside the UIContext scope.
 *
 * @param uiC a UI	 
ustomϕL@} if the CAPI init error1-Y} if the uiContext is invalid1-CALLBACK_INVALID} if t
YC
0-RunTaskInScope(ArkUI_ContextHandle uiContext,|#
|Unode handle by uniqueId.
 *
 * @param uniqueId The uniqueId of the target node handleѸhandle of target node handleQ1xv	Functiong%L@&} if the CAPI init error.
 * @since 20:NodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId,W)|uniqueId of the target node handle.
 *
 * @param node The ArkUI-NodeHandle pointer.
 * @param uniqueId The uniqueId of the target node handle, W1@+g'Functiong%L@&} if the CAPI init error.
 * @since 20BNodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId1turns true if the node is in the render state. A node is considered to be in the render state if its
 * corresponding RenderNode is on the render tree.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isInRenderState If the node is in the render stateQ1F+g'Functiong%L@} if the CAPI init error!HNativeModule_IsInRenderState(ArkUI_NodeHandle node, bool* isInRenderStatThe current node adopts the target child node. The node being adopted must not have an existing parent node.
 * This operation does not actually append it as a child, but only allows it to receive life-cycle
 * callbacks as if it were a child.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node that will adopt the child node.
 * @param child ArkUI_NodeHandle pointer, the target node being adoptedQ1F+gL@} if the CAPI init errorm'J} The childIF3$J} The child can not be adoptedm'K!} The node can not adopt children1NativeModule_AdoptChil2NodeHandle child1move the target adopted child node.
 *
 * @param node ArkUI_NodeHandle pointer, the parent node.
 * @param child ArkUI_NodeHand"le pointer, the node being removedQ1F+gL@} if the CAPI init errorm'K}KK54NativeModule_RemoveAdoptedChil2NodeHandle childFinverse color algorithm for components and instances.
 *
 * @param uiCcontext in which the inverse color feature should take effect.
 *     If the value is null, the feature applies to the entire application process.
 * @param forceDark Indicates whether the inverse color feature is enabled.
 * @param nodeType Indicates the component type for which to enable the inverse color feature.
 *     If the value is ARKUI_NODE_UNDEFINED, enabling the featucre for all components.
 * @param colorInvertFunc Indicates the user-defined inverse color algorithmYauL@} if CAPI init error1-I} if fHC
0SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
    uint32_t (*colorInvertFunc)(uint
32_t color!Register common event callback of^param node The ArkUI-NodeHandle pointer.
 * @param eventType Indicates the type of event to se Indicat0%XFunction params is invalid1/QF!} Function parameter eventType is`&oH NativeModule_RegisterCommonEvent2NodeEventType eventType'ArkUI_NodeEvent* event#Unregister common event callback of_param node The ArkUI-NodeHandle pointer.
 * @param eventType Indicates the type of event to set{Function params is invalid1/QF!} Function parameter eventType is`&oH"NativeModule_UnregisterCommonEvent2NodeEventType event`ARegister common visible area approximate change event callback ofparam node The ArkUI-NodeHandle pointer.
 * @param ratios Threshold array representing the visible area of the component.
 * @pWs\he ratios.
 * @param expectedUpdateInterval The expected calculation interval for developers Indicat0%XFunction paramsC/NativeModule_RegisterCommonVisibleAreaApproximateChangeEvent(ArkUI_NodeHandle node, float* ratios,
    int32_t size, float expectedUpdateInterval,"ArkUI_NodeEvent* eventCUnregister common visible area approximate change event callback ofparam node The ArkUI-NodeHandleoFunction paramsC/?NativeModule_UnregisterCommonVisibleAreaApproximateChangeEvent('Converts a point's coordinates from the target node's coordinate system 
 * to the current window's coordinate system, with con#sideration of the node’s transforNodeHandle} currentNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} localPosition The point's coordinates in the target node's local coordinate system, in px.
 * @param {ArkUI_IntOffset*} windowPosition The converted coordinates in the )current window's coordinate system, in pxQ1F;Functionm'3targetG!NativeModule_ConvertPositionToWindow(ArkUI_NodeHandle currentNode, ArkUI_IntOffset localPosition, ArkUI_IntOffset* windowPositirsonverts a point's coordinates from the current window's coordinate system 
 * to the target node's coordinate system, with cons"ideration of the node’s transforNodeHandle } targetNode ArkUI_NodeHandle The target node.
 * @param {ArkUI_IntOffset} windowPosition The point's coordinates in the current window's coordinate system, in px.
 * @param {ArkUI_IntOffset*} localPosition The converted coordinates in the tar)get node's local coordinate system, in pxQ1F;Functionm'3targetG!NativeModule_ConvertPositionFromWindow(ArkUI_NodeHandle targetNode, ArkUI_IntOffset windowPosition, ArkUI_IntOffset* localPosition);

/** 
 * @brief Stop the animation being executed by the Swiper node.
 * 
 * @param node ArkUI_NodeHandle pointer.
 * @re^19;Function1p_FinishAnimation('Post UI task to background threads.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param asyncUITaskData Parameter of asyncUITask and onFinish.
 * @param asyncUITask Function executed by a background thread.
 * @param oCnFinish Function executed by UI thread after async UI task is execuQ,!context or asyncUITask is nullptr1@tAsyncUITask(ArkUI_ContextHandle context, void* asyncUITaskData,
    void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskPost UI task to UI thread.
 *
 * @param context UIContext pointer of the page where the UI task located.
 * @param taskData Par<ameter of task.
 * @param task Function executed by UI threaQcontext or task is nullptr1@LtUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskset the visiblity of the menubar.
 *
 * @param uiContext ArkUI_ContextHandle. - The designated ArkUI container context.
 * @parlam visible visibility. true indicate the menubar is visible,
          false indicate the menubar is invisib1Y} if t9Y      for example, 1.uiContext is nullptr 2.can not get container by uiContext.
           3. the uiContext is not belong to atomic service!TNativeModule_AtomicServiceMenuBarSetVisible(ArkUI_ContextHandle uiContext, bool visiQ{for listening for component dimension and area changes.
 *
 * This function can be called for a valid {@link ArkUI_NodeHandle} node at any time. \n
 * The newly registered callback will replace the previously registered callback for this event and will take effect from the next frame. \n
 * 
 * When the callback is no longer needed, call {@link OH_ArkUI_NativeModule_UnregisterCoOmmonAreaApproximateChangeEvent} to unregister it. \n
 * Otherwise, the callback/nregistered when the node is released.
 *
 * @param node Pointer to {@link ArkUI_NodeHandle}.
 * @param expectedUpdateInterval .Expected calculation interval, in milliseconds
Pointer to!EventN'sult code. \nHU \nK. \nnNativeModule_RegisterCommonAreaApproximateChangeEvent(ArkUI_NodeHandle node,
    float expectedUpdateInterval,"ArkUI_NodeEvent* event@Unregisters the callback bound to the dimensions and area change@pDnode Pointer to {@link ArkUI_NodeHandle}.
 * @return Result code. \nHU \nK. \n8NativeModule_UnregisterCommonAreaApproximateChangeEvent('Post UI task to UI thread and wait until UI task finished.
 *
 * @param context UIContext pointer of the page where the UI task\ located.
 * @param taskData Parameter of task.
 * @param task Function executed by UI threaQcontext or task is nullptr1@StUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* tasktart a fake drag of the Swiper node.
 * Call OH_ArkUI_Swiper_FakeDragBy to simulate the drag motion. Call OH_ArkUI_Swiper_StopFakeDrag to complete the
 * fake drag. A fake drag can be interrupted by a real drag. If you need to ignore touch events and other user input
 * during a fake drag, use NODE_SWIPER_DISABLE_SWIPE.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag started successfully, return true.
 *     If the Swiper is not ready to start the fake drag, or a real2 or fake drag is already in progress, return falseQ1F;Function!p_StartFakeDrag(ArkUI_NodeHandle node, bool* isSuccessful);

/**
 * @brief Fake drag by an offset of the Swiper node.
 * The OH_ArkUI_Swiper_StartFakeDrag must be called first.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param offset The offset that needs to be scrolledparam isConsumedOffset If not in a fake drag progress, or no offset is consumed, return false.
 *     If any offset is consumed, return trueQ1F;Function!pA_FakeDragBy(ArkUI_NodeHandle node, float offset, bool* isConsumedMatop a fake drag of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isSuccessful If the fake drag stopped successfully, return true.
 *     If the Swiper is not ready to stop the fake drag, or no fake drag is in progress, return falseQ1F;Function!p7_StopFakeDrag(ArkUI_NodeHandle node, bool* isSuccessfulMake drag state of the Swiper node.
 *
 * @param node ArkUI_NodeHandle pointer.
 * @param isFakeDragging If a fake drag is in pr*ogress return true, otherwise return false-3E;Function!p8_IsFakeDragging(ArkUI_NodeHandle node, bool* isFakeDraggLhow the previous page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle^19;Function!p_ShowPrevious('IShow the next page of the Swiper node.
 *
 * @param node ArkUI_NodeHandle^19;Function!p
_ShowNext(*PBroot node handle of;page of the Concontext A UIContext pointer.
 * @param rootNode The handle of target root node handle. If the context's corresponding
 *     pa=ge has no root node, the pointed-to value will be set to nullQ1$uL@} if the CAPI init errorQL-Y} if the uiContextC\eNativeModule_GetPageRootNodeHandleByContext(
    ArkUI_ContextHandle context, ArkUI_NodeHandle* rootNp<b>/	!3</b> object from a specified <b>ArkUI_NodeEvent</b>	nodeEventaArkUI_NodeEvent$^<b>/	!Y</b> object.
 *         It is valid only during callback and does not need to be released1<b>null</b> if the input9$ or the
 *         information is no!5	L* OH_ArkUI_NodeEvent_GetGestureCollectInterceptInfo(ArkUI_NodeEvent* nodeEve<subnode mounting policy of}param node the target node handle.
 * @param policy the policy to set. Valid values correspond to {@link OH_ArkUI_NodeMountPolicy}Q1 <ul><li>"	</li><li>A@'Function.
 *     </li><li>A@L@} if CAPI init error.</li></ul>/RNativeModule_SetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy pc0current child mount policy of the specified node.
 *
 * @param node the target node handle.
 * @param policy the pointer to rec-eive child mounting policy of the target nodeQ1 <ul><li>"	</li><li>A@'Function.
 *     </li><li>A@L@} if CAPI init error.</li></ul>/[NativeModule_GetChildMountPolicy(ArkUI_NodeHandle node, OH_ArkUI_NodeMountPolicy* policy);
/6NODE_H
/** @} */
Y[x   '6Q
type.h
 *
! mmon types for the native moduleTYP<:TYPE_H

#include <stdint.h>

#include "drawable_descriptor)ArkUI native component objecttstruct ArkUI_N@	 &pointer type of the ArkUI node contenta$W
	Content* A	0uudialog box controller of ArkUI)struct ArkUI_NativeDialog	(s of a component during component layoutt+p ucturXdrawing contextt+DrawContext ArkUI_DrawContexoGXArkUI native component objectt/* ArkUI_NodeHandlepaialog box controller of ArkUI1t%ativeDialog* ArkUI_NativeDialogHandlepinformation abou	!.
 *al	vW"preturn value structure for the <b>onGetIrregularSizeByIndex</b> callback
 * in <b>Grid</b> layout options.
 *
 * @since 22
 */
t
Number of rows occupied by@ >*/
    uint32_t rowSpan;
    /** Number of columns occupied by@ 0*/
    uint32_t columnSpan;
} ArkUI_GridItemSizepmreturn value structure for the <b>onGetRectByIndex</b> callback in <b>Grid</b> layout options.
 *
 * @since 2t
Starting row position/!<. */
    uint32_t rowStart;
    /** Starting column position/!A. */
    uint32_t columnStart;
    /** Number of rows occupied by@ >*/
    uint32_t rowSpan;
    /** Number of columns occupied by@ /*/
    uint32_t columnSpan;
} ArkUI_GridItemRec!2selected indicator type of picker.
 *
 * @since 23background. */
    ARKUI_PICKER_INDICATOR_BACKGROUND = 0,
    /** divider. */
    ARKUI_PICKER_INDICATOR_DIVIDER = 1,
} ArkUI_PickerIndicator9Style parameters of background indicator.
 *
 * @since 23qg background color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t backgroundColor;
    /**[%. */
    float topLeftRadius;
    /**g $*/
    float topRightRadius;
    /**ag@&*/
    float bottomLeftRadius;
    /**ag". */
    float bottomRightRadius;
} ArkUI_PickerIndicatorBackground;

/**
 * @brief Style parameters of divider indicator.
 *
 * @since 23qstroke width */
    float strokeWidth;
    /** divider color, 0xARGB format for example <b>0xFF1122FF</b> */
    uint32_t dividerColor;
    /**G4picker (unit: vp). */
    float startMargin;
    /***
Jpicker (unit: vp). */
    float endMargin;
} ArkUI_PickerIndicatorDivider;)ition of indicator style.
 *
 * @since 23qW/PickerIndicatorStyle ArkUI_PickerIndicatorStylepK:layout options.
 *
 * @since 2t)GridLayoutOptions ArkUI_GridLayoutOptionspE#t(G G;Uthe configuration information of the Item within the ListitemSwipeActionOption methodt+6ListItemSwipeActionItem ArkUI_ListItemSwipeActionItem;Fthe configuration information for the ListitemSwipeActionOption methodt+9ListItemSwipeActionOption ArkUI_ListItemSwipeActionOptionpArkUI native context objecttstruct ArkUI_Context;

/**
lGX1ntext instance object pointer definition of ArkUI *
  * @since 12
 0t	Context* ~		style for the swipert+p7digital indicator style for the swiper.
 *
 * @since 19qWp+arrow style for the swiper.
 *
 * @since 19qWvoe;

/**
* @brief Define the data objects of styled string supported by text components.
*
* @since 14
1t<StyledString_Descriptor ArkUI_StyledString_Descriptor;

/**
2{}
Afor subcomponents set in relative containers.
  *
  * @since 12
 0tunJ;

/**
  * @brief guideLine parameters, used to define the id, direction a1Gguideline.
  *
  * @since 12
 0tGuidelineOption ArkUI_GuidelineOption;

/**
  * @brief barrier parameter, used to define the id,
  * direction and components oHf the barrier that it depends on when generating it.
  *
  * @since 12
 0t"BarrierOption ArkUI_BarrierOption;Cthe ChildrenMainSize class information for a List.
 *
 * @since 12
1tу ArkUI_уpframe.
 *
 * @since 12
1t3ImageAnimatorFrameInfo ArkUI_ImageAnimatorFrameInfopstate for thA)t\\pvalue for thA)t\Value\Value;Sthe information of the Custom Property class for custom properties.
 *
 * @since 14qW1	1	;@the information of the HostWindowInfo class for window properties&W$HostWindowInfo ArkUI_HostWindowInfo;4ActiveChildenInfo class information.
 *
 * @since 14qW4	4	U	linearastylet%W$ 	W	t%WX	X	&the Ability base want.
 *
 * @since 20q"AbilityBase_Want AbilityBase_Want;#the EmbeddedComponentOption for the*
 * @since 20qW ;the Edges describing;by distances to the container's four edges.
 *
 * @since 21qWp>PixelRound policy of a component's four edges.
 *
 * @since 21qW'PixelRoundPolicy ArkUI_PixelRoundPolicypXField's@`
 *
 * @since 2tpmatrix4 objec&WMatrix4 ArkUI_Matrix4pX!
 *
 * @since 23qW"! p	0	vW ArkUIpp	typet%
Custom type, data of a user-defined type that is passed as a parameter during callbacks. */
    void* userData;
    /** Event callback. */
    void (*callback)(void* userData);
} ArkUI_ContextCallback;
/**
 * @brief Provides the number types of ArkUI in the native codetunion {
    /** Floating-poinaPf	. */
    float f32;
    /** Signed integer, used to store a signed integer value. */
    int32_t i32;
    /** Unsigned integer,Q used to store an unsigned integer value. */
    uint32_t u32;
} ArkUI_NumberValu
	!6ktTop start. */
    o = 0,
    /** Top center. */
    ARKUI_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_ALIGNMENT_START,
    /** Horizontally and vertically centered. */
    ARKUI_ALIGNMENT_CENTER,
    /** Vertically centered end. */
    ARKUI_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_ALIGNMENT_BOTTOM,
    /** Bottom end. */
    ARKUI_ALIGNMENT_BOTTOM_END,
} ArkUI_Alignm#image repeat patternt*The image is not repeatedly drawn. */
     = 0,
    /** The image is repeatedly drawn only along the x-axis. */
    ARKUI_IMAGE_REPEAT_X,
    /** The image is repeatedly drawn only**/
    ARKUI_IMAGE_REPEAT_Y,
    /** The image is repeatedly drawn along both axes. */
    ARKUI_IMAGE_REPEAT_XY,
} ArkUI_ImageRepea!
font styletStandard font style. */
     cP = 0,
    /** Italic font style. */
    ARKUI_FONT_STYLE_ITALIC
} ArkUI_FontStyl
	!
font weight 100 */
    ARKUI_FONT_WEIGHT_W100 = 0,
    /** 200 */
    ARKUI_FONT_WEIGHT_W200,
    /** 300 */
    ARKUI_FONT_WEIGHT_W300,
    /** 400 */
    ARKUI_FONT_WEIGHT_W400,
    /** 500 */
    ARKUI_FONT_WEIGHT_W500,
    /** 600 */
    ARKUI_FONT_WEIGHT_W600,
    /** 700 */
    ARKUI_FONT_WEIGHT_W700,
    /** 800 */
    ARKUI_FONT_WEIGHT_W800,
    /** 900 */
    ARKUI_FONT_WEIGHT_W900l,
    /** The font weight is bold. */
    ARKUI_FONT_WEIGHT_BOLD,
    /** The font weight is normal. */
    A,
    /** The font weight is bolder. */
    ARKUI_FONT_WEIGHT_BOLDER,
    /** The font weight is lighter. */
    ARKUI_FONT_WEIGHT_LIGHTER,
    /** The font weight is medium. */
    ARKUI_FONT_WEIGHT_MEDIUM,
    /** The font weight is normal. */
    ARKU(I_FONT_WEIGHT_REGULAR,
} ArkUI_FontWeigh!text alignment modetAligned with the start. */
    ARKUI_TEXT_ALIGNMENT_START = 0,
    /** Horizontally centered. */
    ARKUI_TEXT_ALIGNMENT_CENTER,
    /** Aligned with the end. */
    ARKUI_TEXT_ALIGNMENT_END,
    /** Aligned with both margins. */
    ARKUI_TEXT_ALIGNMEN.T_JUSTIFY,
    /** Aligned with left to right.!KARKUI_TEXT_ALIGNMENT_LEFT_TO_RIGHT = 4,
    /** Aligned with right to left.!:ARKUI_TEXT_ALIGNMENT_RIGHT_TO_LEFT = 5,
} ArkUI_TextAlignm .ext vertical alignment styles.
 *
 * @since 20 Aligned to the baseline. */
    Z3&% = 0,
    /** Bottom aligned. */
    Z3&OTTOM,
    /** Center aligned. */
    Z3,
    /** Top aligned. */
    Z3TOP,
},4)ext content align styles.
 *
 * @since 21Top aligned. */
    ARKUI!7._TOP = 0,
    /** Center aligned. */
    ARKUI!71_CENTER = 1,
    /** Bottom aligned. */
    ARKUI!7_BOTTOM = 2,
}6 $text text direction.
 *
 * @since 23The text direction is left to right. */
    ARKUI_TEXT_DIRECTION_LTR = 0,
    /** The text direction is right to left. */
    ARKUI_TEXT_DIRECTION_RTL = 1,
    /** The text direction follows the component layout. */
    ARKUI_TEXT_DIRECTION_DEFAULT = 2,
[    /** The text direction follows the actual text. */
    ARKUI_TEXT_DIRECTION_AUTO = 3,
}T types of the Enter key for amt&The Enter key is labeled "Go." */
    :GO = 2,
    /** The Enter key is labeled "Search." */
    <SEARCH = 3,
    /** The Enter key is labeled "Send." */
    6SEND,
    /** The Enter key is labeled "Next." */
    g4XT,
    /** The Enter key is labeled "Done." */
    6,
    /** The Enter key is labeled "Previous." */
    >PREVIOUS,
    /** The Enter key is labeled "New Line." */
    g,
}atext input typetNormal input mode. */
    ( = 0,
    /** Number input mode. */
    UMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTINPUT_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTINPUT_TYPE_EMAIL = 5,
    /** Password input mode. */
    ARKUI_TEXTINPUT_TYPE_PASSWORD = 7,
    /** Numeric password input mode. */
    UMBER_PASSWORD = 8,
    /** Lock screen password input mode. */
    ARKUI_TEXTINPUT_TYPE_SCREEN_LOCK_PASSWORD = 9,
    /** Userename input mode. */
    ARKUI_TEXTINPUT_TYPE_USER_NAME = 10,
    /** New password input mode. */
    IEW_PASSWORD = 11,
    /** Number input mode with a decimal point. */
    ;UMBER_DECIMAL = 12,
    /**
     * One time code input mode%4TEXTINPUT_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextInputtNormal input mode. */
    mY = 0,
    /** Number input mode. */
    ARKUI_TEXTAREA_TYPE_NUMBER = 2,
    /** Phone number input mode. */
    ARKUI_TEXTAREA_TYPE_PHONE_NUMBER = 3,
    /** Email address input mode. */
    ARKUI_TEXTAREA_TYPE_EMAIL = 5,
    /**
     * One time code input mode%2TEXTAREA_TYPE_ONE_TIME_CODE = 14,
} ArkUI_TextAreastyles of the Cancel buttontThe Cancel button is always displayed. */
    ARKUI_CANCELBUTTON_STYLE_CONSTANT = 0,
    /** The Cancel button is always hidden. */
    ARKUI_CANCELBUTTON_STYLE_INVISIBLE,
    /** The Cancel button is displayed when there is text input. */
    ARKUI_CANCELBUTTON_STYLE_INPUT,
}
	 types(guThe custom content of EGL/OpenGL ES and media data is displayed individually on the screen. */
    ARKUI_XCOMPONENT_TYPE_SURFACE = 0,
    /** The custom content of EGL/OpenGL ES and media data is grouped and displayed together with content
      * of the= */
    ARKUI_XCOMPONENT_TYPE_TEXTURE = 2,
} ArkUI_XComponentstylestLinear style. */
    ARKUI_PROGRESS_TYPE_LINEAR = 0,
    /** Indeterminate ring style. */
    ARKUI_PROGRESS_TYPE_RING,
    /** Eclipse style. */
    ARKUI_PROGRESS_TYPE_ECLIPSE,
    /** Determinate ring style. */
    ARKUI_PROGRESS_TYPE_SCALE_RING,
    G/** Capsule style. */
    ARKUI_PROGRESS_TYPE_CAPSULE,
} ArkUI_ProgresstypetNo text decoration. */
    K* = 0,
    /** Line under the text. */
    K.UNDERLINE,
    /** Line over the text. */
    K0OVERLINE,
    /** Line through the text. */
    KLINE_THROUGH,
}tSingle solid line. */
    ARKUI_TEXT_DECORATION_STYLE_SOLID = 0,
    /** Double solid line. */
    ARKUI_TEXT_DECORATION_STYLE_DOUBLE,
    /** Dotted line. */
    ARKUI_TEXT_DECORATION_STYLE_DOTTED,
    /** Dashed line. */
    ARKUI_TEXT_DECORATION_STYLEF_DASHED,
    /** Wavy line. */
    ARKUI_TEXT_DECORATION_STYLE_WAVY,
}
	 	text casetThe original case of the text is retained. */
    ARKUI_TEXT_CASE_NORMAL = 0,
    /** All letters in the text are in lowercase. */
    ARKUI_TEXT_CASE_LOWER,
    /** All letters in the text are in uppercase. */
    ARKUI_TEXT_CASE_UPPER,
} ArkUI_TextCase
	 text copy and paste modetopy is not allowed. */
    <NONE = 0,
    /** Intra-application copy is allowed. */
    5IN_APP,
    /** Intra-device copy is allowed. */
    /,
    /** Cross-device copy is allowed. */
    !CROSS_DEVICE,
} ArkUI_CopyOptions shadow typetolor. */
    .x@ = 0,
    /** Blur. */
    ARKUI_SHADOW_TYPE_BLUR
} ArkUI_Shadowmodes of*
 * @since 18A mode that displays the date in months, days of month, and years. */
    ARKUI_DATEPICKER_MODE_DATE = 0,
    /** A mode that displays the date in months and years. */
    ARKUI_DATEPICKER_YEAR_AND_MONTH = 1,
    /** A mode that displays the date in montXhs and days of the month. */
    ARKUI_DATEPICKER_MONTH_AND_DAY = 2,
} ArkUI_DatePickerM@	types ofDt"Single-column text picker. */
    .-!/ = 0,
    /** Multi-column text picker. */
    .-!MULTI,
    /** Single-column text!/resources. */
    .-GRANGE_CONTENT,
    /** Interconnected multi-column text picker. */
    .-CASCADE_RANGE_CONTENT,
}o0)input structure of the single-column text!/resourcet&
]Image resource. */
    const char* icon;
    /** Text information. */
    const char* text;
}Z/p>input structure of the interconnected multi-column text pickert%
TText information. */
    const char* text;
    /** Interconnected data. */
    constZ/3* children;
    /** Size of the interconnected datah}/$!ffects!T	* reachedt(Spring effect. When at one of the edges,a!move beyond the bounds`H1
     *  speed or through touches, and produces ae&ir finger. */
    ARKUI_EDGE_EFFECT_SPRING = 0,
    /** Fade effect. When at one of the edges, the component produces a fade effect. */
    ARKUI_EDGE_EFFECT_FADE,
    /** No effect after the scrollbar is moved to the edge. */
    ARKUI_EDGE_EFFECT_NONE,
} ArkUI_EdgeEffec!(status of the scroll bar.
 *
 * @since 2QNot displayed. */
    ARKUI_BAR_STATE_OFF = 0,
    /** On-demand display. */
    N = 1,
    /** Resident display. */
    ARKUI_BAR_STATE_ON = 2,
} ArkUI_BarStat
	!edges'\*
 * @since 18Start edge. */
    ~%J= 1,
    /** End edge. */
    ARKUI_EFFECT_EDGE_END = 2,
} ArkUI_EffectEdg
	!of components.
 *
 * @since 20Default mode, where focus does not wrap when arrow keys are used. */
    ARKUI_FOCUS_WRAP_MODE_DEFAULT = 0,
    /** Focus wrapsc automatically when arrow keys are used. */
    ARKUI_FOCUS_WRAP_WITH_ARROW = 1,
} ArkUI_FocusWrapM@	igfor different responsive*
 * @since 2No responsive breakpoint configuration. */
    ARKUI_ITEMFILLPOLICY_NONE = -1,
    /**
     * Default responsive layout:
     * <b>List</b> or-[: 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger).
     * <b>Grid</b> orY: 2 columns (SM or smaller), 3 columns (MD), 5 columns (LG or larger).
     */
    ARKUI_ITEMFILLPOLICY_DEFAULT = 0,
    /** 1 column (SM or smaller), 2 columns (MD), 3 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM1MD2LG3 = 1,
    /** 2 columns g(SM or smaller), 3 columns (MD), 5 columns (LG or larger). */
    ARKUI_ITEMFILLPOLICY_SM2MD3LG5 = 2,
} )grid item alignment modes.
 *
 * @since 2Use the defaultgrid. */
    A = 0,
    /** Set the height of all grid items in a row to match the height of the tallest item in that row. */
    GRID_ITEM_AL	STRETCH = 1,
}~$styles of grid items.
 *
 * @since 2No style. */
    GRID_ITEM_STYLE_NONE = 0,
    /** Hover or press style. */
    GRID_ITEM_STYLE_PLAIN = 1,
} ArkUI_GridItemStyl
	!scroll direction5$euOnlyis supported. */
    U  = 0,
    /** Only>is supported. */
    ARKUI_SCROLL_DIRECTION_HORIZONTAL,
    /** Scrolling is not allowed. */
    ARKUI_SCROLL_DIRECTION_NONE = 33,
    /**
     * Free scrolling in both directions4&2SCROLL_DIRECTION_FREE = 4,
} ArkUI_ScrollDirection 6k"s of list items when scrolling endt0No alignment. This is the default value. */
    /6 = 0,
    /** The first item in the view is aligned at	. */
    /ZSTART,
    /** The middle items in the view are aligned in the center of the list. */
    /7CENTER,
    /** The last item in the view is aligned at@		. */
    /END,
}є Ws for lists.
 *
 * @since 2Normaly	. */
    " = 0,
    /** Slowy	. */
    SLOW = 1,
}ؤ scrollbar display modetHide. */
    ! = 0,
    /** Display on demand (displays when the screen is touched and disappears after 2s). */
    ARKUI_SCROLL_BAR_DISPLAY_!,
    /** Always display. */
    N,
} ArkUI_ScrollBarDisplayM@	.scroll directions for the <b><List></b> componau!Only:is supported. */
    ARKUI_AXIS_VERTICAL = 0,
    /** Only>8is supported. */
    ARKUI_AXIS_HORIZONTAL,
} ArkUI_Axis modes for pinningo2tI, the header is not pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_NONE = 0,
    /** I, the header is pinned to the top, and the footer is not pinned to the bottom. */
    ARKUI_STICKY_STYLE_HEADER = 1,
    /** In, the footer is pinned to the bottom, and the header is not pinned to the top. */
    ARKUI_STICKY_STYLE_FOOTER = 2,
    /** In, the footer is pinned to the bottom, and the header is pinned to the top. */
    ARKUI_STICKY_STYLE_BOTH = 3,
} ArkUI_StickyStyl
	!content clipping modJw8clip by content */
    W[X& = 0,
    /** clip by boundary */
    W +,
    /** clip by safe area padding */
    WSAFE_AREA,
} ArkUI_ContentClipM@	$layout modes of the WaterFlow componau8/Layout items from top to viewport. */
    ARKUIQXD_ALWAYS_TOP_DOWN = 0,
    /** Layout items in viewport. */
    ARKUIQX)_SLIDING_WINDOW,
} ArkUI_WaterFlowLayoutM@	border styletSolid border. */
    N = 0,
    /** Dashed border. */
    ARKUI_BORDER_STYLE_DASHED,
    /** Dotted border. */
    ARKUI_BORDER_STYLE_DOTTED,
} ArkUI_BorderStyl
	!hit test modetBoth the node and its child node respond to the hit test of a touch event, but its sibling node is blocked from
     *  the hit test. */
    po = 0,
    /** The node responds to the hit test of a touch event, but its child node and sibling node are block hit test. */
    ARKUI_HIT_TEST_MODE_BLOCK,
    /** Both the node and its child node respond to the hit test of a touch event, and its sibling node is also
     * considered during the hit test. */
    ARKUI_HIT_TEST_MODE_TRANSPARENT,
    /** The node does not respond to the hit test of a touch event. */
    ARKUI_HIT_TEST_MODE_NONE,
    /**
     * The node and its child nodes participate in hit tests, while blocking hit tests for all sibling nodes and
     * parent nodes with lower priority.
     *
  4HIT_TEST_MODE_BLOCK_HIERARCHY,
    /**
     * The node does not respond to hit tests, and none of its descendants (including ch@ildren and grandchildren)
     * participate in hit tests either4&1HIT_TEST_MODE_BLOCK_DESCENDANTS,
} ArkUI_HitTestM@	shadow styletMini shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_XS = 0,
    /** Little shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_SM,
    /** Medium shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_MD,
    /** Large shadow. */
    ARKUI_SHADOW_STYLE_OUTER_DEFAULT_LG,
    /** Floating small shadow. */
    ARKUI_SHADOW_STYLE_OUTER_FLOATING_SM,
    /** Floating medium shadow. */
    ARKUI3_SHADOW_STYLE_OUTER_FLOATING_MD,
} ArkUI_ShadowStyl
	!animation curvetThe animation speed keeps unchanged. */
    ARKUI_CURVE_LINEAR = 0,
    /** The animation starts slowly, accelerates, and then slows down towards the end. */
    ARKUI_CURVE_EASE,
    /** The animation starts at a low speed and then picks up speed until the end. */
    ARKUI_CURVE_EASE_IN,
    /** The animation ends at a low speed. */
    ARKUI_CURVE_EASE_OUT,
    /** The animation starts and ends at a low speed. */
    ARKUI_CURVE_EASE_IN_OUT,
    /** The animation uses the standard curve */
    ARKUI_CURVE_FAST_OUT_SLOW_IN,
    /** The animation uses the deceleration curve. */
    ARKUI_CURVE_LINEAR_OUT_SLOW_IN,
    /** The animation uses the acceleration curve. */
    ARKUI_CURVE_FAST_OUT_LINEAR_IN,
    /** The animation uses the extreme deceleration curve. */
    ARKUI_CURVE_EXTREME_DECELERATION,
    /** The animation uses the sharp curve. */
    ARKUI_CURVE_SHARP,
    /** The animation uses the rhythm curve. */
    ARKUI_CURVE_RHYTHM,
    /** The animation uses the smooth curve. */
    ARKUI_CURVVE_SMOOTH,
    /** The animation uses the friction curve */
    ARKUI_CURVE_FRICTION,
}
	arrow styles of"tThe arrow is not displayed fo!
8SWIPER_ARROW_HIDE = 0,
    /** The arrow is displayed fo!
6SWIPER_ARROW_SHOW,
    /** The arrow is displayed onlyN+
USWIPER_ARROW_SHOW_ON_HOVER,
} ArkUI_SwiperArrow;

/**
 * @brief Nested scrolling mode-u0Swiper only scrolls on its own and is not linked	. */
    K$2 = 0,
    /** The Swiper itself scrolls first, and	) scrolls after it reaches the edge. Afteri scrolls to the edge, if	 has an edge effect,	Y triggers the edge
     * effect; otherwise, the Swiper triggers the edge effect. */
    K FIRST,
}
C	s using the mouse wheel foreuT
	b When the mouse wheel is scrolled continuously, multiple pages are flipped, which is determined byi times that mouse events are reported. */
    ARKUI_PAGE_FLIP_MODE_CONTINUOUS = 0,
    /** The system does not respond to other mouse wheel events until the page flipping animation ends. */
    ARKUI_PAGE_FLIP_MODE_SINGLE,
} ArkUI_PageFlipMode;

/**
 * @N	1animation modes for {@link NODE_SWIPER_INDEX}.
 *H
	( Jump to target index without animation. */
    ARKUI_SWIPER_NO_ANIMATION = 0,
    /** Scroll to target index with animation. */
    ARKUI_SWIPER_DEFAULT_ANIMATION = 1,
    /** Jump to some index near the target index without animation, then scroll to ta[rget index with animation. */
    ARKUI_SWIPER_FAST_ANIMATION = 2,
} ArkUI_SwiperAnimationM@	modetW5	p!be identified by	is depend. */
    ARKUI5_AUTO = 0,
    /** The component can be identified by. */
    ARKUI7_ENABLED,
    /** The component cannot be identified by. */
    ARKUI_DISABLED,
    /** T1) cannot be identified by. */
    ARKUI_DISABLED_FOR_DESCENDANTS,
}\M@	'copy and paste is allowed for text contau!opy is not allowed. */
    ARKUI_TEXT_COPY_OPTIONS_NONE = 0,
    /** Intra-application copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_IN_APP,
    /** Intra-device copy is allowed. */
    ARKUI_TEXT_COPY_OPTIONS_LOCAL_DEVICE,
    /** Cross-device copy isN allowed. */
    ARKUI_TEXT_COPY_OPTIONS_CROSS_DEVICE,
} ArkUI_TextCopyOptionsp5t5Prioritize the <b>maxLines</b> settings. */
    ARKUIV_MAX_LINES_FIRST = 0,
    /** Prioritize the <b>minFontSize</b> settings. */
    ARKUIh_MIN_FONT_SIZE_FIRST,
    /** Prioritize the layout constraint settings in terms of height. */
    ARKUI_LAYOUT_CONSTRAINT_FIRST,
}mpnested scrolling optiontXThe scrolling is contained within the component, and no scroll chaining occurs, that is,	
     * does not scrollAp7ing reaches the boundary. */
    ARKUI_SCROLL_NESTED_MODE_SELF_ONLY = 0,
    /** The component scrolls first, and when it hits the boundary,	2  When	\ hits the boundary, its edge effect is displayed. If no edge
     *  effect is specified for	the edge effectL is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_SELF_FIRST,
    /** T	. scrolls first, and when it hits the boundary,7	.
     * hits the boundary, its edge effect is displayed. If no edge effect is specified for the
     *  component, the edge effect of t	N is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARENT_FIRST,
    /** T"scroll at the same time. When both)
     *  hit the boundary, the edge effecZis displayed. If no edge effect is specified for the
     *  component, the edge effect of	V is displayed instead. */
    ARKUI_SCROLL_NESTED_MODE_PARALLEL,
} ArkUI_ScrollNestedM@	 edge to which7tTop edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_TOP = 0,
    /** Bottom edge in the vertical direction. */
    ARKUI_SCROLL_EDGE_BOTTOM,
    /** Start position in the horizontal direction. */
    ARKUI_SCROLL_EDGE_START,
    /** End positionh in the horizontal direction. */
    ARKUI_SCROLL_EDGE_END,
} ArkUI_ScrollEdge;

/**
 * @brief Alignmentspecific itemtZAlign the head. Align the head of the specified item with the head of the container.*/
   ~) = 0,
    /** Center alignment. Align the74specified item to the center of the container.*/
   ~jCENTER,
    /** Tail alignment. Align the tail of the specified item with the tail of the container.*/
   ~END,
    /** Automatic alignment. If the specified item is completely in the display area, no adjustments will be made.
     * Otherwise, according to the principle of the shortest sliding distance, align the head or tail of the specified
     * item witUh the container, so that the specified item is completely in the display area.*/
    ,
};the current scrolling statetIdle state. Trigger when using the method provided by the controller to control scrolling, and trigger when
     * dragging the scroll bar to scroll.*/
    ARKUI_SCROLL_STATE_IDLE = 0,
    /** Scroll state. Triggered when dragging the container with fingers to scroll.*/
    ARKUI_SCROLL_STATE_SCROLL,
    /** Inertial rolling state. Triggered when inertia rolling and bouncing back to the edge are performed after
     * releasing the hand quickly.*/
    ARKUI_SCROLL_STATE_FLING,
} ArkUI_ScrollState;

/**

	*types of the slider in the block directiontRound slider. */
   P{<DEFAULT = 0,
    /** Slider with an image background. */
   P{*,
    /** Slider in a custom shape. */
   P{0u,
} ArkUI_SliderBlockStyl
	!scroll directions of the slidert'Vertical direction. */
    ARKUI_SLIDERa e = 0,
    /** Horizontal direction. */
    ARKUI_SLIDER_DIRECTION_HORIZONTAL,
} ArkUI_SliderDirection slider styletThe slider is on the slider track. */
    ARKUI_SLIDER_STYLE_OUT_SET = 0,
    /** The slider is in the slider track. */
    ARK]UI_SLIDER_STYLE_IN_SET,
    /** No slider. */
    ARKUI_SLIDER_STYLE_NONE,
} ArkUI_SliderStyl
	!shapes of the check box-ircle. */
    ArkUI_CHECKBOX_SHAPE_CIRCLE = 0,
    /** Rounded square. */
    ArkUI_CHECKBOX_SHAPE_ROUNDED_SQUARE,
} ArkUI_Chec	cWěmodetTA forwards. */
    ARKUI_ANIMATION_PLAY_MODE_NORMAL = 0,
    /** T? reversely. */
    ARKUI_ANIMATION_PLAY_MODE_REVERSE,
    /** T normally for an odd number of times (1, 3, 5...) and reversely for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE,
    /** T reversely for an odd number of times (1, 3, 5...) and normally for an even number
     *  of times (2, 4, 6...). */
    ARKUI_(ANIMATION_PLAY_MODE_ALTERNATE_REVERSE,
}C	0ve original image aspect ratio is retained. */
    ARKUI_IMAGE_SIZE_AUTO = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal
     *  to the display boundaries. */
    ARKUI_IMAGE_SIZE_COVER,
    /** TRhe image is scaled with its aspect ratio retained for the content to be completelyMdisplay
     *  boundaries. */
    ARKUI_IMAGE_SIZE_CONTAIN,
} ArkUI_ImageSiz
	!adaptive color modetAdaptive color mode is not used. */
    ARKUI_ADAPTIVE_COLOR_DEFAULT = 0,
    /** Adaptive color mode is used. */
    ARKUI_ADA*PTIVE_COLOR_AVERAGE,
} ArkUI_AdaptiveColor 
color modetFollowing the system color mode. */
    ARKUI_COLOR_MODE_SYSTEM = 0,
    /** Light color mode. */
    ARKUI_COLOR_MODE_LIGHT,
 D   /** Dark color mode. */
    ARKUI_COLOR_MODE_DARK,
} ArkUI_ColorM@	system color modetLight color mode. */
    ARKUI_SYSTEM_COLOR_MODE_LIGHT = 0,
    /** Dark color mode. */
    ARKUI_SYSTEM_COLOR_MODE_DARK,
} ArkF	C	
blur styletThin material. */
    ARKUI_BLUR_STYLE_THIN = 0,
    /** Regular material. */
    ARKUI_BLUR_STYLE_REGULAR,
    /** Thick material. */
    ARKUI_BLUR_STYLE_THICK,
    /** Material that creates the minimum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THIN,
    /** Material that creates a medium shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_REGULAR,
    /** Material that creates a high shallow depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_THICK,
    /** Material that creates the maximum depth of field effect. */
    ARKUI_BLUR_STYLE_BACKGROUND_ULTRA_THICK,
    /** No blur. */
    ARKUI_BLUR_STYLE_NONE,
    /** Component ultra-thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_ULTRA_THIN,
    /** Component thin material. */
    ARKUI_BLUR_STYLE_COMPONENT_THIN,
    /** Component regular material. */
    ARKUI_BLUR_STYLE_COMPONENT_REGULAR,
    /** Component thick material. */
    ARKUI_BLUR_STYLE_COMPONENT_THICK,
    /** Component ultra-thick material. */
    ARKU4I_BLUR_STYLE_COMPONENT_ULTRA_THICK,
} ArkUI_BlurStyl
	!Cactivation policies for the background blur effect.
 *
 * @since 19The blur effect changes according to the window's focus state;
     *  it is inactive when the window is not in focus and active when the window is in focus. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_FOLLOWS_WINDOW_ACTIVE_STATE = 0,
    /** The blur effect is always active. */
    ARKUI_BLUR_STYLE_ACTIVE_POLICY_ALWAYS_ACTIVE,
    /** The blur effect is always inactive. */
    ARKUI_GBLUR_STYLE_ACTIVE_POLICY_ALWAYS_INACTIVE,
} ArkUI_BlurStyleActivePolicy tTop aligned. */
    ARKUI_VERTICAL_ALIGNMENT_TOP = 0,
    /** Center aligned. This is the default alignment mode. */
    ARKUI_C,
    /** Bottom aligned. */
    ARKUI_VERTICAL_ALIGNMENT_BOTTOM,
} 6kin the horizontal directiontAligned with the start edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_START = 0,
    /** ;Center aligned. This is the default alignment mode. */
    !,
    /** Aligned with the end edge in the same direction as the language in use. */
    ARKUI_HORIZONTAL_ALIGNMENT_END,
} ArkUT display modesqDvExtra-long text is not clipped. */
    ARKUI_TEXT_OVERFLOW_NONE = 0,
    /** Extra-long text is clipped. */
    ARKUI_TEXT_OVERFLOW_CLIP,
    /** An ellipsis (...) is used to represent text overflow. */
    ARKUI_TEXT_OVERFLOW_ELLIPSIS,
    /** Text contQinuously scrolls when text overflow occurs. */
    ARKUI_TEXT_OVERFLOW_MARQUEE,
}4 6k,tThe image is bottom aligned with the text baseline. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BASELINE = 0,
    /** The image is bottom aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_BOTTOM,
    /** The image is centered aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_CENTER,
    /** The image is top aligned with the text. */
    ARKUI_IMAGE_SPAN_ALIGNMENT_TOP,
    /*>*
     * The image alignment mode follows the text component's1>IMAGE_SPAN_ALIGNMENT_FOLLOW_PARAGRAPH,
} ArkUI_ImageSpanAlignmmz(*ImageSpanAlignmentP(T The image is scaled with its aspect ratio retained for the content to be completely
     *  display boundaries. */
    ARKUI_OBJECT_FIT_CONTAIN = 0,
    /** The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the
     *  display boundaries. */
    ARKUI_OBJECT_FIT_COVER,
    /** The image is scaled automatically to fit the display area. */
    ARKUI_OBJECT_FIT_AUTO,
    /** The image is scaled to fill the display area, and its aspect ratio is not retained. */
    ARKUI_OBJECT_FIT_FILL,
    /** The image content is displayed with its aspect ratio retained. The@'or equal to the
     *  original size. */
    ARKUI_OBJECT_FIT_SCALE_DOWN,
    /** The original size is retained. */
    ARKUI_`OBJECT_FIT_NONE,
    /** Not resized, the image is aligned with the start edge of the top of the>OBJECT_FIT_NONE_AND_ALIGN_TOP_START,
    /** Not resized, the image is horizontally centered at the top of the container. */
  OlOBJECT_FIT_NONE_AND_ALIGN_TOP,
    /** Not resized, the image is aligned with the end edge at the top of the>OBJECT_FIT_NONE_AND_ALIGN_TOP_END,
    /** Not resized, the image is vertically centered on the start edge of the container. */LgOBJECT_FIT_NONE_AND_ALIGN_START,
    /** Not resized, the image is horizontally and vertically centeredJOBJECT_FIT_NONE_AND_ALIGN_CENTER,
    /** Not resized, the image is vertically centered on the end edge of the container. */
  OOBJECT_FIT_NONE_AND_ALIGN_END,
    /** Not resized, the image is aligned with the start edge at the bottom of the container. */LOBJECT_FIT_NONE_AND_ALIGN_BOTTOM_START,
    /** Not resized, the image is horizontally centered at the bottom of the container.IOBJECT_FIT_NONE_AND_ALIGN_BOTTOM,
    /** Not resized, the image is aligned with the end edge at the bottom of the container. *K OBJECT_FIT_NONE_AND_ALIGN_BOTTOM,Not resized, and is used in conjunction with/ah7.ARKUI_OBJECT_FIT_NONE_MATRIX,
} ArkUI_ObjectFi!image interpolation effecttNo image interpolation. */
    ARKUI_IMAGE_INTERPOLATION_NONE = 0,
    /** Low quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_LOW,
    /** Medium quality interpolation. */
    ARKUI_IMAGE_INTERPOLATION_MEDIUM,
    /** High quality interpolation. This mode produces scaled images of the highest possible quality. */
    ARKUI_IMAGE_INTERPOLATION_HIGH,
} ArkUI_ImageInterpolation range mode.
 *
 * @since 21%high dynamic range mode. */
    ARKUI>_HIGH = 0,
    /** constraint dynamic range mode. */
    ARKUI>_CONSTRAINT,
    /** standard dynamic range mode. */
    ARKUI	,
} ArkUI_DynamicRangeM@	)image rotate orientation.
 *
 * @since 21Use EXIF metadata for display orientation, with support for rotation and mirroring. */
    ARKUI_ORIENTATION_AUTO = 0,
    /** ;Display original pixel data without transformation. */
    Q,
    /** Display the image after rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT,
    /** Display the image after rotating it 180 degrees clockwise. */
    ARKUI_ORIENTATION_DOWN,
    /** Display the image after rotating it 270 degrees kclockwise. */
    ARKUI_ORIENTATION_LEFT,
    /** Display the image after flipping it horizontally. */
    Q_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 90 degrees clockwise. */
    ARKUI_ORIENTATION_RIGHT_MIRRORED,
    /** Display the image after flipping it vertically. */
    ARKUI_ORIENTATION_DOWN_MIRRORED,
    /** Display the image after flipping it horizontally and then rotating it 270 degrees clockwise. */
    ARKUI_ORIENTATION_LEFT_MI&RRORED,
} ArkUI_ImageRotateOrientation 
blend modetOThe top image is superimposed on the bottom image without any blending. */
     = 0,
    /** The target pixels covered by the source pixels are erased by being turned to completely transparent. */
    ARKUI_BLEND_MODE_CLEAR,
    /** r = s: Only the source pixels are displayed. */
    ARKUI_BLEND_MODE_SRC,
    /** r = d: Only the target pixels are displayed. */
    ARKUI_BLEND_MODE_DST,
    /** r = s + (1 - sa) * d: The source pixels are blended based on opacity and cover the target pixels. */
    ARKUI_BLEND_MODE_SRC_OVER,
    /** r = d + (1 - da) * s: The target pixels are blended based on opacity and cover on the source pixels. */
    ARKUI_BLEND_MODE_DST_OVER,
    /** r = s * da: Only the part of the source pixels that overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_IN,
    /** r = d * sa: Only the part of the target pixels that overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_IN,
    /** r = s * (1 - da): Only the part of the source pixels that do not overlap with the target pixels is displayed. */
    ARKUI_BLEND_MODE_SRC_OUT,
    /** r = d * (1 - sa): Only the part of the target pixels that do not overlap with the source pixels is displayed. */
    ARKUI_BLEND_MODE_DST_OUT,
    /** r = s * da + d * (1 - sa): The part of the source pixels that overlap with the target pixels is displayed and
     *  the part of the target pixels that do not overlap with the source pixels are displayed.
     */
    ARKUI_BLEND_MODE_SRC_ATOP,
    /** r = d * sa + s * (1 - da): The part of the target pixels that overlap with the source pixels and the part of
     *  the source pixels that do not overlap with the target pixels are displayed.
     */
    ARKUI_BLEND_MODE_DST_ATOP,
    /** r = s * (1 - da) + d * (1 - sa): Only the non-overlapping part between the source pixels and the target pixels
     * is displayed. */
    ARKUI_BLEND_MODE_XOR,
    /** r = min(s + d, 1): New pixels resulting from adding the source pixels to the target pixels are displayed. */
    ARKUI_BLEND_MODE_PLUS,
    /** r = s * d: New pixels resulting from multiplying the source pixels with the target pixels are displayed. */
    ARKUI_BLEND_MODE_MODULATE,
    /** r = s + d - s * d: Pixels are blended by adding the source pixels to the target pixels and subtracting the
     *  product of their multiplication. */
    ARKUI_BLEND_MODE_SCREEN,
    /** The MULTIPLY or SCREEN mode is used based on the target pixels. */
    ARKUI_BLEND_MODE_OVERLAY,
    /** rc = s + d - max(s * da, d * sa), ra = kSrcOver: When two colors overlap, whichever is darker is used. */
    ARKUI_BLEND_MODE_DARKEN,
    /** rc = s + d - min(s * da, d * sa), ra =
       kSrcOver: The final pixels are composed of the lightest values of pixels. */
    ARKUI_BLEND_MODE_LIGHTEN,
    /** The colors of the target pixels are lightened to reflect the source pixels. */
    ARKUI_BLEND_MODE_COLOR_DODGE,
    /** The colors of the target pixels are darkened to reflect the source pixelsR. */
    ARKUI_BLEND_MODE_COLOR_BURN,
    /** The MULTIPLY or SCREEN mode is used,t]ource pixels. */
    ARKUI_BLEND_MODE_HARD_LIGHT,
    /** The LIGHTEN or DARKEN mode is used,tource pixels. */
    ARKUI_BLEND_MODE_SOFT_LIGHT,
    /** rc = s + d - 2 * (min(s * da, d * sa)), ra =
       kSrcOver: The final pixel is the result of subtracting the darker of the two pixels (source and target) from
       the lighter one. */
    ARKUI_BLEND_MODE_DIFFERENCE,
    /** rc = s + d - two(s * d), ra = kSrcOver: The final pixel is similar to <b>DIFFERENCE</b>, but with less contrast.
     */
    ARKUI_BLEND_MODE_EXCLUSION,
    /** r = s * (1 - da) + d * (1 - sa) + s * d: The final pixel is the result of multiplying the source pixel
     *  by the target pixel.	 */
    ARKUI_BLEND_MODE_MULTIPLY,
    /** The resultant image is created with the luminance and saturation of the source image and the hue of the target
     *  image. */
    ARKUI_BLEND_MODE_HUE,
    /** The resultant image is created with the luminance and hue of the target image and the saturation of the source
     *  image. */
    ARKUI_BLEND_MODE_SATURATION,
    /** The resultant image is created with the saturation and hue of the source image and the luminance of the target
     *  image. */
    ARKUI_BLEND_MODE_COLOR,
    /** The resultant image is created with the saturation and hue of the target image and the luminance of the source
     *  image. */
    ARKUI_BLEND_MODE_LUMINOSITY,
} ArkUI_BlendM@	Kmodes in which components are laid out along the main axis of the containertomponents are arranged from left to right. */
    ARKUI_DIRECTION_LTR = 0,
    /** Components are arranged from right to left. Q*/
    ARKUI_DIRECTION_RTL,
    /** The default layout direction is used. */
    Q = 3,
} ArkUI_Direction &modes in which components are laid out	containert;The default configuration in the container is used. */
    W = 0,
    /** The items in the container are aligned with the cross-start edge. */
    6START,
    /** The items in the container are centered$*/
    WCENTER,
    /** The items in the container are aligned with the cross-end edge. */
    @END,
    /** The items in the container are stretched and padded$*/
    STRETCH,
    /** The items in the container are aligned in such a manner that their text baselines are aligned along the
     *  cross axis. */
    BASELINE,
}q 't$The foreground colors are the inversXbackground colors. */
    ARKUI_COLOR_STRATEGY_INVERT = 0,
    /** The shadow colors of the component are the average color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_AVERAGE,
    /** The shadow colors of the component are the primary color obtained from the component background shadow area. */
    ARKUI_COLOR_STRATEGY_PRIMARY,
} ArkUI_ColorStrategy tThe!8re aligned with the start edge of the main axis. */
     = 1,
    /** The!2re aligned in the center of the main axis. */
    CENTER = 2,
    /** The!6re aligned with the end edge of the main axis. */
    END = 3,
    /** The!re evenly distributedThe space between any two adjacent components
     *  is the same. The first component is aligned with the main-start, and the <last component is aligned with
     *  the main-end. */
    PACE_BETWEEN = 6,
    /** The!re evenly distributedLThe space between any two adjacent components
     *  is the same. The spacecomponent and main-start, and that between the last component and
     *  cross-main are both half the size of the space betwee"n two adjacent components. */
    PACE_AROUND = 7,
    /** The!re evenly distributed	The spacecomponent
     *  and main-start, the space between the last component and main-end, and the space between any two adjacent
   %  *  components are the same. */
    #PACE_EVENLY = 8,
} ArkUI_FlexAlignm#1directions of the main axis in the flex containertThe!Ore arranged in the same direction as the main axis runs along the rows. */
    ~  = 0,
    /** The!re arranged in the same direction as the main axis runs down the columns. */
    ARKUI_FLEX_DIRECTION_COLUMN,
    /** The child'9re arranged opposite to the <b>ROW</b> direction. */
    ~ _REVERSE,
    /** The!re arranged opposite to the <b>COLUMN</b> direction. */
    ARKUI_FLEX_DIRECTION_COLUMN_REVERSE,
} ArkUI_FlexDirection;

/**
 *y	4he flex container has a single line or multiple linetTflex container are arranged in a single line, and they cannot overflow. */
    ARKUI_FLEX_WRAP_NO_WRAP = 0,
    /** The child clflex container are arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP,
    /** Tflex container are reversely arranged in multiple lines, and they may overflow. */
    ARKUI_FLEX_WRAP_WRAP_REVERSE,
} ArkUI_FlexWrap visibility valuetThe component is visible. */
    ARKUI_VISIBILITY_VISIBLE = 0,
    /** The component is hidden, and a placeholder is used for it in the layout. */
    ARKUI_VISIBILITY_HIDDEN,
    /** The component is hidden. It is not involved in the layout, and no placHeholder is used for it. */
    ARKUI_VISIBILITY_NONE,
} ArkUI_Visibility 6k	s betweenand the entry componau!Left aligned. */
    ARKUI_CALENDAR_ALIGNMENT_START = 0,
    /** Center aligned. */
    ARKUI_CALENDAR_ALIGNMENT_CENTER,
    /*L* Right aligned. */
    ARKUI_CALENDAR_ALIGNMENT_END,
} ArkUI_CalendarAlignm#	mask typetRectangle. */
    M = 0,
    /** Circle. */
    ARKUI_MASK_TYPE_CIRCLE,
    /** Ellipse. */
    +,
    /** Path. */
    ARKUI_MASK_TYPE_PATH+ MASK_TYPE_PROGRESS,
} ArkUI_Maskclipping region typetRectangle. */
    1e = 0,
    /** Circle. */
    h,
    /** Ellipse. */
    `9,
    /** Path. */
    ARKUI_CLIP_TYPE_PATH,
} ArkUI_Clip"radient color stop structuret%
Color array. */
    const uint32_t* colors;
    /** Position array. */
    float* stops;
    /** Length array. */
    int size;
} ArkUI_ColorStop custom shapetRectangle. */
    | = 0,
    /** Circle. */
    w,
    /** Ellipse. */
    P,
    /** Path. */
    `,
} ArkUI_Shapgradient directiontFrom right to left. */
    ' -LEFT = 0,
    /** From bottom to top. */
    ' (TOP,
    /** From left to right. */
    ' *RIGHT,
    /** From top to bottom. */
    ' 7BOTTOM,
    /** From lower right to upper left. */
    ' 9LEFT_TOP,
    /** From upper right to lower left. */
    ' <LEFT_BOTTOM,
    /** From lower left to upper right. */
    ' :RIGHT_TOP,
    /** From upper left to lower right. */
    ' *RIGHT_BOTTOM,
    /** No gradient. */
    ' 'NONE,
    /** Custom direction. */
    '&,
}O: word break ruletWord breaks can occur between any two characters for Chinese, Japanese, and Korean (CJK) text, but can occur
     *  only at a space character for non-CJK text (such as English). */
    ARKUI_WORD_BREAK_NORMAL = 0,
    /** Word breaks can occur between any two characters for non-CJK text. CJK text behavior is the same as for
     *  <b>NORMAL</b>. */
    ARKUI_WORD_BREAK_BREAK_ALL,
    /** This option has the same effect as <b>BREAK_ALL</b> for non-CJK text, except that if it preferentially wraps
     *  lines at appropriate characters (for example, spaces) whenever possible.
        CJK text behavior is the same as for <b>NORM*AL</b>. */
    ARKUI_WORD_BREAK_BREAK_WORDLine breaks can occur between any two syllabic units for non-CJK text.
     * CJK text behavior is the same as for <b>NORMAL</b:c
_
)WORD_BREAK_HYPHENATION,
} ArkUI_WordBreak!tAn ellipsis is used atne of text. */
   $PSTART = 0,
    /** An ellipsis is used at the center of the line of text. */
   $JCENTER,
    /** An ellipsis is used at the end of the line of text. */
   $-,
    /**
     *@brief An ellipsis is used at0ne of text for multiline and single line.
     *$	MULTILINEb@brief An ellipsis is used at the center of the line of text for multiline and single line.
     *$MULTILINE_CENTER,
}C	tRender image pixels as they are in the original source image. */
    ARKUI_IMAGE_RENDER_MODE_ORIGINAL = 0,
    /** Render imagel pixels to create a monochrome template image. */
    ARKUI_IMAGE_RENDER_MODE_TEMPLATE,
} ArkUI_ImageRenderM@	slide-in and slide-out;1tTop edge of the window. */
    ARKUI_TRANSITION_EDGE_TOP = 0,
    /** Bottom edge of the window. */
    ARKUI_TRANSITION_EDGE_BOTTOM,
    /** Left edge of the window. */
    ARKUI_TRANSITION_EDGE_START,
    /** Right edge of the window. */
    ARKUI_TRAN'SITION_EDGE_END,
} ArkUI_TransitionEdgepE tKThe content of the view is blended in sequence on the target image. */
    0 = 0,
    /** The conten"re drawn on the offscreen canvas, and then blended with
     *  the existing content on the canvas. */
    BLEND_APPLY_TYPE_OFFSCREEN,
} ArkUI_BlendApplya mask areat%
"mask area. */
    float x;
    /**mask area. */
    float y;
    /** Width of the mask area. */
    float width;
    /** Height of the mask area. */
    float he+ight;
} ArkUI_Rect;

/**
 * @brief DescribeQa componau(
Width, in px. */
    int32_t width;
    /** Height, in px. */
    int32_t height;
} ArkUI_IntSize;

/**
 * @brief Describes thedu%
Horizontal coordinate, in px. */
    int32_t x;
    /** Vertical coordinate, in px. */
    int32_t y;
} ArkUI_IntOffset;

/**
  animation onFinish callback typetThe callback is invoked when the entire animation is removed once it has finished. */
    ARKUI_FINISH_CALLBACK_REMOVED = 0,
    /** The callback is invoklogically enters the falling state, though it may still be in its
      * long tail state. */
    ARKUI_FINISH_CALLBACK_LOGICALLY,
} ArkUI_FinishCallback6k
s of items$
 @q+EThe list items are packed toward the start edge of the list container$e*/
    ARKUI_LIST_ITEM_ALIGNMENT_START = 0,
    /** The list items are centered in the list container$*/
    ARKUI_LIST_ITEM_ALIGNMENT_CENTER,
    /** The list items are packed toward the end edge of the list container along the $*/
    ARKUI_LIST_ITEM_ALIGNMENT_END,
} ArkUI_ListItemAlignment;

/**
  * @brief defines the direction of the barrier line.
  *
  * @since 12
 PqThe barrier is the leftmost of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_START = 0,
    /** The barrier is on the rightmost side of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_END,
    /** The barrier is at the top of all its referencedIds. */
    ARKUI_BARRIER_DIRECTION_TOP,
    /** The barrier is at the bottom of all its referencedIds. */
    ARKUI_BARRIE>R_DIRECTION_BOTTOM
} ArkUI_BarrierDirection;

/**
  * @brief dhain.
  *
  * @since 12
 PqComponents are evenly distributed among constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD = 0,
    /** Except for the first and last two sub-components,
      * other components are evenly distributed between the constraint anchor points. */
    ARKUI_RELATIVE_LAYOUT_CHAIN_STYLE_SPREAD_INSIDE,
    /** No gaps in subcomponents within the chain. */
    ARKU'I_RELATIVE_LAYOUT_CHAIN_STYLE_PACKED,
}42;

/**
 * @brief Describes the margins of a componau(
Top margin, in vp. */
    float top;
    /** Right margin, in vp. */
    float right;
    /** Bottom margin, in vp. */
    floaGt bottom;
    /** Left margin, in vp. */
    float left;
} ArkUI_Margin 
unit <Default, which is fp for fonts and vp for non-fonts. */
    L  = -1,
    /** px. */
    LPX = 0,
    /** vp. */
    LVP,
    /** fp. */
    LFP
} 
render fittMaintains the content size of the animation's final state,
      * and the content is always centered with the component.*/
    ARKUI_RENDER_FIT_CENTER = 0,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the top cent*/
    ARKUI_RENDER_FIT_TOP,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned with the bottom cent*/
    ARKUI_RENDER_FIT_BOTTOM,
    /** Maintains the content size of the animation's final state,
      * and the content is always aligned to the left of the component. */
    ARKUI_RENDER_FIT_LEFT,
    /** Maintains the content size of the animation's final state,
      * and the content is always right-aligned with the component. */
    ARKUI_RENDER_FIT_RIGHT,
    /** Maintacins the content size of the animation's final state,
      * and the content is always aligned with */
    ARKUI_RENDER_FIT_TOP_LEFT,
    /** Keep the content size of the animation final state,
      * and the content is always aligned withU.g */
    ARKUI_RENDER_FIT_TOP_RIGHT,
    /** Keep the content size of the animation final state,
      * and the content always aligns with the lower-Q*/
    ARKUI_RENDER_FIT_BOTTOM_LEFT,
    /** Keep the content size of the animation final state,
      *and the content always aligns with the lower-righ. */
    ARKUI_RENDER_FIT_BOTTOM_RIGHT,
    /** The aspect ratio of the animation's final state content is not considered,
    &  *and the content is always scaled toA	. */
    ARKUI_RENDER_FIT_RESIZE_FILL,
    /** Reduce or enlarge the aspect ratio of the animation final state content,
      * so that the content is fully displayed in the component,
      * and keep the center aligned with the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so &that the content is fully displayed in- * When there is left over in the broad direck	+,
      * the content is aligned to the lefK6
      * and when there is left over in the high direck	,
      * the content is aligned to the top of the component. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_TOP_LEFT,
    /** Keep the aspect ratio of the animation final state content to reduce or enlarge,
      * so that the content is fully displayed in the ' * When there is left in the wide direck	%,
      * the content is aligned with1$4 right.
      * When there is left in the high direck	%,
      * the content is aligned with1$ bottom. */
    ARKUI_RENDER_FIT_RESIZE_CONTAIN_BOTTOM_RIGHT,
    /** Keep the aspect ratio of the animation final state contenft reduced or enlarged,
      * so that both sides of the content are greater than or equal to both sid!,
      * and keep the center aligned with the component to display the middle part of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged
      * so that both sides o;f the content are exactly greater than or equal to both sid!D * When the content width is left, the content is aligned to the lefK
      * and the left portion of the content is displayed. When the content is left in the high direction,
      * the content and the component remain top aligned, showing the top side of the content. */
    ARKUI_RENDER_FIT_RESIZE_COVER_TOP_LEFT,
    /** Keep the aspect ratio of the final content of the animation reduced or enlarged so
      * that both sides of the content ar+e exactly greater than or equal to both sid! * When the content width is left, the content and the component remain right aligned,
      * and the right part of the content is displayed. When the content is left in the high direction,
      * the content and the component remain aligned at the bottom,
      * and the bottom part of the content is displayed. */
    ARKUI_RENDER_FIT_RESIZE_COVER_BOTTOM_RIGHT
} ArkUI_RenderFi!button typetNormal button (without rounded corners by default). */
    ARKUI_BUTTON_TYPE_NORMAL = 0,
    /** Capsule-type button (the round corner is half of the height by default). */
    ARKUI_BUTTON_TYPE_CAPSULE,
    /** Circle button. */
    ARKUI_BUTTON_TYPE_CIRCQ_Rounded rectangle button.1ARKUI_BUTTON_ROUNDED_RECTANGLE = 8
} ArkUI_ButtonxtUsername. Password Vault, when enabled, can automatically save and fill in usernames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_USER_NAME = 0,
    /** Password. Password Vault, when enabled, can automatically save and fill in passwords. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PASSWORD,
    /** New password. Password Vault, when enabled, can automatically generate a new password. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NEW_PASSWORD,
    /** Full street address. The scenario-based autofill feature, when enabled, can automatically save and fill in full
     *  street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_STREET_ADDRESS,
    /** House number. The scenario-based autofill feature, when enabled, can automatically save and fill in house
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_HOUSE_NUMBER,
    /** District and county. The scenario-based autofill feature, when enabled, can automatically save and fill in
     *  districts and counties. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DISTRICT_ADDRESS,
    /** City. The scenario-based autofill feature, when enabled, can automatically save and fill in cities. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_CITY_ADDRESS,
    /** Province. The scenario-based autofill feature, when enabled, can automatically save and fill in provinces. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PROVINCE_ADDRESS,
    /** Country. The scenario-based autofill feature, when enabled, can automatically save and fill in countries. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_COUNTRY_ADDRESS,
    /** Full name. The scenario-based autofill feature, when enabled, can automatically save and fill in full names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FULL_NAME,
    /** Last name. The scenario-based autofill feature, when enabled, can automatically save and fill in last names. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_LAST_NAME,
    /** First name. The scenario-based autofill feature, when enabled, can automatically save and fill in first names.
     */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PERSON_FIRST_NAME,
    /** Phone number. The scenario-based autofill feature, when enabled, can automatically save and fill in phone
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_NUMBER,
    /** Country code. The scenario-based autofill feature, when enabled, can automatically save and fill in country
     *  codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_PHONE_COUNTRY_CODE,
    /** Phone number with country code. The scenario-based autofill feature, when enabled, can automatically save and
     *  fill in phone numbers with country codes. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FULL_PHONE_NUMBER,
    /** Email address. The scenario-based autofill feature, when enabled, can automatically save and fill in email
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_EMAIL_ADDRESS,
    /** Bank card number. The scenario-based autofill feature, when enabled, can automatically save and fill in bank
     *  card numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_BANK_CARD_NUMBER,
    /** ID card number. The scenario-based autofill feature, when enabled, can automatically save and fill in ID card
     *  numbers. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_ID_CARD_NUMBER,
    /** Nickname. The scenario-based autofill feature, when enabled, can automatically save and fill in nicknames. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_NICKNAME,
    /** Address information without street address. The scenario-based autofill feature, when enabled, can automatically
     *  save and fill in address information without street addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_DETAIL_INFO_WITHOUT_STREET,
    /** Standard address. The scenario-based autofill feature, when enabled, can automatically save and fill in standard
     *  addresses. */
    ARKUI_TEXTINPUT_CONTENT_TYPE_FORMAT_ADDRESS,
    /**
     * Passport number. The scenario-based autofill feature, when enabled, can automatically save and fill in passport
     * numbers.
     * @sinc_
TEXTINPUT_CONTENT_TYPE_PASSPORT_NUMBER,
    /**
     *  Passport validity. The scenario-based autofill feature, when enabled, c=an automatically save and fill in
     *  passport validities?
&TEXTINPUT_CONTENT_TYPE_VALIDITY,
    /**
     *  Place of issue. The scenario-based autofill feature, when enabled, can automat/ically save and fill in
     *  place of issues?
&TEXTINPUT_CONTENT_TYPE_ISSUE_AT,
    /**
     *  Tax organization. The scenario-based autofill feature, when enabled, can autom3atically save and fill in tax
     *  organizations?
&TEXTINPUT_CONTENT_TYPE_ORGANIZAQ Tax id. The scenario-based autofill feature, when enabled, can automatically save and fill in standard Tax ids.
     *  @sinceO
TEXTINPUT_CONTENT_TYPE_TAX_ID,
    /**
     *  City name and state name or state code. The scenario-based autofill feature, whe_n enabled, can automatically
     *  save and fill in city names and state names or state codes?
&*TEXTINPUT_CONTENT_TYPE_ADDRESS_CITY_AND_ST1^ Flight number. The scenario-based autofill feature, when enabled, can automatically save and fill in flight
     *  numbers.
 B
#TEXTINPUT_CONTENT_TYPE_FLIGHT_NUMBER,
    /**
     *  License number. The scenario-based autofill feature, when enabled, can au4tomatically save and fill in license
     *  numbers?
&TEXTINPUT_CONTENT_TYPE_LICENSE_NUMBER,
    /**
     *  License file number. The scenario-based autofill feature, when enabled, ?can automatically save and fill in
     *  license file numbers?
&TEXTINPUT_CONTENT_TYPE_LICENSE_FILE_NUMBER,
    /**
     *  License plate number. The scenario-based autofill feature, when enaFbled, can automatically save and fill in
     *  license plate numbers?
& TEXTINPUT_CONTENT_TYPE_LICENSE_P1) Engine number. The scenario-based autofill feature, when enabled, can automatically save and fill in engine
     *  numbers.
 B
#TEXTINPUT_CONTENT_TYPE_ENGINE_NUMBER,
    /**
     *  License chassis number. The scenario-based autofill feature, when enabledD, can automatically save and fill in
     *  license chassis numbers?
&0TEXTINPUT_CONTENT_TYPE_LICENSE_CHASSIS_NUMBER,
}Xinput styletDefault style. The caret width is fixed at 1.5 vp, and the caret height is subject to the background height and
     *  font size~W */
    ARKUI_TEXTINPUT_STYLE_DEFAULT = 0,
    /** Inline input style. The background hotextC@ box. */
    ARKUI_TEXTINPUT_STYLE_INLINE
} ArkUI_TextInputStylep%input box
 *H
	03Default appearance mode, won't adopt immersive stylj(OImmersive mode.j4IMMERSIVE = 1,
    /**
     * Light immersive style.j9LIGHT_IMMERSIVE = 2,
    /**
     * Dark immersive style.jDARK_IMMERSIVE = 3,
}0p entity type for text recognitiontPhone Number.*/
    ARKUI_TEXT_DATA_DETECTOR_TYPE_PHONE_NUMBER = 0,
    /** Link. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_URL,
    /** Mailbox. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_EMAIL,
    /** Address. */
    ARKUI_TEXT_DATA_DETECTOR_TYPE_ADDRESS,
} ArkU/tdotrOT,
    /** digitr,
}& the pattern of element arrangement in7 Swiper componau!In the folded state, when the ListItem slides in the opposite direction to the main axis,
     * the operation item is hidden.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_COLLAPSED = 0,
    /** In the folded state, when the ListItem slides in the opposite direction to the spindle,
     * the operation item is displayed.*/
    ARKUI_LIST_ITEM_SWIPE_ACTION_STATE_EXPANDED,
    /** Long distance state, the state of deleting a ListItem after it enters the long distance deletion area.*/
    ARKUI_LIST_ITEM_SWIPE:_ACTION_STATE_ACTIONING,
} ArkUI_ListItemSwipeActionState;Kxplicit and implicit mode of the SwipeAction method for the Listitem componau!3The ListItem can continue to be scratched after the/size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_SPRING = 0,
    /** The sliding distance of the ListItem cannot exceed the size of the scratched component.*/
    ARKUI_LIST_ITEM_SWIPE_EDGE_EFFECT_NONE,
} ArkUI_ListItemSwipeEdgeEffect;error code enumeration valuet@error No errors. */
   , = 0,
    /** @error Parameter error. */
   a~ = 401
	CAPI init error._
ׁ	 = 50
	ternal error occurs, such as failure occurs because of the internal environment error,
     * or operation failed because of the internal execution failed./h		 = 100001
	#The XComponent is in invalid state.BARKUI_ERROR_CODE_XCOMPONENT_STATE_INVALID = 103501,
    /** @errorB	 %specific properties or events. */
   2 = 106102,
    /** @error The0 does not support nodes created by ArkTS. */
   ߼*> = 106103,
    /** @error The lazy loading adapter is not boun*/
    ARKUI_ERROR_CODE_ADAPTER_NOT_BOUND = 106104,
    /** @error The adapter already exists. */
    ARKUI_ERROR_CODE_ADAPTER_EXIST = 106105,
    /** @error The corresponding node already has a child node and cannot add an adapter. */
    ARKUI_ERROR_COkDE_CHILD_NODE_EXIST = 106106,
    /** The parameter length in the parameter event exceeds the limit. */
   c5 = 106107,
    /** T/h. */
   c%VALID = 106108,
    /** T|j2 */
   cmj		 = 106109
	The event t	 by the node.c_	5 = 106110,
    /** The index value is invalid. */
   cINDEX_INVALID = 106200,
    /**  Failed to query route navigation information. */
    ARKUI_ERROR_CODE_GET_INFO_FAILED = 106201a,
    /** The buffer size is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR = 106202
	The	c	 = 1062,error The node is running on invalid thread.AcON_INVALID_THREAD = 106204
	Fw	"M	$	 = 106205
	TQ	!AcQ	
 = 10620error This node	 JcHAS_PARENT = 106207
	The node cannot be adopted.Ac̇		 = 106208
	The node cannot adopt children.Ac̇	.		 = 106209
	k	4 JcO	 = 10621R&error The node type is not custom node%c   T_CUSTOM_NODE = 106401
	Node already has children%!ERROR_CODE_CHILD_EXISTED = 106402
	RenderNode parent is existed%'ERROR_CODE_RENDER_PARENT_EXISTED = 1064"error RenderNode child is not exis&*ERROR_CODE_RENDER_CHILD_NOT_EXIST = 106404
	Param is out of range%h~OUT_OF_RANGE = 106405
	,The RenderNode is obtained from a FrameNode.A2ARKUI_ERROR_CODE_RENDER_IS_FROM_FRAME_NODE = 10640error The RenderNode is obtained from a FrameNode,
     * and its corresponding FrameNode is no longer in the adopted state.
  D7ARKUI_ERROR_CODE_RENDER_HAS_INVALID_FRAME_NODE = 106407
	The node is not adopted.A1ARKUI_ERROR_CODE_RENDER_NOT_ADOPTED_NODE = 106408
	+The node requesting focus is not focusable.-ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE = 150001
	3The node requesting focus has unfocusable ancestor.6ARKUI_ERROR_CODE_FOCUS_NON_FOCUSABLE_ANCESTOR = 150002
	*The node requesting focus does not exists.)ARKUI_ERROR_CODE_FOCUS_NON_EXISTENT = 150error Td	 c	+	 = 160002
	The provided colorj	 i	k For details about the error codes,
     * see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).!c	$+i	 = 160error Ti	 j	Ji    * For details about the error codes, see [Snapshot Error Codes](../apis-arkui/errorcode-snapshot.md).!c	$i	0 = 160004,
    /** The component is not a scroll>cN_SCROLLABLE_CONTAINER = 180001,
    /** The buffer is not large enough. */
    ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH = 180002
	The event is not a clone event.cT_CLONED_POINTER_EVENT = 180'error The component status is abnormal.b~*OST_CLONED_COMPONENT_STATUS_ABNORMAL = 180a/error No component hit to respond to the event.b~9OST_CLONED_NO_COMPONENT_HIT_TO_RESPOND_TO_THE_EVENT = 180'$error Input event type not supported%,ERROR_INPUT_EVENT_TYPE_NOT_SUPPORTED = 18000error invalid styled string./ARKUI_ERROR_CODE_INVALID_STYLED_STRING = 180101
	The gesture recognizer t	_
1ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED = 180102
	T	_
2}		 = 190001
	T!	 is invalid._
ׁ	}		 = 190002
	3operation is not allowed for current drag drop phar<6ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED = 190aerror Parameter error.b~ERROR = 100023,
} ArkUI_:	&*
 * @since 12
QqThe animation is1*/
   p/,
    /** The animation is being played. */
   p0RUNNING,
    /** The animation is paused. */
   p0PAUSED,
    /** The animation is stopped. */
   p STOPPED,
} ArkUI_AnimationStatuspU*
 * @since 12
Qq<Before execution, the animation does not apply any styles to%After execution, the animation restorP}Fto its default state. */
    ARKUI_ANIMATION_FILL_MODE_NONE,
    /** T@|Dretains the state set by the last keyframe encountered
     * during. */
   6#n,
    /** The animation applies the values defined in the first relevant keyframe once it is applied to
     *, and retains the values during the period set by delay. */
    ARKUI_ANIMATION_FILL_MODE_BACKWARDS,
    /** The animation follows the rules for both Forwards and Backwards,
     * extending the animation attributes in both directions. */
    ARKUI_ANIMATION_FILL_MODE_BOTH,
} =C	state type forcheckboxtThe Checkbox unchecked. */
    ARKUI_ACCESSIBILITY_UNCHECKED = 0,
    /** The Checkbox checked. */
    ARKUI_ACCESSIBILITY_CHECKED,
}\CheckedStat
	!ěmodetThe animation plays in forward loop mode. */
    ARKUI_ANIMATION_DIRECTION_NORMAL = 0,
    /** The animation plays in reverse lnoop mode. */
    ARKUI_ANIMATION_DIRECTION_REVERSE,
    /** The animation plays in alternating loop mode. WhenO for an odd number of times, the
     *  playback is in forward direction. When for an even number of times, the playback is in
     *  reverse direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE,
    /**; The animation plays in reverse alternating loop mode. WhenO for an odd number of times,
     *  the playback is in reverse direction. When for an even number of times, the playback is
     *  in forward direction. */
    ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE,
} ArkUI_AnimationDirection hover effects when a<*
 * @since 23Default effect. */
    ARKUI_HOVER_EFFECT_AUTO = 0,
    /** Scale effect. */
    ARKUI_HOVER_EFFECT_SCALE,
    /** Highlight effect. */
    ARKUI_HOVER_EFFECT_HIGHLIGHT,
    /** No effect. */
    ARKUI_HOVER_EFFECT_NONE,
} ArkUI_HoverEffect;

/**
 * @bri	priority levels for focus management within the application.
 * These levels determine the sequence in which UI components rece2ive focus during user interaction.
 *
 * @since 23Default priority. */
    ARKUI_FOCUS_PRIORITY_AUTO = 0,
    /** Higher priority. */
    ARKUI_FOCUS_PRIORITY_PRIOR = 2000,
    `/** Previous focus priority. */
    ARKUI_FOCUS_PRIORITY_PREVIOUS = 3000,
} ArkUI_FocusPriority;the rolling sourceQDtFinger drag. */
    ARKUI_SCROLL_SOURCE_DRAG = 0,
    /** Inertial roll after finger drag. */
    ARKUI_SCROLL_SOURCE_FLING,
    /** Execute the EdgeEffect.Spring edge effect when crossing the boundary.*/
    ARKUI_SCROLL_SOURCE_EDGE_EFFECT,
    /** Other user input other than dragging, such as mouse wheel, keyboard events, etc.*/
    ARKUI_SCROLL_SOURCE_OTHER_USER_INPUT,
    /** Drag the scroll bar.*/
    ARKUI_SCROLL_SOURCE_SCROLL_BAR,
    /** Inertia scrolling after dragging the scroll bar.*/
    ARK,UI_SCROLL_SOURCE_SCROLL_BAR_FLING,
    /** TJcauses unanimated scrolling.*/
    ARKUI_SCROLL_SOURCE_SCROLLER,
    /** Tccauses the scroll to drive the painting.*/
    ARKUI_SCROLL_SOURCE_ANIMATION,
} ArkUI_ScrollSource;]action typetclick action. */
    ARKUIY8_CLICK = 1 << 0,
    /** long click action. */
    ARKUIY6_LONG_CLICK = 1 << 1,
    /** cut action. */
    ARKUIY0_CUT = 1 << 2,
    /** copy action. */
    ARKUIY2_COPY = 1 << 3,
    /** paste action. */
    ARKUIY_PASTE = 1 << 4,
}\Action!'lation options for component transitiont%
T`
. */
    float x;
    /** T`
. */
    float y;
    /** T`,. */
    float z;
} ArkUI_TranslationOptionsp'caling options for component transitiont%
AScale ratio along the x-axis. */
    float x;
    /** Scale ratio**/
    float y;
    /** SE (not effective for the current 2D graphics). */
    float z;
    /**. */
    float centerX;
    /**,. */
    float centerY;
} ArkUI_ScaleOptionsp)rotation options for component transitiont%
Xѕ#*/
    float x;
    /**%*/
    float y;
    /** Zѕ#C*/
    float z;
    /** Rotation angle. */
    float angle;
    /**. */
    float centerX;
    /**. */
    float centerY;
    /** Z-axis anchor, that is, the z-component of the 3D rotation center point. */
    float centerZ;
b    /** Distance from the user to the z=0 plane. */
    float perspective;
} ArkUI_RotationOptionspa struct for	-t+8		asureInfo1		asureInfopa struct for	)t+8	1	pa struct forj	)t+		p ate of the NavDestination componau!The NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_SHOW = 0,
    /** The NavDestination hide. */
    ARKUI_NAV_DEST=INATION_STATE_ON_HIDE = 1,
    /** The NavDestination is moun tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_APPEAR = 2,
    /** The NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_DISAPPEAR = 3,
    /** Before the NavDestination show. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_SHOW = 4,
    /** Before the NavDestination hide. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_HIDE = 5,
    /** Before the NavDestination mount to the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_APPEAR = 6,
    /** Before the NavDestination removed from the component tree. */
    ARKUI_NAV_DESTINATION_STATE_ON_WILL_DISAPPEAR = 7,
    /** The NavDestination returns ffrom the component.*/
    ARKUI_NAV_DESTINATION_STATE_ON_BACK_PRESS = 100,
} ArkUI_NavDestinationState;the state of Router PagetThe Router Page is about to be created. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_APPEAR = 0,
    /** The Router Page is about to be destroyed. */
    ARKUI_ROUTER_PAGE_STATE_ABOUT_TO_DISAPPEAR = 1,
    /** The Router Page show. */
    ARKUI_ROUTER_PAGE_STATE_ON_SHOW = 2,
    /** The Router Page hide. */
    ARKUI_ROUTER_PAGE_STATE_ON_HIDE = 3,
    /** The Router Page returns. */
X    ARKUI_ROUTER_PAGE_STATE_ON_BACK_PRESS = 4,
} ArkUI_RouterPageState;

/**
 * @brief d& of the`tLThe default security zone includes the status bar and navigation bar. */
   aP= 1,
    /** Non-secure areas of the device, such as bangs or hole holes. */
   8aW = 1 << 1,
    /** Soft keyboard area. */
    ARKUI_SAFE_AREA_TYPE_KEYBOARD = 1 << 2,
}`9 an enum for the areas of the <b>ListItemGroup</b> componauT
	 Outside theItemGroup</b> component. */
    ARKUI_LIST_ITEM_GROUP_AREA_OUTSIDE = 0,
    /** Area when the <b>ListItemGroup</b> component do$es not have the header, footer, or l,LIST_ITEM_SWIPE_AREA_NONE,
    /** List itemOItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_ITEM,
    /** HeaderQItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_HEADER,
    /** FooterItemGroup</b> component. */
    ARKUI_LIST_ITEM_SWIPE_AREA_FOOTER,
} ArkUI_ListItemGroupArea;

/**
 * @brief defines the enumer&
 of the direction of the`tUpper area. */
   a= 1,
    /** Lower area. */
   ab% = 1 << 1,
    /** Front area. */
   a)START = 1 << 2,
    /** Tail area. */
   a#END = 1 << 3,
} ArkUI_SafeAreaEdge;an enum for thezs.
 *
 * @since 18
Qqove focus forward. */
    ARKUI_FOCUS_MOVE_FORWARD = 0,
    /** Move focus backward. */
    ARKUI_FOCUS_MOVE_BACKWARD,
    /** Move focus up. */
    ARKUI_FOCUS_MOVE_UP,
    /** Move focus down. */
    ARKUI_FOCUS_MOVE_DOWN,
    /** Move focus left. */
    ARKUI_FOCUS_MOVE_LEFT,
    /** Move focus right. */
    ARKUI_FOCUS_MOVE_RIGHT,
} ArkUI_FocusMove;

/**
 * @brief defines th&. of the customDialog's keyboard avoid mode.
 *H
	( Defines avoid keyboard when keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_DEFAULT = 0,
    /** Defines not avoid keyboard wQhen keyboard shows. */
    ARKUI_KEYBOARD_AVOID_MODE_NONE,
} ArkUI_KeyboardAvoidM@	d& of area in hover mode.
 *H
	( Layout top half screen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_TOP = 0,
    /** Layout bottom half scraeen when the phone in hover mode. */
    ARKUI_HOVER_MODE_AREA_TYPE_BOTTOM,
} ArkUI_HoverModeAreaxpand modes.
 *H
	( Not expand. */
    ARKUI_NOT_EXPAND = 0,
    /** Expand. */
    ARKUI_EXPAND = 1,
    /** Lazy expand. Expand the children of =node if needed. */
    ARKUI_LAZY_EXPAND = 2,
} ArkUI_ExpandM@	 ( style of the <b><Swiper></b> component.RUI states of a component, used for handling state-specific styles.
 *
 * @since 20Normal state. */
    UI_STATE_NORMAL = 0,
    /** Pressed state. */
    UI_STATE_PRESSED = 1 << 0,
    /** Focused state. */
    UI_STATE_FOCUSED = 1 << 1,
    /** Disabled state. */
    UI_STATE_DISABLED = 1 << 2,
    /**
     * Selected state. This stafte is supported only by specific component types:
     * <b>Checkbox</b>, <b>Radio</b>, <b>Toggle</b>,"WMenuItem</b>.
     */
    UI_STATE_SELECTED = 1 << 3,
    /**
     * The hovered state.F")UI_STATE_HOVERED = 1 << 4,
} ArkUI_UIStat
	!edge direction.
 *
 * @since 20Set all edge direction. */
    ARKUI_EDGE_DIRECTION_ALL = 0,
    /** Set left edge direction. */
    ARKUI_EDGE_DIRECTION_LEFT,
    /** Set right edge direction. */
    ARKUI_EDGE_DIRECTION_RIGHT,
    /** Set top edge direction. */
    ARKUI_EDGE_DIRECTIgON_TOP,
    /** Set bottom edge direction. */
    ARKUI_EDGE_DIRECTION_BOTTOM,
} ArkUI_EdgeDirection;
 !corner direction.
 *
 * @since 20Set all corner direction. */
    ARKUI_CORNER_DIRECTION_ALL = 0,
    /** Set top left corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_LEFT,
    /** Set top right corner direction. */
    ARKUI_CORNER_DIRECTION_TOP_RIGHT,
    /** Set bottom left corneCr direction. */
    ARKUI_CORNER_DIRECTION_BOTTOM_LEFT,
    /** SetNdirection. */
    ARKUI_CORNER_DIRECTION_BOTTOM_RIGHT,
} ArkUI_CornerDirection !PixelRoundPolicy.
 *
 * @since 21No Force round the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_NOFORCEROUND = 0,
    /** Force ceil the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCECEIL,
    /** Force floor the component boundary coordinates to integer pixel. */
    ARKUI_PIXELROUNDCALCPOLICY_FORCEFLOOR,
} ArkUI_PixelRoundCalcPol9icy;

/**
 * @brief Menu pop-up strategy.
 *
 * @since 23Determine w
menu according to the underlying default logic. */
    ARKUI_MENU_POLICY_DEFAULT = 0,
    /** Never pop up the menu. */
    ARKoUI_MENU_POLICY_HIDE = 1,
    /** Always pop up the menu. */
    ARKUI_MENU_POLICY_SHOW = 2,
} ArkUI_MenuPolicy;9the direction to expand the swipe action.
 *
 * @since 21When the List direction is vertical, it indicates the left in LTR mode and right in RTL mode.
     * When the List direction is[ horizontal, it indicates the top.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_STARTOWhen the List direction is vertical, it indicates the right in LTR mode and left in RTL mode.
     * When the List direction is horizontal, it indicates the bottom.
     */
    ARKUI_LIST_ITEM_SWIPE_ACTION_DIRECTION_END = 1,
} ArkUI_ListItemSwipeActionDirection Minput tool types supported for response region configuration.
 *
 * @since 23All input tool types. */
    x'# = 0,
    /** Finger input. */
    x$)FINGER = 1,
    /** Stylus input. */
    x$%PEN = 2,
    /** Mouse input. */
    x$MOUSE = 3,
}<";1A the types for expanding the safe area in layout.
 *
 * @since 23XDefault non-safe area of the system, including the status bar and navigation bar. */
   # = 1,
};1;dges for expanding the safe area in layout.
 *
 * @since 23!Top edge of the safe area. */
   5TOP = 1,
    /** Bottom edge of the safe area. */
   b6 = 1 << 1,
    /** Start edge of the safe area. */
   "4 = 1 << 2,
    /** End edge of the safe area. */
   <END = 1 << 3,
    /** Vertical edge of the safe area. */
   
VERTICAL ="b2,
    /** Horizontal edge of the safe area. */
   HORIZONTAL ="/END,
    /** All edges of the safe area. */
   ALL =VERTICAL%HORIZONTAL,
} ArkUI_LayoutSafeAreaEdg
	!ls.
 *
 * @since 23Top start. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_START = 0,
    /** Top center. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP,
    /** Top end. */
    ARKUI_LOCALIZED_ALIGNMENT_TOP_END,
    /** Vertically centered start. */
    ARKUI_LOCALIZED_ALIGNMENT_START,
   2 /** Horizontally and vertically centered. */
     ,
    /** Vertically centered end. */
    ARKUI_LOCALIZED_ALIGNMENT_END,
    /** Bottom start. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_START,
    /** Horizontally centered on the bottom. */
    ARKUI_LOCALIZED_ALIGNMENT_BOTTOM,
    /** Bottom end. */
   ( ARKUI_LOCALIZED_ALIGNMENT_BOTTOM_END,
}/;,graphics rendering strategy.
 *
 * @since 23<rGchild components will be drawn directly onto the screen canvas. */
    < = 0,
    /**
<rchild components will first be drawn onto an off-screen canvas,
    *     then undergo some graphic rendering operations, and fRinally be drawn onto the main canvas.
    */
    ARKUI_RENDERSTRATEGY_OFFSCREEN,
} LayoutPolicy.
 *
 * @since 21The component fills its parent, which means its size is as large as its parent */
    ARKUI_LAYOUTPOLICY_MATCHPARENT = 0,
    /Z
hfills its content, which means its size is as large as its children but it is constrained
     * by its parent.
     */
    ARKUI_LAYOUTPOLICY_WRAPCONTENT,
    /** The component fills its content which means its size is as large as its children. */
    A6RKUI_LAYOUTPOLICY_FIXATIDEALSIZE,
} ArkUI_LayoutPolicypparameter used byG	˽2WM	M	Goptions for taking snapshott%Wj	j	i;

/**
  * @brief TextPicker single column selector, supports mixing text and images.
  *
  * @since 19
 0tv0p/Arrayo0p/Array;

 /**
   * @brief TextPicker multi column selector, supports mixing text and images.
   *
   * @since 19
   */
typedef s=tKTextCascadePickerRangeContentArray ArkUI_TextCascadePickerRangeContentArraypEa two-dimensional point struct, with coordinates stored as float type%	
     * x-axisQ$/
    float x;
    /**
     * y-axisQ%/
    float y;
} ArkUI_PointF;

 /**
q6ptions for selection operation.
   *
   * @since 23
  0tGGxsize constraint.
*OH_	_Create()x"deep copy of a size constraint.
*
"a<}-new;B_Copy(const'>y	 pointer to a size constraint.
*
"a< l	_Dispose(&.maximum width for a size constraint, in px.
*
"a<}maximum width~"_GetMaxWidth(const'.minimum width for a size constraint, in px.
*
"a<}minimum width~"_GetMinWidth(const'/maximum height for a size constraint, in px.
*
"a<}maximum height~"_GetMaxHeight(const'/minimum height for a size constraint, in px.
*
"a<}minimum height~"_GetMinHeight(const';width percentage reference for a size constraint, in px.
*
"a<}width percentage reference~"_GetPercentReferenceWidth(const'<height percentage reference for a size constraint, in px.
*
"a<}height percentage reference~" _GetPercentReferenceHeight(const'f	width.
*
"a<JbTpxmG	_SetMaxWidth(", int32_t valuP]7	width.
*
"a<Jminimum width, in pxmG	_SetMinWidth(", int32_t valuPo
height.
*
"a<Jmaximum height, in pxmG	_SetMaxHeight(", int32_t valuP]7
height.
*
"a<Jminimum height, in pxmG	_SetMinHeight(", int32_t valuPwidth percentage reference.
*
"a<J!width percentage reference, in pxmG	_SetPercentReferenceWidth(", int32_t valuPheight percentage reference.
*
"a<J"height percentage reference, in pxmG	_SetPercentReferenceHeight(", int32_t value@C	P]pointer to a canvas for drawing, which can be converted into the <b>OH_Drawing_Canvas</b> pointer
* in the <b>Drawing</b> module.
*
* @param c{	 _}-canvas for drawing[ /DrawContext_GetCanvas(ArkUI_DrawContext* contexof a drawing area.
*
* @param c{	 _}size of the drawing areaIntSize OH_ArkUI_DrawContext_GetSize(ArkUI_DrawContext* context);

/**
 * @brief Creates <b>Grid</b> layout options.
 *
 * @return <b>Grid</b> layout options created.
 * @since 22
 */
ArkUI_GridLayoutOptions* OH_ArkUI_GridLayoutOptions_Create();

/**
 * @brief Disposes of <b>Grid</b> layout options.
 *
 * @param option <b>Grid</b> layout options.
 * @since 22
 */
void OH_ArkUI_G0ridLayoutOptions_Dispose(ArkUI_GridLayoutOptionsV		
rregular grid item index array for the grid layout.
 *
 * @param option <b>Grid</b> layout options.
 * @param irregularIndexes FArray of irregular grid item indexes.
 * @param size Size of the indexf	)	 Oc	If an error code is returned, it may be due to a failure in parameter validation;
 *         the parameter must not be null.
 *r	 GridLayoutOptions_SetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t size);

/**
 * o	P]irregular grid item index array for the grid layout.
 * When <b>OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback</b> is not set,
 * the grid item specified in <b>irregularIndexes</b> occupies an entire row of the grid that scrolls vertically or
 * an entire column of the grid that scrolls horizontally.
 *
 * @param option <b>Grid</b> layout options.
 * @param iVrregularIndexes Array of irregular grid item indexes.
 * @param size Size of the indexf	)	 Oc	(BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiGlure in parameter validation;
 *         the parameter must not be nulln	$GridLayoutOptions_GetIrregularIndexes(
    ArkUI_GridLayoutOptions* option, uint32_t* irregularIndexes, int32_t* size);

/**
 *n	
}X	
6to obtain the row and column span for the grid item atN,*
 * @param option <b>Grid</b> layout option@	\	BCallback that returns the row and column span for the grid item atN*        itemIndex: grid item index, which must be within the range set by
 *        {@link OH_ArkUI_GridLayoutOptions_SetIrregularIndexes}.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetIrregularSizeByIndexCallback(
    ArkUI_GridLayoutOptNions* option, void* userData, ArkUI_GridItemSize (*callback)(int32_t itemIndexF	̧	

}X	
^to obtain the starting row, starting column, row span,
 * and column span for the grid item atN,*
 * @param option <b>Grid</b> layout option@	\	Callback that returns the starting row, starting column, row span,
 *        and column span for the grid item at the specifiedN	*        itemIndex: grid item index.
 * @since 22
 */
void OH_ArkUI_GridLayoutOptions_RegisterGetRectByIndexCallback(
    ArkUI\_GridLayoutOptions* option, void* userData, ArkUI_GridItemRect (*callback)(int32_t itemIndexF	"CreatesE#*E"G* OH_G_Create(A@ypointer to aE#*
* @param op>	^	aE#oG	G	_Dispose(G* optionQFlowItem block configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @param size Array LengthmG	G	_SetSize(G
* option, {Gets the FlowItem grouping configuration information array length.
*
* @param option FlowItem Indicates the packet configuration.
* @return Array size. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option pa(rameter is abnormal, such as a null poiny~G	_GetSize(G* optionQ
,items in a water flow section.
*
* @param op>	^	aE#b*water flow section-item!:sectionmG	G_SetItemCount(G* option,
    int32_t index, "
item!:section that matchesN*
* @param op>	^	aE#b*water flow section}number of item!:section~"G_GetItemCount(G* option, int32_t indexpD	FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param opt>	^	aE#b*`water flow section.
* @param callback Gets the spindle size of the specified Item based on indexmG	G(_RegisterGetItemMainSizeCallbackByIndex(G@* option,
    int32_t index, float(*callback)(int32_t itemIndex)pD	FlowItem grouping configuration information getsthe spindle size of
* the specified Item based on flowItemIndex.
*
* @param opt>	^	aE#b*water flow section.
* @param userData FlowItem Custom data.
* @param callback Gets the spindle size of the specified Item based	 on indexmG	G9_RegisterGetItemMainSizeCallbackByIndexWithUserData(
    GP* option, int32_t index, void* userData,
    float (*callback)(int32_t itemIndexF	":V(in a vertical layout) or rows (in a horizontal layout) of a water flow.
*
* @param op>	^	aE#b*"water flow section.
* @param crossgor rows, depending onpoG	G_SetCrossCount(
    G)* option, int32_t index, int32_t crossCou
g:(in a vertical layout) or rows (in a horizontal layout) inE
* that matchesN*
* @param op>	^	aE#b*water flow section}gor row#G_GetCrossCount(G* option, int32_t indexQqMB3 in the specified water flow section.
*
* @param op>	^	aE#b*/water flow section.
* @param columnGap Indicatep to setmG	G_SetColumnGap(G,* option,
    int32_t index, float columnGap@C	P]%p":section that matchesN*
* @param op>	^	aE#b*water flow section}%p
* @since 12
*/
float OH_G_GetColumnGap(G* option, int32_t indexQq3 in the specified water flow section.
*
* @param op>	^	aE#b*,water flow section.
* @param rowGap IndicateD to setmG	G_SetRowGap(G)* option,
    int32_t index, float rowGap@C	P]D":section that matchesN*
* @param op>	^	aE#b*water flow section}D* @since 12
*/
float OH_G_GetRowGap(G* option, int32_t indexQ;margins for the specified water flow section.
*
* @param op>	^	aE#b*Bwater flow section.
* @param marginTop Indicates the top margin ofE4.
* @param marginRight Indicates the right margin ofE6.
* @param marginBottom Indicates the bottom margin ofE2.
* @param marginLeft Indicates the left margin ofEmG	G_SetMargin(Gd* option, int32_t index,
    float marginTop, float marginRight, float marginBottom, float marginLef
margins ofEthat matchesN*
* @param op>	^	aE#b*water flow section}margins
Margin OH_G_GetMargin(G* optionR	!	Creates a.
 *
Ϙ%the indicator	-new indicator.
 1SwiperIndicator* OH_ArkUI_SwiperIndicator_Create( typhGX!indicator.
 *
 * @param indicatoraindicator.
 oG	8SwiperIndicator_Dispose(ArkUI_SwiperIndicator* indicatora	 	"3and the start of the swiper.
 *
 * @param indicatora	indicator`i "and the start of the swiper.
 oG	MSwiperIndicator_SetStartPosition(ArkUI_SwiperIndicator* indicator, float valuks"3and the start of the swiper.
 *
 * @param indicatora	indicator	"*and the start of the swiper.
 * @since 12
L	@wiperIndicator_GetStartPosition(ArkUI_SwiperIndicator* indicatora	 	"1and the top of the swiper.
 *
 * @param indicatora	indicator`i "and the top of the swiper.
 oG	KSwiperIndicator_SetTopPosition(ArkUI_SwiperIndicator* indicator, float valuks"1and the top of the swiper.
 *
 * @param indicatora	indicator	"(and the top of the swiper.
 * @since 12
L	>wiperIndicator_GetTopPosition(ArkUI_SwiperIndicator* indicatora	 	"3and the right of the swiper.
 *
 * @param indicatora	indicator`i "and the right of the swiper.
 oG	KSwiperIndicator_SetEndPosition(ArkUI_SwiperIndicator* indicator, float valuks"1and the end of the swiper.
 *
 * @param indicatora	indicator	"(and the end of the swiper.
 * @since 12
L	>wiperIndicator_GetEndPosition(ArkUI_SwiperIndicator* indicatora	 	"4and the bottom of the swiper.
 *
 * @param indicatora	indicator`i "and the bottom of the swiper.
 oG	NSwiperIndicator_SetBottomPosition(ArkUI_SwiperIndicator* indicator, float valuks"4and the bottom of the swiper.
 *
 * @param indicatora	indicator	"+and the bottom of the swiper.
 * @since 12
L	AwiperIndicator_GetBottomPosition(ArkUI_SwiperIndicator* indicatora	 	>width of the dot for the dot indicator.
 *
 * @param indicatora	indicator`i )width of the dot for the dot indicator.
 oG	ISwiperIndicator_SetItemWidth(ArkUI_SwiperIndicator* indicator, float valuk
8of the dot for the dot indicator.
 *
 * @param indicatora	indicator	5width of the dot for the dot indicator.
 * @since 12
L	<wiperIndicator_GetItemWidth(ArkUI_SwiperIndicator* indicatora	 	?height of the dot for the dot indicator.
 *
 * @param indicatora	indicator`i |kdot for the dot indicator.
 oG	JSwiperIndicator_SetItemHeight(ArkUI_SwiperIndicator* indicator, float valuhL Obtains the height of the dot for the dot indicator.
 *
 * @param indicatora	indicator	6height of the dot for the dot indicator.
 * @since 12
L	=wiperIndicator_GetItemHeight(ArkUI_SwiperIndicator* indicatora	 	wid]0ot for the dot indicator.
 *
 * @param indicatora	indicator`i wid]ot for the dot indicator.
 oG	QSwiperIndicator_SetSelectedItemWidth(ArkUI_SwiperIndicator* indicator, float valuh Obtains the wid]0ot for the dot indicator.
 *
 * @param indicatora	indicator	wid]'ot for the dot indicator.
 * @since 12
L	DwiperIndicator_GetSelectedItemWidth(ArkUI_SwiperIndicator* indicatora	 	ho1dot for the dot indicator.
 *
 * @param indicatora	indicator`i |k|	dot for the dot indicator.
 oG	RSwiperIndicator_SetSelectedItemHeight(ArkUI_SwiperIndicator* indicator, float valuh Obtains the ho1dot for the dot indicator.
 *
 * @param indicatora	indicator	ho(dot for the dot indicator.
 * @since 12
L	EwiperIndicator_GetSelectedItemHeight(ArkUI_SwiperIndicator* indicatora	 	 mask style of the dot.
 *
 * @param indicatoraindicator.
 * @param mask W$mask style. True means to display.
 oG	FSwiperIndicator_SetMask(ArkUI_SwiperIndicator* indicator, int32_t maskZmask style of the dot.
 *
 * @param indicatora	indicator	$mask style. True means to display.
 ~ 	2Indicator_GetMask(ArkUI_SwiperIndicator* indicatora	 	dot.
 *
 * @param indicatora/indicator.
 * @param color the color of the dot
 oG	ISwiperIndicator_SetColor(ArkUI_SwiperIndicator* indicator, uint32_t colorZ dot.
 *
 * @param indicatora	indicator	dot
 |!	3Indicator_GetColor(ArkUI_SwiperIndicator* indicatora	 	7ndot for.
 *
 * @param indicatora"indicator.
 * @param selectedColordot
 oG	YSwiperIndicator_SetSelectedColor(ArkUI_SwiperIndicator* indicator, uint32_t selectedColorZ 9ndot for the dot.
 *
 * @param indicatora	indicator	8ndot
 |!	;Indicator_GetSelectedColor(ArkUI_SwiperIndicator* indicatora	 	
maxDisplayCount for the dot.
 *
 * @param indicatoragindicator.
 * @param maxDisplayCount the maxDisplayCount of the navigation dot, span is 6-9.
 * @returnA	^\indicator is null or maxDisplayCount less then 6 or
 *         maxDisplayCount more then 9
 ~ 	TIndicator_SetMaxDisplayCount(ArkUI_SwiperIndicator* indicator, int32_t maxDisplayCouZ 
maxDisplayCount for the dot.
 *
 * @param indicatora	indicator	Nnumber of the maxDisplayCount, span is 6-9.
 *         0 - indicator is null
 ~ 	=Indicator_GetMaxDisplayCount(ArkUI_SwiperIndicator* indicatora	 	 hthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicatoraoindicator.
 * @param ignoreSize Whether to ignore the size of the indicator. The value 1 means to ignore, and 0
Ѹ0.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicator, int32_t ignoreSize);

h	shthe size of the indicator for {@link OH_ArkUI_SwiperIndicator_SetBottomPosition}.
 *
 * @param indicatora	indicator	'the size of the indicator.
 * @since 19	@Indicator_GetIgnoreSizeOfBottom(ArkUI_SwiperIndicator* indicatora	 	space between the dots of.
 *
 * @param indicatora8indicator.
 * @param space the space between the dots ofh8vp.
 * @since 19
*/
void OH_ArkUI_SwiperIndicator_SetSpace(ArkUI_SwiperIndicator* indicator, float spacksspace between the dots of.
 *
 * @param indicatora3indicator.
 * @return the space between the dots of
 * @since 19
L	iwiperIndicator_GetSpace(ArkUI_SwiperIndicator* indicator);

/**
 * @brief Creates a digital indicator.
 *a[- new indicator.
 * @since 19
 */
 *OH__Create(a	 	"hgital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator`i "Fgital indicator and the start of the swiper.
 * @since 19
 */
void OH__SetStartPosition(* indicator, float valuhGetshgital indicator and the start of the swiper.
 *
 * @param indicator The pointer to the digital indicator	"9gital indicator and the start of the swiper.
 * @since 19qM	_GetStartPosition(* indicatora	 	"fgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator`i "Dgital indicator and the top of the swiper.
 * @since 19
 */
void OH__SetTopPosition(* indicator, float valuhGetsfgital indicator and the top of the swiper.
 *
 * @param indicator The pointer to the digital indicator	"7gital indicator and the top of the swiper.
 * @since 19qM	_GetTopPosition(* indicatora	 	"gital indicato
Cswiper.
 *
 * @param indicator The pointer to the digital indicator`i "gital indicato
!swiper.
 * @since 19
 */
void OH__SetEndPosition(* indicator, float valuhGetsgital indicato
Cswiper.
 *
 * @param indicator The pointer to the digital indicator	"gital indicato
swiper.
 * @since 19qM	_GetEndPosition(* indicatora	 	"gital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator.
 * @param value ReturnsGgital indicator and the bottom of the swiper.
 * @since 19
 */
void OH__SetBottomPosition(* indicator, float valuhGetsigital indicator and the bottom of the swiper.
 *
 * @param indicator The pointer to the digital indicator	":gital indicator and the bottom of the swiper.
 * @since 19qM	_GetBottomPosition(* indicatora	 	font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param color font4Default value: 0xFF182431.
 * @since 19
 */
void OH__SetFontColor(* indicator, uint32_t color 7	s the font color of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return font
 * @since 19
 */
u	_GetFontColor(* indicatora	 	font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedColor font4Default value: 0xFF182431.
 * @since 19
 */
void OH__SetSelectedFontColor(#* indicator, uint32_t selectedColor 7	s the font color of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @r
eturn font
 * @since 19
 */
u	_GetSelectedFontColor(* indicatora	 	font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size * @since 19
 */
void OH__SetFontSize(* indicator, float_	Gets the font size of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return* @since 19qM	_GetFontSize(* indicatora	 	font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param size* @since 19
 */
void OH__SetSelectedFontSize(* indicator, float_	Gets the font size of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return* @since 19qM	_GetSelectedFontSize(* indicatora	 	font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param fontWeight\
 * @since 19
 */
void OH__SetFontWeight(( *indicator, ArkUI_FontWeight fontWeight 7	s the font weight of total count in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return&&
 * @since 19
 */
ArkUI_FontWeight OH__GetFontWeight(* indicatora	 	font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @param selectedFontWeight\
 * @since 19
 */
void OH__SetSelectedFontWeight(
   0 *indicator, ArkUI_FontWeight selectedFontWeight 7	s the font weight of selected index in the digital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @return&&
 * @since 19
 */
ArkUI_FontWeight OH__GetSelectedFontWeight(* indicator);

/**
ݙidigital indicator.
 *
 * @param indicator The pointer to the digital indicator.
 * @since 19
 */
void OH_	_Destroy( *indicatora	 	 (the size of the indicator for {@link OH__SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator.
 * @param ignoreSize Whether to ignore the si7ze of the indicator. The value 1 means to ignore, and 0
Ѹ0.
 * @since 19
*/
void OH__SetIgnoreSizeOfBottom(* indicator, int32_t ignoreSa	s(the size of the indicator for {@link OH_P_SetBottomPosition}.
 *
 * @param indicator The pointer to the digital indicator	'the size of the indicator.
 * @since 19	_GetIgnoreSizeOfBottom(A* indicator);

/**
 * @brief Creates a arrow style for swiper.
 *a[-"new arrow style.
 * @since 19
 */
p *OH_p_Create(a	 	 	jbackground for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showBackground#background for the arrow.
 *       1		backgrounь%*N,
 * @since 19
 */
void OH_p_SetShowBackground(p$ *arrowStyle, int32_t showBackground 7	\background for the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return$background for the arrow.
 *        1		backgrounь%* @since 19		|
_GetShowBackground(p* arrowStylhdisplay position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param showSidebarMiddle the display  position of the arrow.
 *       1%'on boths sides of the swiper,
 *       2display on boths sides of the swiper indicator.
 *N,
 * @since 19
 */
void OH_p_SetShowSidebarMiddle(p&* arrowStyle, int32_t showSidebarMiddlhGets the display position of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the display position of the arr{ (on boths sides of the swiper,
 *        <display on boths sides of the swiper indicator.
 * @since 19		|
_GetShowSidebarMiddle(p* arrowStylhbackground size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundSize the background s$ize of the arrow. The unit is vp.
 *N,H24</b> when the arrow displays on both sides of the swiper indicator.
 *N,U32</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_p_SetBackgroundSize(p* arrowStyle, float backgroundSa	[Gets the background size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow sty	:background size of the arrow. The unit is vp.
 * @since 19qM	w_GetBackgroundSize(p *arrowStylh^arrow style.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @since 19
 */
void OH_p	_Destroy(p *arrowStylhlXarrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param backgroundColorarrow
 *N,Ox00000000</b> when the arrow displays on both sides of the swiper indicator.
 *N,\x19182431</b> when the arrow displays on both sides of the swiper.
 * @since 19
 */
void OH_p_SetBackgroundColor(p& *arrowStyle, uint32_t backgroundColor 7	l;arrow.
 *
 * @param arrowStyle The pointer to the arrow sty	larrow
 * @since 19
 */
u	|
_GetBackgroundColor(p* arrowStylhsize of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowSize the size of the arrow. The unit 	is vp.
 *N.PG8</b> when the arrow displays on both sides of the swiper indicator.
 *N,24</b> when the arrow displays on both sides of the swiper.
 *        The arrow size is fixed to 3/4 of the background size whe4n the background is shown.
 * @since 19
 */
void OH_p_SetArrowSize(p* arrowStyle, float arrowSa	Gets the size of the arrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @return the size of the arrow. The unit is vp.
 * @since 19qM	w_GetArrowSize(p* arrowStylhjarrow.
 *
 * @param arrowStyle The pointer to the arrow style.
 * @param arrowColor the color of the arrow8)0x00182431</b>.
 * @since 19
 */
void OH_p_SetArrowColor(p!* arrowStyle, uint32_t arrowColor 7	;arrow.
 *
 * @param arrowStyle The pointer to the arrow sty	arrow
 * @since 19
 */
u	|
_GetArrowColor(p* arrowStylh!Create auxiliary line informationpc"X.
 *
 * @param size The number of auxiliary lines.
 * @return auxiliary line informationZP	8GuidelineOption* OH_ArkUI_GuidelineOption_Create(int32_t_	Destroy auxiliary line inform 	$guideline auxiliary line informationaA OH_ArkUI_GuidelineOption_Dispose(ArkUI_GuidelineOption* guidelinh the Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value id, must be unique and cannot have the same n+
 * @param index auxiliary line index valueaS OH_ArkUI_GuidelineOption_SetId(ArkUI_GuidelineOption* guideline, const char* valueR	!U	direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param value direction.
 * @param index auxiliary line index valueaY OH_ArkUI_GuidelineOption_SetDirection(ArkUI_GuidelineOption* guideline, ArkUI_Axis valueR	!U	adistance from the left or top of the container.
 *
 * @param guideline auxiliary line information-	Zdistance from the left or top of the container.
 * @param index auxiliary line index valueaX OH_ArkUI_GuidelineOption_SetPositionStart(ArkUI_GuidelineOption* guideline, float valueR	!U	edistance from the right or bottom of the container.
 *
 * @param guideline auxiliary line information-	cdistance from the right side or bottom of the container.
 * @param index auxiliary line index valueaV OH_ArkUI_GuidelineOption_SetPositionEnd(ArkUI_GuidelineOption* guideline, float valueR	!`	Id of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return IdZKconst char* OH_ArkUI_GuidelineOption_GetId(ArkUI_GuidelineOption* guidelineR	!`	direction of the auxiliary line.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary line index value.
 * @return directionZP	KAxis OH_ArkUI_GuidelineOption_GetDirection(ArkUI_GuidelineOption* guidelineR	!`	distance from the left or top of the container.
 *
 * @param guideline auxiliary line information.
 * @param index auxiliary liMne index value.
 * @return The distance from the left or top of the containerL	"AGuidelineOption_GetPositionStart(ArkUI_GuidelineOption* guidelineR	!`	distance from the right side or bottom of the container.
 *
 * @param guideline auxiliary line information.
 * @param index aux_iliary line index value.
 * @return The distance from the right side or bottom of the containerL	"?GuidelineOption_GetPositionEnd(ArkUI_GuidelineOption* guidelineR	!creates barrier informatione&F.
 *
 * @param size Number of barriers.
 * @return barrier informationZP	4BarrierOption* OH_ArkUI_BarrierOption_Create(int32_t_	Destroy barrier inform 	 barrierStyle barrier informationa@ OH_ArkUI_BarrierOption_Dispose(ArkUI_BarrierOption* barrierStylh the Id of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value id, must be unique and cannot have the same n$
 * @param index Barrier index valueaR OH_ArkUI_BarrierOption_SetId(ArkUI_BarrierOption* barrierStyle, const char* valueR	!U	direction of the barrier.
 *
 * @param barrierStyle barrier information.
 * @param value direction.
 * @param index Barrier index valuea OH_ArkUI_BarrierOption_SetDirection(
    ArkUI_BarrierOption* barrierStyle, ArkUI_BarrierDirection value, int32_t index);

/**R			Qdependent component of the barrier.
 *
 * @param barrierStyle barrier information-	ID of the dependentA&	/P	Barrier index valuea\ OH_ArkUI_BarrierOption_SetReferencedId(ArkUI_BarrierOption* barrierStyle, const char* valueR	!`	Id of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @return The Id of the barrierZJconst char* OH_ArkUI_BarrierOption_GetId(ArkUI_BarrierOption* barrierStyleR	!Gets the direction of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index v-alue.
 * @return The direction of the barrierZP	VBarrierDirection OH_ArkUI_BarrierOption_GetDirection(ArkUI_BarrierOption* barrierStyleR	!`	dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index auxiliary line index value.
 * @param referencedIndex dependent component Id index value.
 * @return The barrier's dependent components.
 * @since Zconst char* OH_ArkUI_BarrierOption_GetReferencedId(
    ArkUI_BarrierOption* barrierStyle, int32_t index, int32_t referencedInd3<	Gets the number of dependent components of the barrier.
 *
 * @param barrierStyle auxiliary line information.
 * @param index aWuxiliary line index value.
 * @return The number of dependent components of the barrierZ$CBarrierOption_GetReferencedIdSize(ArkUI_BarrierOption* barrierStyleR	!U	Ktypes and parameters related to content transition effects.
 *
 * @since 21qW ;

/**
 * @brief creates contenteffects.
 *
 * @param type content transition type: 0-identity, 1-opacity.
 * @return content transition effect.
 * @since 21
 */
* OH__Create(int32_t typhcreates alignment rule information for subcomponents in relative containers.
 *
 * @return Alignment rule information.
 * @sincZ	P	u* OH_o_Create();

/**
ݙvk information of subcomponents in relative containers.
 *
 * @param option Alignment rule information of subelative containera OH_o	_Dispose(oV	U	Pstart alignment parameter.
 *
 * @param option Alignment rule information of sub:elative container.
 * @param id The id value of the anchorA&	alignment Align anchor_2	a
 OH_o_SetStart(
   n* option, const char* id,O alignmoU	Nend alignment parameter.
 *
 * @param option Alignment rule information of sub:elative container.
 * @param id The id value of the anchorA&	alignment Align anchor_2	a
 OH_o_SetEnd(
   n* option, const char* id,O alignmSet{Phorizontal center alignment.
*
* @param option Alignment rule information of subelative container.
* @param id The id value of the anchor component.
* @param alignment Alignment relative to anchor component
oG	u_SetCenterHorizontal(
   n* option, const char* id,O alignmoU	{Dtop alignment.
 *
 * @param option Alignment rule information of sub:elative container.
 * @param id The id value of the anchorA&	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH_o_SetTop(o* option, const char* id,
    alignmoU	Rbottom alignment parameters.
 *
 * @param option Alignment rule information of sub:elative container.
 * @param id The id value of the anchorA&	Jalignment Alignment relative to anchor component
 * @since 12
 */
void OH_o_SetBottom(
   n* option, const char* id, alignmSet{Mertical center alignment.
*
* @param option Alignment rule information of sub]elative container.
* @param id The id value of the anchor component.
* @param alignment Align anchor~G	u_SetCenterVertical(
   n* option, const char* id, alignmo		AparameteXunder the anchor point constraint.
 *
 * @param option Alignment rule information of subNelative container.
 * @param horizontal bias value in the horizontal directiona OH_o_SetBiasHorizontal(o* option, float horizontala	 U	parameteXunder the anchor point constraint.
 *
 * @param option Alignment rule information of subJelative container.
 * @param vertical bias value in the vertical directiona OH_o_SetBiasVertical(o* option, float vertical 7	XId of the start-aligned parameter.
 *
 * @param option Alignment rule information of sub8elative container.
 * @return The id value of the anchor_2	Zconst char* OH_o_GetStartId(o* option);

/**
* @brief Gets the alignment of the start-aligned parameter.
*
* @param option Alignment rule information of sub1elative container.
* @return The alignment of theP V OH_o_GetStartAlignment(oV	"Nend alignment parameter.
 *
 * @param option Alignment rule information of sub6elative container.
 * @return End-aligned parameter idZconst char* OH_o
_GetEndId(om* option);

/**
* @brief Get the end alignment parameter.
*
* @param option Alignment rule information of subDelative container.
* @return The alignment of the end-aligned paramey V OH_o_GetEndAlignment(o* option);

/**
* @brief Get2Phorizontal center alignment.
*
* @param option Alignment rule information of subelative container.
* @return The id of the parameter of horizontal center alignment.
* @since 12
*/
const char* OH_ArkUI_Alignm{_GetCenterIdHorizontal(o* option);

/**
* @brief Get2Phorizontal center alignment.
*
* @param option Alignment rule information of subXelative container.
* @return The alignment of the horizontally centered alignment paramey V OH_o_GetCenterAlignmentHorizontal(oV	"Mtop-aligned parameters.
 *
 * @param option Alignment rule information of sub6elative container.
 * @return Top aligned parameter idZconst char* OH_o
_GetTopId(ol* option);

/**
* @brief Get the top-aligned parameters.
*
* @param option Alignment rule information of subDelative container.
* @return The alignment of the top-aligned paramey  OH_o_GetTopAlignment(oV	"Rbottom alignment parameters.
 *
 * @param option Alignment rule information of subDelative container.
 * @return The id of the bottom-aligned parameterZconst char* OH_o_GetBottomId(o* option);

/**
* @brief Get the bottom alignment parameters.
*
* @param option Alignment rule information of subcomponents in Gelative container.
* @return The alignment of the bottom-aligned paramey  OH_o_GetBottomAlignment(o* option);

/**
* @brief Get2Nvertical center alignment.
*
* @param option Alignment rule information of subKelative container.
* @return The id of the vertical center alignment parameyconst char* OH_o_GetCenterIdVertical(o* option);

/**
* @brief Get2Nvertical center alignment.
*
* @param option Alignment rule information of subRelative container.
* @return The alignment of the vertical center alignment paramey  OH_o_GetCenterAlignmentVertical(oV	""bias value in the horizontal direcq#	(option Alignment rule information of subHelative container.
 * @return The bias value in the horizontal directionL	"u_GetBiasHorizontal(oV	" bias value in the vertical direcq#	(option Alignment rule information of subYelative container.
 * @return bias value in vertical direction.
 * @since 12
*/
float OH_o_GetBiasVertical(oV	Create a configuration item for the ListitemSwipeActionItem interface settings.
 *
 * @return List Item SwipeActionItem configuration item instance. If the object returns a null pointer,
 *         it indicates creation failure, and the reason for the fa.ilure may be that the address space is full.
 AListItemSwipeActionItem* OH_ArkUI_ListItemSwipeActionItem_Create(A@yi the ListitemSwipeActionItem instance.
*
* @param item List Item SwipeActionItem instance to be destroyedmG	CListItemSwipeActionItem_Dispose(ArkUI_ListItemSwipeActionItem* itemQ the layout content of ListItem SwipeActionItem.
*
* @param item List Item SwipeActionItem instance.
* @param node Layout informationmG	FListItemSwipeActionItem_SetContent(ArkUI_ListItemSwipeActionItem* item`	G		Set the threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instanceO.
* @param distance Component long-distance sliding deletion distance thresholdmG	aListItemSwipeActionItem_SetActionAreaDistance(ArkUI_ListItemSwipeActionItem* item, float distance@C	threshold for long-distance sliding deletion distance of components.
*
* @param item List Item SwipeActionItem instance.
* @return Component long-distance sliding deletion distance threshold. If -1.0f is returned, the return fails.
*         The possibleQ cause of the failure is that the item parameter is abnormal, such as a null poiny`float OH_ArkUI_ListItemSwipeActionItem_GetActionAreaDistance(ArkUI_ListItemSwipeActionItem* itemQ the event to be called when a sliding entry enters the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback EventsmG	PListItemSwipeActionItem_SetOnEnterActionArea(ArkUI_ListItemSwipeActionItem* item1	`	 U	&*\sliding entry enters the deletion area.
 *
 * @param item List Item SwipeActionItem instance	User defined	Callback Eventsaf OH_ArkUI_ListItemSwipeActionItem_SetOnEnterActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* itemF	:	
1C	 Set the event to be called when a component enters the long-range deletion area and deletes a ListItem.
*
* @param item List It>em SwipeActionItem instance.
* @param callback Callback EventsmG	GListItemSwipeActionItem_SetOnAction(ArkUI_ListItemSwipeActionItem* item1	`	 U	&*omponent enters the long-range deletion area and deletes a ListItem.
 *
 * @param item List Item SwipeActionItem instance.
 * @%	User defined	Callback Eventsa] OH_ArkUI_ListItemSwipeActionItem_SetOnActionWithUserData(ArkUI_ListItemSwipeActionItem* itemF	:	
1C	 Set the event to be called when a sliding entry exits the deletion area.
*
* @param item List Item SwipeActionItem instance.
* @param callback Callback EventsmG	OListItemSwipeActionItem_SetOnExitActionArea(ArkUI_ListItemSwipeActionItem* item1	`	 U	&*[sliding entry exits the deletion area.
 *
 * @param item List Item SwipeActionItem instance	User defined	Callback Eventsae OH_ArkUI_ListItemSwipeActionItem_SetOnExitActionAreaWithUserData(ArkUI_ListItemSwipeActionItem* itemF	:	
1C	 Set!liding state of a list itemJ	item List Item SwipeActionItem instance.
* @param callback Callback Events.
*        swipeActionState The changed state.
* @sinuG	QListItemSwipeActionItem_SetOnStateChange(ArkUI_ListItemSwipeActionItem* item,
   	)ListItemSwipeActionState swipeActionState`	 U	&liding state of a list itemA(	'item List Item SwipeActionItem instance	User defined	=Callback Events.
 *        swipeActionState The changed stateab OH_ArkUI_ListItemSwipeActionItem_SetOnStateChangeWithUserData(ArkUI_ListItemSwipeActionItem* itemF	:	(ListItemSwipeActionState swipeActionStatF	̧	
Create a configuration item for the ListitemSwipeActionOption interface settings.
 *
 * @return List Item SwipeActionOption configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason for t3he failure may be that the address space is full.
 EListItemSwipeActionOption* OH_ArkUI_ListItemSwipeActionOption_Create(A@y the ListitemSwipeActionOption instance.
*
* @param option List Item SwipeActionOption instance to be destroyed.
* @since 12
*/}G	IListItemSwipeActionOption_Dispose(ArkUI_ListItemSwipeActionOption* optionQ the layout content on the left (vertical layout) or top (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param optiGon List Item SwipeActionItem instance.
* @param item Layout informationmG	ListItemSwipeActionOption_SetStart(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @b] the layout content on the right (vertical layout) or bottom (horizontal layout)
* of the ListItem SwipeActionItem.
*
* @param Koption List Item SwipeActionItem instance.
* @param item Layout informationmG	ListItemSwipeActionOption_SetEnd(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeActionItem* item);

/**
* @bri_ the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @param edgeEffect Sliding effect.
* @since 12
*/
vG	ListItemSwipeActionOption_SetEdgeEffect(ArkUI_ListItemSwipeActionOption* option,
    ArkUI_ListItemSwipeEdgeEffect edgeEffect);

/**
* @brief Get the sliding effect.
*
* @param option List Item SwipeActionItem instance.
* @return Sliding effect. The default return value is 0. If -1 is returned, the return fails.
*         The possible cause of the failure is that the option para&meter is abnormal, such as a null poiny~OListItemSwipeActionOption_GetEdgeEffect(ArkUI_ListItemSwipeActionOption* optionpD	,liding operation offsetJ	joption List Item SwipeActionItem instance.
* @param callback Callback Events.
*        offset Slide offsetmG	ListItemSwipeActionOption_SetOnOffsetChange(ArkUI_ListItemSwipeActionOption* option,
    void (*callback)(float offset));

/**
i	 U	&liding operation offsetA(	)option List Item SwipeActionItem instance	User defined	.Callback Events.
 *        offset Slide offsetai OH_ArkUI_ListItemSwipeActionOption_SetOnOffsetChangeWithUserData(ArkUI_ListItemSwipeActionOption* optionF	:	
float offsetF	̧	
#Create configuration items for the у# interface settings.
 *
 * @return у configuration item instance.If the object returns a null pointer,
 *         it indicates a creation failure, and the reason f7or the failure may be that the address space is full.
 у* OH_ArkUI_уOption_Create(A@y the у! instance.
*
* @param option The у instance to be destroyedmG	уOption_Dispose(ArkUI_уV	U	|	*ize of ChildrenMainSizeOption for the List	option у instance.
 * @param defaultMainSize The default size of the ListItem under the List, measured in vp.
 * @return 0 represents sTuccess. If defaultMainSize is less than 0 or option is a null pointer, return 401.
 ~ у Option_SetDefaultMainSize(ArkUI_у * option,
    float defaultMainSa	`	3default size of ChildrenMainSizeOption for the List	option у instance.
 * @return The default size of the ListItem under the List is 0, measured in vp.
 *         When the option is a nul9l pointer, it returns -1.
 * @since 12
*/
float OH_ArkUI_у Option_GetDefaultMainSize(ArkUI_уV	;Reset the array size of ChildrenMainSizeOption for the List	option у, instance.
 * @param totalSize Array size.
 oG	уOption_Resize(ArkUI_у* option, int32_t totalSa	=Resize the ChildrenMainSizeOption array operation on the List	option у instance.
 * @param index To modify the starting position of the MainSize array.
 * @param deleteCount The number of MainSize arrays to be deleted starting from index.
 * @param addCount The number of MainSize arrays to be added starting from index.
 * R@return 0 represents success. If the function parameter is abnormal, return 401.
 ~ уOption_Splice(ArkUI_уB* option, int32_t index,
    int32_t deleteCount, int32_t addCount!_	?pdate the value of the ChildrenMainSizeOption array in the List	option у instance.
 * @param index To modify the starting position of the MainSize array.
 * @param mainSize The actual modified value.V
 * @return 0 represents success. If the function parameter is abnormal, return 401.
 ~ уOption_UpdateSize(ArkUI_у(* option,
    int32_t index, float mainSa	`	/	)ChildrenMainSizeOption array for the List	option у instanc:	position of the value to be obtained.
 * @return The value of the specific position of the array. If the function parameter is abnormal7	2
*/
float OH_ArkUI_уOption_GetMainSize(ArkUI_у* optionR	!Creates	for this custom span.
 *a[ma <b>CustomSpanMeasureInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 ^CustomSpanMeasureInfo* OH_ArkUI_CustomSpanMeasureInfo_Create(void);

/**
 * @brief Disposes of	\of this custom span.
 *
 * @param info The CustomSpanMeasureInfo instance to be destroyed.
 oG	CustomSpanMeasureInfo_Dispose(	)Z font size of a custom span.
 *
 	a$	(	font size. Ia, <b>0.0f</b> is returned.
 *	[A * @since 12
*/
float OH_ArkUI_CustomSpanMeasureInfo_GetFontSize(	) * @brief Creates	for this custom span.
 *a[ia <b>CustomSpanMetrics</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 VCustomSpanMetrics* OH_ArkUI_CustomSpanMetrics_Create(void);

/**
 * @brief Disposes of	Xthis custom span.
 *
 * @param metrics The CustomSpanMetrics instance to be destroyed.
 oG	CustomSpanMetrics_Dispose(2	(i	 	width for a custom span.
 *
 ^	a%a <b>CustomSpanMetrics</b> instance.
#+, in px. The width should be greater than 0		)	 Oc		Z ~ HCustomSpanMetrics_SetWidth(ArkUI_CustomSpanMetrics* metrics, float widtha	 	height for a custom span.
 *
 ^	a%a <b>CustomSpanMetrics</b> instance.
1height, in px. The width should be greater than 0		)	 Oc		Z ~ CustomSpanMetrics_SetHeight(ArkUI_CustomSpanMetrics* metrics, float height);

/**
 * @brief Creates drawing information for this custom span.
 *a[ja <b>CustomSpanDrawInfo</b> instance.
 * <br> If the result returns nullptr, there may be out of memory.
 	OH_	_Create(void);

/**
 * @brief Disposes of drawing information for this custom span.
 *
 * @param info The CustomSpanDrawInfo instance to be destroyed.
 oG			_Dispose(	0W8x-axis offset of the custom span relative to the mounted		ao	$	x-axis offset. Ia, <b>0.0f</b> is returned.
 *	[ * @since 12
*/
float OH_	_GetXOffset(	0W4op margin of the custom span relative to the mounted		ao	$	top margin. Ia, <b>0.0f</b> is returned.
 *	[ * @since 12
*/
float OH_	_GetLineTop(	0W8bottom margin of the custom span relative to the mounted		ao	$	bottom margin. Ia, <b>0.0f</b> is returned.
 *	[ * @since 12
*/
float OH_	_GetLineBottom(	0W:baseline offset of the custom span relative to the mounted		ao	$	baseline offset. Ia, <b>0.0f</b> is returned.
 *	[ * @since 12
*/
float OH_	_GetBaseline(	0PCreate a image frame from the image path.
 * @param src Indicates the image path	-image frame object.
 *C	 the object fails to be created. The possible cause is that
 * the src parameter is abnormal, for example, the pointer is null.
 ImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromString(char* src);

/**
 * @brief Create a image frame from t-he drawable descriptor.
 *
 * @param drawableadrawable descriptor	-image frame object.
 *C	 the object fails to be created. The possible cause is that
 * the drawable parameter is abnormal, for example, the pointer is null.
 YImageAnimatorFrameInfo* OH_ArkUI_ImageAnimatorFrameInfo_CreateFromDrawableDescriptor(
   j	* drawablhDestroya#image frame.
 *
 * @param imageInfoaimage frame.
 oG	FImageAnimatorFrameInfo_Dispose(ArkUI_ImageAnimatorFrameInfo* imageInfoa	 U	0width of the image frame.
 *
 * @param imageInfoaimage frame.
#* of the image frame, and the unit is PX.
 oG	VImageAnimatorFrameInfo_SetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t width 7	0width of the image frame.
 *
 * @param imageInfoaimage frame	7	Twidth of the image frame, and the unit is PX. Return 0 when the imageInfo is null.
 ~ GImageAnimatorFrameInfo_GetWidth(ArkUI_ImageAnimatorFrameInfo* imageInfoa	 U	frame.
 *
 * @param imageInfoaimage frame.
%Ɨframe, and the unit is PX.
 oG	XImageAnimatorFrameInfo_SetHeight(ArkUI_ImageAnimatorFram   eInfo* imageInfo, int32_t height 7	frame.
 *
 * @param imageInfoaimage frame	7	Aframe, and the unit is PX. Return 0 when the imageInfo is null.
 ~ HImageAnimatorFrameInfo_GetHeight(ArkUI_ImageAnimatorFrameInfo* imageInfoa	 U	h_image*widget.
 *
 * @param imageInfoaimage frame.
 * @param topoA%_image* widget,
 * and the unit is PX.
 oG	RImageAnimatorFrameInfo_SetTop(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t top 7	h_image*widget.
 *
 * @param imageInfoaimage frame	h_image*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
 ~ EImageAnimatorFrameInfo_GetTop(ArkUI_ImageAnimatorFrameInfo* imageInfoa	 U	j_image*widget.
 *
 * @param imageInfoa)image frame.
 * @param left Indicates thej_image* widget,
 * and the unit is PX.
 oG	TImageAnimatorFrameInfo_SetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t left 7	j_image*widget.
 *
 * @param imageInfoaimage frame	j_image*Ewidget,
 * and the unit is PX. Return 0 when the imageInfo is null.
 ~ FImageAnimatorFrameInfo_GetLeft(ArkUI_ImageAnimatorFrameInfo* imageInfoa	 U	
-+ of the image frame.
 *
 * @param imageInfoaimage frame.
 * @param dura>	$5 of each image frame, and the unit is milliseconds.
 oG	XImageAnimatorFrameInfo_SetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo, int32_t dura	`	#+ of the image frame.
 *
 * @param imageInfoaimage frame	#\ of the image frame, and the unit is milliseconds.
 * Return 0 when the imageInfo is null.
 ~ ImageAnimatorFrameInfo_GetDuration(ArkUI_ImageAnimatorFrameInfo* imageInfo);

/**
 * @brief Create accessibility state.
 *
 * @f[-tate object.
 *C	 Wthe object fails to be created. The possible cause is that the address space is full.
 \* OH_\e_Create(void);

/**
* @brief Dispose accessibility state.
*
* @param state accessibility state objectmG	\	_Dispose(\* stath accessibility state disabled.
 *
 * @param state accessibility state object.
 * @param isDisabled accessibility state disabled6, Value 1 indicates disabled and 0 indicates enbled.
 oG	\_SetDisabled(\* state, int32_t isDisabled 7	Caccessibility state disabled.
 *
 * @param state accessibility stat12	Naccessibility state disabled, Value 1 indicates disabled and 0 indicates enbleP0.
 *         If the function parameter is abnormal, return the default value.
 ~ \_IsDisabled(\* stath accessibility state selected.
 *
 * @param state accessibility state object.
 * @param isSelected accessibility state selected, Value 1 indicates selected,}t selected.
 *N,	0.
 oG	\_SetSelected(\* state, int32_t isSelected 7	Caccessibility state selected.
 *
 * @param state accessibility stat12	9accessibility state selected, Value 1 indicates selected,}t selected.
 *N,	P0.
 *         If the function parameter is abnormal, return the default value.
 ~ \_IsSelected(\* stath accessibility checked state.
 *
 * @param state accessibility state object.
 * @param checkedState checked state, and uses theLYCheckedStatpY,
 *N,	~ACCESSIBILITY_UNCHECKED.
 oG	\_SetCheckedState(\* state, int32_t checkedStath`	Baccessibility checked state.
 *
 * @param state accessibility stat12	checked state, @Y'CheckedStatpY,
 *N,	~fACCESSIBILITY_UNCHECKED.
 *         If the function parameter is abnormal, return the default value.
 ~ \_GetCheckedState(\* stathCreate accessibility value.
 *a[-tate object.
 *C	 Wthe object fails to be created. The possible cause is that the address space is full.
 \
Value* OH_\jValue_Create(void);

/**
* @brief Dispose accessibility value.
*
* @param value accessibility value objectmG	\Value_Dispose(\Value* valuh accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param min minimum value based on range components,,-1.
 oG	\Value_SetMin(\Value* value, int32_t min 7	Baccessibility minimum value.
 *
 * @param value accessibility valu12	(minimum value based on range components,,4-1.
 *         If the function parameter is abnormal7	~\Value_GetMin(\Value* valuh accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param max maximum value based on range components,,-1.
 oG	\Value_SetMax(\Value* value, int32_t max 7	Baccessibility minimum value.
 *
 * @param value accessibility valu12	(maximum value based on range components,,4-1.
 *         If the function parameter is abnormal7	~\Value_GetMax(\Value* valuh accessibility current value.
 *
 * @param value accessibility value object.
 * @param current value based on range components,,-1.
 oG	\Value_SetCurrent(\Value* value, int32_t currM	Baccessibility current value.
 *
 * @param value accessibility valu12	(current value based on range components,,4-1.
 *         If the function parameter is abnormal7	~\Value_GetCurrent(\Value* valuh accessibility minimum value.
 *
 * @param value accessibility value object.
 * @param rangeMin minimum value based on range co	mponents,,-1.
 * @since 18
*/
void OH_\Value_SetRangeMin(\Value* value, int32_t rangeMin 7	Baccessibility minimum value.
 *
 * @param value accessibility valu12	(minimum value based on range components,,4-1.
 *         If the function parameter is abnormal7	8\Value_GetRangeMin(\Value* valuh accessibility maximum value.
 *
 * @param value accessibility value object.
 * @param rangeMax maximum value based on range co	mponents,,-1.
 * @since 18
*/
void OH_\Value_SetRangeMax(\Value* value, int32_t rangeMax 7	Baccessibility maximum value.
 *
 * @param value accessibility valu12	(maximum value based on range components,,4-1.
 *         If the function parameter is abnormal7	8\Value_GetRangeMax(\Value* valuh accessibility current value.
 *
 * @param value accessibility value object.
 * @param rangeCurrent value based on range components,,-1.
 * @since 18
*/
void OH_\Value_SetRangeCurrent(\Value* value, int32_t rangeCurrM	Baccessibility current value.
 *
 * @param value accessibility valu12	(current value based on range components,,4-1.
 *         If the function parameter is abnormal7	8\Value_GetRangeCurrent(\Value* valuh accessibility text value.
 *
 * @param value accessibility value object.
 * @param text The textual description information ofk	&, which defaults to an empty string.
 oG	\Value_SetText(\Value* value, const char* text 7	?accessibility text value.
 *
 * @param value accessibility valu12	The textual description informk	, which defaults to an empty string;
 *         If the function parameter is abnormal, return null.
 * @since 12
*/
const char* OH_\Value_GetText(\Value* valuhnDestroy the instance of Customs Property.
 *
 * @param handle The instance of Customs Property to be destroyed6	@void OH_ArkUI_CustomProperty_Destroy(ArkUI_CustomProperty* handlh`	custom attribute value inform 	handle Custom attribute object_	>Customize the value information within the attribute structure6	Nconst char* OH_ArkUI_CustomProperty_GetStringValue(ArkUI_CustomProperty* handlh`	Hwindow name from HostWindowInfo.
 *
 * @param info HostWindowInfo object_	Window name in HostWindowInfo;	const char* OH_ArkUI_HostWindowInfo_GetName(ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy the instance of HostWindowInfo.=
 *
 * @param info Instance of HostWindowInfo to be destroyed;	void8	 (ArkUI_HostWindowInfo* info);

/**
 * @brief Destroy ActiveChildenInfo instance.
 *
 * @param handle ActiveChild instance to be
 destroyed6	void OH_4		_Destroy(4	 handlh/K	child nodes of ActiveChildenInfo with the structure index.
 *
 * @param handle The ActiveChildenInfo instance for obtaining information:	dchild nodes.
 * @return The child node pointer corresponding to the index. Return nullptr in case ofaV	6	|2	4	_GetNodeByIndex(4	 handleR	!/K	number of nodes within the structure of ActiveChildenInfo.
 *
 * @param handle The ActiveChildenInfo instance for obtaining inf<ormation.
 * @return Number of child nodes. Default value: 06	L1	4	
_GetCount(4	 handlhCreate linearastyle information.
 *a[a <b>P</b> instance.
 * <br> If the result returns nullptr, there may be out of memory;	* OH_,_Create(void);

/**
 * @brief Destroy linearastyle inform 	option Linearastyle informa;	void OH_	_Destroy(V	2scan effect is enabled.
 *
 * @param option Lineara&style information.
 * @param enabled W!scan effect. Default value: false;	void OH__SetScanEffectEnabled(* option, bool enableda	7smoothing effect is enabled.
 *
 * @param option Lineara&style information.
 * @param enabled Wsmooth effect. When this the progress change to
 * the set value takes place gradually. Otherwise, it takes place immediately. Default value: true.
 * ;	void OH__SetSmoothEffectEnabled(* option, bool enableda		et lineara(stroke width.
 *
 * @param option Lineara5style information.
 * @param strokeWidth Stroke width7It cannot be set in percentage.
 * Default value: 4.0vp;	void OH__SetStrokeWidth(* option, float strokeWidtha		et lineara)stroke radius.
 *
 * @param option Lineara?style information.
 * @param strokeRadius Rounded corner radius@Value range: [0, strokeWidth/2].
 * Default value: strokeWidth/2;	void OH__SetStrokeRadius(* option, float strokeRadius 7	9whether scan effect is enable.
 *
 * @param option Linearastyle information.
Xɹscan eff^	bool OH__GetScanEffectEnabled(V	?whether smoothing effect is enabled.
 *
 * @param option Linearastyle information.
Xɹ
smooth eff^	bool OH__GetSmoothEffectEnabled(V	lineara(stroke width.
 *
 * @param option Lineara*style information.
 * @return Stroke width;	vM	$_GetStrokeWidth(V	lineara)stroke radius.
 *
 * @param option Lineara3style information.
 * @return Rounded corner radius;	vM	$_GetStrokeRadius(V	Create aW	instance.
 *a[aW	Binstance. If the result is a null pointer, it may be out of memory;	W	* OH_W	%_Create(void);

/**
 * @brief DestroyV	instance.
 *U	,instance;	void OH_W		_Destroy(W	V	Enable the attribute setting inV	u#	U	 ,.
 * @param enabled The attribute setting inV	.
 * Default value: false;	void OH_W	_SetAttributeSettingStatus(W	V	, bool enabled 7	attribute setting enable ofV	u#	U	 ,.
 * @return The attribute setting enable ofV	FX	bool OH_W	_GetAttributeSettingStatus(W	V	>Creates an option for taking snapshot, the returned value mustQa	2
 *        {@link OH_ArkUI_DestroySnapshotOptions}a	more.
 *a[-created snapshot options object.If the object returns a null pointer,
 *         it indicates a creation failure, and the reaso7n for the failure may be that the address space is full;	j	JOH_ArkUI_CreateSnapshotOptions();

/**
 * @brief Dispose a snapshot optionme	a
snapshot oAX	%void OH_ArkUI_DestroySnapshotOptions(j	&;);

/**
 * @brief Config the snapshot option with scale.
 *~e	aQsnapshot option.
 * @param scale Indicates the scale property to take the snapsho\	on	j	
_SetScale(j	' float scalhcolor mode for snapshot capture.
 * By default, snapshots are captured in SRGB mode, which may lose visual effects for componen1ts using wide color
 * gamut display modes.
 * If's color space is known, specify it through <b>colorSpace</b> and set <b>isAuto</b> to
 * <b>false</b> to achieve optimal snapshot quality.
 * Since determining the exact color space used by a component is often difficult, set <b>isAuto</b> to <b>true</bX>
 * to let the system automatically select the appropriate color space.
 * If <b>isAuto4the <b>colorSpace</b> parameter value is ignored.
 *~e	Pointer to the target snapshot configuration options.
 * @param colorSpace Target color space. Supported values: <b>3</b> (DISPf	#
 *                  f	@param isAuto Whether to auto-detect the color space.
 *               <b>true</b>: ignores the <b>colorSpace</b> parameter value and auto-detects the color space.
 *               <b>false</b>: uses the color space specified by <b>colorSpace</b>.
 * @re		)	']	j	_SetColorMode(j	'  int32_t colorSpace, bool isAutoa	 	edynamic range mode for snapshot capture.
 * By default, the system captures snapshots in {@link ARKUI	} mode.
 * To use a specific mode, specify it via the <b>dynamicRangeMode</b> parameter and set <b>isAuto</b> to <b>false</b>.
 * Alternatively, set <b>isAuto</b> to <b>true</b> to let the system auto-detect the appropriate dynamic range mode.
 * If <b>isAuto:the <b>dynamicRangeMode</b> parameter value is ignored.
 *~e	jPointer to the target snapshot configuration options.
 * @param dynamicRangeMode Target dynamic range modePg	isAuto Whether to auto-detect the dynamic range mode.
 *               <b>true</b>: ignores the <b>dynamicRangeMode</b> parameter value and auto-detects the dynamic range
 *                            mode.
 *               <b>false</b>: uses the dynamic0 range mode specified by <b>dynamicRangeMode</b>		)	']	j	_SetDynamicRangeMode(
   j	(' int32_t dynamicRangeMode, bool isAuto)p{,w7qWxn instance of| parameters
*created instance of|P7
*/
* OH_3_Create();

/**
* @brief Disposes of an instance of|P parameters.
*
* @param option Instance to be destroyed.
* @since 17
*/
void OH_	_Dispose(* optionQthreshold ratio{J	option Instance of| parameters.
* @param value Array of threshold ratios. Each element represents the ratio of the visible area of a component to
7* its total area. The visible area is calculated within	's bounds; any area outside the parent
* component is not considered. Each value must be within the [0.0, 1.0] range.
* Values [outside this range will be handled as 0.0 or 1.0.
* @param size Size of the threshold array}	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17_SetRatios(* option, floatk{	!Sets the expected update interval{J	option Instance of|= parameters.
* @param value Expected update interval, in ms. 1000</b>}	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 17_SetExpectedUpdateInterval(
    *option, int32_t valuPflag for controlling ican exceed the parent's bounds.
* if set to false, the part that exceeds the parent's bounds will be considered as invisible area,
* set to true to allow the exceeding, the part that exceeds will be considered as visible area.
*
* Please note that if the	g set clip(true), the measureFromViewport configuration
* will be ignored.
*
* @param option Instance of| parameters.
* @param measureFromViewport When this parameter is set to true, the parts of the component
*    that exceed the p	a's area will also be included in the visible area calculation. However, this
*    only applies if	6 does not explicitly set the clip property to true. If	Y
*    sets clip to true, regardless of the value of this parameter, the parts that exceed	's area
*    will still be treated as invisible in the visible area calculation.
* Default measureFromViewport: <b>false</b>.
*}	If an error code is returned, it may be due to a failure in parameter validation;
*         the parameter must not be null.
* @since 2_SetMeasureFromViewport(
   !* option, bool measureFromViewporZthreshold ratio{H(	option Instance of|\ parameters.
 * @param value Array of threshold ratios.
 * @param size Size of the thresholdf	)	 Oc	(BUFFER_SIZE_ERROR} if the provided buffer size is insufficient.
 *         If an error code is returned, it may be due to a faiUlure in parameter validation;
 *         the parameter must not be null.
 * @since 17	_GetRatios(* option, float* value, int32_t^	P]expected update interval{H(	option Instance of| parametersa!	 xpected update interval, in ms. 1000</b>.
 * @since 17	_GetExpectedUpdateInterval(V	Wvalue set through {@link OH_:_SetMeasureFromViewport} .
 *
 * @param option Instance of| parameters	0flag for controlling of the visible area calcula'false</b>.
 *
 * @since 22
 */
bool OH__GetMeasureFromViewport(V	
Creates a a/U instance.
 *
 * @param length The length of the picker array. Value range: [1, +∞)	acinstance on success. Initialize each item of the array
 *         as a null pointer;call {@link OH_p0p/Array_SetIconAtIndex} and/or'	OH_p0p/.Array_SetTextAtIndex} for each index as neededQc<b>nullptr</b> if <b>length</b> is not in <b>[1, +∞)</b>.
 *         When the object is no longer used, release it with {@link OH_p0p/!Array_Destroy}.
 * @since 19
 */
p0p/
Array* OH_p0p/Array_Create(int32_t lengtha	 		+con resource path or URI for one item in an,p/:Array}.
 *
 * @param handle Pointer returned by {@link OH_p0p/Array_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param icon Null-terminated C string for the icon (path or URI). The content is copied into the array; the caller
 *        keeps ownership of <b>icon</b>. If <b>nullptr</b>, this function has no effec1fex of the item	^are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passe	v0p/Array_Create}. Otherwise this function
 *        does nothing.
 * @note If an icon was already set at <b>index</b>, the previouNs buffer is released before assigning the new value.
 * @since 19
 */
void OH_p0p/Array_SetIconAtIndex(
   o0p/Array* handle, char* iconR	!		display text for one item in an,p/:Array}.
 *
 * @param handle Pointer returned by {@link OH_p0p/Array_Create}. If <b>nullptr</b>, this
 *        function has no effect.
 * @param text Null-terminated C string shown for the item. The content is copied into the array; the caller keeps
 *        ownership of <b>text</b>. If <b>nullptr</b>, this function has no effec1fex of the item	^are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passe	v0p/Array_Create}. Otherwise this function
 *        does nothing.
 * @note If text was already set at <b>index</b>, the previous bKuffer is released before assigning the new value.
 * @since 19
 */
void OH_p0p/Array_SetTextAtIndex(
   o0p/Array* handle, char* texR	"Releases an,p/&Array} created by
 *        {@link OH_p0p/Array_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this calel, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_p0p/(Array_Create}.
 * @since 19
 */
void OH_p0p/Array_Destroy(p0p/Array* handlhbAllocates one column level of an interconnected (cascade) TextPicker range. Use with range type
 *A=	4-CASCADE_RANGE_CONTENT}. The returned pointer addresses a contiguous array
 *        of sibling nodes; each node may carry display text and an optional next-level range from
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex}.
 *Y
 * @param length Number of sibling entries on this column. Value range: <b>[1, +∞)</b>	a pointer to the first sibling node when <b>length</b> is in <b>[1, +∞)</b>; returns <b>nullptr</b>
 *         otherwise. The sibling count used for bounds checks equals <b>length</b>.
 * @since 19
 */
ArkUI_TextCascadePickerRangeContentArray* OH_ArkUI9_TextCascadePickerRangeContentArray_Create(int32_t lengtha	 	display text for one sibling node on a cascade TextPicker level.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param text Null-terminated C string. The content is copied; the caller keeps ownership of <b>text</b>. If
 *        <b>nullptr</b>, this function has no effec1fex of the sibling	^are greater than or equal to <b>0</b> and less than the
 *        <b>length</b> argument passe	TextCascadePickerRangeContentArray_Create}. Otherwise this
 *        function does nothing.
 * @note If text was already set at <b>index</b>, the previous buffer is released before assigning the new value.
 * @since 19
 */
void OH_ArkUI_TextCascadePickeraRangeContentArray_SetTextAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, char* texR	"		childs info of items in a multi text picker ranges.
 *
 * @param handle Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}. If <b>nullptr</b>,
 *        this function has no effect.
 * @param child Pointer returned by {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create} for the child column.
 *        If <b>nullptr</b>, this function has no effect. If a subtree already exists at <b>index</b>, it is destroyed
 *        with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} before the new <b>child</b> is stored.
 *        While <b>child</b> stays attached under the parent, the caller must not call
 *        {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} on <b>child</b>.
 * @param index Index of the sibling that owns the subtree. Valid values are greater than or equal to <b>0</b> and less
 *        than the <b>length</b> argument passe	TextCascadePickerRangeContentArray_Create}.
 *        Otherwise this function does nothing.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_SetChildAtIndex(
    ArkUI_TextCascadePickerRangeContentArray* handle, ArkUI_TextCascadePickerRangeContentArray* childR	!Releases a cascade range level allocated with {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 *
 * @param handle Instance to destroy. If <b>nullptr</b>, this function has no effect.
 * @note After this call, <b>handle</b> must not be used. Do not pass pointers that were not returned by
 *       {@link OH_ArkUI_TextCascadePickerRangeContentArray_Create}.
 * @note Do not call {@link OH_ArkUI_TextCascadePickerRangeContentArray_Destroy} on a <b>child</b> while
 *       it is still stored in a parent's {@code children}.
 * @since 19
 */
void OH_ArkUI_TextCascadePickerRangeContentArray_Destroy(ArkUI_TextCascadePickerRangeContentArray* handlhCreate an object for the EmbeddedComponent option.
 *
 * @return A pointer to the object of the EmbeddedComponent option.
 * @since 20
 */
* OH_D_Create();

/**
 * @brief Destroy the object by EmbeddedComponent opq#	Coption Pointer to the object by the EmbeddeComponent to be destroye	void OH_	_Dispose(V	U	
onError of	*option Pointer to the object option by the* @param code Common error information about the API invoking failure.
 * @param name Common error name information about the API invoking failure.
 * @param message Common error message information about the API invoking failure.
 * @since 20
 */
void OH__SetOnError(
    * option1		int32_t cg.	#message`	 U	onTerminated of	*option Pointer to the object option by the* @param code Result code returned when the EmbeddedUIExtensionAbility exits.
 * @param want Data returned when the EmbeddedUIExtensionAbility exitz	void OH__SetOnTerminated(
    * option1	"int32_t code, AbilityBase_Want* waQ	Expand the swipe acq#	CList Item node.
 * @param direction expand direction of swipeActionѡ	FP9	22ERROR} The component type of the node is incorrect!9	'	"node not mounted to component treeJ	$ListItemSwipeAction_Expan	"ListItemSwipeActionDirection direc	llapse the swipe acq#	
List Item  ;	|2ERROR} The component type of the node is incorrect!9	'	"node not mounted to component treeJ	$ListItemSwipeAction_Collaps08	)Create an edge object for position attribute.
 *
 * @return A pointer to the edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Create();

/**
 * @brief Creates a deep copy of an edge object for position attribute.
 *
 * @param edges A pointer to an edg12	iA pointer to the new edge object.
 * @since 21
 */
ArkUI_PositionEdges* OH_ArkUI_PositionEdges_Copy(const* edges);

/**
 * @brief Dispose an edge object for position attribute.
 *
 * @param edges Pointer to the edge object to be disVposed.
 * @since 21
 */
void OH_ArkUI_PositionEdges_Dispose(ArkUI_PositionEdges* edgesa	 	`top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	distance of top edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetTop(&ArkUI_PositionEdges* edges, float valuhiGets the top edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	Idistance of top edge to the corresponding edge of parent container, in vp		ǖ	Rg2the parameter 	W	<PositionEdges_GetTop(ArkUI_PositionEdges* edges, float* valuhaleft edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	distance of left edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetLef(t(ArkUI_PositionEdges* edges, float valuhjGets the left edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	Jdistance of left edge to the corresponding edge of parent container, in vp		ǖ	Rg2the parameter 	W	=PositionEdges_GetLeft(ArkUI_PositionEdges* edges, float* valuhcbottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	distance of bottom edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetB,ottom(ArkUI_PositionEdges* edges, float valuhlGets the bottom edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	Ldistance of bottom edge to the corresponding edge of parent container, in vp		ǖ	Rg2the parameter 	W	?PositionEdges_GetBottom(ArkUI_PositionEdges* edges, float* valuhaight edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	distance of right edge to the corresponding edge of parent container, in vp.
 * @since 21
 */
void OH_ArkUI_PositionEdges_SetRi*ght(ArkUI_PositionEdges* edges, float valuhkGets the right edge of an edge object for position attribute.
 *
 * @param edges Pointer to the edge object-	Kdistance of right edge to the corresponding edge of parent container, in vp		ǖ	Rg2the parameter 	W	>PositionEdges_GetRight(ArkUI_PositionEdges* edges, float* valuhCreate a policy object for PixelRound attribute.
 *
 * @return A pointer to the policy object.
 * @since 21
 */
ArkUI_PixelRoundPolicy* OH_ArkUI_PixelRoundPolicy_Create();

/**
 * @brief Dispose a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object to be disposed.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_Dispose(ArkUI_PixelRoundPolicy* policya	 	ftop edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object-	CalcPolicy of top edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuhGets the top edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu-	CalcPolicy of top edge		ǖ	Rg2the parameter 	W	XPixelRoundPolicy_GetTop(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuhhstart edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object-	CalcPolicy of start edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuhGets the start edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param va-	CalcPolicy of start edge		ǖ	Rg2the parameter 	W	ZPixelRoundPolicy_GetStart(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuhibottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object-	CalcPolicy of bottom edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuhGets the bottom edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param v-		CalcPolicy of bottom edge		ǖ	Rg2the parameter 	W	[PixelRoundPolicy_GetBottom(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuhfend edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object-	CalcPolicy of end edge.
 * @since 21
 */
void OH_ArkUI_PixelRoundPolicy_SetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy valuhGets the end edge of a policy object for PixelRound attribute.
 *
 * @param policy Pointer to the policy object.
 * @param valu-	CalcPolicy of end edge		ǖ	Rg2the parameter 	W	XPixelRoundPolicy_GetEnd(ArkUI_PixelRoundPolicy* policy, ArkUI_PixelRoundCalcPolicy* valuhCreates a configuration object for textField's counter.
 *
 * @return A pointer to the configuration object.
 * @since 22
 */
A* OH__Create();

/**
 * @brief Disposes a configuration object for textField's counter.
 *
 * @param config Pointer to the configura5tion object to be disposed.
 * @since 22
 */
void OH_	_Dispose(* configa	 	color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField hasn't wanted to exceed the maximum chara
cter count
 * @since 22
 */
void OH__SetCounterTextColor(* config, uint32_t colora	 	color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configuration object to be modified.
 * @param color The color of the counter when textField wants to exceed the maximum character count, in 0
 * @since 22
 */
void OH__SetCounterTextOverflowColor(* config, uint32_t color 7	s the color of counter when textField hasn't wanted to exceed the maximum character count.
 *
 * @param config Pointer to the configurationq	 Jcounter when textField hasn't wanted to exceed the maximum character count
 * @since 22
 */
uint32_t OH__GetCounterTextColor(* config 7	s the color of counter when textField wants to exceed the maximum character count.
 *
 * @param config Pointer to the configurationq	 Bcounter when textField wants to exceed the maximum character count
 * @since 22
 */
uint32_t OH__GetCounterTextOverflowColor(	* config)pX,menu item for edit menu item.
 *
 * @since 2tkTextMenuItem ArkUI_TextMenuItem;
/**
 * @brief Create an object of the text edit menu item.
 *
 * @return ATextMenuItem.
 * @since 22
 */
ArkUI_TextMenuItem* OH_ArkUI_TextMenuItem_Create();

/**
 * @brief Dispose an object of the text/ edit menu options.
 *
 * @param textMenuItem PTextMenuItem object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextMenuItem_Dispose(ArkUI_TextMenuItem* textMenuItem);

/**h	 U	ext menu item title.
 *
 * @param item The text menu item.
 * @param content The name of the text menu item, which defaults to 2an empty string. The string will copy to framework		`	 occurs.
 * @since 22{	BTextMenuItem_SetContent(ArkUI_TextMenuItem* item, const char* contM	ext menu item title.
 *
 * @param item The text menu item object.
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The name of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKj/BUFFER_SIZE_ERROR} is returned.
 *
 * @return T	&	w'the node, buffer or writeLength is null!9	%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22{	TextMenuItem_GetContent(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * @bn	 U	ext menu item icon.
 *
 * @param item The text menu item.
 * @param icon The text menu item icon resource, which defaults to an0 empty string. The string will copy to framework		`	 occurs.
 * @since 22{	=TextMenuItem_SetIcon(ArkUI_TextMenuItem* item, const char* icX	`	ext menu item icon.
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The icon of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning {@li.
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKj/BUFFER_SIZE_ERROR} is returned.
 *
 * @return T	&	w'the node, buffer or writeLength is null!9	%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22{	oTextMenuItem_GetIcon(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLengtha	 U	ext menu item label info for keyboard shortcut.
 *
 * @param item The text menu item.
 * @param labelInfo The text menu item sh]ortcut displays, which defaults to an empty string.
 *      The string will copy to framework		`	 occurs.
 * @since 22{	ITextMenuItem_SetLabelInfo(ArkUI_TextMenuItem* item, const char* labelInfo 7	ext menu item label info for keyboard shortcut..
 *
 * @param item The text menu item object
 * @param buffer The buffer of the text menu content, memory space needs to be allocated by the developer.
 * @param bufferSize The shortcuts of the text menu item, which defaults to an empty string;
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKj/BUFFER_SIZE_ERROR} is returned.
 *
 * @return T	&	w'the node, buffer or writeLength is null!9	%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 22{	TextMenuItem_GetLabelInfo(const ArkUI_TextMenuItem* item, char* buffer, int32_t bufferSize,
    int32_t* writeLength);

/**
 * l	 U	Text menu item id.
 *
 * @param item The text menu item.
 * @param id The text menu i!z	Ɨ	 occurs.
 * @since 22{	+TextMenuItem_SetId(ArkUI_TextMenuItem* item`	aext menu item id.
 *
 * @param item The text menu item object
 * @param id The text menu item id;		 occurs.
 * @since 22
`	?TextMenuItem_GetId(const ArkUI_TextMenuItem* item, int32_t* id)p#ext menu item array.
 *
 * @since 2t)TextMenuItemArray ArkUI_TextMenuItemArray!7	ksize of text menu items.
 *
 * @param items The text menu items.
 * @param size The size of text menu items		`	 occurs.
 * @since 22
`	ATextMenuItemArray_GetSize(ArkUI_TextMenuItemArray* items, int32_t^	`	>ext menu item at index.
 *
 * @param items The text menu items:	 =ext menu items.
 * @param item The text menu item at index off	`	 occurs.
 * @since 22{	TextMenuItemArray_GetItem(ArkUI_TextMenuItemArray* items, int32_t index,
    ArkUI_TextMenuItem** item);

/**
 * @brief Insert text menu item at index.
 *
 * @param items The text menu items.
 * @param item The text menu item at index of array. The item will copy by framework:	 ext menu items		`	 occurs.
 * @since 22{	VTextMenuItemArray_Insert(ArkUI_TextMenuItemArray* items, ArkUI_TextMenuItem* item,
   R	 EErase text menu item at index.
 *
 * @param items The text menu items:	 ext menu items		`	 occurs.
 * @since 22{	6TextMenuItemArray_Erase(ArkUI_TextMenuItemArray* itemsR	!;Clear all the items.
 *
 * @param items The text menu items		`	 occurs.
 * @since 22{	7TextMenuItemArray_Clear(ArkUI_TextMenuItemArray* items) !text menu item id.
 *
 * @since 2/Indicates the TextMenuItemId to copy and delete-gtext.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CUT = 0,

    /**
     * Indicates the TextMenuItemId to copy-Btext to the clipboard.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COPY = Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PASTE = A6Indicates the TextMenuItemId>a text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_SELECT_ALL = QWIndicates the TextMenuItemId for collaboration service menu items.
     */
    ARKUI_TEXT_MENU_ITEM_ID_COLLABORATION_SERVICE = )Indicates the TextMenuItemId to recognize the text in the picture and input it into the text view.
     */
    ARKUI_TEXT_MENU_ITEM_ID_CAMERA_INPUT = AlIndicates the TextMenuItemId to help with text creation by invoking large models.
     */
    ARKUI_TEXT_MENU_ITEM_ID_AI_WRITER = 1)Indicates the TextMenuItemId to translate*/
    ARKUI_TEXT_MENU_ITEM_ID_TRANSLATE = &Indicates the TextMenuItemId to search_/
    ARKUI_TEXT_MENU_ITEM_ID_SEARCH = 8,

    /**
     * Indicates the TextMenuItemId to share&/
    ARKUI_TEXT_MENU_ITEM_ID_SHARE = [Indicates the TextMenuItemId to open url.
     */
    ARKUI_TEXT_MENU_ITEM_ID_URL = 10,

    /**
     * Indicates the TextMenuIAtemId to open email.
     */
    ARKUI_TEXT_MENU_ITEM_ID_EMAIL = kIndicates the TextMenuItemId to call the phone number.
     */
    ARKUI_TEXT_MENU_ITEM_ID_PHONE_NUMBER = 1A6TIndicates the TextMenuItemId to open map.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ADDRESP`Indicates the TextMenuItemId to open calendar.
     */
    ARKUI_TEXT_MENU_ITEM_ID_DATA_TIME = 1)YIndicates the TextMenuItemId for asking AI.
     */
    ARKUI_TEXT_MENU_ITEM_ID_ASK_AI = *Indicates the TextMenuItemId for auto fillahe$ARKUI_TEXT_MENU_ITEM_ID_AUTO_FILL = V.Indicates the TextMenuItemId for password vaul`he)ARKUI_TEXT_MENU_ITEM_ID_PASSWORD_VAULT = fInclusive begin of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_BEGIN = 100zInclusive end of app-reserved ID range.
     */
    ARKUI_TEXT_MENU_ITEM_ID_APP_RESERVED_END = 20000,
} ArkUI_TextMenuItemId;

sX/menu item for edit menu options.
 *
 * @since 2tBBO;
/**
 * @brief Create an object of the text edit menu options.
 *
 * @return AB.
 * @since 22
 */
B* OH_Bi_Create();

/**
 * @brief Dispose an object of the text edit menu options.
 *
 * @param editMenuOptions PB1 object to be disposed.
 * @since 22
 */
void OH_B	_Dispose(B0* editMenuOptions);

/**
 * The text menu createY	y#	fitems The framework creates and owns the array.
 *     In callback: the developer can modify the array1e	/TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance	User defined data.
 * @since 2+	TextCreateMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text me
nu prepareY	y#	fitems The framework creates and owns the array.
 *     In callback: the developer can modify the array1e	/TextMenuItemArray_Insert},
 *     {@link OH_ArkUI_TextMenuItemArray_Erase}, or similar APIs.
 *     The developer must not free the array instance	User defined data.
 * @since 2+	TextPrepareMenuCallback)(
    ArkUI_TextMenuItemArray*    items,
    void*                       userData
);

/**
 * The text menu item clickY	y#	:item The menu item click.
 * @param start The start offset* @param end The end offset"	The user data.
 * @return bool Return True, the event is consumed, false otherwise.
 * @since 22
 */
typedef bool (*ArkUI_TextMenuItemClickCallback)(
    const ArkUI_TextMenuItem*    item,
    int32_t                      start,
    int32_t              7        end,
    void*                        userData
a	 U	Hevent to be called when text menu create.
 *
 * @param editMenuOptions PB object	&The user data.
 * @param cb The createY		`	 occurs.
 * @since 22{	B"_RegisterOnCreateMenuCallback(
   BD* editMenuOptions, void* userData, ArkUI_TextCreateMenuCallback cb);U	Devent to be called when menu prepare.
 *
 * @param editMenuOptions PB object	'The user data.
 * @param cb The prepareY		`	 occurs.
 * @since 22{	B#_RegisterOnPrepareMenuCallback(
   BC* editMenuOptions, void* userData, ArkUI_TextPrepareMenuCallback cba	 U	Gevent to be called when menu item click.
 *
 * @param editMenuOptions PB object	/The user data.
 * @param cb The menu item clickY		`	 occurs.
 * @since 22{	B%_RegisterOnMenuItemClickCallback(
   BF* editMenuOptions, void* userData, ArkUI_TextMenuItemClickCallback cb)p.
 *
 * @since 2t7TextSelectionMenuOptions ArkUI_TextSelectionMenuOptionsp. 0unfig of data detector2OH_pption of text editor8L OH_<$p+prompt options when text editor has no inpu9} OH_m"pfor text editor8. OH_&pparagraph style for text editor80ParagraphStyle OH_ArkUI_TextEditorParagraphStylepshadow options.$ShadowOptions OH_ArkUI_ShadowOptionspext style for text editor8%TextStyle OH_ArkUI_TextEditorTextStyl
	!haptic feedback modeNo@ihe&OH_ARKUI_HAPTIC_FEEDBACK_MODE_DISABLEDODefines always@iheOOH_ARKUI_HAPTIC_FEEDBACK_MODE_ENABLED = 1,
    /**
     * Defines automatically@iheBOH_ARKUI_HAPTIC_FEEDBACK_MODE_AUTO = 2,
} OH_ArkUI_HapticFeedbackM@	text editor span typeThe span type of tex`he#OH_ARKUI_TEXT_EDITOR_SPAN_TYPE_TEXTOThe span type of imageaheMOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_IMAGE = 1,
    /**
     * The span type of mixA(QOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_MIXED = 2,
    /**
     * The span type of builderaheROH_ARKUI_TEXT_EDITOR_SPAN_TYPE_BUILDER = 3,
    /**
     * The span type of defaul`heDOH_ARKUI_TEXT_EDITOR_SPAN_TYPE_DEFAULT = 4
} OH_ArkUI_TextEditorSpantext editor response type,The text editor response type of right clickahe.OH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_RIGHT_CLICKO+The text editor response type of long pressahehOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_LONG_PRESS = 1,
    /**
     * The text editor response type of selec`heeOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_SELECT = 2,
    /**
     * The text editor response type of defaul`heLOH_ARKUI_TEXT_EDITOR_RESPONSE_TYPE_DEFAULT = 3,
} OH_ArkUI_TextEditorResponstext menu type$The text menu type of selection menuahe#OH_ARKUI_TEXT_EDITOR_SELECTION_MENUO"The text menu type of preview menuahe:OH_ARKUI_TEXT_EDITOR_PREVIEW_MENU = 1,
} OH_ArkUI_TextMenu line break typesPlaces as many words on a line as possible
     * and moves to the next line only if no more words can fit into the same line.
che#OH_ARKUI_LINE_BREAK_STRATEGY_GREEDYOFills in lines as much as possible on the basis of BALANCED,
     * which may results in a large blank area on the last line.
 dheOH_ARKUI_LINE_BREAK_STRATEGY_HIGH_QUALITY = 1,
    /**
     * Without splitting words, the width of each line in a paragraph is the same as much as possibleaheFOH_ARKUI_LINE_BREAK_STRATEGY_BALANCE = 2,
} OH_ArkUI_LineBreakStrategy text span type.
 *
 * @since 2The span type only contains text. */
    ARKUI_TEXT_SPAN_TYPE_TEXT = 0,
    /** The span type only contains image. */
    ARKUI_TEXT_SPAN_TYPE_IMAGE = 1,
    /** The span type contains both text and image. */
    ARKUI_TEXT_SPAN_TYPE_MIXED = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but TEXT, IMAGE, or MIXED types are not registered,
     * this type will be triggered and displayed for those registered types.
     */
  4  ARKUI_TEXT_SPAN_TYPE_DEFAULT = 3,
} ArkUI_TextSpan"text response type.
 *
 * @since 2The response type of right click. */
    ARKUI_TEXT_RESPONSE_TYPE_RIGHT_CLICK = 0,
    /** The response type of long press. */
    ARKUI_TEXT_RESPONSE_TYPE_LONG_PRESS = 1,
    /** The response type of select by mouse. */
    ARKUI_TEXT_RESPONSE_TYPE_SELECT = 2,
    /**
     * When no other types are explicitly specified, this type will be matched.
     * When this type is registered but RIGHT_CLICK, LONG_PRESS, or SELECT types are not registered,
     * this type will be triggered and displayed for right-click, long press, and mouse selection actions.
     */
    ARKUI_TEXT_RESPONSE_TYPE_DEFAULT = 3,
} ArkUI_TextResponseType;

/**
p)raw input event types.
*
* @since 26.0.0
QqTouchPARKUI_RAW_INPUT_EVENT_TYPE_TOUCNMouseP;ARKUI_RAW_INPUT_EVENT_TYPE_MOUSE = 1,
} ArkUI_RawInputEventCreate an objecta8aoptions.
 *
 * @return ATextSelectionMenuOptions.
 * @since 22
 */
ArkUI_TextSelectionMenuOptions* OH_ArkUI_TextSelectionMenuOptions_Create();

/**
 * @brief Dispose an objecta8a,options.
 *
 * @param selectionMenuOptions PTextSelectionMenuOptions object to be disposed.
 * @since 22
 */
void OH_ArkUI_TextSelectionMenuOptions_Dispose(ArkUI_TextSelec%tionMenuOptions* selectionMenuOptionsa	 	.recognition types of a configuration object fou#	selectionMenuOptions PETextSelectionMenuOptions object.
 * @param textSpanType The span typeS	SpanType}		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_SetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType textSpanType)[;
/**
 * @brief Gets the span type select menu options.
 *
 * @param selectionMenuOptions P@TextSelectionMenuOptions object.
 * @param spanType the text spayTextSpanType}		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_GetSpanType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextSpanType* spanType);

ɔ	FSet custom text menu node of text.
 *
 * @param selectionMenuOptions PTextSelectionMenuOptions object1N	custom menu node		`	 occurs.
 * @since 22{	]TextSelectionMenuOptions_SetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,`	`	Bcustom text menu node of text.
 *
 * @param selectionMenuOptions PTextSelectionMenuOptions object1N	custom menu node		`	 occurs.
 * @since 22{	]TextSelectionMenuOptions_GetContentNode(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,gO			.recognition types of a configuration object fou#	selectionMenuOptions PITextSelectionMenuOptions object.
 * @param responseType The response typeSResponseType}		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_SetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType respognseType);
/**
 * @brief Gets the response type select menu options.
 *
 * @param selectionMenuOptions PITextSelectionMenuOptions object.
 * @param responseType The text responseyTextResponseType}		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_GetResponseType(ArkUI_TextSelectionMenuOptions* selectionMenuOptions,
    ArkUI_TextResponseType* response	U	Pevent to be called when selection menu show.
 *
 * @param selectionMenuOptions PTextSelectionMenuOptions object	The user	0|	%	, of menu show.
 *     start The start offset*     end The end offset*     userData The user data		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_RegisterOnMenuShowCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
/    void (*callback)(int32_t start, int32_t endF	U	Pevent to be called when selection menu hide.
 *
 * @param selectionMenuOptions PTextSelectionMenuOptions object	The user	0|	%	, of menu hide.
 *     start The start offset*     end The end offset*     userData The user data		`	 occurs.
 * @since 22{	TextSelectionMenuOptions_RegisterOnMenuHideCallback(
    ArkUI_TextSelectionMenuOptions* selectionMenuOptions, void* userData,
/    void (*callback)(int32_t start, int32_t endF	̧	
QCreate selection options.
 *
 * @return A pointer to the selection options objectQ	dArkUI_SelectionOptions* OH_ArkUI_SelectionOptions_Create();

/**
 * @brief Dispose selection optionsm	RSelectionOptions*} options Pointer to the selection options object. to be disposedQ	Fvoid OH_ArkUI_SelectionOptions_Dispose(ArkUI_SelectionOptions* optionsa	 	!menu policy for selection options~	;SelectionOptions*} options Pointer to the selection optionsA	&MenuPolicy} menuPolicy The menu policyQ	1void OH_ArkUI_SelectionOptions_SetMenuPolicy(
   G&* options, ArkUI_MenuPolicy menuPolicy 7	&s the menu policy of selection options~	;SelectionOptions*} options Pointer to the selection optionsq	 menu policyQ	ArkUI_MenuPolicy OH_ArkUI_SelectionOptions_GetMenuPolicy(ArkUI_SelectionOptions* options);

/**
 * @brief Create an object of t! 1
 *
 * @return A pointer to the controller objectQ	!* OH_!._Create();

/**
 * @brief Dispose an object of!"	"=*} controller Pointer to the controller object to be disposedQ	void OH_!	_Dispose(!* controller);

/**
 * @brief Delete the character before the caret of the input field component in editing state.
 *        Ot5herwise, delete the last character of the input field		"@*} controller Pointer to the configuration object to be modifiedQ	void OH_!_DeleteBackward(!* controllera	Ecroll the input field component to make the specified content visible~	"*} controller Pointer to the
 * configuration object to be modified.
 * @param {int32_t} start The start offset of the content to be made visible.
 * @param {int32_t} end The end offset of the content to be made visible
 * @since 23
 */
void OH_ArkUI_Tex"_ScrollToVisible(
   ! ) *controller, int32_t start, int32_t end)p+options for path animation.
 *
 * @since 23qW;

/**
 * @brief Create an object of the motion path options for path animation.
 *        In the newly created ArkUI_MotionPat, the "path" value is an empty string, the "from" value is 0,
 *        the "to" value is 1, and the "rotatable" value is false.
 *
 * @return A(R	* OH_!_Create();

/**
 * @brief Disposem	options P% object to be disposedQ	void OH_	_Dispose(	* optionsa	 	the motion path for the animation using an SVG path string. The path supports using "start" and
 *        "end" as placeholders for the starting and ending points, for example:
 *        "Mstart.x start.y L50 50 Lend.x end.y Z". Refer to the SVG path forkmat for the path string.
 *        When set to an empty string, it is equivalent to not setting a path anim 		options P%= object.
 * @param svgPath The motion path for the path anima1		`	 occursQ	{		_SetPath(* options, const char* svgPath 7	s the motion path string inm	options P% object.
 * @param svgPathBuffer Buffer pointer to the motion path string.
 * @param bufferSize The buffer size of the svgPathBuffer parameter.
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKjBUFFER_SIZE_ERROR} is return z	Ǘ		4JBUFFER_SIZE_ERROR} if the buffer size is less than the minimum buffer sizeQ	{	_GetPath(constR* options, char* svgPathBuffer,
    const int32_t bufferSize, int32_t* writeLengtha	 	starting progress inProgress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path."F^, and the
 *        "from" value should be less than or equal to the "to" value; otherwise, ana~JOUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options P%0 object.
 * @param from The starting progress in		`		4p	gC"from" value is out of range or the "from" value
 *                o
"to" valueQ	{		_SetFrom(* options, const float from 7	s the starting progress inm	options P%0 object.
 * @param from The starting progress in		`	 occursQ	{	_GetFrom(const* options, float* froma	 	endpoint progress inProgress refers to the ratio of the length of the
 *        path that has been traveled to the total length of the entire path."F^, and the
 *        "from" value should be less than or equal to the "to" value; otherwise, ana~JOUT_OF_RANGE
 *        error code will be returned.
 *
 * @param options P%. object.
 * @param to The endpoint progress in		`		4p	g]"to" value is out of range or the "to" value
 *                 is less than the "from" valueQ	{	_SetTo(* options, const float to 7	s the endpoint progress inm	options P%. object.
 * @param to The endpoint progress in		`	 occursQ	{	_GetTo(const* options, float* toa	 	rotatable parameter inIt indicates whether to rotate along the path.
 *        True means rotating along the path, while false means not rotating alo#ng the path.
 *
 * @param options P%7 object.
 * @param rotatable The rotatable parameter in		`	 occursQ	{	_SetRotatable(* options, const bool rotatablhGets the rotatable parameter in
 *
 * @param options P%7 object.
 * @param rotatable The rotatable parameter in		`	 occursQ	{	_GetRotatable(const* options, bool* rotatablh#MarqueeStartPolicy.
 *
 * @since 23Start marquee in any case. This is the default policy. */
    ARKUI_MARQUEESTARTPOLICY_DEFAULT = 0,
    /** Start marquee only Vwhen get focus. */
    ARKUI_MARQUEESTARTPOLICY_ONFOCUS = 1
} ArkUI_MarqueeStartPolicy $MarqueeUpdatePolicy.
 *
 * @since 23Reset scroll position and restart scroll. */
    ARKUI_MARQUEEUPDATEPOLICY_DEFAULT = 0,
    /** Preserve scroll position, just echange to new text. */
    ARKUI_MARQUEEUPDATEPOLICY_PRESERVEPOSITION = 1
} ArkUI_MarqueeUpdatePolicypP*
 * @since 23qWfR_R;

/**
 * @brief Create an option object for marquee animation of text.
 *
 * @return A pointer to the option object.
 * @since\	`R* OH_`R_Create();

/**
 * @brief Dispose the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be disposedQ	void OH_`R	_Dispose(`RV			start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.e
 * @param start Flag of is need to start marquee. True means start marquee, false means stop marqueeQ	void OH_`R
_SetStart(`R* option, bool start 7	ns the start flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionq	 
start flagQ	bool OH_`R
_GetStart(`RV			step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
; * @param step The step size of the marquee. The unit is vpQ	void OH_`R	_SetStep(`R* option, float step 7	ms the step size of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionq	 (step size of the marquee. The unit is vpQ	vM	fR	_GetStep(`RV			spacing between two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object\ to be modified.
 * @param spacing The spacing between two rounds of marquee. The unit is vpQ	void OH_`R_SetSpacing(`R* option, float spacing 7	s the spacing between two rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option r	5spacing between two rounds of marquee. The unit is vpQ	vM	fR_GetSpacing(`RV			rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * %@param loop The rounds of the marqueeQ	void OH_`R	_SetLoop(`R* option, int32_t loop 7	js the rounds of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionq	 rounds of the marqueeQ	$fR	_GetLoop(`RV			fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modif!ied.
 * @param fromStart The runn@/&marquee, true means running from startQ	void OH_`R_SetFromStart(`R* option, bool fromStart 7	s the fromStart flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @~	fromStart flagQ	bool OH_`R_GetFromStart(`RV			delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the option objTect to be modified.
 * @param delay The delay time between each round of the marqueeQ	void OH_`R
_SetDelay(`R* option, int32_t delay 7	s the delay time between each round of the option object for marquee animation of text.
 *
 * @param option Pointer to the optionq	 ,delay time between each round of the marqueeQ	$fR
_GetDelay(`RV			fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modified.
 * @param fadeout T?text is faded outQ	void OH_`R_SetFadeout(`R* option, bool fadeout 7	s the fadeout flag of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @re	fadeout flagQ	bool OH_`R_GetFadeout(`RV			start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modifie5d.
 * @param startPolicy The start policy for marqueeQ	void OH_`R_SetStartPolicy(`R.* option, ArkUI_MarqueeStartPolicy startPolicy 7	s the start policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @re	start policy for marqueeQ	ArkUI_MarqueeStartPolicy OH_`R_GetStartPolicy(`RV			update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object to be modifi8ed.
 * @param updatePolicy The update policy for marqueeQ	void OH_`R_SetUpdatePolicy(`R4* option,
    ArkUI_MarqueeUpdatePolicy updatePolicy 7	s the update policy of the option object for marquee animation of text.
 *
 * @param option Pointer to the option object.
 * @r	update policy for marqueeQ	ArkUI_MarqueeUpdatePolicy OH_`R_GetUpdatePolicy(`RV	!Create a configuration object forA12.
 * @return A pointer to the configuration objectQ	ArkUI
* OH_ArkUI<_Create();

/**
 * @brief Dispose a configuration object forA1E.
 * @param config Pointer to the configuration object to be disposedQ	void OH_ArkUI_Dispose(ArkUI* configa	 	color of background forA1e.
 * @param config Pointer to the configuration object to be modified.
 * @param color Background col	void OH_ArkUI_SetColor(
    ArkUI* config, uint32_t color 7	s the color of background forA1/.
 * @param config Pointer to the configurationq	 WR	uint32_t OH_ArkUI_GetColor(
    ArkUI* config);

/**
 * @brief Creates an decoration line style object.
 * When the object is no longer in use, invoke {@link OH_ArkD_Destroy} to destroy it.
 *
 * @return A pointer to the option objeco* _Create();

/**
ݙdecoration line stylemKoptions Pointer to the option object to be destroyed.
 * @since 24
 */
void 	_Destroy(	* optionsa	 	Mdecoration type of decoration line style.
 *
 * @param options Pointer to the( object.
 * @param type Theq4		`	 occurs.
 * @since 24{	_SetTextDecorationType(* options,
   Type typhVGets the decoration type of decoration line style.
 *
 * @param options Pointer to the( object.
 * @param type Theq4		`	 occurs.
 * @since 24{	_GetTextDecorationType(* options,
   	Type* typh=color of decoration line.
 *
 * @param options Pointer to the(1 object.
 * @param color Color of decoration line		`	 occurs.
 * @since 24{	
_SetColor(* options, uint32_t color 7	Cs the color of decoration line.
 *
 * @param options Pointer to the(1 object.
 * @param color Color of decoration line		`	 occurs.
 * @since 24{	
_GetColor(* options, uint32_t* colora	 	=style of decoration line.
 *
 * @param options Pointer to the(1 object.
 * @param style Style of decoration line		`	 occurs.
 * @since 24{	_SetTextDecorationStyle(* options,
    stylhFGets the style of decoration line.
 *
 * @param options Pointer to the(1 object.
 * @param style Style of decoration line		`	 occurs.
 * @since 24{	_GetTextDecorationStyle(* options,
   * stylhN
=scale of decoration line.
 *
 * @param options Pointer to the(> object.
 * @param thicknessScale Thickness of decoration line		`	 occurs.
 * @since 24{	_SetThicknessScale(
    * options, float thicknessScalhPGets the thickness scale of decoration line.
 *
 * @param options Pointer to the(> object.
 * @param thicknessScale Thickness of decoration line		`	 occurs.
 * @since 24{	_GetThicknessScale(#* options,
    float* thicknessScalh`Creates a data detector config object.
 * When the object is no longer in use, invoke {@link OH_D_Destroy} to destroy it.
 *
 * @return A pointer to the option objeco!* OH__Create();

/**
ݙdata detector configmGconfig Pointer to the object to be destroyed.
 * @since 24
 */
void OH__Destroy(OH_* configa	 	Ltypes of data detector config.
 *
 * @param config Pointer to the {@link OH_Y} object.
 * @param types Types of data detector config.
 * @param length Number of types		`	 occurs.
 * @since 24{	_SetTypes(
    OH_* config, const* types, int32_t length 7	Rs the types of data detector config.
 *
 * @param config Pointer to the {@link OH_} object.
 * @param buffer Buffer pointer to the type array.
 * @param bufferSize Buffer size reserved for types by developer.
 *                   It should be larger than writeLength,
 *                   otherwise the operation will return ARKUI_ERROR>_CODE_BUFFER_SIZE_ERROR.
 * @param writeLength Number of types		`		4GBUFFER_SIZE_ERROR   } if bufferSize is less than writeLength.
 * @since 24{	_GetTypes(OH_* config,
   2* buffer, int32_t bufferSize, int32_t* writeLengtha	 	*event to be called when data detector work	fig Pointer to the {@link OH_} object	User	detect result updateY			`	 occurs.
 * @since 24{	._RegisterOnDetectResultUpdateCallback(
    OH_Q* config, void* userData,
    void (*callback)(const char* result, int32_t lengthF	̧	
		color of detecteda	fig Pointer to the {@link OH_0} object.
 * @param color Color of detected cont\	`	 occurs.
 * @since 24{	_SetColor(OH_* config, uint32_t color 7	s the color of detecteda	fig Pointer to the {@link OH_0} object.
 * @param color Color of detected cont\	`	 occurs.
 * @since 24{	_GetColor(OH_* config, uint32_t* colora	 	
f detecteda	fig Pointer to the {@link OH_@} object.
 * @param decoration Decoration style of detected cont\	`	 occurs.
 * @since 24{	#_SetDecorationStyleOptions(
    OH_	* config, * decora	Gets t
f detecteda	fig Pointer to the {@link OH_@} object.
 * @param decoration Decoration style of detected cont\	`	 occurs.
 * @since 24{	#_GetDecorationStyleOptions(
    OH_	* config, * decora		 odisplay a preview menu when the detected content is long-pressed.
 *
 * @param config Pointer to the {@link OH_} object.
 * @param enablePreviewMenu Whether to display a preview menu when the detected content is long-pressed.
 * @return R0z		 occurs.
 * @since 24{	_SetEnablePreviewMenu(
    OH_ * config, bool enablePreviewMenu 7	s whether to display a preview menu when the detected content is long-pressed.
 *
 * @param config Pointer to the {@link OH_Ark} object.
 * @param enablePreviewMenu Whether to display a preview menu when the detected content is long-pressed.
 * @return R0z		 occurs.
 * @since 24{	_GetEnablePreviewMenu(
    OH_"* config, bool* enablePreviewMenu)pcontroller for text`l	vController OH_ArkUI_TextController;

/**
 * @brief Create a controller object for text.
 * @return A pointer to the text controller object`l	@OH_ArkUI_TextController* OH_ArkUI_TextController_Create();

/**
ݙ=text controller.
 *
 * @param controller <b>Text</b> controll^l	Hvoid OH_ArkUI_TextController_Destroy(OH_ArkUI_TextController* controllera	 U	1StyledString of the text.
 *
 * @param controlleroWg* @param descriptor Pointer to an <b>ArkUI_StyledString_Descriptor</b> object, which will be set to Tex\	`	 occurs		TextController_SetStyledString(
    OH_ArkUI_TextController* controller, ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Create a?5bject.
 * When the object is no longer in use, invoke}K_Destroy} to destroy it.
 *
 * @return A pointer to the configuration objeco'}* OH_m"_Create();

/**
ݙ@mHoptions <b>TextEditor</b> placeholder options.
 * @since 24
 */
void OH_m"_Destroy(OH_m"	* optionsa	 U	\hint text of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options-	hint tex\	`	 occurs.
 * @since 24{	s_SetValue(
    OH_m"	* options|.	%`	hint text of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param buffer The buffer to which hint text writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKj,BUFFER_SIZE_ERROR} is returned.
 * @return T	&	w'the node, buffer or writeLength is null!9	%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24{	s_GetValue(
    OH_m"A* options, char* buffer, int32_t bufferSize, int32_t* writeLengtha	 	font size of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontSize The font size.		`	 occurs.
 * @since 24{	s_SetFontSize(
    OH_m"* options, float fontSa	Gets font size of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontSize The font size		`	 occurs.
 * @since 24{	s_GetFontSize(
    OH_m"* options, float* fontSa	Set font weight of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontWeight The font weigh\	`	 occurs.
 * @since 24{	s_SetFontWeight(
    OH_m"* options, uint32_t fontWeight 7	font weight of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontWeight The font weigh\	`	 occurs.
 * @since 24{	s_GetFontWeight(
    OH_m"* options, uint32_t* fontWeighta	 U	font family of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontFamily The font family		`	 occurs.
 * @since 24{	s_SetFontFamily(
    OH_m"!* options, const char* fontFamily 7	font family of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param buffer The buffer to which font family writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when
 returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKj,BUFFER_SIZE_ERROR} is returned.
 * @return T	&	w'the node, buffer or writeLength is null!9	%XBUFFER_SIZE_ERROR} If the buffer size is less than the minimum buffer size.
 * @since 24{	s_GetFontFamily(
    OH_m"A* options, char* buffer, int32_t bufferSize, int32_t* writeLengtha	 U	font style of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontStyle The font sty	p		 occurs.
 * @since 24{	s_SetFontStyle(
    OH_m"#* options, ArkUI_FontStyle fontStylh`	font style of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontStyle The font sty	p		 occurs.
 * @since 24{	s_GetFontStyle(
    OH_m"$* options, ArkUI_FontStyle* fontStylh the font color of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontColor The font color		`	 occurs.
 * @since 24{	s_SetFontColor(
    OH_m"* options, uint32_t fontColor 7	font color of placeholder options.
 *
 * @param options <b>TextEditor</b> placeholder options.
 * @param fontColor The font color		`	 occurs.
 * @since 24{	s_GetFontColor(OH_m"<* options,
    uint32_t* fontColor);

/**
 * @brief Create aEbject for text editor.
 * When the object is no longer in use, invoke.3_Destroy} to destroy it.
 *
 * @return A pointer tobjeco'.* OH_&_Create();

/**
ݙ+.
 *
 * @param controller <b>TextEditor</b>.
 * @since 24
 */
void OH_&_Destroy(OH_&* controllera	et caret offset with+.
 *
 * @param controller <b>TextEditor</b>".
 * @param caretOffset caret posi1		`	 occurs.
 * @since 24{	$ _SetCaretOffset(
    OH_&* controller, int32_t caret,	`	caret offset with+.
 *
 * @param controller <b>TextEditor</b>".
 * @param caretOffset caret posi1		`	 occurs.
 * @since 24{	$ _GetCaretOffset(
    OH_&* controller, int32_t* caret,	Set selection area with+.
 *
 * @param controller <b>TextEditor</b>.
 * @param start selection area start.
 * @param end selection area end.
 * @param menuPolicy selection area menu policy.
 * @		`	 occurs.
 * @since 24{	$ _SetSelection(
    OH_&G* controller, uint32_t start, uint32_t end, ArkUI_MenuPolicy menuPolicy 7	!editing state of text editor with+.
 *
 * @param controller <b>TextEditor</b>#.
 * @param isEditing editing state		`	 occurs.
 * @since 24{	$ _IsEditing(
    OH_&U* controller, bool* isEditing);

/**
 * @brief Exit editing state of text editor with+.
 *
 * @param controller <b>TextEditor</b>		`	 occurs.
 * @since 24{	$ _StopEditing(
    OH_&* controller 7	preview text content with+.
 *
 * @param controller <b>TextEditor</b>C	Preview text position.
 * @param buffer The buffer to which preview text content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string lIength actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKjBUFFER_SIZE_ERROR} is return z	Ǘ	 occurs.
 * @since 24{	$ _GetPreviewText(
    OH_&Z* controller, uint32_t* offset, char* buffer,
    int32_t bufferSize, int32_t* writeLength 7	caret rect with+.
 *
 * @param controller <b>TextEditor</b> .
 * @param rect caret area info		`	 occurs.
 * @since 24{	$ _GetCaretRect(
    OH_&E* controller, ArkUI_Rect* rect);

/**
 * @brief Delete character with+.
 *
 * @param controller <b>TextEditor</b>		`	 occurs.
 * @since 24{	$ _DeleteBackward(
    OH_&* controller);

/**
 * @brief Create a paragraph style object for text editor.
 * When the object is no longer in use, invoke {6ParagraphStyle_Destroy} to destroy it.
 *
 * @return Aagraph style objeco'AParagraphStyle* OH_ArkUI_TextEditorParagraphStyle_Create();

/**
ݙparagraph stylemstyle <b>TextEditor</b> paragraph style.
 * @since 24
 */
void OH_ArkUI_TextEditorParagraphStyle_Destroy(OH_ArkUI_TextEditorParagraphStyle* stylhaext alignment in paragraph style.
 *
 * @param style paragraph style.
 * @param align text alignm\	`	 occurs.
 * @since 24{	nTextEditorParagraphStyle_SetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment align 7	aext alignment in paragraph style.
 *
 * @param style paragraph style.
 * @param align text alignm\	`	 occurs.
 * @since 24{	oTextEditorParagraphStyle_GetTextAlign(
    OH_ArkUI_TextEditorParagraphStyle* style, ArkUI_TextAlignment* aligna	Tet pixelmap of leading margin in paragraph style.
 *
 * @param style paragraph styleg	pixelmap of leading margin		`	 occurs.
 * @since 24{	TextEditorParagraphStyle_SetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, struct OH_PixelmapNative* pixej	`	Qpixelmap of leading margin in paragraph style.
 *
 * @param style paragraph styleg	pixelmap of leading margin		`	 occurs.
 * @since 24{	gTextEditorParagraphStyle_GetLeadingMarginPixelMap(
    OH_ArkUI_TextEditorParagraphStyle* style, structj	/Set width of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param width width of leading margin.
 *		`	 occurs.
 * @since 24{	kTextEditorParagraphStyle_SetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t width 7	width of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param width width of leading margin.
 * @re		`	 occurs.
 * @since 24{	lTextEditorParagraphStyle_GetLeadingMarginWidth(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* widtha	 	height of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param height height of leading margin.
 * 		`	 occurs.
 * @since 24{	mTextEditorParagraphStyle_SetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t height 7	height of leading margin in paragraph style.
 *
 * @param style paragraph style.
 * @param height height of leading margin.
 * 		`	 occurs.
 * @since 24{	nTextEditorParagraphStyle_GetLeadingMarginHeight(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* heighta	det word break of paragraph style.
 *
 * @param style paragraph style.
 * @param wordBreak word break		`	 occurs.
 * @since 24{	mTextEditorParagraphStyle_SetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak wordBreak 7	aword break of paragraph style.
 *
 * @param style paragraph style.
 * @param wordBreak word break		`	 occurs.
 * @since 24{	nTextEditorParagraphStyle_GetWordBreak(OH_ArkUI_TextEditorParagraphStyle* style,
    ArkUI_WordBreak* wordBreaka	et line break strategy of paragraph style.
 *
 * @param style paragraph style.
 * @param lineBreakStrategy line break strategy.		`	 occurs.
 * @since 24{	TextEditorParagraphStyle_SetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy lineBrea	kStrategy 7	line break strategy of paragraph style.
 *
 * @param style paragraph style.
 * @param lineBreakStrategy line break strategy.
 *		`	 occurs.
 * @since 24{	TextEditorParagraphStyle_GetLineBreakStrategy(OH_ArkUI_TextEditorParagraphStyle* style,
    OH_ArkUI_LineBreakStrategy* lineBre
akStrategya	et paragraph spacing of paragraph style.
 *
 * @param style paragraph style.
 * @param paragraphSpacing paragraph spacing.
 * @		`	 occurs.
 * @since 24{	TextEditorParagraphStyle_SetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t paragraphSpacing);

/**
 * +7	paragraph spacing of paragraph style.
 *
 * @param style paragraph style.
 * @param paragraphSpacing paragraph spacing.
 * @ret		`	 occurs.
 * @since 24{	TextEditorParagraphStyle_GetParagraphSpacing(OH_ArkUI_TextEditorParagraphStyle* style,
    uint32_t* paragraphSpacing);

/**
 *k		 U	ext vertical alignment of paragraph style.
 *
 * @param style paragraph style.
 * @param verticalAlignment text vertical alignm\	`	 occurs.
 * @since 24{	[TextEditorParagraphStyle_SetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
   ,4 verticalAlignmM	ext vertical alignment of paragraph style.
 *
 * @param style paragraph style.
 * @param verticalAlignment text vertical alignm\	`	 occurs.
 * @since 24{	[TextEditorParagraphStyle_GetTextVerticalAlign(OH_ArkUI_TextEditorParagraphStyle* style,
   ,4* verticalAlignmoU	gext direction of paragraph style.
 *
 * @param style paragraph style.
 * @param textDirection text dire	`	 occurs.
 * @since 24{	WTextEditorParagraphStyle_SetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
   T
 textDirec	`	gext direction of paragraph style.
 *
 * @param style paragraph style.
 * @param textDirection text dire	`	 occurs.
 * @since 24{	WTextEditorParagraphStyle_GetTextDirection(OH_ArkUI_TextEditorParagraphStyle* style,
   T* textDirec	Set preset paragraph style with+.
 *
 * @param controller <b>TextEditor</b>&.
 * @param style preset paragraph sty	p		 occurs.
 * @since 24{	$ !_SetTypingParagraphStyle(
    OH_&5* controller, OH_ArkUI_TextEditorParagraphStyle* stylhCreate a shadow options object.
 * When the object is no longer in use, invoke {@link OH_ArkUI_ShadowOptions_Destroy} to destro9y it.
 *
 * @return A pointer to the shadow options objeco5ShadowOptions* OH_ArkUI_ShadowOptions_Create();

/**
ݙshadow optionsmoptions Pointer to the object to be destroyed.
 * @since 24
 */
void OH_ArkUI_ShadowOptions_Destroy(OH_ArkUI_ShadowOptions* optionsa	 	? options.
 *
 * @param options shadow options.
 * @param radius		`	 occurs.
 * @since 24{	EShadowOptions_SetRadius(OH_ArkUI_ShadowOptions* options, float radius 7	s? options.
 *
 * @param options shadow options.
 * @param radius		`	 occurs.
 * @since 24{	FShadowOptions_GetRadius(OH_ArkUI_ShadowOptions* options, float* radiusa	eet shadow type of the shadow options.
 *
 * @param options shadow options.
 * @param type shadow type		`	 occurs.
 * @since 24{	KShadowOptions_SetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType typh`	bshadow type of the shadow options.
 *
 * @param options shadow options.
 * @param type shadow type		`	 occurs.
 * @since 24{	LShadowOptions_GetType(OH_ArkUI_ShadowOptions* options, ArkUI_ShadowType* typhf shadow color of the shadow options.
 *
 * @param options shadow options.
 * @param color shadow color		`	 occurs.
 * @since 24{	FShadowOptions_SetColor(OH_ArkUI_ShadowOptions* options, uint32_t color 7	eshadow color of the shadow options.
 *
 * @param options shadow options.
 * @param color shadow color		`	 occurs.
 * @since 24{	GShadowOptions_GetColor(OH_ArkUI_ShadowOptions* options, uint32_t* colora	etaw&8.
 *
 * @param options shadow options.
 * @param offsetXaw&		`	 occurs.
 * @since 24{	GShadowOptions_SetOffsetX(OH_ArkUI_ShadowOptions* options, float offsetX 7	bw%8.
 *
 * @param options shadow options.
 * @param offsetXaw&		`	 occurs.
 * @since 24{	HShadowOptions_GetOffsetX(OH_ArkUI_ShadowOptions* options, float* offsetXa	etaw z8.
 *
 * @param options shadow options.
 * @param offsetYaw z		`	 occurs.
 * @since 24{	GShadowOptions_SetOffsetY(OH_ArkUI_ShadowOptions* options, float offsetY 7	bwz8.
 *
 * @param options shadow options.
 * @param offsetYaw z		`	 occurs.
 * @since 24{	HShadowOptions_GetOffsetY(OH_ArkUI_ShadowOptions* options, float* offsetYa	o fill the insidX\with shadow.
 *
 * @param options shadow options.
 * @param isFill whether to fill the insidXwith shadow		`	 occurs.
 * @since 24{	BShadowOptions_SetFill(OH_ArkUI_ShadowOptions* options, bool isFill 7	whether to fill the insidX\with shadow.
 *
 * @param options shadow options.
 * @param isFill whether to fill the insidXwith shadow		`	 occurs.
 * @since 24{	ShadowOptions_GetFill(OH_ArkUI_ShadowOptions* options, bool* isFill);

/**
 * @brief Create a text style object.
 * When the ob ject is no longer in use, invokeQTextStyle_Destroy} to destroy it.
 *
 * @return A pointer to the text style objeco'7TextStyle* OH_ArkUI_TextEditorTextStyle_Create();

/**
ݙ
text stylemstyle Pointer to the object to be destroyed.
 * @since 24
 */
void OH_ArkUI_TextEditorTextStyle_Destroy(OH_ArkUI_TextEditorTextStyle* stylhj font color of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color font color		`	 occurs.
 * @since 24{	TTextEditorTextStyle_SetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t color 7	ifont color of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color font color		`	 occurs.
 * @since 24{	UTextEditorTextStyle_GetFontColor(OH_ArkUI_TextEditorTextStyle* style, uint32_t* colora	iet font size of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param size font size		`	 occurs.
 * @since 24{	JTextEditorTextStyle_SetFontSize(OH_ArkUI_TextEditorTextStyle* style, float_	`	ffont size of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param size font size		`	 occurs.
 * @since 24{	JTextEditorTextStyle_GetFontSize(OH_ArkUI_TextEditorTextStyle* style, float^	oSet font style of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontStyle font sty	p		 occurs.
 * @since 24{	bTextEditorTextStyle_SetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle fontStylh`	kfont style of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontStyle font sty	p		 occurs.
 * @since 24{	cTextEditorTextStyle_GetFontStyle(OH_ArkUI_TextEditorTextStyle* style,
    ArkUI_FontStyle* fontStylhe\text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontWeight font weigh\	`	 occurs.
 * @since 24{	ZTextEditorTextStyle_SetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t fontWeight 7	e\text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontWeight font weigh\	`	 occurs.
 * @since 24{	[TextEditorTextStyle_GetFontWeight(OH_ArkUI_TextEditorTextStyle* style, uint32_t* fontWeighta	et font family of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontFamily font family.
 * @return		`	 occurs.
 * @since 24{	]TextEditorTextStyle_SetFontFamily(OH_ArkUI_TextEditorTextStyle* style, const char* fontFamily 7	font family of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param buffer The buffer to which font family content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKjBUFFER_SIZE_ERROR} is return z	Ǘ	 occurs.
 * @since 24{	TextEditorTextStyle_GetFontFamily(OH_ArkUI_TextEditorTextStyle* style,
    char* buffer, int32_t bufferSize, int32_t* writeLengtha	 U	ext decoration options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text decoration options		`	 occurs.
 * @since 24{	JTextEditorTextStyle_SetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    	* options 7	ext decoration options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text decoration options		`	 occurs.
 * @since 24{	JTextEditorTextStyle_GetDecoration(OH_ArkUI_TextEditorTextStyle* style,
    	* optionsa	 U	ext shadow options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param options text shadow options.
 1* @param length the length of text shadow options		`	 occurs.
 * @since 24{	TextEditorTextStyle_SetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    const OH_ArkUI_ShadowOptions** options, int32_t length 7	ext shadow options of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param shadowOptions text shadow options.
 * @param shadowOptionsSize buffer size for shadow options.
 * @param writeLength the actual size of text shadow options i
n text sty	p		 occurs.
 * @since 24{	TextEditorTextStyle_GetTextShadows(OH_ArkUI_TextEditorTextStyle* style,
    OH_ArkUI_ShadowOptions** shadowOptions, uint32_t sh&adowOptionsSize, uint32_t* writeLengtha	 U	extatext style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param lineHeight text line heigh\	`	 occurs.
 * @since 24{	YTextEditorTextStyle_SetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t lineHeight 7	extatext style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param lineHeight text line heigh\	`	 occurs.
 * @since 24{	ZTextEditorTextStyle_GetLineHeight(OH_ArkUI_TextEditorTextStyle* style, int32_t* lineHeighta	etctext style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param letterSpacing letter spacing		`	 occurs.
 * @since 24{	cTextEditorTextStyle_SetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t letterSpacing 7	ctext style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param letterSpacing letter spacing		`	 occurs.
 * @since 24{	dTextEditorTextStyle_GetLetterSpacing(OH_ArkUI_TextEditorTextStyle* style,
    int32_t* letterSpacinga	et font feature of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param fontFeature font feature.
 * @ret		`	 occurs.
 * @since 24{	bTextEditorTextStyle_SetFontFeature(OH_ArkUI_TextEditorTextStyle* style,
    const char* fontFeaturh`	font feature of the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param buffer The buffer to which font feature content writes to the memory,
 *               memory space needs to be allocated by the developer.
 * @param bufferSize The buffer size
 * @param writeLength Indicates the string length actually written to the buffer
 *                    when returning".
 *                    Indicates the minimum buffer size that can accommodate the target
 *                    when {@link ARKjBUFFER_SIZE_ERROR} is return z	Ǘ	 occurs.
 * @since 24{	TextEditorTextStyle_GetFontFeature(OH_ArkUI_TextEditorTextStyle* style, char* buffer,
    int32_t bufferSize, int32_t* writeLengtha	half leading is enabled in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param halfLeading whether half leading is enabl z	Ǘ	 occurs.
 * @since 24{	XTextEditorTextStyle_SetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool halfLeading 7	whether half leading is enabled in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param halfLeading whether half leading is enabl z	Ǘ	 occurs.
 * @since 24{	YTextEditorTextStyle_GetHalfLeading(OH_ArkUI_TextEditorTextStyle* style, bool* halfLeadinga	 U	ext background color in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color text background color.		`	 occurs.
 * @since 24{	bTextEditorTextStyle_SetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t color 7	ext background color in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param color text background color.		`	 occurs.
 * @since 24{	cTextEditorTextStyle_GetTextBackgroundColor(OH_ArkUI_TextEditorTextStyle* style,
    uint32_t* colora	 U	vradiu\V in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param topLeftq^"ext background.
 * @param topRightq^!) of text background.
 * @param bottomLeftU %ext background.
 * @param bottomRightU/V of text backgroun!z	Ɨ	 occurs.
 * @since 24{	TextEditorTextStyle_SetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style, float topLeft,
    float topRight, float bottomLeft, float bottomRight 7	vradiu\V in the text style.
 *
 * @param style <b>TextEditor</b> text style.
 * @param topLeftq^"ext background.
 * @param topRightq^!) of text background.
 * @param bottomLeftU %ext background.
 * @param bottomRightU/V of text backgroun!z	Ɨ	 occurs.
 * @since 24{	TextEditorTextStyle_GetTextBackgroundRadius(OH_ArkUI_TextEditorTextStyle* style,
    float* topLeft, float* topRight, float* bottomLeft, float* bottomRighta	 U	preset typing style with+.
 *
 * @param controller <b>TextEditor</b>'.
 * @param style the preset typing sty	p		 occurs.
 * @since 24{	$ _SetTypingStyle(
    OH_&0* controller, OH_ArkUI_TextEditorTextStyle* stylh`	preset typing style with+.
 *
 * @param controller <b>TextEditor</b>'.
 * @param style the preset typing sty	p		 occurs.
 * @since 24{	$ _GetTypingStyle(
    OH_&0* controller, OH_ArkUI_TextEditorTextStyle* stylhbCreates a TextEditor selection menu options object.
 * When the object is no longer in use, invokeL;_Destroy} to destroy it.
 *
 * @return A pointer to the OH_<$	o&L* OH_<$_Create();

/**
ݙ!TextEditor selection menu optionsmoptions Pointer to theL2 object to be destroyed.
 * @since 24
 */
void OH_<$_Destroy(OH_<$	* optionsa	 	Nspan type of selection menu in TextEditor.
 *
 * @param options Pointer to theL/ object.
 * @param textEditorSpanType span type		`	 occurs.
 * @since 24{	B_SetSpanType(
    OH_<$5* options, OH_ArkUI_TextEditorSpanType textEditorSpan	WGets the span type of selection menu in TextEditor.
 *
 * @param options Pointer to theL/ object.
 * @param textEditorSpanType span type		`	 occurs.
 * @since 24{	B_GetSpanType(
    OH_<$6* options, OH_ArkUI_TextEditorSpanType* textEditorSpan			4Dof selection menu in TextEditor.
 *
 * @param options Pointer to theL object.
 * @param node contP			`	 occurs.
 * @since 24{	B_SetContentNode(OH_<$
* options,`	ZGets the content node of selection menu in TextEditor.
 *
 * @param options Pointer to theL object.
 * @param node contP			`	 occurs.
 * @since 24{	B_GetContentNode(OH_<$
* options,gO			Rresponse type of selection menu in TextEditor.
 *
 * @param options Pointer to theL- object.
 * @param responseType response type		`	 occurs.
 * @since 24{	B_SetResponseType(
    OH_<$3* options, OH_ArkUI_TextEditorResponseType response	[Gets the response type of selection menu in TextEditor.
 *
 * @param options Pointer to theL- object.
 * @param responseType response type		`	 occurs.
 * @since 24{	B_GetResponseType(
    OH_<$4* options, OH_ArkUI_TextEditorResponseType* response			Itype of selection menu in TextEditor.
 *
 * @param options Pointer to theL% object.
 * @param menuType menu type		`	 occurs.
 * @since 24{	B_SetMenuType(OH_<$)* options,
    OH_ArkUI_TextMenuType menu	RGets the type of selection menu in TextEditor.
 *
 * @param options Pointer to theL% object.
 * @param menuType Menu type		`	 occurs.
 * @since 24{	B_GetMenuType(OH_<$** options,
    OH_ArkUI_TextMenuType* menu			Qevent to be called when selection menu shows.
 *
 * @param options Pointer to theL object	User	0|	%	, of menu show.
 *     start The start offset*     end The end offset$*     callbackUserData The user data		`	 occurs.
 * @since 24{	B$_RegisterOnMenuShowCallback(
    OH_<$^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser			Qevent to be called when selection menu hides.
 *
 * @param options Pointer to theL object	user	0|	%	, of menu hide.
 *     start The start offset*     end The end offset*     userData The user data		`	 occurs.
 * @since 24{	B$_RegisterOnMenuHideCallback(
    OH_<$^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser			Sevent to be called when selection menu appears.
 *
 * @param options Pointer to theL object	user	0|	%	. of menu appear.
 *     start The start offset*     end The end offset*     userData The user data		`	 occurs.
 * @since 24{	B&_RegisterOnMenuAppearCallback(
    OH_<$^* options, void* userData,
    void (*callback)(int32_t start, int32_t end, void* callbackUser			Vevent to be called when selection menu disappears.
 *
 * @param options Pointer to theL object	user	0|	%	1 of menu disappear.
 *     userData The user data		`	 occurs.
 * @since 24{	B)_RegisterOnMenuDisappearCallback(
    OH_<$	* options:	
void* callbackUser			Yhaptic feedback mode of selection menu in TextEditor.
 *
 * @param options Pointer to theL, object.
 * @param mode haptic feedback mode		`	 occurs.
 * @since 24{	B_SetHapticFeedbackMode(
    OH_<$(* options, OH_ArkUI_HapticFeedbackMode ma	bGets the haptic feedback mode of selection menu in TextEditor.
 *
 * @param options Pointer to theL, object.
 * @param mode haptic feedback mode		`	 occurs.
 * @since 24{	B_GetHapticFeedbackMode(
    OH_<$)* options, OH_ArkUI_HapticFeedbackMode* ma	(Close selection menu of text editor with+.
 *
 * @param controller <b>TextEditor</b>		`	 occurs.
 * @since 24{	$ _CloseSelectionMenu(
    OH_&* controller 7	#s the selection of text editor with.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>Text
Editor</b>M.
 * @param start Start offset of selection.
 * @param end End offset of sele	`	 occurs.
 * @since 24{	$ _GetSelection(
    const OH_&,* controller, uint32_t* start, uint32_t* enda	 	of text editor.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b>D.
 * @param descriptor Pointer to a <b>ArkUI_StyledString_Descriptoral$	`	 occurs.
 * @since 24{	$ _SetStyledString(
    const OH_&=* controller, const ArkUI_StyledString_Descriptor* descriptor 7	of text editor.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b>D.
 * @param descriptor Pointer to a <b>ArkUI_StyledString_Descriptoral$	`	 occurs.
 * @since 24{	$ _GetStyledString(
    const OH_&7* controller, ArkUI_StyledString_Descriptor* descriptora	 	placeholder.
 *
 * @note All input pointer parameters must be allocated, managed, and released by the caller.
 * @param controller <b>TextEditor</b>D.
 * @param descriptor Pointer to a <b>ArkUI_StyledString_Descriptoral$	`	 occurs.
 * @since 24{	$ $_SetStyledPlaceholder(
    const OH_&* controller, const ArkUI_StyledString_Descriptor* descriptor);

/**
 * @brief Create the ArkUI_PickerIndicatorStyle instance.
 *
 * @param type The picker selection indicator enumeration type.
 * @return  ArkUI_PickerIndicatorStyle instance. If the instance returns a null pointer,
 *         it indicates creation failure, and the reason for the failure may be that the address s#pace is full or
 *         the type<	d3
*/
ArkUI_PickerIndicatorStyle* OH_ArkUI_PickerIndicatorStyle_Create(ArkUI_PickerIndicatorType typeA@y the ArkUI_PickerIndicatorStyle instance.
*
* @param style The ArkUI_PickerIndicatorStyle instance to be destroyed.
* @since 23O
*/
void OH_ArkUI_PickerIndicatorStyle_Dispose(ArkUI_PickerIndicatorStyle* stylP2background style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param background The parameters of background style}J%success;The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro"r code will be returned.
*        -	&the type is "background".
* @since 23
`	PickerIndicatorStyle_ConfigureBackground(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorBackground* background);

U2divider style.
*
* @param style The ArkUI_PickerIndicatorStyle instance.
* @param divider The parameters of divider style.
* @r}J%success;The parameters set need to be consistent with
*         the type of the created instance. If they are not consistent, this erro"r code will be returned.
*        -	#the type is "divider".
* @since 23
`	PickerIndicatorStyle_ConfigureDivider(ArkUI_PickerIndicatorStyle* style,
    ArkUI_PickerIndicatorDivider* divider);

/**
 * @b|cale options for matrix scaling%WMatrix4ScaleOptions ArkUI_Matrix4ScaleOptions;

/**
 * @brief Create an object of ArkUI_Matrix4ScaleOptions.
 *        In the newly created optionKs for the scaling coefficients in the x, y and z directions
 *        are 1!s for centerX, centerY are 0. 
 *a[a pointer to the newly created ArkUI_Matrix4ScaleOptions.
 * @since 24
 */
ArkUI_Matrix4ScaleOptions* OH_ArkUI_Matrix4ScaleOptiCons_Create();

/**
 * @brief Disposes the ArkUI_Matrix4ScaleOptionsm	options Patrix4ScaleOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4ScaleOptions_Dispose(ArkUI_Matrix4ScaleOptions* optionsa	 U	Wscaling factor in the x direction in ArkUI_Matrix4ScaleOptions. 
 *
 * @param options Platrix4ScaleOptions object.
 * @param scaleX The scaling factor in the x direction. Value range: (-∞, +∞)		a i,p		 occurs.
 * @since 24{	OMatrix4ScaleOptions_SetX(ArkUI_Matrix4ScaleOptions* options, const float scaleX 7	scaling factor in the x direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of x is never set, its default value is 1.
 *
 * @param options P>atrix4ScaleOptions object.
 * @param scaleX The scaling factorn	`	 occurs.
 * @since 24{	PMatrix4ScaleOptions_GetX(const ArkUI_Matrix4ScaleOptions* options, float* scaleXa	 U	Vscaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Platrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y direction. Value range: (-∞, +∞)		`	 occurs.
 * @since 24{	OMatrix4ScaleOptions_SetY(ArkUI_Matrix4ScaleOptions* options, const float scaleY 7	scaling factor in the y direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of y is never set, its default value is 1.
 *
 * @param options PLatrix4ScaleOptions object.
 * @param scaleY The scaling factor in the y dire	`	 occurs.
 * @since 24{	PMatrix4ScaleOptions_GetY(const ArkUI_Matrix4ScaleOptions* options, float* scaleYa	 U	Vscaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *
 * @param options Platrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z direction. Value range: (-∞, +∞)		`	 occurs.
 * @since 24{	OMatrix4ScaleOptions_SetZ(ArkUI_Matrix4ScaleOptions* options, const float scaleZ 7	scaling factor in the z direction in ArkUI_Matrix4ScaleOptions.
 *        If the value of z is never set, its default value is 1.
 *
 * @param options PLatrix4ScaleOptions object.
 * @param scaleZ The scaling factor in the z dire	`	 occurs.
 * @since 24{	PMatrix4ScaleOptions_GetZ(const ArkUI_Matrix4ScaleOptions* options, float* scaleZa	et x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation c-enter. The unit is px.
 *
 * @param options Patrix4ScaleOptions object.
 * @param centerX The x offset relative to the transformation center. Value range: (-∞, +∞).
 * 		`	 occurs.
 * @since 24{	VMatrix4ScaleOptions_SetCenterX(ArkUI_Matrix4ScaleOptions* options, const float centerX 7	value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerX is never set, itsP
 *
 * @param options Peatrix4ScaleOptions object.
 * @param centerX The x-direction offset relative to the transformation ce	`	 occurs.
 * @since 24{	WMatrix4ScaleOptions_GetCenterX(const ArkUI_Matrix4ScaleOptions* options, float* centerXa	et y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation c-enter. The unit is px.
 *
 * @param options Patrix4ScaleOptions object.
 * @param centerY The y offset relative to the transformation center. Value range: (-∞, +∞).
 * 		`	 occurs.
 * @since 24{	VMatrix4ScaleOptions_SetCenterY(ArkUI_Matrix4ScaleOptions* options, const float centerY 7	value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerY is never set, itsP
 *
 * @param options Peatrix4ScaleOptions object.
 * @param centerY The y-direction offset relative to the transformation ce	`	 occurs.
 * @since 24{	XMatrix4ScaleOptions_GetCenterY(const ArkUI_Matrix4ScaleOptions* options, float* centerY)p$rotation options for matrix rotating%WMatrix4RotationOptions ArkUI_Matrix4RotationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4RotationOptions.
 *        In the newly created options, the x, y, and z values in the direction vector specifying the rotation axis
 *        are undete6rmined; The default values for centerX, centerY are 0;,for angle is 0.
 *        If none of x, y, z are specified, it is equivalent to x=0, y=0, z=1, which means rotation around the z-axis.
 *        Once any one of x, y, z is specified, the remaining unspecified values are equivalent to 0.
 *
 * @return Retp[a pointer to the newly created ArkUI_Matrix4RotationOptions.
 * @since 24
 */
ArkUI_Matrix4RotationOptions* OH_ArkUI_Matrix4RotOationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4RotationOptionsm	options Patrix4RotationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4RotationOptions_Dispose(ArkUI_Matrix4RotationOptions* optionsa	 U	nvalue of the direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Patrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis direction. Value range: (-∞, +∞)		`	 occurs.
 * @since 24{	PMatrix4RotationOptions_SetX(ArkUI_Matrix4RotationOptions* options, const float x 7	/	direction vector for the x-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of x is never set, its value 8will be undefined, so the function will return
 *       a~.
 *
 * @param options P_atrix4RotationOptions object.
 * @param x The value of the direction vector for the x-axis dire	`	 occurs.
 * @since 24{	QMatrix4RotationOptions_GetX(const ArkUI_Matrix4RotationOptions* options, float* xa	 U	nvalue of the direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Patrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis direction. Value range: (-∞, +∞)		`	 occurs.
 * @since 24{	PMatrix4RotationOptions_SetY(ArkUI_Matrix4RotationOptions* options, const float y 7	/	direction vector for the y-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of y is never set, its value 8will be undefined, so the function will return
 *       a~.
 *
 * @param options P_atrix4RotationOptions object.
 * @param y The value of the direction vector for the y-axis dire	`	 occurs.
 * @since 24{	QMatrix4RotationOptions_GetY(const ArkUI_Matrix4RotationOptions* options, float* ya	 U	nvalue of the direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *
 * @param options Patrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis direction. Value range: (-∞, +∞)		`	 occurs.
 * @since 24{	PMatrix4RotationOptions_SetZ(ArkUI_Matrix4RotationOptions* options, const float z 7	/	direction vector for the z-axis direction in ArkUI_Matrix4RotationOptions.
 *        If the value of z is never set, its value 8will be undefined, so the function will return
 *       a~.
 *
 * @param options P_atrix4RotationOptions object.
 * @param z The value of the direction vector for the z-axis dire	`	 occurs.
 * @since 24{	QMatrix4RotationOptions_GetZ(const ArkUI_Matrix4RotationOptions* options, float* za	 U	gvalue of the rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *
 * @param options Patrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptions. Value range: (-	, +∞)		`	 occurs.
 * @since 24{	WMatrix4RotationOptions_SetAngle(ArkUI_Matrix4RotationOptions* options, const float anglh`	/	rotation angle in ArkUI_Matrix4RotationOptions. The unit is degree.
 *        If the value of angle is never set, its default vP

 *
 * @param options Pmatrix4RotationOptions object.
 * @param angle The value of the rotation angle in ArkUI_Matrix4RotationOptions		`	 occurs.
 * @since 24{	XMatrix4RotationOptions_GetAngle(const ArkUI_Matrix4RotationOptions* options, float* anglh x offset relative to the transformation center. 0 means no additional x-direction offset from the
 *        transformation cen+ter. The unit is px.
 *
 * @param options Patrix4RotationOptions object.
 * @param centerX The x offset relative to the transformation center. Value range: (-∞, +∞).
		`	 occurs.
 * @since 24{	\Matrix4RotationOptions_SetCenterX(ArkUI_Matrix4RotationOptions* options, const float centerX 7	value of centerX from the options, which represents the x-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerX is never set, itsP
 *
 * @param options Phatrix4RotationOptions object.
 * @param centerX The x-direction offset relative to the transformation ce	`	 occurs.
 * @since 24{	]Matrix4RotationOptions_GetCenterX(const ArkUI_Matrix4RotationOptions* options, float* centerXa	et y offset relative to the transformation center. 0 means no additional y-direction offset from the
 *        transformation c-enter. The unit is px.
 *
 * @param options Patrix4RotationOptions object.
 * @param centerY The y offset relative to the transformation center. Value range: (-∞, +∞).
		`	 occurs.
 * @since 24{	\Matrix4RotationOptions_SetCenterY(ArkUI_Matrix4RotationOptions* options, const float centerY 7	value of centerY from the options, which represents the y-direction offset relative to the
 *        transformation center. The6 unit is px. If the value of centerY is never set, itsP
 *
 * @param options Phatrix4RotationOptions object.
 * @param centerY The y-direction offset relative to the transformation ce	`	 occurs.
 * @since 24{	^Matrix4RotationOptions_GetCenterY(const ArkUI_Matrix4RotationOptions* options, float* centerY)p%lation options for matrix translating%WMatrix4TranslationOptions ArkUI_Matrix4TranslationOptions;

/**
 * @brief Create an object of ArkUI_Matrix4TranslationOptions.
% *        In the newly created options for x, y and z are 0.
 *a[a pointer to the newly created ArkUI_Matrix4TranslationOptions.
 * @since 24
 */
ArkUI_Matrix4TranslationOptions* OH_ArkUI_Matr[ix4TranslationOptions_Create();

/**
 * @brief Disposes the ArkUI_Matrix4TranslationOptionsm	options Patrix4TranslationOptions instance to be destroyed.
 * @since 24
 */
void OH_ArkUI_Matrix4TranslationOptions_Dispose(ArkUI_Matrix4TranslationOptions* optionsa	 U	htranslation value in the x-axis direction. The unit is px.
 *        If the value of x is never set, itsP
 *
 * @param options Patrix4TranslationOptions object.
 * @param x The translation value in the x-axis direction. Value range: (-∞, +∞).
 * @retu		`	 occurs.
 * @since 24{	VMatrix4TranslationOptions_SetX(ArkUI_Matrix4TranslationOptions* options, const float x 7	eranslation value in the x-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options PUatrix4TranslationOptions object.
 * @param x The translation value in the x-axis dire	`	 occurs.
 * @since 24{	WMatrix4TranslationOptions_GetX(const ArkUI_Matrix4TranslationOptions* options, float* xa	 U	htranslation value in the y-axis direction. The unit is px.
 *        If the value of y is never set, itsP
 *
 * @param options Patrix4TranslationOptions object.
 * @param y The translation value in the y-axis direction. Value range: (-∞, +∞).
 * @retu		`	 occurs.
 * @since 24{	VMatrix4TranslationOptions_SetY(ArkUI_Matrix4TranslationOptions* options, const float y 7	eranslation value in the y-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options PUatrix4TranslationOptions object.
 * @param y The translation value in the y-axis dire	`	 occurs.
 * @since 24{	WMatrix4TranslationOptions_GetY(const ArkUI_Matrix4TranslationOptions* options, float* ya	 U	htranslation value in the z-axis direction. The unit is px.
 *        If the value of z is never set, itsP
 *
 * @param options Patrix4TranslationOptions object.
 * @param z The translation value in the z-axis direction. Value range: (-∞, +∞).
 * @retu		`	 occurs.
 * @since 24{	VMatrix4TranslationOptions_SetZ(ArkUI_Matrix4TranslationOptions* options, const float z 7	eranslation value in the z-axis direction from ArkUI_Matrix4TranslationOptions.
 *
 * @param options PUatrix4TranslationOptions object.
 * @param z The translation value in the z-axis dire	`	 occurs.
 * @since 24{	Matrix4TranslationOptions_GetZ(const ArkUI_Matrix4TranslationOptions* options, float* z);

/**
 * @brief Create an identity matrix4 object.
 *a[`reated identity matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_CreateIdentity(a	5pecify each element of the matrix to create a matrix4m	lements Pexpected matrix element data. The length of array should be greater than
 *                 or equal to 16. The parameter must _$newly created matrix4 object.
 *         If the pointer of elements is null, the function will return null.
 * @since 24
 */
ArhkUI_Matrix4* OH_ArkUI_Matrix4_CreateByElements(const float* elements);

/**
 * @brief Disposes a matrix4mmatrix Pointer to the matrix4 object to be disposed.
 * @since 24
 */
void OH_ArkUI_Matrix4_Dispose(ArkUI_Matrix4* matrix);

/*(*
 * @brief Create a copy of the matrix4m&matrix Pointer to the original matrix4q	 newly created matrix4 object.
 * @since 24
 */
ArkUI_Matrix4* OH_ArkUI_Matrix4_Copy(const ArkUI_Matrix4* matrix);

/**
 * @brief Perform an inverse matrix transformation on the input matrix.
 *        If the matrix is invertible, this function will modify the input matrix; otherwise, the matrix will remain
 *        unchanged and an error code will be returned.
 *
 * @param matr,ix Pointer to the matrix4 object to be inver	*the matrix is not invertible.
 * @since 24{	Matrix4_Invert(ArkUI_Matrix4* matrix);

/**
 * @brief Combine another matrix with the original matrix, and storing the resulting matrix in oriMatrix.
 *        The resulting matrix is equivalent to first applying the transformation of oriMatrix and then ^applying
 *        the transformation of anotherMatrix. This function will alter the oriMatrixmoriMatrix Pointer to the original matrix4 object.
 * @param anotherMatrix Pointer to another matrix object to be combined.
 * @(z		 occurs.
 * @since 24{	Matrix4_Combine(ArkUI_Matrix4* oriMatrix, const ArkUI_Matrix4* anotherMatrix);

/**
 * @brief Apply a tranlation transformation to the original matrix to obtain the translated matrix. Each translation
 *        transformation is applied cumulatively. Thi&s function will alter the input matrixmmmatrix Pointer to the matrix4 object to be translated.
 * @param translate Pointer to the translation options		`	 occurs.
 * @since 24{	XMatrix4_Translate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4TranslationOptions* translathApply a scale transformation to the original matrix to obtain the scaled matrix. Each scale
 *        transformation is applied8 cumulatively. This function will alter the input matrixm_matrix Pointer to the matrix4 object to be scaled.
 * @param scale Pointer to the scale options		`	 occurs.
 * @since 24{	JMatrix4_Scale(ArkUI_Matrix4* matrix, const ArkUI_Matrix4ScaleOptions* scalhApply a rotation transformation to the original matrix to obtain the rotated matrix. Each rotation
 *        transformation is ?applied cumulatively. This function will alter the input matrixmdmatrix Pointer to the matrix4 object to be rotated.
 * @param rotate Pointer to the rotation options		`	 occurs.
 * @since 24{	OMatrix4_Rotate(ArkUI_Matrix4* matrix, const ArkUI_Matrix4RotationOptions* rotathApply a skew transformation to the original matrix to obtain the skewed matrix. Each skew
 *        transformation is applied c6umulatively. This function will alter the input matrixmgmatrix Pointer to the matrix4 object to be skewed. It must not be null.
 * @param skewX Skew coefficienm-* @param skewY Skew coefficient in the y dire	`	 occurs.
 * @since 24{	Matrix4_Skew(ArkUI_Matrix4* matrix, const float skewX, const float skewY);

/**
 * @brief Calculate the new coordinate position of a point after it has been transformed by a matrix.
 *        The calculated transformed coordinate point will be filled into the ArkUI_PointF structure
 *        pointed to by result.
 *
 * @param matrix Pointer to the matrix4 object.
 * @param oriPodint Pointer to the original coordinate point.
 * @param result Pointer to the result point. It must _$	`	 occurs.
 * @since 24{	Matrix4_TransformPoint(const ArkUI_Matrix4* matrix, const ArkUI_PointF* oriPoint, ArkUI_PointF* result);

/**
 * @brief Map the vertex coordinates of one polygon to the vertex coordinates of another polygon, and calculate the required
 *        matrix. The resulting matrix will be filled into the object pointed to by matrix.
 * 
 * @param matrix Pointer to the original matrix4 object. The result matrix will be filled into the object pointed to by it.
 *               It must not be null.
 * @param src Pgoriginal polygon coordinate points. The array should be at least as long as pointCount.
 * @param dst Ppolygon coordinate points after mapping. The array should be at least as long as pointCount.
 * @param pointCount The number ofA polygon points, which must be one of the values 0, 1, 2, 3, or 4		`	 occurs.
 * @since 24{	Matrix4_SetPolyToPoly(ArkUI_Matrix4* matrix, const ArkUI_PointF* src, const ArkUI_PointF* dst, const uint32_t pointCount);

/**X*	16 elements of the matrix and fill them into the array pointed to by result.
 *        The array pointed to by result must have space for 16 float elements.
 *
 * @param matrix Pointer to the original matrix4 object.
 * @param result Pointer to an array that can holdmIt must _$	`	 occurs.
 * @since 24{	?Matrix4_GetElements(const ArkUI_Matrix4* matrix, float* result)pef of tex/
hhpconfiguration of tex/je`e,;

/**
 * @brief Create an option object forf5 of text.
 *
 * @return A pointer to the option objeco
h*h6_Create();

/**
 * @brief Destroy an option object forfa of text.
 *
 * @param option Pointer to the option object to be destroyed.
 * @since 24
 */
voidh	_Destroy(hV			5enableVariableFontWeight flag of an option object forfB of text.
 * The flag defines whether VariableFontWeight is suppor9`I(
 * True means enable VariableFontWeight1- VariableFontWeight.
 *
 * @param option Pointer to the option object to be modified.
 * @param enable enableVariableFontWeight Flag.
 * @since 24
 */
voidh_SetEnableVariableFontWeight(h* option, bool enablh>Gets the enableVariableFontWeight flag of an option object forfB of text.
 * The flag defines whether VariableFontWeight is suppor9`I(
 * True means enable VariableFontWeight1-> VariableFontWeight.
 *
 * @param option Pointer to the optionq	 4enableVariableFontWeight flag.
 * @since 24
 */
boolh_GetEnableVariableFontWeight(hV			;enableDeviceFontWeightCategory flag of an option object forf of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The dٸtrue.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means foRnt weight will not be automatically updated when the device's font weight categoryA(	option Pointer to the option object to be modified.
 * @param enable enableDeviceFontWeightCategory Flag.
 * @since 24
 */
voidh#_SetEnableDeviceFontWeightCategory(h* option, bool enable);
 
/**
 * @brief Gets the enableDeviceFontWeightCategory flag of an option object for font weight configf of text.
 * Defines whether font weight will be automatically updated when the device's font weight category changes.
 * The dٸtrue.
 * True means font weight will be automatically updated when the device's font weight category changes.
 * False means foRnt weight will not be automatically updated when the device's font weight categoryA(	option Pointer to the optionq	 :enableDeviceFontWeightCategory flag.
 * @since 24
 */
boolh#_GetEnableDeviceFontWeightCategory(hV	cCreate an option object for font configuration of text.
 *
 * @return A pointer to the option objecoje*`e_Create();

/**
 * @brief Destroy an option object for font configuration of text.
 *
 * @param option Pointer to the option ob+ject to be destroyed.
 * @since 24
 */
void`e	_Destroy(aeV			font weight configs of an option object for font configuration of text.
 *
 * @param option Pointer to the option object to be Pmodified.
 * @param fontWeightConfigs font weight configs.
 * @since 24
 */
void`e_SetFontWeightConfigs(ae* option,
   h* fontWeightConfigs);
 
/**
 * @brief Gets the font weight configs of an option object for font configuration of text.
 *
 * @p!aram option Pointer to the optionq	 font weight configs	o
h*`e_GetFontWeightConfigs(aeV	tree operating status forV	.
 *al		, the initial value of the node tree operating status. Nodes in this status do not support cross-language node tree operations.bh(OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINEDOiEnable, which means that when the option is applied to the node, the node's tree operating status will be; OH_ARKUI_TREE_OPERATING_STATUS_ENABLE = 1,
    /**
     * Disable, which means that when the option is applied to the node, the) node's tree operating status will be dis>1OH_ARKUI_TREE_OPERATING_STATUS_DISABLE = 2,
} OH_W	eratingStatus	tree operating status forV	u#	U	 :.
 * @param status The tree operating status to be set forV	<.
 * Default value: OH_ARKUI_TREE_OPERATING_STATUS_UNDEFINED`l	void OH_W	_SetTreeOperatingStatus(W	V	, OH_W	eratingStatus status 7	s the tree operating status ofV	u#	U	 5	7	ree operating status ofV	`l	OH_W	eratingStatus OH_W	_GetTreeOperatingStatus(W	V	@linear gradient options.
 *al	v	V:Options OH_P:Optionspradial gradient options.
 *al	v	RadialGradientOptions OH_ArkUI_RadialGradientOptions;

/**
 * @brief Creates a linear gradient options object.
 * The returned )object must be released by calling <b>OH_P:8Options_Destroy</b>.
 *
 * @return Pointer to the <b>OH_P:Options</b> object`l	OH_P:Options* OH_P:COptions_Create();

/**
 * @brief Destroys a linear gradient optionsmoptions Pointer to the <b>OH_P:Options</b> object`l	void OH_P:Options_Destroy(OH_P:Options* optionsa	 	Langle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:?Options</b> object.
 * @param angle Start angle of linear gradi\			V:Options_SetAngle(OH_P:Options* options, float anglhQGets angle of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:NOptions</b> object.
 * @param angle Pointer to the start angle of linear gradi\			V:Options_GetAngle(const OH_P:Options* options, float* anglhPdirection of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:FOptions</b> object.
 * @param direction Direction of linear gradient.
&7				V:Options_SetDirection(OH_P:Options* options,
   O: direc	UGets direction of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:UOptions</b> object.
 * @param direction Pointer to the direction of linear gradient.
&7				V:Options_GetDirection(const OH_P:Options* options,
   O:* direc		 b%G in linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:/Options</b> object.
 * @param repeating Whethera%	(		V:Options_SetRepeating(OH_P: Options* options, bool repeating 7		s whethera%G in linear gradient options.
 *
 * @param options Pointer to the <b>OH_P::Options</b> object.
 * @param repeating Pointer to whethera%	(		V:#Options_GetRepeating(
    const OH_P:!Options* options, bool* repeatinga	 	Rcolor stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:9Options</b> object.
 * @param colors Pointer to the colorfops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           T$in colors and stops must be the same				V:Options_SetColorStop(
    OH_P:UOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSa	WGets color stops of linear gradient options.
 *
 * @param options Pointer to the <b>OH_P:@Options</b> object.
 * @param colors Buffer pointer to the colorfops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           Tin colors and stops must be the same.
 *                           It should be larger than writeLength,
 *                    *       otherwise the operation will returna~>.
 * @param writeLength Number of color stops actually written		`	 occurs		V:#Options_GetColorStop(
    const OH_P:Options* options, uint32_t* colors, float* stops, int32_t colorsAndStopsSize,
    int32_t* writeLength);

/**
 * @brief CreatesҸoptions object.
 * The returned object must be released by calling <b>OH_ArkUI_RadialGradientOptions_Destroy</b>.
 *
 * @return< Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object`l	_OH_ArkUI_RadialGradientOptions* OH_ArkUI_RadialGradientOptions_Create();

/**
 * @brief DestroyѸoptionsmCoptions Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object`l	Svoid OH_ArkUI_RadialGradientOptions_Destroy(OH_ArkUI_RadialGradientOptions* optionsa	 	centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param# centerX X-coordinate of center poi\			WRadialGradientOptions_SetCenterX(OH_ArkUI_RadialGradientOptions* options, float centerX 7	s centerX of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @par4am centerX Pointer to the X-coordinate of center poi\			cRadialGradientOptions_GetCenterX(
    const OH_ArkUI_RadialGradientOptions* options, float* centerXa	 	centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param# centerY Y-coordinate of center poi\			WRadialGradientOptions_SetCenterY(OH_ArkUI_RadialGradientOptions* options, float centerY 7	s centerY of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @par4am centerY Pointer to the Y-coordinate of center poi\			cRadialGradientOptions_GetCenterY(
    const OH_ArkUI_RadialGradientOptions* options, float* centerYa	 	radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param radius Radius of radial gradi\			URadialGradientOptions_SetRadius(OH_ArkUI_RadialGradientOptions* options, float radius 7	s radius of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @para.m radius Pointer to the radius of radial gradi\			aRadialGradientOptions_GetRadius(
    const OH_ArkUI_RadialGradientOptions* options, float* radiusa	 	 b% in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Whethera%	(		ZRadialGradientOptions_SetRepeating(OH_ArkUI_RadialGradientOptions* options, bool repeating 7		s whethera% in radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @param repeating Pointer to whethera%	(		fRadialGradientOptions_GetRepeating(
    const OH_ArkUI_RadialGradientOptions* options, bool* repeatinga	 	color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
 * @p aram colors Pointer to the colorfops Pointer to the stop array.
 * @param colorsAndStopsSize Number of elements in colors and stops.
 *                           T$in colors and stops must be the same				RadialGradientOptions_SetColorStop(
    OH_ArkUI_RadialGradientOptions* options, const uint32_t* colors, const float* stops, int32_t colorsAndStopsSa	Gets color stops of radial gradient options.
 *
 * @param options Pointer to the <b>OH_ArkUI_RadialGradientOptions</b> object.
, * @param colors Buffer pointer to the colorfops Buffer pointer to the stop array.
 * @param colorsAndStopsSize Buffer size reserved for color stops by developer.
 *                           Tin colors and stops must be the same.
 *                           It should be larger than writeLength,
 *             otherwise the operation will returna~>.
 * @param writeLength Number of color stops actually written		`	 occurs		RadialGradientOptions_GetColorStop(
    const OH_ArkUI_RadialGradientOptions* options, uint32_t* colors, float* stops, int32_t -colorsAndStopsSize,
    int32_t* writeLength),ion of the policy for mounting child node to^		fl	YIf you want to mount a RenderNode as a child node, that RenderNode must be the only childah0OH_ARKUI_NODE_MOUNT_POLICY_SINGLE_IF_RENDER_NODEO5Multiple child nodes of type Node or RenderNode allowA'OH_ARKUI_NODE_MOUNT_POLICY_MIXED = 1,
}	;	6TYPE_H
/** @} */
4x'~Fe%S23KsS3K22K*j_"xpt<
Z\
@>=`ojJfi.vS;}fQ82CVHV(`aw2+6KiL@,祰w i{xbv/*
 * Copyright (C) 2023ѱs/**
 * @addtogroup OH_Camera the definition of the C interface for the camera module.
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file camera.h
 *
 * @brieJbasic APIs of the camera.
 * 
 * @library libohcamera.so
 * @kit CameraKitMultimedia.Camera.Core
 * @since 11
 * @version 1.0
 */

#ifndef NATIVE_INCLUDE_CAMERA_CAMERA_H
#define NATIVE_INCLUDE_CAMERA_CDAMERA_H

#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>8IThe struct describes the camera manager.
 * 
 * @since 11
 * @version 1.0ACamera_Manager Camera_Managh1amera error codes.
 * 
 * @since 11
 * @version 1оCamera_ErrorCode {*camera is normal.
     */
    CAMERA_OK = jA parameter is missing or the parameter type is incorrect.
     */
    CAMERA_INVALID_ARGUMENT = 7400101,
Noperation is not allowed.
     */
    CAMERA_OPERATION_NOT_ALLOWED = 7400102,
Lsession is not configured.
     */
    CAMERA_SESSION_NOT_CONFIG = 7400103,
Jsession is not running.
     */
    CAMERA_SESSION_NOT_RUNNING = 7400104,
Usession configuration is locked.
     */
    CAMERA_SESSION_CONFIG_LOCKED = 7400105,
Ndevice setting is locked.
     */
    CAMERA_DEVICE_SETTING_LOCKED = 7400106,
Fdevice is already started.
     */
    CAMERA_CONFLICT_CAMERA = 740010a[The camera is disabled for security reasons.
     */
    CAMERA_DEVICE_DISABLED = 7400108,
Dcamera is preempted.
     */
    CAMERA_DEVICE_PREEMPTED = 7400109,
6configuration conflicts with the current configurationN12
     */
    CAMERA_UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS = 74001The camera service>no camera permission, camera service restart, or abnormal cross-
     * process invocation.
     */
    CAMERA_SERVICE_FATAL_ERROR = 7400201
} Camera_ErrorC|#/camera statuses.
 * 
 * @since 11
 * @version 1оTCamera_Status {
    /**
     * A camera appears.
     */
    CAMERA_STATUS_APPEAR = @The camera disappears.
     */
    CAMERA_STATUS_DISAPPEAR = 1,
>camera is available.
     */
    CAMERA_STATUS_AVAILABLE = 2,
Pcamera is unavailable.
     */
    CAMERA_STATUS_UNAVAILABLE = 3
} Camera_Status? 2camera scene modes.
 * 
 * @since 12
 * @version 1оCamera_SceneModermal photo mode.
     */
    NORMAL_PHOTO = 1,

    /**
     * Normal video mode.
     */
    NORMAL_VIDEO = 2,

    /**
     * Secure mode, which is mainly provided for high-security applications like banking that require features such as
     * biometric verification. The secure mode requires the encryption algorithm framework and trusted application
     * services. For details,
     * see [Device Certificate Kit](docroot://security/DeviceCertificateKit/device-certificate-kit-intro.md).
     */
    SECURE_PHOTO = 12
} Camera_Scenep$0camera positions.
 * 
 * @since 11
 * @version 1оCamera_Position {
    /**
     * A camera that does not have a fixed orientation relative to the device screen.
     */
    CAMERA_POSITION_UNSPECIFIED = Rear camera.
     */
    CAMERA_POSITION_BACK = 1,

    /**
     * Front camera.
     */
    CAMERA_POSITION_FRONT = 2
} Camera_Posi$,camera types.
 * 
 * @since 11
 * @version 1оCamera_Type5/camera type.
     */
    CAMERA_TYPE_DEFAULT = Wide camera.
     */
    CAMERA_TYPE_WIDE_ANGLE = 1,

    /**
     * Ultra-wide camera.
     */
    CAMERA_TYPE_ULTRA_WIDE = 2,

    /**
     * Telephoto camera.
     */
    CAMERA_TYPE_TELEPHOTO = 3,

    /**
     * Camera with depth of field informatio3n.
     */
    CAMERA_TYPE_TRUE_DEPTH = 4
} Camera_%6amera connection types.
 * 
 * @since 11
 * @version 1о]Camera_Connection {
    /**
     * Built-in camera.
     */
    CAMERA_CONNECTION_BUILT_IN = Camera connected using USB.
     */
    CAMERA_CONNECTION_USB_PLUGIN = 1,

    /**
     * Remote camera.
     */
    CAMERA_CON NECTION_REMOTE = 2
} Camera_Conn_Sensor color filter arrangementq#fOH_Camera_SensorColorFilterArrangement{
    /**
     * Blue-Green-Green-Red (BGGR) filter arrangement.!CAMERA_SENSOR_CFA_BGGR = /Green-Blue-Red-Green (GBRG) filter arrangement.![CAMERA_SENSOR_CFA_GBRG = 1,

    /**
     * Green-Red-Green-Blue (GRBG) filter arrangement.!\CAMERA_SENSOR_CFA_GRBG = 2,

    /**
     * Red-Green-Green-Blue (RGGB) filter arrangement. !?CAMERA_SENSOR_CFA_RGGB = 3
} OH_Camera_SensorColorFilterArrangeQ$5camera output formats.
 * 
 * @since 11
 * @version 1оnCamera_Format {
    /**
     * RGBA 8888.
     */
    CAMERA_FORMAT_RGBA_8888 = 3,

    /**
     * DNG Format.ACAMERA_FORMAT_DNG = 4,

    /**
     * Enhanced DNG image format. "CAMERA_FORMAT_DNG_XDRAW = 5,

    /**
     * YUV 420 SP.
     */
    CAMERA_FORMAT_YUV_420_SP = 1003,

    /**
     * JPEG.
   !  */
    CAMERA_FORMAT_JPEG = 200YCBCR P010.
     * 
     * @since 12
     */
    CAMERA_FORMAT_YCBCR_P010 = 2001,

    /**
     * YCRCB P010.
     * 
     * @sRince 12
     */
    CAMERA_FORMAT_YCRCB_P010 = 2002,

    /**
     * HEIC.
     * T*CAMERA_FORMAT_HEIC = 2003,
} Camera_Format? +flash modes.
 * 
 * @since 11
 * @version 1оCamera_FlashMode {-flash is off.
     */
    FLASH_MODE_CLOSE = 2The flash is on.
     */
    FLASH_MODE_OPEN = 1,
0flash is auto.
     */
    FLASH_MODE_AUTO = 2,
Iflash is steady on.
     */
    FLASH_MODE_ALWAYS_OPEN = 3
} Camera_Flashp for flash statp$JOH_Camera_FlashState {
    /**
     * Flash is unavailable, default value.$OH_CAMERA_FLASH_STATE_UNAVAILABLE = 2This status indicates that the flash is available.!`CAMERA_FLASH_STATE_READY = 1,

    /**
     * This status indicates that flashing can be performaI 1CAMERA_FLASH_STATE_FLASHING = 2
} OH_Camera_Flash!%.exposure modes.
 * 
 * @since 11
 * @version 1оBCamera_ExposureMode {
    /**
     * Unspecified exposure.
     * EXPOSURE_MODE_UNSPECIFIED = -1,

    /**
     * Exposure locked. The metering point cannot be set.<br>After this mode is used, ithe exposure will be locked by
     * default for each photo capture.
     */
    EXPOSURE_MODE_LOCKED = Auto exposure. The metering point can be set by calling {@link OH_CaptureSession_SetMeteringPoint}.
     * 
     * After this mode is used, it takes effect only for the first photo capture.
     */
    EXPOSURE_MODE_AUTO = 1,

    /**
     * Continuous a4uto exposure.<br>After this mode is used, the camera0adjusts the exposure based
     * on the environment changes each time.
     */
    EXPOSURE_MODE_CONTINUOUS_AUTO = 2,

    /**
     * Manual exposure? *EXPOSURE_MODE_MANUAL = 3
} Camera_Exposurep for exposure meteringOH_Camera_ExposureMeteringMode {
    /**
     * Matrix metering mode: Measures the light in the whole frame, ideal for shooting natural landscapes.!iCAMERA_EXPOSURE_METERING_MODE_MATRIX = 0,

    /** 
     * Center metering mode: Focuses in on light neara%screen, ideal for shooting portraits.!CAMERA_EXPOSURE_METERING_MODE_CENTER = 1,

    /**
     * Spot metering mode: Focuses in on light from a specific tiny region, such as a subject's eyes.!CCAMERA_EXPOSURE_METERING_MODE_SPOT = 2
} OH_Camera_ExposureMeteringp camera exposure states.#OH_Camera_ExposureState {at the exposure is in scanningA/ OH_CAMERA_EXPOSURE_STATE_SCAN = at the exposure has convergaI0;OH_CAMERA_EXPOSURE_STATE_CONVERGED = 1
} OH_Camera_Exposure!%white balance modes.
 * 
 * @since 20
 * @version 1.0
 */

typedef enum Camera_WhiteBalanceMode {
    /**
     * Automatic.
   *  */
    CAMERA_WHITE_BALANCE_MODE_AUTO = 8Cloudy.
     */
    CAMERA_WHITE_BALANCE_MODE_CLOUDY = 1candescent light.
     */
    CAMERA_WHITE_BALANCE_MODE_INCANDESCENT = 2,

    /**
     * Fluorescence light.
     */
    CAMERA_WHITE_BALANCE_MODE_FLUORESCENT = 3,

    /**
     * Daylight.
     */
    CAMERA_WHITE_BALANCE_MODE_DAYLIGHT = 4,

    /**
     * Manual.
     */
    CAMERA_WHITE_BALANCE_MODE_MANUAL = 5,

    /**
     * Locked.
     */
    CAMERA_WHITE_BALANCE_MODE_LOCKED = 6,
} Camera_WhiteBalancep$V%modes.
 * 
 * @since 11
 * @version 1оPCamera_FocusMode {
    /**
     * Manual focus.
     */
    FOCUS_MODE_MANUAL = CContinuous auto focus.
     */
    FOCUS_MODE_CONTINUOUS_AUTO = 1,
flash is auto.
     */
    FOCUS_MODE_AUTO = 2,

    /**
     * Focus locked.
     */
    FOCUS_MODE_LOCKED = 3
} Camera_FocusMp#V&states.
 * 
 * @since 11
 * @version 1оLCamera_FocusState {
    /**
     * Focusing.
     */
    FOCUS_STATE_SCAN = Focused.
     */
    FOCUS_STATE_FOCUSED = 1,

    /**
     * Unfocused.
     */
    FOCUS_STATE_UNFOCUSED = 2
} Camera_FocusSt##9video stabilization modes.
 * 
 * @since 11
 * @version 1оCamera_VideoStabilizationMode {
    /**
     * Video stabilization is disabled.
     */
    STABILIZATION_MODE_OFF = 0,

    /*˓	The basic video stabilization algorithm is used.
     */
    STABILIZATION_MODE_LOW = 1,

    /**
     * A video stabilization algorithm with a stabilization effect better than that of the **LOW** type is used.
     */
    STABILIZATION_MODE_MIDDLE = 2,

    /**
     * A video stabilization algorithm with a stabilization effect better than that of the **MIDDLE** type is used.
     */
    STABILIZATION_MODE_HIGH = 3,

    /**
     * Automatic video stabilization is used. This value is available for HDF cFameras.
     */
    STABILIZATION_MODE_AUTO = 4
} Camera_VideoStabiliz)*ion angles.
 * 
 * @since 11
 * @version 1оCamera_ImageRotation {image rotates 0 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_0}
  .   *  instead.
     */
    IAMGE_ROTATION_0 = $The image rotates 0 degrees.
     * TCAMERA_IMAGE_ROTATION_0 = The image rotates 90 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION_690}
     *  instead.
     */
    IAMGE_ROTATION_90 = 9%The image rotates 90 degrees.
     * TCAMERA_IMAGE_ROTATION_90 = 9The image rotates 180 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION:_180}
     *  instead.
     */
    IAMGE_ROTATION_180 = 18&The image rotates 180 degrees.
     * TCAMERA_IMAGE_ROTATION_180 = 18The image rotates 270 degrees.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_IMAGE_ROTATION:_270}
     *  instead.
     */
    IAMGE_ROTATION_270 = 27&The image rotates 270 degrees.
     * T2CAMERA_IMAGE_ROTATION_270 = 270
} Camera_ImageRota$.quality levels.
 * 
 * @since 11
 * @version 1оZCamera_QualityLevel {
    /**
     * High image quality.
     */
    QUALITY_LEVEL_HIGH = Medium image quality.
     */
    QUALITY_LEVEL_MEDIUM = 1,

    /**
     * Low image quality.
     */
    QUALITY_LEVEL_LOW = 2
} Camera_QualityLevel? 5metadata object types.
 * 
 * @since 11
 * @version 1оCamera_MetadataObjectType {
    /**
     * Metadata object used for face detection.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_METADATA_OBJECT_TYPE_FACE_DETECTION}
     *  instead.
     */
    FACE_DETECTION = 0,

 Ɠ0Metadata object used for face detection.
     * T-CAMERA_METADATA_OBJECT_TYPE_FACE_DETECTION = 0Metadata object used for body detection.
     * TBCAMERA_METADATA_OBJECT_TYPE_HUMAN_BODY = 1
} Camera_MetadataObject:$0flashlight modes.
 * 
 * @since 12
 * @version 1оCamera_TorchMode {flashlight is always off.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_TORCH_MODE_OFF}
      *  instead.
     */
    OFF = %The flashlight is always off.
     * TCAMERA_TORCH_MODE_OFF = The flashlight is always on.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_TORCH_MODE_ON}
 $    *  instead.
     */
    ON = 1,
 flashlight is always on.
     * TCAMERA_TORCH_MODE_ON = 1,
flashlight will be turned on automatically based on the ambient lighting level.<br> Since API version 23,
     * you are adviseZd to use the new enum value {@link CAMERA_TORCH_MODE_AUTO} instead.
     */
    AUTO = 2,
Wflashlight will be turned on automatically based on the ambient lighting level.
     * T)CAMERA_TORCH_MODE_AUTO = 2
} Camera_Torchp%0mooth zoom modes.
 * 
 * @since 12
 * @version 1оCamera_SmoothZoomMode {
    /**
     * Bessel curve mode.<br> Since API version 23, you are advised to use the new enum value {L@link CAMERA_SMOOTH_ZOOM_MODE_NORMAL}
     *  instead.
     */
    NORMAL = Bessel curve mode.
     * T6CAMERA_SMOOTH_ZOOM_MODE_NORMAL = 0
} Camera_SmoothZoomp$Dpreconfigured photo resolution types.
 * 
 * @since 12
 * @version 1оTCamera_PreconfigType {
    /**
     * 720p resolution.
     */
    PRECONFIG_720P = 1080p resolution.
     */
    PRECONFIG_1080P = 1,

    /**
     * 4K resolution.
     */
    PRECONFIG_4K = 2,

    /**
     * High-quality photos.
     */
    PRECONFIG_HIGH_QUALITY = 3,
    
    /**
     * Resolution that supports HDR preview and GIF photography.
     * TAPRECONFIG_HIGH_QUALITY_PHOTOSESSION_BT2020 = 4
} Camera_Preconfig:$Apreconfigured photo aspect ratios.
 * 
 * @since 12
 * @version 1о[Camera_PreconfigRatio {
    /**
     * 1:1 aspect ratio.
     */
    PRECONFIG_RATIO_1_1 = 4:3 aspect ratio.
     */
    PRECONFIG_RATIO_4_3 = 1,

    /**
     * 16:9 aspect ratio.
     */
    PRECONFIG_RATIO_16_9 = 2
} Camera_PreconfigRatioQ4 for remote camera device p @version 1оCamera_HostDeviceType {Fan unknown device camera.
     */
    HOST_DEVICE_TYPE_UNKNOWN_TYPE = >a smartphone camera.
     */
    HOST_DEVICE_TYPE_PHONE = 0x0ELablet camera.
     */
    HOST_DEVICE_TYPE_TABLET = 0x11
} Camera_HostDevice:The struct describes theoR*the size.
 * 
 * @since 11
 * @version 1.0ACamera_Size {
    /**
     * Width, in pixels.
     */
    uint32_t width;

    /**
     * Height, in pixels.
     */
    uint32_t height;
} Camera_aUThe struct describes the profile of a camera stream.
 * 
 * @since 11
 * @version 1.0ACamera_Profile {
    /**
     * Camera format.
     */
    Camera_Format format;

    /**
     * Image size.
     */
    Camera_Size size;
} Camera_Profi]KThe struct describes the frame rate range.
 * 
 * @since 11
 * @version 1.0ACamera_FrameRateRange {
    /**
     * Minimum frame rate, in fps.
     */
    uint32_t min;

    /**
     * Maximum frame rate, in fps.
     */
    uint32_t max;
} Camera_FrameRateRange;

/**
 * @brief The struct describes the video profile.
 * 
 * @since 11
 * @version 1.0ACamera_VideoProfile {
    /**
     * Camera format.
     */
    Camera_Format format;

    /**
     * Image size.
     */
    Camera_Size size;

    /**
     * Frame rate, in frames per second (FPS).
     */
    Camera_FrameRateRange range;
} Camera_VideoProfi]SThe struct describes the camera output capability.
 * 
 * @since 11
 * @version 1.0ACamera_OutputCapability {
    /**
     * Double pointer to the list of preview profiles.
     */
    Camera_Profile** previewProfiles;

    /**
     * Size of the preview profiles.
     */
    uint32_t previewProfilesSize;

    /**
     * Double pointer %to the list of photo profiles.<br> Inq]file, **size** is set to the width and
     * height of the camera resolution, not the actualn output image.
     */
    Camera_Profile** photoProfiles;

    /**
     * Size of the photo profiles.
     */
    uint32_t photoProfilesSize;

    /**
     * Double pointer to the list of video profiles.
     */
    Camera_VideoProfile** videoProfiles;

    /**
     * Size of the video profiles.
     */
    uint32_t videoProfilesSize;

    /**
     * Double pointer to the list of the metadata object types supported.
     */
    Camera_MetadataObjectType** supportedMetadataObjectTypes;

    /**
     * ]Size of the metadata profiles.
     */
    uint32_t metadataProfilesSize;
} Camera_OutputCapaHThe struct describes the camera device.
 * 
 * @since 11
 * @version 1.0ACamera_Device {
    /**
     * Pointer to the camera ID.
     */
    char* cameraId;

    /**
     * Camera position.
     */
    Camera_Position cameraPosition;

    /**
     * Camera type.
     */
    Camera_Type cameraType;

    /**
     * Camera connection type.
     */
    Camera_Connection connectionType;
} Camera_Device;

/**
 * @brief The struct describes the camera stat0us information.
 * 
 * @since 11
 * @version 1.0ACamera_StatusInfo {
    /**
     * Pointer to the camera instance.
     */
    Camera_Device* camera;

    /**
     * Camera stdatus.
     */
    Camera_Status status;
} Camera_StatusInfo;

/**
 * @brief The struct describes theoR)a point.
 * 
 * @since 11
 * @version 1.0A*Camera_Point {
    /**
     * X coordinate7,1].
     */
    double x;

    /**
     * Y coordinate',1].
     */
    double y;
} Camera_Poi ZThe struct describes the location where a photo is taken.
 * 
 * @since 11
 * @version 1.0ACamera_Location {
    /**
     * Latitude.
     */
    double latitude;

    /**
     * Longitude.
     */
    double longitudeQ;

    /**
     * Altitude, in meters.
     */
    double altitude;
} Camera_LocaThe struct describes theoR/photo capture.
 * 
 * @since 11
 * @version 1.0ACamera_PhotoCaptureSetting {
    /**
     * Quality of the photo.
     */
    Camera_QualityLevel quality;

    /**
     * Rotation angle.
     */
    Camera_ImageRotation rotation;

    /**
     * Pointer to the location where the photo is taken.
     *!/
    Camera_Location* location;
Gther mirroring is enabled.<br> **true** if enabled, **false** otherwiseQ**false**.
     */
    bool mirror;
} Camera_PhotoCaptureSetting;

/**
 * @brief The struct describes the frame shutter informa&tion.
 * 
 * @since 11
 * @version 1.0ACamera_FrameShutterInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Timestamp of the frame, in milliseconds.
     */
    uint64_t timestamp;
} Camera_FrameShutterInfo;

/**
 * @brief The struct describes the capture end in+formation.
 * 
 * @since 11
 * @version 1.0ACamera_CaptureEndInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Number of frames captured.
     */
    int64_t frameCount;
} Camera_CaptureEndInfo;

/**
 * @brief The struct describes a rectangle. The coordinate system fDor the returned detection points is based on the
 * landscape devicethe charging port on the right. In this coordinate system, the top-left corner is
 * (0, 0), and the bottom-right corner is (1, 1). Here, **topLeftX** and **topLeftY** represent the coordinates of the
 * top-left corner of the rectangle, whereas **width** and **height** represent}the rectangle,
 * respectively. When cropping or selecting a face region based on specific requirements, the x and y coordinate+s of
 * the rectangle must be multiplied by}nthe actual camera preview output stream to obtain the
 * cropped face region.
 * 
 * @since 11
 * @version 1.0ACamera_Rect {
    /**
     * Xitop-left corner of the rectangle, in the range of [0, 1].
     */
    int32_t topLeftX;

    /**
     * Ytop-left corner of the rectangle, in the range of [0, 1].
     */
    int32_t topLeftY;

    /**
     * Width of the rectangle, in the range of [0, 1].
    E
    /**
     * Height of the rectangle, in the range of [0, 1].
    
Camera^JThe struct describes the camera metadata.
 * 
 * @since 11
 * @version 1.0ACamera_MetadataObject {
    /**
     * Type of the metadata object.
     */
    Camera_MetadataObjectType type;

    /**
     * Timestamp of the metadata object, in nanoseconds (ns).
     */
    int64_t timestamp;

    /**
     * Pointer to the axis aligcned bounding box of the metadata object.
     */
    Camera_Rect* boundingBox;
} Camera_MetadataObj`XThe struct describes the flashlight status information.
 * 
 * @since 12
 * @version 1.0ACamera_TorchStatusInfo {ther the flashlight is available. **true** if available, **false** otherwise.
     */
    bool isTorchAvailable;

    /**
     ther the flashlight is activated. **true** if activated, **false** otherwise.
     */
    bool isTorchActive;

    /**
     * Flashlight level, 1]. A larger value indicates a greater luminance.
     */
    float torchLevel;
} Camera_TorchStatusInfo;

/**
 * @brief The Nstruct describes the smooth zoom information.
 * 
 * @since 12
 * @version 1.0ACamera_SmoothZoomInfo {
    /**
     * Total duration of smooth zoom, in ms.
     */
    int32_t duration;
} Camera_SmoothZoomIhnfo;

/**
 * @brief The struct describes the capture start information.
 * 
 * @since 12
 * @version 1.0ACamera_CaptureStartInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;

    /**
     * Estimated duration when the sensor captures frames at the bottom layer in a single capture. If **–1** is
     * reported, there is no estimated duration.
     */
    int64_t time;
} Camera_CaptureStartInfo;

/**
 * @brief The struct describes the frame shutter end information du.ring capture.
 * 
 * @since 12
 * @version 1.0ACamera_FrameShutterEndInfo {
    /**
     * Capture ID.
     */
    int32_t captureId;
} Camera_FrameShutterEndInfo;

/**
* @br5fold statuses.
* 
* @since 13
* @version 1.0
*/
typedef enum Camera_FoldStatus {
    /**
     * Unfoldable.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_FOLD_STATUS_NON_FOLDABLE}
     *  instead.
     */
    NON_FOLDABLE = Unfoldable.
     * T"CAMERA_FOLD_STATUS_NON_FOLDABLE = Unfolded.<br> Since API version 23, you are advised to use the new enum value {@link CAMERA_FOLD_STATUS_EXPANDED}
     *  inste?ad.
     */
    EXPANDED = 1,

    /**
     * Unfolded.
     * TCAMERA_FOLD_STATUS_EXPANDED = 1,

    /**
     * Folded.<br> Since API version 23, you are advised to use the new enum value {@glink CAMERA_FOLD_STATUS_FOLDED}
     * instead.
     */
    FOLDED = 2,

    /**
     * Folded.
     * TCAMERA_FOLD_STATUS_FOLDED = 2
} Camera_FoldStatus;

/**
 * @brief The struct describes the fold status information of the camer#a.
 * 
 * @since 13
 * @version 1.0ACamera_FoldStatusInfo {
    /**
     * Double pointer to the camera list.
     */
    Camera_Device** supportedCameras;

    /**
     * Number of cameras in the list.
     */
    uint32_t cameraSize;

    /**
     * Current fold status.
     */
    Camera_FoldStatus foldStatus;
} Camera_FoldStatusInfo;

/**
 * @brief Auto device switch status info.
 *
 * @since 13
 * @version 1.0ACamera_AutoDeviceSwitchStatusInfo {
    /**
     * is device switched.
     */
    bool isDeviceSwitched;

    /**
     * is dehvice capability changed.
     */
    bool isDeviceCapabilityChanged;
} Camera_AutoDeviceSwitchStatusInfoQ4: for quality prioritization.
 *
 * @since 14
 * @version 1оaCamera_QualityPrioritization {
    /**
     * Hight quality priority.
     */
    HIGH_QUALITY = PPower balance priority.
     */
    POWER_BALANCE = 1
} Camera_QualityPrioritiza for camera concurrent 18
 * @version 1оCamera_ConcurrentType {
    /**
     * Cameras concurrency with limited capability.
     */
    CAMERA_CONCURRENT_TYPE_LIMITED_CAPABILITY  = Cameras concurrenct with full capability.
     */
    CAMERA_CONCURRENT_TYPE_FULL_CAPABILITY = 1
} Camera_ConcurrentType;

/**
:
=Concurrency capability infos.
 *
 * @since 18
 * @version 1.0ACamera_ConcurrentInfo {
    /**
     * Camera instance.
     */
    Camera_Device camera;

    /**
     * Supported concurrent type.
     */
    Camera_ConcurrentType type;

    /**
     * Supported Modes.
     */
    Camera_SceneMode* sceneModes;

    /**
     * Supported outputCapabilities
     */
    Camera_OutputCapability* outputCapabilities;

    /**
     * Supported outpuWtCapabilities size.
     */
    uint32_t modeAndCapabilitySize;
} Camera_ConcurrentInfo?!`pressure levels.
 * 
 * @since 20
 * @version 1.0
 */

typedef enum Camera_SystemPressureLevel {@system pressure is normal.
     */
    SYSTEM_PRESSURE_NORMAL = Oiystem pressure is elevated but not actively managed by the system.
     */
    SYSTEM_PRESSURE_MILD = 1,
nsystem pressure may affect the overall image quality and performance.
     */
    SYSTEM_PRESSURE_SEVERE = 2,
system pressure has a significant impact on the image quality and performance.
     */
    SYSTEM_PRESSURE_CRITICAL = 3,

    /system pressure is too high, causing the system to shut down.
     */
    SYSTEM_PRESSURE_SHUTDOWN = 4
} Camera_SystemPressureLevel? Gphoto quality prioritization strategies.
 * 
 * @since 21
 * @version 1оCamera_PhotoQualityPrioritization {
    /**
     * Focuses on image quality, which may increase the time required for capturingm photos to ensure high-quality
     * output.
     */
    CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY = Focuses on performance, trading off image quality for faster capture times.
     */
    CAMERA_PHOTO_QUALITY_PRIORITIZATION_SPE&ED = 1
} Camera_PhotoQualityPrioritiza$Ceffect types of a camera controller.
 * 
 * @since 20
 * @version 1оoCamera_ControlCenterEffectType {
    /**
     * Beauty effect.
     */
    CONTROL_CENTER_EFFECT_TYPE_BEAUTY = Portrait blur effect.
     */
    CONTROL_CENTER_EFFECT_TYPE_PORTRAIT = 1,

    /**
     * Applies a auto-framing effect.
     JCONTROL_CENTER_EFFECT_TYPE_AUTO_FRAMING = 2,

    /**
     * Color effect. "HCONTROL_CENTER_EFFECT_TYPE_COLOR_EFFECT = 3
} Camera_ControlCenterEffect:&The struct describes the effect statuss2amera controller.
 * 
 * @since 20
 * @version 1.0ACamera_ControlCenterStatusInfo {
    /**
     * Effect type of the camera controller.
     */
    Camera_ControlCenterEffectType effectType;
ther the controller is activated. **true** if activated, **false** otherwise.
     */
    bool isActive;
} Camera_ControlCenter
StatusInfoa Camera_Manager instance.
 * 
 * @param cameraManager Double pointer to the Camera_Manager instance created, if the function i2s successfully called.
 * @return **CAMERA_OK**: T!%#L<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter typ_D<br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */
Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManageNs a Camera_Manager instance.
 * 
 * @param cameraManager Pointer to the target Camera_Manager instance.
 * @return **CAMERA_OK**: T!%#L<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter typ_D<br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */
Camera_ErrorCode OH_Camera_DeleteCameraMan!ager(Camera_Manager* cameraManageACamera device query information.
 * 
 * @since 23
 * @version 1.0ACamera_DeviceQueryInfo {
    /**
     * List of camera types.
     */
    Camera_Type* cameraType;
    /**
     * Size of the camera type list.
     */
    uint32_t cameraTypeSize;
    /**
     * Camera position.
     */
    Camera_Position cameraPosition;
    /**
     * Camera connection type.
     */
    Camera_Connection connectionType;
} Camera_DeviceQueryInfo;

/**
 * @briekf Provides the check result for whether a camera lens is blocked or dirty.
 * 
 * @since 23
 * @version 1.0ACamera_OcclusionDetectionResult {
    /**
     * Checks whether the camera lens is blocked. The value **true** indicates that the camera lens is blocked, and **
     * false** indicates the opposite.
     */
    bool isCameraOccluded;

    /**
     * Checks whether the camera lens is dirty. The value **true** indicates that the camera lens is dirty, and **false*
     * * indicatVes the opposite.
     */
    bool isCameraLensDirty;
} Camera_OcclusionDetectionResult1zoom range configuration.
 * $5Camera_ZoomRange {
    /**
     * Minimum zoom value.2float minZoom;

    /**
     * Maximum zoom value.**/
    float maxZoom;
} OH_Camera_ZoomRangq.physical apertur$FoBCamera_PhysicalAperture {
    /**
     * Zoom range specification.!OCamera_ZoomRange zoomRange;

    /**
     * Array of supported aperture values.<float* apertures;

    /**
     * Number of aperture values.1size_t apertureCount;
} OH_Camera_PhysicalApertur=& for OIS (Optical Image Stabilization)Ш @version 1о0OH_Camera_OISMode {
    /**
     * OIS is disablaI CAMERA_OIS_MODE_OFF =  OIS is controlled automatically.!PCAMERA_OIS_MODE_AUTO = 1,

    /** 
     * OIS is controlled by the application.!*CAMERA_OIS_MODE_CUSTOM = 2
} OH_Camera_OISp+ for OIS (Optical Image Stabilization) axes @version 1оOH_Camera_OISAxes {
    /**
     * Pitch axis: up-and-down rotation of the camera body.
     * Rotation around the horizontal axis through the lens.!CAMERA_OIS_AXES_PITCH = ]Yaw axis: side-to-side rotation of the camera body.
     * Rotation around the vertical axis.!*CAMERA_OIS_AXES_YAW = 1
} OH_Camera_OISAxeq.zoom point info"
1Camera_ZoomPointInfo {
    /**
     * Zoom ratio. "9float zoomRatio;

    /**
     * Equivalent focal length. "9uint32_t equivalentFocalLength;
} OH_Camera_ZoomPointInfoQ4camera notification nameq#߾OH_Camera_NotificationName {
    /**
     * Camera defocus notification caused by close proximity.
     *
     * The correspond;ing value type is {@link OH_Camera_ProximityStateForFocus}. "AOH_CAMERA_DEFOCUS_FROM_PROXIMITY = 0,
} OH_Camera_NotificationNam=proximity states for focuq#߾"OH_Camera_ProximityStateForFocus {Fdevice is within a reasonable range, and no raising action is required0-OH_CAMERA_PROXIMITY_STATE_IN_RANGE_RAISE_NONEPLThe device is out of the reasonable range, and the device needs to be raised0OH_CAMERA_PROXIMITY_STATE_OUT_OF_RANGE_RAISE_REQUIRED = 1,
} OH_Camera_ProximityStateForFocus;
#ifdef __cplusplus
}
#endif

#en0dif // NATIVE_INCLUDE_CAMERA_CAMERA_H
/** @} */
ucnx\y|UW՝&ph$(PN
:MWw r85:lGCE3x(㈊0Qq^Uw;՝atwG;{U7+ÿ[
8$qHE'2-vȭ_<_oڪ2ʱ(kd/<rHAouH+'8ĺ
M|vkLy\)}r[9r	=>AZ+{]Ron~At;(k<>`BF)P(6_N]sSplp0o7Xvc'7?!=>;] 7%׿eMOfAre#7'ҋ0w7W)PM/q/BM|MR`lLKkKy)6-=ꂬP&Orn&_@<MctB dw+\O8{ @o>ۦq[ӃaKώ!hHNdQ7Ɋ\Bq^nP/_U7w*~=j6KJ
)
B"H.K ~'c(Ff5RԷVy+'sYC
Tv.8}-XG3?5$Kl'%.y@?ȝn-%j'5[6%Wx#Ѐ4m Vt6)ýpCC7FRfBƔʉZ4UtU1vܼt*;6rx8GA\1@|iIO67iY.-	->I\%x=D;YR(]$GN2JT|1Ά?ƍ)faI@%RHZCjW77m/l5f!%ۄvƬB_Q%j/݄7S-%*g.mȮ칫 7eLxjYIL_UqgIجX70VAVTNSrbڊÐlPMӵEQHQbV{Z=UF :\I-,{B`j.>:"lE|쮄ywwŷ)Q[MMf1Ab4d%,ݕ%7?	xWd$SI$fYЄ䋬10ȭv]E`z݆,[ba0|iSflQHHS=X$WIFyf?惘I8̵*xk)M$
Z\KP> ^SjOE8ր*2!r$E4R3#aYeqw2΂tT_@D=
:4v.,ǿ?çґMb8B66<a!-|X1 	|?gڠ}"&RMaDŷ&0i%Q$:~5] ;ޢMצش&:DI|+'dD]bO'>&@s蓀5N|¥Tm@l"F".M9Uvʉ~i>3͆fl6nKERuj]^H&(΂E5>}W	P75l
J2cFp&rƨ|XH47`)՜u
Ȑ$A+Pk~4">dŔpk⪫΀;|:u/ x|$LxCTV6St)dm*/š
`7Gqˇ<*il[lqIEQ&d1kQ1酑CiBD2(jV%F=xМx|h%ڥ6!i'e7VATzW*Iٿh3Y/zbꅓ|csJYTKn
&Ng, ~P0ҠDdŦ*ŐpzSj=,XI,Bo#ZS\x.ejIVSd0>vNX	ndH󐨑n\quoo#f'{WVkbVߟRV@y;ޕ	L8;f:	*0O,N.#̋2q/nqHHeb[P .U kl
zhڑZ	v2msQ}PF8jOtJ5Psǝ}5m"zQ1^z 3	(*VPI-5/$Sʚe{(6RTfLRװ(]sY	_H"Pg4Ghu@)-.*BuVFxaN5P".W*9׵vnـYrK22lܘ[uIqtd.;b<pzۣ^l5>턕e7pgQxTy24RH5y4ب
W( j9dM|nr["Q+*4z}PmJ.O·Tj.LҰ0>y3wE)KRe,$7ь$儠eSX=J8頋1ahU~sc\QfX׮@	HObXף<ӥSoJd?Ht 4=H:`h8de<m#ˢ]p1FD6Zbe$iXf6G O-a!(X&+B!M8[Y	"Hn&ӂ:!T8u6Jsf Wj$Wr74fYIim,҅H8X(4qf=fɮ&P8!s!o#t3QM nW}n/$U	-BB3`PPzFu-tJsJƓu.3B^Hg-d[zUrzB)ܠTέsnX3	{)SжPW1Z)/Vw;PC
oxݐEy?{7K47xڪ2Yi'FﱞmtA0V7k%lOz,#BTݤN@a;dLRod\kS3=n(z=~z#	:0akdLRi,O:&~:nTiDI _a=e͐6nNn᮶%("$yT)8fb>]x&9tItʿaDӠT[%=;թ<휶v&5@F}a_IGO
^/
[=xE;eBAMd|F&%UAoPZDᄞ$3@zn(HY޻3fFNq=PaȐ]Q=m"6t>zRZjȈ"Ǚ>{/q	Xs0ܒ+=(^l!'W=.zppX$VvЩTVwHd5~*%Jz;sS7*)s@NѓݰdGD^eDrW'DPhuǽ{kWg`h?=0y@pPj{V`.ma`&kaUGU
;e!7aOpp1+!N&iB L<%A6w7	JL`Ct:LQqǠ*yKhe~mVV;gZc]'?Cw&T|	BdC )SH|)>H
=EM"l%>G1XKu,5"yEu8Z6&y֭OS^ nΞxzAuGM }v=sYqPػ}Ru>YL߇uo3®=EFaaqŔ*V'ßliuenɚfObc7Hsā[d{/ͪޗ2pËNUc67%Dc]g§@gh#IE:&.?lzJтoș(guUt&srN2N\7ր?;Uyͣ|s=S[:E&r`{#>iy.^YFLůjcTOI٤[t0"G=|OYjO=T3T]&)Ykut6ѥIPp8}	SE+BV|<!0"dxFM9p|Jaxǐ[1_S~Z@⚊ORp>'i ?Zb1(-,P$9Vٯ]`1"O [:%&)$Jx!Y$`=	U"m<'NVhi1Rk:6?ֳ>,Cr"ꐕ{uB==a	-F[<~"$s>l5a	KMt9IЈ`*z:4>,̞};Q4T)F|>1δӁ'b/|$@1,sriK(Jz֛7	_Io\%)	C*Zj}잀CRO-ch]5YчLќMڡa(JK	/
-hM)dQ)1q*bKcOÜ1RKl[Mbonh]HRT-Z71ȅKfxRN0 YpZ=$w2||le&2_>3LH+y5wq޹őϚT?J>.m{,_8OJR{gחPܓƛ˚o7ė[=a/Iq}_?IЫχ8"Uvc.BIi.ܓŧ3SpZ6_ևcx*eqH6xR}JRǰ<>g6g~z#\^"7[}\~oW)f;aD&)3O?ZW&[w;	VUa|3 E{.8,+8"2nmeoC\ivJpzDpi	_q% 7&w["OTGk4#aM'**uqQOH_P@ob8H|}JՎWƎbiaz5֟JՕ GK|z(_/vpn5_su5EЖ`E.M{% 6~Vᕵkg
(H=bK3ϑC){,)RWTA֎-%`3G2+D|kez=Nd:DqYYa cܴ.o@p|'Oe=8Ͻ3~(8y3~^YX
0kSZqk~"x2/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.0CsD+
 *.
 *G]ELG5"=
 */
/**
 * @addtogroup CameraNotificationInfo
 * @{
 *K
 *
 * @since 26.0.0
 */
/**
 * @file camera_notification_info.h
 *
 * @brief The file declares the notification info.
 * =
 * @kit CameraKitj3
 * @since 26.0.0
 */
NOTIFICATION_HNOTIFICATION_H

#include <stdint.h>
#include <stdio.h>
#include "camera.h"

#ifdef __cplusplus
extern "C" {
#endif

/**v$?\.notification info.
 *
 * @since 26.0.0
 */сNotificationInfo OH_Camera_NotificationInfo;

/**
 * @brief Obtains the notification name from a camera notification info instance.
 *
 * @param notificationInfo Pointer to an OH_Camera_NotificationInfo instance.
 * @param name Pointer to the notif ication name, which is an {@link+} instance.
 * @return {@link #CAMERA_OK} ;y-
 *         {@link #CAMERA_INVALID_ARGUMENT}y<
 * @since 26.0.0
 */
Camera_ErrorCode OH_CameraNotificationInfo_GetNotificationName(
    const OH_Camera_NotificationInfo* notificationInfo,
   * name);

/**
 * @brief Obtains the proximity state for focus from a camera notification info instance.
 *
 * @param notificationInfo Pointer to an {@link OH_Camera_NotificationInfo} instance.
 * @param state Pointer to the proximity state for focus, which is an
 *       9)* instance.
 * @return {@link #CAMERA_OK} ;y-
 *         {@link #CAMERA_INVALID_ARGUMENT}y<G
 * @since 26.0.0
 */
Camera_ErrorCode OH_CameraNotificationInfo_Get.:(
    const OH_Camera_NotificationInfo* notificationInfo,@!* state);

/**
 * @brief Destroys camera notification info instances.
 *
 * @param notificationInfo Pointer to the pointer of {@link OH_Camera_NotificationInfo} instances to be destroyed.
 * @since 26.0.0
 */
void OH_CameraNotificationInfo_DestroTy(OH_Camera_NotificationInfo* notificationInfo);

#ifdef __cplusplus
}
#endif
 METADATA_OBJECT_EXT_H
/** @} */~#}x   0/*
 * Copyright (C) 2023 Huawei Device Co., Ltd.2CvD+
 *.
 *GfELGA"*
 */
/**
 * @addtogroup OH_Camera
 * @{
 *KF
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file capture_session.h
 *5!capture session concepts.
 * n
 * @kit CameraKit3"
 * @since 11
 * @version 1.0
 */
CAMERA_SESSION_H8CAMERA_SESSION_H

#include <stdint.h>
#include <stdio.h>q
#include "camera_input.h"
#include "preview_output.h"
#include "photo_output.h"
#include "video_output.h"
#include "metadata_o^utput.h"
#include "native_buffer/native_buffer.h"

#ifdef __cplusplus
extern "C" {
#endif

/**&pture session object.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_CaptureSession Camera_CaptureSession;

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report focus status
 * changes of a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param focusState Focus status.
 * @since 11
 */
typedef void (*OH_CaptureSession_OnFocusStateChange)(Camera_CaptureSession* session, Camera_FocusState focusState);

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report capture
 * session errors.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param errorCode Error code reported in a capture session.
 * @see CAMERA_SERVICE_FATAL_ERROR
 * @since 11
 */
typedef void (*OH_CaptureSession_OnError)(Camera_CaptureSession* session, Camera_ErrorCode errorCode);

/**
 * @brief Defines the callback invoked when smooth zoom is triggered for a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfo Pointer to the smooth zoom information passed by the callback.
 * @since 12
 */
typedef void (*OH_CaptureSession_OnSmoothZoomInfo)(Camera_CaptureSession* session,
    Camera_SmoothZoomInfo* smoothZoomInfo);

/**
 * @brief Capture session device switch status callback.
 *
 * @param session the {@link Camera_CaptureSession} which deliver the callback.
 * @param autoDeviceSwitchStatusInfo the {@link Camera_AutoDeviceSwitchStatusInfo} which delivered by the callback.
 * @since 13
 */
typedef void (*OH_CaptureSession_OnAutoDeviceSwitchStatusChange)(Camera_CaptureSession* session,
    Camera_AutoDeviceSwitchStatusInfo* autoDeviceSwitchStatusInfo);

/**
 * @brief Defines the callback used to listen for capture system pressure level changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevel Pointer to the system pressure level passed by the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnSystemPressureLevelChange)(Camera_CaptureSession* session,
    Camera_SystemPressureLevel systemPressureLevel);

/**&llbacks related to a capture session.
 * 
 * @see OH_CaptureSession_RegisterCallback
 * @since 11
 * @version 1.0
 */
typedef struct CaptureSession_Callbacks {
    /**
     * Callback to report a focus status change of a capture session.
     */
    OH_CaptureSession_OnFocusStateChange onFocusStateChange;

    /**
     * Callback to report a capture session error.
     */
    OH_CaptureSession_OnError onError;
} CaptureSession_Callbacks;

/**
 * @brief Registers a callback to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param callback Poi5nter to the target callback.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 11
 */	ptureSession_RegisterCallback(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Unregisters the callback used to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance hthat transfers the callback.
 * @param callback Pointer to the target callback.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 11
 */	ptureSession_UnregisterCallback(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Registers a callback to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfkers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_RegisterSmoothZoomInfoCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Unregisters the callback used to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_UnregisterSmoothZoomInfoCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Sets a session mode.
 * This API cannot be called after {@link OH_CaptureSession_BeginConfig}.
 * You are advised to call this function immediately after {@link OH_CameraManager_CreateCaptureSession}.
 * 
 * @param session Pmointer to the target Camera_CaptureSession instance.
 * @param sceneMode Scene mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The se/ssion configuration is locked.
 * @since 12
 */	ptureSession_SetSessionMode(Camera_CaptureSession* session, Camera_SceneMode sceneMode);

/**
 * @brief Marks a preview output stream as secure output.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput PoKinter to the target Camera_PreviewOutput instance.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The se/ssion configuration is locked.
 * @since 12
 */	ptureSession_AddSecureOutput(Camera_CaptureSession* session, Camera_PreviewOutput* previewOutput);

/**
 * @brief Starts the configuration for a capture session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<c
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 11
 */	ptureSession_BeginConfig(Camera_CaptureSession* session);

/**
 * @brief Commits the configuration for a capture session.
 * 
 _* @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The came(ra service is abnormal.
 * @since 11
 */	ptureSession_CommitConfig(Camera_CaptureSession* session);

/**
 * @brief Adds a Camera_Input instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to add.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_AddInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Removes a Camera_Input instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to =the Camera_Input instance to remove.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_RemoveInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Adds a PreviewOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput Pointer to< the PreviewOutput instance to add.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_AddPreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Removes a PreviewOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param WpreviewOutput Pointer to the PreviewOutput instance to remove.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_RemovePreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Adds a PhotoOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photLoOutput Pointer to the PhotoOutput instance to add.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_AddPhotoOutput(Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Removes a PhotoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photoOutput GPointer to the PhotoOutput instance to remove.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_RemovePhotoOutput(Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Adds a **VideoOutput** instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutpuJt Pointer to the **VideoOutput** instance to add.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_AddVideoOutput(Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Removes a VideoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutput GPointer to the VideoOutput instance to remove.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_RemoveVideoOutput(Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Adds a MetadataOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param metadataOutKput Pointer to the MetadataOutput instance to add.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_AddMetadataOutput(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Removes a MetadataOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @pa]ram metadataOutput Pointer to the MetadataOutput instance to remove.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: The operation is not allowed.
 * @since 11
 */	ptureSession_RemoveMetadataOutput(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Starts a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance to start.
 * @return **CAMERA_OK**:'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: Th.e camera service is abnormal.
 * @since 11
 */	ptureSession_Start(Camera_CaptureSession* session);

/**
 * @brief Stops a capture session.
 * 
 * @param session Pointer to thBe Camera_CaptureSession instance to stop.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */	ptureSession_Stop(Camera_CaptureSession* session);

/**
 * @brief Releases a CaptureSession instance.
 * 
 * @param session PoiOnter to the Camera_CaptureSession instance to release.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */	ptureSession_Release(Camera_CaptureSession* session);

/**
 * @brief Checks whether the device has flash.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param hasFlash Pointer to the check result for whether the device ha\s flash. **true** if the device has flash, **
 * false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_HasFlash(Camera_CaptureSession* session, bool* hasFlash);

/**
 * @brief Checks whether a flash mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to check.
 * @param isSupported Pointer to the check result for the support of the flash mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsFlashModeSupported(Camera_CaptureSession* session,
    Camera_FlashMode flashMode, bool* isSupported);

/**
 * @eflash mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Pointer to t'he flash mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFlashMode(Camera_CaptureSession* session, Camera_FlashMode* flashMode);

/**
 * @brief Sets a flash mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetFlashMode(Camera_CaptureSession* session, Camera_FlashMode flashMode);

/**
 * @brief Capture session flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param flashState The {@link OH_Camera_FlashState} which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnFlashStateChange)(const Camera_CaptureSession* session, OH_Camera_FlashState flashState);

/**
 * @brief Register flash state change event callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The? {@link OH_CaptureSession_OnFlashStateChange} to be registered.q'CAMERA_OK} if the method call succeeds.Q	[CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_RegisterFlashStateChangeCallback(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Unregister flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The {@link OH_CaptureSession_OnFlashStateChange} to be unregistered.
 * @return|'CAMERA_OK} if the method call succeeds.Q	[CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_UnregisterFlashStateChangeCallback(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Defines a callback function that is invoked when the exposure state changes.
 *
 * @param context Indicates the pointer to the user-defined context.
 * @param exposureState Indicates the current exposure state.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnExposureStateChange)(void* context, OH_Camera_ExposureState exposureState);

/**
 * @brief Registers a callback for exposure state changes.
 *
 * After this callback is registered, the callback is invoked when the exposure state changes in the
 * capture session.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context.
 * @param callback {@link OH_CaptureSession_OnExposureStateChan'ge} Indicates the callback to register.q'CAMERA_OK} if the method call succeeds.Q	_CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */	ptureSession_RegisterExposureStateChangeCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Unregisters the callback for exposure state changes.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context specified when the callback was registered.
 * @param callback {@link OH_CaptureSession_OnExposureStateChange} Indicates the callback to unregister.
r'CAMERA_OK} if the method call succeeds.Q	_CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */	ptureSession_UnregisterExposureStateChangeCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Checks whether an exposure mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to check.
 * @param isSupported Pointer to the check result for the support of the exposure mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsExposureModeSupported(Camera_CaptureSession* session,
    Camera_ExposureMode exposureMode, bool* isSupported);

/**`exposure mode in use. This API directly returns an invalid value if you have not set the exposure
 * mode using {@link OH_CaptureSession_SetExposureMode}.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode 6Pointer to the exposure mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureMode(Camera_CaptureSession* session, Camera_ExposureMode* exposureMode);

/**
 * @brief Checks whether the specified white balance mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @param isSupported Pointer to the check result for the support of the specified white balance mode. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The function is successfully called(.
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */
	ptureSession_IsWhiteBalanceModeSupported(Camera_CaptureSession* session,
    Camera_WhiteBalanceMode whiteBalanceMode, bool* isSupported);

/**`white balance mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode Pointer to the white balance mode.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalanceMode(Camera_CaptureSession* session, Camera_WhiteBalanceMode* whiteBalanceMode);

/**
 * @brief Sets a white balance mode.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @return **CAMERA_OK**: The setting is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is	,c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_SetWhiteBalanceMode(Camera_CaptureSession* session, Camera_WhiteBalanceMode whiteBalanceMode);

/**
 * @brief Obtaosupported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minColorTemperature Pointer to the minimum supported color temperature, in Kelvin.
 * @param maxColorTemperature Pointer to the maximum supported color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalanceRange(Camera_CaptureSession* session, int32_t *minColorTemperature, int32_t *maxColorTemperature);

/**`white balance color temperature.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature Pointer to the white balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully call*ed.
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalance(Camera_CaptureSession* session, int32_t *colorTemperature);


/**
 * @brief Sets the white balance color temperature.
 * Before setting this parameter, you are advised to use {@link OH_CaptureSession_GetWhiteBalanceRange} to obtain the
 * supported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature White balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The setting is suc/cessful.
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	\ptureSession_SetWhiteBalance(Camera_CaptureSession* session, int32_t colorTemperature);

/**`supported white balance color tint range.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param minColorTint Pointer to the minimum color tint.
 * @param maxColorTint Pointer to the maximum color tint.
 * @return Result code.Q	>CAMERA_OK} is returned if the function is called successfully.Q	JCAMERA_INVALID_ARGUMENT} is returned if an input parameter
               	/Q	CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */
Camer	ptureSession_GetColorTintRange(const Camera_CaptureSession* session,
    int32_t *minColorTint, int32_t *maxColorTint);

/**
 *cwhite balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Pointer+ to the color tint.
 * @return Result code.Q	>CAMERA_OK} is returned if the function is called successfully.Q	@CAMERA_INVALID_ARGUMENT} is returned if an input
               	9Q	CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */
Camer	ptureSession_GetColorTint(const Camera_CaptureSession* session, int32_t *colorTint);

/**
 * @brief Sets the white balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Color tint.
 * @return Re
sult code.Q	>CAMERA_OK} is returned if the function is called successfully.Q	0CAMERA_INVALID_ARGUMENT} is returned if an input	
               	$Q	CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */
Camer	ptureSession_SetColorTint(const Camera_CaptureSession* session, int32_t colorTint);

/**
 * @brief Sets an exposure mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	dptureSession_SetExposureMode(Camera_CaptureSession* session, Camera_ExposureMode exposureMode);

/**`metering point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param point Pointer to t+he metering point.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetMeteringPoint(Camera_CaptureSession* session, Camera_Point* point);

/**
 * @brief Sets the metering point, which is the center point of the metering rectangle.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 >* @param point Metering point to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetMeteringPoint(Camera_CaptureSession* session, Camera_Point point);

/**
 * @brief Check whether a specified exposure metering mode is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode The {@link OH_Camera_ExposureMeteringMode} to be checked.
 * @param isSupported Pointer to the result of whether exposure mode supported.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_IsExposureMeteringModeSupported(const Camera_CaptureSession* session,
    OH_Camera_ExposureMeteringMode exposureMeteringMode, bool* isSupported);

/**
 * @brief Get current exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode Pointer to the {@link OH_Camera_ExposureMeteringMode} instance.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetExposureMeteringMode(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode* exposureMeteringMode);

/**
 * @brief Set exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @pSaram exposureMeteringMode The target {@link OH_Camera_ExposureMeteringMode} to set.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetExposureMeteringMode(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode exposureMeteringMode);

/**
 * @brief Query the iso range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minIsoValue thGe minimum of iso value.
 * @param maxIsoValue the Maximum of iso value.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedISORange(const Camera_CaptureSession* session,
    int32_t *minIsoValue, int32_t *maxIsoValue);

/**
 * @brief Get current iso sensitivity value, as defined in ISO 12232:2006.
 *
 * @param session Pointer to the {@link Camera_CapWtureSession} instance.
 * @param isoValue Pointer to the current iso sensitivity value.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetIso(const Camera_CaptureSession* session, int32_t* isoValue);

/**
 * @brief Sets ISO sensitivity value, within the range of getSupportedIsoRange. This control is only effective if
 * ExposureMode is set to EXPOSURE_MODE_LOCKED.
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isoValue Indicates target iso value to set.
 * @retur{	'CAMERA_OK} if the method call succeeds.Q	CINVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetIso(const Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Defines the callback used to listen for ISO changes in a camera session.
 * 
 * @param session Pointer to the **Camera_CaptureSession** instance.
 * @param isoValue ISO value obtained in the callback.
 * @since 22
 */
typedef void (*OH_CaptureSession_OnIsoChange)(Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Registers a callback to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to lis-ten for ISO changes.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 22
 */	ptureSession_RegisterIsoChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Unregisters the callback used to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to listen for ISO changes.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 22
 */	ptureSession_UnregisterIsoChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Gets the supported physical apertures list. 
 * Release the physical apertures memory by calling {@link OH_CaptureSession_DeletePhysicalApertures}.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param apertures pointer to an aXrray for storing physical aperture values
 * @param size the size of physical apertures.qCAMERA_OK} success Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedPhysicalApertures(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture** apertures, uint32_t* size);

/**
 * @brief Gets the current physical aperture value
 *
 * @param session the {@link Camera_CaptureSession} i:nstance
 * @param aperture returned current aperture valueqCAMERA_OK} success Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetPhysicalAperture(const Camera_CaptureSession* session, double* aperture);

/**
 * @brief Delete the physical apertures.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param apertures pointer to an array for storing pPhysical aperture values
 * @param size the array size of the physical apertures.q'CAMERA_OK} if the method call succeeds.Q	[CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_DeletePhysicalApertures(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture* apertures, uint32_t size);

/**
 * @brief Set physical aperture value.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param ap erture the aperture value to setqCAMERA_OK} success Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	]ptureSession_SetPhysicalAperture(const Camera_CaptureSession* session, double aperture);

/**`exposure compensation values of the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minExposureBias Pointer to the minimum exposure compensation value.
 * @param maxExposureBias Pointer to the maximum exposurhe compensation value.
 * @param step Pointer to the exposure compensation step.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureBiasRange(Camera_CaptureSession* session, float* minExposureBias,
    float* maxExposureBias, float* step);

/**
 * @brief Sets an exposure compensation value for the device.
 * 
 * @param session Pointer to the target Camera_CapthureSession instance.
 * @param exposureBias Exposure compensation value to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	VptureSession_SetExposureBias(Camera_CaptureSession* session, float exposureBias);

/**`exposure compensation value in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposLureBias Pointer to the exposure compensation value.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureBias(Camera_CaptureSession* session, float* exposureBias);

/**
 * @brief Get the supported range of exposure durations. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param minExposureDuration Pointer to the minimum of exposure duration.
 * @param maxExposureDuration Pointer to the maximum of exposure
 duration.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedExposureDurationRange(const Camera_CaptureSession* session, int32_t* minExposureDuration,
    int32_t* maxExposureDuration);

/**
 * @brief Set exposure duration. Units: Microseconds.
 * If the sensor can't expose this duration exactly, it will shorten the duration to the nearest supported value, which is
 * reporeted by Callback {@link OH_CaptureSession_OnExposureDurationChange}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurat(ion the target exposure duration to set.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetExposureDuration(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Get current exposure duration. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exp7osureDuration Pointer to the current exposure duration.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetExposureDuration(const Camera_CaptureSession* session, int32_t* exposureDuration);

/**
 * @brief Capture session exposure duration change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param exposureDuration The exposure duration which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnExposureDurationChange)(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Register exposure info change event callback.
 *    After exposure parameters are changed, the system will returns the updated exposure infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange The {@link OH;_CaptureSession_OnExposureDurationChange} to be registered.qCAMERA_OK} if the method call succeeds.
 * {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_RegisterExposureInfoChangeCallback(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange);

/**
 * @brief Unregister exposure info change callback.Invoke this method after finishing camera operations.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange TheG {@link OH_CaptureSession_OnExposureDurationChange} to be unregistered.qCAMERA_OK} if the method call succeeds.
 * {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_UnregisterExposureInfoChangeCallback(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange); 

/**
 * @brief Checks whether a focus mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to check.
 * @param isSupported Pointer to the check result for the support of the focus mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The operation '
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsFocusModeSupported(Camera_CaptureSession* session,
    Camera_FocusMode focusMode, bool* isSupported);

/**
 * @efocus mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Pointer to t'he focus mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFocusMode(Camera_CaptureSession* session, Camera_FocusMode* focusMode);

/**
 * @brief Sets a focus mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	[ptureSession_SetFocusMode(Camera_CaptureSession* session, Camera_FocusMode focusMode);

/**`focal point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Pointer to* the focal point.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFocusPoint(Camera_CaptureSession* session, Camera_Point* focusPoint);

/**
 * @brief Sets a focal point for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Focal point to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	YptureSession_SetFocusPoint(Camera_CaptureSession* session, Camera_Point focusPoint);

/**`supported zoom ratio range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minZoom Pointker to the minimum zoom ratio.
 * @param maxZoom Pointer to the maximum zoom ratio.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	dptureSession_GetZoomRatioRange(Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**`zoom ratio in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Pointer to the zo"om ratio.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetZoomRatio(Camera_CaptureSession* session, float* zoom);

/**
 * @brief Sets a zoom ratio for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Target zoom ratio.
 * It takes some time for the zoom ratio to take effect at the bottom layer. To obtain the correct zoom ratio, you need
 * to wait for one to two frames.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetZoomRatio(Camera_CaptureSession* session, float zoom);

/**
 * @brief Checks whether a video stabilization mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Video stabilization mode to check.
 * @param isSupported Pointer to the check result for the support of the video stabilization mode. **true** if
 *9 supported, **false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsVideoStabilizationModeSupported(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode, bool* isSupported);

/**`video stabilization mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Poi>nter to the video stabilization mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetVideoStabilizationMode(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode* mode);

/**
 * @brief Sets a video stabilization mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 *F @param mode Video stabilization mode to set.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetVideoStabilizationMode(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode);

/**
 * @brief Checks whether a Camera_Input instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to check.
 * @param isSuccessful Pointer to the check result for whether the Camera_Input instance can be added to the session. **
 * true** if it can be added to the session, **fa)lse** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanAddInput(Camera_CaptureSession* session,
    Camera_Input* cameraInput, bool* isSuccessful);

/**
 * @brief Checks whether a PreviewOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PreviewOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PreviewOutput instance can be added to the session. *
 * *true** if it can be added to the session, **f*alse** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanAddPreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a PhotoOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PhotoOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PhotoOutput instance can be added to the session. **
 * true** if it can be added to the s5ession, **false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanAddPhotoOutput(Camera_CaptureSession* session,
    Camera_PhotoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a **VideoOutput** instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the **VideoOutput** instance to check.
 * @param isSuccessful Pointer to the check result for whether the VideoOutput instance can be added to the session. **
 * true** if it can be added to t9he session, **false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanAddVideoOutput(Camera_CaptureSession* session,
    Camera_VideoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a preconfigured resolution type is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resolution type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanPreconfig(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, bool* canPreconfig);

/**
 * @brief Checks whether a preconfigured resolution type with an aspect ratio is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resoluRtion type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_CanPreconfigWithRatio(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio, bool* canPreconfig);

/**
 * @brief Sets a preconfigured resolution type.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	ptureSession_Preconfig(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType);

/**
 * @brief Sets a preconfigured resolution type with an aspect ratio.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	ptureSession_PreconfigWithRatio(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio);

/**`exposure value.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureValue Pointer to ,the exposure value.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	YptureSession_GetExposureValue(Camera_CaptureSession* session, float* exposureValue);

/**`current focal length.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focalLength Pointer. to the focal length.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetFocalLength(Camera_CaptureSession* session, float* focalLength);

/**
 * @brief Check whether focus distance is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isSupported Pointer to the re,sult of whether focus distance is supported.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_IsFocusDistanceSupported(const Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Get current focus distance, ranging from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDistance Point!er to the current focus distance.q'CAMERA_OK} if the method call succeeds.Q	JCAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetFocusDistance(const Camera_CaptureSession* session, float* focusDistance);

/**
 * @brief Sets focus distance. Possible distance values range from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDis#tance The focus distance to be set.q'CAMERA_OK} if the method call succeeds.Q	CINVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetFocusDistance(const Camera_CaptureSession* session, float focusDistance);

/**
 * @brief Sets smooth zoom.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param targetZoom Target zoom ratio.
 * @param smoot4hZoomMode Smooth zoom mode.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_SetSmoothZoom(Camera_CaptureSession* session,
    float targetZoom, Camera_SmoothZoomMode smoothZoomMode);

/**
 *csupported color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Double pointer to the list of supported color spaces, which are defined in the
 * OH_NativeBuffer_ColorSpace struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported color spaces.
 * @return **CAMERA_OK**: The'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetSupportedColorSpaces(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace** colorSpace, uint32_t* size);

/**
 * @brief Deletes color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer to the list of color spaces, which are defined in the OH_NativeBuffer_ColorSpace struct.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 12
 */	ptureSession_DeleteColorSpaces(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Obtaoactive color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer toB the OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetActiveColorSpace(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Sets the active color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace TarAget OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_SetActiveColorSpace(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace colorSpace);

/**
 * @brief Register device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitch[StatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be registered.qif the method call succeeds.Q	,C if parameter missing or parameter type incorrect.
 * @since 13
 */	ptureSession_RegisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Unregister device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitchStatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be unregistered.qif the method call succeeds.Q	,C if parameter missing or parameter type incorrect.
 * @since 13
 */	ptureSession_UnregisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Check whether auto device switch is supported.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param isSupported the result of whether auto device switch supported.
 * @return|if the method call succeeds.Q	,2 if parameter missing or parameter type incorrect.Q	GSESSION_NOT_CONFIG} if the capture session not config.
 * @since 13
 */	ptureSession_IsAutoDeviceSwitchSupported(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enable auto switch or not for the camera device.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param enabled the flag of enable auto switch or not.qif the method call succeeds.Q	,2 if parameter missing or parameter type incorrect.Q	6SESSION_NOT_CONFIG} if the capture session not config.Q	DSERVICE_FATAL_ERROR} if camera service fatal error.
 * @since 13
 */	ptureSession_EnableAutoDeviceSwitch(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Set quality prioritization.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param qualityPrioritization the target {@link Camera_QualityPrioritization} to set.qif the method call succeeds.Q	,2 if parameter missing or parameter type incorrect.Q	GSESSION_NOT_CONFIG} if the capture session not config.
 * @since 14
 */	ptureSession_SetQualityPrioritization(
    Camera_CaptureSession* session, Camera_QualityPrioritization qualityPrioritization);

/**
 * @brief Checks whether macro photography is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of macro photography. **true** if supported, **fa;lse**
 * otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 19
 */	ptureSession_IsMacroSupported(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enables or disables macro photography for the camera device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable or disable macro capability. **true** to enable, **false** otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**: '
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: .The operation is not allowed.
 * @since 19
 */	ptureSession_EnableMacro(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isMacroDetected Whether the camera is in macro mode. **true** if the camera is in macro mode, **false**
 * otherwise.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnMacroStatusChange)(Camera_CaptureSession* session, bool isMacroDetected);

/**
 * @brief Registers a callback to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**: The op'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_RegisterMacroStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Unregisters the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_UnregisterMacroStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Registers a callback to listen for capture system pressure level changes.
 *
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevelChange Target callback, Pwhich is OH_CaptureSession_OnSystemPressureLevelChange.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_RegisterSystemPressureLevelChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSystemPressureLevelChange systemPressureLevelChange);

/**
 * @brief Unregisters the callback used to listen for capture system pressure level changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevelChange Target callback, which is OH_CaptureSession_OnSystemPressureLevelChange.
 * @return **CAMERA_OK**: The operation'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_UnregisterSystemPressureLevelChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSystemPressureLevelChange systemPressureLevelChange);

/**
 * @brief Checks whether the camera controller is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of the` camera controller. **true** if supported, **
 * false** otherwise.
 * @return **CAMERA_OK = 0**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 20
 */	^ptureSession_IsControlCenterSupported(Camera_CaptureSession* session, bool* isSupported);

/**`effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Double pointer to the list of supported effect types, which are defined in the
 * Camera_ControlCenterEffectType struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported effect types.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 20
 */	ptureSession_GetSupportedEffectTypes(
    Camera_CaptureSession* session, Camera_ControlCenterEffectType** types, uint32_t* size);

/**
 * @brief Deletes the effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Pointer to the list of effect types, which are defined in the Camera_ControlCenterfEffectType struct.
 * @param size Size of the list of supported effect types.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_DeleteSupportedEffectTypes(Camera_CaptureSession* session,
    Camera_ControlCenterEffectType* types, uint32_t size);

/**
 * @brief Enables or disables the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable the camera controller. **true** to enable, **false** otherwise.
 * @return **CAMERA_OK = 0**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: Th.e camera service is abnormal.
 * @since 20
 */	ptureSession_EnableControlCenter(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterStatusInfo Pointer to the effect status information passed by the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnControlCenterEffectStatusChange)(Camera_CaptureSession* session,
    Camera_ControlCenterStatusInfo* controlCenterStatusInfo);

/**
 * @brief Registers a callback to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterEffectStatusChange Target callback, which is OH_CaptureSession_OnControlCenterEffectStatusChange.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_RegisterControlCenterEffectStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnControlCenterEffectStatusChange controlCenterEffectStatusChange);

/**
 * @brief Unregisters the callback used to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterEffectStatusChange Target callback, which is OH_CaptureSession_OnControlCenterEffectStatusChange.
 * @return **CAMERA_OK**'
 *     <br>**CAMERA_INVALID_ARGUMENT**}	<
 * @since 20
 */	ptureSession_UnregisterControlCenterEffectStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnControlCenterEffectStatusChange controlCenterEffectStatusChange);

/**
 * @brief Query the raw zoom range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minZoom the minimum of zoom value.
 * @param maxZoom the Maximum of zoom value.
r'CAMERA_OK} if the method call succeeds.Q	CINVALID_ARGUMENT} if parameter missing or parameter type incorrect.Q	^CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetRNAWCaptureZoomRatioRange(const Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**
 * @brief Checks if the specified OIS mode is supported.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link_ OH_Camera_OISMode} to check.
 * @param isSupported Output parameter indicating support status.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_IsOISModeSupported(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode, bool* isSupported);

/**
 * @brief Gets the supported bias range for the specified OIS axis.
 *
 * @param session Pointer to a session.
 * @param oisAxis The OIS axis {@link OH_Camera_OISAxes}
 * @param minBias Output parameter for minimum bias value.
 * @param maxBias Output parSameter for maximum bias value.
 * @param step Output parameter for bias step value.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedOISBiasRange(const Camera_CaptureSession* session,
    OH_Camera_OISAxes oisAxis, float* minBias, float* maxBias, float* step);

/**
 * @brief Gets the current OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisModBe Output parameter for current OIS mode {@link OH_Camera_OISMode}.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetCurrentOISMode(const Camera_CaptureSession* session,
    OH_Camera_OISMode* oisMode);

/**
 * @brief Gets the current custom bias values for all OIS axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Output parameter forS pitch axis bias value.
 * @param yawBias Output parameter for yaw axis bias value.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetCurrentCustomOISBias(const Camera_CaptureSession* session,
    float* pitchBias, float* yawBias);

/**
 * @brief Sets the OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link OH_Camera_OISMode} to set.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetOISMode(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode);

/**
 * @brief Sets custom OIS bias values for all axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Bias value for pitch axis.
 * @param yawBias Bias value for yaw axis.q'CAMERA_OK} if the method call succeeds.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	NCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetOISModeCustom(const Camera_CaptureSession* session,
    float pitchBias, float yawBias);

/**
 * @brief Gets the zoom point infos.
 * Release the zoom point infos memory by calling {@link OH_CaptureSession_DeleteZoomPointInfos}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param size Pointer to the size of queried zoom point infIo.
 * @param zoomPointInfo Double pointer to the queried zoom point info.q>CAMERA_OK} is returned if the function is called successfully.Q	3CAMERA_INVALID_ARGUMENT} if parameters are invalid.Q	:CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.Q	RCAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 26.0.0
 */	ptureSession_GetZoomPointInfos(const Camera_CaptureSession* session, uint32_t* size,
    OH_Camera_ZoomPointInfo** zoomPointInfo);

/**
 * @brief Delete the zoom point infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * l@param zoomPointInfo the target {@link Camera_ZoomPointInfo} list to be deleted if the method call succeeds.q'CAMERA_OK} if the method call succeeds.Q	_CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */	ptureSession_DeleteZoomPointInfos(const Camera_CaptureSession* session,
    OH_Camera_ZoomPointInfo* zoomPointInfo);

/**
 * @brief Called whenrmation is received.
 *
 * @param context Pointer to the user-defined context passed when the callback is registered.
 * @param
a+s.
 * @param size Numb
2b.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnNotificationReceive)(
    void* context,!=
4);

/**
 * @brief Registers a callback to listen forrmation received events,
 * can be unRegister by {@link OH_CaptureSession_UnregisterNotificationReceivedCallback}.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context to be passe>d in the callback.
 * @param callback Callback used to receiveXrmation, which is an
 *        {@link OH_CaptureSession_OnNotificationReceive} instance.q=Q	h
 * @since 26.0.0
 */	ptureSession_RegisterNotificationReceivedCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OZnNotificationReceive callback);

/**
 * @brief Unregisters the callback used to listen forrmation received events.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context passed when the callback was registered.
 * @param callback Callback to unregister, which is an {@lin4k OH_CaptureSession_OnNotificationReceive} instance.q=Q	h
 * @since 26.0.0
 */	ptureSession_UnregisterNotificationReceivedCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSessionI_OnNotificationReceive callback);

#ifdef __cplusplus
}
#endif

#endif // CAMERA_SESSION_H
/** @} */wLbx[[
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Open"
    },
        {
        "first_introduced": "12",
        "name": "OH_CameraInput_OpenSecureCamera"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Close"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraInput_Release"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_IsPhysicalCameraOrientationVariable"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_GetPhysicalCameraOrientation"
    },
    {
        "first_introduced": "22",
        "name": "OH_CameraInput_UsePhysicalCameraOrientation"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_RegisterTorchStatusCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_UnregisterTorchStatusCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameras"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_DeleteSupportedCameraOutputCapability"
    },
    {
        "first_introduced": "11",
        "name": "OH_CameraManager_IsCameraMuted"
    },
    {
        "first_introduced": "11",
        	"name": "%B"
    },
    {
        "first_introduced": "11",
        "name": "KmeraInput"
    },
    {
        "first_introduced": "11",
        "name": "_meraInput_WithPositionAndType"
    },
    {
        "first_introduced": "11",
        "name": "OPreviewOutput"
    },
    {
        "first_introduced": "24",
        "name": "WDeferredPreviewOutput"
    },
    {
        "first_introduced": "12",
        "name": "^PreviewOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "MPhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "\PhotoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "12",
        "name": "[PhotoOutputWithoutSurface"
    },
    {
        "first_introduced": "11",
        "name": "MVideoOutput"
    },
    {
        "first_introduced": "12",
        "name": "\VideoOutputUsedInPreconfig"
    },
    {
        "first_introduced": "11",
        "name": "MetadataOutput"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_GetSupportedSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_DeleteSceneModes"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_IsTorchSupportedByTorchMode"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraManager_SetTorchMode"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_GetCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "OH_Camera_DeleteCameraManager"
    },
    {
        "first_introduced": "11",
        "name": "1JCallback"
    },
    {
        "first_introduced": "11",
        "name": "1&Iallback"
    },
    {
        "first_introduced": "12",
        "name": "1*B"
    },
    {
        "first_introduced": "12",
        "name": "1&jB"
    },
    {
        "first_introduced": "12",
        "name": "LessionMode"
    },
    {
        "first_introduced": "12",
        "name": "-NSecureOutput"
    },
    {
        "first_introduced": "11",
        "name": "/B"
    },
    {
        "first_introduced": "11",
        "name": "q>"B"
    },
    {
        "first_introduced": "11",
        "name": "-P$B"
    },
    {
        "first_introduced": "11",
        "name": "*GInput"
    },
    {
        "first_introduced": "11",
        "name": "-(B"
    },
    {
        "first_introduced": "11",
        "name": "*%B"
    },
    {
        "first_introduced": "11",
        "name": "- B"
    },
    {
        "first_introduced": "11",
        "name": "*LhotoOutput"
    },
    {
        "first_introduced": "11",
        "name": "-1B"
    },
    {
        "first_introduced": "11",
        "name": "*MVideoOutput"
    },
    {
        "first_introduced": "11",
        "name": "-6B"
    },
    {
        "first_introduced": "11",
        "name": "*PMetadataOutput"
    },
    {
        "first_introduced": "11",
        "name": "Ftart"
    },
    {
        "first_introduced": "11",
        "name": "Etop"
    },
    {
        "first_introduced": "11",
        "name": "*lease"
    },
    {
        "first_introduced": "11",
        "name": "OH_CaptureSession_HasFlash"
    },
    {
        "first_$introduced": "11",
        "name": "B&B"
    },
    {
        "first_introduced": "11",
        "name": "cKFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "KFlashMode"
    },
    {
        "first_introduced": "11",
        "name": "BWB"
    },
    {
        "first_introduced": "11",
        "name": "c`FMode"
    },
    {
        "first_introduced": "11",
        "name": "o	Eode"
    },
    {
        "first_introduced": "11",
        "name": "cuB"
    },
    {
        "first_introduced": "11",
        "name": "wB"
    },
    {
        "first_introduced": "11",
        "name": "c`GRange"
    },
    {
        "first_introduced": "11",
        "name": "oFBias"
    },
    {
        "first_introduced": "11",
        "name": "c`B"
    },
    {
        "first_introduced": "11",
        "name": "BB"
    },
    {
        "first_introduced": "11",
        "name": "c>	B"
    },
    {
        "first_introduced": "11",
        "name": "pFMode"
    },
    {
        "first_introduced": "11",
        "name": "cLFocusPoint"
    },
    {
        "first_introduced": "11",
        "name": "p
B"
    },
    {
        "first_introduced": "11",
        "name": "#B"
    },
    {
        "first_introduced": "11",
        "name": "B"
    },
    {
        "first_introduced": "11",
        "name": "m	B"
    },
    {
        "first_introduced": "11",
        "name": "BB"
    },
    {
        "first_introduced": "11",
        "name": "czB"
    },
    {
        "first_introduced": "11",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "qB"
    },
    {
        "first_introduced": "12",
        "name": "qXB"
    },
    {
        "first_introduced": "12",
        "name": "qMPhotoOutput"
    },
    {
        "first_introduced": "12",
        "name": "qB"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "KWithRatio"
    },
    {
        "first_introduced": "12",
        "name": "	B"
    },
    {
        "first_introduced": "12",
        "name": "		B"
    },
    {
        "first_introduced": "12",
        "name": "c`GValue"
    },
    {
        "first_introduced": "12",
        "name": "cB"
    },
    {
        "first_introduced": "12",
        "name": "B"
    },
    {
        "first_introduced": "12",
        "name": "MColorSpaces"
    },
    {
        "first_introduced": "12",
        "name": "#B"
    },
    {
        "first_introduced": "12",
        "name": "cB"
    },
    {
        "first_introduced": "12",
        "name": "ActiveColorSpace"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_MetadataOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureStartWithInfoCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterFrameShutterEndCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterCaptureReadyCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterEstimatedCaptureDurationCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_RegisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_UnregisterPhotoAssetAvailableCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Capture_WithCaptureSetting"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_Release"
    },
    {
        "first_introduced": "11",
        "name": "OH_PhotoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "13",
        "name": "OH_PhotoOutput_EnableMirror"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_IsMovingPhotoSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_GetPhotoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoOutput_GetPhotoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoOutput_EnableMovingPhoto"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_PreviewOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_GetPreviewRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_GetPreviewRotationWithoutDisplayRotation"
    },
    {
        "first_introduced": "12",
        "name": "OH_PreviewOutput_SetPreviewRotation"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_RegisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_UnregisterCallback"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Start"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Stop"
    },
    {
        "first_introduced": "11",
        "name": "OH_VideoOutput_Release"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteProfile"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetSupportedFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_DeleteFrameRates"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_SetFrameRate"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetActiveFrameRate"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_EnableMirror"
    },
    {
        "first_introduced": "15",
        "name": "OH_VideoOutput_IsMirrorSupported"
    },
    {
        "first_introduced": "12",
        "name": "OH_VideoOutput_GetVideoRotation"
    },
    {
        "first_introduced": "23",
        "name": "OH_VideoOutput_GetVideoRotationWithoutDeviceDegree"
    },
    {
        "first_introduced": "12",
        "name": "OH_CameraDevice_GetCameraOrientation"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceName"
    },
    {
        "first_introduced": "15",
        "name": "OH_CameraDevice_GetHostDeviceType"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_GetMainImage"
    },
    {
        "first_introduced": "12",
        "name": "OH_PhotoNative_Release"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraManager_RegisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "OH_CameraMianager_UnregisterFoldStatusInfoCallback"
    },
    {
        "first_introduced": "13",
        "name": "1`B"
    },
    {
        "first_introduced": "13",
        "name": "1&B"
    },
    {
        "first_introduced": "13",
        "name": "B7B"
    },
    {
        "first_introduced": "13",
        "name": "ORAutoDeviceSwitch"
    },
    {
        "first_introduced": "14",
        "name": "*"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraDevice"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetCameraDevices"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_DeleteCameraDevices"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraManager_GetCameraConcurrentInfos"
    },
    {
        "first_introduced": "18",
        "name": "OH_CameraInput_OpenConcurrentCamerasB"
    },
    {
        "first_introduced": "19",
        "name": "BB"
    },
    {
        "first_introduced": "19",
        "name": "OGMacro"
    },
    {
        "first_introduced": "20",
        "name": "B\B"
    },
    {
        "first_introduced": "20",
        "name": "c!FMode"
    },
    {
        "first_introduced": "20",
        "name": "c&B"
    },
    {
        "first_introduced": "20",
        "name": "c!B"
    },
    {
        "first_introduced": "20",
        "name": "]iB"
    },
    {
        "first_introduced": "20",
        "name": "]iFMode"
    },
    {
        "first_introduced": "20",
        "name": "1!B"
    },
    {
        "first_introduced": "20",
        "name": "1&;!B"
    },
    {
        "first_introduced": "20",
        "name": "B
B"
    },
    {
        "first_introduced": "20",
        "name": "MEffectTypes"
    },
    {
        "first_introduced": "20",
        "name": ",B"
    },
    {
        "first_introduced": "20",
        "name": "O%B"
    },
    {
        "first_introduced": "20",
        "name": "1#'B"
    },
    {
        "first_introduced": "20",
        "name": "1&CB"
    },
    {
        "first_introduced": "20",
        "name": "1B"
    },
    {
        "first_introduced": "20",
        "name": "1&/"
    },
    {
        "first_introduced": "21",
        "name": "OH_PhotoOutput_IsPhotoQualityPrioritizationSupported"
    },
    {
        "first_introduced": "21",
        "name": "OH_PhotoOutput_SetPhotoQualityPrioritization"
    },
    {
        "fi(rst_introduced": "22",
        "name": "1+B"
    },
    {
        "first_introduced": "22",
        "name": "1&"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_IsBandwidthCompressionSupported"
    },
    {
        "first_introduced": "23",
        "name": "OH_PreviewOutput_EnableBandwidthCompression"
    },
    {
        "first_introduced": "24",
        "name": "OH_PreviewOutput_AddDeferredSurface"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraManager_GetSupportedFullCameraOutputCapabilityWithSceneMode"
    },
    {
        "first_introduced": "23",
        "name": "OH_PhotoNative_GetUncompressedImage"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_RegisterOcclusionDetectionCallback"
    },
    {
        "first_introduced": "23",
        "name": "OH_CameraInput_UnregisterOcclusionDetectionCallback"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_AddMetadataObjectTypes"
    },
        {
        "first_introduced": "23",
        "name": "OH_MetadataOutput_RemoveMetadataObjectTypes"
D    },
        {
        "first_introduced": "23",
        "name": "MetadataOutputWithObjectTypes"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensEquivalentFocalLengths"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_IsLogicalCamera"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLogicalCameraConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_DeleteConstituentCameraDevices"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensFocalLength"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetMinimumFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetLensDistortion"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetIntrinsicCalibration"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPhysicalSize"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorPixelArraySize"
    },
    {
        "first_introduced": "24",
        "name": "1LB"
    },
    {
        "first_introduced": "24",
        "name": "1&LB"
    },
    {
        "first_introduced": "24",
        "name": "BzB"
    },
    {
        "first_introduced": "24",
        "name": "c`zB"
    },
    {
        "first_introduced": "24",
        "name": "oB"
    },
    {
        "first_introduced": "24",
        "name": "&B"
    },
    {
        "first_introduced": "24",
        "name": "cEIso"
    },
    {
        "first_introduced": "24",
        "name": "EIso"
    },
    {
        "first_introduced": "24",
        "name": "ȑB"
    },
    {
        "first_introduced": "24",
        "name": "tB"
    },
    {
        "first_introduced": "24",
        "name": "cRPhysicalAperture"
    },
    {
        "first_introduced": "24",
        "name": "B"
    },
    {
        "first_introduced": "24",
        "name": "pB"
    },
    {
        "first_introduced": "24",
        "name": "oJDuration"
    },
    {
        "first_introduced": "24",
        "name": "cB"
    },
    {
        "first_introduced": "24",
        "name": "1B"
    },
    {
        "first_introduced": "24",
        "name": "1&.B"
    },
    {
        "first_introduced": "24",
        "name": "cOFocusDistance"
    },
    {
        "first_introduced": "24",
        "name": "poB"
    },
    {
        "first_introduced": "24",
        "name": "B3B"
    },
    {
        "first_introduced": "24",
        "name": "c;)B"
    },
    {
        "first_introduced": "24",
        "name": "B+B"
    },
    {
        "first_introduced": "24",
        "name": "c4~1B"
    },
    {
        "first_introduced": "24",
        "name": "IOISMode"
    },
    {
        "first_introduced": "24",
        "name": ".B"
    },
    {
        "first_introduced": "24",
        "name": "c4"
    },
    {
        "first_introduced": "24",
        "name": "OH_CameraDevice_GetSensorColorFilterArrangement"
    },
    {4
        "first_introduced": "24",
        "name": "SOISModeCustom"
    },
    {
        "first_introduced": "26.0.0",
        "name": "1WQF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "1&._Q"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_IsTorchLevelControlSupported"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraManager_SetTorchModeOnWithLevel"
    },
    {
        "first%_introduced": "26",
        "name": "cOlD"  
    },
    {
        "first_introduced": "26",
        "name": "cOl	D"  
    },
    {
        "first_introduced": "26",
        "name": "MColorTint"  
    },
    {
        "first_introduced": "26",
        "name": ";
F"
    },
    {
        "first_introduced": "26.0.0",
        "name": ">F"
    },
    {
        "first_introduced": "26.0.0",
        "name": "1CF"
    },
    {
        "first_introduced": "26.0.0",
        "name": "1&@"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetNotificationName"
    },
    {
        "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_GetProximityStateForFocus"
    },
    {
   _     "first_introduced": "26.0.0",
        "name": "OH_CameraNotificationInfo_Destroy"
    }
]
URyxy/*
 * Copyright (c) 2026 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * @addtogroup h
 * @{
 *
 * @brief Provide the definition of the C interface for the camera module.
 *
 * @since 26.0.0
 */
/**
 * @file camera_notification_info.h
 *
 * @brief The file declares the notification info.
 *
 * @library libohcamera.so
 * @kit CameraKit
 * @syscap SystemCapability.Multimedia.Camera.Core
 * @since 26.0.0
 */

#ifndef NATIVE_INCLUDE_CAMERA_NOTIFICATION_H
#define NATIVE_INCLUDE_CAMERA_NOTIFICATION_H

#include <stdint.h>
#include <stdio.h>
#include "camera.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief The struct describes the camera notification info.
 *
 * @since 26.0.0
 */
typedef struct OH_Camera_NotificationInfo OH_Camera_NotificationInfo;

/**
 * @brief Obtains the notification name from a camera notification info instance.
 *
 * @param notificationInfo Pointer to an OH_Camera_NotificationInfo instance.
 * @param name Pointer to the notification name, which is an {@link OH_Camera_NotificationName} instance.
 * @return {@link #CAMERA_OK} : The operation is successful.
 *         {@link #CAMERA_INVALID_ARGUMENT}: A parameter is missing or the parameter type is5 incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode hh(
    const OH_Camera_NotificationInfo* notificationInfo,
    OH_Camera_NotificationName* name);

/**
 * @brief Obtains the proximity state for focus from a camera notification info instance.
 *
 * @param notificationInfo Pointer to an {@link OH_Camera_NotificationInfo} instance.
 * @param state Pointer to the proximity state for focus, which is an
 *        {@link OH_Camera_ProximityStateForFocus} instance.
 * @return {@link #CAMERA_OK} : The operation is successful.
 *         {@link #CAMERA_INVALID_ARGUMENT}: A parameter is missing or the parameter type is incorrect.
 * @since 26.0.0
 */
Camera_ErrorCode OH_Camh-(
    const OH_Camera_NotificationInfo* notificationInfo, OH_Camera_ProximityStateForFocus* state);

/**
 * @brief Destroys camera notification info instances.
 *
 * @param notificationInfo Pointer to the pointer of {@link OH_Camera_NotificationInf;o} instances to be destroyed.
 * @since 26.0.0
 */
void h~ie(OH_Camera_NotificationInfo* notificationInfo);

#ifdef __cplusplus
}
#endif

#endif
/** @} */6#
x   0/*
 * Copyright (C) 2023 Huawei Device Co., Ltd.2CvD+
 *.
 *GfELGA"*
 */
/**
 * @addtogroup OH_Camera
 * @{
 *KF
 *
 * @since 11
 * @version 1.0
 */
/**
 * @file capture_session.h
 *5!capture session concepts.
 * m
 * @kit CameraKit3"
 * @since 11
 * @version 1.0
 */
CAMERA_SESSION_H
#define8CAMERA_SESSION_H

#include <stdint.h>
#include <stdio.h>p
#include "camera_input.h"
#include "preview_output.h"
#include "photo_output.h"
#include "video_output.h"
#include "metadata_oXutput.h"
#include "native_buffer/native_buffer.h"
#include "camera_notification_info.h"

extern "C" {
#endif

/**&pture session object.
 * 
 * @since 11
 * @version 1.0
 */
typedef struct Camera_CaptureSession Camera_CaptureSession;

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report focus status
 * changes of a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param focusState Focus status.
 * @since 11
 */
typedef void (*OH_CaptureSession_OnFocusStateChange)(Camera_CaptureSession* session, Camera_FocusState focusState);

/**
 * @brief Defines the callback defined in the {@link CaptureSession_Callbacks} struct and used to report capture
 * session errors.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param errorCode Error code reported in a capture session.
 * @see CAMERA_SERVICE_FATAL_ERROR
 * @since 11
 */
typedef void (*OH_CaptureSession_OnError)(Camera_CaptureSession* session, Camera_ErrorCode errorCode);

/**
 * @brief Defines the callback invoked when smooth zoom is triggered for a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfo Pointer to the smooth zoom information passed by the callback.
 * @since 12
 */
typedef void (*OH_CaptureSession_OnSmoothZoomInfo)(Camera_CaptureSession* session,
    Camera_SmoothZoomInfo* smoothZoomInfo);

/**
 * @brief Capture session device switch status callback.
 *
 * @param session the {@link Camera_CaptureSession} which deliver the callback.
 * @param autoDeviceSwitchStatusInfo the {@link Camera_AutoDeviceSwitchStatusInfo} which delivered by the callback.
 * @since 13
 */
typedef void (*OH_CaptureSession_OnAutoDeviceSwitchStatusChange)(Camera_CaptureSession* session,
    Camera_AutoDeviceSwitchStatusInfo* autoDeviceSwitchStatusInfo);

/**
 * @brief Defines the callback used to listen for capture system pressure level changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevel Pointer to the system pressure level passed by the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnSystemPressureLevelChange)(Camera_CaptureSession* session,
    Camera_SystemPressureLevel systemPressureLevel);

/**&llbacks related to a capture session.
 * 
 * @see OH_CaptureSession_RegisterCallback
 * @since 11
 * @version 1.0
 */
typedef struct CaptureSession_Callbacks {
    /**
     * Callback to report a focus status change of a capture session.
     */
    OH_CaptureSession_OnFocusStateChange onFocusStateChange;

    /**
     * Callback to report a capture session error.
     */
    OH_CaptureSession_OnError onError;
} CaptureSession_Callbacks;

/**
 * @brief Registers a callback to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param callback Poi5nter to the target callback.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 11
 */	ptureSession_RegisterCallback(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Unregisters the callback used to listen for capture session events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance hthat transfers the callback.
 * @param callback Pointer to the target callback.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 11
 */	ptureSession_UnregisterCallback(Camera_CaptureSession* session,
    CaptureSession_Callbacks* callback);

/**
 * @brief Registers a callback to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfkers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_RegisterSmoothZoomInfoCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Unregisters the callback used to listen for smooth zoom events.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param smoothZoomInfoCallback Pointer to the target callback.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_UnregisterSmoothZoomInfoCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSmoothZoomInfo smoothZoomInfoCallback);

/**
 * @brief Sets a session mode.
 * This API cannot be called after {@link OH_CaptureSession_BeginConfig}.
 * You are advised to call this function immediately after {@link OH_CameraManager_CreateCaptureSession}.
 * 
 * @param session Pmointer to the target Camera_CaptureSession instance.
 * @param sceneMode Scene mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 12
 */
Camera_ErrorCod	ptureSession_SetSessionMode(Camera_CaptureSession* session, Camera_SceneMode sceneMode);

/**
 * @brief Marks a preview output stream as secure output.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput PoKinter to the target Camera_PreviewOutput instance.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 12
 */
Camera_ErrorCod	ptureSession_AddSecureOutput(Camera_CaptureSession* session, Camera_PreviewOutput* previewOutput);

/**
 * @brief Starts the configuration for a capture session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<c
 *     <br>**CAMERA_SESSION_CONFIG_LOCKED**: The session configuration is locked.
 * @since 11
 */	ptureSession_BeginConfig(Camera_CaptureSession* session);

/**
 * @brief Commits the configuration for a capture session.
 * 
 _* @param session Pointer to the target Camera_CaptureSession instance.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	hnot allowed.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */	ptureSession_CommitConfig(Camera_CaptureSession* session);

/**
 * @brief Adds a Camera_Input instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to add.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_AddInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Removes a Camera_Input instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to =the Camera_Input instance to remove.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_RemoveInput(Camera_CaptureSession* session, Camera_Input* cameraInput);

/**
 * @brief Adds a PreviewOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param previewOutput Pointer to< the PreviewOutput instance to add.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_AddPreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Removes a PreviewOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param WpreviewOutput Pointer to the PreviewOutput instance to remove.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_RemovePreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* previewOutput);

/**
 * @brief Adds a PhotoOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photLoOutput Pointer to the PhotoOutput instance to add.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_AddPhotoOutput(Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Removes a PhotoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param photoOutput GPointer to the PhotoOutput instance to remove.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_RemovePhotoOutput(Camera_CaptureSession* session, Camera_PhotoOutput* photoOutput);

/**
 * @brief Adds a **VideoOutput** instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutpuJt Pointer to the **VideoOutput** instance to add.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_AddVideoOutput(Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Removes a VideoOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param videoOutput GPointer to the VideoOutput instance to remove.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_RemoveVideoOutput(Camera_CaptureSession* session, Camera_VideoOutput* videoOutput);

/**
 * @brief Adds a MetadataOutput instance to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param metadataOutKput Pointer to the MetadataOutput instance to add.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_AddMetadataOutput(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Removes a MetadataOutput instance from a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @pa]ram metadataOutput Pointer to the MetadataOutput instance to remove.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<,
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**1	not allowed.
 * @since 11
 */	ptureSession_RemoveMetadataOutput(Camera_CaptureSession* session,
    Camera_MetadataOutput* metadataOutput);

/**
 * @brief Starts a capture session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance to start.
 * @return **CAMERA_OK**:2	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: Th.e camera service is abnormal.
 * @since 11
 */	ptureSession_Start(Camera_CaptureSession* session);

/**
 * @brief Stops a capture session.
 * 
 * @param session Pointer to thBe Camera_CaptureSession instance to stop.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */	ptureSession_Stop(Camera_CaptureSession* session);

/**
 * @brief Releases a CaptureSession instance.
 * 
 * @param session PoiOnter to the Camera_CaptureSession instance to release.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 11
 */	ptureSession_Release(Camera_CaptureSession* session);

/**
 * @brief Checks whether the device has flash.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param hasFlash Pointer to the check result for whether the device ha\s flash. **true** if the device has flash, **
 * false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_HasFlash(Camera_CaptureSession* session, bool* hasFlash);

/**
 * @brief Checks whether a flash mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to check.
 * @param isSupported Pointer to the check result for the support of the flash mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsFlashModeSupported(Camera_CaptureSession* session,
    Camera_FlashMode flashMode, bool* isSupported);

/**
 * @dflash mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Pointer to t'he flash mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFlashMode(Camera_CaptureSession* session, Camera_FlashMode* flashMode);

/**
 * @brief Sets a flash mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param flashMode Flash mode to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetFlashMode(Camera_CaptureSession* session, Camera_FlashMode flashMode);

/**
 * @brief Capture session flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param flashState The {@link OH_Camera_FlashState} which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnFlashStateChange)(const Camera_CaptureSession* session, OH_Camera_FlashState flashState);

/**
 * @brief Register flash state change event callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The {@link OH_CaptureSession_OnFlashStateChange} to be registered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *   h      {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_RegisterFlashStateChangeCallback(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Unregister flash state change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param flashStateChange The {@link OH_CaptureSession_OnFlashStateChange} to be unregistered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_UnregisterFlashStateChangeCallback(const Camera_CaptureSession* session,
    OH_CaptureSession_OnFlashStateChange flashStateChange);

/**
 * @brief Defines a callback function that is invoked when the exposure state changes.
 *
 * @param context Indicates the pointer to the user-defined context.
 * @param exposureState Indicates the current exposure state.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnExposureStateChange)(void* context, OH_Camera_ExposureState exposureState);

/**
 * @brief Registers a callback for exposure state changes.
 *
 * After this callback is registered, the callback is invoked when the exposure state changes in the
 * capture session.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context.
 * @param callback {@link OH_CaptureSession_OnExposureStateChange} Indicates the callback to register.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVATLID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */	ptureSession_RegisterExposureStateChangeCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Unregisters the callback for exposure state changes.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param context Indicates the pointer to the user-defined context specified when the callback was registered.
 * @param callback {@link OH_CaptureSession_OnExposureStateChange} Indicates the callback to unregister.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or pa,rameter type incorrect.
 * @since 26.0.0
 */	ptureSession_UnregisterExposureStateChangeCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OnExposureStateChange callback);

/**
 * @brief Checks whether an exposure mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to check.
 * @param isSupported Pointer to the check result for the support of the exposure mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**: The6	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsExposureModeSupported(Camera_CaptureSession* session,
    Camera_ExposureMode exposureMode, bool* isSupported);

/**_exposure mode in use. This API directly returns an invalid value if you have not set the exposure
 * mode using {@link OH_CaptureSession_SetExposureMode}.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode 6Pointer to the exposure mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureMode(Camera_CaptureSession* session, Camera_ExposureMode* exposureMode);

/**
 * @brief Checks whether the specified white balance mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @param isSupported Pointer to the check result for the support of the specified white balance mode. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**: The function is successfully called(.
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */
	ptureSession_IsWhiteBalanceModeSupported(Camera_CaptureSession* session,
    Camera_WhiteBalanceMode whiteBalanceMode, bool* isSupported);

/**_white balance mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode Pointer to the white balance mode.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalanceMode(Camera_CaptureSession* session, Camera_WhiteBalanceMode* whiteBalanceMode);

/**
 * @brief Sets a white balance mode.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param whiteBalanceMode White balance mode.
 * @return **CAMERA_OK**: The setting is successful.
 *     <br>**CAMERA_INVALID_ARGUMENT**: A parameter is	,c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_SetWhiteBalanceMode(Camera_CaptureSession* session, Camera_WhiteBalanceMode whiteBalanceMode);

/**
 * @brief Obtansupported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minColorTemperature Pointer to the minimum supported color temperature, in Kelvin.
 * @param maxColorTemperature Pointer to the maximum supported color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully called.
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalanceRange(Camera_CaptureSession* session, int32_t *minColorTemperature, int32_t *maxColorTemperature);

/**_white balance color temperature.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature Pointer to the white balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The function is successfully call*ed.
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	ptureSession_GetWhiteBalance(Camera_CaptureSession* session, int32_t *colorTemperature);


/**
 * @brief Sets the white balance color temperature.
 * Before setting this parameter, you are advised to use {@link OH_CaptureSession_GetWhiteBalanceRange} to obtain the
 * supported white balance color temperature range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorTemperature White balance color temperature, in Kelvin.
 * @return **CAMERA_OK**: The setting is suc/cessful.
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<c
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The camera session is not configured.
 * @since 20
 */

	\ptureSession_SetWhiteBalance(Camera_CaptureSession* session, int32_t colorTemperature);

/**_supported white balance color tint range.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param minColorTint Pointer to the minimum color tint.
 * @param maxColorTint Pointer to the maximum color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} i0s returned if an input parameter
               	/
 *         {@link CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */	ptureSession_GetColorTintRange(const Camera_CaptureSession* session,
    int32_t *minColorTint, int32_t *maxColorTint);

/**
 *bwhite balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Pointer to the color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *P         {@link CAMERA_INVALID_ARGUMENT} is returned if an input
               	9
 *         {@link CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */	ptureSession_GetColorTint(const Camera_CaptureSession* session, int32_t *colorTint);

/**
 * @brief Sets the white balance color tint.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param colorTint Color tint.
 * @return Result code.
 *         {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} is returned if an input	
               	$
 *         {@link CAMERA_SESSION_NOT_CONFIG} is returned if the session is not configured when the function is called.
 * @since 26.0.0
 */	ptureSession_SetColorTint(const Camera_CaptureSession* session, int32_t colorTint);

/**
 * @brief Sets an exposure mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureMode Exposure mode to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	dptureSession_SetExposureMode(Camera_CaptureSession* session, Camera_ExposureMode exposureMode);

/**_metering point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param point Pointer to t+he metering point.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetMeteringPoint(Camera_CaptureSession* session, Camera_Point* point);

/**
 * @brief Sets the metering point, which is the center point of the metering rectangle.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 >* @param point Metering point to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetMeteringPoint(Camera_CaptureSession* session, Camera_Point point);

/**
 * @brief Check whether a specified exposure metering mode is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode The {@link OH_Camera_ExposureMeteringMode} to be checked.
 * @param isSupported Pointer to the result of whether exposure mode supported.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_IsExposureMeteringModeSupported(const Camera_CaptureSession* session,
    OH_Camera_ExposureMeteringMode exposureMeteringMode, bool* isSupported);

/**
 * @brief Get current exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode Pointer to the {@link OH_Camera_ExposureMeteringMode} instance.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybek abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetExposureMeteringMode(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode* exposureMeteringMode);

/**
 * @brief Set exposure metering mode.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureMeteringMode The target {@link OH_Camera_ExposureMeteringMode} to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_?NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetExposureMeteringMode(const Camera_CaptureSession* session, OH_Camera_ExposureMeteringMode exposureMeteringMode);

/**
 * @brief Query the iso range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minIsoValue the minimum of iso value.
 * @param maxIsoValue the Maximum of iso value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} 3if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedISORange(const Camera_CaptureSession* session,
    int32_t *minIsoValue, int32_t *maxIsoValue);

/**
 * @brief Get current iso sensitivity value, as defined in ISO 12232:2006.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isoValue Pointer to the current iso sensitivity value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSCION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetIso(const Camera_CaptureSession* session, int32_t* isoValue);

/**
 * @brief Sets ISO sensitivity value, within the range of getSupportedIsoRange. This control is only effective if
 * ExposureMode is set to EXPOSURE_MODE_LOCKED.
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isoValue Indicates target iso value to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *    Z     {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetIso(const Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Defines the callback used to listen for ISO changes in a camera session.
 * 
 * @param session Pointer to the **Camera_CaptureSession** instance.
 * @param isoValue ISO value obtained in the callback.
 * @since 22
 */
typedef void (*OH_CaptureSession_OnIsoChange)(Camera_CaptureSession* session, int32_t isoValue);

/**
 * @brief Registers a callback to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to lis-ten for ISO changes.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 22
 */	ptureSession_RegisterIsoChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Unregisters the callback used to listen for ISO changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isoChange Callback of the **OH_CaptureSession_OnIsoChange** type, which is used to listen for ISO changes.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 22
 */	ptureSession_UnregisterIsoChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnIsoChange isoChange);

/**
 * @brief Gets the supported physical apertures list. 
 * Release the physical apertures memory by calling {@link OH_CaptureSession_DeletePhysicalApertures}.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param apertures pointer to an array for storing physical aperture values
 * @param size the size of physical apertures.
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if 0the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedPhysicalApertures(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture** apertures, uint32_t* size);

/**
 * @brief Gets the current physical aperture value
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param aperture returned current aperture value
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetPhysicalAperture(const Camera_CaptureSession* session, double* aperture);

/**
 * @brief Delete the physical apertures.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param apertures pointer to an array for storing physical aperture values
 * @param size the array size of the physical apertures.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */
Camer	ptureSession_DeletePhysicalApertures(const Camera_CaptureSession* session,
    OH_Camera_PhysicalAperture* apertures, uint32_t size);

/**
 * @brief Set physical aperture value.
 *
 * @param session the {@link Camera_CaptureSession} instance
 * @param aperture the aperture value to set
 * @return {@link CAMERA_OK} success 
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_	]ptureSession_SetPhysicalAperture(const Camera_CaptureSession* session, double aperture);

/**_exposure compensation values of the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minExposureBias Pointer to the minimum exposure compensation value.
 * @param maxExposureBias Pointer to the maximum exposurhe compensation value.
 * @param step Pointer to the exposure compensation step.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureBiasRange(Camera_CaptureSession* session, float* minExposureBias,
    float* maxExposureBias, float* step);

/**
 * @brief Sets an exposure compensation value for the device.
 * 
 * @param session Pointer to the target Camera_CapthureSession instance.
 * @param exposureBias Exposure compensation value to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	VptureSession_SetExposureBias(Camera_CaptureSession* session, float exposureBias);

/**_exposure compensation value in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposLureBias Pointer to the exposure compensation value.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetExposureBias(Camera_CaptureSession* session, float* exposureBias);

/**
 * @brief Get the supported range of exposure durations. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param minExposureDuration Pointer to the minimum of exposure duration.
 * @param maxExposureDuration Pointer to the maximum of exposure duration.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_Er	ptureSession_GetSupportedExposureDurationRange(const Camera_CaptureSession* session, int32_t* minExposureDuration,
    int32_t* maxExposureDuration);

/**
 * @brief Set exposure duration. Units: Microseconds.
 * If the sensor can't expose this duration exactly, it will shorten the duration to the nearest supported value, which is
 * reporeted by Callback {@link OH_CaptureSession_OnExposureDurationChange}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDuration the target exposure duration to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetExposureDuration(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Get current exposure duration. Units: Microseconds.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDuration Pointer to the current exposure duration.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture s#ession not config.
 * @since 24
 */	ptureSession_GetExposureDuration(const Camera_CaptureSession* session, int32_t* exposureDuration);

/**
 * @brief Capture session exposure duration change callback.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} which deliver the callback.
 * @param exposureDuration The exposure duration which delivered by the callback.
 * @since 24
 */
typedef void (*OH_CaptureSession_OnExposureDurationChange)(const Camera_CaptureSession* session, int32_t exposureDuration);

/**
 * @brief Register exposure info change event callback.
 *    After exposure parameters are changed, the system will returns the updated exposure infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange The {@link OH_CaptureSession_OnExposureDurationChange} to be registered.
 * @return {@link CAMERA_OK} if the method call succeeds.
 * {@link\ CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_RegisterExposureInfoChangeCallback(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange);

/**
 * @brief Unregister exposure info change callback.Invoke this method after finishing camera operations.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param exposureDurationChange The {@link OH_CaptureSession_OnExposureDurationChange} to be unregistered.
 * @return {@link CAMERA_OK} if the method call succeedhs.
 * {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 24
 */	ptureSession_UnregisterExposureInfoChangeCallback(
    const Camera_CaptureSession* session, OH_CaptureSession_OnExposureDurationChange exposureDurationChange); 

/**
 * @brief Checks whether a focus mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to check.
 * @param isSupported Pointer to the check reosult for the support of the focus mode. **true** if supported, **false**
 * otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsFocusModeSupported(Camera_CaptureSession* session,
    Camera_FocusMode focusMode, bool* isSupported);

/**
 * @dfocus mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Pointer to t'he focus mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFocusMode(Camera_CaptureSession* session, Camera_FocusMode* focusMode);

/**
 * @brief Sets a focus mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusMode Focus mode to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	[ptureSession_SetFocusMode(Camera_CaptureSession* session, Camera_FocusMode focusMode);

/**_focal point in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Pointer to* the focal point.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetFocusPoint(Camera_CaptureSession* session, Camera_Point* focusPoint);

/**
 * @brief Sets a focal point for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focusPoint Focal point to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	YptureSession_SetFocusPoint(Camera_CaptureSession* session, Camera_Point focusPoint);

/**_supported zoom ratio range.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param minZoom Pointker to the minimum zoom ratio.
 * @param maxZoom Pointer to the maximum zoom ratio.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	dptureSession_GetZoomRatioRange(Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**_zoom ratio in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Pointer to the zo"om ratio.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetZoomRatio(Camera_CaptureSession* session, float* zoom);

/**
 * @brief Sets a zoom ratio for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param zoom Target zoom ratio.
 * It takes some time for the zoom ratio to take effect at the bottom layer. To obtain the correct zoom ratio, you need
 * to wait for one to two frames.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetZoomRatio(Camera_CaptureSession* session, float zoom);

/**
 * @brief Checks whether a video stabilization mode is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Video stabilization mode to check.
 * @param isSupported Pointer to the check result for the support of the video stabilization mode. **true** if
 *9 supported, **false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_IsVideoStabilizationModeSupported(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode, bool* isSupported);

/**_video stabilization mode in use.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param mode Poi>nter to the video stabilization mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_GetVideoStabilizationMode(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode* mode);

/**
 * @brief Sets a video stabilization mode for the device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 *F @param mode Video stabilization mode to set.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 11
 */	ptureSession_SetVideoStabilizationMode(Camera_CaptureSession* session,
    Camera_VideoStabilizationMode mode);

/**
 * @brief Checks whether a Camera_Input instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraInput Pointer to the Camera_Input instance to check.
 * @param isSuccessful Pointer to the check result for whether the Camera_Input instance can be added to the session. **
 * true** if it can be added to the session, **fa)lse** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanAddInput(Camera_CaptureSession* session,
    Camera_Input* cameraInput, bool* isSuccessful);

/**
 * @brief Checks whether a PreviewOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PreviewOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PreviewOutput instance can be added to the session. *
 * *true** if it can be added to the session, **f*alse** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanAddPreviewOutput(Camera_CaptureSession* session,
    Camera_PreviewOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a PhotoOutput instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the PhotoOutput instance to check.
 * @param isSuccessful Pointer to the check result for whether the PhotoOutput instance can be added to the session. **
 * true** if it can be added to the s5ession, **false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanAddPhotoOutput(Camera_CaptureSession* session,
    Camera_PhotoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a **VideoOutput** instance can be added to a session.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param cameraOutput Pointer to the **VideoOutput** instance to check.
 * @param isSuccessful Pointer to the check result for whether the VideoOutput instance can be added to the session. **
 * true** if it can be added to t9he session, **false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanAddVideoOutput(Camera_CaptureSession* session,
    Camera_VideoOutput* cameraOutput, bool* isSuccessful);

/**
 * @brief Checks whether a preconfigured resolution type is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resolution type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanPreconfig(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, bool* canPreconfig);

/**
 * @brief Checks whether a preconfigured resolution type with an aspect ratio is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @param canPreconfig Pointer to the check result for the support of the preconfigured resoluRtion type. **true** if
 * supported, **false** otherwise.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_CanPreconfigWithRatio(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio, bool* canPreconfig);

/**
 * @brief Sets a preconfigured resolution type.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	ptureSession_Preconfig(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType);

/**
 * @brief Sets a preconfigured resolution type with an aspect ratio.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param preconfigType Target preconfigured resolution type.
 * @param preconfigRatio Target preconfigured aspect ratio.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	ptureSession_PreconfigWithRatio(Camera_CaptureSession* session,
    Camera_PreconfigType preconfigType, Camera_PreconfigRatio preconfigRatio);

/**_exposure value.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param exposureValue Pointer to ,the exposure value.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<\
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: The camera service is abnormal.
 * @since 12
 */	YptureSession_GetExposureValue(Camera_CaptureSession* session, float* exposureValue);

/**_current focal length.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param focalLength Pointer. to the focal length.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetFocalLength(Camera_CaptureSession* session, float* focalLength);

/**
 * @brief Check whether focus distance is supported.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param isSupported Pointer to the result of whether focus distance is supported.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the captur&e session not config.
 * @since 24
 */	ptureSession_IsFocusDistanceSupported(const Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Get current focus distance, ranging from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDistance Pointer to the current focus distance.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetFocusDistance(const Camera_CaptureSession* session, float* focusDistance);

/**
 * @brief Sets focus distance. Possible distance values range from 0.0 to 1.0, with 0.0 being shortest
 * distance at which the lens can focus and 1.0 the furthest. The default value is 1.0.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param focusDistance The focus distance to be set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormal.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetFocusDistance(const Camera_CaptureSession* session, float focusDistance);

/**
 * @brief Sets smooth zoom.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param targetZoom Target zoom ratio.
 * @param smoot4hZoomMode Smooth zoom mode.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_SetSmoothZoom(Camera_CaptureSession* session,
    float targetZoom, Camera_SmoothZoomMode smoothZoomMode);

/**
 *bsupported color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Double pointer to the list of supported color spaces, which are defined in the
 * OH_NativeBuffer_ColorSpace struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported color spaces.
 * @return **CAMERA_OK**: The6	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetSupportedColorSpaces(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace** colorSpace, uint32_t* size);

/**
 * @brief Deletes color spaces.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer to the list of color spaces, which are defined in the OH_NativeBuffer_ColorSpace struct.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 12
 */	ptureSession_DeleteColorSpaces(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Obtanactive color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace Pointer toB the OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_GetActiveColorSpace(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace* colorSpace);

/**
 * @brief Sets the active color space.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param colorSpace TarAget OH_NativeBuffer_ColorSpace instance.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 12
 */	ptureSession_SetActiveColorSpace(Camera_CaptureSession* session,
    OH_NativeBuffer_ColorSpace colorSpace);

/**
 * @brief Register device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitch[StatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be registered.pif the method call succeeds.P	,C if parameter missing or parameter type incorrect.
 * @since 13
 */	ptureSession_RegisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Unregister device switch event callback.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param autoDeviceSwitchStatusChange the {@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange} to be unregistered.pif the method call succeeds.P	,C if parameter missing or parameter type incorrect.
 * @since 13
 */	ptureSession_UnregisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange);

/**
 * @brief Check whether auto device switch is supported.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param isSupported the result of whether auto device switch supported.
 * @return{if the method call succeeds.P	,2 if parameter missing or parameter type incorrect.P	GSESSION_NOT_CONFIG} if the capture session not config.
 * @since 13
 */	ptureSession_IsAutoDeviceSwitchSupported(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enable auto switch or not for the camera device.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param enabled the flag of enable auto switch or not.pif the method call succeeds.P	,2 if parameter missing or parameter type incorrect.P	6SESSION_NOT_CONFIG} if the capture session not config.P	DSERVICE_FATAL_ERROR} if camera service fatal error.
 * @since 13
 */	ptureSession_EnableAutoDeviceSwitch(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Set quality prioritization.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param qualityPrioritization the target {@link Camera_QualityPrioritization} to set.pif the method call succeeds.P	,2 if parameter missing or parameter type incorrect.P	GSESSION_NOT_CONFIG} if the capture session not config.
 * @since 14
 */	ptureSession_SetQualityPrioritization(
    Camera_CaptureSession* session, Camera_QualityPrioritization qualityPrioritization);

/**
 * @brief Checks whether macro photography is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of macro photography. **true** if supported, **fa;lse**
 * otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 19
 */	ptureSession_IsMacroSupported(Camera_CaptureSession* session, bool* isSupported);

/**
 * @brief Enables or disables macro photography for the camera device.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable or disable macro capability. **true** to enable, **false** otherwise.
 * @return
 *     <br>**CAMERA_OK = 0**: 3	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_OPERATION_NOT_ALLOWED**: 3	not allowed.
 * @since 19
 */	ptureSession_EnableMacro(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param isMacroDetected Whether the camera is in macro mode. **true** if the camera is in macro mode, **false**
 * otherwise.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnMacroStatusChange)(Camera_CaptureSession* session, bool isMacroDetected);

/**
 * @brief Registers a callback to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**: The op9	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_RegisterMacroStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Unregisters the callback used to listen for macro status changes of a camera session.
 * 
 * @param session Pointer to the Camera_CaptureSession instance.
 * @param macroStatusChange Callback used to return the macro status change.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_UnregisterMacroStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnMacroStatusChange macroStatusChange);

/**
 * @brief Registers a callback to listen for capture system pressure level changes.
 *
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevelChange Target callback, Pwhich is OH_CaptureSession_OnSystemPressureLevelChange.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_RegisterSystemPressureLevelChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSystemPressureLevelChange systemPressureLevelChange);

/**
 * @brief Unregisters the callback used to listen for capture system pressure level changes.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param systemPressureLevelChange Target callback, which is OH_CaptureSession_OnSystemPressureLevelChange.
 * @return **CAMERA_OK**: The operation@	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_UnregisterSystemPressureLevelChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnSystemPressureLevelChange systemPressureLevelChange);

/**
 * @brief Checks whether the camera controller is supported.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param isSupported Pointer to the check result for the support of the` camera controller. **true** if supported, **
 * false** otherwise.
 * @return **CAMERA_OK = 0**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 20
 */	^ptureSession_IsControlCenterSupported(Camera_CaptureSession* session, bool* isSupported);

/**_effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Double pointer to the list of supported effect types, which are defined in the
 * Camera_ControlCenterEffectType struct, if the function is successfully called.
 * @param size Pointer to the size of the list of supported effect types.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<b
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 * @since 20
 */	ptureSession_GetSupportedEffectTypes(
    Camera_CaptureSession* session, Camera_ControlCenterEffectType** types, uint32_t* size);

/**
 * @brief Deletes the effect types supported by the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param types Pointer to the list of effect types, which are defined in the Camera_ControlCenterfEffectType struct.
 * @param size Size of the list of supported effect types.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_DeleteSupportedEffectTypes(Camera_CaptureSession* session,
    Camera_ControlCenterEffectType* types, uint32_t size);

/**
 * @brief Enables or disables the camera controller.
 * 
 * @param session Pointer to the target Camera_CaptureSession instance.
 * @param enabled Whether to enable the camera controller. **true** to enable, **false** otherwise.
 * @return **CAMERA_OK = 0**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 *     <br>**CAMERA_SESSION_NOT_CONFIG**: The capture session is not configured.
 *     <br>**CAMERA_SERVICE_FATAL_ERROR**: Th.e camera service is abnormal.
 * @since 20
 */	ptureSession_EnableControlCenter(Camera_CaptureSession* session, bool enabled);

/**
 * @brief Defines the callback used to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterStatusInfo Pointer to the effect status information passed by the callback.
 * @since 20
 */
typedef void (*OH_CaptureSession_OnControlCenterEffectStatusChange)(Camera_CaptureSession* session,
    Camera_ControlCenterStatusInfo* controlCenterStatusInfo);

/**
 * @brief Registers a callback to listen for effect status changes of a camera controller.
 * 
 * @param session Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterEffectStatusChange Target callback, which is OH_CaptureSession_OnControlCenterEffectStatusChange.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_RegisterControlCenterEffectStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnControlCenterEffectStatusChange controlCenterEffectStatusChange);

/**
 * @brief Unregisters the callback used to listen for effect status changes of a camera controller.
 * 
 * @param sessionu Pointer to the Camera_CaptureSession instance that transfers the callback.
 * @param controlCenterEffectStatusChange Target callback, which is OH_CaptureSession_OnControlCenterEffectStatusChange.
 * @return **CAMERA_OK**1	'
 *     <br>**CAMERA_INVALID_ARGUMENT**|	<
 * @since 20
 */	ptureSession_UnregisterControlCenterEffectStatusChangeCallback(Camera_CaptureSession* session,
    OH_CaptureSession_OnControlCenterEffectStatusChange controlCenterEffectStatusChange);

/**
 * @brief Query the raw zoom range.
 *
 * @param session the {@link Camera_CaptureSession} instance.
 * @param minZoom the minimum of zoom value.
 * @param maxZoom the Maximum of zoom value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation not allowed, session or inputdevice maybe abnormacl.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetRAWCaptureZoomRatioRange(const Camera_CaptureSession* session, float* minZoom, float* maxZoom);

/**
 * @brief Checks if the specified OIS mode is supported.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link OH_Camera_OISMode} to check.
 * @param isSupported Output parameter indicating support status.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_IsOISModeSupported(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode, bool* isSupported);

/**
 * @brief Gets the supported bias range for the specified OIS axis.
 *
 * @param session Pointer to a session.
 * @param oisAxis The OIS axis {@link OH_Camera_OISAxes}
 * @param minBias Output parameter for minimum bias value.
 * @param maxBias Output parameter for maximum bias value.
 * @param step Output parameter for bias step value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetSupportedOISBiasRange(const Camera_CaptureSession* session,
    OH_Camera_OISAxes oisAxis, float* minBias, float* maxBias, float* step);

/**
 * @brief Gets the current OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisMode Output parameter for current OIS mode {@link OH_Camera_OISMode}.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */
Camera_Error	
ptureSession_GetCurrentOISMode(const Camera_CaptureSession* session,
    OH_Camera_OISMode* oisMode);

/**
 * @brief Gets the current custom bias values for all OIS axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Output parameter for pitch axis bias value.
 * @param yawBias Output parameter for yaw axis bias value.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_GetCurrentCustomOISBias(const Camera_CaptureSession* session,
    float* pitchBias, float* yawBias);

/**
 * @brief Sets the OIS mode.
 *
 * @param session Pointer to a session.
 * @param oisMode The OIS mode {@link OH_Camera_OISMode} to set.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if1 the capture session not config.
 * @since 24
 */	ptureSession_SetOISMode(const Camera_CaptureSession* session,
    OH_Camera_OISMode oisMode);

/**
 * @brief Sets custom OIS bias values for all axes.
 *
 * @param session Pointer to a session.
 * @param pitchBias Bias value for pitch axis.
 * @param yawBias Bias value for yaw axis.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CMAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 24
 */	ptureSession_SetOISModeCustom(const Camera_CaptureSession* session,
    float pitchBias, float yawBias);

/**
 * @brief Gets the zoom point infos.
 * Release the zoom point infos memory by calling {@link OH_CaptureSession_DeleteZoomPointInfos}.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param size Pointer to the size of queried zoom point info.
 * @param zoomPointInfo Double pointer to the queried zoom point info.
 * @return {@link CAMERA_OK} is returned if the function is called successfully.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameters are invalid.
 *         {@link CAMERA_OPERATION_NOT_ALLOWED} if operation is not allowed.
 *         {@link CAMERA_SESSION_NOT_CONFIG} if the capture session not config.
 * @since 26.0.0
 */	ptureSession_GetZoomPointInfos(const Camera_CaptureSession* session, uint32_t* size,
    OH_Camera_ZoomPointInfo** zoomPointInfo);

/**
 * @brief Delete the zoom point infos.
 *
 * @param session Pointer to the {@link Camera_CaptureSession} instance.
 * @param zoomPointInfo the target {@link Camera_ZoomPointInfo} list to be deleted if the method call succeeds.
 * @return {@link CAMERA_OK} if the method call succeeds.
 *         {@link CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
 * @since 26.0.0
 */	ptureSession_DeleteZoomPointInfos(const Camera_CaptureSession* session,
    OH_Camera_ZoomPointInfo* zoomPointInfo);

/**
 * @brief Called whenrmation is received.
 *
 * @param context Pointer to the user-defined context passed when the callback is registered.
 * @param
`+cs.
 * @since 26.0.0
 */
typedef void (*OH_CaptureSession_OnNotificationReceive)(
    void* context,!
-4);

/**
 * @brief Registers a callback to listen forrmation received events,
 * can be unRegister by {@link OH_CaptureSession_UnregisterNotificationReceivedCallback}.
 * Lifetime and ownership:
 * - The caller must ensure that `context` remains valid until Unregister returns.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context to be passed in the callback-.
 * @param callback Callback used to receiveXrmation, which is an
 *        {@link OH_CaptureSession_OnNotificationReceive} instance.p=P	h
 * @since 26.0.0
 */	ptureSession_RegisterNotificationReceivedCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession_OZnNotificationReceive callback);

/**
 * @brief Unregisters the callback used to listen forrmation received events.
 *
 * @param session Pointer to a {@link Camera_CaptureSession} instance.
 * @param context Pointer to the user-defined context passed when the callback was registered.
 * @param callback Callback to unregister, which is an {@lin4k OH_CaptureSession_OnNotificationReceive} instance.p=P	h
 * @since 26.0.0
 */	ptureSession_UnregisterNotificationReceivedCallback(
    const Camera_CaptureSession* session, void* context, OH_CaptureSession"_OnNotificationReceive callback);

}
#endif

#endif //CAMERA_SESSION_H
/** @} */RC	x;#,#3A#vB#)#
#    ,#
#E#`C#J#E#8 
import("//build/ohos.gni")
import("//build/ohos/ndk/ndk.gni")

ohos_ndk_headers("camera_ndk_header") {
  dest_dir = "$ndk_headers_out_dir/ohcamera"
  sources = [
    "./camera.h",
    "./camera_device.h",
    "./camera_input.h",
    "./camera_manager.h",
    "./camera_notification_info.h"
    "./capture_session.h",
    "./metadata_output.h",
    "./photo_native.h",
    "./photo_output.h",
    "./preview_output.h",
    "./video_output.h",
  ]
}

ohos_ndk_library("libohcamera") {
  output_name = "ohcameraa"
  output_extension = "so"
  ndk_description_file = "./camera.ndk.json"
  system_capability = "'"
  system_capability_headers = [
    "ohcamera/camera.h",
    "ohcamera/camera_device.h",
    "ohcamera/camera_manager.h",
    "ohcamera/camera_notification_info.h"
    "ohcamera/camera_input.h",
    "ohcamera/capture_session.h",
    "ohcamera/metadata_output.h",
    "ohcamera/photo_output.h",
    "ohcamera/preview_output.h",
    "ohcamera/video_output.h",
    "ohcamera/photo_native.h",
  ]
}
YKx o,oY
xuMlkXԕ3sJSRSRK*RK2 X67͜\E`[/TM ú=8E'7oX	neigĸu?Kn& f ş8xZtoiJU'<wFF2,'mewF0Io`<W~n'KN)w œ{M9=i2Mqrd&x һg<ָ~&fw{8@K8:o	``|@{Fg	3~VWK)MIUPK,,K/,H/,.MPj̸A3ӵ9rau Y,?`bnv:_3	;4mo2sVEG zf
2x[pk,ӋkY3sJSRlKR2J츔SsSqL^Jf,YRsRSRRSsRJ&f㫀s2&c޼e 6"+9sd~Αɇn(3orK Q;
Kx Xlayout	r`"
!w(q9lcl#5"@&Gy1S@[x @&,u0DËp	JVPZzwzwzw=Asx[pYϳHf&'ɧXY"Oȱd&gmVdmgp	fMuhIOo'n|$2sel7f286=~Cy'+o^g̨4,(n?gȼcvN&Lۿc7nQ|Z&v Og3l7gp X}Pj
xk,.i)i
9 ̥S`\\WbǥS$ dMbQEJ057)5%%5%>9? ?/5o;y
Ek9+Xj%&'sm[-=9݂o3bϭ?f~3#3mY ZC{xV,.i)i
9 ̥S`\\WbǥS$ dMbQ*%[W2YUP*ydwK,a7}WFYZmkŨw	1 d?ELպ5x[rA-L["/"0=c+tYQV)̼TԼb=.RI*K81k0;TtƝLӭ9Xy׉
C>h>=g=.I/b$*¦``h`:}R6?Y`jz7(dQVán8Ym;sB t"8xفN005|pjw`yB@};!GfMgr7+X;ﱺlV3}A +gFrٽk;Klod1W.llr*2=cRҜ,
%q&DMCC}:?ZZ
>%0}#CC`\aLu9!tڢtrusA1aYjQNb%Wt\FnGӊ^O<O/݂7nNRjF&O`43LVaF9N'rl>3pds mfD/ժOxQkP'[ҤtN_pNjM ٱi|dIM^*8{:\dL>m]yr?5B|MBi#|#
:<%I0{9lI 4 `Ӵ?FyW"\`~$^ʜt)d'L#iS@}vxC`s1$q=P%n7:?V 	$&ࣈI (9 D:ax,U'G/^BNl"C	)XNvɓmjbmqbP6WUj@eQYdiiG^z*[xfwWT`embWJZWW4/6h39򒒳Ƈ+n4fEYԪ;ѿN:,$imwcW7vת/ծ>xAkQ6DZЊ.X8Vp!Ě!$I_28MĕYjwBBpFRȶ?qb5PE|w9|}yޕ^_=(5q 4m}bci*'brGR/QKh ݎ<}i2%ݑ'DVdaC1BDCcơЊpL=@>CN\>2v,' !Ynz>!KY'χbyMJ2\8YZ /ÇҌ̷(ȹFb^t+S특\ǰeǨ?(Z+UlM?vfEpF̑ͳgs<мl.لQ8-M/ͥKs
tV;fX6.F╟JaLN'l'unƬ}1ղ$x[5Q%LqL@,X-?H`I.IJ,R()JLVHLϘvγ
MWX6}2#tŨZt2
;`NLI,(,KU(ɟЌ]x+\,=.RK)MU(JKORHU(($*&HS/RH-,M`PZ$BuC@-,f\Z@,UbₜJOE7;9{z{(*M(5!sٝ@@̱}v''= Pմqx[5QVFC8& fb fb6 fbqQ x;1Ac-?HN 6o#tvVɯvqMvaj2yA3Yy9tuӜ~Uaz1f|E"_X6]UuSLӶ2+L7paeo
l@bsl_ C3WմxkVCaD0oL@̼:aIj<3/a6 fbD9 rմKxkVCaD0oL@̼:aIj<3/a6 f߾@XH|ph@@KPcwHp9	xLa]{LFlYaBFĨgĸb;&rA<~~Af/v oյ}x1 ''Q& 	௜Nն>xn'&ϗXǇNOT_SUPPROTED_FOR_ARKTS_NODE~`NOT_SUPPROTED_FOR_ARKTS_NODE>5+NOT_SUPPROTED_FOR_ARKTS_NODE~08NOT_SUPPROTED_FOR_ARKTS_NODE~02NOT_SUPPROTED_FOR_ARKTS_NODE~028NOT_SUPPROTED_FOR_ARKTS_NODE>NOT_SUPPROTED_FOR_ARKTS_NODE>ϸ"NOT_SUPPROTED_FOR_ARKTS_NODE>	>8xCm-q'FO/fܾ<c!"Ē
EMU*<}$31Mk2L׈e@zrfCELf,bRڮ3Iu̍'1,d־c3Ļ;yn7̑W9Lߛ1:Q`!B|#b3bz	;&rA<޴C upls
; x[D"-L?g^tzNS=Lӳ4ۗ213 1+1;sl_ Ho:]xMhAfjE1Kc~4Ҙ&P/4٭n&`j.9hXb)-("6޼=Xo|{oGSyέB9A*0X$|ve4
֐ tf[Ep05'1r:5=r$qSϕV̕%Ȓ\XdɉXP0MJ"a9!OJ5`U2w
$JC3]j@,2YT&2LOd,~eF<f6a(X@'^X凛ojZTo`фv$8ɓ9A"	jˣiH#,M/-#tF11iN9>,Ϗ=p.^>t{@"lM5z?W9`kTv<CCKcx8̜LBp<;;
M7gBr|Ѡw&`)]s>XʆuP@Ԑ3nJgv{:v 'ZM;Ws)5zЩAWXٰ=Ax "&&	`kF?<)@P}B')f!Pq?+:[- 	I 	IJﻗ{_P0)PWaO$ma0`@nnnn	$ڷM-x[D,-,^N3}Z/Yܶۿfn3Uaz@-tERӟ
n1MW <P3^j{.\]
,oczohz	&MW5ڶMgf{xl2~rlΦM8r,dƟwJ.Ny٧,d.@̱]._ YS|x[Dm-l( Aŧl@̾S5 GMxO &&'+)UgffP
ܗP	
xHm2-q'eg&)$&Lfl<$#Fg1a_psPtlY{1j8L@,@
l@̾$	 <UxAS-Vcdm{Y$ D	
xAc-q'FO/fܾ<c!"Ē
EMU*<}$31Mk2L׈e@zrfCELf,bRjי@Ĭ@@̱]g

 @B7"x{Xmz-'RR+JS32s2K*K2SKRJs@"4E`n^BIBZf^BIFdYpcF>^tE	9`Ŕr|B~!nΡ.

Fؤ 'X3!-'1Bb0M~FxG&/e$mL%Y KMQH3T_(:.mz2Fk٧k1fTnpqus$8s&Nb:qqIIj<me☾w3˖̙'1ofb fb6 f߮? f9x8KD-Kէf@94=m23 1+1 5Zux8KmT-q'/bU+.HM./RILJ͙ضyIFtL\f*#:4;MfqQO WxG'W[C#רNb:qqIظ9?dMoO,@
l@̾=m2 Bx8KmOҬXg''*ZMN3HU+άJU(/IQ/QHJU0QHKQ,Q,VH(HM.IMQ()q)p*((h)M3ROOT(+I-ip,M,)ʬ0Zb)aRkkcb& fޟQ:Ig&XZno`K-#].o׹˱ tyL8N.Wə'8y2t^Nc C_UTx{;QzZCcSxa(8C fb6 f~!r 9AxޫiR3ؓS&'ԇd*gV*g(($*($(d(d+V&(b8Y)'eU'*g敤48ez&eV-AdZ05113oczۈu;[:M؀}kBPyv{wg,ӗq NYs,xޫEu+훮1M8N"<}I1 BsdxޫvCek~;+1;sl6< $VTxg %%ݗpm}LQQ^c"Pj(Hȹ0 BBB	X5Q(Jx[AjCcSw,`wz.3Z6,@
l@̾= $	9x{MdՆ-Lg~̸}
Kd<4ׇIyr9y!g *Ķ}Xb;P (ȲoT&IY&+l?o9TڄffھЂفcB#J 9x6PxRkA&L"b6yEb[H++ze;Infiأ*P4^Az_7a;oޛ}7ȭ;XƲߌĩëՋSJ.e3ov:@Q!+AI
ɕrbbnfa{S \J*ה*\	Րa)胙9/zK9v9BAMa	X$t9]	XAv@$(;ȆiR<=ߧ/nXa_% -[1j6b^ץc&5K6ژ**A	Ni5t[pc<V~|wM0Zj:xfw^(HOetS:A.3H_Px9ķYn,z4>p|ri8|݈H+h\bhqKONI~(5i}39>Na%kklv𧼉SJ\*c;c|/+|* WxxTkEWEY7@A;`rŮ`Ǉp% 3n,x{MJՆ-Lg~̸}-{Ll0%Yف8jo O~ rx{MuՆ-Lg~̸}
Kd<4ׇIyr9y!g *Ķ}Xb;P (">(1==3/]8(?'*,P(HUIM+Q/-NUH*-)S((J-.NMQ,V(.-(/MxC5S~<&)$'Y)[x^ejF}8Z2q-lI;ć{x**MOc]V fbv G3S x{MՆ-L;=_(8]$>Lʓc|_81v_Cg2L^Z-7Yeymad^&4=w6+4C6l@ZpQ *DxC %%llҗ8	жn^Eh` K4x5Y_eI,y)Nb-̚4#{Xߙ*<yt9X1
VyXٷϛ Q#:xk %$nodew]bސܑ8@	"Xʨ!P}$E(\4x{ܤJCcSsֹXSR/Z>=5i;F6&O3UxsX9(1L_75bB1o7* $x{ܤAuMɦ.ٷmp 2Ux]_Ha|\iof)dcNKS+-MlO\m9],"<P"Q bA (07-.Df{qx~wo{LڠIːI~/ê~Vz,,y,5fS4	p1Mف>r(xo@ƀЌ+?~A78^(b a|mo		!FD~ ;%fR:s<=|.yxY=XN,᧚:YJ6W[ݲ6g"ܲ򵻝W\>)vs]Er:-cdl9rnmNӀrA%_O+^@t03xXiڦy/즞LXdt-f]> U֒EqZ >4K0n$T*/,杂c"6Ci
X_g$C泐ɠ:Sq
~jzZ_]yR+TS(lEXիKZaad&Xi@f$vа7@i\^T.p%#cOuL71v&E<?9;R^:"I4/ճ2eKhD2lb􃃼'?gE2x[wۍ	q<.$6=QpzYVk,@̺[e(LW|f.g93 a)xeOHTQƹof:5hhJQ$T(13|	:j*:*A)EPV-6yo'Z\}8;oOJ)DVwR-iMǣQ2ʛO*|%dh/1ڼgյc=,,WQ{rPB$	i)?Vʗo0
1٘Z"XT&kɅxύ|	~L<ׄE׌f-OfPBsW Ԃe/MV|1wqCmR$ښ	Mt`kg*̬2lӀ̫1B;!l|<~gō	zՍ"Vِ_AV<OlDrL|N`qLves##h:`͌'߽8:"WH|VZ#[b&'5Ksu~=~Ax;DrCc̲LYۯ711l@̾zGi> -v({xMOHTQƹNdFc hDF$E7V6QPu\Np*Y6"&=kqwnsscgHm5){حac˱ezsO^p^齜)T 4&36i6˅4yHu|>.NhuuDC>,Pxj^kyD/O5|L/:Hls
XWDwPB+4|C%JGsI_>^3\kXs0Iy0>mA<Tǋ$X	ӛPGQۑ^[0$:Nй.wpq=g:șFk˵$Hq9(RooCYyWo._ X@LyT˹`~	"hY,5 WQx;Dy1-L2oe^Ř9w/vnYFLEÙԷK32M70ffm,ۯ7M'7?%3R$#X,14U$_!9?(?G!,5D!3$(9$3?J!8(RRe ":
 ~bNN~t4vR\wط}kzGqpl#	g߮n{{+Hpx#rh#>q 1lxz@}G9ħ׽1LpAor0#_p,bD?nC0 v0}dxz|rCKL@,@
l@̾]4 ^xz|rCKL@,@
l@̾]4 ^
x;sKrCKL@,@
l@̾]4| \0x<rCcSsKk[e~ VZx<rCcf옸]>Q<Ԋb̔"DPFBYfjtEafe5ļ̜TĂJu8b1|B\Dh},B3rNV,+``a`2'T~93 1+1vr釟r J)x<|rCcSsK6â%l@̾u	\! 7sx3 ##\ 
;@5x8xPqϏXvN-@Ĭ@۹e9j !VoxuPMHTaLly!2EeڴQ7E?::-"2TKPs7-
19Jprs)~j<i{_-аMu~"m"WyT l	i/-6Z_&1yI,$WXcdMM+Q@)t8NঠxC:ﳤiEj1:蝡VNqnYkpN-jC׆^j|s|qE)?~Q+x5:yNQsp'.jyCG~cR.79> ܦa..%t aD^2;Hjs?FsYOx!7/41Y֫e$>&}/lQd Z]PxuPAHTQ|1K'/"CsM-&7-&G@#CV#!hQ"(d^
"];7-	Z-djy8瞓pyZa[4\C<v@~VLPKe?v͐9"}o!5FD8^VPq
x2.ëPR\ϸo&|[&*E),OF9P܋rT/q6uқ߶+:F2C_'lOj&[JrQ6oNO6`mE0βr#h4vr=ǫN{ґu4çlёRqPB+FDo{?>Gcdȱ)VYϹW70KoPֳZIlII-٢Q aWxt@r-L2??b9w/G;,311oh~	@ql7> `!ixk<rCcSsKk[Kkδ#pbs[ NQxU}pT{#F$A1$RImXB&qIH+B)bQ$<G 8Vhca$XT("J*JGط$sν={=rgfi=VuW_̈́67BZ a5AoR}6JO`p⡏W-%[^$G։rӬH0}WS?1@А/'cM~1]SΙ/M_+8LyYⓏgTSRFo܏y4o{G7~ޙ>X*]!}&ʖi] nrtfݪnbj']¤M_\-Rf"`]0oB=hxDy%
H$&h;MnW83*cp iP8rMϬ[T("cyc`a'>)(XB5GޑSIx$b*rUHu'wCk;Ww[}3I{UWIj`aⅆ!cюu$i1,q8B,]:I!b6΢(xDL|#AO;Ixrh )!\abat(78,ٗOzJ
KqϟH{iO	2gez/ph(0hoK*_]\B~C_m:gܫ*P;hOKR~aM,}_81>٤<, -hU?
>\V16Ih^n>+.q]A Eي_zJ[ ?L'6Z`CZzA=ڥ(?Ld<XHOeBehBBM*.478ګJyoly<^Iy5^1p0k(:e|Aoy28Vj||cdRi,6-P`v{U\x1'ֱd|wcR䚔mgc57nb#+&pM~1_aT?V	rgwa۬#
LAYaSJ5Ů6j&k`_y==Ep_`hVn5:Bߒn.>xO'h"xrXǌ6٠jc_W1>QiAtaQ`kާJ=Ʀ'쟤	?sUT:KÕv:KEr6j-7;|deiݭv+p~/$nA܊*)/zx3f?Y7jF3oEv;]Hn8=p0oepVˍo_zFaCDӜUr;ճ˝QySh
eޖ>!GӴe	zX"hZA	)߁s8UVVgz湰?;D.qqE,t;O3?@c"	K3Dc~o+d<?vgmyr'谈hx/DU^&Q|&<"v}y
F141MG"!Yg1Isåk^;ͅ5bG$m0:o!	1H0+^{S
f4|(I90.05I\u
S&joSѰ<2xeY	".]GK2pnIȲE|=qSmK{N|qF7~M9wX\P0+hCvܥ/Qx_{S'b>AMׯ47(3Y!(rrppfUB~BIFBDvBAs	e9AYcd*8}&lYŊYOezzVXʽ]n#wYuf昞Ǫ==+mxǞ YBx_S'b>AMׯ47(3Y!(rrppfUB~BIFBDvBAs	Yٷ é&4qxl ""?IFNJ，Q:. Da4V73,?k+PPPo)Glx_S'b>AMׯ47(3Y!(rrppfUB~BIFBDvBAs	2|tkZ61GOh6}U+3
OO`gb>S2Mǔ>}?0}&Fsǐ	Y1d=}V6DeS
Wv"me IsqdƑr- XViPxSmPTUs9^vXXj"2)!(*K	÷נaEbo-EqV[dIr4	OY2v=<={{E=i]Hyb NЪ3_J⚚5Am[k+rlUi6Vkc]#s撊>m2w<]YK˙,G*7A{~eyM+hSgp:v]e"rYBIw\9̅dΏ6@$>D8w~A ҹFu6!{'}Ü4fXߧ%r{	X}
fyP?A
+ti
E֑֭DjN Ο}`H\%0ğFLS?eqKt|SkqzBMLX>&n	]][
xe4LyzKf;Օ(B	H`C!s;?oѻ0kOA+nHX\x90۲(uvr
\hVÜ?y"s9mma-Kl"\3dp!JjAaaN
+Fb|x0։
L0?ʙHobZ$fV*zk\kW[=Z#זTVTb!%./-YCqeP4W,Gx.])W{!?/exU\ A7L0;:8rOq3< 1aq#1섆X @;";&Wc'MxR=˫;,B^o8-Y$V=QkQOLf
z<>7?v-4iXVYK=QU)*ҩjΏLSANdd;ճ8OG |~l3dx<$sP8%?IogIR0|<YC2WNƂBv0_j=IXc?	gat)82U1"`3Al-$: +akASDk$fnA㕕b,BĬ plU̵Y썁S^KFa1A@%Kr X!Rf%G[
"Е/@^H&v#WSG&VtIt{%=TEHlKrrJvve!l&AtIU1]BO7UK#OWx_bGw$zi[/Bs4kwIx^)-''<c
 v2Nxn+^5$;^e>@{dFi@F)};o]&F]	\h3=L?`6c~KXNaV~n
ivB)ۧd\7V&5ۓY]nc:a&߰JN_ƹ]5ktJKOeu~zw6ĶשL&=8v]+v-F:uM f&XxU]Hay}g-Lc6A5$beT҂(Xeʰ~WG0(OZ,:(r'a`-T/xgnXGft_2ܞ/-%y6>U½^ŀSHb!F+3tj$k,8Hfi~?^{:m Gj0DK86<Eb|ة5~Q8KlpHG0=ET%!ϒrl-i4Ljm
FT\jN;mA8*lt_f7䥨*'Q78|='Q!eP-Fň?epx16j.\$r]~Dzt8nR|l5=~8>,HcjoJtީ!j:ѽ%aI݀T#컘&.p2)YQ>)U<dOUk:jLY2c"b'Ν╕BK.X?y2y(&{Q+x^'+3Jwn_:gl_aԚ=N&~Mk#vǫ'hyO6!H2O`da39A<y0Þ@BӦ1qL7y	2*Ma2-ThV>%ylk$5Fw{?kpLg?;V;8+f+X;av9fgTPY}gspMl{*{lm׵bWޔ~UѸ=}{D9ZY duaIxkLTG3ܙe_<VZEb EeU| <@Ѫ1iE5뗺>jժM_ZLH{aStΙ6h5aOؗOR4>ٸpLx\ކ~!
Wn.K 䋫6!Ř1-Sղ-ӕ+Bw%<׈`8vSԴŶ'!;#,8wACh{&>8ݕ68ւ4>P'_b;(G~|uڻU(PQű9VO8&Z}	͵/}p]K6xy a`
c:6KyMx衴S`ӱ1cD͘¶p$є	C]4E!$+f8..ď=k_ V-")UMqK8
vgs#tQq9p_\.!db?P-Q::) r` W̄ŊFWq}x"D
Q`I{MxTĨu5jѓgXލgk\S.kW$zU_W[]%ݲ*d [^]^Q9S	.\!R:1z𑸠_@j,B*-L"%ЛH-XUu[7Ŗ4	:D7=ʗB*&u$DAHx25D|I3Y{jHE5H&r9|MK$oM%vDnL%o@[7vx,y,rɧP.oIEqX0T^DS}Xu9"/{xh#KmwD 2d^z4RS4ҩYf4wߑ"^ k25poi4rHʂηL,P:$ :OAo[?~ {yQ,aE>b)N]a?IeUl<1/V-hLcq[dE͐ uSxU&l?V`$ZaRAy-1Egg:rE\W󐠒ylv2-la}Բ"-df6!3q6/"Bx{J-gn {nxTQkUff&L0E]*Dfٚ4cօ&[J,u{wn6sĕBJ),iҜ'E}/7)>Dݴ)؇җ3s;30._c'".y0.#7muWc GK;4HR)s.>"'rbn cb$u}̬OctsՋi98U<y\ëuB{lr*qFwD\͛v9XvBX{1.Oˣxlk~kH7#|va	&tTdSh}h?[dx>E$UCYrDǃ.4-pTN;7VHҖyCF8aKVaKOKpD Y _ Cy˃ˇTCS\93	R=Wz`В㳞U)UZZ޵iMSМH]f]"cPQ5;,Jim0RI!Z
,cNTR=-+ܹ%1+b9OK<$;Fοg0dhu5Mwt+6ob}0O* -}T%1}k-m[0f,md6b){t8Szg.WJyR~Ҟ~X֛V _&;7t7~6۸ztae	xI[d#wM	zvo	I#Q#HXC.Y9avaw=sGx{J*'+3Jw/L@,ۗbԞu{7v0a 1noJx;Gv-3ڗbb& fb fb6 f߾trf gOxT ""
-_`x֗\}00i"2xX ""@%sixQ `1N<##N>@.%	x=,B:B:}o<$x^i=%Lڃ;bқ1=dQ0yNJ~?#,-ĶY.
,߾*Yf}rzd&顆lBٶ/e?h^TǾ 60DSxW ""six$a	o4>[		00}QJ9xtG9%L.$O?}[Lr?bb^,o_,@
l@̾}U6
' t xtG-L&NwŤ7=czlˡ
013l0U~Ll_ٶfh~}&K  Yx{C9%L3Lb޽ρ@􂹌


)@"1$S71'383/],3(2}M#F֬ؙ+D2OP*<}D&vOGO`W[銗U0m0ɥlv1odb fb6 f߾5c J?JxR ""֗t?}jW1LL(2uu9FskxJ֛&㜼b2NoxyMkX$3nnژ<v-'\5Yn6	}@]v{2N769G/&34~oL@̼;˞+51lKlwbfrν}Dv4P$Yzzfv&+l_='(gή5ch=ֆ_h9u+C88dP~C	*X-V u4xVڤzF631Lwdeh<y>lXa̶n3#W6c6S6s6VmVj,bY2(*$'%Obuwl&AԲOobUCS Z0
EiE7>aQ^xUpO2Rx'2*O׫`P
wvsvrurPU040400QjaFV fbٍ
, %0AxVVjhalajanaiama>hUv5?c/ba4Mfr$(.<=YPDJ8B́jOYrhMm],C	J Y},8CxVڮ¸ix/;x҉	YٷW:q9 5S~xVڮ¸ix/;x҉	e{4ئY(~΄m9*Fi"9Tu 8RxVڮ԰s k[	Ym-/  c	xVZEa>kMb㊆V3N_vJ'&Er0O ۮ,@
lUw#f{@";	59L˥p:  c69<PKLwmp 'D54xVNaK3){ǶW:1@kU}9B';s&1oWMb?9Ae8V3XpOf^P3]zW\)+1vR7鮭n I1)bxڤbCcSsS)ֲ1oP` _sxxڮYq-L@,@
l@̾=Sg *ux[EUbFetRc:4m󌾓pblԶy.	,wo/c]=9uzA)#>&<ӯ[HN+e+(--PHO-.)-JUHNKN)V(JM+J-0rp&P=:Ue>&54\
 fl@Y%
3Od"KUÕ>}2?VAҡ!Ύ~ή>AnA

vm
 }g$m +݂
x{ժxUaۤ6+oĨ3}3d\̶+UnzWl;03rmfT?[xeo/cz508)d.uU P]YNu*v^'VAY8ߝ̺i,IsX'an¾݈c B	"xNqK-Vc:fFyX☾Ip;KW@!4;f fbV f۞fǮ}zOM9ؙc.oa?2LپEx;PS \6O)xNZņ-=~lo4{ty3g-8|_1dz(ہ 7`xX]WŎ6KnlJuֻ)tf8c{B)zwH f$Ki (	^
ayH4Bܙډjxek<w9|{˿Eoq'/_U"$k}Eeheizf<rUGNΦ<勾-3Az@\/|H1E	>g/BoqGDqIEFtd,$(E&:¨4Tъh,2J*´bmDӚf((邢m	+GWࣹde!ͱ>7#AX/簦)+hH2NWA1汭8CE02 u^h`SGˏ3?`Ln	*Mkn+`#\=yJ\rQͪ&B2K~ ݊GTMT4X+H[Aj
EWｄf<@,ϲP8帛˧TC[u9Ani5`?:uXXnT$QXBd6.dh(+V5xȪ@H!
*XĚhBY4DE<Xˇ?
~@x_;/tz/Y=oXu&v_K3B1I\/eviý0;",Эrߦ@2EBƚJYVDc[yw0oLUU4T	Ddg\6SKyD*S*r|)t)N	#y*OǟUCUD)U'(U[wuԚHO;	:qơ2Lg\y{o
Ӷ#XW*X3z:r[5@50o'jWLŉO\0+Jw9|+%w5+XG}Ϟ2g}zG\'4F}E5IɬńxU(F?y0ӛ?.z$5v*Is"TTӰaIe31n9XMY0Ls=O}ir+9Ԑ'2.Kn$؀mbcH* ,LڬWz>b}E'u3̉Rn>,'Z]z(u 5hBUCP;ؠ#odbQ^EQ
J^o𔓔:k?v2_f\bEEor-imº hWTՔD*c0lICv6Y\ %Y_mX$4`z5HbfR!H6p?Bo'/q߯wty~j@7p.Wrno2֝H}횷!zEڋJE4<On?E2-}gȡgIH9ql:GD(<
ٿƻOywc6Cxv0071N-u[֞NCza4?WO{3$=m[>kgK؋L+N%8ޖ٨|gz@w(86]WzCֻ#8{ozf˃C=Bs-uF?}u3	b,bYbo"CbǢ	m|a"z}ᣋTqZ^
|aRԮ"!dA+]-0쏓v
P|4z;4qE(BVqM(kBMٔ$D4^]xk͐ZA1ۉۍzH
;t+@X&
jkˢ@GBP! 4
8zP*꽏YT9'=)x[R|CcSCۧI
'LEd:S4629y
əyzXU=0]c3^VkYN`$:9 u+fX3NpEpv>Y}+[tol<xLOaϊ]rdf0BF^q/gޮ<ްhMι}q ?X1x|NqIņ->)'OwH0 ?`x|NBFuoQ%w6?l9m,@
l{}#f3tyi\988slf~_Yf;P&	$2dN!;},g8e(ag~c4 2>{
DxtRq:ņ-;sMY$ƶ=z{ִX8b0s(LЙϕc{3feee@:  sHFrHmSvv'9NI  7IxtRqWbFٹ_dgqivmo'پ#e0>ߛYـ}|o _xY{p%O&!1Xh\.EPsIn Brػ$+w!Dd:uDԛEU*BLViZ3c3}n>Mv>ì.G9VdMCpY_jeZIG#$(AdPQIdX̢lgpXQ#b;(GCp(n y˭s]Nose?8YOFbacuAԶ&I""Qu$GDC-x&bs<yS*"4" S\1AN=͖0@Su5!z
*AMItuГW_>*h{CNc=r9iiɍ\n{_2!CGmW~9B|J_T%/}BLeD5xb(d4tk`w<;=&~j8]>wOw.f $d*y&ϙ}pFE֙uQY,;X}w1ΰ ʏ~%D~Igo~j*+1cIH	P'l-(OXezcUdI@U%:4a
]uoWcВ'V8e8tiReK_PL+`ZN9%pfv5K~\;O3yzq&eg;=5h-P{?jO(P\[XWRHlY`HGdQ#K98JCӬ f-1@^K"[5YQؚNw8cX@VN +Jd6ҕeGZ-a-TX.PU!4Q%іޢ,BoJ-TeA@4ʈFT]ͷT}M>SLN-p*<2)b9b=P>UKFJ(nA3NJ5OedaL:8em)QMl h0"5ibP:':QƘ|"qb+z:LF0L)*!ftБ¹FI"U#qi?*LTӃp|hL˦ʴ]+kauLb{MxN3HKsxnwt8Tr;63ح"`v.,57+8ɘt(0{cl=]֊mPjd5`o6b)0ȕތSK?5X˭LQ2]߅upGBP^ St>djUL6̝#pTs + g-ǰ	fl)!0stК])Zndw	SѸ*6EQ!_Op@QGcf#Vd(VFװ"R-a)P5bB<~ N.1N<./Ev̈/ME̺̓e6&an.Ԗ-Oq坫{3й
>C\_&3-gle"hZDPm;6rֆ,LM ]=Rh5Iy)&bW)iR4G7J~~HZ8(~!n5>/QU)w)F8q뇣_^Jrp@74qWY!ANtWmPɿq눕(|+iWHTiӧTSV0GN`PrlxZ=DhFhCa"gnTHILP:MvcA['\8*~>m	pjS~<!
sLK-c2F8% iiC1Ԛlg|%T/}|!m*2(~R`YK6Γ˗=ͅ!e+͎4cq@329e`cl	4@sk`w+\YŚUáw|އD_*Jf3SUvqKNI؄kX0C@#\Jfocs,7=N:'ܴ]6kGASb+`b7[+py/Uܕ~mW~	M?BQfݐs(2ڥbE9|0avDh3Ӌ) Re6鈻{0EisqXDcw\1{ὧ[SE578
3C<p+&(1PqFO[n2߁D'<Wod,Ep/m˅S;5xLưO]M3n$IJzÄQ+s^_^Clݿ4d=ZlsQ[hf9~UKǹUYb҃偋:`pM%d5@wgGRw#)'2,Q(0J|".%B@	&%:Ai.TGh.puJXתv۪xo._/Bkb(+vvbb<8o\(7.txqܓCt:1oJI{XLc>Q5PT3qX=$-BO`E'YSPAX=m<GmB8,+#ҍn[ߨ4: E	%A?Tfr@Q2/W;IJ"2,e:4윒ԟk.fn`^~VǗ28>?Gj3FumdѭtaxM)mHpy]nÙN41Ga@L</$Pz;MRv'V(ƶ;N~~pkjn4S%qtSF2[oO!
P/ܮJEFP#]Ixt#3%\zF*{̰a o"c1+xYkl>f.cI&u뵍ᑍJ6ylHk{zf33cLjEȃZ Rji-$miDET(U4@*;O{h@X;sy|{}K{Npp>)Wla5
?M
**4jbLRhѸ&854558:zm'Y5E@_g}d[ؿ5|u[Z/{vY	3[/J;81lu6t(wI`z3jح@O0Co5;xUqxÒ!
qW*J(i^g+Lxmk:4FT2j*Q*+Tij"!+[+GHF5n9qfUK/JwP㲹KehʠjШj}K{
<,2șil04XQFS :IҨ25h7S$MVuܲOMIIQ	u#:Mcj"5lWJupߣv	@u
-U熘g"HZyѦ\Mb-%.8֬+(CVv]\BYa5֨cS	CnYL1zZD҉3f80Ӧ^H%2/2y4%jh2r%);0m@7L108rdxvVH)5[FިLԺ`;F.g}/M4ʥ}{4uL6U ,%6|G;&4p}|Nal9&9m Aro	Mr
lGJhl>Ϡo _cR/E@4fHc{Kw*q+1ʴ#z-^b8ט7dv_mKO8L^
)WrTdj)f5Fail2E}*CY!ϥ@O֡O	lsӷ	l\ctlAQIUY|mrR"GtH_LC6'_ń!9אPrQ?sV1<,tĳB>qY,̥QXPacI]h\퉄wo-B8u?WJ
U+tE膤GvN y]|heasR	UlMjLvUŒ
ҙÔ9<0 d=.ɄcŋGMpXEoi`zfJ̝܏*7#9%nW>D$V4~ݮT[hGWCz{z:cbK)qdJ:Z)M͜MYz:"ytF6qGBxN/DV1Ei
4'8+d5
(sfҢv}yҶgZgz'OqLud9mIp~Si<
I=a28e^@12#@&sbhΚ5sL#/:HZ$T\h5LҋOBgExK`kq)^*}<;2Ӽq2mHmf+4v\8	kNz膶rtD,bɯr]Mi0,7ݶG\
E6-].X`ݯ
kGfJ&<˶*y<O0G*K)=׿A/lz^a6:Oؐ5i$GBeVN]~	n]_H|KCTa:z na.|(*^k1O
֤H?--s)Xxf!,^xQ^AfM"}'~\8ԑ=oHh2x6dp߽MpcH/[jQrjsFk{#uuMjk֖1#!Ԅ/]4iabο퍳 <ds-(7$epT6K')vpl61Ԅtݺ͋')!~3G#wIuM-wQ\\h,}1kIX/%Nmx73a<P,[n%6!	E=?c\IQ)&KqLYr2NR?#7P='r!zԘ"F@)lՖNRw:u"Ġe*NuE]I᭄Ly؝Kxrv5{,EOYrOx8ּA<з(3-t8[C89[d+39 9m<tEǌěL2<tMymtPcLF	yFc	upMTѹD׎0ex'W =BaI0HX~JEoAOտ+=͆
%@yx`mRifT0"[4VL<fHK'n"pd] ?>?X&X⪼H.]ߙα%~tx,s+bd6@2~RG#-Zes/m'WqL7[2Dyyi.i;3<[!1u]?=;Y@6nx-|['3	oa?}F=7b~(#s~^Zf̍Lf.HUH%d))&($$* yEo2	A\2.g3OWLiAxIz,1:Ļ88ƻ yA~n

ƖWn_4uA9tǶs1nn=S	|Ә/hab^w}&!&L&9GNf> Ir8_L\3cvqf fbV f 	Oc٦~c݃	̜>;wv  <Tx_BFӹE^L@,@
lo/c; Px_7-L.N 3*o
K]az mwWgb fb6 f1Q iL&kx;YLB[0	oa?fYbf>}fS0
fd&g+''LggN>aɹ8U-dT(KNU02nxQ|{ZűsȕV($V旖(&%))d* _dbΚ #EP>8@/Xvz8􂿌1J8F:9)*O/̢(	445T!$3?ؕA r+P/P?D~z#F)&]]<ֻxC0=p2Sf^
ԜdnMiE(U)-.EWqHhMͪ!SIRN~.> qd40=`>v+& fb fbVO."y' ex~ 	l2^LphJlIʓUZP9ߗ܄xO0OOO|b2w	$x l	l2^LphJlIʓUZP9ߗ܄xO0OOYC.o	^__:<Fx;Y~'-,FMx"7ݲ;-,=],@
l{1	x e	l2^LphJl/I2OBW*z	2Pfz\.yC.o	^__<aDx;Ӭp|[e찟`#/"'n/:=`>vk& fb fb? Itcx;Ӭ|C}ӣKed:82[LOt|z1&d:(,6u3	V iLr@Ĭ@̶]^}c K$a x;Ӭ|C}ӣKed:82[L;L~ ÷	A t4&vy9f fbV f./Ǿ1 "Tx;ӬQa8'l.`Ⱦy8>;e1ymٲqԾ+x3	eb& f6\iШ^Mr0;YXNby]1  ^VonLʳ07kdvmeh/v=鷾sm_] TJ|Ix;Yg-r`nL@,@
l %
mx[ۨ|Fp0qm"rav~& f.2aʹ|fw٧[`.eM<FoYvFIj3-wz~#rO+m/Kch4vLPݟٹ~dl| >~Dx[Q~G-Ls_Lfa~L<3v0N:}+v4mfa/ nrx[Q~G-,[%J2K
\RKsJsJS3^gɟ^{2ּ
,ӣuL+:a3bm,@
loc z')uxW}lG|8S&}N6G}}v3۽9. HH)&b"@ jQ
T-I@ AW\{wyo7=5<t[R dLSb6mlgM0kOClqCӌCa,lS'p~ϪYb⼩jOE8%&jJSϟ<AXN8-0Ar>-txJV'+r@'-ESxZxZ/b[ܽBY={>U1 r2~)5SgEN^$r4z`㜬Ą0( "Yئ+'VeAe~zh,&F}^7l(%F6	QAj2TYj)Xb,54%F]֞n^G2/ш6v7R.@)X[iW~wx}=5'RX/ùS>K-琨l}'c}9hp	fQ!9Q)<빱]①v?iyր0x$:Vt]?;z\!Yaq݆;ݑb7xK09G'7|nxwϋ;&qrӢWpqjS (5]IFA[6˵UHS]&Պ^YV(kTWz)ο(YU˘DjfUz
B-|2UII.KIq}(b#ާ ﮜH}ꋥ޽Trh?&ۻY5:~#'ΙLZQ447TML~U']]f,-_k|~g~Hf/vxgy`,Zmqqp3&U%x!BM9?7"֍Ks[x(|pf_qZMq΂{#6keQiL:͕tRU
^.e
x?~OjZV^b12-+^5>Bp#-J5,ףDъ}5yAr\>kd$rf
	Q9C DCʚ}y
}:Լn?C9y?d5wCY'0jI{VA_q}mN}(nQtEڦG]0MҖ"_iЃmٲM"8LjR-v4E[x]FQe,
]s<Kk:z }AFaU#M>澀҆n(8ʙvrǕlNXJ_98Go(eI
crXlfA[f$-2LgRn]b
Ta*8]`3-bIR:N*SF&-+,N*&BS4\i2ݩj#Y2Wy5o
/MΓmWZ!	~?MGGbdZ)y^Lano7H%=SY<Q+Е}n
*^uYL\wmA?jO C9/qAh0W)x$܄$Gz$,x*D3\tKrI2'U" suVK>x
9W=cut@|lxA~7-l/b|S2*J22sJSJJsRRJ2JRSJ2S"% U .`'MX̦7=]>m|US}PjIiQ^BIЖ4
y)@v10(5/%H$$UO.tPq&P&5dGR*6 #3KʋRR2Df#kn]ruafgDi08OB.}Ooh<2'a6K$h)Z3p&߆ۓ ΗgxA){71,K? MJxA=-,7Og>}vs{X?N P
lٯ5  0+x?HaiDX$b(:T%1AѸ:؀A/ɻdh-%A۪KPE]!~o?Sh&BCx}a@t /!| 7;<c-sL؋xSɾFϿ?%LH,fg4MXwG/af!^&bui;=fRuLrjQؗ DK4fJf]`=6nb˰'&ɦR.*-/&<":K)^ ۃ	sB됛*ibcϦ
VJ-Vj,y.H'e}VTKԥpk5T'J5>?}Q*N'cjΔ$g;Rx;=Ea-,eXM"2itF֨U&Ȱ')$&gĬ@̶@ I>!,2x, ˔  6ԇ
xl({Hx{rOi"oOH˜'Bmz5fߟg|`dxfo'^*{7EL@Ddߌ	O	OO"ldU٦KD3M1!Uxڔ/;bޜٞL@̼=!mJ{#+mbdz yR*9x{rO5-,iۣYm{#;; [cx{rO~"oOH˜'Bmz5fߟg|`dxfo'^*{7EL@Ddߌ	O	OO"ldU٦KD3M1!Uxڔ/;bޜٞL@̼=!eY871l-d5~v}l%{ x[xtZ~Q-{ڣ1 kxpMO|F߿ӵXe̱ݮd`b~ɔM}}fYM7gV+;]@ydr!RCX,O?Ek7YئKofνe)vīYEG沚ly5c	2LӲKfc۞U!s{oTF4uMlbہk;<aiŶj! UTx(ѷ'eN6fdߋғLϵ,-r@烈=,=9 "goFLCɧ''	3bYl%&^Ҙ*<ymʗ҇LkE7{}{3Mg8dM_1%L6PUR_e>\xZ6<D&lbatszcf`& fb fbQrrKnxRS-%_+17~cb& fb f-b F1xTn--_',cdkL@,@̺]ۚ HaxTS-lCX1	Owcƿg(7F6lۥ#ئ26]u;Phvp h"I	:x mc f/`-0ۘs#">:TRUe ЋC.@w4ЖЖЖЖbF.=*xtKn-,}alWĬ@̶]a" PV\xtKnf-ɓ/Hc_0}3z&}$f74uzR&2	OnHb۾fa٧g>dO313 1'ٖof \1
[xtKnuݿXuR'ee22,j?R@>Yf-"#&|Olk@-d?6X
nt{21''L]a"1vB2 B_xtKE-,}alWĬ@̶]a"{7k 8:x۶Yn
-L.';zʴSfi~0qNkb.]Ĭ@̶]} {|x|Q\C&}ɏ0OfbK)-KWOLEɩnOfe^I|:?OH|k*`3R&%f`7dkP?Ԅ\LM?p{{&LW3M:f)K'_(c۾fa٧gk{	Y=f TYx|Q!-LLeIDl5K_$<B5+3N>8X#L@,@̺}6' #N4x|Q\F
1/XYi{=۟|gbf fbO  wx|Qn:-ɓ/Hcԟtb2Yf2rOeIDl5K_$<B5+3N>8GVMv(go	Y?n 5%xsH-L++013 1+ma; nJu2x;CF-ɓ11311iL;cx;Cnz-LMv(goOx@Ĭ^  r`xQnZ-L˞N931n /x۱V
-֓01311)L *8x7Ib-;&L`(8_S%5/1)'X$#U!1)3'R$_!3,D!9?'xz2&ۘL>T&}|]]l,+e|=YwOd}pz>+;l<rE99 3srK6%gO7c5n&UV#'dP`d4QMi:cPHK;eFƓ* !䌔Լ,n9VT`AҺ@Mt&~&]<]C0dIHކ$y"D&n>ȶ.%@ЬGoM7fUm/0f^`̾. d34x7In$-oC/dd̚1z+Ffdm}L@,@̺- H~x7I7LYevoC/dd̚1z+Ffd S&vMc& fb fb_C (xXnT-lLclϳa۞g
 AYxX%7L{%6Y0+m~iWO~ Ip$ˑ`t ?'Nd;L~ 7]}	&<-mGe1:u']XHa>UhVwJV;Wװn_]pBA#S/UOG!1$KAK$#U4/3-35E(?983/]!?M!%R!/?%XSg~{U4{0A-t k{n-ɓYn Elx;{I%ن-lׅ53
Oa(̝U`(<F#1	HS%ضO`  
eHx=IY\C3KM7}7&k0Y}Z SsJ2ʵ0abf fbV fÄ]9 ! Wx{+w_`Vf_12.IhzC3{yZ'dh<,@̺= ۑvLT=Ĵ".-TҼ̴̼t4̢JbM튞'On v	8|pxGv}ao/gV9ݾ}s9ٛ|lqLvMw0bhYulG-42RtJRJ2RJ22SS
S3R2J*SR5uw`?j od7xx[u_=ن-kYt?5d?j 8Ax[u_vmن-L'?έ3=3gNcV9`h
u& fb fb+ٙ< jWxs[ن-r 
~xs[vaoNfAgs51N~0uwis0OpӈK'Pnx-cۙ9S
32s2K2SK
JRSJ2K3RrR3K3/f>΋*d1MPX484 ?($hڬ*eԘx_(313 1+m~EKAkw} F^<xzA1*Ϸc`"Ҧ` er$fO6o+lgPG@@Ĭ?b뫚>;]|Xv&0sv;v _ 3)ux}Lvن-Nw'Xs
$畤($d)M_BIFBIjw5x! o3	:;xŇLw\ΔE1W"_*btŧjzY73{QyzNFV1z@@Ĭ{ﱽk P]&x}Laن->
O`>wz.|R71bbGطs  5{x}LFن-AzY	Y7-Ω^d 'ox{wXن-AzY	7Ҟɺ=?meW$  #Mx{wX*ofd1ճ46R(H9krZIIR2RK2B2R''FMb8y-'׽O`1 H0$/iL2+7~;9S 9?$5D!1'3=O!?m$EN+I>3D$9}mF#AgWxGOw˙H1
Pd\3SYQTU040nʢ4Y`9,MǨ<v'#ځ\ fbXWNd嚾a+ָ
Ƭ'M*01	Y9A*L)ɀ92?'Ey9z7ʰNT$ć&Ѩj;/M<#d1);G1vH qоTx{wXfن-AzY	Y7 Fx{wXaن-beŷ놳{0A=t khv6 x3REx{wX>ن-4h 
ox{wXv:ن-AzY	Y7/^^d 
A
&x{wX2ن-AzY73Lw$1Ne#db9g ?W  7G˙
@&^pmulofctn&!0M~1,S#Nd۞ɾiDv7 t$B/cx۳NlCcfٓM]3=!uf'\',gu:EN2N;}s2	O_>=!1(=o[LŸߟfz|s-e։9:{cڧ3>oz)F<9M
'gh,@̺s6 TJx>.;lCcfl
I9?e򟤕<}+Ǵ̜',d6ew{B	yl11n=m O  Px{L`ffovoVެL
yۿ11b,_r1bӃNߙ?}E6Z
3gαYlboIp:;Læ;=$:{FN>U'{"Q=L?.]FMj?̂ly99:\?2O`$PPSYb{';'y^@',tdӋ bZXx{LvvlC)
yۿ113 1+m*^e Ix{Lv_ffovoVެL
yۿ11b,_r1bӃNߙ?}E6Z
3gαYlboIp:;Læ;=$:{FN>U'{"Q=L?.]F=X Pk!Px{LBن-/7+1  5#zxJ@iZZ.wTSW*JM&7`2mRAY
7.|E,0	 802sw{|-_^g]	)z L8\OUvm3d֢ͩdzࢢsfpJHr,JP滔@bA9Kʋ5Sw7ۡQmwa4iρ4 
c<5,tD@@L8X_.?7߻TI-+{4L"$ȡ\DOWz8Gwɟ=z>$`/s8!0He9WV&4qSIrވi|ǀcx{Lvb̬ެެ@@̲ݛU 7+m?.1=X]a: l^dޫα0>3n qۛ0*L?.6&Wpkp[t;lyA2g$NtZSq!s,ћ ,be؃U݅eNx; {LC&ub?w%똖2*L.{--^?eV>*}S}4f fپzٶg  :'
0x; {LCcSsKk#?bәpM{z!lILgb!	d[6=A]rpFZtR	RTV<x; L?rkD2n׈d2}.{W2Oi)Ba2	l߲SV̼l2G0uWOcb fݾz۴ /*a x; L?rkD2n׈d2}.{W2Oi)Ba2	l߲SV̼l2G0uqzt<z,<%X`>]zoXͪ4A>$37$5E$@ 8$3?O!?M$#U8(?'GO!&KRKJĜT"Dܤ"|	%9Lg?}vfLx*nuGVɓY9 Qp\oxSmLWͽ'-m(ao\E
+iCaPH"EjV@-h.* 沱Qֺ"W0~(X梑/q3`m2ι>NM\R)M.pj&{sdkmDUY/%CrۥJj#٭6gMDuYN_!3V'qU}Wd:YcX ]]H%C䗄<r~z'%5g7:n=t4&/12o!!xhc,hu@
gbd	gGxL.!{E@JKcmp5p:Uz%Z.#Z'2%f|+SiSΝ`PdDoGr@Ne{}^Wlsۊ0vm[af~=~{k^8'A!f{-Xו|)˘=>tA6 H/߀0
#n=/O
2!tZ~!O	t\~<^h=ȩcbG^y/rcXbi-U1Ra-r Wv8ƥyPicN.LrdHUÜ`af;Ўfv	X`"S놁*p5I7TJ+k]ZC[lzqoLK
C=ȭC	79@R-cn[j&S*˅;U(fXr;~A`zqD{Z9Um=^:X/x%3r-|rWCBK/xL=&-?ëʱ5AK[J-xr<(`jDGc@Xq\(rjоT|VOAQQCр,o?)k ,JFhkj^q+:G,crXzLEsj-GGxoLU?@#PW`NX6nus2]-f | q¼&˦n3u\Lk\bje-$~z{~枋c֓VM.j?UP2?]Wߢ:)~ya*U0tJ.yQş&U#=qmW^G8DEeis	)5	&	)Ök#4ՕMT
*gGTQ1YSxY)}T}RJ*qTj $ >O<$̗sߡL<]#oA[?9};'M]]o[ؽW~{[i{3&'j+8V6y9t97A- ۷a5=X(rw-v%
߬0;t̃[Іeaև#z5Vc_T75u!/XFQ3Q=Ph_xFUE޽\Љu
A*7,>h?܏2|gV>%4[bV[;#{	:gf@6Y!S8'YUSWڿ%qIa0`(Y$Ć]ĺ!TLCTI.&cDk`xpuԸĘgA-3{< `pwuw)m-cD'F4b=oqy}QHڕV<1T֨&14/1+FVJL}lL/o*x uLCF
j,9Vc)gf2ĜB}>VvVo;{؆*<ۚN/8%ֿB{s9f%'!xRetF͌۳MϤ}NeӘy4o`ܾМ5T̜>%u6 %;\xkY!etCcS2\o߰YoX F.x2Wz[x7<,(V>J$#ursN8Y\IZ!%(5$3?OoլRnrO3YmMg&?y6=LXa
d'_d^prb;ʦHg =yCv4Ƃ*eaT>gKv +oZ?&u>LI<i%E

f/F3$g$楧*+($9yz;:8NOdI| uz$^:JM(~i>f3LodenhǢى]k,-Y,ޞ ,r	&*"le	r=ocs Mx;2E~-O(3:3O@o]Ll2Oo=v:,;	011n;#VYxGn-lmDDoLd_f؞6I(m|4O}?9OxGn-,OOX79t,ӻ0jOOXT,@
l-d, "WxGnw-Bl%>ʵ`b fb9 ZK|xG7-Bl%>ʵ`b fb9 c-xG}ݿ&l߿,TaQXvcdqMe2Je9dJg	Gc.~ח	Ym]_v _:^2xMnݿ&l߿,gO{,;Z1p&ԲNkUS2If}`g1131n?m 4HGx[V'qoeUfX3ߧM`>͝ӈK'?RnnxY7a:  Z $xmJA1]L&. ؄Ιٙe.TQw|+!/dpB+v8s껫9/9sh!Ơr +pЁKQ5R朡jf
Ir`¡}faIr(sfi>UTGp|AFgh-9h[<EG>n$'«̑V bBȩf	jvD\95C],7ZiozZ'IM;=֝5Vפw-Fs/qzLRL1޷$tn:~scx_-Mع`:)6	#]gBIFBYbNiBfcwgk|o\tL7g~B]k{9{ #~x_LCcSsK6Ct؄wm߭n/  Kx_f-,qӹ♅ga@1V Hx_fG-'O?nn ix_-&'Og7 -,xQ N7-7RiKC1#y8	Yz)::@B'xA-~SOc֝0yS;,@̺|" x, Yėmma;xrFf-,7XpM7
`YaJ`Inb09m2O*Yt
_
d
W5{˅"X!LBYطwDpO=}vOK"1nN,[Qsabr\v A4	Zx ej5y'5,zzztK@6$v!j	43-Y0N44jP&3C7HxrFfa|||@@Ĭ@̶Bxdj  x tgx5y'5,zzztK@6$v!j	43-Y0N44j<U(43RxxX!-+NWdf9y;tPfvc@Ĭ-UF txxX^-+NWdf9y;tPfvc@Ĭ-a.{M~z#F^xxXfR	[eNwzcV3Men1^,YxpN1]!s1fko/˜<Ix=f!v.Кpֿ$3?/1G,14UG8X<#$#H8(?''3/]!91O).V J($$Un_x|ZcSo`؞sAtz.OXu'll Qb=xxXj	[e*	(MP=]:SdA*\۱O?ѮPLm5f9:uF9gX"E7bme'/cȾ}6@ J},3/x;WmF٭RSUnW*N?ѮPLo3t~SZ,NȱKxk 1'lnV QH'9txk[-s|	V]##FV	V	V	,bOL)VHIQOI-V(K(/-Ω.|RJYX]E`d+$U*%OdF2TbzCXĩo4ctFVH?xG[Cc3IM/c4C,맂m3RlKRrmsRJ0-lQL𽻍%xELXıQHrӋo*tnH(H*̧`QiĬmoyZ  PCxk[-LF͌0j׭fb& fb fݮ[9  yxk[-oLF͌0j׭fb7'n|9y3LebR )w5=5]}I%y9
e9:
ũ%
%E
E99y
ɉy
@NqPB!)4/%rzrƴS;^Ihz!fv@Ĭۥ u*Ej*]xekAI'Ji	#1F<xShhуlvg-=D;JxЃ7E*xkoN66Fxyxk:U_H2쑓Qů]bt^=%Ivbt9Ql,U\P)Z@3\io0ť jDH_}Gћ$ٜ$]<0pCzJ:-dy*0I¿M&.^oBխ|
t}:sJ&*]qU{ isq
6(R(Kԡa.kχ]li<4>{Ncm."6<m2Ŗd
3P҄!7)LB7|K0Hs;ҵ\~&[Y^pOn1xp9f$#eGaD/J̫Dq}"qLX%t"y8t~Rl
xIf'-~SOc֝0yS;,@̺|E 6x"_mTo 		,x fɓDssRJr+JK23R7`cWNIMK^pQY]y+˾/ӟgG2J!DK,J/F~'nMc*^&vM@ 7x;QFن-FA;Yͧd~&U}n+mĮ (YxI~'-{&7`>Un}&dXہ\ f> dxVdņ-}01311v5W xVLņ%L?l?j?5*kZsdR
111oO( Dx}x6YabC517I213 1+1&I x;5Gi-.L_}[0Il;|6&gWg$_Ʉ>Gh@Ĭ@ۿr&  X+ax;5Gi-9~ϩsn_± M=xmM(DQ;wι  Da1Q&!$
٠	e3"N|)_Rl$%% 6+?YX&&cY.a~? O%Pĩl4ࢗ|۶/Ʌ
1bo.*Ю*+^Nk =|^>Y@+Ȏ
W\a0VDnRFnSnf:){)B>BMXO[ޥJ0v\7Kep`Q105 GcO<'y5T<yLFeVM}lZsB]0UjM)	H%x;d<.khcFx7AikRC&;.1
mexlz;ZV-W*/Mdb fb6 f߾4R B$cx2If-
gohg",PPZQW2]1tvtԼ̴̼tj̼lǢPԢǜ\Z.RH+͝ä03	,"N>~'z3ejFfc0נOgGxGOw?[d2131nW8zK6钏K2KS=SH (1W&t31ۻs)L?xTv6j姤z$:UBuj Y\PWbl_0ąMx'lOq#-?%7aiQԴҜĜTb]as!ȅ0M&ϥt.Nv/ qx2I,-|]_M|Ư]YXꙢǥD
E
0aTgcw^cS~?lfOIHKIuH+.Q(+16/A&<}68̖ؑMͱ(;Sw=lr"!-XSPSYk8<"l.乴~ qkTx2I/-wmt̼%0O?7R741jN1-(`۞ג.1?,`bݮ;Ydbf fپ'k(clRO,d'2]n1v6 80x uҺ d.OWߥǗPW")dPW"ppjp^/NDB@9>gu$$|@[v+8Jx+zLF73r*d&'($d()d*V($LWd:5ݧEX]
\G 593-35e	dTG\
 W;=1Ia1f0נOgGxGOw?_Wx'`WO?[Xje%e

1ɴ+eb
gO_Ǩ>Yn1gYDʱHMkkϱHMϑg13fϳMSs32J;Ǉ9\a``l`8}btLY0ORcmwPeblDx+t뻶Ovvf`~)J5Θ0mkbX8`z7}NF?YɺTh/[O 1x+iLF73r*d&'($d()d*V($LWd:5ݧEX]
\G 593-35e	dTG\
 W;=1Ia1f0נOgGxGOw?_Wx'`WO?[Xje%e

1ɴ+eb& fb fݮp 8hWx+s]a]2131n W9x+tƖ3N<?= KOgVĨ9}wIn{_Kg^±]Kv2@̲}O֥Bx٢ .zx Һ d.OWߥǗPW")dPW"ppjDB@9>gu$$|@#UFG3Yx;uL-lB<fs E	 x;uL1-,LO_Y0]{  W65x;uLZ-L>ӅY1M^Po"3o7X8HmO0fU7uo> Ix;uLy-	הqO &_ZPYZ<,7edn`<93ϸcT|Il};	O> 1}F.CEsL]0S!&OOteԞ\83'wa`"	R3yC"}\lMO4`V~.=WYu{"݃ +Zvx[U;-Kbbm_,@̺ۚf X{3x[U?-GHW%g+d&*'dOb:3}>HD$# IKN䍟&HpU4=p>ml~>.

&F`d6}[F3Nbz|LR`O/fNf8]NIfzCLapv 4r`=jwL@,@̺|;6 +t^`
x[UzO-GHW%g+d&*'dOb:3}>HD$# IKN䍟&HpU4=p>ml~>.

&F0131n_	 A
x[UW-;wNW)c<4}iF=·;͘7Y@gX&W2o>50m*
;OgQ~&]kzCf-XTe<{FRt/fe~ΐsA/V90}Q6El>S gAp@xNS-2~0@:t~1 f v ˑ^IxO/-GLm#L_@@ĬbKc c<mx.&ºm)F. 	xkY!}itCcSlgYe 8`x2W-,AvۛXڵ/ynĬ-٪ax2W"-!r3J2Rsr;>a<<@+Dhu/S*r7	MޠE{RSOq	F9Қ^EfzA/37cD'VS@ĬCN%  ^D3x2WzL-,\ӗ`Qngbl Ibx2WzGx1~~ Qxr(l=1.QyY,ہ
<k80%98)$d*M,P`d:=!%iLӓz(5Q~>\>OW8,2!mMK^(ogi xz;Y$XDkIl?%}zaFo,36w p}x>A-,v3Lbek7cbvln] *lCxY $v#Mk }N~L~L Z1>_,,˗1Ff#+x>Ax1vRxhF{>NadMP^0%98)$d*M,P`d:_~I&ILu6]~>\>& f~ENv_6Yܧfdk]k' Wtdx>AzjtC
<k8|Yu{j k4x+}Ky73{c Zx^x1-qL+I-RH,T04~YX'9#1/=U$_A&1;3)4$/>?%>9u]L3ЙUxOw31,⢌I/abK"F/xVnEVEJ,m&HHV18<<2!X`UWx
WW5{fj?`ǂj1ͣ{7gϝ=ًg/5ߜf/׽č89JOLV\.dDUWa%rC\"'8:Mlř9.D(Mͭ#+0[RuK.j]
8͘7ƫɱ3X\'_kO<wBSulN-*BXX'9eG]aI~K'*ٶD]@KKN.x*) a/u)Xh#N*/b<˹Q7 xDǜ|H x!CmQ"뒻pвut+wN[7XkVcD,}KL3;[[wB80428El	(KȌ ʳB8+Ҫ@sbM14hpDCaEJX\([m22~¤/x_)n8;vs!"
4 ĺ$NQM	Nh&E#JTFEgz0@!')vڂ0OU&`CB2@
q|<M{ 򄫔VO ܔ K[Իm]B284&̗N`!M'UDСh5/v>Qs3Jf<zz/[@n%m\tu%EZE-9m+n&^[Vm~Y3Gxd}=wp?qfvByMm=6_;b7._`ϘJNqhCEʗ!H+g|M 27=Ѱy+Tĵe㦰:e;at8;J6%o {Op)\0t~&WkaގЄA_lh^5;;Q<6/bi#{fW{ ~m6&H<{ǌd7R^c-
rAx #uڈi?k-Hj~eo;c>VOOR&*xbGJ3m`D)fѦ<Ȯ6>̮4ś/mF;6ft)l>{}?'%Ex{B+-S3ONu*#31ש,-Rl:E	o,d-הW }--.RXVWPRY7=QnΓnA~!


66
:\ش&fd楠wrsi6᪝>QMjzX~Oy	 JButx{Bjs-Le]Lg2}f;e{Yul d4x{BxarMJMIIMq-K+ћ[(7&Ko_H9s@MnQY<1D85E$_$DfcRfNfIוǋ0ON>3=XS~+t3K2
sSKRJ*RF9%Ƈ'NNVa+)()IvzN)8B?fVG~ߟEfz#e~kQQ~Bb^B~^HjQnf^b	Cɉ99I
i@iL1=_PQOߊC=1՛хIA,᪝.&Y.d 
x{B-S3ONu*#313 1שl~ ?x{Bj5-9w2k(cb& fb fQ o|x\jk%LtYOra~`-3TbiIBZfNBb^fnbIf~B~B^~옸-Em>2NZjZPP
ŰْY7}RFGe\|\<}|<}C<lͦdTmdbf fb<l iO2x{B-,Mg.E`y,L`~;ĬE nx{B-9w2k(cQ}o1fuCY=3OX"<	&0;nN7&v,^ # Qx{B-;NExEf_eů Ax{Bj5-9w2k(cb& fb fQ o6x{Bjs-̓CcV^ޞʼ=?%s:8t,۟c`ہ| f.-Z rRx{BTCcS,b,/J,POIUH/R(HUIs/L$i%XKcd@(OP+
&J'N̔L-xH0pM0E948><1`z"3t&,@̺=s ^Qvx{Bj5-9w2k(cb& fb fQ o'x{Bj,7_e~(}:8!s]d<QƸb뜙C燲l~fnbEfniBAiNnJ~yBJfqIb^rBZ~BQjZQjqFf^-K2K3J2R<*
K3RS&'v+6MG!3O`G[Ƹܘy%qpI|zN)tdY_ǈPxpxG?gW[Ci۝X`]Lw1	o{bɂ',ӟ\  ftx{tE-,NgangƲk ~3x{tEj,7_e~(}fByb:k}#31vi`U۝.aChhjw #x{tE-,;0ZN	&(]|:n- <Hx{tE-9/(0O;=YXs	|HtBC;P[, Jdx[{E,X*g%甦*$dqV)(9+)Ts)r!TAe5`i?L@ >,lK<$#Bx' 7TVxx[{Ej-,.1OxE]2vˬ1#'xUOHq=gDm܌IY!czUu	a"%M^jz."ס
g 1.Ȥ||<<3]
.e/ReR.x@(erz6^eSecT,J<_Q!</VSzgRdL@h%TI4[p@,aFmV^JlUx6	5NX'?-Vgt#ca]ۢ~L_9m/FnmĂlYhΥP\xk;my(=9UJbn'z_`@O(шM/aM37peǆ1D$qb5Wo
s1p ?b@#74T:W0S^E0Y8I%l{O>RG<2hu٧3)qp2uy |xUO(a{F̰imRI\&Rid"$堅O)2Jb)4'/Mv>DHܺ{m`L̀11UvYrqM0sm
sreuBP7ƪb&;W'!^] N,$*H!I,ImW|	杺2]4tIn!^9WC_,Ongvڤ<.5ڒT4rER̊^/_Kٻr79<q^'9;g\A[<wj6iL"P38+;$ 5֢󲰴.D!6.B)kB[4ԧs:#:W/RgPQ >t	nxxA-lOʦ8rI bMxmlUs9O7neo֒Aj
Qt`R1f:.:Ȅ NI&.<̣1@uu.ɜ.B"4(L>}O~ss=\Lf~٣=l+!`~U͓l(Gi̻Ձ	v@HO
5[d
wљܧ|(<eI:yj[,̅ῲ)4w)hj!G^sD/ܭ:F0[d:$\@BfuaR&ͅkpNnp(vw솧KQO[v2lѨ'@W_v7CY7)MxIOwR;c-+܇j,\+kY2
8^=e:AƋ'~.z;h:}NW-VJki.fkq{j )1( ̠/FoOa3 54}}G"\F} Xn>3ReA-C7IGXG.uPcUjN{wrUXn!6ⴵ
T_~ꘇrlx5^uWnŭ^kIC*Cr	M]7(aD|?d2#VW:V>U*mKm/*MraIKIWD2<K7S|XNt&mĞD3-N)OV[
\ze؊|DQt_
'|g
uKҙΤ$'|[Ѧ#Z}]nYiaqܿppia֍U YxxA-lSN&}R6a&Sql r\@FxmlUs=k-nmEVcRFԭlN:;1cT3B9)Cf|L01ăo`dR2	F~=rssoKTб){xM|Ս3YqwG<ézC'FPIK7v!rkglOKW4!N8yvDӲqY#Gp`AS0EUB~LLɏɢџ1wP.I+_,hD(ലc"p3|%/@:<bDvqAI8Rp*%S\6sZu}Oݧ,'҃HF_FWM(ۨjnEQا.gW4q
[ʋ OMS㧕F~f)D>E$TQ	;M&rj/H=C]H̫wKNv&2][P/z\ovVgP:׊*Ԅ-$6]c6Rj,ȸqs7\_T2n{YQɟZNuvN=Cںr:2nق5(upVZz	X:vwWD	QϿ+i&4O^QY+)[QUqCFY9b9L^1g'^v8vr_j˲)̙cM/[UGu*tIƴSk/_[#^D!]zcM<:wI@UdwNo׻7[{n65?J&ڎ	j&xxAj-̹KGMgs̾sJSb25 pz$m̬@Ԓ"'YMtKR2r+SSty)i9%
`7N`~Fk N'EZH; 1|6ئ74M1rv b4_xxA-I1O~PҮLՒ>Vf63o`Dn
O>k	f
*lppOWx:st'Y6/efپkf>96 A1m?8?Ć	Oyo\\cfٚ	gcAZ5|!mWvQ_!SYOe7M|lǘ  d!>nxolUs=_?ֆXdl5&eD*`ЉƌQI̲"΅2de>Ŏd&@!q&1` :	FE?r{sS}[)t^?C	=q^Ux*yUS#'uHypzNvyie	ܻGhHOK[4!ZxxvHғ)CuX;0m}I"ժ0"dH]y
b!ytkD|cL^p#0"ʅ1ts{2Xù˕0_a+648(]l!=VLVfѿDc|bU0N*r92	2A- EVUkfs gMU~j:47e%
Yr#|lZA>w3Y(!v3DFj(DV椓Zdl?9/u 3jg<݋\7j@G.|'՚BVlf9yekTQ<SN4ZFm8_^Cɟ
<RK  ۢ8 yQRqMt(u[D~<wMTO-|Tmg46S~/ݷ3A M^\!z)8Ѩ-Ph%-w=NZǃUxQgkpBuHdR;15:@_\Е|G?zW-^7ߠJMmFcfO3;{v.͛k
qߟc\ x[{Ej-{%L֮Y+e~ (YxxA)-̟^an{òk ~ xxA-I?d3O~PҮL@ >v$6o7 4xxAj9j\/pJNŸݝt	,>3MT$=ܞI"(ĺ(Gq9f2qlϚ4>+Y~VBR͓ü	39?^PȬhs1s	3߹YY17,v_.l	ӣ	J9:x*ded&dV%d)MhbSzl*yjf3NaS 4>/mzCuleeT*.$OӯL/a7<6Mgۄ	)3xSL#<nx]HSay?λۜ4MEE*J&uep:ZV")@I2e]Fn21w<?#c`V
kJ}L˴(la>o.Ծ҈X'xbxy^A"*mz)O`'NpvaTFXGZg'Aka5E͟b#XZg/TpE,R8{G#s;X[ 75-Jn8徹q,dXH Q;؊P2Ud(-_)Gxq@'1`x40K 8!ķf$4^$y1T D7r{e9DTK2`ˏ4=hRQ2hT44mPAo$SR
fS4$ȫ%j~<.|m,B\z*ZT3Z(;9Z0Mw
6)^Z*D%U0:WC
Ac1$g\t6:N:ݍbeVl3uk:0ؘaɅ3+']lEAs(XL敡
tp&_3#LMi`$+2Lrx[Nj9j\M=;zGVf_v_.\LMߟ6oFjĶ3A[EYŶ(Nf~!s{|0.vLNۅrW3ہ
&Bfu&yg93\Vy{E%p]^ J=!x[N-Lږ1OOxȽӒ+#?]}J&EL6\\3}aD1UnQɼsz%:f;WLN̢;օ)rR'4]a	3tCxY|0˒8Ym>9gxY`Q^'>ݎE|g^WYzA>gpOu`aJŏT_YYvO99r 33~g"1YXBf%@sR9*ޡr;l<),.p4obg$rUv63.-}SYD7d.U +ċx[Nj9-L*O`b~7ILb b@A fb f>m& t<Yx[Nj9-,L? ,.peYV[ G3xŒ_HQ9ۧ>'ͣQ4(J&LgЙ3	b.DC*K"AEeT9$B.s;]6w<|`u8hI]';rF%RuZoYyQiĝFvwOPIȃq;ES*63l4;_0C
F/D,:a݇d3fWs`smp(RW\Y3ع5&B1CFzOGNNvGC/2#nNXWYڊyv&*CxU^'c
gTl(jҁ72v  :cNFL60'65fz@(_][
wK(O[>S&H6H8uzM`hfUb	UbބI{AWo?k)Wu0tTjhJݮ6.@eG*+x}P;H[aj7)*EjP
j'D`[9;D}-J).B-RTjC+.ny|<$?f "Jzq)vTc'w.$/ԤDdcf՘-0R紳ҟ%27q,fY%qQEIWTڰ2|_;uR*˃0~\sQE6}@l^U`;H6ȍAeWNϩyi/U̻n:c+mزU%r/h:!bRջg2Qq%xkR`><sUw"j[hJAHS/'cBd9y+u7dw4.]kűrm,akUuvxW sB.Jjkm(xTMlG&dsGR41z16meb:PkmO)k*CDUESzl*U
7z	Cc4j]i37[>큋ʢH~ ڋ\ 4^q5B/$W{0>Dve[/0'Zğ]BKy`%f0SĂ 1<8r0{.l(,8Vk0.&cw±"wNG7`t,T,	kD/k$ Y#Wcz=qAwi9,oΙns+$+Qu/ʣx65O|IB-=gx6 3lQ8{I
}a9ᣤ%NUBw%?鉆LJye'ݏCaAwlvʾr"!:Vϼ{BۢZbq8c6bf$p
X-뜾
ѻ><ޣ=7ixY`^*yRkCk4ZO,mZ"{ҟ{eg4GȨR5JMbE]ml5Egk>z ~3O-jq0B9ڳ07<QY0iworf*d:V&}뙩Tڻk2cSE|c`D#&L1L<x(D}]\!iZ A-/8@tΔMn0tn~!k=aNV-#LFVrι`E}q gqr/$1+hZ5H&o
2B'Kjo+]G:ttnsHSxM2o$?<L[<?ʐ>ox[Nj9-,Lfn8˲],- M^xOj\X&|csVfovo.\LSf~!s{|p>vLNۅrW3ہ
&Bfu&$;<yUmoa	Ek/d^b* HLx[Lj2-L&f#N0od$h9P:=>u"/h{ہzy3/ZL_ww<$+]a.B٠,KYۧYM?*V_ zxJMixSMkQe)&B,^nJbAũѦ!/3o2g慙7Yōt[ُq!w]HvBqδ$
̹{ތ4jXĥXܗeedG!M
%BP >%`īQ0TX љ}!q
<ndE}6w:55{h3 8@PNL 	X"OZu*MJ=MVh-&s*z!ޠncB ]D0)"E&6&hJ.ڊkHڝ EB7OQb'4i htץċC; JI a.{с5k>D+2a<؋q)wb]0*yYJ>#*)RAV+7hʒV*\JmNo3NVWV:9:r϶Ջ@#4mf0 NU	zRNVreCf?IY(Gkg^m=-Yt"?VNaz}xK˅{zE[ҵJ_\;M"~Qh`9yn["׶TiG%ɶ:xubp @/%8]ugswo*'x[Lj2-lW[ײ)nblWha e]x[Lj2-VMbn?Y\Zwu-όfY[45[#TT .$3xUmLG,!((Tck"R6Ҡ6ݞP5m4k|CD6ь_Z*ImXk?lCOݻC<$6ڝg>yΙAga̽9sY]sb`q+`j8_`	|}on|
T=NOShϕAd<UP:}uCИ<۰Ϡ% g7\
!qFƿGsBëE(u\G5s&"&^ÉzCF$t8[`d''~c`waED%0`7D-@z4Ґ-E/Q6Y -琭8 ";O Y^oU$QP]a-[O]U&e=rĘI/TSqhDM
1k5IMP6%]F/MDܭja)P6"YpjU@N'ʍzpgexENTRBzk@\σ;(dY`y~RZL<Bp\czͷU뵆ʰjsuz<(-kʇaGO
cW|;c:ݘ,H*194#7:c	r@]L~qf4ZxBiL,v<w5E2L`I
Z0A,aÊb.n|?pGbl^xضLΖՀuMz<$MK$YԲi]c[޶mL~.V^)1Jf"6=ӔL7;섐m2|zǌML:[H͕.<U**+Q*RqGNj])IF2͈ZTOrN(~mSm?] Y]DW$&1?cr8Ge+QޣRm؇yT9.OdXZ٥R|>7uEҼPD>Zs5sW@q\kIوzcꗑ0OuY-%aKg͢_C^߬=ƶ+B=6vׅGߢxC-L'Lo8"<;g	L@,@̺Pn x[Lj2-l4l`aeE3ۿ尙 E/
=x[Lj2-VMbn?yU,A~3ynb e	yx[LjZԆ^,0-&,~r#31Xnm}cYXȳOH`~͋u;Fɍ*7[ٞ*9O3lۻ2Bl!6ت @~4,Mb3 =Px[Lj"-l&L^"<$6c +x[Hj|-,>Ĳ!efUod3O3lۻ2Bl!6ت @B w(x[Hj"-l}fUod3O3lۻ2Bl!6ت @B I-#:_x[Hj"-VM?E*F fbf f~rk3 icx1_j|-L)VL\3JOT$}H!T;PY_`{& -;j'xTAlE:!)M.*1n$u!CbxwucvvӋSP	YhBB %$.]kJڿ_YDaEq5,o	b2vm9D5氂I1)ZXE5b	CsLr,GMT`A|)E3à66l^ކ~, І&֫EG2691t!	XDSjaQw-uf~5u COZщpڙ+61(%8TPAUHc{)3p
~L A $5HռM!	:,fVu9)|h;kuvRx,bjh/TnQ6L\qoԱݹ$0Nը%24%)?Rls?hⅰUzLgNgTɩS|2LVm*߸%̤%*x5Է|bED`ΓF[UޏGiKL+ap|1rSuD/}Ӎv;-SHÓQ"U܂>yVt+^v>(<>9T>9J滤t_+(SA3*W~QrpU=*_K~#ɪm^tܡ?\j6?'Z5	|U.
+FwoHhLnN5P{:,]Sl~*Kg!'67˭X8soMRͳ;q9^)	Mi7O]-o-!=c(sUe\@gpxY#0*`'f0;coa@Glv˷_@hc+<k P=$	/?ü59bF/5m3hPڗ %F>x1_b-lEӧNc2OK+N-QOSHT(.HMLLVOIU(JI,,KU(W,)V(H,J+Qț>1M|6xeeh*"Wc~tAO6lӗm(Z_YX4Mr -g^ vEE
xx1_|-,ne*<eE
ey%z\
  C2R&*g Ue+($U*$*)e&Mg&Xobѝ{M(c⟾G/?5(H**M,> YU s;$x1_j|-l)lk`ccphb [x1_j|-ljU{[a4>сMlt+[0#ͦ
lg /x, HP7	HHFjx1_j\-,ǲ>] _Tx;Xb-lBMLaSn6 Vx0W,-,Nfcjgϲy?ky #x0Wt-,g`ٞ}U BwTx{;K,-L=fnn@Ĭۭ{،3kx[Hj|-""<`333o`Dm\.h:1'm#M'0M8̲QH"d8?Ĉy\o̺.5(Ƃ$1s'DCbϩpoeў!uu8Osx[Hj"-l'JMƶ=&#l+"P~aS E x$5dkjyXx]3Yuf[	 h&5x_uɆ-qRI9E
%%EI%
i
I)EնZ3+((85X$#U(1%YBP4/D!XbCF%OfbB5(Q!(R891jbAbQbnjIjByFfrBbZZj2ΔT23JR2ҧ3N6c䟾'QЗƧ$eCߐ1<&؈PP'P)x17M"t!V+Lcb+Ә{l̲fz/3TsKO?*ܮ]Ձ 0($xs]r}Ɇ-˒G1*O.(d/J-άJLXɤ6}r&N;=u%FEL2J{F9:Ƈ{xx:**LOlgԚɌbc60Y@@Ĭ'e p)59xs]5Ɇ-q2YS&V`&QH)-R(JL,-Q̛.(=}-;3txFiĜTԒ̼b (]QZ\6QU<vd]"Ģl$32KR/LdT*ؖ,48OvHd%~g	Y'& 82}`xyMɆ-k'2%$&*
I
%@TPP\XR
/R,VHLΞ0yC
L䙒2?F!B}ڦ+ef4lh09&#m.$9JfeQ'Gg 
PU0400202ĨγYa Ui*0xyMTɆ-qRI9E
%%EI%
i
I)EնZ3+((85X$#U(1%YBP4/D!XbCF%dbB5(Q!(R891jbAbQbnjIjByFfrBbZZj2ΔT23JR2ҧ3N6c䟾'QЗƧ$eCߐ1<&؈PP'P)x1ϷM"㴋Ŧyȱ})L̓7܈>}r'2	m_ReL2rN)̷y	NO8̱ՑʺIB;gd.Y{zlϙٶ~b_X;}qV퇊YO*9Ea;,ӓM/;8+	5,Odz:Y%٘|ʳq!tl67 ((]xyMrYɆ-qRI9E
%%EI%
i
I)EնZ3+((85X$#U(1%YBP4/D!XbCF%dbB5(Q!(R891jbAbQbnjIjByFfrBbZZj2ΔT23JR2ҧ3N6c䟾'QЗƧ$eCߐ1<&؈PP'P)x1&yD<g~Em	YYϹ9=y?Ҭ?rNP"=a
XLgcQ^*ɺU$ 1}"@xsGr+Ɇ-Mme).I,*KWH)k3RJ2R2y%y
`-œ'\`(5]C1:
y%V
e/eN`+f6vspuuQU040020nŨ*YvjqrQ~NNbR':}C8# H]r~^Ij^	XI\gˮcJ&֯Y|*>~!~pLYmukoPgJ/5=Z&V+0%+N 瓙XvJ˘_OZrO>]AEf3g( f;-Q iǒxJr+Ɇ%F1n,fnfbY P,Hxu0uZb@
N 4 @]q*ԑo3I,;rli_
g	x  $G7_}f999}"x\0?w5U{EI+H#dr"AʥBE	+
PJia|Kڞ
w࠮ '(1]WA``}t1Z@Z[\:!<=PeC$LhwJ!5ϣkUT~RLW,ӒB}x6\aE ]z)E7VeWA%W(a%*+yxk;]R.[;9J>ot,'Q4DQꦔvY #Qi11_ѝO£yLep/GOe*Vܸx*_9O5B/L;vg7ȚW32x;:UɆ-l3s  +	bFx;:Ur4-q?d䜞Ɍbc60Y'3M(ݠj-L61IM7fnt;>fj&/p0R%라Ag98;زpN`Ǣ>]n%3Sv,@,yEV10O,>]`3 Vod~w=ub朞pw{	,?$3Mpr7aato0KnomNu3Y4Wnby,<9&hn2b^ o_8xW	p+۲|ۊ-rƇ09Hr>c))!e#Ү]9G:aʄ)tq0QJҖS7))SZ`($m v!-e$jJ'LgJq?y{+v89l`PPD^E֍24;BT%ñfx\Lټ
*k%<qCl)\aJ;֮`(mA-*{.m{l8n'F>UU+HL@0'zh$p"p	En)< JDUl{$hH©Ͷr0%P88]->:qs@?dީRL^x93WںYaTxU[WCQS?fޞ 5sǳ*EYπᲗXү'u.3/٪G>ɼw-a0pMŖa~	J"캇
p{L#,'Wl3fA[5E˝e41$Yc]2d$zQ"LDUy57m$ey"adTTEv'D*j;oeڌ-s?W\a,?d6#}PWkkjd2Q\9_Ӌ"|i?1/oK~MHG~ p8X)tbt1a"&

/Epy2D~e?ܺѻ'-œٰY4׼tA|FJC8qXvv]xEcϼYfkeCd4<Vh4JJm\li%mS&QbXjTtKOUq8kl+])O45{]Mm-/D|\д뼠b(B_ްFɨCIh4
)`?	;xUQJǯ^E	rдR//ODlRA%:c-0m׎P_:=O4D8Hnzf9W65n,^q;))USFۿȂ,/TDG(&,1I6g๯2ys^]o?*IXQeNK%
QO<P$YT!:	Majη5)HNе=]i#xx=f10*4]D`ml߂5&lbɝ$4:<#kC7O!Mm/+HZa k0wvFXN~zX&bq*9i:Ņ0bKb82Ee7?mkjfLm.q@(Ï gH~Τce3MVjct-4w[qR%m9pV u{CNow_ۙb8&0LdƌuPҤtj|\$E@'ɚ,Q5QO:kIc	55OfVр:_EA>pNrV2KiijMF#oy3;?is+ƩB6g vw}< y'grMt%&%Թ'pjl"ֱe
ƘRPFB;IqfnBjp©\Y(fVh/A3$sa~;y\zS0uJX/|˴AdQnfZ'Epuĝ?mv}=K=kj,˷ -=;xq%5'"WMs%1/8â4	'jQS=UXMw+OD.
I۲G~"9l 53ZnoPocȷ,6C!1pU4+EM8g\@1WȖSBI1-$0vҝ7s9|,	$uD4Ir8ܽ%[*&<Ze23kz̞ŋ	q^.'3eдU!;ʺǳ`0yf*r~/ ƠMD&W1m~<]pa5[çvhcr21ƕQEӪ7>r8w=MHCaHV2c(-L텗Y zUNn'y5QPD#Wm)4q}^'3˫NK+4 gdZ
X{J]-.gّZ	o[_Gf0ֶV'nk3D8,j<ޞ~ݾ`WOoz|x\Z׷c}zj55`,~"xmPN,uXm	u{{>5:v^uI棆1,{5N,_/XQ=,ӳn68-)a3oq<Cr>!yٞuQvls	9 fӈIV'>ug,'TyBVP8cwU}~:x[sEnc$ZM4E*C>2u*]r'zv=(}v$*RƜ-TWt8&0έ$Wʈ*lblWK4)2pNc3%fӥֶAXw/Z`⩔(S5KGrXK2\"t/G#x/AA/9^xxV5Ɇ-,+)	d'&夦($*%Oeg~F@BqIQf^B~XXO!$#U!(XTMF@&<H !ϥ Z
zzz:	y%jAq@>LՋɃZ[j`hihk`D:`LN_',̺s3Hx;:Ļ89**MOά5Y[!7(X$?%q`M_3E"FRwB?`fez;;3JA!.Pkuj'chOgٞj h;0xxVr9Ɇ-mBӫ8uf㚾Gk!V{"錻YĦga͛$t_,ְHs)_bnBHFBUP&MJ-i	.I,)-qsr*$!Ѓ)3RM3ǭJ/q0ˊna+	 UVuxxV~Ɇ-LN(?}A3w%L@,w-a~ )x_HSqŹ^ջiwVPT(#r22,Fխ=H@2+D"
pset[4.$9YL[13Lt@)\V87e׳L("B7ۉ"naQէD W3F:
M/h}xӤȆopekD{B㳒RX&(Ib\+8~:3]Qrmҹ<eWߧ)@[T^c%*V(tӓ&qU-Y.'DhyKk|.()P{F4<H^ 4YK6yp|T=FQ)c#o|7~n'#gUZH%{2jRkBCvx;_FɆ-lQ>۵  	(xQɆ-LM7܈e?&j5+YkV^ A-dxQ~Ɇ-LN~R]\_XP\Z\XT9}L&N2=(LYQjPkYBIBs~nA~^j^T̊Ԝ'OWpdbuHU(K-*LNZVZ(La"?X3rX+L)@7l&NiHLp œm'wM.;pSɛθIyLe`rulCqv&&3;z*$%TV) <M~dtL2`~N>~>Q*Cuqfi󙔦[̴czj|mYg 8xG ̰4@/16'<@Zit×p:ԮUZlmWqx;ArɆ-X8'[11nlŶS I!x;Ar*Ɇ-X8ObnҷIQanY?xŚ &axU ̰4@/16'<@Zit!DХúú.UZ!Nr;uXF"41*xHzɆ-le.Fe
%
y)
y)9@~BIbQzjBAbQj^	D2X!9#3gF56Ѩ4-iSsq)h)8 MH̅5f}_gj֗gd&g ,4[ObWYbN)X&Q!/1=$蓼ܤ"y@RCP `RR`(t-6,82e~Wcic6E6PO_Uii)((HVhZsqki&(35M!hbݜļt`dq"Ц뱉M?Ħ(	Ua5b !?Xi-/+N"
t3jlyZ@Mg0'p2hXO*Ʌm &7xHɆ-qY&L88~3DRbr6HD!)H(1%XG!3o`"t?Lӝҋ+sR!
SKJ2ҋJ2KJstQfzFI^jqB~HdxF]VC#Ɏ*"v:3hSS(,I0Qj`[4@|"<!Ŗ	xHJaThOLbܞd4RۘYbKln 
#xJre-q?d䜞Ɍbc60Y'3uLu]LO&oj1UL$Df]XD{g^ g5̬600O*ma~Ƚst(Fb,۟3.v3RB B/x[xY-Lgߞkdo3!Ql|&E?3b`_X,&/TRm	eͬfFl{κrz& -&YxtE,97lu,`:d3&\<a~=ZLf`ER$yJR2ͦOf6HHKOU(WPIsw
	squruqsqO.9ytVLtH1lďLre28?a IpbBO2Lk{Wl<1][{TI&Ӄg1Jl2Mw.,XXpz,VBvG^c* v	@x[LFԆ^,0z&NQp:jC6@m2XRC>b>MYxzof~^&7llvSg{z.?lqlnc`Buf{ظb,O5 :MTxSMkQe)&B,^nJbAũѦ!/3o2g慙7Yōt[ُq!w]HvBqδ$
̹{ތ4jXĥXܗeedG!M
%BP >%`īQ0TX љ}!q
<ndE}6w:55{h3 8@PNL 	X"OZu*MJ=MVh-&s*z!ޠncB ]D0)"E&6&hJ.ڊkHڝ EB7OQb'4i htץċC; JI a.{с5k>D+2a<؋q)wb]0*yYJ>#*)RAV+7hʒV*\JmNo3NVWV:9:r϶Ջ@#4mf0 NU	zRNVreCf?IY(Gkg^m=-Yt"?VNaz}xK˅{zE[ҵJ_\;M"~Qh`9yn["׶TiG%ɶ:xubp @/%8]ugswo*x; 5lfOOKNJNJF3p	\x[Lw,X/`a;tՌm2	dn}cYXȳOH`~͋u;Fɍ*7[ٞ*9O3lۻ2Bl!6ت @~4,Mb3 >wxMOHay<9_]R:xYt .AZdh")*o$qO.bh0(E;!QW({|޾hRrRs_66؉DFal^>BzA4!i+Xq͛qa(AtLd(J/IM%SgSօ1*Mml'r_ ]R|:gR8Aڤyyfrx1$_8K^?<5˕"7ɺ,!AP[p,Bg"T&c+?-dq]@DYDU![3*ÖunUnxFu1tO1qqvN|>}$^Igu?dڙ
0x]rɆ-,e;+hN_YJ(H!7,X!<R!(?wz/VNohfa)M+I-*V IM)/HUH-J+$dgL~}|&iY8]\Bltc^abVXElXٰ @fxm1K@ǉi[EA9JR[+vQvirM^B:
-~M!5q{Ƚ|.Fhl%UE'IRLߥC]0HAC9x+9W3eIU`vK-2a#Zuѐ@ӌԆy[7zF٣
IO$!Igvb"mt7qx!:$s]=6m2)^'W^"SQ@*g$&3t?d
yZ*t\iLzR+/kPAm@A6u]+T.࢝PFf[;vljԠ\*m,wzd7IJnN͟P
Kx[yZ9-,ubQ<o~Bn~YjBbybtXA|y%E
@59 E%
y@)bҼ̼t bzc>tpl5,2OgswsQU0эQ]e@ 8Z+sx[yZ-qRI9E
%%EI%
i
I)EնZ3+((85X$#U(1%YBP4/D!XbCF	VG4>fKI36B5,Q!(R891jjAbQbnjIjByFfrBbZZj2ޔT23JR2ҁ+$M$7ی
d]T3%(b#P00lL͌0\"K@.ˤ,``iå 5^xE#313lz H	j$x[yZDCcS?N+)	d'&夦($*%O7$9@BqIQf^B~XXO!$#U!(XTMF@&<H !ϥ Z
zzz:	y%jAq@>LՋɃZ[j`hihk`D:`LNW4atA]&r.N>..!A~

f}U73qN,ģX]PX9ybMc✼etFf>%-1qM?{)trR4ռȪ$	vWt~VvQgάS !:{x[yZbY-̓O[,J!1/37$3?O!7?%UGdFê"G/PVO!&oD/6lA~~!~z
!
E%E
@NYbNfB~^NBZ~BIFBriQQj^BrbNL.Кu{[gbo D6x[yZb-lxSK2J2R3RJ323by)
I9y7r$%BC4z
ũ
9y
E١%E@5.%E +RsRZrSs*-/f(	43$31'*$3?O!(hz+tVVM?xx_GO WZc3tBn~i^Ij>E6,8~p(~ EkkFx[yZbF-L/;D1313lo)f7g{c]ӓU 2xo	I
I
O;et through this interface does not support adaptive adjustmQSrf-.fǗUxw@p/c:k"@ZsPaN}<T}7#9$<HOBP@LMЦE[XZ Lhy
l VmEЄY`	0{
<10`~hs)@bT0D^7c%FLx	I
I
O;et through this interface does not support adaptive adjustmQSrf-.fǗUxwqΗ@Zs7#5OBP@LMЦE[XЄY`	0{
cŷ~hs)@bT0D^F:'Ff<Sx[QbZ-̮7Lb~{z:f_72wNo,޲YlfUN `x[Qb-L/_`W7YX-d	8'/:ݡ'91'UG!3O!@oF~b8uYԧgbwvvYu,iy%Ьz'1_##>p([t:Ҽ󙀘Yg] ]X`dFxՓk`\tա?@S_!Yaf#iv޼B7M!2гLDރ 8x]'vҳ_]g	<|ϓPcq1Yxwľ\KFO`}Gro_$f!)=+O,tsYUKemEմJe۴E5EB|c&ov لpvxwƂ\eC~U+Lѝ15Ӆ_Lǘ'%yUA!;Zx_<6j_Ce6IdzI).VZ >ីbr8.!@ģuCǱXQ~UuJN8~dbza[*RSʃf?3-jL56cX":W!o8!u ]'xC(IRT0ݛCրt`F
zIE>]_:#^l3ŶJ]\x$Ȯ'bP7FNd;,Jww-z)`V\<$9xA :d 7OuxxVFX	xV-LVa/tfvcL@,y  CxV\-LoNIj3vcLͧ_bm,@̺}?#] P#xVL-LVa/tfǘ>O۾Yu~F" 
4xOHaowT?AvxՋ'4Wt6;|~2exE
A:At::浓AH$$f\ۍ{f^o{ڰtuU\69p`\Wd۞Hs 0Ls~C]?uN|Eh7æ5Z"*z\}$pIee(2Q{W-oI=n~"oq窫?x]ŅUrkiOj3nĝeO5_#9Ny۷`wc72ѳ2Yy@66&:Gu\#3tA]guC`R9j\ttEִd4HR&KIU`ũA-,dzx&ź2)'G-''±`||*q!4]EbשwֳJ{]Yܹ8-F!9L{'Fs)g veĿ#ۆ6ˀM_x}p"	hbt"[04pt~iWjr.+iF{A͇VUd'w@\
'|NRQ6*
}x R	I
I
O;et through this interface does not support adaptive adjustmQSrf-.fǗNxw)4z Z	1|]N]N8  
MM1j]@9x=Ib,-LO2I$D$37U!?mz.5W3I$)Xb`a!a$;邺Lg	q
QU041008I3r[Z\0/L\uLܮ~.Pcͦ_Ũt?31Y<F3`xDu-LB7$L5dΧc= IwMt۵+';Le>1Mv?=)tL>fڞ<k\gNd2	++md`13{@̲aߺX$SKJ2RSR2RrR*2S;`LQ4Ģt$z\
Z
EaI MͺhzSVSg xO?ϐxנ ZL- q̼Ԣ"řyɩ
f?gUu,)ILHM6ש3E#9?D!9#HjǢPx"-K @Ǒ^xz]u-G^n	 -585x}kHQ9s9gKMkdֲSZL. > *Q(
o%af7ViEF$!ٍn?c}C{9o1͍2.yQO6ft1.<fYf.iv6w16uco,O!x%;B?V./<]a>*E\5L7qu@ȼxZt3K֓,NLam7Io{y떈,j-nݸ s`Oh)j4aƗEaVՊ_eD:ɿZ$S]hSiݢ# ?xtMdcHD@̆/H OCUOǇCp[<V;!N	Yp/Ě~fF߀i;,Ea;E7\28AKꅘ3JI<QYJ ҡX|u\pY11oR	%T}IҟAěJa	B^φ[Mx1JA߱U3ר'>`{&|2Ь|b(>@VxnfO^CU`{g!#~xǥtX,\k/RpEp 68@׷#O&a
)'X4juS[<b4'[Ef<Ě2>oԳWVO&uMnIe^OUdNp@eI7gZoC
{x[D|-SKJ2K3tfBf^IjQZbrBJ~jB^~BqiAA~QBbJbAIfY*UZ\;5Exrâ|Lߠ$1YBZhBFE+3XM~Pλ=?cd ̼ӫ2YLdyO\@<19=fbf f1 Fa8x ;Ҟf]#ݓJ>c- 6wg@<a^U]u5̓ZBSwEBxoh/MӽVo$c
_{pbq`D	and Image69FNFSxT9?qd&~&9OHdlfbf fޟ͚ Ax{@B9"sRJJ*RB\#BB\@@KA83/9U,2y"tr&.xvvNF fbf fz ̲ %x{@|\-,ӋU%mYKڲO 
tXx[D-L,{-c#~B~AIf~BfBrbqrbJjByfIBIFBIfnBfnF~iBn~t<d~i
ff\RS}fb6Fvx]|\]\lM'2Lۮ	eV3 e>6x[DOb'N~l
҂ɫ9'ewPU02l~qNZT4Td?Lw1YF(?]9r)LcdOhddsޘϤFӦSa!gg;&I3xn͝xfi"30lnp00qt,0O ,"bBfBqjNjr􉏘Ux0PS1;Sʹg9]7E a?`WWx2KO`7}C1xfv^'L?{ˌ|<(ٹ@@kt&_R~~3#'gL7LdԚ.g>}^=۷3]d6I/+Xtf?Lef~IOLma
}@3FDrAuɬ:ݴɺLǧǅ3rMiczfrL~,YVM_˨>]3Xt@F?:,ca4Eì,2jN0Er|dj9= C +ILxrC}-LB^Na5Q3t~2Ħ˸g̜i1	y8:x+*OEm.Sq̎E?N`iLhFZN_hʬޗ@̲/ aA9dxrC|-̓'s/LBp21rWֹ |<xpE|-WwOEx^feݬz n#^xJŞ	I
EOnO.pPpPN}""o/ 6sI#kz3ZS	z4z Z	C#nZ[8R1Z z]8P7=
0~jbė VNd%y/	lOPnV}_7F\:4Cr- \>٢{,^Ӯ<X޾46&ķo1B*/
{>x ;Ù	I
I
ŋo/d:kPapPz%y4z Z	C#V]NXZZ^ Vx`?xLh0V3>	and Image}FN(x{tY-s^NwgnpC0/?%U!#1/%'U!R!3e:VېT W!?M*I,JO-Q@RǥPXi҄aˬo̪T	$YZT_4}eVUPxg׈0GOLԊbĜ3Sͦ\gU))ILHM:J"-Ouv!i]?}KV/ br	2x{tYe-CR32SS*J22<T^~BbZZjr	D.1R!9#1/=X!34U$5W!-?D<53=D8$3/}ìLӥ0>/cC23uZL<	e;Bk F6Ix{tY|m-LBn1M˨WP:]`3sôӹ2M?7qtdf봘=}}\]<lMOdV.˔ldcQjt8~<#+TҙY4 /:
'xqJL97lu,`:tf3&\<a~=ZLf`ERx?a I}1k&DO`>]y=̒ow2O91be&Ӄg1Jl7f;ejFiwˇLYyj  H=x;3SLbN~֞1nogb& fb}v  R^x;6EjG,X/`aˢ (OZx}O#31=i,Nod囮*ۙuog{v* XxQrGɆ-I'1131nObk Z
xQr+Ɇ-Mckd.`j ix{{L1-mO9zS Q:x{{L|i-L[]f!"#UW?W!$3?O!X!9891%5E<$C$37U!3OH7#H!7?e''XN/db~Izt4Ә%-f>akcU27$mebf f^. zC=Ox{{L1-<;`]m'3lW Mex]K1Ǳ(:9*. .wJr:bLNNt :8:C y_>K=zٞi.z/
#PfsDQPX16@bLqe0̩+dkؒ7i
sO 6.šUI9ʮ1!~MJ'|ٳ9*5LIuΔ3'lJnǡY	YF0yԸkq\bq.T00
搬V.2Q9MkJ
\>bhFtoQD~ey=T]J$ޑW(%Ů}4_X] xL9-,_,6|>3Or~NinByfJIw$a1Yu_\%9Ɇ**%%
99
 m9y
E
0Uz1y'}E׬JfybX4;Ye9yDLAO4B;Of%:6mȎd2PUřyɩ
fĦo!``hj``U;}4De~Y{.  xLi-MWPQPZPQ_32JRSRSjJ
JSJ2RX'7,JgT{$&KHI{8:ƻćz{(*OgaQ uXC33131Y9 G<[xL|q-LEL
$J*R2Kr2Re]$y=ӭ113l?W:  c3xL)-'&ON䜮,Γ\PZ< Q,⚒>}BfsHk|pcPBcwg<~BHFfBAbQbnjIjS\ZP_TPʥ Z

eEřy
fMYa-kf1;Lmu_FY%SSS323J2R _Q|EQ604'LOeVi?,O:N[ !o
.x{~N|e-LoNXP=yCY'f	N?,<Lu'˅N׽7?&7~tZ0˹9:{8x:ǻ89:{+*LvRi}	ekx=4x[{Ej-{%L֮Y+e~ (Nx{tE-9oM>y}\Fvv[ B(ux[ 		E0O[OOO?Xca	kkrCS??YE'&!jx2S|L-0ks f#x<S|t-o&>t(3tXFz1@̲]"  ~;x` 8V`+,fW88
NVB]'YGB]B]P%@[ؗs$8?Rތތ'")x8]|,-,9ӝghL"l_[WPYZ\
+2R@ri%E
鉙yyXdMT*HL.+V(, _Y\jhjteYSLYM?`wwwVU02^(lقo2 'KC0x{^l
sx6_๠P_YY:yc&\
 59$wsFړoKl6a@Ip,ڥ&7psrF?*%OgJ.$Y,T1xۓOna^,.=g8&f<J#1yb7^sқ~ c>iFǘglOacrRۧF02nf4nP(]vt#_p?&bf>i7yc>t%,3|{KtPXx籨0MpmXXܶ[,a,%"7<Ex	,튱,cYݕa嚜ǳ=5)?sNV>YU~}
	+YY/
 	\x{^-+|fk,wJLY8u9+X3`} 1pxۺBl-{B=cdmLo2߾UeVֆb gf(#xۺBl6sx@_KK$?W qrXYgab& fbxX'OOgMM,.-JM+QK/M,SOSHTH7>5Ǿ (1N3/%39$X$#U1%
I
I%y)~d`+J-.)#X!N1hgXeuC=*[8=UJ%E}b
	LnT =R:}c.$ySK]ր|%l+҂??t&V̼t1(;,6@BB{xK ԍ
tXqExxۺBqXF֩/`PJN+I-R(I(Q(K-*LNɩTS(HO/d@Hs&?0^Ϝ$Y]tIJ>n>.~

FMxlz4F鲖L@31i,O P:DN
xۺBlz9Lpsz|3tcܓ{'l7wɶ/1Lpcfͽg:/h0Շ&hrLO(cnW(1]k}AiYo21[Jz\8}figm'b.p?޾UeVֆb FePx2A$-{B&♾q-<[~RIbfdCw4$&'IN5A&Hg`kLS2dC߅2M1b& fbBY݌ +Mx2A-SCG1OO1`W(,.IUHO.-VHʯP(.I|(n4XC/cCIKQ(HUHMIO<lV@~qfIfYB^inRjQBQjAQjqj^	X]~iIjBqfJB^jz"yyPz
1y\
 ZT:d^Inpgd)ri\3_:MEl+ɍbgMg``i6Ypt6F'3.Ql͌@313lf |x:El49*!
%%EI%
%٩
ii%
y9
?zM.1pP *.N-Q(WIssuwrttwruwOR ƖWڇg)d@Q(H
Ҁ䤔|Kn:m:c)L/0rL70f✼DbzVFLx,,	e{j =SUx[M-ME	
P`Td_\XZZlXZZPZXPP WR__WSPR4'JXyo(bcہ3N(d]ޜ&vrO D7Tx[6Alz9[k$Qeܓ/<$g+SA"sA̋E6^aQf~uf10t[R3O-(m/h/`b& fb+?Fx[6Al,Yd3&HL_,='_xsI3[KeWgkogb& fb=$ V/Ik>xՔkAǉYQB"1CaDFOA0 mj{ݷɚLT)P/ZaYAfШE{>7_{{^?*MFi#m@b2tHP7LnuU$3q(e\ɇJ;dG
\0LV5y#tlWfARR߉#fE~|`#Fca=c?J3Z\/Umv}҅wyCZ VO#%vrAa\Xq_6EJoeu$8K#7qruf
cTya||,82<d[>MGYzA	^+Vk:O7G%533A\QehT^Og`lPHe3tephYh!++U[ C$3OeG@+2,_1M\LOrHP ~xXw0]%}:M%kmwB!M9*k$1W:斀7;ڈ[˞a$蔽ذ6~5F% H1w[`oMI}&Y2G(dN缏]ĒMOx1Al,ٙ%
E١131,1J  rxx1Al^OLz7
M>dfbo	ea 5wtx[6Al-̉&N?mN3+O^=]4乊B/2sOpYw3_a "mx1AXF>wէ{5u{9fOզ:3J/gbυLhGX~  [x!vhƪ!@̴}CF%<.RHUH/M,QOS(2
JKeR,VH,JOoc0L36*+J-IQH,*JSpML@-J- 2SJǲh1.NI~IbP[jĜTļTLg(5%g#Y4[ZTnf/^pg;5c#YSVL8x!Ca#d[{/;1FM.g/1}	zgF@@̲}= L#x!Wa#d[{/;1FM.g/1}	zgF@̴}=1*+d'&*$L,UZ\Vf<nhR -P_ZTR9n,tGEFZlxIFBf
i2@z
y
JJSu2Kgd&'MO,[1`Zf.b"$K˦?,d5Tfkb
ִ\)@T;(de+8ez:e&z}074Q̢73p{9:xM|$^5y{ yqx![eU)XDJ2RB=JR+J
3"|DAbzByFjQ*YXǥťPX*0, ) 668BfBnbBR*%'Z[PR9] U\jGb^JNGcQvg{j	TƩkz-tVW =FVY`xtPhƼL\%Eyř%yӻ32SJRSRRsRbTmA9tL^3a7KZZjt9Q7Lêbzff
xx)*Xp) 'D20131 ` ?~xtP&VMoefcճOSd1&W=cDX$59lf[33L/0fdg52!O+`^g9t0O9_2cd>5bӵ}'T3q@̴}M ŕ+afnۮ˼]!%ut֛E C	Zxk?&hCcSs֧NwS.4/3$1'G32sRSRҊs[) g,""%E%`%
IY%z\7jMgʺGK83/9UЈk:4cN3ԢԼ錌/<baȜUU @.3azxk?&hCcIaU(WH,NLIUH-K+>!YD$(1$3?O!4xĥ ZR!( rFa&5F鎊r%ZlxIFBf
i2@z
y
JJSu2Kgd&'MO,[1`jf.b"$K˦'3IpS㚾2tFj̼lǢPO]ǒ̤ҒTϒZW23Icz
58ᾛ\fvO?OgxO Gϰ#$+'1ow ']x[uRiц-yx23rRRK24KKs i
%
yy%@nQjqF~NBZ~Bf^Y~vf^:HhMw`f"ǱHO_l(fP`8ݐ1,:\gkcck|cW&7X01 ͑PRIU(JM,.I-8&X!^R$;?x6'M,`7]]e8 Nj7wxVMlEو:	I&)ƉRݸdXIqPVq&1Rȇ!ΨMS#RwHBp1?:1B"`_,}?/ˑ0F:
!VaA`!i'd<I|NvA8|SqLkB@{~C \u@HhEx0)LǡZ 	rP;a73jiK,&w'*"Ҧ5fX+1ovOh|Fe[03Ԋ C5(׳2 mPC-
%D77Uu,7 9|	y|+tf!WhXƂ,YqtDt9H{>OqWA))(*jVZSx:G:gd7x{]Ф1aAj	XJY0ҝдFߟaTћOPU_E*ueDS>xYLͥ)kd'̑vc:m76.,7x;J+~8h4־-]%xc+PIzپ!m\Xnw+&TU,JK=0LFfsd!L]Zj|;ǳ=az-Bbuv96}0DnfZJeD.qnd>糯DZG^`	)(RhCDHYfJun[O~;\3$`J*KQ1!T
p<W @ok46ǝSO|~l&7́I7SQd	J%ôP5zzY7P*R<`Hϊ.KWs

]FM]+>Z`T-1r\{"}ni仟iB则^:J͎=v'xLG⊠Bvw5kȅʹ	;1_>+|Gp!S[?N67IA,Ks%?RG@7eUԛl:I21j#3tpSFlvx{uZiц-|vmc5u39v'`rR%3131j hNx{qZi^O?h(:,'OPbF!j$?0wv@޲ܨ  Sx&x{IFц-,UcRLS/Q(J-)-+V0E%
 Qbx{I&ц-׍&WxN72f~Δ}fƴƌL2NrFȳMzO%-nfL@̼̌t,B
i
y%:
E%Ey
]D '
\x{I&Vq8L>Fr!&7^͈|`x
Fƌ^ϙ2O`1iz]&=UyX@Yɿ	.E\H3M!/DG((X`( 7xx{IbWaMNܼ7"_B-ZN?Ihz~-d9̙96 6QhK6w:4Ts2jIjPf'¦1+o,poPrqcXD8ILbŢ8]w.f{zXbiOeџ~>8(?'g¹,zt(q)Br~nA~sYħM2}<3ty,2ڲNg$gO_pg,;oaᚮEes, `|<xMQHSa6zm)+YL$``Ƣr(]Oe
Y^ܑX&o+LX>%^DZAz<8-yvsݦOot+/_X_>lڈ@f>X+9`em{)lf^5'Vs6y}}cJD$.1*Y^$xi;Q*adB#vDilq^e15̣}p\Px=k1aۂJ'YLy?MTG=VԀ1dmWRTP7mS@L\ Pmrȃ/b1E۩Q24;=Ig܉VaB<ydQA{CN?Q~~!qWx;QFVq8L>Fr!&7^͈k>F fbְ /McxݒOOAƳ%b^/DBc"mb%5ҝewT?'.F0WJLHLM7o<<c춈@n2Iw=<_['o	C<&ȆIe_*j5-QDtE-QbaZR9.vsB/hI튗ٵR7%vR;;+3߸J	YEͨp& [x6l!MrI=GnAP"gٔMϦUe
BxFMfԨ}Aeשtl&e"oZ;1/R@XJlRɪTb4TTYb[7oV$Ml9Cp#=pn?w=~VJ'04RK|fm.6STl`J\p
<ZŠBm fsծx*YhpZ"ֹ^4Lkt@hI
sfuO,Cpxy̩wr0!1o6⽽B0Q!16H'@+\rvv5}0{6%t3235
C!CcW	tje-#ubc-Ӳ."x͖_HSQǹZVaBL$e8ꭄ9n5lm,DsԢSQKCP{&%A=aݳ=unqC2%L)34$N<ɢ@@Fwմ5Qv
+~!5jL=PcH/%pd'l-T|$1,c\&/rlOQUtzm^^vkӊAs=kiIxdp"Mxpw[VJSf@ ͸{\vE+Ϗ5çXDӅ7E|܆MZ&co´
D	&}+-<8\BczC<8RS=J2)6NbzaEGzlSuiKb!۩f;yA;5}@X$2;&24O·`V5TXi:+tnJCX~l~lR,WMZBwtV%dN>I8e=K[q  WzFSΙ{VL|xW]li;7@	fٍML OvdƆuevwٙlYA AHM̑R**J@Q$p@@H%LA {wgT{w{NLcZIqL]!Mȇd
ݍ͏#br:Fr|5T@9.7uIE_tql@Q.LvUF|MTC\k~FZ}[+}=x.2DZYee	l`]E!`|Bd Q܅ӯwZDqn:ؒvB+w#"<vgЖH
? ~┢Wӯql0ڽjw1H)ܿ@o'Y.tSĨlj-hP6n)31ik:	FZ(L$_aq{gw,vk*TAX~kyz`~߼Wc(XJ	ۨ@p2-@0WRΓ0!mx^ږ}(EF#F_i]~%t8@SrQUÎSd`"Ų*6bpmp*ă?1ц`Jۼ%?%(Dd<Q[6:n^G<R֕jNQOЂv*6|:*t/p!ՠf-3)wO١6Dvk>8Kh魙EdJg	9#KIX#$S[6^G\F<EG"QT _uhlq$.2~|Rm7vF-*Ysq@LC"aJrxZ3B
%vZUu 4#PLdq,-WqiA]#޴2DMc*[YZH^nU)TUB=+{XVv4e"=œq?[%$^<9f4˦´y]}{L(=k4xMػqV海TH"6BӺ.Hۥ;rwjD%)Gsw48$W!TgP}33Z)"֦)U<bq:Бui٫1KȐC3_=<VWZ"H`Z^[&,<;+QD<{Eq=S9LYiVW7}Z,je3a%u^%OyZfoKpпd2{㓩R*^/jR۷"u꙽>="tGv`"xr_G5VcșDসNߺ̇>wS?F`O4%5˸~2
+l)H`&Mg'dS&L#Ҭ8pw?f_̈P	wȁs_T"UIEǄ:_x2YwY)KA9)g~NX8d.,
b_n,Ǧ'`Bvx=p[Y7MD&[RX57Z'efxùu TlHSjo.+~3+[W5jVJ<2xQ}<.Sۻ42h(o}/ojL%Qma)<5>;[B7	b߼#~ ̓x͖QHSQǹwq˚-WbxBLDg2tBI=ekQ>]ǭB/IaQIʠ1}P>J!AiS=p9|pg,;YM=ݞ溾1{=*G_UfYbDVc=jLn՘J+e%-?H+K;mU
/z嶐/g?ڡ
EGߡ]*;^`$!.}>tu.K=/
ogg57α<g9RCde-DSa/_NiKԔi+3}'R8 P?G&|HR!
nVa#LqƧ&J;tM^4E5{8cLHq(\I\#ł12ЭȤy؆/^B),Б'kǼ)p
|!-|!xLsb{s3sO2lq2MˈPXX:9Okǚ8 A%`2/Y$3'LfRz	P-".%Snz@ZUNZJ 8n"ta\0#+gnޔFf#~JozxSmlSUιR:s#8N#ǀJ66`ԩm{jor{ov#3K4Y"7fƏ?H4d\jL$41C'	1֍u__l<M/3(0uՕj#VrYIPJ=MJz;kT:Jot+j7ص%D`-%d 젿H"?c}^C+)[s.7S9T07X,+mqlAVY],2
Uíw:cǛ83>s10)jZqMrL<&[>g>[ϪPy	4 h@ߺ0SiC9i3Zv	L,Y͔8?>6*1$xnc]z`Q'i$=hFQu<"261YQӱᤨ"$HBEpdks˹H:^NETIZ8ֳiaG)K~l
dG-=p އ[~tkLsav'{ڜJ'ʆF\E]ta$-IA8͸gd| p&L#hgm.d5/]R.Tb6r9N0y+NHBc513n_X:_5_#ww0{g9Lc w3V}"ޡ#]G:k}g[AͱpiUpl~qH֔'-?g{=}sUgUcnųC9M9՞׳!`,eq%QdcIֺ(r]eA?Ɵ{  ~=wGS.d+
pi'sMpE:k\̿0JxOQhCcfт3aL/JUHI.֙􃗙G{1	!*$&O?ä;YG+`z~9/cƦr	&9lv3s)df̾}ss#U\ZĬEe׵/,b޾ vw xO]e:q,<y)
y%Y(MϢ7+wrJ$Uen*7]aJ<"%~@e@Uy%y)9kX*Ob%<gae-Ī;ȆUh9!V{XĦo0e	<f6|e)Z
ũE.%{YT  1t',,cQ2Ed,R cDo"}k ZxRQlSUιЭn݊3xѵTe؆2紻mO%fz>ȃQY5FBAȃYdĄG3zmGuUZx ô}'Jʠ.	**~pNBxqi#%1^Jf	bBo-V?}79zsΌ\94*Ǐ҉eR`
jjL
,WO%U(38gƃ&`m@o9_ynɱ4[Fi;4qF/Mxi̱spѣ vz5f?rM:r!i.NOW)IV&2*e6NΞYn8A>-GQKH	AA$F %jx8d~pV"*	/j!#nvPTbT9rQTQtqF8*AC-"f}tp`ݡ=7jtv>C{y<-,Pl7um%i{D}Q2%"5$ GU(Nf^<4hm!gbh/z4_^uߛȒ9
m 1G'˭<Ǣ7?wgk?_ΒjI!?8l:w9<:?d~?;`c֟Į=䫰%06¯&߳nѷÔ=?-*4EWø	wrSVEw!:TLtUFHY!(oVeW!nR]	؝?|8lsoYcgcǠ++BzL`+8b2~qLN꙱'`uM3>v1BVeo}Zx{$zQyˣW%
yIE
i
ťIy)z
i
y%:
E%Ey
׾f
 Ik(BxRnAUH()HDB(6H>K':Sr&{;ݽP(SaYHI@{Oof;ow>/kiŶHJ^@8FK
5+
,Xn_!4=[P`q-P{`F5OG׼ڠsˡWKm 9Zx)Ϛ(MK[#ycMj 0Hb>ol$ZA
h"3PsJil2kVj-|I^A<DY$q~Mu:јeP$xEÓ8_Vy9iDO'iy$<	fh'iM_ӓj^PdUEU^|c{.^{wzR_
6q{m?x$
8^s ݛKw:~܈ xD 2@:@:$,*;whn#xx pE)SxC%lή~!Am0qCz6Iv9E'PemX^y{2Y V$xݖOHQǙfc$`(9c.ծtCJk!hkbKfD{Y.A
4)f	^zYH+o9<μs{`BK@
Q@*'[)OZաþzjYѶUӼR7|aRESnOS0SLXmfEx+M%DIyqDM1.o";.g:cxg:!%Ky/oim;tR\3)6fBE41e7lB|zdFS2"7YIWCXnnnj^]u|_qKȊʙtr쯓fFhl<$uf唌<hK/	'ԝTr	Tɿ^
K3	kjB;j?)ȘuVSoq䬛c
=>	h_ǳha=7sdw=xթ)GHf0"dV`O1 ߼3qM䲢&p	%/[괿BM3/8̈Pq%S3t%RydNVQ(bXلdsIgK)_P|#BR¯ӻBD*j~K8:&p'htxW?-74')n5#?M&o(@yN--4yv']F fbN,. 1"x:*epCcCӯH2We^uE@ ~Mx:*1Uac.wNbe~iBQjr~+kbQ>#Qf3`Tnc&~hO>(3T>Fe;3
na8̜dW̨<]gSv u{@t )]1o)&V3rLidTsFhzA/#[۷Od90@w3ӯH2o:ʼo/,'M"<ߘsz4O^,3 X`wxU_lSUm&)i760an+s-`9=m/{1^HC1B4&IL_ć#c|1!so$F]~w]l~6)ڹm<OErXw8ߪ>,eccI0Q5c9yk)I%G{((+iuvyz]1
ޣI@tZ`@g/!hۂVI,%YM)rV\^cնȷ($/vWN<!k=ذ2NDX*!&$<f7oR&{MTnVׇǮhF;#H25Kɉ |F.Y=4%1IEѡH+s[[٨7(/<Z-M}hH!ߝG*%oUN}]Bitl?d_G׺zqu,PӰ(eYarF{jWƜXǷ-Жqy+j߼gEOI D(҈҈*;7ǩp?"/MumOCU.,OҚW$cTDBT,VVOj>Aڤ6bW%wM(O-wBHrۦNv/Tj;qrMvi]4Iyeh\3ƓiGPlbuɑL+NXbt(2@#G[42Rpy>`1(E&e6wzEgU՞;&֩EB
09r [pk50lDr*3MIL"5(d@ՉuJLB4i*xv@-#Bau\a9U]6̖T=0/JQ%vҶ΍NHwn5jyt;KWQ2fA(Oe`[n<%kD_ gNȹqhf3gyk8a0&~cYNw) [[Ueˍ,sşY[˽pEJyCϻ\}d+<Yyb-x	Z@"YM=/E*h	+x> Ɛߎ]&Ԅǖ߆F3SAE-,5w&rЩR=Y2dNF^qX[!kM+\hD_mX_̅DP{}fXX41bZ;NX:gn@j֍:P	j8&ow{o˿ 1 %Xx*|opCcfmYR<;]c-[bIIbrt̟XBB'ګN;NIIdsq{Lg\$y{6 [` 8x*_a
Ya<4=ϐQlz=t}OF@.G3ۿ3J1ooja.wzLFk80qOg>0Ld13o0) O<-tx/_a	WxkapsFF)lko3O?7Q=m#31	,a zNx/nQ1N^$7y7`'͟Ŷc}\~nA~^j^BqfUBb^BA~qfIf~BZ~tds/YfZOS7B9>ev2kNϕc`Z}ˢHѠ9},F|l,A!*3n/e,XIy:y|zt67LہV6d/nr9,Ȣ1"fGK1Jeܾ%y;t1m?+td(<\a2@)t}?1rlc>8]%Y-1o<
 x/Ox(SrEVe'L<MT0tb?1BVز vOY30ݣqGL$Xdھ' r3mx{'<Kisטed K3+ *xZ g##p-Ǘ[k#OU[k1z\"+2@İ#lJ}}nG&9hxkAƙXPi"elQ/AATzB`XBl'فݙuw֤OE",d@=4,@D=xDz(z?pvmex=3̽7tLC5Uy	ĥ &=^IPQ9SBa6vyFf140iFt5j{̲Ŕ:2uDC%9oZ"!zV;FPSAa/buL\+bN|*G&`?̌I 0t$PG+R{ݙ$8spQˢ5s唿8\쮁xb+dPBPɛr	5^l:̳!EOJh:g <p_G	:Ň
vv32n1&-9&=B#ز/
RSb债'XhΡ,J.wȶPC~6Lւcѱ7&iLl8[)gbE< bbKӖL[F;SJx[LUsΙ]f-˲F`[.@{ea%1eNlSjj/ZӤF$5Px0}36F]0,&:O3s??st!EHsf|ZoX-'Z>VW\hٺa4KtqlArRZl"ETr@ӟ$Mj+J{cRSCbPUN/wjWv 5oM oNbsEHK-ǲZltV+Obxa$<WC[Лl3,[ش1!E+"cI>-s'2ߙ$45OwP:=[Hg{z;@{8q=KbzTCbQd'UZ80Mp1eY^($?c]Sf%;K*,u:hg]9%>Fzkj@[k*sfOfz%z] bJ_">~8(-7N_) U*|6@l)JOwn@_(QU]5ϗ%
A~<sI22k\1|Q el_/MX[H4Z cWDՑyP;XπJdAYPWa[.A@_FBf\~d0Eff򡑴hvq#E(FFVB"3D`(dKQwfVۇF 2ĈGξB w8]	gqgsUf.ccBY=FlHN=~LZñJM2)#E'~YL,
sb;gb{@\9CfH$e#K2obh3rvp_ {9Pry5m뜃}{Zb'IΚtXƧN|,x[R7-LǎMnpS,14U!?M$#U!(5D(1%3	%=d1y4X\ezNƈi9b7JL:])3_zQ~iB^b.MA``yJ 
bBrbBRL.D6$_<#39ź|@srҋoF :0Yjqf1y.ܠȣSY4!?(13dtbAл ;KRr2KRs7d2t4Fv\ֹ,i (rx[R;-~=2OnPI/-Q(JM.| c>9'k43V";~3
gd(M\,>$PE fGQb  F60qOedg	runϤ^L@̼@Ű ;Hx[RG-U3On8:O6#U!;2)?(E X@<#5O(WPZ_W\Zǥ Z
%3KOTfԘ5]9|:Q&Qr@CJA&.Amd>ӫ1
1?tŌl,edvtwr<as%o}̨m4]BjzQ?|z>LbL@̼Ye< Uxx[Rh-'O֝'ȶғWQ^x|g&5LLہ,<bԢJ 8D(Q敤Vx($敀T''$$(g楣7Yd@	e9 JsR|2RoŘ*[~FisB}\}<\:lF[3:%ǢDZxF.
Ӯ0bZ;3ogc7 lWx[R[-̌E3sSRrS
Sog61	f+&+*sRJO<|f*F6IvV
%
y
i
I%@0CSSOlS9} DMI>\3ŦoX2F	l,v0˯g. PDx1o-RVӭ8w01.MӍO2 G"sx1B,ey%zJ=Y%L唛sg7/'HD!$5$o8/pedyâÌ'Q&oX4@mym]Iiwi';az
* ;9ۧC&3[L?,Ϩ1ݹQa/Vڻlw0ve=PڠsA3tF&{Mb5mĔ8RFw1z},+9?8T$tLَ3q)$U*%L/Lb>4UǙ3r)q)L݌1qL<ͤM;T􋧙sA^3EKNN`<_ϴKLbG9.1)11NS,5&u,>2{2%UNPe֘WOP8$3/X;j:

I%
%
%E%cԘ2O9؆ytf햶̦|3Ozl_yt̮ s@/xo-Bəy7dK~VQrz$c3g<}֌B@̴=@yj LsaxTMO@%ǃXJbwN	t"&FO^$a7c! o^x2&&n˲4Ћtiyc:vxٹ!6R.aKEž<VUS9I;OcWhy+&.|ccd:#Cd՟K:"@.#o y\D*вbYMW4PsV3$]iCs6CNVSDE Y:TPowj#c$K	=rU5
yZS*yo:||JEw6_6L:96(
{mաP"% W]>K0(@qY̡yfK"?vrBNj]=jai2"02tw|<V\VF#r]t|&U=Uܧnݧ%Vo ~ ͝1-20|(j@%toùaZF,+؆p|t6gOf2tS9DHI}.%6rɲJB),RC;|MD\/TCY$0qS/*lTr?ɯH؎pw+
1xyxoFWx1$-BۙEob\8݊P{#3ma~ V<Sx1$-3L9efGN V)UxX[l֞C1^7_lo\_x7khJvvl<dwf33`H0^dc&BC#+UM"VHOQx93t_f\r3_V; +n?SHp\_hF_~D%[`ove^~PO{Ovݱ&qP~WߺZ14ȣhJ0R"P$%e#QE\"ƍ<ft`)л"}MOL}aԩpԌ?|;7}hVgW4g"^jzqܫCy-F%}ȟp:O.kԵN!xfmk]LT5	\B 
-`U ɍ3d#5'/!9bհsZr3A1SPygB~;fMPm!4[_93gAћNMKx+H"~EQMx'&Dp\$'/=򋠖MrǠV]H.K]O|liَn\ &oŝFO;o%MoîJ}{$}g7AuyPd		8%cp6Mn;p9	\<r6$/k d}CU"e/A;;[2v﯁@q`DYFB>*kӡorhM}\AMj!oUzmk%]XV*U^XB1D,Äc8%MeU^c11,	r#Ǭ7ӴY|zP$'	1LE(X_c{1Ex@t~SgS$|RQɝ(hdLkr˄)t(t`j*(P(jOAmtP"w7Hk)zK
8Q2#:)|̕l@eLpP
Qp:|os*-r,(,i3PWXB@%Qp\^4mOdTw_rj*xfJ!7Was EPp2\ ,<`Zz,Y4QDE>jDAAu	Nh	'ei!WEhxMiXEOT{䷩Ú|Mƹʔ=Ĥ)a*mE2U|ƺ$<O^`MBDV& ڱEZHָeBNJ6(i#aPCW`1˴/Ĳ݃yy;ivtr	.;;<<E8q(ۺo>jF
eR!wɍƝVU-, bXp{;xcPQ;(BFR%ƨ;djWy:/)T o!֗$oeoA`1 j;}QO2X,֛aXaGSzC1KSY5Q҅z򴝩ݬ3/wgV7'y%1}gYY<ZSeˎ|b^]j(+?J'JϫwWE5`x}^wX5ZB2粙Q:G"HH{ƁJ =&D:<fzdдesJi6h3z`l[[7` 7o_qNJSc3̩X),] JWT6)J3!E%êR2.݃sSSUvwiG6m< 3dZNRs ~HpjGH*n
Cȷ`
5B^aZBd l$H{a%Y]R_]n-X--9v061
.-ߘ̻lve&< z>48EIŗDN`'e㛰FS"@%{, P
*ӛC!M3}85E3mSVpkJe֤jPW	lzaCWelSJM!s{RlVT$4k<Tt8cH4	6]RV65XUR2pȨP(4oM;Zm9D̙)q Gi3y:S>+bɊ-<f2P;X8-457(N@(}Gv ύ͓8|WxS_lSU9_)[n6[95ژlZH]{ݮzmxKN_HIt	Wf	̈nF@"//Ƅxg=|?<yˍSc# /3_ܦhG1XB.wy:{rOCReܤ)EJ0߭/m&{駭nnU~VVWԖ.jd
j"-C:̯cHtqCYkڒkI`\{*3GJ&3A
{{zh4'kKRr2<PB	3e
c=	Qd>edĘ8q
m	)0s1xLHR+YH0EUQaRsxhHYTeKxX,b?1Cv,^sãb7ƠgO!)"1Is%u
9ȯ0u\ԫ_+ꕋ:RBU]S,,OXPO&KNliѪV^jgCejme	Ubcħ<(c6m.ԆATS3U4y^p tj^NC^MC=aðЄ;[z{%X~R|vnB?#DZR/Dդ`~s_5k!8W
4523
AyazNjw_:4<QẌ3{quLEЮBͅά!Hb&;˰>}UXq5hrzG+kIRU>of+!xoR-|O2gN`,1$ϗ` 2}$aV휂@̴Sk= @xO-M,XZ\Z\XPP\2=Ybj*@d=99
I@Meӻ%P1!K8BS\2{%of֘>o38f1:ܶLdaz\
 3S4SKYjFFNҼ̒s_ͬP_Z$3K (1,X$2h d+$)(%攦*)T;de+8ez楗de&­	HހQZ=#5$9>3$1'F?g/R#keC5o@/kl6]~= x-Vy97Z1 7
'x{o,ͥ,,KY_	(d敤%dMdZ_1}sog^Ai+Het}!f1APgxO g׀酞j;1% _&]ux͔k`qnMm]}HăukL+K.b̒775}WAVaxBൈWO޼ɋ &mM/>}?g>m؟x3]H&FMwee"r"7HgL7I$bIkr拪]KEMRUI^ԒsAD>%c&>Dj.S]).%'Hr*Z82\i(yt/| b~e^yϦKzڡ#6EtֲCR/p5Y*i2츪X3PfKn<^Bنe.+cqd:5aBMb̏82 r1mV6"1,s}$auhmf4?𱓁䁨y9Tޅ,NFL3Ȇ/p<{fOzf"p3Pcf-zcn:[u˱VjxHAV#a4sT*ql԰;O{ʫx9	>Bъ`^Jnx;{>R
<ùtMoaR޼xFmǋ/ddxNFRS9yہOad۾l1ƲLĨl,ʓ}fqLJbxN`;К)?DL/QaR~oc.Ļ'1Oϓb9 [KFxYKo5m5"U\è,5c2IW"Ǐf.ŉ3<Dɨ1f" .^$P7u#hEfEhis'9dd@<}qϽ;vOןuȱGz¾ޛ6}Z>J1^Io7[SvO$`}giP]㦯><Mfp|=r~ş|ODx0ex/lJ7~X}Q)QiO(rHuI:LPHP-Uia=D(MPN$L:MS,Jπ$˯R+BuRR+^+*rv_E4.\@4*V7Պj.J}ZZ_̇Uoj1.׊kji)w!Wݿk5 Qh$v,RE\A,U@dLEm40
xf
@{BL`<$.GQ.g8AQ֨$H-"N""7o:XAMEC\DIo*TW[RDA@/DpPȍMj	X0#͢gn
Й9>P 8x[-/b,4^ -r)l/ΆR ,1K
 Įnn+t}Š	u0g 7jAXeX)rca^Dkqh
9	\#nKι~dPY\GLK[jH6dI<\C窋yAzbkCaxz.5)ĶRUww,v2_H70l6Lڎ	0k-c|X`D	E	9-r
Ozl(.s IaSx߰9&Ȼ++"*[YʀIDpIA}b/ g[SV`Ա|ԮVϠvCcx#=6͞K\j@UiiC*Ni!i#71b-5Jyt79.TIL`Kh9sT
N7Z=PJ4_+EKKܸG?ܴ6&>8?LE07d[e*jMy,bi˷Trb<#l`_V[-T_Q|RiywȎR)4`ښdXPqĕb\Itdq:/p3'C^*.~F,yiz&&n(hcĤ3ȑu׽S)4P_]נ@O&ז`}qLK
RQ68Ȃ+.H\8o^c{D_1p#^C=Kh~ͦ"r{#5"eO҇K2+cEQjbE%zwY)*!Uht?7D;;x?q%{'Ow<1zf(1zf/e;irk` *gDɷvXVYտlnB 0m$>Y#ЈM9lEj 4#=6FN;rt~ @JjubӢ.aWev2yR2t>+CÁ]w|{C#_&-r?PzաhjtW=`P3Q.l2`-ﮈÀ֩Sb-:5W-ӱk}91בht7$:>(}	,n%!"U][@?B=aEaz4Zѻ$/	?ڴX1t{	
L.WN!k#ׇ+KqW++~ٻN_Xx#X	80d]uo$H}'W}Ԉ%y?ȁuF4&HN f@~R{2pJVZ?g|[?lMxW]pW{/YbMce^kG-LV6+ZqBK9)I'R'JBJ
h_ә!gW&5C頇={9?,S3*lB2d="*)kM~uO۞4R;a}"̈,œZBN,kqk)e9pTfᴮ$ХDJ1-ga=RP|<I**B<g0>){ȫ9P0uvqu9˥TRLPw;/^8\]6bcxas{54>8xj(sBU2겴i-d:MhzxE˖?0FlnP`+
;a.NZ*UUIKjYp	
gF=C+s1-,mMsxu|~_@.ftBb:TZ̵1>rf80J91:J^$JÇ&7a31ڙĄdRҥWS\nHjNA3)78zb.3iRRT)=7`hia'd]l}wv|7?_Yc)-?-ع&͇J;\i]ed-w_l˥r_GtXKGpap=vhq{j8"e:%.a!Nºbp]s_ &xzQKK+opb[uIqɐWxUKu).'²KB{-"Zn+DR,lxyTdBQB-UWSIIMg<JC^հdhI0\dTI=22*v	0FZ3x;%d;%X&6S)EUYPf1dd9<]Nd:&|MeLGQsj6no3K%~OEzsffRQ}4lPsNORSU@j7}IQGۭYṪMe(9Z+P dCf姥j73$%q#˩/Nc1,4m-1m1ϒe٭rx;bر
!uFL2XLDJ:Mi5F-xZ5,NgýMиǺ61g6?<Iba9v00,[orWj<A&xygX";~ޅ|4О,bȧb\:q{N.5ІTΧݍMx6J1DmݟzU>vvD`/-I:b94pi᧵CK%to_9Z-qxY|5{v~%n6ʒgwi~cYs(2pÆnsC2&6-fD^|i枡kV??$3A?8	8}ahgo\2'0kkw5T5t,L!JW&𽴙FNgYܨ^0Fq`5	w,(tmk2#_Dq:uI'ְSV
NkK>AfqU3/_m8K^	[kh'{}8gw=ʝ3rm o;2B $iޡa	
,p*~L|jnTıv5b!;Ki#,դucuz7f7Q)xwv߄#zs1:Y)ޢ?9*nXYzx9M!szOifvuetv`|goUQ`yOy#»BopbѲ"kt:Iвi|n:F"8$غ_f}yx}<@mpSQh]ͳߡUz3՘pSDؤj!Ř^NKt-,pNkO,\!S%V'I٧O]r+u˄yx*W5+ELu;?e~[j2a#.lo){Z׬`N=@;حnDǽYlDk3O_ɋKx?g|3J0MV|.wC4SeN~$6,Z֜ԲԜL62L>$6=I} #HEtAfd?՘Q~mέs36mZ2}vcv1; {DRgxVmlSeNwu+n{Vl` mmz?.Ȣ6Ĉh"Fc5D?8[[Y{ygO{Njq)eT&_g7,]"t|+ԕuB,Bmxy<ho:,oZ~nle} mG>.|yTK2+5C<D/AjL[[gStL\+j	a<M{ʰz7,¡0Ũ'rlÏbTpxF6 -<Ј#Pn]SLp42]l[@$#42'C:|x{ 㥽(^e<4jYq2O^)īh󀢃}Z'ʡ}U,nfPMtx=
}(HQÁ	"kX&B^7M%1&t2MI^04Kj8 +ۡ.v?4܈ooF;C۞:O3z/79SJ°S%=fQaf?`ǋ#PU6(qf MPNv7a=C0B˙*I$(,[C8RRoB*myJ2*_4mN4,]O#ًqf'ևa(J
>H7;GUk錦Jxҹ荒Z|<>6JL1%YTG=E?H0#֐I\|^E8	E&n+FF{t$̞wu,mCgr-}oxKh@sSyW~,S<y,⭋ѼI<\3lDXrlj1a:fqa>fjL\Qs;!NշgO`u6x,§F	2"nHho	&hQRYܿQDᣎH[j+L]΃8#1 ơ3i|h/"
u©1P95tZ*v=)T{O*'*<q{'P)0SL_/{Vf[84㐮t#@oU{lSk\b$B#	xĹ{C86v󺢐o?+xՕOU33mr- ?؀$-ֶHPMݙ;la,ƇԧIz1ٷZL61}1?`Ex -1Mv7s3{~r OaNmQN
g'23gοI\$J&w3vPu?!BkCA<O]K"f@ r#!A{DedvJa>8U|<{gbH~-s<=iLjf3RDy>T`QZtC~F\eP?x=|hD<t:f-4Ay,Fk]ؑe!!R8C
E0R$bm3l,xV]`/`2_s(Xҭ>HjQ+62trTrX)lBCi;HK.3A4i|rh!]GKE[}¼OG h	ԌʊRC@_RvH=? lOgr]m݈? N[eb֕{wy3ǵ!yBsy^&em`;,m#;b^ j-%x3@p-)JP.?Ou^*=I2ےEPK85ŗ#u;;tt[r.=%>ZUZl7rT[,6uH-с{ieUQ|!ˆrJ]Es>>_W]i8YYgu9Yo"7{	69uqwl>sz&3909%*kX*֏jKhpqƁ$3kۢqf	xI>bB|O{EG[px%vAÚ?6 ,$<䐩Yq=A<fCm^CrXSMtKH&"ˌגZfM=TڡlwZ9c[-e2)zmO6	pMrđ`p`i1- f}zG:@4Ĥ2lHkLh=pJP3+y}ȕ-|2U;Gh8kڅfvлtR5t%2xV]LWOYD\\LJYuEQDD]gwevfJ,M41!iLl҇46֤5>4Ҥ&ؚi4Mj{fX3{Vᝇ秲) F<
>AD5?KZh-'ʷfޙɲf.z-&^˺d6@~a#kݰ/@-c*Y<</r|BO:TB3w-A'bxLjM wCٲ@T0v8q,)\xMFyvC1!Ar7a#Q)	8Qhs:"M6(@+ad61Ǆ7빿} Iޝ>26AvZ?xĹnHm'kcs[mM 3hSt`^ů8ARQ 	aDVz"(J_ֱ q>Zt4䘌$k;PU"Eü"PNMd$`TtE]{k1(:9zUS)dRMLU_8!>}{YbuR
Cb^SIl9:J]89>ߛ	ZCni:a|b'@WV]?ͳϫPENブ%NEBx~#o4I7_q!ezOmؽpvXhf[Zm0oth?8 =.lAt{ae+<E^>3vv.l{is鑝ɲw)ICP&N2uog"2^ib:F'Qd~ZTx$ɍmβ[~)HhJuR8z6)GIbQ5 OR`VomqJ@7dfk'A\zdȴj&.<aku#apbuu?|mp}5KG?nu8An~yG)ݰ6K?(ģp¼% ت3ftI_JR=S:/!UHPCgbނgqZb׆aȲA1@m8k_rNpO%nsXq&2?9BZ*&j*b?97!q@13(S_G9iR<pTrfg.]Qu(-b5ѥT.<;ןɽΠ6i=Vw/gm_mqK$J%L
8Kq3sG\ w^,^mLEꀜ[t?䉓3C{iԿǇq^5'F"p->)"?CREZRT?Ϩ'E6	7~jݤ8V4;"GiT	a\B+\fc\nKꃺR@*nIRf 6dn	IXL`V$>L:m>VuCc=[-q)2\Yƞ.LGf'j<CˬWӃ-vqxMhwܢ̘51L*`4^,7yOYG1+'=h,d	"fۥ2c(Q.VƸɡr:ɱmJ2ssJSuSK3RK2Rsr2bBR~i^JbQdCsn0rO,0{&2qLn~#gLg.: ^	 xBK-(dd+d敤%&*T*e+O *5]b>􀥬
řy
y99
`]@
y%
99)Ӎt{Va I7<}xB;-+Od\wS*-1%3/]!5--5D!-H$#U!5%=u/,Ӆ#31iQU) sJSrSJR2rR04p) Bb^!B}jXyf;rRK20M[PVXSqt8fd5AiBf1H,bf1PO+a6s􉒌Τ
b&̼TC~\n.~.Ә&	fbYw$  &xQ FSSS3oinig<	bn`ޗݑ)#ax{rKM-Y&Ο.(6O+#3m?|Ӎp2fMF>@̲ s))xQ=KA咻CDfF4~Xx4*~46as%co/! 
BESAR[XY'Xx1	~ bXf{՗C5rxˣ), !8IyHcO-&l7DW#֋S3q#9yĭƊ${HztX~`A-Y%+]di9VRzWNuXr	51LNKN镨t ~_;~+;eYZ%prD{gSxȰ꒦
fÙ(4vTsm õ980,9#72͸cĂ3ۉ* Y7iX!ksz1,Ѭ5uićk1[U6嘨՘-ٮa<xJ nLx{rK--ױngjb暮g;W/k i}x{rKM-Y&Ο.(6O}VFPv3. X2"Fs_f~=F|5/01>S 5 bdx{rK؆W&f<J#1yLc9M?]Qlz4#3ׂD3Mh8}&Af f~54NAOAP!3/%39$X!Q((3,1G!(hzDVgְ0gVM[zc:jVukX9#t@KKSJ*Rr2C=JS33JjuRRKsJ jB]==ㆦ/XA*M_ͪ3]~-+ akx{rK5AeNp{rVt{U31)O?g:AI ]Fb?xowĘ<th&ͱל&Ο.(6O}Vkь~̇YѠ3lkXZPZRZZT_4p"3kXe3f1w55: Ey
@
%
9y
E١iy%ᩙ%:\
Z
)i9%VA@5n~!ᮞ@qCt, [fՙ. xDx;|S--YKRSKJ2J2R
sSKRJll32JKdQ~.XmriQQj^IN%D"5E!9? ?(D!',5K V'qK'r0
OOfΝ 6Qh[)Fl'Z4+#313l?{ K]:xmJA]T#j#GRP$
uݝvsUڤ:/ "CXY]Ha°3MZ-OK-S`yn"=+fQ*Bl-f>wq1rwEo_05BrTc-@7Pp-	̽}}DL`xQmiPRnPJnig
#;'M LK#m8``urEQ=>6k{-:9Kzo0MC4z֔=gxD-w%*d*ӟ/dUf-K)MλU٘Kaz_	Y٦G.b5eYtE(*/\: +M/x{|KXF5Iũ9y
iiũ%
%%EI% T$;ļXĦ+b
ld"䖛WPZPX5BG<#3'U!Q!/5=$,U,14U\!%<I̊Yum-,Q,QtrRt%s{3S;nfQEVggLP{F fbf f dX?x{|Kl}-7i8(d*$*T*AsRJL`NT
h
Tz\
Z
E
0e9xg%* 9\e)
E١~)%9))`PX%K3@V( y"_J7&QΆ؎h~|> v)9x;|SM-,>Y}5}e Mx.v؆W6/8y
6g\[d_Y\Y_P[W_PXZ\RZ:Yj]*ʉ99)
)$*R&,QttwqsvUU4R _1jLxh}ۂӊ9ځQL/bd4l?,z)+'',MKL./SpIMK,)Q(K)MR03~>0KZN~蕬<@y%
VJM_ukǥVʐnPxjfzF	Y Gx.XCcSsV
ɉ9y
i%Ez
.i9%
e9V
zgfIOU'#U#9?DazJVWncHU(UtCՅS33J0X  AqMx.؆W6/8y
3g\cb& fޞqE* =x{xMM-ey
)%yɩ
9%
iE
%
yy%Iy)
%
%E+Meª_n\~BBP(hIgOgxG?gW[K3. tYG1M-;b& fbQJ C	:x;SAAeN =9+w{Uf^khJd6
0O<y{2:L^8yK¥'7<9̺(F f^<0KXfjyv	9V]kX]
>+fxRkA%E[~hҚ
2Z4$a4K6avPm`?AxɟEqEؒTt/̾y}}?Tc/j/HغYVsXq	u ԫxrW@0ro0oo7eTm`	ש۰uQJaZH%2*@B*0K#g'i
Z@:f~	5оbɒ0}3Ω9<,Yb5ֈ MrҊoM$m:]}J1qhxBG@iOm~"K%C)l	?ś&j_)fBuAy倥#6u'+N/kpŅ-~ɓ#6NmŴO|#PvLJTБc܃æTȩ&Q̴`o1(StMx*ަPtmj ]ahaL8)UP2!8<c[ˣmRI<wTL\IԑVQx=da,]Dn󯁾b9y/ ʰ,-9҇LNao75~Un]BkYl)kEx}PA-,M2m2,dXK[ 
Ax}Psx6_๠6ĂK&gNbn8ݸQ{-cѦ5L'כJ4Yl`M~WfT~ևw:#G;L@̼]g6wX&'L_ʻV -RIx}Pl>-3_x(8U:a131v٬YZ}x{pM5Ay
y)
@|\
 5]S`rN,5`tLɓe815iL@,& C/;xFl:9ӗ1Ogeb.H^YlrtL":>~AA.~!.A!~Ρ!6Ivz\
 59rj\<bT$ļTĒ̤ҒXħ?je\b2i|ʛs0s63131v_sVx 13;P{xFs]Nܞ|@xz\4#tY'۳N213o:w 1^6xRMkA&spRH_j651
F@cl&ɒlTAr<x=y Ћxٴtн0>u^݉tuw7$^$c/֫,8]IVu\uR^aނޗN\> pH.8V%pHQz#Э7Kd6[dN}.,5ut^$!Q~L/y"ߴ,Uc]⪷921IkRmr0ѣ%`fEm#S WqP?o[3F/_b}#Zv̓-gR5?:Gty󾆣t<~HX稥;9_1)l'd:jO%Sq$HWsXM!7rј(Qp9	6/{@he&+}JfnXXcR ˬrOBXɘZ:WVmp=`p<#|&+U,nBJL ˹{o5`Yd"R%a)Cr{. xFl
-SCgT|@3Ys h9<xNXCcS&6)mR5 5	Q3xRMkAfZJ1iA_TJKZ6ihҐDSM&~ęYATRxK'/M/)^y(lbUheZM V_8c.ҡRN|5oG+M@#?|{{ch$LEcD&;KE2Dv\:3Gz	˗Eb`^$0hIqNx`^هnGVhZqAu+>g1?ƃ9bsBkʍf+1ev,JAjñeB^Ծ+-ǎNE'Q;1	gC'~CRNhQ'ZT^}j[E4RbBX {j-iT*8y!V1Sow@'\3leK&Ȇr	~a@aM9eGG<³Q0IS?Vt\3=J5uCTmv*-ībcBgWxmRwFbMhb/èNR4[#cS<QMqS?M\Vd.LIEVڷ6p^RC8^Q6gس/ɺ5BTmv,7qnj[]jK/(
txxMM-"Ls2R2KSr2s3KJ2RsRJtKRJSh`V=}#BNN~yjYi

i@Մ}<]<C]l,F0131K E;Cx2S|B-,WǼ`a3yJs3SJ2ӦfƼc/"\%9鎫%T2KsrsJsrRRKab&?!6~4Ūف
@.K)M΋|()h4ɾ6@,0|3E@^QǦّP7Pʡ83/9UЌk3L>~.!

:\\Y%1lĺ$ dQx2S|LbN~֞1nogb& fb}l m
x2S-k+\`VOLOUH,(KWOIU(-1K2RTԜɍYjD)Ĩ TT:Еٙܘ-AQ9{Y_X0=Q=}3lO_ê  [Nsx[Vwc&|6fۏc;=-e݌Ƕ`ĕ_W2#{~^NBRB]
i
%XĦ?6}u9t6FO?xgP[C1KMW(>k7Y,fOdVו}]8u,'uet@#Kkۗ=cپ+ Ux<S|t-a9/3`ܞh4}#t0ӝbE21y~߿`~:sB,t=fvf f.Z]  PGfx:]XƗQ,
@09FelFN(6}v y8u,2zXaWν #=x: 	YD[ؗs$8?Rm'x:]XƗQ,
@09FelFN(6}v k8_.3nwfvcz
x{vo۹v X yx<S|t-o&>t(3tXFz1@̲]"EAK ;xY 8V`+0fW88
NVB]'YGB]B]A\ؗs$9?R> Z*xTkA펶k^jăڀn_QIC&Iv;f&jB[?ċւPAzEm4>_]n908¬ӱ(W
xTҢTb98"kD@У]xoEهo;C81Ԏbi<״h$qmctf$9K Deُ3sFN0!3O")IZzٲfpJ:i ]d,,enH?}
)*	Z&X,n zAP\ {--.nlŏdOOD&MIQbRW"#|C:U1`'#BbPb\9jb8lܐ
{!5=Ye
xelIK{J)Z`i6&]x?K0}..E-0.ZhRTSdܳUY1UΆ<rjOj<c	㖾Q0(4dUC60㇝/_+i]5[S`}E:3xd5C,Օq\Y-fJ?Jf
jaBI8M+Y$gL`%-<ղn/[oDdWkVFNfFuV{$T<>RI=]IgpIR
2	vcUU	\/`.U	6l.	4m
en[M%7/[jsE-
Ux+QyKf6aļ̼tb<T.RI<Clzt,ۧ]ctzv00f+#yOpgb.]5/$/>9'>8?@VpbtFf 4x+6XCcSf,ۅX; 	,x+XCc5an0?`b#X KxrMjm-LNOw9G	3sNtd@ 9&oTɜ5@%hs)LogpvPU0460|pJL@,ۯfu at.	WxrM-,%s
RRRJa 6]Rg,\ 	boNߕP`d0
F	 Gxx? `[17gmϲ> xG6BSxS]HQ>L?甩G
VlRDsY35Sj
%x!W{ 2JfCº.bfхB6Ҳ<sppi6Ƨ$H{܋EH|]Le=L0396/sH,ۯ8ܯ-ҕlzTҬU[K gXwq9P8	4jyI-/Pϒ)IkŌ#VCnnɜm2fL:RCf3PE;ǉb{VISb"j49DG\v;R::K(!FlNi3~ώ̪VtmP
ƣ\%(+Uh3`5"Nix0bp2C^7J5LE aL%XMp2i`1R	e*"dc+"Q1	G@Yn'Q~SZD&bfSg&wTHN8+I"Xzd_BTT*ZK`gv%Pn*_?WY& \ltEF#<]$b0)[>eY[qtje
69Ņl%=z44!Zsu<H#Q3>
.y5\?xx3 Ԗ##ߙ6{"W0C_x2MTӜ9w51M>5]`sy	Yٷh Xx۲By4-y]J3[1oo.blgcb fb6 fZǡ b"x۲By
-LYْŧoHeJkA~E>1U9}_(3tfzߙ٧e10*L/b^ʱ?&0Md8=-o{C 3;/#t8Vbӧ+XMQ_W7k9WeIM?NKKKk3a.l6}6cYx'd0nLgfZ'&9>@QJٙYDY311v23Zx[B4-^'1qo/`~̸9s4n0\؂-3 1+1To~A%Q!sC{{9ܶ-k  Q(gx}NKHTas9Џb$QRZك;8Ņ;U,,?B@pǷ肒bYT5Eئ{#Z8s>9|Z-9FV ܐkkU	ۢA!{]MKlꭊ*d9h$RIicIK`4ʪ06ȿ`]T1&OqQ.jUfo6e}ai_ҰpO׎o|6aFCir.,zt%:{	e^y6upoZr*svj?T<ʨjuWE#Ӣ_\1YAWm}}M$ogט0-xrYA;<1	8
+tC܁#P6:O>FzVrs#(v\)=?`ocNx;8My4-gfNW>!L?C +x;8UkrƉ3HbiϜL@,@
l@̾=s.G. 2jax;8U]aNa4ݾ	bEřUI9

%ykZdz5kt@F~tC,m|5ty4R2r+JrA( 
Bb؂?Nd0{V
n &ML@,72>ܾ$m3tE6Ħg-bɛ8M=$ٷpLr}C`{o,ہLG9nG&Ofw pSxګ|SqO	bEřUI9

%ykZ-ez5kt@F~doB3m.g2C#rJfqANbBIQb^Z~Qn"  UY PH̛>t:&>n ۆL'2I_cbf fbV fb8<  H#xګYaNa4m_L@,t\~#m3wمOg7"F{Goȍ "/x;ݩ|RCcSsKU؀}$$ :x;ݩMyɇXe/>} _injQfBbQQbC̪T4T<dAɅdY>2=	e.փotdn6^'-dɛQI=.ٷǥqLr؞u:s{!q_soNx{~L'Oq Mx;_-l	IN&4!l@̾ cz h[}Ex;_-;';]Ѵ}A#313 1+1] }x;_i-;';]Ѵ}A#313 1+1] >
x{ѦTCsC2R3R3KsRKRtR2K2R+
RKRSJArfz
1y\



Z
`ӌ򓲀@
3JR@C=}K2+L X
pB齃Ԛ?ab& fbrXY춻edڇUp,L~(.:}o=t,z
.b՞qCXն^z|nVnLbp{[VvD6 f! _l{xnW>_az(.h:`7w1^!=i.#313 1+1j 7#xRurՆ-Lܧ_(8]$z^LyԙCہ, fb fb6 fbz^ SjxR4Ն-1Mo(f.Z!7Ye'\+nbnFrlmB2qO`ne@̱ʈ <1xۺ\BՆ-jX5Yفc&4- Ufxۺ\LՆ-#YGLȾ[Yh4`bv р _x{@uՆ-Lϯc~̸}Pv4Lb;Mke^Süvhfmڧ1N`^`$>]~z#{;,@
l@̾} J.x}:jCV_3?f>ՎI{ӥN2ä<9wہ3?leb۾^Y,( d7}V*$QerX7`nF*lmBsgrO3dcݾЂ'Dy_gP.9}v7v+|bUT:+t"邩=$3Y=] $;sl?# iUfxwAuIՆ-ly\Dv1Nchps  ,a	xۢjCcSsvn#V fbv mY  >;xۢvgiR3ؓS&'ԇd*gV*g(($*($(d(d+V&(b8Y)'eU'*g敤48ez&eV-AdZ05mc,8]Άwj/IgAǌ/cc.-,nȼݦE#fA+	YLc͚PȶEBn,pmmºt/VMlmBrO`cݾنm:6YOĺ}"_cSn-Uz;$
Sfweeۏ1c.7p )%xۢif)v)VF fbR,^7tnp;vn#T:6 fߞ_f6DK7p oyx_'Ն-kҷkq 	.xIuwsٓS&'ԇd*gV*g(($*($(d(d+V&(b8Y)'eU'*g敤48ez&eV-AdZ0511311oH9;{MpxIu{Ն-ԧ|~Os? 4{|xCL-q'FO/fܾ<c!"Ē
EMU*<}$31Mk2L׈e@zrfCELf,bRڮ3̱w2o_eBݝiM6y*
LBX`پMf)VJ,b*(4sv`ֿopO9]U|{F>*Fv wYe0sM\ʻ2V۶Ye=nXGdb2Y)eS9m'\Lp6	lۓ3qNX!1)x!A9̙ :ex;?SL-l-8$}[؀9p6q  xE_HSqǹ~B$Q#,3)	=C0X-wlWXh"@*
VˈS.|J!E.T>xχb/:r\F2:.g:3:dXӂ}1b =G-=ټ!dA lߌ&f>)3aXzp,}Px$biߔ603RjpN6,5/UեtD6s6P(8	;ЩJmsw:J;ލZjǟCCΘj1w-Te1UKnGb	[à$辏l oGxãy)p],pPh6gjYzMlu~[P_Q.7cz#]>8`EUrSXEDz;c:߫?;Z+/kg5TRv+5xXoHїq˩/תHc55T}{]wpQp(DT% ۻ3avt%t,z	_UNA.XDq@	*nxg4TQR{҄;*3&8^Pw/+ÜyF1`
!!4ac%S3E1e|v1XNpBẂ@գkTg\.[rNЬ}wz&fH%gW@R,*"c,5!KTR|.z)b|ڄLLԒH,SsU(o@7X?l UvF~otA .>?6"c>R#2fZJ[R҈MX4'S
S#"HLa9SD[\:QVk7$J[?p~q.cnXfpCrY5*l"ht>nA<?S TdkëBЇ1-&	UVQ=.t墚VQrƴM?/c6:CH8k04J&x7~fGuNx;~w)ɜ8m{7TV@GFC\G;jqlO2x˔=AHXBpca}V&,UpBUˤsyLY69ey&pA^2N> <Jr[G.ۆ]ǶZ=|aI}PhiwX{Ay&kɬ(}R!ǜ |a=\u)@|0"
-b2ˤsT0xZ&E[Sa1v2͠3SVD\u	 $U9?06
%,^ŐG&wAю+0֯n"|<9)7>~p]]!jREZ<Tп
=.|O՚K)gw$8DMZXgXyR	6"}zȼ~GDuSلUͻ/*Gqu:-Zqjވd,G+\Q,\uhF*Q
kWce8*ٻsƶ7l%ߪx8d*㖼~v[{7Vd5V5OGnXk-&bG5-ذ{#z/=g)mܖ=!xYW\"bϿk-O.mzڥHl{Ga
hB/BhXξJgcI*!Ol:Sڎ&ŎhyՆ}Q~q1jsB/T):x54U龱4N=5@`_پH?;~]7	ޟspW/ozxkmddٟYxs&=&F6τ1631s)Ld˻(y+PD+kKxkD`' Raxkmh<y<LPW$ $xkmݰ@h;}b
brN 
#xkmh4y<LPW$ Kxk`B!y3L=.6vb N	xZksH_|؈$6Uӈ(F"Ppdg6UsZ}O.~clǗ'jۿ?k|.Wְ)i;+^G"BֻzZߖ[k~5+fm/Z֏z[C齞ed}YXzڕ4jgݭJvS>ں|y|X-״jZRqm|/ixpP=Z?bY|_>e2/dyX?-ڒß^#uD>,ZoKmv_Yy-4~`"y(j˵VdV"wzyU[s"CY*|<T1X"&a<|g1Z+͒3ë́{,oVwrm}/r&reYݑz՗~_z7o."vn-5^ʧozo1`?sTF.F.~/_Wg_?mW`g/KkUcu48<joEX["[/_MiUu?;k<E2/W&*q녜o~uЋTk,nv۞RcZ\߮N N?92srfs[{RCHm-+Io4:>VSIBHL0$׋DY5uNgJ4a5ќ0P&;d*K4=@ͪӀ\%Nr<l$j.Sy'S
SL\Fo>p4celK*gBZzVی6#`BDa2dH+"QE?Ba"g	13&ALTVKc(`0>+mpP2{pk3f?06O#F)#`36+FfNElc3FfAl.gsF
r)v'2'Ƌ(?TW'N_qC9{fITh̮9}=pS^%JM[d3KCpH.:J<nNøC[!"s:tQyQc<	"fpLNC_EKE<Uɘvm
lȸ2Ru-<Sw)</LJ\pc\pTTn9Ք*"Rܣ[.nJ?UQ\,1!(b_W&<,cR)xeՁ"dT1#M$~xF(o-O5(#Zs9?R=3s.:1[]Qp7>ܲb=ܴJ}Meѯ_o6c@\Luf!Ba6FAtpD	ADAT!Qcn}&Y86ݟQ&5(d 33g12P9vGn3loѩ:@"Rf,Lsc*6&!`'bR,Ƣ<,Mg* 'qё,1Ns<)Qla,)ɯc^`yR$<jTpr*	b-^s?s#Hf(Nj0p.pWI,.6<)SBw>K(MQaEfTFl>l
 RH'ns%ҭsp%®g_:5]ap'A*Y8(U֠ve@TV`"gp汬亃<&Ϗ=A~hJ2nJO06(l,XY,b߬b	GU>C}hd
JȚj#T5Tl 
hsPI՜kUn8T(ݙUD^C׾	CꀏҜE(aVRACcLdPŏTnfXq`Z]Rf%AL%-͑Rѓ*y% [	e|Eڌ3GNg)qTl@u놃</bi9;|8YQbhguhMԀn@Pt9cfP}_(R|֠D;8ua8]9F/^^cPg"Lš"Ul(tVL%^T.\t2T'CR.}6OV|ll,v09"~6(pCtQ)I.@*xLЗE}D-bJ$"d<v_x1,
ڵ"c҉d
bĹuQ5<W񩉻䝒X<: 4{IԟKC⹕$̕EI'n+*+j!}l@PrMUxl._6BZ\1ݫI^{ǜp;(U|mﻓ_/^Q'᢮Rőpu=ܢs1(URsy Wg=;ͨSGی%Q．70LenZt&ȃ<ެĆlGAԟ>᦬^T;[3cRHp?v1v1v́׮.*ݥbEa(hsvpmvqiUldFzuԌl|CVzVis}%;|YMCYl+,YR޴+"64o+<qՎxxIkVRpckJ10E=07*wjiˤS{#QѳmFuhv:0QQzzu(%׾]/|?_o5ߟk>|5?<[;ac_B_#??r=x-N
0up="$I?IhLKR>$ pGM`=FU
IHɃNd
H	ԡM7slg4{8K%$3Vtr2%[{e֣d&hg4.8˱CrƕV?NZ~e E |x;qcdN 4ӴxT_oH9/m5W@v<*v;*fUml;θ=8/oax6|7 1yT`TOM*P^"x5֭⢂soLA[` B%44
	+r5
rK*p<aL3*gAMO4js-wf0+rmr'}4JT
$pI-D,#%ۀiM#z#b JI40WZ$%$} `zͦpűN?(Qit^ p< ĈjiLnv	sJR5|sV-@X5ʊArŕUESLWG빧6KVZ,hj,HCphJ.LrU0j+EAGcфd*~91Cz{r2݅!g)քJ:{WEu`]G>jdrKe,Ǵ*%Z[ҸIxֱ,m#m;sJ?@ipa4So:,FMĊo@y]6z @ԇ/
>jآ+#]pwEeriY1X5+b0mju
T#qGrv+/P;Zʿi%؇?..lo	74i&ރҎe,ij$8w#k!4ZU@+MZ&b8_#%d)Ώ)wC}OueA&ל~'C3{~{ލH- ަ*^m}gwpo6;قg)-WHxX]O8}W\Nʲ< D(eZyi-8k;k;--h@[	:c:؅/F
g%P'E8KCTSpWTHsw`[lV6wj#^BFFsIHXJ#Z(`9D<+RFr?`oT^L+<T	N(W2mD֟Rŗz}08$pѫTϽF7?aդ<RL`HIE$TS2 .g)j yDP&fR	jqXFrt}M8v}ϯi'7^}Յq[]Cvz:yPDa!t&hRˠOL
	)ɂF,aJңwTXTdLjV%&k7)˘"ե76#Ǌ/ppq+ЏBhKXN1H4R*C2I ⊊D&,э" IpǷGrHF $LS}LSc|˔eA[,Alp;4ln׻nI3pݎw|mA/mg[g)&2p U:C[HK6Q@66~c1KqCS2R}eRЌzhfԣ'=`YȦTgS92z$:g_&ٌ[%j-q 2t,8n:
.(kba9eT46)fGՎXwY`
*6&Ŷy#	*%A?U%"ڹ7.gݵGWa|=O1@@(*Ax%P=SA(6,|%wոf>/؜R;\<GIʉz:Ū|,'Zʩ"ǖOEiGB
1DJX-Vp\R!V*UΔ?u֛^:9kU~x}<]2U637θf}ĵ0rl]blYFvDI׺vϽyqR~dEYXn4ʬvukO͕wM;3Xv̕ǶEv^|lb.5.$zp0ij.P>[3[yi;p	}6IȈoO]^Ð+ݻq&ߏ)UdISvlO28W=OWLɥr5 zt(*7/Aͫi?3.F0>s;lvdN7fIoR+:͗vN= +dd܇+\:od8zЯ@.
x;iroj&Vy2A<=Lp)v]1BY,!yE%
%
9yy%
)
i`Q
%`nIjEr@
\
@WY_R105UBRbqjNf^>Xcwg<Y~>~~!N>~

:(veQv`I208RƢ_O@5%乼dt \0l<Z|#""9? ?(^VjL̼T# e>=UXRr[00:¬FU.P@9Ԃl 㑲xVo8~/}=JUѶ*t}g|;g;\NBУ\ՇB7ēnЀ *h.,4yz'p^5
H6\ظ/hE1j~8}T;m%98Z_FbBa0Ddx1 $p3$_y*Og"(сKnw^w'Q:fe^lHWeƀƿ
Ip)"5(,H{V9k-iJit00V<)pԟxvgxv 7z7d>`zd8+'?x2lcrMĲ3gUR29rNdZ!U%)JWUCc].QSVZ9zN-^ȼI駑P%B\Ed%QZ*j#B[	>05/-Zgay3i7KDˡ;F6fcq5D&ͨ~-/-]ڕs,r:72qty6Gp0>&q{	BC	Cgq$yVsccRG3O6X$B<8:Am10QF\3^މm79L֧PxCv4vzS\QUA]ixFɷa!;,`P*QU'GzmAW7ݕB^Lýa)-0]Q_4[{/TZS{Dykdgh˖B.ipetc,+n^nw݌Z/M<(M3wJf[q`K-Vz!fig-(zoӲf͆KuP7ZsI-]lbeEqv-驋?\R_pC\+za6yc>O^NOKL?B@N?xXn8}Wҗ$pn؇[DD#Ӣ"mE-Iqΐ/kk 1dgΜp@S3%Fc{>;6ZF5蘤N%<"K3,ƯM>sH`|D*f	A&a(R6A,'y*XR!89>%i7,TFDu7A~EWYʵ.B3`9 l
R)$S%F5rhLqRmf
"z,vpNk?^yAoA+|V82vm)M"ra($XEe8Wz9W)&&a?E;;1K#GJ9xʏ\x/dR%%I	2rnðbg"Z$ְգ*eLx4BK%oP.^	L8އGP?4J*26`191!i'MĹH-"M0Olpb'Qm#'Wvw: MdqZ$>h]2Eqv́.|yóDApdmm)PѨ"Ef"2;WP|'3t,MkRuA*en܆kszPgS@&6%nq\µ1t6-q902>YvAu,bJSܕ%V%~ =MPCPrmUmtu͎(/^+
Tye:vq׭vVL¦PbM_`~G-K)wvX{EE~}y,h>:}IǍ]=vB]X4BĄx|O8Ox&Ƀp~o#jkq*bX%"6Nakv946;5皊[ϞeO.	U&U:dtϣ-"moN9SlR=7 Vu\j^*\A	0p6}_NxnnYYA+
4n@gUK`Yҳ_fҍP}*8fIWuOw 1SxDEcAYJ/wg-:(VZH!UԐ.{`y!)؜qhY92s7$fq=hXF{϶G6-Su<_em6?ZxՖYa0LDƞWt3k5s{洴GJF ub]9fm]:J|mn(Ԟ\{Qվ:wd?MX
M3?Q~fG9RZtUV#]Eեq_.n6:k\a`Wxd	`Pز|sY蕎T'1U^X@mb+Y6',m4w/ԟqd`چ?T!߫}/Ltr-\|k6%~~&qz}AmS_$oh4~sI;#+xYms8_I
MvN+4}[]1byճoryJ"|2Uq??~INK:cW1Xn۸dŤbV5eioՕ
EFc\pX]:|EEIR:'PdpI<a]E,Wg$ipWSa\V2HQXN	UWkTG3TnbIR;] tuy0)I-y *#5%gbf`(&R|T- 5CkH!yoa\8w-7p!|ܞ8N^k=*/ћca ɜE|#0-tD|eE) (&)WTBESw4̉U|9wBn".w+Y!IDsFb67
a tʹ<"BȞU(g:{(T<_A\:`Afej(ᣂsȈF,/om)hNsXxռWO$ыpej`g';tZA;{:<Ҿb-F(9<)%+;O#||B.;+SVPUyL%gT*_6z2 18h|=%R#ɜej↚pCGӍ}f[8ɟy*oG4rgo(	zT[GtHZۛǣA&[nJ	(q<I%bna3crKˆVw7 $uAJX F{Ze<@QB	`:
I@]	^i'ۿdj sV6C,Byor\+,nTj<|A2?qhnqp/'NPs/I: +Fm T"3xbEttG$Ur#gW@$Y¾m}!<q}oE`ix/ B[ߎqKXe*.V{FVZ=j*Ś2Wo4C>ݻ",DXOM-Z}Y8,? / =}C(#0'@<c訇@_ǻ
 - Ü=KV:1x72SU3\׋N^rakp^vKBz  KbWs/@x=Růtőj[7 bsĖSf
|-H6@j$ 7	_8r >k"l<wi]$p9q-<yP#&\]4sAts>hlBOdzRho[z'"* IEr!%J}a:N:H3:I7(p'fQGXҵN7-#CrRn7|F2B+޿b*n{#|ϨQ lPPhKF	Iaz]_5-ge1>IʋgR@Gc~1T\r~"&QB-)YƸY# }O8	Ls3|"Iˌ˭RCLj$G%כM#}4!'<+$lwr=5λQQ	>,Xg㼽͓afc=)ETt2C(ԡI(hpćM|p\ߘ`)A"}I(؛hZRnL=86DTԆ'?;t6{Vw?=,xYRH}+I96a/l
V@ؔ%BKc{YՌ0N*3T*0FݧO7{2b4pã?`S.DqA:ns&U<"yzXo|2!Ђdb&RC8
"#i)Dr%~*)793!O4.kjM&32Tνݷ*MRcAElP6iI"5@ɡX(AW8 b5¾'U NtׇvO4#cg9E0m}W 20tTyAPU c2L6"G1c-G,2p+/wBEbH:V~<UhLi?aDe8aF/ENScccG	λU Feyxe.І5fqZv{P"!?>ڸCkKO%b|V,a66hg*b3DYP\$Y|+%LX_!9N}qnNOW_{L |E%EұHȏ/(K
E?{^`^4E.,$yz틯|EN>є$UD%K!-߰ݴELQ:ᩆ$`5f"ThIKed o%UrةnMv2,cϲݙ["R'2A^ɍͱɣst/no8llÃՍ)ED"}Fz&(}IBp?Ri&R91g?JIʖ;R/.r$xKY 4ƲW04h	T%ifK(jVy}vo7(lvbN]һ -yZzm>ztRS/8E0-k|=K6_١q_bWm(jG_U+'~)Vͺ&^i}>.C:!n|&V\L<	Ē_@X
{1ޥk1Q,/y/V5Vg+ubh?sKi,Ũ.NJȵAcn4P\Ӧ~1s޶-F7=˂#֒K2i<6
b<otb6AL$Em*aрdʴ86Q\tBY4|r/#|uM'}mc:c94vͮ`m0غ);IDGL*~k3N[±"x0jv)VX4W8xj}{&S9Z9)݀	(wzwYsY8:Z"JTSE&ם%HwaebCeAj҆k~;
NC;8l_y4ŲfO~jKQ6뺚'I,ۺ<YvfOQewsw?Դ,)i=nt49ZZ$2'3^ʳrC $I<]JXVsKjWKmYf[j[GG,,ɸM\c=Lq˽>#y^H+*&%_VmJ*iEޱw&CE`(P&_06	Ok|=/,yzb-<[pi0nJ㉹IDJZ̓Z;迮QxXmOFίq_8:pGЩNV^wf@JH`e=/<3;;BG㉁-%rNDtMtWrc(+0n"|4oZ+-d~j{2Q2VA.!)~!Y
0맱ba|il0gPd^AQĘ]=Nf;Ri-]'(])Z
AE,D)TƊ;#	T	#qL̔)Nfbai8A5þ7!ܸ^ ts{#/#c"@u $DDZ>.٘XqcDPp	MY0&3Ȅa.E{{Cc#JP!2$}kH?	V^"r@sCiROmJXd}YU-\~>^mhԝ"TLU@ˣ<uv1T:b6<`"rleZ[aj>#$5wrgo{#w8^0/^.6AeDt&k)-B2EEZjH
jgy,Gkj$*"ETL=d q,:mt%{MUp;Ftŀy['I=k@-,_7˕7=pzP1冶Z@lh.MxQ*
ͷ:]*Uϟ;eX*"K"I;XTOZfC
X.,U1/GJn= wؠz.mFn4'	 =)(Z	73YZPdej%	Ksedau-s-F5$:HJhTk!E<ц=i%d VxXdiZ9'SAC5B"x,pR666Χ:41fӌֆo.sN8475MCnX
'Dp>28\YKd'df>Ɨюu'JxX04g8wU|{CѮyCl.HEeuWq1;J!oqJ[t4/??B?/kOgCҖ-sz7lI[ikznoUkM8^2¶
m INAj10Ng<ZF 『$kͭU~B}nVg	?gxYr8}Wt1/I>ngp[a<-@cye9ʿoK6wAġ*lV/,^p:
8/J9$O'8VjrtD		 AL	[~
'EpUr@%U*M,X
3o&m4$@}lԋ[Q0~6Hx8	1~oOP9ZB)5'0VGOF!Iߔrx /FP7B7p
M{H3MTlqo@ּ*]ö4`9Ёc00e@mZ[0?6@1Cc.#@TIڄlAREԛ'#bg4YM` ̈́tF'ԥYR1y`8.N|""gNS2FiD$Dȴ?5*+ҙǞ	]I(i)B:_ #FcZ2 b mDC*5}6C5M1uo^tX7CǴ݁h&J7p[gO)&4 g"6{ڈpbEg26(q&G~Ҩϳ$
xmvELAH|*!LaVC,j.10pI^,Ar'zi-1ϧ$"	7q""TV87e!.#:'$/#,qI`+G 8Vf/["Ҳc(3P~:musupO 'Y
$1.>pT/eW.jˋԅzXUj}jټ1wnGe7m	ꮗR\ݥ{2^R,顗:C-W%/KPYc#O6ӕ_I̠S#ur;Fu~MuU2k&ۋ;:7S}2v՞Fxa;[Y7C4=_X44,KӼ5m/ۨAq?l,c& zQ-@"H4fT< (V壏jr40>fFr	--d@u}fkU_X2@fl8E\qߪzrIYjU1˛{%Hĳ1Cd.P7ty:fN_d-̌4PWHTaJvS.¥W9
Yi=$ŋ<gbUND>S99Hb(%G\WI/O$yIERF6̳}zb4(Iq_l.;НgltCa􇗲RLzZ4پMn?6Ixt<D:#*;8Ϫ-k\}h.U~+6CBzDQ2Tg lͬjV)kd7㔘Ich*6?MK=hEjj|5{."*7j9#Iv?ҹn4?~+ޡ^/c/2QxY[o8~ϯ җpNvXLE[n:R )-/-67!ACȷ>l&Dw򚌲|+r~{Or[d̞x`p@*)I%ILbi/	ɳ\ߒtfY-I3E
ɀdFD:O8MSRb|+idsEa99<-	UWJf3Za&WY*v]nzH&%Px%4":Q! t)|S
\t9 2[\*`V j4%V@XW'B}; OF;vBsiB,aasdƂcI,j鲠KF)hDr&\U%#Jz2zHXeK93sa" }\p0H,I	EpXZ%BRMHkfz/\wkJͤ7\uy݋	H"WlVis%1[eF辿 ֽ#kA>Tl9,efʈ$J#p9OI$z#W\/ yZŞ؞Ya;7̂M՟ۋZv&df(O
.wA.Gϋ,A`kxL R-,R>4%|-#>KYfŌxY.11eµ\"K0~oPۜښl F!LA.bA!8Ȝm4ndNc|}&!1 3Ї"x E^p`D#$tD.ƪ='{΂{q?Z	Z[<v*}BsN&BDTJ]?tbb[~w%Bv}	l&v׸P k	݂uYZ=&.^&fktyV!`/^aKѭhn@gv6+ZJ}OxR\JEu c{v1#lw܅xQ1C/5 @1xoJ]
9+yi%Po4Is(<τzkev;>(mȚP^eviڷsCkPڔImQS2|)tre׷勃l'lmoW M2]kT7¡KPY 	f0$!vŴHyIUv5u>< .JIV9hMA:ʨF2Աq -VͰ|#փs8B~eBOr/4ICz(|ezɱ#uR>Yew"ۄ*z;<lʢgWl,c'Zfw>+_헥 ) $b^.&eYQ!fZ:QVAvU&.uU;Jxc*]ȗUAwtţ!Dl4u*ϝ~Z"T!G(x= a^$A=B*&`'߶GFExg.(LzDVY^յӝ:\nG0)%UZd4B;ZZ;
|͚s@m_*m1SK*u4B#idQw^B{\jO'={HSόjZW\uYkTz	b&ޥ=$UGe{p4~7#S;2xW<[B{3'})Op=g8T9D!@rv{P/fD5+Gr(z=^qS{[\PZ0>=#gYV**)4&S*[</V#[<Ȳ"O!t7)tҽUY;#>֣Y6d9Fzokz+}BuH2;A~ױQG|;4*г__@^sj0Dm^Y	S,VWؼ0oTHZtG{0R}E`7#T42n3 '{'#0UʄxUwR#o/D?`.n5VxSdf[Y{k=oP	̅ԈSLz_AxBUO,Q-u*rYoNvu0?ӫ>5uӝ#+ښ<^<4L>d.YVBD>i>D'.9P88ZAf*EVHGГ~z61(+l'9suwM4{$dƾsA'R+wh\@+V'0z&:u:7y]~9J*49oT~سd@vQq@[۟=qZBB13;rŞ >9U"ZYӭ4~^-!cզ:ª>L{e:x`_ruu/_'ݶhxT[O0~8*/]vd"I9IkؙPc7ИĤUj>d+xV<-tlHL3ZKD
!hYAag_Pi.Lxf{փ:5TF[\@!LPCQ9-U*1}cN'گw?fa/Hph%j~"y%QIjͶ B3Ҋ*nXO@lBSrm; [~dGA%5JOeQb	E|"p@JxU6Mu0A| ;IłW kbݱ5Z^ZT׶7̸?|Y"4],\+ٵUt
j!\qh*.@mM
+6*V8.wTs;./`:QCD5S=Er&KNDBk͌&-57|vŗyD(
,H/a/,HetJ$Koi, ;(DMI6'kihN"9l?G{(J^1P1CQ1yC.-;d,OXՔzhd-;cց3^[yp`r59SVpI; ?ᜟ,{hDpDכ8I).H_m`X;UF0јדpEo/BJmzX|g9~n
x<YsH=vfىZQTk,՚ͬ{vm++/tyqF.H_"rn%#qgb@CŧpMbfV(>WrCYr%9>&֋ɚnE$!Ypb~DK,o;~ã@d<&0yDq
|?Hh"ͦK]/X^:rԑE3aaH|KDYt:tCe^!ћG]vH-y|G$@j%ohrA q;AN:OIo<k6kɝ6w 4ԠX'I
}f5w%#K.pD|yZ@8|#K{|!˳!/Զ#oxOi#X̆;BH_%B28[- 	Y$ʾFhks5R"X@'V-"za[[.zmhQ0bXܜ;<vױ㈇x$S|]ezS^5Gj*1ծfO썇ȼ=Yh\ˉmF~
#X~.^{ 4-߉CwC!ozoȷk~IDlQطbVh& KcHT27
gb"g h3VV"DSu
\F$#ל9B 'FC/@l~&nmzFODRXȜ.8,($+ `4/Ӧ&a <yKw=fTM> ~ 0Qp)@ÈQW#Ү+f4TG ';[/q|A(pSO	a*xs[`0_f]?fpoRE8#9k4TE}>OOA9{!BÂC)SY!acc7J1z @E[K-
00Ԗ@vkx~KxR}"#F%hwTЌ," )20 Ǣ)DwfZUɧBKad1,:
>TahiQ ĩ1(o#EzBr ^+!~$jE18|0pef:)&]4Q9>!xa!skS( E%9͍}SdKضy>D5o3XpL{RNǀ3	`Ԭ5B5 ?ǀ({q n2UL?R
pwlkylfy2"G^HR{"$z\>7\YMKf: a
Nuj
t<-9LH'4=]zI]h#_7_NߋǳaVba9ЧzEͯW?(u	1 l3t@ .OOabR\ӡ2(*Pq8AAe]0$Y-|d
<_nVLDK1>#Q;xăUV.m%t,"0G& #ɣ9z[ 7
سVXI-m6a/TX3pߎ}Ql6}DI@(-wA|VSpYUi9-`j v@iNq	s`Uϻ[2e1ZW _SOZ;wc=-	-ͤB̓&eAe!0T% JxMO$Sb4u%d΢cXߒhkE^1T~8.9rVCq-hQOq+ts)0VmIi߼]=<]2g+
f v
V!e$ϒ.?ד*W|0
`=Ɋ0DNV ] <"`sQ3rYxx~8G+]X(+|+La;$(9FX턄*cFabví= QS'^*}sE.V@gDm4:ξ]Q7SwH]y7uD4aJIݠ9fFE Ymd \yoɶNuD\\E(2-m?WXKl`h">zĦZ˲ℸ!*=2BBǢTS2zJ9@6aӁ\=lv/fN}+!`T2ɴԆCukŨ&eiH>!BaqD >>*P266`p
vfܥ]CƆNCHj(@nOĪںd;2}ݤ6fV	<	f^3y`t-,@OܽpxffCS뛽YrDi	aOGɘq%(MZuF	N9x;=s9lKIʅ<-@aWf wl+pgZhY"El6<VEr)ʲV*eY&>8`P
O<:Yo=<bj,ɶ%t?鏋"I!zpáR:ΑT .jADAM@v#H0@0?bIy
ܷK{ԞO8!ME/+5GbR&p@s½ Ti.mqf+l>A
N?rSUW[Gv!GrW4z:P#= 
ođ%ʁl٭fsT;i }TRAך8>TIq>PxΖpxa;>>7dG}21LSzƅC{|"CrYYiUXȓw.@8/0sj=E@|42K=%KD.6n2BA,g&É:<y܎߾'25k~SsAK'EּBh^:85(-5
0E,K"F|us򉁔>N"`m1kڭWmr~kd"ͽDjoϥqV3$I)?`>o
SHmlA'
10/Y04rE:^"f+YqU
pi,Ԑ?`yʿ NhP+n15;dAcxÓ?u(@u꧇(iT925J-B^UQ@x6QeG;&X.>nRN;>?WQTEJR&'"EŦ|G?̓'vƮox[G"a֊.x=dF⮖ol;82x"`	)E>]#J(,;ҷl萼ͣy3Uce5/WS|/e5&2p4@3=7梂tqqxڿ͊[+r|
`4E*+s FfV51SXYNV>h	}%u"ц
d8)qˀr,4-vENG^C6Wy^+񢯧kL:x|MC;P)J3`M95fCj_bƾ]UUFA&TZ\. G^Hג1uUGbvK:)}QKVM:+LaNg?sY)uiDZ-;~Ó,wL1O;N#]ȗPzwo{x`<_Yzi ԼxI"tY}hNc[kBwWwBŝR:ao"jH5[kDgҪKfK{{<b֓XBVu*U5o^N{+}4xy\J&ཹv{";JBy$}Vuo8IH̆8u#9cMY+_W͌	 ȿw3 H'XB^Dw0yU\jrA΂M8MgP_QQbդIE7T1B$y@U7w+T5R)Ujlq摸5c@uQ~6&(V*˯@#J4(?4i`H1(TlOsPMgK*JݫZ\پ$S>ZU=٪%V=rL: UZmW։OWy%z[,RdcTbJZ+9UMlIk%^!~5
F=`^2d`װr^r bt/⻇"PCրmtJEz﬋!ӆ봢7^ӧd>--Mei}KŗiJt,O>~j=ӵ*5axP]O;9vlufu74Mr|u#z<FPo/(;[uٿq_\ 6h$KWf	Gs=y%\a]e~(/;+9%8\^:yAoxYmoH_JB/'N^$JRO^*[!]clp	/SsH-=33;O9ih!xH=#o.~#:g،jUQ^;$Gc	#𑾩OL\TP4}uzv)]P(0xL|0\)Cip9W'Ef<Q),/?/HQƟR|>QmpMq=0qc5A5.D.agAhFS:'B:)F%W<WI,|5!c%B̖&yic@)nAAF}~HF~ZImYCׅnH@>XV0aODLdc|aL#rZ8N蘑1G$brcd5=	+PQ~#yE=OID޲p:HW_Ҡ_93HULb$?	]bCIbi,@\ѩ
sT`6)Q +^m(@<k yg|삞ui|̰;ѡ.Cc"viDXirWIMZ+\@ĳZvjۍo]{M7TnxCU9FAo/'XqE!b*@T9벟F"d _9r
W N"JX*(2M\Ղkn]hՒ@kZ@wZr3RȘNn\<'13D)bF[Vԋ4ܶd@sj]@a YڷWMZ/ 3Gj`r(D	 ؛g#!URҹ4w:;>ڭިK$o:euoިљyn1 6%ۙWTZBl#lct$S!	h(S"L.Z8,\sz&o-G"f2m`XN	X426J	O±!Zu*sڬgi X;EVZf|n7FUdֈ׿f11RI@d3	.ř7x(H=	n;,5T[0s%uB12q'L}=8ےЉZcYCk8:Ok`Yn&\nVcHBTayK=zK#j%&k=}j-PhpvK0=4XpGh=M{vEJlNx 0.ۊC؜DT3kP\pz\my6CJpg2j3zcxDQ3@|Y%_D1Q`-*6$_TFܧ]hyjԹ5d`| BaƤ2@xVI1O_#DHY*/+a>U,J<!P+.9~z\=k43ðoi;ʪFꅏ*krh˂2d?q3f< on"R`b1UTv=˹!x{qnC"/JPB.uw;nWk5ǔ1tZs7pi󥖎q/H*ZcH2wVzVsc["V8{vanڎi9U.E93t{{]<ޥNPK9dVkvm>I~=:9^}Egٽ<x}rF?N#Vl%Kgkix"*bA (Igt\0(Q6\-LOߦo's㮶X308a֔G-,g㳙vf3%3+s
oZ{G/7oClݵqcn`7iVa9ԽYٖ+X<bJ^&<n+m?h<Oe~fsdGߟ:/]86}cY[,zk+ jj^1\0xV`9`czY~Y 3	"\ f:7}cnz7>\#c04:Io7Fe럴yا+ 0-&1arZsk
Ksks{<VdwcHU 0ucf@%օ}	0g]xzeI9;w	GCמxSӐ=j_2@kL+Ͻf842b_r [X|y$-dWQ؈քG(8|_LᘱX|9ֵgz[@׵9eg# m}X1umhmϟo9P`nL__~1twɷ-~ pzW1	+v&o~09	ite}	 t1x-sf<D$+Ft!8z*V=⠔~ɛt>Ja~S3u(#7
Zgbr$w=]Yu8>'}d!_̀~qopXeN]
]@1݌MAM-;"M8aU4 4$2?`9npf0ʅc5ȟ%_d/\S236AL,J]`yqNt'3hƽI7
*Y,?@굾;cA'ZZNIe8:g0ts9`mVoYyu{WBpe>,=̅e=\wXS0=66 o~Vd0 ZmV'u;|ml>8\tNWS)XEkR.wQ^AN(ȶJ){Ay~^,?f܍?Ϗ9gΐ֓);dI?@kKxf1E^8g'}+u;hn&*	8:}vǩOnȪ3)mns$/'n{It4q?Δq)zbff:5}Ŕ=tr~u'A!53F*\M&S#trlЋc)&8N6wm)`Y$;t` #-pY`Kwm8l攐%`l(Mk,-2yǈ E[(<!KwCoIӷ%LsSy|`^=NE+vִR3$RI|b_~88DxJ;]X[dg)	S3WОvcezm3(MޝwtCW8*Nʘ{Mm,ێb)XϧXΪq\5jrZH,/w4Ih3+c<A/mӹ@M)48DvNEItfswnҹ`ҍy7xSgpas
z&3UW;K](j ,=1RY5:Q4|wQR9owQEUܜM9opkV?v9x\UFVuPT*bfR
-Qa؟z,\FaW9u5(0]ܤ<iǔn}$uMSCj]Z?߀z-ŵAL[!ӥf}6Gt1^˸m/ֵͭͯmwv]ܦ$F"cEwSW J[.2#t !@>t~8*M=*tfZ3!#c.RaOC`4*;:ŋB/1zBPu)>Zq 
d:9DgY}CF>X~uydw
+r=(sz4jhA(l
٧<K!x3-?y&gBNU]IwԁX?xja{Kxd[\9&Ve۹5m+U~3)tpsaw4]Cf338uۣnw[Ўd/O;JX~c+@iY+{}14IO/uߌc@x[q띜ڌq)nӆ
o\ocz\){3~hOl?89afVNxv̩np{*	Ig<$V17F5;c"N{DFZLQ鍓Λ|EsmMG"KGN|hN~Z<M"4oM.u*t.F=~tUU
_-ѰoQ޶G3Q_ۿv_8//IOJ\Wz
^s;-smDlx!k#!nӧK\Wu̅k\`<>0
y5hH,;c4N1'p0'SN	,ޡq]b:X))kZ1RSִcZLCMVYwњV/%<	0{#<N3<Lp*}]hx{Uk)~<t06Á ]|wNXy%C1gɕ3Sx&RmLbjO2g>QKs[,(1(
pRI5̨m^;wc	ZF;I,Fpi!"@(yHiPD6u %i@,f2ii3CgI=yx3X(tW$1qw4.ҍ4Z;QMԒ\0$DקE`t҂ri+dln.mtJռQY%0TD$'Ӏeb+{opڑIS<poy,X{mܚZ׊ȌL$TGɹd
Lx
2wGkgMbZ卋DTc\|swJuipnQ /e%n~sp"zNIaj$XylFQa@/[$qk@jzan E,8:db%rRyp#qLg`tI	<HY'Q $&SʅNagҦ|9tǞiLfҷO:ۂȰDS[r q1eU:Caan`tBSP9X55.yZ#7HSP+.u*	鉿e}&Ekmbt".R=3`%k.`=PJыW$R,G=BjhӡkFe`-% B 8O>,X0G3ChPv+r3#ܴ_06j+TVpL5lk_ViF2t-x.SwKZT&1ҀؔOLYS䦢tAAvk7+D#)	+ã:X<&L^#
17u;	YVϚ6I(hۃPMF4HrTiQau.Ӆ2e-IJ` DHbOV@3kb K ¢!&c1]sZ7lWڮKK+nXҀHTp1YcF1r7\ӊJn<SJ~ˈXh$m	[-%oS 9~ʻVzgr+$J6-u@E}yYNP`FTHCsڷ,Bn{K80S?E~D)&Q#VATdMef5퍹u&ETYth)lPkt*BrySdkPWù㮝nv	w0-6?Uyqgx8 U5'η#P`<JII*Pq3^y,V52׌XwaVAgXBQY;R/2B5%@,IڴZvthcY)Ҡ"}!\f`&ɥoʢP)BsPH"ᤃut+H/m+z߁};2O84Av`8pIEhz6Õj%mÕF8&S\I5P+ϱO]clma˻P&Q}Y8_vJY*.l r.I,`9H0cPw`UUr-aa/՗JHkZ}qUC}r>uTMGOh	]cz^RBpܩilxwxtm[@Mܸy*7
,QThM	{;ȸcE}on9S9&8`uD){Rw>ql.2qtp/fcjcEƾP/I}!U}"H.0VͻQf;dl&k4^Z{{p=\[봺:N#õDz)<<VǒN,eC564ON+l0z٣Xu,Y`םծD?<-YA입^cEڶsliY?E+{Ft$#-Pԣ98a8R5w/^YY @[j*Cwd<sJD솳uّTLٕI{LSO0zOXX.:x;/]ALWb1Q_"Oӈ]LCP1kg<}(ϽZts,""S]E1m9p=b(>$A`xNoRu  t#+__%
>q+fU[aQ x<#>`䵙XZ?Ǳ9.9i(<F$]މ
Ms5 AOD.`=w~2!J61ol&V.R%CbޘkQW;/6,X*|,\)E<~2R5̙{x_LRG!"B_Q5mxdԉa}1Cp)Y;tlQ{UXtq{a]#A[6p7&P$V6	8ޣwD?[%pkD͖ESـ_*ZbRH#ˡ.x
"ͮഁqwjJZMC{lF6.*:a;!ͳklC`N蘆Ӭ.陂b<\x8kqK%&F1mߪ(ף65}⇽J0ho"vbr37:"sG1lΟV3E1{+[>?+8~uFns%qқKlt>@b+	R;K#15긕@mKfU9b~;Q#;vV$!5?2xJ;:9ֶeq$g`9LGO8cD0#2'V|̑0rրt"!}0An	ݑZ^:;X1X~i,EawJN]OܸLHْHBooWv%˔˟&FK\AX)]!42wDe,DPN|^#Y@vШ/X<~BV@Vs]pPp )aMF?4Q
2/F'pEB"֯PhA8xHEA~%HRNZ)_q>ʋB*{;ܺJQtWPYI="2	<#	0c=6<iR ZPӴJejIdKq*?Ȏ2;H6o,'_-'?2ڱRrUI7ܽnKyS`gљqFQglj/u񒓢RYO#OW^g*Qe\Bmut{مN9X%=XY2&{qY7֊v$̙d\}:uNX>b 'XOAuK-87nHN:NIQ-B[}3&@O#zw~Q$䇑zpAdTC49laG3U\}*]I
jJH٘Dv~s(*g!qvLPo$h6r&h8)3,`dx#^E.US?@Ŵbja@sGΆ^5*q,?Foi?'4}c	讵k*~_Ijҝw{:!xznbp(Km7?CD~TP5eX+[%T,0?,Vܒ>[GsNAbA0Uh.<<VqZ!h!-Xo`ڜ@W<Lc=YPHZb+_1?g N{RCQh	X$ě0 G+pΚ<5(pqv A*t	rz={BQԎ&,M#WQSl_}XLO*qZr8~v.EIT_Q9LP<,cMP#㌢퐤f1$iGLhF F `j0`_pԅ7b3Wڻуm2yʧ.S昞GoQO*lTe	xp9a&kZ롁ݐ䆍5AhD'i_"I,=wXjhEI%yCs>R8M Aw瘺ܪ*`$ZM*&(fDa7Ɍo%3F6uH}8ebsZκ8li0@ [Z%Uŷ8<5LGktj/
I@:F3e~{M/W޲ I6q݄D!3$E@IDclChCiM]ؠ]	<we.y符YWs_Ո5I,3'-}b5dom1' HjhcnZygL6[hOMs>D{Ph>^s^՛#]Q;ҵqxwH;+7Bd1}$ӑNw˽솰'%m}QvБ1@"}|Qj!96\@Wh{HIGƕ6ӫ1]`FX$6s?8l SRԐ%%~:ub88G䟃?ś7d'OZQu[\qT敦ٱkI:WKJŐ̢}YcIy(8wFJ?uMو@j<T$)/*u|֬,lGKޅʸr^__axnH+_s16!sB
P-HwG镱SNq??Iu&0LR7{b5~}`k;2r=a[
B,i*}Msz9A!!0^nTڞ`*<8yR=|/~_BuYH]:e-1͉PneOa`/O	eCI҈R/rG(D")v
0h葫&!
S{KMȤCΗZ9'	&)MByiɍ`v5]5OXXKw+ gx_7\<UzʚAΟr*V<:Y^&i,r:O4/E,=p3)ת~A'ާ1K$ 3ϙr!PcII.x!sMDԮ	cZ&@*{tG嬵;4*:u.ϿC}^`.#uad4)튤K~g,`: t|^ևJ	$zvQ-}Z;V@V,Wp$hIilz,+QT4Ú2#)	N~\Yx2a_ѐO/Dg1dx*lC!Ynop:-X}"k1.ffi&.jxqqI:+C-uZ5|-SA`6<=ٖdJ}f)Gva7QQ>G_-(!+(1@~bByC$dE)XSKy:;FBcKxvIim
I=vb;FD]R<Ҫ0Ě2xmEկ$&>6E	HmWG0Rb)a93jKh>aM-##,K`7Y%D.1⡈%va^U&+;=J`(#a!Uh
TŵˤWޏZ^
26SS)ܜ"veUܒUx1wFF!#;arS0y"9VQ7vӨ!Qqkɰ($hNNbL깎$^m80["%+@;t|
zqk4#3eW	W`K_/n3AZUϧpj@zfhD@D_3w]U4w|?lw.u^Aѹ3?HI/sĥ;:)zGmkSS*c7zVdE]k9kjdKޫ7Ӽ:$+=`,썠ly>PKHqHDƾڤAA5".eM}q`;BqFṧFk*D.>%%O18mZ7
TOG;BU\/'lʼ\JHF8̓6sGƈ:# HbL*i2:֚p7"D.F]krq&OPIyQ}7T^6qx^9,~>*wJM@6.X|o$LOI]vxK#G툁']B[G]{SC#?'()R,U9%sa29NFaˍK9FTG9d\k72`{,`$za7yg4?
iW؛9\Νe)V#C#{Xt0"zU&48?ùuw}uejtNu>^QM{:6fESD>oZ D%$##-lN?_4Z(|fEj
yqG[_:;P#9k2;YgJ}YgL&ލN00$3rjw-raE#9r&]k0b}=Y!}{Ia6H&zMeLo)73s7Z*/hj-Zl}FaG:J_P'vMz׫mS5բJ`1dI*q{ۈl6TlQxnCd_UfE6Bղ71(#0tPW;4cS9k	{6֎5wR]y.
_W>&fp|xGx&(-}R0PD<Շ_]A;&`י@ʹ-M@ha}bz!2.+S4-_aB&=Z,ᑸ_m0.l%h"N/[__Ҩy/V<r0;aó`cz3蠳9q$.E9T&sh5ZVc`6rL!U
܀S3LMotx|;j4C5w8xљZ{w4:CKeubUaڶmoJ7lƭ\_Az8R7~c9c͹]/
|.
Vƚà,:TUxLM'53E\_OB~fek۔!_Cugj˩7Vt,I<mAu4Z5FDemQ綻jW֢`xMkݳOZ%hd*/GRTa[q},UaX@;ɽLa2NQh|t աS050z)QCX3t"J\nP$WWk٭m rcrKA-y|ʶ-:2I\DF4zNĜ*j`n	+t8@䁨&j|9퀸mFqMi$|HUҘ,M#ܶt=w<X+v sQxN%(肯KfK%tZyqO \Ҩ胯KOJ 4lmM-V1NzUg bx\U?RRSNGvu)MZ{DJkb2Y(Go[vCLČ~ǥU\c,WVXVn3^BO0@P؃E^<kINm'lL֎	cd,?0Ws|Fh"	}z!vsb%Jz "Z
O#44zcCcpuF}j_5jQc{ScWUX^ٱlRW(]s:^\RB.KlT#U2M?`j%箏UQl,YLM͊|c`"~*ojTdcdbJE^4B5PH;@3h~ߵ>#Z
fscĵz7fEjCN{awӮ@RՀYZ$D,V-"jDf@[?e$UN	=JUI*^DFzDz_D+RR!ER-]iLqft-v:¬ml%4ЙsMM[,Oka(mL޺kaYm̐o,I*>p'2}?dެx۠o.,ĉ)01s|hZde-D(i$3KGFOؙG4;0SI'
4SS{g~=PcFNkc Fhsj3S\31k&,69]y𽐬ģ-Q?!]%L{cn}C㓫]!EsǶf2GdB$-PD a:+ KAKjK:֧8%>$}|jVLPݸǪhyl)}
B>R{4NڗWg@xq&
)m_VfsnM j\IPEIq0I굤pְf9j/vqZG97B%g\٧4ΐ${AD/vjMY}&u "죡l&eYHDX4*%ЪZ2|JkLVG'3wF=C,G>%M5:ӹ5vT="vUirX6sLLL#V2j+-
{e"Ozha?u/g$ypR@qMO-gZX)b@d|"bhGʰT:Yl(H%Ɖ1X)R'|b]r5cXZV!iʃ	Yu؁N9f|]"oK˞i'eoVVj  j4|!7HugJ|]}dmGmGiU>je[,nɎQ<F	e/'Aˣ󽑓_pxD{9@Ըrj6jP8v	)맣W&_
B>RC<EAVyDH!CtVz^ttaQ+s3C١__yNFx̿\=Udط1`~r2n4hאZy!N0lbe,l&Ȟk4Awx D1VC0绸oD|来,<XNRYWK=ESiܲYZgk&{bp~9c_2G
Շ5=,jS8xNzBݢ-llX?BOvך5#t
xk+b>ЛR1vA諑6 nXݎV	{x8QpBx||qdShv}owƽArA&hwUSbD8ק{#M4BDʽmԭ*uL7f<obOdi
RcH1ީ/ \).ȂO"vSR1"~kgte}_|֛?b儯ӫN'?>
3l/x[{&/'7RR,./LNQH-K+)VH,JU(HU(J,	d$(''M	e/KqtیvMN+>9>Zh䋙~\ƾC<&G*+H)?h I WMfr,;Şi1F&WwUx0M(39Kx4aN[i7y+nO0}Ǚy?H`ʁLS N3JLV!"dA*q:vj.$&f<7SxrBդ<z06׭em;p)9պ*{d&_XVt@),)85E!?oZl
i
yNOlUq)'iOpŪ
)7vvma ;p:x1 6only can>"Г x}ַrsx&fly9
ɉyؼ7wu7 > xuKSa9:ۜMWΡ#JQ:CkTm6,ô~2𩎗]of&@gbPa/Aq_9|}9w|5,(+8"'	<oMNZ SQHۘDhǢ77+bJ1xּBAʅxRA⏃&W޼c`xͺTPt)ʊ..maPMB[jM${zh6ZhjwCJN*J>drc{K>*bȀvF,tg
ru=C󖗌<DMWNOO֩x,5TAW֏_)E ǇpZpY
o؉IR_'5Y7AAzarvzt/opo{az3V_%H͑䖘#
Cג*oWBa3vArJ>w1Pg؞UZ/[0BG,qkU`>&cU'y15=|8.)[2vXdBmZ|bImDSko+C㲰*C;#3#3Zv@DE!u6MyC༩\nn	)Y1C;.}#fy>dhk20b*@t#.,cw`@On.J4+&:3&r4CJ9hXo2VxuOU3<\K 65dy
u-]ZP
.,t
jiW4m[DaHX50D#;@l/s=s{0m\| a[hMګ-е;Hfv' a쇒q[)6bQho_To63Tث̸>ʋGpks^`R
FkcMy\yMuXmQZ&r0P6>%TDΫV&PR4۳1{]=dL6Xb0A2+1HDm24Տ3º&oN<ﰅ7Ұɷ4TFtٴPr1~**V,W!
F5es1>%jp׽p%=XE(/VjZ+V1}7BB\<@s#QgoW|րm%~(V؈tߩǹwq_TzRИ߄siӴ؋3-64&ѥ󘘙Ӯ:y}Zd/[PԽ}Hp .pl?6wBLeG}lpkɡ%1q(XPeЁոzdNF%刟N<9qo&(/vRv<6/qosB_WBq0qjÌ?gP'ιG{B<0Ux/PD!YJ@&nG9d!Tb//!~(dդV2
c^.u{i9RV'X]6],]"+ezaqZ^qVts2پՐ6}߸N	1@6ΝHl?$YyG!<'t)'Qeia_$S}ͼn2u|IsmaFSNL;++%x},&?8`,׼*f5 <w8Sxi\&ro8쀴dļU1W0~*u mFJxuSmL[em~ ڗ`\TB)ɖ	]WǊ9́:[ZVm[14АX*&,.Kw6iLD[Xb4Ѹ ?y99i/SbP w	KNzҋR.*S0=ϗ|CAR̿v/VwoÞv5i,bw'sq}C!Yr5y@[Q˅cБ(`vG BMx.#Ac?p5p>v7uņԮƗT0\VL8U<ډsS+QBoLm'm_|R.kQ԰ZZ1M_KգmB_ٔy8+x\S[G![iہ<nonxq'	&'Gߥ<Fj!YD2&2ኚx͆צoe'?	#DzE.g6TL#8v_ѨCVyG>Toom{%\/Qc
1? u|qÎ
g. u5%ܮoIMJ1
P۔	S|DrTùlLҍTR_S~ՕU+<FecHψ;|"wWj`Ucr
sz5ܙ!-I뎸ݨNV 8ִGC($g<3ŔB\{WbQ`ti>&s/s9D鱂!T/p"i$	4@-y.ג#>W<Z:rK	JOfq%±7vst'+5r]Qr%!u&:a;S@:xK 
 
 
!R*}	j& {9ɷ (C!K l~fx[2?pl>,tvyb A
xveq\\
 TZZW2d1\or}ט̫˱qǙ	s01) Z{BQxveq]Ɠkd}^c.-}ʂԔԴ&Pq#f&*1lxx{ 6 =Hknwf\
2q9l_1AE/`W-xbbd홐EEXߐcUhS: /D<xMLAǳKŠT/>BL^<`1ZIуn$evڃg$rz8	pESO]zy{wG*[YPۆ";z%"@TѮ2۫ֆMz֮JñVVo/ˎ:iB49
^ECSs2EsXVjP<q / 9_TjۍO"T"l@xdl23n#stJئaq9؜b[ق̢Ddg2?kNxVsB'SQuicLiSǞ.r\XC6-X%!PM06OMF}'-&\.0Wv]'L/ۈZ_Z<܉w3,egON}OEDV_k;;cr528bdQ+[dfT]{?dCfX#fg,d4ʴgq-f?cqbȘ	p#x|eq)q2) Mqxvne7S>mY̼Ԣ)dd+%攦*&V*$*+d$T̴ԢԼT\Iyj*D<_( $5E!B!9?(%3/$X<&78U lЦ"dqrQj*{BjJzdA}mP\};ޣ{#^6w  2xvQ&߿-˚WZ4y=z=bĜTJTb< Z
+)OM+(D($d%+g@*䃭RR ڔX,N.JMeSHMIO՛,/39Op~{wo$w  9%'nxvQ]/p0M`Sw&P	0%'DP.4y'f&u͓ߖe+I-OBHFfBYbNiBnbBRBNjqBIFbHUHLKK-JKNʕBKRJRS"R2KR3jrKS
q)h) mKM,K')Mԗu'oc?y=7jn{eeFQq$~seE_c%؋wf\Ko+.`ϖb<Ja]1F	2LhӁo1~C(Ωx_ tHxvCˆx7pl$2J&߿-˚WZ4y=z=bĜTJTb< Z
+)OM+(D($d%+g@*䃭RR ڔX,N.JMeSHMIO՛,/39Op~{wo$wMVf ҔcYx= _p
1(J1p	lI%K-%x=N1TPB	Ҵ 6z6klOtSǠy}zۇqdV7TmwK@9q}aBl9SZDAEΠeР	<9OA|(wUD(<W?πAHYb d\BMв7j
7۱b#jE|
JE/1) rBrX֑ǘ/`tG&mf(m?N~^7iޯSz{wEy>IIx* 1(J111q TTT)xc&۳6&F^d,l	̜y13#PKjV L4(nIxy#׸6vx <nbxyC׸6^5ų87Z!7:dt6K9{NOU(K)MU,V/QH,KIL
榦d&T*))d(d*W*d楥E*JsJtlq
99@ђҢ<.-IsOӳVp[\h2K2sJK2s2K*'ott|'ÈqrW4Zxf&Kѣћ3vw G?Jx ]0@/#
F8n,x󆫼 7>lxe p<בevent contains a6&	; returns׮SuuI_Copar*4`x%,'lťn*37 x[Ʋacd31
M=(=,c" 
Gx[Ʋ%,'lL 
.<x]RSA--h!ju6.+q52λI7fdؽ/ {IH^q{3l}}S^#'&$?2NPI'6!G5nSd0n2R|8^hZEs
iTXGTQS(#F40S6	
PYh檜Z|ؙa0^1W>
OFc#,	ڀڔ+jF&y5^Վ@N#5N/a}ߦ9bE-<<|}ܖkw:^-7Ńwc\Dڒ
vv7iҏuc)=R97T	y4Tt,q:Ze"bLlQޓle_Pmq4Nqusè g2xSkPUoY`]X.-.`lPPLhC
Bv۾] LHJ}j4j^FBif)3
Z+N6pjo{\Y:!pI1ya@y$*#1&x&$QSBl[#ФdObyJlǝ$9 )RtnGENwӺƼD_rhh|M*D[EgG	"Wj3M]44(p~!'h&6hmL8-J(v$P) oAZ(<ڑS"qnmL>?Ρ(.OTsn_O/U}@/+'_v;9]g՜!襠#'g!EZΰ~F2	zӜ_R̡!o6%]f?Bu;σK|C#2ewy1V"ou 5Q\<N}n'kaklX9kM"]l'[#iR_sڎe1̃zbG͉(*TaOGxVz#JΎzH<=7f`I.av ZzSx.dovNX`Id1jUdݦs6XXї w1jhK@x(m"_n*1LΙVҗ؉H(Tk9F2biLK;"yZ,L|Xni,{1  \2mXR͟ کB@A5{>Ĳ!u y^bdv-WT>ZbIoz9k]3ys/3(b auWyߢycV^s(|rMܡC:J]T1~3=KD Wl"ߎʱZ
C<aGТEXbЅ"ՠ6^qƛ_?p[nKh	-siIZx[i/Xk'd g$x{3T@_KK91/95GWRp(@]}luj''lw7 %txㆬbĜbĢTԔɽD7;|awulY <(xZKl\!:-K_4d=T'ERaI*̒Rk/wֻKL`$sh/z)j=(>>n-^rDQ.>1k';~׹HLy	gͪGVv:`~Q2.VQܐ<F|'݉.	}vʟw~%x[]j8Gg~c _;hy"VʨHtd.b$=V+ɡଯr	.|G>Qh*7;t"<Άx& DBK*	/D輗(ũj뒥/Prp*m$5׀z&oR_n&^]z/93"aJ~Q(+h"].-hQRMN̼P%˪%hP<'LxW2ZDtndS3OPHOcu)oDZe'K{9jr*˒VjL,䮹o`%Y52{G3VL\XSj>	emxw5e9&''(V~Ӯ+"EsjDfV;Lp<_u$>o/tlTI3"/͊[>)JD$
WO,':؅VP*4"D';.ѧGO+p!)d`Gʛ7F'.t%|id
bUnT[\|JYoa_wGj@&u(!"GL{RD'zFPTr
"GPq|^nc]6}{W%z)rrle{pIY= oK_/ߤL~PÁMUcj?&E=oOߠvZ?6O=?e  edoc]Я{&WzN;=*m/@≰v0y+i_]Pc1UDrp>:s.=DwJªfC.i`IcHfXU5JJM#imvA<hS$]*۫0x@LIkETrB5ܗʸLt Iy^Ej\BXX܍$,7Uj0z#/29ЂşďTL/×jȧ槧l:v@Ց=0+KZBJApP	]H!Z^Y&kmϜp>k4'¸l$)q%{?'oA9ːٶ7u[u/sr`Q(EJE4(Ȼ`#X$8,5&6s)pNhˇ	DtI%"4]<Ju~#'eLE*5	9۵<7@߿X"L8aK|b{L f,*DЉ^&S`](_>dtӿY>yCSRe~1?<dMBǡ'!s{1z4>_	Yjx5xc2Y9Br
D/*s@6 ъWh0#6~Cwk|3#$("Y:QiKzy:9 LkV_NMqj+()+46٣!J=0JOc1h.IA.ʰdoP'R>UǍ䘓r̓lY84MK^U'lXYUlM',e`	:A6c0i׌sRL<|La4D\;z촾Z`,lc}Wt+_MBg'ޯ="R,ج3=gӬT8"֡Rht1\`Vܬv-ԡehbj9־L@QPcOr\X6yQaĒؐF^gp.n&+8/ү_#OJZ`Ŕ 5ݬU6]6}ka.ۦ,#mb,6	Gvc8,1ˎдf-؁M85\$:Q7sVظHĆhjDVPD 1@wz%{<eTU!UnyYL7oߟhM:6N:g:SkZ~C7ؠ>U,b4+J5""U <ݫ8U^Ǹ9ݣ3AHꓙ4{ݰ6#FabETѝbXdԑi\xw39Js(il61+P6l[NgV'[Ţiʙˊ [ү7/,z힮-98`Iu-3gFkm góx4M&bX~^ rD8.juGT:Mwega#{Vob:0s+%66KypY]m]ߑ߸H4KbB"ɘT͜QLk'14>4)-&ykڸ@LI󙃍4KBf`Tk1yYvVxB'N3V)ye>tB~1kOh{=l:;8$aMw@ ).iZO[E	SD0~bF2+D<ϮzW:ﺵ_ZeBI&K81l:ʰƧ\h}+UGf}*u3L6ȦiaffDsN9M6R6 Lf|agاv


=4O0nx& }9"[!_r8E*x;I6FRl2f\


mW3<(u;lnf0>gSkB 9`2=a2K41Ms, #wt@3̋s6Om	dn8=|7,l[[µw sGDIxiobnsO^ - v	~lxi/Xk'd gg	x;I6FRl2f\


mW3<(u;lnf0>gSkB 9`2=a2K41Ms, #w-g=FͽK% '2oxkδӆGoah諤|S'g/"Vg[x77,5bˀ8ז3C9ғlz2\`uLpΊ`f-K`y'5 <eexkδӆGoac4|KDH}3`d-ٔg9G<`G<6L*>9{1:pK2 εPx7s]-bc!`whzwM NW	x[ioX@_KD+h)8$e)dV*A%&cVҟ*``*BV$d)$*)d*T+$楀Et+2Ҋs';6O_ gQD9N~H|yo !J+
(&j)͞+Y%dvrmVqA᜜/wZ"69Mrl͒3-gq7ϋf  !|V07fFLpNryfg|Z*0y]-B_~V߽k* ʴBxi/Xk'd6lGQ9KU6W28'?	=3lŹZ϶27_o`E,`z319V387JoY;.yc7BNWN&!{ gORqx[i7"&o<A-y]'ؼXi#Ӄ	|{XB*tJx7K-5bs
38o|pTjP6"_
U]Sf]vx[i7"&o<A-y]'ؼXi#Ӄ	|{XB* BA#Gx[i7ߖL.>7fFLpNryfg|Z*0y]-B_~V߽k* N? x[i7]f'rl/zgE{l^t)Q<	 =Wx[1,X\&<Aw'ؼXi#Ӄ	|޻0|] k~hx[/,X&Kle\`ɳYN|&ۺkNƹ9@Oe3>nڛVqx).I,)-VOSOLL-RN,VH+ϝ,(%R_((U $5J(GG1DG!8#3H)x䗧( MIs˳OZQZ''s)h)d+嗀f>9OtWsM֝þRf27n2.o v<e~x[i7"fql wv6/V6"G~sw`> Hx0 uv from"tEv
NOT_ENOUGHfx)xq/3T@_KK91/95GWRp(@]}luj''l(m2IV'(qݼ #H
V Q#7x{ㆣ
y9
ťE%
٩
ey@friQS9曥\ xi/Xk'd gg!xi/3O*6Yv)GU!ͲK% (Lxi/i݌mڭhyO
#T$<eN>5osDO̩I mvSij $wxi/i݌mڭhyO
#T$<eN>5osDO̩I mvS&-, !@5 &	5xki$f)6NV.6GGW1ZLS;*ʜcT'+1o~wb֞IML@jM2zM^̵`
#9{ :/5xkδӆGoa
 c12xUkLSgWҫhE
f2@eF煋8-Ve:t<1'ItyJ8]`1mm8-}m){y;3ߊ돉Ώ@jD#%=xO)|^5z5.0q"`"Ra(i&ج% Ӣ@_I1~;a3RvO<-FquAeެd,X_ȧ1ֶ@%J؛8'p2.Mo',!p+Mn`:
-=
 ,N7M}
J%cde\N5O&	fłݗֶṯ"V{Crץ	,wD[s"'>eydO!+h HF,P1IXma4hu{G-Յl>EM:Z C<%ZxjEC%
7JazOZ9TA
6$/	闛B4'	uŃrW
5KkΪ@~s66mje}1%]KaؒO!-r+f1ݜÃ]I~?a;$&IUύߩ}DFu{K^ډϣm2"_ 7LʌG-?t=FO0$VйgYg9{/oWMN%99_ ''#	0ΏEv߇olԋh24jw`EaXD/*3꿬|ħA[,Mx%45'&RV:rtĠ
$^{oC~^rIT2Bj+e
[)1ĵhhaWfTڛR$NR;躙_o#2svc96JfYLmbݬLQZh[
RTMmuBnj"9Izj XֻSR(k(BUWXN飅$LDUw4F?ը<EjR+TpVŠeD/XеO#+87ɫ=*ْ2L1ǔpXGfQ8s\hSdܜH[ΘNC/PYVʅLȹ886t}ܔ+kϑ}\B\6P1{˻_Gu@qk_wEZ}G){͐gȂ p\$xROOA.)A1`0O(F8fvmw23mI 1ЛWgP?ef{{yЗŦ۽u46mJ|%T 9mwW
]Ux
-Fjp<FTnX!D"uiu6dT?>(O'蠴#=*@}#b3JƦ.ZLPIݶ?џٱսh)fѳYǓLaܦ>4ҧzE<W}?V):UPwQSyƁ
pY9KV:Vr^FE@I^윙\ɉ_K%>qC3ayb˯7acKqCDu'
C26PߞQ9.dԗa0LcG'W2íChS!iili0Z VAGU`RY y$B16jUT-${TNu?~xWБ62EDIGJxv1&+MkMKLIUH,VH-K+Q((/HLO,ϛ<QUtNV/ 3RK2RJ fL~|oq^GY SK&7F6RLA(?'G$@!9?/-3bf~LTԜ.6,N&^#G7O'.p{jI0ؘ`)?L^ jlx, E@2wO
.MmL;vAu
xt1Q"X%63|]|fp&g'sBxt1M7Mkgb4PdlM3-~?2M>.>)|o̟ p=x?i<"
x6==@9sEeCz,x[/e'3,0# \Jx[q?3k''lfOʜ\/*y^; 
Gxqo'Ym@_KD+h)8$e)dV*A%řyɩ
f`Xؽ]#lL6g/ d$xѽK@p*"?*ڊ/*bXCI`n5M4^jr::8ȋ*t7Gg'/uRy׏iCg[=;];zBq#H9>=B`땍$S场W6MI]hy-)XcdJT CȊrR5H2<T+՜ȮzhOPW뻢hm4IJIZRY\L8݅@_$IV"T\2+6|ͪ5p"=ұaɢAmbeByQx4R$d0o%s|=)˾÷)jҘS#KxMKA)<Fah/"e/H^(;ht+1W?D&	KNͮZVkav<߿=ߌM}	UUD75+rSUzqI	"LA j{\S3͜讆In"q
]1"Hn)jB1,PؿHk)qS܆W5ɁxE19D!
K"17I^cX=9ŢGTlBZtsnug҇&G#-*?sC{B5'n`W3(ڰD҂̛̦&m!IS~Q2R!dÆ嬉2	=IS<FB{a	Co4_u6eZ_X\)9n-^PMv ӯd:xqogXK2J*R&s0M6HUH,VH-K+Q 2rs 31385/$9/UV@D_KK̼ͤb8ֻ{1iQZXߨ pTS\\FsMrb^rj!8;9 2᪝\h!YB"rr\pM1ARRp(`h6OBlW/#E Vu2xUoGQ$NcG-Er	M:9 
r$P{2;kǕK{j詇=c# An#~^vv}o>ޱpđwYxWnr`Ze3S ]W[JV\Y-狅Be8{O&9*o=d%[&JZx7ZfʚѹWBqx,J%ԘUYVs	mO 1VlT)PR4\k:s2
m=}k}0jYnOG,~%7-b)~GO3z,$|

ҋ3=7G3T4`bSÎ.-XLB,~(.}|:9qpo3D)^tcQ L}t=km.W1hٞrlW,ɔhk-aϒ5ؒ:HWn]fGYXzUϚtAQsrr<x:(Tf5fmRYIӭIōwd-
7KqddXwo׋7!^lj/;wUO)ۢ.	MDVaH)hR
\=TS$+q=<9"ACwևX\ss˹m)g\5^"	֍iFK=Gn)'$;1Ѻl8vO1*+\d]qKO /mxۿizr={\'7HJoq q	#x]JA1EEHccP$`%M!wG@NGPC(hW	"!N303l~`n#.!%G2udQ4;G+	;P<) 1zl&-q&0gQPFȹz`*2+V򀠉7PJ]{7LDd*ə\m|tnׂחA&W#.;K*s	xxtedy60N!ĳY^ȝqr3e8'w<UtLqid@JUn &c8ɯlgNjV@*D4?w$iI,Y'GeX  d;NxQkP֕2"ڵڙkCH5MFvJzc>@7[C0osܓW~X6䫔Jг'.4EWR3=q1wCx>)!i[вu8JnݻoMՑ)s~Ydmɼ((XRjot MO$'X5$4B(J$%˱Z)Zm{GԴ6<b{slZ4a@IyAv@]#/5/KlQSGiwv7l)Xc[Ǆڏ\N+(R}S?x}H25D!/yW6ollK<'*VO3쀦XAPzEkQc`-tỴ`?.MCqkQ҃O
1ᗅrQt&85iW͢vUղ"3Kr"*lv>oI-Aнo-
iq,_Dj)}CxtqR\dy6fENfa UxeJA9F0CPe%H{%B(X]r+cw(>Ė`-6{l1~cyߢcm5hFNj?AF֐:'9cRǃξecYh-	2Y3%QR9[V
hQԭyKV%	Y:50zkI7KQH=֊X$,NXav<ΐ`8J>ZV~@9)C-ӊLM_ί/ Z#nd?Nl	xz]Y%6o`u USx;#k93KC=7` 
N6{xKApknET0Ek%M5Tl4eLtiH;{GxrfU֔f̼ϼF;1~li&PӫCR.K:V{NItd$C1c
_WQ_JJAR_RA=կВgB갯:*FG}Ga_7vԷp>s
O[=/:֛dO?R^Ɏb3&j#_7
LjV͏>	̺A:܈`;;.lz*' ]5
M?©2o?%w44{^3,L[Y*,Yډv|.QȶZ)z>Iӑz}>)0KxŘMo@(J"zK $V A|B{0,~U{ǀj<ٙz􎮟jͤn*:C:;oob4x3N.D?t-WK@וZ7My=}}[Xz8>zyۑ]dxupN8o/BB T[+1%N,eJӯw20 ]cjǄ[K#ӹCrb=0r)⼯`'C1k(*Okձ+NÅR뱞ȵwtYCP ,4;?	wv#k0"|)s9Ȭq&SFr^EBZŨVү"S8juM̐<=ig1w"W_Ug*"$Ks4?xV"u]CƚBp~PꁊW&=98`n CHп9H%*C0(zCSR{<epȟ-~CDxc[	FX}C&Iֵk>8#c;l01i5 IQaݍDIL;ެNà}
H<,1ubQ,.{lrPVM@+]^dB̄Wn39EHb[y+)m1qʠ݅*bwgr9n@Gߎ~!tx[acaD6_KYyH<c{(Kcb7(/Ak\鲂 ldj;x[aG.q&X kjPx[aoW+ Xhjex[a}MoC8W, 6lzx[aTu~E<qx67q}`|Gqr7oX96s
32:Og7;`b ({x7bSB%583/-?=%5-4*:yD\<
KKͅq/ OgDHKO,(`:).ܲ(v&*q) A-W, @Prx7kD65$`(-0]n9&t'+1q ,jCxkdCW, ,j4xKs&X MiIxq=&X )x9Gw''8&fg{O6օHOŇK!79݄]!XP_ĥ \ (X,OxyB}<x67q}`|Gqs,&Fɱ@`f]L jdxN0$&r啉*2߅1IYI${}	y:&sN4vMv	 ^7<只*8ۼSg+6QmQ8O;RJqfC߁Xt/ܶp@*8żov4
	QvnR@l&=ğIrIg{y<Ӗq+]T$\h?P{AH̀DJ+-r`
mk<l9;,u0gY&E;˥V֏o@ۂ_p𥑓YK0|15zvA
!rݍEFNrA 頮?\5Ox؇JaPE8V2GVd?2<3֗GlAF)}6K!"/ۼGtD{}_ l1x{کaf	޳ #Hx{Tu;?krerN>ipcNX`.& 	wx{UqzK'KgVN>
0L-gtȗ&srKJ2sr@{8&;R HKqL.ϛP 4U(lד	3q ,6 x[-?[aX&?Iž9& 	j9x[-?K|n&X 8jNx[-?Sh8'W, C8cxJ@`th]*QVŕȘ$a03Iq;(_Gi*Nbv	9sYX|i7n)q4  BS'&49uq3ܛ;Rkn`"7l/O!p<Taz-Lrќ=Lc3U NF"Wwg7mg$j15SZ؟uK}xǄ96iJBh#,=\NS⩚shuRFbDrU[E/mtDnj;x[)u"&&X @ jx[aR`:W, x[)*Ac	f5Fɉl*R%99y)>%yi>%2B&Pĥ \  dx[)PpKvFɉl*R%99y)>%yi>%2B&Pĥ \ \xT}s g^VjrIH~irkYj^䃜9-88FxTݭ!9?/-3}AP⒢ʀ`歜'rm^ʭȞWY
RyYV  xT${j^IpfU䃜e !
3 x{ګa3\lŹp  =aj=x{\hC*'W, !xۭ>Wcd6>~ϼ䒐ײԼ&pnL r5x1WcC c| A/29''$5/xC

0 :x[}~͛9 5UxSs
d6>ϼ̒ĜҢܑbyũ%R96d \AixZuzNԒ̼̼rϔɅ\P܂ĒԐʂT0D8(5pJs܋K'pBD2]@6tc *pxVao6_qp#Y?uUdHvJl.T#ߑc`wg#8_;;x:	t>ኖJ
^K
LJ=jW4d\hEb5PVP~P,C`8-@ CMln?vu%v>T48GæR Xp"H&[ZR|!L3ILɔ,)b5aca:1 7*^-K/ZA
q~MeGt;yC+MHn^*SR--X
,;TrZ*
	fDG?e{f;yIR]U6enN8&6qe.xTYĒhءLoe	(ڦpj
BS6>Ꭓsx)V腻TGL6k\3D˒H҆+)ir2(6B++Ÿc<y
f$rɛ%OXWF[A6̻|o\%Av5:)`+qH4]YCKF\ [!۲Z7hWYYVuwD4:G':(9"ɏt{r`xᠢflu0g S34\8UW`ù}C&sX;*], 4G$dF_[ş-շ?WN;=(4Ҧ[ ~
#TSc#@=<0AҴZzE=3]d;1'ǉޙs/I'
6N::\/0AI"Haq8oG
koNxiaEMSBk\㥇YZ,dL{ȲR5M<>Gq2f~<C69xr.dC꺷qG/,0g" VIN;t/>WhOO&'CEmcx&Eh#˘/ +'lx"Yh,ͳYo2 '0xUJQWBfSzCnE3y%,$-	Q;ڳԜ;U;\;|;kݍ!+TG`Tl4
{bBXy~%dIUlW͒H-{}G fAҧ8*(&ʹ!U	1`ՖRPR9^[Zy c i6/X`9y>^@8W;;tQ\b/e0ď%QtBqt$	+W[*ux"IhCLVɉ%E0?3.3DL!Q8(55O "5'7@!?M$#U 593-35E!% 'RKAklVS	 PZT`d~ϬɫY0%Mt!Ҫ iĢ\)
!@<]`CJRnOC	v/Щ %%1$4";_ˡ((P0݉MLvWSf&vmd?vSdnǕꜲ]9 6sxx$FhCӬ
řyɩ
FF#YMQMb7e *x$tJpCsbAIiQ*C8f͗1W;$秤*L`Selʦ41,^pjqqf~d>f(Qlx[#(fU6vf 8kjx;%8Yp6o KQl x;%+!uV=f hx&Uh#c)' @,xUJQU q=6yhC*`D4#fRD$h!itttӓԜ{v;}真̸KIC^3߳
`;j-J̚S
ƷPf!KǀЎQ'y?b|ynjVf@coyaR+@;()At.ASTJ`5W<M 9L{.>
P VgS%"o}Kkפ: p~?5杨}¿wؓvLK^#zڜex&4W`#(kO=tԧ+g~OOv/}0=߻ɎާzjLyڿD"iL#/4X؏hˋK6yc˹^llgS7 ur)h)8$%*dV&(<tg=O͂4#> $7/$,/6.l풧KZiM/Oy:{̂ԒҢ< >o@Á>em/hK'{'Cj̼l8XjA DZCx&UhCd79&g1]lb
 ~#?x&+!iv.OeY~^ :B}b5Ag b+oA:;3HE6n5,4y&K.´pk[ρT߁U=CAbQbBAfEjob5mG!G| HCnb_bIfY*\kCv}c!ԒҢ<Lw.￵~mx^rTIPTT;de+L^!^< INqx<ƿAa<c8g'/]9bߓ/޴욭G@)qb!Hzz3Y_xqi".^Vm?cߧ.\̥PXPYXevl[ѵG| H.7/$,uەrz˲ϭmӹ[w߀VZRZ} v9v9[ά9z}<rjL@f 9xZ_O8$Y;_RF'XG
.n,NaZMhm_ҺEk׎$N},P _?")Rt(鸚ofwg]۬
S{Coo1&AZQe-h\l 2!F~jjï߼TLFYCAqQ"6fxCjfuОl'(zx\ոU6@l5뢤ÁebEOp7AZ41<;#`535q=|/Wdx 4*j蚠6ٓ:HPA4E
Ri"An4a1L$:\6h@cGΈ,.h05&Oxӌ_hsmmK]p6IX}Z<_9Qzs9&pr}# [#÷}b 6u;"[M~g90g86cYSu)t'H!Iz$ޤzD,C]Q[8-L	"4n##>H`ކT!H_|FO:,hDqx;] }~#	m4vKmJrwo# M߀9by:ʔvm.{ke~k־vBF|h16	=	<Y&	b%J;{ZG=xz/?o?ysȢMl\e)!h쯂2saCLx+7gԾ 	E1m%Aa[gEݺ$,t npI\ n#O>1Uh0^)ʱ3?=,%ܧ	Eeμgm	RCmq^U݆PT:bc^-ejD$4'鱐N9I>2]Hv|ݔoNQgoqr7ɯ/4~od7_2O$}Ƣ+wRowgpEVm~SUaa9WbC닏?L~0i&69zS]{cJ-n[P}s;VWi2%!lauy.fֻԐaiS"N
qUW˲Ȉj&K.)q?$Yx3Z/[-Њ*)DǡN`^g0J<=l&x.D6ĸ/N_-]Ո}!F32+_qw[b9hqYz_hJK\[v'L΄[eєxf֢ߥ53#sd6q#Ý^l/mw+))Y!hJˌ;PʏxkZpdYɠJa],/(oic}4C'fΪ`ٞUXN;G=Jj	tik%󓜠S/#=[ܗב̈HɴȔ)b+9!̒蟧0NJc^={M,+ۅ;g[hݫS~mb1zaFww.yH3KAyp=V,א":G~^OKZŀ%)oѡ
9pުLyyΩ~q*(䅗$K2u	ҵtH_Y&[-SCG_?\N|$K9t8JV8@fO%v4X\߶"g{Z2ALz~1da[il8gQ!V8xeo"xשIښoc.fUY2ԟ2ZH~=->CgP;wƛcnͱf|a.Zxcu2fE9!Ɣ#HRjox)1;b(?d@̦*TCm@Կ.k	{D0A<olɪ,evYĽ`GZ my=DpZ(؄k?aS{?;p%(ev` ĺ3;tFRbbФ3r"+ y|CcmQE&'l%d&j [xm\v҇ML#Lˏd|04ulaI3Ql]،e~Ylj`[˘fz͖HzLjP٩1h7gImA	NC+ȳ3Q:>SM`cl-X2RM6Yϡ#H;1'VlG| W*Sot
Hjշ6NMv)?jpMP	v6j6hj>(`A{c(z^28$}diF 8xS4|H0bi*$wdljpTJ"o`LڗV8N('MUP殛:NedPE{Е7d]\1
;r>f6&%60nx$1oz6٪r)q])(V
h|\ah/'XAI[#M_rJdprNގAQނ67ϲ4RxToEKW'1$8~5EZġMR*P1Kvg]p$*ĉC\H|zכ4=}ASǫ/#/2ǤT"CQUs6Hӥe^cU;o5|CD189<%ED=ʆPR?N/^9o{yLgD0\_,=pmdrW.4IEHAT@)үN_>n1MW]$|+CƏyD*D$!_j;A=P>hcB_w2~!f
SuNRX7dË[~82nRӊln33>gDY]M͘!eKW`À1P17X`PrH1SN:F:kc.>][jqrzG![nֻ)E(A7%c%^[Qd=*d!4ԣ[9o|jsC-#$~(~<S[$	h;>CNMt9|6I?Xnp8	/p-;îRge!Hl0>}ϫf}d& ;{K	YGKv#X
h:;@HuAkNA1cL˙CSnv~\BUX*$6FvwB|@X
(|iJRUuP~}nW#-4*j}bډu>Nn5#w7rsKNpJw60<>Z*nxK&'R+L
WNrE܍C*sJ|T/FKjo_^?\nx;s*f*ͫiL(yF v`	x}VOlTWBM7I4M_6kc&ѪiZMHbs	ǶEaℨ	.8T[Mw|Nĉ"|֗[Ǐ	!?<|x/-n30tYsJVn4|6XVk5ŨJMM:"ԤD݀vbaK63t9)d%S%AhD'pK'/]P%3>f`Zz imI&aN#jpY29+HRfzZ6UV[mƮMGG7bnY8',&I91T(	oΒMjYEvMj'8,SUGca17d9rq6dH"p6Zr$)Ĕ,	W`{,]	vӭUle_znz<_|Y4(E)im#z%lK辤0R^W)h
6AG'.(E bܔށb^}H{Q0,v6mɲIRyLgQ&dKۖ#ێOKPL>ÝɗȎm8cT_MoGR6%>U`~*-dqUvw<BzH.ut=& wѲNrB~Z_^Wkckp,\wotv^.'y1r'=H9̈{~T:cD
[/j^|
KQo(Vn3W݉+~Gۿ\6fjb@jx9Qy9QYpSBOTwAf_r2;ڭH~(NtA~Ægxyr'aW./ *;sԒ&iԳ\U𱘅sP3&S!dTpB`/1>3-.wCP:ݕ_nREZ΀.Kd6ogQ{NuG	Vqmz15>a~1<<.W|
r-[_R//UweS {.SaveFcclx;s:f*ͫj *1xO[ǃJ*Xc#čhh#culiiB;BkŊiK7.ƅq3p*:g=^6Q^>[UeEwKTQ괛<}k4H/:F묽VthG+b|1lA?X;{zw$O{m;#'N}L\ϬojKԔ,Hʛ5Xxy^9#3րCkTPx1.To5ݿ+x@v	%"HBJυ'Ró92;$sOږb&"ExSpTTXXRy@쭜/G%|U兓Jj	}C\Cuv$aP\>@Łxށ#1P|jlB#3Xx?=N\й':16Kez-[oghY UeIt돛5Y8	VbLtv~~)<!")6v>KbNF.vm'ࡶq;[LvΜfI|+'V[ڻ9b<e{$
#A$9oF{c
2cZީձ8]̦"z,@Oɯ'Cxy.98!:,(DL|:#EɖB4?o)u- 	,Jj9#ôLfj39*-voTOqG5b4q2+ptG._3,.uquWW^Ɗ՛Nwr+`&f@`2qZ,m6k2ØL<
|}1w11v4)j}&;x[qCob^bzjC5dF)͋l&odd҆:\Y%'O~.6sr<+PXgel$zy4xun@EmҨHqZ4(NM<!ڻz]@'Nh%H7	x_$wv~3u>]~G9}҂N-nzoק4RD{ZW?fiNŶ>ܚвn3>a'LBmt$3IC|-q~nF!;KQ@gB<9kʀB<
 fqS6cCfle	b.b{qa{]RC(.Ku3[qJXo/>KA(QyDfhI4A
?ΰ_$u{Wڮ֮e\SՍ;Y.4ҽm}dmftT(/kk/|<aS4mI	e~_nL0w%("Ob.dHJlXwHڳ|! 	yJ5f.F|z_Flx[8qfMr 1x[8a/F
⛧  ;eNx* A%aBCaK22 X HMVVxa/83srRs&[s;89** d	͂<<" 4xfC >8 84xfC"d'͉L7N-> 
4ox2jY''9LǪyvF 'hvo& .͉|k@<ɱB=_؛c1E6x1N 5_RfqE7Jv1M)4y6?u@%>k1 ).txMLA?`?kЖ*ZD1hbh/j1&xlݤł[,+TkZeKEOxqo&&2]nݝy~)^OWބl̇TAY<Ïk^p靇]mrvB%zsmo&oB]JKԑ֍K#ݪ:aa@j<<!]ԔLJʛE|9~9#SYmceOt"i2c]2׋hBM{fgO(~NOt@11,atbD=x,.zg F&-=xO}QAM`2Z$8G٩[J*vyzn兇3Jj	}]8dI6ܙ,Zrf#p84'8c.EEꬫBj6k,q0},q=/xmĐmmAW҂]~,Y\6V0(\LzAyuip&jξs#EYV$q\Vtkw(>A"6ѱ{Zhwt:6r챘]Yh2  (L찺 Χ~SO" |D"#м@
}=WgqfzÊ7 Up{;gIU#g=|2T8D._qdC#k1St}mwSʢ2j8X/!ʋkcQa6y}POGWKUfXÔuPaXq0nצvape1FtmMRM_֢6(!8}*E 2Fjfc~a(ezU"=xToEW6朗$~4@ƎV
V\*xv/Y_1K!K%.p8F@*fw4\wo~==7<*
E|V!4O%la1Tۇ_|UH
&aU5h9@RjB>6i=|4[#r,s՛CSof"ҥ\PRKj	F&V/"اkHITB#?ܸ|<aŤy9nY@gP " 	RHBzs|@%TlbOj6B3ߞZsPtITKLgG/p~"
TN~qu|[u^kke	faR\Zc=
OFEa,Cܸef2v	M^6xPۘNZG)Hi9%zDp	$pPtc-豊ʰb.YR7s*Bs_^ˌOBMH)IT3xIvaz>gv)H, 3
8Պ{"җH|6/SAPЭIeHXtD06=VgY]$y/"B@#;ɨ}dT.=[a<Pa"mL\KJ!,p\~j	FvHʠPVNf\Z;{Bz+<VoBfT+C/:TBI"ϗOb`+bx$TZ[^AXH|ʝ}a=[~Էػ~lN]l=7 CiUkt=,ǮBV5J+9s2=xf09c^\?5H{~C;l`x=j*ͫ{5(gwx5e a	xuILa @Zt(K`A1&Db"xl4&>'0
XKNmviΒ/R6iڙv<}3#/?#d؃C:CkJI[8Scu%oڭ2~{uW+m	Qv钆Qk#GeOhR+rP\kem4c	6)$X7_!]jƞ^1,j~	(Qf B| k!d\u=̤-_v{rz"hs}`1_˛1>g,X{1cS13w gř?B	ȇL:
ټ<0sJ\|8<x*)WZFT13~o!p_ !oUJh:oǱK/ZrO-B?%	&7yq%n gI9e>hs
%<IfV2U(@mTB͢KacMݙ(/=W|?|7{ S=i=;GvYd4:92Ǘ|RK2UyTK+T/ XwuH͒1%kFx#T8&80@$ǧ03}j+(7 Uȗ.G#*է.}YmiP10S7/o#Pm\}*%,}g/oiܱ|xs3f#c*|˛c7;k kmx]mo8_Ad};	p0hyE-)7|Dɒ,v\`D3ϼh8RO':,Xq:y.^]A"$uɂ:*t[r\qQ仄pFP;iτ|tzSs%B	4@Da؇4uƝ!&kbD8r3o岅-Ƨ*ίz%0m&}="ψrxp L9xzxGx	dziHi	6	Iƥ"t, 57lJ"_z?ݢ/ݿ] umޡvw`rp`Ji!!&L$	u`k4SlA;Bs*V0J2ھB''%ɷuC6,
Që؇ES2MO#Pl'a7=4ќWJ88@ÕɼzSli80JP?ԯ>)p02nI5%$-B1 d+МaKd8rzS	(\i1B-$2&+&A _-_H g8 93wF{B+
`j_i맞1|} k
N ~row~`W!zE.5KR٩\D19		i};.V
ԐuLgՕ6=0 Yzݖ{4\'S$'I)y=f3|$b?1g	z0?zM{9բ5^~_>4q$WqlWؗyZ6hOJ2Y5<uaQ4=	ZYX)goF!j$W%u!m/jJNNSƣ> )]i녥vuZ3үTA^S:*镯}}ZǜK
XaAWSUlA<72-N||xJ.*ÀX?F729x8k{v"Q)|j1⛙[!ښEs8=B P[6[uDTcnAyaxHi&9QaW@v-x˧h>&\= xd!%X,Vap)K4gK)3:@gLQ{&P7)9#/Zir=" 10Uzҙj0N	׍yzt7yTmjgAESnFh85ZQMvI@|WȚ-K\9\ABd7'תx,h9pT ^Ʉ:2~ud^T^Tѿ^DoZB@=i[	6[Yn4~l07"+sO؉i&aq .$&	~r"ޘ>%a!kx[N)cSħVqޫfELOs	b_\˕97Tz+Q>`bؾ3ʡUևZZw6	U8ÜtQ>6SJuxIϘGPD|4&B>超D!?a"Da9:I?"y8T)uj~dcowv@7!B1pE/	Nuv9[r5 {SCnO́q~k1C;´
qĖ3qYĹ|jv8I@!9'璩Ye;wfYu(ڞf棜Q8"Fn.\[Vss9_ߎnn] i4/E{r0F(rֺ+6פLBccXygd<U@dԂQ5Jd"m;ԛow٥*ט)A/Ju	AܑG9t7h,Q˧> h4HJzSY[sH #HMjɏig2+.䙤*kDyMaƚ꼦.^	d%dcunMrݧT?ɤ纑p!!FPJ2wz:P̑ʑx16G)p'9GiLޓ&oνaKMR?B4.OK$:_rO/:%#5y-_udkU)Q
;Ooe1rZg%uhOx}Cy&ov/SMVRQaC x+)`nIF-n3STc֋kq<L,?;o9sC47zl,<lsݓxKh֤N瘯=UuT)sGiV*.JjIs/j,7fD+#@	b^3$OGj6𝗏	csamV1;#y9Tѻ=s6yhZTcwDp	DK6eva)a+Jzܪ*}!l[1w5UǡٱZX!Zalc?GY6EXZk	0K?#zk9Gֽ!_A)I*}>}ݰh
Z.ґf.dϞ|fvS}U2qŦ>t/kDUg#xmîKm''϶)0Mt&o{<d_Tpx6.ڜa\wc:t~]Zlz}G[Ћ|Lq}9UH̞hIRʣV-kE/10eE\+ ]GF'jTr|L)ޅ`x;YuʦV|nd(-}{rGL&?Wr
R:5R_oݿt.e|ne_J?:[LGr(ߥDp_GZ9~ ^KXcMUӀB"u: #6k.we0oeQ[&*  }+_%~vx;sqiƍ/'off):$oɕZ7Gk0O,9/6r?Ͷ@6{2m^`ϴYf#Ȅlwfdu)S[J! 1sx{qiX'
m>88fe2m^)KXih?̛/K1mbڼVi7U"6(L>`͘8,nfwc6zK0Ms:r$P{g/.BX&O4U|=L
,:9 ((ɍ`U<QPUMvׯl1YgdIPM&%mOb^}& c`vxWMlGV C'1!
ۡq!H.Ip ޱzם]UCOy=""Jz*qR)J=3cv0Rݙyߛ{߼}Cw7ܓ͖i{:()9%b4ƗDIKBfIR7>`$hwn	_tB"
)t!=QRHPDx*E\'FSH#׊`=E1_lGfgnIMW$QwUvC1~[Kpuh&.蒪0SkKpm~!hU# w¤u D Ki,kl)ZR BU'*ٹs%X/x%L3̽CeIz&:ᯓj]9~WT]9|+F2Y %G1z9s+&4l> \#DDn >!IjJGAjcWPv4y=в9YRiA:%ҒȂHJ2HDRI	(Å=fqpu]jcnDW <F,
a&y&bfj}]ĚF"0Y[i4hX$1\3"qAavt#{D/\o,]~}6de&rX|@7,dIӱBbǛdxXt^؀F")(c_s#\3wv5oԴ|n/zP|"NoҪ
%}.ǠJ&>'T !NO&U!_rv;ZR<Yk#~2~r6z(o~[s{TJOR{F14Ɲ$xY7- s]ƈ6dYMqmzݹ3),X䴃:љن&6~lf_+|2<us%ocZzB?PH	d`h[l6gOa*|$_P6i=4<:XzTW|m/*p=E`:xtnAӀ-%VVfUnkGα]G`ω7se5,H2Aªw{j5 wqfѓaY%v8cgN]2]ޟBsyXt3CSlØ^rvY岆e's6]a)7߰YBk2mmоvļa[~,Ľ`z'LۅvŞI/^]WچՐ˾>kjO)O߫}/
ov^o##ۤIR14KGT\;bXrXQV<a,^<d=))Fɴg.e^b2j;9Ļ:iVnmx[|qia,Y|0/xۺ"lu7_`[bL&s>cŽi}?D
Cpf,Cp΋-s&c'!,=UDU`!2{'̥z"ࡾk3s6r.䳆?O쮽d'3dߐc&.A3M2N.5{y9/9Y)0nV`,a<vl>>>2srR'7L2Y4bvc!e&\+\\&Xo>د&XX s5'ǸM0眬$5˕rd){ɢ=q@ћ	@d&Z	&(h%OTj*Fd{_+9[!@=si5?o3!=VT3?$	|ڜ"u Gbxۺq*lu7_`[bL&s>cŽi}?D
Cpf,Cp΋-s&c'!,=UDU`!2{'̥z"ࡾk3s6r.䳆?O쮽d'3dߐc&.A3M2N.5{y9/9Y)0nV 1u(AxۺC͆D,',<y"K_VJfqANbgBB*X1
"3SJ2R
5E1NBH{fg [q' KK2**nϭ$/LCQg2,41' "5j|%#rEiEA%
/
1M+,t)ȄlTӸb$S@jsRS\ *jؘ8r#Jd@RX&ˇ\Z_Z♗t^MޯxCrBLOIszo3KՓj3NANfqIj^jg^JjM&c4щ&(P̯g4^_h#y"8̝y}iאê'M>1y,V-02 fzxJ]-2;Lި-ƞ3!de&xN>`9zj'M^g>v'%M&s;NWl`?An%v=fs@֛sv>ǲ̜ĤTǢDɍ|@,
='Zo6p:u%`3'?SSpU9 &oqyqܼ>wxΙ<1 B>xW]lSe[Y7[K>qpg0.E`N{GO9~tEb1!za@#%ީ		^cܘx=m%~};w;r=<ܻ>_7k1Sk\Ank"8"
(##J	2T$(h48,{cHCǎ`#N['ۦp	<$Q=¥vi6Fw5`H 2[W2fHX	Gڛw_b%qAX֙.EC9{x˪P=61u"	֣)N2rrbNi*bE&i4ކ{4rXqjH/< cq*G@^maS|"ylBd=I0r&=7ԸXK@j.~`j5KՉXkNm7wmyZ-fgHXJ$P(IXD$_[\Z-h\SK¥욄w+QLe %)*BPߩ,
m{Τn
J(f[fS7R"rPJ y,V0]E7g櫨(Sv%#pGy{{Jg<}4= fPD(oz[W/Bwd,zzN"SBhOm'ctuE,q!Μg,~zq`ʬ2WP%媔r1UC]{t&nhrLE+7I_`P Fth0wt1ӕ=Y\V#-MDl4':-iPvw+}@" nO! H1$a&bf57,-?IjTLf:BtwdV :}s]`"V] Gӳɴ0:tb} FLU_ƪ^;Nna$/UիK$:A/XVf]eӂZҁ.ψ6V*%3exZ8BE0;nD1?_,MS}ܤa3}.QlD3*3"XƅGZu|m+Pf+Bcn)	p]=ά9ehkOK~.9*ͤqƴk䘋\5]YghK]`vmJiwçBaꨩ<bW*{QRXN7gvgiEqؠDS	ybsT^P?-1p
p'ïOoxO?CKxPP!i*6Ɇ,I'O`iL,.ILl(ٞ#T(<3$c1"PQ'w"?T8($$3?l=n{&!QfjBn=n͙|LeE%99ś7Ja\.]VZX
V/m YC#WJj^qfIKA&r]&^(Yd6oqrbNjD(RVD6;!Õ\Z_Z♗sd9u̨tf9-LP槤߬΄?S&iLՔ,.IK-KIzRG&i_Alb"=CFY$&4k&4C;k*xPӛt "_uxky!ml+A7sqGpw#8m_Hueypb$ dgʖȶ
L_ؼ_8Df9d^TOB<wm6pf+bla<}lrlޤ Qܰ<d)R2MbnFU "ko=x;siƍ+ :ijWx;siƍSClx;siYLݘW2Nc昜ty{	 WxYPP
pŊz-x
pgCn.H@@[&ՙvSglv.BX 	!1$$Gz2AlvX!}y}66v5ִ}k#Y8b~ƂTy'MJu@xŖw|^mPuw]v94;=&Nl^jֵi?A-5"TWoͣ\*޾aM3N)}?F-Y<+"TGP;겣m6JVvT"8O?{ۋP*y9+{q`Qd&!#ɾX56肻0ġF)',jCA({4+@18yPEGz9fJ@gpKC0~ 2u4ނP.:ɯ_YTh{{*2y眴]Ew'~+GmIIȥpa YfOv;bw3aA8^惏6'*J=mj짔]_Z	Cq9Pg3ݲँ4H~15ѩԽ.㵇#wt~Hxj9/z:x
J|
?UOsSStN'햇lKz;2*|8#NPeƉ{ LJt1Io	bmQ+	֊Z WYbk>Gn31I(X\642(fQDF:3U}[ԅ2u׶4ƅS
>{r~y W|#> i[)#zB=TsA^ />W-݊(<w+$%2uqԢ]@%;7;l>ʒws6앗"t)BէPlC=3&4hqB^ RVBI7p~ZnDەarUDP5R+'~o=1l2[y4a};i$t+m (OIU=(H79@XQJϐ[q9h#- "Z=s^c^v}ԣ*Swˍ7n 
Xu  +(w
0@!EYڗSnSC\-StRF"LE < }捤(@,@L.g][q(%o\߆+A=Ͳ%y楔gqxp3,n˖ĆӻݒˆrXǈ0a=*1N^q8$Ɣ3(SFWes8i>6B.{'@{ѯ[>zW*zd
ߺbV}Fef<wvDʓ@Vr"mgVk$ML{E&N@M5Lxyo3;ʡm4`Bƅp&3idՙ&hlzlC=絬 5PCZ_oSJ[cLrhk=qu)kq]ѢS9^p q12S,B9<rrFl/ʕެॗ3H	>t"eIKQ[{A[ߠogКPTYIy(	U6`MI5HK'oҵܵ%/Xgw=lP9BpOQ_k^R#0;
*G=JhXfP_8v޷LoF?TUUHξq*Kk#"Wv`t2dS,w>{hA>㴑v}77̚L㠹
yyF[N[^8{UsZ6K<pss[|f3ewkm񚆺RxmI?ZS-}~9n׆`䥼PUZ*/ֻT&ƮNܳVah%M'MuVY"Ѷ-,}mUoifȍys>ָIQg:O\h$;3RgǣwrΘwxYoPSWP5,t-b'tV݊кgJ;LY` L~ڙ~j:˛Zq!GHBDHI j ]Q.:T\{yKB({s~n#Q?%V^ۈ$.t3fܨ0;LFiTk«PB3s3gP=IM،5M<=ͭkziQz{Epu8QA0{4Djy,PD(O:{G}33tۭnQuTb~y	7"kmXفE-\GyiXGTVsӡfQ#oSz%	TF G^q|ZrYF<Hkd &=,7ƻ[J؁ޥ^ GIITS&i4b
,}8y`kSjqmD9&m
7НnU;#rА5đqc".%3C?-7i?qW^!kԭ)PPN[\-!8oqROݤ5ѭ),}nõw4T|Ixfy%Itv镤T	P1f}wM#ߪ;H2p[^RVD(̔_ml %B%x'n$'Ke{$%x
4	E$ XvhCA27^)y|6^P<7y\T)PJGy'caW@1s;ht&pbK٫d~|`jȅw2.&<A\>/M[7`q#u<ğMҺ&ii:lV8FgVԵc/=RfFJ~`@((ޡw1(䭾KUo>BdVXNz:Ҩ	iC:H	8'i=%gXN.r3zoOA
Y˩DU!#a3CU1l+|싏dsueV=;	k_:I&9^	oɬP-<e('W/sQaV80JfF9˽Cj9\VsJAD{缚ǿȵD-!޶)o>, h?< h.kg!@ VϹf1+ d1@v|U	q5OQ%G2/EY٩i%`ʗ^M;(ʹb>pzke3k:p92_6vz=Nv)^z/s./useZ,[NvK])*}cM#"ÄY6,0 ;q*,(+?.gPFrS.o"
lfF](CG=Ш׭ p9+]|o]a1)uHc66B>8m;p}m!;Q_ fgp3]%5&9NBnLUtxGW_#tp4Cڅh:37S-Jjs%Xg	gYAfwS/)"^|Arv(nɡ#{c&LS0I-֦DEPb6eeFGqX<rFl+Ζ5H	>|"e*Qk۩{ofSHTYQe)*U6bjIN
H]>#1?Ҹ˞G²!gһW@,!'`/	K1H_^A|RCc"4z,'ϝu`7ͱ#mޡ߈jjDgXe1^՝(ql}Ǫ=9ْ)&K-;N)2}äZ4_I?kiWggtإSqͯL⳨2j*㎴F03[Q[.ޮ,;Nx]SY1DrvףvQAνm`dkb
yh3kq臉vyge^bM5\PϣʂͶ
~B1Ro\c*73	jm5?ڦFY쌔yIhN~- .Wx;}qik'/J
ج0 Xxn8@EI,%l62b]"ˎ!R~phBOQ<?'doGh6ӌLb	<QcAIbbGs\Ýfh	(r)do{p)UH3%Ё6%
h84ԂFAwlbXDd0ѥF(.,cEr_#mfL)v.@7f3Ð<Q1@*+۟Й&,jRpϸI}>2NwkxRa/R\/4bD}G6wLQF0 .Pk7*y%CF:kb̜ٜ9妕I7Z "9~Ht*;pXLFK%IGFْ'H[)70I}=xxf
"tnJ@\h0Mye%2PAq[^-S=>%P 2X_I-P@Ln˜|iet7L{Pw
&O"}ɳnNqTR R+e	&n %
J_QԙҺ6,Oj!k3I-ؔTpGU}]sꅶR{`ǘxP6MuNw Z_T2))"Cqfv`Ox.Qʤ/lE'0X6Q'\	^-Wk^oWiXC/	UmN;JZHrYOX]gpy<<(hHV=jb6,KZrҔt/?)Wmp]LcוD07_i+X7 NةKJ1NpXxb>\TP@XN˔-z4E]ڜ>9<7=>ֻ}
5tQ煸3V;lї=2eٍU22cMA4gudcV8_ͳMQC*I%r9_[3tʾPOahda:BS}W:WUa;b|dSo%~z|gJFKasRRqSwk~:Y!W:5no8j>#.B^WbYGrO}\@-MvsF۫pPo^>m*N]Y#7Vse{A(~ֈ3aBt4oރ4]ះk'x3sfX. =xd9Y~
|\\ P$5xs'3Iʕd'gǧ)q) A-W, wTkoxu<%fX. kxmC23W, xks<[qyfIri Nk"xksl!@+ kk8xkshW+ NxksX`T|2@~O~brr &xxksXi!Ob5I3nmed fxkljf$ʋS2S+ 2Xx[i~1zrGGKjRiz{jIpeqIjsAihqbdy	g	Tyǂ$I9ɐ$%2HJ܊RS1`uojg^Zd	'L;K2R`(JUdf\XviQbrsbAIi(JPU*q) A-W, U4nsx[i|Cf)Iv'I٬( w:kx[iGoC83W, k/x[itc)fX. ,x`CdUq5F>⒓3s'edNׅȦW#*q) A-W, hrxmR|dqعJJ2sS'ˉBdSRK+N/-_Yĥ \\ WgUGxwCCdUq5F>⒓pėgdg+q) A-W, :o|xOc|ͼsb4>jx[opdUq|Eyey%9u',./@WR ZX. .fx6f!G4/>,5$>'?`R%X'\.! :xfxNqєԴ̼ԼĤ$ܹ3 L1 ZSxmPN@ Ĉ,Ą_!`6-MŠ+lĻȟH9L2͛73WoƑ
l7;üR
8M/L 0~2 4IOs*䂲X,R:Sjn&gI _J'ꗢ8+*%jW\gji>OTH C`ss\vRq;9E:24B7̶EhCV#7Tf$,vk&8~;DJg玍PB"#eʻ6byxۧ@cŌ9))9J\ 	'x{^gCdQv<,y%yɩ)%٤D2$ħ'&ggO/KŔjiI,K$քE"YB)%E/
I''$%&gO`R@H* M.ȌOO-O)IOyJ\ m\/x[3Ww|̒y'?`bDKMMl2A 8x{YwlLb89%K2R2R2RKjbH 3!x{fzlcKėgdeeT*q) A-W, RpAJx}ks6
VlY~lN6{%los-99Vr8Wr HpCbd%q/t7_iU<^z&
oE7q$]9;&IZYP3NVa?7G/"/,^_˯~=˪`iVU! F\8=2 ʖ$S6.	F6-Cx=+kn%o,W|	Z<wv3l1MDQs.W0(P6 \+3mq8
l^ކ@0(xZa0>.~<88B ]eɇ'go..ޟ_ovv(1Gq0)BXCg<b%xG0tQ,0`%e\ U$2.Ò=燄٬yVbrbo߳Y~7c~汘?M<Eһ@L@Գ%8V{^`@~^ynu\WO0LHLR_E#+p\XM$.3?"9)I/tO7&go>?/&;Csx70il;~y h໯ Y<?߶a|8˓w6  L㫯gi6]_T&§_쑜 }v΃d&,I@|
K@pxϟmR''On"fvx5	ӧƜyt_stB?TO&d_K%ק_IzRo(34JUQ.	*t1o"	(m?(2巓0 Ĥ.ʫi7aRCX]
 9q%k,?Ji5B"oc`Fjy$SDlD#5@q`Drxkg64˒-BP8gUVAa2Yeyi7+BLt2+EaCK$*(0I FY#9#e64͛*-q9h!eHd)$[HeOKXԸd0xrHj?	#6ܗzxx	,^;	#xZ#I񪜬^)ȽjJwi4	zr߲˨~-Sxr>((J9|}kFD2xf~KD8;U{eSZWQ~BM&]c@#0
1<ciGO3ghYn b	'gO|I.a	qind~'ƕt
0nLD9WmsQ2g .J(@!JR#C/fa*5,#ӈC/!qKȀh8*uRQj8a98r LJ)tpe$YJXf`?	0%kwxM`
&VIaZm^]Dƚ츭<քj_Ton¦IQdQU ᵈ	ic%<Eh5D2rp p5O+t EIK8IPf_,nD)&Pa-#Hn~rBt!W=29e}A#Va3[SggBYS%]1e=C:gۦ>3I<p`~' sU.n*ơ٧	`iV9eb0qՁ1LU*ˮ<*bx,Xq	`qY!1xPH;@1HaLaTJ;͐B GdA*t($nbiهdGnXfHzg<-O^A@?C_G[ Ua>nSM?42 u^X0ӦVFr
ŔmLV{SP̑FLQsI"4۬yr]ЉM;M&ƐK=X`>@BF"`䀻2jۂLཌ<:VzhoT/6(bSlB>Fc:*g7p36Ѹ?EeѤK}p=3-' WB0.t^mqUQrK8R݁l06ǊqgKM6(n!=rs&=6Y߯DJ^
PH۟bI+2Hd[j?w0SC:BN}1oGP`6CʟCٓW	,ҁogoĺlQtsD]y$x~=DsYRwd?"£`gK۳w|M7c9dEx3b){I{0(-rGNdJL"-Zʃ68Bђ&pw΁/hHe}(0h?*ofwhYN7@,6U[
lS=XA'r
d=?ƈʓ<MZ[`ZXM6ס(>N4&J'-WǱE6
L[i7
1<4(I1[U)mD2 0
U*ĬhHS:Iu@XK5>i`:n%9}
Ņfg)Y揵X"}4,	:x;7 khI-xrWe{\F	?Ӈ8%Y2kp3| ;oTF(f@Չ|,DLd#1k˫}52=+_LTmYPV\kA_њGJ:ѝq2,J9lxؐ彮zϒAe0,=|wbnA?r[P]FG)sy?|)AZj@3Vda92д;pYq|Y`1Aj?K2Fp3
Cvx-P簺U8
Z?dWYq|'#5a?h?|-zI=\`&|2rs~琤:Cǃ5@֧1mjtI~6KK^be?"ĠȃVci̯1xb30 "nL]'{POz0&!sq&)㶛%53QF.-;G7ٵ*+`zUο#5tn"^(qCk4MT+u-5Fx3	;'/O޽9OA<#\Z%ɳaZ0p,M%k|,} ЈiͿ jHց/Ց>B+BټHF@6*pP"F L|Fv,Ey-UX*?Z.OA>#0NyQ䪴i&-=;vXuw=RB6s8냠8"!YvfJD>1:'kի8}]^Fwc$SSTOz gXKx؏y/2,es&_	-CzĩvCgu0oI?)a,^׽mSw?bvZ><\cq:싉죂-pe$_֯ցy6Ý)O(o1==
g{
1+@ޮe1=ZkG|b|*ImT%E_|24q昿ȆG4`,u[ոN`yojH;N4bJcRA/!O~wY_|«I`*GY{b>#BG>i1*=zԱ:[y>olBU{31</`O|r<M{TjOJi^^;*PU5Gq`K͇ܽ/Tu\k: feS6B.
s-KuB55̔cDl>>bF횋ٓyV+C)<K4mA{ºwOBHPj+q8HOKy.f2ָ.sRdJU&4H:Id2QXM
ż5>5Je"%`
˗Xݽ6vcQŗ	8G$H4)%P}H\vEq5qF]wM\Gtg vƖgk%ô 3I*eH}K]cJTjD﷠ȅJVS1PVal4j~(\`h<[o\B3Jz'l-ͤײp2uU%ky1ԡ:[	JpS$tQrGd	Ěj.8Alv*<.)BS%$1=@p.Vs7VVxnBB!x畺ʛg땼NhRӼg_\\qhv5ZY@75W2wi$GeWtoݶ;5_!;.L	i "-5y82hb|x@ =ͪ~:7Ү?yv[(W"36xYN}6?h`DaVI^3?*WIrw. q
^<`PO)MX{^ǆ'adD>=ȕmcis!UABƌgTDbUvA0oO{$A8dƁUWnq  +芶-|*"
.d
E][WG 7СٰHkX=нSGn2\cuSYd%f2[W/j]TL^2`U*'qS8m+945F#nծ]ou7mC+Q?Zqk]n'H[;]O>fa~-=ʣ}Е'LB՗INK"H^O/r}l0x3ȳjx{+jݡ;[	`H"ʳ<_4R|t7fvyYE܈jP}Z1(3k5WOR LƜD4sFZόw,oTѳFivwD8Fn4i;d{a`)tj "%XpGFFVt$[soyvq?q3A9ty-elh1rKDJH6c%%ȑ{$$$WSB0K@D>lSclltX!10p:ȍ=]YO<@Ѩ[u8;99螁7h	|[˖GD=UUPO>K2ԷGx9<^BF-4
g"YW7~#okR`yY>@*n?u:t.Qlq;tqjCPW;a-Ve6e"r#(}%>}(Y7s@iuzmk÷AQۮ&fў?}}~(o5pN~%NԱUVx[9R)'V@E*\47^C5|?f<E~4H\?2N?ntzS^o[ޜͱXw8Psi@[ُP1K,˛-ARJz*
2p2i}qf.mQS	8MKSzd5Z/Ѝ%z0}`Uޤm2s"1J&93*]sv/@ZZ62ݭ?DB6cJ(FL		Y4ش9opgYBƗ_@;מ;QMpu:f"(9+㲘S:8Bf4eJ0cLY+8gAӓXcY^:F I5[cԷթ:@!BW5:?rQ4㹟tI+]i`ZVYsP<#8򫢴2ex{xJve$qaG#.K<U_N&lSѐ&vMm[MC[wíyu%)D暐q̲JYt<Ɖ2i!.4o/iwG?Etc3M2`ƧN]aGVOwm2T+P)-y˫ԿqEP9$9Rx;Zo\,,|9.	.C9{`jk~ǮO>1 6OKTJ؃VV
2ȝ!tޮ&>z@-"[1^ڴo<)y45Tla ut*^'61C8>[zd=cX.T`ʃ=x~	itp״٧82~QmS-ł*˘f̸,ïv ~lOm$.D<Ådo #2F[f$f\L7ϾO|owA,T=,4)D5^cJ2	wr)"I`BUn.k+Zej+rn-,#Xiǜ>Ɋr렭8I閪ךΣhr>ڥo2g/%$r{W35VLa@8ȺFm`QstQw<Ó1FV ]FJ'<|^|=P mϩ:x'xDryEAt<V5y,PiKYKM"ݓ*WTl^jcŕW>:Qߐrk$l#rѕÅ<c]tyv6Q;ѾcVle5Ұ#cTumiSyV_.5Kx,y"gJyOT#N
G50yE;eǠ{ϛ.P,p9(23}=c}O7q؇_tf4o_ae#p	fϼٿDzD`O˪{Hq7WE·"`N0yV0m(f-n}
of\oWZꝁiP$lF#3"w\Z@s626N楴U*Ȑ|Ӌ0O_~Ӽ9z]PRs.
m&;n膨o7 MWuWxt?zrtEb#5ntT)IL ^kqǇ&=L@#1$> %Ռ.(3<vV.5mY>utwݦ,;$]]7f?`NX	.}R#,9fFZPiΞsb5It{*|MAK*_`dK:[&\7~qTuuF{uXqmuxJݾ5c.V5Y΂el!K$=H^t&l-h^ң/C8Z 	ȚYk #`)ŧT2szĖ8BHRaֿ?~vj@L
⇪]x=Kսjxx]n)~/ABx++d#Y-ʀ^6W:
uA8*YqXK2	ҠX]a\SZ+rYu3uoyc:JKƵwEypbs	f5̜[<.:+K?VV
jвXA6eG!֪2c7Xv*VU}6lKX3:cƱXƄtȅHMl873b#/khX@4"R3,=<'G[ɬWhi72xUw7mRf__3XwkTJaˈʸ4TmNy:n0a-m>ۗ"o1l5o!/E,p9R޽ˢ֍1\ސP='jjPBs{{Ī=!7Q@3$dNZӆs:^B{n1U3K<bxA8U	<|r)f%V]F/W#".&DSTC<"ڹ!Ԟ||?y/?!q]=lL¨ϵ,a>1^K|y`+Ǻo.?Z;DJ0yJ54(5xS$ŠCsQq{{-uw_&	+e=81&56h7U985s+ybf.GIS3K<CozRC{8Doje\]e 3qvjp+<ip391:I:tB}	_*WJB>wtVJQ<t[[a]g>Y)9LT1qAIw$btѯIm8i!3K!6z֡iwupҷ{ G<#?Iyv=+g;y2$֯Op&&mpa
{ѩeȇZ8g΀I
NMZb!]pueG0'JR@|JHx^HCVH4P,`WEABλi,&j@fc.b1q{BCd R,97J-vA۫hMJ:W}KBCK6ڪR:tžL<`?[G)}8<n{\E23}SqUXbfZY|P#6jyYX&lë,^l1v.mZ-hZSY@2RQըa.JV=tޥ+$kDUOV:Xj{yLy+	Ea2H\#	W_ؗJ>(6  m>ⵘxmQɑmH{xWOXF˦OArI!rDX𼅍rnfk]lFVon۹xNU>48tTԯa.Cڮc"dN?Ukе륒F~0)P
`#(X*3Z	X
mH(|DU㘉3;%KX%9eik~"mR,.TnX*(57$_HZjՇg&RM9m+-lHCC<EqfEL(su:	O9F^Yʰw!I>uAEg{)j|GHIT/.X
ki\,]$iT*̏D&.bL6FSzG`7Oi&e"$\(ʪdFɨv*,՛$K5ÏȟnbKΘd*'-ƚ@R 0`rNn4cߔfWJ.u~xLTz0RT$NJBQ}Mqu4,m|GEx/$ ߅K	YTUFI]9%H+j0(y0[B8O
*u3LPPe5bM" ]gY:T2>"zo|0l[cq@sB14ĮlVCy|L̈k8!3y^QSI7x[y=ˉ<r90	ojolzj4{Kgr9G-7V}TGά 83kST'NvW#>_rvw|&RԞ'ܷD+rUssUi=t̸+Rt ?:D9qՁN1 593p8 {xzy3rb,)&{tu˸dQ@陏o5c^;-VZe
Ɍ)^48}AlK$x$&̼	C:1޵6bkt^RZ_z#6BEM*&;xoAҍr"ev2cgӝ9z Z_4Il54ֆE>.ʫpK&].} OH~vS,n/dcbjj%){K'!!
T<azl9&<`dc¨R
jLbEEIɧ*
YyZMg"h%DO6tdiwܬ2A~d޸+h秘lƫvy#s'GA{~|{#ṵݟ=bй~ؔZK5M ~?+ǜwG9b#BoC@vƋ|ݻttNQ.JѣebDC*6E'!)Gëc׳U+f@eunw8桤_nT	,%&m-#~9;m1><vtok7	5{}܏G̶=:=wo8IB(K>b}'ϕXt<)b5UezUCVu(KJps5t(}V(hͪ\Z4\״m;XWAh1b\i́p% ;(2At&`+>]L A(LǶ{+F1Ŷ尥319kȢ^Cz^#accn84ҭgmpǦS̈́_*۴7aee}bG%0b3܀*DA{)"HgS$b
Ұ*[M eJ4yȪv6捅G<C r
%+t~؁A{{&ƻbv̑8ls|@Tp ҏՉܤD4C	CB!]/j]A\6E͚kK!_	t6ÓoY3ʚWf9U2Tf(o칖Q%y6SEw孝4Z.A24GԦ_CSǅ^֐y2LgE|H6;X_S!{Z2NM=O9tK]/1{cJ2n0x'rtVwP6>>AA~|!pՐiaHGmyD"YKV$0_b,[vFuۍꩿ}j+:lȾZ"/r10֙wuFfkQ1~tfh#_KG<8]D
UM#wDh!BYٸǯcC\FXߢ`X	o¹xGLވ
8ȡ[<rz9n.;vi5mޟ,ڧZ<n\پAT飚4pgUu-TQpf$wfotUzx+ӚNtOk~Ph*xp;V^"Ibd.n*;wg>wSoK_Ûnft;mVu{=(4t/ýt3GÓ}Unj~Q󗳮1%<sI虔٧W/I!]sHl؎1Ib'-|!=2b>W}f>Yh!1_sḨ1n	*Cy3q_DR]*WQFf
<̹J^
eF-tپf8)ҹFvWoهFݦ^\> rw.1^`W@g(o5}zg%Mqk&+o3+~uU5YL~yx1/цQx#6ͷlR4\և#`aa;A.Z 1㵸+8Q٨[N0I׋::E/Jٮ33t(p<<][%4ژm~r Mu3t[8!fi5Ú[c*;vqW@HRPa0zKm+1u#n!x!Yej4<[mzWK8eabH.+[H4M>!Ⳑn+&q:"#-|t槰ls\`ܽܵU^D){7j-_u$%0C))`&%w.,T'L(Wiւҥyf l
=,FãtRi"y"=ra{ǶD&.{GQ81U1A+%-q:˛7+ǶtVh/eIXB}+'q㈢=a-%!_O;X9|\߂8+NR2ZrK!ݳtPm>mۤG]o8t?wqq>!8#8`@(RbⷄU#kc+g-oǦuQV_|fU@.;^oq6f(#5B6/oV]xhp@A	5̏cXeK]i\,tt;(̨A"!y,q7f:yGm:t 'l% EqV:SE&_TE]pYC4)ajV|	`4XD@CWQau,V%MV[sSToiD3r2	uh[VmDoP7&b7ҷf<H@LZ+HkQk#qGc)M4" p]I.NC]S]Ԛ V1c);],^TZrהg;Tas۹JEݑZJ4;Ǵʐ:h?̶׎\A(H C{1rHQu5/J	rg)cxbp6*v52 ɁmCՇR%PfS[47~^
ؕIq	zgɬ	Aosp4%	jle 3Q`r]PraeעJ{YCvWiޖ*ṟHL,ԃlW^`ѐY˃bDiz%c@~~tvpT83`iG+@iX(b'}Xxb*AB.{Ъ,&P+ykת]pslU+9nG~L9Ӧ`U26υ0ǩ;ܓQ9:`*"̧B<2PPHG:4XT M6R s1?[}TQy>7#_^[+_Cю.|mHģ[5JեY+YkPNͺz>޹6veȣge<=|^]Cc穉Ӑ-$xa.
<xQom>ah9#'IEɹk˔+XLd8
.,% GUd>}fzpC-EcP<Н)]z7ߟ!]0uPm GgE}OeڵVG)G]Jf{-ofj@:V&9Y \3RQ5Z%2DA'YmHrEջf<$qSŁKHyĆ.ќ|iоB4w#М.f"ݵ:9αX5#.wo'uK-,|{ьCÅ!G?Uomx-xǇ$eOɠzI=M0kɰ(GCY{-|4=C:zGVvVȻNҵӼɜdYyVLbPUj1xO]RX=20K,`Ya虋*TkoMsq)4sTRğ*o<܏O@*Zj<Gfcfbw5n ߇	Bw+Etqo<j6L#o(Wv.(T۱ࡤz}Sr;=C԰PwvtF!h a,}2Yb"nneHbCgԊs%}ށJ쿙]bZD1=հľmȕ"_p)h<vaILcc6)M/t(b}Dׁ߾h+_CBC|Sl?Gf8DzkLݭdhH=, <N"ŋi;ک"w)Y@hoBk ^mʯ'"_LS'W`9$6(EJ|[$yw>9\4Egwȼiq&uqMYdl>XAbx;^`ܘteoPDDpȷ1F_Ok^ONɇhõDorn$
qe9^8ѬetI{|HS#tJF}^zc:#!f*Zoޝ7Ɂ_8nND^8%Dg!oY_rw&[cO>1Dy*/mz]åtAw秮
)%ڼWH?Y. `@qYI<*L9? eT׍} Htu6?|ؗZzA0;'Z<7QŸp4fZ͐TA2k1H\ 3q(+wP[eQ̛zG!V;"\1V:RNdkf9"Q(79ѵoL5ZA$#N>2&l(-6 ~&<t;^Doxd.K5>-s#a"t&7ЂkY6$I;x~_.PM2 Ĝ_N~?r2^amX勸N0& jl=![4J\ݧ*UUMGUǪ4,8ށ*}TxI!Y8MS`Wr$i'Ԯ)Ҟ>b+5L\A
8x{G7eMqZmo} flǅX`0#4.WhI}`\^٭[s#:=@~9n<zˑp,/ժ,GeX.mF9N.31換D6L8LvB-&>5C. salyN3ʂ	16m}?9;}jjj}SHD7Y4
f4IY%d֔n@b[<69cQfy.}B#vF#y8ƪ)$M5	EWnZ=
R$'EY^D1F%#$XYfmqiHlSg#K.ưbm7pJ<
)&c%>Oa֙ctqC,[
xت-^V2F24ĳ
D*m_948.} g3? <u*iE96l$ˮ^f	ȋ09u[G?{whN&B!07y-6lռ=pq-:7.`7Mg%+P	]K3L\^ǺęE1(uu[
9A'e^dx2B</2G"mR}t)?t+֩qΛC/64Q#x ۮ'Y)t?})sXP[{X`,wq:zr>KWţo5T3PIJ}5 ?H{~<?޾ẍ́-y1?<~y3_B Y x;s[熿o`ܾ]PL Th-xX[lXRحsǖ{bê;ˎꨵi[t$%qHY`/E7Hr[C8X2lK-mˀ.9$eݬ̀-;~xԌ&+ZK	!.l4Y KI~L\M'*"2/%	X#4:Jj^V,DK-+˥3YQLiP^.H)P#Aξm,LN(S
-AjbQ8G&P5)_4=Sp\w$7XE|$T)*&ch$¢2TD(I(]*TY9BVRYPʊf	y]/®QR*Y)$Z fmOPp e5sM-HnnYB*]eRŵT	4y冓Ⱦ<AN,C*Y$]jdK")X~UH%қ)NEX*GWkQCC$1T4"AteYCɪ&FȔ42?Ϝu|PDZA(+	YjV[5ɆK9шPW4-
&.ճ[uU	b*FY_NXsblI}$Rl#4^WϕE\"-b "S#(eV񢰘^M3F/\L*Q|habX<͗	W3lFT8*쩊PHh]]9o$[z	zZk0ylZa$YR8"")5;3xHF:JC/:TUys&I/YMPhg%ĕ(;=$Q0>Gb ֙
kvxT$;Qn"g|YTkP9	wSV
K}psqb&	Rr%d:_N~;m&m;;
kTܓ5Cd
K*8OZJ^Ƅ0Mb%D lA4@PE6Ľ~e1_: 
GE+#֜>oh:;Tr{xpԌ>l>k
ր&'Q4_]Ni&VR3ydYu[.B|#5tFPsAne E$DqCBi=tN5']>a:)/i+AZnh7\_~8y̲ia񏿊}6E+eetI%('jrz zQqFJWB_{/?u>یH3EC/06yvv("%"(Vщ^|xxlk֞!3~p/uT{?>{|ڷb}x,DNυ"yuEҔ:a|F#~Mz_:C60Pas7.X~$z<{G||/k')geFFYAK69$h)f
Mj	d#J9Sn͡	{id` 4uI/Z`R3x kCnW;d(j=Sh;J9B (S@  ȫh
7Kfҷ,#6>Y,IfwNkOBL;~/יCH1e ~|>?>} oED(08%ӗw-0˒2CiܝfX|O!jcPs78q;Ӿ .߿PwO/oìfǫ
9ܧ)cEş\Cx7/³ւwEw8w¥%㟽y6}߱o?\wUej^ZNc+B9D9]I4t>0>AB_[x1SyfJOǗnPqBRjN5n3wxu_HQ9g1u.KAЗ4t-!ťC0|V f$тsÓi?C-ZіkX-1~G1/{G[^GTuJύw m1XIPh& ѓ^TNģ<Gr$ɃG3A:VgM/LĆ˸oэI4Y"uu{].tHR=JUĶ=Jhyp,e`tRECF@wB@DM*4$Ft9]肎|и 7$><j6-	Drt*Vp-{5@իS(-Dsk)ƿʓ$f'x
y2oEˈ*ژ\dիg{?[lnTs+{)TPXJ|zhLHb@jDI:L$dM&T%%i{P'v)7q腴M0eЧtmR[Ű(ݿd:7aaxToLSW}-A!HOL`jKDQaBWi}-!4,f/ۍqla({LdƘMd:ɦ~bn+/{;9sgNS.cX+M&ey"Ѹ\,+1})MUQ0-ßQ;JD#Q(ĶRٛAbV?1Rkrja6n)ă"tCٸUc	NѕeT՞&y
iJ3SL}FO#rs-t$URBwIq->X VDN%˩a*s'S`+_`6%Kq%y!S !+K1H/"C2,?rC}L8؊;%<t4>*Kq6㥲+6D=]^NqB\-Cty[9Fpj32VT{^.^eO84EC@n4҈>řgjvCN}Y=y&;kL\h.ŌKDjiQ0º6|bYH\P7uqǛƽku}sYDܓzq#by%lQ769mVZY~U,\!.=҈S6q{ӨV޾L N|oNj3"==9J	Ò}p/[K"\Ic{T-Dbr5fKagW	iȬ`I=MCe*mA3_}y>aqX1Y;*=;EQ96p
\蚽Rlab=C݊"]՝ Ov{倅)SE-$OXoyHJ{h~"7&6@Y]C[ncŎU~*}]OJ!ٍ1_+g;x㾯cf"8y^VT="YUէfپ˦u9٨!Ɛ/Z؉D\0^tDRe<\8lc'/"pˤ/B\
6ȼHУÁ-íļ9nYV~'i@⓻e#'ai"!ok'sxٶc!  AALyg "	
xqYVO>YdqZEEE)
 B2YPZP R59'^;Mvrm"02Lcԛ,\$dd<1T$(<>83/x

y%F%
'37?-L JJAMIxc@90IO?kϔ	 T	L~x}SkAնI&mAԆXKh-BIFM7hnZ`Ai=(0'A{x
/ho?("Hpvݤit;oof]	&&,%F/[H*''$͛id&PD$9HѰ/$JYD1}
V|Fdǟud)AH&]ĜI8DY<GҹsaUyKY^sVRf=+DmqoC0y2]@]E9"6柗lNZ0}$ElTܶ&Igzc"$t׊*ݞ0[&]M9gv	=w /}p>_F| y"瑆8NWx K3C#l[Ϋ:NR̺_@':99c;:i_zNe5x͌Uh]E7w:KMcOh[X	1[ա,=I9Y8̓(m߃QjXS"ВaU7Ǝø0*ǲt:|.饩`S)DlA*1r}ՆSc	6%Bq]ŋߋ|/Bheq8%QХQ|kB9_exU}.H8W#fg_x9nQF63.-`h'< 	ax{ze5-:ZQ9)
y%e
9IEE
y)
%
y%Eiɩ
@NJjZf^j
PC)8gs)L}.ə@CzDnza ^+XVx{ze#-M:%
KL߯Ũ!PXWZX2Z|
%
ɥEEy%@}22&蛾@wmlc'1L^ɿ^1	 ,Xx{z*KF)ɓ1 \cyx{z*ˆfVޙ<[xzc %
#>xt+<LYœ'gJM.n`Lp:dY=ؙ'/aO|/7c2 ɟ́zFZ<V[qY%ZMegh5M1(cc$$;t$S'8*@X;&7NHc|_?p-!Ŧ3Od^X	eb8'Lq
{Nj^zI䷱֨6e3B$UT$x1[)L֭\`	ѵBvj֒ώ&b6@2(H.Lh0e:+(6:TCɦYAB='OpWޜknEV|ZZŕyZZ7+2O>-4--hrQۜ'fW	HU(άJUOS(!JJRRKRS&W
CC&+WMݬ=dɓb~NхK_KKVAK Wɖ|x;q+iL3lNcdl  
gxuJA@9	FT 194M
 +I'qs7IVݰb'q+l{,l+kNTҨ33ޜ?&ޞgw֌Y{<\L.)>0nsШA&RD)	6\PJ9	2=,
LKp2@``E9C.B:\z*@N;cAKh zԧb,׫(֘ΛJu#L١e*LIktA#. bɔ-})X#p! Z/|;͎t/s&9-gGL?	l	Sxk8	<u7?_| r	9xkrzF3x&\r7gf
\Gcs3?y+N.̧w	eVɟ́zFĦ'3O$Ȍ;|'?=9PdiA~ܕ7gd|[|rQBbQ*LSlY,ylIiiEM<94JHFBqfUB~B	QP\X2YJV*XU5YjfN''+tL-<]WsC> ofmxks
R7L>,$YXX 	(x9u,86gy4Y`d[7R^ T3*xuRJ@A4Z^*Efc&34ݍւo˟p7MҤ^f{^~dy^<Sc	?z+6|HKf;#D0 #<䥄zMS}r哹wK"*!A
߰};ZKPᢀI!!?UhpgP9,Z8Y*Bqcum̔Z'1dm2tH)>F6k-)9{ǖY=8C>KRuV!ƚVQJ6#̇}W*yi?E}9:~\ɿ/Ś.}>3)㲪ۇs_Xx[,szϲ >xVAo7V%;(h7%a! EF@=@"U+워a^y<^0? q"C)驽T/@}gg;isDj~}yԣYyb>M D1}KdkE=oܙ|OFg#	TA'ޥa.g_۫ޛ_үWCP©b g<g+~)z7J"C$ " v\}.O2(w1lq}>l8MwIYH8.#!8rg%Oyx	;Tt#n%"|r|ˉeOIg}F=l~.zKztC<vղC &}u
Cƻt2>	QRMg2::CLKr9U/fHtavTuK0gsN+Q1<ЭDBl
бLVP%'뵭g4_ߊkh_ǮVmXt6JIGyfoͺ>߉Q9yq7kZ>˕6*I= 8%:&ӽ~X<A"q8dm.XfBY5}wIsp_ZXR FSčP*rjlsxbL맧[bdS#lܲf&[xQi1D)2UPkVE,HphxW4SDF"3P[n⠞#!g	c=oi?jV{G}h^~|m.+νeߚx]msH_1P;u[W+1(ypE Sv$߯{F@`x\kG=OtfH!9^_UD'[4݁+nl6$3bԂ__#\r8#8E/@K/"$(`@dF7!.p;%KLÛSoS} !3C]J554hv-;4_M7ÂWLx$,:QzG<AL0[wܝIM;*y
>a ucH1lHS{tջO``tGmsHzu/ۣv^	86SOSnYDg̼[&\X 6q4
BF͓fMj-Л	/'5u;ۉlJ»6>>NՄ\`pyd	ϭ0|T77>GX>(j~cl,(YX7P$Z%C/ɔQVXNdj-(;L}Ap8L "ِOpge L]NvCu!nQ	 .-%H_o'%Л(;$[(#5Oi{X'eE\OuP@he36&_6O~S ۔Ɵ O~?:.rR6/ǖDw¾ v}sm>]#fZ`)5r7O¥ϐŭZrgۍ?o[31hʠCF<0IS#3XH5!LȎb,$ (@1axԖG}$;rV/aTCx^RN~Fؓ<;/{$j;mv~BŮcY	$0D [.'^4Ɏ |	@琫	fܐEI`Q'/
],yr:NPM~ ( KL R2ӜhJUBa7CI5H.]`3Xql%Tqq`~lny^rV:A9,a'qKIWoCKh7rhz906iʚ^9|ۭA!+%0:+a|z]ɵ8EG>[Ƶ90	_u|3(
2VU^}QދoVe&Ĺ.Jl߇SI+c-!.oJVjڻ|or}Ճzb"]Z g*W\Zy沎=YKvO!lOy9Fd`?ںZ!nXQ/U[h#JC@]d"63^~"{/7b0AچGxZt8Fmu&KڷN)v*k5aEr^
+;B~N/F<!-)щX;-31nFQo<Qc>x=IƼ,E<x~iM|t~,Ow(;0,Kyx ), 7fEXvNhlan
D4ӥ-fl_kI)0?J")8}*BRm/uٵ &|KH)e3Unf*%T7J	Hݜ[sns+p	΁-_h>K=sPTlfRۡͨVJE*}ɚ4*,nH
y7UQi(Hl|f\'xwI]\K!^$kI2D}ؽ[,@p$U[drl :ԌMt}_LDvZjV-QsdU
iv5DiAkLQBC̪D)m7eT~Uߚĳ|Owb9\fη5NIf_Wbʎ3%MNMz%L0	#C'VЌ=jUǈUmU<P}US1)Mox`*\5^Z5^F]\+isACkHpY+ڀ+mr{boۋ4CsZҰS>DY'JG"TrË`.&8"'PCWaW݈će3ȲXL#춸{mt`,sV``F105qevYbDq!,)MJkeA+ ;.@㱪!UʻxJ"	
:@|u!I4e֑)vJnno4=ރy+|ߋ7˻@L	6T+iR7- eE&ג9~y9h-nem^1Sl$B#sT94M(gE&y|yEL" *IQz݅0{FK/UX}rּ׉ztm *5$k)I2mʤ%!q+ݛ,5a!|,홮An۬m	BݜüxkV< OiF)U-#B}W~BnS$QP));tssJyIYu
<`"Z(e@MJm:Su;MBr~VaFn2ނ/a7j{ElXEbA0] 'G
@2m ե>7ۊ:ZPwY)T1gueE/J#*i<Ah%
\T1}e,_VqXFϹjDDK<	9BӇt[tc]76:vݝAk`"F~<Q,vOλ}rǆRTgZNNaM֗p4})ݣOl!\vz\elNF-ӷt30UErQR{bڣ$.k߳Ųu⻝}
iEB@gYΒjZjEʟk5:s:/aVӎ7jlnz8G?B,Rq{|8`*cB1<:MMRO}ǃ();gL<Ii@t|
ҳMg/Iw^	giBb-Wf.t3᫭<b-;0/TN>$OcȗZsn1]1S6B$ΐL3d<asSKشr-\Lꪉ)>JadQ"VH)sxIlYnq1m?"6F񊗾tm[߃@}v=_ג?n`'X0`3 <:x5JL=&/nOZ*ak~4(=l;J[K_RrE
c䖤xD͇),_)a:x>yp<4JJ~ҮYY4#HHh19z>P:pDOJ y$ & uC2|F,b+n}W#?R-U@YG?v~RWJ#|.-|+U߈E;BydMGBgH%{\x(>by`V,7%}O]ߤ,ZOD?-2wxqX'P(I-I,I-|^dGV, &
(xWMlEB!8mi&q!^'-mD$iZS&i4٬fwP~Z$hEH84N\(. rAT	$$NHfz){|_>n&Bg$(0J $ rR k	i\5Upi3i|͜`m!c 	Y	ma@DOsKl;oԄ,	 +{`/HIpCE9!PҸ.ٸ~<ȊHՁ10)l !2 (p	4`}[8Y@ ^0Z:P!$$M-ް^	F(5+;@k'Z_-8jKj)!2EY^-?zqiMrQfQ5';ih4&AON-3ѱɹsip3MƂZk?7ul7Cp,vKֶ]!3 ({`6kg(hF)ʦZҪwǮ 5gƈ5"Y_[ᑺ_3;OkH6TTTB㶖v}d!c6UD mZC D+D:1IB_ 焸٩ԲWwSiO<@r!	X$1i`hlFrQ0,dҭ,UGg8d/ƔhyqR-PXveT+b	 \R&bFf=y֢~ݙ|p9e.(闩 )F,+eOx:00Vod,m-r6鲻d'>ye)P	V`8&f]5@H&.6X?q_tX>Qz.uGc#-R˥85?4Uӝkw;^5Uq5C!kl O]dL匨V	(,bNCNL>~~p2\-~߮[Zeߤpvc0׿Gqȝqկ-~OwN?:,87U*Uכ8V63Fo=.p~$dpß~]'?p)rU3͓.;^j4Hj}ݞM&إNf$NYCy?R貊1AJ+(\_		1_1Ԟp!IAAw|;|yV41Otţeڎ1| f]PjqlJ|FScziZgkorIR "u
92SE̻vv8D9ib@z?I<\ޢg!.?ܘ޲[Pg`~d8"3wo	1ռΉ)|MCPa); ?ut x;%L963 nn(x;z&ϛU* 5Ax;%Ly)徉yEۙ Kix;z75&+N}eͳ Bl3m>oV =x;fM'\ovR ]=	<<x;4=L2E0N+EC\RR@|W?'+lsչ29'u]̓'hm 0ޫ˹(5$5 @cJUō&lN(ad(>d `T9HP{LH`_͚f0򓵭FOb|ENyN
", wN6QwP1,?3䕲U'+N=ykkQ1
g%*p=Cl=KFQ-ғuM~hxuLI^AMɷ&l`SΨy
(&	Q?YM@i;	,XM T#s^ 	{7x;k)S\&+N}eͳ Bl3M^$O 5nx{z77|
 =!&x{qB=L2E0N+EC\RR@|W?7\:Q@q.nar.JM,I,ИRUc_q6%J'3O'9E* ,&U8y"e"@
Lޣ{n0XRK&O ꔟ/4R|PWDl'og۬$bdE'(F9,Ll~Ưiv2Mަy`qf^r ng(]ްqLI^ꌓ&:CiMn]oLU|u+0N3OA~qfIf~^BPZ,ϳ3*lwTab uN̴THd(8N V!4 &Rorm8TuFF9 6x[qB'_p|AmqF '|Q +xqBwtK&3ʉN6PcIgĻ",<y*̅B'_bc%Wbl_P_YG @!v%x3m	'̒%E
y
Pfr~^ZfdGViֲ	 >.L,$=.-Ģ\g`2'hM^#Ҙ-d TkZsqkiJ*LMSpI-.)ʯ)NPM0`xQl|F̅Ä͎X_Ƣ8Q	E0pD'IG`<W836+eӰXB46ڊʋL+]
94q)N>!bE~F`p4zFa61JdMn0<OӊqrEg<M@7N^ ϻl9 Kd͕nGx34?7 8Qxk[v1<d7u J!pxk[¸c.ㆹʛ},0
;&dhfŗhM|[5]83/9UȀKAK,?3eBwz
Z
إ7t3N^o\ 'Bnx- #!2)@
CreatePip(ac%U)"bx14ɕ9+Nٜ/ʘ<cf^&8gTDg7;H Џ14KxeMLAӴl(-TvlrٴM	k[CCi趝f2gޞFcbHhjH'.=AoF8 jd|ۺIrJC 7iV"I6BEdi^^	`2i/0cS ޴W=,6!̽'f왽phy]JפLF1%X,B:Me43/0eu2ܱfF>'o4
lEaZSii>DLxGxL)`!ZRe.5Z,JY	 oufXP#ji*cRD+9Ln	zAzq,K[D~x-vQeE[QMMi/µ!|Ϭ_J
.|~Ӊk3Cs'ooK}r4۷-%vT*YU2M/Χg;vzç!pηu~bxud}WGyf]|u5Ӱ^3r9T8.TNp5xVl=WAՑMv	69K} <~x^qbf⒔̼mD'b.RLIW(ISR 0OW H[BirbNHd_IQpnjjIf^:X&EF!Y
`i(J-/-K(QH+)QH//-PH/R(CqdV}+6|ybQ~Rbr6AX#H{pyfIrB~~~ZBIFBnfrQ~AF~^*NSMb⑘ TBPC-vksS	USdoi	̪O+YnD6DMG35i!e&abܚ)q
᠅ͶL=`v($IhFKAad@ MkDPE쥦 ?7Vsx^5j"ހ܂ĒԐʂI曟2M֗?cߜ ɏ2l^Huɱ«'ߕ޼\܄i]L7U  'R\xZ8w)&j.L\\ZZ

Z [xZxu=	2"y%9
ťEiɩ
E%ye"B2R"`|4HZfQqBZQbnByFjBqIb䋆"z\
Z
@)H)ě¨7yRyfJIAVVffg2	ih8_@Q|	:
y%(b:\


''ʈ
WAviId`Sl-9 \xV[O8~8@
;!UZvv(ՈNҡ-T;߹Ľ'ʕd3Ȓ2'Rp0ԙc͠ܒjNpObC9#+Qh)YA>8bQptdzn4V,ƆjJ\h5k]~˥C,`GYEUox~ FT)G$<])TJ KLR<^JuA\/LƔlZZkdps#=t #߃ztww2q8#M F!&]ϥ4 Lfؤu#J7 䢆JUdFa&T.2YU03f
`hqtY'9GQrz7&;ntܺ͟$1~O;8_ޑM2-fRT%Ēp(1Qg苩dr,˰1ʜѭ2hNkC1S'vt-/<c,ѫ:M,3	`T0kL@ٚ@T$rntL%IA<3pV*%%D+Æ3JT26PVԿHg솟0xZTH_JgH3V)$IˢRסϘ	lo~v)Xfբd3ETJLEFJQcX7ި߀FCMi&uhQ4T6+gd&G77w15&,6j0)ᨾ' XSZZ؎qiv*x*~dW"{w;qo1Hi	,Shɕ1>39)lw\٥y=u~	;!JQL|wvw#E%8V3Llv7j*-T7[DOc{-xz2 ΄ Ylo|Bd= \qOxd{Ȍ8P[rpʝnMư+Z52;Xm2M68K8{i9ѸC3I6Qxs7˫/h/lGex#:QtC"[Lꓙ]&?ߜ,89|rKdC.,Z@F6 V<x#:Qt#dffO87g272N6ª
dd 	1ix#&3K|^J̫'aurj^Jf "xmQMK@En=8A!ZlQѰM6ݭZD/HgW$TԹf{{|y͹V*)P'؇ m-g$GTL%H$.Ԅq.l4e>lKo4Ma;vدü}}O} { \s"1xH" 4.TeBVc$+
U9Lz\bN*FQtC2Q{,-wukè5éf؄UX^u`nNcv,C<&I-tF_7,A4S$.Ѳ66;*1!"3l3R6*}l.`>x8@maQ$0U-GsRQ2şѯ5xk,3^q?̫ٹ@@k2V={M, úxWn6`Z[)ex.lgAf-Q6H*E,{Hɖe%& H>}wG9-<]pq#ɷz	H\,I{,J\iE>9{*qry@ k |B"f#FStL*	r'
 YAtKDI$<e}X	 s
0ze̔JħRE)0JrjdYiOO7M@ 
p< r#RςK8bKhx" )ݐLtx7kk,*hҒ/
}
. \a0ͺv4`:Lb2G1~!'h|%\f\"~ эn$T"%]2p3
 ^ZRj3stq`&5T(ߨ\TX
jEG$2[G9s E7)·(.z49s0.+插!`_EJwS9|8ɂrg"J}V߹?wpjηN%[LE4t9f,!"3xf9+o麥:cjNu# %`Zn;&Ნ.w cG'Rw(	@}?Xlq=RyBӔl/%*ۄ{+wHf
$I`)Ehᮖ=PU_>fv`eqxʃ`d5%b{l9	01Yܫ,DDa],+` ޵%l6>hLy'OP<?VdbwQʨEBdWK^;Ml-5Z4ܽ,$ǌOPJ!)%@5nC,Ӑr+00S/goω+0Larz`i!%ƕYjX7!T _qw$[CkVT,e	dd6aXai?FkFiQՃIKr}(R+֥wM/qiVs߯5[$mMNJ܉J)e!M7=]Fͩ:_2{mA4?-zR_gqEpIN"eB]]~?¿u51YǪHfec3	f*MEjwfπ۵81ؖW v:_"h>_Tp0&Kp4MAoQIl=1o>ôXޑ?vv-135wG.R1ź8)t*vڎc]Ã\k@Ѭߊ4CZ{^XƤ1y+W9h^i=G`P.P_4?Ty[6͊\\z(܇|ԶP?
W7%bB
&z5jx/s-PHj)ra,1ÐN"w°c=d]lZxpVafIfG^ 'qxYa$(%d姤od t	xB  Fdef clean_json_a
Ge?

F~a
}<kxpJ~.ǘ6K2Ol5y=f7^f 	xXr9}Wt9dߜ-cLb*R`+Oрa4+iI*ݒx^B\ZsNK-#CK%&Sޞ
6.8tMudPd1W`9˿	OF;r2i}H9D`N?fj^l96.Y7fД35&?k4ylTFLui{kR5(g!&<^ 11ԔA*`\	#I Z&f'7Fqa60+C5qs1\4a@N:7WkM= Ze{h>N2 <!W)MrB"]H:HDeM8L=Wf9W3U&3avGGEű%f|&>>+ȕ10DX.~:'EAb>.]DS`K,MeDoIRiA{sjoXeee%jI#2IwۆO)|	71)M豿T|\4^b>֣0̌GQS}GY5jY6Ƭۢii.4Å6|*AXQl<W
qlJGa HP	M;]ϣnCymQk鵺qizu
}Mx,eNFxsZ|#S&DFQA`uߏ^!"Am;+wM٫ "~3it8|9$Efr)2
^k[̧K5XhZ*ðt0EXRsLKCbfZͣSpQr㖯_t9MϱMTؖsKJc}1klbζ2Ð1̭bTl%,uGD>1Z}ѵD-#'5~S|:';l)"l{MBxD/kP<-y1R霆(ޞ^nNo7	w*Z*+(5l%Ce2La\<EJV/}X'D
'8zݮuI͂\)EXh]-lַn&G-
\/]*|0خ	#@m^oGL'Xvup#pE	6|(<m}셱YlZ^5vdQF|21&Y/yAMjPQx8@j'Ip\4Sh/PE}!<lbWmC_(%P:O[G7)trVqz|~: 	n%7?F/?7⏵7,C O3?j>il/IKƎz禪yMz8=\B]cd<oWZsg3K K% -M;;YW=v(Ǿ]^sjxv'xkԻ!eR:ɟX'cRplo9a̤6yGBd^pZ3)8nglmdO>,96@$&y1M> `6Df{!3%P')(8**'eq)h)8$%*%]-qY ?lxk;3OœS1)L6e7و0fRp#I!`2/w87Kq3N'|{^ Q|j쁼&K\|UEqaw(}{EJ}Ss
sJ󒁮uFu,tF <(xk{is3k,B Cbx{۫!er,
B 7xUaOH_1/V;t6J#PZduw߬@ڜ%d;{3p CpDJXj8N6l\|R5-=JaMDkk3
.381GKъVJhhWP_25
2K*Jz٠t47"Ռ)D/:qهwY}"UJTlPRY5	l!0גk^-FDLɹҒ~=z7c\ۑw?cn=}/ '~3{ I-ʃ/4Mn޽BT/xFU-eEArŕqT|5^]&x0vB^<b!ES\bSm܈}Jmg{Y-*C"gMZdp
5Rj{4;l`%|%'4(ۑY^S"`"&o<41Y.)#T*EIۛh_*DЅZoPi͈X&zR&ZWłWTaA1RFMpGp#CW_5%ɖOrDOU!jƕCr]nXE&#ٯ}08Xm2/f%^&Nz8=a@Fdu(7MGcE~I݋a(q+;}`Gg)OJR2KdDm[:J5).k`hW=5.90P$A{;rvi^wM$΂8 =PGfjW`tyqy>0ͱDmf@כz-n4_u -Wን`+!wt8[ȋ(ݹKq=v3wDgtG|ĵc;f6ߣ&z64pj0 Ux;*GpKf/J7G32N^_\XRZZPZPPZO)IR,"ȋIor? V]Ԣ"ԢĒ<dҜD7fb M/k
x#NpC)Wkkz&5&7j+hNjN^&59!fcpq ,5uj''OPRNKLSן|E ΎJnx['xK`;6CSSCN0ylR[aF`7n0 j_9x%Apbv^JҼɼޮ~!n~.

Ɠإ&e_ 0ѻxZߓ6~\^.5iCv4aAf[#߻+!:m ɻV?6n7IdQ|02|J?{y5V<d0k<݇YDR1Ê?!|d=-SKA{%Ⱥ.@%!I5\aB	29~ɬ0~lȩ0	j`(ƿ1zؓjގP=t#b5Qϔ+tChAt
tM"tA7\[D˙YSLĵQ|faH/ ȻfL?p{/AE ~؇D Lh2`X!t!鄅|Ct\0#0Y`fbT:j7E%"#J	u^٦/óIDR?%HŀoQiI{j)#k;w[N"n~O\S>c,\PҢd@KsA:cI4g`t6c	CCR$YDTqF 1Q۞Xw	WPx* Tp~ȟ)S54I2ABaa5qAKKsLʯ.2lOx"o-fn}OUPT|WlDDｿ<-]0҄a^A^Oys
][(oJ{WI=3P͌t?;i<.X$LT?haFjAO' Kp{(qal_6` #}vKCt3ϠFR]<_1.	5qpD?vNpMi{mG8*$ ;]:[.-aў
˕2vm,0e6M"Zc-h{UV;~ i=ɵ%ť2Awz׍ے^4J)cJCJj|p'.kfk) 1&Al{9JýVX	>'ܢF+ n*zVT n,=)J= e~a;%_j@R7L 7j,9+P5wr0)6`*uo4#\C& 1ڴT  FH!|ZKp񋾊b˙:vo\ ۄȵΊڦ3ux!'8T&?"|yi#Put/,ƣn[jY8\(<ݷ#^@>r>t>퉪=rfly#: x(F؀aqu38f޽w*PU)QemZnұ~Xs.$5v[{Bae|-鯨X+;Ycf| *,"}|Hι"~ŧ.9Bw;lYTm{4sjKHS궶rY|r+pquj^?z=~}V`iWa˻rJy
,gy]a}5S9BѥsYQfuq Bs>S|:/SQ	P]^j@<%~Ť2gi*jnlQkEV_߇\s͈})]fvy|\I0Knl&baLRa&ܽ{jǎi{'Irg[=ʭ*{ܥ}gȊ$<A8蠼8EKS`9_2&唩;2mFx0ޗL
G9*"deN^I.S7?y#STZ$_:~"7sFTНEJxwm_yy5M.X7Uj%xܙa',׹6gTYMw27)91  pObnBxLNܰj /*ZxL<Z{!_{6uu 5"x;5aC"d1V͉LLUwnvd% Aax;ГU /94%U&$%%5nsN- +gxۚ!~N'YsJSRlKRRR6w -xߐa'wvfcQKbI-,6 J	z	Pxusk&0Kf zs0#. aC"60y5%ҝt\X1qsy/D-q3N,4+7Nauqqwv n5?xU /94%U$%3D/cq% 
+xhPefS+ R xkhPX] ;Rx[ms9_r>Cn]]mS%f<#Jnif0/	3Uɀ^ZOw?Frv@j-Ӆә!GKIF猓!:陨{P"4H&"1JiN>2u9y7(b!3ҐL35%d!\P&i̩8s.C:kRmH?3c?|ޠpCi3vMu絻;iM+
/MTH 5s"SŠH=Wp1-'fNC1FqfVlV@ͫjTV@/Odp>$Zn@>ioi?^S',/B &Gk2 锅|CPML3:ed*/IJFj 'Pc55kɷ4*ۢoߎg2VIDS w_mbo$XkUȈ* /P7] ?*y#OMX8Z@I+ ݈CI4 ѓxt2a	CC/RtQť^G E#[gc;:gB(0B0,W+cq"T9Xh1,P2\8M_ժQ)-Ucݳ´L`a"K
UT2:ML97.:XQ "ȸd#G"h|mh.tHS,4hцi?17Fg9Pܩ%j%G-^ &dp2j.J6vQƙP$8g8pU*\yc5<xZm]l,eRxXp_#5Xsvxc+pmxI㌹/B9lo%g	t"Zd@rHYӒ	3390D8 Ð)H-XEDQQ~SGX\`C<بP#ݴOAެKm.$Dt#Gc
IBg *20[a{bQȇ`%+@	X%3C\PBC%3ffYB \C]0&\<ߗ1/T  8>/3b"V,FʘYѫ G)3m
<ZWkVXe6S)To=Ƅ@Ѓ6c:~eJ>9PCX'YڕSY;nw"B"A*UJ|aֈdr?G-iSHXc-cȟi2btə
)`׶X(|_&L+|{gU8m#fb
U4	cǩu9mK8Kɹݢ-w<۷:YT`/珽9n{&>
بaԍxr(Xp;4jac9DF}ωtnIʘ7s}Dr&Q(q<1Z%Gv\085fnϔ̦խ轣IGquQd׼^ľϼ-MChӨ1	ɬbg8K#w|F/ngT6-ia=i3zi,s#b¹.:g  +\za.q'Zf*d7X4?mC*vʮ=ry݁4lZx{
<a8j:ݜ,R'_<Sɩ۪RTߏ%+Zյ;V#XR&J&r.mirbQqݽ/g+6ghNnSt9wG׵>8ݖI%;ZހlTn[{{Œy][%awpRYjۑvF~78G vO]f0O.cVs)EchZPY?:AZQ$b <7\PrWv/v?%Db{zXSg@[@&5BQk! ѱ!64^^Z퓥NyPe0laS*{p	r3w|uRDndc!r]¦m"0ӮI7D
l]ԂunG缸ļW) xR~Q·KrHgƤV4pŐϙ9=gvL[>q_SAYEH̊îrrt`H''}axWOoEqkHIDCx6iIMJcT׍Z%jڙU|++p@ŉ+ UX̟~ޛY|O;֏nŃ4k>%uT%u$&[~m=1*{7WpC#1%]|m(+R_ShF	rdxϖg[3/~FZ'|ZĂpMQIZ?!be63@Qa  H0}S{|Xb
YS'cCzV>]š:%%勩T69dt]]$E0Sk/g#Ryͦ%A.x&CIJbA&OcF,MM=0V(Se|5ݫ@eA~Mz:TlV;cY1hh'fJ{$yiə6F_0x(k轞U8&M
rJ<dӓ"Z'W:a>{xNZ׀Xa^rq)ևovi\[lBFuJڠGqUa&ۈ(]SE_kHzBNK+[vblmI8i%YqMa|YD00pAHj!7MeNH(@GbZEPH9}nX`CoiS4{=Б xsnM斂\8*dtYNż#gP_kQfX#0JX,za?
&O8q+3xF̓IRf$&.w^zSc+=gB!o>M᱂&HݦZ߅g[v8=ƩPQ$ N֙+/s/XƬsmPA,x<c-D3	:Bazv=y|m4+-k}xVn@p#"(TtBB4@UAjՊށ7kc%y@A?7̮Ա*HE`ɲ=;s\v>̎S1͇zesn>:$AAzD<&j(J	r	kQ'<:y|T{|&GLT';HmEML=)Ge^oF|5mv7	g0nRϽY1y\QG%9҈Oߏ}!yeтcRs^7qڔH2"\ky^=}P(<\<:_2dS3bpa o&{VN^Bj$9mbjĝ7KeOSH|Igs͞@cA*LAďbtqqxlwMeJxY`oPckI5*5W$NJeCvkXm
~MeŬϣͥC
U_Gm9@Fc_0YQ&l"(!CMB!]W	NvLƴV6H3IᰮZY|'av#@jZ8VѪnQ|uM#Er`9A%(6
0irea/EHOAŷTuZїw4baƝL0C<.6K4$5M%FH45$"te1۱WW[Z9(=[azøeklI$QSxu)fT0zqedNuiL.H	Iľo(qx;[,򌓕L=R2KRJ2RsJsJ*RH83/9U ɤ)*{;5 E@_KLu4Z!X/hE=X>XKHdk<H\V@$<BLJL3Ӭ WG,FIsTkD@pr2	I a4QMfzU99!-(R!?Di\Id2/ͯv*Nn6 ZhxV[OA~Z,iB(H+Rmݝұ{ivvjџ껿AO<H|՟ݴ&ݴ3s{]OET(YRӕJJeTeadV[a5u˨oE5}cg]a~`uO(k;bkMFYw
K2-codܵAll	7,kx{3<I>d"&\$QY^M7g"ϝ%-Ӊk  'IBۜB/	K/dr4rp?ͭlg<j2~Fv(;{wbcK5ǯ(J9HM9̻@sի٬% cd<ࡠHX"㪐u૗1,б :vt,V6|B ;(WQEqK0H-y((z)LsxSv~666(Yo,'=7-ÂdQ'э~r<뗃"Q%E$*TpIU#p |ulAv[qKf#'H,?q#cX4Q҉xԋ@H&qO-Qoabl׽`۽}6r-4%IRC>%]\/Id$GΦŸd.9<lۜ*(-yJ^V#<0n-`5tYlV*kS?-1mW	j"悒Ya~!{XY[`PxToAFM%P&Jlb{k2Jg,Ixb;ċWɛ1&zp؝'l&ofy7_K@T'ұ
O	~M"5<ExـW>{zh|pB8_5(ަ5bbfjt&IuӸ;\)[-<еSFpT[]uv`_)CM	%0#nc0>n@4[pSoc⸥!\*nM`oRN_D6IKoӗ{lMQC$a+PC=C#w?Q/zg1R5.XM6\m:8=ysnJ:6s$%
4XPC@gҌD<"WٌXA`oEMM2Y/pG',Vˢ-z!̀)=YDk3@ꁛ#@j{HeB79őc.	92J%MBh.'<;= xF"\e@΍HC98P.8ÿs6xR]kA1< iHWSimU?Re{L3/W 	3.,ܻsϕ>m|ygAEɩb=tpwPn%iz'Ϛ6qܮJ<z]<MG_b1۶=$aS=H>~lUPr=X&`"ltXd]RTc-/4Pjے7Ȋ~h^	BˎQsw.Jj8"PA$aƾi>_x]3iGSȠd/xB[׋ܩ)X[-tKX2+piJ[(,'}j{y:+YK$tZMƔj[4^V"@tl0fN}a
]#FVW#%p.UL8ŉx\Z*E3ݥJCET_zloz쐿p* xۤxLY<\i9%
Zq}<OW(K)MR -Ģ\Լ<ϼĒbT${83Ltf^VAi\9Q(56/A9y| <gl8xۤH"fCF! O]xTnA
ZDRA3ЕBAЊ6%2+S,%i6ʇ0
^y>R+l&gw}g2o_𥼊kOjT~~/R]0"exك2.FlydMbbR?ܪԵg;
Jߔ-GV"BX/lp*AsG9&Xt	6,#ܦæ!;[]օ)%GJIAyDGATؓ)hLx!׮#pW1caaCe<^mv(k{z<4ч($g?Qע.4@\?&H
K&S3 Emɯk䐬M	;~bV*B10L6h'mzwa/Pma2-PZb ߴFLszL4;LGz53flvG'`t>t&|ǠN[@j0MNlq{vdnf%&^Ň1^e:3L5߿;~#bD?hV`x[KwC 8.͡"rLCE,'Kw t)	ox;pYeAɧxxXrK&/|cUIFBbQQbB~BIeAX^K
sR2sS3RRSJ&;pU2Lvi	KM./ŧ1BA,14UG43(a<R1 J5lx;_af%V]n M*x2QmCNd&%U* Ē̲l,ѓCL3RRrJAx>BjNq*rf^rNiJMqIJf^^rj^Jfd'n0kə^wLRTRpUjPW )w	uwru !N:5xۥ{BwC +WRbq~JbIf<A h=Mxk;䋬b)%e9?ZM9usE Fm3xOn1bSD%ੋ.@B͟Hv2ș!&{d{9 	8G lz찝4i+ڦkh{rcFZ*l$QC@$#M@OɃDK%$;Y])S41Hf_Wʟ_fHCV LBܲ3[CKU@8\g@{i/@K|A&15TǨT3*yAǮ=bRs-o9[ͨlw]Fy8ב{VE?wIbI<؟zQuah]yc3t~@9L똅ځWkMZ&Gsq:`^PseJ#\1=Bsi2D<A¶xmO-NCZwo~w%i\{GRL1j7s<vE0oY}3"s)L\XxQ}&wA~ܼכєkiu;3#7(C0ÐmKQ+geB'2:{er`D%dC\_W@F/*s,.o;'y$wg*9sK83Θ0@ 1r=m	LǓN\(c}5*\PuV\F_"\ԈIqP'433uNԭseO#zPn*[sPYzz[*UTW[_۸j.L oձV/+ux;} {dnSz̭ nq,%x;}%lC"dsV͉LW'?b	RS`h?Ttr1kd%6zϼĒbT<ʂT=R Rp@IIMSH+Uwk*Ts) iBf_ЊzR} xIyA"gT=YA>X	׈,e@$9i0̠r`s]CH[bQQbB~jQd^e_Tl*'
 MA_(4(?(ރ V"x2d= Vm7;pURw.-*/,m 	T=xxVNA?mqmE@*T`-5@ ԻtwJnw]pn}@}/$zkxf[Mv̜Ϝ<5S'5>*-o7o(SD>G?oe2
ʠbYu6\Ԫ5M6ϩwk9Mt HE-Lm5Jv,55SQ̜,6ǿ|$^>,jkK$%>-BwVCyN-SN
T.>hTaR[Jl{pukyL:c2hP𼃬S9ǽпI+0T_F_<߽O(/u?rEiD	.ݱ_h.8|5졄dس

rP.c[F &&X'YFەPqD֣j,*ї$Nr	)"aU,;$)|򙡌!
?_5y|(y~j  /̋(%t6@9cPNXȇ}0(¦l6&iZ6{(UA;^=2{Q&gYEǎ7W%K'=2Y^H3bBi"7Igx5a<@!I&Q6OΒ$k't^)K;*b&ǡhn/6mY::4ٴL.*2BG!
ؠB(Kgj)1UyOgO4wl]<([r%pЕ e־r|*t=HKAZx]oQkJrQ-zEUx65tC".9y&ofL*J,T y%eE)Iy)z#Y''2iN`y].xҢɲڊZZ

Zm% g"a#x{#jC$v=G7ǐ0W =.ЂR
řyɩ
&P}0ksjjR<i9%
e%EYQ&/RS/H,JUHM+SKLN,I-V(HEOc4/2"l$BJSsJSuJ3J"*Z k#H"Ux{r3d<לּmXuU?!lxr:dC9V+* )x;cC6fό9:d&sj9 f%e!xnA# 5bKMX!hV	5md?0Kvgh/p읗x34Y5@ ,sw0)7jF}ԨFnjc cY:n(cVhEQQYn-/l"֐HL,4,WCz"Qc"'"4_c"*wdPºًs'bbo+sO^:LUMlq'3y}C|L5V_1i΢p`T114ڮe:;oYvB<@_ui9'/i>Bj1q#ӈZS)U:gLGx0 >aG td^-ȹ1?u˧nHDrpMމoPSEf^~p/p-ؐۘz6,~o9třd~b6R?wm6ݾlj^̩n #槠.YX2im6-~!UncCѓ>;]18-Sx:Ewh^rNiJRJbIb|bqqj^fGVY^}--.-4Tj̼lzGܙ&{Mc7l-W\E)иĜT=Ʌf@ËSS=ÜJv-,KNU04r2J6j!$d-\\ gOVICuds^	]E
@c=R2KR!ІDuJ:K VjZOvd\( Ɗ~*Mx;bpOC"LW'oeL*J,T y%eE)Iy)zY''2Ob~|n0ԒY&Å/pki)8*hOV 4#JOxJ@]&?݈BiAؕ?`eh2gn

E|rLjJ{i}xX2	$#\_Y%XTFAfks:9G0شY)S,,<A0oky=
sRhs &f PP&vx?GK-R9	wh[Y`ĪrmRJl5%*,y*܋'/̍s
 Ee9K?l%xejU&1Aˬ 
cxXoEV4IF!eڈNBӖ:6M"!3ۮwq[#A Nw!qRz?vI'˳3o7o7ۡNeNLqfw?r8JKf	ZX?،
Q͵\!WؾrQ =>rt^3(m։^ߏ|{oGllj5ʴaa3Wl%YheE0if~bYGʴE!mX&` f-`Cwo*j6I!uj!FIQJPLj:6QZfR_AG2f&P1ULl؄P6ku]!HzHwsہ'q{`jJUנLn6:pM'odb|T;c1bYh
Y8ˆ&wہuX3(!HcJtco'"Al Sp؋ zOi[tpa#1xTFp{"E+հg4#atrL6AH!ltNfT#a0F%QQȣ~G\VI(i%pKV?*U,0lW1ls)B!9&ִH>P%cYkT,ũ}!Tl^b-{J1WuS-r=B.,I,Ey{q60>`#4^1`XiWڮ8?vbhQu֨x6HòJUӪ=x}_ĈT>ۆ4J>*$͕<d}?7yN$eg>OǦD(VHm5ÓO K
Ή O\4P>|\l- DUJSW[^pW:_u2a$2rM=O)=gg*e 6qMTƺλ81L
'"z]o"hqU6O1C
Iq:{TJZ#	%9W$ 'UGyPT1<QjwJ	U<xuQ1åϊu;D:d#,>& -%:Þ5pwJƎ[a!pu.zD_5@2yfJ,~z_p9E?].ˡEj<;'5TXIE,(?]gnCT0,ruS_̃k^?äWYue+ӗ  cOAGPm?/
ɧ3y0ѥB=$z?cB|Y>&Z%y3?HbArߡ.Vӳ<GLJcمǇN3;7/uFsti07h&k#;ҩtx~U~h9z09w6-(lޅ;r_9qtV~Y[.s6(ry3<=ي|hqt0lu~g0)̩g{?G(鼶j1R1/!]AWirxKlU5JlS({yyԭ8~$;񨓙23.0JzP@*
	 !- X Z!uW1w8\sϽݠ>}p߀c)k*β<FT(Ű/^ed&H97*ad,!9QF<6kE.U޼5*|~pz@REWH<."OZ/b=p(#!EI9e9VT3}M^!aDխ(%^jc>`KjA`r_HPL.P.&b?G.P.s,\B!r[l4FOZ]1l"![[(Sc"D db~/1噃)uY +R%1#W }Jc$8̯9cMĚP$BFiVj,[Ǣ3d8DnuǦ>5h%'py~x< gӞS-GbyIfİMxwϤBXEa\W?j)vf_7ᛦR`j6/W;48Jfء0$1Gzp3=U!0ߓ6+)D+l~~?%FeDhD#6L<#[F$	NHW쵦Q/eOvGh7߃nًmz[6!ޡRbo)d%M~$LMi>h(~uHtuT.BO]88eAtujObp{Q/|44ͦ~:RQ\)x^ի5=&$"r0 !:pܤG7CuW!uG0카#.nw >>V*3vlOy#z4%w?g0Vg
>u_&x4rB{g%x{ƿR{Cܷ2iu
"RYr[P6N4!|z^NB	Ϟ[Ix{2q4VfY;[)]msvg6AHffR4ccv1s 0f?	LPүA"gd@"63*]JqJ
!E

%:
i9`~^~	DlB-x8|R |S}/V˖f^9Ƽmrv]KX2_d7c8(mrkn  rOexke9Mjl].{ҬҴi٦IڦKئaPå}ڜK/eѩ8>_P8"?9d*((ӻK^jV0<|^WynPޤ>]6)hFFٽt4SRL~[6xܲJty,d;p8gWZ<s&8&Q7$ǣȃ2#o%Af݂Jϰ+L"^Ek\~lzyn ֘.W5|,Y4=I|69W5.5#y,¤DăԠdOVYz/v$.O<|<jP`G4cX*%zsDbhV4E_+v%=CH̅($|[eRYU.NcZ u|?e0^yr]9Ea&Βl">OƢ	/W߁!xhnI*&Eys/zzlo&p]x(ż勲DUgkU1_KN˘Spz/KV@-eh>Eej<ƦPMF;et/\v4l7tTWN̓8+^$hR}`у.`lEB&UY	Aa׫RP7n>Ȇ+Mu(V	ByG3D;xXH78ڲ=Hf{ګnX4iBɸW*.-wHI޳\ZҼ@*p8+8fl|lHNbA9ds7;Ck	j OiR}5"Cћj0{ަFȌbpmS셏r`4;%w{swDnK|Rן˕vu1 G W1=_gջ#{3wk乪1N)x#~blg"*|lF<4 mwb-_(`e%^AY"m{ر[+D?c{
Tn'T.OHקǴ70:vpGlP_C?x:q4VY;[)˞	9ybs<]04&<'0Ls03VY$eޑ~}BV$R$|@)DV XƬӲe2/V&0PYrooMN<_{30Uk6rOp>k?̜<_HN>W $ lxk[Uǹ.iKkI4Y$MJikMziOM{\:FӾMA"(a/Wn tc Cܴ7]Y9$~<9ӫ[oR|dAc1:a0CO!:/Gah5FdhF8qq9ƭ$f0Zek,Ґ	yMba+sMQIWtϠ׫ȋ&<H9"X/{	,56Ыy^f>541CА(Ib@(.KQT#XuDz%U fGJM*L)ّR=?ǣH).LfYNz	M"eҜ3S(Vp*ʭxc6m:JT4\Xgђ*FH
3bRާ4˙Qsbc	ȡ JPUbxl.N3픾=5!I1<5x7	pm
=d-#P;'$LC9x&L&]ZXDxsK,.Ǿ0lFpޥY\n'v'u!G~rXd̥E%̔OCk|:Uَ}(q{xxKݪ<r_8,SfTgs鲕	5K毝TZyEGEZthlQ+_Tkw	L)lFto}hDw&1N&V~dbGp֕wȟT*<<1#wB)Ti@vODGw{w.B<:u>˂aT29ODnɁiw<+Z'/w?AG4 ЧUg'ߧ97*	v=
>{֥s3%UzuO\S*ͮH^٩=pNiE{L^9b2;:o
烆6pGlPw]a	sxbbܐ6MK83/9U`t!5t5BB8RQ'{r	m~)R m-mx:q4Y3S6?fr UlxVMoFWmT=ԗȒ[qTDȡ5e&̒%KuC"w͛fƺ\oʋ-JL\,kz,fUaT ޡR+xGsRԠo0\xb@*HuYR(Jn(ƇCpA*pqi8n#mâ	r_~GK7@kG/ATD*+Z-hbmΜf[#TX00ȕw{u RM(b}x ˫ޏl9a|6.}Ff: I1ʃ
d5q0Fܣ높0L4bwhURZva
YJ'\xuP'zókeN,&V+#1%5X<Q@&X	"wB`6H~+be!ikV3,l(}4ZQsoA8'2Nf/C-1%mT
&R%"6<Gʁ氏
6ْDHm2|[$Q,Ԇ =JήFxk}A,IM2ß|h̻ye}Ui:SȜ"^ĸJB/+y(p_I;G|ztsoNܫu-|՘KЁvN("|.SS{abUSduSAmSQA\[mL`%h8kh7-4X.Ec{W1z/dN*y7e\^ЁTx`
ѦzjH瞔Ѧ)8CU-јB܇ϽGc'Mn֒suɻFIy?WW4>M!O	e8^N]Ab`<πl7BLK$]"VP(*g8IHk2KMTz`6֛N̎A2ARGh؈ܵ7۾[-Q#2ň8(l^#-	_	#nH7;`B|Уc_}ҮӅ|V_e2ѴM'hKФ=+ Jv#S99PQʷG{2z0-·[z(b׭39W%o'ۿ mu=Ī7/&oԱ/N{wDo,sm`'Lh~/VשA8bQZex-[n'+d/[Ur"%ŹHM#+q^V&a
 ?x-_nEv̔كXSKJ2RJsRˋ26c ax\S:Ц/&>4xtL2-ږ+ɤ=G|(0!tt>~:H>CɑHMv=?qJ.;.&k+4$:`P>'MIEL^.vhd{ HID$CF%"JBNc~u`ɨ6f4LSNa@rGB5th^,-jn	9oj`}C{%<[ S.!]!	Kϴ@kϛD	_/dHJK>KuEg9 yhƤg 3n"gr<<!'Ѩ381pu&p ޓ+M@c0H Mf-8f/,K*a.S&c$LF\U0!G\SmɅwvFi1"MȨ{h~fZ~7dc%=j:.#J1pCOJ"P!Or%
1okVn@?#Hq=O-Иh0Bᖘ3NQ`QgŚ ³K
TD%΁a8bp|r, .oxWn@(<=P(upi)FȷmRi)Ԡ.8@#(?Z,_LqS)5i[iXkґߺr	(M7޷-%,K҄
D85?!Vwސ_U5*p4Fc]5_qӨu:xz
yε ?I*S7`5v VOb0NP4F6v8aʦb?0k+h\i+yG@G`(754Ԁ\HLŘ'85B'QO:T`cV64#!ݞ{s2uQ֒6њa5)륳}k*6;S(Ya51+9xp	mY\:yU k
!jSd¼4I[ B`ݹmp<` Sw)&\2ٴ+!FLت HqUZ}J& 1ǜ	 N72M+焑WiF6OcQ'b04z=ξ%`*2aQ,WYXV*w]'bo$)Qwk!W}d$˟?JxvAmy$d&EPXTU̼>vF1HO$MMn7wWsV<$NU;&q6XBͶmXڈ;s?i6Xv8ûX~ob{8䘛pb5-/ow!6;{OO}_fbM͘^0owI7xVI11|D8]t|í0Lqho^@ݜ$XBۏ/o?[ʭGhyp[ez+I<VnZ2%\$>	GJ;e@ke%_"BH@
Kx8FӇ1Vh+EY^s7n.oUJpT]!KJC@٪:Pʊ8\Y Gkb'hl_`.tzSP0i4|G҈i4~ĔfZ}/g[(E=/ZM0)Kr9qW5P65t5ilU` `r]]K>wV^X?$l7_0XF2:9Űټ>wH)߄";uGdڴM):K RBuP5ducهei dٿV
QM0vVx&KbM%xn3>~A6A|-q EP8
4/(O|↌[mBxz!ly<VQn)Y"ip]9خZaa
Q6{VUW1ˎ*N0/³3g\_$/+j\y`dc\Zob0H;{/TdU	.^c3:ȏy@سKQp:Ah3u]QMNN;cC1ǝArFzv u2`>ܔpV髱0'H)Pz.^tˮfÇ5(.@7@>]Z7Ο!|?bE7`}_><zSF*		`35`nT7(	a%W8-=x
)2H$SUK^"q3x^@~;6jZs+5Ue'LP/9kv>ywfei"	ނkxkaQ*,"ExL'su ixQ#xUOk@{"<V7"R=]Vbi04CggҙɮE/xkz<x}.V`.I&3~&aS;Bq9,C[G&sQkO}{xm&_.\:}x
.EH~ ,Xgb(bVPMk`tdgo	eSA'=35onv穫և9F']UQ40I'1з[ᵁ.7E).lW _ ϝЪds&hemҋ:K%ZW(jP T;( (a;ʍӏHUK&D	xͅ mc x,)t^I_PȘ3'RϙrVzG]J;xߢAɉR=i
*C*!3aIeÍ_gbng8]Xx*kIKa<ht^GX!>#~c5RدȷP>\(Lu@0I+!>現;	!˥,{f3Pa,TͅO)xQS!iDﲄNvf*9ud9k) 8[xQtC*@^rNiJMrqIJf^U7oe5W(JMLN,I-*:  yx){ZAu/6^a.̼ҔT⒔̼͝7Oa5S(JMLN,I-| (Hx{Zd
+wvfcQKbIfyV7S lkx{ZrdC2֯& ,^xTKOQ@:jЦN*T
BRH8m1eC4M9[ݻwW.Q7.GkMhYܹs׽3O
_ƻeI֦jrEo)j1&ƂuEt$℮EAnUٽUrKwʪ8AӺZW^+]<lɒ$M/30KʾZvb*ђt"ش}l0=fghQ8^Rg3ݜrx\Dݴp"b?yGȁ6KmPQ-uqf7A	S_#n=?V aZjYA)܇r)దMRlݸOe0Iܝ7!CQ_L2uW?MŢ
q|k̈́t !5ƕCn
@C34`*2:לxtevmZ]TOH"lDy3KCLsąj7@}6Q$2,Bށmj#=FWaE53ْT(ұrz]&82K:}Z|*a<ވ^[
8_熻mv,6H|	x{ث!is'UXjdr2*t^bIfYj|QJR|^J^q!LXrki)8*hsq)d)+{ć9;y:{p ©sx{[aCNd&%U* Ē̲l,ѓCL3sJSRlKR2J&vobVOJM.D@Q]_KKVAKK95/%3MA_'59$ރ mV-xXQo6~ϯ8/IɩúUm1ؙ@KEUﻣ$[;2H@x8
%fsG1tN;,g.oDi	7!i97c>|JB9#28ߐB搰Ri }9d`)_3q*/ʇ'd-j3hJ77&^,f4A??!j҇4Z_r0i,CP"Ԙ-@*`3qHPt-#`Ph47k1R8t=x^|LF&d`4hL!~g8{-_3E LAlRA5,!"r607\d\%B&0WyQA23%ƽwS%xxlBfؔ!#?mw|5f%2䱶I~BJBݲr)y#Bh`R˒@b4@'4QFW<5bqU=DHSB$M#)ٽhGB%~.:pVC
xYH
5/9W]yIeVrL.ąh҂us_S?PEf1gUMr	x'uR*]X#ʢtҷ0c1ULX'p6oenX^1.nSS8%w3^FH?+oԩhz!"Fg>wǟ&#)g'A~1E7$dqErp<EW+Q"pxj&Y<͓WL9/8C~k2 qBWKrԶ;5b]8[Ft*V;.ПnPfպ.JPXyJ٭Y
v{gUM6WF;k"fe!ЬN̟z4h/o/K=Wv{H_Y=WV5U{eR}S{zX wEڗQƺ[^m *nnq R<[)G&-|ldw}N76UbduƃA-`ǶGQ_ygFQ7&ۅ%<xJ&60',c6+
H#Ah nL>XUNI9TeK'wucFxC*Ώb몬.TjjA6}bJa`ԗ,*عvoAD{e݋Aw=M7,!>ܬ0;&)Ǒk^<(O	AבR؜t7$o6%q>
@yq-L8ANZ'o%}'G.Z})keЈ	>/u4YA}|xMI%wW6Pk
&6v{Gr\C?cF?P⎐KxL,Oњ0ՇD	g7{?wY/`xl|xC&bi^j^rQeAIjBiqf^BS|_|kDv6I'gKf  !,Bx;m|xC&|^~Bj^rQeAIjh)8g%*mbw \-wx;m|xoəb٣&f\# 		#x=ks8/'qf6uU#JYJ٫+-A6Îgʿcn<CĎR;4~h}:puy3{|Lk9ʛ1hr|[ fs',rW#S^8{l\|z	Sg8A8i ;g2cg.W0\8
YaZ7\$o^]__﹄^yUݗt,zLqW=T}	#=|KBD:/8o9qH݈!'w&$0sP?w޸@>&'S{4j&pp؛{=qؗU3 4=&+8f@aryoSS9bҋqUc@p`|o%nB?z.QWw>O(LW~SP׳cg}#<wn➹I1X 飃_^Ze8g~L$Pop)-U^ysrcvfnK!p!GNċXłE,H #y"@"78ApQbdq/a?K=sq:p\5	B 9,": 8](A,a!@.0^Lh^B浹$RLiB{"K
@E]ҥKvty]߾wY M4M{qQg0H{a&q*)Ǆ}'lN'o,pF~eݟ'QwO0'tPN*(m@=qu;$,Y%tFuA4Yap)gԠe<=Kg"il1
rw;>q:dV+0b4rh;p\d;gq:>ehX/@r=9
Fw/c½#rd^ov޴J&W6~`h&+e;hAC6?M#ֺ  X`Y@ ʖ_6ryPqs2M>Oۣn{W.	mZښC*]I~n=k?%(J~ȯQ#`s*faSu*rϗ,yb0)?9y0v
.%wh=F7&]=pb/ ]Pnkaq+9 ZzQ]pK3|p nOzx/:Mp)Y@f\lYjk9en3/L
S1KzkJ;S^U:Rr V2	7&mwؿ/ff!Sݹ6jnH:|ʧlAceaÃ	j0vG;b.nbM ^8s.?s*ݛj=w?; ?w#Cn&m@dPY޴Г#+bu֩<:Idgaϑf0toAQSݓ#:'@5kBrv˻Nɠ-	즎qRT-WOR^T}\ǈ%)=Fa5(`][8~slη
TL0=*ܔM)3lH}1p mS?ixt!fnޱc"_cVKQY'+ "w^<$
o.x 5]p`%0*mZ[Pq,F5M-
K l
N^c`$IsJ*VJD;𷖌SJK:/1,oaX#T% M&ԢeF;-(N,ma9+>f	V,OBL w)
XÌ4el*5D~QG-ލN?%M1"adG#ln9Pi.5k%?2~_3C0̑"O3Y0*N8F|X18cؼ]1o2C0Ar*`k8B?#i8F~hy5c u6g59b |N`hAЊ`x8tKa\M$`ȚGnW#B~SǥiW˭лk*yĚ(-Tr
CFx\EP3:g7$#SMqe$f^gmA!@yg+Ifs,Vas3Dl1uLCMj\YI
>F=))v&\>%n_|sY鹇6T*}|P!S[Kj 7<5>:snVv6ݟ&I5q
O<[R9O:@eըX̪#އgL6]jթֱplBzP˛a^)GA6ro
PÛrL@-hjsYS;XC+{6o̖nsD!R 66$>xbh51k8B"cv.[X*WD6oY[xa3uXp1*B; ߠaե
oQ@;qL'6պ+B)X#+b?}NȞaY4AHnͭImP
,'D13 ?KZ)Dt0pgEhP^鐒LթO0SvjjJ8őxm*"aQ^{7|FdH}͝/9;eԭL3|0qO..1Ԕ0rk 7<L{:hYIi>1lG_%(/Ʋ;waGEϸ&	633MŒ*%W7R+✳ ,O|Et|hV+zG^ZuvN쉗`0!,++õ{VhNd;X !K7]&ZE
3a@Tw6ǽZaɖeL.:ٍ;flO8i&J< s:|}}V¾W	;ݯe[r1˟ZcPi2w@|[ D,]yzi9ͥBl/3>d[θcLRP$^/m݈\3FvoAZPە	
T!@vsdldFمWl{SqjkY^X%
qEit@"]۽9l{Er]	X&^,R)j]ʯ 7 Vؘo4Bӑ̘@cb2_v6k8:܋X|\AWuݘL925şh:XYP`e_/X}(a"믇2y	!HVDbéQ}yx
r}ݺqf}*cvh&D"*4+X9[}y~VT)6	>o3N'(UQ82tڴZBdddvD=i?KPr>{T! ߻6|85"e0;P#	ސ̟=̹@jKj(,ihzLAF?&8Dnp=?ꍏړ2.73d&0/lgw}6_I57rX#H;TP񼄇tMh*8d,ҩOVI_~Er
/E<p`5%ۓAi$`0@BǩߍsTx<1ccir4)A0WaA=uղbҖ4z1	-h7OjA_,xb1ȅ	ȨF˜2*L*b36}#*3J:(t~G7ioaZ,vVκѶ>Gh[VL8;@sh5)NGzh1y[qk-LvSJe&˫YP{f9M޵z^Js秣nqY^Qμ"G!V3y| JF-ܘ-zG. v,5tv3~ڤ}Fv* S-;J_)撻u!:[A&G(-RX_\D{pwgCwuX9SJIS)Y;=8gӻWyƖ	S~4`\z/1N9*	AKǡh8pAm+s첗-Řr=60n_~UWABpp,`ߛ5 W!Q'z7',CߛlPv|d³Jx>qt+s]Y"\?87!M_Q%1ML w?^tbxT`BKqD^Vs/`oH^v[<*J%͹w߈u*6:wq݊Lẻb%.z1]K(sni+B9棅H1(V63E@1ӺP$e'|3E|OjE"JWm䋺6ĺnCO=ĪJ`
:_@{4֢h:?2f:q<[AhX}a}C$қj96t[ʜb4P0`Y7W&fdflm8OgчD%OT:<H#Zj0EF<`T-5l0dɸwڵUOE"m?rYQ1r^$݈KsJ6:InQ]3WxNCG<55\9Δ)F޻fvjSA&%{Ǵ2ih+3[F3}
ZK1ͱ-!a#u=uXtUIe,2R.Ik?_.> n<bb4s<IiOT:4m,׸r!gw&5'/~-_#f)7
(DH(l_.fe<kgχʛ
ORƓQ<>9|vkRDD1\B(iO0u/`paz{Á&7yb!D.<tjGH&r)ooR-I \bDyoYn]{<m<KʑA:yB|jVl?R&ε13Rm(㰐ߊ!p/횂qkbBk\L40ՉaX|e:wY7d(DԆ7)!6&ӴJcђk]Z縒cH&C4=48gWh\X\o㴜eѫA~!JףPƴ^y+JRzGW_@>uʄ})L9c.jzFXxufJŹxLG0j(ȩ$8#yui\zT:oG
}sYkOC.`|+)Z,jd^ˋ}2EX]/ǡgQ/P)JBO8*&MH qJ`S8֞jE!aJv q\	lJg_:xy/}̏]ط_~m^*E'i<J(m&-ݬhjw)O ^:6¶C+,
5jD
]AՕllYhd~-h5rA;s:o,;U@ъ?ޔs] ,֝N>wyUV䖫89T~xuv?CH:"`O:'V7Qx
d`W4<|Tj6YJF+s>;#+j1.'qnBxN. );eW9`7\b7MYM"WAc)7;n8$YͦX 9F/MۙZJ:՜qs9G\n֔ܐ08gU$A%wJvmg
;AM5Dd瀙mo9~=GEEhMr	yZ<(;A=3C/^q2ä (\fÄ0|l(^2}Դane`UZ+X9}K&95[ktxVGMdV.=|S9h!V]Qe.,+=!HWMZQ(eJK]08MʇI@v`tZ-V/Ic(?xٰA#$Uf7+ֆD+s 㗡aKG0,GpɅxZWg٬}tGC}o4GO	ktОN75,wjX'Q&V&X	fD\)fܸUs$LYe:YGDQuћE,eb(|"es T1&PЯ.R%kX˭ڒ)3NUŮ.08`M)];8+~-72<+թ ͔hIypϽDt?tPC7Fqy\<xK^|v{ $rq-'nTTmVj`9vllMv:ȥ-e *~?x,2p[#<b~ED7n!`vh:B ӃcwԄ&A+Y"|G˴N{hvK

ȠZ=J#~O;j~.&E\ݛqkwQD63\9{FAY!"m%
g0rkrxrPaƑ,Ǡ0w9.,]HM٩P 6ٸC5 5+ o6HHwEPKR`H|mMp"ыb]p@wT{ʥl).*M.N)%4!CF/xG,1PcSA8-O9;}Yr
*TR_Ş&_qָf|);g&J}&(y.)R̕y ^5`MJv1VE:OZϳ=~k1*x~""}h`LVlE/yߖoyxt7OoIQߕqTdZ4*`Ny Khp& 1s4Y{.WXZ7m:*Q?7ܮN..b$"kP^Vוt&*&-_K3{Y5Y{!K[ Ui4D.tZh/;)|H?I&n1
DIx[./YFT/am_PHM([O4.V_$#ʮx5J#$+%Y)0V=.d'7 CGyx#ڶl4zfg
;jUy!;BBb9_DA- sQxU"Z뼒M K˦wwIqC;IEԛH^?o$v+a]SaU( x}{5tג&o.MZ8Tzz	V$w\_e,U*~-!C$Zo'fq-Q6ue6,YnlF=	
ﶏڡ]xnlضE8E5cx2jg <ՕІG.yf{|f6!unE*sY4ci%M#ccqxPԮyk9ۚ뭹ޚ뭹ޚ뭹k[䨤hԹ/hWi[1WP(;s-}0d{32/27N>L
d_\?.xܕcPʻnd4Pg@ݬM(D/<r&f_XnFoD90܉cg1j}z|Fsޠ5
͊@"v^,?;$]wOj^i`WVE9z-ߚ2W,Fx^e>K[D刭6$y"!ƣ ^;5[9@al?Vnl3>Y}bH`ݬJ\zS˴ v1ƃV<GlwUl/9vvm03t֨m EUy`mo/)3#Z$Vby~u=t(kf5Yd{9^C*DIw).䠼'}sU̈́#ە͎آBYpX<xi9扼CM/7b1AR&L#).c*B$^ǰ(=~=2d>iApvC+
gٜޘȵQp8u˾pNk\LZ  fSj?eߜmOǽv.OƋs7>2ӸMΎpә#v'Hb[8B6);L/uօ㢺<7!*m+R&;==Hs}V7ŷyg W{zN$-/ERe:¤2SYR&+;in X	ݏ/w[AEjomݒ[[=:|¼Oc0`j'V|tu|:>p|Dt䘐Su἟Cz`+ӭolFsSci<JOclxzv[fvAt~e`4d|_o33ۓpZu2u?t9x;ef=ag	q)ڛFbůmt^&Y+4\%(>ƣeO xcߛl'w^M܌XQķlf< -@n<x;?Y&dl:or6IlV'(rm4HbٜbnĔytI&F>?0n|?E{46sroVl*垬d6k^&g!͆
L7K`/ˬJ,S((O/J-.,(-y{LU])M^6Epsa_怩wټJe OQZx;e>LMY7'2]e%dK5oqf^r>~Vm>C،9' 2yCl3z+ͯL7+<QbBNę7H3ARR0f,MNqrd^"o'NO*BTq1$pUruvy!z2S'Ot7jt1c*|ٛyFEnI84Yߝc\6fvLm5õkd&U޺zqML٠bR
0A&(ᓼL7K`/ˬJ,S((O/J-.,(-y{LU])M^6Epsa_怩wټR'2rʩy)i

A>!~>!A\ Xo<x;e~Y&dl:osCVl_lgΔy5<V/\ܓpi;fl67351mVlel6YlrCL f	BL'n>._YYPP^Z\<YPZd2'Sl&S?yɥNe Px;>LMY7'2]e%dK5oqf^r>~Vm>CrMbZHiLvL[ډN_h5µ=	&slfc,^q3SfŦ^l&7tpm+l ĴpRfEyU%y
EEœE6O:*s9˦N{.l0.9\[QNV95/%3MA__!1'>8?5ރ bG\x풿KQYB1EH
RXLJV9o`{COo,,DIRY٘&mZ;筘l>ߙ7GǍÓѷVX޾_Z-*ddMڑz@(.M6lˈrWBYJ`ž9	?XLN>K>XMy
EPZkG!QLA:{$LlttaQ@)4|O,ܣ&y,	CEf)SoGڗsCmXOaU`I 2],`Y}eF0Ha3ND%޺/.o7ۆGQ'	ڻ9TuuuiEV['`v2L_^'WOv"~WF<?yH x. 54T;dTbhtҊjF\Cx۰eLMY7'2]e%dK5oqf^r>~Vm>CضL&Yۙes_O]6lf4jSd}wͯ36?)8پl󺆳YZY6O`2xSvqɫ|Xcw823K6;T9YMW	|7\d~Յ:9gI2M,( 9T
?x['S&&YONa2e5Vl'Ϛ6:ZTԴҜĢԒ"bj̼ą\|<C\k7ʩPX>ݗ1]KAK!'37DGhljQQ~Br~JLnX^̘ϡPY⩰0Fn,YR2n IGpx?Oyd[	)gd䗖(+$Lx{'W{1VO>i=䃳'7C4;O)9y^"$($g$)h89yѱ^ک6y} 6{}"'Kh6Y.VL&?86y)6ʓ ^y%x  /e7si,FY/xʼS&HL6LKLIU(HUHN,HL,L-VH/R(NM+LVKIKW((ON-.2&-)m`AE/OE5QYJ")??G}w\
 BS@6xőkAƩ &T+J5%M1**`*Ŧ$mO0;;ilf&-bo^ԋB! лGDzAC5<OOϷ`?1,N%%bp;)I+p
\lE(ْ2k}LKNUœx7.8
RZjNG@o=*d&!@pزR<,qA(IЂ6Ȧ\YPKY&qE×(V7\m(NvD}؁m65nGUcuX z.xfNȉ&uc"|2_O;|K{īx+Ƶ^|ט҅ms{P"6)t:5|~f'?Xvf~<JN'gW`"8%^۠(f́*ڼ)S?f._I"Wn4?Fz+03MF WC.g;EI

kʧҿ]:E^7' IZxV]lUbawKMKRӂ ڿ]Ҳ-Z632wB!?<`L}	fC"'#hM4*>;*j1ݧ;w~ιߙ9}T,|ՃoH(TԩUxӛgUQĈS"		Aِ)#NTChRVI11Wt8Z0m"Ө|!K]<w"Ƞl5 6H$̈́/ٍ*8sRr(_yf]cR}hoxHlL7g/ISAJy_e=ئ5lyP?2ngۂ3G3VKP;5W9ށ1׋&FNр1nФX,yjE!"%	1slh*r,UGcU6Rs?.{آf	ԘBbjռ]p)>΅/^5("ҐXs]a@crz	F0ֲ|i۫q`z9^.a<ܘnWGCmBЅ.^YL6®
\y:jpmk8Rm
`H%bP5E0Sd.~~σpK=(3nTW7GC11)8	Nx-fwGT=as$b}_L[U%}a>:Tsh47 :Z`Ak/5vȁ=/~7##|I'?$6'/iOpclLod#2Ub}	J([cŮz0ueCzpdd)n]W6@\qk߫os&BX;RwV1j.sB	iWre}=KؐjIBu]|2	f/ ]#=3,hil5DM?g@ Fh[	;-e3g>vuܻ76E<©/.NmQ-?kѝ@k݁}ѮH 4:G0q	d@PLFM	صy7/:]s+$x;~<hӢdmRW7?]򷯭+	G	[ةZ,7U3xmTlGM3<xU]LU*]hJw{)h--?KTυYfPACicx-ؤfcb'c)JQ>zwPXjj;w=||Ω0sq>r_>M+\'ݗ:[Y{	J8%"9!2ɀ!DV$:*+$"u6yǔ-:aCmy֕M;&]K_y)۳NZ5"KT"oDTBRCѸ,Q9 %I^R!&P3zLE4dUaXuJ>\y1͋K48Ud)Aeʷmͬ3xg͕bEJ0SJx*eў]#,%h
>%%|Afpw>q?F/Ccee/9[f[>'rת:\':%,YpAF.jrPǯi
AY7쬺%g,j
V?svgbMJ\1E[dj`]ܟ۠l8=T1Ύ,?']'/7gܜlsl=^G-cb[sqo&6|y0D5ivMMW3%fKd@	IGaᛎ(چ"Պg{9{p2Qdl/Z7WAyu1>~e+e[Sn*[R7,}Cp(<A";d>MZB5vQMS5t0oCнK4DwѺ`e=$esy8Qŋ{w^m29N?S1or	X+:X c%<&NiD	N,J^/~`XWdq\&:![@[7 \DX(oT|z}#X׎{fx?q_2x{+\7s7e~6_Ⱥ!Zx{o'7!krNӬ8y'LhrdOcQ3Yh+L0I_&_79ӦL7yGɕ_&'JIM z7|x: jMԓ*,œ9hFOjp3);3V(mHxzɼ6󆸷] 1:`xzy'֌ļ׈l6 *&xzyú&|3F7$rM6yλ]`Jʛ=>bdTج)	 V= nx[rymY6d9 8x[ry-5'9P9. a	7xۻ&-;+J+RutS+2KRJJrRsJsy)
%E
>%PO(a^8ڦN*>56wԶbC@ͧH2 lGxۻF-{SR2R&Pºq&.@Yɮy``ǥtCHt*k-ex{8';Mc2S! \	&xq{:mXX6 ]xq{:ٙ%
E.%Yˋ F	%DxN.Yť3RS2KR23sJSR&e|{_~͓ۙ"-71M(Vy&1M~(U^̘]>_m}R'a,:AusjW3"<U	.;X9M\ zC0gsBT̔ud=ɽWZ0Oo[7Ym4Os1N旚יo==RKsJS'oR]{s2#PJRsFb^zg^Z^&.<>&Q,+M>{mȎy}7F4AL|!؉o>>6!I9.%9e'٩LNܛvIʩ:in*ɉ99I
!
9y
 yPɳA|(#F
]	v ]o_xToE6*mv@8!"X]?TLRzl/$3	iF\0đ? $DST9pBʕ[9!Jkץ^V3y%opc55FUbL`V'a0-^D)Tk+𞏟N"pu~ZnN~1hPM1]Bհ_ W |:7+]rP6CQGߺ	8Xz3UZM;dR(
?ޅçi?@
ݳ!#̓#t#	9*Hj*r*S-U63UGcUʔrPu@@=5T:DNg.xA^_˝.;s$Kj`@k(ǑY;6搼fy'vk(*Mʪpt
>6Y1:rک+p<K҂ǡ"k%wtc9o[*ޭ
=X̆iww˭{}s=>%w5#:+Io)!~@&D-:R=&elCob'Rju]I&_m})4/
E4Un*Mt'vtεd͵9m/EK7	vS;hi1jݞS"UWmN'(`rhD<2Ⴠ>*"_y){zxRG}:Gs{%IO|}R>uef:lYB|vZn^zvN\>ϣ'lEpx%Ao<3_]ѣhut>{O՞Cy<+w2A$ W+^p{_/axOASZ" 	hLivڮ]gdfDƫ%h^gc7z21&&8[*5vfy}~y20ѤkDxFas@mRò3jLÁS4&sLAm	n#:[pm[z1zNt3>
	F^.CUk,u5{&3\,I,0<>}k1N;M<X_P8;.KoK{,Z&-qSn8iBjn$vv˫;oqDtBikF33VxIn~/!eϧߵL	0]@8,Th!ܗjx.Sr')? 2_9t%iW3iڇ=8<;۴sɳ]uapS'$lnj4@,Q#5%>xd&0V5
eN@2'As%@ʤ5b=؛GU[TR9"aytJ$ÕHV fwjp>TzP%866g*<7^MzL/)YuDx)*6fwz#btԜϩ ZȂ)K`KūBEjfe)'9S(Naqq`Fk1TΏGg Nvh-:\LtCM\TMkqm^gOUl{XW&.ڄ/M_)_~گd/g:Dx{qRĆG'r
1oV}0yc5 to	Pgx* 6ee!F6;
@>k)	J~9xR.)%IũE)IɥEEzJ\ʙy9)
J(j&GJ*K)MOJM.wd> ,Vx;R&~\
Z
E%Ey)zZX S	'x;R~Փę& 	(xVoEV.@$@;Q6X	j5Ԧ:qhv=k̘Y
8q'N8 H8? ovwֻkn*Vڝy?}fl籽ԆXa0kD:rBXqg
H[	I_s?]ID}̫gy<ch_NHQ܂:6МSk[W%~5q\v$pd #9D~YA!e[a|owq64ޅi}"`<.m#jzh8P49jmfQ8+c{(8OOVBۡ+=A]r՞|PB[tbuzm4> =nɻ2.8	Յ`,/Y-P W0WL&IS7-pJ&R")oR4
F>MpK)N8]0С"dB-cK ,;|Fw|xMMem4WZJ{Oaw7y)C|eg-VL[2VóG%\M.IEͮ<mQB%R5/N>73?1V˪ $\,$"STƝT+$%TeR`2CLikuߗo?	^3k¶Tտz]VoT7x`>h0>Ȁ.B
ꝱ#Yҍ)zڴajnEԟRpVCZ3zGZʹ\ARq_w؀I$PA1b\ASyD}&&[A 0I]a$
Fu\Teƽ  *l8׋$-(ZZ(m)?mg׺e׻ %f	ߧK=#SFrFnzvHJϦRu*Z6rDOs͌ԈɁܝΝv_eS92xpi'Ov`ON̙c/åP`h4^g4O<E
%
u<2KsJS2\C<\C"\]\C=}'i*II,ITHHKO-RRCLJ,쐠:nr '3<2xVOUl P[KA(ˏ]v"`tijQwg8;3s@M}@ΣlXmj?hc'&xPܙev޹ss<>tZ ՇZIkbݖVڦ: 4בVd:ѹ`:̠`DZD'! ,TuA Hyǜ,0[0Q8*؎hjx%	[ӎ0<<d%sqpwjkH<TMܔdbz/2,Q۽R>ۦ2qva;Hi\"2;@&9u*y 1qB!xWP^85b3$ek7T+	uȴkKlMEF^ZDT9xpstv`'	w<64s2Ow@x-NJ~I0'ݭr?w4<v7a#JI&╃ky﹦Q%g_o .T-H{ipjX]۶$efIc"Xs9R_豝Z
IY)>DŖݴSÄ>Kb.x!-fIi@&B?35W3/6(\,I(-dFEy^0kT'\+x{R!z~im(^ݲ_F"2	Y2.%؅teYnT
zp(L<K;~%݁x8x2L h١No^^\.Q=j*%?y?v-7pS3ҒŪ?Yau-(UmSR!4˕+[TsuSw&v].>5~rwld;熷ssiYɂNoBb/lfը~y,Y	+{רGșثm}9ҠY?l!&9x6W4(Қ#R[[$K&VRu(8G#x?cvaj<߁Qs*x9zqޚX\s}pY_6Nw8L>QH/ޠBx;i?'PLsBO&g
n.<= {x;i?͂[
L^(Ak m3)xP a47aUCz&`
-J ]8dyTѾ!-xW[oE&͍&MfHiD]4MAƍM|	8Yb;PmS	^ }*Bo@o}@3k/I*]|\/w~?8ء6v{ԱbCY%.'EU^[2IUC/бJd(Z&85M
qmDgw2]	]aS5娢.!~3܂=b]8+Ÿ0{ُ-n#E'*{:	JҩgdJZȈXH=0""5xc|uġ{·~㗂kcOSPtz}S~'tvڷm$o;JOn~~yrte3(ՠlit75v8\uIN*+6Er浰~]Mdܹpt{j74DZAJ
*
E4jtmXfWzke	Rux* ƸebNST˂iZ`tВʖssjVlGfRTحȐ%󃲘R0l*H!Z7fS݃)rb~T+g 5N[P]C3-p'&@I:T(LO2_+edqaq@9 U<@Il>!g`K5 KlAB`
yIN-K4K[hqx!V&G$\˺[Z0/5tmYMaӃSFPrpɦM;M*-;40畹gFh?tPkz;î>ٜQ!~{p4,L4	yIiثd^L;QXFp(-6J)i(!V]0T%;	epאb3V-oM\0KX~!Mk\֨k\0̒C^+(KB)ϾxDlqscZV6"u Â" P^*?	F,`s A(vQy1
*Le煩鵒=h
xLs*+tFb!MrFL<./t*\|aCA"D.xbo?]A(_`CZ.)<kHVd$hfSSݥu|5ؽc0(/3$(%'OR+Ov~)	AˈW)us\:Ǿk#jELZ{j]ʆU!6N$F8j^ZfSۜ׏]{UzFa^sB&6؁@Z{K+`[ӭU'#'hYnx1X`BqMrZgm.nu)B	䣈)ص*ZGQ{bIm';O6{}ޘe Y
=$Mrj>^=݄hnzm'J?QrbqQV$T 
h7815J=ZE&.6bx!wiyڱ-@lhoj~xe?KA!X4)$BS`q䏅MrX	f/awT7dk;mF	ݾy3{ʍު&WLAgM?p'	Wb$z,$=@\֗L1Jo8%0d0ѺvǙ8ImuO+qE&R^ACO>}pPh-=90.WVsk͖wý6!	6D<116Zp2V],L?v6%2`^&C?'􌙸VJƆԬw$	ֵ֣Tx !A bDlAa@ Gt.x;OlJq$ŗTo6e -n(x{ON=  =]x{O'mv*hF:#-.7
}7gFiʛ&DZ{ ~ex{i?ړy2}Ss*]&T+s9
)I&N-W9Ym" 0"@Mxi?5'GgL>(+ N+\- O0rid8,2J=RSK4'*"eh)yMstK& N0ax[1&{ssgeVM~'h6_.P=EV(/D83/]*3E5>35h&I¼Ē̲TR=Ρ-

%'5B馤(e$%bWBPJR<7o8'2/g	܋Ifpg^JfrbIjBIr2K-OYQFKAKd&J#Ga	IT7W wWmxn@JTU[$!!"DrhIIbm	]b5m* x$#pxvJR)m.?|=c|
QLh.Χ쨾ty0#kMWXdo>\_b8ߐnO@άoLя[<ڳ;K <B?)4QA@!ט|A#:(
CdB):(n!Q%sՀ8п"4ј2C7STJ*`E(V'1`{:	̰>"YL۞}w+%U.޲HE]h5\۪{ӱ,TȂcCI%numc{۽(AHCc)fJRgӵF|R?&J~M/9kw'J%]9Fv|T!FF\
ҧxXJx!1#[Nn3IwlKеC;2Br䨀a
;NyEA~LYX'X7h*3.:{\kVy>U6"u(ԫѥ6m4ֲ݅r0e`U*h}P]^~yWxoPǥHD*LU-uC+z){{ϔ
U<#$?֍g;%)J֋}{ڗOƢI+B~Pϟn^ο._hX܉P&a~06u MXO 1py{"[*2> ">JQ	إjc. N@O_KjQ*
 e
EHt|4XyDo
Tj^6T0	o#FPh`X陶mExkL,ʃ뙎Jk@ߓTA)>Nhtlhx$H=#*Rp13
8J`\Ȅl~
Բj=ǂf`,or!D/c۴|b*e =if}!"#N$fd5l衭ynYXNF*r֪UQྟ
qZFm7	gdW\/f8"L`$#sgWaZ?<96cKAhrffܩw׊e/#8vxz:ӆMl4DԼ̪"b҂"=.E3J2RTT*)T;de+$Ň$kAz
sFM+iW 攟PS
4,$13/5er`zB93R2KR'epɆ
*p)<	)
E@"U h]f+<.;E($p䅡K4 =|rjxz=6k{90Nao>YƖ5 (qdϾ"3&?t)L	30Vlp|'߷ә6L'/=9χmrXsqaHk~ 4o+ xuRAkA&J	xx!
&$KY/v`v7ݙT7>,4mEك07^Eqv}o=G*=]뱈Z؋Pb$Mm&(!&
#	<H*	R1,L&}UwL12u˩TQ8WT4.үџ̵ei5Zi4{'?m.@p+7O܈3rV݉urסmh|O`(ju\;VzHW鵘b🉇ܢmYNŸ5a۵{6TLEd*zJgae{>an|.}YǗ詙viWe7)%X/MWPHW?旙:OO-
xzA|.8uIgMC䖘CL.\0 "t5
LѷLJ%h3{7(xi)690Nn6nϚ_Z8YR{ա<&VM<Cl'VBy(?d?ɏ&y4/i|kK ZE03x\AsW2i22	
%lk'v<[ߟLs^l,}n5ݢ3igdc	q7h	pdX6/rK噊l3 ea	\bO7D{PQ6>KR`3\@*Ѳ.$us쥡x.͑GvClZ׻Bauqhʯ}vHǋU9wCbP-Ieh!h(hŰNPEzǈ 
p;İ&'\0؈^(ʑH
\x%KT'^:)qsK0G# GpRb?L@$J%=P5ȒdrhjVJԘ+rI0W$To\
s#o(]1ԙsm^T^<$TI%1TeO՟ "%W"Tl#tb9WݪQ1*pT]J^,[# ul^Ú-ՈԁMXjXI}O髈/l}̔՗5^<C5H\Җ {9قARölzfnbn&/dvpV HQ+ui ٓbdK/ũ} KiQX7ŇTCn>b?iҾ_|UN'	$Oތ[07Ir6r+PaI{	vz8Z!p=p)'H݇
@ @;8'е(p^pTOZ|<$ƶ+qOnXͱ^p;!Z%ck\v2g|mZYs[ٳq^FebM+6	Tzw8OhL؅&`-#O4\jO5F49ǭÛ	eqb@*<p0@0[^P7pp鰅WoZ{p)c]LЯn/_"ލ:Ogxpu K z]ǃ')qNV@oo[s2"5km-s2jFp,Zᆓ0-JVRXkvxI29F0ыNG2im@BްC2$ؙ;}eL}vsd/)wkìNQr:
%;hR.n`(0uw*C5H|`sZ$zy'8ntnƥ|կ(:~YzU'Л.^NxbI4A`W%3Q:圎^Skyɉf{hF\ytR7$zu;+ͩ=ifY px	θ-V;s<N.zW\~Ggkέ1#o-1
vƭ0So(;KZ^,O'g|_jc{Z*E,[^n&/;_*	2VbFËHmyT/&oiWUQ)(%IRw}7p`$*\[U	8ˁ)¤tdx&IՕs~nfi\eZ8n=VhKVMVh?π#7xsI\j}(ĵTaͽ=z@6G#\>QGMq1(U<pčg*6HEP8fڜl}xdPIU֬d0-Nl-WP"$4`r<Es}p Tbyc\>tcLnaC/<Qx^!}\
[Xb'|E rC'Ei)ǁ#&cy7i3x9zR+|-o(jUbǊWi@0Yf禽1'|#1Paeq_vDqh$n'N }UH*UQ[ZG$$cM%MvVcQ6
MCkOvjRI}Ԋ89ؗ	+Ba˨eT戽aJ}f0{v.CdzK:T=ỌĦ{NhVTf$ȂLiW^Lמp~qjڸp8/d!J48,2VN3%U(974.JT7s][d(p~Z!TyVQhoT0t+y]l;k+;^gkRQan4I}בp/p>PyH=lj,C#?M͙2~@x[Ǹqɬ\NƓOUTPJOK-JKI--T|Et4 @Dx[ϸy:SM&/uwwsrwqwUPJOK-JK+I+M/U|EtDwi xV]o8}W\QiթPu/;USHQiv4OIj?k;)СRGZ$ܯsu*X8-şpcɆ25+(D=2r#|#4-*0K
qM
ל*ͤNA9~ lAHVS`*)BjΈf>N`ȹ!hNСƧjASg4l6FR-<($4nZZH	dir,3#]hYQLM7x
W4tv3~x2YLa<8t5Ma(vZ
0M:IPɐi*V`ibaɂBXTv՘``8[1CS].P?$eiBI[7t#?|i}9WV0F+*di9-,YZ5+>nV>= sieԗ\o6.jܔ<!'-~[T9[f)gsE1Mj("-CE[][ 3Po*e%V+'[2o:'x=zඤ6%&ZX5uAAwЅ	%:aV}ggP͝m`w9@&֒q(D
֤'1Yj3	h%?-#A=|(g[/s4Ia>Q,K7*TFZ%ƸO\97ݶ{1FL#,|)P\UxZ.Fm݃MCF8=$sIO:5UX%5c'nWMܯ.0bO;O52Ak!K5~+)rVЗY_ox:CuW!L|8z$I>}/Xȕ>1ࡶNOW5uQʊ#V6¼?W8i2q#?k@	<(ph9^jǯqA1>`Y29F᥽jfI9j}@oԌN%Qp>J/(o2~ݗr|u	4or;lrxkm0y<l 	xkYAAaLG'3ׇe*+d%甦Z)ؤde&d$'ꧤe&&%gģħ'秤eq)hm,8yBDVLeX㘴&ױOͨ5-HƱMg|{f4Ynr0{}@,6Y	JOnAbỌPt_ F.L8dxOACAiar0xmI+$xmH,h-t[׶w
㾙Y=_pv'Цf}}[tmĵ{5zQ޵:Ոށj62&;{3p)m~GJS#"@*QmTs㦹k\o)Xi EVIDYwQRA[;@b`
90iVT9.[Au	_xf|4
($G]I`PV2Ҷ{Jb!Ѣ%˛σ/V,*ﭢDUj֯ѫL@+ɗ}XDS0A/?SĨzLVǧ"6(oWq?0ʁ#^3vq<@uDřp;Xyy<6h'XװYHk6<hwkPpnq%x&EMLBŐ;zyGH41}ZaU6ODW(+}xMK0ptͪE01"v֎nz-]];v(" W'=yi;Ohϟ$7k_G!A?EDBNC9  %pMVVeһMz\ZTUHD~
>'ws;K]'tb#.=0YWp.}M(C(= 15aoRaŞ
} FY:j1)ՒYc2R*%D=]L3.	ZWCq{R1pF0vH0V㥺(0\)ʳ".r;Z@-<ӧtv0R+R;cڀv"fVm^,EMf2Wkc>}Y(q:
x)s2?HkPP_K|ckkPBfBQjIiQ^jBfBIFBN~rbKjYfr_bn*HI^iNNAIB~	@fi%0'r k/'x{-RhCn]XUY EYDx{-Rh8F"̻7  ^7gx{-Jh8F"X;;2x{-tC|jQQ|r~J^)8$e)<]ٌ=]|ڞXtSfX'>k\?ydiנxgV,\0N\`mOw4?ӏl.@ ;83/9U *,HMW;/DB5kiiu.YǄ]eƂ4

:Lrg\t[bxkgp_<e/{ygS7థ5~a>.A! {Lp}/H<E\}Awsqubhhf``۪WU0bS_|kP+x#\ƿZRi^JN_bn*VHv2?KZPcli  #xCVf''X@99x8FͭNO3 XxR j0	JiE%y%E)ɩ)JV
JFJ:y QxԲTļԢxHXW-W, tʿxZNJl
!qUHPV+kbO`c{1[Uw7'sΌ;C+UZ6g;_3D2Wv78B.;Q~w0>B_$L]	֏f.D(dWnxfGe_0R,K`Ȕe D-@JuEt
`D3a;b6/od\V܍WJſ81܋˽@oMN5ry<DD+	<[2SeQe"`MEm"/,'a|D2UY"H^ Z!{w<cG}vŞϧK2鏦ƣ=#G_g{42:.NP`S6#DyYJcɹ@2㗂]F7"	A"d!Sj
ȅT\ѣ\HhoggC}_EIRy&<?ӆoFfsvD7nۙZƂ`Pr
%Q
rO]+@2ܙڐ*OJtwU)ESxōw\bw?b7<7׊ͣ^N8fkr촗	A/D>KE%<Yfm^iT `&=C=NAx.`9YؚO3qwâE: ^5U>l]L
!%$^d)X1xƾ</lSR16ĐvXP./!\)F`9t 0 8\z,nIS{-g q<9O]{c;pGVگ"I@#^i&f#?Bſ
u6=\1z)T:@,	_p{EgIԚZ@~݀<MaiyBEvq pWW=(YLD1ӓ21d)X6}%2[ޮԦObke 	2%R/u:|ud<Yݮ(Z>VA޴23e
>VH-qX#4MxαJɅ BNSKn<Ĭ5dV.fa#{.țAX 9j
-X~Im3mjCG)pKwZu$/ӑe*ɔ$l
$}Gz82]Cj@și<F^5c8uGn:8ݢsG5z"(<~iPֽ{yYҳѹUMDeGvɍv\/
϶bwbR.A?Bޯjb<Hl6D}C<AqOhn}aaUm>djXq̡X(uLMj1ֈON%PRkѻ-`f)ݪ{<7kk6>vhE{lTL8I뾝̈́~@Wfh4k0%#>`	u}F

_:1JL"B#݁<-AFSjBH8hzALF%Js$ZM ۪W'2K!èNA)FJ(&kdര7ia\kA,maճm+B:->>5wQf΂tYy-~ÏH *f5imI-ft$
:R1֎DpFa8bFL@g*p0<jM5 Gށ'm-}`D#hkEhCf5nib(7My[US~6.)b{otHS{t2^J*i-/K݌6}G[{ԺZ&ޟDհ2;&>kR◷wʦ\Ei;ye^b!	!9UЫ3z:)-d+]]?zpa;Oo6e롁	_I3N^	}
1"tW"85:=S<ttlta)L(PjU4IΧ]tkh'0
C@@k~y!rKpSFԳ &	 5 ly{z`1MuAt6QyoL,<%:3)b[s.^n{P ai.MȥG-]mXCjāI5ɏ4-}"BT')LRT]m. l%mޭi{ xOʢ4s=Zߑ+Q<?/ItS ;	BvBT@մp5ݞa\=(6*@Gm9]P'wl`]ኚ.>m櫛8ArQm ^ws1{^]@P<P:&t J[1C&
}`!"͕	{pea4UHI=e:醦'tl;YJɭhhM[;n9JF)F>>CFĵԜn	.&d@jg|0m]%tY{(ȿDr>!yitʚz.J.]I_wUSכYfyxͪWv[ރۭ]5U	}-pw;bIĺ "9bwS?!Zjݘh)T4I)wEP#єъz_ⱝit(8!(BФлwBvx
sInT㱅-ʳCUU{u3	_,z_0I׮*kѿ(_ıcެ{HHZ,Nӛf(Xx]؏q@4>-]7;?"e#iO|{R_~z^돞Fw?+yxX]L[VZ%oB	Đ쮶lQM7iVfYpVXccư%MBUU}zgu_CU*;^!A韂Ϝ9s|[m^޸woט9K?|h4n|n47qMM緢%`8^c:nE/a#&YĮ/^Gdv@@I~~&dilXͷ%VGQ#w{8ԸׂW\qwG\tjwS-Կc;)}lᄎ<#^{ƨ~3dՍ]}`VmO %1<tO0Eb&0쨭舰9SNimž2c驟*Ju&T&Zym/doe&V0T3{X'D} YĚ*/wg0 <,V .k׾#:eJͥz&9Fcە8!sKb܂j_Z#Dp88Z^&#,䞟T ρc:23'k<P>zZ8
ϧJHdL͈n={ե,ni^եSXZJ2ʕ-/v.'qL*e*f@ك~t*)~ֵ`4#mT5+Uo_-bHBg@b-&ˢԿp 2{+xB/e94eHP8uL}q~R
cKTG sܒ8a@mQ22@aPZ񓙇濓4N`~+=\-
eM!޿! 3k
riԔ ߕJo6Q:yܗd^3ҳuZZ?:Tːfҽ"|<MVi]6 g4rű
a&@KP7Ē\EͣGT%>y	llSkv^!M2 NqΩÌ7>vVt_AblD2<!(_| Zޗ]t6?7$<GdjJR/e硟$_}F@6t{f_B'СBr }i+%m_ad$ucl:2ҀiS}f+ZRR)~RQ\ȵ6w5	bw4 ݣݞa5!?"r/kmLHP;X5dg!s&Ƶ8p ڻasg;:Z8g;o+*)BC%=0p}djﾥ=9&zLyzcu$[y  lxl4KRxhpiG\2ŗtͻ 0IZ?T#kvFQyvs4!{C=0l rt_j4M40(e:P؍Z꯱ŁNINNUpbKh$aFYhHN%ǩ~=Q2_IQY6پҨ)0bQ-*>=;^Bcӟs&D'ǡhq,Js#
ì%erq/U\wTw;v,ތ/JrP!?o/J*(&5M_v;*z.6_3r-F,I )DspT|a/%cxe00I0ܳ} ŝcNqJ'ֶz'	)F20SЂ۴ȬހKFcv' D|x)睠DgwVSCYA鶶.SG;fl]%;&0'e
fjUDCeЦP9O~В {YixS}\GqB6)u|^QZ(D1YOeeLO}a'GصyȔ@VoPq[|?gjrCt"X*#a@B4#S2|ԵSUUU*ӍF6p[Ӫ8(*ݪ,rbIGbuV2>'uXeRWI-ranr1uLm[/egoDJ2 m"đ4:.]oOWXWWAvJ	8*sε_0!Y4Bqt8s%U	6ybjjQ2(dӻUNWɕcglskL7P{mk{\|y$PoO7d_e$(xsbb -1The min length of descriptor format sense data: 8A#-V--The min length of fixed format sense data: 18A#-L /
nv /
 /6N_**$**. The buffer
 *G / _1Gw.The max length of command descriptor block: 16A#-J )7!The max length of sense data: 252A#-H )2F /0/+c0Ha _&The length of vendor identification: 8A#L(The length of product identification: 16A#-#!!The length of product revision: 4A#-#b$: _7$J Vendor identification.4%@ Product identification.%B Product revision.% )2	' /0)( )f /0,G /0/0rd/9xWMl~,[%R(j	8k$$ŁYYLv.!b >p(K9)cO-r,6!/f\̕?Db7{{ߌW۵:&wl<\1),N^ .!y#^R1ll*(7}	ׇ׈ NN"\*K'
[CU,sf:X;lm`}VJhA㜹&0jɡȤYԨ~hm4\D@Lr^	gUZsOm"0UXАy6-7ۧϙW
av+NOЬ <;y+#l&jG:¿Nw֦T|>٬Ǉ(Y8Y4jDh/KbY;&tXu\wB~kn8ͼn1drTk]{WfT7pIpADħsc$郟r,`aT0U^l/&ED[uOjʳ=3-'	WbmG[TVVhR)sfFgk'޳s5hT#>\,$͜mx|Yߛ}Xl(aAB}Jv+FS,,.7oRE^GߴoQԟڧ6q,)&_p??+ a,D'D;*'4s}LPI!\ޤ7T7	A-J495-Li͆;(\kAi 
$`ہ;`uXs(S}!sjNG.ܘAXşjm}Ր,L6XhJ1,.ȫGz8s8o0vSsސZX?=-d/&&SLu*ęLk=s_+G@yЀFygx,_XnM-~,?jv!G:`nZRVPEmT2Z'
"{jHOVUpR YCu,si]js=u6ǧ!iLH$@,uP5^ERU߭AxLMd[5Q͉Y=,3,6HCMOfu@RTs"ofW~=yz~ϷSd.èGvwj66CB&3+6Hxd3Gw# ޝ}3.u,$0V!o	L=~]~-/3O-'{xpw.-+QlYْSqc&A&{Xϳ3bR<2	WSfnnjU(;3 ';Ṹ߆x3:هw~{ss	 5DޟIE;$HfF̗E
u>҇)UH`$?֐<?J83cԿxGwސo,N١u5qVa a!|}YPv1D|#q5b,8?	cd1O29$5c+ۊb*GH_Oq=.}Q?zSLW&lox/~8Fe "~x7~8FT&+2v M\
x \bb^//
6B02ms00"l0"$2&0($2)40Z,G00.W6?3x bb6B!]eQ;x;wo,3d9@R'dm
w2ZlcKc
l5bɾa~|`)͏t@e7~+L㛼E"/jMFMRsXe&M>.	IKd@6s>ahVެ"o)LnS1S"@7 WD@x;wo_&֘<.70۪  i~x\_s6/GSK/NTI5%e7{@$$aL*	ZV3 )B$%R>3mX,oN	ke('SŎcv]|!$k'p`=ďb!SSs7~a$eG8м:<$~b6Kő 2bc	&1WL	fsOr_H5u,`80aW0GT)'Opru:oi3DP6<Z2>>V=`A$N"JZP WF*XY2KXgԸ_D>wsٻvZ^{K>u{ 1XG<C)QBkp 8,Esȱt`k$&}p&#jHƓ3G}Bgg'$ɏuU0	xΚ3O$_?B)`1wOz"mc$>/Nߒ25ӡy:WM']CQ*0P\OR3OB.aˣ`2rXHzR-OqA3+YNAcvٽo毝N~ؼk]uWWHjx+#J`fJJCNqG@<+0v:d_+u|/?(D(}Gq_Q;*EZr.P!"-Npf(YNpw絑Қ𦥁3bq+Jld^my+EYьpg~<3e}	A(WJ[C4}cSg='7C{{evqIJDQLik' Knzas{ =%hVL;dˬpCK
A, %X!lIR۰Қm[Hc6*ٙ+L3e%%:,L4{5-[#{VN:X,}1L
p$11dGOѦ%XcE_d?VlMųS qA.BǙNam`+VʩGSƽI ym:ò%Pş"b!b).=p3@{޲~6I[ww<ԌD+7ZNޤ 8I}3
  #/pҶ}$N'Pv;{.~݅帑D+XO>PaSH#%
FTt
zB=v{bex`&{Ca(ZXT@cwML	
JSOAdm8
	vu,zU{|	nFӴIyk5(rv)Vm]̅6js1%|#<j 7Zo58lQ^LÆn~cǍ+{CՀFq6+&jPFUxFy)d%~鲓D9,4JtQKRWFF.ݴBczBMM^ZHԑ-3oI"nWIɮ?QӤV8ژ*8Bu#DLFh%sE)9ך>##XH'ٸlü*2|x"j,!s5 iqdT5Ҙڄe/1$ qlNU [dcTT-'ͼdBhuG;=\_#a71^q2kg%{e_4S_I1JfLyN$A?_F>CmdoU%cd,bCo<l[aD"8}?OyKyNb:qKh5o v- n}3F	vPMj@_Pʚif.u>yV!pA!̲vCږ!`V(jBS0hzrlѻe$uNh
]aL,BTvr>ryu4Υ]}hdg+":6M+5𓛴Zxdy9+Ҽ:\)ya^6|AL+貦2ލnB
u3]u\亶6a(頄kSvONWt1]鐛iس+3+I M]F~*YZ@oə<e߳	l_n#Yo~4/d\_+lm!r1FiS}ruH[W=V̦@ș%robޓA?\Iylےw5w]F2=ʶh,#z,Ӥ
"6Mez8fc</HB ;OY04}8z]Q<9J{WeV 齶d%3e YK:r!''=.5g&bvӐNZR2N(إH6~!җ{_ط<$Iڛb'jlwĤen4SledQ+}f I	NS8zl3-etV
ݨ<t`tnȢCqI7XAJg橭ﺺmAVE,|GMNRx؉:`B糔ljY6U}-4`D	fbTno!C/֪{Y{	m$4(^5F1ņHq҂2%ͽlZq0szٻm0X6/jW$[sH/x%xX18vA`uMCaDk^)78҂,N<Gt	?W+)(_<EV7Ձ:W[?=4΃ 4sʼi[a~YbH n~SsZuFI,jź܂17v ivtuu\l*/ů)i}{|\)ͤ,0ǜ>1Rj}1tdx8r=
:J,ث,Ux-0|N 0*kj/J[#--k_ԇќҫ;CuvO.|N{z7JԘVDX39iP}3^r}8&cxʲglwiNmHBDO蓏ŬsB^_:Phae[ktWouOPK=i

pCqTS{	3'@R<W*KSvTVjǭy.@ӓ[m ;H2<"0|1l3,[ȠZ[!rV X!uVePQ"W*fFxq)3Gr~nAQjqdg߀ ɫ̯6fifLI,IT(άJ͝mq&k(y;(x;iL>§49_ird9)+8CZ2PM6?:7&+L~onDq՚<M<_lz)ɚ$`ވwrsP "Vwx{q1V
rp {xmo8)Fn{J͆D%a{*2VCuRwCM!Jof<{{	0n`Ze0,hL}e='YAc(

FN"8҃Tg02~~\%l2.,(`$,@"K`D|d1ќ	.[rjDV߃np L6-Ƿ~àYJY2	@r*"+5%;ZPMrN0ɲu
TY![U^BOj$w~O9<	luv`~;bŐCr20&vЧU	B*rEZ.ɚ?RaFSem$R?z:-cׂ9"ڰGzJ0BGBi2<8Z,nzN&$kF)T><.Ӫn!1l%cIV|s^/"/$ݚy+2sa4~`	9=¹߬S㿖
]KnB)RFyZC$vt.\,fɱUҽtԡ~3*-zUgTT[;O7YT"L}hڿ~8П'Iw=xRBN"O3檜x@U<d|GQ)>-xKq#jؘIEi%m(Ģ4ӚչNE(>SX^`QuNO&ISUY'OYKܚ׉׍yjF9E9?hͺ&=^=TY{v`Չ7=J	,N4|)(/:Ĵ!^eP,
EP_+|1mJ1I=?S$84<MM帡06bAp9:	zL:Q.4¶aj_6Eշ9iZd\1%ÛCʳu5Vn8souj\LNgQ'٬J	ݨc"	^Qylkus	8Gpqذc5g˚̌_Ggmucq2q|0>Xog=Xq忁5x2x'sMzC(3Gr~nAQjqg߀ I,b2KXN3s;CUfMv䰟ϡ뒚ȱys)*F$D#sxV]oH}r^Rkw}6/mhOh=<[cqj	;sbb4 g<A2F#c}COD)T"Ez,}3{T%FWb#+X*0x	)BUs&}iQ,-5#sF
i25Ժ{<z,Tqޘon7݉[qEH%,&9A*`NKCV\sB)3]3&V<A̶IE	;!xa>;ȃ7
f?Lқ{Ow_õ_)b
eMnMC
l(&<	I-rJ"(PxiZ|5]Ѹl$/XjP*cgXq`䚧3.A&tBը2
Si]˟gַ-,ke<đ
V=rۜǊZ咜Jِڔ	+ ܔW*\oF5z4M*3~p?G?wg_]Nl+&`[zS4xQyUO*I~NP<	ΥuUaA5	bb%asR2>ƫDӋjS)+=o%3ۍyr{n9b[{2?B:探Z1+̙n`ǖT:6A3hNQ<G*?77]xt@֞JECM#G0_\{nt]w7fa89kW-Oc$9N8yytܑ"rg2}E2{L\۱lx
SlՈc l{Xь8{10kvN8bjcFm,dHȮGlǋ:
TIsIk(4o##a U>{~F,oh5g3\СM)=PsF1KE3x0\u	ƞhKuRL3#5L)ő<P/~$"QY	e$Y!cN,c<V>$R{I5J'Sr4	K풩Aq֒.6&G,0;Uͼx&L͍x]N;N1Hj$CAѥg׳rsn	hr?FY!Effy!ܑ{e$s/)ROG+080'#[*Cbrv%f	Ʈ4ےmER&VQyϥ-=C9~0@%fx|Z$lcx*El.f=Nv& oA\x_n@ES)V"D@P"b%[ZQGױͪnv"q|nE+kD(u_V~-[
>Yz1amw?V2jA! {%vs^MkھiVXCV CZ:̹Y!t$ SKKKcz+Ns*0V
kWYG	C[źe~K>e7DbmȦ!-&Btd|J~e74	 .F?EsTj@j=ݥ:7HKOTEHr3ԧwh)&G>薙V;:9`'B<Dvw2$q1)YΨ+7.x,M&\r YYa_lbL۴׳CҕÌXtYZvSħDJD嫆\U'oCVi+X0ӒC.jBX\_if3a0eY7&<6q*,rF﷗
2B{X7<3&x[$Ot%g+<dgg=ZlZΞbCϦnxĥPXPR<r4eɉ99I
/n}9wt$$*<Ydg'P!z)<]l/{wݳ	OcSR%E epĜTQ 嘖6x"Fh&;d-vU'r XKl#x{#t[pL %eg9x{#HhC' vxmJ1)=^<u@,V=(zVЂ:nCӤL-FGm`.&|d}Z^& ;ɚJxJ@^3F
hN6Bc$U*!$XpL`qJJ1iPn:s6
w='Q{G$Ex
 o!SFSDc=Z)M%Fm1Mt]tixhErMnr`o6E7ڽ\B?6?"uƕl-x,ElC%
 !oDx,Fh& 0Jx[as6_}1rtڷi߉ܝR M_aˠ$p7w%cCL	379jѣlB3/9L%:xeТ̡(PAGu%@P䔂5'{j'傅T	TbF0#KB		O>8t.HLNXvC#K)DVbQ'z'߈Fnwt<&?8r]Bd)P9L`RzrA8Uj\&$gHfb3 * A~!Zu[u[w۪ň0j&SѤ&J3.xqI̩<ԂID&&=ϘPY蠫l$)7/eqrҨH^וᄇ؛)35KQQX׶ЎЍ~5
g)T}6Vc]@aDR004mA
P2!	*ArdδD'	_n)Bq$t6;pK!鬉 3e_fgyuzYJuGCw?y}}эǏ\
l}l*V	]_EWG#gGB;*PiV+['DD3ʉc-sRxQ]*4a8EmB>b#UtmOjFg,H).x]Qfa XACmW8AһmѴ5;ѻ#3n<c)I}dIgG-ءQs_OnLt3)B#B"ncThf,z*\ZLZ$ljL.567ȑ'RP?$Gt]F٧ezS!/jmk=*!;8}&0ѹբv"ҡ#z}o&ٻY(;_W:d7FtFa1eD`uO	W򠷍rߨ sUҚ%TqP˦LGYR.8M5ĥB=:9'k>c健ԟls3%K4/*ecmaJ45aIP،5
S'21SS0cOt0B٪1RV?^Y7c*M<kLFpS!bsgav[w+,^JɡkmGvwdu7Vg}tpg>OXqP'"Erkf+<KDcTKd[8 K_3e=+yݰQfʋUwr;_bN{QEg/+3Gv۳MHUfI<yUĜj;x?,o֠`OHl 0XYe[=}q1i[题NfGi[n@DXc	_#)a"c+O>m%l|KNe7f{0X|qd|bvS[Vnu+?gy0:s?ucs3w[voa5.PyQ݃{u gti-Ul.R2S<
oLֲAܼ{'ͮ&pӊk3l\QDg}ƸśPszHlƳX*&S]xTwTyn[m5ߎVOE&?e,&(GIj]n?=2'lWwz7(׷$53<R]K?w6{Ooy8+鎲D%\d"OvWp9Z;^ A.Ӣx`Et_[F&Yg=Ӆ}b~!}>^X+ 3!Bt,1ϐ
@%;T4}qoVs,k7~icK,66k,.A,nZIQ'|B.rȪM}\ZӸef;P/ua*G4~+.Wxy=sC;猌.7s3N/ ;q4<͌"ƬjhoN,`b),.ܧuqٙ`>-ɱFd'Koޡ* _#lx{^jQQ~Qr~J^)8$e)d*%@
y
[9\]&aq\=&ǱX#+䧁M!W	ŻT8̬R }-mɩZ`Pgg`[.tye9)@w($%榖)@N0j4 Ct4LjB\#\C\]3Z[=&fbH~Z4 X.`ExUMo6WK"rSENv#k/JDdQ%); 3;I[pǙnЂ -&gpq~qXk\) !GMa0HQ#JЗ_ߨT\pm>`!j( 2#SY@e.EAǯs|ϡb+(\І@B9znm{ZBJϺyf3B"Gc@?Tl\(	P"b(b֬b+-,f0*+ӤX-GUcvoѤzh$zqoxL`4hxE!=};|@bRsS2ب7A܃)1LbVL-QTҰ &iu⃺nijL-V{쉾i)((pUEҤ_#jTQ>ʹ+&,r?)XE)T(fلP6OB\7;jA锂dE|PH;.u+d~/EjˉJ[7Ė<v}I^,?][ID	X\v2*y802B]Gh[{*Ui9y(/ѧ`:=LuBoewLIWZdɰuE*VnWXյԗIe';/+6I`[ȸ}k]Yr삈iJ)|aˮy}9|{%BG0oJ$u;Dokc4ڊ!M|K'ꉆ-XlGۙ`G62tD 31QF<o.XF^j+t	\hgޓA67ۨyAEPu2G~ߔQ2wcoK_Oo)cSCH#֬of+@]}@IEu1*n)n0}HRX
WSHG;p{ 4XxR]kPF70ALbLR%bb-	fu]5Y&iq&MYڥi/{\7VsysGnj#Rr5Js^GjZ|I HC0/"%zTCB}dcv:V|sTMSO^@>/R"6d]Aq[3:ilJt4~mDt2cfع)u@A9OI$3L*s{D46LjP2Zusx=zg_YN0j뿧Q8'2\VG՛čK4Hh𢡄%Kfs6K֍LbP&>C5ȿB٩牍Xߒ@T(앍~NNSkˏCOkC lMmdw=8[3j1qH]KX<~QH
*ytځD>ݟ.a{\k? W@`xk{+is=SlU0%d)x)@

%:
5'ڜȹ 4*Ix?KC1ũڢ;X,*( "8y6$\܅~o =tPM^U
#}{|IݳM,]NFLɬh!$	d|[ik4C,CWE :B-
%XVj0 ߁fm!U[uׅ5 d,́_k8kaXlldp-(F*\@Әǝ?@m]#;2Y7֤Bz> .;ܟ2S{h#-{dUʞ]U]3=gׁ72wY'ijQzjTvw+55`a:FP
n辘Ho6bZWӷB5]LϬpOoO[BC'l"x;%zRt+f76  .>9x;%Hd+fX 8`x{$]d+CvfO~rbNfUbIf~wfX [txXQoH~WKQtPB) m'vZ&HE"7|3vGAt'NNҿ?2ps!
p‗\e1LhMZR4+z1T?|&:X2dCZo"LH_H7V<O:A-Hx}"GSy6MKj6E <@I3ɧU;O	tJZ0o&9.A*!AM11HcN3腑NI0fbiapVB$'kBA5ZF>v/ck0h!.~~V.7ad61!#9& L" E3j	`f9N8k/ިY5<"`ĂCo+>1c\hA9T/!;:3P0	l8QLъ&+/f5lbSVPDd
 XӴ"~iL7(M[p셵FKkGeTLrrQBBz'񏽺M,xT`7#ϳh
zX=@o^H0\Z6%Y(D"	w~I"C##XǾHW:Qn/O䘤87WWQu:A3zt%H&Ud1U1%R06ȁ$mN]F(M2˟8J0U,ǵU,rmV>eΠXٝRK:ZBd2&_SȒ,FFRM޲MVR-˵$x/Kҟ)%C,jv^Q)	IA}hc-Sdw@ڶ*6/[RUtݗёoH|iE*Q%9E8EjZ<Mᱠ=XlCXϖxz71
]FZ"cN^eI.TG1J󄌘S4$[b`j)v7tmbq!\˸*
C>v^l>UtDu:Pea[LsZfZ=Uh)=1TosrU+R*հld7t:}{~`rY&jL\$+Hr쨁J;|eó6
4Rrc²k^{S%VYXADITЍB%s!'.%pO"C~SAu0M5:[WvWuG<oy/_\g	կw)tN?Nѿ)Ny"]H[ϓ%m$=C6ſ+(i &D Z'~#Zɝ{/UozFxՕAkAǉʶEڢZCEd23I(䤠$H?GQUnF
){3O&?8Ͼ2|lM72s<@2XE	WPЗP 8dq]ʍk25TaMIڮC# T`"BIUY$`
<(dҭl}!H"s*$hgvmWH\hd/6BXҌA93l:Qb"vW aU.)DIVu(x-rBgh]8FXZzby&ٙ,t@3)*AWDtzNjTI3ڪdu%}z[FSqe~fO)O42"	&[m2vH0l鍩C`S%ϊ}546 >0ӹYpdtu뽸P|V6|{$2/x0A<e4- iɈJkZS&o>8ߢ3ܲ$4[mCj (Duc4d>>0YƮ+?9vV/l;rRnv4ERGh^Ryi?itsPaZ4_ٽk1,bt݌e-N8?Yˍ.A4ż˿2ߘtFxUOkA')KAĢhmQ-A{Pa6vwfM(䤠'aN_APz 7xE^&iJAf{&/^|}Cv#S%ut]U!f1Fa LoE*0S<7RmVLgRE]2U>dhʍ(D Tϊ|:40ȔY8DBMtF$9bȱfMvW<1`pɅADd0.0&YSvwQcTWHyDyE2NN!{б0b@фٞ}dy:Ke{ą!k4JФJ@~*rAw!㑞A4qy#vkoPh+uѧ7kt$4p1h58]"65pg2w\7wQE813Yilq]C'`Is,N'?exG4Crߞ|h]/,ȗ%[&
I+/&0oZLSw\.&Ҿַ6#~:l7Ӄ'~xy=b}/-:2]ɣ׆zv	+Blh3C'б=KWzkU8bZ(/\޿uGpyQi3I>y;{~x¨ٟEyr@Zbs/  xUKOQtEb2ݨ	A	$]0`*
,ԴPREP
@J+Ɵιwnu_LLMft9o?Wˌ)HI4$ώt8AhzqrغHɮvnɵz&<kCC,ڥĢ2¢fm$CN(n~TQ咽59)!/@%
	):yfvëL?-v:
dG:6\h6Kz
A^ڴ@R6SLufv9@|PV'TrT:Lێ ]GA
%Li~3kܔ}QӬ7p|7ĭzv@w!j:gq
a3$*C%q܅t/-"Yx/`dyHC2]ɜ%+zPQb_aG1B(5R5aE	3
:ʩv}1\Qc4'Х~N QJe0JR|%m"&)Fy_|*Q}e(zԧ2]*,=JfՁ v6jc&3)UJŋp̏3'F4+~υ=[ԖlQxi=7k) )'5OB(9N{0u%"㵮_l4m=\YGDc$iFFrMq֍?	EmkՇ*n$ᩊ_?2?V!N/IX.SRĮW_lxnϲ9B )xer$,W̓4&
M̓Ȅ$?.9Nqh0 SFxm1
@E@ 0E 1'PMz#Y21Xy=7"sظIb_3	fYQ0'Q&.	`*(M{y%itϩ0%}93=ޛov	TkwDEtuf;(U$۝`+8,^R`nx]~FYB +Wx;@kgBZbfNjBQjIiQ^B^iNNAID6ͩ65E
E
pU
9Z`ɵ\қqg29bKM%Xqqsl.ˠڂJ :aex[Uk?CvfO~rbNfUbIf~wfD6, xs8w&Mlw{Sh,$G2jl֒dc !`uM-{eq\xȹ?N/ȡyDN˧eHC1P*J|qfгX@Dʐ#R$Y#29KGux !gPÉ&
xCסpl(F	5

S(1
Wb}JK~;vՍQ?5;Aȭ2I
 :LY]zO^Q+Lc9\N7jeo QT:9 gNS|\noȗJ]ikjVZ'Ri~%֛"a4h}Ah;MaJ(>dc;&녴HϿc"CCADK:GP!?lGjY~8r?L6?u9V4,X`S	Pw4qEBIZtn@ѬJOCsSPp4+4FuzA?W,~p]RJ&TV"V7tF\9Xaq1*]~vT*ً`IᾺuC#fvc:4֥Ѯu.%\f^Òj ^V*GƟǈuN|cnD/2@fn¢aݐ߷owwp&ycxaiI+c9}xPf#(d`Xl|Da`$/Rr.bRK!耀ȵ/m4dD	G1&
OTfQ1ִ8 j"+>S7dxq
.R19t> nܙy`00T fB>Y4~(I XVuj[`PM,4R.],@SUgr^׏ф0cDfq{~^tH,eo} nn)_QZjjͨ7?W*1+U~ 'Q͎7L(񠫎Uc2)''R#IRb4dLQN0T.0(ql1@fԺmVoI9<Vi58
MBMaXm"֤gF!OU
xdc]̈f9Ե s`
=LЄ+fBE~95 `ҳՍÍcMRNW77
B!WFɣ0B)(H[{RA7Vnch'Bkl|eyKh +$޲>?6=I5:$e$Ǆ%i$ɡ9/œdz!d?3j3.c"Uו;kjYZ:"*Ϋz+HW8:C+R̥=J5	:u520$j. pr]6<Y+TELMbN)q&on\#sV]TYYo(CʆH9,n5edU&OnѧER	֍fz:Em%۔Lϣ|ŬND9S-r%bdFXxl>7?q433F0܎{?s'ڦ:lqГ=iada$-GP]-y/-V;ί<hɸi˸ٮ@K #fLd"Q:Wِ'?L?2?̀Ww9,xPeN*6tR8WEyVpZ љ6sFGPttx5u5[6kPg1v&]_Q$_L౎.S|[F,əQ0A1l\Nw{:+2^i^`UjnΦE^ص4;rR݌Ai"Z"=s1&&f62cWVƓ	 Be16b`qy(a!k}5>FdӸex$}Z	eHAR\CVeU5l;&">B<3@*Ŗ>ɛxz}\"uDOͲ'ʚ$sd|ԮҬ\EdzL~zA!:T*g*GAҗԅӲ ZBF9?p%8QǢkL1M;2?$xT3dFa:&m('Ϥ<:r:`rCEspH}O9ۤN4ϓnlUtY˯ە2Y|>-'rjԷr DYEB=HOvUҎĎ5xLJOZ.}d}ߵXlErR.%V:)ų؅3E:)ʴont QLMa_	T^瓁?29c+c֫IOnu&SJ5
n-B/\Ȗy!p1%=Au`Klia/rq$r.k,LycEnB!FP5(uvTX-Ş>%,4OVd[rNԩ+$g~_ְDg=dYVPN>Pu u<LD豕dM}"b`	](k>C7/33#S/f8@';g>:'%V*V~|s JOL74-a&9RS$r`gSèN7O7RO'j!1$[PL>~ə'OD|JOToFKo$*$3`]O.u$X3\3\g׋u?3)WDUwzҟ15:5jW#ܒ5|rsrr?sHW;j]?Уt#,7y9>V';|a
tFt8>^p(-阯cK9'er5yu߈yB:ytu߄@ŲQAh,ќַC*c oڍu\k7*__Wn.DRھm֙W2y0g<2 ش6lm/i
WwmE9tC߾yϙg9vdO}HEuVi(Usu6.+xXmL[UNa6-t̃:TÄSǀ{[k6K f-!t.q3`dG3G򇙬{[FZhԮڤIy}y܆cXL-QǰT/F<lƆTT(Z"zdm<lqE(fnt퀺ײpmzpاT9"}NC2BV}`ә.26";S,1ZhcΈ96dQ-zt TB)N7#S:4x2vp"Yd3ohf ('^0=VfoK&N9Z%:X؁P9~<c7qD cY>TQRǋҚŬwB~.'Zv΀L=Ev܆,76Tr|+J`Da!o&bPEg$yuE=dh־ڙxt.h&9B|ad[v{&#
j\:9ybu7<ŗwqt5׷Foˎku6@_G[]Ѩ-g]F؈g좍A.{x-R'(T$10XIhtdxEA-"]k+(Dodjx(zT{	꣈g%gJ_-)\A"يl-oɴG{a$K৮\2lcQęwDV([)5폅W&+ns~CxkMTyiחLwWZ%F%8,4=2R'UJߒriQ%1\.vr#̵߷TAnP4q3l<m9\{j:%CO><|2vo  AuG!>-LuP*-`9@zofVծvo/%G $AةygIҷ$cɣO9Wjw|zr?B=R*ezյlÝ!ثC`<0{P#5_k!CS8yxtiҒDx.	7OQɐ揿S}:s-dLi-_Sr
ɞl[®VD?Aî"LL?Yh5S#R1T\T٣PJɣ=P4q/L\?8:lxX]lTEm-miPlPhJAmO4Hݹ[flO6	?!rx0A5JRQcbL	M| &>xfnb!{[l99;gΙ^|?r!7Ale(yΉ1břP&:Q,jl5ScUxDp	զ~6%hfIt6"6
&ptf1ScQ%5nhsx~oMQP\hoJī;d̕BO=WlWfn_'[d("#a0:TcKH91`B0L] tL~|O;*ߒ7	K(3ht,m2C<@uq7ʈ'ki+ä|0Dfab8$Fmb
tiDh<9+]f%LᥢP$|6v-0}s3cbk.}3pдkiI%qДŨ&è4QcbQ1*v-̖	Cz4LTQUrƠUV.E#cO2`1GBznN/zwzA9ճhʎI՘HJ{OAGu^&̿>0Pld2ێe0Q?c"T$80q[ڔ$Tȩ?VC=Kw9DL	N;DFd_CP53z+Vn=2@!b	IKaV5yr:rpͅa}58oN^״~<H-&BUZJ*dV_WC[3N"aXs0Mԋ9wo}LJ;6Տewe`sAHm+*=Qfb:h*۾3a6U*l:S1]WȵFdQȲ -o{>750k~"
i$mf0MyP|[E <tsN5υvܿ[޼pϸX9|b>1HMu<Eȋeӄe}ФY)4aӁ>;p
h<	;YiGV?dNMLlWT׾H*>tMN~cRÅ5UꙥϹY-׍Ge!5Z̒ލ͢j<=zɖ/rA<]wUu4+V<\.wdX>Ψ0s G},柳D0erD]U}h"![r5g\+OP<o/gʤo5/וtٛ/@'+n x ӆ'GMY̳9.f,Xn=ֈRY&7y60_ 3.Ixq1o~l4yjEX'x)Lvt-q',B&,ĪlrL4{&;LtQW1ϊqryzשvL.o6@%ͳ:@|mp#OnrðarК!?岍,-35qwͿaZ&O9YesjL臨œ2-'GMY39.f#\O0cݪ'ՇN3W6YbpK/3NgIoM#b<,z6cD86-m SK`1n=ֈzX~w&tGi/YL(!k
EJH*6Y,˺J]׵*lBS1ygLZ
'Nܰs2<7ޮWOf ;%\)xzi{<e
)Eɉ%)
řyɩ
f\
Z
ũy%)=JrJsK2'Xo/;BhF8U%概l_3ٽeDe^}2JRS(+(d*$m,Q(_.
(mQ(*I-Pus~9dY&dNd4Y7ٮ,ux5RKrR
N,,X 14waU@n!1	{6Pa3+U a/xi{捌YM.\
O$4yVfv)V${ҡ*6MrV Bxi{
e˼X-&+M^öyEKk $ZTxk ӆcٙ%
>ɉ9U%yޙ%n<1drf%
j2r6q9A~VLS(,VH,))L*-IU rKRK3RStSK j
sSKRJ&;OŎz,.%'w=dCoy6\8'	?HELt:	ғ'YB9'N75%3:%' nᝈP8Abw|=<:a ɱ*+3YK!wr:V1Q%\dx(1d]ev0Lc9Y~̼cxʂTdm_`D?)uUTn)ea,"O!M)GaԼyc^@?nN,9ʸP[RDLL-	h_`t0sS';e.R;k~cF8#~M<Xf,ڷifÛ!e_%]'#M|k2$g?0!vLȳyw,|DgU\|f\%M"&W\$QirP%Th@}99zreu 
KFxk;TvƐɅ&қd'+L٬ʊMI7BXRZ:myc^ vbQ͆m-x&kJOޘQ9ΈăqkcV4C0A7KNFdFs60cL7lfw(];Wg&)[4!ϙaBypER&8yO/ZBԗ*'WV Mxk}2M,"/U Dcr$xwǘ3K|s2K23K6`\ UZSxqQ?8TRRRKRS3SxJS3KRS&?,'ƙXjfX8`9Hd!#^LdA$?X+x)dd+$e&* 9y%
EE):
ũ%5E%E
%
o>Ŗ!brVpڲZ~k*<ىo3mLp7L@w2N=1o9BW,Ϸ;6	~MMLPa-t<m&tw"{w-?ܵ(r4??ȸ"4BXCY\Қ*+VY7j6BVټVq%M]mR1etJ3JTLnW,.:9ߚkr-X$D*.8
Ml2Oa%A!Ą'[(c	uI~}vx r&L]fA`Fg
5-1xa1<R  
x[~iQ&w+kۉ?pL~`aM>19ArOX77HvA_`ެ2[0n79Yޞm2Xkc=&np(y֤vɳ6ׄh ]Fmxz?8&/4ºSƙ\ɶYK.ӫiLڜnr >aD  #pkNx;-)+ fx;-|sSiZZjQcNN~LPl.f(=9?/-3*X ˅ i
N-+	
CA&$&O^$'0, '1/*V;YQfr&7ll0yӐv)y!቙%nyɓ9t'ksKYPA)`،@0<K
JRS&?`I#wKr 4xxj`Ϭ2Givq|PjzfqIjQ@Q~YfJj: Yqlh^yAj^Pjq~iQdG] X9'8Mb{jIhvje@fciIFpIb	L^ & f<X3/ĵ蔼ʂĢ::ǔ,ʊaJ3s)C2b[Qj*~u*0gcQĥ \ :Gx:6Aǩ4--(1''?yB&YvLjp6 Z✟RM, qaB4 r'/`@ZRt+ϝ(3y*-Dlr{$y=4䰝|C^aZxbf[j^rr W;.qx}MNA3`pA(	c!1qƈ8+5-S5&tU<Gqi~*^k{=|jWB*2+Hc#Dg *Dl(7\ h3H)-[N rW,60 8Ye>fĂrP<PnJ+6G{pdS0;7x[(*{M3C3`oLxAvںc@t(=\\>Q9QRv}d
Llp?!j+32Ǖk9l},5jL֋S}P34ե~UV[sVr?/?bxZ!!br)3W, /
i8x;1zk&[YԢļԢxԒJPfZfrb&̒
h2KR1ʣ+,MLT'έ(5ʜRSRJ2s+ yH"}x[w:dfU&#'1py&LȪTR ZX Do;x[7{Cdf &+dx[!1zr?
Y^ԼxĜ̔u\$QA[~QjYjD9'8UKjb)#9x[!=YY`rGIIAsQjbIGjbJjQZ0iaKjqIQ~%y>|pj	Dn->6RKf uM&SVBZi;6DQ\J2SQ*%.  8^^NmBx[!BpC>  *kZx[!xF`'3W, !px[!sgnbzjsQjbLrcraifQ8M!@IIbrs~^IjB9K*8D8 %$5(-19$2=$$37$1`B&Y	pQb^qZ~QobIQfHfX
HX"ZVXY\7Q^ꔼb|xa(.)ʯ-=aF5M'pȊ9A][% K2R3R!*&cW*
"ǡQȡht<00\RKsJBW[apfUr ^x[!1zr?cXp~iQrjsQjbIjxfIKbI"Xp#q1,B<'?`ׅ(Ţ!/ wI-.)ʯDHISK ,Ed%!EJ\
@P DG/
x[!=YYprDjIpIbrvsjQIXjQfZfrbIf~Z٤a
SK2SK<Ks';rh("1$SNjI1XKjqIQ~%jԼ%.  <x[!x1zr?*qԤĢԢԢxĒɎz%RXWN~[QpjKbI"B B%BHR#I&'e&!"Ɇcȋ#{旤Y;E3Tx$T`w:Ph!LKbr`&M@
f]Zĥ \ -bx[!=YprPjs~^^{jcJJg^ZI[QjK^qPjqiN	BZIoN_jI1VbԴD><BZ
*$ZZi|lf!AtjrIf~^@Q~AjQIf*[$
8'$&ed°ˣ hZE%\pTaPjzf1p)K-B(T@RWU,2R~s nhV#;'$%&gԩb،KP7c3_xLTS.1rh
D"Lo )SR ZX 		x[!iSiZZjQcNN~LPl.f(=9?/-3*X ˅ i
N-+	JBA&$&*)r  3jjx[!x{9V&X %x;#uSiZZjQcNN~LPl.f(=9?/-3*X ˅ i
N-+	
CA&$&O^$'0, '1/*V;YQfTf[6H<{i! MZ#xǹkɑ,j2OcQN-	JM	M(/,OIUR ZX =dxǹsCy6o`c ZBxǹmCy&0w1q \*x9sC.2NiiE%EJ}60c x5x[Ƶk'KQ~SiZZjo~Jr q	4{x6}LvyťEEiɩE%J\
@P Uh0x¼%(RI+ GUx~cT''2+%&%攄'N>ɤAάJUR ZX Fxqc]fƢw Qt
xkaȲ=$(-193eGe<Tǲ̜ĤTԼ"lh^1^F =#`Kxe>/*ÌjbZ|x91zr.*L>$-_\ꛘZ\XV뗘;y?!L.>EEŎy)0JbjuI-.)ʯDQ=!",,I+A1\b[@jbEuc	xy1zr.%E%)%w2HŻTN>!*/.X<y?sN~^r D9dx̼e##yWrsgdL.`ɘ G_mx;-BpC>Sf.X 3j|x;=w&#Ɏ<y驎EEe0ByP$&d
 [3E7x;=udGf̲ԢxĒTTY<2K&7ä8R2顉d3k\fV b4 V0B{j[~Qnb	LB.(5'58UKjbPE@x;ƽ}GKjRiz{jIpeqIjsAih{HRpqIT񐌢8L֭(5MN2\ϼ]QK,,KEG(_T铙Y;$쬢TĂҢݤb3Y(p)R^bnG<Ekbw	yx;=u_bIfYj{jgnbzjpfa܂ԼʂDN%NiiE 	a$	 4$K˃K2S@HdV%&c  &)=ix;ecsj^g^ZyL>BnKjqIQ~̮%9 a	TaJǼ24dpiRqbnAN** o~n
h69)q) A-W, 7mAbx;}g{@brvf^D`I(ӿ$3?8=7375`f7t`@9%2bы$/55$P_ZTZMa0.ʘ&gT%f&%M쎮.:X M6gd'OcT1RK2RA|ĒD\Ңd`x+QYX t62sR3DcװJ _;#;x;ƽs{@brvf^D`I(ӿ$3?8=7375`f7t`@9%2bы$sdsH{4HU#/$,5	wI,It+MLO/-JZGe@fEjNnb/l&eg"L%Ǯa 8(&xzi3g^fgnbz_bIfd}F-̂U ~L<%yy ImT%.  \kxzm䍌b.I%%œu'
T	#r,(DUIHFQjb
60nEI`8753/-:iT{K2R+Es"PQ~QOfnf	.3KJJJRA*JL(T4 Uer v;)xƺmOp~iQrjsQjbd}FM	dTϼԼĜPIϼĒ2Q9 Xe|2K@BPYԜʐ\q"aT<z)DpiAA~QIj[~QnbI1HZ!홛tzZ>H\M<( H̴JiAthA
.%&*q) A-W, wuxƺi䍌R<٩EE%5y%~%e AA 
wI,Il!"ꖙR*JIM,NUR ZX u&k	-x6k!F̆J:'ֱeNnd@aɸ`J$&`A	%eLn`DI$$*q) A-W, 9)CxtyBDAˉJ r"'k1
  
lgx41zD^ ojx>is~NNfjg^fI|pIirKjIjrIf~^yP٠Ԃ%.  ( 5xȾkzU&;2;%&g%&L>Ϩ
MLvLI)J-.Fu.JM,IOJM.AR Z\R_BKjbQ\-x~sz&?c\,'Z⛘Y\X3qTKjZbi^Er*A%ER+ ,-wxȾ}C%3dEfә =D-xty(D5F
%!EtΉyɩ9`1%.  f;x;|y5#dP00y( Scx;μeBdkFŉ\%!y6;0 
 xys%fV#%Ɋғ?1yRXܑxXT Vmc-xygu|,|ę&;2;%&g%&L>Ϩ
MLvLI)J-.Fu.JM,IOJM.ARZ\R_BKjbC-s|xuC#{jIHfnjqIbn䋌A9ũJ\
@P IZAxe_֢̒ɂLgix;sgcLI%~)ś'2f 	(x;ǳoC:_,\,%E7Mg}/Vl&  \7sx[k"{jKjqfQjKe^bnfrPb^čBDC7+22 v)x[úAi"
rΥ%%.%nE%J\
@P fHo:xaeݠ4$d/&' 'MxeeP$X_Xĥ \\ %xgͲq**doFbĢԊԢ̒Ԕr:ilN%~J\
@P isxgN TbxreFFFތ
D&?cԁ4 f	$x;5g;d3f5FI̚<%EEœu&1:g$楧:(q)@Q ;lx;ɵ{;d3f5FI̚%EEJ\
@P _x;ɵ{;d3f5FI̪"yy%J\
@P Љ
Xxk$}bdFyԒТ!!wr 
h x{tyC0ENĂļU݊sK2R3R˝JRjbOvxų-,*3
))r ijx={\V&X A9x9ɻ*.BE%!Eɩ9J\


{}RS܊s'g 8UxϽsTɫ&g本+ `wx=#K&Oe6+(-wO-N.I,IUNavH9E1d .%E`)Z$E톫@PZ\.URYgpyfIr\Nů9ZX 	Y &xɹkvɥ,xXKJ'od]RҴ"%ZX y2j^xycW, sxkvɥ,xXKJ'od\R<Ҵ"%ZX D$1xy}['3lV`Rcb `{#x;¾iSiZZjQcNN~dCFYvd_&5.(;4h Z✟RSX BDSJsjb?)|xʶ1zFUFɆI٩%9y%y%E%Et!$9x&"c1'/5@]Apj^
nYzYtYT++ |G0x4^"0?8>8$$(51QR Zv bdYH$W, 'mBAx61zFI}N2 -{	Qx[ry_js~^^{jcJJg^ZFWQ[QjK^qPjqiN	HFYGNWvgA甥h!)	+Tĥ \\ 8bnxļq,[jrj~Fɉy'zipN' C\x|m.i9%~%}ySKPĀyy%yEE%]'*rN,HLɄ^ sY#	Yx;ɱa%gKjZbiN_jojIjQj@+E'/`())(ʯ2Y{	F HxxebdFy̼%.  ˔	/x{qwC,:,
l%@\"GIIA@Q~EsbNNRbr@]ɯDȋK-qCI%`WDMJKjb&CxW]oF}WKbQ}	ҀAܦQU^6!4̮WHtۗ)"3眙]7xЖZypWWC7c+.×"7΄8AqՒ>øD$
̜C+e~wWZK8z~~#Xl4i9HsS"@.XAu,cCNp+3JlV+YTfBu׾nCC_kL(,x"MjV xHRd -#bSPh43[j FKk5(Co|Ck8lǽ;qo_?A?pdϩ
 6sGoASHXZ2،L.J"HZMjRX,a^ګjjM2yșY
V^~ə*#Wr)Bm.k*ba~^k
6|.*EP|_u>B\rU c}l,s~WP[K &?I,>^X
_m㍏C($ʒѤx̌seI@qRe<ƅ,S$ZFj0gxaiJ`j\0CDJ.3fXԂvBR:iC0RO9scbZ#ibZ~d8*ΰN7'w~p;lw'=oGa2/΢-APnפ%' 3M5&z/3"*-o+bg "1
K`НUO9h#:i,1qxo{/:L4,q|TDa"ֶbXlm혬J-H,ƺ}i`ejgܵ&CՆQvXBnvV-۬}p%^&;F3[d;SA|zAiuN2-u8nr}\]1ܗe`}p>Gn(0fx2nHW_zwT3rV"46Ln0KvHX΅s93,v#dKg-643Q*mU!.J#RH77j^gu(E	Q,(";ӡ	]uU_|bt]k?HG>9R23g}޿}Q	ºSݩyoϴ}S/{z=vb.qQEQd{2lA7=,^VZN/4E-J^n?:}WyI2|/N;
M⸓Ǻ|TD{ǩ(}ͩ3+dA3k>_Jwo䍲xW[OG~G?K@!U)XE&NSk;Gw6nDBHH0$$DP%$HDcSB@}i-!}w١u~Ș$܉z{zFCq4LT92VNa0, [Sh#!}A?b"z=,7put~6JJ B1b'dlPD4$IC%e	M8017KaX%(u'Amww:JN^݌wC_AU-N/61v4$*(ԫJiHQW6	%Z܃,=FӒ8
I6mR'7 $uB(@}@D\KQ_0Q? |c@ADx09(pR+R0n(",$Fd@m)Q\OaSPfX\^JT8*I*QP0(RF(h81)7Qe/jCj(XVRI5Y5*Q h5$U[NcBzI+'$S9#Q$QDy'$5daF8,o8glűJdfpĥkXdPƢ8M%*:u&||}#ܱ<'QIQ(0jqY"+@#PT3$CQߥ@p0)cFG}"C`6\VН&:<g$"m6	A(;5UWؙ*U\]9[Ȳˍ8,DbZ1{컃lo!{qpxFq9>r'lVq5;Xr>_lqʹRn߁P"fpxe/"3$JPa  [jfa'zȥ嗭~º=$L^Ż.
gbj:eeߩ5Ph]Zn48{
]n*.X(l~z  nyqK+޸g}M^M7)҉RὫgNYFd*ڳK,@f<䐦gW9@U_|=91kb|흿Jz,*4 k}	.U.ʯ^á,7ބMluhmys]ũ} ywkVjI?8~|>~
ʕ:!D!=(tM/׍wo
e4i#dA1A~I[EMqRt_⏝nq>'aٽ^VtNûjY	+o<+=;u²%FJjΦdnkSmi|]wW7Wǎqgu:%v|y:/&5DtcffCxQOqXfap[u8xljZy	'9H=}64[Uj~擛MũdjMmloMwt7)pNoExkAɏ&H& *5ЋPJ!Ra263IꜼH)xO٭`Q<Ͼ:Y8/^B`AA{w`>㪙}Y+.҈HTƜj&5܎ǽéI2nmqc@9# 4˯\:Q ҁj]-$˜V$Լ]rSF&iTsM	RmTnIsunb"7aRٹ~<+ka+nf鐈ƉIhw0$*9RX\x3%L,}k&R'_+m
ka]&;p4OcTɒdŴR6*#*bLmv٤H6ka.(:϶yW4<?k93n^{5S]>@<sܼ(	aNwu1y5m[pyo(_QSx6z%]4?*{-3k%'w	x IjC9L-&W00L^TނKAK,83?OP RLKIMSɤ6y'=,3RrR&od]h91gTnɺl|z`3S-&blyڃz3P5#{< [.2x3 wfndef &ovFK
Bx{)IjC>+{Fb^JNj>Ʊq)hsM&99-cd;nwd3S&fhylGNGFƜ@fy> 4gx$Ij3fqf)FFF, ;x$Ij3fqf)F eD)ev& u
HMv 6Px}ksH0nݽ󺎡$^+Rm( (b\ sK.3*
eɎ-@VUfVVfV>~|;o'4^ދޛWo^~)1xjw;ʃ]z>3x8`/7\3O|,Lb+>{+Kҿ$ aÈyvV,YЏa7a>Hro෹,=y?4$!g?G'Kz"Xy)u²<3W0ȿS	&0d)#8Aixy y~~8Ɠ{{xCPޏS|x2&鹷zr0OO෷ q0]hHeƌI>lf<ͼKcXb2̐L1 8Qs?*K~w ȓ4YԿVHUw&e́*nx%sorl_<.Wp&s{sĴOO_sV0@*&s2[`EySE|=u<8KY}
8I\2	1̽aQ,+{s?«O(W1R@͒I΁d`typ>|?>yw9:~8;}w><;pyÓa=Ll3ųh0o,8(cWϥq!p}{Im_4MY0$JRwgd،3m5cw+ƧfG@~kx(^/$x2α7N wzx)xr
 $<	Jg>3X9Oӣw?E}}  qMϛ #sm/?
%sܻ'a̗4$`mS+- !RYѹƿx7 ޒ1=65/,OCPù+~1GQbG
p^Yu\,_/&u_\,51`P`G~LXNgdJa2$Co1)n|Rj6#F)yNj&,Iu[d4X#BU {Q'`6YS\^ӓWV.}GM/x$I~9^+AzY?;ޜe**WZD7'ר?X_*qj/mO+?c({:w8¿by8# vcr83}@Gӽle'F&h|2{v8MVTslx8>?'<O>
J#-C-I@{Mڗ rh#Uޫ[;cnJr.NFUkm7AP>`_/6czx~zɦ3+pmO,س(0&(XV94~8OF85wVx
}Ϟ^E>;"iI-p	qk,!W ~d7 ׯ[a*I'/&$],ӷo'#PN
ycgW׿pA;W,JnZoV`!OVR0Ur>==\nNcȪk=xDZVO*57x{zD:*m帶}E;_,Ӷ4`b^vƲޣaT5ɸk!׷[BYHmj}A}ːJ0]J9f-#![usx:7ϓ$
W>!49=XwGAX{Gvy 2ucf~l89t {:PÛEQHGqåW혃~`aLW@Cґ'?Z
?6;AHK6\+q fxH^xb"~y8AGsrd<<>=]m0"Yf_m)x[LZveqcG"D1~|'@rnf^C.b*&S_ѐyt١41dҁ~jtLVQLT1[ٖ	6:Y HdWrt"n	l5|,)Ap:e;$w.ߝF	yӛ0W)ԦB0c^h~kKM|old~z0hx?B|S"1᤻kAp>,߀Gk,@V^K30poMΗ!nOx@;"A~B}@s0?4^9	0eS9q(gqQ%?%Y[ 46
^rW2D298u^s%2pt uQ"HؓmJV4qAO0dSUTBbZsKn5
N&`zp-!Hk
pY	)xŸ[VMFQ<^+^iВvy2Ă^lƲlH\&K~}{<|.qrsT
ˋ?q,o0#Elx>]h?U2d&DQyy<:>=ԊQT)-,'	riintg;N<a:Ǆ瀢+qڑ}@ q6=Ce1<6Gďf*Is>z`m|1^V?K٨-^itF͔ߝe^y=ȣhbl$Q?Y,[%q@2ML
"EkޤVT:`eKl=&R^ʉr+ cH	|?)\UUgqb=1ցoN/5s.	paG
7զ*h"v?@Ćb=!֏BORn*jL;,_jŠLpܻY!:\H<E([+CJQRU(Vf1KÙbLOo|Q%L}W$-3ڮ7c.fhg6Qa!N3g?4o/MoLZVי>JYyFSaT~U"v2
O
!nFTm;tՊmۡn!`9Eoဆ_Ijo%]BUHVd|#9k9P׭Fsx!+Xռ;8{ V{U:m8t&QjpRm"FeC״q>PTfܱ?LMU|7WI	0P`-(n"9Mr4u(&&<dKZz1Af"j(C='M*Ku.lG F67CW&7baFA-bA3uګ`I;*	Uəݡu~+8bYPL=$C'[
(e~J;/1nmV[) rJɲHcQN]0ASo'v6<!YZ]qZ7k)V։y$Ei슄Ì}YQۑ6&5!riN0`Sfа=\׾R
VzmOM/Z&j\)jlZ]ypcShW*G10P' Nh >gUAaiy>j5\eR^d<^mB硖SV㶚x2;+	,d5)=7Ը-	!Ws44cy}1:bܞz%7knRADc67lqZ-S*h  c|w1MiqTL'▀GO/NS:pMಅjr8<8}SUDQNV,[a1-wn(l	ݤu9k}^pܲ.<Q<jgdO8 Dâo;,~[:({dt<6TLEI{fv2Faj8?:_jvr?#s.@9j@lK`#W^}޼n{L%q`m2,Q1y(r(' `HПE,LJ?*#"x}1*d!VBE8 {J,$A6?
kfs|McP^e9%˃K,@zqMrL)e̮9	gw0x5t$D~ M=&6T5c_d;32bR+)1yy:蛡"Xp'rPށb	Գ6!BN.Ͻ|q&KԴDQ!}ĕ.Y#d|7s֖X	/ Xqoůr'	us#>{óUW	|i6rQk]ĭ1+!^<"xPEƀw'L39~D濢k9R].H}
 ޡEXUS5aBM}@3)~_WTU=Z1)O\4G	I)(w)2W*AQOF9mu,$D'`Wܮ0?JpqꅻBr#{J?#+a:!bѝYԎPNӮרvMd/0~5h?trӦ0%dzAo<hD1~eiH9fxlk7Mh;pαj&mpy<%e~;<:Bz5" `Gq1Q3sufOXrPA4*qnxCJ/U }\\oZfU<5p0{XdCʻ&ǕF]Ճ|jbK6]ߧpҰ4
ԃCiff{{Qt{0yW_f`ByUKZ%NG磋	~\MmYߡID*MV,IXbM8L#YM}]l~TvW%p+I>U4.ʰhܟ^(Ϝh#$ r?{!$Qy(kT6xV,\%G@q5n/'\iq 4pF^h:~+iγuK,([BՅmO@#VFՋG2Xx*lsy H-
;#|cq`_G~UW7qyz1Ów#5.'5/^1JX 0R?f|aU<셍]V;=n;}KY7)qRU8	 <36]cMmSX\)sq¢(
lQDc޲ٺYs}B.xݱ9=}'GG@Wu0~>Xl3@,ިC538ӣnȶ7~0G=dbZ@+F-(90v]q<,~G֍RjR8 7,L77y_ݢO;d܉=]Pz-5Zϡ/Y%-v=mos3T\|_FLy}fSx%?r8yo+&n*/D8p,|=2xh_׈{dFɃ)0qm/`{#_OWGWK(uyHץWQjhO;m=ݣ]zG%.ydcj]ͧ]\㻼&tnn7cu@Y$ViAj?Ÿ5+xJ	[VdٽPze9lt>?٫:&5p,
-h(M-)7jwT)u2:GZǙχhݼlZwzw}mzzf!-E#`)io$gvFi%@tC[>]Ur~"ZQȶ03mN[W:̶+5u@#ڷ)Kʯ>d7..KQR$x T-[f`EOYj֔\lY̺~'pVFj_[Iv"F3h:U(g޲j?:qE`/0?<_;0%[W]ʪ@4XQ~/2A_]Nv܋ۍ8OH1⽣`e
	^EwD<4ٲ=e͝e+Ka:ȯ;5.1 wjx,Gim*b͕8$5[
S~j<Ʊ(mg:7:u؞
n2l(اdraS&Ķ|E^^u"`	K@q<.
]|`ctRe3Mþ;ovO;݀/fsş\XQ}_zŧ$@c{zlR6l^EEmm=_ZyGҋEawQdvC7slcE!.2
L|2:5Mvf@pچ7<^aRz@K6OqZu}lMڒSeXiRiB/GOdJ :NHez>:;k)IP%nǧ4Lx͠_R/~fIl}܃K2^>}wsq"Aڬ oeCQyb.

7dDmAY8&hAͿ_)(,ѝֱZT p7/*=\Tꥺ#He̋0̰aUږ)'?}i@H#|lM@R0IA'u67OGQ@)IU3tm-TT9zGݦXW=+LLjTGܝa	`=ALbzkM%ZOҷ(iUV%p:sxA|^XJC[S?bX3k2зsWFł0[E]^ǥi.pOvAhy`Z]o9-z` ^Ѳ*"?UF=!E,_>НcH>%%L30ǫ$`ˊcr<j#.ˣ)8Fc)kaGjLm9ɌNw9ظXfy^ %@6PϨv㮽 !7yi;!{;æ8ܨo"\X5ߩ`GYB!v-3S~')߳{DBw;x*t'<=JUBozkO[fӷ$qor͆+Vz*	QٞP-IH6.Q	2õ5CūtP8&WQ<mBKr[H@fdQ|قmUI5h)-WMS?H@zT4lfxiPs۞َhzN
Q8Qux&V=Zu-fC)b]/wDy(+\B]1cjvLb#+\4ŢX%
b&} ۚ1ف.ɍ-B:}|:G81/Xw=NJo.ykd]< 9E]~t>\EwF.1-Sqeݦ[;, IU x{{O?p+nOϭ,TuqLu"R@ä`M|K(if_2SbӅӅե)yޒ_ĺ$<jl/^Tf9]oOyzx	HKWf2~Sd{ʎv+Kq'>Z]TׁI*ؿDӯp2vDtQEV
$>KV6؆tJֺxI5S)U7gP*ءGFKknm%ԑD6ųO|:K9tިDc@' E;nG(bE C[	c
9i?S
YY<͆)Org&KCJq/߃*
{=4	dǟJ1}zq
MӻƇhA9>P}dc=	b*? Bvʟ|hs}V)UQ[Jc >TMMBQ-"_xwGpU*9+h|wpؘL,:mc1j=6w!=ۀ%4*?ӄ>-Ϋ+Mů']lֺ焙fP?tF #G90I,Gm=,&HnV^ik|aʷ݇+3aL:;E{MkR8-F$=%⴩"9ԤʣT9gX[9Hz.`@.M}vlzxxCk*ʀu%^804Y!E~<}N-Vuf%\	0bD6m4[e*_h<is(,EN3byr<<jGUP05Jdub+Z-]ٷjTȋeTB-,j.yէٖŹ0n+2.%VÿDkf{&Yyj٩ݒy6XNѪh/*S]eh- \&'ZÚ/!6+/xP"!v <r 	C#IJ)66jBN6X:jnBQJsLI,Я$>I[8aM_5guUzȦlПQ
HŘJ2{+kX]Z^q
5z!MM[Xlq6Bwc5X^v7wVlKR[27#a)XJQ{-Z[W45B*Q"K8_(O޻qJh}3]Ƞ	8ct40/]74li?>^|`L?VY1.Øl1Y8Ɋc;vэx,$ɒ߸>{wn¿b9LT7upٰ^U]{ X0s؂^Hޒfj{ȟEp0<ODb6W^&/1\mԥhUp}0>3|+ʦZ:
/u=oǰ-fLu{<]Ys'z%
9[d7{bV^5o[t-o/{@'~@fQf({~,3c4&z`qhJY"TsxCtX 7L:3[^.`)XQ൥Zfs`
t2_\] N)tW+ЧXB=X\T$Ec^[< /6fFKUR5KaB&%"aںE^}AGrs/EG:b[<J|w2N^ܔ'2)x?nAytoS[ѯ<O~t3Q9hwJOv[WL}LPs
˥};_ąf
K^Λ	?2j0IVOdp'W$7&)ݺ&;[ y/;@gF^DKkJ"Yچsl[Yw\ }^
峨źO=6*UQAy~wЗ!BeLS;BY&x۶z>^S/+'9v̟ixuEmU>.WՑrkf$OC~DgWJib Q~F[/BI͹D`hHRaQ%SD%Ƞ*w}V(m"A=$
A^ǁ=H >oXVAh󳚂ip{'ɳ1qܐ6ŧw?Gc
smEҮ^xof"$ѕWAiZu#evb4؈* g{Tbw@p3\R+nLm3I@kmak\HK#[C(:ԖZ;][6,+r@G,-LML%j&)c ysvz0P)+U|_X-ji4``mOvd.UscfXHxoE7cB"K
{oz_ oE&m2n")/J5N?m .HR2АAe9)*}|ЃX-H~XL-~W(
W*"iY-42*
U+OP!{q[|}kg\}$ Mjd,(Fј8o6|5 CXuec(ZD,3W-?1hD|`j %\0!ue:ޘږ	~]KiU=!ӆB?4F(Do£<Wlq	!M nj1S̾BSz
Z7O~LӲ\f<CWLiB7ZTi4C@/3A#`QbI<o5+^"߬bڳF/Ԙט<jb1Xό{eHz$z{{Kn$՛|Q,M]VEiV1`a%툙`\>X!V+cA+Q/m=3HکqB. Dgb9`0EwodjdkkY@4sst'.a(ӆf%|T:wsaKx+*q]V}5p-)V"N]w.g~1sǳbv/7d2$Z2խ^ڞ!kGfd2iܛt<ޑy/_VEF5W+tӉA,ͣ$PL-;u) 
4Y`>1Wje|:i͆ۯuA#9oBL67jO{)Wov""h(RUQjӗilreδ5)/a4=Ln"u̧~L5LI8X?Ԁԛj0bTLu#n@G+Z5R8 _H:Cyct"Q] Bf+׶SWJߘ{28'1$9@=5,zle.*13ls1g6o =(8pHGǆBy{`gJ:Ҥ\`r?݉l;"_w-^¦7.gi/PaRHMS?lA?/NGI%٣3q`Ȋy܃+q<HVцlz9TqUʟ?y֖,:\jfW0[[lW-إRG]UA?
%&+,9ԱJmQfu!-@j:EPDxr]%cifTu話51P`j1OՙTY,ҠUdGf`3au1?Zxz -ߕ5rW65 [rQ@7Z[8y<˶.cofq{ۈ7Ta&%[_[͞qb{[rgT46*i<66IBK4E<Lʀp;@@9&bayin~ bL]ۥEzћ._89/ZoŃ	an-zw;[*]q'7<Ea}x4)O_֫UF
~  T ƄxT#@<j 2|yDeL{>iȣ1!OZ&Nq5	B!h]'??bzOioU D	do:yu>/=a{ɼ6/asD?o%^ZW='ek[rt3"B%]\1TE3#'|}?qbzݙX3-E꬜j".
P;2ڝ:l8U[Tf{Vh"5^KV3vknqtsKnUnQ2YxDZgdr,*J_(e-|5ך<YB[Rk"F7jR/v3siX} 3Z6uмUl?vf߶(O3`5}C̞,J(q9_+V GnߩJ5|ž~lXG	t*f?wrߟu~TfS`?g:>Pxe#ݶz! "Tڤ<C.}Qd^q'PD>-0d,?}q&_G8{T~hMN{z==iֆ)'#*ܠm_2>#.^#v|uq2zAGߢI1A|HNi_[xXAͽZL4)8ifjs*lCa,=|Ų[hޖ}w
E)Y$9D!m+,Ն	d|9z~'{Mmq#)q'e	0iC>1T8(Qz'!PW97d-ne5oIi19$
0[E1~Otʱ&e2)<"t %-&A?󢔈,@yyciF+	7<xwɚn^1.xM0ЏP!eΛ¾g#m"82W)%A¸EQgÓ߁Vi-֒<T.r8.x#ZzrWV-<zZ[&˧'hg_F,"#cλ5SG@A.m#جE~5䴫RH/Wcm<7/tu2һT'Z53'~|qՆp|PmyH[M}X;<Rx*S1}Ĵ5/.>|pV5@&$pU.ID(WxȮܸ.~G&6e09F`?T 5mRp~¸E,`ېs#5FYý<b%TsӡY=JPԀHcQD,kOxJ<$giڡ10^a<L<Stg,>X6 [ߵ.~Uvۊb_^vJ"ѽEp^%,36\hVa~ٺi%C4!<W	LJaq?l<B_]in!Zr0>;j5j?$໗\Yaj?EQ_Nax;1DJSi!QǢ^ιY,[%cC/v|N?~;h\#<SC1Hw?T.׿+Isi,%$UD`NdpƱܛVj&Sl yBt"/H͌ä׿W?zA)CHӍװ(8g2(Tjj=F:u/uZW0zxKE?DnVr1rdMV8pB2a^U_'}@'@FFѕGn)"q.nP\Ao5/C׎.x[9d')PtuLVMh".((֩c"Yڀ)\($So(Gl-WF&Z!F8hOT8LZ%iݭ,X}jѵo}˽Fli;3FAgu\oCЀֆNO7J*ᄜS?-#hHY%_BR}b$rR:ȰB<斝Hz>(^>b3ƥǶv3 JES/i)9WGʛޭ[Qi!ψjTċnJZJ\ol(jԠl)U'NV8^/+XkбyHi:3{^5ciT6 HlT^G6y\s_\@H"B8$q)+G&ճqz{1ܬwJa*<pd,bphV Eڒ{zA+ChYKrH~^.%/g\3F<x_}\šP̏Jm]uS!!VAL^U%y6TEU[Ҩ1TiZJ_~[?_XI>ȏ5{9
v/Wh|x/`f^2Q|{qS[Ioq"y?K[Rq)jIYBlVW0YrLbWPDԌ +rq+aE8XbW?5F	Q0<LGN/'gl	R80ezg
E}Uyה*O@PF''#0bN1<t}zbuXyzJ&cЪmh.ȤxJQܯԚ[w䌔|BaR(#z4߀t{=TNKjt}҉wQzcF1˴e/y$9:)+:Bĩa1~Z<J{Lɜa6.&xR)#'`^	huTS}*ffC@}+=	,xN@,Ƣcܩ9K)PHGUW	0B3Kg#{?Ci{@g+2cBkh7}\ލkU뻗.%RDS!5VPE=2:>E,d
Q5{^UCxZw".|%<"0#&l@˶7U)},/anۢPRʼy7Tz赹zIN2ѻrl` ߱V~-=OHf9~6h@CjŀڈPE/3&4I_x Rruò0g<a6#>Άgt-aU~;/F+Y&>'*hOH#	ѽ($qc)a2xSVD".cg<U0*q֦6G1n,e&`A6A7	b~ݮ\,Kz,ڍbڗimo	Kq9'Aˉnkh`{ses-Qm˺΁3Y(W)wrb./6=M޶/DA:}ZM?6 :4*ߛ(YkM<k8cpt4sm\S5f/d+mZ47{Z&	SjX\[+n,OÙh!Nz:Gy<u=8HMQ	5LO/ئ8`I쨁$tgViY^3Q:ϬzVeKb؃&*zE~!ӬkvPHJ]\G>39O~ 5}c\Tʯ,|^pk󂇨&Sd_ĎPql~&F$:|R$p%ߤ"Wn@]A ~Kk[v1UbO?f6. h||qs""{*:4j<EyqNSkL>>oB>ޒ;leti|#bE;&4e,EzC"lUv{a.ѽvS`{kihuwt4Ɏ+َaxIZyI=(PoAЊR	8sXY^aWwL}t6 YMg89݁2's)hkhcj6jo4F^8c*.D;5lx=GVwaGE>z|[fEjd4GrK}
}*N=3aU6)6ƩcB	|$#}4nVgoPeh̀>hdZoWz6MNw|S	!rj W)%)^"VARӘ2Bswe#/,~S-и=(cbBpQf{5l!pǆP7#8s|@}Cr\Yط~ve<ufJ\,M_L_w1q{ }*^jt'6ǋ>[rQ`(+J2}j.go6 <.C(Tv&=+VV`	s0
fVv	ãeK*S%bɻ#U24x׫8.~Q3#=ǪmSXvtb\Fqt^u)wYn4yV;hGPuǥz=elQhyIӳuT4kʮdjK
<Ɓ g*a8VstBtTʫr)L?ע;v7RMpG32E5oEM,Bs7A҃x\>{,'"wb1sٛh>53̓8~ߤf|5:9ަ8E=2(d3`㚕oKL& /cZiE*CC#vk$"%rK_f-$ai1}o4D1=(qAZ,/>E;v6ض.S`%1&燮NuƄg[-MJtޯHJu	G"HArYvE5  [.܉ٲ=O1>m/㛔6ADpoo`nSsgXJ1v
Aђk=|b8^QWgd>8FP4QE(֞"pOfAμ=Kg.U3XBlR'CD,|^a+[́n^mQG1]"}:X)UT<(5UOM|s^
ِ˛'QH;N}TqIצU@߁/hcC3F\=U3z4D6TʹZ(֑,`UcL+\O̝*Y\]o BdMBqOA٤jir)Ш3$9k \r~\OHtgspi
<8|q]Eau#WwdvWzg6)،K;K;U\B_8HX]	CzΆ a܄ xRh5QQ,B?#_`;P-fšQ&Qd'[x 	d*NR?Q@7SAi%?q=&ZYZZUD=uD}+^B? de|+46vQ]%wtKͶ$YB,(jJh'BQH@832&2n~.u-3;>ܽ?3Vl@y@࿃HzqC>jQW]ΎX|ǎO;ѱ=U!aJS߄O(U,&aUaw	Iw=4O]^L	_hM/DzJҼoA`>\9wdovf8cm]"Fr:O`_3S#?E=!սڹMբl<yW,AwPfX_ad3${"{0c ϼG(
w4TĻAxYY#;WI=_'~Ld$pIzoM-8ߋg8]SL-UZ|LaDo{Ll/`5d*]\FoF|zMIBCo0 \YV(q2[m>8R߰b72eۢr>xsGɦ
A&Se֔t<ւԽW}qN~՚%հ2cI{Iq]gc{V v}8XUUsۀ3gUt^|LXqa~m:H{=,[%1D^'/w}ӣY7*3Mg94Kboo7k?zWC/y{覂}b7r8 EO$YFErc,KE"# "v+m`!TGZ8,reDdg®\^_OtߑNQV|0|MYT&3I41oIM
w_N.vtXo`UxoZq@-os%ThֽޤL4Y_/J%F{iWTIMvgۗ"Ohl%UeQk,̈ t4N0ŻD(:AYN{*hUv1pYҍwaz}9yz^Hav-_;ArT˒v7eyp%I`z#jwoxZDڤB縗}r|TEbu}p7oE9$x=4^ں3,sLPᓶ'\d*,%qT}6c+x"f|F;M;39e6O56ytғbwQ]+]2kzq.իcaI|`C
>_My4'2BO/By8ENBǿ&k+>gm8d_ fI&J%*NjuK˓7R-bWIq`5`VPisQQ-~\0Z=sfhqumQv(.WLfh`kP#-nqsa ,%ᭆLuc7߾mxao#8
`khp4JO?ދ]17; }eed>5KW@"E<c#*tsrFؿ7a7e=̙N
B-@^T)Kb)*Zg}03#?+@x}	x\őO}FtZeɷFl˖%Y7F3㙑ea|@Yni'lv,pl>!Ę,	I8wΌCz]]U]]]U]]7۔	Nâ{x}RDvjdMd*IAԪ#kFB@n`LZے=t?\^"44=;}CQODOmM2e)hK)YKevYJ{5e( |{#D!#>oJ}cLbikGO=C!(9=^ GҸ,n쌈R8p]40)؎2l^Ρ>qh Wj n߆=kCҤ?gH&:F,m(}iGS9<uYvbs6Rx8H8g3rȬpqRr;;2͙I[3T1:	I>md&giFZ ڽи[0 NН
 &Ͳ;1ϲ穟qoHbTJT[:e&1GSOrx
~Ê-ⷲxsN;-ɲ=]2W^g8BA	[[CrD$8-ټb{o_oZl=hd!N]޼r dނOOʛ :)P~E",>]lKp$N~eRpd'8u}CT!\ӵo`Iw'{
Նw|$:Y.(=t^x@ENJq;ekS	-5ZSLM5zP ( kuDַi\[[՚/WFg+o)㤢Z{23ƻI+tƖ*m&.3jZO,6qDx<m@p][`2RVqt{A &F|Po"pZQ
{1ˈvt`Jݱ*M񡒊lT-\M7Ȓ(`\:@a`mk
^iA`m<+_S(Ҧ!Gwݝ5xa>oZ\=1:)`2W\eהXeMEephÖ]F%w!:=ήU+w:P	~ji"5ua9|ZS1>[\n\&H&Б>S2=\|Nz1_ʺTMo-;JMT.ǽ.&cu+ͭB56πtvoho`$44284sl}20ǂ߫e64f[8UUqޞC$?A(.~7,P3<ወge%&^g3I)	oJD$/ϯ4V?0P(?o:_
O#Qݐgהpx 4,*הg ȄF%E$w5AƧ-u7BX|`OKzE!}`@$,`w@w.jS9~2O\ҸOm!E-˄o "ӉdbKlb~l97qfIQx_>h|l1j3-6<n:xq{,aaA<z+aNJ dFFkN7q)>Snkz_ya1@=7jx5+z{Z[yW
,ŅiFq֩ANE)̜:T/yn  t4~^PТNY?3@N5>̊fs.+]/ӡ[w.+eltaI%}`xyi_\QBG7NZb#.2{3	cƗWVp*0zj	jB\\ɻ0a+a*׍I{rY]I,J`%8{9U̪#˻ag;xEQHGx犌U\vA%nrzRHaz~nE57?\1&Չ	tE"||'Fܺ+
/gmmi7fl	\Y/,Mx}RO,?Sqz>FUiу`zAbP` =_1Oʟwg!{biyw7ME>ިS]UB}k+I,QRCQ[Z?]S]C9V
忲2SgSv,>jT%C: ABC6EA!yb/:r1ة6${q TcHg\0fnT6TX:*z
G82ʇAeJt,f@OO4TJE$PrqaGME*n(bQMX&esIff*|$	f0Y$R+̣ˌu%%&GU:,^oޡuGy]el]rQ闽l#'o,\nEly|<!U4.j>Rvs;2LË7i	j\ɣ!]DxtPhptnZ?зz$6V;MsOj#.U!z~Ё>֭IlĂn\Kl_ۘS"nQgKV3ljHbXMdMJX6~6("FJ{+XFoOe|0H:A1QO2h+HjQk1sh6稀|2:ꬽy9~d{9+-F-H킃qdlWk#ogǃ-?	RyR(݅gX$|@~|,OGMӰU0#ݱ77ְ!{&߸o0 *]a[r3HA*bb0=zih{2ϙ_7	B:ޑ~oSJNw޼u3.7zB	N)
@V뢦(4_ }=FJPb
]~OIE;74ggdmhȮh@]B)HΑ)#V<AI/@]d4_*sg,78Knks6I/_|8Bxc_>@w{}W>&ۀlO&]4BȟDaiM	h1>=	uc:p_a#w5$6FS)1p{(DDgk_|:9vx&)˦'H@!
OԁDFyъFaQ;1$M)8pz#@)uJV7v8O'G>aR꼦S37s[7wVX뛈'",K-p;bHvr4M̳$CBQ<wH>0)=Zbe37'ߑ5# t2G`ip]!|Y18C!#xՌcpk`@wW(UԪU#oħpvxLMLdNś +;zJ܌:{l'4́EFۘ_#GI~(֓+ 5w}'7cqRd"$s'Kj&,d02;j3A1vGg9"j)x]zЊ]Sl_`-t{Pk+*'jT'|oЧP
6Ў=1TB^UWe|nMa;;px)|EE,V7[,k+L8zz>pR'X{0~O/|Ϸ23-l1onĻOP{')+6
[SHd|<SQAO뺿H7J/)krLBEi,f $c/)Pk)لoqM^6$-'Wj3>0&qF^~zF;2Ҵ</M_@%Z.}s:wϧ[=]p2>T9Ob70)]ƙO%ND>GrTf?UxS3ࣧy7lo{J'ae773?x,Dv.Qpf%yU9_P&}:tt_9S&[a@MiqIiLPk姓;JF,ьxq;)Vet<eFCfVZTI$dCe{+{*R	T61Ŕָqz`@N;ogMr|4_1ے"m7l+(#r?Jyj&R&rԽJ7l`4E/ kUȎ[ɧ[g;NX<iQeb=~Aq!$GQ
Ә%
?L:V!v+F>0I</Ev8{p&R݅VJm;u8VR/=OTڗw0u9c-a* =1q10FrF8g}"|϶#Xt\J_>?8CWbZZ_q8^"ɤ{(de|jш'jP/_MŐ#nR(W#7_H^{7p 8}lFN]$:΁D'r5Ul\z SaR`<VWJ9ФD-x5#T?ǌHgu-=2DMmx`L0=3](mD	Ն~$a|N@
T CN;Y>=i+QE [l5jUQSt!W/XʙɩHBUL{XV./
I4^.~̚v%rPbpCAV|SCwEzЏ@]}|nu4lJ.HSB)kPYdq{Hfb)+~SGg8U([	3S[3_Az:Oz&Ct_/z$HLH F /mz<'q@(	օ:a,V_Fe\w],z218j.oxzP;ʒpv"{H-HItFɅ琍w=H*."sL2e|Wť23R*Ņp'@y/^)Dhe'{@Y#QOW%HzPsVW`d|ޝ5tb?+ː$
p }6<'ccKgC¤;uyH 5YԮ[~N3d-ޔr)ճ Sc_tǣdW#!9@>~`#wU{+چO ?IU<p	$?x}Zl#RBa"Gݢ<Lƻܾ51hA&yօ.ZtK._deۖ/Z|񒶥+.YׄS>?>J؁XI/=\tsN%dO -?rK"Pǽ-Qc_ho:n0dн:+l8Ft/&-z6RC?JBmKjJE]GXdQ[K#"m	AۋP7B YALwO+&׉hXc3h>ٻQ,y5yZl7@n{̿skurmg,AGc?Qc>? sQa)x*s'q>%kb1ϛLP:G_G9\#54QA19܍6ּPGaȉ'VzQ-9S26ZY,]bҘA8@=淪ˏPjbPgCrE+h	2~>(DFr{)@)1b1ю6rT?hLfut)=TiZ ]'5́>NYBIS:IkAViZ"mM=-EtDeQ;NwznRS([55U* XA4ٮyLBثy7M:Anf+flEo
ei0J]x`vrCE[BRT<vӃ62uch2u;nlu=[ <ޱJs";5Ć~<ӌyE-F @3llViiw&6v2*e/lӴ~4=p3? ޝ%"t,:ǨOR{#ܻdd`ƽO u(<b]U729ـ,Z*I*Ot?_'fEzGk=ʽ܄hڟ|^H(֟jBC3]RW/&)AJPvUbH"}?B1LkG߶ɝ2G[2AXsSzN'uO'ʮ0{wH;!"i̚4$maL(!["E=mbu'Yԯc5Ys
~NGvQ_4O<ÛQIެ%Îj(28 ߺ^ p-L~ޏc.^ɥ9؆CC%盅DxAnGWu`m%P9 w5u+J$P?c!Tîak0&Ha!gUeF6u@`30sORrOZLxUIJ{6%nrUt^f@(`18.\ Tȑ=;(<9JmSKoU?Sz4m~/6
bbY;SvҸ5Z%x+GaRl	~isI Ge2!LFNS| ^::530`8>׭ꢅo^A݅v Y:!K($
$I|xA$m]ҷm3}AvY"f)e
X+Qa^8#,Yt٘en

 />5y\q!2pzqPD;0EeLbG.
hP觠} n$Ό?|e(cUEMt\&Ckڀ>od sħw^TZ/Nj+\MnS~Q's:\@M,Oj?H!*ZŊxx,鳒I*ftuңzɭ~w]=g$ytҐ=syr8bxؔ9ЄC<.8qK	MXv.J>5n_KXeɯ\+ɯoB} 1`t8Uχp{uf>AuvQx_lpEA͔@1qW.9~HegQ#"MًM`qU^ukr5լo_FsǙqm\/gC!s]M5|\69rkf|$_{<;lTxU~ntǜuh	{Ĝ}'ۘ/pǣlj^qKuI5tle%=CAګmd;(=af}1<KaZ,<6^\Aq9hPCE}f~G$ό<eK2v+SŶSC_*É9%0|&4]4TgWk7f9z'IQtN.t,J&:jRS$[Hƭ5Y:Ӹdn|mȝw9sB//o4+fA֒zyď܃-qL	ƥ|z@oYLKةQ2DU3T@k(ry]Acf4o%B-krjܗ,&Y`Vʹ_S+4qN/%BP^qۉ8X$/<ԗĚ$5ku>q
b.xS\ޅ/do1h%DD(V	]8'v<sBV>4f>Cvz'm@?3ݢi_ih'ݐ!Qa1L&7<0<h)$+״pEYCǽKD^26јɝ$Ocvb;̰֩$-j<⌭[5M 
&smbGxPNhCyds"KϠ!)PiYǳhY9b%bFu&MxfL?e9"$M.h&r.!({@g?wbtZȣF䛲 kP]15<!ոVbba+:+ޗQc8J2%+vf/z"(lzS)α{ԃ;8 ,2(P(rڠ"Ibk72g<12?+὆txd^}6wfI^*3X~,GXms 29	֯-5._ǟ^%	٭,Dw_VȺ|J;yJT_=V=%,frUMC7z d=rS|ckfƟe"li#v`ٌʼV?Y;[pD">b;''/ҨkhSmfDу}b~!v*zm/&Phpi\j><~v{TD ?Fk A^6ue¥so`=
o%7oސcbɱdȎr";WO|;o
7gOSYg|͋pg<E<pOŽ4@|1BMf?E"p-Y3v>4ado
tRSK,r'&*gDB3aYG>/L+0M95Ev-#oN_pƊ	rKT3ܚN5
_`'5iITifƂ3L%iB`,E4k.!^W@|aj9VAp:~t|as)|<e&"،En<,ȭBRpIV{TR.`iYU^n__8"-#[_K'hz\_jL OxCԎSD~6{Cˋ*	YpʢO'$Yt# .mB!?Qv^a4	/ R@lNK>*5ȚŰx]-A7>wm:4,4=^`?l'Zw>}dBxϟ!)^o|4
+Uix)dEtSn[{(v{<|})[>nD(CS懇?7Mm외W&-H4iD&x#SJQip`"dyZm3"_N&+UwS$C>.6@
(BfcHgsw XnX[X),*$hXU
L1ԛ%*H2?@lKQQCs[(m(	%a0*>BWsbT1fhR-q|~d1w'fcq%}0Rj'88Xs#T61+[8f3ZZE<]"t\!qR_ "v
GKz2ޓJ{ki<|U	BV!lJ,x3A:Ie-EN~(L(?Ϛ̷25E(dˤMQ ZdVIf{Bh:	Bi\x`gQrFն%FrW
eaok/dQDUnMw{=~yW)3otv[qw5E.^K	'UYw[5?Aٷ@x&<#\	ft^PB
Lt{6n,SCIiHQIOPMީzq'ˑwNB__F%*p8QUS!W.]Zu!jcNYB1#Sڕ՛_!g3l,QjŏȐ	^ߗO
ݩߤP3+EGX]7'f%P
P5<>=Ui0Sb!TNo6nVa+mKί!7EU"0Ő3yd(<~(F_rDC奀xUO[-1Րe@2aL*ҼY")tR󵴈VHA$_GzK$*j|ӒmH|DzFO^yL+Kqw.&wNZ!wmQt˩BO=lɘ<:;]\@nVݶΟYpkv\6Izj&CFh0g?n:kUUYs;TC^:4U1q7M,UΎ@-56qIuLkΙ1	0fNd &wJ<FWB-zYXk+&JF'@<TSJ	0rZJPƲȇ*[1[w}^G6|Z_"4/LKM|8@	\*ǫyu%[!$eª.JѴ'IhyQFkrTq6ucUhkSgP_ݍVpM:l9+9+j3׸sa_4|aL3e]XKK%])t&Pȫ>1 ŸLU	^tAq<,h"3KɞLcY/Sܼ~TجS_/+"OgT5pƮo:Q2GZlZ8tnQUV^SU{ǻHEQ'iT˹|>:APҠM_jP]@uɛIR䊣S*	dMP
tNo+>q"s<{,ISJrkd:jo"%)8YYA2'|$FQ3(=.c҈76!}#"9:Mj#?wu4N^}wT`'ԌR	nu
0k 4/?״n9ӣ390{ yF' 4R/(7gU8\{BςJ4p+eIqJ~8[G%Z.{g[m4оCÃf~L5^\j%ehZ6[&ҰcaQzЕm4삣C-ei/xvH^6}!ƨra%Z[ֆbܘL(?y-fr2%^HX鮒?AxIN'+2ʋ(-ʥ<y3| _YVp,xױm9W$TmAFIr~XhL5DD,;X+-̯RP-,nZ׼OR/Z(`9{7@U3OT@n:#So]=l}L(W6[;.'_(2Git#C
GȤL̘ҳ+<n*P=D$0dGf;I+T̀W>NWz7^\|$33iY9	~)U"n7Ҡ9fKT֜ߨ#xX-#vZR$TZ*	K:TVpl*[	ײ4BBOXϪ/<0.)ZF>D^W}Q0%c'7lApA^O(*&P55TT;4!-A!
孊կeAįJVx9PP>w6dz<"+~(I"yvoh{_MjMFo Ji	
3
+G4l3+dQ`QXxKUUDVhSD(9ϟeꕙ}797%+J|2:kyf1uVJN=U	O
õ\bIda@Bra|MG %Âu1[n+]',Ȉlc}:.Xs{z!zIc1| 9l8&/
F=Lx%xŉ
؂m/Declares functions related to <b>typography</b>C31h    /** Left to right (LTR)LTR,!<@P5 Left-alignedA	LEFT,
    /** Right-alignedA	RIGHT,
    /** Center-alignedA	~	k    /**
     * <b>TEXT_ALIGN_START</b> achieves the same effect as <b>TEXT_ALIGN_LEFT</b>
     * when <b>nC</b> is <b>TEXT_DIRECTION_LTR</b>;
     * it achieves the same effect as <b>TEXT_ALIGN_RIGHT</b>
     * when <b>OH_Drawing_Te{C!</b> is <b>TEXT_DIRECTION_RTL</b>aHO	START,
    /**
     * <b>TEXT_ALIGN_END</b> achieves the same effect as <b>TEXT_ALIGN_RIGHT</b>
     * when <b>OH_Drawing_Te{C</b> is <b>TEXT_DIRECTION_LTR</b>;
     * it achieves the same effect as <b>TEXT_ALIGN_LEFT</b>
     * when <b>OH_Drawing_Tex|C
!</b> is <b>TEXT_DIRECTION_RTL</b>aH	,!$font weightC}
 ThinQ    /** Extra-lightQ    /** LightQ300,
    /** Normal/RegularQ400,
    /** Medium    /** Semi-boldQ    /** BoldQ700,
    /** Extra-boldQ    /** BlackQ900,
}q fM@    /** Ideographic. T.",!F(rj No decoration.NONE = 0x0,
    /** A undt    /*%*    /*)C,!P	rfontP50> Normal style */
    FONT_STYLE_NORMAL,
    /** Italic styleN    /** Oblique style,
}placeholder vertical alignment"B Offset At Baseliner(    /** Above Baseline$    /** Below Baseline$$    /** Top of Row Box$    /** Bottom of Row Box'    /** Center of Row BoxG'p paragraph setting;,Q%placeholder^I width of placeholder height of placeholder@  alignment of placeholderB baseline of placeholderB baselineoffset of placeholder2]"B Solid styleQSOLID,
    /** Double styleQ(    /** Dotted styleQ!    /** Dashed styleQ ASHED,
    /** Wavy styleQWAVY,!P{ellipsis modal"B Head ڵ
maxLine is set to 1> #    /*	 ڵ
maxLine is set to 1> *    /** Tail modal	TAIL = 2,>f2P , ;break strategy"B Greedy strategy!%    /** Quality strategy!"    /** Balanced strategy!BALANCED = 2,";B"6 Normal type>#&    /** Break All type>#$!ALL = 1,
    /** Break Word type>#$K$X$h,$;
rect heigh"6 Tight style!&%    /** Max style!&*MAX,
    /** Includelinespacemiddle style!&4!    /** Includelinespacetop style!&+*TOP,
    /** Includelinespacebottom style!&+BOTTOM,
    /** Struct style!&STRUCT,($rect Width style"B Tight style<("    /** Max style<(MAX,(1dq information list result enum0)e The list ofp& information was successfully obtained)(    /** Unknown error* '*&    /** Parse system config file error* *    /** Alloc memory error*3    /** Copy string data error* f+,
}0#+Fallback font inform5N`/ {
    /** The type off, set,,! Font family name3$-1Fallback font-pThe name of the font set .eallback font set. If the value is null,
     * all fonts can be set using the fallback font set list-. Fallback font Info Size/7/' A list of font sets for fallback fontsB`/RFont weight mapping inform5N0
O {
    /** The font's original weight value */
    int weight;
    /** The f0'0AAlias font inform5N2	 {
    /** Font family name3,2S value. When the weight value is greater than 0,
     * the font set contains only52 H.
     * When the weight value is equal to 0, the font set contains all7~025General font set informationC3w Font family name3# The size of alias font lists74'	 The sizem4 information lists4( List of alias fontsB2	5& Font weight mapping information listsBm5LS inform5c Countm66% List size of generic font sets6-! Count of fallback font set lists/7+ Listm67$ List of generic font setsB58 List of fallback font setsB`/~8IDescribes the font inform5NP
\9< The file path of System font */
    char* path;
    /** A9#font9' The name of System fontK:! The family of System font:# The subfont family1::&P The weight of System font */
    int weight;
    /** The width of System fontx;;tilted;;compact7<!% whether symbolic fonts are supported<Je metrics of line6E^  {
    /** Text ascender height=" Tex descender heightv># The height of a capital letter>#! The height of a lowercase lettern?! Text width Line height@)The distance from the left end of the text to the left end of the container,
     * aligned to 0, is the width of the containe%r minus the width of the line of text?A#The height from the top of the texta`A	2, the first line is 0,
     * and the second lineA ?y;
    /** Start IndexB$
 End IndexpB" The metricsB#Bkof heightmod>=<SC, both ascend of first row and last row stylelD!,    /** forbidding ascend of first row style(E1,     /** forbidding ascend of last row style'E\F	8      /** neither ascend of first row nor last row style'EALL = 0x1 | 0x2,GAex<)7ON	Type {
    /** None styleH#NONE,
    /** All attributes styleH4H    /** Font styleHNT,
    /** Foreground styleH!    /** Background styleH!BACKGROUND,
    /** Shadow styleH_I	    /** Decorations styleHI    /** Letter spacing styleHI    /** Word spacing styleHSJG
font width0)GJ Ultra condensed font width$K*    /^K width{K*    /* condensed font widthK$     /* Semi condensed font widthL)    /* Normal font widthiL!    /* Semi expanded font widthLL    /* Expanded font widthM#     /* Extra expanded font width{KlM     /* Ultra expanded font widthM&,M8Wc/N? Line height maximumHP!    /** Line height minimumHP[    /** Line height styleHP[R    /** Font widthHPRA^RH,!@vd$line height's scaling typeX2+R {
    /** Use Te factor forNVU,A    /** Use the text height after shaping as the scale factor forNV+,V>3Wc/N!Oc	Н
[X Line height maximum_~][(AXIMUM = 0,
    /** Line height minimum_~][    /** Line spacing_~]    /** Line height style_[R3,
    /** Font width_^^A^padding1`9_%    /**
     * Fallback line spacing1`U    /**
     * Ellipsis modalR"^,aCa{aCby,
}q}&d$c?d	doubled!ïNke[|Vlj|pintjshd	intd!ïNke[|Vlj|p=sMwd	doubled*~WdNk+[&oe[|Vlj|p,,}intgW߆
jB[&oe>k-	@b+td	intd*~WdNk+[&oe[|Vlj|p,,}s 	0.CgW߆
jB[&oe>kmf_lj
d7~WdNk+[&oe_lf
(v,}M[g+ the double array value for the typographicAw+arrayValue Indicates the array value to setIndicates the array lengthh[|VljA@	ƌd	&double array value for the typographicAw<arrayValue Output parameter to receive the array value, Whenr'free()' to release-Output parameter to receive the length of the k.j4v,}Type of badgea[7 No badge */
    TEXT_BADGE_NONE,
    /** Superscript=)    /** Subscript */
    TEXT_SUBSCRIPT,!Type of vertical alignmentaG< Baseline of text lineq!    /** Bottom of text lineq!$BOTTOM,
    /** Center of text lineq!!CENTER,
    /** Top of text lineq\
font styleN Font weightB Font widthBJЕ Font slantB09fontlK key of fontfeatureޖ value of fontfeature#ADefines StrutStyle info,)N
2 The font weight to use when calculating the strutB1 The font style to use when calculating the strutB0 The s1"logical pixelsl; The minimum height of the strut, as a multiple of fontSize@ϙ Whether the height is override7&" Whether the halfleading is enable#C The additional leading to apply to the strut as a multiple of Size!* Whether the strut height should be forced( The size of font families&; The families of the font to use when calculating the strute Rect width Rect height@4w-J]op[(UC0.#:J!w/}fOk+[ _S.)P٠SNk+[&,direction Indicates the text direction to sea	 enum <b>nC</b>!:C+Dhlbk+[&align Indicatel to sea! enum <b>OH_Drawing_TextAlign</b>!:k	a text fi@Vk+[&b	Indicatesn@R<b>1</b>V]o<b>1</b>NAM
h/קJ!n <b>1</b>qf[kE_S.)Pf@4hYkKcolor Indicates the colorIɪX_nOkKM	Indicates the f2TkK*fontWeight Indicates the font weight to sea" enum <b>OH_Drawing_FontWeight</b>!F.O4(	text baseRkK	!Indicates the text baseline to sea$ enum <b>OH_Drawing_TextBaseline</b>!BDPecoTkK#Indicates the text decoration to sea	 enum <b>A</b>!Bp6
AAdd the text decoTkK$Indicates the text decoration to adda	 enum <b>A</b>oS7] the text decoTkK@Indicates the text decoration to remove, shoud be match existingp/enum <b>A</b>oS7ҹc
the text decoTkKcolor Indicates the colorIp6
)޶1heigh1UkK;Indicates the font heightMEZLNkK~	
	Indicates  to setqies.LTkK(fontStyle Indicates the font style to sea	 enum <b>!</b>!GSBTkK}gT[	the localJ&eB<Yk text style object <b>1</b>% brush object <b>OH_Drawing_Brush</b>њ;1cd	foreground brushA<Zk text style object <b>1</b>% brush object <b>OH_Drawing_Brush</b>80OXyB<Yk text style object <b>1</b>! pen object <b>OH_Drawing_Pen</b>њ;q]d	foreground penA<Zk text style object <b>1</b>! pen object <b>OH_Drawing_Pen</b>80OuB<Yk text style object <b>1</b>% brush object <b>OH_Drawing_Brush</b>њ;cd
B<Yk text style object <b>1</b>% brush object <b>OH_Drawing_Brush</b>8qB<Yk text style object <b>1</b>! pen object <b>OH_Drawing_Pen</b>њ;]d
7B<Yk text style object <b>1</b>! pen object <b>OH_Drawing_Pen</b>8ia['}fOk+[&fontCollection+w</b>Tp[UC؉J!w]+IL_S.)PAhȯRS
kJ_S.)
dhiw-IRtextthe text content=
ZGRemoves the topmost style in the stack, leaving the remaining styles in~UL_S.)
^Qw_h]+ILTp[_hU⚗J!w_h]+T+hF_S.)P专+hL	 Indicates the maximum text width=
`IHPaints text on the canvasqIY+hL*CanvaswpositionX Indicates the x`!$positionY Indicates the y coordinate!6
"!7Paints path text on the canvasqIY+hL*Canvaswpath Indicates path informationCIndicates the distance along the path to add to the text's starting_}IIndicates the distance above(-) or below(+) the path to position the textA Layout text within a constrained9&+hthe texto[_h0constraintsRect Constraints height and width for#On return, containprphat actually fit.
 *Dthe array object <b>OH_Drawing_Array</b>.
 * Releases memory by <b></b>$ayLen On return, the size of the fit#San <b>OH_Drawing_RectSize</b> object that represents the paragraph's actual rectangGet range by;##ethe text <b>OH_Drawing_Arraywndex Range's index in*RangAk_S.an <b>OH_Drawing_Array</b>karra!edthe text <b>OH_Drawing_Array</b> object.
 * Supported array type: Fonts full name array, get by <b>'8</b>.
 * Supported array type: Text lines array, get byo[@</b>.
 * Supported array type: String indices array, get by <b>_6</b>.
 * Supported array type: Rect array, get by <b>A</b>.
 * Supported array type: FontDescriptors array, get by <b>+A</b>.
 * Supported array type: FontDescriptors array, get by <b>%=Path</b>.
 * Supported array type: Text ranges array, get byo[`I</b>hankmfarray is nullptr or notjgd		max widthqIY+hFThmaxwd	heighZ+hFTh8bO in actual use.
 * When^ empty, the minimum float value,
 * that is, -340282346638528859811704183484516925440.000000,p_hbyoh(with indent
 *N in actual use. When2 empty, the
 * minimum float value, that is, 0.0,p_hbyoh(with indentd	min intrinsic widthqIYrw*_hThmind	max intrinsic widthqIY+hFThmaxVGd	rN +hFThr<EId	#N +hFTh#<h	aSpan+	</b>QS
d	exceed maxLin [+hFTqceed maxLin)`J-Hd	rects for ranguZ+hLstart Indicates the start of range to set.
 * @param end Indicates the end of range to set.
 * @param heightStyle Indicates the height style to set.
 */enum <b>A</b>.
 * @param widthStyle Indicates the width style to set.
 */%enum <b>OH_Drawing_RectWidthStyle</b>hrects for range
'@Γd		rects for}IM+hFThrects for placeholder(@%V7dleft from textY+extBoxwicates the index of textboxhleft from textbox
' :Kdright from textY+extBoxwicates the index of textboxhright from textbox
' `dop from textY+extBoxwicates the index of textboxhop from textbox
' +Jdbottom from textY+extBoxwicates the index of textboxhbottom from textbox
' &Mddirection from textY+extBoxwicates the index of textboxhdirection from textbox
'*$Tdsize of textBoxqIOextBox,
extBox</b>Thsize of textBox
'.=d	glyphposition at coordinatuZ+hLdx Indicates the positionX of\#param dy Indicates the positionY of\kglyphposition at coordinate
$ "d	(glyphposition at coordinate with clusterqIY+hLdx Indicates the positionX of\#param dy Indicates the positionY of\kglyphposition at coordinate witJ%ߓdposition from!Nk#e*[&</b>Thposition from!
'.(hdaffinity from!Nk#e*[&</b>Thaffinity from!
'*zd	,vIT+hL!offset Indicates the size of textk!,dstart from rangAO-*RangAkThstart from range
'.Pdend from rangAO-*RangAkThend from range
'.+09d		line counZ+hFTh	line coun
(.ML,2PG<TkK
Style Indic to set.
 */enum <b>A	Style</b>3l2thickness sca@VkK
5Indicates the"text decoration to set3M$@4^86DTkK/letterSpacing Indicates the letter space to set3C38iTkK+wordSpacing Indicates the word space to set3C9Uhalf leadingTkK-halfLeading Indicates the half leading to set3C;_TkKG	ellipsis style
$ "1n`F=modalTkKE"Indicates the ellipsis model to sea	 enum <b>E</b>
$ "1n`F&@}@bk+[&A"Indicates the break strategy to sea% enum <b>OH_Drawing_BreakStrategy</b>3;KBÓk+[&C#Indicates the word break type to sea	 enum <b>C</b>3;PDimodalTk+[&E"Indicates the ellipsis modal to sea	 enum <b>E</b>3;`FWget line heighZ+hLbIndicates the line numb{line
?HPget line widthqIY+hLbIndicates the line numb{line
?JOget line text ranguZ+hLbIndicates the line number[M&Indicates whether spaces are containedhline text rangc(@Nx<b>P</b>V]ofont descriptor object <b>P</b>@nA%-PP:J!n <b>P</b>Q+U{Qfont descriptor object <b>P</b>qX>0UGRP<b>T</b>V]ofont parser object <b>T</b>aA2-TS7J!n <b>T</b>Q+Upars޺.	parser object <b>T</b>qX>0U=da listV IzY.	parser object <b>T3</b>.
 * @param num Returns the number of obtained_Xha list of obtained system font(~,WaJ listV IX	+X+The number of obtained_Xd-information about the system font by font namAOzY.	parser object <b>T</b>.
 * @param name font namehsystem fonts informationaA2-P[lGet line metrics informS +hFo[</b>.
 * @return line metrics object <b>=</b>aA2=]\Get the0EKDIc
s line metrics object <b>=</b>h1EHO_KJ line metricsNc
s line metrics object <b>=</b>qX>aDd	specified line by line numberqIY+hFo[</b>bnumberb line metrics object <b>=</b>a+metrics was obtainedqX'`J 2:dy( Sets the ellipsis of lines in a text fi@VkFo[</b>.GIndicates the line textellipsi8 feof lines in a text fi@Vks} object
 *o["pgT[
the localeN>oh^ SplitRatio of lines in a text fi@Vks} object
 *o["i%Indicates the textSplitRatio of linesN>"jWd	TextStyle of lines in a text fi@Vks} object
 *o["hline text text/,@Ph
l<d	$EffectiveAlign of lines in a text fi@Vks} object
 *o["hline text alignqX$ ";НWnld	$UnlimitedLines of lines in a text fi@Vks} object
 *o["hwhether the text has a maximum line limit,
 * with true indicating a maximum line limit and false indicating no maximum line limitqX'`JpFd	"IsEllipsized of lines in a text fi@Vks} object
 *o["hjwhether the text has ellipsis,
 * true meaning there is an ellipsis and false meaning there is no ellipsi(`JrCset line textSs} object
 *o[".j, text style object <b>1</b>њHt[get line fontmetricsqIY+hFo[</b>.j, text style object <b>1</b>.
 * @param fontmetrics font metrics object <b>v</b>a+font metrics was obtainedqX'`Jwd	Aposition of the specified line or the first text of the specifiedS +hFo[</b>bjnumber.
 * @param oneLine True is the information for the whole line, and false is the information to get|z5contains whitespac+{! line metrics object <b>=I</b>.
 * @return return whether the information was successfully fetchedqX'`J 2|font weight ofZ~s} object
 *o[".
 * @param weight Indicates the font weight of text typography to set. For details,
 * see the enum <b>OH_Drawing_FontWeight</b>њH#V\
 ofZ~s} object
 *o["l.
 * @param fontStyle Indicates the font style of text typography to set. For details,
 * see the enum <b>!</b>њH+dofZ~s} object
 *o["q#e.y of\$ޚ;lofZ~s} object
 *o["@Indicates the font size of\$ޚ;ŅeofZ~s} object
 *o[".Indicate!\#ޚ;rYhalf leading ofZ~s} object
 *o["6.
 * @param halfLeading Indicates the half leading of\$ޚ;kline style forZ~s} object
 *o["%.
 * @param useLineStyle Indicates wp+for text typography is usedњHӋ_font weight of line style forZ~s} object
 *o[";.
 * @param weight Indicates the font weight of line style\!/!enum <b>OH_Drawing_FontWeight</b>њQdline style forZ~s} object
 *o[".
 * @param fontStyle Indicates the font style of line style for text typography to set. For details,
 * see the enum <b>OH_D%</b>њQ&fof line style forZ~s} object
 *o["q
	Indicates  to setqies.of line style\(ޚD4of line style forZ~s} object
 *o["~.FontSize Indicates the font size of line style\(ޚDDnof line style forZ~s} object
 *o["~FontHeight Indicate!
line style\(ޚDbhalf leading of line style forZ~s} object
 *o["~"Indicates the half leading of line\(ޚDEtof line style forZ~s} object
 *o["!Indicates the space scale of line\(ޚonly>Z}s} object
 *o["~8Indicates the line style for text typography to set onlyњQ8Z<b></b>V]otext shadow object created <b></b>aA6*J @text shadow object <b></b>Ohadowthe text shadow object <b></b>A{d	vector of TextShadow in TextSQXk text style object <b>1;</b>.
 * @param int Indicates the number in vector to set.j+the text shadow object <b></b>hvector of TextShadowaA62d	%size of vector of TextShadow in TextSQXk text style object <b>1</b>hsize of vectorqX'*^	BD(element in vector of TextShadow in TextSQXk text style object <b>1</b>.
 * @param shadowthe text shadow object <b></b>8@\/clear elements in vector of TextShadow in TextSQXk text style object <b>1</b>8ҧ=d*element in vector of TextShadow with indexTk text style object <b>1</b>icates the indexk!Aelement with the index in vector of the text style object
 * <b>1</b>aA6f indents ofh+hFo[</b>.
 * @param indentsNumb޺&the indents to set.
 * @param indentsthe indentsNH2kd'element with index in vector of IndentsqIY+hFo[</b>cicates the index to set.
 * @return float Indicates the element with the index in vector of Indent( M6TJ&vector with the text shadow object <b></b>Ohadowtext shadow object <b></b>AH7, mode of applying the leading over and under!Sk+[&heightMode Indicates the modeNH.w/Get mode of applying the leading over and under!Sk+[ Thmodc(@'e) struct of background rect and styleId of!SkKrectStyleInfo+*w%styleId Indicates the styleId of textN?`
 font featurAUkKtagthe tag to setq~ek\1f
 font variSkKaxisfont variation axisq~evalueN?b' font variation with normalization dataQwB=Bkaxisfont variation axis	Indicatesvalue to se Get all font featur PkETOH_Drawing_FontFeatureNarray of structures of OH_Drawing_FontFeature.
 * Get size of font feature by!'c'@-|	<Vlease"array of structures of font featur P/array of structures of OH_Drawing_FontFeature.
 * @param fontFeatureSize Indicates the size of array of structures of OH_Drawing_FontFeaturc(@}Get size of font featur PkEThsize of fontfeatures mapqX'.^	PD: font featur PkE_S D baseline shift of!SkK
Indicates the baseline shiftN?`[Get baseline shift of!SkEThbd	^kEThvX"rVdG<TkETh	4'@vd
font weigh1UkEThfont WeightaA2-_@>dfon[kEThfon!.@`0T5d		font baseRkEThfontc@Yda list2IkK*num Indicates count of font families resulha list8~jJ list2V list)param num Indicates the count of obtained^ @%><d`]kETh`0T5$d	letter spacing ofWkEThsize of the ld	word spacing ofWkEThword spacing]5?<d
font heigh1UkEThf 1?U
|$d,whether to set the text to half line spacingTkETh	crue indicates that the spacing takes effect,
 * false indicates that the spacing does not take effPP*`Jwb<h
͉
lTk+[&align Indicates the typography/,
 * see the enum <b>- </b>e'ud	loca@VkETha locale of data type as a pointer to a char. As with the TextStyle lifecycle.
 * No release is required and the return value -is invalidated after the set method is calledqX'3^anp[uperscript or subscript to useecktex%font weight, font width and font slanq-OT[+=BkfontStyle Indicates an <b>!</b>QS. rd	tex%font weight, font width and font slanq-OT[+=BkTh<b>!</b> object gettedaA2`0	=/k̉1, including font weight, font width and font slanq-OT[QfontStyle Indicates an <b>!</b>QS.@zxd	}1, including font weight, font width and font slanq-OT[KTh<b>!</b> object gettedaA2`0	=/N Pd whether the two TextStyle objectAYk
source of comparison <b>1BkIndicates comparison <b>1BkTCompare resultqX'`Jw)bd3whether the font properties of two TextStyle objectAYk
source of <b>comparisonpBkIndicates comparison <b>1BkTCompare resultqX'`Jwod.whether two TextStyle objects match attributes[]enumerates of text style typ"Indicates source of comparison <b>1Bk&textStyleType Indicates comparison <b>1BkTMatch attributes resultqX'`JwcSet placeholder of TextSQXkE_S ?dwhether placeholder is enab@VkETo+placeholder is enablC<d@fk+[ Th	@c"@AНLdwhether the hinting is enablPk+[ TJTrue, if the hinting takes effect; False, if the hinting does not take effPP*`JLDdq inform]SIndicates error code returned, based on the error code to
 * release the memory ofp information.
 */enum <b>1"</b>ha pointer top information.
 *+<</b>QS=@
KiJq informS=*<</b>QS.@X

o;?ZnT[of <b>Bk_S @oJn <b></b>qfWrutN[of <b>Bk_S Н	Hd	strut style forZTof <b>Bk_S+
`0Overriding the struct StrutStyle equals operatorO"rom Indicates source of comparison[o Indicates comparisonQS.`J6a
hinting ofZ)Indicates the hinting of text typography.BzYGetting
target rowqIY+h
a pointer to a typesettingb&Indicates specifies the number of rowsLe-size of font metrics struct from current lineh&character measures for the current rowaA2-v]s4Free up all the space taken up by the lineFontMetricNlineFontMetric IndicatesJ%lineFontMetric gather to be destroyedAP< the Typography as dirty, and initially state the TypographyqIY+hthe texto[_h_S v@-Get the unresolved Glyphs count of lines in a!^+hthe texto[_hThunresolved Glyphs countqX'zr the font size of lines in a!^+hthe texto[_hfrom Indicates the source of the original font size.
 * @param to Indicates the destination of the updated font size.
 * @parJIndicates the size of the fontA-
i the font color ofh+hthe texto[_h#color Indicates the color to updatee'$7R the decoration ofh+hthe texto[_h'Indicates the text decoration to updatea enum
 * <b>A</b>e' '
!c!#g+hthe texto[_h
5Indicates the"the text decoration to updatee' '
$qg+hthe texto[_h
Style Indic to update.
 */enum <b>A	Style</b>e' 'the paragraphqIY+hthe texto[_h3color Indicates the text decoration color to updatee' '
)L(Get whether the text layout enables line Bkthe texto[0To+Wor not to enable line styles in text layout only, true means enable, false means disablcB.+C%Get the font weight of line style forZ~s} object
 *o["h" the font weight of line style for0`/!enum <b>OH_Drawing_FontWeight</b>aA2-q$Get the font style of line style forZ~s} object
 *o["h! the font style of line style for0`/enum <b>!</b>aA2`0o'Get the font families of line style forZ~s} object
 *o["2.
 * @param num The number of obtained font namesh$ the font families of line style for0`wX!~	.{2NJ list of font families nam P/ list of font families namesq0iesNum Indicates the number of obtained font nam9
.3T"Get the font size of font size forZ~s} object
 *o["h the font size of font size for0`wX!?	.5;'Get the font height scale in text layou1Uks} object
 *o["9.
 * @return Retrun the font height scale in text layoutqX'?	;9w7<EGet whether to enable font height for line styles in text layout onlyTks} object
 *o["a+or not to enableJline styles in text layout only,
 * true means enable, false means disablcB;9@&Get the half leading of line style forZ~s} object
 *o["a+9half leading style, true means enable, false means disablcB;R'Get the spacing scale of line style forZ~s} object
 *o["h$ the spacing scale of line style for0`wX!?	.=CGet whether only>Z}s} object
 *o["hwhether only>@text layout, true means it is enabled,
 * false means it is notqX'`J.?CGetllks} object
 *o["hl0a	! enum <b>OH_Drawing_TextAlign</b>aAGet the text direcRks} object
 *o["h the t/_the enum <b>nC</b>aA6Cfh	nn a!Sks} object
 *o["hn a textqX'.MECGet the ellipsis of lines in a!Sks} object
 *o["h  the ellipsis of lines in a textqX'GcJ list of Ellipsis nam PG	
 list of EH3Overriding the class ParagraphStyle equals operatorO"rom Indicates source of comparison[o Indicates comparisonTCompare resultqX'`JZBox* text box object <b>OH_Drawing_TextBox</b>AK6parameter of text-shadowOhadow,	wCcolor Indicates the color setting of text-shadow.
 * @param offset+PointwN,Indicates the radius of blur for text-shadowњ;TOn <b>OH_Drawing_TextTab</b>Q+Ualignment Indicates enumerates text tab alignment modes. TAB alignment, Support left alignment
 * right alignment center alignlment, other enumeration values are left alignment effect.
 * @param location Indicates location of text tab)]<b>OH_Drawing_TextTab</b> object created. If the object returns NULL,
 * the creation failed jkof the failure is that the application address space is used up.
 * As a result, space cannot be allocatedoS'@`Rn <b>OH_Drawing_TextTab</b>Q+Vab,
extTab</b>QS}Sd-Get alignment of an <b>OH_Drawing_TextTab</b>Q+Vab,
extTab</b>Th%align of an <b>OH_Drawing_TextTab</b>QS}S@AeU@,Get location of an <b>OH_Drawing_TextTab</b>Q+Vab,
extTab</b>Th(location of an <b>OH_Drawing_TextTab</b>QS}S VEtext tab ofo[/Tab alignment does not take effect when text alignment is also set, Or when the ellipsis style is configured.
 * When the tab )is not set or the tab's location property1$it is the default space effect.
 * And all tabs in the paragraph after the setting are aligned according to this tab effect.
~Qk+['ab,
extTab</b>QS}S)XSGet DrawingArray sizAOY#e=the array object <b>OH_Drawing_Array</b>.
 * @return Size ofZ[+ forZ \̗h?content. The content supports UTF-8, UTF-16, and UTF-32 formatsNRtextthe text content to se^Set the byte length of_f$Indicates the text encoding type <b>q</b>e'
h_`%)between Chinese and English for paragraphTk+[&enableAutoSpace Indicates W`#between Chinese and Englishec{opyq}qf[k+[ Tcopiedo[0_Seopy afffkET
copied <b>1Bk_Se&M
hJopy ahh+	</b>T
copied <b></b>QSe&
/kAJ!n <b>P&</b>k,#e*[&</b>QSFl|d	vrlG+hLmIndicates the startm glyphRangeEnd Indicates the endm1*Range</b> pointer.
 *     If this parameter is <b>NULL</b>, the actual glyph range will not be provided,
 *     indicating th.p\p0 is not required.
 *     Releases memory by <b>=</b>_$Indicates the text encoding type <b>q</b>.
 *     Currently;qnrepresents byte rangesq<nrepresents UTF-16 code unit ranges.
 * @return The pointer to the <b>OH_Drawing_Range</b> object representingqr~	Releases memory by <b>=</b>!33sd	"t!fromKthhdx Indicates the positionX of\#param dy Indicates the positionY of\f$Indicates the text encoding type <b>q</b>.
 *     Currently;q^y represents a byte offsetq,y represents ay&The pointer to the <b>P&+</b> object.
 *     Releases memory by <b>z%</b>!!*[{d	#|V+hL|Indicates the start ofqr~8}Indicates the end ofqr~z}*<Range</b> pointer.
 *     If this parameter is <b>NULL</b>,} will not be provided,
 *     p}< information is not required.
 *     Releases memory by <b>=</b>_$Indicates the text encoding type <b>q</b>.
 *     Currently;qU/byte rangesq#/cUTF-16 code unit ranges.
 * @return The pointer to the <b>OH_Drawing_Range</b> object representingm    Releases memory by <b>=</b>!3Ȃan <b>OH_Drawing_Range</b>krange+RangAk_S.	HwNx ŉ
	bhjjjxk!|WɆjX`cd[v<Fn [2x!)y'jN>Л>͓Ogܜ=U^$xr
=0oFI _Pp+?pLOȲy&{Ͷ[6$$nxj{یD 8&3x!Mv3lɞvv-{l IJ*x' s??3t!8KUOKB`xx~.{FYe0 s	Yx0 (n\_C~o<p
#)H5'x CA0s)}\6E e*e.f	;Г
os$^6E*
<Vq*a.* @since 20
* @version 1.0
%^o6q|uHDbx{v)y| F~r,u6p5o.\sr]ƏYcdaLQ((/MϘ.Qdz#FQ̼ԢT4 K8u'<dJo&lwwg=b?].BQjAQjqj^If^:/LQdǌ+'Ofh2FA@:U&n6Iv~5ǅs*2Sap9
iaptW7L m'T
xk_ɾz	%&Ki%7Hk2N8_l@f3&;S&?I,g5TN2.d`FqtŦ<ʬ5"dƂO02jM7cVRp(KNU02 sR3JkO2OeΔXø}Ə 9:	Oxk_k.IRRzMޙ5If4=rnpq!f;ood4Χ(6qFWf-^l&3M_~Qk/Cqf^rSZT`OoTbT^{1.#vS0~d 2Xxu jcic+c/c/:Ƿ0[h*^|nM~h *a"(e7 Go7
Jb.\x[}O(N>6wg.4Yc?'h4,.8ymɲW'?^Wʨ1Mkg ^C8'i(g^RFMa*ƨL>o	60q8LTՠ$i,;kr~^q9&O2͸7LIQwc䛙3'3nΝUd:%F [r8x[}>!KYWmnR̜<M!)1%=ud5L择MWg^d8=a6#t5WdW(I(W(,\@eSbzjHeABHX2U!?I􍩌֓9_=qvS?>ͨ8!tK2 D[	x[=$''wˎi2Wdk&發GbkŌzOj+0f}ɼPϙUN񝬓 3yCG*u&/9\4Ю# rn2:U&3vBKMHfI\f] 0yb$yŰ7$lI` }kMx[=}t'\qĘ\a:lFI<&發GzN)0*߆s&o>l<c\ ](,!*x[=?ۆͥ'8Nm5yd{&ғy&M>(8@eGfܓ/Foֵg+I-JKLNUHNQ(.I,)-֛Vt2Qɼwx&wљpQ`k=#~byN" Qz3+M0[8'(4nBm|(&k&o`AɌEM
ќ<wқCh6\?'ϛM&pbJM?sN q^dB͞	= qLx[=ۆͥf	=3'?dQ  px<
@b(h)8+d&(%&dU8g%*CD&89;{:9:x)*@"㙗SWPϊ(xO?gPx7 GO?wfXLwKIJLVKU(.HL&`Swk|p3|sګmq<%)??gs_-#PsdA/Dq0OpW^[(4y='P&Ksd(tNV+pE
e9'xvӞ"b8$-TMkG&H6ψ>#qu?4<@Zu@#mONw>h  vx<|N
@b)h)$+d&(%&dU8g%*CD&8+;;{:9:x)*rN^hQDjGV~AA!Lh<9]}zm%=,N@'L^k/͑ 99[bįiFH)%N	7N{rf8I0S5#<#zh۹ ]}xݚ?8n< n
!x ѓi>x;|1\\
 ܜ=ݑqZ ,	ex;|1ͱc U8x;|E
)
y%%ym䛷9n 3Ax;dE
)
y%%ym7osjJ.8 QDBx:dY-uxj'/Wk#v 	]x>d]3Nl.d?ݓN>QxsxoBW&82VlA#0Fɲ'npc3d`'b,i(lø2 ~!@xk6?ۆI6Lm4'`20l >քhr-='qo=m4f_L a j1Pil&*LuT*\xq:f@3&{{n_11QfrC	tF~,_k]Q4O jaԴ)t~F6sR\&W:{oȚW\2q
m7x3Ns~QCesIBL?y}Go Xya#x픿K@ŉ	gb9V6ZnwcfX8dƙ03ql!)lJ8bc%	Vu1ha8	d|͏GGCO梳]e.|Ob2u`T
EQA͖hր0G	8`Bur
 4 y]E2뚥TmI`+[Zެ˖RM[Eb>zPvhx;jx	od,d-5޴'k7<HL/<Ӄ]޿c&+b6iHN"^J$MDwHtS?+\_Z$tSއGB|WE3i|Y>WE3# P'q (m2/J]KT<\/ ҿ9TtS9ƣk2adL< Rx3kI6L:7؋OwF|9x[r"F:Oζwt	PU0֙Bbsm$qLF0'/V?M8gslGƍ= -QYx;v2[{K&_P9#d73
OwgK/LM~q1:?s+1L*Ô_0Yu<5'eA]? }mJĦ0x

%%
)¦Mbp$FmdObddFB7LQ `T#x;Ŷb5ۆE5SS'W٨l<&/ټNbr@#o0dkYsC#"':us(V@2_az"F6ԐʂTT#?Y
x_
V:]1&s̟AQx+?[r~Afj&M[!5 gWɒӅ9'/ꮟQs^d
&@uO.c.7JĦ0x

)¦Mbp$FmdObdrtɌ &o`i	 ЈHx/ 	text shadowV>FM>x[mj-&0Q gx:x& w;:<8Qwprl,0Eox' tQwprl,<jg0+%x۰ۆk'{Ks+$%%d(dr)Cqf^rLDptuwprtrKO= U!?m9s&_\/RZT㘓WP1Q_KK)85'3S$D́pcA%%XgH/)@g dHH~	DURXɢ"ش|!s>Fn2hXNc,U 
p^)LpcfGNbϼ
.!;A/q'todx`$F6bTĒ<|H@fN1Y`Me5%RhiU1l_f mywx۰A-rKbd-V(HUHIM/J,SH/ROO1Y`Me5%RhiU1l_f %gx۰m,lE'ǰO( ?Yٜ.Pp`C b||=~ ɐE&NNl"(M~H}J|{t@Lbj69uF@D7߰(c<Fbs`Ya3m> M&%x۰1'
Ov/W(H,JL/J,P(N-)KR -̼T#>p{HeAB~d{!s0JM`1_>,$3911'3=/75DbSbqjNfHBIjE35"$>5(''`WO?W$KJsS_$SK-"1@5ɐ$,0"?V#ޥ(!@͓EE7Oi7B}eа.(2Y}PeA>8+re'R"d3ZOˏ&7cy'9 ]Cv^SO~ɚ1. ?2 x۰mVK˷3^V6  {	CxYy\d}ֆA4GQ3DeMYf78k%4v3r42^zygyߙ?l|sspvzv-4ֻ|FBz`,](iAj WJD]Xa㩌^]g|d4}o1p`f-@q,΁==x"bG?nlqu	'O5W㘪T1}}8 ǎmpaゼ['\s# a"E	Ξg4)yIk%H1e;FM]q8[ssIm7f<)g%ժhkekk}D,Giؓ.*Zݘq|pv8&guqAd$ǰ3E#7$%SJźSa	#Bq{j\8%*]-v&fKSZyJY}k8r]!KۤY4f_$o7sbؕQIө<]J%8.3׉Lr#y[ڂ\llgêpX?^]06gkdAax3?Q9JP7`\nyl^͋sf#VMC=1i^ă'ҜG2uais=;IOyɎ{
Ap-Pb|j8u1*Z}qRUZM]Z}uwN.}&~!3mmf[Z-*}T5u%K7]<U7;4\[-GqzL4;겇J*𮦁r,&@$!CSc1W=P>'QycpE޸W68ƢևDOe_WY@8/Uբ"-H
'{MUUiJZeT7e`f96ϚRd0Ra4Jr,β_WwXPk>kMxrDxn]s(kvgFqƱFr^FЩ^xm
*yA$e!b^Yi˟	e
KiqìVNuaLU4(.3p|Bؼ$YPUk@6zA[G6jW9ϳYU	$ZZ2[~sj(Ն
G+4;TWWV3ZVڬUlc4*l'pT5!{53S[K׷2wv5m&mlcKÛd9\yC}oqzB$Yzou%[ż<3KI<P#S"p'pQW^V6;GĮH I;};@
aHlL|z'AyCzt\onuy8q5pGXש;N7{W۽LO+{r58'}zgºЏ0zQ7JqLlv ?MG0O^%7<ny_"1lb|}ws"<l)prqϟt3ա2[fbee3~1.TPT/8gEO2TtMM>0#D_Wg=dj)sUĕ/=᥵Bؽ^6/ۍc%:]S.PՂώM]uoF,~t\_/t<f`L؜pB'N ;L9q4:B*yQy(CPmgؐ_	ďN!NWQg:C2_O{јws˪p,-m#seᖳ+ފ̼do)o8G%#.2-4eKf1{&HZ:(-W&յj3V燓@InBqtaE?/5jBŹ@:hXnK
d2x\KWlx%*%G]7f)tg?f2]ǝ4:pؠ78Io>bDBE%V@,pG;g⎏6	*@W.ၫz8"lǍ<6	S>8l|b[pRB|no}[g+P0z-sq)<ŜVT8>7}=%G\8@)qqB(>F~?/]bUO~b['ZKhb,/~	_>ȷ`{8o+%8r/߻cU,t8&jzG#z^a {7!	6$.8{ZPg}bcSgGYauXg?*Du'H 	C=ufac#mCE4_bl~mE-b68^O\zoyl_z'^}&29H,,2	$*WXe/h[ͿJHx4giHBI>k:(@C0+"؝BCN|8oq>K\ OX͘/{!^>[#%G`1WohS({
w6L/6U,wdu4;DVWJ
WPK&'e'eApڤ JqdjvBa9ݾxnzE³ŌA$%61hf`)5dVipz8$הb贿EO#a3x;
:Nkܻ^-]TՍ:vw.zus""T+Ѡڸ#a=9rr!2x0 Z3a%=rģP,zMoy̑A7r0 9:&kh %U4#HP/	*f}g+-,U48##2	$8x	̋"i;ɥϝML[c8y0 4X3$ˋł9MؽӕW.		hɉR2L[S\+7{R͘(M) 񑙎L;]IC2tB^O'C?Lo&C	
ȁpXtpoL5>πk\&@G#Wa(zp@L΅`B.|n
!tWb́X7xO')P*oeݘ"powY%L̓K4p,f^+5@R96h1}V":`qPܼŃ(Դq7)WCޏ$z&N	7Q
~@>.D_K}
Z,dh,AzSiXDݸ^uhΩ-,fzd~dOR[QI4swtӖ@@K@+_o}\eO/QDrcfHr8ϋ\+7dRɈ˼`It+gh6]xu%:.zip7HhSʲTd2Y>kh/k CP4RksԵ^ԡo7jrRrk&[7>ߘ&o^dh$@^$dj[(;a'Egӡ[IoG󾋰{f=AduALrL>j2_	(!2zq~F紉]x{?m"ӊ'''畤)d*@9
ťE%
!n:`LG!1/66RH/M,),79hlI%>y%
%
%@AB
9|Eb
E
%%y)y!?BJ*&_ORRp(KNU02,Xi4y~!;cJ
XYjJHjŽ3S 5AqfUj|:
.E@C܃ĚoVxS
 	s+hx{?,>l'ћY1`71Q$̘$'fx|Hśe25ߵ~ׂqR( $MgTx]kAIbXa-
Ƕ`Ć6&%Vk@snv'ɘug;;k0@B^xlk59gv9a|8 R\26g>~q4iE[Jof{=%/J(Ihp8'fzRӒ1dX#J|NE-o	#P\UÎ`n^l!a\Zj@Ogh6vuVwU[ģr_G.4jAr2^*˿E.HLc2d7ҏVrzaqA_]Y[.6E=M,ѡY%+Uutmߓ_M4	&c0
MZWכL*]?/EOE^8fqV	5A0չOc6G/LX#@u?sMDNưM-"%b%aP2<d@%bUp)V0:X6t<fP" Ŧ0
!0,*dVfBqbDdPNE>)p2X$p!emV)eJdU6mK^tG_ڃ!&Iܕk/FF`d74ʣ<|TLJORETxblLmI0ѽI+0Д$oG`!YZl׃Yuȍ18IFȵ?r+^wHgAo[͗ K/

T0<xu]HSay܇;ٙs[s"RPi/iP)+ٰ#,HhBU(HGu 7Fa7)^$tEJYt{SVGU^nd`\VW):zZVm̒*HSk )aɔ9)uȪe1cq~`yOLFFCF$}4t6sBbْJPZK2i`gPVnڤ52c,X~6Ph5J;W<>u:w.$ئdzf4;7'iw9iHxlT.՝C%+!cno"RZ{/瀙*t뜥5\~E:SOBPqH|Kۄ]*I%S~$Q˂I4wS:	VjyK/zwv,~#l8Jj!|	J/RC˂G:FU4
I9]D 4d;ĺ!HD1>*7w TnAˠ#@%TbSSRn(3y=h<.,oؙ!$tx9YFrziy%99%y܀bB}|\C<&ײ	{rMv`*:yY_bd̟1;G`C12{rNX&LnD>D/G#03GU1_KfqbRNBIF{
)%$%&gO.d(рjT%LU|fWE*1Mfj0X-Hl{Ya-PYPXPZZR7yu]\@{Lݧ4>=<E_0e8?,PEFaJyFnɁN7pIM,ܪ;ynF ҾTxmrK&_HjWW (+Z)C3ļ0H!-(7du&TYꓚ^ZP4$O,_,&PXPZQ⚗RY:yBO*T@`C/^
$;ɝjL~{k"v^ǔԔԊɉ'חM~PIqBY~f&^. (άJ/Q@TG#ޥ(hG|P79dKd AyexR-''L%PZZPXZXP\ZRZTY_PX^X1Q~</9'M41hVg^JfrbIjB8er)h)8gM5,Bnn
Z%9:
I9P+*4'a~w ~qdOx}ix\ŕWWZjmWݒ#ۨؖ-K$/`nnbY!0!+8ÐLl&Ä%LHÞ|dBC{0`%$,N][I#o:TթթҏnsSIeO
a;#ހ?,d]b$ sl!)Y̱8ץ\MnPwz"ԪroYs8$#?Dơ&nMh5iHaP<?ͺI>_va{FQƉL2Tnl9dקg8pX51{b}hp	N|F#aiJe[vFD).i6ީplobpvn7l	l2O4bis1H=f@Yi`vjs6Rx8B28g[2r!d[DA@>|69+3Exx{N1~&+PӁ#ciVjoԯ;:=MIecdV (Za&)|o-_4.OyQ ;5KmU>ZWppƔO>y2m%r{p~^)~(7D1蒹:	v
RLƼFʻ:It@Hӎ/Ŏ#FbwW|*~jV9A0REduCɰ@tfRʤȌOqG'Bbh`6-NV#PTVZZX	*?(
=t^xXENJ)Bq{e*jԦ굦^֛@P1h7ח2/Z*5n*Y6ʲƄ^W=-/V3bPXOBl뫽EO%*:%zZ]$ƀuŸ9K.e۪+Gk:|X7D(5[(=Ff<`DK:<SMey&9TL\eɥNrQ+n.\	R]؝At7d5<^`UmP#'l:Dv}>7	&r^,uQBbX2|>>w
\&Hނw{;3IB!'=䐯B͒rtM[n-컍E]LA*WS|U5FSZ'FF@Rf1	E'vMЕm,$"&w-yl؆L_X`m0tJ!Jwâ}pz/"~jr:d`p``[b3MMr8t;͈GDDSDw~Q!f/mYJ0pD;)tt;mNqJ
f4U~PS/dn)bڛt$	u6Pdvy0>,TV_ I:*&Q]ZZ/nniK
3ۄhZ"db{lb~l9aGMU ~:ǭClXtJ~!C13ܱ:bV϶ZEq52^ڊeKyV^@c@Ȍ8Luטm+SR0|̑)Kb^?UJo>^n{51]K|+
#z2鵋y3A}%0}+OG]vpV(h :6:%lVW%d|:aK	EMZ.1,Or^4CS+JC߼!E*t\|㔕%`]Vqr Xs];fj}UC5r>	Κ&Um5քrrݒ01V۴ģXi9kh諂aV?_f_;C^H#yweZq_5uJ#AkڥVѨNHjl.+KuuI^dMk]"fݔh$x_Hx}ﮄiz]MntBL@EY*!`3SH*`dO CѤ^#0:e?Q^_[-4<i9񯻴UA/DLņ8!'RU(5NM8YTj77,.*Ua@d|[l!XrHԦ(9d,=/Cm=BM :@?wy	γƬ&{FǼp#|TDGzNJg䒏LqBZ(b譣`esI}da:|<׸W*R/̣ˌ%ޒUn`
A%;4tt?qWnX#j=D#^tǑN:'d#GȊ5#	p]5&:΍a9+[G4BWlׂզacnc $O>vi5ZKhLcQMo릱j#Zxү%>4SB(K}:{,؈߲)~hڄ?ؒ[.`KV3omNaX%k6+ĝ^Z,>K$jRfOޡj#H
t,2P2hq HҶ:Qk1&sVmUd$%4X{8iqkRҭWoČAh. dEّ	zd%32}.ۆ	3}Ԣ|d÷WoUi,a!Trj-wjkxPQd7!uXqbZꈽ_vCx"8SXlm<dSv8QW0Qөw)ޞ]y{m/0RZAƾ۫S)%PBVhWnϭ)nY%w,5H>ON/9z~>ƎD-f92<O[<k;kM8X\_QN=w6LCy0~%ݺEBk#6[@$Gh;~G:څ4\we[|2r-܃-A$Q*n?ӄGq8yLө*ȒV	SJW88)aPiK	h ,_^s2w+&	q?%wUY!oC\yŇRk4}Ls̐8n/9SBs K6 U3=tƒ(y;57Ǝ=InYxٽϿmcs4`r-\g>%c|ҳ{/b63'[˜5g߰ ?Nn%۾2rn\p,2 f]\dc:DDsQáLFR.FV}lc|̒1E{e$'-ǫӮm\B?:N&QkO
F,1K]"܂-SeWѐ'vˌ"V"7H$1Vyo<TzleJ$R;=`N"敐	%0N|[.ٜ?|3IeiKYSۙm@*~+ЛHUK[_@(Ӱ_4r$jSrIdwЭ==%l423]!SELl?xnfIF&e,4
P}lKU&lc[	F>&Mܿ~J.PDG(Ml^uMǝ;񫮌<P3ľ]ע~ZC=qH
ŌQԼ%3*c<^cabF`ŏl+/_g^QfWNRKxlW-weZZ_q8^"SIS(,ɁMJOU߱	a9PV)#oR})o7_H^Nթ7`sOΎ 8W.dsovVnq%<1ucɱzŕJK;s-jf,,ضsU+iw<N@$"	e%r)PLPI'߲q4M !w1PWQYXJN6:L/ܾiQ
UXrl%S(C|=>qk/¾۩?m=	LkRq.J	h!|2bl͔tF=.%90Hef&094H`~i_sjke@½;rY+bgBtQjVqfrRP-9[#dW\V13R\pϒ׋B5뤳~/N[g^˒J" 2X
 )nٟJL]45q@EcK	w0rKf7beеKy#W<YI]!N$ۄ+Mp_N! Zx2+Ⱦ `dgY(HʡR+x$[Ŷ+:t-_j5+֬YvMgkXbe窵]+Wh`kiɟDl'<p-=<|I 1qe8G,^.9NQg1hwg&?el1<ٌ8:	s_HIyE{M7SU)ͻM-vNR6A?JA"aȘKGT .(-`2Hb&)(qG#r}~-qʲ"ڣcPl5j"6Җ63g 7$E CjZް*.vKmOP
ISGnڃGq|.29!scV1Q0T!mH	ڥ!.ǖk7LNOLkh 2rtm3yPDFreEh5r䰳!~2"tIK*D][z0yJxWοhRxY	
rCsC J)5+dJsXCj-0<@0
ؔ`a4K ~*ҩ lDڤ5[w_ubxY5Z"m=Ŕ"áiJבʢ:E]3 ^N({s^8}pn2uK3[=dKzV([$P/pL,AɦIE[bRڈ<vSC1#.P;xA5rk"24	2T,ڗ[dNPRc3B>X}qeքI2Pl?=BmC,nNc2=/^?frLвa[:ZY"}9T&Uִ_6D穵Mx<i1X |SYUvw!ׅ,y/디48CN^rM}V(*I mzdFYx0~qԼ>U6 # ez髹hģYp죞rcFg7!|WO6	  eza.Lm6:|r`#J'Z*@91ތW%>5l Sx2dI:JpbBi#c.5iHNgŴ
*<fk/N>S`a8='}ṭk0<&;k:	:cr&eX#!0Ё_֚s\F{_MNoF:V@LdӑhH4q,Aڳ/ћ)14Jq+C梓;B5`S.QTweciraF'zB9&$CM|c]f8Ӂ\|$. 9m ;P24FN8vK 0iD]&8ZmdS6yIjȟ!>).$7"$\AeD19p VT)Οxr$.WmSaN7_j}Zwx[19݈@iٍZJ&f%xX)9Q43~iمLBu$@)G"2!Lك|ԝ ѵt#,@=xV3C%h[c{Uixtdk0HTɇG9 l&#VQ1؇yEIԊS2^WvVF(9üp2ÚL^27-Bu
 4y\-yzL8U&sTuY
)e
[=rqP\@B?%5Dt#xn(ߢcV-	NN3@?60'}<#HL;^TPOU[{5+\Gܧ1.VnϧAj2q|hP`2eVqsuҬJĄGջSO?z~w]C%<6ma<0HI3!NeAb$e8,+L ]ܒ/lb@ְn0 kdץꄃSwLɒ_9S	2]ɯoB} q`t8ȇ=|qevQ;q3%iE$P`\5̃"rElQ#RML`	U^>ekluhά!C5?^#o%4gھm~ON[!<	
m5Js| yQkʴPQI˵f~1gE?FQڙ[8=&ucSM>R>83+RC4utle%=GɕA뎣wQf,xôV(yl9+I
YRzPO޺r䛧{ϗP-PxȀG_Bpt <*֫:=BN<k ̉oba9	݄r˗Lac{[rcV`ŗ_E+cdyt/zIUBL(XN, g%3Ϸqéd%"wbU-.;nA
nYB%bsmOm6۞	䀝ZIMU;NenG;- :>đx0n W
Gg|Mxg>fRT]+7ܓ R=&~F1Nv%:A3,=EX$/<2$4ou>~i[e+XûP?_=O!Zw*1%#B*M@ʖ}Q"N3WE}uy1cwQ.GAzGOftdq^ jnȐKh&N^657Zi%=
|Ò[8bWR;5ק@ͯi4&yr[}ÄG2KTfXZ|qbf:4cTz͒sƝ}Q^:{0rx+ZQ>VɪhUKH"T$muZN؅bV:j0	X,jatl1[SB22V~j)rɽrǐ.29#ޟvۓ=]">!aD5 oQ'Q6}bKTL<mEGz99<2,fw4D7C{̓䪧P'w&GqX
yYYe6Y:;PPAE/(7q(\Ca<LkT!0f$9oa)حC>O%w5_Z㭢cԼ@MÇN^d~Bĺ*a8ЍYc%pj	|R-g(tt_vR0<o*;gFuy_@e͎t8/ЯH=^w$vcO_D1g)1͉Nr'^F'=F?ûQ-	vB9<V1hp\jԃ?R1vSJ➟ /1u%Υ@PrdoO7JVbcbuT(]r"ZOZAޅ7i'] :Ԟ1^&g=<kj{'ˉh&0ޕBM({}@"pKO4a@'Ut+lQ=LT|5
He+n²20_saɝ6^sz])\F~3
&Wf_#\jO\`짴jiAhA}NYtul1S(<7%uqdHGX_JFGi,}-?2I#%(T7X;>(wgo´?>/ex\UA!E!o(ǚbQ䎨e\Ss?=qxx>DO- DVГCmhٚ#qA-QF+IGV܎O<#Pf/BPP+`*$WUTdeSś:[[o 4S/|_Iz҅rEti^سC~߼ΔL2{p2@4d^	y65X6_>&+֙[IG4j#r ˍ\ґP /v*cTgs/|v;-V@2R1TR>$Y@|K$ex,hlbؚe?V_f|AU(&U.9)WMy¤WIEH/J #HL#s&>qRy	.CHQ<TG_ƇL[XtÛ|xK5~AG5U@R5jeKeQ#kƳDw/:Z5Ue4bg޺$!GSyIOI&^ǍoOX%g;m)9e_@`#ݩV'O,JRV&	L~)6 DR1^zؕR{Pq.DL)âDHZiZ#M!T5aOmO_xBܺG(.	$lx$,Cǈ5WnIk 9vȷ$Gs+b]J3#RCi5iq|
>׊X٤.R=-(dPxq)SOdEh($yH.PH^NV~`AzVvRaۋH^^1$b4Ȃ} v>;f>Ĩ_Pe5l)l1;d3vKPCx0 u1]\/#p3.NYv%ru&pӦĉQ?0U3!z+[ 67^C.*ה	ćTs
[!m/qR)C	ɇh;	0-_BYU*UQO傳7'@a&)etY!E";t;33/H͠#DcLr!0ڋN2}X\3ݓEq@(Ym՛pxjG_U:ځ&^H-EzmFP lӻQ$8
In>ʠ\DYpR)䙓USmp\rdѐ'Zvѝ2M>Z.LԚh؏z(7 <R6/zBf[k>?_^EU|W'ZPNT8ͣcYN$/VӐӷ-s*G]u/\]JNTք]41О4,X/GBq#}y_@sc{d	oDe̡zt˅$yՇ|sH?|]B?Bvm<*h9ȥnxٷldQjG>'}7,I?秂UYJ~Ղ_;W"qisҥ'EPh\Og ),ܰ<&vqpG_lI;=Vter幼Yy.p$CD+Ѫ3C*̫A{-k8q5QobkxUZ,B|(-ÂՌ1DuTiUA
N|R%E&$v-g\=<as/pn'Vx*Xky{Qg2
J1dc>i>l;|BiAR.oRa90+;=)ʉ{$+QߤNl* NoQqAyp|SK wxXjgֆ#]
>Jy^BLyn{s1ӸpL?M)Xmp]vl´%w 0X/=fZHH1*jqR}u!R+Y/TGn	 (^]<!9\AUόH/9콃I^Т\jɩv5Yt.lb-+cggwwEنT;`\).R)W}:4Y) Ϟ;' mLaЃe$#2]>]_Ԁz/̚Qs
mI; ԕρ*$VFlVWG c6uBc*xtlEϭa䜜V6dav;\vA܆?pe N{[m.OIL-2Y@ur,f!e^@Fm{@D&Sܮ#FߤbS+	30  EX)6&xM.X9sQ򛽶Oe3wnW^6jyky77ܭ2y䩌2 	bmx;:V
!
i
I)z\
Z P`d0Q\u);HXu5Pk)C)hCB\#B]]\u*KR)p
vAVV	V#ޥ(<3/=>$Ɋry-[Z1Nx!ĭPT1tr֖+uA}PZ=l	t1!݌f ;mUx;:4RHYL7f|!K`su.F89.t{\(.XdzA	#tFk&{qoiatbS>1t팛 \KY0 .qx5tR
@b(h)8&f+(gd(dTd3S "="<\luxj&mh^,} .Wx5mtR
@XR[PTP_PYQYW<Y^J#2OVXVa6RK1n/  P'x[m2-IeٖŸ  _&xZy|TEHwҝBHHnX%I`P,aB@ $7INw !r:B A7`@QtqXUva|uԩ:NSK^g{]lUD6AT;:lCcb~90#9fX
>kwaށ2p":?a!F''nTpeNINPoqW
JGv~)%s̘Y2(좼sb'- udǖ#ȇal\DJ!Ss:00˘f0YRbaӋ\kO,6
$SYӉVK`/R,ypҙ@z͇h,#dbrj$'eGcfӝ0-8yKDem TyI,|pratcJBjwR`
zbkxeÜ"eVI0mnR3b\Yzy&/Y**tI<sU) 7߶	9ܠ2%E9orF(g(}niND8of*dr9ypF߅}
RzRK
=((Q2o󪺺"ړ;cz2;r|6[Glƈ/uPui\
=5>}i- \)r1mN*V[a~N9^u)F 	)wpSzӕA!,R"j/؁xy/xo2+EggXl}p8h;
fex o˛7H.-Lg2YP)| K;]ˍ^u/؀K˓lZm+owYGHHm1%*xMEwP.T6$oplw^&W)ۺTa֊=:+VUKN<_PNZ$PvJV+xF/0zgrDG#48/VޏJfb:%v]
8Hr򣭰),O\
	9b8םB{jx)4'\43c0<#f9dtc"uݥ-o <P[֝%VAGUr-o\Bw7^,
lsΘjak)ĩ BB9.^cpZ!67ޥ|+>
5Q%DWP"*	})]GX |}\%</WB뢛EW13;;Tkоc\zdXVX|\WUPwuPͦ{B7lWݠ{PZ]MGEf||nMS7XZؕ봈뛻!>ZAG|5.ddT>6@,P7{_mۭFpS.G[h";2*l^9%
wn1R]%.zjHo[h"	vI0j_clM[Jt,!ckNoԀơ}y(7ȥdekw[k5OwcI="?WGkh~ria[MW*+?B8b[#O	L{wӿÝ9nyz,4(OocgjPѣΟ8#J|5xp	eaS͔a6[l5!^aC	8kTTggYa[>xBKl˻-{an^p
@Y%ozF[BM\Iv/b?:;-/[+ַ^5W:h2R^e\ZN}%ON8V]䭁Chf^\KW-eݾ^r0i92CV9WV,I41k99R(ۭVĨ߼;(Tl)»z.	"@$98WͶD+{]OcYZ-%;t뤊F3h+8_!3mԫ*-9A6:$ճZP^"zϤƲH8d^ܫ_=O:'t¡EݩO
wQؕj=j[kMs{՘"{ڗ(d\]c4]Nmwca 2ރ)i \0؟hRvNeY Ǥ@ZZ8]tQ4k#c	rZ#k6V	nBIL">y\YGJI$GfmWNnL.&V-@?C>[2<I[G3jr>~JoIKJRsw(+%r`Igl\XݞS}1,sfa
eKǰKITNI!p2&$Y3|TC:\aܽAiy=<cvDSpA'g݊0vK8@񃏞~)jB9ۣ?9VA	9:tx9#~
8꓆n~+>,R#0zry̱@}%	'-O+]eNб8?>?͡RĐ3Y)!<r5qakhIZEG'̯%K@`i3ξ}2'xtzMbT<YhA]Ј.c r#ӯs_Ӿr+*_xɫʉ)>/S+>ҩ8{B\\05#hV_Tm_
2uS⽥?XQƏ9Ws}R]+rH{h783բO~a4^Qx:9xſBA>i fZG,ԤH/HwR`]h@>kC;ћŜFUVp.Jew؟s}qO2u\Qgtu%+h?.amǗoV\=$Eq~TW84EJ{Ay&2H@LMzH]#.`0]H7pb4KN,	'ްDb,&ǣG ቚ\	&i4VCRl@PrL>𻁜Ir%I`zd:m!0s]X$ 5i$<LQLè}^ϰ675		Rt0쑵q?qH(lfx\瘕-e5/My#1}xV#C6[8∽ɺ(6FF(|`:
y-V&A_ni1`?u_lDt#_e*c|GP[TLhqo,-2&@fu co[Bl sxH*VH@ت}K!T*UPpe(rAP'fȅgz8K@:L2|(#OB"AFcCFl|^#Ұrȼp$Wlf(<=F*/ỡJ<DfG.q0y2|C"4eAЌ9N櫴Θqu2X-[z~$)ܒ:Ky^ 0{oXa2_wR~"<{?d[3!	ɎI0ϓ`b,(x  % |i0T줃@<6QN3n??\FfDE@?q9Pduh_9xP+F˙AIdlBJSjWsg)d_ _l8GΣѭi
xRꕌ.?<*4D;t9PD#iB64xHf/]_EP+;)0!s+ӣI!mIh)Vm'tRXit4PDxwïv^PD+_(A"܋s_ˏgw>9FCI@']+S,RI\pNb*;=
bwda^kMtg*_p{Zo t]DN%	3/L|ҋ DTX
QvɹfC"	mI.Zqe^?AD6A:)0Ė	fĚuٹgԌVÍn=a2=W=$G+k`ܟEټ2=12)mloIIYOC!O?HDNdpB=~ͫػYvDzfSg@d\,Y5<'{'?mZx{8/XsJSRKRRR&۳M`mV΄ %2J22Jlz{gs]P3{ x[>4RL
}I4Aq{ $
&x54-ǻM3jMŘ {	#x5tR
@b(h)8&f+(gd(dTd3S "="<\luxj&mh^,} .^xTOlUϰU(V[h|QY4ѐn[eaڷ3ovGΛ$N3LxSNMxB^̰e}޳~Ln8eon+oͭ@</]wjϭ5dyt+i_z8:^¢U]{Ц#
(.D<zYM]m/dɢ.5ΙjtѫO \jїe\I:6"m ,=*q
(B-`Eg0ѴFXL%LAUɃ1n>{љM<c?϶o|p%z58.aAU,B	R%>	qj!q)6C+%)5$~e1r%X#TJq-=V@30ʌ0 `2>79oҡki'cI-O:=5Τ3lNs˂\GfP2u}}ï93eY}$K軟Q_0M2rޫslB4
whsF wNPŨ;ZEHn}׻4L72a88(XI4KgV.f|9h7J0E'_M#*TPQj04dvBRuR|#|J˄nR3r3	$i	#H⛍5bNb&.>=}8L2CvKχY<+&+g39	.nh`eDIzrl }[G/7K
靟?+6,84?D9x{놈6hX _I
)TxS[KQf:B2:!%T-,""930ggo/= ((Ct~Bc=gz˷/KĄI;`\m:yx[j4qFc}Yf{-Z~ۇz{*K̦i2f&)0lN BV&5'a^4cMB|'U|*j;^\=הd__MEt"h ԫ)>#A&N+SO@upp%6|PLf¦:Е4q+RpeQCZp(S=A݄|WGSvVOqm8ט(rĜ;W4U">i<&.\dFi"ִ+fmZCjB,>j;r]&nEM+!3BE42vѺG\5S>**0ߖ0J2`Ʀ^u`su݀A@T9X19)sdKS2*<=:\I@	E'RSG&HŕO[+3e-rS N'8HX
6*FPkȥ4e2Hiu58oe7=Zv~Zy:EF-rӻ'ϓ\CA#*Ԛ |<7ߤD$<Ş<Gs**܃<#8'oE.ޤ
Nz,;!!<q̡ۼv7<ص;xƺ7:v}--^.ɏy3K22RRJ&8LWê Vg7qdZ/N-j̼Ɋ2z@鎎"ʘ#*v(KNU04rR3" .nQKO-.K	2c'7+lN[ <fx:+I&l^ǲ}ct X
Dnx}RkAfEl(?z"ZB[vvwҌlwfACƫZXt/x/OBo{S/o6I}ֻV}˅sL9!]aP?+?,xd\0,C4RX3S"=f|1T"FLԀ׼ȆEgZI%tQL==58V{*ƽ:P>Ue|sqϟXy#R@68ʅf,Tpǀ`Gzuzʶ<"~gX09ę=[X& aTD:,:*mOT+k^7Y4_ɛ!2/͞H&d2~9{:qKC!Q+X(gE'dTsZ4@*m<^Fuf6Y44jGnȔe" ~M][F*:qK6!QKcOu{xKJ+2|Hn4Z['WOpw|%l;,&|?ɄBJ,/{܅bn|)v߷SfHL7EQZ$"pxwD&bXHx[/u4O~[:NKAk:gT u<
%%
:
zOԈ0Ng6`Q}O uxuKK'n~Uɘ;9fC
2BD&E&Olu4"d39:!iͦE1l?*(2v
<& g)gxuGK3J
K26,e- *xd&'Bd2rK2&3.VK,.IKNUHKW(H+WHLIQ ԊbҢLLf#R5t5Rs55QLi	NǨ3X
x<k'n
u
.E@AZ:\
@_៖VZ$Z$19s3G'cC'o=fW0tzL&#4Fͻ22mp
#DjrͼG!͍͚a( +&/Wnr\3/+5~/d(~'L|sFc £3Qxk&8:yW5yc2yq0mu1oW!Ro=b'nn>o8JR+J+&/Wnr\3/+5~/d(~'L|sFc B<Tax9y?+_<186:`Ș+W7p77^7k
%%
IN^+79.|}jt?FɌ]J G8o%gx]Q+Cqs6[)M\Y\)|M.D\S&7®iMnX>fcqw=ORJv](ڭ	}6zXZlaǒՎb3Sbh޻Z"3x/C24zܡ`X!GT]U6r2ͥĉ?pc]s'&%60n'Ttn%`õB~	T-v	/<|5(|aכV
_:9p>m@'ZY,deS(3BInv@&<gPLdlcr݊aeO/;qXYYA]aIz*ҽlHnڷK!Y4}cD !xu',ٙ%
EEF.\
Z
9IEE
@:/$,5>(<3/]8G'\-X[06  :{xs[;ӆ,OQa~B'sQ̩?9`P}I"뼹|'yi  KHx}TKTA&VGZ9lUwIK4e)1*|{fCe!Il!0}H^}!^!zL!":3CM힙s;|s|}m{ء~՞*Qӹ5t-=al7WWD14ÄE	U0j4ׂ{-rx&K\xC18]]p+"6tN:1jhW a9xHQdS2Oj=\	~;aK$uj1Mաu&Pr9E8t9xμ(TrfdDӨxl2+Hu%jȀ-T{}	[l{	Bå0Hq^ɉEu;,_xIW4J)Ѹ)v_ItzM#5^EՔU+xh^c-xl zK~pv$V*>*	uH@O̭H%hܰr$儙=n@mK.Y007uHtm"סsm: g͞C&pXYEZXsRn&xMmLeNcxa&܈f2T7˖I"rFܸ4CPѱ$AbdjJbLcHEUa7"_RXo\cTH'TE3O:A5A#f:~H.Qd@AϞt*FsiZx  Г:	10>о	x |! !T& @K&H~	longest 2^P.PUleng_|j Aɓ*_:B	10>C
 indents[]{<64t xi1}8sSKr2&/PH;%'5/}|pK 8xʴq$O>d  UVxXs/@6lHFnlcV1M$5`,v#%Me4#fF-Jֻ*RCr!6)UC*T\sQh$p0~{'LμME2%ECت/I36-۬mK4TbQ$نeӊJ/eLsKUòȤj]PYV3ӺJ!.VwNŚu (*Ukpfw<^!(V-ZhAa6uv7T|R!j{6r2Ef*ٴڊ$JU䚆Y|U8EZ5 CslܼrmSz:*ΨچocKix@bL!ıGh4jz̚U+C}kio#;`iqrdS>L%ţ}	>~.ejߦh$8I2o>ߤ0|+:klR#|/]-yT4v(sJ;5OȇX"F^2K[0=D>ʑ[er߽qp~2ǆ}jg1I%[&UlЛ:nBc<j%>/<}c_xS1-$9juőG?ˏ*QpTZ|Ô-@~J>br7;uf5S V(E$#g+GZ&-xs_f:+Q@pb={8yD7%t.y$ѐoTS8Ћ4a4^k6O˂t"JΨm.lS.R&N<=V,r2>{K۵1)aA*m_}f0:%jj޳/R%xy2C(p]wtY@2s}'G:,_?*ɶ=B9$]_睺^w3Vբc93x="-iӨ˹
%to^0 y5hijR-0gKGsZ6OB4(<EqwS~Ua̄+ܷa]2O/FUM7L1R>Mν e
>#iDo!_p'`d)|ug6r8r{Q~Xy[.]Ԓ.c)9_7CU=]S+*K7x:hͺt-fHY{,(J"j+fv7x(X5PQMhOR7BD}rI4˭d0$ZNB)h2q*:#)+'"mCҾVO	tr'c =>Xp^`Mǥ|'QX?Xzgz?.UX皿O_Q5qp/C@^wыǃ͍Vc{6ϣhAz(lW(Q["V~MQ!0z7)UǡBy}o 3̹xfagnM'+3íoW@R}*f'vjLZnG'a;	5=ߞge|/ƚzn?;QQجpA
![820QsoR"CxC<_v>9G"C
F-?SPfDX"hNy|~h8R` Άa18e8sAx)I4
<DVbZfm,Zf&*ȋ]'#
1=)WCkDov \FHo`6X[dr%᭕}МK0n3zl.{ZO'Yfx[=nbޚ	ޅOXG=/5 3nխ#JtjV/C2b1
r$ WK,VrnbxGYlqwd@t1xRN0iTBL:ԢLQ
H
3%qCjWS_/@#NZe*l{w~}5ڭvG=+ӛQ?̖  +pQ; ACen$Ip2h]>naJ]]gj9\ =Uk?nT}δkN!2QP|@em)kS凤I;J(;Ǉ1H_؂Z
]̡6ʨ7>Bnv?D-=`L9j6?~dt]B&|Oƚ?Vk2ί]z;Ihn#='.\ &I8,I5IMRSEl!.x[oC?_HsyLrb'&dMlsF}a<EvCX&'hsM64 a LSRw)J,Kw.JM,IE37))@]'OΏTcr$,';  FM7(Kx}QJQF%q4#4"BGu\ڽw0muZKoкm h;4*D?S,px~q><Qp|őmG#Pv]hQ&JP(R	P M5AqPRs` 0UM
h98^"N3,`\9ð91%bL𨴂ǥ47O$kѺ9qHN5{0'HMU@L&Gt󕨰ĺm.\Ÿ"Bu*tG4~ڴ<mK4d2AY|%'t$>^IxqƌKn\㭞\/2b3L@xX[Sr706x-,e$%U$<$ABf` !/yC?}C֮<jTm9UIH/sWKB]e{O>}Օ׿74
ꆦ {	LK'k~tkulVSի[_o'gi(92@q._5@Sug^ev$H^$ v/A'4??X$ЌNФ ,d4818a |ɮ1<Y԰,3:çPQ;S#_pl%mǪ~P)x^DYC8yf-j(&MΪο͆w[eU-2UǚTn8 0uԭ. jDQgb;4;⾊wKsk@4;1cڕj;nEQO5fV
wc%iO*K2/MŹf+,ea'IBOnv1ێ/evegVeIj||6j;4Y$eP,(
\Ob%+inاq[U\:-
;N)U3Ns"B}Â=mv'oe:	r]IɢR$d* B1=B[2?Vvz%9pHҕ$ɋNJH!(N`Sht{̎a5]M|1]¤Py1.X+b8$_/@GY1x$!'&L]h;UQ<+($GrTU¿w|N3.W#TEtU!pXr;)YߥI	Zdo%=̊NU*m(.-\FȳN"Z,Y@\!)P&̀r.-e{K ?;)gD7+l?nvN|\t!{lO;wǟF`ajhw·	oelw-z,<L,[A5mEIVP>qb ^o04PZUb2#g	+^&W3LΔX MgbTTPSc}\ӒMz[28]N)e!7 Z_F҇3{ K
o{y
.>f닡0bWqx9?O PNEE;3/+ҎmHq[Y\DuB	*¡NP
(Ԅ+k9˵00<il'ON^C{LI2bc,EA@:3n;f/Q˄u%k{Q<x#~)ѷ4)<ddv𽈏"PҪZc!3v
+|,hzh$h]To8X|H9mܨwo{Lo,;aWm
_:2`.rp5߅Ogw:UtziE[ʈ5e|kcPW\idxB-PM/%Xß˟\1aώg83XLw`et8/7͡1zY5tE6OWa`h)"D!ʸArB?AG!l8	ˋiG)=v@<.[-f7r3hr)DЕ2c`ݼ_;]ηjQ@0euF'F&[Qr:']l~{JϮy#V@&׬_C^^y(817s%e\rP%n\E(|_F}C 64J>lc(Ig˰;̢ZuB)V	f7x:Z8t!{u*:xD8a<yq׹#`l2b<bH.Ưf0vxXc;{8|}wc|7M!zscw76FF}{љZhq|apj "_N.xFHeЏy*KM9q=wO?n砏|h؇p}0uz&KxUKOA! 
,> $Fc&2ݓ=yI /'zx?OvODwuc<moM=﫪Owx/
C0sO3(,$Q<rJ7@Ӧ_>٠3uw~^Ź=DĀ(֮:x*#i^{[*><t00a·ޡj5
+7֗\ugJJ4~ܻDoڰ	6I~P* _9[2.IZ-(>dq_hה;q8/Q)bmS؏i²̧H
*e<ԇ]^',7W{P:{6;_t-6\깠_5j)FwL[,!V4)
i'B!Asư7A$yU-@q ck(tqt-Z)z]ip4K>ɬy?[ZfT6SXaNU?tNTΌS~uڧ'\^ڝk8؃-D-mKkY;ЉwlXJVMtm-Ys$[[-q&\;&sX3Y?T&]%*^diZdh݃;$~ 5DQRS.Jk~>"45?1YU/d~f<M ~(]^NGp|i;PlNfYٶU2!#nZY-w05SؚlhvV2bGcuF}?nϺmY>Φ`<}XLUΙWkG`HFj!ErDښmaFީʺvYGBﾟI-x\`!qvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Ο,ِe3 ,llxƷ@dk*.ŉI9
%
iy%
99%y
i99Iٓv0M~)QTWU1y"dv6ɪL.,.IN9 j<6Ab0 F x[ V|39'/`1rT(,P(H,JMQ(-NLOUHJ-)OMRRIw)J,K,O/J,Ȩt.JM,IO1Y5nr䉬:l`&e  '{x[ Pdovj̼lY%k7r2M|3 a.x[+~SrC-k9E
iy%
ɉœvL.tkL*5فer- Hx)yWrC[~^sbrFj䉬RY&1  
+x+yYj,qvfcQ{QbAFfr/CNfRQbQK,,KO)J,K+Ο\<U~B $0x{+8Q|^ɪl%N'KsH¸2LĀ\x̼
V]̒<ǼǴ̼̒J$;^.ɜZ8('e&)8g%*m32¢v, %Og AIExH,lXz.2 MXS^xTo@i(AB
(
`υZP;''9eY *.,H//0psb'=㍟?6/|ʕOzǿ./.ﶈE r!bZ@5ց:beڮ#H>n` 21 `~h2x)v0e$ţX} FCnou[>Gco&	Ԑ@vNĔ'bLt[S=J~_=Y&#{keogTEXWeE>l ; ?^֫lr@QQmL/bDlEL*9̅^`Ch8V33 'G0y!0>2ER	t\Me^j~{iƵLVb	anvbf2.'K5rQdW}3ߴ{Qg4貶]juyBMl-6\n[E[it5nO M{n&r hKJFM!RJI9P# ׹ ŮW0xRn1VC	EBm])ѲcGIj6f_'44",~`{h2mh{}=~^lJ4QOOg&8:i@	j6PWI4E	g;a~%hl&6>qj#kC}[xD/J .r+f:;3`ffeiI6}tvN+2M")ꞣӰ3
lpB)r"2TٺHCdiv8/*Lp,r}5n7oG΃τݴiH$]c~4=H(RɐS$y;GSGDp)db2zJrȬ\t(eO"J88_u4V e/1UYu@-޹
zpjE6O#NYЈ](KB*JT6>etͽ{!K-d)';'[txUOAH	4[ M"PLDQkBO8쾶lw^441^x11W/zŋ7lB6?3o	sx7W5|P߆ST.rih)rki-zl?"OԻ!9 $giuoxj.HAd	KRa/	+߉pMR_ⓣ!@&%)rB9-zϨjlrlzW4)xJ<=1cgeޣb;DI$32t\@D6y4$VL7\(O}Bi!Ɖʕ\Aa>
4F_(r<oi,m	G܊ mSTv.Rpi&c
J8g|C˄	mD1ƥ|M&؁d91;n2jZV=P,CKgPȽS
pAAqρnb}[DwθUֈ&,צ#gi`vUM.qM}XVף8y{{\O̐f{7jgKT6Y.hWFlɽU=l[ѝ1f;?"f6v(×|yT֮WYߔ|rYɮs<yF ÌZ^2yQה/j1V۪&:UkJ,Kt|j;2_o;r
aT2j^; /:T&nLpOW# 5&xVMoEI] AȸNT$@UȇK]9V=Yݱw3`WNp? ppg.3/ۡ_vwxyw_LLWwN>7&\Ͽ&yXxwnڻ)e&|o
?bm.$+^o9:!!LkإC D9"\b2WP=֬<[D%DuQ 0q (v0A؄Փ<h["fBrsu)GA.7:)D~5Ŗ9fj|"nKb_8ڔlgāիcH w5ކO,ڦ$$ttݐdXHѤcӎ8\ R#=Nbs* "/Kl|}啽4
ay.k]ȡZ=hZ(f3 «dnER!UQHxzS[FWPR<*/,>DHmC=tD<Ct)yJm֥;)Ocp07;+>^kAHшHf/xcSc6 T2t6E:L:ⴟTMcТr)<#r=z*28E=0%O9!.h¼@CDwq VO,B$PdTQ'H*]LSo]SeUWx=ώ+b+uct!1P=F̓kL7ӒMd]LIwO_+m-.M)Z\d0(%L$uR*tAK~jQ5Oa~˥y# C]6>	YRC",zmڼ]8lnm엇4'p	EGk&EˉPeCLlUMF;#Q6mT<B3a.h`A],`_u(`ym
UY103_Yxw]oaI<3Fziiq!kFܢcR<FrI#%n>Юވn\13ʉ؏<"e>t<wÌSJ?r'3LN\A:h-.]
PEX{O'em_'!栺"S]ghrl4#5S;4v]}=s#9j]{](N+C:IxP^)\?#ɰTԖVRGP5#)pdaoV[xVKoE:O"dcG<RXeyGc;d`ۊ(b;ӻ;0=zAh9Ј-rኔ\#~WTuϬǻIanuwU}_}UT~sn齥Pq߄R@C*`A&< _
#+N@~a~>dtcpK܀?2?CPuG6זˋՕWp)a)`udmVԵ06"ĸz@6bk0-f`*:kǉ<]` +	`,6WRc k7j֖k[Ru#  ̺_+ե<`"6a+Tꉁ  Cɿiqˣ
bLLOqѪ+770,foy I%ǅ?^z&[*2Vӯ^yntq~d3XIO>4&fôwvb"=yt[AI+,@@U$V@#@T֬>,]ǔLDaU@SW獌KhLxqQa5҇_Kcd{`q̑#:J}ww=AwTt!C76D<hDymZ{edvЂ2,uLҟ,|q)q[6EѺ$z	A\)r06LOnęlX<X@0Unȳ
d}-flar*pU"MTg_6g:Q%MŹlPLEnwBtm	:46j*u/صp3ҿ*F1`sHe._\ i $|0G	Tԥ{%|3)Ư*>J+İ!qwµ%(nb(<!h3,tct#\S..0핳] .:ZeGɰv/Z^ ':$(~z{D# ۵N1	Ϙ}T``-MF5+lsU׮Gbl`XHK(-REc|,BO>y~ (^k D~(vk.V{D\"&^71Lx=^8°|&ۯfuz'd61
a_|.e4H;xl_zmMX"f_c\M_KV+>>wYg5baF5P	XqDg"gZA3G\a?xj?(T77.>>QF?~8<lnc^пlx;f]ə\e$&~7˲NޠZ▙RYD (*;xUAlEՒmBcI8ڵ
uB*Hf;mvWĖ@U%$@*j៸F|	 q(gčB8!1c'6i?~폕;Q>7W2ukY%dc,Nndm:ёk!8.5K-ULl5GWn]-fkbPX^_Jɣ"ݠ&AGgbHLת0DdZ.7یҖ_-.1O͝b8j,`eR٘]ONELj%rˤib][H/{70w#>x=Laaq~zgy@=3Nx<"ۢ+*NzTmP}>2xwsp+K~eηl31}`[WZn\iOܨ`G1lD2uɿ6A(ޕ4wcs5<5g_e߼tz܌B: £R2ZX&u)6x$L0ip&/R|Mz<GHN&|@M5PkEW&CC =l/P@A"eVa Am	2tă -{4:W7U<Ӈ)w@ax:4!97C~908喂47 ajvLۊP>6?g#TEǤyf*T+%עyECc&Zង26z!Tr۝7j|zc^U^fYL;8iNiԺOѯAȑ֫kǔ^,,xl1l:%]\CZ;xQSc;DʐYӲ8ι{<|ʉ1#rne۶Q+\|s\-	ż>v4ju=B%jo6iED<k
m[f6R+A
>M0FzY}a8q~u	yhщA\c\rEueglciͦYmmWknԫJX*Ea6fNV>w?
U²D]G8B/`"Xx;OvC?SPhG/rJjZf^sOkKc{<XLIE3CY:YY,WVq0KK#ޥ(<3/="7
&d(KPRʚe=df1PZt2/B;%'[rBy;9dZ'Pãud.oF\0v?dnnQz`BIBZfNBf7<Xœ
湧8i$`ī9AҀ8QlBHFDd]RBiqjBRB	P(:R:
y%F%'OW  =txRKSQf9uNצi;馱 $Vi̊X%̝mgvϼ;knEPi/a()u{Bn6};>s䃲ųuzho3Xqf&ƾ>CP !xlf̟
Fp\eȊ2I2Ci"F|5ZE
T{"1BJ+<rXjPԟ!;o󆦗Yrߔ_wCK2x\Ν\0%0kz@|39C8w/hwGq܆EOyMй
NKW!d)߶~S_DKX|}9ժLic6M$\%!FD#@\@ֳ Z-r*$
pr>Kڦz>DWT37j~yerx/ZyNvp6UmI5h.yX	uúhĽ4%IDb$N" Z@	}ʨJ.W
Q9пlm54Wg:kz
Xt܏0\YlzvƐOiFG*֏(f[=Aj1oxUKlUU؎8cnc'*yUk+j8=ԞfiB`AA((%uPB*ｙgQw9{'^ޒ,i%ސG!x>>_i"'L"+TEs4_]ZXQҬ,@yrn]E
U!b"Ⱥ±35K*xMt-$/k\RSC֬egsɅR2itc6fIVbHe-;4GsOeBn1u-C3s=n;3ڲç;%"j8EE1ћl~x:ydCOt|働;'_3?r\|Y(!%R)"7.P$.#ńBb.Fʥ,4mG)(FTDs7!An>z6!/3{-]igDy+hW'#B
nrU>TPh@8WW^}raC]+^w°!J٠S9#eA].q>vbn(b{2i"色!\UJ9~q:FؘWΏ_:ѯE/ r6]-o,困7
_薌x[D<65
SA8S V-&uvi@":Vpͺ2,602~{i[avsj5,izm^bwYVj>xg2nl?W%Xqs`kw`!UR%ZX,f^J{$mDBb*bn
6n
ww<#L$n>W^6Jgh|klGQ(EգCwEb`k"!e?axpN%^f x$z }g !亖un?L%xUMlEV$'B@\NAUVpq^jZnLzB ¡pLopS3
Hp@23b{{o{=sws	j	6%x2`2i '
#˗1Ϛ9EpmJS~n
W]c~y 'PAR*U r yd|̈́p-2R44'jAQn ]A*ЍF/z1M&J(z5ic5S
&BnZ7dZ^Jfג:z&#czwxRnFJLhעx(6]zن[/OÍ2<|"EWA~{o%x{Lh=op%9\Z预%	I.jOsW65vXi'61i'Ղ݆9g=?%ߞ:J7C8"ZF;?Lp*:<e*o>g:#ȋ ܺJ޴pF{8泆~N	Y/{\S9nbasJCj=,!Dq]W*.FQ~џ&Sg0Xy@NuʵEbӡ\v& ˳}%\xm1n{mH3u	i>E"\ziVGXY~sK+j}$C*ktW;ֵ@^c먊kI(;{>^o<7yG+.x7L_qvuW!rX'Ee*+EñpkZݥtG8;|X̸NRV$%P S([.+|4xwo9εqskJt.%+ֻ0ql(O]4<ҝ\{S[Jbyx]GBz`w!wcBѺ[$}_8	x\ONG \Jx6\הK'?Qa,,r /
$x{0\OrdgdLv|}3//F$aƇ& S7x{0L*IN5	j/ @&xZklue^CI&M=br$"!r.mcάgf%M2RUP:h;v
X@"!Q)E46jE&sD~Pw+Wjuko{ehRIa(LD#D,~|:NOgpZadÔ2¢BJS奜.
YS%#2> H7Ȧp{X5}LKKq!HwˣȥRa,eEВ(RQ&6?6LhdbHb*2	CyRpssѹDOD"1umee4l)"\,#.P^Q2>tt,1Gژ]euIH͈8=>179C	QQbtoy4oS`d%A[Q]ʉKh\6&WrE0q&C2~g?qA6d*#njYζ8k#ŌNGD}EN&u%AnHv{˷k,:r8|V]לuD1205ÊbӝUΎ4m6
IaY
-,L3*yugda0>6 B<W4.l?ŕ[;~`$/-BFfq'l2?~<g|D4]^UQݭ;]i*
2##ENdTVJނ$lUHEN\{n;0Ue^&ZhJ:>D?#VRQwds2RJ^.\'rhmtHiNVv+ieۘЗ_tQ)HQ9܉#˩O\QP,$p譀yD8A#;Cmˣ{B@z,r;a!oq`tk>(}^cZNe.bV\d$z<.,dj#qs$*Er2G18y&/Rkw"JbiBE;S-G2spپ[̎$[œ2V+$5LX4T֩KN	".(_'&SG&`QyB'4+9fhƧbibGn.KF!/crxUQT4:b30,|cOUO7)85` ::|
D#awC@4ML(%'C98p,KSeɨ6n]r|dfvEe1,/CG\,\(>1-T󍬘"P?&Dl64SaAӥѹq5NZ_])e{0dwV
!+.ROKuW=3.L'/H,<ӄ[CX0[ 7yabRF.ȗg<H{H*mDfB|"H,	/̆P`۪..#NąO	􀓩5-˹I b:GG6;ݩwsxܳlͿі:|ZV.Z!+h \0l@vx^r
&k$RGP7ݺ.o^ZTL!!-/8)_OKJIk|Y3oD
"A29ŔfSw1df+wФt]N0e3j=,"*$OC*&?n[|6Pm@x,4[xޥtV%@ƲSt'Ku-$fkysyf6NRK)|E9SMph~'y1ɿKqwjOlEvAO$>MǶr3唚ԆXzpx]g\:mbmwmP7հ:aھ)(ܹdk+PG*#@@H	ٶO~yud7֝  tJ1tsh!C^33-mӕxX0 }b t?(22Y'ϴ<3+0nX]Sao]$lZq	Y-I&y˱w:!qM}ai)	JV[pv~0{pݘ{M׷+ׇ>5܆^^K=&ɪSi,u_GvzZHIq2YQzg1®<wYfkyNmӔ&ؙYc['fܬe%ݴռ%vtP9]q
]=]Rh]#+\84#66d>pI> >U	YN=SF~ζK邱mcY^oXbSmD]=XİSҲ`!U5ὃ߁`5f4[}#]>Y	>8x{f^(\J|jU<[\CUKjQQByi#6w,˪iv""1E^S<Anu=kpIUS$r~-J.Q{ |뛕R/i]^hQ̜J預ik1%l.c黕uI}ybbKBVCɾZ9H/")0@ܻ]¥n-0&cὟ/{szJ6ڳf$Wϟ-JZā<^xk_+z3`vmwL5qmY6T϶VZ(||L%OP\m0WW+-x[VtԖ]J<k-Z#{VF5Y"i;K.nv碮enU~K+U~u^%qxze-ĂlEԠWlg_mn%#SoX.PTbY8 $Vecv䃩sQMaK겴(YR_a>2
tJUķȊ1잎"R$Is٭\?C@\SQI. |;ZNt]boT	* hS$x_+{N~'[8u/lm(SS4
Z18	]\rJN+p8j9@LQbgK"hMip= LQv[;!3?{`FO0x!-J*H?1L<BWx?+!U@JոsG-#<>;>r]^Ƒr]*lڽYGWwvygW|x|6mkˡŷ4K+lBߜ_18<~nj>j:3JcRK!4XB1驱4B5>ʶ@йaIbj8)h@t<3L92Xn)3^/6!6v/F0#jbAz-iki(4ֽy4J]ikq	_;N졚ёj Hj	'?]okOab;k;}mcu6(}3gA})˱30: ^kv]hvs۾b6TEtº;lsb1ƅQr?b_f=űc61}cKπ+v9 &]\n~~=
ڌvOߑwy	ǏT@n(?XŃ_u`QV2O9.j] r۹;TOWH{fQXP$u]<2ɦkyXuF!k8@9IS0g=Xˆϳ&8(䁏v^*c$ov90'=:x1<
87QbxLU"0v+[I]*ƅ@mXQ!^j$}{*,~f~C,F5)EĮf<w~bm}5oRWI8N}{ 3&xYx&O?WɌpN4Byg6?mV<3.n1Y-Թy |JfNH~Qeacd+,٦;1jOpTq}/oEV.>Y.\ mFu}\ԕ' =g+Ox?UPd7zǈlOjy'j`s+]xQzC'E!ћ^-N}0f F8&ox29ur}Bο5hl6xgޯ\68ŏٞO~m87'(%OOTgݾV.,ͦ˧2nxMu8EE23)X	Q0Ɍӿ3
nwId܃؉i;И$7C/<t t`Db\.Ø.ƕ }aex;u+K3J
K26,e- *xd&'Bd2rK2&3.VK,.IKNUHKW(H+WHLIQ ԊbҢLLf#R5t5Rs55QLi	NǨ3X
x<k'n
u
.E@AZ:\
@_៖VZ$Z$19s3G lWx]N0DJn,7H,,(HlDXrqh;QCfށwa+p˛x{oJe
JKҠ00"Cή>Wd(=[:ЃcJ;PhBF(DKHJdS~1	5]8jd:݈j]*.LTN`$_{%#CROENAWӏU#v7au~hwuLf	z*#AkUG{_{nHBx? O$NW#(PQC".+'^̓W!P0[#x<
	ϸ2RRJc'+:Km^, å=+xROSQ)`khis)4P!c޶O^n!u E@68/jML89x+Zb=ߏs{'˓ߖvdrKa|Y#j ެKu(ɬcN?+byyn͋Zl;1hWǦF4:/))ď $n.%@66QWkÃ{d2~gRU6Sr[siU8ncS_*jXeG$EMśMBP"YIgCSk[IFyVc:TW.1
X8MFsTβbђm
f֓&K<MfX>»d%fP3t>ODz
~[9)L2LSB
=mht5˺]xjxP5¶ϫKYUʶ.DnlMaQ\{V,)g>aIuFdI)-%&紨W+2& B-ȏk~jK#Y9B]}(|&]xʼ//SKKJKӋKRRB@FqIeNg
H$drɺoEX='Ӟk4KLN,I-V(H29^ldfY	i(dK(W&%RK2'3ʛ| 0"7dW+YړDpNH皼.+X3ę"%MA,14u|
@a ɆՒ}<WiHdŒNxdry
)@]
F#x
sKЂ$'5/$8M)J-)-B%8*jdM[V,LQHH,BQG>7},Iũ9yHL+AhNp0HtrI
0d"I<VL>s? xRKJR2Jɉ&&W|+Xf3LFs2͓'M6^1?Y'k\<Y@zrُ0?h2x[yg&Rfғ޳m.@~BZ~^BZjbIiQjDuu?(N1%-?o2$\1's|Tæfd&BVJ*gJN~xr2⒢̼tz&M59`6DB#9#H*\R4p<q!Mh 5΃XeᜓXE7~cf =mx|E2JtK36۟,t@tB4KOQx(xTLSgMBi)hKx)@J`02'S,tPJ۴0L%K0A&A>C6tc[tlgR_={92Ї)`i3c16af,V{-ٶ$֨["i莶whgJXƚ4mBAax6J&!na,|=#JH5/afkha -(36L8%w4`(\zoG n겑٤Tp|^043hSQ돆%67RHf-٠K-VϪ/m^M[~w#*+g"?ϣNV$E\#z0"I~;%b1:5"6sHH	a(>4)7x"_/ũ%|։Ÿ.L|,}_N6KR9B	A.1yb<(Lu$<~<a8Vr氙ʘ
TNۭ5׏gZ ]P.W_X%zK%Zx/<ո1#GCo0[V79=Al1(u~P_8EzP}ֽy?P+"bXS9_ҁOy#G=HZwQۛFzQ?;0x'[J4v! X<Ρ0J{뗹0wEǝ6KZZ7K#I$:]WKvH-Mgj-ъsu$8@O/%&>8:CnIG[_5
n/['[<R(|WN^I/Tj],$8qe޹6XC^;X;{>ޥ_HdNuUwDbh'}??ŉ8=#FϔLa_CۥHΩ|6^e
tڕp?O|-n</mۍq@$%]"fgvj9$yJ]sJi^	W~6z'0xY !N"!>&TD^K
Hx!y3)6pGi0y3);j957?D@ɓp8]$=hx{{E-,\
Z5'͌Fp^Hm-	ћΔsa˞ MXxy^kVo^:qC b	cg xjPƑ" J).g%ZB+.$Lrod)HA0-
n])($N&ff,sw|bi#Z>ZQyeZy$U Y(ݰa*"m'=yy0+`N@L,	)}YRy@aSA&B2I!3)kdǡ$Z4LѰ8b$֞]˂={ºdtR6VҲ}ٺjElڰj&qR,(<Q(CTP%gWf=EP(oNTMTy_a7x:XNrTF\s|Q!?8\}.;887Dq|oثJw;BO(Hd.!q#
H;塩/	tr:XqU/-=η6o	q;،GZ55xs<>4"񸌚?Cy#[Ov˟7?=.Ͽr׽wo}']
Gxq%ٚO)dN~ Z\RT<9`fWNBكKJ<'[2zNwR }--TԒb̼Ē<4TZfQqBrFbQbrIj>XdMq!3Pb䋬ⓢ'?8+:䟆lű  H>0xM 	#)&,jW)_/-ޔNMetricsqu&]T"\xu%ObWyfIBf^Jj,|S'VNIM+Q +-H(
e%E
iE&`,h{@Ş`cm'wO|q-䧹b(a ҖWR<1f%r!`הr)h)8)&夂f&'EC_P4K^ EQ&?fT 	xvZx  !!LineInfoF*$/x3 ʘ@e	P_Xb}_
,A9/0u_xAx. 	P_XbW22a,'<xA /me`.p//Åõo)Coun804OOx8 /!1.p/0/ n`I	ŵmoR2wFx;peyۙ<7m2 Nx;te۹}2RCr2s3K&4ȹyv.# -xg font%_c)K_0,`Y
_`,,@.	5*)floatajx_b+uxWmLSWNҏ-,Nf(S$_.)Znٽ)\?f:pYTp],h8mfF,[LvoA'-?{y}:F-6 2n	ֳ4vK6[r%{1hbFp3<bFA3؎}56nQ5ՀQ1h7(#=Z]\
b=.̅LYss	?!6؂mZeڔ~m6tnpJۯՆ$0M*'Nhqw\rP:V<mSd94֨c'd%fQ3v"g%4Π#<[qC8z}XN4
娑!'Ҳ.f3%09^U5"U`6nyˣ
qveΘ=\I1d'Y2kL|px!9	sK~lQKf5w|*A騞p΅4PW$nKЕG6Րgb`w"ieΈ0p5f^וVh5PVA*x!+Tʊ+,)\ܥ|QI@}U;F/[it	M TX$-:H93v *d}n y:5X꺷&#-vgi$E_$Z2[A$/8ΞX#`V_-bW&gF`_b2A9	v{B19'Z'Ss	eoi"ދyKJ0-?H
Ϛ*[RqyZvkor~*UV+E&|uR dO܂+m;c1a4ub)!vw7Hv/!casx\.r`vh`wt@$;Sx0Gõ6ELBַEI%(;xBu(n^O\6`:B܇7ȩ˝SÆ@k#^JqQrnp"-Ll&[K-䣷ޱ8Q(XF JwRvb$?#z~at%-Cڽ)٭D2Mqy8KuA}((3Ԅ#;k2Asʦ{$uЗ+h]00":)Own|x{yUdsSJ2KJ2KSs*2SRJ22Sn.< rOBxW 1.D޽gWhether the line metrics wasx0Mko.>%extyuvOwܫ;d4KZ~^dJ?casDjvsL:Ykd^VMJ\g p#a[xH ]vQ vector with6P7IRI=xs(@0fVx]_(dqӬA޹F<x0%mˋRf~2w+Ey>ז$у}PD<))Um6(:9;{:MH2!LJƩ{tXœ$^G\W#m#C~寕I-4­AS>-ºRj+`\a
Dʈ
4>
b6gQnx\ ~,Pst 41'L>%ISӲˁYN
RK_0Y	bFZPč`9(;,0+"~3:c;y3~NеW\N/>GnZz2Ig>y1}݌?y/ʮꝛgg2o}T6ۮG]x
\ғOH7KIofL	 ohxb;2E%
řUz\
Z P`d2PW}rdfŎ׵$%%d+$&&T*HKIv댧1*Oo6}#GY=XTXluVj 2rYx{tI-W&X\ZP>YO|+e eER22K*Ҋswb\9gl?d7]#v;L7dE5q6 /	zx|${Ɖ׸rSs**ϻƨ:}ƣ]gT~:-?n{*3;2Z3c4*#V2puGLL 2A	dx|}I-kMw5(1/=uk?2yٷddcyvỌKTQNNQac 'K]Q~	 f/Egcxp][gh6ݲtl+ 
xp%xo`a 
,x? ?A"?.<9oCo<Pg ||$)oOx{J}# X$r	xx<kouˤ^փO%ԣ-qM-))ťHU;wcάffIxcMQ4i"_$M,n(E
4/6@={絳eiP~{={tu޸ʕ&-taVtӏKQX.1ײV}+˰KU3^z;	cçM^6<䆣C~.>$FY|Hwejÿn޻̶-]fy]}QWaN]5+[6tm;5,a1}?wߧl/޹0tLwjSl*1}i%~U5ö{-:Fda~an0;4NNń\N-ѓם߶[♅19ל6BG_)xo}q?_/
.3|~'x6[zuj(kUu"t4%}ts~4QFn~偸BJMo܏spiw򟿸Wt7YFZ]2ڬ>	_vtdƍ*kMju;ACp[AONnWep&BW/l>$2<Uêg~3'_G#fr!?wkSꠡ/Z~Px{Mn͈AGLA!;	_Wu1G3j_yn:EbX.}҆WVAg"F}0+i33abhŪVh aTAN%Q^>/m-q)p0TB^cm#5Q?>Ie}$0sZ03;İZs>EUn{C@e,Em_~bqCY|
AHhc2b8fetbOߘPl9@0zbXV^h
?~HkV;u	L4K!!9 6`9U.9Xc;&@X؅:,|tx.5KipȘ^Bj}xC
7=H`^z6ua xY]ΝySFVkƙY}n{2ysyJ!=d7j,Ԛf[ZǏ eõE4]kQmߊo
v?	4'+@|G*2`WgULPPSvaxށwݽz |]m}ww4R7cҫ{Z1Y^w0C*:pp<¾	%ˆI@\=@<zQ9TW];1Yރzꀒ˧fz<;WgooO=}ld8MxChWK81JVZۭ@x2à&Pņ6,@)
n|/}mk(|^T̖GyǬ1Cڨٞ2
ֶ*~jdj2 Ƿ J)38w]hAڗ|/rP
ٟT6sEFy KMb4BgUG;o!W(%t^p20'AUҜu1>3qxsrͿqQcpa7+E/Or|e?ɁV$䪳 CmDT_3ijx:O	˷AB&!5,'wpylE$`}gwkZً&bJMnL0ˋgӁ7FƓ);RT(vlt)J`eLo5$ `<ȡ,٪X%'g4n
LUh-$P5}XS̟
uTƌxu%vf'b!Tk@@xdZsJL?mU ˟4қq]v3׾-$ʹv$(O$%LKyQ\(q,+Y>mN<פ
1#		BT(JmAU2Co݁!wn.wt E^6w?(B18[|ҳW٫SS-IG?y؁lGEHT|o"qEτ~bO:JhD4wV=J= uP0yPRClDğlfŒz
qAb	RaiIM"&ݳC:L}7OL/x[эP\54&3[0oD	 /8	'C VNaT͟:/t)`P}Vm3űz˨Ǡ 4ZY&vSBi;"?DqZT{c$fMN6`i`OA~}a~cb,Dc_	ug\igdWX<.0٘K)|Ja.-YW=,S&Odm3,`,!Р߉u>#twpoOxm[si<`»].Yj/qGr9АĔK^ pd-P,<c$6ݛq%*G3싼x9}Xw]8HaOn|T-o~Q˧Cn-mV}:̝ՖOںʥhaƴ\vݪ?m &UbzTA-	DǆP(Y|P8hQ-W&W~xOfXAgJłBS5ф4i9zV"{q?9?IlTJ$!(xLN{8_}󷀄KN_y$UmE6)i@&^rf%ef{pڦ%G1-Mj4k KRTޣhMEm)Um? (l"7ZǉAdo-[%K'a 2-۬6J,tը
2 (8XdT%]<z(xߵ1	?+JHzZ|"_[Hy}q(4~lG_D)ϱ+?㢶?vy!j}j(+(2[qt`$L/Y)Jxi gSlbHe[@hAl 1fBvDAweo=,[g{wibN[wDl%ʆE ?w)bڌhd@RS\5Izd,;.8Bj
Tq0刪Q)gY{%/U23)zSb|A}Ca|s4D3Gf$^msyxFgg#S߅6Fxp9ݼ43X6K6/YZsGsZԉR˧:`{3ɠml\:ʜ7)x8?k%^qI@0o^b%ί_Ϝʹ,l2䵼>t
MD*YӅZENrYmO/>2R6"A?OtLb!$2_pj2irFV-#~Ra %{$]hX9b"V/wώd`"vho
dk zACKsڧ0}NG/S[:-_qߏJ0FK@"N|i:V_9|	ҴF摷fk&=qIVz^w]\zI4MĖ\Ƽ-35
'&A.a_<vԄFuszhGU~ėu*z!0݀VFOhzm/qV::a{Ր}Qudh.	+fl\ |$/{c7X/u#$۠$!!%|d/ koU5Pj0Z)h'3|2E"M
/C*̝g+Mkр 	Nh4Wݖr"~umY!PTw;ՓtU؛G}a_-Z=BkU87}w{O~ Tpj8rYCF'WM`0X=!&:oǴQ%l젒Zo:KO=o!GB~rO\$&AKgd3o(!~*^bNn>^@?(e맴bŎ\XX#Z$wLèB2l-86(Ú;;^1JΊ/!m';3cNON-LWqL,F4D$@ؒ`[
(Baꑱٌ}2#z6͋L6ųBqzF0q^?#FҟH+'T3፪U2PDJT㫽Kh=B-,#dkX\Dk31,Uf3IL8NERጧP #LBJ&K_`S$<Ҙ3].#2lh,,xxT	$JS^M'IPwZr\$̩b)?BC=BBPԍy	Ns'Q.W.]:YoP+}ayb,.`QM%㋸kӋ,6c6!N׋ /$肐9.~nϺ94:;qpx=;]C|`G2`<1u$`v[bvͷG6k9QX-3wŵ|=B\ް=#Q܏jć~F.dH]~*Ke=Ӄp`9a~KXrDcċXo5iWHݖbu#TH4F1Y$+6'.vmOBi^{Zέ~loqJqk.ԟ!ˮ?wO&[9sAUl[tXf)e	&W!TLΏ?.ځ Fjgp#zny:ᗍZdӣʔ{4"b(}/JJeFAD[*>&d6
/f§>:hհ*[zw;+:βBt3)CO'PĜSsaW`伖G%\ZBSߋB%kCI5gU}#csݳ@W%UBfjeFIJc<~I+{Y&W?!y>5zi5##T-ͶSM
G)[1lU N[U#@Igjk>Z}f|o,.o]T
	ߨUvT/ yMX\X|4YaS§Fg1Ekvc~}cmoGN3{މʥ[:scf
S1B2 A#D.lPУyBv/|'P=T p{Bˎ4|ȖH}1ts!I5SFkwڗAHvF3tj58b
xB9pbǩaQŨ/1YrzlcO䑵}kc'WnGd <MGFݽM%L'䡁aD⣵аJZ	-J*rŮӃ0t3(?
NK@fȺ5^ّj*H[4]Dk69xy}C
ɽ+%tf~^BJ~iRNBA>D$rÉ|lY2}bF
U^0LohcU޾6U 11wxy}Cɼ5'Mo?e) 	xXmOH_hsZOJpB
P?Ek{v	Qٗ@(\+ 5J읙}yfgwi7	Oplz8)AЂS^
3%)Bb)}RqQaA5^ic,E3RhR ^Xi%bV`N8 _|hF<*zʷ-ickgu^,!'iqv,T
$SsIi'K`!KYBx !M$ҘBrIIq2IoQIoyF7(nQ7▍rN/GpQԏ|=Cw>G^&襌oȅ*LySʮl0s%%WF^E33vRSMhe)
01՟v#ִw1)<C݋HYNn4%!bfHjRVATg!epV0,fe
UGqSwow*3.ɮ0iHIRF	vد\CW~$Y5:O$K:))9]@/W<'r <~8Gp|B&4K|)Ӣh{BLv
3xVE^TaHWXf<Źc54C;HE!4d353rvJ-n8ѭ=( A߯D]SC	]~/&:seߺfE
q۠;l-5׉6>ͦO1X 3YB}bk]\}ӱCPSaN?xRd?i&ޥy!:Aftf2.2l^`rSVu2q|w)	ju@no|vU864P^Y?v:J:qU=$Sռ*r8Ks0[¸/e?U ~D?ѻ>@IU:..coHPߞym.p/DOOQBY{Ntgi1-x5{hRo0xv|6,8~ڋʝ{D6xs
ƽxۢAuCdAL"驛{7GD !
$,x۠AuCL'1me ^
Mx۠z]aMlna KzrxNaMfǢlĂb#͗[x `鱜xVmoF_A$ن-UV!~d/A8K}tݝxEx	nXwÇ)҃'˝⛭7[G'pQ9'HN&&uN*EpKп\
9Cxcb'+(4Pi$!9%XY9gl8JCÐkȜCIOsC`Ll)vXCؑj3[S=?wDsZV\QH%lMTsVT6
HKVp郖Brm_WfOsR	8p#xFAԷ WbZlCq3z:wvl$(ޕf@4U
F{2R%&<	&6 l-*AAVU購lA78j<cijFɪ2L%7N복B[wX[_Ku}b( ɢh(88zVB
97;gZrx-ϙɎGvlBfWvTǘTad2à1kHQ}vb'z4nNsVLHεTn1n-yF7Y??e^Q|;[.eI^?ira/g`l,*2I@!gO"?(iS_۳|춛-k:YmLz*r_m<~;}9^0/X)'UD!35t\iM}(>ܲikoNrɌm4w
weN8U񌖮ĎNu(a4hJXþ{w/НK?$דs%tUR5Y7VhXå??tX%Gh7B֢Sja8;=uHs'IbL;1Y .Hev`մ*iɍ|ZXɛ~U(
u3o4-8/`]̪e(m7i5b%dh7slGȊ%6lJ5?Dh["ԧ_	9g[,$1!mE;yj%y|-F{7	nx;(WxC"'ΓY3sS72e2nd
 -
,x+WxC"%L7+b Y?AMx+Ͽa-ۘ'O :gZx_ʿa-`vfcQ{QbAFfrϙ9
x\moF a~8P䗦-RQm%H$'W\IlH.]ZQݥDEڎ,r9;/}|;b"^$tءש3>׾a@.פp)cigqiw<Yss)b@ėl.#0|'澚DfWCDx"oՑQ8L_ML=X_vA)0=v\JS?댁30gpr>O|GbNKTTgW38`?A_}ou׽;.|{Z_/EqPL?	 TnL9<Dhd] ]4M)gSq͓b1OB_y%}(V:~#)1MDQѷtb|&$A/8_-ˇBu6XHW|~]4SKOT!/U2"^u/ďד4rPNP! +'ي8|Zõ<З8?α!_o	yº:˫v޵G7WHAH+rG<?RO+lt2ɱoEԜfȍTGhG?RW|Z8\|GկW QaBPs!_{gR2\51OshLEF3\_A0v~ѿNd׹v }~V^ Up۱+	ljMyb|JHY_2Ns9²Uֵ=vxE/Q!;2\`+DVr܏ Zx)^I0(f60@o2u|Iq	Ş̘ڸ+R˅S%.D}'Gr9<_N5z-!/ Ou2a<ᎂ	B2C<:q0@('rմ8b'E/=ϏIeN߬̔=xfbA`!0!F|:uӤY>?2詚SLvk䞜QMc.OX jY1p,,bH_f~PCi ~$e.̧eiQN
B7IEAb&ݫK0*y87=LAoFjwik״}KV].df~3W,Z=ŚR6/v_`wc1P!ۛT]Qɼ>95EehGm]zAìqWiӅC-5CIK7'+ m,`v	֝#x9P)`uR\^*\NȠaAXiIZKZJ/dfJ%H5:	3FAioOșr746WǏhRR]"B성uY"HfM("GLIoGy9R
׷۞*6ϊkD;Y3yIHBjЁs4-#zuf{v[ZcP7g^uRbY(>QL(~M [M0+*|.@22jUL7GKJ<0bT]\܀ZTV"Lf\Q;KM
;uUQ+xy-0pf%Uf؊m&Uk
~CimYY*f('gKQ
zAY]RHuGrt'K]&{չT?d{M#%Ubƨ׍4;/ܸQyv<;999_%auܡX~VX=5X@u71>r+A`hdbg%9Bp=J!
ݽB~`Q/!]6}׺\ZWWoWz~3m[X}b.Iѧ˃
6l]jnզ#Se= ~t:ˆUM(S`@D2j!W3lyYb3<,Tؖ/hV<{lЍH5TmnH}Ng*dwo*N&AIqi(?W80I%_WQR~N<@U&>y}-Xn RFj+F[ְJ}n
߾Ooh|eԿԻX~rfp?lt@_&6{de2iLy(|% rA!,W,vFvׅZjⴝ]Rb쓋FNtWxիh0lv&zv_BԨ<N`w{C >:onud:8FeaTZwϑL~Vխ(X,g|"t=-YTWrw	8vS"-g9-4U}~/v,V;³mX
=I|	J|8Rim	ڴYx(s]I;KNnoa0!q6jm8qikug!>l&C<升Nrs8Ƙ\,wc|g԰ۈ⿧ h-Ô2alBm:>
8ncg0mdNaM$t'mYCvU&OC)rn&釠;'"~MS$,@ &FWI(%+LSbhTE&e`{_,*4P| GbJDISNYk	J1>gtˣ|KE=h&/6 i%fژfiSd˗؟Vsɧqn	D1e3RnE,(opw&
+C^+k	T}(E/E-4s7'glNn=gC]M+uްxVhdvWE[ߪR/zb~4{ꕥ 3I0C`2qxXYe臑uQ|,]!D2ju6ZwrS#3jzusG+"7L` c<tyP#t97MxQ[qlU6{/C[*q6Re4LoM'tGcg9  {]oKso'מ[鹇kgΝw"Mq{9eq/4Gx۳qj]_:g&g+gd) 	ԊҢTԜĒ]2RS ũ'H^5,R<R21Mݴɍ) L`'dd<>'B4PV?)??GtC1Ng 3O!1'gCOYs.IK,,KK/OSH˟Z|r'NL/Bb^B=4ngu;:1]F 4y0Ax۳Y,HZM
0 Kj_xTAOAPR p1X(N&"Do	3l+_L<yݫYZ(-niv޼}}/c?}X}{<^ܧ"+1.4ƙ9cw\JEJh``Mdjy6ZڷGWy\(Owr8-B`?^iAx	i啡Ir᤯l/]:6*+s<L&1zT
%y[Lh
{XjHݣyў~cU)w_SfG*Z< w,Sn%#0& "OEdfHJM\4' %^ HҀ%rd[$x$'"RzE)Ys`1OLC(E+dm(Hh8{~+db%	D.OuT= [S'He'@fpjIa)0:),fWn^']<=SṀEڙ7Z';DYʽyҡbl]ekgcި*$ÿ9b_lA85M-/iE-'{~߄|}Vү{fwܘ/66<ݭV6öXnK]&=UyOVKW&VA/x۳qc,hYma T"7x۳^Ɇ,L4` Mvx%=YrU,OgOby?O.rFcv\L`Nd?۹l Cx%=S|(3d>Ɇ̷哷(MrD7751X$#U!-5/9U!X,1'3EG!(XTYӛĢ6y?dC<^.-4TP@=% njai&P 5D$IeFbYf^BqfzP<1/"]\PPZRZPRT
4<775%3$5RkdœObU)Sp6Ե9¥]i?y"ɬ,y=yjySR2 k;+ x)>[|(dnzwAfRv [x]J1ƯbKsn[P҃xGA`6IRP||gC{7}=FޮaePq4Be p'i
aiVwtJ%&F2A,wS!%\؄<.0'CR-`Gj6`p8ި:^$)PځE)SK+g0!Ya!#/~i6meYAj:(*Y	i"GFHLsTPZr:C啤kl|t9ْj	a$Z[>B%}_ ,p}7b)n0;?o`xWrdNƘw99c6OUd<A/PO4";n31LiyyiƬ@
y)&H &OiVz56 %lnxWrdC4< -0xxPszE'mo m9	x=P=JA5h э!j "AH[3d~֙7J#X<'/}m1nzO 4^9M)+ekӜiHX%΃TѢM&Vh*$h#BP/fdzVZu$:*zY,,AT.%r'5ɱ7BgEj;=CTB_|
qg;]ݵr!~<_\nMx[w+'ww7N~ { xŚ51$h#LsQjbI~BrbNBfnnjJ&P(rrͿmDWRGoBxPd~}ly=sx[rdC";ծ Q1x[_i3;X	)d*$($l~#͸9BU k@x/i36<lñ_A c2;jx}SjA(hD<AHa2fÒInE.35;3KuF
{>"xd͏tU_}}5_No7W!lCMTnӆd3nfxz ET)ʱl0ȠGBp&;Vd04IU[eWqr0V,:ߒ?%+KDНt−	-iPB,p"".4)'KS P(5[$ge![=ci&U-::<OgVҥhg4g *_4=:0rpI}aQfcmemD1ŬaBg7TXgMa.{0@G\zپ܈+= NA6ڲSd䱶848+ a,-x	`X	?QLJH*.8	UAJV>"A;,}c7gCt3bH(ﯞJlyx/ږ!Gy~d?U&pMzsQ aA=xeNJP VSԈ!C4%:iMɽW:܇p . IrW*mGɔ \p%C¶S"=t7$aM˒Mae+nadM5<9aYJ(ukZwj׽]Ox,`2F ׀
%mrsJ!$]v7'5c#xۖ%wu2\
y9
ũ)
iE
E
E%%y@YTҢT"^.ɎҦ99
y%
%e@
R&JKI-KW((ON-.2'_TΟ@)xw|NiiE61Iv
y)&?P<Yo^ɷ9n` $F	exۖ4pC/fw.uElm`2&nb,@zv8{'[
ovSf6hi˙XnBLFy[X-{'ؼAi+'\>	|Kk-S# 5="GxT=K@(X*ZwHQ@TJ(C^kƤ^.n:N ?$MDA}m|{!2Q3,kNYUM"Ȳqj3Fx}^:fKFoMbpz(}ߣ*_<NI*uZl!%Uc?;&t*Վ5.e+9+R%<\NGANl+Jcꇻ-p"yb"'*AԵWݞ $#
cF(:$iMtOPd7|=~FqF?an!|`!"{NxHːqb!,L#`IVp&GRpnB"=#=1eKyU&N3pYi=x{bg\,XmjXYٜ=IOadOFw8n0e+dd+{@g+g($*&ٕ
1y\
Z
p ]RK+Q(HSWKO-RKMMIMl(<Y_cdY"UKJM
l&VđY\Z49P p-q;%'o0 ʏNx{)lC/rI=p53N6Yw21}sXd./䝂!{$&
N^/2*.YZLKJb%֓k'/Ǯ˥59_|rPMd3wM,ƙ\YS}\RdW.gHC")xAJ@w]XQJ֝Q(U]i$Qĭ'Ao<PNMլ, ="C!ҡ|{Y=W	IH4/K"gֲlߠ	8Յ=$>lR[I릱Q/i̸0G5YΖgP_ʢ^ތ>H]r\:+eOP7~{{#~ J<tд>P` qs9j	%	ӂNp5k&-PP&:(|z7~ oFx;u(kMCƢ7_21M>dR l\	axfb	G^bIfYBf;s=7?cZRZ0}G#4/$3?o_ɦQlқK3 hh5xfSck"l8قRKJ6c|\j=# ۢZcxfbaԒҢǅs  ]9"x{oqf<~v̼*
SJSJrJ*R&pN.v|T@AW!499XKAKL(YQP`h49Pԑ)ha+D%& |,x7 <<
I~		 @deprecated since 120[FxkbAXG853$51ecf>O 
4*xbf3`vfcQ{QbAFfr_XMgV\l" U"~_xUMo@TE|Hʇ4\@
 @I*,g=awM	GƁ_@bq>Dq,ϼyS%yǜa# 46\͟c.3tPB'o/-"P\0yZN>ϝ?%!~6wf)y{DʞE\"*yu"*hۧbpNYPhU-i\A=`-BmHNV]ϵo'O^M<>vItAdGُ}TY% !cW!p@"є)b{0Drf{GY{g)Lubz<)MexՀG/m
G-Ux1IŅN$j\E.-R8 I P2vp!cQf):7&UfFぱn27X?%PH^^HdJ7sqwIy^p:^rjli;1J̕\o<o;UZ
.[U`p#3YuҴJeMZ6ޠ7hޓM^9-rL±kft	[,%{s<4n|aSKP-i2O̔=45P='g~]xђRBsJ9Ƕ6ti=QSpqgkvf,gUmF@yź2,\<wܛM>o4[ܪ޺[K{\x1e>4v^wowWf{?s7Wۥ$<x۩xkʂԔ4-x<Tǲ̜ĤTMVr~^IjE5/LSqIQirM>%yE\ռ\
@b5D]B> Pm->6`YīZRZPXY^P\ZO>yr T3E3/%39$2eG@&Cɉ|<%0eLKLNUN-rB"3ɉ99IٓO٭u50u
iy%yH.@I	} W*v!VȀ4[l/. Kxjb,s=7?c;0Liy%y%DX exjbls=7?c;0Liy%y%DX e
hxh1Scgɬ\XvNaǻzF 
jxhxkYM'+k1rUO.5YHRx?b 3o-xJC1^R:8¥PvKFDm}H*`rtv8|?֛%g{%0GPZ)3Ʃ`AX 0VHG;] 	f.K M*C|M"~5u@8,DeH}F\3/P$M~eTR
cc?3M
6=ngڎx}R̜x`b	G_bIfYfXF&=3=9y&Hl^, b=xjbAav̼ǅۢuL9%yE%DX 3x?0~AMZHikZnZNb!彭zL3Vd	o*%Ng8S?H<\g@k0vڌ\QI]Y;)Ae}B{ioY5WT"5x MMf5ru&oXxYmo7 p?cȲ5ZJ"ĕI ZDv=+Y(+ʒ^ܡ,[ÙgއG숝rm±	;;=;;+!Y_,e"@v<RVR0-<>cV{ :x+)XeH2&Q:&KtQ+ XI" Sd玃cEoYqG~Ε?9YV]Aw:=F1oWJ=_3^Yӆ+#iB2IuaVgnō|RiʵLWM+vЛܛ%؛Lz`v>^{;;Lp$KC: $ʩ-l)ک_	v((Ja
iɽS'tgwTN?z(X%OSJ6²`*	~HwF/e*<9[=K¹̥[woٵs6]['[׆;`!|Y~BՀet۰"**됅C-a?YCұQ۳~x˹f[0VNfqF}0.OٛRDK%y
ܺT*]"Hlye#q!F*"iıYTe
UPfܺdK-Svx~?{ex!yya3d!E	+R8UF$H(3whm3;NcKMJ@%*bPӵW
5t=Wwlɏmʯ\w䷳͖gnZMF5j{>H'_(ǔXGHu=S&o|v'j(-9r9CHⵡES+%`6B]Ӷ_l|ɍprqRTzMA7mm4ZYǒ7Gp}+V'-9zM͌@ٷ	mpqm灳H;E 杹
Kx)15.pQ ߒ9 EC\A&>_ FJ*chIQ3EFjF1{w$4ݭ.=+Rv­&h˕U:fmԶW` (1DCL͂.aoC?%M?jPjUI²XUWӦ6|\nD[QZl@$*g<iQQ>[hk_ۼ|rDbVYYx2aM$~V">.Yo/=;==}_6#ִ+?zqA-`ܰ>e2a2˸w)CڹߣVab>b{'Ξ'u'cFk9cņzTV3L̦_(XkO] 4"N]n=%a
]ǇιwHHR\QyO%<Vw)9MS]Gۺm2i fUI:J||"h+=MieQ50hMpH0;,>_짟iP3:LJҡ|{j#_ùm~"Y5Pt:lY?8΅l ljgǩ!,Ij$0mBFE
w|%iMĤ',u.5rD!5&uϰ)3+n5PB*CEpX:$"IoC*xTܞM D:mB[WYxCjUPi!rchW	ť%`eѥ.VGB-h[aw8e[ #DsM<;`:mZ'\yPiA}h`m^;Q QFͰ>6(9ݖZ&-C۵dߺyVsK_^߅ޕ: ';B0 7M1FEݱK#|rJ{ǊcjBٮ1p%l\Ej#]pWmʃPKG.ΖAw??ue5CuD2roD-?.ѭ4>
CAiJ'1k{OOv`)%Y%Z;TԻW!@k73ש[%3C$x0TَM;#~oU亹ZMw.fX
]W7?D{y!^jxrC1f)Pɫ >HxedC,GdsRKRJ2RK2RÊ+2KS'O/SztN~2|AjQf	=r  lvxerC, )MW?xn@OTTԪpH*A$
P%%IsYwMJ#_# YMbb%7O#.P!4`b	bNA5pO4B>ׯ,2
R=4'd)#g%<`1,x+\{MXAʦKlZU9Ϡ0'8D=+hnNksNPӎ?I֥Z՘e2.?4!yX\xԶ-.}Zkv \<xI95H1Du#JJ*!9OOZ1F 	2Eo~\ΰ}kޤ͝#j)Hy;'nu]{\H7Pdi@T*Cq9$F,EetT)HJ A3ÉB{FBYYI劑sIn"uU?^ݹ5'Yƃ_M?qx`dvv̼
2	 px`xC)dͥL7w0gOV|fqqf6Լ4 >xbZqC\rJ <PZxb|ZC\2<9
y
y)
%I9%
ťE%O0 xb|MC)L'W0yn`Ǽy7lNBAF~^jBb^BIbRNjIBqiAA~QbĵZZ

Z\ʩy)i qxbZqC\70)>&T Bx]S=oAm#KH$NDe$Q(DCAd;[q{;W@44KAR"Q34H]Ʋg{Ͻ_oP2 M nW/Z-y!Ba&Vz
5jRM3Ȣi	MEyxgI`|9<ZdrZ%0|I0̓Pd:8WhIA.㜚JLE7KkY'-<>mXڷ%,
cA*T؎XKܡƚO^^1	.e{EX"pT\_ڇ&ni"#i/;=\|IY*hY0u]7Na}Txv3?'+:i 幾jS1mE
jx7996	r[[4zL̝LD3L3eKt_s<Ɏ,.ΜIﱵ-`
0º)%{x@ԳW9hg9'"M5+K(r4ҝILC[}*X6'5v[ʑ_6p*ʭֻnC<Z~c?}x?_C)dͥL7w|߼NDM95/%3 /0xAC)dͥL7w0OnQ|?rj^Jf `xJC)L'W0yn`RpURNKL 9x[8EtW,S'"9Yp#rE[		7x"zXbWf̤ĢJ XY_V\W=s,%
`QԢ	݊g^JfrbIjBIF*NH&C%& QKZ0\ 7% x;,1UrWfǢlĂb#'3Go6c  {6vx%JAYC@Ȯ!o .̝R
'R*-|6ns{&W6dh_)<=ncm4Db&}K/բ"7!ikRHc
E.rl#DrpyMф-.oY'"Ci4^7,Z/OIȗn#hͿ𡮄;@+/GjQ6axeRT1 ήҸYfgśxڃŃAl^g'ts ~nw1><uIא>BKɄ+Bg־S1zu氛H;7$D!l0aߪGh֟/a "BTGOK<ΝLPP*x!3kK8M@TT^f~Q	_/׹at0am.7׏g;	%!ĦHYڜvu䩳ti(|XUB^W&(`Ϊ]>n6>?]ݼsv)oǩ~tÌrzSԿDcyw&
|SҬ5@
rP1:MA(7czHIl	;p^Z='gUy^쥫nC+GMs)cSYM)ƐQ{dYP+X%˴M]_\{=Y4䃏 ex7ox{BwC`>b	 6l"<xJAc^EJDRTTALg3KfX+(wBgw[P6_|Iޏ>Op`Г	kHEebSx_7W#(\bgDceXm*(?d6mp]zUʒWNV!߃@FLYUX.Z.^hiH_H ]b78F8r}6dՈxTgZJQO
ϛmn}Z;bļPW+*nh)
FJe48;9y*>!xxqx1ͺl'{(L px]sF*S·(כ^$D,z<xR,X efKvN%G&8==3='Ztg?j?	;[n6dhZ59<<ҹ9gMG/M]q3l4؏OB]2Yq bxljw|fXLi0pksH|D_*i%S}lKWnnK`<zml.}dikv:s9|k53Ϟˉnxk~Ju! (Oسuػ;?`썺ʐﵻnNYuAq(0jR4S[09\3Y@q6?q݅y=`Q':0|էg+QWO<}rXUuߞv_nߊ/iSvڟ{DԢ|i`4%ٖ5-͕y#-=xFUly"gIZ:cicͧ%&R<A	>>k%I[<6Wu`fȈg]`LSkt{q[(Ay>5G+er_O&\'e[蜽|ݰm᳛`:d3yc,]q("ZnEd23OEٳ3[1}_:gwD5u
(@09q3ZIWX^.Hy]b*e[-i&!PI	KX3ӂXI49s(+E'MvzW"@;F(pBtqsHsa'pth@GfL{H
L:&H,?9@OL#6OR?O&>z2,=ˇwF|^a,nGhSNb2@N(lbndĆFM0&A;S(l
)cJ՘\Gf3n/.QOkP
sËZnXD5t^O?s?RCe4y7>=UҿPFUg°1w5^=$0ٍi˒	j
ycvwN(GB T$#ҰLB;$ۛ	Ch'Ah[vfGHK6yȃ(}{B	2GW4
÷dN2hm[M{&_amX:/k9t/,$S^И(lcSh_1qV  /$)x?E{qw;$$u&40joYLL @{\@dxHÄʙz	|/,6s) z~ttCW$g3ۨ{EEjSBlv;"n	Rێ,D!ck^Z>dL~TJYhIU-07!ftr73~uBv*,Ng^L,7_RB$(ȄL"J,e)fl7VdgQ&TΰwO0z#CzZFCAK>\/c/!`R@8[q7isխP[E`&f/^ٸ	skx2>jzk^^NN?x_f=IIV$1reEu2l H{ƙ$ K֌1wg`r})>ʓwnlSâxhDn"ڰhѹ.ǃMb!ZԌhd;mV̛ہ0|MX_mٯ^4v9L[JTs.xۖd:ӄ [8[a;ކ0b%I"NAnUFD7" 5f3
c;$yfĺ9z)[p̰SIXgU4$>ݵ'7UX՚j1	9~slUHd޼HRӶjc&,nV8pF@O&IkP~cf0)6)*i8\[vJ{r9PJo'Ktfo(Fh[M_ćx)Gѳķ )tE-)-Q}_>΀yVAzF} ayu&SQrbUSBrk-% 
-T_g٨?@їӕi=Dɉ
}g4#I2nekA40:# p39gnBl|qWZ3U=b	
Y8 &;EKuK9~(\<<>fKU|4.*ujFdv62#2Õ.Bz<u$3B+VKCm˦T~j2$E*	vGB;w+/"(r*=_VG6>z1w/^\49^mҁ8K9j6zw>VR^TA:[m#	B/!6h69_t{^st{&Si{#Lq39WsTgʱ5S'+e(wrl `9>\ G8S^us	Ixx!/&Bc	DKHNۆU*}l$AA/1]^gXC"J,gNL2z4L|4:$ĥ=Ԯk%Kō՚ ?JSb)L8WmdFbl6Ȏ͖|J@R8dQMz݄jpMj*t[@w܄2NXj/~8~%@"HdgrX7`M*S,odU` bjm3GJ>-b-$tm= }ƴ@0bՐx{^wKk=JB]RWw+yϦ{]'6Z3rIE:'! ='0zLB!hE/vCP!j[(:oc2,GXUY1a[(&eì{,xs/kKS䎞={f}qջ~j5p	1є2QE<e /Ts:n8+92_4Yq՘CM_x=lkZ>g%)LaB8qQIq~̊<qU7@[+^ubB2Av0WgSP"-Phw5?e:ҰPj&&Z!mΉxnoqd30E3{\<?סcL)NuZWcNZ5iY8ĞR,t2A9k	tP*sGbu	:"MÊu*{Y+wS`&]6dI.դVr!ZLr;:F;ջwdЯw`r}{G;ԱGGҢOOu cv<@/|RzRC#vhhG^{8B|ˆ{B]sHxGg/j/jx-1l7`Dׅ"{iCgXZbwFh`+k<+M]WǠ9caϾ(A^.1Beh`0XZdrz ycyWiC=5'՗xb*@ż3(1mTH Qqx? {}Nkye=o僸|p	cߨH]t@=YVԈX3^@X'sG}2Tjܺ7P!o+m.6x9cHm<f*ϚK,J>%n֜ƺmIvq9-:2YC'ϩ>V3mS?sPl!Мx'SVՊq~?Һͺ2EOd?{uxi"?9]aXzȭC窻L{8/?dK.%7`3yUuHAhT"p>9XMKȁm>V8(M)97zQ3kIj2KfHQ4{Ei\\P I>cY:~6udZͿV4'c+1~6y1S'5Dox<p`HxmB׏0߂IZr)7=v$"Ic^`fɖKLJX8$~B4	"MՔ#Gv_*װ*m'`]WӨ\6T~x.o?)5'SޅR̻#QMl|`HU_Vk]`}l ĕgՈƓ?euNa#~+lS$=#>MB\E,u8lD",>5$9:M
MmT4-TK.GUs}e>TJ-?ͭcco{K@(F(Lq qM'ԤG!% = $!;:br
Xo-W{3N.UuFgOm9 GF%DZGm6HKw"VbD'?|鑀eZYT͵=P6rkX#+@I9pj2RlfP/{`{uђ!lM$SH[gU4m{YB)rvPIsu{M5DWpⷖ:=ӻG*Ez(ͲJ2;p'qw<'Ag|F;N?Y縕"dGW&$l!eƿU:SXsÇ@a%DUXmʒ`Cx`mUe[Xw{됾rKq}>=tWO`ǗA9R¾㓣|ܕX-fJiꙷHQT4$9g;:weԑREWd?AVKEeښaǑEjMS:~w0;;V04Gw~#x^$*W43*pUԪ+%2ժ|Wݷ[ENUDv//Ljc+64yMh+\\KE6	IVz&U7|wμgGlѯ[ܯO2N]-aU=!g/szW/Mlvw)-+XRq_|B@>4nW md"ZMH.]4M[+跃LALE[2[G
4K=Ɓ0䪺8-u}{k%U7e$aפUykюJ`ϒj"n&N:+X]]NvrF̥)[b	[bTאT3q>rߤB]{SBDBb
!.X'B?^Kpju[{SjwUv׿tffQ1Դl0[hYR]bKڵAοd4KFZNq
.w|x	ߗ}Rrd2h=}r!S	yu)Wxb's0lR2d0'JOn\.6vy6Tp/&ɁV:j6:ĄNű[,Thb_C )Cxb's0lR2d0'JOn\.6vy6T0u	z?DBNű[,Thb_C rY'U#xi"Gz'G9Oh4h|W/'rnJpLVgf exi>}AnήAAArsB&lR''tLn?D; xm"xiTe]L4 ,`v;x-&Ol-3YCeF @xi"A}LZ
Ct}L +l dUx5'l-3Y# |
)vx5z7G&l.a Ux)mxʹis䥭F *R5xti+YZUDSxiC)xͥLo7d)?u~,
y%F%
Z9E%-'d|]ԜgdmՎgbDc&m||2cAd6d,,=y/ w6O
*_p-@ViPxMn 4E`V# QCElxtisdzAN<ĜɊֲ|ɉ
i
%œ'Mf,;;٠ mr;gP_נx` 9եV@A-U!9?47H!X!%KM.IM̘'45(?V 3 Y85/era(Y94ybMf E>HrxS]O@Y(qF~6QBb مe Nۑ̴!d@>|vQbfzν{MnSs{_d-3NЈ@D*$	]NHL"v"2;c	l>i1
=<zѭR!_6s!lIE_OQH,y$b6D"5hv0d5zh<H;:3\+NVq{/q%:P1Jc:oVWכ5fVOWE"d`R3^l39Cݑ쯓44MjoH.}Di'#бh<u0W黸
Pw 1Cy'$r'j3X.Z(.Zj3%q	S6t{)0(w?KW2[P,bY:8odfHf`.$#zRlN1*o{rM/<!%T2i
+	-HwmzltMWH6n($'oK2|8B^g=M&ON`z~qT
K7tma+޹	kx{iC)Lo'3mϢT 	$xmP]Haݟ}Lpm)6d1\,-ܘ?[%ڹAtQBȄ+B "b^t颋TgW]pssmVV6xMD#pfV55JL"t, Jv*=VL8'G
ݔjq`6XzrUK]qώ!7@妁]ZЀľ0.3wʱ.g ޝ|KIagΟ2`Ra.DZ=Ua;2Ö_wPgG_%ш?6#M	GȄ<Ѳ3#:?Tu2L\`>ՍD[^>ݨg(i,9+h&Ud֓,)x>uty0Bْ41*:L3-tӓI[>1@!;/=߇1/
xRJ@&Z(^2Ek*֫MMl6=ߠ/ՋgnrogyR5]؝g6?嚼\d-)UN[y7>SC?$FS@)u JP(+PIB\02(5W 1q`QTb)B`XhiF{bbqTY("8SD@&vmh(7,cRz\<Jcr+K)f!%grVN&,>T9^ΝqMыK%{5cR@4f<69Qmd
_>{x]QJ@DSl;j	VA"JRX^qcMݶxWo_zMZLf&㵉Ty)67Ս}OjlY)OћaMh={VUV?<.wNԕyH$|]( `  f)d@:CaS"6ഏ{	{%#+D:z\G(?8.j?7%l5#}İ"vn	-3uqVǅrH}ڙmI{ójOЁ2ܫ\Exkj ɪkd`dQ9 $cx{̴iCiqjf^qIjbGprbNf^o~Jju:roM~,;gASѤx!u~ 5x{i65dJn.N6,f=dT~_7ľc0RL9"u	7[D  %Z%x{ti1CJjAQjrbIjBqf^rdFYdE&_ៀGoL첛  |*}x´iCd9nn"&Wn~ Ȩ?9pfY7WZGBD&M揷,n>y<?+~*'Ldե.RQO 9,
$x{iCd9nn"6a eoxti;?d
f\
 PZW\ZP퐓=9DdX}BIBzjB"TF4--#1/%'H*psR
%y
E%Ee B1
c1Vf>/d=ɼ'XVF BLxWOlTER(4 %4XPZnKmQe}cά3nY``"ѓ&σ!ăI`bHg..~̷7~yg7tDp@+ ,@Cb
ގ̃Cjz9 K䝎J`4a>[t/tMg|Etvl+ 9%y\TYv~RXޭB/=fc9h]@Og6jvuRq̐}!H [P nն6~59$]9[\d#2F	p]X.UL@ Y|9 J2@*%DF,ޤ)\˳"ݠ
JuA	b*PA1-G3G
a ؘ]XFv(xE].)+d.V3U
ڌҎb7]{`ImaMS͎&y{2zܩZutwv!F^ -@ Z(@sM*2[5ơEgDQovV	?7(/{⩩d<9GәT"J'!jݽZ`"ִDGgdp .sTkó?&{v0*rzpp!4J0 J7<bpLpx5z2;6`P0G
<G-˫پ4_g$ ?)/DM)`@zF	G륄mn4#>UxFx:'3D<|uۭ+O!iW=us䐲愭4qbs"TpX{Z1!G6Vk;卡lvJt5ˊz!j̴mk[S%0e	qB(0Ț!ݪڤ#2
3y>jջ{|@:Ab'wc_wZOcHG ezi߁T`U-O㳇ߟaI*nh~$u$fBTZ픙XBVkL@ѲXS>ib4nF.X|j]! աX_t*gƋ<U^>֭SѰ|/M~NӀfDӪ̵nɈg75Y&BfAQn3F/AVޚW[_=]ɋ}"8~x2t1newbބJa{VN˰\w\w\:Ҥ -Y6݃hH?X̿VUmxUMhAehkEeDJmk+چGi''_k;kͩ*
\D^=7<"stfF*]m{޼ͻPׇNLAa`gȠ Brܙj3SDD*zK
~>UUYdSSdmH`8Q:`#z%:(A3Q8VщX:ҨP(3䨝GYӎw6.85[hzdWh/z1PYL!V؈URH%`0`Mь"v^LSJpOOdow2=4p1|, wW|_ꭚɺs3ג?N
Haba`ڏ@4~N;S>Zއ_}j}[G߈+,J|]yO{'8wz_+*u`aJx c㺃PMjA3o؀OVL/E8ͯp%Oo9Z~2p 0SVmb,݇h*.toP~uw|j5`m6ͿVˡ9<M,sPc 4}1ÈE:[a Qj¥Ĺ@VM1\"߇_8e?ۺC"aU}1~jrBԂN4ͰE$"XZ҂fc5cSBD^SzL5ºMUrJրÃ^"!?/.-ދXPy}?I^3G(a}j~ed*{dn#j);.R}#!G/\9vWz3jָc9sWk=c/#9vx;smZ,Y&/wۼ? t>	[xSOAVC)|ZjB@CWM$NY@w-bL㠉	>D`ƃ\P!_ 	LT֘m89}waߎqNESLDLO*L	eI
k4̬YVkQսxqd*S^:*N
(dE)B5{K.R9Pvt=_ZhMpf,Me'1-Mfl	x~'fH9qL]$D'\A缒}$LrTiE~]Q>kծƞP,2ꑢCXh@H(&2xk7[?lTt8%8ѡc 2I1.l{B*ncm
N wx0s>_:lc/!moY9kVw/.?ɛgUKV&?a7BY.b`֘v#Uj3XY
4ܘȳ12] z*5v/GJsV+lx?c5|φA2l6o8;Ҝid&2-JJ@ײռlN!(W/v&sxUJ1Q҈
#Z`"(MlfN$V.2>;B?s_OkZ@HFPɡ@BP:[9k^Yt6R൭.B]d|Pβm}@XyW}`gGȃe3d>@#)BwOPR}U4:SU10@f/T'fN9R'q̭ $M
+PK#9	T1._GPu])g˲	(r\
LRnѮ~[GWnZG)Y/8hKg?(ʭ),&ԝzE{"~ τxymKy&7psNv|x!; ~n+xE } =G/:)G/Eg-oE9@'Q9aam4jSxOACAB @զۊ+vlqw1DvJ7fwJxsb71UWOxd88KKēeo޼y~g~}hs߅s<p8+X[Er.Y5VV;7aaeC1LmudYDiJ."XUJ6Sїh0a ؀(~Ԕ Nq+e8^'.xVɋ޾xG=۩3`QT1OW7{2#d<'[]!v%dKUn`dk7B`!cx&%Ą'dX$ ۦK|BY g3%mUu +lO)9!$,/]&Ӭ R߮Csa9]5LXX nO~zzӝyr7Mw
}.Fj3h}}KvC<܀ωoH@L H=:|6VN@zeWfy1;7$VDy岺eˆQ~2ZwnWrT&A~y1}
wk3BCI>O m }u<8nȧšߒSxqzܬϳNga&ySqF {
8+xn@UD45,Hq^ )4vUkKa&'
P qx@y;6<cq,lw3,̎&b._u&$#)%S|*hkehO1K)|]ZtpcP3rJ<[>slݐ		נ$V~kvƃ4e"7O,S+8S{aPjpj9{Qxq!H4T6@gSXb/0n	L$lws.[B#)nX]gB_OżP~o!T,F<(7*fKJCkW5#pt	+;o},xRJ zo<?LlQ&$w)SV'<qϯet %gs1x ) $5$x[qVsB';Of3/Tx-ytKSx@ry)

~>>
E
IiiE"iyɩn)0!$s!@u$N\g&f4RA3F 8sAx[qR"smVϽKu |zy<xkPǩIL܆8lcՉ:Ͳ.-ISd>irڤ$7*%opo_IYӡ|!{st?'I||aF7[3zNuҩvOIn7E>l/N^=NqktH.6CJm2t<ɉK6K<`_<Ѥ0ph.¾kËÆe_+^e(kktE+,TV:q&}^<B!:7┎c^֔rdf{Dp\at0 <ƴ{哯bJ@8.a*}MuS:vk>Q{Oit$ I@*ŵ)jaݳ
	 C<W몒JEShHM=r\̑j򦔝??0ZtX60xsĂOtƄ7qe_s;חYL|$uig^qGqw0`[쒠qx|A5&kyp*g%*m1Uh}L6׹ʍ&0@~z Cxw!ktxJS3KRS&i*O|VsGwܼȲ
/Ok!f4Y~/ I -Lxw0
̼3ɵ<=Pf>ނ ־-x۸q^sYd3sJSR<3K3Ss6`y^YXY_P +<A=o2_.D䍁@.;'Bb}" 2B}|!BE&ɇjwQO\#1ӊs1yR+Eat&T$%?X!/D!9?$13O$c X?#7s5 wpCf 9dyx[q^sY&ǉMVRYP\RT\X̞Ȫ8Yukj$ 'Hx[q^Xe&˳Nd	 }&xK VDefines the ipc parcel.
 * Z&'T}VUYCPxRݎ@&nUhdHw,ЈW[@gԙVx_d7>kZ{A4s6^f]3j˷ze#CuF;m<&>kE*wД'q[!>Y 0a(pŁaLΖ ğBd	oMx࢙<n-
"S+_P/$sJq~"9°BlCH!t0̣^X pb5O
K[ۅp`^v
iEdůͬo.ȤQ2;X j_1˽D\N9(tC,,ے&LHH	/%@R\5|n{49 u7w;M&`Pc;&dK[ :\ib[t&_
!J9+ՉVnSWz:`gCFg7(xGeE%3[<i7L|h{PHcϪ-?_w	x96(nTD }	+]xmQ1o@UHc[J)qPT"t?+s,?rԎFcX
{w{+?-eJ+<߅ҁ'r<;('wq#?omG1=<~Rdxm9l}1,TJ`X	"|RH6c!7g`f8i +LnW_2l'2I6J$sgtSrh68Sϳ;Kriۤ`Å+Cs*1~V)pLvM%v:<n}캻VM%Drz U*
8Ҕq挓WmoRsQR^vr5Jcցfi|-N5={?,x)/8;D(۽( #3ȅKAK!'3(RH%dƧ%gOeu mx"*] -xqu\aɌ"k86ۉd)]3Y% CEx"9&cÖ[L/$,5<3/%ܿ ϛ̨/2k- kHnx[ƸqOSKKS=SҊs'HNNf̛<A]~uv05*puL^hdh4Xb	qp7Xė(h!Tά7GϼĒbT$+$¸z3'I"92c&jHBI)4J3JXY_UfhZOd j_Px[ʸS*#53=DG!:3/V!3(D<3$cr!o'S mx[]$dgV,eYX2R33Jt3b2JK3SJ2&ro^i&>YFdfolYt xp\ɛ858KSKS3&fVr)Cqf^rLDpww
uss
uur媝\(&2ksp>cIIbrBBRiZ~gk2'Os֝|[w=lnFkUNi3yK*"\ļ'/jX̄F~LO@x]J0[kQୌ)2Ɂq((^%k-+iJPv">/`s>|h}=^]mA^,xZ>v`=rP.?N7e`'"My@f(#c%i˙H2zyT1%v]u?dMٍ k.TJ٪BW(8UKi'`zl#$,2<^4kѹzB\=oo(}mt~Vx{8,ޓ='[OVr`>9ʜ-F?nvRLaF%=s2}SRÌf B1x]JAƑ@C"M*^Fҿo"(jܝաmfYˠt ԛ]6&sΜ1x+gf21$vE۰LWM6u?{MAe ,$PF]STLp1[Ⱥ4G	ɔfpYx(WhfՋ끅hrM1G"-9m>R1\5h90[=p{zERsx/g~JX]Ƴ
^t
Z»96Kcq^Ck!Y/;x]KPtK:1."3Ec2]ѕ97	~ueW~>IW u6vn=_y$	Nk)H`E_-΅$Gע-AK|}Kx3$f-<4Au=vАUd~8.n5ա=G͆=9΃j6
qAmn{\٩).
!7VnZc{.'c#frV%iuXAn߁3¤٪$V8jn&W8ц#؝ r*I0rpWa\&Va)'*r,*ARDn֍ņQg2/xښF[doaC2-,xkhelheP)YRWbl_1[d XUdxkhelheP=yi%ͥ'8Lmĳ9RG] N/xkhe<¸$dgV,eY_HO.t+
 I+x;xq^.GU7WS 5
@Rx;z2Y,2/(ٳoVQ 	'xUMoI|l@Jda6H!!L6Lnq{U?@w\AB\8rq=|׫zU_̓s͑LpsrrY>y9bkAL~d܂봝*iѕ'rs(hT%3iL`\2im5,ew櫋yOk;T=>8ͦXZې v BaN2xp)rO&-Of)8>>C2SM<ј˶y&Uu $Am泖Ӈ	AF;unoUЧInb3ZTJLڶ,CUo*M48I#@6TLs-QRFE?K5,H&&Fƙo4.S>$~<?Gк ,p"絠9ݫ庞+_6(NL:ֺ5iJ|qkZ)L$'&o]9`{|sT6JXFũ'Y_Kԩhc~W뤨FoR6R%lUOK|>ɊVFrQYi_Lv͑]'
`p5^:>tONFcdxVi^`~xa1.{K0_G]xc/0!azDh({	"fY"pϺ|h5vלv27V$ͲFE!c]:_lAlr.HG(QK^5@VUU1d^5g/fj,($UV)h%-_3f_;x9¸aWRғ7(L^&=/$,ir"+=Z^R#"QZ5F,
M+odh0d'Ud`+IM~-cWxl񋸧(d*$(gL.TeI+ϝ<LmXɵhzuT7jqiQ@]v=u]1 TMxWmsF_ѥl)Үsuu]-[	Q} jSle+EUt?&:r5p|Wì{!a*v2(0ܤ#R25 	~uOp+j-U	WwpIj(F!5d2 $2 KHTQ咗h~/Xw69*;nP5q<#nT筨ϽG;*s5F BP	_#ԜA7gF}-,7C*3{^RJmjnIz F0p"\;Ig/-W1|vcύ`dO[xu<:C;KUSR4EHj!J$2	VnQ;QT.j\pco=/.om$?45jSt݉'v NB& Hr)ku}8CZTjJ
#or9#gA/D`2CHZZlNLZ+DJՔ\ݔ\s&#K_XCsTI<?|m)xL^F~ВGubay1ڞ}*2YvPBqiZ!]TI*pU"9ǖn ymϬجu-F,S#]ݗx@D$',golRD tv#9i++yI8`Sgd{X
S!ˏ?kwzphQ.wAQ[!?l.>bEޏjyu	 :h#	6˵̱F3b?yI72̻x<'8a]i3m!REKw!lQ0׋7Le-mA˴xhs+y񔝬 ^*v cpajF_J{s<?~L-ι H]8Y:Sn`g}Źky.x<O-Luuu3˭cX,0haPT'l!|qxۏ#O^>rcJ9)L@gexR'x֍FtmU2t'W=⸴Yᗡb] it΁60Og틢<Y!ĉjJ#[B4h'kSeFc2.lhqHI.^[09X]4Z6	!8^kdTұy!sӒ*i*߉Մȭe?7F!TzHgz)~-Dpzؒx[<D:@	TW6	ht]ʂ	,-Reʪ59Cp`pDfRUI6R-x177,/6HZ?Y泌l}0B?,'}'䛚'KF%採jvخÅ7mȐ6Z(ZvS:%Ю*<gչGخ/uh1Aޤǘx3Ҿt,e4u|+ݓeO|Nb|oZ`w&[7kހ{mxkWjR kd`d6QƷʙiy)i'MbSM}#v?قF͏دsL% 3! >?fkcxkWڧ]> mgxAo0%Z@qb8!B5Ҥ8I'&5˒I65Bgや[tmmg?_~3埵G*|xwpgj~^l N<jS{2MBbxmch4Y=A&;Ƴg`J|0/4g,Y3g3`:EB ϋ\!D%I͆Jh[NMf3HdpDڽg|.iaӷ?clsCxT:jLgTVeU:ji49}~{CLwWS_老!dⷺ#XrDϕ"D6 
NB,-$/b~tJClW:HrNHHf 	|s-K}.
!S:S*|(nUy$14!3FbG>,g0fe#沞Lr;J`\ب%Ur:ZD{>q5+M,ʕ묝85O1>rh)_*^O3ܙTB:]lvƕ/dtwY}uT$<TJO7r`bTyaz(#xkRjRpyr*;]LױoV ~	-(xkRT6w&cg<-uKnIV Mlx+Wnɩl0w1M^yk 
x[sP/Mc,4);n#yCq(&ݻÛ}M5cY$ݽ}vpzZ'u,拄yH	6$~7>KC,Yp֍\3W!;=᥹rX˔-5eRŁPl&ǣyrJ$c_9M\݅"4+nŻg$ۃjqIU^r6݄W煮a5s#s j஘;9\K$
E"y)9KVn̑/TitfEo !{1gvGΨD>;͘}^_w/NĆ׬7<s>syf4|}
@Lڂ#K"̤IE3y9;"x)ZU>	R$nB_օ^8h&߻y,ӈ]@X"JT"Yj}p/ocL%wޢb&W!Jb}'R~NZ4Z]#uH`TK+э|7폁iu)W{ǍZnŌab	5IX dU+{rt\<Bx΢3>C!H"Lx<s	"k(~O S(+IoA+#%n7tGhs#6Z/{Ɲq'N=KFf?͓77>"<zAscv9 ċT{~y}1c[2]ktc71zqV$uyS{F֜#q=1#P0i1t-!{L2*<Yt='ϴ6;l7q\Dx"SwMn>/Q#7 Ӭ8D&~ls	Cif%f\'3̎,b߮ر=~\O#K/D	H`tSUsң\'1S|7oCzN]7f1$eE rt݈y!~IrP06V@G+PU1L`m!Bᡷ&}w<oUIŤ^'SP/лj-wj	@E1<|:PH0dNleDֹDցҙc)W,	h,75)W	\@};ZIzzWz eT\p'ZhDkn~8N0mabAD$fS<(ꜴB@`4'LlĢ?ZDVAcdӵޗjX*Ss7X	H\A9Un>B'gF %U,;~)tTF]dj/_bj¿4, 'ExzPruWpr0H+Z08zMXm̠NĿTw,5OyU4`I闑+wf?d"Ϡ]"v"ѹK4h{Ӑy:[sEz!zɷZ̖,(#+~ #zn茐89rC.Y

E;+ϲs.Х8U_H_xs$+zNn$mruz39>{?NNFV=Y`ͣ4TP/'40_37ϢFU.Ǻ"rWȫN+ܯAP"eQ{/VvȾcì*u]SMMCփ %Ǣ\2.TC+IL4YD(wȶ2 xz\5HАbrBLF̱lT~cW]l|ԕ?QLu᜚뿶Qw<i~jcbA@P{'k-Eb=qyPsJcX%+3B2S]aab-s٬@h#:gZb.:z@6sp׿B
>pAOMvяAYgf"Y+7'6K!O'I)gSKtfK #`󝺥cwDw6T8r		i:63V[#`ԴZCo
Z@W
4SҿwW@"c+.HC;2YPA!}͖)`tB`t'!2JQ;6H34:Vl2UZ{rBr9 ?sD/1=)Zz8#nFPs@X}MhD"~ .5ה#4Ia@'eZ)54uޛ,:Fx#H܏G+3<کHaV@vS-ɡ6'u37P_ZZjbC2Bf;W=cM0f{@	)r[2MX" !/,g^:CT?(	< !K9Ž9d b6βEJK1r9HAgYHI|:TB(7qPw@ΓG13
ZkE[>;b{r$	%r%:'Ҕݰ9x4MI;eLGz&+u^y?Db35?LD`iVBַ;AZ T
(c)K&YRJtc_g
[\jԱϞƤWcr=c
0vF6UG7uce}QQjD5w6N^`|YIM^M]nֽz5C\;D4܋Dzx%@S+[Dhσb+9nB7ԡl:#s[-]ʡ mH
pBavem^gǆ5V,,Xz(Ãc'n&g 7q_>hYAޮ/+dCu ?~@GXp;[kxt*~_X![tno*3{ ۝ad	l/*IkC-q1;Y yH88jl`V ]wwؔ<H56Ʒ*n)ix^c	*zL#>3JjFG;҅j=@ܖ;gWYcP4S	MJmZ:{y3|8?;N$łt:ԍ.+ov,c:;붥wh.вg $>QDir,I/yʹ
*rW٠hAK.;o:Z(v-󒯺`cxoC WoSm5sax	;gϋBdN3dY>ߐ)q[ʘAS=մ.n_dL3h`v?in6iIi[p\N@eeCC6M{_D*)LވpQ$d ͽrMJ@fDF+74Mo2ohbƽ_s}f_#stK NaR8gbjg~ݫ+(VI훸uMۋ'h$),u	[9i>Y7N6{iWH!_ L7dZb+dhk@-X츁XAr:A3/iQn̃Ǆz
iRAB?ǒ,TAn՟э=>jগ..Vɝ߷9IRƔu 65F-ím	jXM4Se;;Ied2*f(AU@XE*Բq!5NjV3	۶pFe*UZܛ艸	JB(B(2rC-K.ܲݱ|[ϐ|7m=,W/|`o{xjұvrMYi)BOv 5^ivʚk7`^CG`kxoWGxWKlDhYGɲuJDԇ6"A,N$Drj8o<oF2lw	6K?(K U+Ϣ(@E Y-n.z{3N~"wsߝߗ/~~_S}-	`=0y\|iL	g'`90l+WJi=/zng}t;X?+qi6f9H  ?Fc\[%cwAA>zq}aötZAĺ<r6zydsy(=- LSP8LsJd% 8oqG.L/˃l dr`eZm18!zv2d@0
0'Y01ї:T9$˅6;qP0<߀Kɿ 0Dz&zWc&/?`>me0ܷ3Z2Ѥx~XR#]]}L^_Ǐ|az~u}|:,+gw|gcx\@ ^y쇥Tvl!q<\0pOvYj4-XXTw	r> 1 R%6&Jξ՛?>/%}R\FY&
FZtrU`v~vn:ũB
?;Yk?{.AdYdY-SKP2x{ZeOiޫ{$`5j3x:[5idt[uTL[3"?A)PT'5ik:/ߜ3Lf{E.##qy@%)gFmR]-zhqTOLW`9t'5)5@P*_q*t"\.[ġ%R7d:fj[~1?8Ff;1n]bmF.WUUcQ5yfæqq"-ZUu%kܔ}/mi^ZeC&?cPs/oBK1@|xDv=UPu!Z-%{L$)&qg3-T{ҝ82"rb$w+ ~yD!V^:9)Uhi5dTElZ!MkOo	riEå1A(wơn^fx=܀`.	<z`)hɥLUKN"~<Kƈtgp5kłd"Q}&=eEnT~BN^SV-C)Jr9g4¡8IRids40CȞ>vw#<NߞRni9
2$|Q1m4lfAGy?a9=xh?&ۨ$iq;Tǉڇqa.sGT
DM)q^ J<zI_]J4EMA`>o(hK*}}U3=-W7"v@@|qSWȾHMzHPTI<wr9	H/g\?丟_9K}s0=a!̎V:awqK<V#XV'hǿ<hN׆7cloݴLtmK?_oި@zI>,|VJO^wԺR`2izTim\:tH+)c<v`@T7ʽ[s8zYӯutk;;w7ַo޺3ag.4.?
_2p60-y/OSWԌ9$Wnˏpf%F[t0:Oenn|_\	߼~V,tJx@ ]]$C$Г&*`%i(&(7%)T&	
} OH_HiC))C*	|fx{cCMғC A:x) ]]%&*`%i(&(7%)T&()O :xL{?897:9T n 	Ex;'vEnƼ&_ܜ7h_9r ֲOx{L{C",֛6a%  epxVoDD8!6+wW@wHi)4m6:^ٵvmSw;/H3T7䟯jڭkuK)h68+ŸKao?=صnquƣIg8N:|wOzڨmrirFc|:+x{Vv!A(KWpMu2OoC4vtvΏo#B(:)I
P䒂:fbYD0?AUB6R4Ak:YŶ=ml8zpSn ߀s<>fmOo)LomaB26|c>!"j&8\1Ĥ5u#MM_Rl_
6ＨPq8!&W&q'aH8"SĦ<搧zm<(ЩW`
fSI4@cT.*e<쵎Yhj'; j^4Lε}Q%Ƶ={%ʓ,VkA-=X8총'kQvj7erjxuędZN,P^BYb20؅c#ǅACa)|"n_ri_RlnH! !Qƅ~69sPnЂT{ɝ|
,LAY٘da*(3<T\'Re|TrgG
rRa3?PTEb{l
AfuM6I9$,|{\7t{/xt>X-ʛ|O5x<gLn/wK+1}v7_hyv6h"*FfiCWJCۙȉfH\~	w<}W2'v߼"δa:X4lٴuhUD"tfoʌyTn?ڰ|fvam23-~|_$cgx{}`\`b=.-Ģ\`G!%$5$3?O!3$,1gj4;
9
%y
0RҋR RPɷ&[LWh69ATe~~a̒99!
%@BGcn~ -U7xxm]ɞ%!%
ũy)z\
Z
E
( BJjIjrIf~Bf^IjQYbBiv(*3rRJ2a+$(&AMr?M l:YSwrق%P'Q(Zil_.Ɇ
 (KP0x;vmE6Fvb_Y<ؽ<G+-6qTsJl'ǟOav|eF&қe@Mx:T !x[[۶~@9GVxԩȒƣ.ƎE5E0 9c%5} o$[{NNUht;7*:h%bWmd =6N.Ó0>KC_hE܃$t,UȮW^W/_$*e{~`JX!c`'ɐyjLvBl|4:0Ä2P?$c]o34~350m'݇c xLy|)Vx(dQD&yZ _Ɖ4)aXɋ 5-^hA"G}r4\ٜgh9M֛~a#E% 6%).(Q8HD)
UB w5}$ȽLxB޼xMH}?Q[҈ʁX[zEbz DpۤGv؍B8JJVFnX𢔡({<(I5/D}{{]f4s'@ld2Z^iȵ 0Q*v'4l-W618>(Z29to7"%~ص}?ìh0pquDq0?{i%Y%Htw/q\d [Z^_?_ B_n؛7!mAv4F|c TԐ韓ÝC#04HZu(RhZR"=H؆Ƙʘ*)ە}Q$vhl$R|si)7nEN赬Suv)aR,PU9z:cIw<5E0+o
$Ot?	~uZ ]5i&SP98'=Ʊաxz#`CjཁVvn6@q[a8J7_f 70'mE(4aU59EkAI8L;u,yk7&?DG3`"p
0hWmQURUl
$$ Go] #pww@eU,k$>M⼲jKf/sќg	\U/kvL6"|ȣ懘aEt {Zl24z 'b1v>U* rG~J ua_b֖?_XgÃʖR`;PPA[3S(RM;L#6p}>qz#谵RAi	@1	Mwy9Z5vAc	IV}+Wb֊eK|Ab
h_Kل.CZ`:f;aCɆa!H(M
#]RT\X[pgAlfԫfNl5~GUo~2.0S3c֦';+]\'CZVWװ-p"f;74o U?=8
#U˓uj9}嗲@@ Oj[~uwg[y;ufVp^A
MaM0tR:\؏-3,ì*8煮7lk
bܦV܅yWqV
Pez(n2ӄ_<ZY({ie)ղbt ~X<Hrlz7~e
XhάżJ)Y,gj<S'Jc1h&X6&X9>FއUYO.Ɩ҄zγQ.l\ǚ)ؙNzK"CEMTPD*ג)i<fE?v88BsM"L:NM-,ɇ9e}uj - &ie޼M"y(@+o '$tN@ˇ8@|mcfAV	|KoIzŌ[hͲ'	@s H_z(FY@X
ZS<")Ot[&Aγ번z
&cqjͷv0^Oc|RӉ
e&Ć}*J,Jz.MAT0l	e[hebX,wHSMPbA	|P2X4(	Xwi4oƉ@5LJґωK`3yT~"0ݯM_ŀ瘉L֘ TD'v&j=_,@2g,!񎵤x▥\][kxe<ӏf5k;N
Fq#<T$!I?PۥTL.ZY<#;Vdj͌< xs@A)FzEb}LkV$أ{إ:c{Bi,D+vrRm%izm,. 'RpNsl]ڞRV'cΨz>տ'4207̉JtIzvQl#՚℁)+BqXnRM4VsLjHEdY4X#cNC{%;: P_rWlZ|"U%'κ1N{~QC
Q	T1y4Y,L8kWSkɵ9V0u8rqmBWĻܐ!b!؋9軜D)^./o^t'*j'ݝ%^|tpi2<>%5qI900XE6ye2&L6+$Z&Sn ʞ4'5XC=.#&20`GKT:ˍTFc`G(eQ_<[ 5Ђ/he3lkS+wuRwRFɞLgKn6_(Ls|MƣGK249_S׎eN\38Z"awFЦA۶a.$#Z.߆*NWT(vsiL--^/?%;87́akƉ,aJå_@8"QiYy,&h]aP?]N]>|ghf-T|#5y`ٵsKAkZV13Z'ܭS^z;BڗTKDc9E/"(ƬRR&ulo>CxΏ"JX A5Mp;qrxiGӁvē]
g톁S/_s.4-rnʉ[o&\^^Wa*۠ݓ+3A`<!\jsޝwd]g7ycѰkR(/rC 7	[G4'Vy?Pȉ*fS7c?9E`ݞ|ej0[h	ݳhɴ#7,}q:hڗ_5@'v@:m-E(/ҽ||At11#.Xsh|V}qu}SJǶjffџMoƣ~-}VPX%Ɓx7q[ZIxRf@eeo5?=UcQ~y?+v!e7 zӋ>^|ݖ"@XB#hn~mWl˨~9$u\i#BsCٛ:׸] zڜjُ0ʺܫ|P.dgnR%6%ؙv䂒qH55_nDrQɇkN12?b9-r9mU}OP𴗣V aR?eWߜͳ(-[R>]-9ݷ|7:#HQj#WAXdGe1(M1}os'tAWM}XQ|jm*	I|-T<ky)0s2-l8oT(P7l.Iz^ +P{yif!O,er@X.YcS֜qCc-ƹ⟺W&.&b? N
z6ac%V.o;)5}?@Vx$n.?AQ <}#.|o].I92E ӽwװ	}m.i,4D:3dFWP@\ÙlPjљUâFinMf6$>}E 'a-^ k~d^1^QD94dsC3ht"n:MU;d{mkmli2!kܯnB汍]bX|tmfIIh)Tn56[Եa:̆I>Bl̷'<Phx{¸tC==s%^)Nr
 q	
x ;W<ﳆ=A"?3BSqOx[]dmԼ$'7,V(J-)-KMQ/RRHN✜DJ2sRjJ
%@mEɩ
99%yz
i M^(2A嗀كCByfNWWP
s&V 219#5er*NܼЈ%14?>8? %)2%41߯V!fM=
%% TS;@ҢDr2s3'm~hj´"	 Fy-x_rxsbړ{-x7_4?LV E<x_>dCl٢uH-Xx_~_-'oNbʾَߙus8BriqI~nfUjBnjn~Q^IuYϼĒb̼"4Rg$=eSKd$$g($&N1]J'4'fd^eץB2RRRKsJ4MOVH+K.j|D"d+m.}--Z-}ɉVr ?OlxU!wCl|% ,Yxu1K@dOEYB]&M\K.f/ o-oݗyc"_pD8%G,RDjq\xÉ'F\Fjiq$7&L116Ҿ}Dm_An-|Պ0^c{fS&QAϥAbSZcŤR3]jwNλc7[fZg3bJ6BE T1idV5uznv3)E]>Ԗ:(@zAy}/hy'9x{rg_-'oNb8YFKK_KKVAKkr 8%#mxJA1B+T!9$";LTy}>/cwBo>?+e{vTͨYo47_^39AX$tll*6E pF3>q'0?p5V°LSEgkO(ePe/V qz`1a.R5SR~.A[}UUƙ98h['@1hqp%2ug81>0=MADV5kBTVj_A7,,a=ؚizʺ D_rTV{;t[^;; kxa俪 "lxuAɍRJ\W5 l	9xsg%6ĒɇҘsR&(+3%mQng|[ 1lTxuA͇$l -jxe)Bbyi
ɉ

EiE
eE

y%z\
Z
PYP_PVWPZPRTQ/H,JM-I-2ac%`
r2K2rSsSNArf^*'|OE 	Lx9'r#c&d/-l<_ `Swx[m~CnJjZf^jBnjn~QBbNN~rbIf~rau~G̼"|bO0⒙
ťɩi99
eEE)ydT&O㚜 #09]D/Q!f2OɍddGa1<:
E
~>> ̜ҢT=d6p Dk0x[m_m` \Fx[mOm>f?#:?lbx[m?r HN 1yx[m@yC"M6`ْEwr|0 
W"x[mWmC"M6`ْ3` "x1N0%L^M
C$P!A%q^%׎9Dn183 "4H0Fy?Nߧ/q3c,J	wdPJWs ^(S+eT^F_\*R
N6R}@uܾ7_5qd XNO%ܳ,KnQPjN[?1Njpy>flwu+L	!o{oinHܯyNƏڽx{өJ=( '19U71''?% $9C$1)'U<$C!%,5' H!$?7*5E!757R!4/$3?xrplpj	&Nb22 R>y,PeQQj^	V'zeg%N+*- CHj xԝ!]OG!% $9#$1)gs4 	'x;]wCBA~f^IjzA& U{F>x]OJP.f(4@c%`ōP^^З]/. .<w1rg{=`)LЀ#sJ,+jqfs)V3!ze+H2ʖN	
UVUb>8MW-6־S"QLDi HBU$.\3*뷹`lcy 4Ip1l>saƭĒ4˩i/A.Xx["<w̼]X yl&痚.4%\r58 @8yI7'((X!9?%U)=>858V!3M49984GO!854'3/[#%54=޵(h#jh8\0 xRFxR=oAR0!(HAB%Zb%oz;Kz M$ZJ*

*~?ٵ@5+{o޽7/[Z0CL+TXRn}z=ʐ`$(ԊkӕHR_$ 
Myd$xI)c@ cc/sxwZy~U6Q{.Ն_X H'	f6U>!{Nr#5	ˆia:?ʢ"l~+_,itdR#S\aC`@ɟđX)@ѻ4]8i*+/az;jw5wOzN7,CMbPWB([e<S%ǒ鯘1*UIF1>UHṚd1YX`raǒa'Ȕ7K+^=Eḙ5X=I?JzV'E	m%xk#k2'zəŒK32sRsSu&nQc ExYiyfԢļTǼĜb̒ͧxGx\[s۸~ϯ@e6vyd[sf6[EDE	Erx3 H7Ya]D|_W ;rJa{ǔ|pNH? wL='ϡ@SO .$}Dlߜ4N0 _?/aF	d	/!kϧ~wh/ N|K@ab<p"Z~)<OcFy~ܳ0ޜ|5cBAIBbW0#ʱW o?0&&]ϱz$:}c0Ҋra5; 9ɍ2gr/WLS16'S/x _tC=#4<{@LI
)HIDo90`J6h\t^jƼݻS϶&y*]eBӟWGdOKA#Kk/`p(Y0034#MlNV+d~ӏdu8(~9.Uٙa>zL&+}h*DL
smf~1߼hbnѼ_/k[v]\ı#2IR<K_zwޓG7P"JdEWgE_uYw,oLĵ @\KRW?gY fnYNg	zGڀߓD[#zTN޺^HFl/!  2gc|pY<پ;d[AU몥ˉf,`g?Alcj/`Q`bא2Ԭ2[,M Ǧwy9藠F\	"1f9s%U	 %As!b٫ oW1D&Yrqsiq[\ OXJ0`<v7DXC >d;*|15[}QP/ȁx$<]:Rf
Ț-EUMnzLESah.)5ɢ(SVrc ;ͦBSs9^\36=gYfZse2Kz%9Fc$b@|̷q¦Kti(_}܌; t2Y\XgҘKkfNGR`ZT!H\%OA|M{[n"E7Qԥ,p2lmtxR-J_dlq}PPg>e2blqW_uc$9:0sXv`^>Ge\%`eсf|n7-\K>-eD^K`|E2Sz%-)ɟz[eY]ЃYpp/u}b(RNAr<f9`SfV4N!9	o$cv賶(ax3[j'ߚ	AҖjzaUdiؐZHo܌eEӚ\L͠pyh~aUH/,LmlL5SPѡYN14U6#6hd)T<zXْd)4U*B%%b묢![6-C5oMh݇R/{^&W%!ȯAF@^LXyČQ*(ȯ hj@%ŉ2%X@B	gox
*g	beKw]3{RT|٫
	tSveOU0åvqc=Wλ{" |T]SQ*i#6rvǜv|>KNADePaf1gB:,6DFƌ%C߼zIia	8+):PL-2%Z >xڹZ32`Cdx4ej죍(IivSA>(nb6(سImܻvAܗdT*E{OvJ#p|jcǡb n901iI\$enU{=	K`65flpۛZlM6_nn<J$rkMݰwaTnXYļ
wrfE4B%Kh۔Bjkn
20!j=(#2G <,4_$k. ?%^j+Tuݭ^a+B ǚԗU+YLdZYA'jwq3f@S,?žLCڹM
P$g&V;8@Gvxsj~k?zx\=MxC

neYxExdumO]j<<\*fuV1\ؓʶ&:_<kg^LU 8Sܖ}y}JO>Ut*_և B-3Xj[;:!ձ@pX<ʴ;5{"xN˕B8D's6r}^GK: 9
a]VWk ff!9ynI<vT'mp,.ݎO~Šj`.,<3ÃtDEv{0a`;bBK Ȇ{;;x)C"k΀Nkb9?)52wu7fl Liod=ME._,+AKU3JoP/0q'՟ _3a#S-y*,ڗTBv<{|=ıʊv(5B犩^ڜ8'fS?rDٕEyfU7]| ʍTZȋ/s,/՟9ho֔Oc;z|2ܵѿ%ۭsذ۱l6-	{>!/G0B\ۙ?Əw7;wĶuII)I=7iP;sPw5$Nq7ځnv<ՖtNX7vΉQd,M=yWjdds$1ݼ7C12t։0&S8y@_<4W\~9de911@ůl.גȋh^){^_-
q
<򋐹?][ZcjT^cl{x_`~lPxs"*XX=D~U<k^;FI2]4ZE(RMqZۥ^Bث5_tP5Kɳq2W{"\x5\,UjӜ+!ۯi%FK؋0=_@-7{@#![ly0i`@>3tWw@7غSu5Xсn=&%k9t58J	#Z["~کzɳeyf9d|h. z)]皦t͒ڬ:veu1P=V|w껢be}Mε+R/Ůf=wHt
0B39Ig(aNRcײ"	X`9 Q3wCD#^2_k,Y()^]+*Ժwr;,ݳiY;))@4żmTČ0=B]NfPfP.ānn?k{~RF梸r^&:/[piF.Nn+-VTu5N&S7b>HwmTPR78pTCtoʸ`	wPUKcHT{B[TbW^;o5kʭޠ+~Ms~MTl|uQWKc(}/ĄL1aĶxg(7Q&H:ń[&Kַxx}Z&03>fW׻|g[s*Y v[lMwk*;}([v#)日/R?.s;JkxuH?5HH
Aq'|3%|S'Px M7P-}2U'эR
w18DmXݑK.6s<G:oAØeƙ^:&YudN7r֣udNt\o&2bc[waEK^XFiՄxCվR5r\9tLneFFϘ~lz-h#=RjoV|xq.dfRZ׍3Ceg/:͒# A~uWynxkgʸAtYm -nxkg\͸泖x13xkg¸AZh.g- NSxkgU fc\grn.-6^ o)xU8zC=K&_P emu&Ay'9Cyw zP2+hy1pmPAhF2J6/1 B++xuAkARh@$!"uI7BRS&MXfwIlggJkO"<yϞ=Otvcb~KUALrA$a_/oǇagZm?8n3hlncu7=rEfRϋ n!\|]Nd a$9BHRv	'd$L)56Vlnz+J]^Ϥ,O2_jjm!S+JxrwB\ UR	̃ס& 7w?Fz=Z	H$Jz	LK64S"H(-"0Sd3|Br3)~\ %,2S%Fm<y.8f-F|8s9(׈{ Mx[}/dz,o Fua#kx[}.~C&dUKe9&g2mCRQfjBHeAjB~BrQbqB~RVjrIBZ~BJfbz^~qIfBfP 7$3?83/9Ux2T3HR4j.  ZW[ZXP\RV``7D7$U!757R!)'?9݄zAf&N@c125#l1@M sz;a1F`#!xa`b2a	N01ŔV#%54=96 ~!x[}&hzo D:?x[}:hzN4Ĝd\B?rHmv̵6^ Pl)xr.dodD'Kl s h/,x;4~9"N`_L	
Dv z3#X AXmKq%\0H"zr"fAI]FvL
&7U (.ix;4~C&dg-nm|N d=	g	x;8~"佊S7Q ij3x;t:h>"Ĝd'$ 	(x;4zRKͶќJo aKx;R+
B ?l@xa=zf}L) Vxa}nrf^rNiJMqIJJj^B4/(_dsKd.q⒢ҢTʂT4ĜdĒĤT=.- Rp(`d5T/XLi5gh)hhA(άJ/ѴFLFQ(
,>((5M{nnbf<"?-n$P 4F4s2SSqV#%54=56? GxajC"NNgv<9uvLF
|ILή%ż1v }{l;xcnC &)Wax[gjM^&3ɷyf_$v PED1.0xduj6fԢļTǼĜb̒%@2xh5zki)+%&*e+h<<]\BC]B<lML7;	 x[mo8_A(tE1M8m-6/%)"f,Jl\ mb7<3CRg5Ӆap=o=ނυdb&C(G0h,bf,X{CiBi&ybu|$i&|԰L!5X0)Sdt2%O\1qTHF:0sx`
ŉgltٜ'TIpvOb5SL*Px`|
B| |RH	Τ(\I#Qth\	$Imdd3/"h^ V	hX޴{^\v.O_yscls9=OG}99h0>T Dk
=!J"S+Pe%3ЈMHAr"742jjgd<L:Ri6eǲh끒bT:,NG#9̒nQ:qP([YffW80b
TPQ:7jolzXDex}%;
6Al'<^h)-}pYr&_7.+[B8㲅P&` TfH^K"&iF=bm8ɴaQVZZ;JkFY:vƂfOp`	XJ ogKEgM&Vkzc48Xl#71UdONXS9>O\ SbCJk0/c˲pB̳v{o޿msrt??O4/]Yepj1𖳧,!< 3qsn2J2N=Sڢl zL^a5@f.DBF-CW9 x_b6ZdYgr"~I
!aN1:N'\k&
1!<k*
t,YG7~c	6	=
߻kwNɟ\߲wqZƎ>Z:Qh]7 [̤|0ć\SQ ,RIf,6ƭ[lNk{2nض]2Ԯiuar:1r)^~	%=$4=}۟!!XC&ݎkԖjN7+WA8aNL㿚n
\{"HYg=Ǭx	|疋=R#/uǦ@,R Zuxb Xc<38$9p(XjiM.cVf:$WJM0jdvo0&B:Oy)B.hfa7YIP8a kp-PWTXP<Ǌku^";%\xh#  k_-b\6`qq 9&Xkm!˥|RLޮP` U;hz-7 l(j,>U/.])gLzˈJ, !t||}Q'K +lt2 āԌ
zX\~ʄR)bT#rLWP
2xAA%	]km2kGz`&lIC>a}Nt"pjJjn* "'vqŤ<
a*[[Őz'C.F)@ȉu[VE/ %Knۉ_ {$víoJh\;NJ+!\iA-Jȶlq'%wr\Df8GbPM ѐ9>ZUS'%\v&yf#@
	]L 4neTfM[-kՠˮ:3gXm};~ޡy-=A[or_v R^PKgܡRU4;UYs0Mm81+J]jg5	EdecKؘM1W~67w[j7RAt:[jҫMT<+t3%M`!dN5څP2gFlQgkh8,[hSn<f+	k[R s6vK	
Cn~<Na9]TW"g~mzo߀^nnn>\`T5=B~9>(~YG3@=-m)c1P]u:~i)/pf|omgW#)*`(TQJPE/cA}?}8>G;תj"ҸLio#a,}.|gMʄ=ҩ3˺,Xy<y5On]v[^^`%lYv+Wb+T{^Hʍ*n<[`ao$bؒH#bMޱLa:[-yooVuمB*#^TœSb,fil,js?n l~ho{MQ&:2ڨ5]bц=}Myc=({i6F=M	{Ř'13cqu &ʆCDُZ/F}3QV+LS,VE'{ij{:Z|qۻ*npQ-a㼨&vxVjϺh`dëͺ+o	ca;z;=Z4	sph1nHHdo2KB]EV"xbjF^s!.f%<W~Add3!ri#{twT7fF<$_F`R!\+_;ۄN̂"5P`zH߻ab.tU_f(֏MV$}'}Kx5ɾDۗGW6P "7cJ AQx\sfzN⒔48  p	cm"xRsf|[Fl  1xRsfCbbIIgf2ZlTy-	 x\oIpEp쳺fWأ#{	53<̰b?U>cX0~Wu:yĎ7{vB<H[@v#
Ş#,A(}߱#lZ?zW$ckC4dȦL|2bcX{0JFsGS!64Iġ9K46d<ͣhdZ91ى'}ۻӺWaW,xf|	L||Y Y#ӫ@FқXOqdrG9AlΐY3-$5:bt̀uo/us>E	#- ؔM,8"W,Ka˩A4o`3AHĖ"XqBF<Jr@'^&?qǉYKv%ۤOњ4	/"bY
pFbAH5ڳ*\bOM̗ @X(B@~0Nᮑ4s6U* 	K9B,a6;4}]ȞZ*Eu&<yȿbE)h%'qd?@1|H0;#j7'AxQ2HIaIKI8@9bfv؍NU!C`5T
y"Qv.f
U
z/TzƤ:]eAU.WO`i:?eD)tYr`9Ǟsw;HK6$su!N+uJ>HfB?)8]YwVh;FN7zCW>0El%#ҍCJ|APfy9Mmj.(qqr>L~ "wydrFJK/^dC⿄_#lI-,tL/N1u1:}ػ֫v^
֫EeZE,caكN#&y~z SeE&7U峽*3P1pt)ss9}|܇<5\{<=sp/036;_äG" qgu=} <6$0QQCf4zQo<\Nk%Rh_0[)y@Up\yQ=_L	ZR-XVL+G*x~a5)=eE3jf|)}=.aU%mKuo.?7bp`*L
;Eh`]^iIYP
td'嬨꯬sQ$ԬgE7%;<餞W8)u4xk0ׁTqijuuVuKZ"qkޠ~:k'6[_,b,,|g7=9<_I{5Yrz86GW^4y, 6o7^+>,ؼYݞ ]BB_+	$˿<Zshz ~iȂS)oָOԹM$V|V7FG^pr,!7'3JOgvr6=
Z-*ڹ ݁54}:aI߿f7_]XyKܛ	stԱY*ܰNQQ0۩HW%.9oX!h^\S?8ơVǍRcI~yvkB.jz=iB}Jk6sEe.%HUN,%5\'kD/)[=iTD`p+qn]sM{@>'|  P X7>R-!$ڼۯ[f{6$"g2qR5dqX␅0es3610ĂDCZvq@L-eZΣ.-mW)rW|]_)Q,u|8WP#ܿr򦤴!|fZj4i+sqEdvQ{ Rn
Ws!vtT!Qп.]OŢ'LKtI=D/muCɌ5J3=3Qt<}]Q\V6psRW |$zUMa,e݁匤,
3i`ې
6Sj3r j}PQrLOK<]mWRDS!:*{1*P&Naj:I'pdXƝ-H}EIsʻRKnD]N+J
#qHi		
Z+Ԑ &uP iE=dybhRsSWrPk.޴,75hupͶjp0C[@PF4ƊmN),]Π%-r=kӢI̵X$(Dɺ%bIr_JOS3	G'(,"֍&n2$OUoɺ-ՊfTHbv˓:SqP@#z  
i(D"|}r& gBI,-tyn؅Ը/Y47Tc:!Bv£J$aw*EV+tF2|NCW&0㑲6aWQw*ڨdBʷCˡC&)yfbB{ZlaZf\)$Dj5>R[g\s:¾J,ll˽.$vcZnO
$I.oJmuK2{
xjXU)BwH.XBo]]&$|eo4@i3P{řGi=fZ{gq z^fȖ;j1j]moDj5Rqӌe~ꀰ̏܄2/}-z`ĖUԩ=QcVTK G+m{NgAx6/ T[Ӈ))V¬;=-g%1`	ǝbf,r+TgQ]O2.9|iMIżR]ޣL+OHN!m3G<"U-u@-x0;J" (*h6xΕے&+mN6YK_yVz9l:h"wYiyұ:)c [!kQۻS|5U5h<pWI,X`X/]'Ky"H]U` GLy`O;(m:P:Ts	cbFXׂ0N[JڵţaY4.B^\\o'yɍ-H;4ԊڠlM6qAƮUH.0z:_2pzHp+Tpg:,3>BTwt*%_TFJŨzZln%`ѴJ병4xY<w)f£S%k+5x̓zW٘gH})Q4luהj2T/HG[m 0cyH	9JWlS?xu:qw</7jh# _Fѹ(	^Dj>Gyl&DɁ?tpYX9
~AeU
QY>0EРѳ*'r`(Mj޷ǫ*eUJrlܷg&\>.m:`	f!ߔԩH)\nP`⥭,ophك"L,M3Mpu=UwrW>Vx&(ުՙQcr TB==Rrn-<6Zw]>T䥭+WZ&W?X#Iqʔ}J.zPgp.]&YJI{ac~bh"<yBX;]V;wYÔ&}>pa6YMedYHlu*<'q:Zz-EN4T:u'%;-P
%W[#+-RoGY5[{"<=[BwSPD|UBql=M)uoZVF+oȼI/KC)Ă|iP{8%\i.N]ƝN1;U0yቼ_i iFYIZzG O<4i6%
*B#Y@tCػli/A9[{!؟S%襬ه=IӌE蓹6}x:a[?۩ҢykPe!NU>M7S<B6Ɩz	IiJ,@"[X<ёidb՜2$8)DuW<&@1MiCk¿W>}W/,oIk*}x/08i)'>	L743`3m7PP3Py@p@@Y@JS@G2UO+UOQUO"OYWhUOQS>ZUO/M
\ֳx]qb j`qbHb

/** @} */b]	&xa}KVNn` U e&j7JG^202iFC&n^PɳyjxXt@ɝ<$!\'\\{ira欄@F O5"xqNJs&Of|6 tT	46Exg%5X'Og [jǥ<m`jYj^	L&P,)JLNI-.QҴKOwKK
JQ4Yxm`` 
Z[),KM,ʎ//,:ϩd@&CS언B,8M?$,~UC	C#cMk$%Q2x
"#ss]oligbdnh5  AT#Zdi"7$WZZPS
6!U-==2C@Ry%`&z43c(7r{Bgk@&yh1ĢY933'3nV`{+YEVusGɓل'M2 NOxopeeY6yv UJ3Hv"cnвRfLd MƋzbbL<yœKyԖ:x3;y<o#>&I!)9		r4ǗE
mE9qCpxaJ&ey["+ktU)W_(j~z3|:Ҋ F""/ߓE;o/%m73`oeg|GZQy3jk:=,Xzu=	Q?K\EGAPoPԃsUTp}h/VqsF6t2R>.UEiZi!a*0ao1񚾡C6@<3RH@iS#A4ad8|vvO0,SXajNiG--H_옹"3K)vv]3;Hjʲ iS,a%xhLe5@bW$oksxopc"\aA&"cj#xߓ"]&'TXJ}d 17g@}Nx۹qB]`dx6;xDl8'˚ZL`	N-IUHOIRRR6XZ0,5&Jj(ed%&(iZå';K%(mt,@<]T600U JML-ͭ@d&eǗe T2
v`)vK\!@u&X*xȡ(z<jp97431274 br-4nEX+IOO-R(K)M
! xҼ0=L1f=cbjgi`bla35 <h&3sJSRlKR2J&YOȵAwd6g8'?L m
x8qc *!"xxx:D8-6'2gQRPRpHIU()JLN p)L% N- '秤Z)%j%`d{6Ɂl*@!ҒglƓɶZح$&:sMngPa2YHgNɡ8&Lf&*]^`h r>2S`S\Wمkwr ikIVx;<t;9s2*tFfIQbrjrFbf^q>dFO99 &B:x{<t3X%2sRJS2\zIsr)V
1y`ғX@&)j)M`7|h2'{DvɎlbkݸ'a,5y5.ɂƓrj)x敤)%BZWbqL)fg&[9&OoϿY# }IUx;1t[X3KRrSs*33K6aq fr6x{5t\ʙy9)
6%)I9u: X!_xN/Y7wq|,BKAK83/9Ur!d`ŲR+'OUN,L.N-*˜QZrC9es'[P.gV#UE k^>>d&a7{g2!E@W痖(eeT*䤖Mn0\i +ɻ#T:DHM>/n<UB8r&;LwdtIbo kf`Ld.Ǯ"Nqެ\Biu"` h9-|6ve$ *ۡz&}՛5%&夦hgL e*x]ko8_A_Ruf0X4IlN݅ ˔MT[､A9zU6Dq%%K3!}zlxM&7k
z]r=l}[l.H`/G+W7WKI=96y\`p_%ISd%Ѡ.'&v-0'E9ÙspxCshgŹf-/-Կ0:<mQ'o<px%FLq</=
Fo<ƙ1F(v`><E&5&WS2߮i;c8}?&p0%	>'WɇuPC]= 3FN)M`:$ߥ3@_RtgGĥޚU\`7[3s)tyv|/YzN#:y5ǨM\y`
lCaF0lE֢,73oQV	ĉd{G㎧[][%Mg.)PK 0J>h{[YLq2|`\229oL{P58ޗt4Ȼ?_b&$Tޏ? km64 DOF>kP9{͙MX|GV8m<؃Ω`rZ$pl-_jukcϚfV3	O+j/I.;&qKd\@ bf@j"-ϰ`]TEXQ;uE!RKB+0"sJݲhwSFP=~=SEl-!QD 
.vT5y8BѦ0pligl
 t+mJ־=Y:ƆsGO&'4İt`]!rˊE1Pe qfsN5E\eq&ņгDSplfX)KBp@MD"[n|! IreA=
n+LEXWᙏcGKXca( 3\cH'nNIG&Uuh3qN1Ca81`<͌3 Z8h{93/@$!/KKXA­]h%So+!7v?
5I&+laqܻF{i@iLh__C%/o@, - Miln_vp?MChTub+Jς./	gɇdFxaJT\!H"ձFNvr8j1KE&A s&A:QgܤŁ^ӷC%Fw kQJݻ-s#y(먣jMf6n9XL#`ԢF}؅fOVntӮ4/G-_uV*8Z
w
GށG _Vʪ_0tj]R<a3<jZwo032Es
VL
0C].
2튋QVuPn JKqu?K%Q
(3/?w^{)9j0ArP#׃<WaNw:[h.y 	:\ʌ H1?@3>A&.?
Z$Th &Ԡ쁎a}iw,9pIQKb> !@+<Mk催_KI6652|8Sdͬvw4yZ4s1=^..f%0;|KQj'm[fL'EpkJk4F<SߔVi6olaHI?
APY2z

h	(+0虐Ȅd~X3=3x{oR3;6a``nYi]Ed</0
9ρBY-ѲER!aR,$cU) wosSbzx,k*28c3ɉnv nB dViZ*Bj'rn&mቼFm<l@S~k,;/(b`RB}hlX&^WNElU8KX_i[hv2lp*ͪV
sEځVEw!tg"W޲
B {P	0/xfzAWv_EI"aW(j_eN !o W ~{<pHb:UѝR7%vu!\'VɮR٬~ÐRzQyh-E`-ЫIx=zF E%dCђ	$dVwhj7QRcgٮ|ZR&ers^
j|<r!,٠a]:
yPQMoGKʃL !߼W%DЮa)I=i9QAE^_CӐR6~ƃw !h]ͻ Tf[J1qn(@׋^ZWNvV{eͱFiasD*<^WHOoʏ[pジVho+[ 
RHOo[!uȝBxS6U#ρȝrTHqJj[A4ɝE1V6T&Aɝqm On!;ʥ0ȨrK+R)TKtR)V6*lȿu4rX8!rԹdđ-'9qDrd@Am&-NbpHN^bN3-3
˝wa1{v?~d2Kgmʣ\u}៯xC#1 xN6!|:K1ChPl($JQ1˩x|+WOsHy|,=*މ`ܢx蔕f|*:=eLB#d; L:N<.eseø	oQ@p7O|8,ބ MF!Xdꖿ$9|'cذFnčqvDq|ur6a$|Z|c	8mhQWhZΞ^᫠LrىoGwOWlMn0]k6Fm<}ւVxjQik0JBTI
Rp9i.&s;wYHnp'.|"LNliYs7̧?VM.)A[P80qki=g~v5v޲lSˏJ]ZXPea%F@tDPB7R7Ңl/Z-S=ػaDn֎;/I = <5bƸC]"XWPGRI*_'\ޒ&:~F'aÂ>j5wFBImcbc*fJNQS;rhe-,~2TҒ(j2q+|K9Sٍ?'sJzF^ldcEZCY`/_-`D,m,:F,U'["ƘKfcᬟ]{8	xMKQI%,>	J҈8BRK(h1\s;Ei]E$#^KaVϜã-<IASuj\CM¡\Ehk>\N't&LRP.q%TWO)n6g0^0:a煜c1fT7/%Dl/+dKvTD46/ʍ3,caF))aE8A&w0ԕ@kEW]TD'd}V2gH8)5$ߵp*t,!x	Eݨ ޼YNCzpFZ51*(>q~YfBFݺh9:,~BmǹQ0ztE%bخSw;r"OlWޱ޾4G+o\+>3xOAC)	*QB4mMmm1vwڝ4)?Lp7/E/$_7OBI0Ώl_lʹ5hmjVUjA~t-ٛ۳s] *-Aj`Ob[Dr)d3	hUR$<f;޳앷;إ@T/wLiؤ, xz\$k1mǃA?A0^p=U	9WVZByue|=À2tZI
9" Opm!X+Df"&L`4O*ZT YAl#	ZXTsͺd1[u@Q;UL(s,B"lPpyj@PF&z@WvJ12p]5p^@:,PCM@\]XcN
Uղ7~;Kې>MOSP*|(1tđЖA^EEF=ZL(C~Q:L,Gx"ThגaYq#*fD݇#o]k^0GeiI3)G1CQg5lI#.2\3ٗ*l}PU˺J^gQ~O+|1ηY\#؉RCRp[E86{'-A+<?J|WG6@n
[a5Xc%SA!ͻn1(/DjyXB,؋	6|OBN*dv'+mc"xt	LYR6'0me\2f
q<E'O>hGTMuB_LX7{EM6 @tx)CaFÂĢ\ʤĢ<T_P_=Sd2y6S.-}Y&g,f$@J(xdcՉY70O Փ'pb5V!3$1/9U<#39C<3'9$&qv*x)d+d+( ="l\actdSKpdGv)U-:@(ha5y9l |xЫ!ۦ$%)??G/n pIjxmJQ1fahQࢳmtSAX;I+V3gg%u}O@A7'|ejܶK'c''Fb`B8:pT~@w}gaa+*4WB[.E{c65^9QG2ea|%}T4y!i `bY2E<2@ @iX4\i[8PӂBX[L
tr/R}MsBI\)9L.n2$yi-*f2ѠT/Y<K9wnCxYKoE$?0N:!$f؍9Ĳl^$!Hi{c3c{#	W"s+\\"3;^/QDꯓhtwu#b#S5HM[Qn[}J.gNǕRyeROh%n]?zk;+ju[>8@?COqs @ǺQe %tb;l-}0sEOs'uNL|
^_\YRrB0CF.#ep0)RT<
{han<±" l##blMqqef20byN?Bk]rq[_&ћa`|<_\Ťjk` LۦOa`$fWp=b@`zkb[@x^@| y5xCpZvH3l2`= 	h
 \u7^ϓ:C\YbyTm#crU^MpN$
bO5ò%ֲF_mfo ]k-9(yZ`yfp9 'gKDm9囁sgWHtRwxيUFJCQq64l;bG]GYhzL AKVclK&
zchjkPhU<Zn2@AgWj.MXX5RIl*0°&܅q&6mpnTu+3Rʌ@TQUF%wFF	p</&s_{1O?8T6u3ZH7'/K ӃIdFy΂Y&Mc-pdC-*k/N_fRlǋ<G.@$nax!4i:$RLm\y$Va`7@P;@K.PzKmjM?Xe>V۔ήT;o2:?(uiu8>OtStd_TXg7iIK`3nx1xwx6
:,TGO r'ĕ;J3GSpYl`{Jxs88,E:]tL8[1l,`8nu"i /1WĹKXUg;'Z|
ZɮWcC}Xgӟ_Ȋ:!"z0֧9NLo	[4BJc/H+Dr}:;+8ϓFL,-L ̀ðԹU1ਃpC^?)8;];0C$(y7ػF0~a<|Z?$RYWtCaX ~Qz G$>HNtXxٰ)ab(7v2	_?@Ǩ+tNK(8\'-kPIL}9L<JM2PF$ |A%KD뿰imU=)AA~`^{}jiqt>kz w**w?K	K|ןvyJ=+P:nՓ=0=Rw'0O&Sdb&Sb3RT
S)M'R͞O$y M&RcMЇ4޽D+|`я>y Χ]x6t	L0meĔ 	mx6t'6 4WxVjA$ (h+ZhPz#EKd1iJMu2;)E}	/|o|@IԐ^xא̙oᯕo7L
DG!`Kʙ6u2/'V)|ժnѨZqNxX\XĢ$R|0%XO;&M<ZveʰX
V,&bi	w؊<baՓ|"RLQ8͝872SKĒ}}
7`X~tX1%.	>.nчF0G8>Fq	$ԍ3	{H3%*8᪕4R|#df<=bj"2~Ěínx|hVFm}
G.%L]h6_E%Ao3?2TF1V3f;łgvh zJwi$	]L*zAqB7QgDFOW*(:xҞ^ӪD٩GT5mGn>i+;])oO3I:vf:_ՅQ)9{l妱ۘ-/布^1ق}\6B >wR$mU7'1~''NOoխì`'xWzC%E
@B!5%$H X!9?473/]!;R!,5xrG7D";,XZPNyĞLvPN-qF3|r"ʬjZsM('9YLfn#XHQ;3w>c@4 L??xW8sC"RrX6'	Li
 
&xVjA4OMB6kRb)֠Buvwήm#<
OeIv'&mJ-ݙ}g췭*~]Z98@,z% 爙8+m09jZ %<d
f xd-xq>۫ÖP
n"VmtlVp.!7Jb3¢6xtم5c=dǌa  Έٕ0&jkhT\	0
`Y]WM'S%Ub![RKjU惕,jE<؁Lm{?RvCc+)^Ȓ8fhυrʵ̝7#m7VqfJJJO>a"<*hGp^GD6!O؎u>1OG|hqQ{<1Odc,S\=e	\;3s܏巳GҚEXx02e灳mR11zQQtzYjPSSI)v1q:⨮(2n+r"an!jjELEKEN5&өfz&+L-Ա))+%u\VLWNV,<W0<P7CŊ|D7PfQ9!MQ8IBnh=|xs,$ 6?@GZ[agNGnK7Mq8SfeRy}7q$/WaF3EwHE?dQ&zLCzis(oc3jH˩G8,J'|zcxXMoEV7$J	dJ긎&BC-&j66뱽zGS#UA#'r)ȉ3NHxڡ%wxgޙM7Cl`P5V%h Cb?t_u-L|:p0߸sFGf$>N1ҌԱS3%յl*iF$Q偩GD!12~j#g	Xh6p6 2++.ki'	rcxKz
m5yDR^_"97e㷖V  sCEr䏥8|<!ۣ:@(YUn4K#REV931|GGs}1`%Ex5Ӧ@` 2z|
}	̀A(N7(<]%?oGR?.ai9ݰ<{\ʚ8F5 i	7!Mm/dЎi
UV]p~ԂQjxUuq*|=?KMjFEZm93({m0*Nup[Pz4r'ħ&P
{xZ\(9Aҙ7M6tE5S/>v~Q.PҳwN1{WÄk塊xѻś jZ*ԭ-бQuj|#OXKi(B8QE9,r	F#C"Gzf^v~}5E,gLa>(9Ɣt6Evb^ȍLaOj(;9;I"DDv&\wIXf][nAک`c/!$`nC޽pcXC;% 1q;c;5T+O[Y!ot6z=u	Sno\߮#^J&|dZlS,<MbBpaiX(	c,ɰZus"}h(WJg.5nW*dΏWS  +\cg`9	1W'bA Z0.qL΃DƊX1*Ry6TGBDQ.4;2PtݤX C?]β\ gئw\)i&ò$~7)ws}R9ƌ=sR6NbB/G'ؽv2s(6ꓯHr{~ֽ@vxLjHn_C),,ΦKx6tQ,e)D XH:GxSK@*""j	Z4ԡE4vµy56.W?&U?QLiEL/6:؈ŢɚF3v
*6-^lu}L<'aB< ]bV cFp\Ρܦ!lw⳯alsV/:C!w1
F7rCE	ڔWysMضDL(Ӏ-waMOQYC].2TBG!.!+CŮ.ndUWf!P.n&*r"zN@HF}M\
DoFjō79z=}&Ih-ۀlk6!,huDUH՗(DOd]ޯή@v+.SA>3̌ϙPIJxTMkA4JZ-E$	zPM6ܷwuvRCY{W=y<ĝ٦MZ^03ϼשowSI-d[F__>nPAҡ$dE?rG2%s1#x}N<OHGw7-iw#2Z:?`a<*_N(`_K/]%J;"4' 	ÀQbʠ2@B=F.e.@<18=I-A<4@(˔-MѸ`FݳXCQRó2bs@b$quC}X`$ vE;34vrH$A;ҕL~"|;c"<V8j̈;IliZsٜ]qcEnƱ,2(F8j]{ۭNYݬUaT3swj^jDv4`Bdl>=J9-zt&L_+
v͖
79\J>O<Q̧1I"Iӻ9Z9oN_޽{p4srV^tkxUAk@&ٺJ<iY,RCJ/[#m=av2iv3a2Q{ZG҃.(!x$΂CH^^23izKW{{g2dɫҮWM+zIէOۍzéZzi$B1(sHQ,0	MF6O\p<d)h b} ڐq8vY{(wē9}g11B؇JQ\@.q`~\S$]ċ)q8^RjAuk}70@9jlxJ,B*eM㈃&VT^Dl13 4L1߅ d2&Y>qInPٗ9)퇣*jePt|YymaIpΥqi8|<NIY{qw0	鬞*,OCkV]K*	<>L/~:?1</Gux^+MQļ3<~rA2fSoY|-6G<6UQs刧Ei97ݙʦث5g;ўw8xkAiIgZV_جm/Tz1FbnAIv4ىmś^MԓWAA_GOUsHff3/O"Ov'JttJC_yED1C]Ꚅ]Y*p52ԗ\ژ#>Cm=qEhj:eE(A8l(9/JؐE]hB2Rb,4x?{wS%(>Œ&ѹyFp	:tKd*zV3YR?O 1f@sF%Fp}0gˇ39B&7hhAȪrnL.7fU5]cvXxdHSNŌlM}U!0+ֺDSƿ?QU
TSNJKblqB]d9[M}9Zp8^2佈FDP;Q紮@dT.8PA
vQf~<#3c"יlЭMZ'\Zv򑿫:`*fR9(gH&* zP&2*pLsm tsRcpI$uK`O^õo_pY=o!TíbL1m<u@AVa$Hz`{$Đ!dS}%dSюUf|]y˚הԦ	GwYpE3?KyaUġqPSEm!d*'Vhn%>-Ty؛5Fn*p?ymKz;_F'g'BTgl{A<O$b(RqDãcEѹe%cELRB$
(ۅKzPo(GxMOACi Ah	M(,X(
`KPiy)HlnhwIƋ^<̶۲ؗĤI33O۽eGf*IF2Y_o~W'~/R@A,EU:@VD>&ə|IஆDIFܢp\JCj)J*\sZ` g@QB
$K )"^3H%΋LsdjH3FpQP8e֑~+  >\7^&E9(.3hy|:*m
ɯLNPi'S@CFA-.Ns#wpb+fj]+Xȗ /BÕ|i0EjPF0b""u=?	Im`y<N7vf
K_Q@>pAL͚fЀ֘XU}\[WŁYvHq9IZA2jԽ5K6@ w^ĚX[?6jZ  8&.<ph=OM{[l4\Rk\ѯ[FP!.sr)bPrtRokDz=Nv M^4"ˢ!c4jдb}cبipO܍<؄/DZڀo/Xa|zK#DlnT@/+B$3&SJXĝ8}"=DE%lT5kǺUL˵!ȃj-4խj'*WlrHX4:`4G(*ɨϓF6_תVxTOkA
BIEISqAS52;tevCK'
~ W{Od٤)aw쯏__
擖uǶmnlRϱ=K)O8䀎)y总/F	??m/ՙOXB΢$X)!XpЍIpb\<'.hv"~K-9Z~m燜0҃^l)XJRx>譻\1\|~Z;aY;7ZavC8mvvxV[tp0Pf,ϋZ9sKsS9M8TҪ#b
5T+dea0D089[y|DuJ9,IC0fRd5TMu}hIoEG_sK7&jQM҆됉Wsm|Ct
rNw۵|Ր[3j7ʞxVOAOi/44XQQY]mw7)0&^osɫēoЫ^=ALwg`lt{~oi̛ͶK2imо|>7m>lO b+|]b)D3tqM'ÅP谦CnVH	lX9M_1[fh}/'ؕݻ;ĪIłJ&$Q*EƊU"}J`KEH
^ΌׯGwB.sձ)s4RX"P3SCRǇdAD`7hT,xHEdmԮ,i#ǩ2vƶ2%LKXB +SD	#)7|v;<y^+fv	:'Li*r+iXy7?V	W.jZ و%ҟ75.!.
GVrIB(X#e\y>-p.$
bWQQv7]Zm읊%qg񪦫Fij+ݕEDFgښSL-:8!?s-QJj9ȽCqѸK+Qr1.lp|Zr=	bEpz*n5r#ӉyEFλ5ԄB9dLzn,OT!<baoRɔŸԴb|B@j˰cOxιFKf[ZQ29JBnl6RnLH(;Px@}XL~=7N\Yg,TkT|%⩴苇\s@Tܫn{3&Ssӷ0ެ-L[iruav룭Hlw[G:b&ьlRxoEǉ*jDm+oXmAPEBu7FlVUwg;xĠr		8qEBHHK813!v]){f7o3ߤ<72݋Ww{FJv]871:c+XY*UkVhw_ROѠm"|K8=ſүo]4~HbfYz2NTJ3qaaբANO'_'1g}.g2yÐp)`g[p:~ֱ3^"=8́X>ۅ.i@\8kh_nSUkEI p8޳NJecȪmvp~:dJ*ŕQeF.W`Pҡ04\nnHU꒧:xnV^_", Ƿ&ӷÖOd[ a]m&t:WR,TnЃq	fQyTm ݸKW<W}\r܋Q1sz"0
LHϦ-ĩCp<mbgT)FE(FN\*,h'|%k-&ΨzrA@-9trLm?G[#P0Ոp8 	<=󖻐`ȒrOёDTPy:(cKL8!{3DY;ok͎&V^ߦ.3m	}9WZ!Lnx/YyO8^_7rgʺ}@nLj(gK~F٢|aSN$b}z(RKDaW>ņ+;`3o˘ԃ|b&vm}YW m;lxSAKAQJ)(%
!5kR,[\njrjd4YffD<=9KA_<68N62}#w{[vmVfUbHIg~@؉BQP8Qb(#¨fuSkި
B4)G>8f\1d_5-q;0(T>ZS)$d|5!ADdFxGpHQr@QRABtӞ
˻fLS4n@u]om7EnkBS}8썃q,+fU+SUx_58ϭm^{ik[B%83$J~,7
!"&A]Fg?doQΡ!Zf^ɮdVB]~~~m6-6Pu4x{3t+&7Hqg+奦q)hm>h !cxf L0h
h0@	/H/1$New();
/**
 * @brief Delete a-<0	1Ef	2 (m"K2YMRx uNjCL}6pq ^o<"x;'uBj<Wq)oagq6Z 
C6x#?G~C0L3'2mvd Vexg9rC0L'2%mvc  [Ck"xg9rCY$g1 ;-N:x;e~CLS''1mf) e=!x;|ByCL''1mNaI a3x9sCL''1meS  ^zUx9s8R7rn.θ_<] iZ*x9sCI.bԒҢ=.3 5},x[OAbHhM
,o
!ץ=ݺ;E!1c@L|#h~n(MngΜs9s&>N,Bhvz:83N^7v[v?{!bJ&#	6PaL#_>n|sxO㕘i2͐\T@8@3- 1*g 2#HHXQ>.F)%A^9}~ژ砇zY$&F*ft(k8eIet.@Q6rfg'4
_o<%G+H^˱I;`ri>I|w{vMLFG'!s@cv]dw X!3X h*h cbֆXw}M ߻=&сUEIzVBgu]s4ܳjVR{?@JlxCcԪ1"#Hn	h䵺ܲbm-q\b@.<VMX͈~sAHl+BRU2'_.:ŀ0(M2<O}xS*AM3ڠ0d6V56}ݤaQCJMHq,)pqJ-%**ɯNKW9V	#s7?-whx|]AOsQR@UJs'_F)5eiLr4-䯳DmQ7r(R h Dl;\ѷam(ǹI*7+= %kx6Ӳi231o!B(y_x;`~!x3RKJRS6f{* >kwxe9rC\] asx)AlGqirrjjJdU6'I.-̼ļTbԒҢ-l[Y FW2xTn@.UesT~ 5r#j^
Abg&dTgQ*Ê`xXgg	xlV]e3wνks
{V
/\I(eA©b	ITcoE=a#<ϸB64esϔ^$GIj54ޕ4)Ɏ۪+EHC 55"|(,#"LkiL,i+`A
N8!^AnJNl΅!7A ኅyK:c254Tw3aڙ.snsu2<Yl+F8k.@J$y{~4@,*#_GniLC\J)ɴvVVn"sgT|W٘7<ZF;tTU&m7-yԲ|Ta '5[Mg`^n1T.C`~KЩ~[7/O.xx[bZwRϩ\e
r~xUMkA&_m^ăQ-mlx֔A4*xe3nw YffRJ@qnՃG/޼8 į>;|Pְxyx0jn?7]έmU+zk>l;Nz[=W29qCnbH2wHF(}WFջܮbQEbų1c#ԕɥzL<$U d;&bN1j0w@s09_NzKt_%Ea	?u]zUL !9 ]n.wZ0D1*&U#JƓqy<8V:W P3.ۋqҥ8oY=䠏QX퍔Fki7Ҋj	,<n_7N@H3YuNr>if8Pr%@A :a`찗jfqLKʴMcVXV-x/i7~8x][7e;cmlgS/;ꓵz9{-g;<`Mx]kA115 QK)~ES!I@Md,PT0w^y獊 q#/zmͶ=y'ȏ͇utV]wVjuf>U:-MYܕfI9ArF>@J.j:vW}Qug)<j=K?	M*QW3gU6wĉr&+s=Եnùp)#7#+H1A:B֒KT;f :5u99P2_ P0t[IbYJ^\4}sWzS)(sHqI`uHF
E+Jp` @1[|r[;ns155_FR\'G&Q/dH	W8Z,)[G0&E-z7=<A+Qˮ{)py|R2<zr˓dhby\atnSoKUIO$Y0xۧOyZr\w0s)hm> k!
+x2it>ri
%
E%y

ťɩi9:|t@bE%Ey):\
Z
@Eũ:
~>>C'3PQtiͥTZ\R_8QTw+?ٟ[t$C)o# 8DxVkAIZ$V4-Vh
4DRBئlvmw'j+xɋ@OMBj{o~{o&o'RkL7jr_w%jW|ʐ]:\&Ñj>ʧuo9-bZ@l `~'CgP4l	]"C$=DuEoVV'Uda˦U<.@"ɽs㔳Fx
$Qw0WM5X/"q^U8҅#zL"VLj@Q<鋑Ft#'t*	|Z6P#;۟Z܌6vQ 65x(<{l6:p`DP*f<pn`l Tcr:;N'ZX[Pn/z*aC#U6L:^+,F{;~^/hi܇z<|D6:-JCKiY";+QBF(ł5Z@njr@5KLchpM'Waky7
kGmpP0pE)hi+۠Ucfq{&M
U'(ٛhWxΎtWy
>=2@8!с)tN.Ƈ̺j)Aچbiy'RojSj̼ZcVcz3QdDxco1=FrD
"g"<dFP׀e*ī
7ȼtD\*xǹ
r"WHrnx2dG6m 6
FaxSQkPm: cWتcMe/1mN47$}:DDOG7]mV	||wΗO﷕ZR x* mڼ~,[Ԋ^{{ijeLyrsۆM=t-R1KJEpBa%H1K{XcC|fC(#m1&C:,D`3*H\fٛ5G|i5U6k"GЊЦ6ͭ[c]t@ȁFc@,>(8XݐxMg0";9n֢jt֬.&B+0,VW3{뵼ܸǗxG8\39$6(PgK^ ͎'YVޮfg8bkFdˀQ#ۏ%H'3
}2/`f4ѷnym+[-[߲.g|xU@=a\QaFckcI20lilj;QO?ڙ:k7¼>:]M#{lQٿbމi<#0C	b`!/%3"7+~y-R1=SqN$6`G	b%>#*
q4$xjWOycز=F8$x75Q^|(APAJ%Y1p8gzi"ŐydS`$Urſ($eT'V^4JL2#I%fKHxk.Xv驣sn\*zN6Xܕ]>t5x؂yy@c)j|yD>T)!:
GU"08	8I`~<plj0bu  ,o]:3>im!?KU*}#hNv}{wp"=*xWMoA-Հ_ԴվFIiJ6~Ĭ[v]\"?01s5=xğѣ?YYhl2ϳ/τ_!{/z%X|' ]P$]3='2Z8#T*%[==o=7JA6 onYU
V5ϔw˨BySEr:p|	*تqB^YJ"
2 aO-0(;=$ni 1T#CMЌ
V|nX<Fu̞fշC	2-T0 4%g=Fk_H鄜"6jSb1Pў!sNdqiz^E:bB"':l(!vAKPtz*Tig6MMw69 vux߰UDٰx^vB95  W	/+ukZNA+Ȣ.	[UgZbIu匍P,-2nKrpaZ~E;+yss7&-0HQ\.iriF$v7..jW{YsNm4im
l r6-=GpLiW&wB27hZio@}CCq;d昴c"I-oa7bucGA}}@P<lޝ}M2CnZ-F%r.,j듘7+۽Y 	ޓoc-OȪCAtD#Ai'^9sxIa}H=ZuLcnӵ=mjo甘q!ϣm|܁_韦;ٍxkrBҧ/9YͥbD:*<H8 9:ywxUAOAMK	Z$b_5!Vri6Ո!N!JJƃ1&Lt[VЯoޛُ$F'18|XU/Fe/b1/cY?ĞKd)Y+ik텅r7MqO}GxQQDgRA@m)g>p	x.VmyHO\]{bqwk:d@9@&ŵE˒yT ~۾&!2I% 0̅~nQ!\v6 lYI&a'Hν u	}TKk6ukr=Xg5	m4>j,/u9тնdtȊ37ǰgn0RI:K6kWr*WzT Q6),bB+q'Ӥ&t@Ruޣ4zP)aEaM$ΔTېRH(@3x>	˃a::
IT\	>cwjscձlċlĘ,HCgiiok)1>2!ҳꢶDEqĐ̅C͕Edna噵fJ| JSxWoE4@$uBU`R$i@
Hڤk[U1JC7qDjЪB!'#ܐf֛ulԒٝy}yBrY	u,\~?~"~LF{M>O܄<\G.LswJugGC>AWT,j{T15rDe_G_&ԮJ$GCl(jEݞa$%@*+ެJm"2CVuZ=9r5hMzӚ+5IZ
1pe	V)F*2qO{#tjj{N-D-lH.L-pɥB [kP9(h Vp&ݨU3j:`: nBaDnxZ"rS6Oȷ ;f<̻gDȹ5")6}p >RI=K]mxNgE<gˏgo\EC	Ԥ0	x&.Sw{`8&[.i)A:` ~B ~29iGv-os*U}@'iBBtǃv'3\vo|j; >U 2U	oY0uA{g(E]}'dq~ն9Z4uO]=j{Pۉ10Cn̇JF<^&Ĭ@>"(;wxz}}yxF1?0ʽ1߭=X=!	Au<p;<=kRI9Vߓb	-^:rN3l}n^GE2	v,V0E	
pdE"
kjdY;WAx1`"pqVA3Fx7ԴSrv8~9֏́#,\L7|A-C;вN`XKQ*aFM\YMIr8·q75Or!LCY`ڇBiG)nmY+JJ_[%]T
Nx[kxb&;_dCv	ԢɂZ

y%
%)
yE
ũEeɩ
`ۙb9LPɼzlTif=0*}s!'d  d	2x!$M3M$#U!(5$3?O!X49984Gg2?H((/5EKAK!<8UG/!?9]tr3ȸɳTًK+'?dW;y+$8V0P.y+;33 3E2\OAxTMk@vn9Ҟ&NqKo-%1ĩ17uKWb
	czOvm#!By?qK^q4zV:.~{T
$]
a*fR$JiS}̽&(OЍgc[%$5hc%on}Jb֘V/YM5&t
$9Ē-AOq$ņ(&̋|e8&"eXA mA&r"AZHRJ-N;!I 
͸//@r	2tEmϕE?g~`턹r,hD]C2<YbkFO<۟4ͫVݺ'**Q 2;&@$1~ar|N$6چuis콚?jM^ZJc0P艛xӔ2Z+Ο#ǚ0k3ᷴMsN{KO^`+[A²Bx%Hn#694TĒ<b/u@bE%Ey):\
Z
@Eũ:
~>>-ٜANad/.)ʯTH<|=nv`͍3 /R x{$7S~C0{x)d*$&d)%f((d+奦(g& &2K23SJrSs*'GqO^ͳyv %Dsx)?A~'6Ԕ왹&۱mf  e
 x)?[~9⒢9N G	Sx;a7~C:gBIFBrQjbIf~BfBqirrjqqZi<6o-XQjIiQ^jB>PGQyfq_B~v$x&Mdll%E@Y,7q( y4`x;awfwM%2ٙ@=r{ 
;x;4AyC0gBIFBrQjbIf~BfBqirrjqqZi(6/XQjIiQ^jB>PGQyfq_$ɽ|!%e)yi R'?c3f/.)ʯTHjr${+?y.Ú Ad8,x[c&gBIFBrQjbIf~BfBqirrjqqZid6w-XQjIiQ^jB>PGQyfq_B~r"QsEy=CR+J2AjhZskiqH*LMSpI-.)ʯTHp?V0huS~: \,=3'x{1s%GqirrjjJd7`=.-4TĒ<̜bPbԒҢ̤T\f^qiZZfrfj^Bnjn~Qs2*l~. k3*;x9sC363 G1IxRAKA%CCAQ1;쒹{Բg+;xNuбK/ݿ?iTv4a.3G[u].(VUTao$ej(,)ʔ5Ksi8>hC=U@ƈaSӹv(Z.>Oa*L<\o>-ҽ^^GcP#hqlػKqt6Nf%h
/(a7S%Ćv$eE`4SLoi>G)fz1giw]I4y6,V4tBhx-Fz9Qm|,8ii!7f_%T=RJd?:0._, LxVOAN$ 8 Z	mMShJvw;4S&hxf&<'pųqfvݖP	x=Xp.j6כu-*T$@bUi>FB6YHm&[i7*Ї78ا-[Ednci>
P;֗6ku\bXRAf b3F_뜅Pl\v`KWS,:R5>3b{+'2B6% j@pf#G<Hr*>d@ hAX~οtКDCȸ"B<k?!å	MY'l`}k@G Sm$lq`t8$஻"U|21 rd=7KrB9S̺	pLӣdyV ['ɂHwrGtC85$H""rRΨ+~>W]	xҨ֢(5a&w낭uۭ;!{p\?(':j)J"ߎ;sKiܬԪ
/:u'lZj) =E~fE'gK0E{gmSg	s뚅^2UUe10#}+3ۏ/ˏ';g"ǳL9 oFtU]q;Q#n3򛏟xńmxMkAiZڴ))ZiTE(6%6}E]٧d6NZ# 9z^EA#8/&6)
,^l~-|7s۩²^SKo36p\ݷn`ir^U+ԫQPjT4+h! F^ALqWkUL]o\~ECe=C]s3U*|p)|U=Ύ/
؄6pI6tZV]iɪaX,71ݘѥDEv6bU0L&\KP1f,hЁV
s*.Jw	&
C(2PLl䨺j䪔+8;824AրvLth;PNbzm^ h\lG؁=Ή{l\8I8 3۷;Wإ39F{WI/p6uE,̏csϒh8Mrq*gvܓқ<LZ۵,ӌ,-3m&i5g"Ѹ)I<䗴<H1nR4#t>0nM(TPFE^ E^ǎ;ǳ=/]u# \aw^anw
;4FOF\1nB=FGhwɎ>o$%@i߮/߯\7j:S *rQkxTJP: #*2B q3֊&:"lnm͋/7:](Tp@@\w>?$yu@=yLql,rY^e&,S3W,p2*_!_ P\?haK4܁_hX!a3aŧk8OH5n[8c{ܳC]
6+v!jDBP,L>QˎIpBxs*(wK)iXsO,ܖo߼>=p495}	H8]f@u aVQ.fT+x35yv.BoPDWyIѕHRl*zյ|xbvbʂ߭?Nz;ؠv7JPVVICSq/Nm;Ȥ2L8ˍ 	JxoH2(lAڤiN(*l.DYJH{AXMm˞.7@BBz=q(wpAZ0&8N 6~|d-|8-,ݾ^*pNRLLZv2)ih\LؾZbuKTn	F')h-]]pkXˣ]j$οܠ-,&N0πGç5^jcp8[Z
7$s?k-qKJ;vlYZ	Hrr6)''>HuD|߳h,SF,m1!*62#sU;Vt(rPK$(Q<Z4|Nw=&Wv&- ѣf#+]Ed2'cn=i(n6&~Ný=]50~uQ%Te_MVe'^<g#'H;;T\㪷b6f}>15>Ĺ1zG@^ourYc39C,  ɉ[o;%/q.]Wuݦ豠b(4ۼ'-ˣ9ѫ8}Tt#kV5͝09d6FOvj(͘`ke_kE-v!.9{$+t4exM\WIB2&TfᙝňS&#:vQl&X]I	yPq2톝aK8϶VVF+~du?x"*uXh -Oa+pTH^n= =89D	LIhW.ui<Rj[㙉Z]i!NnN:hbj^l}gmSJ~}rw7	dFxU͊@YC<EeB13=dwgd̀ S4dҡqÒ˾A_g|>govwvQ"mg\ϟLO]q{t˳?_{._X;xc(9"^1U`)BD)Ip,!cX:JHP89:S2mPi=<2A_`C	#ֵ"`2L&AAIλКYB	4xE.IdPF188-4ZC)Iuis+UJ~g=2 는-[CUOw뾒;>8S\cZY\%X7ɚlyv*ϔ_2_;JIYdu=nV<B8|&m5`}{¹&^oPD~?{% hSx#0-Zm<ߟ7ɿ_gw]X|;zݙ|W'{o?#U#CxY[oF~We_Q
Yvn=	VM}I'˘Fklח1$ƬT9}:x\.AMMއ?z	Fe4B+0YGfP,)(iv
h$asO_a
6'9EÜEdF,|͊قp%ɴP:@?r=n-"c0X@(O 󁡫tϨs?%	)jkH2ŵ"3Vxqy2/AFe"cӲsN;.
bPНQݹBGYm+,TtWLt]EW!f\Tq7R8=IPҐYvŋ2XPX$4Hib9f%b+VϑQH3./{p	_٬HYRiYiLfb_-fːf3QL2+0Oƥ`%Ą604J;g<{>à3MJs?R_5٩-sJidt4Y֠y"ֿ1gE&G6p6yAW*E,5fۡUy[h0oC2kd9nN<wL04}WzPs(ӨO~/0/B36e]j|xO7$fcҔ\4.Wdw0m%\̷}^Wqc*V2Ӎؚ︊9i뫎K̅Ө#]d}Y:꽴8K$ƀqVg:_lF䮧{t&DouEL4&cp6m@?ߝ@ȏ!VuwowptNBBkGMts w2[gDT"TY=YT5{]nwM{MpIch֣نf l|C덵dwV(!Pʋ<GɄ'GbL^!(Y$+1_1iUJrGx',8ɚ<IOI̳dSSpqIu4S+v>6n4צ&Uv$>uZ^Աg$<~m<d7!xDH'N~bWS\"idchMIO;V	Kx<8BX;A ylrHv469PܕQmBL0,jwY#3.E}.ksqsc݌g8h8iVSu.z^ˢTK{unT^ a|sβwK[sR,Kw.V[8<Q5lᑽs.xk]'JTzcX$$\Pzq	PHVKߠ,K25Ij\.)L2>{Bb۾u_ŴzIgVąО[l4-i/3V7,j"(2VGDv|>{hFD00_hr&&^jo[3uvͻTvW0bΦ:>9-la٢ĝ-<[8U˼	ݩ1&L"K=ږa#y<ti/x9otǳKW]%n{L5тPqExzi!,c=Zӄ9?t~"9|4۴.y~oqj~5j(*E~<w7N`Wwױ6+C&nl6A{ԭO$j|kw-Ovz / [-w${<R ""gيڿC<&wxkujt!O_sp R xkutCB?' F|<xH :5SLS~Qpackag[is detached_rx;jzrC<	)(dV&'q)hCqf^r9 *o<ɂ"2&(Ad3&/rurul/,5ـ>_`WK@@KL{ƣR5<BC=V59KQ!ARU02U+(-M-O\ʙi)i
9œKwt4x;aztC0LuØ<7K ^kVx;att q	xgdu쬓xr1ɞnp*Q_8[H,N2$'s$^1pi	o$>pK%ClQ )/0[x{lrh$ɂ"X7_ebs62Cd6sdܜ=q iV\ab녅7;O~&:y+lbuD7On``hU;ydp LB#lxxdt]|R, $tz	x\[s۶~$/ƕӴӇ̙hj[>N4	Jh( . ^dʦux&vD|]8'&ao؛dgFtO؅	8(-BPd,<?ȴL{}Ɏq3ճ? M0k4f&UK`4KQ!6~s40)|70GҘzp7O/d0nzb5s)095K2LL3iZ0Df3dBM&繩̳Wָbz6<c?&	u8}3z;et8јGWgptY7	#ާJ lJԦQc!J,K:d E-)"[IV`dbtG.C|$,S6zC?_3)"v%72̅"J"uo>h؈,A2GRlyLS1OdXsK^汑+J%,do_҇	9
3&2y&.ʙbc+
s4r!&AJs&-E<t<ODcIҴMfgQw=};goaĮv9?NwʳJfsXY>1hR zh/PYƹG=y\PFިco0Hpm-mJ,Y&[~^ߙ@PD$2 3z3#[Mhsc~Jd0=~A3;U@(H}ß?O#[MAr6y&[6%ދ '"t 6ux6w1<]ƽ[6zVVB\8NM֒l2MlP0!-im]qU_t
Faj@L/lq1A_gk"I̻7&"HBmAԏhv_. _'/`axOY8fL[PARX'P)iȱ̴E~D%hNAxsv3IuYrc%w%tV2 [#'a,lbF7tŤ
6X>
KhOxTyR(uv<-[;U75!dHb'ǓBi"y53BH4#Rw>+;dBy1t$?dxv-R+%bPQ9<>'(j<)P+ZkD,<[^'IEkf1{;57llǒzҞ@3hm_T߼ܪ(y$Iȸ$`?Sk
u*kL#8,oy,PQD:40ADX)'D! ܫ2nȤr[z)_`d<s[sp6	vw޿]FհDۭ;PO!oݭAuVi;puhUEGWMC~!d_muF
ם\o-
A|pf}[GgzTz!چ% ΅@8YwBNފ磧"lP\IW@㶋)M↻(N־_gv@³C:$["<ATn`I ioapJ@o˵ݭ>-E$fa$z21R3kpV{6XL&iW{'k\D;Z{u 択n$ZX6HM|*/Mx#eMw|Z3S%<:!o=y^Y)L?5эj;aOTW Ņݻ'j?L5jO'5Aߪe|S|蚃뚭C $^ u
,3L&Hjn02$r T y\ׄdjO]R/@[65+U^wJ;	!q4|ܵNpG{@Ajv%2p0z)e LM>`5>؏ g+E`Ҽ@0'$ݎ&]\KMpɄ u[${G6n.|@]5kuj\j<L]Զ^2mm>6dHHv	EX[JG!֞n}Pqi҅( sXH"`q"`!=&^B_lnZo?}pV L,6v[}g Q&u/ke;jc-B@.}uo.ƧTyKRoډ+2V=<<AozEw7-Z|,4BrMC7*XfJro
Iko5w&:*Q_ͩ3[7\	@umtTQ<7$:#Į.yB%voUr6\omݿ^:,u\wKfwu.oO>)#BzKۼ[^5lqP/{&/cuUh'>|'M`ݾmK11',EF$Hѝu2zU6#uj- =h*k'f8	ь)1P9BUjƲ6;tTM+ŧgQ$q$.(bӵkcxC(5u:YUKU7nv*
+R_"$6 &fC"]cwS_-P-LA4|*y6-в3QzuUT6{bT#kQ}; ְ$df"˃"IP%蠨:a(Cϵ,$iXrpeņD#-Ǯ`te@yzfu:qG+wKTnڙ<4RlX(m8gڻ=,KÝ1qc)(QGTu\r"pNT6f-51i8s/WxG<Q1RuHND*J%3C=}B
LU46:ʇd)QQ
w%nYxOQs"i8NP5t&z]]oV}\Oצ)
lT -Jab[ѷ,/EeѲh("J`tۭۉ͘4pMj& uS@ ^袪nimCGg'yVvщl	Nik[K|nϽފѓNGtG-n2+xuJCAEyFDFAB<% <I!ir-}ΚpAįl&ln9ޏxv5o;@&<R3n&8j	oc\3b)|-:fX먍#	FBE]
qB1 3UuR7r$2Bq VhFh"EIO6?{mi5~ drmx;d='  /7x}J1Y8PF-
QE<o%, o`$`#NL'g}*>ɠ%o\ސw~.BE؂&tHY}l0YhUQB:Wmf}<:ʈ:i;]]?JǦDH~+@{
 E$yn.5J\4` c5E}ڭuEn xCC/{"v& x:[luP)J6)J|I"WC-Q"ͥnB_ݝhvf=RV]	Џ8E'5ڟ66-6P?(
4Gh Џzνw^%gyϝ##mkY`|NKmо}Gxnnͼ帅2my<ZWN'MlzΗi2c۠5G/OԾ)>>zs5&d[A)"wJDqr4@s@xnCksV<V)WO$+@~)7Er:NW?sةR2gԻwvkwvq˞;yCgəg/t6R{Kx,wOk-(f9fZhI|oOsIoۑTE3K-h=G+U-[v6ntnA!#v'S"z̮H`Z,Z*_J{k P[Uqȯ/Hl?th=%@
s96Ԧ!'7h^~ZhLJ{oVq\[fO^Ier|]~V/_]c?qfR,yM7ҠrwnvM =!i%V@Z 4#&#7UbdJ5Q<Mhue
?&NIɎ璼gî W=L}͒-Z6ZItD#{efs;(#Eu~߷/Fa"*W RS7W2uE8( ]LqhL0P	y}h{~g(O*2m@kyFeP-g!'!Xv[zaѰ(@4~C%{fz
uP"#IkU!S5۬6s',؇33"ex >x!VWЏQPu+/:-7O*$		V/O.ȱKùs[ٵ$Ss\V!̶k!V^p[]*$'Ѕ$QƢ821"Z()x6b63)I@tG
+r	T ȏ_eEjвWg݈$ͯ`Kt_hcHqO;T{&cyNj[gEIj? ?4[^V|X,]fceB>2p5 jH<r2ddv~wyzrچ吵7'G߼}n*dA+($oc X|Qú+T|PL4;[@NaDREUz&ˋbܐ	S󛐡~TSK҈sRY7>ߜȩmxԷb c&\WFGV\MDN^Z~xgʗ}U/gzq{_OĠRq.eSb!XT,[]HQ__5EE(Z?gSɉ9/1d^8&{fR+U>\Ol}kǯ$D`
f2aajlxI܆DJ:Ued8!b?͉٪uDOZB'%hy,eҀmT3D\c";!0h@ g& H~4X5][/-K-ZyKlRyM6R6s=T#yd(~!r|r,uE49و)pi,'բ#81k֑	g,EK#.T2Z3^;9<^3۰ag/u_H6c̊7#V,)+R:ec/}JIQ>h䢄[nnTXj֍Z0J*RxyۊrNhj48v@ZaDP;&ͬm?eVۏWۋkk.fV&VkEIYTl.}RB!Ҕ](8Xqh?W˖	  	VJF0uTR\M{"BwnE
wNf67VyrwbԮLX6W0ȃȶ:`)yxk䤣Xb|@R܈[Ac+'{ϧ0Aɩn <|D|8єʄj"f7\BW#uA
N$[Mb7˶(^ih(UG5[Gvґh@P7%j'
v
_4rXQt.i2?2`T/'.eȨ)Kf%aW6!S7?0XTÚMl@J	1 m< x9DDqEJ6#u-C:d&SD=b]4<& /qP6PtB}XRp2@h"mK
G)^ggPҢ:'ɿV_Dm.RXptk2.[j@ؒ<B$.ߩCXfKLJ3OOlw!d'W/[!6/#*ȀEaUQXE9L2 RIbɗGË0|rHgoۣµ,H/w2ޘM9
Vo+X.mّ0295-b v0 X8"Y-,,7g4ѡ'U``Ŷot,^zA9?{yihzXk^=yڿ~fzGf~_=}8^o_ņˌw.n>߂^{ q}nV=5w.
.a^X{_mDjK7~m0XD&_UT_(ʿ;?rmޛ1?\);N
V9,BA/_!EB*ܕޚ2r!TwDgv(piu=f=̭.>M?+լI Ap8X+O-f&B͐ׁ͵}Hb4] d2Tz<	2<zUM #RfbxU4F7#)=gm&s"7̬6S+Y;"FյV!n0{7UͿ?rswztpmȹC\DzjsEͿ<|/F-]"~5(]Esϳ!;WpFW]^zKqоK:uB'bZOXl	mqfblD$i\K~D腜sC"4<gS;g!`ܔݍc0_$T#~nOWͽX:cX_L&f Ўk*\SZǤ%4 jp _B|jp.tb[,跪z!W(aXF5R
f%ȑ-sf~pO9%0uN.>H,ӸfH4K`sXS3N9<=d]{RH
C#ő`4=}ݻ9ubP} BLjznr{NǂwxE=CSX4M?҂L8A\AE2]|+'6ٴڵB*4^6V_;"tuXJʯ[fAnS.bm&|Κ,ѵSCQWTԒLk=?I(,%sC5-Yp<	#HrCNH8he'uw]62O^ˡG{EZ8dAD	0~ʯRТ@F-T!F 5SS,>fUFo1y	tM[_1>> |$U5|Hv-D6J$pypGOj<Z/kk/6qUy_a#Ñ`Nhgzpo('a%Z@vZ(_]9ω><I+/jXs&YVP?.^mJ{#O@O!/Vx[[lWN8ql&fsq6MxcQ.v*UfgڣlbhWRБ@Zx@HHԊ+ <po\wWmxs&S{Wt9JӍr<Kbb3CuYIMeUc݋KWח8wmfz.,vw{[GvBlԪ/zzNe\.STSQn)B]U]EExZUeZi+??Ɖ19.nTÀm뫰gfJ2n }}Ks`T>Ɛ9nHp<ͣSUݍ*RvMy>5{pW s]]ϟK/ңB?8mۻC8{/WN9\@-%b?.uid_>wnsͳj[kzv!2p^*3xh묬,28:jj {abCR60*p<LZi,ڄpU{|-듑 y0
/JG"8谍6.:Җ6Xg2$\8&3-t'Aogt*I߬-aI&*̜Y=O{HR@n>vPKXÛⳃ᫦f I/aط͙/,O_ǈi\E~H?kvOD~#
,m( m\Nz^rHQOfމ])$]}k.ʣqPjsŸ5W%kH[oLh*V\0~RC[Π覀nnM$LPNij3x(Ok{t 7΁&uxEFSfh;ZzZ f ɼWlXE.Gk[ZpO=U?('̡{Kj3z sg9t(L-h!QZQ~v!J+onٺf NKrl:hlꆯ@OMϭz.(jpE&m[?{z5iXk:Կ놁ĠtB"~^/7-M{#ZB_P|/|b[5JA
t?.ȰrN߾	+](%B(lw6d:`:Ȗln༐?LVm}M؉;6;h[ciZ"juynBY| M&6סBN>1=ql7(Xx=3jr*D!G؏8lcT*ZBHٱ+mQq|R5AKNAjnۓ:VaPШ"9j:#TX%J^TkOx*n~wϙ8tMA(NѲ(hZ)Cxrt#9pH^U+đ^>&ek1́0UÞUJm|~jD\xu05fn9d05}E)"
	T755o؍&aUgp+{H*ebФ9)S̤Jda2;@h.@BTmSk.`,B$>}nz@*$ـ<~s ]םů܆R-! 3:x4ժER-o<4@&b
_8T<*585}QV( 4O:B

zSEMC:*ahz&%1M-7ZiϠ:=?:4ilܦeg۾]sʴ_nQ1#e0G=DidiP|5}IR8 !WŨ )Gp	Z3]L? ay1TV5ங^(22tGDYbyEDdQrRwk4,:W2O`|UI4UYrZU5dh%%QNҩmE~<}$ 쟾<TX}*$|E˃X>פ}B,mSw!G %I.)::T'OaYV+Jwq6~|GS2BD2!8bL\J%r["ߛ2t6)srJO^Rw]q^InR"}EYn*e>=Y-lfэ!\"'=3^y<ðR+@HxazQum||4UgCw7=C!l9ךFOg	hxeF/SPDGMqu3{xA5ާӑt
+j+mv~3hxJH3oJk8ggIo՝<Y4ڍpl,S9Gy%#Mԋ~&/kgj]V V@;%#ZX̕ (q='lNf/\QKYA0#ZEU,~B:Lj#CELxCk;wע`#ixFOXY7a=OU:Hʷ{	X0y#%LtGf@yw?}ZbTS˯эcI+]σiA^c#FD*7"pu(<>m@eC)(󃰆W.>y JөBOCtg&H@^$BlhFj4v44(3V5AHFRaTiO/*@zT h)*&+u1$^k]%٤&cCzRDH[-É.<8PEEV''W5Ye2g˫ZwIj.Lq&xeqq2>kiG@/Btpo
ͬK!_m<?wWDD;pr^6\,ZxW&߸x?op`xaS`_/]^y#>%ˎ9թ=iWwU]ϙ
ٹZr?"qOR&T>nzoYլ_372
%Oq$.RAoEBWV擳ў.c\I@",r,b} -+emE`d)Uj&NWxMq)A:BoE7`:gISK+>yyMG^2AcsW-[7C _EvTR.>4pa?Ao96w>׻tOew/Wz5Ib*?䓣&(*Sz@^''sOe	d4e2~Nx:[luPHMQHJ"WC-Q"ͥyЗ;ww'YσӪ?O$F6E6-P?(
GH 	Gs.)x8{}xt>h^ߟC=D<6VuFniۦVUUt̢6FB-&Aqh]8|{ɗ~]{ws6֘ɨˆWnqCGSsg,B9,xZ <go{n#ԫoksv<v)W+aO~L߭4ErǏ9Wz>uTr&ջOwk_ ͞]/,S
ODT^
QVC=F+L5}F<l2tx ⫣ݗ:;4HNGز*WFKzSSWDdDپ{_oPoSZlv9vo}r/8РMnX&|g3V&v)Rz $,ߚ51	x2{*}DvI08hXgD0B/n2;g6jɹ>7]8,^tї/tE8q)@r>Ā,ܛ2$@l{Vd=0ҒGjtNHbۄ֌ݶs!^C}PO&+b%GNk(kPj6i1qkX,K6}}9lOCAl4`Wװ
d;fg6LlWmLA|w`70KJW{+^z"\$L*-VH&q>H78gv)Ub@2,(DJϭcKo\: gyc=Y2m
(hkkS9YBn.HNIRY4PkWnSxRͨ[H̘[cdP#1XLe_A?F]@]1ЯD61N1(kÂdk>x@z~)A8(y@=
>t!Ɣ1E+MC&݇]K؜HGG'-]vɼz)!VR>`?#PZ,ԠeLnx1IbH4vaoBr:,澝#Hk,#0FtVQTI#sgnxyq%*F5b_&/@&NV&d})Vo/]K2c[]`|FjkCei.BV]@>NcHwD!׫閦Gȶ0XsM4J`Xd%w~aB| !0v7w^.61Uøi=*4i.0tQoFf9?8~>|#a!00& [O}yh0(O(hɡSG|1W{r }<49%by.O>$7F5lO J%V,`Slu>UDy|O5pLWBT-.j>Djn!:NOdyI5\$b75_zvIe[.xrJd`;##flaozn6ҭJD䨫3;5n0U,٘zQW^*|tPQO(bM'Uѩ?ٌȎzXhBo Ȇ~3X5=(#K-EKRllGPB/"6XzmKn"?}c1SHC!0doˑpC]$O8e	vb+Ȅ;Z7`f|/GƭlvR0˗:ϧ1a1+ve)2⑗>%Ѥ֨6rq-7\&rZN8F*Rζ"9'V3w\48vAZeDP'-o<(Ws+/֗ǒ++IYTl}RBc Ҕ])8>qh*?* TqdSHu[."t&4Y <hx|nmu)?!w|F!FH_a5{%;C<gHA:Jl2/9_=Ə}>	R(NtIsǒ阦T&T8)1zb8FRpy)؊ 5/(o3YE.X3uTsѴa
 mEqd,SV|Ү`h	E#WEB}O% ׭-CgPvbF>+W<q7",[آ][gLP/^⫒`aSCk6q2
 )%B1J"@ cs+UݧFP-Fjg[t,7KL1!{Ŕ7zhllBM *@*n#e8J˭ Iƕ6ȴ	)(
,\\x8×}:<9I jssOpDRo%v1"ɭf1[bR|`b;8w(Ps(xA}tWA,L	J,a&{i5?IJ>?0|xjfbɈd%e25A#]9racڜC! `SBe+̞5Ƃ2rcR
{R
֐	Vl*&[A'RULZ_5ӗ.'jߚ蕳'otwdӷ'i+?^p~zkAS=-(צgS(jzfջ7;_`^AL>}"2}zZQl @8MסrIrYeC6|xyʂAPVM܃D44P+B  `ś;++<`B [9j$'p˭Ͻ7-IK%T.Q  W1ʕQHж$T3j"ob_ 50ׯ1Io=s`E44.E&,0-n`L,o5A[E{-HP4!ɧkbqG멥>MR4^Ʃ5DWCͳISܼQ:(Μ:vހANAL)k{̀\,Yh$MPgԡf	אU tkw&bk\~ {l,qMƂCяjDOmKY{IPS950q5W3[D_Psj9+P;Dؾ : ħ){*ㆥ4K	v5mM}#ptga>r		!x)a%/﫮Er<W~nĸFrֈ!GXf,gj%8S3W8Imz&
g@%`4K<]=賃9q&wj Yb'3cF?p¹g<6K`LZGƚ{=Fsrk1ڊy8ӷMiȶlCOЌYp}1耠5	R[Pյ<]-]nO,b6&Z5.SCYWTR5k=>.)$sCF-Qpŉ"LrCNH7he u\&NzLl!<IGV.	b c`%J͝_Py0vZ1W0j=i`Lh򊩦͙ܴX:DnOհ-B"bd`[+RmQ;yf8R:~YgRtW>Alm/KzPZc8?_wMr_ےU-;f+DrNѳbᆨÏL2$b@3Okۨ"jPPKS[yid{h)-cNx<qddC2RKKRsJSJRJRB)%lX3y33{&o>Et}1nҒɝ9
\
Z


$'yLvta5AsQ=V ]*xq#X6+>ʞ*<yo	 Y
$xaX6+MRܬbj8`a'T+I-**-(QH-K+QSp,MJKI-J-RК|'V<$cX
j&ƈT*%*i
%œmbء͕1  f*D+,IU(-KGվ.u"U& 5uZ9axuRMjA&*&1LH<&38]	lL9UmLh\	\{O	t|=F7}s㯅˸zu?F@e<
`AH5@j(R!7Z8ȍEHk.<9 F7`o8iN-fs.(@mA:*籀wy(JALv,H~8Ѫ&3">BBNp@0L-4lBz<;%=M&R@-ЧAS$Hj-L>[*VeO: r݁<T[-T)qfYp4RTExV5]'=>fzuT׮	JPTgh>)'[dg$eB!ΩX́m'F<##q*$kV\0ݸю[r
xwqd,M٥g纑x!ի_{tZ|ƭKGKA7mBEvjoK2%0Xn7͎2LZkl<Cv49Lvoyc ۷)ŭ$Ĩ[7|>Om<x[quٓ 1Ux[[lW'Nn8:ڊ;1cvٳgg6skhR!T"7^(yV!^\fgvg/mTjɃϜ_?O[޾]jr_%.}z޾׺VV33W6?t8 ~p TKm D]mQt<Ju>%A!
WgӰIC"aF\!b@6BÓx>12;@c	RsloRze8|m0RX9.Q nҨwؕ7KGY_\eFx:;<>F_o?*0]h)ҢMū3A9+?&/wh+(#`e܊RM|`>s즬vlTˡrI;~~@[Tj5*}mSN`ˇq3]CoSKE1{۰@c'Q`bcY[!._	nn$)Wյ΄dD`EdVhʯ/ A{W4IC+Pw܂є&4Ɋ3|ۃ(MsnY᷇3ݭJJ> }ڟ vr"H7 &"&dKMAw]]qm]ab]ѷ:a]RprMt%A%EcHkz
?\+;٦LP%-2<r/&'&	A~&ުүK/AN11N	0fK(Bl5
<cKA>K9ʻ廊XU܁3\RZҹc1IĒʈGȩLgkY#"IKiJyoLҖ5-O-7 B3(5UGx-SkWVG.dYi
[/f&EnPvNgZzŤ	ʕ&$fYH
:pGF(	h
}uBTl*%{\`<9Y(k٥*Wz8$'9u/+l
7@=^cؕN0H2't#㳴Hmd
/F׫]pLm tAc/t5%8?mjgeB9^Ҵ吤OYzkH&\	flLMrH>'b87(	g(.㺎פtȃJFi?dF,.**L5ң\Kv`*dmIA7EqXʀAEyZc!a`V0]C+	S#v#VDj07-mC'G}|,пb9;T4LP(K}^f\șu-
oP.uJto#u^>:(" u (ЉAbRל3KBW&B%Ť2Kg@8ml/!˭~ŭ&FrMpb,OsGl8TM٦S`TjxxzPPQXe,69
<JAaY4KmC[}tlLoHex|fNAu;d<NI$) Hwa%7:)N> 4&P~^R:Z	
ہv	;W5C>v$gCUBTB;!]`gSz[
Mmxix<}6_u<['/7N]<v!ո D'c7;yϦjGܭLL/OUl-5uf yo/ĴoȮJťM(DDA/MfQA3%@yL6F)\z'`\6&y4D`\嬐FEP)T3T
@"KbqXRL ۰U6$hm\'w+(	!`5y;Vi|btUށvc@}C;؞<>PW'D2%oFň=m;ǋk>l7@%r5UI`үtR	N0iÙ7n2`.1}±\{/5RzӀ
t,>ǲe|znoamih!/&r!xfw-9BQLQ
1H!eembo
}\52h\
;mlXrQ+)~?yAhbth	xaU]|M9V':o_zdq]Mqժ̱D_+Uz24z])
1+E'Bo6N ١SB|W9f&=fN ѪQcA-x1I)H*"gjl-)g=ğ;~5>^IWͮ)vxMX@eQo_(<	>hnir)D](yس^0"֥ЬØbA0l8~@NM5xm'C5}-{8yf@A xԉcװd
vA֛؇1XXdb"EӜuJyLm|ICE	$&TmS}όk̀U~NF˪ۈz=vyࡀ:5˿ލkC"r,8J.#̖KҤSu	2+p\Z`BҎD'8H/Ze
RF׋އU	WX{ıH󬔰B]c|J6#|W.\_G"ynʛ'?^%3$m |CT@}a5VBS`j74_}Ik"Y7إZ[pӍ؄Y
}pjm1BIE	QqO-/@~-pGs5-?Vh<8Fx<_&)n^F]%d>!lsnETOzѧ7[R= Bh:xYX8r}2uW}ze\Mr f2x8{D{ZiR1=QNĞmeONјnzry2h_kZNEF~0xq?U ]z"umYxu	
)//qxuUQ[]3JRJJRRJKS2RRRRH!$#X!4/$.I,R(,ɘo6gdLnTXPddɧ͕esJ*RS!4EcءA1 WY_D['I`u6-]dyFfNBiqf^:mI{ģ*嗖 N*XPXZ_P\ZP_TB~AjQ"ȝzā
߼(M axVMoEItѠ4qJ'-`6DqCbcB3Cvw6	\N{*~ Tq@J/qpኸpCcwfyyyȯD#Gx,]#05S4˰ޅ?':v^*.C3<~LFr3}e,\JgFrcw0	w?[SⱘbhySp:9QޡMZJȵm;1keyžZ\q[o;U]/&=z^TB_an$Hˤ[cǣka#<(N͝pb-Ty3%!SX׷S']:<!{lm|u-6gͣy#ǨbpIPLwFPY
^0FH GīA9Q	ǟbxC9B*d7|&|ћXW'ƋGۢ$up/=^KIk
mWF)r:F,֊wHBJ!j)Ya>@HbY*aui.dmX˃KM =qH%α@PKrC wo#.ȞyxK90`hV>uM$c_!f'Sz!R(4`WY@]:vѶTj5"
,h/Men?uD5:wfDL#xPӝN?6R8FsPܖ5q%M{vhcͷ}ae#ᙠa^L_Ä7\Q.B/g5+Jƌ-Ԗ$1mlO3-˓2dW=+mQ8)- #{{uQ_uINi0ٮe1ԧ6rl~u[C[@iD/KYH=K"LmB;Jr4OgDm_י^˘s0{-j;9Uc%=Pz3'BGg{6k-bң0_ݠxZKpG.XO[d-?f+Ia' Y"HJLͺwWzRDʵpPpHn\(!Jprw>*BwϞ㗿xs-}nĕ}俘CfR<\qo{76׳+˯--/g>Ȯtt#~ӠeF3T7I8cdtYlP]8ݳ]f,	W(b09\{a!{YR]46س}BF
ԹEmFt>~.¹`HMy8+SWfrRᦌx7ֲUPXv.HOʧkSA{n?ORkiz%7!m@Z'Z[k|]R-Ֆ֫m$Pzcēw?B[(Tg`-j.*·e1oy.qOF4ӽ8C+C\K{AqkS?AKehΟy7TlcjgF[v6°& Wދs>[ B佔+	D$H)N%InhG5;gqktX!w@s)_t` {;-&p^Ră+Kz...]}9>n\T6BW?*XoCF0Z)مD $r^@z7U"u{:cjvh&lq1!OJ;v~mqo:,znFBv9[
$1|n{);@[XS#zyzWDTO{M{R,? K	L:M(|w|ſV;!%nTV$
myjv/_+!Hɠ1ZfG51sOծa0Hϑk")s`̪}op!XV!X)>ƀjj7&v!Wxwi"1* E:y/ZhHȰ}mBJKVYGTdu+\`܃ɍwWldOloR
Ǡ2W6 TSmh;TvTa9R8u>
u\~ӔC!		".NJO%</3S(*V1$):De"	ׁ@m&O`
㗽3Yu	d܁GB>`4F7*\Uh׍.%@|{`cS<}}A!tPhٱU7ն\4`VAС-"58ۜUvc}>h_1]|*@/qEܾ$En`7.mo9Q,R.|yjZoS8#
s^>&W:(("8 hEGRe{p7Ȋk-8`uRRâ;|z<1GA	WV܉zZa?@vkNFߴmqB+`o"[6NSiʨك`jAcNa1V`e$VEpT6ݱjlcax3eq˷}ۥK8&Q nnWMfcR;A> p0̡3Z+H%+u|ZlU
_p\%֨|CEAW!;R:L`wً(tzK1McDeX<ş^ꋵ89P'/'/L訶z%"tfw5n
kyLJwDnmT9A95T3"384{SC]s=k7R8	"ÿ,<L4i	b/6[HrsQ^L[~)0i3tb\f԰EY!$aLwq=^bi\TI,ؔGbQ^*=i#y@v$-U0YbtUZpY8UWw]D_/1J<S熛X,Hc{{Q6bSd,C -=5yEǳzDخVANZNR	F#0T'>2`g1OsP^1ssI9+@ *^&u$.ĐՉSfȪI^#\83mea<\& )k5nW[ؗ:	!bZ9`oK6u`70$_=/Sw{	leBM7Ͳ/cmmIP37¥ Dݔs6J
?9GM"!86BExq {=$]7<\}t6a3"S0.0jHW7'bG"1ul0ìhGCcEnd* qxL5]-\;ld6]qDg`q]U-0(H5&gp+ #'y0V*7"}f%D˴2J:-nl#&:uTc0tIOmfvo&FǪKxhlV'}1 CtXI8	굊NԦT
G	*[s&n㈯Rт?D]#MFC*$ꋅf[	Túl΄ɦļWIXɟH$6x,LR$b=yӕXq|<dK
8j닃fM^%>1)9~$Ֆ-=ʢ
Ocᅥ٩aLnfΚuU[tJc̶}(䫏eU]?Vh`xaiwۿ*I9}kA<gw5%%Z.~23
@MoA&-_xs)TcW<#CﹼY\W7%|ÕKq~nW_}xs"N/ff%`kCr~	J<u:@zۣQF*nL$O/d.I=_q[x;rqUSb<KS2RRRR2
r+SSJ2K3tBFfznQjq~NiIf~BAfAP: (,(L߼&U +b?x{ox3d;!9B'Lctՙ,+ZT_$7y_
gK$%*楤)8dykD|}&1QH((J-.K'ShB^~BqiAA~QIjBIBqjBzbfdE^6bڜ@ɩ
Fu&dsH*LM.aL$ZQ QR.xvn;-6bғwGO> Zx-J@EI'`\B˂6%L7~ 3[=#Lw'WAH۶%.i^a0	RUdy{bW*,9Kd5ņa-
q:ei"]+CMhF(ou7?;?Vh4Q-kgXr(퍦QFm4=Qc;S$zۤ-nYbټ(ː߯/|j]xvn;-7bғwGO> /m	xvn5' 2	"x c#$
lJcamId2;1m4-bP4 :"K&V(*"L4es are in use.:A>`Maa!9$msx{}q>&$ 3F
x{}q~,ʌ
YG;)W%geV%dV;des)h)@AFIIA~JjYjN~Aj^Fibyj^r~~r~^qinj~j~J~~RjqnAQbrIfrj~RAInbiJfnYfJjn1m,yz71Nn0,`ɿY,6ddw )>-x[>ZaJL ~1 
x{"+}s&1a|ק x$	9x{"+}s&1a|'eCC> @1x]SjAf/A""=8d* =H6=Cq{''P|{3uU/kr A(#N6xXAi&@%㤗F΃0u-;oB[R't?Szԩ,,ZT~,	c'%蚴:V3nlxT9	KCGl.ճKv&sP9yì=QUP-zc%"`(k'	MC퀒(h*X&,nU	LbexoF"W&RvB~m̌I,MBpX@Qk)%X`]o9򮹆8S3sus*-p<{~J(,uw矷q{FUr8~=ݝ]wF;Gΰ}BYU?a#e@_nߌO<K8GS>ܓǗF=8O54r.K{1b97$#k^ڭŲ;ܽyI^tvיִ\Rs& x;For*J2KKR26 !1x;q&jך*1C-@KAK
J2RҊsSK&PQA+LIW(K(ˬJ,SHK,Q3X=IOyfNYHb)eɩ
E
%%5|sK$'T*d%&g#\
F0L&hMﶹ[ٍqrdUͩڋF]ah:d- *[SKfxq&YSs=S&l6y {	78%xRAJ1E)gJ "hEv3q)L.71t*"{Ef^3ϟ-8YpV k9	[Bs*1dB]	Ǹ,0fc&0MGQn7!)b*K;Fy-U1Sm0V}_@V4RH.2%[m"&P51d0!wQB̢Hc)J>װH∉"I1IiFXΡi`:TX>\cuX<U1{?.g)4 gQ~OEfT&:l?խ>ZWDxg #"
mKZ
c.cB5v ;":&W(*.>$Ux2iM,o6 OIsx2qdVz\
Z
E=s&??y/6=V &x2qd['?"2(	Vc]YUx2B
%
y%
iE
%-' x %&{:O^0='KjIjғ+O~7eHf q",Aax}ۊS1ʙX<:8DPj
RZf
f=zU4&
^J@wM|y 0ٻѩ$;?dBЍ5L
0zh dPX!hC:`/p2gWkڕ8`r;|6ϦM_h\@QdKVeځbMjղf".RejۄsgtLݛ3<_E2|4ud)cZfB2[w&B[.i^5h$Big0'GJRb%	boHgJ˧ F82liV[4TYQ3j3ϭr֮ʋN턙q܁#£g&<%(⌦gLCMHS	_m=[xXOTnTKLCYLY3W&Xsr$^8"ǂ٠#+wךF׮6F٪΄AMAg}ti.!sNRd>eȯQٟ7'ni^&&a(YKnnvsFwn>x{ZtN+;t ;0WxJC1тHqi9
NXEEtۛK=o(;n&]ʥ%$|+zWlGhGU xEJwʙS=:bJoon#3HIQHIB"HH,Ј95 }u=ˤ9WҕOT2	?+֒	n)>	:(n2kyۍ}F.[j4PRB'چ,6m{NS"eKŲa&^ȎIDcNyHZKyV0D3Ǖ-VY_ģqeo! 7f¼5:Iƿ)+jznNx4M7*X 5qx0E喎׈9"5ɑ|-̐&c !hqwv=n-ZICNg9*d'j@0HKPCC"Y"вiˡfҺ[+k(}1x{083Rr3KJ6jd 
(x6q?<RRRsRrKK3K6{0*d{oEԼ̲̒ԠԢgl'2WHQ,L> $Tmnx0Cޓ{ )x0d=Y`qoO FP̷x][oȒ~h$'14$,0%]A-ŎvUݼe9@H"RUWշ3vzz8eXo®c;;v]|Bnسy%gڴ?K}A{^ɟ^1[Ce8!;.gs<fTDKGB"g	>ͳ23Gi[F׋I7>?AKSa	ó3(˜AS]3"8-:,уp,v(pfqj"< H+mWmwp:aHLG7\' >}d?0zu=f:(M.48<ׄ/-bs¿=bkBm,uVNdFU_X9IwӶ#v|/)g.[4sstH8ܴ&X[vRTX	-sƛ0zNn䬸]jB瓆KB{p/ԃNs6 :2=X]t-p *fak֓$[7V!{஋D^<l_=0+>T@gIB=;,0>V71O'Cw9sڤI7ehƸڕ>2^Ǡ8rc@_||U}<7W;2l˙Aðn3Pu{3OQfY
-AD	,O(c"Oѭh}lE"暯ۿ_!&^hs-^xA_R2O$\_/<^0ƭ~;g;K\++VQ޽#72?a4zp`wζEca `XY:Y^#+Q573Է6^]k+ݸ&HOIYx"=st[U4#{|1@룣7ܮ9n ]QPۮ)scILcN'{E;Hgnw&b!"U;/?y6olUt k{m-xaV@
*QPM1;IF 'Hi$ɽb4b#zXr*Q֯:sA?H9 lx!
R鰿`Xy4D`PCtE
JPpd,c#jj"fb>ROKخثWaf%uX*vJ-MtNU^*N8ʛZ&`{g\51y\ZAz5D4?蚋KM|h>M&V= GcbiSS$?ƘG@_|n..c2nPRTx!g!
ڷKkǋbBB׫#iV/?+'kh[#F	J=$tlA@J Bz=$Ҍ43^yHƓ%bmBɘBZb4.:&]PWa,K?vm*q&3Ph b"Df@ØIL2O.O:t!1B81fdŸ7%*hG")Acx&I0@<ΐ=G(l;Ѧy7s4nq7GɗFTQm%H1X#˴$C	v8$$/Lge \hDܘG>P(e7E}`kn2k_Gjo8&U<ktKĜY*/UH&1RGmz3iUEy+_0fڠ1ݫ8umc#P?Tmgd]=	`oJ`&EVIɱ4ԁnriߚ}Dri
dA+T&R!,-id.5/ekZ8Rץ;yGn,Hc	Qx{	:qD%Qp+|Q@xN*yS=ݷ.]HSo@W-c9͔H@$8+J&0O !we=b/(aVOJ0B$xhq0(vB)L߽LւWRxp:{o7ncXeVEa{v]`8ƪCIT@hڤb
H%jBiŚUz88yb2[VjA7%&Q<aSLQhwV=U\OB薌TbJ3y4Nڅr#B`0)>lo@BÆJ!-v0'0}1qFrjRaU6!jFGbDg"œYnwN%C,eA8#/D|1hl0U:S.6_
jkGY,rJ!%	;Ae&paҖ
ZX VnS~\˴eTFnn-viRVLcܦGO[*DdǃʘP(mi*DQ	%
IU $YB'[{$$	2-[ɉHyXq(\%.,~1{h64{iD2i_+ųfp{/==rvӿ4&50	9DX{AFnļU@|a*C[
ߚ>êTFzR'|_@VTǏY<y5}Q1ݘc$4	bayM7I f~Z[~VZ	=-} L=9"bْʓ8ߏu<p

a0:DwexN/ BNpB!*5I~4ˮˤX+XХr[K&w;
j[v8e6)n4ґj눮
ҍy6c - rnf˄`ƻZbH	p:$&=}m4rGx2ҵ[c:֮*7^_[@|;ܣdg,Ǵl|`@Y-1߾䦽^{xju)Y 9<QPG2R~U{讯_F?80VtO})&\sPJЪbWs/X^
e:q#bbس6yCl)mFE4KKj?r1]L;\\U(u<RΤ`Cxyv"6|B/(vuVz}bLKX2`ˮjcRm({!UdKy&^g9jwx8Xj7Hty1YgaR"<cZԨu^aâ"IS~/@lEDآNz*8꾣:d7˱Nr5$Q@Z%WQ,}=6+:5bW"1>hN<SC/iE#wUPjiJ#bG1ne$E?ڬLWrfGҟwӪa/FuJxl:$Stknif~v4bh &ǰtrIƠp:]2	ܠ.+~~&m#m$PDd{jUrz8+Y)s:Ѵtoi]䌧gJ jͳ"ù87]+<:==S2^C:ˑ:nnֻM'hk3q7PeA#(>ώI2Vhy'I6*㩲U-Z+['p`Dy bJDUoxPDMM2NrK3ci\Oj$ңŐq6M	V$mM)Rk=43%Y}KK7{@AUX>v$>@q3-[h%6)lQcHb9/s8m97>$Awr_e],z.6/;zl`(ISi)>K3ͦt%1==18̳g2lG^@]v1DX|L!8Df zO7nmpr@'x(?I~Bno{[xÊ}*3SwЅ,tV v~.#CӼMWN1".{ӪR,MD]ljZKf<Boy9ד>^Or7P9+2r+xk^	۶{Ff6<b6mvm+nza@5utjrUl,ݚa^A"[E(l><Toa=A4ܦQjmt&Ll6u5{l^ELK8Y#/5R~WD+0J QSm.VLwߛv}̬gE 8R%&-6{-oy(=R{pJ3
'Ft-L8||?9`%V".1=3lX{ɱ$9]lb1`o
7WG;Q꬙J[mGrǯfV2Ss)5^ҭgKh-NtԽ8L :1gͮ5iJb&$J$-];٬V5#ҾgzM2zr=|CEIhD}D'N EKHQtwxVvEIh*w9kIx Dע>vjWE1lƻ$|X9k% |%rS*d2 JhV΃r\OO8˗%էGٙ3CFUY)]sMPzh^ɭm-FMrM<#ƏŐ]!ӊʷZ-3CXJCw_ӁBW0QVԴ;g	@Z=8,2ls	k`G=b8W($buR;:>0k!;۞Inﾽڕ>2߷П9Tr!xTKOQֶXi[X*kH
(.NGs[ bʕp/ &n;wfڦ@@d;s9{so]`u;\ʸRr狩\z"(|u?!għUQxI\XT,3X&:vNb${ȐTuU$*)T!!U.QQJь'YɜHE(ͪ,U;F;-d&REؠB듻6bA;	LM5tìbHDdP*+PV0
!YexM{`*DWFQ"{U?
1xJ~.0´(ë7ޟp8#qsfҪˎ#'`I*ajOnެC梉j1p_u*|ȅa?=mQx-8LuY*}!s}%:2FF^VxV#af+kMYQPa0XfkǕ8*wAI]uFu0P_2̢4siWc-MIحE87<>Rm!B?jlWQ6	aH:1s&υۧMw^@QЂ65`vQ+~wgϞmNYy5rWpBbj)0Z̚%Hz<x>id,oN`1o EZ[x>D9׋(nNi3N-)V()*MU(W+QHQ(*KWHN,()-J-R(.)JM-VH, 1xmJA!h`J5

b#t-Z`N"*y _%/ ngg­;]]PƃBkD!t!DDȕ)kar |Tm{$o,]%	>4	~ښ2o*)ONxv88CSdhJ$4cwx?xv=a?;_6{,rcɣH ~!:xY[o[YVH㤆Lrkޮsu]'@8N.%7'sl$Gsr{.	.
.Fbf		dwDU#_0xf@"/9>ޗoc;l}ۖR|P?#IlSNm ֮LR,Y}HvZ|I;'a"@VU0Ŵ>K$-ڶ}YƦ}%{0p2-ɲMڕ,*KLfCʚ8U7@+{lk12u}ntitq(tWgc$˅(ՅĴ<"|;5X}Oa77!6e6Cksn,cȖmp83-~E2% IfP2l_O=Άwïͫp}<";<r$s:tKB9،,IJRUJuyKT4XtJ\={KDVa:;k|:n[u[6s9V(5`WIsW4IĔ-ۊaZ$#ҞLA܅'%H=]/W\?>kXJt,7A]a0r`a`#1E 2$Qw%2JFeV<_VS~ϊoα'w;a%n")Kh%;ߌ|1OކdQYoD̼ ~~O[ơoB5}vFⱗ|~.ނN|hVGoqH
"Z<^]H= 30 [`iF1D/+^|<gVrDwn|b.hr]HM A4ܽfx<zY5I2伍6Bk Ò*K{n`	Y}fXKi
*+Y<t~%(¿	4JԅxeSTs+cZ#?_gA5hm/:V%TwjQG @v@]oL֐5&X0ϦLC;EQxt= ?[o*uĘ!+Qwk\˂>ZnҖqvqG_5[U3xUU}R$FKIJ;!rǋhW
Qw[QsF{z6$=I$~Y֕3d'hl%(WjVET͈O87*fFCNʾO"ȦN}]I('9N'Ci5JLŲٱaȢ)Q?j:Qu¢rو.BǓ=tO
Dh0n>^P{,Am[lYnsDO[SO`޸:vfJKs	7.#Qcsd_U2`R{P]{~})h晿m{XQJ"H_/"5*{?uDsN;CU(#X#bg
Ex.	:BWtT^*0X(<]Qõ&ԉXɮ
juq4i2P.v@6 jFz$j('É28wU,ߏרa`髪窑
IJdȞ<zIX~\Uf՘Ϭuxixial޿Sd<<:$9H;aaZ.f[7\ҋ׶f(<Feeu"IU<BI-6჻8+߿T;7*

L69Х3t(ٻZ7$K"[@=s
@GY||>)!g#aVPsgc 
_X8r嵐ۄ2c))C5-[2?š+F3J)	A&[=w;KN] kZx?Ϗ[
dߕj_!⢐X4nN!MT6!*	/6(J`=ˌݐ)~yP?ݭLxrN܄Xb{4K8b,o%q9N(>t4߼oEZwQ2PBø1uu8CrHUx)
BWdg_=΂iW+ҳ),wQBtRDLc:OTڕ)^xbf?JgcLxZoPqcbcDH!!vM47xwϔ=';ǵ*[ը)RUJRJ}}/mǪ]w 7}S竟4=</Ͽ4080(%}]䵽=]P1YD"5Wu3IqQn]xɱa4xES.2/
$OR#h'۸S$ˎZXܠwl=BYb:`Ǎ|qE=9PnfDfk5YۮMHo]Kx^㥬̒΅rčɌOkV `dHpcgFvϴeS-L\m1;H6vBKhM7;zs̝n6X9rYN˿^wnəP>8C _ޑO?8w}?A!Q1Rn?>KZzc%2g'ۚU9}C"zt4M.+^y橁7l'OźȌX*z3PJ`Jn
ԸeG8Lhr.X f"7"*{oJAm<lvJ+)XA%fAc\C,4R֡H?IqDGB!8J6akY+bp%ҹl,DSAEN);aHwofmsXSyZ/
?w4!" %RPJ[q*7Q%kΰ ĜjIJn5K}s-7@lK*0/;6\N`upAdx UPQ\{AQ("SvLfaBlW	T? : aC>CK54/sjMrk6i\Jұ3h!E|\&MV]t6_:X	Ry|g nCͷ\V8"7 -\XPDj"%T2SK<ߵw,Jdύ<Rxѥej#gox@"sOX3scj'n`"`Q5u4,^m1\J",_ߢn yK5"ql2-\F]tKSCKJŁ@D#JC+kKh;qsJAI6mW7"s]fNu]WV.><e{-u$Z{TW];˭2թh/ #zZTC!S7勤kQ| A0֣JU<( F
}.p!|!zaAHft*;zBep :INtۇ_W67Ҫ)`H]?]1zef0Z;1(7O"|kB'/ژH"g8z(٘pVВn<1=71$gIwC͊YCZvDvG#=캂,uKػ[W Uk*ںUA{oAK|^*k!JP;PQ(b]tZqEQ'"ebx!cӪu)|V7l)$.#ހh䁳_@s}v0{۴V/@av\r{KV-1"0vېjԅ2-S2!?&'TȻ)ǿij6q>U"×^:)_8V଻EɉI$9V5'֜Lo3wPM
NPI!ij`Ad[Bu+YZbm]FF2ƘT/*a"	}!ma:HW:BVvoB:E0;"dxftZ82Sg9^.3C,|	h0^ڂAMsB~"?#Fnmgu+02(N;!_=V}'4*@{m7)a ˩O@Qwz솧/:'G#?h®'T$۷ZO
jʷ#.B(F_㯡1ǈ!Y5WBNH%.Nw#O]k'L/l|$^.mW/!|o<	j\{-|?#F?%[ƶ
L#u]_qM~pK͵m6؏^K'WGgZ/!+$Vw aPx>i?٬'2
$%%W*槤N.d<CV'%5-4,ȥ Z`94(921'd_Y
̒ԢbL'JȚ&gTbzwkP	fũDpvisFx7?ele'Z9yiV⒢Ē$M'/^)YyTSQؠƦIiotJaKJM/J|TKAK!$#U8#D84/E!5--599
y%
I`s3SRRS2&7j{M~_9adN &+?x;9D|Mũ
%E
i
9ɉ%y
EE)y
%E훺 \Punx;9^ӆZY 7+<xM/AǳD(Tj3DiҐ QB$T7dg\%ĵN;8nLq0=Gىrq@c##l<-$(.		d;Q|k3A]>6#2m60r\[p<ۧ+q׽aւh
kRUFe1ܻk"5tLxX.ȡB	69F(+~`?	3ӕqRJ! <ޕa.lFƖ94>
K*-UrKwi)!EQW҉_`?V[nߓ+3 :H?,y\4l$*of n&2)|2;DX5AgҨsRĀ^[\j=OyߟbfxqNцSGN1/]h
|Ѽ{xt\B\
Z
 YPZP?WfrTnd]vݥ'K2*!Lv6rN1(~?Ɋn<TfrM PqqB03yE,}'zNo)=ޔw&Ԉشogմ8hd%69@XӞŲhۜ
Hz
| nsxqyцSG*l^^_w3ysN}--Z-AZ T23xq,?\ffO,NUHəܠb79]wk'*O'mK*WK@KAkE[\&۸FdE*e-&Oټ9EBd8j'gi Bx[q2dL'_  Kx[q\9&[M~%X{`ܼOQqKͯ_2md8yxm&7McǻyemfLh ,& #A$bpx[q9RRRS&ϳT\ߒxQ6;Bf<d#6g ?FEx	g#F'5Q``>yC5F7ϳg|Gd_g)LfU됽yMTf]' 2U%kx7t<9)lvg Mv
x7t<9mv94فGnq&בn)5yC$/Tx[F0gV) mY!i>#Lbs| 2fx;9qt<<x
U&W6@c~Gf0GFx<Lf~-,lV <^Rx[^4hCV,m,^ CexY4h3-j o?Px]kAAm!{h{QN$iEch0۔f*Nfϲ3|A[as9ݦL*e`fg;{^yxWYd3ANSl\$Yjǭ؜b,$ꌝR1n
)S[:JϨ&-q4ŗ+A08*vnl-/<戀<u#c#!m3yo.*9ƥ+w
*#wY~eZF5pH8KSxǩ 9KkUsѪoch.2YlU32eIN/[Cowۻi =mHRwQ{9g]ec^[Q?ðsuQJNJ[\4es<:'ߝ/+2TnA^FoF^@A*2}:ON0޹?COPkj~IŹz;!`/Vva%FmLPQxbca䷼s|bW j	?#xڠʚZT_4Y5jgmx
F(+]v2?{e=b 1 bx13ذ1uC^x7q>daLW P
Na(x3c0[i^rIf~BQjqiNBr~JT;de+L.LS(HUHHM.k,V(.MNN-.N+͙Opt.&ߙH2zشףG"0XXX=/71/1=䈼Ҝ"kgM)eɩn9
ye9)M'@19dry5q!4ag8D š@CĜl$o'<"Ã88o8B̈́PC	0 Jxcz}Ҕ|̒ͷXI  E
L*Axc'z}Ҕ|̒ͷX󨺧($%f$&*e&+$UB
ŉ驓?p
+d$ 奦p)hM6ra	.bn=$ f*d+d%dL.䷙G@,_Bnjn~QBjQQdYQG+aZWb `dC^YZ 5( ;=ζ*.)JM̅:^7̍aB	>. 8\nRPPPH|r$m
H}i<,/-QIeAd.G\e(..;"
h1Oo%}뙇b bXY݂<  Wa$cxJQ쒘A`zQPB_hB383\_͡Eh{zVQ7բvs}c/Ûfi ,p8&Ae\  u4Km1ѥP.p=7tXMPap\`5~dPC۞K9MW:Wu/M]/Go<ǪMJI"]i	0=HBncHU[e <| ) ABHQQ|c& Gp$6%i|KLeVAL+Pކ7:kW8WdX1\akB%W%ܷ9->HixeJAIEZFs&FA+-h!$d{%<pO v/!srf;x6Jz"g#٦:@ ϤŨ=."MtBl6ֻ(cnn(ZMZcؔWÞԼ|ٚ)R,%zбDW	.@
>IvgZT>5"TGÈ0cҀJ|]F(C4: HѮY;IHٴ5+I$IPB}<t:x/cU<|0OQ4e 
xMlEǕ8q()iƉq]qT	ERJd;kgWn-C! = +
Nġr@v%@$X>Jf/ĠIE:#}-&$y5.aw,n'OiQA!*&KK. %W:ŤxiEJ@c/\2={p'ayztc[\V<fnr: ND"}q=۶	7N0B6G+OT~¬`3dʜF><^OWq-Ͽc3O^I|tzG,'tUps*.s9K=-z6.083.'?`v6)IKPvTrKl[u!~SFW:cAi h`.UKhaU!g%\͏/'בOrhV'F6XUDL6qǏfVP+4Uw\Li[-E6
\K#~XM:-<YMpS9.yR7הan5dntіC>\ᶴv}U66ӹȆ-o(uK0b|{P`t]H\&%}C<H>W<Nfy>;E}=sd	5p8KceeVp;@&)I.x?UB?>-}(V`xW0R"8:m]x.:]8j¥,^_:x C['7?lpK^a?ڮ&d?hj>ɷY;ZWoI*XoM`0(s	זJu/VK1xs"6_Ϳsb	(tjKo+ݍ j{S	a\/Riڋk=MAw/ކ?'ߕxOhUlZSۥm쿷٠dl(=R̼};oy"H?"*z^J$xC)Q<~ovjb.{x>y%v.ŷ#{<M^Ҧm04cX1RVrQg>MFlԣm&U&sI[-4xGv`$w@>,?WpsTSgN<|n5X8>Ju'	B=FA
}J&3_!~חe%fJƲx+5ߦ8H=+?ŀΌ"JB®ϼ7a'<"L3	o6EgR2v=f$UR6=_QmqJ.u LؼxQLk$Xb5+bN,Tyá(]PGqx[m_z,B2WcXCQ7#ȗkV&FHUD.NP;/-#Wh]Tjhy:c/1Sw:ŭN̘s5ca7[sQR;5$Yp<]%a(x-w=bl`-Nl9G;A?8MRhuN(op]fr[ZTaDضEݨKd9Ofn5>!>97<7ú?*;uK8I Sp7.Q){[͘-:K\(DX+0rf+T E[1хҟkA.@ppyf!X}#MjuyӃhN=1'a-+|ldPS۫7~x1U$Kx';[|ݿfX$HLd}w ލ}4y`C&ue;[J>{2^ʎޛB(PD!_v5	Hx8=fC73Knj^n&&0k2/۞ ˙&4F9^qjQYfrBjQQ~B~rriQBqirBbBIFLEJfj&>̒3dT&ߕ@ŝ3m#FMvי|Jo;KT'In!2srIv9ڌ{s1&̜DԴҜ.-Ғ́ڗ)ȥON<O2vn>,Ǯ~b{+ēylY^ Shx8T}2L%gȨL+!5B@KT'In!3qsj̜ԜDԴҜ.-Ғ́xMk" 0-x8w">lɉy
œD&?|Jv83f7(6x';8K"V 
F^xMHaƙUDW5]VW]?V%u2meC}@343DݢP([0 -t(-:	u{gL9<[Zah\?	uE%k*IMHU<m7_siRc7,v✧v1ӺIX,BE!nh4>?|]d[a6$jDYw",ʎ)&O5r
UɄ!
2BduPuHiUpY!$76EU:#dNf$HT\RT,#iϓ%job*Tup$	V7B*I8U_%5x=]Cw&\Dݵ(>F{&M8SJeȖpvw궔0rK`MҰ_
m1Xګ=V_ldu׃YN[Юq;p]t'ruWGv|G5I;PHe/?F̏EU,+o#⋑oW0?ً9,Qp~KsXu"Evx|;t9Nb3@V23%ج9r{L)saxT[OAKR"@YRh+@KZHK1PB.vu{gh$h4C|1^oFQgKP/s{s;gۃmQDKV4kqҊBLEF,#3cT4t*c$+	ωD`݉H4VUv23aHd$,,&#
 i`ghZh6JQh`F/qHuqݠPMDw*JZiV**!<Y?4ӕb|RK˰fD`Z-x%E*.vT
^øSe:Umwpf	;ǛNm-HYdd5K
F6 ysWMFN	޻wmV]l:6-@.솺p]X-|BqM5,դCe? N}o-'1f͙/|n.w~''G&
-D\;AN<cMlzb.*RaG%)Bkc"6CuBBO|+L$|rItq:}3ysQ<i,LwMq3**d_oK-EȿV^#4gmDt`jl({ћex%ס	ig;Tnf8F-^B	tTR8MOV:
w8Sv? ydP,4v^lv<<hŵa\
Fk{#MG8<:7m_˱d"-EXj9饳!/!pcSx3)fCDhɗ'"$ɧP\Rå5P}WUf{XEs0{7 <Ux3)f43֛O GH{x{2fT~͂o&K{m^##̈QfL#/8 Mw%9xq wF~qBJjYfrfiH&	$҂bl\
Z
Ee))
I/p0M  杜TYWZԟYT\S$SeQ1* b=v̢䒜J%y
y
iy%yP
i`csS3H,KUWHMKPn7:"L^F	]b7GK`B*N_6wH22荌+cfC2F4՛54dR'lnPo$m IIJhlv@1is'3vS6s<BQ!#Mj6 q6s;7 ?xx{ϸq!G!,6s.+&+ݙhwr|!Č'7ڵN5ɣ7R`]d;9Ͷ:ǘ&;jެjbzc,kO~ 99%}f'd'lg S?$P8$0Nn;dA6d0s)h) CTĢ\2Jsr
J1*!	W>YA{.d ׃$`x{xqd7Vͥғ/(  Vc]^x[Sń&޼L u: Px[q?YJR6_neTQK)MKWMMLT(N-.SHL.,K,IMh5 y2"f:vF o[x< #=o*$!X-~4ROUTING)V&x[/vU<)
%Eݫv3MV Rx[q?a:
y9)y
)
ũřy
%e%)&8OOd,W ^
BxXOGi*>RcQ
1HHL8ZݱekvPBn=DjQ/9Tɡ*!hr쩽*=~QCT	k{{_*ǔbkud,b$]N<
L
*h85dG+XAUM"Jce"6TEB
4(7Љ"b4<ZRK8语=Yը>aQց v]ǦҳNӆ]C
^ZY`8eu "E[DKEA&F-DH~lzI7p~+}b"3)ؓݑn=!I\ODR@f!CvtT;;k:~y:}u!2O6-?HtSK\`\ơ_]E\@|)pFy2pQހ6]vuFQSЮ hB1ѣQ&y``~n= \^/1~FK#z5#駾6׉nϤeiD)uZzh͹ױ6f@T+^`28XV 8/ܹIm˰~DN@m%QG-9L#A:Bpl'8㾠).|LU9@P		zXD6\ fwY\4e봭u%iP{բLz}N4ܣE?w))JDELb@e$7:8TvJ'Ka Pg4҇xL|ܰ>/Р~>  |jƒHaʁ3æ[CHc]1F's	&.p'};Wh{'?>AG!Mw,<1ҵ{'61:|{Cȅ:SZIl$%"TWdȻWt/C85NEduTTh?+XҩsD<󤣑+GC޲sx
A#J4O " Җ膆n'12vZMtA4UNW3jDf55ϿXTōVFf>"FH/(VLf&{-
Jsz{dt>Oa]HP5:tC{O|Q7X%y	%3$:\g}#e`hCAV2
|,&EΒv[,=#oNWBZN[ZN͞#t]!Y૔+Q,RfPLF΅pƚ(B؋-	xkq;נKB$㗝SFROA(|:f1PǪP/b
'-p]~:˝֝#es 	Þ}JM3	>uލY֨V,;2 )SMHNnNhL
ڇغ_PBܶ	q%	|2Sw3NatD]s&6Rs:|22p|Fƅ~"h;}e˙i{Y`#0J
\ݹoп7G2i%쉐~oC]Chч}4ΛkAȋkڼs K:ix> 6WB|h%D\+?:B	/** @} */VB)KMx;gvldUiM..}--Z-} Rnx;gl6rd ;<BxON@J`QY@ESmC @7vhMݴ{{ӷK#RlZc8}_ёmӼ>WM}2=gfJYP6-u@9ʞh_=Q@}DA=&br>?Mhc>7AHñ-_]0<QlD=qIAut+Bip< B4)[͕gqI]pOjmq' iSe;~әl%2Qr6G]fbfG>Ng8q<6&4۱?uJCivdWP*PQEaO~x"l3 rKv@O<x 66r 	 xZo9~%/	Aӽ\_%]5@B>̮+텠*?`)&=	fJ\Yp.)YRtZpÖ}O!< #pKbe	'{cb%R
А*6)(&@IL>܆h	.HD \v{\u%eSUt^t:_4U
$'e$T@&jD $8qz)f|vJLHj̄Li&`VoN@;z7wy07g8t#`A>w/"bO dM1QZqa*2TB6eg)Q#ʘ)êBCc&b1DG[qڍFi"aL4g'H_M$S*łs!2Ό"`21 a-1RI[)Mr=aӫV/4iH˺PT|W&% Է{1c ٚW#A~es!q*\X])<DB~&bni)q0putk`:eS$~
}gv}g|͸{NKz`A"'Ă';&v(	I'I*ATTU~4N)tMquRUkUĩc6W+<daF"10n8d"Rʒnf^%ԄF!YPpQiZ{ers>-C!MJR8<wC:ÚFg:rDфwe	$6.&Ch>,,olWf[Pe7+ef*х병Cb$t 2+%3KmER\,k0`gr!Xgz|7|gC],
cblᰠdXafDqʞȏ9L kOs^c;ka,iEx`!J!%kqQJZ:姶wޠf{Ny~76yTxRO0C:7:=k2<O(Ѳ"=d0eގ\7\	[i\)9Vbd}#۪m{iOWehZӬ`fDyE,%v"J:^vK8_O}F]4\穔hLA*Y]WHnʞg;diV9= OCfob8VJNNʵxjz:"XS@gN;U`"u^w%B6l7I#	WՃ}nZRePC?%([WzZN響%̏0|sCٍ,,YfB#^bۗ5{ڎ!ѥ5l;޴wWUyAݸGݝmUyѐMAyAٿn<gE)dVϢTUh}iu2eo)wu{Fo&'MԽ[Q^mEe8\y(.(}s={WDd?ݮ~_e8/j7%x;wojAN}--Z-} S/FxWKo#E$!٬^!Tu+$V+dwsH,9YVLOL{f-ke -q]@"!8p#yyUW_uu~w<\Z+3KD,̵T$)	4y4Ζbsz֏f׋g|}nx`֧䈂꫈
"`50Tʘ ]& ICc E.G۹W2t/	&un_sKK_/(mdg6*n}UyqW5°'q3?Rbb>e	)uC^F$21w"&cN'S2[r!
0f5(.
-!QU!uq2ד,s+8lKJn*!at,`"㠃o0!5e(OC9
+bHΧq#\.C7F"BÇ\!Y[ɨۘ\Db`pIDr(EFxjRKK1=v(d]^[_)N;mGC7_eVϒt1k	M	Xܩ)c~k? ")Fn.+W?a1\9&P(ATNo}23lFRBIСm\WǴ^\|`ÜsښՍ󦷞_.uA2%M<=XJʣ9B@aCb'#Q
e糳i*cw]$HAsCFI1ⴗg7ܨ'J.`Hvaf0ym;Zwm-&!Mw!nJ0s3bpF]dz	~WES@N\Ԍ)ͯ<rrnrOv_DcP\ղ,lō8[	:yHTʑ =dA&U?2#GFrM9K?L`^XwU9>1:6#$#B8S]A=3 } )5W.5{=́(\
&KkL<aT/ASBn^XK-2c"<0Msl	X?k`mP2ς67ay|nAٱ{;mJ@m誙xWOoEWILT7U!LJZ?Ĳ$TQUXݱ=jfUEW"> |.fwgwvP_O^^ԫso/"y(}{nU&sowl6|M9?5(ϟn>1]P*HqsQO\"D?)C8t)Gmf.pp)W7d/
&VZS`_tIГ>,=Ǻ~QQŵPbC.˥G.]àf3?ԃ<x'I8݅D$. /٪ Vf5d1o	y(	Q>fsXB .G<'dy\!*ePZH wCg<u9N
2  =Se@KaoH)vG:d Hxy.65Q Gg Xr l|V.P;mAI5 9Eb`zp,(uH70n\|V?.~{p֡P"HiXhP
]_z3I1?sŤ&887FXMnf{{ͯ ɊwFT[Q-[1)۷pHNI&df̻:7ɉMr:lƴ^Zz95Ջw^[5A<%u8;PTRHġ
E,OJ*x.~BXA ·؜$pmRYw^0FC}aejFHkĜEMar7?n)TINVI|y|׹;|V7N%	18AT(i!z2=?ǑWN?2)-]~P7dfnOv+ڙl.JY*,TpA&ɱ0.s<OTA[ZR\:kkZtG	?@>Vse>>!26!$vbaPFeUJwv8K>~uڳŪ&/hhM%2[eAWF(驺EDQ+9~AVJ7έ'v1H~u;2	%x;avlZ81n.7isU6 'x;jhu'7
m~̤
dhny{ddC1
&	|Q\qEҦ xYn8}WKx6]`ۗh5]i'(,jyk!%ˊl/@B̙9 =%/4y / ]1NxrcONXLL3I?\'IEF9
_EkaȒI&41HSF׈Dbf`~)X7:LS mAB54ZojQ'伛:Q=8],:R_%lx&4":WS"B:iN$<w^QPM̕|ftE F3d쓿`tPlJ>?OHo<:LwBa0:5p#E0`B"K*gOx[&3ə\rQU`jRj{/4X$hk1d71eLrR\9gAɄFUMjMZej"`4[ 3r&|bN=6BnG%e`B]K@[wp̢^dI!DJ)xU<$@Ec0ʭFêSZ"+x)|PL#3m
,R>T!3+=%&9:[nO-	~a0a8G$|"ʲ(5Zz,E-o(8T+GaQǾB  {rbTvIۘ;+&"Ft&R9C2X{W5bb$If:[乐@cA	;^k&R4HC~{w^h d;VR@~Jyk9q@,#
	D^gYW6>Gi#I\e9Q8g08ApExՕEbLAPwTҟLƓ0LCIܲ(@[Yf 6[
1Ԁ|(s+òC)]htNmX(C~eEt\tf v*YҶ#4e:aFĦ 67ƧEFaQ><ƏCZ~"mNeH3 mJKm`rٛ*riTbRn\"Fqџë#KI\˷`ng6u]c.ho{]o+Иlu<CGn(H̀uZTwZԹs]_ߒN䠉CcLG5Q&e-:vUMN<ΤrWaV:^OShdRLj}N_[\|
c[ܾ=i=Pך܇/X~(Ȁ>$@PZڙ5[7YI΄HAEiBFZj6c;,QKn6Gd$Umэ0"ghNǝT<;LgBZ[D\Ev"]G}uT5^[}A݋uVBO2CU͟[kz7"[u|NJ߃Ҍ4ǖl[!2<(+M	pI^OGFsóWlPiIo'BlgM[;]3^zw-;?aп*wFQg HTſ>wQh<v&~ [^m>+vo	@p$_xti	{$0nbgd,+Jn.DT!ʏS_HnY]
Jx;ti{%0N+>@uGٓe7X2Gd>%(w35# 1x;thC{qiAA~Q*1L2&)V\T *^k^bRNg^IjNNfzj^_~fqjPjJirIf~d>'V 'kqx;4Yi ;yx;lp1a"ҢԼԲނŷa30u@DR%"'M" zS?x;lhCWgBqrj^d	sĒ6H3 FuxgpC[j^bRNj1F({rdv	ϼԜԼԠԔ<W"Ң"KjYfrx !7NxgpC[j^bRNj1F({rdv FwxgpC_׋1B9a̎yE% 1#xgxpͫ\'3KLv ]!o~xchɢ$ 9<uxőJ1+a\B8+6.xAYRqLdNI "',,|0XN9|~y=0H+J3t3@0NkEs"\
Ɂ\*0MAB+spMh?YwDXZq&yI똕w?mcMj&skاIE(0̆)%!w0SApB"ZH<ev.&\4CZf#WMLK>7X иf#9|\Ұ{thueo%ɔ* ]_;B?O|*89QuT]m(I~L岜
QRDN@~d]u.U'O4.MkyxZj# J0x}JQ1-p/T5ZZ8P
e-&=;rN^!3jY#\uJ||;3",w'2落G~*#iMKl P{4-F\qv4)1^ 6%R93BY<@RB<,jՑJaњqmPׁx{XeCJ)ѧU.NxVԪY{Xǿ9#=׶ŬVo$o3N؀a$s[RB<B%zSBiU:6 uUD`50mPfWFbvK,jK%17Q8	Cg<a ۑ_^,_W
Y4JF%@xUPJA%M1Q(<\^fw&eJBl	gjupy}՟_ՠy<膒aFG(	48	8<L2Y&3!FF8dh_ʛyqQ6c歷@uLSN(Z?2*\0yvɴ!jpAKMnHľՒ[Ab,mipoȴM$]#mV;gjU>l`% `;ڊD:-n*^1ܟBxUJ@qSڱnRэu!E^&ɭL3q~(Ać{
>/NLq50}{o;o8Jn,Li3Bi*d"IOZm"-<zQhJOX$0@3<儔+>~,(66Z)	>w뀐阹;Mt۬zNܜ14lt^W^E2  pQrj
|)cpV~ 񵄁
x/2OdC(;CAbQbBVVͳك&J*h )vBx/XdC(Vͳك&RpU 	XdxSM0H{c$F۲Z.\vU,VSqikmjiU?\ANڥ8)c<񞽐B=KB!4bE@GQʩfs)HR>`죷!SE-@wH	7m}"R)-"П\6WsvmL4*mI/
yb"<j} &EPNz)dwDy-%߆+P\(~UuKfn.ztlgJ&ZNkfEZ.JaMYCݹonn [~2:>}D/wEM*7r;n΁ewn_ͷz ͜8zqh6ʐʵ+	|8{Y{FRio9)(*(4j.ڝŚ9~M,KXwvu4.mci^U4@42n'hJ+F'
x<ksȖ+2U3)c݊,D; 1ܚR5}#$]=lT~H$0/Vv*S2H:>>WRp}~vAFݦP!%@zɤΞ7~L&('$B=AJ];5D1|Ԫ7_~c Ax AiL єz'	>ryQGs<
'㳄cx!O'({w$:׃hvGj8FwJ#`x@8\<R=YD^0#PVCq0MqD	dEfykF(n;}xkN,ꚍLчi.RwF 2i6!+$LARN$#hNc18a`<:	NW%Wo $	fQȼU	&\:IiGL 
D8!SS![Xh%٘C`z-S9 ɗvIW9Xx Č,gU:`Aނd`R7I%j#-@>Pq ([.2WAԣɢOɄ:PHgBNyN)2QsQG7{5Jsn_K=dxyha8ziE`A۫?|Y2sSEX1koaT'L%;kߢ8 JЌ$9_i3gY3$1̎?4uQo5kUѹuNh(-@,xh7Zl$Q&Ww=U`(=-ts2%mpUC</xe0l^'j_7tvW_Tc?iݼi7T;L;Dv5(폑,JB(F@B p\* ;HyuB4a7,3RYP2jddC!oR:ǅ\%;C}Wm͑qpY^dI5C!.- 9R܄9UI{Ѫb.01O{oa؇0'
}|U(+y08	NH27酻R7ݽMMu{f/.rL!)c@g:cIG3>i5c舛\>W>(ގ)`Zˑ:?I%D!""Khcx&Ei#Es] I?VQ4Y7Ro%$")F(?>hf)ȚȆdBK+j3Ї-si 'U!x/A(ts@zWG4HbteE2Ms7(	}tXG
dQY Se?-B&%(z%ql>H!3\V+Dn{gY!6=S*Osh1κ)PVqyH:`q@sJ'89Zx>VKlCs0:[7J}`<52]6ñAL"5NS_䉸-$aCGRq2}#Ul,; */֚7֡DDX7'`p{Yi9QUHJEj\3û;76bPX5fP+A*Q[?iHHGt- bt1}g+-<A|70|\U$d{4P8]+(dA&=h[ChZ3>0K5L(^>6C\VXԹ("/M/"r)"3K:5qBӘ$ėBWʠ!
r9PAH=[Q-凜3-qD
<y!̕,Y	2E?1':Gw$^`>\;=m-Ąm%>ֈ܇eKc[Pl(|m[Fkfk>˲%6lwm}2"H AK8;XwZߴ>;JgNW{"(GG-a_7HAg>z	dWβrct]my4[3@m1ĕ2BKڽ,^N*Ĥk^ j0 cJ2XƳڸƁ/ٙPQZʝ3-m+)޼\cr h/!fѺ<vFekz-A6!_JBjGj\2Z>r[ͯ|8)JQ&ͯeGu[uRUG%]KoZTW#D?co3[{yXYR,Gjl'P241uW&*,eY؉vnT؆P"9qFW3HnH węBvqrr4*{u;<=WϮ"+Lu$,Kϫ6hQ~P_X;]Ѹ.o&cJX.h0m;˖8ow6`R8m><h7Y?t޼Y}r
)kvlLI}#C.&7k!f7
S w0t-Br}SY\G'@`hUYK)VM^[*<ǡ~x"4;;	^;XQzSQHKNikju=bb;i|jnA4і(OiVPQ=fܓL	JIQo5ehUky;b7&b_G#4մxRw*8Ї1L#S|w?+*'pߎ1꣟_cf,6"A3Lx\^ˠt3 7 Q]Doɿ8-!>J.{.k]Nuˆ6Z\W_ϲ,'xVW	BnQC}^9yJucsN@6k<<ُX
A||o^OKy`*1xXx2IBԫlsO+{QT^pZg^bۺ
Oӽ9hg0,\fkRj#`a?ׯ{^h~ũ>kL^($yQ|
#4WVf/D,if?#e2_Z7~_H"$lU8X3bsW2fH𖐙M>'9f4wXlnhb*N.@<Uwd<{lravGz>!VD
6m177jNuhq>~Qh2g/8࣋O(^o49ciz;ÝEFȃj
v̻8$|?C=g) zmNhPEvr__Ai#`9JRzK%qI0ysu6T'mڒ
O@@z9"`:y?4-S-_~"qh-VڱZO|X|rL*OE3{-`e3_5Cbgp>uJ]rϿJc:dŃ;EFo>v2Y)Q±6,$r=HiLvxQջC*l|`z5;*O
!b,|<t{@ںCϮ8oWvچ#!_K#7ΖsdBaIBL iHCcr#( TDݨx.r
*4eY\ߏaŰ|@e7b:Bl`auX%	a^r޺`kRڴ[Y)Ld8$݉NsGb)ZNW+3HUe MpKVs'$ uZ>UӠXCϘ%	9ц'݂V&׏Ih$	>edxL;IJ+I|*Lyc18`c'Bekm|0gluvg7ϙ0o{ZS+P 9TnҖ4
c? $*!i'_\ ;X+Vpf* nS%%%DkkImxH6lZ.p8	<s'%Oy_L!9,c)GJ%+$߮!pJH1V>h`d~ݩ#fL}:%Se|:4nGV:6}Bdm1aD=U)ç\;1(x (_?籙7F?x;qj{'d\7Sh7Ov^B8S&kK9MNܼVzBi^fBJjzQj䋎86 ;'zx;j{'d\7Sh7Ov^B
fb:
f:
y%V
)E/:OwؼC !Txۿq{l[')NNKUHMKKM.#vr\LH2xEQU.d4	HULH-.Q(N-KW(J,IUS( QhR&ln>yDiͫ&_|8@lJ&c9۸6+t2MvU|XO@"`q&_7?11, &TIx^<x cf>63j̼lҔ /=($vr"| 
x^<x cf>m̌œr$d+$%dm6ĝWYW2mU̹ش%r2AsĒɉ\,$#?敒Ldr1oަ4YIPtmmM'rLn *=?4xUYo2h\DńRK2J2sSSK'TV@D'?4DVhrojn~QBbNN~2DOZbfNjdEQs	_W_xGx7GOWN>~
 +g'ٰx]osFbjųv*"ϛ%6Rgcpr+JDH:d֗tь$ڤjcutF'7>拌~>~}ʽ9.h5U+$gyeډ7&"#uoWo_$qlݳ(X.8!g'"6Ix
)$rnH௙}!2YtrZZ1܊I(/'WݳNoV7F!?y'K7VCoywYL yx#?YL̑ffn_ R"=d[s{6ȯѧ={ngnwuozk~cΛ`9Iqfr;,bɒH4SZ4Ͻ9g̈%<]WU >	ey}TtA~8Oͧv02??NҀX?_2Y8^3rә7-[~ҰDL9>wJ-"`
w|LThDp9;TGW2y%HfddT!!0Mt8R[0ğ_=^s=0^z9t	M%b){16_l&Ad<̂%E*1 c߂lf@3ktxxuƝez󎴁o	sО5:@-oq0k<&a.`w`fD.  ✄-SEx,#ǤHcw^R>kǔg9T;{GӖޞu/,4t
I 3/HeP($KLm8j:D/Jxmwݹ6n_]ݜ/ݫ9Q]ea<= ]	:׆3A l7tvʞ4.x 9Jhkj4*"^pOpKtlg<ȵ3L~V1ńdq˚bX(Z1>C59P
 BP	A;@3H08{e| Y붩e˖Q418 bb]2:%A,~LFu#g,Hnլi\3@`49|i2ȓ$N34D!Q#tWuG]x_El4o}`﷠\eZ}=׭h*N
VNJ(E2rad=xRO'GQvi{nF?QCPkt
5i|սt/'$uz iO@2N:0*1l0ab8q]*	.wf{^\C@>p7j*6k_54*]zhF	x°em[#
"kMꔱ.c.1?R7RK >̞:1WUۨ"5nYy7yׄçyD#X]QqAŻ~pQa'1~EL)N'GR `T
/Tf-%0V%, 7("`1JuPw "C_Yy_X35G+p+DZ8ٳmkk{@XHz!MӅ3!`OK.hn6#&6ch5\%	eG#d1ҭ2I{W|D"V-UVŦ	JF%E`/$Lk{D̷#0
4Q@g RbaKAW^
PʴcA .hܚ\rNSV)ģ`I*L@2}f4ÛN AJ#I0/G۳a3=$hi{ !VUKt9͛6wFu^&MhE^TC$,YFUUSoe+YEiBVVLO/ɓSD )bm.IH'be}(UP`Aޜ9%
S7JÀ@}ExtP#[IȞqK[t]=j[pwe!\#(fa́l=:X ]&Jo[fT.f`S,ɽzj@R|#ut,χjppBnԢBd^\rs%B8+s#	U(HgPH]m3LM3hcVi*yN	Q7ˎ=|?#wq7
DpMkM8l8?Pw,c=2x$S228#xW"#\BOTVA/~	2Vk۫Q;eG=AnK53ꏋ bԪsc`/6)H%D((fyqI@\M evgԳ޽vPhJMY}YMEqE.
_Uxȗ &ZfA
SVJR3)ƷqM
>ŉ]tӁmhAN
<`[P^F;2`P#l:x('FbyJb"6&qcR\Ñc8zjJ}DL/7Q2GE+Mm'yCcgTTssb>.:\dx2]G!=!,4J_;>b	w:WdIvc=FbGrnlQFo0J-LLjKq\ؿB,rĹ|ԥh@|Y2
UKOSv|)3Jl[c6l׷ԏk}hhTѪ:jZ_RՊFc.>Ƈɪڵ=NEjEVZ!mz*H&:;.}X:akD)bav, #5U
L|MK}+*4<T׵S&	șqGHKԇ?bp"*ڄV$RWPa{;I$v%* r]5DmfUڴ5/n()EjŘNc/$akW-lu)I B%Mw(ʋ2Q[u4ZxpvYIV8˪-Y=gZyoa/nmϣBgfQWW^V%"TY lFuzݬDK.`7̞I^4*{ʭN@MvK[=rNH[wٺ0z:TIKSjj7V%QHI&ҚWOy*lRbbZnbj,~df>%eugcɡHIb23Ս/ĞN2*tGqlB*S|q`#dQ!I$7ENNةTu:mrwKoAZyZBXt	jsx\Oj\{^tץ{a(RmH@;Q`
Uh}f0B7{J0n	ҔP!+&]E=]db)NxɊOQ-KUVmĬy܊)>Ex#$Ff-tE:I *jIX]R*yiJE"m"X V{dwH%J66Ԯ,cvU=bct(o~m0Y\X}"]6!Þt~t:`8%u^:C
!ׄd֫p~ӭ)sXjA2,}܄#V7hԏȶN@D\NihAV0O?v=aװ"ud^IF*.QgBOTBL)n"1˥]@'HXOj/7).ew$^0B*;IqLle'nTwtbm)f]ߓ^Z/5
u'm}ЎIn*0AތɫER9#c-ڱ@};TpFS<jD#T#'f2By~$B51\X*&Iyԭ C2:܋Kz3]h}q_i-ޒ$QuA'4
l %"DS6Z$\u
aݿ=ѡ$P)Xr|Ί}7.FTM|@/v"0>)J^~Q£/,H{Сn
[9Pz|ɃE`MNV!}Z׀4`66KbL]|¹e+\=D@TxY ^jhlXksʑӼY*܂гgg"y9=	(}9ВnϩHic/Sqz[oC&k!-vB+zS?>9Nf˳#s}:QIRųgvQӮd-JG{h6
#>(,c))*fly_g7^LcFZᰭ{YY@}ެ_mFDmQzv̴[QldYJgj7شyJո1}pB0JUa5L6xIOsga,w'â+jjŹE-tG~ק݁66qp BOWbH,NhZKP /Eg"Q2`FqaAr5A<NI3mт(ᖂ|L4>b{ymH<R[*"yII^3y]У^QrҒ{g2\Ir6]V@uח%fSi-Mo@ո2'Z쏾j7WkvgHf7紞
Ykxs7,P<hP씮cu$/ۯ/yUsS
g36SNzym"kZX=z}FME:-B_e5amB_v/liZ($1R1J\ ;% kl@4μ03aGۅi5{\*F]`Gd]`L'@SdGۋ={Jd
E^SW;'Yc)zI|;_.2:03b:md?NM!v,C	%<t4Wga/@rԻozݱ<|uᠯ~TNs'/rΪ''߹BT@Ň}3Z#jUlHR5Eʢax`XCtsBwaFr`"Pd֚߇PX^G ֫NH']Gqxa!5@x`q;KD%bd~J<)h:o /Y;T8s@zWW?EK; ˩hPJ<?^I4st#G
19zA<.>C<H:3"S3HL"	ν0owi75{ͅGѭ_Hvu:}D5o8lT[_HFbF&fxoyд_g;9a=)t$M??uvmyx[C6L 6@nx[i+o7m~Ɉ	 >o,x[C&F6L >Gx[iC3&/S,TYcrv$żo&_ (	x[i]UYg)Qf˔&j[oST(/,IRКTy9=)9Z$X*&?<OnY;z1MY>{JfXA;9S0f/0Vy< >	Ux[iC7VOel]
 `5;x[viCu=7O0G
frMrd.͞NLPFurO^9o7(fm>9-Xp9l0[#8Y ;!x[v16ĜĔJd U:ِfpQ}8wL64(19vͅbAyjDIXCf]`yz ux&dۼ˨&;3\`ַYNpo9ki]L@v(_?nd7,_3,6ήz)!Q	aTvC*r!i&s0crk[u r{%x|㆗wMv6KfSzĘ9&UuܼXn'"T>٬7qA}M&Fom'kj %VL◙l³Y̞ICss@FG|79e	lqgwQ.NL 
j6w3O^rL@0O{MV4@Q®yyE%~)@£K2R'GNVH-f6#VaN1aOP_PRY
5vf\%Jo~<ғץL٬ΆUfu_ȓ#	sdr屺c<&}--.-4|ԒԢ\̑@%]"&7EZ29 N#(O6r(KNU02Ȧ3#u]7 ݊m?x{>J 0xVOLU,H*
R<XVJWA?˰](ȲFPfg,3Ribm]IӤdL=ZhhCr2^YnM<ډ}}}o>>?l萳H	SNjQ(	X8Ecy~l,GƢ'V4M
h$:ET5r|rzRƼ]^&Mo1VZTGTT.zݳOu#h-ubjr4CT1,J$#mjˍMO=;9|~.Kͣ<W \m]s*q+WX0\ZS\Ʌٚ/}^(B $GwO}ԭl-Df
|fw=N(ﬄ;rel[6ۢ\Ap$3KǮ!zXwy[fϙ#eTѷ^is>_~vsP[2]cRƲ n;VFrLbzWJ4Q*!-$>Kdthi%!"ց*
zD%bFV"P0'w3#SYpɀ 0$p͟>7j1?؅UQI1!re#יGg~̱o/]F@x(Thwˬ7'isqXqZɫjjvDKpP*{Us.Ta+ǣ~)Sfeu6FBfAe"l01wGK'Ec˝; v4Aۤ^hio]՞FSVHuY<,	lq>u\sSGl0B>bO[ijćV4%W#|V$(˞a!XnXn6yk]?=5{߻Na"^DmdtyHUV`hl	kpa6kP"``x}'}sj||!W)Rk1x,S_]or*q[k8GSL|/F~=}NAnk.=]1]R	xVnF}W$p)YIi3HXKiQr݋e!wvEɗȩjTE3g,om$[4.x4~)	a% lpE+0ߑSR1a8o`!6@K6(b05k(ےvR]G5+ӣ4{	>Y0Pm?+߆z'rlCpa?aCsP@ҿ(xaR%Y`Y@=-lk4SPk"Ғ-~T]a Vp83gQvjAFE2᫟~GaI
AO<Jb<~|_xr
+<Vl5G)bhjV44dIa)n:*[
,LZve9*-RTLJ/$5\Jqêmrg}gjT֤OX(hEeGFl4mz74bs)xpmbo3t&(>mVLh٠r`+	FXTg_(3l8ApC׭-"jaIYxQ]/]Uzjb?O,+g)}.>Ơ+].oCEQvQ@oQ2.^Q^ޟ]-$?۵PmxZ_[~KiN`?KDr,I(PDTmSًLl>͋la0:<sv %xg4tDb	`;UJiQ|OIqu4:nVq\mh$bΒzO:~49h-akQ*?-=#UI熚Uk2]'xg$ɞv9y4XJBYnǪ4g4E;flOWnDY)'p׻,n(QEV3A=
7*P0^=SYEa1	?Hq˵(}˕z!E߁?"Á|%Kci|+C3Cs%#<5w<:wxJߢ}|dY4{~XvН}Gْ`tvߛ:~8UgvL,?'>x,GtLvbㅋR3RSK\5&;p0m.bExr<	 ћJx#'a+CRQfjKjZf^jBIFBQf^zjBn~JP	XUqf^rd>Ne̜Լ$u$@@KL;xy{(*U] ֡TXJaNA!@31/MA3ҁ~A>@tj=KS2 Vx#[tE.N}--Z-Y0x#:OhYjSR2Ӹj'_R g
ѷxVMoFWK(9maZb*%]9RgvI}ٲ&=͛7xQ$4gl1A	:ikz+LgNb4")5'wN0g+ȅR!ap)!B!",'KgOȜݥ4ksʹ.~meY-!2UkH\RHlBT3!M%;-&(%h`RlM"5N .{qh0Agwt<|(hrM* QHEEIZ>-a*(s
sLULL\3m=8j76,IJQ09e}DrLa(ł',P)Ϲ_WC)(So93si7ms,fh6\N,001&sbQAՎ9$L3:.J'%k"fbW+8PGNx/3pֲjuDG\}tq)U%	7r]onPDYnkYWm(2AMJКaxEV*kUs_o0OxvE7/(>G¦Cl7@	][کU(2VqLn)FƗl}mu80t{΍Gᴾ"PH`
n7l2MK,dby֩)7#EЍK_|>vywzRҢ0`PGKd&P iÜ钐&U4Y&gI	ւC+))B'tNF0C&BC,YN#	cO,A/4CrusG0vh5b%|%Vm|i|\vρ0dgU4Sklg@Ti>N&g`9A|O)3Y+k*PG<N&z"ەŧfqS>"]+awt8,"K)1-H5|?nppg<>z[H^u?T漬^{E;
-@	43Ī_U-FfBis|^/_u~7?~Ξ=wbytg7gW\<z zR#x.w\vC*dNl. 42?x.&kbiJfBqIQjbBfBf^IjQQiAIjBRBIFBqeqIjBfByfNBRBn)P^KB&SvVP]74ĵV!/$3-39$3?O<#5O '2)19d)y)@l2~EťY&+M~ˡYG J̶x<mWLb8% (IBiŰ,$="$4Z<Z~|wAޑ^2%o=yI>.0sstIv=#~)?
MO QFVQJ?!?~:%~Hh|7?]2<
#㋀=.w5|[78-tfu(~r`tK0IBb̏a[⮁(}RwCO1~ODt$,-L3/ !yİ_[6l8C>kdd12/a; q@ܤ\6%')YS_L-|'Jg0#OP	8G0S7e*BD'?y=Q&-{ا2gΉӅ]
Nip."h%l]{tY?n,HnELB%U}y
|t0!LnuWG,ϦO Tls7u	yi؍h@w鐏_G^ oAL1LX6곇La 	 -I gV9Eͼ4.xͼu%r"__D"D^65,oSW!ˋt
`q* @qdֵȂAf."I6;\"߰.Wtl >#pAg7wd^NnY#kfSm`gc҆@u--(f{m0M-n2 8y^b;:N}-Idu#rH}nh֏jC\pTAhNL{2,GFPsΘM`5|ܝ1*1s	q1|3K7[jEl}{ؙp7U:5cK?àvSK}6W}OY}qRb~=¨NF{ᇠ0NDAU8 /P	T:U1m9%Ou{
O7{a>+5qCMK|엩15JM06xFgEz@"7㇋hcvpŖ(sxҠUqk_)ڣ@,TqzPMdYj5"I$Id+,r&=*!oHsA48ʥ}@hD\tZn|YKG*1Wq&֎neqaZeqkmzC4?Ϧ#3'Si/Zغ4Tӑуf4NLaA#9b܇9jm@fo:<:!`ټ:6Ь!٬`xa ٟ+,04
OcApF&RٜA̑cᗪ\zk[4$ߝhUqkkĢgbAEщQeUK3I,bމZU3E_Ow|r;}B,U6g*M{ rKŤJ$s1aZF_U|/ix ҈bȥ-D%!@<XGs9~}(;Ap>w>5vU(ft eh#k]+crҜQSMLoXzϙڗ[	,(yONrD!$.({Zn-YJ5vPGVkzE9J9!eNЀ^L%(KYʷ0=AHAqdSEfth}M\Q4󞫶b5ĩR4#
̀Q<=,~xL)	 g&IL]]b`.nalcͪYDSf!nɚ&2/#Jh>Hh<f3{3u1Y@lЗQDcmYUGKY%B̒`qN.2ܣrmpǓ[QhnY[=]]]-KZlvÐl7Ի^ǣ9nFǤR	=GH-L5SqeԓQY=+cT3
u91GQ~}ŢP'OJw2	gG61j`-uppufTS Ei"Ө0,;pl`&y1'`
_Mѓ|9J^d~tor5]ur 6LWR|Q_Iy6+T?-4diEP,NBEvV.;@__!ߕ ۳Z`}
kOFVW$\Ǒ-p~hsbVy]uT8r瞛-7x"1EF56a_Ux+ى@mbyIQ#@ek9q{aX"0MB2Jf0Ǵa~b
uN6Kr$?@f4dawM9Gg:hɇiGS}LWFt?w/1| E)x"h$nkYN&U6BpXNA4̾>Ɩs ՛"CDXn]BA`ؐݣ~wuPfAK_&GЊ*A-bs{iB4P+w,vb7T_7@6:6rWpz侅xIuB*Bi-§m+PRޘ|\h2h~'LB[$<Q7P$TV'	-E(c?}v^Re
f[Pǘ˧UJRmxרLBIf<z#yg_0(+iR*m+UX\Ȇ7}_˕SIN:F 3{oI>˷U2ϳrx3?Nj.]yn9Rva?P&1`*V6/wA3N㭈Jx[:#"9S)	pʂ_t0VL۩s`@>rx4Hf Uc	r\b՜)0dt8"sNGu53PmЯ Jޟ`B5yD+f=2UMĤy?^
)kyj@-#`.dakH䦀}v>m.Mjl[A=
Gpbi$} oze>lޟR;}]+G& k3{v;@6s6v_Sͩ uŔ7.':{N(ܷ1G_	|}:e8_
{b䴘t+9'#ؖdy*A㻟K9ō,ItF}bU8[Tz,dzyy.^I-@}ӰQz2{BV+7
&<Xqa	NrçV !`	}V:ؗGçƂ%uaES/HaT״}=<kzM/'=>AQPB
uRZD#DC[zr,-[,{պJ^Hj#'J/	.IT+j82ϒ=-<-;Ϯݺz^01/x&0WأT*^Bȝj/hr;j&Ϥ:u3$cL$aL	fGQnuF;wCNf;"%n:(ul<D`Rtna0tAY-
XG!rP' KИ/QnloTV~
 ,ݓz`x#ch_B*rXĦW@Mr6W
[hiw"<f V`@:'XDQBoc!X{#^5̹ˮw4TIS%pcf3MgDbeSB9]McsUk8]D7&8}2]QIT~ Dzڜ-D	)6(z5;с@DAlKُjϯן{aV6[|Jx=1vMcY̭+)F`4XH@/kj16}96_ESؔj<'Qm l)"O	=Ek22;AMK
񁼵RK7㗺N}<ao@9/+Z&l.FH=s>X9L:d)3Z+7\`j!X>\\n@hZVSwZk_8< |X`r٥"d\gL3\v3^}Ssyӌ:I]s@ʘ;g"o[n,rt/Rs*?{	w_Tb3ICfgmU7ن2(K-G0AʶE$#Fl,ɰW{US1v4ˑg6]~ Oyw zK'Μn/nO]ˊ	F*e\'N3x3b>f2!)xo6qFK]ncӊ{}a\o~tnY&nvx۶Vi0 5nx۶qN4ی05)x۶s'}\y
řyԭJRKRJ2RK\.R,Q,VKMN-.N,).K-L)|QS9,[ (783?dPشĲ̜ĤT99
E%Ey
9yٓk&ܼR BSZx۶64&;3MTUX! 
x{*&R޼d76k2%&M6I R'bڜ쿋u(/ *mDx;RmAx /G\xkA)xVЃHm5ФX/a26IgfFx''A<x$4-03o{w?[q0{x{PE0Jظ 8Tc	>848F҂e E0V#j旽o=ثb:L,3TH;:8JIL&#iqxv}ǻuoWٮxawͪߩ^:ʥгZ,7q60l'?+<z蒲(H@Cyyid8Wk#X;Cj=0s(c`Q"8B+ l5t.RoWk;:_tTrt}:i<)@nˀИjI}A4Q3cZIdK5'I^zNsLSNS4v4 OTk٧c"8I9MW
nDBH/dΌ*V!}+?
牙Hi'YjIOJqTNIԥ(J!"5rl,'$K.+ԛ^W	z_ajʒl_ijV\Z(:zfc݋vak[Ve6ؾy -6|.~3Nx( ؝+n-,CAsKTJsgznAxs5c2Bx;*LLfM dwrx1|k'jqI%($q)hCqf^rd޼Ʌ"n!!!~A>$E)B($!H~޼F[G ;,{fx1\ˤ-&'JN~&Udh9YZf)e&7l>&]'즷*?ɔ{rd	S ͹9@I!HJ7Oq7:nzpOg	V,`Qda f=05N>ai׶[ /#<x1iRL\m'?*e`-32y6^>QAtsKNFnz!&rOn,aj972"|0pt(o3妧?d}fQIC7r7+X*Ìw	K;݂ =X=%xk8a6ㆧ5-&(O]dHN
gqOn 
Zxk4qr)&KɉҶI2ZN7R|^Wrl+t3E7[W3"L--?YRhr>f#Cf}0Ŧ& f湦QHFldo=yz#MVHm. g6shxkxc.BeQ. 
Z
%))MVאܠ/``24/M-WTBZ Q:x5 _L
\5U	3WUx0qliޓs%T&wyO~7y=;diHlɢ x0iㆧ:\
@|2RSK&/TSf4|QIjrgUǵTx0ql+'}I p	fxq~.FɎ87?g 	`
xxqCS,ړDM'(n"*NNP\'4z$wue':qnf7₳u,_P⓫͸ڳ&(@&3h(U*y(g̈i  8xxvC\38'bў$j:IDqQsɗ&JlQ?JOhgI"Nu̫)o^gX@ٿ'WqgM1PH	MgĽPTh<#Q8[ęYgSy& m@n%;xJ0Yٍz*xmf7zePցE)T3a/ bGΧc 9||y/Շƹ1.Gkkf.$1OcAi͆9ʸ4jim׫nJrb\p#fZ(&`/.tct~?{gs#.	의%\2Q'5SoR.|б )g(c%.8QMwkԛstzSӍW)+8?Fd>Z7OsÊVxx~C\ IEx;_qCkii-cf?IMbt36qUU0\h
 	Jlbx;_n
 +7yxx;_~Ckii-cf?IMbt36qUU0\uDt>y `($xUKoUVPiCMęI8vCQ!u<b2Õ*Ζ""@tQ*V QPqĎbdy}~4}8:ъLd5Yjh~|67RkZʿ
A!W]i0pf'pEvx]OCl
nf3P]RLvs hx[sGm{ﱙI-0ĉ@0^j1Hpdl:؅6W:҆,5ߌ
Fag<?TMl/>D2%ej:,9c1XScU
9z*Y'bڥ/EzOEO\~$>cQP4Ť|I((mB̳łn3
af>6TMA6nAmۚ,#4cT-
P.5,G]<-jk
{x3I﬿&yei,i)("_EMM4l.jKud	KaC/)y\Jײ纶fl	%wSSJ{B	Y~]NJoSBL"[ys<ӍN	+"!R0~*õ?]Y )<;DE&y|GGb+qP.s'l~^pv: p.X9c9QdE<jxzc?U$9 H#N22 $ub!AlwV@3c"@UFyx$;<F*#$]'|Iv[a\r`vt[eP	8Qe{ъ09,ƻSV,t[uԡ$g=A'x3vM'#|!N;1>KnCSy$TnPNud4vL؅hݬ	"`w-"CPZxTMoUUP>j45I6I{b'm%c7Ć%	Q0/xdf:,(ETn)PHI	/F̽s;ޭϾn;,ᖯK|59'!rűY69t!_{agk@ecUp#v&'v`	H?'	&n؊/pSϲc1fj%vϣu$8Xz2:LdlI+ErifkF#;?OUw6~/e=df/SvLff3Z(2[.PmU
9z*Yj3ǭb:/EzOEO,I}Ci"%Jk7	Efpr>ռ6 f例"lXr
ĲMF[Ln*J6<m#EbqW!ZXc婣X^;wn8?ȬV3Tv7SWV2/-E2)h(Ia\;JΡWk)3ͦ[WPE1-潹h[B	ByP3B]˦_K7udaekmvC`93X+,/dEt7c{{p5E6w=9gxmB>5\U|ӡ.%w_Ilgݬ9%)DUV6p~<;ڪH>qs S>Ft3K %|=t쐧I?omOY3c"8H:uu{UFH7?-z{bvin&nT/jPʉ,.0݋THdH'5dl*-րZב6%yS߮9@?`/{d+DPllx؇,ȓw pzw|~$&;0ag*z#uaT@PǈwZE(,5zxq~.FɎ87?2 pr{x۸qj,[Yx&L 7?vxxk_ؽqT&'L"Rh1yjAFo3	!@en^%Rl9Ncr<X^&Uͻy6FMr>M *d&/0Maj96s"ܜg.lƭPLN᛼.@wsB{y=ҼA }MaL  ssm5Td 6[K x^{v75ʛ Kl=x^{fC ,Z4xW{ny). 
Z
ΉE)EȪ0O>(``h<< zA^x[3=|C7kL93RRC'Hq+9yP~i@%m:<EJ'O`k\!Y݊qs9u\k&_Va\*yP·61e\#/H̘/yisibJpO+wp9}'+o=MͶ*݌L%nQTP29VGfv5tM6\05jYm;q:3s ^pxXKlG!yiA&/MdHRb/`Ư^d=WػݵU=QCCm/VʩB{*z굧zlO\ٝ:vH5{֞o|Gy>8i {}5S%U=ALS7˾u%ǞX|ˆхc'R%Ve>~B*&RLhG1.EaZ!:RpNNSgXΔ㙕b:
L]fUA~wuKg^{l5$
IY,xhZD,
)Kbűa7MTiV[leF/ҿ&~r@	RU5b!Ffr!RŦF	"hEotqs˷nq]+srB%S&b1&wb2a(א⡷]|?KcJ&!wLJj 0wKrV4dM.l'ƹ22B,gPh/B }yE_}#aklN/8m}<YZپOA/KPU7A
԰UkM@1ń/rϤtfŰ(M6[X:iWd\)fJvd԰ƑBf!7akHA:20} \:\CQ#|V-~I݄I1JE'dbBxm&^$r; tGq'
t:0&x'm4mFpּ,vM e`7_s9&q"-96iZ)f}+lQS#q ҊyWl&^=Ax%n)T7t΍sàB8=NgO=9C6"CTNĽpènp_mE#Ȝ{N&+eMpE}]ѡD&#aHRjPؘ=$J
RgQiq;)@P16#4GiC#vGʠaڦdcz&l҂[a&N1{E݊C:2I
:B9Q%yH]wioѝ1ZAL12$ dj+]N(\翸=tqevy
5"fӴ74?r f%KR~p?+Nf*iduCAvv<;pG<FQMb5vPo 2AZg^	 R*uS-<7~%)m\,RTmjPɫ
֖ڀ䕗^G3MO8Hf Vfp&`COxwgߡHɑ<U^0WքYi{!Yezgݳ&x 9g31tk;wY_ӎ[LT 
RIȢ#^&>0!V?s2=-쯜G轋/ dHvx>!|cɵRX8@fU:y҂
2Mm&W☼O*,P40 
<xWoGWć ɄJ1$PqT,",UEH^aQ^^[)wz_+jS/R&QY~~CŵOˇ;J?:qJ}ݰFҕ<S:\J\#E;yn$_$QЉ4ЙӋ`yPJjT(ԋ\˕Ý+3/v=#057KQ*7C;&2g#Nk$M?FXu~1HeI06AeHE4>x0Rר`$ڂLˤo_8#ÇJx>qqNZteM*z(HI/xbQs'ó͜DTmcH4hq^
V.=3TLohu/W*e9mOePŷG7]]?o.Mk[ŇOw^}3uG:3YZ(j!$tj:d6̴̴`RQKL47SR8T$[=ltpCvM`(9䕐I'ٶ;ҰLmˇA,dcfLTvo7m	sm9KXq}Bi>Lhm p@#~JGƨ,tᅨpw%).`Nq<',߳}Oʇ(@am4l5PO!![GC4èjmhmF]FDFz( '"?m[Q7NDh]bz6zĿWg0Π`j*M-'|y6ؓ]<CLNkp0qkwHrQa(2(Ƞr97BVY|6To 0}#љ$8!Xk.0{:JirXNvxaxNƮ< L=.j,dςTVNc`C3֩C`H^;EOK/v9NaU}zli	Q	ȆaU	IN!!>`[.b]QlamtO-Ͽ&h"@ozCzuk HApl]p{Z)J!g'eE-\&>GdZ^#LTEj arm"k =v.\i%tjy!@
ޘC2G=Q	CAz8q'~nZFU4	0P܀ikQH8-xa;85J7TokO3{;huGr
C*Qi"cQk"CBM|<y
2WPZa_ؘ>DD!}LN#-@syTKx=n@u᳜krZQÈL{;ܯ;!O֛0h﮴bX5T~~m,y>`x% ||Q ^;)@#!}?!6xeRj@ГP0(Nz!X(ئv-wje}@߯$Q=7^=\X۶/k-p.n4\I(w"F&Em@IFo?o?T(^BϹh경>	[clD)4*rlEw4Eҙ͝G=`rp|'R3#!OTA1GFAƊ$D)+,~}ڵ35fJ`^CʟzvļČ`a#}յO(ڭuP*LV>GʏɃ`]|L8-T4>?;Muꎄw(8.t>6\f,i'9^MlL5Us_9db2CNwU[:7c5U˶>Jܾ:DW
px[<n>m.м<=ǴR\R2S3srR 1/5<5y8N
Ddh5¢Ԃt>.Pt$&Q|:t3vNԫg|A/ i3Rx[יd+]EĢl̒<ͺފŉ9
(*2 Rrg%*MS2QOM43(DnBY~fBiqjKbIz. 4},xuKA)JW@RQ!mYcVS`@Jbr&;Niva2kCY.Ckwg\{;?/7%<$%3ۤ'ͳ>fHZ֬4+|~NG/SHfM2Xr&)J 㝲WsKkzq.$]/FZQf	ff2oթM/{ѳjmsF^x>utL%$ESQb;!67LSv~C^L/ lڵa(ߛXY䩺JZcKC䄴5aZN$bj1v7p932_Z8|yp.dⰘǟO\jʂH
ck
@[.p"{:#[?7x5-wC,i\/	LS
H,JUOIS|9$Ÿ|]\=\'KI-Hy%j5j=\\\_!WGciJfg^IjQQiAI y1 .x,ga7$e&7ћL 
"x}J@c5O
16Ix̈́.u)SՇ|a*97o7甤"R(`gЖ7UI\0CL'L	 PeiR2W3vՂTJyV/ՠkI
duX7{)=GP@B+=i9W)HT2K.m18ѝ?'s`OwwNO,ks(zvo3\Ʋ:x{s7wOɥBA%
ɉ%
EɩHN^#7y thk|Hdk|kcpdCyr Dtx_ppLA)32SRsr&|\xi=]\}}C<C<l7O< oKx_S!JV1,8(559(U!3O75%3;dsl^sR
Z\
@09\(xf^	 E'xXhC
rX"R&bI15XgX`LGF'|O	mgr DrױE W2S6G1$7/a38$/1oAl|A^dWmfR:\e jV|x)8Xv5	R ;s>x[Rz*szIݪpvrlt'6ؼ¢yr# EnxظqWM&5['`cܭ T:xظqCl웻 LTYxiT MKɼx]o8IOzwr^iu?!k_]ޮU$i#Rg{^3֌fXN{fo߼}HBHv!@:ʯ$L1S3?(DF!{[^/W/_$Qʦ|H4@C&l,gO!,<RMCЈF෱ 
ŧgbQp=ohri7[~G`4	$,Ke-S_(f6𝊐E,ok,jcd|XRUeF> R!{v%okHS{f>5zFwnU5Ag_vHg1 ؔ(M58,%3ɱ`hmo"aDl&LP	0#@N>ZvtI}Q:cW/#Q,Ř]\9_e(Uj$D<^2GRli@]dx|Dit=Te(9ubތHCD~ DXpA as1AsOG@ Iq< K(3d($<&ԸDGJUa?1r̺Ackظh_VrMs?#?B/HA/6q冇bxBnz1<z M
v|ɾq&0Y^Ԅ+#ΉL;	t1-4( BeuwaH5ᅀNl&
){<b"L(.T%g<v-1OHʣ!E@;r&FY:]Vtݣ@6>l\n)6 OC[XO?Kl{A|^JD&&@"=Mz4"^~yvfZ[i=/j\Fӛe9gehe@iJAl^?izWai_=Ub$ "NG3=ke% @v^$˱(B1LcP&Le[ߩw+P(l[W#u՟;p!THe8 otrOIozufqMx g_4Fu!8+5B^;#OWĝ鿯*0"w)2BmodXvTSWSeVl
2U+i[Ey)K!xqQg_4KdrT
9NsWқ3d!&Hoc.Q#~X	~j(H4]BˢKC#Cy§iYZO1}oHIl{Fm!>8 >ʦVv]Y2m3hGŴd1}yšl5FܻK6'H_b"[w&B_-m
H`iV1wX*qVۼ^0g%86WJrb1vC7VGmU5Lm&ʅN{؇71n"Q:($z2?1$89Dhai᱗92<Y-Id'u=H-ɝٟӣZQfD6TbBT`FebE˓-}Ƕ9Nf]eJnmXιG/I҆y03]_1<a`4%VJ+%+ӆNmE۪yZfmo$S̔zsayP,MU^W(
d+LAA|.k)z
M!H*٧!ER|&G,Tc3#l,9Fjuo"!,+DLĴăL~J{@%R	AMU>ңQdfEwUBHR5J	NQ _!H$
` ̏t
eggh51KJغ=XF	4B>K8w[:ەΨ?יhhx4_m$ȹDO0U0,9F^3aczPp5@BPAf{RCdB9:%4Jp܂CHd	UtX\$ܨw @Q0F0NHZUArIrfH-XfMT;3nAڱ$H9.Xh}"%Uh/4"C͇Jzܨq%XRB	̃A~d3Ս9.毖A3D rH"J'V`O0b^2Y U [oY	HĜőԘp'&O ιt)3?3(SÁEFxaa;<hRXsr*j:EI(-xPZs6G)hxo*٢LV́ksR;If¼a{q\v+x!ե{qZXA~ \b.U./|Y.Wdj-P%*=|dwdrH%1:ލl	@!2
w*E*LTQ,[W1cp3ދ 3'rA**z^F^"3mgKkPڊԘKPuVRc5Bfko5DglmTZ$cQk"J׸l	Dx&'m{o;49n%,*bl}T?4ԝR6ar8?`&I#C1yHGa4:8	6Q(7l78EaF$a3VpI_#40աj>z~'v;[L7ߚu=OGm4Qjm
'ُs%=na!Rdb7^-NjY!͵E!ZLXkQvxhV8thZ#_V'Uꭙ+P<ܪ!Z>ܪhخ2NFPwA<1;-K̺S=z	ֺV^k7.*+V;YMŇI^tKN|E+<޺iSBFNC=ioBwO3oďy;3
{ziXnǚvU^GXަ9 	P^#P xLS}>✁/ZE|dGyGT:8G3mqUKA/ׅ[	7Vf0}sm;apiKO 0n+?PuV)߃$ \wdLgPCub'$;d
|MjtQ4#Iy>Le x!!$b.y1C%sk&S2bs
iͿWFpoHH8;=?$wqIKG$%`%qʿoGSEhi*Y3'}3%ZﳓyuF5(_xw'CJ-u>lZiQ>#}xא4arʘ/2+ίڻ<\ӌ1#zUh^2`#7b?Zt4nL\Y[qȹce89'PS5b7/(~ ;/Q-}^u<r?ɰpg6+]U=*o^W}KJ /_Vz"χ8V
=Y@DR̛ٕt"
wMAxk-z+](;0<|)"$]SS,-W7fKWmէnތ!l|B9|{D&0[5O6XvŶ=x3U#lEM\ZV9Lv.Ip+칁ߜ]p;L=|<V%J+Nٌ^VE,fyd	kpYPRLJW$Ab(j̕=1jGK=(Vja,Käu#/ۗZuƺ7?ArbƮ5̲VF?Ԣ,b>6s$'LE<LUr230|fucp}ٱڷ7...an$-9dsh_^&P$+[#{/w(M4(jn:n*?g[@azѝ>(%6!/Iu{$cID*y~npg@Ru@hbA9h$*wSZE<W=@ͼz]\VE~u\]ܘ<]WG,Sfq!1rJk.1βDO7 X%Jp)oqn{FNE_|kkѲw 	txuYxKRsJ3sRR6K:3qbsE&rL-:^M|;1ɏ9l
sKR3JRJ2rRJ2K3srRSKJ61n~9_	#sbAIFƛ}jX& `:%0xukAɡ,
Ai«`bCl/m-ZZRCOd%;dw&K	R/Azyv&~'WRHV }?>(tra9\C~ݡ;tn#Or&WKT*΂,]ަU[bfkRn{.NZ1khVc.;?<-dk!}2Ԟ+˥QPscsXbYXP\AIB+gћv̨=)OMdB$bT6s:݁AAUyhӿz2A:	 EduTC.HORo4^>jja6u.hE8x=y0CO*>ޤ/nw<]`>%妇:AS/8~gzͦp
+ewgt9|EPxq7?'3'Mbڒ * CCx! sxLftPx_ ]z,_>Xxj|X'O.0R;]X$&VM .c:xx+ㆉœ|7Ato5%s'
ON(U|[QaR+&TĜɂ`朊9L +xkA	I4}
=bLEBld6\z><H͋<z<;ۼg}{Qxc0N^b:3At!q'`mAANO	2vO%ThV_ꌯt]#PJ!\
;<t.'I~.uBV,uXiv"=l~BpdM$/K#AV^`W0ۀGl*3S.'3x0 n jJ-XCE{x}&8G9o+kkŭJ}ރj8ߦfNd@ȡ7P9Cv
}['z8I{(;G^:Mz`)á1ˉEktdSpL36&'+FLmZvpTAOgG.Ik#Km[yW~x{{
3s2`4nLEs'+d*(o<LbɂWI4Jx: =q^`qci9PrM^=v4v"iFw-.xm?KPũ)H+b3b1R\,irmC_//n w+XGA?:9@0Z"=[5~6i~7i!c3%X&c vx7!4%%rJ5lr&8>XM=&h{+:kG#C"d@m&DMR@Z=|=,E36(5 d(>xxP{Bn5YGqIХ^@Q5Y5N]*@DC=Ǘ$\t~Ne[Hp}"0Fj,Y]|:Ο;j;:a.#xNA3d0.<@Tbb {`U<-55;f'=$n\8s!'`LYF%x]_8_ӟ		h8Dhr>>t;i6h4<䃙
~ڛ꤭4#Mn6Q'oʣ;wf~85~Cm Ǎ@aH!$J>;@Ϻ.")R2 ~Bh@/WdA"buG	z
(E,倷ƙOãMoc}uck-o6K(J8I,nx'b1E1u|{lgo>[gȳ́R5} >Ǆw|r?"ԾwXm6x~9Wf 4FOxOkAIXZ-bmq<Hͦ*&(6)ݷɘdfMC {Ia_c<=zu6%-V\2<}H}5\ڌFH4ռmЅA]VEWQo{Jk惲PS)[a>߲J&TO/_5.kPtW(`@Hi@kE)tvfp:kog!1m_}*9˄qRF&5ր M,.^?O:c)ti	|;KYe-a
3CvKGRU	5cfԀ	;4n,N:x8μ"͙Hn>KdbL&g[001	|TpsiKke_%IͥC,)|ğ!|r g
xz9LLśRK
gx~qNe,Oe[qr;.[rbAIi䝜kxx7ĸ%w9Do#L6	ɳl^'6i
rjre'M`߼C6(h
CVF$l-773m^k4YsI0'BpjBd>3Mx&v x8L-xXoEjTjWifJ&K~E($8	14q>\*5ǫw	UG  @"	8P.^;SJ7C}UleKN.ѐnJT(<ڞm}|%=6_Lk-2gent$UzfN3U/`]MQ$RYxA>HBRˬb%4cZGLd,'U}N-ekٕ<DglLqOͩ'&{a?ލt`_Ld󳞦[%
3B2وq1uwoDyQ{վ^;e?F됾mEsJM@%w9ʿCG趟գ.שKUdFx,aW77xŁ8I۟g狐s+Mֹu^Qn]T./?_,i>Lu-sGѐL p[/NGʃG2O9b,P_
HHkk3Ǖ@rq`_8w(A<L\hUIHͅ;Qd;q\hyhGiثpQ"8p"H<dz,7jt\¦I噭FW<_9~9T~],ZĹ3&ex;(D`'Q)o8sưisy	C B0E+7#LpBˣ*ɵd ddEc L0
X	mv ۰apK*x"6"X-EީrPHlHHY0HVA9.=Qn)(f,Q:]U.u)q`á|Ez3wgݼWKl.I߮b9˯KcTJMXKQ\bbBp}7}?,n{)큫57Z.tn5hwÊf\MZ&8%\bbDxTo4TpV	ЗiwwG"8S:)"&^1 /8m>qzXzH4*lh=8{kP*ُuwwkVtpQ3U!w\q8	{J}|fD=M5XdMށ9d13N(%dJ: 56Pv{`'~Oɸr`;04A<֟(?*>L<>Ck 82Ù]	FlnJ0dK}8}父?1Wr~E̺^UdKv,ќ߄GqcC)5K)F'Pě9T]6""UJQԠA.;ȍ
H2B!}=wQE.VsLՌ qDgpn| \50(ZjL:bŗ߄jG,ZƕкXvTwEN|:ceIBN<W#JLy)=מ|.77uKMڶQiB"[!,nIl"]<=$/t@PLxSzjDBpj%nXPR:Fes'=be9
)׋0ZL?y<D(ZPhq3FNɁvla`f%EasFjZsMrRpU u_?+gxS:}tט6b`$(2y8H~BbBi^JjqfQjBjQQƓ7cd$p8'!EfPc;'n~F͂B:)Uha5qm+BHzu͕ҋ	`.0_nɟWƦHKAK83/9Up	=/+vN>#-AwmWw%͓t9&7hLu`e#6{#ƽ#\ }d!YxSzttט6b`$(2y8H~BbBi^JjqfQjBjQQƓ7cd$p8'!EfPc;'n~F͂B:](3_&Auf\J2|r:JńmN0/?*FM\J0*&rLn
|Q@j#&GX  Z`fx{>s.fAh& =YPW}T}8Hƞ,`:d! !xeN@Ɵ(aC#Dn41X+mH.0$qC72d^­GpZ ՝ɜs~M~~q,p7ܠJe#$Jǐ*ԅ0p)	9I8D,U}o?:)qZ !Rb\
ʯQUm}t[!ڮ(otwQCEIO<g	ʅQ	#!ѐd霊shJ<Dum2V~muu	^/=w-1F}EuNWK%͂UB=)yG\ۓ8	L<wvֶ]m6Km!{p05x{>s.fAh& =YPW}T}8Hƞ,`:d! 	5x{7lCM,oH2m&ʴH(p3m6}͸Y?isYs=S&;ʛo*ø7f>	ɇDE7;H3mN1a<UΈi	L;'')mf"\SZ\\ʩy)i( 0Sxv"ldim%.}--Z-}. Ws+?xfLט6anavVPUT$H!1O4/%8(5E!(CK^r7K"U^zA'<S_
^P8n6v!VihJh6IkbM(BRV0b`PIOCHjXNҶ lVexOA,BmeЕyH+Щ]6b=\'<GɃ18y &&z4v}mÒpٝ}}gWW7ƞk ( j$J|wn'fOpG]jogO>{a?GX0 V
dB;%8(:G0 B<h{zVv|mD6!i^HI&0ptrLIRO+
.s(d,HTgoO
G'[:5Gs=:m7ffnI7h"VJآCwt@ggMџW<vݞ8yE-݀"1iSgn/s{vg{ut 1Dpt) ^LK@JW?,&nR~UX΋(^bA.[	
kLٟgq%$lh-)wT=bVW5h=\E`o21"
52}pgXI0|PO2x#$e`o9t|)pZd- `չ HKK|aT|Tne[\r
ɧXJ͝X0+$][ad{;zAv],E֬ݫ}M: iA0[P5Wxm5>Ք|g 9z,Ht7p[c{=ަOēy{x;v2lkjbg䉚E^ h#xkA/dO>{(v	?.KRmA(u̾dev6!^VKdMDi02}vP2#<*q 88	 Bx;`^O%7BIPbauƭDd3g/zLP.ϣSRkQ4ιW,xK4)b	jc>y+=e!P 6\r<,0YU ~E4k	D؉4͂2ĥjɕr-Ri%bx-r<>,}8}]- zH#3 XAG|47sH/O]n g:A?4;}5_I鎚q-Rfu aKtGfx=5kq[t
UQS @M!*|7E۩W&̗!OvRFiے6&)eAOBgpngٺh]Shk"o%rz6Qm!oF*f\K(cH0߹E"zgokB1.,2rTiݻ	z0wx;v3lf͛X6fcH|aqgLтL;6Oa|W\iOISͺ2@"QΘidYLu7oU .Sx{fs}8D+ߖ0&+g奤)9x{z;x;8{p)3RRK)MIUPK,,K(./,HPǢQϕWbl_r,)I-.qLI,(I-H+.Q(.)*M.QwORNtL,Q( (178DA R 4eΩE"%y
ZɩE5d9Y.Լ4}->T Hg
:x{f~CRQfj{jIBIFB~YjQZN~Br~i^B~P4X(51WoB>q>ĂҢ"ԼԢɂX&p̘\"P`h4>?LNJXI43(Db5d9; ǆ6bVx{fz3kQj^Jdwf{Ғ̥*A~.AA\)iy
~!a.`Ɋ,MPrrCyYs`VQjQ|PjNjbqGciJf>LBKS$D$#UX&;&Mgdmv.NDX߁\%܆j*DrJ3pKoTV%1^ɽJG7MObɿ%f%dLͥ
5WܻSNvO-	N-KJ,j=0fcKRs=Spy_{qAQ<Fz큲x1C\ޗ0D[xD̻KK>KOP:|ZZ\
Z
E̼|4K
 "SZP lM -NLOU(K)M<OjI[44A;$%*O4<_&fd c{1	Z
SE&K⋿8H&Ȩe vS4ew"p\t!Ybf_vqjAlHJQٚL`"Z2Q[%tUK2!Eb18|T̜ɧ%t1f)"Fp/gVNV3F*R/	*x;~cRz}--.-̜TĒ̲ĂĔĂ"4Դ̼bTĒJ<aEŉ9ީ%Eޙ%`̼TK[$3?OP (y1# 1Sxo?)l/[i^rIf~BQjqiNBr~JT;de+L^()ZPZ\
֔YP\Z\VEcpHokPP_K|coBмĢ\4ĂҢ"y99%EȆ:1'>81ĵVĒbS@9t'a}=2=fAQkptr߼+ehD>Gci^<C՜|.Cժ7g9WknnrV,,l3\WbhbaCUC03RK5L ˺Ij{*B0#f֤Fh'g{(d%dq?Ra3Lx'3M^'>LnB| f sxJ@ 'V`CIӈKK
BE5$sܕ.\^{(^k>F+NcxYQ)az Uo{3ߜOIr"Q(=)stz
v`aXP|ugvtRCPnd<\'^X	Od29.".E()g*g85rú*06:P(CN$,n"KV_E7EoFT'S3h=¥0Ojz?<PG;?]/[8@-1#+xmJ@/U0"xR؃TQDMtv7-ŏ>}	=y7GMj?eYvksmɱwdXqctTJ	P@E]!WIyA<@9\#}L+BH"Fd\ |\(Pwܼ%.@~d	>Ȳ U##/j֞EJWL3 R	SV=cB5Lcg{rZznUvNu<nNת[fa9jL哝Oh.h1=pfy^S'7ܖ[ OAkx[3tkS}--.-4ԒbTҼԢrҼ<pfBqIQjbR%'_RkF"`rЬPz%̼c-k8 2L}x4~C^^rNiJRniNIfnjJf~^bIfYj|biJf~|rFb^^jN|Nbe~i5^}--.-ԴɁlbF'@.JAMPQqMҊC(RHFjZsqبXZT\ZTW vBjZZjrBn~JP)Xuqf^r!E)HNWi Ѝ`$)G+Lw$9Uq-Ҝ!לcr"lW\#lO\ ] x{'i
z|B%
%
Eeɕ
i=4s١R
Eɩe`Eť9%œd'0ZZ 9AAfkq1(? Ufv q2LzxtqC[i^rIf~BQjqiNBr~JT;de+L>)ZPZ\
֔YP\Z\VEcpHokPP_K|coBмĢ\4RRR@!TWwGZWKKJNNN- 	MVTיu݈lFu&?b5"};s\)C\)U6ë>]o:]}GfJ(pZWgZZmOWu!j`XO/˺yw9U@=aG֤F&'g{(d%dq?Ҫ<I>N"¯ҡ83/9UpMrV ԒҢ<!?uy3FɱzX}U^{NqrB:铷(Y?b,?47Q
(S *#C\Q4R$5W!(H!#X!?9(5TO~ܺ.WFc6yr98fKUGcp\$m0YY 0'iOV[681 '5 ;!r40{18Hj3ko?O#ԉ[y%a9XZskFoqZܧ0\^~PJ 6 xMKAǏH#B*X1܅蒬*!~/ѡC֡gvMi{foUԨJPXR2hP!$tSc:&OLLRpb !91Ґ(LV̨8)To:FJЈ1̣QVoB*`P>c̽#6$0-Ć
a4=+(fGҔGE^lYsz`8wm^-,Skd qCYi*l;]+lU)ep3s}&Y /Ad ze躀;Z6@4>^ 5W$@iL89bakjo(/:AxRJA& $bMoNF$MZHRE%XzdNf`1Xz#})}@<4`Bjvf}s#w3ijJ*84C+$*H%0G0X2-JlTg~D+8HqNtG;,M,E 0LHZF;	6!vƄ;Izb0@]\"4;BI9q04TLBKri׺8FL2EByŘ^_g^)Rk01kԲf%7P1B]=e{|Tɞ8]oJzC%hxv~"r}p!>\ܙ)d0)dQ8_۱%NF)*{<?b/|-G4x<qtEs2*t~FbiJf^qL|
ٙ%
 !̒Ǚ׸ `AcAx7qtq,\%)I9zvY}G	-$xuRA@E AZ،XmRm03^D?_OpV6fo}==n ^JN)*D%)A\II. 5]aUk.
kͮۋ	I
2-	WK<] 3g-g¢w7f؟G	˸2W	imCZb$;ن3r?Дk)%J8&AUq #LLX:J^@hh5ɋpXd߇\޶%\#4'Z&v9cxX}BYrɼ3gXd}mx A4l\tYa~NFK3?O׻@v܅аƜ'lĵ[\9XDIfo~Usrc`t~};woy>#ޔƅ##_O[x۵"XK2RKS2SR2S7OgY  <Vfx;\tDNĂҢ8-&GnYc0/ ֲx;\uj3#JS86`lq4!ɁVbg50m\4cr'l)|PEyc/1m>iz<`0L u&QxMkQIƈؠ1izSRSPXR5Bi;8&w"nX[Kq-"
2Kq!'D7]Τ
;}yk}Ch_cm*]ӡj&:L2"Eq:Y N2iܰXԠJ^=UnYiin*#m;U9(ӽ#l۲8-KH(sЋAiULҞOc\J)p=-ө X:xVR.PD	։$zt:述QX6vvf>G@'#3nXtvJ^' ('w$ 0#u6qYIRb?nenx+饙Y7A]z>՞j̚wt6х-rGHbR,:UQy2];@&A.>.!'{c~jIZ!RDoj_<<mho[%3(3<5|[BW{vs?Þr¤ǲ[ϧt$8<xsjLjx[Z:tDBpj%ny  
sx;
X&&'n˲ M	x;
\2feuiFyM&'plw2`FqrM'o@CJ )> 6*"MxMLAǣ-|
)[@&`TͰnݝ%9<=xAc͛'o/E^m]B/K3y{o޾݇cy犡Ȝ
҈n0d5I|*;C*n"$#ݐe)Se	[PfZh$:Cp,%"fBd(XEqN#5ʒDdåEct<:Ѕ2X0釣_^O7XjVsNځ٥rdߩaNU0IkkAzz.(sҤq:4ݜ/z52+,}h]pYo}^`xޙIaZ\r骡$lR9̥65Š'op%	:;a|3jhht	Yk},"_{;]NQi\<m7c{f:㦉6T/v ۭyiDUӆ0)#IOϊ~[cT=j@̔ua"wr%;Tm3;Rm<iOe@M	NhNX(oyca; v*8MS5LB<esUת
cX^ƌay鄣]jbl"˔14Gd5-ܟJѻD$m*EmO:OBQ)"3J:Wb[1,5?s&-<^DyiذnpI:UdPW('8l [|^%05pCKx>kCG
b|y%EE%
)e'ʂ8
!
)
h%&'*L^+hL~.:'LG<H-X ,2x>kCdI>̼Ԣ҂*dATҔ|4UE<aB@E'ǃ!ʃ= i7*,CxHrrDAQfYbrB~BbiJfBQj^Jj	bN9@䋂f"0P ud7좓	CB:7H~ ,lxAMí4/$3?O(4D!9?%ՊKAKr2&ry)d*V&5e+&'ldsb$za[4 (1W!?M!43'%dl^iNNAINquwqqUp;$@6ɼQ"aC=afM0`jjQbIBf^YbNf
k\tgr@KHKq/+Sf
8rMsÎܦXxc$OWg_z.͒A\&'t'Wݼ]He4p\q~iQrjHe<@Ef{uj%EST{r؁,'w/CrprK$F 'd4r"ܛeFC@ȡNIz@PtaZbfNj䋲]n>36/7I6=ҹw`O3Eɾ&j r 	ԼLXb<^^u du83x]JQwEPIBF-"fbVswMOxWi]q#>}7fz|m8]fwPETr-b	vOPS0o$槼esԅ	>DgD!HPC8jbe y<D^:Bw^];YSp;:2B
8	<8&)YfkIeI0/,S1I{ޭ_k;AktA;w[^5bQ[m*䈑N'TP4dJ.77kg37۟V<7{uG+YnoCxk9ydw] 0,x;N1H%
h:PYڎH<bo	8'&۫tg\|O,)BTF'J B@-9@ydDdkeE4UbO#Էʑ`] [A!y<*ӻܵM6"h0YG,hSPvty=QzdԅԦ})9_
W%.IuY\U$ln39سӇe6x[d5~hCRQfjBpjBIFBrbNNRbrByFjX$D!%,3KSHSH,MW(JKI-J-RHHKOMћ|'tQg1%`CJK2A&&(g('E2aCRH-K+@xCqfPpF1E8qkpVtNeL);`l'.H; _SxhbRzpo  Zx}PKJA%.=[wqUBn)HOu3Pr7ˀ'xTއ}v?I]uYVjvXPp3"|M<CLjI~(s6*nлG-!  isYp-"4oMd'CAk*(Y8	}*"(uEkγC>{~T}mx;qvѓ}.4+xE1n@Ee\!ͯ 6հLٕwMqPPq(k"%H??sv;e;C|uH#Cf%u5 /A*o"TMo])[1iN)P?68T-D#dl&jI=93ޟyyO?>RH/bZS7$VmXxx6&$ 2
}x۷&2LB'{pLvܼX 'PlsZ*nwjbFpgqf6ON՝̧y&,s^J`u6a?D&+N	>#L@]p~TݪɅѾ b8x۷qv2LB'{pLvܼX 'Pls''e'NS<\Aw9/%fn5v~`فQurkf ,5x;
ӵ&%o_	 UZ&x;&'TȥP`h9f&wQ ?3x1JAEtE?hHc&N&=5Zv=݈gx113B3GW0򨞟{)G3+I9RM5LN-"]#L9Qm"S!]LcnzC1}-FPRt-tlLXQ.zXjz2{:-/Lі%loIsuieaˇx{m6x۷&?#&F 1XKxm'}Z|/n~gZ 
Bx[q<

iy)='?`739u\g'otN+,,KJM/J	H-,\YCaSFǊ|-m)x['_/ 5zlxYr50%-tښ$M?Ӂ:?6c騻j\硏#HѮY}9GGI_K/mG	mt7t\{}NKB.}0JfQg)A1:]ǛT`yvHխbqSjElY߹JcİgΕm/L1ɽ` !xZr:ᄃ!C/NB-UM'@aS$9q_L)V
]N=]ObNjv1
8<fQI|`i>yqǽR=ƧW\=Է?g6a>хAqEC!K6.-^:hBQqOc܎|UXXunl
l
!P6P6j
4T4A`0M
3FaJ0]jUH5a9H}G8z+Ӂ;+
/0>rt${u6qA%M ѓ!	_	J<$y쒟:oFhʇgּ0ϒb1@HR2gQX6"	E[m1'߆H<:vKdht}vnkGף*s`[-ށV7yzokijTB l03-(>"n1Pg yS_>|_6ŁΛs2it=&sNh&T':O~^nZ zILxf<{kjK&zso5֪sӐ:gȚ	5c4{^-2SIQQ+r݅;=p~F)_: 7Qʙu!Yo(Ա7l,ƶ`l8M_9JS9VDQ vۍגQ'x7{2[8"iI,0XZgA1
]aBRz&)R>{'u)y<^KR;z
_uΐb$}3ϸ(RУec\`Ay.y
H*nE!f)ϋO0Xs5#l78BgF7hp)ځWCj%=lA8LMWK2T͊Lqðnh˛#kt(oNPoLlIv]bcÜj>q͓&D)R{ιwM?d}_<
+RRJPmTh,Z\;>,l<9P7
ZW_rfiՖ[RMn+{.|Z֔1dqJn;q]^4WBdU*TT8VNb5o<&;{pOsg 4`}@|=A м%ǌ~P" uq'-Lei	V7Ûg͕!@?vQ_*
W KpC	d1;ᦑ#;nN[2݀ZBja	+}0FB|z0_င6>H|DɄW4]I_df#;4ROT^CGa\%M0 бxv+`΄8a;ٴ]iqW@;\ܛxwIBoe|SpcJ,Ϋ}{.Vt
7˩Ž۾йzOљC7.HMu;'BJ!9G;okK^MC=_?Z2sd`2I02Bk`;鼫t%ȃkCsTxUT<)_r:dg{UWյ1!X=y'#0~T^TJp:|cfSQzĮK+=I
Zc/pse0aז?t
yEA#N^SƥxZmsH_1|]dsWQ /`i%/*!ԁin$3zꞧiz$ZËG}~t:펌G4O lo78C#FO(i?GN3Ptyxqho ёb m#Y#柉(܍& ﶢ"2}Pes7]Tik&by?GAd)܀;2<2eN?{'CQw?f06G6G?Y"D.* k.R苲PVS}Dke>W:Y }F6V[h諪c`?x,p06q1n=`l9G	{DʲJAȞ/bZkgӶ}s(&[_LʹgG-I]L<ؘ'#{`%=:ẉM\.bk]?~^8I6&hc6]Wf!}y@JhCviw>c;;!%q>xO4h:;|3S{y}l!XBhBG&>R~%>#^ <afpG.ܤϐacHd"IIR;`B=msx22XՍTѴ̘);!.UE}'u)}ut9D^ÎM|IP8ǣ)!ivoWp"}&JB8 eH8PB}DG5|۹-vl>}BUC_TI.'sA	3}m'&^ˡ24eI]oi3&.$P؉[꿥a%Ifr/uRi9r+dQ-
i3JJDVN0.N.#,˒(L-hZs}:Rtr^
UFGT)*THYy:},d%cj!e!uE2Xڛ>mhicxԇy}ڛ\S.tM-mA ::->%m d*%X!NSؕavr0e[S\`ǤFz)L)+9;o)l稴)LIPk+6}`CLO`EA=~@ļ910obyCW9CqxhG۔C(0jRn_S4Ib@:$^hfc~7Ip~=`%l hƏ[LG)X1}~p#0{p8 P P?gS%ǌ@1}Xi_5}%nv0',?3ҕ8OhQ')Mo-|gZd0Z_'uQ9Yp5lnN[)4P	ŴRJ<z2Ucs̅+	R-'Uw8
WLHI18|S~5eV1㉕N3/E8s8:u6o[jՏG2͉r놋ثJ	O*N1K4)VS+"k̥YAY%v^ [ѵΠJˬ}sq0H{a[dTI]Y2U2&}Ztvn~T3g>0;j{Y5~z~hayeָz$o<(٘<"ۧa_خbWo6ǄZSe6gYVg]OsbܪSh20O^JU:^Dn'K-f]W_;(W9Ŷ(0
9ig\HLJr͚M3?eW@?u;xx!itɅ̖e&d^IE t)xm1KQ*up(hX)kw/{PD8\]fw-vq	[g:];-ܢ8	Wc4Jfhn`YZˮTN4Єv3 > [$v=}GGdyrsOvcSclC tv9^(N`kxk#/L*
ٙ%
a)ɓn^|K 0x OL
r_6PEnumerates the audio channels. Each channel is mapped to a variable of int64.
 *7iEnumerates the layouts of audio channels. The output format of the decoder is described using the channel
 * layout of the codec.
 *>YN&xCB
n.bR ^WxkG-3KÜSR̤ĢJ XYRXW?YG d=-E a;E+x5c!ɾ'/óy@ 	R&x繡4%(59$5E83/9UАKAK853$51E#ޱ4%39#1//5'8d<~әyx,HX_Zy U. `x羡yff-ɛ6[;{{ɁBHZ*BBD&+#P)5_1?50/Eޠ u Me0H)JCl*B}ABfUÔP#ce=\e=T1N5i=J\UZs)gL>?^ Q@ x=ks۶+0釓dR\7msiURCQT H")ю-43Il}aX,o[нYOUbQtPptHkwď$$^Pl_Ʉ}tB^cWӫ7 !KALBnDG	UL\8r并߹#za`\>ilCu෹\1Tgǫ_lQ{jtUoh hh{4HHH{@9@;ľ	)|.tc׿9$Q0b737Cw rWAt9W8N>`lhM]3`DA]M>!@1~]"5)AiyAVq7}CMpKC0"+.3snlǬt|ppQs}|K-	fԱ6T[Z4t֝Q#D&5I[|qcLTɍYNC;Цb%ZQ*Fcqt8L]ύzQ˺?3wXI_1f(Z3ͺ:>>
}KfW\?>ZZYP(zo4<Z ǏBgYK"{@NJ}E<3w3"Angq'φ.cL~Eq@ĉ\ǦcZMkK?~\G	F>p$p䆉D]C׏bD<* Ɓ߹G8Q65@tq>mP̑z,TK1/*`갡:4X8رMC^wEԿy6`kLo [m9@t7CIJb6EhԈ!7O^@8¶8X f*ga.<w;da`S(X{}yRqXņ1lmP`Y?ێZݞBb[9ڝLqJ>2A_6aV)n2SrH
ԙ=bB&IfIB0@0cD(ώudڮVL#X_2k 	BXP~"fJQf{m"2ql\ZZ-Vjψ,*}ࡎCq>FʲLZ,I#-BP|*1J>+Ze#7B,xrEt:$ԅ8TAPVvSG'qCfnt=8"58wQ*vHV
%',/zb*D>y.LO7OEmEgEx3I`YN'v*_|w"SMlkT(Sr/'0
tR1@gG?H	Η@}&#zF()7F;	iJ2
b0zfj JW>6y1U|7%q~6fSz
=v(\nI}),QaPH}IPC&x%-US6dP4w)8;fσLcskL.W/2gYU%rߊV1M56r}XzC>T,haKM
%^;:@o(d?[}DaK9̴*{ԿP~U:gmT ^~~yDIOHA(x@`kVW"yy']t&of 	:^Xe7hiBoT^Dq ZDlo~%6Q?oՐPEXc`Pl1?MDaÀKIUDg8u5?Y2Fŏ[ko5B"4dOVv{y=ԬX~nqinenE}9sy!o<Ko'ѹn<aGA'>,}|^iG;}7d|[<)r0su<8=v\j֯ǉ|a)O}~>Eߺ0u5ueOYA]@)yO7?Zd_q9+򜰷 5Cm"tddI&cs:yrᏒi ~مF x'fOǱ¸Fl%u}mI%;<_6zivme
j̨?̍;ix{GL
{`zXIDdP=~PýلYGcKK577uXY"\ JK	BGc;㑂uOԾ<A.Z/§^=wKǦeW3w=16ùxae߀^i啹ҕz$?mݩֵ.R/Cn3Fds7442{;|iYC5fEnCxԣ;bJp@v'ՇdɢqH&؇ƺ8=/>ZTZ=eY*lm4!op(/+qJewSn4л:6q߻ʃeWJB	_9l7M~n1@h>
GuS[$>t=k#ްO~D|v	-8"vHa<p1+_4
}<=(ygօ6(*ZsG!aۿh!>?N`pLbhXSAxHvSaq
~:O!۞ɮ];h*KJ"Nϫ]j?QeTl5dI6AJt#PzOZX̤`Rv[7])hZY0}BM-L0uuְ]ԏ"c-ռquH]\誮Z4Y=אি`K@ww~GL<fN݄ƌF:[4-#Zh,ĝ%+N #~9wo@~Vocc׭b?X]j tר^R<^&j{8cELt	bk1h}Lv!r wǽG~g[]CݩTC`ʻ]z=I|Gi,fu0UyNӦ.,eCjKGxG3ԑ>P䤼 9AH͎^ޓpC~ĩ\U(Ͼ*4(YXp:UWkQfẄ́~SE
ĘwM?MVl1xۉEql !;\k(ҩ!\4ƨ|T{\ˣlhu,@]]髚&Z9x@;EoAݺy&iǝKށ~g]iJGe 2qKbkhxI @ȇ<ˁS]xJ񮨜|Ac	IDR޿<*Lӫy<97-u0e61OR̊zhtSLg5H3T.*UX_G ~3N9')vN՜_5մy[Ҙ_\ߕW16VO3b*㏄if2Y/oK~7]e>sYǒ;6pb7M`>#uIja7cF0KKAҖrP@3ڨg4P=ג{Sꅦ㑆'6K#HnTgml (,&X,u-y}_[o~!-,]	cv;Wd٣)3L˖%,s`(OK3P&3p0R*:z (TI|6?f᪳$.I"e+]:i:_3ɹry.MH`ѝSSY<^&Aă/Íёkdϕ"@`W(8tL,VtTgZc#sl&'2qƿ̔1e2(<79OvP8:CYbyAr{=<IJAQ2[)v07,kHÀ[Y~9Y耍k?)R%S5v\ޤ0Yĺƪ_fH2RžOО2m$jz'/c쯵8_cCDcן1/ q6etTSF-Ϙkh.9e6rc䤇xs$y>t8jt!u+`	pxMiFD׉YV-0EYu) yf:8?Wks©Ae5M8F6PtQ|`RtO@$:ds/YhU..FHz{+2~K1E8=d3xטϐbb<5SQ9ѻ*naHfut"ׇ|,1k>G= Ʉ4M5YyO?V<fOxLzNⱃ'|W=7.9i=2ĳ0
է[%,c0Gz4ɹDha9t1#.W'ʐ<-e2VI5[!N=Vy2DJ!XBR1EbAFa(\kFq(xܯ9X4i÷׶\]9xDdJjl]XG~ᵘ<k-w?2wzSXL's	{:oWW7_HMG^Yۉ3wl>ܢg{4CěY@#1YL POȯ,S*._ Wgv7"e;urVW1&=o#bp)˸E`ZSa{HR^6K!6Mz:	U5e!iͦŒ8#nOb&h|o*ΡҍYd&b,';DUWY1&EXc2t*q܈+ef&u4	1T_Yr!z-eHa̘0^2#J{hp0O=gjČL&;̀f7M5c vٻV|u7
CtǶ͛,3'%P}VWz2yyX;>(6&jl6si݊N+Kf;|?a ess	+CĀ4,[d C#Y@66IT&6:p02Hy`v1f!;Q(YF}}?!a͟{:Z1#J[DOK5XLF#\a=L4{A Q)䖍Hi?XL%3{C\;D2cQFO芕%MNK-ͫZ Тbӧ>d1JӻBCGEi+E%"SR1O&ȈD.zy,i"߉s RM[
~牥a!1Gt;-M
I 'rHc&m Tp1bqIbh]̔^W/=E×MuHbgR\YGSk'ĒuOV$密w|jY,I6["l~Cְ;6$ɓ(55>.;	K2Lpp}L˅2|=Ӝ9

|=+\G^2[wi7Sb8H7q~>Ν}-|V&8'N9.$Q_i08Jn#Fc͠дO,Fkq/ʞtu]GDƮ/0Vvv&==.|7D:6hSf>[o[X=,d;XMZI)OaL@ *S&*f,By"[t	+owUZXBZ>0PXH\s'?w-Ζ%0_rH9G5w/~-PS]\XoӉ	e̹PUGVᬪC$OʥFjk}I$[ FwTV
!t^ʔ/?]I+_Re
Ie.u*央)Vj2\z!9eZ4UƝ"-j.sP2~|U5:k|vJW{YK_ӎY:I;s]ie߰RCcW]D+GV|ًSJU_r"Ҹ9XN*R׹6G+jTNϊzʑJʼVAWԪKuOn>	뫱Zzjfp|Qz5ի 7Zުm6PLJtt:+?lRk0m"y|D4K%ovJE˟T(iKW^>(ˏTږ%/ղT*+a-;/QRRiKRRq[RyҖЂkŬs'ee	yJ$\jۥ8ɥ\\RIsK[L\3I$Vry[^Yf+/+wE[w>߽Vǌbƕ󫢢RJ]^zuz`ƾ.L9fR'ax. S|2s#~OHI$B͂m5 <'}r/"WogX:ݺ<)`
R*J~ZKCESDGyּV	I4:|&.Ws,|T줶A	k,Q6orNqQ|)9hYK"{pg@OI-{Od"NxZ[oH~ϯ(_fz2@IԎq:Vf;OVaP$h}OU\ʘ+-Rwn_i?AeFgs~
FO.y!ZgQK\'IN"T$d87ghL]:'qiϟĒh(a9)	"!I9	
")N@s)Djܗl1\M7/Dåjs~zzjapev.ێmZ}.o%1s%)(	'2g8J?edvr6O8#&9[>T7/ Stmxw&@;Wc84my"wmv{tgg@yN3aI7GȖ
STS)dVA3H,B)4QAHtA9Wv	A퓓{88eH{k="W<(AiȔ&RBXI6Zm+8`QK0=cs$G	۪uICL7@)[Ɍ$3aՅ)yS-sN&pBcʗ^s ŭsZ&S@9Z}|Gy)Ddo <x t-~/ Aqn蟓w$tE!+)2.ke2"绕W
D +%k%e-Wv0kԵ]ꜝhÍ%pLqcLN`{<X([_j90u}N	p'-/'8|@9;\Ǹ6̻
>Hé% #)DSx A$L4:Y[h)rVC?YPo4,k,cYZpBM ܸCV]oZ!yIСTJqyy;HZ4S4!7qK57
r,Cw-epY!t?Hv7:` ])ɚztscUB*zX&`8l&A~<q,ՕU0{ؙEԴ㺃vֿGVߴjh1I3<p-~c{~mBf49gFppOè;=M_oB`dHxb1k,}CqZ5#iRC	^jpl~Tk/8.$Ke#E- ^}k%lJldWз}0HY7=ݑbۡM*MaGOs)Ҫ3Y~`_tށ W_^~Q#qIk\ُU{&H9T<RQ1unn= umO7</*&
+!swuɚ!OJ0Y0^Jo4Q%2c'LW&
wf߷L_z=ѩR4+`ukS4h~2M}>J/Գ'M eMn=}rQ2&4+y:^mPh(i`z==+'hBPƪLxQ=c8`̢R@e}'?
I<=CEwP~oi"kIY0Nv{=MU0KfKKr1HתbV-CXVc깾K'W;6
H,	jRQ!g%GgA[8DvʛogBcM1Hǵbx4zeYV e&qA8c|^r>]׿-ە;) cp\gpUqzCDy<#x8ҧ.3:j<;ѫ=kЮ7]"MYsu]Z묓Jm|x5U"xۜ曏a*#xrVwcBQ-8l5O9fQt]l5Aj5r#z..6o^5.1YGwwM\w*ovjЄݲ6[#[9Y~0vQRy@/ykǮ^o4K*恭Ep3OV1Gǫgl:p@EǠ|
ե""σNGO߻d^cypW]2ryZ}Zq|vQJ,=Jy%A@JgJc.Oa%ImͽZ⸠?iKܔ_4P?%i3<+qUţLH˝W!+WXQQ>Ι|n1x7o&KT -x=ksH+X3.qَdg&ݭ%F5$eǳuEjrK͇,{>\	4@(J/lCn+o{e<W{wNCe/!|Gd$J"qs\0r_9;>Q{3vJFBd+̃s?P(7Fp;/leAŉQ|zǛ?<<; {ǢC-/L}D&n*;@<(A8w! 	~(XNHнMy01WS-ESUKȵn_S[VMSۺf)q_ucu||C  y܄8 EN&=	ˀm]s8wDIÈ	nܵ;12.D_" (I/Ym蒥2	{w[^H,Its
KYģH)E9=sM<͈?^#nQN,Q'z$ϽpV(_}sc3Ҷ(6ɺxzn=%^uǽOh|.Ke6ǽᴯzH3U1 Ͻd(^ W-}T>?DZl! 2wʿ|O|qF݋dУ9Lz!\e372$n!2fFFןˤh~EHnG"85 Pr{O. Ml  0k$ɾC=C2X:3ռ8xrrzrZŌR+H0fƆ=SCZ@G9_wIX,K  9/R:^+ps:fW^02Flh'9[#2Ԃ]lPC#x!q[gNנ@a]}I(MXq]P;yVb'զi4}RχqԆ
Hԍ69jDGC	$a\d$MǦf+ך0MM+י)f Tb7E8\Ug?RaGsݾSE[!9\*	S-ejytĳcrX~|Cq8<H !Cr`^Ei2TC9;9}T /wEŢ +*pJP>g,[LL4Ք/,9lPY.;+U5C1;P?d"d*?pu	u!BI1*46γK6 Щn p5C]m/r+_@mq dfW=J,:oGpQWN,b*eI0O(N$޺8,!8AIiJäBy X%>A|ìy%ѱ2,^t}KP$(E V%!=	g<#xxW=2TLGE4PѦʹbGk:E 4_R9e+N0o:]%h`L:9.IC牓:/Iu,4)(A4\@#~iGll6Fˌоښo_j5+IJHBH6%!D-y5
LIiJGȂ6@H4z,/.I@P)%! Cxn2<8]q=;"DY)q`1dwqd:oO$ \Xp^3!]IIN_*^YLENČwpr#wkӗ	Xtk#NMG?}|\ӣONy$Rоh6PC[]#<K
:D^:G]@!_X;5HTed-]-_bZ[a)nb_Ӑ(9}ՠ(yz5qgZS}hW i~jGfB(I`5*HՊLƃ
-Gt?CoV	Cǿ#ky0cS`ԀBR3@U{	9(kޞ_\t-eicSo\T! 2ۋsp#,0eT np,ȰqR3#0-Bě$V(-0/U'#`L3|h-g|0-r+B]'Ix+,XPwrikTAJxvXS3xjfM)DhߣnHMg*ӓt|q7Qy_g$g 0Hإ`}h/2֧͑D3svʉeQăj]F K}` V `;)(Ĩk4Rf'*4/4]H1F:fӓm6JCJ[(RQv)_|wrqA*ֵ#O:@5w|."Zlx'YYa6#D`b[c*H>)>/B5=šk_!	D4GK4U(,piǝ[Zp꒖mDE&=o1V ZM7J&΍T6AV]v#cW@(Jpx~_7 s8	TA-\=7\ۦp,yII0UFbkַ#[Y#:ɻw_B}'5[O6#O8Z}HOaѸ]}p
Ȼ #'"ʈ8Q"K=qVGf)؂ h*h),`$QgKNx-NT{,wV"̱\iEaC"t3Q:Mơ{ KI7`:%Y-PuNwo?`L&]YdzմjHia+WLsѫ^C1ZLE4*Sް55I&*V y|'v@J3/
t*K'7ahR=Z4/%Nu2g3hr;
//u۹:Tǽ#KyAvQô}P,%γP1A_zUx$)9`85,lwWol
+]$T)u~ŤeEjNT" O)3z="֒<#V6tҪ멈U7XJ5@ft<X3;+[mO:hVē}5
aZyrΕ[
l\꿱j}h35줌lxY9Zkt)}c[ZΝŃ@ާ8щդt^!_oҵ[J(4MTP?`J7Z=ֶ^Mѡ)I9@ĉ x/ѰbQDW|w#v@s$<0Sy@4lƹ'A4X䳮
κ132u]}#yiG}a|um?lXaNH~#vc $rױifV	'xX{cej/!&*b,2Wuf6ԮX$8;Ci}}:{!; |xX&pbG	hhږgPpQ	'l{
^/H
C^c:4[:3lV4PdfrU|Np9ցr
!ܨKR2=39oZ	T&CDGWOCcܽ,?ƅ,DǋdjaȰ~Ȋ1Us֣IE08~Q )[hƾSYۚ\-yU6ehY@sTdU<ImKVl#!KTI6:g,n`* s1$gk
s!hyf[u+ Xh@-9"&Ix7_aX#ð/gƈ1n=!jB\ֵ	m
/-	IxIC}w9Nxy$&ȉ(Dӓ:A&rKK?~\^DLՁu#Gef4DeDaݻxB0wYm;*v]9NN܂S@
"
e"F~>-ઓm2;;8 ׭>څfJí/<
Aĉ{~)_{tΜ9ݬn,;riXN/14Á	c%#tP1x5}f@հi/LS!?KvEg[RNvLY *kwf>^nfc?WmA}܊0%v|tBȄ0*n|Rޗu&
ȪoSQDO%b3V	c_ %N9TM׮_eycQb{\bݾ67%ָso띜C'ِxk5܇uДܧڸ׈_kBUaQT|v%T-S9:C 5'#`UШAg}]RfOs^!mCyuT)ܛsӝ6@:r8=;!׎l!~mBtxB*U}uiC]Jۖ$W<WS݄0s/;ULͤ( PG:_9R_T֫Ѩa^n &VupTt^
+w`>{A}*ng]{)8u"plU:p6(!ZAȗq6|o0sLO9U8{JKQטgqf̺y>mwFZ3? _^܈OۆvsC<Nh<eEkxO|[}QH2p<<}|,mmDH:a^dQp3P}SuUzC)b!a4ۙfNNȄTWX[ؘw&>+0K:KǋSڢt,FXE<GUFǾj@	R.|βv؀xIu0]|4I>X]ysaܐŋnoY>gHW^RngyIhGmCw|F8/p3=5)vމ#b6:fAU)bn`sDۡ
/@oOw-VqX߯IrXW f|S7L9h@h"bc,,BD&]c4~>vlM[aue&&*Ǐ#G|[/keD8o7y! Z8&.`:,,,ɆT612lҾp_Ӧ6a5FlRQ1E'Jŷs`%`)Dt<РZN9;~WYSsiI{v֛Zq!ҷσ|N86CܼZ0-h
Y"ץfzͪ#FUWJh ]i$!e55+NiEw Ļüs%k| :Rkǟj]uE9/4Y\gl<e!R0yrT09>ϲro苻Z)ˡrMۑpymi.uXD8K
_}J7FphΗzA(BGez)o$rgv_>zFCs"wC)҇7u7QgoA+a_\2ƫw,h|--5aYcu&-lZ>!+9Fg:ǃvP?;تlTHT|S^F/VFn}!3_(]-ǺԜ-sK6nⲙ7r*"gQMvyI-o/)x&i=c_(
Vl(;d N~&4.#/,J$x a-Ieb\kpÛ35ZϪy* _ԙUO|R^҅Bqcq -n#K	 \mjG3v:y	YPa}/7,sn[K

Ir_TMbQK"rƁݰH: ZR!IQ|VXޟޤMۙJOU< kN5w[7Rvk:`Rh@w_G/iln3>$ewAxfb GouF[ڕf6Y`Z,w>ǂ3Ow` gcB;#z"^h.!0+oaAנ-#<xJp b.آ(/q=%%`BlSӍ6z"J|:#>ՊN7 pɍ%R
𔦖岤}IA~H`Y-6*||a>^qx^Y V.9q`clƐ7miAvZS."kzI+aڦF4틧70ǅ2/⨻)МLuZ-5x$Gq!>)Y0k<_*]FmSez^*.P^
<kJ;r5DݐF{WQ^/-|Os59缒&I]
o-XuZVrpxNB>}`+}M_Tb:)@Ԭč^"B[ڨ42C6$($׋RElF7}5.$ꃃ|UmR=KޥwFP/E&^

nvIhW)7C~$aU#PzڠP^?Y֞{Dh,,al|׊L'v"oX%nxH\z4~qvrAdo^E%HE(%+.?jvۇL+a *pȆFGe_Gqw(3F1}?KS#3;eJ4NUL_2k-gK)ph)VxEp#$K6N,ѪȨ	
H~D/v(JX=ZJneLm }qSi7Ș/^JˀX7tKyklh~О]u--lFwAܒVܭw|{-84X펩^FU7lcTry:<U!9MF7dla.k\]a_ʘIuU[Ѯ`bX8.;qUYnjz8t(-ϥxd0w'AyZ=˂ŮJ..U4x:4dR,R3 c{/] :uI
b@uK?eEuuƴ^3΁c-WݞK(48$s/hGLN aG6B<\{8.![$zs iF35kzi`<&Χ#m/bd7ˇ(p!p
ki z2y-ͥAfbD,.LLo3ScjUpKk+\m8{'dA3e66,Mשn⪧VѴ4>)1mBZHi	3쩐Iv/{z_vUtȒ*T_tV:dj#mm['Q}y"K5˪;pJ.}^wE0+91uzsw(Aw(lyz=5{T޿Wƪ_[نSxqzd/Lex;>F:\\
@B2R2s2K*2KK
JRS&0+wvurw
wvpt
quQU07100442 $agx0 Ž

_J.'
}ZE=LuPЭ_n?x2t?ӆ$ 3Xx2iDzeY҅Xs&-,/!<TJ?(9DVx^ <'ZxYklۻ^;~k׏k;Y?'qlul$Bw̬ٙ$P"j	9JUTQJA"r ?PTТ@UQJPEjϽ3A}DQ{{9߹3_y/!W72Ӡn
CuQfc/q@@x.*hYtȼzVvo
f7ܢe QQ6s2Y@}M!Db(/%Q>NFa~0͝%Q(!jWe{a@4+!b|f8]-_dQ'qxY
f9EEM	qJ(	<|%9)WdS93YȊA-n,6ڦ⢖إRd)D^ `l\e~3mDy~Q̐$+;lo	: aLR48E0:<,U_1~HKԚɲhD@ugmQy\L`hEU[RxĊ*ȨQdA)^-5LONݤ+hoC)h,Ja$Κ;`<1=3ϓƄ+v7yCtWS8ĉaeen]wх<Dix=-Q.6_UtfQz/{ϔnpL9#E	vĭ;.z(~:)*P!):洘@BxY#nq-n:>Y_QRWd	)_CM~֋wn$Lm*gr	g3`:'4Olo:W^w}?ri'<o/'hQ΀]aJgo67Hy$4yTl˻ITAXH\<rx}^Z#$BESe:eF\
yV|`:l>透p~x\$&SLck(_iތ[R+&}7ܡ;|tk<Pܐ%wp)'$(5wP.LyKC5d1K[ Bۙc}_iZ]5isã-N\LZzδ-lDՔ%1$Y(]+[K`	NM:Ef$j(,	XpXЈ /_9<2w?4ިڑa
3$qcncmU(]k9#VW٠w͛N۫m8@|1P$[Rޞ W鬄פjG*3k\jWgl7јb؎V~O$
96XmpXHH,J:~ؽCHj}=5f,y1ilƃe,PvlT^7S8DcjXE"Xh#0q$4%ޭ3\fY`I66Ҙk'K*!%nxlWsR8۽"]
WvPӹ*.)e(
d餻#0uPvZv{/}^*Z+5ZS9$RLTHEwl,J['r\G#@#Y=n[.IZb3}?'6lkl1ج6Az;pfM~T`塁?d8gq'pg~ЋCӚ)6n 	CwL#`ī>&K($>p\=<Z| B:uPw>[A&9	:,a;jf`!df舗Yz|tZC#,ǽI9YB R	GGJ!UZ@M1n/IM
^c*[4R?+]UYJx9BY.e"c[vwO8و$L['vAnxv»D<3	)+l$Sv܍i:#ionDiʷoMwWG`
ϥw}>?IUT*dhifLW%ܘi-040͌ǨnVC"L$dXO%ѹ8	N)sGb9-K^t!jw|kZ8A~G.,A?7hmMC	[SLx:U>S3,ʩ!:iPTaw rGFXuFygj.ĪL-YS>+a'P4N2cx.һ% 븹vZފ%yΣt&Bs7˲aV/MGjnvE(e<pĉq	e7Wձ+MF[lpg5;Rg)7C:Z"vhG~`q_,dmէncH4~A+3V)%(	iZMJ"H|7IE伬C(pC7aB>.TW<"n_WB5ne+E#Eb!{v\l1;jC+W3"bղ]#V?LVX ƌ+xJ_cIy v?bج졋1fN=zdj솺).GfN1](fkZlp`p~x`n`|>8335<:O:byl_5_)ڢY!Ҡp }hEN]Y[c<PDs-%EdN\S	Ɇ|ٹFHyCM[6wny#q^o(?&ޔRac)L >"^ڮ	o>~K
CYC|Pi&V\DJ?:	<|.{2X9!b@ȅ$l8a/ѺOnz)}&_ϫ^21a#n$5zb)F6nAKP?ѕԟYi!̚(ĉHa5E" 'MLt ׌`*)Uá!]c?)HfG.58(RRe({_geBS˚m6cҐ)j5%j[?PI`eD'T9 Z 4*أfhU,tD;Bjǫiu0Cy)N8b$c)Onҷ4*5T>9oSc{^^.Ý9W޼rSO.ߒx;	㆛<Lɩo䍑\3Ex2_ 8Ex: /
%X
I0_Y
MANUAL = 3!)TN`x;	㆝Y'  MvxH /
%X
	$	pLD;s"dQ4-b -=q<nmxxqË͉i˹7
xx81!¢[&O^Lufm7Fͅ
宛r v ;1x~qQc'ŋo{ XxwqQ%&ټG Tf=xw!eILNti 	
#x{~Tt`
9VʂՂ}]C]C\CC"\]]\C~

@`ZZ`ZAK471O!)?R!%$5$3?n*Vs=B}]"frNw̤j `r1 0x{~q'7ON L;VNx{~qLFBx87|`ܜ+99C!jbd6%C&ɉ򢓿Y	S4EhMnP̧yAStsvrwsM<#{r3dD )+	xxq.FBx87|`ܜ+pr3J<F5PVd6JFJ@+]j,9A9D6xU;AStsjijɡHP-5	$xxq>bsŖq2MnPR|BprB)ǨʊQ4̦ThA)(Au%TK%:#H=j'7hn^-\39Խٽc8 2!xZs՞Q2m,Gb2dig-VR;VH4&mEtS¬evR˦38{O'sdz饷z͡t.,)#X\ =<`W_:[k;~j{T6l</^L{UiYn^\@!ՐFٖN`-a|OmpߍrP:G&҆Sw"'mğ#'uZ}"@[{
T+Ž>e`&#&L-OwihbVe^Cq=Bn%$ qXzXX>Qt	du;?Z9{Y(>3|i/6Bf&eFdP:oTU5ij#GC!B~Eϒ&KMۅ?Ve1 ;"3n
#1e5X'
c䠽w@xOֹzm ⌡pz2COE	n{?^웖k(EHa
,J,<OG' +ˋoN9N6nӌJzD^E;%Sd,BL2C:~Q>Tsѧ9Zn)mToo'/&|e!lMiAG0$+<Uc,+}?A'[gknjI:}G&Ŏ-׵ZR-e#Yz`X,ٓWUIUW<WkVu1'C=ADΰD-n~F[jH=c>;(}jQ_ˏc F3qIhCU>8RNȋVo"MO`sА3L3Xu/ߜwiq@ǱJ`Z(cӁ.j W鳶_1¿,iP<L/O05!| RSkljz tbX6:;,ʡG|KYzL{m;{JO,	?{म|w+sRsJ%F^i6s(B^wM,2 5^t(@M	QB9^X꯷ҊJ5{½AVU) p,ȃ`	ɼ
AKlStQ5h/hJyOHL2!
v|eS,k 3Vi8V4ҍa=r3]BI_K't"v|+EɕO_oS712t~({.YS$Fk=ߡ~^S_jxe$K:?D[qx*ҚjtQ- `,OVE׍.<+Ql>=?}K(MCvx-Y'9E]mQ->Oa7h8.ܬ3G̦:r<m>a/g'..QLPeX	K%/+^X)a[˲TIvII
:H;vGǢB8
DG#/\|:@䠆:s>i,3[4Qzjz"`ep"A>3E~8'	yZ4
z1ohv`Cεʩ.rs=`Y/gŧY}U~L-
ׂ^rM\^.H6hdRÁd,G<dD9Ƈ7bA)ꯍŁ9+axmI_f9L;WL %I.<LD/%+iM2_~apjdTR+wHsWEUc?yIgTTZtN;kڔ
jb|l.k߷ۗP	!{Ji"{/.Kd6Ux;T홨9L
F&APM笫(LRXb22eC|^R/{d0JJ\tm@j$?hY|#Vc<Y=$PXn꾗֟h}?u(UZ]r(-*.v6pFJ|$[uL8W4RsYa*6z1cvnAkJgXG,n3|wOaИnKUUa.3-][vLUDޱRY/mhzqRi%uO˱/Gӝ!0v~mB?	0ۄ^lf`@QH:1C=zyQ/][ߒVN8=i 58m4ipI\Uiҧ h
s-E}Eؾ6~K+:J.NOn}=Z??n
xxq~bsŖx .$xx>
F'7P
1*bM')U2mnPg
~P]	&&RfoR!F&;WKC'W{LuE}v/j& 1I
~x۰q]e4$2y6YrB-ᢻH*soQpd
L>	mQ`Kpo
nިf,W%.H<!bY6kx[ 8HO851
}fM $2$a%A&!&cD;0E%EQ\<Q jxk^x9F|x8Y2K'1Mh(7 5 ,v]_41'RX!(U$
RRRSuRRKryũ
i
@]% Z$3wr f|`gHd|@ggc_LnE ̼ؖt"p|SU.

:\
ΉE`BL(/,ɬJ,ϛl fnm_xk^x}>&a *N	\xq>{''LS\$o89GAhr
@4j5Hjuf;hf0S~N.(+Y/DuuFdC:OnP6i /nLxv;ssU 4/exZMl*Ɇ(q$)[UW)Q%#T)r9$vݥ7P) !%s(
(ܞAH^z)z-9.{͛7cke[h{ݻ۩T``-tI[m\.C*9+%89C[gJF{|9t3Ý]+ε]:QA2L@L@8Y@npݢ[qt>4҃[YTQ,k0$Ky[;q5Eoubcles^ES}{&e#g.W J.FTS1ay}ٿԲ	-z`	Գ[ĞJAm<Xm-JKf.*Z*KI:iHi1>2&/-g86j		hV`PNQu4z~v>Z9x<*.1BsAOM<DCF0ȭ,?prw	p"ufP?=tၻ[)wke<:|Q\jEdBjMjN<"~Qh6r$%xbtŵ/\	TFуӣ
  {s.+K5M6={!ުK竗q:{xG;Ҍ-AP4
y:VBb舔bdoJy3T[K=&y ̨B/MH1tlP8\'<z6dtΈ>Ʀe9{,Dv AblE%pIs3^i`ICbLan?o5^T( Lr[ե)<vr+iZO=X	$Jg~>nz.75+mQ#M%_rIJÂ8+隄L^
wφc]C5r_W&dꐯ=.*h.5GR:܀VZ)*SQq*-i,>OaҸ ۛK꽭BZ	B蝞́o>E}D^2PwW*Av: oqUdbK:.˙@_>50G_l]w\عT^I`/7[gyvs.<`%4l@<OPƑad6mK&|{s:&	Hz*$^l5T^M(l`?$*]{ڧQ'O\|EF$"kM4R\<\SEcuA센c@P%wѧ^>egU%*KMȓY\(
 V<T-Dӥ9-40?#A)"_(L	L6h{uQ^"$SA2Hn#wB!+д\`WL\rmW)j~edJnj
]+^kX
u^B}||3Sܮ'oyǧ$KPsu^#*ѣ?W!D}|&S)-=J)~g7+9 ykG61w6M¹NTS^3PֲJt[Mn)wM[LRՌ[+gxr	^?.JƍRS  N΀\l+oξ?S_yUD=:CPr:{DBu Sul*E>(7#<ǆW- Gkg[3{:گlvO'o]؟軖S|KqN:\<w039fx&&F]c4ɅpFkd~UJ{gaنkbKҤ7ݭO+*^ja}R!7Nv^^
LXx|=D:7xiAniܶ#nA(ZG3J2\;8L"A9to۾%pTS£I<蠥L|Pm҃1ΟS25
QxqrZ\B7˳  HRx>
]D'k(l1ٔ*a͋|uj<:A8ܛC8?k,2's皼ͭq/7s" r-nixq>bsX=1n#Yx3|>ӝ&;%+d*gd*$%$%*槤q)hCq&H`r&O8HDy"b%(';LNgqwrqsvwqw^YL9'4>I,}C]"'7rIz%'WU2~Ύ~.ή~!

FsJ7P 1:\\
@XDE,&8Fx{3<Q\VY,Z}B}M'JHbfEPWsb.0#Ǫ/0'7NN Bx3qvVZY''  a5x3o&X)oyb KETxYMo5VHA&iHq	%IB
HUMT҄~P		ɌwtwfPв	|K#g.pVĕgW<뱝wrC3*t8\]?wss<?$>_{sAVk&כ22l.t]dFہ-VKl!Z5:fy&Ҁfh6cobk}yMZ~wgȾB |YG]gvA|m?řa5`:jTP9ZFc囬aǬXm`U "l!(.:6ݳ+e!c,){x>(vuJĚDs\Qr( XO*&S2ɝَU`?,Ӄ L1β-E%C{$LpHI$hխx4)1PW1w&dx3HR6mr<R"[]AGV1/%^mV^ŗAOB?bW<O `4or3A*h"{bSI9{)*[itxtXV$4Yuq%dk{l	b}l
ҹÚi/7s{,|RfsmJI|}:I_/DَdٳPJwUKa2Xŵ.Dm7J|nx#WƟo}?r_Կ{wWqR+2/T<i3)S~OgimTP6/.,Ef@&5Hb+F
֯m'o3!1_8o)iNr'
DɜQeՕLh Ղ`WDpd5hlPWI4lʟr^Wf |CZȏ$ޝ<B9(`Y}fT}5VWnBZ:0sNNs]y敯U_tIKj&f|Q`
ږ<Ap*CCz"Ϗӗ Ta}*LoJEerqrAΫӗ£[L	kĵl,}s,X~K;S})6r:&eCiёlׅU'G ,b5(peE#Vq)J3IM$a0O4Tvr]k]Eۄ쎹/tZO
(~5 GsY|Q2;X'^1T#CHD$|xj>3RȒrtQirK]:g^eՎ,V<+3<2}(<K-<J#z4=lw"*d+e:~zڻDFI_blQaI8\F"wDn'%ryuNrg".G2~?9MHȥHٷ/gs~o*#n]]0wI~KEgMsmHY1 ¥tۅqM܄଱wm|lT6M$_΃Ux/ &*(,VBB1A`L<wx3qCf-⛳X'7ON P	q")xz"V<ZE%
ɉE
)eɩ
%z\
Z@P24\_\VRY0yg^JfrbIjBbBi^v^~y@@@KL{Ļy:ƇDƇy9+#PXTRGa~

:\`5ZZP=
KrRKiahkTCCZgxDXL U]~?g>P
&dT*eedVM>h(h
C@\ \J_V|<NJ4z{:xDB*4 <H!)1'E5;989BI,ϳ": xxqCdNTԢDԲTʂT=.- Rp(
M.T/.q+
,PD3/%39$X!1O4/;/<fTI =C]\<]C"\CLT(M,*)#Ұ ?W[
W.}--%I9%X4045l!W3XW<",&Pܪ6M e~igxøqC.&fplֵ4Yǆ{f 'Pkx{=D&*kn~ƥ _"n!x{=XVZ 2fx[¸q5KZN~f	knv D
x[¸a
e9,i9%tABx[¸qC.rf^rNiJMqIJR~~^Y  uxE m0!
sSecure camera mode	5p&|!>AP^2kxxqdqĒb=.-.-̼TCc,83?OPπkA%q$8@9ܒ<~~n>.N>+qV$楤L^-2[d DEVV917(1$v5IEi
`/0OnB<F[!3'?ԖpI-LNR(.-(/*IM1YPG-|-<W,%\ZTW nشaN͊v, $usxkm𜛵 #$[YZ O(xkϝa
3ovfsbnjQwf~ւogi jCxkm{'nͲ<YZ A_xkϽ!i)?WrbnjQb|^Jf+Xnm鐝k1, 5es-xU]oEmp|!j\uIuƪkuPy`#PABTTƇ@%^< 'v_s;w+/=kԆ@A-5):SFہE	{1sNQW+r)oJơozbpNCjA6^YLuyyr)aj_rSW\٬VuTA6 }T:(Ty=sf;2; ;(hv-1 /9EߞD	Ctw3[}>8h:c_Zd$_53)i8ذDZgVkj~O(qs
{SQ1)۸M3.zPtoD@@/t@		R!|NOM:`X&2K<Mc/2fL?1dIy73a:QI +ʞ.	c(׬-0@a^6FKBxcMO[2)0n$f殰=YU>,5EKw\d<̭AQgofWr݅=]}={(&YB~fwbrn#kۻ;Sz]uYz񊼔N-&D)6%a߸7wc!:v]c]$iL&3iRԹHC#ؼ7:Ħ|meʊL޹cﭯvD;|3Dpv@`hkE~no

ޅ 	g-: B4x!u?k @>""gu#78mJa (dP~+/ЉuǞp`$}6qmj']m!٥_a꿎BQSx}T[OAMTȥ §JhXJ+MJ`fNIvwpgZJ_x0f޼$LL|5@+K99ov_?Jٲ%FiP%VUFa3uFe]UE_4qu+fjLT<̔*rʕd9s\H2\aqAQb19p5M7=7#F$x?/'<^3؛T^c7n>J JL#:~׈D+]WCRHBZͨv:@/3EK:5pA)ƮGjG'ʧ?8Vu%ǯ}b[uRƞHBuj ChYZ[Q`zhWGX(UVr9هj"[8Cb1|7~Ĝ[3^isF(X="0*}TVjz#|ЀDYk$bC2ymb\eCCYH,wTn!\W	vlgȸD	K(<.ߝ t3$ҝrf9
svrHkAbtRʎBF{⬨&X;n#L}m cb	h[`bYuƐLFlY=6w~ϔ+,':yYIzNY#do"6qxkm۠1y~uvԼĒ<T=.RJKOUOS(KLV
:
@lh$&PRHNM-JGYC# m#"?x#{C&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'dR"49)#?g!&FטT&hOћK4x*h kB}x9;oC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'dR"49)#?g!&Fטo'dV&Hhr&K0PF!"dS:@ IT@L:x+؂dk !25uu\'DB>WT=ļTPД%db+K 6 FnQ^Ln{V1Ndl7hdpqk  ӐYx95oC&S}bJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z0ӊ++KRs'dR"49)#?g!&Fטo'dV&Hhr&K0PF!q"dS:@ IT@L:*؂k a2/uu\'N=(y%`ϧJKOHYbNf
,M-R0QbC adnńGGm Mvz zsFPo- l1xב@ca> $lx75oCRQfjdK ktn#x75ofYZ )2_xSWa>3ovfsbnjQwfYI (
xG wUi5Z
camera_ndk<GM=	(1.S4;M|	Vx[#lC&SvbJJI~zQ~iGsbnjQ"C532S2SRJ2RRR22K2"
y%Eiɩ
iE`dY
)9z@&_`249)#?",uu..}-M
Z 3
fx[!);1%$?(@#917(KAKHIEi
Ee)
%
)iy%y
i`g̼ԢT"X2,ҜT=Q/0MN`S,+ےY ;d+\\Z@Z-} 9St/x?LQ-imA),	"FFz}/˽0.|rN&.NDgb޵wAo~]eoѾN4m`Bc)̗U8Ba.waN?EqE0ҕGĢ)J8t;u}v]4ԗӿUlX(\sTh!jsե-ݐ
,Ã@2\tDDoĐ37.Q,Ƃ˂2Fބz0P	HxN'yFy,y/V>cG4ܖI>>vH FCD)Ll(6%+kZ*VERVŔQ@U=BT~Q]S{;~eu3hU(. " IƼ(ɚx>˚MFȚ}151뀉Dk
Pk[XxHatk'dp&NuxՖw6YepN3f@oj9HٶiӚS:yaծLe=2zI?.^-c*z6,Ш̆I8thaXV2E4Sa+܈V$IZzdPc%YM>KsXfQ؍F:W(mj{VkxE]R]P#']dn&lG>6*]ǳkr^)!v^H$k,ճ'RXgin§@A \x4}eɧ'&ge&+$'%*$(ŊSR}SR''M|U@!QL#ʛ|I'_h4_}oxfIF0\c0fs;fHFBJjZbiNBqjqqf~B.H]fBAF~I>L*'\.Jpk`#!>'v<r\pN.5GD98]xԲT-hp) T
XK)J2v:>\pŠDap<A`q"TO^)HYh *ox[>Tj&D3K2KKKS='N>a3ֈ{?=rF͌UEΉEyE
ZKNfW(OIU*0tJ2KKK
Viim2Q FX0nsx[>q7od.s .7x- B#3oRZ	z Q \Jxc]Y'/ O8nnx[0i_7I8  0&xs۶$nqLgn{*jW-'_4YH;NŃH%Qf-bx8=gCf;w޼~[B[wJၣC$'љ3::͡󑆑ΛwՋ$Y{b'(FCL*v\ߙ˕sGH#	<N5WtHӋ8^a+?:g?@`ߣQY@Srbz	B܄.tc׿9t`ߑb237C:5}I1;/cg4~GCLWΧej4;xt5:?98Ύ
ڂ|U% 1]$S0HъNݹ;7	MpKCJht#h0]1GraF^"%Y܄ArȒ}PסKEܺ3.݌]E☆s2de0K<)K-r~`
`̈́bM*NB:𡣅.dѩD%GlĴ됄`e<g7v~wc.}):(yzn|tx3G/9cFp2/x89^2US!y%`ELrw@PE᳉믒Xu$Hw  7o4&3> |K'|NW_ 59LW^@ut%g *t2h
4θk|(H3%9)?%/13qgGO	OGRp*c$I\(TdAV	2UEj;*8$~u$\yxW~9qK}QȞ,ҡ,D"6f(uN0Ze9.7+̯4bk]2^^_eO&i,Mg(݂N|%#psC-V.ڟ ȟ<4pΊD,yck&Ai'_
S gAsnB+
Z4H &w!	KO81~rgF(f/}8]Q~59CK\^
,+tvtamJh9o{zmc\ANjfym]ɊBaLC*WW49+<"]$ M,s
?,>+1d/kcuX*OrmdBYV/ o󗃇Rl,3LStKx1,zL^	)d;脜``̛Bhϣd:q^6:?O?Ϯ0($0#; 0SZo6}/USÔk_c2+[P{k<+"4uc2ܗz3/d~4F#Yp1C8)qm
L9C7n]$$8ʭdݘzP%'74B=<}(i	g))re_$Y_qZdrv~5韜ECi;15RHJgF''߳??ɒgb|_
ѨqjԀEOIvqC1 St@yKy敩]hu8l6fTp#YhG57	6 鰴5 JVc|CP5X.ΰ;w.hȢې1t7tkH6Uc}q!G$< 05};h5LTfL{!LQepKI0KVB&yKEdubc1wY*ruΥڹhk2=լ?[IQvΎXW=+R2#T&SjP8qJOI1gG95۱s;m#MÊWzu8Y*NQTgm.UNGygNTӱu:#ΩXgw.*:Sut5&or6rAeڍZY%ZE0~jSHhn>706h]ӣ`FVmvI=J"/0_ȳ,Xḙ.([x!}59sDZqOh"ɣċ,tpA&s/x>`ZwSiV1S	ՎGpðk\+-Xvlջ,c\rXRK%ß߳bXDk-#0P~ivƂVysvnE.nzM"m\s))|uTƩͭ7}z	JW'+4Ho[];~sMh!'SV9,9	/ʒL?~c6U0`TyJiʷ'vlURxj0k<ON)mV,J+WjNVo
̦%NXQ696']Y%)0yyz2#O91MvW
/3g͕N4Ce*S2'.	ܠ.f^YD0TIT/=iV՚쳍YlVv|K.ֶ`&;@Z
_bC,^2I}>Nzͯ	2<.xBjߑiݬy|vft+hȂ߆Z-um1׊	hh4HalcEy'ĊA
PD][ʴj/K;aV*ucjmVrwF$UYba56.t&UwYoyO9艫9fsvL3}~&^--9O9iMķ:qS`=2}	uzCX1d9,З@"!bAiҖ$4P}t:?ةqںX<rR2̥	dH\Իu}-q6qqk.Z2?N@mѬMZՂb{Z^Xwsg\XH-~hC6֔MͬkjDOzO[C1oS1Jg^ȊMc55Ee`W8[<7MvTh)z8>J.qEk5Zp܌\uM2=:Su*SS*+ hHkc4AN]șCRġIƉ{谈CЛ^=н3ċbQ8]o2٦X$6\{Ujc#"Vxw~UN6Z'q/2!.Tx%'g-=Tqmۣï)jxٔHψX_e{t@?2|KY z.]
5 ̐-EOEȺ|~@^9<mQz[~Z@:"Gn޺='W޼o^-J$D3;KG,`/ }Dbvqm(/Q+UJ%ֱJ0p޽Cs{KŪ-ȅI" 8NNϏVWJ[tizwbmPvr$e3Kܫa2():hJvA7Ykr7E
%,"٫.;(UFͿIXRl|QWRfͮuCn2rf#Q_-#h=1Ɉሑ"3Z(> |EF2cH)"La1r&G@_r|$_FD$W^np],MFtV֊SIҞ?PQȯ`;\pȻe#1ʲ=kf MKVzT8IcJ**qT8Qb6Zbnl-6rK^ɸ?s,WԏҸGuwK7.%Q
AsԠ*ĩOcD-˟{uLFOAX4-2ua8݂ӷR;4+,[^J+|Z/눱HΨ∂,xN#[#Ω;BfeC'z,-.ioM4IeKJQ÷T4y6X?M@VL,J)1Hi N>%)%S	:Νp-|>%0)![Tg9O,uH;A0M⌦uUi
֦aU:7҈Xw;dNװ57gA 'tџ={*_+J[ۣFztZ.ןJ#Dl[2UDCKLSd5#msݙ?;;:{ʢ:KlSy;	vhkRa^Gϩ'&uYm铦`(z'mޝ>))QmNT>_0wH5Z"_e&('aGw8nv*>U0vr.t8"CXXU"acNɼ|mT`>k,Oy*o_sZ:\jtx,Rjjb-*ljhj殮a^rAC>Sle?VČ)a!|uGix\g,:J",G)7za91%DB=xѵ_wa},PYi|7(bV^;8dN٭qV[!ZTbWmlFbs=y)=ike7jJۢB+
и(gl727=ޠaI.ywN²YBT")/jpVy7z)ܒf}g3&z*jK*KmEޝ'>,%V"Viԃ3fp.)	ڋ=u^qt$.6:ٙ*q{=ց)R)JGGft+lܙ"ݫf4{%|(lqT+Qb+!]'Uѳtjۆ=Ţ}%6zdd% 5{tYZc	вH?7΂]-qzk8'Wp+W6@Znmɮэ?xΎ*YԐ2:j2E6=^YF/Z\Hy]b;3HMx
EuW3W#vqW۸j{Z{wX9kxWt+y,GѾ?
)~zI,v^OD,ų $	{ŦEX[UՖu`}aY+2Z2ZY 4@sq ?雨(W|'nwƾTê^D  qh[}Oe~L|-g}k`qBa/$O:-chsp+=E fiYxry^6i8dEqLCY?-oٱչbGYWUge=BQ]b^O!@~^wpaFzƨp+m>잎
s5?3Sfk(Q tնN%7Yhbh!hh$Yfc8&qÉ$MG+޵;#՗H2~%CD	UJU[l;	kҧDb"υ'@T΀2%oͲgp j32	b-$L:A11Km8͡{/_&7Ii|bn*Nb9Z:E<+Yg/^nUDZjO^O?c$'MbF}.;uȘٌd
7܄d*Y(YƁ80SxhJbiʊ6Ѷ~[wٴfB
Alcv>_X\tʤzr6,]9$by?8z.:X~(7񪬘`iU"fk!aݩr~}`y@?w)6G"ma=12_I8.RQ=y4Ch8NPH`ҘӞ`dV_.[0[I</BG<ڊ&Ʌ-|)˨qY:;io_i̧uT>y*3s9(Cϑz's6zXyGjP$ۺ%&ykUJ	T]l/.B~|;jS{Eb%FvՓv®NX?10`tyKX4ŏwJ^yS`'Vz7܁mO3IqGAb#*"H)Θkxx`a&?%	V`TH\j'6FQRWV";OìEM6P5z5xh]~7t>Gt3$4HH~Na"{-~7dq-0rSί/_҇OuXͦwI|Ѯ{D<Sr.|MsD7.FgEomę7gG('oKՒ]j;ېb*G't	;5<%󾪱%gwQ_$=Bƹ5Y\^FmNŤAoQl]j&OW*Uh)W\}W)rqN Mg%S]:&topE'H/7ϣw_(yܓ jDxa"M^^rȾ~]ݎV0L{lpo)֭	%_goPC|\ZGc/v6yxi9erZj/:o*wMiB/{ƹ%5> &]=NOUq[u‟C=PЕgQ_JYv28i^\Wh+D&9t,#Rs֒ts֠6Uf<܄yVյ`1yo"/9NN&ӕDKzA8N>'BCeڿBGxZTT׹^3^	8DQ"kj}3ga0ghb͍c.4u-squ$2+i䚗iMZ!.RGڽ933<,0g}fzԑW?d.#r\%rfWǘYˍnDY9K,0E{""ƈXh3#eowqNlg1c]q}tOh8W`!x<8[[dDƺ6[;kd\1o\h
-9(6~=U'U`NڀZCtDNp 2(DŒՈ^W']*Pc&ɤ]VyhSg:#JjP2ԞJuTTL~5Jx񢋳sNJJ!lT
H,~-wITv)}p=݅-N~ڐ+U	|Baz.GFA}.מ FCU0Լ[97ۧR4&؜.֥hbf3xZ^NYd;1ؖ6T̼Dta(S\VLn\đ"/YcY슛c Yx=k%C>+%k2H*#ٌ.yx#P
\_X׸ZnP᭾}'ble0=bgLvApnr8'C0l_Mb8;:*zݍTf,ÊVΟIjLs5.2,f[55ˁambe",LPW,*V#ma5k&7yEˠ![8ĜYU^<1W-!oM.&{v#<v0X!pWZ30l{q+A-\ Vx3p]Җqe-*!q8lZfPL7
ϭ{ 7iԌ7قE~^<{
2\lm~g̫V8E8V!i;3HȰ`ġ3;pA"6FAxsr;:vtXEUoFX<b^Ʉ9"ZQh
*0ΖBLZߋ'ˋOk/ӉpІSR(qw?1júdT_w3s_͵/>l|%},Z1I*%g{I:($ۻMQrt N:j}40ҙBZk[uCdO#_b8g	\9ꍅ}	h%hE˄ߔ{x?,?Q
j{^.i͟ȰsBxlG+Z8ܫpv!%ދzhY
zupOo޽pǠ"X[ǖޫAc(֣Zy)7Jq	ˇ<ZFt*m6lG&GC1PYJ'fC9>\\/j Az?}Fx;b+5,{UFKmdprHƤvεp̚q-[}pÍOQaߣ5S@ r cOa"(},eTxd*E=x=K?mC]^	mhޫ#?`-<Zϵ'<m#"FƓyE"4'bF_ T&$4	<{)XtL{.%F^9L$_=W_iUDdzUg
"lXU#aKnJEUHOXi[KJF/ ,<a֑flisb{6 v3#ϵ֋FC`B	(+Ge17E~vه^2X:w/׿zĆ HtD7&C'/ V >Ce(,_&G(ܖపSj+B/3p6n!]D'm(AŰ_;3!<Ѩ-j~\I9xYVO̸97/~L!,p+3w/-rBy"#I'c	*QTf̝^5r	?OG-p~2Uw;;&QHWV"wuqks&ׂddE7_q}?bM9Ձ<Ho쬍	Rq軟\+&E;Z	o
Lq_\2l W}Wu Lإ=ﭙ^ugp:t]?;+n{犷1nZdx/GwbBYl[=މ%j)QR(}h%Gz(hڰ&8vano2նҳ[yMVb(t9'/&Oݟ5ŀiڔ0y`3KVwȃINҘT `~F)^.$fg^,v@BM&x۱8Cj3s{==͍a.;mV4W	-mxT]K*w#w(mmommT3wP&VL'=m+aSiUp>uU\)%0
L_C
7eW4HBqWKB*2XeYL`8;nB-Tw3բ *aIG?A"'	|[KMwq4ur.4qF|,}L%EH>~t%-;4巌[|1)qǥ#xkg>A",ӆ 225RVX0aH$ߑM!V"#2=քX#\,K:dxX^(hL^+@_iOd>-1f-_v%Bu{,經_ۈ5Zؘ9SZjMϔ Mm|Hî$rWlXt_\4C1zș/AiHZEߟuݹ	vS1fR$+9hR-)瑒9M''7RH-| PEb|5-hdA"+j.Rʥ85_@}@'#u2V8xrD*OAWvJ4)n/œ}*-6&ܠVL;!g81icRFkۥT$]ICf:{@DG邴:UJD?JH7'HZ)+eA >3Z|rwR~㰔R`]H>#mT)E9W|J!KɻYx'SXj?ń#yQ tf2 a	>/<vHxPC&bM~jy|%#p&*y@FПj\Hw.C7[0CgIяiKF0}ԎEwқ藟+JEYJX<_zvRY@3ʔ^x &SoB-ɼ]"f)Urg]&2q$|VFxF4=
]S^Zs)y"j)+]Jdx𖥳ac3[y&(O/UgT\htɶIS%RKJRKsJSR'O(3߈k_b
)
i
y
y%?;NMvzda+IVԼFⓕ2gcT\ʤ5yAxɷQ\霟_P[Z(>Ί;1Hs7sM^(ʜW2܌fl$q1qjAbQbBnb\B@>L*W(He*~9(izcF5N_Pc4l[#Vbl_ɅrФ	BuFha KQQ}Ri@5"&|5	*TerBB".MU&IwFiNK`a090BQkAo1[13rL#7y6I5'0M0QrGyR8}"7cd템r f	)x?204Ԓ?25/TdTܟ+VYZ;Pql3&,.fa}ɾ&fjL-
+奦 RR=ya⬓e3'(2rNWbܙ}bj M97x?,4Ԓ?25/TdTܟ+VYZ;Pql3&,.fa}ɾ&fjL-
+奦 RR=ya⬓e3'(2rNWbܙݶ 87@x?ǲ0K@;<E3x  ~81:9 9wI;Jڕ >bx|e=BiA9ũ
%
řɉ9
E%E
ET'& USP;cni)lˋe<;Z0c&?Y>KliɧB'f}Tս9'[~r}Ɇ3J+3N ;#<}J B	ǥPXXP&X)3or])F͆Y&7N慫
JK|Z( 	c-dc5&'לЏ* 7N8*R$S'ܩXp= gi%XƸKd-sF2}\'әl&jE<,Vpl<Q[x.ݯ6M)?}8#EU~~BPH/2rAWBpւ4١լ8*=bi
E)#p
.I93dg	/Ƹ\)Z`p) GsbnjQb<P7.}--ÓISp^	zMǋs/ٓ^e3RZh
3Q֊ },2xP ,*@>*1:9 9wI;~=J

@p@/s{FJ<!WuL^xx0ˆ> N	}xx!QޱO&80EIY<f3M\Qark9W&&_w\ɝ!](|3-eL@!Z#Ysl޹F: 
?x% bngMo\;70G	5x mREDkE,<]Z<] 
 *ki.-g>qf 
lQy	h=
y
   zz"=}#	
i͌v)TF9/$x}eeBi,%œdjN_ɨ:?W88*vrgM~wc\͆'fL19.s#+GQjIiQ^j
 , ՓO :Y6SaYyF͝WN? &9qn_xy:|u *myxyONs> 0Uxy!x6	M|8 L;1x< ֻi5\camera_ndk.sowN4Sj:RXMekx*O~pR982שĜTTB7<vfO:ܙy%F% E'iHHKOTm:wΚ=*s&br8FɎrE}{ig^*:_qJ	\0(!,MɻG  XmRxyNN}> /QQx1cx6Z2p Wj	tmWx6,'X .|pxՕMkA!Kݨ	<PRlmCjRTBd2̬;3=~:j{W~[lhYgIyN~>};5_WƄ	+L%]ݡ@ňcbV6gL]s2>DVU!fJN9lc8߭Zx(aoHs@%`6#5DHm.̇7Wk1b$Ei^Z7GlV喳J['HN޸݀PDT&pBGB֫Ow\fcz%1?>grERP㌸(ڃ+] 3ry.;)%sPX2$,ع	z~fAoK(81`hot91cb/
j,f\#1_/nm~ߚM.j{&H)9eևҸ¹k*?xΛz;{xsډoop|bA8 ;&Kx~,'_0771(_!1)3'rsmD㝣&r\vb_	.YOvqKLIU@Ֆ<UED!H!/cV иϚONе1bG/gLf Ex~0Og&s ^xtoӆM3&M^"VXYRPP_YYX7yb(T* UBh V7/g4,X!ZUF*Qn ]NROxԶiW!|\&	l~ 
RxWoGI8!H $@	MP	%1| Yګw:iȴ걇wTUꥪ#HWTJUmUc;ԋ}Ǽ?zUe%EYd49H)jJ~"wWUɬɖ4;IBUlb'B4æ*ɔ{ERL4fX&˦TϾ^XX9]l k?T-~ӐlmUgv7{&+Ř$K!6AW$<}x0q[ 3kƢk*@ux\>~8
?7R=wwCvo)$3%pH"hcHwL44#miBC~͒4RM%#a[W+KY<7Ԭ4%`6SB$?N"FX*UJL*T
ьI6W\}_)AXĤ(vƤQjYXQ.\L:Ŝ҃`M{m4']>gW㛘OQj'yy"t¥BTFete<Noc{&E$b9ΖlZ騄oãɾck6|>׮7NHJ30FIxڄfplJ$֩OuanEmdJV4#]m,xS{"7۾PZ$Θ<?*{6Fso-2OQ4<oڌ^\e**sYGз#$2epI͈~!3ixi =weCd7ـ/i;\l&\|-8v+tH؜%eXbZʤ̴#t</5ǅ^۳B=W!odn[f2ć8<_snBvacxH(6ID²W@P#̕:k=Y{<FN_E^ull5񢰞ׯq[b0$rCTI-ۿ_q
vT&moh`.,vʙ4ҙ:[<}8O%Lj؄f;nt'Xlg-	i^e2S#8>חc#W"=ͮMC-	+a|I
0qᏹNZU2`(/=$ ~/ jSR4N:0}|I}Z5'S3˯[<u*U5]
ܟqKn*|1bJ,r+CqFPG,sVB!ǎXVω)788TB/EnblEQCYpJ]z~>W([@_>"	l$/4k+(P(@~x2JB܆2WxoEƕP$:5ELb$th4GdwY6Jd8p z- .\"X!@ʕowln-g|~ow{}_58ZtibU!@}?](p82ZHX <\kvUm-e3[J3ǡ3OʲٓU2szxs[2IrY;6<aC̥p+_~^%=W#	!ඬVᕨWk`Wz̨><Vp*ÀRDnn3vXR Tb|XWF!Jow䥾u5ũf=Zܦ C:wRwzXk`
(SV&3ZأIHwgŝŉ%\F.r"Rh)L %|4+8a>T\,`U6]w
x%yc0Oâ)<i1]9tc)XikCCLJ?7l0[0Iq'ugx1uF1`PjFx); eI6zƁߤh7զ3',~4w/O2p4gu@, ݧ<
ޛta驘{	4p4SFȏN@/Mn<$N]I6sS@O
(zfY`m.+v6Cm=)lB!`9p[w#htJ/z+mh]= CVgމ6vێ`!,_G`]0C38?>ށ^. +u'߉/oC&R}xmP=KA%IT0E` 5@	Hzf3qd;6R-lJlLHfo޼yOwPkfJsTϳ,
iȝ-v17TD\qa|$VZ@c5azUtd].޴aRT>+mqz8J&ݘ4Ƣ<px,wZP^;ZٰRŹr=(D)#f`/yU#SJya>#:*`H4<WU+ӑM}ONQ3{?ӟ
Zxq^L))%E
ΉE\
Z
@H*LMS(/LIU(HUHIM,SO8+d敤%&*Œf)槔L+,NN,P,.IuNIi	L=3Gsqk*h :Q#x[qqĂR32SJ2R!ɲQAɩy)9Ἅ'7<WPrr#&Fe4؃SKS'3ƩOcHQiͥťT	
@z
!@ԴҜB&DYAF~Id$,E+$+$*&*O~/;ق&;O!39OJqF xbYxWKOWV0:H<Z
I 1MH`BT3ӌgy@ICXU"e7TUڪ]JmcS]y``*9Oի?׆^5@j
i%Eы䁢(
#F_D/R$H+Qe\o|<pݽ5 0&o';xח誨T%^dj`.Jq
phA % \01KAsj
~u6O[y/nɪ-Iq36b(jc	\'ˊN	'0+1RdA\n&	rR<*Rrq9Jv<ٜ<s̭R5R)n4C5MTd3U8-ɷ}7BO!~.$CEC/:AɎ;;aEX%QY/R,jrE*,*dxuAvVk>X>ըnJ2UTeBCXt!DR,PέAW)J6py$0U
`~et@Tvp7:{G~jDrt*Rpd!`%:O0	O gP Ňc-[	r:<=M
BQI0o0BYގ,R{beVьrYQuā!ΎtβYf&eںϾmdP00V	yeEB{Pf=5,?hD+m[9S1_2sau؃deA-5^^TmLVnW `͚<WXT6_Mpg<c2'"DD	t{ei*d4Z l$[T^V'oX$OVT	h
dDmti~;4h!xXg6`{*r7ͥ+ˮ2+~'ig*Y9u٪^~ùRx-,|aUr.]uwSx
/Y=.&(bǍ_4,ZU2-gޘ,(NJ^d[a;o~M`Ԟ&~DA$Cr6~nxM|`da3F{V]רq*5G%Vs1H|CaIZ7	VxnÛMyȇޗJ_a+R~yV%Xd9T,nA:~"!Gz ꃬ8V_PxKkQ)B1$Z0P4bq.S
hJ]ԛ3̽㝙N~.\	ܹSW̤JmRfs?~wc@/\W(ch!$z |TOtkjx`A<󤈱|eUqW(FU7uƉ&F*~o҅:7A?g>8)} Ab._N0׆ũv?G?/LO4hJjȱ0ȿ)Wk1>y̅t%}e98E
#Q3q]IkVfķץd](ny[QXs峽Һ3,rFi>/4-qgڡבX0ca<@{IJ'9 hӺg]`X68 Ȟ<O8iÑ9І`
@JG0),_J)\KeàE_::tx[tqs'eM0bS-HU((JMKLW(,HU,V(.-(/*IMQ/R˟(QT1!S:$PPPZǥPX0hKQjqiNB~ByF*PHݓEM~=y::@<-&30bvyfIBQbIf>q^#EA CAZRPD,(Nܠp4qsbnjQb| +Ѽå iťJRQfjBpj	MËb1(d&'F=7),r&JLr=jnd0ȈP^T$ ;"`h [Ixe=eÖL?z5LY91OwcTR@3L/dϨC'7U=9}5?#7aj޸Aqzc]'NcfTGsZ(Lɨ6Wxz#tc-FҌ/'plϖd M	xeemX 0=^k;3l+c ^6xememX?}#d}-&3Qtm~uf X$'x& np=,`0}qLloSi5xU j j'7P }qLlO	 p.^)&R+$F1-T xeڰ}{3a	B& h8x& ՂՂiiɝ{_1^4xĺ/K~&N܌z_q*p)hqN\+7(# Gas0e,VP`d 4d"vsF9] Sxĺ/K~<܌Uex[e_&;N@uzcdONݼ/{##鼼~F}ٍ
 !\+[xYr8}+aM7ӇӉc[p͓GeX$x:m lfva&C{=b^px^
6)8^ˣWpZeЧ7,8@Ŗ=+1YL;'#]B2v=~F(ysRBb&!a)z\ <e$f&OcPNpA@NճgJ{babKi7w8qA,R&ذ#3%TPS\^X6ZAuI%XX;|5	ɠmOĞxOG>|c{{FcpFþ{!~z
>z~(ym.ti&iބ;^A9X",-dJaoȰ"ȩ30aR6g(si.u$
^pF"/)V	_jʏCh߰BӄeLiujEEB̩ 0q&d;GFT8]h7`譲fw̍i$oByWhLX.,DH[g\Kr3t8GV!K&Tt]C2UZgE؜ƌX˾_k%(SC.:ݷ};:~;}dEi*Fuٻ{K횀YҨ Bӆ/,i-Z)ۦ@c*#?65-z-UTcN`í82}In``r"|9eBv"JHk-ΰaK.,f,.mٚǉν<B%;F?|t^U8
tTYDH2zwex8sb)jlAN_"qɅ@vu\!p8ܠ1@fهN;a׷4_|-Hɑy-v6$`-q
{]]OMO2 Ǘ|V?}O6@|WViUh('+`-K9SMϵAb [gx<s}+nWpQrkP%[ z?j%O[r+v;B_c(zj~Fݾ<M4Z[7?[Kv+	b/Z{>̢4[gpGW={wWa^:r[[ϛ)r[ޚ*rio}*i)Db,ޅ*O,Mn#nyvVC̄m([ljvY]]l
@-@£Bj<>A%GmU0O-ɻ8T	\-X}IcyFO0{]_}-G!_;z;A-+"L7ox{hzCe 9Kx]msF_R>eGNw\* X  -_P 9$ /uHKTŶ `fgfz{zz^|&h:+/7oQ2_8]\cx&l!eRf͹ŉ9p&~u,beIaJY ?~$v7gTCimPQ
5FR^-(y)o4׷5"Wjz)ni$b̏l'y[hܛASVb[~FOpu.%2b,$Y8˛ȫ/ k^(ɶgRO5Ҝ1u+ٲdT[2,I1h?$Ykz\b1"f&=h3Vk2MJl/9@Wb*I[o{5.ң\Xg^$&4ZQ@OgKɌ%lj	5ʛϱ-L)ޜjɏi8'.M^<JllC$l&8<5 gY$_SI7x̽dm3?$RwA_(A{@RtG{ͱ]]vxڇ'0S1&CwGK?d1#L5I@3(a;Y?cwmL,\˲.%KKGĺ6,Ct}r߱ ZM}f(
~__ࠢIq/nːC4?*)i
rOTe1Tf>ZkQ},/=I8pқG+ʿұ#|E>~i5y۰|/{~I߄۟4_{o)̂`ƿԿX]=N?@v!
,fzTh.xgߒ6}oPWj_~o6-㝾#8]Nsg/Hax鋦11ˋpMM&;A}*( K1P"KI睱^r\%ʛMe#\%׳0拾=U@7q!4_H[0"@}ӓ)[D͏Ydmÿ4QDscPλycOat^72.2(E7.J:2vp$0ܱlޖ%>Od4E݄V^ךŽk.웥z$T-5w kc_S3EI;Egu{祈ܗ(鲹y~bkY`|P-ڮCR,R4<_tyu%"ڏyGOځODv.k
K"QcLy<6z߾vަ1e|Q4Dlпxū诽:NZ^gU-˰ķY˗y>S]}26BS]]pnI+hWfZ.gR!~P_MK#@C+wv%^J@)_Mr0[^"EaˋGT^U່.;Ue"zE	A9^2˒4OB5iђ7lժb9]Ίw<Eڼ/9է~44V_ޢb#MDuXpk*3ޠTWE VPЛXpNZ6eJH'_g鱿&E?ؼTI?*EJZh*V}홌eжn @폯bs,>=Ou5s]ݱyFOrpt%\7Ssj7/_毼8I{FtIBu-G7i=D/(qX{&k1ᶮ=-Ups6Vew~ࣳ6\H=|Yjz4
v-@#"p,=jy	&
^x'	
vP:I 

Q<V6AeP:iV5\(VwjDHj0tqBTñTur6nse2Gs+ISR*_71A>#5vv?laò>,xkE=)eX
 zv[6{\]Jaq+\|L}C꠰ݽGU)5+-%[I3?M0BJ6=d-,(gSIs&/*cNw'_ߓ12loZunn?][c b ޓ$ _<	cX;/(==`
:ωp!)T=D8J(VM[
4[<p1g'?'Ŋks
d1!m?[BŎ	GӦ,_Ur#mN1qO CMSP: zbw(!' H6{jqU D~K2g!˝`]'VT==<60bFJ +ɵMU4mҀlF l3<>(lćhC!앛Qi#0DMZ%Ej"C6kae"#NJgBJCk/I6_c5Í2SSlǘ).E J\Giai5@G= 0Rt{Ν;6_&L}{)bk<헭AH)RjҘYX'O{s;1Kqt+rH>8aq%<p4C,(
~	+AHࣾwT@S,l#(BT3m:ub4Va ~s.9aݮoܖk!{Уx!{Pw~ᲸQ21XeCpj#Pp鯲eI~5"$7##2LS''TE EV^,aaWa_
*v83$r,YG -<??'/#h6/Fԝ:+1pdp8nQbrɒ3eFqnϹo>t-5_4L}0LDqRtLSMX`=,c+QZ \%8(
~wP[.EZEID=J"dٗR/oK: G/	R[@[#h%3YCLQQ=&~~i[c8!~lfɝG1ĉ鎓d6ۨrd

Z9*f7$,:Er=aV,UWT7\ sL`!d̇yg*qu	@?KxǁpH;$<UmCVqk0C:!gܗd~S<_#Wl@-k<UZ*4E֐"xIRj0
ct'"ǡ#ؤ	r-;yؖ'CKTw&M OnJM (?%fH|ȂRA2zئ8vmUǵܐ#%o1dlwPRmH鹡*y(	nmϗ?:Sv
惿՞ŋS3!5îy2+^DxLe+]eG_HGZ`>BEӴ("'pW9#*~~_bRܓ<^(ɦz-=3L5IDx khm._tCGS}p ܓĩ!&Uz~=#=ruնK2z#T$/=vJ=]G|X8#1#YʟyO)NGȰvd]3MLL\.<6ߋOfLZF*Ud@zHLlrνz悩E%hvE4z&{z#('N;	<I3wD8Ua-9C[;IK-T=Xy*tnUsKhl^0A%'<厉,4-*a1UehHl	&cuvʩ8j?dO 0R1	^n$O>dO1*2_`#۪0RlG<7mY],u,cۘ}w@b78aH`yziwhZÛb~Ͻhn4	
XWLYZKT
L+76ȑY,+;iȣ	-+0azV=`zx[+#^ KFf	Vcݣ!ml6+\O.-S-V]J֤<b 	{3ݰ.1bwsv+Xz]OwHw}v{!f\Ǎp5a:jiWz,3fⅪV,^US@ՠgڋco'=Wii	Vh:éH\P?.lr0zжqɒppΨv	l,Iʙ&6)xӞ::BM~0.tTl}Waic#*q<.iq}tx4j:EzU~X=Z~XMb2V8x|t:0K6y`ɯgCYqұ`;7ϏSoW$ҵ"d7HTl>l٩lU]*P]#2u~Ǚ;wJOH z}kʨ+ɟ4TAtX~URL<g<:GV7ic۪=uJ7daԇM۲k*Up1_vfr/-rd9zN	K+kh8AbU!Qɖ@$*aipPrp$;vtz!8aWBIbD	`/GWGAm1hXsa'xbZb,LqܐcgX\7ث놂@|80\PlZs5kM8f{8G7L9A^&zGI;ǩ߃13Qap;d#P	
ϓMh~GQWJ.7:Xpbou<9Ud/-H'0k04K^6rίqɯyGEX<َߞW=&V!b"xc:ɕ o'q`IWTOvj;Mr h\㡁oOD2SVu-\MЮsiQbؑXZd~g{p'?0rĬ#^h4Xj:?\@x|n	1^,XA%2,S-liNr2ުgHH1MLm@00JZʳh=+Qq{~O$GaWEW:}%k 
k:pATS5/󧉟2t_
w6Qz	-}E|WlpqAA B(hQ
i,M}h;z]礧j%uAjOCZU|Y2]x{IJʭ(6~۝#u
>4g8h̷eA@lKyK.tV;50n-ͣx:'&&Ʌݥ(c8Jۑ}u Oǎ><ηL"A%6X7d"3hsKeճ=̛@Q:zdA>It./^vrssS# %/_&>4eހ$M)	ZbZLo9 ~ǰXoWLh<EgA7CYXXyōtnĞ!nWH{wCs{rc(ynͦ< @~fnExBܥ
E1E~OLs򐂹 Zp>f' M'6׹2J/eDFyƕQOF"_)w}=>ZJ:ybj%'-Uϯf>yZyu6m^8HKݠ[mS<
}#S(	ߚxd/Ko+QИ=eܗ(C2RXr;$]ղKF4*Ato!{G-i~2j"У	{Y	Խe;gt;=nf0]? lc3wX*iCp8(Kם<1Ψ1:
v-]t ThiybZ9jo0V^{BO_cVKpM^0x
ָAzH1;"
qpPJd%Y˓Y
[B*m9.YpA%5vJ`5۽'43XKR5[@ˡJ|̐ûT<<C89f(NtEo^veqY|%ώ"cL4)A-$TpΈ#elL0ih"lhRʇ&ۡERw_izߵuٴGrĔCQ1g]pKLM̘Y&қs)J>rV-E<x,yQ.Jmtcʯ'5LqoE=< fJ
vGX%,coEs-vU1\#䀫-k-lk/fcTFn-+x>fl`CyWZߕ7q~ xHr\wD. Oׯ%2иch0Q2Ӏ!OŘLBh]x\mo8_AdNStzm588^qw0hʢVx7CR,I^%rf8p԰EZrrtx|5ͮ͠AFNBO'C"a	'4}j×S#@rᑣ!9Hb&"23≐D.ɘ!w95'fhQH9>BSl=	CFNu\6\L6NNo6x.ψ0ьPt5{@rF4`H2(
3ŃQƨGߛDv/>} _E3 gukw/g=uLos׮>p &GM2mcB$}f1aheD/W,`DgK$)i.ƅ{K)uP\"Iw
=wNJG6:0
8~ $iR	HmzF.Cޒ#X^e+TCw=ž>2 ªl'5c	4O(M.4>Fi&u)<ԃC-L'ٴPqi|N몽Ǥۻ7[sb05/t^KOyp' =v7 9zS';RDSn q|á{'<3ύ!QWƎ|65r=/{`)u\sglb}Lv/ShAZP.͘\h4u>nHla8)R[p9@-ujdy.'utw].;`*Qk=3x<0	?c\G.qV	e
Ω2` ១ i-ԍ|?-h|T;g-.2h;^4U"<:a^2ƀT ?1r+e3f^/S-eͺPߙɢ<旋3rX[M';YemﶢUA- I_b,іkէJ)"Hs<}Xw$I:A pmєEnC=eQeZkvO;SWԍXݡ!,M ɻl2'SHIpbeв꤯b! JmLT_@'NDY!TA +D@@mJ񣚪$41eSj2~]E2̄݀1L#K-0Hȭ23~o9Λ oBoB2_]Lyrr7'm~dL!vn%U5	?0q͈u0^+2*t0f(UJ*s[d8H\ܷL ht3"-+(fCMLU+x!~?ǉtuEQUo6`ޯK>&<b9xR;EWGCw?߿}:;dM]dm/T|7,c̑H`r&a~Tcm7V 넩UP&&hOG ЁnwYtnTʌ^,ʹJfLP%&dԕpxţl6"ե	2T3vV1d3 A~g!r"XZT"c5X]~#k@<#%~6U\S$pYNmV3REFA)tY4"f~-ucan3VrxzolLGSI{]v"U
=î+f2B@RHo0+v)Zf9S=UkV*"(Aˁa
6v^ցPʋZ]c;+V}nYZWgId4%dY,Qa{T/WYJFf-y!$xV'#[bbǷ[n97/ÛWmϨlTʪ$å3aL^ .V˴	.	1_EyDv|[v:HUZR*:O::å/$uBp|^''%k(UxJB$73偢k4I0R0Zމ4u0f)zwX.8tF췘eZo'wQ~}%̘>ykt#lxd(##7^bWƯc"jRȅF)w"`33nPOlH7w͢vDJ<hD%՝+_]$ØYF~y3	,`:)I=<da):J SSmSyL0DNS)ח'VDQFV,cf{gnu#Y?nAbsSZ\grL4k*f1\,>LUn>oWY c0,+%rQ)LK?T*FU}Hy|fJ⮻/@˙F1$QsGxO;HsZ2ȨC9I4rz%}1Qēg*Gr;Y5뜨-"\8\`OAkUL1	M1CB_s$ͳHI=N{Rlɉ.%i)<1mn?9Ɨ|T8Mbe%5縠Oq06w56ws+LR%~s^bPVL7I^kqT.-]*иg4d;KX'uHgJۘ/ǻ-Vbleze屩	GBcSXآ1>ݩ;X_^o7#oO#(v9C)ggGY!zQ8oVL-3(^-oP3l;]A6? Nxc~z>d?f(KMMvVrǋfMjVoZEU3Rԇ,!S7pakǩy7z=9M恽{H,ط,;4rɋ5oƯ(@;R1W}Mxzx=sSJK2RKsJSR`367`g͡H!e77DQ|:NҞ#LS7gȒ$RŪ5xcF2m^49A+YTFTnW'vN2,iHiZhs,u7_ջDHF99҄[gOMVIVq\_7'M`	l,Y$'9ǎ\C,y[=.;s6K\&>ɓaoDN$݇
k2;)g2ܗ:9ΒVS%2\,	'/%臸It0?eTKUOS( _lPШIRV@& ]BxX]L[eṊ -?9aFA(PiWv1HfYxe85ĻeSc20ztO#mWB=>=zgG~s"hx(??QQCc*I
bTb9qq3'jbAYqNp'bĠ1b籂TMG5-ɸUꠙD0gT5EU
nb7ĊO*aLVRJqh:7Fx!N*Ⱦd.qg}.EǎV]}=8@Qw. OΖp}aB"dOISqϣ&dh/I_8S8@(ZQ{&rBP(@	 ƅbƣNʍȢeHHɾ.by)JIYj	"qM_WK;ca"	hbt^}'Y&{Jh|)KD{7Su,TAyj8쨴"LM6;h%ד7*ݎrq紥,FJggg>	z*Gh-`nUsIꅻjƼܽ/ԶKB8rHTfϝh"K&c˳* <n%UNl)#?#߉Bi%> Q]LkwC7Zt|6t>G1y"dvZ9s}GaGӡ2.e}_i`4BIq9aOfil*?2׵\_P R8F'7f=JZi9T5Zd3ٌcq^;g-kN{m+q}XHDTYRԇuwmSvYHl6ο
?MYR%I.XBMC6{c/q%Gw)ݝpqƹF[\G'e\ȕD1ͣp1:kW@~mJtE:UC"G6X!;}Y"NR6eIIRfЮ1k\%.e"fRF5dP3;F&)Xl6`2hpPmI
\ңC]2Xy\IðC럭؞OdˎZ\y-%,LR!ۖ].{J]m:=*EZ@CGR	3ɺD0}۷R6c\I'
.Fh6=@?ixrDNc" 
r*IP{rmq(a매<T..?kNG'Omy[ϙܤqmV\`rԧ!x.A||F]j~5~Upϼ=rt3x2o'@[:-NoZo`4l =+m=ukSfEL&+/ѵ?J:E?FOȫX7-Fw5ʙ&c@K]{a0>{f<`tl0Kd.?glƴN&U}c78QD>hITzˊ>{ ͞iA~eI!j.䜆\[?,n.1x&=<br>7.<br>:<br>*,l&=<br>&=<br>7.<br>:<br>*O&=<br>7."&=<br>7;M9{&=<br>7.+&=<br>7;M9q&=<br>7.&=<br>7;M9P 퓢&=<br>7;M9	"ē&=<br>7n#瓢&=<br>7nb%&=<br>1'
'&=<br>1(+W){&=<br>1(+1&=<br>1/&=<br>1*&=<br>7n4&=<br>1'Q67&=<br>7-&=<br>1?=;6<br>?o<&=<br>1?p<br>?d&=<br>1TBV<br>?6C&=<br>aRNXF<br>?6F#&=<br>1?=;I<br>?g0J&=<br>1?UI<br>?,L&=<br>1TBI<br>?6C10M
P&=<br>aRg<br>?6F10MCS.&=<br>1TN&=<br>1V;zWn
G-x{qzx'/ReI*\oI!y獐%
_#\tmGUYBT	EzBūjKFHK+/558 19%%$qrx=;#%✕VJMĦ4ǎKAKlr2&;jY2'vFH!X!4'HS>̼T#3==,$=Y@{~I./*KO~'N[OqL^ ͭN'ߗaGuYOF-no
oE&dN#y(?G؜*dFC\kPD4&<OUt*mCfd͇[FC-&T6hf㣹.ғym'߷64oadBWR h"%3_0n$MpCHopS0db0e2+EVYFlnAVf6Yp/f怯JG(R"9XB8zrUx# v~cx۶}:&ͭL}E9&[`e3B 5}ĔG"RutwuvvVUHU/H-JK\((X!'3/[h{jkQQ~s~JjFKĢԒ"T^@~qqfRNBrbiqjB,(3-39$3?oURq5˜So\kͪL0s8Ყ&Zm>8/_rCsءͯ0 =^ %xkθr%N()&(d+M^(#RX_TR(	W_PHu\J̓JQR	\NVlSaibNfI<}$nR$X9HdCBYB+|O@hO TA1y(M<IO	@%yœoKse&%O>h֚}"(ȬHM,|\	hfS'NB68'N>̱yiMr=muڍkv`hu1q)Lv42ۼ +ۆm{xkxes *x2qGTX6  H|6x2DX6FYe'HqOg*4y%1@,l;y83 sjd@8qRM2ro+1eTB
࢓ƖjE6C´pPz9N("5 /ޓ-6*4d*fd7眹&?p`leSy{#dNOo vY Xx;ǸqC,䃬$'˳NgMՄKAK}V	<Մ
e6Hnb2eә" LJA03*pw0ݕW-MPɖus%*$&L6I7b#zV{\Ү&u P?5
x;xqC,䃬$'˳NgMՄKAK}V	<Մ
e6Hnb2eә" LJA03*pw0ݕW-M0QK-<@?Fp]u u3x;xqC,r$'˳NgMcr;y637Hc1&P"}	,kؼ_>	.
l>U0F¤FVRsrnB	l.5`F۬g̎$6YڕkG937k2 NsxǸqC,䃬$'˳NgMՌKAK}V	<Մ
e6Hnb2eә" LJA03*pw0ݕW-M0QK%<@7Fp]u b3ZAx1 ȎE]n0-.z?G=/
<DEvև@xzuC,3Ovfgnbzwf8y c	"dxxflo >+Ax;!h	Rl%EHm B2R
2A%{&*%d+($秤q)h)@CNf^k|pkppBfB	мԊR~b,LfZҒWSPR_u[*p~iKbI"0@řU`]ye9)]/Rd?Qką&GgX 5~%e
ZPm>'20(!%e&Id
RyLLPXCQ!-13'ˡ8sr8P+TnF <B[x͑Ak0O3Wz([),ם%]{l֋M(#qNFSQ[
\(CӶo>ƾd'lfeY˦>+rD	)CrHNcQ|5UL04peN8,T$H?A!Ĝ)d
xZmiNؚrs~~yNI'
SsU ",!"Yo}/4_4{^v15U%xsdX!ڞ~o5pjl=
F23"HବGFhZrWeyEXZs;߇OG 8F)b>гB4t{8(=`B!h\J:sB|Mi<f#n ={\rVEíUѕi}]*+k"Uֿ\[Z"xSn0?2qX	qBiv@!PM%J;M|ive;4w o@OxpҊj/Nŧ6F(B	c)Ȉz cZiNc  zTt2wO5@8S #ʬNMawv-yXVK/ZGWvidLCHEOL X._RP"o|6JT#(YcuUt/6=  	e~Kx;[_\u8 Jn6l	L
q{GIٝɕC_s3S;ďqdQ\p0&  tR lxIN+Po.jG{Qf KDE9*AFRьwmϭuݱ]$0B!8\J{#DxԛWG-a,dڟG֧TQ|?wc^oνβbm'L!xkppX<yXZ◚R<@~~V<,y`qU 5św
 >wxۺqzwe6?qfPF}| 	xۺ:|2e4&W8N|9Lj<fDFdER<  ]%Ex]s8pWc;l.5$'C'əIm(
C>lk_w A~LT%Ith4CkY{yKwcbpp(p`' K?v|`x^},BzHb$lf/,8p#6u=1s}>TWTB,i؆6|0ߦzAfPK_́M=COO٠-4X~p{<XO:;^0{r14ӳoX22.7eE4Cd&n8sR̓^c^4;x7A~<_~lya~;fͳY8p{ t\Hoy	@4)sǝtͿLK.k#6̍P4pd<wvLJ-bOdaYwGg5?&G<ơ˧GF@q+gE*SۡEzPE_ 	>|C Le'@x jHZC;\ ;zQ@scX4q9Qg-@xqpx;>+mw
<ٰ?n:`tv?uFݳE~6?VG8>ߎK&ߢ?zܛ/r/8	]hߠD#N磑3[@McO^*Lg#N
XUHn\
 (lTK;@;K"NȡFjo^c8؍C08C?`]`OlЩYQi\Xq=nGB%}&ܛD82eh(J98p'{bΑ5*4!_pr@@g4,k}8+X.8OlYx:wb_f|uBF.W1"K<>7-"Aؓ:"ݕz]dW=)˩zɌ:)2Yffj1dU,Α9"ȢSgnk	ּfG"AaF/'8hޫ`K#zػ3^ud^v% &p8a_>⬇s)3>E']Am@1Z\>+f$Ak$k9}j''?~HOlLhmZ0IGW`Ui=٬f3:휞?煚/LN8`6P%sYTnYT6}ևO[ V(҄6Vˢ1U6 *Q>ۡ=C3UJ'ZbMVmU퇖F<nIʷlqlPZQ]Ey rhqb#G}j{}fR1hDc9;RA(6Kr%INfd룣[۠Qgݛ?nI|t^ql<rmո7lA,K	Q`5å5u\ 7z|W\5v F\!s5nPo6|^}ۀQy~Fz_ٱj->oh%-Z&Ù\Ƥ$MٽCL_*6#'NBj,+\xU\Hqvc5jlۑ\W-ՀqLz'ȍ,c.E3,.ijZ00aQZ.V]D[fXT/JzBlyA
LXJ%uӗhB rUlRqȖH.n$G-CUJpD̦a0:a;WmBwaXPU@Kc|t8eYyotU~\aIx3Tqtir4ڣAy۰v>|R#|ZlC(;nCƧt5ѥVˢE\5d/UL07WH$1ZvMW"iV_O!g}TAߕBB}X\ZbY%Cq{4!Qӿ,T@=XX";Vg0S32N&(!'4 y;oGfyvw'h$7"E#qABfc {=Eu"1L Y"ݓld(&QkT+]\ԲIrS8MTWvRzWt;tusXmNZ;btyl^93&vu7%&ݳO͓RaH^!SINv*,Ž ͹{=|5Lc$]~+3Wrz+Zn*%zrbnG3)?UJf0J*Zg~Z	M8h%YޑZROn}EoxM&gx1K̨NYXiܛaZN3L,|r_^pO~KtlqUc\7cl d]kdt|?mn0Q(zWj3U1Vu5,P_x7`C֊0|'@FxqjԝuI;з.ZkLXM6'%udW]W0n	8]Hxȋ/^^=r@;D^LS/q(G*"b=H4E*+2 &a4ige2<EU1UDo[>TQ:ϲ/KvIndK- y4|Z[V֦twL;bt~sg܏ѮV6{]v-C_AfO]EXD;n/' GQCF^>4n,WE>Z7؈~%ۉN>lcHma %NQ"nǝC8&$ԽLE"Z1B4KU!k44W!W&.n+n424j(NFʶf0X	`R[$
)SOH[x䇁daJFUa+>ybJP)(iԺ顪oZm0qR(\
*dRTGm[pj>szm';Y]j)a5hky&b.YT}2a%,z.˺_K_2yi]|xq~ʿ,)fuaXV3\;ޣӅq)"CğHWXYCV47xbpby[36h-Ajf͖rZ\L^X<U.#@n`hU J?ٹ-'(B|^J>FV5oр=h6+MHE;2_N JF8`pO=hBo0]sê
send6˜AXt%O)@a-9^Ǔ}eM'*Hy2rY-0:V?^al&-?_|:Wqc7kM2nPbmkCE.~Hl[a0,_+J#GKQ1ĸ"/Ֆ o}P\$O96~)I"Lw"'9QJI'!Q-"*Ş;.*L&b4يn
 LHWL֫Ruh(Ud7/ 5UWXptRF8nSrh(P.E|] ^5*܃vPKֺI??)fem9 MQ1Z]%@CO9Q:,uc;;yrށ.]NEˆer*y+H}Vq}LnS,@R2ׇ2*bN)`
DxOT]Eh_AN˻cmj4T^
X;15מ`hr&h[Bdo{v,!d<Q:nj9KKE$P'SQt0̝Fmt}UON5%U}'Kʥ@{.PdMz]RR3rʸ\0)=l%%LIc.Z1¦5n CL2퓟Ɯ
Y e*4b]^
R]Ja<nyZq)0F04asX̙bYe71!(&V7q#PӅKvEH/L_)>ȖC:PqR*]5d\z=?; 
e G&U?I=ivAM	sGtƮdIԂy`ȇ?5Q  ;l̒pŘUR%m@uF6_)2F/1k)#X"eLe͓5i]ѧU,vuݓNN[ڰɻK[Ԋe5VN. *Eg-]c±>Pb$)rY0	ZKtm|tӢ䇁L6Z
b"WpӔ{VP7LibZUlf'Sk424u}+pwը;F(XsK'_%g6Ei$N>Zb3dE<zQk7lv	>)f6Dty`g߾*IltEV$nڅv ]="kRV)_UO7IVUAvVB\Xc
A+*C~ ^5Anx/vy U'Nc1:S87 4C@:ѯzp"<r)`GM/mTy+b[
^F}*L
+>&DxH
=(oZs4Bt!nl\IGoGw,x'w
L>Ư[tSS-T%7!w[>&l:<yxvNk)$2Vד$uƕe
c碱=bJU]MD#~$L9XVˢXeEVv՚s9f+風cظ!XMGS1̆a>QPaK6P
vt7lʚEֲ`#lzs<tVd\VU>aJ۵G	t*BNn]Kl`Uqؾr'VQ\#&1WWfs fx
4U{fT^'*Oď;Wc%@GB7fvԌ%5C)y~n<Kt _ ZB;U0J9Dޞ޶zF?	G=wwr0,-0ǿj%RZV&#KTaj{=9Mw:0z,Rz}JĚHYHxfk&"];i`f1+9Pu?z>;?^j^Gל~W  `']
Ep07nWׯ_RLW4Mbc1bܗFw@{5
ϨݐۮG)j<9z0?#ݝ#x .x`n0N<sk"/OIVq@ᱛ!0w<;wUV:.^=10;mz\j\uDC;Icف]QǁNJz
ŨtRVvY+xz8g8~rdŇzGXtJ~s*㹘*nf F͏9?ԋCIy+\j1Cߩ*՘r:;f9lR*6E,M(8Uu|1Ȝ]i9_{)w >CF)O1#["g?þ{^؉^
[m4U q3c</Њ1z2z͓N5
ݡ<U}}
F?)E]ug͖,)2=مhGmn	}:~pT)5	(UC	ҭ*!TJq^$M#_rn=np1	v3ʯv]|Vg{NuLPkgZ6v=kj.=uNVS&q^pNBQi̩:rC+lT?ݺyF3͛6;:e[#h7vU6jЮomݸ
Ot?eЇ\TUjYGuQ<Lie=_~l#2CxD7}mJͫJ{	}IvAHTvݘzau?I91Q~46a+_ꭍةjKL]Ӿ"7w:"HbETtg'y3G3hQ^ jfhftxJATU2J72WUg)Kt-qRrCϗvFJb C9uVF5C@*w_|NO=!\9k)`62~Eg=U/P7H.Oh̬ZiXVYT"!xAxgY\7VtU]\P p4ř,$|)37qiզb(li*=ktB$J@@'n?`,IgTG7V"v7>a{C[^}wJngTIqFE^ۂ^Y0"~_	BLdNƔ"sXu|2%ʝܣmރmu`}[УB,D|FJgx^l,u&%Ya=v}ҕ~3P:|2y-|0BHd"WJVVmIЭk+ґ cW6mf*$Ķ8q$ڻ/VZ'z&pK&&hzp0W19;E{g4r^߽};En	|Fgavur[r%>xZ{PTE^BE1(!jr,{eͽwy$@6D4ͻdGѤZg:ig:yL;ӦTL3眻%`Ѕs<{.ELm	B忪1(iƼ+!Ȏy.0R$c$8F9oݒptd̕R>̫(,&8h- w-lͩ$P19dfs*oKec#Q-pWiQs<9q GLegʄx2e%b׋&iuU`w xN%*؎FnQmyl3:chSF1qdTQi#tF*ŭ:1R%$ya'Q:EAwMc)۩tAD*2XmRlv@XVWD,!.&V%|Rx΅7q95D| ̰w$Scd̈};8n[`ʔ6aNyMTAD/6WƪWQ Id01rKESRMwKUdc)N]>-<d)X
YP65}m[DQRQ?r{NL_N!$k<O|gajgN/cV,~984,c$ECEv]iт]xaY38]%,x̲{fL6)Cd7np߁LȭL}*pV?+Ӿn6``eK(h#S/8mlɾ,l`V{y	7.*淲|'K*=慕/iId1ГE-TS{>˒gÏjzKvp4eS6#?yCh-/̓O۬]
9*D!@YjMPbˊ e(Ag]y*RoC)PkZJSa,'򚋂T:/ FP]_`MCQk-ȗgVM><_'}XDXϜoĐ0UTqC~p(f//$y#7fMiM[@bj߂37%ѽH1'FP>-VV.5
In!Kn8*5j&5<FNRݨ:7l\*#G.3n͂bJyT7r"jv2U+0ɂ/:bvv].\N YM׮a#x{T#òEhhD>H^J7)IߠCUtnʄTuwmZ"$"J@hr@};\%[[ԍW\U;r(h8Ivs*"`Ίl8Yw)m#zu_bVBL ?+wqp쨉
Rdfn5։[ .\o	l^dB@[iK~UM)sí4BUNfY(7Kdy3fWAm%iYFSj撢=هXۓ<gGp&_P֋vs9Jz-7aH>MLC>+5'w%0r
QOfƴ	G<e،x~vN4kMAܑn
hS.8B.A"6Gx(4s )A+0 gU>$H% epi@ԍ)^މD-YYe|&t F!ظ|G, {Oesx;~G3!V,Ktf;̰|O6qlz.|M8W#47f0C%ܗֲLhήޭdCPGUlVHq'$-.?wF977 u]Fdrg?rzt-8 _ŀi;EZ@s&fsZ$+)N.ug>UgD:6>;0O|&R'Z-a3])/%m_֐bAAgjZ̀)j?uK|TGnz4hRd}zdDk2cɠtϟt 5Tyf5`?:lm1?YkAZC/$=q.2-`QHpa;`odfP$le
	5V¶?jeulAnWh7I~]4-5eFWeUdO)_W3䅎`N! Vy^(
Vm²۽¡z/[)CM-7oL2	.(\!9`ǠeN{~[u(D	G
kt]DrV6]_R9(=zjlI$8nhsyL|bJ_eXNA
qg
9^=ۮYDu!)I_Q@tsCV7	+HS;ev"2?.]Bph)\)Cih}P^B<y Skg$N\2*CWz9PM8ߌ>*ro`7CeRk2kf4{hu4G2GQ;ToZI]g>.]Uր.%YO-!G(hzTi+p-TK`Tn<lX\?6"|̣isPM=vy䩄dUf<zϢsiW̾x:gyŗZ_}sMZd'_T/^:ӋʡWoq@|;tlI\.;w8wJ_{{¥A@:)fHfϖ&w{-%nvx9Y;7 >	zxZlTWvc'l673w</̼I&.m6fRMf:FQXVVZ[Qڪ?RMϹ6l[${w~9iٛOGʲpgYΩ8g15YG-f㓁ШbԤ2#ӣ6o2ŲT/]r3b\(J(62K5VqPdu)u19.ԪE[	,׌"6d#v"t F5J4b)-bfd#J"q6y+b9jcbTZL p[Y(|	,ʡ?e>	"tJ/K.ֲʫash]!']*VnP@LmEPpZȅ>_)1x|S8PJӸ\uR)GW1hTn895@~ά܌ߵu7+hGe_QKi=[1G[7sN<,q`I4LTd\VՅ:U}3
Q\kG|	3>FOMºg#*2JP1aOb
PL%m@D\- :*Z2'IT
pʆRX8)emTbPg'Pj,MN>Xw*Txұ0vR>K*=K4TҘB9
&wuvO@SK/֯95jYn\$B@d*/>YZK<2
eT]F;<fDȓ_2aD*6oN*E(<x::<">!A*fخDoKOrvhlD򡜯@T7L~Nsw8]L&#"%b4	26Ov)bQ}NȤBnSщkEގ,&6b` Vȟºd~#]DQʜ a43[Ef9 ϸP)9)&QYB(lPWtSTق$i2ؒF)EY#`,tKK8^#x:	g L=tBC"MXpX)*
czpyl*rd)ɬœ_0̥QMNLN(mǕ_ -YW/~+/Kܬʅjtj᧹sA%Cz*QcUrk:	FY}5ݠ+Hۋ&}v2ɢ!/3MS+LnLn?Pp< m/wW}8dgմ\Hǒ}m]Ӛ֔А'Z2V#Q<A]qoHPȡ	-*M}Rݷ습m\#:̅XP-`E,iO=5;rӭ('niŲD	BrQF?Cȉʂl&O(j1aQrn8nOUO_pkq-M\WDnRlQppSq:XBM(G
7=2{N0%LI(BB9I]=GY}S
v7ZKٕ$	k m pT-cA;
؞K1\ZZ5t%0v_^rN26DzՙSEF||Vb3W3WBTyk$uʦΩJ$EEw	\d4LukЕ(EV\cK8_|X W`_/[NdܒIw(sRD;X&ҫ?CyŎ;6pI7m6{XGQ ۊ-2/hI;ŚԴZW_@tOT6)s1S?	wOW vDEJZh^j*.,:S^Do:6r'䕡lhhr,nQ+6iV,"-묬iH	%[_?Y:"LmLfm<y'V-f7{`SO{v,Nૂ7aJta|VOݧ/_K]͢)Qbj:꧜1PZ4IU[ŦBDTtECpz3ma[,:Z6gޣ! :RK$y6έ}N?|mxvH!=F%Dz$9cJD߇QvIݳn'Kݾ]X'f2YQ5,[#*^t.N}eVߔ'jwi"
K'\Zxg_\z$VϦ}N-ĜOb+2%rЄ,Lli,pC·R& JݐQ@wNÎ=V0tv۲<G,l~6w&ztVtzo4hpڥ ]\_'eѶ.2ee
<GgY"9C (	z&+E0MTrg4N?朢bg+H9 ^eȴؗTv~݅|ߪ\/9* sÿ˖>4fl.#G<;ww5Vh&xoO9~qνYacTz7B@`.Z?Lb I{jc!H^ 3$dN椼
Ma
LYQ?L1ڳ_dǚ}t(<7_⺌ܤ1il
˓=7"I=Wsi$6G`nT);bl$FbJXMv(t6m=PwOl?v?{?o܉&勑yOFѳL]EbEE\uJg3q:!ŅTlϩQwrRm4$;uFCCF(:fLY4a"ZtmѵE&;IR0'Y9=Sܣ6-{fjAL"Ȏ)/y>Ը^3Y"R'mޔ.ldPAZ\,wA%~R	z0<6Xlϖ*M[AfӍLV˙^BFlP]3T?.M諃+UCLpz~8={zﷸ/ kfIeו_~WuΕvEށ.[3rܛk&6jrY.Yh62:9HsJ"ŝ';llgiyޒqn~sbL&Uj); <QeʙM^ݗF<!Ps:!_9 2E^u+=tOniᘪse-)'GMOL~/x['Mxw_RBߏεm+_h嫰l
d-)J\(4= ݧΞdxdG	>
\c1Rma?+GSPŏgAga_^ᑳ3jA*-T5Zl1p͢rlcFb:߲p^[჏kʫ'/Lؽx{7ަ<G뮍,7Yp֕ c-sݦ_Lwgە<h!3E^"boȺ!ݷ;3(=l?XP`eƝ(!ӒŴ脳mSQ"oTΦw
X}\j@ .<>ZR=-APvqc+Nv@2,_
|1mӸ&'C;%`!?|IbΥ_|k-U}ߖ,]d-Y[ZJkڿVk~կJxnDvǿ%zd_|	K[V'~7KW,U+74]N~p[
/s9^];vW?3m(xk46%v  -QQAxSKLQ*	D(EAL^+(qaXxFM$hԄȖ1ojia}{w[x!MUɏytiw<SWh嘑mCMN6{ݭ.WۍJ#ҳ9	a4Q-ć%%Je-TOϫ2qK$Hn*lG[L-QuɄm0ykW1HP'͇W6#sUi.HH78JȵEY"%b;r`D1u\{W&q1f(̔ę[8H)aٙ9 e;ɰҊmi}|?Wֹ+گ'=f8{t8ǎ"^G.*Puyp?L:r[v|'r3Z$jhc>F@/RdԶڽXuCMέ=DRh\h!XkK؎H)-%x)A\v˶CB|;H}6'#03xR-`?y"챤k7Y
Az	?`wp0&,iDā2]l۶¼,Gx$y1zDLz=	@uez(CT#KRe%N!>R9>fm΢=c@ϭ`'GGA]x.
t5)gbD_
wjNy-imxㆅy  3	n5xTQL[eNPZ(PڎB@:
q!)+JF0m뽷ݜ^t3dF%hɢ/OƘ苉ėҲ
q|sytG'Nv|-M	lEE:ss2\ZJS7V8XF8JȦU<I*w)F
yu <3(Fj>U)ykVZU%ȕ&[&㭧"^E eRx豑S};b.${màMz,Vaȥ}Oo%UPh=Uᐌ%<䡧Yp2)vt$wthѪ22~ 7ǚ#:V:wpo<p-la}Ϯ=FvAɤCGV _l\x]/42]2*`O-"DL}#Z#|jnߊ6ؠiAYpV|+;+m)&'a89kj0*Op
!keiMsfͤ]$K/Wk&Ge>.tLHl$[+a	s(9WX 0YzP=!b|l앙ȩKA&3 Vc|~z/2UXl1y6]0óRՀ,uUcZJfC418M3)2tҋ$xlC<ޭ0'۹{sХSN)FJKcH3WU2YVP^KGxx2zj򼐤ɠ :~5G%1_D[C^\M;:GK&DIJ91B;cDVb3HAn	^4سLIjEJʌPXp-Sr}3uϋ2,/7x( <7:?G	nTl$7xJ@EJ@zPPDAE?f3ۮ$ٲA% 'MRiD<eg}kcxx@1!(J!$@2c+Ddr\[g]¢/	"V8U$Ƅ'3$"ǶR#ΐfdDK@-j&EHRa2c8}uVgGEO#1%G*Bc.BiqVawi>{N[fx`ҎPnR5?EC<}fo.ΓyZy|/o-x{{lBM~/̵S2cF K(x;rfSu6|;Г c4	MnGx;rnz 78xv ҳtimag2|"++S
	resPixMap1>/5J4=f.number of frames obtain(JQ?
=O
-gx}TnGUD4Ū	M]`ZZ-ݝ̘ĭ"7P4C_[o}	{Ǆ,s=ץ[C]ZD6@(z||ݕ?L(0Q\@.(PhAӰF& YP?(}
r(K>)"cs5
sRX}z5[z{5z|൵ioBRͅΠףx&	/}" ~ |6Z5#W	Tj>R?{W!??./fECx"CH QT߷>,ZghXfP%4`=6B.d|@q$zdIM;Q4Pr)k؛:{>K#>'!Q=."$怪4DJiZU^4UYH`a)VPBcɺf;,ʬTOhb
GK+9%f!0]y$ְ~2I4oљ*qYsDm{#;v֧g[;pVNfL,^./Z	t" $@(c]+'AU{\j*r$\($\}xg}{^61rB"M}܅=<~]+DzQˢp1Y1eq8m"1:Gw<ϋ["`̕Tiu\ZJ29bFloFSrq+r$זv/kz}qj/ovW:}E?8wg㓕1
|}]迲wc|.G'[x5qTں9hlUI+JMu/+Q('	|@8h Sex5qT&ggl- 9[ͷ9[w	&|KN |)	(愺Gp<2"+,5 2Z$9x;2yf9O0Mv5؜aT 
 TaxSAn@U
êJ	TH Q+JTV(+**HΌ5(PE \W`fr"3{oWVaCL"䂇 a=FcA :,CuNa2D
L!Ɯp=rxwq.Z6\0"	i*	Z7kml0EHECR8˚Y8ۗu^wn}w=^^29-{	U%/ckkI:(`k;46sxs65ɶxwɷ"̗i5w^!ƈ:2,h#F@Jrf ^mʗvx}+̌йpcN5E`MXF☏Sj0΍6ab˳4l·t^u24ҁ^/bsշ-kvǹUՔ_<e>,IyvA(~%}ӏx7RjbUMVw۶Jʋl?5=Ӳx5\4̂bܼCkr%d63͎<r 8]5x;WyrC3OvfgnbzwfD\K K	Yx;WٔmɢB0o6]*0ـk%>) %x{|yßO2n\8ٵIwrBS obJ9E4[3*Lfl/>yNݷ*'_k\j4ٰev0cv\κ5'/52AQhS J3-x{<ӆUDsOo/<Y@]tڏ7M>Ш9Fd\κ5'/52AQhS M)[x;|y:7o	 d	uxi'5'\[cm~Qgb }*xiGeՓfLg=}2	dԹ'(5AjseM9#"ɻuV  _x]s6|I5һ:a$Ԗ4\>ih
E] $A|,Krq,]3"]UDt#o/B>ڤG:mr-:x5|tAbwA(1|ӂ_6D\ryKW	xb6E$)adi;o#b־c.LG"".7Z3KU<?l6s__=,nu$ { Yļ(|yH&#۽o[F38kWƔc:qσ|6&c8d4!Ѱ7FC/&o~ 6JrM)͑8IO-{i[{{_iGħQ!a{mGf>* ߛE^ᾯ[߅6]q}4$x2)%32<\ftaBQ^HπvقZ(0ޞ
u@VwNocG\!LL;۱MD.lît=<%`IYritt>4fO`ؽ?I?5ktہ'^*~aAW7:kO% H|nNg[#gg
3-OE!pPǌD~r"#>:ҟ3{SE	[+"k JCAAlVڎt 䦗BzQz9ن(NZ9/z-"c@~I(n3F?-rXB9m{p=0&_R:2ϯwmuI+p^<8C]u8l:pҿuob
C^~bMǻD`yntˉquĀ-8uaK>Z[-MXL7$9e?m/L6q󌍡G{bɸGQWX.^HG>3\{:x߀ya1.Ya͌;G~:d 8)waśo#T&?#grJ"3aFKXe+]L=/FLe$0|B2l7B7{PЊK~HoԊA e  bb|L)q(E/zZМKMQỂ4
)cr,J~^qK>Xo'WE|~Ncb/I[(2}"Ism?5<+4naV0NႮ6ݿ_&7LCV#&pnh£\OXWOq'ԡf(X?O!
Y%B aS*DQ+R6Y8 #q\'L"c׌Z$XMJߕ4Ǚgol$i5v̢47FEjR89e:/.#z#4AES˼}~v2 rVQ v8GY7<B|:ZYMh#&£/[Ac&ގľxq6H G̐?qi]?Y}:PU-w~j\+rOd!'ZYĦΓwث:Jދ1UN6T]q'G@~{Cat. rFyÓm\[9HژJh ]c[42Y3|b
M2_dX%_5)L03f#%i]V7*dj S"!2]NE?t|VGBneR Fg,/v#+Usϱ	S?Ý#` *Άi;>k>';nn]$
K1HyDZjd CDg(f̈Ԣ0RY ͋<hl7Cxqa ֳB[{õ8
?B`LT,f3+ܽ''ɐnԍcUӃѭj>5ܐ 49O<}T4)cl)BBWZMYٰ_ZFpVxcʀs4Vc/X~iaTKg\{̸*{
DAx'sl?va/3rJ2W!cuA_Q`Ii睉3ieYrb3{ԦK¬i)=lyDTSd8-Ə蘣ߣ;&B3g4Y*}\_X]aQezz4屇[x'@d<I&؎-nq!ͿOa~l]H.YKEu)d~%pȗ7"m፨/vm逜L<縫±>&Չ<4n+},4Y-12l:&#gY"Īըuad#V{\҅mL
>4nc_9e6lƨKA!׋E@Jl]..<Wȡb=0BHFVB`uj~#\~I,wMt
KYi+Dˆs=Q
W^,	ue#ڕL$Axn5ۓA[<|K3=7*>X8Fhx=Rؐ'1Y"0;\Kz76Bk4c pK#'uף\{x_HYujkL=\~>`+ՉtlQ%"XmB.;RVYZ#Q0\ij+>//hiވC.8wy"-#-;[xLaI[<Z_υ}3PwNYy䮳GĘ?l󵲾O]<odWLSN Y-Cv5ucDH9˛+'B㔍G͒%ILm5h֎^hI-1AWE"-"'IеzgQ)4bOf$=$bE!Nɽ [%o&;fο~x;/a 3:T~!s;,?*Ft6C66;9^&ƣcS=#<:3G.]Şv٣Egvd0K~,M>ECԁAU%)pgl&|F*８W)4]EϘ&Qx(ߋ%YcC`r<o;:Ev%KyƔcϞyhAڣI7`"<1#J{͎Wx`0aY_Y>d%ZJ64zQ<n|Ս0GB|k=S	5]\q#1*lyǭ9K3H.[84
QWSͼ\꬈`CI+eyWNhJo_;YFXqW3B+(|au"mDS]Y6JA	+gBUGcʞ2d]#jg9 K菳2OZrU<%gӪEx'YGD|Eك^qV+ypƓ `@gn{z-hz5tz׫Zuxι}Y2&ٽjBlT=z{j<i0OzJf]5'^ia<w=Ewvq5 kp?o4@̧ZQ/Q͊qۤb}Icd=`YObIj}±7~y75I1CtUՉ*9\S+}/?r 1U&E7ݸtQXUmRų#j)Mԯ=69::H ٖpTeTURifJb*95ݗExQtP]S>2DFޢ(}p^Rڜwك,}KEe'Ɉu0S"*a23.4y
XԾwtt)uZW^Q9$b}5酅TR4uɃTPz ߣVɯ<	VWk3.\wuig5ړS8m<'txD*i+cwb_UYcina,W@@LZmVuu
. Yh&@FhV50gc3IS:Nw8X@=&<"N	YtbL6tXKjgS" ){=MrApLsgjO8!8#1Gz !!>-եMm2^ON[%i~JJ_*ZLv/z+E1;,KK_pKߔ۽*uGU/R0(j94ޚfS"M6CM-7_ؗe8[f+ S?(LQ@:ZFő6l|ȍ,:MK980+ɴuSiXY(zf<ӄr48213b,!5=]3O|{/pM;"x49%fsw?{5qD|0d_ff	߽E)xНNɗg퇈x{4i/k'OP޼JfA?Y6&?p?Mi2iJKm\x{4g*'W 5_5fuxKLAS!MPZ@*RF Z^Lw8pgVOb<&>61x6z6Fb#xv-˦}~k>/S0RË*S%mnp!#}M0Gٖǫ:^'KyN 6U,_
*`cjrZ;>mo=Հ:1b0Q*ܶ2SD1HZ|EH'!xB;(IDE(ΐ@<62ö9	?;`1RQ,eL[C3R}YDuM$yn5.IMlay(	[KF
4s&%7J8Vqrg#1	½V\(Q)P	TǢFl`i[W_kgLbBp(k^hZ岅A\+G5a'eJ9b)K{fbE" /#IRpK̗"1sn	K %	Fxm_X(-"*-?D5ɢ͐Z^h]0GCr-(0Wǐa
DR6*nnF=W"l]xe5i[mi躱^/i#D5t.b#{L˹@]nr[ah@w|gzCmq>tνzW|d<\hqY~P<X|Ot#McKBVX?vQyjѰgaVXI9ZoMUBx{4i/k'OP޼g2gnbzBZi^rIf~^BQjqiNBr~JL̱c3L#d6y&l#n>B\ZDLw!K9d4<_Ril Bc67ʰ2e_rdZ9I<ݛnϩNЈT'Hl8Y+YjA䘪7~s
.!2<'|K^vx09*">yo $\#E`3S<0͜|18ssHYd,l}")0Oh}M'f*ٺmӓdg'L><Uh򴄃1}A#4N4MHkdm'˹O<-<2,~dwٺE6Y{]fÂ$2p7v(Lޜ]"Dߕߓ2'?+@! _Dx'ߵYJ2R&NbؿfE=NfqLnjIbJbIbHeAjBbQQbz'KO>b"09Z96Xe)άJݜ8W  b'*rx'&+ȱlf _A;x{3ܓsLvvҬs )@Br`|mg&/0elv	Yp X`sv#:PfA9|UM19-N22LWBhrVp(~ Gc͟E\ğ "DCx# ,'1,+ ^[/:V8$9	QxqSŵ68fY(O%2 Rn `RBxSM(Nެ~q-u'	L²YOd6}&,%&@|)S(nʓkL6|)A F'%xq=/k'iJoS.1`U^.-̼T#5,7+%1Nޣ8y<XY?Zғ*QIzs'ձ+-C-:!vycl|Mb'ϵ|Ο9$#u|qb=tmf2f,');yd!IsUf6Zh0nYJMn|J(7YJxrɒS4nkM&oLԘw+k'_EX<Y1aS 	{inx;qSst&7+l> Y6x;q#/k'iJoê0Y]aYo ) 9(xd=<br>!-.K=<br>!-=<br>!-$+=<br>!-.5=<br>!-=<br>!-=<br>!-6<br>!n=&+|=<br>!-6<br>!=<br>!-=<br>!-`#~R!=<br>!-`#=<br>!-<(<br>!<#(4=(Q=2&=<br>!-<(<br>!<#(*=<br>!--&#*+=<br>!-d=<br>!-<3 *08<br>37<br>0=<br>!-<3h<br>37<br>0iL40=<br>!-<3 GE=0l6;=<br>!-,8=<br>!-L:=<br>!-<3 <(<br>!<=<br>!-<3 <(<br>!<(=c,)8`9"})$`9#return><br>!--=*U0B=<br>!-CN=<br>!-CEc=<br>!-CE!-OG=<br>!-CE@KJI=<br>!-CE@K=<br>!-CM=<br>!-COf=<br>!-CEQQ=<br>!-CJS=<br>!-CJU
B-IRxW[lUPJSݖ.rh&mmKI/*Ξ-3 FS|ߘ(!
&(4ʃ1O4D3/g?k̝ETƍF5"Ҕ,ŢHpSpf^jj|u"XQdBM2=8$ EcQ܄b
$PTDˈDU
,N`=}I)!,pF,<?cY@%$w] l[ibSj@le\'PbX;ǺU4J@N6^cZlt2cR$*)x(
BVxY(d.I4qZ UBJBfYA,0_);"Q ʉ<br1|0/U9N
0
`eN-
Z(A&¢)rTt`K
֊>
c&4<v1lwWa2&.mBfX?K-HW=A|0^
snoxB,ب	e>ݰa1'Lh_$B0-9&ZzҚFh6[MvWh=-Dg_ c% W4))3EF.ιf剠l[C/uy&'6K΢lfjN{9U	k35`sf߀.7x,V-Sm P56O^[?xg5詪pK%Q[hS8#zcY|9;ND..ȩ9^KB?KmV3ծG
':MiЉ>{=!(IX(yɉU|7?w+|>Q7v-MlEB!,dDbqLևdosExIz[6uw棌uBԄq]I;#M5"'NTcӎv4T(6{wxqf $KC5LDORpGTU&R5DwEuv8.	¥md\wQR~VN)EQ%1=I3	:d~/=ǄԱ%fE\Wj#TH.Fw'綤F<]\pص@zPsn+>oL^KJٍcWU9Ton\+1Я<I%U2,ߡPO8tʬd)UJ}1t2HO	9|>י{WO-ߩEy'{Sfo\$[R
O#;8`;pa|_Yx;f7L/0vo0OekǳyP2f%r6WJ{ 7 ;xxqy&NI7 <
]xxq3dN擌F/3;2q)hsM*>8s,n@Il ym-?==`1u0/#h.x6>ܬ*pUg( SZ,l"iaM1l/8d)_Pmֲ7(o,ݼA,Z'H܃74#sj/G;Eo2p.ֲܓjcdT{Mf4p<l!#\VbsNdHȲ6eB/_18Bֳڹ O9/xxqCLo03: Nix\ms6_I?\Q:zM	#˱&8DB.Ŷ] |	,x&% <i<!vː<kO^%rAVB{0D|.1<j/$p!/Z?gjzk$v#k!4x@fݛ	w<Sp)(*BEÝSy#!tC瓓\qbˮIǝ t,~
քz Ig M.
};&	yxG}d,>EfyF)yg&N.WrmFF`DڃYw917C$>Q#LZp؆sWxsnj"F-Јx_ 4_BF'O4oew#$?og>gs2[nn =hHQVLhLBjgu!_1VٷڮۀW	,0e妸g̴(r!1|4vHhO57W4}!}A,sO:sO?t'iߘt?v~wu/ӻ4qw0;l Y0ͧ0W`LC=~"؈rөQ<m?%<9֊!dp%0"3$ڃ5)%*x.w*,NvhEEdp1 ]nL̉PT'fʜhPvpwB~y"~%1zc:vWu!?4EElK:9͓l*V-G˫ޤ;u;g@E3P+#[m/``<=.I܄鏯~#w# ӟgPvȻ툤ߐjTN$cD@yVP`7o9/N놋>oO/B7l%K&	s
Ofa5HJa|
;&y-&,5jcJid:ab7NדxLq=\IUW"e{u|h辿PPM:@a:`sPوXHE~~Ge3BXScfxU	lW52^w$4 ,`<1Ό\u.5LIf"vBM7gkj)MRE󿇄{ǰ!/l]0Gj\kMD1E-<+6Wbg(7"=ENGk-ab죵N\)..Ά=Ȥ!A8lY9by}f
~znoq=tmZ͜}(9Bqf2<`#zMlP{6]'΂O|:nnwA :ϧߑM%'vD+zߋۋܩM
؊rľ<i	KjU>	i?>>]1C2+LU3g٬\t^!ͅMu#aH5TOih]T>5H=Lr~A@A٨>ICO ֚4Qm UIT?Caf.0;h옦>p/i[G$[2(=XyIQ3Y8qعMZݐ&didɨJ7MjRJvg%=qu`U"E_H+aY*9@qَ삮VoG*1;L]vdSkMdVܼ6йiC-YXLV~{rZF.łI9*osCw TPdSrZ[p̗_5<s)g/m5䣤>P(jDȇE-K;GE3#j6]wIj[?b9(6n!djQ\̹B,|į̴v-]GV_S޳z39k

$"-* rlULRB"oX?ѭLFVM\[
o.Bxr'B|}2g4;7C΃C_τ|]Z} 3cSyr|F(u6wәH٣O)f|.H6Wvg<&	R>)"qnߊ;l:4F村$JDޅ:3FAq HbؽGRgih?'g}
Qh;@t9m.3׍uN˚8(6"@ʠ1I|#fOoW8@߂V_9KnmW t'kQ.޾{oSEb$g3цK{>b-ωvs^񇪝WAȻ	J'Yu<pOrIB=+ǮjLUIA$*&*菃fYRg-nZ	x>>120U YX!<|qQaz+Kke%{|KXn>u;B99J9DE)7UM,9me>;YOPG*FK3^.p!g_WFu7/*,0t_fad+qgfgE	9Z=yLscXguc"+"`88dMAtI)n2xe0OnkKNr꒍@cf4OMhĚku`fBHGFwn\i`o5]g23,o%uJ&vR'JdT$񎽤'K:rImJr!LMcJ,lU~]{잙Qj\~c6%~N\yZڔD$O5hW_w+Br["xƣu\M.prY]羻x`Ƶ'(zQ+N]d?C訋< '^ FHUG(}E-<
:wB^ u@\fT+gx dNc2a}OhRUbj4@%!j[4RW!wRGGOJ]7tFe3`;na]Ϛ׈Np$2d_prb5*oۇp0tΦagd;DMEva:	5Yڎ^6qǖ__E7I0fLpr	gǜP'g,-+W?O5q+
AQc|52ȲĕrOby=	eրiR[L^ xQX}@?	!ĕ&"q%Fȏmzm|9e,_9doyq2{SA`-G=P"^^fM/gBp;.`3F;\"KlMhޠ==7Ι$gw'/X8~Tʙ^̨'5L4Nʒ:9<5?Uܭ{1_(Q)gPKzeVo򃏷&Pncs->\"&C3Z腭\B"R66pZbԶ׸4I\mnd[.\ӫs/,MOc"nTc᭶xИ*{zuaj@ů,jb!&?>qk 4FRކ[#(,~Xz*<Y~Lx|T0q|; V:ېAA$-%{&C|yv&5Jh"Ynͩ^;!GwZ8P<";5`),MBjȔ=%VPvqj+u6ay__|
]xfɢ|q['K\ i
)'xx8ɛ9@p#Vc<o``hå Z`JK!9(> |/Rl8	)6ڜ9erdC.t'{IC|if:|<%
%)%<tJ'_Ԕ0NT,HUOqPXPS&L>(3_}_J^y)k,u\|C]#<Ct2B@ݹE
)
y%
%t"=}\] ʡJ*3s&Oz怿rxXL^()3OMKͅ'?c>"a xŸ8f<&ӝ'3ONKAX5|'[	(䦖$$$q)h)L-2!T$EM	JʂT4TE
e9
a`I2:7&7Pnrd%e&Iii<\x9^;#a(& 6yJxՖ[OAS.^r1HDĈK[((c0bif6So>o` ꋟ/78^KB	Mٝ3:q tb96)X6I9ŞNoclY#6	jt-ԥ#Fb@Nf#$ ?[K2)e#xvC)H^Ӭ^2M7OQSb*;/2rξ#]7s2`"(2K}>)(q++Ա1d3
?GDF lI9ly%{yL(>#PD6.L/ÉTG)\U3]ЪI%<zG\qʬT%[B4u)J4W4TA+Mv{2@ӤQ_Xq<zǐ_/X$j{M1d$1`YaT~ksj3)qISm	V 'h	{pgi19էj0aAR0A2#HծG˺:1ѳÊTt'ug%ȗ!W<2ƮtO|}"kKNCvL <fAɣ9Q<%*h.Ѭkn9-/k'_]!GxxqC,X&m;@!aK.Wj3Mh<9]EFH7"nfwܛ7, $zxmNAAMh4FAr	tBCĀJg.L%j2Ϡl쌉a8(+Vs[*$۵¡=1;3Fp:IoYA<L/QrC@7Q!ߕP;T_iuk=6;3<6wme% `qd\7hWKKdG	d"#pL)ޘP=oRlM
IT۶"*ke\V/4rFVBvZ<zBl"uD{beD3SRVSKx;t9y%e
IiiE
%:
ũ)
iE
E%Eey

(*'+.)*M.Q9AdEd0Lz9vrrIF*
iE
 ̊ĂÁBIBzjv-z\
Z
EPY!ʁ@:ymv P
U
 {s ŤbҜS'%ڹ:9xŻ9z(*d)5-I,)^zJIa%(,'d
ZZ [5~xŐJ@
qHQjEbbH.r.^Y]GwZL[A[|y{ݼ삺/,r6bnBנ:Јs1ᣦɳ{؇HؕpG}`^j\T5oQs1JDtSL141/x&H FEi1βG3W@(r({x+<J	읦qڦi9*[$ܟbzŔR$2a}DtsutVlbi~%~[fX.ąll=qdjXƂv:ۣP+\xuJ@Ɖ"v8g\isǙ rWhdrYFP_AZG8m|+!}|x[wwC3C&pP/{&1B*(W(AD TLp0%
!C]z)AFkc4j*Q0灢b'
AhC/lt0=s\un9P~KBUc(Db!
drmw4>۟)QS8f,OS!~zqr+)az>j1` V+094x[uq='ǩs&(U*%N6LrO1B2R
3JR
%%
y)
%
I
ũ%z\
Z
E
řU`Lu,ۃd&PLS+KLQ 
T91/b@bQ*PQr~QQj2RvVutw
quuwuU iZ~Q.9
yť,E%5'Wdj%N^./Xr)%
Zœ<E'I  xUOx[wq|E&%Nor>c&l^oň<7I px[wQq٩
y)
e9,u\|C]#<Ct2B
E
)
y%
%"=}\] ʡJ*3s&7$n^.mnHc 4!LDx \@^u7\v_irxw|+x'rIMǧ;ٓOgȗeK6k  zjx{qQ<U]57a?y w]x[U{C13Ovfgnbzwf<f3! y
%x۪BFxX8K2sSKs&M*[PrW371=U!4/$3?X(4D!9?%UKAKr2<}]C]k'/QCU1rBfȮ̼ĢԒ"bPYbNf>SS&Ke敘ė(h]y KL
?xϸa㆕e'v9kո&N6q, ;TBnbeRB~AIf~^BfBQjNjbqjΓ;	OdmeA7X1*Ô%*dV& keS D[MHxkA	TږڈGbQzhDrHMz1L6/:v3)RrOs? ?x^;ۘ@Rvɼ>>c7sm2Z84Ɉ]l9`I%VgҽMvT=_WTN'.wWL萃&w$@}.ߝQU8h/<sE!@hͭ*]&N:|'Nt{%֢|PVKMgdNDWPhAZEǷ İM·*mbYR@h{
G$l_p#
MƦlJBjC@{hyRWMDۍjv'[.;h;}̳mG
]u;Rҝչ#&~xnFjp%`oFImdbFM4>ĎilqN# O'?{c5a+5O[)0}/\2v.VLka{%nߩxxqC/L1,>] L˩L^79I&w2dY͗), {@ >)Nxk#7	ll=lYEŸf-tb{7ac'ݘ#{di${@]='{f}ޛ{Oz?mfӈD* 
EDa+,
1B|8$eޒ0{}5d~tPL0|6H	`iSIS'72{^y^D6ғzBaEG	Zk2r.z^酪tP!fGj%z"i~)M6`^x'ݎw9l~@gǃL/:)%=luPP2F84梠Ԯ.#*F=뺕r{nhs 	{!$hNёwv}'$Jw;1q`:iӃgcwjJj$7" ΫOFPL챀xȅܷB&*v`!Q dYl4ia!|*έ+J7=s `U.oMᯘSеɗM ͞?l)_!w-
PiljXFIi[w5ψ3EZV3Y=5䚄+X_܁	v/A,{TjĖcWrb}ڌ)wL!T%A9@j1$utR7Lho{g:nDHYr2TFD,^&fNERmN(BBX\"0Wx1u>64L9̜Q#lQ: yOCgfLӨ/$-Je&1}ŎXUCCcxy'ί32_`_p
l<N$s+fQԼ)E2A";zʪ_uc)+c;Qa}Xryz̞3e;"aNp1UKb7qv5DBH03'H3g2jaAK

{ߴ˥+XnM3|Bj-_)|ё:թo␺ʻ$1 U0cBL'f}$sɀdN(jxJ1)AjmDCz"֢E,=ךݝjdmַr1
}Z^B&?|<_
qqk ۜJrX=s7Y<XoeP~]QtXA@,
:6k>@@
huRۜ"o>#",֢1il
1jTi OrGd6jx@eZX=;]NfvtYYi9ȹ^q	q3/e A(|{DI}/b/bRT>!NzxX ZైVK][dhx1q\R7lad+/-JNg$ i|x;3,n,%e=Yd P [x;xjC&Yy7Hoֱ |	Bx;ϸqD&b,*U0]R:wIqmݬ x]x\jC/3OvfgnbzwfL2Y 2RLxMkQ)jBUJڤi=݈|T]Ԣ4m68Hp3stfnsAAp-.n]s[+w~$tS<Ň,#dq	P\:
ᕆ
%R)k:u.wd6`N9fQ'dbTJ&>c/2v?S7HUwX#-86[_o\J.̺d?r3їXꝟQJY7#nHlã?n;x0rn%T<ҤPo7Ta4md5@bJs5o.~ѴGO+V,UF4eʧw}BpUVh4?ԥ$l'@_gBs>׻ͩKՕwm\TVf-<OǎV2O
cY"s
|uw
6گGAc4ڌ6+*
ژgwĆb۰jMձŅTLo0TNr.MuX2WetY&3/iBZlᢝeKlTB@u.$`l".Ra?&|bܼ`>~Ŝ)lx\5lNS| )x^6!eC9lroU}$8yU f.&xEJ1Wnt'ѫ`EĕAv&͐&wl0M$SyAK_7p/9ok>mur~&	՘!r8ϴ`Vxl,9X&@-p0DЕR1:ȓ!!mC6Wq,>z{k~"40eWۡ99TU3KBYdFq1IQh24֣X齿|6\RjaF1mݮ z!KxmJA`?Jb5Ƹah@B*w'ّݝefOoGTLc>oF@ÙscpOBpp@j+q2rW+URi+ø}Ǥ0q-	|)Mhྜ-㝌Rk#-R8Ƿ	4pJ@P=>ą`gqUmaR4\֒aQŸg˲nہMM0L/B*;Z(Ѧabfb@8z[].gNX!Nđ;=*#><ܓ
9w]9t5m u}u0!lLB7.<fn}WdPxEJ@O^szЌG	ѓkBaIZ<f]Hvn"x>+ee7oOp:{-dTy(ݐa6d&pAzn+j,	$:@i /<.<^4NSaafCet\+9WCxlY2N:[F8@`_ɪB!@UQyvz~qr4,^=?dwޕg!gqx.q,b\ʙy9)
6%)I9zv\cY~E  6xq97sdGNE w'xHV@KBsP| H^vCq\1?Rl9m0 &!cxZ[sF~<l2"xg5!X${
AK"p9
M3S$}|$j'|՟H}IswMңGd)>=_$}lA|iGA9PO{N(#yJFYy4H/Z~dSPal<4i.÷Q|-,z>uçQ2?[GӳjL/M%MS? č)ϝKwM߲^'AIYvd ͒`g:۰? ZsCAn -$ɘ<)c]i4zX7'Lt"48-NP`3@mRnAfg)D;d$HLUUS`G2`dn~*Ʌ@g''g&E$c2B_I@gdDOS1zEZh2s=NSύfti2O2VSyF _ }y9!!_pU.Qo	vNB|ŴD}x	2 c?,i&)"_N:M?3X΃>C돚`҃ϡr99s !׀eS4A0e'~ @C? MK'NMgkBn#A7+,2gK$Szh/{)2V1gOTЍM~!-1cdaҜBsF5?PBF!$vwEA2ݲr)+uDw̅d5rZETd#4I
6}Ä_u{, nm]E\r=e8ʭaZCe }:뻙Ki%+wYTBBu9|E8ƛp{}lMJ3. $*#ߩfd\O{2ȀVxP~<$92?TIYL794bUI)fQ5<2["݃~EK1t)啈mxԄFhWZыP(*Ըj#ʴ$EmsbU g8ģVܣuE@ԡ`+i" u{{Mַ1 ]t>Z+씏O|2$Uជ/aLnnhZ@?,oJyi,rw_BGn^dmeN7/͒9uC4zҪ)c<4YP	kF-\V;ktnWm f$!:C7j?m'+7!P}6-:Ƚ@;bSv/h}xf;	*r-dgy[-B8'N*2ӕfuڱ	A8zY5oqdUQ^KH[G*:HQͱ4}C`je(n`e	tqPATOb86,3T-vCnEWR"Nsi> EKգ1-urm"h>rͅ>GxbKM%@J37RuumFvlY1V
ɨb6J@0*KDMuq<~]
R &G)#"vH<5xA#rl&wH4f;Ki"_ABI)P]J3,ح)Ѕ80jcuPxEGOL"߇5!}KQGA6s*^.'B|8*l8SFؙY]Tp]G+bwclZOח'K<Zf1Ec_5<ރ^MqQ
	z@#
#.J3.GPfy]CA"LAխkc;Qo.[sZPኩ^ek1w6wdXKnQ]/uض2w[iʠAoX
"LoehOXDM9XP@HH'd
G'P~MQB&]e=^Tֹ,9iORRC҄(b׷=CBklogT
Wƍ3T	٢VW͞S7V9;jb0pK@'}=5+R6t0G{Uߜ"yB6ţXagzWfQT&GlW nΣ9ECB89_e̤ -Y$;G8 p!̖Ѻ&umFm$r.uKJuS߂dӽ>e_}fs
l\00n_׋{۩u{6a.U4` ňd>9CP" q)&f6w2IJ7ڣpEф_3e˝kN,u8kDኆU2EؖI$ڭ7ud%f-Yhq7J7"TA2]L5TW7x1ǀl$%MS&:f&ٚLؽ6r[o6q3Mw2ß9M3kpVؙj{0ďoLqV _곜*>%VvM$ v#!#sjgNV9ԭ~OBz9>)X=(?XřI=F)4!FC=F^֚_(7H|$0
 {Az[/uΏ%*
igX4~I{ٍ1FJUqC7zWvѭZs)&Y[*sU-ђD>]%E4Q~(e7smx*
 /Y~h]rք&>eZP_ɷϕlv-_	fu=h;xp&aC	cRɟ>fno [
%x;p-a[&V=ɎJ#xX|t fKx;И(c^;&nb %xkL!3Y!(HoslYY̜|D PYX7dE+9̒T,6wTr #c|xkLyo=[}t C'xMo@1&=f0~l<4ٰc;	eڦ&I]ݑ ;|뫺{B%
$/bw`)Ϧe L04J/L_}rC
7Jv^B,0c](xdP^?sml0')ܫMO,P>0\3+6 S[]'L@34s=v
I5mF摑h]Ts"+*J*7+Rܬ<OӉ#
9	&:N(օ۽owڝ>o9IRiݹѐW#]:2u-?uPsi9UnUjFCPEB*pc	,R@frkHݸЭ5xQDLKU{pYlHx;:_n4?B, ,_x;G~D7gG1 >Qx[[s8~ϯФ/m'Ie8Sb\؂h
6kvG	`L|ة=AoQӛ|2yu^XKLP?ÂRVw`-\>`-EwwsQr^ѭ7@3k\EA	ИL1O6SD\d{X._DR8oD-Xn8Yju\V,4\Tw :Н @>kA|0xB@N%|dM|@/}B;9C7KLCт&|,}韢1!AнCMCouCn@_:zaOsY 0	&#8a셐9ɘ`;YX&#]ͱ?#j  &fJfZ_UONo'?[C-L[>'x#qpԯcb++EaP%q#6C<~\OͩYF+I%@?`{
	8µC;|<h#O0,|cxȲ I(R7=PP~iJF寐ۚ*xքd)bJ;Ī_| n1f[ukv(f,!.ޱ
t`1`w)0M{>]	~y9y]7q[y@P`Jo}ej*-:(3FdMjBBVzn}ϥhtZ){my3n]#:lZ^QG;	r* ֋tu1AګRʺ=(Ծ5#Mha/%FjqȍShΡbfm6hRPR<;77QfM~ZdJ2,"7?[kY5g0E<!yT&dÚ8bPRLi2tf"("<K*QWM)10TlzƌKEW~Qvg]T㑪A+m"*{hr[u/-ET\MyE{fJ𡹇n1[fӚbQ=LڌBvBp-ʼb//D[Rqo<JÍ1wy""n	iX&R{ΔЛvu|xKp >	<(/-Naw#2OB1nx7kȎNSԻZmzZ+B(M5sXDCLfҲXN- /bBϬ)OugQ,Sd?)lEQT}L̃=2&hibj)~bJ=BE+F|Ơ1^_9Z|&MAH4
3)ώ
N+3>?]o&h4Կ:/x^P	oy*U#wnF#Ɍ S+!l(.,8Xs3t,fss45?,zOZ,gaťTR8b*A`U"u#:Pb1lU*kE؈EQ(d[ma#lt߆jw[ꓗr=
ݵDR3ds}+y){9-.nuB[;םqw7JW3>mڙXhپ&S%iotz5l7D}!DȢ<}ii.
LȐr+Ë/JuY^L2-1`*s{sKO5TKfltLlQZRPnmɔDHɺM	^iأHX~'oT3NYcɚx5oL[Sn$ޚ+1j` *f6[y\bT%Ua*_e@6\O3U~kD*sæ)hj7YqYpe^dN{;ti	Yo)vNtZnk\K?0׷55v$k˨FUăc?؈#l0kli@CU_	=Lbt.W|~%!*7Bk)<?|o;%ύfs͵-YzRi]Y9#uewIv`S۩[l4Қ{ӋwGHDɟ~VPKC\{N߳~A)umuG3*˷J%nbR~_7G뱽.n=IVP)ww.#ڀwrolͼZbyikR5gC_. _/R~G?\d}/ xV]L[e(rNWZsZKv02
!9zz¦&DU,3abI^[b΋]q&
jsڲ@2vw}5pLOlR_P*
2<B!|]PX-_L,W גQ0 J9Q4+|YmEMs(#v
MirwG3g;kUzm6k-f*BNbu2*UhHXEފ͌ՇĮWUV!u	*3̩LruS/t29ݮ:?W>?2j>l0{`Bmu瀀h&EbuYY=FI]fcQU&TkB9rl!XcٽOt3J#dl߳ri	)`|y|Ҍf#ZŃ<'܅Br7fU~mJW$ә`P<u?CiXaf%jhlZxLNX!DKB'gD'¢;⊋Izc3wSL+!Z*}P㥡aTߵx*8KDK2b9BzDgׂꗆdr{RRzˉ5}LTb:/%!ۧtҋOY"N5J[RZq|DWyH)((unHAFaĲ%Uu!"GDm#Fl3imm3JA_-#aŋ' CXL`܂omaC4wY>arnV$!̼DC?JD؀V	N%rm4$۱mn(!sr逶=_νmA7"9\C&?ގSnG)k9n$UV {0ۂ3W<X=D'/V5jQX̐7{9HsTQP>Ê[Vʼ3WA\}	5/͠Y`,+A첐

ެW&J`G)d3#a,r3dWzhk~2"SId
BFQ)8׍]^kN{ݨ
b5N盽yt@&bC"$)@:y\?Bѷrxoupclȶvu8nm2փ~aɸ[7`	A4&ĄH$D0Ƙo&~>nO><O=^zd4+VՊd(o6;ЕCm(&1U^TU^FҚj E(eɐX"KɿjizE֑vJ*UU?t.+!W%A%3jr$fLbhh7/4OG&aȋ$XB*dj)KW'}Q4Jl;JЊVU.|zq)7s.v3gXNTn,K\b1~nVKv*1=[ڝ-a{U%Hw;[w> }
B%wv-Suc?lu$Sl
3,evÂxoZ;|h XSQޓ:bIZBn{nN\34"%g>y3%ZyC_8?]/E2z;\|ˉlɥbnz.oxOj5i[v>Y/}V3n|!،_5L{xɣguxv߰m8;1lloɃ}y\;dt.BтT"Hֻ-}=P8@EP-lW h,wNS ⷎI!-]0Y	"l!:s{vpI5&]B|E`σpP4!3\uzAjk;vI#`D7M~ TJE=6ñPu9w>`dύQ+;P1Lx.1$J+z@9kJUS`ZLKc=\Mb7J^s.%;1z1 71*7<}tg@yl ~/АBF,{tSvA~QFLу/z'Y!㴟 ~(
:<p	|}$5`Gc2hS`CשIFV0zr CqF덄_n1n G,[]*8vN<Oyx\7j67nFY\"ֲrs玃:޹B}f躄ٻVܵX:$P@ftSFy/37b¿
	E/cbBg".!WḊC*@kYw{9b^|,}z'3ԇa`"_G% _0kb\Ux;<cC	s~Qf&5CKAk>Ͳٙ%
a)ޙ%@Q̤ĢJ?mgy7Ebs> 
[]x; hhkit AVCodecKit
 * @library NA -'x;q c^0ngy7Ebs> fNx;(}C&L'v|yaY6	17P  odx;:cC3~ 5x[;cC3wvfcs~Jjl z>	Syx[>-}kroƼ }3
x[mo8_AT;uhbqn0hyۑw~3CJlq] c3R{쀵txbvtx}LHv,S4p)\XB13r>܊Ǯ2Q=nik$1O292-l$Cč/Rd$JCc8~&̈́qTώF24s!oFl31&}lf'7CU7O;n)0nC5S?T px
L||X	X3	2=Sx1̌+dTt7x[}ﳷ~!OKuq^vNwڽq·w>v18Gܤ
% 6%jSX0J,K:ID6NB KFj`0@2.Ʌ57<L2VIZfKRZNe$@˩Jl@f9ncSOnx#'%y,Y S1 јT99~,M.2q	V"ڝfuiX뺝(]
Pq5$N,sڈ(Py,3](q]Grns}2h]wzuxaX/­fk);1ٯ[J%J"~fa}#r4S)ؗ (1=,]-}v6T h(0XOY;!FrHp(/?q3OxG舸R\988	agY[4sW$MDKww[w%;Rb]g]/JN{D˓oɒM#ΥX
4M<^>[xv}u^zƋxQ9QQƃS	!<H2J(fަ@򳷷^Fi]ĀmDKLIX~P
E-Q1v/0#~ecq\ 9y3Ri (B d(o2@HX0q(t(~-n7B12M[D[ĳiʱy	_O5=~ģ0yE[D)p_~QDQj"ֹ֠_	ԃN?|R_iշWefi)SaO͊m'O#v6{Y1(8yt'έq)]ՙMB[!?~Urt_=4JVh3k0KR}L%bJҒJd,x!6.Pl+3!2}z6xgwYt^]69w62vYCwV^5@B]%=oOQmTXpxE
nk^xK+$&IAΙ*&UΩZeR%[ҩS[U%&܁j TVAgPθAX=C;*5JΎeR"*FN̤EmtrzZ0pT M ]\M퍍)*D/@Rn`Qr--A%S1 ?4k]N..LF3heMtVn+_hð`ydYrmqut[pGu׭Shr7NU),SCe<й{@ϔh3ceՒ}"rehY%4jn  6N<LڪT?,81HA1f<QL
,ʴ8a8ǉn$KX$*:!*)U LQI
Eo,&̀u	T}`dmҠ(ɶnIm"ZB#^g˱+*i堤2JBlȴbMb>s 
j7@7'!}``9±>ĖMa9|j`F68iHX̖f:Q6vyEQamɵmԧ,̻Źrߢh`ʌyIvAh1 WcD/RxMslj.IxHRCk10B4Q`={Kt.~[{ZPc,yxDwSS7@N`w{鶂'zCo1J{ J9qs-Hl4\Pb.	 z*e;
m\5vo:
&H⬎Cm.Be!Z
X>|X -^Zl&{[NrPP+49C^niNguc&&"J|euo#X0wj_\D7XkFFˌnÑQhommAnǫmhEI GsNAg<+Ms탡=X5lNܥ7Ū_yy%H6}<6c1Om҅D$@+3J-YK-*ҥ~pM+ɶVC+F$*X(ٚDCIjtڢձ
(`DwiPWkJsQ[ MS!Hڬl7{XJQi	wTjA$rN>EK^He<D+ᖬk9G7VnT|Y2U}w.
ܨ`|`^OߖX6cN6+@DhZN^">޼ul8}]-HE 'k67Of<ػCpk%x[yg7 u;xVoGVHJ@qp	(,Ƅ@hŘ RpU5C3ffUHT#Uzj"ܿs8sfv׬SNC7ޛ>GUOG\"2O*ʙDya׵U"^1kF3E0{D 캤$ar
D	*f+<PHqO*^*|pž_nCҕ|].\oNz1)sHBs󓳓ф@qh'z(>_lqyzÅ)NMϴY􍌵u'Iا>Ro2vI+=}K+eA=G2C!FeY1C|*ya¾h7C;xTNjUv7:DܰZ8A)6qr-盧2hJ*&e)Jy<(Øs۾y8N͇20srE.jX9
P>:w49;[*^^=mD`3!08ٲ8=saCcC.JC0b7>Zqύ\Xbq
ģʐ[%͞F1Lv[HWhfCtC-1Û|K6#r@|Q{V?Fѡk'c;.W夻BpJݻ}XE]Y=пB`Hj)C>:LpJzh&%Ay
P|p8d0-MGMH"m945_8ٺ9N:<r۱% ;?m	h3(ԁ2p`d^C 8m '(	ыVabvaBRnTT<d~4P8?9jbMMeE.h1t6oZM'+LJ4M75U׏RӒ"2ۄ *m:&c~o)N`ȯL6܄v,`ԁ=# A _~fFas%Q)\ g};oTt4;A߀+Ѕg<o\3gt9SѶ"fZڼn<, SL?ξfWkdCN֏N#T<nQU#)s꜂ZfG FqH<vjrYL_z+,|BL$n+IOzo<L˚7uC@Rƕ
ɴa/mP	C>vi'Khi| X|*Q8TP
Y߾~kG6FvP;߈8xg>]K=bԴɎʓmė  :adXxRx́|D6) nxWSI~S,/$w<))r,(1$J鯿itdV|67p9S8l	ҁ&KZS"Ef.XBNQi.Dpʭ{wZZX5ij;x`aH9~)o0n;dlgdPзz{͍)5*bp$լq]}9j
\QXAԜ@*`3gRp1Y1kxlgy ck=>G`a8pO};.n#?xW(M
 d2@&<	&ffrJPDPZpT0u|3~E\Qcoql45r-(-V8f0߃L-[()j&L1Knc)/9M{S Sl+n狋$CY&s`R%<*oJa@X/kMautesýit#ܥT<lDm.̥c4ŌBp#=kn\pr+$[\zWMBi3BAݛpt3=A2R!|І3ϧ#Q^,kލ2&En;C
NQ<{b<pz&UdJt:nن93OJW2@v8ȮBfrՂm\KN½ r7WԞLVh)0TPHbU$_JT!	5:iڝi7x+i&]Yq$t(lFE𷤞ex25a;hF!qD
HaUhΦlYQ 	\USV0Bzͦ_'o.Bdih4Syծ?ӓ_ma\rNBOs:txJK^w#5](py%HbZ"6v9"]7~n$@yVZI3
2[-ɸ%qi|ҏ7WWׅ}5u&Wuݔ3Y÷ɑYƳ+HBU7f	+a	~\;f v{-
h4^<l0ޔs!+uߝһeW_&N_|$ߕ5v=^˓>1PA?u?p_xAkAǉm֓
σIUUіX{8;ęٔ(e/~|oO=y
^yMcRz(ݝo}Z*[,9DDV3QM!aBL#N`
1F05r3L
צ1#J#cN|'kTG1KAid *Mc&,R	CUB"j/L5JھU!!AE(14.$Q5!4c5WsjCB
sa١m8!yx^!ť.	wNJNFwa"9-x;(ۃm*DHR2t蛔:Rkb"jčH(}
qF]<(SSzAp
`,/7rX=;"Y"x^Akʋ2emHcNaM]ˎk1R&7!#JYI^r1jT[9]OKޥ%,=\́ϡC4qφs鏕>YMpw r'f?}vFǡ_;-쇲nsŐ׎0/Vsh?[#0syf3t!H#SKsB8V%cf.^ YO4x$uDbC&f̔bҔ|ļ?_!wi湜 dhmx.{Mv#5> ~Hx-1j@DnA"L-DTr/ci!tSE6iarőO1>ԸBվt&s<0&/QW:Gu2Hj7[mTA['ۂbij?ج?S"d٥ln}x_OgZ>Vm]nPKx;"UlC"dm]9 7Ccx%uSjV	̿87	8x*G|C"SCZfNB^bIfYj|bYnjn~Q^P
,TP_ZX +@Tgg(89秤&9IEE
@jCnjJfb|r~K^qdvs̼TL8 73Ex*''Z'2nee<`s!-5aAAޓpOc7IT(.HMLLVH-*/RHOIQ(JMK-R(WvVws-*rN0 &x#_|&f̒l8?x#edvY@Em&s"4Y  xQSH)ZsaEh(	D0$S~0܃zG=81K8?;&5YS6}b)E <OJI3ˌ
PK
VER
x	38UvV+%ELB

9VBWUHkFb0:<Q	!zTi4ZCb`\,FEk&G;vRL`IB$Y5pd!(S\S\@\MƤ,՛|aԯ0c
pܻd6
ˏ\'Y o;+q}{ ::d:79odESC+5YPX'*J**VLi7[1EyF&$_^W@VTGHKD0c嬤xf9|1L7MѼ2^vIqO,}F0)a<(X"h0D8!-R#SRAHEWc,L5i](ḟprxD嘻s/rZg=8A|XS~ľwNlMȺqx;L\?|Nj8NG^3};e&m#AG,>!y"EeTY>[ORK"Na6b䊣X_w+k	GΖt%Mw1-E:{t@Vd=`V,\R=aK-K
Ġ"ajtK#Ý\5p\֫^y*xΠK.8g*5 %zdOD'{=TMiG˒g/6e%_5:U1g$HhMo=76d:۹Q۵,zn]oGN׋Ǟے>z(nJRtáz}׮oy{;ucpaC@М
q5r %Kf-͆ٹ(.ދ8W/[Bv[_7KVq0\|H7B6,xkAi~6?D&4yjBV%'kQPJ>y̄RDċE
ÿ@wč(ކ~{::ҫڃAC(U"H%(wO/9[YF0$`P,tAaVVT:_lLSo`J2b۶>-46JC4uԾaCUJ-ۈG$q˄;!Wq{iһYe/Ujf#x\O-ƪ5	)xsӦF/d:͠O*VcA?T	wCsϷ~|<cژ_ƣr~ږQd._yY^yuk? (g1Wc?y)#0)*B"	L#o<Z׼_Ln [xPĕXZZY d
x[mo_A8(N'ˍ[$FPKIw-ɵ,!oʶH@hg!u8 ґZҐkrzrW.+&0aG_YHR2E̒vB45SKAN['WAkɜG%pA'دYZ>ョ!gp
4/$P4&xZ%8rE폻o@`?JDLkR@ٚ
ČHEB1xg$
Rph-fEC2!FYj*bTƇ7n"jBnڣQ?ud0"A7霴^IXD &GK21c҉9@5H邑cJF$a*=AD<hK/dt|pܰ%ӄG,
7)d&aO'Lf<fmhzaaq'ܺL#crں7kz"#SeU	(k,څANުЂqf
iq􉕑P#b~ύ}jrSッW|>˫I{kO|ԾFwݝ`tI\CDi?cKW6!|&+3
Z^
R@J׾\q17 [; bj9j:( C!p (Fp({m0cT v<5 "X܄QTh0ȷdE #
(fRy(H#wH`	wRB|m	!L"ʊ[`VШ|:#IB߰]V;ZC.=9\@"jAܕfPk(I!Ⱦu6uQIR eBL4J4
hffFY2R!CR&:JYVeb93E*Ń7:{}=FO?\vjuJݾMᷟEBYhd5,r5!1SvtpSF`d,h8mGV7[ˋ:1H \#?[n1̆C؀7ZnDa<|Z[ ;ݲ@l
(4@
a1,)f	EÊ
>?FA53a% [[ل2rle?ala\rnfL/["gnI2Wt"	ɿ)>9;0Fd:Usk.>?^:,g+VObl28%`P~㢥Bv+ɿ,/AP$`h"p^TK/
WQm۪ƽ}a70{Hw(+J76pJBR'JxpLX>Zr=wdLe-,=`XFs$o_?V_x.@#ա%R|dY5ȳJSF稨GYKr==GJ9D[bb&۠˴g '!a=I_ $d0qugdퟰid1v-جS"1(e`'=7W8vyt	}U`7IE~`rx:F&K`8`O2#vJ)6]vݛH}[n'_98<0vF=oK$FCr dWfnۃAu&eb¥͍rԽ趟%we3H QWG=w`*SJ~],oMy~+ sM:-1}F1܀X7\W4񿶵kAeUG)$MIwVO&Hs!I$ (x^P# Y[ka;(.H;m/D0 m:Yc8w:f(RPΔ=XG!bbJli<ÖC//("7S"ʾq@npG1hpK4LZι|cpҶFɂ	tTfa7Fw8WXT31˃aΨe6썻ݩ  h,ȁps62i62#£ rހtDCdBح#1X5SGFse6F(qW@/VKfob>^dj=T*Mp@C ҿY2Xth24y]X)m۫(!3q6YpZtFvXW{eN./V p/q^O{<iOzyS$g}3?N#Ҏއvb3):>?=Sأt7p60HuZ;hE|{?<(㳼"kW$,nXCR@[N\y`|{ySM7h;2L{[9IbrEIpPëUo^H^ o40]ݦ2H3`i^aq[I9ϳq$	d4gA##OfrB|0,/9HlTyfWLv\Ͼn07B׋oYch]5zvIۙY(LXZ*bCnIBү󯳔c5v2VŦ8'_vodW\ kelGA͘]Wvk}4,(o=K73in#f(+x~<|L]tq=@-XŒXuYG. vRbŇ 6֋uxoPg a\z<PGeM+0|GS Xg%xUO\Etka)Svl-Q*}e';s33@1>/}kG|o}11M_4Foƙ{e׮&sfwf~3_o1 b-/O<K]Ʃ]@6$u,P	TT9shA(Rl-D˿k}x/~_n|McG[n	|Tb(񏋃gT8T|-àKH^'udJ($)QMb{	\]fM3(/'{)w80nk>w
Mt33h'zTHIG LM~q8BN³_r'Q9n[mQġaC< ՛r(G|. PH]tv؄i0a~6rdۂR؞=5]uLǦ0ձr.U !9]"mVa=K(6oNd`l&/Mܮw݁_ ڠr}g^|[ܫKSӱKFG@U7HZèD)];Xovha¯:ޗ;Pk9<JTMy
abdͣ@#|wgD_tn>2Mp3|̢EOVV۹*g<IG^#p:U¤-HK͆~><rlT@jLv0;=WBp4jHNJɆhdO2Huf~?H3c'i*`p4AҚsCKsJ%fs5dH؍'}$cZ_-[
a J
VaS2M8/)g3e@wʅ<D8,?_w3]gNg"{n,?'W /f] xTOA$
"D}TCa-+@BB$࡙ζvg6!p쁋g<.[i1:}{WhL:]r{aS(sX6 "-}Z8fS2~SPm
(DqȔR))W@R	HRIk`^C+@$+CP9;BHZ@O&bR/R
%h@ZjJjIjX[ Iq>"|!TM<j-1#=#g&2PaHqXҘH8۲Zkn0^ (FJRϣI!2duRX<B@oSWVǉ|+vfaû\ܺ>-^Ts5}Xּ>W_J3_֟_O \El&Q
w]էnbtr}6{9a<}z{QE|,J&8&L&ˀ!߯'xNMPy$Y`pX=s,]XJ(b'6[rƶ?Y6̪eNHD?^*)0:U6?0.[{@|߼셎h~9KSEHe="YH[^e+(oan,T$2ө6T[߀fWT6"Vr/0%z0"gwxN^V-ܙܱg+o~5%uxS@peqrbBqeqIj.YR[S!ˊRRR3SԢ<C=<7'O`3d
FALaE66욓p]S\
9`Kt\fLXMPO%_TP%6]KGh6ʛ+K)M+T%4)'U! ?3$H$_!1Oc^InB%Z\ Ql'wLMs(dM2a 6bx?aC"Zy%U
pl2x3aC"Vem &Txkeřyɩ
eolvah9qz846S@D?te['E*%f椦(+&'+Uq)h)8-OP|KeZO1	CUDD`p<j(sɏ7{Hq3NV&u/pl r`k3C2'/^:F. is<xkeuXx'+2_7f8y=mJ@}r)&pON|K	fXO0	Tr@DD P<z0cɏ7{Hq3N#Ųy+Ag22eN߼Xbu jMY	kxk~Ay"fwߌؘ6p3MN|K
fXO0	Tr@DD P<z0cR._A>.¸x̘|Ee  3	cxkAy"fwߌؘ6p3MN|K
fXO0	Tr@DD P<zKl\,7Hz\qM"D: 1xycC4irLRl, si?xqcC
# ,$x{qc:|eJ@}s$0e]'?`_wrɝ<OH- hExqcmeX'3_7˰8+  	縒/x]ms8|Q9eokYu%$'U(HIn WQ=WĖFwA _^X-6wHOo~u\:uｙ:9.\Ouuฑ,\gͱɍb/'#x?pm-]DË绖mY\dT07F8Ml_sANУ4,d_^=<<ؘ0{GWN?DLFׁƱ	<X
15U~Ȳ"}C%^pwl<y#8^Dt(:c,"=zqo|D>&=^wlFVg?Mz>jo"~o$@lzMu!a)^3o͐hھsލ$rèƈAK:zūo$]WHMu?os0
=Ǎ1z.q)>Z{'D,'\?adb5UMnvN}4gˎ- pg .(nnX=Gd71"i7q.;
O;!o7ht<847G[^x=jŋ^B͂v\q E,&}Җ͋o=Y~NU6N6>nog+/oֿ^7=KӡpuHG~k긿%*,^nzF6L{_#  Mp`cQzw	ۏfp	v׹P ࣏ݛYrb1p&!bƌHMx=EM^#wm4MFnpF9r12?A5zkllXf3݋GBK:UTޅf)w`=}lrʬ;`Uo;~{65}UZ]~r2Ri8Wq7OIWȜaˍyLj*	Dh^B7OR̠6D	;A{AXJoC\,];VbE+ReB>_t w%hW&!߆XULC[,
}V9VǝSw4u.g$e\F'.dF1U}}%ԃP$A1~d|.gmz)\NO/Y;$F:]yNygOjϾ'Hgz*)$@S_!]ȇg"Lhyͱ¤!d5K/TyM~7jlc^4DMλ' 7$e2DD>Ͱ˦cscڔMRY(.]rxENUw灙o};&M1l'7cu}0qѮ:HI5u-څNa%+ңAy3SYѠ kN<4F12c/~0C'x)н6}Vg0{?WP9<[c*,-Zo턪6Ӵ;7@`"d8X'ejmIqye3R	mK.ǃQK"B#.\7fWg
9VtY4װ}*otlxd0ZixCxj=,<b]^\{x[7{Ѱ8N:AlTl/ +(C.^Ojě2DlSCbÚ4v'{;HcRS@>ȳ\bQ`ݖgBR({h*yU)GnCmSQP[ȍ!$Vz6#l 8&SBN;K"%3Q`ލ VL&3쎮z1v2Y_IGYtTh{u/JLmI;n"-\02;FXHS*iS%]KaZ/U&\ ){\gx'|;;'>:#U#
g#i-c/I?+Ku\ n?Q佦Ŵ^CHlTt0
Iec퐡G+UM/.s,75+|N+wS]ӥ3%%$DN @Zo4ܻ=u~~J"ד)K<*J)z&sj<0 y8[CPkd0Z$f$BtaC,Z7 ߛYԃ8CTQڗϽs_QYRˠs +Y`B{p4ϨB`pI|34v42C7(GcإA h=ctṁh/Q0_@Z痖ӻ$Lۋiy~ڽc-閣ö.4.}aS1(ڱ}
F<>VR2#&%NC4ZCt$S2g7[\bIF~Mq_$8jAw8	96|ÓQGܻ[G\nm(s`Cӝmf>t{xbHz9ȻCfus>ِןDᆖl.W؊'?l8IAA۱
|!m~;J#P%ߡ-,\zJXW^l[R5tpQdg'>U3@|ߒ:mT,րx-r,[xE*ex ˶@9l;=ɶ
Aq\GwooN:V!p_Y1/(B4H"ddIo'5XO1}K#UΓᜊ˄q)0+6G#j6ğ=vߤ2'Jyj	Sj`U%y_aRJ&e<=fZ8<5 	Zuhe=KF].)[C)Aԁf5hCSjUL3c"MԘ*2_犔%s׎d2>XTr݄'=뀘ƈ~qi&b?jpѺsIh0#ځ(떼*W&)WawphKGHh"=mjy5P|Q@hYQ+J Fcy*coMӚ/6(ig"zRzݪAŢ\+^c7t'J-4(*ۘq'(0T4?-R	LMI*NCiDxXdRa\>,\碰IXM;	GZ/;tR	eÊŧ\	&6yeJ\
rޠ\uLX띁T	äIݓz%D@Sq\&=k4&	frIY;C@ZE+9#
pl`ψ>`/ia>Ɇdb2 D:Pg>0%=;-טm،OI"W/DD<u4)QZi%ǡ8]*N:R~oKQUp޾ud5wpIM^XPSwG"8@J|oSQUOd,Q==J#*yTmmQU;ͲaGq8j4SvH*2dqu6zXeUԴ#}=l	mԁ"#k	ʑPҬ6.Č@3(Io:&@uIPߋ96JןI6iNoڂ߭+o[;	iM
o_v]"1fqEj"1Zͩ#"qlǋWi/ؤs.n>fTjVjE=G
tt25KN7_8u=rD%<ZiL*Z@n1Yvٮ-+WAcI+'u .8EM ##~'LxKBP89&=-*ɆYS+B=h|`-댜UM;NZqW>
+=Zǜ
"?0Ry ]IӇSɱHm3V'=#Nd^o*N]ئɾ~lB	DZ4E2$m*5CeN)ۣ."~w~V1qX,0ĜⲤYO~_<T9Ó  lQH`c
ANs%#GZ7kdrBЃg'H7$1`6sfT4@J8MG^iyYܶ\ǀ@uA~gB&&GoξC#\'"o]7gr(fS\zm+&o/%صoe{zsQ_8HM0`r{{}$dԻPp2x4 	hLss@ꇃ~,AZ=NتB`1DW$F)jLMK0/4_@}A);	H Z*R
nD7|EiOVnH근i5/ܽtc4y.z)]YX5.݋]
]I2хĹP)Px[z:irSdg!rBiz0'8B)7	\әG+D9LjQ45%.FVV#ژ=?Ӽ
I,LںWMXj^7G;JrgjCZ甶RQ)>4nb۽fT?JlMj/WZ%nTM-f' ۋJnw%`H"Wa/EfW&_ CBfmF~!}no(W=(ڪ*lT\w{~Ô\cl}tۼcIKFCo&<&6xyR^N!c46T9C;(M1p7"T66~ \ԫlMehs{/ˢs,^&XX K=JlZ=s+n^MPdhS6݄%OA;M IsnnQHo,eSLV,nN{*6ih;@aьo]hyIlrA!P1E{O/_~+Pt<Tito7[wxp7 u$/3[Ņh\}g1-.KJzK/.-,'B*{pz}/8>fv'r6ZRDW6Z$MA	D/8ժHF6$G/U$Dx2h^W5aNfjC~Vꡓs71)la~8\u?V_ fР1{M+4%*\3MP Zxu!2[ؘ`S	FE+?!CQs1E;Z\ovR2*CHN)N)W1$P]I'PsU;ZEf7Duz4%PlZ@Iz	%EN	clЎO+HOo6fOiűb	45?-,na2}*ۦO GiZ۔=llkOu+ۦOӴ7~{1$r)֌)gM^CC@kFnҀ9#L/חD(z/ 
в,m^`D9;댗eOM3xrfF7x?nW ts\q[])@$/6xQvvx7l3Mx᮸xK/$ M9eī)m_-z-ؚ65ɑ2?m` 0IhZFsxmXbs䩘kMN8ͺ"l3͸+*hc35Om6lԿ/^޾M@|~ucR|+ƳEbVaD
4@|U.I\g!Ί{I&]yVVp\g^dKt*u[.5f[635
盚:67fEQK.~d{#==Y`og߯#,#6)WiV@!Zj;$ E!T[Yj3@OȼUב\;*q3fIZ}Y.hs2|)45g]F=H4A3PR/X59dV2QEEϏEEy5)s}4[sIM(T/eGFݵ(9Փt;z[
	ŏa_?Jo@8EpNk(|;,Uɿ9!
2C_6#fi=(}e:Z.ӜR{BOVF-u	#}p[ߢ+`C(SV`0ԁSbS,h"umOV1m0H@{;G*SU7nKZ)ͪ.WycVsbIE74Ӯg,8e[H|*#6Q<W{GD.^YSlPs j4+0ĕpU"ª+sE@ߛXlmy覼)ZlPcPQ=ʦȀ+ӽuqB%^3o7n>E4u^񖐷jdWr⢺<*FÁ.U
5@7?0ϛwՋ6B`,!juWr{jW;s޴&鴓5QF;HhuF.+zcJyAm T^-
Mғ
J`2S]*mK7'U"#Hjp)UذP2u87=dbrMp|%ՁUW	jjcЁ%1'WI4	Ŕ5P*ň6ME獢X+ͻSb$U2Y]+idξjn3oMRZK
<-<М7?^j"O&͕Z92\WqtVy(?QZպ9Aǐn$R6)\%<
FɳGFBHUxK&'<5ӟ	S}RUę]}uu7S~UBI|S}׿	lXu:L6vZWwCMJ-fjM^\:Ln'}&wңn8Wa%H53WRZ7M	}gWЮ`,ʦ.?f
y-=t{>-qUAu1}ARE8ڿ%H(rXRɮhⰭ|xDȩ)"3}~ƒNy"}VΈ[qeG65=P1<Ɨ;[Rbݐ\>&K v<tM3E|_MU4}z~zGW֜"j61GE,yYxUZWʈZj~59\}ccG׎tY8ra?8[H'cL7Y{d}h\8{S&, ;< CqoJۼ} 9,(7͗;	Fb+  7_>$aJowr?s;Y쮷ώCΎ6ř$vZ
T̬k6R㓳)nilE3 oKi4-?Zs/'ҟWz薌ZS?2MZxP\	CZpiCU܆AgyOk˸ql#0ma:@CVRZVi/ho*<t7(ԄE 5E~r=?&c׮gwImFK+v]X͟VG||7C3dDQ>حHyl}S~.0YQ1~Z0ܹ\XVnfh|V	˂Vm6A	3*VwXc`Zz(Y87c҆@O c`uiGܧeyi=5Urȍ=&3\yo#vUKf,E"La~Iǈ:VCZa=Z+WroMx1t_сu
)ɘ!ZK4_~C2w6p"^A>.|GR[g@}e2
"d-dѻ̔1Fil]zqB9%{tz9es `3Mx#֎T1$rh#goZT\	m^`'\#0KYʞmۏ_dȚm0
Ĩn38eɮ
@>A^̶[ )ʄe-	Esߩ	ι>ĺ頹<~Q
&2cV;4JaE8B@{2R&ӟsq~K"{nx~/L%,D,Ba!Eb{Z6d(Ct_/g$rpou*-[H=^r'U׶Ҩ/W
xWN}P'Gm3IW^3'
ܙo{K*xP[r,9寤-
}D$9Iᰣ̘w7[=;sSjt֥u<c*݇H+{Kмv˛"3Ky'1B97豵	 Ț _J#]H0qed2WKٺɝ5;Nv^3`i.7Yu8ciJ,^oBiG2kx)\)ׅ8zcu$Z}52|v&Dn>XiaC/i0lʸ,6,Sx=Ӌ-Z{%k~2m	mD,Hj̕I;RZP,Ĺ6^C-BFGƌ9=xsyђ(Ҡӹnn7IJY
WaիKuC^	/*(k'ݽʛ981tv'9&Z:Ťzӎ$3o3Iə)\BNGb#?d/ CO6	ns*O𩖒7L),{;P=|UqeMnX
:"n}gpHI3-;i@e)J£(ў&4B` )CI[DS([SԣbE3dBb\F#Jgx/}cF`W{A0>N1
e%Ufc눆[7wv.iEUq?[*ہr7#J:oN|chQ"dKihGa-#hUթD!h>TC::E)k3$k`Z(3Z䫕FCzs#Ii G>w0,OJQb  AqS$}h4a%:P@3P-EoȜ1=z[19^|\PKY^αlf2im@Qב>M)+|,޻.KWpr+Ѡ_ERy2̺Qe8Y(t#1!+R*OY\ƃ!,(E6+pp&X&*,LiIx@sVtZlb,2 u[*sԦ-&\CO9k:5yWD+WiJ$1[3/铏Q)ER=!	w<f̙RA,Rƅc$Bgmg))YI{wms,!\ Ĳx8TA(߱ѿc,%JOO5i<NLOK|µ6um0r1Wb2m$-\w<ja^i:Cit7c ^y_8#5
n͇A{t*tƓGc<!Dg,7sZ]yJ.9X-orN]:&Ur^Oon|#r90> |ǅJ2a"A$mCi`ⷱ$#!<Ͳ]Z/r/UZ-o
Z /yI4ѥ&]9tP:G9W+vpٴ},z!YT[\OQ鑓J-'\Ù8ї'wdb)s}tެ[rJӗI08h\ݢSp.iّJrF4gujE7ӣ-$aC$e;N:4.QT@;m${'J&"'IJJ"$ZL4N6XrBڹc7}CA/Q~Qfr2uܠET]nhk78dGaٝ>''D  \a8ԋ޾zw6i"t0?nYsQ0oc(c_ҢA@|,zC50 8݈AyqQP\KI{%mZy\iT	ı4'zކ E'ecχ0C'q+@:['xӻ(shK 7^ѐCE60W8+РlȐa?σ!9M`ʈ1ߠnb>P1h`D	))E#᥶:aWY4lCϱ>_4 =<kp|X?OU(HܞNH:'aRdxbzJz.ǂ	>CEX*(GK
3Oz&l=n\va:NeGjër`
&mj|[3;-uF? APaxd]X(WeU{|&1s@厕EuӞ
1TH.2]{9J-?$#ȒZ
Ou2I5H:y~cr皤1vy`Y2ӈ+=8W&\{3w6Os_fjMCxJ7l;*/@slFT".NvvWEjQtkjC&99q*wI>faɚ*X>(^f*e='/(JiҺ0\/׋d-I85TX-yl٭t3o#S;F6nC:{{h`KV"Oj_Ծ~O{潫*u<|n^n*hhf:f6Z$f[t=ɀ["zҩ"S5~7>' ;	Y$@qU31,qߛ\,]ԑ.dfz$.k 4Q#*?zsvBb/_7[=Bqk9<'	9x[V7[1Nz<y}jk+lxd'7IN֍Sؼ,JqrD5N`rHdL"6/bܬ*7d&/PV`sH]#Hy*pl~Ty땓M%3}nc7 *? x1kF% @g_6xՒOAǳ`k&XxMh!"F" ZkLeN4 gĻ^-?D=xуpH ಙ}3OO.:Uz8a$B2 y$S01{@*HHp.R1s:;}ajK	@C)*<(8LМʸ~`Gkr*+]G=RC;^;\9LpM8j-j_JڷpT13k6O#l$Lw~.Uhu0Gw+21Z`o-	LшZ;8$j0	
h.wLq@z4NeK-ƏCT|<kq{|mB1|充ف}wr^%MPY~-ʿ-rxOtlHJp85@\ϊF37r3EeepJ{H1-`V|f
_x16{*lVY8q Cь/&;IoOeTg%Ϗgm$%1\r:g
1W)_`Z1COd|̮ ӽmg1Bb< ճ Qfݳ\dq6\0M.at ڻ;!Bx;<Vog^?`6R@Ӵ'|>k@+Fi7M(8d2>Mi=S<{"hLnhߥŸπ	q;JV,-,ldT+wl^
tLB22<r*K
JSKJ2ҧ)a0UOS(K/R%y
%
ɥEEy%
9ɉ%y
Eɩz\
Z/<Q	%Td:Zy2nYx7PËKsAv)TR@WıN皼tnn {ֵxc ×w:ǲ>Ǔf+:a
]&aǳfTla"
?o(*'%#!o/O9x;<mK[u.-<R3^l~OϳtNv7Qx6	g|ʊgv>9i'>Y'{/~49_yv	ܛjiړXL>ȵY Vql:a
tqsBVzlrWfjZm}>e۟vl Y>H^ifۋ_,yy֥:z#d<ٱɎ>P<mT4trئX&`$<=OvgU!V?ɎW<_ff:a4BV=O[?]ŋOfwWd	\{ xx{g;m&O\mͷ<\@&A`sd
Eee4	l欇ʜiJVc3R9|Vc-,Y~ͱ 
+hx;u'6ӳe'$mn#&?ߛurNP@`s` u~ 
)xk6*{7o~o[89ad= kҴ7'd6oO*_8Yjf2@{d&u<dsmfܼW	.6[x^lh~>eųi;4N~Ыlʰ=I<x6+7o;f5aYwOma֋yַi˗=|V=;1y׶g PxNXum⛯`Djcgh@xY ӕ即使调用方已持)0，调用本接口仍会触发弹窗授权流程^;V;
xy1ֆ-vpm	al\/ŎtFL%'pn?u82bZ]G'?).Rbg+ *^xzF}'?חq?X?F=&C%3 $<*xyuQrr=Ludd~>tz-#`FN 7@^x0 Ec@	5vF;XTMcGxyuU	e'f59Esr3<X#7tg<[or8b*x97/oa/xY)&J:'5Ac\%{Y7T?Adc\"&ڼ d?\EO~[?~U
LNڜYaQufW9@̸YkmcLN`.)(*#˷9SɝedT@nx1m:?^|,ۛYØoxIteNҌxɳxz?Ɋ7`8^h0Md+0g,niNoc߾πTCIӫMo4cT^tdFw Ɲ;xyu	e=&c6ߜ?y5nY4'7O>γـ5sfiLx97/oa/hrHf\%{1O>V4yz1qꝌ=x&:l~l>krA俱R]`khE\e`9=Q~:Gr O~[?~U
LNڜYa~&K\YbrF c:I)`r:b&tL~5iP3+M>Mrs?kNTjL 3q/6x? _c)0@	/$(@ @ gbGvEx[wi9W,Λox	Mvl^ }8 gF٧c,Sp(Fuw$sf,d~ {8鞌`6Ɇ{0ھћq:t;_ƕ9J23joca7"=ßQ	SBIF9E^ӟ93JLbT/RH.EV¨
rvs+'1 WX3x;m5.L7{ OJ$Qx;m5.L7_|:9pq (x;}mqk'yگo?qv[6ݠ84̵Y.nK[ƴ<7'6N|-T{/b|4Y|dd51Noet 66-x;}my.\ߧOν% 
*x$ (c+w9(-G&g]xR T4e5-WH p`g<I
ETcH7Pn<g&g6H>kLI?g^lk_h!>x;}egL&7zm.0dN.a.1ƓkW͍<r %J7ۤk2Aٓm&ܟ-0~, Ζ";x[ye2	e\'5qnv/lg¾r
FSĚƓv	L;7s/n]4o#uFw x7 سe	_$XL~5fG 'Ghx۵e*-&ke+d*&Vd*&))&g(gL@>(5D!%,39UKAK<t2RKJRStBet49$%*$gmBqiAA~QIj-" WL/
6mrI̼T#ɍXQk 	c-M,لM d~x۵e|2de"'4lU"پ韅Ȏ|*x۵<2d?O, MIx۵|2dM'4lUĘ%(پ|2;搷%'nxig!Fw Jx6e|aś{&,|s J
cmx6<aś{3N-V|s gx6<aś{3n^]= c	'xˆ';qN~ĵ@ 0xVkU&6]MMƢa/	#"agLf/" AE`bTPk%RQ(>7ܙF}q!d9w{~yb/{%Ll0,KS:W3)|;x*9ˢ,^Fxu,/w#h$L3*@gPt?:<q3Q4WG`E./t``|FXL 6,ڮ&0SU"<p	Lߌt-r+7OW⥵&WLb*h2פzrl<ETL^OBVBaє/7hSܴ(Nm0ZM5-fadOn|Y<nmV-[:_:+їDL'XQ#d`:Y[@OmXK51<0O]_,ǗD2urvLs, &/s3P豎au\hNv9q|&˼pV+Ee)O1ݻR-dPqB0	Sd^u4u3 }漐_PL{^$>1ԯ5kbå^ֶ2_k?I֍&fBӈ.dk)W|O2QGyUUz
cZeEE']s×U;X/\4ɐ_4zȆ׵1W`Jll.9T{hMArWMY˲4g\6?{=6¨eUb*؋Lvn8àhl uMLx$bxL,%mE 
hҝ*C_kQ)v[Viq$GW=E%D3կk?u?­YؖK-zk.TitL?׬`K':̰!)O&xcʿ|V5Te2Ox_1S5T-2j	 g}+LCxkZkF~ގ˙wfddO?(֙eL7F^fԒ{=\v 1/9crGlc>ߋF/  "2xkZzl	<Ƃky6?`/ٜ/=_,vG[C;d3
0XӽwM?lϨ]݉	,;(˵3gz+?Fɉg1^(}&ؘ@nDueS|9 Vu3obԺ + Ax2,儹rKJK&ʫ4Og>eFOҢ":yj't|n3uA<(0zn?ȸ -&nx2,ͻXba Sx;2ֆ-=pe~ۃ1 t	Zx;bֆ-6^
Odtۆo'[ x5 Ƥң<= .QG<=TiNL@>Qk)zDx-6ӻ@lgxu
ֆ-:2JMk9 "GƂW 0d1xrֆ-;h0,bd bVzx[uyU:&6d2Iɥ&I 
lۜ1ܻ t`U\Wh0AJoWdn6Uܼn=NCo>Ssx/#_
&;ʻY;銓NN8y)I )L$x[uyUL1oNdJfPdrfwљL@C0)?T"d=	FCʂ͏=3O>`99Gb3ɲR|b&GYL\n)9Ϟ4Rn wA%FmPsݍvmۜ1ܻ t`U\Wh0AJoWdn6Uܼn=NCo>Ssx/#_
<ʻY;銓NN8y)I tr5x[uyC"C7f_u;Q}

lŕ%%&IHET˓7(n,y|dG;7OTSg,s=}$&/0c,+5'frdmO喲yJ#&b|'Z$X2yafkj8'ߩcr+w D.x[X/}̌W3Ϛ̢9YP|vܛNvܼ@:9͞T7+۳n.?AddΓwNۼ&wIbu6/`Q'09Nd2_6\OP'49eib5(L^%3v9\SU-HXC~d%kV/U|*=;>Lɶm Llo_a&]R#._ 뎺9}3#}/6[?oʘ]Zɳx{	nޮX<a; {XHx3 ƍK{ʳMP?>LzBxreE	g 
Z
EEE
~
٩IE)
)eɩ
yy%)přy@qC%]#\]\<]C]#<Cl-h7ډT\m'.6 ?yUx" :i>Wak%hG1x]JC1ƑіgrQ劫$c䒜 Etu:!LzB}>~ZLFP#M%l>΍pѬ|b
_ƒq+5a~TPpkJI %
#Ȋ	\ h(nr@cJ,'"-%#82K9.,Y`iϩԓ8 cav8lW,Ps͠~͕ݓpϳ?h`GJxxif893R=S&O0uqB2RdD&Z80N64	O5f<ANd]\ءɍZ@lMorgJfqANb%.@@r\a@2vv6߷dE W/*w}\ଇ3\0AR78յ,5)D9MwF5C1L`gb	0ArgAC`8`<1X	Q@J0rMV4.ܑ\c{@B6OD4فmvBIVH/|1[hBuN5&7eŗ(?^c'_Vl3ym&f<n!>Kjy.B=\4'srN=&.j#0L͇2 zhX}xWKoUVRڤ-M:TJV&DB4ƮʂמxšLQ!TWeY*ݱ)*RYcɽآE9wyG}Б,KPڬ#er DPL=kpc Пs(ȚۢZ*
չBb)U*.KB>.?4/B+]ZgW弍RVV\Dna>1.f4uNM
e2W2DEsgeYk\\ͭ,vڔT*Ve[J_-ӥd!_\*h3ZE	Á}F wU=PTQQ2Fs``^RGIh|~	e *@k	UQ ,RĊxJ{I|4<9{k2l 
m (F/u(M#"# dR$O	A@B X.Vp8b8e*tV7Rux|'Ծ|>rwdϸ"d'$bCg-,'yJv4s.<׻Z<0Fm fPEF>~x/ɣY jb6B3VDCܘ͉xKC:5L4i_7M,* }8ˈH s/sg⼦%"x/lyNӀ`@B0bQk&C+cH_,E7'cA}f&{n
PkCO2)Hk۵)j5p6$d6Y3n0G[h$Fky%^R"JumSjeZZ>dDL^k<FWH߻9*8uY`vB;ӏF[)>eF-0s`FyQI!9"IuaQ;d1$ԩU˰#F`"U
J
%+Hdк8@rӁΎNҳzR1Dvdh4@&pXjsvBuՀ(oH]R\kRV k-DW	7FmȨ-DRsjӃI_.rNvNh/yш>4̎;VcqqDnAE#m.sRj)]5𔓁&kњpܙWm8z1*+xUy[S2jooma&
6CQ`6f(Q@h`rTq,ĭxN7%R-*U(Ӆ!YT
òXw]pTi &ܬ5*U"#cCR9<ۓ@**$eA]y8t%>!WY'fsB3fm;rG@ƣ;O 0ڡ'E^i$1uYp&G8][02	g!	w*Kn2ڽ?o,qs-r:nWǱǢRWXCA51[Q̄ڍCFT7h]rvq$_udRx{syUٸ@`oqE\Cqf^r1X`jbUnV H#.xJ@adhw]vXͲV˘6LZ!|^aL
q)p.һ=o$
ɵ<̇>fDUe/j)a뻅$hI(!BraVv"6_k8Z@Xe7b	2,)[N}")Ϗmab0Z̯"NaS>tVXD.woS4$,.-'[ևl5̛LO,֡wg{l?|SxYs/0)a&$
=06/kY-heWa!;-ٙe6.yc*'+JGUNI*ܒS* -'W|!ٝ(v{_{z_|xxus$ȌkXuJ&ةot2	g2dަ5l#h%q.0_w_]]P\T+Er\&+z`ٛV_JeR[+i0:_^(.
:놧=[UZΗ;;.ymOGi{msl3Yox\\-T+ˋ2_n2H ;4pjyĵ}N^f;Qu'dF]K/J)5:׹AF05x6iھQk;e6A"Xg[P%vL4˿m6(5[MZI@;פ|  Y,ՕbܻIJ<z "MH٣Z
b%'y&el-M["UWׇ{^vhxYa]J\cCsR|o^"Œs֚45 h5lQ:0GfZ	qx顡csO?9۰kӟrzx|ayـ,\`mףMQ	lGI ;[Z,yw[nAMc0cqp`'Gyo'^].*{xk9)Q/ʞ)32~zAW=ie.փx4z}9z;0ѹAd*B2չUPԼlZ²4Gk" >;=i<O+cqO>Gsj5P8GEـBk1]㇔TfzHբZiWPxTg_|\Y~1"I,/za?gG#rT`X1;2lβ'7ٝ{aelK*+2{?չK<"SD,/DaA~l&̚ݿ=᫧5L0An@Pb	)mc@ %rQO@fU3LY~*Js*y	␪;[ژǇ3=Ml!~n`.﬌M&Uϑ&>^ǈ5)V`ʣm rͱ!-y>b #9RCv<X4t?Go( 4[Lo ex8~4pǂZWXVNYnjF%Mdd!5jz$vT%m,zBm$d)Mv^׳00J$`-qcRix\VC:On,mx0/~,i>H@se 욧iRkkB4Ivwpgjo0l*u}#/?r){b*PL#D#>f]tPg^)t7*NZZ!nN"R;5,f[|b54+^}oӳar0j&ܙ0HA^,|4uXh^ׅ3P0}fBQ!-otzU%Z(m+gc?m'o<%ͥEcG0CEFG	Âߓ-<\w?WW5}6yObiկD%{74+.ۃl(;u*_GϦD+o7:i@c-uL5Z쭱c{at}.r$E4djˏhelg	߸F ͘Jo9[ƣ󪉴\:9gD{اC(6M\iK({J9c^Q~ï^Lۙr
:o|.*>[)'b誅3  nWHg
i&a"Evؘ`7u& i-2N5̪OrЀ'K}zwITC
PeZΪq^O>n=	a?i!@Ր]Zx6#o9׽7.Xx>z=UK>`ۯ%H/=MqKk
]Q6=[QVb<Du?msn&xށy)D {!]sNZ>wf }ǿ7x|gN_?9G%3$,1G83/9U$#U!'D$5W!3drJfn'L-WK/NMK)X!i4dBqIbIiBr~JBqAjrfZfrbNNdɻ\O^h$>YDz%`Q;'O1g6d$GM~h<H=#4ė(h!Դ"2R mx|igN_?9G%3$,1G83/9U$#U!'D$5W!3drJfn'L-WK/NMK)X!i4dBqIbIiBr~JBqAjrfZfrbNNdɻ\O^h$>YDz@ɉ-c'KaE3$jZOvd|	 aqx|m̓/L=ٔ%54wVWXLgdFvs8WE&o;<'kL>E'[iɾ\A~!\dK2R'ПT@{ sB
HΟ(`5R'jݼF-̨6T߼ڰrsN,/5 K-xWoUOmHh8|H@,]G7B*D3s;̽fQ\}0<ɍoߌw_L'/{gIܗ̽s~w~gO6~oѠ#"Cu'p6.P>`{Cظܶk>M|&έR5qͼrǉ/?;y¶^(hL|0EO )lmZ6gʸω].+cr9t\	<W1*-}W,G՝ayoPfÒqږI3.{ݏ/k6#{^@s^x8׭2nFg#g/řktLW!u̾Ii`&Wg1Sg_9J `.Hce[P&&AY0a}YA.cν;Ƶ}R`1־$(BRW}ΥrKU0qU4DFsd;W8[q%X+iikӸ,?k_iYylaܜYqN]j%1=A톉m h'V.v"E=UB["1|9#P؅ǑR7";MN#ړ4.S%\í6$T[pQbl_[гL`chriȣvɟ&z!6\L*:d.aШ|J*oMѺ[	lI@\̵:4#yc'	DL+:NF[0U]0EKjc͟R,!j+_ƣ"3Xs7j4x)+>G!LBb84`qwbsT1hOHv#-5 3w>F.Ӿ15Y+uϩoLɤbD]bNLP.ء PCznw-xNCPj71r
57QKpgB lZP4!ꝨHR0%/*
KY3E"L*r&jϴ,nJckU[[Զ=B,ɥjt_ߘekc]#M7T4WF\j4=~Y+2`xƞqBόٓq$[dp2Ĕ{	Λ[ƩkzU(͘i*硗&.:tHˇUYjS{q*\tnf^UZYt]Ȓ܉=5.e]m@qɱdg'x[R5if4,k+<!E17MjS$\}#{PG5)-OT*ۖպeho}ɡWBB?a_[79oАo>^}Gq2 ɷ2Æ:xyä}%c/NT/RHNIJLV,V񱞼1UZ?52'%2>385hs\&%N66dv /sx{μyCG~IvjBFbBRjjBQjzfqIjQj>x{xFƻ;:y9xEltt6gWl  ][bxyaG WG Wwנ[6  Z+x[yCu@_KK!(H#$;R!#X!)55O(55$5E48($3?orl'*Z-8d&?X$yÁ:f \=3Arx[<yClpiRqrQfAIf~BFbBRjjBj^bRNjvQLN'3H}HFBqF~QIriBvj%Be~rriAfjD*$')*T;de+8Wz (U(W(,M-THQ(ˡXS2wO6l~p# nR`ODx۴2*ɉ99I
iE
)eɩ
))%y
ey%zs(OV\W1%%5WS#3(jgw".J/Kf 
ovc Ţ_\ZlGf^qjy)6*ClɄR }--gVWPZ%8PĬQl*l@F4QkZM0ZsqRRpH*LMOss|tbDL̠/Q(.O,1Ep?RYV;QA|rn:,p..I,)-p"trV4͙
~>>֓/9ON8$SlԂ_м"GK2R+_	Hk#j<91]T(d%vJMSG
<`N	`'&L
`\ x'&.;@IdFa"|!˸b6ٻF|rͻ` 1x,  	tF@_	B~4ks;xUoEK))_*24H$
*줡-롻3,A8sCq@wovfiZxޏ}ߛo̿9ZxO/ܣ*I}&1dܧg;BSu`Bo˗ιu'T>yvlvB.V#`!ULCsSkW4yj瞷UAgmA 1K/j'M:L*QH
{ių8)}1~$ 8楷y.n۾Xu`\rsAzucڞyT-RNX~86Un
Kpow+/&aN'KIʉGYs}t%r|qS؛ͦ}`V{Kn1 ĕ-(4MWVc@}-Mˌg1	Sjt5?	Ӭ?;j_ru=sњygR͖KkO9ޡS.tyRt49?N%K*h{8KVD)b33$bYyiT}O3:Xh@F2LSԈ	=BoGפ$4md-6n|t²,ȫ>~vwյWƵ	5$	$D4IK؟.;8;	s)vpT_ݱ讈b$}3>H䖐o)K_R7IOkt{kl~Nrw0.~z"۟ Eb$HgH*xА?e(ԋhZЍ^=b=;@P{"PceOI">k>@]ЛgG~x{xiE/%'/d_2o䵫L 'x{iE/%'/e|VZbTS u	l"xWO[U4Sdva2+At0h[uZ]ѵX
rBfeP~)l0{-W?xνG){}}aV_{{5nIjXf-0?ׯ#$Qi`^)[\vN:~.Dji[N!) A B_sx熥fd-f#qB[X0>74[n!LVŴrӨiljaj!J%>BaL&kM#0(ܳ>LjuMVdDI/Q0ZVShJ>arwzl7n=ƫoO.o*#V36l~H a>MwO`;eC mnwApdb<;gU(Tӡ!s
Q0,GN`(Ld#!.HDЪ
n'7ǒۅ3nM< :kɳufS!0;@ğLQoiKI0 Jz/+B%ho^ln`y=
ڼNKGb4=.30|QZ]Oz$)Pez	H?LeY1-UXn-qd
NrؽՍ+0KʼEJrJxFE~^\兂C:WhSAH Z2ObђA;i+]Iȷ?gVBI5H旛t#~v>krup#6-!&^ *`v
{10JCthwM=d.P*1_~`%zFP[+Bt~-14LYchǔlF#Ac*~yCgb]ϳdI+:vT5{ {_iKc~:-W5ȲZGv9#]:)s(g6xI|29T;i։R1.)'t) ]Z.*!Qe='q$,mi[n8K  v[lIgPֱ$.<R`{}s{χObߟ*ɭE_&ʾno<ّ.<35Q;rpR97ln(Ȇɮ\.A9]SpN@%؁rDB_G3_0SqўLD}=nuԾbIԹI9"!M?tWg?%?HF}Y((@Qye=#<Ya{<&@82飩3'#{NGo9ыhA^XV?DIxVKaGEA,"l"j%d[.#`wywVXęZZ\0mCmf2TC<wۥDq/>KK'4ңODx><
<$2 F%0ʹO$xc`=㱺P]d8B UpfG[H-pw))?*׈9U	D8õFYG'I8e5X}3XbkS"BiNЎ$[N	FkjV )1"^kD=9UPegv25?鮵
@8LfKH3-tk{&ڴM>>\rZ%S]'MYmňcݔ<U>u B6Ho$ {9^[zXUm"mP3ҎRGLW-2x;oTP*Jk mwb>Ŵ[vdC\ 
"_ּDblm[GAwQ3vSJQ	u"?1g'g7^='ƴXM"((cWV[~Uy:qfȘ'k@!9;`<#a7ΥupxLoGwt%{ne>2C^9LZU3Ytma^YAVh [,u!k8]Afկ]UQxl>Il"@J@kYWr]©_N*񫟻Eh-7k_>ٸF5u[S}1G\'LgJ|.ŉN}EKV	]z<\/6G_׀XkjNܿUU#c9x[isq{{o" %x[E'1eo>!鲦g<=ņVXi{zRR2SC*Rnhʾl}ㆦ
ROKi) )Q+16/QH/()2Jƒ2'Ef-Y^
JnR\3	 kn6xi&?ۤYO	Ϟt{K>{9CKAk2l37( _t{tnweMOvt[MfLbC)+uLx5rϧl|ٜާ]izcD%_lY:y9Str&Ii2`9csq|ms# qvbAxTORQ^lʗՇ>j"E /m19%Jt%TpV* 1juϹ׶Vp!^s=<;[LΫ94M7:l܅;"
5TWt$8jZxB{W	~W,Sh5PU)DZL"_*ɎښeK
x";\PE\KvZ^VRr?g`qq*E"Yv䴡ő!\b$es1QJP,J8fB5sK
,&0m14]>*2	CfՔ1
ё8S;yGNZRL#m*23G%,I#PQ7t6\{om7!q'qIיJ k̈́wxzcf,,ge%q+:4-/2,ͬT
59ࠇ[^ʈ	W|$q!^	^`tIw-!=mDFEvJ_kqX4z=chvjbYK\	2V2T8uX0KhOEpm=(4ϓ8wR| -poR0E;|KZ+
;Vڐt Oq{<ݺ>#'~q},;F(^w9yЅIxVnEV(4QUBۤ6cYNL6(rqh@h;Y+z1WHEw JU	J   x .xƭwf'ďYyonj^4)4 oߣiB&^ӳWvg-WPSb\d.\P,$=d9t3sM.[*b>4EaĶw8//Ԧ'ax0%o>OE4*{?_H`[ia]*CbkWz~]Yɇkg{ÖLWv1}B1zP̤5^d[(T{;-a!T?J-GX°'SrB'\$K|Lzdp\GNˣ[4P¶lj.恸zOxj1OPS+:e+'BH\y]E>A 2s-V.620jVc}I0zrvY>X|[g46n҆)9fnQHԟxĥauV"3sr9R_s\~hX.1Hzp88!ɀȡrd䷕z_MneSsD!pت;>K3!KAM:XSٹv9y..GU;DgDZ2 )aV `MQGġ@"8J/A0|f*X(*ŀXO`3lJZg1ĲxcUv(jJ_oؗmVbF4)~Z	5M,Ci;cSd.1Ijh200/XꍉDaR|`}ݦe4aC܆=^|rLq)7!< pn"I]P`g	{XzC|tE.6uEszSG/{&jk6{PcHftl2-C5CKyQ{b*
xOh_MPx5dFJ")eɩ)))Ή99I֓/*N.UH!7oRX 3Bx;6dl/kr}erRK26OdDHB' _
 ?x;1ddrRK263g'3LĿI* Ken/x;569, 5`x;7yK;K*nV`<W  UٜΧ_uu.i>Eާ]_q==Oy	"l˗= vgs/{>{֓eCJ&+ԋN~k]Ovo*O2+X54';L:a ";x|yC9R?H+Nf R
  +x;|ydQ9gN%2f}I+^g..x;yuu%
ɉ99I
iE
)eɩ
))%y
ey%zD\ r.zJMrˌFO#ǿY]ڍ	dqBNfqIj^jIyũE`$`;WAٙ&+aSjRA(*V#g(ݩ0yy@lĭ"i2B}|''H%@'@rs&L>wXhIh^e ĺmDܛ0yMQaKM!c&r!<6w'AR69`0a [Zx" ?4?|N\!xyVXr36.a ^K& xK@!;(ByCH-RuЖ JLArWGD2;TpGbww<YǪ|A JL M?¥f'IK #_БZ8ayv HBbd0%cbnJJFaQi}n]D18&t3-P|:Y7蝵q`*3B&
"H!Q$L]7FN['[ԇF~_`v]?4X~Wkcs+NrcFB]]q:Y3WݻCջ%x2 
get the interval(Lo`{1\Nb]Axt'On+Lr	 G1x{3m|
ٙ%
y%ޙ%Um6b^ /(_x{3qdɩ
&$59P`GHHBPjIiQ^BOf^g^AiI|PjqiN_@hH|pkppr\
Z
EP=y
EEE
)
)iy)
yU/H-*,=vܓKl)(g敤 <3@AW=;`(Y\PZb硪2
H,JMvdEE4'+L<_mNO4t}wr_4'tf^ _Bԉ.xWmLun,RZ֖7˜D:$JYښҺ9`!.(o$|7~51ػAzhy k<kmٷN&҄OgZX·E&nꄾ
-Xjg[zKȰ	EVx O/|S2S7N2Jř	`4yGRnwrsnIx)PPܨux|ppRn*j*MFzbf'fWcSM:XjXč#LdT:]Sgm-K~[;dE22ƾb\HM!lDI9	"~EpnIl-+#[.^V۪ќ3SnrH|I>J()bI4<, d5@]%	GyYpT%,!e}&؅>)υ3Vx͢?++qs.2)7C%:3\]XTC^ͳr^8!˅[7VX1B~4sA0ݔm]<uYyL/-ӤJ"IUBy=A'Q}6(݈xЖFp5b j_{/!L+{,Ix2.D$s?,ߵudKT)囵L#N-#Nm;)[Ь!oi&2K/s(AoE\i)s/XNrI;I\Y:/1w}tɑ1	6g8ǤDO`n@w
-,snK<.>C:[Yxl>{N|N`wc;	7n'ytBM`K߼7#]^B#%ئ\Ԡ%ǕYF3=dk4rr*|(UJxFwYFzg3`Vj
sxT̮JhI	:l+DTX"6Vzp-BHQ"UOc*r(JRTQTn =3EߞcJc_׃)Nyt.o3d48Ml<aHAgc7'
#.ޕ`nhС$gtP$(v#>>:A/~$:<qhy]5	 x[<L&6?0L0f,Ē̲J̫aʙy9)
JPAA>Ofm{br fE)E%Ey
A`X!'3/[3$>(4V/ 4$>858XAw6mąt2S
sSKR&?T<E:]&'Md|KX~<)q&׊Zln8YUT(!yX;#$&wHO4F<i~A
Z\ ޶jxOAS#MlES~T
Z@@
1
dmnLN&1Ƙp%1&z0&_`$bnwx~ޛ/#כ3Xױ¶?Rwn+,ģ."pkNOۡe1`CXD=R=e>妌
wMn|2
5,#u&~0/@$h\Jc4E|9 ջ,w䰣&Znz9`u ={@+5Ѳ
cUAO$"-3]l%9liۑ]$V.N$BeER0IN"blLIM(#{zɪ99RH}9_D5$567==<P.N,I7V
Q3gkQ7ht?b@żVOjׅQo|l9Jj+6k4 =ecF'ҭBK$=LarX?KF9̋
#)Ļ>/"kj[!R§2T;>=MH[c_]0RBj4>]4#c=Yj.8d7|#jqD8zS5ŴլQ2ı2*))FCNig!zIЄY`<ʠ\$6睉hfdχ`bYuQqwP>c|?FoZ|I>7ʋ?lBZHXt<
״ϊ|ʉ|`i*%A,M G.xx[xqFVg=/{m7~:{^X!RO=֡ϥ ޮe!r@Ɏn$xGOxp?[CTCך[c TnUWPZZ9 XؒK& 59GAhċu],%K2xM:YX]d<9&KH86c'cdxjxs_LV0a߼Fɝ&PtU2sTN1#&sO$=vOiPG	YC_ ?0oYnFKךhᖙZ2VOap םgw,.I|Fʉ@VtJKxvPH&}_4D"4nnv`bBr9.zy֥@賾gs&?F.?sI~Ρ a6jxqCG&&Ima	l[$+?9@cddYSͫWj Fx{Ÿa# NbJԲԼʂɅbɊ$d))$$&zO"Ȩ7YMu2 xr!\/g29ޚMOŚWO@C+Ce3R!f'(g+$deV]ǥ5)bk ]WBxkbbܠ朘3Yå
 %<%xbŸARQar $qͱ""
E#!U!,%`_4GxŸqCb8'I
m.h=AKlvc*yp3;.R(Dx[xkʊ/{wݳΗS=dOlӷ<nh|Px%_HfnDYS+]RJK2@
&ȋO.Ps23/QHkZsqkiq)h)8$e)<E-%?QG	lGg^AiI{j	{6+_4N>+	\ 1L.Жcrf/W^,_tc?5ХG~K$pJɻ aGx5qd\|ye9)
I%%y7pr**l e+9x3 8,8p'(9b
B8'GA(H3'Ax[0q/&(Me99N>A8|d7U&W*L`.W(yjr$LIfnByFjBBvjBjYj^B~rriQrPeC
K2RѕN4ܠ1yJZ<+ZRZW6ޛw9YTTu@Gu0B;,A%d$&ڸxɻUE&<_mn<//MAn270CdWo`7d[&x<"g6gz3 5 x=q:)9


E)y%
y
%
PɉƩ&3(&1YQnry.;^1Efr<:0zbȶb%lK~;%n2Ąވ:y4$ɢܜ7k8T=BƳ  `oiEx[=qdd&+L-8ml/'@<a| G,Nx;>_}C&|&I4)?cjuـK93/94%UA	("r+daVu WWv<BBLMRKJ|2<
JKRKsJ=BCC]k'pȻXs)h)A$))$-KIMKMQfXB~IFjQyfq\^9O1N^ <d=~ f!b}]= N.S
6x;~R}?d>_X&:nc}d`oZRZWPWPZZ\S\;9CŚKAK'1O!(H!9?%U!%5-3/5E!3a
%Eũsym< 38YPx;Wuf&f['K1gϘ@5ki)8'%L>ɢ$a$d))$*dV*$&X&?dQrvuQU0ԙU8YO)ixںy׶g<i}ֽ/>o7z~eMɉ9 z=]m374MdUL+U@8QY5]|\1n1H5g0T捬_Yz{O`7.6]W3155(5(?PV3$޵(9?%uvb=.- Rp(H,JcpIbIi70@L=$<ܤ"PU++$*e@):;_AW!499b ]*T] %@SAΜk2?''ҜrO;f?ݽj|6o֓bɝ_rW|9F\@f+"Ә\3U^|:d%Z@1ְj.SPhtCOWE["h?yM9y俼fx	|6c	ˀ';.q ˎ<i6AxPJj2L<H$LAqb<@>-E(Sǯp3a%즨̖\ ۻ^x;]}evʓs=qEy P
ujx۫ڢa5KjZbiN,JXe'feJIM,N,Z̝ZP\X N BiFx=oPզ͇TUډTHbqJ6qT,ܐKR;[UQ_;1ؘt``NRRɒ9:/?/;C8ߦ<:C# [lέQH!Ai`ӠJӲ%ϩDWEE3{g5 *MT5/n,<Q&GQY&{u9Np UYJS\fB$E_"r(-Ų(,<LqZF$.N~fi7:וq,Æ6Fci=ceGH #0[\xm]G]s/X~:ǒ
-A=6B,N6٠AEFl~?YytBc
{ XH%rz8^=V=tZN`zf\)~3Lbhle%Iq~1OI:b*LB:a9*--$Okf9y|}KHoς!xo0l)5C pU7Ϗקğ_ڿZ
uޞɺ{ie/WJxmo:WXݗjvߦ+D	J`$|\)c=v9´J[K~|	:C6.ޠe-xM(gX:G#<IQƄ#$~ߜRi]jiw
a9ZJD iBL"į\j9%EX2LbXaCTV?K)zZvR,cn`_i!'唃(5b'dJ5s$\1'
S!9g[5~'8Wg2;q y><wLυO>;8G<rȧ+@MI0gJ"#LK9^`τ`_Q*@XaKȰK	jv5c)˥~tS2GcΞiLXN>ǐ Yh'^Xb෶AUt:hXlfLC!7	i-eȜr!9QC$XEpm7zINvG*zOFD8CFH f4rӺWfh+VŊlNcR¼WtN#o=ǝ~LGv8<ykkRԮ0$	BY+t^4/lVe$bbfgʹ(ʃq-P@*S-~TL0SOG7<?nDs#@m2?&lclX](! e	|UnlEXzm&AZpko/HR_@5@:ZҶm{TAjTA*23XX(H BHZ[;\ׂ
VP!A:|seVGq媛 AVN{Af٥v<?UrĬ >^F{W08Q˨aw~qˬՙ*YC~!R18А$Y-U;5kFQ>
`̋.F]gQӷG$fRO3͍:=;AcuX%Lȑ%,߆uMBkyv;lSvY?aWu>L'V01<>t̄Y^k' 9ITѨWǹwn&uDT[m+tN7熼oÅY;`zCvV;ArzqeE8"JcD(G`Va;B烃kw#t>f)AUX,:շ99\SyQfa~flU<y?
L׬1Ni3ʹ[~3QE|Pܫ8uL4=ޤxwHK㏼8x{fyy4ٟnIo٨2{fiC;\&6\2s/zf[5yyZ߶``T[ǵcy4%\'m VC=HGX~p0p LrF$})5K'j	\jkHxwR;6˓6Ux}*kx{-WxۤA{i.N_0W[#6bwI-K/,( E
xۤZ{i.N_0W[#6: }	n1xۤI{U&Fט .kKxۤJ{U&FטO%ª Y&o.49KkV xxۤZmU&Fט&bڭgȥťKE9HneqY쀤=,cu Y]V/ $/M^fdcj{bX\X\lr Hn6LCidqW/@҉	HrY@(_0W[#&R*Y@rcd8< ?q';CYP}^K0Kf)%;y"-	UNoU" bmzV^̊AfI]"5؏OB绰l x[X{i͗np %8x[X{i͗3Zo($ Sq+Xx[}Xmi͗Ys) #¡֓}D 	(x;Qmyf.Դ̼T OנY<1l1xۨZmͿ &!Ex[6Wm XF0 H>e*@2H.euX)7ldπIqvO |=H V@d	3L>\ b.K @nɼ`V0~n'  o;x-c@&E+l|6`V$Ta#u?[ 䬙 KB`<\!$!=9WPkY5lx[6Wm  )|x[Lm fcF. RpIMK,)Q\&3y=#E2`U'*'oAdY&b&i1*l.d .x[ms6_q?einL&,ǜ:*"!c`Aв~ A/;M5y>.vu@Z'7KEoc;r5qAN\MIQ$QKF1ῬM~a2""gSro.6"%+!P$M!#g"<"X!jzb!Bu
bp+*ֆRzݡZގ7'\y`?6QȒH[%w!4|:IC&Bz#)2%W<iD,ԚJ<QSUR&V шv'ě݉7ic'zJ>t`'d8&ܛz 'op&X@Ld	c%Ԣ0r#`F$fr5&+ҏjNNZZoh(q#ES=EǖLo撳Iq hT1~!b@%Sk!opY L }[`"ձ'qQUzw_H[P?XWFMӘL6bwC6XFuw
ބ|. Nt> uAݩK6Og@;f@ؖRha
*zC,LmbY!q̏4;$|â/
%o^2MzJPU@whŹc*,irnBHhxѶY0%U-0,y#JanLRK~?ߣy1N%dR
	_#@L5ay'%4pΌVXSO3op1|"Ywr`xy6Sdx9˼EVh B^+c;^VHa]RMPy1?T1nrlZ9Lu+^Bfɴނg'9QYTVxg!j3pX
B`_+pjW=3"
T6v55%-)삧RߌOWg}֭N$X>/BWip9_Fqi՗?~c=sճ Aok ^PG$L%n~Kܸʂd^kLr0*C 5+lHE&
eԣeꔟd\VDo<( $N+*6P	b4-T(;ÿ>vxo0|yva>T?mbZȓ-@M :/$c+,F>U wL>#XQQ2:='\JhnymZ!H]TcC7WC̠i>f7½ZY[᝱ǵe#_X2_[AK'(McvZp#gVSu$ZX
<ƾoXq䋠o0#wwlr'1R1JiPOlwpnӣфgpR"ob[3/YB>Ť%H;dW2V5
tQI0Y!QXCes46v1B#sV5}5rKIcؙD^AQWS轌١(OnK47F~#f
OLu|6p;1lMx[hoo4PVL.b.K 6_)P?LlɅIH0{m G^z3ض9M\JfxF9Њmԍnj̐Yw| K-B!cM\Hӽ^>Uyq̃×#YѽA.v82ۄ&JxI]l_,..U[SeOEA3hc,0CB Vݜ2k+CqyYk!W.DP'@c"Im{BRR7iLP%FhS}Ѫ0I+.6#&#J#^t~S}osX#hXP	^^t5" {iXĐxaL.g:u к:p"<U<x ­C 1@~VM&#pZbuM̽ăL
&iQnS.Nu&|A:F3z^,wfxEsTbۥ*<7't)߆&v9nK{Pǻu\/s앴52GG
3?;Y@݌g]pbY7ml̶cX̀%c>XSΰEKx7c'0JׯB]_QрE*6ګhsN~5=w:vuji'r'j<X+Pj5U!:HcmMpC^➲YGC++10߁\xr;A%adI1!QIm#csC	'wvgdTN
%Wj-βQhJ7(_{JW.Cn9
3۝n._'q$c{~0+c)-* ?̂zGѶleV Mv#UK&5E²UY9md+ЯžBsڼ_{]7HKW/Կ~r8i	1Ϗ
-ݠL7x?fSK ]]A.\7zW('qқtWVD	~.4Qi.}v)Pbmҿ-žboR-,'&Ѯ8EnӫفEɅކ'0Pw<~
O{ּ^=龠ɾQAGM"UTتa
(/Jܟ 7UvFjI4JY'lBj>~?v:N\M۪EQs(ӤuZe"޿tK|Darj~ޒ9xtOT96[  i"x[YzpC&GO!7Y_yDFA _`OxW?OWɎ|":
))
Eřy'ȄL^f99Sad=uɏdM̧[trkpp|Hk|h䃖?g2N $7-PO6* !B5xY`CZf2NNUa*:\.) JcgxYx3gCZN"<y9 i
xYpCZ1p)((LN( 
)o1xYؚldɋ,8?KxYؒ!iTY'Of 
uxYjFY
,S2ngy*2@\}FFcig3N"<y9 @&x{U`C9kH|H& a x{Q!wC>$&*ZM6֛Vc
i{$;&NޫеTz"dyY'dkNNݼM~ Zn\x!w>iF9>txK mmRR0/B, add permissionq-!54i@)>("R1[WYx{(wd]I_~  DuxkIhIؐʴy^L֛cYk _3"xőN0],)C\S)\Wq*Y=x^4	K-Ǻ߹~Z~BCCɸ8RBjRJ7t
n`%LBD:58"HGrDhHɰRBHdEjTG.!f=]{`P긄u1qp73u^2j切O`D[vzK~êc==2sgӭ>ˉTA#$p/ҷ`b͠ L50P|co^Jf"{wdOce:xUr@qaC.081	 ^Hbw'J>@APo
,?'>=}2_+{hワ)pё#KFb }x5k(%Iv!e`t-kĀ`q6L\(52\=8V}?z~c%:ZnУ80XhCԈkP-옹яwB<@'	pXUz0Sm߁o8XJ`MڶJpցh-)'_)*Fb^[n8zf`u)У<!<mG_n3@T02B25d5E:1a}:f:v,q	5|gj=":ܓN:m	{i SWaiao{,^813ť.
è`$!>`>+㶓l,"2qc}&8sh:skp7G|w%=q)%U/4ˍ
/	ңͦFM}
ct p/+{[yf[d$NQZ.l
Dz	|=N˳|8z:CdF}U":qKx0mM6R%jg&w?^Blc]KoW!8[5,#?UHc(]l\_d,:xiud_&K
,M-T(H-H-R 


)%
y%E
%e%)
I
)i9%Xe<Za0-J/cBQ;$SK@j&\4fT~.8='L!ud~N)^ssSKHȩohURT``S
5~.)AVK/M,ϛ,˭m.-Ģ\R<VMBݩfZT	ҦRiť62(35MĂĤ̜̒Jb`@)L`WrcN3P_rfIfjB1Pmb:QPM9S,|.ųGHHBAQ~EP2JJ
@QHKL/-Z-!8f}v&P|V2慢L o^&qs*,fe=joxi5Kh_&KNb9O0qANIlVD&/|V	d}Y/ NxMo@	AՆRPRrBAU!
$޴
g$̥ qA?8MC.P|xw«Q`L5*lXd»-UL7\X30)VS [%`A
t\ 5֤-[%R 	뫅IY`[}P>r\&܎ (LbMbML6%l6I[Wd3?&'E.W[ݙ=.#XT-pP.$)7v_J:ag T̋fo!JOX3rP04hv$XlZdJÌS}Wr&(tOlnQ5pzll\h}k/cXq+3%}9=;~+Wʽ`)qS2ET6݃tv#tŀAܜ+xKo-U=/#C9ka\b$9CMJCOCrƖ"oTBOxad+|'N+7Y_w$V>v[FEyz"3P-&3l1BoԾ#_:7 SG([x{`rdW-6q	 E5x1K@ǩbVjmThE..JDP;.^ҫ9/rZDpzNj?@\?hjZ:X{^|+](s3@P5thqɎ q!b!E(UlBqvV73'u/.[:GcC05?5bްYLDl41,/ U̷Wun
Y+`۟`wPbl3.]Ğ:g<q抾C7f᎕jE%U44X5G҉EA 5eic&AǠ~6T9lgV&玿9( _XޮNя(3ZcyyaE!o3׌O:i"x{gl\~̜/p A
x`jCRQfjSf^JBBq~rvjBIBIFBqAjrfZfl*)`⒢J"
ܡم'/TUhr:F?
hȂl+16/Q09_f/# (7x{fm!I^_KKAK!-3',QK-)/,# *Sx%tJhKVn.-(}lPޘ  G6x;%tBhNX&dl¶{- y	#x;!tLh͗Y7gd E!xAK@)[zA#Tֶ(
&-m]&NxxޛocG|!TjǕB)8ª_IƫfLݪ r4C`#w4z1̀J&R=UgSl8LxσPm?@LCJ:dj3cIv#(m-'Sqgud6sg%ry.ޓwL@ChX= ,#T^p!E12_OţBlXCvZ \ZeK񠰛M1"xgEXFBxSMAw؋(z
Aq.CF<4z*sڃ{.A/ݙɆ0L7U{]'>GǨ0"Q!
dH#`9#`0s6.(~pP2`Ȫ:	zU|h̼Mv̇gOHz ]oet}Bަ{ސLޑkz6Qd~$;AWtn2V;IZ@̡3D>
=\K4r3fy.HֲM dכY/)*B+}H(	*_rg+U;?V%jX.=4u6dQBeq-tu6âX.Gl.;]E]ѱY+ikiKD6)xʠt}nS+ӱ`?wffϓ_D3V{vk8wg߼xZnI(%lDj3;
Ncd*Iߦ̎"k9U}4SS_9"}?؅|:#݋q2`n1Xi;z#^l{6X3Kf##{۹ Y21qx qĀȒ;pX8zp<'"a|NhAa9Z	WÿϷmJ?\;jet>x=â쏘pŎ 0YtH%~H*d0'|ļުM")4dH"`ȳތguo6ȧyswoO76ƌMIn<û1zGzp<hsC &Gf2%cK_Af%j*+FV܈,tyB drA:?99oIN-U3=YSN"lI&6$9
J=%bKOzacb_@RQwKg]\NzbQ./MR4R3<?u[r9|p^D\d(.h@fH0NwaӭdGJO1C9_d30码yboNےMӰݳfHw:럋DS[³
8N؃ $ȟ'ϙge.3%V;r߀U;dqewCC.M'Z:[F`ujs_0uo{Ȼφ4Uw?/L%LLMQ<yMӳ9"/*]p^Oǡ'XBDH~\Wdfl7G3G
T~&`ft>2ƇQB4h9 X)bG8?{,)ӜoIEJibfTE)D%HnogMz<'l[.Ғ[w01 9.cc[Dq2>t\{_{?RC>co4Lu_E&~(HUMiH Sd̫9Cux7F2}0
 .O!-TQj=Q)c9N<3+,	U}c4E4|7l _;1/q6!w=7̻;hjZi`n].üIuQ^lE3"IB(@XBivUeg>lVŖ
#n=IH.2Yɵ$&YQA@)YRH+;1Ù.c<۽R!uo)+k֛ϚZ^?eBYdwHA݊*̔y:tQ<e\뇻!s7mYQ
U܋%pCi1
c͗%Y#'w;d;	|y~-qO%Ě
.Q{y.kTY9(cȕәgٿ0Ԩ2tJ@\E䑆IUCs6s4.)@ݴ^e8JjѢ0pB_uoFmoKAgTQJ}prqz z[¸|Uȣ< n-'ڳDJCM`xvNZYY.]4NQ`ˉH&,BJUda$I*W͹1	qT!QZIC"IaP^S"kiRךSq^fJlWq-&tUc)̝JUತy8pvY$P"g9PػR˪lbߗ7)T	(Y%0#@?F|y͝+tn? 9#m8( CA	ņoάqQ$E`3ZeQnLkYI*3Ê@-a=.>]l-w k'd),Z
O' ZN||`JּHqս6HNcE.~5Gh;%]TxS<e)druHL, )n΍iNǡy2qsK<K'תaj?Iǋӗ2˚4A֤kdw|Ljc+JCRƾ s5&c%6'pfd4=ԓM߁/q3$i8Xi 8,[rK) n&Jh&Ph}9N5(Vvr]n*rCݶkf'Scj[cjJ0lhc(sE 3<ZN{!=Rđb|W cQ^<73c&ǧzD!xqc:m-cGnv)[HvO\SyH4b% AFCg,ӶQVB׫rJף횥#O.:d;Qj#vJ&"Ѩ"9]`fr
xlЩ5Lm5 R(\)7Ch
\U&o% "_1fGB.ED*Eh~A3d#O$_([%z8k>> #TDF$-@dIsqШK0p)b HMZr{j🥄jb}VQ[b-m4 I_O[2	x-*p5a6`OY f3>?h/=:yz {u}ˆ(wNں̺^^M|):f(xԿ&ky,'2iʬT-E5DY"u~Gb#8XpeΨ|B{VS)v|آ'&NWA]Uw}Wy[:TOZ:teY^)q!$3L(3!e`zdꑖ^V
ItaoLLIhy~ujpPUg7C{: RA#UB% c\D=0>m zï?bOpMC/UjOݽ}87Ć:ٿnZ|GS*i \n>˽sY<NF	ԡTJ r5GNܬGCʠ6}I	/?`z+Q**/ ㄯ0<VO|/7w[>&+Mw_ۯ#R9X52L@lYxۓ4~W< )xM_*8/**
 * Copyright 2021 Huawei Technologies Co., Ltd
 *0CsD+
 *
 *+
 *G`ELG8"
 */

/**
 * @addtogroup MindSpore
 * @{
 *
 * @brief Provides APIs related to MindSpore Lite model inference.
 *
 * @Syscap SystemCapability.Ai.MindSpore
 * @since 9
 */

/**
 * @file status.h
 * @kit MindSporeLiteKit
 * @brief Provides the status codes of MindSpore Lite.
 *
 * @library libmindspore_lite_ndk.so
 * @since 9
 */
#ifndef MINDSPORE_INCLUDE_C_AP;I_STATUS_C_H
#define MINDSPORE_INCLUDE_C_API_STATUS_C_H
4

#ifdef __cplusplus
extern "C" {
#endif

/**@component code enumeration for MindSpore Lite.
 *
 * Used to identify the component module to which a status code belongs.
 * Each status code contains a component code part.
 * Component codes are used to distinguish error codes from different modules.
 *
 * @since 9
 */
enum OH_AI_CompCode {
  /** Core component code. */
  OH_AI_COMPCODE_CORE = 0x00000000u,
  /** MD component code. */
  OH_AI_COMPCODE_MD = 0x10000000u,
  /** ME component code. */
  OH_AI_COMPCODE_ME = 0x20000000u,
  /** MC component code. */
  OH_AI_COMPCODE_MC = 0x30000000u,
  /** Lite component code. */
  OH_AI_COMPCODE_LITE = 0xF0000000u,
};

/**@status code enumeration for MindSpore Lite.
 *
 * Used to indicate the return status of MindSpore Lite API calls, including success and various error conditions.
 * Status codes are divided into different ranges, each corresponding to a specific type of error or status.
 * Common error code ranges: (-100,-1] for general errors, (-200,-100] for executor errors, (-300,-200] for graph
 * errors, (-400,-300] for operator errors, (-500,-400] for tensor errors, (-600,-500] for shape inference errors,
 * (-700,-600] for user input parameter errors, (-800,-700] for AIPP module errors.
 *
 * @since 9
 */
typedef enum OH_AI_Status {
  /** Success. */
  OH_AI_STATUS_SUCCESS = 0,
  /** Core failure. */
  OH_AI_STATUS_CORE_FAILED = OH_AI_COMPCODE_CORE | 0x1,
  /** Common error. */
  OH_AI_STATUS_LITE_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -1),
  /** Null pointer returned. */
  OH_AI_STATUS_LITE_NULLPTR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -2),
  /** Invalid parameter. */
  OH_AI_STATUS_LITE_PARAM_INVALID = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -3),
  /** No change. */
  OH_AI_STATUS_LITE_NO_CHANGE = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -4),
  /** No error but exit. */
  OH_AI_STATUS_LITE_SUCCESS_EXIT = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -5),
  /** Failed to create memory. */
  OH_AI_STATUS_LITE_MEMORY_FAILED = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -6),
  /** Not support. */
  OH_AI_STATUS_LITE_NOT_SUPPORT = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -7),
  /** Error occurred in thread pool. */
  OH_AI_STATUS_LITE_THREADPOOL_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -8),
  /** Object is not initialized. */
  OH_AI_STATUS_LITE_UNINITIALIZED_OBJ = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -9),

  /** Failed to check tensor range. */
  OH_AI_STATUS_LITE_OUT_OF_TENSOR_RANGE = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -100),
  /** Failed to check input tensor. */
  OH_AI_STATUS_LITE_INPUT_TENSOR_ERROR =
    OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -101),
  /** Executor is already running. */
  OH_AI_STATUS_LITE_REENTRANT_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -102),

  /** Failed to verify graph file. */
  OH_AI_STATUS_LITE_GRAPH_FILE_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -200),
  /** Failed to find operator. */
  OH_AI_STATUS_LITE_NOT_FIND_OP = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -300),
  /** Invalid operator name. */
  OH_AI_STATUS_LITE_INVALID_OP_NAME = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -301),
  /** Invalid operator attribute. */
  OH_AI_STATUS_LITE_INVALID_OP_ATTR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -302),
  /** Failed to execute operator. */
  OH_AI_STATUS_LITE_OP_EXECUTE_FAILURE =
    OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -303),

  /** Failed to check tensor format. */
  OH_AI_STATUS_LITE_FORMAT_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -400),
  /** Failed to infer shape. */
  OH_AI_STATUS_LITE_INFER_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -500),
  /** Invalid shape inference before runtime. */
  OH_AI_STATUS_LITE_INFER_INVALID =
    OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -501),
  /** Invalid input parameter from user. */
  OH_AI_STATUS_LITE_INPUT_PARAM_INVALID =
    OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -600),

  /**
   * @brief AIPP is not supported.
   * @since 23
   */
  OH_AI_STATUS_LITE_AIPP_NOT_SUPPORTED = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -700),

  /**
   * @brief Failed to infer with AIPP.
   * @since 23
   */
  OH_AI_STATUS_LITE_AIPP_INFER_ERROR = OH_AI_COMPCODE_LITE | (0x0FFFFFFF & -701),
} OH_AI_Status;
#ifdef __cpluspluJs
}
#endif

/** @} */
#endif  // MINDSPORE_INCLUDE_C_API_STATUS_C_H
,gsx[4~/қ38m ;xG _XD (n #define !0";' T	n$-J.Z/Kh3Vxq%p "$& ٍOIzim/ Uhnx15bCF͏4/x!i[XbU97?0ff C	Fx3 XI`.?`oU_P-F+Ji!2xuQ1K@:Dj,jJ)EtAiZ#3ҨwrHG'b%m}\Orٽ&aA<XD<!.GZvl8<jJgfˆRezٶ,>1/Υ;P-WԀ6Q5Md##?WVFk+l!a`|3jcGjht}
|(s8&N##W AfMbv$gy1_Jq-xוc-l@n@]=.aZaRAk[x)xC^  wx15bCڜ_i31fM ixk!i|7LV gpvxxysCL''1neIV  hExJoB,Y7d4قV|T /,PxmJ@or&4SO"
)I=5dSv7bC>ɷ$&͏oO5x;tLja GJjkM߁.=paF/{UZ.)c44Bj=g3/|x"8ao4EIc$?[},,SL`5eď"?K}vIp+"o}X8ga:*[USlsRjkvtg+׿n<v8bRc%Ҧ5eU0,#)0i=XP->lbM %*Y:%
ZYnzi
6-zAqRXX
"(5"*os
כLv"盁;sA|v0֔LxVoGGs D$!rL8p0UZ[수hv=OfVc-Hs8UGYfolWxw}חcg:LAuVҟkL8ۤpOPմ>=h3_,"IOycN^VX\pw. M[ H!Xݒ'nW'gʲRikeQxwtԧ1R%jcwV/7Fo8qj:șmE8Ӂ.gQLC[)\O>&0`l!c"h0%54̜dl
Dsp%z	Rc҃dM(ME\t
RZq-Sd%P4ugD\ߥkS6<%Kgj2 ~9(T(8ovQ |)Qs/ &Irn Fzqbsz@~߉GY/0{
b6;ĹG!-6Kqq8h2 QON=7H#D3o%a}]R/G<^??ҙLsJTWx:Ы-VNhtEaṡVW5qd~߄6{B*3T-֣ۦ2G\Q1-c2t:8v}ETǁhQ[lA7%d7
Tq詔wNu=pjң깠LNgj毛e]qpߚqY
B*>Ofz{ڟC)Hqp~ύ2ypE5(
F8tX`f.
F±0HwaFtSGCRV-+_fzgjx{ׯ!I^_KKAK!-3',QK-)/,$ 
 (ASxpC#),'x >0px$Ȭ5EwR;@r4$F''0+k)8$(8&dq媹zO19kxřyɩ
 vYjQ1P>XIZfNB^jI|2ܜʂTɍa fVbi@@ٜҔT⒔̼XL=\C}#@`(Wc#&+*N^#aD W)&̝epIY+K1D'3MPl,&6U,"'RɅ*^ e;@CxROQ϶][B?!U)hR(*]ͦtb#Dc3xBb41Mb`ƛ}-=y߼߼nF쑰Pt-v󰍆;	a8|~؎h087
H$n:]hM,FѨ_y&h{B$RF:&J£K}Fyv^GOo2D\AŨ$g9Z{YVP"6LM(B*t7_*|zc2ʰY~^?<snw@o& ^L# Y$Ѫ:$%1y tљ_WxrT^qՁ 45C6T@y9KePlh7iUjp&?Au+)--M=CE&qpٵϮ;h¬]$s,%~]Y>FƼt{+_6ç޲|:ziyXH.6L}I6@uE߉
?U/䘪歵fTiP
0a/5q?~"&AwDKXҲhpi'ێ Л?bxUjAEJ*6\F<h Zf7̲;I-"op G A/tf6ni,/93\rd۶6<qB:C|	O!xB&z\$FQ}'0XEG`@	8ȐB\qsq;m,ZeI
Tҽll?t.0,yЇ.st[ IlG5U@ۺɍ1N:+UFv2BoeA߬5T[wU64B"­Ȁ6ba?^\FԎn0b3;]Uj6J'=T;4dMxˢ6L-TͣfDsyqWvJR>KI%}ƨt"ѕ
	8hDCPGB탰z✺0.Ge,3dPʋI51gn_m(-!MKQ|\vQ,Y&r=$%S]Bg=Yg:KpNӬW_KWocBG
/rbFv'W;v	ten !"[OnJOـW(6̯ܚL&`y\sg,7b(rF13癒qBW?/F|P?)Px[jpC#rf^rNiJM^jIJZ 	:3xuSILQδ.ӅvfJ݊BČH)h`i-ZB ѱ0O3BftCxsMLd.`<yYO4E|3esÿ}ny`?@41zgSǉ}HѪbN"e.Z
hESXJ/m*P-N&.頽	0oM!(zYEīؐ6ګEVs>=D0\춑ۑt-e
)/I8JŬ4;E]L/**F[ytz= ѭpBt TO|wϏ ! A̹7,f<6-Hjmr*A6Eg[4Z,s-(rC,
6	'*jQ
{C%qP"	7}J@;clђþNa\+eǵ6Rs)t[t4.X/V0pj +$y}NAn1p{5^>{Jb,RINCsV8i2]`PpJ?
N8:cMl>H*ʲd:T	܂YɿU.8Ϲɿaӽ)k
!8`4\Wh8VxuSKLAݥ-R_ũ)
VikU
AkaGBvvC!;&r0&^81'=ɃF-/_s_;-&dκ#s-If3E1[AG0g!rhuIb,5idb0rlhuT0񔦪tP47|[/-*ǆ& 0kM69<y}0RCXj.j0wZXxփ'6r*JgR&1"%Ӊ44KK=Ҥ%Ed3/E}${#n#px(8]xmAu7}W$̠9=!d5dAu*oB(9Dң2eZp4+MùoBP$)Eu8so{lE#dqK4NPڶZH`uN@?vmIש>4]XDpZaǲo1?+2.*pŪX*!yEo->{x<cq_G}q%uSɮ`X9ZT]+PPhܑr7;ϖ_5G" SvЄ,DV}Jc-L[2{]q!;`Nٻ_e*p-p/ybx&loYLo  ^hPxۦA3;h)$pM!2(l3} 22xY;B@~QIb@v8&g+  0xAB@~QIbh)8g%*7
  ;Dx[WoCL3KRK󋲽3K6 ҽ-xM;ki)$Ld
qQU04l$  /xuRKLQʹi;?UP̈Ȣ
Nk*-DkatCO4ąY7,ƕKnąFܨ;|m[9w?hGɂ{/Gz$z2w#2\N1Xh.#pKU),uiYhb*;=w;Gv$=w;k&+J5]o-V} W]I㑇ȦƓ#l>O)}45ʥc)ҿO0ŢIF]Rţa߁<߅|ׇ|mAd2cD	{	*ZP"lT6FYHh"໠*(G.Gʻ>t0jWKk6TBXa꿎ek̋ԆЂptKM^`9؂?OkXЎlS[\a@9V9*Q)2lșYdOݺ!蒂OR?nI00lbbٙfMTژ:ʎj~}x/e,(Q~PdR>p#CkԖIxHoCd>fnԢX&߼K  
དྷxXmo6 ~W.2Uhb{.(Lj$+w$eIbЭhQ[;<9<hl%l9}r:E\س+Cc*A)2ś|R1{FxuOJ +BC(a
R40Xd)#X2=f#W1	jd-KFʛ?swrurLj^n}jR@?s&1
HEdd	BI0/%ӌDDRk'fJK6V6~buLp?:[#԰V>>h|PLDo3ib@GI*-J9tˉD8TF#㳜(S
]-&>	<<8<h8b&EXOTS~)S>&ÄqԆr~:EDϼJM1ӷW-8aaY_udʦbkZ	't4^
yi'P^ݻƔ^o=bW*"VJE<e)+-#6M1<<p4{%Ir%XqXN?&eKˣ4;	*8Q;<(po1KJҖh,
)+|Ġ",Oi-\O{親\eRaU@^gRܮ@QyS4J/PIa_CCb'6'HR,aH'E{̹s&!,UpCRv>sM\&G`|P,bt	8);؜R1CH΄i~dT5vh!W_fYJk"-M kP[u
2DEMfМ5)|fjDظcH%;ۋn~?%LY7^o(©6.	[yeTȵº[wp*JAO[ArՑI&pd`X|Rӡ#
-r{OQˡ
CjZ`Q狩D5^*]Kw;R 8.:p)RGJY= A)A\}n*ٰԫw6Lj$O*Mygy,eshq]=U}C.a7G#\\Nw;k`ImŰkfay0[d]r`-!JR
[.uVp-muҝt7k4Gs\)_YKTA`3DN	_*جj3+?zw)]9q
'(lո|IVxlYp()PQn5Lo͐7}͇ hWf=HQXNȽK%?x>7{ڱ2)<}vH|j1A+6 "Żc#6Xq)\lcEV3/.m5@凧iR(;z&KMK	6p_;r,W@n[q	^㓥bExcn^Z>y#i?_Ոq3ĵ!.5MEp-H\5pJ=|_vC_\Y,pX)nMuG;%eםo]˰I[޲I㿽̭Ιc?¶өj]Ҹ>AdO6:d&ǿ'G	x\oF  bwmHf"-:f@QC0EжZ/()c8yǼ|	5ʷgs}YSئ#v)5~	Н
ɹ`%7?$\v^;e8clW$lG0qgdLotl[[ΉF'&xO,᝕ɸı4R._8yQKZ <~l:"/~m؞_2O o3>|'=D~vgG,,y}AL@$E8 wٳg]}`hCw4d~34ZF4Fڬ> 8 $> @mЪay
Tm&pB>lR;@ qJ8\gkO>9^I-N7pɆ>RvշǢ;maEc@`RmLA&dA8	VvFj)LOe6>SKH6ZET<lr,aFǞ_'kXj]ےu돶̭/ـH7'cUBLSW5o㔈;-[zm4Z0%#pt©`
vemN<ϡO$Rͥq*i<c`3	wj[)\;{.#pF	Ғ8@7bLnݼ B!Dv?<fa.&`.) +Y.=?xEH.4rUy|5u \@Q u"SS(BM_kRH>咃tVGQ Z:ht{\{[Cvz׆(MaqPA.$m۠J@{wI͇h$zjSXDmա azNS>66[:^qHenDw߃`R %hgeV`XfqySh*Lυ .mLskp\a<%p+2~S@Ap^{wck_ߏ0
\!ҷ=gV:vXFgݾ1"Xf)RQosTqozCz/_>Y)Yh._@hwW?,<tgz:J@rWStaqUꉳJ?]D_ن42)J HHx&_>I^
dzu#!Z1?l¡ ZcZ@/hE$.C;VP1ZMqzVFpSpKDMG#Jǎ~iqb~i4!ׯ A4찌G_AGLrم}t6dM<0<H/C>.8Ηqt	TKQA;>$\+L ^3 #Z,^2!jMC<E;.i?,m%rp_xࢠ5zW8^dU}@AQ9*(@{b:C	g*;qDn]vt1%vs0e&RX|aTM[~=rݮ__ƣΠj[my^d? g$/+)olpӈݘݚ\ΣvH{8.Q*
}ϻPc68K&)69綻ݏc5KtGǠ)&?ͽyJ߂Tk7dr%sgl7BnE.v-0)86o@)k]S+q{OUEŇ-!,X ;Z|SX,kEοh%ۘ^<p8+&jG>!՞
?ۆ:bulr3=-t@>'CMey>˯	Db3''1TWgfu@#:|2zF=m ԓV_n`~o^%MA-RN/Y{pO'e7O'g^ﺺEFŋ,}awzs+E'/[$p侢)C[}X!ZvQX-r߄pE* TA(,QC'ԍ"("W}^@C|~h/^?%ӗH^.h\HBj1=wj*f*UII]%U2^@\A:s#` PF%xAOPLKq[Ռ8-Y%Δb'87me'AF7'Lpӏ"R}*ډn}E^h/BR}4͸=EN=mza^1E~C?pR1-7#oDS%*ڂpУ'Jba\~A-AQ"\lARI5_Q}]K\<&"
 gвPAauUՒ< h`Ys!aHGZ<Nօ1;{NUWi>,B*XX:K
ݳxR' |?|YZ	"aZp=sqo}N!Vg,#a	OMS; h% aN}ZRf-pjܺ,|*Zy'0M`ﹰʕC{zaw5$`VV=%_=-쟫ĽoXEeS/u:S!9^um'bŔ̶NOU|EHH*#z[uY?U)$^H<4E`D`̿2Τ4IԯWYԈ䪉=Ń5}2N1	H%2~B=E^姦:\N	?ȍhz@Yq*Z5i0-a/h)ܡtٓ<x&eU
ZOHgQ:Xc,Qr;L$Vg	]I	KN[1OaL[ \pK $<k%	Ũ9Wp4-6}JLTr577Kѿv[7%;3؎ųS]0ud1B.> q|*-ئoZ1NgpH7P'4[{q76ӈݹ)),kNaե2iZ i $F.o.E@~2 n 9.;[pqy ?8ڑϤp͑C\䒕?.s+c!tc<}r0P6=
73
WT0GЧdU-&~4"3őp0볫T@ڤ;q~#ݏ2
Hyo^\MIK7&Mu
G$,yzPeEgO;"/l4ܛK d팡]p %ͼ8Ɗ`yŗ^7OQ]QPIIleY0^Y܁k矜xGe KófSP'V[F_)jףdBsW
1|"4;2K{-H|6tv'j) e,e5ؚ,@_4JGbA&kn0\'/엒xt%__˭^̨x,:@?:?MG%cAMeߩ"̏;Wst<F'êF<ݤģcqp!R'.gnA1Vf޷A0ub-j;lm G Ro%}/sf~)nGQ[T2*_J:xq=<}+@ZZ8ao\
xY[o~8/JܦMbva))$ȥ˳Y^DҴ-'PTAon;J2-֑5G3JَH0õD}O2la0)#F(	Nxu7,,a 1!W$L;a#wN!ũg!C,Cr	~,5}"k_n7`NaԻ/@2ƀOFW
UYEJﴰB`ThwLscXREN^c'sΏd>I͇19܁w3.73&?=O&PMA9s**W$4NٚZs-"H
CT0 1
ˬ{.:hxt49O jUXoυWZn7vj*z>ז4d_m4vG;FP/EL:xkCK55ࡐBXi3ܪ8p`{f.l}f|<3o=ؕnSY0@yͧ~%BD)b/ѫxҏ Ӷrf	DN
	Y.$N=,F	{m*'2Yo*&L^Mߊ0/I'Xϳ:0bX9@
bwT6!
(ܦ &}@||6i4:ŧxҵcUi`ڥHZ߫³18_׸lpYҔ`Z24~O\(MZ)IWXNaóu !qS/D[?mKbE'C_ݳX{Q4b(UiqIY1+Υk %҉oR)6b:A:n{"SZbOTH{6^ZZ\KRc-O|lѥ+u{wZAóT.qh՗aS	%&ՏH+1[u|WK⯻.V:>igGUw!޾I-M,[U:VpƝtaκr{3TK^~/F$jjbLX,4_<D=ri鸎NG_mx^a9fǜWY&/We{7vw0ŜiXBo<k;pAlqy#!17cn/,ಜHa*oKE1xõR5]
ʿ@	YlIv@9veOVJ벃+`Bj[U=xV1$1w 7~x=S۞2vJRbŝ,/E;9(NG|/MVӄ}A+x0z?=Mxy&+Jvwt͝VR2/pۥTT	orZ!tQc`#*G,#uAc+8o
x6FNU*>
W\,7^s%[c𘤫>}&6k_»CCL+T'=շܶnխJOH41esU.!\竰b	>{e(BQ	A,{TGWKDQZQ\A!'WDJyI!!U=?%aGU@Y4^4^hr`ad<lq9h9`yvIѠ~|_^˚K:v1PS{ʛ]0	)R5Z@aM	)rxLCkad\I\Ԭx@aN>_+Z5HV/<pb_|i~ے۔֔$<kR,]5[˲VG_;yYEPT-xnJU
f7#Z֙0'}樭[+Fܴt^R­lZw\١"lw6ƅ#gONf VZRv'06~aMxgrd?	y&JLvQ<Y" A
JxgWm_~nqeqIjBbAANfrbIf~^BiqT1s *XPY_ZS\:YC`1+2Z %ohx۫vUug
- 5ox۫Gm_Ɇ, 3Ex۫]rC"̚7Kl"P˥\C⃃}= @Ax.(!isSd&b,98j'? n
7/xQOKA?':-iХ%^6	2ξayb`][,c~4t&Nn2񰌑bt?NQ8grB)-A{i"{mFyoQ)V͓}݂+#4z'f9,x``"- A׎V-3fΗZF"nҬhC71c"y2vMBH]U+@Ԋ#gpH!G5a*[$fci/=sػVu@/}
&a2B@=Z}U O1YJx[JqC>doNYNF zX"x{Jq6dG͑|̕ lCxVoF_1"_	ҫ1TXP0S>Yk{+]www6NȯVEBȻo޾y3u
ɶG?4'{`LoYH0\G
W4GT)	7*s` zqd(
CJ
BC(r0Pw!40HsjRM!MN0 çMD#Ԡ':ղBn*k:7	EA<JLbA$CQ!	PjB $L3')-Ygy]¥^ߐ|wӫ5|W+{v'\Zݵ{?^]@1<ed2qV(mI؈Jh6,6'[
[qK%ǌ 2eTU$,erI^ 9cb=o;f93\e>X$JgVrG]dȼETUdZ=&))iLZ0-(OJ%b..ʇۺ/ʎ|?uA4.sShX<9㨯[7S@Y`%Z@rg4,1]VdJ7 `	iyG_vw<znma|q((ڎ2m:x^ӅGܡ"Twez[)2A5fammg;պjecxzcA~PߒEow;܏l&WIfUouaϸl r	[jנ߯6"~IxJ} M>M&\2n\yhY8_^_&7k/fI8/L>5b2A7}|lnE MY.ڵm3{,{i'm1- Qḻl>xWHeehaplƫǃ~[K1l"īD{5E#OEs{R*kಊ8 x;)vYlC")L''3neƩP?Y[ e
Px;)$!er 5,s 1~xk*!EP93/94%U&$%%5m?f6 %
YCExj@vѮ.%$!nꘀ!5uUAȞLtm@/MЫM$ץ`%};s_>փb$$[29MKǝ:P~xX~o_۟oJ4ֱ}N7qX%s.oPƧD^TŠsmJ^L+""A0	sT CVuܢ`Fpѝ`H5 b&g{Mj4?adJB8Gmv{BRZ/* bK
ZgTI-ץpH6=|sSS?oӦтREkU:	q4ba9	u5@Dt?zŊK&rڭ9EX^w2M
cHSxd_$@gK]*?yt23M09qPk_8J2:;[l_^s4̯$3#<4$@; v؃RtDD}^l?;Xofxk»a wT1h;x{+xGp&G22rmdMa UiEl x#xKpC9Jdf #NxWQo8~WK[K9DT$jI&`9)ENBjtEBxf</YΠ拥' ydtƦ'`
LQ]"rOҁ?Q$\pRӯ.FbBabp`nKH*I~SEi|bed!Y%Sg>Kk_z0p+JSӽ	q4<+;)W5< ))U֠4FZ%rQ]3.Lʍ|^=${Q~EaqAx47q8`2d<p2CoH>kWX`BʔL	xBEZRE^qNP#[fWuV#yԪVE,yϟ+cF|˸DS64>5wnjalQ;(Ԯ;\~ɹΚ>LfzC_7ʛ<pck-SܘmU7MWU!Pŀ2U`Ƿpm<Fqld"0ٙ,><%(숅6<NP<{zN#Kϕp|fd4[َވ(E=JU~ѵ3|h|g3J-Ci:nzpKPDqkIS$	uNV9s;Fl0'_|缾/zaHbJ	`b#RYNXY5;ItdEU#
Wޮ/0!Qz&jh$VF	h"@݈hm@?_.v/M	ԴH1VYcz%q/j}E)ee|<~J7GA$]mt:d^88P%8LTҍiL]0)d8tw%$]nwRRAz4BFXӋb҂F?pTVuA:uC/cvȒ7rFQ٣C/E>h~~NR|PF)2bpBҲWJizVE4tc\!}oimU)hzַT6d+g| ]0'ݣ\mi};xJvd!fͦLWINv-; 
xXQOF~Wr/QD{(UEƂKhlx6:^kB]i`(V3|3;A0ZExtg_Ͼ +>u
7*$B*@9	Q_TH38±UKsmbH2m0	K(Ч
XOWLbxl"(NP!oQSBQ-?Rjqb1HJQ9qFĵB+,RL`5
]M
 NS,[ZAI%ؼP[.bMdd={;xzp6N<va:trxt߾p (28):ti6iA-"^$sZ(Ȃ?RaDS2*PIXQN\hpt4&/H*!J*,ꋹ`4zXFeYT4"s Ǌ
]"\XdH~F4U9Đ("PxeTR[$l.X#;[%S0j2HZ*<,ajmxVB%wCv_X)`y3Ⱦ3{їں )B
IV6m~' ph">74Y2}	=0smb5ȅU4L\iTبKgӟdnjda^3;o15+{MupCB]ӧJVB$x:;%[1tYD/a6L5RJU +-Uǃ9*-yˏfbgZձdxT%UHBBX;4NM_K*Ue᭩XȒfG"G57#h[*2Nu3aӑ-:q7\שMkfEqj*9_a3;Nvǻ캷e%_;qtIn<\kei}Œ)ǆamz5TifʟNnڸHv߬z؃cz|'w?]׎˴ѹA9"9||f:^"&N>}lY<grgw<s9cR:㜓 ;9Tƥ.[cmX>K;G7M*f"mkӳsǭ??*ݓNآf`Ѻʩkv(;Zex-#3z?@Z/F͵ՕYxrLpvL%!\_6y`>op ;<x t'&,`param request http request packet.
 * @param response http response packet.
 * @param isModifiedh(.qA9H;0lVxkQwS56_Oͳy_ hzxkQA-'3I/ns*KOy|]<"7}
 MxWmo6_qp#n0$sH`ۢZ:DdR#);B#E9_ I xwdyM4W|4pn2A7!AЂ;F2DNYHL>\
?xӲ.r L#b S. 4LP7K{qi|>02g j̐?Kc_f0p բ}7G%%}	j
̸"XJIlN&lR[(9#mhShD\癩qVHȫиpҀ߯'Ép:뇇t؟zp:#\pt$(>"4e'bYSyC&[ , DZqmUՔ`d$|3nh>;k7W,\( hG7쩾+1[ꢨڥfuJ;됥0ɵUt<*$'lchnqk_oʕ]Qn3nCI%|ʉփnl6R=rs<&ctz?G.0"_0ژ"`D33ybPY&gdHk9ǯ2C.Q2P[Te)49bU%mL3.k/I譆x0s"?|<zaS2/*NSjk^lmQJY	NQOȄ%Bʸ*V<&8lpyuTK03!u w]6TJ :NggZJ4l3+e!~ixZt^
:\2MG}ı؝aًdǂox|Cl=8ݒ(ntwN3\׾G],Im7=F[a*~ 0wf%jzԢHo\A}`Γܬ٧8DP:28bZ	Q[oYQf^7?NS`eknkA#CAwUWa$Ȇk4:Mec~
_RSz$s;~LMBa WwӃStj

).;	#i%D\aN`ꜴWG3%!ȥw0Mtk>ITDno5l@UzȏVw*/MJ%dxo۵W1W//\xQ:*BFjbJjQBj^JByfIB^iNɺ<R]&UbSY> Jx;4AqI̛7fgܬϸّq.yM';LWiB~Y'1  i+	x<kSȖ+7	2MݪQl\2-AYN9Z6&wjVޝa''4[]b7߈uSXpvWI%+HY p~oN٭H {O6.ؚoY2
Bĳ/u<  <

q`ċrke.d<{߽l6g>w\:p
DM(YREË-	SS1I<OYOYY"L@j<bGΔG3MId{hd;e	댆ݞkطް{H$E )BHXŒ,~
|`-/`H#%"]j5&Aszd޽y$_.>E"r?󿔨XXq?KsƽT|` :^!Y&r񾎏	0Q|OW %9~^0ʠLs,RnA, gCo[K:6fXw A۳N^
6MKY%XWlzϽ;y˒\?IXd>Q-Y)Ś"S#\`8Oxpvh*I8ǎw3Cv~둢D#zuqqX/dW')XzƲ"I4Wh89 Oɭ;g}̲n}dT"MxävQ&?iځA 0o ~%IYߛjv81V cg\xq'7dϛ"ӀNbԼ{n\XPR
l!zaiO=m!"{eUK88lx4|<yΨB_=0X٤bs$𴁲7uCa<dΞ!wlE.I{0^!܃;8 ௔! ݎҞDl&qdY֙!ɺq;jRsA-RpVwq:w:V&VKP zVh!ZBkkҢ([AUr
i
.j5"sk,V6PEO)+C]H%,(>顔9Ș.,%a̗lE$5C͸?rq"""(},1J5I^6Gcw8: y<*rLk0t0s=N^ ld`-"ɟ8Xν*x?b<RJ
ת4ao,uzf70De^J.-V2f7#1tAo=ʔt| Fl26y7/ݶA	XsDXaޔBN0 ]w
ǼO2/ 1Dkku@48 ^ZjWB$؂<.w!mo@)V	,k!M7:<ߖy(@J~T,84gY;.d༄*tO/ONnJynߙ|}!|DȪNҽBu%7!-d]"b7^;Y}ty,c}hT`ao2X㎤2grhWq5Uf2GKE]yZ\Vwfލ;1{.-Q`ȉ渪p<hcUuG7$~B,zM;a}tGiU։Tk^ԭgkߨlv~r}Հc,nvb{oj -d|*<|_u ݅SՖ2RMw`h#(o!#mHWrf')ϒSvP͢
j{<p0B{iL۷CʝWĂéfY+SkWՌLSy`P:޼s3u0|(> F@-DM@`4vB<N%tnJҰ	a-+q/xBby,uI[qnX'1Hcsc 4%αESSםC	Nm4,̲Nw#'`f98i	,Plڧaxkme(j'?+KXlSШ4_3'*4@Z҃C"{)Z[4/AعaIPMU2)UDv@=@K)Ƞ Yx~UDԒ_zݮ;$"`A^\0co7b~/cEҙLd<ض)]\ZROfq `n"-sE\Ж$Wj&OΌ)sBفH5%1p.nzO3LefL4P۞#~0!'ȧ5F{hm'0>'#RUGsZ36:Xie
&ۦJ]jyЌaSTb١V$7:+li<f1d(H"Ǔ]P(kP;"y[j3
b4(C"Z?N1Yv肌y[h3kTٶ)}ilh%5حxwv-U q#-<ǃ㲄g,E+ª#I-DZ)gf؛0&LjTngU6,/ϛ(xͧeD59]ו:jhJX2R?㾋ٙlQ@
@7toVꨩ<EzZ66Bݹ#BN-Hxـ9sr3Drj*ڴ/f*-J^WjJ2Z.Q7O4`t9s?K:J2Fbj-ԭx\rUOb	ŕ;j\_ݥo'Ue0;Y
 p1Ϛ/jE욯r]8r% Cx*mFZmD)Ab.ѼǒP9+2Y尠۝w{@i#S6m)!|^sǿGl,т#Sەf݃#8jZAWUPo\ˎX-_PMˎQ䥠R>n ?ۉN"(q<?w .~v@w~
unؑ`7CRЀchC	/ҖkF~~v^RP[~>?-h_vQ[}&{uG@Q1PZxJjDם\ڥS)n4E7t[O]PƝea!XkFyH-:tOd?!WGD
.|'o,Q8P<R	*=<jq<ݖVJQ M9B ^ͺ-Ѭ&:-,yh0}c	#oqX~'J·+h*h<
VT"r"GI+=<XITf#nʑoqRS>s,AUk3HmPSirYk<-%&q@kGyymTu
_A%=<k6PC;U:"m&ĂB^XUr=l .bX;z@/QgAUcyg6F-&/L 5_aCJW܋;69h-r 53p{*Av-E]X#s^*wOJ.ag(=$坥kYZRiXNŶ~%M9feIM8ch:%ZMBf%" i`x{KU`ّ9iȡL+`Gn#ӫ5^*E+.'@(?[iM 4sOyYu6-.?zwLT_@Oewӣ5,p@-}yE!^AݔOE|BsYY[\9۸%rzK9E۽"%YKah^8
D5;ErڤACt{D!N]Qmr@5]Gj̡]NI86hߤ';GRղe![ܜ	ɍS@Zr4|+c&%xϓk<a54 ̲-~RuJXYsY^Ma}ZD`tu9ZnVeAL;h^0RQwɨQ
(*KCh\~TJZ	if=U&X8U-</_y 8; 8
%YNV5ĭ(ߍЋw1Wo{6e?P/m&7Z:o&eBԪ 4L@7'3cPh4-O1ZfmiuMO>WG.fIDY$VZ=X˭ͦ<Hap}7y.y!oEؐӥuдv#n%Y@DV]h;.S./Z>珂N8d`41k3jYUׂm=:7aQ-&;.1y`y7s3`-4]jӳ
ƦMKd	I^NON4Mǟ(.ajJyoENHdO|h$GfR;޲$j/n.QX+QLr$֑py?6#ULWbG%K0d-e.K?B\ZA:UvU*]URe
ʈWLc#*zM!E9. QR%ZڄLy~e/kCW)&A`ک)#HɾQ]Uƻ =ފB;%RYQ`INOx*v)['X=NMՎyRZ3ޡ,{hM6:ɷwVhqnDw:PH@T;:ŷWE(~[%$}sL_Ѻмb1]^F\nCȍwbR.V;Tp@N ]e**%Vs<_@ʟʹƴ!%t07dڐ^&ۚ%}nwX~|E`|7L#x[:dUsJSRlKR2J2츔3RRӀbo3r oZxO V#"@F7 SATISFIABLE "size_t the lC!4DF
<t^x:qD8rRK2|6u` sfxmIlU,,[i6/YmHSgjiƞD3$ԑLQD.P'D*A#DHVp*DU ā#$P!]*y;ޛy7mME5&S52;?2W+Bb*7~0ڪQP3P"GMRnl6H7GYQX(r$Y8-Hr>{'~Y8G|zv>j
Dr^TgSu.4/1reF.~TD	2?d
rȯ׿h1ò"0H6Lb`׆C$V`,
G{7<xHX\nV#&;D$qB%P(
bNQSf;f'69ȵ8aYQY)0a=-	mxҒs^JrN0g¦Ɏ&ӄY?M7EYĺW0|g^,n"\l9kSvݎf6GТb 0!!lXmtgpĶOm>}aK;|ܑs۝1
ak	ǩ딂_Hﻄx$
Pz*YVo]}!)ruⷾbr|ϔ:<Šۮ㥪;XX# {z!zq#&mEfi?xòLrdLʼN=(^rLX*2=Ʃjj%(TS+ˉJT*zJCKF4bX:3QQbێ3E/BዼW|>W	|p|>\#}nE]TT켪4Q3(B~SC;lT:~rkslgީ3|x/ OIOUEST<MET w%?CE
z<x=[HSq pѳٜ~q,J$YehE麨Yq.XF!L!(R=T VPPQdm}ι;-^_+x$	~V6
,X5WBU8:F)|>eejYyS,<T1V3Lz\{@h:Qw4;Q?4PTlV#ӨUQWΑHzaV߄k_tP JJ!7CyϲIɡЛJ#jȸ	5mPvT1ΛCWs+ur
U$Po-ha
.TQ!;u`yB58QEwї׵^K
*rS-m{/MLny_˒oŀT0;,,vEX88Z_K	*ժ_%˞ǰi\41`'4_*Zޖ
<ÿE6tɘcN )oWD>xxq\Ʌr:K0 Ofxq+Et	[8
!`#Ls`چL\`z2LsY`ڐ
<!`:7L_M^|wlӼ.`:? LӶ~`z Dw0-h74 nV8#xukAidsӭMHZhl;fg*)x</W[/޵o'xSWq给$4۳^rpv[p>;2Os>7⋅;D 2ݷ
1t`{[ i(ғv ,0nhj@zX"(/Mq-1Dɕ҇J?*o+.'K	$=D|NҵeEFC!|1?)ǦO"!'0~odU  baT
	pX	WɱK8vJ$V;jZjSKjzZwEt0#Jikstdf1{ 4خw[
/?~M7;iK2 GBN6h1w IHLE{,!Pdet,}h鯵n	PK_3e#>^ZOL? ~ ux{1D\'Ӿ"9`zH<QDm'ec|A4,k&f	~4q;0XL? irC]#"l'\#VxJI0.0}_loT$Ij Ε/}2`ZFLϓbr=`z\VOU`rQY.G\?~0}GOSћ)R cd`x}MhAǩ4_W4iHm*-d'ͦtvZARKAX#ă_'AЃo<xPA"֍oo޼ߗn-w=}m%V؝iQ|X?fRdId5"C<%ؼg= 6y<	R\GUʊ$#lӰkV
BömOcc^u;7툶BM뎸!\5xN9z񵪌qW tMp2\dTdlr5W.c%.<̻.JD룄Q,	dv.wB͐g4H(Par=cm]@vI}
P("`{(%qT$n.-@-aivN//͊ygg8PyDIdŚ1;Oz9S_stTRjΎyP}Ρ͜)/B8"G`22ľL*xZl+W&H˖Hl\0ww//KkC(Rt?p#: VbcWq^ۃ8#/H|J(5x1K}RRW=q2>",f3Nd )
%x2DTD=BB]\\=}=}"'R!fjffɻ5ts0ͭu5{84X䝚$S 4Rcx>D;U&R,JV {	"x2Df<!~A.A!~96gL6aþK!K xXo"7~\-WUNAG!bI{B,Bht{^gYB.Vj`7ߌp7NwOpU5r'HLS(D
~\
é]Sw,`6 B#f<Cs\@"yƙ knΎu0ZH Y}!0CKjYn9\ۃ~Fj
(JXLflR+9#kh93kЪI6ǅEPcQ>u~ԲJnn;qg8"!I4~/aHϕM,3!0K:ǄxBysB%("Q-Y`jd|3nh/.kh`؛Lo{Qj 7N"ɊeI0O9h3KFΕ,rhaɝ'\5й
[#ܡ02-2
jn9yq^V4d|X;ebz!:ȼx-K7:a9Dmpcq	B\kSSuslrMe4ɳBo1a'(R>ۂSq*CqSݎSd}>U9SlI53dY 
ذWh@~!e _4IX$$a+=US:F1:W=$x^
zMS%Ua<	t$#oŬoǗr!u}IoL~;YR%ӊIt䰯/SzES&GZs$,:Jׄ;i}R~4-m\PZ:ISo7@OO:w={u0MHF5L%"mC,/DR#}΂Ta3%BZ*!4wQ=wCX]\ZQF}΄eWuvkTH2pkw}{Uk˳=YnɰVu;1%SpF9pm\OO>":AA3%?Dh+IGŜn%Kro,G=G:+ĩ?Ӛ.Gճ[.y?`;9en~Ƙ!F7t`:iY(JcN?(96\IU	!eIxvUi3KyjRd)jc&_vf_jIy~Qwfzc's'gn^R!Ǧ;*&HHqIQirBxjR0HU""dvI8']yQ'aFP_brG'RZH6&d(%#51%h8W<؜͂qr#@7nf!^|2=S'_@2B@V&3
BLg
aQktkwI˯@}V ]R0^x6Se3KyjRd)jc&sX!ɪ, XJ!rl2k&(CU(hM^)-ҀIMa`|P@~899Rʓ
HcJa¥"{#98:NrwLIHMLI-t\rNfj^L<D_~Jdqx' &/4mx);ho Xh|pj^
Ʃ|哯Y4]Os'3
Bg
1_PᔳB. n\hxv@u?ɱBUY.Lʬ	XMyIo'n9v ;gx6Am0 
Afx$ ""PJ\YP?l3x4Wi3f6)n x\iC"L9r6[T3&NN`U[E_KKVAKK95/%3MA__5$>) dnx2Ied6-xԒ$sNfj^Is~^qIQirI~HnQP60S=Ƭe27`gd:L.MfƩ $K2o^i󸃀rQnJE򺠈>6Y\\J.@Wj@qEA Tl0xҧam1 !x4 $"<Y"g		yBkdBx۬tHiC&G|xjR\0|%?q!,,6y*l;@4 d"nHx;tHiC/cr +tUx;Cyd6S&3MV`g|-L+ؕ6W x;zPu7L^?s"n9vF. 
xWmo6_qH+'Y-
DuFHb~iO-Q6YHʎWd1aG^xly-ә;8?=
.BD&ܘ'iC\qrO҄o\i!38O-	K'>,`VIChHDʁ?D<7 2<ORSjn(uȉa(pCoɦ 0$=3&j-KYg}ԉMtpa\kPB(vC)[T㚑R	#iL̒)NjblrNA|W~u/atuؽll+ I7|˅D:t#C˦rWF9WsIM*0c?EZgyȩE_XtOezw242%x,J.D5wMZR~2m!5si<wٶ!y{ị+Nf"ngƷXFf.U ta1:nEqa
% WT;#%_^id5BB[m
c/͇#5GAjgd34L)"=D¬Ô"xM>Z|rbZ!&T/_K+~/\Lka,V:b9lpmW9V)oDOFvgо\n:/Ak7^=\on_5#w15GyZhk,	lY,FyNV̹R@>:[љU GOrp\9m+>S&Ψ}yUa7hokWfa	s8vIA'mUfArUmx!kޚ/3xTPK'VΘ!tM8͈#\Wφ"Q1Vr
׹\~h*kg8k6īn	鵽'c1ȑAWϛ3D~ƕI:^
*G_:df0.RCC5MqVE`pbsmǇ;L?V;5KYNu߂pzUҔ|R&.gް3F)>/gs,Vkt?o|$Xźwil5-tGR)}Ѻ<1\(qg9ut4#iR'PdO؈KeŹ[hԺlyec@1"pIk9b="6b:6	lmCy	Ś7ljÃNVoFRqqqzր˺#y6Ħ:bBäH@xZ][BD⁒0f$\;[ڂl| 2nzP&#F7}%2MR3v ^^QHcMiZ ˕U`qu`$u2Za|ph 9⑼c;3x^eD͓Xr'e,Ħ8ق=e~N88&f?e)䯟ϵHn^8fm^~ɝ<n&/P|\`+# #xSe9fv&ɝ<n6/ }	?xk $#e/VNil-	
	%Yr쓁.p`gforeground,
 *NT"3~}(59x+DQC6D)$ʘ)łX(JHw;ی{_=$e+WY))YHΝ_r{n}?~Z 	"ff!ylGc}wwjq		sqcA
|@i*؍"8 ^[*2c7s-2c {#SK/$GHL!=LRcf><t`_鬐[cZYV1w0/
F2u*mjM3r`F33͗4zAAڲ|\:'Ff;	#8J
ɫmR1ǫrx<{\I+N8	#yJ(wy~2X&I,YcHWVH:dVpGXd}p=Eu4GL99x{rUe9ɗؒ'1sps)f/vn͑['(py32%7g2'OVWH/JM//K,<y@5X`# d2llxrEeCB' %,75x)Rb5&Fיb'|;ٴ'ǰoN` 
nP`hy%#;y%h: lNx[)1Q|k˘"xWQOH~WE9]""P%ЪO'+]:=HKoffv=!t9_88He%jpK >\4`()T*En0,EB_N>R+xzVv

р*CZd	De.ti||	2()pe4Εu]jWb2HwF*Gk4p܀(T"b17H{N3H'ռVgM*32ܖf+&T
zgN7׷7e8'7070|HQ/g@4%mg[2R%&2	敘#DSHUD0e7,/=ɋ^SNύJ7~NHK ShJn_IJ%H.M|IN+8ΡDBh4D,3.X7qv3u=~%D0kbD\&Օ0{iE<u6yH̫(ZW;<óro@R8rJk8yX鹦Ĉރx"D.:bzkJaDd!qޢ^^> 6seğ֏AW	,UBzA|2npWiVVm""4Zvv|)F\n-5 Г_x|T[:#u(PS-;vc{-1VRʹS$fK*cPg}E@h&Z?#Y+OTEK_
:?2Ѝ 2#'
bM|*yM.`. 9f6IZ׿ACNن^PP_	q/X-$.BgmZ1i;v;ަm+{T7w>|d	ۗtg^h9pOO9\7'wEmg~hǽ7wik^3]>ggGNHLxUMo8W:W
[q8nѓAQ#$wHɶ줋"yN.`sYJd1w`Yp'8R@0G.V*	*A&GՌӣߙ?0v~kthPIV#a(cm@TeYUT&uzO[!c(QBMo0P~1_a4M<@,,P>FO"'}
BQq&RD`H,SH{F:ҍFTLM:DhDl͉f{0Tcfk#8[Gmll-7V0ZEiIo-hy7$Ũ>u@4S\#PHeGIE*8Veeܡ#QBSD0q0(a/
/.W%bk?{oc%0JDf#CpF>EIE*O$|A2NtRt!bTKiLh7[qᢐVFIR9ajB6XVQrXbu.;3ur)RR.=o|>ޯ.*|k*^؄˴5n)2GG]:
B^7U #-7V4j	H|Fn]ACgeU	M鵯(n9Π{<"xG&gfވ9VlI=iݍJaw[b)	Cai"֕`c;W[MK% /-mw
I
V}yz-'CaD:
=.OaRRy.F񩣽[ίsͤ0x4nmhw;l@ MmJ:gCN]ӥM:vn>J9www(K2o9J$Q 7 l#ƜybM.x&o?(dIjt(7=jW&q;tq45#_"L!ߺ&p/ xx{.x]pX8`2ے' 	X&xmQ*DA6ዒ*HDpٙ53g#GP"\.۳l4̯߿}ak)YlЙ^Z`CCh`rh6y)"cfĈ޴{!IcBZKHGfҕ͑rDmP[s{åJp	|`7|8ec9i-ޝ$5űt8DJsD	<̒4Cb0CE,I400`ڪZ)"Ԋgr<0IH%r"JTw0!wK҆
]Zljy~#+,bCȂ*@ɩNk#W&y-2˾tsM%8iϐu--XKxmJBA"?B%4)l!JBQ3rgdA%ZԪg}D+)97ϕΓg+ı}w	0p<.=^6qj]]{睶WnNH?8BM.)[r֍%`>!48Ubx2#,P1">%>387Y(ia?[A_E~ BH"'%H6m*]tv=#P=LLP8urqô&r4
(PDa\nJtzx~d/jjrHKٍ+mPVeV%}n.J& ˛ x˳g;ɟY7[21 <x3gC)[PC532S2SR܀
<&aҝl=9Yn2770s)d)5;{pkͮU !L{x{C팓Y&d SxVS6~؁`q7}u:1$\o):֜#$9&+DZ~߷]w\X5=89>yQΕD2#iWP-_
Iv':e4ǰ{v0P9$A
|XzP!N%0d.@I!OlϽ^]ױcc1uz|~DCu΁ůD8Y(		A-DƂZ=otmWz3Ev*J*"1jBn.;4xQnx>nφwÛkuax}bJb5qBfHD2%Vb05sAvgjai"MZSpq1k2&VaU. C/MBxs5LaL竾P؀fBiPvAd,>#v&l|Q.*-EaQ@'E	8P=%P~ЙR*0`Ӕ=nY`<!vrGJ:eQ8&q_8qYZaR()t\(:SEehg{&3	͍JĿ_<(<MJaZꔮZc&}e5G*.PY'dRyOtiBSͬpB:7qBL{ҭ7QKЂ⚎27_XkZ]:*lx]:Go^!(zğM!^XV{dPVj|+%C90|:hyє7`iC,IJO&Y4B?3aXKAA{n2>ga^i;(y%2+C(KU3EN{>K;?vGW8ǐ]8E9#7w?CM_ZJ2Y7C(E	PE`)_z.9AJsiKu7ب(X.YAE=F)C$j\vBeC/V62_"]ƚHJy/flٜճbIÛP?3Լ煄i۬8N~(ͺ:l9DۤSHPG%|OFM.ΏKYh5:jCޖ'+Qȿٷlx{/sKznFGX9`2s$;$;4Tb⒢k.j]Cx&GEP(*SHK)Fm lfr	/H-J,S(.MNNMM0y\&q312dn屠~F. Y;x{/QfcfL}87{p3 zb:x{/3UfC)AZQ	C532SҀ
Ee)
zM&/aQׂhHIU/˘,Ƭ4,$fVN
eEřy
z@e
KSKS23sJSRJ*RSR&c[2Q$<y {(MfM?]i:^vƢoYpMfb-.I,*Tu*Sv5"sعє,awcO+)ϙ]mr1LK,]ĭ.=gB1%
%E
@)wA&W6bq0j [[#xQJAD#cU]$$atgڡufG#": sA;=AзI$ߟo>^NkBPƁc&ZDb8vb?{}r66Z1fm!7XHs0!o?Cst,_C[\HnH:=r▱.$%(czfsC}Xi&PJZKǘPMpb@A'I8}cH詌3hˢ}{[i	nEϾg/E֬<,꺥\,ꩯ	xr5h}<)ox%}o&֒Ԣ'dL+B<}]=SR2R܂B<R70ORHSHK+*Q(/N-R"Ģ\bϼĒbT`40L,Q(*ʃl|q-n[)@|qIbQȒxy% S'zPy|يKS'_Y_nl^=!XkU q{x}AKAMw!A@3IYHѮaΰCNΌJFPtЭS@! N̼i-<Nm7;g.vWS#ڂOؐHhj |%.V]Q8Xe"7wJ*cđHy.[A<H!b(~CF)h9v2X1!C	'VD`@ﴍ,ӇgfJNWBIpjW 2fw<VGsV9FrŮ,<fX9K=
vᰐ}0rxɹSV;J_EWx}AJ1i |s2PrL;	'-V(BνW$/{_6^/n
-ޛc)P zA^[sR!n:	6LXyfgL΢V-uY !Y6>Id3nbhjP"6TQ	-g3qEԚJF&},xYwi"sxQY#mmDHֽ\azź_/[{/ñY߷E&(N0:ʣ.{x*CzC"SXT&g2 
Ax/}Ez^fC⒔;.̼ҔTʂ4%$7q ̃kx!]zC";L74s [x!EjC"\f?̒<ĢĤs''25o6ei eDx!=SzC";L&1M^59y)K3' 
x.Iz CRQfjKjZf^jBIFBZZQBN~~BIeAXUqf^re' [lOx$UzfK $8Ix"Ljz& >l.x)\bC"l\  \ ExN=K1FBqr奇G97,T7R:K[!()W] n'v}4MpE SbtZm*5^'ÝR$F9x29i~;w,qe\aaXyo3}~>Tc=fȎF>1lU"|_W. Wwo?^~yM"бRxqZ?veoyկ	pK0.oY@x)=Izd=tn-n}`bD:GVxxK2R

)%@u) %3&rM&3fE]C4<4l@0m%'G0Bx؏dd&gLᐞ|c976kp:2u+sAtme8d&Aymq8;
 OXxAJAE12'YIq	:=NNW]m\Ƌ<[k΀ n/V.r(aP 6Ђ-9buRca>OZ!Gҫ5&`2١~j$o-
1sP$do7vxC
ӱ J#4yhu(jOǳ#x}<N f~9x{.1EjC"SCbJJI~zQ~i[ZQ	XHIEi
i@q̔b b=\ĂĤ̜̒JҢԔҜT=zE mٙ%
ny%yn9Ay%ޙ7g%*mf ?:*x"PzCZfNBN~~^;LJ`4ĢbT̒<Ģ$̼Ԣd<gɋ'rncf ^!Vlqx{(}Tz}Ϳq )RTx{¿>Cvf[i^rIf~[N~yPi^IfnwfL, KQ
5xkoisLÙuY Gwlxkopi,  xko<ٚYe2?(f] 9ax$oG&3.}--.-̜T" X,(35M%59'(X$b*snrfZ^
P-($139>5(ރK(U*3/94%U$%)??G/Î!TRYԮ4ْKͥ<(;
s
<R2K2KJϨ0ٗ{_\XTVT_2b2Ox HV!?O$@Nn7Y_fزx|BFb^JN5r*Ж4 7)
Ex[ȿ)-(KAKHIEi
Ee)
n@

z0%řyɩ
F@>D4-3'U$37H/cpf<̲&`6Yl(cf{y&,	]RNKLSן|YhC-l $,7xkȷys_ͳY3' \xZn7}W΋lRE]nNcP\ܐ\jɽiWWmQT/\SғRԐVpB_Eޥt8bs0i[vp-B)b\&4?IRk	[)%ҐT35x{
Xb$$T7SKfeȱ0E剄35&],jH5n{w30/z1Ӛ(%
/	MԘ.TNgF622	6SS,3</O Ԩ Ǘ/A|}xOw|'wWa|!w6aaOBLh2*&DҙtDΙIq|5v*uO-4(&~h~0_gY9H\םlH7R-e,eiUb_[TDc>VT-q)}IErq
g=7ΤhBKmجei*PӘunPjO:2xG\d}ǣ+5=e",6qZ3k[c`́(Nc3}R0b]_ifݼ]Vvz
!/-< ldF^5|ˀKVH o zΥ'Tљ!c'rsIa{e5P̤J{G?;if*D2$&	eayTPIkuМZKNv\6@Զ^]^GHAW`A皇yw'8~b_nK+Jɶ_ Ƞκ?-;IIןn_Ă	ǃLs\f!,3<Ǩ-\jH7dYd磶&1Ҳ
8&c8Ap	AEe>ySF.2T?=h~z`7_Îl`A۰/<(wH3"q<#|E:PJZ쉛XC}>3gKx|*dc6s.+ړ
9s 39[]e4e\|m  	BZxCy(QP㑼8;!s	Dʢs
 ;iEz>9tZYO/L{m 4v&γaHnPY,^1T]L$-y{SZ_-?.	hYu񻭶᠆FW&lci;Slzt(rh+.>ge{#úTAgR5vrNE4H0I{֖ڲ>BR\-m5edvGOR:K*nڭ<P%{N.n~kJgJSW ņ}讔O~Y"陗"
8iR 3hsg dLrZ-;)Ul¡M2UMjj81\Qb_V=o QPo[x`'E[PiWʷ5s·u
 Y!`C"Ysq4moc_Pe/jvʁP4q)>q/(B,!jΰkefN YH|"}o@&k}BZUP'+|:)q-vىooLf0q1%6gEČ4i#S(ptgz`V+=`wƾ2T aQ(\=XB3ygW\Q:E_
9qV&VwJ%dS$紀]b#!5-:w	zyVͬ
hyXU	]F!؛p窄2n0Uqv!v>Qj|g\?Ha&FCUl?TyL,>-3VLv 渖%+pǶE뻞{yrF[;ڻꑩ֥zꓽ߼\,Q=$ޙo`cŹW(nw*?@'bx{{Afn⒔ۙ&d5R*]*C2R''*m~2ّ}|ܓqjm^WQ3/%39$X17"34W!9?/(5/R!?,UXZ:YcfFՂK'oRA`r"~sER'EvIj{%Q%_O!':fclX(lvU:8YFE+ǡX9(
r@^S(/N-+TL +ntnx{gcf/9) 0!x{sh}|ܓqjm^y2͜ dLx{3g}|ܓqjm^sB \X	mx{g}|ܓqjm^s='5=12~r`>H~5X֘[|r>?OR~~Lf6{Ejd͓D'xs6K 2lZGxR͊AFUqR/5.l$,2]i=O9 	|x<
{DOCW/ޯ;rJ\T smidhܨshÃ7LcenՔ hL w2\I@ɀ[Ǯ.I&H،402|,MH0Dm:pG5hj5a6.hZ;.xV3t&P9T'tFK3A(]Ճ U%ZCWoNO@OPB8A#(Ii4h2N5oxW6nXVͅPEYcؔ__vgx)Yb,XEdBeџ_?a,CTPi6F3.DDИ6QZ%<1eֱ{йq%Zش݃0Qz_U:M,rRgim宷]oν'~whgW)wa݅EE~3
3oxno KAKHIEi
i@q̔b b=V0iMf|p2df'AԢ<C=B%)@RJsv Ԣ,
NVc5<C|rsly'sL΃lq.l7p@[*S~SÍ?$13X$#U!0?xr>&:'9DP5ŉM~0ٞ[g3@ 
EE%
ٸY9l^aJ:K3*]37uy"VO+˺hLoMl'59OIm?vǦ>W~	~5%Pƈie0)CpJᝨleFcgDwAJ;as\$ŋ3SCdiIɺZ vCxn@E)jPi
)TQL9Apܨė:Jx.<
}rݵ!4ٝofopʚAe;EY.~}KzVZG"PbvhQϥgo:04!chDD70pv_Z-`[2?quۥ,(yM73NHy|YiVjG:|zԐM؅y<z<+?h	ΝN$7STI!
Z]^gk=M, Vc"{#H8rA\zD̙_<aK7E{}~zs#3axnMyDM9_0z޲3	Fؓ!mz&ڥˉ/_sFL%ӮBG9 0GzwKhZ3C*ÑE;|2}nc͂[|l#\D3͚E?%;'>hS"4gR1b05Fh;.]Sy3Rݿܞm@gN~!x7|y|;X&3Ma߬>mr	3; ^xn@U"X	ǥN
Ŋz $PD #^'+hNWx.p/]iU?+V=jAŶ-ǨOa!Nby6W]a~`gaUkgyxj4mɟgckP/L|UA"\f[!""S ?dA|?W
/X[S˽ŒN;\8毰Ͱuu5uC潋	1RyF1 Dcꭲc0W5pJ;=HpǤMQ8+]r1p'^8
8rt9CvyfJ)|BCsy!C/S*F\N.=}Pzc.EIS4h7i3N*<$p:1BIDI-s(ROV U6jŭJwV(FZ`u0&S^ǥCt(,Rqbs)_>c%#%CHX41u 0eo߬XƜ=M^bAWg}Wpx{%C~G͟'qLҘ0r ~6`<`qOi qԢ"$;"$xdG`-j@-u j$2Px{%RY_w"#Dg Q$kr) şAy''2e>@XĒIIBK_KVpHLI)O//-PpK+*VCLjdfssO83/9U jLIU--IˀdciCYjQqf~H̴47x xx׈xP"3/b0/N唇Z<9d dO. ˛T(L^/=J%e]蓟]2u.`Kt&V#"e),vyN+,^V7S"Љ|XZ\R_))֤yhrj^Jf/ (V_'xjAtkB{R=HM]
-%IXj"fp36'ڷ|OvgmfI=;?s#jx48%!D
`wZ.lmv-[iD@t]NHr-G TqiY-*Ѹ其iѐs <o[QoZ(TkjDG}=Ճ:2Uò$'Bl0F*<e'nWtS0I0O3!LRmN/@N%V*cI
Pg3*k?\3u>vuԦחhj[o{;)`1Ճ9;^N:j8xrj
(`kEQE7X	OV&$T0>6jE0g}d.[hI%[wx; u@r&F3Zl\)ld527ك{0	N9Y\ r> )lNx; y@r8F< ,#x!?[iC)[PC532S2SR܀
<&aҝl89Yn27"Ǚ'e6HT--IPH,))L*-\3G&:ٞː->3,1grW,%
%
%
i
Xq<d(bҜ~\J;l2l@ by@
y%E
E\
 r	K@făB/B	%RK3RA8NngRt'ҿpNgt,o@}٭'OB}G	Z
ơpNIF.38{%#Bd-[0."'k#SRNKzA_⁩/9745"ރK_LkQ':_Gxn@UBqZ5@:A& JPNV8z	șkWȕ#y3pGbwEmyf<?O mj	1xDF.!'S;n}<xR|-^6;<^*qUR7S! &@~O_H.&I2N=ݟ?]^P"VǼ
۔*{$`쐫^<nȼ !F(hauqH=q&*7DSW͔d;4)
{~ǲFu9L1s{EКL2.gGߔ2r/ ,?壌}.Q 0ڄpJ^xuNÜ/+)1G p:Pu!#Ym8`&;vkB=[ Rv0ƺW}V(੽P6b^d2pT<Db*B'M75E)w#heR,'dpfcR<"a$e֯Fs~౧WD0naz8ISYfPAĳ@A4;x[aC>f̼қ9X@ !F83dU>Ǹu6BDU \w6x[.!-(KAKHIEi
Ee)
n@

z0%řyɩ
@>L*͘&2Md#l#F,!lye96Y9Y'\}dQ>3`yoh(d*)䥦++ eS@vIjQZb:cӸSR2'bV GUax됛!ag7V0Nnaެn
asC\יn&| +9x[)\I_k"D#e.wk3s)hM|m&+1Obtg_ ەI(ťd(8$(Ū$TW((/LI-Vp,փ(lS[`h 6^n~ZfNBniIj^X ;D4/$3?-'<4$37;ddMf=f*8)AQLK-($xx׈x.exf^*X0El>Vɩ,֓xNǡ3y;"A'rJON`UnGV9zST4ԜWlpsr'gX貟2Pe9T\G0r 
J+IwR,rj^Jf |)/x[)zBI_k"D#e.wk3s)hM|m&+1Obtg_ ەI(ťd(8$(Ū$TW((/LI-Vp,փ(lS[`h 6^n~ZfNBniIj^H&3Tk8>Ԣ<C=9ʙiy)@'mwqRgbY|,`MNes>9	>ِSzrԬp> ћ¦B9'ؤbŖ4/'?9;5ŚDd(ˡ2?̀SE\h.)ʯ$IM\\ʩy)i\ _w	x[)z}CrfZ^Jj[PHcg<1"h=Xă >> Aby9)
J%zJ¹%XēR2K22rR(*IM-"QXZ
ՐS"%A@5܀i ma"xn@qRE@!85i*$$-H
T>n^+hn	n; <W.bw'-qXo3xW)úmD<F}">ڝ !wKvw;{IQyZZ\7;*嫄zQchMtky<s}DCŦ2uy³֊V@̥v;\8毰M&zj}L݈y@"Q,0ckW&*P|0+?X7+Y~ 	ԕx|.Ex7=^9"gsy-C9!S*WY>EMhw >b|3.n*
bwx7ήlMq%bc
~ʑ9u!N*"<$1F$NalFhB'mIcm"=q*e,WD5S ĴMx!NjTXEL2"k4՚Vg0 Zuc24"Q"g٘uI78P̏HO=5	u<aφ>sgy늯Vћkm(}X{uC=X*YxmMJAcGn!Dƅ
F\rPI
;ݡY\;w33BwUūիNryY
9\"ZfI=XH(bRNZ`X'MtF-HzIR
caK EF~8H,7omlg\#0gaMt2yGY>nP־:lѹHހ\]0?-&tO"xUZ'43֏uYF:Y*5xN0Ǘ`bR K#bLzivuTTCx>.7_ߝza f0=&2-)"`y>"cO!]ʼ*(tpWOmQ]EnICkUd Ai6}	!wPWn؉@:8ޫs5[sWpt!Iy{RAoDr"UY:Rg3G?@w2	,foH޻3iΉCd>|Ł:b7f}Ix%W~aFf8'[`R 	8od3f6g06pb 3 x;!Dd}&Ҽ<ҼT̒2VB8Mx;!ҫkYv8RK3R's:Ney$"_99t[\4>$">'?9{!SB¡y nBf3$Vaލ$EOK TI-x{"DdCIj3oVcc Sx;}%@f^rNiJR~IfnjdcvUtA%^.Լ4 ?1*xDI_k"D#e.wk3s)hM|m&+1Obtg_ ەI(ťd(8$(Ū$TW((/LI-Vp,փ(,inS[`h 1^f~ZfNBr~^JfIf~^|YbQfbRN^H)53EtCRzNȬ1.2PUNiJMIf.(;RIeAj|Jj^ؓCXtvpM>1drOfE9U)֓MtDd6SV\sXM.e$RpL"s9UfpA]DuL^-bOv/x|WWHkO#Ҟ$P=4&4+4r*0q ђx["@~}&Ҽ<ҼT̒  Og6x; @~C
ܓ5&gl oxl$x; X~}w  '2x[I_k"D#e.wk3s)hM|m&+1Obtg_ ەI(ťd(8$(Ū$TW((/LI-Vp,փ(\83/9U ̜TffNEtm
eEřy
z`c&d|YZK*4%UA 5>%5M/C	ldq,xLbJɑڬ=n*X7rj^Jf c~x{{f.⒔̼͗% wM#x=g}&Ҽ<ҼT̒P4x3gCs's3KM$Y l@l$x3g}w!Qx{`KԼ\j. HK+*/,M-M/N-LQU0AJK.-*J+ME(, ֛3s  
(Txjp`+fNfNͽ' Ftxh`}&Ҽ<ҼT̒Da4x{k`CI̪3oVe XSlx{k`}w& ,6xSjADrlHPfQt쪈D$9x4v='gG'A<zU<V0TWUѻƉk}I+ƨƹxCK7[c!vwO
:B4nJtqo$ı0Qt郝	RC@*)p*G6/(\4Cn1v$Wplϕ<5	 {dt.͜VV*0̢)d>="MAdd8xXjp3V#;"/|LI"xN^$AN?
6$[UTf9}}О
xpP;)FBTQثoFVkН,cط*+6xUܧg~nm}-/a2J+ b09hYml_uVV#&K u9`ѳ }
-nx[cf'8f "x[gd=!ɿYy6| O:xVnF}WP@	+D\9y"PZd݋iwvI%V\ٙ3gWLOJ7NGpgA% ¥i/+46#JZ~Gcp< !E<lYR9)Ps%j\BZp&|&DophUslӿi4	e֩6r]Kւ?=7pDdQeR̩@1qUk^xَ"u~@1	 ^rVW+x=Z,FU6]WIʮkx'C@R6ɃMpGV%5/5lV7h$u͖0UKF-wŭO
ң4*yΪʩQ^lXŽzñWF
mF2 #<e?kݐU%n~	k/!iXMJ	^fZjkwU1;yY~gB5/K:-ekn䯂dVyCeoBֱQ_Ǽ&@N|y1ZL'o׫1/ (,sƜ$:a2IFeF{43lo"û*plw9g~"¢߇wтZ+My`*YtBu:o$<+֗$}ρw0]U0nF3Ow7DxvIer.oUx>y_A<1C'7K=t a]"h.~;CD+VߦBD!EɄׇdؘ4r
jr5K*mc:g$Y+Ýe{:+Íub	cQCt>5*+OUW/y5:!MBߡ?f)b/xOAD&j$Qk
<%6QL$he2mffkb4ƿ#;xoΏ]-О&o|w>{엛oLMvS8{W~-p3GZln<έN5#? =\RFT\vR*D oafY,Mn9LL~YxAtZ >$k-Pަu#9 Qt]N6gw1Aht$4HPV1_\gP[{4dMPAq݊co  E-`h5U+*aT]H1zBDͭQ1{{PrNs^am\]Vl٧Y1?k^^M٫:W/K1s<e|t* ̑=d$v(z{rWԤf(v$_⺍cMW~KdCʓ-\ȍ[d0|ƔlYiEtta~lӓbꪍ{hm\;ydGl9q~ZM|޽ov6zOG>?)̲xZKs6W`%d2VcLN\JS VN{wHJ:i_,o 9cGe!;=9K;{
[mi `@3;֍'-'h#dv@٣Wb6s&e!E[&$4L؉['P#QeA-4MtfY;J;Q*j:۫c4:t+#0ihGhjgLiUdL+Ō
k 50VQb+&eDK`-R?|w};d77ݫa]߰yؿo{_ b|5yf
B TLUj59NX݃AO]5h`@j"1[7-9$xX5*Ѝ|6BA{qǺADxyR(ckO},":>>
ői(mm	.$Ҋ)65hn|XO#	;o߀Qe_AATJ/Dczް;x{B'8IQ {mln'ocvۓN)(}n3x\G ntDdv&Zף7';7L+D#x&n"DU"=ѦyGkx6fzj|
:vJ:-i&	5;|DP؀h[̟p}X]X&Q8g%W8ؒ0e(jpsSm)t|9Z,nI&-.vE>zlB 514D>+Sp@UkgiņX؝Y(EZl6^؆'#Dɩ&8bŢӽwxI [T )\Kg07;DZ^@#Yk"Uo(ۀnրsI9:U|/W!kTdcOv]%OhIGRX1=NI	/ǰǖh^[iHBR|9.%<TSBa不rOhNNfAl09Rԗu&ޥze?Top({ o),?U+t[9x~#f'l_-ÝA=,5i[0K6yc4M痌\"/1q'rN)|;14x#nT<"\p3ߊ|槗ܒbt9
Fl
'e >{YJF(Ӥb7(Zx .y	4aYnkXrZپ]e@:+]2k*t'xۘČHPΖ%:=J]ZMZKaj4>])E2&ºU8RsUN]&1S' Al#W%LMי2kpW~T;٭V(QCtCt)=,5#/=^?.P⴫˶ɸ4M&8!Okh_IݨDMuЪQq
*MVlJ?Rk)Oe3!cnL{hCz1p5[O	fQٜ$&?7&ȏD=!*si鹻4@/C@N*!b1K^'lb,$ZF~:\dU< ouZ^h.m,|PT{ѥ*x :[A[X۔juh;X	}vB/LΊ=5oZ]{xTKOQL*VKGb 1Z52dڹc/31]4ĭ5.\1qe\(aB"?Z{s;ܷ3kcoIQXԇ&U*Hт"/(}aF`W(g DRH<(|mO1aehr+*%'<`F"pkEERxv"9N "B!""1=g^92\ayvB:Z{N
Y'4	r*x$ҀT,wdIG${n~O3@E/|wt^OUiy2~t;OrYrn꜀EX~s;|W-4bNfMVPVwp\H9RIÔkޣZPm	"xδf
_:Dgwސj|dYMNz7(OیvI]V#ڤttN}欴jzAgB7j|(}סcc,[Zcw[|"丸޵%e(>gcxap})v(ߙۉV~*+FN.JEfgۍIz{j)4U׺-'袀Ds=64<(\"ˉ&ӛ/QxoA+<
H2ifG{m(jD^fe Tу'O>ԃ^h1=䵞5d/:.y|g~ߝ/.x5M]6`-٭-RfQvI?ѹl6ٯcІZ	B-6Ɇm]fӴu[-q漚>@ҷpjY-Oe4=<˰~wNOmda\etk`jmӨ@VUnԠpcC-NA]̋U4!gǂCw:LPbmlt]|<bCTnF32|:F(;=2?9rC\^F^T /W-0*'gܗn3Y7Jx+&
^K1JЭ)lv.w!؋	]GGԴ?XN(|[y6uI94n%<[^ˮYE{, A#qxdfC)S[PC532S2SR܀
<`J3S}..}-hZfNBIbq^dUfcI`NfRQbQNK+*ѫ+ΟƬ49l1fͿ9J2RsS'Ou{jIhdɿy&`{*-N-RKMMW+ڟYd%&OȾw$ΰO92ȕXP	{0:&<9
22K*Ey#dMNU\PY1dV34GP~>ub`B7/>陗\XZ<PR-'HZM~3|NT
r&H{\&OH`WG|<0C=@Ps Ôx}PJ@PcشP7PQ
^54ū9z7Pz77|Q2LrXӗL =t9mvqOO,|ʛXPىlKYTQQղi`B̅?ֵCOnb<Ͱ5.9%않79Sj:	jK/AlavKfÏvr)PQ?v|
Y[B_3Uyȉ DLL͊C$$Ka&ُX<LwaojT%KHr==0"DJfɘP khxdhC<uܛ96Ks1 _)V:xŒjALFDfvٹ3F	YNnWݞ.R]O&g'gYqU=0B`63sW{>>|V?X
iIm UǲQa\'P&P>[J2,?*5F
MbC&$솱$o%$&aBan'/O^FdXJ`~pv.ŊmdnZL6b5ևgtF"f_BϢ0YvhQ8Qݲ_P]u2}bMםI^ɑ+#SWkk%%ߦǍ,@b`RJhfZ#Wkb\~/UUr/чktͶv,鶴]w.Inֿ0OuZnmy}>|+Z^xkqfMpE 20zxVoEH
Icǎ	n븶AiR*V7lITU%N !*JHHwzHS1wmxwޛs3BABjڤM`|>EhMsl6<oK09G;-R%*"z>IePF6MӀ@W%ɋUƲ¤=Sc:7uڇB%U䲛ttyi}{8~01|^_2YX4:~_4,+Ea֕t4W$oJsh
Nx7ت#rD6vg3.qۦ"&mC)1D2ZmyҢ/W"q<̹3 eB*A,⢋+}<-=ԑRlg8X[MH^+>.=L.d|ۼ`hR#T`.JBp?+Wy$<
tf(8lQw(+c%0{>}jKѳ~σ2(~x}R`ʆ$l
fiUS.x&qDQf'^֫lh`YHã|6
=k,GRfGr8nv.py?,6WZLˈxu;<^gxQs銣c{\aa̋vmZ˼]8 Fg] SN&s[U!(Lg+q
]_'5:G.բ}pհg~;XT].dfql5%*vxshubmB ҈Ǳ8ZIU 1H]Xk6,a*F[gi<xIM<J&_Cm_ھTtYP5uUDU"+6[||@Si{J/,_nMz߽vw.ŗrRQ޻-oߔ7dkv4k;xlpCd^Y5  x[opLɁ|bL/~hr s	S6#xoPEIS"5$NPIPRTZRZ~dֵSȆ!!@e,L,<EmՁ"`=>w߻8g߾k3O7	>,<`^%,\[Z#7IZ:*huZ[[-k?;
G*ZcDKe&8T(ꨂpsL\IC+Q*<!wc!=桒tO_G{]Q Bd>S)}kuhd2_==1Ju焝sp]'`KҎ1G3cv%u>3ƒ$aK}p }2.P9RX"l0#B7_jm*Ea>HK5U>ˇ#0>z#?ƠUTy2K:MNbuZ)֬0	nxopC>ULy$d&DHvr	099f]N!F.b0gx79HqIn~"$EWğPSbCqf^r佒I 808`xljdV,r$&g+gVMc2 ҩ
y)ɉ%
%
%@yTҼbʒɁz'Nn`VR8[X( Ǉj>pYK 'ŧ#Lט<ADo32tf^rQjbqBQjZjQj^rBr~i^B~"ғŮRKJ[y)9
Ey9&XWbl_VT8cvqrb#6ks1 X&h$xltVY_w"#Dg Q$kr) şAy''2e>@XĒIIBK_KVpHLI)O//-PpK+*VCLjdfs3O83/9U jLIU(I,ˀh`eiCYjQqf~>,%˥TSTRYdaحzD&L"ki#3&J$e)+$l\VS"Mϗ7YMDNql<fd}g%pWv?r%%EI%H%ɝ\9F&p袸"6A>%&?4$Hs.dL^*XP?/Hr=#'p7FzAK8d9R`iUtzT 5\_ ZCYO=b)=YOPsOAg9)<YZHT"-C&f4̀f+:
a`FbQFxc)+OT$eLVP'";<rSZ,E#k%'W@E
E&Im%؋oZ53S@	L95/%3 TE{V|x;OI_k"D#e.wk3s)hM|m&+1Obtg_ ەI(ťd(8$(Ū$TW((/LI-Vp,փ(\83/9U b̜Tlf]fNktm
eEřy
zc3R.ps
Z1"4P:/94%UA 5R/C	\,`{sZM6U<Enr"A;'3ڨ %
`o(%^jJIbb8&˰B\&w]l
Hv?D'b炙C38tNU#'PcpO^)7';Cd.~n;t1)p#ypB?	y IWTL&[yM
5 颐PYI Cr6>19/:
Lfx	HH2@qM!gSlɿF	b3
4"^8KAAaAA"6qՇju\%־@Ԛp*X,,:43S@Q 8ftVxOACKn <ptKHR#&;eanы'LŘ≃dbb41w-
;o۾Jf1;b/Ejzڰ~-2 L9NVd\EY%swn,"%YT@|Vaj/]ɸ"#5{`5Լr5mu20U"H"H25P9L0;ΝcϢNmY,9&D'suYf)Q4:@{@6@e䠪<)u;[0ZlPwӘFwϤCQ nJB)*FLm^O)X$m>юôZL zCL=pMZocW8bZ̹GpK ɂi|u+:0@VB^Py-X(,AAeY
6ʰb/?jr)Peu;t#4a778:n۽wP-"X"H*3Z.5Tj:[z߫򣻖:gnbyRԆkk5ZoTbUsӁ-YM®Ncg@vz߶h,.tě!$QzUuhۗFAƢmQjȟ:
M[)  zD mE`p(Kvt;Oۡq+ӦE(:}tE8G!nqxWxUKSP^uR(jtGw<dd.&5aF7n9;]tBЅ{/MnJ'Mrow}݁l:4j%&0ס%'i5+TBTDt^ U5$.e[eZp53CSuOtdsb!Z2".xODo>x8јRS8UK	(|GBIaySEM9o&	1$,Ϡ+Mqc{|-EQ)07Ql"OdjV&MV0hǭqkQ!&=@kSbNWUd[h K4rds3brrЋ(*:>tuO4_Ѫ-p$Ri˻Hu)8ۦ=5z_l +11jζ>{ѬXe(h蝼I0ec:uGMTMvN>"|2#!([ĺd?KvK*ʹ[<[kDjⰟ.\uQ86F8o̎RoYfGEeCw&TM\ofu1֥O7bQfW'^M*K¯0aB.c]&S|(59n.\]#LYPZ\+HyYxJA	g4Ys?ՀM!!e
VzyKm;rP!`؈{/~3{zP$Sj'ǳbZeҒm<>`FR(A;!ATdZcJ00CЌvod*zP[5]0l|n{YlguHk$^OV:3S(ySe\KNmfbf3F`(#0X!	
KTopl])Qk9AkƅUz<g4r]lht[|5x{b8hɻy}&?eKI'KN~*UIK+*s22K*'jl D$8;>(>=jzT. 2dkxf4hޒl̒󈳥V&Lf=3l	#. :>xbh}&Ҽ<ҼT̒L N4x`hCI̪3oVe OQ0xMOQδ'-%!h$UAM4cGэ?g?quwoۉmLnfNνsssW(/J]N.U[N@RRW{pJv䋂P$rSUmi8{EncXCɣ*Ѝ|v˅]Kob5}v+9G2T`ҍ6Z09]kA F}]mr$7@kP380ϞkT9(1ԴmSql,S0Ƴs='¨n<Y8"
s4p)㗐^/:	ɐ_a1eE!="筰yYj
W=G<(.iW:ѫwk1^
1z`R'fM3Dςb7d@Lly2>-MZaj٭)^h7BMjumWf Z"*x9`K,'9dSKJ2R
KSKSr+KR+'8$%dd<R2KRRRp(KNU04T8$͔	: }%
y%L^-%e8ݍad?rh6hL}r0;04
r@^M 'o`ц,
~g>!tpdŃihZsqki&e)[__ZXR&AB ABɵ"
 xZmo8_A_cnPN&N7vvQ,-Q6QIԒfHɒ,Yv3/tΎx%lɉ{J7|Jq2`2jȝr#bI"Ib¯tE~cRqn q:u|z+H$4IFسbMxD\_r=7rRƗCL5r
1|򋄄j EjkteB:%Uaf49S(`JL+BcPʥSP5K"$3`NTz)ѬEJ0WZiK>Tˋ5ޘco<ӄ{|&Û1yx$`8>-鍾_A0aϱD@MdvǌTUI>wh#3`2Hd=	x5fb
uΌ'?Pb&Eǉ;u'Xp)C@y/ʨ&d*f7`n +0Bp+J*W`nVL|&vbD"+ҘWJq4׫#S".SW^-_qK;/oͭLm+H)1)#C(e82r	Ĉ%&W,P&"߭o$djp1.+%ow81'd<I IJ@5r2E.(Ps(l$`Q.
µvLXLU!8AޓZOȝaFKmk@AzAP\/nHISzr"\Ui
T$0HB Q͢!oszU)(	(7vu5
#	W٦kDbm)9π4	JٜIy[8ƫyg=3	J^DC;Swvߤu,WSPv ~Oykqp tHa$}x&&ڀb9AFh"O(qF=D,NΌѧ'8|vU"3s-d()mسVz;
Z.,}ib͜/4 L.]gƜCdCD4/?a+_iߡp4e:+E!eK$tR(6ӫV.[4
z6/ߒ^;4|?7Hq*!-L<,䦳ގqد4g;pq+j呆I[>e~'"Vǣ ]2 Gx,H9Dҝs̀Pw94g kw-M/.K|*_}hjwRsZHt4kgn23겋ɘ黋5KC6'JMEg}qZW8{65eM+$YfUfnI6XniPM7ʚ'o_V8#T -	}U5*:[Xza:3ky]gԶQb}~!.&tA`fۗY׋Hj֦d}?V5>4m=8c;t*ykC5ä?qm~G
X{D=9YGc߇0HĢA
#s"-vǉ2ʄoB`EMB!W[%8 
`=5leE){2<<M D56i8^m7d0ֻ˂'լ1nj"Ci53i9HӷljVmQ;ߔԬbF5)5R\S!hZ!Ĳ3aRpV/^L{MvGƚw<ʛ =[3sf6sl#3i~fjݿc9vdL'^aYm2S+O^]^ٵDcR29Jyˡpg-E)./g.ee?Zǝdʭc&ԚZWĠl豏\۵V˂7V
z1!S1ucv½;'O7sPeb}ߋOE5#?Oy[{i~{~M(/ 
HߎG_ףA!iVXxk4Ab&XJYKSKS'e$??gr${fV5pAr7O.V  27)Jx}F]
@\RSr2RRKSK0y̼T#c>NK+*//OjjB3?8H!3$(1$,U7KcX DGu"@'#9ICisJR'Sp_=#^to"%e'+ 4n&xePka&w	S.4ULMIvHwrG4">X39tpW9 V'%}}ٻ{](,^ QZg1L.U_4x|	lFh]fj=d*vB-x7"ny#w9JZCЊ̇40 ~Mx_s(m~xj&)Q\4\@g2{.0cݴ/n\3ȭb]EܜuAy̕d|+((ܐB>/bV[OX~RbNǨ=Uǵ򩉨3B}ȦDD))&]H	˪6|*32y?<2t=*H]VQՓVY}oĸr+u\VCrF}$	.HҖ4Lsnxi>&6A| >o@x}C2snbDI 9~Zx}FSeĊɉʓ I!x{}M#';pDn^Q&	OQ
O>pMT^ f[kxTMhI&t2?d2lĨa:&
"tWg
{OY|Uy! .xAXXAAً'zB2I@wOio~(?yqN<E?eN3-P0) 0ښݥuEmRh&*x@ُJ&^eK)W],|Aϵd
-1|rDbkba%G6pj21<h`Q@Q#|r>z/ô[أV>6d$51qslT"??OCNA$8-6+9s/h.1czA*9>I+8y'>Q/J jEwLbs<jQEZbNd!	N²s`&./<qF.c ~աE8xh00Y0I=y*2^j_6GD60}ijoo}:MMo!MjXc0ǤA,e{̙Y@󢄶= T{7AR6G88ʌdaCy9ƫ]4N^$]@O;z㧉`1,[+8újsv$gq۽M_ݹGj̶xnehS>,wKtD)}w+IhNL;>kq*djRADq9GzI&w"9|%Dv'}/CDmkw( A'ZE(qLUUu@!jA flߕOU\M[m\23ȱB yJx{Tk/dfiHn̢f(W32O/y?&D61g1 w+Te_#<aiiE%񅥩ũE9

:\
@$\ZTW!XU,PRY:Id2eⓣL|RDgjj^iDmAQf~QfIB5ԔĒTD'r@,Lπ
bb/d82Sr:ALZk..$[@.ڀS BxU%z`AV-dNRNKLQ Qxx;gyvC	\8 R*OV(./JLOU(άJI*hA)̼TC>NK+*/뎇VU03sD*MU	hE'/`*	&f/!s_&( cz:A$  Gx;gyvGP R*OV(./JLOU(άJTa̼TCSO'-$))IVd{vR<l0N'7GT&X*c.s
&Tm~u-en8 |fDi xo{vfy'$'Q,n^-i
 el2xo{vC	hi & &x[Kc/Cvf[i^rIf~[N~yPi^Ifnwff.<F.̼TCɵ2'|O qJA~NNjBrbNNRbr! 9m IEi
 5+#1/h'VM
2
r)d( ;E5lEx[Dk_9&B6xۥU{`CRQfjBZZQBniIjBIeABj^i.P%8(3)X$#IXS<X >/(71G!X[#*JM.-*,KU4-V@(楤%攠8yn=حȢ'ks) ltR@/C<f3.e
Fp#" f\"[Lgq"O( 1yf}Anf kq xUKOQNCRJ A>230a:S! !`kC{wjkM<w^iOwCLdAx]sU
 y(ja)T<hTeEi:mi)b짅%&aכCDv1ӊbA@A6k/C^Ymhz'QMʊF#~%6MuLP$RV5	Vn``MN޻/c̤J:ϑmn_ԗvH2?tkfmV,TL8t[H֒IJºNGkNM
PI#$MCf58s;:U
dy[mΰz"!"%Yje-	Y|ťMM0DC)	7;n&q
L?rKwW(cé2_X]?G Qd5rkkyȱRr-  ]MNaqDyw2R,VckX4GcrYeǢ~,R1qA (V=h/"hCW8Rãg#>J*pUgJrK;irwPoid<zR@2+d|Pں\Yt>?Ĕ$L{'M&Mer)_EU;=`lm1ӂ
-7\BP`o]>r^ùc<ϸe9M`rgެI{!Vي8ȗ-U&C0VuNLswxUoE㌛FJC$M2H2Z@i.uglhJ\9 ]\	qʥW$z$ޛ{S~Zj+ֳ+iK+စ~_R4*ܦ*cR&|Ͱ,}/hMW!G6i7}o߱@>%+1 `#LKqxķ:hn]|?'r%
?$+,He9BUvW15|fŦ\ͦ+V$#on~ԉ?Qw׻qLUY48~.2o%az<;ȯ.;.^_aqeȽOcN:(uAW&b*w{cUΥ.i8);)I*?0?VfLw+;C0k)㯙9Q@:< Ζ"E2	N]0,WL/v#9F9r=\Σ-2>Evd/O::{\]R-n}91[ɻ-s{$Gm2GMj9AgokuC=>ǨF$w^?W|&{/etOk߽h{@M.9'cxS5"4̻L8(޵jYDof]'!e2*HO'9b
JqzԅS_-#0L	.4Ȳ靍;e6_c󝆋F\Oyʴ5P`Faob@rO(ӫ[GE	iЇ!(G;w>/4>EC,e$W~{s,9GxSn0wv(]HvgyH<%1@c? {.
x$kqj|޻_ZGρ-riz_N+(yvTv
$53SQ@-LwR{`J1#j^Ԑgr\waVRP`H2)|	w5J.J*C2m/\GϑŦXRQP(Ks",Zˇp.߃`:xRY-QȮw$˂ٴ}5Tң#7'f$shQWc7z7\XRp'LkFWÃAI:2K7|t*ܮbC qϷ'}&oghε72o/'Oݍ8/nwX'Y	I`qƕs=:徥Ӎ'w1,SZ< Nx[5Wk,FkqmNlb`Ulɼ V|AQf~QfIB5d榦d&**ăsL/GHV F/`(x[Vc_nFX6X<YDT  v$x[Em(fIV>Z.Լ4 "x6A}}&Ҽ<ҼT̒
  Vj5x>A}Cɝܓ&g,  oJl$x>Y}}w  #Xx>Y}/dCfB >@x]Sb'f(F!Oa/HB;Ix!/	$h0IZ SK?_g,;)HaKgϞ={~Z-5gO.{ESFg/хۃ9ԀpRU)I'\%D>E$wbdϸS.aQWע3Dq!*zf{/("aIapXFBw8ı<Tɝz=݌VC& B0|k
"VQ"?wMMOOO5[-5!*)8v|6e||K"mEll
m`iA=Y 6UHVDMdk9.X
Xysh8<UDeEmn`<FvWsp5÷܊.:A=jX$- 39LL;Ѓq	5I
 i|GCEZX$ҩ$jB\7'~iOHE5N՜=yeC"a."9/ϵn,\a_`n!(3|= tgc
!]"tc^Θ?7LaÝ14ڊ*+\kVQFZЫ1lQ&nD9'V@_IMf[CEđN|Kuz\Z|_Nps՝TǴXju7`TM݀6{KtM|jIJadmڃ| =ZmhKtqr$[9t>!Q~0gpq;PHr2VoȽa\yZITp("UFA=W؆2~_پ")إGՙuaVdLΣVV;xNΫ@{<JK(aX6LN*ӏ~(EQBĔm)x<{T@D;ܞQʭ'F%ow50~4ڜ~4{AWuDK}j~o0̪c|$z{_~x H@F6ҋn,EBٯXlՀ5yM>!]Ӈ0m 8R,?QhczXrsJ5)3˩im24Lƒ} L<W)e(L=Ҧg@`G{X[CC˻"rVrO2<=zXj}ToVa=(uc#kg=inQg7{ђ56{w3T	W cGuSWO*M(7:	"DI(w8qnNگvEҏ8Ro&ԟMds:vwk9~3*RDjxn2MfdѾxgJ789
&hnf{M-DŞV>jin5){ݱr{;aw@sMLݚu-H'+%-9~\Vijӛ}-F<#]ar7}-7D:<Cy|pQ^-90fZZ\nz:թp:SGSEHJ)ȴBT[Ck~~CB
"s1d1ehʋuZkҬB.{2mgAPnj+;Meu0"X3@zR
\L 
h&B-FEg$GB( ?"`.T4"s<)QB &n$練>wdډcW+ | |D \{{a!OUaASc1?#p;.0TF.Fٚ4+Tft\7ܢ_SK͵$QZt;ql?>:H9]9qV|3l`t-p2>Yߛ
:~M%+H{DH{/ T0?\f3ktFD ?9c %.\4]ބ(JP+9%]iA"li	Ac<e}$+ uxrhpR3sH[T&A:+gcNhF'ԢؘGX)Y:0Limчۋ$8N uU٬#}`Y[ֶ[)x]n[#w2ΜEƇ+'PƳ' e6>'{SMZg>t/c/Z(>y}޿d"MgDec NRYg#άgqz]P10FV-]$ߪO᝽{LOŞZIfyD%Jr$Ǐ:$#1W9<<{<}w>cd|0=Tk'0&K>urǚMHjxdz_JIk.;0LwV&X	cڬ>y>O(7gjFB[OYfM66> `&X:]&y"v35sMPBDS	j}Xm3$=Pc0[NC6!+֮|ۊf% La*SA<+ 1/+E<{WEXlgAy D_I&>n:E"VrcgJtVY#1	36kbfSE`ouDF*}	r}<F+(Ӿrb2-FFMQ&ƴ2:Se2LApӾk w<sR~flD9#k,t*2ؒ]7LKE|ЛQAOq=aqyƫΎ:ӧ,,ѱH_Az_Mev4hߢ1?s2yEHL!`89}}Y^J͏q-*ſu+QH'uhnvMO:;n-U>O6*CnM+ț
OvJϾƅm\s׊f\FKQ)rSBhH]K݈Bsз 7ڝ${&Hb8ӧ7!Zd+*ULB'9Xw4S֬Emc7(믁-Xᦼ|@}<C%rq<ӆbmj"ZbkrL3;$2rC6WMQzCON94uѽMA2}voE[xΒmxDO^&*ɲl-}_=.*:?9d] ̧*SVSZ24xLq4U)R
;
;
;H]!z0$tEw$9P=u=jeG(`n?'qWU߇`~Hl+ވRrS8KwzTS^\ q{Rq__Ύw''Co,ŎcKF/7:SK'_#-xQ0O:,~0~PB5RK?͙]_nJ5&:56%yQGg7.=;,872؈w&{AIq0HXn'8ء]OrC̨rk
<lF=qzd+ԏl%w!Gƾ[WqR')ٝ"[
2k ]#mWPٽ?q4bxZ}L[WVjY҄PBCTiD!]t-PA/uTi?웁gl= aCIFhI; #$y`am{ν~~qmUr+5*E	"JQS*QTW(ǏHïJJ:I}2%$eR#I;16֔U)JʚLQyp(-6IA)tHN[e^V+r4Z4oپHh*4+JT1TO"tR%9JajbU
5;3%jRה#ܾ?:E-VGя5{7{۔hink#
ޱ;~ǔ,2Xǂesf/ebnAp͛B~PId!où%K0"څpǈ^߃;p#K*RQ-Uu:PMu@IENJ:b<׌6jfǅ!(h0#ݝI3SH9-^~OkFgQǶXQI}iޱh%oQ&2.)y܌8'iҋm1w?܀?skvajb{JZsG uEohd6^4  96 z8i{"&ՙC6G3AzL0\|pwiX;:ǩCS[V+uW}֬yMG|(x5=Q$﵄8X bp~{F?Vl: ?<@Ϋiç7ŏMWm_fCj dkj;/t'
75FNs1I妦 ̓2&2*3GjZPY8(++K6N>U	:
lCs]iyQ.@i P!F;8h, Ge P<T"WrybxdH]Kp2~YoA4]	ORDV%,7	xp!\9H>Kv[xxqh{<2ln{l	H+/,⛯`wX^\+OpMCl,&	R?Ny?[>CIy/_{ohmʶ:6s4=4}Ff}Ŀ:[IF0r΢E6+rLrþqeIs6X"-Ay\BY
(葭ӭ+0[ٱ1ni k\w	I{v~\@ZzM]S?ypzA0ar͝2@KLo(S{
V1WR`/M?&,:dƾn-g:o8B4;=h-~CF;VB	\ӼdLSC0Z0Zݣ64}~V}2jP@./[^82KwuE nW8By7~L dqZdjEt<?2]'
1<8J|˃S"ϟ˙rK} ;~G79CQ9ȎE?9?jd;D6e?.{^)EwHBY8I<jU)PCZCΛ]-$pb9Dw)P!AȬڳ7AB",FXєeput}:Q\[D\?iO-a28=PEgjIE01E{ bfE8|2A$8RBf'k%42aA6fPyoF >mkQȬP|6nܟ$G%/FC+|W|旎Lו%1zqBox1xAWkSɣnoZfof{'x@>\]]'{c$/KJ<I~x=Ez+e髻׻PKT8t51z)j)ê|C='C4N^mc~ᒛ@;2yMԮ4%$k*؅Gm>}!KD/qLLve|V6ޭCLx!oWfG]F#aGLVhܖ~鳌RV.Nx]sG_1|I(d2z]xoR`Tɫl2	;	o0o ۰:6Ǭf$}ahzݻu/U`#M9O>t{\01Y̎.s~O77Xɜ\X>Hy 6'<Ucr+9~"3
?oqb)[s]GW|	,TI._(s4%T6'sQyehD.l4Ѩ65r@	)\t<?@{P?OFĐf(K%(-#\fx͌ yP2E+l9Ǖ
3EɌeKbvRL7? Jx>^}H䄘|2R q$bJ掉>N|a YTL;Pe
҄<=̸̍<HMųvj	C2l9S&B{K4Yfl\/*`YgJ	ȒibV>w*KhPqr19Udh,Sph2Xb-J[|BfgI,HUcT.ecKtvJY4s=m"6%ӧAt$;p*X}{n]RޫnU4,}bmRue^lu󚲶@:\v)NGP~́
hf&Kel{$˖'Hh
 I3rSX-S٧`N'H9|ʘ}Z*
o0/>3Ftzt"W)=2X(AO{>cSޡ>\_{\_>R[}=ޮu;eInrB:#BB͟(
vyĔNtpJ*?Q+ \?>&%L
lxbYZi[P@]l,	TAseq~#"/CwkϮ6j"	Q*qOW+Y3I8z
A\hI 0Q1Fm̮me}GBkf;B(1LH~Pr6&N#OoQk:	!'|Gj#*#(nS>dI1'S8HR!jGK`ԗkk+̆z{CNLHŏ	th!ms (%bX#ðcxJ4bhM$4@~(5NQG$`xmV~FkX]mvF]zѮz:BRX?qS7jW}aILC'wDB_>?{-uMY޹޺B;;|'AJ&⒐bp"uʏm,v{0h4FII+A#>_n@?$-~T9[PGw	ݻIuC1nՃ:ԙEXC3u']CkJ4ܼH
~p|ͱ}wbm\*zÉ8 H)H.:6LG E۠O3G8LUvȍ](#C62IX69HE'l4@bX6,?Wwf1tmufw0PNL'pX8.%D;ySr	Ij<δeرH{ڢiBBm=YIp 'JqNBG{uihƶi4^&=Fqi4,z]iX>8-1FLF+LGaB}.Od(C#t1xY){i=taq".E᜴< %dY@4hkIxWU/?-;ݱ4zs'#~QQyxwߑp/>c~uwhf}C]G{8ZǾ=N,;>&Ց.
:J8V]m':$tihh<#k&onmE9JУNwAqtǅ`OOhg253Ec;pv33x7gfܤh>N(uub3ǫ꜍<B{7p(fhlv+p{j rs~X+f"8,ȍ<r"LhC81}2H {Ojtsdwt_EA:u4߸R6IK{xhc8i7"RatmJJqR݉91#2"v(uq!2m
iNQu&٩Ҕ 'o1*2celAՊJ,v`A/gW#ǜP0I&W}D3[)@#\&OOTFȓ㸏q}ecc)-&̘	._ 168R=J;#I4rcy|m|jJ
GDo3=pUV8[&6SL.]~.35e{ҘndУY4$͋e	8ӱI!>#'  pi"V>Fa0 Au"xB/0`g'ؙR`~aA4|Z`:UHܶ&wc^99OJT>O7๥A RHAZqwS6*@^w2dc^n/Ъ=Q~?u(U6xLj#0(}ځhtG:GògB+֠Q~^ր'2NFŨX۾[ݼ|'i!`@MAwjk3lT\"9)%إfFE3>~VvECN1{fheaMŢ' #	!Lme&yW_ԻV7̣>ן][yIp{9k3Xן(յubhىBƶ'C9E	kn#P_Di#eql굕plz93O@ vNQwBSͫ4OŜg]],eɕ!naw)h7kf|"pH
ˋJ#vζvAIQv56nܭU>PP,%q;yMhӜUG{t+FE	K![CJY~ICP	q'y1HOE=ܜI
|B$@	[Evr&*6ZZ#A@_X Iv]dl)/ӆ/݂Z0>!~IYrnN7զ	,μ9@|DCCXT7{+P demFm.99V}!Fbb`/u'7pOa+*O,r
c/h][p;3>5xDp3=5抌dBjuHOVwكoV7g	'	EĨ؄bi,VV\3+IQ2g<ib,%$cXxIQCO{ʪ:PR݉`y?`^C" B4nfx࡝ygVfgŐjK1iEXdeuiMLy	/I'pz(&	&]2| 1FK|HRíh׵tjZ]lSJQF`^M#JMȣvHzּ>53$
.ZMC`̭l$y0KH<td.d:cx2)dd)Btpcq294Q~7	vIZTWąӍюyNmL`aRf6ØB*Uq2L7E,ːD9<w!+ 'LF ZhO?X֟ 9<(t7^l!
lHwwH1=&>eg+F8"=:N0#JrOڎsWj[1Ch,
k;!Hd2a[[K~ag,NYulԐȵB$Z ik;Ӥd%εr	tci*G.Cl4WOQqr&|7~6Zy>,ń>1bx$l.,NEVC :Df	~XJ듌nvۡB3,nNʒv9lmkfJ!v\ID>'W!fQvԥ-웅u8F6-p\hm<X.9O;8}N].p!u`123䞺BYziJɎ~u awj18H{,Cс5z::+0&
,ޜ9IA֤Vw^Exb¸XLO1w3fLW~ז:Z{x'>(aA2hw8JW^CC0(|\c71ǑBIZVSqlZ=cKam{Dqf<Ay2_}3tj>MÔнΛ=B	uK.*г0N~U{p<Uw`W1o</ՁwHy飳YR6\}^ĭ'<|9fgԨ9
:cyin'튰_`҄;^Nzi;(Ӹbn77,>o=n ;Sw-{ʏ/;pcb
k蹖x;ߧ.B`Uyzv\Ɣ
MѮY9fIMW%udcqp JS%8-3}^-AhȨ=j-X[oid;1r,S1Mu7:_^8mG0-G'	!Xԙ>S)j>:x쾲CK}cNR2C7Մt`W7Ó8is]='1Ǯ0lz23:kI/4ǰFuգƟ/ 6&Gٿ(n~	ϱW1RiyMM^Qð#$xۂ_0}Qnr,-^	@۸ԙ8&b8Ctb;ѶglW8\
Y㸐wJ{^Bܞkܽ66exHĢtO,<8DM59ܰUe;8 n{K%,E!/g.8؇VNHcu+iF!]Zv!z7oZˎUeab:elT	1EcjVa`[w1͕ؤS};kR.ЩHkJހҴ(5PfZ&``KfHMC2Ѭ@u1L!%|vdwsƴ*tOIƘLc/]Pkd\@c=,YFgzS;dD}.5Au۽-d:Oow|eF2p9Kp}l)JH65
=:Qy<Gw-NKP7B6W72VAc&;$a,Ӎue)G.tw;)琘va`Ij7̧ܯeV_N5Nnڕ%qQy#فL|\8#等Wo7(XskvqdZ Ys$s: e}'6m[.ܙ7<s%%Yd?%[S؝;y9}IlS32Zj&g:|]1cdfGw} 89@,<;nztX,IiW׈ghG@sjڏp]a{ҭ/~3@
||1m2a(-'X nKpDHD*쨦XaIy'hkWq}Zy^{B#v_3I=>7n^s6/պʍx5e#\RJ涔)ЂڍWH\[lR(>5MQya)]϶K
n}\E}2.ԖA_cHhaP{C|iMC:zKþYØi7%\Y	O[NTuќjZ#Ĝ8E<<9IL_mj̓{K\t8'eiFw&Va_`ԀV#xW~^LӆmǾlgkuuEB1yp]p<ʋC@|͒G6
OI=7Gzȉe3Zi9håY)Hî7o\p.(#xCu2@s"^զ`cis(Åƃ+5u<Ӏp4*Z+dkob~X`\ce=cLHU2oŨ>Tի/KX}r^Í%R%xVUO}&lՍvlu^`6!bMGR<^B6ZS%f kGx'1zmezK۪k5UbeӷC2SA]xMXړd!{FׯԦ}]do)aI^@/ӏYJ
)r-$?Ohit&Ow4+>>_TAwf2R҇"BI2ÛHo)5S͟EV"P@K͙v&̾~ڸvLQNElxXֱwHlJ11*sBhXt_/m@/OXW7c)"fz5gR`cMEO$]=%*#Ϊ"x54!?F]h)[:s$}!|xIBþH0ۛ?Lˋ^.)1ܥR_%j7m'>uڧݙ:vW1֩߬޻Km'}e~߬c_{N0W?2ێj;a5ќm~Vw ݥAu"Q}vcˢ\1~ƿUҷ}vs[AMq^ZA=d-!3WNuAaTLG'rXQ"ٗH~p1>f(9ԆO6O&x;Ypu
 ! ^,v@8Ib  \.HQHp0; F؝Y(:XQYjGUcIRI,+$r,K*ەة؉	S#]8kn|=_=_z侉&ɢ"'FF4]5U8CS$sIn͐]Rd-7Q;'d4) ]@buGzJXqȬ*Xt E^ n/|5)cdMqӤb!ֽySd[2"b1'@[4m	|ZχUA4N3j_{W>{ZA5i]uCŢQ^zZkYEձ?x/|/+ܪIJ'`d9`Mn5%922<646D.eȺCkeܱ<TZ{GkePX؋C<<v^T5d60mzУP$V@YC*b?فsEYPw:̦yIk[FDLy/6V5E%aЙĖJk;nj{Uf8nQJK®AY9\`S'#luQ&Zl:[cAI\|4IjH YWE11@)i]tiU72Ep]Ղ3BE#+|w*|uJIw$O*%37l w$a-˧RDYluN2j`ZzJԗ,F'l8LVOƒ{}D98~ĨfA0zx26Bukc1!_mmql,XS&u>Д(VyaMMtt2mjű< ?ͺp]&<~l2J@19!tDg C.jd7AjhtBDzنNl_w{G=>d,fb?5 = M.  *:taMGђ59qL{f&MI0|)_P@x$(QOQzEEz']	4: z IvJGrנ6<ٟ18mсv⹪$l@4!x6,#B1ص@5PXq6ƖhjT'7DWS\6S'iZ3B+ŧ6@lKOJ'S5ǀ}_y)u`V|mնbl6PmBhH	|c=GO7/GN3$:ːgz7Wrx.ɫ\yty.QFw8Xqd) 8ǹkJ_xebӝGeV_U%qRvJ^Pɍ0/Fc-rD:WET?,t:Ĵz8I|R,@jN[<JrK,o!勱mh4WbanB3vja\|{VX45_!MQoBE]]Q!]d@}"N1egeAhuKp.L@}5ILI0N/0鞶*%,U7%tR{xܢP>91!nr.HU}&ˊ+GISex{m9m'uU*rl ?a-B/6HE{A͙q) tz#YDnVcX8Vd|23	`5Ҭ9DqUNZbBMA|-Mn'þ@BT3F*@R@ZdҠ`܏viFBKXqc༶ÐR1~z=fdOtjM5faȏFfI넝ZcT<-)xbcnde5SXPNɲ@|dO30`Փu$L10Yɳ=*
<{נ2=aSGGb^nQjfI	ej=	,$wDHYFHHZ9ٰLڈ85Im<Y>#c{L'lϽ|o!?ӽU3faW eČؤB~[lpH}i'a,iۊJbܪS8Թli;%OcvL_w A R'`BŌ b3*@CU-娂q2"OtsgbfNM"vDKw^t
Rk;M8F]!J@ªP*Κ	֜pOď)-FDbN|_',Tޛ܇V&RI"+:l)5$9P/TL;'^J'%-=x{*PxZ7icS[H+7l"#Z&igG0Lo
LQ{wPƦ5S {0^{#`0%hB7$.7s{pLkGJ%-L)1W6Pe;
*&V>`T[DV(df+tLܙ6.W82QƚNI1rdo;6/Z12-niFIYuAH_enzŎfV!tpsG#hqv^7}? E+?MQK"lఇQUIhN&(ğs QbSN!nۖ43_c*dDM(]RHpՀE].f`Mgřcjd`:R6-ҞUK=ASa(<ָavRhENbNgAƓޱI)m'<g}WF?^j98At0@0🟭)A$x_dw[(+y.[UUH2mk@SZVp:r&f;<uAw2+=)`vm[JkX3l<U5Je+3̅䉲]@O݉"`^QM|F"AêgR"Ok!.rVZ?ɹBτ4P[`>.uL7rrqfD}CIff`ZTZ
tݽf/B&Dn5[M4s"L2v1  ]mnm"9VZ(bW?[X*Ůx0	Fg)+wg%)`\V=j1C#zrzƬNY&sz:Lno	g0ۑȡY}x il4j- fYpgQP6	ȝC1Aqq
1h@Vtrcj\0.`;A+æ	ː0q a\p0 eqs02Xfڹx&yeAfDP3Mo]?R$5[Ϲl4WȽr"v}/96bGQMSpF(zwH0R PLP{.$@u0fNQ Pfa~wHKkkg',pau'@WARxn$>w+rbu~K+'mwyVzfE'zEgNqMû!ĽGZ.attS uIC|ծwjEFWEN_[]	)zYElJʀTnp̍s}Kh*bX{ hYZi \E{6=J1*OSP]A^iBBcZwfG8|hޞS5qh$08s@Px3e豵>n>a6޻~9ꡯlL('ڹgLX\O8+,}gpO2H_J[7B7͍ޤ+7Hzٮ[
/~HP[fq[|ԡ/:վ#uHR'6v8y:$&T8r"7x>5G^VL$ˢĹ<R ;84\geܩ3v1<WW܆[L	giS. MqVuV4 s (OvUNwΊ.2AINN
l*)wR)Hq9UJ^5cy3aB*q}/uGJ@h<*FyF$(pHDLZtY$pH.NT3v؃jґH }t6-&ki`]Flu\<!v:Jmϻ\(jokͺ@+=NE];|VI; 3}1F-f}cf\l)πvdaCUdŀ3o!R`>*onȫ<pCRb[eD^v%/ܪ3q6d}m©qS3d{"k ]7/#g郈{B	{9339+{ݝx^οkPɫ	ǃu!mд}g{JU25x%p
gRUc_	m֓5TXd"Q.>E*qUGGpuL-Ntǭ/UAg4*nՠǫ#	^lrW
NdWDVp3ܿQʖYrRwI˼G3y`̫:7pˁ1@?] L9@nU/<1V$yeBӻTο@:^ۭ([WU͑`!.\)Mq'4uʟ6fmͬ/%Z`mnu-顫=;D+?mFsO6E0'}v}Mo>=\",:D0(`C0x!{!2wHyAP)ڲO$skJB)z,nYBA'2N'>H?S?Vt G}XSc2̕곿y1?f{&r^go>WOif4Q=lM犗Uc$6>,K[ȫl]z?P:[)VrNTzE&i̭A/y" ox 0x[kl\uSo[$5|>rI,Er%J~ȶ任޻.EJ)۱4h
7M87j"-@ТqTE0$@3gΜΙgwӟꙖWU6aꅔYe"i"KSS'i$+fh+L,6&RJ	AfS7}}tEA6)(TL(*T).xiCr]7+{;w2SԔg?s)Hw򺖒R33{{har%+$uaeU
QȚ
;Yd\QTk&iɔEN

l`YMy0S#I(9T+U>dJ$Zj+Zne=K&R tAGuR-NJSM]s0]Fl,22:`=n{M
L%'ka!k? a(CNrmw;lvs0š°hyg%E5;VJW+:|v9?9heNiwh벮l.g{ALW!'_`Hm7|ࡌlXxXqMoUՍ:*s`<2[A:Ī.9`纷vxܟVVeÄ|銙Yk/dQ+!{4PSSAG/,/DW}j/g [	3H0#ҥښ(G8FNvzi̞9PBA[7'eIdSWRd	Ko)6H!	]KJI%do˩%-#$QHfoV#U]g6ɲ	yUHǗ+L.η t9_k/c.߳TAp0gud&+``Of
3雉Ooi8I\StVO[@MvċDVT0tRLL56ry.Ϯ\gkz@g|Av9+e5r:[sLSi*@.6rF)z 9ث}c~! }m'@cuACaA	ےHИ8?{$CyH}:1BrUQǝDvo'@v#uԡ϶QG"aV0%:iqٻfz)uX'"+60B :n*"8+RϴZ"##ҙ>CE,Y&Ѻz2=[f
k'R&aB %B"R[6Ȑ4Lå^?!!v;Wkm$*m1FYEah/7}o8]uRB L#ϻ闺<b]5{,lxt3Jw>=tz6Gb󥞾p>sRSkj
5v(nO*HLЧ{'=rCu[5OֈV, `{kعE'pÿI90(?ipg	l(V$Y	K*&ϐj/W2]c&ַ{r2+
\#&@!*.L fЏ2kA,l76}eMF`i@`jXUJ2͐`> Z҄Ó˖1=L}U!>L[;@y,`0Xb.H_4Ӎp#!g]\r?7g,6ەZ4[^	/dgciPHW58T-;MVSKPz
V(^],p[%;ծYOmyf#Hkx2D
~[:Fpd]L77\𖈃NkJ9i<dLJ@:.5fɻD@Ȋ/Gw5Bh+(u5e;<OSI3Xe/A'!pR2#AMeծ_! 6b1읱J/JC`:jJCIfA{9l#ʺ؎K?o"-ooFQ`EJ݄$d=gGV$%tg|̩Px+vI`9\&ig-e-D{6F!ofD>=*g9&$Vl?3lx'ys>r'OfRZ.WPKLrǿ>ע%}K>ytTvI)	wF2pG{ݨI\=~|;R@-,S'==G 3dI@>:uNT1!h2yCqjXMX3k|nd&Ww>s99n"N)8CK{_b22D~2kҞP.2ղkvnfşț('eCM۱QdYXy:˲& )UOG>LJt'6%6,VG`#&q<1:OZtHy(N6eAWKŵ]9l@]6b Y06EUHAm1oIlJ6j`ҧWgDhi=URA'/WZF)/S%zLa4{uSY-]Cm~e;6ӟmDNSMkb==}Pl}[\[!p^W܍O8IܒJ@6VdiC͕ײ||+}^T"|J=j	gIYW>k4Ik m=WA9Ev< 轧,L;xn11.bk#arLߋ!G݋>Ynǽ*{j̪[L0'ebdUݳW-X00VѦsA\T*@ 2-٥(Y0*1%a|D#ՍXayDɹRYX^SK	g]J>˂pK[6H3
ց	l,"d>߱mQkbcx]ЈF`(54O}a/Po1f.>~﫶Gc$ʘ["n#H_yK ]qC=zl],OI:Tw0z*"#/ REvMg~5
V}40Lu{I	ťs>N1K
	ACC `A! l܎@r,V6p! evЛנ.Z1ڝehivWM%W)>n߸j۩һfOZ}qܪ1: }"@ψp,kXu.]`v0gS󂏾 CkHpy {XoPb{-]
З_6἗V(%+'vm_.+Yb~O_8HJkMZ2]r:?2s.ʊh-?#C\7w#ahҭoiQ[@aȒLb豁f@
0Ȳ Ao~X=c#w愀vuMne0a?|t7Pp;WI\E܃zFY	4WEz+Ѻa+a%Aܘ*vC~j'<}IC!"~<"/s=aI|Khf}"\
ƚ]Z3+	`zOثEɑ@"vzm_$C7Y_7	,4A;4|owq=istaOnS`)1˦h%e*<f+ZsM9,ȂK!DȲux̛7>m)*Fl
+P",]Jq=N5Yu9!^+ʭ5u".)GA 2*kTPUظ89DzxtѮu
HwIYЏEu]?}!u<cCp["W.n-e^me	S~E4ams߶ߞ$aeWst)b$g5Y`wYsrhA2yG={;y3f*ITY{rs;S27UѿU}ĳ~;C6 S4~ )j5tuY+N$ϏMlߜwy	(S<`A%D0
a>:&vi̶>
	_{bʶYյBx%'4qnaL5۱F>eE<¡P*Llw%Ħw (WbĲ65O[bu~VVr(&kKeW8?j1~.wB}^zr*<fQ9ZFTy<63s\в4sVm%+Be
lƺ]M55U+X9>vOk9(CGK㤄{|8YcrQ/
+{StY*ڙ@#%g\;"z}K0 @x#"o^MΫByw䠈qYZjYzg=9/uU2qZ|SEA fD)eޜ^^]I.\Aw;	C_o'KWdno{?GEGhϟsiTȫϴG}(,)\YV8=fDT4B(sb)miU<
%gyú国exkoBf+)3f`&dԔ0?U__{@%r[d,ͭ7[]KvݚȔ[m2֨eo:a!u#~tIW`$POa%g8f_z8|(_רƮ[ַO?	iI@9WD=NGb?e`=YKY)%glöhgCE >Sc=ƒX&>Q/Mi_*m8lU6ڦo&|ļM@)MBiio?ZiϗОp}sϖLs:sVsicU,
} XD_z8W3 {cF+,)w9psЋU<y:x~ŇYv"xUoEWmȘMC'#!C^a+UU۩=ڻ~8.RQ%]+$. !pB
|ؑc1Zig~޼7ps[D۬pOL1JE"yii!-[4X }j@
PhjPUT.mCȤFT֭}YïK5k&XI9!QR7j*$]:g<1GŽ(\O\)[ȈRVjV%B/$o)Pnu$>tᯎU{C\TPPdҤ~.QP`~qigen$BNLҰy^j2d|	b2nlmD{ #ZDeeug0FYLBLI֤r;IIàS%?xơڶi%Ȭi[3dV[8?BpnrGhowٶx{wnwO|9sg}͙;~m2gsuS[q7?OWTҪKe̢a4[CC7<j;ƍA QUEYicuv6w<q6踨LC'F.gSd;-^<(o6XJbM3fcU]HIoCe6ƹd*Y(N"=Stk=L4*!ULƳ$`ft#^jK((UTա\'l̎ز4 5bD>^->xD%r:j/?`aʺTAӉN5ɯd̂n=DSϝg:b:#Bv ?¡Iѝq	XLB'T&gA"RS~EWo|x=iLI+lJ~OY yL@xRKSaFn WL%.tDaZdtVso?jԔ3,ۜӻn~
yt</jP.&_|7W0=K_?A.'|ᔗ+!.?S	.犐zq*}gn{j}hC8/D/B&.bt65TGjEZ:B/Mrqg}F2+CVMq0=7	ق?jiZKl*^uuycy}?y.wQ\'մ;;>zl>OSy`P:jyK/&+,Oh?<z`Z FʞlB-w6]Nyՙ'Wr۵#!Г~Bi=ϡߪ;;;ԍ+m%Lw)	J6):RhO	(e<VקzIZ3Y׫Z&8V }&ʩZaDE
D&"SS0B1ȥ0Q+%\Xu:d%h#	mMx!;Ou̸3i)˴zo,0S7\s+b%Z_@Kx:IudC%2O6`(b0=kd[0 
1xzHevnt=wvˇk[.,,<k_~ly&2KtfV*xz}%׷Yڊ,wnH(o1W@cɝˠ`Omnd PKxuW{l[WBnvb;vk;É&w!m&N|\؎I[tD	hm 1hT?FA6u}7IH=;|;9~?Nز-8ý⎇p+Q1+SN4+L̾bfq&E\hq:WzjQnJ2LFsLYV%cK^1zjOxN!x~~#XPh31'>9.dhO/,Pp<|I#իwcRMC|]¦
60S.0kJ
sXY	c2e@>r5J|"41 1(T)GFn%rw:yuRº[k5ke7d `t&-Gf8Y(oeὢY.x(.T'oꕂ<:LbU\@te!T[WdRVL<܉JT1R!Q$*j*7I)xaki> ΖԶͤ~Obܐ<*SbĂ2y~A5jTXq<#/yZ*i-X#sZ+.kuuRµR,.YPsl*bs#2+Mm恲i3N75(bM'JV-+愸^iW0B|TUzt<MEz}^!#NB5;e|]g("pX%Ǡ$݊62I8]R4F惑 2U$ՄP/pžN*`SM	`ۜ1aom+$8t4UyQZ|Vä)5Z1k*s}mS3kaƉ5WkԚ^Rs\d|N9\'T`<lPj
x>ޯZLL9J1bw2*<YYujSW/Hv>p^~aV=El\M9&92#L׾^ajQa̢ƲX7eV3[3|Y &NK&L,SvheӃ؜xևi;"{>z9Z[%9'+ؗo!a/p	=
,8xlV#,Űgz©7TnoHC9-{3JC5PB9=T>o]Z*_wnlWR$D;Zg7U"Ұ$H:,?eXj2V&#e4f#HGaǣB6nZLh?jįZ|R;˾j!YysZk܆m֐11$$HGVnOӍ+Sz[#p5o0	'>	&YBs Զ]	N񋶊ri=*<ۆqGsڣncdn?p0̓OpI8rHN&[Le>ԈMeW!N{
[Bh4#]<>|jN.㙻iiaXmo{x!ݯOrһGpo$|T+!xʯȿW~-
;t\(<1L%DVueaDMI*:/<WMԖ
"k
ufo12J^o']=90I9㽆ͷ}{|+QMX==E'XB$0ˁFI@mQ)a.2	[DL[ZB≁bCc`>9$`,Mae `p	ASju
0k_(c7ݺD.جI.0xsh"$Lp![?07"4ԀwfI$ ^$UC\^60rFڶ50B>x[ب
*S4y]y@-cфO
劸?5VOzз@7J0"[SJ^>6řhhcf+Y0ɕ"<K75ť	5xlBk!6Cfp~ܘF?XN)5;d<x]3qP#/'',JTL5Tf`$HQwMSƴY@z꺅XB5$Dl'˙1Éx#P֡wghS97ޘRڼfߋ.	k@5/7Y>uT<Aww3~rwz|pj+n?[8pnyu7Zk$9g]â%"N\jp$R^8CmtHh%e'Ʃ#nu"ބG5Tă[+=@ٳi3>1	 _ᧆt]$+Άs( =$7bRA>"DxfWR7X8t	7Co4#H=I&DV4ܘ`x>TsEYXX=M[G0qB~r's3?Q{hxYiXW~M 	ɊTEJ-"vSDc}_ΏNg3љj|0dc1H䓄Vk]Vqw%|	ucs9{/gǓVO؇|m^{oKX!E-3rwgvF0k2x'MnNH
(E+	b@쬱?u?I:s)Z4I;t>]KwG$u|ER͞')G%Lo="8}5TTDDt_\KD60X$Fa	f(d1KV4AR5[Ģ3l"&jV
wbFj\ ., }5?RƖ ()QWiQ[EB<6/-YAe.ԼsN!YCIdZJr' ٱ"ҜJe<BR@#]T@\[AZ<vEn+]ɕ
&بr(Y,
&V,q3<Y&K svyO͠9RtyҪ8켒qkVgc&,'SEs3nx[|G)Wv}JUf5Yta2wU g_EaxckpB
pekI8c&L`҈\,TDKhz^^ 	d8brx271\A
a@	a4Ztq#D|6#܄4UL/DR:w%C&pH! CEBZ e(U(yḇlF|)#١@"hX8@~]'WgY(QMfaMWJwvWחoSAHjNzbtջ ŗW/-^8}ҙ~`1)߉z)Y,F˯Ip.HhQ"MJp2̅1' 8`b,lMƊJV7l޶Ad,IF44n)%iI&$KADQX&SΛ3,+`m鳸q1Z=^i7tu/,`02MO&T[=6goEQ!ZzuzU3u%`bjz7{SbcQ#ZP)1ȊPF X
R1N#Sg~:*%M]#N
҄8a[1xxF*bϋjr6?R9]՞ױ!pyΆj5u51
͠ў]OH%(o~x:t=g1&Ay]9X%`ruv\ v<)y<m[fsqA
\[ ppAbXm] ewu;Fq~M@<#k<<>Mx	0SEDݱ^ֹFΘ8=cE2|oq*YAc[`vh2tp|kf|Gqo+S9^{30B<	tHG}M<ۭ^R̪Gԫs{'Q#M֪#ZB')zNMrSMEҭf#=;IC4)3ivWK%G0ͰPo(Lƴ,?4 rMBjhG	?-,XW%k/»vfb\wZr3Wm߭VfДi{^B,LHЄP11㨛v7NEoSkcoI4S7Aϖd ]&Gg`q~!QY-SYbq04_F3 O""ќ%δ8|Q}1v]i2>(QY.@ةSxv>v9pHT4)abCN/FaHOUYR74M=@G7WdÖz }l^57Vk}|	cC]Ǆ]fJHEGр2`P-?[6!W8VYh
9\!Pߍ}ӫ^҇m&|6DVBOW9> uvV^jor0G]g<<W}OZ_j|@Njv7:}@Z"I`}+eP~I@\[AQ!A(@0큻];Q= ?5~JThg Ao!񳆡L0Kx$.ڧ>V/IO~rJ^JO|rJNeHcxcԑ+c"|0@lӞÇtHSp}JĔzK }Q&׷V|7ðM{ڬwj8uچ}ϺmG~8:l)_suan!1`:K+ZUҲ<~Wf槲Ʈ4|SI~֤^ˆ+u::_^$[@(;'Uݪ\re[ϑ+iR\P蚉4Y㷌jR	0e"4,RY#TQ+fSļTW9#?38K)O7RREӕ(BrP(`l0Cۋ%~*:e_x+"As30xP|H?RnkRDK/$HSEB9nGaQaNu.~qXOX{p SG\gfplM:DfP_x㵪 9K?﯋D,`ds`R?8Xzr]_G
>vBn);AR?grsf
s	*>tB|3a$jSбDvu6aS	Tm鋴J؏.CUʳggۦK`>=+wZ=Љq]7$IQalt& '`W!}G(4xN6o_oھ}L;s7LѦ_4D"g{eUg]cKE"h,z~Q[Cg#eڹcŋQs綪廫v똿tLL%0e/\36#NߞM<I.5B|υ"V4e1B$FZ=$>\*rtf:)&m=dQVGΜN{~:Veۜp܏_0}Gfw|8nמ
Gr`<\%;A*@S%JT@壑a@![BYn-&zыy.R'\ukr/FpnGwL6;Y?n35xti8k6cS LW[xL ed!q*1Ce8o4:the limi: =3>geA@me6xʴi	Rߧm~x tE
MYx` : 
" %y($&4	6Y
2
m#define TOKEN_SIZE 32`$u{l!pmxTk#UI%cIG?Z=uXbZ1t2&"eMnqәxN1[Q
>)  (;IMH0wsw׋҃ىoд#Աy0vQHF]{
:k᫗IbɺҒ c	-!ujÞK=tw<4<o׃?%خ#A`; hwTr,fSsHB,4u	a2FlJEKfe(-4ȞdCcq~9*~v8EfgX@vPp}Ǐnkoۦ^)objb24~p8'BiZTQZ%j!Xdߝs%yncyQΠ\4b.	Vh9vͬɀY͜=g}׮ O'y	$ܺMm_gc'_YE=>8tisTQqGs~N̏?\#k֞lM0L%{%"	.	csGliX@@`QjuWN77v:뽽Bb|4_܅AKlDW5^8)i6SW342˒<-߶6f!ZRqpb_g#%
a1c͕Clޭ]L[4|'>j܃ ϗz+O;Gq2,*c|93AoN+tA4rM3M\30u-|OaѴY<f1PTD0stqH5)׌"Ca;B ^j-WRാoN~eZ*7Hv*N&sό!360rpxTk#UI%cI#ݏVϦu|U1dGi2&ɸLsvŭOa_'M?a_AImBBfsǟ-NHf'V7Plgiᓀ2uׂ/>Ĩu;d%^e1,!ulîC=?]<8o/X-AmA (a'?/iideCٮ(%M.RMJMW M@+27)>4;Z:ٷm(~r*r}X{S6RqK)%C7hJ&9ZGXR.VKYPsj*+l+as/zużE܃x@.&mkg<f7f63b4_:6	g޼>sg%8|p6.~E_?qf=QqK8]8|9t2/we~frxLZlkʄ]?d"}7,H0sgD=aKC 8GRrOq;g᛬'ys!]	gCAi&LDyLQPj;I%y^m-C<mVj(O=ݣK<jBd&F+|X8я5mng5#2'^tZ*p<_.8.gQʠ2-[HOU;pZ{7y[[C[5:ûVQ7b+1_.Z2-Ge|,zk+OCrZ:$;VC d-Y[(WYE)9NfbvÇGTq<9lya0 x[E~dy6ɛX6˳]bMur d=^8{o كi/cg> O&Fx"Iy|˹e<KK2KKR'0N-*HʆfV*g+嗀d&LgS\+,T``5YM\Y/V} } Mή..@BstA|ꍸj==J]+JRsP1? -Pq)x7ʓ:+Nndʽ	IR Ux'M&	OV`d 	Oxq+a&65̿Yճ_l) lwx- )[&&*0
+"7%I<Ix`pcx[{.+q)hCqf^rURYWQ]Z霓X\RY0yd(nҜ̴bTJb<!%&'ڊM"``0G&ԊԢʂ|̔"dt fF{M3T.ŀΗ3'5/$C!?ME!-HW!7?eBIY9]C}\&_f652UdٓȂ!Z+ xN Z	Zthe length of AEAD for CCM modDa=K	E_TAG_LENM521Zt6QxKӜ6/u
bd x
.nsxq#7G5H <A x# AA]Aa theB{BC0)tKx !$Q#!<4/3@:rn^xqSƛ 27nFx;qsN휺6a^x;qsN휘'/\a  zx;qsN>d&Wq)|+ H6xZkludQ(|su%,J⊤DZ|IK;gw䔳3Y>,˔؎AƱ]-H)EZ? I$-4M]Z#mϹw^;4@;{{wǿ~﫡_E/"S⊤:1DZ!c4JJ!'j!J]Gt"HTA臇/~8MM/0C~$\N.L-3J,ҡmӯTǎ/iG;SGmj6z4L~OPA׌7k^$Mִ*ˊ_Fʯq8?lN]ZUHV0N;U]i&ls&loT\iRVTlV^՘"XF߮'VE
ʉ.¯hRdԬHz瓓}6䬀V5Q;S{,1VZuIZ?ȂZBiO'I]$5)FNClT<qaFuH524xH,	_[gy!Ւ=PB"d1oH9A&I};Mʐi49w19ԇS蘿,ijZHKH
ʬIR*e?篍BZIjB~m8aT錑XdO}	H=Zo:|{`ƈїdZ3*$9Yͬs}7Bo7 |6Nc<7hKcDj@\&>XFF`Msn7Z͵Ig_kc d	#F8'N5յJօbMme.=t.L.֍pjMIZ8˩dUW#IKx^h [ĘMlpS0E&[ExtؚXK4u/ѓ	y50<FdA\U{I{7q[}mAֺ MI"
PN?V_D\I2!(NSfқN*!n{499xm֓qq;("
lg6nHd?v)ieE3,+ZF=2C*MuSV8MJu"602ZD}dn{ rizKa9B@5a:`Ђ3WB L!ϻPOYl^gA2?zx8u?t"K9+pNcϮCWN88LHt<p ǻͪOafӝO跺#tWA&AE0P?}'81m$fj@LﰺA
7Uc-| Dsofq`6Bxd&'!O-&j/~~/>xeqo|}W31|mim,Io+BAfXOyL1 p?q6%h
y[Oʮô%VAf90@BKzn	?JcA9;cάxCOy"+!5Bmd٤K:DYAe0&zcS..jRFj'*"ZVZa]l-ʧ>nX`z:(#	"g.SF`ex gq\QhoL6+́HQ$0%ZOG hJTs4ny;D +	R. 2;x&G>ZE??") \!Goӥ,X6cvz53<}XK;󟚷NH/d26EȒ$X	ȬGڟAђFCdVd	l#h\t" 0wLd-QnL/-k[9/ɾn'YrvA[+DyO4<Ȭ\~򚊖rLKvh$KiMж\i1#>]%5WӏC)bՂN3[@襡	G`"Igh eRN2}t	A}ȃ@ܒ|Μo,n	EDoG>:c.'Tm	9@xeKL	rzvD"G t}SXnRZ2&Z4"m1\XRYCe*viJ@l'Қ$oBVWS۱nG͇ _5ä )
:qF3JbMy<H8((G(W}M;wWRB{Gg<)G/4ك#,jpF+-LG#$-O?H&'K0T#&|Lvyӻy2}i ['wSӵDXA_k'X2`Wv~_F_S+g
$;bѾM.I)@c~k~b4(cc!ʰً^^]4<!nx nZ5*93,]oy;;;h~_X
&XcQ4Ik}-Q`)cmZ톫Ed( 0@qA.²..ggv#` I5tWt.PԴ<9W:,&T@@YN3a~u<@2v+dkvZ]5ƉڗB)ﵦK+S-(H	I)miRk5ZŢ1Ksxc#8[k8b-qc0b\֯Iyq@0ػ[&;Aѽtbp=/f #HiɧXݡY`ߙ/)Af#u 5+2.e|G"F,A>Lv_eQBSf1q
4dM /[0=0+SY(vo  @<l2":95bX\P(F#sJa:=W+(FD?WOJ^I{wE*BAA.e/?GHRUF8 ~ff`6cf@Cs^0w #:Xq"5˱O&4]/_QGȂ%Dz'`$:
a[Jγjj   ^DrmBu	rC!'ܱ_$	ڤ.> gkyl՘"/^5z3# (Y
hH쌋$JLH>peMvX|}ӨE$-%n2
	r-3n+"up.qR)\ʦ(K*#%IEf"2BfRM_T2g88ICa`XwMK_WCŧ8we	;Jzm?D>FYPCgusAoCA9_~^ȒRhz.u^]Xs'eqiLaLAivkRJ%4LLB(i}~ea 	VbSwRhck,o{ĭL,+&RU~E4a9oomc&˹
('di`&}OP?'!?ʝ:\m\1Z@g{l;wU9E2Vt/I󲵹٩'$s27?W½=ᤤ!y'߱6m.MF暈>ffWA{]>e
BSF,͢\IsFIִ`.^~uq*%W<_ԇ%ZĻ{Oj@d15l5FO173b^O:rYEOens6&mEVzr:c4}[ɬiLۜ=g՜ )\қ5%-`h A5atY+u8E	,f7pPǹl%8]:	PԸ7R,$,ӁtAwP5h=|W>J/lYtYuj%%#XI:a_i̯?YC7"':&ݵKs35_; VLeǮ͋Gu㶳
M@tU="*iaZ1/UC	ěJp:5B#X4xлGAgg0~pzOP]dJ=+a??xlyXmH]NU]݂Nws<2ˊv:
&@wJfD/5&/+^>w򆅛G׾Y'7j\!I6,Rݼʥ_՛\K:J]PpkFy,˻-o?kw5Y%h3-QJP }
23dI2*gq;~:ڵ^31|CIVz)HcFL~&Z/ҲgO󻲢=Ǟj?e|zR':2֧?jhK/fopcϔlcj%lWp"RW%XDKC{*wVgi_޻uRf}(k_ɓofI͗_zmrx[CƓh*n>f<YRvr ;D\`s> Tm2x㆝x 4xk~*47{r y%70MnTܼL&6 L/x}q-LXl722Na- l
#'xxT͋b%r2*tFivq|^J^^qfɿ'3YodΩ ZZ


fF\ a-̼TCɂe8Altak!$3fOQˡ75X!;R!?MD!)X.@ޮQ@@' dd]&kȫ4£Cnb[omaCv3&?gifn:aZZ}qkIl  J\Cxx^T̒ɉ|-Xo6)6ʓk3o ;xkzqwjeqI~QwfʊXΦ exkƸ*ㆵN3loh efKxkƸ{#DDsSRH83/9Uhr/PFK"ҒԼĒg}C]CC<}]\}}lt0J/IUHIL/QDI4AlT67!3EW
i
@A"%٩yge@*^)K)M-VH,JUH+UH+U(.j
ɁaM`e8-!|L o s
x[wq-,R6/4 QJx[~ㆵ&\
 YZ椩SP`h4dyVv[K x[~2ㆻ̎yE%)
eEI9:
%E%E vb^BnbrQ~Bi1PYfBIFGwcdG.V,eZS=Y'mv1M6 Pt"lxk*]zZ
@B2RrSs*2KK23S&Г`_Ft=NWOP77OgOWx_W_H[C# 04B3-13'5E$_!91'G8,39uG=q\r>>Aaήn>.#Mu6d0T{s+s2SFMV0c|ט'128>erfEdS {LIxkx$(! % 3,:'F
Ov0k&.9d ;oY ꭢ(x6 ..(/& Failed to call service(/a;oExxUL:
ZZ\
Z
i9`FvfBh^fYjQqbwjeqI~Qwfx JyCx{|5L1[N^WZXǥ 9IEE
@:48>/%[8r/br1f  Wx{rUL%+''rM^$<yS_,Yi ._UxwIƓ(meb W%.x{yS-S+2sRKSKK2RJ2K2rRRsء83/9UprX}0DHB5kiiZotSK2K*!*)eKK., X\X3n%T@L{{ԗf;x9Ļ**spS=6Gp3Md)5/#h[
I1sh3a&&?M!199X!9?(>4P_vбe9
E
iE@Ǘ"LpQ|Bt VALh'jlh59Rl>Oyi yx]?JAp`%"bc!
"čbf\(,V
Qt
W?~x~o<E4 	Vp-GڔnPPڂ}m#IϏ^'Iיִ]!nE>{&/>AcCHI̐ZY(P3Y[>
[sGtMM"v@1
Ba=)THMy޽uW]QܚgoIe
[xwy&̡L&&3A橦F )xwyQB64n̳yK? Wxv@@KF;g%*&3JnП$K捁" =x{wظ@`Q hjZxv&3`R MG&M`ͲC` (+x[qSƓC'r`\άͥ Z
y
iE
%
y
%
%z0%o;m7WV+NT(/J, +R"̼T6p6  'xVn8}Wҗnᕓ4]4"4Blِt$eE-Iŷ8ik MΜ93<3dM@_k%-ܔl9X]"!'P	W`WZέSxM'o%,ri1TdD\`9_	4(CCsJw4%k,)zbaKy/Muo/p~Gҍ4ϸ֠Pl@R1!Ռ@*`sqH"R|-SbL"QbV1]NA@xm/t >ݱ]X1ÿ2@8ߣʚ.x,RcjdssUARh:URf'yQ^{SU%s%L1#U)L	Dp]!\j,Qel%ٔ$B,:>4`O\]%yilH:2[j0X\KpEfـgăe9&tFjEkegiY3[>jq&2aV^[#$y%R,v
w'~O
EΟGQ\d?\L8|IDn;<Q͠>7vTꝺ)LuX>foPNI33{+!>{Ԁy{@m?U9٨PȤJ2AbQAe#7 ><>c-98>kIưp1KyB,PliLײ|ZR[;rjHxlm9G 4'n\E!U3f(hR̪M+t3 jGC"4\UnN];nO`:*_ik;ѦQ]B>xwzzFGs
T*랥Х9APcJȪvqNɷQ+ىޭ7!.|mfф.\]kTf =a'8>SWH3Ѽq^mh(mGG&y+id/9Fw?`MnLy];ݿE?/Ɣ3H2c8ǎCh:K#߱nxO}2W˞Wg)NyҐݱwoڗ;~5l#ح-;،2iAחuFGDE/c%
Z|{u͚`Wkq\9]eIw1NS~fػ`(2_W1)#HG Wx!Arˍo''2uL~Ť8YYX1X!-H$$3/]/( 2K2&1mgfw+MJ+dBUmneċꛬť Z
yyy
ɩyE`ɉ+yd<$Վ9E@w TfAWTH+]VH]_~IfZf2e0BRsRssKJP_WzҜԔDj_WOGj3@($%&g#\qSL]ypfni0JRRs2K*&rl Dzx!5C|C"-ƓY&2s+'?`ݴy&[$C>P(5rj^Jfdq^E /Qx!#a{rqIJf^%Lk8D3RRrJAvr>& ~i6x_!!!(hr 9y̲e: k	.xMJ@<7	oPZ6i;솙I " Gt埝N4M -
[Mϔ[|3VZ*P@wJnAQX_ 2zO#X ێGn f(a>,I$*v5ݰx!ΐ[rHm<PUS*S(e(h3Fgk:Qmms*I;sDC'7i8}^\:v/x[!D|C @fOdٱu p-xVMoHG(1LĚ$K+F6Ieht{!h61hujzǇp}Y_O6ls$#Sx|DKBc(P#5kӅ[TKg	Yfoc%XiHAWcm墮8`%ڄioȩadȣr>sczr1ړj֫Zc J?FT5(ʞՄ,gS[%Hlȗ.f]в4K)6OgTt´iv]p2o&p'M 8~IGv~tWa4qjek ܒL_(eJטT5l05x5A,\/aƭ)ͥ[FYQ9Sas)V-Sű@}b֠*YiAKo笹oos.:f7}fW70+ҕ6SMyZz}0EeֺT|ZXI_xIܗ6&(>KAg8̆dE&\V6ȫ U޼oMA4EȲm?D$RC;@GE˽CiIإf)h.f-UKwBV{+4ewqQ7mc:qvko;9l6l7~kH<'}`>0MI `VNIlAd~(.?8#Z馷)=gUe%[2쬬2ArK#1};`	oz.ܸ*C+Ic+˦{l%UpĿ^C(Yp给r.{.I8h/+mGnM6{j{hN	soQ[	zXkS!ݿv'=ghOpj?/JI#Gog(wsA pv Yvx[%\bCyf^rNiJMIjNjAF~^~r~Qj|qjQYfr>\8(1%3? U/nr 6Cx[%X|C~0=], P]$ xQJ@z^ VIlzTЄPڂAYYlE7B'^M*ev{f)z#-kNgV~ZFH<djݗϾV](e:&6G=EUB=PNƎݷG ѐd (S?昸ݧbL(	w#(=)f{%BqFsX1&1ʌ'e,_'Ɠ)O  hVUi@WX_X,A$MP # /"v^-4Wum"6攓,`j+*eFHm2Rغtse?SxXko8^"$vvbje5jK,-2QPT\}.)3Nfgsߗ}
ނ-d\A'y77`P%eЧ,(нJF|xISxJ%9 	~5O.ʒ	7khśOc%*Xp*)f,@'P8$bQp$djn6j`j"*Wk-	DiY#?szK鮐Y/е/tfiYUL%d|s!d3%4dJ1SK"IY$Vjtk pBpA`bE{}7r}}{׿ÍBj(F+CJwHDM,hf,AxVB&T.X["lQށjfW_LTL洘wcSR<1% JT
m`rzIR&-ltD{faljUS)2p]	) \.l)˙Zu7][HRӴ^$r.-	fxV;q~=xb(8='f4\'E^+]a }(O6-5N`E~>~8%6ػ9kע;}вf͙j	ZC1*%zD珖OEtxgN?rU)RIwd=9r37;$g)DESr v{kX#pkAd9'yyF0˺ \,b5(1E2]gs_)ze|
5mrFǿ!u4D6m::cdzk>V]i[c/]TRuh+CL#ӑXT-*ͤ\bi~hݟI^8qY{ڴɠa4f93_q-w8tAeFy;y$u}o4e
D_؟8/_p;hu1_褮&s.r1rOo\,yZ	ȱ?o;O]oyQL{X,*C	m8z4<J:(z+HT_T$
F-λ_(:uRGfG@5ܝYgL~c0$sxZDy#b=3pKEU\
.itUD8lqWJU_O<~pqH-p9a FqŲ
lkޖ/ts	%oOض23stl%J<ZcNр[)ew/8ccuMѭSUh,Z|
a׮I(z5'
R=D*
!᳭)޴"R,u@A靛K#4cF:nS.ܜbZA> 4?KLǗj hrCgˇة;=TY*{uwanp^ok)6QJr؈rv^XQdC^z%99yx[>n%}IS88ևz5kɜH<<7òu\O0׉G6,?>9#s7**=Y)tkɜ0R5T(oǟ	T-`o^[[!e6̔:Wxs~ivtԧMt$6#XhǧYhM&α7?v^O+ν?@.X;xuK{C/CRQfjobB~AjQbI~B^bnBNj^zI,R5x(S+M-LFҰy5 "xMsCdl̬YE7<  kxZmo8^ap᳛C]mm v-Q68!)Yoe;i,p晇RV+hA?R
.^^MV\; ù1riE8<Ir	j1؞6X\v98]gok0%[C*HbBD9'G
D N|J^Ȋh![!L1pFH`*S|TtV
wB9f`2FQlC8HDgk`j\rS!iB`ކ8ԊI"VRU-m@X g1g7Zʷazd8=oGv>Ao;6]#h$ـ
1%(Gpк`9yeFARUԔ _,bJULKu_zk
2L"*w`0{p'G"{wCrϔ9(>qɑ.:vXGe>PNOtJǂתN(:]oB*jVA(0OI$PbIP.59}1Li)u"<_t8yLSTat9_78G7LO\S;E0g9]xYHtkȲԉ$^Blp?/<pGcI,~ۛi1A}k;a92%G&ꀣb7wW$W	j/BKy,pC6:9p_blu;)ZSVP.~^gA.Y+q,g;tF#]0*/4(
E'Z(YmlV.*M-K$ƱtFw,ca8i(x[?Q@ebUK&:1Fht<t,\+2Rд
fbnDc!cYYѤY+{١ǉ2<(ÍLgQgiU\咞1t˔P6 юLoo)蜉Nqi&1㞇NcbEp݁PgK^ĤdMӝBcb
Q_gGڽʬ ,ppkBj_'m픹ajصvn2juc9J""sHE<M%\U=x̧Uu<ʻvRܼ^H㡳H>2?!3jV.QFWB0s]pu&+#ؔ0Ȝj9$Ua7Oꋌ^xd[Qh,!a%f['XvR	yl66ɭ}ޣx+'<xV4;TABn36kzt;&.+T<׵lu>-yH~ízw痁+JaNti<!*ROd$^N~]u.=S4$k	5lzO)\
q>!=?dMf)kA*9{
5/uLR]R/L#IFꧻ_4$vQaf	f|hSrhL+cEG6Ӻdd;
pE,#ӆK81޳\bHH84Qr{61xWbxw$7?7&]do/%`a7Mm愎)"ݣ`2[ꮙZ2~>(Pmll4IO:ž<ܚgBƪ}fcu'dKF]+cT-.Nf{-'c*48+ě
(5([MoxI9cف:5T>ӭ28~huh)?JTD5F8F8%OR@{lW;1ϟ\2,qFխt!pnA>[ArcO>=y^:Ǡ=A1OT
4?]BlX\5*^7LQat[Fș{S#zF!rŁ~;t(/y,+6rr/aƔf6zBhr(HKP{F*IJjʶ秐]hpNnF@:(./$҂r%퍾'X~y14(R
;_-agԠ;}oeKBiJ)QmX-.V)1)n-FBm z`>& <1։! |RA;<l{O+<~;/XaAHS%6_ n/Ko\xݰHx2]W DMzxݰY'ff*d>l§x>O[7?[ㆦ ڞjs+I(i+{i'l}w݋^,y6}ۓ5y.3d^eͻ2 fT%xݰ"(,3%X1X(5'$5E$_73/% (U'$U!7?%5G!3/-(5/9UoF;f--Ԋ--AiE
yiEy
Ey% rK26d 2lxy/6 #xoE؎GuןqLp4)%"mR%rwM:8v@PC9  ZHp(zAɲǈyyv>HtY=%3Ww~F$4t'S2-O|d<Jn>jvSuIXjD>fRU"WmJmr;3}qT)YrSTXmt{|-b-99}xfXx]MJl+J[Zq;TXz{0dѣ1Ec۳3OV*%憮Ƃ1hqw!
ݨ.2	iC4n#KSZg3v6//y}?$bw|nhP%=ʋzJy4VXPM2lQеN>,nu"YkgOُ#}),G7ÏA98er=2roL(Gb>@c
;%ځJ3%K Jsf	̮ǰ4E$ݧϻc.G9}8嶒,s&d<pIuO=~b"[A˛&ՓNq }xsPǋ=|!E#%;3\%%YYV|vtD&]T;?k,\2!"`j:K,!@٘*L^ W] ?zKphCn_	!ְ~QLo DҪ.E
6t4ԣ.&Lx.q96oF#ȡ)8y w8	5C4SJ|]m<t3|Kk2V&Ò#FKмߒgGyxZ|ztGzϾ_ #@jxu9|C"&7Jn' uطx[mo8^~p&X^bg{AKKͫ,jE*~3$fI$amÙg9^ =2:"oyBW)sĜ3	">Pw.B<Z02'}%!9%P>:xNX,隄BD2P%yHW,edBjZV)
ވ'(Iʀ/rxZTx~Ayx1]M 앻0`R<[* k@WDĄcϔ@ԫ+D
_h̴KYJnK1܋8ᄌ'd8OZ˧nJ>ooWل\ߒx:>O8/Qs <	c%0d\sf:gd.Y¤H%Z	5%H\Q*SӦ_x2=<%H"rCo	~s擛Xs88cbd)<}3 #ҥbD}փ!l*^Jma0# \oIqI\7fkZ4^gK&њzR\&7׷gjtqwz\^]AxvE$$rPAE<X?vE\ikq(H$}^ڑf|B(C{=һ>w ]zػRLDNT$`H"JT|& bo" LQȟ0b؉N3R8YO$9,&K\&k^!=+z2_jip&Û3|܀p(!8C:*`6{eDohLƮ1W'Kncl̄+@(¯_Aesdx%Jv)(- wSTVgAO#QaiTrYxj	5[*tRI∱
^A$Z/"==w:
WU=mIՏELćnP(V'ޔyinڠ"xTQi"x3hhO}|tL_i3P eOe51-`^\z%aC4;T^ʾ07AvY0.48ք^M3֬Ϲbyrפ%h|>Y^ F1E<jy! X̚Q(Z!"s} G mt2Oyj2d4;na=a^z33uTRA`D)
YamJ0U&$B$3
	9&RUEGsQZ٬z˥YZ~=<%lU٦e|\')G*J},3IcYqc~iTKҒrkmڵf=i÷'-BhXGtD%|rl˲9P^Ĭp(gK{PjTX'kK=>ǥp"	>6..p(N[q]ǿ۝^.e
.hF[3x?Ovҳ65xèZxEu*3/u6mKnI~(4R>{Thf)m	k7`4dsUM(ĮuX8+O{ME鄩oqKғi'TBЅ.!h fǅ/Tu_ \ ֣kB׊H7<^W"CѺ~T\^;xnM>|nA}~/ܘ35uG5庚,,DY+R}3[#[mS%KNI3-
S*=>ߖnM	Lvvz{0ͅF[<*̹
"'FE-EK"b:ZE;kq	akץ1BIlݓDxv'ȍ13rdWKWo,J>Op_~fuS*f>JKa'%$y,l夺ÝlN=NoyZ'oE	TDӾK$^j#TxVty:s'`PF%a	}"KF |}-]x[7ЛD=@@J *w{pgܘTL}}GXWr%C.
"r[Y9ңBdå[uָdIN4Pąx\F$LlTjyw%ʉW8COgMU M'\JqFT?CQQ8kBCe?3s4*FV'ՁMF 1RhhSh6He1T`d	,A<S`f;2R뾾eA2
hCKSk65%4Q<n"__{%H6v%F{^ulk+|K>ڦݳfnOddMC1G6kg|_:W7^i=;۲"<<ϵ$ӳLΘaǈЌ}7YVqݍ@ug2wZMF;icdB_넕IdK.c/ R,Xl {%7uC"s5Z[{c/FTH{!
[d=DЙZ?.t{emOq/0EJ=ܖI3YR7+C-B_g܃nYkutC}H|>$_-Oycr0=΍bBl$Эy%ҮV8<wn7t~B/~-(Pj~AVrx/!x3 ~~=7 ,2<Y!p(s>:)P&>CCx[^7l2&̔TT̼t +'$5E!3$(-19X!?M73/% (U'$UKA'd*6L%%
ɉy
I
@"@K2tН,<كq-},b\ʩy)i  AKpx[YcL-&N |
Ux  ~};<:!0>#%> x_t2&̔b bԜĒ|̼T̒T̼ԢԼOZr0`ZRK2R7a6 1qx_[ysI%( X!x-, "19AQt% 7?<x-ۦaѳ	OK	./JU,I}>يOu?[|B;n~ַiM3ezC=Q^|ʊ' 
v~{Fvۼُq5A.L''(N֕!8Y'&٬ϕxm}Лe<\5(m~ǟ(Lva@Xf?^ɞ\rm4&3
ɿyH,"ĞM>` F=xkAIvM&W7VeڄmH4*Tx.i7-VŚ"^=BA<IUt2Ma=;;̫;Ǌۧ:o'Y5kW	^O:s'&z!
	>jm-7\Zujs̳Njn۱T7nX1z7}Ĩ7CI,M[\ Ώ!e䦝l٪ڢ;(!E&Nx%՗<԰ŧ$q~(6US3b6$ݨx+JR.\Q󅅒rb>D5	Z☞za#niM,Sm,Ľj;aTkԦ"xoFwî8aډ<Fo>Xw8<@>b	H"=P
FUR'y*CB*Q\3f6<y.7"tdbo͓i`1Zv/3L!zs N|^]ᓘb\L=rB&oAr_
lmx=!i
B "xWQo8~`^Vw:is.Q!aC^"r7c@-REIfn{w~Fޑ֒tڝkqhD9S`lxRb1D/2WA1HI&hpQd0"'K&$W@"30#iSepF^@LӀ< b)S׬lI%:jV&5	7je&L)"K(y&4":\"B:iY$<73+-4ms@MɅ5&iqà;Aߛ}{L<t=¯[bq{4Ğ35@	e1cI&)xե'&S(dL.BihZ$|5Qi&TUtgZ̥32i<DvJf$Ǜ4"f	A0HP$SA"$77㵊hFKeuJc~iOΘj.6OGĀw\_
؃ $fO@T@ MVrO`&ZXƏM%NU2@4xvg9a0L5a0ʒ\{A}1&ZB E	ve$@&XFaxy|y4O>}v;7U*H,X/<s,KQ_o.L3	Aw#\	E<gP%s|i7yDy;7k_>0Jf"ey%ߞI;Tde4)>r	:}7tTދ4Yo	03Gχv־v]??TJP؋uFG4	;mA%OK7S:]:VngA׃b:v6Rw4X$boo_6.y}yi+ĭnؾx8oJbwJ0qjBp	o7JJIWuY5WÌI5[Z.z]f V$+8Dp8ȗY3+Zu(zs&Êx}8|jm!&0[`"3eJwzxhyօSUzq}V-B[?q|Axn5+1]xX@?.f"	{/f<&h70ha(?TҿաF&)+!Z1K䑱L\C"l	vBd-61TVDw!\RÜw$p5Pbln5'#%N=rE%}]/:[Eos C{Z;9W,O\o'αsqD`޹޽_ʊ}\oHc*tFz`[w$hx{xWq2&̔b bԜĒ|̼T̒T̼ԢԼO63 @l>x{xAq(^ #x(aѳ	OK	./JU,I}>يOu?[|B;n~ַiM3e@=Նٔz?ٽ@I=/{y6sd#VY2SJRRKJ*R2RRy&e*\&0y>slK% )WPןl8y6X1dOɽ
s{;zy:;**ꀍRpSR2S␟,ͩ9ٍZ\򓽹T&rMȥ4y+\
ťU&;r[eeT*T{ĭlqA@gHd+p+4`#;9Gjr9HGfz<Cj <x}kP4/Sh]ک]:[u0,2$IcRJsjR9k> A_ޤiX!ܛs=pOM?y%L>ܟ_y瀵@ztQ!-M}qM7}"nb]ip}ݍtMp<d:[!U\Pe􎡑4qr"4v78"/lb8ͧe4Sb,IR]򕻒y,C{'LpWjFz)bTSث͚$-nec`e7.q4fNhA|";.>EV[$ue@%l1)a	A 6-dYm̃x1qqر<9Y|.4,]γ;zbl6忭.Vy)+8}#6-,*ΆFh|g]36X1Dc]z1obXUIQVܷtCg.Re+~TPަ?WM;E=6[lOx!zChC" !X#fx!g?yZ~Qnb^)8$e)<d{l6uóug<c{韜2*Yoz7
\

x?gp[	pg!V	G7H1zgo	7zS	go1u JX`]^8X8mq0L9 $1=9W-L}\a :Nzx!ĵ?1dr*Ior	p[~QnbB5Gg<D>#\V@C#(aU(c!bE(c!C,a.sL@XlWW"!=`bz(5~.@0=	bLO9<ohUG5d>Nn= ~Mտ~xN0E'>
BUH-4MJ2q764qӴ}Inm}nv|hjwDGqkBHD!BJ$\{J9!G`(hX"#<FɐޡCELI|F Q|C&Z#[G,9A7w:=<NYBkb[kY	Źj%'k}زGsѬذ*ҷ,đЫ#Yyx-
;$&a-U%.*ɧu)tLN?lq]["88G6y(f&%b`L	JJby;Isf2;\l*
RHG#_{GkSK=f?yL/yxE=!]ج^ecM cx@7ow2qKM= |dbEX!H1:VYЉWFL&F4en>	@jWŷNjoքįSռ]xo0W\>Ғ0&Īu$&F2%>Q|}J{}>qϊ%b)NamCfx'/z-6H@3"wV9A6|012zl~&FA]шG:Tr	#akf[K/mnw_?]<~,&Wf>sGW|zuυ]4uzLOnڠ+ZCz!C6dO%3TSv!1k|LyuC?)鈲[ei;wEr[d
GsbGL+ą1NGؒ5OlH?Uwɕ`lyY7(|CH*jNO'Ux1RaIX]egC6F-#?зȵ0j,ߟhxV[oG~W@KjTF8QJv&ȲFYu6j5zӪWY?bgfX.QyYf3gfTY)jmʦmE!nvY4@ͻ5b8,^Y|V]ҡVR40&kV
M
YN	Vp
,W 悥k&]l	CsZ*4ۼň&&pH\IК=Q=lDFVRt*thZZ/
\	-V:ZȧJ*ȲE:` AqMڊoG0&CE/5H*kc\Ăl	9([ʗzYb1[(s%X/za%_ίp1d7j R!Ʌ$ĕ(#P}BUVgUjAaoQaa8h3G%Az5bm&3SABNC#9\wH5ћ[~TfPX3XK2tS&`D烿fv#o^K(3BPK޶Y,
/}GuvZS|%Ely;X1TMH%fkUi{	Bc5.l?E,*LUXHdHjOww`{+j6$x- 7s2>))IǓ8V"S	m{i8lE|Jl0TڗO*
}qQ8vS-:ABWۦBLCgE;wd5M<*@G?ξ~0}:{v!?	G	&nFɄu8PsPyK;e{s#/'3x#nNԵԧFT#0l9}1iѿߩ=hXSuCUʅ]^FH,EwG7de1hFV4,Wb5Td3M5g4,ww}s{ۿt2cZ$@,Q:T?4[͔ǹI[< η,J>qc(/<g!N~?
K^x{_x=ug\b ~hC0,iȮkdOޥ#D#`5,NUSno,tӴH&d+f_\V~ xW]o6}H_±]J,ؑNDلeQ#)^KJ޺3{:;ylP6	.ð$e0kSX%={orI(
P
VAbӬt
xWx75Kg?}&6@&!e5CWEHSX14|n'x­z,*~Cż[eڎ:H943*%G:< )TLfH5#pd.()IW)ϻ y*"60j/f[y{FpfgpcnFПN
˛N~ ܉{t#tb~- i2MZg0tBkJ1KY)=:	&LVLe^N5I炗<љyL0kP	փ+_(Yb
4%5qye M,2'8ä?,j^ǌzӓ1) HEW6֌eLmzxNz6+abRѓs9Ahy,G:jSP}媡9>76@X1V@O5©m;aEz./sp/s^gkSoO8]%PAVЏDV`B/.++̱\2æ,K1$(QX,^psDs'n-wvWǩ";F|wG?sdlؾ?rcUڷe榦m{TNؽ	9Df(}|Mi^SnV3AEQbh_78ItOVi6'9jʬ2lVEIԽYwX9TY]B~ziRC>(!Ym8Th=~ I_^鋤ְ
ם[nojY%6-V5/9MP$J8cyR_'RG1Vϴ(tU+Ldqg %#%ZXsJgxgahs%8KuL#l3qiycqM߷jZضh+PY^&=!U/ss̈nY:NܵNyʛվ@gUT0a'uG9y6[{p[W	J{[6JTZeZ&>sļo-TOYf>6̴0 gd8'<;Ͻum4#{hywZ?URpZ'XEj&zhKAOyġ6><a>E5yC/D1dx-OJ0G]<	HIEtPop1m^å_JZ73=bޖ|PVb_-x"hN7ox; E-qYi)O7뮻ZMy)ZnoƆ¥Hh5Gյ"aHUEHv>SȘ{XUܓ;8?\gHn7 `#!	鲰GZAu3fZѵoQ^MZ[Nv	.Ã>kn!x/_|,d!, 6=x/o"d%@4!gcQvxjR<& u
x[*9Or,d:/_a Fjix/~CrC	?ly%9U
i9l=<C<}<\=}\]l,t2SR3&;a\ $l[x/.n &$rxUJ@FwmMqxJB,m#*Nfn!06\n| 'Md8;}w~[0#DkGJ)Mph!8</')[Nַ-R.,)?[^МR ӑ-ܿ1ҬL5H$	PH("$S;׷]/BRFIZuAV)3<FawzW'N8n]AeD230PT1!)EX{q{gײq.9.,S~6Cxk_->CRQfjBHFs~~vfob^bzjB^~Bf^fIfbNfUj^6s#}. pWxgoOx_G?Gwנx?xO?OG(W[CsCCͿzY ($xɷo"d%@4[ <`x/k	+gcQvxjR<Z V	!x{{	k=CjQQ~g^YbNfBiQ>cwS_K|h6ٙ
@Ni*63=]ぜPWaL& 5)شx=ms6+08E~]ۻn*r':s3J$4#H;j	E$͹,<=9"'!/"r<yC..&7HlBAAni[))Ir'K} ?ѐ'3r^^A,5ĜɌy$X<0#bELg#G.4w
>̆č)ƟE~ztńA8?dS~zmwzN-LZu=9	b5qW0;z#	BC
EN1dYLB6#fz U!]l9]@>v7!ZakLw{WBb0
&CjRARk
@NP;d<ȊKƑ&8E0[ȍģ^8鉠t0W#G)*80x`SI%9#
i@#2%i GPD/xz8!Kn鑎G8ڣasa{E'K9nO,RGC7\]Fn@p'8keDo<=0lRVltb3댴?v.GN3in;W%i xx4\3}
++E6A8Six 
';MV^qn"}E)2!ǡ$<Rb9yT<MͻIWgIX3s8bJ	?M*ۨu?YH4H7%7Z+sNT415#cJhNExp5;b84g WGXuj)`]UR v9)<S[F_7фۯk$=.dA&`h/@ݱdXUFlD35S{3A?T"mݺU9`
KU;@_%\ڈWP	1$_U@DNJaq^swyuaߔ$~1Vi
k?	lQ`-\`yJ&";oPxQR|]v:#r~DI>Y	>׋"*vs78޻,@zr!hKC+"{@& M/t|ʒ!aZRk\w2!	Q/"`8a¦C}SI>:vK/\TԧtxxJMP^˻L83_!Џ&±1j!y|P{<<Dl
)D$poGxC>d%;ÿe-mǁa&uAAßo;#BnwD\z ![=ڃ6l&}j~:gӕ??Mҧ'dږkI~o8tMsDT/CE>z@ZʁnER\\๓(GE(cDS_ !@]
0}C"wb9DӅ%_jI!҃/F}kNY
#eyۂߙM]VSXe~Oj?;  󽝛֠s5JY2K[AH`8n/w4nkLoԅ)63_no1NzX y
~vzI]s;eMĸyY@F4Lc]a |<N@to,pECM!k	
#A^N#GZ¸[oef
ZP183\iDsCXsat0.صURtu}D' F$èiK#5U *4͂SӵwF"KC5tF<3Ҩy##+T.!f#C[=>()%,33DXDL,)r°wFnCP=3㡙y`j>J3%P#Fe֤3NWR'%uщ֙V<`; 2(~fl'aYr7XU@/Ɩ>'ir(Ӫ]P5-TEn _BL3'p'ne@pb5;؀s*WPnx46%'"}_ډ0zs,V|:rO,aIUb$eƛUHQ/iès4()qMTd[2S|Z8.+񼪙pDJ	e2\(%P%J%?X/Z&$\IjGdYX$>x6SS
%/:|H@cJ]!m4A\tt-03&Hc398-LwHepfpN\f9ՙn>B'wٵg4<$#%Un"2wyykRYc
eҢ?\U֘ڕԆ6G9]wOV2P@f} ~5'5GcD21,Кd.@̥n֣QhUQYzڴ|iD/+I=&蕨t~:.I<UQNc$5PFЈٽeFq# ,ߌ7s\Waㆂz:f~}@x	!h,"ήD+)r]ƟZfP71q2˘c֣.WQV7fZK|Lr# -	:ܑg6A`6'7<9A&K?/}X2 KUm1{ W86FY(vQg-qjݺu۽ݵoΡoW"fsa/
ʆp'	MHJ@8cL3M4jRēr3\SKf[8+F5hž<'K`6K| FP?rA;n5ioЫsf<ي]W&k2|"uz;r	p.z/xu<m7w%d_?/Bmlt7K|{-	h23^ί-[k%[vͶymyteXI21]=vЫКJ
b<T1½?UG3eL?exkEݓ6K\.$7O[Ů[d(V8N8m<#Hv4 Aqj|hL	c__3G:^8nYt~̄oMeX_&մQ$**}KkM곷%G8vQWD=IX,5VۧJ~Fqktas&%3Jc
/?TZEx-Č</r"cj5OlZdK <ї,޴iԡ--M1Reچ!×ZM#F	ki7-C8?YÒCh_nwDڔ:wU* n{;{G4h<		Hv(;\LFҫ(ơBێ#d"?0ˉ4} 1!ȯ4c)Ho5'<'LߛVEc3grF>]-ˑѐ)BB\*A#.C J`%.h*NxIxo%.(5օQA4"y;3%"*}/,DR`N$BRna:&]瓛Sx- ZSyE'OI<Eh ޏ>_+|kH!$B޷֏I.O&?_&@a&&\9Mܲ+Gn	qa[6g(+e㢖$I9n"˞.0[$UD`&iȒ403AE,"FF,i#e=Q8<} - ޸{_fClqK*o3/zv35N\wo;?>i]bUtWa+@*MpK//e-5a_H
Ld)Jd*V4%Kb0{/+q(86:`t\%. T1y	EKCc:#Vu#Y:M;X( )eGVXn]gb]A!_n4Z`ʋ(aFJ)2XUCM`Xwem"x1OK%
(|7]8ulUi:5ԐrV:^GnJY,Jr=Y#s\כŞΚX㖫5BQ/A\/JE%~t}I.'p̤l,^TSdَӆ5:ɞ)-kbD.u0R7M"?;OVH˼mQZ$ƶZ=:fzutVa]_S!?2Z\OgR*%M:C(j$S+SXiϳ׵0^۴*=wU\>6FUfnX>)6d}
j6+	DzNyцtiV, Q-o"rFFXV%P*đnޫƲ>&S2$!"!M)>qރ2zHbh^3qN)iXQMrW=%(vRّwK9a//XS&t*ֆ2fN l#<lh>l2ϮWT$ꫤYB,:=}ڞd"V(<Omȍb}dUc /LN&Aߒ $Ӡ]Qq@«@*2'"_X7WRZm#H=9c:sVIU!AqUÕMCZ2WR!8j/l~
Aa]U4*)SBŽQH)j%|ݬF_%̪BBF-uDHa_%UuGQꨶ0Xo4mFCrS͢S#ʩµhR-es_},YCIvϜE\.{KKRRyrãM\Cuܦ8B܎()Mۄ%ɑM^s]ys^\cj,A{d艢ymx5ӯz!^eʓ_D.to+4o*DiM%S1ި_$Ot ,$;5yX"cˌ(<ԨWzşfZJS$?^蔗Ol$߰XHqy|z/ȜYU!%<w^UU&_ ]BYd*T<GgVTxK6P#U-6_zgwִϙhѐ_LBYG·N>r\kɍ b|S#1/p|7|*ӐcX+G-T∳\xCT R-MC'
:>?]<GX"Y.[ݺL=AcvN%ZӎhZ/_^i7/V!tUq-ah&/iI_n4㿣߿?
p6SibMwunVq9x *ħtrov"+?ince 20Q+=	
Fture1-<?4}TU4vMTkV'twcgx`c't need it.
 *ax `c^lri isgYpqresourceHandler is nullpt%^M,x Eħtrov"+?ince 20Q+=	
Fture1-<?4}TU4vMTkV'twcgx`c't need it.
 *ax `c^l#resourceHandler is nullpt%?Cfx;i2J7(|dmqL+3S&6'Krnr 'R&x$ ħn #?{ozmFpGБ)<nYx;irY 4arx;<X`w|by%%
ZIiiE:\g+HN~hiYP9x6_ ڎYxۻR}EEɩy)9E

y99%%&2 c#mxۻ<am'2 -zgxeA
@H<JD"DdMFwIv&KDOћt5t<exr(OaF]52!)9R%`!!Y[``Ks`F՘^qe(.#RP Br?ڇ?n+M1n#x{tiCP 3$<x{{L&Ѵ"TǢ$Ԣ{Թɟp(`.t
wwqRNIM*wuGEhB5$b=-}.Pgg`[.dy% +ahnh C05CD%d($%悵O>P+"Pjd ɳX*yd*\Z0GO VcZ3STlf8{{yLtjk..Լ4}}Q	d wwx{ǴiKC7'D _	A0x0iCXrR7	2 W x:iC N x:W?[f#E]ݠ C]];-ԜĒ܂T+--hb7ޱ(;<5)Vc}~IQj~nbqIj>P<5)89#57#1/%'Hjk^
͖5<;Rk -FxiCs{[ P[xi-3CqbnANBIE<R2r*
r2K2ぜxbT"T}`cQvxj>@FW5Z *pxĵa&hZ~BIFcQvxjBjQQ~QL\`f|r~JOLJ8Z0ջ;{p)ey:ţqTRJsŻrڢPͥ 6Y!4/;/<b>~~~

@Å3,1'3E (1bHD!Ɋr
I@_*$&*$UB	_H\\ʩy)i
X  t
exkLSgSzX
KyKArܢOS<!&n'٦!Lfl]sd,YtNcen̘htb{NJ/y{~.drצ2KD#m%-0"MAAE2Nf&A*=rm4M$Z	þh7i깄B_O%L_]q"P.jOC
"7Dn+3s )^(*aاnUP'%2*lzpA:ʇP,/`4FUgG*Sd=T5K$3#%@_b-xBpLb-$2QAn'8!QCuW)ݳ4n*.PĦr
Gd,6;hՅ[.I$, dp+VތmZgِH3ٚ馜63SdXAMd5a7HYxG[\UGe`LJ<Ts-s̐={	*Y0{K'M$B4{\<T\MNL4CG I1;+JTuWt5}[ljjh8"ؗ2T>[yeϪ2DURgi$}@8M&aCMYq񪅰ڴ8E&iLvcI-nx73_x\9HDzB<[@h}DmW1&4jQ^asn<1JZe{C9YT8z^(b[2ӅwIC/Ac>rPm|nn,z81OL ͤgfm"[0Y'WM>R#y^(Y==Aq?
49Ul2vfz!ENO*D04,ge}TPtzx~yĳS_ky=!R2_aNzEU`q>Za&Q&"/7v`=Zv/}t!MWǯ^]"u1 C wz$g>[zpx\4{_YHgm$ՅRωNޣ~V-?a(пH˥-*SXUXd({һZJʢ6Qv\f8.&Xy\-WyUM4e_YRbAO~R	+6$j-<QɞZUJ]Շ7F|^ꪕu)볡"ҖҙgZ8]7 hks	6ZgN4F`=A%+j+ak<V} |<֦q]j@Dܛùd\&?7w-Kn&)Zct8i|C[7'ݎ@aa+<ֵ%ۀ1pG:P< #O®qQI 8݇0GҡN> #E٠% 6pIk)s  (\W09x. 1ǀq<>C!J,=>85D5I;0SBБ	Vo4xq7B%%
I)+8<<'gP<\RXl%H!$#]dKK$܃L'jSPjbd^Yq9Ta-T&/0<OvQɷq}ɉ23*Jf7BiRh:qN!$娮+ )Ck"5
M	Zp'˛yL.8@MMMNPeVp$nAKr=.-"``	$^.:=T5=&o6A$`zu@Kh%ũE.%)e{'J\5O =Cp'I!=^#@)3|@9'$%&gF+&?eG{cmBL6ZhxQy%D$0WDH=4DrJ>H&%ZD[njHL76]Bz3cbU5E8$<as|6czEz;geh$`OH6Y[n#&aV6i-ɿvcu뙈@Ǔ'}]'O2yB~egl5lֹuxq|8\\=\'Jh*d+)dd+'g*$')% 9) u0~N>.


66
Y83JJ
S*'W
qx yN |y'(517^(;<5)&JM)EBHF*ɖ&H*"?+(5OզĔɼrZ
vM^Xa2yloK	"ef!lgUefY/n>92Tu)_CIQ]W S(86Ej}348O7!]pr &,>d9GKI4'#<y9z\
Z
EPHp\uz&k zMޠmh*I29뀖ЂSKBS\K	SNjJzHL@KO.ӓB$z*nG4R63AfrNIJL&2VM~ ʎHIW0l%<2KtI`:%zhde/ĕ*&|4MJ,Ԑ#Lo4mfjnpHy
lp!2v;H)v(NMH+.lFMVӭ0lrO#ҖZ["Ʀ3Ta#'/j)O>,%'O;e2j ^-xq{ߙ7,;9 Hgfy	&aU,.A^=(5$5eYɉΓ?LS`sO>X 69A}[rm7ga,"X9Ęl2YZOAfJ(FD3RRK23JS'o7cV5g28r\e&qs_×ir~Zx3eN;y[N8hLUܛòa߆B\.yZ6'MApL"8qi+eT,\Q\d#yAY0V e9X	xTQoV6DSDκҍIl:&v>/uls}]&y$ȤI-{MB{s߹8FyZ0emD#is&)CI&e
tBɗ9$QZ$):Ia >]5'WaRL`{8&AACFB{i5ް]~;\jAbJ+<rAΏb#D.j5:5i*f=C3鼲gv_|#SV"|Y6T5ڪ䷊B+M4-7캦
UភbĦ%Ppd ǤɲX I$PUx]f;Gs)A)}p8	{"LM03FD<8ܘ2]ܵmC7U.St,i	');@i˕΀a0zõshS{4Oy|u"]e̎hoZJӫm:=Ԏww:g	YW?$Һޗɷ9&)rLyj?'2.zų\ْ0ϲYʸWVʇ4	tL/w\quwGݶ<63tc}iDJ8%Uqmc`;~1n~PW>6(xwż\sxs\~r=zS6ƋKiaEpLx6iL'XqL5eH+JMU(LP()LOO-R(,(>Jw6cТTR KBQjaijzrq)h) 䗦2J&6vO-q<y}BrFb̾7ﵖ CAxWmL[%1&k |hJ `ccNMwƱ/\;5ݚTM	&e$KI֬~jn~dQL;uվ:UblҤ{yy9o|ROپѥha¶Cϰ@8@TD͵Pnnd\zN|WYm?tu6&&cS	$9$q_il*|0ppm;XIsh "dOR3Щ8<,*Ũޢv4**n3ŏ8Nm>ԕ/ 1$#4kκ]z2fY}*-PSRK^"$S1Va٤JȴX,υbDD@Fwcҳɚg)L˱Ĵq::eLpF6n;6+uylHX4x8Te:*9ڳ^4R7'
9>LCWQ7.Õ򒚬qX=uu=MuJ"t2sZmӓ	h2'Xa3^]["FHTU]~Kx\Ti "TrU㍪T	Tc:]B7{雵0}tSxM8mٓ׎dNyvamcVYTNܣAQo3dj1ٓ?iQ@iUCJ(tQ㴮/+fr*,T8,?{mXF{$#dD<|/_ѧX;N:tY}Ac9"̅ì xrOE)#t@|X5ejO۴mjyY{_Z(39X7΅t]1>_4-q\$]]]]ΝŢdɾxjWۦ{?}=yha3Ex`X?H[Gq9er~D,ҭTZكǔ1udNI&QNA9Pt)=T6[^֛15CWۡlsȬȒDj +YmȒr cVmP$t$x):tL{4tc6F@{u5:ʈT_.h%G1~ u5(7#PN\|N2u %[p݊Oܯ۵e^.%R\l`՗+~x	lr~K)}fh~czV~q{\+{;Oq8Ą<biz6gG1ecnҁE@\,B;	b1wzq|(;"$KB\~T俛&pLXDhEI=4M=$v	>B=N名Lxn)7e.;/R:fȌ[7g1pTX:vWXץ[iѹPc҅~mvܪ(xVE&<4+>/g!vrEVbhGN_*GՅE(տ^μ/]//~3s2sjr[J7<bV[2[X}J1x%iS&x@!$p(礄vX~^39.x[q3LiE
%
EI
EEEœ2s)?1)PhT"URY
WH+ͅ
2hB5CRQ&PQh^v^~yĦc\SU04740 ".Tye9)
E ~a>.A:;]T3KsRRsrRA,߁ĒTļJAf@vpuruqwsquAnUak..Լ4}} D|IRxSMOQLLڦ#jE)FWj* $Dv.h;ybL,ՍKHL;]hBLƸ"nPB7~-={Ͻ7eQ6soie$K]mizs_*GA9e02pIzcmx252cB2輗D+Z;*!:3Ȁ91-rݛ5":2C Oڶ|RMLnvkV	DS-B=?G3L"ɳf{ .ãb#׿_&f\b%K%>':#^eݸD:4k\h^M䦞7]Siyϙ\[KFz8*^PWRLMǺ-᱑TQL}Rj9L|?_VklOzzx|;%Ac׳\rwM-]Rf]f]l'`+->SXE=.Utտ}rxsIfq-Ԣ"м<0OoB3,1'3E (1Wo|,ΓXmx;Wٲeux6 W7`x۵2Be'OÉ6wOg 
oxJ ˞ݟ">G  uint8_t *buff4@^ N#>0 l9%<	<RGɺ	xoFӭtJ8V=m%ݰ@dNB=o~͌'mﮑ"y{o>oVx$yͫoUD7#l9Z-}W$
\&\0^Q>̝&Dj}CNqskY-	$Q 3×+ߣxr(>S_3{ h[HfiQEp׽N?ͤgaH%0<:R}!\:IDo'`$!^(7dFf1= F="rFM7܍ɧp{Igп{>zKɇ^IH@LɴGeHqMRb7`-GtȜ#bb酨t-=IT7$Pו|.x"T]HTxlFn_{&e3/rHW21NJn `|3T	=RcʰaӉܮXk|X`-+}~TPLBن]6lz'-kmZ$Kd:#O݋k%
Ǐ@z߇҅!ŏk =^|abpBaEO=Lz5\o(5Mȥ*bg8;| r$@_Ml̊JL*p-j1n"f7HOf㭉TOB'B1p	_ױ0H*஋ Bz Zn*!Cf$JsaE7͌@>0a,
x{$H-S<싻oTY}ʏԏ
R+}c{nǇ#Z)Sbʹ_b0.D>z:L,(j/J0f7bF:TXcKNA1@N,hc
Vl
K3Wk%yEOb[mk _#~)8_QA`]&\V/ ´	j^h#d&\o	e
Hϖ*cgOeFILFU::Y쐅/ Nމ]!t/rV[i{KzK"
k	>`{Ж\=ڸهȱI\a5w|˶ q!u**;Yhc!U.ZmCm*P1Ap cjtXl- 0ky55TnwGz,mTPR `X}˧b~fW+Ċ*Y]UɔYKC̂f4+Nykϒ4EGkH@e%]ZTK|bcS]2tlMIDBX(8oE &mX郳g%DY8
+/mqfZ4 ZfV'ӢzX;,3RW-G
,HdxPa	[_Bi"
N?W"YW,Uqp9("aluN){Â//EӦw'RD%0Tt
vi.5V̦1۷=3Tk#vn{MCu^wGptn77`gQF\ 0#%p$.L#@xTs!A?QT:2erØaԎppW#wLP"&:C04Qj"K|*U.pPBGRHy}úN&~)֓l&ؽ͉@eZankHEdeXEٮMaD},ah<2s_"7S}/bJ5tp(v|&}9PBV<WAH/2,lͩBTczlDOm죀6|-4u7Q'4)(z0_\F&efY%8ȇa阛aZm\wPŝ=_"
gʴp|rEPXA8rzrh]WoSJ&++vT-e [[0Og	j`S2"|҃֡qpLo29OGوS` a7|N:h `{=l<(*Oؚ	<+zIw8H94SIka%<fK+֣֛5^vl@v鎒ߘOa2b+o>W!:/1%\w0Meua(@ 15>86-[F9 }$-[vr<a9K2|	#C*k4:U8QFl19a}4I1~ "op"S_f)0S`1&:FUOqKjiKQ[k5).riZ\*aI]1Z:kƒT*Gj1PmdBevt<V{V6[Cm؄)tD|	KKz7^SA-p)!,ub2# -qQM<`	]Gtղstֲ(uU pav+J{׼z6UGnywl?VUnGnTz.G/.GH̎/3.L~)*s9ކw;PS}*[{/JGϻ>f~o-;$LHO+9Z$OL<,BLCa	~v5a|^vpӷ/~yY4|t\>m(ѢAl['在&^حnUnfCr͂9d8_azެ880-E>v2D)x1#$`W`EЀέ,ad<X,{ i`}Fj\ebsNUE n)a&6`ńaԇ-ϬCqzx8 @1|XcY۫EdK.ih0jn%5u!ZȌaa<xY	|J T"?WKWb	V3X-dJbUӘh`500:a WRvBѫ=llhG>SKL*m	#XK#~72^8EqHo[?|t5kH9=[Aw==Y,!mG}#< ">qMV4uI$?b-J.rV68߬X"zY/XPw&#S%ӆf5R#{Q1J\Q~tmqH7@NҊ.k%x=#"Aݐ
W"
>sQl1i>?z?d'y5^Oe iٞyA++3Vp|ܔAM&*F IRx2dt+}<_ӐeoHAvTDO+`MJ sݘ^K
;{vƣSXFfgJ8aiO
^7_:\#U\Y2HC0+ġ޴5~Agy.L>eI8cN(>/Uǧ	Cӯjo䫘wC=/<f*o O_IIx{5o.ӼΉ99)
y
%
ZZIZZ
yy%

E esSӰRRp(H,JU(-N-rI,IT+I-R(馤e-MJ"kP[ 8fOBbEfBh^MBYJ" &qJmϷ s$W{x) \~Jv$)N3x{5417M8Y]|{6FM<L&'HL>Y9,3P&əY6{a+S/ecų_2Yv*ϙ&sMޮ?[?g	nޮarz3.يG`R١ɷ<6O[9/1 wD53xqӼOz3<5'==i׊gӷ=t}6u|74M.x:@a.-Ģ\"ĒDSV<})@CU^bO/;{f!T­xd]A͟f <x{:lU턹7Wpg˻( 8y?f7@l⮌%X'syL0ڼ]z*'cҢX&`m2G@a:&W1*Lv|΀k .)xk*![jf3%6Znd l!xVn1UtAJA\BM4-PhD!IʙIN$dQE|R?@kXtWIMƏ{z7u94EΏ($Q@~5.N,ޝNV_3JUE(n	m@geuP ]ZRy7˝u6"_T.7 74FT@=D桷1\^gTcUNl\K]\tx-J6Ŏ@6qiNNB6Ar1aѰD1[(߅NӜhR[f&Pa큩fPXk%5;t\`eù5ÃEs3Ҩpn,)²J?Vn0boͮI-hpʹ<ۺ9q@:l)-am-geXkm*$3]޳C|>XSqFveE>nn8*v8cZ%xEGPYSλ$抯ŧREqP]s1y֝M,Lsz,\NdTȰ-isJ?E@?Jܯ8Z%'~z\O2ͳF".26(s#7OcҵZF)Q]:?DȆ?.ߖ>k1t'z~/G%XI%(%,a1(J9^@>=8zÁ?ᇛWO3-xG ['9H-$"=Eo=7		 kk*7,;-gVx{>Ws%3WvfcQvxjfSܓ[xY+'Uau.n Ex{ާ^mʼxUXKb ,iqx649 xxS vgz^x	-va	/\"/	0)"}(2 /;0
IW	vx{34&׳JNοY	#{PTd<13>WIeAjJx2
&	M<Id;y{^ SQ^dvU=&(󗺮<Df/w%..}--Z (u	zx6LWyيsr&sNVQtSp(H,JUPM,Vg+䧥q)hU*DbW4lӻyuDtRKrR*Ɋr9'	l~c 	4{x4L-&׳JN߬b37;3>WIeAjJd/^lkx
6uQ+aNw/࿚Pj24U
47Pe h%PxVQ!_jB1ɍR7H?g r0g#x(k/n Wxk/k.ې-5y6F <xk.k,ې-5y& <avx<msHҟϿban}j1	.q幺i j$vF/$BU-tY;a5Wț/bvboǮœШ^6ptR,	\x!Xko죈qp~uG	1K d3L|v*f^p=k/^:
I1&ෙ=h,xfs^78!yWCemwk@ZO|!%oWç,G!"u&Y@0'ț&qfEع= v]FQ<tc[q3b!kqwЇnX}L `y M)GBP
%7Z0O\y$ vV"Zz*AҋyLJ''Qgq8dĔ4ČE
Zw]D?qD*
?opi%	]%?Kₖ6+X擘xA,wĄGk1m,8\I%GŬ=45md,mɩ{ߓ'֍vd({qcg;ÛV3i?<t&O^ v  '`+cw~cC >*MDф68-7+zx"Ng`xq\obbx`;B#@ ' %şBeg>IdG:s@ajBJ	ñRpCOu9I9;~>#|9Qx<٪VPw*	ᣧG|H 8#htnwFg618h݆;O~~{0Ln[ֻ)(VM\?%K>5Zfs_ʨ1k#lA<'=S$%d/;)RU1 X &4#;0EK2)O$fS0EddZA̛yp`	0		8(zY+5IDIe6+bz(' 
@dqv`N9H.Cw0 ЉDSciv{_Ddb8tefznhM:	?qƇs1sC1/#g&W"X~	yK9q.26V`qR4XKtP*^Xs94Gng@,<iUsJ%0ZqgF>)`3֡_>T,Of -"TAz"z}γ*W8E<S(<3X·\i,L HJf|GB[>gӢ4="|B:M8-%ฦ^[A͂h?q"bf:^9Mgb%ˉ%O1jl/06L@8 nO̹;~4?A![= Ycfyܑwc#u픨p:n/\KgX74wn'ם}o~b-hU@EQ@,'VojAᆠ0ᰩ]Hci^@a	Ob.:ptnRHH5e8aPo?|"a2;hbkLƜEb%Y4fU>LZ*9@1JlO
\ۨ"a~RN:;,+O l*/}NH=<0ɚhNE@rO
@Wf:*ɟ%ibm!FLO1<:@~?xPkXeiԙLm˱P=4"J_QؐKC/}Wi,ɡuIjy=ӎ)$Z J9DTbF
%i,	T|a!JZI`#xr
ߏo{
' ^Db9&f1{` ;3:P>3+>47CBd@j,I21H:|M @DKxF@ro 2Sa8d@͎1F".,z$\]N_( FWE"Bkc%(ςb )'Y>[TW
?B$x^}_̪~-	y!{h _Ve.%w	xq-_)ET~Ζ|w"91=;MHFE.ϖHp¬,h"@'eqHCvzťSP=AWR7+nqF3JR|)"E#
_l}~SSrv&}IFҜb5,CIS.7T|nnmPI^HГbsrg/&=5<? .TdD+
4捴4 
5ʇ
 |ԍ0]jlדְun%Nx
AR%A7]@"eP.}<6
UD;t,>B}栞(&9zݫaki2u?<YJP@>^z`<IO rJfa|kIɖ
jEjĮLqسQkٱ;vVZN.gWԡ|LJ.%&!u,Fz'Uw BFPv=GzjHМT&!7T?Xd&MI|Z	Nէ E$>usH!B4Ls^I%u=ۍ|ʶ[c
JTW?_pY	n*6Xx_Fv.L5-pH2<w.٘B
o NysSf}LY4q嚝ٛΘw@V$;$fs2JHW>}T+t|[wݴ2H24s57WԦ$b L3>P6[ŗ:	{?>TUGaxSQ=	'sa0jÒ6O%k5 'KхJp@TW<WJ'PDl?eϬWd;m<z'6=9y*$p6k8JDf7DlL:	34TtU(Ay$7)QgeMIT^FiGv,C:J3hB7@7WJYTDCnzë*>+L#aI>;[0tt 9P;D+4ފ2zN/DZa"%ڄd9Ŭ1!SUI+QwF%`k9	CCnu2)ʱa~R
ՆƂiL_,nUTak[={1+Peҿ1LP[5R伄RjdUsE|KkVq[͐:}GzaFZ!>fk<?Yg]*]KsKTHdr"g=5=A+[/k,\ayuA-Bw3A%[CV6
@ZdL[Ns*tR\
|)R>BJ^_>t[3oѪR{_؜|loFT9-a#HjUt;X&-Z.)(,9춑@WĦ=.Eݧ7Z	J$bQu!c[0rwhEݵB>5:M^p-*e4)9Q'q~8}lF+ηsH*_+QH'-vy^iG%R7 #GF[,i^>@&>ZB߈b:..Qd@l")^<] ZEV
dd10x}:M	2&)kIm̀DIǾBҾHG	`ťqv]	0 V(ǩ؃]5JscʷpVV9Pv2TesI,.p\9wũ	^W'OE!z3d+h'iw-5IZCĎl7)}]UJUIQ՞2Y(W{,8mX:kY 6Z]ꀰĘVd=Vq<ؘ WXOHv44n;gFPK$w9xUim}N-rΪ/m	`,Ge.Sv\a]os]V!OJgtpSZ@& 8 DV%uӪqmF>)/R ZՇtB'IsF!U]i\Q*6?3$ rE.r0rs`nn#Y^'9I KّίiթЪ6Vwl
.j;9SՃYuĄ"p{Kt+BB/l3l3,d&eQxSˍWArkWeb内核版本，请参考
 * [M114内核在OpenHarmony 6.0系统上的适配指导'qC6.0.md)，
 * [M132内核在OpenHarmony 7.0系统上的适配指导'x。	_系统默认内核，OpenHarmony 6.0版本默认为M132，OpenHarmony 7.0版本默认为M144。!POpenHarmony 6.0版本的遗留内核。开发者可选择此遗留内核，若系统版本上不存在此内核则设置无效!%(OpenHarmony 6.0版本的常青内核（OpenHarmony 7.0版本的遗留内核），M132为OpenHarmony 6.0版本的默认内核。6若系统版本上不存在此内核则设置无效。!%(OpenHarmony 7.0版本的[常青内核]，M144为此版本的默认内核。若系统版本上不存在此内核则设置无效!:常青内核，系统的最新内核。开发者可选择在每个系统版本上都使用最新的内核，OpenHarmony 6.1及#后所有系统版本都生效。!-设置ArkWeb内核版本。若系统不支持指定版本，则设置无效。
 * 该接口为全局静态方法，须在调用RinitializeWebEngine前执行，若已加载任何Web组件，则该设置无效。@?&内核版本 （详细说明见{@link A})。PApI获取当前使用的ArkWeb内核版本。
 *
 * @return 返回由{@link A7}枚举所定义的当前使用的ArkWeb内核版本。6ZB D判断应用所使用ArkWeb内核是否是常青内核，即系统的最新内核。
 *
 * @return 表示当前应用所使用核是否为常青内核。true表示当前应用所使用内核是常青内核，false表示当前应用所使用内核不常青内核。;F}G3xSAkAlBLJKHVD-ŀav3t2&	񖓇2D٫=Ivl4y}{ǧ߃n8!Q**xq%a9i:	)&xJ[!*DCx6BP5]9>Q=Nڦn"3~6͟s|/<ށvr-L
L
_nMv&߮$kBp$8vP'7O~)E3X](,WW/~*l4mc)v.С49C @OjRe^=}j)mʕu3/uMǛn"j՞hE[ѿĬkvhڠ.SYRoZb\g#xP5˺I$}p:PjȲc\SmnW&<)r
hːc#ͪ8y+*gs̜V'BYW:>8T3 Q.ŇFwsiśǃ1b9U]bAZH(b#/G6B6Wa*JL߉nTx{8qlZ ,;HmxSkA5UFj/,iҦkҨ҃"JТQf7:3c/"xr<Կ@<x<z=MՓݙ}͛1qb(=W=*%(,5)P!:3Ju<"L*_t@rȦ4@l>y>3Xb-7OG$Ҡa! L@!`7sy|k^"6nR5Fs>W<*Ip5:6qB!(W``^Xa_O6՛/VTG_#^HAbp*	TGbK<IqP^,C8ˁ/:F\)R:O4V3xO
p;ya\dL]l9yfc=gZs@l?Txt8-\SNlttTD2ze)Ad9AtƢgEL'g{aD)ʏkb\[qq4&> 1GI4	mLVDlݼ/),$A

.{`&g9RW׆Dl=G%v</1\:тPpZ{#xcj_?fш^9Pt6 =++w) }׀8o_7J@jCzLxزdD7SMpgzKȪ.uvbG5tzrLR5d.NJR$IMxjzirirI3+
	blanklesst	: The errCode of the blankless.
23 The estimated similarity of the history snapshots."( The loadingTime of the history loading.pageY& in pair with the
 *&(&g1webTag used when the webviewController is createdA'7current page. It')
 *&( API(0terpolation. The value true)&
 * interpolation, and the value falseC)1Ufalse.
 * The value can be true or false.
 * Action for setting an invalid value: N/A})F	b<L3
	*,fm,*-Г-li:%.Y#3 about+^,N and enables the generation
 * of the transition frame for the current loading	<
 * loading solution based on the information.
 * This API applies to pages in an applet or web application whose URLs are not )fixed or cannot be uniquely
 * identified&cHwebTag used when the webviewController is created.
 * Default value: N/A1.'Y(is returned, and the API_-O211,current page.
 * @return Return value of the typa<L3{3\
 * @param capacity C405Xthe value is set to a number smaller than 0, the value 0 takes effect. When the value is set to a
 * number greater than 100, the value 100b6R.N7Bx8q~&̢ڀfOf tP'xڰ)hA6 ٓ9lGgY~`d4,'&5yC6^ ?9xڰrsKFFrbRlL&ϲ|9 |cx`hفSHyYb PUxzdeAE,L{y,& 	(x:P	\"J:
9剕
ũ
%
y
EI
yyy&sn 60i f'le4ee9 !F,x\Eymas8@s6O; ,x\pE<3u& GVHx0 tc ''hr$s14V2`049J)%"xNBA{bmb7HEgI$Q,-{eD0EL|&[
=|svZj!9VvJ9XgPRg7zC$P}dEd1r<:GeJɌe\MYqDA`~B[);92,P=CD~&UH,ЂVu+=W?kh9KrUQ+19Zq?[OJYϞv!k<)pw_Nn=\O0'Z~tNu2x\6u-ͽ<'5& LcIx{7b+zw*z AP$x{|jO"lorMc ioEx{|4iC	E/ ;Ll`x{&i+zt- (HpxRn1>
*!. Q8*V!*E(4,v,AB{V9\s- `4RVk{|?_|˻v8ՄCI4q<A(5&4 (m>.Ci0!+u6|5D/!EڐUwl!S҆{g4 iQ@w^3gZ$6O$K<Q,`:CrIL;>40aZi	;MDuފYX>sK~{݄.^'Y𜤪%UE3AAvշk90	;#73gג5G7B\c
VVUW-p bs3bV봢W.A3,+Fڶ;y1GZm/M#q6ʥ[]&b#B!S;ݟo<c9g?>jxkK9aPNq7kf ~	
HxTqt{jQnfqqf~B~F~^!sAcsܼAےo A=4x$ 22lCR_,,gx{dQufW2N#yn9Ό71nf[?/:^ u=,x{d4Iu'd9,=LdGrLs7o	b̷
"~_qu%$ ĢfIxUjAB# xyXk)M0&eX
2{2;6̋>>/Mj-엻?~~E%+D#46Һ؟xaZ+D*Zo~saksP5!t!f0;5rn`r%$*1cXʸ$,g7%P\  EJ.bxǞQAB:袞1RHyi1g`i[e	K3xbheOjszX!1hg!Y	lxU>=p<ȴ*R~ԤWk(:3$&\jRShᴔpڭJO]oRC8LPifUtLR&وMZFq]Ƃ²xȢ100T<FkYkAvn<]s]p9vv3pɣwRn{3أXyZ4K ph!KyXmrI?id߱cԄ3rvgT[ƻ-Ooiu-081b&^j@Ǽ_9:mf7h5ڝߜAl)2%fzz^'A7>ڝ%ǜkB54T&lỡe*k'Tjcb4r]1.߬,)iA	ӛ%q6su:Z\2yu]).q..h1V*C\qPx\u'{R~~^ HsfpxUjAF xyXTDM&4&eXa=YgfF	Ek&j[:7;o?~cU%o+wD#66ҺIcz<0@"c-nV[Q:l3@i`	70ed`B	1P,e\Fϳj.Gu"c
-f3W]!KezwYtQϘf)<4CØ3A񘥙Y<Mq!Zٓkڜ8+$&-#>c"K c6^bmmCO72xT=5՚$<JΌ#Ip4	Ԕ#v8-%;~ Sb[j	J!1I$z8=	ZK\3X/XY4&JՕGhs-K{8?h4΍}.6v`4y1O*vC	~co{+;/Bf-r3>MN4	{Z@A;BM+Oːq:#mw=FnVV,#z!ntSǠF33h9EU<LO/uqo	~OwftI )9P4	[nr9ڬ4MGwݠK#8囕FJrPFI\zvƪWL^]EW-|,okZ̻v*!@}FZrxxڧ!ys*Q.Ƣ|Y3Ne,!T 6=x$ 22t-	?hxSnV 4YOY3m"L&ge($U*d*$%榖)&$+d+(($*(gT RKJ&o<o
;lA~Di֦%df?	xr 	+O$x]SV_q'0;>&qO8}Md(iBB<ڒ$4$6@%l꿰+۲teɶ@,]sＯtEGkjEA)3.C*ڟ8<!:ư:0uv2DtH(8ӆNaY4:~'L1.eш0Ғ
9D)	QF	i$4aJǘqژC|4D
ChV;:p$uP+Ei㢁t
+
ǑBXM	cH0$c8J1YTPRAuL1&)*,Ƴjf%Ar @MH}(
Gch8F&<g}Dá(CHg?oQ rG:Ā"#	MW0(1NbDKe!Q,A"*`LGDUP!\PGKKG+ELҐ,e3D,(H(NG㲈Q,I0+D	z"`f{:E$vrp5QjQp]Jl&-νMM>m\m&s3ŉ	3KpD{;8_&KqY4l&HYQEELDII+	!㊊G`q1%I%[2Iv-H88twDBB؉ਘpI:&1XQ0}c"AS:7:KdRYk_`"h_p=N0q):NgG	XHpfJ|Z>5]GJMtB/s}fBcѹ{C}h<|!;-m+jsSpg7yĘk_'~\xsӂ#k E>upP3	 |>p~E1߼zqu3y얍EOGC^)e~>2G-5JD_hx e[֮>Ԧמ\Ӯ׸H'+<b'nzܢed01ILlamۭ9maFE}c!@qY4=[Ц.'Ss'u9^grGFq% 2f7+os~Xf:&T8\zckT|Ҳ.~
kWo bo_4מ'h+/
98Lo6a,חT;wg3[}5^AF0p8(Rq!q]~g(IvO@Ǹ>`7ɩ;3mLP1Txy][[5=cn}#9o^,xm<+	muVxYL.sh."Oԭyqm,ZOG;VKXPqCaAn5׿۠R?8S+bRX~TlE$]iD1J?mn:dՂRlq\YNyiц^x3fՍtR-ʈbՈuX-c6	mȬ
vѮOKEq7S81YyKs@} gOU}[X*h赈Љ!I"km~F$DeNb闕	,m@*e^eP*dxAеu^6|oL334&+[+rY\9[U6[1;g,)f`%rSfK{w1B
3ki/^g5k/dqkL>Els%a3_҈>97V%6{y8it(:7~#=M5$RsbǄXv@=qnCK.!EU|whS!_K-CI48fP)7g
_*AQ9,I>Ƞ$&xmzC_mss9˼T9xyA!С7 f\X$$OI֒bTʢ#leZth@L#%)USO+=Cڲe!jfe巒ƚ/Yʮ>Ƽm(肎ta7/ץ/]Pce@o:4?`-ȂA[YM<ޒ[ތKڽn$HJj8]cѸzCJ/5nJdct+P+m(Xa,p!u3d3ݢћƍFyˬ֋uvRb0-YZד_WS%ʫT^TUP<4U75jܹ2
"^c^z;h]%33}Ѻ2:rg82<-58x->ujΖtՈꎘT0OI<NЬ8c B܁ʲY_~;FăB6RYGtV{Kfj<c8	a zsGݝQn9pwL'8t*MwdY%akUD`k܀u0V&OcnS57N#Vépjfwc6{Sk@,i	))=dOe;"Y2yi2VP'{#o*R}7l]cnϰbR,A	,Y:]3͖mѧ<KDKTK \S-o<+ KH'»ǯ?b M[F-|'\o	 DVǤk.vSڥFڥw,wh%8]2'/R"ͦ]n4vN=v	Ⱦ]ki[_^ӮmOl:=R6;ΪI=OO&bMGN1ChqMo2J&%4:	1uԹ:Veo }H#r3f3&i׳OAhaɳ/k˷}Mue¢T۞#~go~.&h{XyWq%dX6VvU=_eZmxySVaʻVzضF&6f2I6iS?u~;{Ȝ=_#P;.̐5R4؏.gW[#vx8:rAXCqKꏁV16◛nϑ*pnkt]m.1YtGQ%@jkv	f:~->uLtbTM56QO~I~ٞQO0wK@shshK|/S6汮-q[7^^d/"#.[o#eKu7ugg3vl35fulwX51P=lD&.p؈\x}Fd/[ޏ#9\/Wtsp,
AxvI	/7-fTS5䍜˹f1<:
y)ɉ%
%
ťIEI)
ey%z/`?DٌX5QCgWbA56gȟdVF5,(R!?M (783?h^|2}u5, ?x[mSY[b ѝqI.CB%)wk+$tLYD7A[H t>ܾ;IC@gFH:sC:thk|-jK<E>zcDWCD!W/zt%^H&t,8b|t!d8Ks2(*%< ܫ10:.,$]u!beXJVze9V =qTj1n?@B8'IHEpk I e jGdyO#IY#jb$|WJŬ<.	tBLjqP=Q#ntя`3
;0a&w?2~O= b` 'hCg-PHR|\K91$'ɪ cDMeV/UE55#ydGRI/t2?^څX*FOw<׍:D"$ɠ(Ch=dX@"E%tEHTTGHp	EENGIp#P)(yUA8$ԛz#!HdQ"]$.YIo4Skwu	BH>N)>=|&8%  b\$S$P {Ё=T</4U\Cg!@{{qA3E꾊.$$Z EbXDxJ"K2%:>~Knt3#fV}sC۸Nѷ✒WW	.%R}CY)3..S-O]++XWGy%0w|Yvowhe`ğ`mcg8x#oFBMjX%Cig+@7G+;lUЄ.C.D¾/!5Q89%N]Յ1ekrkΐ=	 !5^O]QeKd\'ptm|p+|dg(tuzRak?ɂ>akL\;?z`@]6:V/y@/1U%@;ŹCQVss	1-	/}^Fsڽ)J848;_8XV'Rx<^u}$4*&nF/N{L.0)W9o0mmWg8`aa:Sly-z621g|BDZ$mal#CqRy\x|p#-2+I?}&+dhc%nK{ɇ[CJ<
[P#V*s3cp&4GS MMJMW~ke6^}	ʡQ`{	t	0gUD3o edG%7Wяᭊ4&lJ[P&}(c2f(qtmڠq+yܲu0!p)l}1%NE!j*}3/եi%7_ۄ*/jsufC'"xt6:KlwXs3?:#1hgjXC^]'v$sMtԒoTڔ$YTL^T6ǌ-w7M¦N{	ju ^x)àbzV-.Y&VΎ2Jz?=Ume^*$N@3KEx<Na;Cx*wPx-P5ʴxa;rp{0H#r_+gCjeg3^`!eupځvL]BB\/$BdRe.C2G2Om W6˷߭-cz9_^0;:9h}J)5Nܾ@dP'C?+bzN{q>q"ԠMruLDNN [DCɂolj/Wk[ ]^'901Smõu	_ kC@x%`~S+6cN$hgƠ;)$+}H*ˤU
7D<<\b@Z+4L}4/l3R28s_(,;R{7=;w4D5'
#x.#|m[5j5Z<攭eqmcpD4dsPZU71O4G̕%'	QGqiX+IBe"ZHnKˣB\CI$93GSҨfi7.,=,..G&=J!]4ŀ_+%4
n6.qܚWcri¤V':'N|i!qv u='V0<j	7757YZ@'-avX0fW[" "8&«|!]{
yE2;!М8J@	z#ІHr9-/M<Mu4.CxMU~Oͼ1g/&>zsu;x6RThk/7;V3ƵFQLk䘓Ƈk|(r$>>d=	9XJtTN1{(,GK~V+U;ʰ].:CyqG.W8=pR_kezsρ*xZ K]8J0M6Hxj-J<*=s<@2^T~tvTFk;'.aqhs:eA׊JUEeFCD2M
R}:Jm;4(l4 dSڼxCe[hƔ}
HLow.A-ˠ=2+̽BqyaYršxt>avx?m:N24454գM%]4M%*LK':7SMb'{\~1p:6j(4Or:
u A-b\tOG*/`/'&( O"e߻Sr#f5yR`O>%2kG>竷?Ey/%:1LBDH;uc
,ӓPt֢$V%ǱRJZE*m&G	M͙-Xb!͂~r頷nՕy`kr7
סЦ@*R5|0FΣz!1D_l.=x
WPp2I}*L:Ǟ:JNpcNBdtG)@ʹ>k5O~3fA߭!ɟ'_8yB;pU`rsNsA92q5nӏU_=`2ŏz|]8ilm#!^1/V>S$31!TŨ)*Tt:<Ah9)9)ekK\-{Z?yCVߛr@=ҁ|et#1
x\SI|Wt_XC@׵!3)mQtP$"".*{=]1$_{&3d2C@dIkjBJ"C:j}NDܘ aT	Рu|eMQR$>iF_&*2jk9IQçcVRJp)$+:Jj5%	1!#QF1e$!N93d9sQuzp'ζikև_[[Z8Ejh+'9Y4¿
 c x.qcHQ7
𙮐9.CHS
/j*&uǀ@ɨ!ҏH9={Yt>>G=}#z6Df$ 00P<Y@,ˑBBL1<4
SC	A5Bn̒$:W+&Ȇk%M§L(0ĥF8S[]DTE!΂I/$ W3'?i73A[L 'Ie<&QNe09bNqJR7BKJ= tA6=.kGRCaP@0@N
ZKI](((^<.Hʩ)yP{BbRZK89K`PD=r^yek~׮=dU~fe+3kxQJ2zNtPuͷ^4wqQfj2'	BQ7YKߦ[ᓒ%;O8>N9s#0p&oٌ7'W)%yA2F#RR#Ua\E	'̋qj(΅78XY*lu;;Ǚ7//܈sG^~ߝ-jŸʸwm<3
S ʈ^g6VW8#.^I0}3oa!Q"TUEmWxa1N;&W^-
:,\䀎lh OjPp^!Ez$ ݸۻ']!H^F\;옐5?91RmN>˳G9UD/fiu۸xkڸsKڤ\A@Zv'M sBX)AY"ai 0׶-Jl!ӎ3˙8{g^q\4cI<u#idon6x$5_ǏAvAz4X|F*v`FPe/j>~dP3w4:ɓu~' Țcˤ#!"ބuF6Sga]#m\Ss+7^)\#N?'6һ՗Xxm
mf|2i3:firlkQLdA1 !e?o/w*ocͫ7Z_g@>D˟ɖI6Ӆ_h-=yˉh5RVVBتro *;0M[x!~6_MwZy||d߉Ŧl~Cwܹgvfdw$v|H>f,2!0ǃfB[H]u"~ d_My^Cz#+ -6^Yɽ[5&%u%G市!Gֻ]`@i7ߥvĔVi#;yZ wS0A'u\٭ղm^xUu*HzB8/e 3+Bէ'$;	]M
Ɠ6qN\RHU!j_*O4YQw35
gYf$%G?B-MO/Y,Y xj@mf~a6]t=BIO%`yTyT5Uomh$i]3ȳϪS^}w?Dk$ܻWޮ35Pr{*=sOzn*oƽLIrzGOjTq1=̥CH4ѡT$cF4KdU".纘ƝlA_!;ŝǎ _3*a]
Y9n`AQm%FB5Ͱe\B=hJ<:# ~q!ʾs#R:,SciauBIf hyJ	lZW_k䴍oR-[cuO'L/U2H;0L?J.zSQ=k2QPL`cf
<RZPDCN$ :@2P;yPH	E559Я]s0%7t1] TjgܪԨ{9@@0bPn:|)ig.e쉭2"hezV)u6GA.[:UK0+wB*pj}ZN]ဖ:)]آmH*]kr[|ҁ7L-P		kCLa*ImDyԉq&tq@PquL+J{M6תV"(*S{Y)8~>P9`ݕok?ܥp dj|4ֺK^1
@-F >RA'w!NܢO&D|K gN<`suHٻG(5_2pvpOg<2g(eX4|dTS "X|=8m"{ҹzZ܂}
;V~w;eP!8F %'? SVJwgyLe硁ﮅ҅G?Ӟ-P	#0~Wjz=Dv{\%\p#6cЮIи]&1O}l̊ 3zWJ2={]v}|WjL ' ZY8[t#?d^߮ors~5hލF1ۍ٭[_ڂ,ɞyۼVxzR$t?}u8G?enJ+~ck-e:B\1h]΢YnCuD:tF"gya*h$ײ5왧+~Y~ kqFx_L[UCK[@[-m2m2B,2F	t`E_9ߌJL`dKe.&&f	/&mrۤMν~8믛Y|EDhC[tCYeAa!B7р.$|rt-ȚZtTh7yp7)=E΅Ʀ&Gɉ,EO|
͕ōh`6ZX`[B%rxxdzr.@8DaFc¢R=</M(uW6FVP1ZIDD`tGƲsuyɍpcCh0ʻƍkTa~);もb,7OrIO^&*21۫EMŻ./%$q-*{ ә:8_鑂aU9c*Cb4ګbf!S:NnmWI5
u׻
v iNvlibvIa?:3eV2|YJg?*iqX0JlRS|i)NnՕFe}4<e*OA1vh W$0 )1ieh!Qvh3tcS-+C]\V-|m=˕t̨ZyIIR$*1m8iy˨U3ýj:91ʹ?(	.%- :_X`wNF@^kg0ZRd-GoTB	`p9pAtݙuA^rFjJ尫º3xZ,-&5Sn8FkǁoM"^oyQ/[s`/AA:St~Ҧ&!NfJB	*Qd"0ֳR!ý%R:CO}ܤaۻx6{2-}ocvsW]"c>M27}tȚ>nk`Z}Q02±Hw<::.unJaP\;TI炆;bP+TLCuL̣I~gFShb!>zYv}lȱed Lb[gd`<|ziA'P]=5ѐӜuqHz13q5fx{a,Y'3
o¸Yq,M1nfŸZ=e2nd\"zq8PE͌[x6Og|Xn7ȸ8'VWΑMy0ydl&ndmTv.t}S g2V|N#w͌ۼ\M{s~h6+fؽd8\l縏i_e
s'3zmRͧ=Sy8 2un	x{7/7?( 8	>xkLSgCK[<@m-P{"E
.af#+P.9ns	8>&`x[SK9a݇ń}Xc=r$mrNyoߩRn̤vڧӇߕ.&8 RZA)jn)@?cc.ƠB<`H@(yFGȺ=;%=Gp!cLt8<!6/J zDlj[ҒgIF}S=LH
a^/E#;8?:&!M& af"pWx:J%`JKZ*#ى<ΦO,$|.#0zUR7$+U;6c,iX;C<B1Mqa쭌t'<K2'x1>)7j? wƑ2<p5Yn!ZeBw.h|P
]W^ۢc{(_LRx*bG
5E<쌆CM*8MIdزǴ.LfJ#3hD[BaYܰ}B`A'i0dGGFGvoV9zcku6penva 2m\4peYߜd
Nfek^|ٸVA/%[*!h-6-$m4!)9kqrr6ܷ)ݢy_.\Yjj-rȪ,,UlLZ%zښz,z{<$`d4q&`ѮD/ݚk+C~"q<2|+h}fhܜIs*9R]%mU>:GHBO8ܯG.*Vzy&Pl:UAn0a<8}jdګ)7Nz%q9V4PлjV,KpƀJCO}F^*,6c	Yogr+7FcofZހ5Wyd{x.>XkN;adʬZ#L"
oݤXgp	^ wl-RP4J\`M5bx[Nrfalu'5pϳݾ'
i$q*΁[rV"8{rʟ^xrfزa/{atֻk,\<p맛Wfo^[~?wfCJ:S^x<:t>`v|o5ȵ,{NgPw5ó.eA)̾=Ekcx;ƍLY.oNdĸ'>6\!N;}d-e.tkc' p=o:x ɡĠJL<KM4Ksx= J的显示模式，默认值为Kq<MKYn#jPx'#׆s* ]x]mSֶίФ_R)9=sg،mG45,C91$NKBHHL۔86Smp֖$˖l $83	k=eEZ-T+Gyv`P.:;:B]M#Ku1lۨn!Ҏ;\PI.0P87muO1l..(_]h,IѣdlgfrT864GXaPPŸЈ	4<NÀ8|>H<!_H;-Qhqʠ^.$Oa}tGO<	1,
,7F%b3LM<ۗt:+3> Z93@y+΀'Іz= S.I}vQh0?y<d?FDJę0φaj@`0s0#*Cl[5F0(;
 ߪfhiqʚLG"Bl%F0/R}g~Q'\YGð038<gBg=ʗdp{OŰS/`<AdhwE|7UXʋMoVnVhwi%Zx`N_PzsPYiyS%o>Zކ'<F4[vOvL|Xai[ߕHKrZ)fHxREk9i9#fgv{׏>U.t{}|S('CGex5D,Ӟ&t
&f&rX=XҢC0Ddgt|)@Fd9>dBOB>xDBp<L-̏ @EcD(xS8F-h,cl<)6ғ¯ytFcS.qp?TqcC{w 6(=)=c2x =>a$= H
uigM?+jQGē#47./I7v"Tqzu9AЯDN~5$%5;~vRI1|UݞnR[Ϧ2h	k"KOcOX~!D^Qb";-fSb$RYXѪ-ΗR)	P'=|^KoX5FT^sh!<Qc!B^A
@RZR5zT
]q::C10ަRzN)
M̔^+)ksuP¹b׭jÝ^uz>̴Kwo[hMCB~vPz\Z1u
GmmXJ8&6=m0*RUhLez_jZsoT!L<풉I!GB2ŷ]ğgo 'M@`ޘez-mrX[HLA
+b}cVRB]VIըO"VrYik9I6)j3T3=,XgI"^o6-YZ@o>iZ;Kj>Br&ڭjIMZU]ZCCi&'_k*F6})4q@dR)Y^7ZPi/Yy}@@oM2Uwy4[n#<hJm:&6Ry_SWcJu5߃YmA4$bI*n&3h2Wsw8f-y~]slcPW.CwԀ^.(ڝҋVnCqpWL=c3 -o{"͕<-YQi	N=`t1Vu\E9r[* (4ڨ Ht
Lnm7(b	x+YM(`)~Ljאz#JHh$	:CNQm7ΞpOK{l\	#XF@bx>0Z/ఈe1gxx+LqkQAr|wۥg£(ciCfF)so#%gCy17gkqbեӴvN&lmm%ΏYˌLʾ^eh1}xa# eû(
7s@ #pq 7`mnz Fy2~I'`	QȣpOZ3K@@z-uW(Gf8iFDc<AqZ}Cdhະ3~)ԫyiiyBlk$u fR:SzǻI9m3aFEbI{-r>NuJs]^V,;9?RTRug8xQߗ$v2;

4{R:uCruC]PvLȵ\dLMQ֞j"$xwn_뱢*U^ZJITY]P7	[-fDNfrmէiJ];Cޞ^Щ䊻$ti)#n˃4
acCib A0Rqqw҃	o}o"ZECFՒNg,VrG؃C|?sbzbRW-p](OJi(<jl&LX7WֱP_ZKGO16\w;ٟF5|)5Jҏ@rG2欄jqc7g+R㾀<JZ{M;seAםPϣ>Xj٠B+Dh򀘝;j+;U2_RlyvYEKUgf]]9ge1Y<ZGz~pGYb)J{&plss6#49
\{ӊ厒Pq xtnr[%l 8iWΔߪ3OfSJ=(C4o[3QA
-f 4:ĳܔ-D[]~7&ӭAM_o^ڠw`B߉߭&uirmIõsmy6j1]@i-]ZgM*A}ₔ[$/7(˩ŻVH1ц496E#2˓5i4m)fzuH`8!ip{TT^B잟&U;:ᴺ){LU{sެ,ehM>+liahb_?_~LzOE9`=A&- ^(
G/`<>ɐ1n*Ǡ@~:`7r5&jqN}Xlq~qW͖N#UWmOwh	u#Ce[Wv72ކt[3rFI7noBdQδ>ŧ҃5|9 N?c	zX4
L>U$zJNߣ'ҳI}	lNfoZ'k11eqp\g+5jog)x8C>l+U![y&u Ci?X{\o\|FHuaŲlDa.ZԮyҊVm|`t k6!0j%}&04w4,&;}86tNhrFFT(Y'Њ7!rYH9%Pncځu:RhM 
zgEc8lh͢f;y|מ;}!^<3{~vm	:G!P;lݴB4[qʉf{L[$7bwP4@6t~T?wYO" kAV8xZkOί9vUIUA!	V9PAڨz=6,D n-5'QnUISBLSԿpޙY_vKzDl{{gޙy@SjBZlT'!'P˩G;.%0A]xf}LFTQ\c!:bo
T?	gQ-Qj:"D_q""Y)DR|!n֡%HD$QfQ;$	ĝkz4iF'ywIpRUa ':ERH	HQ9	%jԇ-B01NBq+D]<T1賎)tB G}]^vu~>vY&aHb.D42BSq)QT
և2jaF!ÄJMv)ZT1K	e>|=A_	cuP:aXR?kLO%STrW mGuS] 
ifJaW-+KUqcy^͜WL :>PX6Vf99 ogsvº~ױƶp~ffuzޣQCbh`Ԡx"
D\D!!]G?D(dI!W8>'jHXA{>8x.sv{<!UVa>1h>u4Ma$88(ǔe
Fj1I_\_J04Ts]f[3ub9
͞08mVoh؝&DomUvZXJ4 x6d`[w7OK{\c.Isẵ
s%}v*yӹp{\1מww|K/Vjg.K/g&,AAG7 lϭVmC(UpXQf6J:U@&
VtL5T2tqpfҴMV7q|GDV7uK9/{h!#˜;ڞ7w9dN?,+l$]fQ*y<8dfx龍pN2Trޚb-oVI_2o6g^"h1_\/j1[6 gjh>n&	Dfofծng&l 3֝MbjU83[2y~8cِXl}hD#a\(I ɐ9d/mg'kh Sy80Z$b`Z$t991§֦nkIku4`OBN;fCD|3֌pĶo./^[̑R0O`oM-`QwƆxvykХjpHD)2o¦_8VpfI,rkU㮸9;
.?vV *WGK]{xU*1bn~wŌy";9c-ZcP037Vr@W}pe2i[~uH"w!?*y>kP^Sx~{?GNQskdݦ#%ę'Qqqp/Oy(7zYM5oX'Q:VQ4ETNR2^
[bHaK2gNgַ  qϮN1ȮP-|<n`쀃Sך.JaRPٽd&W(Zź[@M:w%I~u"Y6Ż) كyso"p[lPk#7~?Ȯ.Ǉ+D9|̛'W_G*'dO͕XïE:A%Mi/64vDo)sGu*wZ9ok8{|6yr`=iO=yWSs9{A/cg?P-ų&*toՄCTw yZSZZEd6:|wQ}+AMV&	wߩrWuosU_z]R\Nszڙ/ Aϻx][SG~WtJC!˕n, rIT4)f3#
_kclY;vbs1GғɣXD>|9}Q596C:9N87_B<Tp4n- DR0Ka^A\1.?'<,6$G(ʍ IP\A >4$H($GcIR5.2OkEiPҴZZCV[DZMmvxz/@a~IU)A\
q#YAܠ3M&
+&HH#0DLXP5Ek9Qzm #I@@#jwf";o_}]}^O y},r^@z{͈тvc
)<BD*1>$DtMs</=B1^
*

Q
E"44y5yP1MU+!>IЂb<lE#"_¼jj	`MSgDS?rPe4<KĿmֶǓ@ltPqnϧ&7%%~wY[<Ե-|kFCUv(h#NQDFe0(#'YTxtQPDcܿ."`N@ kRH /*KF#]3H~	,)BK!EiQhIC11`gFt/HC@q}j'AoNQ+W3xmO^aڧSӧW,&q
EcD2X@zhd@OЪbN2#R+	Zqq/k9>U)F><yN߼o,[J@Åbtov`r_
[YMM♫K85<
Sc̾B5
5R%nIx%~ƓɍG zPeTPx-	F}Y|YǀO>'=9G)g+HImA{]&@"t@L/|U6wM/~M>Nߜo3OVW7U
z}}^(luQ-}iYQ :#0/ӉL}rOSk٦>Ğl_M@y?Q><"+2DtZF
ԓ!-Zq(&l3Ct-Q@?!7Y@A>oy9 'd'tjtL)kӫ7:0zzz=#^}_$%vr+AD3beRӸæR(
N'[<VɊeH	)$/	(@BSEiJ!*j!8Q1jQ
2|c`%B1;tyZ-WX2reO38RYkbtò$FNEN,1UBP3ˊYCK PG`%M3ǳ6V'j`B~|vXiw&I>؃ݎ4q*h#1>}*ڒlZ>Vw'h1VFDp-q;ob\~oPR!6RREK]:&U|a
R/VjujC8*޹ZYHr$;6WڒA_5
32(m3%ZǮ<&v3W.}cDV5D9FF:z"CHt@U݌gi:dέo9=]VN4D'o9! ;`~2y9I]:cMDꄦ=Y%Լ`EjeO܅zAU8d^n䥩Qs*At)
7rs"[m\k{u[(nު@/@$Ǟ}nl:\HU4`Z1\ZWZ}b6IM'SZlmAwq.9Ek1Ȳ 52¶㷕BwO&8IN@vod퐥0WFk,2]h1ʉxboΑ{c;zE/`
8UO!kLz$]̵9o8TyeH4}}Λz	b7`V:sBcd=^W@v{I':c
O)-osqx.odr`QH(qQm_pdcbrqR0(ZL6#WKO,.<v2A1"4nW&vJ t:.O	}k튉אHzfu*
cB}OGYX^24Yu}V6~T_,ؕTQ9w{JM9~flFYrZ#hu~_~,xqT}{MUme2a7m2Q)*-7R;nug<HծRy1Pٸ]p8*ژo1nAsn_1/;e|B&*!qB΢m-+cbphEi`wgUǑXbTd'pp-2K"[n:W9Am(d-94gPt.{R<]g,;-YP@x%W8DY1*b$W"z#.' Utbª<+XBUvB~sB{c|uxQ/-c8]3'Η>e~U!Q%qm{FLb"C#>o,kQ''$WOOP-Dކ2lb	d$YYE<YyieK"ORgwUc,)>Y,|{oy +X=XHcd4Yld& z%H&hv豨ȢAX.CcFP"6a,q2C"]+( YXda`!Yy`,B#VF"#6].k0+.XXda@XyT,xa JrG>ڙM=K"r#58m(cxzwv]0\+颭BqqT蠮p8SILT%	~[>*0Ly~xBPLo(RXNΌh	jiAݾvWw	t]w-ͰxXkoF_1p#Ɋ>]h$[,ID%R%(J	$Nmx4"~4O۱cj!eY6G ̹{8wƑ!tZ+>?Fhl%*R+(*2	~4a2;	OTgQEb$WccP4Qx@Դ
*I5j&0"F&RT$krQT_ÛҘh`h%XP_։H2a*]0HZK.ٰ#EoI40ǀpcZĆtmE!@H&fQ"MGR^0fjpUWLE#C˙UI&LVzу['bb3}a3+$1xJ,Ah.gKïaD'i6GԂ8\Y' M(e0>@!y2"Cjj"1kgBFb@0K`JI1%}ˋ"G]!OJ٬uR5˸$Awk~rRWpY%O]M$0(OOH I]χUX%r3wc
@ Ax Z"AR=/٩ũӋwn;k;;[~ԌX3d25%7)jR17rI(⦡H:ZٸC(&JjTTλVL^GT$F)*)L&54Jqi1:crKB(E\/Amt.tY%j	W5mo;ˏ˻U_Yq^lUY+c:$躦ǍC>G}u޺EuDM3^Q߾e@1/݇ë(qFdT R<bڃox iNt ?FA>g=d{vۺj]_ߝ%\3xjb7#ƺ%bpvCi9C:D4OʹZYYRBbMOrssz^3âqbjN4O~`?|g߱llsAknb݆9>E	;	v3w.;/6O/"3)EG&}ZWGp&:cXg?+awp]hp9k}nlPiÍñG&=ƿ-9O6{/Pӊ<Cr	,M%a^}ix\ZpTi2x>aZQSm̛f\"ŎSN%Ɏ$vr4/o[Oxǖ4{?`J@[^>ΌY[&Fq4n*ր%r:dHsAsmz~U;6ǽ}eg8@Wuo'>|emX+ALj	p
nεhab&>ڽE;o jhc=yL҃qf{Cumb3=Ba~wfMnc:Pv̵Ş]lfjNWtcKj~Sh߲}#X)]ޖZ3[O//KHqN($n了A]	ٖmjy4V0}vc ><۴-y
[+p<MTbGuYEǋE9[[8t90z%F'/7s	D] i-xZooG0
oR:Ḷ*r6	V9š:zlXXU%kh h媆@JH|zΫ
}fgwo8$ARd3yw:w:"^4H6GQ
>ZRcD Eh:䈟[R@4р.>E_`$¡Pvup(jKEjY&bQ0eSDT$ky]!

90B/]-E%`WZI$Q.ORӾBCSw.9O]PlfHA3YJT@ոPf{ehA2&&5Hʢuyz@%Dr16zv(8022IGc8\X<ڋ0˺m E	'L`\DFJ:I`,FYm*tlkiG!yB%k2٪Hě`! 0TgPΧt 8FHcYM7cDAeXu˺2p<hRsD*4&qxₛE|%BрqiȐpTVHʐ"ДR1t
 $YQ@dBh1"yh( Dzw19Wcn'^J54KGu_5RC#i Jiq&Lk 8{ۉu/S^;Q+R}ۙGIʠH2=\ŇYݤ`/JC	ulr݁π.9f4Qi("0u2_X9#q%:	װlk-^~[~|p<Y6nNg[W贁jV^/kl{Ъ|gY KhlIB  ;7g\vwm3ȱ .i$N;׾_5kVʋWwǙ.RWIr&|ˋO[

+ןs
 bhKZ'zJ+ynŭ';3~DCJy#7uV}Ml7;-̕|yF(A)\6`n>Eբ9vungyp^T֟^%Zt\qQ*뫂=L9'I?S/"\$)ܵ4qȥ5[Zi )Xޚ:jXÜ෪@kwĊo<g;wG}7o_[=%["@'hQ	L?xHZ˻@[<SY.)چ檓lh*mbL榊HLᨾi-NVkXk3:xuYFKۓle3NyD|Vٳ7?(kK;~@_͇>eC.K1͆udlpp)  D.԰dZ]`66$nMG65{i~v+6D]X 6	|\{tf!#%'ʇOY&*IبUMoW&)6[%f$|v9|.ݚb3A9t sC?'|m{5f_Lv]\^@:ϐpu!'3!еǮl-OU^-3yCyH;°O+0(:54=DiZvj/QZھS^|W/јi4h`Vmn:1(սq[N/8$t2D!]E0DSxcU;|CyŰ כ@tD}}FIKLC[f<:f/i%iE\wf{pp';S`~|g"ڃN-{_X׸~oU6\xWSG~A}f`?e.Mrw#3@U
j7V%cO}8ǎmqy=ٵa_ks>Ԍ3KIj& 
;Q[`Bx-%z/N [O` F/O҂"6$=Qo]YFi%t!X(I4MT#mjD!an ύLĈ30+Y&t]}3ȘMkk&	(nZ5l# q츮aB`
eǳH1!3UCAEJb1Cd=Ղ,#2
Ů%q@'_ ):j쌢p-ၣ}Љ@;QW_$EuFNP &5@DVF1I"iȤ,$ITNOJ
1E!4D{-H1H0g+ڰ&=v:A8Q1%})I4S#U\I[We@5I]xZ5g^(6&!N:#T1jCX#q,ס!<,CjXYKULB.RheP :I{ϘR˯!oX%jR	fazQc$<p!du;m~o'IAuXD8r$}$EbGA
Q5;d;K`jY[,)TS-a nƮFz$k .->dLm5\/V|zu?ZZ6P&$v9ehv)q>i~
yzjʳ;gA҄g&Zm̏TFe2.3SO](Uw6gU9[gL>_Ii	_Ź[[E^J"riuwN1||ݙ{TL[ NŇm?9iP.∔*/AJ	>ܛ:+Ӿ j	@3oNeY	vxauc
8xvEsĽ ?*BA6Wq|-OmBxyǗv2	»]"pj΍E6҈|)'3jL]Dv{O\D=cUmC"e{bqk+i%:V&vR)=hmZN+?|2t;ϝXXc|u 真^?+u&_[.(NnęInYK܄6[/숓ⅵW'_?0ƭ)_XqFFi frs|zL\.3eλrjC!8Ӫ1 B	q/
s-gټ3)6 V^+]7;loS+z-7Ej[hia^;&~3j?J*w qЪ[mw~5 jXDHx'`KpKBa
!3<Mw܍A8pŉRaQff1-7jeE!~ݮJt`W5:tF/=}rcx+! 1-2022mfont_collectionG
collection88D2<FONT_COLLECTION_H
#define C_INCLUDE_DRAWING_FONT_COLLECTION-9创建字体集对象q!。EZ @return 指向创建的字体集对象的指针。该函数创建的字体集指针对象只能被一个{@link OH_Drawing_TypographyCreate}对象使用，
 *     无法被多个OH_Drawing_TypographyCreate对象共L使用。如需在多个OH_Drawing_TypographyCreate对象间共享同一个N，请使用
 *     {@link OH_Drawing_CreateSharedFontCollection}函数创建.对象。
 * @since 8
 * @version 1.0
 */
$OH_Drawing_CreateFontCollection(void*释放被字体集对象占据的内存。EN	字体集Dsince 8
 * @version 1.0
 */
void OH_Drawing_DestroyFontCollection*禁用系统字体。EN字体集对象q!的指针。
 * @since 12
 * @version 1.0
 * @deprecated since 18
 * @useinstead OH_Drawing_DisableFontCollectionSystemFont4
 */
void OH_Drawing_DisableFontCollectionFallback*禁用系统字体。EN字体集对象q!a的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_DisableFontCollectionSystemFont*!创建可共享的字体集对象q!。E! @return 指向创建的字体集 since 12
 * @version 1.0
 */
*OH_Drawing_CreateSharedFontCollection(void理字体排版缓存（字体排版缓存本身设有内存上限和清理机制，所占内存有限，如无内存要求不建议清理）。EN字体集对象q!Q的指针。
 * @since 12
 * @version 1.0
 */
void OH_Drawing_ClearFontCaches*获取全局字体集对象q!6，可感知主题字信息，禁止释放该对象。E @return 指向全局字体集 since 14
 * @version 1.0
 */
/OH_Drawing_GetFontCollectionGlobalInstance(voidR6nx\Sǖ*]_!ٻMV* \p"F*	 rccoZoc^cf$}aOwό\_;1>}['>l;jC\$	c2:u-rz	!èv/g:;H,T31\~hTr"8N'N~Q8WBbNFD</s  F*HnX`<oHx,r;;''';8"tGNh8KD>׆,_(  %A47fI7*ÒOJ,'9't2BAl1.'o Dt2@IJDW$*bh$(<&1bЗXo;p kLE"7ʣ/ҸP-B'+2'gx:#q@0%HNS:1,	JYiH,1p(2Nc+hQ5jI1Dsd`GSooH\~LH{0,qR	0,	>iQRDRAúĥ#F]&j5+ȹQ)W#?ۍyNM̈́M7MZ2~agC_EcgRT`,$`<u A}ab:[ X"q|Iar)Jڨ,]*g0rD`?bF[yvwbGYv[uvukSٶS k38qڐzmJ]f&KO;B?Pste'RusϛșH,uB]LB]3!DB4qVg:Jyqӌ\X"	
Fzu3ig*LeSD'J$٤ϦN4I>suZ.<HyN=6{,QʫRyl/7hRJ)ߠ2NP9=Bd<M}9nmL	eH3Y3+ffdpEEEM*2!YRsX^%@q;la4C"u.NsL8)rL$T,4!ǔxؓcvjRsBtCD&&Db&'LA4 !ژ]t1RǉRY,Ň^pp v^ު(K}ƪIWڃm:qqw~X(7)++Tce`9edțE0Fpo~P`lDW4uOc-d5	9$ȉ=Ԣ&ՅZg'SކZ^M}\nMU}K	V$T`8ς6o	tH`ŀـll7Gb!+t1 _#	]`6ڜYpL3Q6StBP89'j10ج+6vN~~Ã.5bUHCjz#\uf-\WOk`n4T+WKuym[OpLţ!H&0S&ڙ*k/YxdD2U]9U<z#_c]e;\!K7d2n#̯xNpz}:vrRWec5Goj OglN)=vrjܪo<hSo/4ԟ4g7R	˿M:W8֖aBum/7n/o[;Ḭֿޘյ .i?+ϕ`E˦=Ii9.
f[fb%m!w$ުu?vZbmF֎o -%_`nYO$dxQFaWɜ	,$A }NhqC'!Ky6>L!>bpDNmm֢:?lܶ_,ii{?3խgΕ>Y/ehoj]ue)~k:j--Ӑ貺/Lw+{1وS|~o;k1 h«թi_+澡s<\ZAk5fSߡ_Ǌ62gŜg9'BĠ]p<,d6}o^!S -~B2$B\Q}s|2WafZ=%ƑGfsK[OEId!@f.&.-#ʵLtc6<^Ў
)CNSulib݀fa]MZi$Z˼y'E8>e¾OM s@F+IH%}Zٟխ0n\Wp+WeWͻ@ʃǗ*^yT۱.JF`y-ϱ~MЬkim	Y]F@]%;eljRT`*+80Eˀpx96ZaԧT:s Ƿ979fy7A
6ձrRIWj!%#-w>q&Ӎ7Qen-\HL`	mDAQQM8v6][ao]=(38,2*6QcD}Dp(Poힷe*?c{=mXQ6C!ۄŉ䑓9Zi\fre~-q<CxdAw4Iclug9;[AaSSInY	Ωs0'I][j,XTn}z7rKk; 3r<7$p 0PO_Uo[E1AA꽇_ֽOɾAcRL]}^W(N;mO~xJ%gS3!>5Aǐ@<;.⋶Ͻg6yLf]s̕~)޾Y<Nzű/=pXYL	7gK*9}S e`6058@YϣbK!T&fv 2Q;F!{R"}"rf^6?LwR;fzS7 ͐FMTt.֧F+FNg,;sr`L8з5nc\xFS`R8Y]ln4|P=rNJ%#ϟ(;+oGv$A^{\?OpfOÑDW>qE狑x|0x$LCd$nNW_W c&ٗYg# >#LuO:O;*
qZOH{fquoxV)%#Y-<l{6@Bs̰ES8>݌@cZAfqVpoRxǣ/ZdؗFYBtNrvM'Ot:MMoo77y(
:g9GwOD{T&K2PwWuk
C,&7N{IrGf5ZneVH.3<Ĝ̣$7OyPQ$4ΉEdyϲd  $rY`B0'W#<!)y+J<E$X19q<Ѯg(tsP0`H`I/^faUwC02#N
#8j6oSy	#d-􏵇r" +,pۜ߫!w> bMX9=~7Ϩ,܀r,<;TntyCRZX,L,.|V3𚞰=Ke?lC-D;淖~ϱ'ovA8V6OӶ	x/Zx;GcFGh6&mhքDź E3o]EQs٨:ٝ-u|7XC#qGSd-!]_23.:ɿY7ڻPwm®">5mn;^jo+~'I5յo#}8B	Y7E L
is!ĸw)lmƼҶWêed`z5%îD͗J=]Ӗw\8:;(]vbx#e.q7Qk̖]&>$8h(tZ'+<tcf=J %rLfA_Ӽ%nr;[Zٿ.|((*MX>խSkD,G&Qj6p>lfg;R^Nd ,WKЃql}5_~YҰ`}_%ۗ/.ѯ'< xUOV~G8/m%i/&5%DKO֍}\ձ=UHt-+tj2Եn+0V!qx꿰c_	){9.E6͊%0489*J$4S)D#Z4+áTKQDj;4`(:piB$Q3+P&50Lb@J- ,[:#2^

i0	?cxW"VQv1`'I'R3iۄS~Wa6׀XL%yī*6Mq>83py4p+K8 0 -ri9a2>>qei9ĳSu: Ele4lDi)@9UY(VHBќv9~{ytVf!jAX_?M(z9f*&T8JQ7D>~9o3Z 14(.TUNP^ ?vH!P7'HSBףkn'	M-bSFGp]cQX%:C	Zgy5"o`i)"iyݗg:hu(	b`hP<M뒰iDӸY͊])v6*_<uޞS?)sz 1LgG9frW%˸zr߮(W߇|и00< (9l(+t%h?~OɽݿVͷnYS~~~5`Q)#jydwu{<luoǮnw(썉H.M*Ҕ$'*hJY %9<X֝p=>6,
~h]Vcŝ_;n`ptjBIL$sd0YȥK'̗[n.be[@-Yس׻ѴPkJ@Yl	ff{e~z~itnļ7fsxRʄTɑDF`v]ׇBLQw׶ xjrndK]	CmTYùBj:)t 9~Z&e W:O_&:4v:~kǙtq-L=w>diiSIvJ!=swc--2r[;5 ^k?Zj^nG8{z`Gzw7vv*NY&ȼx[SV=3g܇v;iY
@6'lc5Fr%v!	&Дt@rIs11$i~Ieɘt$7}9{.1PgGѥ,7y|@0zD 
	,!%Q(?c'%@mgl}Ji,rH1e8(P\ʤyN Fx%Ed _DĘ<xJ!X
O% G`{=?U!eI,/ڱ2 Yin%{H$xH'aJ'ˊǲJL9A; /ԏ">Y?TE.]@BWz"
G"}9
~#< (OWc\'DRdB| F0P
e4Ľ2tp
]kPj?{,č Ghp0eBLqXa4R#E n8+ EFy"A!(@@l !vB2
Z:teR|\48@QC۠,29'?'+xT(4(w@<ɊaOFgA[oj.PAIfPo,|°pgtO9!}k|'!+Ez/F9vG/CnlP]б|`$'gY={h@R _9?BOYW̴~;meJ[`N[Ӌ6c\V&ŧxD^Q#?L0F
˅y|u}7zuw)j<$.7~V_jc(>bn tcTmᑚOuꖶtX}T~nz{xHHpkCXuv5<`9EB$d7zz=L!*~wq.bŲc+ߦ+y%63CnO9n҆'EM>I['E\[u\M/7fJjIed볿K!=.dҘE#%w	Ú'6.C2^;?oՇ5T6#h4oXajygOWclrY.BJ5XmůLz^UK?YSSSZIY2p_L2.1+(<Vܨ[Rv^VKlA6wP]}qJ
')5&|?տ}V3H?#+0
5)f^G|~~o-urjO;]Z-썴d0{!}>DǎkǬ.1>XSa͈ӆՉG&YvӗZ#]F|M,y+Ă-+ԗja\U.>RX6%F(wSUټ].:ʪ2bqN@b%ڍD(Θ(Н [Oƒ4fg~oyFfA.׌~erҾͺ@E5F_#:yĢgO()DW P)Cb#KGYQ?K_Q `	\N_	.=ʅCY̗Ү6wC}:tD.G_C=Kݡz{N;Ez&3D[eg|_vI]o×M,mf.vIS ;ƉSԭ
l  +hoXU_sura8^-6~zT:vtSmuMgZ!Ő?>f<~!7d;fn/.l%Us,Ѡx"L[
AƀI*O^u48Gf*j'1PҘK #@WPx	g=@EG{:؟h7LZ{6Ld䭹j}Uژ)0N$&^S>XlެlX\>d`ӦIS<$	>N`׏!iGfLh{i,HV6t^L	ě5'2G}ٜ;uŨwאv:p\9?21`c7(LAwK,HeuFqxz.q0؟N Ml"b!}?mN`2"o!i3֙+SemfRL{rl~ۋ2|V0$ 1d#IևC-H]65txn*կHB7>MGVjN?;þovc?ЂcZBFKz+VdR
8f~4*LoJ[VVDrГNǸurY2peu$\<eU	mC9r2Qb O斏.C6f"w
Nт.xv$yNbt-8zS,+N"sxr5A+Rhs/ŐjRżh0
{3!HmtZ,$eEԢ(rnfXD<#Ȁ?)#*#yȗ9EniD1>R`i#+-n\gT<,,/0teg:7z.k*SO{sW&ԩG-6wGOuYyFĘ|U.hw˥S]˭Пml1zu,-dy`֬V7nXxjiQ]P&{}ke灾j,.h30߼4?(aAJl@f+ښem:|#Qy?$d$,l1Ȏ'̍l\p[, =Ĩ ^zҙ ii4v]˅mrW7g$GGj4rwWNiTcomY5o=ILjK$ܮ9c^1]DͯxZ_Sy!f2ŲDlMy,ҕر3$'A65In[#|jW_]WZJI'=s~w9v]zQ͎ɨ'!]3̢0`S}hXNtaI8\H((0)c<CĢ"m<ϣqFA/A	+O #C)~\ȱXyLPCP30BY12ɿ1Y~_(nt9*,GBCo氛\Kn*3
EdEdX^Y}H3r'JȎet; p;Gx7G}[	t+PPh$$"#QO#p L' Tl2ňOb3l
y&Q"N!D+i]OgeF9\ӧ|^#(LxRNy.0քʨJ4YƩ(zSQ67 |j1b)ϊ0Ό`#*wsfeo_`α"9pq'C%JH&"x<0N	Á LYB˿W¹LgEIepȢs;n7D~Mhx	D`SLNvfJFd8^K&HnFA
DXr4w(9tƺ=ŚTPKƳ9L	Dw]Pw`.f,/mcY](3wYuQ}ޝQ|V=
~~ج~ҫW9<7~`Q+Vж/U/Oy.aDW o\1uf?s1$sS`Vpr0IQFf-6EX4n}S,*p:󼾻h߀ڃ}u~=uP8)UD#4ă{=X"`m"@ut}'AQd)Rg^r\[yc(Cd
KSs[0+Z+>ykXOc%E/aP?㏒2%K%+ƉR#htֆ:}t+@2{8B^R;wXT,`*[qp]U"g-~C!e2u5`X-	MX;i`KbYlpqvOE՟}Ђg2dC^|:y>ؼ
bbX@M,e.{AY_7W_+̓ڃYmjyz/P _%a{yQ,4҆ͷ{קO^RGչWƁ:{vpZ{kv@ꡦZY&4jOxk`҂eϸ$ĻU^}pÕuʡZxso,f~F]zIbib	dQP3	Bmhs~IR"d0) }5i>O&yD]{)Ҕف|ӞG4$V!ַַ53хKUPfE1Nvmj}n#Le}X\pK-Z1/:هN7l^@|.2Ɯv7Xb/gY7isWS©~kOmg^Y$rpܛڌqQ'3\m#N#Hz{|ߑ`NN[{dk%|Ⴄ:S<Dؙe"4|-f	2.Nn_ϭwei{bF%L]k\NYOfxp᷃Nvh+v2cX0ߩޙV%}PDTdHGdlDn!A}XmHn!g9XbX?#z_=.;'b{	x3{dmw[.lII9̒Q5ָZpm]Cjg/'TZ[ʀU+?ḱ7z	'glݖD#4ohtj-om0S={g7nLvݐSEru`\k;dR>~kܠK!JgOpp=ubZ3F0_l9jr[6L	n	N>DW臐M#@JxYwI(^"OC Tuw>m!q%Qt9stC!)o25)@=EBmUXX$QAhANF.O>37MBj8anfnnfnfuBd?<ϡ*tlH;GCMhXVZӑI+<Hh(ѓt/LECcW?!Ph@PJT7Cٰ>Epb`0háa|a$z4A+7iihO:=/_|q̙D5M}ټ?:T(P4	i0CigBdHK.AIFx߾P*ћ>%uhPچ3s0s`M~SjMs9udWT}GG}[WKsg#۾i_HA?$ ElDN]7ACJho4Si}z/qZOaFA=9M!US0Ei-}g_1L#n$Xil;=<Kj9'{C]"z8HL1C0ucZpnAAc3Ih a0EӡwGm4:ĞƢ=I-9SLNkNPp*4DcpӁ6}}NFyf>W!\bH$3Hoˎh#pdA#.:{C-m':OjkWw׷'ڏvԟ8m	Fz^(EпSH4| XJ^P?D{W11OkQӓD;D,TMXTo fǣG MoBeNLLeՍ=r!GIڏus@4e៺1_6=a]_ٛZ:Q^uwtл'hM@]X16g*>S:RN(Hb_v=hfUѯajpY}{D1iLɭ<-]0	x۸	cj.4ypVkGvax6cv::0YxtgHdgWˑoSыٛKn~x}K;;`nמs32|ZVA:fd}p>&ۚ<SKDʽbskXԅS# OLv/fAfuոsGۺO5#.< 5L a~@)-ERWpHth~{(G}ǃLlqֶ2S*KZJܵggohKDaz7q~~&z5w4:c]-n\βfhxe.>4ƖFL0'/?/WC		RZЍ<;|lkok
? b9܁a ]		a/ #SױG1`_)3@7OcaS1f^Ubޓpήo[^j[`Sc|K3lv67p|bܻU{3\;t8;u\$'*&۸r~Hg3vcf`x>2Ӂa54jX[K`uvw z"Wt\]]Cb1p{wp{Ĥq,ۈr9|У#LLz?lz={dT:9N"z*pǠ~kNB/JrރOE#~$jrl$x	 sEB XzP,;BlE~(1oH@q?x"p,;[l;$!Ҥ2'A},PSɆV2rޗY1 :KTyL)aKto?{l̼>
=@2G2'ǄxZN=z_4ΜݑLî$]bCF^pLNlt _Xl S\QDP]Nb1W._8]a>mEhDgKgcMй	}<Ұi`1ܘVxKSS+
9)t.8^L\DjV@ʜxr==C28ke0Gy=Ǵƍ4S7,ei S~=R5Ff}=97wDvn\}'[Z5WΗ*MRр8p7"C,]̗DDyl4WW9Ք簧\tYO=D7MZCGs_`G;UK0w+
gܽe6n[ߋ)_eGXc$(]ߪEM$矑sy[)ِԵ:(*;*}	 j%Bs8Miԫd>Elħj)
܈a, \av~2F72oր@7swƕgkB0?ޣ?".E¡ط'5xsѩD28	B7'r+O1G ԙ_.)IҠ@+,scrԘ}{ߍ$B(w;O76-	y<DRnQx޻*H]vi=L͝aS-M]*:0@~1s=f=~|QO2[痌rdmc"k&1}!<ƕNtlllfN#-G厴ǅkKKNH.8'~M+7KƟYk<z_yGZb(rcƫ%ͬxo*l]:2ΘZ,jİzn%]rlP*	ӣs:fh<K&i,d!nq44z_n}dhr9;ƆU M4,I&Ubd1p"SxmcL5PK/۱RgPKapl4/Xsyz <16kDp̢M6);Tozi	q
A:{._F`3|1
lTCzi'}Ѹ'*}Do$iÌsy1tL'Y<j
P X\)[W8HQvxr+2eř@h 4>Xaz<HRCI<nzSz2sH)F\68Jm#8"cg]-5J d/ J,&d5UҋuҸupw"NRKPhLJb>I7ZRtǞ
m"c[gp$`=Zuб;[~ub	TL)^PU-6*#:}|zL'n>?bRw},6U<d]fG[C鰩E#z<{h*PzSGZϋj@?p-픈I +`q4:a uq3HjaTWuOԟ,>L 3Q<&uۓHNkRIRN p.A` 5YTJ8xr[0þzgJ`*!ja0Ӕ"h@I%bCi*#yTX@)=8SnE?dz
zJamzӂؠ镰rm59R
K&RpаD48oj!6d&VJ8[S4f ]MH:` Li,%"maaԔRmF6؄@4>DoX{&7)i8'SD/`o4Ө 7f|"M{Ojv;k/7b	N1$@{S}5nST!%@瓙'Q jQ,u/^\4@DqN$K*q$KNL2q1IhBQD`ANѕ FkR8Z njohŃNB'F^{efdX7|si(N>B7E4䫔̙v(<A5zݸwzk	 Fr([3}Eᐝx`  G]]-';pShXTR G;O)d@Tbl.
X}S)H>@xhv99+Q܅3v$
pE"8UAQU y ߎ_0qSɂ!NvutVi8g@s9*(KqO+u6o&Sg| "zF'`$P!o`hH^	^0$>`Q5L6dy
ԧy9{}1Ĳ-P
t TX:	}}-ЬWmuuG9#df1zZR8}fѥYY"j9Ypp&gB7ҬV:yP0P(19R2.HhQϨ`	s{G3x_[<w	ާI.gt+.-m.]#O`C,D)Ƞ>иu:6D#wC),ޭH'J2ƣK1]X_|Wn-60y_an$ 4G&-x̡(;4tL>,9{qQ4Wz3fc)-7*'Sf]5,ݵSؐ(`$ÿӦ;V,͎H[K@eB8?"Ab4O7xJ-urb7;3Ţ1H/d7xjѯb٩8XM?Qs~r^RøIYʬBun5=
"P"[)uc$UklH51Q'ҽ>isF!~>>.u4NaŃ8K%):I;S`RTA8Vk/*LXNiܺ	cy
1\xevn|f[+JhmSȕ#TjuZ{ )*L ÒGolo_)*T/Aԇe:QDPy|2s02_3ߖ=#&v2(D]xe2+g^{0Hr뗠;VQzdlG(x46{5=ìbBscbne!S3ʏ&@ "+pY;ߺ,p:bE#-S4Y3QMـ8<p0MtG|M+X`w*?>Tbˇ>$%֜0bF#=Kz97";y٘ަ/Ͽ~Ã`{p+Fhވ>w;B+kCxȸ
58:^'G"+)=\o[[X=]1sFp' xKclfc}l(:_v9:eL/NR$iւo(vs9H+`Σp%#v#U3!g6d4ת:Oe­ƇQ'Y}zn?ŊNַmvtb8ǃQX\'/wV'ۣWF"^ŀ?I睕"r٦HH~|*{ƽԮjqI@oja){KO>(K%<Ia#|X	%\I!U؋FUC	.Y
TP׊wq]	Vf/+'O+\wRָ?z#l}dm혹} ڲZ2#qsjV=ޗ0e=-o!B^N*9#˂+W9Rөeiq,f!k+X<;C+jn3B[Q-p"JpaeN]fJfjvoQp8-ئ7{NCP47{Nhlh96d}Ν2캇z8uߊV=lv4wt4ַvK7y)w'4zE/VC/X]'-b?^哭jTc˻r?>mT[U&(abĚj*NQzLhi5C]v EeZ ܋A`#X  ,OJHѽ^)rdbH1vgs/WdMBo~Ϊ+S؄+#bVnJr}&Wbh`l(ḴD`SWGK*bd?~ zž.By5/V13obf@8?3Aj瀂tzC1]ðJ0iP
N^bvpL<JS
G{b_4oXW;8SQ]GIдG	=W݁(Lѫ.,ԮhIK,˿uHE6%G
z0Fwd6tT_b:]hyS&OZ_-躴T"kdy[dlKcƦ
#'Lݗޑ?jİ[v^`7myzQn:2xKx @'~&9Z|~:M+/QИZN-gtS%乽"%#ClWq+ttonJ|keN&A mflÃjic1l{"^3}Yǣ{l4ƪb;6?gI/\}
LH'~OqS=k]xzJ&x%r܋%ǋ؋i	LKܝUcvRN9^LYLIg,^ľLŹ80(1Ds|-44;h0Jk,nx)Tf$/"6BŊvS|WbGv)Ts>+I|"%@|~ة<QD;y./oF24`teμ嵠BtǮYZ.5p2,SU s-e'Sc{b3I tJI"x7kFn},{ciL^mR2<q;1}fqe fnXpK}ߠ;qKzRC'ڟ%ЀÉNɲ6mkzHl/i,uS(AǾH}C1-YT?\*"khEC@Iر]foݭ*:&&O,(Gq<WaXq3JP7-&.*\5ڨ6LB`p3ϱJjOd߭3\{nG"bMz8Awԝۭ,Sx%L]`c@ͬ^q<Es_(z$?٨;xF,V,ח,Ί}GsO΄-/ZL<!C,=hjS3NFN0Fn.8BF/*|K[l\&:~+uÉYʧXQ-;*cE̊{8?Hf]/=άN禗Q*ť}v{57％,|7CH֫ΐgaO.YB 'Q#Ac,7;33n\M_EϪy5KXZRQ=U)uZ'<igհ$1ȵ,imh7S~s>٩S.\ch%^+%J^fJr&[zlE@;.57'Ft.e
#sɶg);x]7)!=Wg#%JXE|nNOճ"zT25 oi[cKm|x?[r`ll i*\tkx\rO}P<ҐJI?4O7D&h1Ayms(u*؀%3|^ts/M68-&YA]CZ-| ж>Œ'ZoՋwO}~em1٢K?]t0I~/YۦXҒDkGK48"`:#1=Y<}3CtkI=D, B=4l{/J6Mpgցq|e- ͘쒘o6g2g]xikO{i悯b/LR)[2'έ.+md={s)qع0^xz[sU6&qt`uSN"P{X\FrgEyDS@ɧ8<cc:{=L+[-KzgSgÑmK@{niR:TCv-˦\X^MH:i:cE!?Yrگ)U>-O:jÉ!IƵ2GH̉McoE0wϬ^?1^LhF 4bn^2΍g_}֖ADPEkZ[#{'Xס^DYTaQo58>Uo9|lwKƇK2w
_LvUatʍFqIQ6S3k/ J1:eY%[t+ 	(ng;zyʘY(X,<6WXXle?"<>{{U J.,Im~k(37&00'/]˯ܷwww+}v'uY*wJݕص8"
+A:FM9ꭋrɭ=޽(m.#,c=93
iXM
?L7x팂}X7$hFBO/6jc=4Gtν|"+=0jXJpѡt-Euz{A'%XVpsb]3'CϬ"USP8Q54Uځ9"BԔSQ-'a#q.џ}(l(5+P+ރ5ؘӝR6:,gC;(GMNTD@%LȇxTOlF-8]D"Ĉl~^
z`7R_7nyj3cv! AɰXMSh96a5o?pį%-Q @hXFQXdi d33eehlb|ӉdH21 ֵs|9s0^`G	("ޞr%Vp a+qg?EKxPwo^.<'ds&gG
L7qK~rT|7\Hٹ,Nc~( 
SdO
(kPe	RN썷K16:t1O87x*GkTUL25!eb[w8ȉSgMqV432S#&~͎gr+g/+PTY«D*g;kO*JaS5h%F*
'LVluú^.MQcd7h5hPzt4lVlV^{DWEDhB*PQ<m~dhA-91-'b=	;:T&SzculJA**0g]7Y<]2̪+e=}\Y8ρ-ZJʝ!i#6wN(H9hlX#eKU(H7ֱ@[*Eg%Hȱ/FpcRi-)
"JGxt#߽j0*搿ITU݄q-̷4zYrwv\S<: uo7:O:ˠh18hfC\,LJ(YI|2nxыՖvr1H*V%;991'qV]#fz83ɸSn-p`]
I"t%4-{x̞eqJ%<y󉾕ׅ2ہ;LLV"p%vw%k~[u6$@(\#Ve,.ƱtubZߕVHݳ=HNr\{E-v1]w$7&3k#Ow82F'` N8֒1~ϖ7ƂP'x"O}<RK2Ba"![47p`A1HFq cCui)myvԯX"gEjDӺsrvbx}`s˗$ѭ@X] __ʎϲAO9L+ϝ9^iA09>_߫Ptw7̙OOd!ߞ\6ٱX ϋqH,)!F<Ke%ٸ]?P=yMvD6-|bmdJzV`vt-&wɬ4)oӍДldSlLz
j e(R#;%v,3eh>dV%e\,ˬs<\C@NP6>ޓP{Nxl+#|(S:nu{V`b٣ţqX`W˒q+-ư<X}%Sd$ǔܝ$.]9{CvZî)BA黸JuS7ҏl`}5(8AOHS`*P祗 }.?72+www+cz:bSER*t JSL_?
MM@.1`]~-۪kĽ]RU5ԊG^lee;f˟t,4XE?u]*n#X,:L>@w̇Yf7Nݭ=h1'مJ*Q+}Y\{~k]\!(0SUuZXdF聖uAf6f îԌr
mSUcR2QaHƺxknoHSrU%rP&pg>{]ۂ}evb݇ńOJ
vC8M
p%9 UBJD0y{}'Wj?`a>bqXe&</	Gԛ֧nf:-q.?t<re5"Et]M7j`ݢ%fO[9z7a{X^ "(o.˾ibF	?Ynä.n:spd,ܮKJOJQuޥȂ\RŶ6KbYϭߧf'փ*Unᩯjj%^{Q* w%FDv_yh+~#UWWR}aҟOޛu03=y;X'dJy	 L+L;dcTYaTDӌ<+JgN.7 J#Re2룠A8?؟밿.ҀKV~{w
4ЀA*2.lQ:tC@Dg:Dm[X*֛Gr)7{(<Yd<sJtClvg}SUZ]ڀ$rm\"yҰe+*hA|Ѕ
X/b}6^Tmz:J56Vm>ʴ2	_SGBVp1khʱECq̠;DSꆧ~E*iޞmQˍ{iQnqkC2<X<X1;vczOsvr
	U䈤kIWVpU8UE]>.(zאYt4nGV?O88VP^n)[@<MrZR8U*l$7d<'b	.O2P`ńV6,@axۿ?SynqFY6m}^k&\Ka`e/=>!0yMRX]!#[	 |$$b|ޒ'q3R9RURז.#*EX}}as
OxLؗ0WaD^,0uZEz<"F]'YOgookGus6	sʙJ{^+[=oI6}2D*kFdFƻ_ܯe5*V@pLjl~Ǝcn9R.^F
F]Xuo3_C=i=P-[e6i>$[klbKwmZS2qOn5wx N&I߲3.;.|IxE;{O>6ȋucB<ВShnM){v}b])!ܭM-Z;r'/RWq0v?Rݮi*x;/r#Y#Z<vS4ŋCQ;Ĕ1TE
d0rXcmf:ˠ|5ce$R@tO"Z)`U #ĘiL"e:63KO3ύ+ 0;7.Z{n3,$$<y~JG!6?W/5]Q^#&ϿĢoŋA<b_$,zç`ey~uiElDAOf$.lq1Z\3fO
!A3ۗŷxjEAw{aQ63.*D4zdMȉk-C4_7i>DW#ȋ><cT@ x{<rO~1MQXh(UR#SJ2)Uȃԥ:)mbLlC:;'k@b2"~~:t>)+0Qt":Ǧ~H?YeZXv+vYbU4eǺFKDG{vMuXsĮE-.,¨Olv*6v&2HMem^nuvUqfk֦GDȚY֭^ʥbp[alض'1US,'k[= E%{U#`O	Z^	xLuX8.~&<ʑuc;?%5kgF d;ᥠ@<R<_bL-)VMҙSlL!/CTf	y^+OqqxXz[<@JM4+QpVbs-Bg[R=&[7,^^̭,v2Y,QxcEC::ZH8ىޠ~yoZ,t^.\v彁_3^:Ѭ}dll{[p/a-z Yw[w(՗"ED[jY8~)aQdǣſg7ؔccd9;5ᄠenmkNY\8eN
7AV5y#+go~cr|&r<'Lf9=UkڞN3 V{.schY`JWB)	<Gdti9{sxk<jL^<6t\yBϲlt%h^D+HQZQ ),>p7S/E%)a3d`lQ&`0A-pB@b^+p޻iD򓡮4KԥC2[xm'5fDD̛ӊkYpРkXF\[2nUEɆy2'r66f?p{40)4-Ox,jjSiU	1	{{ɁK%fnl,1ooL'W<]-c#읬T~6f]^-TTY\~n{@hҥݑ-<i|Ҹ o+ǻ`L	]}%w]F#37)l,\
Ԁz$OP կw^d/.E?Q)CC޸ИyR[0<ş./WPd~/G|P&];o9t2ΒtXߺ{vp">~o5Q?jO@OB\iw-D8;xbeVow>1~<GO `(ZG?6&Ju>_N9x,M7>w<Ok} =6µE.,yo(HWgVC;ņt$WB_?PRx>0-r6VM^%F
~9׍tc3o("_xS797^~P;M9XEhߞb*6<ݛLJN %@C`Ю't~p07Z2%i+6yݘVbloGrg),D;e}tsX+G9LX ʏ9;%JcBtmqJILBГvcǾ2Z7'M[*.OT˳DM2r߻Y#q︞GDRnkǸ%l୸b!ZJUkM'r޼s1/aPx"m!WC%j>֋=ȴJă\ŏY? !=4ֶ3Rr7iU	JY"֥&Q/\,)P(|~m	yRթ4")7&bcixc(UCt˓,pp"ꡄdH^Tt4+3 JJ5(=6)]pSןɶNP W!Tuo.@$	QS@z i'PP|? uJTuyUS\2AU\z)X[5.z@b|BsĽtwl/q--vHK8R֪pɽ|-uvbz%ЪzgWSsK	izUĩD2RU:`7s?cuq"$+L
,eSQQF䮼͎߃$h)@*x	/frP
Dx;b6]YEcވVU~gMZJUܼ%7ѓhX9RlU9\0ˌw!xxqݡXEگ~&X !7rt38|uczOv˦ >a^l9qņ@`v+yy,A'nx)W;K;ꢤoyY-,<zFN)]=ܑ_	f<&sDPP`]ݝ'O4wt6v$F&Wneꛎ6w5BB2m"K-̉\!+6ux_QLOfWqwy$TI3j"DLzgأ!e`~9Xɵ̡
m'NaN,1B򥼟&rn؉@IL&ylTD}~ԡeVAکM8/T5i^eVa%KFY1A7uu?7s!:-Kja-]s\a+sHÉAnst8e-+psH}.>eS{R*͝ˀXc.:e3Pz*m`m;Jd~Dflw2' TE9q]
4'wÂ$?[\Wʀt23֏kp	h/Nt=lrjI^ֺ6Ae-ia?FrRə6­=؄=X|pW
,#T*ׄQ3;8W-W{{0⭄C".$6 jכ *#W/fVzk/?b'K1+ ^{o\w/,AAc5;m),,n.\ngKX4nk=1qfQcYY%Jd"وE
n嗖r6&>,lBpy5A:(d^^S;LiV<ULyT·gq?L2p}lĽ}R'cU(W]3/rl$]
ĩ9P6i^ATPϽJ_W ng-X& (T'N7jZjs\J2MkTQ\'>ǲ]*J:cvq@;w!ƃ}T:i!S^K)OI~0R
meRDbu\iT>rQf}Z.;w(܃I.=)\!My-*>[нUNJjNӿA㷰'?	q'8z}\O'T񋔬a]o=C]1_R@x2UhȹzBU@+:ğ>z
coPR@b>sOޛ5.e>	WM`	sىez};.Z4{#3$]ZX_nrrlV=viдiHYhҒ-pWl;c\נS̆N[g8jVYvٸ;RV=kQ>#r<f:y/a/P2[l7/෯T?aCUr(--w_YUfLuZh2q`M^L 
r-pȨpl PU[xRO%b`}s\@Y^_vNb+~3/mFlTx625c5L]8-[$7exKsԥ2 d<7
V&%3Ƅdɼ:hķjnw|q*g L[Aus;5Xq0|3yT/OAy0*ņzJ+fQ?qL1ZP
q`jV)/Qt99q*9aG/؜GsOܔr=1	ا;Vu+COW?/kAV%zN8Fn}ҶK2/ׇP%.RXP)n gf&zF.7ԣ8HW5e/;˯1p6QJt_aGOPo %岗8	.Ok!Z ۢK@䐈	J	Ŋ͵tl&t IL#@8jqzku|c%4kh="k>vRLfX?"3ғZ??a|x2GCwQJI.ߋ}_[bZ;x%=x$xQG0ǟbZr*ژ5frwڲֺLcyqڏ"h^Gxӎ#x
vxn}YFN.XUz!U_:+˪zDx(j+]Te*fQe* iR+:XMaՏO +\zeC1ypS0מ	惂*ҏjT8,XQ\֛_|[t9ƛ1f.YhhϾ۳t-	YL^#(m1KK/`=({Yjkʺ{J?'e/^V=
VNs5:Hp̫(y
%mYGϐ,^黍%?twsV0fވQl3}Ʉ܋%+1H
`~Oi23c
)xDT\`˿'({d-*`&FnwXZ"!KL 42P]ͼ	HMbMD%0|Y@TlP{lN(\3/X'ekg$s)צԱ=O8;ЗFͱXt0-F<v]!EiIE+8<S%sRQ~J@Z#OZڠk/0c1e8USDWE[だvU$*fɲ.we̺Zfy2c\y⬽tSj]t}pUgy7
qbl/2ORu%{IȝzT%cTLQ{&&bյg]}}f'X X- 3YC=˭=ĸ1:j2F6ec#~D/?u7ۛ&U{DCdLِ|3$=[1ͮ{bC-J@*\1.aa<MIAcj@`,Soxr^i]%:_О}.qڂ$;:0f\JD^(3LXE[jґSc᧸\7*,K`scřYlӌ+,I)בWzia4ί<8Ɲ4δ3~ĈzB
8٘nfI=΁ZIk=(0Q(b\ǪT\TŹ俤KO&gu9i Gw'm4k%MQ	0f17gGF=FeU`3D:h,B9O9rVvav|%аU(0j)luT#ĥX mT\U+%-/RLjx){^m>BOX_Z`T^둾 W`:H:rO?*=.x$
DOzhuW=ƾkϟ_s(p&$އ|z`:: Fi-6)4סccgQq(!]!S-O9+ }@"n9$KbIjT(IޭW۸[8/_Gb0Ǔtr]Ǩ2g8t2'__`݂'0˺ ]U3M`~}
04N<.knkloji;}Bg~R׻/WQ\!1:u&%6ymlU},v9.<q#\븯QnH6?us/t&pj7??ݘ ɚEhfO'wecu2?z~·ză9 ~<^?Ǝ4+^}V5~(`dT4CD5W, B1u/.=?i=hWWS~X@(8dOVme_7Ebײ7C.t1HU%M9Y9 =?ebiyEX%t1/=.tAR2G:u(_./qN<'NQJ9vLqTmb;YfP=2*pV{pG{{q`Ar./8ʠKO̻W/
pV/=yѸ"nC#-0"Tڀc}zgZK&,Ǽ1">oGcpzH ̪
FEaB$V0(D2k5^Ӛqy]Fr=<ܥw9kL/GSٻ蕱6cVG
c:L|ҋ``W,{>뗌qdhG^njj\gQ[4CﻔgH""4l;ڊ.Ȓ1D7muVM٘qHcz{t?g
fH"N;SQr`:kIe7ԕ5/ʱXbE\p̬-9cY Qnl͆N&ڍ.BTʹoci=I$-q*K,Asa%sJqљ4<XIv~^0	R-W;Dr5}J8 LHB5({Y@?KT
Afޠ| Һf@D+Y88_*ϸU}h4Q.E*XaRI'W3kW3oAȢSaOL.`Ӫά^*#az7l24Iy{tgu)r[! a;ؘ?Lf~fGZ=z0}mH~I(MҍDXĩQRYf?݅8Kh"Dq;ńm۾Lo3f *vDa`bX3!U<+܃Õcf:a}Ư}"OK_dYALBy։)։e	ebe['
ѷOJRK(S;J$h JsSs7!pvÃsD{Cv;'?GೊxV[OW~8"/IDmZ%cb6!Q}Gػ5!BIK$$g~_] AE37k
bT"
ỉZ[Da.	jCćAԄIW(,"烯I%<j55Ltx#*Q"^PPXƠ(@G>,*' x !ʀn D*spC@$&(xlD"&Nl~s]v}+W e$DQĉyk AB\LD7!Y(Nº?xʩ18G7=nҵ<v8zeqmnt!n;8N	aD @	(.э) %Ga~aK<8D,R+D'HBD̷xq~"KBXD8 {$9IJڼső(	Cďed˦50tN3oEG4yB>Y;u#K_ϩtx!4C7BaEa+&*M-MMi4ϭcxU.F?U-;I/h؈lp8rB&j$<M-Lovs\F0Anjl1{xΘ瞂u c QI:$Xp	{|
c Lgԙ8IQ`nC~(59A(TFe'"wTVp
k4,%PbNaDõ$  sYmnkgvr9==.'=WU9'2k)P]ڈ1'&[AJnQtϸDE̬a>:z<йa}*Ujaa_;~RvX{m%\3q͢^}yM1MgfrCKՉuV+cQ[]x1z9V{[u,SȬ,;]GmpUkpSM7fG٫j&]rNXJl.Mu-.#2V<M<(KSN=m?Mm{WvW M*q]bv
X63ˇr]T>+{`5OaC\I\CP m>6vJ	FS Vn"T_qe|Y	
,Yb%I v ~=.[)X_[~nO,p?2MXKG:Yw:mMtYpe_<JFs%%;OZas0q
Mh>Wjb4>҉kh0)Χ*:1b[/6{bL[)' :RS:Q5TݯUPj4e6`FՙHb7P8˥RoIX	ÐNrf3(QX9(9c#j<MgVTе15JWޯV|8	(w7V4
Ӽ՛TZjNX:Ց%  j/Veq<,,NwY_>-W&*]uZ #TmvNu5|Exچu0-1x[8SqCpB'Y5'P,̾ L_eo|zZ.ɳ8bہa/ 
w7 m%x[Na/<&c3)\ Vl;g:K oxxXQO8~W[uRx8N'B (	xi-$g;o$дp{Y"6xf\肕%g󅄽C8/Ȋ2{R40z08
AF\P0sG=ӃRSzQf,I	i&1%CHs	,0[	#)nbrQ5F6	.-^7"TYg!e{Z62>'˞xWt^t&Tq<S!	YAƁ99)WI{ X
&bBr6+d+fxuIczx81=)o>wl.XN3bpsuth*-rI4d1h s
O9K&TV:)-$RmKmwu$Ilγ"T0J;=Xxg,BaD%1	_\|^W#RtsF!~s&l+#&EQڑv"a3Nx!71Dީ`:@)BW
I2u&Kå"+xH=dnT$h^pc;ks|'uqNFoz91l7dcOj:YۦaR`V2¼;eNEG{0O
v%buqg_ZER!QY4!RWTUB\G4\s9L3N(y"Ag׃m@C$3ɖ⬯ֳ^qV
Ws*#2J	"\MT۫ɍ9vF隗Op8G''	@L1QC3GOp !^|nLP;iڸzZ$$n`26Gܡ
*uTmĵ397:vH[`l9~ccqcjjc8kP*^PkVHa/%!\ޭU=ށQdo`)^i6T_I廙ja(Z|}ᤪωw%}8'T:PAh76[㣏EhjEJV^Yu=hQc-KhI~"nVRk-Ѿݟk7(]~^|owQz͓کFRuN++DL	LY.7唿BTͫ$-etOاw+K?Ƙ8Ck x>Ui)º tOxާៀpIQb^qfj^BIbqBf^ZfAv&DP(<YG8 0NPxޣ!iguYR'07m^39EX]95/%3 DxmAK@19RAah@lzE4J!xT6Y37?@!xOD\{f拷v:=LP@t]h<r}f5s:Q9O~0D`Q*Iނ.{K,\ہ3M#[1pA!$$$E{GΙ&#=&"K;B]2_j"h4U84w2S%HV=E)S̃)doUV$'$qgAzZ:O{LHnٟ2ָs)[oU_m0xklܐ47NfLO3TNKLRpU P/kZxSU%<[ YK6xNA# *Q$$$\ZX1*XM/`=NΖiB'1 ^&m'Mfq`Wݶևݗ67D}@2@iim$ELQ @K&GA3ud~-lb"W:BPleݶid4$!{RwCң:Itn-ǥZLS	G~?rg	H$kF9(c}x\"[,W$B#Tq˰CEt+PzMcV(^0&Jy" b<"껗{F~ ;YXp)rbƋ.RPp". XS35R=O#΅|p4|4Ɣ]*Ny)=b5~Vȱ}?2YB.دm*֥}MQ>6t%,Q!4^ly@2V~J.QGu}wuf==IxKFGGLo)kbt[YXM1xQV ¬WY% +xVEPP_KKVAKK95/%3 SQxYs8~Ф/)C]:@.H{}bdY]l˕P~ml0t0j|yvI_&K%fsMSr\dt{8t;J]8>b+8	et;R!cr}NQ(:zz*2#]Xjt"b<DĄ(	B蹱k1n|uHOS *HQƿɟbRpWY/iG3p:_t<M3 `oIhN1ꁫ!])sZ%g@/VtE* ј9c⎏kg;;͍31!#x:'tG6ck.Һ&@0-etLsCD$*)f5}THhF\hj3ZΔ2%|/9g< ҥgŉ@ba$b0*D
(Sje!|齲^WJX,fnRG\1"<13"dD(Rh3
OQ<ܷT0)	/Sͣ>֮ZsE#ۗx;Qz"Y@ίoG94u޾=쟿'd=ػ5,NQv0,Fdxs/b#M@&Taw>NN,	?-	Ho[|i=/<.AEٌB$^A4ZESgewikckWE`cW+]*
s|9Umbi<U.?N)V쟶~C\I/~ەj*{ݎn3((v!Q "O5vb^&-nr~*P24=0M4̚TuF#3ŚSVܤ7*ſʋ`0 RtE6rWT|NMuYlulyѸI~gcCu<j1ߵ9DȈGS{	|XhʫkYnW^"\8#>Tg7д`t{ueN[S-3UL$±`[' ;(I=1	)>04FCNQZ;IPC}}it1溃 A.miS2hr&ZX|8$\.t[ɣ5Itn6AACR  O2gT:,4pHʈG{NҒ*)0AR{ وn	6y4
W=+<إ/i4Ǿ, ֽd"?[ݽ8m
LRT.g}	5	X*x+M"lBn/,a\bD=I&CO8_q
)W/.ޠ֏"Hg\leJR3M<[2Ì$uyd>@{b쩧xS
0LWqb~E4?a_"b o{*=	U48>97MiMfU1M iƐQ S`kԼim΍ݕ(Ю:UE6MGohj曳5*x4UR4juc{6ܿV.WS ޏ_x][s~_ʼdR̞SujI\!0sD[*Zv*tK-!	!jwb,[?ɒ@H#f1~"GGGԙRFR(Uf&|p4hL1%FS#hY;ΧY3#AS82z(!, n8|P%cQ"ԸR2A@qj$NE4|I{:o=G,VlgY=|9_)8:w$3)KBy0:1E1Ii2LC0\/ NscĲwȟm5ꞵ{]tV2mFuluvNѺ"VF(87QIeڔΩ0J<.2LF3dq ƱQ9(MX$':8L#k~NgFĝ_1C8/(Μx3hp'𴝄1%gsq9S^fpC"$ C&4H2Ƴq1D&(0]Zܪ'J	TtȀ8 7$oh`\Z>`g<FfެnS7t,ɰ!zݡ`gÓ}'bqC(ϹWd^Eb'A]² "P̾׵Mfwk#W/tHZFf}'l_rʴ[D)>Лi쐟>câ!1(s?GNL3L@$Dj(dA]/Q<qO
+|i?-k>c8n	h}KgbIxO]PfY/{ĚN>6Vi;9]-PVYƺl7?sU	R߯	oI>W7^sw(O&v.TO?~y8UP XpRjlƀW7#|PgÕ,7Iy 쯔b"	BJ4t_'mLS<>e0#`KhPtib/8M*30T(m݂0xH[^ϸ]vMBWպ%($BIw3hĂ6z괺f7-9<:"%ǠR(ojNo_OİY]ʺ=Ab:V6]EQ[]oF:7:WvhjG'Pʚ=!EYv^aQRA??U߅eVtG)<P]"Ee5Do~+rq|1I?S
W4we5g^<eNN_Uޞ90g2nx:*lmFE68Q9b [ O\9` VD'Ǣ4=43R"!Ǭ.uL{e-?zА:مVo-@]4d,#Cx5,-x)v!HE[ED	&Cc0/+.\Z27TY(,D6h̜t9̣@}rݫ8ǖ3[Ҷb%
=rҔRfmy\T9(Cϭϒ?^Q&阹clf
Ja:΍s-A
^:͵Z.X qiN3gh#;,~!ȋPql17&	h,X; 9.R&0Q:Sf5|4q&*{e=?'\-^If5ݶ~ƦWr|)ƻSn]' *ϟ35tmA7/*_V_9$j(KX6	u*p|~ G*kVE<PW@ni)Fer4Խd:b)OsgusqQ|W^aLs&֋<p\']
	.Ѹ@Glg"W"+C^/Fkyz|ׄ</En_-f^a.B&FHH}Ao?|D>:f$w!s >?bRF{9(_uRe*CVʐUܺyx$E`:DN#dbK3Dd:PH.ĀF4g; LcxA|l,aPDSTcpv[9d9I j?}?ˬ'L]rhUF[n."gTqVb<p5A&!(N؋Ԗ5݊NT*qq^B4Oy zVB;	=EkjI#Xk19ʒ5W<1oئLM*:(H879<s*R{v/a!TZ^(@Yyp~1}`jqWO)ʨ%M4QYLXU<$	>336w4X)f}Em@aY|2b@A %HʍkMqJ9
ܿH!2/T$%H4^x0DBpU~GZOwKsogof:*mw;"sR<T ˳l#U6^g_`HTk]v?
 D`2vK?찢yesDwTdqs<}*/*x`K%VN'x]֨ux3sus$:a]vu@;ޢd(kSfm)z]JCɇ{Whikih= +|s$*zh:oo殣%ل)_=:T,;5M\1'v@$:xؚhǟ=

s""sJB>CץJueF72ݒ/;+w`/E!6B6Dߞb9t%/4"xŌzV2pb)Z59T3_>h'Owo5jNdU"YȞRl+yї"<Io鳑eɏdKޢ%xEfcxqsY&hyN 5y?׌LKp2c{_HZ(*x)d*d($%榖)ds2S&+j+O~YthcdA&, K*0l#$'TL? ?d &QxxVQo6~88/I]e"$;M'N6ITI*cQdÀ1y<~}ߑw*/\-Gp(%NH^lqd#(55 !}3=Am{ЭGTLY(Ri 	އ[*)2~#Sgq09T`ZӯR(Ggmmkl< {JIjWp<Yzѧ,Ac@Bj*8(A*AMHsV1荖Vfۍi"iAa8BʛĚȠ;X_8gb>/`:t2~`.ɨH>xk`Jf+{bUA292!
BX;U9TV$2VX7.ިg"ZiU0d8^@Ka՝`-**E$`y#JY[,݉@89\HmðJW靘<8FTE	KR~-P=1}SL!5eYy$e:1<	Yi m)?O^;Kz2ʞgDHa+6@gVZ~'2B}֍uQ҄"Ei,Cj@&ҖhgqQdd/5ʵKK2&{0X6̳ˋA<%¤~36ֿt0{KvHs2n]	SX>UdgGm"j$+ݶ.{|G-ʹ+W9*nd{E!"䎍)+$NImYS$*SE֊UՙAl=絕eᝒ3Zh~q]zdvsEZw	Bо>6#f<A&su8	[)
1,(~	^7]>nu|>/-g#Ɇr2bܧd	Yt5tI*l;Gd-/"n6g4{;v4B:;y4i5yM̏y=0fi02#'*˛jMޝD/<2:|<ݾ!Ix8{mXV)Z+dWBz#Х